[med-svn] [infernal] 02/04: Imported Upstream version 1.1.2
Sascha Steinbiss
satta at debian.org
Sat Aug 6 01:23:17 UTC 2016
This is an automated email from the git hooks/post-receive script.
satta pushed a commit to branch master
in repository infernal.
commit b52cde28c3b7a4568aaa94dc3fdb5d574c8053b2
Author: Sascha Steinbiss <satta at debian.org>
Date: Sat Aug 6 00:01:41 2016 +0000
Imported Upstream version 1.1.2
---
COPYRIGHT | 46 -
INSTALL | 37 +-
LICENSE | 731 +-
Makefile.in | 25 +-
README | 19 +-
RELEASE-NOTES | 192 +-
Userguide.pdf | Bin 925365 -> 905189 bytes
aclocal.m4 | 874 +-
configure | 1292 +-
configure.ac | 47 +-
documentation/Makefile.in | 4 +-
documentation/manpages/Makefile.in | 4 +-
documentation/manpages/cmalign.man | 6 +-
documentation/manpages/cmbuild.man | 6 +-
documentation/manpages/cmcalibrate.man | 6 +-
documentation/manpages/cmconvert.man | 6 +-
documentation/manpages/cmemit.man | 6 +-
documentation/manpages/cmfetch.man | 6 +-
documentation/manpages/cmpress.man | 6 +-
documentation/manpages/cmscan.man | 90 +-
documentation/manpages/cmsearch.man | 8 +-
documentation/manpages/cmsearch_dual.man | 6 +-
documentation/manpages/cmstat.man | 6 +-
documentation/manpages/infernal.man | 6 +-
documentation/manpages/sse_cmsearch.man | 6 +-
documentation/userguide/Makefile.in | 13 +-
documentation/userguide/ack.tex | 5 +-
documentation/userguide/cmbuild.tex | 5 +-
documentation/userguide/copyright.tex | 0
documentation/userguide/copyright.tex.in | 18 -
documentation/userguide/formats.tex | 43 +-
documentation/userguide/install.tex | 24 +-
documentation/userguide/introduction.tex | 8 +-
documentation/userguide/main.tex | 8 +-
documentation/userguide/more.tex | 21 +-
documentation/userguide/pipeline.tex | 3 +-
documentation/userguide/tabular.tex | 151 +-
documentation/userguide/titlepage.tex.in | 9 +-
documentation/userguide/tutorial.tex | 282 +-
easel/00README | 12 +-
easel/BUGTRAX | 51 +-
easel/COPYRIGHT | 27 -
easel/INSTALL | 10 +-
easel/LICENSE | 86 +-
easel/Makefile.in | 107 +-
easel/aclocal.m4 | 711 +-
easel/config.guess | 0
easel/config.sub | 0
easel/configure | 3972 +-
easel/configure.ac | 228 +-
easel/demotic/demotic_blast.pm | 11 +-
easel/demotic/demotic_fasta.pm | 161 +-
easel/demotic/demotic_hmmer.pm | 33 +-
easel/demotic/infernal_tab2gff.pl | 0
easel/demotic/test.pl | 0
easel/devkit/autodoc | 17 +-
easel/devkit/cexcerpt | 0
easel/devkit/sqc | 74 +-
easel/documentation/Makefile.in | 29 +-
easel/documentation/codestyle.tex | 427 +-
easel/documentation/copyright.tex | 9 +-
easel/documentation/intro.tex | 130 +-
easel/documentation/macros.tex | 20 +-
easel/documentation/main.tex | 176 +-
easel/documentation/titlepage.tex | 14 +-
easel/easel.c | 534 +-
easel/easel.h | 107 +-
easel/esl_alphabet.c | 183 +-
easel/esl_alphabet.h | 17 +-
easel/esl_avx.c | 24 +
easel/esl_avx.h | 113 +
easel/esl_buffer.c | 87 +-
easel/esl_buffer.h | 10 +-
easel/esl_buffer.tex | 4 +-
easel/esl_cluster.c | 14 +-
easel/esl_cluster.h | 14 +-
easel/esl_composition.c | 150 +
easel/esl_composition.h | 4 +
easel/esl_config.h.in | 20 +-
easel/esl_dirichlet.c | 285 +-
easel/esl_dirichlet.h | 28 +-
easel/esl_distance.c | 312 +-
easel/esl_distance.h | 25 +-
easel/esl_dmatrix.c | 207 +-
easel/esl_dmatrix.h | 27 +-
easel/esl_dsqdata.c | 1700 +
easel/esl_dsqdata.h | 141 +
easel/esl_dsqdata.tex | 332 +
easel/esl_exponential.c | 50 +-
easel/esl_exponential.h | 14 +-
easel/esl_fileparser.c | 169 +-
easel/esl_fileparser.h | 14 +-
easel/esl_gamma.c | 370 +-
easel/esl_gamma.h | 22 +-
easel/esl_gencode.c | 1188 +
easel/esl_gencode.h | 94 +
easel/esl_getopts.c | 47 +-
easel/esl_getopts.h | 14 +-
easel/esl_getopts.tex | 2 +-
easel/esl_gev.c | 169 +-
easel/esl_gev.h | 14 +-
easel/esl_gumbel.c | 472 +-
easel/esl_gumbel.h | 29 +-
easel/esl_gumbel.tex | 2 +-
easel/esl_heap.c | 349 +
easel/esl_heap.h | 50 +
easel/esl_histogram.c | 223 +-
easel/esl_histogram.h | 22 +-
easel/esl_hmm.c | 41 +-
easel/esl_hmm.h | 14 +-
easel/esl_hyperexp.c | 224 +-
easel/esl_hyperexp.h | 14 +-
easel/esl_keyhash.c | 14 +-
easel/esl_keyhash.h | 10 +-
easel/esl_keyhash.tex | 4 +-
easel/esl_mem.c | 20 +-
easel/esl_mem.h | 10 +-
easel/esl_minimizer.c | 22 +-
easel/esl_minimizer.h | 14 +-
easel/esl_mixgev.c | 49 +-
easel/esl_mixgev.h | 14 +-
easel/esl_mpi.c | 96 +-
easel/esl_mpi.h | 44 +-
easel/esl_msa.c | 551 +-
easel/esl_msa.h | 24 +-
easel/esl_msa.tex | 19 +-
easel/esl_msa_testfiles/a2m/a2m.good.1 | 16 +
easel/esl_msa_testfiles/a2m/a2m.good.2 | 15 +
easel/esl_msa_testfiles/afa/afa.good.1 | 16 +
easel/esl_msa_testfiles/afa/afa.good.2 | 15 +
easel/esl_msa_testfiles/afa/afa.good.3 | 24 +
easel/esl_msa_testfiles/clustal/clustal.good.1 | 20 +
easel/esl_msa_testfiles/clustal/clustal.good.2 | 15 +
easel/esl_msa_testfiles/phylip/phylip.ambig.1 | 9 +
easel/esl_msa_testfiles/phylip/phylip.bad.1 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.10 | 6 +
easel/esl_msa_testfiles/phylip/phylip.bad.11 | 7 +
easel/esl_msa_testfiles/phylip/phylip.bad.2 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.3 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.4 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.5 | 2 +
easel/esl_msa_testfiles/phylip/phylip.bad.6 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.7 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.8 | 3 +
easel/esl_msa_testfiles/phylip/phylip.bad.9 | 3 +
easel/esl_msa_testfiles/phylip/phylip.good.1 | 12 +
easel/esl_msa_testfiles/phylip/phylip.good.2 | 8 +
easel/esl_msa_testfiles/phylip/phylip.good.3 | 28 +
easel/esl_msa_testfiles/phylips/phylips.good.1 | 11 +
easel/esl_msa_testfiles/phylips/phylips.good.2 | 17 +
easel/esl_msa_testfiles/psiblast/psiblast.good.1 | 14 +
easel/esl_msa_testfiles/psiblast/psiblast.good.2 | 11 +
easel/esl_msa_testfiles/selex/selex.good.4 | 19 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.1 | 1 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.2 | 7 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.3 | 7 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.4 | 4 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.5 | 4 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.6 | 7 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.7 | 7 +
easel/esl_msa_testfiles/stockholm/stockholm.bad.8 | 5 +
easel/esl_msa_testfiles/stockholm/stockholm.good.1 | 96 +
easel/esl_msacluster.c | 29 +-
easel/esl_msacluster.h | 18 +-
easel/esl_msafile.c | 565 +-
easel/esl_msafile.h | 75 +-
easel/esl_msafile.md | 181 +
easel/esl_msafile2.c | 51 +-
easel/esl_msafile2.h | 19 +-
easel/esl_msafile_a2m.c | 179 +-
easel/esl_msafile_a2m.h | 19 +-
easel/esl_msafile_afa.c | 200 +-
easel/esl_msafile_afa.h | 19 +-
easel/esl_msafile_clustal.c | 198 +-
easel/esl_msafile_clustal.h | 19 +-
easel/esl_msafile_phylip.c | 501 +-
easel/esl_msafile_phylip.h | 21 +-
easel/esl_msafile_psiblast.c | 149 +-
easel/esl_msafile_psiblast.h | 19 +-
easel/esl_msafile_selex.c | 189 +-
easel/esl_msafile_selex.h | 19 +-
easel/esl_msafile_stockholm.c | 161 +-
easel/esl_msafile_stockholm.h | 19 +-
easel/esl_msashuffle.c | 37 +-
easel/esl_msashuffle.h | 14 +-
easel/esl_msaweight.c | 63 +-
easel/esl_msaweight.h | 14 +-
easel/esl_normal.c | 227 +-
easel/esl_normal.h | 18 +-
easel/esl_paml.c | 14 +-
easel/esl_paml.h | 14 +-
easel/esl_random.c | 259 +-
easel/esl_random.h | 23 +-
easel/esl_random.tex | 32 +-
easel/esl_randomseq.c | 261 +-
easel/esl_randomseq.h | 53 +-
easel/esl_ratematrix.c | 15 +-
easel/esl_ratematrix.h | 14 +-
easel/esl_recorder.c | 14 +-
easel/esl_recorder.h | 14 +-
easel/esl_regexp.c | 86 +-
easel/esl_regexp.h | 16 +-
easel/esl_regexp.tex | 2 +-
easel/esl_rootfinder.c | 41 +-
easel/esl_rootfinder.h | 14 +-
easel/esl_scorematrix.c | 141 +-
easel/esl_scorematrix.h | 10 +-
easel/esl_scorematrix.tex | 11 +-
easel/esl_sq.c | 754 +-
easel/esl_sq.h | 66 +-
easel/esl_sq.tex | 62 +-
easel/esl_sqio.c | 1819 +-
easel/esl_sqio.h | 76 +-
easel/esl_sqio.tex | 265 +-
easel/esl_sqio_ascii.c | 213 +-
easel/esl_sqio_ascii.h | 16 +-
easel/esl_sqio_ncbi.c | 71 +-
easel/esl_sqio_ncbi.h | 16 +-
easel/esl_sse.c | 20 +-
easel/esl_sse.h | 14 +-
easel/esl_sse.tex | 2 +-
easel/esl_ssi.c | 63 +-
easel/esl_ssi.h | 10 +-
easel/esl_ssi.tex | 6 +-
easel/esl_stack.c | 201 +-
easel/esl_stack.h | 14 +-
easel/esl_stats.c | 281 +-
easel/esl_stats.h | 133 +-
easel/esl_stopwatch.c | 212 +-
easel/esl_stopwatch.h | 37 +-
easel/esl_stretchexp.c | 196 +-
easel/esl_stretchexp.h | 14 +-
easel/esl_swat.c | 15 +-
easel/esl_threads.c | 14 +-
easel/esl_threads.h | 14 +-
easel/esl_tree.c | 91 +-
easel/esl_tree.h | 16 +-
easel/esl_vectorops.c | 69 +-
easel/esl_vectorops.h | 15 +-
easel/esl_vmx.c | 14 +-
easel/esl_vmx.h | 14 +-
easel/esl_weibull.c | 307 +-
easel/esl_weibull.h | 14 +-
easel/esl_workqueue.c | 32 +-
easel/esl_workqueue.h | 14 +-
easel/esl_wuss.c | 533 +-
easel/esl_wuss.h | 16 +-
easel/install-sh | 0
easel/interface_gsl.c | 14 +-
easel/interface_gsl.h | 4 +-
easel/interface_lapack.c | 14 +-
easel/interface_lapack.h | 4 +-
easel/makeTAGS.sh | 15 +
easel/miniapps/Makefile.in | 18 +-
easel/miniapps/esl-afetch.c | 67 +-
easel/miniapps/esl-afetch.itest.pl | 3 +-
easel/miniapps/esl-alimanip.c | 286 +-
easel/miniapps/esl-alimanip.itest.pl | 16 +-
easel/miniapps/esl-alimanip.man | 6 +
easel/miniapps/esl-alimap.c | 20 +-
easel/miniapps/esl-alimask.c | 36 +-
easel/miniapps/esl-alimask.itest.pl | 4 +-
easel/miniapps/esl-alimerge.c | 30 +-
easel/miniapps/esl-alipid.c | 43 +-
easel/miniapps/esl-alipid.man | 5 +-
easel/miniapps/esl-alirev.c | 87 +
easel/miniapps/esl-alirev.man | 127 +
easel/miniapps/esl-alistat.c | 116 +-
easel/miniapps/esl-alistat.itest.pl | 1 +
easel/miniapps/esl-cluster.c | 2 +-
easel/miniapps/esl-compalign.c | 56 +-
easel/miniapps/esl-compstruct.c | 29 +-
easel/miniapps/esl-construct.c | 19 +-
easel/miniapps/esl-histplot.c | 64 +-
easel/miniapps/esl-mask.c | 2 +-
easel/miniapps/esl-mask.itest.pl | 2 +-
easel/miniapps/esl-reformat.c | 215 +-
easel/miniapps/esl-selectn.c | 70 +-
easel/miniapps/esl-selectn.man | 4 +-
easel/miniapps/esl-seqstat.c | 80 +-
easel/miniapps/esl-sfetch.c | 38 +-
easel/miniapps/esl-shuffle.c | 33 +-
easel/miniapps/esl-shuffle.itest.pl | 2 +-
easel/miniapps/esl-ssdraw.c | 136 +-
easel/miniapps/esl-translate.c | 215 +
easel/miniapps/esl-translate.itest.pl | 149 +
easel/miniapps/esl-translate.man | 293 +
easel/miniapps/esl-weight.c | 35 +-
easel/testsuite/Makefile.in | 31 +-
easel/testsuite/coverage_report.pl | 99 +-
easel/testsuite/driver_report.pl | 121 -
easel/testsuite/i1-degen-residues.pl | 4 +-
easel/testsuite/i2-ncbi-indices.pl | 2 +-
easel/testsuite/i3-blank-gf.pl | 2 +-
easel/testsuite/testsuite.sqc | 15 +-
easel/testsuite/valgrind_report.pl | 85 +-
hmmer/COPYRIGHT | 79 -
hmmer/INSTALL | 54 +-
hmmer/LICENSE | 769 +-
hmmer/Makefile.in | 77 +-
hmmer/README | 31 -
hmmer/README.md | 57 +
hmmer/aclocal.m4 | 874 +-
hmmer/configure | 1921 +-
hmmer/configure.ac | 209 +-
hmmer/documentation/Makefile.in | 21 +-
hmmer/documentation/man/Makefile.in | 16 +-
hmmer/documentation/man/alimask.man | 323 +
hmmer/documentation/man/hmmbuild.man | 126 +-
hmmer/documentation/man/hmmconvert.man | 8 +-
hmmer/documentation/man/hmmemit.man | 10 +-
hmmer/documentation/man/hmmer.man | 37 +-
hmmer/documentation/man/hmmfetch.man | 24 +-
hmmer/documentation/man/hmmlogo.man | 103 +
hmmer/documentation/man/hmmpgmd.man | 233 +
hmmer/documentation/man/hmmpress.man | 10 +-
hmmer/documentation/man/hmmscan.man | 80 +-
hmmer/documentation/man/hmmsearch.man | 58 +-
hmmer/documentation/man/hmmsim.man | 28 +-
hmmer/documentation/man/hmmstat.man | 4 +-
hmmer/documentation/man/jackhmmer.man | 89 +-
hmmer/documentation/man/makehmmerdb.man | 162 +
hmmer/documentation/man/nhmmer.man | 621 +
.../man/{hmmscan.man => nhmmscan.man} | 270 +-
hmmer/documentation/man/phmmer.man | 83 +-
hmmer/documentation/userguide/Makefile.in | 14 +-
hmmer/documentation/userguide/formats.tex | 152 +-
hmmer/documentation/userguide/install.tex | 42 +-
hmmer/documentation/userguide/introduction.tex | 240 +-
hmmer/documentation/userguide/more.tex | 12 +-
hmmer/documentation/userguide/pipeline.tex | 125 +-
hmmer/documentation/userguide/tabular.tex | 84 +-
hmmer/documentation/userguide/titlepage.tex.in | 8 +-
hmmer/documentation/userguide/tutorial.tex | 1135 +-
hmmer/makeTAGS.sh | 19 +
hmmer/profmark/Makefile.in | 8 +-
hmmer/profmark/create-profmark.c | 31 +-
hmmer/profmark/rocplot.c | 2 +-
hmmer/src/Makefile.in | 31 +-
hmmer/src/alimask.c | 185 +-
hmmer/src/build.c | 45 +-
hmmer/src/cachedb.c | 14 +-
hmmer/src/cachedb.h | 4 +-
hmmer/src/emit.c | 21 +-
hmmer/src/errors.c | 2 +-
hmmer/src/evalues.c | 6 +-
hmmer/src/eweight.c | 102 +-
hmmer/src/fm_alphabet.c | 106 +-
hmmer/src/fm_general.c | 487 +-
hmmer/src/fm_msv.c | 1166 -
hmmer/src/{impl_sse/fm.c => fm_sse.c} | 243 +-
hmmer/src/fm_ssv.c | 841 +
hmmer/src/generic_decoding.c | 8 +-
hmmer/src/generic_fwdback.c | 8 +-
hmmer/src/generic_fwdback_chk.c | 4 +-
hmmer/src/generic_msv.c | 12 +-
hmmer/src/generic_null2.c | 6 +-
hmmer/src/generic_optacc.c | 6 +-
hmmer/src/generic_stotrace.c | 6 +-
hmmer/src/generic_viterbi.c | 8 +-
hmmer/src/generic_vtrace.c | 6 +-
hmmer/src/h2_io.c | 8 +-
hmmer/src/heatmap.c | 2 +-
hmmer/src/hmmalign.c | 26 +-
hmmer/src/hmmbuild.c | 330 +-
hmmer/src/hmmc2.c | 67 +-
hmmer/src/hmmconvert.c | 6 +-
hmmer/src/hmmdmstr.c | 121 +-
hmmer/src/hmmdutils.c | 91 +-
hmmer/src/hmmdwrkr.c | 164 +-
hmmer/src/hmmemit.c | 77 +-
hmmer/src/hmmer.c | 6 +-
hmmer/src/hmmer.h | 507 +-
hmmer/src/{exactmatch.c => hmmerfm-exactmatch.c} | 210 +-
hmmer/src/hmmfetch.c | 2 +-
hmmer/src/hmmlogo.c | 138 +-
hmmer/src/hmmpgmd.c | 10 +-
hmmer/src/hmmpgmd.h | 19 +-
hmmer/src/hmmpgmd2msa.c | 340 +-
hmmer/src/hmmpgmd_client_example.pl | 648 +
hmmer/src/hmmpress.c | 8 +-
hmmer/src/hmmpress.itest.pl | 2 +-
hmmer/src/hmmscan.c | 51 +-
hmmer/src/hmmsearch.c | 351 +-
hmmer/src/hmmsim.c | 32 +-
hmmer/src/hmmstat.c | 89 +-
hmmer/src/impl_dummy/Makefile.in | 11 +-
hmmer/src/impl_dummy/decoding.c | 6 +-
hmmer/src/impl_dummy/fm.c | 295 -
hmmer/src/impl_dummy/fwdback.c | 6 +-
hmmer/src/impl_dummy/impl_dummy.h | 51 +-
hmmer/src/impl_dummy/io.c | 8 +-
hmmer/src/impl_dummy/mpi.c | 8 +-
hmmer/src/impl_dummy/msvfilter.c | 14 +-
hmmer/src/impl_dummy/null2.c | 6 +-
hmmer/src/impl_dummy/optacc.c | 6 +-
hmmer/src/impl_dummy/p7_omx.c | 6 +-
hmmer/src/impl_dummy/p7_oprofile.c | 147 +-
hmmer/src/impl_dummy/stotrace.c | 6 +-
hmmer/src/impl_dummy/vitfilter.c | 6 +-
hmmer/src/impl_dummy/vitscore.c | 6 +-
hmmer/src/impl_sse/Makefile.in | 11 +-
hmmer/src/impl_sse/decoding.c | 6 +-
hmmer/src/impl_sse/fwdback.c | 6 +-
hmmer/src/impl_sse/impl_sse.h | 250 +-
hmmer/src/impl_sse/io.c | 8 +-
hmmer/src/impl_sse/mpi.c | 8 +-
hmmer/src/impl_sse/msvfilter.c | 392 +-
hmmer/src/impl_sse/null2.c | 10 +-
hmmer/src/impl_sse/optacc.c | 6 +-
hmmer/src/impl_sse/p7_omx.c | 6 +-
hmmer/src/impl_sse/p7_oprofile.c | 364 +-
hmmer/src/impl_sse/ssvfilter.c | 6 +-
hmmer/src/impl_sse/stotrace.c | 6 +-
hmmer/src/impl_sse/vitfilter.c | 10 +-
hmmer/src/impl_sse/vitscore.c | 6 +-
hmmer/src/impl_vmx/Makefile.in | 11 +-
hmmer/src/impl_vmx/decoding.c | 6 +-
hmmer/src/impl_vmx/fm.c | 541 -
hmmer/src/impl_vmx/fwdback.c | 6 +-
hmmer/src/impl_vmx/impl_vmx.h | 221 +-
hmmer/src/impl_vmx/io.c | 8 +-
hmmer/src/impl_vmx/mpi.c | 8 +-
hmmer/src/impl_vmx/msvfilter.c | 379 +-
hmmer/src/impl_vmx/null2.c | 6 +-
hmmer/src/impl_vmx/optacc.c | 6 +-
hmmer/src/impl_vmx/p7_omx.c | 6 +-
hmmer/src/impl_vmx/p7_oprofile.c | 328 +-
hmmer/src/impl_vmx/stotrace.c | 6 +-
hmmer/src/impl_vmx/vitfilter.c | 8 +-
hmmer/src/impl_vmx/vitscore.c | 6 +-
hmmer/src/itest_brute.c | 2 +-
hmmer/src/jackhmmer.c | 52 +-
hmmer/src/logsum.c | 6 +-
hmmer/src/{makenhmmerdb.c => makehmmerdb.c} | 594 +-
hmmer/src/modelconfig.c | 12 +-
hmmer/src/modelstats.c | 136 +-
hmmer/src/mpisupport.c | 18 +-
hmmer/src/nhmmer.c | 1186 +-
hmmer/src/nhmmscan.c | 921 +
hmmer/src/p7_alidisplay.c | 218 +-
hmmer/src/p7_bg.c | 8 +-
hmmer/src/p7_builder.c | 204 +-
hmmer/src/p7_config.h.in | 32 +-
hmmer/src/p7_domaindef.c | 311 +-
hmmer/src/p7_gmx.c | 8 +-
hmmer/src/p7_gmxchk.c | 4 +-
hmmer/src/p7_gmxchk.h | 4 +-
hmmer/src/p7_hmm.c | 93 +-
hmmer/src/p7_hmmcache.c | 8 +-
hmmer/src/p7_hmmcache.h | 8 +-
hmmer/src/p7_hmmfile.c | 91 +-
hmmer/src/p7_hmmwindow.c | 34 +-
hmmer/src/p7_msvdata.c | 421 -
hmmer/src/p7_null3.c | 123 +-
hmmer/src/p7_pipeline.c | 906 +-
hmmer/src/p7_prior.c | 35 +-
hmmer/src/p7_profile.c | 8 +-
hmmer/src/p7_scoredata.c | 465 +
hmmer/src/p7_spensemble.c | 2 +-
hmmer/src/p7_tophits.c | 366 +-
hmmer/src/p7_trace.c | 6 +-
hmmer/src/phmmer.c | 358 +-
hmmer/src/seqmodel.c | 8 +-
hmmer/src/tracealign.c | 81 +-
hmmer/testsuite/2OG-FeII_Oxy_3-nt.hmm | 968 +
hmmer/testsuite/2OG-FeII_Oxy_3.hmm | 327 +
hmmer/testsuite/Makefile.in | 8 +-
hmmer/testsuite/i10-duplicate-names.pl | 2 +-
hmmer/testsuite/i11-hmmalign-mapali.pl | 2 +-
hmmer/testsuite/i12-delete-corruption.pl | 2 +-
hmmer/testsuite/i13-msa-integrity.pl | 2 +-
hmmer/testsuite/i17-stdin.pl | 2 +-
hmmer/testsuite/i18-nhmmer-generic.pl | 48 +-
hmmer/testsuite/i20-fmindex-core.pl | 2 +-
hmmer/testsuite/i9-optional-annotation.pl | 2 +-
hmmer/testsuite/testsuite.sqc | 100 +-
hmmer/tutorial/MADE1.hmm | 265 +
hmmer/tutorial/MADE1.out | 118 +
hmmer/tutorial/MADE1.sto | 4021 ++
hmmer/tutorial/SNORD96.hmm | 313 -
hmmer/tutorial/SNORD96.out | 82 -
hmmer/tutorial/SNORD96.sto | 16 -
hmmer/tutorial/dna_target.fa | 42680 +++----------------
hmmer/tutorial/fn3.hmm | 177 +-
hmmer/tutorial/fn3.out | 38 +-
hmmer/tutorial/globins4.hmm | 303 +-
hmmer/tutorial/globins4.out | 7489 ++--
hmmer/tutorial/minifam.h3f | Bin 54780 -> 54792 bytes
hmmer/tutorial/minifam.h3m | Bin 96927 -> 96927 bytes
hmmer/tutorial/minifam.h3p | Bin 113252 -> 113765 bytes
rmark/Makefile.in | 4 +-
rmark/rmark-create.c | 186 +-
src/Makefile.in | 4 +-
src/Rfam.12.1.claninfo | 104 +
src/alphabet.c | 2 +-
src/bandcyk-montecarlo-test.c | 6 +-
src/bandcyk-truncation-test.c | 9 +-
src/cm.c | 36 +-
src/cm_alidisplay.c | 6 +-
src/cm_alndata.c | 2 +-
src/cm_dispatch.h | 4 +-
src/cm_dpalign.c | 23 +-
src/cm_dpalign_trunc.c | 12 +-
src/cm_dpsearch.c | 26 +-
src/cm_dpsearch_trunc.c | 16 +-
src/cm_dpsmall.c | 6 +-
src/cm_file.c | 16 +-
src/cm_modelconfig.c | 6 +-
src/cm_modelmaker.c | 12 +-
src/cm_mx.c | 60 +-
src/cm_p7_modelmaker.c | 7 +-
src/cm_parsetree.c | 7 +-
src/cm_pipeline.c | 681 +-
src/cm_qdband.c | 6 +-
src/cm_submodel.c | 14 +-
src/cm_tophits.c | 1537 +-
src/cm_trunc.c | 2 +-
src/cmalign.c | 103 +-
src/cmbuild.c | 46 +-
src/cmcalibrate.c | 35 +-
src/cmconvert.c | 4 +-
src/cmemit.c | 8 +-
src/cmfetch.c | 4 +-
src/cmpress.c | 4 +-
src/cmscan.c | 1572 +-
src/cmsearch.c | 257 +-
src/cmstat.c | 4 +-
src/config.h.in | 2 +-
src/cp9-test.c | 4 +-
src/cp9.c | 4 +-
src/cp9_dp.c | 4 +-
src/cp9_modelmaker.c | 9 +-
src/cp9_trace.c | 10 +-
src/display.c | 6 +-
src/eweight.c | 6 +-
src/hmmband.c | 23 +-
src/hmmband.h | 4 +-
src/impl_sse/Makefile.in | 4 +-
src/impl_sse/impl_sse.h | 4 +-
src/impl_sse/sse_cm_dpsearch.c | 14 +-
src/impl_sse/sse_cm_dpsmall.c | 18 +-
src/impl_sse/sse_cmcons_hitmx.c | 6 +-
src/impl_sse/sse_cmcons_mscyk.c | 4 +-
src/infernal.h | 86 +-
src/mpisupport.c | 27 +-
src/prior.c | 2 +-
src/prior.h | 2 +-
src/sa-Makefile.in | 4 +-
src/sub_cm-test.c | 4 +-
src/trcyk.c | 2 -
testsuite/5.c.cm | 4815 +++
testsuite/5.claninfo | 1 +
testsuite/Makefile.in | 4 +-
testsuite/Rfam.12.1.clanin | 104 +
testsuite/bug-i1.pl | 2 +-
testsuite/bug-i38.pl | 2 +-
testsuite/bug-i44.pl | 82 +
testsuite/dev_testsuite.sqc | 23 +-
testsuite/emitted-5.fa | 19 +
testsuite/i1.pm | 81 +-
testsuite/itest2-duplicate-names.pl | 4 +-
testsuite/itest5-pipeline.pl | 8 +-
testsuite/itest6-sensitivity.pl | 16 +-
testsuite/itest7-trunc.pl | 24 +-
testsuite/itest8-glist.pl | 6 +-
testsuite/itest9-overlaps.pl | 174 +
testsuite/tRNA-Sec.c.cm | 701 +
testsuite/testsuite.sqc | 6 +
tutorial/tRNA5.c.cm | 14 +-
570 files changed, 60781 insertions(+), 64283 deletions(-)
diff --git a/COPYRIGHT b/COPYRIGHT
deleted file mode 100644
index 3e47774..0000000
--- a/COPYRIGHT
+++ /dev/null
@@ -1,46 +0,0 @@
-Infernal - inference of RNA secondary structural alignments
-Copyright (C) 2014 Howard Hughes Medical Institute.
-------------------------------------------------------------------
-
-Copyright (C) 2013 HHMI Janelia Farm Research Campus
-
- Portions Copyright (C) 1991-2013 Sean R. Eddy
- Portions Copyright (C) 2005-2013 Eric P. Nawrocki
- Portions Copyright (C) 2005-2011 Diana L. Kolbe
- Portions Copyright (C) 2004 Zasha Weinberg
- Portions Copyright (C) 1990 Don G. Gilbert
- Portions Copyright (C) 1995-2006 Washington University in St. Louis
- Portions Copyright (C) 1992-1995 Medical Research Council, UK
- Portions Copyright (C) 2004 University of Washington, Seattle
- Portions Copyright (C) 1986,1993,1995 University of Toronto
- Portions Copyright (C) 1989-2001 Free Software Foundation
- Portions Copyright (C) 1991 Massachusetts Institute of Technology
-
-Infernal includes the HMMER software package, which has its own license and
-copyright information. See hmmer/COPYRIGHT and hmmer/LICENSE.
-
-Infernal uses the Easel software library, which has its own license and
-copyright information. See easel/COPYRIGHT and easel/LICENSE.
-
-Infernal is distributed under the terms of the GNU General Public
-License version 3 (GPLv3). See the file LICENSE for details.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-A copy of the GNU General Public License is in the file LICENSE. You
-may also obtain a copy from <http://www.gnu.org/licenses/>.
-
-------------------------------------------------------------------
-The Infernal development team
-HHMI Janelia Farm Research Campus
-http://infernal.janelia.org/
-
-
diff --git a/INSTALL b/INSTALL
index 295456b..d23f627 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,15 +1,15 @@
Brief installation instructions
-Infernal 1.1.1; July 2014
+Infernal 1.1.2; July 2016
-------------------------------------------------------------
These are quick installation instructions. For complete documentation,
including customization and troubleshooting, please see the
Installation chapter in the Infernal User's Guide (Userguide.pdf).
-Starting from a source distribution, infernal-1.1.1.tar.gz:
- uncompress: uncompress infernal-1.1.1.tar.gz
- unpack: tar xf infernal-1.1.1.tar
- move into new directory: cd infernal-1.1.1
+Starting from a source distribution, infernal-1.1.2.tar.gz:
+ uncompress: uncompress infernal-1.1.2.tar.gz
+ unpack: tar xf infernal-1.1.2.tar
+ move into new directory: cd infernal-1.1.2
configure: ./configure
build: make
automated tests: make check
@@ -30,20 +30,33 @@ instruction sets, you won’t be able to install and run Infernal 1.1 on
it.
-------------------------------------------------------------
-Starting from a Subversion (SVN) working copy:
+Starting from a Git Repo:
-If you have checked Infernal out from its Subversion repository, there's
+If you have cloned the Infernal Git repository, there's
some additional stuff you need to do one-time-only in your new working
-directory:
+directory.
+First you need to clone easel and hmmer too:
+ cd infernal
+ git clone https://github.com/EddyRivasLab/easel.git
+ git clone https://github.com/EddyRivasLab/hmmer.git
+
+And switch to the h3-master branch:
+ cd hmmer
+ git checkout h3-master
+
+You may want to switch to the 'develop' branch of infernal, the
+'h3-develop' branch of hmmer and the 'develop' branch of easel if you
+want the in-development code.
+
+And finally:
ln -s easel/aclocal.m4 aclocal.m4
- ln -s easel/aclocal.m4 hmmer/aclocal.m4
+ (cd hmmer; ln -s ../easel/aclocal.m4 aclocal.m4;)
autoconf
(cd easel; autoconf; cd ../hmmer; autoconf;)
-------------------------------------------------------------
The Infernal development team
-HHMI Janelia Farm Research Campus
-http://infernal.janelia.org/
-
+github.com/EddyRivasLab/infernal/
+http://eddylab.org/infernal
diff --git a/LICENSE b/LICENSE
index 10926e8..5f6b299 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,675 +1,58 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+Infernal - inference of RNA secondary structural alignments
+ at INFERNAL_COPYRIGHT@
+Copyright (C) 1991-2016 Sean R. Eddy
+Copyright (C) 2005-2016 Eric P. Nawrocki
+Copyright (C) 2005-2011 Diana L. Kolbe
+Copyright (C) 2004 Zasha Weinberg
+Copyright (C) 1990 Don G.Gilbert
+Copyright (C) 2000-2016 Howard Hughes Medical Institute
+Copyright (C) 1995-2006 Washington University School of Medicine
+Copyright (C) 1992-1995 MRC Laboratory of Molecular Biology
+Copyright (C) 2004 University of Washington, Seattle
+Copyright (C) 1986,1993,1995 University of Toronto
+Copyright (C) 1989-2001 Free Software Foundation
+Copyright (C) 1991 Massachussetts Institute of Technology
+All rights reserved.
+
+------------------------------------------------------------------
+
+Infernal is open source software, freely distributed under the terms of a
+standard BSD (Berkeley Software Distribution) license:
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+------------------------------------------------------------------
+
+Infernal includes the HMMER software package, which is also open source and
+BSD licensed. See hmmer/LICENSE.
+
+Infernal uses the Easel software library, which is also open source and
+BSD licensed. See easel/LICENSE.
diff --git a/Makefile.in b/Makefile.in
index 42b07cb..9135dd8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -153,10 +153,10 @@ check:
${QUIET_SUBDIR0}${HMMERDIR} ${QUIET_SUBDIR1} tests
${QUIET_SUBDIR0}src ${QUIET_SUBDIR1} tests
${QUIET_SUBDIR0}${ESLDIR} ${QUIET_SUBDIR1} check
- if test -d ${HMMERDIR}/easel; then cp ${ESLDIR}/miniapps/esl-afetch ${HMMERDIR}/easel/miniapps; fi
- if test -d ${HMMERDIR}/easel; then cp ${ESLDIR}/miniapps/esl-reformat ${HMMERDIR}/easel/miniapps; fi
- if test -d ${HMMERDIR}/easel; then cp ${ESLDIR}/miniapps/esl-sfetch ${HMMERDIR}/easel/miniapps; fi
- if test -d ${HMMERDIR}/easel; then cp ${ESLDIR}/miniapps/esl-shuffle ${HMMERDIR}/easel/miniapps; fi
+ if test -d ${HMMERDIR}/easel && ! test -e ${HMMERDIR}/easel/miniapps/esl-afetch; then cp ${ESLDIR}/miniapps/esl-afetch ${HMMERDIR}/easel/miniapps; fi
+ if test -d ${HMMERDIR}/easel && ! test -e ${HMMERDIR}/easel/miniapps/esl-reformat; then cp ${ESLDIR}/miniapps/esl-reformat ${HMMERDIR}/easel/miniapps; fi
+ if test -d ${HMMERDIR}/easel && ! test -e ${HMMERDIR}/easel/miniapps/esl-sfetch; then cp ${ESLDIR}/miniapps/esl-sfetch ${HMMERDIR}/easel/miniapps; fi
+ if test -d ${HMMERDIR}/easel && ! test -e ${HMMERDIR}/easel/miniapps/esl-sfetch; then cp ${ESLDIR}/miniapps/esl-shuffle ${HMMERDIR}/easel/miniapps; fi
if ! test -d ${HMMERDIR}/easel; then cd ${HMMERDIR}; @LN_S@ ../${ESLDIR} .; cd ..; fi
if ! test -d ${srcdir}/${HMMERDIR}/easel; then @LN_S@ ${srcdir}/${ESLDIR} ${srcdir}/${HMMERDIR}/easel; fi
${QUIET_SUBDIR0}${HMMERDIR}/testsuite ${QUIET_SUBDIR1} check
@@ -227,16 +227,7 @@ distclean:
# "make TAGS": emacs etags database, for searching the whole source tree.
TAGS:
- etags src/*.[ch] src/*.in
- etags -a testsuite/*.[ch] testsuite/*.in
- etags -a easel/*.[ch] easel/*.in
-
-################################################################
-# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Other copyrights also apply. See the COPYRIGHT file for a full list.
-#
-# Infernal is distributed under the terms of the GNU General Public License
-# (GPLv3). See the LICENSE file for details.
-################################################################
+ ./makeTAGS.sh
+
+
+
diff --git a/README b/README
index fbbdc8b..accd1ac 100644
--- a/README
+++ b/README
@@ -1,7 +1,8 @@
Infernal - inference of RNA secondary structure alignments
-http://infernal.janelia.org/
-Version 1.1.1; July 2014
-Copyright (C) 2014 Howard Hughes Medical Institute.
+http://eddylab.org/infernal/
+
+Version 1.1.2; July 2016
+Copyright (C) 2016 Howard Hughes Medical Institute.
------------------------------------------------------------------
Infernal is an implementation of covariance models (CMs), which are
@@ -14,14 +15,13 @@ more homologs of your RNAs (the "cmsearch" program). You can also use
a CM of a representative alignment of your sequence family to create a
larger consensus alignment of any number of RNAs (the "cmalign"
program). Infernal is the software engine underlying the Rfam RNA
-database (http://rfam.janelia.org).
+database (http://rfam.xfam.org/).
Other files to read in the top-level source directory:
INSTALL Brief installation instructions.
Userguide.pdf The Infernal User's Guide.
- COPYRIGHT Copyright and license information.
- LICENSE The GNU General Public License (GPLv3).
+ LICENSE copyright and license information
To get started after installation, see the Tutorial section in the
Infernal User's Guide (Userguide.pdf).
@@ -29,8 +29,5 @@ Infernal User's Guide (Userguide.pdf).
-------------------------------------------------------------------
The Infernal development team
-HHMI Janelia Farm Research Campus
-http://infernal.janelia.org/
-
-
-
+github.com/EddyRivasLab/infernal/
+http://eddylab.org/infernal
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 4f4c6ff..b401135 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -1,177 +1,29 @@
-Infernal 1.1.1 release notes
-http://infernal.janelia.org/
-EPN, Mon Jul 21 14:01:18 2014
+Infernal 1.1.2 release notes
+http://eddylab.org/infernal/
+EPN, Fri Jul 1 16:28:48 2016
________________________________________________________________
-Infernal 1.1.1 is the first update release for Infernal 1.1.
+Infernal 1.1.2 is the second update release for Infernal 1.1.
-Notable changes from 1.1:
+Notable changes from 1.1.1:
- - In cmsearch and cmscan, the maximum size of an HMM banded matrix is
- now model size dependent instead of the fixed 128 Mb maximum size
- previously used. The maximum size ranges from 128 Mb (for normal
- size and small models) to 512 Mb (for large models). This change
- will only rarely and subtly affect search and alignment results for
- large models (window size 'W' parameter > 1000, e.g. SSU and LSU
- rRNA models) and will not affect results at all for the vast
- majority of models.
+ - cmscan is significantly improved, and can now be used for genome
+ annotation; enhancements include:
+ o speed improvements due to storage of models in memory instead of
+ rereading from disk for each query sequence
+ o overlapping hits are annotated in tabular output files
+ with the --tblout <f> --fmt 2 option combination
+ o clan membership (a la Rfam) is annotated in tabular output files
+ with the --tblout <f> --fmt 2 --clanin <f> option combination.
+ o there is no longer a maximum query sequence length
- - Fixed bug #i41, which caused a failure with binary output of
- in the 'cmconvert' program.
+ - the Easel and HMMER3 libraries which are included with Infernal have
+ undergone numerous bug fixes and improvements.
- - Fixed bug #i42, which affected alignments for truncated hits
- in rare cases by using slightly tighter HMM band constraints than
- necessary.
+ - Fixed bug #i44, which caused a problem with the cmalign --mapstr
+ option if only one half of a base pair in the input alignment
+ structure was modelled by a consensus position (and the other was
+ modelled as an insert).
- - Fixed bug #i43, which caused cmsearch to fail with an error message
- for large models (> 3000 consensus positions) in special situations
- (empirically about 1 in a million hits).
-
-
-================================================================
-For completeness, the release notes for Infernal 1.1 follow:
-================================================================
-
-Infernal 1.1 is a major new release of Infernal. Most of the programs
-in Infernal have been completely rewritten since the last release
-(v1.0.2), and output content and formatting for several programs has
-changed dramatically. Many of the changes have been enabled by and
-modeled after the HMMER3 package (http://hmmer.org). Here are a list
-of the most significant changes since the 1.0.2 release:
-
-- Infernal now depends on HMMER (which is included and built with
- Infernal) as a library in addition to the Easel library.
-
-- The cmsearch program is greatly accelerated. It uses a profile HMM
- filter pipeline similar to the one used by HMMER3.
-
-- The cmscan program has been added for searching a query sequence
- against a database of CMs. This program is very similar to the
- hmmscan program of the HMMER3 package. It uses the same filter
- pipeline that cmsearch does.
-
-- The final stages of the cmsearch and cmscan filter pipeline use HMM
- banded CM search algorithms (CYK and Inside) to accelerate searches.
-
-- The most computationally expensive programs (cmalign, cmcalibrate,
- cmsearch, cmscan) use multiple processors via threading on systems
- that support POSIX threads.
-
-- Output from cmsearch has changed dramatically. It is now consistent
- with hmmsearch output from HMMER3.
-
-- Support for dealing with truncated sequences has been added and is
- used by default in the cmalign, cmsearch and cmscan
- program. Although not rigorously tested, we believe default
- cmalign should outperform cmalign --sub.
-
-- Model-specific HMM filter thresholds are no longer determined via
- simulation in cmcalibrate, nor used in cmsearch. HMM filter
- thresholds are now completely determined by the database size.
-
-- The utility programs cmconvert, cmfetch, and cmpress have been
- added, for converting CM file formats, fetching individual CMs from
- a database, and preparing CM files for cmscan, respectively.
-
-- The cmbuild program now builds a profile HMM filter in addition to a
- CM and writes parameters for the profile HMM and the CM to the
- output CM file.
-
-- The CM file format has changed significantly. Infernal 1.0 files can
- be converted to 1.1 format with the cmconvert program. The new
- format is documented in the user's guide.
-
-- Infernal 1.1 includes new mixture dirichlet priors and singlet
- component transition priors, estimated from more diverse and larger
- input datasets than those used to estimate previous priors.
-
-- The programs cmsearch and cmscan automatically determine when a
- model has zero basepairs and use a specific HMM-only comparison
- pipeline that is nearly identical to HMMER3's, for faster searches
- with these models using only a profile HMM.
-
-- The cmbuild options --rf and --gapthresh have been replaced by
- --hand and --symfrac. --hand mimics --rf closely, but to reproduce
- --gapthresh <x> from previous versions use --symfrac <y>, where
- <y> = 1.0 - <x>.
-
-Release candidate 1 (1.1rc1) was released 25 June 2012.
-
-Release candidate 2 (1.1rc2; 14 Dec 2012) fixed several bugs and added
-several minor improvements:
-
-Bug fixes:
- - #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.
-
- - cmscan --glist <f> option added to allow specific models (listed in
- <f>) 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.
-
-Release candidate 3 (1.1rc3; 3 June 2013) fixed two bugs and minor
-updates to the RMARK benchmarking scripts:
-
- - #i36: cmsearch: fails in rare cases due to bug in alignment
- traceback bug.
-
- - #i37: cmsearch: fails in rare cases due to HMM constraint/band
- mapping bug.
-
-Release candidate (1.1rc4; 24 June 2013) fixed two bugs and minor
-updates to the RMARK benchmarking scripts:
-
- - #i38: cmalign: --mapali <f> doesn't work if alignment in <f> has no
- consensus structure annotation.
-
- - #i39: cmbuild: -O option can output corrupt alignments if input
- alignment has zero basepairs.
-
-
-The official 1.1 release (21 Oct 2013) added a single bug fix:
-
- - #i40: cmcalibrate: fails on very large models (only observed for
- eukaryotic LSU rRNA models).
-
---------------------------
-For more information, see http://infernal.janelia.org
+________________________________________________________________
+For more information, see http://eddylab.org/infernal/
diff --git a/Userguide.pdf b/Userguide.pdf
index 2bda3d3..d5c660b 100644
Binary files a/Userguide.pdf and b/Userguide.pdf differ
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 120000
index 865f5c8..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1 +0,0 @@
-easel/aclocal.m4
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..e531239
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,873 @@
+# aclocal.m4 contains custom macros used for creating configuration scripts.
+#
+# The aclocal.m4 in Easel is the master copy. HMMER and other projects
+# that depend on Easel create a symlink to the Easel aclocal.m4.
+#
+# Contents:
+# 1. CHECK_GNU_MAKE Sets EXEC_DEPENDENCY to $$@.o vs. %: %.o for sysv vs. GNU make.
+# 2. ACX_MPI Detects MPI installation
+# 3. ACX_PTHREAD Detects POSIX threads
+# 4. AX_COMPILER_VENDOR Sets $ax_cv_c_compiler_vendor to gnu, intel, etc.
+# 5. AX_CHECK_COMPILER_FLAGS Checks for support of a compiler flag. Example: -msse2
+# 6. AX_GCC_FUNC_ATTRIBUTE Checks for gcc-like support of function __attribute() tags
+# 7. ESL_PIC_FLAGS Detects whether/how to build PIC (position independent code)
+# 8. Copyright, license info
+#
+# The autoconf macro archive is at:
+# http://www.gnu.org/software/ac-archive/
+#
+
+#################################################################
+# Macro: CHECK_GNU_MAKE
+# Usage: CHECK_GNU_MAKE
+# Author: John Darrington <j.darrington at elvis.murdoch.edu.au>
+# Modified from the original.
+#
+# Sets the format of makefile dependency lines for executables.
+#
+# We need this because GNU make and SYSV make use different systems
+# specifying variables for dependencies: $$@ in sysv, %: %.o in GNU.
+# Would love to hear a better way of doing this.
+#
+# I use two different conventions in my Makefiles. Sometimes
+# executable "foo" has a file "foo.c" - this is the HMMER, Easel, Infernal convention.
+# Sometimes executable "foo" has a file "foo_main.c" - this is
+# my older SQUID convention. The configure script sets the
+# EXEC_DEPENDENCY appropriately: here, HMMER style.
+#
+# Then we can write one Makefile line for all programs in ${PROGS} like so:
+# ${PROGS}: @EXEC_DEPENDENCY@
+#
+# Sets an output variable EXEC_DEPENDENCY.
+#
+AC_DEFUN(CHECK_GNU_MAKE,[
+ AC_MSG_CHECKING(whether you have a GNU make)
+ foundGNUmake='nope, so we assume you will use a sysv-compatible make.' ;
+ EXEC_DEPENDENCY=[\$\$\@.o] ;
+ for a in "$MAKE" make gmake gnumake ; do
+ if test -z "$a" ; then continue ; fi ;
+ if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
+ foundGNUmake='yes, you do; and we assume you will use it!' ;
+ EXEC_DEPENDENCY='%: %.o' ;
+ fi
+ done
+ AC_MSG_RESULT($foundGNUmake)
+ AC_SUBST(EXEC_DEPENDENCY)
+])
+
+
+################################################################
+# Macro: ACX_MPI
+# Usage: ACX_MPI([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+# Authors: Steven G. Johnson and Julian C. Cummings
+# Version: 2006-10-22
+# Unmodified from the original; can be replaced with new version.
+#
+# xref http://autoconf-archive.cryp.to/acx_mpi.html
+# Sets MPICC, MPILIBS output variable.
+# If ACTION-IF-FOUND is not specified, default action defines HAVE_MPI.
+#
+AC_DEFUN([ACX_MPI], [
+AC_PREREQ(2.50) dnl for AC_LANG_CASE
+
+AC_LANG_CASE([C], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_ARG_VAR(MPICC,[MPI C compiler command])
+ AC_CHECK_PROGS(MPICC, mpicc hcc mpxlc_r mpxlc mpcc cmpicc, $CC)
+ acx_mpi_save_CC="$CC"
+ CC="$MPICC"
+ AC_SUBST(MPICC)
+],
+[C++], [
+ AC_REQUIRE([AC_PROG_CXX])
+ AC_ARG_VAR(MPICXX,[MPI C++ compiler command])
+ AC_CHECK_PROGS(MPICXX, mpic++ mpicxx mpiCC hcp mpxlC_r mpxlC mpCC cmpic++, $CXX)
+ acx_mpi_save_CXX="$CXX"
+ CXX="$MPICXX"
+ AC_SUBST(MPICXX)
+],
+[Fortran 77], [
+ AC_REQUIRE([AC_PROG_F77])
+ AC_ARG_VAR(MPIF77,[MPI Fortran 77 compiler command])
+ AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf_r mpxlf mpf77 cmpifc, $F77)
+ acx_mpi_save_F77="$F77"
+ F77="$MPIF77"
+ AC_SUBST(MPIF77)
+],
+[Fortran], [
+ AC_REQUIRE([AC_PROG_FC])
+ AC_ARG_VAR(MPIFC,[MPI Fortran compiler command])
+ AC_CHECK_PROGS(MPIFC, mpif90 mpxlf95_r mpxlf90_r mpxlf95 mpxlf90 mpf90 cmpif90c, $FC)
+ acx_mpi_save_FC="$FC"
+ FC="$MPIFC"
+ AC_SUBST(MPIFC)
+])
+
+if test x = x"$MPILIBS"; then
+ AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+ [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+ [Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[ call MPI_Init])],[MPILIBS=" "
+ AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])],
+ [Fortran], [AC_MSG_CHECKING([for MPI_Init])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[ call MPI_Init])],[MPILIBS=" "
+ AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
+fi
+AC_LANG_CASE([Fortran 77], [
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(fmpi, MPI_Init, [MPILIBS="-lfmpi"])
+ fi
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(fmpich, MPI_Init, [MPILIBS="-lfmpich"])
+ fi
+],
+[Fortran], [
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(fmpi, MPI_Init, [MPILIBS="-lfmpi"])
+ fi
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(mpichf90, MPI_Init, [MPILIBS="-lmpichf90"])
+ fi
+])
+if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(mpi, MPI_Init, [MPILIBS="-lmpi"])
+fi
+if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(mpich, MPI_Init, [MPILIBS="-lmpich"])
+fi
+
+dnl We have to use AC_TRY_COMPILE and not AC_CHECK_HEADER because the
+dnl latter uses $CPP, not $CC (which may be mpicc).
+AC_LANG_CASE([C], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpi.h])
+ AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi],
+[C++], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpi.h])
+ AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi],
+[Fortran 77], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpif.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ include 'mpif.h'])],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi],
+[Fortran], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpif.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ include 'mpif.h'])],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi])
+
+AC_LANG_CASE([C], [CC="$acx_mpi_save_CC"],
+ [C++], [CXX="$acx_mpi_save_CXX"],
+ [Fortran 77], [F77="$acx_mpi_save_F77"],
+ [Fortran], [FC="$acx_mpi_save_FC"])
+
+AC_SUBST(MPILIBS)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x = x"$MPILIBS"; then
+ $2
+ :
+else
+ ifelse([$1],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$1])
+ :
+fi
+])dnl ACX_MPI
+
+
+
+#################################################################
+# Macro: ACX_PTHREAD
+# Usage: ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+# Authors: Steven G. Johnson <stevenj at alum.mit.edu>
+# Alejandro Forero Cuervo <bachue at bachue.com>
+# Version: 1.9 (2004/02/23)
+# Source: http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html
+#
+# SRE: I have modified this source; search for SRE to see where.
+# Solaris needs -D_POSIX_PTHREAD_SEMANTICS or ctime_r() calls will choke.
+#
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html
+dnl
+AC_DEFUN([ACX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ save_LIBS="$LIBS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+ AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
+ AC_MSG_RESULT($acx_pthread_ok)
+ if test x"$acx_pthread_ok" = xno; then
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try. Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important. Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+# other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+# doesn't hurt to check since this sometimes defines pthreads too;
+# also defines -D_REENTRANT)
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+ *solaris*)
+
+ # On Solaris (at least, for some versions), libc contains stubbed
+ # (non-functional) versions of the pthreads routines, so link-based
+ # tests will erroneously succeed. (We need to link with -pthread or
+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
+ # a function called by this macro, so we could check for that, but
+ # who knows whether they'll stub that too in a future libc.) So,
+ # we'll just look for -pthreads and -lpthread first:
+
+ acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
+ ;;
+esac
+
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
+
+ case $flag in
+ none)
+ AC_MSG_CHECKING([whether pthreads work without any flags])
+ ;;
+
+ -*)
+ AC_MSG_CHECKING([whether pthreads work with $flag])
+ PTHREAD_CFLAGS="$flag"
+ ;;
+
+ pthread-config)
+ AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
+ if test x"$acx_pthread_config" = xno; then continue; fi
+ PTHREAD_CFLAGS="`pthread-config --cflags`"
+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+ ;;
+
+ *)
+ AC_MSG_CHECKING([for the pthreads library -l$flag])
+ PTHREAD_LIBS="-l$flag"
+ ;;
+ esac
+
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+ # Check for various functions. We must include pthread.h,
+ # since some functions may be macros. (On the Sequent, we
+ # need a special flag -Kthread to make this header compile.)
+ # We check for pthread_join because it is in -lpthread on IRIX
+ # while pthread_create is in libc. We check for pthread_attr_init
+ # due to DEC craziness with -lpthreads. We check for
+ # pthread_cleanup_push because it is one of the few pthread
+ # functions on Solaris that doesn't have a non-functional libc stub.
+ # We try pthread_create on general principles.
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_t th; pthread_join(th, 0);
+ pthread_attr_init(0); pthread_cleanup_push(0, 0);
+ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+ [acx_pthread_ok=yes])
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ AC_MSG_RESULT($acx_pthread_ok)
+ if test "x$acx_pthread_ok" = xyes; then
+ break;
+ fi
+
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+ save_LIBS="$LIBS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+ # Detect AIX lossage: threads are created detached by default
+ # and the JOINABLE attribute has a nonstandard name (UNDETACHED).
+ AC_MSG_CHECKING([for joinable pthread attribute])
+ AC_TRY_LINK([#include <pthread.h>],
+ [int attr=PTHREAD_CREATE_JOINABLE;],
+ ok=PTHREAD_CREATE_JOINABLE, ok=unknown)
+ if test x"$ok" = xunknown; then
+ AC_TRY_LINK([#include <pthread.h>],
+ [int attr=PTHREAD_CREATE_UNDETACHED;],
+ ok=PTHREAD_CREATE_UNDETACHED, ok=unknown)
+ fi
+ if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then
+ AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok,
+ [Define to the necessary symbol if this constant
+ uses a non-standard name on your system.])
+ fi
+ AC_MSG_RESULT(${ok})
+ if test x"$ok" = xunknown; then
+ AC_MSG_WARN([we do not know how to create joinable pthreads])
+ fi
+
+ AC_MSG_CHECKING([if more special flags are required for pthreads])
+ flag=no
+# Added _POSIX_PTHREAD_SEMANTICS for solaris. Needed for ctime_r() compliance.
+# SRE, Fri Oct 29 10:03:36 2010 [J7/3]
+ case "${host_cpu}-${host_os}" in
+ *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";;
+ *solaris*) flag="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS";;
+ *-osf* | *-hpux*) flag="-D_REENTRANT";;
+ esac
+ AC_MSG_RESULT(${flag})
+ if test "x$flag" != xno; then
+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+ fi
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ # More AIX lossage: must compile with cc_r
+ AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
+else
+ PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+ :
+else
+ acx_pthread_ok=no
+ $2
+fi
+AC_LANG_RESTORE
+])dnl ACX_PTHREAD
+#
+# ACX_PTHREAD macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+#################################################################
+# Macro: AX_COMPILER_VENDOR
+# Usage: AX_COMPILER_VENDOR
+# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
+# Copyright (C) 2007 Matteo Frigo
+# Version: 2007-08-01
+# Source: http://autoconf-archive.cryp.to/ax_compiler_vendor.html
+#
+# Sets $ax_cv_c_compiler_vendor to gnu, intel, ibm, sun, hp, borland,
+# comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft, watcom, etc.
+#
+# Everything below is verbatim from the archive. DO NOT MODIFY IT.
+AC_DEFUN([AX_COMPILER_VENDOR],
+[
+AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
+ [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
+ # note: don't check for gcc first since some other compilers define __GNUC__
+ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
+ vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
+#if !($vencpp)
+ thisisanerror;
+#endif
+])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
+ done
+ ])
+])
+#
+# AX_COMPILER_VENDOR macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+#################################################################
+# Macro: AX_CHECK_COMPILER_FLAGS
+# Usage: AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
+# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
+# Copyright (C) 2007 Matteo Frigo.
+# Version: 2007-07-29
+# Source: http://autoconf-archive.cryp.to/ax_check_compiler_flags.html
+#
+# Check whether the given compiler FLAGS work with the current language's compiler,
+# or whether they give an error. (Warnings, however, are ignored.)
+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on success/failure.
+#
+# Everything below is verbatim from the archive. DO NOT MODIFY IT.
+#
+AC_DEFUN([AX_CHECK_COMPILER_FLAGS],
+[AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
+AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1])
+dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
+AS_LITERAL_IF([$1],
+ [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1), [
+ ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
+ AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes,
+ AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no)
+ _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])],
+ [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
+ eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes,
+ eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no)
+ _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])
+eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)
+AC_MSG_RESULT($ax_check_compiler_flags)
+if test "x$ax_check_compiler_flags" = xyes; then
+ m4_default([$2], :)
+else
+ m4_default([$3], :)
+fi
+])dnl AX_CHECK_COMPILER_FLAGS
+#
+# AX_CHECK_COMPILER_FLAGS macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+
+
+
+#################################################################
+# Macro: AX_GCC_FUNC_ATTRIBUTE
+# Usage: AX_GCC_FUNC_ATTRIBUTE(noreturn), for example
+# Author: Gabriele Svelto <gabriele.svelto at gmail.com>
+# Version: 3?
+# Source: http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# Unmodified from the original; can be replaced by a new version.
+#
+# Defines HAVE_FUNC_ATTRIBUTE_NORETURN (for example).
+#
+################################################################
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
+#
+# DESCRIPTION
+#
+# This macro checks if the compiler supports one of GCC's function
+# attributes; many other compilers also provide function attributes with
+# the same syntax. Compiler warnings are used to detect supported
+# attributes as unsupported ones are ignored by default so quieting
+# warnings when using this macro will yield false positives.
+#
+# The ATTRIBUTE parameter holds the name of the attribute to be checked.
+#
+# If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
+#
+# The macro caches its result in the ax_cv_have_func_attribute_<attribute>
+# variable.
+#
+# The macro currently supports the following function attributes:
+#
+# alias
+# aligned
+# alloc_size
+# always_inline
+# artificial
+# cold
+# const
+# constructor
+# constructor_priority for constructor attribute with priority
+# deprecated
+# destructor
+# dllexport
+# dllimport
+# error
+# externally_visible
+# flatten
+# format
+# format_arg
+# gnu_inline
+# hot
+# ifunc
+# leaf
+# malloc
+# noclone
+# noinline
+# nonnull
+# noreturn
+# nothrow
+# optimize
+# pure
+# unused
+# used
+# visibility
+# warning
+# warn_unused_result
+# weak
+# weakref
+#
+# Unsuppored function attributes will be tested with a prototype returning
+# an int and not accepting any arguments and the result of the check might
+# be wrong or meaningless so use with care.
+#
+# LICENSE
+#
+# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto at gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 3
+
+AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
+ AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
+
+ AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ m4_case([$1],
+ [alias], [
+ int foo( void ) { return 0; }
+ int bar( void ) __attribute__(($1("foo")));
+ ],
+ [aligned], [
+ int foo( void ) __attribute__(($1(32)));
+ ],
+ [alloc_size], [
+ void *foo(int a) __attribute__(($1(1)));
+ ],
+ [always_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [artificial], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [cold], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [const], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [constructor_priority], [
+ int foo( void ) __attribute__((__constructor__(65535/2)));
+ ],
+ [constructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [deprecated], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [destructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [dllexport], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [dllimport], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [error], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [externally_visible], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [flatten], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [format], [
+ int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
+ ],
+ [format_arg], [
+ char *foo(const char *p) __attribute__(($1(1)));
+ ],
+ [gnu_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [hot], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [ifunc], [
+ int my_foo( void ) { return 0; }
+ static int (*resolve_foo(void))(void) { return my_foo; }
+ int foo( void ) __attribute__(($1("resolve_foo")));
+ ],
+ [leaf], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [malloc], [
+ void *foo( void ) __attribute__(($1));
+ ],
+ [noclone], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [noinline], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [nonnull], [
+ int foo(char *p) __attribute__(($1(1)));
+ ],
+ [noreturn], [
+ void foo( void ) __attribute__(($1));
+ ],
+ [nothrow], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [optimize], [
+ __attribute__(($1(3))) int foo( void ) { return 0; }
+ ],
+ [pure], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [unused], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [used], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [visibility], [
+ int foo_def( void ) __attribute__(($1("default")));
+ int foo_hid( void ) __attribute__(($1("hidden")));
+ int foo_int( void ) __attribute__(($1("internal")));
+ int foo_pro( void ) __attribute__(($1("protected")));
+ ],
+ [warning], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [warn_unused_result], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weak], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weakref], [
+ static int foo( void ) { return 0; }
+ static int bar( void ) __attribute__(($1("foo")));
+ ],
+ [
+ m4_warn([syntax], [Unsupported attribute $1, the test may fail])
+ int foo( void ) __attribute__(($1));
+ ]
+ )], [])
+ ],
+ dnl GCC doesn't exit with an error if an unknown attribute is
+ dnl provided but only outputs a warning, so accept the attribute
+ dnl only if no warning were issued.
+ [AS_IF([test -s conftest.err],
+ [AS_VAR_SET([ac_var], [no])],
+ [AS_VAR_SET([ac_var], [yes])])],
+ [AS_VAR_SET([ac_var], [no])])
+ ])
+
+ AS_IF([test yes = AS_VAR_GET([ac_var])],
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FUNC_ATTRIBUTE_$1), 1,
+ [Define to 1 if the system has the `$1' function attribute])], [])
+
+ AS_VAR_POPDEF([ac_var])
+])
+#
+# AX_GCC_FUNC_ATTRIBUTE macro end
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+################################################################
+# Macro: ESL_PIC_FLAGS
+# Usage: ESL_PIC_FLAGS
+# Author: Dan Nicholson, Mesa3D project
+# References: http://www.mesa3d.org/
+# http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg04938.html
+#
+# Derived (essentially verbatim) from MESA_PIC_FLAGS, in the Mesa
+# project's acinclude.m4 file. From the Mesa file's header:
+# "Find out whether to build PIC code using the option --enable-pic and
+# the configure enable_static/enable_shared settings. If PIC is needed,
+# figure out the necessary flags for the platform and compiler.
+#
+# The platform checks have been shamelessly taken from libtool and
+# stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in
+# /usr/share/aclocal/libtool.m4 or
+# http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD
+#
+# Sets an output variable @PIC_FLAGS@ which should be added to
+# CFLAGS lines.
+#
+AC_DEFUN([ESL_PIC_FLAGS],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code])
+AC_ARG_ENABLE([pic],
+ [AS_HELP_STRING([--disable-pic],
+ [compile PIC objects @<:@default=enabled for shared builds
+ on supported platforms@:>@])],
+ [enable_pic="$enableval"
+ test "x$enable_pic" = x && enable_pic=auto],
+ [enable_pic=auto])
+# disable PIC by default for static builds
+if test "$enable_pic" = auto && test "$enable_static" = yes; then
+ enable_pic=no
+fi
+# if PIC hasn't been explicitly disabled, try to figure out the flags
+if test "$enable_pic" != no; then
+ AC_MSG_CHECKING([for $CC option to produce PIC])
+ # allow the user's flags to override
+ if test "x$PIC_FLAGS" = x; then
+ # see if we're using GCC
+ if test "x$GCC" = xyes; then
+ case "$host_os" in
+ aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw*|os2*|pw32*)
+ # This hack is so that the source file can tell whether
+ # it is being built for inclusion in a dll (and should
+ # export symbols for example).
+ PIC_FLAGS="-DDLL_EXPORT"
+ ;;
+ darwin*|rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ PIC_FLAGS="-fno-common"
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ ;;
+ *)
+ # Everyone else on GCC uses -fPIC
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ else # !GCC
+ case "$host_os" in
+ hpux9*|hpux10*|hpux11*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ PIC_FLAGS="+Z"
+ ;;
+ esac
+ ;;
+ linux*|k*bsd*-gnu)
+ case `basename "$CC"` in
+ icc*|ecc*|ifort*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ pgcc*|pgf77*|pgf90*|pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc
+ # compiler, which looks to be a dead project)
+ PIC_FLAGS="-fpic"
+ ;;
+ ccc*)
+ # All Alpha code is PIC.
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ PIC_FLAGS="-qpic"
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*|*Sun\ F*)
+ # Sun C 5.9 or Sun Fortran
+ PIC_FLAGS="-KPIC"
+ ;;
+ esac
+ esac
+ ;;
+ solaris*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ sunos4*)
+ PIC_FLAGS="-PIC"
+ ;;
+ esac
+ fi # GCC
+ fi # PIC_FLAGS
+ AC_MSG_RESULT([$PIC_FLAGS])
+fi
+AC_SUBST([PIC_FLAGS])
+])
+#
+# ESL_PIC_FLAGS macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+#################################################################
+# Easel - a library of C functions for biological sequence analysis
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
+#
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
+#
+# SVN $Id$
+# SVN $URL$
+#################################################################
diff --git a/configure b/configure
index 8584fef..e042184 100755
--- a/configure
+++ b/configure
@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for Infernal 1.1.1.
+# Generated by GNU Autoconf 2.63 for Infernal 1.1.2.
#
-# Report bugs to <nawrockie at janelia.hhmi.org>.
+# Report bugs to <eric.nawrocki at nih.gov>.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -596,9 +596,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='Infernal'
PACKAGE_TARNAME='infernal'
-PACKAGE_VERSION='1.1.1'
-PACKAGE_STRING='Infernal 1.1.1'
-PACKAGE_BUGREPORT='nawrockie at janelia.hhmi.org'
+PACKAGE_VERSION='1.1.2'
+PACKAGE_STRING='Infernal 1.1.2'
+PACKAGE_BUGREPORT='eric.nawrocki at nih.gov'
# Factoring default headers for most tests.
ac_includes_default="\
@@ -648,7 +648,6 @@ SIMD_CFLAGS
IMPL_CHOICE
HMMERIMPLLIB
PIC_FLAGS
-PRTDIAG
EXEC_DEPENDENCY
LN_S
AR
@@ -748,8 +747,6 @@ enable_vmx
enable_mpi
with_xlc_arch
enable_threads
-enable_portable_binary
-with_gcc_arch
enable_pic
enable_largefile
'
@@ -1316,7 +1313,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Infernal 1.1.1 to adapt to many kinds of systems.
+\`configure' configures Infernal 1.1.2 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1381,7 +1378,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Infernal 1.1.1:";;
+ short | recursive ) echo "Configuration of Infernal 1.1.2:";;
esac
cat <<\_ACEOF
@@ -1398,9 +1395,6 @@ Optional Features:
--enable-mpi enable MPI parallelization
--enable-threads enable POSIX multithreading support (default is
check)
- --enable-portable-binary
- disable compiler optimizations that would produce
- unportable binaries
--disable-pic compile PIC objects [default=enabled for shared
builds on supported platforms]
--disable-largefile omit support for large files
@@ -1409,8 +1403,6 @@ Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-xlc-arch=<arch> specify architecture <arch> for xlc -qarch
- --with-gcc-arch=<arch> use architecture <arch> for gcc -march/-mtune,
- instead of guessing
Some influential environment variables:
CC C compiler command
@@ -1427,7 +1419,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to <nawrockie at janelia.hhmi.org>.
+Report bugs to <eric.nawrocki at nih.gov>.
_ACEOF
ac_status=$?
fi
@@ -1490,7 +1482,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Infernal configure 1.1.1
+Infernal configure 1.1.2
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1504,7 +1496,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Infernal $as_me 1.1.1, which was
+It was created by Infernal $as_me 1.1.2, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -1886,7 +1878,7 @@ fi
# The four AC_INIT args set these output variables and preprocessor symbols:
# PACKAGE_NAME <package> e.g. "Infernal"
# PACKAGE_VERSION <version> e.g. "1.0"
-# PACKAGE_BUGREPORT <bug-report> e.g. "eddys at janelia.hhmi.org"
+# PACKAGE_BUGREPORT <bug-report> e.g. "eric.nawrocki at nih.gov"
# PACKAGE_TARNAME <tarname> e.g. "infernal"
# From them, it derives one more:
# PACKAGE_STRING <package> <version>, e.g. "Infernal 1.0"
@@ -1901,27 +1893,27 @@ fi
#
################################################################
-INFERNAL_DATE="July 2014"
-INFERNAL_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-INFERNAL_LICENSE="Freely distributed under the GNU General Public License (GPLv3)."
+INFERNAL_DATE="July 2016"
+INFERNAL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+INFERNAL_LICENSE="Freely distributed under a BSD open source license."
INFERNAL_VERSION=$PACKAGE_VERSION
-INFERNAL_URL="http://infernal.janelia.org/"
+INFERNAL_URL="http://eddylab.org/infernal/"
INFERNAL_ESLDIR="easel"
INFERNAL_HMMERDIR="hmmer"
INFERNAL_SADIR="hmmer/libdivsufsort"
-HMMER_DATE="July 2014"
-HMMER_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-HMMER_LICENSE="Freely distributed under the GNU General Public License (GPLv3)."
-HMMER_VERSION=i$PACKAGE_VERSION
+HMMER_DATE="July 2016"
+HMMER_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+HMMER_LICENSE="Freely distributed under a BSD open source licence."
+HMMER_VERSION="3.1b3"
HMMER_URL="http://hmmer.org/"
HMMER_ESLDIR="../easel"
HMMER_SADIR="libdivsufsort"
-EASEL_DATE="July 2014"
-EASEL_COPYRIGHT="Copyright (C) 2014 HHMI Janelia Farm Research Campus"
-EASEL_LICENSE="Freely distributed under the Janelia Software License."
-EASEL_VERSION="i$PACKAGE_VERSION"
+EASEL_DATE="July 2016"
+EASEL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute"
+EASEL_LICENSE="Freely distributed under a BSD open source license."
+EASEL_VERSION="0.43"
EASEL_URL="http://bioeasel.org/"
# Output variables (AC_OUTPUT replaces @var@ in input files, such as Makefiles)
@@ -3871,16 +3863,16 @@ if test "$impl_choice" = "none"; then
fi
if test "$impl_choice" = "none"; then
- { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&5
-$as_echo "$as_me: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&5
+$as_echo "$as_me: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&2;}
{ { $as_echo "$as_me:$LINENO: error: It appears your platform has neither and will not support Infernal." >&5
$as_echo "$as_me: error: It appears your platform has neither and will not support Infernal." >&2;}
{ (exit 1); exit 1; }; }
fi
if test "$impl_choice" = "sse" && test "$enable_sse" = "no"; then
- { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&5
-$as_echo "$as_me: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&5
+$as_echo "$as_me: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&2;}
{ $as_echo "$as_me:$LINENO: WARNING: Your platform supports only SSE, but you have disabled it." >&5
$as_echo "$as_me: WARNING: Your platform supports only SSE, but you have disabled it." >&2;}
{ { $as_echo "$as_me:$LINENO: error: You must reconfigure without disabling SSE for Infernal to build." >&5
@@ -3888,8 +3880,8 @@ $as_echo "$as_me: error: You must reconfigure without disabling SSE for Infernal
{ (exit 1); exit 1; }; }
fi
if test "$impl_choice" = "vmx" && test "$enable_vmx" = "no"; then
- { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&5
-$as_echo "$as_me: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&5
+$as_echo "$as_me: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&2;}
{ $as_echo "$as_me:$LINENO: WARNING: Your platform supports only VMX, but you have disabled it." >&5
$as_echo "$as_me: WARNING: Your platform supports only VMX, but you have disabled it." >&2;}
{ { $as_echo "$as_me:$LINENO: error: You must reconfigure without disabling VMX for Infernal to build." >&5
@@ -5864,1047 +5856,7 @@ else
if test "$sre_cflags_env_set" = "no"; then
ac_test_CFLAGS=""
fi
-
-
-
-
-
-# Check whether --enable-portable-binary was given.
-if test "${enable_portable_binary+set}" = set; then
- enableval=$enable_portable_binary; acx_maxopt_portable=$withval
-else
- acx_maxopt_portable=no
-fi
-
-
-# Try to determine "good" native compiler flags if none specified via CFLAGS
-if test "$ac_test_CFLAGS" != "set"; then
- CFLAGS=""
- case $ax_cv_c_compiler_vendor in
- dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -tune host"
-# CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host"
- if test "x$acx_maxopt_portable" = xno; then
- CFLAGS="$CFLAGS -arch host"
- fi;;
-
- sun) CFLAGS="-native -xO5 -dalign"
-# CFLAGS="-native -fast -xO5 -dalign"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS -xarch=generic"
- fi;;
-
- hp) CFLAGS="+Oall +Optrs_ansi +DSnative"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS +DAportable"
- fi;;
-
- ibm) xlc_opt="-qtune=auto -qstrict"
- if test "x$acx_maxopt_portable" = xno; then
- if test "x$XLC_ARCH" = xno; then
- xlc_opt="-qarch=auto $xlc_opt"
- else
- xlc_opt="-qarch=$XLC_ARCH $xlc_opt"
- fi
- fi
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $xlc_opt" >&5
-$as_echo_n "checking whether C compiler accepts $xlc_opt... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$xlc_opt"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- CFLAGS="-O3 -qansialias -w $xlc_opt"
-else
- CFLAGS="-O3 -qansialias -w"
- echo "******************************************************"
- echo "* You seem to have the IBM C compiler. It is *"
- echo "* recommended for best performance that you use: *"
- echo "* *"
- echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *"
- echo "* ^^^ ^^^ *"
- echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *"
- echo "* CPU you have. (Set the CFLAGS environment var. *"
- echo "* and re-run configure.) For more info, man cc. *"
- echo "******************************************************"
-fi
-
- ;;
-
- intel) CFLAGS="-O3 -ansi_alias"
- if test "x$acx_maxopt_portable" = xno; then
- icc_archflag=unknown
- icc_flags=""
- case $host_cpu in
- i686*|x86_64*)
- # icc accepts gcc assembly syntax, so these should work:
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0 output" >&5
-$as_echo_n "checking for x86 cpuid 0 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 1 output" >&5
-$as_echo_n "checking for x86 cpuid 1 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_1=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_1" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *6a?:*[234]:*:*|*6[789b]?:*:*:*) icc_flags="-xK";;
- *f3[347]:*:*:*|*f41347:*:*:*) icc_flags="-xP -xN -xW -xK";;
- *f??:*:*:*) icc_flags="-xN -xW -xK";;
- esac ;;
- esac ;;
- esac
- if test "x$icc_flags" != x; then
- for flag in $icc_flags; do
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $flag" >&5
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$flag"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- icc_archflag=$flag; break
-else
- :
-fi
-
- done
- fi
- { $as_echo "$as_me:$LINENO: checking for icc architecture flag" >&5
-$as_echo_n "checking for icc architecture flag... " >&6; }
- { $as_echo "$as_me:$LINENO: result: $icc_archflag" >&5
-$as_echo "$icc_archflag" >&6; }
- if test "x$icc_archflag" != xunknown; then
- CFLAGS="$CFLAGS $icc_archflag"
- fi
- fi
- ;;
-
- gnu)
- # default optimization flags for gcc on all systems
- CFLAGS="-O3 -fomit-frame-pointer"
-
- # -malign-double for x86 systems
- # SRE: no, that's a bad idea;
- # on 32bit Ubuntu Linux systems, for example, this
- # causes an odd and buggy interaction with _FILE_OFFSET_BITS (LFS)
- # and fstat().
- # AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double")
-
- # -fstrict-aliasing for gcc-2.95+
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -fstrict-aliasing" >&5
-$as_echo_n "checking whether C compiler accepts -fstrict-aliasing... " >&6; }
-if test "${ax_cv_c_flags__fstrict_aliasing+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-fstrict-aliasing"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_flags__fstrict_aliasing=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ax_cv_c_flags__fstrict_aliasing=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-fi
-
-eval ax_check_compiler_flags=$ax_cv_c_flags__fstrict_aliasing
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- CFLAGS="$CFLAGS -fstrict-aliasing"
-else
- :
-fi
-
-
- # note that we enable "unsafe" fp optimization with other compilers, too
- # SRE: no, that's a bad idea, don't use this
-# AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math")
-
-
-
-
-
-# Check whether --with-gcc-arch was given.
-if test "${with_gcc_arch+set}" = set; then
- withval=$with_gcc_arch; ax_gcc_arch=$withval
-else
- ax_gcc_arch=yes
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking for gcc architecture flag" >&5
-$as_echo_n "checking for gcc architecture flag... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-if test "${ax_cv_gcc_archflag+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
-ax_cv_gcc_archflag="unknown"
-
-if test "$GCC" = yes; then
-
-if test "x$ax_gcc_arch" = xyes; then
-ax_gcc_arch=""
-if test "$cross_compiling" = no; then
-case $host_cpu in
- i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0 output" >&5
-$as_echo_n "checking for x86 cpuid 0 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 1 output" >&5
-$as_echo_n "checking for x86 cpuid 1 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_1=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_1" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- case $ax_cv_gcc_x86_cpuid_0 in
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;
- *5??:*:*:*) ax_gcc_arch=pentium ;;
- *6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
- *6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6??:*:*:*) ax_gcc_arch=pentiumpro ;;
- *f3[347]:*:*:*|*f41347:*:*:*)
- case $host_cpu in
- x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
- *) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
- esac ;;
- *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
- esac ;;
- *:68747541:*:*) # AMD
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[67]?:*:*:*) ax_gcc_arch=k6 ;;
- *5[8d]?:*:*:*) ax_gcc_arch="k6-2 k6" ;;
- *5[9]?:*:*:*) ax_gcc_arch="k6-3 k6" ;;
- *60?:*:*:*) ax_gcc_arch=k7 ;;
- *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;;
- *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;;
- *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;;
- *6[68a]?:*:*:*)
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0x80000006 output" >&5
-$as_echo_n "checking for x86 cpuid 0x80000006 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0x80000006+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0x80000006=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x80000006, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0x80000006=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0x80000006=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0x80000006" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0x80000006" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- # L2 cache size
- case $ax_cv_gcc_x86_cpuid_0x80000006 in
- *:*:*[1-9a-f]??????:*) # (L2 = ecx >> 16) >= 256
- ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;
- *) ax_gcc_arch="athlon-4 athlon k7" ;;
- esac ;;
- *f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
- *f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
- *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
- *f??:*:*:*) ax_gcc_arch="k8" ;;
- esac ;;
- *:746e6543:*:*) # IDT
- case $ax_cv_gcc_x86_cpuid_1 in
- *54?:*:*:*) ax_gcc_arch=winchip-c6 ;;
- *58?:*:*:*) ax_gcc_arch=winchip2 ;;
- *6[78]?:*:*:*) ax_gcc_arch=c3 ;;
- *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;;
- esac ;;
- esac
- if test x"$ax_gcc_arch" = x; then # fallback
- case $host_cpu in
- i586*) ax_gcc_arch=pentium ;;
- i686*) ax_gcc_arch=pentiumpro ;;
- esac
- fi
- ;;
-
- sparc*)
- # Extract the first word of "prtdiag", so it can be a program name with args.
-set dummy prtdiag; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PRTDIAG+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- case $PRTDIAG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/"
-for as_dir in $as_dummy
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_PRTDIAG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag"
- ;;
-esac
-fi
-PRTDIAG=$ac_cv_path_PRTDIAG
-if test -n "$PRTDIAG"; then
- { $as_echo "$as_me:$LINENO: result: $PRTDIAG" >&5
-$as_echo "$PRTDIAG" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
- cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters`
- case $cputype in
- *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;
- *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;
- *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;;
- *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;;
- *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;;
- *cypress*) ax_gcc_arch=cypress ;;
- esac ;;
-
- alphaev5) ax_gcc_arch=ev5 ;;
- alphaev56) ax_gcc_arch=ev56 ;;
- alphapca56) ax_gcc_arch="pca56 ev56" ;;
- alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;;
- alphaev6) ax_gcc_arch=ev6 ;;
- alphaev67) ax_gcc_arch=ev67 ;;
- alphaev68) ax_gcc_arch="ev68 ev67" ;;
- alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;;
- alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;;
- alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;;
-
- powerpc*)
- cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null`
- cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'`
- case $cputype in
- *750*) ax_gcc_arch="750 G3" ;;
- *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;;
- *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;;
- *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;;
- *970*) ax_gcc_arch="970 G5 power4";;
- *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";;
- *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";;
- 603ev|8240) ax_gcc_arch="$cputype 603e 603";;
- *) ax_gcc_arch=$cputype ;;
- esac
- ax_gcc_arch="$ax_gcc_arch powerpc"
- ;;
-esac
-fi # not cross-compiling
-fi # guess arch
-
-if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then
-for arch in $ax_gcc_arch; do
- if test "x$acx_maxopt_portable" = xyes; then # if we require portable code
- flags="-mtune=$arch"
- # -mcpu=$arch and m$arch generate nonportable code on every arch except
- # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr.
- case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac
- else
- flags="-march=$arch -mcpu=$arch -m$arch"
- fi
- for flag in $flags; do
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $flag" >&5
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$flag"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- ax_cv_gcc_archflag=$flag; break
-else
- :
-fi
-
- done
- test "x$ax_cv_gcc_archflag" = xunknown || break
-done
-fi
-
-fi # $GCC=yes
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for gcc architecture flag" >&5
-$as_echo_n "checking for gcc architecture flag... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_archflag" >&5
-$as_echo "$ax_cv_gcc_archflag" >&6; }
-if test "x$ax_cv_gcc_archflag" = xunknown; then
- :
-else
- CFLAGS="$CFLAGS $ax_cv_gcc_archflag"
-fi
-
- ;;
- esac
-
- if test -z "$CFLAGS"; then
- echo ""
- echo "********************************************************"
- echo "* WARNING: Don't know the best CFLAGS for this system *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
- echo "********************************************************"
- echo ""
- CFLAGS="-O3"
- fi
-
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $CFLAGS" >&5
-$as_echo_n "checking whether C compiler accepts $CFLAGS... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$CFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- :
-else
-
- echo ""
- echo "********************************************************"
- echo "* WARNING: The guessed CFLAGS don't seem to work with *"
- echo "* your compiler. *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "********************************************************"
- echo ""
- CFLAGS=""
-
-fi
-
-
-fi
-
+ AX_CC_MAXOPT
ac_test_CFLAGS="$sre_save_ac_test_cflags"
# That was a workaround. AX_CC_MAXOPT apparently thinks that
# $ac_test_CFLAGS only gets set if ${CFLAGS} was set by the
@@ -7917,8 +6869,8 @@ _ACEOF
INFERNAL_IMPLDIR=""
;;
-*) { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&5
-$as_echo "$as_me: WARNING: Infernal 1.1.1 requires VMX or SSE capability for parallel instructions." >&2;}
+*) { $as_echo "$as_me:$LINENO: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&5
+$as_echo "$as_me: WARNING: Infernal 1.1.2 requires VMX or SSE capability for parallel instructions." >&2;}
{ { $as_echo "$as_me:$LINENO: error: Unable to use vector instructions (SSE or VMX)." >&5
$as_echo "$as_me: error: Unable to use vector instructions (SSE or VMX)." >&2;}
{ (exit 1); exit 1; }; }
@@ -8056,6 +7008,96 @@ LIBGSL=
# anyway according to Sean. We still need to define LIBGSL though, because Easel
# has files with @LIBGSL@ in them.
+# Easel stopwatch high-res timer may try to use clock_gettime,
+# which may be in librt
+{ $as_echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if test "${ac_cv_search_clock_gettime+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_search_clock_gettime=$ac_res
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext
+ if test "${ac_cv_search_clock_gettime+set}" = set; then
+ break
+fi
+done
+if test "${ac_cv_search_clock_gettime+set}" = set; then
+ :
+else
+ ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
+ac_res=$ac_cv_search_clock_gettime
+if test "$ac_res" != no; then
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
# Checks for headers
# Defines HAVE_SYS_TYPES_H, HAVE_STDINT_H, etc.
@@ -8576,9 +7618,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ----------------------------------------- ##
-## Report this to nawrockie at janelia.hhmi.org ##
-## ----------------------------------------- ##
+## ------------------------------------ ##
+## Report this to eric.nawrocki at nih.gov ##
+## ------------------------------------ ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8731,9 +7773,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ----------------------------------------- ##
-## Report this to nawrockie at janelia.hhmi.org ##
-## ----------------------------------------- ##
+## ------------------------------------ ##
+## Report this to eric.nawrocki at nih.gov ##
+## ------------------------------------ ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8962,9 +8004,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ----------------------------------------- ##
-## Report this to nawrockie at janelia.hhmi.org ##
-## ----------------------------------------- ##
+## ------------------------------------ ##
+## Report this to eric.nawrocki at nih.gov ##
+## ------------------------------------ ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -9121,9 +8163,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ----------------------------------------- ##
-## Report this to nawrockie at janelia.hhmi.org ##
-## ----------------------------------------- ##
+## ------------------------------------ ##
+## Report this to eric.nawrocki at nih.gov ##
+## ------------------------------------ ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -12240,7 +11282,10 @@ ac_config_headers="$ac_config_headers hmmer/libdivsufsort/divsufsort.h"
# the following incantation establishes a symlink of
# src/impl_{whatever} to src/impl in the *build* directory.
# Testsuite sqc tests rely on it.
-ac_config_links="$ac_config_links hmmer/src/impl:${ac_top_build_prefix}hmmer/src/impl_${impl_choice}"
+# You can't use AC_CONFIG_LINKS, apparently, because it is only
+# designed to link files, not directories.
+# PORTABILITY: Beware: we're using a naked ln -sf here, which some systems may not support!
+ac_config_commands="$ac_config_commands hmmer/src/impl"
# Finally, build the top-level HMMER makefile (note: this is *not* built by HMMER's configure)
@@ -12689,7 +11734,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Infernal $as_me 1.1.1, which was
+This file was extended by Infernal $as_me 1.1.2, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12716,7 +11761,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
# Files that config.status was made for.
config_files="$ac_config_files"
config_headers="$ac_config_headers"
-config_links="$ac_config_links"
+config_commands="$ac_config_commands"
_ACEOF
@@ -12744,15 +11789,15 @@ $config_files
Configuration headers:
$config_headers
-Configuration links:
-$config_links
+Configuration commands:
+$config_commands
Report bugs to <bug-autoconf at gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-Infernal config.status 1.1.1
+Infernal config.status 1.1.2
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@@ -12860,6 +11905,11 @@ _ASBOX
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+ac_top_build_prefix=${ac_top_build_prefix}; impl_choice=${impl_choice}
+
_ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
@@ -12887,7 +11937,7 @@ do
"hmmer/libdivsufsort/Makefile") CONFIG_FILES="$CONFIG_FILES hmmer/libdivsufsort/Makefile" ;;
"hmmer/src/p7_config.h") CONFIG_HEADERS="$CONFIG_HEADERS hmmer/src/p7_config.h" ;;
"hmmer/libdivsufsort/divsufsort.h") CONFIG_HEADERS="$CONFIG_HEADERS hmmer/libdivsufsort/divsufsort.h" ;;
- "hmmer/src/impl") CONFIG_LINKS="$CONFIG_LINKS hmmer/src/impl:${ac_top_build_prefix}hmmer/src/impl_${impl_choice}" ;;
+ "hmmer/src/impl") CONFIG_COMMANDS="$CONFIG_COMMANDS hmmer/src/impl" ;;
"hmmer/Makefile") CONFIG_FILES="$CONFIG_FILES hmmer/Makefile" ;;
"easel/esl_config.h") CONFIG_HEADERS="$CONFIG_HEADERS easel/esl_config.h" ;;
"easel/miniapps/Makefile") CONFIG_FILES="$CONFIG_FILES easel/miniapps/Makefile" ;;
@@ -12910,7 +11960,7 @@ done
if $ac_need_defaults; then
test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
- test "${CONFIG_LINKS+set}" = set || CONFIG_LINKS=$config_links
+ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
fi
# Have a temporary directory for convenience. Make it in the build tree
@@ -13207,7 +12257,7 @@ $as_echo "$as_me: error: could not setup config headers machinery" >&2;}
fi # test -n "$CONFIG_HEADERS"
-eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :L $CONFIG_LINKS "
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
shift
for ac_tag
do
@@ -13501,45 +12551,17 @@ $as_echo "$as_me: error: could not create -" >&2;}
{ (exit 1); exit 1; }; }
fi
;;
- :L)
- #
- # CONFIG_LINK
- #
- if test "$ac_source" = "$ac_file" && test "$srcdir" = '.'; then
- :
- else
- # Prefer the file from the source tree if names are identical.
- if test "$ac_source" = "$ac_file" || test ! -r "$ac_source"; then
- ac_source=$srcdir/$ac_source
- fi
-
- { $as_echo "$as_me:$LINENO: linking $ac_source to $ac_file" >&5
-$as_echo "$as_me: linking $ac_source to $ac_file" >&6;}
+ :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
- if test ! -r "$ac_source"; then
- { { $as_echo "$as_me:$LINENO: error: $ac_source: file not found" >&5
-$as_echo "$as_me: error: $ac_source: file not found" >&2;}
- { (exit 1); exit 1; }; }
- fi
- rm -f "$ac_file"
- # Try a relative symlink, then a hard link, then a copy.
- case $srcdir in
- [\\/$]* | ?:[\\/]* ) ac_rel_source=$ac_source ;;
- *) ac_rel_source=$ac_top_build_prefix$ac_source ;;
- esac
- ln -s "$ac_rel_source" "$ac_file" 2>/dev/null ||
- ln "$ac_source" "$ac_file" 2>/dev/null ||
- cp -p "$ac_source" "$ac_file" ||
- { { $as_echo "$as_me:$LINENO: error: cannot link or copy $ac_source to $ac_file" >&5
-$as_echo "$as_me: error: cannot link or copy $ac_source to $ac_file" >&2;}
- { (exit 1); exit 1; }; }
- fi
- ;;
+ case $ac_file$ac_mode in
+ "hmmer/src/impl":C) cd hmmer/src; ln -sf impl_${impl_choice} impl ;;
esac
-
done # for ac_tag
diff --git a/configure.ac b/configure.ac
index 913d773..593bf42 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.1.1, nawrockie at janelia.hhmi.org, infernal)
+AC_INIT(Infernal, 1.1.2, eric.nawrocki at nih.gov, infernal)
AC_MSG_NOTICE([Configuring Infernal for your system.])
# remember if the user is overriding CFLAGS
@@ -58,7 +58,7 @@ fi
# The four AC_INIT args set these output variables and preprocessor symbols:
# PACKAGE_NAME <package> e.g. "Infernal"
# PACKAGE_VERSION <version> e.g. "1.0"
-# PACKAGE_BUGREPORT <bug-report> e.g. "eddys at janelia.hhmi.org"
+# PACKAGE_BUGREPORT <bug-report> e.g. "eric.nawrocki at nih.gov"
# PACKAGE_TARNAME <tarname> e.g. "infernal"
# From them, it derives one more:
# PACKAGE_STRING <package> <version>, e.g. "Infernal 1.0"
@@ -73,27 +73,27 @@ fi
#
################################################################
-INFERNAL_DATE="July 2014"
-INFERNAL_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-INFERNAL_LICENSE="Freely distributed under the GNU General Public License (GPLv3)."
+INFERNAL_DATE="July 2016"
+INFERNAL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+INFERNAL_LICENSE="Freely distributed under a BSD open source license."
INFERNAL_VERSION=$PACKAGE_VERSION
-INFERNAL_URL="http://infernal.janelia.org/"
+INFERNAL_URL="http://eddylab.org/infernal/"
INFERNAL_ESLDIR="easel"
INFERNAL_HMMERDIR="hmmer"
INFERNAL_SADIR="hmmer/libdivsufsort"
-HMMER_DATE="July 2014"
-HMMER_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-HMMER_LICENSE="Freely distributed under the GNU General Public License (GPLv3)."
-HMMER_VERSION=i$PACKAGE_VERSION
+HMMER_DATE="July 2016"
+HMMER_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+HMMER_LICENSE="Freely distributed under a BSD open source licence."
+HMMER_VERSION="3.1b3"
HMMER_URL="http://hmmer.org/"
HMMER_ESLDIR="../easel"
HMMER_SADIR="libdivsufsort"
-EASEL_DATE="July 2014"
-EASEL_COPYRIGHT="Copyright (C) 2014 HHMI Janelia Farm Research Campus"
-EASEL_LICENSE="Freely distributed under the Janelia Software License."
-EASEL_VERSION="i$PACKAGE_VERSION"
+EASEL_DATE="July 2016"
+EASEL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute"
+EASEL_LICENSE="Freely distributed under a BSD open source license."
+EASEL_VERSION="0.43"
EASEL_URL="http://bioeasel.org/"
# Output variables (AC_OUTPUT replaces @var@ in input files, such as Makefiles)
@@ -333,17 +333,17 @@ if test "$impl_choice" = "none"; then
fi
if test "$impl_choice" = "none"; then
- AC_MSG_WARN([Infernal 1.1.1 requires VMX or SSE capability for parallel instructions.])
+ AC_MSG_WARN([Infernal 1.1.2 requires VMX or SSE capability for parallel instructions.])
AC_MSG_ERROR([It appears your platform has neither and will not support Infernal.])
fi
if test "$impl_choice" = "sse" && test "$enable_sse" = "no"; then
- AC_MSG_WARN([Infernal 1.1.1 requires VMX or SSE capability for parallel instructions.])
+ AC_MSG_WARN([Infernal 1.1.2 requires VMX or SSE capability for parallel instructions.])
AC_MSG_WARN([Your platform supports only SSE, but you have disabled it.])
AC_MSG_ERROR([You must reconfigure without disabling SSE for Infernal to build.])
fi
if test "$impl_choice" = "vmx" && test "$enable_vmx" = "no"; then
- AC_MSG_WARN([Infernal 1.1.1 requires VMX or SSE capability for parallel instructions.])
+ AC_MSG_WARN([Infernal 1.1.2 requires VMX or SSE capability for parallel instructions.])
AC_MSG_WARN([Your platform supports only VMX, but you have disabled it.])
AC_MSG_ERROR([You must reconfigure without disabling VMX for Infernal to build.])
fi
@@ -555,7 +555,7 @@ vmx) AC_MSG_NOTICE([Activating Altivec/VMX optimized DP implementation])
INFERNAL_IMPLDIR=""
;;
-*) AC_MSG_WARN([Infernal 1.1.1 requires VMX or SSE capability for parallel instructions.])
+*) AC_MSG_WARN([Infernal 1.1.2 requires VMX or SSE capability for parallel instructions.])
AC_MSG_ERROR([Unable to use vector instructions (SSE or VMX).])
;;
esac
@@ -594,6 +594,10 @@ AC_SUBST(LIBGSL)
# anyway according to Sean. We still need to define LIBGSL though, because Easel
# has files with @LIBGSL@ in them.
+# Easel stopwatch high-res timer may try to use clock_gettime,
+# which may be in librt
+AC_SEARCH_LIBS(clock_gettime, [rt posix4])
+
# Checks for headers
# Defines HAVE_SYS_TYPES_H, HAVE_STDINT_H, etc.
AC_CHECK_HEADERS([ \
@@ -710,7 +714,12 @@ AC_CONFIG_HEADERS(hmmer/libdivsufsort/divsufsort.h)
# the following incantation establishes a symlink of
# src/impl_{whatever} to src/impl in the *build* directory.
# Testsuite sqc tests rely on it.
-AC_CONFIG_LINKS([hmmer/src/impl:${ac_top_build_prefix}hmmer/src/impl_${impl_choice}])
+# You can't use AC_CONFIG_LINKS, apparently, because it is only
+# designed to link files, not directories.
+# PORTABILITY: Beware: we're using a naked ln -sf here, which some systems may not support!
+AC_CONFIG_COMMANDS([hmmer/src/impl],
+ [cd hmmer/src; ln -sf impl_${impl_choice} impl],
+ [ac_top_build_prefix=${ac_top_build_prefix}; impl_choice=${impl_choice}])
# Finally, build the top-level HMMER makefile (note: this is *not* built by HMMER's configure)
AC_CONFIG_FILES([hmmer/Makefile])
diff --git a/documentation/Makefile.in b/documentation/Makefile.in
index af2521f..73e3118 100644
--- a/documentation/Makefile.in
+++ b/documentation/Makefile.in
@@ -34,8 +34,8 @@ distclean:
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/documentation/manpages/Makefile.in b/documentation/manpages/Makefile.in
index 6de4c78..36a07de 100644
--- a/documentation/manpages/Makefile.in
+++ b/documentation/manpages/Makefile.in
@@ -56,8 +56,8 @@ distclean:
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/documentation/manpages/cmalign.man b/documentation/manpages/cmalign.man
index adf03cd..403cce8 100644
--- a/documentation/manpages/cmalign.man
+++ b/documentation/manpages/cmalign.man
@@ -1,4 +1,4 @@
-.TH "cmalign" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmalign" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmalign - align sequences to a covariance model
@@ -616,8 +616,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmbuild.man b/documentation/manpages/cmbuild.man
index 1499a1f..82b474e 100644
--- a/documentation/manpages/cmbuild.man
+++ b/documentation/manpages/cmbuild.man
@@ -1,4 +1,4 @@
-.TH "cmbuild" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmbuild" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmbuild - construct covariance model(s) from structurally annotated RNA multiple sequence alignment(s)
@@ -544,8 +544,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmcalibrate.man b/documentation/manpages/cmcalibrate.man
index fc0d501..b1ff716 100644
--- a/documentation/manpages/cmcalibrate.man
+++ b/documentation/manpages/cmcalibrate.man
@@ -1,4 +1,4 @@
-.TH "cmcalibrate" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmcalibrate" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmcalibrate - fit exponential tails for covariance model E-value determination
@@ -352,8 +352,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmconvert.man b/documentation/manpages/cmconvert.man
index 0ddc240..f52c7d8 100644
--- a/documentation/manpages/cmconvert.man
+++ b/documentation/manpages/cmconvert.man
@@ -1,4 +1,4 @@
-.TH "cmconvert" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmconvert" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmconvert - convert Infernal covariance model files
@@ -88,8 +88,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmemit.man b/documentation/manpages/cmemit.man
index 9e47fd0..ac5129f 100644
--- a/documentation/manpages/cmemit.man
+++ b/documentation/manpages/cmemit.man
@@ -1,4 +1,4 @@
-.TH "cmemit" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmemit" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmemit - sample sequences from a covariance model
@@ -293,8 +293,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmfetch.man b/documentation/manpages/cmfetch.man
index 3e95f00..f94f90f 100644
--- a/documentation/manpages/cmfetch.man
+++ b/documentation/manpages/cmfetch.man
@@ -1,4 +1,4 @@
-.TH "cmfetch" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmfetch" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmfetch - retrieve covariance model(s) from a file
@@ -185,8 +185,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmpress.man b/documentation/manpages/cmpress.man
index ee5b532..0939f56 100644
--- a/documentation/manpages/cmpress.man
+++ b/documentation/manpages/cmpress.man
@@ -1,4 +1,4 @@
-.TH "cmpress" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmpress" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmpress - prepare a covariance model database for cmscan
@@ -95,8 +95,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmscan.man b/documentation/manpages/cmscan.man
index bebab23..eb2999e 100644
--- a/documentation/manpages/cmscan.man
+++ b/documentation/manpages/cmscan.man
@@ -1,4 +1,4 @@
-.TH "cmscan" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmscan" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmscan - search sequence(s) against a covariance model database
@@ -65,7 +65,11 @@ The output format is designed to be human-readable, but is often so
voluminous that reading it is impractical, and parsing it is a pain. The
.B --tblout
option saves output in a simple tabular format that is concise and
-easier to parse.
+easier to parse. The
+.BI --fmt " 2"
+option modifies the format of the tabular output by adding several
+fields, including markup of overlapping hits, as described in section
+6 of the Infernal user guide.
The
.B -o
option allows redirecting the main output, including throwing it away
@@ -172,7 +176,27 @@ instead of the default stdout.
.BI --tblout " <f>"
Save a simple tabular (space-delimited) file summarizing the
hits found, with one data line per hit.
-The format of this file is described in the Infernal user guide.
+The format of this file is described in section 6 of the Infernal user guide.
+
+.TP
+.BI --fmt " <n>"
+specify the format of the tabular output file specified with
+.BI --tblout " <f>"
+be in format
+.I <n>.
+Possible values for
+.I <n>
+are 1 or 2. By default
+.I <n>
+is 1 when
+.B --tblout
+is used without
+.B --fmt.
+With
+.BI --fmt " 2"
+nine additional fields are added to the tabular output file, most of
+which pertain to the annotation of overlapping hits.
+See section 6 the Infernal user guide for a description of both formats.
.TP
.B --acc
@@ -297,7 +321,7 @@ that is above all known false positives.
.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE
.PP
-Infernal 1.1 searches are accelerated in a six-stage
+Infernal searches are accelerated in a six-stage
filter pipeline. The first five stages use a profile HMM to define
envelopes that are passed to the stage six CM CYK filter. Any
envelopes that survive all filters are assigned final scores using the
@@ -561,14 +585,14 @@ megabytes. By default this size is 128 Mb.
This should be large enough for the vast majority of searches,
especially with smaller models.
If
-.B cmsearch
+.B cmscan
encounters an envelope in the CYK or Inside stage that requires a
larger matrix, the envelope will be discounted from
consideration. This behavior is like an additional filter that
prevents expensive (slow) CM DP calculations, but at a potential cost
to sensitivity.
Note that if
-.B cmsearch
+.B cmscan
is being run in
.I <n>
multiple threads on a multicore machine then each thread may
@@ -688,6 +712,56 @@ must list valid names of models from
each separated by any whitespace character (e.g. a newline character).
.TP
+.BI --clanin " <f>"
+Read clan information on the models in
+.I <cmfile>
+from file
+.I <f>.
+Not all models in
+.I <cmfile>
+need to be a member of a clan.
+This option must be used in combination with
+.BI --fmt " 2"
+and
+.B --tblout
+because clan annotation is only output in format 2 of the tabular
+output file.
+See section 9 of the Infernal user guide for specifications on the format of the
+clan input file
+.I <f>.
+
+.TP
+.B --oclan
+Only mark overlaps between models in the same clan.
+This option must be used in combination with
+.BI --fmt " 2"
+,
+.B --tblout
+and
+.B --clanin
+because clan annotation is only output in format 2 of the tabular
+output file, and clan information can only be input using the
+.B --clanin
+option.
+
+.TP
+.BI --oskip " <f>"
+Omit any hit h from the tabular output file that satisifies the
+following: another hit h2 overlaps with h and the E-value of h2 is
+lower than that of h. Hit h will not appear in the tabular output
+file, although it will still exist in the standard output.
+This option must be used in combination with
+.BI --fmt " 2"
+.B --tblout
+because overlap annotation is only output in format 2 of the tabular
+output file.
+When used in combination with
+.B "--oclan"
+only hits h that satisfy the following are omitted:
+another hit h2 overlaps with h, the E-value of h2 is lower than that
+of h, and both h and h2 are hits to models that are in the same clan.
+
+.TP
.BI --cpu " <n>"
Set the number of parallel worker threads to
.I <n>.
@@ -733,8 +807,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmsearch.man b/documentation/manpages/cmsearch.man
index 7b04828..ffe5625 100644
--- a/documentation/manpages/cmsearch.man
+++ b/documentation/manpages/cmsearch.man
@@ -1,4 +1,4 @@
-.TH "cmsearch" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmsearch" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmsearch - search covariance model(s) against a sequence database
@@ -167,7 +167,7 @@ to the file
.BI --tblout " <f>"
Save a simple tabular (space-delimited) file summarizing the
hits found, with one data line per hit. The format of this file is
-described in the Infernal user guide.
+described in section 6 of the Infernal user guide.
.TP
.B --acc
@@ -722,8 +722,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmsearch_dual.man b/documentation/manpages/cmsearch_dual.man
index d3af1bf..a91e280 100644
--- a/documentation/manpages/cmsearch_dual.man
+++ b/documentation/manpages/cmsearch_dual.man
@@ -1,4 +1,4 @@
-.TH "cmsearch_dual" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmsearch_dual" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
.TP
@@ -109,8 +109,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/cmstat.man b/documentation/manpages/cmstat.man
index 303e508..7e3e032 100644
--- a/documentation/manpages/cmstat.man
+++ b/documentation/manpages/cmstat.man
@@ -1,4 +1,4 @@
-.TH "cmstat" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "cmstat" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
cmstat - summary statistics for a covariance model file
@@ -248,8 +248,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/infernal.man b/documentation/manpages/infernal.man
index 72ee762..340f1eb 100644
--- a/documentation/manpages/infernal.man
+++ b/documentation/manpages/infernal.man
@@ -1,4 +1,4 @@
-.TH "Infernal" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "Infernal" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
Infernal - sequence analysis using profiles of RNA sequence and secondary structure consensus
@@ -133,8 +133,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/manpages/sse_cmsearch.man b/documentation/manpages/sse_cmsearch.man
index 249a897..ddc1c0b 100644
--- a/documentation/manpages/sse_cmsearch.man
+++ b/documentation/manpages/sse_cmsearch.man
@@ -1,4 +1,4 @@
-.TH "sse_cmsearch" 1 "July 2014" "Infernal 1.1.1" "Infernal Manual"
+.TH "sse_cmsearch" 1 "July 2016" "Infernal 1.1.2" "Infernal Manual"
.SH NAME
.TP
@@ -105,8 +105,8 @@ Infernal distribution (Userguide.pdf); or see the Infernal web page
.SH COPYRIGHT
.nf
-Copyright (C) 2014 Howard Hughes Medical Institute.
-Freely distributed under the GNU General Public License (GPLv3).
+Copyright (C) 2016 Howard Hughes Medical Institute.
+Freely distributed under a BSD open source license.
.fi
For additional information on copyright and licensing, see the file
diff --git a/documentation/userguide/Makefile.in b/documentation/userguide/Makefile.in
index 7d57817..64c07f4 100644
--- a/documentation/userguide/Makefile.in
+++ b/documentation/userguide/Makefile.in
@@ -41,6 +41,7 @@ MANPAGES = \
TEXFILES =\
cmbuild.tex\
+ copyright.tex\
filter.tex\
format_prior.tex\
formats.tex\
@@ -57,7 +58,7 @@ TEXFILES =\
pdf: Userguide.pdf
-Userguide.pdf: symlinks.stamp titlepage.tex copyright.tex manpages.tex
+Userguide.pdf: symlinks.stamp titlepage.tex manpages.tex
@for prog in pdflatex bibtex; do \
command -v $$prog >/dev/null 2>&1 || { echo >&2 "The $$prog program is required to build the Userguide, but it's not installed. Aborting."; exit 1; } \
done
@@ -83,10 +84,6 @@ titlepage.tex: ${srcdir}/titlepage.tex.in
@cp -f ${srcdir}/titlepage.tex.in titlepage.tex
@${SEDITION} INFERNAL_VERSION ${INFERNAL_VERSION} INFERNAL_DATE ${INFERNAL_DATE} titlepage.tex
-copyright.tex: ${srcdir}/copyright.tex.in
- @cp -f ${srcdir}/copyright.tex.in copyright.tex
- @${SEDITION} INFERNAL_COPYRIGHT ${INFERNAL_COPYRIGHT} copyright.tex
-
# manpages: convert man pages to LaTeX chapter in User Guide.
# uses PolyglotMan 3.2 "rman", and rmanprocess.pl script in easel's devkit
manpages.tex: ${MANPAGES}
@@ -114,14 +111,14 @@ distclean: clean
done ;\
fi
-rm -f symlinks.stamp
- -rm -f titlepage.tex copyright.tex manpages.tex
+ -rm -f titlepage.tex manpages.tex
-rm -f Userguide.pdf
-rm -f Makefile
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/documentation/userguide/ack.tex b/documentation/userguide/ack.tex
index 3fde3a5..4a6cacb 100644
--- a/documentation/userguide/ack.tex
+++ b/documentation/userguide/ack.tex
@@ -34,9 +34,8 @@ introduced by Weinberg.
Infernal testing requires \emph{a lot} of compute power, and we are
extremely fortunate to have access to a highly reliable and
-state-of-the-art computing cluster, thanks to Goran Ceric, Rob Lines,
-Peter Bukowinski, Ken Carlile, Patrick Yeboah, and others here at
-Janelia.
+state-of-the-art computing cluster, thanks to Jesse Becker, Ron
+Patterson and others at NCBI.
Infernal is primarily developed on GNU/Linux and Apple Macintosh
machines, but is tested on a variety of hardware. Over the years,
diff --git a/documentation/userguide/cmbuild.tex b/documentation/userguide/cmbuild.tex
index 6bec73d..a1cb86f 100644
--- a/documentation/userguide/cmbuild.tex
+++ b/documentation/userguide/cmbuild.tex
@@ -524,9 +524,7 @@ residues is lower than a threshold, the column is considered to be
an insertion. Importantly though this frequency is determined using
the relative weights from the sequence weighting step, instead of
absolute gaps (e.g. a residue in a sequence with weight $0.8$ will count
-as $0.8$ residues)\footnote{This behavior is new in Infernal 1.1, in all
-previous versions of Infernal, absolute weights, not relative weights
-were used at this step.}.
+ as $0.8$ residues).
The threshold defaults to 0.5. It can be changed to another number
\otext{<x>} (from 0 to 1.0) by the \prog{--symfrac <x>} option. The
@@ -595,3 +593,4 @@ If the cmfile already exists, the program exits with an error. The
\prog{-F} option causes the new model to overwrite an existing
cmfile.
+
diff --git a/documentation/userguide/copyright.tex b/documentation/userguide/copyright.tex
new file mode 100644
index 0000000..e69de29
diff --git a/documentation/userguide/copyright.tex.in b/documentation/userguide/copyright.tex.in
deleted file mode 100644
index fbeaa3e..0000000
--- a/documentation/userguide/copyright.tex.in
+++ /dev/null
@@ -1,18 +0,0 @@
-\vspace*{\fill}
-\begin{flushleft}
- at INFERNAL_COPYRIGHT@\vspace{5mm}
-
-\vspace{5mm}
-Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-retained on all copies.\vspace{5mm}
-
-\vspace{5mm} Infernal is licensed and freely distributed under the GNU
-General Public License version 3 (GPLv3). For a copy of the License,
-see \url{http://www.gnu.org/licenses/}.
-
-\vspace{5mm}
-\end{flushleft}
-
-
-
diff --git a/documentation/userguide/formats.tex b/documentation/userguide/formats.tex
index dc4459a..cc57be4 100644
--- a/documentation/userguide/formats.tex
+++ b/documentation/userguide/formats.tex
@@ -129,9 +129,6 @@ that fields are separated by at least one space character.
The CM format is described in more detail below, followed by a
description of the HMMER3 HMM format for the CM's mandatory filter HMM
filter.
-%The HMM format is similar but is not described in detail here. See the
-%HMMER user guide for more information
-%(\url{http://hmmer.janelia.org}{http://hmmer.janelia.org}).
\subsubsection{CM header section}
@@ -1328,6 +1325,46 @@ the background probability of an ``A'' residue, the second, third, and
fourth non-comment lines are interpreted as the background
probabilities of a ``C'', ``G'' and ``U'' respectively.
+\subsection{Clan input file format for cmscan}
+
+The \ccode{cmscan} program has a \ccode{--clanin <f>} option that
+allows the user to supply an input file \ccode{<f>} with information
+on clan membership for models in the CM file. This option must be used
+in combination with the \ccode{--tblout} and \ccode{--fmt 2}
+options. An example clan input file is included with the Infernal
+source distribution, \ccode{tutorial/Rfam.12.1.clanin}. This file
+specifies the clan membership for the 2474 models in the Rfam 12.1
+release, of which 311 models belong to 104 clans. This file should be
+used in combination with the Rfam.cm file for Rfam 12.1, available for
+download as a gzipped file here:
+\url{ftp://ftp.ebi.ac.uk/pub/databases/Rfam/12.1/Rfam.cm.gz}. Note that
+many of the Rfam models are not members of a clan; the clan input file does
+not need to specify clan membership for all models in the CM file.
+
+A clan input file contains one line per clan. Each line must contain
+at least two space-delimited tokens. The first token is the name of
+the clan (this name cannot contain spaces). Each token after the first
+is the name of a model that is a member of the clan named in the first
+token. These tokens must be valid names of models in the file CM file
+you are using with \ccode{cmscan}. These tokens cannot be the
+accessions of models. Valid model names cannot contain spaces
+(enforced by \prog{cmbuild} during model construction). To determine
+the names of models in a CM file, use \ccode{cmstat}.
+
+For example, in the file \ccode{tutorial/Rfam.12.1.clanin} the first token
+of the first line is ``CL00001'' and tokens two through five are
+``tRNA'', ``cyano\_tmRNA'', ``tRNA-Sec'', ``mt-tmRNA'', indicating
+that these four models are members of the CL00001 clan. \ccode{cmscan}
+will output the clan name of models in clans in its tabular output
+file specified with \ccode{--tblout} when the \ccode{--fmt 2} option
+is also used. Furthermore, you can specify
+that only overlapping hits between models of the same clan are
+annotated (as opposed to all overlapping hits) in the tabular output
+file by additionally using the \ccode{--oclan} option. Finally, you
+can specify that lower scoring overlaps within clans are not output by
+additionally using the \ccode{--oskip} and the \ccode{--oclan}
+options.
+
diff --git a/documentation/userguide/install.tex b/documentation/userguide/install.tex
index ed5cdea..26a6ee7 100644
--- a/documentation/userguide/install.tex
+++ b/documentation/userguide/install.tex
@@ -4,14 +4,14 @@
\subsection{Quick installation instructions}
-Download \prog{infernal-1.1.1.tar.gz} from \url{http://infernal.janelia.org/}, or
-directly from
-\url{ftp://selab.janelia.org/pub/software/infernal/infernal-1.1.1.tar.gz};
+Download \prog{infernal-1.1.2.tar.gz} from \url{http://eddylab.org/infernal/}, or
+directly from \\
+\url{eddylab.org/infernal/infernal-1.1.2.tar.gz};
unpack it, configure, and make:
-\user{wget ftp://selab.janelia.org/pub/software/infernal/infernal-1.1.1.tar.gz}\\
-\user{tar xf infernal-1.1.1.tar.gz}\\
-\user{cd infernal-1.1.1}\\
+\user{wget eddylab.org/infernal/infernal-1.1.2.tar.gz}\\
+\user{tar xf infernal-1.1.2.tar.gz}\\
+\user{cd infernal-1.1.2}\\
\user{./configure}\\
\user{make}
@@ -77,9 +77,12 @@ will be able to take advantage of GP-GPUs and FPGAs in the future.
\paragraph{Compiler:} The source code is C conforming to POSIX and ANSI
C99 standards. It should compile with any ANSI C99 compliant compiler,
-including the GNU C compiler \prog{gcc}. We test the code using both
-the \prog{gcc} and \prog{icc} compilers. We find that \prog{icc}
-produces somewhat faster code at present.
+including the GNU C compiler \prog{gcc}.
+% as of 1.1.2, I don't test on icc anymore:
+We test the code using both
+the \prog{gcc} and \prog{icc} compilers.
+% We find that \prog{icc}
+%produces somewhat faster code at present.
\paragraph{Libraries and other installation requirements:} Infernal includes
two software libraries, HMMER and Easel, which it will automatically
@@ -134,8 +137,7 @@ is awry with the threaded parallel implementation.
The \prog{cmalign}, \prog{cmcalibrate}, \prog{cmsearch} and
\prog{cmscan} programs also support MPI (Message Passing Interface)
parallelization on clusters. To use MPI, you first need to have an
-MPI library installed, such as OpenMPI (\url{www.open-mpi.org}). We
-use Intel MPI at Janelia.
+MPI library installed, such as OpenMPI (\url{www.open-mpi.org}).
MPI support is not enabled by default, and it is not compiled into the
precompiled binaries that we supply with Infernal. To enable MPI support
diff --git a/documentation/userguide/introduction.tex b/documentation/userguide/introduction.tex
index 49664b9..2ebf62c 100644
--- a/documentation/userguide/introduction.tex
+++ b/documentation/userguide/introduction.tex
@@ -8,7 +8,7 @@ RNA sequence alignments. Infernal builds a \emph{profile} from a
structurally annotated multiple sequence alignment of an RNA family
with a position-specific scoring system for substitutions, insertions,
and deletions. Positions in the profile that are basepaired in the
-consensus secondary structure of the alignment are modeled as
+ h consensus secondary structure of the alignment are modeled as
dependent on one another, allowing Infernal's scoring system to
consider the secondary structure, in addition to the primary sequence,
of the family being modeled. Infernal profiles are probabilistic
@@ -239,9 +239,9 @@ introduced profile SCFGs in computational biology
book chapters \citep{Eddy06b,NawrockiEddy09}, and a few doctoral
theses \citep{Klein03,Nawrocki09b,Kolbe10} related to
CMs\footnote{Eddy lab publications are available from
-\url{http://selab.janelia.org/publications.html}}. The book
+\url{http://eddylab.org/publications.html}}. The book
\emph{Biological Sequence Analysis: Probabilistic Models of Proteins
-and Nucleic Acids} \citep{Durbin98} has several chapters deveoted to
+and Nucleic Acids} \citep{Durbin98} has several chapters devoted to
HMMs and CMs. Profile HMM filtering for CMs was introduced by Weinberg
and Ruzzo
\citep{WeinbergRuzzo04,WeinbergRuzzo04b,WeinbergRuzzo06}. There are
@@ -269,7 +269,7 @@ The Infernal 1.1 paper (Infernal 1.1: 100-fold faster RNA homology
searches, EP Nawrocki and SR Eddy. Bioinformatics, 29:2933-2935,
2013.) is the most appropriate paper to cite. If you’re writing for an
enlightened (url-friendly) journal, you may want to cite the webpage
-\url{infernal.janelia.org} because it is kept up-to-date.
+\url{http://eddylab.org/infernal/} because it is kept up-to-date.
\end{srefaq}
diff --git a/documentation/userguide/main.tex b/documentation/userguide/main.tex
index fafb039..ef73a24 100644
--- a/documentation/userguide/main.tex
+++ b/documentation/userguide/main.tex
@@ -1,6 +1,7 @@
% Organizing document for the Infernal User's Guide
%
-% SVN $Id: main.tex 4240 2012-10-11 16:24:35Z nawrockie $
+% SVN $Id$
+
\documentclass[10pt]{article}
%\usepackage{helvetic}
@@ -46,8 +47,9 @@
\newpage
\input{tabular}
-\newpage
-\input{diffoptions}
+% Changes in options between 1.0 and 1.1 are omitted from the 1.1.2 user guide.
+%\newpage
+%\input{diffoptions}
\newpage
\input{more}
diff --git a/documentation/userguide/more.tex b/documentation/userguide/more.tex
index f843fde..2d88894 100644
--- a/documentation/userguide/more.tex
+++ b/documentation/userguide/more.tex
@@ -12,10 +12,10 @@ EP Nawrocki and SR Eddy.
Bioinformatics, 29:2933-2935, 2013.
The most appropriate citation is to the web site,
-\url{infernal.janelia.org}. You should also cite what version of the
-software you used. We archive all old versions, so anyone should be
-able to obtain the version you used, when exact reproducibility of an
-analysis is an issue.
+\url{http://eddylab.org/infernal/}. You should also cite what version
+of the software you used. We archive all old versions, so anyone
+should be able to obtain the version you used, when exact
+reproducibility of an analysis is an issue.
The version number is in the header of most output files. To see it
quickly, do something like \prog{cmscan -h} to get a help page, and
@@ -23,17 +23,17 @@ the header will say:
\begin{sreoutput}
# cmscan :: search sequence(s) against a CM database
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\end{sreoutput}
-So (from the second line there) this is from Infernal 1.1.1.
+So (from the second line there) this is from Infernal 1.1.2.
\subsection{How do I report a bug?}
-Email us, at \url{infernal at janelia.hhmi.org}.
+Email us, at \url{sean at eddylab.org}.
Before we can see what needs fixing, we almost always need to
reproduce a bug on one of our machines. This means we want to have a
@@ -131,7 +131,7 @@ command onto three lines):
%note: can't use \user{} here because too many special characters
%(believe me I tried). Only difference between \user{} and the way
-%I've done it below ts that we're not bold, oh well.
+%I've done it below is that we're not bold, oh well.
\indent\indent\small\verb+> cmsearch --tblout tRNA5.mrum-genome.tbl tRNA5.cm mrum-genome.fa+ \\
\indent\indent\small\verb+> esl-sfetch --index mrum-genome.fa+ \\
\indent\indent\small\verb+> cat tRNA5.mrum-genome.tbl | grep -v ^# | grep ! \ + \\
@@ -201,3 +201,4 @@ happen is a ``Failed to open file -'' error message, if the program
can't read from pipes.
+
diff --git a/documentation/userguide/pipeline.tex b/documentation/userguide/pipeline.tex
index 7f0e3cb..d0d329a 100644
--- a/documentation/userguide/pipeline.tex
+++ b/documentation/userguide/pipeline.tex
@@ -271,7 +271,7 @@ HMM banded Inside & CM & local & E $\leq$ 10 & E $\leq$ 10 & E $\leq$ 10 & E
\prog{cmsearch}, $Z$ is the total number of nucleotides in the
target database file multiplied by 2 (because both strands of each
sequence is searched). For \prog{cmscan}, $Z$ is the length of the
- current query sequence multiplied 2 (because both strands of the
+ current query sequence multiplied by 2 (because both strands of the
sequence are searched) and multiplied again by the number of CMs in
the target CM database.}
\label{tbl:thresholds}
@@ -1437,3 +1437,4 @@ Viterbi and Forward filters turned off. The HMM-only pipeline can be
turned off with the \ccode{--nohmmonly} option. When turned off, all
models will use the standard and truncated CM pipelines, even those
with no structure.
+
diff --git a/documentation/userguide/tabular.tex b/documentation/userguide/tabular.tex
index 833b984..ff7e99a 100644
--- a/documentation/userguide/tabular.tex
+++ b/documentation/userguide/tabular.tex
@@ -2,18 +2,29 @@
\label{section:tabular}
\setcounter{footnote}{0}
-\subsection{The target hits table}
-
-The \ccode{--tblout} output option in \prog{cmscan} and
- \prog{cmsearch} produces the \emph{target hits table}. The target
- hits table consists of one line for each different query/target
- comparison that met the reporting thresholds, ranked by decreasing
- statistical significance (increasing E-value). Each line consists
- of \textbf{18 space-delimited fields} followed by a free text target
- sequence description, as follows:\footnote{The \ccode{tblout} format
- is deliberately space-delimited (rather than tab-delimited) and
- justified into aligned columns, so these files are suitable both for
- automated parsing and for human examination. Tab-delimited data
+\subsection{Target hits tables}
+
+The \ccode{--tblout} output option in \prog{cmsearch} and
+\prog{cmscan} produces \emph{target hits tables}. There are two
+different formats of target hits table, which are both described
+below. By default, both \prog{cmsearch} and \prog{cmscan} produce the
+target hits table in \emph{format 1}. Format 1 is the only format that
+was used by Infernal versions 1.1rc1 through 1.1.1. As of version 1.1.2,
+with \prog{cmscan}, the \ccode{--fmt 2} option can be used in
+combination with \ccode{--tblout} to produce a target hits table in
+the alternative \emph{format 2}. Both formats 1 and 2 target hits
+table consist of one line for each different query/target comparison
+that met the reporting thresholds, ranked by decreasing statistical
+significance (increasing E-value).
+
+\subsubsection{Target hits table format 1}
+
+In the format 1 table, each line
+consists of \textbf{18 space-delimited fields} followed by a free text
+target sequence description, as follows:\footnote{The \ccode{tblout}
+ format is deliberately space-delimited (rather than tab-delimited)
+ and justified into aligned columns, so these files are suitable both
+ for automated parsing and for human examination. Tab-delimited data
files are difficult for humans to examine and spot check. For this
reason, we think tab-delimited files are a minor evil in the
world. Although we occasionally receive shrieks of outrage about
@@ -120,7 +131,118 @@ The \ccode{--tblout} output option in \prog{cmscan} and
The remainder of the line is the target's description line, as free text.
\end{description}
-This table is columnated neatly for human readability, but do not
+\subsubsection{Target hits table format 2}
+\label{tabular-format2}
+
+Format 2 includes all 18 of the fields from format 1 in the same order, plus 9
+additional fields that are interspersed between some of the 18 from
+format 1, as follows:
+
+\begin{description}
+
+\item[\emprog{(Before field 1 of format 1) idx:}]
+ The index of the hit in the list. The first hit has index '1', the
+ second has index '2', the Nth hit has index 'N'.
+
+\item[\emprog{(Before field 5 of format 1) clan name:}]
+ The name of the clan the model for this hit belongs to, or \ccode{-} if
+ the model does not belong to a clan. A clan is a group of related
+ models. For example, Rfam groups three LSU rRNA models
+ (LSU\_rRNA\_archaea, LSU\_rRNA\_bacteria, and LSU\_rRNA\_eukarya)
+ into the same clan. The value in this field will always be \ccode{-}
+ unless the \ccode{--clanin <f>} option was used with
+ \ccode{cmscan} to specify clan/model relationships in the input file
+ \ccode{<f>}. See section~\ref{section:formats} for a description of
+ the format of the input file used with \ccode{--clanin}.
+
+\end{description}
+
+The following seven fields all occur in format 2 between fields 17
+('inc:') and 18 ('description of target') from format 1.
+
+\begin{description}
+
+\item[\emprog{olp:}] A single character indicating the overlap status
+ of this hit. Here, two hits are deemed to \emph{overlap} if they
+ share at least one nucleotide on the same strand of the same
+ sequence. There are three possible values in this field: \ccode{*},
+ \ccode{\^} and \ccode{=}. \ccode{*} indicates this hit does not
+ overlap with any other reported hits. \ccode{\^} indicates that this
+ hit does overlap with at least one other hit, but none of the hits
+ that overlap with it have a higher score (occur above it in the hit
+ list). \ccode{=} indicates that this hit does overlap with at least
+ one other hit that has a higher score (occurs above it in the hit
+ list). If the \ccode{--oclan} option was enabled, the definition of
+ \emph{overlap} for the designations of the three characters
+ \ccode{*}, \ccode{\^} and \ccode{=} described above changes to: two
+ hits are deemed to \emph{overlap} if they share at least one
+ nucleotide on the same strand of the same sequence and they are to
+ models that are in the same clan. That is, only overlaps between
+ hits to models that are in the same clan are counted, all other
+ overlaps are ignored and not annotated. Infernal will never report
+ two overlapping hits to the same model.
+
+\item[\emprog{anyidx:}]
+For hits that have \ccode{=} in the ``olp'' field, this is the
+index of the best scoring hit that overlaps with this hit.
+For hits with either \ccode{*} or \ccode{\^} in the "olp" field,
+this field will always be \ccode{-}.
+
+\item[\emprog{anyfrct1:}]
+For hits that have \ccode{=} in the "olp" field, this is the
+fraction of the length of this hit that overlaps with the best scoring
+overlapping hit (the hit index given in the "anyidx" field), to
+4 significant digits.
+For hits with \ccode{-} in the "anyidx"
+field, this field will always be \ccode{-}.
+
+\item[\emprog{anyfrct2:}]
+For hits that have \ccode{=} in the "olp" field, this is the
+fraction of the length of the best scoring overlapping hit (the hit
+index given in the "anyidx" field) that overlaps with this hit,
+to 4 significant digits.
+For hits with \ccode{-} in the "anyidx"
+field, this field will always be \ccode{-}.
+
+\item[\emprog{winidx:}]
+For hits that have \ccode{=} in the "olp" field, this is either
+\ccode{"} or the index of the best scoring hit that overlaps with this
+hit that is marked as \ccode{\^} in the "olp" field. If the value
+is \ccode{"} it means that the best scoring hit that overlaps with
+this hit that is marked as \ccode{\^} in the "olp" field is
+already listed in the "anyidx" field, which is usually the case.
+For hits with either \ccode{*} or \ccode{\^} in the "olp" field,
+this field will always be \ccode{-}.
+
+\item[\emprog{winfrct1:}]
+For hits that have neither \ccode{-} nor \ccode{"} in the
+"winidx" field, this is the fraction of the length of this hit
+that overlaps with the best scoring overlapping hit marked with
+\ccode{\^} in the "olp" field (the hit index given in the
+"winidx" field), to 4 significant digits. For hits with either
+\ccode{*} or \ccode{\^} in the "olp" field, this field will
+always be \ccode{-}. For hits with \ccode{-} in the "winidx"
+field, this field will always be \ccode{-}.
+For hits with \ccode{"} in the "winidx"
+field, this field will always be \ccode{"}.
+
+\item[\emprog{winfrct2:}]
+For hits that have neither \ccode{-} nor \ccode{"} in the
+"winidx" field, this is the
+fraction of the length of the best scoring overlapping hit marked with
+\ccode{\^} in the "olp" field (the hit
+index given in the "winidx" field) that overlaps with this hit,
+to 4 significant digits.
+ For hits with either
+\ccode{*} or \ccode{\^} in the "olp" field, this field will
+always be \ccode{-}. For hits with \ccode{-} in the "winidx"
+field, this field will always be \ccode{-}.
+For hits with \ccode{"} in the "winidx"
+field, this field will always be \ccode{"}.
+
+\end{description}
+
+The tables are columnated neatly for human readability, but do not
write parsers that rely on this columnation; rely on space-delimited
fields. The pretty columnation assumes fixed maximum widths for each
field. If a field exceeds its allotted width, it will still be fully
@@ -140,9 +262,10 @@ sequence name second (or vice versa), so \prog{cmsearch} and
still wouldn't be identical, because the target database size used for
E-value calculations is different (total number of target nucleotides
for \prog{cmsearch}, number of target profiles times target sequence
-length for \prog{cmscan}, and it's good not to forget this.
+length for \prog{cmscan}), and it's good not to forget this.
If some of the descriptions of these fields don't make sense to you,
it may help to go through the tutorial in
section~\ref{section:tutorial} and read section~\ref{section:pipeline}
of the manual.
+
diff --git a/documentation/userguide/titlepage.tex.in b/documentation/userguide/titlepage.tex.in
index 18d0a08..cabf7ee 100644
--- a/documentation/userguide/titlepage.tex.in
+++ b/documentation/userguide/titlepage.tex.in
@@ -12,17 +12,14 @@ sequence and secondary structure consensus} \\ }
\vspace*{\fill}
\begin{center}
-\url{http://infernal.janelia.org/}\\
+\url{http://eddylab.org/infernal}\\
Version @INFERNAL_VERSION@; @INFERNAL_DATE@ \\
\vspace*{\fill}
Eric Nawrocki and Sean Eddy\\
-for the INFERNAL Development Team\\
-Janelia Farm Research Campus\\
-19700 Helix Drive\\
-Ashburn VA 20147 USA\\
-\url{http://eddylab.org/} \\
+for the INFERNAL development team\\
+\url{github.com/EddyRivasLab/infernal/}
\end{center}
\vspace*{\fill}
diff --git a/documentation/userguide/tutorial.tex b/documentation/userguide/tutorial.tex
index 88da66f..7d30a72 100644
--- a/documentation/userguide/tutorial.tex
+++ b/documentation/userguide/tutorial.tex
@@ -1,6 +1,9 @@
% EPN, Mon Oct 21 12:57:38 2013
+% EPN, Mon Jun 27 12:32:24 2016 [1.1.2 release]
% Actual commands run on:
-% login-eddy
+% cbbdev13
+% $ uname -a
+% Linux cbbdev13 2.6.32-573.18.1.el6.x86_64 #1 SMP Tue Feb 9 22:46:17 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
\section{Tutorial}
\label{section:tutorial}
@@ -197,9 +200,9 @@ and you'll see some output that looks like:
\begin{sreoutput}
# cmbuild :: covariance model construction from multiple sequence alignments
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# CM file: tRNA5.cm
# alignment file: tutorial/tRNA5.sto
@@ -210,7 +213,7 @@ and you'll see some output that looks like:
# ------ -------------------- -------- -------- ------ ----- ---- ---- ----- ----- -----------
1 tRNA5 5 3.73 74 72 21 2 0.783 0.489
#
-# CPU time: 0.57u 0.00s 00:00:00.56 Elapsed: 00:00:00.57
+# CPU time: 0.29u 0.00s 00:00:00.28 Elapsed: 00:00:00.30
\end{sreoutput}
If your input file had contained more than one alignment, you'd get
@@ -282,35 +285,36 @@ You should see something like this:
\begin{sreoutput}
# cmcalibrate :: fit exponential tails for CM E-values
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# CM file: tRNA5.cm
# forecast mode (no calibration): on
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#
-# Forecasting running time for CM calibration(s) on 8 cpus:
+# Forecasting running time for CM calibration(s) on 24 cpus:
#
# predicted
# running time
# model name (hr:min:sec)
# -------------------- ------------
- tRNA5 00:06:26
+ tRNA5 00:01:00
#
-# CPU time: 0.27u 0.00s 00:00:00.27 Elapsed: 00:00:00.28
+# CPU time: 0.15u 0.00s 00:00:00.15 Elapsed: 00:00:00.16
[ok]
\end{sreoutput}
The header comes first, telling you what program you ran, on what file
-and with what options. This calibration will use 8 CPUs, your output
+and with what options. This calibration will use 24 CPUs, your output
+% ^^
may vary depending on how many cores you have available on the machine
you're using. (If you are planning to use MPI to parallelize the
calibration (see the Installation section), you can specify the number
of CPUs for the time estimate as \otext{<n>} with the
-\otext{--nforecast <n>} option.) Using 8 CPUs, \prog{cmcalibrate}
+\otext{--nforecast <n>} option.) Using 24 CPUs, \prog{cmcalibrate}
estimates the time required for calibration on the machine I'm using
-at about seven minutes.
+at about one minute.
Feel free to perform the calibration yourself if you'd like (with the
command \otext{cmcalibrate tRNA5.cm}). However, we've included the file
@@ -337,13 +341,13 @@ your ran, on what, and with what options:
\begin{sreoutput}
# cmsearch :: search CM(s) against a sequence database
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# query CM file: tRNA5.cm
# target sequence database: tutorial/mrum-genome.fa
-# number of worker threads: 8
+# number of worker threads: 24
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\end{sreoutput}
@@ -367,8 +371,8 @@ most significant hit first):
(12) ! 1.6e-15 61.7 0.0 NC_013790.1 2350984 2350911 - cm no 0.53 Methanobrevibacter ruminantium M1 chromosome, complete genome
(13) ! 3.3e-15 60.7 0.0 NC_013790.1 2186090 2186019 - cm no 0.54 Methanobrevibacter ruminantium M1 chromosome, complete genome
(14) ! 4.1e-15 60.4 0.0 NC_013790.1 2680159 2680233 + cm no 0.67 Methanobrevibacter ruminantium M1 chromosome, complete genome
- (15) ! 7.9e-15 59.5 0.0 NC_013790.1 2749839 2749768 - cm no 0.53 Methanobrevibacter ruminantium M1 chromosome, complete genome
- (16) ! 7.9e-15 59.5 0.0 NC_013790.1 2749945 2749874 - cm no 0.53 Methanobrevibacter ruminantium M1 chromosome, complete genome
+ (15) ! 7.9e-15 59.5 0.0 NC_013790.1 2749945 2749874 - cm no 0.53 Methanobrevibacter ruminantium M1 chromosome, complete genome
+ (16) ! 7.9e-15 59.5 0.0 NC_013790.1 2749839 2749768 - cm no 0.53 Methanobrevibacter ruminantium M1 chromosome, complete genome
(17) ! 9.8e-15 59.2 0.0 NC_013790.1 361676 361604 - cm no 0.51 Methanobrevibacter ruminantium M1 chromosome, complete genome
(18) ! 1e-14 59.2 0.0 NC_013790.1 2585073 2584999 - cm no 0.60 Methanobrevibacter ruminantium M1 chromosome, complete genome
(19) ! 1.1e-14 59.1 0.0 NC_013790.1 2130422 2130349 - cm no 0.59 Methanobrevibacter ruminantium M1 chromosome, complete genome
@@ -664,18 +668,18 @@ Internal CM pipeline statistics summary:
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: 11200 (0.2111); expected (0.35)
+Windows passing local HMM SSV filter: 11205 (0.2116); expected (0.35)
Windows passing local HMM Viterbi filter: (off)
Windows passing local HMM Viterbi bias filter: (off)
-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)
+Windows passing local HMM Forward filter: 136 (0.002693); expected (0.005)
+Windows passing local HMM Forward bias filter: 133 (0.002623); expected (0.005)
+Windows passing glocal HMM Forward filter: 84 (0.001951); expected (0.005)
+Windows passing glocal HMM Forward bias filter: 84 (0.001951); expected (0.005)
+Envelopes passing glocal HMM envelope defn filter: 98 (0.001318); expected (0.005)
+Envelopes passing local CM CYK filter: 60 (0.0007629); expected (0.0001)
Total CM hits reported: 56 (0.0007205); includes 0 truncated hit(s)
-# CPU time: 2.15u 0.03s 00:00:02.17 Elapsed: 00:00:00.89
+# CPU time: 2.01u 0.05s 00:00:02.05 Elapsed: 00:00:00.49
//
[ok]
\end{sreoutput}
@@ -730,19 +734,19 @@ P-values were accurately calculated, the highest scoring 35\% of the
% ^^^^
residues will pass the filter). Here, about 21\% of the database in
% ^^^^
-11,200 separate windows got through the SSV filter. For a database of
+11,205 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 137 windows. Next, each surviving window is checked
+0.3\% survives in 136 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. Three of the 137 windows fail to pass
+recomputing the P-value. Three of the 136 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
@@ -751,7 +755,7 @@ 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,
-87 of the 134 windows, comprising about 0.2\% of the database,
+84 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
@@ -762,13 +766,13 @@ stage, the Forward and Backward algorithms are used to identify zero
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, 100 envelopes are defined within the 87
+envelope. In this search, 98 envelopes are defined within the 84
% ^^^ ^^
windows. Note that the envelopes comprise only about 70\% of the
% ^^^
-residues from the 87 windows, indicated by the drop of 0.1923\% to
+residues from the 84 windows, indicated by the drop of 0.1951\% to
% ^^^^^^^^
-0.1342\%.
+0.1318\%.
%%^^^^
After hit envelopes have been defined with the filter HMM, the two
@@ -794,9 +798,9 @@ 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 second (wall
+elapsed time. This search took about half a second (wall
% ^
-clock time) (running on eight cores).
+clock time) (running on twenty four cores).
\subsubsection{Truncated RNA detection}
@@ -942,13 +946,13 @@ The header and the first section of the output will look like:
\begin{sreoutput}
# cmscan :: search sequence(s) against a CM database
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# query sequence file: ../../tutorial/metag-example.fa
+# query sequence file: tutorial/metag-example.fa
# target CM database: minifam.cm
-# number of worker threads: 8
+# number of worker threads: 24
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Query: AAGA01015927.1 [L=943]
@@ -1022,7 +1026,7 @@ Envelopes passing glocal HMM envelope defn filter: 4 (0.05189); e
Envelopes passing local CM CYK filter: 4 (0.05189); expected (0.0001)
Total CM hits reported: 3 (0.03046); includes 0 truncated hit(s)
-# CPU time: 0.21u 0.01s 00:00:00.22 Elapsed: 00:00:00.22
+# CPU time: 0.15u 0.02s 00:00:00.17 Elapsed: 00:00:00.12
//
\end{widesreoutput}
@@ -1145,9 +1149,172 @@ these four residues is between 65 and 75\%. If no sequence residues
were in this EL, the \otext{PP} annotation would be a gap (\otext{.})
character.
+\subsection{Searching the Rfam CM database with a query sequence}
+
+The Rfam database \url{http://rfam.xfam.org/} is a collection
+of RNA families, each represented by a CM and multiple sequence
+alignment used to build that CM. As of June 2016, the current release
+is 12.1, which includes 2474 families. The Rfam website allows
+web-based searches using \prog{cmscan} of the Rfam CM database against
+query sequences that the user can upload. Alternatively, you can perform
+the same searches by running \prog{cmscan} locally, as shown in this
+example. By searching all of Rfam with your sequence dataset, you will
+be annotating your dataset for most known types of structural RNAs
+with a single command.
+
+To complete this step of the tutorial you'll need to download the Rfam
+12.1 CM file from here: \\
+\url{ftp://ftp.ebi.ac.uk/pub/databases/Rfam/12.1/Rfam.cm.gz}
+and gunzipping it, like this:
+
+\user{wget ftp://ftp.ebi.ac.uk/pub/databases/Rfam/12.1/Rfam.cm.gz}
+
+\user{gunzip Rfam.cm.gz}
+
+Then, as in the previous example, you'll need to run \prog{cmpress} on
+this CM database:
+
+\user{cmpress Rfam.cm}
+
+The next step is to run \prog{cmscan}. In order to reproduce how Rfam
+searches are performed \citep{Nawrocki15} several command line
+options are required. Each of these options is explained below. The
+full command is (split up into two lines so it fits on the page):
+
+\indent\indent\small\verb+> cmscan --rfam --cut_ga --nohmmonly --tblout mrum-genome.tblout --fmt 2 \+\\
+\indent\indent\small\verb+> --clanin testsuite/Rfam.12.1.clanin Rfam.cm tutorial/mrum-genome.fa > mrum-genome.cmscan+\\
+
+This command will take at least several minutes and possibly up to
+about 30 minutes depending on the number of cores and speed of your
+computer.
+
+The command line options used in the above command are as follows:
+
+\begin{sreitems}{\emprog{--nohmmonly}}
+\item[\otext{--rfam}] Specifies that the filter pipeline run in fast
+ mode, with the same strict filters that are used for Rfam searches
+ and for other sequence databases larger than 20 Gb (see
+ section~\ref{section:pipeline}).
+%
+\item[\otext{--cut\_ga}] Specifies that the special Rfam \emph{GA}
+ (gathering) thresholds be used to determine which hits are
+ reported. These thresholds are stored in the \prog{Rfam.cm} file.
+ Each model has its own GA bit score threshold, which was determined
+ by Rfam curators as the bit score at and above which all hits are
+ believed to be true homologs to the model. These determinations were made based on
+ observed hit results against the large Rfamseq database used by
+ Rfam \citep{Nawrocki15}.
+%
+\item[\otext{--nohmmonly}] All models, even those with zero basepairs,
+ are run in CM mode (not HMM mode). This ensures all GA cutoffs, which were
+ determined in CM mode for each model, are valid.
+%
+\item[\otext{--tblout}] Specifies that a tabular output
+ file should be created, see section~\ref{section:tabular}.
+%
+\item[\otext{--fmt 2}] The tabular output file will be in format 2,
+ which includes annotation of overlapping hits. See
+ page~\pageref{tabular-format2} for a complete description of this
+ format.
+%
+\item[\otext{--clanin}] Clan information should be read
+ from the file \prog{testsuite/Rfam.12.1.claninfo}. This file lists
+ which models belong to the same clan. Clans are groups of models
+ that are homologous and therefore it is expected that some hits to
+ these models will overlap. For example, the LSU\_rRNA\_archaea and
+ LSU\_rRNA\_bacteria models are both in the same clan.
+%
+\end{sreitems}
+
+When the \prog{cmscan} command finishes running, the file
+\prog{mrum-genome.cmscan} will contain the standard output of the
+program. This file will be similar to what we saw in the earlier example of
+\prog{cmscan}. The file \prog{mrum-genome.tblout} has also been
+created, which is a tabular representation of all hits, one line per
+hit. Take a look at this file. The first two lines are comment lines
+(prefixed with \prog{\#} characters) with the labels of each of the 27
+columns of data in the file. Each subsequent line has 27 space
+delimited tokens. The specific meaning of these tokens is described in
+detail in section~\ref{section:tabular}. Below I'm including the
+first 24 lines of the file, with columns 3-5, 7-9 and 13-16 removed
+(replaced with \prog{...}) so that the text will fit on this page:
+
+\begin{tinysreoutput}
+#idx target name ... clan name ... seq from seq to strand ... score E-value inc olp anyidx afrct1 afrct2 winidx wfrct1 wfrct2 description of target
+#--- ---------------------- ... --------- ... -------- -------- ------ ... ----- --------- --- --- ------ ------ ------ ------ ------ ------ ---------------------
+1 LSU_rRNA_archaea ... CL00112 ... 762872 765862 + ... 2763.5 0 ! ^ - - - - - - -
+2 LSU_rRNA_archaea ... CL00112 ... 2041329 2038338 - ... 2755.0 0 ! ^ - - - - - - -
+3 LSU_rRNA_bacteria ... CL00112 ... 762874 765862 + ... 1872.9 0 ! = 1 1.000 0.999 " " " -
+4 LSU_rRNA_bacteria ... CL00112 ... 2041327 2038338 - ... 1865.5 0 ! = 2 1.000 0.999 " " " -
+5 LSU_rRNA_eukarya ... CL00112 ... 763018 765851 + ... 1581.3 0 ! = 1 1.000 0.948 " " " -
+6 LSU_rRNA_eukarya ... CL00112 ... 2041183 2038349 - ... 1572.1 0 ! = 2 1.000 0.948 " " " -
+7 SSU_rRNA_archaea ... CL00111 ... 2043361 2041888 - ... 1552.0 0 ! ^ - - - - - - -
+8 SSU_rRNA_archaea ... CL00111 ... 760878 762351 + ... 1546.5 0 ! ^ - - - - - - -
+9 SSU_rRNA_bacteria ... CL00111 ... 2043366 2041886 - ... 1161.9 0 ! = 7 0.995 1.000 " " " -
+10 SSU_rRNA_bacteria ... CL00111 ... 760873 762353 + ... 1156.4 0 ! = 8 0.995 1.000 " " " -
+11 SSU_rRNA_eukarya ... CL00111 ... 2043361 2041891 - ... 970.4 2.5e-289 ! = 7 1.000 0.998 " " " -
+12 SSU_rRNA_eukarya ... CL00111 ... 760878 762348 + ... 963.8 2.4e-287 ! = 8 1.000 0.998 " " " -
+13 SSU_rRNA_microsporidia ... CL00111 ... 2043361 2041891 - ... 919.9 1.9e-277 ! = 7 1.000 0.998 " " " -
+14 SSU_rRNA_microsporidia ... CL00111 ... 760878 762348 + ... 917.2 1.3e-276 ! = 8 1.000 0.998 " " " -
+15 RNaseP_arch ... - ... 2614544 2614262 - ... 184.9 2.8e-50 ! * - - - - - - -
+16 Archaea_SRP ... CL00003 ... 1064321 1064634 + ... 197.6 1.7e-45 ! * - - - - - - -
+17 FMN ... - ... 193975 193837 - ... 115.2 1.7e-24 ! * - - - - - - -
+18 tRNA ... CL00001 ... 735136 735208 + ... 72.1 1.2e-12 ! * - - - - - - -
+19 tRNA ... CL00001 ... 2350593 2350520 - ... 71.0 2.5e-12 ! * - - - - - - -
+20 tRNA ... CL00001 ... 2680310 2680384 + ... 70.9 2.6e-12 ! * - - - - - - -
+21 tRNA ... CL00001 ... 2351254 2351181 - ... 69.7 5.5e-12 ! * - - - - - - -
+22 tRNA ... CL00001 ... 361676 361604 - ... 69.5 6.2e-12 ! * - - - - - - -
+\end{tinysreoutput}
+
+This tabular format includes the target model name, sequence name (in
+column 3, which is omitted above to save space), clan name, sequence
+coordinates, bit score, E-value and more. Because the \prog{--fmt 2}
+option was used, this file includes information on which hits overlap
+with other hits, starting at the column labelled ``olp'' and ending
+with ``wfrct2''. Hits with the ``*'' character in the ``olp'' column
+do not overlap with any other hits. Those with ``\verb+^+'' do overlap with
+at least one other hit, but none of those overlapping hits have a
+better score (that occurs higher in the list). Those with ``='' also
+overlap with at least one other hit that does have a better score, the
+index of which is given in the ``anyidx'' column. For more detailed
+explanation of these columns, see page~\pageref{tabular-format2}.
+
+The top two hits are both to the \prog{LSU\_rRNA\_archaea}
+model. These are the two copies of LSU rRNA in the
+\emph{Methanobrevibacter ruminantium} genome. Hits number 3 and 4
+are to the \prog{LSU\_rRNA\_bacteria} model and overlap with hits 1
+and 2 nearly completely (hit 1 is from sequence positions 762872 to 765862 and
+hit 3 is from sequence positions 762874 to 765862). This overlap is not
+surprising because the bacterial and archaeal LSU rRNA models are very
+similar, and so are assigning high scores to the same
+subsequences. Further, hit 5 is to \prog{LSU\_rRNA\_eukarya} and also
+overlaps hits 1 and 3. Because these three LSU models are all expected
+to produce overlapping hits due to their homology, Rfam has grouped
+them into the same \emph{clan}, note the ``CL00112'' value in the ``clan
+name'' column for all three hits. This clan information was provided
+in the \prog{rfam.12.1claninfo} input file we provided to \prog{cmscan}
+by using the \prog{--clanin} option.
+
+The ``olp'' column indicates that hit 1 is the highest scoring of the
+three overlapping hits because it contains the ``\verb+^+'' character. Hits 3 and 5 both have
+``='' in the ``olp'' column indicating that there is another hit to
+another model which overlaps these hits and has a better score.
+
+If you were using these results to produce annotations for the
+\emph{Methanobrevibacter ruminantium} genome, you may want to ignore
+any hits that have higher scoring overlaps. To do this you can just
+remove any hits with ``='' in the ``olp'' column. Alternatively, you
+can have these hits not printed to the tabular output file by
+additionally providing the \prog{--oskip} option to \prog{cmscan}.
+You can also modify the overlap annotation behavior with
+\prog{--oclan} option which restricts the annotation of overlaps to
+hits for models within the same clan. Overlapping hits from models
+that are not in the same clan will not be marked as
+overlaps, instead they will marked as ``*'' in the ``olp'' field.
+
\subsection{Creating multiple alignments with cmalign}
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
+the 10 tRNA hits above the inclusion threshold (with an E-value
less than $0.01$) found by \prog{cmsearch} in our
search of \emph{M. ruminantium} genome\footnote{The
\otext{-A <f>} option to \prog{cmsearch} can be used to save a
@@ -1163,7 +1330,7 @@ The output of this is a Stockholm format multiple alignment file:
\begin{tinysreoutput}
# STOCKHOLM 1.0
-#=GF AU Infernal 1.1.1
+#=GF AU Infernal 1.1.2
mrum-tRNA.1 GGAGCUAUAGCUCAAU..GGC..AGAGCGUUUGGCUGACAU........................................CCAAAAGGUUAUGGGUUCGAUUCCCUUUAGCCCCA
#=GR mrum-tRNA.1 PP ****************..***..******************........................................***********************************
@@ -1293,7 +1460,7 @@ below so it will fit on the page):
\label{cmalign-cobalamin}
\begin{sreoutput}
# STOCKHOLM 1.0
-#=GF AU Infernal 1.1.1
+#=GF AU Infernal 1.1.2
Cobalamin.1 -------------------------------GUAGGCAAAAGGAAGAGGAAGgAUGGUGGAAAUCCUUCACGGGCCCGGCCA
#=GR Cobalamin.1 PP ...............................44455566666899******989****************************
@@ -1367,7 +1534,7 @@ of several programs) to try to predict the conserved secondary
structure of a collection of homologous RNAs. Currently, Infernal
itself does not have the capability of predicting structure, but it's
predecessor COVE did with the \prog{covet} program, still available at
-\url{ftp://selab.janelia.org/pub/software/cove/cove-2.4.4.tar.Z}.
+\url{eddylab.org/software/cove/cove.tar.Z}.
Infernal automatically detects when a model has zero basepairs and
uses efficient profile HMM algorithms in \prog{cmsearch} and
@@ -1393,9 +1560,9 @@ identical:
\begin{sreoutput}
# cmbuild :: covariance model construction from multiple sequence alignments
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# CM file: tRNA5-noss.cm
# alignment file: tutorial/tRNA5.sto
@@ -1407,7 +1574,7 @@ identical:
# ------ -------------------- -------- -------- ------ ----- ---- ---- ----- ----- -----------
1 tRNA5 5 5.00 74 72 0 0 0.552 0.552
#
-# CPU time: 0.18u 0.00s 00:00:00.18 Elapsed: 00:00:00.19
+# CPU time: 0.14u 0.00s 00:00:00.14 Elapsed: 00:00:00.14
\end{sreoutput}
The output reports that this model has 0 basepairs (``bps'') (the
@@ -1449,7 +1616,7 @@ algorithms are used this time around. Take a look at the list of hits:
(10) ! 6.4e-05 24.8 0.0 NC_013790.1 1873882 1873820 - hmm - 0.63 Methanobrevibacter ruminantium M1 chromosome, complete genome
(11) ! 0.00014 23.7 0.0 NC_013790.1 360882 360824 - hmm - 0.51 Methanobrevibacter ruminantium M1 chromosome, complete genome
(12) ! 0.00059 21.8 0.0 NC_013790.1 361910 361851 - hmm - 0.38 Methanobrevibacter ruminantium M1 chromosome, complete genome
- (13) ! 0.00091 21.2 0.0 NC_013790.1 2350586 2350528 - hmm - 0.58 Methanobrevibacter ruminantium M1 chromosome, complete genome
+ (13) ! 0.00092 21.2 0.0 NC_013790.1 2350586 2350528 - hmm - 0.58 Methanobrevibacter ruminantium M1 chromosome, complete genome
(14) ! 0.0018 20.3 0.0 NC_013790.1 995341 995267 - hmm - 0.51 Methanobrevibacter ruminantium M1 chromosome, complete genome
(15) ! 0.0026 19.7 0.0 NC_013790.1 97728 97788 + hmm - 0.49 Methanobrevibacter ruminantium M1 chromosome, complete genome
(16) ! 0.0029 19.6 0.0 NC_013790.1 2186083 2186024 - hmm - 0.50 Methanobrevibacter ruminantium M1 chromosome, complete genome
@@ -1459,7 +1626,7 @@ algorithms are used this time around. Take a look at the list of hits:
(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.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
+ (22) ? 0.018 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
@@ -1655,9 +1822,9 @@ To build the hand-specified model from this alignment, do:
\begin{sreoutput}
# cmbuild :: covariance model construction from multiple sequence alignments
-# INFERNAL 1.1.1 (July 2014)
-# Copyright (C) 2014 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
+# INFERNAL 1.1.2 (June 2016)
+# Copyright (C) 2016 Howard Hughes Medical Institute.
+# Freely distributed under a BSD open source license.
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# CM file: tRNA5-hand.cm
# alignment file: ../../tutorial/tRNA5-hand.sto
@@ -1669,7 +1836,7 @@ To build the hand-specified model from this alignment, do:
# ------ -------------------- -------- -------- ------ ----- ---- ---- ----- ----- -----------
1 tRNA5-hand 5 3.59 74 74 21 2 0.763 0.476
#
-# CPU time: 0.59u 0.00s 00:00:00.59 Elapsed: 00:00:00.61
+# CPU time: 0.31u 0.00s 00:00:00.31 Elapsed: 00:00:00.32
\end{sreoutput}
The output reports that the model now has 74 match (consensus)
@@ -1687,6 +1854,7 @@ version of the file is in \otext{tutorial/tRNA5-hand.c.cm}. To do the
search:
\user{cmsearch tutorial/tRNA5-hand.c.cm tutorial/mrum-genome.fa}
+% tutorial regression: trna-hand-mrum.cmsearch
The results are very similar to the earlier search with the
tRNA model built with default \prog{cmbuild} parameters (though not
diff --git a/easel/00README b/easel/00README
index 1b3f146..0a118fa 100644
--- a/easel/00README
+++ b/easel/00README
@@ -1,7 +1,6 @@
Easel - a library of C functions for biological sequence analysis
-http://easel.janelia.org/
-Version i1.1.1; July 2014
-Copyright (C) 2014 HHMI Janelia Farm Research Campus
+Version 0.43; July 2016
+Copyright (C) 2016 Howard Hughes Medical Institute
------------------------------------------------------------------
Easel is an ANSI C code library for computational analysis of
@@ -18,15 +17,14 @@ Other files to read in the top-level source directory:
INSTALL Brief installation instructions.
Userguide.pdf The Easel User's Guide.
RELEASE-NOTES Notes for this release.
- COPYRIGHT Copyright and license information.
- LICENSE The Janelia Farm Software License.
+ LICENSE Copyright, contributors, and license information
To get started after installation, see the Easel User's Guide
(Userguide.pdf).
------------------------------------------------------------------
-Sean Eddy
-HHMI Janelia Farm Research Campus
+Sean Eddy | HHMI | Harvard University | http://eddylab.org
+
diff --git a/easel/BUGTRAX b/easel/BUGTRAX
index 3a067f6..3fe71de 100644
--- a/easel/BUGTRAX
+++ b/easel/BUGTRAX
@@ -1,3 +1,52 @@
+ID e11
+TITLE Unicode characters in MSA files crash MSA parsers
+AFFECTS -
+FIXED_IN -
+STATUS CLOSED
+XREF -
+REPORTED_BY Jody Clements
+OPENED_DATE SRE, Thu Jan 22 14:22:54 2015
+CLOSED_DATE SRE, Thu Jan 22 14:22:56 2015
+DESCRIPTION
+ MSA file parsers require ASCII input because they use an
+ inmap[0..127], but were not validating user input. Unicode
+ characters result in out of bounds accesses and corruption.
+ (Unaligned file parsers do validate.)
+
+ Fix is to have esl_abc_dsqcat_noalloc() (for digital mode) and
+ esl_strmapcat_noalloc() (for text mode) validate that each char
+ is ASCII.
+//
+ID e10
+TITLE Clustal format allows optional trailing coords
+AFFECTS -
+FIXED_IN -
+STATUS CLOSED
+XREF -
+REPORTED_BY sumudu <sumudu at fiserlab.org>, 27 Jan 2014
+OPENED_DATE 28 Jan 2014
+CLOSED_DATE 28 Jan 2014
+DESCRIPTION
+ Clustal format allows an optional trailing seq coord number
+ on each line, but we weren't allowing for that.
+//
+ID e9
+TITLE Segmentation fault in esl-stranslate
+AFFECTS H3.1b1
+FIXED_IN -
+STATUS CLOSED
+XREF -
+REPORTED_BY Jaina Mistry <jaina at ebi.ac.uk>
+OPENED_DATE TJW, Tue Sep 24 04:57:08 2013
+CLOSED_DATE TJW, Tue Sep 24 04:57:08 2013
+DESCRIPTION
+ esl-stranslate crashed with seg fault if any of the 6 frames
+ ended with a stop codon. An extra sequence object was
+ created to hold the "next" ORF, but no ORF followed; the
+ result was a sequence object with no name or sequence,
+ and a resulting seg fault when that sequence's information
+ was printed.
+//
ID e8
TITLE esl_threads fails to compile
AFFECTS -
@@ -153,4 +202,4 @@ DESCRIPTION
//
#
# Started Easel BUGTRAX file: SRE, Tue Dec 1 11:08:31 2009
-# xref J5/116
\ No newline at end of file
+# xref J5/116
diff --git a/easel/COPYRIGHT b/easel/COPYRIGHT
deleted file mode 100644
index 994f91f..0000000
--- a/easel/COPYRIGHT
+++ /dev/null
@@ -1,27 +0,0 @@
-Easel - a library of C functions for biological sequence analysis
-Copyright (C) 2014 HHMI Janelia Farm Research Campus
-
-Additional copyrights apply to the package:
-Copyright (C) 2004-2013 Sean R. Eddy
-Copyright (C) 2006-2013 Howard Hughes Medical Institute
-
-Easel also includes pieces of copyrighted and licensed code from a
-variety of sources and contributors, as noted in the appropriate
-places in individual files. Copyright holders and contributors
-include:
-
- Free Software Foundation, Inc. configure
- Matteo Frigo aclocal.m4
- Steven G. Johnson aclocal.m4
- Stephen Moshier esl_sse.c,esl_vmx.c
- Julien Pommier esl_sse.c,esl_vmx.c
- Christophe Tournayre aclocal.m4
- David Wheeler easel.c::esl_tmpfile()
- University of Toronto esl_regexp.c
-
-The Easel library is freely modifiable and redistributable under the
-Janelia Farm Software License, a BSD license. See the file LICENSE for
-details.
-
-
-
diff --git a/easel/INSTALL b/easel/INSTALL
index 6d432bd..5792d0a 100644
--- a/easel/INSTALL
+++ b/easel/INSTALL
@@ -1,12 +1,12 @@
Brief installation instructions
-Easel i1.1.1; July 2014
+Easel 0.43; July 2016
SRE, Mon Mar 24 09:05:20 2008
-------------------------------------------------------------
-Starting from a source distribution, easel-i1.1.1.tar.gz:
- Uncompress: uncompress easel-i1.1.1.tar.gz
- Unpack: tar xf easel-i1.1.1.tar
- Move into new directory: cd easel-i1.1.1
+Starting from a source distribution, easel-0.43.tar.gz:
+ Uncompress: uncompress easel-0.43.tar.gz
+ Unpack: tar xf easel-0.43.tar
+ Move into new directory: cd easel-0.43
Configure: ./configure
Build: make
Automated tests: make check
diff --git a/easel/LICENSE b/easel/LICENSE
index 49eacb7..a626cf1 100644
--- a/easel/LICENSE
+++ b/easel/LICENSE
@@ -1,32 +1,54 @@
-The Janelia Farm Software License
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- 3. Neither the name of the Howard Hughes Medical Institute nor the
- names of its contributors may be used to endorse or promote
- products derived from this software without specific prior written
- permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, ANY IMPLIED WARRANTIES OF MERCHANTABILITY,
-NON-INFRINGEMENT, OR FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
-REASONABLE ROYALTIES; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
-ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
-TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
-USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
-DAMAGE.
+Easel - a library of C functions for biological sequence analysis
+
+ at EASEL_COPYRIGHT@
+Copyright (C) 2004-2016 Sean R. Eddy
+Copyright (C) 2004-2016 Howard Hughes Medical Institute
+Copyright (C) 2015-2016 President and Fellows of Harvard College
+Copyright (C) 2004-2006 Washington University School of Medicine
+
+Easel also includes copyrighted and licensed code from a variety of
+sources and contributors, as noted in the appropriate places in
+individual files. Copyright holders and contributors include:
+
+ Free Software Foundation, Inc. configure
+ Matteo Frigo aclocal.m4
+ Steven G. Johnson aclocal.m4
+ Stephen Moshier esl_sse.c,esl_vmx.c
+ Julien Pommier esl_sse.c,esl_vmx.c
+ Sun Microsystems, Inc. esl_stats.c::esl_erfc()
+ David Robert Nadeau esl_stopwatch.c
+ Henry Spencer, U. of Toronto esl_regexp.c
+ Christophe Tournayre aclocal.m4
+ David Wheeler easel.c::esl_tmpfile()
+
+The Easel library is open source, freely distributed under the terms of a
+standard BSD (Berkeley Software Distribution) license:
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ 3. Neither the name of the copyright holder nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/easel/Makefile.in b/easel/Makefile.in
index 21cd2e5..4914fc5 100644
--- a/easel/Makefile.in
+++ b/easel/Makefile.in
@@ -16,10 +16,10 @@
#
top_srcdir = @top_srcdir@
srcdir = @srcdir@
-VPATH = @srcdir@
+VPATH = @srcdir@
SHELL = /bin/sh
-# Package information
+# Package information
#
PACKAGE = @PACKAGE_NAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
@@ -58,14 +58,14 @@ LIBS = @LIBS@ @PTHREAD_LIBS@
# Other tools
#
COMPRESS = gzip
-AR = @AR@
+AR = @AR@
RANLIB = @RANLIB@
INSTALL = @INSTALL@
-# beautification magic stolen from git
+# beautification magic stolen from git
#
QUIET_SUBDIR0 = +${MAKE} -C #space separator after -c
-QUIET_SUBDIR1 =
+QUIET_SUBDIR1 =
ifndef V
QUIET_CC = @echo ' ' CC $@;
QUIET_GEN = @echo ' ' GEN $@;
@@ -80,17 +80,22 @@ endif
#
HDRS = easel.h\
esl_alphabet.h\
+ esl_avx.h\
esl_buffer.h\
esl_cluster.h\
+ esl_composition.h\
esl_dirichlet.h\
esl_distance.h\
esl_dmatrix.h\
+ esl_dsqdata.h\
esl_exponential.h\
esl_fileparser.h\
esl_gamma.h\
+ esl_gencode.h\
esl_getopts.h\
esl_gev.h\
esl_gumbel.h\
+ esl_heap.h\
esl_histogram.h\
esl_hmm.h\
esl_hyperexp.h\
@@ -141,17 +146,22 @@ HDRS = easel.h\
OBJS = easel.o\
esl_alphabet.o\
+ esl_avx.o\
esl_buffer.o\
esl_cluster.o\
+ esl_composition.o\
esl_dirichlet.o\
esl_distance.o\
esl_dmatrix.o\
+ esl_dsqdata.o\
esl_exponential.o\
esl_fileparser.o\
esl_gamma.o\
+ esl_gencode.o\
esl_getopts.o\
esl_gev.o\
esl_gumbel.o\
+ esl_heap.o\
esl_histogram.o\
esl_hmm.o\
esl_hyperexp.o\
@@ -220,12 +230,16 @@ UTESTS =\
esl_dirichlet_utest\
esl_distance_utest\
esl_dmatrix_utest\
+ esl_dsqdata_utest\
esl_exponential_utest\
esl_fileparser_utest\
esl_gamma_utest\
+ esl_gencode_utest\
esl_getopts_utest\
esl_gumbel_utest\
+ esl_heap_utest\
esl_histogram_utest\
+ esl_hmm_utest\
esl_hyperexp_utest\
esl_keyhash_utest\
esl_mem_utest\
@@ -241,6 +255,7 @@ UTESTS =\
esl_msafile_selex_utest\
esl_msafile_stockholm_utest\
esl_msaweight_utest\
+ esl_normal_utest\
esl_random_utest\
esl_randomseq_utest\
esl_ratematrix_utest\
@@ -263,7 +278,6 @@ UTESTS =\
# minimizer_utest\
# mixgev_utest\
# mpi_utest\
-# normal_utest\
# paml_utest\
# stopwatch_utest\
# swat_utest\
@@ -282,10 +296,14 @@ EXAMPLES = \
esl_cluster_example\
esl_dirichlet_example\
esl_dmatrix_example\
+ esl_dsqdata_example\
+ esl_dsqdata_example2\
esl_exponential_example\
esl_fileparser_example\
esl_fileparser_example2\
esl_gamma_example\
+ esl_gencode_example\
+ esl_gencode_example2\
esl_getopts_example\
esl_getopts_example2\
esl_gev_example\
@@ -295,6 +313,7 @@ EXAMPLES = \
esl_histogram_example3\
esl_histogram_example4\
esl_histogram_example5\
+ esl_hmm_example\
esl_hyperexp_example\
esl_keyhash_example\
esl_minimizer_example\
@@ -318,8 +337,10 @@ EXAMPLES = \
esl_msashuffle_example\
esl_msaweight_example\
esl_normal_example\
- esl_normal_example2\
esl_random_example\
+ esl_regexp_example\
+ esl_regexp_example2\
+ esl_regexp_example3\
esl_rootfinder_example\
esl_rootfinder_example2\
esl_scorematrix_example\
@@ -358,7 +379,7 @@ all: libeasel.a .FORCE
dev: libeasel.a ${UTESTS} ${BENCHMARKS} ${EXPERIMENTS} ${EXAMPLES} .FORCE
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} dev
-tests: ${UTESTS}
+tests: ${UTESTS}
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} tests
check: ${UTESTS} .FORCE
@@ -369,18 +390,18 @@ pdf:
${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} pdf
libeasel.a: ${OBJS}
- ${QUIET_AR}${AR} -r libeasel.a $(OBJS) > /dev/null 2>&1
+ ${QUIET_AR}${AR} -r libeasel.a $(OBJS) > /dev/null 2>&1
@${RANLIB} libeasel.a
.FORCE:
${OBJS}: ${HDRS} esl_config.h
-.c.o:
- ${QUIET_CC}${CC} -I. -I${srcdir} ${CFLAGS} ${SIMDFLAGS} ${DEFS} -o $@ -c $<
+.c.o:
+ ${QUIET_CC}${CC} -I. -I${srcdir} ${CFLAGS} ${SIMDFLAGS} ${DEFS} -o $@ -c $<
# Unit test compilation:
-#
+#
# To compile unit tests, we need to construct a command line
# from module basename, module's testdriver flag, and module's
# C file. This is accomplished via a complex-looking shell scripture;
@@ -481,7 +502,11 @@ uninstall:
# "make clean" removes almost everything except configuration files
#
clean:
+#Use 'ifneq' instead of 'test -e' because the '+@' in QUIET_SUBDIR0 can't
+#be passed to the shell. Note that ifneq breaks if indented.
+ifneq (,$(wildcard ./documentation/.))
${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} clean
+endif
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} clean
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} clean
-rm -f ${OBJS} libeasel.a
@@ -498,7 +523,10 @@ clean:
distclean: clean
+#See above for explanation of 'ifneq' usage
+ifneq (,$(wildcard ./documentation/.))
${QUIET_SUBDIR0}documentation ${QUIET_SUBDIR1} distclean
+endif
${QUIET_SUBDIR0}testsuite ${QUIET_SUBDIR1} distclean
${QUIET_SUBDIR0}miniapps ${QUIET_SUBDIR1} distclean
-rm esl_config.h
@@ -506,6 +534,10 @@ distclean: clean
-rm LICENSE.sh
-rm Makefile
+gitclean: distclean
+ -rm configure
+
+
# 'make REPOSITORY=... dist' : create a new distribution tarball
#
dist:
@@ -558,52 +590,5 @@ implode:
-rm -f LICENSE.tag
TAGS:
- -rm -f ${top_srcdir}/TAGS
- make tags-append
-
-tags-append:
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/00CHECKLIST
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/BUGTRAX
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/INSTALL
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/LICENSE
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/aclocal.m4
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/configure.ac
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/*.h
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/*.tex
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/00README
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/*.pl
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/*.pm
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/blast*
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/fasta*
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/h2*
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/demotic/hmmer*
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/devkit/*
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/*.tex
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/miniapps/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/miniapps/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/miniapps/*.man
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/miniapps/*.pl
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.pl
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.sqc
-
-################################################################
-# Easel - a library of C functions for biological sequence analysis
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 HHMI Janelia Farm Research Campus
-# Other copyrights also apply. See the COPYRIGHT file for a full list.
-#
-# Easel is distributed under the Janelia Farm Software License, a BSD
-# license. See the LICENSE file for more details.
-#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/Makefile.in $
-# SVN $Id: Makefile.in 870 2013-06-09 10:07:05Z nawrockie $
-################################################################
+ ./makeTAGS.sh
+
diff --git a/easel/aclocal.m4 b/easel/aclocal.m4
index dbed715..e531239 100644
--- a/easel/aclocal.m4
+++ b/easel/aclocal.m4
@@ -1,8 +1,21 @@
-# aclocal.m4 contains custom macros used for creating HMMER's
-# configuration script.
+# aclocal.m4 contains custom macros used for creating configuration scripts.
+#
+# The aclocal.m4 in Easel is the master copy. HMMER and other projects
+# that depend on Easel create a symlink to the Easel aclocal.m4.
+#
+# Contents:
+# 1. CHECK_GNU_MAKE Sets EXEC_DEPENDENCY to $$@.o vs. %: %.o for sysv vs. GNU make.
+# 2. ACX_MPI Detects MPI installation
+# 3. ACX_PTHREAD Detects POSIX threads
+# 4. AX_COMPILER_VENDOR Sets $ax_cv_c_compiler_vendor to gnu, intel, etc.
+# 5. AX_CHECK_COMPILER_FLAGS Checks for support of a compiler flag. Example: -msse2
+# 6. AX_GCC_FUNC_ATTRIBUTE Checks for gcc-like support of function __attribute() tags
+# 7. ESL_PIC_FLAGS Detects whether/how to build PIC (position independent code)
+# 8. Copyright, license info
+#
+# The autoconf macro archive is at:
+# http://www.gnu.org/software/ac-archive/
#
-# SRE, Sun Apr 22 09:26:38 2007 [Janelia]
-# SVN $Id: aclocal.m4 821 2012-11-21 15:00:19Z nawrockie $
#################################################################
# Macro: CHECK_GNU_MAKE
@@ -19,11 +32,13 @@
# I use two different conventions in my Makefiles. Sometimes
# executable "foo" has a file "foo.c" - this is the HMMER, Easel, Infernal convention.
# Sometimes executable "foo" has a file "foo_main.c" - this is
-# the SQUID convention. The configure script sets the
+# my older SQUID convention. The configure script sets the
# EXEC_DEPENDENCY appropriately: here, HMMER style.
#
+# Then we can write one Makefile line for all programs in ${PROGS} like so:
+# ${PROGS}: @EXEC_DEPENDENCY@
+#
# Sets an output variable EXEC_DEPENDENCY.
-# This is used in the src/Makefile.in.
#
AC_DEFUN(CHECK_GNU_MAKE,[
AC_MSG_CHECKING(whether you have a GNU make)
@@ -384,6 +399,41 @@ AC_LANG_RESTORE
#################################################################
+# Macro: AX_COMPILER_VENDOR
+# Usage: AX_COMPILER_VENDOR
+# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
+# Copyright (C) 2007 Matteo Frigo
+# Version: 2007-08-01
+# Source: http://autoconf-archive.cryp.to/ax_compiler_vendor.html
+#
+# Sets $ax_cv_c_compiler_vendor to gnu, intel, ibm, sun, hp, borland,
+# comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft, watcom, etc.
+#
+# Everything below is verbatim from the archive. DO NOT MODIFY IT.
+AC_DEFUN([AX_COMPILER_VENDOR],
+[
+AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
+ [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
+ # note: don't check for gcc first since some other compilers define __GNUC__
+ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
+ vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
+#if !($vencpp)
+ thisisanerror;
+#endif
+])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
+ done
+ ])
+])
+#
+# AX_COMPILER_VENDOR macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+#################################################################
# Macro: AX_CHECK_COMPILER_FLAGS
# Usage: AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
@@ -431,422 +481,249 @@ fi
-#################################################################
-# Macro: AX_GCC_X86_CPUID
-# Usage: AX_GCC_X86_CPUID(OP)
-# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
-# Copyright (C) 2007 Matteo Frigo
-# Version: 2007-07-29
-# Source: http://autoconf-archive.cryp.to/ax_gcc_x86_cpuid.html
-#
-# Runs 'cpuid' with opcode 'OP'.
-# Sets cache variable ax_cv_gcc_x86_cpuid_OP to "eax:ebx:ecx:edx"
-# where these are the registers set by 'cpuid'.
-# If cpuid fails, variable is set to the string "unknown".
-# This macro is required by AX_EXT; see below.
-#
-# Everything below is verbatim from the archive. DO NOT MODIFY IT.
-#
-AC_DEFUN([AX_GCC_X86_CPUID],
-[AC_REQUIRE([AC_PROG_CC])
-AC_LANG_PUSH([C])
-AC_CACHE_CHECK(for x86 cpuid $1 output, ax_cv_gcc_x86_cpuid_$1,
- [AC_RUN_IFELSE([AC_LANG_PROGRAM([#include <stdio.h>], [
- int op = $1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-])],
- [ax_cv_gcc_x86_cpuid_$1=`cat conftest_cpuid`; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown; rm -f conftest_cpuid],
- [ax_cv_gcc_x86_cpuid_$1=unknown])])
-AC_LANG_POP([C])
-])
-
-
-
-#################################################################
-# Macro: AX_COMPILER_VENDOR
-# Usage: AX_COMPILER_VENDOR
-# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
-# Copyright (C) 2007 Matteo Frigo
-# Version: 2007-08-01
-# Source: http://autoconf-archive.cryp.to/ax_compiler_vendor.html
-#
-# Sets $ax_cv_c_compiler_vendor to gnu, intel, ibm, sun, hp, borland,
-# comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft, watcom, etc.
-#
-# Everything below is verbatim from the archive. DO NOT MODIFY IT.
-AC_DEFUN([AX_COMPILER_VENDOR],
-[
-AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
- [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
- # note: don't check for gcc first since some other compilers define __GNUC__
- for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
- vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
-#if !($vencpp)
- thisisanerror;
-#endif
-])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
- done
- ])
-])
-#
-# AX_COMPILER_VENDOR macro end.
-# ****************************************************************
-# ****************************************************************
#################################################################
-# Macro: AX_GCC_ARCHFLAG
-# Usage: AX_GCC_ARCHFLAG([PORTABLE?], [ACTION-SUCCESS], [ACTION-FAILURE])
-# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
-# Copyright (C) 2007 Matteo Frigo
-# Version: 2007-07-29
-# Source: http://autoconf-archive.cryp.to/ax_gcc_archflag.html
-#
-# This macro tries to guess the "native" arch corresponding to the
-# target architecture for use with gcc's -march=arch or -mtune=arch
-# flags. If found, the cache variable $ax_cv_gcc_archflag is set to this
-# flag and ACTION-SUCCESS is executed; otherwise $ax_cv_gcc_archflag is
-# is set to "unknown" and ACTION-FAILURE is executed. The default
-# ACTION-SUCCESS is to add $ax_cv_gcc_archflag to the end of $CFLAGS.
-#
-# PORTABLE? should be either [yes] (default) or [no]. In the former
-# case, the flag is set to -mtune (or equivalent) so that the
-# architecture is only used for tuning, but the instruction set used is
-# still portable. In the latter case, the flag is set to -march (or
-# equivalent) so that architecture-specific instructions are enabled.
+# Macro: AX_GCC_FUNC_ATTRIBUTE
+# Usage: AX_GCC_FUNC_ATTRIBUTE(noreturn), for example
+# Author: Gabriele Svelto <gabriele.svelto at gmail.com>
+# Version: 3?
+# Source: http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# Unmodified from the original; can be replaced by a new version.
#
-# The user can specify --with-gcc-arch=<arch> in order to override the
-# macro's choice of architecture, or --without-gcc-arch to disable this.
+# Defines HAVE_FUNC_ATTRIBUTE_NORETURN (for example).
#
-# When cross-compiling, or if $CC is not gcc, then ACTION-FAILURE is
-# called unless the user specified --with-gcc-arch manually.
-#
-# Everything below is verbatim from the archive. DO NOT MODIFY IT.
-#
-AC_DEFUN([AX_GCC_ARCHFLAG],
-[AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AC_CANONICAL_HOST])
-
-AC_ARG_WITH(gcc-arch, [AC_HELP_STRING([--with-gcc-arch=<arch>], [use architecture <arch> for gcc -march/-mtune, instead of guessing])],
- ax_gcc_arch=$withval, ax_gcc_arch=yes)
-
-AC_MSG_CHECKING([for gcc architecture flag])
-AC_MSG_RESULT([])
-AC_CACHE_VAL(ax_cv_gcc_archflag,
-[
-ax_cv_gcc_archflag="unknown"
-
-if test "$GCC" = yes; then
-
-if test "x$ax_gcc_arch" = xyes; then
-ax_gcc_arch=""
-if test "$cross_compiling" = no; then
-case $host_cpu in
- i[[3456]]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones
- AX_GCC_X86_CPUID(0)
- AX_GCC_X86_CPUID(1)
- case $ax_cv_gcc_x86_cpuid_0 in
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[[48]]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;
- *5??:*:*:*) ax_gcc_arch=pentium ;;
- *6[[3456]]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[[01]]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[[234]]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6[[9d]]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
- *6[[78b]]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6??:*:*:*) ax_gcc_arch=pentiumpro ;;
- *f3[[347]]:*:*:*|*f4[1347]:*:*:*)
- case $host_cpu in
- x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
- *) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
- esac ;;
- *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
- esac ;;
- *:68747541:*:*) # AMD
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[[67]]?:*:*:*) ax_gcc_arch=k6 ;;
- *5[[8d]]?:*:*:*) ax_gcc_arch="k6-2 k6" ;;
- *5[[9]]?:*:*:*) ax_gcc_arch="k6-3 k6" ;;
- *60?:*:*:*) ax_gcc_arch=k7 ;;
- *6[[12]]?:*:*:*) ax_gcc_arch="athlon k7" ;;
- *6[[34]]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;;
- *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;;
- *6[[68a]]?:*:*:*)
- AX_GCC_X86_CPUID(0x80000006) # L2 cache size
- case $ax_cv_gcc_x86_cpuid_0x80000006 in
- *:*:*[[1-9a-f]]??????:*) # (L2 = ecx >> 16) >= 256
- ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;
- *) ax_gcc_arch="athlon-4 athlon k7" ;;
- esac ;;
- *f[[4cef8b]]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
- *f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
- *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
- *f??:*:*:*) ax_gcc_arch="k8" ;;
- esac ;;
- *:746e6543:*:*) # IDT
- case $ax_cv_gcc_x86_cpuid_1 in
- *54?:*:*:*) ax_gcc_arch=winchip-c6 ;;
- *58?:*:*:*) ax_gcc_arch=winchip2 ;;
- *6[[78]]?:*:*:*) ax_gcc_arch=c3 ;;
- *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;;
- esac ;;
- esac
- if test x"$ax_gcc_arch" = x; then # fallback
- case $host_cpu in
- i586*) ax_gcc_arch=pentium ;;
- i686*) ax_gcc_arch=pentiumpro ;;
- esac
- fi
- ;;
-
- sparc*)
- AC_PATH_PROG([PRTDIAG], [prtdiag], [prtdiag], [$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/])
- cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
- cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters`
- case $cputype in
- *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;
- *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;
- *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;;
- *supersparc*|*tms390z5[[05]]*) ax_gcc_arch="supersparc v8" ;;
- *hypersparc*|*rt62[[056]]*) ax_gcc_arch="hypersparc v8" ;;
- *cypress*) ax_gcc_arch=cypress ;;
- esac ;;
-
- alphaev5) ax_gcc_arch=ev5 ;;
- alphaev56) ax_gcc_arch=ev56 ;;
- alphapca56) ax_gcc_arch="pca56 ev56" ;;
- alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;;
- alphaev6) ax_gcc_arch=ev6 ;;
- alphaev67) ax_gcc_arch=ev67 ;;
- alphaev68) ax_gcc_arch="ev68 ev67" ;;
- alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;;
- alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;;
- alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;;
-
- powerpc*)
- cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null`
- cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'`
- case $cputype in
- *750*) ax_gcc_arch="750 G3" ;;
- *740[[0-9]]*) ax_gcc_arch="$cputype 7400 G4" ;;
- *74[[4-5]][[0-9]]*) ax_gcc_arch="$cputype 7450 G4" ;;
- *74[[0-9]][[0-9]]*) ax_gcc_arch="$cputype G4" ;;
- *970*) ax_gcc_arch="970 G5 power4";;
- *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";;
- *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";;
- 603ev|8240) ax_gcc_arch="$cputype 603e 603";;
- *) ax_gcc_arch=$cputype ;;
- esac
- ax_gcc_arch="$ax_gcc_arch powerpc"
- ;;
-esac
-fi # not cross-compiling
-fi # guess arch
-
-if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then
-for arch in $ax_gcc_arch; do
- if test "x[]m4_default([$1],yes)" = xyes; then # if we require portable code
- flags="-mtune=$arch"
- # -mcpu=$arch and m$arch generate nonportable code on every arch except
- # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr.
- case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac
- else
- flags="-march=$arch -mcpu=$arch -m$arch"
- fi
- for flag in $flags; do
- AX_CHECK_COMPILER_FLAGS($flag, [ax_cv_gcc_archflag=$flag; break])
- done
- test "x$ax_cv_gcc_archflag" = xunknown || break
-done
-fi
-
-fi # $GCC=yes
-])
-AC_MSG_CHECKING([for gcc architecture flag])
-AC_MSG_RESULT($ax_cv_gcc_archflag)
-if test "x$ax_cv_gcc_archflag" = xunknown; then
- m4_default([$3],:)
-else
- m4_default([$2], [CFLAGS="$CFLAGS $ax_cv_gcc_archflag"])
-fi
+################################################################
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
+#
+# DESCRIPTION
+#
+# This macro checks if the compiler supports one of GCC's function
+# attributes; many other compilers also provide function attributes with
+# the same syntax. Compiler warnings are used to detect supported
+# attributes as unsupported ones are ignored by default so quieting
+# warnings when using this macro will yield false positives.
+#
+# The ATTRIBUTE parameter holds the name of the attribute to be checked.
+#
+# If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
+#
+# The macro caches its result in the ax_cv_have_func_attribute_<attribute>
+# variable.
+#
+# The macro currently supports the following function attributes:
+#
+# alias
+# aligned
+# alloc_size
+# always_inline
+# artificial
+# cold
+# const
+# constructor
+# constructor_priority for constructor attribute with priority
+# deprecated
+# destructor
+# dllexport
+# dllimport
+# error
+# externally_visible
+# flatten
+# format
+# format_arg
+# gnu_inline
+# hot
+# ifunc
+# leaf
+# malloc
+# noclone
+# noinline
+# nonnull
+# noreturn
+# nothrow
+# optimize
+# pure
+# unused
+# used
+# visibility
+# warning
+# warn_unused_result
+# weak
+# weakref
+#
+# Unsuppored function attributes will be tested with a prototype returning
+# an int and not accepting any arguments and the result of the check might
+# be wrong or meaningless so use with care.
+#
+# LICENSE
+#
+# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto at gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 3
+
+AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
+ AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
+
+ AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ m4_case([$1],
+ [alias], [
+ int foo( void ) { return 0; }
+ int bar( void ) __attribute__(($1("foo")));
+ ],
+ [aligned], [
+ int foo( void ) __attribute__(($1(32)));
+ ],
+ [alloc_size], [
+ void *foo(int a) __attribute__(($1(1)));
+ ],
+ [always_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [artificial], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [cold], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [const], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [constructor_priority], [
+ int foo( void ) __attribute__((__constructor__(65535/2)));
+ ],
+ [constructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [deprecated], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [destructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [dllexport], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [dllimport], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [error], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [externally_visible], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [flatten], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [format], [
+ int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
+ ],
+ [format_arg], [
+ char *foo(const char *p) __attribute__(($1(1)));
+ ],
+ [gnu_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [hot], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [ifunc], [
+ int my_foo( void ) { return 0; }
+ static int (*resolve_foo(void))(void) { return my_foo; }
+ int foo( void ) __attribute__(($1("resolve_foo")));
+ ],
+ [leaf], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [malloc], [
+ void *foo( void ) __attribute__(($1));
+ ],
+ [noclone], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [noinline], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [nonnull], [
+ int foo(char *p) __attribute__(($1(1)));
+ ],
+ [noreturn], [
+ void foo( void ) __attribute__(($1));
+ ],
+ [nothrow], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [optimize], [
+ __attribute__(($1(3))) int foo( void ) { return 0; }
+ ],
+ [pure], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [unused], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [used], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [visibility], [
+ int foo_def( void ) __attribute__(($1("default")));
+ int foo_hid( void ) __attribute__(($1("hidden")));
+ int foo_int( void ) __attribute__(($1("internal")));
+ int foo_pro( void ) __attribute__(($1("protected")));
+ ],
+ [warning], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [warn_unused_result], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weak], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weakref], [
+ static int foo( void ) { return 0; }
+ static int bar( void ) __attribute__(($1("foo")));
+ ],
+ [
+ m4_warn([syntax], [Unsupported attribute $1, the test may fail])
+ int foo( void ) __attribute__(($1));
+ ]
+ )], [])
+ ],
+ dnl GCC doesn't exit with an error if an unknown attribute is
+ dnl provided but only outputs a warning, so accept the attribute
+ dnl only if no warning were issued.
+ [AS_IF([test -s conftest.err],
+ [AS_VAR_SET([ac_var], [no])],
+ [AS_VAR_SET([ac_var], [yes])])],
+ [AS_VAR_SET([ac_var], [no])])
+ ])
+
+ AS_IF([test yes = AS_VAR_GET([ac_var])],
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FUNC_ATTRIBUTE_$1), 1,
+ [Define to 1 if the system has the `$1' function attribute])], [])
+
+ AS_VAR_POPDEF([ac_var])
])
#
-# AX_GCC_ARCHFLAG macro end.
+# AX_GCC_FUNC_ATTRIBUTE macro end
# ****************************************************************
# ****************************************************************
-#################################################################
-# Macro: AX_CC_MAXOPT
-# Usage: AX_CC_MAXOPT
-# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
-# Copyright (C) 2007 Matteo Frigo
-# Version: 2007-07-29
-# Source: http://autoconf-archive.cryp.to/ax_cc_maxopt.html
-#
-# Try to turn on "good" C optimization flags for various compilers and
-# architectures, for some definition of "good".
-#
-# The user can override the flags by setting the CFLAGS environment
-# variable. The user can also specify --enable-portable-binary in
-# order to disable any optimization flags that might result in a
-# binary that only runs on the host architecture.
-#
-# Note also that the flags assume that ANSI C aliasing rules are
-# followed by the code (e.g. for gcc's -fstrict-aliasing), and that
-# floating-point computations can be re-ordered as needed.
-#
-# SRE: I've made modifications as follows.
-# - HMMER relies on IEEE754-compliant math. Don't enable
-# any options that break compliance; for example, gcc -ffast-math
-# - similarly, for IBM xlc, add -qstrict.
-#
-AC_DEFUN([AX_CC_MAXOPT],
-[
-AC_REQUIRE([AC_PROG_CC])
-AC_REQUIRE([AX_COMPILER_VENDOR])
-AC_REQUIRE([AC_CANONICAL_HOST])
-
-AC_ARG_ENABLE(portable-binary, [AC_HELP_STRING([--enable-portable-binary], [disable compiler optimizations that would produce unportable binaries])],
- acx_maxopt_portable=$withval, acx_maxopt_portable=no)
-
-# Try to determine "good" native compiler flags if none specified via CFLAGS
-if test "$ac_test_CFLAGS" != "set"; then
- CFLAGS=""
- case $ax_cv_c_compiler_vendor in
- dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -tune host"
-# CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host"
- if test "x$acx_maxopt_portable" = xno; then
- CFLAGS="$CFLAGS -arch host"
- fi;;
-
- sun) CFLAGS="-native -xO5 -dalign"
-# CFLAGS="-native -fast -xO5 -dalign"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS -xarch=generic"
- fi;;
-
- hp) CFLAGS="+Oall +Optrs_ansi +DSnative"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS +DAportable"
- fi;;
-
- ibm) xlc_opt="-qtune=auto -qstrict"
- if test "x$acx_maxopt_portable" = xno; then
- if test "x$XLC_ARCH" = xno; then
- xlc_opt="-qarch=auto $xlc_opt"
- else
- xlc_opt="-qarch=$XLC_ARCH $xlc_opt"
- fi
- fi
- AX_CHECK_COMPILER_FLAGS($xlc_opt,
- CFLAGS="-O3 -qansialias -w $xlc_opt",
- [CFLAGS="-O3 -qansialias -w"
- echo "******************************************************"
- echo "* You seem to have the IBM C compiler. It is *"
- echo "* recommended for best performance that you use: *"
- echo "* *"
- echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *"
- echo "* ^^^ ^^^ *"
- echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *"
- echo "* CPU you have. (Set the CFLAGS environment var. *"
- echo "* and re-run configure.) For more info, man cc. *"
- echo "******************************************************"])
- ;;
-
- intel) CFLAGS="-O3 -ansi_alias"
- if test "x$acx_maxopt_portable" = xno; then
- icc_archflag=unknown
- icc_flags=""
- case $host_cpu in
- i686*|x86_64*)
- # icc accepts gcc assembly syntax, so these should work:
- AX_GCC_X86_CPUID(0)
- AX_GCC_X86_CPUID(1)
- case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *6a?:*[[234]]:*:*|*6[[789b]]?:*:*:*) icc_flags="-xK";;
- *f3[[347]]:*:*:*|*f4[1347]:*:*:*) icc_flags="-xP -xN -xW -xK";;
- *f??:*:*:*) icc_flags="-xN -xW -xK";;
- esac ;;
- esac ;;
- esac
- if test "x$icc_flags" != x; then
- for flag in $icc_flags; do
- AX_CHECK_COMPILER_FLAGS($flag, [icc_archflag=$flag; break])
- done
- fi
- AC_MSG_CHECKING([for icc architecture flag])
- AC_MSG_RESULT($icc_archflag)
- if test "x$icc_archflag" != xunknown; then
- CFLAGS="$CFLAGS $icc_archflag"
- fi
- fi
- ;;
-
- gnu)
- # default optimization flags for gcc on all systems
- CFLAGS="-O3 -fomit-frame-pointer"
-
- # -malign-double for x86 systems
- # SRE: no, that's a bad idea;
- # on 32bit Ubuntu Linux systems, for example, this
- # causes an odd and buggy interaction with _FILE_OFFSET_BITS (LFS)
- # and fstat().
- # AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double")
-
- # -fstrict-aliasing for gcc-2.95+
- AX_CHECK_COMPILER_FLAGS(-fstrict-aliasing,
- CFLAGS="$CFLAGS -fstrict-aliasing")
-
- # note that we enable "unsafe" fp optimization with other compilers, too
- # SRE: no, that's a bad idea, don't use this
-# AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math")
-
- AX_GCC_ARCHFLAG($acx_maxopt_portable)
- ;;
- esac
-
- if test -z "$CFLAGS"; then
- echo ""
- echo "********************************************************"
- echo "* WARNING: Don't know the best CFLAGS for this system *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
- echo "********************************************************"
- echo ""
- CFLAGS="-O3"
- fi
-
- AX_CHECK_COMPILER_FLAGS($CFLAGS, [], [
- echo ""
- echo "********************************************************"
- echo "* WARNING: The guessed CFLAGS don't seem to work with *"
- echo "* your compiler. *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "********************************************************"
- echo ""
- CFLAGS=""
- ])
-
-fi
-])
-#
-# AX_CC_MAXOPT macro end.
-# ****************************************************************
-# ****************************************************************
################################################################
@@ -980,3 +857,17 @@ AC_SUBST([PIC_FLAGS])
# ****************************************************************
# ****************************************************************
+
+
+#################################################################
+# Easel - a library of C functions for biological sequence analysis
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
+#
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
+#
+# SVN $Id$
+# SVN $URL$
+#################################################################
diff --git a/easel/config.guess b/easel/config.guess
old mode 100644
new mode 100755
diff --git a/easel/config.sub b/easel/config.sub
old mode 100644
new mode 100755
diff --git a/easel/configure b/easel/configure
index 920a485..a672ed9 100755
--- a/easel/configure
+++ b/easel/configure
@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for Easel i1.1.1.
+# Generated by GNU Autoconf 2.63 for Easel 0.43.
#
-# Report bugs to <eddys at janelia.hhmi.org>.
+# Report bugs to <sean at eddylab.org>.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -596,9 +596,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='Easel'
PACKAGE_TARNAME='easel'
-PACKAGE_VERSION='i1.1.1'
-PACKAGE_STRING='Easel i1.1.1'
-PACKAGE_BUGREPORT='eddys at janelia.hhmi.org'
+PACKAGE_VERSION='0.43'
+PACKAGE_STRING='Easel 0.43'
+PACKAGE_BUGREPORT='sean at eddylab.org'
# Factoring default headers for most tests.
ac_includes_default="\
@@ -644,7 +644,6 @@ SIMD_CFLAGS
EGREP
GREP
PIC_FLAGS
-PRTDIAG
EXEC_DEPENDENCY
AR
RANLIB
@@ -722,13 +721,12 @@ enable_modular
enable_debugging
enable_threads
enable_gcov
+enable_gprof
enable_sse
enable_vmx
with_gsl
enable_mpi
with_xlc_arch
-enable_portable_binary
-with_gcc_arch
enable_pic
enable_largefile
'
@@ -1295,7 +1293,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures Easel i1.1.1 to adapt to many kinds of systems.
+\`configure' configures Easel 0.43 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1360,7 +1358,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of Easel i1.1.1:";;
+ short | recursive ) echo "Configuration of Easel 0.43:";;
esac
cat <<\_ACEOF
@@ -1374,12 +1372,10 @@ Optional Features:
--enable-threads enable POSIX multithreading support (default is
check)
--enable-gcov compile for code coverage testing
+ --enable-gprof compile for gcc code profiling
--enable-sse enable SSE optimizations
--enable-vmx enable Altivec/VMX optimizations
--enable-mpi enable MPI parallelization
- --enable-portable-binary
- disable compiler optimizations that would produce
- unportable binaries
--disable-pic compile PIC objects [default=enabled for shared
builds on supported platforms]
--disable-largefile omit support for large files
@@ -1389,8 +1385,6 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-gsl use the GSL, GNU Scientific Library
--with-xlc-arch=<arch> specify architecture <arch> for xlc -qarch
- --with-gcc-arch=<arch> use architecture <arch> for gcc -march/-mtune,
- instead of guessing
Some influential environment variables:
CC C compiler command
@@ -1407,7 +1401,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to <eddys at janelia.hhmi.org>.
+Report bugs to <sean at eddylab.org>.
_ACEOF
ac_status=$?
fi
@@ -1470,7 +1464,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-Easel configure i1.1.1
+Easel configure 0.43
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1484,7 +1478,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by Easel $as_me i1.1.1, which was
+It was created by Easel $as_me 0.43, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -1858,15 +1852,42 @@ $as_echo "$as_me: Configuring the Easel library for your system." >&6;}
# remember if the user is overriding CFLAGS
if test x"$CFLAGS" = x; then
sre_cflags_env_set=no
+else
+ sre_cflags_env_set=yes
fi
################################################################
# 3. Info on the package
################################################################
+#
+# The four AC_INIT args above set the following output variables and preprocessor
+# symbols:
+# PACKAGE_NAME <package> e.g. "Easel"
+# PACKAGE_VERSION <version> e.g. "0.43"
+# PACKAGE_BUGREPORT <bug-report> e.g. "sean at eddylab.org"
+# PACKAGE_TARNAME <tarname> e.g. "easel"
+# From them, AC_INIT automatically derives one more:
+# PACKAGE_STRING <package> <version>, e.g. "Easel 0.43"
+# Then we define some of our own:
+# EASEL_DATE release date: e.g. "July 2016"
+# EASEL_COPYRIGHT one-line copyright string
+# EASEL_LICENSE one-line license string
+# EASEL_LICENSETAG which license to bundle from Licenses/ subdirectory.
+# EASEL_URL URL home for Easel.
+#
+# Because Easel is designed to be a library and must coexist with
+# packages that include it as a subdirectory (HMMER, Infernal...),
+# we don't want to use AC_INIT's PACKAGE_ variables as preprocessor
+# symbols to put version info into executables; we'll get name clashes,
+# plus we might want to have both Easel version info and main package
+# version info. So, we use the PACKAGE_ stuff to make a
+# new preprocessor symbol of our own:
+# EASEL_VERSION e.g. "1.9a"
+#
-EASEL_DATE="July 2014"
-EASEL_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute"
-EASEL_LICENSE="Freely distributed under the Janelia Farm Software License."
+EASEL_DATE="July 2016"
+EASEL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute"
+EASEL_LICENSE="Freely distributed under the BSD open source license."
EASEL_VERSION=$PACKAGE_VERSION
EASEL_URL="http://bioeasel.org/"
@@ -2023,8 +2044,7 @@ case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
################################################################
-# 3b. ./configure command line options, for optional config
-# of the package
+# 4. Process ./configure command line options
################################################################
# --enable-modular - configure for use of standalone modules
@@ -2103,10 +2123,10 @@ _ACEOF
fi
-# --enable-debugging - enable basic debugging code
+# --enable-debugging - enable basic debugging code (level 1)
# --enable-debugging=x - also set verbosity level to <x> (1-3)
#
-# At all levels, including 0, replaces CFLAGS w/ "-g -Wall" (so it assumes gcc).
+# At all levels, replaces CFLAGS w/ "-g -Wall" (so it assumes gcc).
# Sets the eslDEBUGLEVEL preprocessor symbol to <x>
#
# Check whether --enable-debugging was given.
@@ -2119,7 +2139,7 @@ fi
case $enable_debugging in
yes) cat >>confdefs.h <<\_ACEOF
-#define eslDEBUGLEVEL 0
+#define eslDEBUGLEVEL 1
_ACEOF
;;
1) cat >>confdefs.h <<\_ACEOF
@@ -3612,6 +3632,13 @@ else
enable_gcov=no
fi
+# Check whether --enable-gprof was given.
+if test "${enable_gprof+set}" = set; then
+ enableval=$enable_gprof; enable_gprof=$enableval
+else
+ enable_gprof=no
+fi
+
# Check whether --enable-sse was given.
if test "${enable_sse+set}" = set; then
enableval=$enable_sse; enable_sse=$enableval
@@ -3645,7 +3672,7 @@ fi
################################################################
-# 4. Checks for programs
+# 5. Checks for programs, including ${CC} and its ${CFLAGS}
################################################################
ac_ext=c
@@ -4424,7 +4451,9 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-# MPI : set @CC@ to mpicc, sets @MPILIBS@, defines HAVE_MPI.
+# MPI : set @CC@ to mpicc;
+# set @MPILIBS@ if needed (usually not; mpicc deals w/ it);
+# defines HAVE_MPI.
if test "$enable_mpi" = "yes"; then
@@ -5022,6 +5051,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# AC_PROG_CC_STDC wants to append -c99 to icc; icc doesn't like this.
+# To autodetect icc, we use the AX_COMPILER_VENDOR macro.
+
{ $as_echo "$as_me:$LINENO: checking for C compiler vendor" >&5
$as_echo_n "checking for C compiler vendor... " >&6; }
if test "${ax_cv_c_compiler_vendor+set}" = set; then
@@ -5083,7 +5115,6 @@ fi
{ $as_echo "$as_me:$LINENO: result: $ax_cv_c_compiler_vendor" >&5
$as_echo "$ax_cv_c_compiler_vendor" >&6; }
-# AC_PROG_CC_STDC wants to append -c99 to icc; icc doesn't like this.
if test "$ax_cv_c_compiler_vendor" != "intel"; then
case $ac_cv_prog_cc_stdc in
no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;;
@@ -5431,6 +5462,7 @@ esac
fi
+
if test -n "$ac_tool_prefix"; then
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
@@ -5566,6 +5598,9 @@ fi
+# CHECK_GNU_MAKE sets EXEC_DEPENDENCY for SYSV vs. GNU make,
+# to support Makefile lines of ${PROGS}: ${EXEC_DEPENDENCY}
+
{ $as_echo "$as_me:$LINENO: checking whether you have a GNU make" >&5
$as_echo_n "checking whether you have a GNU make... " >&6; }
foundGNUmake='nope, so we assume you will use a sysv-compatible make.' ;
@@ -5587,68 +5622,6 @@ $as_echo "$foundGNUmake" >&6; }
# The xlc compiler on AIX seems to need the -qarch flag to be set for a processor
# that is VMX enabled. Otherwise a warning is issued that states the -qenablevmx
# and -qaltivec flags are ignored.
-
-{ $as_echo "$as_me:$LINENO: checking for C compiler vendor" >&5
-$as_echo_n "checking for C compiler vendor... " >&6; }
-if test "${ax_cv_c_compiler_vendor+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- ax_cv_c_compiler_vendor=unknown
- # note: don't check for gcc first since some other compilers define __GNUC__
- for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
- vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
-#if !($vencpp)
- thisisanerror;
-#endif
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_compiler_vendor=`echo $ventest | cut -d: -f1`; break
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- done
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_c_compiler_vendor" >&5
-$as_echo "$ax_cv_c_compiler_vendor" >&6; }
-
if test "${ax_cv_c_compiler_vendor}" = "ibm"; then
# Check whether --with-xlc-arch was given.
@@ -5661,68 +5634,163 @@ fi
fi
# Select our default optimization flags in CFLAGS.
+# --enable-gcov, --enable-gprof, and --enable-debugging are mutually exclusive.
#
-if test "$sre_cflags_env_set" = "no"; then
if test "$enable_gcov" = "yes"; then
- # --enable-gcov overrides CC too.
- CC="gcc"
+ if test "$sre_cflags_env_set" = "yes"; then
+ { { $as_echo "$as_me:$LINENO: error: --enable-gcov overrides CFLAGS, so don't set CFLAGS" >&5
+$as_echo "$as_me: error: --enable-gcov overrides CFLAGS, so don't set CFLAGS" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
CFLAGS="-g -Wall -fprofile-arcs -ftest-coverage"
+elif test "$enable_gprof" = "yes"; then
+ if test "$sre_cflags_env_set" = "yes"; then
+ { { $as_echo "$as_me:$LINENO: error: --enable-gprof overrides CFLAGS, so don't set CFLAGS" >&5
+$as_echo "$as_me: error: --enable-gprof overrides CFLAGS, so don't set CFLAGS" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ CFLAGS="-O -g -pg"
elif test "$enable_debugging" != "no"; then
if test "$GCC" = "yes"; then
CFLAGS="-g -Wall"
fi
else
- sre_save_ac_test_cflags="$ac_test_CFLAGS"
- if test "$sre_cflags_env_set" = "no"; then
- ac_test_CFLAGS=""
- fi
-
-
+ CFLAGS="-O3"
+fi
+# Figure out how to generate PIC code for shared libraries
+# This sets @PIC_FLAGS@ output variable
-# Check whether --enable-portable-binary was given.
-if test "${enable_portable_binary+set}" = set; then
- enableval=$enable_portable_binary; acx_maxopt_portable=$withval
+# Check whether --enable-pic was given.
+if test "${enable_pic+set}" = set; then
+ enableval=$enable_pic; enable_pic="$enableval"
+ test "x$enable_pic" = x && enable_pic=auto
else
- acx_maxopt_portable=no
+ enable_pic=auto
+fi
+
+# disable PIC by default for static builds
+if test "$enable_pic" = auto && test "$enable_static" = yes; then
+ enable_pic=no
+fi
+# if PIC hasn't been explicitly disabled, try to figure out the flags
+if test "$enable_pic" != no; then
+ { $as_echo "$as_me:$LINENO: checking for $CC option to produce PIC" >&5
+$as_echo_n "checking for $CC option to produce PIC... " >&6; }
+ # allow the user's flags to override
+ if test "x$PIC_FLAGS" = x; then
+ # see if we're using GCC
+ if test "x$GCC" = xyes; then
+ case "$host_os" in
+ aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw*|os2*|pw32*)
+ # This hack is so that the source file can tell whether
+ # it is being built for inclusion in a dll (and should
+ # export symbols for example).
+ PIC_FLAGS="-DDLL_EXPORT"
+ ;;
+ darwin*|rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ PIC_FLAGS="-fno-common"
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ ;;
+ *)
+ # Everyone else on GCC uses -fPIC
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ else # !GCC
+ case "$host_os" in
+ hpux9*|hpux10*|hpux11*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ PIC_FLAGS="+Z"
+ ;;
+ esac
+ ;;
+ linux*|k*bsd*-gnu)
+ case `basename "$CC"` in
+ icc*|ecc*|ifort*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ pgcc*|pgf77*|pgf90*|pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc
+ # compiler, which looks to be a dead project)
+ PIC_FLAGS="-fpic"
+ ;;
+ ccc*)
+ # All Alpha code is PIC.
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ PIC_FLAGS="-qpic"
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*|*Sun\ F*)
+ # Sun C 5.9 or Sun Fortran
+ PIC_FLAGS="-KPIC"
+ ;;
+ esac
+ esac
+ ;;
+ solaris*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ sunos4*)
+ PIC_FLAGS="-PIC"
+ ;;
+ esac
+ fi # GCC
+ fi # PIC_FLAGS
+ { $as_echo "$as_me:$LINENO: result: $PIC_FLAGS" >&5
+$as_echo "$PIC_FLAGS" >&6; }
fi
-# Try to determine "good" native compiler flags if none specified via CFLAGS
-if test "$ac_test_CFLAGS" != "set"; then
- CFLAGS=""
- case $ax_cv_c_compiler_vendor in
- dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -tune host"
-# CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host"
- if test "x$acx_maxopt_portable" = xno; then
- CFLAGS="$CFLAGS -arch host"
- fi;;
- sun) CFLAGS="-native -xO5 -dalign"
-# CFLAGS="-native -fast -xO5 -dalign"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS -xarch=generic"
- fi;;
- hp) CFLAGS="+Oall +Optrs_ansi +DSnative"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS +DAportable"
- fi;;
+# SSE: figure out our @SIMD_CFLAGS@, define HAVE_SSE2
+# The AC_RUN_IFELSE() is there because it's possible to have
+# hardware that doesn't support SSE2 instructions, yet the
+# compiler can generate them: example AMD Athlons with gcc.
+# So we need to test that an SSE2 program actually runs without
+# generating an "illegal instruction" error. The program
+# here is sufficient [xref J3/127].
+# Note: some platforms (Ubuntu 32-bit for example) absolutely
+# must have the -msse2 cflag on in order to detect a working
+# emmintrin.h, so we set SIMD_CFLAGS before running the test.
+if test "$enable_sse" = "yes" || test "$enable_sse" = "check"; then
+ if test "x$SIMD_CFLAGS" = x; then
+ case $ax_cv_c_compiler_vendor in
+ gnu) { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -msse2" >&5
+$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
+if test "${ax_cv_c_flags__msse2+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
- ibm) xlc_opt="-qtune=auto -qstrict"
- if test "x$acx_maxopt_portable" = xno; then
- if test "x$XLC_ARCH" = xno; then
- xlc_opt="-qarch=auto $xlc_opt"
- else
- xlc_opt="-qarch=$XLC_ARCH $xlc_opt"
- fi
- fi
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $xlc_opt" >&5
-$as_echo_n "checking whether C compiler accepts $xlc_opt... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$xlc_opt"
- cat >conftest.$ac_ext <<_ACEOF
+ ax_save_FLAGS=$CFLAGS
+ CFLAGS="-msse2"
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5755,1175 +5823,40 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=yes
+ ax_cv_c_flags__msse2=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=no
+ ax_cv_c_flags__msse2=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`
+ CFLAGS=$ax_save_FLAGS
+fi
+
+eval ax_check_compiler_flags=$ax_cv_c_flags__msse2
{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
$as_echo "$ax_check_compiler_flags" >&6; }
if test "x$ax_check_compiler_flags" = xyes; then
- CFLAGS="-O3 -qansialias -w $xlc_opt"
-else
- CFLAGS="-O3 -qansialias -w"
- echo "******************************************************"
- echo "* You seem to have the IBM C compiler. It is *"
- echo "* recommended for best performance that you use: *"
- echo "* *"
- echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *"
- echo "* ^^^ ^^^ *"
- echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *"
- echo "* CPU you have. (Set the CFLAGS environment var. *"
- echo "* and re-run configure.) For more info, man cc. *"
- echo "******************************************************"
-fi
-
- ;;
-
- intel) CFLAGS="-O3 -ansi_alias"
- if test "x$acx_maxopt_portable" = xno; then
- icc_archflag=unknown
- icc_flags=""
- case $host_cpu in
- i686*|x86_64*)
- # icc accepts gcc assembly syntax, so these should work:
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ SIMD_CFLAGS="-msse2"
+else
+ :
+fi
+;;
+ *) ;;
+ esac
+ fi
+fi
+if test "$enable_sse" = "check" && test "$enable_vmx" != "yes"; then
+ sre_save_CFLAGS="$CFLAGS"
+ sre_save_CPPFLAGS="$CPPFLAGS"
+ CFLAGS="$CFLAGS $SIMD_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $SIMD_CFLAGS"
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0 output" >&5
-$as_echo_n "checking for x86 cpuid 0 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 1 output" >&5
-$as_echo_n "checking for x86 cpuid 1 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_1=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_1" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *6a?:*[234]:*:*|*6[789b]?:*:*:*) icc_flags="-xK";;
- *f3[347]:*:*:*|*f41347:*:*:*) icc_flags="-xP -xN -xW -xK";;
- *f??:*:*:*) icc_flags="-xN -xW -xK";;
- esac ;;
- esac ;;
- esac
- if test "x$icc_flags" != x; then
- for flag in $icc_flags; do
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $flag" >&5
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$flag"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- icc_archflag=$flag; break
-else
- :
-fi
-
- done
- fi
- { $as_echo "$as_me:$LINENO: checking for icc architecture flag" >&5
-$as_echo_n "checking for icc architecture flag... " >&6; }
- { $as_echo "$as_me:$LINENO: result: $icc_archflag" >&5
-$as_echo "$icc_archflag" >&6; }
- if test "x$icc_archflag" != xunknown; then
- CFLAGS="$CFLAGS $icc_archflag"
- fi
- fi
- ;;
-
- gnu)
- # default optimization flags for gcc on all systems
- CFLAGS="-O3 -fomit-frame-pointer"
-
- # -malign-double for x86 systems
- # SRE: no, that's a bad idea;
- # on 32bit Ubuntu Linux systems, for example, this
- # causes an odd and buggy interaction with _FILE_OFFSET_BITS (LFS)
- # and fstat().
- # AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double")
-
- # -fstrict-aliasing for gcc-2.95+
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -fstrict-aliasing" >&5
-$as_echo_n "checking whether C compiler accepts -fstrict-aliasing... " >&6; }
-if test "${ax_cv_c_flags__fstrict_aliasing+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-fstrict-aliasing"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_flags__fstrict_aliasing=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ax_cv_c_flags__fstrict_aliasing=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-fi
-
-eval ax_check_compiler_flags=$ax_cv_c_flags__fstrict_aliasing
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- CFLAGS="$CFLAGS -fstrict-aliasing"
-else
- :
-fi
-
-
- # note that we enable "unsafe" fp optimization with other compilers, too
- # SRE: no, that's a bad idea, don't use this
-# AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math")
-
-
-
-
-
-# Check whether --with-gcc-arch was given.
-if test "${with_gcc_arch+set}" = set; then
- withval=$with_gcc_arch; ax_gcc_arch=$withval
-else
- ax_gcc_arch=yes
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking for gcc architecture flag" >&5
-$as_echo_n "checking for gcc architecture flag... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-if test "${ax_cv_gcc_archflag+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
-ax_cv_gcc_archflag="unknown"
-
-if test "$GCC" = yes; then
-
-if test "x$ax_gcc_arch" = xyes; then
-ax_gcc_arch=""
-if test "$cross_compiling" = no; then
-case $host_cpu in
- i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0 output" >&5
-$as_echo_n "checking for x86 cpuid 0 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 1 output" >&5
-$as_echo_n "checking for x86 cpuid 1 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_1=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_1" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- case $ax_cv_gcc_x86_cpuid_0 in
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;
- *5??:*:*:*) ax_gcc_arch=pentium ;;
- *6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
- *6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6??:*:*:*) ax_gcc_arch=pentiumpro ;;
- *f3[347]:*:*:*|*f41347:*:*:*)
- case $host_cpu in
- x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
- *) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
- esac ;;
- *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
- esac ;;
- *:68747541:*:*) # AMD
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[67]?:*:*:*) ax_gcc_arch=k6 ;;
- *5[8d]?:*:*:*) ax_gcc_arch="k6-2 k6" ;;
- *5[9]?:*:*:*) ax_gcc_arch="k6-3 k6" ;;
- *60?:*:*:*) ax_gcc_arch=k7 ;;
- *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;;
- *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;;
- *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;;
- *6[68a]?:*:*:*)
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0x80000006 output" >&5
-$as_echo_n "checking for x86 cpuid 0x80000006 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0x80000006+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0x80000006=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x80000006, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0x80000006=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0x80000006=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0x80000006" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0x80000006" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- # L2 cache size
- case $ax_cv_gcc_x86_cpuid_0x80000006 in
- *:*:*[1-9a-f]??????:*) # (L2 = ecx >> 16) >= 256
- ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;
- *) ax_gcc_arch="athlon-4 athlon k7" ;;
- esac ;;
- *f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
- *f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
- *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
- *f??:*:*:*) ax_gcc_arch="k8" ;;
- esac ;;
- *:746e6543:*:*) # IDT
- case $ax_cv_gcc_x86_cpuid_1 in
- *54?:*:*:*) ax_gcc_arch=winchip-c6 ;;
- *58?:*:*:*) ax_gcc_arch=winchip2 ;;
- *6[78]?:*:*:*) ax_gcc_arch=c3 ;;
- *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;;
- esac ;;
- esac
- if test x"$ax_gcc_arch" = x; then # fallback
- case $host_cpu in
- i586*) ax_gcc_arch=pentium ;;
- i686*) ax_gcc_arch=pentiumpro ;;
- esac
- fi
- ;;
-
- sparc*)
- # Extract the first word of "prtdiag", so it can be a program name with args.
-set dummy prtdiag; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PRTDIAG+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- case $PRTDIAG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/"
-for as_dir in $as_dummy
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_PRTDIAG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag"
- ;;
-esac
-fi
-PRTDIAG=$ac_cv_path_PRTDIAG
-if test -n "$PRTDIAG"; then
- { $as_echo "$as_me:$LINENO: result: $PRTDIAG" >&5
-$as_echo "$PRTDIAG" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
- cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters`
- case $cputype in
- *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;
- *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;
- *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;;
- *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;;
- *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;;
- *cypress*) ax_gcc_arch=cypress ;;
- esac ;;
-
- alphaev5) ax_gcc_arch=ev5 ;;
- alphaev56) ax_gcc_arch=ev56 ;;
- alphapca56) ax_gcc_arch="pca56 ev56" ;;
- alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;;
- alphaev6) ax_gcc_arch=ev6 ;;
- alphaev67) ax_gcc_arch=ev67 ;;
- alphaev68) ax_gcc_arch="ev68 ev67" ;;
- alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;;
- alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;;
- alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;;
-
- powerpc*)
- cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null`
- cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'`
- case $cputype in
- *750*) ax_gcc_arch="750 G3" ;;
- *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;;
- *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;;
- *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;;
- *970*) ax_gcc_arch="970 G5 power4";;
- *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";;
- *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";;
- 603ev|8240) ax_gcc_arch="$cputype 603e 603";;
- *) ax_gcc_arch=$cputype ;;
- esac
- ax_gcc_arch="$ax_gcc_arch powerpc"
- ;;
-esac
-fi # not cross-compiling
-fi # guess arch
-
-if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then
-for arch in $ax_gcc_arch; do
- if test "x$acx_maxopt_portable" = xyes; then # if we require portable code
- flags="-mtune=$arch"
- # -mcpu=$arch and m$arch generate nonportable code on every arch except
- # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr.
- case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac
- else
- flags="-march=$arch -mcpu=$arch -m$arch"
- fi
- for flag in $flags; do
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $flag" >&5
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$flag"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- ax_cv_gcc_archflag=$flag; break
-else
- :
-fi
-
- done
- test "x$ax_cv_gcc_archflag" = xunknown || break
-done
-fi
-
-fi # $GCC=yes
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for gcc architecture flag" >&5
-$as_echo_n "checking for gcc architecture flag... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_archflag" >&5
-$as_echo "$ax_cv_gcc_archflag" >&6; }
-if test "x$ax_cv_gcc_archflag" = xunknown; then
- :
-else
- CFLAGS="$CFLAGS $ax_cv_gcc_archflag"
-fi
-
- ;;
- esac
-
- if test -z "$CFLAGS"; then
- echo ""
- echo "********************************************************"
- echo "* WARNING: Don't know the best CFLAGS for this system *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
- echo "********************************************************"
- echo ""
- CFLAGS="-O3"
- fi
-
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $CFLAGS" >&5
-$as_echo_n "checking whether C compiler accepts $CFLAGS... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$CFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- :
-else
-
- echo ""
- echo "********************************************************"
- echo "* WARNING: The guessed CFLAGS don't seem to work with *"
- echo "* your compiler. *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "********************************************************"
- echo ""
- CFLAGS=""
-
-fi
-
-
-fi
-
- ac_test_CFLAGS="$sre_save_ac_test_cflags"
- # That was a workaround. AX_CC_MAXOPT apparently thinks that
- # $ac_test_CFLAGS only gets set if ${CFLAGS} was set by the
- # user (in the environment), but that's not so; it gets set
- # by AC_PROG_CC. Instead of rewriting AX_CC_MAXOPT, we fool
- # it.
-fi
-fi
-
-# Figure out how to generate PIC code for shared libraries
-# This sets @PIC_FLAGS@ output variable
-
-# Check whether --enable-pic was given.
-if test "${enable_pic+set}" = set; then
- enableval=$enable_pic; enable_pic="$enableval"
- test "x$enable_pic" = x && enable_pic=auto
-else
- enable_pic=auto
-fi
-
-# disable PIC by default for static builds
-if test "$enable_pic" = auto && test "$enable_static" = yes; then
- enable_pic=no
-fi
-# if PIC hasn't been explicitly disabled, try to figure out the flags
-if test "$enable_pic" != no; then
- { $as_echo "$as_me:$LINENO: checking for $CC option to produce PIC" >&5
-$as_echo_n "checking for $CC option to produce PIC... " >&6; }
- # allow the user's flags to override
- if test "x$PIC_FLAGS" = x; then
- # see if we're using GCC
- if test "x$GCC" = xyes; then
- case "$host_os" in
- aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw*|os2*|pw32*)
- # This hack is so that the source file can tell whether
- # it is being built for inclusion in a dll (and should
- # export symbols for example).
- PIC_FLAGS="-DDLL_EXPORT"
- ;;
- darwin*|rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- PIC_FLAGS="-fno-common"
- ;;
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
- # but not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- PIC_FLAGS="-fPIC"
- ;;
- esac
- ;;
- *)
- # Everyone else on GCC uses -fPIC
- PIC_FLAGS="-fPIC"
- ;;
- esac
- else # !GCC
- case "$host_os" in
- hpux9*|hpux10*|hpux11*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
- # but not for PA HP-UX.
- case "$host_cpu" in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- PIC_FLAGS="+Z"
- ;;
- esac
- ;;
- linux*|k*bsd*-gnu)
- case `basename "$CC"` in
- icc*|ecc*|ifort*)
- PIC_FLAGS="-KPIC"
- ;;
- pgcc*|pgf77*|pgf90*|pgf95*)
- # Portland Group compilers (*not* the Pentium gcc
- # compiler, which looks to be a dead project)
- PIC_FLAGS="-fpic"
- ;;
- ccc*)
- # All Alpha code is PIC.
- ;;
- xl*)
- # IBM XL C 8.0/Fortran 10.1 on PPC
- PIC_FLAGS="-qpic"
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*|*Sun\ F*)
- # Sun C 5.9 or Sun Fortran
- PIC_FLAGS="-KPIC"
- ;;
- esac
- esac
- ;;
- solaris*)
- PIC_FLAGS="-KPIC"
- ;;
- sunos4*)
- PIC_FLAGS="-PIC"
- ;;
- esac
- fi # GCC
- fi # PIC_FLAGS
- { $as_echo "$as_me:$LINENO: result: $PIC_FLAGS" >&5
-$as_echo "$PIC_FLAGS" >&6; }
-fi
-
-
-
-
-# SSE: figure out our @SIMD_CFLAGS@, define HAVE_SSE2
-# The AC_RUN_IFELSE() is there because it's possible to have
-# hardware that doesn't support SSE2 instructions, yet the
-# compiler can generate them: example AMD Athlons with gcc.
-# So we need to test that an SSE2 program actually runs without
-# generating an "illegal instruction" error. The program
-# here is sufficient [xref J3/127].
-# Note: some platforms (Ubuntu 32-bit for example) absolutely
-# must have the -msse2 cflag on in order to detect a working
-# emmintrin.h, so we set SIMD_CFLAGS before running the test.
-if test "$enable_sse" = "yes" || test "$enable_sse" = "check"; then
- if test "x$SIMD_CFLAGS" = x; then
- case $ax_cv_c_compiler_vendor in
- gnu) { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -msse2" >&5
-$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
-if test "${ax_cv_c_flags__msse2+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-msse2"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_flags__msse2=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ax_cv_c_flags__msse2=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-fi
-
-eval ax_check_compiler_flags=$ax_cv_c_flags__msse2
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- SIMD_CFLAGS="-msse2"
-else
- :
-fi
-;;
- *) ;;
- esac
- fi
-fi
-if test "$enable_sse" = "check" && test "$enable_vmx" != "yes"; then
- sre_save_CFLAGS="$CFLAGS"
- sre_save_CPPFLAGS="$CPPFLAGS"
- CFLAGS="$CFLAGS $SIMD_CFLAGS"
- CPPFLAGS="$CPPFLAGS $SIMD_CFLAGS"
-
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
$as_echo_n "(cached) " >&6
else
if test -z "$GREP"; then
@@ -7420,9 +6353,9 @@ $as_echo "$as_me: WARNING: emmintrin.h: proceeding with the preprocessor's resul
{ $as_echo "$as_me:$LINENO: WARNING: emmintrin.h: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: emmintrin.h: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8056,7 +6989,10 @@ _ACEOF
fi
-# 5. Checks for libraries.
+
+################################################################
+# 6. Checks for libraries
+#################################################################
LIBGSL=
if test "x$with_gsl" != xno; then
{ $as_echo "$as_me:$LINENO: checking for gsl_expm1 in -lgsl" >&5
@@ -8150,7 +7086,101 @@ fi
fi
-# 6. Checks for header files.
+
+# Easel stopwatch high-res timer may try to use clock_gettime,
+# which may be in librt
+{ $as_echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if test "${ac_cv_search_clock_gettime+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_search_clock_gettime=$ac_res
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext
+ if test "${ac_cv_search_clock_gettime+set}" = set; then
+ break
+fi
+done
+if test "${ac_cv_search_clock_gettime+set}" = set; then
+ :
+else
+ ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
+ac_res=$ac_cv_search_clock_gettime
+if test "$ac_res" != no; then
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+
+################################################################
+# 7. Checks for headers
+################################################################
# Defines preprocessor symbols like HAVE_UNISTD_H
@@ -8284,9 +7314,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8439,9 +7469,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8536,21 +7566,180 @@ fi
done
-# 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
-
-
-
-for ac_header in \
- emmintrin.h\
- pmmintrin.h\
- xmmintrin.h
+# 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
+
+
+
+for ac_header in \
+ emmintrin.h\
+ pmmintrin.h\
+ xmmintrin.h
+
+do
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+ # Is the header compilable?
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+#include <$ac_header>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_header_compiler=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_compiler=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <$ac_header>
+_ACEOF
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } >/dev/null && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }; then
+ ac_header_preproc=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_header_preproc=no
+fi
+
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So? What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+ yes:no: )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+ ac_header_preproc=yes
+ ;;
+ no:yes:* )
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+ ( cat <<\_ASBOX
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
+_ASBOX
+ ) | sed "s/^/$as_me: WARNING: /" >&2
+ ;;
+esac
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+
+fi
+as_val=`eval 'as_val=${'$as_ac_Header'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+
+done
+
+
+# altivec.h requires the simd cflags
+# For reasons I don't understand, this needs to come after any other CHECK_HEADERS().
+if test "$enable_vmx" = "yes"; then
+ sre_save_CFLAGS="$CFLAGS"
+ sre_save_CPPFLAGS="$CPPFLAGS"
+ CFLAGS="$CFLAGS $SIMD_CFLAGS"
+ CPPFLAGS="$CPPFLAGS $SIMD_CFLAGS"
+for ac_header in altivec.h
do
as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
@@ -8669,9 +7858,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8700,40 +7889,230 @@ fi
done
+ CFLAGS="$sre_save_CFLAGS"
+ CPPFLAGS="$sre_save_CPPFLAGS"
+fi
-# altivec.h requires the simd cflags
-# For reasons I don't understand, this needs to come after any other CHECK_HEADERS().
-if test "$enable_vmx" = "yes"; then
- sre_save_CFLAGS="$CFLAGS"
- sre_save_CPPFLAGS="$CPPFLAGS"
- CFLAGS="$CFLAGS $SIMD_CFLAGS"
- CPPFLAGS="$CPPFLAGS $SIMD_CFLAGS"
-for ac_header in altivec.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+################################################################
+# 8. Checks for types
+################################################################
+# - Define WORDS_BIGENDIAN on bigendian platforms.
+# - Make sure we have C99 exact-size integer types;
+# ssi uses 16, 32, and 64-bit ints, and we
+# use 8-bit unsigned chars for digitized sequence.
+# - Make sure we have off_t.
+#
+
+ { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if test "${ac_cv_c_bigendian+set}" = set; then
$as_echo_n "(cached) " >&6
+else
+ ac_cv_c_bigendian=unknown
+ # See if we're dealing with a universal compiler.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#ifndef __APPLE_CC__
+ not a universal capable compiler
+ #endif
+ typedef int dummy;
+
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+
+ # Check for potential -arch flags. It is not universal unless
+ # there are some -arch flags. Note that *ppc* also matches
+ # ppc64. This check is also rather less than ideal.
+ case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #(
+ *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
+ esac
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if sys/param.h defines the BYTE_ORDER macro.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+ && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+ && LITTLE_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ # It does; now see whether it defined to BIG_ENDIAN or not.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <sys/types.h>
+ #include <sys/param.h>
+
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ac_cv_c_bigendian=yes
else
- # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_c_bigendian=no
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
+#include <limits.h>
+
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+ bogus endian macros
+ #endif
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ # It does; now see whether it defined to _BIG_ENDIAN or not.
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+#include <limits.h>
+
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+ not big endian
+ #endif
+
+ ;
+ return 0;
+}
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
@@ -8753,144 +8132,244 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
+ ac_cv_c_bigendian=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_header_compiler=no
+ ac_cv_c_bigendian=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ fi
+ if test $ac_cv_c_bigendian = unknown; then
+ # Compile a test program.
+ if test "$cross_compiling" = yes; then
+ # Try to guess by grepping values from an object file.
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <$ac_header>
+short int ascii_mm[] =
+ { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+ short int ascii_ii[] =
+ { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+ int use_ascii (int i) {
+ return ascii_mm[i] + ascii_ii[i];
+ }
+ short int ebcdic_ii[] =
+ { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+ short int ebcdic_mm[] =
+ { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+ int use_ebcdic (int i) {
+ return ebcdic_mm[i] + ebcdic_ii[i];
+ }
+ extern int foo;
+
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+ ;
+ return 0;
+}
_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
+ (eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- }; then
- ac_header_preproc=yes
+ } && test -s conftest.$ac_objext; then
+ if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+ ac_cv_c_bigendian=yes
+ fi
+ if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+ if test "$ac_cv_c_bigendian" = unknown; then
+ ac_cv_c_bigendian=no
+ else
+ # finding both strings is unlikely to happen, but who knows?
+ ac_cv_c_bigendian=unknown
+ fi
+ fi
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_header_preproc=no
+
fi
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- ( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
-_ASBOX
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
+ /* Are we little or big endian? From Harbison&Steele. */
+ union
+ {
+ long int l;
+ char c[sizeof (long int)];
+ } u;
+ u.l = 1;
+ return u.c[sizeof (long int) - 1] == 1;
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
+ { (case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_c_bigendian=no
else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
+ $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+( exit $ac_status )
+ac_cv_c_bigendian=yes
fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
fi
-done
- CFLAGS="$sre_save_CFLAGS"
- CPPFLAGS="$sre_save_CPPFLAGS"
+ fi
fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+ yes)
+ cat >>confdefs.h <<\_ACEOF
+#define WORDS_BIGENDIAN 1
+_ACEOF
+;; #(
+ no)
+ ;; #(
+ universal)
+cat >>confdefs.h <<\_ACEOF
+#define AC_APPLE_UNIVERSAL_BUILD 1
+_ACEOF
+ ;; #(
+ *)
+ { { $as_echo "$as_me:$LINENO: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&5
+$as_echo "$as_me: error: unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
-# 7. Checks for types.
-# - Define WORDS_BIGENDIAN on bigendian platforms.
-# - Make sure we have C99 exact-size integer types;
-# ssi uses 16, 32, and 64-bit ints, and we
-# use 8-bit unsigned chars for digitized sequence.
-# - Make sure we have off_t.
-#
- { $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if test "${ac_cv_c_bigendian+set}" = set; then
+ { $as_echo "$as_me:$LINENO: checking for int8_t" >&5
+$as_echo_n "checking for int8_t... " >&6; }
+if test "${ac_cv_c_int8_t+set}" = set; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_bigendian=unknown
- # See if we're dealing with a universal compiler.
- cat >conftest.$ac_ext <<_ACEOF
+ ac_cv_c_int8_t=no
+ for ac_type in 'int8_t' 'int' 'long int' \
+ 'long long int' 'short int' 'signed char'; do
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#ifndef __APPLE_CC__
- not a universal capable compiler
- #endif
- typedef int dummy;
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (8 - 2)) - 1) * 2 + 1))];
+test_array [0] = 0
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_compile") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+$ac_includes_default
+int
+main ()
+{
+static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (8 - 2)) - 1) * 2 + 1)
+ < ($ac_type) (((($ac_type) 1 << (8 - 2)) - 1) * 2 + 2))];
+test_array [0] = 0
+ ;
+ return 0;
+}
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
@@ -8910,13 +8389,19 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
+ :
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
- # Check for potential -arch flags. It is not universal unless
- # there are some -arch flags. Note that *ppc* also matches
- # ppc64. This check is also rather less than ideal.
- case "${CC} ${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" in #(
- *-arch*ppc*|*-arch*i386*|*-arch*x86_64*) ac_cv_c_bigendian=universal;;
- esac
+ case $ac_type in
+ int8_t) ac_cv_c_int8_t=yes ;;
+ *) ac_cv_c_int8_t=$ac_type ;;
+esac
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
@@ -8925,25 +8410,42 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- if test $ac_cv_c_bigendian = unknown; then
- # See if sys/param.h defines the BYTE_ORDER macro.
- cat >conftest.$ac_ext <<_ACEOF
+ test "$ac_cv_c_int8_t" != no && break
+ done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int8_t" >&5
+$as_echo "$ac_cv_c_int8_t" >&6; }
+ case $ac_cv_c_int8_t in #(
+ no|yes) ;; #(
+ *)
+
+cat >>confdefs.h <<_ACEOF
+#define int8_t $ac_cv_c_int8_t
+_ACEOF
+;;
+ esac
+
+
+ { $as_echo "$as_me:$LINENO: checking for int16_t" >&5
+$as_echo_n "checking for int16_t... " >&6; }
+if test "${ac_cv_c_int16_t+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_int16_t=no
+ for ac_type in 'int16_t' 'int' 'long int' \
+ 'long long int' 'short int' 'signed char'; do
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
+$ac_includes_default
int
main ()
{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
- && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
- && LITTLE_ENDIAN)
- bogus endian macros
- #endif
+static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (16 - 2)) - 1) * 2 + 1))];
+test_array [0] = 0
;
return 0;
@@ -8967,22 +8469,19 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- # It does; now see whether it defined to BIG_ENDIAN or not.
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <sys/types.h>
- #include <sys/param.h>
-
+$ac_includes_default
int
main ()
{
-#if BYTE_ORDER != BIG_ENDIAN
- not big endian
- #endif
+static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (16 - 2)) - 1) * 2 + 1)
+ < ($ac_type) (((($ac_type) 1 << (16 - 2)) - 1) * 2 + 2))];
+test_array [0] = 0
;
return 0;
@@ -9006,12 +8505,16 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- ac_cv_c_bigendian=yes
+ :
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_c_bigendian=no
+ case $ac_type in
+ int16_t) ac_cv_c_int16_t=yes ;;
+ *) ac_cv_c_int16_t=$ac_type ;;
+esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -9023,23 +8526,42 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
- cat >conftest.$ac_ext <<_ACEOF
+ test "$ac_cv_c_int16_t" != no && break
+ done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int16_t" >&5
+$as_echo "$ac_cv_c_int16_t" >&6; }
+ case $ac_cv_c_int16_t in #(
+ no|yes) ;; #(
+ *)
+
+cat >>confdefs.h <<_ACEOF
+#define int16_t $ac_cv_c_int16_t
+_ACEOF
+;;
+ esac
+
+
+ { $as_echo "$as_me:$LINENO: checking for int32_t" >&5
+$as_echo_n "checking for int32_t... " >&6; }
+if test "${ac_cv_c_int32_t+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_int32_t=no
+ for ac_type in 'int32_t' 'int' 'long int' \
+ 'long long int' 'short int' 'signed char'; do
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <limits.h>
-
+$ac_includes_default
int
main ()
{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
- bogus endian macros
- #endif
+static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 1))];
+test_array [0] = 0
;
return 0;
@@ -9063,21 +8585,19 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- # It does; now see whether it defined to _BIG_ENDIAN or not.
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <limits.h>
-
+$ac_includes_default
int
main ()
{
-#ifndef _BIG_ENDIAN
- not big endian
- #endif
+static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 1)
+ < ($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 2))];
+test_array [0] = 0
;
return 0;
@@ -9101,12 +8621,16 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- ac_cv_c_bigendian=yes
+ :
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- ac_cv_c_bigendian=no
+ case $ac_type in
+ int32_t) ac_cv_c_int32_t=yes ;;
+ *) ac_cv_c_int32_t=$ac_type ;;
+esac
+
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -9118,37 +8642,43 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
- if test $ac_cv_c_bigendian = unknown; then
- # Compile a test program.
- if test "$cross_compiling" = yes; then
- # Try to guess by grepping values from an object file.
- cat >conftest.$ac_ext <<_ACEOF
+ test "$ac_cv_c_int32_t" != no && break
+ done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int32_t" >&5
+$as_echo "$ac_cv_c_int32_t" >&6; }
+ case $ac_cv_c_int32_t in #(
+ no|yes) ;; #(
+ *)
+
+cat >>confdefs.h <<_ACEOF
+#define int32_t $ac_cv_c_int32_t
+_ACEOF
+;;
+ esac
+
+
+ { $as_echo "$as_me:$LINENO: checking for int64_t" >&5
+$as_echo_n "checking for int64_t... " >&6; }
+if test "${ac_cv_c_int64_t+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_int64_t=no
+ for ac_type in 'int64_t' 'int' 'long int' \
+ 'long long int' 'short int' 'signed char'; do
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-short int ascii_mm[] =
- { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
- short int ascii_ii[] =
- { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
- int use_ascii (int i) {
- return ascii_mm[i] + ascii_ii[i];
- }
- short int ebcdic_ii[] =
- { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
- short int ebcdic_mm[] =
- { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
- int use_ebcdic (int i) {
- return ebcdic_mm[i] + ebcdic_ii[i];
- }
- extern int foo;
-
+$ac_includes_default
int
main ()
{
-return use_ascii (foo) == use_ebcdic (foo);
+static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1))];
+test_array [0] = 0
+
;
return 0;
}
@@ -9171,26 +8701,6 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
- ac_cv_c_bigendian=yes
- fi
- if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
- if test "$ac_cv_c_bigendian" = unknown; then
- ac_cv_c_bigendian=no
- else
- # finding both strings is unlikely to happen, but who knows?
- ac_cv_c_bigendian=unknown
- fi
- fi
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -9201,92 +8711,77 @@ $ac_includes_default
int
main ()
{
-
- /* Are we little or big endian? From Harbison&Steele. */
- union
- {
- long int l;
- char c[sizeof (long int)];
- } u;
- u.l = 1;
- return u.c[sizeof (long int) - 1] == 1;
+static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1)
+ < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 2))];
+test_array [0] = 0
;
return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
+ (eval "$ac_compile") 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ac_cv_c_bigendian=no
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ :
else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
+ $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-( exit $ac_status )
-ac_cv_c_bigendian=yes
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ case $ac_type in
+ int64_t) ac_cv_c_int64_t=yes ;;
+ *) ac_cv_c_int64_t=$ac_type ;;
+esac
+
fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
- fi
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
- yes)
- cat >>confdefs.h <<\_ACEOF
-#define WORDS_BIGENDIAN 1
-_ACEOF
-;; #(
- no)
- ;; #(
- universal)
-cat >>confdefs.h <<\_ACEOF
-#define AC_APPLE_UNIVERSAL_BUILD 1
-_ACEOF
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_int64_t" != no && break
+ done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int64_t" >&5
+$as_echo "$ac_cv_c_int64_t" >&6; }
+ case $ac_cv_c_int64_t in #(
+ no|yes) ;; #(
+ *)
- ;; #(
- *)
- { { $as_echo "$as_me:$LINENO: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&5
-$as_echo "$as_me: error: unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" >&2;}
- { (exit 1); exit 1; }; } ;;
- esac
+cat >>confdefs.h <<_ACEOF
+#define int64_t $ac_cv_c_int64_t
+_ACEOF
+;;
+ esac
- { $as_echo "$as_me:$LINENO: checking for int8_t" >&5
-$as_echo_n "checking for int8_t... " >&6; }
-if test "${ac_cv_c_int8_t+set}" = set; then
+ { $as_echo "$as_me:$LINENO: checking for uint8_t" >&5
+$as_echo_n "checking for uint8_t... " >&6; }
+if test "${ac_cv_c_uint8_t+set}" = set; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_int8_t=no
- for ac_type in 'int8_t' 'int' 'long int' \
- 'long long int' 'short int' 'signed char'; do
+ ac_cv_c_uint8_t=no
+ for ac_type in 'uint8_t' 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -9297,7 +8792,7 @@ $ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (8 - 2)) - 1) * 2 + 1))];
+static int test_array [1 - 2 * !(($ac_type) -1 >> (8 - 1) == 1)];
test_array [0] = 0
;
@@ -9322,7 +8817,49 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- cat >conftest.$ac_ext <<_ACEOF
+ case $ac_type in
+ uint8_t) ac_cv_c_uint8_t=yes ;;
+ *) ac_cv_c_uint8_t=$ac_type ;;
+esac
+
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_uint8_t" != no && break
+ done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint8_t" >&5
+$as_echo "$ac_cv_c_uint8_t" >&6; }
+ case $ac_cv_c_uint8_t in #(
+ no|yes) ;; #(
+ *)
+
+cat >>confdefs.h <<\_ACEOF
+#define _UINT8_T 1
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define uint8_t $ac_cv_c_uint8_t
+_ACEOF
+;;
+ esac
+
+
+ { $as_echo "$as_me:$LINENO: checking for uint16_t" >&5
+$as_echo_n "checking for uint16_t... " >&6; }
+if test "${ac_cv_c_uint16_t+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_uint16_t=no
+ for ac_type in 'uint16_t' 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -9332,8 +8869,7 @@ $ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (8 - 2)) - 1) * 2 + 1)
- < ($ac_type) (((($ac_type) 1 << (8 - 2)) - 1) * 2 + 2))];
+static int test_array [1 - 2 * !(($ac_type) -1 >> (16 - 1) == 1)];
test_array [0] = 0
;
@@ -9358,19 +8894,11 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- case $ac_type in
- int8_t) ac_cv_c_int8_t=yes ;;
- *) ac_cv_c_int8_t=$ac_type ;;
+ case $ac_type in
+ uint16_t) ac_cv_c_uint16_t=yes ;;
+ *) ac_cv_c_uint16_t=$ac_type ;;
esac
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
@@ -9379,30 +8907,31 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_int8_t" != no && break
+ test "$ac_cv_c_uint16_t" != no && break
done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int8_t" >&5
-$as_echo "$ac_cv_c_int8_t" >&6; }
- case $ac_cv_c_int8_t in #(
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint16_t" >&5
+$as_echo "$ac_cv_c_uint16_t" >&6; }
+ case $ac_cv_c_uint16_t in #(
no|yes) ;; #(
*)
+
cat >>confdefs.h <<_ACEOF
-#define int8_t $ac_cv_c_int8_t
+#define uint16_t $ac_cv_c_uint16_t
_ACEOF
;;
esac
- { $as_echo "$as_me:$LINENO: checking for int16_t" >&5
-$as_echo_n "checking for int16_t... " >&6; }
-if test "${ac_cv_c_int16_t+set}" = set; then
+ { $as_echo "$as_me:$LINENO: checking for uint32_t" >&5
+$as_echo_n "checking for uint32_t... " >&6; }
+if test "${ac_cv_c_uint32_t+set}" = set; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_int16_t=no
- for ac_type in 'int16_t' 'int' 'long int' \
- 'long long int' 'short int' 'signed char'; do
+ ac_cv_c_uint32_t=no
+ for ac_type in 'uint32_t' 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
@@ -9413,7 +8942,7 @@ $ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (16 - 2)) - 1) * 2 + 1))];
+static int test_array [1 - 2 * !(($ac_type) -1 >> (32 - 1) == 1)];
test_array [0] = 0
;
@@ -9438,7 +8967,49 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- cat >conftest.$ac_ext <<_ACEOF
+ case $ac_type in
+ uint32_t) ac_cv_c_uint32_t=yes ;;
+ *) ac_cv_c_uint32_t=$ac_type ;;
+esac
+
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ test "$ac_cv_c_uint32_t" != no && break
+ done
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint32_t" >&5
+$as_echo "$ac_cv_c_uint32_t" >&6; }
+ case $ac_cv_c_uint32_t in #(
+ no|yes) ;; #(
+ *)
+
+cat >>confdefs.h <<\_ACEOF
+#define _UINT32_T 1
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define uint32_t $ac_cv_c_uint32_t
+_ACEOF
+;;
+ esac
+
+
+ { $as_echo "$as_me:$LINENO: checking for uint64_t" >&5
+$as_echo_n "checking for uint64_t... " >&6; }
+if test "${ac_cv_c_uint64_t+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_cv_c_uint64_t=no
+ for ac_type in 'uint64_t' 'unsigned int' 'unsigned long int' \
+ 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -9448,8 +9019,7 @@ $ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (16 - 2)) - 1) * 2 + 1)
- < ($ac_type) (((($ac_type) 1 << (16 - 2)) - 1) * 2 + 2))];
+static int test_array [1 - 2 * !(($ac_type) -1 >> (64 - 1) == 1)];
test_array [0] = 0
;
@@ -9474,19 +9044,11 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- case $ac_type in
- int16_t) ac_cv_c_int16_t=yes ;;
- *) ac_cv_c_int16_t=$ac_type ;;
+ case $ac_type in
+ uint64_t) ac_cv_c_uint64_t=yes ;;
+ *) ac_cv_c_uint64_t=$ac_type ;;
esac
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
@@ -9495,31 +9057,33 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_int16_t" != no && break
+ test "$ac_cv_c_uint64_t" != no && break
done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int16_t" >&5
-$as_echo "$ac_cv_c_int16_t" >&6; }
- case $ac_cv_c_int16_t in #(
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint64_t" >&5
+$as_echo "$ac_cv_c_uint64_t" >&6; }
+ case $ac_cv_c_uint64_t in #(
no|yes) ;; #(
*)
+cat >>confdefs.h <<\_ACEOF
+#define _UINT64_T 1
+_ACEOF
+
+
cat >>confdefs.h <<_ACEOF
-#define int16_t $ac_cv_c_int16_t
+#define uint64_t $ac_cv_c_uint64_t
_ACEOF
;;
esac
-
- { $as_echo "$as_me:$LINENO: checking for int32_t" >&5
-$as_echo_n "checking for int32_t... " >&6; }
-if test "${ac_cv_c_int32_t+set}" = set; then
+{ $as_echo "$as_me:$LINENO: checking for off_t" >&5
+$as_echo_n "checking for off_t... " >&6; }
+if test "${ac_cv_type_off_t+set}" = set; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_int32_t=no
- for ac_type in 'int32_t' 'int' 'long int' \
- 'long long int' 'short int' 'signed char'; do
- cat >conftest.$ac_ext <<_ACEOF
+ ac_cv_type_off_t=no
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -9529,9 +9093,8 @@ $ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 1))];
-test_array [0] = 0
-
+if (sizeof (off_t))
+ return 0;
;
return 0;
}
@@ -9564,10 +9127,8 @@ $ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 1)
- < ($ac_type) (((($ac_type) 1 << (32 - 2)) - 1) * 2 + 2))];
-test_array [0] = 0
-
+if (sizeof ((off_t)))
+ return 0;
;
return 0;
}
@@ -9595,11 +9156,7 @@ else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- case $ac_type in
- int32_t) ac_cv_c_int32_t=yes ;;
- *) ac_cv_c_int32_t=$ac_type ;;
-esac
-
+ ac_cv_type_off_t=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
@@ -9611,56 +9168,75 @@ sed 's/^/| /' conftest.$ac_ext >&5
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_int32_t" != no && break
- done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int32_t" >&5
-$as_echo "$ac_cv_c_int32_t" >&6; }
- case $ac_cv_c_int32_t in #(
- no|yes) ;; #(
- *)
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+$as_echo "$ac_cv_type_off_t" >&6; }
+if test "x$ac_cv_type_off_t" = x""yes; then
+ :
+else
cat >>confdefs.h <<_ACEOF
-#define int32_t $ac_cv_c_int32_t
+#define off_t long int
_ACEOF
-;;
- esac
+
+fi
- { $as_echo "$as_me:$LINENO: checking for int64_t" >&5
-$as_echo_n "checking for int64_t... " >&6; }
-if test "${ac_cv_c_int64_t+set}" = set; then
+################################################################
+# 9. Checks for structures - currently none
+#################################################################
+
+
+################################################################
+# 10. Checks for compiler characteristics
+#################################################################
+
+# __attribute__() tags on function declarations
+# HAVE_FUNC_ATTRIBUTE_NORETURN
+#
+# The clang static analyzer can't figure out that some of our
+# varargs-dependent fatal error handlers (esl_fatal(), for example)
+# cannot return. To tell it so, we take advantage of __attribute__
+# tags on function declarations, a non-ISO gcc extension, when
+# available. gcc, clang, and other gcc-like compilers support this.
+#
+
+
+
+ { $as_echo "$as_me:$LINENO: checking for __attribute__((noreturn))" >&5
+$as_echo_n "checking for __attribute__((noreturn))... " >&6; }
+if test "${ax_cv_have_func_attribute_noreturn+set}" = set; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_int64_t=no
- for ac_type in 'int64_t' 'int' 'long int' \
- 'long long int' 'short int' 'signed char'; do
- cat >conftest.$ac_ext <<_ACEOF
+
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+
+
+ void foo( void ) __attribute__((noreturn));
+
int
main ()
{
-static int test_array [1 - 2 * !(0 < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1))];
-test_array [0] = 0
;
return 0;
}
+
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -9669,34 +9245,112 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ if test -s conftest.err; then
+ ax_cv_have_func_attribute_noreturn=no
+else
+ ax_cv_have_func_attribute_noreturn=yes
+fi
+
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ax_cv_have_func_attribute_noreturn=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ax_cv_have_func_attribute_noreturn" >&5
+$as_echo "$ax_cv_have_func_attribute_noreturn" >&6; }
+
+ if test yes = $ax_cv_have_func_attribute_noreturn; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_FUNC_ATTRIBUTE_NORETURN 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+
+################################################################
+# 11. Checks for library functions: define HAVE_FOO
+################################################################
+
+
+for ac_func in mkstemp
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 1)
- < ($ac_type) (((($ac_type) 1 << (64 - 2)) - 1) * 2 + 2))];
-test_array [0] = 0
-
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -9705,78 +9359,99 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- case $ac_type in
- int64_t) ac_cv_c_int64_t=yes ;;
- *) ac_cv_c_int64_t=$ac_type ;;
-esac
-
+ eval "$as_ac_var=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_int64_t" != no && break
- done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_int64_t" >&5
-$as_echo "$ac_cv_c_int64_t" >&6; }
- case $ac_cv_c_int64_t in #(
- no|yes) ;; #(
- *)
-
-cat >>confdefs.h <<_ACEOF
-#define int64_t $ac_cv_c_int64_t
-_ACEOF
-;;
- esac
+done
- { $as_echo "$as_me:$LINENO: checking for uint8_t" >&5
-$as_echo_n "checking for uint8_t... " >&6; }
-if test "${ac_cv_c_uint8_t+set}" = set; then
+for ac_func in popen
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_uint8_t=no
- for ac_type in 'uint8_t' 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) -1 >> (8 - 1) == 1)];
-test_array [0] = 0
-
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -9785,75 +9460,99 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- case $ac_type in
- uint8_t) ac_cv_c_uint8_t=yes ;;
- *) ac_cv_c_uint8_t=$ac_type ;;
-esac
-
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-
+ eval "$as_ac_var=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_uint8_t" != no && break
- done
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint8_t" >&5
-$as_echo "$ac_cv_c_uint8_t" >&6; }
- case $ac_cv_c_uint8_t in #(
- no|yes) ;; #(
- *)
-
-cat >>confdefs.h <<\_ACEOF
-#define _UINT8_T 1
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define uint8_t $ac_cv_c_uint8_t
-_ACEOF
-;;
- esac
+fi
+done
- { $as_echo "$as_me:$LINENO: checking for uint16_t" >&5
-$as_echo_n "checking for uint16_t... " >&6; }
-if test "${ac_cv_c_uint16_t+set}" = set; then
+for ac_func in putenv
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_uint16_t=no
- for ac_type in 'uint16_t' 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) -1 >> (16 - 1) == 1)];
-test_array [0] = 0
-
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -9862,71 +9561,99 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- case $ac_type in
- uint16_t) ac_cv_c_uint16_t=yes ;;
- *) ac_cv_c_uint16_t=$ac_type ;;
-esac
-
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-
+ eval "$as_ac_var=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_uint16_t" != no && break
- done
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint16_t" >&5
-$as_echo "$ac_cv_c_uint16_t" >&6; }
- case $ac_cv_c_uint16_t in #(
- no|yes) ;; #(
- *)
-
-
-cat >>confdefs.h <<_ACEOF
-#define uint16_t $ac_cv_c_uint16_t
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-;;
- esac
+
+fi
+done
- { $as_echo "$as_me:$LINENO: checking for uint32_t" >&5
-$as_echo_n "checking for uint32_t... " >&6; }
-if test "${ac_cv_c_uint32_t+set}" = set; then
+for ac_func in strcasecmp
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
$as_echo_n "(cached) " >&6
else
- ac_cv_c_uint32_t=no
- for ac_type in 'uint32_t' 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) -1 >> (32 - 1) == 1)];
-test_array [0] = 0
-
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -9935,75 +9662,99 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- case $ac_type in
- uint32_t) ac_cv_c_uint32_t=yes ;;
- *) ac_cv_c_uint32_t=$ac_type ;;
-esac
-
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
+ eval "$as_ac_var=no"
+fi
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_uint32_t" != no && break
- done
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint32_t" >&5
-$as_echo "$ac_cv_c_uint32_t" >&6; }
- case $ac_cv_c_uint32_t in #(
- no|yes) ;; #(
- *)
+done
-cat >>confdefs.h <<\_ACEOF
-#define _UINT32_T 1
+
+for ac_func in times
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
-cat >>confdefs.h <<_ACEOF
-#define uint32_t $ac_cv_c_uint32_t
-_ACEOF
-;;
- esac
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
- { $as_echo "$as_me:$LINENO: checking for uint64_t" >&5
-$as_echo_n "checking for uint64_t... " >&6; }
-if test "${ac_cv_c_uint64_t+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- ac_cv_c_uint64_t=no
- for ac_type in 'uint64_t' 'unsigned int' 'unsigned long int' \
- 'unsigned long long int' 'unsigned short int' 'unsigned char'; do
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
int
main ()
{
-static int test_array [1 - 2 * !(($ac_type) -1 >> (64 - 1) == 1)];
-test_array [0] = 0
-
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -10012,71 +9763,99 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- case $ac_type in
- uint64_t) ac_cv_c_uint64_t=yes ;;
- *) ac_cv_c_uint64_t=$ac_type ;;
-esac
-
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-
+ eval "$as_ac_var=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- test "$ac_cv_c_uint64_t" != no && break
- done
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_uint64_t" >&5
-$as_echo "$ac_cv_c_uint64_t" >&6; }
- case $ac_cv_c_uint64_t in #(
- no|yes) ;; #(
- *)
-
-cat >>confdefs.h <<\_ACEOF
-#define _UINT64_T 1
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
+fi
+done
-cat >>confdefs.h <<_ACEOF
-#define uint64_t $ac_cv_c_uint64_t
-_ACEOF
-;;
- esac
-{ $as_echo "$as_me:$LINENO: checking for off_t" >&5
-$as_echo_n "checking for off_t... " >&6; }
-if test "${ac_cv_type_off_t+set}" = set; then
+for ac_func in getpid
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
$as_echo_n "(cached) " >&6
else
- ac_cv_type_off_t=no
-cat >conftest.$ac_ext <<_ACEOF
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
int
main ()
{
-if (sizeof (off_t))
- return 0;
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -10085,32 +9864,99 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ eval "$as_ac_var=no"
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+
+for ac_func in sysctl
+do
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+ $as_echo_n "(cached) " >&6
+else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-$ac_includes_default
+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $ac_func innocuous_$ac_func
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $ac_func (); below.
+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+ <limits.h> exists even on freestanding compilers. */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $ac_func
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $ac_func ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$ac_func || defined __stub___$ac_func
+choke me
+#endif
+
int
main ()
{
-if (sizeof ((off_t)))
- return 0;
+return $ac_func ();
;
return 0;
}
_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
+ (eval "$ac_link") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
@@ -10119,46 +9965,38 @@ $as_echo "$ac_try_echo") >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- :
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_cv_type_off_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ eval "$as_ac_var=yes"
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-
+ eval "$as_ac_var=no"
fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-$as_echo "$ac_cv_type_off_t" >&6; }
-if test "x$ac_cv_type_off_t" = x""yes; then
- :
-else
-
-cat >>confdefs.h <<_ACEOF
-#define off_t long int
+ac_res=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+ $as_echo "$as_val"'`
+ if test "x$as_val" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
fi
+done
-# 8. Checks for structures - none
-
-################################################################
-# 10. Checks for library functions: define HAVE_FOO
-################################################################
-
-
-for ac_func in mkstemp
+for ac_func in sysconf
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10259,7 +10097,7 @@ fi
done
-for ac_func in popen
+for ac_func in getcwd
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10360,7 +10198,7 @@ fi
done
-for ac_func in putenv
+for ac_func in chmod
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10461,7 +10299,7 @@ fi
done
-for ac_func in strcasecmp
+for ac_func in stat
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10562,7 +10400,7 @@ fi
done
-for ac_func in times
+for ac_func in fstat
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10663,7 +10501,7 @@ fi
done
-for ac_func in getpid
+for ac_func in erfc
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10764,7 +10602,8 @@ fi
done
-for ac_func in sysctl
+
+for ac_func in ntohs
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -10861,40 +10700,21 @@ as_val=`eval 'as_val=${'$as_ac_var'}
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-fi
-done
-
+else
-for ac_func in sysconf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+{ $as_echo "$as_me:$LINENO: checking for ntohs in -lsocket" >&5
+$as_echo_n "checking for ntohs in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_ntohs+set}" = set; then
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
@@ -10902,18 +10722,11 @@ cat >>conftest.$ac_ext <<_ACEOF
#ifdef __cplusplus
extern "C"
#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+char ntohs ();
int
main ()
{
-return $ac_func ();
+return ntohs ();
;
return 0;
}
@@ -10939,34 +10752,35 @@ $as_echo "$ac_try_echo") >&5
test "$cross_compiling" = yes ||
$as_test_x conftest$ac_exeext
}; then
- eval "$as_ac_var=yes"
+ ac_cv_lib_socket_ntohs=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- eval "$as_ac_var=no"
+ ac_cv_lib_socket_ntohs=no
fi
rm -rf conftest.dSYM
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_ntohs" >&5
+$as_echo "$ac_cv_lib_socket_ntohs" >&6; }
+if test "x$ac_cv_lib_socket_ntohs" = x""yes; then
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_LIBSOCKET 1
_ACEOF
+ LIBS="-lsocket $LIBS"
+
+fi
+
fi
done
-for ac_func in getcwd
+for ac_func in ntohl
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -11063,40 +10877,21 @@ as_val=`eval 'as_val=${'$as_ac_var'}
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
-fi
-done
-
+else
-for ac_func in chmod
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
+{ $as_echo "$as_me:$LINENO: checking for ntohl in -lsocket" >&5
+$as_echo_n "checking for ntohl in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_ntohl+set}" = set; then
$as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
- For example, HP-UX 11i <limits.h> declares gettimeofday. */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func (); below.
- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
- <limits.h> exists even on freestanding compilers. */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
/* Override any GCC internal prototype to avoid an error.
Use char because int might match the return type of a GCC
@@ -11104,18 +10899,11 @@ cat >>conftest.$ac_ext <<_ACEOF
#ifdef __cplusplus
extern "C"
#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+char ntohl ();
int
main ()
{
-return $ac_func ();
+return ntohl ();
;
return 0;
}
@@ -11141,34 +10929,35 @@ $as_echo "$ac_try_echo") >&5
test "$cross_compiling" = yes ||
$as_test_x conftest$ac_exeext
}; then
- eval "$as_ac_var=yes"
+ ac_cv_lib_socket_ntohl=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- eval "$as_ac_var=no"
+ ac_cv_lib_socket_ntohl=no
fi
rm -rf conftest.dSYM
rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_ntohl" >&5
+$as_echo "$ac_cv_lib_socket_ntohl" >&6; }
+if test "x$ac_cv_lib_socket_ntohl" = x""yes; then
cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_LIBSOCKET 1
_ACEOF
+ LIBS="-lsocket $LIBS"
+
+fi
+
fi
done
-for ac_func in stat
+for ac_func in htons
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -11265,11 +11054,87 @@ as_val=`eval 'as_val=${'$as_ac_var'}
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
+else
+
+{ $as_echo "$as_me:$LINENO: checking for htons in -lsocket" >&5
+$as_echo_n "checking for htons in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_htons+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char htons ();
+int
+main ()
+{
+return htons ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_socket_htons=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_socket_htons=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_htons" >&5
+$as_echo "$ac_cv_lib_socket_htons" >&6; }
+if test "x$ac_cv_lib_socket_htons" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+ LIBS="-lsocket $LIBS"
+
+fi
+
fi
done
-for ac_func in fstat
+for ac_func in htonl
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
@@ -11366,6 +11231,82 @@ as_val=`eval 'as_val=${'$as_ac_var'}
#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
_ACEOF
+else
+
+{ $as_echo "$as_me:$LINENO: checking for htonl in -lsocket" >&5
+$as_echo_n "checking for htonl in -lsocket... " >&6; }
+if test "${ac_cv_lib_socket_htonl+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $LIBS"
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char htonl ();
+int
+main ()
+{
+return htonl ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_lib_socket_htonl=yes
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_cv_lib_socket_htonl=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_htonl" >&5
+$as_echo "$ac_cv_lib_socket_htonl" >&6; }
+if test "x$ac_cv_lib_socket_htonl" = x""yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+ LIBS="-lsocket $LIBS"
+
+fi
+
fi
done
@@ -11502,7 +11443,9 @@ _ACEOF
fi
-# 11. Checks for system services
+#################################################################
+# 12. System services
+#################################################################
# Check whether --enable-largefile was given.
if test "${enable_largefile+set}" = set; then
enableval=$enable_largefile;
@@ -11860,8 +11803,9 @@ rm -rf conftest*
fi
-
-# 12. Write out esl_config.h header and the Makefiles
+#################################################################
+# 13. Write out esl_config.h header and the Makefiles
+#################################################################
ac_config_headers="$ac_config_headers esl_config.h"
ac_config_files="$ac_config_files miniapps/Makefile"
@@ -11878,7 +11822,9 @@ ac_config_files="$ac_config_files documentation/Makefile"
-# 13. voila!
+#################################################################
+# 14. et voila!
+#################################################################
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@@ -12299,7 +12245,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by Easel $as_me i1.1.1, which was
+This file was extended by Easel $as_me 0.43, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12358,7 +12304,7 @@ Report bugs to <bug-autoconf at gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-Easel config.status i1.1.1
+Easel config.status 0.43
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@@ -13138,3 +13084,17 @@ Easel configuration:
host: $host
libraries: ${LIBS} ${LIBGSL} ${PTHREAD_LIBS}
"
+
+
+#################################################################
+# Easel - a library of C functions for biological sequence analysis
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
+#
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
+#
+# SVN $Id$
+# SVN $URL$
+#################################################################
diff --git a/easel/configure.ac b/easel/configure.ac
index efb1ed3..289f7e8 100644
--- a/easel/configure.ac
+++ b/easel/configure.ac
@@ -1,52 +1,74 @@
# Process this file with autoconf to produce the Easel configuration script.
#
# reminders to save re-reading autoconf manual for the n'th time:
-# - output variables:
-# are defined here as normal shell variables, e.g. FOO="my string"
-# are made into output variables by calling AC_SUBST(FOO)
-# any occurrence of @FOO@ in an output file is then substituted
-# I think this only happens in files we assign w/ AC_CONFIG_FILES;
-# that's the Makefile.in's.
+# output variables:
+# - are defined here as normal shell variables, e.g. FOO="my string"
+# - are made into output variables by calling AC_SUBST(FOO)
+# - any occurrence of @FOO@ in an output file is then substituted
+# This only happens in files we assign w/ AC_CONFIG_FILES;
+# such as our Makefile.in's, for example.
#
-# - C preprocessor symbols:
-# are defined here by calling AC_DEFINE(FOO) or AC_DEFINE(FOO, [42])
-# then #undef FOO lines in easel.h.in become #define FOO or #define FOO 42
-# I think this only happens in header files that we assign
-# w/ AC_CONFIG_HEADERS -- which means, easel.h.in
+# C preprocessor symbols:
+# - are defined here by calling AC_DEFINE(FOO) or AC_DEFINE(FOO, [42])
+# - then #undef FOO lines in easel.h.in become #define FOO or #define FOO 42
+# This only happens in header files that we assign
+# w/ AC_CONFIG_HEADERS, such as easel.h.in
#
-# SRE, Mon Feb 14 10:51:07 2005
-# SVN $Id: configure.ac 917 2014-07-22 13:12:27Z nawrockie $
-#
-# xref autoconf macro archive at: http://www.gnu.org/software/ac-archive/
-#
-# GNU recommends the following order:
+# Contents:
# 1. autoconf requirements
# 2. AC_INIT
# 3. info on the package
-# 4. checks for programs
-# 5. checks for libraries
-# 6. checks for header files
-# 7. checks for types
-# 8. checks for structures
-# 9. checks for compiler characteristics
-# 10. checks for library functions
+# 4. process ./configure commandline options
+# 5. checks for programs, including ${CC}, ${CFLAGS}
+# 6. checks for libraries
+# 7. checks for header files
+# 8. checks for types
+# 9. checks for structures
+# 10. checks for compiler characteristics
+# 11. checks for library functions
# 11. checks for system services
# 12. AC_CONFIG_FILES
# 13. AC_OUTPUT
+#
+# Order obeys autoconf manual, "standard configure.ac layout".
+
+
+
+################################################################
+# 1. autoconf requirements
+################################################################
+# autoconf 2.61 has a bug in AC_FUNC_FSEEKO; make sure we don't use it.
+AC_PREREQ(2.63)
+
-# AC_INIT information
+################################################################
+# 2. AC_INIT
+################################################################
+AC_INIT(Easel, 0.43, sean at eddylab.org, easel)
+AC_MSG_NOTICE([Configuring the Easel library for your system.])
+
+# remember if the user is overriding CFLAGS
+if test x"$CFLAGS" = x; then
+ sre_cflags_env_set=no
+else
+ sre_cflags_env_set=yes
+fi
+
+################################################################
+# 3. Info on the package
+################################################################
#
-# The four AC_INIT args set the following output variables and preprocessor
+# The four AC_INIT args above set the following output variables and preprocessor
# symbols:
# PACKAGE_NAME <package> e.g. "Easel"
-# PACKAGE_VERSION <version> e.g. "0.1"
-# PACKAGE_BUGREPORT <bug-report> e.g. "eddys at janelia.hhmi.org"
+# PACKAGE_VERSION <version> e.g. "0.43"
+# PACKAGE_BUGREPORT <bug-report> e.g. "sean at eddylab.org"
# PACKAGE_TARNAME <tarname> e.g. "easel"
# From them, AC_INIT automatically derives one more:
-# PACKAGE_STRING <package> <version>, e.g. "Easel 0.1"
+# PACKAGE_STRING <package> <version>, e.g. "Easel 0.43"
# Then we define some of our own:
-# EASEL_DATE release date: e.g. "February 2005"
+# EASEL_DATE release date: e.g. "July 2016"
# EASEL_COPYRIGHT one-line copyright string
# EASEL_LICENSE one-line license string
# EASEL_LICENSETAG which license to bundle from Licenses/ subdirectory.
@@ -61,22 +83,10 @@
# new preprocessor symbol of our own:
# EASEL_VERSION e.g. "1.9a"
#
-AC_PREREQ(2.60)
-AC_INIT(Easel, i1.1.1, eddys at janelia.hhmi.org, easel)
-AC_MSG_NOTICE([Configuring the Easel library for your system.])
-# remember if the user is overriding CFLAGS
-if test x"$CFLAGS" = x; then
- sre_cflags_env_set=no
-fi
-
-################################################################
-# 3. Info on the package
-################################################################
-
-EASEL_DATE="July 2014"
-EASEL_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute"
-EASEL_LICENSE="Freely distributed under the Janelia Farm Software License."
+EASEL_DATE="July 2016"
+EASEL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute"
+EASEL_LICENSE="Freely distributed under the BSD open source license."
EASEL_VERSION=$PACKAGE_VERSION
EASEL_URL="http://bioeasel.org/"
@@ -108,8 +118,7 @@ AC_CANONICAL_HOST
################################################################
-# 3b. ./configure command line options, for optional config
-# of the package
+# 4. Process ./configure command line options
################################################################
# --enable-modular - configure for use of standalone modules
@@ -140,10 +149,10 @@ AC_ARG_ENABLE(modular,[AS_HELP_STRING([--enable-modular],[compile and prepare mo
AC_DEFINE(eslLIBRARY)
])
-# --enable-debugging - enable basic debugging code
+# --enable-debugging - enable basic debugging code (level 1)
# --enable-debugging=x - also set verbosity level to <x> (1-3)
#
-# At all levels, including 0, replaces CFLAGS w/ "-g -Wall" (so it assumes gcc).
+# At all levels, replaces CFLAGS w/ "-g -Wall" (so it assumes gcc).
# Sets the eslDEBUGLEVEL preprocessor symbol to <x>
#
AC_ARG_ENABLE(debugging,
@@ -152,7 +161,7 @@ AS_HELP_STRING([--enable-debugging=x],[also set diagnostics verbosity level to <
enable_debugging=$enableval, enable_debugging=no)
case $enable_debugging in
- yes) AC_DEFINE(eslDEBUGLEVEL, 0);;
+ yes) AC_DEFINE(eslDEBUGLEVEL, 1);;
1) AC_DEFINE(eslDEBUGLEVEL, 1);;
2) AC_DEFINE(eslDEBUGLEVEL, 2);;
3) AC_DEFINE(eslDEBUGLEVEL, 3);;
@@ -196,6 +205,7 @@ AS_IF([test "x$check_threads" != xno],
fi])])
AC_ARG_ENABLE(gcov,[AS_HELP_STRING([--enable-gcov],[compile for code coverage testing])], enable_gcov=$enableval, enable_gcov=no)
+AC_ARG_ENABLE(gprof,[AS_HELP_STRING([--enable-gprof],[compile for gcc code profiling])], enable_gprof=$enableval, enable_gprof=no)
AC_ARG_ENABLE(sse,[AS_HELP_STRING([--enable-sse],[enable SSE optimizations])] , enable_sse=$enableval, enable_sse=check)
AC_ARG_ENABLE(vmx,[AS_HELP_STRING([--enable-vmx],[enable Altivec/VMX optimizations])], enable_vmx=$enableval, enable_vmx=check)
AC_ARG_WITH(gsl,[AS_HELP_STRING([--with-gsl],[use the GSL, GNU Scientific Library])], with_gsl=$withval, with_gsl=no)
@@ -204,24 +214,32 @@ AC_ARG_ENABLE(mpi,[AS_HELP_STRING([--enable-mpi],[enable MPI parallelization])],
################################################################
-# 4. Checks for programs
+# 5. Checks for programs, including ${CC} and its ${CFLAGS}
################################################################
AC_PROG_CC
AC_PROG_INSTALL
-# MPI : set @CC@ to mpicc, sets @MPILIBS@, defines HAVE_MPI.
+# MPI : set @CC@ to mpicc;
+# set @MPILIBS@ if needed (usually not; mpicc deals w/ it);
+# defines HAVE_MPI.
if test "$enable_mpi" = "yes"; then
ACX_MPI(,AC_MSG_ERROR([MPI library not found for --enable-mpi]))
CC=$MPICC
fi
AC_PROG_CPP
-AX_COMPILER_VENDOR
+
# AC_PROG_CC_STDC wants to append -c99 to icc; icc doesn't like this.
+# To autodetect icc, we use the AX_COMPILER_VENDOR macro.
+AX_COMPILER_VENDOR
if test "$ax_cv_c_compiler_vendor" != "intel"; then
AC_PROG_CC_STDC
fi
+
AC_PROG_RANLIB
AC_PATH_PROG([AR], [ar], [:], [$PATH:/usr/ccs/bin:/usr/xpg4/bin])
+
+# CHECK_GNU_MAKE sets EXEC_DEPENDENCY for SYSV vs. GNU make,
+# to support Makefile lines of ${PROGS}: ${EXEC_DEPENDENCY}
CHECK_GNU_MAKE
# --enable-xlc-arch Set the code generation for a particular architecture
@@ -229,7 +247,6 @@ CHECK_GNU_MAKE
# The xlc compiler on AIX seems to need the -qarch flag to be set for a processor
# that is VMX enabled. Otherwise a warning is issued that states the -qenablevmx
# and -qaltivec flags are ignored.
-AX_COMPILER_VENDOR
if test "${ax_cv_c_compiler_vendor}" = "ibm"; then
AC_ARG_WITH(xlc-arch,
[AC_HELP_STRING([--with-xlc-arch=<arch>], [specify architecture <arch> for xlc -qarch])],
@@ -238,31 +255,27 @@ if test "${ax_cv_c_compiler_vendor}" = "ibm"; then
fi
# Select our default optimization flags in CFLAGS.
+# --enable-gcov, --enable-gprof, and --enable-debugging are mutually exclusive.
#
-if test "$sre_cflags_env_set" = "no"; then
if test "$enable_gcov" = "yes"; then
- # --enable-gcov overrides CC too.
- CC="gcc"
+ if test "$sre_cflags_env_set" = "yes"; then
+ AC_MSG_ERROR([--enable-gcov overrides CFLAGS, so don't set CFLAGS])
+ fi
CFLAGS="-g -Wall -fprofile-arcs -ftest-coverage"
+elif test "$enable_gprof" = "yes"; then
+ if test "$sre_cflags_env_set" = "yes"; then
+ AC_MSG_ERROR([--enable-gprof overrides CFLAGS, so don't set CFLAGS])
+ fi
+ CFLAGS="-O -g -pg"
elif test "$enable_debugging" != "no"; then
if test "$GCC" = "yes"; then
CFLAGS="-g -Wall"
fi
else
- sre_save_ac_test_cflags="$ac_test_CFLAGS"
- if test "$sre_cflags_env_set" = "no"; then
- ac_test_CFLAGS=""
- fi
- AX_CC_MAXOPT
- ac_test_CFLAGS="$sre_save_ac_test_cflags"
- # That was a workaround. AX_CC_MAXOPT apparently thinks that
- # $ac_test_CFLAGS only gets set if ${CFLAGS} was set by the
- # user (in the environment), but that's not so; it gets set
- # by AC_PROG_CC. Instead of rewriting AX_CC_MAXOPT, we fool
- # it.
-fi
+ CFLAGS="-O3"
fi
+
# Figure out how to generate PIC code for shared libraries
# This sets @PIC_FLAGS@ output variable
ESL_PIC_FLAGS
@@ -371,7 +384,10 @@ else
AC_DEFINE(HAVE_GZIP)
fi
-# 5. Checks for libraries.
+
+################################################################
+# 6. Checks for libraries
+#################################################################
LIBGSL=
AS_IF([test "x$with_gsl" != xno],
[AC_CHECK_LIB([gsl], [gsl_expm1],
@@ -386,7 +402,15 @@ AS_IF([test "x$with_gsl" != xno],
[-lgslcblas]
)])
-# 6. Checks for header files.
+
+# Easel stopwatch high-res timer may try to use clock_gettime,
+# which may be in librt
+AC_SEARCH_LIBS(clock_gettime, [rt posix4])
+
+
+################################################################
+# 7. Checks for headers
+################################################################
# Defines preprocessor symbols like HAVE_UNISTD_H
AC_CHECK_HEADERS([\
endian.h \
@@ -433,8 +457,9 @@ if test "$enable_vmx" = "yes"; then
fi
-
-# 7. Checks for types.
+################################################################
+# 8. Checks for types
+################################################################
# - Define WORDS_BIGENDIAN on bigendian platforms.
# - Make sure we have C99 exact-size integer types;
# ssi uses 16, 32, and 64-bit ints, and we
@@ -452,10 +477,30 @@ AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_OFF_T
-# 8. Checks for structures - none
+################################################################
+# 9. Checks for structures - currently none
+#################################################################
+
################################################################
-# 10. Checks for library functions: define HAVE_FOO
+# 10. Checks for compiler characteristics
+#################################################################
+
+# __attribute__() tags on function declarations
+# HAVE_FUNC_ATTRIBUTE_NORETURN
+#
+# The clang static analyzer can't figure out that some of our
+# varargs-dependent fatal error handlers (esl_fatal(), for example)
+# cannot return. To tell it so, we take advantage of __attribute__
+# tags on function declarations, a non-ISO gcc extension, when
+# available. gcc, clang, and other gcc-like compilers support this.
+#
+AX_GCC_FUNC_ATTRIBUTE(noreturn)
+
+
+
+################################################################
+# 11. Checks for library functions: define HAVE_FOO
################################################################
AC_CHECK_FUNCS(mkstemp)
@@ -470,13 +515,22 @@ AC_CHECK_FUNCS(getcwd)
AC_CHECK_FUNCS(chmod)
AC_CHECK_FUNCS(stat)
AC_CHECK_FUNCS(fstat)
+AC_CHECK_FUNCS(erfc)
+
+AC_CHECK_FUNCS(ntohs, , AC_CHECK_LIB(socket, ntohs))
+AC_CHECK_FUNCS(ntohl, , AC_CHECK_LIB(socket, ntohl))
+AC_CHECK_FUNCS(htons, , AC_CHECK_LIB(socket, htons))
+AC_CHECK_FUNCS(htonl, , AC_CHECK_LIB(socket, htonl))
AC_FUNC_FSEEKO
-# 11. Checks for system services
+#################################################################
+# 12. System services
+#################################################################
AC_SYS_LARGEFILE
-
-# 12. Write out esl_config.h header and the Makefiles
+#################################################################
+# 13. Write out esl_config.h header and the Makefiles
+#################################################################
AC_CONFIG_HEADERS([esl_config.h])
AC_CONFIG_FILES([miniapps/Makefile])
AC_CONFIG_FILES([testsuite/Makefile])
@@ -487,7 +541,9 @@ fi
AC_CONFIG_FILES([documentation/Makefile])
-# 13. voila!
+#################################################################
+# 14. et voila!
+#################################################################
AC_OUTPUT
@@ -499,3 +555,17 @@ Easel configuration:
host: $host
libraries: ${LIBS} ${LIBGSL} ${PTHREAD_LIBS}
"
+
+
+#################################################################
+# Easel - a library of C functions for biological sequence analysis
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
+#
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
+#
+# SVN $Id$
+# SVN $URL$
+#################################################################
diff --git a/easel/demotic/demotic_blast.pm b/easel/demotic/demotic_blast.pm
index 019d160..b4a0a5c 100644
--- a/easel/demotic/demotic_blast.pm
+++ b/easel/demotic/demotic_blast.pm
@@ -64,6 +64,8 @@ sub parse (*) {
@ali_tend = (); # End position on target
@ali_qali = (); # Aligned string from query
@ali_tali = (); # Aligned string from target (subject)
+ @ali_hitidx = (); # index of hit
+ $hitidx = -1;
# Now, loop over the lines of our input, and parse 'em.
#
@@ -134,6 +136,7 @@ sub parse (*) {
elsif ($parsing_alilist) {
if (/^>\s*(\S+)\s*(.*)$/) {
$target = $1;
+ $hitidx ++;
$target_desc{$target} = $2;
$_ = <$fh>;
@@ -141,19 +144,21 @@ sub parse (*) {
$target_len{$target} = $1;
}
}
- elsif (/^ Score =\s+(\d+) \((\S+) bits\), Expect = (\S+),?/) { # WU
+ elsif (/^ Score =\s+(\d+) \((\S+) bits\), Expect\s+=\s+(\S+), /) { # WU
$nali++;
$ali_target[$nali-1] = $target;
$ali_score[$nali-1] = $1;
$ali_bitscore[$nali-1] = $2;
$ali_evalue[$nali-1] = $3;
+ $ali_hitidx[$nali-1] = $hitidx;
}
- elsif (/^ Score =\s+(\S+) bits \((\S+)\),\s*Expect = (\S+),?/) { # NCBI
+ elsif (/^ Score =\s+(\S+) bits \((\S+)\),\s*Expect\s+=\s+(\S+), /) { # NCBI
$nali++;
$ali_target[$nali-1] = $target;
$ali_bitscore[$nali-1] = $1;
$ali_score[$nali-1] = $2;
$ali_evalue[$nali-1] = &repair_evalue($3);
+ $ali_hitidx[$nali-1] = $hitidx;
}
elsif (/^ Identities = (\d+)\/(\d+) \((\d+)%\).+Positives = (\d+).+\((\d+)%/) { # NCBI or WU
$ali_nident[$nali-1] = $1;
@@ -161,6 +166,7 @@ sub parse (*) {
$ali_identity[$nali-1] = $3;
$ali_npos[$nali-1] = $4;
$ali_positive[$nali-1] = $5;
+ $ali_hitidx[$nali-1] = $hitidx;
$firstchunk = 1;
}
elsif (/^ Identities = (\d+)\/(\d+) \((\d+)%\).+/) { # NCBI megablast : no Positives
@@ -169,6 +175,7 @@ sub parse (*) {
$ali_identity[$nali-1] = $3;
$ali_npos[$nali-1] = $1;
$ali_positive[$nali-1] = $3;
+ $ali_hitidx[$nali-1] = $hitidx;
$firstchunk = 1;
}
elsif (/^Query:?\s+(\d+)\s+(\S+)\s+(\d+)\s*$/) {
diff --git a/easel/demotic/demotic_fasta.pm b/easel/demotic/demotic_fasta.pm
index d88eb4e..f3f5b3d 100644
--- a/easel/demotic/demotic_fasta.pm
+++ b/easel/demotic/demotic_fasta.pm
@@ -18,6 +18,12 @@ sub parse (*) {
my $parsing_alilist = 0;
my $target;
my $alilinecount = 0;
+ my $prvaliline_isquery = 0;
+ my $ali_qline;
+ my $ali_tline;
+ my $ali_qasq;
+ my $ali_tasq;
+ my $margin;
# Initialize everything... so we can call the parser
# repeatedly, one call per ssearch output.
@@ -62,7 +68,11 @@ sub parse (*) {
@ali_tend = (); # End position on target
@ali_qali = (); # Aligned string from query
@ali_tali = (); # Aligned string from target (subject)
-
+ @ali_qmask = (); # line in between the two aligned strings
+ @ali_tmask = (); # line in between the two aligned strings
+ @ali_hitidx = (); # index of hit
+ $hitidx = -1;
+
if (defined($save_querycount) && $save_querycount > 1) { # on subsequent queries, we had to use the >>> start line to detect
# the end of the prev query; we socked the necessary info away in tmp vars.
$querycount = $save_querycount;
@@ -73,7 +83,10 @@ sub parse (*) {
# Now, loop over the lines of our input, and parse 'em.
#
+ my $line;
+ my $prvline;
while (<$fh>) {
+ $line = $_;
if ($parsing_header) {
if (/^The best scores are:/) { # start of hit list
$parsing_header = 0;
@@ -112,6 +125,7 @@ sub parse (*) {
elsif ($parsing_alilist) {
if (/^>>(\S+)\s*(.*)\s+\((\d+) \S\S\)\s*$/) { # the \S\S is either nt or aa
$target = $1;
+ $hitidx ++;
$target_desc{$target} = $2;
if ($3 != $target_len{$target}) { die "can't happen.", "1)", $3, "2)", $target_len{$target}; }
}
@@ -121,6 +135,7 @@ sub parse (*) {
$ali_score[$nali-1] = $1;
$ali_bitscore[$nali-1] = $3;
$ali_evalue[$nali-1] = $4;
+ $ali_hitidx[$nali-1] = $hitidx;
}
elsif (/^ initn:\s*\d+\s*init1:\s*\d+\s*opt:\s*(\d+)\s*Z-score:\s*(\S+)\s*bits:\s*(\S+)\s*E\(\d*\):\s*(\S+)\s*$/) { # FASTA
$nali++;
@@ -128,6 +143,7 @@ sub parse (*) {
$ali_score[$nali-1] = $1;
$ali_bitscore[$nali-1] = $3;
$ali_evalue[$nali-1] = $4;
+ $ali_hitidx[$nali-1] = $hitidx;
}
elsif (/^Smith-Waterman score:\s+(\d+);\s+(\S+)% identity .* in (\d+) \S\S overlap \((\d+)-(\d+):(\d+)-(\d+)\)\s*/) {
$ali_identity[$nali-1] = $2;
@@ -140,15 +156,72 @@ sub parse (*) {
# $ali_npos[$nali-1] = $4;
# $ali_positive[$nali-1] = $5;
$alilinecount = 0;
+ $ali_qali[$nali-1] = "";
+ $ali_tali[$nali-1] = "";
+ $ali_qmask[$nali-1] = "";
+ $ali_tmask[$nali-1] = "";
}
- elsif (/^\S+\s+(\S+)\s*$/) { # only ali lines are right-flushed
- if ($alilinecount % 2 == 0) {
- $ali_qali[$nali-1] .= $1;
- } else {
- $ali_qali[$nali-1] .= $1;
+ elsif (/^(\S+)\s+(\S+)\s*$/) { # only ali lines are right-flushed
+ # the usual alignment display is
+ # ali_query_line
+ # mask
+ # ali_target_line
+ #
+ # (1) ends are not flushed, and they can have "extra stuff"
+ # function calculate_flushedmask() corrects that
+ #
+ # (2) alingments do not need to be complete. (particularly using option -a )
+ # Meaning at the end AND at the beginning as well, you can end up with one single query line
+ # or one single target line.
+ #
+ # ali_query_line
+ # (no mask)
+ # (no ali_target_line)
+ #
+ # or
+ #
+ # (no ali_query_line)
+ # (no mask)
+ # ali_target_line
+ #
+ # or even
+ #
+ # aliq_query_line
+ # (no mask)
+ # ali_target_Line
+ #
+ # why? oh! why? check for that and fix it.
+
+ my $name = $1;
+ my $asq = $2;
+
+ #carefull, the alignment part, truncates the names of the query and targets
+ # this is a problem specially if the query and target names start similarly.
+ # it appears that querynames have been truncated to 5 characters and targetnames to 6
+ # also check for a prvline with numbers, but if len < 10 those do not show up either
+ if ($queryname =~ /^$name/ && (length($name) <= 5 || $prvline =~ /\s+(\d+)\s*/)) {
+ $prvaliline_isquery = 1;
+ $ali_qline = $_; $ali_qline =~ s/\n//;
+ $ali_qasq = $asq;
+ $mask = "";
+ }
+ elsif ($ali_target[$nali-1] =~ /^$name/) {
+ $talilinecount ++;
+ $ali_tline = $_; $ali_tline =~ s/\n//;
+ $ali_tasq = $asq;
+ if ($prvaliline_isquery) {
+ $ali_qali[$nali-1] .= $ali_qasq;
+ $ali_tali[$nali-1] .= $ali_tasq;
+ $ali_qmask[$nali-1] .= calculate_flushedmask($ali_qline, $mask);
+ $ali_tmask[$nali-1] .= calculate_flushedmask($ali_tline, $mask);
+ }
+ $prvaliline_isquery = 0;
}
$alilinecount++;
}
+ elsif (/^(\s*[\.\:][\s\.\:]*)$/) {
+ $mask .= $1;
+ }
elsif (/^\s+(\d+)>>>\s*(\S*)\s*(.*)\s*-\s*(\d+) \S\S$/) { # next query is starting. \S\S is "nt" or "aa"
$save_querycount = $1;
@@ -159,9 +232,21 @@ sub parse (*) {
return 1; # normal return. We've finished output for a query, and stored some info about the next one.
}
}
+ $prvline = $line;
} # this closes the loop over lines in the input stream: at EOF.
-
- if ($parsing_alilist) { return 1; } else { return 0; } # at EOF: normal return if we were in the alignment section.
+
+ if ($parsing_alilist) {
+ for (my $ali = 0; $ali < $nali; $ali ++) {
+ # the ali lines come along with more residues that are not part of the alignment. Why? oh! why?. REMOVE
+ # you cannot remove using ali_{q,t}start and $ali_{q,t}end because those are
+ # relative to the full sequence. Need to do it by parsing also the line in between (what I call the "mask")
+ # and finding the first and last ":" or "."
+ $ali_qali[$ali] = ali_removeflanking($ali_qali[$ali], $ali_qmask[$ali], $ali_qstart[$ali], $ali_qend[$ali]);
+ $ali_tali[$ali] = ali_removeflanking($ali_tali[$ali], $ali_tmask[$ali], $ali_tstart[$ali], $ali_tend[$ali]);
+ }
+ return 1;
+ }
+ else { return 0; } # at EOF: normal return if we were in the alignment section.
}
@@ -234,6 +319,66 @@ sub profmarkout {
}
}
+sub calculate_flushedmask {
+ my ($asq, $mask) = @_;
+
+ my $lremove = -1;
+ my $flushedasq;
+
+ if ($asq =~ /^(\S+\s+)(\S+)\s*$/) {
+ $lremove = length($1);
+ $flushedasq = $2;
+ }
+
+ my $flushedmask = $mask;
+ $flushedmask =~ s/^(.{$lremove})//;
+ $flushedmask =~ s/\n//;
+
+ if (length($flushedmask) > length($flushedasq)) {
+ while (length($flushedmask) > length($flushedasq)) {
+ if ($flushedmask =~ /(\s)$/) { $flushedmask =~ s/(\s)$//; }
+ }
+ }
+ if (length($flushedmask) < length($flushedasq)) {
+ while (length($flushedmask) < length($flushedasq)) { $flushedmask .= " "; }
+ }
+
+ #printf("\naseq|$asq|\nmask|$mask|\n");
+ #printf("^^aseq|$flushedasq|\n^^mask|$flushedmask|\n");
+
+ return $flushedmask;
+}
+
+
+sub ali_removeflanking {
+ my ($aseq, $mask) = @_;
+
+ my $taseq = "";
+
+ my $alen = length($aseq);
+
+ my $apos_start = 0;
+ while ($apos_start < $alen) {
+ my $mval = substr($mask, $apos_start, 1);
+ if ($mval =~ /[\.\:]/) { last; }
+ $apos_start ++;
+ }
+
+ my $apos_end = $alen-1;
+ while ($apos_end >= 0) {
+ my $mval = substr($mask, $apos_end, 1);
+ if ($mval =~ /[\.\:]/) { last; }
+ $apos_end --;
+ }
+
+ for (my $apos = $apos_start; $apos <= $apos_end; $apos++) {
+ $taseq .= substr($aseq, $apos, 1);
+ }
+ #print "B:$aseq\nM:$mask\nA:$taseq\n";
+
+ return $taseq;
+}
+
1;
__END__
diff --git a/easel/demotic/demotic_hmmer.pm b/easel/demotic/demotic_hmmer.pm
index 5f86539..e901189 100644
--- a/easel/demotic/demotic_hmmer.pm
+++ b/easel/demotic/demotic_hmmer.pm
@@ -54,11 +54,11 @@ sub parse (*) {
@ali_tend = (); # End position on target
@ali_qali = (); # Aligned string from query
@ali_tali = (); # Aligned string from target (subject)
+ @ali_hitidx = (); # index of hit
# Now, loop over the lines of our input, and parse 'em.
#
while (<$fh>) {
-
if ($parsing_header) {
if (/^Scores for complete sequences /) { # seq section starts with this line
$parsing_header = 0;
@@ -86,7 +86,7 @@ sub parse (*) {
# evalue score bias evalue score bias exp N target desc
# 1 2 3 4 5 6 7
$hit_target[$nhits] = $6;
- $target_desc{$1} = $7;
+ $target_desc{$6} = $7;
$hit_bitscore[$nhits] = $2;
$hit_Eval[$nhits] = $1;
$nhits++;
@@ -94,7 +94,11 @@ sub parse (*) {
}
elsif ($parsing_domains) {
- if (/^>>\s*(\S+)/) { $curr_ali_target = $1; }
+ if (/^\s*$/) { }
+
+ elsif (/^\s*Domain annotation/) { }
+
+ elsif (/^\>\>\s*(\S+)\s*/) { $curr_ali_target = $1; }
elsif (/^\s*\d+\s+\S\s+(\S+)\s+\S+\s+(\S+)\s+\S+\s+(\d+)\s+(\d+)\s+\S\S\s+(\d+)\s+(\d+)\s+\S\S\s+(\d+)\s+(\d+)\s+\S\S\s+\S+\s*$/)
# # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
@@ -108,14 +112,33 @@ sub parse (*) {
$ali_qend[$nali] = $4;
$ali_tstart[$nali] = $5;
$ali_tend[$nali] = $6;
- $nali++;
+ $ali_hitidx[$nali] = $nhits-1;
+ $nali ++;
}
+ elsif (/^\s+Alignments for each domain/) {
+ $parsing_domains = 0;
+ $parsing_alis = 1;
+ }
+ }
+ elsif ($parsing_alis) {
+ if (/^\s*$/) { }
+
+ elsif (/^\s*\=\=\s+domain\s+(\d+)\s+/) {
+ $whichali = $1-1;
+ }
+ elsif (/^\s+$queryname\s+\d+\s+(\S+)\s+\d+\s*$/) {
+ $ali_qali[$whichali] .= $1;
+ }
+ elsif (/^\s+$ali_target[$whichali]\s+\d+\s+(\S+)\s+\d+\s*$/) {
+ $ali_tali[$whichali] .= $1;
+ }
elsif (/\/\//) { return 1; } # normal return after each query.
+ else { next; }
}
}
- if ($parsing_domains) { return 1; } else { return 0; }
+ if ($parsing_alis) { return 1; } else { return 0; }
}
sub exblxout {
diff --git a/easel/demotic/infernal_tab2gff.pl b/easel/demotic/infernal_tab2gff.pl
old mode 100644
new mode 100755
diff --git a/easel/demotic/test.pl b/easel/demotic/test.pl
old mode 100644
new mode 100755
diff --git a/easel/devkit/autodoc b/easel/devkit/autodoc
index 16bda4d..d865277 100755
--- a/easel/devkit/autodoc
+++ b/easel/devkit/autodoc
@@ -1,7 +1,8 @@
#! /usr/bin/perl
# Usage:
-# ./autodoc_functions <C file>
+# ./autodoc <C file>
+# ./autodoc -t <C file>
#
# Input is a C .c file with my structured function header convention.
# Output is .tex file suitable for inclusion in my LaTeX documentation.
@@ -49,8 +50,9 @@
#
# SRE, Tue Nov 30 19:43:47 2004
-require "getopts.pl";
-&Getopts('n:t');
+use Getopt::Std;
+
+&getopts('n:t');
$cfile = shift;
if ($opt_t) { $show_api_table = 1; }
@@ -84,7 +86,7 @@ if ($show_api_table)
printf("\\hyperlink{func:%s()}{\\ccode{%s()}} & %s\\\\\n",
$function[$i], $pfunction[$i], $synopsis[$i]);
} else {
- printf("\\hyperlink{func:%s()}{\\ccode{%s()}} & Description.\\\\\n",
+ printf("\\hyperlink{func:%s()}{\\ccode{%s()}} & [Description]\\\\\n",
$function[$i], $pfunction[$i]);
}
}
@@ -162,7 +164,8 @@ parse_function_documentation
# Remove leading comment symbols and spacing.
$comment =~ s|\n[ \t]*\*[ \t]*|\n|g;
-
+
+
# Now, grab all the individual blocks of info from a structured
# function header comment. Required fields:
# Function:
@@ -174,10 +177,10 @@ parse_function_documentation
if ($first_funcname =~ /^(\S+)\(\)/) { $first_funcname = $1; }
if ($first_funcname ne $function[$n]) { die "parse error; $first_funcname != $function[$n]";}
- if ($comment =~ m|\n@\* Synopsis:\s*(.+?)\n@\*|ms) { $synopsis[$n] = &process_comment_text($1); }
+ if ($comment =~ m|\n@\* Synopsis:\s*(.+?)\n|ms) { $synopsis[$n] = &process_comment_text($1); }
else {$synopsis[$n] = ""; }
- if ($comment =~ m|\n@\* Incept:\s*(.+?)\n@\*|ms) { $incept[$n] = &process_comment_text($1); }
+ if ($comment =~ m|\n@\* Incept:\s*(.+?)\n|ms) { $incept[$n] = &process_comment_text($1); }
else {$incept[$n] = ""; }
if ($comment =~ m|\n@\* Purpose:\s*(.+?)\n@\*|ms) { $purpose[$n] = &process_comment_text($1); }
diff --git a/easel/devkit/cexcerpt b/easel/devkit/cexcerpt
old mode 100755
new mode 100644
diff --git a/easel/devkit/sqc b/easel/devkit/sqc
index 5ff13d1..5a1980d 100755
--- a/easel/devkit/sqc
+++ b/easel/devkit/sqc
@@ -30,14 +30,24 @@
# Useful when debugging individual failed tests - saves
# having to rerun the whole testsuite.
#
+# -V - Run 'valgrind' test types. Caller asserts that valgrind
+# is installed on this system. This option may also be
+# set by setting environment variable SQC_VALGRIND nonzero.
+#
+# -M - Run 'mpi' test types. Caller asserts that mpiexec is
+# installed on this system. This option may also be set
+# by setting env variable SQC_MPI nonzero.
# Examples:
# % sqc 2 exercises.sqc .. ..
#
-#
+# (Allowing -M, -V to also be set in the environment simplifies life when
+# we're calling sqc via a 'make check', where we don't really have control
+# over the cmdline options, but we can control our system environment.)
+#
# For each (non-prep) test in the command file, a one-line summary
# of the result is printed. The format of this line is:
# <testtype> <test #> [<test name>]... <status>
-# where <testtype> is exercise, valgrind, regression, benchmark, or
+# where <testtype> is exercise, valgrind, mpi, regression, benchmark, or
# fail; <test #> is a counter, separate for each type; <test name> is
# the one-word name for this test; and <status> is the result of the
# test. The format for <status> is described later.
@@ -53,7 +63,7 @@
# in one command file.
#
# type: One of the following keywords:
-# prep, exercise, valgrind, regression, benchmark, fail
+# prep, exercise, valgrind, mpi, regression, benchmark, fail
# See below for description of each.
#
# name: One word, <=20 characters, naming this test.
@@ -179,6 +189,19 @@
# FAILED [command failed]
# FAILED [crash!]
#
+# Valgrind tests are only run if -V cmdline option is used,
+# or if SQC_VALGRIND environment variable is set nonzero.
+#
+# mpi: An MPI-specific exercise.
+#
+# The command includes 'mpiexec'; for example,
+# "mpiexec -n 2 ./my_mpi_unit_test"
+#
+# MPI exercises are only run if the -M cmdline option is used,
+# or if SQC_MPI environment variable is set nonzero.
+#
+# Output line format is the same as for an exercise.
+#
# regression: The same command template is processed and run twice;
# once under a "new" build (<top_builddir> and <top_srcdir>)
# and once under an "old" build of the same software
@@ -211,13 +234,34 @@
use Getopt::Std;
-# Parse our command line
+# Parse our command line options
#
-getopts('vx');
+getopts('vx:VM');
if ($opt_v) { $verbose = 1; }
if ($opt_x) { $only_do_test_num = $opt_x; }
+if ($opt_V) { $do_valgrind = 1; }
+if ($opt_M) { $do_mpi = 1; }
+# Parse our environment
+#
+if ($ENV{"SQC_VALGRIND"} != 0) { $do_valgrind = 1; }
+if ($ENV{"SQC_MPI"} != 0) { $do_mpi = 1; }
+# Trust but verify
+#
+if ($do_valgrind)
+{
+ $output = `valgrind --version 2>&1`;
+ if ($?) { die "couldn't run valgrind. Don't set -V cmdline option, don't set SQC_VALGRIND env variable."; }
+}
+if ($do_mpi)
+{
+ $output = `mpiexec -V 2>&1`;
+ if ($?) { die "couldn't run mpiexec. Don't set -M cmdline option, don't set SQC_MPI env variable."; }
+}
+
+# Parse command line arguments
+#
if ($#ARGV == 3)
{
$setlevel = shift;
@@ -257,6 +301,8 @@ while (<COMMANDS>) {
chomp;
($testlevel, $testtype, $testname, $cmdtemplate) = split(' ', $_, 4);
+
+ # Skip test is it's harder than our set level.
if ($setlevel < $testlevel) { next COMMAND; }
# Make sure it's a valid test type;
@@ -264,13 +310,27 @@ while (<COMMANDS>) {
#
if ($testtype eq "exercise" ||
$testtype eq "valgrind" ||
+ $testtype eq "mpi" ||
$testtype eq "regression" ||
$testtype eq "fail" ||
$testtype eq "benchmark")
{
+ # In verbose mode, if any test calls for valgrind but we're not set up to run
+ # valgrind, issue one warning. Ditto for mpi tests. It's easy to forget
+ # the need for -V/SQC_VALGRIND, or -M/SQC_MPI.
+ if ($verbose && $testtype eq "valgrind" && ! do_valgrind && $valgrind_ntests == 0)
+ { print ("[WARNING: valgrind commands not running: use -V or export SQC_VALGRIND=1 to enable valgrind tests]"); }
+ if ($verbose && $testtype eq "mpi" && ! do_mpi && $mpi_ntests == 0)
+ { print ("[WARNING: mpi tests present but not run: use -M or export SQC_MPI=1 to enable mpi tests]"); }
+
+ if ($testtype eq "valgrind") { $valgrind_ntests++; if (! $do_valgrind) { next COMMAND; } }
+ if ($testtype eq "mpi") { $mpi_ntests++; if (! $do_mpi) { next COMMAND; } }
+
+
+
$ntest++;
if ($only_do_test_num && $only_do_test_num != $ntest) { next COMMAND; }
- printf(" %10s %4d [%20s] ... ", $testtype, $ntest, $testname);
+ printf(" %10s %4d [%21s] ... ", $testtype, $ntest, $testname);
}
elsif ($testtype ne "prep")
{
@@ -358,7 +418,7 @@ while (<COMMANDS>) {
if ($status1 != 0) { die "prep command [$testname] at line $linenum failed with status $status1\n"; }
}
- elsif ($testtype eq "exercise")
+ elsif ($testtype eq "exercise" || $testtype eq "mpi")
{
if (($status1>>8) == 1) { print "FAILED [command failed]\n"; $badtest++; }
elsif ( $status1 != 0) { print "FAILED [crash!]\n"; $badtest++; }
diff --git a/easel/documentation/Makefile.in b/easel/documentation/Makefile.in
index f63cfa8..94a41c1 100644
--- a/easel/documentation/Makefile.in
+++ b/easel/documentation/Makefile.in
@@ -44,6 +44,7 @@ MODULES = easel\
esl_dirichlet\
esl_distance\
esl_dmatrix\
+ esl_dsqdata\
esl_exponential\
esl_fileparser\
esl_gamma\
@@ -54,11 +55,9 @@ MODULES = easel\
esl_hyperexp\
esl_keyhash\
esl_minimizer\
- esl_mixgev\
esl_mpi\
esl_msa\
esl_msacluster\
- esl_msafile\
esl_msaweight\
esl_normal\
esl_paml\
@@ -80,6 +79,9 @@ MODULES = easel\
esl_vectorops\
esl_weibull\
esl_wuss
+
+# esl_mixgev
+# esl_msafile
# esl_swat
TEXFILES = \
@@ -104,7 +106,7 @@ TEXFILES = \
pdf: current.pdf
-current.pdf: symlinks.stamp autodoc.stamp cexcerpt.stamp
+current.pdf: symlinks.stamp autodoc.stamp cexcerpt.stamp apitables.stamp
@for prog in pdflatex bibtex; do \
command -v $$prog >/dev/null 2>&1 || { echo >&2 "The $$prog program is required to build the Userguide, but it's not installed. Aborting."; exit 1; } \
done
@@ -153,6 +155,14 @@ cexcerpt.stamp:
@echo "cexcerpts created:\c" > $@
@date >> $@
+apitables.stamp:
+ mkdir -p apitables
+ for module in ${MODULES}; do\
+ ${AUTODOC} -t ${srcdir}/../$$module.c > apitables/$${module}_api.tex;\
+ done
+ @echo "apitables created:\c" > $@
+ @date >> $@
+
install:
${INSTALL} -m 0644 current.pdf ${DESTDIR}${pdfdir}/
@@ -175,9 +185,10 @@ clean:
rm $$module.tex ;\
fi ;\
done
- -rm -f symlinks.stamp autodoc.stamp cexcerpt.stamp
+ -rm -f symlinks.stamp autodoc.stamp cexcerpt.stamp apitables.stamp
-rm -rf cexcerpts
-rm -rf autotext
+ -rm -rf apitables
-rm -f latex.log
-rm -f x.log
-rm -f *~ TAGS
@@ -191,10 +202,10 @@ distclean: clean
################################################################
# Easel - a library of C functions for biological sequence analysis
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 HHMI Janelia Farm Research Campus
-# Other copyrights also apply. See the COPYRIGHT file for a full list.
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
#
-# Easel is distributed under the Janelia Farm Software License, a BSD
-# license. See the LICENSE file for more details.
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
################################################################
diff --git a/easel/documentation/codestyle.tex b/easel/documentation/codestyle.tex
index ec49c58..f6c6cd1 100644
--- a/easel/documentation/codestyle.tex
+++ b/easel/documentation/codestyle.tex
@@ -1,26 +1,25 @@
-This chapter describes Easel from a developer's perspective. It will
-show you how a module's source code is organized, written, tested, and
-documented. Besides providing guidance for implementing new Easel
-code, it should also help you understand the structure of existing
-Easel code.
-
-We expect Easel to constantly evolve -- not only in its code, but also
-in its style. By writing down a code style, the aim is not to enforce
-foolish consistencies. Rather, one way we try to manage the complexity
-of our large codebase is to continuously cajole Easel code toward a
-clean and consistent presentation. We try to organize code modules in
-similar ways, use certain naming conventions, and channel similar
-functions towards common \esldef{interfaces} that provide common
-calling conventions and behaviors.
-
-Because it's evolving, not all Easel code obeys the code style
-described in this chapter. Think of the Easel code style as a local
-building ordinance. Any new construction should always comply, but
-older construction is grandfathered in and does not have to
-immediately conform to the current rules. When it comes time to
-renovate older construction, it's also time to bring it up to the
-current standards.
+This chapter describes Easel from a developer's perspective. It shows
+how a module's source code is organized, written, tested, and
+documented. It should help you with implementing new Easel code, and
+also with understanding the structure of existing Easel code.
+
+We expect Easel to constantly evolve, both in code and in style.
+Talking about our code style does not mean we enforce foolish
+consistency. Rather, the goal is aspirational; one way we try to
+manage the complexity of our growing codebase is to continuously
+cajole Easel code toward a clean and consistent presentation. We try
+to organize code modules in similar ways, use certain naming
+conventions, and channel similar functions towards common
+\esldef{interfaces} that provide common calling conventions and
+behaviors.
+
+But because it evolves, not all Easel code obeys the code style
+described in this chapter. Easel code style is like a local building
+ordinance. Any new construction should comply. Older construction is
+grandfathered in and does not have to immediately conform to the
+current rules. When it comes time to renovate, it's also time to bring
+the old work up to the current standards.
For a concrete example we will focus primarily on one Easel module,
the \eslmod{buffer} module. We'll take a bottom up approach, starting
@@ -134,12 +133,11 @@ advocate. Easel module code is designed to be \emph{read}, to be
\emph{self-documenting}, to contain its own \emph{testing methods},
and to provide useful \emph{working examples}. Thus the size of the
files is a little deceptive, compared to C code that's solely
-implementating some functions. In general, relatively little (perhaps
-a quarter) of an Easel module's \ccode{.c} file is the actual module
-implementation. Typically, around half of an Easel \ccode{.c} file is
-documentation, and much of this gets automatically parsed into the PDF
-userguide. Then of the actual code, around half of that often consists
-of drivers for unit testing and examples.
+implementating some functions. In general, only about a a quarter of
+an Easel module's \ccode{.c} file is the actual module implementation.
+Typically, around half of an Easel \ccode{.c} file is documentation,
+and much of this gets automatically parsed into the PDF userguide. The
+rest consists of drivers for unit testing and examples.
Module files are organized into a somewhat stereotypical set of
sections, to facilitate navigating the code, as follows.
@@ -233,12 +231,12 @@ the following, in this order:
\item [\textbf{Copyright/license information.}] Each file ends with a
\ccode{Easel - a library of C functions for biological sequence analysis} tag. This placeholder is automatically replaced by
- \ccode{Version i1.1.1; July 2014} tag. This placeholder is automatically replaced by
- \ccode{Copyright (C) 2014 HHMI Janelia Farm Research Campus} tag. This placeholder is automatically replaced by
- \ccode{Other copyrights also apply. See the COPYRIGHT file for a full list.} tag. This placeholder is automatically replaced by
+ \ccode{Version 0.43; July 2016} tag. This placeholder is automatically replaced by
+ \ccode{Copyright (C) 2016 Howard Hughes Medical Institute} tag. This placeholder is automatically replaced by
+ \ccode{Other copyrights also apply. See the LICENSE file for a full list.} tag. This placeholder is automatically replaced by
\ccode{} tag. This placeholder is automatically replaced by
- \ccode{Easel is distributed under the Janelia Farm Software License, a BSD} tag. This placeholder is automatically replaced by
- \ccode{license. See the LICENSE file for more details.} tag. This placeholder is automatically replaced by
+ \ccode{Easel is open source software, distributed under the BSD license. See} tag. This placeholder is automatically replaced by
+ \ccode{the LICENSE file for more details.} tag. This placeholder is automatically replaced by
the correct license statement at packaging time. This gives us the
ability to package specially licensed versions, in addition to the
usual open source version. Automatically generated Subversion
@@ -397,32 +395,32 @@ At the bottom of every source file is a comment block:
\begin{cchunk}
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
\end{cchunk}
When we build a distribution package, the \ccode{Easel - a library of C functions for biological sequence analysis} tag is
-When we build a distribution package, the \ccode{Version i1.1.1; July 2014} tag is
-When we build a distribution package, the \ccode{Copyright (C) 2014 HHMI Janelia Farm Research Campus} tag is
-When we build a distribution package, the \ccode{Other copyrights also apply. See the COPYRIGHT file for a full list.} tag is
+When we build a distribution package, the \ccode{Version 0.43; July 2016} tag is
+When we build a distribution package, the \ccode{Copyright (C) 2016 Howard Hughes Medical Institute} tag is
+When we build a distribution package, the \ccode{Other copyrights also apply. See the LICENSE file for a full list.} tag is
When we build a distribution package, the \ccode{} tag is
-When we build a distribution package, the \ccode{Easel is distributed under the Janelia Farm Software License, a BSD} tag is
-When we build a distribution package, the \ccode{license. See the LICENSE file for more details.} tag is
+When we build a distribution package, the \ccode{Easel is open source software, distributed under the BSD license. See} tag is
+When we build a distribution package, the \ccode{the LICENSE file for more details.} tag is
replaced with by the appropriate copyright and license text by our
\prog{sedition} program. The command line appears in
\ccode{Makefile.in} in its \ccode{make dist}; it directs
\prog{sedition} to replace \ccode{Easel - a library of C functions for biological sequence analysis} tags with the contents of
-\prog{sedition} to replace \ccode{Version i1.1.1; July 2014} tags with the contents of
-\prog{sedition} to replace \ccode{Copyright (C) 2014 HHMI Janelia Farm Research Campus} tags with the contents of
-\prog{sedition} to replace \ccode{Other copyrights also apply. See the COPYRIGHT file for a full list.} tags with the contents of
+\prog{sedition} to replace \ccode{Version 0.43; July 2016} tags with the contents of
+\prog{sedition} to replace \ccode{Copyright (C) 2016 Howard Hughes Medical Institute} tags with the contents of
+\prog{sedition} to replace \ccode{Other copyrights also apply. See the LICENSE file for a full list.} tags with the contents of
\prog{sedition} to replace \ccode{} tags with the contents of
-\prog{sedition} to replace \ccode{Easel is distributed under the Janelia Farm Software License, a BSD} tags with the contents of
-\prog{sedition} to replace \ccode{license. See the LICENSE file for more details.} tags with the contents of
+\prog{sedition} to replace \ccode{Easel is open source software, distributed under the BSD license. See} tags with the contents of
+\prog{sedition} to replace \ccode{the LICENSE file for more details.} tags with the contents of
the \ccode{LICENSE.tag} file (which is itself constructed
automatically at \ccode{make dist} time).
@@ -446,12 +444,12 @@ Autogenerating these license tags allows us to package distributions
under other licenses without having to edit every source file.
\ccode{Easel - a library of C functions for biological sequence analysis} is the only configuration variable that Easel
-\ccode{Version i1.1.1; July 2014} is the only configuration variable that Easel
-\ccode{Copyright (C) 2014 HHMI Janelia Farm Research Campus} is the only configuration variable that Easel
-\ccode{Other copyrights also apply. See the COPYRIGHT file for a full list.} is the only configuration variable that Easel
+\ccode{Version 0.43; July 2016} is the only configuration variable that Easel
+\ccode{Copyright (C) 2016 Howard Hughes Medical Institute} is the only configuration variable that Easel
+\ccode{Other copyrights also apply. See the LICENSE file for a full list.} is the only configuration variable that Easel
\ccode{} is the only configuration variable that Easel
-\ccode{Easel is distributed under the Janelia Farm Software License, a BSD} is the only configuration variable that Easel
-\ccode{license. See the LICENSE file for more details.} is the only configuration variable that Easel
+\ccode{Easel is open source software, distributed under the BSD license. See} is the only configuration variable that Easel
+\ccode{the LICENSE file for more details.} is the only configuration variable that Easel
\ccode{.c} or \ccode{.h} files currently use. It's possible we would
add others in the future.
@@ -460,12 +458,11 @@ add others in the future.
\subsection{Driver programs}
%%%%%%%%%%%%%%%%
-Perhaps the most unusual (innovative?) thing about Easel modules is
-how we embed {\bfseries driver programs} directly in the module's
-\ccode{.c} file. Driver programs include our unit tests, benchmarks,
-and working examples. These small programs are enclosed in
-standardized \ccode{\#ifdef}'s that enable them to be conditionally
-compiled.
+An unusual (innovative?) thing about Easel modules is how we embed
+{\bfseries driver programs} directly in the module's \ccode{.c}
+file. Driver programs include our unit tests, benchmarks, and working
+examples. These small programs are enclosed in standardized
+\ccode{\#ifdef}'s that enable them to be conditionally compiled.
None of these programs are installed by \ccode{make install}. Test
drivers are compiled as part of \ccode{make check}. A \ccode{make
@@ -833,6 +830,11 @@ special names are called \esldef{common interfaces}.
& \ccode{ESL\_}\itcode{FOO}\ccode{ *}
& \ccode{esl\_msa\_Clone()} \\
+\ccode{\_Shadow}
+ & Partially duplicate an object, creating a dependent shadow.
+ & \ccode{ESL\_}\itcode{FOO}\ccode{ *}
+ & \ccode{p7\_oprofile\_Shadow()} \\
+
\ccode{\_Copy}
& Make a copy of an object, using an existing allocated object for space.
& [standard]
@@ -852,10 +854,15 @@ special names are called \esldef{common interfaces}.
\multicolumn{4}{c}{\bfseries Managing memory allocation}\\
\ccode{\_Grow}
- & Expand the allocation in an existing object.
+ & Expand the allocation in an existing object, typically by doubling.
& [standard]
& \ccode{esl\_tree\_Grow()} \\
+\ccode{\_GrowTo}
+ & Reallocate object (if needed) for some new data size.
+ & [standard]
+ & \ccode{esl\_sq\_GrowTo()} \\
+
\ccode{\_Reuse}
& Recycle an object, reinitializing it while reusing as much of its existing
allocation(s) as possible.
@@ -867,6 +874,8 @@ special names are called \esldef{common interfaces}.
& size, in bytes
& - \\
+
+
\multicolumn{4}{c}{\bfseries Accessing information in objects}\\
\ccode{\_Is}
@@ -902,18 +911,32 @@ special names are called \esldef{common interfaces}.
& [standard]
& \ccode{esl\_msa\_FormatName()} \\
+
+
\multicolumn{4}{c}{\bfseries Debugging}\\
\ccode{\_Validate}
& Run validation tests on the internal state of an object.
& [standard]
& \ccode{esl\_tree\_Validate()} \\
+\ccode{\_Compare}
+ & Compare two objects to each other for equality (or close enough).
+ & [standard]
+ & \ccode{esl\_msa\_Compare()} \\
+
\ccode{\_Dump}
& Dump a verbose, possibly ugly, but developer-readable output
of the internal state of an object.
& [standard]
& \ccode{esl\_keyhash\_Dump()} \\
+\ccode{\_TestSample}
+ & Sample a mostly syntactically correct object for test purposes
+ & [standard]
+ & \ccode{p7\_tophits\_TestSample()} \\
+
+
+
\multicolumn{4}{c}{\bfseries Miscellaneous}\\
\ccode{\_Write}
@@ -921,11 +944,6 @@ special names are called \esldef{common interfaces}.
& [standard]
& \ccode{esl\_msa\_Write()} \\
-\ccode{\_Compare}
- & Compare two objects (for equality, for instance)
- & [standard]
- & \ccode{esl\_msa\_Compare()} \\
-
\ccode{\_Encode}
& Convert a user-readable string (such as ``fasta'') to an
internal Easel code (such as \ccode{eslSQFILE\_FASTA}).
@@ -955,16 +973,32 @@ contains valid data.
\begin{sreapi}
\hypertarget{ifc:Create}
-{\item[\_Create(N)]}
+{\item[\_Create(n)]}
A \ccode{\_Create()} interface takes any necessary initialization or
-size information as arguments (there may not be any), and it returns a
+size information as arguments (there often aren't any), and it returns a
pointer to the newly allocated object. If an (optional) number of
-elements \ccode{N} is provided, this specifies the number of elements
-that the object is going to contain (thus, creating a fixed-size
-object; contrast the \ccode{\_CreateGrowable()} interface). In the
-event of any failure, the a \ccode{\_Create} procedure throws
-\ccode{NULL}.
+elements \ccode{n} is provided, this specifies the number of elements
+that the object is going to contain (for a fixed-size object) or the
+initial allocation size (for a resizable object). In the event of any
+failure, the a \ccode{\_Create} procedure throws \ccode{NULL}.
+
+The internals of some resizeable objects have an \ccode{nredline}
+parameter that controls an additional memory management rule. These
+objects are allowed to grow to arbitrary size (either by doubling with
+\ccode{\_Grow} or by a specific allocation with \ccode{\_Reinit} or
+\ccode{\_GrowTo}) -- but when the object is reused for new data, they
+can be reallocated \emph{downward}, back to the redline
+limit. Specifically, if the allocation size exceeds \ccode{nredline},
+a \ccode{\_Reuse()} or \ccode{\_Reinit()} call will shrink the
+allocation back to the \ccode{nredline} limit. The idea is for a
+frequently-reused object to be able to briefly handle a rare
+exceptionally large problem, while not permanently committing the
+resizeable object to an extreme allocation size.
+
+At least one module (\ccode{esl\_tree}) allows for creating either a
+fixed-size or a resizeable object; in this case, there is a
+\ccode{\_CreateGrowable()} call for the resizeable version.
\hypertarget{ifc:Destroy}
{\item[\_Destroy(obj)]}
@@ -1051,6 +1085,7 @@ Equivalent to (and is a shortcut for, and is generally implemented as)
for free'ing the duplicate object, just as if it had been
\ccode{\_Create}'d. Throws \ccode{NULL} if allocation fails.
+
\hypertarget{ifc:Copy}
{\item[\_Copy(src, dest)]}
@@ -1064,6 +1099,17 @@ Note that the order of the arguments is always \ccode{src}
$\rightarrow$ \ccode{dest} (unlike the C library's \ccode{strcpy()}
convention, which is the opposite order).
+
+\hypertarget{ifc:Shadow}
+{\item[\_Shadow(obj)]}
+
+Creates and returns a pointer to a partial, dependent copy of
+\ccode{obj}. Shadow creation arises in multithreading, when threads
+can share some but not all internal object data. A shadow keeps
+constant data as pointers to the original object. The object needs to
+know whether it is a shadow or not, so that <_Destroy()> works
+properly on both the original and its shadows.
+
\end{sreapi}
%%%%%%%%%%%%%%%%
@@ -1071,11 +1117,11 @@ convention, which is the opposite order).
%%%%%%%%%%%%%%%%
%%%%
- \subsubsection{growable objects}
+ \subsubsection{resizable objects}
%%%%
Some objects need to be reallocated and expanded during their use.
-These objects are called \esldef{growable}.
+These objects are called \esldef{resizable}.
In some cases, the whole purpose of the object is to have elements
added to it, such as \ccode{ESL\_STACK} (pushdown stacks) and
@@ -1085,41 +1131,42 @@ object keeps track of both its current contents size (often
\ccode{obj->N}) and the current allocation size (often
\ccode{obj->nalloc}).
-In some other cases, objects might be either growable or not,
-depending on how they're being used. This happens, for instance, when
-we have routines for parsing input data to create a new object, and we
+In at least one case, an object might be either growable or not,
+depending on how it's being used. This happens, for instance, when we
+have routines for parsing input data to create a new object, and we
need to dynamically reallocate as we go because the input doesn't tell
us the total size when we start. For instance, with \ccode{ESL\_TREE}
(phylogenetic trees), sometimes we know exactly the size of the tree
we need to create (because we're making a tree ourselves), and
-sometimes we need to create a growable object (because we're reading a
+sometimes we need to create a resizable object (because we're reading a
tree from a file). In these cases, the normal \ccode{\_Create()}
interface creates a static, nongrowable object of known size, and a
\ccode{\_CreateGrowable()} interface specifies an initial allocation
-for a growable object.
+for a resizable object.
-Easel usually handles its own reallocation of growable objects. For
-instance, many growable objects have an interface called something
+Easel usually handles its own reallocation of resizable objects. For
+instance, many resizable objects have an interface called something
like \ccode{\_Add()} or \ccode{\_Push()} for storing the next element
in the object, and this interface will deal with increasing allocation
size as needed. In a few cases, a public \ccode{\_Grow()} interface
is provided for reallocating an object to a larger size, in cases
where a caller might need to grow the object itself. \ccode{\_Grow()}
-only increases an allocation when it is necessary, so that a caller
-can call \ccode{\_Grow()} before every attempt to add a new
-element. An example of where a public \ccode{\_Grow()} interface is
-generally provided is when an object might be input from different
-file formats, and an application may need to create its own
-parser. Although creating an input parser requires familiarity with
-the Easel object's internal data structures, at least the
-\ccode{\_Grow()} interface frees the caller from having to understand
-its memory management.
-
-Growable objects waste memory, because they are overallocated in order
-to reduce the number of calls to \ccode{malloc()}. The wastage is
-bounded (to a maximum of two-fold, for the default doubling
-strategies, once an object has exceeded its initial allocation size)
-but nonetheless may not always be tolerable.
+only increases an allocation when it is necessary, and it makes that
+check immediately and efficiently, so that a caller can call
+\ccode{\_Grow()} before every attempt to add a new element without
+worrying about efficiency. An example of where a public
+\ccode{\_Grow()} interface is generally provided is when an object
+might be input from different file formats, and an application may
+need to create its own parser. Although creating an input parser
+requires familiarity with the Easel object's internal data structures,
+at least the \ccode{\_Grow()} interface frees the caller from having
+to understand its memory management.
+
+Resizable objects necessarily waste some memory, because they are
+overallocated in order to reduce the number of calls to
+\ccode{malloc()}. The wastage is bounded (to a maximum of two-fold,
+for the default doubling strategies, once an object has exceeded its
+initial allocation size) but nonetheless may not always be tolerable.
In summary:
@@ -1130,8 +1177,16 @@ In summary:
A \ccode{\_Grow()} function checks to see if \ccode{obj} can hold
another element. If not, it increases the allocation, according to
internally stored rules on reallocation strategy (usually, by
-doubling). A \ccode{\_GrowTo()} function reallocates an object to a
-specified size.
+doubling).
+\end{sreapi}
+
+\begin{sreapi}
+\hypertarget{ifc:GrowTo}
+{\item[\_GrowTo(obj, n)]}
+
+A \ccode{\_GrowTo()} function checks to see \ccode{obj} is large
+enough to hold \ccode{n} elements. If not, it reallocates to at least
+that size.
\end{sreapi}
%%%%
@@ -1155,11 +1210,16 @@ possible. Any state information that was specific to the problem the
object was just used for is reinitialized. Any allocations and state
information specific to those allocations are preserved (to the extent
possible). A \ccode{\_Reuse()} call should exactly replace (and be
-equivalent to) a \ccode{\_Destroy()/\_Create()} pair. A
-\ccode{\_Reuse()} interface does not care whether the object was
-originally created by a \ccode{\_Create()} or a \ccode{\_Inflate()}
-call (see below), or whether the object is growable or not (if it was
-growable, it remains growable).
+equivalent to) a \ccode{\_Destroy()/\_Create()} pair. If the object is
+growable, it typically would keep the last allocation size, and it
+must keep at least the same allocation size that a default
+\ccode{\_Create()} call would give.
+
+If the object is arbitrarily resizeable and it has a \ccode{nredline}
+control on its memory, the allocation is shrunk back to
+\ccode{nredline} (which must be at least the default initial
+allocation).
+
\end{sreapi}
For example:
@@ -1268,18 +1328,61 @@ aren't. Additionally, if the caller provides a non-\ccode{NULL}
message buffer \ccode{errbuf}, on failure, an informative message
describing the reason for the failure is formatted and left in
\ccode{errbuf}. If the caller provides this message buffer, it must
-allocate it for at least \ccode{p7\_ERRBUFSIZE} characters.
-
-Because a \ccode{\_Validate()} call is primarily intended for
-debugging, failures are classified as normal (returned) errors.
-(Throwing exceptions instead would give the caller no flexibility in
-dealing with failed validations.) The caller can then print an
-appropriately informative failure message, using the \ccode{errbuf},
-for example. (A \ccode{\_Validate()} call might also be included in
-production code, so it needs to use the \ccode{errbuf} mechanism to
-return its informative failure message; it cannot, for instance, call
-\ccode{esl\_fatal()} or the like directly, because that would mean
-crashing out of production code.)
+allocate it for at least \ccode{eslERRBUFSIZE} characters.
+
+Failures in \ccode{\_Validate()} routines are handled by
+\ccode{ESL\_FAIL()} (or \ccode{ESL\_XFAIL()}, if the validation
+routine needs to do any memory cleanup). Validation failures are
+classified as normal (returned) errors so that \ccode{\_Validate()}
+routines can be used in production code -- for example, to validate
+user input.
+
+At the same time, because the \ccode{ESL\_FAIL()} and
+\ccode{ESL\_XFAIL()} macros call the stub \ccode{esl\_fail()}, you can
+set a debugging breakpoint on \ccode{esl\_fail} to get a
+\ccode{\_Validate()} routine fail immediately at whatever test
+failed.
+
+The \ccode{errbuf} message therefore can be coarse-grained
+(``validation of object X failed'') or fine-grained (``in object X,
+data element Y fails test Z''). A validation of user input (which we
+expect to fail often) should be fine-grained, to return maximally
+useful information about what the user did wrong. A validation of
+internal data can be very coarse-grained, knowing that a developer can
+simply set a breakpoint in \ccode{esl\_fail()} to get at exactly where
+a validation failed.
+
+A \ccode{\_Validate()} function is not intended to test all possible
+invalid states of an object, even if that were feasible. Rather, the
+goal is to automatically catch future problems we've already seen in
+past debugging and testing. So a \ccode{\_Validate()} function is a
+place to systematically organize a set of checks that essentially
+amount to regression tests against past debugging/testing efforts.
+
+\hypertarget{ifc:Compare}
+{\item[\_Compare*(obj1, obj2...)]}
+
+Compares \ccode{obj1} to \ccode{obj2}. Returns \ccode{eslOK} if the
+contents are judged to be identical, and \ccode{eslFAIL} if they
+differ. When the comparison involves floating point scalar
+comparisons, a fractional tolerance argument \ccode{tol} is also
+passed.
+
+Failures in \ccode{\_Compare()} functions are handled by
+\ccode{ESL\_FAIL()} (or \ccode{ESL\_XFAIL()}, if the validation
+routine needs to do any memory cleanup), because they may be used in a
+context where a ``failure'' is expected; for example, when using
+\ccode{esl\_dmatrix\_Compare()} as a test for successful convergence
+of a matrix algebra routine.
+
+However, the main use of \ccode{\_Compare()} functions is in unit
+tests. During debugging and development, we want to see exactly where
+a comparison failed, and we don't want to have to write a bunch
+laboriously informative error messages to get that information.
+Instead we can exploit the fact that the \ccode{ESL\_FAIL()} and
+\ccode{ESL\_XFAIL()} macros call the stub \ccode{esl\_fail()}; you can
+set a debugging breakpoint in \ccode{esl\_fail()} to stop execution in
+the failure macros.
\hypertarget{ifc:Dump}
{\item[\_Dump*(FILE *fp, obj...)]}
@@ -1292,6 +1395,29 @@ assume that all its writes will succeed, and does not need to check
return status of \ccode{fprintf()} or other system calls, because it
is not intended for production use.
+
+\hypertarget{ifc:TestSample}
+{\item[\_TestSample(ESL\_RANDOMNESS *rng, ..., OBJTYPE **ret\_obj)]}
+
+Create an object filled with randomly sampled values for all data
+elements. The aim is to exercise valid values and ranges, and
+presence/absence of optional information and allocations, but not to
+obsess about internal semantic consistency. For example, we use
+\ccode{\_TestSample()} calls in testing MPI send/receive
+communications routines, where we don't care so much about the meaning
+of the object's contents, as we do about faithful transmission of any
+object with valid contents.
+
+A \ccode{\_TestSample()} call produces an object that is sufficiently
+valid for other debugging tools, including \ccode{\_Dump()},
+\ccode{\_Compare()}, and \ccode{\_Validate()}. However, because
+elements may be randomly sampled independently, in ways that don't
+respect interdependencies, the object may contain data inconsistencies
+that make the object invalid for other purposes. Contrast
+\ccode{\_Sample()} routines, which generate fully valid objects for
+all purposes, but which may not exercise the object's fields as
+thoroughly.
+
\end{sreapi}
%%%%%%%%%%%%%%%%
@@ -1309,14 +1435,7 @@ return status of all system calls, and throw an \ccode{eslEWRITE}
error on any failures.
-\hypertarget{ifc:Compare}
-{\item[\_Compare*(obj1, obj2...)]}
-Compares \ccode{obj1} to \ccode{obj2}. Returns \ccode{eslOK} if the
-contents are judged to be identical, and \ccode{eslFAIL} if they
-differ. When the comparison involves floating point scalar
-comparisons, a fractional tolerance argument \ccode{tol} is also
-passed.
\hypertarget{ifc:Encode}
{\item[code = \_Encode*(char *s)]}
@@ -1385,6 +1504,14 @@ Every function, procedure, and macro in the exposed API shall be
tested by one or more unit tests. The unit tests aim for complete code
coverage. This is measured by code coverage tests using \ccode{gcov}.
+Write unit tests. Remember that the purpose isn't so much to test
+whether your code works; the purpose is to test whether your code
+\emph{still} works, months or years from now when someone who didn't
+take the time to understand it fully has to make modifications. If
+that someone breaks your code and the unit tests fail, they know they
+need to do more. If someone breaks your code and the unit tests don't
+help them notice, it's your fault as much as theirs.
+
%%%%%%%%%%%%%%%%
\subsection{Using statistical sampling or randomization in unit tests}
@@ -1495,7 +1622,8 @@ The \ccode{valgrind\_report.pl} script in \ccode{testsuite} automates
valgrind testing for all Easel modules. To run it:
\begin{cchunk}
- % testsuite/valgrind_report.pl > valgrind.report
+ % cd testsuite
+ % ./valgrind_report.pl > valgrind.report
\end{cchunk}
@@ -1531,14 +1659,63 @@ The \ccode{coverage\_report.pl} script in \ccode{testsuite} automates coverage
testing for all Easel modules. To run it:
\begin{cchunk}
- % testsuite/coverage_report.pl > coverage.report
+ % cd testsuite
+ % coverage_report.pl > coverage.report
+\end{cchunk}
+
+
+%%%%%%%%%%%%%%%%
+\subsection{Using gprof for performance profiling}
+%%%%%%%%%%%%%%%%
+
+On a Linux machine (gprof does not work on Mac OS/X, apparently):
+
+\begin{cchunk}
+ % make distclean
+ % ./configure --enable-gprof
+ % make
\end{cchunk}
+Run any program you want to profile, then:
+
+\begin{cchunk}
+ % gprof -l <progname>
+\end{cchunk}
%%%%%%%%%%%%%%%%
-\subsection{Using gprof or shark for performance profiling}
+\subsection{Using the clang static analyzer, checker}
%%%%%%%%%%%%%%%%
+The clang static analyzer for Mac OS/X is at
+\url{http://clang-analyzer.llvm.org/}. I install it by moving its
+entire distro directory (checker-276, for example) to
+\ccode{/usr/local}, and symlinking to \ccode{checker}.
+My \ccode{bashrc} has:
+
+\begin{cchunk}
+test -d /usr/local/checker && PATH=${PATH}:/usr/local/checker
+\end{cchunk}
+
+and that puts \prog{scan-build} in my \ccode{PATH}.
+
+To use it:
+
+\begin{cchunk}
+ % scan-build ./configure --enable-debugging
+ % scan-build make
+\end{cchunk}
+
+It'll give you a scan-view command line, including the name of its
+output html file, so you can then visualize and interact with the
+results:
+
+\begin{cchunk}
+ % scan-view /var/folders/blah/baz/foo
+\end{cchunk}
+
+
+
+
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/easel/documentation/copyright.tex b/easel/documentation/copyright.tex
index 3e7d54a..d0917cb 100644
--- a/easel/documentation/copyright.tex
+++ b/easel/documentation/copyright.tex
@@ -1,11 +1,14 @@
\vspace*{\fill}
\begin{flushleft}
-Copyright (C) 2008 Howard Hughes Medical Institute.
+Copyright (C) 2016 Howard Hughes Medical Institute.
\vspace{2em}
-Easel's source code and documentation are freely redistributable and
-modifiable under the terms of the Janelia Farm Software License.
+Easel is open source. Easel's source code and documentation are
+freely redistributable and modifiable under the terms of the Berkeley
+Software Distribution License (BSD 2 Clause;
+\url{https://opensource.org/licenses/BSD-2-Clause}).
+
\end{flushleft}
diff --git a/easel/documentation/intro.tex b/easel/documentation/intro.tex
index defa760..1a7c2df 100644
--- a/easel/documentation/intro.tex
+++ b/easel/documentation/intro.tex
@@ -10,84 +10,75 @@ databases. \Easel\ is also used by \Infernal\
underlies the \Rfam\ RNA family database
\citep{Griffiths-Jones05}.
-\Easel\ is not meant to be comprehensive. There are other libraries
-that aspire to comprehensiveness, in a variety of languages
-\citep{Vahrson96,Pitt01,Mangalam02,Butt05,Dutheil06,Giancarlo07,Doring08}.
-\Easel's functionality is for supporting what's needed in
-probabilistic modeling of biological sequences, in applications like
-\HMMER\ and \Infernal. It includes code for generative probabilistic
-models of sequences, phylogenetic models of evolution, bioinformatics
-tools for sequence manipulation and annotation, numerical computing,
-and some basic utilities.
-
-\Easel\ is written in ANSI/ISO C because its primary goal is high
-performance. Secondarily, \Easel\ aims to provide an ease of use
-reasonably close to Perl or Python code. This is a somewhat different
-emphasis from biosequence libraries written in Perl or Python where
-ease-of-use is the primary goal, and where the library aims to provide
-performance reasonably close to C.
-
-\Easel\ reflects some personal views about code reuse in research
-software development. It is not intended to be a black box library
-that you just link to (though you may certainly use it that way;
-\HMMER\ and \Infernal\ do). I tend to only use black box libraries for
-routine functions that are tangential to my research. For routines
-that directly touch on my research, I want to see and control the
-relevant source code. Idealistic views of code reuse and modularity
-clash with the desire for rigorous, paranoid control of confounding
-variables in research. No matter how much software engineers may
-complain, in reality it's not unnatural at all to treat reusing other
-people's code like using their toothbrush -- because god only knows
-what they've done to it. It's entirely natural in a research
-environment that people act like magpies, studying and stealing shiny
-bits of other people's source code to weave them into our own personal
-nest. \Easel\ is therefore written to be read, studied, and borrowed
-from, piecewise.
-
-\Easel\ also reflects some personal views about publishing research
-results based on software engineering. The \Easel\ source code itself
-is intended to be supplementary material for our research papers,
-aiming to make our work reproducible and extensible by others.
-\Easel\ is therefore written and documented as carefully as any other
+There are other biosequence analysis libraries out there, in a variety
+of languages
+\citep{Vahrson96,Pitt01,Mangalam02,Butt05,Dutheil06,Giancarlo07,Doring08};
+but this is ours. \Easel\ is not meant to be comprehensive. \Easel
+is for supporting what's needed in our group's work on probabilistic
+modeling of biological sequences, in applications like \HMMER\ and
+\Infernal. It includes code for generative probabilistic models of
+sequences, phylogenetic models of evolution, bioinformatics tools for
+sequence manipulation and annotation, numerical computing, and some
+basic utilities.
+
+\Easel\ is written in ANSI/ISO C because its primary goals are high
+performance and portability. Additionally, \Easel\ aims to provide an
+ease of use reasonably close to Perl or Python code.
+
+\Easel\ is designed to be reused, but not only as a black box. I might
+use a black box library for routine functions that are tangential to
+my research, but for anything research-critical, I want to understand
+and control the source code. It's rational to treat reusing other
+people's code like using their toothbrush, because god only knows what
+they've done to it. For me, code reuse more often means acting like a
+magpie, studying and stealing shiny bits of other people's source
+code, and weaving them into one's own nest. \Easel\ is designed so you
+can easily pull useful baubles from it.
+
+\Easel\ is also designed to enable us to publish reproducible and
+extensible research results as supplementary material for our research
+papers. We put work into documenting \Easel\ as carefully as any other
research data we distribute.
-These considerations dictate many \Easel design decisions. \Easel's
-documentation includes tutorial examples to make it easy to understand
-any given \Easel\ module, independent of other parts of \Easel.
-\Easel\ is modular, in a way that helps you extract individual files
-or functions for use in your own code, without having to use (or
-disentangle) the entire library. \Easel\ uses some precepts of
-object-oriented design, but its objects are just C structures with
-visible, documented contents. The \Easel\ open source license allows
-you to freely modify and redistribute any part of it for any purpose,
-including commercial use. Finally, \Easel's source code is consciously
-designed to be read as a reference work. It reflects, in a modest way,
-the principles of ``literate programming'' espoused by Donald
+These considerations are reflected in \Easel design decisions.
+\Easel's documentation includes tutorial examples to make it easy to
+understand and get started using any given \Easel\ module, independent
+of other parts of \Easel. \Easel\ is modular, in a way that should
+enable you to extract individual files or functions for use in your
+own code, with minimum disentanglement work. \Easel\ uses some
+precepts of object-oriented design, but its objects are just C
+structures with visible, documented contents. \Easel's source code is
+consciously designed to be read as a reference work. It reflects, in a
+modest way, principles of ``literate programming'' espoused by Donald
Knuth. \Easel\ code and documentation are interwoven. Most of this
-book, in fact, has been automatically generated from \Easel's source
-code.
+book is automatically generated from \Easel's source code.
+
+
\section{Quick start}
Let's start with a quick tour. If you have any experience with the
variable quality of bioinformatics software, the first thing you want
-to know is you can get Easel compiled -- ideally without having to
-install a million dependencies first. The next thing you'll want to
-know is whether \Easel\ is going to be useful to you or not. We'll
-start with compiling it. You can compile \Easel\ and try it out
-without permanently installing it.
+to know is you can get Easel compiled -- without having to install a
+million dependencies first. The next thing you'll want to know is
+whether \Easel\ is going to be useful to you or not. We'll start with
+compiling it. You can compile \Easel\ and try it out without
+permanently installing it.
+
-\subsection{Compiling Easel}
+
+\subsection{Downloading and compiling Easel for the first time}
Easel is self-sufficient, with no dependencies other than what's
already on your system, provided you have an ANSI C99 compiler
-installed. After you obtain an \Easel\ source tarball
-\footnote{From \url{http://selab.janelia.org/easel}, for example.}, it
-should compile cleanly on any UNIX, Linux, or Mac OS/X operating
-system with this incantation (where \ccode{xxx} is a version number):
+installed. You can obtain an \Easel\ source tarball and compile it
+cleanly on any UNIX, Linux, or Mac OS/X operating system with an
+incantation like the following (where \ccode{xxx} will be the current
+version number):
\begin{cchunk}
-% tar zxf easel-xxx.tar.gz
+% wget http://eddylab.org/easel/easel.tar.gz
+% tar zxf easel.tar.gz
% cd easel-xxx
% ./configure
% make
@@ -96,13 +87,18 @@ system with this incantation (where \ccode{xxx} is a version number):
The \ccode{make check} command is optional. It runs a battery of
quality control tests. All of these should pass. You should now see
-\ccode{libeasel.a} in the directory.
+\ccode{libeasel.a} in the directory. If you look in the directory
+\ccode{miniapps}, you'll also see a bunch of small utility programs,
+the \Easel\ ``miniapps''.
There are more complicated things you can do to customize the
-\ccode{./configure} step for your needs. If you decide you want to
-install \Easel\ permanently, see the full installation instructions in
+\ccode{./configure} step for your needs. That includes customizing the
+installation locations. If you decide you want to install
+\Easel\ permanently, see the full installation instructions in
chapter~\ref{chapter:installation}.
+
+
\subsection{Cribbing from code examples}
Every source code module (that is, each \ccode{.c} file) ends with one
diff --git a/easel/documentation/macros.tex b/easel/documentation/macros.tex
index bb4908b..326a417 100644
--- a/easel/documentation/macros.tex
+++ b/easel/documentation/macros.tex
@@ -1,19 +1,21 @@
% Typography.
\newcommand{\ccode}[1]{{\smaller\texttt{#1}}}
+\newcommand{\ccodeincmd}[1]{{\texttt{#1}}}
\newcommand{\emcode}[1]{{\smaller\texttt{\textbf{#1}}}}
\newcommand{\itcode}[1]{{\smaller\texttt{\textit{#1}}}}
\newcommand{\itbfcode}[1]{{\smaller\texttt{\textit{\bfseries #1}}}}
\newcommand{\esldef}[1]{\textbf{#1}} % Define/introduce a term (to be indexed)
\newcommand{\prog}[1]{{\smaller\textsc{#1}}}
\newcommand{\eslmod}[1]{{\smaller\textsf{\textup{\textbf{#1}}}}}
+\newcommand{\eslmodincmd}[1]{{\smaller\textsf{\textup{\textbf{#1}}}}}
\newcommand{\user}[1]{\indent\indent{\small\bfseries\texttt{> #1}}}
\newcommand{\response}[1]{\indent\indent{\small\texttt{#1}}}
-\newcommand{\Easel} {{\smaller\textsc{easel}}}
-\newcommand{\HMMER} {{\smaller\textsc{hmmer}}}
-\newcommand{\Infernal}{{\smaller\textsc{infernal}}}
-\newcommand{\Pfam} {{\smaller\textsc{pfam}}}
-\newcommand{\Rfam} {{\smaller\textsc{rfam}}}
+\newcommand{\Easel} {Easel}
+\newcommand{\HMMER} {HMMER}
+\newcommand{\Infernal} {Infernal}
+\newcommand{\Pfam} {Pfam}
+\newcommand{\Rfam} {Rfam}
% \api* functions are for the API summary tables.
\newcommand{\apisubhead}[1]{\multicolumn{2}{|c|}{\rule[-0.4em]{0em}{1.5em}\textbf{#1}}}
@@ -21,9 +23,13 @@
\def\argmax{\mathop{\mathrm{argmax}}\limits}
\def\argmin{\mathop{\mathrm{argmin}}\limits}
-\DefineVerbatimEnvironment{cchunk}{Verbatim}{numbers=right,fontsize=\scriptsize,xleftmargin=1.0\parindent}%
-\DefineVerbatimEnvironment{userchunk}{Verbatim}{fontseries=b,fontsize=\small,xleftmargin=1.0\parindent}%
+\DefineVerbatimEnvironment{cchunk} {Verbatim}{fontsize=\scriptsize,numbers=left,xleftmargin=1.0\parindent}%
+\DefineVerbatimEnvironment{userchunk} {Verbatim}{fontsize=\small,fontseries=b,,xleftmargin=1.0\parindent}%
\DefineVerbatimEnvironment{responsechunk}{Verbatim}{fontsize=\small,xleftmargin=1.0\parindent}%
+\DefineVerbatimEnvironment{asciiart} {Verbatim}{fontsize=\scriptsize,xleftmargin=1.0\parindent}%
+
+% Set the color, size of the numbering of source code figures
+\renewcommand{\theFancyVerbLine}{\tiny\textcolor{SkyBlue}{\arabic{FancyVerbLine}}}
% Description-like environment for documenting functions/APIs.
diff --git a/easel/documentation/main.tex b/easel/documentation/main.tex
index 384a199..c6a2e88 100644
--- a/easel/documentation/main.tex
+++ b/easel/documentation/main.tex
@@ -3,18 +3,32 @@
% times, mathptmx, mathpazo, newcent, bookman
% xref http://www.ce.cmu.edu/~kijoo/latex2pdf.pdf
\usepackage{times}
-\usepackage{fullpage}
+%\usepackage{fullpage}
\usepackage{relsize} % the \smaller command, used in \ccode for example
\usepackage{fancyvrb}
\usepackage{array}
\usepackage[numbers,sort&compress]{natbib}
\usepackage[pdftex]{graphicx}
+\usepackage[usenames,dvipsnames]{color}
\usepackage[backref,colorlinks]{hyperref}
+\hypersetup{
+ linkcolor = RoyalBlue,
+ anchorcolor = RoyalBlue,
+ citecolor = RoyalBlue,
+ filecolor = RoyalBlue,
+ menucolor = RoyalBlue,
+ runcolor = RoyalBlue,
+ urlcolor = RoyalBlue,
+}
+
\usepackage{ifthen}
\newboolean{completedraft}
-%\setboolean{completedraft}{true} % if compiling the entire guide
-\setboolean{completedraft}{false} % if writing/testing a piece at a time
+\setboolean{completedraft}{true} % if compiling the entire guide
+%\setboolean{completedraft}{false} % if writing/testing a piece at a time...
+ % comment out the \ifthenelse
+ % around the piece you're
+ % working on.
\input{macros}
@@ -49,7 +63,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \chapter{\eslmod{easel}: the foundation}
+ \chapter{\eslmodincmd{easel}: the foundation}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{quote}
\emph{Lack of skill dictates economy of style.}
@@ -69,7 +83,15 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{sq}: single biological sequences}
+ \section{\eslmodincmd{alphabet}: digitized biosequences}
+ \input{esl_alphabet}
+ \subsection{Functions in the alphabet module}
+ \input{autotext/esl_alphabet_functions}
+}{}
+
+\ifthenelse{\boolean{completedraft}}{
+ \newpage
+ \section{\eslmodincmd{sq}: single biological sequences}
\input{esl_sq}
\subsection{Functions in the sq module}
\input{autotext/esl_sq_functions}
@@ -77,7 +99,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{msa}: Multiple sequence alignments and i/o}
+ \section{\eslmodincmd{msa}: Multiple sequence alignments and i/o}
\input{esl_msa}
\subsection{Functions in the msa module}
\input{autotext/esl_msa_functions}
@@ -85,15 +107,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{alphabet}: digitized biosequences}
- \input{esl_alphabet}
- \subsection{Functions in the alphabet module}
- \input{autotext/esl_alphabet_functions}
-}{}
-
-\ifthenelse{\boolean{completedraft}}{
- \newpage
- \section{\eslmod{randomseq}: sampling random sequences}
+ \section{\eslmodincmd{randomseq}: sampling random sequences}
\input{esl_randomseq}
\subsection{Functions in the randomseq module}
\input{autotext/esl_randomseq_functions}
@@ -101,7 +115,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{sqio}: i/o of unaligned sequence files}
+ \section{\eslmodincmd{sqio}: unaligned sequence file input/output}
\input{esl_sqio}
\subsection{Functions in the sqio module}
\input{autotext/esl_sqio_functions}
@@ -109,7 +123,15 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{ssi}: indexing flatfiles for record retrieval}
+ \section{\eslmodincmd{dsqdata}: faster sequence file input}
+ \input{esl_dsqdata}
+ \subsection{Functions in the dsqdata module}
+ \input{autotext/esl_dsqdata_functions}
+}{}
+
+\ifthenelse{\boolean{completedraft}}{
+ \newpage
+ \section{\eslmodincmd{ssi}: indexing flatfiles for record retrieval}
\input{esl_ssi}
\subsection{Functions in the ssi module}
\input{autotext/esl_ssi_functions}
@@ -123,7 +145,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{msacluster}: Clustering aligned sequence families}
+ \section{\eslmodincmd{msacluster}: Clustering aligned sequence families}
\input{esl_msacluster}
\subsection{Functions in the msacluster module}
\input{autotext/esl_msacluster_functions}
@@ -131,25 +153,32 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{msaweight}: Ad hoc sequence weighting}
+ \section{\eslmodincmd{msaweight}: Ad hoc sequence weighting}
+
\begin{quote}
\emph{... as if someone were to buy several copies of the morning
newspaper to assure himself that what is said is true.}\\
\hspace*{1em}\hfill -- Ludwig Wittgenstein \citep[cited in]{Altschul89}
\end{quote}
+
\input{esl_msaweight}
\subsection{Functions in the msaweight module}
\input{autotext/esl_msaweight_functions}
}{}
-%\ifthenelse{\boolean{completedraft}}{
+\ifthenelse{\boolean{completedraft}}{
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Multiple sequence alignment formats}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \section{\eslmod{msafile}: input/output of multiple sequence alignments}
- \input{esl_msafile}
-%}{}
+ \section{\eslmodincmd{msafile}: input/output of multiple sequence alignments}
+% \input{esl_msafile}
+
+% \subsection{Functions in the msafile module}
+% \input{autotext/esl_msafile_functions}
+
+
+}{}
%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% \chapter{Pairwise sequence alignment}
@@ -166,7 +195,7 @@
%% \end{quote}
%% \newpage
-%% \section{\eslmod{swat}: Smith/Waterman local alignment}
+%% \section{\eslmodincmd{swat}: Smith/Waterman local alignment}
%% \input{esl_swat}
%% \subsection{Functions in the swat module}
%% \input{autotext/esl_swat_functions}
@@ -186,7 +215,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{scorematrix}: Pairwise alignment scores}
+ \section{\eslmodincmd{scorematrix}: Pairwise alignment scores}
\input{esl_scorematrix}
\subsection{Functions in the scorematrix module}
\input{autotext/esl_scorematrix_functions}
@@ -194,7 +223,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{ratematrix}: Continuous-time Markov models of evolution}
+ \section{\eslmodincmd{ratematrix}: Continuous-time Markov models of evolution}
\input{esl_ratematrix}
\subsection{Functions in the ratematrix module}
\input{autotext/esl_ratematrix_functions}
@@ -202,7 +231,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{paml}: Reading data files from PAML}
+ \section{\eslmodincmd{paml}: Reading data files from PAML}
\input{esl_paml}
\subsection{Functions in the paml module}
\input{autotext/esl_paml_functions}
@@ -216,7 +245,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{wuss}: RNA secondary structure annotation}
+ \section{\eslmodincmd{wuss}: RNA secondary structure annotation}
\input{esl_wuss}
\subsection{Functions in the wuss module}
\input{autotext/esl_wuss_functions}
@@ -230,7 +259,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{vectorops}: Vector operations}
+ \section{\eslmodincmd{vectorops}: Vector operations}
\input{esl_vectorops}
\subsection{Functions in the vectorops module}
\input{autotext/esl_vectorops_functions}
@@ -238,7 +267,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{dmatrix}: 2D matrices and linear algebra}
+ \section{\eslmodincmd{dmatrix}: 2D matrices and linear algebra}
\input{esl_dmatrix}
\subsection{Functions in the dmatrix module}
\input{autotext/esl_dmatrix_functions}
@@ -246,7 +275,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{minimizer}: Conjugate gradient descent}
+ \section{\eslmodincmd{minimizer}: Conjugate gradient descent}
\input{esl_minimizer}
\subsection{Functions in the minimizer module}
\input{autotext/esl_minimizer_functions}
@@ -254,7 +283,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{rootfinder}: One-dimensional rootfinding}
+ \section{\eslmodincmd{rootfinder}: One-dimensional rootfinding}
\input{esl_rootfinder}
\subsection{Functions in the rootfinder module}
\input{autotext/esl_rootfinder_functions}
@@ -268,7 +297,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{tree}: Phylogenetic trees}
+ \section{\eslmodincmd{tree}: Phylogenetic trees}
\input{esl_tree}
\subsection{Functions in the tree module}
\input{autotext/esl_tree_functions}
@@ -276,7 +305,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
- \section{\eslmod{distance}: Distance calculations}
+ \section{\eslmodincmd{distance}: Distance calculations}
\input{esl_distance}
\subsection{Functions in the distance module}
\input{autotext/esl_distance_functions}
@@ -287,12 +316,18 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Statistics modules}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ \begin{quote}
+ \emph{In any case, my experience is that while engaged in
+ cryptanalysis I started to believe in statistics!}\\
+ \hspace*{1em}\hfill -- Albrecht Beutelspacher, \emph{Cryptology}
+ \end{quote}
+
\input{statistics}
}{}
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{stats}: Basic statistics routines}
+\section{\eslmodincmd{stats}: Basic statistics routines}
\input{esl_stats}
\subsection{Functions in the stats module}
\input{autotext/esl_stats_functions}
@@ -300,7 +335,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{histogram}: Collecting histograms}
+\section{\eslmodincmd{histogram}: Collecting histograms}
\input{esl_histogram}
\subsection{Functions in the histogram module}
\input{autotext/esl_histogram_functions}
@@ -308,7 +343,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{dirichlet}: Beta, Gamma, Dirichlet densities and priors}
+\section{\eslmodincmd{dirichlet}: Beta, Gamma, Dirichlet densities and priors}
\input{esl_dirichlet}
\subsection{Functions in the dirichlet module}
\input{autotext/esl_dirichlet_functions}
@@ -316,7 +351,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{exponential}: Exponential distributions}
+\section{\eslmodincmd{exponential}: Exponential distributions}
\input{esl_exponential}
\subsection{Functions in the exponential module}
\input{autotext/esl_exponential_functions}
@@ -324,7 +359,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{gamma}: Gamma distributions}
+\section{\eslmodincmd{gamma}: Gamma distributions}
\input{esl_gamma}
\subsection{Functions in the gamma module}
\input{autotext/esl_gamma_functions}
@@ -332,7 +367,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{gev}: Generalized extreme value distributions}
+\section{\eslmodincmd{gev}: Generalized extreme value distributions}
\input{esl_gev}
\subsection{Functions in the gev module}
\input{autotext/esl_gev_functions}
@@ -340,7 +375,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{gumbel}: Type I extreme value (Gumbel) statistics}
+\section{\eslmodincmd{gumbel}: Type I extreme value (Gumbel) statistics}
\input{esl_gumbel}
\subsection{Functions in the gumbel module}
\input{autotext/esl_gumbel_functions}
@@ -348,7 +383,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{hyperexp}: Hyperexponential distributions}
+\section{\eslmodincmd{hyperexp}: Hyperexponential distributions}
\input{esl_hyperexp}
\subsection{Functions in the hyperexp module}
\input{autotext/esl_hyperexp_functions}
@@ -356,7 +391,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{mixdchlet}: Mixture Dirichlet distributions}
+\section{\eslmodincmd{mixdchlet}: Mixture Dirichlet distributions}
%\input{esl_mixdchlet}
\subsection{Functions in the mixdchlet module}
%\input{autotext/esl_mixdchlet_functions}
@@ -364,15 +399,15 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{mixgev}: Mixture generalized extreme value distributions}
+\section{\eslmodincmd{mixgev}: Mixture generalized extreme value distributions}
%\input{esl_mixgev}
-\subsection{Functions in the mixgev module}
-\input{autotext/esl_mixgev_functions}
+%\subsection{Functions in the mixgev module}
+%\input{autotext/esl_mixgev_functions}
}{}
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{normal}: Normal (Gaussian) distributions}
+\section{\eslmodincmd{normal}: Normal (Gaussian) distributions}
\input{esl_normal}
\subsection{Functions in the normal module}
\input{autotext/esl_normal_functions}
@@ -380,7 +415,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{stretchexp}: Stretched exponential distributions}
+\section{\eslmodincmd{stretchexp}: Stretched exponential distributions}
\input{esl_stretchexp}
\subsection{Functions in the stretchexp module}
\input{autotext/esl_stretchexp_functions}
@@ -388,7 +423,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{weibull}: Weibull distributions}
+\section{\eslmodincmd{weibull}: Weibull distributions}
\input{esl_weibull}
\subsection{Functions in the weibull module}
\input{autotext/esl_weibull_functions}
@@ -403,7 +438,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{buffer}: reading from any sort of input}
+\section{\eslmodincmd{buffer}: reading from any sort of input}
\input{esl_buffer}
\subsection{Functions in the buffer module}
\input{autotext/esl_buffer_functions}
@@ -411,7 +446,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{cluster}: single linkage clustering}
+\section{\eslmodincmd{cluster}: single linkage clustering}
\input{esl_cluster}
\subsection{Functions in the cluster module}
\input{autotext/esl_cluster_functions}
@@ -419,7 +454,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{fileparser}: token-based data file input}
+\section{\eslmodincmd{fileparser}: token-based data file input}
\input{esl_fileparser}
\subsection{Functions in the fileparser module}
\input{autotext/esl_fileparser_functions}
@@ -427,7 +462,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{getopts}: command line parsing}
+\section{\eslmodincmd{getopts}: command line parsing}
\input{esl_getopts}
\subsection{Functions in the getopts module}
\input{autotext/esl_getopts_functions}
@@ -435,7 +470,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{keyhash}: associative hashes}
+\section{\eslmodincmd{keyhash}: associative hashes}
\input{esl_keyhash}
\subsection{Functions in the keyhash module}
\input{autotext/esl_keyhash_functions}
@@ -443,10 +478,11 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{random}: pseudorandom numbers and sampling}
-\begin{quote}
-\emph{Nec Babylonios temptaris numeros.} \hspace{3em} -- Horace, Ode
-1.11. \\
+\section{\eslmodincmd{random}: pseudorandom numbers and sampling}
+ \begin{quote}
+ \emph{Nec Babylonios temptaris numeros. \\
+ (Don't attempt the Babylonian numbers.)}\\
+ \hspace{3em} -- Horace, Ode 1.11. \\
\end{quote}
\input{esl_random}
\subsection{Functions in the random (rnd) module}
@@ -456,7 +492,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{regexp}: regular expression matching}
+\section{\eslmodincmd{regexp}: regular expression matching}
\input{esl_regexp}
\subsection{Functions in the regexp module}
\input{autotext/esl_regexp_functions}
@@ -464,7 +500,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{stack}: pushdown stacks for integers, chars, and pointers}
+\section{\eslmodincmd{stack}: pushdown stacks for integers, chars, and pointers}
\input{esl_stack}
\subsection{Functions in the stack module}
\input{autotext/esl_stack_functions}
@@ -472,7 +508,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{stopwatch}: timing parts of programs}
+\section{\eslmodincmd{stopwatch}: timing parts of programs}
\input{esl_stopwatch}
\subsection{Functions in the stopwatch module}
\input{autotext/esl_stopwatch_functions}
@@ -487,7 +523,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{sse}: SIMD minivectors on Intel and AMD }
+\section{\eslmodincmd{sse}: SIMD minivectors on Intel and AMD }
\input{esl_sse}
\subsection{Functions in the sse module}
\input{autotext/esl_sse_functions}
@@ -495,7 +531,7 @@
\ifthenelse{\boolean{completedraft}}{
\newpage
-\section{\eslmod{mpi}: MPI parallelization}
+\section{\eslmodincmd{mpi}: MPI parallelization}
\input{esl_mpi}
\subsection{Functions in the MPI module}
\input{autotext/esl_mpi_functions}
@@ -535,6 +571,15 @@
\newpage
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Developer's guide}
+
+\begin{quote}
+ \emph{This is the great nightmare, when you're doing something long
+ and hard, is you're terrified that it will be perceived as
+ gratuitously hard and difficult, that it is some
+ avant-garde-for-its-own-sake kind of exercise.}\\
+ \hspace*{1em}\hfill -- David Foster Wallace, speaking of \emph{Infinite Jest}
+\end{quote}
+
\input{codestyle}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
}{}
@@ -560,9 +605,10 @@
}{}
\newpage
-\newcommand{\bibfont}{\footnotesize}
+%\newcommand{\bibfont}{\footnotesize}
\bibliographystyle{abbrvnat}
-\bibliography{master,lab,books,new}
+%\bibliography{master,lab,books,new}
+\bibliography{master,lab,books}
\end{document}
diff --git a/easel/documentation/titlepage.tex b/easel/documentation/titlepage.tex
index f9ddd9d..55ee2ec 100644
--- a/easel/documentation/titlepage.tex
+++ b/easel/documentation/titlepage.tex
@@ -12,16 +12,18 @@
\vspace*{\fill}
\begin{center}
-\url{http://selab.janelia.org/easel/}\\
-Version 0.1; March 2008 \\
+\url{http://bioeasel.org/}\\
+Version 0.3dev; February 2016 \\
\vspace*{\fill}
Sean R. Eddy\\
-HHMI Janelia Farm Research Campus\\
-19700 Helix Drive\\
-Ashburn VA 20147\\
-\url{http://selab.janelia.org/}\\
+HHMI/Harvard University\\
+Dept. of Molecular and Cellular Biology\\
+Biological Laboratories 1008B\\
+16 Divinity Avenue\\
+Cambridge, Massachusetts 02138\\
+\url{http://eddylab.org/}\\
\end{center}
\vspace*{\fill}
diff --git a/easel/easel.c b/easel/easel.c
index e155624..32513a4 100644
--- a/easel/easel.c
+++ b/easel/easel.c
@@ -9,11 +9,10 @@
* 6. Additional string functions, esl_str*()
* 7. File path/name manipulation, including tmpfiles.
* 8. Typed comparison functions.
- * 9. Commonly used background composition (iid) frequencies.
- * 10. Unit tests.
- * 11. Test driver.
- * 12. Examples.
- * 13. Copyright and license.
+ * 9. Unit tests.
+ * 10. Test driver.
+ * 11. Examples.
+ * 12. Copyright and license.
*/
#include "esl_config.h"
@@ -33,6 +32,10 @@
#include <sys/types.h>
#endif
+#ifdef HAVE_MPI
+#include <mpi.h> /* MPI_Abort() may be used in esl_fatal() or other program killers */
+#endif
+
#include "easel.h"
@@ -41,6 +44,36 @@
*****************************************************************/
static esl_exception_handler_f esl_exception_handler = NULL;
+/* Function: esl_fail()
+ * Synopsis: Handle a normal failure code/message before returning to caller.
+ *
+ * Purpose: A "failure" is a normal error that we want to handle
+ * without terminating the program; we're going to return
+ * control to the caller with a nonzero error code and
+ * (optionally) an informative error message formatted
+ * in <errbuf>.
+ *
+ * <esl_fail()> is called internally by the <ESL_FAIL()>
+ * and <ESL_XFAIL()> macros (see easel.h). The reason to
+ * have the failure macros call such a simple little
+ * function is to give us a convenient debugging
+ * breakpoint. For example, in a <_Validate()> routine that
+ * needs to do a normal return to a caller, you can set a
+ * breakpoint in <esl_fail()> to see exactly where the
+ * validation failed.
+ */
+void
+esl_fail(char *errbuf, const char *format, ...)
+{
+ if (format) {
+ va_list ap;
+ va_start(ap, format);
+ if (errbuf) vsnprintf(errbuf, eslERRBUFSIZE, format, ap);
+ va_end(ap);
+ }
+}
+
+
/* Function: esl_exception()
* Synopsis: Throw an exception.
*
@@ -53,8 +86,9 @@ static esl_exception_handler_f esl_exception_handler = NULL;
* a non-fatal exception handler.
*
* Easel programs normally call one of the exception-handling
- * wrappers <ESL_EXCEPTION()> or <ESL_XEXCEPTION()>, rather
- * than calling <esl_exception> directly.
+ * wrappers <ESL_EXCEPTION()> or <ESL_XEXCEPTION()>, which
+ * handle the overhead of passing in <use_errno>, <sourcefile>,
+ * and <sourceline>. <esl_exception> is rarely called directly.
*
* If no custom exception handler has been registered, the
* default behavior is to print a brief message to <stderr>
@@ -65,6 +99,10 @@ static esl_exception_handler_f esl_exception_handler = NULL;
*
* Fatal exception (source file foo.c, line 42):
* Something wicked this way came.
+ *
+ * Additionally, in an MPI parallel program, the default fatal
+ * handler aborts all processes (with <MPI_Abort()>), not just
+ * the one that called <esl_exception()>.
*
* Args: errcode - Easel error code, such as eslEINVAL. See easel.h.
* use_errno - if TRUE, also use perror() to report POSIX errno message.
@@ -82,6 +120,9 @@ void
esl_exception(int errcode, int use_errno, char *sourcefile, int sourceline, char *format, ...)
{
va_list argp;
+#ifdef HAVE_MPI
+ int mpiflag;
+#endif
if (esl_exception_handler != NULL)
{
@@ -99,6 +140,10 @@ esl_exception(int errcode, int use_errno, char *sourcefile, int sourceline, char
fprintf(stderr, "\n");
if (use_errno && errno) perror("system error");
fflush(stderr);
+#ifdef HAVE_MPI
+ MPI_Initialized(&mpiflag); /* we're assuming we can do this, even in a corrupted, dying process...? */
+ if (mpiflag) MPI_Abort(MPI_COMM_WORLD, 1);
+#endif
abort();
}
}
@@ -212,10 +257,17 @@ esl_nonfatal_handler(int errcode, int use_errno, char *sourcefile, int sourcelin
* AND the error is guaranteed to be a coding error. For an example,
* see <esl_opt_IsOn()>, which triggers a violation if the code
* checks for an option that isn't in the code.
+ *
+ * In an MPI-parallel program, the entire job is
+ * terminated; all processes are aborted (<MPI_Abort()>,
+ * not just the one that called <esl_fatal()>.
+ *
+ * If caller is feeling lazy and just wants to terminate
+ * without any informative message, use <abort()>.
*
* Args: format - <sprintf()> formatted exception message, followed
* by any additional necessary arguments for that
- * message.
+ * message.
*
* Returns: (void)
*
@@ -225,12 +277,20 @@ void
esl_fatal(const char *format, ...)
{
va_list argp;
+#ifdef HAVE_MPI
+ int mpiflag;
+#endif
va_start(argp, format);
vfprintf(stderr, format, argp);
va_end(argp);
fprintf(stderr, "\n");
fflush(stderr);
+
+#ifdef HAVE_MPI
+ MPI_Initialized(&mpiflag);
+ if (mpiflag) MPI_Abort(MPI_COMM_WORLD, 1);
+#endif
exit(1);
}
/*---------------- end, error handling conventions --------------*/
@@ -412,6 +472,118 @@ esl_usage(FILE *fp, char *progname, char *usage)
if (appname) free(appname);
return status;
}
+
+
+/* Function: esl_dataheader()
+ * Synopsis: Standard #-prefixed header lines for output data table
+ *
+ * Purpose: Print column headers for a space-delimited, fixed-column-width
+ * data table to <fp>.
+ *
+ * Takes a variable number of argument pairs. Each pair is
+ * <width, label>. The absolute value of <width> is the max
+ * width of the column. <label> is the column label.
+ *
+ * If <width> is negative, left justify the label. (This is
+ * supposed to mirror the %-8s vs %8s of a printf format.)
+ *
+ * Caller marks the end of the argument list
+ * with a 0 sentinel.
+ *
+ * Example: <esl_dataheader(stdout, 8, "name", 3, "A", -4, "B", 0)>
+ * gives three columns:
+ *
+ * \begin{cchunk}
+ * # name A B
+ * #------- --- ----
+ * \end{cchunk}
+ *
+ * The <width> arguments match the widths given in
+ * <fprintf()>'s or whatever generates the data rows.
+ * Because the first header line is prefixed by \verb+#+, the
+ * first column's width argument is inclusive of these two
+ * extra chars, and therefore the first column label must
+ * have no more than its <width>-2 chars. For all other
+ * column labels, a label's length cannot exceed its
+ * <width>.
+ *
+ * Up to 1024 columns are allowed. (The only reason there's
+ * a limit is because you're going to forget to add the 0
+ * sentinel, and we don't want to risk a <while(1)> infinite
+ * loop.)
+ *
+ * Args: <fp> : output stream
+ * [<width>, <label]... : width, label pairs
+ * 0 : sentinel for end of argument list
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEINVAL> if a label is too wide for its width, or if
+ * the number of columns exceeds the max limit.
+ * <eslEWRITE> if a write to <fp> fails, which can happen
+ * if a disk fills up, for example.
+ */
+int
+esl_dataheader(FILE *fp, ...)
+{
+ va_list ap, ap2;
+ int width, len;
+ char *s;
+ int col = 0;
+ int maxcols = 1024; // limit, to avoid scary while(1) alternative
+ int leftjustify;
+ int status;
+
+ va_start(ap, fp);
+ va_copy(ap2, ap);
+ if ( fputc('#', fp) == EOF) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ for (col = 0; col < maxcols; col++)
+ {
+ width = va_arg(ap, int);
+ if (width == 0) break;
+ if (width < 0) { leftjustify = TRUE; width = -width; }
+ else { leftjustify = FALSE; }
+ if (col == 0) width -= 2; // First column header -2 char for the "# " prefix
+
+ s = va_arg(ap, char *);
+ len = strlen(s);
+ if (len > width) {
+ if (col == 0) ESL_XEXCEPTION(eslEINVAL, "esl_dataheader(): first arg (%s) too wide for %d-char column ('# ' leader took 2 chars)", col, s, width+2);
+ else ESL_XEXCEPTION(eslEINVAL, "esl_dataheader(): arg %d (%s) too wide for %d-char column", col, s, width);
+ }
+
+ if (leftjustify) { if ( fprintf(fp, " %-*s", width, s) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); }
+ else { if ( fprintf(fp, " %*s", width, s) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); }
+ }
+ if (col == maxcols) ESL_XEXCEPTION( eslEINVAL, "esl_dataheader(): too many args");
+ if ( fputc('\n', fp) == EOF) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+
+ maxcols = col;
+ for (col = 0; col < maxcols; col++)
+ {
+ width = va_arg(ap2, int);
+ if (width < 0) width = -width;
+ if (col == 0) width -= 1;
+ (void) va_arg(ap2, char *);
+
+ if (col == 0) { if ( fputc('#', fp) == EOF) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
+ else { if ( fputc(' ', fp) == EOF) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
+ while (width--)
+ if ( fputc('-', fp) == EOF) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ }
+ if (fputc('\n', fp) == EOF) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ va_end(ap);
+ va_end(ap2);
+ return eslOK;
+
+ ERROR:
+ va_end(ap);
+ va_end(ap2);
+ return status;
+}
+
+
/*-------------------- end, standard miniapp banner --------------------------*/
@@ -545,19 +717,18 @@ esl_strdup(const char *s, int64_t n, char **ret_dup)
int status;
char *new = NULL;
- if (ret_dup != NULL) *ret_dup = NULL;
- if (s == NULL) return eslOK;
+ if (s == NULL) {*ret_dup = NULL; return eslOK; }
if (n < 0) n = strlen(s);
ESL_ALLOC(new, sizeof(char) * (n+1));
strcpy(new, s);
- if (ret_dup != NULL) *ret_dup = new; else free(new);
+ *ret_dup = new;
return eslOK;
ERROR:
- if (new != NULL) free(new);
- if (ret_dup != NULL) *ret_dup = NULL;
+ if (new) free(new);
+ *ret_dup = NULL;
return status;
}
@@ -743,6 +914,8 @@ esl_strmapcat_noalloc(const ESL_DSQ *inmap, char *dest, int64_t *ldest, const ch
for (xpos = *ldest, cpos = 0; cpos < lsrc; cpos++)
{
+ if (! isascii(src[cpos])) { dest[xpos++] = inmap[0]; status = eslEINVAL; continue; }
+
x = inmap[(int) src[cpos]];
if (x <= 127) dest[xpos++] = x;
else switch (x) {
@@ -857,6 +1030,10 @@ esl_strtok_adv(char **s, char *delim, char **ret_tok, int *opt_toklen, char *opt
int n = 0;
int status = eslEOL; /* unless proven otherwise */
+ /* contract checks */
+ ESL_DASSERT1(( s != NULL ));
+ ESL_DASSERT1(( delim != NULL ));
+
tok += strspn(tok, delim);
if (! *tok) tok = NULL; /* if *tok = 0, EOL, no token left */
else
@@ -946,16 +1123,16 @@ esl_vsprintf(char **ret_s, const char *format, va_list *ap)
if ((n2 = vsnprintf(s, n1+1, format, *ap)) >= n1)
{
ESL_REALLOC(s, sizeof(char) * (n2+1));
- if (vsnprintf(s, n2+1, format, ap2) == -1) ESL_EXCEPTION(eslESYS, "vsnprintf() failed");
+ if (vsnprintf(s, n2+1, format, ap2) == -1) ESL_XEXCEPTION(eslESYS, "vsnprintf() failed");
}
- else if (n2 == -1) ESL_EXCEPTION(eslESYS, "vsnprintf() failed");
+ else if (n2 == -1) ESL_XEXCEPTION(eslESYS, "vsnprintf() failed");
va_end(ap2);
*ret_s = s;
return eslOK;
ERROR:
- if (s != NULL) free(s);
+ if (s) free(s);
va_end(ap2);
*ret_s = NULL;
return status;
@@ -1129,91 +1306,62 @@ esl_str_IsBlank(char *s)
}
/* Function: esl_str_IsInteger()
- * Synopsis: Return TRUE if <s> is an integer; else FALSE.
+ * Synopsis: Return TRUE if <s> represents an integer; else FALSE.
*
* Purpose: Given a NUL-terminated string <s>, return TRUE
- * if the complete string is convertible to an integer
- * by the rules of <atoi()>.
+ * if the complete string is convertible to a base-10 integer
+ * by the rules of <strtol()> or <atoi()>.
*
- * Leading whitespace is skipped. A leading sign character
- * + or - is allowed. A prefix of 0x or 0X indicates
- * a hexadecimal number follows; a prefix of 0 indicates
- * that an octal number follows.
+ * Leading and trailing whitespace is allowed, but otherwise
+ * the entire string <s> must be convertable. (Unlike <strtol()>
+ * itself, which will convert a prefix. ' 99 foo' converts
+ * to 99, but <esl_str_IsInteger()> will return FALSE.
*
* If <s> is <NULL>, FALSE is returned.
*/
int
esl_str_IsInteger(char *s)
{
- int hex = FALSE;
-
- if (s == NULL) return FALSE;
- while (isspace((int) (*s))) s++; /* skip whitespace */
- if (*s == '-' || *s == '+') s++; /* skip leading sign */
- /* skip leading conversion signals */
- if ((strncmp(s, "0x", 2) == 0 && (int) strlen(s) > 2) ||
- (strncmp(s, "0X", 2) == 0 && (int) strlen(s) > 2))
- {
- s += 2;
- hex = 1;
- }
- else if (*s == '0' && (int) strlen(s) > 1)
- s++;
- /* examine remainder for garbage chars */
- if (!hex) while (*s != '\0') { if (!isdigit ((int) (*s))) return FALSE; s++; }
- else while (*s != '\0') { if (!isxdigit((int) (*s))) return FALSE; s++; }
+ char *endp;
+
+ if (s == NULL) return FALSE; /* it's NULL */
+ (void) strtol(s, &endp, 10); /* don't need result itself, discard to void */
+ if (endp == s) return FALSE; /* strtol() can't convert it */
+ for (s = endp; *s != '\0'; s++)
+ if (! isspace(*s)) return FALSE; /* it has trailing nonconverted nonwhitespace */
return TRUE;
}
/* Function: esl_str_IsReal()
- * Synopsis: Return TRUE if <s> is a real number; else FALSE.
+ * Synopsis: Return TRUE if string <s> represents a real number; else FALSE.
*
* Purpose: Given a NUL-terminated string <s>, return <TRUE>
- * if the string is convertible to a floating-point
- * real number by the rules of <atof()>.
+ * if the string is completely convertible to a floating-point
+ * real number by the rules of <strtod()> and <atof()>.
+ * (Which allow for exponential forms, hexadecimal forms,
+ * and case-insensitive INF, INFINITY, NAN, all w/ optional
+ * leading +/- sign.)
+ *
+ * No trailing garbage is allowed, unlike <strtod()>. The
+ * entire string must be convertible, allowing leading and
+ * trailing whitespace is allowed. '99.0 foo' converts
+ * to 99.0 with <strtod()> but is <FALSE> for
+ * <esl_str_IsReal()>. ' 99.0 ' is <TRUE>.
*
- * Leading space is skipped. A leading sign of either
- * + or - is allowed. Scientific notation is expressed
- * with either e or E, as in 1.0e12 or 2.1E42.
+ * If <s> is <NULL>, return <FALSE>.
*/
int
esl_str_IsReal(char *s)
{
- int gotdecimal = 0;
- int gotexp = 0;
- int gotreal = 0;
-
- if (s == NULL) return FALSE;
-
- while (isspace((int) (*s))) s++; /* skip leading whitespace */
- if (*s == '-' || *s == '+') s++; /* skip leading sign */
-
- /* Examine remainder for garbage. Allowed one '.' and
- * one 'e' or 'E'; if both '.' and e/E occur, '.'
- * must be first.
- */
- while (*s != '\0')
- {
- if (isdigit((int) (*s))) gotreal++;
- else if (*s == '.')
- {
- if (gotdecimal) return FALSE; /* can't have two */
- if (gotexp) return FALSE; /* e/E preceded . */
- else gotdecimal++;
- }
- else if (*s == 'e' || *s == 'E')
- {
- if (gotexp) return FALSE; /* can't have two */
- else gotexp++;
- }
- else if (isspace((int) (*s)))
- break;
- s++;
- }
-
- while (isspace((int) (*s))) s++; /* skip trailing whitespace */
- if (*s == '\0' && gotreal) return TRUE;
- else return FALSE;
+ char *endp;
+ double val;
+
+ if (! s) return FALSE; /* <s> is NULL */
+ val = strtod(s, &endp);
+ if (val == 0.0f && endp == s) return FALSE; /* strtod() can't convert it */
+ for (s = endp; *s != '\0'; s++)
+ if (! isspace(*s)) return FALSE; /* it has trailing nonconverted nonwhitespace */
+ return TRUE;
}
@@ -1439,11 +1587,19 @@ esl_FileConcat(const char *dir, const char *file, char **ret_path)
*
* For example, if <filename> is "foo" and <sfx> is "ssi",
* returns "foo.ssi". If <filename> is "foo.db" and <sfx>
- * is "idx", returns "foo.idx".
+ * is "idx", returns "foo.idx". You can remove a suffix
+ * too; if <filename> is "foo.db", and <sfx> is "", the
+ * result is "foo".
+ *
+ * Caller can either ask for <*ret_newpath> to be a new
+ * allocation by passing <*ret_newpath = NULL>, or can
+ * provide a ptr to a preallocated space.
*
* Returns: <eslOK> on success, and <ret_newpath> is set
- * string "<base_filename>.<sfx>". Caller must <free()>
- * this string.
+ * string "<base_filename>.<sfx>". Caller is
+ * responsible for free'ing this string, whether it
+ * provided it as preallocated space or asked for a new
+ * allocation.
*
* Throws: <eslEMEM> on allocation failure.
*
@@ -1452,30 +1608,27 @@ esl_FileConcat(const char *dir, const char *file, char **ret_path)
int
esl_FileNewSuffix(const char *filename, const char *sfx, char **ret_newpath)
{
- char *new = NULL;
+ char *new = *ret_newpath; // caller either provides memory, or asks for allocation w/ <NULL>
char *lastdot;
int nf;
int status;
- if (ret_newpath != NULL) *ret_newpath = NULL;
-
lastdot = strrchr(filename, '.'); /* check for suffix to replace */
if (lastdot != NULL &&
strchr(lastdot, eslDIRSLASH) != NULL)
lastdot = NULL; /*foo.1/filename case - don't be fooled.*/
nf = (lastdot == NULL)? strlen(filename) : lastdot-filename;
- ESL_ALLOC(new, sizeof(char) * (nf+strlen(sfx)+2)); /* '.' too */
+ if (! new) ESL_ALLOC(new, sizeof(char) * (nf+strlen(sfx)+2)); /* '.' too */
strncpy(new, filename, nf);
*(new+nf) = '.';
strcpy(new+nf+1, sfx);
- if (ret_newpath != NULL) *ret_newpath = new; else free(new);
+ *ret_newpath = new;
return eslOK;
ERROR:
- if (new != NULL) free(new);
- if (ret_newpath != NULL) *ret_newpath = NULL;
+ if (!(*ret_newpath) && new) free(new);
return status;
}
@@ -1846,7 +1999,7 @@ esl_FCompare(float a, float b, float tol)
* approximate equality, by absolute difference. Return
* <eslOK> if equal, <eslFAIL> if not.
*
- * Equality is defined as <fabs(a-b) \leq tol> for finite
+ * Equality is defined as <fabs(a-b) $\leq$ tol> for finite
* <a,b>; or <inf=inf>, <NaN=NaN> when either value is not
* finite.
*
@@ -1912,161 +2065,46 @@ esl_CCompare(char *s1, char *s2)
+
+
+
/*****************************************************************
- * 9. Commonly used background composition (iid) frequencies.
+ * 9. Unit tests.
*****************************************************************/
+#ifdef eslEASEL_TESTDRIVE
-/* Function: esl_composition_BL62()
- *
- * Purpose: Sets <f> to the background frequencies used in
- * \citep{Henikoff92} to calculate the BLOSUM62
- * substitution matrix. Caller provides space in <f>
- * allocated for at least 20 doubles. The entries are in
- * alphabetic order A..Y, same as the standard Easel amino
- * acid alphabet order.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_composition_BL62(double *f)
+static void
+utest_IsInteger(void)
{
- f[0] = 0.074;
- f[1] = 0.025;
- f[2] = 0.054;
- f[3] = 0.054;
- f[4] = 0.047;
- f[5] = 0.074;
- f[6] = 0.026;
- f[7] = 0.068;
- f[8] = 0.058;
- f[9] = 0.099;
- f[10] = 0.025;
- f[11] = 0.045;
- f[12] = 0.039;
- f[13] = 0.034;
- f[14] = 0.052;
- f[15] = 0.057;
- f[16] = 0.051;
- f[17] = 0.073;
- f[18] = 0.013;
- f[19] = 0.032;
- return eslOK;
-}
+ char *goodones[] = { " 99 " };
+ char *badones[] = { "", " 99 foo " };
+ int ngood = sizeof(goodones) / sizeof(char *);
+ int nbad = sizeof(badones) / sizeof(char *);
+ int i;
-/* Function: esl_composition_WAG()
- *
- * Purpose: Sets <f> to the background frequencies used in
- * \citep{WhelanGoldman01} to calculate the WAG rate
- * matrix. Caller provides space in <f> allocated for at
- * least 20 doubles. The entries are in alphabetic order
- * A..Y, same as the standard Easel amino acid alphabet
- * order.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_composition_WAG(double *f)
-{
- f[0] = 0.086628; /* A */
- f[1] = 0.019308; /* C */
- f[2] = 0.057045; /* D */
- f[3] = 0.058059; /* E */
- f[4] = 0.038432; /* F */
- f[5] = 0.083252; /* G */
- f[6] = 0.024431; /* H */
- f[7] = 0.048466; /* I */
- f[8] = 0.062029; /* K */
- f[9] = 0.086209; /* L */
- f[10] = 0.019503; /* M */
- f[11] = 0.039089; /* N */
- f[12] = 0.045763; /* P */
- f[13] = 0.036728; /* Q */
- f[14] = 0.043972; /* R */
- f[15] = 0.069518; /* S */
- f[16] = 0.061013; /* T */
- f[17] = 0.070896; /* V */
- f[18] = 0.014386; /* W */
- f[19] = 0.035274; /* Y */
- return eslOK;
+ for (i = 0; i < ngood; i++)
+ if (! esl_str_IsInteger(goodones[i])) esl_fatal("esl_str_IsInteger() should have recognized %s", goodones[i]);
+ for (i = 0; i < nbad; i++)
+ if ( esl_str_IsInteger(badones[i])) esl_fatal("esl_str_IsInteger() should not have recognized %s", badones[i]);
}
-/* Function: esl_composition_SW34()
- *
- * Purpose: Sets <f> to the background frequencies observed in
- * Swiss-Prot release 34 (21.2M residues). Caller provides
- * space in <f> allocated for at least 20 doubles. The
- * entries are in alphabetic order A..Y, same as the
- * standard Easel amino acid alphabet order.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_composition_SW34(double *f)
+static void
+utest_IsReal(void)
{
- f[0] = 0.075520; /* A */
- f[1] = 0.016973; /* C */
- f[2] = 0.053029; /* D */
- f[3] = 0.063204; /* E */
- f[4] = 0.040762; /* F */
- f[5] = 0.068448; /* G */
- f[6] = 0.022406; /* H */
- f[7] = 0.057284; /* I */
- f[8] = 0.059398; /* K */
- f[9] = 0.093399; /* L */
- f[10] = 0.023569; /* M */
- f[11] = 0.045293; /* N */
- f[12] = 0.049262; /* P */
- f[13] = 0.040231; /* Q */
- f[14] = 0.051573; /* R */
- f[15] = 0.072214; /* S */
- f[16] = 0.057454; /* T */
- f[17] = 0.065252; /* V */
- f[18] = 0.012513; /* W */
- f[19] = 0.031985; /* Y */
- return eslOK;
-}
-
+ char *goodones[] = { "99", " \t 99", "-99.00", "+99.00e-12", "+0xabc.defp-12", " +INFINITY", "-nan" };
+ char *badones[] = { "",
+ "FIBB_BOVIN/67-212", /* testing for a fixed bug, 17 Dec 2012, reported by ER */
+ };
+ int ngood = sizeof(goodones) / sizeof(char *);
+ int nbad = sizeof(badones) / sizeof(char *);
+ int i;
-/* Function: esl_composition_SW50()
- *
- * Purpose: Sets <f> to the background frequencies observed in
- * Swiss-Prot release 50.8 (86.0M residues; Oct 2006).
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_composition_SW50(double *f)
-{
- f[0] = 0.0787945; /* A */
- f[1] = 0.0151600; /* C */
- f[2] = 0.0535222; /* D */
- f[3] = 0.0668298; /* E */
- f[4] = 0.0397062; /* F */
- f[5] = 0.0695071; /* G */
- f[6] = 0.0229198; /* H */
- f[7] = 0.0590092; /* I */
- f[8] = 0.0594422; /* K */
- f[9] = 0.0963728; /* L */
- f[10]= 0.0237718; /* M */
- f[11]= 0.0414386; /* N */
- f[12]= 0.0482904; /* P */
- f[13]= 0.0395639; /* Q */
- f[14]= 0.0540978; /* R */
- f[15]= 0.0683364; /* S */
- f[16]= 0.0540687; /* T */
- f[17]= 0.0673417; /* V */
- f[18]= 0.0114135; /* W */
- f[19]= 0.0304133; /* Y */
- return eslOK;
+ for (i = 0; i < ngood; i++)
+ if (! esl_str_IsReal(goodones[i])) esl_fatal("esl_str_IsReal() should have recognized %s", goodones[i]);
+ for (i = 0; i < nbad; i++)
+ if ( esl_str_IsReal(badones[i])) esl_fatal("esl_str_IsReal() should not have recognized %s", badones[i]);
}
-/*-------------- end, background compositions -------------------*/
-
-
-/*****************************************************************
- * 10. Unit tests.
- *****************************************************************/
-#ifdef eslEASEL_TESTDRIVE
static void
utest_strmapcat(void)
@@ -2161,8 +2199,8 @@ utest_sprintf(void)
if (strcmp(s, "99 bottles of beer") != 0) esl_fatal(msg);
free(s);
- if (esl_sprintf(&s, NULL) != eslOK) esl_fatal(msg);
- if (s != NULL) esl_fatal(msg);
+ if (esl_sprintf(&s, NULL) != eslOK) esl_fatal(msg);
+ if (s != NULL) esl_fatal(msg);
}
@@ -2221,7 +2259,7 @@ utest_tmpfile_named(void)
/*****************************************************************
- * 11. Test driver.
+ * 10. Test driver.
*****************************************************************/
#ifdef eslEASEL_TESTDRIVE
@@ -2236,6 +2274,8 @@ int main(void)
esl_exception_SetHandler(&esl_nonfatal_handler);
#endif
+ utest_IsInteger();
+ utest_IsReal();
utest_strmapcat();
utest_strtok();
utest_sprintf();
@@ -2246,7 +2286,7 @@ int main(void)
#endif /*eslEASEL_TESTDRIVE*/
/*****************************************************************
- * 12. Examples.
+ * 11. Examples.
*****************************************************************/
#ifdef eslEASEL_EXAMPLE
@@ -2292,13 +2332,13 @@ int main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: easel.c 748 2012-02-14 21:23:06Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/easel.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/easel.h b/easel/easel.h
index f8e0189..0f8ba87 100644
--- a/easel/easel.h
+++ b/easel/easel.h
@@ -45,22 +45,28 @@
* ESL_XEXCEPTION() - throwing an exception, with cleanup.
*
* The X versions (with cleanup) require the caller to have an
- * <int status> variable and a <ERROR:> goto target in scope.
+ * <int status> variable and a <ERROR:> goto target in scope,
+ * which, yes, is a little hacky.
*
* Wrapping these macros in <while(0)> loops allows a statement:
* if (something) ESL_XEXCEPTION(code,mesg);
* without the trailing semicolon becoming a null statement after
* macro expansion.
+ *
+ * All esl_fail() does is vsnprintf() to the <errbuf>; the reason to
+ * have ESL_FAIL and ESL_XFAIL call esl_fail() is to enable us to set
+ * a debugging breakpoint in esl_fail(), so we can break execution at
+ * a normal failure.
*/
/*::cexcerpt::error_macros::begin::*/
#define ESL_FAIL(code, errbuf, ...) do { \
- if (errbuf != NULL) snprintf(errbuf, eslERRBUFSIZE, __VA_ARGS__); \
+ esl_fail(errbuf, __VA_ARGS__); \
return code; } \
while (0)
#define ESL_XFAIL(code, errbuf, ...) do { \
status = code; \
- if (errbuf != NULL) snprintf(errbuf, eslERRBUFSIZE, __VA_ARGS__); \
+ esl_fail(errbuf, __VA_ARGS__); \
goto ERROR; } \
while (0)
@@ -85,10 +91,11 @@
esl_exception(code, TRUE, __FILE__, __LINE__, __VA_ARGS__); \
goto ERROR; } \
while (0)
-
/*::cexcerpt::error_macros::end::*/
+
+
/* Return codes for error handler
*/
/*::cexcerpt::statuscodes::begin::*/
@@ -120,6 +127,7 @@
#define eslENOFORMAT 25 /* couldn't guess file format */
#define eslENOALPHABET 26 /* couldn't guess seq alphabet */
#define eslEWRITE 27 /* write failed (fprintf, etc) */
+#define eslEINACCURATE 28 /* return val may be inaccurate */
/*::cexcerpt::statuscodes::end::*/
@@ -139,12 +147,25 @@
* ESL_REALLOC() is a newer version of ESL_RALLOC() which doesn't
* need a tmp ptr. All ESL_RALLOC() calls can be safely converted
* to ESL_REALLOC() calls.
+ *
+ * The result of malloc(0) is implementation-defined (either NULL or
+ * a ptr that may not be dereferenced), a bit of a hole in the C
+ * standard. In Easel, we want to avoid having NULL as a valid
+ * non-error result of malloc(), because it confuses static analysis
+ * tools when they see dereferences of possibly NULL pointers. We
+ * therefore treat malloc(0) as an eslEMEM error.
*/
/*::cexcerpt::alloc_macros::begin::*/
#define ESL_ALLOC(p, size) do {\
- if (((p) = malloc(size)) == NULL && (size)) { \
+ if ( size <= 0 ) { \
+ p = NULL; \
+ status = eslEMEM; \
+ esl_exception(status, FALSE, __FILE__, __LINE__, "zero malloc disallowed"); \
+ goto ERROR;\
+ }\
+ if ( ((p) = malloc(size)) == NULL) { \
status = eslEMEM;\
- esl_exception(eslEMEM, FALSE, __FILE__, __LINE__, "malloc of size %d failed", size); \
+ esl_exception(status, FALSE, __FILE__, __LINE__, "malloc of size %d failed", size); \
goto ERROR;\
}} while (0)
@@ -154,7 +175,7 @@
if ((tmp) != NULL) (p) = (tmp);\
else {\
status = eslEMEM;\
- esl_exception(eslEMEM, FALSE, __FILE__, __LINE__, "realloc for size %d failed", newsize); \
+ esl_exception(status, FALSE, __FILE__, __LINE__, "realloc for size %d failed", newsize); \
goto ERROR;\
}} while (0)
@@ -165,13 +186,14 @@
if ((esltmpp) != NULL) (p) = (esltmpp);\
else {\
status = eslEMEM;\
- esl_exception(eslEMEM, FALSE, __FILE__, __LINE__, "realloc for size %d failed", newsize); \
+ esl_exception(status, FALSE, __FILE__, __LINE__, "realloc for size %d failed", newsize); \
goto ERROR;\
}} while (0)
/*::cexcerpt::alloc_macros::end::*/
-/* Convert MB,GB,TB to bytes, using binary definitions (2^20, 2^30, 2^40)
- * More pedantically: mebibytes (MiB), gibibytes (GiB), tebibytes (TiB).
+/* Convert MiB,GiB,TiB to bytes, using binary definitions (2^20, 2^30, 2^40):
+ * Pedantically speaking, that's: mebibytes (MiB), gibibytes (GiB), tebibytes (TiB).
+ * 1 TB = 10^12 bytes; 1 TiB = 2^40 bytes.
*/
#define ESL_MBYTES(x) ((x) * 1048576)
#define ESL_GBYTES(x) ((x) * 1024 * 1048576)
@@ -191,6 +213,12 @@
#define esl_byp_IsReturned(p) ((p) != NULL && (*p) == NULL)
#define esl_byp_IsProvided(p) ((p) != NULL && (*p) != NULL)
+/* Sometimes a shared function API dictates arguments that a function
+ * doesn't use, and we want to silence compiler warnings about this.
+ * Putting ESL_UNUSED(x) in the function, for an unused argument <x>,
+ * should silence the compiler, and should generate a no-op.
+ */
+#define ESL_UNUSED(x) (void)(sizeof((x)))
/*****************************************************************
@@ -225,8 +253,6 @@
#endif
-
-
/*****************************************************************
* 5. Defined constants
*****************************************************************/
@@ -334,11 +360,13 @@ typedef uint8_t ESL_DSQ;
/* Some generic macros for swapping, min, and max.
*/
-#define ESL_SWAP(x, y, type) do { type tmpxyz = (x); (x) = (y); (y) = tmpxyz; } while (0)
+#define ESL_SWAP(x, y, type) do { type esltmpxyz = (x); (x) = (y); (y) = esltmpxyz; } while (0)
#define ESL_MIN(a,b) (((a)<(b))?(a):(b))
#define ESL_MAX(a,b) (((a)>(b))?(a):(b))
-static inline float esl_logf(float x) { return (x == 0.0 ? -eslINFINITY : logf(x)); }
+static inline float esl_log (double x) { return (x == 0.0 ? -eslINFINITY : log(x)); } /* avoid fp exceptions; log(0) = -inf is fine */
+static inline float esl_logf(float x) { return (x == 0.0 ? -eslINFINITY : logf(x)); }
+static inline float esl_log2f(float x) { return (x == 0.0 ? -eslINFINITY : eslCONST_LOG2R * logf(x)); }
/* Typedef: <esl_pos_t>
*
@@ -356,6 +384,28 @@ static inline float esl_logf(float x) { return (x == 0.0 ? -eslINFINITY : logf(x
*/
typedef int64_t esl_pos_t;
+
+/* ESL_ANALYZER_NORETURN
+ * adds some optional support for clang static analysis.
+ * The static analyzer sometimes needs to be clued in when a
+ * function cannot return: fatal error handlers, for example.
+ * clang, gcc, and other gcc-like compilers support the __attribute__
+ * extension on function declarations. We detect this support
+ * at compile-time in the configure script. Functions that
+ * don't return are declared like:
+ * extern void fatal(char *msg, ...) ESL_ANALYZER_NORETURN;
+ */
+#ifndef ESL_ANALYZER_NORETURN
+#ifdef HAVE_FUNC_ATTRIBUTE_NORETURN
+#define ESL_ANALYZER_NORETURN __attribute__((__noreturn__))
+#else
+#define ESL_ANALYZER_NORETURN
+#endif
+#endif
+
+
+
+
/*****************************************************************
* 8. Void declarations of missing augmentations
*****************************************************************/
@@ -372,19 +422,21 @@ typedef void ESL_KEYHASH;
/* 1. Error handling. */
typedef void (*esl_exception_handler_f)(int errcode, int use_errno, char *sourcefile, int sourceline, char *format, va_list argp);
+extern void esl_fail(char *errbuf, const char *format, ...);
extern void esl_exception(int errcode, int use_errno, char *sourcefile, int sourceline, char *format, ...);
extern void esl_exception_SetHandler(esl_exception_handler_f);
extern void esl_exception_ResetDefaultHandler(void);
extern void esl_nonfatal_handler(int errcode, int use_errno, char *sourcefile, int sourceline, char *format, va_list argp);
-extern void esl_fatal(const char *format, ...);
+extern void esl_fatal(const char *format, ...) ESL_ANALYZER_NORETURN;
/* 2. Memory allocation/deallocation conventions. */
extern void esl_Free2D(void **p, int dim1);
extern void esl_Free3D(void ***p, int dim1, int dim2);
/* 3. Standard banner for Easel miniapplications. */
-extern int esl_banner(FILE *fp, char *progname, char *banner);
-extern int esl_usage (FILE *fp, char *progname, char *usage);
+extern int esl_banner (FILE *fp, char *progname, char *banner);
+extern int esl_usage (FILE *fp, char *progname, char *usage);
+extern int esl_dataheader(FILE *fp, ...);
/* 4. Improved replacements for some C library functions */
extern int esl_fgets(char **buf, int *n, FILE *fp);
@@ -435,25 +487,18 @@ extern int esl_DCompareAbs(double a, double b, double tol);
extern int esl_FCompareAbs(float a, float b, float tol);
extern int esl_CCompare(char *s1, char *s2);
-/* 9. Commonly used background composition (iid) frequencies. */
-extern int esl_composition_BL62(double *f);
-extern int esl_composition_WAG (double *f);
-extern int esl_composition_SW34(double *f);
-extern int esl_composition_SW50(double *f);
-
-
#endif /*eslEASEL_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: easel.h 748 2012-02-14 21:23:06Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/easel.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_alphabet.c b/easel/esl_alphabet.c
index ddf6f18..4013f8f 100644
--- a/easel/esl_alphabet.c
+++ b/easel/esl_alphabet.c
@@ -51,8 +51,7 @@ static int set_complementarity(ESL_ALPHABET *a);
ESL_ALPHABET *
esl_alphabet_Create(int type)
{
- int status;
- ESL_ALPHABET *a;
+ ESL_ALPHABET *a = NULL;
switch(type) {
case eslRNA: a = create_rna(); break;
@@ -60,13 +59,9 @@ esl_alphabet_Create(int type)
case eslAMINO: a = create_amino(); break;
case eslCOINS: a = create_coins(); break;
case eslDICE: a = create_dice(); break;
- default:
- ESL_XEXCEPTION(eslEINVAL, "bad alphabet type: unrecognized");
+ default: esl_fatal("bad alphabet type: unrecognized"); // violation: must be a code error, not user.
}
return a;
-
- ERROR:
- return NULL;
}
/* Function: esl_alphabet_CreateCustom()
@@ -102,7 +97,7 @@ esl_alphabet_Create(int type)
ESL_ALPHABET *
esl_alphabet_CreateCustom(const char *alphabet, int K, int Kp)
{
- ESL_ALPHABET *a;
+ ESL_ALPHABET *a = NULL;
int c,x,y;
int status;
@@ -122,8 +117,8 @@ esl_alphabet_CreateCustom(const char *alphabet, int K, int Kp)
/* Allocation/init, level 2.
*/
ESL_ALLOC(a->sym, sizeof(char) * (Kp+1));
- ESL_ALLOC(a->degen, sizeof(char *) * Kp);
ESL_ALLOC(a->ndegen, sizeof(int) * Kp);
+ ESL_ALLOC(a->degen, sizeof(char *) * Kp);
a->degen[0] = NULL;
/* Allocation/init, level 3.
@@ -191,6 +186,7 @@ create_rna(void)
*/
esl_alphabet_SetEquiv(a, 'T', 'U'); /* read T as a U */
esl_alphabet_SetEquiv(a, 'X', 'N'); /* read X as an N (many seq maskers use X) */
+ esl_alphabet_SetEquiv(a, 'I', 'A'); /* Inosine is a deaminated Adenosine, appears in some RNACentral sequences */
esl_alphabet_SetEquiv(a, '_', '-'); /* allow _ as a gap too */
esl_alphabet_SetEquiv(a, '.', '-'); /* allow . as a gap too */
esl_alphabet_SetCaseInsensitive(a); /* allow lower case input */
@@ -236,6 +232,7 @@ create_dna(void)
*/
esl_alphabet_SetEquiv(a, 'U', 'T'); /* read U as a T */
esl_alphabet_SetEquiv(a, 'X', 'N'); /* read X as an N (many seq maskers use X) */
+ esl_alphabet_SetEquiv(a, 'I', 'A'); /* Inosine is a deaminated Adenosine, appears in some RNACentral sequences */
esl_alphabet_SetEquiv(a, '_', '-'); /* allow _ as a gap too */
esl_alphabet_SetEquiv(a, '.', '-'); /* allow . as a gap too */
esl_alphabet_SetCaseInsensitive(a); /* allow lower case input */
@@ -356,7 +353,14 @@ set_complementarity(ESL_ALPHABET *a)
if (a->type != eslRNA && a->type != eslDNA)
ESL_EXCEPTION(eslEINVAL, "alphabet isn't nucleic: no complementarity to set");
-
+
+ /* We will assume that Kp=18 and sym="ACGT-RYMKSWHBVDN*~" (or RNA equiv).
+ * Bug #h108 happened because routine fell out of sync w/ a change in alphabet.
+ * Don't let that happen again.
+ */
+ ESL_DASSERT1(( a->Kp == 18 ));
+ ESL_DASSERT1(( a->sym[17] == '~' ));
+
ESL_ALLOC(a->complement, sizeof(ESL_DSQ) * a->Kp);
a->complement[0] = 3; /* A->T */
a->complement[1] = 2; /* C->G */
@@ -374,7 +378,9 @@ set_complementarity(ESL_ALPHABET *a)
a->complement[13]= 12; /* V->B */
a->complement[14]= 11; /* D->H */
a->complement[15]= 15; /* N N */
- a->complement[16]= 16; /* ~ ~ */
+ a->complement[16]= 16; /* * * */
+ a->complement[17]= 17; /* ~ ~ */
+
return eslOK;
ERROR:
@@ -565,17 +571,18 @@ esl_alphabet_Sizeof(ESL_ALPHABET *a)
void
esl_alphabet_Destroy(ESL_ALPHABET *a)
{
- if (a == NULL) return;
-
- if (a->sym != NULL) free(a->sym);
- if (a->ndegen != NULL) free(a->ndegen);
- if (a->degen != NULL)
+ if (a)
{
- if (a->degen[0] != NULL) free(a->degen[0]);
- free(a->degen);
+ if (a->sym) free(a->sym);
+ if (a->ndegen) free(a->ndegen);
+ if (a->degen)
+ {
+ if (a->degen[0]) free(a->degen[0]);
+ free(a->degen);
+ }
+ if (a->complement) free(a->complement);
+ free(a);
}
- if (a->complement != NULL) free(a->complement);
- free(a);
}
/*--------------- end, ESL_ALPHABET object ----------------------*/
@@ -963,6 +970,8 @@ esl_abc_dsqcat_noalloc(const ESL_DSQ *inmap, ESL_DSQ *dsq, int64_t *L, const cha
*/
for (xpos = *L+1, cpos = 0; cpos < n; cpos++)
{
+ if (! isascii(s[cpos])) { dsq[xpos++] = inmap[0]; status = eslEINVAL; continue; }
+
x = inmap[(int) s[cpos]];
if (x <= 127) dsq[xpos++] = x;
@@ -1116,6 +1125,43 @@ esl_abc_ConvertDegen2X(const ESL_ALPHABET *abc, ESL_DSQ *dsq)
return eslOK;
}
+
+/* Function: esl_abc_revcomp()
+ * Synopsis: Reverse complement a digital sequence
+ * Incept: SRE, Wed Feb 10 11:54:48 2016 [JB251 BOS-MCO]
+ *
+ * Purpose: Reverse complement <dsq>, in place, according to
+ * its digital alphabet <abc>.
+ *
+ * Args: abc - digital alphabet
+ * dsq - digital sequence, 1..n
+ * n - length of <dsq>
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEINCOMPAT> if alphabet <abc> can't be reverse complemented
+ */
+int
+esl_abc_revcomp(const ESL_ALPHABET *abc, ESL_DSQ *dsq, int n)
+{
+ ESL_DSQ x;
+ int pos;
+
+ if (abc->complement == NULL)
+ ESL_EXCEPTION(eslEINCOMPAT, "tried to reverse complement using an alphabet that doesn't have one");
+
+ for (pos = 1; pos <= n/2; pos++)
+ {
+ x = abc->complement[dsq[n-pos+1]];
+ dsq[n-pos+1] = abc->complement[dsq[pos]];
+ dsq[pos] = x;
+ }
+ if (n%2) dsq[pos] = abc->complement[dsq[pos]];
+ return eslOK;
+}
+
+
+
/*-------------- end, digital sequences (ESL_DSQ) ---------------*/
@@ -1123,6 +1169,28 @@ esl_abc_ConvertDegen2X(const ESL_ALPHABET *abc, ESL_DSQ *dsq)
* 3. Other routines in the API.
*****************************************************************/
+/* Function: esl_abc_ValidateType()
+ * Synopsis: Check that an alphabet is known and valid
+ * Incept: SRE, Thu Feb 11 15:48:23 2016
+ *
+ * Purpose: Returns <eslOK> if <type> is a valid and known Easel
+ * alphabet type code.
+ *
+ * Used to validate "user" input, where we're parsing a
+ * file format that has stored an Easel alphabet code.
+ *
+ * Returns <eslFAIL> for the special <eslUNKNOWN> "unset"
+ * value, even though that is a valid code, because it's
+ * not an alphabet, so shouldn't show up in a file.
+ */
+int
+esl_abc_ValidateType(int type)
+{
+ if (type <= 0 || type > eslNONSTANDARD) return eslFAIL;
+ else return eslOK;
+}
+
+
/* Function: esl_abc_GuessAlphabet()
* Synopsis: Guess alphabet type from residue composition.
*
@@ -1145,6 +1213,11 @@ esl_abc_ConvertDegen2X(const ESL_ALPHABET *abc, ESL_DSQ *dsq)
* nucleic (DHKMRSVWY) is greater than the number of canonicals
* for both amino and nucleic (ACG); then call it <eslAMINO>.
*
+ * As a special case, if it consists entirely of N's, and
+ * we have >2000 residues, call it <eslDNA>. This is a
+ * special case that deals with genome sequence assemblies
+ * that lead with a swath of N's.
+ *
* We aim to be very conservative, essentially never making
* a false call; we err towards calling <eslUNKNOWN> if
* unsure. Our test is to classify every individual
@@ -1195,11 +1268,12 @@ esl_abc_GuessAlphabet(const int64_t *ct, int *ret_type)
nx = ct['X' - 'A'];
nn = ct['N' - 'A']; xn = (nn ? 1 : 0);
- if (n <= 10) type = eslUNKNOWN;
- else if (n1 > 0) type = eslAMINO; /* contains giveaway, aa-only chars */
- else if (n-(n2+nt+nn) <= 0.02*n && x2+xt == 4) type = eslDNA; /* nearly all DNA canon (or N), all four seen */
- else if (n-(n2+nu+nn) <= 0.02*n && x2+xu == 4) type = eslRNA; /* nearly all RNA canon (or N), all four seen */
- else if (n-(n1+n2+n3+nn+nt+nx) <= 0.02*n && n3>n2 && x1+x2+x3+xn+xt >= 15) type = eslAMINO; /* nearly all aa canon (or X); more aa canon than ambig; all 20 seen */
+ if (n <= 10) type = eslUNKNOWN; // small sample, don't guess
+ else if (n > 2000 && nn == n) type = eslDNA; // special case of many N's leading a genome assembly
+ else if (n1 > 0) type = eslAMINO; // contains giveaway, aa-only chars
+ else if (n-(n2+nt+nn) <= 0.02*n && x2+xt == 4) type = eslDNA; // nearly all DNA canon (or N), all four seen
+ else if (n-(n2+nu+nn) <= 0.02*n && x2+xu == 4) type = eslRNA; // nearly all RNA canon (or N), all four seen
+ else if (n-(n1+n2+n3+nn+nt+nx) <= 0.02*n && n3>n2 && x1+x2+x3+xn+xt >= 15) type = eslAMINO; // nearly all aa canon (or X); more aa canon than ambig; all 20 seen
*ret_type = type;
if (type == eslUNKNOWN) return eslENOALPHABET;
@@ -1267,7 +1341,7 @@ esl_abc_Match(const ESL_ALPHABET *abc, ESL_DSQ x, ESL_DSQ y, double *p)
{
if (abc->degen[(int)x][i]) sx += p[i];
if (abc->degen[(int)y][i]) sy += p[i];
- if (abc->degen[(int)x][i] && abc->degen[(int)x][i]) prob += p[i] * p[i];
+ if (abc->degen[(int)x][i] && abc->degen[(int)y][i]) prob += p[i] * p[i];
}
prob = prob / (sx*sy);
}
@@ -1279,7 +1353,7 @@ esl_abc_Match(const ESL_ALPHABET *abc, ESL_DSQ x, ESL_DSQ y, double *p)
{
if (abc->degen[(int)x][i]) sx += uniformp;
if (abc->degen[(int)y][i]) sy += uniformp;
- if (abc->degen[(int)x][i] && abc->degen[(int)x][i]) prob += uniformp * uniformp;
+ if (abc->degen[(int)x][i] && abc->degen[(int)y][i]) prob += uniformp * uniformp;
}
prob = prob / (sx*sy);
}
@@ -1626,13 +1700,16 @@ esl_abc_DecodeType(int type)
* without error; all its symbols are valid in alphabet
* <a>. If so, return <eslOK>. If not, return <eslEINVAL>.
*
+ * If <a> is <NULL>, we still validate that at least the
+ * <seq> consists only of ASCII characters.
+ *
* <errbuf> is either passed as <NULL>, or a pointer to an
* error string buffer allocated by the caller for
* <eslERRBUFSIZE> characters. If <errbuf> is non-NULL, and
* the sequence is invalid, an error message is placed in
* <errbuf>.
*
- * Args: a - digital alphabet
+ * Args: a - digital alphabet (or NULL, if unavailable)
* seq - sequence to validate [0..L-1]; NUL-termination unnecessary
* L - length of <seq>
* errbuf - NULL, or ptr to <eslERRBUFSIZE> chars of allocated space
@@ -1651,14 +1728,29 @@ esl_abc_ValidateSeq(const ESL_ALPHABET *a, const char *seq, int64_t L, char *err
int64_t nbad = 0;
if (errbuf) *errbuf = 0;
- for (i = 0; i < L; i++) {
- if (! esl_abc_CIsValid(a, seq[i])) {
- if (firstpos == -1) firstpos = i;
- nbad++;
+
+
+ if (a) // If we have digital alphabet <a>, it has an <inmap> we can check against
+ {
+ for (i = 0; i < L; i++) {
+ if (! esl_abc_CIsValid(a, seq[i])) {
+ if (firstpos == -1) firstpos = i;
+ nbad++;
+ }
+ }
}
- }
- if (nbad > 0) ESL_XFAIL(eslEINVAL, errbuf, "%" PRId64 " invalid chars (including %c at pos %" PRId64 ")",
- nbad, seq[firstpos], firstpos);
+ else // Else, at least validate that the text string is an ASCII text string
+ {
+ for (i = 0; i < L; i++) {
+ if (! isascii(seq[i])) {
+ if (firstpos == -1) firstpos = i;
+ nbad++;
+ }
+ }
+ }
+
+ if (nbad == 1) ESL_XFAIL(eslEINVAL, errbuf, "invalid char %c at pos %" PRId64, seq[firstpos], firstpos+1);
+ else if (nbad > 1) ESL_XFAIL(eslEINVAL, errbuf, "%" PRId64 " invalid chars (including %c at pos %" PRId64 ")", nbad, seq[firstpos], firstpos+1);
return eslOK;
ERROR:
@@ -1969,10 +2061,8 @@ utest_TextizeN(void)
char goodseq[] = "acdefrynacdef";
ESL_DSQ *dsq;
ESL_DSQ *dptr;
- int L;
int W;
- L = strlen(goodseq);
if ((a = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal(msg);
if (esl_abc_CreateDsq(a, goodseq, &dsq) != eslOK) esl_fatal(msg);
@@ -2440,7 +2530,7 @@ main(int argc, char **argv)
status = esl_sqfile_Open(seqfile, format, NULL, &sqfp);
if (status == eslENOTFOUND) esl_fatal("No such file.");
- else if (status == eslEFORMAT) esl_fatal("Format unrecognized.");
+ else if (status == eslEFORMAT) esl_fatal("Format couldn't be determined.");
else if (status != eslOK) esl_fatal("Open failed, code %d.", status);
while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
@@ -2449,8 +2539,8 @@ main(int argc, char **argv)
printf("%-25s %s\n", sq->name, esl_abc_DecodeType(type));
esl_sq_Reuse(sq);
}
- if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s - %s\n", sqfp->filename, sqfp->get_error(sqfp));
- else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", status, sqfp->filename);
+ if (status == eslEFORMAT) esl_fatal("Parse failed\n %s", esl_sqfile_GetErrorBuf(sqfp));
+ else if (status != eslEOF) esl_fatal("Unexpected read error %d", status);
esl_sq_Destroy(sq);
esl_sqfile_Close(sqfp);
@@ -2459,16 +2549,5 @@ main(int argc, char **argv)
#endif /*eslALPHABET_EXAMPLE3*/
-/*****************************************************************
- * Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_alphabet.c 746 2012-02-07 21:41:29Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_alphabet.c $
- *****************************************************************/
+
diff --git a/easel/esl_alphabet.h b/easel/esl_alphabet.h
index 4845fce..9c641f2 100644
--- a/easel/esl_alphabet.h
+++ b/easel/esl_alphabet.h
@@ -7,6 +7,7 @@
#include "easel.h"
/* Flags for alphabet types.
+ * Do not change, only add, because these codes are used in file formats.
*/
#define eslUNKNOWN 0 /* 0=unknown is easel-wide convention; don't change */
#define eslRNA 1
@@ -15,6 +16,8 @@
#define eslCOINS 4 /* for toy examples */
#define eslDICE 5 /* also for toy examples */
#define eslNONSTANDARD 6
+/* ... if you add here, change esl_abc_ValidateType() too. */
+
/* Structure: ESL_ALPHABET
*/
@@ -22,7 +25,7 @@ typedef struct {
int type; /* eslDNA, eslRNA, eslAMINO, eslNONSTANDARD, etc. */
int K; /* uniq alphabet size: 4 or 20 */
int Kp; /* total size: alphabet + degen + gap + missing */
- char *sym; /* "ACGT-RYMKSWHBVDN~", for instance [0..Kp-1] */
+ char *sym; /* "ACGT-RYMKSWHBVDN*~", for instance [0..Kp-1] */
ESL_DSQ inmap[128]; /* inmap['A'] = 0, etc: dsq[] index for a symbol */
char **degen; /* 1/0, which syms inc which res [0..Kp-1][0..K-1] */
int *ndegen; /* # of degenerate residues per code [0..Kp-1] */
@@ -58,9 +61,11 @@ extern int64_t esl_abc_dsqrlen(const ESL_ALPHABET *a, const ESL_DSQ *dsq);
extern int esl_abc_CDealign(const ESL_ALPHABET *abc, char *s, const ESL_DSQ *ref_ax, int64_t *opt_rlen);
extern int esl_abc_XDealign(const ESL_ALPHABET *abc, ESL_DSQ *x, const ESL_DSQ *ref_ax, int64_t *opt_rlen);
extern int esl_abc_ConvertDegen2X(const ESL_ALPHABET *abc, ESL_DSQ *dsq);
+extern int esl_abc_revcomp(const ESL_ALPHABET *abc, ESL_DSQ *dsq, int n);
/* 3. Other routines in the API.
*/
+extern int esl_abc_ValidateType(int type);
extern int esl_abc_GuessAlphabet(const int64_t *ct, int *ret_type);
extern double esl_abc_Match (const ESL_ALPHABET *a, ESL_DSQ x, ESL_DSQ y, double *p);
extern int esl_abc_IAvgScore (const ESL_ALPHABET *a, ESL_DSQ x, const int *sc);
@@ -121,10 +126,10 @@ extern int esl_abc_ValidateSeq(const ESL_ALPHABET *a, const char *seq, int64_
#endif /*eslALPHABET_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_avx.c b/easel/esl_avx.c
new file mode 100644
index 0000000..4b49d45
--- /dev/null
+++ b/easel/esl_avx.c
@@ -0,0 +1,24 @@
+#include <stdio.h>
+#ifdef HAVE_AVX2
+// This file is just a dummy target to make sure that the functions defined in esl_avx.h get included in the library version of hmmer
+#include <immintrin.h> /* AVX2 */
+#include "esl_avx.h"
+
+#else /* ! HAVE_AVX2 */
+
+/* If we don't have AVX compiled in, provide some nothingness to:
+ * a. prevent Mac OS/X ranlib from bitching about .o file that "has no symbols"
+ * b. prevent compiler from bitching about "empty compilation unit"
+ * c. automatically pass the automated tests.
+ */
+#include "easel.h"
+
+void esl_avx_DoAbsolutelyNothing(void) { return; }
+#if defined eslAVX_TESTDRIVE || eslAVX_EXAMPLE || eslAVX_BENCHMARK
+int main(void) { return 0; }
+#endif
+
+#endif /* HAVE_AVX or not*/
+
+
+
diff --git a/easel/esl_avx.h b/easel/esl_avx.h
new file mode 100644
index 0000000..4f5547a
--- /dev/null
+++ b/easel/esl_avx.h
@@ -0,0 +1,113 @@
+
+/* Vectorized utility routines for Intel AVX instructions and
+ * compatible processors.
+ *
+ * This header file, unusually, provides many complete function
+ * implementations; this is so that they can be inlined by the
+ * compiler, for maximum efficiency.
+ *
+ * Contents:
+ * 1. Inlined horizontal functions for 8 and 16-bit quantities
+ * in 256-bit vectors (__m256i)
+ */
+
+#ifndef eslAVX_INCLUDED
+#define eslAVX_INCLUDED
+
+#include "easel.h"
+
+#include <stdio.h>
+#include <xmmintrin.h> /* SSE */
+#include <emmintrin.h> /* SSE2 */
+
+
+#ifdef HAVE_AVX2 // don't include on architectures that can't compile avx2
+/* Function: esl_avx_hmax_epu8()
+ * Synopsis: Return the unsigned max of the 32 elements in epu8 vector.
+ *
+ * Purpose: Returns the maximum value of the 32 elements in
+ * an <epu8> vector.
+ */
+static inline uint8_t
+esl_avx_hmax_epu8(__m256i a)
+{
+
+ __m256i temp1_AVX = _mm256_permute2x128_si256(a, a, 0x01);
+ // Swap the 128-bit halves from a into temp1
+
+ __m256i temp2_AVX = _mm256_max_epu8(temp1_AVX, a); // each 8-bit field in temp2_AVX now has the max of the
+ //corresponding fields in the high and low halves of a
+
+ temp1_AVX = _mm256_shuffle_epi32(temp2_AVX, 0x4e); // Swap the 64-bit halves of each 128-bit half of a
+ temp2_AVX = _mm256_max_epu8(temp1_AVX, temp2_AVX); // Each 64-bit quantity in temp2 now has the max of the corresponding
+ // 8-bit fields from the 64-bit quarters of a
+
+ temp1_AVX = _mm256_shuffle_epi32(temp2_AVX, 0xb1); // Swap the 32-bit halves of each 64-bit quarter of temp2_AVX
+ temp2_AVX = _mm256_max_epu8(temp1_AVX, temp2_AVX); // Each 32-bit quantity in temp2 now has the max of the corresponding
+ // 8 bit fields from the 32-bit eighths of a
+
+ temp1_AVX = _mm256_shufflelo_epi16(temp2_AVX, 0xb1); // bottom 32-bits of temp1_AVX now contain the swapped 16-bit halves
+ // of the low 32 bits of temp2_AVX
+ temp2_AVX = _mm256_max_epu8(temp1_AVX, temp2_AVX); //bottom 16 bits of temp2_AVX now contain the max of the 16-bit fields of a
+
+ uint8_t temp_stash = _mm256_extract_epi8(temp2_AVX, 1);
+ temp1_AVX = _mm256_insert_epi8(temp2_AVX, temp_stash, 0); // low byte of temp1_AVX now has byte 2 of temp2_AVX
+ temp2_AVX = _mm256_max_epu8(temp1_AVX, temp2_AVX); //bottom 16 bits of temp2_AVX now contain the max of the 16-bit fields of Dmaxv_AVX
+ return(_mm256_extract_epi8(temp2_AVX, 0)); // get low byte of temp2_AVX
+}
+
+/* Function: esl_avx_hmax_epi16()
+ * Synopsis: Return the signed max of the 16 elements in epu8 vector.
+ *
+ * Purpose: Returns the maximum value of the 32 elements in
+ * an <epu8> vector.
+ */
+static inline uint16_t
+esl_avx_hmax_epi16(__m256i a)
+{
+
+ __m256i temp1_AVX = _mm256_permute2x128_si256(a, a, 0x01);
+ // Swap the 128-bit halves from a into temp1
+
+ __m256i temp2_AVX = _mm256_max_epi16(temp1_AVX, a); // each 8-bit field in temp2_AVX now has the max of the
+ //corresponding fields in the high and low halves of a
+
+ temp1_AVX = _mm256_shuffle_epi32(temp2_AVX, 0x4e); // Swap the 64-bit halves of each 128-bit half of a
+ temp2_AVX = _mm256_max_epi16(temp1_AVX, temp2_AVX); // Each 64-bit quantity in temp2 now has the max of the corresponding
+ // 8-bit fields from the 64-bit quarters of a
+
+ temp1_AVX = _mm256_shuffle_epi32(temp2_AVX, 0xb1); // Swap the 32-bit halves of each 64-bit quarter of temp2_AVX
+ temp2_AVX = _mm256_max_epi16(temp1_AVX, temp2_AVX); // Each 32-bit quantity in temp2 now has the max of the corresponding
+ // 8 bit fields from the 32-bit eighths of a
+
+ temp1_AVX = _mm256_shufflelo_epi16(temp2_AVX, 0xb1); // bottom 32-bits of temp1_AVX now contain the swapped 16-bit halves
+ // of the low 32 bits of temp2_AVX
+ temp2_AVX = _mm256_max_epi16(temp1_AVX, temp2_AVX); //bottom 16 bits of temp2_AVX now contain the max of the 16-bit fields of a
+
+ return(_mm256_extract_epi16(temp2_AVX, 0)); // get low 16 bits of temp2_AVX
+}
+
+// shifts vector left by num_bytes bytes. Assumes that num_bytes < 16, and will fail horribly if not.
+static inline __m256i esl_avx_leftshift(__m256i vector, int num_bytes){
+ register __m256i temp_mask_AVX = _mm256_permute2x128_si256(vector, vector, _MM_SHUFFLE(0,0,3,0) );
+ return(_mm256_alignr_epi8(vector, temp_mask_AVX,(16-num_bytes)));
+}
+
+#endif
+
+
+
+#endif /*eslAVX_INCLUDED*/
+
+/*****************************************************************
+ * Easel - a library of C functions for biological sequence analysis
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
+ *
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SVN $Id$
+ * SVN $URL$
+ *****************************************************************/
diff --git a/easel/esl_buffer.c b/easel/esl_buffer.c
index 3430665..db16bf7 100644
--- a/easel/esl_buffer.c
+++ b/easel/esl_buffer.c
@@ -129,11 +129,11 @@ esl_buffer_Open(const char *filename, const char *envvar, ESL_BUFFER **ret_bf)
/* "-" => stdin */
if (strcmp(filename, "-") == 0)
- return esl_buffer_OpenStream(stdin, ret_bf);
+ return esl_buffer_OpenStream(stdin, ret_bf);
/* else, a file. find its fully qualified path */
if (esl_FileExists(filename)) /* look in current working directory */
- { if ( (status = esl_strdup(filename, -1, &path)) != eslOK) goto ERROR; }
+ { if ( (status = esl_strdup(filename, -1, &path)) != eslOK) { *ret_bf = NULL; goto ERROR; } }
else { /* then search directory list in envvar, if any */
status = esl_FileEnvOpen(filename, envvar, NULL, &path);
if (status == eslENOTFOUND) { esl_buffer_OpenFile(filename, ret_bf); goto ERROR; }
@@ -223,7 +223,7 @@ esl_buffer_OpenFile(const char *filename, ESL_BUFFER **ret_bf)
if (filesize != -1 && filesize <= eslBUFFER_SLURPSIZE)
{ if ((status = buffer_init_file_slurped(bf, filesize)) != eslOK) goto ERROR; }
#ifdef _POSIX_VERSION
- else if (filesize != -1 && filesize > eslBUFFER_SLURPSIZE)
+ else if (filesize > eslBUFFER_SLURPSIZE)
{ if ((status = buffer_init_file_mmap(bf, filesize)) != eslOK) goto ERROR; }
#endif
else
@@ -363,11 +363,14 @@ esl_buffer_OpenPipe(const char *filename, const char *cmdfmt, ESL_BUFFER **ret_b
*/
if (bf->n < bf->pagesize)
{
- if (ferror(bf->fp)) ESL_XEXCEPTION(eslESYS, "fread() failed");
+ /* Delayed exception throwing. If popen() failed, ferror() may be set too; evaluate what happened to popen() first. */
+ status = (ferror(bf->fp) ? eslESYS : eslOK);
if (pclose(bf->fp) != 0) {
bf->fp = NULL; /* error block is going to try to pclose() too */
ESL_XFAIL(eslFAIL, bf->errmsg, "pipe command '%s' did not succeed", cmd);
}
+ /* now deal with an fread() error. */
+ if (status != eslOK) ESL_XEXCEPTION(eslESYS, "fread() failed");
bf->fp = NULL;
bf->balloc = 0;
bf->mode_is = eslBUFFER_ALLFILE;
@@ -471,6 +474,7 @@ esl_buffer_OpenStream(FILE *fp, ESL_BUFFER **ret_bf)
int status;
if ((status = buffer_create(&bf)) != eslOK) goto ERROR;
+ bf->mode_is = eslBUFFER_STREAM;
if (fp == NULL || ferror(fp) || feof(fp)) ESL_XEXCEPTION(eslEINVAL, "invalid stream");
bf->fp = fp; /* a copy of <fp>; caller is still responsible for it */
@@ -482,21 +486,12 @@ esl_buffer_OpenStream(FILE *fp, ESL_BUFFER **ret_bf)
if (bf->n < bf->pagesize && ferror(bf->fp))
ESL_XEXCEPTION(eslESYS, "failed to read first chunk of stream");
- bf->mode_is = eslBUFFER_STREAM;
*ret_bf = bf;
return eslOK;
ERROR:
- esl_buffer_Close(bf); bf = NULL; /* thrown errors */
- if (bf) /* normal errors */
- { /* restore bf to UNSET state */
- if (bf->mem) { free(bf->mem); bf->mem = NULL; }
- bf->fp = NULL;
- bf->n = 0;
- bf->balloc = 0;
- bf->mode_is = eslBUFFER_UNSET;
- }
- *ret_bf = bf; /* NULL, if creation failed; otherwise bf->errmsg may be useful to caller */
+ esl_buffer_Close(bf);
+ *ret_bf = NULL;
return status;
}
@@ -1589,7 +1584,8 @@ buffer_init_file_mmap(ESL_BUFFER *bf, esl_pos_t filesize)
return eslOK;
ERROR:
- if (bf->mem != MAP_FAILED) { munmap(bf->mem, bf->n); bf->mem = NULL; }
+ if (bf->mem != MAP_FAILED) munmap(bf->mem, bf->n);
+ bf->mem = NULL;
bf->n = 0;
bf->mode_is = eslBUFFER_UNSET;
return status;
@@ -1689,19 +1685,21 @@ buffer_refill(ESL_BUFFER *bf, esl_pos_t nmin)
else { ndel = bf->anchor; bf->anchor = 0; }
bf->n -= ndel;
bf->pos -= ndel;
- if (bf->n) memmove(bf->mem, bf->mem+ndel, bf->n);
+ if (bf->n) {
+ ESL_DASSERT1(( bf->mem != NULL ));
+ memmove(bf->mem, bf->mem+ndel, bf->n);
+ }
bf->baseoffset += ndel;
}
if (bf->n + bf->pagesize > bf->balloc)
{
- void *tmp;
- ESL_RALLOC(bf->mem, tmp, sizeof(char) * (bf->n + bf->pagesize));
+ ESL_REALLOC(bf->mem, sizeof(char) * (bf->n + bf->pagesize));
bf->balloc = bf->n + bf->pagesize;
}
nread = fread(bf->mem+bf->n, sizeof(char), bf->pagesize, bf->fp);
- if (nread == 0 && ferror(bf->fp)) ESL_EXCEPTION(eslESYS, "fread() failure");
+ if (nread == 0 && !feof(bf->fp) && ferror(bf->fp)) ESL_EXCEPTION(eslESYS, "fread() failure");
bf->n += nread;
if (nread == 0 && bf->pos == bf->n) return eslEOF; else return eslOK;
@@ -2301,9 +2299,12 @@ utest_SetOffset(const char *tmpfile, int nlines_expected)
ESL_BUFFER *bf;
char *p;
esl_pos_t n;
- esl_pos_t thisoffset, testoffset1, testoffset2;
- int testline1 = -1;
- int thisline, testline2;
+ esl_pos_t thisoffset;
+ esl_pos_t testoffset1 = -1;
+ esl_pos_t testoffset2 = -1;
+ int testline1 = -1;
+ int testline2 = -2;
+ int thisline;
#ifdef HAVE_GZIP
char gzipfile[32];
char cmd[256];
@@ -2359,7 +2360,6 @@ utest_SetOffset(const char *tmpfile, int nlines_expected)
if ( (fp = fopen(tmpfile, "r")) == NULL) esl_fatal(msg);
if (esl_buffer_OpenStream(fp, &bf) != eslOK) esl_fatal(msg);
#endif
-
if (esl_buffer_SetOffset(bf, testoffset1) != eslOK) esl_fatal(msg);
if (esl_buffer_GetLine(bf, &p, &n) != eslOK) esl_fatal(msg);
utest_compare_line(p, n, testline1);
@@ -2940,7 +2940,7 @@ int main(int argc, char **argv)
int status;
status = esl_buffer_Open(filename, "TESTDIR", &bf);
- if (status == eslENOTFOUND) esl_fatal("open failed: %s", bf->errmsg);
+ if (status == eslENOTFOUND) esl_fatal("open failed: %s", bf->errmsg);
else if (status == eslFAIL) esl_fatal("gzip -dc failed: %s", bf->errmsg);
else if (status != eslOK) esl_fatal("open failed with error code %d", status);
@@ -2994,6 +2994,10 @@ int main(void)
fclose(fp);
status = esl_buffer_Open(tmpfile, NULL, &bf);
+ if (status == eslENOTFOUND) esl_fatal("open failed: %s", bf ? bf->errmsg : "(no other diagnostics available)");
+ else if (status == eslFAIL) esl_fatal("gzip -dc failed: %s", bf ? bf->errmsg : "(no other diagnostics available)");
+ else if (status != eslOK) esl_fatal("open failed with error code %d", status);
+
esl_buffer_Read(bf, sizeof(int), &n);
esl_buffer_Read(bf, sizeof(char) * n, buf);
puts(buf);
@@ -3091,8 +3095,8 @@ main(int argc, char **argv)
int status;
status = esl_buffer_Open(filename, "TESTDIR", &bf);
- if (status == eslENOTFOUND) esl_fatal("open failed: %s", bf->errmsg);
- else if (status == eslFAIL) esl_fatal("gzip -dc failed: %s", bf->errmsg);
+ if (status == eslENOTFOUND) esl_fatal("open failed: %s", bf ? bf->errmsg : "(no other diagnostics available)");
+ else if (status == eslFAIL) esl_fatal("gzip -dc failed: %s", bf ? bf->errmsg : "(no other diagnostics available)");
else if (status != eslOK) esl_fatal("open failed with error code %d", status);
while ( (status = example_read_fasta(bf, &seqname, &seqdesc, &seq, &seqlen)) == eslOK)
@@ -3131,7 +3135,6 @@ example_read_lineblock(ESL_BUFFER *bf, char ***ret_lines, esl_pos_t **ret_lens,
char *p;
esl_pos_t n;
esl_pos_t start_offset;
- void *tmp;
int status;
/* skip blank lines */
@@ -3142,15 +3145,15 @@ example_read_lineblock(ESL_BUFFER *bf, char ***ret_lines, esl_pos_t **ret_lens,
/* now p[0..n-1] is a non-blank line, start_offset is offset of p[0], point's on start of next line after it */
/* anchor stably at start of line block */
- status = esl_buffer_SetStableAnchor(bf, start_offset);
+ esl_buffer_SetStableAnchor(bf, start_offset);
/* set pointers to non-blank lines */
do {
- ESL_RALLOC(lines, tmp, sizeof(char *) * (nlines+1));
- ESL_RALLOC(lens, tmp, sizeof(char *) * (nlines+1));
+ ESL_REALLOC(lines, sizeof(char *) * (nlines+1));
+ ESL_REALLOC(lens, sizeof(esl_pos_t) * (nlines+1));
- lines[nlines] = p;
- lens[nlines] = n;
+ lines[nlines] = p; // cppcheck complains about these assignments: "possible null pointer deference";
+ lens[nlines] = n; // but cppcheck is wrong. ESL_REALLOC will fail if lines[] or lens[] are NULL.
nlines++;
} while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK && esl_memspn(p, n, " \t\r\n") < n);
@@ -3160,8 +3163,8 @@ example_read_lineblock(ESL_BUFFER *bf, char ***ret_lines, esl_pos_t **ret_lens,
* the line back *before* raising the anchor, because the _Set() function
* is allowed to relocate the buffer's internal memory.
*/
- status = esl_buffer_Set(bf, p, 0);
- status = esl_buffer_RaiseAnchor(bf, start_offset);
+ esl_buffer_Set(bf, p, 0);
+ esl_buffer_RaiseAnchor(bf, start_offset);
*ret_lines = lines;
*ret_lens = lens;
@@ -3218,13 +3221,13 @@ main(int argc, char **argv)
#endif /*eslBUFFER_EXAMPLE6*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_buffer.c 833 2012-12-07 18:57:36Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_buffer.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_buffer.h b/easel/esl_buffer.h
index 6ca4833..3a74f07 100644
--- a/easel/esl_buffer.h
+++ b/easel/esl_buffer.h
@@ -108,10 +108,10 @@ extern int esl_buffer_Read(ESL_BUFFER *bf, size_t nbytes, void *p);
#endif /*eslBUFFER_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_buffer.tex b/easel/esl_buffer.tex
index 1c7d2ab..a52a7f9 100644
--- a/easel/esl_buffer.tex
+++ b/easel/esl_buffer.tex
@@ -2,8 +2,8 @@ The \eslmod{buffer} module provides an abstract layer for building
input parsers. Different types of input -- including files, standard
input, piped output from executed commands, C strings, and raw memory
-- can be handled efficiently in a single API and a single object, an
-\ccode{ESL\_BUFFER}. The API is summarized in
-Table~\ref{tbl:buffer_api}.
+\ccode{ESL\_BUFFER}.
+%The API is summarized in Table~\ref{tbl:buffer_api}.
The main rationale for \eslmod{buffer} is to enable multipass parsing
of any input, even a nonrewindable stream or pipe. A canonical problem
diff --git a/easel/esl_cluster.c b/easel/esl_cluster.c
index 9ce3b62..031e479 100644
--- a/easel/esl_cluster.c
+++ b/easel/esl_cluster.c
@@ -338,14 +338,14 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_cluster.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_cluster.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_cluster.h b/easel/esl_cluster.h
index 93589c9..0056beb 100644
--- a/easel/esl_cluster.h
+++ b/easel/esl_cluster.h
@@ -1,8 +1,8 @@
/* Generalized single linkage clustering.
*
* SRE, Mon Jan 7 09:40:06 2008 [Janelia]
- * SVN $Id: esl_cluster.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_cluster.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslCLUSTER_INCLUDED
#define eslCLUSTER_INCLUDED
@@ -13,10 +13,10 @@ extern int esl_cluster_SingleLinkage(void *base, size_t n, size_t size,
#endif /*eslCLUSTER_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_composition.c b/easel/esl_composition.c
new file mode 100644
index 0000000..c8d0252
--- /dev/null
+++ b/easel/esl_composition.c
@@ -0,0 +1,150 @@
+#include "esl_config.h"
+
+#include "easel.h"
+#include "esl_composition.h"
+
+
+/* Function: esl_composition_BL62()
+ *
+ * Purpose: Sets <f> to the background frequencies used in
+ * \citep{Henikoff92} to calculate the BLOSUM62
+ * substitution matrix. Caller provides space in <f>
+ * allocated for at least 20 doubles. The entries are in
+ * alphabetic order A..Y, same as the standard Easel amino
+ * acid alphabet order.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_composition_BL62(double *f)
+{
+ f[0] = 0.074;
+ f[1] = 0.025;
+ f[2] = 0.054;
+ f[3] = 0.054;
+ f[4] = 0.047;
+ f[5] = 0.074;
+ f[6] = 0.026;
+ f[7] = 0.068;
+ f[8] = 0.058;
+ f[9] = 0.099;
+ f[10] = 0.025;
+ f[11] = 0.045;
+ f[12] = 0.039;
+ f[13] = 0.034;
+ f[14] = 0.052;
+ f[15] = 0.057;
+ f[16] = 0.051;
+ f[17] = 0.073;
+ f[18] = 0.013;
+ f[19] = 0.032;
+ return eslOK;
+}
+
+/* Function: esl_composition_WAG()
+ *
+ * Purpose: Sets <f> to the background frequencies used in
+ * \citep{WhelanGoldman01} to calculate the WAG rate
+ * matrix. Caller provides space in <f> allocated for at
+ * least 20 doubles. The entries are in alphabetic order
+ * A..Y, same as the standard Easel amino acid alphabet
+ * order.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_composition_WAG(double *f)
+{
+ f[0] = 0.086628; /* A */
+ f[1] = 0.019308; /* C */
+ f[2] = 0.057045; /* D */
+ f[3] = 0.058059; /* E */
+ f[4] = 0.038432; /* F */
+ f[5] = 0.083252; /* G */
+ f[6] = 0.024431; /* H */
+ f[7] = 0.048466; /* I */
+ f[8] = 0.062029; /* K */
+ f[9] = 0.086209; /* L */
+ f[10] = 0.019503; /* M */
+ f[11] = 0.039089; /* N */
+ f[12] = 0.045763; /* P */
+ f[13] = 0.036728; /* Q */
+ f[14] = 0.043972; /* R */
+ f[15] = 0.069518; /* S */
+ f[16] = 0.061013; /* T */
+ f[17] = 0.070896; /* V */
+ f[18] = 0.014386; /* W */
+ f[19] = 0.035274; /* Y */
+ return eslOK;
+}
+
+/* Function: esl_composition_SW34()
+ *
+ * Purpose: Sets <f> to the background frequencies observed in
+ * Swiss-Prot release 34 (21.2M residues). Caller provides
+ * space in <f> allocated for at least 20 doubles. The
+ * entries are in alphabetic order A..Y, same as the
+ * standard Easel amino acid alphabet order.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_composition_SW34(double *f)
+{
+ f[0] = 0.075520; /* A */
+ f[1] = 0.016973; /* C */
+ f[2] = 0.053029; /* D */
+ f[3] = 0.063204; /* E */
+ f[4] = 0.040762; /* F */
+ f[5] = 0.068448; /* G */
+ f[6] = 0.022406; /* H */
+ f[7] = 0.057284; /* I */
+ f[8] = 0.059398; /* K */
+ f[9] = 0.093399; /* L */
+ f[10] = 0.023569; /* M */
+ f[11] = 0.045293; /* N */
+ f[12] = 0.049262; /* P */
+ f[13] = 0.040231; /* Q */
+ f[14] = 0.051573; /* R */
+ f[15] = 0.072214; /* S */
+ f[16] = 0.057454; /* T */
+ f[17] = 0.065252; /* V */
+ f[18] = 0.012513; /* W */
+ f[19] = 0.031985; /* Y */
+ return eslOK;
+}
+
+
+/* Function: esl_composition_SW50()
+ *
+ * Purpose: Sets <f> to the background frequencies observed in
+ * Swiss-Prot release 50.8 (86.0M residues; Oct 2006).
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_composition_SW50(double *f)
+{
+ f[0] = 0.0787945; /* A */
+ f[1] = 0.0151600; /* C */
+ f[2] = 0.0535222; /* D */
+ f[3] = 0.0668298; /* E */
+ f[4] = 0.0397062; /* F */
+ f[5] = 0.0695071; /* G */
+ f[6] = 0.0229198; /* H */
+ f[7] = 0.0590092; /* I */
+ f[8] = 0.0594422; /* K */
+ f[9] = 0.0963728; /* L */
+ f[10]= 0.0237718; /* M */
+ f[11]= 0.0414386; /* N */
+ f[12]= 0.0482904; /* P */
+ f[13]= 0.0395639; /* Q */
+ f[14]= 0.0540978; /* R */
+ f[15]= 0.0683364; /* S */
+ f[16]= 0.0540687; /* T */
+ f[17]= 0.0673417; /* V */
+ f[18]= 0.0114135; /* W */
+ f[19]= 0.0304133; /* Y */
+ return eslOK;
+}
+
diff --git a/easel/esl_composition.h b/easel/esl_composition.h
new file mode 100644
index 0000000..a87fe66
--- /dev/null
+++ b/easel/esl_composition.h
@@ -0,0 +1,4 @@
+extern int esl_composition_BL62(double *f);
+extern int esl_composition_WAG (double *f);
+extern int esl_composition_SW34(double *f);
+extern int esl_composition_SW50(double *f);
diff --git a/easel/esl_config.h.in b/easel/esl_config.h.in
index f5a1c57..4acefc1 100644
--- a/easel/esl_config.h.in
+++ b/easel/esl_config.h.in
@@ -7,9 +7,6 @@
* behaviour of system includes and system libraries. An example
* is large file support.
*
- * SRE, Fri Mar 3 08:03:32 2006 [St. Louis]
- * SVN $Id: esl_config.h.in 830 2012-12-05 18:43:12Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_config.h.in $
*/
#ifndef eslCONFIG_INCLUDED
#define eslCONFIG_INCLUDED
@@ -93,7 +90,12 @@
#undef HAVE_SYSCONF
#undef HAVE_SYSCTL
#undef HAVE_TIMES
+#undef HAVE_ERFC
+#undef HAVE_FUNC_ATTRIBUTE_NORETURN // Compiler supports __attribute__ tag, which we use to help w/ clang static analysis.
+
+/* Function behavior */
+#define eslSTOPWATCH_HIGHRES
/*****************************************************************
* Available augmentations.
@@ -126,6 +128,7 @@
#undef eslAUGMENT_MINIMIZER
#undef eslAUGMENT_MSA
#undef eslAUGMENT_RANDOM
+#undef eslAUGMENT_RANDOMSEQ
#undef eslAUGMENT_SSI
#undef eslAUGMENT_STATS
#endif
@@ -142,18 +145,11 @@
#define eslAUGMENT_MINIMIZER
#define eslAUGMENT_MSA
#define eslAUGMENT_RANDOM
+#define eslAUGMENT_RANDOMSEQ
#define eslAUGMENT_SSI
#define eslAUGMENT_STATS
#endif
#endif /*eslCONFIG_INCLUDED*/
-/*****************************************************************
- * Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *****************************************************************/
+
diff --git a/easel/esl_dirichlet.c b/easel/esl_dirichlet.c
index 7cca969..cb9ba34 100644
--- a/easel/esl_dirichlet.c
+++ b/easel/esl_dirichlet.c
@@ -10,6 +10,11 @@
* 6. Test driver
* 7. Example
* 8. Copyright and license information
+ *
+ * To-do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:18:12 2013
*/
#include <esl_config.h>
@@ -53,6 +58,9 @@ esl_mixdchlet_Create(int N, int K)
ESL_MIXDCHLET *pri = NULL;
int q;
+ ESL_DASSERT1( (N > 0) );
+ ESL_DASSERT1( (K > 0) );
+
ESL_ALLOC(pri, sizeof(ESL_MIXDCHLET));
pri->pq = NULL;
pri->alpha = NULL;
@@ -62,6 +70,7 @@ esl_mixdchlet_Create(int N, int K)
pri->alpha[0] = NULL;
ESL_ALLOC(pri->alpha[0], sizeof(double) * N * K);
+ if (pri->alpha[0] == NULL) goto ERROR; // to silence clang static analysis, which gets overzealous about N=0/K=0 -> NULL result
for (q = 1; q < N; q++)
pri->alpha[q] = pri->alpha[0] + q*K;
@@ -170,17 +179,17 @@ esl_mixdchlet_PerfectBipartiteMatchExists(int **A, int N )
int
esl_mixdchlet_Compare(ESL_MIXDCHLET *d1, ESL_MIXDCHLET *d2, double tol)
{
- int i,j;
- int status;
+ int i,j;
+ int **A = NULL;
+ int status;
if (d1->N != d2->N) return eslFAIL;
if (d1->K != d2->K) return eslFAIL;
//set up a 2-D matrix, to store the pairs of components that meet tolerance requirements
- int **A;
ESL_ALLOC(A, d1->N * sizeof(int*));
- for (i=0; i<d1->N; i++)
- ESL_ALLOC(A[i], d1->N * sizeof(int) );
+ for (i = 0; i < d1->N; i++) A[i] = NULL;
+ for (i = 0; i < d1->N; i++) ESL_ALLOC(A[i], d1->N * sizeof(int) );
// Fill in matrix - OK if component i from d1 is a viable match with component q from d2
for (i=0; i<d1->N; i++)
@@ -200,12 +209,14 @@ esl_mixdchlet_Compare(ESL_MIXDCHLET *d1, ESL_MIXDCHLET *d2, double tol)
* matching (aka the marriage problem)
*/
status = esl_mixdchlet_PerfectBipartiteMatchExists( A, d1->N);
-
- /* fallthrough*/
+
+ /* fallthrough */
ERROR:
- for (i=0; i<d1->N; i++)
- free (A[i]);
- free (A);
+ if (A) {
+ for (i = 0; i < d1->N; i++)
+ if (A[i]) free (A[i]);
+ free (A);
+ }
return status;
}
@@ -274,6 +285,38 @@ esl_mixdchlet_Dump(FILE *fp, ESL_MIXDCHLET *d)
return eslOK;
}
+/* esl_dirichlet_MixturePosterior()
+ *
+ * Purpose: For a count vector <c> of cardinality <K>, and a
+ * mixture Dirichlet prior <pri>. Calculate mix[],
+ * the posterior probability P(q | c) of mixture
+ * component q given the count vector c. Caller must
+ * provide allocated space for <mix>, of length <K>.
+ *
+ * Returns: <eslOK> on success, <mix> contains posterior probabilities of
+ * the Dirichlet components.
+ */
+static int
+esl_dirichlet_MixturePosterior(double *c, int K, ESL_MIXDCHLET *pri, double *mix)
+{
+ int q; /* counter over mixture components */
+ double val;
+
+ for (q = 0; q < pri->N; q++) {
+ if (pri->pq[q] > 0.0) {
+ esl_dirichlet_LogProbData(c, pri->alpha[q], K, &val);
+ mix[q] = val + log(pri->pq[q]);
+ }
+ else
+ {
+ mix[q] = -HUGE_VAL;
+ }
+ }
+
+ esl_vec_DLogNorm(mix, pri->N); /* mix[q] is now P(q|c) */
+
+ return eslOK;
+}
/* Function: esl_mixdchlet_MPParameters()
*
@@ -286,7 +329,7 @@ esl_mixdchlet_Dump(FILE *fp, ESL_MIXDCHLET *d)
* of length <K>.
*
* Returns: <eslOK> on success; <mix> contains posterior probabilities of
- * the Dirichlet components, and <p> contains mean posterior
+ * the Dirichlet components, and <p> contains mean posterior
* probability parameter estimates.
*
* Throws: <esl_EINCOMPAT> if <pri> has different cardinality than <c>.
@@ -296,7 +339,6 @@ esl_mixdchlet_MPParameters(double *c, int K, ESL_MIXDCHLET *pri, double *mix, do
{
int q; /* counter over mixture components */
int x;
- double val;
double totc;
double tota;
@@ -305,16 +347,11 @@ esl_mixdchlet_MPParameters(double *c, int K, ESL_MIXDCHLET *pri, double *mix, do
/* Calculate mix[], the posterior probability
* P(q | c) of mixture component q given the count vector c.
*/
- for (q = 0; q < pri->N; q++)
- if (pri->pq[q] > 0.0)
- {
- esl_dirichlet_LogProbData(c, pri->alpha[q], K, &val);
- mix[q] = val + log(pri->pq[q]);
- }
- else
- mix[q] = -HUGE_VAL;
- esl_vec_DLogNorm(mix, pri->N); /* mix[q] is now P(q|c) */
+ esl_dirichlet_MixturePosterior(c, K, pri, mix);
+
+ /* Compute mean posterior estimates for probability parameters
+ */
totc = esl_vec_DSum(c, K);
esl_vec_DSet(p, K, 0.);
for (x = 0; x < K; x++)
@@ -327,6 +364,85 @@ esl_mixdchlet_MPParameters(double *c, int K, ESL_MIXDCHLET *pri, double *mix, do
esl_vec_DNorm(p, K);
return eslOK;
}
+
+
+/* Function: esl_mixdchlet_BILD_score()
+ *
+ * Purpose: Compute the BILD score (sensu Altschul et al PLos Compbio 2010)
+ * for a given count vector <c> of cardinality (alphabet size) <K>,
+ * under a mixture Dirichlet prior <pri>, and a background
+ * character distribution <bg>, also cardinality K. The score is
+ * in bits. Also computes posterior values for (1) Dirichlet mixture
+ * coefficients ($P(q \mid c)$, performed and returned in a previously
+ * allocated array, <mix>).
+ *
+ * Caller must provide allocated space for <mix> (length K), and
+ * <q> (length 1).
+ *
+ * Returns: <eslOK> on success; <mix> contains posterior probabilities of
+ * the Dirichlet components, and <sc> contains the BILD score of
+ * observation under the prior and bg.
+ *
+ * Throws: <esl_EINCOMPAT> if <pri> has different cardinality than <c>.
+ */
+int
+esl_mixdchlet_BILD_score(double *c, int K, int N, ESL_MIXDCHLET *pri,
+ double *mix, double *bg, double *sc)
+{
+ int i; /* counter over mixture components */
+ int j;
+ double tmp;
+ double val;
+ double totc;
+ double tota;
+
+ if (K != pri->K) ESL_EXCEPTION(eslEINCOMPAT, "cvec's K != mixture Dirichlet's K");
+ if (N != pri->N) ESL_EXCEPTION(eslEINCOMPAT, "cvec's N != mixture Dirichlet's N");
+
+ /* Calculate mix[], the posterior probability
+ * P(q | c) of mixture component q given the count vector c.
+ */
+ esl_dirichlet_MixturePosterior(c, K, pri, mix);
+
+
+ /* Compute probability of observing the given count vector
+ * under the mixture Dirichlet prior, which depends on the
+ * posterior.
+ */
+ *sc = 0.0;
+ totc = esl_vec_DSum(c, K);
+ for (i = 0; i < N; i++) {
+ if (mix[i] > 0) {
+ tota = esl_vec_DSum(pri->alpha[i], K);
+ esl_stats_LogGamma(tota, &tmp);
+ val = tmp;
+
+ esl_stats_LogGamma(tota + totc, &tmp);
+ val -= tmp;
+
+ for (j = 0; j < K; j++) {
+ esl_stats_LogGamma(pri->alpha[i][j] + c[j], &tmp);
+ val += tmp;
+ esl_stats_LogGamma(pri->alpha[i][j], &tmp);
+ val -= tmp;
+ }
+
+ *sc += mix[i] * exp(val);
+ }
+ }
+
+ /* At this point, sc holds the Q value from the Altschul paper.
+ * Get the odds ratio by dividing by the product of background
+ * probabilities for observed counts, (accounting for sequence
+ * weighting).
+ */
+ for (j = 0; j < K; j++) {
+ *sc /= pow(bg[j], c[j]);
+ }
+ *sc = log(*sc)*eslCONST_LOG2R;
+
+ return eslOK;
+}
/*---------------- end, ESL_MIXDCHLET ---------------------------*/
@@ -394,6 +510,9 @@ esl_dirichlet_LogProbData(double *c, double *alpha, int K, double *ret_answer)
*
* Returns: <eslOK> on success, and puts result $\log P(c \mid \alpha)$
* in <ret_answer>.
+ *
+ * Throws: <eslEMEM> on allocation error. Now <*ret_answer> is
+ * <-eslINFINITY>.
*/
int
esl_dirichlet_LogProbData_Mixture(double *c, ESL_MIXDCHLET *d, double *ret_answer)
@@ -419,6 +538,7 @@ esl_dirichlet_LogProbData_Mixture(double *c, ESL_MIXDCHLET *d, double *ret_answe
ERROR:
free(mixq);
+ *ret_answer = -eslINFINITY;
return status;
}
@@ -439,22 +559,29 @@ esl_dirichlet_LogProbData_Mixture(double *c, ESL_MIXDCHLET *d, double *ret_answe
*
* Returns: <eslOK> on success, and puts result $\log P(c \mid \alpha)$
* in <ret_answer>.
+ *
+ * Throws: <eslEMEM> on allocation error. Now <*ret_answer> is
+ * <-eslINFINITY>.
*/
static int
esl_dirichlet_LogProbDataSet_Mixture(int ntrials, double** counts, ESL_MIXDCHLET* md, double *ret_answer)
{
double val;
- int i;
+ int i;
+ int status;
*ret_answer = 0;
for (i = 0; i < ntrials; i++)
{
- esl_dirichlet_LogProbData_Mixture(counts[i], md, &val);
+ if (( status = esl_dirichlet_LogProbData_Mixture(counts[i], md, &val)) != eslOK) goto ERROR;
*ret_answer += val;
}
return eslOK;
-}
+ ERROR:
+ *ret_answer = -eslINFINITY;
+ return status;
+}
/* Function: esl_dirichlet_LogProbProbs()
*
@@ -775,7 +902,7 @@ esl_mixdchlet_Fit(double **c, int nc, ESL_MIXDCHLET *d, int be_verbose)
&mixdchlet_complete_gradient,
(void *) (&data), tol, wrk, &fx);
if (status != eslOK && status != eslENOHALT) // eslENOHALT? Then take what we've got - it's probably pretty good
- goto ERROR;
+ goto ERROR;
/* Convert the final parameter vector back to a mixdchlet
*/
@@ -794,6 +921,7 @@ esl_mixdchlet_Fit(double **c, int nc, ESL_MIXDCHLET *d, int be_verbose)
}
+#ifdef eslAUGMENT_RANDOM
/* Function: esl_mixdchlet_Fit_Multipass()
*
* Purpose: Given a set of count vectors <c>, find maximum
@@ -818,29 +946,26 @@ esl_mixdchlet_Fit(double **c, int nc, ESL_MIXDCHLET *d, int be_verbose)
* Returns: <eslOK> on success, and <best_md> contains the fitted
* mixdchlet parameters with best likelihood.
*
- * Throws: <eslEMEM> on allocation error, and <d> is left in
- * in its initial state.
+ * Throws: <eslEMEM> on allocation error, and the state of <best_md>
+ * is undefined.
*/
int
-esl_mixdchlet_Fit_Multipass(ESL_RANDOMNESS *r, double **c, int nc, int reps, ESL_MIXDCHLET *best_md, int verbose)
+esl_mixdchlet_Fit_Multipass(ESL_RANDOMNESS *rng, double **c, int nc, int reps, ESL_MIXDCHLET *best_md, int verbose)
{
- int i, q, k, status;
- double best_lk = -eslINFINITY;
- double lk;
- ESL_MIXDCHLET *md = esl_mixdchlet_Create(best_md->N, best_md->K);
- int err_cnt = 0;
+ ESL_MIXDCHLET *md = esl_mixdchlet_Create(best_md->N, best_md->K);
+ double best_lk = -eslINFINITY;
+ int err_cnt = 0;
+ int i, q, k;
+ double lk;
+ int status;
- for (i=0; i<reps; i++)
+ for (i = 0; i < reps; i++)
{
/* for each pass, establish a new random starting point */
+ if (( status = esl_dirichlet_DSampleUniform(rng, md->N, md->pq)) != eslOK) goto ERROR;
for (q = 0; q < md->N; q++)
- {
- md->pq[q] = esl_rnd_UniformPositive(r);
-
- for (k = 0; k < md->K; k++)
- md->alpha[q][k] = 10.0 * esl_rnd_UniformPositive(r);
- }
- esl_vec_DNorm(md->pq, md->N);
+ for (k = 0; k < md->K; k++)
+ md->alpha[q][k] = 10.0 * esl_rnd_UniformPositive(rng);
/* then use Fit to do local search */
status = esl_mixdchlet_Fit(c, nc, md, 0);
@@ -877,10 +1002,14 @@ esl_mixdchlet_Fit_Multipass(ESL_RANDOMNESS *r, double **c, int nc, int reps, ESL
fprintf(stdout, "llk = %.3f", best_lk);
}
+ esl_mixdchlet_Destroy(md);
+ return eslOK;
+
ERROR:
esl_mixdchlet_Destroy(md);
return status;
}
+#endif /*eslAUGMENT_RANDOM*/
#endif /*eslAUGMENT_MINIMIZER*/
/*----------- end, Dirichlet Maximum likelihood fit from counts ---------------*/
@@ -1140,6 +1269,62 @@ utest_io(ESL_MIXDCHLET *d, double tol)
return;
}
+static void
+utest_bild()
+{
+ char *msg = "esl_dirichlet: BILD unit test failed";
+ ESL_MIXDCHLET *d = NULL;
+ int K = 4;
+ int N = 2;
+ double *counts;
+ double *mix;
+ double *bg;
+ double sc;
+
+
+ /* Create a mixture Dirichlet */
+ if ((d = esl_mixdchlet_Create(N, K)) == NULL) esl_fatal(msg);
+ //esl_vec_DSet(d->pq, N, 1.0/N);
+ d->pq[0] = 0.4;
+ d->pq[1] = 0.6;
+
+ d->alpha[0][0] = 0.1;
+ d->alpha[0][1] = 0.2;
+ d->alpha[0][2] = 0.3;
+ d->alpha[0][3] = 0.4;
+ esl_vec_DSet(d->alpha[1], K, 1.0);
+
+
+ //simulate count vector
+ counts = malloc(K*sizeof(double));
+ counts[0] = 3.0; //2.2;
+ counts[1] = 1.0; //0.9;
+ counts[2] = 0.0; //4.5;
+ counts[3] = 0.0; //3.0;
+
+ //simulate background probabilities
+ bg = malloc(K*sizeof(double));
+ esl_vec_DSet(bg, K, 1.0/K);
+
+ //allocate working space
+ mix = malloc(K*sizeof(double));
+
+ esl_mixdchlet_BILD_score(counts, K, N, d, mix, bg, &sc);
+
+ if (esl_DCompare(sc, 0.701, 0.001) != eslOK)
+ esl_fatal(msg);
+
+// fprintf(stderr, "Score is %.3f\n", sc);
+
+ esl_mixdchlet_Destroy(d);
+ free(bg);
+ free(counts);
+ free(mix);
+
+ return;
+}
+
+
/*
* For any given sampling effort, there is always a possibility that the resulting
* count vector will have a higher likelihood under the wrong component than under the
@@ -1393,7 +1578,9 @@ main(int argc, char **argv)
utest_io(d, tol);
utest_fit(r, d, ntrials, ncounts, tol, nfit_reps, be_verbose);
utest_inference(r, d, ntrials, ncounts, be_verbose);
-
+ utest_bild();
+
+
esl_randomness_Destroy(r);
esl_mixdchlet_Destroy(d);
esl_getopts_Destroy(go);
@@ -1490,14 +1677,14 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_dirichlet.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_dirichlet.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_dirichlet.h b/easel/esl_dirichlet.h
index 5014e68..9d271fc 100644
--- a/easel/esl_dirichlet.h
+++ b/easel/esl_dirichlet.h
@@ -2,8 +2,8 @@
* and simple and mixture Dirichlet priors.
*
* SRE, Tue Nov 2 14:35:06 2004 [St. Louis]
- * SVN $Id: esl_dirichlet.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_dirichlet.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslDIRICHLET_INCLUDED
#define eslDIRICHLET_INCLUDED
@@ -29,8 +29,10 @@ extern int esl_mixdchlet_Copy(ESL_MIXDCHLET *d, ESL_MIXDCHLET *d_dst)
extern int esl_mixdchlet_Dump(FILE *fp, ESL_MIXDCHLET *d);
extern void esl_mixdchlet_Destroy(ESL_MIXDCHLET *pri);
extern int esl_mixdchlet_MPParameters(double *c, int K,
- ESL_MIXDCHLET *pri, double *mix,
- double *p);
+ ESL_MIXDCHLET *pri, double *mix, double *p);
+extern int esl_mixdchlet_BILD_score(double *c, int K, int N, ESL_MIXDCHLET *pri,
+ double *mix, double *bg, double *q);
+
extern int esl_dirichlet_LogProbData(double *c, double *alpha, int K,
double *ret_answer);
@@ -44,13 +46,15 @@ extern int esl_dirichlet_LogProbProbs(double *p, double *alpha, int K,
#ifdef eslAUGMENT_MINIMIZER
#include "esl_minimizer.h"
extern int esl_mixdchlet_Fit(double **c, int nc, ESL_MIXDCHLET *d, int be_verbose);
-
+#ifdef eslAUGMENT_RANDOM
+#include "esl_random.h"
+extern int esl_mixdchlet_Fit_Multipass(ESL_RANDOMNESS *rng, double **c, int nc, int reps, ESL_MIXDCHLET *best_md, int verbose);
+#endif /*eslAUGMENT_RANDOM*/
#endif /*eslAUGMENT_MINIMIZER*/
/* Optional sampling code, when augmented by random module.
*/
#ifdef eslAUGMENT_RANDOM
-#include <esl_random.h>
extern int esl_dirichlet_DSample(ESL_RANDOMNESS *r, double *alpha, int K, double *p);
extern int esl_dirichlet_FSample(ESL_RANDOMNESS *r, float *alpha, int K, float *p);
extern int esl_dirichlet_DSampleUniform(ESL_RANDOMNESS *r, int K, double *p);
@@ -62,7 +66,7 @@ extern int esl_dirichlet_SampleBeta(ESL_RANDOMNESS *r, double theta1,
/* Optional file input code, when augmented by fileparser module
*/
#ifdef eslAUGMENT_FILEPARSER
-#include <esl_fileparser.h>
+#include "esl_fileparser.h"
extern int esl_mixdchlet_Read(ESL_FILEPARSER *efp, ESL_MIXDCHLET **ret_pri);
extern int esl_mixdchlet_Write(FILE *fp, ESL_MIXDCHLET *d);
#endif /*eslAUGMENT_FILEPARSER*/
@@ -71,10 +75,10 @@ extern int esl_mixdchlet_Write(FILE *fp, ESL_MIXDCHLET *d);
#endif /*eslDIRICHLET_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_distance.c b/easel/esl_distance.c
index 39e385d..d959c50 100644
--- a/easel/esl_distance.c
+++ b/easel/esl_distance.c
@@ -107,6 +107,69 @@ esl_dst_CPairId(const char *asq1, const char *asq2,
return status;
}
+/* Function: esl_dst_CPairMatch()
+ * Synopsis: Pairwise matches of two aligned text strings.
+ * Incept: ER, Wed Oct 29 09:02:35 EDT 2014 [janelia]
+ *
+ * Purpose: Calculates pairwise fractional matches between two
+ * aligned character strings <asq1> and <asq2>.
+ * Return this distance in <opt_pmatch>; return the
+ * number of matches counted in <opt_nmatch>; and
+ * return the denominator <alen - double_gaps> in
+ * <opt_n>.
+ *
+ * Alphabetic symbols <[a-zA-Z]> are compared
+ * case-insensitively for identity. Any nonalphabetic
+ * character is assumed to be a gap symbol.
+ *
+ * This simple comparison rule is unaware of synonyms and
+ * degeneracies in biological alphabets. For a more
+ * sophisticated and biosequence-aware comparison, use
+ * digitized sequences and the <esl_dst_XPairmatch()> function
+ * instead. Note that currently <esl_dst_XPairMatch()> does
+ * not correctly handle degeneracies, but is set up to.
+ *
+ * Args: asq1 - aligned character string 1
+ * asq2 - aligned character string 2
+ * opt_pmatch - optRETURN: pairwise matches, 0<=x<=1
+ * opt_nmatch - optRETURN: # of matches
+ * opt_n - optRETURN: denominator alen - double_gaps
+ *
+ * Returns: <eslOK> on success. <opt_pmatch>, <opt_nmatch>, <opt_n>
+ * contain the answers (for whichever were passed non-NULL).
+ *
+ * Throws: <eslEINVAL> if the strings are different lengths
+ * (not aligned).
+ */
+int
+esl_dst_CPairMatch(const char *asq1, const char *asq2,
+ double *opt_pmatch, int *opt_nmatch, int *opt_n)
+{
+ int status;
+ int match; /* total matched positions */
+ int len; /* length of alignment (no double gaps) */
+ int i; /* position in aligned seqs */
+
+ match = len = 0;
+ for (i = 0; asq1[i] != '\0' && asq2[i] != '\0'; i++)
+ {
+ if (isalpha(asq1[i]) || isalpha(asq2[i])) len++;
+ if (isalpha(asq1[i]) && isalpha(asq2[i])) match++;
+ }
+ if (asq1[i] != '\0' || asq2[i] != '\0')
+ ESL_XEXCEPTION(eslEINVAL, "strings not same length, not aligned");
+
+ if (opt_pmatch != NULL) *opt_pmatch = ( len==0 ? 0. : (double)match / (double)len);
+ if (opt_nmatch != NULL) *opt_nmatch = match;
+ if (opt_n != NULL) *opt_n = len;
+ return eslOK;
+
+ ERROR:
+ if (opt_pmatch != NULL) *opt_pmatch = 0.;
+ if (opt_nmatch != NULL) *opt_nmatch = 0;
+ if (opt_n != NULL) *opt_n = 0;
+ return status;
+}
/* Function: esl_dst_CJukesCantor()
* Synopsis: Jukes-Cantor distance for two aligned strings.
@@ -255,6 +318,62 @@ esl_dst_XPairId(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *ax2,
return status;
}
+/* Function: esl_dst_XPairMatch()
+ * Synopsis: Pairwise matches of two aligned digital seqs.
+ * Incept: ER, Wed Oct 29 09:09:07 EDT 2014 [janelia]
+ *
+ * Purpose: Digital version of <esl_dst_CPairMatch()>: <adsq1> and
+ * <adsq2> are digitized aligned sequences, in alphabet
+ * <abc>. Otherwise, same as <esl_dst_CPairId()> except
+ * that only canonical residues are counted and checked for
+ * identity, while <esl_dst_CPairId()> (which has no
+ * alphabet) counts and checks identity of all alphanumeric
+ * characters.
+ *
+ * Args: abc - digital alphabet in use
+ * ax1 - aligned digital seq 1
+ * ax2 - aligned digital seq 2
+ * opt_pmatch - optRETURN: pairwise matches, 0<=x<=1
+ * opt_nmatch - optRETURN: # of maches
+ * opt_n - optRETURN: denominator alen-double_gaps
+ *
+ * Returns: <eslOK> on success. <opt_distance>, <opt_nmatch>, <opt_n>
+ * contain the answers, for any of these that were passed
+ * non-<NULL> pointers.
+ *
+ * Throws: <eslEINVAL> if the strings are different lengths (not aligned).
+ */
+int
+esl_dst_XPairMatch(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *ax2,
+ double *opt_distance, int *opt_nmatch, int *opt_n)
+{
+ int status;
+ int match; /* total matched positions */
+ int len; /* length of alignment (no double gaps) */
+ int i; /* position in aligned seqs */
+
+ match = len = 0;
+ for (i = 1; ax1[i] != eslDSQ_SENTINEL && ax2[i] != eslDSQ_SENTINEL; i++)
+ {
+ if (esl_abc_XIsCanonical(abc, ax1[i]) || esl_abc_XIsCanonical(abc, ax2[i])) len ++;
+ if (esl_abc_XIsCanonical(abc, ax1[i]) && esl_abc_XIsCanonical(abc, ax2[i])) match++;
+ }
+
+ if (ax1[i] != eslDSQ_SENTINEL || ax2[i] != eslDSQ_SENTINEL)
+ ESL_XEXCEPTION(eslEINVAL, "strings not same length, not aligned");
+
+ if (opt_distance != NULL) *opt_distance = ( len==0 ? 0. : (double)match / (double)len );
+ if (opt_nmatch != NULL) *opt_nmatch = match;
+ if (opt_n != NULL) *opt_n = len;
+ return eslOK;
+
+ ERROR:
+ if (opt_distance != NULL) *opt_distance = 0.;
+ if (opt_nmatch != NULL) *opt_nmatch = 0;
+ if (opt_n != NULL) *opt_n = 0;
+ return status;
+}
+
/* Function: esl_dst_XJukesCantor()
* Synopsis: Jukes-Cantor distance for two aligned digitized seqs.
@@ -346,6 +465,8 @@ esl_dst_XJukesCantor(const ESL_ALPHABET *abc, const ESL_DSQ *ax, const ESL_DSQ *
* Throws: <eslEINVAL> if a seq has a different
* length than others. On failure, <ret_D> is returned <NULL>
* and state of inputs is unchanged.
+ *
+ * <eslEMEM> on allocation failure.
*/
int
esl_dst_CPairIdMx(char **as, int N, ESL_DMATRIX **ret_S)
@@ -354,7 +475,7 @@ esl_dst_CPairIdMx(char **as, int N, ESL_DMATRIX **ret_S)
int status;
int i,j;
- if (( S = esl_dmatrix_Create(N,N) ) == NULL) goto ERROR;
+ if (( S = esl_dmatrix_Create(N,N) ) == NULL) { status = eslEMEM; goto ERROR; }
for (i = 0; i < N; i++)
{
@@ -459,6 +580,8 @@ esl_dst_CDiffMx(char **as, int N, ESL_DMATRIX **ret_D)
* <eslEDIVZERO> if some pair of sequences had no aligned
* residues. On failure, <D> and <V> are both returned <NULL>
* and state of inputs is unchanged.
+ *
+ * <eslEMEM> on allocation failure.
*/
int
esl_dst_CJukesCantorMx(int K, char **aseq, int nseq,
@@ -469,8 +592,8 @@ esl_dst_CJukesCantorMx(int K, char **aseq, int nseq,
ESL_DMATRIX *V = NULL;
int i,j;
- if (( D = esl_dmatrix_Create(nseq, nseq) ) == NULL) goto ERROR;
- if (( V = esl_dmatrix_Create(nseq, nseq) ) == NULL) goto ERROR;
+ if (( D = esl_dmatrix_Create(nseq, nseq) ) == NULL) { status = eslEMEM; goto ERROR; }
+ if (( V = esl_dmatrix_Create(nseq, nseq) ) == NULL) { status = eslEMEM; goto ERROR; }
for (i = 0; i < nseq; i++)
{
@@ -532,6 +655,8 @@ esl_dst_CJukesCantorMx(int K, char **aseq, int nseq,
* Throws: <eslEINVAL> if a seq has a different
* length than others. On failure, <ret_S> is returned <NULL>
* and state of inputs is unchanged.
+ *
+ * <eslEMEM> on allocation failure.
*/
int
esl_dst_XPairIdMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, ESL_DMATRIX **ret_S)
@@ -540,7 +665,7 @@ esl_dst_XPairIdMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, ESL_DMATRIX **r
ESL_DMATRIX *S = NULL;
int i,j;
- if (( S = esl_dmatrix_Create(N,N) ) == NULL) goto ERROR;
+ if (( S = esl_dmatrix_Create(N,N) ) == NULL) { status = eslEMEM; goto ERROR; }
for (i = 0; i < N; i++)
{
@@ -643,6 +768,8 @@ esl_dst_XDiffMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, ESL_DMATRIX **ret_
* <eslEDIVZERO> if some pair of sequences had no aligned
* residues. On failure, <D> and <V> are both returned <NULL>
* and state of inputs is unchanged.
+ *
+ * <eslEMEM> on allocation failure.
*/
int
esl_dst_XJukesCantorMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int nseq,
@@ -653,8 +780,8 @@ esl_dst_XJukesCantorMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int nseq,
int status;
int i,j;
- if (( D = esl_dmatrix_Create(nseq, nseq) ) == NULL) goto ERROR;
- if (( V = esl_dmatrix_Create(nseq, nseq) ) == NULL) goto ERROR;
+ if (( D = esl_dmatrix_Create(nseq, nseq) ) == NULL) { status = eslEMEM; goto ERROR; }
+ if (( V = esl_dmatrix_Create(nseq, nseq) ) == NULL) { status = eslEMEM; goto ERROR; }
for (i = 0; i < nseq; i++)
{
@@ -723,7 +850,7 @@ esl_dst_CAverageId(char **as, int N, int max_comparisons, double *ret_id)
{
int status;
double id;
- double sum;
+ double sum = 0.;
int i,j,n;
if (N <= 1) { *ret_id = 1.; return eslOK; }
@@ -738,7 +865,7 @@ esl_dst_CAverageId(char **as, int N, int max_comparisons, double *ret_id)
if ((status = esl_dst_CPairId(as[i], as[j], &id, NULL, NULL)) != eslOK) return status;
sum += id;
}
- id /= (double) (N * (N-1) / 2);
+ sum /= (double) (N * (N-1) / 2);
}
/* If nseq is large, calculate average over a stochastic sample. */
@@ -751,13 +878,81 @@ esl_dst_CAverageId(char **as, int N, int max_comparisons, double *ret_id)
if ((status = esl_dst_CPairId(as[i], as[j], &id, NULL, NULL)) != eslOK) return status;
sum += id;
}
- id /= (double) max_comparisons;
+ sum /= (double) max_comparisons;
+ esl_randomness_Destroy(r);
+ }
+
+ *ret_id = sum;
+ return eslOK;
+}
+
+/* Function: esl_dst_CAverageMatch()
+ * Synopsis: Calculate avg matches for multiple alignment
+ * Incept: ER, Wed Oct 29 09:25:09 EDT 2014 [Janelia]
+ *
+ * Purpose: Calculates the average pairwise fractional matches in
+ * a multiple sequence alignment <as>, consisting of <N>
+ * aligned character sequences of identical length.
+ *
+ * If an exhaustive calculation would require more than
+ * <max_comparisons> pairwise comparisons, then instead of
+ * looking at all pairs, calculate the average over a
+ * stochastic sample of <max_comparisons> random pairs.
+ * This allows the routine to work efficiently even on very
+ * deep MSAs.
+ *
+ * Each fractional pairwise matches (range $[0..$ pid $..1]$
+ * is calculated using <esl_dst_CPairMatch()>.
+ *
+ * Returns: <eslOK> on success, and <*ret_match> contains the average
+ * fractional matches.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ * <eslEINVAL> if any of the aligned sequence pairs aren't
+ * of the same length.
+ * In either case, <*ret_match> is set to 0.
+ */
+int
+esl_dst_CAverageMatch(char **as, int N, int max_comparisons, double *ret_match)
+{
+ int status;
+ double match;
+ double sum = 0.;
+ int i,j,n;
+
+ if (N <= 1) { *ret_match = 1.; return eslOK; }
+ *ret_match = 0.;
+
+ /* Is nseq small enough that we can average over all pairwise comparisons? */
+ if ((N * (N-1) / 2) <= max_comparisons)
+ {
+ for (i = 0; i < N; i++)
+ for (j = i+1; j < N; j++)
+ {
+ if ((status = esl_dst_CPairMatch(as[i], as[j], &match, NULL, NULL)) != eslOK) return status;
+ sum += match;
+ }
+ sum /= (double) (N * (N-1) / 2);
+ }
+
+ /* If nseq is large, calculate average over a stochastic sample. */
+ else
+ {
+ ESL_RANDOMNESS *r = esl_randomness_Create(0);
+ for (n = 0; n < max_comparisons; n++)
+ {
+ do { i = esl_rnd_Roll(r, N); j = esl_rnd_Roll(r, N); } while (j == i); /* make sure j != i */
+ if ((status = esl_dst_CPairMatch(as[i], as[j], &match, NULL, NULL)) != eslOK) return status;
+ sum += match;
+ }
+ sum /= (double) max_comparisons;
esl_randomness_Destroy(r);
}
- *ret_id = id;
+ *ret_match = sum;
return eslOK;
}
+
#endif /* eslAUGMENT_RANDOM */
#if defined(eslAUGMENT_RANDOM) && defined(eslAUGMENT_ALPHABET)
@@ -831,6 +1026,78 @@ esl_dst_XAverageId(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, int max_compari
*ret_id = sum;
return eslOK;
}
+
+/* Function: esl_dst_XAverageMatch()
+ * Synopsis: Calculate avg matches for digital MSA
+ * Incept: ER, ed Oct 29 09:29:05 EDT 2014 [Janelia]
+ *
+ * Purpose: Calculates the average pairwise fractional matches in
+ * a digital multiple sequence alignment <ax>, consisting of <N>
+ * aligned digital sequences of identical length.
+ *
+ * If an exhaustive calculation would require more than
+ * <max_comparisons> pairwise comparisons, then instead of
+ * looking at all pairs, calculate the average over a
+ * stochastic sample of <max_comparisons> random pairs.
+ * This allows the routine to work efficiently even on very
+ * deep MSAs.
+ *
+ * Each fractional pairwise matches (range $[0..$ pid $..1]$
+ * is calculated using <esl_dst_XPairMatch()>.
+ *
+ * Returns: <eslOK> on success, and <*ret_match> contains the average
+ * fractional identity.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ * <eslEINVAL> if any of the aligned sequence pairs aren't
+ * of the same length.
+ * In either case, <*ret_match> is set to 0.
+ */
+int
+esl_dst_XAverageMatch(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, int max_comparisons, double *ret_match)
+{
+ int status;
+ double match;
+ double sum = 0.;
+ int i,j,n;
+
+ if (N <= 1) { *ret_match = 1.; return eslOK; }
+ *ret_match = 0.;
+
+ /* Is N small enough that we can average over all pairwise comparisons?
+ watch out for numerical overflow in this: Pfam N's easily overflow when squared
+ */
+ if (N <= max_comparisons &&
+ N <= sqrt(2. * max_comparisons) &&
+ (N * (N-1) / 2) <= max_comparisons)
+ {
+ for (i = 0; i < N; i++)
+ for (j = i+1; j < N; j++)
+ {
+ if ((status = esl_dst_XPairMatch(abc, ax[i], ax[j], &match, NULL, NULL)) != eslOK) return status;
+ sum += match;
+ }
+ sum /= (double) (N * (N-1) / 2);
+ }
+
+ /* If nseq is large, calculate average over a stochastic sample. */
+ else
+ {
+ ESL_RANDOMNESS *r = esl_randomness_Create(0);
+ for (n = 0; n < max_comparisons; n++)
+ {
+ do { i = esl_rnd_Roll(r, N); j = esl_rnd_Roll(r, N); } while (j == i); /* make sure j != i */
+ if ((status = esl_dst_XPairMatch(abc, ax[i], ax[j], &match, NULL, NULL)) != eslOK) return status;
+ sum += match;
+ }
+ sum /= (double) max_comparisons;
+ esl_randomness_Destroy(r);
+ }
+
+ *ret_match = sum;
+ return eslOK;
+}
+
#endif /* eslAUGMENT_RANDOM && eslAUGMENT_ALPHABET */
@@ -1335,17 +1602,17 @@ main(int argc, char **argv)
int main(int argc, char **argv)
{
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
ESL_MSA *msa;
ESL_DMATRIX *P;
int i,j;
double min, avg, max;
int status;
- if ((status = eslx_msafile_Open(NULL, argv[1], NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
- if ((status = eslx_msafile_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ if ((status = esl_msafile_Open(NULL, argv[1], NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Read(afp, &msa)) != eslOK)
+ esl_msafile_ReadFailure(afp, status);
esl_dst_CPairIdMx(msa->aseq, msa->nseq, &P);
@@ -1367,7 +1634,7 @@ int main(int argc, char **argv)
esl_dmatrix_Destroy(P);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
return 0;
}
/*::cexcerpt::distance_example::end::*/
@@ -1376,15 +1643,12 @@ int main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_distance.c 715 2011-08-03 21:04:24Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_distance.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_distance.h b/easel/esl_distance.h
index b858c31..02690c2 100644
--- a/easel/esl_distance.h
+++ b/easel/esl_distance.h
@@ -2,8 +2,8 @@
* probabilistic evolutionary models and ad hoc measures.
*
* SRE, Fri Apr 28 06:41:13 2006 [New York]
- * SVN $Id: esl_distance.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_distance.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslDISTANCE_INCLUDED
#define eslDISTANCE_INCLUDED
@@ -23,6 +23,8 @@
*/
extern int esl_dst_CPairId(const char *asq1, const char *asq2,
double *opt_pid, int *opt_nid, int *opt_n);
+extern int esl_dst_CPairmatch(const char *asq1, const char *asq2,
+ double *opt_pmatch, int *opt_nmatch, int *opt_n);
extern int esl_dst_CJukesCantor(int K, const char *as1, const char *as2,
double *opt_distance, double *opt_variance);
@@ -31,6 +33,8 @@ extern int esl_dst_CJukesCantor(int K, const char *as1, const char *as2,
#ifdef eslAUGMENT_ALPHABET
extern int esl_dst_XPairId(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *ax2,
double *opt_pid, int *opt_nid, int *opt_n);
+extern int esl_dst_XPairMatch(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *ax2,
+ double *opt_distance, int *opt_nmatch, int *opt_n);
extern int esl_dst_XJukesCantor(const ESL_ALPHABET *abc, const ESL_DSQ *ax, const ESL_DSQ *ay,
double *opt_distance, double *opt_variance);
#endif
@@ -57,20 +61,23 @@ extern int esl_dst_XJukesCantorMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int nse
/* 5. Average pairwise identity for multiple alignments.
*/
#ifdef eslAUGMENT_RANDOM
-extern int esl_dst_CAverageId(char **as, int nseq, int max_comparisons, double *ret_id);
+extern int esl_dst_CAverageId (char **as, int nseq, int max_comparisons, double *ret_id);
+extern int esl_dst_CAverageMatch(char **as, int N, int max_comparisons, double *ret_match);
#endif
#if defined(eslAUGMENT_RANDOM) && defined(eslAUGMENT_ALPHABET)
-extern int esl_dst_XAverageId(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, int max_comparisons, double *ret_id);
+extern int esl_dst_XAverageId (const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, int max_comparisons, double *ret_id);
+extern int esl_dst_XAverageMatch(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, int max_comparisons, double *ret_match);
+
#endif
#endif /*eslDISTANCE_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_dmatrix.c b/easel/esl_dmatrix.c
index 6e4d85c..47e04c4 100644
--- a/easel/esl_dmatrix.c
+++ b/easel/esl_dmatrix.c
@@ -6,15 +6,16 @@
* Table of contents:
* 1. The ESL_DMATRIX object
* 2. Debugging/validation code for ESL_DMATRIX
- * 3. The ESL_PERMUTATION object
- * 4. Debugging/validation code for ESL_PERMUTATION
- * 5. The rest of the dmatrix API
- * 6. Optional: Interoperability with GSL
- * 7. Optional: Interfaces to LAPACK
- * 8. Unit tests
- * 9. Test driver
- * 10. Examples
- * 11. Copyright and license
+ * 3. Visualization tools
+ * 4. The ESL_PERMUTATION object
+ * 5. Debugging/validation code for ESL_PERMUTATION
+ * 6. The rest of the dmatrix API
+ * 7. Optional: Interoperability with GSL
+ * 8. Optional: Interfaces to LAPACK
+ * 9. Unit tests
+ * 10. Test driver
+ * 11. Examples
+ * 12. Copyright and license
*
* To do:
* - eventually probably want additional matrix types
@@ -366,7 +367,9 @@ esl_dmatrix_SetIdentity(ESL_DMATRIX *A)
return eslOK;
}
-
+/*****************************************************************
+ * 2. Debugging, validation code
+ *****************************************************************/
/* Function: esl_dmatrix_Dump()
* Incept: SRE, Mon Nov 29 19:21:20 2004 [St. Louis]
@@ -421,8 +424,140 @@ esl_dmatrix_Dump(FILE *ofp, const ESL_DMATRIX *A, const char *rowlabel, const ch
return eslOK;
}
+
/*****************************************************************
- * 3. The ESL_PERMUTATION object.
+ * 3. Visualization tools
+ *****************************************************************/
+
+/* Function: esl_dmatrix_PlotHeatMap()
+ * Synopsis: Export a heat map visualization, in PostScript
+ *
+ * Purpose: Export a heat map visualization of the matrix in <D>
+ * to open stream <fp>, in PostScript format.
+ *
+ * All values between <min> and <max> in <D> are rescaled
+ * linearly and assigned to shades. Values below <min>
+ * are assigned to the lowest shade; values above <max>, to
+ * the highest shade.
+ *
+ * The plot is hardcoded to be a full US 8x11.5" page,
+ * with at least a 20pt margin.
+ *
+ * Several color schemes are enumerated in the code
+ * but all but one is commented out. The currently enabled
+ * scheme is a 10-class scheme consisting of the 9-class
+ * Reds from colorbrewer2.org plus a blue background class.
+ *
+ * Note: Binning rules basically follow same convention as
+ * esl_histogram. nb = xmax-xmin/w, so w = xmax-xmin/nb;
+ * picking bin is (int) ceil((x - xmin)/w) - 1. (xref
+ * esl_histogram_Score2Bin()). This makes bin b contain
+ * values bw+min < x <= (b+1)w+min. (Which means that
+ * min itself falls in bin -1, whoops - but we catch
+ * all bin<0 and bin>=nshades and put them in the extremes.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+esl_dmatrix_PlotHeatMap(FILE *fp, ESL_DMATRIX *D, double min, double max)
+{
+#if 0
+ /*
+ * This color scheme roughly follows Tufte, Envisioning Information,
+ * p.91, where he shows a beautiful bathymetric chart. The CMYK
+ * values conjoin two recommendations from ColorBrewer (Cindy Brewer
+ * and Mark Harrower, colorbrewer2.org), specifically the 9-class
+ * sequential2 Blues and 9-class sequential YlOrBr.
+ */
+ int nshades = 18;
+ double cyan[] = { 1.00, 1.00, 0.90, 0.75, 0.57, 0.38, 0.24, 0.13, 0.03,
+ 0.00, 0.00, 0.00, 0.00, 0.00, 0.07, 0.20, 0.40, 0.60};
+ double magenta[] = { 0.55, 0.45, 0.34, 0.22, 0.14, 0.08, 0.06, 0.03, 0.01,
+ 0.00, 0.03, 0.11, 0.23, 0.40, 0.55, 0.67, 0.75, 0.80};
+ double yellow[] = { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
+ 0.10, 0.25, 0.40, 0.65, 0.80, 0.90, 1.00, 1.00, 1.00};
+ double black[] = { 0.30, 0.07, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00,
+ 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00};
+#endif
+#if 0
+ /* colorbrewer2.org 5-class YlOrBr scheme: sequential, multihue, 5-class, CMYK */
+ int nshades = 5;
+ double cyan[] = { 0.00, 0.00, 0.00, 0.15, 0.40 };
+ double magenta[] = { 0.00, 0.15, 0.40, 0.60, 0.75 };
+ double yellow[] = { 0.17, 0.40, 0.80, 0.95, 1.00 };
+ double black[] = { 0, 0, 0, 0, 0 };
+#endif
+#if 0
+ /* colorbrewer2.org 9-class YlOrBr scheme, +zero class */
+ int nshades = 10;
+ double cyan[] = { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.07, 0.20, 0.40, 0.60 };
+ double magenta[] = { 0.00, 0.00, 0.03, 0.11, 0.23, 0.40, 0.55, 0.67, 0.75, 0.80 };
+ double yellow[] = { 0.00, 0.10, 0.25, 0.40, 0.65, 0.80, 0.90, 1.00, 1.00, 1.00 };
+ double black[] = { 0.05, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 };
+#endif
+ /* colorbrewer2.org 9-class Reds + zero class as dim blue */
+ int nshades = 10;
+ double cyan[] = { 0.30, 0.00, 0.00, 0.00, 0.00, 0.00, 0.05, 0.20, 0.35, 0.60 };
+ double magenta[] = { 0.03, 0.04, 0.12, 0.27, 0.43, 0.59, 0.77, 0.90, 0.95, 1.00 };
+ double yellow[] = { 0.00, 0.04, 0.12, 0.27, 0.43, 0.59, 0.72, 0.80, 0.85, 0.90 };
+ double black[] = { 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 };
+
+ int pageheight = 792;
+ int pagewidth = 612;
+ double w;
+ int i,j;
+ int bin;
+ float boxsize; /* box size in points */
+ float xcoord, ycoord; /* postscript coords in points */
+ float leftmargin;
+ float bottommargin;
+
+ /* Set some defaults that might become arguments later.
+ */
+ leftmargin = 20.;
+ bottommargin = 20.;
+
+ /* Determine some working parameters
+ */
+ w = (max-min) / (double) nshades; /* w = bin size for assigning values->colors*/
+ boxsize = ESL_MIN( (pageheight - (bottommargin * 2.)) / (float) D->n,
+ (pagewidth - (leftmargin * 2.)) / (float) D->m);
+
+ /* or start from j=i, to do diagonals */
+ for (i = 0; i < D->n; i++)
+ for (j = 0; j < D->m; j++)
+ {
+ xcoord = (float) j * boxsize + leftmargin;
+ ycoord = (float) (D->n-i+1) * boxsize + bottommargin;
+
+ if (D->mx[i][j] == -eslINFINITY) bin = 0;
+ else if (D->mx[i][j] == eslINFINITY) bin = nshades-1;
+ else {
+ bin = (int) ceil((D->mx[i][j] - min) / w) - 1;
+ if (bin < 0) bin = 0;
+ if (bin >= nshades) bin = nshades-1;
+ }
+
+ fprintf(fp, "newpath\n");
+ fprintf(fp, " %.2f %.2f moveto\n", xcoord, ycoord);
+ fprintf(fp, " 0 %.2f rlineto\n", boxsize);
+ fprintf(fp, " %.2f 0 rlineto\n", boxsize);
+ fprintf(fp, " 0 -%.2f rlineto\n", boxsize);
+ fprintf(fp, " closepath\n");
+ fprintf(fp, " %.2f %.2f %.2f %.2f setcmykcolor\n",
+ cyan[bin], magenta[bin], yellow[bin], black[bin]);
+ fprintf(fp, " fill\n");
+ }
+ fprintf(fp, "showpage\n");
+ return eslOK;
+}
+
+
+
+/*****************************************************************
+ * 4. The ESL_PERMUTATION object.
*****************************************************************/
/* Function: esl_permutation_Create()
@@ -448,6 +583,8 @@ esl_permutation_Create(int n)
int status;
ESL_PERMUTATION *P = NULL;
+ ESL_DASSERT1(( n > 0 ));
+
ESL_ALLOC(P, sizeof(ESL_PERMUTATION));
P->pi = NULL;
P->n = n;
@@ -491,7 +628,7 @@ esl_permutation_Reuse(ESL_PERMUTATION *P)
/*****************************************************************
- * 4. Debugging/validation for ESL_PERMUTATION.
+ * 5. Debugging/validation for ESL_PERMUTATION.
*****************************************************************/
/* Function: esl_permutation_Dump()
@@ -537,7 +674,7 @@ esl_permutation_Dump(FILE *ofp, const ESL_PERMUTATION *P, const char *rowlabel,
}
/*****************************************************************
- * 5. The rest of the dmatrix API.
+ * 6. The rest of the dmatrix API.
*****************************************************************/
@@ -890,7 +1027,7 @@ esl_dmx_AddScale(ESL_DMATRIX *A, double k, const ESL_DMATRIX *B)
if (A->n != B->n) ESL_EXCEPTION(eslEINVAL, "matrices of different size");
if (A->m != B->m) ESL_EXCEPTION(eslEINVAL, "matrices of different size");
- if (A->type != A->type) ESL_EXCEPTION(eslEINVAL, "matrices of different type");
+ if (A->type != B->type) ESL_EXCEPTION(eslEINVAL, "matrices of different type");
for (i = 0; i < A->ncells; i++) A->mx[0][i] += k * B->mx[0][i];
return eslOK;
@@ -948,7 +1085,8 @@ esl_dmx_Permute_PA(const ESL_PERMUTATION *P, const ESL_DMATRIX *A, ESL_DMATRIX *
int
esl_dmx_LUP_decompose(ESL_DMATRIX *A, ESL_PERMUTATION *P)
{
- int i,j,k,kpiv;
+ int i,j,k;
+ int kpiv = 0; // initialization serves to quiet overzealous static analyzers
double max;
double swap;
@@ -959,10 +1097,11 @@ esl_dmx_LUP_decompose(ESL_DMATRIX *A, ESL_PERMUTATION *P)
for (k = 0; k < A->n-1; k++)
{
- /* Identify our pivot;
- * find row with maximum value in col[k].
+ /* Identify our pivot; find row with maximum value in col[k].
+ * This is guaranteed to succeed and set <kpiv>
+ * (no matter what a static analyzer tells you)
*/
- max = 0.;
+ max = 0.;
for (i = k; i < A->n; i++)
if (fabs(A->mx[i][k]) > max) {
max = fabs(A->mx[i][k]);
@@ -1066,10 +1205,10 @@ esl_dmx_Invert(const ESL_DMATRIX *A, ESL_DMATRIX *Ai)
/* Copy A to LU, and do an LU decomposition.
*/
- if ((LU = esl_dmatrix_Create(A->n, A->m)) == NULL) goto ERROR;
- if ((P = esl_permutation_Create(A->n)) == NULL) goto ERROR;
- if ( esl_dmatrix_Copy(A, LU) != eslOK) goto ERROR;
- if ( esl_dmx_LUP_decompose(LU, P) != eslOK) goto ERROR;
+ if ((LU = esl_dmatrix_Create(A->n, A->m)) == NULL) { status = eslEMEM; goto ERROR; }
+ if ((P = esl_permutation_Create(A->n)) == NULL) { status = eslEMEM; goto ERROR; }
+ if (( status = esl_dmatrix_Copy(A, LU)) != eslOK) goto ERROR;
+ if (( status = esl_dmx_LUP_decompose(LU, P)) != eslOK) goto ERROR;
/* Now we have:
* PA = LU
@@ -1127,7 +1266,7 @@ esl_dmx_Invert(const ESL_DMATRIX *A, ESL_DMATRIX *Ai)
/*****************************************************************
- * 6. Optional: interoperability with GSL
+ * 7. Optional: interoperability with GSL
*****************************************************************/
#ifdef HAVE_LIBGSL
@@ -1166,7 +1305,7 @@ esl_dmx_UnmorphGSL(const gsl_matrix *G, ESL_DMATRIX **ret_E)
#endif /*HAVE_LIBGSL*/
/*****************************************************************
- * 7. Optional: Interfaces to LAPACK
+ * 8. Optional: Interfaces to LAPACK
*****************************************************************/
#ifdef HAVE_LIBLAPACK
@@ -1308,7 +1447,7 @@ esl_dmx_Diagonalize(const ESL_DMATRIX *A, double **ret_Er, double **ret_Ei,
#endif /*HAVE_LIBLAPACK*/
/*****************************************************************
- * 8. Unit tests
+ * 9. Unit tests
*****************************************************************/
#ifdef eslDMATRIX_TESTDRIVE
@@ -1374,7 +1513,7 @@ utest_Invert(ESL_DMATRIX *A)
/*****************************************************************
- * 9. Test driver
+ * 10. Test driver
*****************************************************************/
/* gcc -g -Wall -o test -I. -L. -DeslDMATRIX_TESTDRIVE esl_dmatrix.c -leasel -lm
@@ -1411,7 +1550,7 @@ int main(void)
/*****************************************************************
- * 10. Examples
+ * 11. Examples
*****************************************************************/
/* gcc -g -Wall -o example -I. -DeslDMATRIX_EXAMPLE esl_dmatrix.c easel.c -lm
@@ -1448,13 +1587,13 @@ int main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_dmatrix.c 755 2012-03-21 11:30:23Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_dmatrix.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_dmatrix.h b/easel/esl_dmatrix.h
index 7d9fd13..d59cafa 100644
--- a/easel/esl_dmatrix.h
+++ b/easel/esl_dmatrix.h
@@ -1,8 +1,8 @@
/* Double-precision two-dimensional matrices, and some linear algebra
*
* SRE, Tue Jul 13 14:41:07 2004 [St. Louis]
- * SVN $Id: esl_dmatrix.h 755 2012-03-21 11:30:23Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_dmatrix.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslDMATRIX_INCLUDED
#define eslDMATRIX_INCLUDED
@@ -41,16 +41,19 @@ extern int esl_dmatrix_SetIdentity(ESL_DMATRIX *A);
extern int esl_dmatrix_Dump(FILE *ofp, const ESL_DMATRIX *A,
const char *rowlabel, const char *collabel);
-/* 3. The ESL_PERMUTATION object. */
+/* 3. Visualization tools. */
+extern int esl_dmatrix_PlotHeatMap(FILE *fp, ESL_DMATRIX *D, double min, double max);
+
+/* 4. The ESL_PERMUTATION object. */
extern ESL_PERMUTATION *esl_permutation_Create(int n);
extern int esl_permutation_Destroy(ESL_PERMUTATION *P);
extern int esl_permutation_Reuse(ESL_PERMUTATION *P);
-/* 4. Debugging/validation for ESL_PERMUTATION. */
+/* 5. Debugging/validation for ESL_PERMUTATION. */
extern int esl_permutation_Dump(FILE *ofp, const ESL_PERMUTATION *P,
const char *rowlabel, const char *collabel);
-/* 5. The rest of the dmatrix API. */
+/* 6. The rest of the dmatrix API. */
extern double esl_dmx_Max (const ESL_DMATRIX *A);
extern double esl_dmx_Min (const ESL_DMATRIX *A);
extern double esl_dmx_Sum (const ESL_DMATRIX *A);
@@ -67,14 +70,14 @@ extern int esl_dmx_LUP_decompose(ESL_DMATRIX *A, ESL_PERMUTATION *P);
extern int esl_dmx_LU_separate(const ESL_DMATRIX *LU, ESL_DMATRIX *L, ESL_DMATRIX *U);
extern int esl_dmx_Invert(const ESL_DMATRIX *A, ESL_DMATRIX *Ai);
-/* 6. Optional: interoperability with GSL */
+/* 7. Optional: interoperability with GSL */
#ifdef HAVE_LIBGSL
#include <gsl/gsl_matrix.h>
extern int esl_dmx_MorphGSL(const ESL_DMATRIX *E, gsl_matrix **ret_G);
extern int esl_dmx_UnmorphGSL(const gsl_matrix *G, ESL_DMATRIX **ret_E);
#endif
-/* 7. Optional: interfaces to LAPACK */
+/* 8. Optional: interfaces to LAPACK */
#ifdef HAVE_LIBLAPACK
extern int esl_dmx_Diagonalize(const ESL_DMATRIX *A, double **ret_Er, double **ret_Ei, ESL_DMATRIX **ret_UL, ESL_DMATRIX **ret_UR);
#endif
@@ -82,11 +85,11 @@ extern int esl_dmx_Diagonalize(const ESL_DMATRIX *A, double **ret_Er, double **r
#endif /*eslDMATRIX_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_dsqdata.c b/easel/esl_dsqdata.c
new file mode 100644
index 0000000..14b6872
--- /dev/null
+++ b/easel/esl_dsqdata.c
@@ -0,0 +1,1700 @@
+/* esl_dsqdata : faster sequence input
+ *
+ * Implements a predigitized binary file format for biological
+ * sequences. Sequence data are packed bitwise into 32-bit packets,
+ * where each packet contains either six 5-bit residues or fifteen
+ * 2-bit residues, plus two control bits. Input is asynchronous,
+ * using POSIX threads, with a "reader" thread doing disk reads and an
+ * "unpacker" thread preparing chunks of sequences for
+ * analysis. Sequence data and metadata are stored in separate files,
+ * which sometimes may allow further input acceleration by deferring
+ * metadata accesses until they're actually needed.
+ *
+ * A DSQDATA database <basename> is stored in four files:
+ * - basename : a human-readable stub
+ * - basename.dsqi : index file, enabling random access & parallel chunking
+ * - basename.dsqm : metadata including names, accessions, descs, taxonomy
+ * - basename.dsqs : sequences, in a packed binary format
+ *
+ * Contents:
+ * 1. ESL_DSQDATA: reading dsqdata format
+ * 2. Creating dsqdata format from a sequence file
+ * 3. ESL_DSQDATA_CHUNK, a chunk of input sequence data
+ * 4. Loader and unpacker, the input threads
+ * 5. Packing sequences and unpacking chunks
+ * 6. Notes and references
+ * 7. Unit tests
+ * 8. Test driver
+ * 9. Examples
+ */
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_dsqdata.h"
+#include "esl_random.h"
+#include "esl_sq.h"
+#include "esl_sqio.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdint.h>
+#include <pthread.h>
+
+static ESL_DSQDATA_CHUNK *dsqdata_chunk_Create (ESL_DSQDATA *dd);
+static void dsqdata_chunk_Destroy(ESL_DSQDATA_CHUNK *chu);
+
+static void *dsqdata_loader_thread (void *p);
+static void *dsqdata_unpacker_thread(void *p);
+
+static int dsqdata_unpack_chunk(ESL_DSQDATA_CHUNK *chu, int do_pack5);
+static int dsqdata_unpack5(uint32_t *psq, ESL_DSQ *dsq, int *ret_L, int *ret_P);
+static int dsqdata_unpack2(uint32_t *psq, ESL_DSQ *dsq, int *ret_L, int *ret_P);
+static int dsqdata_pack5 (ESL_DSQ *dsq, int L, uint32_t *psq, int *ret_P);
+static int dsqdata_pack2 (ESL_DSQ *dsq, int L, uint32_t *psq, int *ret_P);
+
+
+/* Embedded magic numbers allow us to validate the correct binary
+ * format, with version (if needed in the future), and to detect
+ * byteswapping.
+ */
+static uint32_t eslDSQDATA_MAGIC_V1 = 0xc4d3d1b1; // "dsq1" + 0x80808080
+static uint32_t eslDSQDATA_MAGIC_V1SWAP = 0xb1d1d3c4; // ... as above, but byteswapped.
+
+/*****************************************************************
+ *# 1. <ESL_DSQDATA>: reading dsqdata format
+ *****************************************************************/
+
+/* Function: esl_dsqdata_Open()
+ * Synopsis: Open a digital sequence database for reading
+ * Incept: SRE, Wed Jan 20 09:50:00 2016 [Amtrak 2150, NYP-BOS]
+ *
+ * Purpose: Open digital sequence database <basename> for reading.
+ * Configure it for a specified number of 1 or
+ * more parallelized <nconsumers>. The consumers are one or
+ * more threads that are processing chunks of data in
+ * parallel.
+ *
+ * The file <basename> is a human-readable stub describing
+ * the database. The bulk of the data are in three
+ * accompanying binary files: the index file
+ * <basename>.dsqi, the metadata file <basename>.dsqm, and
+ * the sequence file <basename>.dsqs.
+ *
+ * <byp_abc> provides a way to either tell <dsqdata> to
+ * expect a specific alphabet in the <basename> database
+ * (and return a normal failure on a mismatch), or, when
+ * the alphabet remains unknown, to figure out the alphabet
+ * in <basename> is and allocate and return a new alphabet.
+ * <byp_abc> uses a partial Easel "bypass" idiom for this:
+ * if <*byp_abc> is NULL, we allocate and return a new
+ * alphabet; if <*byp_abc> is a ptr to an existing
+ * alphabet, we use it for validation. That is,
+ *
+ * \begin{cchunk}
+ * abc = NULL;
+ * esl_dsqdata_Open(&abc, basename...)
+ * // <abc> is now the alphabet of <basename>;
+ * // you're responsible for Destroy'ing it
+ * \end{cchunk}
+ *
+ * or:
+ * \begin{cchunk}
+ * abc = esl_alphabet_Create(eslAMINO);
+ * status = esl_dsqdata_Open(&abc, basename);
+ * // if status == eslEINCOMPAT, alphabet in basename
+ * // doesn't match caller's expectation
+ * \end{cchunk}
+ *
+ * Args: byp_abc : optional alphabet hint; pass &abc or NULL.
+ * basename : data are in files <basename> and <basename.dsq[ism]>
+ * nconsumers : number of consumer threads caller is going to Read() with
+ * ret_dd : RETURN : the new ESL_DSQDATA object.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * <eslENOTFOUND> if one or more of the expected datafiles
+ * aren't there or can't be opened.
+ *
+ * <eslEFORMAT> if something looks wrong in parsing file
+ * formats. Includes problems in headers, and also the
+ * case where caller provides a digital alphabet in
+ * <*byp_abc> and it doesn't match the database's alphabet.
+ *
+ * On any normal error, <*ret_dd> is still returned, but in
+ * an error state, and <dd->errbuf> is a user-directed
+ * error message that the caller can relay to the user. Other
+ * than the <errbuf>, the rest of the contents are undefined.
+ *
+ * Throws: <eslEMEM> on allocation error.
+ * <eslESYS> on system call failure.
+ * <eslEUNIMPLEMENTED> if data are byteswapped
+ * TODO: handle byteswapping
+ *
+ * On any thrown exception, <*ret_dd> is returned NULL.
+ */
+int
+esl_dsqdata_Open(ESL_ALPHABET **byp_abc, char *basename, int nconsumers, ESL_DSQDATA **ret_dd)
+{
+ ESL_DSQDATA *dd = NULL;
+ int bufsize = 4096;
+ uint32_t magic = 0;
+ uint32_t tag = 0;
+ uint32_t alphatype = eslUNKNOWN;
+ char *p; // used for strtok() parsing of fields on a line
+ char buf[4096];
+ int status;
+
+ ESL_DASSERT1(( nconsumers > 0 ));
+
+ ESL_ALLOC(dd, sizeof(ESL_DSQDATA));
+ dd->stubfp = NULL;
+ dd->ifp = NULL;
+ dd->sfp = NULL;
+ dd->mfp = NULL;
+ dd->abc_r = *byp_abc; // This may be NULL; if so, we create it later.
+ dd->magic = 0;
+ dd->uniquetag = 0;
+ dd->flags = 0;
+ dd->max_namelen = 0;
+ dd->max_acclen = 0;
+ dd->max_desclen = 0;
+ dd->max_seqlen = 0;
+ dd->nseq = 0;
+ dd->nres = 0;
+
+ dd->chunk_maxseq = eslDSQDATA_CHUNK_MAXSEQ; // someday we may want to allow tuning these
+ dd->chunk_maxpacket = eslDSQDATA_CHUNK_MAXPACKET;
+ dd->do_byteswap = FALSE;
+ dd->pack5 = FALSE;
+
+ dd->nconsumers = nconsumers;
+ dd->loader_outbox = NULL;
+ dd->unpacker_outbox = NULL;
+ dd->recycling = NULL;
+ dd->errbuf[0] = '\0';
+ dd->at_eof = FALSE;
+ dd->lt_c = dd->lom_c = dd->lof_c = dd->loe_c = FALSE;
+ dd->ut_c = dd->uom_c = dd->uof_c = dd->uoe_c = FALSE;
+ dd->rm_c = dd->r_c = FALSE;
+ dd->errbuf[0] = '\0';
+
+ /* Open the four files.
+ */
+ ESL_ALLOC( dd->basename, sizeof(char) * (strlen(basename) + 6)); // +5 for .dsqx; +1 for \0
+ if ( sprintf(dd->basename, "%s.dsqi", basename) <= 0) ESL_XEXCEPTION_SYS(eslESYS, "sprintf() failure");
+ if (( dd->ifp = fopen(dd->basename, "rb")) == NULL) ESL_XFAIL(eslENOTFOUND, dd->errbuf, "Failed to find or open index file %s\n", dd->basename);
+
+ if ( sprintf(dd->basename, "%s.dsqm", basename) <= 0) ESL_XEXCEPTION_SYS(eslESYS, "sprintf() failure");
+ if (( dd->mfp = fopen(dd->basename, "rb")) == NULL) ESL_XFAIL(eslENOTFOUND, dd->errbuf, "Failed to find or open metadata file %s\n", dd->basename);
+
+ if ( sprintf(dd->basename, "%s.dsqs", basename) <= 0) ESL_XEXCEPTION_SYS(eslESYS, "sprintf() failure");
+ if (( dd->sfp = fopen(dd->basename, "rb")) == NULL) ESL_XFAIL(eslENOTFOUND, dd->errbuf, "Failed to find or open sequence file %s\n", dd->basename);
+
+ strcpy(dd->basename, basename);
+ if (( dd->stubfp = fopen(dd->basename, "r")) == NULL) ESL_XFAIL(eslENOTFOUND, dd->errbuf, "Failed to find or open stub file %s\n", dd->basename);
+
+ /* The stub file is unparsed, intended to be human readable, with one exception:
+ * The first line contains the unique tag that we use to validate linkage of the 4 files.
+ * The format of that first line is:
+ * Easel dsqdata v123 x0000000000
+ */
+ if ( fgets(buf, bufsize, dd->stubfp) == NULL) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file is empty - no tag line found");
+ if (( p = strtok(buf, " \t\n\r")) == NULL) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format: tag line has no data");
+ if ( strcmp(p, "Easel") != 0) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format in tag line");
+ if (( p = strtok(NULL, " \t\n\r")) == NULL) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format in tag line");
+ if ( strcmp(p, "dsqdata") != 0) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format in tag line");
+ if (( p = strtok(NULL, " \t\n\r")) == NULL) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format in tag line");
+ if ( *p != 'v') ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format: no v on version");
+ if ( ! esl_str_IsInteger(p+1)) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file had bad format: no version number");
+ // version number is currently unused: there's only 1
+ if (( p = strtok(NULL, " \t\n\r")) == NULL) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format in tag line");
+ if ( *p != 'x') ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file has bad format: no x on tag");
+ if ( ! esl_str_IsInteger(p+1)) ESL_XFAIL(eslEFORMAT, dd->errbuf, "stub file had bad format: no integer tag");
+ dd->uniquetag = strtoul(p+1, NULL, 10);
+
+ /* Index file has a header of 7 uint32's, 3 uint64's */
+ if ( fread(&(dd->magic), sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file has no header - is empty?");
+ if ( fread(&tag, sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no tag");
+ if ( fread(&alphatype, sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no alphatype");
+ if ( fread(&(dd->flags), sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no flags");
+ if ( fread(&(dd->max_namelen), sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no max name len");
+ if ( fread(&(dd->max_acclen), sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no max accession len");
+ if ( fread(&(dd->max_desclen), sizeof(uint32_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no max description len");
+
+ if ( fread(&(dd->max_seqlen), sizeof(uint64_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no max seq len");
+ if ( fread(&(dd->nseq), sizeof(uint64_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no nseq");
+ if ( fread(&(dd->nres), sizeof(uint64_t), 1, dd->ifp) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file header truncated, no nres");
+
+ /* Check the magic and the tag */
+ if (tag != dd->uniquetag) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file has bad tag, doesn't go with stub file");
+ // Eventually we would set dd->do_byteswap = TRUE; below.
+ if (dd->magic == eslDSQDATA_MAGIC_V1SWAP) ESL_XEXCEPTION(eslEUNIMPLEMENTED, "dsqdata cannot yet read data in different byte orders");
+ else if (dd->magic != eslDSQDATA_MAGIC_V1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file has bad magic");
+
+ /* Either validate, or create the alphabet */
+ if (dd->abc_r)
+ {
+ if (alphatype != dd->abc_r->type)
+ ESL_XFAIL(eslEFORMAT, dd->errbuf, "data files use %s alphabet; expected %s alphabet",
+ esl_abc_DecodeType(alphatype),
+ esl_abc_DecodeType(dd->abc_r->type));
+ }
+ else
+ {
+ if ( esl_abc_ValidateType(alphatype) != eslOK) ESL_XFAIL(eslEFORMAT, dd->errbuf, "index file has invalid alphabet type %d", alphatype);
+ if (( dd->abc_r = esl_alphabet_Create(alphatype)) == NULL) ESL_XEXCEPTION(eslEMEM, "alphabet creation failed");
+ }
+
+ /* If it's protein, flip the switch to expect all 5-bit packing */
+ if (dd->abc_r->type == eslAMINO) dd->pack5 = TRUE;
+
+ /* Metadata file has a header of 2 uint32's, magic and uniquetag */
+ if (( fread(&magic, sizeof(uint32_t), 1, dd->mfp)) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "metadata file has no header - is empty?");
+ if (( fread(&tag, sizeof(uint32_t), 1, dd->mfp)) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "metadata file header truncated - no tag?");
+ if ( magic != dd->magic) ESL_XFAIL(eslEFORMAT, dd->errbuf, "metadata file has bad magic");
+ if ( tag != dd->uniquetag) ESL_XFAIL(eslEFORMAT, dd->errbuf, "metadata file has bad tag, doesn't match stub");
+
+ /* Sequence file also has a header of 2 uint32's, magic and uniquetag */
+ if (( fread(&magic, sizeof(uint32_t), 1, dd->sfp)) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "sequence file has no header - is empty?");
+ if (( fread(&tag, sizeof(uint32_t), 1, dd->sfp)) != 1) ESL_XFAIL(eslEFORMAT, dd->errbuf, "sequence file header truncated - no tag?");
+ if ( magic != dd->magic) ESL_XFAIL(eslEFORMAT, dd->errbuf, "sequence file has bad magic");
+ if ( tag != dd->uniquetag) ESL_XFAIL(eslEFORMAT, dd->errbuf, "sequence file has bad tag, doesn't match stub");
+
+ /* Create the loader and unpacker threads.
+ */
+ if ( pthread_mutex_init(&dd->loader_outbox_mutex, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_mutex_init() failed"); dd->lom_c = TRUE;
+ if ( pthread_mutex_init(&dd->unpacker_outbox_mutex, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_mutex_init() failed"); dd->uom_c = TRUE;
+ if ( pthread_mutex_init(&dd->recycling_mutex, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_mutex_init() failed"); dd->rm_c = TRUE;
+
+ if ( pthread_cond_init(&dd->loader_outbox_full_cv, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_cond_init() failed"); dd->lof_c = TRUE;
+ if ( pthread_cond_init(&dd->loader_outbox_empty_cv, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_cond_init() failed"); dd->loe_c = TRUE;
+ if ( pthread_cond_init(&dd->unpacker_outbox_full_cv, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_cond_init() failed"); dd->uof_c = TRUE;
+ if ( pthread_cond_init(&dd->unpacker_outbox_empty_cv, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_cond_init() failed"); dd->uoe_c = TRUE;
+ if ( pthread_cond_init(&dd->recycling_cv, NULL) != 0) ESL_XEXCEPTION(eslESYS, "pthread_cond_init() failed"); dd->r_c = TRUE;
+
+ if ( pthread_create(&dd->unpacker_t, NULL, dsqdata_unpacker_thread, dd) != 0) ESL_XEXCEPTION(eslESYS, "pthread_create() failed"); dd->ut_c = TRUE;
+ if ( pthread_create(&dd->loader_t, NULL, dsqdata_loader_thread, dd) != 0) ESL_XEXCEPTION(eslESYS, "pthread_create() failed"); dd->lt_c = TRUE;
+
+ *ret_dd = dd;
+ *byp_abc = dd->abc_r; // If caller provided <*byp_abc> this is a no-op, because we set abc_r = *byp_abc.
+ return eslOK; // .. otherwise we're passing the created <abc> back to caller, caller's
+ // responsibility, we just keep the reference to it.
+ ERROR:
+ if (status == eslENOTFOUND || status == eslEFORMAT || status == eslEINCOMPAT)
+ { /* on normal errors, we return <dd> with its <errbuf>, don't change *byp_abc */
+ *ret_dd = dd;
+ if (*byp_abc == NULL && dd->abc_r) esl_alphabet_Destroy(dd->abc_r);
+ return status;
+ }
+ else
+ { /* on exceptions, we free <dd>, return it NULL, don't change *byp_abc */
+ esl_dsqdata_Close(dd);
+ *ret_dd = NULL;
+ if (*byp_abc == NULL && dd->abc_r) esl_alphabet_Destroy(dd->abc_r);
+ return status;
+ }
+}
+
+
+/* Function: esl_dsqdata_Read()
+ * Synopsis: Read next chunk of sequence data.
+ * Incept: SRE, Thu Jan 21 11:21:38 2016 [Harvard]
+ *
+ * Purpose: Read the next chunk from <dd>, return a pointer to it in
+ * <*ret_chu>, and return <eslOK>. When data are exhausted,
+ * return <eslEOF>, and <*ret_chu> is <NULL>.
+ *
+ * Threadsafe. All thread operations in the dsqdata reader
+ * are handled internally. Caller does not have to worry
+ * about wrapping this in a mutex. Multiple caller threads
+ * can call <esl_dsqdata_Read()>.
+ *
+ * All chunk allocation and deallocation is handled
+ * internally. After using a chunk, caller gives it back to
+ * the reader using <esl_dsqdata_Recycle()>.
+ *
+ * Args: dd : open dsqdata object to read from
+ * ret_chu : RETURN : next chunk of seq data
+ *
+ * Returns: <eslOK> on success. <*ret_chu> is a chunk of seq data.
+ * Caller must call <esl_dsqdata_Recycle()> on each chunk
+ * that it Read()'s.
+ *
+ * <eslEOF> if we've reached the end of the input file;
+ * <*ret_chu> is NULL.
+ *
+ * Throws: <eslESYS> if a pthread call fails.
+ * Caller should treat this as disastrous. Without correctly
+ * working pthread calls, we cannot read, and we may not be able
+ * to correctly clean up and close the reader. Caller should
+ * treat <dd> as toxic, clean up whatever else it may need to,
+ * and exit.
+ */
+int
+esl_dsqdata_Read(ESL_DSQDATA *dd, ESL_DSQDATA_CHUNK **ret_chu)
+{
+ ESL_DSQDATA_CHUNK *chu = NULL;
+
+ /* The loader and unpacker have already done the work. All that
+ * _Read() needs to do is take a finished chunk from the unpacker's
+ * outbox. There's three possibilities here:
+ *
+ * 1. A chunk is waiting in the outbox (unpacker_outbox != NULL, chu->N > 0).
+ * Pick it up; signal back to the unpacker that we've done so.
+ *
+ * 2. An empty chunk is waiting in the outbox (unpacker_outbox !=
+ * NULL, chu->N == 0). This is the EOF signal from the unpacker.
+ * There's only one of them, so only one reader will see it.
+ * This reader raises the at_eof flag for all other readers to
+ * see. Now instead of signalling the *unpacker* (which already
+ * knows it is EOF), we must signal the other *readers*, who may
+ * be sitting on a conditional wait for the outbox to be
+ * non-NULL, which it will never be again: so we signal "outbox
+ * full", which really means "outbox full or at EOF". Then the
+ * reader recycles the empty chunk itself, and caller just gets a
+ * NULL chunk and a eslEOF return status.
+ *
+ * 3. The at_eof flag is up. Again we signal "outbox full or at EOF"
+ * to the remaining readers to wake them up, then return eslEOF.
+ *
+ * The reason for the above verbosity is that it's super easy to
+ * get a low-probability race condition here, and stall the threads.
+ */
+ if ( pthread_mutex_lock(&dd->unpacker_outbox_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ while (! dd->at_eof && dd->unpacker_outbox == NULL) {
+ if ( pthread_cond_wait(&dd->unpacker_outbox_full_cv, &dd->unpacker_outbox_mutex) != 0)
+ ESL_EXCEPTION(eslESYS, "pthread call failed");
+ }
+
+ chu = dd->unpacker_outbox;
+ dd->unpacker_outbox = NULL;
+
+ /* Case 1: A data chunk. */
+ if (chu && chu->N)
+ {
+ if ( pthread_mutex_unlock(&dd->unpacker_outbox_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ if ( pthread_cond_signal (&dd->unpacker_outbox_empty_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ *ret_chu = chu;
+ return eslOK;
+ }
+ /* Case 2. The EOF chunk. */
+ else if (chu)
+ {
+ dd->at_eof = TRUE;
+ if ( pthread_mutex_unlock(&dd->unpacker_outbox_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ if ( pthread_cond_signal (&dd->unpacker_outbox_full_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ esl_dsqdata_Recycle(dd, chu);
+ *ret_chu = NULL;
+ return eslEOF;
+ }
+ /* Case 3: Another reader already set eof */
+ else
+ {
+ if ( pthread_mutex_unlock(&dd->unpacker_outbox_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ if ( pthread_cond_signal (&dd->unpacker_outbox_full_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread call failed");
+ *ret_chu = NULL;
+ return eslEOF;
+ }
+ /*NOTREACHED*/
+}
+
+
+/* Function: esl_dsqdata_Recycle()
+ * Synopsis: Give a chunk back to the reader.
+ * Incept: SRE, Thu Feb 11 19:24:33 2016
+ *
+ * Purpose: Recycle chunk <chu> back to the reader <dd>. The reader
+ * is responsible for all allocation and deallocation of
+ * chunks. The reader will either reuse the chunk's memory
+ * if more chunks remain to be read, or it will free it.
+ *
+ * If <chu> is <NULL>, do nothing. This case arises when
+ * the reader is at EOF.
+ *
+ * Args: dd : the dsqdata reader
+ * chu : chunk to recycle
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslESYS> on a pthread call failure. Caller should regard
+ * such an error as disastrous; if pthread calls are
+ * failing, you cannot depend on the reader to be working
+ * at all, and you should treat <dd> as toxic. Do whatever
+ * desperate things you need to do and exit.
+ */
+int
+esl_dsqdata_Recycle(ESL_DSQDATA *dd, ESL_DSQDATA_CHUNK *chu)
+{
+ if (chu)
+ {
+ if ( pthread_mutex_lock(&dd->recycling_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread mutex lock failed");
+ chu->nxt = dd->recycling; // Push chunk onto head of recycling stack
+ dd->recycling = chu;
+ if ( pthread_mutex_unlock(&dd->recycling_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread mutex unlock failed");
+ if ( pthread_cond_signal(&dd->recycling_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread cond signal failed");
+ // That signal told the loader that there's a chunk it can recycle.
+ }
+ return eslOK;
+}
+
+
+
+/* Function: esl_dsqdata_Close()
+ * Synopsis: Close a dsqdata reader.
+ * Incept: SRE, Thu Feb 11 19:32:54 2016
+ *
+ * Purpose: Close a dsqdata reader.
+ *
+ * Returns: <eslOK> on success.
+
+ * Throws: <eslESYS> on a system call failure, including pthread
+ * calls and fclose(). Caller should regard such a failure
+ * as disastrous: treat <dd> as toxic and exit as soon as
+ * possible without making any other system calls, if possible.
+ */
+int
+esl_dsqdata_Close(ESL_DSQDATA *dd)
+{
+ if (dd)
+ {
+ if (dd->lt_c) { if ( pthread_join(dd->loader_t, NULL) != 0) ESL_EXCEPTION(eslESYS, "pthread join failed"); }
+ if (dd->ut_c) { if ( pthread_join(dd->unpacker_t, NULL) != 0) ESL_EXCEPTION(eslESYS, "pthread join failed"); }
+ if (dd->lof_c) { if ( pthread_cond_destroy(&dd->loader_outbox_full_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread cond destroy failed"); }
+ if (dd->loe_c) { if ( pthread_cond_destroy(&dd->loader_outbox_empty_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread cond destroy failed"); }
+ if (dd->uof_c) { if ( pthread_cond_destroy(&dd->unpacker_outbox_full_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread cond destroy failed"); }
+ if (dd->uoe_c) { if ( pthread_cond_destroy(&dd->unpacker_outbox_empty_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread cond destroy failed"); }
+ if (dd->r_c) { if ( pthread_cond_destroy(&dd->recycling_cv) != 0) ESL_EXCEPTION(eslESYS, "pthread cond destroy failed"); }
+ if (dd->lom_c) { if ( pthread_mutex_destroy(&dd->loader_outbox_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread mutex destroy failed"); }
+ if (dd->uom_c) { if ( pthread_mutex_destroy(&dd->unpacker_outbox_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread mutex destroy failed"); }
+ if (dd->rm_c) { if ( pthread_mutex_destroy(&dd->recycling_mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread mutex destroy failed"); }
+
+ if (dd->ifp) { if ( fclose(dd->ifp) != 0) ESL_EXCEPTION(eslESYS, "fclose failed"); }
+ if (dd->sfp) { if ( fclose(dd->sfp) != 0) ESL_EXCEPTION(eslESYS, "fclose failed"); }
+ if (dd->mfp) { if ( fclose(dd->mfp) != 0) ESL_EXCEPTION(eslESYS, "fclose failed"); }
+ if (dd->stubfp) { if ( fclose(dd->stubfp) != 0) ESL_EXCEPTION(eslESYS, "fclose failed"); }
+
+ if (dd->basename) free(dd->basename);
+
+ /* Loader thread is responsible for freeing all chunks it created, even on error. */
+ ESL_DASSERT1(( dd->loader_outbox == NULL ));
+ ESL_DASSERT1(( dd->unpacker_outbox == NULL ));
+ ESL_DASSERT1(( dd->recycling == NULL ));
+
+ free(dd);
+ }
+ return eslOK;
+}
+
+
+/*****************************************************************
+ *# 2. Creating dsqdata format from a sequence file
+ *****************************************************************/
+
+/* Function: esl_dsqdata_Write()
+ * Synopsis: Create a dsqdata database
+ * Incept: SRE, Sat Feb 13 07:33:30 2016 [AGBT 2016, Orlando]
+ *
+ * Purpose: Caller has just opened <sqfp>, in digital mode.
+ * Create a dsqdata database <basename> from the sequence
+ * data in <sqfp>.
+ *
+ * <sqfp> must be protein, DNA, or RNA sequence data. It
+ * must be rewindable (i.e. a file), because we have to
+ * read it twice. It must be newly opened (i.e. positioned
+ * at the start).
+ *
+ * Args: sqfp - newly opened sequence data file
+ * basename - base name of dsqdata files to create
+ * errbuf - user-directed error message on normal errors
+ *
+ * Returns: <eslOK> on success.
+ *
+ * <eslEWRITE> if an output file can't be opened. <errbuf>
+ * contains user-directed error message.
+ *
+ * <eslEFORMAT> if a parse error is encountered while
+ * reading <sqfp>.
+ *
+ *
+ * Throws: <eslESYS> A system call failed, such as fwrite().
+ * <eslEINVAL> Sequence handle <sqfp> isn't digital and rewindable.
+ * <eslEMEM> Allocation failure
+ * <eslEUNIMPLEMENTED> Sequence is too long to be encoded.
+ * (TODO: chromosome-scale DNA sequences)
+ */
+int
+esl_dsqdata_Write(ESL_SQFILE *sqfp, char *basename, char *errbuf)
+{
+ ESL_RANDOMNESS *rng = NULL;
+ ESL_SQ *sq = NULL;
+ FILE *stubfp = NULL;
+ FILE *ifp = NULL;
+ FILE *mfp = NULL;
+ FILE *sfp = NULL;
+ char *outfile = NULL;
+ uint32_t magic = eslDSQDATA_MAGIC_V1;
+ uint32_t uniquetag;
+ uint32_t alphatype;
+ uint32_t flags = 0;
+ uint32_t max_namelen = 0;
+ uint32_t max_acclen = 0;
+ uint32_t max_desclen = 0;
+ uint64_t max_seqlen = 0;
+ uint64_t nseq = 0;
+ uint64_t nres = 0;
+ int do_pack5 = FALSE;
+ uint32_t *psq;
+ ESL_DSQDATA_RECORD idx; // one index record to write
+ int plen;
+ int64_t spos = 0;
+ int64_t mpos = 0;
+ int n;
+ int status;
+
+ if (! esl_sqfile_IsRewindable(sqfp)) ESL_EXCEPTION(eslEINVAL, "sqfp must be rewindable (e.g. an open file)");
+ if (! sqfp->abc) ESL_EXCEPTION(eslEINVAL, "sqfp must be digital");
+ // Could also check that it's positioned at the start.
+ if ( (sq = esl_sq_CreateDigital(sqfp->abc)) == NULL) { status = eslEMEM; goto ERROR; }
+
+ /* First pass over the sequence file, to get statistics.
+ * Read it now, before opening any files, in case we find any parse errors.
+ */
+ while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
+ {
+ if (sq->n >= 6 * eslDSQDATA_CHUNK_MAXPACKET) // guaranteed limit
+ ESL_EXCEPTION(eslEUNIMPLEMENTED, "dsqdata cannot currently deal with large sequences");
+
+ nseq++;
+ nres += sq->n;
+ if (sq->n > max_seqlen) max_seqlen = sq->n;
+ n = strlen(sq->name); if (n > max_namelen) max_namelen = n;
+ n = strlen(sq->acc); if (n > max_acclen) max_acclen = n;
+ n = strlen(sq->desc); if (n > max_desclen) max_desclen = n;
+ esl_sq_Reuse(sq);
+ }
+ if (status == eslEFORMAT) ESL_XFAIL(eslEFORMAT, errbuf, sqfp->get_error(sqfp));
+ else if (status != eslEOF) return status;
+
+ if ((status = esl_sqfile_Position(sqfp, 0)) != eslOK) return status;
+
+
+ if (( rng = esl_randomness_Create(0) ) == NULL) { status = eslEMEM; goto ERROR; }
+ uniquetag = esl_random_uint32(rng);
+ alphatype = sqfp->abc->type;
+
+ if (alphatype == eslAMINO) do_pack5 = TRUE;
+ else if (alphatype != eslDNA && alphatype != eslRNA) ESL_EXCEPTION(eslEINVAL, "alphabet must be protein or nucleic");
+
+
+ if (( status = esl_sprintf(&outfile, "%s.dsqi", basename)) != eslOK) goto ERROR;
+ if (( ifp = fopen(outfile, "wb")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "failed to open dsqdata index file %s for writing", outfile);
+ sprintf(outfile, "%s.dsqm", basename);
+ if (( mfp = fopen(outfile, "wb")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "failed to open dsqdata metadata file %s for writing", outfile);
+ sprintf(outfile, "%s.dsqs", basename);
+ if (( sfp = fopen(outfile, "wb")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "failed to open dsqdata sequence file %s for writing", outfile);
+ if (( stubfp = fopen(basename, "w")) == NULL) ESL_XFAIL(eslEWRITE, errbuf, "failed to open dsqdata stub file %s for writing", basename);
+
+
+
+
+ /* Header: index file */
+ if (fwrite(&magic, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&uniquetag, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&alphatype, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&flags, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&max_namelen, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&max_acclen, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&max_desclen, sizeof(uint32_t), 1, ifp) != 1 ||
+ fwrite(&max_seqlen, sizeof(uint64_t), 1, ifp) != 1 ||
+ fwrite(&nseq, sizeof(uint64_t), 1, ifp) != 1 ||
+ fwrite(&nres, sizeof(uint64_t), 1, ifp) != 1)
+ ESL_XEXCEPTION_SYS(eslESYS, "fwrite() failed, index file header");
+
+ /* Header: metadata file */
+ if (fwrite(&magic, sizeof(uint32_t), 1, mfp) != 1 ||
+ fwrite(&uniquetag, sizeof(uint32_t), 1, mfp) != 1)
+ ESL_XEXCEPTION_SYS(eslESYS, "fwrite() failed, metadata file header");
+
+ /* Header: sequence file */
+ if (fwrite(&magic, sizeof(uint32_t), 1, sfp) != 1 ||
+ fwrite(&uniquetag, sizeof(uint32_t), 1, sfp) != 1)
+ ESL_XEXCEPTION_SYS(eslESYS, "fwrite() failed, metadata file header");
+
+ /* Second pass: index, metadata, and sequence files */
+ while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
+ {
+ /* Packed sequence */
+ psq = (uint32_t *) sq->dsq; // pack-in-place
+ ESL_DASSERT1(( sq->salloc >= 4 )); // required min space for pack-in-place
+ if (do_pack5) dsqdata_pack5(sq->dsq, sq->n, psq, &plen);
+ else dsqdata_pack2(sq->dsq, sq->n, psq, &plen);
+ if ( fwrite(psq, sizeof(uint32_t), plen, sfp) != plen)
+ ESL_XEXCEPTION(eslESYS, "fwrite() failed, packed seq");
+ spos += plen;
+
+ /* Metadata */
+ n = strlen(sq->name);
+ if ( fwrite(sq->name, sizeof(char), n+1, mfp) != n+1)
+ ESL_XEXCEPTION(eslESYS, "fwrite () failed, metadata, name");
+ mpos += n+1;
+
+ n = strlen(sq->acc);
+ if ( fwrite(sq->acc, sizeof(char), n+1, mfp) != n+1)
+ ESL_XEXCEPTION(eslESYS, "fwrite () failed, metadata, accession");
+ mpos += n+1;
+
+ n = strlen(sq->desc);
+ if ( fwrite(sq->desc, sizeof(char), n+1, mfp) != n+1)
+ ESL_XEXCEPTION(eslESYS, "fwrite () failed, metadata, description");
+ mpos += n+1;
+
+ if ( fwrite( &(sq->tax_id), sizeof(int32_t), 1, mfp) != 1)
+ ESL_XEXCEPTION(eslESYS, "fwrite () failed, metadata, taxonomy id");
+ mpos += sizeof(int32_t);
+
+ /* Index file */
+ idx.psq_end = spos-1; // could be -1, on 1st seq, if 1st seq L=0.
+ idx.metadata_end = mpos-1;
+ if ( fwrite(&idx, sizeof(ESL_DSQDATA_RECORD), 1, ifp) != 1)
+ ESL_XEXCEPTION(eslESYS, "fwrite () failed, index file");
+
+ esl_sq_Reuse(sq);
+ }
+
+ /* Stub file */
+ fprintf(stubfp, "Easel dsqdata v1 x%" PRIu32 "\n", uniquetag);
+ fprintf(stubfp, "\n");
+ fprintf(stubfp, "Original file: %s\n", sqfp->filename);
+ fprintf(stubfp, "Original format: %s\n", esl_sqio_DecodeFormat(sqfp->format));
+ fprintf(stubfp, "Type: %s\n", esl_abc_DecodeType(sqfp->abc->type));
+ fprintf(stubfp, "Sequences: %" PRIu64 "\n", nseq);
+ fprintf(stubfp, "Residues: %" PRIu64 "\n", nres);
+
+ esl_sq_Destroy(sq);
+ esl_randomness_Destroy(rng);
+ free(outfile);
+ fclose(stubfp);
+ fclose(ifp);
+ fclose(mfp);
+ fclose(sfp);
+ return eslOK;
+
+ ERROR:
+ if (sq) esl_sq_Destroy(sq);
+ if (rng) esl_randomness_Destroy(rng);
+ if (outfile) free(outfile);
+ if (stubfp) fclose(stubfp);
+ if (ifp) fclose(ifp);
+ if (mfp) fclose(mfp);
+ if (sfp) fclose(sfp);
+ return status;
+}
+
+
+
+/*****************************************************************
+ * 3. ESL_DSQDATA_CHUNK: a chunk of input sequence data
+ *****************************************************************/
+
+static ESL_DSQDATA_CHUNK *
+dsqdata_chunk_Create(ESL_DSQDATA *dd)
+{
+ ESL_DSQDATA_CHUNK *chu = NULL;
+ int U; // max size of unpacked seq data, in bytes (smem allocation)
+ int status;
+
+ ESL_ALLOC(chu, sizeof(ESL_DSQDATA_CHUNK));
+ chu->i0 = 0;
+ chu->N = 0;
+ chu->pn = 0;
+ chu->dsq = NULL;
+ chu->name = NULL;
+ chu->acc = NULL;
+ chu->desc = NULL;
+ chu->taxid = NULL;
+ chu->L = NULL;
+ chu->metadata = NULL;
+ chu->smem = NULL;
+ chu->nxt = NULL;
+
+ /* dsq, name, acc, desc are arrays of pointers into smem, metadata.
+ * taxid is cast to int, from the metadata.
+ * L is figured out by the unpacker.
+ * All of these are set by the unpacker.
+ */
+ ESL_ALLOC(chu->dsq, dd->chunk_maxseq * sizeof(ESL_DSQ *));
+ ESL_ALLOC(chu->name, dd->chunk_maxseq * sizeof(char *));
+ ESL_ALLOC(chu->acc, dd->chunk_maxseq * sizeof(char *));
+ ESL_ALLOC(chu->desc, dd->chunk_maxseq * sizeof(char *));
+ ESL_ALLOC(chu->taxid, dd->chunk_maxseq * sizeof(int));
+ ESL_ALLOC(chu->L, dd->chunk_maxseq * sizeof(int64_t));
+
+ /* On the <smem> allocation, and the <dsq> and <psq> pointers into it:
+ *
+ * <maxpacket> (in uint32's) sets the maximum single fread() size:
+ * one load of a new chunk of packed sequence, up to maxpacket*4
+ * bytes. <smem> needs to be able to hold both that and the fully
+ * unpacked sequence, because we unpack in place. Each packet
+ * unpacks to at most 6 or 15 residues (5-bit or 2-bit packing) We
+ * don't pack sentinels, so the maximum unpacked size includes
+ * <maxseq>+1 sentinels... because we concat the digital seqs so
+ * that the trailing sentinel of seq i is the leading sentinel of
+ * seq i+1.
+ *
+ * The packed seq (max of P bytes) loads overlap with the unpacked
+ * data (max of U bytes):
+ * psq
+ * v[ P bytes ]
+ * smem: 0........0........0..........0
+ * ^[ U bytes ]
+ * ^dsq[0] ^dsq[1] ^dsq[2]
+ *
+ * and as long as we unpack psq left to right -- and as long as we
+ * read the last packet before we write the last unpacked residues
+ * to smem - we're guaranteed that the unpacking works without
+ * overwriting any unpacked data.
+ */
+ U = (dd->pack5 ? 6 * dd->chunk_maxpacket : 15 * dd->chunk_maxpacket);
+ U += dd->chunk_maxseq + 1;
+ ESL_ALLOC(chu->smem, sizeof(ESL_DSQ) * U);
+ chu->psq = (uint32_t *) (chu->smem + U - 4*dd->chunk_maxpacket);
+
+ /* We don't have any guarantees about the amount of metadata
+ * associated with the N sequences, so <metadata> has to be a
+ * reallocatable space. We make a lowball guess for the initial
+ * alloc, on the off chance that the metadata size is small (names
+ * only, no acc/desc): minimally, say 12 bytes of name, 3 \0's, and
+ * 4 bytes for the taxid integer: call it 20.
+ */
+ chu->mdalloc = 20 * dd->chunk_maxseq;
+ ESL_ALLOC(chu->metadata, sizeof(char) * chu->mdalloc);
+
+ return chu;
+
+ ERROR:
+ dsqdata_chunk_Destroy(chu);
+ return NULL;
+}
+
+
+static void
+dsqdata_chunk_Destroy(ESL_DSQDATA_CHUNK *chu)
+{
+ if (chu)
+ {
+ if (chu->metadata) free(chu->metadata);
+ if (chu->smem) free(chu->smem);
+ if (chu->L) free(chu->L);
+ if (chu->taxid) free(chu->taxid);
+ if (chu->desc) free(chu->desc);
+ if (chu->acc) free(chu->acc);
+ if (chu->name) free(chu->name);
+ if (chu->dsq) free(chu->dsq);
+ free(chu);
+ }
+}
+
+
+/*****************************************************************
+ * 4. Loader and unpacker, the input threads
+ *****************************************************************/
+
+static void *
+dsqdata_loader_thread(void *p)
+{
+ ESL_DSQDATA *dd = (ESL_DSQDATA *) p;
+ ESL_DSQDATA_RECORD *idx = NULL;
+ ESL_DSQDATA_CHUNK *chu = NULL;
+ int nchunk = 0; // number of chunks we create, and need to destroy.
+ int nidx = 0; // how many records in <idx>: usually MAXSEQ, until end
+ int nload = 0; // how many sequences we load: >=1, <=nidx
+ int ncarried = 0; // how many records carry over to next iteration: nidx-nload
+ int nread = 0; // fread()'s return value
+ int nmeta = 0; // how many bytes of metadata we want to read for this chunk
+ int i0 = 0; // absolute index of first record in <idx>, 0-offset
+ int64_t psq_last = -1; // psq_end for record i0-1
+ int64_t meta_last = -1; // metadata_end for record i0-1
+ int done = FALSE;
+ int status;
+
+ ESL_ALLOC(idx, sizeof(ESL_DSQDATA_RECORD) * dd->chunk_maxseq);
+
+ while (! done)
+ {
+
+ /* Get a chunk - either by creating it, or recycling it.
+ * We'll create up to <nconsumers>+2 of them.
+ */
+ if (nchunk < dd->nconsumers+2)
+ {
+ if ( (chu = dsqdata_chunk_Create(dd)) == NULL) { status = eslEMEM; goto ERROR; }
+ nchunk++;
+ }
+ else
+ {
+ if ( pthread_mutex_lock(&dd->recycling_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex lock failed");
+ while (dd->recycling == NULL)
+ {
+ if ( pthread_cond_wait(&dd->recycling_cv, &dd->recycling_mutex) != 0)
+ ESL_XEXCEPTION(eslESYS, "pthread cond wait failed");
+ }
+ chu = dd->recycling;
+ dd->recycling = chu->nxt; // pop one off recycling stack
+ if ( pthread_mutex_unlock(&dd->recycling_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex unlock failed");
+ if ( pthread_cond_signal(&dd->recycling_cv) != 0) ESL_XEXCEPTION(eslESYS, "pthread cond signal failed");
+ // signal *after* unlocking mutex
+ }
+
+ /* Refill index. (The memmove is avoidable. Alt strategy: we could load in 2 frames)
+ * The previous loop loaded packed sequence for <nload'> of the <nidx'> entries,
+ * where the 's indicate the variable has carried over from prev iteration:
+ * |----- nload' ----||--- (ncarried) ---|
+ * |-------------- nidx' ----------------|
+ * Now we're going to shift the remainder ncarried = nidx-nload to the left, then refill:
+ * |---- ncarried ----||--- (MAXSEQ-ncarried) ---|
+ * |-------------- MAXSEQ -----------------------|
+ * while watching out for the terminal case where we run out of
+ * data, loading less than (MAXSEQ-ncarried) records:
+ * |---- ncarried ----||--- nidx* ---|
+ * |------------- nidx --------------|
+ * where the <nidx*> is what fread() returns to us.
+ */
+ i0 += nload; // this chunk starts with seq #<i0>
+ ncarried = (nidx - nload);
+ memmove(idx, idx + nload, sizeof(ESL_DSQDATA_RECORD) * ncarried);
+ nidx = fread(idx + ncarried, sizeof(ESL_DSQDATA_RECORD), dd->chunk_maxseq - ncarried, dd->ifp);
+ nidx += ncarried; // usually, this'll be MAXSEQ, unless we're near EOF.
+
+ if (nidx == 0)
+ { // We're EOF. This chunk will be the empty EOF signal to unpacker, consumers.
+ chu->i0 = i0;
+ chu->N = 0;
+ chu->pn = 0;
+ done = TRUE;
+ }
+ else
+ {
+ /* Figure out how many sequences we're going to load: <nload>
+ * nload = max i : i <= MAXSEQ && idx[i].psq_end - psq_last <= CHUNK_MAX
+ */
+ ESL_DASSERT1(( idx[0].psq_end - psq_last <= dd->chunk_maxpacket ));
+ if (idx[nidx-1].psq_end - psq_last <= dd->chunk_maxpacket)
+ nload = nidx;
+ else
+ { // Binary search for nload = max_i idx[i-1].psq_end - lastend <= MAX
+ int righti = nidx;
+ int mid;
+ nload = 1;
+ while (righti - nload > 1)
+ {
+ mid = nload + (righti - nload) / 2;
+ if (idx[mid-1].psq_end - psq_last <= dd->chunk_maxpacket) nload = mid;
+ else righti = mid;
+ }
+ }
+
+ /* Read packed sequence. */
+ chu->pn = idx[nload-1].psq_end - psq_last;
+ nread = fread(chu->psq, sizeof(uint32_t), chu->pn, dd->sfp);
+ //printf("Read %d packed ints from seq file\n", nread);
+ if ( nread != chu->pn ) ESL_XEXCEPTION(eslEOD, "dsqdata packet loader: expected %d, got %d", chu->pn, nread);
+
+
+ /* Read metadata, reallocating if needed */
+ nmeta = idx[nload-1].metadata_end - meta_last;
+ if (nmeta > chu->mdalloc) {
+ ESL_REALLOC(chu->metadata, sizeof(char) * nmeta); // should be realloc by doubling instead?
+ chu->mdalloc = nmeta;
+ }
+ nread = fread(chu->metadata, sizeof(char), nmeta, dd->mfp);
+ if ( nread != nmeta ) ESL_XEXCEPTION(eslEOD, "dsqdata metadata loader: expected %d, got %d", nmeta, nread);
+
+ chu->i0 = i0;
+ chu->N = nload;
+ psq_last = idx[nload-1].psq_end;
+ meta_last = idx[nload-1].metadata_end;
+ }
+
+ /* Put the finished chunk into outbox;
+ * unpacker will pick it up and unpack it.
+ */
+ if ( pthread_mutex_lock(&dd->loader_outbox_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex lock failed");
+ while (dd->loader_outbox != NULL)
+ {
+ if (pthread_cond_wait(&dd->loader_outbox_empty_cv, &dd->loader_outbox_mutex) != 0)
+ ESL_XEXCEPTION(eslESYS, "pthread cond wait failed");
+ }
+ dd->loader_outbox = chu;
+ if ( pthread_mutex_unlock(&dd->loader_outbox_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex unlock failed");
+ if ( pthread_cond_signal(&dd->loader_outbox_full_cv) != 0) ESL_XEXCEPTION(eslESYS, "pthread cond signal failed");
+ }
+
+ /* done == TRUE: we've sent the empty EOF chunk downstream, and now
+ * we wait to get all our chunks back through the recycling, so we
+ * can free them and exit cleanly. We counted them as they went out,
+ * in <nchunk>, so we know how many need to come home.
+ */
+ while (nchunk)
+ {
+ if ( pthread_mutex_lock(&dd->recycling_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex lock failed");
+ while (dd->recycling == NULL) // Readers may still be working, will Recycle() their chunks
+ {
+ if ( pthread_cond_wait(&dd->recycling_cv, &dd->recycling_mutex) != 0)
+ ESL_XEXCEPTION(eslESYS, "pthread cond wait failed");
+ }
+ while (dd->recycling != NULL) { // Free entire stack, while we have the mutex locked.
+ chu = dd->recycling;
+ dd->recycling = chu->nxt;
+ dsqdata_chunk_Destroy(chu);
+ nchunk--;
+ }
+ if ( pthread_mutex_unlock(&dd->recycling_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex unlock failed");
+ /* Because the recycling is a stack, readers never have to wait
+ * on a condition to Recycle(); the recycling, unlike the
+ * outboxes, doesn't need to be empty.
+ */
+ }
+ free(idx);
+ pthread_exit(NULL);
+
+ ERROR:
+ /* Defying Easel standards, we treat all exceptions as fatal, at
+ * least for the moment. This isn't a problem in HMMER, Infernal
+ * because they already use fatal exception handlers (i.e., we never
+ * reach this code anyway, if the parent app is using default fatal
+ * exception handling). It would become a problem if an Easel-based
+ * app needs to assure no exits from within Easel. Because the other
+ * threads will block waiting for chunks to come from the loader, if
+ * the loader fails, we would need a back channel signal of some
+ * sort to get the other threads to clean up and terminate.
+ */
+ if (idx) free(idx);
+ esl_fatal(" ... dsqdata loader thread failed: unrecoverable");
+}
+
+
+
+static void *
+dsqdata_unpacker_thread(void *p)
+{
+ ESL_DSQDATA *dd = (ESL_DSQDATA *) p;
+ ESL_DSQDATA_CHUNK *chu = NULL;
+ int done = FALSE;
+ int status;
+
+ while (! done)
+ {
+ /* Get a chunk from loader's outbox. Wait if necessary. */
+ if ( pthread_mutex_lock(&dd->loader_outbox_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex lock failed");
+ while (dd->loader_outbox == NULL)
+ {
+ if ( pthread_cond_wait(&dd->loader_outbox_full_cv, &dd->loader_outbox_mutex) != 0)
+ ESL_XEXCEPTION(eslESYS, "pthread cond wait failed");
+ }
+ chu = dd->loader_outbox;
+ dd->loader_outbox = NULL;
+ if ( pthread_mutex_unlock(&dd->loader_outbox_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex unlock failed");
+ if ( pthread_cond_signal(&dd->loader_outbox_empty_cv) != 0) ESL_XEXCEPTION(eslESYS, "pthread cond signal failed");
+
+ /* Unpack the metadata.
+ * If chunk is empty (N==0), it's the EOF signal - let it go straight out to a consumer.
+ * (The first consumer that sees it will set the at_eof flag in <dd>, which all
+ * consumers check. So we only need the one empty EOF chunk to flow downstream.)
+ */
+ if (! chu->N) done = TRUE; // still need to pass the chunk along to a consumer.
+ else
+ {
+ if (( status = dsqdata_unpack_chunk(chu, dd->pack5)) != eslOK) goto ERROR;
+ }
+
+ /* Put unpacked chunk into the unpacker's outbox.
+ * May need to wait for it to be empty/available.
+ */
+ if ( pthread_mutex_lock(&dd->unpacker_outbox_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex lock failed");
+ while (dd->unpacker_outbox != NULL)
+ {
+ if ( pthread_cond_wait(&dd->unpacker_outbox_empty_cv, &dd->unpacker_outbox_mutex) != 0)
+ ESL_XEXCEPTION(eslESYS, "pthread cond wait failed");
+ }
+ dd->unpacker_outbox = chu;
+ if ( pthread_mutex_unlock(&dd->unpacker_outbox_mutex) != 0) ESL_XEXCEPTION(eslESYS, "pthread mutex unlock failed");
+ if ( pthread_cond_signal(&dd->unpacker_outbox_full_cv) != 0) ESL_XEXCEPTION(eslESYS, "pthread cond signal failed");
+ }
+ pthread_exit(NULL);
+
+ ERROR:
+ /* See comment in loader thread: for lack of a back channel mechanism
+ * to tell other threads to clean up and terminate, we violate Easel standards
+ * and turn nonfatal exceptions into fatal ones.
+ */
+ esl_fatal(" ... dsqdata unpacker thread failed: unrecoverable");
+}
+
+
+/*****************************************************************
+ * 5. Packing sequences and unpacking chunks
+ *****************************************************************/
+
+/* dsqdata_unpack_chunk()
+ *
+ * <do_pack5> is a hint: if caller knows that all the packets in the
+ * chunk are 5-bit encoded (i.e. amino acid sequence), it can pass
+ * <TRUE>, enabling a small optimization. Otherwise the packed
+ * sequences will be treated as mixed 2- and 5-bit encoding, as is
+ * needed for DNA/RNA sequences; protein sequences also unpack fine
+ * that way, but the 5-bit flag on every packet needs to be checked.
+ *
+ * Throws: <eslEFORMAT> if a problem is seen in the binary format
+ */
+static int
+dsqdata_unpack_chunk(ESL_DSQDATA_CHUNK *chu, int do_pack5)
+{
+ char *ptr = chu->metadata; // ptr will walk through metadata
+ int r; // position in unpacked dsq array
+ int i; // sequence index: 0..chu->N-1
+ int pos; // position in packet array
+ int L; // an unpacked sequence length
+ int P; // number of packets unpacked
+
+ /* "Unpack" the metadata */
+ for (i = 0; i < chu->N; i++)
+ {
+ /* The data are user input, so we cannot trust that it has \0's where we expect them. */
+ if ( ptr >= chu->metadata + chu->mdalloc) ESL_EXCEPTION(eslEFORMAT, "metadata format error");
+ chu->name[i] = ptr; ptr = 1 + strchr(ptr, '\0'); if ( ptr >= chu->metadata + chu->mdalloc) ESL_EXCEPTION(eslEFORMAT, "metadata format error");
+ chu->acc[i] = ptr; ptr = 1 + strchr(ptr, '\0'); if ( ptr >= chu->metadata + chu->mdalloc) ESL_EXCEPTION(eslEFORMAT, "metadata format error");
+ chu->desc[i] = ptr; ptr = 1 + strchr(ptr, '\0'); if ( ptr >= chu->metadata + chu->mdalloc) ESL_EXCEPTION(eslEFORMAT, "metadata format error");
+ chu->taxid[i] = (int32_t) *((int32_t *) ptr); ptr += sizeof(int32_t);
+ }
+
+ /* Unpack the sequence data */
+ i = 0;
+ r = 0;
+ pos = 0;
+ chu->smem[0] = eslDSQ_SENTINEL;
+ while (pos < chu->pn)
+ {
+ chu->dsq[i] = (ESL_DSQ *) chu->smem + r;
+ if (do_pack5) dsqdata_unpack5(chu->psq + pos, chu->dsq[i], &L, &P);
+ else dsqdata_unpack2(chu->psq + pos, chu->dsq[i], &L, &P);
+
+ r += L+1; // L+1, not L+2, because we overlap start/end sentinels
+ pos += P;
+ chu->L[i] = L;
+ i++;
+ }
+ ESL_DASSERT1(( pos == chu->pn )); // we should've unpacked exactly pn packets,
+ ESL_DASSERT1(( i == chu->N )); // .. and exactly N sequences.
+ return eslOK;
+}
+
+
+/* Unpack 5-bit encoded sequence, starting at <psq>.
+ * Important: dsq[0] is already initialized to eslDSQ_SENTINEL,
+ * as a nitpicky optimization (the sequence data in a chunk are
+ * concatenated so that they share end/start sentinels).
+ */
+static int
+dsqdata_unpack5(uint32_t *psq, ESL_DSQ *dsq, int *ret_L, int *ret_P)
+{
+ int pos = 0; // position in psq[]
+ int r = 1; // position in dsq[]. caller set dsq[0] to eslDSQ_SENTINEL.
+ uint32_t v = psq[pos++];
+ int b; // bit shift counter
+
+ while (! ESL_DSQDATA_EOD(v)) // we trust that we'll see a sentinel at the end
+ {
+ ESL_DASSERT1(( ESL_DSQDATA_5BIT(v) )); // All packets are 5-bit encoded
+ dsq[r++] = (v >> 25) & 31; dsq[r++] = (v >> 20) & 31; dsq[r++] = (v >> 15) & 31;
+ dsq[r++] = (v >> 10) & 31; dsq[r++] = (v >> 5) & 31; dsq[r++] = (v >> 0) & 31;
+ v = psq[pos++];
+ }
+
+ /* Unpack sentinel packet, which may be partial; it can even contain
+ * zero residues in the edge case of an L=0 sequence.
+ */
+ ESL_DASSERT1(( ESL_DSQDATA_5BIT(v) ));
+ for (b = 25; b >= 0 && ((v >> b) & 31) != 31; b -= 5)
+ dsq[r++] = (v >> b) & 31;
+ dsq[r++] = eslDSQ_SENTINEL;
+ // r is now L+2: the raw sequence length + 2 sentinels
+ // P = pos, because pos index advanced to next packet after sentinel
+ *ret_L = r-2;
+ *ret_P = pos;
+ return eslOK;
+}
+
+/* Unpack 2-bit (+ mixed 5-bit for noncanonicals) encoding.
+ * Important: dsq[0] is already initialized to eslDSQ_SENTINEL
+ *
+ * This will work for protein sequences just fine; just a little
+ * slower than calling dsqdata_unpack5(), because here we have
+ * to check the 5-bit encoding bit on every packet.
+ */
+static int
+dsqdata_unpack2(uint32_t *psq, ESL_DSQ *dsq, int *ret_L, int *ret_P)
+{
+ int pos = 0;
+ int r = 1;
+ uint32_t v = psq[pos++];
+ int b; // bit shift counter
+
+ while (! ESL_DSQDATA_EOD(v))
+ {
+ if ( ESL_DSQDATA_5BIT(v)) // 5-bit encoded, full. Don't need mask on bit 31 because we know it's down.
+ {
+ dsq[r++] = (v >> 25) & 31; dsq[r++] = (v >> 20) & 31; dsq[r++] = (v >> 15) & 31;
+ dsq[r++] = (v >> 10) & 31; dsq[r++] = (v >> 5) & 31; dsq[r++] = (v >> 0) & 31;
+ }
+ else // 2-bit encoded, full
+ {
+ dsq[r++] = (v >> 28) & 3; dsq[r++] = (v >> 26) & 3; dsq[r++] = (v >> 24) & 3;
+ dsq[r++] = (v >> 22) & 3; dsq[r++] = (v >> 20) & 3; dsq[r++] = (v >> 18) & 3;
+ dsq[r++] = (v >> 16) & 3; dsq[r++] = (v >> 14) & 3; dsq[r++] = (v >> 12) & 3;
+ dsq[r++] = (v >> 10) & 3; dsq[r++] = (v >> 8) & 3; dsq[r++] = (v >> 6) & 3;
+ dsq[r++] = (v >> 4) & 3; dsq[r++] = (v >> 2) & 3; dsq[r++] = (v >> 0) & 3;
+ }
+ v = psq[pos++];
+ }
+
+ /* Sentinel packet.
+ * If 2-bit, it's full. If 5-bit, it's usually partial, and may even be 0-len.
+ */
+ if ( ESL_DSQDATA_5BIT(v)) // 5-bit, partial
+ {
+ for (b = 25; b >= 0 && ((v >> b) & 31) != 31; b -= 5)
+ dsq[r++] = (v >> b) & 31;
+ }
+ else
+ {
+ dsq[r++] = (v >> 28) & 3; dsq[r++] = (v >> 26) & 3; dsq[r++] = (v >> 24) & 3;
+ dsq[r++] = (v >> 22) & 3; dsq[r++] = (v >> 20) & 3; dsq[r++] = (v >> 18) & 3;
+ dsq[r++] = (v >> 16) & 3; dsq[r++] = (v >> 14) & 3; dsq[r++] = (v >> 12) & 3;
+ dsq[r++] = (v >> 10) & 3; dsq[r++] = (v >> 8) & 3; dsq[r++] = (v >> 6) & 3;
+ dsq[r++] = (v >> 4) & 3; dsq[r++] = (v >> 2) & 3; dsq[r++] = (v >> 0) & 3;
+ }
+ dsq[r++] = eslDSQ_SENTINEL;
+
+ *ret_L = r-2;
+ *ret_P = pos;
+ return eslOK;
+}
+
+
+/* dsqdata_pack5()
+ *
+ * Pack a digital (protein) sequence <dsq> of length <n>, into <psq>
+ * using 5-bit encoding; return the number of packets <*ret_P>.
+ *
+ * <psq> must be allocated for at least $MAX(1, (n+5)/6)$ packets.
+ *
+ * You can pack in place, by passing the same pointer <dsq> as <psq>,
+ * provided that dsq is allocated for at least 1 packet (4 bytes). We
+ * know that <psq> is either smaller than <dsq> ($4P <= n$) or that it
+ * consists of one EOD packet (in the case n=0).
+ */
+static int
+dsqdata_pack5(ESL_DSQ *dsq, int n, uint32_t *psq, int *ret_P)
+{
+ int r = 1; // position in <dsq>
+ int pos = 0; // position in <psq>.
+ int b; // bitshift
+ uint32_t v; // tmp var needed to guarantee pack-in-place works
+
+ while (r <= n)
+ {
+ v = eslDSQDATA_5BIT; // initialize packet with 5-bit flag
+ for (b = 25; b >= 0 && r <= n; b -= 5) v |= (uint32_t) dsq[r++] << b;
+ for ( ; b >= 0; b -= 5) v |= (uint32_t) 31 << b;
+
+ if (r > n) v |= eslDSQDATA_EOD; // EOD bit
+ psq[pos++] = v; // we know we've already read all the dsq we need under psq[pos]
+ }
+
+ /* Special case of n=0: we need an empty EOD sentinel packet. */
+ if (pos == 0) { v = 0; psq[pos++] = ~v; } // all bits set: | EOD | 5BIT | all sentinels |
+
+ *ret_P = pos;
+ return eslOK;
+}
+
+
+/* dsqdata_pack2()
+ *
+ * Pack a digital (nucleic) sequence <dsq> of total length
+ * <n>, into <psq>; return the number of packets <*ret_P>.
+ *
+ * <psq> must be allocated for at least $MAX(1, (n+5)/6)$ packets.
+ * (Yes, even in 2-bit packing, because worst case, the sequence
+ * contains so many noncanonicals that it's entirely 5-bit encoded.)
+ *
+ * You can pack in place, by passing the same pointer <dsq> as <psq>,
+ * provided that dsq is allocated for at least 1 packet (4 bytes). We
+ * know that <psq> is either smaller than <dsq> ($4P <= n$) or that it
+ * consists of one EOD packet (in the case n=0).
+ */
+static int
+dsqdata_pack2(ESL_DSQ *dsq, int n, uint32_t *psq, int *ret_P)
+{
+ int pos = 0; // position in <psq>
+ int d = 0; // position of next degen residue, 1..n, n+1 if none
+ int r = 1; // position in <dsq> 1..n
+ int b; // bitshift
+ uint32_t v; // tmp var needed to guarantee pack-in-place works
+
+ while (r <= n)
+ {
+ // Slide the "next degenerate residue" detector
+ if (d < r)
+ for (d = r; d <= n; d++)
+ if (dsq[d] > 3) break;
+
+ // Can we 2-bit pack the next 15 residues, r..r+14?
+ // n-r+1 = number of residues remaining to be packed.
+ if (n-r+1 >= 15 && d > r+14)
+ {
+ v = 0;
+ for (b = 28; b >= 0; b -=2) v |= (uint32_t) dsq[r++] << b;
+ }
+ else
+ {
+ v = eslDSQDATA_5BIT; // initialize v with 5-bit packing bit
+ for (b = 25; b >= 0 && r <= n; b -= 5) v |= (uint32_t) dsq[r++] << b;
+ for ( ; b >= 0; b -= 5) v |= (uint32_t) 31 << b;
+ }
+
+ if (r > n) v |= eslDSQDATA_EOD; // EOD bit
+ psq[pos++] = v; // we know we've already read all the dsq we need under psq[pos]
+ }
+
+ /* Special case of n=0: we need an empty EOD sentinel packet.
+ * Sentinel packets are 5-bit encoded, even in 2-bit coding scheme
+ */
+ if (pos == 0) { v = 0; psq[pos++] = ~v; } // all bits set: | EOD | 5BIT | all sentinels |
+
+ *ret_P = pos;
+ return eslOK;
+}
+
+
+/*****************************************************************
+ * 6. Notes
+ *****************************************************************
+ *
+ * [1] Packed sequence data format.
+ *
+ * Format of a single packet:
+ * [31] [30] [29..25] [24..20] [19..15] [14..10] [ 9..5 ] [ 4..0 ]
+ * ^ ^ |------------ 6 5-bit packed residues ------------------|
+ * | | [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
+ * | | |----------- or 15 2-bit packed residues ----------------|
+ * | |
+ * | "packtype" bit 30 = 0 if packet is 2-bit packed; 1 if 5-bit packed
+ * "sentinel" bit 31 = 1 if last packet in packed sequence; else 0
+ *
+ * (packet & (1 << 31)) tests for end of sequence
+ * (packet & (1 << 30)) tests for 5-bit packing vs. 2-bit
+ * ((packet >> shift) && 31) decodes 5-bit, for shift=25..0 in steps of 5
+ * ((packet >> shift) && 3) decodes 2-bit, for shift=28..0 in steps of 2
+ *
+ * Packets without the sentinel bit set are always full (unpack
+ * to 15 or 6 residue codes).
+ *
+ * 5-bit EOD packets may be partial: they unpack to 0..6
+ * residues. The remaining residue codes are set to 0x1f
+ * (11111) to indicate EOD within a partial packet.
+ *
+ * A 0-length sequence is encoded by a 5-bit partial EOD packet
+ * with 0 residues. This is the only case in which a partial
+ * packet contains 0 residues. (Because we can end with an EOD
+ * full packet, there is no other case where we end up with 0
+ * leftover residues to encode.)
+ *
+ * 2-bit EOD packets must be full, because there is no way to
+ * signal EOD locally within a 2-bit packet. Can't use 0x03 (11)
+ * because that's T/U. Generally, then, the last packet of a
+ * nucleic acid sequence must be 5-bit encoded, solely to be
+ * able to encode EOD in a partial packet.
+ *
+ * A packed sequence consists of an integer number of packets,
+ * P, which ends with an EOD packet that may contain a partial
+ * number of residues. P packets are guaranteed to be able to
+ * encode at least 6P residues in either scheme.
+ *
+ * A sequence of length L packs into P <= MAX(1, (N+5)/6)
+ * packets. (1, because a 0-length sequence still requires an
+ * EOD packet.) This is true even for nucleic sequences, because
+ * noncanonical residues can force DNA/RNA sequence to pack
+ * entirely in 5-bit coding.
+ *
+ * A packed amino acid sequence unpacks to 6P-5 <= L <= 6P
+ * residues (for P>1; 0 <= L <= 6 for P=1) and all packets are
+ * 5-bit encoded.
+ *
+ * A packed nucleic acid sequence unpacks to 6P-5 <= L <= 15P
+ * residues (for P>1; 0 <= L <= 15 for P=1). The packets are a
+ * mix of 2-bit and 5-bit. Degenerate residues must be 5-bit
+ * packed, and the EOD packet usually is too. A 5-bit packet
+ * does not have to contain degenerate residues, because it may
+ * have been necessary to get "in frame" to pack a downstream
+ * degenerate residue. For example, the sequence
+ * ACGTACGTNNA... must be packed as [ACGTAC][CGTNNA]... to get
+ * the N's packed correctly.
+ *
+ * [2] Compression: relative incompressibility of biological sequences.
+ *
+ * Considered using fast (de)compression algorithms that are fast
+ * enough to keep up with disk read speed, including LZ4 and
+ * Google's Snappy. However, lz4 only achieves 1.0-1.9x global
+ * compression of protein sequence (compared to 1.5x for
+ * packing), and 2.0x for DNA (compared to 3.75x for packing).
+ * With local, blockwise compression, which we need for random
+ * access and indexing, it gets worse. Packing is superior.
+ *
+ * Metadata compression is more feasible, but I still opted
+ * against it. Although metadata are globally quite compressible
+ * (3.2-6.9x in trials with lz4), locally in 64K blocks lz4 only
+ * achieves 2x. [xref SRE:2016/0201-seqfile-compression]
+ *
+ * [3] Maybe getting more packing using run-length encoding.
+ *
+ * Genome assemblies typically have long runs of N's (human
+ * GRCh38.p2 is about 5% N), and it's excruciating to have to
+ * pack it into bulky 5-bit degenerate packets. I considered
+ * run-length encoding (RLE). One possibility is to use a special
+ * packet format akin to the 5-bit packet format:
+ *
+ * [0] [?] [11111] [.....] [....................]
+ * ^ ^ ^ 20b number, <=2^20-1
+ * | | 5-bit residue code
+ * | sentinel residue 31 set
+ * sentinel bit unset
+ *
+ * This is a uniquely detectable packet structure because a full
+ * packet (with unset sentinel bit) would otherwise never contain
+ * a sentinel residue (code 31).
+ *
+ * However, using RLE would make our unpacked data sizes too
+ * unpredictable; we wouldn't have the <=6P or <=15P guarantee,
+ * so we couldn't rely on fixed-length allocation of <smem> in
+ * our chunk. Consumers wouldn't be getting predictable chunk
+ * sizes, which could complicate load balancing. I decided
+ * against it.
+ */
+
+
+/*****************************************************************
+ * 7. Unit tests
+ *****************************************************************/
+#ifdef eslDSQDATA_TESTDRIVE
+
+#include "esl_randomseq.h"
+
+/* Exercise the packing and unpacking routines:
+ * dsqdata_pack2, dsqdata_pack5, and dsqdata_unpack
+ */
+static void
+utest_packing(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, int nsamples)
+{
+ char msg[] = "esl_dsqdata :: packing unit test failed";
+ ESL_DSQ *dsq = NULL; // We start with a dirty random sequence...
+ uint32_t *psq = NULL; // ... pack it ...
+ ESL_DSQ *dsq2 = NULL; // ... and unpack it. Then check that it's the same seq.
+ int L_max = 46; // We'll sample L on 0..L_max. L_max doesn't need to be large to exercise well.
+ int P_max = ESL_MAX(1, (L_max + 5) / 6); // So sayeth the docs, so let's test it.
+ int L, P, L2, P2;
+ int i;
+
+ if ((dsq = malloc(sizeof(ESL_DSQ) * (L_max + 2))) == NULL) esl_fatal(msg);
+ if ((psq = malloc(sizeof(uint32_t) * P_max)) == NULL) esl_fatal(msg);
+ if ((dsq2 = malloc(sizeof(ESL_DSQ) * (L_max + 2))) == NULL) esl_fatal(msg);
+
+ for (i = 0; i < nsamples; i++)
+ {
+ L = esl_rnd_Roll(rng, L_max+1); // 0..L_max
+
+ esl_rsq_SampleDirty(rng, abc, NULL, L, dsq);
+
+ if (abc->type == eslAMINO) { if ( dsqdata_pack5(dsq, L, psq, &P) != eslOK) esl_fatal(msg); }
+ else { if ( dsqdata_pack2(dsq, L, psq, &P) != eslOK) esl_fatal(msg); }
+
+ dsq2[0] = eslDSQ_SENTINEL; // interface to _unpack functions requires caller to do this
+ if (abc->type == eslAMINO) { if ( dsqdata_unpack5(psq, dsq2, &L2, &P2) != eslOK) esl_fatal(msg); }
+ else { if ( dsqdata_unpack2(psq, dsq2, &L2, &P2) != eslOK) esl_fatal(msg); }
+
+ if (L2 != L) esl_fatal(msg);
+ if (P2 != P) esl_fatal(msg);
+ if (memcmp((void *) dsq, (void *) dsq2, L+2) != 0) esl_fatal(msg);
+
+ /* Write garbage into the buffers, so nobody's cheating on the test somehow */
+ esl_rnd_mem(rng, (void *) dsq, L_max+2);
+ esl_rnd_mem(rng, (void *) dsq2, L_max+2);
+ esl_rnd_mem(rng, (void *) psq, (sizeof(uint32_t) * P_max));
+ }
+
+ free(dsq);
+ free(psq);
+ free(dsq2);
+}
+
+
+static void
+utest_readwrite(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc)
+{
+ char msg[] = "esl_dsqdata :: readwrite unit test failed";
+ char tmpfile[32] = "esltmpXXXXXX";
+ char basename[32];
+ ESL_SQ **sqarr = NULL;
+ FILE *tmpfp = NULL;
+ ESL_SQFILE *sqfp = NULL;
+ ESL_DSQDATA *dd = NULL;
+ ESL_DSQDATA_CHUNK *chu = NULL;
+ int nseq = 1 + esl_rnd_Roll(rng, 20000); // 1..20000
+ int maxL = 100;
+ int i;
+ int status;
+
+ /* 1. Sample <nseq> random dirty digital sequences, storing them for later comparison;
+ * write them out to a tmp FASTA file. The Easel FASTA format writer writes <name> <acc>
+ * <desc> on the descline, but the reader only reads <name> <desc> (as is standard
+ * for FASTA format), so blank the accession to avoid confusion.
+ */
+ if (( status = esl_tmpfile_named(tmpfile, &tmpfp)) != eslOK) esl_fatal(msg);
+ if (( sqarr = malloc(sizeof(ESL_SQ *) * nseq)) == NULL) esl_fatal(msg);
+ for (i = 0; i < nseq; i++)
+ {
+ sqarr[i] = NULL;
+ if (( status = esl_sq_Sample(rng, abc, maxL, &(sqarr[i]))) != eslOK) esl_fatal(msg);
+ if (( status = esl_sq_SetAccession(sqarr[i], "")) != eslOK) esl_fatal(msg);
+ if (( status = esl_sqio_Write(tmpfp, sqarr[i], eslSQFILE_FASTA, FALSE)) != eslOK) esl_fatal(msg);
+ }
+ fclose(tmpfp);
+
+ /* 2. Make a dsqdata database from the FASTA tmpfile.
+ */
+ if (( status = esl_sqfile_OpenDigital(abc, tmpfile, eslSQFILE_FASTA, NULL, &sqfp)) != eslOK) esl_fatal(msg);
+ if (( snprintf(basename, 32, "%s-db", tmpfile)) <= 0) esl_fatal(msg);
+ if (( status = esl_dsqdata_Write(sqfp, basename, NULL)) != eslOK) esl_fatal(msg);
+ esl_sqfile_Close(sqfp);
+
+ /* 3. Open and read the dsqdata; compare to the original sequences.
+ */
+ if (( status = esl_dsqdata_Open(&abc, basename, 1, &dd)) != eslOK) esl_fatal(msg);
+ while (( status = esl_dsqdata_Read(dd, &chu)) == eslOK)
+ {
+ for (i = 0; i < chu->N; i++)
+ {
+ if ( chu->L[i] != sqarr[i+chu->i0]->n ) esl_fatal(msg);
+ if ( memcmp( chu->dsq[i], sqarr[i+chu->i0]->dsq, chu->L[i]) != 0) esl_fatal(msg);
+ if ( strcmp( chu->name[i], sqarr[i+chu->i0]->name) != 0) esl_fatal(msg);
+ // FASTA does not read accession - instead we get both accession/description as <desc>
+ if ( strcmp( chu->desc[i], sqarr[i+chu->i0]->desc) != 0) esl_fatal(msg);
+ // FASTA also does not store taxid - so don't test that either
+ }
+ esl_dsqdata_Recycle(dd, chu);
+ }
+ if (status != eslEOF) esl_fatal(msg);
+ esl_dsqdata_Close(dd);
+
+ remove(tmpfile);
+ remove(basename);
+ snprintf(basename, 32, "%s-db.dsqi", tmpfile); remove(basename);
+ snprintf(basename, 32, "%s-db.dsqm", tmpfile); remove(basename);
+ snprintf(basename, 32, "%s-db.dsqs", tmpfile); remove(basename);
+ for (i = 0; i < nseq; i++) esl_sq_Destroy(sqarr[i]);
+ free(sqarr);
+}
+#endif /*eslDSQDATA_TESTDRIVE*/
+
+
+
+/*****************************************************************
+ * 8. Test driver
+ *****************************************************************/
+#ifdef eslDSQDATA_TESTDRIVE
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_dsqdata.h"
+#include "esl_getopts.h"
+#include "esl_random.h"
+
+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", 0 },
+ { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options]";
+static char banner[] = "unit test driver for Easel dsqdata module";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_Create(esl_opt_GetInteger(go, "-s"));
+ ESL_ALPHABET *amino = esl_alphabet_Create(eslAMINO);
+ ESL_ALPHABET *nucleic = esl_alphabet_Create(eslRNA);
+ int nsamples = 100;
+
+ fprintf(stderr, "## %s\n", argv[0]);
+ fprintf(stderr, "# rng seed = %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+
+ utest_packing(rng, nucleic, nsamples);
+ utest_packing(rng, amino, nsamples);
+
+ utest_readwrite(rng, nucleic);
+ utest_readwrite(rng, amino);
+
+ fprintf(stderr, "# status = ok\n");
+
+ esl_alphabet_Destroy(amino);
+ esl_alphabet_Destroy(nucleic);
+ esl_randomness_Destroy(rng);
+ esl_getopts_Destroy(go);
+ exit(0);
+}
+#endif /*eslDSQDATA_TESTDRIVE*/
+
+/*****************************************************************
+ * 9. Examples
+ *****************************************************************/
+
+/* esl_dsqdata_example2
+ * Example of creating a new dsqdata database from a sequence file.
+ */
+#ifdef eslDSQDATA_EXAMPLE2
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_dsqdata.h"
+#include "esl_getopts.h"
+
+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", 0 },
+ { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use DNA alphabet", 0 },
+ { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use RNA alphabet", 0 },
+ { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use protein alphabet", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options] <seqfile_in> <binary seqfile_out>";
+static char banner[] = "experimental: create binary database for esl_dsqdata";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 2, argc, argv, banner, usage);
+ ESL_ALPHABET *abc = NULL;
+ char *infile = esl_opt_GetArg(go, 1);
+ char *basename = esl_opt_GetArg(go, 2);
+ int format = eslSQFILE_UNKNOWN;
+ int alphatype = eslUNKNOWN;
+ ESL_SQFILE *sqfp = NULL;
+ char errbuf[eslERRBUFSIZE];
+ int status;
+
+ status = esl_sqfile_Open(infile, format, NULL, &sqfp);
+ if (status == eslENOTFOUND) esl_fatal("No such file.");
+ else if (status == eslEFORMAT) esl_fatal("Format unrecognized.");
+ else if (status != eslOK) esl_fatal("Open failed, code %d.", status);
+
+ if (esl_opt_GetBoolean(go, "--rna")) alphatype = eslRNA;
+ else if (esl_opt_GetBoolean(go, "--dna")) alphatype = eslDNA;
+ else if (esl_opt_GetBoolean(go, "--amino")) alphatype = eslAMINO;
+ else {
+ status = esl_sqfile_GuessAlphabet(sqfp, &alphatype);
+ if (status == eslENOALPHABET) esl_fatal("Couldn't guess alphabet from first sequence in %s", infile);
+ else if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n%s\n", infile, sqfp->get_error(sqfp));
+ else if (status == eslENODATA) esl_fatal("Sequence file %s contains no data?", infile);
+ else if (status != eslOK) esl_fatal("Failed to guess alphabet (error code %d)\n", status);
+ }
+ abc = esl_alphabet_Create(alphatype);
+ esl_sqfile_SetDigital(sqfp, abc);
+
+ status = esl_dsqdata_Write(sqfp, basename, errbuf);
+ if (status == eslEWRITE) esl_fatal("Failed to open dsqdata output files:\n %s", errbuf);
+ else if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n %s", infile, sqfp->get_error(sqfp));
+ else if (status != eslOK) esl_fatal("Unexpected error while creating dsqdata file (code %d)\n", status);
+
+ esl_sqfile_Close(sqfp);
+ esl_alphabet_Destroy(abc);
+ esl_getopts_Destroy(go);
+ return eslOK;
+}
+#endif /*eslDSQDATA_EXAMPLE2*/
+
+
+/* esl_dsqdata_example
+ * Example of opening and reading a dsqdata database.
+ */
+#ifdef eslDSQDATA_EXAMPLE
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_dsqdata.h"
+#include "esl_getopts.h"
+
+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", 0 },
+ { "-n", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "no residue counting: faster time version", 0 },
+ { "-t", eslARG_INT, "4", NULL, NULL, NULL, NULL, NULL, "set number of threads to <n>", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+
+static char usage[] = "[-options] <basename>";
+static char banner[] = "example of using ESL_DSQDATA to read sequence db";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 1, argc, argv, banner, usage);
+ ESL_ALPHABET *abc = NULL;
+ char *basename = esl_opt_GetArg(go, 1);
+ int no_count = esl_opt_GetBoolean(go, "-n");
+ int ncpu = esl_opt_GetInteger(go, "-t");
+ ESL_DSQDATA *dd = NULL;
+ ESL_DSQDATA_CHUNK *chu = NULL;
+ int i;
+ int64_t pos;
+ int64_t ct[128], total;
+ int x;
+ int status;
+
+ status = esl_dsqdata_Open(&abc, basename, ncpu, &dd);
+ if (status == eslENOTFOUND) esl_fatal("Failed to open dsqdata files:\n %s", dd->errbuf);
+ else if (status == eslEFORMAT) esl_fatal("Format problem in dsqdata files:\n %s", dd->errbuf);
+ else if (status != eslOK) esl_fatal("Unexpected error in opening dsqdata (code %d)", status);
+
+ for (x = 0; x < 127; x++) ct[x] = 0;
+
+ while ((status = esl_dsqdata_Read(dd, &chu)) == eslOK)
+ {
+ if (! no_count)
+ for (i = 0; i < chu->N; i++)
+ for (pos = 1; pos <= chu->L[i]; pos++)
+ ct[ chu->dsq[i][pos] ]++;
+
+ esl_dsqdata_Recycle(dd, chu);
+ }
+ if (status != eslEOF) esl_fatal("unexpected error %d in reading dsqdata", status);
+
+ if (! no_count)
+ {
+ total = 0;
+ for (x = 0; x < abc->Kp; x++)
+ {
+ printf("%c %" PRId64 "\n", abc->sym[x], ct[x]);
+ total += ct[x];
+ }
+ printf("Total = %" PRId64 "\n", total);
+ }
+
+ esl_alphabet_Destroy(abc);
+ esl_dsqdata_Close(dd);
+ esl_getopts_Destroy(go);
+ return 0;
+}
+#endif /*eslDSQDATA_EXAMPLE*/
+
+
+
diff --git a/easel/esl_dsqdata.h b/easel/esl_dsqdata.h
new file mode 100644
index 0000000..1c0ac83
--- /dev/null
+++ b/easel/esl_dsqdata.h
@@ -0,0 +1,141 @@
+/* esl_dsqdata : faster sequence input
+ */
+#ifndef eslDSQDATA_INCLUDED
+#define eslDSQDATA_INCLUDED
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_sqio.h"
+
+#include <stdio.h>
+#include <stdint.h>
+#include <pthread.h>
+
+
+
+/* ESL_DSQDATA_CHUNK
+ * A data chunk returned by esl_dsqdata_Read().
+ */
+typedef struct esl_dsqdata_chunk_s {
+ int64_t i0; // Chunk contains sequences i0..i0+N-1 from the database, 0-offset
+ int N; // Chunk contains N sequences
+
+ ESL_DSQ **dsq; // Pointers to each of the N sequences
+ char **name; // Names, \0 terminated. Ptr into <metadata> buffer.
+ char **acc; // Optional accessions, \0 terminated; "\0" if none.
+ char **desc; // Optional descriptions, \0 terminated; "\0" if none
+ int32_t *taxid; // NCBI taxonomy identifiers. (>=1 is a taxid; -1 means none)
+ int64_t *L; // Sequence lengths, in residues. The unpacker figures these out.
+
+ /* Memory management */
+ char *smem; // Unpacked (dsq[]) and packed (psq) data ptrs share this allocation.
+ uint32_t *psq; // Pointer into smem; packed data fread()'s go here.
+ int pn; // how many uint32's are loaded in <psq>
+ char *metadata; // Raw fread() buffer of all name/acc/desc/taxid data.
+ int mdalloc; // Current allocation size for <metadata> in bytes
+ struct esl_dsqdata_chunk_s *nxt; // Chunks can be put in linked lists
+} ESL_DSQDATA_CHUNK;
+
+
+
+/* ESL_DSQDATA_RECORD
+ * The dsqi index file is composed of an array of these, aside from its header.
+ */
+typedef struct esl_dsqdata_record_s {
+ int64_t metadata_end;
+ int64_t psq_end;
+} ESL_DSQDATA_RECORD;
+
+
+
+
+/* ESL_DSQDATA
+ * The object created by esl_dsqdata_Open() and used by esl_dsqdata_Read()
+ * to read chunks of sequence data from the database.
+ */
+typedef struct esl_dsqdata_s {
+ char *basename; // Basename of the four dsqdata data files
+ FILE *stubfp; // Open <basename> stub file
+ FILE *ifp; // Open basename.dsqi index file
+ FILE *sfp; // Open basename.dsqs sequence file
+ FILE *mfp; // Open basename.dsqm metadata file
+ ESL_ALPHABET *abc_r; // Copy of ptr to the alphabet the caller told us to read in.
+
+ /* Header information from dsqi index file
+ * .. dsqm, dsqs have magic and uniquetag for integrity checking
+ * .. and stub file has uniquetag as text.
+ */
+ uint32_t magic; // Binary magic format code, for detecting byteswapping
+ uint32_t uniquetag; // Random number tag that links the four files
+ uint32_t flags; // Currently unused (0); reserved for future bitflags
+ uint32_t max_namelen; // Max name length in the dataset
+ uint32_t max_acclen; // .. and max accession length
+ uint32_t max_desclen; // .. and max description length
+ uint64_t max_seqlen; // .. and max seq length. 64b = bring on Paris japonica.
+ uint64_t nseq; // Total number of sequences in the dataset
+ uint64_t nres; // .. and total number of residues
+
+ /* Control parameters. */
+ int chunk_maxseq; // default = eslDSQDATA_CHUNK_MAXSEQ
+ int chunk_maxpacket; // default = eslDSQDATA_CHUNK_MAXPACKET
+ int do_byteswap; // TRUE if we need to byteswap (bigendian <=> littleendian)
+ int pack5; // TRUE if we're using all 5bit packing; FALSE for mixed 2+5bit
+
+ /* Managing the reader's threaded producer/consumer pipeline:
+ * consisting of 1 loader thread and 1 unpacker thread that we manage,
+ * and <nconsumers> consumer threads that caller created to get
+ * successive chunks with esl_dsqdata_Read().
+ */
+ int nconsumers; // Caller's reading with this # of readers
+
+ pthread_t loader_t; // Loader thread id
+ ESL_DSQDATA_CHUNK *loader_outbox; // A loaded chunk goes here, for unpacker
+ pthread_mutex_t loader_outbox_mutex; // mutex protecting the outbox
+ pthread_cond_t loader_outbox_full_cv; // signal to unpacker that next chunk is ready
+ pthread_cond_t loader_outbox_empty_cv; // signal from unpacker that it's got the chunk
+
+ pthread_t unpacker_t; // Unpacker thread id
+ ESL_DSQDATA_CHUNK *unpacker_outbox; // Unpacked chunk goes here, for _Read()
+ pthread_mutex_t unpacker_outbox_mutex; // mutex protecting the outbox
+ pthread_cond_t unpacker_outbox_full_cv; // signal to _Read() that chunk is ready (or at_eof)
+ pthread_cond_t unpacker_outbox_empty_cv; // signal from _Read() that it's got the chunk
+ int at_eof; // flag that goes up at end of the input file;
+ // .. <at_eof> change is in unpacker's mutex
+ ESL_DSQDATA_CHUNK *recycling; // Linked list of chunk memory for reuse
+ pthread_mutex_t recycling_mutex; // mutex protecting the recycling list
+ pthread_cond_t recycling_cv; // signal to loader that a chunk is available
+
+ /* Error handling.
+ * Pthread variables don't define a value for "unset", so for pristine cleanup after
+ * errors, we must use separate booleans to track which thread resources are created.
+ */
+ int lt_c; int lom_c; int lof_c; int loe_c;
+ int ut_c; int uom_c; int uof_c; int uoe_c;
+ int rm_c; int r_c;
+ char errbuf[eslERRBUFSIZE]; // User-directed error message in case of a failed open or read.
+} ESL_DSQDATA;
+
+
+
+/* Defaults for size of eslDSQDATA_CHUNK
+ */
+#define eslDSQDATA_CHUNK_MAXSEQ 4096 // max number of sequences
+#define eslDSQDATA_CHUNK_MAXPACKET 262144 // max number of uint32 sequence packets
+
+/* Reading the control bits on a packet v
+ */
+#define eslDSQDATA_EOD (1 << 31)
+#define eslDSQDATA_5BIT (1 << 30)
+#define ESL_DSQDATA_EOD(v) ((v) & eslDSQDATA_EOD)
+#define ESL_DSQDATA_5BIT(v) ((v) & eslDSQDATA_5BIT)
+
+/* Functions in the API
+ */
+extern int esl_dsqdata_Open (ESL_ALPHABET **byp_abc, char *basename, int nconsumers, ESL_DSQDATA **ret_dd);
+extern int esl_dsqdata_Read (ESL_DSQDATA *dd, ESL_DSQDATA_CHUNK **ret_chu);
+extern int esl_dsqdata_Recycle(ESL_DSQDATA *dd, ESL_DSQDATA_CHUNK *chu);
+extern int esl_dsqdata_Close (ESL_DSQDATA *dd);
+
+extern int esl_dsqdata_Write (ESL_SQFILE *sqfp, char *basename, char *errbuf);
+
+#endif /*eslDSQDATA_INCLUDED*/
diff --git a/easel/esl_dsqdata.tex b/easel/esl_dsqdata.tex
new file mode 100644
index 0000000..471e9e3
--- /dev/null
+++ b/easel/esl_dsqdata.tex
@@ -0,0 +1,332 @@
+The \eslmod{dsqdata} module implements a binary sequence data
+format. It accelerates sequence data input in four ways, compared to
+Easel flatfile parsers (\eslmod{sqio}):
+
+\paragraph{Asynchronous input.}
+ Disk and CPU resources are used concurrently, using POSIX threads.
+ A ``loader'' thread does essentially nothing but read chunks of
+ data. An ``unpacker'' thread does CPU work to prepare loaded
+ sequence data chunks for consumption. If it takes time $R$ to read
+ and $P$ to process the data, instead of overall time $R+P$, with
+ asynchronous input we only need time $\mathrm{MAX}(R,P)$.
+
+\paragraph{Predigitization.}
+ Sequence data in the \eslmod{dsqdata} format are already encoded in
+ Easel digital sequence format. User-oriented error checking is done
+ up front when the \eslmod{dsqdata} file is created.
+
+\paragraph{Bit packing.}
+ Disk read time is rate-limiting in \eslmod{dsqdata}, so minimizing
+ data volume is critical. Sequence data are packed bitwise
+ in 32-bit packets to reduce volume by a factor of 1.5 (protein) to
+ 3.75 (nucleic). A packet contains six 5-bit residues (protein or
+ degenerate nucleic) or fifteen 2-bit residues (canonical nucleic) and two
+ control bits.
+
+\paragraph{Separate metadata.}
+ Sequence data and metadata (name, accession, description, taxonomy
+ identifier) are stored separately in \ccode{.dsqs} and \ccode{.dsqm}
+ files. This streamlines unpacking, because these data are handled
+ differently. It also allows a deferred metadata read: sequences may
+ be identified simply by index number during an initial processing
+ sweep, and metadata can be loaded later by random access for a small
+ number of targets of interest.
+
+Table~\ref{tbl:dsqdata_api} lists the functions in the
+\eslmod{dsqdata} API.
+
+% API table is auto generated by the Makefile,
+% using autodoc -t esl_dsqdata.c
+%
+\input{apitables/esl_dsqdata_api}
+
+\subsection{Files in the \eslmodincmd{dsqdata} format}
+
+The format of a database \ccode{mydb} consists of four files:
+
+\vspace{0.5em}
+\begin{tabular}{lll}
+\ccode{mydb} & Stub & Human-readable information about the data \\
+\ccode{mydb.dsqi} & Index & Disk offsets for each seq in metadata and sequence files\\
+\ccode{mydb.dsqm} & Metadata & Name, accession, description, and taxonomy ids\\
+\ccode{mydb.dsqs} & Sequence & Sequences (digitized, packed)\\
+\end{tabular}
+\vspace{0.5em}
+
+The database is specified on command lines by the name of the stub
+file (\ccode{mydb}), without any suffix. For example,
+
+\begin{userchunk}
+ % myprogram mydb
+\end{userchunk}
+
+says to open \ccode{mydb}. The \ccode{esl\_dsqdata\_Open()} call then
+opens all four files.
+
+
+\subsection{Definition of the \eslmodincmd{dsqdata} file formats}
+
+\subsubsection{Stub file}
+
+An example stub file:
+
+\begin{cchunk}
+Easel dsqdata v1 x4019752601
+
+Original file: refprot.fa
+Original format: FASTA
+Type: amino
+Sequences: 11432138
+Residues: 4358716588
+\end{cchunk}
+
+The first line is parsed by the reader. Its text format matches
+\ccode{/Easel dsqdata v(\textbackslash d+) x(\textbackslash d+)/}.
+The first field is a version number for the format, $\geq 1$. It is
+currently unused, but in the future we might need it to parse
+different versions of the format, if we need to update it. The second
+field is a 32-bit unsigned integer tag in the range
+(0..$2^{32}-1$). Each of the four files carries the same randomly
+generated tag. The tag is used to make sure the four files belong
+together in the same database, as opposed to one or more of them being
+inadvertently clobbered somehow by the user.
+
+After the first line, the rest of the stub file is ignored, and can
+contain anything -- even your own notes, if you want to add any.
+
+\subsubsection{Index file: .dsqi}
+
+The header of the binary index file consists of:
+
+\vspace{0.5em}
+\begin{tabular}{lll}
+\textbf{name} & \textbf{type} & \textbf{description} \\
+\ccode{magic} & \ccode{uint32\_t} & magic number (version, byte order)\\
+\ccode{uniquetag} & \ccode{uint32\_t} & random integer tag (0..$2^{32}-1$)\\
+\ccode{alphatype} & \ccode{uint32\_t} & alphabet type code (1,2,3 = RNA, DNA, amino)\\
+\ccode{flags} & \ccode{uint32\_t} & Currently 0. Reserved for future flags\\
+\ccode{max\_namelen} & \ccode{uint32\_t} & Maximum seq name length in metadata\\
+\ccode{max\_acclen} & \ccode{uint32\_t} & Maximum accession length in metadata\\
+\ccode{max\_desclen} & \ccode{uint32\_t} & Maximum description length in metadata\\
+\ccode{max\_seqlen} & \ccode{uint64\_t} & Maximum sequence length\\
+\ccode{nseq} & \ccode{uint64\_t} & Total number of sequences in database\\
+\ccode{nres} & \ccode{uint64\_t} & Total number of residues in database\\
+\end{tabular}
+\vspace{0.5em}
+
+The \textbf{magic} is used to check that the file is indeed a dsqdata
+format file, and to detect byte order swapping. Valid values for the
+magic version/byteorder number are:
+
+\vspace{0.5em}
+\begin{tabular} {lll}
+\textbf{value} & \textbf{derivation} & \textbf{description} \\
+\ccode{0xc4d3d1b1} & ``dsq1'' + 0x80808080 & dsqdata version 1 format \\
+\ccode{0xb1d1d3c4} & above, byteswapped & above, byteswapped \\
+\end{tabular}
+\vspace{0.5em}
+
+The random integer \textbf{uniquetag} must match the tag seen in
+the other files.
+
+The dsqdata packet format is only defined for biological sequence alphabets.
+Valid values for the \textbf{alphatype} code come from a subset of the codes
+used in \ccode{esl\_alphabet.h}:
+\begin{tabular}{lll}
+
+\vspace{0.5em}
+\textbf{integer} & \emcode{esl\_alphabet.h} & \textbf{description} \\
+1 & \ccode{eslRNA} & RNA \\
+2 & \ccode{eslDNA} & DNA \\
+3 & \ccode{eslAMINO} & protein \\
+\end{tabular}
+\vspace{0.5em}
+
+The unused \textbf{flags} field gives us some flexibility for future
+versions of the format.
+
+The maximum lengths of the names, accessions, and descriptions in the
+metadata file might someday be useful (in making allocations, for
+example) but they are currently unused.
+
+Likewise, the maximum sequence length, total number of sequences, and
+total number of residues in the database may someday be useful (for
+making decisions about how to partition a parallel search, for
+example), but they are currently unused too.
+
+After the header, the remainder of the file consists of \ccode{nseq}
+records of type \ccode{ESL\_DSQDATA\_RECORD} (defined in
+\ccode{esl\_dsqdata.h}):
+
+\vspace{0.5em}
+\begin{tabular}{lll}
+\textbf{name} & \textbf{type} & \textbf{description} \\
+\ccode{metadata\_end} & \ccode{int64\_t} & Position of terminal \ccode{\textbackslash 0} of metadata for seq i, in bytes\\
+\ccode{psq\_end} & \ccode{int64\_t} & Position of final packet for sequence i, in packets\\
+\end{tabular}
+\vspace{0.5em}
+
+Storing \emph{end} positions instead of \emph{start} positions allows
+us to determine lengths, without needing an $N+1$'th sentinel record,
+albeit at the cost of special casing what happens for the first
+sequence $i=0$. For example:
+
+\vspace{0.5em}
+\begin{tabular}{ll}
+Length: & \ccode{i == 0 ? r[i].end + 1 : r[i].end - r[i-1].end} \\
+Start: & \ccode{i == 0 ? 0 : r[i-1].end + 1}\\
+\end{tabular}
+\vspace{0.5em}
+
+This is equivalent to treating \ccode{r[-1].end = -1}. Some of the
+reader's code tracks a \ccode{last\_end} variable for the end of the
+previous metadata or packed sequence field $i-1$, which is initialized
+to -1. This -1 boundary condition is why we use signed
+\ccode{int64\_t} types.
+
+Packet sequence endpoints are stored in units of 32-bit
+\emph{packets}, not in bytes. To convert to a disk offset or a length
+in bytes you multiply by 4 (\ccode{sizeof(uint32\_t)}).
+
+Keeping the size of the dsqdata files as small as possible is critical
+because the reading speed is limited by the raw size of the
+data. Therefore we don't store separate positions for the different
+metadata fields (name/accession/description/taxonomy id), only one
+position for all the metadata associated with sequence $i$. The reader
+reads all of it in one chunk, and parses it for the stored \ccode{\textbackslash 0}
+sentinels.
+
+For the same reason, we don't store any information about
+\emph{unpacked} sequence lengths, only the bare minimum of information
+that the dsqdata loader and unpacker need to locate, load, and unpack
+the packed data for any given sequence $i$. The unpacker determines
+the unpacked sequence length when it unpacks the data.
+
+
+\subsubsection{Metadata file, .dsqm}
+
+The metadata file starts with two header fields, the same two that the
+index file starts with:
+
+\vspace{0.5em}
+\begin{tabular}{lll}
+\textbf{name} & \textbf{type} & \textbf{description} \\
+\ccode{magic} & \ccode{uint32\_t} & magic number (version, byte order)\\
+\ccode{uniquetag} & \ccode{uint32\_t} & random integer tag (0..$2^32-1$)\\
+\end{tabular}
+\vspace{0.5em}
+
+After the header, the remainder of the file consists of the following
+data for each sequence $i =$ \ccode{0..nseq-1}:
+
+\vspace{0.5em}
+\begin{tabular}{lll}
+\textbf{field} & \textbf{type} & \textbf{description} \\
+name & \ccode{char *}; ends in \ccode{\textbackslash 0} & Sequence name (1 word, no whitespace) \\
+accession & \ccode{char *}; ends in \ccode{\textbackslash 0} & Sequence accession (1 word, no whitespace)\\
+description & \ccode{char *}; ends in \ccode{\textbackslash 0} & Sequence description line \\
+taxonomy id & \ccode{int32\_t} & NCBI taxonomy identifier; -1 if none\\
+\end{tabular}
+\vspace{0.5em}
+
+The name, accession, and description are variable length strings. The
+name and accession are single ``words'' with no whitespace
+(\ccode{\textbackslash S+}). The description is one line, may contain spaces, but
+may not contain any newlines. All sequences must have a name, so
+\ccode{strlen(name) > 0}. The accession and description are optional;
+if they are not present, these are 0-length strings (\ccode{"\textbackslash 0"})
+
+The taxonomy identifier is an integer in NCBI's taxonomy. Valid
+taxonomy identifiers are $\geq 1$\footnote{I cannot find any
+ documentation at NCBI on the maximum range of the taxid, nor can I
+ find a clear statement of whether 0 is valid or not. 0 is currently
+ unused in the NCBI taxonomy. 1 indicates the top level. That makes
+ it look like it's safe to treat 0 as ``unset'' but it seems even
+ safer to go with -1 and a signed integer. Unless NCBI ends up having
+ more than two billion species. Currently there are about 1.8
+ million.}
+ This field is optional; use a value of -1 to indicate unset.
+
+These names, types, and semantics match the corresponding fields in an
+\ccode{ESL\_SQ}.
+
+\subsubsection{Sequence file, .dsqs}
+
+The sequence file also starts with the same two header fields that the
+index and metadata files started with:
+
+\vspace{0.5em}
+\begin{tabular}{lll}
+\textbf{name} & \textbf{type} & \textbf{description} \\
+\ccode{magic} & \ccode{uint32\_t} & magic number (version, byte order)\\
+\ccode{uniquetag} & \ccode{uint32\_t} & random integer tag (0..$2^32-1$)\\
+\end{tabular}
+\vspace{0.5em}
+
+After the header, the remainder of the file consists of the packed
+sequences, with one packet array for each sequence $i =$
+\ccode{0..nseq-1}. Each packet array ends with a specially marked
+sentinel packet. The packet format is described next.
+
+\subsubsection{Packet format}
+
+Each packet is an unsigned 32 bit integer. The two leading (most
+significant) bits are control bits. Bit 31 signals EOD (end of data):
+the last packet in a packed sequence. Bit 30 signals the packet
+format: 1 for 5-bit, 0 for 2-bit. The remaining bits are the packed
+residue codes:
+
+\begin{asciiart}
+ [31] [30] [29..25] [24..20] [19..15] [14..10] [ 9..5 ] [ 4..0 ]
+ ^ ^ |------------ 6 5-bit packed residues ------------------|
+ | | [] [] [] [] [] [] [] [] [] [] [] [] [] [] []
+ | | |----------- or 15 2-bit packed residues ----------------|
+ | |
+ | "packtype" bit 30 = 0 if packet is 2-bit packed; 1 if 5-bit packed
+ "sentinel" bit 31 = 1 if last packet in packed sequence; else 0
+
+ (packet & (1 << 31)) tests for end of sequence
+ (packet & (1 << 30)) tests for 5-bit packing vs. 2-bit
+ ((packet >> shift) && 31) decodes 5-bit, for shift=25..0 in steps of 5
+ ((packet >> shift) && 3) decodes 2-bit, for shift=28..0 in steps of 2
+\end{asciiart}
+
+Packets without the sentinel bit set are full. They unpack to 15 or 6
+residues.
+
+5-bit EOD packets may be partial: they unpack to 0..6 residues. The
+remaining residue codes are set to 0x1f (11111), indicating EOD within
+the packet. The only case in which a partial EOD packet encodes 0
+residues is a zero-length sequence: there has to be at least one EOD
+packet.
+
+2-bit EOD packets must be full, because there is no way to signal EOD
+locally within a 2-bit packet. It can't use 0x03 (11), because that
+encodes U/T. Generally, therefore, the last packet(s) of a nucleic
+acid sequence must be 5-bit encoded, solely to be able to use sentinel
+residues in a partial packet, unless the end happens to come flush at
+the end of a 2-bit packet.\footnote{If we ever needed to pack an
+ alphabet of 2 or 3 residues, we could use 0x03 as a sentinel. This
+ seems unlikely to ever happen, so I'm simply not going to include
+ any code to read EOD 2-bit partial packets.}
+
+A protein sequence of length $L$ packs into exactly P $= MAX(1,
+(L+5)/6)$ 5-bit packets. A DNA sequence packs into P $\leq MAX(1,
+(L+14)/15)$ mixed 2- and 5-bit packets. P $\geq 1$ because even a
+zero-length sequence ($L=0$) requires an EOD packet.
+
+A packed sequence consists of an integer number of packets, P, ending
+with an EOD packet.
+
+A packed amino acid sequence unpacks to $\leq$ 6P residues. All its
+packets are 5-bit encoded.
+
+A packed nucleic acid sequence unpacks to $\leq$ 15P residues. The
+packets are a mix of 2-bit and 5-bit. Degenerate residues must be
+5-bit packed, and the EOD packet usually is too. A 5-bit packet does
+not have to contain degenerate residues, because it might have been
+necessary to get ``in frame'' to pack a downstream degenerate
+residue. For example, the sequence ACGTACGTNNA... must be packed as
+[ACGTAC][CGTNNA]... to get the N's packed correctly.
+
+
diff --git a/easel/esl_exponential.c b/easel/esl_exponential.c
index 19786ac..4637a79 100644
--- a/easel/esl_exponential.c
+++ b/easel/esl_exponential.c
@@ -13,6 +13,11 @@
* 10. Copyright and license information
*
* xref STL9/138
+ *
+ * To do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:03:07 2013
*/
#include "esl_config.h"
@@ -314,8 +319,9 @@ esl_exp_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
{
double mu, mean;
int i;
+ int status;
- if (!n) ESL_EXCEPTION(eslEINVAL, "empty data vector provided for exponential fit");
+ if (!n) ESL_XEXCEPTION(eslEINVAL, "empty data vector provided for exponential fit");
/* ML mu is the lowest score. mu=x is ok in the exponential. */
mu = x[0];
@@ -328,6 +334,11 @@ esl_exp_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
*ret_mu = mu;
*ret_lambda = 1./mean; /* ML estimate trivial & analytic */
return eslOK;
+
+ ERROR:
+ *ret_mu = 0.0;
+ *ret_lambda = 0.0;
+ return status;
}
/* Function: esl_exp_FitCompleteScale()
@@ -572,7 +583,7 @@ main(int argc, char **argv)
else if (strcmp(argv[opti], "-XL") == 0) { xmin_set = TRUE; xmin = atof(argv[++opti]); }
else if (strcmp(argv[opti], "-XH") == 0) { xmax_set = TRUE; xmax = atof(argv[++opti]); }
else if (strcmp(argv[opti], "-XS") == 0) { xstep_set = TRUE; xstep = atof(argv[++opti]); }
- else ESL_EXCEPTION(eslEINVAL, "bad option");
+ else esl_fatal("bad option");
}
if (be_verbose)
@@ -581,8 +592,7 @@ main(int argc, char **argv)
r = esl_randomness_Create(0);
h = esl_histogram_CreateFull(mu, 100., binwidth);
if (plotfile != NULL) {
- if ((pfp = fopen(plotfile, "w")) == NULL)
- ESL_EXCEPTION(eslFAIL, "Failed to open plotfile");
+ if ((pfp = fopen(plotfile, "w")) == NULL) esl_fatal("Failed to open plotfile");
}
if (! xmin_set) xmin = mu;
if (! xmax_set) xmax = mu+20* (1./lambda);
@@ -596,20 +606,14 @@ main(int argc, char **argv)
esl_histogram_GetData(h, &data, &ndata);
esl_exp_FitComplete(data, ndata, &emu, &elambda);
- if (be_verbose)
- printf("Complete data fit: mu = %f lambda = %f\n", emu, elambda);
- if (fabs( (emu-mu)/mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted mu > 1%\n");
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted lambda > 10%\n");
+ if (be_verbose) printf("Complete data fit: mu = %f lambda = %f\n", emu, elambda);
+ if (fabs( (emu-mu)/mu ) > 0.01) esl_fatal("Error in (complete) fitted mu > 1%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) esl_fatal("Error in (complete) fitted lambda > 10%\n");
esl_exp_FitCompleteBinned(h, &emu, &elambda);
- if (be_verbose)
- printf("Binned data fit: mu = %f lambda = %f\n", emu, elambda);
- if (fabs( (emu-mu)/mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted mu > 1%\n");
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 10%\n");
+ if (be_verbose) printf("Binned data fit: mu = %f lambda = %f\n", emu, elambda);
+ if (fabs( (emu-mu)/mu ) > 0.01) esl_fatal("Error in (binned) fitted mu > 1%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) esl_fatal("Error in (binned) fitted lambda > 10%\n");
if (plot_pdf) esl_exp_Plot(pfp, mu, lambda, &esl_exp_pdf, xmin, xmax, xstep);
if (plot_logpdf) esl_exp_Plot(pfp, mu, lambda, &esl_exp_logpdf, xmin, xmax, xstep);
@@ -689,13 +693,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_exponential.c 770 2012-06-06 19:33:59Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_exponential.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_exponential.h b/easel/esl_exponential.h
index 747f0b5..19c30cb 100644
--- a/easel/esl_exponential.h
+++ b/easel/esl_exponential.h
@@ -1,8 +1,8 @@
/* Exponential distributions.
*
* SRE, Wed Aug 10 08:32:45 2005 [St. Louis]
- * SVN $Id: esl_exponential.h 770 2012-06-06 19:33:59Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_exponential.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslEXPONENTIAL_INCLUDED
#define eslEXPONENTIAL_INCLUDED
@@ -49,10 +49,10 @@ extern int esl_exp_FitCompleteBinned(ESL_HISTOGRAM *h,
#endif /*eslEXPONENTIAL_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_fileparser.c b/easel/esl_fileparser.c
index a19015f..6327aa0 100644
--- a/easel/esl_fileparser.c
+++ b/easel/esl_fileparser.c
@@ -109,9 +109,6 @@ esl_fileparser_Create(FILE *fp)
efp->buflen = 0;
efp->s = NULL;
efp->commentchar = '\0';
- efp->tok = NULL;
- efp->toklen = 0;
- efp->tokchar = '\0';
efp->filename = NULL;
efp->linenumber = 0;
efp->errbuf[0] = '\0';
@@ -211,19 +208,8 @@ esl_fileparser_GetToken(ESL_FILEPARSER *efp, char **opt_tok, int *opt_toklen)
int fcode;
int goodtok;
- if (opt_tok != NULL) *opt_tok = NULL;
- if (opt_toklen != NULL) *opt_toklen = 0;
-
- /* Do we already have a token from a NextLine() call? */
- if (efp->tok != NULL) {
- if (opt_tok != NULL) *opt_tok = efp->tok;
- if (opt_toklen != NULL) *opt_toklen = efp->toklen;
- efp->tok = NULL;
- efp->toklen = 0;
- efp->tokchar = '\0';
- return eslOK;
- }
- /* If not, then find next token. */
+ if (opt_tok) *opt_tok = NULL;
+ if (opt_toklen) *opt_toklen = 0;
/* First, make sure we have a line loaded.
* On the first call to GetToken, we won't.
@@ -236,6 +222,7 @@ esl_fileparser_GetToken(ESL_FILEPARSER *efp, char **opt_tok, int *opt_toklen)
/* Start strtok()'ing this line to try to find token.
* If we don't find one, keep loading lines until we
* do, or we run out of data.
+ * efp->s was set either by nextline() or previous GetToken().
*/
do {
goodtok = FALSE;
@@ -250,8 +237,8 @@ esl_fileparser_GetToken(ESL_FILEPARSER *efp, char **opt_tok, int *opt_toklen)
{ sprintf(efp->errbuf, "esl_strtok() failed"); return tokcode;}
} while (! goodtok);
- if (opt_tok != NULL) *opt_tok = tok;
- if (opt_toklen != NULL) *opt_toklen = toklen;
+ if (opt_tok) *opt_tok = tok;
+ if (opt_toklen) *opt_toklen = toklen;
return eslOK;
}
@@ -261,9 +248,23 @@ esl_fileparser_GetToken(ESL_FILEPARSER *efp, char **opt_tok, int *opt_toklen)
*
* Purpose: Advance the parser to the next non-blank, non-comment
* data line that contains at least one token.
+ *
+ * Upon return, <efp->buf> is a data-containing line, and
+ * <efp->s> points to the first non-whitespace character on
+ * it. A line-based parser can work on one or both of these.
+ *
+ * A line-oriented but token-based parser will call
+ * <esl_fileparser_GetTokenOnLine()> to extract successive
+ * tokens from it.
+ *
+ * A pure token-based parser will generally not call
+ * <_NextLine()>. The only reason would be to skip the
+ * remainder of a line it's in the middle of parsing, and
+ * advance to the next one -- but that's a sort of
+ * line-oriented thing to do.
*
* Returns: <eslOK> on success.
- * <eslEOF> if no more tokens remain in the file.
+ * <eslEOF> if no more data lines remain in the file.
*
* Throws: <eslEMEM> on allocation error.
*/
@@ -271,34 +272,15 @@ int
esl_fileparser_NextLine(ESL_FILEPARSER *efp)
{
int status;
- char *tok = NULL;
- int toklen = 0;
- char tokchar = '\0';
- int tokcode;
while ((status = nextline(efp)) == eslOK)
{
- tokcode = esl_strtok_adv(&(efp->s), " \t\r\n", &tok, &toklen, &tokchar);
- if (tokcode == eslEOL || (tokcode == eslOK && *tok == efp->commentchar)) continue; /* no tokens on line */
- if (tokcode != eslOK) ESL_XFAIL(tokcode, efp->errbuf, "esl_strtok() failed");
- break;
+ while (efp->s != '\0' && isspace(*(efp->s))) efp->s++;
+ if (*efp->s != '\0' && *efp->s != efp->commentchar) break;
}
- if (status == eslEOF) { status = eslEOF; goto ERROR; }
- if (status != eslOK) ESL_XFAIL(status, efp->errbuf, "nextline() failed");
-
- /* Remember this token. The next GetToken call will regurgitate it instead
- * of finding its own. efp->s now points to the character after tok ends.
- */
- efp->tok = tok;
- efp->toklen = toklen;
- efp->tokchar = tokchar;
+ if (status == eslEOF) return status;
+ if (status != eslOK) ESL_FAIL(status, efp->errbuf, "nextline() failed");
return eslOK;
-
- ERROR:
- efp->tok = NULL;
- efp->toklen = 0;
- efp->tokchar = '\0';
- return status;
}
@@ -330,6 +312,21 @@ esl_fileparser_NextLine(ESL_FILEPARSER *efp)
* non-comment data line that contains at least one token,
* taking the prepended <prefix> into account.
*
+ * There is a significant flaw in this mechanism, and as a
+ * result the caller must be able to guarantee the
+ * following limitation. The first data-containing line
+ * must be longer than <prefix>. It is sufficient for the
+ * first data token to be longer than <prefix>.
+ * (Equivalently, if <prefix> contains any data token, it
+ * must not contain any newline \verb+\n+ after that data.) The
+ * reason is that we need to avoid a situation where the
+ * concatenated prefix+nextline contains more than one data
+ * line, because other routines in the module assume that
+ * <efp->buf> is a single \verb+\n+-terminated line of input. For
+ * example: HMMER save files either start with a 4-byte
+ * binary magic number, or with "HMMER", and "HMMER" is
+ * longer than 4 bytes.
+ *
* Args: efp - open fileparser
* prefix - bytes that caller obtained by peeking with fread()
* plen - number of bytes in prefix
@@ -345,40 +342,25 @@ int
esl_fileparser_NextLinePeeked(ESL_FILEPARSER *efp, char *prefix, int plen)
{
int blen;
- void *tmp;
- char *tok = NULL;
- int toklen = 0;
- char tokchar = '\0';
int status;
+ /* First, make buf = the first line again, by prepending <prefix>. */
if ((status = nextline(efp)) != eslOK) goto ERROR; /* EOF, EMEM */
blen = strlen(efp->buf);
if (blen + plen + 1 > efp->buflen) {
- ESL_RALLOC(efp->buf, tmp, sizeof(char) * (blen + plen + 1));
+ ESL_REALLOC(efp->buf, sizeof(char) * (blen + plen + 1));
efp->buflen = blen + plen + 1;
}
memmove(efp->buf+plen, efp->buf, blen+1);
memcpy(efp->buf, prefix, plen);
efp->s = efp->buf;
- status = esl_strtok_adv(&(efp->s), " \t\r\n", &tok, &toklen, &tokchar);
-
- if (status == eslOK && *tok != efp->commentchar)
- {
- efp->tok = tok;
- efp->toklen = toklen;
- efp->tokchar = tokchar;
- status = eslOK;
- }
- else status = esl_fileparser_NextLine(efp);
-
- return status;
+ while (efp->s != '\0' && isspace(*(efp->s))) efp->s++;
+ if (*efp->s != '\0' && *efp->s != efp->commentchar) return eslOK;
+ else return esl_fileparser_NextLine(efp);
ERROR:
- efp->tok = NULL;
- efp->toklen = 0;
- efp->tokchar = '\0';
return status;
}
@@ -421,36 +403,26 @@ esl_fileparser_NextLinePeeked(ESL_FILEPARSER *efp, char *prefix, int plen)
int
esl_fileparser_GetTokenOnLine(ESL_FILEPARSER *efp, char **opt_tok, int *opt_toklen)
{
- int status;
char *tok = NULL;
int toklen = 0;
-
- /* Do we already have a token from a NextLine() call? */
- if (efp->tok != NULL) {
- if (opt_tok != NULL) *opt_tok = efp->tok;
- if (opt_toklen != NULL) *opt_toklen = efp->toklen;
- efp->tok = NULL;
- efp->toklen = 0;
- efp->tokchar = '\0';
- return eslOK;
- }
+ int status;
/* No line loaded? Then we can't find any token on it. */
if (efp->buf == NULL) { status = eslEOL; goto ERROR; }
- /* Find next token in the line loaded in the parser. */
+ /* Find next token in the line that's already loaded in the parser. */
status = esl_strtok_adv(&(efp->s), " \t\r\n", &tok, &toklen, NULL);
if (status == eslEOL) goto ERROR;
if (status != eslOK) goto ERROR;
if (status == eslOK && *tok == efp->commentchar) { status = eslEOL; goto ERROR; }
- if (opt_tok != NULL) *opt_tok = tok;
- if (opt_toklen != NULL) *opt_toklen = toklen;
+ if (opt_tok) *opt_tok = tok;
+ if (opt_toklen) *opt_toklen = toklen;
return eslOK;
ERROR:
- if (opt_tok != NULL) *opt_tok = NULL;
- if (opt_toklen != NULL) *opt_toklen = 0;
+ if (opt_tok) *opt_tok = NULL;
+ if (opt_toklen) *opt_toklen = 0;
return status;
}
@@ -460,7 +432,8 @@ esl_fileparser_GetTokenOnLine(ESL_FILEPARSER *efp, char **opt_tok, int *opt_tokl
* Incept: SRE, Mon Oct 13 08:59:26 2008 [Janelia]
*
* Purpose: Set a pointer <*ret_s> to the rest of the current line
- * held by the fileparser <efp>.
+ * held by the fileparser <efp>. Trailing newline char,
+ * if any, is removed.
*
* Because <ret_s> points to internal storage in the
* fileparser, the caller should be finished with it before
@@ -485,16 +458,6 @@ esl_fileparser_GetRemainingLine(ESL_FILEPARSER *efp, char **ret_s)
/* No line loaded? Then we can't find anything on it. */
if (efp->buf == NULL) { *ret_s = NULL; return eslEOL; }
- /* If we prestored the next token, we must revert that move. */
- if (efp->tok != NULL)
- {
- *(efp->s-1) = efp->tokchar;
- efp->s = efp->tok;
- efp->tok = NULL;
- efp->toklen = 0;
- efp->tokchar = '\0';
- }
-
/* skip leading whitespace */
while (isspace(*(efp->s))) efp->s++;
@@ -515,8 +478,10 @@ esl_fileparser_GetRemainingLine(ESL_FILEPARSER *efp, char **ret_s)
void
esl_fileparser_Destroy(ESL_FILEPARSER *efp)
{
- if (efp->buf != NULL) free(efp->buf);
- free(efp);
+ if (efp) {
+ if (efp->buf != NULL) free(efp->buf);
+ free(efp);
+ }
}
/* Function: esl_fileparser_Close()
@@ -565,9 +530,7 @@ nextline(ESL_FILEPARSER *efp)
if (efp->is_buffer) {
int len;
int end;
-
char *ptr;
- char *tmp;
if (efp->mem_pos >= efp->mem_size) return eslEOF;
@@ -578,8 +541,8 @@ nextline(ESL_FILEPARSER *efp)
if (len < end) ++len;
if (len + 1 > efp->buflen) {
- ESL_RALLOC(efp->buf, tmp, len * 2);
- efp->buflen = len * 2;
+ ESL_REALLOC(efp->buf, ESL_MAX(64, len * 2));
+ efp->buflen = ESL_MAX(64, len * 2);
}
memcpy(efp->buf, efp->mem_buffer + efp->mem_pos, len);
efp->buf[len] = 0;
@@ -595,7 +558,7 @@ nextline(ESL_FILEPARSER *efp)
return eslOK;
ERROR:
- return eslEMEM;
+ return status;
}
@@ -835,14 +798,14 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_fileparser.c 833 2012-12-07 18:57:36Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_fileparser.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_fileparser.h b/easel/esl_fileparser.h
index 13ed415..a668ded 100644
--- a/easel/esl_fileparser.h
+++ b/easel/esl_fileparser.h
@@ -13,10 +13,6 @@ typedef struct {
char *s; /* used by esl_strtok(); current position in buf. */
char commentchar; /* often '#' */
- char *tok; /* _NextLine() may remember a token... */
- int toklen; /* ... and its length */
- char tokchar; /* ... and char that got overwritten by \0, if any */
-
char *filename; /* name of opened file; or NULL (if just a stream) */
int linenumber; /* what line is loaded into buf; 1..nlines */
char errbuf[eslERRBUFSIZE]; /* for holding error diagnostics */
@@ -42,10 +38,10 @@ extern void esl_fileparser_Close (ESL_FILEPARSER *efp);
#endif /*eslFILEPARSER_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_gamma.c b/easel/esl_gamma.c
index fa500d9..8f6fc54 100644
--- a/easel/esl_gamma.c
+++ b/easel/esl_gamma.c
@@ -1,6 +1,21 @@
/* Statistical routines for gamma distributions.
*
- * xref STL10/65
+ * Contents:
+ * 1. Routines for evaluating densities and distributions
+ * 2. Generic API routines: for general interface w/ histogram module
+ * 3. Dumping plots for files
+ * 4. Sampling (requires augmentation w/ random module)
+ * 5. ML fitting to complete data
+ * 6. Test driver
+ * 7. Example
+ * 8. Copyright and license information
+ *
+ * Xref: STL10/65
+ *
+ * To do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:18:19 2013
*/
#include "esl_config.h"
@@ -14,14 +29,19 @@
#ifdef eslAUGMENT_RANDOM
#include "esl_random.h"
#endif
+#ifdef eslAUGMENT_HISTOGRAM
+#include "esl_histogram.h"
+#endif
static int tau_by_moments(double *x, int n, double mu, double *ret_tau,
double *ret_mean, double *ret_logsum);
+static int tau_by_moments_binned(ESL_HISTOGRAM *g, double mu, double *ret_tau,
+ double *ret_mean, double *ret_logsum);
static double tau_function(double tau, double mean, double logsum);
/****************************************************************************
- * Routines for evaluating densities and distributions
+ * 1. Routines for evaluating densities and distributions
****************************************************************************/
/* Function: esl_gam_pdf()
@@ -190,7 +210,7 @@ esl_gam_invcdf(double p, double mu, double lambda, double tau)
/****************************************************************************
- * Generic API routines: for general interface w/ histogram module
+ * 2. Generic API routines: for general interface w/ histogram module
****************************************************************************/
/* Function: esl_gam_generic_pdf()
@@ -252,7 +272,7 @@ esl_gam_generic_invcdf(double x, void *params)
/****************************************************************************
- * Routines for dumping plots for files
+ * 3. Dumping plots for files
****************************************************************************/
/* Function: esl_gam_Plot()
@@ -281,7 +301,7 @@ esl_gam_Plot(FILE *fp, double mu, double lambda, double tau,
/****************************************************************************
- * Routines for sampling (requires augmentation w/ random module)
+ * 4. Sampling (requires augmentation w/ random module)
****************************************************************************/
#ifdef eslAUGMENT_RANDOM
/* Function: esl_gam_Sample()
@@ -302,7 +322,7 @@ esl_gam_Sample(ESL_RANDOMNESS *r, double mu, double lambda, double tau)
/****************************************************************************
- * Maximum likelihood fitting
+ * 5. ML fitting to complete data
****************************************************************************/
/* Function: esl_gam_FitComplete()
@@ -335,9 +355,9 @@ esl_gam_FitComplete(double *x, int n, double mu, double *ret_lambda, double *ret
double b, fb;
int status;
- if ((status = tau_by_moments(x, n, mu, &c, &mean, &logsum) != eslOK)) return status;
+ if ((status = tau_by_moments(x, n, mu, &c, &mean, &logsum) != eslOK)) goto ERROR;
a = b = c;
- fa=fb=fc = tau_function(c, mean, logsum);
+ fc = tau_function(c, mean, logsum);
/* Rootfinding, 1.: bracketing the root with points a,b.
*/
@@ -348,9 +368,9 @@ esl_gam_FitComplete(double *x, int n, double mu, double *ret_lambda, double *ret
b = a * 2.;
fb = tau_function(b, mean, logsum);
if (fb < 0.) break; /* a,b now bracket */
- a = b; fa = fb; /* else fb>0, so b is a better left bracket than a */
+ a = b; /* else fb>0, so b is a better left bracket than a */
}
- if (i == 100) ESL_EXCEPTION(eslENOHALT, "failed to bracket");
+ if (i == 100) ESL_XEXCEPTION(eslENOHALT, "failed to bracket");
}
else if (fc < 0.) /* fx<0 means tau is too large, search left */
{
@@ -359,9 +379,9 @@ esl_gam_FitComplete(double *x, int n, double mu, double *ret_lambda, double *ret
a = b/2.;
fa = tau_function(a, mean, logsum);
if (fa > 0.) break; /* a,b now bracket */
- b = a; fb = fa; /* else fa<0, so a is a better right bracket than b */
+ b = a; /* else fa<0, so a is a better right bracket than b */
}
- if (i == 100) ESL_EXCEPTION(eslENOHALT, "failed to bracket");
+ if (i == 100) ESL_XEXCEPTION(eslENOHALT, "failed to bracket");
}
/* Rootfinding, 2.: Bisection search.
@@ -371,8 +391,8 @@ esl_gam_FitComplete(double *x, int n, double mu, double *ret_lambda, double *ret
{
c = (a+b)/2.; /* bisection */
fc = tau_function(c, mean, logsum);
- if (fc > 0.) { a = c; fa = fc; }
- else if (fc < 0.) { b = c; fb = fc; }
+ if (fc > 0.) a = c;
+ else if (fc < 0.) b = c;
else break; /* unlikely event that we nail it */
if ((b-a) <= 2.* DBL_EPSILON) {
@@ -380,11 +400,17 @@ esl_gam_FitComplete(double *x, int n, double mu, double *ret_lambda, double *ret
break;
}
}
- if (i == 100) ESL_EXCEPTION(eslENOHALT, "bisection search failed");
+ if (i == 100) ESL_XEXCEPTION(eslENOHALT, "bisection search failed");
*ret_lambda = c / mean;
*ret_tau = c;
return eslOK;
+
+
+ ERROR:
+ *ret_lambda = 0.0;
+ *ret_tau = 0.0;
+ return status;
}
/* tau_by_moments()
@@ -423,7 +449,6 @@ tau_by_moments(double *x, int n, double mu, double *ret_tau, double *ret_mean, d
}
-
/* tau_function()
*
* This is the rootfinding equation for tau...
@@ -447,67 +472,192 @@ tau_function(double tau, double mean, double logsum)
return ( ((log(tau) - psitau) - log(mean)) + logsum );
}
-
-/****************************************************************************
- * Example main()
- ****************************************************************************/
-#ifdef eslGAMMA_EXAMPLE
-/*::cexcerpt::gam_example::begin::*/
-/* compile:
- gcc -g -Wall -I. -o example -DeslGAMMA_EXAMPLE\
- -DeslAUGMENT_RANDOM -DeslAUGMENT_HISTOGRAM\
- esl_gamma.c esl_random.c esl_histogram.c esl_stats.c easel.c -lm
+#ifdef eslAUGMENT_HISTOGRAM
+/* Function: esl_gam_FitCompleteBinned()
+ *
+ * Purpose: Fit a complete exponential distribution to the observed
+ * binned data in a histogram <g>, where each
+ * bin i holds some number of observed samples x with values from
+ * lower bound l to upper bound u (that is, $l < x \leq u$);
+ * determine and return maximum likelihood estimates for the
+ * parameters $\mu, \lambda, \tau$ and
+ * return them in <*ret_mu>, <*ret_lambda>, <*ret_tau>.
+ *
+ * Unlike the <esl_exp_FitCompleteBinned()> case where the
+ * ML fit optimizes $\sum_i n_i \log P(a_i \leq x < b_i)$
+ * where $a_i \leq b_i$ are the bounds of bin i with
+ * occupancy $n_i$, here we take the approximation that
+ * $c_i = a_i + 0.5*(b_i-a_i)$ and optimize $\log P(a_i
+ * \leq x < b_i) \simeq \log(w) + \log P(x=c_i)$.
+ *
+ * Since $b_i-a_i = w$ is fixed, optimizing the above
+ * becomes equivalent to optimizing $\sum_i n_i * log P(x=c_i)$.
+ *
+ * The optimization is then equivalent to the non-binned case,
+ * but subsituting in averages such as $\sum_i x(i)$ by
+ * $\sum_i n_i*c_i i$, and so forth.
+ *
+ * If the binned data in <g> were set to focus on
+ * a tail by virtual censoring, the "complete" exponential is
+ * fitted to this tail. The caller then also needs to
+ * remember what fraction of the probability mass was in this
+ * tail.
+ *
+ * Args: g - histogram
+ * ret_mu - RETURN: given by the histogram
+ * ret_lambda - RETURN: ML estimate of lambda
+ * ret_tau - RETURN: ML estimate of tau
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslENOHALT> if bracketing or bisection fails;
+ * <eslEINVAL> if data cannot be gamma distributed (some <x[i] < mu>,
+ * or zero variance in x).
+ *
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEINVAL> if dataset is true-censored.
*/
-#include <stdio.h>
-#include "easel.h"
-#include "esl_random.h"
-#include "esl_histogram.h"
-#include "esl_gamma.h"
-
int
-main(int argc, char **argv)
+esl_gam_FitCompleteBinned(ESL_HISTOGRAM *g, double *ret_mu, double *ret_lambda, double *ret_tau)
{
- double mu = -5.0;
- double lambda = 2.0;
- double tau = 0.7;
- ESL_HISTOGRAM *h = esl_histogram_CreateFull(mu, 100., 0.1);
- ESL_RANDOMNESS *r = esl_randomness_Create(0);
- int n = 10000;
- double elam, etau;
+ double mu = 0.;
+ double mean, logsum;
int i;
- double x;
- double *data;
- int ndata;
+ double c, fc;
+ double a, fa;
+ double b, fb;
+ double tol = 1e-6;
+ int maxit = 100;
+ int status;
- /* Take <n> gamma-distributed random samples. */
- for (i = 0; i < n; i++)
+ if (g->dataset_is == COMPLETE)
{
- x = esl_gam_Sample(r, mu, lambda, tau);
- esl_histogram_Add(h, x);
+ if (g->is_rounded) mu = esl_histogram_Bin2LBound(g, g->imin);
+ else mu = g->xmin;
}
- esl_histogram_GetData(h, &data, &ndata);
+ else if (g->dataset_is == VIRTUAL_CENSORED) /* i.e., we'll fit to tail */
+ mu = g->phi;
+ else if (g->dataset_is == TRUE_CENSORED)
+ ESL_EXCEPTION(eslEINVAL, "can't fit true censored dataset");
- /* Plot the empirical (sampled) and expected survivals */
- esl_histogram_PlotSurvival(stdout, h);
- esl_gam_Plot(stdout, mu, lambda, tau,
- &esl_gam_surv, h->xmin, h->xmax, 0.1);
+ if ((status = tau_by_moments_binned(g, mu, &c, &mean, &logsum) != eslOK)) goto ERROR;
+ a = b = c;
+ if (c == 1.0) {
+ *ret_mu = mu;
+ *ret_lambda = c / mean;
+ *ret_tau = c;
+ return eslOK;
+ }
+ fc = tau_function(c, mean, logsum);
- /* ML fit to complete data, and plot fitted survival curve */
- esl_gam_FitComplete(data, ndata, mu, &elam, &etau);
- esl_gam_Plot(stdout, mu, elam, etau,
- &esl_gam_surv, h->xmin, h->xmax, 0.1);
+ /* Rootfinding, 1.: bracketing the root with points a,b.
+ */
+ if (fc > 0.) /* fx>0 means tau is too small, search right */
+ {
+ for (i = 0; i < maxit; i++) /* max iterations */
+ {
+ b = a * 2.;
+ fb = tau_function(b, mean, logsum);
- esl_randomness_Destroy(r);
- esl_histogram_Destroy(h);
- return 0;
+ if (fb < 0.) break; /* a,b now bracket */
+ a = b; /* else fb>0, so b is a better left bracket than a */
+ }
+ if (i == maxit) ESL_XEXCEPTION(eslENOHALT, "failed to bracket");
+ }
+ else if (fc < 0.) /* fx<0 means tau is too large, search left */
+ {
+ for (i = 0; i < maxit; i++)
+ {
+ a = b/2.;
+ fa = tau_function(a, mean, logsum);
+ if (fa > 0.) break; /* a,b now bracket */
+ b = a; /* else fa<0, so a is a better right bracket than b */
+ }
+ if (i == maxit) ESL_XEXCEPTION(eslENOHALT, "failed to bracket");
+ }
+
+ /* Rootfinding, 2.: Bisection search.
+ * We have the root in interval (a,b).
+ */
+ for (i = 0; i < maxit; i++)
+ {
+ c = (a+b)/2.; /* bisection */
+ fc = tau_function(c, mean, logsum);
+
+ if (fc > 0.) a = c;
+ else if (fc < 0.) b = c;
+ else break; /* unlikely event that we nail it */
+
+ if ((b-a) <= tol) {
+ c = (a+b)/2.;
+ break;
+ }
+ }
+ if (i == maxit) ESL_XEXCEPTION(eslENOHALT, "bisection search failed");
+
+ *ret_mu = mu;
+ *ret_lambda = (mean > 0.)? c / mean : 0.0;
+ *ret_tau = c;
+ return eslOK;
+
+ ERROR:
+ *ret_mu = 0.;
+ *ret_lambda = 0.;
+ *ret_tau = 0.;
+ return status;
}
-/*::cexcerpt::gam_example::end::*/
-#endif /*eslGAMMA_EXAMPLE*/
+/* tau_by_moments_binned()
+ *
+ * similar to tau_by_moments()
+ * where mean=\sum_i x_i now becomes mean=\sum_i n(i)*ci, ...
+ *
+ * note: the whole method relies on the property log(sum) >= logsum;
+ * which works if all points are valide, that is positive;
+ * log(0) = -inf is not a valid point,
+ * and the inequality (Jensen's inequality) does not hold.
+ */
+static int
+tau_by_moments_binned(ESL_HISTOGRAM *g, double mu, double *ret_tau, double *ret_mean, double *ret_logsum)
+{
+ int i;
+ double ai, bi, ci;
+ double sum, mean, var, logsum;
+ double tol = 1e-6;
+
+ sum = mean = var = logsum = 0.;
+ for (i = g->cmin+1; i <= g->imax; i++) /* for each occupied bin */
+ {
+ if (g->obs[i] == 0) continue;
+ ai = esl_histogram_Bin2LBound(g,i);
+ bi = esl_histogram_Bin2UBound(g,i);
+ ci = ai + 0.5 * (bi-ai);
+
+ if (ci < mu) ESL_EXCEPTION(eslEINVAL, "No point can be < mu in gamma data");
+ sum += (double)g->obs[i];
+ mean += (double)g->obs[i] * (ci-mu); /* mean is temporarily just the sum */
+ logsum += (ci>mu)? (double)g->obs[i] * log(ci-mu):0.0;
+ var += (double)g->obs[i] * (ci-mu) * (ci-mu); /* var is temporarily the sum of squares */
+ }
+
+ var = (sum > 1.)? (var - mean*mean/sum) / (sum-1.) : 0.0; /* now var is the variance */
+ mean /= (sum > 0.)? sum : 1.; /* and now mean is the mean */
+ logsum /= (sum > 0.)? sum : 1.;
+
+ if (ret_tau != NULL) *ret_tau = (var < tol || mean == 0.)? 1. : mean * mean / var;
+ if (ret_mean != NULL) *ret_mean = mean;
+ if (ret_logsum != NULL) *ret_logsum = logsum;
+ return eslOK;
+}
+
+
+#endif /*eslAUGMENT_HISTOGRAM*/
/****************************************************************************
- * Test driver
+ * 6. Test driver
****************************************************************************/
#ifdef eslGAMMA_TESTDRIVE
/* Compile:
@@ -532,8 +682,8 @@ main(int argc, char **argv)
double lambda = 2.0;
double tau = 0.7;
int n = 10000;
- double binwidth = 0.1;
- double elambda, etau;
+ double binwidth = 0.0001;
+ double emu, elambda, etau;
int i;
double x;
double *data;
@@ -574,7 +724,7 @@ main(int argc, char **argv)
else if (strcmp(argv[opti], "-XL") == 0) { xmin_set = TRUE; xmin = atof(argv[++opti]); }
else if (strcmp(argv[opti], "-XH") == 0) { xmax_set = TRUE; xmax = atof(argv[++opti]); }
else if (strcmp(argv[opti], "-XS") == 0) { xstep_set = TRUE; xstep = atof(argv[++opti]); }
- else ESL_EXCEPTION(eslEINVAL, "bad option");
+ else esl_fatal("bad option");
}
if (be_verbose)
@@ -583,8 +733,7 @@ main(int argc, char **argv)
r = esl_randomness_Create(0);
h = esl_histogram_CreateFull(mu, 100., binwidth);
if (plotfile != NULL) {
- if ((pfp = fopen(plotfile, "w")) == NULL)
- ESL_EXCEPTION(eslFAIL, "Failed to open plotfile");
+ if ((pfp = fopen(plotfile, "w")) == NULL) esl_fatal("Failed to open plotfile");
}
if (! xmin_set) xmin = mu;
if (! xmax_set) xmax = mu+40*(1./lambda);
@@ -599,12 +748,15 @@ main(int argc, char **argv)
esl_gam_FitComplete(data, ndata, mu, &elambda, &etau);
if (be_verbose)
- printf("Complete data fit: mu = %f lambda = %f tau = %f\n",
- mu, elambda, etau);
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted lambda > 10%\n");
- if (fabs( (etau-tau)/tau ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted tau > 10%\n");
+ printf("Complete data fit: mu = %f lambda = %f tau = %f\n", mu, elambda, etau);
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) esl_fatal("Error in (complete) fitted lambda > 10%%\n");
+ if (fabs( (etau-tau)/tau ) > 0.10) esl_fatal("Error in (complete) fitted tau > 10%%\n");
+
+ esl_gam_FitCompleteBinned(h, &emu, &elambda, &etau);
+ if (be_verbose) printf("Binned data fit: mu = %f lambda = %f tau = %f\n", emu, elambda, etau);
+ if (fabs( (emu-mu)/mu ) > 0.01) esl_fatal("Error in (binned) fitted mu > 1%%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) esl_fatal("Error in (binned) fitted lambda > 10%%\n");
+ if (fabs( (etau-tau)/tau ) > 0.10) esl_fatal("Error in (binned) fitted tau > 10%%\n");
if (plot_pdf) esl_gam_Plot(pfp, mu, lambda, tau, &esl_gam_pdf, xmin, xmax, xstep);
if (plot_logpdf) esl_gam_Plot(pfp, mu, lambda, tau, &esl_gam_logpdf, xmin, xmax, xstep);
@@ -621,15 +773,73 @@ main(int argc, char **argv)
}
#endif /*eslGAMMA_TESTDRIVE*/
+/****************************************************************************
+ * Example main()
+ ****************************************************************************/
+#ifdef eslGAMMA_EXAMPLE
+/*::cexcerpt::gam_example::begin::*/
+/* compile:
+ gcc -g -Wall -I. -o example -DeslGAMMA_EXAMPLE\
+ -DeslAUGMENT_RANDOM -DeslAUGMENT_HISTOGRAM\
+ esl_gamma.c esl_random.c esl_histogram.c esl_stats.c easel.c -lm
+ */
+#include <stdio.h>
+#include "easel.h"
+#include "esl_random.h"
+#include "esl_histogram.h"
+#include "esl_gamma.h"
+
+int
+main(int argc, char **argv)
+{
+ double mu = -5.0;
+ double lambda = 2.0;
+ double tau = 0.7;
+ ESL_HISTOGRAM *h = esl_histogram_CreateFull(mu, 100., 0.1);
+ ESL_RANDOMNESS *r = esl_randomness_Create(0);
+ int n = 10000;
+ double elam, etau;
+ int i;
+ double x;
+ double *data;
+ int ndata;
+
+ /* Take <n> gamma-distributed random samples. */
+ for (i = 0; i < n; i++)
+ {
+ x = esl_gam_Sample(r, mu, lambda, tau);
+ esl_histogram_Add(h, x);
+ }
+ esl_histogram_GetData(h, &data, &ndata);
+
+ /* Plot the empirical (sampled) and expected survivals */
+ esl_histogram_PlotSurvival(stdout, h);
+ esl_gam_Plot(stdout, mu, lambda, tau,
+ &esl_gam_surv, h->xmin, h->xmax, 0.1);
+
+ /* ML fit to complete data, and plot fitted survival curve */
+ esl_gam_FitComplete(data, ndata, mu, &elam, &etau);
+ esl_gam_Plot(stdout, mu, elam, etau,
+ &esl_gam_surv, h->xmin, h->xmax, 0.1);
+
+ esl_randomness_Destroy(r);
+ esl_histogram_Destroy(h);
+ return 0;
+}
+/*::cexcerpt::gam_example::end::*/
+#endif /*eslGAMMA_EXAMPLE*/
+
+
+
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_gamma.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_gamma.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_gamma.h b/easel/esl_gamma.h
index 672dc33..63d7756 100644
--- a/easel/esl_gamma.h
+++ b/easel/esl_gamma.h
@@ -1,8 +1,8 @@
/* Gamma distributions.
*
* SRE, Wed Nov 16 19:15:33 2005 [St. Louis]
- * SVN $Id: esl_gamma.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_gamma.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslGAMMA_INCLUDED
#define eslGAMMA_INCLUDED
@@ -10,6 +10,10 @@
#ifdef eslAUGMENT_RANDOM
#include <esl_random.h>
#endif
+#ifdef eslAUGMENT_HISTOGRAM
+#include "esl_histogram.h"
+#endif
+
double esl_gam_pdf (double x, double mu, double lambda, double tau);
double esl_gam_logpdf (double x, double mu, double lambda, double tau);
@@ -34,13 +38,17 @@ extern double esl_gam_Sample(ESL_RANDOMNESS *r, double mu, double lambda, double
extern int esl_gam_FitComplete(double *x, int n, double mu, double *ret_lambda, double *ret_tau);
+#ifdef eslAUGMENT_HISTOGRAM
+extern int esl_gam_FitCompleteBinned(ESL_HISTOGRAM *h, double *ret_mu, double *ret_lambda, double *ret_tau);
+#endif
+
#endif /*eslGAMMA_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_gencode.c b/easel/esl_gencode.c
new file mode 100644
index 0000000..83fd999
--- /dev/null
+++ b/easel/esl_gencode.c
@@ -0,0 +1,1188 @@
+/* Genetic code tables for translation, whether canonical or noncanonical.
+ *
+ * Table of contents:
+ * 1. NCBI genetic code tables, in Easel digital form
+ * 2. ESL_GENCODE genetic code object
+ * 3. Reading and writing genetic codes in NCBI format
+ * 4. DNA->protein digital translation, allowing ambiguity chars
+ * 5. Functions fo/////ting/destroying ESL_TRANS_WORKSTATE
+ * 6. Functions for processing ORFs
+ * 7. Debugging/development utilities
+ * 8. Unit tests
+ * 9. Test driver
+ * 10. Examples
+ * 11. Copyright and license
+ */
+#include "esl_config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_fileparser.h"
+#include "esl_regexp.h"
+#include "esl_gencode.h"
+
+
+/*****************************************************************
+ * 1. NCBI genetic code tables, in Easel digital form
+ *****************************************************************/
+
+/*
+ * From: http://www.ncbi.nlm.nih.gov/Taxonomy/taxonomyhome.html/index.cgi?chapter=cgencodes
+ * NCBI text files are digitized by the esl_gencode_example driver:
+ * make esl_gencode_example
+ * ./esl_gencode_example <file>
+ *
+ * The NCBI page has useful information about these code tables, references and caveats.
+ */
+
+static const ESL_GENCODE esl_transl_tables[] = {
+ { 1, "Standard",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 27, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S * C W C L F L F */
+ NULL, NULL },
+
+ { 2, "Vertebrate mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 27, 15, 27, 15, 10, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T * S * S M I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 3, "Yeast mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 10, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 16, 16, 16, 16, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S M I M I Q H Q H P P P P R R R R T T T T E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 4, "Mold, protozoan, coelenterate mitochondrial; Mycoplasma/Spiroplasma",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 5, "Invertebrate mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 15, 15, 15, 15, 10, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* K N K N T T T T S S S S M I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 6, "Ciliate, dasycladacean, Hexamita nuclear",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 13, 19, 13, 19, 15, 15, 15, 15, 27, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V Q Y Q Y S S S S * C W C L F L F */
+ NULL, NULL },
+
+ { 9, "Echinoderm and flatworm mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 11, 11, 8, 11, 16, 16, 16, 16, 15, 15, 15, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* N N K N T T T T S S S S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 10, "Euplotid nuclear",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 1, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S C C W C L F L F */
+ NULL, NULL },
+
+ { 11, "Bacterial, archaeal; and plant plastid",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 27, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S * C W C L F L F */
+ NULL, NULL },
+
+ { 12, "Alternative yeast",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 15, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 27, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L S L E D E D A A A A G G G G V V V V * Y * Y S S S S * C W C L F L F */
+ NULL, NULL },
+
+ { 13, "Ascidian mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 5, 15, 5, 15, 10, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* K N K N T T T T G S G S M I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 14, "Alternative flatworm mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 11, 11, 8, 11, 16, 16, 16, 16, 15, 15, 15, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 19, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* N N K N T T T T S S S S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V Y Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 16, "Chlorophycean mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 9, 19, 15, 15, 15, 15, 27, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y L Y S S S S * C W C L F L F */
+ NULL, NULL },
+
+ { 21, "Trematode mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 11, 11, 8, 11, 16, 16, 16, 16, 15, 15, 15, 15, 10, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* N N K N T T T T S S S S M I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 22, "Scenedesmus obliquus mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 9, 19, 27, 15, 15, 15, 27, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y L Y * S S S * C W C L F L F */
+ NULL, NULL },
+
+ { 23, "Thraustochytrium mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 27, 1, 18, 1, 27, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S * C W C * F L F */
+ NULL, NULL },
+
+ { 24, "Pterobranchia mitochondrial",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 15, 15, 8, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 18, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* K N K N T T T T S S K S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S W C W C L F L F */
+ NULL, NULL },
+
+ { 25, "Candidate Division SR1 and Gracilibacteria",
+ /* AAA AAC AAG AAT ACA ACC ACG ACT AGA AGC AGG AGT ATA ATC ATG ATT CAA CAC CAG CAT CCA CCC CCG CCT CGA CGC CGG CGT CTA CTC CTG CTT GAA GAC GAG GAT GCA GCC GCG GCT GGA GGC GGG GGT GTA GTC GTG GTT TAA TAC TAG TAT TCA TCC TCG TCT TGA TGC TGG TGT TTA TTC TTG TTT */
+ { 8, 11, 8, 11, 16, 16, 16, 16, 14, 15, 14, 15, 7, 7, 10, 7, 13, 6, 13, 6, 12, 12, 12, 12, 14, 14, 14, 14, 9, 9, 9, 9, 3, 2, 3, 2, 0, 0, 0, 0, 5, 5, 5, 5, 17, 17, 17, 17, 27, 19, 27, 19, 15, 15, 15, 15, 5, 1, 18, 1, 9, 4, 9, 4 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0 },
+ /* K N K N T T T T R S R S I I M I Q H Q H P P P P R R R R L L L L E D E D A A A A G G G G V V V V * Y * Y S S S S G C W C L F L F */
+ NULL, NULL },
+};
+
+
+/*****************************************************************
+ * 2. The ESL_GENCODE genetic code object
+ *****************************************************************/
+
+/* Function: esl_gencode_Create()
+ * Synopsis: Create a new genetic code object
+ *
+ * Purpose: Create a new genetic code object for translating DNA/RNA alphabet
+ * <nt_abc> to protein alphabet <aa_abc>, using the standard
+ * genetic code (NCBI transl_table 1).
+ *
+ * If you want a different code than transl_table 1, use
+ * <esl_gencode_Set()> to reset your <ESL_GENCODE> to a
+ * different code after you create it.
+ *
+ * Because the built-in genetic code tables have been
+ * pre-digitized with the standard Easel alphabets,
+ * <nt_abc> and <aa_abc> must generally also be standard
+ * Easel alphabets: <eslDNA> or <eslRNA> for <nt_abc>, and
+ * <eslAMINO> for <aa_abc>. The exception is if you're
+ * going to digitize NCBI data files for different Easel
+ * alphabets (for instance, if you're going to build a new,
+ * or your own version of the pre-digitized
+ * <esl_transl_tables[]>). As a special case, if either
+ * <nt_abc> or <aa_abc> are not standard Easel alphabets,
+ * the new <ESL_GENCODE> is left uninitialized, rather than
+ * setting it to transl_table 1.
+ *
+ * The <ESL_GENCODE> object keeps a copy of the two
+ * alphabet pointers. Caller is still responsible for their
+ * deallocation. They should not be deallocated until
+ * after the <ESL_GENCODE> object is.
+ *
+ * Returns: A pointer to the new object.
+ *
+ * Throws: <NULL> if allocation fails.
+ */
+ESL_GENCODE *
+esl_gencode_Create(const ESL_ALPHABET *nt_abc, const ESL_ALPHABET *aa_abc)
+{
+ ESL_GENCODE *gcode = NULL;
+ int status;
+
+ ESL_ALLOC(gcode, sizeof(ESL_GENCODE));
+
+ gcode->nt_abc = nt_abc; // Keep a reference to the nucleic alphabet; caller remains responsible for it
+ gcode->aa_abc = aa_abc; // ditto for amino alphabet
+
+ if ( (nt_abc->type == eslDNA || nt_abc->type == eslRNA) && aa_abc->type == eslAMINO)
+ esl_gencode_Set(gcode, 1); // Default = standard code (NCBI trans table 1)
+ return gcode;
+
+ ERROR:
+ esl_gencode_Destroy(gcode);
+ return NULL;
+}
+
+
+/* Function: esl_gencode_Destroy()
+ * Synopsis: Deallocate an <ESL_GENCODE>
+ */
+void
+esl_gencode_Destroy(ESL_GENCODE *gcode)
+{
+ if (gcode) free(gcode);
+}
+
+
+
+/* Function: esl_gencode_Set()
+ * Synopsis: Set one of the NCBI standard genetic codes
+ *
+ * Purpose: Set <gcode> to use one of the standard NCBI genetic code tables,
+ * using the NCBI identifier <ncbi_transl_table>.
+ *
+ * <ncbi_transl_table> is an integer from 1..25 (not all of
+ * which are valid). For example, 1 is the standard code,
+ * and 6 is the ciliate nuclear code.
+ *
+ * The alphabets in <gcode> must be standard Easel
+ * alphabets: <eslAMINO> for <aa_abc> and either <eslDNA>
+ * or <eslRNA> for <nt_abc>. This is because <_Set()>
+ * simply copies precomputed digitized data for the
+ * appropriate genetic code, and that precomputation is
+ * done with the standard Easel digital alphabets. If the
+ * <aa_abc> and <nt_abc> alphabet reference ptrs in <gcode>
+ * are set (and this is recommended, but not necessary)
+ * they're used to verify that the alphabets are Easel
+ * standard ones.
+ *
+ * Returns: <eslOK> on success.
+ * <eslENOTFOUND> if the <ncbi_transl_table> code is not
+ * in our available table of genetic codes.
+ *
+ * Throws: <eslEINVAL> if either of the alphabets in <gcode> are
+ * nonstandard.
+ */
+int
+esl_gencode_Set(ESL_GENCODE *gcode, int ncbi_transl_table)
+{
+ int ntables = sizeof(esl_transl_tables) / sizeof(ESL_GENCODE);
+ int t, c;
+
+ if (gcode->nt_abc && (gcode->nt_abc->type != eslDNA && gcode->nt_abc->type != eslRNA))
+ ESL_EXCEPTION(eslEINVAL, "NCBI translation tables are precomputed using Easel standard alphabets; your nucleic alphabet is nonstandard");
+ if (gcode->aa_abc && gcode->aa_abc->type != eslAMINO)
+ ESL_EXCEPTION(eslEINVAL, "NCBI translation tables are precomputed using Easel standard alphabets; your amino alphabet is nonstandard");
+
+ for (t = 0; t < ntables; t++)
+ if ( esl_transl_tables[t].transl_table == ncbi_transl_table) break;
+ if (t == ntables) return eslENOTFOUND;
+
+ gcode->transl_table = esl_transl_tables[t].transl_table;
+ strcpy(gcode->desc, esl_transl_tables[t].desc);
+ for (c = 0; c < 64; c++)
+ {
+ gcode->basic[c] = esl_transl_tables[t].basic[c];
+ gcode->is_initiator[c] = esl_transl_tables[t].is_initiator[c];
+ }
+ return eslOK;
+}
+
+
+/* Function: esl_gencode_SetInitiatorAny()
+ * Synopsis: Set initiator field so ORFs can start with any aa
+ *
+ * Purpose: Set <gcode> to allow ORFs to start with any amino acid, as
+ * opposed to looking for initiation codons.
+ *
+ * We do this by overwriting the <is_initiator> field to be
+ * TRUE for all codons except terminators. Because we
+ * overwrite, the only way to revert a genetic code to use
+ * its official set of initiators is to reinitialize it
+ * completely.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_gencode_SetInitiatorAny(ESL_GENCODE *gcode)
+{
+ int c;
+ for (c = 0; c < 64; c++)
+ gcode->is_initiator[c] = (esl_abc_XIsCanonical(gcode->aa_abc, gcode->basic[c]) ? TRUE : FALSE);
+ return eslOK;
+}
+
+
+/* Function: esl_gencode_SetInitiatorOnlyAUG
+ * Synopsis: Set initiator field so ORFs must start with AUG
+ *
+ * Purpose: Set <gcode> so that ORFs can only start with AUG, as opposed
+ * to using the possibly larger set of plausible initiator codons
+ * associated with the standard NCBI genetic codes. (For example,
+ * the standard code 1 allows ATG, CTG, and UUG initiators.)
+ *
+ * We do this by overwriting the <is_initiator> field to be TRUE
+ * only for the ATG codon.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_gencode_SetInitiatorOnlyAUG(ESL_GENCODE *gcode)
+{
+ int c;
+ int atgcodon = 16 * esl_abc_DigitizeSymbol(gcode->nt_abc, 'A') +
+ 4 * esl_abc_DigitizeSymbol(gcode->nt_abc, 'T') +
+ esl_abc_DigitizeSymbol(gcode->nt_abc, 'G');
+
+ for (c = 0; c < 64; c++) gcode->is_initiator[c] = FALSE;
+ gcode->is_initiator[atgcodon] = TRUE;
+ return eslOK;
+}
+
+
+
+/*****************************************************************
+ * 3. Reading and writing genetic codes in NCBI format
+ *****************************************************************/
+
+/* Function: esl_gencode_Read()
+ * Synopsis: Read a genetic code in NCBI text format from a stream.
+ *
+ * Purpose: Read an NCBI genetic code text file from <efp>; parse it
+ * and convert to Easel digitized data using the nucleic
+ * acid alphabet <nt_abc> and the protein alphabet <aa_abc>;
+ * return a pointer to the newly created <ESL_GENCODE> object
+ * via <*ret_gcode>.
+ *
+ * Example of an NCBI genetic code datafile:
+ *
+ * AAs = FFLLSSSSYY**CC*WLLLLPPPPHHQQRRRRIIIMTTTTNNKKSSRRVVVVAAAADDEEGGGG
+ * Starts = ---M---------------M---------------M----------------------------
+ * Base1 = TTTTTTTTTTTTTTTTCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGG
+ * Base2 = TTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGGTTTTCCCCAAAAGGGG
+ * Base3 = TCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAGTCAG
+ *
+ * Caller is responsible for opening the <efp> first. This
+ * allows caller to take input from files, streams, or even
+ * to have data embedded as a piece of a larger file format
+ * it's parsing.
+ *
+ * The <efp> is configured so that lines beginning with '#'
+ * are ignored as comments, and upon return, the <efp> remains
+ * configured this way.
+ *
+ * This function is and must remain independent of the
+ * order of residues in the amino and nucleic
+ * alphabets. This allows us to convert NCBI genetic code
+ * text files to digitized Easel translation tables even
+ * for other orders of the symbols in DNA/protein digital
+ * alphabets, including the case of us someday changing the
+ * order of the Easel standard alphabet(s). Once digitized,
+ * Easel encodings of the genetic code are dependent on the
+ * <eslAMINO> and <eslNUCLEIC> alphabets they were created
+ * with.
+ *
+ * Slightly confusing case: if we *did* change the order in
+ * the Easel standard alphabets, the esl_gencode module has
+ * no way to know that it changed. All it sees is the
+ * <eslDNA>, <eslRNA>, or <eslAMINO> <type>. <ESL_GENCODE>
+ * data will be corrupted, and unit testing of
+ * <esl_gencode> will fail, until the <esl_transl_tables[]>
+ * data are rebuilt for the new alphabets using the
+ * <esl_gencode_example> program.
+ *
+ * Returns: <eslOK> on success. <*ret_gcode> contains the new <ESL_GENCODE>.
+ * <efp> has been set to ignore lines beginning with '#'.
+ *
+ * On a parse error, returns <eslEFORMAT>, and an informative message is
+ * left in <efp->errbuf>. Now <*ret_gcode> is NULL, but <efp> has
+ * still been configured to ignore lines beginning with '#'.
+ */
+int
+esl_gencode_Read(ESL_FILEPARSER *efp, const ESL_ALPHABET *nt_abc, const ESL_ALPHABET *aa_abc, ESL_GENCODE **ret_gcode)
+{
+ ESL_GENCODE *gcode = esl_gencode_Create(nt_abc, aa_abc);
+ ESL_REGEXP *mach = esl_regexp_Create();
+ int start, end, s, e;
+ char aas[65];
+ char mline[65];
+ char base1[65];
+ char base2[65];
+ char base3[65];
+ int aa_seen[20];
+ int stop_seen;
+ int codon_seen[64];
+ int x, codon, pos;
+ int status;
+
+ ESL_DASSERT1(( nt_abc->K == 4 )); // We're going to hardcode ncodons = 64, so "trust but verify"
+ ESL_DASSERT1(( aa_abc->K == 20 ));
+
+ if (( status = esl_fileparser_SetCommentChar(efp, '#') != eslOK)) goto ERROR;
+
+ if ((status = esl_fileparser_NextLine(efp)) != eslOK) { if (status == eslEOF) ESL_XFAIL(eslEFORMAT, efp->errbuf, "File empty or truncated? No AAs line found"); else goto ERROR; }
+ if ((status = esl_regexp_Match(mach, "^\\s*[Aa][Aa]s\\s*=\\s*(\\S+)\\s*$", efp->buf)) != eslOK) { if (status == eslEOD) ESL_XFAIL(eslEFORMAT, efp->errbuf, "First data line doesn't start with 'AAs ='"); else goto ERROR; }
+ if ((status = esl_regexp_SubmatchCoords(mach, efp->buf, 1, &start, &end)) != eslOK) goto ERROR;
+ if (end - start + 1 != 64) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Expected 64 char of AAs data");
+ strncpy(aas, efp->buf+start, 64);
+ aas[64] = '\0';
+
+ if ((status = esl_fileparser_NextLine(efp)) != eslOK) { if (status == eslEOF) ESL_XFAIL(eslEFORMAT, efp->errbuf, "File empty or truncated? No Starts line found"); else goto ERROR; }
+ if ((status = esl_regexp_Match(mach, "^\\s*[Ss]tarts\\s*=\\s*(\\S+)\\s*$", efp->buf)) != eslOK) { if (status == eslEOD) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Second data line doesn't start with 'Starts ='"); else goto ERROR; }
+ if ((status = esl_regexp_SubmatchCoords(mach, efp->buf, 1, &s, &e)) != eslOK) goto ERROR;
+ if (e - s + 1 != 64) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Expected 64 char of Starts data");
+ if (s != start) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Starts data is not aligned with AAs data above it");
+ strncpy(mline, efp->buf+start, 64);
+ mline[64] = '\0';
+
+ if ((status = esl_fileparser_NextLine(efp)) != eslOK) { if (status == eslEOF) ESL_XFAIL(eslEFORMAT, efp->errbuf, "File empty or truncated? No Base1 line found"); else goto ERROR; }
+ if ((status = esl_regexp_Match(mach, "^\\s*[Bb]ase1\\s*=\\s*(\\S+)\\s*$", efp->buf)) != eslOK) { if (status == eslEOD) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Third data line doesn't start with 'Base1 ='"); else goto ERROR; }
+ if ((status = esl_regexp_SubmatchCoords(mach, efp->buf, 1, &s, &e)) != eslOK) goto ERROR;
+ if (e - s + 1 != 64) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Expected 64 char of Base1 data");
+ if (s != start) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Base1 data is not aligned with data above it");
+ strncpy(base1, efp->buf+start, 64);
+ base1[64] = '\0';
+
+ if ((status = esl_fileparser_NextLine(efp)) != eslOK) { if (status == eslEOF) ESL_XFAIL(eslEFORMAT, efp->errbuf, "File empty or truncated? No Base2 line found"); else goto ERROR; }
+ if ((status = esl_regexp_Match(mach, "^\\s*[Bb]ase2\\s*=\\s*(\\S+)\\s*$", efp->buf)) != eslOK) { if (status == eslEOD) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Fourth data line doesn't start with 'Base2 ='"); else goto ERROR; }
+ if ((status = esl_regexp_SubmatchCoords(mach, efp->buf, 1, &s, &e)) != eslOK) goto ERROR;
+ if (e - s + 1 != 64) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Expected 64 char of Base2 data");
+ if (s != start) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Base2 data is not aligned with data above it");
+ strncpy(base2, efp->buf+start, 64);
+ base2[64] = '\0';
+
+ if ((status = esl_fileparser_NextLine(efp)) != eslOK) { if (status == eslEOF) ESL_XFAIL(eslEFORMAT, efp->errbuf, "File empty or truncated? No Base3 line found"); else goto ERROR; }
+ if ((status = esl_regexp_Match(mach, "^\\s*[Bb]ase3\\s*=\\s*(\\S+)\\s*$", efp->buf)) != eslOK) { if (status == eslEOD) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Fifth data line doesn't start with 'Base3 ='"); else goto ERROR; }
+ if ((status = esl_regexp_SubmatchCoords(mach, efp->buf, 1, &s, &e)) != eslOK) goto ERROR;
+ if (e - s + 1 != 64) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Expected 64 char of Base3 data");
+ if (s != start) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Base3 data is not aligned with data above it");
+ strncpy(base3, efp->buf+start, 64);
+ base3[64] = '\0';
+
+ stop_seen = FALSE;
+ for ( x = 0; x < 20; x++) aa_seen[x] = FALSE;
+ for (codon = 0; codon < 64; codon++) codon_seen[codon] = FALSE;
+
+ for (pos = 0; pos < 64; pos++)
+ {
+ if (! esl_abc_CIsValid(aa_abc, aas[pos]) || ! (esl_abc_CIsCanonical(aa_abc, aas[pos]) || esl_abc_CIsNonresidue(aa_abc, aas[pos]))) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Character %c on AAs line is not an amino acid or a * (stop)", aas[pos]);
+ if (! esl_abc_CIsValid(nt_abc, base1[pos]) || ! esl_abc_CIsCanonical(nt_abc, base1[pos])) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Character %c on Base1 line is not a nucleotide", base1[pos]);
+ if (! esl_abc_CIsValid(nt_abc, base2[pos]) || ! esl_abc_CIsCanonical(nt_abc, base2[pos])) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Character %c on Base2 line is not a nucleotide", base2[pos]);
+ if (! esl_abc_CIsValid(nt_abc, base3[pos]) || ! esl_abc_CIsCanonical(nt_abc, base3[pos])) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Character %c on Base3 line is not a nucleotide", base3[pos]);
+ if ( mline[pos] != '-' && mline[pos] != 'm' && mline[pos] != 'M') ESL_XFAIL(eslEFORMAT, efp->errbuf, "Character %c on Starts line is neither a - or an M", mline[pos]);
+
+ codon = 16 * esl_abc_DigitizeSymbol(nt_abc, base1[pos]) +
+ 4 * esl_abc_DigitizeSymbol(nt_abc, base2[pos]) +
+ esl_abc_DigitizeSymbol(nt_abc, base3[pos]);
+ x = esl_abc_DigitizeSymbol(aa_abc, aas[pos]);
+
+ ESL_DASSERT1(( codon >= 0 && codon < 64 ));
+ ESL_DASSERT1(( x >= 0 && (x < 20 || x == esl_abc_XGetNonresidue(aa_abc))));
+
+ if (x < 20) aa_seen[x]++; else stop_seen++;
+ codon_seen[codon]++;
+
+ gcode->basic[codon] = x;
+ gcode->is_initiator[codon] = ( mline[pos] == '-' ? FALSE : TRUE ); // We already checked above that it's one of "-mM"
+ }
+
+ /* A genetic code must provide a translation for all 64 codons, and
+ * all 20 amino acids to be encoded. (No organism is yet known to
+ * encode fewer than 20 amino acids [Kawahara-Kobayashi et al, NAR
+ * 40:10576, 2012].) The code must include at least one stop codon.
+ */
+ if (! stop_seen) ESL_XFAIL(eslEFORMAT, efp->errbuf, "No stop codon found in that genetic code");
+ for (codon = 0; codon < 64; codon++)
+ if (! codon_seen[codon]) ESL_XFAIL(eslEFORMAT, efp->errbuf, "Data for fewer than 64 codons was found");
+ for (x = 0; x < 20; x++)
+ if (aa_seen[x] == 0) ESL_XFAIL(eslEFORMAT, efp->errbuf, "No codon for residue %c found", aa_abc->sym[x]);
+
+
+ esl_regexp_Destroy(mach);
+ gcode->transl_table = -1; // It was initialized to 1, the NCBI standard table; reset
+ gcode->desc[0] = '\0'; // Was initialized to desc of NCBI table 1; blank it
+ gcode->nt_abc = nt_abc;
+ gcode->aa_abc = aa_abc;
+ *ret_gcode = gcode;
+ return eslOK;
+
+ ERROR:
+ if (gcode) esl_gencode_Destroy(gcode);
+ if (mach) esl_regexp_Destroy(mach);
+ *ret_gcode = NULL;
+ return status;
+}
+
+
+/* Function: esl_gencode_Write()
+ * Synopsis: Write a genetic code to a stream, in NCBI format
+ *
+ * Purpose: Write the genetic code <gcode> to stream <ofp> in NCBI format.
+ *
+ * If <add_comment> is TRUE and if it's a standard NCBI genetic code
+ * (i.e. with an NCBI transl_table number), also add a comment
+ * line at the top to document which transl_table it is, and the
+ * description line. This is an Easel extension. Other programs
+ * that read NCBI genetic code files will probably not be able to
+ * parse the Easel comment line, and for such programs you'll want
+ * <add_comment> to be FALSE.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEWRITE> on a write failure, such as a disk running out of space.
+ */
+int
+esl_gencode_Write(FILE *ofp, const ESL_GENCODE *gcode, int add_comment)
+{
+ char order[] = "TCAG";
+ int x,c;
+
+ if (add_comment && gcode->transl_table > 0)
+ if ( fprintf(ofp, "# %d %s\n",
+ gcode->transl_table, gcode->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+
+
+ if ( fprintf(ofp, " AAs = ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ for (x = 0; x < 64; x++) {
+ c = 16 * esl_abc_DigitizeSymbol(gcode->nt_abc, order[ x/16 ])
+ + 4 * esl_abc_DigitizeSymbol(gcode->nt_abc, order[ (x%16)/4 ])
+ + esl_abc_DigitizeSymbol(gcode->nt_abc, order[ x%4]);
+ if (fputc( gcode->aa_abc->sym[gcode->basic[c]], ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ }
+ if ( fputc('\n', ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+
+ if ( fprintf(ofp, " Starts = ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ for (x = 0; x < 64; x++) {
+ c = 16 * esl_abc_DigitizeSymbol(gcode->nt_abc, order[ x/16 ])
+ + 4 * esl_abc_DigitizeSymbol(gcode->nt_abc, order[ (x%16)/4 ])
+ + esl_abc_DigitizeSymbol(gcode->nt_abc, order[ x%4]);
+ if (fputc( (gcode->is_initiator[c] ? 'M' : '-'), ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ }
+ if ( fputc('\n', ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+
+ if ( fprintf(ofp, " Base1 = ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ for (x = 0; x < 64; x++) if ( fputc( order[ x/16 ], ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ if ( fputc('\n', ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+
+ if ( fprintf(ofp, " Base2 = ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ for (x = 0; x < 64; x++) if ( fputc( order[ (x%16)/4 ], ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ if ( fputc('\n', ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+
+ if ( fprintf(ofp, " Base3 = ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ for (x = 0; x < 64; x++) if ( fputc( order[ x%4 ], ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+ if ( fputc('\n', ofp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "genetic code write failed");
+
+ return eslOK;
+}
+
+
+
+
+/*****************************************************************
+ * 4. DNA->protein digital translation, allowing ambiguity chars
+ *****************************************************************/
+
+
+/* Function: esl_gencode_GetTranslation()
+ * Synopsis: Returns translation of a degenerate digital codon.
+ *
+ * Purpose: Translate the digital DNA/RNA codon sequence starting at
+ * pointer <dsqp> and return the digital amino acid code.
+ *
+ * <dsqp> is a pointer into a digital sequence,
+ * not a complete digital sequence, so there are no sentinels.
+ * Also, caller must be sure that a full codon dsqp[0..2] exists
+ * at this location.
+ *
+ * Ambiguity codes are allowed in the DNA/RNA codon. If
+ * the amino acid is unambiguous, despite codon ambiguity,
+ * the correct amino acid is still determined: for example,
+ * GGR translates as Gly, UUY as Phe, AUH as Ile. If
+ * there is no single unambiguous amino acid translation, the codon
+ * is translated as X (unknown).
+ *
+ * Other than X, no amino acid ambiguity code is
+ * returned. We do not, for example, decode SAR as Z (Q|E),
+ * MUH as J (I|L), or RAY as B (N|D), because the extra
+ * complexity needed to do this doesn't seem worthwhile.
+ *
+ * Returns: digital amino acid code (0..19 or esl_abc_XGetUnknown()) in
+ * the protein alphabet.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+esl_gencode_GetTranslation(const ESL_GENCODE *gcode, ESL_DSQ *dsqp)
+{
+ ESL_DSQ x, y, z;
+ int codon;
+ int aa = -1;
+
+ if (esl_abc_XIsCanonical(gcode->nt_abc, dsqp[0]) && esl_abc_XIsCanonical(gcode->nt_abc, dsqp[1]) && esl_abc_XIsCanonical(gcode->nt_abc, dsqp[2]))
+ {
+ codon = 16*dsqp[0] + 4*dsqp[1] + dsqp[2];
+ return gcode->basic[codon];
+ }
+
+ for (x = 0; x < 4; x++)
+ {
+ if (! gcode->nt_abc->degen[dsqp[0]][x]) continue;
+ for (y = 0; y < 4; y++)
+ {
+ if (! gcode->nt_abc->degen[dsqp[1]][y]) continue;
+ for (z = 0; z < 4; z++)
+ {
+ if (! gcode->nt_abc->degen[dsqp[2]][z]) continue;
+ /* xyz is one possible basic codon included in the dsqp[3] degeneracy */
+ codon = x * 16 + y * 4 + z;
+ if (aa == -1) aa = gcode->basic[codon];
+ else if (aa != gcode->basic[codon]) return esl_abc_XGetUnknown(gcode->aa_abc);
+ }
+ }
+ }
+ return aa;
+}
+
+/* Function: esl_gencode_IsInitiator()
+ * Synopsis: Returns TRUE if degenerate codon is an initiator
+ *
+ * Purpose: Determine if all possible codons consistent with the
+ * degenerate codon sequence starting at <dsqp> are
+ * all initiation codons; return TRUE if so, else FALSE.
+ *
+ * For example, the standard code allows AUG|CUG|UUG
+ * initiators. Given HUG, MUG, or YUG, we would return
+ * TRUE.
+ *
+ * Because stop codons never have the <is_initiator> flag,
+ * even if we used <esl_gencode_SetAnyInitiator()>, NNN
+ * will never be used to initiate an open reading frame,
+ * nor will other degenerate codons that are consistent
+ * with at least one stop. This is desirable: we don't want
+ * to call all-X ORFs across long stretches of N's that
+ * are prevalent in DNA sequence assemblies.
+ *
+ * Works fine on nondegenerate codons too, but if caller
+ * knows the codon is nondegenerate, it should simply
+ * test <gcode->is_initiator[0..63]> directly.
+ *
+ * <dsqp> is a pointer into a digital sequence, not
+ * a digital sequence itself, so there are no sentinels:
+ * the codon is dsqp[0..2]. Moreover, caller must be
+ * sure that a full codon exists at this location;
+ * don't call this function at dsq[L-1] or dsq[L].
+ *
+ * Returns: TRUE|FALSE
+ */
+int
+esl_gencode_IsInitiator(const ESL_GENCODE *gcode, ESL_DSQ *dsqp)
+{
+ ESL_DSQ x, y, z;
+ int codon;
+ int ncodons = 0;
+
+ /* Handle the canonical case (no degeneracies) even though it's
+ * wasteful to call esl_gencode_IsInitiator() if there's no
+ * degeneracies.
+ */
+ if (esl_abc_XIsCanonical(gcode->nt_abc, dsqp[0]) && esl_abc_XIsCanonical(gcode->nt_abc, dsqp[1]) && esl_abc_XIsCanonical(gcode->nt_abc, dsqp[2]))
+ {
+ codon = 16*dsqp[0] + 4*dsqp[1] + dsqp[2];
+ return gcode->is_initiator[codon];
+ }
+
+ /* Main case: if there's degeneracies then all possible
+ * codons must be initiators to call the ambig codon an initiator.
+ */
+ for (x = 0; x < 4; x++)
+ {
+ if (! gcode->nt_abc->degen[dsqp[0]][x]) continue;
+ for (y = 0; y < 4; y++)
+ {
+ if (! gcode->nt_abc->degen[dsqp[1]][y]) continue;
+ for (z = 0; z < 4; z++)
+ {
+ if (! gcode->nt_abc->degen[dsqp[2]][z]) continue;
+ /* xyz is one possible basic codon included in the dsqp[3] degeneracy */
+ codon = x * 16 + y * 4 + z;
+ ncodons++;
+ if (! gcode->is_initiator[codon]) return FALSE;
+ }
+ }
+ }
+
+ /* I can't imagine a degeneracy that doesn't correspond to at least one codon,
+ * but it creeps me out to leave the door open to this returning TRUE if it
+ * hasn't seen any. Hence, <ncodons> test.
+ */
+ return (ncodons ? TRUE : FALSE);
+}
+
+
+/*****************************************************************
+ * 5. Functions for creating/destroying ESL_TRANS_WORKSTATE
+ *****************************************************************/
+void
+esl_gencode_WorkstateDestroy(ESL_GENCODE_WORKSTATE *wrk)
+{
+ int f;
+ if (wrk)
+ {
+ for (f = 0; f < 3; f++) esl_sq_Destroy(wrk->psq[f]);
+
+ if(wrk->orf_block != NULL)
+ {
+ esl_sq_DestroyBlock(wrk->orf_block);
+ wrk->orf_block = NULL;
+ }
+
+ free(wrk);
+ }
+}
+
+ESL_GENCODE_WORKSTATE *
+esl_gencode_WorkstateCreate(ESL_GETOPTS *go, ESL_GENCODE *gcode)
+{
+ ESL_GENCODE_WORKSTATE *wrk = NULL;
+ int f;
+ int status;
+
+ ESL_ALLOC(wrk, sizeof(ESL_GENCODE_WORKSTATE));
+ for (f = 0; f < 3; f++) wrk->psq[f] = NULL;
+
+ for (f = 0; f < 3; f++)
+ {
+ wrk->psq[f] = esl_sq_CreateDigital(gcode->aa_abc);
+ wrk->psq[f]->dsq[0] = eslDSQ_SENTINEL;
+ wrk->in_orf[f] = FALSE;
+ }
+
+ wrk->apos = 1;
+ wrk->frame = 0;
+ wrk->codon = 0;
+ wrk->inval = 0;
+ wrk->is_revcomp = FALSE;
+ wrk->orfcount = 0;
+
+ wrk->orf_block = NULL;
+
+ wrk->do_watson = (esl_opt_GetBoolean(go, "--crick") ? FALSE : TRUE);
+ wrk->do_crick = (esl_opt_GetBoolean(go, "--watson") ? FALSE : TRUE);
+ wrk->using_initiators = ((esl_opt_GetBoolean(go, "-m") || esl_opt_GetBoolean(go, "-M")) ? TRUE : FALSE);
+ wrk->minlen = esl_opt_GetInteger(go, "-l");
+ wrk->outfp = stdout;
+ wrk->outformat = eslSQFILE_FASTA;
+
+ return wrk;
+
+ ERROR:
+ esl_gencode_WorkstateDestroy(wrk);
+ return NULL;
+}
+
+/*****************************************************************
+ * 6. Functions for processing ORFs
+ *****************************************************************/
+
+int
+esl_gencode_ProcessOrf(ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq)
+{
+
+ int status = eslOK;
+ ESL_SQ *psq = wrk->psq[wrk->frame];
+
+ psq->end = (wrk->is_revcomp ? wrk->apos+1 : wrk->apos-1);
+
+ if (wrk->in_orf[wrk->frame] && psq->n >= wrk->minlen)
+ {
+ wrk->orfcount++;
+ if (psq->n+2 > psq->salloc)
+ esl_sq_Grow(psq, /*opt_nsafe=*/NULL);
+ psq->dsq[1+psq->n] = eslDSQ_SENTINEL;
+
+ esl_sq_FormatName(psq, "orf%d", wrk->orfcount);
+ esl_sq_FormatDesc(psq, "source=%s coords=%d..%d length=%d frame=%d %s", psq->source, psq->start, psq->end, psq->n, wrk->frame + 1 + (wrk->is_revcomp ? 3 : 0), sq->desc);
+ /* if we do not have a block to write ORFs to then write ORFs to file */
+ if (wrk->orf_block == NULL)
+ {
+ esl_sqio_Write(wrk->outfp, psq, wrk->outformat, /*sq ssi offset update=*/FALSE);
+ }
+ else
+ {
+ if (wrk->orf_block->count == wrk->orf_block->listSize)
+ {
+ status = esl_sq_BlockGrowTo(wrk->orf_block, wrk->orf_block->listSize + 128, TRUE, psq->abc);
+ if (status != eslOK) ESL_XEXCEPTION(eslEMEM, "Cannot increase size of ORF sequence block");
+ }
+ //printf("adding seq to block list num %d\n",wrk->orf_block->count);
+ //esl_sqio_Write(stdout, psq, eslSQFILE_FASTA, 0);
+ //printf("\n");
+ esl_sq_Copy(psq, &(wrk->orf_block->list[wrk->orf_block->count]));
+ //printf("incrementing block count to %d\n",wrk->orf_block->count+1);
+
+ wrk->orf_block->count++;
+ }
+ }
+
+ esl_sq_Reuse(psq);
+ esl_sq_SetSource(psq, sq->name);
+ wrk->in_orf[wrk->frame] = FALSE;
+
+ ERROR:
+ return status;
+}
+
+void
+esl_gencode_ProcessStart(ESL_GENCODE *gcode, ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq)
+{
+ int f;
+
+ ESL_DASSERT1(( sq->n >= 3 ));
+
+ for (f = 0; f < 3; f++)
+ {
+ esl_sq_SetSource(wrk->psq[f], sq->name);
+ wrk->in_orf[f] = FALSE;
+ }
+ wrk->frame = 0;
+ wrk->codon = 0;
+ wrk->inval = 0;
+ wrk->is_revcomp = (sq->end > sq->start ? FALSE : TRUE ); // this test fails for seqs of length 1, but we know that L>=3
+ wrk->apos = (wrk->is_revcomp ? sq->L : 1 );
+
+ if (esl_abc_XIsCanonical(gcode->nt_abc, sq->dsq[1])) wrk->codon += 4 * sq->dsq[1]; else wrk->inval = 1;
+ if (esl_abc_XIsCanonical(gcode->nt_abc, sq->dsq[2])) wrk->codon += sq->dsq[2]; else wrk->inval = 2;
+}
+
+
+int
+esl_gencode_ProcessPiece(ESL_GENCODE *gcode, ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq)
+{
+ ESL_DSQ aa;
+ int rpos;
+
+ for (rpos = 1; rpos <= sq->n-2; rpos++)
+ {
+ wrk->codon = (wrk->codon * 4) % 64;
+ if ( esl_abc_XIsCanonical(gcode->nt_abc, sq->dsq[rpos+2])) wrk->codon += sq->dsq[rpos+2];
+ else wrk->inval = 3;
+
+ /* Translate the current codon starting at <pos>;
+ * see if it's an acceptable initiator
+ */
+ if (wrk->inval > 0) // degenerate codon: needs special, tedious handling
+ {
+ aa = esl_gencode_GetTranslation(gcode, sq->dsq+rpos); // This function can deal with any degeneracy
+ if (! wrk->in_orf[wrk->frame] && esl_gencode_IsInitiator(gcode, sq->dsq+rpos)) // ...as can IsInitiator.
+ {
+ if (wrk->using_initiators) // If we're using initiation codons, initial codon translates to M even if it's something like UUG or CUG
+ aa = esl_abc_DigitizeSymbol(gcode->aa_abc, 'M');
+ wrk->in_orf[wrk->frame] = TRUE;
+ wrk->psq[wrk->frame]->start = wrk->apos;
+ }
+ wrk->inval--;
+ }
+ else
+ {
+ aa = gcode->basic[wrk->codon]; // If we know the digitized codon has no degeneracy, translation is a simple lookup
+ if (gcode->is_initiator[wrk->codon] && ! wrk->in_orf[wrk->frame])
+ {
+ if (wrk->using_initiators) // If we're using initiation codons, initial codon translates to M even if it's something like UUG or CUG
+ aa = esl_abc_DigitizeSymbol(gcode->aa_abc, 'M');
+ wrk->psq[wrk->frame]->start = wrk->apos;
+ wrk->in_orf[wrk->frame] = TRUE;
+ }
+ }
+
+ /* Stop codon: deal with this ORF sequence and reinitiate */
+ if ( esl_abc_XIsNonresidue(gcode->aa_abc, aa))
+ esl_gencode_ProcessOrf(wrk, sq);
+
+ /* Otherwise: we have a residue. If we're in an orf (if we've
+ * seen a suitable initiator), add this residue, reallocating as needed.
+ */
+ if (wrk->in_orf[wrk->frame])
+ {
+ if (wrk->psq[wrk->frame]->n + 2 > wrk->psq[wrk->frame]->salloc)
+ esl_sq_Grow(wrk->psq[wrk->frame], /*opt_nsafe=*/NULL);
+ wrk->psq[wrk->frame]->dsq[1+ wrk->psq[wrk->frame]->n] = aa;
+ wrk->psq[wrk->frame]->n++;
+ }
+
+ /* Advance +1 */
+ if (wrk->is_revcomp) wrk->apos--; else wrk->apos++;
+ wrk->frame = (wrk->frame + 1) % 3;
+ }
+ return eslOK;
+}
+
+
+int
+esl_gencode_ProcessEnd(ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq)
+{
+ int f;
+
+ /* Done with the sequence. Now terminate all the orfs we were working on.
+ * <apos> is sitting at L-1 (or 2, if revcomp) and we're in some <frame>
+ * there.
+ */
+ ESL_DASSERT1(( (wrk->is_revcomp && wrk->apos == 2) || (! wrk->is_revcomp && wrk->apos == sq->L-1) ));
+ for (f = 0; f < 3; f++) // f counts 0..2, but it is *not* the <frame> index; <frame> is stateful
+ {
+ esl_gencode_ProcessOrf(wrk, sq);
+ if (wrk->is_revcomp) wrk->apos--; else wrk->apos++;
+ wrk->frame = (wrk->frame + 1) % 3;
+ }
+ return eslOK;
+}
+
+
+/*****************************************************************
+ * 7. Debugging/development utilities
+ *****************************************************************/
+
+/* Function: esl_gencode_DecodeDigicodon()
+ * Synopsis: Convert digital codon code 0..63 to a text string
+ *
+ * Purpose: Routines in the gencode module encode unambiguous codons
+ * as an index 0..63, by 16 x_0 + 4 x_1 + x_2. Convert
+ * <digicodon> (an index 0..63) to a NUL-terminated codon
+ * string in <codon>, where caller provides allocated space
+ * for the <codon> string for at least 4 characters.
+ *
+ * Returns: <codon> ptr itself; this allows <esl_gencode_DecodeDigicodon()>
+ * to be called directly as a function in printf() arguments,
+ * for example.
+ */
+char *
+esl_gencode_DecodeDigicodon(const ESL_GENCODE *gcode, int digicodon, char *codon)
+{
+ codon[0] = gcode->nt_abc->sym[ digicodon / 16 ];
+ codon[1] = gcode->nt_abc->sym[ (digicodon % 16) / 4 ];
+ codon[2] = gcode->nt_abc->sym[ digicodon % 4 ];
+ codon[3] = '\0';
+ return codon;
+}
+
+
+/* Function: esl_gencode_DumpAltCodeTable()
+ * Synopsis: Dump a table of available alternative genetic codes
+ *
+ * Purpose: Write a table of the available options for alternative
+ * genetic codes: the NCBI transl_table index number and a
+ * brief description for each.
+ *
+ * Main use of this function is to format help messages,
+ * listing what the options for transl_table indices are.
+ */
+int
+esl_gencode_DumpAltCodeTable(FILE *ofp)
+{
+ int ntables = sizeof(esl_transl_tables) / sizeof(ESL_GENCODE);
+ int t;
+
+ fprintf(ofp, "id description\n");
+ fprintf(ofp, "--- -----------------------------------\n");
+ for (t = 0; t < ntables; t++)
+ fprintf(ofp, "%3d %s\n", esl_transl_tables[t].transl_table, esl_transl_tables[t].desc);
+ return eslOK;
+}
+
+
+/* Function: esl_gencode_Compare()
+ * Synopsis: Compare two genetic codes for equality.
+ *
+ * Purpose: Compare the two genetic codes <gc1> and <gc2>. Return
+ * <eslOK> if they are identical, <eslFAIL> if they differ.
+ */
+int
+esl_gencode_Compare(const ESL_GENCODE *gc1, const ESL_GENCODE *gc2, int metadata_too)
+{
+ int x;
+
+
+ if (gc1->nt_abc->type != gc2->nt_abc->type) return eslFAIL;
+ if (gc1->aa_abc->type != gc2->aa_abc->type) return eslFAIL;
+
+ if (metadata_too) {
+ if (gc1->transl_table != gc2->transl_table) return eslFAIL;
+ if (strcmp(gc1->desc, gc2->desc) != 0) return eslFAIL;
+ }
+
+ for (x = 0; x < 64; x++)
+ {
+ if (gc1->basic[x] != gc2->basic[x]) return eslFAIL;
+ if (gc1->is_initiator[x] != gc2->is_initiator[x]) return eslFAIL;
+ }
+ return eslOK;
+}
+
+
+/*****************************************************************
+ * 8. Unit tests
+ *****************************************************************/
+#ifdef eslGENCODE_TESTDRIVE
+
+static void
+utest_ReadWrite(void)
+{
+ char msg[] = "esl_gencode :: Read/Write unit test failed";
+ char tmpfile[16] = "esltmpXXXXXX";
+ int ntables = sizeof(esl_transl_tables) / sizeof(ESL_GENCODE);
+ ESL_ALPHABET *nt_abc = esl_alphabet_Create(eslDNA);
+ ESL_ALPHABET *aa_abc = esl_alphabet_Create(eslAMINO);
+ ESL_GENCODE *gc1 = NULL;
+ ESL_GENCODE *gc2 = NULL;
+ FILE *ofp = NULL;
+ ESL_FILEPARSER *efp = NULL;
+ int t;
+
+ for (t = 0; t < ntables; t++)
+ {
+ strcpy(tmpfile, "esltmpXXXXXX");
+ if ( (gc1 = esl_gencode_Create(nt_abc, aa_abc)) == NULL) esl_fatal(msg);
+ if ( esl_gencode_Set(gc1, esl_transl_tables[t].transl_table) != eslOK) esl_fatal(msg);
+
+ if ( esl_tmpfile_named(tmpfile, &ofp) != eslOK) esl_fatal(msg);
+ if ( esl_gencode_Write(ofp, gc1, /*add_comment=*/TRUE) != eslOK) esl_fatal(msg);
+ fclose(ofp);
+
+ if ( esl_fileparser_Open(tmpfile, /*envvar=*/NULL, &efp) != eslOK) esl_fatal(msg);
+ if ( esl_gencode_Read(efp, nt_abc, aa_abc, &gc2) != eslOK) esl_fatal(msg);
+ if ( esl_gencode_Compare(gc1, gc2, /*metadata_too=*/FALSE) != eslOK) esl_fatal(msg); // _Read() does not read the metadata (transl_table, desc)
+
+ esl_gencode_Destroy(gc1);
+ esl_gencode_Destroy(gc2);
+ esl_fileparser_Close(efp);
+ remove(tmpfile);
+ }
+ esl_alphabet_Destroy(nt_abc);
+ esl_alphabet_Destroy(aa_abc);
+}
+
+#endif /*eslGENCODE_TESTDRIVE*/
+
+
+/*****************************************************************
+ * 9. Test driver
+ *****************************************************************/
+#ifdef eslGENCODE_TESTDRIVE
+
+#include "esl_config.h"
+
+#include "esl_gencode.h"
+
+int
+main(int argc, char **argv)
+{
+ utest_ReadWrite();
+ return eslOK;
+}
+#endif /*eslGENCODE_TESTDRIVE*/
+
+
+/****************************************************************
+ * 10. Example
+ ****************************************************************/
+
+#ifdef eslGENCODE_EXAMPLE
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_fileparser.h"
+#include "esl_gencode.h"
+
+#include <stdio.h>
+
+/* The esl_gencode_example driver isn't an example so much as it's a tool.
+ * It's for digitizing NCBI genetic code tables into the form that
+ * we keep in esl_transl_tables[]. This program does the hard work;
+ * you then just have to add the transl_table index and the short
+ * description manually.
+ */
+int
+main(int argc, char **argv)
+{
+ char *codefile = argv[1];
+ ESL_FILEPARSER *efp = NULL;
+ ESL_GENCODE *gcode = NULL;
+ ESL_ALPHABET *nt_abc = esl_alphabet_Create(eslDNA);
+ ESL_ALPHABET *aa_abc = esl_alphabet_Create(eslAMINO);
+ int digicodon;
+ char codon[4];
+ int status;
+
+ if (esl_fileparser_Open(codefile, /*env=*/NULL, &efp) != eslOK) esl_fatal("Failed to open code file %s", codefile);
+ esl_fileparser_SetCommentChar(efp, '#');
+
+ status = esl_gencode_Read(efp, nt_abc, aa_abc, &gcode);
+ if (status == eslEFORMAT) esl_fatal("Failed to parse genetic code datafile %s\n %s\n", codefile, efp->errbuf);
+ else if (status != eslOK) esl_fatal("Unexpected failure parsing genetic code datafile %s : code %d\n", codefile, status);
+
+ printf("/* ");
+ for (digicodon = 0; digicodon < 64; digicodon++)
+ printf("%3s ", esl_gencode_DecodeDigicodon(gcode, digicodon, codon));
+ printf("*/\n");
+
+ printf(" {");
+ for (digicodon = 0; digicodon < 64; digicodon++)
+ printf("%3d%c", gcode->basic[digicodon], (digicodon < 63 ? ',' : ' '));
+ printf("},\n");
+
+ printf(" {");
+ for (digicodon = 0; digicodon < 64; digicodon++)
+ printf("%3d%c", gcode->is_initiator[digicodon], (digicodon < 63 ? ',' : ' '));
+ printf("},\n");
+
+ printf("/* ");
+ for (digicodon = 0; digicodon < 64; digicodon++)
+ printf(" %c ", gcode->aa_abc->sym [gcode->basic[digicodon]]);
+ printf("*/\n");
+
+ esl_alphabet_Destroy(aa_abc);
+ esl_alphabet_Destroy(nt_abc);
+ esl_gencode_Destroy(gcode);
+ esl_fileparser_Close(efp);
+}
+#endif /*eslGENCODE_EXAMPLE*/
+
+
+#ifdef eslGENCODE_EXAMPLE2
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_fileparser.h"
+#include "esl_gencode.h"
+
+#include <stdio.h>
+
+/* The second example, esl_gencode_example2, is the reverse of the first;
+ * it's a little utility for writing the standard code in NCBI format.
+ */
+int
+main(int argc, char **argv)
+{
+ ESL_ALPHABET *nt_abc = esl_alphabet_Create(eslDNA);
+ ESL_ALPHABET *aa_abc = esl_alphabet_Create(eslAMINO);
+ ESL_GENCODE *gcode = esl_gencode_Create(nt_abc, aa_abc);
+
+ esl_gencode_Write(stdout, gcode, TRUE);
+
+ esl_gencode_Destroy(gcode);
+ return eslOK;
+}
+#endif /*eslGENCODE_EXAMPLE2*/
+
+
+/****************************************************************
+ * Easel - a library of C functions for biological sequence analysis
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
+ *
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SVN $Id$
+ * SVN $URL$
+ ****************************************************************/
diff --git a/easel/esl_gencode.h b/easel/esl_gencode.h
new file mode 100644
index 0000000..6e1c7b4
--- /dev/null
+++ b/easel/esl_gencode.h
@@ -0,0 +1,94 @@
+/* Genetic code tables for translation, whether canonical or non.
+ */
+#ifndef eslGENCODE_INCLUDED
+#define eslGENCODE_INCLUDED
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_fileparser.h"
+#include "esl_sq.h"
+#include "esl_sqio.h"
+#include "esl_getopts.h"
+
+typedef struct {
+ int transl_table; // NCBI transl_table number, or -1. Only set for a standard NCBI table, with _Set(); _Read() from file doesn't set this.
+ char desc[128]; // Description, or "". ... ditto
+
+ ESL_DSQ basic[64]; // Basic code table. aacode[0..63; pos1^16 + pos2^4 + pos3] = residue code for amino acid, 0..19 or the Nonresidue code. No degeneracies.
+ int8_t is_initiator[64]; // TRUE for allowed initiator codons; FALSE if not
+
+ const ESL_ALPHABET *nt_abc; // A reference to nucleic alphabet that caller is maintaining elsewhere
+ const ESL_ALPHABET *aa_abc; // A reference to amino alphabet that caller is maintaining
+} ESL_GENCODE;
+
+/* struct esl_gencode_workstate_s
+ * keeps state in DNA sequence <sq>, allowing us to process a sequence
+ * either in a single gulp (using ReadSeq) or in overlapping windows
+ * (using ReadWindow).
+ *
+ * also contains one-time configuration information for translation
+ */
+typedef struct esl_gencode_workstate_s {
+ /* stateful info (which may get updated with each new seq, strand, and/or window): */
+ ESL_SQ *psq[3]; // Growing ORFs in each frame
+ int8_t in_orf[3]; // TRUE|FALSE: TRUE if we're growing an ORF in this frame
+ int apos; // 1..L: current nucleotide we're on (starting a codon) in <sq>
+ int frame; // 0..2: which frame <apos> is in
+ int codon; // 0..63: Digitized codon for apos,apos+1,apos+2
+ int inval; // 0..3: how many apos increments we need to get past an ambiguous nucleotide
+ int is_revcomp; // TRUE|FALSE: TRUE if we're doing reverse complement strand
+ int orfcount; // >=0: How many ORFs we've processed so far
+
+ ESL_SQ_BLOCK *orf_block; // block of sequences to which to write ORFs
+
+ /* one-time configuration information (from options) */
+ int do_watson; // TRUE|FALSE: TRUE if we translate the top strand
+ int do_crick; // TRUE|FALSE: TRUE if we translate the reverse complement strand
+ int using_initiators; // TRUE|FALSE : TRUE if -m or -M, only valid initiators can start an ORF, and initiator codon always translates to Met
+ int minlen; // >=0: minimum orf length that process_orf will deal with
+ FILE *outfp; // default stdout: where to write output ORF data
+ int outformat; // default eslSQFILE_FASTA: sqfile format to write ORFs in
+} ESL_GENCODE_WORKSTATE;
+
+/* Create/Destroy workstate */
+extern void esl_gencode_WorkstateDestroy(ESL_GENCODE_WORKSTATE *wrk);
+extern ESL_GENCODE_WORKSTATE * esl_gencode_WorkstateCreate(ESL_GETOPTS *go, ESL_GENCODE *gcode);
+
+
+/* the ESL_GENCODE genetic code object */
+extern ESL_GENCODE *esl_gencode_Create(const ESL_ALPHABET *nt_abc, const ESL_ALPHABET *aa_abc);
+extern void esl_gencode_Destroy (ESL_GENCODE *gcode);
+extern int esl_gencode_Set (ESL_GENCODE *gcode, int ncbi_transl_table);
+extern int esl_gencode_SetInitiatorAny (ESL_GENCODE *gcode);
+extern int esl_gencode_SetInitiatorOnlyAUG(ESL_GENCODE *gcode);
+
+/* reading and writing genetic codes in NCBI format */
+extern int esl_gencode_Read(ESL_FILEPARSER *efp, const ESL_ALPHABET *nucleic_abc, const ESL_ALPHABET *amino_abc, ESL_GENCODE **ret_gcode);
+extern int esl_gencode_Write(FILE *ofp, const ESL_GENCODE *gcode, int add_comment);
+
+/* DNA->protein digital translation, allowing ambiguity chars */
+extern int esl_gencode_GetTranslation(const ESL_GENCODE *gcode, ESL_DSQ *dsqp);
+extern int esl_gencode_IsInitiator (const ESL_GENCODE *gcode, ESL_DSQ *dsqp);
+
+/* Debugging/development utilities */
+extern char *esl_gencode_DecodeDigicodon(const ESL_GENCODE *gcode, int digicodon, char *codon);
+extern int esl_gencode_DumpAltCodeTable(FILE *ofp);
+extern int esl_gencode_Compare(const ESL_GENCODE *gc1, const ESL_GENCODE *gc2, int metadata_too);
+
+/* Functions for processing ORFs */
+extern int esl_gencode_ProcessOrf(ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq);
+extern void esl_gencode_ProcessStart(ESL_GENCODE *gcode, ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq);
+extern int esl_gencode_ProcessPiece(ESL_GENCODE *gcode, ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq);
+extern int esl_gencode_ProcessEnd(ESL_GENCODE_WORKSTATE *wrk, ESL_SQ *sq);
+
+
+#endif /*eslGENCODE_INCLUDED*/
+/*****************************************************************
+ * Easel - a library of C functions for biological sequence analysis
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
+ *
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *****************************************************************/
diff --git a/easel/esl_getopts.c b/easel/esl_getopts.c
index 44570f1..1a802ec 100644
--- a/easel/esl_getopts.c
+++ b/easel/esl_getopts.c
@@ -141,8 +141,17 @@ esl_getopts_Create(ESL_OPTIONS *opt)
*
* <options> is an array of <ESL_OPTIONS> structures describing
* the options, terminated by an all-<NULL> structure.
- * <nargs> is the number of command-line arguments
- * expected. <argc> and <argv> are the command line
+ *
+ * <nargs> is the number of commandline arguments
+ * expected. If the number of commandline arguments isn't
+ * equal to this, an error message is printed, with the
+ * <usage> string, and <exit()> is called. If <nargs> is
+ * -1, this check isn't done; if your program deliberately
+ * has a variable number of commandline arguments (i.e.
+ * if the number is unknown at compile time), pass -1
+ * for <nargs>.
+ *
+ * <argc> and <argv> are the command line
* arguments (number and pointer array) from <main()>.
*
* <banner> is an optional one-line description of the
@@ -208,7 +217,7 @@ esl_getopts_CreateDefaultApp(ESL_OPTIONS *options, int nargs, int argc, char **a
esl_opt_DisplayHelp(stdout, go, 0, 2, 80);
exit(0);
}
- if (esl_opt_ArgNumber(go) != nargs)
+ if (nargs != -1 && esl_opt_ArgNumber(go) != nargs)
{
puts("Incorrect number of command line arguments.");
esl_usage(stdout, argv[0], usage);
@@ -887,7 +896,7 @@ esl_opt_GetBoolean(const ESL_GETOPTS *g, char *optname)
if (get_optidx_exactly(g, optname, &opti) == eslENOTFOUND)
esl_fatal("no such option %s\n", optname);
if (g->opt[opti].type != eslARG_NONE)
- esl_fatal("option %s is not a boolean", optname);
+ esl_fatal("option %s is not a boolean; code called _GetBoolean", optname);
if (g->val[opti] == NULL) return FALSE;
else return TRUE;
@@ -907,7 +916,7 @@ esl_opt_GetInteger(const ESL_GETOPTS *g, char *optname)
if (get_optidx_exactly(g, optname, &opti) == eslENOTFOUND)
esl_fatal("no such option %s\n", optname);
if (g->opt[opti].type != eslARG_INT)
- esl_fatal("option %s does not take an integer arg", optname);
+ esl_fatal("option %s does not take an integer arg; code called _GetInteger", optname);
return atoi(g->val[opti]);
}
@@ -925,7 +934,7 @@ esl_opt_GetReal(const ESL_GETOPTS *g, char *optname)
if (get_optidx_exactly(g, optname, &opti) == eslENOTFOUND)
esl_fatal("no such option %s\n", optname);
if (g->opt[opti].type != eslARG_REAL)
- esl_fatal("option %s does not take a real-valued arg", optname);
+ esl_fatal("option %s does not take a real-valued arg; code called _GetReal", optname);
return (atof(g->val[opti]));
}
@@ -944,7 +953,7 @@ esl_opt_GetChar(const ESL_GETOPTS *g, char *optname)
if (get_optidx_exactly(g, optname, &opti) == eslENOTFOUND)
esl_fatal("no such option %s\n", optname);
if (g->opt[opti].type != eslARG_CHAR)
- esl_fatal("option %s does not take a char arg", optname);
+ esl_fatal("option %s does not take a char arg; code called _GetChar", optname);
return (*g->val[opti]);
}
@@ -969,7 +978,7 @@ esl_opt_GetString(const ESL_GETOPTS *g, char *optname)
if (g->opt[opti].type != eslARG_STRING &&
g->opt[opti].type != eslARG_INFILE &&
g->opt[opti].type != eslARG_OUTFILE)
- esl_fatal("option %s does not take a string arg", optname);
+ esl_fatal("option %s does not take a string arg; code called _GetString", optname);
return g->val[opti];
}
@@ -1165,7 +1174,7 @@ int
set_option(ESL_GETOPTS *g, int opti, char *optarg, int setby, int do_alloc)
{
int arglen;
- char *where;
+ char *where = NULL;
char *s;
int togi;
int status;
@@ -1254,7 +1263,8 @@ set_option(ESL_GETOPTS *g, int opti, char *optarg, int setby, int do_alloc)
* the index of the option, and return eslOK. <optname>
* must exactly match one of the options in <g>.
*
- * If the option is not found, return eslENOTFOUND.
+ * If the option is not found, return <eslENOTFOUND>; in this
+ * case <*ret_opti> is -1 (and caller should not use it!)
*/
static int
get_optidx_exactly(const ESL_GETOPTS *g, char *optname, int *ret_opti)
@@ -1263,6 +1273,7 @@ get_optidx_exactly(const ESL_GETOPTS *g, char *optname, int *ret_opti)
for (i = 0; i < g->nopts; i++)
if (strcmp(optname, g->opt[i].name) == 0) { *ret_opti = i; return eslOK; }
+ *ret_opti = -1;
return eslENOTFOUND;
}
@@ -1560,7 +1571,7 @@ process_stdopt(ESL_GETOPTS *g, int *ret_opti, char **ret_optarg)
static int
verify_type_and_range(ESL_GETOPTS *g, int i, char *val, int setby)
{
- char *where;
+ char *where = NULL;
if (setby == eslARG_SETBY_DEFAULT) where = "as default";
else if (setby == eslARG_SETBY_CMDLINE) where = "on cmdline";
@@ -2150,15 +2161,15 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_getopts.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_getopts.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_getopts.h b/easel/esl_getopts.h
index 70ae076..1fe6d8d 100644
--- a/easel/esl_getopts.h
+++ b/easel/esl_getopts.h
@@ -115,13 +115,13 @@ extern int esl_opt_DisplayHelp(FILE *ofp, ESL_GETOPTS *go, int docgroup, int ind
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_getopts.h 697 2011-06-15 20:14:56Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_getopts.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_getopts.tex b/easel/esl_getopts.tex
index d5a4d99..c18ab16 100644
--- a/easel/esl_getopts.tex
+++ b/easel/esl_getopts.tex
@@ -165,7 +165,7 @@ not.
-\subsection{Defining options in the \ccode{ESL\_OPTIONS} array}
+\subsection{Defining options in the \ccodeincmd{ESL\_OPTIONS} array}
Since you define your options in a static array of
\ccode{ESL\_OPTIONS} structures, you need to know what an
diff --git a/easel/esl_gev.c b/easel/esl_gev.c
index 4370528..03c3312 100644
--- a/easel/esl_gev.c
+++ b/easel/esl_gev.c
@@ -1,5 +1,24 @@
/* Statistical routines for generalized extreme value (GEV) distributions.
*
+ * Contents:
+ * 1. Evaluating densities and distributions
+ * 2. Generic API routines: for general interface w/ histogram module
+ * 3. Dumping plots to files
+ * 4. Sampling (requires augmentation w/ random module)
+ * 5. ML fitting to complete or censored data
+ * 6. Stats driver
+ * 7. Example
+ * 8. Copyright and license information
+ *
+ * Xref:
+ * STL9/118, 2005/0712-easel-gev-impl. Verified against evd package in R.
+ *
+ * To-do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:18:07 2013
+ *
+ *****************************************************************
* GEV distribution
* G(x) = exp{ -[1 + \alpha \lambda(x - \mu)]^{-1/\alpha} }
* where:
@@ -15,9 +34,6 @@
* [Coles01]
* S. Coles, An Introduction to Statistical Modeling of Extreme Values,
* Springer, 2001.
- *
- * Xref:
- * STL9/118, 2005/0712-easel-gev-impl. Verified against evd package in R.
*/
#include "esl_config.h"
@@ -37,7 +53,7 @@
#endif
/****************************************************************************
- * Routines for evaluating densities and distributions
+ * 1. Evaluating densities and distributions
****************************************************************************/
/* Function: esl_gev_pdf()
@@ -230,7 +246,7 @@ esl_gev_invcdf(double p, double mu, double lambda, double alpha)
/*****************************************************************
- * Generic API routines: for general interface w/ histogram module
+ * 2. Generic API routines: for general interface w/ histogram module
*****************************************************************/
/* Function: esl_gev_generic_pdf()
@@ -281,7 +297,7 @@ esl_gev_generic_invcdf(double p, void *params)
/****************************************************************************
- * Routines for dumping plots for files
+ * 3. Dumping plots to files
****************************************************************************/
/* Function: esl_gev_Plot()
@@ -312,7 +328,7 @@ esl_gev_Plot(FILE *fp, double mu, double lambda, double alpha,
/****************************************************************************
- * Routines for sampling (requires augmentation w/ random module)
+ * 4. Sampling (requires augmentation w/ random module)
****************************************************************************/
#ifdef eslAUGMENT_RANDOM
/* Function: esl_gev_Sample()
@@ -334,7 +350,7 @@ esl_gev_Sample(ESL_RANDOMNESS *r, double mu, double lambda, double alpha)
/****************************************************************************
- * Maximum likelihood fitting to GEV distributions
+ * 5. ML fitting to complete or censored data
****************************************************************************/
#ifdef eslAUGMENT_MINIMIZER
/* Easel's conjugate gradient descent code allows a single void ptr to
@@ -616,70 +632,9 @@ esl_gev_FitCensored(double *x, int n, int z, double phi,
-
-
/****************************************************************************
- * Example, test, and stats drivers
+ * 6. Stats driver
****************************************************************************/
-/* Example main()
- */
-#ifdef eslGEV_EXAMPLE
-/*::cexcerpt::gev_example::begin::*/
-/* compile:
- gcc -g -Wall -I. -o example -DeslGEV_EXAMPLE -DeslAUGMENT_RANDOM\
- -DeslAUGMENT_MINIMIZER esl_gev.c esl_random.c esl_minimizer.c\
- esl_vectorops.c easel.c -lm
- * run: ./example
- */
-#include <stdio.h>
-#include "easel.h"
-#include "esl_random.h"
-#include "esl_minimizer.h"
-#include "esl_gev.h"
-
-int
-main(int argc, char **argv)
-{
- double est_mu, est_lambda, est_alpha;
- double z;
- int i;
- int n = 10000; /* simulate 10,000 samples */
- double mu = -20.0; /* with mu = -20 */
- double lambda = 0.4; /* and lambda = 0.4 */
- double alpha = 0.1; /* and alpha = 0.1 */
- double min = 9999.;
- double max = -9999.;
- double *x = malloc(sizeof(double) * n);
- ESL_RANDOMNESS *r = esl_randomness_Create(0);;
-
- for (i = 0; i < n; i++) /* generate the 10,000 samples */
- {
- x[i] = esl_gev_Sample(r, mu, lambda, alpha);
- if (x[i] < min) min = x[i];
- if (x[i] > max) max = x[i];
- }
-
- z = esl_gev_surv(max, mu, lambda, alpha); /* right tail p~1e-4 >= max */
- printf("max = %6.1f P(>max) = %g E=%6.3f\n", max, z, z*(double)n);
- z = esl_gev_cdf(min, mu, lambda, alpha); /* left tail p~1e-4 < min */
- printf("min = %6.1f P(<=min) = %g E=%6.3f\n", min, z, z*(double)n);
-
- esl_gev_FitComplete(x, n, &est_mu, &est_lambda, &est_alpha);
-
- printf("Parametric mu = %6.1f. Estimated mu = %6.2f. Difference = %.1f%%.\n",
- mu, est_mu, 100. * fabs((est_mu - mu) / mu));
- printf("Parametric lambda = %6.2f. Estimated lambda = %6.2f. Difference = %.1f%%.\n",
- lambda, est_lambda, 100. * fabs((est_lambda - lambda) /lambda));
- printf("Parametric alpha = %6.4f. Estimated alpha = %6.4f. Difference = %.1f%%.\n",
- alpha, est_alpha, 100. * fabs((est_alpha - alpha) /alpha));
-
- free(x);
- esl_randomness_Destroy(r);
- return 0;
-}
-/*::cexcerpt::gev_example::end::*/
-#endif /*eslGEV_EXAMPLE*/
-
#ifdef eslGEV_STATS
/* compile:
@@ -972,16 +927,76 @@ stats_fittest(FILE *fp, int ntrials, int n, double mu, double lambda, double alp
#endif /*eslGEV_STATS*/
+/*****************************************************************
+ * 7. Example
+ *****************************************************************/
+#ifdef eslGEV_EXAMPLE
+/*::cexcerpt::gev_example::begin::*/
+/* compile:
+ gcc -g -Wall -I. -o example -DeslGEV_EXAMPLE -DeslAUGMENT_RANDOM\
+ -DeslAUGMENT_MINIMIZER esl_gev.c esl_random.c esl_minimizer.c\
+ esl_vectorops.c easel.c -lm
+ * run: ./example
+ */
+#include <stdio.h>
+#include "easel.h"
+#include "esl_random.h"
+#include "esl_minimizer.h"
+#include "esl_gev.h"
+
+int
+main(int argc, char **argv)
+{
+ double est_mu, est_lambda, est_alpha;
+ double z;
+ int i;
+ int n = 10000; /* simulate 10,000 samples */
+ double mu = -20.0; /* with mu = -20 */
+ double lambda = 0.4; /* and lambda = 0.4 */
+ double alpha = 0.1; /* and alpha = 0.1 */
+ double min = 9999.;
+ double max = -9999.;
+ double *x = malloc(sizeof(double) * n);
+ ESL_RANDOMNESS *r = esl_randomness_Create(0);;
+
+ for (i = 0; i < n; i++) /* generate the 10,000 samples */
+ {
+ x[i] = esl_gev_Sample(r, mu, lambda, alpha);
+ if (x[i] < min) min = x[i];
+ if (x[i] > max) max = x[i];
+ }
+
+ z = esl_gev_surv(max, mu, lambda, alpha); /* right tail p~1e-4 >= max */
+ printf("max = %6.1f P(>max) = %g E=%6.3f\n", max, z, z*(double)n);
+ z = esl_gev_cdf(min, mu, lambda, alpha); /* left tail p~1e-4 < min */
+ printf("min = %6.1f P(<=min) = %g E=%6.3f\n", min, z, z*(double)n);
+
+ esl_gev_FitComplete(x, n, &est_mu, &est_lambda, &est_alpha);
+
+ printf("Parametric mu = %6.1f. Estimated mu = %6.2f. Difference = %.1f%%.\n",
+ mu, est_mu, 100. * fabs((est_mu - mu) / mu));
+ printf("Parametric lambda = %6.2f. Estimated lambda = %6.2f. Difference = %.1f%%.\n",
+ lambda, est_lambda, 100. * fabs((est_lambda - lambda) /lambda));
+ printf("Parametric alpha = %6.4f. Estimated alpha = %6.4f. Difference = %.1f%%.\n",
+ alpha, est_alpha, 100. * fabs((est_alpha - alpha) /alpha));
+
+ free(x);
+ esl_randomness_Destroy(r);
+ return 0;
+}
+/*::cexcerpt::gev_example::end::*/
+#endif /*eslGEV_EXAMPLE*/
+
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_gev.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_gev.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_gev.h b/easel/esl_gev.h
index ed9b015..1f93629 100644
--- a/easel/esl_gev.h
+++ b/easel/esl_gev.h
@@ -2,8 +2,8 @@
* Generalized extreme value (GEV) distributions.
*
* SRE, Tue Jul 12 09:15:56 2005
- * SVN $Id: esl_gev.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_gev.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslGEV_INCLUDED
#define eslGEV_INCLUDED
@@ -47,10 +47,10 @@ extern int esl_gev_FitCensored(double *x, int n, int z, double phi,
#endif /*eslGEV_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_gumbel.c b/easel/esl_gumbel.c
index 4d456b8..b58e427 100644
--- a/easel/esl_gumbel.c
+++ b/easel/esl_gumbel.c
@@ -1,22 +1,26 @@
/* Statistical routines for Gumbel (type I extreme value) distributions.
*
* Contents:
- * 1. Routine for evaluating densities and distributions
+ * 1. Routines for evaluating densities and distributions
* 2. Generic API routines: for general interface w/ histogram module
- * 3. Routines for dumping plots to files
- * 4. Routines for sampling (requires random module)
- * 5. Maximum likelihood fitting to data (requires minimizer module)
- * 6. Stats driver
- * 7. Unit tests
- * 8. Test driver
- * 9. Example
- * 10. Copyright and license information
+ * 3. Dumping plots to files
+ * 4. Sampling (augmentation: random module)
+ * 5. ML fitting to complete data
+ * 6. ML fitting to censored data (x_i >= phi; z known)
+ * 7. ML fitting to truncated data (x_i >= phi; z unknown) (augmentation: minimizer)
+ * 8. Stats driver
+ * 9. Unit tests
+ * 10. Test driver
+ * 11. Example
+ * 12. Copyright and license information
*
- * Note: SRE, Mon Aug 6 13:42:09 2007
- * ML fitting routines will be prone to over/underfitting
- * problems for scores outside a "normal" range, because
- * of exp(-lambda * x) calls. The Lawless ML estimation
- * may eventually need to be recast in log space.
+ * To-do:
+ * - ML fitting routines will be prone to over/underfitting
+ * problems for scores outside a "normal" range, because
+ * of exp(-lambda * x) calls. The Lawless ML estimation
+ * may eventually need to be recast in log space.
+ * SRE, Mon Aug 6 13:42:09 2007
+ *
*/
#include "esl_config.h"
@@ -318,12 +322,7 @@ esl_gumbel_Sample(ESL_RANDOMNESS *r, double mu, double lambda)
/*****************************************************************
- * 5. Routines for maximum likelihood fitting Gumbels to data
- * (fitting truncated distributions requires augmentation w/ minimizer module)
- *****************************************************************/
-
-/*****************************************************************
- * Complete data, maximum a posteriori parameters
+ * 5. Maximum likelihood fitting to complete data
*****************************************************************/
/* lawless416()
@@ -368,24 +367,39 @@ lawless416(double *x, int n, double lambda, double *ret_f, double *ret_df)
/* Function: esl_gumbel_FitComplete()
* Synopsis: Estimates $\mu$, $\lambda$ from complete data.
- * Date: SRE, Fri Nov 14 07:56:29 1997 [St. Louis] - HMMER's EVDMaxLikelyFit()
*
- * Purpose: Given an array of Gumbel-distributed samples <x[0]..x[n-1]>,
- * find maximum likelihood parameters <mu> and <lambda>.
+ * Purpose: Given an array of Gumbel-distributed samples
+ * <x[0]..x[n-1]>, find maximum likelihood parameters <mu>
+ * and <lambda>.
*
- * Algorithm: Uses approach described in [Lawless82]. Solves
- * for lambda using Newton/Raphson iterations,
- * then substitutes lambda into Lawless' equation 4.1.5
- * to get mu.
+ * The number of samples <n> must be reasonably large to get
+ * an accurate fit. <n=100> suffices to get an accurate
+ * location parameter $\mu$ (to about 1% error), but
+ * <n~10000> is required to get a similarly accurate
+ * estimate of $\lambda$. It's probably a bad idea to try to
+ * fit a Gumbel to less than about 1000 data points.
+ *
+ * On a very small number of samples, the fit can fail
+ * altogether, in which case the routine will return a
+ * <eslENORESULT> code. Caller must check for this.
+ *
+ * Uses approach described in [Lawless82]. Solves for lambda
+ * using Newton/Raphson iterations, then substitutes lambda
+ * into Lawless' equation 4.1.5 to get mu.
*
* Args: x - list of Gumbel distributed samples
- * n - number of samples
- * ret_mu : RETURN: ML estimate of mu
- * ret_lambda : RETURN: ML estimate of lambda
+ * n - number of samples (n>1)
+ * ret_mu - RETURN: ML estimate of mu
+ * ret_lambda - RETURN: ML estimate of lambda
*
* Returns: <eslOK> on success.
*
- * Throws: <eslENOHALT> if the fit doesn't converge.
+ * <eslEINVAL> if n<=1.
+ * <eslENORESULT> if the fit fails, likely because the
+ * number of samples is too small. On either error,
+ * <*ret_mu> and <*ret_lambda> are 0.0. These are classed
+ * as failures (normal errors) because the data vector may
+ * have been provided by a user.
*/
int
esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
@@ -397,6 +411,9 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
double esum; /* \sum e^(-lambda xi) */
double tol = 1e-5;
int i;
+ int status;
+
+ if (n <= 1) { status = eslEINVAL; goto FAILURE; }
/* 1. Find an initial guess at lambda
* (Evans/Hastings/Peacock, Statistical Distributions, 2000, p.86)
@@ -424,7 +441,7 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
if (i == 100)
{
double left, right, mid;
- ESL_DPRINTF1(("esl_gumbel_FitComplete(): Newton/Raphson failed; switchover to bisection"));
+ ESL_DPRINTF2(("esl_gumbel_FitComplete(): Newton/Raphson failed; switchover to bisection\n"));
/* First bracket the root */
left = 0.; /* for sure */
@@ -433,8 +450,13 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
while (fx > 0.)
{
right *= 2.; /* arbitrary leap to the right */
- if (right > 100.) /* no reasonable lambda should be > 100, we assert */
- ESL_EXCEPTION(eslENOHALT, "Failed to bracket root in esl_gumbel_FitComplete().");
+ if (right > 1000.) /* no reasonable lambda should be > 1000, we assert */
+ {
+ ESL_DPRINTF2(("Failed to bracket root in esl_gumbel_FitComplete()."));
+ status = eslENORESULT;
+ goto FAILURE;
+ }
+
lawless416(x, n, right, &fx, &dfx);
}
@@ -447,8 +469,14 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
if (fx > 0.) left = mid;
else right = mid;
}
+
+ /* Too many iterations? Give up. */
if (i == 100)
- ESL_EXCEPTION(eslENOHALT, "Even bisection search failed in esl_gumbel_FitComplete().");
+ {
+ ESL_DPRINTF2(("Even bisection search failed in esl_gumbel_FitComplete().\n"));
+ status = eslENORESULT;
+ goto FAILURE;
+ }
lambda = mid;
}
@@ -463,6 +491,11 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
*ret_lambda = lambda;
*ret_mu = mu;
return eslOK;
+
+ FAILURE:
+ *ret_mu = 0.0;
+ *ret_lambda = 0.0;
+ return status;
}
/* Function: esl_gumbel_FitCompleteLoc()
@@ -473,7 +506,8 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
* (or otherwise fixed) <lambda>, find a maximum
* likelihood estimate for location parameter <mu>.
*
- * Algorithm: A straightforward simplification of FitComplete().
+ * Algorithm is a straightforward simplification of
+ * <esl_gumbel_FitComplete()>.
*
* Args: x - list of Gumbel distributed samples
* n - number of samples
@@ -481,18 +515,19 @@ esl_gumbel_FitComplete(double *x, int n, double *ret_mu, double *ret_lambda)
* ret_mu : RETURN: ML estimate of mu
*
* Returns: <eslOK> on success.
+ *
+ * <eslEINVAL> if n<=1; on this error, <*ret_mu> = 0.
*
- * Throws: (no abnormal error conditions)
- *
- * Note: Here and in FitComplete(), we have a potential
- * under/overflow problem. We ought to be doing the
- * esum in log space.
+ * Throws: (no abnormal error conditions)
*/
int
esl_gumbel_FitCompleteLoc(double *x, int n, double lambda, double *ret_mu)
{
double esum;
int i;
+ int status;
+
+ if (n <= 1) { status = eslEINVAL; goto FAILURE; }
/* Substitute into Lawless 4.1.5 to find mu */
esum = 0.;
@@ -508,6 +543,10 @@ esl_gumbel_FitCompleteLoc(double *x, int n, double lambda, double *ret_mu)
*ret_mu = mean - 0.57722/lambda;
return eslOK;
#endif
+
+ FAILURE:
+ *ret_mu = 0.;
+ return status;
}
@@ -535,8 +574,9 @@ direct_mv_fit(double *x, int n, double *ret_mu, double *ret_lambda)
/*****************************************************************
- * Censored data, MAP/ML parameters
+ * 6. Maximum likelihood fitting to censored data (x_i >= phi; z known)
*****************************************************************/
+
/* lawless422()
* SRE, Mon Nov 17 09:42:48 1997 [St. Louis]
*
@@ -592,12 +632,11 @@ lawless422(double *x, int n, int z, double phi,
/* Function: esl_gumbel_FitCensored()
* Synopsis: Estimates $\mu$, $\lambda$ from censored data.
- * Date: SRE, Mon Nov 17 10:01:05 1997 [St. Louis]
*
- * Purpose: Given a left-censored array of Gumbel-distributed samples
- * <x[0]..x[n-1]>, the number of censored samples <z>, and the
- * censoring value <phi> (all <x[i]> $>$ <phi>).
- * Find maximum likelihood parameters <mu> and <lambda>.
+ * Purpose: Given a left-censored array of Gumbel-distributed samples
+ * <x[0]..x[n-1]>, the number of censored samples <z>, and
+ * the censoring value <phi> (all <x[i]> $\geq$ <phi>). Find
+ * maximum likelihood parameters <mu> and <lambda>.
*
* Algorithm: Uses approach described in [Lawless82]. Solves
* for lambda using Newton/Raphson iterations;
@@ -608,16 +647,20 @@ lawless422(double *x, int n, int z, double phi,
* n - number of observed samples
* z - number of censored samples
* phi - censoring value (all x_i >= phi)
- * ret_mu : RETURN: ML estimate of mu
- * ret_lambda : RETURN: ML estimate of lambda
+ * ret_mu - RETURN: ML estimate of mu
+ * ret_lambda - RETURN: ML estimate of lambda
*
* Returns: <eslOK> on success.
- *
- * Throws: <eslENOHALT> if the fit doesn't converge.
+ *
+ * <eslEINVAL> if n<=1.
+ * <eslENORESULT> if the fit fails, likey because the number
+ * of samples is too small.
+ * On either error, <*ret_mu> and <*ret_lambda> are 0.0.
+ * These are classed as failures (normal errors) because the
+ * data vector may have been provided by a user.
*/
int
-esl_gumbel_FitCensored(double *x, int n, int z, double phi,
- double *ret_mu, double *ret_lambda)
+esl_gumbel_FitCensored(double *x, int n, int z, double phi, double *ret_mu, double *ret_lambda)
{
double variance;
double lambda, mu;
@@ -626,6 +669,9 @@ esl_gumbel_FitCensored(double *x, int n, int z, double phi,
double esum; /* \sum e^(-lambda xi) */
double tol = 1e-5;
int i;
+ int status;
+
+ if (n <= 1) { status = eslEINVAL; goto FAILURE; }
/* 1. Find an initial guess at lambda
* (Evans/Hastings/Peacock, Statistical Distributions, 2000, p.86)
@@ -653,17 +699,21 @@ esl_gumbel_FitCensored(double *x, int n, int z, double phi,
if (i == 100)
{
double left, right, mid;
- ESL_DPRINTF1(("esl_gumbel_FitCensored(): Newton/Raphson failed; switched to bisection"));
+ ESL_DPRINTF2(("esl_gumbel_FitCensored(): Newton/Raphson failed; switched to bisection\n"));
/* First bracket the root */
- left = 0.; /* we know that's the left bound */
+ left = 0.; /* we know that's the left bound */
right = eslCONST_PI / sqrt(6.*variance); /* start from here, move "right"... */
lawless422(x, n, z, phi, right, &fx, &dfx);
while (fx > 0.)
{
right *= 2.;
- if (right > 100.) /* no reasonable lambda should be > 100, we assert */
- ESL_EXCEPTION(eslENOHALT, "Failed to bracket root in esl_gumbel_FitCensored().");
+ if (right > 1000.) /* no reasonable lambda should be > 1000, we assert */
+ {
+ ESL_DPRINTF2(("Failed to bracket root in esl_gumbel_FitCensored()."));
+ status = eslENORESULT;
+ goto FAILURE;
+ }
lawless422(x, n, z, phi, right, &fx, &dfx);
}
@@ -677,7 +727,11 @@ esl_gumbel_FitCensored(double *x, int n, int z, double phi,
else right = mid;
}
if (i == 100)
- ESL_EXCEPTION(eslENOHALT, "Even bisection search failed in esl_gumbel_FitCensored().");
+ {
+ ESL_DPRINTF2(("Even bisection search failed in esl_gumbel_FitCensored().\n"));
+ status = eslENORESULT;
+ goto FAILURE;
+ }
lambda = mid;
}
@@ -692,6 +746,11 @@ esl_gumbel_FitCensored(double *x, int n, int z, double phi,
*ret_lambda = lambda;
*ret_mu = mu;
return eslOK;
+
+ FAILURE:
+ *ret_lambda = 0.0;
+ *ret_mu = 0.0;
+ return status;
}
@@ -700,7 +759,7 @@ esl_gumbel_FitCensored(double *x, int n, int z, double phi,
*
* Purpose: Given a left-censored array of Gumbel distributed samples
* <x[0>..x[n-1]>, the number of censored samples <z>, and the censoring
- * value <phi> (where all <x[i]> $>$ <phi>), and a known
+ * value <phi> (where all <x[i]> $\geq$ <phi>), and a known
* (or at least fixed) <lambda>;
* find the maximum likelihood estimate of the location
* parameter $\mu$ and return it in <ret_mu>.
@@ -712,10 +771,12 @@ esl_gumbel_FitCensored(double *x, int n, int z, double phi,
* z - number of censored samples
* phi - censoring value (all x_i >= phi)
* lambda - known scale parameter $\lambda$
- * ret_mu : RETURN: ML estimate of $\mu$
+ * ret_mu - RETURN: ML estimate of $\mu$
*
* Returns: <eslOK> on success.
*
+ * <eslEINVAL> if n<=1; on this error, <*ret_mu> = 0.
+ *
* Throws: (no abnormal error conditions)
*/
int
@@ -724,6 +785,9 @@ esl_gumbel_FitCensoredLoc(double *x, int n, int z, double phi, double lambda,
{
double esum;
int i;
+ int status;
+
+ if (n <= 1) { status = eslEINVAL; goto FAILURE; }
/* Immediately substitute into Lawless 4.2.3 to find mu, because
* lambda is known.
@@ -732,13 +796,18 @@ esl_gumbel_FitCensoredLoc(double *x, int n, int z, double phi, double lambda,
for (i = 0; i < n; i++) /* contribution from observed data */
esum += exp(-lambda * x[i]);
esum += z * exp(-1. * lambda * phi); /* term from censored data */
+
*ret_mu = -log(esum / (double) n) / lambda;
return eslOK;
+
+ FAILURE:
+ *ret_mu = 0.;
+ return status;
}
/*****************************************************************
- * Truncated data, MAP parameters (requires minimizer augmentation)
+ * 7. Maximum likelihood fitting to truncated data (x_i >= phi and z unknown) (requires minimizer augmentation)
*****************************************************************/
#ifdef eslAUGMENT_MINIMIZER
/* Easel's conjugate gradient descent code allows a single void ptr to
@@ -877,22 +946,40 @@ tevd_grad(double *p, int nparam, void *dptr, double *dp)
* ret_lambda - RETURN: ML estimate of lambda
*
* Returns: <eslOK> on success.
- *
- * Throws: <eslENOHALT> if the fit doesn't converge.
+ *
+ * <eslEINVAL> if n<=1.
+ * <eslENORESULT> if the fit fails, likely because the
+ * number of samples <n> is too small, or because the
+ * truncation threshold is high enough that the tail
+ * looks like a scale-free exponential and we can't
+ * obtain <mu>.
+ * On either error, <*ret_mu> and <*ret_lambda> are
+ * returned as 0.0.
+ * These are "normal" (returned) errors because
+ * the data might be provided directly by a user.
*/
int
-esl_gumbel_FitTruncated(double *x, int n, double phi,
- double *ret_mu, double *ret_lambda)
+esl_gumbel_FitTruncated(double *x, int n, double phi, double *ret_mu, double *ret_lambda)
{
struct tevd_data data;
double wrk[8]; /* workspace for CG: 4 tmp vectors of size 2 */
double p[2]; /* mu, w; lambda = e^w */
double u[2]; /* max initial step size for mu, lambda */
- int status;
double mean, variance;
double mu, lambda;
double fx;
+ int i;
+ int status;
+ /* Can't fit to n<=1 */
+ if (n <= 1) { status = eslEINVAL; goto FAILURE; }
+
+ /* Can fail on small <n>. One way is if x_i are all identical, so
+ * ML lambda is undefined.
+ */
+ for (i = 1; i < n; i++) if (x[i] != x[0]) break;
+ if (i == n) { status = eslENORESULT; goto FAILURE; }
+
data.x = x;
data.n = n;
data.phi = phi;
@@ -921,16 +1008,22 @@ esl_gumbel_FitTruncated(double *x, int n, double phi,
status = esl_min_ConjugateGradientDescent(p, u, 2,
&tevd_func, &tevd_grad,(void *)(&data),
1e-4, wrk, &fx);
+ if (status != eslOK) { status = eslENORESULT; goto FAILURE; }
*ret_mu = p[0];
*ret_lambda = exp(p[1]); /* reverse the c.o.v. */
return status;
+
+ FAILURE:
+ *ret_mu = 0.0;
+ *ret_lambda = 0.0;
+ return status;
}
#endif /*eslAUGMENT_MINIMIZER*/
/*------------------------ end of fitting --------------------------------*/
/*****************************************************************
- * 6. Stats driver
+ * 8. Stats driver
*****************************************************************/
#ifdef eslGUMBEL_STATS
/* compile: gcc -g -O2 -Wall -I. -L. -o stats -DeslGUMBEL_STATS esl_gumbel.c -leasel -lm
@@ -992,7 +1085,8 @@ main(int argc, char **argv)
x[i] = esl_gumbel_Sample(r, mu, lambda);
/*direct_mv_fit(x, totalN[exp], &est_mu, &est_lambda);*/
- esl_gumbel_FitComplete(x, totalN[exp], &est_mu, &est_lambda);
+ if (esl_gumbel_FitComplete(x, totalN[exp], &est_mu, &est_lambda) != eslOK)
+ esl_fatal("gumbel complete fit fit failed");
printf("complete %6d %6d %9.5f %9.5f %8.6f %8.6f\n",
totalN[exp], totalN[exp], mu, est_mu, lambda, est_lambda);
@@ -1013,7 +1107,8 @@ main(int argc, char **argv)
val = esl_gumbel_Sample(r, mu, lambda);
if (val >= phi) x[n++] = val;
}
- esl_gumbel_FitCensored(x, n, totalN[exp]-n, phi, &est_mu, &est_lambda);
+ if (esl_gumbel_FitCensored(x, n, totalN[exp]-n, phi, &est_mu, &est_lambda) != eslOK)
+ esl_fatal("gumbel censored fit failed");
printf("censored %6d %6d %9.5f %9.5f %8.6f %8.6f\n",
totalN[exp], n, mu, est_mu, lambda, est_lambda);
@@ -1035,7 +1130,8 @@ main(int argc, char **argv)
val = esl_gumbel_Sample(r, mu, lambda);
if (val >= phi) x[n++] = val;
}
- esl_gumbel_FitTruncated(x, n, phi, &est_mu, &est_lambda);
+ if (esl_gumbel_FitTruncated(x, n, phi, &est_mu, &est_lambda) != eslOK)
+ esl_fatal("gumbel truncated fit failed");
printf("truncated %6d %6d %9.5f %9.5f %8.6f %8.6f\n",
totalN[exp], n, mu, est_mu, lambda, est_lambda);
@@ -1055,7 +1151,8 @@ main(int argc, char **argv)
for (i = 0; i < totalN[exp]; i++)
x[i] = esl_gumbel_Sample(r, mu, lambda);
- esl_gumbel_FitCompleteLoc(x, totalN[exp], lambda, &est_mu);
+ if (esl_gumbel_FitCompleteLoc(x, totalN[exp], lambda, &est_mu) != eslOK)
+ esl_fatal("gumbel location-only complete fit failed");
printf("location %6d %6d %9.5f %9.5f\n",
totalN[exp], totalN[exp], mu, est_mu);
@@ -1071,88 +1168,194 @@ main(int argc, char **argv)
#endif /*eslGUMBEL_STATS*/
/*****************************************************************
- * 7. Unit tests.
- *****************************************************************/
-
-
-/*****************************************************************
- * 8. Test driver.
+ * 9. Unit tests.
*****************************************************************/
#ifdef eslGUMBEL_TESTDRIVE
-/* compile: gcc -g -Wall -I. -o test -DeslGUMBEL_TESTDRIVE -DeslAUGMENT_RANDOM -DeslAUGMENT_MINIMIZER esl_gumbel.c esl_random.c esl_minimizer.c esl_vectorops.c easel.c -lm
- * run: ./test
- */
-#include <stdio.h>
-#include "easel.h"
+#include "esl_getopts.h"
#include "esl_random.h"
-#include "esl_minimizer.h"
-#include "esl_gumbel.h"
-int
-main(int argc, char **argv)
+static void
+utest_fitting(ESL_RANDOMNESS *rng)
{
- ESL_RANDOMNESS *r = NULL;
- int totalN;
- int n;
- double phi; /* truncation threshold. */
- int i;
- double *x = NULL;
- double mu, lambda;
- double est_mu, est_lambda;
+ char msg[] = "esl_gumbel: fitting unit test failed";
+ int totalN = 10000;
+ double pmu = -20.;
+ double plambda = 0.4;
+ double phi = -20.;
+ double *x = NULL;
+ int i;
+ int n;
+ double mu;
+ double lambda;
int status;
- totalN = 10000;
- mu = -20.;
- lambda = 0.4;
- phi = -20.;
-
- r = esl_randomness_Create(42); /* make the sims reproducible */
+ /* Simulate a complete Gumbel distributed dataset of <totalN> samples */
ESL_ALLOC(x, sizeof(double) * totalN);
-
- /* Test complete data fitting on simulated data.
+ for (i = 0; i < totalN; i++)
+ x[i] = esl_gumbel_Sample(rng, pmu, plambda);
+
+ /* Complete data fitting.
* Don't tolerate more than 1% error in mu, 3% in lambda.
*/
- for (i = 0; i < totalN; i++)
- x[i] = esl_gumbel_Sample(r, mu, lambda);
- esl_gumbel_FitComplete(x, totalN, &est_mu, &est_lambda);
- if (fabs((est_mu -mu) /mu) > 0.01) abort();
- if (fabs((est_lambda-lambda)/lambda) > 0.03) abort();
+ if ((status = esl_gumbel_FitComplete(x, totalN, &mu, &lambda)) != eslOK) esl_fatal(msg);
+ if (fabs((mu -pmu) /pmu) > 0.01) esl_fatal(msg);
+ if (fabs((lambda-plambda)/plambda) > 0.03) esl_fatal(msg);
- /* Test censored fitting on simulated data, for
- * the right tail mass above the mode.
- * Don't tolerate more than 1% error in mu, 4% in lambda.
+ /* Complete data, known lambda; fit location <mu>
+ */
+ if ((status = esl_gumbel_FitCompleteLoc(x, totalN, plambda, &mu)) != eslOK) esl_fatal(msg);
+ if (fabs((mu - pmu) / pmu) > 0.01) esl_fatal(msg);
+
+
+ /* Left censor/truncate the data set, to <n> values x_i >= phi;
+ * <Ntotal-n> are censored
*/
for (n=0, i = 0; i < totalN; i++)
if (x[i] >= phi) x[n++] = x[i];
- esl_gumbel_FitCensored(x, n, totalN-n, phi, &est_mu, &est_lambda);
- if (fabs((est_mu -mu) /mu) > 0.01) abort();
- if (fabs((est_lambda-lambda)/lambda) > 0.04) abort();
- /* Test truncated fitting on simulated data.
+ /* Censored fitting.
+ * Don't tolerate more than 1% error in mu, 4% in lambda.
+ */
+ if ((status = esl_gumbel_FitCensored(x, n, totalN-n, phi, &mu, &lambda)) != eslOK) esl_fatal(msg);
+ if (fabs((mu - pmu) /pmu) > 0.01) esl_fatal(msg);
+ if (fabs((lambda - plambda)/plambda) > 0.04) esl_fatal(msg);
+
+ /* Censored data, known lambda; fit location <mu>
+ */
+ if ((status = esl_gumbel_FitCensoredLoc(x, n, totalN-n, phi, plambda, &mu)) != eslOK) esl_fatal(msg);
+ if (fabs((mu - pmu) / pmu) > 0.01) esl_fatal(msg);
+
+ /* Truncated fitting.
* Don't tolerate more than 5% error in mu, 8% in lambda.
*/
#ifdef eslAUGMENT_MINIMIZER
- esl_gumbel_FitTruncated(x, n, phi, &est_mu, &est_lambda);
- if (fabs((est_mu -mu) /mu) > 0.05) abort();
- if (fabs((est_lambda-lambda)/lambda) > 0.08) abort();
+ if ((status = esl_gumbel_FitTruncated(x, n, phi, &mu, &lambda)) != eslOK) esl_fatal(msg);
+ if (fabs((mu - pmu) /pmu) > 0.05) esl_fatal(msg);
+ if (fabs((lambda - plambda)/plambda) > 0.08) esl_fatal(msg);
#endif /*eslAUGMENT_MINIMIZER*/
-
-
+
free(x);
- esl_randomness_Destroy(r);
- return 0;
+ return;
ERROR:
- if (x != NULL) free(x);
- if (r != NULL) esl_randomness_Destroy(r);
- return status;
+ if (x) free(x);
+ esl_fatal("allocation failure in esl_gumbel : fitting unit test");
+}
+
+
+static void
+utest_fit_failure(void)
+{
+ char msg[] = "esl_gumbel: fit_failure unit test failed";
+ double x[10];
+ double mu;
+ double lambda;
+ int status;
+
+ x[0] = 1.0;
+ x[1] = 1.0;
+
+ /* n=0 or 1 => eslEINVAL. */
+ status = esl_gumbel_FitComplete(x, 1, &mu, &lambda);
+ if (status != eslEINVAL) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+ if (lambda != 0.0) esl_fatal(msg);
+
+ /* Test for failure on small n => eslENORESULT */
+ status = esl_gumbel_FitComplete(x, 2, &mu, &lambda);
+ if (status != eslENORESULT) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+ if (lambda != 0.0) esl_fatal(msg);
+
+ /* FitCompleteLoc() invalid on n=0,1; but always succeeds for n>1 */
+ status = esl_gumbel_FitCompleteLoc(x, 1, 1.0, &mu);
+ if (status != eslEINVAL) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+
+ /* FitCensored() is eslEINVAL on n=0,1, like FitComplete().
+ */
+ status = esl_gumbel_FitCensored(x, 1, 1, 0.0, &mu, &lambda);
+ if (status != eslEINVAL) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+ if (lambda != 0.0) esl_fatal(msg);
+
+ /* FitCensored() can fail on small n, w/ eslENORESULT */
+ status = esl_gumbel_FitCensored(x, 2, 1, 0.0, &mu, &lambda);
+ if (status != eslENORESULT) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+ if (lambda != 0.0) esl_fatal(msg);
+
+ /* FitCensoredLoc()invalid on n=0,1; but always succeeds for n>1 */
+ status = esl_gumbel_FitCensoredLoc(x, 1, 1, 0.0, 1.0, &mu);
+ if (status != eslEINVAL) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+
+ /* FitTruncated() w/ n=0,1 => eslEINVAL. */
+ status = esl_gumbel_FitTruncated(x, 1, 0.0, &mu, &lambda);
+ if (status != eslEINVAL) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+ if (lambda != 0.0) esl_fatal(msg);
+
+ /* FitTruncated() can fail on small n, w/ eslENORESULT */
+ status = esl_gumbel_FitTruncated(x, 2, 0.0, &mu, &lambda);
+ if (status != eslENORESULT) esl_fatal(msg);
+ if (mu != 0.0) esl_fatal(msg);
+ if (lambda != 0.0) esl_fatal(msg);
+
+ return;
+}
+#endif /*eslGUMBEL_TESTDRIVE*/
+
+/*****************************************************************
+ * 10. Test driver.
+ *****************************************************************/
+#ifdef eslGUMBEL_TESTDRIVE
+/* compile: gcc -g -Wall -I. -L. -o esl_gumbel_utest -DeslGUMBEL_TESTDRIVE esl_gumbel.c -leasel -lm
+ * (gcov): gcc -g -Wall -fprofile-arcs -ftest-coverage -I. -L. -o esl_gumbel_utest -DeslGUMBEL_TESTDRIVE esl_gumbel.c -leasel -lm
+ * run: ./esl_gumbel_utest
+ * coverage: ./esl_gumbel_utest; gcov esl_gumbel.c; more esl_gumbel.c.gcov
+ */
+#include <stdio.h>
+
+#include "easel.h"
+#include "esl_getopts.h"
+#include "esl_random.h"
+#include "esl_minimizer.h"
+#include "esl_gumbel.h"
+#include "esl_stats.h"
+
+static ESL_OPTIONS options[] = {
+ /* name type default env range togs reqs incomp help docgrp */
+ { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0},
+ { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0},
+ { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "verbose: show verbose output", 0},
+ { 0,0,0,0,0,0,0,0,0,0},
+};
+static char usage[] = "[-options]";
+static char banner[] = "test driver for Gumbel distribution routines";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_Create(esl_opt_GetInteger(go, "-s"));
+ int be_verbose = esl_opt_GetBoolean(go, "-v");
+
+ if (be_verbose) printf("seed = %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+
+ utest_fitting(rng);
+ utest_fit_failure();
+
+ esl_randomness_Destroy(rng);
+ esl_getopts_Destroy(go);
+ return 0;
}
#endif /*eslGUMBEL_TESTDRIVE*/
/*****************************************************************
- * 9. Example.
+ * 11. Example.
*****************************************************************/
#ifdef eslGUMBEL_EXAMPLE
/*::cexcerpt::gumbel_example::begin::*/
@@ -1189,8 +1392,9 @@ main(int argc, char **argv)
z = esl_gumbel_cdf(min, mu, lambda); /* left tail p~1e-4 < min */
printf("min = %6.1f P(<=min) = %g\n", min, z);
- esl_gumbel_FitComplete(x, n, &est_mu, &est_lambda); /* fit params to the data */
-
+ if (esl_gumbel_FitComplete(x, n, &est_mu, &est_lambda) != eslOK) /* fit params to the data */
+ esl_fatal("gumbel ML complete data fit failed");
+
z = 100. * fabs((est_mu - mu) / mu);
printf("Parametric mu = %6.1f. Estimated mu = %6.2f. Difference = %.1f%%.\n",
mu, est_mu, z);
@@ -1210,13 +1414,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_gumbel.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_gumbel.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_gumbel.h b/easel/esl_gumbel.h
index abdcc5d..9868128 100644
--- a/easel/esl_gumbel.h
+++ b/easel/esl_gumbel.h
@@ -2,8 +2,8 @@
* Gumbel (type I extreme value) distributions.
*
* SRE, Mon Jun 27 08:44:41 2005 [St. Louis]
- * SVN $Id: esl_gumbel.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_gumbel.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslGUMBEL_INCLUDED
#define eslGUMBEL_INCLUDED
@@ -35,27 +35,22 @@ extern int esl_gumbel_Plot(FILE *fp, double mu, double lambda,
extern double esl_gumbel_Sample(ESL_RANDOMNESS *r, double mu, double lambda);
#endif
-extern int esl_gumbel_FitComplete(double *x, int n,
- double *ret_mu, double *ret_lambda);
-extern int esl_gumbel_FitCompleteLoc(double *x, int n, double lambda,
- double *ret_mu);
-extern int esl_gumbel_FitCensored(double *x, int n, int z, double phi,
- double *ret_mu, double *ret_lambda);
-extern int esl_gumbel_FitCensoredLoc(double *x, int n, int z, double phi,
- double lambda, double *ret_mu);
+extern int esl_gumbel_FitComplete (double *x, int n, double *ret_mu, double *ret_lambda);
+extern int esl_gumbel_FitCompleteLoc(double *x, int n, double lambda, double *ret_mu);
+extern int esl_gumbel_FitCensored (double *x, int n, int z, double phi, double *ret_mu, double *ret_lambda);
+extern int esl_gumbel_FitCensoredLoc(double *x, int n, int z, double phi, double lambda, double *ret_mu);
#ifdef eslAUGMENT_MINIMIZER
-extern int esl_gumbel_FitTruncated(double *x, int n, double phi,
- double *ret_mu, double *ret_lambda);
+extern int esl_gumbel_FitTruncated (double *x, int n, double phi, double *ret_mu, double *ret_lambda);
#endif
#endif /*eslGUMBEL_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_gumbel.tex b/easel/esl_gumbel.tex
index 506a448..8fbf91c 100644
--- a/easel/esl_gumbel.tex
+++ b/easel/esl_gumbel.tex
@@ -208,7 +208,7 @@ distribution, the log likelihood to optimize is:
\begin{equation}
\log L(\lambda, \mu) = n \log \lambda - \sum_{i=1}^{n} \lambda(x_i -
\mu) - \sum_{i=1}^{n} e^{-\lambda(x_i - \mu)}
-\label{eqn:gev_logL}
+\label{eqn:gumbel_logL}
\end{equation}
This objective function is differentiable with respect to $\mu$ and
diff --git a/easel/esl_heap.c b/easel/esl_heap.c
new file mode 100644
index 0000000..ee56ba2
--- /dev/null
+++ b/easel/esl_heap.c
@@ -0,0 +1,349 @@
+/* Heaps and priority queues.
+ * See TH Cormen, CE Leiserson, and RL Rivest, _Introduction to Algorithms_, MIT Press, 1999.
+ *
+ * Contents:
+ * 1. The <ESL_HEAP> object: creation, access.
+ * 2. Rest of the API: inserting, extracting values.
+ * 3. Debugging, development.
+ * 4. Internal functions.
+ * 5. Unit tests.
+ * 6. Test driver.
+ * 7. Copyright and license.
+ */
+#include "esl_config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "easel.h"
+#include "esl_heap.h"
+
+static int heap_grow(ESL_HEAP *hp);
+static void iheapify (ESL_HEAP *hp, int idx);
+
+/*****************************************************************
+ * 1. The <ESL_HEAP> object.
+ *****************************************************************/
+
+/* Function: esl_heap_ICreate()
+ * Synopsis: Create a heap for storing integers.
+ *
+ * Purpose: Create a heap for storing integers. <maxormin> is
+ * <eslHEAP_MIN> or <eslHEAP_MAX>; it states whether
+ * minimum or maximum values are sorted to the top of the
+ * heap.
+ *
+ * Args: maxormin : <eslHEAP_MIN | eslHEAP_MAX>
+ *
+ * Returns: a pointer to the new heap.
+ *
+ * Throws: <NULL> on allocation failure.
+ */
+ESL_HEAP *
+esl_heap_ICreate(int maxormin)
+{
+ ESL_HEAP *hp = NULL;
+ int status;
+
+ ESL_DASSERT1(( maxormin == eslHEAP_MIN || maxormin == eslHEAP_MAX));
+
+ ESL_ALLOC(hp, sizeof(ESL_HEAP));
+ hp->idata = NULL;
+ hp->n = 0;
+ hp->maxormin = maxormin;
+
+ ESL_ALLOC(hp->idata, sizeof(int) * eslHEAP_INITALLOC);
+ hp->nalloc = eslHEAP_INITALLOC;
+
+ return hp;
+
+ ERROR:
+ esl_heap_Destroy(hp);
+ return NULL;
+}
+
+/* Function: esl_heap_GetCount()
+ * Synopsis: Returns the number of items in the heap.
+ */
+int
+esl_heap_GetCount(ESL_HEAP *hp)
+{
+ return hp->n;
+}
+
+/* Function: esl_heap_IGetTopVal()
+ * Synopsis: Peeks at and returns the best (topmost) value in the heap.
+ *
+ * Purpose: Peek at the best (topmost) value in heap <hp> and
+ * return it. The heap is unaffected. If the heap is
+ * empty, return 0.
+ */
+int
+esl_heap_IGetTopVal(ESL_HEAP *hp)
+{
+ return (hp->n ? hp->idata[0] : 0);
+}
+
+
+/* Function: esl_heap_Reuse()
+ * Synopsis: Reuse a heap.
+ *
+ * Purpose: As an alternative to destroy'ing an old heap and
+ * create'ing a new one, empty this heap and reinitialize
+ * it, as if it is a freshly created heap of the same
+ * data type and same <maxormin>.
+ *
+ * Returns: <eslOK>
+ */
+int
+esl_heap_Reuse(ESL_HEAP *hp)
+{
+ hp->n = 0;
+ return eslOK;
+}
+
+
+/* Function: esl_heap_Destroy()
+ * Synopsis: Free a heap.
+ *
+ * Purpose: Destroys heap <hp>, of any data type.
+ *
+ * Returns: (void)
+ *
+ * Throws: (no abnormal error conditions)
+ */
+void
+esl_heap_Destroy(ESL_HEAP *hp)
+{
+ if (hp)
+ {
+ if (hp->idata) free(hp->idata);
+ free (hp);
+ }
+}
+
+/*****************************************************************
+ * 2. Rest of the API: inserting, extracting values
+ *****************************************************************/
+
+/* Function: esl_heap_IInsert()
+ * Synopsis: Insert a value into the heap.
+ *
+ * Purpose: Insert value <val> into heap <hp>.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ */
+int
+esl_heap_IInsert(ESL_HEAP *hp, int val)
+{
+ int idx, parentidx;
+ int status;
+
+ if (hp->n == hp->nalloc && (status = heap_grow(hp)) != eslOK) return status;
+
+ hp->n++;
+ idx = hp->n - 1;
+ while (idx > 0 && (hp->maxormin == eslHEAP_MIN ? hp->idata[ESL_HEAP_PARENT(idx)] > val : hp->idata[ESL_HEAP_PARENT(idx)] < val))
+ {
+ parentidx = ESL_HEAP_PARENT(idx);
+ hp->idata[idx] = hp->idata[parentidx];
+ idx = parentidx;
+ }
+ hp->idata[idx] = val;
+ return eslOK;
+}
+
+
+/* Function: esl_heap_IExtractTop()
+ * Synopsis: Extract the top value from the heap.
+ *
+ * Purpose: Extract the best (topmost) value from heap <hp>.
+ * Delete it from the heap. Return it in <*opt_val>.
+ *
+ * To simply delete the topmost value (without retrieving
+ * its value), pass <NULL> for <opt_val>.
+
+ * If the heap is empty, return <eslEOD>, and
+ * <*opt_val> is 0.
+ *
+ * Returns: <eslOK> on success, and <*opt_val> is the extracted
+ * topmost value.
+ *
+ * <eslEOD> if the heap is empty; <*opt_val> is 0.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+esl_heap_IExtractTop(ESL_HEAP *hp, int *opt_val)
+{
+ int bestval;
+
+ if (hp->n == 0) { *opt_val = 0; return eslEOD; }
+
+ bestval = hp->idata[0];
+
+ hp->idata[0] = hp->idata[hp->n-1];
+ hp->n--;
+ iheapify(hp, 0);
+
+ if (opt_val) *opt_val = bestval;
+ return eslOK;
+}
+
+
+/*****************************************************************
+ * 3. Debugging, development.
+ *****************************************************************/
+
+int
+esl_heap_Validate(ESL_HEAP *hp, char *errbuf)
+{
+ int idx, lidx, ridx;
+
+ for (idx = 0; idx < hp->n; idx++)
+ {
+ lidx = ESL_HEAP_LEFT(idx);
+ ridx = lidx+1;
+ if (lidx < hp->n && ( hp->maxormin == eslHEAP_MIN ? hp->idata[lidx] < hp->idata[idx] : hp->idata[lidx] > hp->idata[idx] ))
+ ESL_FAIL(eslFAIL, errbuf, "at %d (value %d): left child %d (value %d) is better", idx, hp->idata[idx], lidx, hp->idata[lidx]);
+ if (ridx < hp->n && ( hp->maxormin == eslHEAP_MIN ? hp->idata[ridx] < hp->idata[idx] : hp->idata[ridx] > hp->idata[idx] ))
+ ESL_FAIL(eslFAIL, errbuf, "at %d (value %d): right child %d (value %d) is better", idx, hp->idata[idx], ridx, hp->idata[ridx]);
+ }
+ return eslOK;
+}
+
+/*****************************************************************
+ * 4. Internal functions
+ *****************************************************************/
+
+static int
+heap_grow(ESL_HEAP *hp)
+{
+ int status;
+
+ if (hp->idata) {
+ ESL_REALLOC(hp->idata, sizeof(int) * (hp->nalloc*2));
+ hp->nalloc += hp->nalloc;
+ }
+ return eslOK;
+
+ ERROR:
+ return eslEMEM;
+}
+
+
+static void
+iheapify(ESL_HEAP *hp, int idx)
+{
+ int bestidx = idx;
+ int leftidx, rightidx;
+
+ while (1) /* while loop avoids recursive heapify call */
+ {
+ leftidx = ESL_HEAP_LEFT(idx);
+ rightidx = leftidx+1;
+ if (leftidx < hp->n && (hp->maxormin == eslHEAP_MIN ? hp->idata[leftidx] < hp->idata[idx] : hp->idata[leftidx] > hp->idata[idx]) ) bestidx = leftidx;
+ if (rightidx < hp->n && (hp->maxormin == eslHEAP_MIN ? hp->idata[rightidx] < hp->idata[bestidx] : hp->idata[rightidx] > hp->idata[bestidx]) ) bestidx = rightidx;
+ if (bestidx == idx) break; /* nothing needed to be changed: either because <idx> satisfies heap property, or because it has no children */
+ ESL_SWAP(hp->idata[idx], hp->idata[bestidx], int);
+ idx = bestidx;
+ }
+}
+
+
+/*****************************************************************
+ * 5. Unit tests
+ *****************************************************************/
+#ifdef eslHEAP_TESTDRIVE
+#include "esl_random.h"
+
+static void
+utest_sorting(ESL_RANDOMNESS *rng)
+{
+ char *msg = "utest_sorting():: unit test failure";
+ ESL_HEAP *hp = NULL;
+ int *val = NULL;
+ int nv = 1 + esl_rnd_Roll(rng, 10000);
+ char errbuf[eslERRBUFSIZE];
+ int i,n2,x;
+
+ /* Create an array of numbers 1..nv in randomized order. */
+ if ( (val = malloc(sizeof(int) * nv)) == NULL) esl_fatal("utest_sorting():: allocation failed");
+ for (i = 0; i < nv; i++) val[i] = i+1;
+ for (n2 = nv; n2 > 1; n2--)
+ { /* a compact Fisher-Yates shuffle. Can't put the Roll() into the ESL_SWAP(), because it's a macro: avoid double evaluation */
+ i = esl_rnd_Roll(rng, n2);
+ ESL_SWAP( val[i], val[n2-1], int);
+ }
+
+ /* Add those numbers (in their randomized order) to a min heap */
+ if ( (hp = esl_heap_ICreate(eslHEAP_MIN)) == NULL) esl_fatal(msg);
+ for (i = 0; i < nv; i++)
+ if (esl_heap_IInsert(hp, val[i]) != eslOK) esl_fatal(msg);
+ if (esl_heap_Validate(hp, errbuf) != eslOK) esl_fatal("utest: heap validation fails: %s", errbuf);
+
+ /* Now if we pull numbers off the heap, they'll come off in sorted order, 1..nv */
+ for (i = 1; i <= nv; i++)
+ {
+ if (esl_heap_IExtractTop(hp, &x) != eslOK) esl_fatal(msg);
+ if (x != i) esl_fatal(msg);
+ if (hp->n != nv-i) esl_fatal(msg);
+ }
+
+ esl_heap_Destroy(hp);
+ free(val);
+}
+
+#endif /*eslHEAP_TESTDRIVE*/
+
+/*****************************************************************
+ * 6. Test driver
+ *****************************************************************/
+#ifdef eslHEAP_TESTDRIVE
+
+#include "easel.h"
+#include "esl_getopts.h"
+
+static ESL_OPTIONS options[] = {
+ /* name type default env range togs reqs incomp help docgrp */
+ {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0},
+ {"-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0},
+ { 0,0,0,0,0,0,0,0,0,0},
+};
+static char usage[] = "[-options]";
+static char banner[] = "test driver for ESL_HEAP: heaps and priority queues";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_Create(esl_opt_GetInteger(go, "-s"));
+
+ fprintf(stderr, "## %s\n", argv[0]);
+ fprintf(stderr, "# rng seed = %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+
+ utest_sorting(rng);
+
+ fprintf(stderr, "# status = ok\n");
+
+ esl_getopts_Destroy(go);
+ esl_randomness_Destroy(rng);
+ return 0;
+}
+
+#endif /*eslHEAP_TESTDRIVE*/
+
+/*****************************************************************
+ * Easel - a library of C functions for biological sequence analysis
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
+ *
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SVN $Id$
+ * SVN $URL$
+ *****************************************************************/
diff --git a/easel/esl_heap.h b/easel/esl_heap.h
new file mode 100644
index 0000000..7151579
--- /dev/null
+++ b/easel/esl_heap.h
@@ -0,0 +1,50 @@
+/* Heaps and priority queues.
+ * See TH Cormen, CE Leiserson, and RL Rivest, _Introduction to Algorithms_, MIT Press, 1999.
+ */
+#ifndef eslHEAP_INCLUDED
+#define eslHEAP_INCLUDED
+
+#include "esl_config.h"
+
+#define eslHEAP_INITALLOC 128
+
+#define eslHEAP_MIN 0
+#define eslHEAP_MAX 1
+
+#define ESL_HEAP_PARENT(i) ( ((i)-1) / 2 )
+#define ESL_HEAP_LEFT(i) ( ((i)*2) + 1 )
+#define ESL_HEAP_RIGHT(i) ( ((i)+1) * 2 )
+
+typedef struct esl_heap_s {
+ int *idata;
+
+ int n;
+ int nalloc;
+ int maxormin; /* eslHEAP_MAX | eslHEAP_MIN */
+} ESL_HEAP;
+
+extern ESL_HEAP *esl_heap_ICreate (int maxormin);
+extern int esl_heap_GetCount (ESL_HEAP *hp);
+extern int esl_heap_IGetTopVal(ESL_HEAP *hp);
+extern int esl_heap_Reuse (ESL_HEAP *hp);
+extern void esl_heap_Destroy (ESL_HEAP *hp);
+
+extern int esl_heap_IInsert(ESL_HEAP *hp, int val);
+
+extern int esl_heap_IExtractTop(ESL_HEAP *hp, int *ret_val);
+
+extern int esl_heap_IGetTop(ESL_HEAP *hp);
+
+#endif /*eslHEAP_INCLUDED*/
+/*****************************************************************
+ * Easel - a library of C functions for biological sequence analysis
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
+ *
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SVN $Id$
+ * SVN $URL$
+ *****************************************************************/
diff --git a/easel/esl_histogram.c b/easel/esl_histogram.c
index 071322b..3980a55 100644
--- a/easel/esl_histogram.c
+++ b/easel/esl_histogram.c
@@ -32,34 +32,39 @@ static int esl_histogram_sort(ESL_HISTOGRAM *h);
* Synopsis: Create a new <ESL_HISTOGRAM>.
*
* Purpose: Creates and returns a new histogram object, initially
- * allocated to count scores $>$ <xmin> and $<=$ <xmax> into
- * bins of width <w>. Thus, a total of <xmax>-<xmin>/<w> bins
+ * allocated to count values $>$ <bmin> and $<=$ <bmax> into
+ * bins of width <w>. Thus, a total of <bmax>-<bmin>/<w> bins
* are initially created.
*
- * The lower bound <xmin> and the width <w> permanently
+ * The lower bound <bmin> and the width <w> permanently
* determine the offset and width of the binning, but not
* the range. For example, <esl_histogram_Create(-100,
- * 100, 0.5)> would init the object to collect scores into
+ * 100, 0.5)> would initialize the object to collect scores into
* 400 bins $[-100< x \leq -99.5],[-99.5 < x \leq
* -99.0]...[99.5 <x \leq 100.0]$. Aside from this, the
- * range specified by the bounds <xmin> and <xmax> only
+ * range specified by the bounds <bmin> and <bmax> only
* needs to be an initial guess. The histogram object will
* reallocate itself dynamically as needed to accommodate
* scores that exceed current bounds.
*
- * You can be sloppy about <xmax>; it does not have to
+ * You can be sloppy about <bmax>; it does not have to
* exactly match a bin upper bound. The initial allocation
* is for all full-width bins with upper bounds $\leq
- * xmax$.
+ * bmax$.
*
* <esl_histogram_Create()> creates a simplified histogram
* object that collates only the "display" histogram. For
* a more complex object that also keeps the raw data samples,
* better suited for fitting distributions and goodness-of-fit
* testing, use <esl_histogram_CreateFull()>.
+ *
+ * There is currently no way to alter where the equals sign
+ * is, in setting the bin bounds: that is, you can't make bins
+ * that have <bmin> $\leq x$ and $x <$ <bmax>, alas.
+
*
- * Args: xmin - caller guesses that minimum score will be > xmin
- * xmax - caller guesses that max score will be <= xmax
+ * Args: bmin - caller guesses that minimum score will be > bmin
+ * bmax - caller guesses that max score will be <= bmax
* w - size of bins (1.0, for example)
*
* Returns: ptr to new <ESL_HISTOGRAM> object, which caller is responsible
@@ -68,7 +73,7 @@ static int esl_histogram_sort(ESL_HISTOGRAM *h);
* Throws: <NULL> on allocation failure.
*/
ESL_HISTOGRAM *
-esl_histogram_Create(double xmin, double xmax, double w)
+esl_histogram_Create(double bmin, double bmax, double w)
{
ESL_HISTOGRAM *h = NULL;
int status;
@@ -80,9 +85,9 @@ esl_histogram_Create(double xmin, double xmax, double w)
h->xmax = -DBL_MAX;
h->n = 0;
h->obs = NULL; /* will get allocated below... */
- h->bmin = xmin; /* bmin/bmax are the allocated bounds */
- h->bmax = xmax;
- h->nb = (int)((xmax-xmin)/w);
+ h->bmin = bmin; /* bmin/bmax are the allocated bounds */
+ h->bmax = bmax;
+ h->nb = (int)((bmax-bmin)/w);
h->imin = h->nb;
h->imax = -1;
h->w = w;
@@ -128,10 +133,10 @@ esl_histogram_Create(double xmin, double xmax, double w)
* tests, but will consume more memory.
*/
ESL_HISTOGRAM *
-esl_histogram_CreateFull(double xmin, double xmax, double w)
+esl_histogram_CreateFull(double bmin, double bmax, double w)
{
int status;
- ESL_HISTOGRAM *h = esl_histogram_Create(xmin, xmax, w);
+ ESL_HISTOGRAM *h = esl_histogram_Create(bmin, bmax, w);
if (h == NULL) return NULL;
h->n = 0; /* make sure */
@@ -750,9 +755,9 @@ int
esl_histogram_SetExpect(ESL_HISTOGRAM *h,
double (*cdf)(double x, void *params), void *params)
{
- int status;
int i;
double ai,bi; /* ai < x <= bi : lower,upper bounds in bin */
+ int status;
if (h->expect == NULL)
ESL_ALLOC(h->expect, sizeof(double) * h->nb);
@@ -761,6 +766,7 @@ esl_histogram_SetExpect(ESL_HISTOGRAM *h,
{
ai = esl_histogram_Bin2LBound(h, i);
bi = esl_histogram_Bin2UBound(h, i);
+
h->expect[i] = h->Nc * ( (*cdf)(bi, params) - (*cdf)(ai, params) );
if (h->emin == -1 && h->expect[i] > 0.) h->emin = i;
@@ -877,8 +883,10 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
int pos; /* position in output line buffer */
uint64_t lowcount, highcount;
int ilowbound, ihighbound;
+ int nlines;
int emptybins = 3;
+
/* Find out how we'll scale the histogram. We have 58 characters to
* play with on a standard 80-column terminal display: leading "%6.1f
* %6d %6d|" occupies 21 chars. Save the peak position, we'll use
@@ -917,16 +925,22 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
/* maxbar might need to be raised now; then set our units */
if (lowcount > maxbar) maxbar = lowcount;
if (highcount > maxbar) maxbar = highcount;
- units = ((maxbar-1)/ 58) + 1;
- /* Print the histogram
+ if (maxbar > 0) units = ((maxbar-1)/ 58) + 1;
+ else units = 1; /* watch out for an empty histogram w/ no data points. */
+
+ /* Print the histogram header
*/
if (fprintf(fp, "%6s %6s %6s (one = represents %llu sequences)\n",
"score", "obs", "exp", (unsigned long long) units) < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
- if (fprintf(fp, "%6s %6s %6s\n", "-----", "---", "---") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
+ if (fprintf(fp, "%6s %6s %6s\n", "-----", "---", "---") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
+
+ /* Print the histogram itself */
buffer[80] = '\0';
buffer[79] = '\n';
+ nlines = 0; /* Count the # of lines we print, so we know if it ends up being zero */
for (i = h->imin; i <= h->imax; i++)
{
memset(buffer, ' ', 79 * sizeof(char));
@@ -944,6 +958,7 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
for (pos = 21; num > 0; num--) buffer[pos++] = '=';
}
if (fputs(buffer, fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
+ nlines++;
continue;
}
else if (i == ihighbound && i != h->imax)
@@ -954,6 +969,7 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
for (pos = 21; num > 0; num--) buffer[pos++] = '=';
}
if (fputs(buffer, fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
+ nlines++;
continue;
}
@@ -972,11 +988,9 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
sprintf(buffer, "%6.1f %6.2e %6.2e|", x, (double) h->obs[i], h->expect[i]);
else
sprintf(buffer, "%6.1f %6.2e %6s|", x, (double) h->obs[i], "-");
-
}
buffer[21] = ' '; /* sprintf writes a null char; replace it */
-
/* Mark the histogram bar for observed hits
*/
if (h->obs[i] > 0) {
@@ -997,8 +1011,12 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
/* Print the line
*/
if (fputs(buffer, fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
+ nlines++;
}
+ if (nlines == 0 && fprintf(fp, "[histogram contained no data points]\n") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "histogram write failed");
+
return eslOK;
}
@@ -1016,29 +1034,33 @@ esl_histogram_Write(FILE *fp, ESL_HISTOGRAM *h)
int
esl_histogram_Plot(FILE *fp, ESL_HISTOGRAM *h)
{
+ int imin, imax;
int i;
double x;
/* First data set is the observed histogram
*/
for (i = h->imin; i <= h->imax; i++)
- if (h->obs[i] > 0)
- {
- x = esl_histogram_Bin2LBound(h,i);
- if (fprintf(fp, "%f %llu\n", x, (unsigned long long) h->obs[i]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram plot write failed");
- }
+ {
+ x = esl_histogram_Bin2LBound(h,i);
+ if (fprintf(fp, "%f %llu\n", x, (unsigned long long) h->obs[i]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram plot write failed");
+ }
if (fprintf(fp, "&\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram plot write failed");
/* Second data set is the theoretical (expected) histogram
*/
if (h->expect != NULL)
{
- for (i = 0; i < h->nb; i++)
- if (h->expect[i] > 0.) /* >0 suffices to remove censored region */
- {
- x = esl_histogram_Bin2LBound(h,i);
- if (fprintf(fp, "%.2f %g\n", x, h->expect[i]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram plot write failed");
- }
+ for (imin = 0; imin < h->nb; imin++)
+ if (h->expect[imin] > 0.) break;
+ for (imax = h->nb-1; imax >= 0; imax--)
+ if (h->expect[imax] > 0.) break;
+
+ for (i = imin; i <= imax; i++)
+ {
+ x = esl_histogram_Bin2LBound(h,i);
+ if (fprintf(fp, "%f %g\n", x, h->expect[i]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram plot write failed");
+ }
if (fprintf(fp, "&\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "histogram plot write failed");
}
return eslOK;
@@ -1193,10 +1215,22 @@ esl_histogram_PlotQQ(FILE *fp, ESL_HISTOGRAM *h,
* The two tests should give similar
* probabilities. However, both tests are sensitive to
* arbitrary choices in how the data are binned, and
- * neither seems to be on an entirely sound theoretical footing.
+ * neither seems to be on an entirely sound theoretical
+ * footing.
+ *
+ * On some datasets, pathological and/or very small, it may
+ * be impossible to calculate goodness of fit
+ * statistics. In this case, <eslENORESULT> is returned.
*
* Returns: <eslOK> on success.
*
+ * <eslENORESULT> if the data are such that goodness-of-fit
+ * statistics can't be calculated, probably because there
+ * just aren't many data points. On this error, <*ret_G>
+ * and <*ret_X2> are 0.0, and <*ret_Gp> and <*ret_X2p> are
+ * 1.0. (Because suppose n=1: then any fit to a single data
+ * point is "perfect".)
+ *
* Throws: <eslEINVAL> if expected counts have not been set in
* the histogram; <eslERANGE> or <eslENOHALT> on different internal
* errors that can arise in calculating the probabilities;
@@ -1241,6 +1275,7 @@ esl_histogram_Goodness(ESL_HISTOGRAM *h,
nobs += h->obs[i];
if (h->obs[i] > hmax) hmax = h->obs[i];
}
+ if (nobs == 0) { status = eslENORESULT; goto ERROR; }
/* Figure out how many eval bins we'd like to have, then allocate
* for re-binning.
@@ -1257,8 +1292,8 @@ esl_histogram_Goodness(ESL_HISTOGRAM *h,
* The most important thing seems to be to get the # of counts
* in each bin to be roughly equal.
*/
- nb = 2* (int) pow((double) nobs, 0.4); /* "desired" nb. */
- minc = 1 + nobs / (2*nb); /* arbitrarily set min = 1/2 of the target # */
+ nb = 2* (int) pow((double) nobs, 0.4); /* "desired" nb. */
+ minc = 1 + nobs / (2*nb); /* arbitrarily set min = 1/2 of the target # */
ESL_ALLOC(obs, sizeof(uint64_t) * (nb*2+1)); /* final nb must be <= 2*nb+1 */
ESL_ALLOC(exp, sizeof(double) * (nb*2+1));
ESL_ALLOC(topx, sizeof(double) * (nb*2+1));
@@ -1287,11 +1322,18 @@ esl_histogram_Goodness(ESL_HISTOGRAM *h,
i++;
}
}
+ if (i == 0) { status = eslENORESULT; goto ERROR; }
obs[i-1] += nobs; /* add the right tail to final bin */
exp[i-1] += nexp;
topx[i-1] = esl_histogram_Bin2UBound(h, h->imax);
nb = i; /* nb is now actual # of bins, not target */
+ /* We have to have at least one degree of freedom, else
+ * goodness-of-fit testing isn't defined (and moreover, will
+ * fail numerically if we proceed)
+ */
+ if (nb-nfitted-1 <= 0) { status = eslENORESULT; goto ERROR; }
+
/* Calculate the X^2 statistic: \sum (obs_i - exp_i)^2 / exp_i */
X2 = 0.;
for (i = 0; i < nb; i++)
@@ -1300,15 +1342,17 @@ esl_histogram_Goodness(ESL_HISTOGRAM *h,
X2 += tmp*tmp / exp[i];
}
/* X^2 is distributed approximately chi^2. */
- if (nb-nfitted >= 0 && X2 != eslINFINITY)
- {
- status = esl_stats_ChiSquaredTest(nb-nfitted, X2, &X2p);
- if (status != eslOK) return status;
- }
- else X2p = 0.;
+ if (X2 == 0.)
+ X2p = 1.0;
+ else if (X2 != eslINFINITY) {
+ if ((status = esl_stats_ChiSquaredTest(nb-nfitted, X2, &X2p)) != eslOK) goto ERROR;
+ }
+ else
+ X2p = 0.;
/* The G test assumes that #exp=#obs (the X^2 test didn't).
* If that's not true, renormalize to make it so.
+ * This normalization subtracts a degree of freedom.
*/
nobs = 0;
nexp = 0.;
@@ -1327,35 +1371,35 @@ esl_histogram_Goodness(ESL_HISTOGRAM *h,
G *= 2;
/* G is distributed approximately as \chi^2.
- * -1 is because total #obs=#exp (which is must be)
+ * -1 is because total #obs=#exp
*/
- ESL_DASSERT1( (G >= 0.));
- if (nb-nfitted-1 >= 0 && G != eslINFINITY)
+ if (G == 0.)
+ Gp = 1.0;
+ else if (G != eslINFINITY)
{
- status = esl_stats_ChiSquaredTest(nb-nfitted-1, G, &Gp);
- if (status != eslOK) return status;
+ if ((status = esl_stats_ChiSquaredTest(nb-nfitted-1, G, &Gp)) != eslOK) goto ERROR;
}
else Gp = 0.;
- if (ret_nbins != NULL) *ret_nbins = nb;
- if (ret_G != NULL) *ret_G = G;
- if (ret_Gp != NULL) *ret_Gp = Gp;
- if (ret_X2 != NULL) *ret_X2 = X2;
- if (ret_X2p != NULL) *ret_X2p = X2p;
+ if (ret_nbins) *ret_nbins = nb;
+ if (ret_G) *ret_G = G;
+ if (ret_Gp) *ret_Gp = Gp;
+ if (ret_X2) *ret_X2 = X2;
+ if (ret_X2p) *ret_X2p = X2p;
free(obs);
free(exp);
free(topx);
return eslOK;
ERROR:
- if (ret_nbins != NULL) *ret_nbins = 0;
- if (ret_G != NULL) *ret_G = 0.;
- if (ret_Gp != NULL) *ret_Gp = 0.;
- if (ret_X2 != NULL) *ret_X2 = 0.;
- if (ret_X2p != NULL) *ret_X2p = 0.;
- if (obs != NULL) free(obs);
- if (exp != NULL) free(exp);
- if (topx != NULL) free(topx);
+ if (ret_nbins) *ret_nbins = 0;
+ if (ret_G) *ret_G = 0.;
+ if (ret_Gp) *ret_Gp = 1.;
+ if (ret_X2) *ret_X2 = 0.;
+ if (ret_X2p) *ret_X2p = 1.;
+ if (obs) free(obs);
+ if (exp) free(exp);
+ if (topx) free(topx);
return status;
}
@@ -1549,6 +1593,8 @@ main(int argc, char **argv)
bstrategy = FIT_BINNED;
fstrategy = FIT_TAIL;
}
+ else
+ esl_fatal("no such test type");
for (trial = 0; trial < ntrials; trial++)
@@ -1583,28 +1629,28 @@ main(int argc, char **argv)
fstrategy == FIT_COMPLETE)
{
esl_histogram_GetData(h, &xv, &n);
- esl_gumbel_FitComplete(xv, n, &(ep[0]), &ep[1]);
+ if (esl_gumbel_FitComplete(xv, n, &(ep[0]), &ep[1]) != eslOK) esl_fatal("gumbel complete fit failed");
}
else if (cstrategy == COLLECT_COMPLETE &&
bstrategy == FIT_SAMPLES &&
fstrategy == FIT_CENSORED)
{
esl_histogram_GetTailByMass(h, cmass, &xv, &n, &z);
- esl_gumbel_FitCensored(xv, n, z, xv[0], &(ep[0]), &ep[1]);
+ if (esl_gumbel_FitCensored(xv, n, z, xv[0], &(ep[0]), &ep[1]) != eslOK) esl_fatal("gumbel censored fit failed");
}
else if (cstrategy == COLLECT_COMPLETE &&
bstrategy == FIT_SAMPLES &&
fstrategy == FIT_TAIL)
{
esl_histogram_GetTailByMass(h, tailmass, &xv, &n, &z);
- esl_exp_FitComplete(xv, n, &(ep[0]), &ep[1]);
+ if (esl_exp_FitComplete(xv, n, &(ep[0]), &ep[1]) != eslOK) esl_fatal("exponential complete fit failed");
}
else if (cstrategy == COLLECT_CENSORED &&
bstrategy == FIT_SAMPLES &&
fstrategy == FIT_CENSORED)
{
esl_histogram_GetData(h, &xv, &n);
- esl_gumbel_FitCensored(xv, n, h->z, h->phi, &(ep[0]), &ep[1]);
+ if (esl_gumbel_FitCensored(xv, n, h->z, h->phi, &(ep[0]), &ep[1]) != eslOK) esl_fatal("gumbel censored fit failed");
}
else if (cstrategy == COLLECT_COMPLETE &&
bstrategy == FIT_BINNED &&
@@ -1612,7 +1658,7 @@ main(int argc, char **argv)
{
tailmass = save_tailmass; /* reset to original for each trial. */
esl_histogram_SetTailByMass(h, tailmass, &tailmass);
- esl_exp_FitCompleteBinned(h, &(ep[0]), &ep[1]);
+ if (esl_exp_FitCompleteBinned(h, &(ep[0]), &ep[1]) != eslOK) esl_fatal("exponential binned complete fit failed");
}
else
ESL_EXCEPTION(eslEINVAL, "not a scenario we currently test");
@@ -1655,7 +1701,8 @@ main(int argc, char **argv)
/* Evaluate goodness-of-fit
*/
nfitted = (ntest == 0)? 2 : 0;
- esl_histogram_Goodness(h1, nfitted, &nbins, &G, &Gp, &X2, &X2p);
+ if (esl_histogram_Goodness(h1, nfitted, &nbins, &G, &Gp, &X2, &X2p) != eslOK)
+ esl_fatal("esl_histogram unit testing: goodness-of-fit failed");
/* Track minimum goodness of fit probs, for automated testing
*/
@@ -1770,14 +1817,17 @@ main(int argc, char **argv)
}
esl_histogram_GetData(h, &xv, &n);
- esl_gumbel_FitComplete(xv, n, &mu, &lambda);
+ if (esl_gumbel_FitComplete(xv, n, &mu, &lambda) != eslOK)
+ esl_fatal("gumbel complete data fit failed");
params[0] = mu;
params[1] = lambda;
esl_histogram_SetExpect(h, &esl_gumbel_generic_cdf, ¶ms);
esl_histogram_Write(stdout, h);
- esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p);
+ if (esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p) != eslOK)
+ esl_fatal("goodness of fit testing failed");
+
printf("G = %f p = %f\n", G, Gp);
printf("X^2 = %f p = %f\n", X2, X2p);
@@ -1822,14 +1872,17 @@ main(int argc, char **argv)
}
esl_histogram_GetTailByMass(h, 0.5, &xv, &n, &z); /* fit to right 50% */
- esl_gumbel_FitCensored(xv, n, z, xv[0], &mu, &lambda);
+ if (esl_gumbel_FitCensored(xv, n, z, xv[0], &mu, &lambda) != eslOK)
+ esl_fatal("gumbel censored fit failed");
params[0] = mu;
params[1] = lambda;
esl_histogram_SetExpect(h, &esl_gumbel_generic_cdf, ¶ms);
esl_histogram_Write(stdout, h);
- esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p);
+ if (esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p) != eslOK)
+ esl_fatal("goodness of fit testing failed");
+
printf("G = %f p = %f\n", G, Gp);
printf("X^2 = %f p = %f\n", X2, X2p);
@@ -1881,7 +1934,9 @@ main(int argc, char **argv)
esl_histogram_SetExpectedTail(h, mu, 0.1, &esl_exp_generic_cdf, ¶ms);
esl_histogram_Write(stdout, h);
- esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p);
+ if (esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p) != eslOK)
+ esl_fatal("goodness of fit testing failed");
+
printf("G = %f p = %f\n", G, Gp);
printf("X^2 = %f p = %f\n", X2, X2p);
@@ -1928,14 +1983,17 @@ main(int argc, char **argv)
}
esl_histogram_GetData(h, &xv, &n);
- esl_gumbel_FitCensored(xv, n, z, phi, &mu, &lambda);
+ if (esl_gumbel_FitCensored(xv, n, z, phi, &mu, &lambda) != eslOK)
+ esl_fatal("gumbel censored fit failed");
params[0] = mu;
params[1] = lambda;
esl_histogram_SetExpect(h, &esl_gumbel_generic_cdf, ¶ms);
esl_histogram_Write(stdout, h);
- esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p);
+ if (esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p) != eslOK)
+ esl_fatal("goodness of fit testing failed");
+
printf("G = %f p = %f\n", G, Gp);
printf("X^2 = %f p = %f\n", X2, X2p);
@@ -1981,14 +2039,17 @@ main(int argc, char **argv)
esl_histogram_SetTailByMass(h, 0.1, &actual_mass);
esl_histogram_DeclareRounding(h);
- esl_exp_FitCompleteBinned(h, &mu, &lambda);
+ if (esl_exp_FitCompleteBinned(h, &mu, &lambda) != eslOK)
+ esl_fatal("exponential ML fitting failed");
params[0] = mu;
params[1] = lambda;
esl_histogram_SetExpectedTail(h, mu, actual_mass, &esl_exp_generic_cdf, ¶ms);
esl_histogram_Write(stdout, h);
- esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p);
+ if (esl_histogram_Goodness(h, 0, NULL, &G, &Gp, &X2, &X2p) != eslOK)
+ esl_fatal("goodness of fit testing failed");
+
printf("G = %f p = %f\n", G, Gp);
printf("X^2 = %f p = %f\n", X2, X2p);
@@ -2001,15 +2062,15 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_histogram.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_histogram.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_histogram.h b/easel/esl_histogram.h
index 37fb8b9..b1e88ad 100644
--- a/easel/esl_histogram.h
+++ b/easel/esl_histogram.h
@@ -1,8 +1,8 @@
/* Collection and display of score histograms.
*
* SRE, Fri Jul 1 13:22:45 2005 [St. Louis]
- * SVN $Id: esl_histogram.h 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_histogram.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslHISTOGRAM_INCLUDED
#define eslHISTOGRAM_INCLUDED
@@ -103,9 +103,9 @@ extern int esl_histogram_SetExpect(ESL_HISTOGRAM *h,
double (*cdf)(double x, void *params),
void *params);
extern int esl_histogram_SetExpectedTail(ESL_HISTOGRAM *h, double base_val,
- double pmass,
- double (*cdf)(double x, void *params),
- void *params);
+ double pmass,
+ double (*cdf)(double x, void *params),
+ void *params);
/* Output/display of binned data:
*/
@@ -113,7 +113,7 @@ extern int esl_histogram_Write (FILE *fp, ESL_HISTOGRAM *h);
extern int esl_histogram_Plot (FILE *fp, ESL_HISTOGRAM *h);
extern int esl_histogram_PlotSurvival(FILE *fp, ESL_HISTOGRAM *h);
extern int esl_histogram_PlotQQ (FILE *fp, ESL_HISTOGRAM *h,
- double (*invcdf)(double, void *), void *params);
+ double (*invcdf)(double, void *), void *params);
/* Goodness of fit testing
*/
@@ -127,10 +127,10 @@ extern int esl_histogram_Goodness(ESL_HISTOGRAM *h, int nfitted,
#endif /*eslHISTOGRAM_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_hmm.c b/easel/esl_hmm.c
index d5501ad..a43d62a 100644
--- a/easel/esl_hmm.c
+++ b/easel/esl_hmm.c
@@ -31,20 +31,20 @@ esl_hmm_Create(const ESL_ALPHABET *abc, int M)
int status;
ESL_ALLOC(hmm, sizeof(ESL_HMM));
- hmm->t = NULL;
- hmm->e = NULL;
+ hmm->t = NULL;
+ hmm->e = NULL;
+ hmm->eo = NULL;
+ hmm->pi = NULL;
- ESL_ALLOC(hmm->t, sizeof(float *) * M);
- ESL_ALLOC(hmm->e, sizeof(float *) * M);
- ESL_ALLOC(hmm->eo, sizeof(float *) * abc->Kp);
- hmm->t[0] = NULL;
- hmm->e[0] = NULL;
- hmm->eo[0] = NULL;
+ ESL_ALLOC(hmm->t, sizeof(float *) * M); hmm->t[0] = NULL;
+ ESL_ALLOC(hmm->e, sizeof(float *) * M); hmm->e[0] = NULL;
+ ESL_ALLOC(hmm->eo, sizeof(float *) * abc->Kp); hmm->eo[0] = NULL;
+ ESL_ALLOC(hmm->pi, sizeof(float) * (M+1)); // initial transition to state M means a L=0 sequence
- ESL_ALLOC(hmm->t[0], sizeof(float) * M * (M+1)); /* state M is the implicit end state */
+ ESL_ALLOC(hmm->t[0], sizeof(float) * M * (M+1)); // state M is the implicit end state
ESL_ALLOC(hmm->e[0], sizeof(float) * M * abc->K);
ESL_ALLOC(hmm->eo[0], sizeof(float) * abc->Kp * M);
- ESL_ALLOC(hmm->pi, sizeof(float) * (M+1)); /* initial transition to state M means a L=0 sequence */
+
for (k = 1; k < M; k++)
{
@@ -784,10 +784,11 @@ main(int argc, char **argv)
esl_sq_Reuse(sq);
}
- if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s line %" PRId64 "):\n%s\n",
- sqfp->filename, sqfp->linenumber, sqfp->errbuf);
+ if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n%s\n",
+ sqfp->filename, sqfp->get_error(sqfp));
else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
- status, sqfp->filename);
+ status, sqfp->filename);
+
esl_sqfile_Close(sqfp);
esl_sq_Destroy(sq);
@@ -805,13 +806,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_hmm.c 694 2011-06-14 21:57:16Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_hmm.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_hmm.h b/easel/esl_hmm.h
index 4f3eba0..39d9e44 100644
--- a/easel/esl_hmm.h
+++ b/easel/esl_hmm.h
@@ -1,8 +1,8 @@
/* General hidden Markov models (discrete; of alphabetic strings)
*
* SRE, Fri Jul 18 08:54:41 2008 [Janelia]
- * SVN $Id: esl_hmm.h 694 2011-06-14 21:57:16Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_hmm.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslHMM_INCLUDED
#define eslHMM_INCLUDED
@@ -55,10 +55,10 @@ extern int esl_hmm_Backward(const ESL_DSQ *dsq, int L, const ESL_HMM *hmm,
#endif /*eslHMM_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_hyperexp.c b/easel/esl_hyperexp.c
index 6dc6b3e..b8eb4ff 100644
--- a/easel/esl_hyperexp.c
+++ b/easel/esl_hyperexp.c
@@ -1,4 +1,26 @@
/* Statistical routines for hyperexponential distributions.
+ *
+ * Contents:
+ * 1. The ESL_HYPEREXP object
+ * 2. Evaluating densities and distributions
+ * 3. Generic API routines: for general interface w/ histogram module
+ * 4. Dumping plots for files
+ * 5. Sampling (augmentation: random)
+ * 6. File input (augmentation: fileparser)
+ * 7. ML fitting to complete data (augmentation: minimizer)
+ * 8. ML fitting to binned data (augmentation: histogram, minimizer)
+ * 9. Test driver
+ * 10. Example
+ * 11. Copyright and license information
+ *
+ * Xrefs:
+ * STL9/140 : original implementation
+ * STL9/143-144 : ML fitting to binned data
+ *
+ * To-do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:17:59 2013
*/
#include "esl_config.h"
@@ -26,7 +48,7 @@
#endif
/****************************************************************************
- *# Routines for the ESL_HYPEREXP object
+ *# 1. The ESL_HYPEREXP object
****************************************************************************/
/* Function: esl_hyperexp_Create()
@@ -230,7 +252,7 @@ esl_hyperexp_Dump(FILE *fp, ESL_HYPEREXP *hxp)
/****************************************************************************
- * Routines for evaluating densities and distributions
+ * 2. Evaluating densities and distributions
****************************************************************************/
/* all lambda_k > 0
* all q_k are probabilities, \sum_k q_k = 1 [watch out for q_k=0 in log(q_k)].
@@ -404,7 +426,7 @@ esl_hxp_invcdf(double p, ESL_HYPEREXP *h)
/****************************************************************************
- * Generic API routines: for general interface w/ histogram module
+ * 3. Generic API routines: for general interface w/ histogram module
****************************************************************************/
/* Function: esl_hxp_generic_pdf()
@@ -458,7 +480,7 @@ esl_hxp_generic_invcdf(double p, void *params)
/****************************************************************************
- * Routines for dumping plots for files
+ * 4. Dumping plots for files
****************************************************************************/
/* Function: esl_hxp_Plot()
@@ -490,7 +512,7 @@ esl_hxp_Plot(FILE *fp, ESL_HYPEREXP *h,
/****************************************************************************
- * Routines for sampling (requires augmentation w/ random module)
+ * 5. Sampling (requires augmentation w/ random module)
****************************************************************************/
#ifdef eslAUGMENT_RANDOM
/* Function: esl_hxp_Sample()
@@ -511,7 +533,7 @@ esl_hxp_Sample(ESL_RANDOMNESS *r, ESL_HYPEREXP *h)
/****************************************************************************
- * File input (mixture models are a little too complex to set on commandline)
+ * 6. File input (mixture models are a little too complex to set on commandline)
****************************************************************************/
#ifdef eslAUGMENT_FILEPARSER
/* Function: esl_hyperexp_Read()
@@ -649,7 +671,7 @@ esl_hyperexp_ReadFile(char *filename, ESL_HYPEREXP **ret_hxp)
/****************************************************************************
- * Maximum likelihood fitting, complete unbinned data
+ * 7. ML fitting to complete data
****************************************************************************/
#ifdef eslAUGMENT_MINIMIZER
/* This structure is used to sneak the data into minimizer's generic
@@ -909,7 +931,7 @@ esl_hxp_FitComplete(double *x, int n, ESL_HYPEREXP *h)
/****************************************************************************
- * Maximum likelihood fitting, complete binned data xref STL9/143-144
+ * 8. Maximum likelihood fitting, complete binned data xref STL9/143-144
****************************************************************************/
#ifdef eslAUGMENT_HISTOGRAM
/* minimizer API only allows us one generic void ptr to pass
@@ -1137,81 +1159,11 @@ esl_hxp_FitCompleteBinned(ESL_HISTOGRAM *g, ESL_HYPEREXP *h)
-/****************************************************************************
- * Example main()
- ****************************************************************************/
-#ifdef eslHYPEREXP_EXAMPLE
-/*::cexcerpt::hyperexp_example::begin::*/
-/* compile:
- gcc -g -Wall -I. -o example -DeslHYPEREXP_EXAMPLE\
- -DeslAUGMENT_HISTOGRAM -DeslAUGMENT_RANDOM -DeslAUGMENT_MINIMIZER\
- esl_hyperexp.c esl_exponential.c esl_histogram.c esl_random.c esl_minimizer.c\
- esl_stats.c esl_vectorops.c easel.c -lm
- * run: ./example
- */
-#include <stdio.h>
-#include "easel.h"
-#include "esl_random.h"
-#include "esl_histogram.h"
-#include "esl_hyperexp.h"
-
-int
-main(int argc, char **argv)
-{
- ESL_RANDOMNESS *r; /* source of random numbers */
- ESL_HISTOGRAM *h; /* histogram to store the data */
- ESL_HYPEREXP *hxp; /* hyperexponential to sample from */
- ESL_HYPEREXP *ehxp; /* estimated hyperexponential */
- double x; /* sampled data point */
- int n = 100000; /* number of samples */
- double *data;
- int ndata;
- int i;
-
- hxp = esl_hyperexp_Create(3);
- hxp->mu = -2.0;
- hxp->q[0] = 0.6; hxp->q[1] = 0.3; hxp->q[2] = 0.1;
- hxp->lambda[0] = 1.0; hxp->lambda[1] = 0.3; hxp->lambda[2] = 0.1;
-
- r = esl_randomness_Create(0);
- h = esl_histogram_CreateFull(hxp->mu, 100, 1.0);
-
- for (i = 0; i < n; i++)
- {
- x = esl_hxp_Sample(r, hxp);
- esl_histogram_Add(h, x);
- }
- esl_histogram_GetData(h, &data, &ndata);
-
- /* Plot the empirical (sampled) and expected survivals */
- esl_histogram_PlotSurvival(stdout, h);
- esl_hxp_Plot(stdout, hxp, &esl_hxp_surv, h->xmin, h->xmax, 0.1);
-
- /* ML fit to complete data, and plot fitted survival curve */
- ehxp = esl_hyperexp_Create(3);
- esl_hxp_FitGuess(data, ndata, ehxp);
- esl_hxp_FitComplete(data, ndata, ehxp);
- esl_hxp_Plot(stdout, ehxp, &esl_hxp_surv, h->xmin, h->xmax, 0.1);
-
- /* ML fit to binned data, plot fitted survival curve */
- esl_hxp_FitGuessBinned(h, ehxp);
- esl_hxp_FitCompleteBinned(h, ehxp);
- esl_hxp_Plot(stdout, ehxp, &esl_hxp_surv, h->xmin, h->xmax, 0.1);
-
- esl_randomness_Destroy(r);
- esl_histogram_Destroy(h);
- esl_hyperexp_Destroy(hxp);
- esl_hyperexp_Destroy(ehxp);
- return 0;
-}
-/*::cexcerpt::hyperexp_example::end::*/
-#endif /*eslHYPEREXP_EXAMPLE*/
-
/****************************************************************************
- * Test driver
+ * 9. Test driver
****************************************************************************/
#ifdef eslHYPEREXP_TESTDRIVE
/* Compile:
@@ -1261,6 +1213,7 @@ main(int argc, char **argv)
int xstep_set = FALSE;
double xstep;
int do_fixmix = FALSE;
+ int status;
for (opti = 1; opti < argc && *(argv[opti]) == '-'; opti++)
{
@@ -1279,11 +1232,16 @@ main(int argc, char **argv)
else if (strcmp(argv[opti], "-XL") == 0) { xmin_set = TRUE; xmin = atof(argv[++opti]); }
else if (strcmp(argv[opti], "-XH") == 0) { xmax_set = TRUE; xmax = atof(argv[++opti]); }
else if (strcmp(argv[opti], "-XS") == 0) { xstep_set = TRUE; xstep = atof(argv[++opti]); }
- else ESL_EXCEPTION(eslEINVAL, "bad option");
+ else esl_fatal("bad option");
}
if (paramfile != NULL)
- esl_hyperexp_ReadFile(paramfile, &hxp);
+ {
+ status = esl_hyperexp_ReadFile(paramfile, &hxp);
+ if (status == eslENOTFOUND) esl_fatal("Param file %s not found", paramfile);
+ else if (status == eslEFORMAT) esl_fatal("Parse failed: param file %s invalid format", paramfile);
+ else if (status != eslOK) esl_fatal("Unusual failure opening param file %s", paramfile);
+ }
else
{
hxp = esl_hyperexp_Create(3);
@@ -1299,7 +1257,7 @@ main(int argc, char **argv)
h = esl_histogram_CreateFull(hxp->mu, 100., binwidth);
if (plotfile != NULL) {
if ((pfp = fopen(plotfile, "w")) == NULL)
- ESL_EXCEPTION(eslFAIL, "Failed to open plotfile");
+ esl_fatal("Failed to open plotfile");
}
if (! xmin_set) xmin = hxp->mu;
if (! xmax_set) xmax = hxp->mu+ 20*(1. / esl_vec_DMin(hxp->lambda, hxp->K));
@@ -1316,12 +1274,12 @@ main(int argc, char **argv)
ehxp = esl_hyperexp_Create(hxp->K);
if (do_fixmix) esl_hyperexp_FixedUniformMixture(ehxp);
esl_hxp_FitGuess(data, ndata, ehxp);
- esl_hxp_FitComplete(data, ndata, ehxp);
+ if ( esl_hxp_FitComplete(data, ndata, ehxp) != eslOK) esl_fatal("Failed to fit hyperexponential");
if (be_verbose) esl_hyperexp_Dump(stdout, ehxp);
if (fabs( (ehxp->mu-hxp->mu)/hxp->mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted mu > 1%\n");
+ esl_fatal("Error in (complete) fitted mu > 1%\n");
for (ek = 0; ek < ehxp->K; ek++)
{ /* try to match each estimated lambda up to a parametric lambda */
mindiff = 1.0;
@@ -1335,17 +1293,17 @@ main(int argc, char **argv)
}
}
if (mindiff > 0.50)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted lambda > 50%\n");
+ esl_fatal("Error in (complete) fitted lambda > 50%\n");
if (fabs( (ehxp->q[ek] - hxp->q[mink]) / hxp->q[mink]) > 1.0)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted q > 2-fold%\n");
+ esl_fatal("Error in (complete) fitted q > 2-fold%\n");
}
esl_hxp_FitGuessBinned(h, ehxp);
- esl_hxp_FitCompleteBinned(h, ehxp);
+ if ( esl_hxp_FitCompleteBinned(h, ehxp) != eslOK) esl_fatal("Failed to fit binned hyperexponential");
if (be_verbose) esl_hyperexp_Dump(stdout, ehxp);
if (fabs( (ehxp->mu-hxp->mu)/hxp->mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted mu > 1%\n");
+ esl_fatal("Error in (binned) fitted mu > 1%\n");
for (ek = 0; ek < ehxp->K; ek++)
{ /* try to match each estimated lambda up to a parametric lambda */
mindiff = 1.0;
@@ -1359,9 +1317,9 @@ main(int argc, char **argv)
}
}
if (mindiff > 0.50)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 50%\n");
+ esl_fatal("Error in (binned) fitted lambda > 50%\n");
if (fabs( (ehxp->q[ek] - hxp->q[mink]) / hxp->q[mink]) > 1.0)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted q > 2-fold\n");
+ esl_fatal("Error in (binned) fitted q > 2-fold\n");
}
if (plot_pdf) esl_hxp_Plot(pfp, hxp, &esl_hxp_pdf, xmin, xmax, xstep);
@@ -1380,17 +1338,87 @@ main(int argc, char **argv)
}
#endif /*eslHYPEREXP_TESTDRIVE*/
+/****************************************************************************
+ * Example main()
+ ****************************************************************************/
+#ifdef eslHYPEREXP_EXAMPLE
+/*::cexcerpt::hyperexp_example::begin::*/
+/* compile:
+ gcc -g -Wall -I. -o example -DeslHYPEREXP_EXAMPLE\
+ -DeslAUGMENT_HISTOGRAM -DeslAUGMENT_RANDOM -DeslAUGMENT_MINIMIZER\
+ esl_hyperexp.c esl_exponential.c esl_histogram.c esl_random.c esl_minimizer.c\
+ esl_stats.c esl_vectorops.c easel.c -lm
+ * run: ./example
+ */
+#include <stdio.h>
+#include "easel.h"
+#include "esl_random.h"
+#include "esl_histogram.h"
+#include "esl_hyperexp.h"
+
+int
+main(int argc, char **argv)
+{
+ ESL_RANDOMNESS *r; /* source of random numbers */
+ ESL_HISTOGRAM *h; /* histogram to store the data */
+ ESL_HYPEREXP *hxp; /* hyperexponential to sample from */
+ ESL_HYPEREXP *ehxp; /* estimated hyperexponential */
+ double x; /* sampled data point */
+ int n = 100000; /* number of samples */
+ double *data;
+ int ndata;
+ int i;
+
+ hxp = esl_hyperexp_Create(3);
+ hxp->mu = -2.0;
+ hxp->q[0] = 0.6; hxp->q[1] = 0.3; hxp->q[2] = 0.1;
+ hxp->lambda[0] = 1.0; hxp->lambda[1] = 0.3; hxp->lambda[2] = 0.1;
+
+ r = esl_randomness_Create(0);
+ h = esl_histogram_CreateFull(hxp->mu, 100, 1.0);
+
+ for (i = 0; i < n; i++)
+ {
+ x = esl_hxp_Sample(r, hxp);
+ esl_histogram_Add(h, x);
+ }
+ esl_histogram_GetData(h, &data, &ndata);
+
+ /* Plot the empirical (sampled) and expected survivals */
+ esl_histogram_PlotSurvival(stdout, h);
+ esl_hxp_Plot(stdout, hxp, &esl_hxp_surv, h->xmin, h->xmax, 0.1);
+
+ /* ML fit to complete data, and plot fitted survival curve */
+ ehxp = esl_hyperexp_Create(3);
+ esl_hxp_FitGuess(data, ndata, ehxp);
+ esl_hxp_FitComplete(data, ndata, ehxp);
+ esl_hxp_Plot(stdout, ehxp, &esl_hxp_surv, h->xmin, h->xmax, 0.1);
+
+ /* ML fit to binned data, plot fitted survival curve */
+ esl_hxp_FitGuessBinned(h, ehxp);
+ esl_hxp_FitCompleteBinned(h, ehxp);
+ esl_hxp_Plot(stdout, ehxp, &esl_hxp_surv, h->xmin, h->xmax, 0.1);
+
+ esl_randomness_Destroy(r);
+ esl_histogram_Destroy(h);
+ esl_hyperexp_Destroy(hxp);
+ esl_hyperexp_Destroy(ehxp);
+ return 0;
+}
+/*::cexcerpt::hyperexp_example::end::*/
+#endif /*eslHYPEREXP_EXAMPLE*/
+
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_hyperexp.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_hyperexp.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
-/* xref STL9/140 */
+
diff --git a/easel/esl_hyperexp.h b/easel/esl_hyperexp.h
index 0c0c110..05b26d0 100644
--- a/easel/esl_hyperexp.h
+++ b/easel/esl_hyperexp.h
@@ -69,13 +69,13 @@ extern int esl_hxp_FitCompleteBinned(ESL_HISTOGRAM *g, ESL_HYPEREXP *h);
#endif /*eslHYPEREXP_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_hyperexp.h 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_hyperexp.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_keyhash.c b/easel/esl_keyhash.c
index 85c28fb..42d0276 100644
--- a/easel/esl_keyhash.c
+++ b/easel/esl_keyhash.c
@@ -847,13 +847,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_keyhash.c 729 2011-11-02 12:46:42Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_keyhash.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_keyhash.h b/easel/esl_keyhash.h
index e93cd54..5ab2daf 100644
--- a/easel/esl_keyhash.h
+++ b/easel/esl_keyhash.h
@@ -61,10 +61,10 @@ extern int esl_keyhash_Lookup(const ESL_KEYHASH *kh, const char *key, esl_pos_t
#endif /* eslKEYHASH_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_keyhash.tex b/easel/esl_keyhash.tex
index 98bdcb1..8fc9560 100644
--- a/easel/esl_keyhash.tex
+++ b/easel/esl_keyhash.tex
@@ -22,8 +22,8 @@ Table~\ref{tbl:keyhash_api} lists the functions in the
\hyperlink{func:esl_keyhash_Destroy()}{\ccode{esl\_keyhash\_Destroy()}} & Frees a keyhash.\\
\hyperlink{func:esl_keyhash_Dump()}{\ccode{esl\_keyhash\_Dump()}} & Dumps debugging information about a keyhash.\\
\apisubhead{Storing and retrieving keys }\\
-\hyperlink{func:esl_key_Store()}{\ccode{esl\_key\_Store()}} & Store a key and get a key index for it.\\
-\hyperlink{func:esl_key_Lookup()}{\ccode{esl\_key\_Lookup()}} & Look up a key's array index.\\
+\hyperlink{func:esl_keyhash_Store()}{\ccode{esl\_key\_Store()}} & Store a key and get a key index for it.\\
+\hyperlink{func:esl_keyhash_Lookup()}{\ccode{esl\_key\_Lookup()}} & Look up a key's array index.\\
\hline
\end{tabular}
}
diff --git a/easel/esl_mem.c b/easel/esl_mem.c
index 211ecf8..b471770 100644
--- a/easel/esl_mem.c
+++ b/easel/esl_mem.c
@@ -405,7 +405,7 @@ esl_memstrdup(const char *p, esl_pos_t n, char **ret_s)
*
* Purpose: Given memory line <p> of length <n>, copy
* it to <dest> and NUL-terminate it. Caller must
- * be sure that <s> is already allocated for
+ * be sure that <dest> is already allocated for
* at least <n+1> bytes.
*
* Returns: <eslOK> on success.
@@ -451,7 +451,7 @@ esl_memtod(const char *p, esl_pos_t n, double *ret_val)
ESL_ALLOC(bigbuf, sizeof(char) * (n+1));
memcpy(bigbuf, p, sizeof(char) * n);
bigbuf[n] = '\0';
- *ret_val = strtod(fixedbuf, NULL);
+ *ret_val = strtod(bigbuf, NULL);
free(bigbuf);
return eslOK;
}
@@ -492,7 +492,7 @@ esl_memtof(const char *p, esl_pos_t n, float *ret_val)
ESL_ALLOC(bigbuf, sizeof(char) * (n+1));
memcpy(bigbuf, p, sizeof(char) * n);
bigbuf[n] = '\0';
- *ret_val = (float) strtod(fixedbuf, NULL);
+ *ret_val = (float) strtod(bigbuf, NULL);
free(bigbuf);
return eslOK;
}
@@ -817,15 +817,15 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_mem.c 766 2012-06-04 13:11:51Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_mem.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_mem.h b/easel/esl_mem.h
index 3e351b6..a54341e 100644
--- a/easel/esl_mem.h
+++ b/easel/esl_mem.h
@@ -23,11 +23,11 @@ extern int esl_mem_IsReal(const char *p, esl_pos_t n);
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_minimizer.c b/easel/esl_minimizer.c
index 9c3c2de..5c93a73 100644
--- a/easel/esl_minimizer.c
+++ b/easel/esl_minimizer.c
@@ -292,7 +292,7 @@ brent(double *ori, double *dir, int n,
esl_vec_DAddScaled(xvec, dir, x, n);
fx=fv=fw = (*func)(xvec, n, prm); /* initial function evaluation */
- e = 0.;
+ d = e = 0.;
niter = 0;
while (1) /* algorithm is guaranteed to converge. */
{
@@ -434,12 +434,10 @@ esl_min_ConjugateGradientDescent(double *x, double *u, int n,
oldfx = (*func)(x, n, prm); /* init the objective function */
- /* Bail out if the function is +/-inf: this can happen if the caller
+ /* Bail out if the function is +/-inf or nan: this can happen if the caller
* has screwed something up, or has chosen a bad start point.
*/
- if (oldfx == eslINFINITY || oldfx == -eslINFINITY)
- ESL_EXCEPTION(eslERANGE, "minimum not finite");
-
+ if (! isfinite(oldfx)) ESL_EXCEPTION(eslERANGE, "minimum not finite");
if (dfunc != NULL)
{
@@ -650,13 +648,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_minimizer.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_minimizer.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_minimizer.h b/easel/esl_minimizer.h
index 9ccfaa9..2ab3643 100644
--- a/easel/esl_minimizer.h
+++ b/easel/esl_minimizer.h
@@ -1,8 +1,8 @@
/* Multidimensional optimization by conjugate gradient descent.
*
* SRE, Wed Jun 22 09:53:05 2005
- * SVN $Id: esl_minimizer.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_minimizer.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslMINIMIZER_INCLUDED
#define eslMINIMIZER_INCLUDED
@@ -26,10 +26,10 @@ extern int esl_min_ConjugateGradientDescent(double *x, double *u, int n,
#endif /*eslMINIMIZER_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_mixgev.c b/easel/esl_mixgev.c
index 90aee5b..3637a18 100644
--- a/easel/esl_mixgev.c
+++ b/easel/esl_mixgev.c
@@ -1,8 +1,23 @@
-/* esl_mixgev.c
- * Statistical routines for mixtures of generalized extreme value
- * distributions.
+/* Statistical routines for mixtures of generalized extreme value distributions.
*
- * xref SRE:STL9/139
+ * Contents:
+ * 1. The ESL_MIXGEV object
+ * 2. Evaluating densities and distributions
+ * 3. Generic API routines: for general interface w/ histogram module
+ * 4. Dumping plots to xmgrace XY format
+ * 5. Sampling (augmentation: random)
+ * 6. ML fitting to complete data (augmentation: minimizer)
+ * 7. Example
+ * 8. Copyright and license information
+ *
+ * Xrefs:
+ * SRE:STL9/139 original implementation
+ *
+ * To-do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:02:14 2013
+ *
*/
#include "esl_config.h"
@@ -27,7 +42,7 @@
/****************************************************************************
- * Routines for the ESL_MIXGEV object
+ * 1. The ESL_MIXGEV object
****************************************************************************/
/* Function: esl_mixgev_Create()
@@ -170,7 +185,7 @@ esl_mixgev_ForceGumbel(ESL_MIXGEV *mg, int which)
/****************************************************************************
- * Routines for evaluating densities and distributions
+ * 2. Evaluating densities and distributions
****************************************************************************/
/* Function: esl_mixgev_pdf()
@@ -326,7 +341,7 @@ esl_mixgev_invcdf(double p, ESL_MIXGEV *mg)
/****************************************************************************
- * Generic API routines: for general interface w/ histogram module
+ * 3. Generic API routines: for general interface w/ histogram module
****************************************************************************/
/* Function: esl_mixgev_generic_pdf()
@@ -382,7 +397,7 @@ esl_mixgev_generic_invcdf(double p, void *params)
/****************************************************************************
- * Routines for dumping plots to xmgrace XY format
+ * 4. Dumping plots to xmgrace XY format
****************************************************************************/
/* Function: esl_mixgev_Plot()
@@ -414,7 +429,7 @@ esl_mixgev_Plot(FILE *fp, ESL_MIXGEV *mg,
/****************************************************************************
- * Routines for sampling (requires augmentation w/ random module)
+ * 5. Sampling (requires augmentation w/ random module)
****************************************************************************/
#ifdef eslAUGMENT_RANDOM
@@ -440,7 +455,7 @@ esl_mixgev_Sample(ESL_RANDOMNESS *r, ESL_MIXGEV *mg)
/****************************************************************************
- * Maximum likelihood fitting to mixture GEV distributions
+ * 6. ML fitting to complete data (augmentation: minimizer)
****************************************************************************/
#ifdef eslAUGMENT_MINIMIZER
@@ -813,13 +828,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_mixgev.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_mixgev.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_mixgev.h b/easel/esl_mixgev.h
index 5785782..8db3a29 100644
--- a/easel/esl_mixgev.h
+++ b/easel/esl_mixgev.h
@@ -1,8 +1,8 @@
/* Mixture generalized extreme value distributions.
*
* SRE, Mon Aug 15 08:33:57 2005 [St. Louis]
- * SVN $Id: esl_mixgev.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_mixgev.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslMIXGEV_INCLUDED
#define eslMIXGEV_INCLUDED
@@ -60,10 +60,10 @@ extern int esl_mixgev_FitComplete(double *x, int n, ESL_MIXGEV *mg);
#endif /*eslMIXGEV_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_mpi.c b/easel/esl_mpi.c
index 23c1c76..146986b 100644
--- a/easel/esl_mpi.c
+++ b/easel/esl_mpi.c
@@ -288,23 +288,34 @@ esl_sq_MPIPackSize(ESL_SQ *sq, MPI_Comm comm, int *ret_n)
{
int status;
int n = 0;
+ int x; /* index for optional extra residue markups */
int sz;
- status = MPI_Pack_size ( 1, MPI_INT, comm, &sz); n += 4*sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = MPI_Pack_size ( 1, MPI_UNSIGNED_LONG, comm, &sz); n += 7*sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = MPI_Pack_size ( sq->nalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = MPI_Pack_size ( sq->aalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = MPI_Pack_size ( sq->dalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = MPI_Pack_size ( sq->srcalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = MPI_Pack_size ( 1, MPI_INT, comm, &sz); n += 5*sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = MPI_Pack_size ( 1, MPI_UNSIGNED_LONG, comm, &sz); n += 7*sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = MPI_Pack_size ( sq->nalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = MPI_Pack_size ( sq->aalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = MPI_Pack_size ( sq->dalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = MPI_Pack_size ( sq->srcalloc, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- /* sequence, digital or text; the ss is optional */
+ /* sequence, digital or text; the ss and extra residue markups are optional */
if (sq->dsq != NULL) {
- status = MPI_Pack_size ( sq->n+2, MPI_UNSIGNED_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = esl_mpi_PackOptSize(sq->ss, sq->n+2, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ status = MPI_Pack_size ( sq->n+2, MPI_UNSIGNED_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = esl_mpi_PackOptSize(sq->ss, sq->n+2, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ for (x = 0; x < sq->nxr; x ++) {
+ status = esl_mpi_PackOptSize(sq->xr_tag[x], sq->nalloc, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ status = esl_mpi_PackOptSize(sq->xr[x], sq->n+2, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ }
+
}
else {
- status = MPI_Pack_size ( sq->n+1, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
- status = esl_mpi_PackOptSize(sq->ss, sq->n+1, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ status = MPI_Pack_size ( sq->n+1, MPI_CHAR, comm, &sz); n += sz; if (status != 0) ESL_XEXCEPTION(eslESYS, "pack size failed");
+ status = esl_mpi_PackOptSize(sq->ss, sq->n+1, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ for (x = 0; x < sq->nxr; x ++) {
+ status = esl_mpi_PackOptSize(sq->xr_tag[x], sq->nalloc, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ status = esl_mpi_PackOptSize(sq->xr[x], sq->n+1, MPI_CHAR, comm, &sz); n += sz; if (status != eslOK) goto ERROR;
+ }
+
}
*ret_n = n;
@@ -350,6 +361,7 @@ esl_sq_MPIPack(ESL_SQ *sq, char *buf, int n, int *pos, MPI_Comm comm)
unsigned long int W;
unsigned long int L;
unsigned long int salloc;
+ int x; /* index for optional extra residue markups */
int status;
sq_n = (unsigned long int)sq->n;
@@ -359,12 +371,13 @@ esl_sq_MPIPack(ESL_SQ *sq, char *buf, int n, int *pos, MPI_Comm comm)
W = (unsigned long int)sq->W;
L = (unsigned long int)sq->L;
salloc = (unsigned long int)sq->salloc;
-
+
/* pack allocation values */
status = MPI_Pack (( int *) &(sq->nalloc), 1, MPI_INT, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = MPI_Pack (( int *) &(sq->aalloc), 1, MPI_INT, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = MPI_Pack (( int *) &(sq->dalloc), 1, MPI_INT, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = MPI_Pack (( int *) &(sq->srcalloc), 1, MPI_INT, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
+ status = MPI_Pack (( int *) &(sq->nxr), 1, MPI_INT, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = MPI_Pack ((unsigned long int *) &( salloc), 1, MPI_UNSIGNED_LONG, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
/* pack coordenate info */
@@ -381,14 +394,22 @@ esl_sq_MPIPack(ESL_SQ *sq, char *buf, int n, int *pos, MPI_Comm comm)
status = MPI_Pack (sq->desc, sq->dalloc, MPI_CHAR, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = MPI_Pack (sq->source, sq->srcalloc, MPI_CHAR, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
- /* sequences, digital or text; the ss is optional*/
+ /* sequences, digital or text; the ss and extra residue markups are optional */
if (sq->dsq != NULL) {
status = MPI_Pack (sq->dsq, sq->n+2, MPI_UNSIGNED_CHAR, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = esl_mpi_PackOpt(sq->ss, sq->n+2, MPI_CHAR, buf, n, pos, comm); if (status != eslOK) return status;
+ for (x = 0; x < sq->nxr; x ++) {
+ status = esl_mpi_PackOpt(sq->xr_tag[x], sq->nalloc, MPI_CHAR, buf, n, pos, comm); if (status != eslOK) return status;
+ status = esl_mpi_PackOpt(sq->xr[x], sq->n+2, MPI_CHAR, buf, n, pos, comm); if (status != eslOK) return status;
+ }
}
else {
status = MPI_Pack (sq->seq, sq->n+1, MPI_CHAR, buf, n, pos, comm); if (status != 0) ESL_EXCEPTION(eslESYS, "pack failed");
status = esl_mpi_PackOpt(sq->ss, sq->n+1, MPI_CHAR, buf, n, pos, comm); if (status != eslOK) return status;
+ for (x = 0; x < sq->nxr; x ++) {
+ status = esl_mpi_PackOpt(sq->xr_tag[x], sq->nalloc, MPI_CHAR, buf, n, pos, comm); if (status != eslOK) return status;
+ status = esl_mpi_PackOpt(sq->xr[x], sq->n+1, MPI_CHAR, buf, n, pos, comm); if (status != eslOK) return status;
+ }
}
if (*pos > n) ESL_EXCEPTION(eslEMEM, "buffer overflow");
@@ -427,6 +448,7 @@ esl_sq_MPIUnpack(const ESL_ALPHABET *abc, char *buf, int n, int *pos, MPI_Comm c
unsigned long int W;
unsigned long int L;
unsigned long int salloc;
+ int x; /* index for optional extra residue markups */
int do_digital = FALSE;
int status;
@@ -440,6 +462,7 @@ esl_sq_MPIUnpack(const ESL_ALPHABET *abc, char *buf, int n, int *pos, MPI_Comm c
status = MPI_Unpack(buf, n, pos, &(sq->aalloc), 1, MPI_INT, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
status = MPI_Unpack(buf, n, pos, &(sq->dalloc), 1, MPI_INT, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
status = MPI_Unpack(buf, n, pos, &(sq->srcalloc), 1, MPI_INT, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ status = MPI_Unpack(buf, n, pos, &(sq->nxr), 1, MPI_INT, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
status = MPI_Unpack(buf, n, pos, &(salloc), 1, MPI_UNSIGNED_LONG, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
/* unpack coordenate info */
@@ -465,7 +488,9 @@ esl_sq_MPIUnpack(const ESL_ALPHABET *abc, char *buf, int n, int *pos, MPI_Comm c
sq->source = NULL; ESL_ALLOC(sq->source, sizeof(char) * sq->srcalloc);
sq->seq = NULL; if (!do_digital) ESL_ALLOC(sq->seq, sizeof(char) * sq->salloc);
sq->dsq = NULL; if ( do_digital) ESL_ALLOC(sq->dsq, sizeof(ESL_DSQ) * sq->salloc);
- sq->ss = NULL; /* ss is optional - it will only be allocated if needed */
+ sq->ss = NULL; /* ss and extra residue markups are optional - they will only be allocated if needed */
+ sq->xr_tag = NULL;
+ sq->xr = NULL;
/* unpack strings */
status = MPI_Unpack (buf, n, pos, sq->name, sq->nalloc, MPI_CHAR, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
@@ -479,10 +504,22 @@ esl_sq_MPIUnpack(const ESL_ALPHABET *abc, char *buf, int n, int *pos, MPI_Comm c
else {
status = MPI_Unpack (buf, n, pos, sq->seq, sq->n+1, MPI_CHAR, comm); if (status != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
}
-
+
/* unpack the optional ss */
status = esl_mpi_UnpackOpt(buf, n, pos, (void **) &(sq->ss), NULL, MPI_CHAR, comm); if (status != eslOK) goto ERROR;
-
+
+ /* unpack the optional extra residue markups */
+ if (sq->nxr > 0) {
+ ESL_ALLOC(sq->xr, sizeof(char *) * sq->nxr);
+ ESL_ALLOC(sq->xr_tag, sizeof(char *) * sq->nxr);
+ for (x = 0; x < sq->nxr; x ++) {
+ sq->xr[x] = NULL;
+ sq->xr_tag[x] = NULL;
+ status = esl_mpi_UnpackOpt(buf, n, pos, (void **) &(sq->xr_tag[x]), NULL, MPI_CHAR, comm); if (status != eslOK) goto ERROR;
+ status = esl_mpi_UnpackOpt(buf, n, pos, (void **) &(sq->xr[x]), NULL, MPI_CHAR, comm); if (status != eslOK) goto ERROR;
+ }
+ }
+
/* set disk offset bookkeeping */
sq->doff = -1;
sq->roff = -1;
@@ -1117,7 +1154,7 @@ main(int argc, char **argv)
{
ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int do_stall = FALSE;
int my_rank;
@@ -1130,19 +1167,19 @@ main(int argc, char **argv)
/* Get a test MSA and alphabet. */
if (esl_opt_GetString(go, "-m") != NULL)
{
- if (eslx_msafile_Open(&abc, esl_opt_GetString(go, "-m"), eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal("msa file open failed");
- if (eslx_msafile_Read(afp, &msa) != eslOK) esl_fatal("msa read failed");
- eslx_msafile_Close(afp);
+ if (esl_msafile_Open(&abc, esl_opt_GetString(go, "-m"), eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal("msa file open failed");
+ if (esl_msafile_Read(afp, &msa) != eslOK) esl_fatal("msa read failed");
+ esl_msafile_Close(afp);
}
else
{
abc = esl_alphabet_Create(eslAMINO);
- if ( (eslx_msafile_OpenMem(&abc,
+ if ( (esl_msafile_OpenMem(&abc,
"# STOCKHOLM 1.0\n\nNIFE_CLOPA GYVGS\nNIFD_AZOVI GFDGF\nNIFD_BRAJA GYDGF\nNIFK_ANASP GYQGG\n//\n",
-1, eslMSAFILE_STOCKHOLM, NULL, &afp)) != eslOK)
esl_fatal("msa creation failed");
- if (eslx_msafile_Read(afp, &msa) != eslOK) esl_fatal("msa read failed");
- eslx_msafile_Close(afp);
+ if (esl_msafile_Read(afp, &msa) != eslOK) esl_fatal("msa read failed");
+ esl_msafile_Close(afp);
}
@@ -1198,13 +1235,10 @@ int main(void) { return 0; }
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $Id: esl_mpi.c 756 2012-03-23 13:24:47Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_mpi.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_mpi.h b/easel/esl_mpi.h
index d80d1d1..9ac5c10 100644
--- a/easel/esl_mpi.h
+++ b/easel/esl_mpi.h
@@ -1,19 +1,41 @@
/* Support for MPI parallelization.
*
- * SRE, Sat Jun 2 09:07:25 2007 [Janelia]
- * SVN $Id: esl_mpi.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_mpi.h $
*/
#if defined(HAVE_MPI) && defined(eslLIBRARY)
#ifndef eslMPI_INCLUDED
#define eslMPI_INCLUDED
-#include "mpi.h"
+#include <mpi.h>
#include "esl_alphabet.h"
#include "esl_msa.h"
#include "esl_sq.h"
#include "esl_stopwatch.h"
+/* Many MPI implementations are not MPI2.2 compliant, and do not
+ * support new MPI2.2 datatypes; work around that absence. [J10/152]
+ * This configuration is better here than esl_config.h.in, because
+ * we need to #include <mpi.h> first to see if the system MPI does
+ * the right thing, and esl_config.h.in is intended to be included
+ * BEFORE any system includes.
+ */
+#if MPI_VERSION < 2 || MPI_SUBVERSION < 2
+#ifndef MPI_INT64_T
+#define MPI_INT64_T MPI_LONG_LONG_INT
+#endif
+#ifndef MPI_UINT64_T
+#define MPI_UINT64_T MPI_UNSIGNED_LONG_LONG
+#endif
+#ifndef MPI_UINT32_T
+#define MPI_UINT32_T MPI_UNSIGNED
+#endif
+#ifndef MPI_INT16_T
+#define MPI_INT16_T MPI_SHORT
+#endif
+#ifndef MPI_UINT8_T
+#define MPI_UINT8_T MPI_UNSIGNED_CHAR
+#endif
+#endif /*MPI_VERSION,MPI_SUBVERSION*/
+
/* 1. Communicating optional arrays */
extern int esl_mpi_PackOpt(void *inbuf, int incount, MPI_Datatype type, void *pack_buf,
int pack_buf_size, int *position, MPI_Comm comm);
@@ -45,10 +67,14 @@ extern int esl_stopwatch_MPIReduce(ESL_STOPWATCH *w, int root, MPI_Comm comm);
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SRE, Sat Jun 2 09:07:25 2007 [Janelia]
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_msa.c b/easel/esl_msa.c
index 2853c9e..3e1761c 100644
--- a/easel/esl_msa.c
+++ b/easel/esl_msa.c
@@ -91,8 +91,6 @@ static ESL_MSA *msa_create_mostly(int nseq, int64_t alen);
* Returns: pointer to new MSA object, w/ all values initialized.
*
* Throws: <NULL> on allocation failure.
- *
- * Xref: squid's MSAAlloc()
*/
ESL_MSA *
esl_msa_Create(int nseq, int64_t alen)
@@ -101,6 +99,9 @@ esl_msa_Create(int nseq, int64_t alen)
ESL_MSA *msa;
int i;
+ ESL_DASSERT1(( nseq > 0 ));
+ ESL_DASSERT1(( alen >= -1));
+
msa = msa_create_mostly(nseq, alen); /* aseq is null upon successful return */
if (msa == NULL) return NULL; /* already threw error in msa_create_mostly, so percolate */
@@ -306,29 +307,29 @@ esl_msa_Copy(const ESL_MSA *msa, ESL_MSA *new)
esl_strdup(msa->mm, -1, &(new->mm));
if (msa->sqacc != NULL) {
- ESL_ALLOC(new->sqacc, sizeof(char **) * msa->nseq);
- for (i = 0; i < msa->nseq; i++)
- esl_strdup(msa->sqacc[i], -1, &(new->sqacc[i]));
+ ESL_ALLOC(new->sqacc, sizeof(char *) * new->sqalloc);
+ for (i = 0; i < msa->nseq; i++) esl_strdup(msa->sqacc[i], -1, &(new->sqacc[i]));
+ for ( ; i < new->sqalloc; i++) new->sqacc[i] = NULL;
}
if (msa->sqdesc != NULL) {
- ESL_ALLOC(new->sqdesc, sizeof(char **) * msa->nseq);
- for (i = 0; i < msa->nseq; i++)
- esl_strdup(msa->sqdesc[i], -1, &(new->sqdesc[i]));
+ ESL_ALLOC(new->sqdesc, sizeof(char *) * new->sqalloc);
+ for (i = 0; i < msa->nseq; i++) esl_strdup(msa->sqdesc[i], -1, &(new->sqdesc[i]));
+ for ( ; i < new->sqalloc; i++) new->sqdesc[i] = NULL;
}
if (msa->ss != NULL) {
- ESL_ALLOC(new->ss, sizeof(char **) * msa->nseq);
- for (i = 0; i < msa->nseq; i++)
- esl_strdup(msa->ss[i], -1, &(new->ss[i]));
+ ESL_ALLOC(new->ss, sizeof(char *) * new->sqalloc);
+ for (i = 0; i < msa->nseq; i++) esl_strdup(msa->ss[i], -1, &(new->ss[i]));
+ for ( ; i < new->sqalloc; i++) new->ss[i] = NULL;
}
if (msa->sa != NULL) {
- ESL_ALLOC(new->sa, sizeof(char **) * msa->nseq);
- for (i = 0; i < msa->nseq; i++)
- esl_strdup(msa->sa[i], -1, &(new->sa[i]));
+ ESL_ALLOC(new->sa, sizeof(char *) * msa->nseq);
+ for (i = 0; i < msa->nseq; i++) esl_strdup(msa->sa[i], -1, &(new->sa[i]));
+ for ( ; i < new->sqalloc; i++) new->sa[i] = NULL;
}
if (msa->pp != NULL) {
- ESL_ALLOC(new->pp, sizeof(char **) * msa->nseq);
- for (i = 0; i < msa->nseq; i++)
- esl_strdup(msa->pp[i], -1, &(new->pp[i]));
+ ESL_ALLOC(new->pp, sizeof(char *) * msa->nseq);
+ for (i = 0; i < msa->nseq; i++) esl_strdup(msa->pp[i], -1, &(new->pp[i]));
+ for ( ; i < new->sqalloc; i++) new->pp[i] = NULL;
}
for (x = 0; x < eslMSA_NCUTS; x++) {
@@ -337,7 +338,7 @@ esl_msa_Copy(const ESL_MSA *msa, ESL_MSA *new)
}
if (msa->ncomment > 0) {
- ESL_ALLOC(new->comment, sizeof(char **) * msa->ncomment);
+ ESL_ALLOC(new->comment, sizeof(char *) * msa->ncomment);
new->ncomment = msa->ncomment;
new->alloc_ncomment = msa->ncomment;
for (i = 0; i < msa->ncomment; i++)
@@ -345,8 +346,8 @@ esl_msa_Copy(const ESL_MSA *msa, ESL_MSA *new)
}
if (msa->ngf > 0) {
- ESL_ALLOC(new->gf_tag, sizeof(char **) * msa->ngf);
- ESL_ALLOC(new->gf, sizeof(char **) * msa->ngf);
+ ESL_ALLOC(new->gf_tag, sizeof(char *) * msa->ngf);
+ ESL_ALLOC(new->gf, sizeof(char *) * msa->ngf);
new->ngf = msa->ngf;
new->alloc_ngf = msa->ngf;
for (i = 0; i < msa->ngf; i++) {
@@ -356,11 +357,11 @@ esl_msa_Copy(const ESL_MSA *msa, ESL_MSA *new)
}
if (msa->ngs > 0) {
- ESL_ALLOC(new->gs_tag, sizeof(char **) * msa->ngs);
- ESL_ALLOC(new->gs, sizeof(char ***) * msa->ngs);
+ ESL_ALLOC(new->gs_tag, sizeof(char *) * msa->ngs);
+ ESL_ALLOC(new->gs, sizeof(char **) * msa->ngs);
new->ngs = msa->ngs;
for (i = 0; i < msa->ngs; i++) {
- ESL_ALLOC(new->gs[i], sizeof(char **) * msa->nseq);
+ ESL_ALLOC(new->gs[i], sizeof(char *) * msa->nseq);
esl_strdup(msa->gs_tag[i], -1, &(new->gs_tag[i]));
for (j = 0; j < msa->nseq; j++)
esl_strdup(msa->gs[i][j], -1, &(new->gs[i][j]));
@@ -368,8 +369,8 @@ esl_msa_Copy(const ESL_MSA *msa, ESL_MSA *new)
}
if (msa->ngc > 0) {
- ESL_ALLOC(new->gc_tag, sizeof(char **) * msa->ngc);
- ESL_ALLOC(new->gc, sizeof(char **) * msa->ngc);
+ ESL_ALLOC(new->gc_tag, sizeof(char *) * msa->ngc);
+ ESL_ALLOC(new->gc, sizeof(char *) * msa->ngc);
new->ngc = msa->ngc;
for (i = 0; i < msa->ngc; i++) {
esl_strdup(msa->gc_tag[i], -1, &(new->gc_tag[i]));
@@ -378,11 +379,11 @@ esl_msa_Copy(const ESL_MSA *msa, ESL_MSA *new)
}
if (msa->ngr > 0) {
- ESL_ALLOC(new->gr_tag, sizeof(char **) * msa->ngr);
- ESL_ALLOC(new->gr, sizeof(char ***) * msa->ngr);
+ ESL_ALLOC(new->gr_tag, sizeof(char *) * msa->ngr);
+ ESL_ALLOC(new->gr, sizeof(char **) * msa->ngr);
new->ngr = msa->ngr;
for (i = 0; i < msa->ngr; i++) {
- ESL_ALLOC(new->gr[i], sizeof(char **) * msa->nseq);
+ ESL_ALLOC(new->gr[i], sizeof(char *) * msa->nseq);
esl_strdup(msa->gr_tag[i], -1, &(new->gr_tag[i]));
for (j = 0; j < msa->nseq; j++)
esl_strdup(msa->gr[i][j], -1, &(new->gr[i][j]));
@@ -1151,8 +1152,8 @@ esl_msa_SetSeqAccession(ESL_MSA *msa, int idx, const char *s, esl_pos_t n)
if (msa->sqacc && msa->sqacc[idx]) { free(msa->sqacc[idx]); msa->sqacc[idx] = NULL; }
/* erasure case */
- if (! s) {
- for (i = 0; i < msa->sqalloc; i++) if (msa->sqacc[idx]) break;
+ if (! s && msa->sqacc) {
+ for (i = 0; i < msa->sqalloc; i++) if (msa->sqacc[i]) break;
if (i == msa->sqalloc) { free(msa->sqacc); msa->sqacc = NULL; }
return eslOK;
}
@@ -1202,9 +1203,9 @@ esl_msa_SetSeqDescription(ESL_MSA *msa, int idx, const char *s, esl_pos_t n)
if (msa->sqdesc && msa->sqdesc[idx]) { free(msa->sqdesc[idx]); msa->sqdesc[idx] = NULL; }
- /* erasure case */
- if (! s) {
- for (i = 0; i < msa->sqalloc; i++) if (msa->sqdesc[idx]) break;
+ /* erasure case. If we just freed the only description, free the entire optional <sqdesc> array */
+ if (! s && msa->sqdesc) {
+ for (i = 0; i < msa->sqalloc; i++) if (msa->sqdesc[i]) break;
if (i == msa->sqalloc) { free(msa->sqdesc); msa->sqdesc = NULL; }
return eslOK;
}
@@ -1717,8 +1718,8 @@ esl_msa_AppendGC(ESL_MSA *msa, char *tag, char *value)
#else
tagidx = 0;
#endif
- ESL_ALLOC(msa->gc_tag, sizeof(char **));
- ESL_ALLOC(msa->gc, sizeof(char **));
+ ESL_ALLOC(msa->gc_tag, sizeof(char *));
+ ESL_ALLOC(msa->gc, sizeof(char *));
msa->gc[0] = NULL;
}
else
@@ -1962,20 +1963,22 @@ msa_set_seq_pp(ESL_MSA *msa, int seqidx, const char *pp)
static int64_t msa_get_rlen(const ESL_MSA *msa, int seqidx);
+
/* Function: esl_msa_ReasonableRF()
* Synopsis: Determine a reasonable #=RF line marking "consensus" columns.
*
* Purpose: Define an <rfline> for the multiple alignment <msa> that
- * marks consensus columns with an 'x', and non-consensus
- * columns with a '.'.
+ * marks consensus columns with an 'x' (or the consensus
+ * letter if useconsseq is TRUE), and non-consensus columns
+ * with a '.'.
*
* Consensus columns are defined as columns with fractional
* occupancy of $\geq$ <symfrac> in residues. For example,
* if <symfrac> is 0.7, columns containing $\geq$ 70\%
- * residues are assigned as 'x' in the <rfline>, roughly
- * speaking. "Roughly speaking", because the fractional
- * occupancy is in fact calculated as a weighted frequency
- * using sequence weights in <msa->wgt>, and because
+ * residues are assigned as 'x' (or consensus letter) in the
+ * <rfline>, roughly speaking. "Roughly speaking", because the
+ * fractional occupancy is in fact calculated as a weighted
+ * frequency using sequence weights in <msa->wgt>, and because
* missing data symbols are ignored in order to be able to
* deal with sequence fragments.
*
@@ -2002,9 +2005,10 @@ static int64_t msa_get_rlen(const ESL_MSA *msa, int seqidx);
* case, the caller must provide allocated space for at
* least <msa->alen+1> chars.
*
- * Args: msa - MSA to define a consensus RF line for
- * symfrac - threshold for defining consensus columns
- * rfline - RESULT: string containing x for consensus, . for not
+ * Args: msa - MSA to define a consensus RF line for
+ * symfrac - threshold for defining consensus columns
+ * useconsseq - if FALSE, use x for a consensus position; else use the consensus letter
+ * rfline - RESULT: string containing a letter for consensus position, . for not
*
* Returns: <eslOK> on success.
*
@@ -2016,47 +2020,74 @@ static int64_t msa_get_rlen(const ESL_MSA *msa, int seqidx);
* consensus columns when #=RF annotation isn't available.
*/
int
-esl_msa_ReasonableRF(ESL_MSA *msa, double symfrac, char *rfline)
+esl_msa_ReasonableRF(ESL_MSA *msa, double symfrac, int useconsseq, char *rfline)
{
int apos;
int idx;
double r;
double totwgt;
-
+ float *counts = NULL;
+ int status;
+
+ if (useconsseq)
+ ESL_ALLOC(counts, msa->abc->K * sizeof(float));
+
#ifdef eslAUGMENT_ALPHABET
if (msa->flags & eslMSA_DIGITAL)
- {
+ {
+
for (apos = 1; apos <= msa->alen; apos++)
- {
- r = totwgt = 0.;
- for (idx = 0; idx < msa->nseq; idx++)
- {
- if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) { r += msa->wgt[idx]; totwgt += msa->wgt[idx]; }
- else if (esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) { totwgt += msa->wgt[idx]; }
- else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) continue;
- }
- if (r > 0. && r / totwgt >= symfrac) msa->rf[apos-1] = 'x';
- else msa->rf[apos-1] = '.';
- }
- }
+ {
+ r = totwgt = 0.;
+ esl_vec_FSet(counts, msa->abc->K, 0.0);
+ for (idx = 0; idx < msa->nseq; idx++)
+ {
+ if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos]))
+ {
+ r += msa->wgt[idx]; totwgt += msa->wgt[idx];
+ if (useconsseq) esl_abc_FCount(msa->abc, counts, msa->ax[idx][apos], msa->wgt[idx]);
+ }
+ else if (esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) totwgt += msa->wgt[idx];
+ else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) continue;
+ }
+ if (r > 0. && r / totwgt >= symfrac) {
+ if (useconsseq) rfline[apos-1] = msa->abc->sym[esl_vec_FArgMax(counts, msa->abc->K)];
+ else rfline[apos-1] = 'x';
+ }
+ else rfline[apos-1] = '.';
+
+ }
+ }
#endif
if (! (msa->flags & eslMSA_DIGITAL))
- {
+ {
for (apos = 0; apos < msa->alen; apos++)
- {
- r = totwgt = 0.;
- for (idx = 0; idx < msa->nseq; idx++)
- {
- if (isalpha(msa->aseq[idx][apos])) { r += msa->wgt[idx]; totwgt += msa->wgt[idx]; }
- else totwgt += msa->wgt[idx];
- }
- if (r > 0. && r / totwgt >= symfrac) msa->rf[apos] = 'x';
- else msa->rf[apos] = '.';
- }
- }
+ {
+ r = totwgt = 0.;
+ for (idx = 0; idx < msa->nseq; idx++)
+ {
+ if (isalpha(msa->aseq[idx][apos]))
+ {
+ r += msa->wgt[idx]; totwgt += msa->wgt[idx];
+ if (useconsseq) esl_abc_FCount(msa->abc, counts, msa->abc->inmap[ (int) msa->aseq[idx][apos] ], msa->wgt[idx]);
+ }
+ else totwgt += msa->wgt[idx];
+ }
+ if (r > 0. && r / totwgt >= symfrac) {
+ if (useconsseq) rfline[apos-1] = msa->abc->sym[esl_vec_FArgMax(counts, msa->abc->K)];
+ else rfline[apos] = 'x';
+ }
+ else rfline[apos] = '.';
+ }
+ }
- msa->rf[msa->alen] = '\0';
+ rfline[msa->alen] = '\0';
+ if (counts) free(counts);
return eslOK;
+
+ERROR:
+ if (counts) free(counts);
+ return status;
}
@@ -2168,6 +2199,8 @@ esl_msa_SequenceSubset(const ESL_MSA *msa, const int *useme, ESL_MSA **ret_new)
int i;
int status;
+ ESL_DASSERT1(( msa->nseq > 0 ));
+ ESL_DASSERT1(( msa->alen >= 0 )); // This silences static checkers that think msa->alen might be -1.
*ret_new = NULL;
nnew = 0;
@@ -2200,6 +2233,7 @@ esl_msa_SequenceSubset(const ESL_MSA *msa, const int *useme, ESL_MSA **ret_new)
#endif
if (! (msa->flags & eslMSA_DIGITAL))
strcpy(new->aseq[nidx], msa->aseq[oidx]);
+
if ((status = esl_strdup(msa->sqname[oidx], -1, &(new->sqname[nidx]))) != eslOK) goto ERROR;
new->wgt[nidx] = msa->wgt[oidx];
@@ -2283,10 +2317,12 @@ esl_msa_ColumnSubset(ESL_MSA *msa, char *errbuf, const int *useme)
int idx; /* sequence index */
int i; /* markup index */
- /* Remove any basepairs from SS_cons and individual sequence SS
+ /* For RNA/DNA digital alignments only:
+ * Remove any basepairs from SS_cons and individual sequence SS
* for aln columns i,j for which useme[i-1] or useme[j-1] are FALSE
*/
- if ((status = esl_msa_RemoveBrokenBasepairs(msa, errbuf, useme)) != eslOK) return status;
+ if ( msa->abc && (msa->abc->type == eslRNA || msa->abc->type == eslDNA) &&
+ (status = esl_msa_RemoveBrokenBasepairs(msa, errbuf, useme)) != eslOK) return status;
/* Since we're minimizing, we can overwrite in place, within the msa
* we've already got.
@@ -2374,11 +2410,12 @@ esl_msa_MinimGaps(ESL_MSA *msa, char *errbuf, const char *gaps, int consider_rf)
int idx; /* sequence index */
int status;
int rf_is_nongap; /* TRUE if current position is not a gap in msa->rf OR msa->rf is NULL */
- ESL_ALLOC(useme, sizeof(int) * (msa->alen+1)); /* +1 is just to deal w/ alen=0 special case */
#ifdef eslAUGMENT_ALPHABET /* digital mode case */
if (msa->flags & eslMSA_DIGITAL) /* be careful of off-by-one: useme is 0..L-1 indexed */
{
+ ESL_ALLOC(useme, sizeof(int) * (msa->alen+1)); /* +1 is just to deal w/ alen=0 special case */
+
for (apos = 1; apos <= msa->alen; apos++)
{
rf_is_nongap = ((msa->rf != NULL) &&
@@ -2396,35 +2433,90 @@ esl_msa_MinimGaps(ESL_MSA *msa, char *errbuf, const char *gaps, int consider_rf)
if (idx == msa->nseq) useme[apos-1] = FALSE; else useme[apos-1] = TRUE;
}
}
+ if ((status = esl_msa_ColumnSubset(msa, errbuf, useme)) != eslOK) goto ERROR;
}
#endif
if (! (msa->flags & eslMSA_DIGITAL)) /* text mode case */
{
- for (apos = 0; apos < msa->alen; apos++)
- {
- rf_is_nongap = ((msa->rf != NULL) &&
- (strchr(gaps, msa->rf[apos]) == NULL)) ?
- TRUE : FALSE;
- if(rf_is_nongap && consider_rf) { /* RF is not a gap and consider_rf is TRUE, keep this column */
- useme[apos] = TRUE;
- }
- else { /* check all seqs to see if this column is all gaps */
- for (idx = 0; idx < msa->nseq; idx++)
- if (strchr(gaps, msa->aseq[idx][apos]) == NULL)
- break;
- if (idx == msa->nseq) useme[apos] = FALSE; else useme[apos] = TRUE;
- }
+ if ( (status = esl_msa_MinimGapsText(msa, errbuf, gaps, consider_rf, FALSE)) != eslOK) goto ERROR;
+ }
+
+ if (useme) free(useme);
+ return eslOK;
+
+ ERROR:
+ if (useme) free(useme);
+ return status;
+}
+
+/* Function: esl_msa_MinimGapsText()
+ * Synopsis: Remove columns containing all gap symbols, from text mode msa
+ *
+ * Purpose: Same as esl\_msa\_MinimGaps(), but specialized for a text mode
+ * alignment where we don't know the alphabet. The issue is what
+ * to do about RNA secondary structure annotation (SS, SS\_cons)
+ * when we remove columns, which can remove one side of a bp and
+ * invalidate the annotation string. For digital alignments,
+ * <esl_msa_MinimGaps()> knows the alphabet and will fix base pairs
+ * for RNA/DNA alignments. For text mode, though, we have to
+ * get told to do it, because the default behavior for text mode
+ * alis is to assume that the alphabet is totally arbitrary, and we're
+ * not allowed to make assumptions about its symbols' meaning.
+ * Hence, the <fix_bps> flag here.
+ *
+ * Ditto for the <gaps> string: we don't know what symbols
+ * are supposed to be gaps unless we're told something like
+ * <"-_.~">.
+ *
+ * Args: msa - alignment to remove all-gap cols from
+ * errbuf - if non-<NULL>, space for an informative error message on failure
+ * gaps - string of gap characters
+ * consider_rf - if TRUE, also consider gap/nongap cols in RF annotation line
+ * fix_bps - if TRUE, fix any broken bps in SS/SS\_cons annotation lines.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ * Possibilities from <esl_msa_ColumnSubset()> call:
+ * <eslESYNTAX> if WUSS string for <SS_cons> or <msa->ss>
+ * following <esl_wuss_nopseudo()> is inconsistent.
+ * <eslEINVAL> if a derived ct array implies a pknotted SS.
+ */
+int
+esl_msa_MinimGapsText(ESL_MSA *msa, char *errbuf, const char *gaps, int consider_rf, int fix_bps)
+{
+ int *useme = NULL; /* array of TRUE/FALSE flags for which cols to keep */
+ int64_t apos; /* column index */
+ int idx; /* sequence index */
+ int status;
+ int rf_is_nongap; /* TRUE if current position is not a gap in msa->rf OR msa->rf is NULL */
+
+ ESL_ALLOC(useme, sizeof(int) * (msa->alen+1)); /* +1 is just to deal w/ alen=0 special case */
+
+ for (apos = 0; apos < msa->alen; apos++)
+ {
+ rf_is_nongap = ((msa->rf != NULL) && (strchr(gaps, msa->rf[apos]) == NULL)) ? TRUE : FALSE;
+ if (rf_is_nongap && consider_rf) useme[apos] = TRUE; /* RF is not a gap and consider_rf is TRUE, keep this column */
+ else
+ { /* check all seqs to see if this column is all gaps */
+ for (idx = 0; idx < msa->nseq; idx++)
+ if (strchr(gaps, msa->aseq[idx][apos]) == NULL) break;
+ useme[apos] = (idx == msa->nseq ? FALSE : TRUE);
}
}
- if((status = esl_msa_ColumnSubset(msa, errbuf, useme)) != eslOK) return status;
+
+ if (fix_bps && (status = esl_msa_RemoveBrokenBasepairs(msa, errbuf, useme)) != eslOK) goto ERROR;
+ if ( (status = esl_msa_ColumnSubset (msa, errbuf, useme)) != eslOK) goto ERROR;
+
free(useme);
return eslOK;
-
+
ERROR:
- if (useme != NULL) free(useme);
+ if (useme) free(useme);
return status;
}
+
/* Function: esl_msa_NoGaps()
* Synopsis: Remove columns containing any gap symbol.
*
@@ -2466,11 +2558,11 @@ esl_msa_NoGaps(ESL_MSA *msa, char *errbuf, const char *gaps)
int idx; /* sequence index */
int status;
- ESL_ALLOC(useme, sizeof(int) * (msa->alen+1)); /* +1 is only to deal with alen=0 special case */
-
#ifdef eslAUGMENT_ALPHABET /* digital mode case */
if (msa->flags & eslMSA_DIGITAL) /* be careful of off-by-one: useme is 0..L-1 indexed */
{
+ ESL_ALLOC(useme, sizeof(int) * (msa->alen+1)); /* +1 is only to deal with alen=0 special case */
+
for (apos = 1; apos <= msa->alen; apos++)
{
for (idx = 0; idx < msa->nseq; idx++)
@@ -2479,25 +2571,76 @@ esl_msa_NoGaps(ESL_MSA *msa, char *errbuf, const char *gaps)
break;
if (idx == msa->nseq) useme[apos-1] = TRUE; else useme[apos-1] = FALSE;
}
+
+ if ((status = esl_msa_ColumnSubset(msa, errbuf, useme)) != eslOK) goto ERROR;
}
#endif
if (! (msa->flags & eslMSA_DIGITAL)) /* text mode case */
{
- for (apos = 0; apos < msa->alen; apos++)
- {
- for (idx = 0; idx < msa->nseq; idx++)
- if (strchr(gaps, msa->aseq[idx][apos]) != NULL)
- break;
- if (idx == msa->nseq) useme[apos] = TRUE; else useme[apos] = FALSE;
- }
+ if ((status = esl_msa_NoGapsText(msa, errbuf, gaps, FALSE)) != eslOK) goto ERROR;
}
+ if (useme) free(useme);
+ return eslOK;
+
+ ERROR:
+ if (useme) free(useme);
+ return status;
+}
+
- esl_msa_ColumnSubset(msa, errbuf, useme);
+/* Function: esl_msa_NoGapsText()
+ * Synopsis: Remove columns containing any gap symbol at all, for text mode msa.
+ *
+ * Purpose: Like <esl_msa_NoGaps()> but specialized for textmode <msa> where
+ * we don't know the alphabet, yet might need to fix alphabet-dependent
+ * problems.
+ *
+ * Like <esl_msa_MinimGapsText()>, the alphabet-dependent issue we might
+ * want to fix is RNA secondary structure annotation (SS, SS\_cons);
+ * removing a column might remove one side of a base pair annotation, and
+ * invalidate a secondary structure string. <fix_bps> tells the function
+ * that SS and SS\_cons are RNA WUSS format strings, and the function is
+ * allowed to edit (and fix) them. Normally, in text mode msa's, we
+ * are not allowed to interpret any meaning of symbols.
+ *
+ * Args: msa - alignment to remove any-gap cols from
+ * errbuf - if non-<NULL>, space for an informative error message on failure
+ * gaps - string of gap characters
+ * fix_bps - if TRUE, fix any broken bps in SS/SS\_cons annotation lines
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ * Possibilities from <esl_msa_ColumnSubset()> call:
+ * <eslESYNTAX> if WUSS string for <SS_cons> or <msa->ss>
+ * following <esl_wuss_nopseudo()> is inconsistent.
+ * <eslEINVAL> if a derived ct array implies a pknotted SS.
+ */
+int
+esl_msa_NoGapsText(ESL_MSA *msa, char *errbuf, const char *gaps, int fix_bps)
+{
+ int *useme = NULL; /* array of TRUE/FALSE flags for which cols to keep */
+ int64_t apos; /* column index */
+ int idx; /* sequence index */
+ int status;
+
+ ESL_ALLOC(useme, sizeof(int) * (msa->alen+1)); /* +1 is only to deal with alen=0 special case */
+
+ for (apos = 0; apos < msa->alen; apos++)
+ {
+ for (idx = 0; idx < msa->nseq; idx++)
+ if (strchr(gaps, msa->aseq[idx][apos]) != NULL) break;
+ useme[apos] = (idx == msa->nseq ? TRUE : FALSE);
+ }
+
+ if (fix_bps && (status = esl_msa_RemoveBrokenBasepairs(msa, errbuf, useme)) != eslOK) goto ERROR;
+ if ( (status = esl_msa_ColumnSubset (msa, errbuf, useme)) != eslOK) goto ERROR;
+
free(useme);
return eslOK;
-
+
ERROR:
- if (useme != NULL) free(useme);
+ if (useme) free(useme);
return status;
}
@@ -2644,8 +2787,7 @@ esl_msa_Checksum(const ESL_MSA *msa, uint32_t *ret_checksum)
*
* Returns: <eslOK> on success.
* <eslESYNTAX> if SS string
- * following <esl_wuss_nopseudo()> is inconsistent.
- * <eslEINVAL> if a derived ct array implies a pknotted
+ * <eslEINVAL> if a derived ct array implies a pknotted
* SS, this should be impossible.
*
* Throws: <eslEMEM> on allocation failure.
@@ -2655,14 +2797,11 @@ esl_msa_RemoveBrokenBasepairsFromSS(char *ss, char *errbuf, int len, const int *
{
int64_t apos; /* alignment position */
int *ct = NULL; /* 0..alen-1 base pair partners array for current sequence */
- char *ss_nopseudo = NULL; /* no-pseudoknot version of structure */
int status;
- ESL_ALLOC(ct, sizeof(int) * (len+1));
- ESL_ALLOC(ss_nopseudo, sizeof(char) * (len+1));
+ ESL_ALLOC(ct, sizeof(int) * (len+1));
- esl_wuss_nopseudo(ss, ss_nopseudo);
- if ((status = esl_wuss2ct(ss_nopseudo, len, ct)) != eslOK)
+ if ((status = esl_wuss2ct(ss, len, ct)) != eslOK)
ESL_FAIL(status, errbuf, "Consensus structure string is inconsistent.");
for (apos = 1; apos <= len; apos++) {
if (!(useme[apos-1])) {
@@ -2674,13 +2813,11 @@ esl_msa_RemoveBrokenBasepairsFromSS(char *ss, char *errbuf, int len, const int *
if ((status = esl_ct2wuss(ct, len, ss)) != eslOK)
ESL_FAIL(status, errbuf, "Error converting de-knotted bp ct array to WUSS notation.");
- free(ss_nopseudo);
free(ct);
return eslOK;
ERROR:
- if (ct != NULL) free(ct);
- if (ss_nopseudo != NULL) free(ss_nopseudo);
+ if (ct != NULL) free(ct);
return status;
}
@@ -2748,6 +2885,74 @@ msa_get_rlen(const ESL_MSA *msa, int seqidx)
}
+
+/* Function: esl_msa_ReverseComplement()
+ * Synopsis: Reverse complement a multiple alignment
+ * Incept: SRE, Wed Feb 10 12:52:13 2016 [JB251 BOS-MCO]
+ *
+ * Purpose: Reverse complement the multiple alignment <msa>, in place.
+ *
+ * <msa> must be in digital mode, and it must be in an alphabet
+ * that permits reverse complementation (<eslDNA>, <eslRNA>).
+ *
+ * In addition to reverse complementing the sequence data,
+ * per-column and per-residue annotation also gets reversed
+ * or reverse complemented. Secondary structure annotations
+ * (the consensus structure <ss_cons>, and any individual
+ * structures <ss[i]>) are assumed to be in WUSS format,
+ * and are "reverse complemented" using
+ * <esl_wuss_reverse()>. Other annotations are assumed to
+ * be textual, and are simply reversed. Beware, because
+ * this can go awry if an optional <gc> or <gr> annotation
+ * has semantics that would require complementation (an RNA
+ * structure annotation, for example).
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEINCOMPAT> if <msa> isn't digital, or isn't in an alphabet
+ * that allows reverse complementation.
+ */
+int
+esl_msa_ReverseComplement(ESL_MSA *msa)
+{
+ int i;
+ int m;
+ int status;
+
+ if (! (msa->flags & eslMSA_DIGITAL)) ESL_EXCEPTION(eslEINCOMPAT, "msa isn't digital");
+ if ( msa->abc->complement == NULL) ESL_EXCEPTION(eslEINCOMPAT, "msa alphabet can't be reverse complemented");
+
+ if (msa->ss_cons) esl_wuss_reverse(msa->ss_cons, msa->ss_cons);
+ if (msa->sa_cons) esl_vec_CReverse(msa->sa_cons, msa->sa_cons, msa->alen);
+ if (msa->pp_cons) esl_vec_CReverse(msa->pp_cons, msa->pp_cons, msa->alen);
+ if (msa->rf) esl_vec_CReverse(msa->rf, msa->rf, msa->alen);
+ if (msa->mm) esl_vec_CReverse(msa->mm, msa->mm, msa->alen);
+
+ for (m = 0; m < msa->ngc; m++)
+ if (msa->gc && msa->gc[m]) esl_vec_CReverse(msa->gc[m], msa->gc[m], msa->alen);
+
+ for (i = 0; i < msa->nseq; i++)
+ {
+ if ((status = esl_abc_revcomp(msa->abc, msa->ax[i], msa->alen)) != eslOK) goto ERROR;
+ if (msa->ss && msa->ss[i]) esl_wuss_reverse(msa->ss[i], msa->ss[i]);
+ if (msa->sa && msa->sa[i]) esl_vec_CReverse(msa->sa[i], msa->sa[i], msa->alen);
+ if (msa->pp && msa->pp[i]) esl_vec_CReverse(msa->pp[i], msa->pp[i], msa->alen);
+ }
+
+ for (m = 0; m < msa->ngr; m++)
+ for (i = 0; i < msa->nseq; i++)
+ if (msa->gr && msa->gr[m] && msa->gr[m][i])
+ esl_vec_CReverse(msa->gr[m][i], msa->gr[m][i], msa->alen);
+
+ return eslOK;
+
+ ERROR:
+ return status;
+}
+
+
+
+
#ifdef eslAUGMENT_KEYHASH
/* Function: esl_msa_Hash()
* Synopsis: Hash sequence names, internally, for faster access/lookup.
@@ -2882,17 +3087,17 @@ esl_msa_Validate(const ESL_MSA *msa, char *errmsg)
ESL_MSA *
esl_msa_CreateFromString(const char *s, int fmt)
{
- ESLX_MSAFILE *mfp = NULL;
- ESL_MSA *msa = NULL;
+ ESL_MSAFILE *mfp = NULL;
+ ESL_MSA *msa = NULL;
- if (eslx_msafile_OpenMem(NULL, s, -1, fmt, NULL, &mfp) != eslOK) goto ERROR;
- if (eslx_msafile_Read(mfp, &msa) != eslOK) goto ERROR;
- eslx_msafile_Close(mfp);
+ if (esl_msafile_OpenMem(NULL, s, -1, fmt, NULL, &mfp) != eslOK) goto ERROR;
+ if (esl_msafile_Read(mfp, &msa) != eslOK) goto ERROR;
+ esl_msafile_Close(mfp);
return msa;
ERROR:
- if (mfp != NULL) eslx_msafile_Close(mfp);
- if (msa != NULL) esl_msa_Destroy(msa);
+ if (mfp) esl_msafile_Close(mfp);
+ if (msa) esl_msa_Destroy(msa);
return NULL;
}
@@ -3157,14 +3362,14 @@ static void
utest_Digitize(ESL_ALPHABET *abc, char *filename)
{
char *msg = "Digitize() unit test failure";
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *msa = NULL;
int c, i, pos;
/* Get ourselves a copy of the known alignment that we can muck with */
- if (eslx_msafile_Open(NULL, filename, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(NULL, filename, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
/* Deliberately corrupt it with inval character in the middle */
i = msa->nseq / 2;
@@ -3188,15 +3393,15 @@ static void
utest_Textize(ESL_ALPHABET *abc, char *filename)
{
char *msg = "Textize() unit test failure";
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *msa = NULL;
- if (eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- if (esl_msa_Textize(msa) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ if (esl_msa_Textize(msa) != eslOK) esl_fatal(msg);
compare_to_known(msa);
- eslx_msafile_Close(mfp);
+ esl_msafile_Close(mfp);
esl_msa_Destroy(msa);
return;
}
@@ -3241,15 +3446,15 @@ static void
utest_MinimGaps(char *tmpfile)
{
char *msg = "MinimGaps() unit test failure";
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *msa = NULL;
#ifdef eslAUGMENT_ALPHABET
ESL_ALPHABET *abc = NULL;
#endif
- if (eslx_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
if (esl_msa_MinimGaps(msa, NULL, "-~", FALSE) != eslOK) esl_fatal(msg);
if (msa->alen != 45) esl_fatal(msg); /* orig =47, with one all - column and one all ~ column */
if (msa->aseq[0][11] != 'L') esl_fatal(msg); /* L shifted from column 13->12 */
@@ -3258,9 +3463,9 @@ utest_MinimGaps(char *tmpfile)
#ifdef eslAUGMENT_ALPHABET
if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal(msg);
- if (eslx_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
if (esl_msa_MinimGaps(msa, NULL, NULL, FALSE) != eslOK) esl_fatal(msg);
if (msa->alen != 45) esl_fatal(msg); /* orig =47, with one all - column and one all ~ column */
if (esl_msa_Textize(msa) != eslOK) esl_fatal(msg);
@@ -3276,15 +3481,15 @@ static void
utest_NoGaps(char *tmpfile)
{
char *msg = "NoGaps() unit test failure";
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *msa = NULL;
#ifdef eslAUGMENT_ALPHABET
ESL_ALPHABET *abc = NULL;
#endif
- if (eslx_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
if (esl_msa_NoGaps(msa, NULL, "-~") != eslOK) esl_fatal(msg);
if (msa->alen != 40) esl_fatal(msg); /* orig =47, w/ 7 columns with gaps */
if (msa->aseq[0][9] != 'L') esl_fatal(msg); /* L shifted from column 13->10 */
@@ -3294,9 +3499,9 @@ utest_NoGaps(char *tmpfile)
#ifdef eslAUGMENT_ALPHABET
if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal(msg);
- if (eslx_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
if (esl_msa_NoGaps(msa, NULL, NULL) != eslOK) esl_fatal(msg);
if (msa->alen != 40) esl_fatal(msg); /* orig =47, with one all - column and one all ~ column */
if (esl_msa_Textize(msa) != eslOK) esl_fatal(msg);
@@ -3313,15 +3518,15 @@ static void
utest_SymConvert(char *tmpfile)
{
char *msg = "SymConvert() unit test failure";
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *msa = NULL;
#ifdef eslAUGMENT_ALPHABET
ESL_ALPHABET *abc = NULL;
#endif
- if (eslx_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
/* many->one version */
if (esl_msa_SymConvert(msa, "VWY", "-") != eslOK) esl_fatal(msg); /* 6 columns convert to all-gap: now 8/47 */
@@ -3342,9 +3547,9 @@ utest_SymConvert(char *tmpfile)
#ifdef eslAUGMENT_ALPHABET
if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal(msg);
- if (eslx_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
#ifdef eslTEST_THROWING
if (esl_msa_SymConvert(msa, "Tt", "Uu") != eslEINVAL) esl_fatal(msg); /* must cleanly fail on digital mode msa */
#endif
@@ -3366,7 +3571,7 @@ static void
utest_ZeroLengthMSA(const char *tmpfile)
{
char *msg = "zero length msa unit test failed";
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *z1 = NULL;
ESL_MSA *z2 = NULL;
ESL_MSA *z3 = NULL;
@@ -3376,9 +3581,9 @@ utest_ZeroLengthMSA(const char *tmpfile)
char errbuf[eslERRBUFSIZE];
/* Read a text mode alignment from the tmpfile */
- if (eslx_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &z1) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &z1) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
/* make an alen=0 text alignment by column subsetting */
nuseme = ESL_MAX(z1->alen, z1->nseq);
@@ -3395,6 +3600,7 @@ utest_ZeroLengthMSA(const char *tmpfile)
for (i = 1; i < z1->nseq; i++) useme[i] = 1;
if (esl_msa_SequenceSubset(z1, useme, &z2) != eslOK) esl_fatal(msg);
esl_msa_Destroy(z1);
+ z1 = NULL; // we may reuse z1 below.
/* keep z2; we'll compare it to z3 in the end */
#ifdef eslAUGMENT_ALPHABET
@@ -3402,9 +3608,9 @@ utest_ZeroLengthMSA(const char *tmpfile)
/* Now read the same alignment, in digital mode */
if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal(msg);
- if (eslx_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(mfp, &z1) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(mfp, &z1) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(mfp);
/* Now make an alen=0 alignment in digital mode */
for (i = 0; i < z1->alen; i++) useme[i] = 0;
@@ -3473,7 +3679,7 @@ utest_ZeroLengthMSA(const char *tmpfile)
int
main(int argc, char **argv)
{
- ESLX_MSAFILE *mfp = NULL;
+ ESL_MSAFILE *mfp = NULL;
ESL_MSA *msa = NULL;
FILE *fp = NULL;
char tmpfile[16] = "esltmpXXXXXX"; /* tmpfile template */
@@ -3493,9 +3699,9 @@ main(int argc, char **argv)
/* Read it back in for use in tests.
*/
- if (eslx_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal("Failed to open MSA tmp file");
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal("Failed to read MSA tmp file");
- eslx_msafile_Close(mfp);
+ if (esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal("Failed to open MSA tmp file");
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal("Failed to read MSA tmp file");
+ esl_msafile_Close(mfp);
/* Unit tests
*/
@@ -3510,10 +3716,10 @@ main(int argc, char **argv)
esl_msa_Destroy(msa);
#ifdef eslAUGMENT_ALPHABET
- if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("alphabet creation failed");
- if (eslx_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal("MSA digital open failed");
- if (eslx_msafile_Read(mfp, &msa) != eslOK) esl_fatal("MSA digital read failed");
- eslx_msafile_Close(mfp);
+ if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("alphabet creation failed");
+ if (esl_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &mfp) != eslOK) esl_fatal("MSA digital open failed");
+ if (esl_msafile_Read(mfp, &msa) != eslOK) esl_fatal("MSA digital read failed");
+ esl_msafile_Close(mfp);
utest_CreateDigital(abc);
utest_Digitize(abc, tmpfile);
@@ -3531,13 +3737,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msa.c 762 2012-05-11 21:01:15Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msa.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msa.h b/easel/esl_msa.h
index 9164c25..5a514f2 100644
--- a/easel/esl_msa.h
+++ b/easel/esl_msa.h
@@ -175,17 +175,21 @@ extern int esl_msa_AppendGR (ESL_MSA *msa, char *tag, int sqidx, char *value);
extern int esl_msa_CheckUniqueNames(const ESL_MSA *msa);
/* 4. Miscellaneous functions for manipulating MSAs */
-extern int esl_msa_ReasonableRF (ESL_MSA *msa, double symfrac, char *rfline);
+extern int esl_msa_ReasonableRF(ESL_MSA *msa, double symfrac, int useconsseq, char *rfline);
extern int esl_msa_MarkFragments(ESL_MSA *msa, double fragthresh);
extern int esl_msa_SequenceSubset(const ESL_MSA *msa, const int *useme, ESL_MSA **ret_new);
-extern int esl_msa_ColumnSubset(ESL_MSA *msa, char *errbuf, const int *useme);
-extern int esl_msa_MinimGaps(ESL_MSA *msa, char *errbuf, const char *gaps, int consider_rf);
-extern int esl_msa_NoGaps(ESL_MSA *msa, char *errbuf, const char *gaps);
+extern int esl_msa_ColumnSubset (ESL_MSA *msa, char *errbuf, const int *useme);
+extern int esl_msa_MinimGaps (ESL_MSA *msa, char *errbuf, const char *gaps, int consider_rf);
+extern int esl_msa_MinimGapsText(ESL_MSA *msa, char *errbuf, const char *gaps, int consider_rf, int fix_bps);
+extern int esl_msa_NoGaps (ESL_MSA *msa, char *errbuf, const char *gaps);
+extern int esl_msa_NoGapsText (ESL_MSA *msa, char *errbuf, const char *gaps, int fix_bps);
extern int esl_msa_SymConvert(ESL_MSA *msa, const char *oldsyms, const char *newsyms);
extern int esl_msa_Checksum(const ESL_MSA *msa, uint32_t *ret_checksum);
extern int esl_msa_RemoveBrokenBasepairsFromSS(char *ss, char *errbuf, int len, const int *useme);
extern int esl_msa_RemoveBrokenBasepairs(ESL_MSA *msa, char *errbuf, const int *useme);
+
+extern int esl_msa_ReverseComplement(ESL_MSA *msa);
#ifdef eslAUGMENT_KEYHASH
extern int esl_msa_Hash(ESL_MSA *msa);
#endif
@@ -201,13 +205,13 @@ extern int esl_msa_CompareOptional (ESL_MSA *a1, ESL_MSA *a2);
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
* SVN $URL$
- * SVN $Id: esl_msa.h 762 2012-05-11 21:01:15Z eddys $
+ * SVN $Id$
*****************************************************************/
diff --git a/easel/esl_msa.tex b/easel/esl_msa.tex
index 80317ac..aee50f0 100644
--- a/easel/esl_msa.tex
+++ b/easel/esl_msa.tex
@@ -34,22 +34,23 @@ accelerating indexing of some internal data structures.
\hyperlink{func:esl_msa_Expand()}{\ccode{esl\_msa\_Expand()}} & Reallocate for more sequences.\\
\hyperlink{func:esl_msa_Destroy()}{\ccode{esl\_msa\_Destroy()}} & Frees an \ccode{ESL\_MSA}.\\
\apisubhead{The ESL\_MSAFILE object }\\
-\hyperlink{func:esl_msafile_Open()}{\ccode{esl\_msafile\_Open()}} & Open an MSA file for input.\\
-\hyperlink{func:esl_msafile_Close()}{\ccode{esl\_msafile\_Close()}} & Closes an open MSA file.\\
+\hyperlink{func:esl_msafile_Open()}{\ccode{eslx\_msafile\_Open()}} & Open an MSA file for input.\\
+\hyperlink{func:esl_msafile_Close()}{\ccode{eslx\_msafile\_Close()}} & Closes an open MSA file.\\
\apisubhead{Digital mode MSA's (augmentation: alphabet)}\\
\hyperlink{func:esl_msa_GuessAlphabet()}{\ccode{esl\_msa\_GuessAlphabet()}} & Guess alphabet of MSA.\\
\hyperlink{func:esl_msa_CreateDigital()}{\ccode{esl\_msa\_CreateDigital()}} & Create a digital \ccode{ESL\_MSA}.\\
\hyperlink{func:esl_msa_Digitize()}{\ccode{esl\_msa\_Digitize()}} & Digitizes an msa, converting it from text mode.\\
\hyperlink{func:esl_msa_Textize()}{\ccode{esl\_msa\_Textize()}} & Convert a digital msa to text mode.\\
-\hyperlink{func:esl_msafile_GuessAlphabet()}{\ccode{esl\_msafile\_GuessAlphabet()}} & Guess what kind of sequences the alignment file contains.\\
-\hyperlink{func:esl_msafile_OpenDigital()}{\ccode{esl\_msafile\_OpenDigital()}} & Open an msa file for digital input.\\
-\hyperlink{func:esl_msafile_SetDigital()}{\ccode{esl\_msafile\_SetDigital()}} & Set an open \ccode{ESL\_MSAFILE} to read in digital mode.\\
+\hyperlink{func:esl_msafile_GuessAlphabet()}{\ccode{eslx\_msafile\_GuessAlphabet()}} & Guess what kind of sequences the alignment file contains.\\
+\hyperlink{func:esl_msafile_OpenDigital()}{\ccode{eslx\_msafile\_OpenDigital()}} & Open an msa file for digital input.\\
+\hyperlink{func:esl_msafile_SetDigital()}{\ccode{eslx\_msafile\_SetDigital()}} & Set an open \ccode{ESL\_MSAFILE} to read in digital mode.\\
\apisubhead{Random MSA database access (augmentation: ssi)}\\
-\hyperlink{func:esl_msafile_PositionByKey()}{\ccode{esl\_msafile\_PositionByKey()}} & Use SSI to reposition file to start of named MSA.\\
+\hyperlink{func:esl_msafile_PositionByKey()}{\ccode{eslx\_msafile\_PositionByKey()}} & Use SSI to reposition file to start of named MSA.\\
+
\apisubhead{General i/o API, all alignment formats }\\
-\hyperlink{func:esl_msa_Read()}{\ccode{esl\_msa\_Read()}} & Read next MSA from a file.\\
-\hyperlink{func:esl_msa_Write()}{\ccode{esl\_msa\_Write()}} & Write an MSA to a file.\\
-\hyperlink{func:esl_msa_GuessFileFormat()}{\ccode{esl\_msa\_GuessFileFormat()}} & Determine the format of an open MSA file.\\
+%\hyperlink{func:esl_msa_Read()}{\ccode{esl\_msa\_Read()}} & Read next MSA from a file.\\
+%\hyperlink{func:esl_msa_Write()}{\ccode{esl\_msa\_Write()}} & Write an MSA to a file.\\
+%\hyperlink{func:esl_msa_GuessFileFormat()}{\ccode{esl\_msa\_GuessFileFormat()}} & Determine the format of an open MSA file.\\
\apisubhead{Miscellaneous functions for manipulating MSAs}\\
\hyperlink{func:esl_msa_SequenceSubset()}{\ccode{esl\_msa\_SequenceSubset()}} & Select subset of sequences into a smaller MSA.\\
\hyperlink{func:esl_msa_ColumnSubset()}{\ccode{esl\_msa\_ColumnSubset()}} & Remove a selected subset of columns from the MSA
diff --git a/easel/esl_msa_testfiles/a2m/a2m.good.1 b/easel/esl_msa_testfiles/a2m/a2m.good.1
new file mode 100644
index 0000000..a766c74
--- /dev/null
+++ b/easel/esl_msa_testfiles/a2m/a2m.good.1
@@ -0,0 +1,16 @@
+>MYG_PHYCA
+VLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKTEAEMKASED
+LKKHGVTVLTALGAILKKKGHHEAELKPLAQSHATKHKIPIKYLEFISEAIIHVLHSRHP
+GDFGADAQGAMNKALELFRKDIAAKYKELGYQG
+>GLB5_PETMA
+pivdtgsvApLSAAEKTKIRSAWAPVYSTYETSGVDILVKFFTSTPAAQEFFPKFKGLTT
+ADQLKKSADVRWHAERIINAVNDAVASMDDtekMSMKLRDLSGKHAKSFQVDPQYFKVLA
+AVI---------ADTVAAGDAGFEKLMSMICILLRSAY-------
+>HBB_HUMAN
+VhLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNP
+KVKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHF
+GKEFTPPVQAAYQKVVAGVANALAHKYH------
+>HBA_HUMAN
+VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF------DLSHGSAQ
+VKGHGKKVADALTNAVAHVDDMPNALSALSDLHAHKLRVDPVNFKLLSHCLLVTLAAHLP
+AEFTPAVHASLDKFLASVSTVLTSKYR------
diff --git a/easel/esl_msa_testfiles/a2m/a2m.good.2 b/easel/esl_msa_testfiles/a2m/a2m.good.2
new file mode 100644
index 0000000..828797d
--- /dev/null
+++ b/easel/esl_msa_testfiles/a2m/a2m.good.2
@@ -0,0 +1,15 @@
+>tRNA2
+UCCGAUAUAGUGUAACGGCUAUCACAUCACGCUUUCACCGUGGAGACCGGGGUUCGACUC
+CCCGUAUCGGAG
+>tRNA3
+UCCGUGAUAGUUUAAUGGUCAGAAUGG-GCGCUUGUCGCGUGCcAGAUCGGGGUUCAAUU
+CCCCGUCGCGGAG
+>tRNA5
+GGGCACAUGGCGCAGUUGGUAGCGCGCUUCCCUUGCAAGGAAGaGGUCAUCGGUUCGAUU
+CCGGUUGCGUCCA
+>tRNA1
+GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGaGGUCCUGUGUUCGAUC
+CACAGAAUUCGCA
+>tRNA4
+GCUCGUAUGGCGCAGUGG-UAGCGCAGCAGAUUGCAAAUCUGUuGGUCCUUAGUUCGAUC
+CUGAGUGCGAGCU
diff --git a/easel/esl_msa_testfiles/afa/afa.good.1 b/easel/esl_msa_testfiles/afa/afa.good.1
new file mode 100644
index 0000000..7f94e20
--- /dev/null
+++ b/easel/esl_msa_testfiles/afa/afa.good.1
@@ -0,0 +1,16 @@
+>MYG_PHYCA
+--------V-LSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKT
+EAEMKASEDLKKHGVTVLTALGAILKKKGH---HEAELKPLAQSHATKHKIPIKYLEFIS
+EAIIHVLHSRHPGDFGADAQGAMNKALELFRKDIAAKYKELGYQG
+>GLB5_PETMA
+PIVDTGSVAPLSAAEKTKIRSAWAPVYSTYETSGVDILVKFFTSTPAAQEFFPKFKGLTT
+ADQLKKSADVRWHAERIINAVNDAVASMDDTEKMSMKLRDLSGKHAKSFQVDPQYFKVLA
+AVI---------ADTVAAGDAGFEKLMSMICILLRSAY-------
+>HBB_HUMAN
+--------VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLST
+PDAVMGNPKVKAHGKKVLGAFSDGLAHLDN---LKGTFATLSELHCDKLHVDPENFRLLG
+NVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH------
+>HBA_HUMAN
+--------V-LSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF-----
+-DLSHGSAQVKGHGKKVADALTNAVAHVDD---MPNALSALSDLHAHKLRVDPVNFKLLS
+HCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR------
diff --git a/easel/esl_msa_testfiles/afa/afa.good.2 b/easel/esl_msa_testfiles/afa/afa.good.2
new file mode 100644
index 0000000..4c49d13
--- /dev/null
+++ b/easel/esl_msa_testfiles/afa/afa.good.2
@@ -0,0 +1,15 @@
+>tRNA2
+UCCGAUAUAGUGUAACGGCUAUCACAUCACGCUUUCACCGUGG-AGACCGGGGUUCGACU
+CCCCGUAUCGGAG
+>tRNA3
+UCCGUGAUAGUUUAAUGGUCAGAAUGG-GCGCUUGUCGCGUGCCAGAUCGGGGUUCAAUU
+CCCCGUCGCGGAG
+>tRNA5
+GGGCACAUGGCGCAGUUGGUAGCGCGCUUCCCUUGCAAGGAAGAGGUCAUCGGUUCGAUU
+CCGGUUGCGUCCA
+>tRNA1
+GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUC
+CACAGAAUUCGCA
+>tRNA4
+GCUCGUAUGGCGCAGUGG-UAGCGCAGCAGAUUGCAAAUCUGUUGGUCCUUAGUUCGAUC
+CUGAGUGCGAGCU
diff --git a/easel/esl_msa_testfiles/afa/afa.good.3 b/easel/esl_msa_testfiles/afa/afa.good.3
new file mode 100644
index 0000000..07df173
--- /dev/null
+++ b/easel/esl_msa_testfiles/afa/afa.good.3
@@ -0,0 +1,24 @@
+>7295730___KOG0003
+mqifvktltgktitlevepsdtienvkakiqdkegippdqqrlifagkql
+edgrtlsdyniqkestlhlvlrlrggiiepslrilaqkyncdkmicrkcy
+arlhpratncrkkkcghtnnlrpkkklk
+>Hs4507761___KOG0003
+mqifvktltgktitlevepsdtienvkakiqdkegippdqqrlifagkql
+edgrtlsdyniqkestlhlvlrlrggiiepslrqlaqkyncdkmicrkcy
+arlhpravncrkkkcghtnnlrpkkkvk
+>At3g52590___KOG0003
+mqifvktltgktitlevessdtidnvkakiqdkegippdqqrlifagkql
+edgrtladyniqkestlhlvlrlrggiiepslmmlarkynqdkmicrkcy
+arlhpravncrkkkcghsnqlrpkkkik
+>CE15495___KOG0003
+mqifvktltgktitleveasdtienvkakiqdkegippdqqrlifagkql
+edgrtlsdyniqkestlhlvlrlrggiiepslrqlaqkyncdkqicrkcy
+arlpprasncrkkkcghsselrikkklk
+>SPAC1805.12c___KOG0003
+mqifvktltgktitlevessdtidnvkskiqdkegippdqqrlifagkql
+edgrtlsdyniqkestlhlvlrlrggiiepslkalaskyncekqicrkcy
+arlppratncrkkkcghtnqlrpkkklk
+>YIL148w___KOG0003
+mqifvktltgktitlevessdtidnvkskiqdkegippdqqrlifagkql
+edgrtlsdyniqkestlhlvlrlrggiiepslkalaskyncdksvcrkcy
+arlppratncrkrkcghtnqlrpkkklk
diff --git a/easel/esl_msa_testfiles/clustal/clustal.good.1 b/easel/esl_msa_testfiles/clustal/clustal.good.1
new file mode 100644
index 0000000..900f12f
--- /dev/null
+++ b/easel/esl_msa_testfiles/clustal/clustal.good.1
@@ -0,0 +1,20 @@
+MUSCLE (3.7) multiple sequence alignment
+
+
+MYG_PHYCA --------V-LSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKT
+GLB5_PETMA PIVDTGSVAPLSAAEKTKIRSAWAPVYSTYETSGVDILVKFFTSTPAAQEFFPKFKGLTT
+HBB_HUMAN --------VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLST
+HBA_HUMAN --------V-LSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF-----
+ . *: :. : *. * * : * .:: * : * *
+
+MYG_PHYCA EAEMKASEDLKKHGVTVLTALGAILKKKGH---HEAELKPLAQSHATKHKIPIKYLEFIS
+GLB5_PETMA ADQLKKSADVRWHAERIINAVNDAVASMDDTEKMSMKLRDLSGKHAKSFQVDPQYFKVLA
+HBB_HUMAN PDAVMGNPKVKAHGKKVLGAFSDGLAHLDN---LKGTFATLSELHCDKLHVDPENFRLLG
+HBA_HUMAN -DLSHGSAQVKGHGKKVADALTNAVAHVDD---MPNALSALSDLHAHKLRVDPVNFKLLS
+ . .:. *. : *. : . : *: *. . .: : .:.
+
+MYG_PHYCA EAIIHVLHSRHPGDFGADAQGAMNKALELFRKDIAAKYKELGYQG
+GLB5_PETMA AVI---------ADTVAAGDAGFEKLMSMICILLRSAY-------
+HBB_HUMAN NVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH------
+HBA_HUMAN HCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR------
+ : : . .. :* : . : *
diff --git a/easel/esl_msa_testfiles/clustal/clustal.good.2 b/easel/esl_msa_testfiles/clustal/clustal.good.2
new file mode 100644
index 0000000..32e11ad
--- /dev/null
+++ b/easel/esl_msa_testfiles/clustal/clustal.good.2
@@ -0,0 +1,15 @@
+CLUSTAL W (1.81) multiple sequence alignment
+
+tRNA2 UCCGAUAUAGUGUAACGGCUAUCACAUCACGCUUUCACCGUGG-AGACCGGGGUUCGACU
+tRNA3 UCCGUGAUAGUUUAAUGGUCAGAAUGG-GCGCUUGUCGCGUGCCAGAUCGGGGUUCAAUU
+tRNA5 GGGCACAUGGCGCAGUUGGUAGCGCGCUUCCCUUGCAAGGAAGAGGUCAUCGGUUCGAUU
+tRNA1 GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUC
+tRNA4 GCUCGUAUGGCGCAGUGG-UAGCGCAGCAGAUUGCAAAUCUGUUGGUCCUUAGUUCGAUC
+ * * * * * * * **** *
+
+tRNA2 CCCCGUAUCGGAG
+tRNA3 CCCCGUCGCGGAG
+tRNA5 CCGGUUGCGUCCA
+tRNA1 CACAGAAUUCGCA
+tRNA4 CUGAGUGCGAGCU
+ *
diff --git a/easel/esl_msa_testfiles/phylip/phylip.ambig.1 b/easel/esl_msa_testfiles/phylip/phylip.ambig.1
new file mode 100644
index 0000000..64e584e
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.ambig.1
@@ -0,0 +1,9 @@
+ 2 49
+seq1 AAAAAAAAAA CCCCCCCCCC
+YYYYYYYYY DDDDDDDDDD EEEEEEEEEE
+YYYYYYYYY FFFFFFFFFF GGGGGGGGGG
+HHHHHHHHH IIIIIIIIII KKKKKKKKKK
+
+
+
+
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.1 b/easel/esl_msa_testfiles/phylip/phylip.bad.1
new file mode 100644
index 0000000..9ecbaf7
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.1
@@ -0,0 +1,3 @@
+ 2 20
+Turkey xAAGCTNGGGC ATTTCAGGGT
+Salmo gairxAAGCCTTGGC AGTGCAGGGT
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.10 b/easel/esl_msa_testfiles/phylip/phylip.bad.10
new file mode 100644
index 0000000..65eeb17
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.10
@@ -0,0 +1,6 @@
+ 3 40
+seq1_name ACDEFGHIKLMNPQRSTVWY
+seq2_name ACDEFGHIKLMNPQRSTVWY
+
+ACDEFGHIKLMNPQRSTVWY
+ACDEFGHIKLMNPQRSTVWY
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.11 b/easel/esl_msa_testfiles/phylip/phylip.bad.11
new file mode 100644
index 0000000..d2e395c
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.11
@@ -0,0 +1,7 @@
+ 2 30
+seq1_name ACDEFGHIKLMNPQRSTVWY
+seq2_name ACDEFGHIKLMNPQRSTVWY
+
+ ACDEFGHIKLMNPQRSTVWY
+ ACDEFGHIKLMNPQRSTVWY
+
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.2 b/easel/esl_msa_testfiles/phylip/phylip.bad.2
new file mode 100644
index 0000000..e51b510
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.2
@@ -0,0 +1,3 @@
+ x 2 20
+Turkey AAGCTNGGGC ATTTCAGGGT
+Salmo gairAAGCCTTGGC AGTGCAGGGT
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.3 b/easel/esl_msa_testfiles/phylip/phylip.bad.3
new file mode 100644
index 0000000..c7f6530
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.3
@@ -0,0 +1,3 @@
+ 2 x
+Turkey AAGCTNGGGC ATTTCAGGGT
+Salmo gairAAGCCTTGGC AGTGCAGGGT
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.4 b/easel/esl_msa_testfiles/phylip/phylip.bad.4
new file mode 100644
index 0000000..8694905
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.4
@@ -0,0 +1,3 @@
+ 2
+Turkey AAGCTNGGGC ATTTCAGGGT
+Salmo gairAAGCCTTGGC AGTGCAGGGT
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.5 b/easel/esl_msa_testfiles/phylip/phylip.bad.5
new file mode 100644
index 0000000..0c95f98
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.5
@@ -0,0 +1,2 @@
+ 2 20
+
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.6 b/easel/esl_msa_testfiles/phylip/phylip.bad.6
new file mode 100644
index 0000000..d988143
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.6
@@ -0,0 +1,3 @@
+ 2 20
+seq1
+seq2 ACDEFGHIKLMNPQRSTVWY
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.7 b/easel/esl_msa_testfiles/phylip/phylip.bad.7
new file mode 100644
index 0000000..56d6f1a
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.7
@@ -0,0 +1,3 @@
+ 2 20
+ seq1_name ACDEFGHIKLMNPQRSTVWY
+seq2_name ACDEFGHIKLMNPQRSTVWY
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.8 b/easel/esl_msa_testfiles/phylip/phylip.bad.8
new file mode 100644
index 0000000..fa9c9a1
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.8
@@ -0,0 +1,3 @@
+ 2 20
+seq1_name ACDEFGHIKLMNPQRSTVWY
+seq2_name ACDEFGHI~LMNPQRSTVWY
diff --git a/easel/esl_msa_testfiles/phylip/phylip.bad.9 b/easel/esl_msa_testfiles/phylip/phylip.bad.9
new file mode 100644
index 0000000..965cef4
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.bad.9
@@ -0,0 +1,3 @@
+ 2 20
+seq1_name ACDEFGHIKLMNPQRSTVWY
+seq2_name ACDEFGHIKLMNPQRSTVW
diff --git a/easel/esl_msa_testfiles/phylip/phylip.good.1 b/easel/esl_msa_testfiles/phylip/phylip.good.1
new file mode 100644
index 0000000..1bc5dad
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.good.1
@@ -0,0 +1,12 @@
+ 5 42
+Turkey AAGCTNGGGC ATTTCAGGGT
+Salmo gairAAGCCTTGGC AGTGCAGGGT
+H. SapiensACCGGTTGGC CGTTCAGGGT
+Chimp AAACCCTTGC CGTTACGCTT
+Gorilla AAACCCTTGC CGGTACGCTT
+
+GAGCCCGGGC AATACAGGGT AT
+GAGCCGTGGC CGGGCACGGT AT
+ACAGGTTGGC CGTTCAGGGT AA
+AAACCGAGGC CGGGACACTC AT
+AAACCATTGC CGGTACGCTT AA
diff --git a/easel/esl_msa_testfiles/phylip/phylip.good.2 b/easel/esl_msa_testfiles/phylip/phylip.good.2
new file mode 100644
index 0000000..b4015a4
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.good.2
@@ -0,0 +1,8 @@
+7 50
+thermotogaATGGCGAAGGAAAAATTTGTGAGAACAAAACCGCATGTTAACGTTGGAAC
+TthermophiATGGCGAAGGGCGAGTTTGTTCGGACGAAGCCTCACGTGAACGTGGGGAC
+TaquaticusATGGCGAAGGGCGAGTTTATCCGGACGAAGCCCCACGTGAACGTGGGGAC
+deinonema-ATGGCTAAGGGAACGTTTGAACGCACCAAACCCCACGTGAACGTGGGCAC
+ChlamydiaBATGTCAAAAGAAACTTTTCAACGTAATAAGCCTCATATCAACATAGGGGC
+flexistipsATGTCCAAGCAAAAGTACGAAAGGAAGAAACCTCACGTAAACGTAGGCAC
+borrelia-bATGGCAAAAGAAGTTTTTCAAAGAACAAAGCCGCACATGAATGTTGGAAC
diff --git a/easel/esl_msa_testfiles/phylip/phylip.good.3 b/easel/esl_msa_testfiles/phylip/phylip.good.3
new file mode 100644
index 0000000..b3d56ea
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylip/phylip.good.3
@@ -0,0 +1,28 @@
+ 3 384
+CYS1_DICDI -----MKVIL LFVLAVFTVF VSS------- --------RG IPPEEQ---- --------SQ
+ALEU_HORVU MAHARVLLLA LAVLATAAVA VASSSSFADS NPIRPVTDRA ASTLESAVLG ALGRTRHALR
+CATH_HUMAN ------MWAT LPLLCAGAWL LGV------- -PVCGAAELS VNSLEK---- --------FH
+
+ FLEFQDKFNK KY-SHEEYLE RFEIFKSNLG KIEELNLIAI NHKADTKFGV NKFADLSSDE
+ FARFAVRYGK SYESAAEVRR RFRIFSESLE EVRSTN---- RKGLPYRLGI NRFSDMSWEE
+ FKSWMSKHRK TY-STEEYHH RLQTFASNWR KINAHN---- NGNHTFKMAL NQFSDMSFAE
+
+ FKNYYLNNKE AIFTDDLPVA DYLDDEFINS IPTAFDWRTR G-AVTPVKNQ GQCGSCWSFS
+ FQATRL-GAA QTCSATLAGN HLMRDA--AA LPETKDWRED G-IVSPVKNQ AHCGSCWTFS
+ IKHKYLWSEP QNCSAT--KS NYLRGT--GP YPPSVDWRKK GNFVSPVKNQ GACGSCWTFS
+
+ TTGNVEGQHF ISQNKLVSLS EQNLVDCDHE CMEYEGEEAC DEGCNGGLQP NAYNYIIKNG
+ TTGALEAAYT QATGKNISLS EQQLVDCAGG FNNF------ --GCNGGLPS QAFEYIKYNG
+ TTGALESAIA IATGKMLSLA EQQLVDCAQD FNNY------ --GCQGGLPS QAFEYILYNK
+
+ GIQTESSYPY TAETGTQCNF NSANIGAKIS NFTMIP-KNE TVMAGYIVST GPLAIAADAV
+ GIDTEESYPY KGVNGV-CHY KAENAAVQVL DSVNITLNAE DELKNAVGLV RPVSVAFQVI
+ GIMGEDTYPY QGKDGY-CKF QPGKAIGFVK DVANITIYDE EAMVEAVALY NPVSFAFEVT
+
+ E-WQFYIGGV F-DIPCN--P NSLDHGILIV GYSAKNTIFR KNMPYWIVKN SWGADWGEQG
+ DGFRQYKSGV YTSDHCGTTP DDVNHAVLAV GYGVENGV-- ---PYWLIKN SWGADWGDNG
+ QDFMMYRTGI YSSTSCHKTP DKVNHAVLAV GYGEKNGI-- ---PYWIVKN SWGPQWGMNG
+
+ YIYLRRGKNT CGVSNFVSTS II--
+ YFKMEMGKNM CAIATCASYP VVAA
+ YFLIERGKNM CGLAACASYP IPLV
diff --git a/easel/esl_msa_testfiles/phylips/phylips.good.1 b/easel/esl_msa_testfiles/phylips/phylips.good.1
new file mode 100644
index 0000000..3c033d0
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylips/phylips.good.1
@@ -0,0 +1,11 @@
+ 5 42
+Turkey AAGCTNGGGC ATTTCAGGGT
+GAGCCCGGGC AATACAGGGT AT
+Salmo gairAAGCCTTGGC AGTGCAGGGT
+GAGCCGTGGC CGGGCACGGT AT
+H. SapiensACCGGTTGGC CGTTCAGGGT
+ACAGGTTGGC CGTTCAGGGT AA
+Chimp AAACCCTTGC CGTTACGCTT
+AAACCGAGGC CGGGACACTC AT
+Gorilla AAACCCTTGC CGGTACGCTT
+AAACCATTGC CGGTACGCTT AA
diff --git a/easel/esl_msa_testfiles/phylips/phylips.good.2 b/easel/esl_msa_testfiles/phylips/phylips.good.2
new file mode 100644
index 0000000..a7a7ea4
--- /dev/null
+++ b/easel/esl_msa_testfiles/phylips/phylips.good.2
@@ -0,0 +1,17 @@
+ 3 384
+CYS1_DICDI-----MKVILLFVLAVFTVFVSS---------------RGIPPEEQ------------SQFLEFQDKFNKKY-SHEEY
+LERFEIFKSNLGKIEELNLIAINHKADTKFGVNKFADLSSDEFKNYYLNNKEAIFTDDLPVADYLDDEFINSIPTAFDWRTRG-AVTP
+VKNQGQCGSCWSFSTTGNVEGQHFISQNKLVSLSEQNLVDCDHECMEYEGEEACDEGCNGGLQPNAYNYIIKNGGIQTESSYPYTAET
+GTQCNFNSANIGAKISNFTMIP-KNETVMAGYIVSTGPLAIAADAVE-WQFYIGGVF-DIPCN--PNSLDHGILIVGYSAKNTIFRKN
+MPYWIVKNSWGADWGEQGYIYLRRGKNTCGVSNFVSTSII--
+ALEU_HORVUMAHARVLLLALAVLATAAVAVASSSSFADSNPIRPVTDRAASTLESAVLGALGRTRHALRFARFAVRYGKSYESAAEVR
+RRFRIFSESLEEVRSTN----RKGLPYRLGINRFSDMSWEEFQATRL-GAAQTCSATLAGNHLMRDA--AALPETKDWREDG-IVSPVK
+NQAHCGSCWTFSTTGALEAAYTQATGKNISLSEQQLVDCAGGFNNF--------GCNGGLPSQAFEYIKYNGGIDTEESYPYKGVNGV-
+CHYKAENAAVQVLDSVNITLNAEDELKNAVGLVRPVSVAFQVIDGFRQYKSGVYTSDHCGTTPDDVNHAVLAVGYGVENGV-----PYW
+LIKNSWGADWGDNGYFKMEMGKNMCAIATCASYPVVAA
+CATH_HUMAN------MWATLPLLCAGAWLLGV--------PVCGAAELSVNSLEK------------FHFKSWMSKHRKTY-STEEYH
+HRLQTFASNWRKINAHN----NGNHTFKMALNQFSDMSFAEIKHKYLWSEPQNCSAT--KSNYLRGT--GPYPPSVDWRKKGNFVSPVK
+NQGACGSCWTFSTTGALESAIAIATGKMLSLAEQQLVDCAQDFNNY--------GCQGGLPSQAFEYILYNKGIMGEDTYPYQGKDGY-
+CKFQPGKAIGFVKDVANITIYDEEAMVEAVALYNPVSFAFEVTQDFMMYRTGIYSSTSCHKTPDKVNHAVLAVGYGEKNGI-----PYW
+IVKNSWGPQWGMNGYFLIERGKNMCGLAACASYPIPLV
+
diff --git a/easel/esl_msa_testfiles/psiblast/psiblast.good.1 b/easel/esl_msa_testfiles/psiblast/psiblast.good.1
new file mode 100644
index 0000000..9ba424b
--- /dev/null
+++ b/easel/esl_msa_testfiles/psiblast/psiblast.good.1
@@ -0,0 +1,14 @@
+MYG_PHYCA --------V-LSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKT
+GLB5_PETMA pivdtgsvApLSAAEKTKIRSAWAPVYSTYETSGVDILVKFFTSTPAAQEFFPKFKGLTT
+HBB_HUMAN --------VhLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLST
+HBA_HUMAN --------V-LSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF-----
+
+MYG_PHYCA EAEMKASEDLKKHGVTVLTALGAILKKKGH---HEAELKPLAQSHATKHKIPIKYLEFIS
+GLB5_PETMA ADQLKKSADVRWHAERIINAVNDAVASMDDtekMSMKLRDLSGKHAKSFQVDPQYFKVLA
+HBB_HUMAN PDAVMGNPKVKAHGKKVLGAFSDGLAHLDN---LKGTFATLSELHCDKLHVDPENFRLLG
+HBA_HUMAN -DLSHGSAQVKGHGKKVADALTNAVAHVDD---MPNALSALSDLHAHKLRVDPVNFKLLS
+
+MYG_PHYCA EAIIHVLHSRHPGDFGADAQGAMNKALELFRKDIAAKYKELGYQG
+GLB5_PETMA AVI---------ADTVAAGDAGFEKLMSMICILLRSAY-------
+HBB_HUMAN NVLVCVLAHHFGKEFTPPVQAAYQKVVAGVANALAHKYH------
+HBA_HUMAN HCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR------
diff --git a/easel/esl_msa_testfiles/psiblast/psiblast.good.2 b/easel/esl_msa_testfiles/psiblast/psiblast.good.2
new file mode 100644
index 0000000..6b36b92
--- /dev/null
+++ b/easel/esl_msa_testfiles/psiblast/psiblast.good.2
@@ -0,0 +1,11 @@
+tRNA2 UCCGAUAUAGUGUAACGGCUAUCACAUCACGCUUUCACCGUGG-AGACCGGGGUUCGACU
+tRNA3 UCCGUGAUAGUUUAAUGGUCAGAAUGG-GCGCUUGUCGCGUGCcAGAUCGGGGUUCAAUU
+tRNA5 GGGCACAUGGCGCAGUUGGUAGCGCGCUUCCCUUGCAAGGAAGaGGUCAUCGGUUCGAUU
+tRNA1 GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGaGGUCCUGUGUUCGAUC
+tRNA4 GCUCGUAUGGCGCAGUGG-UAGCGCAGCAGAUUGCAAAUCUGUuGGUCCUUAGUUCGAUC
+
+tRNA2 CCCCGUAUCGGAG
+tRNA3 CCCCGUCGCGGAG
+tRNA5 CCGGUUGCGUCCA
+tRNA1 CACAGAAUUCGCA
+tRNA4 CUGAGUGCGAGCU
diff --git a/easel/esl_msa_testfiles/selex/selex.good.4 b/easel/esl_msa_testfiles/selex/selex.good.4
new file mode 100644
index 0000000..199b6f0
--- /dev/null
+++ b/easel/esl_msa_testfiles/selex/selex.good.4
@@ -0,0 +1,19 @@
+# A complicated SELEX example
+# SRE, Tue Dec 1 19:17:48 1998
+
+
+#=RF xxxxxxx xxxx xxxxxx
+#=CS >>>>+>> ^^^^ <<<<<<
+28 gGAGUAAGAUAGC AUCA GCAUCUUGUUCC
+#=SS +++++>>>>>+>> ^^^^ <<<<<<<+++++
+longname GUUCACC AUCA GGGGAc
+#=SS >>>>+>> ^^^^ <<<<<<
+2 AUGGAUGCGCACC AUCA GGGCGUaucuau
+3 GAUCACC AUCA GGGauc
+4 GGUCACC AUCA GGGauc
+5 GGACACC AUCA GGGucu
+6 CACC AUCA GGG
+7 GAUCACC AUCA GGGauc
+8 CUCACC AUCA GGGGG
+9 AUGCACC AUCA GGGCAU
+10 CUCACC AUCA GGGGG
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.1 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.1
new file mode 100644
index 0000000..ea254db
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.1
@@ -0,0 +1 @@
+missing Stockholm header
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.2 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.2
new file mode 100644
index 0000000..73d9112
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.2
@@ -0,0 +1,7 @@
+# STOCKHOLM 1.0
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+seq2 ACDEFGHIKLMNPQRSTVWY
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+//
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.3 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.3
new file mode 100644
index 0000000..af46199
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.3
@@ -0,0 +1,7 @@
+# STOCKHOLM 1.0
+
+#=GS seq1 FOO baz
+#=GS seq2 FOO boz
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+//
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.4 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.4
new file mode 100644
index 0000000..28a3913
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.4
@@ -0,0 +1,4 @@
+# STOCKHOLM 1.0
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+seq2 ACDEFGHIKLMNPQRSTVWY
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.5 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.5
new file mode 100644
index 0000000..752b318
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.5
@@ -0,0 +1,4 @@
+# STOCKHOLM 1.0
+
+# No data
+//
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.6 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.6
new file mode 100644
index 0000000..bf8e3d5
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.6
@@ -0,0 +1,7 @@
+# STOCKHOLM 1.0
+
+#=GF
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+seq2 ACDEFGHIKLMNPQRSTVWY
+//
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.7 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.7
new file mode 100644
index 0000000..a54e227
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.7
@@ -0,0 +1,7 @@
+# STOCKHOLM 1.0
+
+#=GFX tag
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+seq2 ACDEFGHIKLMNPQRSTVWY
+//
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.bad.8 b/easel/esl_msa_testfiles/stockholm/stockholm.bad.8
new file mode 100644
index 0000000..e5c0636
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.bad.8
@@ -0,0 +1,5 @@
+# STOCKHOLM 1.0
+#=GF ID
+
+seq1 ACDEFGHIKLMNPQRSTVWY
+//
diff --git a/easel/esl_msa_testfiles/stockholm/stockholm.good.1 b/easel/esl_msa_testfiles/stockholm/stockholm.good.1
new file mode 100644
index 0000000..557e59c
--- /dev/null
+++ b/easel/esl_msa_testfiles/stockholm/stockholm.good.1
@@ -0,0 +1,96 @@
+# STOCKHOLM 1.0
+#
+# This is an example of a Stockholm multiple sequence alignment
+# file. It is deliberately designed to be weird, to exercise many of the
+# features of Stockholm format, in order to test a parser.
+#
+#=GF ID 14-3-3
+#=GF AC PF00244
+#=GF DE 14-3-3 proteins
+#=GF AU Finn RD
+#=GF AL Clustalw
+#=GF SE Prosite
+#=GF GA 25 25
+#=GF TC 35.40 35.40
+#=GF NC 8.80 8.80
+#=GF BM hmmbuild -f HMM SEED
+#=GF BM hmmcalibrate --seed 0 HMM
+#=GF RN [1]
+#=GF RM 95327195
+#=GF RT Structure of a 14-3-3 protein and implications for
+#=GF RT coordination of multiple signalling pathways.
+#=GF RA Xiao B, Smerdon SJ, Jones DH, Dodson GG, Soneji Y, Aitken
+#=GF RA A, Gamblin SJ;
+#=GF RL Nature 1995;376:188-191.
+#=GF RN [2]
+#=GF RM 95327196
+#=GF RT Crystal structure of the zeta isoform of the 14-3-3
+#=GF RT protein.
+#=GF RA Liu D, Bienkowska J, Petosa C, Collier RJ, Fu H, Liddington
+#=GF RA R;
+#=GF RL Nature 1995;376:191-194.
+#=GF DR PROSITE; PDOC00633;
+#=GF DR SMART; 14_3_3;
+#=GF DR PRINTS; PR00305;
+#=GF SQ 119
+
+#=GS 1431_ENTHI/4-239 WT 0.42
+#=GS seq1 WT 0.40
+#=GS seq2 WT 0.41
+#=GS seq3 WT 0.43
+#=GS seq4 WT 0.44
+#=GS seq5 WT 0.45
+#=GS seq6 WT 0.46
+
+#=GS seq4 AC PF00001
+#=GS seq4 DE A description of seq4.
+
+#=GS seq1 NEWTAG foo
+#=GS seq2 NEWTAG bar
+#=GS seq3 NEWTAG baz
+
+#=GS seq3 TAG2 foo2
+#=GS seq4 TAG2 foo3
+#=GS seq5 TAG2 foo4
+
+#=GC SS_cons xxxxxxxxxxxxxxxxxxx
+#=GC SA_cons xxxxxxxxxxxxxxxxxxx
+#=GC New_long_tag_thingie xxxxxxxxxxxxxxxxxxx
+1431_ENTHI/4-239 ACDEFGHKLMNPQRSTVWY
+#=GR seq1 SS ...................
+#=GR seq1 SA 0000000000000000000
+seq1 ACDEFGHKLMNPQRSTVWY
+seq2 ACDEFGHKLMNPQRSTVWY
+seq3 ACDEFGHKLMNPQRSTVWY
+seq4 ACDEFGHKLMNPQRSTVWY
+seq5 ACDEFGHKLMNPQRSTVWY
+seq6 ACDEFGHKLMNPQRSTVWY
+#=GR seq6 SS ...................
+#=GR seq6 SA 9999999999999999999
+#=GR seq6 Invented_tag *******************
+#=GR seq6 Another_tag -------------------
+
+
+#=GC SS_cons xxxxxxxxxxxxxxxxxxx
+#=GC SA_cons xxxxxxxxxxxxxxxxxxx
+#=GC New_long_tag_thingie xxxxxxxxxxxxxxxxxxx
+1431_ENTHI/4-239 ACDEFGHKLMNPQRSTVWY
+#=GR seq1 SS ...................
+#=GR seq1 SA 0000000000000000000
+seq1 ACDEFGHKLMNPQRSTVWY
+seq2 ACDEFGHKLMNPQRSTVWY
+seq3 ACDEFGHKLMNPQRSTVWY
+seq4 ACDEFGHKLMNPQRSTVWY
+seq5 ACDEFGHKLMNPQRSTVWY
+seq6 ACDEFGHKLMNPQRSTVWY
+#=GR seq6 SS ...................
+#=GR seq6 SA 9999999999999999999
+#=GR seq6 Invented_tag *******************
+#=GR seq6 Another_tag -------------------
+
+#
+# And here's some trailing comments, just to
+# try to confuse a parser.
+#
+
+//
\ No newline at end of file
diff --git a/easel/esl_msacluster.c b/easel/esl_msacluster.c
index 2bcc9bb..757eaa5 100644
--- a/easel/esl_msacluster.c
+++ b/easel/esl_msacluster.c
@@ -149,6 +149,8 @@ esl_msacluster_SingleLinkage(const ESL_MSA *msa, double maxid,
workspace, assignment, &nc);
}
#endif
+ if (status != eslOK) goto ERROR;
+
if (opt_nin != NULL)
{
@@ -382,8 +384,8 @@ main(int argc, char **argv)
char *filename = argv[1];
int fmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
- ESL_MSA *msa = NULL;
+ ESL_MSAFILE *afp = NULL;
+ ESL_MSA *msa = NULL;
double maxid = 0.62; /* cluster at 62% identity: the BLOSUM62 rule */
int *assignment = NULL;
int *nin = NULL;
@@ -392,12 +394,12 @@ main(int argc, char **argv)
int status;
/* Open; guess alphabet; set to digital mode */
- if ((status = eslx_msafile_Open(&abc, filename, NULL, fmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Open(&abc, filename, NULL, fmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
/* read one alignment */
- if ((status = eslx_msafile_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ if ((status = esl_msafile_Read(afp, &msa)) != eslOK)
+ esl_msafile_ReadFailure(afp, status);
/* do the clustering */
esl_msacluster_SingleLinkage(msa, maxid, &assignment, &nin, &nclusters);
@@ -410,7 +412,7 @@ main(int argc, char **argv)
}
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
free(assignment);
free(nin);
return 0;
@@ -424,14 +426,11 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msacluster.c 715 2011-08-03 21:04:24Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msacluster.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msacluster.h b/easel/esl_msacluster.h
index c4764ac..17a7539 100644
--- a/easel/esl_msacluster.h
+++ b/easel/esl_msacluster.h
@@ -1,22 +1,24 @@
/* Clustering sequences in an MSA by % identity.
*
- * SRE, Sun Nov 5 10:08:14 2006 [Janelia]
- * SVN $Id: esl_msacluster.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msacluster.h $
*/
#ifndef eslMSACLUSTER_INCLUDED
#define eslMSACLUSTER_INCLUDED
+#include "esl_msa.h"
+
extern int esl_msacluster_SingleLinkage(const ESL_MSA *msa, double maxid,
int **opt_c, int **opt_nin, int *opt_nc);
#endif /*eslMSACLUSTER_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_msafile.c b/easel/esl_msafile.c
index 5e9ecd8..0baceab 100644
--- a/easel/esl_msafile.c
+++ b/easel/esl_msafile.c
@@ -1,12 +1,12 @@
/* Multiple sequence alignment file i/o
*
* Table of contents:
- * 1. Opening/closing an ESLX_MSAFILE.
- * 2. ESLX_MSAFILE_FMTDATA: optional added constraints on formats.
+ * 1. Opening/closing an ESL_MSAFILE.
+ * 2. ESL_MSAFILE_FMTDATA: optional added constraints on formats.
* 3. Guessing file formats.
* 4. Guessing alphabets.
* 5. Random MSA flatfile access. [augmentation: ssi]
- * 6. Reading an MSA from an ESLX_MSAFILE.
+ * 6. Reading an MSA from an ESL_MSAFILE.
* 7. Writing an MSA to a stream.
* 8. Utilities used by specific format parsers.
* 9. Unit tests.
@@ -31,17 +31,17 @@
/*****************************************************************
- *# 1. Opening/closing an ESLX_MSAFILE
+ *# 1. Opening/closing an ESL_MSAFILE
*****************************************************************/
-static int msafile_Create (ESLX_MSAFILE **ret_afp);
-static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE *afp);
+static int msafile_Create (ESL_MSAFILE **ret_afp);
+static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE *afp);
-/* Function: eslx_msafile_Open()
+/* Function: esl_msafile_Open()
* Synopsis: Open a multiple sequence alignment file for input.
*
* Purpose: Open a multiple sequence alignment file <msafile> for input.
- * Return an open <ESLX_MSAFILE> handle in <*ret_afp>.
+ * Return an open <ESL_MSAFILE> handle in <*ret_afp>.
*
* <msafile> is usually the name of a file. Alignments may
* also be read from standard input, or from
@@ -66,7 +66,7 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* because an expected alphabet is known, parsers are able
* to detect invalid characters. The caller may either
* provide an alphabet (thus asserting what it's expected
- * to be), or have <eslx_msafile_Open()> look at the file
+ * to be), or have <esl_msafile_Open()> look at the file
* and guess what alphabet it appears to be (DNA or amino
* acid code, usually). In text mode, alignment data are
* read verbatim. It might be advantageous for an
@@ -80,7 +80,7 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* <*byp_abc> is NULL (that is, caller has declared
* <ESL_ALPHABET *abc = NULL> and passed <&abc> as an
* argument), then we attempt to guess the digital alphabet
- * using <eslx_msafile_GuessAlphabet()>, based on the first
+ * using <esl_msafile_GuessAlphabet()>, based on the first
* alignment in the input. In this case, the new alphabet
* is allocated here and returned to the caller. If caller
* provides a digital alphabet (that is, <ESL_ALPHABET *abc
@@ -98,7 +98,7 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* listed.
*
* The <format> argument allows the caller to either allow
- * <eslx_msafile_Open()> to autodetect the file format of
+ * <esl_msafile_Open()> to autodetect the file format of
* <msafile>, or to assert that it knows the file is in a
* particular format. If <format> is <eslMSAFILE_UNKNOWN>,
* format autodetection is performed. Other valid codes include:
@@ -113,12 +113,21 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* | <eslMSAFILE_SELEX> | a general alignment block format |
*
* The <fmtd> argument is an optional pointer to a
- * <ESLX_MSAFILE_FMTDATA> structure that the caller may
+ * <ESL_MSAFILE_FMTDATA> structure that the caller may
* initialize and provide, in order to assert any
* additional unusual constraints on the input format --
- * for example, to dictate that a PHYLIP format file has
- * some nonstandard name field width. Generally, though,
- * <fmtd> will be <NULL>.
+ * for example, to dictate that a PHYLIP format file must
+ * have some nonstandard name field width. Generally,
+ * though, <fmtd> will be <NULL>, and such things would
+ * either be autodetected as part of the autodetected
+ * format, or the strict version of the parser will be
+ * used. (That is, if you open a PHYLIP file with
+ * <format=eslMSAFILE_UNKNOWN> and a <NULL fmtd>, the
+ * format autodetector is used, and it will automagically
+ * detect nonstandard PHYLIP namewidths != 10. But if you
+ * open a PHYLIP file with <format=eslMSAFILE_PHYLIP> and a
+ * <NULL fmtd>, then you get the strict interleaved PHYLIP
+ * parser, which requires a name width of exactly 10.)
*
* Args: byp_abc - digital alphabet to use, or NULL for text mode
* if <*byp_abc> is NULL, guess the digital alphabet,
@@ -133,7 +142,7 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* format - format code, such as <eslMSAFILE_STOCKHOLM>;
* or <eslMSAFILE_UNKNOWN> to autodetect format.
* fmtd - <NULL>, or a pointer to an initialized
- * <ESLX_MSAFILE_FMTDATA> structure, containing
+ * <ESL_MSAFILE_FMTDATA> structure, containing
* any additional unusual constraints to apply
* to the input format.
* *ret_afp - RETURN: open MSA input stream.
@@ -149,8 +158,9 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
*
* <eslENOFORMAT> if we tried to autodetect the file format
* (caller provided <format=eslMSAFILE_UNKNOWN>), and
- * failed. <afp->errmsg> is something like "couldn't
- * determine alignment input format".
+ * failed. <afp->errmsg> is an informative user-directed
+ * message, minimally something like "couldn't determine alignment
+ * input format", possibly more detailed.
*
* <eslENOALPHABET> if we tried to autodetect the alphabet
* (caller provided <&abc>, <abc=NULL> to request digital
@@ -164,7 +174,7 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* an error state, containing a user-directed error message
* in <afp->errmsg> and (if relevant) the full path to
* <msafile> that we attempted to open in
- * <afp->bf->filename>. See <eslx_msafile_OpenFailure()> for
+ * <afp->bf->filename>. See <esl_msafile_OpenFailure()> for
* a function that gives a standard way of reporting these
* diagnostics to <stderr>.
*
@@ -175,10 +185,10 @@ static int msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format
* On thrown exceptions, <*ret_afp> is <NULL>.
*/
int
-eslx_msafile_Open(ESL_ALPHABET **byp_abc, const char *msafile, const char *env, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE **ret_afp)
+esl_msafile_Open(ESL_ALPHABET **byp_abc, const char *msafile, const char *env, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE **ret_afp)
{
- ESLX_MSAFILE *afp = NULL;
- int status;
+ ESL_MSAFILE *afp = NULL;
+ int status;
if ( (status = msafile_Create(&afp)) != eslOK) goto ERROR;
@@ -191,18 +201,18 @@ eslx_msafile_Open(ESL_ALPHABET **byp_abc, const char *msafile, const char *env,
return eslOK;
ERROR: /* on normal errors, afp is returned in an error state */
- if (status == eslENOTFOUND || status == eslFAIL || status == eslEFORMAT || status == eslENODATA || eslENOALPHABET)
+ if (status == eslENOTFOUND || status == eslFAIL || status == eslENOFORMAT || status == eslENODATA || status == eslENOALPHABET)
{ afp->abc = NULL; *ret_afp = afp;}
else
- { if (afp) eslx_msafile_Close(afp); *ret_afp = NULL; }
+ { if (afp) esl_msafile_Close(afp); *ret_afp = NULL; }
return status;
}
-/* Function: eslx_msafile_OpenMem()
+/* Function: esl_msafile_OpenMem()
* Synopsis: Open a string or buffer for parsing as an MSA.
*
- * Purpose: Essentially the same as <eslx_msafile_Open()>, except
+ * Purpose: Essentially the same as <esl_msafile_Open()>, except
* we ``open'' the string or buffer <p>, <n> as the
* input source.
*
@@ -212,9 +222,9 @@ eslx_msafile_Open(ESL_ALPHABET **byp_abc, const char *msafile, const char *env,
* mandatory.
*/
int
-eslx_msafile_OpenMem(ESL_ALPHABET **byp_abc, const char *p, esl_pos_t n, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE **ret_afp)
+esl_msafile_OpenMem(ESL_ALPHABET **byp_abc, const char *p, esl_pos_t n, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE **ret_afp)
{
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
int status;
if ( (status = msafile_Create(&afp)) != eslOK) goto ERROR;
@@ -225,25 +235,25 @@ eslx_msafile_OpenMem(ESL_ALPHABET **byp_abc, const char *p, esl_pos_t n, int for
return eslOK;
ERROR:
- if (status == eslENOTFOUND || status == eslFAIL || status == eslEFORMAT || status == eslENODATA || eslENOALPHABET)
+ if (status == eslENOTFOUND || status == eslFAIL || status == eslEFORMAT || status == eslENODATA || status == eslENOALPHABET)
{ afp->abc = NULL; *ret_afp = afp;}
else
- { if (afp) eslx_msafile_Close(afp); *ret_afp = NULL; }
+ { if (afp) esl_msafile_Close(afp); *ret_afp = NULL; }
return status;
}
-/* Function: eslx_msafile_OpenBuffer()
+/* Function: esl_msafile_OpenBuffer()
* Synopsis: Open an input buffer for parsing as an MSA.
*
- * Purpose: Essentially the same as <eslx_msafile_Open()>, except
+ * Purpose: Essentially the same as <esl_msafile_Open()>, except
* we ``open'' an <ESL_BUFFER> <bf> that's already been
* opened by the caller for some input source.
*/
int
-eslx_msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE **ret_afp)
+esl_msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE **ret_afp)
{
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
int status;
if ( (status = msafile_Create(&afp)) != eslOK) goto ERROR;
@@ -254,21 +264,21 @@ eslx_msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX
return eslOK;
ERROR:
- if (status == eslENOTFOUND || status == eslFAIL || status == eslEFORMAT || status == eslENODATA || eslENOALPHABET)
+ if (status == eslENOTFOUND || status == eslFAIL || status == eslEFORMAT || status == eslENODATA || status == eslENOALPHABET)
{ afp->abc = NULL; *ret_afp = afp;}
else
- { if (afp) eslx_msafile_Close(afp); *ret_afp = NULL; }
+ { if (afp) esl_msafile_Close(afp); *ret_afp = NULL; }
return status;
}
-/* Function: eslx_msafile_OpenFailure()
+/* Function: esl_msafile_OpenFailure()
* Synopsis: Report diagnostics of normal error in opening MSA file, and exit.
*
* Purpose: Report user-directed diagnostics of a normal error in opening
* an MSA input. Print a message to <stderr>, then exit.
*/
void
-eslx_msafile_OpenFailure(ESLX_MSAFILE *afp, int status)
+esl_msafile_OpenFailure(ESL_MSAFILE *afp, int status)
{
int show_source = FALSE;
int show_fmt = FALSE;
@@ -296,15 +306,15 @@ eslx_msafile_OpenFailure(ESLX_MSAFILE *afp, int status)
}
if (show_fmt) {
- fprintf(stderr, " while parsing for %s format\n", eslx_msafile_DecodeFormat(afp->format));
+ fprintf(stderr, " while parsing for %s format\n", esl_msafile_DecodeFormat(afp->format));
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(status);
}
-/* Function: eslx_msafile_SetDigital()
- * Synopsis: Convert an open text-mode ESLX_MSAFILE to digital mode.
+/* Function: esl_msafile_SetDigital()
+ * Synopsis: Convert an open text-mode ESL_MSAFILE to digital mode.
*
* Purpose: Convert the open <afp> from text mode to digital mode,
* using alphabet <abc>.
@@ -315,7 +325,7 @@ eslx_msafile_OpenFailure(ESLX_MSAFILE *afp, int status)
* sqio is upgraded next, this function should be removed.
*/
int
-eslx_msafile_SetDigital(ESLX_MSAFILE *afp, const ESL_ALPHABET *abc)
+esl_msafile_SetDigital(ESL_MSAFILE *afp, const ESL_ALPHABET *abc)
{
int status;
@@ -337,11 +347,11 @@ eslx_msafile_SetDigital(ESLX_MSAFILE *afp, const ESL_ALPHABET *abc)
return status;
}
-/* Function: eslx_msafile_Close()
- * Synopsis: Close an open <ESLX_MSAFILE>.
+/* Function: esl_msafile_Close()
+ * Synopsis: Close an open <ESL_MSAFILE>.
*/
void
-eslx_msafile_Close(ESLX_MSAFILE *afp)
+esl_msafile_Close(ESL_MSAFILE *afp)
{
if (afp) {
if (afp->bf) esl_buffer_Close(afp->bf);
@@ -351,12 +361,12 @@ eslx_msafile_Close(ESLX_MSAFILE *afp)
}
static int
-msafile_Create(ESLX_MSAFILE **ret_afp)
+msafile_Create(ESL_MSAFILE **ret_afp)
{
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
int status;
- ESL_ALLOC(afp, sizeof(ESLX_MSAFILE));
+ ESL_ALLOC(afp, sizeof(ESL_MSAFILE));
afp->bf = NULL;
afp->line = NULL;
afp->n = 0;
@@ -367,7 +377,7 @@ msafile_Create(ESLX_MSAFILE **ret_afp)
afp->ssi = NULL;
afp->errmsg[0] = '\0';
- eslx_msafile_fmtdata_Init(&(afp->fmtd));
+ esl_msafile_fmtdata_Init(&(afp->fmtd));
*ret_afp = afp;
return eslOK;
@@ -384,22 +394,19 @@ msafile_Create(ESLX_MSAFILE **ret_afp)
* <bf> is opened successfully.
*/
static int
-msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE *afp)
+msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE *afp)
{
ESL_ALPHABET *abc = NULL;
int alphatype = eslUNKNOWN;
int status;
/* if caller provided <fmtd>, copy it into afp->fmtd */
- if (fmtd) eslx_msafile_fmtdata_Copy(fmtd, &(afp->fmtd));
+ if (fmtd) esl_msafile_fmtdata_Copy(fmtd, &(afp->fmtd));
/* Determine the format */
- if (format == eslMSAFILE_UNKNOWN)
- {
- status = eslx_msafile_GuessFileFormat(afp->bf, &format, &(afp->fmtd));
- if (status == eslENOFORMAT) ESL_XFAIL(eslENOFORMAT, afp->errmsg, "couldn't determine alignment input format"); /* ENOFORMAT is normal failure */
- else if (status != eslOK) goto ERROR;
- }
+ if (format == eslMSAFILE_UNKNOWN &&
+ (status = esl_msafile_GuessFileFormat(afp->bf, &format, &(afp->fmtd), afp->errmsg)) != eslOK)
+ goto ERROR;
afp->format = format;
/* Determine the alphabet; set <abc>. (<abc> == NULL means text mode.) */
@@ -412,7 +419,7 @@ msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAF
}
else if (byp_abc) /* Digital mode, and caller wants us to guess and create an alphabet */
{
- status = eslx_msafile_GuessAlphabet(afp, &alphatype);
+ status = esl_msafile_GuessAlphabet(afp, &alphatype);
if (status == eslENOALPHABET) ESL_XFAIL(eslENOALPHABET, afp->errmsg, "couldn't guess alphabet (maybe try --dna/--rna/--amino if available)");
else if (status != eslOK) goto ERROR;
if ( (abc = esl_alphabet_Create(alphatype)) == NULL) { status = eslEMEM; goto ERROR; }
@@ -437,16 +444,16 @@ msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAF
* some other valid characters "_-.~*" instead.
*/
switch (afp->format) {
- case eslMSAFILE_A2M: status = esl_msafile_a2m_SetInmap( afp); break;
- case eslMSAFILE_AFA: status = esl_msafile_afa_SetInmap( afp); break;
- case eslMSAFILE_CLUSTAL: status = esl_msafile_clustal_SetInmap( afp); break;
- case eslMSAFILE_CLUSTALLIKE: status = esl_msafile_clustal_SetInmap( afp); break;
- case eslMSAFILE_PFAM: status = esl_msafile_stockholm_SetInmap(afp); break;
- case eslMSAFILE_PHYLIP: status = esl_msafile_phylip_SetInmap( afp); break;
- case eslMSAFILE_PHYLIPS: status = esl_msafile_phylip_SetInmap( afp); break;
- case eslMSAFILE_PSIBLAST: status = esl_msafile_psiblast_SetInmap( afp); break;
- case eslMSAFILE_SELEX: status = esl_msafile_selex_SetInmap( afp); break;
- case eslMSAFILE_STOCKHOLM: status = esl_msafile_stockholm_SetInmap(afp); break;
+ case eslMSAFILE_A2M: if ((status = esl_msafile_a2m_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_AFA: if ((status = esl_msafile_afa_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_CLUSTAL: if ((status = esl_msafile_clustal_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_CLUSTALLIKE: if ((status = esl_msafile_clustal_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_PFAM: if ((status = esl_msafile_stockholm_SetInmap(afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_PHYLIP: if ((status = esl_msafile_phylip_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_PHYLIPS: if ((status = esl_msafile_phylip_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_PSIBLAST: if ((status = esl_msafile_psiblast_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_SELEX: if ((status = esl_msafile_selex_SetInmap( afp)) != eslOK) goto ERROR; break;
+ case eslMSAFILE_STOCKHOLM: if ((status = esl_msafile_stockholm_SetInmap(afp)) != eslOK) goto ERROR; break;
default: ESL_XEXCEPTION(eslENOFORMAT, "no such alignment file format");
}
@@ -459,67 +466,56 @@ msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAF
afp->abc = NULL;
return status;
}
-/*------------- end, open/close an ESLX_MSAFILE -----------------*/
+/*------------- end, open/close an ESL_MSAFILE -----------------*/
/*****************************************************************
- *# 2. ESLX_MSAFILE_FMTDATA: optional extra constraints on formats.
+ *# 2. ESL_MSAFILE_FMTDATA: optional extra constraints on formats.
*****************************************************************/
-/* Function: eslx_msafile_fmtdata_Init()
- * Synopsis: Initialize a <ESLX_MSAFILE_FMTDATA> structure.
+/* Function: esl_msafile_fmtdata_Init()
+ * Synopsis: Initialize a <ESL_MSAFILE_FMTDATA> structure.
*/
int
-eslx_msafile_fmtdata_Init(ESLX_MSAFILE_FMTDATA *fmtd)
+esl_msafile_fmtdata_Init(ESL_MSAFILE_FMTDATA *fmtd)
{
fmtd->namewidth = 0;
fmtd->rpl = 0;
return eslOK;
}
-/* Function: eslx_msafile_fmtdata_Copy()
- * Synopsis: Copy one <ESLX_MSAFILE_FMTDATA> structure to another.
+/* Function: esl_msafile_fmtdata_Copy()
+ * Synopsis: Copy one <ESL_MSAFILE_FMTDATA> structure to another.
*/
int
-eslx_msafile_fmtdata_Copy(ESLX_MSAFILE_FMTDATA *src, ESLX_MSAFILE_FMTDATA *dst)
+esl_msafile_fmtdata_Copy(ESL_MSAFILE_FMTDATA *src, ESL_MSAFILE_FMTDATA *dst)
{
dst->namewidth = src->namewidth;
dst->rpl = src->rpl;
return eslOK;
}
-/*--------------- ESLX_MSAFILE_FMTDATA --------------------------*/
+/*--------------- ESL_MSAFILE_FMTDATA --------------------------*/
/*****************************************************************
*# 3. Guessing file format.
*****************************************************************/
-static int msafile_guess_afalike(ESL_BUFFER *bf, int *ret_format);
static int msafile_check_selex (ESL_BUFFER *bf);
-/* Function: eslx_msafile_GuessFileFormat()
+/* Function: esl_msafile_GuessFileFormat()
* Synopsis: Guess the MSA file format of an open buffer.
*
* Purpose: Peek into an open buffer, and try to determine what
* alignment file format (if any) its input is in. If a
* format can be determined, return <eslOK> and set
* <*ret_fmtcode> to the format code. If not, return
- * <eslEFORMAT> and set <*ret_fmtcode> to
+ * <eslENOFORMAT> and set <*ret_fmtcode> to
* <eslMSAFILE_UNKNOWN>. In either case, the buffer <bf> is
* restored to its original position upon return.
- *
- * If the <bf> corresponds to an open file with a file
- * name, we attempt to use the suffix as a clue. Suffix
- * rules for alignment files are as follows:
- * | Stockholm | .sto .sth .stk |
- * | Aligned FASTA | .afa .afasta |
- * | CLUSTAL | .aln |
- * | Pfam | .pfam |
- * | A2M | .a2m |
- * | SELEX | .slx .selex |
- *
+ *
* Some formats may have variants that require special
* handling. Caller may pass a pointer <*opt_fmtd> to a
* <ESL_MSAFILE_FMTDATA> structure to capture this
@@ -537,15 +533,18 @@ static int msafile_check_selex (ESL_BUFFER *bf);
* ret_fmtcode - RETURN: format code that's determined
* opt_fmtd - optRETURN: ptr to an <ESL_MSAFILE_FMTDATA> structure to
* be filled in with additional format-specific data, or <NULL>
+ * errbuf - optRETURN: space for an informative error message if
+ * format autodetection fails; caller allocates for <eslERRBUFSIZE> bytes.
*
* Returns: <eslOK> on success, and <*ret_fmtcode> contains the format code.
- * <eslENOFORMAT> if format can't be guessed, and <*ret_fmtcode> contains
- * <eslMSAFILE_UNKNOWN>.
+ *
+ * <eslENOFORMAT> if format can't be guessed; now <*ret_fmtcode> contains
+ * <eslMSAFILE_UNKNOWN>, and optional <errbuf> contains an explanation.
*
* Throws: (no abnormal error conditions)
*/
int
-eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTDATA *opt_fmtd)
+esl_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESL_MSAFILE_FMTDATA *opt_fmtd, char *errbuf)
{
esl_pos_t initial_offset;
char *p;
@@ -555,7 +554,8 @@ eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTD
int status;
/* Initialize the optional data, if provided (move this initialization to a function someday) */
- if (opt_fmtd) eslx_msafile_fmtdata_Init(opt_fmtd);
+ if (opt_fmtd) esl_msafile_fmtdata_Init(opt_fmtd);
+ if (errbuf) errbuf[0] = '\0';
/* As we start, save parser status:
* remember the offset where we started (usually 0, but not necessarily)
@@ -564,7 +564,8 @@ eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTD
initial_offset = esl_buffer_GetOffset(bf);
esl_buffer_SetAnchor(bf, initial_offset);
- /* First we try to guess based on the filename suffix.
+ /* We may use a filename suffix as a clue, especially when
+ * distinguishing formats that may not be distinguishable.
* (if there's a filename, and if it has a suffix, anyway.)
*/
if (bf->filename)
@@ -578,22 +579,26 @@ eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTD
else if (esl_memstrcmp(p, n, ".stk")) fmt_bysuffix = eslMSAFILE_STOCKHOLM;
else if (esl_memstrcmp(p, n, ".afa")) fmt_bysuffix = eslMSAFILE_AFA;
else if (esl_memstrcmp(p, n, ".afasta")) fmt_bysuffix = eslMSAFILE_AFA;
- else if (esl_memstrcmp(p, n, ".aln")) fmt_bysuffix = eslMSAFILE_CLUSTAL;
else if (esl_memstrcmp(p, n, ".pfam")) fmt_bysuffix = eslMSAFILE_PFAM;
else if (esl_memstrcmp(p, n, ".a2m")) fmt_bysuffix = eslMSAFILE_A2M;
else if (esl_memstrcmp(p, n, ".slx")) fmt_bysuffix = eslMSAFILE_SELEX;
else if (esl_memstrcmp(p, n, ".selex")) fmt_bysuffix = eslMSAFILE_SELEX;
+ else if (esl_memstrcmp(p, n, ".pb")) fmt_bysuffix = eslMSAFILE_PSIBLAST;
+ else if (esl_memstrcmp(p, n, ".ph")) fmt_bysuffix = eslMSAFILE_PHYLIP;
+ else if (esl_memstrcmp(p, n, ".phy")) fmt_bysuffix = eslMSAFILE_PHYLIP;
+ else if (esl_memstrcmp(p, n, ".phyi")) fmt_bysuffix = eslMSAFILE_PHYLIP;
+ else if (esl_memstrcmp(p, n, ".phys")) fmt_bysuffix = eslMSAFILE_PHYLIPS;
}
}
- /* Second, we peek at the first non-blank line of the file.
+ /* We peek at the first non-blank line of the file.
* Multiple sequence alignment files are often identifiable by a token on this line.
*/
/* Skip blank lines, get first non-blank one */
do {
status = esl_buffer_GetLine(bf, &p, &n);
} while (status == eslOK && esl_memspn(p, n, " \t") == n);
- if (status == eslEOF) { *ret_fmtcode = eslMSAFILE_UNKNOWN; return eslENOFORMAT; }
+ if (status == eslEOF) ESL_XFAIL(eslENOFORMAT, errbuf, "can't guess alignment input format: empty file/no data");
if (esl_memstrpfx(p, n, "# STOCKHOLM")) fmt_byfirstline = eslMSAFILE_STOCKHOLM;
else if (esl_memstrpfx(p, n, ">")) fmt_byfirstline = eslMSAFILE_AFA;
@@ -632,28 +637,40 @@ eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTD
}
else if (fmt_byfirstline == eslMSAFILE_AFA)
{
- if (fmt_bysuffix == eslMSAFILE_AFA) *ret_fmtcode = eslMSAFILE_AFA;
- else if (fmt_bysuffix == eslMSAFILE_A2M) *ret_fmtcode = eslMSAFILE_A2M;
- else msafile_guess_afalike (bf, ret_fmtcode);
+ if (fmt_bysuffix == eslMSAFILE_A2M) *ret_fmtcode = eslMSAFILE_A2M; // A2M requires affirmative identification by caller,
+ else *ret_fmtcode = eslMSAFILE_AFA; // because of ambiguity w/ AFA.
}
else if (fmt_byfirstline == eslMSAFILE_PHYLIP)
{
- int namewidth;
- status = esl_msafile_phylip_CheckFileFormat(bf, ret_fmtcode, &namewidth);
- if (opt_fmtd) opt_fmtd->namewidth = namewidth;
- else if (namewidth != 10) *ret_fmtcode = eslMSAFILE_UNKNOWN; /* if we can't store the nonstandard width, we can't allow the caller to think it can parse this */
+ if (fmt_bysuffix == eslMSAFILE_PHYLIP) *ret_fmtcode = eslMSAFILE_PHYLIP;
+ else if (fmt_bysuffix == eslMSAFILE_PHYLIPS) *ret_fmtcode = eslMSAFILE_PHYLIPS;
+ else
+ {
+ int namewidth;
+ status = esl_msafile_phylip_CheckFileFormat(bf, ret_fmtcode, &namewidth);
+ if (status == eslEAMBIGUOUS) ESL_XFAIL(eslENOFORMAT, errbuf, "can't guess format: it's consistent w/ both phylip, phylips.");
+ else if (status == eslFAIL) ESL_XFAIL(eslENOFORMAT, errbuf, "format unrecognized, though it looks phylip-like");
+
+ if (opt_fmtd) opt_fmtd->namewidth = namewidth;
+ else if (namewidth != 10) ESL_XFAIL(eslENOFORMAT, errbuf, "can't parse nonstandard PHYLIP name width (expected 10)"); /* if we can't store the nonstandard width, we can't allow the caller to think it can parse this */
+ }
}
- else
+ else // if we haven't guessed so far, try selex.
{ /* selex parser can handle psiblast too */
if (fmt_bysuffix == eslMSAFILE_SELEX) *ret_fmtcode = eslMSAFILE_SELEX;
else if (msafile_check_selex(bf) == eslOK) *ret_fmtcode = eslMSAFILE_SELEX;
+ else ESL_XFAIL(eslENOFORMAT, errbuf, "couldn't guess alignment input format - doesn't even look like selex");
}
-
- return ((*ret_fmtcode == eslMSAFILE_UNKNOWN) ? eslENOFORMAT: eslOK);
+
+ return eslOK;
+
+ ERROR:
+ *ret_fmtcode = eslMSAFILE_UNKNOWN;
+ return status;
}
-/* Function: eslx_msafile_IsMultiRecord()
+/* Function: esl_msafile_IsMultiRecord()
* Synopsis: Test if a format supports multiple MSAs per file.
*
* Purpose: Return <TRUE> if MSA file format <fmt> supports
@@ -662,7 +679,7 @@ eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTD
* invalid or <eslMSAFILE_UNKNOWN>).
*/
int
-eslx_msafile_IsMultiRecord(int fmt)
+esl_msafile_IsMultiRecord(int fmt)
{
switch (fmt) {
case eslMSAFILE_UNKNOWN: return FALSE;
@@ -674,21 +691,21 @@ eslx_msafile_IsMultiRecord(int fmt)
case eslMSAFILE_AFA: return FALSE;
case eslMSAFILE_CLUSTAL: return FALSE;
case eslMSAFILE_CLUSTALLIKE: return FALSE;
- case eslMSAFILE_PHYLIP: return FALSE;
- case eslMSAFILE_PHYLIPS: return FALSE;
+ case eslMSAFILE_PHYLIP: return TRUE; /* because seqboot. undocumented in phylip, phylip format can come out multi-msa */
+ case eslMSAFILE_PHYLIPS: return TRUE; /* ditto */
default: return FALSE;
}
return FALSE; /* keep compilers happy */
}
-/* Function: eslx_msafile_EncodeFormat()
+/* Function: esl_msafile_EncodeFormat()
* Synopsis: Convert text string to an MSA file format code.
*
* Purpose: Given a text string, match it case-insensitively
* against a list of possible formats, and return the
* appropriate MSA file format code. For example,
- * <eslx_msafile_EncodeFormat("Stockholm")> returns
+ * <esl_msafile_EncodeFormat("Stockholm")> returns
* <eslMSAFILE_STOCKHOLM>.
*
* If the format is unrecognized, return
@@ -699,7 +716,7 @@ eslx_msafile_IsMultiRecord(int fmt)
* both unaligned and aligned.
*/
int
-eslx_msafile_EncodeFormat(char *fmtstring)
+esl_msafile_EncodeFormat(char *fmtstring)
{
if (strcasecmp(fmtstring, "stockholm") == 0) return eslMSAFILE_STOCKHOLM;
if (strcasecmp(fmtstring, "pfam") == 0) return eslMSAFILE_PFAM;
@@ -715,7 +732,7 @@ eslx_msafile_EncodeFormat(char *fmtstring)
}
-/* Function: eslx_msafile_DecodeFormat()
+/* Function: esl_msafile_DecodeFormat()
* Synopsis: Convert internal file format code to text string.
*
* Purpose: Given an internal file format code <fmt>
@@ -731,7 +748,7 @@ eslx_msafile_EncodeFormat(char *fmtstring)
* Note: Keep in sync with <esl_sqio_DecodeFormat()>.
*/
char *
-eslx_msafile_DecodeFormat(int fmt)
+esl_msafile_DecodeFormat(int fmt)
{
switch (fmt) {
case eslMSAFILE_UNKNOWN: return "unknown";
@@ -752,100 +769,6 @@ eslx_msafile_DecodeFormat(int fmt)
}
-/* An aligned FASTA-like format can either be:
- * eslMSAFILE_AFA
- * eslMSAFILE_A2M
- *
- * Let alen = # of residues+gaps per sequence
- * Let ncons = # of uppercase + '-': consensus positions in A2M
- *
- * If two seqs have same nonzero ncons, different alen, and no dots, that's a
- * positive identification of dotless A2M.
- *
- * If two seqs have same alen but different ncons, that positive id of
- * AFA.
- *
- * If we get ~100 sequences in and we still haven't decided, just call
- * it AFA.
- */
-static int
-msafile_guess_afalike(ESL_BUFFER *bf, int *ret_format)
-{
- int format = eslMSAFILE_UNKNOWN;
- int max_nseq = 100;
- esl_pos_t anchor = -1;
- char *p;
- esl_pos_t n, pos;
- int nseq;
- int nupper, nlower, ndash, ndot, nother;
- int alen, ncons;
- int saw_other = FALSE;
- int status;
-
- anchor = esl_buffer_GetOffset(bf);
- if ((status = esl_buffer_SetAnchor(bf, anchor)) != eslOK) { status = eslEINCONCEIVABLE; goto ERROR; } /* [eslINVAL] can't happen here */
-
- while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK) {
- while (n && isspace(*p)) { p++; n--; }
- if (!n) continue;
- if (*p != '>') { status = eslEFORMAT; goto ERROR; } else break;
- }
- if (status == eslEOF) { status = eslEFORMAT; goto ERROR; }
- else if (status != eslOK) goto ERROR;
-
- alen = ncons = 0;
- for (nseq = 0; nseq < max_nseq; nseq++)
- {
- nupper = nlower = ndash = ndot = nother = 0;
- while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK)
- {
- while (n && isspace(*p)) { p++; n--; }
- if (!n) continue;
- if (*p == '>') break;
-
- for (pos = 0; pos < n; pos++)
- {
- if (isupper(p[pos])) nupper++;
- else if (islower(p[pos])) nlower++;
- else if (p[pos] == '-') ndash++;
- else if (p[pos] == '.') ndot++;
- else if (!isspace(p[pos])) nother++;
- }
- }
- if (status != eslOK && status != eslEOF) goto ERROR;
- if (nother) saw_other = TRUE; /* A2M is strict: only allows .-[a-z][A-Z] */
-
- if (nseq == 0)
- {
- alen = nupper+nlower+ndash+ndot+nother;
- ncons = nupper+ndash;
- }
- else
- { /* in ungapped alignments w/ no insertions, we can't distinguish AFA, A2M. These are *positive* id tests */
- if ( nupper+nlower+ndash+ndot+nother == alen && nupper+ndash != ncons) { format = eslMSAFILE_AFA; goto DONE; }
- if (ncons && !saw_other && !ndot && nupper+nlower+ndash != alen && nupper+ndash == ncons) { format = eslMSAFILE_A2M; goto DONE; }
- /* and there's a *negative* id test, for an unaligned FASTA file: must have nonzero ncons to be A2M, must have equal-length seqs to be AFA */
- /* the example we're catching here is an unaligned FASTA file of all lower case residues: don't call that A2M. Hence the test for nonzero <ncons> */
- if (!ncons && nupper+nlower+ndash+ndot+nother != alen) { format = eslMSAFILE_UNKNOWN; goto DONE; }
- }
- }
- format = eslMSAFILE_AFA; /* if we haven't positively id'ed A2M vs AFA, it probably doesn't matter (gapless alignment): call it AFA */
- /* deliberate flowthrough */
- DONE:
- esl_buffer_SetOffset(bf, anchor); /* Rewind to where we were. */
- esl_buffer_RaiseAnchor(bf, anchor);
- *ret_format = format;
- return eslOK;
-
- ERROR:
- if (anchor != -1) {
- esl_buffer_SetOffset(bf, anchor);
- esl_buffer_RaiseAnchor(bf, anchor);
- }
- *ret_format = eslMSAFILE_UNKNOWN;
- return status;
-}
-
/* msafile_check_selex()
* Checks whether an input source appears to be in SELEX format.
@@ -929,7 +852,6 @@ msafile_check_selex(ESL_BUFFER *bf)
if (start_offset != -1) {
if (esl_buffer_SetOffset(bf, start_offset) != eslOK) goto ERROR;
if (esl_buffer_RaiseAnchor(bf, start_offset) != eslOK) goto ERROR;
- start_offset = -1;
}
return status;
@@ -948,7 +870,7 @@ msafile_check_selex(ESL_BUFFER *bf)
*****************************************************************/
#ifdef eslAUGMENT_ALPHABET
-/* Function: eslx_msafile_GuessAlphabet()
+/* Function: esl_msafile_GuessAlphabet()
* Synopsis: Guess what kind of sequences the MSA file contains.
*
* Purpose: Guess the alphabet of the sequences in the open
@@ -971,7 +893,7 @@ msafile_check_selex(ESL_BUFFER *bf)
* <eslEINCONCEIVABLE> - "impossible" corruption, internal bug
*/
int
-eslx_msafile_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int status = eslENOALPHABET;
switch (afp->format) {
@@ -1004,7 +926,7 @@ eslx_msafile_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* will be the one named (or accessioned) <key>.
*
* Returns: <eslOK> on success, and the file <afp> is repositioned
- * such that the next <eslx_msafile_Read()> call will read the
+ * such that the next <esl_msafile_Read()> call will read the
* alignment named <key>.
*
* Returns <eslENOTFOUND> if <key> isn't found in the index
@@ -1024,13 +946,13 @@ eslx_msafile_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* to use it.
*/
int
-eslx_msafile_PositionByKey(ESLX_MSAFILE *afp, const char *key)
+esl_msafile_PositionByKey(ESL_MSAFILE *afp, const char *key)
{
uint16_t fh;
off_t offset;
int status;
- if (afp->ssi == NULL) ESL_EXCEPTION(eslENODATA, "Need an open SSI index to call eslx_msafile_PositionByKey()");
+ if (afp->ssi == NULL) ESL_EXCEPTION(eslENODATA, "Need an open SSI index to call esl_msafile_PositionByKey()");
if ((status = esl_ssi_FindName(afp->ssi, key, &fh, &offset, NULL, NULL)) != eslOK) return status; /* eslENOTFOUND|eslEFORMAT [eslEMEM] */
if ((status = esl_buffer_SetOffset(afp->bf, offset)) != eslOK) return status; /* [eslEINVAL|eslESYS|eslEMEM] */
@@ -1049,7 +971,7 @@ eslx_msafile_PositionByKey(ESLX_MSAFILE *afp, const char *key)
*# 6. Reading MSAs from input
*****************************************************************/
-/* Function: eslx_msafile_Read()
+/* Function: esl_msafile_Read()
* Synopsis: Read next MSA from input.
*
* Purpose: Reads the next MSA from open MSA input <afp>, and return it in
@@ -1067,7 +989,7 @@ eslx_msafile_PositionByKey(ESLX_MSAFILE *afp, const char *key)
* and <afp->errmsg> is blank; <*ret_msa> is <NULL>.
*
* On normal error, <afp> and the return status code may be
- * passed to <eslx_msafile_ReadFailure()> to print diagnostics
+ * passed to <esl_msafile_ReadFailure()> to print diagnostics
* to <stderr> (including input source information and line
* number) and exit.
*
@@ -1076,7 +998,7 @@ eslx_msafile_PositionByKey(ESLX_MSAFILE *afp, const char *key)
* <eslEINCONCEIVABLE> - "impossible" corruption
*/
int
-eslx_msafile_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
int status = eslOK;
@@ -1110,7 +1032,7 @@ eslx_msafile_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
return status;
}
-/* Function: eslx_msafile_ReadFailure()
+/* Function: esl_msafile_ReadFailure()
* Synopsis: Report diagnostics of a normal error in parsing MSA file, and exit.
*
* Purpose: Report user-directed diagnostics of a normal error from
@@ -1121,14 +1043,14 @@ eslx_msafile_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
* information is all available in <afp>. Then close <afp>
* and exit with the <status> provided by the caller.
*
- * Args: afp - open ESLX_MSAFILE, containing information about
+ * Args: afp - open ESL_MSAFILE, containing information about
* the error and the input source.
* status - exit status; generally eslEFORMAT.
*
* Returns: no return. Exits here with <status>.
*/
void
-eslx_msafile_ReadFailure(ESLX_MSAFILE *afp, int status)
+esl_msafile_ReadFailure(ESL_MSAFILE *afp, int status)
{
switch (status) {
case eslEFORMAT: fprintf(stderr, "Alignment input parse error:\n %s\n", afp->errmsg); break;
@@ -1137,22 +1059,22 @@ eslx_msafile_ReadFailure(ESLX_MSAFILE *afp, int status)
}
switch (afp->bf->mode_is) {
- case eslBUFFER_STREAM: fprintf(stderr, " while reading %s from an input stream (not a file)\n", eslx_msafile_DecodeFormat(afp->format)); break;
- case eslBUFFER_CMDPIPE: fprintf(stderr, " while reading %s through a pipe (not a file)\n", eslx_msafile_DecodeFormat(afp->format)); break;
+ case eslBUFFER_STREAM: fprintf(stderr, " while reading %s from an input stream (not a file)\n", esl_msafile_DecodeFormat(afp->format)); break;
+ case eslBUFFER_CMDPIPE: fprintf(stderr, " while reading %s through a pipe (not a file)\n", esl_msafile_DecodeFormat(afp->format)); break;
case eslBUFFER_FILE:
case eslBUFFER_ALLFILE:
- case eslBUFFER_MMAP: fprintf(stderr, " while reading %s file %s\n", eslx_msafile_DecodeFormat(afp->format), afp->bf->filename); break;
- case eslBUFFER_STRING: fprintf(stderr, " while reading %s from a provided string (not a file)\n", eslx_msafile_DecodeFormat(afp->format)); break;
+ case eslBUFFER_MMAP: fprintf(stderr, " while reading %s file %s\n", esl_msafile_DecodeFormat(afp->format), afp->bf->filename); break;
+ case eslBUFFER_STRING: fprintf(stderr, " while reading %s from a provided string (not a file)\n", esl_msafile_DecodeFormat(afp->format)); break;
default: break;
}
if (afp->linenumber > 0) fprintf(stderr, " at or near line %" PRIu64 "\n", afp->linenumber);
else fprintf(stderr, " at or near byte %" PRIu64 "\n", esl_buffer_GetOffset(afp->bf));
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(status);
}
-/*------------ end, reading MSA from ESLX_MSAFILE ---------------*/
+/*------------ end, reading MSA from ESL_MSAFILE ---------------*/
@@ -1161,7 +1083,7 @@ eslx_msafile_ReadFailure(ESLX_MSAFILE *afp, int status)
*# 7. Writing an MSA to a stream.
*****************************************************************/
-/* Function: eslx_msafile_Write()
+/* Function: esl_msafile_Write()
* Synopsis: Write an MSA to a stream.
*
* Purpose: Writes alignment <msa> to open stream <fp> in format <fmt>.
@@ -1183,7 +1105,7 @@ eslx_msafile_ReadFailure(ESLX_MSAFILE *afp, int status)
* <eslEWRITE> on any system write error, such as a filled disk.
*/
int
-eslx_msafile_Write(FILE *fp, ESL_MSA *msa, int fmt)
+esl_msafile_Write(FILE *fp, ESL_MSA *msa, int fmt)
{
int status;
@@ -1210,7 +1132,7 @@ eslx_msafile_Write(FILE *fp, ESL_MSA *msa, int fmt)
*# 8. Utilities used by specific format parsers.
*****************************************************************/
-/* Function: eslx_msafile_GetLine()
+/* Function: esl_msafile_GetLine()
* Synopsis: Read next line of input alignment file.
*
* Purpose: Read next line of input <afp>, into its internal
@@ -1242,7 +1164,7 @@ eslx_msafile_Write(FILE *fp, ESL_MSA *msa, int fmt)
* <eslEINCONCEIVABLE> on internal code errors.
*/
int
-eslx_msafile_GetLine(ESLX_MSAFILE *afp, char **opt_p, esl_pos_t *opt_n)
+esl_msafile_GetLine(ESL_MSAFILE *afp, char **opt_p, esl_pos_t *opt_n)
{
int status;
@@ -1257,12 +1179,51 @@ eslx_msafile_GetLine(ESLX_MSAFILE *afp, char **opt_p, esl_pos_t *opt_n)
ERROR:
afp->line = NULL;
afp->n = 0;
- afp->lineoffset = 0;
+ afp->lineoffset = -1;
/* leave linenumber alone. on EOF, it is the number of lines in the file, and that might be useful. */
if (opt_p) *opt_p = NULL;
if (opt_n) *opt_n = 0;
return status;
}
+
+
+/* Function: esl_msafile_PutLine()
+ * Synopsis: Put the line we just read back in the input stream
+ *
+ * Purpose: Put the line we just read back in the input stream
+ * and unset <afp->line> and its associated information
+ * internally. The next <esl_msafile_GetLine()> call
+ * will read exactly the same line again.
+ *
+ * This gets used in parsing files that contain multiple
+ * MSAs. If the way we determine that an MSA record has
+ * ended is by reading the first line of the next MSA
+ * record, then we may want to stuff it back in the input
+ * buffer, so it gets parsed properly as part of the next
+ * record. In Pfam/Stockholm parsing we don't have to
+ * do this, because the first line is just a format code,
+ * with no record-specific data. But in PHYLIP multiple MSA
+ * format, for example, the first line is nseq,alen.
+ *
+ * Args: afp - the open input stream
+ *
+ * Returns: <eslOK> on succes
+ *
+ * Throws: <eslEMEM>, <eslESYS>, <eslEINCONCEIVABLE> if the
+ * <esl_buffer_Set()> call fails.
+ */
+int
+esl_msafile_PutLine(ESL_MSAFILE *afp)
+{
+ int status;
+ if ((status = esl_buffer_Set(afp->bf, afp->line, 0)) != eslOK) return status;
+ afp->line = NULL;
+ afp->n = 0;
+ if (afp->linenumber != -1) afp->linenumber--;
+ afp->lineoffset = -1;
+ return eslOK;
+}
+
/*--------------- end, parser utilities -------------------------*/
@@ -1282,14 +1243,11 @@ utest_format2format(int fmt1, int fmt2)
char tmpfile3[32] = "esltmpXXXXXX";
FILE *ofp = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
int alphatype = eslAMINO;
ESL_ALPHABET *abc = esl_alphabet_Create(alphatype);
ESL_ALPHABET *abc2 = NULL;
- /* The test alignment has to have a shorter seq1, to make A2M format distinct from AFA. (w/ no RF line, A2M defaults to using 1st seq as consensus)
- * It must be longer than 60 residues, to make Phylip interleaved distinct from Phylip sequential.
- */
char *testmsa = "\
# STOCKHOLM 1.0\n\
seq1 ACDEFGHIKLMNPQRSTVWYacdefghiklmnpq------ACDEFGHIKLMNPQRSTVWYacde......mnpqrstvwyACDEFGHI______RSTVWYacdefghiklmnpqrstvwy\n\
@@ -1297,43 +1255,61 @@ seq2 ACDEFGHIKLMNPQRSTVWYacdefghiklmnpqrstvwyACDEFGHIKLMNPQRSTVWYacdefghiklmn
//\n";
/* Create the test msa, msa1, digital mode, no autodetections */
- if ( eslx_msafile_OpenMem(&abc, testmsa, strlen(testmsa), eslMSAFILE_STOCKHOLM, NULL, &afp) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Read(afp, &msa1) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if ( esl_msafile_OpenMem(&abc, testmsa, strlen(testmsa), eslMSAFILE_STOCKHOLM, NULL, &afp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Read(afp, &msa1) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
/* Write it to tmpfile1 in fmt1. (This exercises writing of digital MSAs, in all <fmt1> formats) */
- if ( esl_tmpfile_named(tmpfile1, &ofp) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Write(ofp, msa1, fmt1) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(tmpfile1, &ofp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Write(ofp, msa1, fmt1) != eslOK) esl_fatal(msg);
fclose(ofp);
- /* Read it back from <fmt1> in TEXT mode (verbatim), with format autodetection */
- if ( eslx_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(msg);
- if (fmt1 == eslMSAFILE_PFAM && afp->format == eslMSAFILE_STOCKHOLM) afp->format = eslMSAFILE_PFAM;
- if (fmt1 == eslMSAFILE_PSIBLAST && afp->format == eslMSAFILE_SELEX) afp->format = eslMSAFILE_PSIBLAST;
- if ( eslx_msafile_Read(afp, &msa2) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ /* Read it back from <fmt1> in TEXT mode (verbatim), with format autodetection (except A2M) */
+ if (fmt1 != eslMSAFILE_A2M)
+ {
+ if ( esl_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (fmt1 == eslMSAFILE_PFAM && afp->format == eslMSAFILE_STOCKHOLM) afp->format = eslMSAFILE_PFAM;
+ if (fmt1 == eslMSAFILE_PSIBLAST && afp->format == eslMSAFILE_SELEX) afp->format = eslMSAFILE_PSIBLAST;
+ if ( esl_msafile_Read(afp, &msa2) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
+ }
+ else // without autodetection:
+ {
+ if ( esl_msafile_Open(NULL, tmpfile1, NULL, fmt1, NULL, &afp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Read(afp, &msa2) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
+ }
/* Write it to tmpfile2 in fmt2. (This exercises writing of text-mode MSAs, in all <fmt2> formats) */
- if ( esl_tmpfile_named(tmpfile2, &ofp) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Write(ofp, msa2, fmt2) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(tmpfile2, &ofp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Write(ofp, msa2, fmt2) != eslOK) esl_fatal(msg);
fclose(ofp);
- /* Read it back in TEXT mode. */
- if ( eslx_msafile_Open(NULL, tmpfile2, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(msg);
- if (fmt2 == eslMSAFILE_PFAM && afp->format == eslMSAFILE_STOCKHOLM) afp->format = eslMSAFILE_PFAM;
- if (fmt2 == eslMSAFILE_PSIBLAST && afp->format == eslMSAFILE_SELEX) afp->format = eslMSAFILE_PSIBLAST;
- if ( eslx_msafile_Read(afp, &msa3) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ /* Read it back in TEXT mode, with format autodetection (except A2M) */
+ if (fmt2 != eslMSAFILE_A2M)
+ {
+ if ( esl_msafile_Open(NULL, tmpfile2, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (fmt2 == eslMSAFILE_PFAM && afp->format == eslMSAFILE_STOCKHOLM) afp->format = eslMSAFILE_PFAM;
+ if (fmt2 == eslMSAFILE_PSIBLAST && afp->format == eslMSAFILE_SELEX) afp->format = eslMSAFILE_PSIBLAST;
+ if ( esl_msafile_Read(afp, &msa3) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
+ }
+ else // without autodetection:
+ {
+ if ( esl_msafile_Open(NULL, tmpfile2, NULL, fmt2, NULL, &afp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Read(afp, &msa3) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
+ }
/* Write it to tmpfile4 in fmt2. (This exercises writing of digital-mode MSAs, in all <fmt2> formats */
if ( esl_tmpfile_named(tmpfile3, &ofp) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Write(ofp, msa3, fmt2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Write(ofp, msa3, fmt2) != eslOK) esl_fatal(msg);
fclose(ofp);
/* Read it back in DIGITAL mode, with alphabet autodetection but not format */
- if ( eslx_msafile_Open(&abc2, tmpfile3, NULL, fmt2, NULL, &afp) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Read(afp, &msa4) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if ( esl_msafile_Open(&abc2, tmpfile3, NULL, fmt2, NULL, &afp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Read(afp, &msa4) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
/* Now:
* msa1 = digital mode test alignment, created from Stockholm string
@@ -1366,27 +1342,6 @@ seq2 ACDEFGHIKLMNPQRSTVWYacdefghiklmnpqrstvwyACDEFGHIKLMNPQRSTVWYacdefghiklmn
esl_alphabet_Destroy(abc);
esl_alphabet_Destroy(abc2);
}
-
-static void
-utest_tricky_format_decisions(void)
-{
- ESLX_MSAFILE *afp;
- int status;
-
- /* an all-lower case unaligned FASTA file should not get called A2M format
- * an A2M file should have at least one consensus column, not be all-insert.
- */
- char *testmsa1 = "\
->seq1\n\
-aaaaaa\n\
->seq2\n\
-aaaaa\n";
- status = eslx_msafile_OpenMem(NULL, testmsa1, strlen(testmsa1), eslMSAFILE_UNKNOWN, NULL, &afp);
- if (status == eslOK) esl_fatal("testmsa1 erroneously detected as %s", eslx_msafile_DecodeFormat(afp->format));
- else if (status != eslENOFORMAT) esl_fatal("tricky_format_decisions test failed");
-
- eslx_msafile_Close(afp);
-}
#endif /*eslMSAFILE_TESTDRIVE*/
/*----------------- end, unit tests -----------------------------*/
@@ -1406,7 +1361,6 @@ aaaaa\n";
#include "easel.h"
#include "esl_getopts.h"
-#include "esl_random.h"
#include "esl_msafile.h"
static ESL_OPTIONS options[] = {
@@ -1427,8 +1381,6 @@ main(int argc, char **argv)
for (fmt2 = eslMSAFILE_STOCKHOLM; fmt2 <= eslMSAFILE_PHYLIPS; fmt2++)
utest_format2format(fmt1, fmt2);
- utest_tricky_format_decisions();
-
esl_getopts_Destroy(go);
exit(0);
}
@@ -1474,58 +1426,58 @@ main(int argc, char **argv)
int infmt = eslMSAFILE_UNKNOWN;
int outfmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int textmode = esl_opt_GetBoolean(go, "--text");
int showinfo = esl_opt_GetBoolean(go, "-i");
int nali = 0;
int status;
- /* If you know the alphabet you want, create it - you'll pass it to eslx_msafile_Open() */
+ /* If you know the alphabet you want, create it - you'll pass it to esl_msafile_Open() */
if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO);
/* If you know the MSA file format, set it (<infmt>, here). */
if (esl_opt_IsOn(go, "--informat") &&
- (infmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
+ (infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
esl_fatal("%s is not a valid MSA file format for --informat", esl_opt_GetString(go, "--informat"));
/* Open in text or digital mode.
* To let the Open() function autoguess the format, you pass <infmt=eslMSAFILE_UNKNOWN>.
* To let it autoguess the alphabet, you set <abc=NULL> and pass <&abc>.
* To open in text mode instead of digital, you pass <NULL> for the alphabet argument.
- * eslx_msafile_OpenFailure() is a convenience, printing various diagnostics of any
+ * esl_msafile_OpenFailure() is a convenience, printing various diagnostics of any
* open failure to <stderr>. You can of course handle your own diagnostics instead.
*/
- if (textmode) status = eslx_msafile_Open(NULL, msafile, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, msafile, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (textmode) status = esl_msafile_Open(NULL, msafile, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, msafile, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if (showinfo) {
- printf("# Format: %s\n", eslx_msafile_DecodeFormat(afp->format));
+ printf("# Format: %s\n", esl_msafile_DecodeFormat(afp->format));
printf("# Alphabet: %s\n", (afp->abc ? esl_abc_DecodeType(afp->abc->type) : "text mode"));
}
/* Choose the output file format */
- if ( (outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"))) == eslMSAFILE_UNKNOWN)
+ if ( (outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"))) == eslMSAFILE_UNKNOWN)
esl_fatal("%s is not a valid MSA file format for --outformat", esl_opt_GetString(go, "--outformat"));
- while ((status = eslx_msafile_Read(afp, &msa)) == eslOK)
+ while ((status = esl_msafile_Read(afp, &msa)) == eslOK)
{
/* if digital MSA: msa->ax[idx=0..nseq-1][acol=1..alen] is the alignment data;
* if text MSA: msa->aseq[idx=0..nseq-1][acol=0..alen-1] */
nali++;
if (showinfo) printf("# alignment %5d: %15s: %6d seqs, %5d columns\n\n", nali, msa->name, (int) msa->nseq, (int) msa->alen);
- else eslx_msafile_Write(stdout, msa, outfmt);
+ else esl_msafile_Write(stdout, msa, outfmt);
esl_msa_Destroy(msa);
}
- if (nali == 0 || status != eslEOF) eslx_msafile_ReadFailure(afp, status); /* a convenience, like eslx_msafile_OpenFailure() */
+ if (nali == 0 || status != eslEOF) esl_msafile_ReadFailure(afp, status); /* a convenience, like esl_msafile_OpenFailure() */
esl_alphabet_Destroy(abc);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_getopts_Destroy(go);
exit(0);
}
@@ -1536,14 +1488,11 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile.c $
- * SVN $Id: esl_msafile.c 766 2012-06-04 13:11:51Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile.h b/easel/esl_msafile.h
index bbcfbb0..0c2a488 100644
--- a/easel/esl_msafile.h
+++ b/easel/esl_msafile.h
@@ -1,4 +1,7 @@
/* Multiple sequence alignment file i/o
+ *
+ * See also: esl_msafile2.[ch], which contains a legacy ESL_MSAFILE2 interface
+ * that includes support for --small option in various tools.
*/
#ifndef eslMSAFILE_INCLUDED
#define eslMSAFILE_INCLUDED
@@ -10,7 +13,7 @@
#include "esl_msa.h" /* ESL_MSA structure */
#include "esl_ssi.h" /* indexes of large flatfiles on disk */
-/* Object: ESLX_MSAFILE_FMTDATA
+/* Object: ESL_MSAFILE_FMTDATA
*
* Additional (often optional) information about variants of some file
* formats. Not much in here right now - but figured this might need
@@ -18,7 +21,7 @@
*
* Used in three ways:
* 1. When opening an MSA file in a known format (as opposed to
- * guessing an unknown format), caller may provide an <ESLX_MSAFILE_FMTDATA>
+ * guessing an unknown format), caller may provide an <ESL_MSAFILE_FMTDATA>
* structure containing any additional constraints on the format.
* The new <afp> will copy this information into <afp->fmtd>.
* 2. When opening an MSA file in an unknown format (calling GuessFileFormat()),
@@ -41,11 +44,11 @@
typedef struct {
int namewidth; /* PHYLIP only: width of the name field (usually 10, but can vary) unset=0 */
int rpl; /* several formats: residues per line unset=0 */
-} ESLX_MSAFILE_FMTDATA;
+} ESL_MSAFILE_FMTDATA;
-/* Object: ESLX_MSAFILE
+/* Object: ESL_MSAFILE
*
* An alignment file open for parsing.
*/
@@ -53,18 +56,18 @@ typedef struct {
ESL_BUFFER *bf; /* input file/data being parsed */
int32_t format; /* format of alignment file we're reading */
- ESLX_MSAFILE_FMTDATA fmtd; /* additional (often optional) format-specific details. */
+ ESL_MSAFILE_FMTDATA fmtd; /* additional (often optional) format-specific details. */
char *line; /* line read from <bf> by <esl_msafile_GetLine()> */
esl_pos_t n; /* length of line in bytes (line is not NUL-terminated) */
int64_t linenumber; /* input linenumber for diagnostics; -1 if we lose track */
- esl_pos_t lineoffset; /* offset of start of <line> in <bf> input */
+ esl_pos_t lineoffset; /* offset of start of <line> in <bf>; -1 if line unset */
ESL_DSQ inmap[128]; /* input map, 0..127 */
const ESL_ALPHABET *abc; /* non-NULL if augmented and in digital mode */
ESL_SSI *ssi; /* open SSI index; or NULL, if none or not augmented */
char errmsg[eslERRBUFSIZE]; /* user-directed message for normal errors */
-} ESLX_MSAFILE;
+} ESL_MSAFILE;
/* Alignment file format codes.
@@ -87,43 +90,44 @@ typedef struct {
#define eslMSAFILE_PHYLIPS 110 /* sequential PHYLIP format */
-/* 1. Opening/closing an ESLX_MSAFILE */
-extern int eslx_msafile_Open (ESL_ALPHABET **byp_abc, const char *msafile, const char *env, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE **ret_afp);
-extern int eslx_msafile_OpenMem (ESL_ALPHABET **byp_abc, const char *p, esl_pos_t n, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE **ret_afp);
-extern int eslx_msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESLX_MSAFILE_FMTDATA *fmtd, ESLX_MSAFILE **ret_afp);
-extern void eslx_msafile_OpenFailure(ESLX_MSAFILE *afp, int status);
-extern int eslx_msafile_SetDigital (ESLX_MSAFILE *afp, const ESL_ALPHABET *abc);
-extern void eslx_msafile_Close(ESLX_MSAFILE *afp);
+/* 1. Opening/closing an ESL_MSAFILE */
+extern int esl_msafile_Open (ESL_ALPHABET **byp_abc, const char *msafile, const char *env, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE **ret_afp);
+extern int esl_msafile_OpenMem (ESL_ALPHABET **byp_abc, const char *p, esl_pos_t n, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE **ret_afp);
+extern int esl_msafile_OpenBuffer(ESL_ALPHABET **byp_abc, ESL_BUFFER *bf, int format, ESL_MSAFILE_FMTDATA *fmtd, ESL_MSAFILE **ret_afp);
+extern void esl_msafile_OpenFailure(ESL_MSAFILE *afp, int status);
+extern int esl_msafile_SetDigital (ESL_MSAFILE *afp, const ESL_ALPHABET *abc);
+extern void esl_msafile_Close(ESL_MSAFILE *afp);
-/* 2. ESLX_MSAFILE_FMTDATA: optional extra constraints on formats */
-extern int eslx_msafile_fmtdata_Init(ESLX_MSAFILE_FMTDATA *fmtd);
-extern int eslx_msafile_fmtdata_Copy(ESLX_MSAFILE_FMTDATA *src, ESLX_MSAFILE_FMTDATA *dst);
+/* 2. ESL_MSAFILE_FMTDATA: optional extra constraints on formats */
+extern int esl_msafile_fmtdata_Init(ESL_MSAFILE_FMTDATA *fmtd);
+extern int esl_msafile_fmtdata_Copy(ESL_MSAFILE_FMTDATA *src, ESL_MSAFILE_FMTDATA *dst);
/* 3. Utilities for different file formats */
-extern int eslx_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESLX_MSAFILE_FMTDATA *fmtd);
-extern int eslx_msafile_IsMultiRecord(int fmt);
-extern int eslx_msafile_EncodeFormat(char *fmtstring);
-extern char *eslx_msafile_DecodeFormat(int fmt);
+extern int esl_msafile_GuessFileFormat(ESL_BUFFER *bf, int *ret_fmtcode, ESL_MSAFILE_FMTDATA *fmtd, char *errbuf);
+extern int esl_msafile_IsMultiRecord(int fmt);
+extern int esl_msafile_EncodeFormat(char *fmtstring);
+extern char *esl_msafile_DecodeFormat(int fmt);
/* 4. Utilities for different alphabets */
#ifdef eslAUGMENT_ALPHABET
-extern int eslx_msafile_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
#endif
/* 5. Random access in a MSA flatfile database */
#ifdef eslAUGMENT_SSI
-extern int eslx_msafile_PositionByKey(ESLX_MSAFILE *afp, const char *key);
+extern int esl_msafile_PositionByKey(ESL_MSAFILE *afp, const char *key);
#endif
-/* 6. Reading an MSA from an ESLX_MSAFILE */
-extern int eslx_msafile_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
-extern void eslx_msafile_ReadFailure(ESLX_MSAFILE *afp, int status);
+/* 6. Reading an MSA from an ESL_MSAFILE */
+extern int esl_msafile_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa);
+extern void esl_msafile_ReadFailure(ESL_MSAFILE *afp, int status);
/* 7. Writing an MSA to a stream */
-extern int eslx_msafile_Write(FILE *fp, ESL_MSA *msa, int fmt);
+extern int esl_msafile_Write(FILE *fp, ESL_MSA *msa, int fmt);
/* 8. Utilities for specific parsers */
-extern int eslx_msafile_GetLine(ESLX_MSAFILE *afp, char **opt_p, esl_pos_t *opt_n);
+extern int esl_msafile_GetLine(ESL_MSAFILE *afp, char **opt_p, esl_pos_t *opt_n);
+extern int esl_msafile_PutLine(ESL_MSAFILE *afp);
#include "esl_msafile_a2m.h"
#include "esl_msafile_afa.h"
@@ -134,15 +138,14 @@ extern int eslx_msafile_GetLine(ESLX_MSAFILE *afp, char **opt_p, esl_pos_t *opt_
#include "esl_msafile_stockholm.h"
#endif /*eslMSAFILE_INCLUDED*/
+
+
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL$
- * SVN $Id: esl_msafile.h 715 2011-08-03 21:04:24Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile.md b/easel/esl_msafile.md
new file mode 100644
index 0000000..4545993
--- /dev/null
+++ b/easel/esl_msafile.md
@@ -0,0 +1,181 @@
+
+### Multiple sequence alignment file formats
+
+Easel programs can input and output ten different multiple sequence
+alignment formats. There are five main formats:
+
+| format | i.e. | suffix |
+|---------------|--------------------|------------------|
+| `stockholm` | Stockholm | .sto, .sth, .stk |
+| `afa` | aligned FASTA | .afa, .afasta |
+| `clustal` | CLUSTAL | |
+| `phylip` | interleaved PHYLIP | .ph, .phy, .phyi |
+| `selex` | SELEX | .slx, .selex |
+
+and five variants:
+
+| format | i.e. | is like: | but: | suffix |
+|---------------|-------------------|-------------|------------------------------------------------------|-----------|
+| `pfam` | Pfam | `stockholm` | is restricted to one block | .pfam |
+| `a2m` | UCSC A2M, dotless | `afa` | has additional semantics for consensus columns | .a2m |
+| `clustallike` | Clustal-like | `clustal` | has another program name on first line (e.g. MUSCLE) | |
+| `phylips` | sequential Phylip | `phylip` | "sequential", rather than "interleaved" | .phys |
+| `psiblast` | NCBI PSI-BLAST | `selex` | is just an alignment, has no selex annotation lines | .pb |
+
+
+The _format_ code is what you type to select a format in a command
+line option, as in `--informat selex` or `--outformat afa`. These
+codes are treated case-insensitively, so `--informat SELEX` or
+`--outformat AFA` are also fine.
+
+### How alignment file formats are guessed
+
+Normally when you open an alignment file, an Easel-based program tries
+to guess its format. This saves typing and synapses when you're
+working at the command line.
+
+The guesser will never misidentify the format in a way that would
+corrupt the input alignment or change the annotation. There are
+formats that are problematic to distinguish based on content alone:
+`afa` versus `a2m`, and `phylip` versus `phylips`.
+
+For PHYLIP files, if no hint is available from a file suffix, the
+guesser will nonetheless almost always be able tell the difference and
+call `phylip` versus `phylips`. Pathological edge cases do exist,
+though, where the guesser will return an error about not being able to
+distinguish interleaved from sequential.
+
+However, `afa` and `a2m` files are so easily confusable that the
+guesser will not try to distinguish them based on content alone. The
+only way to get the guesser to call `a2m` is on a file with an
+explicit .a2m suffix.
+
+If you are doing scripted high throughput analysis on files in one of
+these formats, consider specifying your input file format and
+disabling the format guesser. The commandline option for this is
+usually something like `--informat <fmtcode>`. Alternatively, use file
+suffixes: `.afa` versus `.a2m`, or `.ph`/`.phy`/`.phyi` versus `.phys`
+to tip off the guesser.
+
+The guesser works with the following information:
+ * an initial guess based on peeking at the first line of the input
+ * if the input is a file with a file name, it uses the suffix as a clue (to distinguish .a2m versus .afa,
+ or .phyi from .phys, for example)
+ * in more difficult cases, the guesser looks more deeply into the input
+
+More specifically:
+
+#### `stockholm`, `pfam` formats
+
+If the first line starts with `# STOCKHOLM`: guess `stockholm`, unless
+the file suffix is `.pfam`, then guess `pfam`.
+
+Pfam format is just Stockholm, but restricted to a single alignment
+block. There is no difference in the alignment or annotation, so it is
+harmless to read a Pfam file as Stockholm.
+
+#### `afa`, `a2m` formats
+
+If the first line starts with `>`: if the file suffix is `.a2m`, guess
+`a2m`. Otherwise, call `afa`.
+
+The guesser does not autodetect a2m format unless we have a `.a2m`
+suffix on the file, even though it is usually possible to distinguish
+afa from a2m. In afa, the number of aligned characters is always the
+same but the number of upper case + dash characters can vary, whereas
+the opposite is true for a2m. However, it is common to have an afa
+format alignment that consists of all upper case and dashes:
+
+```bash
+>seq1
+GGG-CCC-TT
+>seq2
+GG-GCC-TT-
+```
+
+which is also valid as a2m. Although the alignment would be the same
+in either format, in a2m we would infer reference consensus
+annotation, and in afa we wouldn't. The guesser is not allowed to risk
+altering either alignment or annotation. Therefore a2m input requires
+something affirmative like the `.a2m` file suffix or a `--informat
+a2m` option.
+
+It's also worth noting that other ambiguous cases exist that imply
+different alignments in the two formats, as in this singularly
+terrifying example:
+
+```bash
+this input: means in AFA: means in A2M:
+>seq1 seq1 AAAcAA seq1 A.AAcAA
+AAAcAA seq2 AcAAAA seq2 AcAA.AA
+>seq2
+AcAAAA
+```
+
+
+#### `clustal`, `clustallike` formats
+
+If the first line of the input starts with `CLUSTAL`, guess `clustal`.
+If the first line contains the phrase `multiple sequence alignment`,
+guess `clustallike`. The file suffix doesn't matter.
+
+Clustal and Clustal-like formats are parsed identically. The only
+difference is the name of the program on the first line.
+
+#### `phylip`, `phylips` formats
+
+If the first line of the input starts with two integers, assume that
+they are _nseq_ and _alen_, the number of sequences and number of
+alignment columns for a Phylip-format alignment that follows. If we
+have a suffix and it is `.ph`, `.phy`, or `.phyi`, guess `phylip`; if
+it is `.phys`, guess `phylips`. In both cases, the name width is
+assumed to be the Phylip standard 10.
+
+Otherwise the guesser then looks deeper into the input to distinguish
+interleaved from sequential variants of the format, and to check
+whether the input is using the standard 10-character Phylip name width
+or a noncanonical width:
+
+ * If the file is consistent with interleaved format, it is called
+ `phylip` format. The standard 10 character namewidth is tried first,
+ and if that doesn't work, a nonstandard namewidth is determined.
+
+ * else, if the file is consistent with sequential format, it is
+ called `phylips` format. The standard 10 character namewidth is
+ tried first; if that fails, a nonstandard namewidth is determined.
+
+It is possible to construct pathological files that are consistent
+with both interleaved and sequential formats. If you're working with
+sequential Phylip files and you need to guarantee accuracy, use a
+command line option like `--informat phylips`.
+
+
+#### `selex`, `psiblast` formats
+
+If the first line of the input doesn't conform to any of the formats
+above, and we have a suffix `.slx`, guess `selex`; if we have a suffix `.pb`, guess
+`psiblast`.
+
+Otherwise the guesser looks deeper, and tests for whether the input
+consistent with SELEX format; if it is, guess `selex`.
+
+Because PSI-BLAST is a strict subset, any file consistent with SELEX
+format will be guessed to be _selex_; reading a _psiblast_ file as
+_selex_ is harmless. If you have a legitimate _psiblast_ file and you
+want to enforce stricter parsing, use a `.pb` file suffix on it, or
+use a commandline option like `--informat psiblast` to bypass the
+guesser.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/easel/esl_msafile2.c b/easel/esl_msafile2.c
index cd0dd41..4bf5730 100644
--- a/easel/esl_msafile2.c
+++ b/easel/esl_msafile2.c
@@ -1,6 +1,6 @@
/* Memory-efficient multiple sequence alignment i/o from Pfam format
*
- * Legacy interface, now that ESLX_MSAFILE is rewritten. Just enough
+ * Legacy interface, now that ESL_MSAFILE is rewritten. Just enough
* of the old interface is retained to support --small option in
* various tools, for reading Pfam format in memory-efficient ways.
*
@@ -13,7 +13,7 @@
* 6. Copyright and license information.
*
* to-do:
- * :: add memory-efficient interface in ESLX_MSAFILE
+ * :: add memory-efficient interface in ESL_MSAFILE
* :: add memory-efficient ESL_MSA w/ API
* :: add space-efficient MSA file format
*/
@@ -147,7 +147,7 @@ esl_msafile2_Close(ESL_MSAFILE2 *afp)
*
* Throws: <eslEMEM> on allocation failure.
* <eslEINVAL> if format autodetection is attempted on
- * stdin or a gzip pipe.
+ * stdin or a gzip -dc pipe.
*/
int
esl_msafile2_OpenDigital(const ESL_ALPHABET *abc, const char *filename,
@@ -233,14 +233,14 @@ msafile2_open(const char *filename, const char *env, ESL_MSAFILE2 **ret_afp)
*/
if ((afp->f = fopen(filename, "r")) != NULL)
{
- if (esl_strdup(filename, n, &ssifile) != eslOK) goto ERROR;
- if (esl_strcat(&ssifile, n, ".ssi", 4) != eslOK) goto ERROR;
+ if ((status = esl_strdup(filename, n, &ssifile)) != eslOK) goto ERROR;
+ if ((status = esl_strcat(&ssifile, n, ".ssi", 4)) != eslOK) goto ERROR;
if ((status = esl_strdup(filename, n, &(afp->fname))) != eslOK) goto ERROR;
}
else if (esl_FileEnvOpen(filename, env, &(afp->f), &envfile) == eslOK)
{
- if (esl_strdup(envfile, n, &ssifile) != eslOK) goto ERROR;
- if (esl_strcat(&ssifile, n, ".ssi", 4) != eslOK) goto ERROR;
+ if ((status = esl_strdup(envfile, n, &ssifile)) != eslOK) goto ERROR;
+ if ((status = esl_strcat(&ssifile, n, ".ssi", 4)) != eslOK) goto ERROR;
if ((status = esl_strdup(envfile, n, &(afp->fname))) != eslOK) goto ERROR;
}
else
@@ -254,7 +254,7 @@ msafile2_open(const char *filename, const char *env, ESL_MSAFILE2 **ret_afp)
* We should warn, probably, or provide some way for caller to
* to know that we've opened the index successfully or not.
*/
- status = esl_ssi_Open(ssifile, &(afp->ssi));
+ esl_ssi_Open(ssifile, &(afp->ssi));
#endif
if (envfile != NULL) free(envfile);
@@ -907,8 +907,8 @@ esl_msafile2_RegurgitatePfam(ESL_MSAFILE2 *afp, FILE *ofp, int maxname, int maxg
/* output, after optionally removing some characters (if useme != NULL) or adding gaps (if add2me != NULL) (contract enforces only one can be non-null) */
if(useme != NULL) {
- /* if this is a GC SS_cons line, remove broken basepairs first */
- if(strncmp(tag, "SS_cons", 7) == 0) {
+ /* if this is a GC SS_cons line, remove broken basepairs first - only if it's in WUSS RNA format (NOT for a protein SS!) */
+ if (strncmp(tag, "SS_cons", 7) == 0 && afp->abc && (afp->abc->type == eslRNA || afp->abc->type == eslDNA)) {
if((status = esl_msa_RemoveBrokenBasepairsFromSS(text, afp->errbuf, textlen, useme)) != eslOK) ESL_XFAIL(eslEFORMAT, afp->errbuf, "small mem parse failed (line %d): bad #=GC SS_cons line", afp->linenumber);
}
shrink_string(text, useme, exp_alen); /* this is done in place on text */
@@ -973,7 +973,7 @@ esl_msafile2_RegurgitatePfam(ESL_MSAFILE2 *afp, FILE *ofp, int maxname, int maxg
/* output GR, after optionally removing some characters (if useme != NULL) or adding gaps (if add2me != NULL) (contract enforces only one can be non-null) */
if(useme != NULL) {
/* if this is a GR SS line, remove broken basepairs first */
- if(strncmp(tag, "SS", 2) == 0) {
+ if( strncmp(tag, "SS", 2) == 0 && afp->abc && (afp->abc->type == eslRNA || afp->abc->type == eslDNA)) {
if((status = esl_msa_RemoveBrokenBasepairsFromSS(text, afp->errbuf, textlen, useme)) != eslOK) ESL_XFAIL(eslEFORMAT, afp->errbuf, "small mem parse failed (line %d): bad #=GR SS line", afp->linenumber);
}
shrink_string(text, useme, exp_alen); /* this is done in place on text */
@@ -1384,7 +1384,7 @@ utest_RegurgitatePfam(char *filename)
{
char *msg = "RegurgitatePfam() unit test failure";
ESL_MSAFILE2 *mfp = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
char tmpfile[16] = "esltmpXXXXXX";
FILE *fp = NULL;
ESL_MSA *msa1 = NULL;
@@ -1409,14 +1409,14 @@ utest_RegurgitatePfam(char *filename)
esl_msafile2_Close(mfp);
/* Using normal interface, read in msa from filename as msa1 */
- if (eslx_msafile_Open(NULL, filename, NULL, eslMSAFILE_PFAM, NULL, &afp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(afp, &msa1) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if (esl_msafile_Open(NULL, filename, NULL, eslMSAFILE_PFAM, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(afp, &msa1) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
/* Using normal interface, read in msa from tmpfile as msa2 */
- if (eslx_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_PFAM, NULL, &afp) != eslOK) esl_fatal(msg);
- if (eslx_msafile_Read(afp, &msa2) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if (esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_PFAM, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_Read(afp, &msa2) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
@@ -1474,15 +1474,14 @@ main(int argc, char **argv)
#endif /*eslMSAFILE2_TESTDRIVE*/
/*----------------- end, test driver ----------------------------*/
+
+
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile2.c $
- * SVN $Id: esl_msafile2.c 833 2012-12-07 18:57:36Z nawrockie $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile2.h b/easel/esl_msafile2.h
index f690e3a..99531b4 100644
--- a/easel/esl_msafile2.h
+++ b/easel/esl_msafile2.h
@@ -1,11 +1,11 @@
/* Memory-efficient multiple sequence alignment i/o from Pfam format
*
- * Legacy interface, now that ESLX_MSAFILE is rewritten. Still need
+ * Legacy interface, now that ESL_MSAFILE is rewritten. Still need
* to support --small option in various tools, so the necessary parts
* of the old interface were moved here.
*
* To-do:
- * :: add memory-efficient interface in ESLX_MSAFILE
+ * :: add memory-efficient interface in ESL_MSAFILE
* :: add memory-efficient ESL_MSA w/ API
* :: add space-efficient MSA file format
*/
@@ -28,7 +28,7 @@
/* Object: ESL_MSAFILE2
*
* Defines an alignment file that we open for reading,
- * in our legacy version. See ESLX_MSAFILE (esl_msafile.c) for the
+ * in our legacy version. See ESL_MSAFILE (esl_msafile.c) for the
* preferred version.
*/
typedef struct {
@@ -83,13 +83,10 @@ extern int esl_msafile2_RegurgitatePfam(ESL_MSAFILE2 *afp, FILE *ofp, int maxn
#endif //eslMSAFILE2_INCLUDED
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile2.h $
- * SVN $Id: esl_msafile2.h 717 2011-08-04 19:18:17Z wheelert $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_a2m.c b/easel/esl_msafile_a2m.c
index 72b7425..02b5fe2 100644
--- a/easel/esl_msafile_a2m.c
+++ b/easel/esl_msafile_a2m.c
@@ -62,7 +62,7 @@ static int a2m_padding_text (ESL_MSA *msa, char **csflag, int *nins, int ncons
* verbatim.
*/
int
-esl_msafile_a2m_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_a2m_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -115,7 +115,7 @@ esl_msafile_a2m_SetInmap(ESLX_MSAFILE *afp)
* <eslESYS> on failures of fread() or other system calls
*/
int
-esl_msafile_a2m_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_a2m_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int alphatype = eslUNKNOWN;
esl_pos_t anchor = -1;
@@ -175,7 +175,7 @@ esl_msafile_a2m_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_a2m_Read()
* Synopsis: Read a UCSC A2M format alignment.
*
- * Purpose: Read an MSA from an open <ESLX_MSAFILE> <afp>, parsing
+ * Purpose: Read an MSA from an open <ESL_MSAFILE> <afp>, parsing
* for UCSC A2M (SAM) format. Create a new MSA,
* and return a ptr to it in <*ret_msa>. Caller is responsible
* for freeing this <ESL_MSA>.
@@ -217,7 +217,7 @@ esl_msafile_a2m_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <afp> is undefined.
*/
int
-esl_msafile_a2m_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_a2m_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
char **csflag = NULL; /* csflag[i][pos] is TRUE if aseq[i][pos] was uppercase consensus */
@@ -246,7 +246,7 @@ esl_msafile_a2m_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
for (idx = 0; idx < msa->sqalloc; idx++) csflag[idx] = NULL;
/* skip leading blank lines in file */
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
if (status != eslOK) goto ERROR; /* includes normal EOF */
/* tolerate sloppy space at start of name/desc line */
@@ -271,11 +271,11 @@ esl_msafile_a2m_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
thislen = 0; /* count of lowercase, uppercase, and '-': w/o dots, on first pass */
this_ncons = 0; /* count of uppercase + '-': number of consensus columns in alignment: must match for all seqs */
if (nseq) {
- for (cpos = 0; cpos <= ncons; cpos++)
- this_nins[cpos] = 0;
+ for (cpos = 0; cpos <= ncons; cpos++) // A little tricksy. <this_nins> is allocated on first seq, when nseq=0.
+ this_nins[cpos] = 0; // cppcheck gets confused and erroneously calls "possible null pointer deference"; ignore it.
}
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
while (n && isspace(*p)) { p++; n--; } /* tolerate and skip leading whitespace on line */
if (n == 0) continue; /* tolerate and skip blank lines */
@@ -306,7 +306,7 @@ esl_msafile_a2m_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
else if (status != eslOK) goto ERROR;
ESL_DASSERT1( (spos == thislen) );
}
- if (status != eslOK && status != eslEOF) goto ERROR; /* exception thrown by eslx_msafile_GetLine() */
+ if (status != eslOK && status != eslEOF) goto ERROR; /* exception thrown by esl_msafile_GetLine() */
/* status == OK: then *p == '>'. status == eslEOF: we're eof. status == anything else: error */
/* Finished reading a sequence record. */
@@ -668,36 +668,36 @@ static void
utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
- char tmpfile1[32] = "esltmpXXXXXX";
+ char tmpfile1[32] = "esltmpXXXXXX";
char tmpfile2[32] = "esltmpXXXXXX";
FILE *ofp = NULL;
int status;
- /* guessing both the format and the alphabet should work: this is a digital open */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("a2m good file test %d failed: digital open", testnumber);
- if (afp->format != eslMSAFILE_A2M) esl_fatal("a2m good file test %d failed: format autodetection", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("a2m good file test %d failed: alphabet autodetection", testnumber);
+ /* A2M must be specified (no format guessing, unless we use .a2m suffix) but guessing the alphabet should work: this is a digital open */
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_A2M, NULL, &afp)) != eslOK) esl_fatal("a2m good file test %d failed: digital open", testnumber);
+ if (afp->format != eslMSAFILE_A2M) esl_fatal("a2m good file test %d failed: bad format", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("a2m good file test %d failed: alphabet autodetection", testnumber);
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_a2m_Read(afp, &msa1)) != eslOK) esl_fatal("a2m good file test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("a2m good file test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("a2m good file test %d failed: msa invalid", testnumber);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("a2m good file test %d failed: tmpfile creation", testnumber);
if ( (status = esl_msafile_a2m_Write(ofp, msa1)) != eslOK) esl_fatal("a2m good file test %d failed: msa write, digital", testnumber);
fclose(ofp);
- /* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_A2M, NULL, &afp)) != eslOK) esl_fatal("a2m good file test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_a2m_Read(afp, &msa2)) != eslOK) esl_fatal("a2m good file test %d failed: msa read, text", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("a2m good file test %d failed: nseq/alen", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("a2m good file test %d failed: msa invalid", testnumber);
- eslx_msafile_Close(afp);
+ /* now open and read it as text mode, in known format. */
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_A2M, NULL, &afp)) != eslOK) esl_fatal("a2m good file test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_a2m_Read(afp, &msa2)) != eslOK) esl_fatal("a2m good file test %d failed: msa read, text", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("a2m good file test %d failed: nseq/alen", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("a2m good file test %d failed: msa invalid", testnumber);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("a2m good file test %d failed: tmpfile creation", testnumber);
@@ -706,10 +706,10 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_A2M, NULL, &afp)) != eslOK) esl_fatal("a2m good file test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_a2m_Read(afp, &msa2)) != eslOK) esl_fatal("a2m good file test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("a2m good file test %d failed: msa invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_A2M, NULL, &afp)) != eslOK) esl_fatal("a2m good file test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_a2m_Read(afp, &msa2)) != eslOK) esl_fatal("a2m good file test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("a2m good file test %d failed: msa invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("a2m good file test %d failed: msa compare", testnumber);
@@ -758,43 +758,43 @@ read_test_msas_digital(char *a2mfile, char *stkfile)
{
char msg[] = "A2M msa digital read unit test failed";
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *a2mfp, *stkfp;
char a2mfile2[32] = "esltmpa2m2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- if ( eslx_msafile_Open(&abc, a2mfile, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, a2mfile, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_a2m_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
/* Now write stk to a2m file, and vice versa; then retest */
- if ( esl_tmpfile_named(a2mfile2, &a2mfp) != eslOK) esl_fatal(msg);
- if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Write (a2mfp, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_PFAM) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(a2mfile2, &a2mfp) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Write (a2mfp, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_PFAM) != eslOK) esl_fatal(msg);
fclose(a2mfp);
fclose(stkfp);
- if ( eslx_msafile_Open(&abc, a2mfile2, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, a2mfile2, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(a2mfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -807,40 +807,40 @@ static void
read_test_msas_text(char *a2mfile, char *stkfile)
{
char msg[] = "A2M msa text-mode read unit test failed";
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *a2mfp, *stkfp;
char a2mfile2[32] = "esltmpa2m2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
/* vvvv-- everything's the same as the digital utest except these NULLs */
- if ( eslx_msafile_Open(NULL, a2mfile, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
-
- if ( esl_tmpfile_named(a2mfile2, &a2mfp) != eslOK) esl_fatal(msg);
- if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Write (a2mfp, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_PFAM) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, a2mfile, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
+
+ if ( esl_tmpfile_named(a2mfile2, &a2mfp) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Write (a2mfp, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_PFAM) != eslOK) esl_fatal(msg);
fclose(a2mfp);
fclose(stkfp);
- if ( eslx_msafile_Open(NULL, a2mfile2, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_a2m_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, a2mfile2, NULL, eslMSAFILE_A2M, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_a2m_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(a2mfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -907,7 +907,7 @@ main(int argc, char **argv)
/* Various "good" files that should be parsed correctly */
for (testnumber = 1; testnumber <= ngoodtests; testnumber++)
{
- strcpy(tmpfile, "esltmpXXXXXX");
+ strcpy(tmpfile, "esltmpXXXXXX");
if (esl_tmpfile_named(tmpfile, &ofp) != eslOK) esl_fatal(msg);
switch (testnumber) {
case 1: utest_write_good1 (ofp, &expected_alphatype, &expected_nseq, &expected_alen); break;
@@ -968,7 +968,7 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
@@ -981,12 +981,12 @@ main(int argc, char **argv)
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ((status = esl_msafile_a2m_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
printf("alphabet: %s\n", (abc ? esl_abc_DecodeType(abc->type) : "none (text mode)"));
printf("# of seqs: %d\n", msa->nseq);
@@ -997,7 +997,7 @@ main(int argc, char **argv)
esl_msafile_a2m_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -1024,18 +1024,18 @@ main(int argc, char **argv)
{
char *filename = argv[1];
int fmt = eslMSAFILE_A2M;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) eslx_msafile_OpenFailure(afp, status);
- if ( (status = esl_msafile_a2m_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_a2m_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
printf("%6d seqs, %5d columns\n", msa->nseq, (int) msa->alen);
esl_msafile_a2m_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_a2m_example2::end::*/
@@ -1046,13 +1046,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_a2m.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_a2m.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_a2m.h b/easel/esl_msafile_a2m.h
index ceef7aa..5f457d8 100644
--- a/easel/esl_msafile_a2m.h
+++ b/easel/esl_msafile_a2m.h
@@ -6,22 +6,19 @@
#include "esl_msa.h"
#include "esl_msafile.h"
-extern int esl_msafile_a2m_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_a2m_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_a2m_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_a2m_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_a2m_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_a2m_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
extern int esl_msafile_a2m_Write (FILE *fp, const ESL_MSA *msa);
#endif /* eslMSAFILE_A2M_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_a2m.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_a2m.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_afa.c b/easel/esl_msafile_afa.c
index 4cb67e0..d6c59ab 100644
--- a/easel/esl_msafile_afa.c
+++ b/easel/esl_msafile_afa.c
@@ -39,7 +39,7 @@
* map ' ' to <eslDSQ_IGNORED>.
*/
int
-esl_msafile_afa_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_afa_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -89,7 +89,7 @@ esl_msafile_afa_SetInmap(ESLX_MSAFILE *afp)
* modularity/separability of parsers.
*/
int
-esl_msafile_afa_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_afa_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int alphatype = eslUNKNOWN;
esl_pos_t anchor = -1;
@@ -148,7 +148,7 @@ esl_msafile_afa_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_afa_Read()
* Synopsis: Read in an aligned FASTA format alignment.
*
- * Purpose: Read an MSA from an open <ESLX_MSAFILE> <afp>,
+ * Purpose: Read an MSA from an open <ESL_MSAFILE> <afp>,
* parsing for aligned FASTA format. Create
* a new MSA, and return a ptr to that alignment
* in <*ret_msa>. Caller is responsible for free'ing
@@ -182,7 +182,7 @@ esl_msafile_afa_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <afp> is undefined.
*/
int
-esl_msafile_afa_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_afa_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
int idx = 0;
@@ -202,7 +202,7 @@ esl_msafile_afa_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
if (! afp->abc && (msa = esl_msa_Create( 16, -1)) == NULL) { status = eslEMEM; goto ERROR; }
/* skip leading blank lines in file */
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
if (status != eslOK) goto ERROR; /* includes normal EOF */
/* tolerate sloppy space at start of line */
@@ -226,7 +226,7 @@ esl_msafile_afa_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
* test on PF00005 Full)
*/
this_alen = 0;
- while ((status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ((status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
while (n && isspace(*p)) { p++; n--; } /* tolerate and skip leading whitespace on line */
if (n == 0) continue; /* tolerate and skip blank lines */
@@ -269,7 +269,8 @@ esl_msafile_afa_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
* If <msa> is in text mode, residues and gaps are written
* exactly as they appear in the data structure. If <msa>
* is digital, residues are in uppercase and all gaps are
- * -.
+ * dots (.). Dots are preferred to dashes because it
+ * minimizes confusion with A2M format.
*
* Args: fp - open stream to write to
* msa - MSA to write
@@ -314,7 +315,7 @@ esl_msafile_afa_Write(FILE *fp, const ESL_MSA *msa)
* 2. Unit tests.
*****************************************************************/
#ifdef eslMSAFILE_AFA_TESTDRIVE
-/* a standard globin example, but dusted with evil:
+/* a standard globin example, dusted with evil:
* 1. \r\n DOS line terminators;
* 2. extra blank lines and whitespace
* 3. unusual but legal residues
@@ -347,36 +348,12 @@ utest_write_good1(FILE *ofp, int *ret_alphatype, int *ret_nseq, int *ret_alen)
*ret_alen = 165;
}
-/* note: alphabet detection for DNA/RNA doesn't work if unusual codes are used */
-static void
-utest_write_good2(FILE *ofp, int *ret_alphatype, int *ret_nseq, int *ret_alen)
-{
- fputs(">tRNA2\n", ofp);
- fputs("UCCGAUAUAGUGUAACGGCUAUCACAUCACGCUUUCACCGUGG-AGACCGGGGUUCGACU\n", ofp);
- fputs("CCCCGUAUCGGAG\n", ofp);
- fputs(">tRNA3\n", ofp);
- fputs("UCCGUGAUAGUUUAAUGGUCAGAAUGG-GCGCUUGUCGCGUGCCAGAUCGGGGUUCAAUU\n", ofp);
- fputs("CCCCGUCGCGGAG\n", ofp);
- fputs(">tRNA5\n", ofp);
- fputs("GGGCACAUGGCGCAGUUGGUAGCGCGCUUCCCUUGCAAGGAAGAGGUCAUCGGUUCGAUU\n", ofp);
- fputs("CCGGUUGCGUCCA\n", ofp);
- fputs(">tRNA1\n", ofp);
- fputs("GCGGAUUUAGCUCAGUUGGGAGAGCGCCAGACUGAAGAUCUGGAGGUCCUGUGUUCGAUC\n", ofp);
- fputs("CACAGAAUUCGCA\n", ofp);
- fputs(">tRNA4\n", ofp);
- fputs("GCUCGUAUGGCGCAGUGG-UAGCGCAGCAGAUUGCAAAUCUGUUGGUCCUUAGUUCGAUC\n", ofp);
- fputs("CUGAGUGCGAGCU\n", ofp);
-
- *ret_alphatype = eslRNA;
- *ret_nseq = 5;
- *ret_alen = 73;
-}
static void
utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
char tmpfile1[32] = "esltmpXXXXXX";
@@ -385,16 +362,16 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
int status;
/* guessing both the format and the alphabet should work: this is a digital open */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("afa good file test %d failed: digital open", testnumber);
- if (afp->format != eslMSAFILE_AFA) esl_fatal("afa good file test %d failed: format autodetection", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("afa good file test %d failed: alphabet autodetection", testnumber);
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("afa good file test %d failed: digital open", testnumber);
+ if (afp->format != eslMSAFILE_AFA) esl_fatal("afa good file test %d failed: format autodetection", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("afa good file test %d failed: alphabet autodetection", testnumber);
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_afa_Read(afp, &msa1)) != eslOK) esl_fatal("afa good file test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("afa good file test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("afa good file test %d failed: msa invalid", testnumber);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("afa good file test %d failed: tmpfile creation", testnumber);
@@ -402,11 +379,11 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
fclose(ofp);
/* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_AFA, NULL, &afp)) != eslOK) esl_fatal("afa good file test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_afa_Read(afp, &msa2)) != eslOK) esl_fatal("afa good file test %d failed: msa read, text", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("afa good file test %d failed: nseq/alen", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("afa good file test %d failed: msa invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_AFA, NULL, &afp)) != eslOK) esl_fatal("afa good file test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_afa_Read(afp, &msa2)) != eslOK) esl_fatal("afa good file test %d failed: msa read, text", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("afa good file test %d failed: nseq/alen", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("afa good file test %d failed: msa invalid", testnumber);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("afa good file test %d failed: tmpfile creation", testnumber);
@@ -415,10 +392,10 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_AFA, NULL, &afp)) != eslOK) esl_fatal("afa good file test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_afa_Read(afp, &msa2)) != eslOK) esl_fatal("afa good file test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("afa good file test %d failed: msa invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_AFA, NULL, &afp)) != eslOK) esl_fatal("afa good file test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_afa_Read(afp, &msa2)) != eslOK) esl_fatal("afa good file test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("afa good file test %d failed: msa invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("afa good file test %d failed: msa compare", testnumber);
@@ -430,6 +407,7 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
esl_alphabet_Destroy(abc);
}
+
static void
write_test_msas(FILE *ofp1, FILE *ofp2)
{
@@ -465,43 +443,43 @@ read_test_msas_digital(char *afafile, char *stkfile)
{
char msg[] = "aligned FASTA msa digital read unit test failed";
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *afafp, *stkfp;
char afafile2[32] = "esltmpafa2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- if ( eslx_msafile_Open(&abc, afafile, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, afafile, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_afa_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
/* Now write stk to afa file, and vice versa; then retest */
- if ( esl_tmpfile_named(afafile2, &afafp) != eslOK) esl_fatal(msg);
- if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Write (afafp, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(afafile2, &afafp) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Write (afafp, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(afafp);
fclose(stkfp);
- if ( eslx_msafile_Open(&abc, afafile2, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, afafile2, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(afafile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -514,40 +492,40 @@ static void
read_test_msas_text(char *afafile, char *stkfile)
{
char msg[] = "aligned FASTA msa text-mode read unit test failed";
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *afafp, *stkfp;
char afafile2[32] = "esltmpafa2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- /* vvvv-- everything's the same as the digital utest except these NULLs */
- if ( eslx_msafile_Open(NULL, afafile, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
-
- if ( esl_tmpfile_named(afafile2, &afafp) != eslOK) esl_fatal(msg);
- if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Write (afafp, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
+ /* vvvv-- everything's the same as the digital utest except these NULLs */
+ if ( esl_msafile_Open(NULL, afafile, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
+
+ if ( esl_tmpfile_named(afafile2, &afafp) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Write (afafp, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(afafp);
fclose(stkfp);
- if ( eslx_msafile_Open(NULL, afafile2, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_afa_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, afafile2, NULL, eslMSAFILE_AFA, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_afa_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(afafile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -593,7 +571,7 @@ main(int argc, char **argv)
char stkfile[32] = "esltmpstkXXXXXX";
FILE *afafp, *stkfp;
int testnumber;
- int ngoodtests = 2;
+ int ngoodtests = 1;
char tmpfile[32];
FILE *ofp;
int expected_alphatype;
@@ -617,7 +595,6 @@ main(int argc, char **argv)
if (esl_tmpfile_named(tmpfile, &ofp) != eslOK) esl_fatal(msg);
switch (testnumber) {
case 1: utest_write_good1 (ofp, &expected_alphatype, &expected_nseq, &expected_alen); break;
- case 2: utest_write_good2 (ofp, &expected_alphatype, &expected_nseq, &expected_alen); break;
}
fclose(ofp);
utest_goodfile(tmpfile, testnumber, expected_alphatype, expected_nseq, expected_alen);
@@ -674,7 +651,7 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
@@ -687,12 +664,12 @@ main(int argc, char **argv)
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ((status = esl_msafile_afa_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
printf("alphabet: %s\n", (abc ? esl_abc_DecodeType(abc->type) : "none (text mode)"));
printf("# of seqs: %d\n", msa->nseq);
@@ -703,7 +680,7 @@ main(int argc, char **argv)
esl_msafile_afa_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -729,18 +706,18 @@ main(int argc, char **argv)
{
char *filename = argv[1];
int fmt = eslMSAFILE_AFA;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) eslx_msafile_OpenFailure(afp, status);
- if ( (status = esl_msafile_afa_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_afa_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
printf("%6d seqs, %5d columns\n", msa->nseq, (int) msa->alen);
esl_msafile_afa_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_afa_example2::end::*/
@@ -752,13 +729,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $Id: esl_msafile_afa.c 754 2012-03-14 20:30:47Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_afa.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_afa.h b/easel/esl_msafile_afa.h
index d2fd707..09304e2 100644
--- a/easel/esl_msafile_afa.h
+++ b/easel/esl_msafile_afa.h
@@ -6,22 +6,19 @@
#include "esl_msa.h"
#include "esl_msafile.h"
-extern int esl_msafile_afa_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_afa_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_afa_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_afa_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_afa_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_afa_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
extern int esl_msafile_afa_Write (FILE *fp, const ESL_MSA *msa);
#endif /* eslMSAFILE_AFA_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_afa.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_afa.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_clustal.c b/easel/esl_msafile_clustal.c
index 6e9096b..eb9f7f5 100644
--- a/easel/esl_msafile_clustal.c
+++ b/easel/esl_msafile_clustal.c
@@ -45,7 +45,7 @@ static int make_digital_consensus_line(const ESL_MSA *msa, char **ret_consline);
* Digital mode enforces the usual Easel alphabets.
*/
int
-esl_msafile_clustal_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_clustal_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -89,7 +89,7 @@ esl_msafile_clustal_SetInmap(ESLX_MSAFILE *afp)
* <eslESYS> on failures of fread() or other system calls
*/
int
-esl_msafile_clustal_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_clustal_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int alphatype = eslUNKNOWN;
esl_pos_t anchor = -1;
@@ -124,7 +124,10 @@ esl_msafile_clustal_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
x = toupper(p[pos]) - 'A';
ct[x]++;
nres++;
- }
+ }
+ /* note that GuessAlphabet() is robust against the optional coord lines
+ * and the annotation lines -- it only counts ascii characters.
+ */
/* try to stop early, checking after 500, 5000, and 50000 residues: */
if (step < nsteps && nres > threshold[step]) {
@@ -154,7 +157,7 @@ esl_msafile_clustal_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_clustal_Read()
* Synopsis: Read in a CLUSTAL or CLUSTALLIKE alignment.
*
- * Purpose: Read an MSA from an open <ESLX_MSAFILE> <afp>, parsing
+ * Purpose: Read an MSA from an open <ESL_MSAFILE> <afp>, parsing
* for Clustal or Clustal-like format, starting from the
* current point. (<afp->format> is expected to be
* <eslMSAFILE_CLUSTAL> or <eslMSAFILE_CLUSTALLIKE>.) Create a
@@ -187,7 +190,7 @@ esl_msafile_clustal_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <eslEINCONCEIVABLE> - "impossible" corruption
*/
int
-esl_msafile_clustal_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_clustal_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
char *p = NULL;
@@ -215,7 +218,7 @@ esl_msafile_clustal_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
if (! afp->abc && (msa = esl_msa_Create( 16, -1)) == NULL) { status = eslEMEM; goto ERROR; }
/* skip leading blank lines in file */
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
if (status != eslOK) goto ERROR; /* includes normal EOF */
/* That first line says something like: "CLUSTAL W (1.83) multiple sequence alignment" */
@@ -225,7 +228,7 @@ esl_msafile_clustal_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
/* skip blank lines again */
do {
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) ESL_XFAIL(eslEFORMAT, afp->errmsg, "no alignment data following header");
else if (status != eslOK) goto ERROR;
} while (esl_memspn(afp->line, afp->n, " \t") == afp->n); /* idiom for "blank line" */
@@ -238,7 +241,7 @@ esl_msafile_clustal_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
for (pos = pos+1; pos < n; pos++) if ( isspace(p[pos])) break; name_len = pos - name_start;
for (pos = pos+1; pos < n; pos++) if (! isspace(p[pos])) break; seq_start = pos;
if (pos >= n) ESL_XFAIL(eslEFORMAT, afp->errmsg, "invalid alignment line");
- for (pos = n-1; pos > 0; pos--) if (! isspace(p[pos])) break; seq_len = pos - seq_start + 1;
+ for (pos = pos+1; pos < n; pos++) if ( isspace(p[pos])) break; seq_len = pos - seq_start; /* expect one block; ignore trailing stuff, inc. optional coords */
if (idx == 0) {
block_seq_start = seq_start;
@@ -270,7 +273,7 @@ esl_msafile_clustal_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
if (cur_alen - alen != seq_len) ESL_XFAIL(eslEFORMAT, afp->errmsg, "unexpected number of seq characters");
/* get next line. if it's a consensus line, we're done with the block */
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) ESL_XFAIL(eslEFORMAT, afp->errmsg, "alignment block did not end with consensus line");
else if (status != eslOK) goto ERROR;
@@ -281,7 +284,7 @@ esl_msafile_clustal_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
/* skip blank lines until we find start of next block, or EOF */
do {
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) break;
else if (status != eslOK) goto ERROR;
} while (esl_memspn(p, n, " \t") == n);
@@ -658,11 +661,38 @@ utest_write_good2(FILE *ofp, int *ret_format, int *ret_alphatype, int *ret_nseq,
*ret_alen = 73;
}
+/* An example of clustal format with optional sequence coords;
+ * a quickly-taken subset of a larger alignment reported as a bug.
+ */
+static void
+utest_write_good3(FILE *ofp, int *ret_format, int *ret_alphatype, int *ret_nseq, int *ret_alen)
+{
+ fputs("CLUSTAL 2.1 multiple sequence alignment\n", ofp);
+ fputs("\n", ofp);
+ fputs("gi|85091828|ref|XP_959093.1| MSDFTSKVKVLRDGQKPEFPSN----ANTLEYAQSLDAQDELRHFRNEFI 46\n", ofp);
+ fputs("gi|70993990|ref|XP_751842.1| ----MSTNGTLS---KPEFPAN----AASKEYAASLDAADPFAGFREKFI 39\n", ofp);
+ fputs("gi|71001376|ref|XP_755369.1| ---MGSRLHVQVIHGGPPLPYKDDIRAFGKEYAEQLDAQDPLRRFRDEFI 47\n", ofp);
+ fputs("gi|71744026|ref|XP_803513.1| -----------------------------------MDRNDPLQVHRDAFN 15\n", ofp);
+ fputs(" : : \n", ofp);
+ fputs("\n", ofp);
+ fputs("gi|85091828|ref|XP_959093.1| IPTRASLKKKALDGI--------------IPGTQANGTTTSTDADTPCIY 82\n", ofp);
+ fputs("gi|70993990|ref|XP_751842.1| IPSKANIASTKLA----------------KPGLSSE----------PCIY 63\n", ofp);
+ fputs("gi|71001376|ref|XP_755369.1| IPSKKDLKRKTLFPNDGMYSCGHPICFANTSCACVHAAETEETSDEKCIY 97\n", ofp);
+ fputs("gi|71744026|ref|XP_803513.1| IPKRRDGS--------------------------------------DHVY 27\n", ofp);
+ fputs(" *\n", ofp);
+
+ *ret_format = eslMSAFILE_CLUSTAL;
+ *ret_alphatype = eslAMINO;
+ *ret_nseq = 4;
+ *ret_alen = 100;
+}
+
+
static void
utest_goodfile(char *filename, int testnumber, int expected_format, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
char tmpfile1[32] = "esltmpXXXXXX";
@@ -671,15 +701,15 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
int status;
/* guessing both the format and the alphabet should work: this is a digital open */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("clustal good file test %d failed: digital open", testnumber);
- if (afp->format != expected_format) esl_fatal("clustal good file test %d failed: format autodetection", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("clustal good file test %d failed: alphabet autodetection", testnumber);
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("clustal good file test %d failed: digital open", testnumber);
+ if (afp->format != expected_format) esl_fatal("clustal good file test %d failed: format autodetection", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("clustal good file test %d failed: alphabet autodetection", testnumber);
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_clustal_Read(afp, &msa1)) != eslOK) esl_fatal("clustal good file test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("clustal good file test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("clustal good file test %d failed: msa1 invalid", testnumber);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("clustal good file test %d failed: tmpfile creation", testnumber);
@@ -687,11 +717,11 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
fclose(ofp);
/* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, expected_format, NULL, &afp)) != eslOK) esl_fatal("clustal good file test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_clustal_Read(afp, &msa2)) != eslOK) esl_fatal("clustal good file test %d failed: msa read, text", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("clustal good file test %d failed: nseq/alen", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("clustal good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, expected_format, NULL, &afp)) != eslOK) esl_fatal("clustal good file test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_clustal_Read(afp, &msa2)) != eslOK) esl_fatal("clustal good file test %d failed: msa read, text", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("clustal good file test %d failed: nseq/alen", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("clustal good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("clustal good file test %d failed: tmpfile creation", testnumber);
@@ -700,10 +730,10 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, expected_format, NULL, &afp)) != eslOK) esl_fatal("clustal good file test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_clustal_Read(afp, &msa2)) != eslOK) esl_fatal("clustal good file test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("clustal good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, expected_format, NULL, &afp)) != eslOK) esl_fatal("clustal good file test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_clustal_Read(afp, &msa2)) != eslOK) esl_fatal("clustal good file test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("clustal good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("clustal good file test %d failed: msa compare", testnumber);
@@ -752,25 +782,25 @@ read_test_msas_digital(char *alnfile, char *stkfile)
{
char msg[] = "CLUSTAL msa digital read unit test failed";
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *alnfp, *stkfp;
char alnfile2[32] = "esltmpaln2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- if ( eslx_msafile_Open(&abc, alnfile, NULL, eslMSAFILE_CLUSTALLIKE, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_clustal_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, alnfile, NULL, eslMSAFILE_CLUSTALLIKE, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_clustal_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_clustal_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_clustal_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
/* Now write stk to clustal file, and vice versa; then retest */
if ( esl_tmpfile_named(alnfile2, &alnfp) != eslOK) esl_fatal(msg);
@@ -779,16 +809,16 @@ read_test_msas_digital(char *alnfile, char *stkfile)
if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(alnfp);
fclose(stkfp);
- if ( eslx_msafile_Open(&abc, alnfile2, NULL, eslMSAFILE_CLUSTAL, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_clustal_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, alnfile2, NULL, eslMSAFILE_CLUSTAL, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_clustal_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(alnfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -801,23 +831,23 @@ static void
read_test_msas_text(char *alnfile, char *stkfile)
{
char msg[] = "CLUSTAL msa text-mode read unit test failed";
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *alnfp, *stkfp;
char alnfile2[32] = "esltmpaln2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- /* vvvv-- everything's the same as the digital utest except these NULLs */
- if ( eslx_msafile_Open(NULL, alnfile, NULL, eslMSAFILE_CLUSTALLIKE, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_clustal_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_clustal_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ /* vvvv-- everything's the same as the digital utest except these NULLs */
+ if ( esl_msafile_Open(NULL, alnfile, NULL, eslMSAFILE_CLUSTALLIKE, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_clustal_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_clustal_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
if ( esl_tmpfile_named(alnfile2, &alnfp) != eslOK) esl_fatal(msg);
if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
@@ -825,16 +855,16 @@ read_test_msas_text(char *alnfile, char *stkfile)
if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(alnfp);
fclose(stkfp);
- if ( eslx_msafile_Open(NULL, alnfile2, NULL, eslMSAFILE_CLUSTAL, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_clustal_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, alnfile2, NULL, eslMSAFILE_CLUSTAL, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_clustal_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(alnfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -880,7 +910,7 @@ main(int argc, char **argv)
char stkfile[32] = "esltmpstkXXXXXX";
FILE *alnfp, *stkfp;
int testnumber;
- int ngoodtests = 2;
+ int ngoodtests = 3;
char tmpfile[32];
FILE *ofp;
int expected_format;
@@ -905,6 +935,7 @@ main(int argc, char **argv)
switch (testnumber) {
case 1: utest_write_good1 (ofp, &expected_format, &expected_alphatype, &expected_nseq, &expected_alen); break;
case 2: utest_write_good2 (ofp, &expected_format, &expected_alphatype, &expected_nseq, &expected_alen); break;
+ case 3: utest_write_good3 (ofp, &expected_format, &expected_alphatype, &expected_nseq, &expected_alen); break;
}
fclose(ofp);
utest_goodfile(tmpfile, testnumber, expected_format, expected_alphatype, expected_nseq, expected_alen);
@@ -962,7 +993,7 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
@@ -976,14 +1007,14 @@ main(int argc, char **argv)
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ( (status = esl_msafile_clustal_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
- printf("format variant: %s\n", eslx_msafile_DecodeFormat(afp->format));
+ printf("format variant: %s\n", esl_msafile_DecodeFormat(afp->format));
printf("alphabet: %s\n", (abc ? esl_abc_DecodeType(abc->type) : "none (text mode)"));
printf("# of seqs: %d\n", msa->nseq);
printf("# of cols: %d\n", (int) msa->alen);
@@ -993,7 +1024,7 @@ main(int argc, char **argv)
esl_msafile_clustal_Write(stdout, msa, eslMSAFILE_CLUSTAL);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -1018,21 +1049,21 @@ main(int argc, char **argv)
int
main(int argc, char **argv)
{
- char *filename = argv[1];
- int fmt = eslMSAFILE_CLUSTAL; /* or eslMSAFILE_CLUSTALLIKE */
- ESLX_MSAFILE *afp = NULL;
- ESL_MSA *msa = NULL;
+ char *filename = argv[1];
+ int fmt = eslMSAFILE_CLUSTAL; /* or eslMSAFILE_CLUSTALLIKE */
+ ESL_MSAFILE *afp = NULL;
+ ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) eslx_msafile_OpenFailure(afp, status);
- if ( (status = esl_msafile_clustal_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_clustal_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
printf("%6d seqs, %5d columns\n", msa->nseq, (int) msa->alen);
esl_msafile_clustal_Write(stdout, msa, eslMSAFILE_CLUSTAL);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_clustal_example2::end::*/
@@ -1041,13 +1072,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $Id: esl_msafile_clustal.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_clustal.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_clustal.h b/easel/esl_msafile_clustal.h
index 9fba76b..e5a711b 100644
--- a/easel/esl_msafile_clustal.h
+++ b/easel/esl_msafile_clustal.h
@@ -6,22 +6,19 @@
#include "esl_msa.h"
#include "esl_msafile.h"
-extern int esl_msafile_clustal_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_clustal_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_clustal_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_clustal_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_clustal_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_clustal_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
extern int esl_msafile_clustal_Write (FILE *fp, const ESL_MSA *msa, int fmt);
#endif /* eslMSAFILE_CLUSTAL_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_clustal.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_clustal.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_phylip.c b/easel/esl_msafile_phylip.c
index 04d5f54..37c8ea0 100644
--- a/easel/esl_msafile_phylip.c
+++ b/easel/esl_msafile_phylip.c
@@ -31,13 +31,13 @@
#define eslMSAFILE_PHYLIP_LEGALSYMS "-ABCDEFGHIJKLMNOPQRSTUVWZYX*?."
-static int phylip_interleaved_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated);
-static int phylip_interleaved_Write(FILE *fp, const ESL_MSA *msa, ESLX_MSAFILE_FMTDATA *opt_fmtd);
+static int phylip_interleaved_Read(ESL_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated);
+static int phylip_interleaved_Write(FILE *fp, const ESL_MSA *msa, ESL_MSAFILE_FMTDATA *opt_fmtd);
-static int phylip_sequential_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated);
-static int phylip_sequential_Write(FILE *fp, const ESL_MSA *msa, ESLX_MSAFILE_FMTDATA *opt_fmtd);
+static int phylip_sequential_Read(ESL_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated);
+static int phylip_sequential_Write(FILE *fp, const ESL_MSA *msa, ESL_MSAFILE_FMTDATA *opt_fmtd);
-static int phylip_check_interleaved (ESL_BUFFER *bf, int *ret_namewidth);
+static int phylip_check_interleaved (ESL_BUFFER *bf, int *ret_nblocks, int *ret_namewidth);
static int phylip_check_sequential_known (ESL_BUFFER *bf, int namewidth);
static int phylip_check_sequential_unknown(ESL_BUFFER *bf, int *ret_namewidth);
static int phylip_parse_header(ESL_BUFFER *bf, int32_t *ret_nseq, int32_t *ret_alen, char **ret_p, esl_pos_t *ret_n);
@@ -83,7 +83,7 @@ static int phylip_rectify_output_seq_text(char *buf);
* Xref: http://evolution.genetics.washington.edu/phylip/doc/sequence.html
*/
int
-esl_msafile_phylip_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_phylip_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -105,10 +105,10 @@ esl_msafile_phylip_SetInmap(ESLX_MSAFILE *afp)
#endif
if (! afp->abc)
{
- for (sym = 1; sym < 128; sym++) afp->inmap[sym] = eslDSQ_ILLEGAL;
- for (sym = 'a'; sym < 'z'; sym++) afp->inmap[sym] = sym;
- for (sym = 'A'; sym < 'Z'; sym++) afp->inmap[sym] = sym;
- for (sym = '0'; sym < '9'; sym++) afp->inmap[sym] = eslDSQ_IGNORED;
+ for (sym = 1; sym < 128; sym++) afp->inmap[sym] = eslDSQ_ILLEGAL;
+ for (sym = 'a'; sym <= 'z'; sym++) afp->inmap[sym] = sym;
+ for (sym = 'A'; sym <= 'Z'; sym++) afp->inmap[sym] = sym;
+ for (sym = '0'; sym <= '9'; sym++) afp->inmap[sym] = eslDSQ_IGNORED;
afp->inmap['-'] = '-';
afp->inmap['*'] = '*';
afp->inmap['?'] = '?';
@@ -141,7 +141,7 @@ esl_msafile_phylip_SetInmap(ESLX_MSAFILE *afp)
* <eslESYS> on failures of fread() or other system calls
*/
int
-esl_msafile_phylip_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_phylip_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int namewidth = (afp->fmtd.namewidth ? afp->fmtd.namewidth : 10); /* default: strict PHYLIP, namewidth 10 */
int alphatype = eslUNKNOWN;
@@ -213,7 +213,7 @@ esl_msafile_phylip_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_phylip_Read()
* Synopsis: Read in a PHYLIP format alignment.
*
- * Purpose: Read an MSA from an open <ESLX_MSAFILE> <afp>, parsing for
+ * Purpose: Read an MSA from an open <ESL_MSAFILE> <afp>, parsing for
* Phylip format, starting from the current point. The
* format may be either the interleaved or sequential
* variant, according to the format set in <afp->format>:
@@ -248,7 +248,7 @@ esl_msafile_phylip_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <eslEINCONCEIVABLE> - "impossible" corruption
*/
int
-esl_msafile_phylip_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_phylip_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
int32_t alen_stated; /* int32_t because we're using strtoi32() to parse it from the file */
@@ -262,7 +262,7 @@ esl_msafile_phylip_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
afp->errmsg[0] = '\0';
/* skip leading blank lines (though there shouldn't be any) */
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(p, n, " \t") == n) ;
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK && esl_memspn(p, n, " \t") == n) ;
if (status != eslOK) goto ERROR; /* includes normal EOF */
/* the first line: <nseq> <alen> */
@@ -280,7 +280,7 @@ esl_msafile_phylip_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
/* load next line, skipping any blank ones (though there shouldn't be any) */
do {
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) ESL_XFAIL(eslEFORMAT, afp->errmsg, "no alignment data following PHYLIP header");
else if (status != eslOK) goto ERROR;
} while (esl_memspn(p, n, " \t") == n); /* idiom for "blank line" */
@@ -328,11 +328,11 @@ esl_msafile_phylip_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
* <eslEWRITE> on any system write error, such as a filled disk.
*/
int
-esl_msafile_phylip_Write(FILE *fp, const ESL_MSA *msa, int format, ESLX_MSAFILE_FMTDATA *opt_fmtd)
+esl_msafile_phylip_Write(FILE *fp, const ESL_MSA *msa, int format, ESL_MSAFILE_FMTDATA *opt_fmtd)
{
if (format == eslMSAFILE_PHYLIP) return phylip_interleaved_Write(fp, msa, opt_fmtd);
else if (format == eslMSAFILE_PHYLIPS) return phylip_sequential_Write (fp, msa, opt_fmtd);
- else ESL_EXCEPTION(eslEINVAL, "format %s is not a PHYLIP format", eslx_msafile_DecodeFormat(format));
+ else ESL_EXCEPTION(eslEINVAL, "format %s is not a PHYLIP format", esl_msafile_DecodeFormat(format));
}
/* Function: esl_msafile_phylip_CheckFileFormat()
@@ -349,42 +349,59 @@ esl_msafile_phylip_Write(FILE *fp, const ESL_MSA *msa, int format, ESLX_MSAFILE_
*
* Strict PHYLIP format has a name/identifier field width
* of exactly 10 characters, but variants of the format are
- * in common use with different name widths. A guess for
- * the name width is returned in <*ret_namewidth>.
+ * in common use with different name widths. The
+ * name width is determined and returned in <*ret_namewidth>.
*
* If the input doesn't appear to be in PHYLIP format,
* return <eslFAIL>, with <*ret_format> as
* <eslMSAFILE_UNKNOWN> and <*ret_namewidth> as 0.
*
- * The PHYLIP format definition is ambiguous. It is
+ * The PHYLIP format definition is ambiguous; it is
* possible to construct pathological inputs that could be
- * validly parsed to yield different data. This includes
- * inputs that can be read as either interleaved or
- * sequential files, or inputs which have different
- * apparently valid name widths. In ambiguous cases, the
- * guess defaults to interleaved format, and to a namewidth
- * of 10, on the theory that these are more common.
+ * validly parsed to yield different data when read as
+ * interleaved versus sequential. (This requires names that
+ * use a character set that looks like sequence, among
+ * other unusual edge conditions.) If the format variant
+ * cannot be unambiguously determined, we do not attempt to
+ * make a guess that might result in corrupted input;
+ * rather, return <eslEAMBIGUOUS>.
*
* Args: bf - input buffer
* *ret_format - RETURN: format variant, <eslMSAFILE_PHYLIP>, <_PHYLIPS>, <_UNKNOWN>
* *ret_namewidth - RETURN: width of name field, in characters
*
- * Returns: <eslOK> if input is in PHYLIP format.
- * <eslFAIL> if not.
+ * Returns: <eslOK> if input is in PHYLIP format; <*ret_format> is set to
+ * <eslMSAFILE_PHYLIP> or <eslMSAFILE_PHYLIPS>; <*ret_namewidth>
+ * is the name width, either the usual 10, or something nonstandard.
+ *
+ * <eslEAMBIGUOUS> if the input appears to be in a PHYLIP format but
+ * we can't tell which one. <*ret_format> is <eslMSAFILE_UNKNOWN>,
+ * <*ret_namewidth> is 0.
+ *
+ * <eslFAIL> if the input is not in either PHYLIP format;
+ * <*ret_format> is <eslMSAFILE_UNKNOWN>, <*ret_namewidth> is 0.
*
* Throws: (no abnormal error conditions)
*/
int
esl_msafile_phylip_CheckFileFormat(ESL_BUFFER *bf, int *ret_format, int *ret_namewidth)
{
- int status;
+ int maybe_interleaved = FALSE; // Must worry about pathological files consistent with both formats.
+ int maybe_sequential = FALSE;
+ int nblocks; // number of interleaved blocks. if only 1, interleaved == sequential
+ int w1, w2; // name widths if interleaved, sequential
+
+ if ( phylip_check_interleaved(bf, &nblocks, &w1) == eslOK) { maybe_interleaved = TRUE; }
+
+ if (maybe_interleaved && nblocks == 1) { *ret_namewidth = w1; *ret_format = eslMSAFILE_PHYLIP; return eslOK; }
- if ( (status = phylip_check_interleaved (bf, ret_namewidth)) == eslOK) { *ret_format = eslMSAFILE_PHYLIP; return eslOK; }
- else if ( (status = phylip_check_sequential_known (bf, 10)) == eslOK) { *ret_format = eslMSAFILE_PHYLIPS; *ret_namewidth = 10; return eslOK; }
- else if ( (status = phylip_check_sequential_unknown(bf, ret_namewidth)) == eslOK) { *ret_format = eslMSAFILE_PHYLIPS; return eslOK; }
+ if ( phylip_check_sequential_known (bf, 10) == eslOK) { maybe_sequential = TRUE; w2 = 10; }
+ else if ( phylip_check_sequential_unknown(bf, &w2) == eslOK) { maybe_sequential = TRUE; }
- *ret_format = eslMSAFILE_UNKNOWN;
- return eslFAIL;
+ if (maybe_interleaved && maybe_sequential) { *ret_namewidth = 0; *ret_format = eslMSAFILE_UNKNOWN; return eslEAMBIGUOUS; }
+ else if (maybe_interleaved) { *ret_namewidth = w1; *ret_format = eslMSAFILE_PHYLIP; return eslOK; }
+ else if (maybe_sequential) { *ret_namewidth = w2; *ret_format = eslMSAFILE_PHYLIPS; return eslOK; }
+ else { *ret_namewidth = 0; *ret_format = eslMSAFILE_UNKNOWN; return eslFAIL; }
}
/*-------------- end, API for PHYLIP format i/o -----------------*/
@@ -399,7 +416,7 @@ esl_msafile_phylip_CheckFileFormat(ESL_BUFFER *bf, int *ret_format, int *ret_nam
* In <afp>, we've loaded the first line of the alignment data.
*/
static int
-phylip_interleaved_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated)
+phylip_interleaved_Read(ESL_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated)
{
int namewidth = (afp->fmtd.namewidth ? afp->fmtd.namewidth : 10); /* default: strict PHYLIP, namewidth 10 */
char *namebuf = NULL;
@@ -443,7 +460,7 @@ phylip_interleaved_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_
/* get next line. */
idx++;
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
} while (status == eslOK && idx < nseq && esl_memspn(p, n, " \t") < n); /* stop block on: read error, EOF; idx == nseq; or blank line */
if (idx != nseq) ESL_XFAIL(eslEFORMAT, afp->errmsg, "unexpected number of sequences in block (saw %d, expected %d)", idx, nseq);
@@ -452,12 +469,15 @@ phylip_interleaved_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_
/* tolerate blank lines only at the end of a block */
while (status == eslOK && esl_memspn(p, n, " \t") == n)
- status = eslx_msafile_GetLine(afp, &p, &n); /* [eslEMEM,eslESYS] */
+ status = esl_msafile_GetLine(afp, &p, &n); /* [eslEMEM,eslESYS] */
/* now status can be: read error, EOF, or OK. */
} while (status == eslOK && alen < alen_stated);
- /* End of all blocks. We swallowed blank lines following last block, so we should be EOF. Validate the overall <alen> */
- if (status == eslOK) ESL_XFAIL(eslEFORMAT, afp->errmsg, "unexpected trailing data: more sequences than expected? header said %d", nseq);
+ /* End of all blocks. We swallowed blank lines following last block,
+ * so we should be EOF; unless we're in a seqboot file, in which
+ * case we just read the first line of the next MSA.
+ */
+ if (status == eslOK) esl_msafile_PutLine(afp); /* put <nseq> <alen> line back in the stream, so we will read it properly w/ next msa read */
else if (status != eslEOF) goto ERROR;
else if (alen != alen_stated) ESL_XFAIL(eslEFORMAT, afp->errmsg, "alignment length disagrees with header: header said %d, parsed %" PRId64, alen_stated, alen);
@@ -477,7 +497,7 @@ phylip_interleaved_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_
* Throws <eslEWRITE> on any system write error.
*/
static int
-phylip_interleaved_Write(FILE *fp, const ESL_MSA *msa, ESLX_MSAFILE_FMTDATA *opt_fmtd)
+phylip_interleaved_Write(FILE *fp, const ESL_MSA *msa, ESL_MSAFILE_FMTDATA *opt_fmtd)
{
int rpl = ( (opt_fmtd && opt_fmtd->rpl) ? opt_fmtd->rpl : 60);
int namewidth = ( (opt_fmtd && opt_fmtd->namewidth) ? opt_fmtd->namewidth : 10);
@@ -533,15 +553,15 @@ phylip_interleaved_Write(FILE *fp, const ESL_MSA *msa, ESLX_MSAFILE_FMTDATA *opt
* In <afp>, we've loaded the first line of the alignment data.
*/
static int
-phylip_sequential_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated)
+phylip_sequential_Read(ESL_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_stated)
{
int namewidth = (afp->fmtd.namewidth ? afp->fmtd.namewidth : 10); /* default: strict PHYLIP, namewidth 10 */
char *namebuf = NULL;
char *p = afp->line;
esl_pos_t n = afp->n;
int idx;
- int64_t alen;
- int status;
+ int64_t alen = 0;
+ int status = eslOK;
ESL_ALLOC(namebuf, sizeof(char) * (namewidth+1));
@@ -568,20 +588,22 @@ phylip_sequential_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_s
else if (status != eslOK) goto ERROR;
/* get next line */
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
} /* end looping over a seq */
/* tolerate blank lines after sequences. */
while (status == eslOK && esl_memspn(p, n, " \t") == n)
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) { if (idx < nseq-1) ESL_XFAIL(eslEFORMAT, afp->errmsg, "premature end of file: header said to expect %d sequences", nseq); }
else if (status != eslOK) goto ERROR;
else if (alen != alen_stated) ESL_XFAIL(eslEFORMAT, afp->errmsg, "aligned length of sequence disagrees with header: header says %d, parsed %" PRId64, alen_stated, alen);
} /* end looping over all seqs */
- /* we should be EOF; we've swallowed all trailing blank lines */
- if (status != eslEOF) ESL_XFAIL(eslEFORMAT, afp->errmsg, "unexpected trailing data: more sequences than expected? header said %d", nseq);
+ /* we should be EOF; we've swallowed all trailing blank lines.
+ * Exception: if we're in a seqboot file, we just read the <nseq> <alen> line of the next msa record; push it back on stream
+ */
+ if (status == eslOK) esl_msafile_PutLine(afp);
msa->nseq = nseq;
msa->alen = alen;
@@ -595,7 +617,7 @@ phylip_sequential_Read(ESLX_MSAFILE *afp, ESL_MSA *msa, int nseq, int32_t alen_s
}
static int
-phylip_sequential_Write(FILE *fp, const ESL_MSA *msa, ESLX_MSAFILE_FMTDATA *opt_fmtd)
+phylip_sequential_Write(FILE *fp, const ESL_MSA *msa, ESL_MSAFILE_FMTDATA *opt_fmtd)
{
int rpl = ( (opt_fmtd && opt_fmtd->rpl) ? opt_fmtd->rpl : 60);
int namewidth = ( (opt_fmtd && opt_fmtd->namewidth) ? opt_fmtd->namewidth : 10);
@@ -644,13 +666,26 @@ phylip_sequential_Write(FILE *fp, const ESL_MSA *msa, ESLX_MSAFILE_FMTDATA *opt_
* 4. Autodetection of the format and its variants
*****************************************************************/
-/* return <eslOK> if input is consistent with interleaved format,
- * and set <*ret_namewidth> to the apparent name width.
+/* return <eslOK> if input is consistent with interleaved format;
+ * set <*ret_namewidth> to the apparent name width;
+ * set <*ret_nblocks> to the number of interleaved blocks seen.
+ *
+ * If <nblocks=1>, it doesn't matter whether we read the file as
+ * interleaved or sequential; it will also appear to be consistent
+ * with sequential format, but we will parse it as interleaved.
+ *
+ * <namewidth> can be uniquely determined because we know <nseq> and
+ * <alen> (from the Phylip header), so we know how many characters
+ * should be accounted for by the alignment; the rest have to be
+ * the names.
+ *
+ * If the input is not consistent with interleaved Phylip format,
+ * return <eslFAIL>, and <*ret_namewidth> and <*ret_nblocks> are 0.
*
* upon return, restore the <bf> to its original position.
*/
static int
-phylip_check_interleaved(ESL_BUFFER *bf, int *ret_namewidth)
+phylip_check_interleaved(ESL_BUFFER *bf, int *ret_nblocks, int *ret_namewidth)
{
esl_pos_t anchor = -1;
char *p;
@@ -692,7 +727,7 @@ phylip_check_interleaved(ESL_BUFFER *bf, int *ret_namewidth)
if (nblocks == 0)
{
colcodes0 = colcodes; ncols0 = ncols;
- colcodes = NULL; ncols = 0;
+ colcodes = NULL;
/* let's speculate that it's strictly conforming PHYLIP with a namewidth of 10
* in that case, we'll be able to stop parsing blocks when we reach the full
* alignment length
@@ -728,6 +763,7 @@ phylip_check_interleaved(ESL_BUFFER *bf, int *ret_namewidth)
free(colcodes0);
esl_buffer_SetOffset(bf, anchor);
esl_buffer_RaiseAnchor(bf, anchor);
+ *ret_nblocks = nblocks;
return eslOK;
ERROR:
@@ -738,6 +774,7 @@ phylip_check_interleaved(ESL_BUFFER *bf, int *ret_namewidth)
if (colcodes) free(colcodes);
if (colcodes0) free(colcodes0);
*ret_namewidth = 0;
+ *ret_nblocks = 0;
return status;
}
@@ -793,89 +830,121 @@ phylip_check_sequential_known(ESL_BUFFER *bf, int namewidth)
return status;
}
+
+/* phylip_check_sequential_unknown()
+ * Check for sequential format when namewidth may deviate from standard 10.
+ *
+ * Returns: <eslOK> if file is consistent with sequential Phylip format,
+ * and <*ret_namewidth> is the name width.
+ *
+ * <eslFAIL> if file is inconsistent with sequential format.
+ *
+ * Throws: <eslEMEM> on allocation failure
+ */
static int
phylip_check_sequential_unknown(ESL_BUFFER *bf, int *ret_namewidth)
{
- esl_pos_t anchor = -1;
- int nlines = 0;
- int nblocks = 0;
- char *p, *p0;
- esl_pos_t n, n0;
+ esl_pos_t anchor = -1;
+ int nlines = 0;
+ int nblocks = 0;
int32_t nseq, alen;
- int b, c, idx;
- int nres2, nres1;
- int nwA, nwB, nw_min, nw_max;
+ int *rth = NULL; // rth[i=0..L1-1] = # of legal chars, inclusive, in i..L1-1, or 0
+ int r; // total # of legal seq chars on line 1 of a seq
+ int L1; // total length of line 1, including all chars & whitespace
+ int b; // # of legal seq chars on remainder of lines of a seq
+ int a; // # of seq chars we need on line 1: alen - b
+ char *p; // pointer to current line in input buffer
+ esl_pos_t n; // length of current line in input buffer
+ int i, j, k;
+ int w; // name width we determine
+ int len2; // alen of subsequent seqs in file
int status;
-
+
+ /* Set an anchor where we are in the input, so we can rewind */
anchor = esl_buffer_GetOffset(bf);
- if (esl_buffer_SetStableAnchor(bf, anchor) != eslOK) { status = eslFAIL; goto ERROR; }
- /* note, a *stable* anchor: we are going to hold first line of each seq for a while */
+ if ( esl_buffer_SetStableAnchor(bf, anchor) != eslOK) { status = eslFAIL; goto ERROR; }
- /* pass 1. number of data lines in file / nseq = integral number of lines per sequence. */
+ /* Pass 1: number of data lines in file / nseq = integral # of lines per sequence */
while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK)
if (esl_memspn(p, n, " \t") != n) nlines++;
- if (status != eslEOF) goto ERROR;
+ if (status != eslEOF) { status = eslFAIL; goto ERROR; }
nlines--; /* not counting the <nseq> <alen> header */
esl_buffer_SetOffset(bf, anchor); /* rewind */
- /* pass 2. */
- if ((status = phylip_parse_header(bf, &nseq, &alen, &p, &n)) != eslOK) goto ERROR;
+ /* pass 2: first, parse the <nseq> <alen> line */
+ if ((status = phylip_parse_header(bf, &nseq, &alen, &p, &n)) != eslOK) { status = eslFAIL; goto ERROR; }
if (nlines % nseq != 0) { status = eslFAIL; goto ERROR; }
nblocks = nlines / nseq;
- for (idx = 0; idx < nseq; idx++)
- {
- nres2 = 0;
- for (b = 0; b < nblocks; b++)
- {
- if (status == eslEOF) goto ERROR;
-
- if (b == 0)
- { p0 = p; n0 = n; } /* defer evaluation of first line until we've counted the rest */
- else
- {
- for (c = 0; c < n; c++)
- if (strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p[c]) != NULL)
- nres2++;
- }
-
- status = esl_buffer_GetLine(bf, &p, &n);
- if (status != eslOK && status != eslEOF) goto ERROR;
- }
+ /* ... evaluate the first line, already at point in p,n */
+ ESL_ALLOC(rth, sizeof(int) * n);
+ for (i = n-1, r = 0; i >= 0; i--)
+ rth[i] = ( strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p[i]) != NULL ? ++r : 0 );
+ L1 = n;
+
+ /* rth[i] = 0 if line1[i] is not a legal seq char
+ * else # of legal chars in line1[i..L1-1]
+ * r = total # of legal chars on line 1
+ * L1 = total length of line 1, all chars (including whitespace)
+ * Once we know how many seq residues we need to get on the first line,
+ * we can use rth[] to find the position of the first one.
+ */
- nres1 = alen - nres2;
- if (nres1 <= 0) return eslFAIL;
- for (c = n0-1; nres1 && c >= 0; c--)
- if (strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p0[c]) != NULL)
- nres1--;
- if (nres1) { status = eslFAIL; goto ERROR; }
- nwB = c+1;
+ /* Now count b: # of legal chars on subsequent lines for 1st seq */
+ for (k = 1, b = 0; k < nblocks; k++)
+ {
+ while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK && esl_memspn(p, n, " \t") == n) ;
+ if (status != eslOK) { status = eslFAIL; goto ERROR; }
+ for (i = 0; i < n; i++)
+ if (strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p[i]) != NULL) b++;
+ }
- for (; c >= 0; c--)
- if (p0[c] != ' ') break;
- nwA = c+1;
+ /* We need to find (alen - b) = a residues on the first line. */
+ a = alen - b;
+ if (a > r) { status = eslFAIL; goto ERROR; }
+ for (w = 0; w < L1; w++) // find the leftmost seq residue
+ if (rth[w] == a) break;
+ if (w == L1) { status = eslFAIL; goto ERROR; }
+ for (i = 0; i < w; i++) // make sure there's a name of some sort
+ if (! isspace(p[i])) break;
+ if ( i == w) { status = eslFAIL; goto ERROR; }
+ /* Now we "know" the name width is w. */
+
+ /* Check that the rest of the sequences (up to 100 of them) are consistent w/ that. */
+ for (j = 1; j < nseq && j < 100; j++)
+ {
+ while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK && esl_memspn(p, n, " \t") == n) ;
+ if (status != eslOK) { status = eslFAIL; goto ERROR; }
+ if ( strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p[w]) == NULL) { status = eslFAIL; goto ERROR; }
+ for (i = 0; i < w; i++)
+ if (! isspace(p[i])) break;
+ if ( i == w) { status = eslFAIL; goto ERROR; }
- nw_min = (idx == 0 ? nwA : ESL_MAX(nwA, nw_min)); /* maximin of nwA values for each seq */
- nw_max = (idx == 0 ? nwB : ESL_MIN(nwB, nw_max)); /* minimax of nwB values for each seq */
+ for (i = w, len2 = 0; i < n; i++)
+ if ( strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p[i]) != NULL) len2++;
- /* tolerate blank spaces after individual sequences */
- while (status == eslOK && esl_memspn(p, n, "\t") == n)
- status = esl_buffer_GetLine(bf, &p, &n);
- if (status != eslOK && status != eslEOF) goto ERROR;
+ for (k = 1; k < nblocks; k++)
+ {
+ while ( (status = esl_buffer_GetLine(bf, &p, &n)) == eslOK && esl_memspn(p, n, " \t") == n) ;
+ if (status != eslOK) { status = eslFAIL; goto ERROR; }
+ for (i = 0; i < n; i++)
+ if ( strchr(eslMSAFILE_PHYLIP_LEGALSYMS, p[i]) != NULL) len2++;
+ }
+ if (len2 != alen) { status = eslFAIL; goto ERROR; }
}
- if (nw_min <= 10 && nw_max >= 10) *ret_namewidth = 10;
- else *ret_namewidth = nw_min;
-
esl_buffer_SetOffset(bf, anchor);
esl_buffer_RaiseAnchor(bf, anchor);
+ free(rth);
+ *ret_namewidth = w;
return eslOK;
ERROR:
if (anchor != -1) {
esl_buffer_SetOffset(bf, anchor);
esl_buffer_RaiseAnchor(bf, anchor);
- }
+ }
+ free(rth);
*ret_namewidth = 0;
return status;
}
@@ -1251,6 +1320,9 @@ utest_write_good7(FILE *ofp, int *ret_format, int *ret_alphatype, int *ret_nseq,
*ret_alen = 42;
}
+/* if using strict PHYLIP, 10 char namewidth results in reading a M=21 alignment,
+ * which disagrees with alen=20
+ */
static void
utest_write_bad1(FILE *ofp, int *ret_alphatype, int *ret_errstatus, int *ret_linenumber, char *errmsg)
{
@@ -1400,12 +1472,38 @@ utest_write_bad11(FILE *ofp, int *ret_alphatype, int *ret_errstatus, int *ret_li
strcpy(errmsg, "alignment length disagrees with header");
}
+/* example of a pathological file where interleaved, sequential
+ * can't be distinguished. If we read this as interleaved:
+ * seq1 AAAAAAAAAA CCCCCCCCCC YYYYYYYYY FFFFFFFFFF GGGGGGGGGG
+ * YYYYYYYYY DDDDDDDDDD EEEEEEEEEE HHHHHHHHH IIIIIIIIII KKKKKKKKKK
+ * whereas if we read it as sequential:
+ * seq1 AAAAAAAAAA CCCCCCCCCC YYYYYYYYY DDDDDDDDDD EEEEEEEEEE
+ * YYYYYYYYY FFFFFFFFFF GGGGGGGGGG HHHHHHHHH IIIIIIIIII KKKKKKKKKK
+ *
+ * To fall into this, sequence names have to look like a chunk of
+ * aligned sequence, with exactly the right length to give a correct
+ * <alen> whichever way we read the file.
+ */
+static void
+utest_write_ambig1(FILE *ofp)
+{
+ fputs(" 2 49\n", ofp);
+ fputs("seq1 AAAAAAAAAA CCCCCCCCCC\n", ofp);
+ fputs("YYYYYYYYY DDDDDDDDDD EEEEEEEEEE\n", ofp);
+ fputs("YYYYYYYYY FFFFFFFFFF GGGGGGGGGG\n", ofp);
+ fputs("HHHHHHHHH IIIIIIIIII KKKKKKKKKK\n", ofp);
+};
+
+
+
+
+
static void
utest_goodfile(char *filename, int testnumber, int expected_format, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
- ESLX_MSAFILE_FMTDATA fmtd; /* for writing formats with nonstandard name field widths */
+ ESL_MSAFILE *afp = NULL;
+ ESL_MSAFILE_FMTDATA fmtd; /* for writing formats with nonstandard name field widths */
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
char tmpfile1[32] = "esltmpXXXXXX";
@@ -1413,19 +1511,19 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
FILE *ofp = NULL;
int status;
- eslx_msafile_fmtdata_Init(&fmtd);
+ esl_msafile_fmtdata_Init(&fmtd);
/* guessing both the format and the alphabet should work: this is a digital open */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("phylip good file unit test %d failed: digital open", testnumber);
- if (afp->format != expected_format) esl_fatal("phylip good file unit test %d failed: format autodetection", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("phylip good file unit test %d failed: alphabet autodetection", testnumber);
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("phylip good file unit test %d failed: digital open", testnumber);
+ if (afp->format != expected_format) esl_fatal("phylip good file unit test %d failed: format autodetection", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("phylip good file unit test %d failed: alphabet autodetection", testnumber);
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_phylip_Read(afp, &msa1)) != eslOK) esl_fatal("phylip good file unit test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("phylip good file unit test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("phylip good file test %d failed: msa1 invalid", testnumber);
fmtd.namewidth = afp->fmtd.namewidth;
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("phylip good file unit test %d failed: tmpfile creation", testnumber);
@@ -1433,12 +1531,12 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
fclose(ofp);
/* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, expected_format, &fmtd, &afp)) != eslOK) esl_fatal("phylip good file unit test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_phylip_Read(afp, &msa2)) != eslOK) esl_fatal("phylip good file unit test %d failed: msa read, text", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("phylip good file test %d failed: msa2 invalid", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("phylip good file unit test %d failed: nseq/alen", testnumber);
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, expected_format, &fmtd, &afp)) != eslOK) esl_fatal("phylip good file unit test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_phylip_Read(afp, &msa2)) != eslOK) esl_fatal("phylip good file unit test %d failed: msa read, text", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("phylip good file test %d failed: msa2 invalid", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("phylip good file unit test %d failed: nseq/alen", testnumber);
fmtd.namewidth = afp->fmtd.namewidth;
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("phylip good file unit test %d failed: tmpfile creation", testnumber);
@@ -1447,10 +1545,10 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, expected_format, &fmtd, &afp)) != eslOK) esl_fatal("phylip good file unit test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_phylip_Read(afp, &msa2)) != eslOK) esl_fatal("phylip good file unit test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("phylip good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, expected_format, &fmtd, &afp)) != eslOK) esl_fatal("phylip good file unit test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_phylip_Read(afp, &msa2)) != eslOK) esl_fatal("phylip good file unit test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("phylip good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("phylip good file unit test %d failed: msa compare", testnumber);
@@ -1462,23 +1560,98 @@ utest_goodfile(char *filename, int testnumber, int expected_format, int expected
esl_alphabet_Destroy(abc);
}
+/* utest_badfile:
+ * Test the strict PHYLIP parser's ability to detect bad input;
+ * regression test its user-directed error messages.
+ *
+ * note: this test uses strict phylip, with 10 char name width.
+ * it's not using the format guesser, which could determine a nonstandard name width
+ * some "bad" utests can be parsed differently by esl_msafile_phylip_example,
+ * which does use the format guesser
+ *
+ * TODO: we should also have "bad" tests for sequential PHYLIP, and for
+ * nonstandard name widths.
+ *
+ */
static void
utest_badfile(char *filename, int testnumber, int expected_alphatype, int expected_status, int expected_linenumber, char *expected_errmsg)
{
ESL_ALPHABET *abc = esl_alphabet_Create(expected_alphatype);
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
-
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_PHYLIP, NULL, &afp)) != eslOK) esl_fatal("phylip bad file unit test %d failed: unexpected open failure", testnumber);
- if ( (status = esl_msafile_phylip_Read(afp, &msa)) != expected_status) esl_fatal("phylip bad file unit test %d failed: unexpected error code", testnumber);
- if (strstr(afp->errmsg, expected_errmsg) == NULL) esl_fatal("phylip bad file unit test %d failed: unexpected errmsg", testnumber);
- if (afp->linenumber != expected_linenumber) esl_fatal("phylip bad file unit test %d failed: unexpected linenumber", testnumber);
- eslx_msafile_Close(afp);
+
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_PHYLIP, NULL, &afp)) != eslOK) esl_fatal("phylip bad file unit test %d failed: unexpected open failure", testnumber);
+ if ( (status = esl_msafile_phylip_Read(afp, &msa)) != expected_status) esl_fatal("phylip bad file unit test %d failed: unexpected error code", testnumber);
+ if (strstr(afp->errmsg, expected_errmsg) == NULL) esl_fatal("phylip bad file unit test %d failed: unexpected errmsg", testnumber);
+ if (afp->linenumber != expected_linenumber) esl_fatal("phylip bad file unit test %d failed: unexpected linenumber", testnumber);
+ esl_msafile_Close(afp);
esl_alphabet_Destroy(abc);
esl_msa_Destroy(msa);
}
+static void
+utest_ambigfile(char *filename, int testnumber)
+{
+ ESL_BUFFER *bf = NULL;
+ int fmt;
+ int namewidth;
+
+ if ( esl_buffer_Open(filename, NULL, &bf) != eslOK) esl_fatal("phylip ambig file unit test %d failed: buffer open", testnumber);
+ if ( esl_msafile_phylip_CheckFileFormat(bf, &fmt, &namewidth) != eslEAMBIGUOUS) esl_fatal("phylip ambig file unit test %d failed: ambiguity detection", testnumber);
+ if ( fmt != eslMSAFILE_UNKNOWN ) esl_fatal("phylip ambig file unit test %d failed: format code", testnumber);
+ if ( namewidth != 0 ) esl_fatal("phylip ambig file unit test %d failed: namewidth not 0", testnumber);
+ esl_buffer_Close(bf);
+}
+
+
+/* PHYLIP's seqboot program can output many MSAs to the same phylip file.
+ * For this reason (only), we allow PHYLIP format to have multiple MSAs per file.
+ * PHYLIP format 'officially' does not document this!
+ */
+static void
+utest_seqboot(void)
+{
+ char msg[] = "seqboot unit test failed";
+ char tmpfile[32];
+ FILE *ofp;
+ int expected_fmt;
+ int expected_alphatype;
+ int expected_nseq;
+ int expected_alen;
+ int expected_nali;
+ int i;
+ ESL_ALPHABET *abc = NULL;
+ ESL_MSAFILE *afp = NULL;
+ ESL_MSA *msa = NULL;
+
+ /* Write a tmp testfile with good1 concatenated 3 times. */
+ expected_nali = 3;
+ strcpy(tmpfile, "esltmpXXXXXX");
+ if (esl_tmpfile_named(tmpfile, &ofp) != eslOK) esl_fatal(msg);
+ for (i = 0; i < expected_nali; i++)
+ utest_write_good1(ofp, &expected_fmt, &expected_alphatype, &expected_nseq, &expected_alen);
+ fclose(ofp);
+
+ /* open it and loop over it, reading MSAs. there should be 3, of the expected size. */
+ if (esl_msafile_Open(&abc, tmpfile, /*env=*/NULL, eslMSAFILE_UNKNOWN, /*fmtd=*/NULL, &afp) != eslOK) esl_fatal(msg);
+ if (abc->type != expected_alphatype) esl_fatal(msg);
+ if (afp->format != expected_fmt) esl_fatal(msg);
+ i = 0;
+ while ( esl_msafile_Read(afp, &msa) == eslOK)
+ {
+ i++;
+ if (msa->nseq != expected_nseq) esl_fatal(msg);
+ if (msa->alen != expected_alen) esl_fatal(msg);
+ esl_msa_Destroy(msa);
+ }
+ if (i != expected_nali) esl_fatal(msg);
+
+ remove(tmpfile);
+ esl_msafile_Close(afp);
+ esl_alphabet_Destroy(abc);
+}
+
#endif /*eslMSAFILE_PHYLIP_TESTDRIVE*/
/*---------------------- end, unit tests ------------------------*/
@@ -1516,8 +1689,9 @@ main(int argc, char **argv)
char msg[] = "PHYLIP MSA i/o module test driver failed";
ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
FILE *ofp = NULL;
- int ngoodtests;
- int nbadtests;
+ int ngoodtests = 7;
+ int nbadtests = 11;
+ int nambigtests = 1;
int testnumber = 0;
char tmpfile[32];
int expected_format;
@@ -1529,7 +1703,6 @@ main(int argc, char **argv)
char expected_errmsg[eslERRBUFSIZE];
/* Test various correct versions of the format */
- ngoodtests = 7;
for (testnumber = 1; testnumber <= ngoodtests; testnumber++)
{
strcpy(tmpfile, "esltmpXXXXXX");
@@ -1548,8 +1721,7 @@ main(int argc, char **argv)
remove(tmpfile);
}
- /* Test for all the possible EFORMAT errors */
- nbadtests = 11;
+ /* Test for all the possible EFORMAT errors (using strict Phylip interleaved parser) */
for (testnumber = 1; testnumber <= nbadtests; testnumber++)
{
strcpy(tmpfile, "esltmpXXXXXX");
@@ -1574,6 +1746,25 @@ main(int argc, char **argv)
remove(tmpfile);
}
+ /* Test that we correctly detect pathological files that look both interleaved and sequential */
+ for (testnumber = 1; testnumber <= nambigtests; testnumber++)
+ {
+ strcpy(tmpfile, "esltmpXXXXXX");
+ if (esl_tmpfile_named(tmpfile, &ofp) != eslOK) esl_fatal(msg);
+
+ switch (testnumber) {
+ case 1: utest_write_ambig1 (ofp);
+ }
+ fclose(ofp);
+
+ utest_ambigfile(tmpfile, testnumber);
+ remove(tmpfile);
+ }
+
+
+ /* Other tests */
+ utest_seqboot();
+
esl_getopts_Destroy(go);
return 0;
}
@@ -1624,9 +1815,9 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
- ESLX_MSAFILE_FMTDATA fmtd;
+ ESL_MSAFILE_FMTDATA fmtd;
int status;
if (esl_opt_GetBoolean(go, "-1")) infmt = eslMSAFILE_PHYLIP; /* interleaved format */
@@ -1641,20 +1832,20 @@ main(int argc, char **argv)
* But if PHYLIP or PHYLIPS format is set (no guessing), caller may also
* want to allow a nonstandard name field width to be set.
*/
- eslx_msafile_fmtdata_Init(&fmtd);
+ esl_msafile_fmtdata_Init(&fmtd);
fmtd.namewidth = esl_opt_GetInteger(go, "-w");
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, &fmtd, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, &fmtd, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, &fmtd, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, &fmtd, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ( (status = esl_msafile_phylip_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
- printf("format variant: %s\n", eslx_msafile_DecodeFormat(afp->format));
+ printf("format variant: %s\n", esl_msafile_DecodeFormat(afp->format));
printf("name width: %d\n", afp->fmtd.namewidth);
printf("alphabet: %s\n", (abc ? esl_abc_DecodeType(abc->type) : "none (text mode)"));
printf("# of seqs: %d\n", msa->nseq);
@@ -1667,7 +1858,7 @@ main(int argc, char **argv)
esl_msafile_phylip_Write(stdout, msa, eslMSAFILE_PHYLIP, &fmtd);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -1695,12 +1886,12 @@ main(int argc, char **argv)
{
char *filename = argv[1];
int infmt = eslMSAFILE_PHYLIP; /* or eslMSAFILE_PHYLIPS, for sequential format */
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp)) != eslOK) eslx_msafile_OpenFailure(afp, status);
- if ( (status = esl_msafile_phylip_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp)) != eslOK) esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_phylip_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
printf("# of seqs: %d\n", msa->nseq);
printf("# of cols: %d\n", (int) msa->alen);
@@ -1709,25 +1900,21 @@ main(int argc, char **argv)
esl_msafile_phylip_Write(stdout, msa, eslMSAFILE_PHYLIP, NULL);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_phylip_example::end::*/
#endif /*eslMSAFILE_PHYLIP_EXAMPLE*/
-
-/*--------------------- end of example --------------------------*/
+/*--------------------- end of examples -------------------------*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_phylip.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_phylip.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_phylip.h b/easel/esl_msafile_phylip.h
index 5fae08a..2668cbd 100644
--- a/easel/esl_msafile_phylip.h
+++ b/easel/esl_msafile_phylip.h
@@ -6,23 +6,20 @@
#include "esl_msa.h"
#include "esl_msafile.h"
-extern int esl_msafile_phylip_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_phylip_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_phylip_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
-extern int esl_msafile_phylip_Write (FILE *fp, const ESL_MSA *msa, int format, ESLX_MSAFILE_FMTDATA *opt_fmtd);
+extern int esl_msafile_phylip_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_phylip_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_phylip_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_phylip_Write (FILE *fp, const ESL_MSA *msa, int format, ESL_MSAFILE_FMTDATA *opt_fmtd);
extern int esl_msafile_phylip_CheckFileFormat(ESL_BUFFER *bf, int *ret_format, int *ret_namewidth);
#endif /* eslMSAFILE_PHYLIP_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_phylip.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_phylip.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_psiblast.c b/easel/esl_msafile_psiblast.c
index 53134d6..40d1ef7 100644
--- a/easel/esl_msafile_psiblast.c
+++ b/easel/esl_msafile_psiblast.c
@@ -37,7 +37,7 @@
* Digital mode enforces the usual Easel alphabets, but disallows "._*~".
*/
int
-esl_msafile_psiblast_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_psiblast_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -85,7 +85,7 @@ esl_msafile_psiblast_SetInmap(ESLX_MSAFILE *afp)
* started at.
*/
int
-esl_msafile_psiblast_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_psiblast_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int alphatype = eslUNKNOWN;
esl_pos_t anchor = -1;
@@ -144,7 +144,7 @@ esl_msafile_psiblast_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_psiblast_Read()
* Synopsis: Read an alignment in PSI-BLAST's input format.
*
- * Purpose: Read an MSA from an open <ESLX_MSAFILE> <afp>, parsing for
+ * Purpose: Read an MSA from an open <ESL_MSAFILE> <afp>, parsing for
* PSI-BLAST input format, starting from the current point.
* Create a new multiple alignment, and return a ptr to
* that alignment via <*ret_msa>. Caller is responsible for
@@ -184,7 +184,7 @@ esl_msafile_psiblast_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <afp> is undefined.
*/
int
-esl_msafile_psiblast_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_psiblast_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
int idx = 0; /* counter over sequences in a block */
@@ -209,7 +209,7 @@ esl_msafile_psiblast_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
if (! afp->abc && (msa = esl_msa_Create( 16, -1)) == NULL) { status = eslEMEM; goto ERROR; }
/* skip leading blank lines in file */
- while ( (status = eslx_msafile_GetLine(afp, NULL, NULL)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
+ while ( (status = esl_msafile_GetLine(afp, NULL, NULL)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
if (status != eslOK) goto ERROR; /* includes normal EOF */
/* Read the file a line at a time; if a parsing error occurs, detect immediately, with afp->linenumber set correctly */
@@ -271,7 +271,7 @@ esl_msafile_psiblast_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
/* get next line. if it's blank, or if we're EOF, we're done with the block */
idx++;
- status = eslx_msafile_GetLine(afp, NULL, NULL);
+ status = esl_msafile_GetLine(afp, NULL, NULL);
} while (status == eslOK && esl_memspn(afp->line, afp->n, " \t") < afp->n); /* blank line ends a block. */
if (status != eslOK && status != eslEOF) goto ERROR;
/* End of one block */
@@ -282,7 +282,7 @@ esl_msafile_psiblast_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
nblocks++;
/* skip blank lines to start of next block, if any */
- while ( (status = eslx_msafile_GetLine(afp, NULL, NULL)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
+ while ( (status = esl_msafile_GetLine(afp, NULL, NULL)) == eslOK && esl_memspn(afp->line, afp->n, " \t") == afp->n) ;
} while (status == eslOK);
if (status != eslEOF) goto ERROR;
@@ -442,7 +442,7 @@ static void
utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
char tmpfile1[32] = "esltmpXXXXXX";
@@ -452,16 +452,16 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
/* guessing both the format and the alphabet should work: this is a digital open */
/* PSIBLAST format is autodetected as SELEX, which is fine - selex parser is more general */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("psiblast good file test %d failed: digital open", testnumber);
- if (afp->format != eslMSAFILE_SELEX) esl_fatal("psiblast good file test %d failed: format autodetection", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("psiblast good file test %d failed: alphabet autodetection", testnumber);
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("psiblast good file test %d failed: digital open", testnumber);
+ if (afp->format != eslMSAFILE_SELEX) esl_fatal("psiblast good file test %d failed: format autodetection", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("psiblast good file test %d failed: alphabet autodetection", testnumber);
afp->format = eslMSAFILE_PSIBLAST;
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_psiblast_Read(afp, &msa1)) != eslOK) esl_fatal("psiblast good file test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("psiblast good file test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("psiblast good file test %d failed: msa1 invalid", testnumber);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("psiblast good file test %d failed: tmpfile creation", testnumber);
@@ -469,11 +469,11 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
fclose(ofp);
/* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_PSIBLAST, NULL, &afp)) != eslOK) esl_fatal("psiblast good file test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_psiblast_Read(afp, &msa2)) != eslOK) esl_fatal("psiblast good file test %d failed: msa read, text", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("psiblast good file test %d failed: nseq/alen", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("psiblast good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_PSIBLAST, NULL, &afp)) != eslOK) esl_fatal("psiblast good file test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_psiblast_Read(afp, &msa2)) != eslOK) esl_fatal("psiblast good file test %d failed: msa read, text", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("psiblast good file test %d failed: nseq/alen", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("psiblast good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("psiblast good file test %d failed: tmpfile creation", testnumber);
@@ -482,10 +482,10 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_PSIBLAST, NULL, &afp)) != eslOK) esl_fatal("psiblast good file test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_psiblast_Read(afp, &msa2)) != eslOK) esl_fatal("psiblast good file test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("psiblast good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_PSIBLAST, NULL, &afp)) != eslOK) esl_fatal("psiblast good file test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_psiblast_Read(afp, &msa2)) != eslOK) esl_fatal("psiblast good file test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("psiblast good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("psiblast good file test %d failed: msa compare", testnumber);
@@ -527,25 +527,25 @@ read_test_msas_digital(char *pbfile, char *stkfile)
{
char msg[] = "PSIBLAST msa digital read unit test failed";
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *pbfp, *stkfp;
char pbfile2[32] = "esltmppb2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- if ( eslx_msafile_Open(&abc, pbfile, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, pbfile, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_psiblast_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_psiblast_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
/* Now write stk to psiblast file, and vice versa; then retest */
if ( esl_tmpfile_named(pbfile2, &pbfp) != eslOK) esl_fatal(msg);
@@ -554,16 +554,16 @@ read_test_msas_digital(char *pbfile, char *stkfile)
if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(pbfp);
fclose(stkfp);
- if ( eslx_msafile_Open(&abc, pbfile2, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, pbfile2, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(pbfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -576,23 +576,23 @@ static void
read_test_msas_text(char *pbfile, char *stkfile)
{
char msg[] = "PSIBLAST msa text-mode read unit test failed";
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *pbfp, *stkfp;
char pbfile2[32] = "esltmppb2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- /* vvvv-- everything's the same as the digital utest except these NULLs */
- if ( eslx_msafile_Open(NULL, pbfile, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_psiblast_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ /* vvvv-- everything's the same as the digital utest except these NULLs */
+ if ( esl_msafile_Open(NULL, pbfile, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_psiblast_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
if ( esl_tmpfile_named(pbfile2, &pbfp) != eslOK) esl_fatal(msg);
if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
@@ -600,16 +600,16 @@ read_test_msas_text(char *pbfile, char *stkfile)
if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(pbfp);
fclose(stkfp);
- if ( eslx_msafile_Open(NULL, pbfile2, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, pbfile2, NULL, eslMSAFILE_PSIBLAST, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_psiblast_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(pbfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -736,7 +736,7 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
@@ -749,12 +749,12 @@ main(int argc, char **argv)
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ((status = esl_msafile_psiblast_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
printf("alphabet: %s\n", (abc ? esl_abc_DecodeType(abc->type) : "none (text mode)"));
printf("# of seqs: %d\n", msa->nseq);
@@ -765,7 +765,7 @@ main(int argc, char **argv)
esl_msafile_psiblast_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -793,19 +793,19 @@ main(int argc, char **argv)
{
char *filename = argv[1];
int fmt = eslMSAFILE_PSIBLAST;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) eslx_msafile_OpenFailure(afp, status);
- if ( (status = esl_msafile_psiblast_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_psiblast_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
printf("%6d seqs, %5d columns\n", msa->nseq, (int) msa->alen);
esl_msafile_psiblast_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_psiblast_example2::end::*/
@@ -816,13 +816,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_psiblast.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_psiblast.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_psiblast.h b/easel/esl_msafile_psiblast.h
index 70d5729..8ecddf5 100644
--- a/easel/esl_msafile_psiblast.h
+++ b/easel/esl_msafile_psiblast.h
@@ -6,21 +6,18 @@
#include "esl_msa.h"
#include "esl_msafile.h"
-extern int esl_msafile_psiblast_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_psiblast_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_psiblast_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_psiblast_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_psiblast_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_psiblast_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
extern int esl_msafile_psiblast_Write (FILE *fp, const ESL_MSA *msa);
#endif /* eslMSAFILE_PSIBLAST_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_psiblast.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_psiblast.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_selex.c b/easel/esl_msafile_selex.c
index ec53de6..e2f3db9 100644
--- a/easel/esl_msafile_selex.c
+++ b/easel/esl_msafile_selex.c
@@ -65,11 +65,11 @@ static ESL_SELEX_BLOCK *selex_block_Create(int nalloc);
static int selex_block_Grow(ESL_SELEX_BLOCK *b);
static void selex_block_Destroy(ESL_SELEX_BLOCK *b);
-static int selex_ErrorInBlock(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, int idx);
-static int selex_read_block (ESLX_MSAFILE *afp, ESL_SELEX_BLOCK **block_p);
-static int selex_first_block (ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa);
-static int selex_other_block (ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa);
-static int selex_append_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa);
+static int selex_ErrorInBlock(ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, int idx);
+static int selex_read_block (ESL_MSAFILE *afp, ESL_SELEX_BLOCK **block_p);
+static int selex_first_block (ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa);
+static int selex_other_block (ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa);
+static int selex_append_block(ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa);
/*****************************************************************
@@ -97,7 +97,7 @@ static int selex_append_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *ms
* alignment format would use <eslDSQ_IGNORED> mappings.
*/
int
-esl_msafile_selex_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_selex_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -140,7 +140,7 @@ esl_msafile_selex_SetInmap(ESLX_MSAFILE *afp)
* started at.
*/
int
-esl_msafile_selex_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_selex_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int alphatype = eslUNKNOWN;
esl_pos_t anchor = -1;
@@ -201,7 +201,7 @@ esl_msafile_selex_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_selex_Read()
* Synopsis: Read in a SELEX format alignment.
*
- * Purpose: Read an MSA from an open <ESLX_MSAFILE> <afp>,
+ * Purpose: Read an MSA from an open <ESL_MSAFILE> <afp>,
* parsing for SELEX format, starting from the
* current point. (<afp->format> is expected to
* be <eslMSAFILE_SELEX>.) Create a new multiple
@@ -209,7 +209,7 @@ esl_msafile_selex_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* Caller is responsible for free'ing this
* <ESL_MSA>.
*
- * Args: afp - open <ESLX_MSAFILE>
+ * Args: afp - open <ESL_MSAFILE>
* ret_msa - RETURN: newly parsed <ESL_MSA>
*
* Returns: <eslOK> on success.
@@ -234,7 +234,7 @@ esl_msafile_selex_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <eslEINCONCEIVABLE> - "impossible" corruption
*/
int
-esl_msafile_selex_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_selex_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
ESL_SELEX_BLOCK *b = NULL;
@@ -443,7 +443,7 @@ selex_block_Destroy(ESL_SELEX_BLOCK *b)
* reset the <afp> so its current line is the one at fault.
*/
static int
-selex_ErrorInBlock(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, int which)
+selex_ErrorInBlock(ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, int which)
{
afp->line = b->line[which];
afp->n = b->llen[which];
@@ -475,7 +475,7 @@ selex_ErrorInBlock(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, int which)
* Throws: <eslEMEM> on allocation failure.
*/
static int
-selex_read_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK **block_p)
+selex_read_block(ESL_MSAFILE *afp, ESL_SELEX_BLOCK **block_p)
{
ESL_SELEX_BLOCK *b = *block_p; /* now b==NULL if first block; or on subsequent blocks, reuse prev block storage. */
int idx = 0;
@@ -486,12 +486,12 @@ selex_read_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK **block_p)
* EOF, we're done.
*/
do {
- if ( ( status = eslx_msafile_GetLine(afp, NULL, NULL)) != eslOK) goto ERROR; /* EOF here is a normal EOF */
+ if ( ( status = esl_msafile_GetLine(afp, NULL, NULL)) != eslOK) goto ERROR; /* EOF here is a normal EOF */
} while (esl_memspn(afp->line, afp->n, " \t") == afp->n || /* idiomatic for "blank line" */
(esl_memstrpfx(afp->line, afp->n, "#") && ! esl_memstrpfx(afp->line, afp->n, "#="))); /* a SELEX comment line */
/* if this is first block, allocate block; subsequent blocks reuse it */
- if (!b && (b = selex_block_Create(16)) == NULL) goto ERROR;
+ if (!b && (b = selex_block_Create(16)) == NULL) { status = eslEMEM; goto ERROR; }
/* Anchor stably at this point. */
b->anchor = afp->lineoffset;
@@ -509,7 +509,7 @@ selex_read_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK **block_p)
/* Get next non-comment line; this can be next line of block, blank (end of block), or EOF. */
do {
- status = eslx_msafile_GetLine(afp, NULL, NULL);
+ status = esl_msafile_GetLine(afp, NULL, NULL);
} while ( status == eslOK && (esl_memstrpfx(afp->line, afp->n, "#") && ! esl_memstrpfx(afp->line, afp->n, "#=")));
} while (status == eslOK && esl_memspn(afp->line, afp->n, " \t") < afp->n); /* end of block on EOF or blank line */
@@ -538,7 +538,7 @@ selex_read_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK **block_p)
* 5. Determine lpos[] for each line.
*/
static int
-selex_first_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa)
+selex_first_block(ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
int nrf, nmm, ncs, nss, nsa, nseq;
@@ -550,7 +550,7 @@ selex_first_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa)
afp->errmsg[0] = '\0';
- nrf = ncs = nss = nsa = nseq = 0;
+ nrf = nmm = ncs = nss = nsa = nseq = 0;
has_ss = has_sa = FALSE;
for (idx = 0; idx < b->nlines; idx++)
{
@@ -591,7 +591,7 @@ selex_first_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa)
if ( esl_memtok(&p, &n, " \t", &tok, &ntok) != eslOK) ESL_XEXCEPTION(eslEINCONCEIVABLE, "can't happen"); /* because a block by definition consists of non-blank lines */
if (b->ltype[idx] == eslSELEX_LINE_SQ) /* otherwise, first token is #=XX marking annotation of some sort */
{
- if ( esl_msa_SetSeqName(msa, seqi, tok, ntok) != eslOK) goto ERROR;
+ if ((status = esl_msa_SetSeqName(msa, seqi, tok, ntok)) != eslOK) goto ERROR;
seqi++;
}
b->lpos[idx] = (n ? p-b->line[idx] : -1); /* set lpos[] to position of first seq or annotation residue */
@@ -613,7 +613,7 @@ selex_first_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA **ret_msa)
* Validate that a subsequent block has the same.
*/
static int
-selex_other_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa)
+selex_other_block(ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa)
{
char *p, *tok;
esl_pos_t n, ntok;
@@ -647,14 +647,14 @@ selex_other_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa)
}
static int
-selex_append_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa)
+selex_append_block(ESL_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa)
{
char *p;
esl_pos_t pos;
int idx, seqi;
esl_pos_t leftmost, rightmost;
int64_t nadd; /* width of this sequence block, in aligned columns added to msa */
- esl_pos_t nleft, ntext, nright;
+ esl_pos_t nleft, ntext;
int64_t alen;
int status;
@@ -682,7 +682,7 @@ selex_append_block(ESLX_MSAFILE *afp, ESL_SELEX_BLOCK *b, ESL_MSA *msa)
{
nleft = ((b->lpos[idx] != -1) ? b->lpos[idx] - leftmost : nadd); /* watch special case of all whitespace on data line, lpos>rpos */
ntext = ((b->lpos[idx] != -1) ? b->rpos[idx] - b->lpos[idx] + 1 : 0);
- nright = ((b->lpos[idx] != -1) ? rightmost - b->rpos[idx] : 0);
+ //nright = ((b->lpos[idx] != -1) ? rightmost - b->rpos[idx] : 0); // someday you might want to know nright, but for now the code doesn't use it
if (b->ltype[idx] == eslSELEX_LINE_SQ)
{
@@ -871,7 +871,7 @@ static void
utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
char tmpfile1[32] = "esltmpXXXXXX";
@@ -880,15 +880,15 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
int status;
/* guessing both the format and the alphabet should work: this is a digital open */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("selex good file test %d failed: digital open", testnumber);
- if (afp->format != eslMSAFILE_SELEX) esl_fatal("selex good file test %d failed: format autodetection", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("selex good file test %d failed: alphabet autodetection", testnumber);
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("selex good file test %d failed: digital open", testnumber);
+ if (afp->format != eslMSAFILE_SELEX) esl_fatal("selex good file test %d failed: format autodetection", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("selex good file test %d failed: alphabet autodetection", testnumber);
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_selex_Read(afp, &msa1)) != eslOK) esl_fatal("selex good file test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("selex good file test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("selex good file test %d failed: msa1 invalid", testnumber);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("selex good file test %d failed: tmpfile creation", testnumber);
@@ -896,11 +896,11 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
fclose(ofp);
/* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_SELEX, NULL, &afp)) != eslOK) esl_fatal("selex good file test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_selex_Read(afp, &msa2)) != eslOK) esl_fatal("selex good file test %d failed: msa read, text", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("selex good file test %d failed: nseq/alen", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("selex good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_SELEX, NULL, &afp)) != eslOK) esl_fatal("selex good file test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_selex_Read(afp, &msa2)) != eslOK) esl_fatal("selex good file test %d failed: msa read, text", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("selex good file test %d failed: nseq/alen", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("selex good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("selex good file test %d failed: tmpfile creation", testnumber);
@@ -909,10 +909,10 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_SELEX, NULL, &afp)) != eslOK) esl_fatal("selex good file test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_selex_Read(afp, &msa2)) != eslOK) esl_fatal("selex good file test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("selex good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_SELEX, NULL, &afp)) != eslOK) esl_fatal("selex good file test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_selex_Read(afp, &msa2)) != eslOK) esl_fatal("selex good file test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("selex good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("selex good file test %d failed: msa compare", testnumber);
@@ -958,25 +958,25 @@ read_test_msas_digital(char *slxfile, char *stkfile)
{
char msg[] = "SELEX msa digital read unit test failed";
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *slxfp, *stkfp;
char slxfile2[32] = "esltmpslx2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
- if ( eslx_msafile_Open(&abc, slxfile, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, slxfile, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( !abc || abc->type != eslAMINO) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_selex_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_selex_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
/* Now write stk to selex file, and vice versa; then retest */
if ( esl_tmpfile_named(slxfile2, &slxfp) != eslOK) esl_fatal(msg);
@@ -985,16 +985,16 @@ read_test_msas_digital(char *slxfile, char *stkfile)
if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(slxfp);
fclose(stkfp);
- if ( eslx_msafile_Open(&abc, slxfile2, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, slxfile2, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(&abc, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_selex_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(slxfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -1007,40 +1007,40 @@ static void
read_test_msas_text(char *slxfile, char *stkfile)
{
char msg[] = "SELEX msa text-mode read unit test failed";
- ESLX_MSAFILE *afp1 = NULL;
- ESLX_MSAFILE *afp2 = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
ESL_MSA *msa1, *msa2, *msa3, *msa4;
FILE *slxfp, *stkfp;
char slxfile2[32] = "esltmpslx2XXXXXX";
char stkfile2[32] = "esltmpstk2XXXXXX";
/* vvvv-- everything's the same as the digital utest except these NULLs */
- if ( eslx_msafile_Open(NULL, slxfile, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
-
- if ( esl_tmpfile_named(slxfile2, &slxfp) != eslOK) esl_fatal(msg);
- if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Write (slxfp, msa2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, slxfile, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_selex_Read (afp1, &msa1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_selex_Read (afp1, &msa3) != eslEOF) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa3) != eslEOF) esl_fatal(msg);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
+
+ if ( esl_tmpfile_named(slxfile2, &slxfp) != eslOK) esl_fatal(msg);
+ if ( esl_tmpfile_named(stkfile2, &stkfp) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_selex_Write (slxfp, msa2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Write(stkfp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(slxfp);
fclose(stkfp);
- if ( eslx_msafile_Open(NULL, slxfile2, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
- if ( eslx_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
- if ( esl_msafile_selex_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
- if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
- if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, slxfile2, NULL, eslMSAFILE_SELEX, NULL, &afp1) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_Open(NULL, stkfile2, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_selex_Read (afp1, &msa3) != eslOK) esl_fatal(msg);
+ if ( esl_msafile_stockholm_Read(afp2, &msa4) != eslOK) esl_fatal(msg);
+ if ( esl_msa_Compare(msa3, msa4) != eslOK) esl_fatal(msg);
remove(slxfile2);
remove(stkfile2);
- eslx_msafile_Close(afp2);
- eslx_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
@@ -1170,7 +1170,7 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
@@ -1183,12 +1183,12 @@ main(int argc, char **argv)
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ( (status = esl_msafile_selex_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
printf("alphabet: %s\n", (abc ? esl_abc_DecodeType(abc->type) : "none (text mode)"));
printf("# of seqs: %d\n", msa->nseq);
@@ -1199,7 +1199,7 @@ main(int argc, char **argv)
esl_msafile_selex_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -1226,19 +1226,19 @@ main(int argc, char **argv)
{
char *filename = argv[1];
int fmt = eslMSAFILE_SELEX;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) eslx_msafile_OpenFailure(afp, status);
- if ( (status = esl_msafile_selex_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_selex_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
printf("%6d seqs, %5d columns\n", msa->nseq, (int) msa->alen);
esl_msafile_selex_Write(stdout, msa);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_selex_example2::end::*/
@@ -1251,13 +1251,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_selex.c 756 2012-03-23 13:24:47Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_selex.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_selex.h b/easel/esl_msafile_selex.h
index 4c2cb4e..2a6b323 100644
--- a/easel/esl_msafile_selex.h
+++ b/easel/esl_msafile_selex.h
@@ -6,22 +6,19 @@
#include "esl_msa.h"
#include "esl_msafile.h"
-extern int esl_msafile_selex_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_selex_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_selex_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_selex_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_selex_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_selex_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
extern int esl_msafile_selex_Write (FILE *fp, const ESL_MSA *msa);
#endif /* eslMSAFILE_SELEX_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_selex.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_selex.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_stockholm.c b/easel/esl_msafile_stockholm.c
index b8af77c..72b7a69 100644
--- a/easel/esl_msafile_stockholm.c
+++ b/easel/esl_msafile_stockholm.c
@@ -79,11 +79,11 @@ static int stockholm_parsedata_ExpandSeq (ESL_STOCKHOLM_PA
static int stockholm_parsedata_ExpandBlock(ESL_STOCKHOLM_PARSEDATA *pd);
static void stockholm_parsedata_Destroy (ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa);
-static int stockholm_parse_gf(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
-static int stockholm_parse_gs(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
-static int stockholm_parse_gc(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
-static int stockholm_parse_gr(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
-static int stockholm_parse_sq(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
+static int stockholm_parse_gf(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
+static int stockholm_parse_gs(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
+static int stockholm_parse_gc(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
+static int stockholm_parse_gr(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
+static int stockholm_parse_sq(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n);
static int stockholm_parse_comment(ESL_MSA *msa, char *p, esl_pos_t n);
static int stockholm_get_seqidx (ESL_MSA *msa, ESL_STOCKHOLM_PARSEDATA *pd, char *name, esl_pos_t n, int *ret_idx);
@@ -111,7 +111,7 @@ static int stockholm_write(FILE *fp, const ESL_MSA *msa, int64_t cpl);
* where we don't do mapped input.)
*/
int
-esl_msafile_stockholm_SetInmap(ESLX_MSAFILE *afp)
+esl_msafile_stockholm_SetInmap(ESL_MSAFILE *afp)
{
int sym;
@@ -152,7 +152,7 @@ esl_msafile_stockholm_SetInmap(ESLX_MSAFILE *afp)
* started at.
*/
int
-esl_msafile_stockholm_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
+esl_msafile_stockholm_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type)
{
int alphatype = eslUNKNOWN;
esl_pos_t anchor = -1;
@@ -212,7 +212,7 @@ esl_msafile_stockholm_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
/* Function: esl_msafile_stockholm_Read()
* Synopsis: Read an alignment in Stockholm format.
*
- * Purpose: Read an MSA from open <ESLX_MSAFILE> <afp>,
+ * Purpose: Read an MSA from open <ESL_MSAFILE> <afp>,
* parsing for Stockholm format. Create a new
* MSA, and return it by reference through
* <*ret_msa>. Caller is responsible for freeing
@@ -245,7 +245,7 @@ esl_msafile_stockholm_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type)
* <*ret_msa> is returned <NULL>.
*/
int
-esl_msafile_stockholm_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
+esl_msafile_stockholm_Read(ESL_MSAFILE *afp, ESL_MSA **ret_msa)
{
ESL_MSA *msa = NULL;
ESL_STOCKHOLM_PARSEDATA *pd = NULL;
@@ -267,7 +267,7 @@ esl_msafile_stockholm_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
/* Skip leading blank lines in file. EOF here is a normal EOF return. */
do {
- if ( ( status = eslx_msafile_GetLine(afp, &p, &n)) != eslOK) goto ERROR; /* eslEOF is OK here - end of input (eslEOF) [eslEMEM|eslESYS] */
+ if ( ( status = esl_msafile_GetLine(afp, &p, &n)) != eslOK) goto ERROR; /* eslEOF is OK here - end of input (eslEOF) [eslEMEM|eslESYS] */
} while (esl_memspn(afp->line, afp->n, " \t") == afp->n || /* skip blank lines */
(esl_memstrpfx(afp->line, afp->n, "#") /* and skip comment lines */
&& ! esl_memstrpfx(afp->line, afp->n, "# STOCKHOLM"))); /* but stop on Stockholm header */
@@ -275,7 +275,7 @@ esl_msafile_stockholm_Read(ESLX_MSAFILE *afp, ESL_MSA **ret_msa)
/* Check for the magic Stockholm header */
if (! esl_memstrpfx(afp->line, afp->n, "# STOCKHOLM 1.")) ESL_XFAIL(eslEFORMAT, afp->errmsg, "missing Stockholm header");
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK) /* (eslEOF) [eslEMEM|eslESYS] */
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK) /* (eslEOF) [eslEMEM|eslESYS] */
{
while (n && ( *p == ' ' || *p == '\t')) { p++; n--; } /* skip leading whitespace */
@@ -525,7 +525,7 @@ stockholm_parsedata_Destroy(ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa)
* recognized featurenames: { ID | AC | DE | AU | GA | NC | TC }
*/
static int
-stockholm_parse_gf(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
+stockholm_parse_gf(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
{
char *gf, *tag, *tok;
esl_pos_t gflen, taglen, toklen;
@@ -612,7 +612,7 @@ stockholm_parse_gf(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
* recognized featurenames: { WT | AC | DE }
*/
static int
-stockholm_parse_gs(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
+stockholm_parse_gs(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
{
char *gs, *seqname, *tag, *tok;
esl_pos_t gslen, seqnamelen, taglen, toklen;
@@ -626,7 +626,7 @@ stockholm_parse_gs(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
seqidx = pd->si;
if (seqidx == pd->nseq || ! esl_memstrcmp(seqname, seqnamelen, msa->sqname[seqidx])) {
- status = stockholm_get_seqidx(msa, pd, seqname, seqnamelen, &seqidx);
+ stockholm_get_seqidx(msa, pd, seqname, seqnamelen, &seqidx);
}
if (esl_memstrcmp(tag, taglen, "WT"))
@@ -635,7 +635,7 @@ stockholm_parse_gs(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
if (msa->wgt[seqidx] != -1.0) ESL_FAIL(eslEFORMAT, afp->errmsg, "sequence has more than one #=GS <seqname> WT line");
if (n) ESL_FAIL(eslEFORMAT, afp->errmsg, "#=GS <seqname> WT line should have only one field, the weight");
if (! esl_mem_IsReal(tok, toklen)) ESL_FAIL(eslEFORMAT, afp->errmsg, "value on #=GS <seqname> WT line isn't a real number");
- if ( esl_memtod(tok, toklen, &(msa->wgt[seqidx]))) return status; /* eslEMEM */
+ if ((status = esl_memtod(tok, toklen, &(msa->wgt[seqidx]))) != eslOK) return status; /* eslEMEM */
msa->flags |= eslMSA_HASWGTS;
}
else if (esl_memstrcmp(tag, taglen, "AC"))
@@ -665,7 +665,7 @@ stockholm_parse_gs(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
* recognized featurenames: { SS_cons | SA_cons | PP_cons | RF }
*/
static int
-stockholm_parse_gc(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
+stockholm_parse_gc(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
{
char *gc, *tag;
esl_pos_t gclen, taglen;
@@ -753,7 +753,7 @@ stockholm_parse_gc(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
*
*/
static int
-stockholm_parse_gr(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
+stockholm_parse_gr(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
{
char *gr, *name, *tag;
esl_pos_t grlen, namelen, taglen;
@@ -776,7 +776,7 @@ stockholm_parse_gr(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
{
if (pd->si >= 1 && esl_memstrcmp(name, namelen, msa->sqname[pd->si-1])) seqidx = pd->si-1;
else if (pd->si < pd->nseq && esl_memstrcmp(name, namelen, msa->sqname[pd->si])) seqidx = pd->si;
- else status = stockholm_get_seqidx(msa, pd, name, namelen, &seqidx);
+ else if ((status = stockholm_get_seqidx(msa, pd, name, namelen, &seqidx)) != eslOK) goto ERROR;
if (pd->bi == pd->balloc && (status = stockholm_parsedata_ExpandBlock(pd)) != eslOK) return status;
@@ -858,7 +858,7 @@ stockholm_parse_gr(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa,
* <seqname> <aligned text>
*/
static int
-stockholm_parse_sq(ESLX_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
+stockholm_parse_sq(ESL_MSAFILE *afp, ESL_STOCKHOLM_PARSEDATA *pd, ESL_MSA *msa, char *p, esl_pos_t n)
{
char *seqname;
esl_pos_t seqnamelen;
@@ -2318,7 +2318,7 @@ static void
utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expected_nseq, int expected_alen)
{
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
char tmpfile1[32] = "esltmpXXXXXX";
@@ -2327,15 +2327,15 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
int status;
/* guessing both the format and the alphabet should work: this is a digital open */
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("stockholm good file test %d failed: digital open", testnumber);
- if (abc->type != expected_alphatype) esl_fatal("stockholm good file test %d failed: alphabet autodetection", testnumber);
- if (afp->format != eslMSAFILE_STOCKHOLM) esl_fatal("stockholm good file test %d failed: format autodetection", testnumber); /* eslMSAFILE_PFAM is autodetected as STOCKHOLM, and that's fine */
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK) esl_fatal("stockholm good file test %d failed: digital open", testnumber);
+ if (abc->type != expected_alphatype) esl_fatal("stockholm good file test %d failed: alphabet autodetection", testnumber);
+ if (afp->format != eslMSAFILE_STOCKHOLM) esl_fatal("stockholm good file test %d failed: format autodetection", testnumber); /* eslMSAFILE_PFAM is autodetected as STOCKHOLM, and that's fine */
/* This is a digital read, using <abc>. */
if ( (status = esl_msafile_stockholm_Read(afp, &msa1)) != eslOK) esl_fatal("stockholm good file test %d failed: msa read, digital", testnumber);
if (msa1->nseq != expected_nseq || msa1->alen != expected_alen) esl_fatal("stockholm good file test %d failed: nseq/alen", testnumber);
if (esl_msa_Validate(msa1, NULL) != eslOK) esl_fatal("stockholm good file test %d failed: msa1 invalid", testnumber);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (digital write) */
if ( (status = esl_tmpfile_named(tmpfile1, &ofp)) != eslOK) esl_fatal("stockholm good file test %d failed: tmpfile creation", testnumber);
@@ -2343,11 +2343,11 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
fclose(ofp);
/* now open and read it as text mode, in known format. (We have to pass fmtd now, to deal with the possibility of a nonstandard name width) */
- if ( (status = eslx_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp)) != eslOK) esl_fatal("stockholm good file test %d failed: text mode open", testnumber);
- if ( (status = esl_msafile_stockholm_Read(afp, &msa2)) != eslOK) esl_fatal("stockholm good file test %d failed: msa read, text", testnumber);
- if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("stockholm good file test %d failed: nseq/alen", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("stockholm good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(NULL, tmpfile1, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp)) != eslOK) esl_fatal("stockholm good file test %d failed: text mode open", testnumber);
+ if ( (status = esl_msafile_stockholm_Read(afp, &msa2)) != eslOK) esl_fatal("stockholm good file test %d failed: msa read, text", testnumber);
+ if (msa2->nseq != expected_nseq || msa2->alen != expected_alen) esl_fatal("stockholm good file test %d failed: nseq/alen", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("stockholm good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* write it back out to a new tmpfile (text write) */
if ( (status = esl_tmpfile_named(tmpfile2, &ofp)) != eslOK) esl_fatal("stockholm good file test %d failed: tmpfile creation", testnumber);
@@ -2356,10 +2356,10 @@ utest_goodfile(char *filename, int testnumber, int expected_alphatype, int expec
esl_msa_Destroy(msa2);
/* open and read it in digital mode */
- if ( (status = eslx_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_PFAM, NULL, &afp)) != eslOK) esl_fatal("stockholm good file test %d failed: 2nd digital mode open", testnumber);
- if ( (status = esl_msafile_stockholm_Read(afp, &msa2)) != eslOK) esl_fatal("stockholm good file test %d failed: 2nd digital msa read", testnumber);
- if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("stockholm good file test %d failed: msa2 invalid", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, tmpfile1, NULL, eslMSAFILE_PFAM, NULL, &afp)) != eslOK) esl_fatal("stockholm good file test %d failed: 2nd digital mode open", testnumber);
+ if ( (status = esl_msafile_stockholm_Read(afp, &msa2)) != eslOK) esl_fatal("stockholm good file test %d failed: 2nd digital msa read", testnumber);
+ if (esl_msa_Validate(msa2, NULL) != eslOK) esl_fatal("stockholm good file test %d failed: msa2 invalid", testnumber);
+ esl_msafile_Close(afp);
/* this msa <msa2> should be identical to <msa1> */
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal("stockholm good file test %d failed: msa compare", testnumber);
@@ -2375,16 +2375,16 @@ static void
utest_bad_format(char *filename, int testnumber, int expected_linenumber, char *expected_errmsg)
{
ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO);
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
int fmt = eslMSAFILE_STOCKHOLM;
ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(&abc, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_fatal("stockholm bad format test %d failed: unexpected open failure", testnumber);
- if ( (status = esl_msafile_stockholm_Read(afp, &msa)) != eslEFORMAT) esl_fatal("stockholm bad format test %d failed: unexpected error code", testnumber);
- if (strstr(afp->errmsg, expected_errmsg) == NULL) esl_fatal("stockholm bad format test %d failed: unexpected errmsg", testnumber);
- if (afp->linenumber != expected_linenumber) esl_fatal("stockholm bad format test %d failed: unexpected linenumber", testnumber);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(&abc, filename, NULL, fmt, NULL, &afp)) != eslOK) esl_fatal("stockholm bad format test %d failed: unexpected open failure", testnumber);
+ if ( (status = esl_msafile_stockholm_Read(afp, &msa)) != eslEFORMAT) esl_fatal("stockholm bad format test %d failed: unexpected error code", testnumber);
+ if (strstr(afp->errmsg, expected_errmsg) == NULL) esl_fatal("stockholm bad format test %d failed: unexpected errmsg", testnumber);
+ if (afp->linenumber != expected_linenumber) esl_fatal("stockholm bad format test %d failed: unexpected linenumber", testnumber);
+ esl_msafile_Close(afp);
esl_alphabet_Destroy(abc);
esl_msa_Destroy(msa);
}
@@ -2394,16 +2394,16 @@ static void
utest_good_format(ESL_ALPHABET **byp_abc, int fmt, int expected_nseq, int64_t expected_alen, char *buf)
{
char msg[] = "good format test failed";
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
- if (eslx_msafile_OpenMem(byp_abc, buf, strlen(buf), fmt, NULL, &afp) != eslOK) esl_fatal(msg);
- if (esl_msafile_stockholm_Read(afp, &msa) != eslOK) esl_fatal(msg);
- if (msa->nseq != expected_nseq) esl_fatal(msg);
- if (msa->alen != expected_alen) esl_fatal(msg);
+ if (esl_msafile_OpenMem(byp_abc, buf, strlen(buf), fmt, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_stockholm_Read(afp, &msa) != eslOK) esl_fatal(msg);
+ if (msa->nseq != expected_nseq) esl_fatal(msg);
+ if (msa->alen != expected_alen) esl_fatal(msg);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
}
static void
@@ -2413,7 +2413,7 @@ utest_identical_io(ESL_ALPHABET **byp_abc, int fmt, char *buf)
char tmpfile1[32] = "esltmpXXXXXX";
char tmpfile2[32] = "esltmpXXXXXX";
FILE *fp = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa1 = NULL;
ESL_MSA *msa2 = NULL;
@@ -2421,20 +2421,22 @@ utest_identical_io(ESL_ALPHABET **byp_abc, int fmt, char *buf)
fputs(buf, fp);
fclose(fp);
- if (eslx_msafile_Open(byp_abc, tmpfile1, NULL, fmt, NULL, &afp) != eslOK) esl_fatal(msg);
- if (esl_msafile_stockholm_Read(afp, &msa1) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if (esl_msafile_Open(byp_abc, tmpfile1, NULL, fmt, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_stockholm_Read(afp, &msa1) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
if (esl_tmpfile_named(tmpfile2, &fp) != eslOK) esl_fatal(msg);
if (esl_msafile_stockholm_Write(fp, msa1, eslMSAFILE_STOCKHOLM) != eslOK) esl_fatal(msg);
fclose(fp);
- if (eslx_msafile_Open(byp_abc, tmpfile2, NULL, fmt, NULL, &afp) != eslOK) esl_fatal(msg);
- if (esl_msafile_stockholm_Read(afp, &msa2) != eslOK) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if (esl_msafile_Open(byp_abc, tmpfile2, NULL, fmt, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_stockholm_Read(afp, &msa2) != eslOK) esl_fatal(msg);
+ esl_msafile_Close(afp);
if (esl_msa_Compare(msa1, msa2) != eslOK) esl_fatal(msg);
+ remove(tmpfile1);
+ remove(tmpfile2);
esl_msa_Destroy(msa1);
esl_msa_Destroy(msa2);
}
@@ -2443,26 +2445,26 @@ static void
utest_bad_open(ESL_ALPHABET **byp_abc, int fmt, int expected_status, char *buf)
{
char msg[] = "bad open test failed";
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
- if (eslx_msafile_OpenMem(byp_abc, buf, strlen(buf), fmt, NULL, &afp) != expected_status) esl_fatal(msg);
- eslx_msafile_Close(afp);
+ if (esl_msafile_OpenMem(byp_abc, buf, strlen(buf), fmt, NULL, &afp) != expected_status) esl_fatal(msg);
+ esl_msafile_Close(afp);
}
static void
utest_bad_read(ESL_ALPHABET **byp_abc, int fmt, char *expected_errmsg, int expected_line, char *buf)
{
char msg[] = "bad format test failed";
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
- if (eslx_msafile_OpenMem(byp_abc, buf, strlen(buf), fmt, NULL, &afp) != eslOK) esl_fatal(msg);
- if (esl_msafile_stockholm_Read(afp, &msa) != eslEFORMAT) esl_fatal(msg);
- if (strstr(afp->errmsg, expected_errmsg) == NULL) esl_fatal(msg);
- if (afp->linenumber != expected_line) esl_fatal(msg);
+ if (esl_msafile_OpenMem(byp_abc, buf, strlen(buf), fmt, NULL, &afp) != eslOK) esl_fatal(msg);
+ if (esl_msafile_stockholm_Read(afp, &msa) != eslEFORMAT) esl_fatal(msg);
+ if (strstr(afp->errmsg, expected_errmsg) == NULL) esl_fatal(msg);
+ if (afp->linenumber != expected_line) esl_fatal(msg);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
}
#endif /*eslMSAFILE_STOCKHOLM_TESTDRIVE*/
/*----------------- end, unit tests -----------------------------*/
@@ -2659,7 +2661,7 @@ main(int argc, char **argv)
char *filename = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
@@ -2672,9 +2674,9 @@ main(int argc, char **argv)
/* Text mode: pass NULL for alphabet.
* Digital mode: pass ptr to expected ESL_ALPHABET; and if abc=NULL, alphabet is guessed
*/
- if (esl_opt_GetBoolean(go, "-t")) status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (esl_opt_GetBoolean(go, "-t")) status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, filename, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
while ( (status = esl_msafile_stockholm_Read(afp, &msa)) == eslOK)
{
@@ -2688,9 +2690,9 @@ main(int argc, char **argv)
esl_msa_Destroy(msa);
}
- if (status != eslEOF) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslEOF) esl_msafile_ReadFailure(afp, status);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
exit(0);
@@ -2719,12 +2721,12 @@ main(int argc, char **argv)
{
char *filename = argv[1];
int infmt = eslMSAFILE_STOCKHOLM;
- ESLX_MSAFILE *afp = NULL;
- ESL_MSA *msa = NULL;
+ ESL_MSAFILE *afp = NULL;
+ ESL_MSA *msa = NULL;
int status;
- if ( (status = eslx_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, filename, NULL, infmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
while ( (status = esl_msafile_stockholm_Read(afp, &msa)) == eslOK)
{
@@ -2732,9 +2734,9 @@ main(int argc, char **argv)
esl_msafile_stockholm_Write(stdout, msa, eslMSAFILE_STOCKHOLM);
esl_msa_Destroy(msa);
}
- if (status != eslEOF) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslEOF) esl_msafile_ReadFailure(afp, status);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
exit(0);
}
/*::cexcerpt::msafile_stockholm_example2::end::*/
@@ -2744,13 +2746,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_stockholm.c 760 2012-05-09 14:53:14Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_stockholm.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msafile_stockholm.h b/easel/esl_msafile_stockholm.h
index 9ffc010..da6537d 100644
--- a/easel/esl_msafile_stockholm.h
+++ b/easel/esl_msafile_stockholm.h
@@ -3,22 +3,19 @@
#ifndef eslMSAFILE_STOCKHOLM_INCLUDED
#define eslMSAFILE_STOCKHOLM_INCLUDED
-extern int esl_msafile_stockholm_SetInmap (ESLX_MSAFILE *afp);
-extern int esl_msafile_stockholm_GuessAlphabet(ESLX_MSAFILE *afp, int *ret_type);
-extern int esl_msafile_stockholm_Read (ESLX_MSAFILE *afp, ESL_MSA **ret_msa);
+extern int esl_msafile_stockholm_SetInmap (ESL_MSAFILE *afp);
+extern int esl_msafile_stockholm_GuessAlphabet(ESL_MSAFILE *afp, int *ret_type);
+extern int esl_msafile_stockholm_Read (ESL_MSAFILE *afp, ESL_MSA **ret_msa);
extern int esl_msafile_stockholm_Write (FILE *fp, const ESL_MSA *msa, int fmt);
#endif /*eslMSAFILE_STOCKHOLM_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msafile_stockholm.h 708 2011-07-20 12:49:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msafile_stockholm.h $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msashuffle.c b/easel/esl_msashuffle.c
index 6a9a397..de42aff 100644
--- a/easel/esl_msashuffle.c
+++ b/easel/esl_msashuffle.c
@@ -306,7 +306,7 @@ esl_msashuffle_XQRNA(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, ESL_DSQ *x, ESL_DSQ *
pos = esl_rnd_Roll(r, nxy);
xsym = xs[xycol[pos]]; ysym = ys[xycol[pos]]; c = xycol[pos];
xs[xycol[pos]] = xs[xycol[nxy-1]]; ys[xycol[pos]] = ys[xycol[nxy-1]]; xycol[pos] = xycol[nxy-1];
- xs[xycol[nxy-1]] = xsym; ys[xycol[nxy-1]] = ysym; xycol[pos] = xycol[nxy-1];
+ xs[xycol[nxy-1]] = xsym; ys[xycol[nxy-1]] = ysym; xycol[pos] = c;
}
for (; nx > 1; nx--) {
pos = esl_rnd_Roll(r, nx);
@@ -404,7 +404,7 @@ esl_msashuffle_CQRNA(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, char *x, char *y, cha
pos = esl_rnd_Roll(r, nxy);
xsym = xs[xycol[pos]]; ysym = ys[xycol[pos]]; c = xycol[pos];
xs[xycol[pos]] = xs[xycol[nxy-1]]; ys[xycol[pos]] = ys[xycol[nxy-1]]; xycol[pos] = xycol[nxy-1];
- xs[xycol[nxy-1]] = xsym; ys[xycol[nxy-1]] = ysym; xycol[pos] = xycol[nxy-1];
+ xs[xycol[nxy-1]] = xsym; ys[xycol[nxy-1]] = ysym; xycol[pos] = c;
}
for (; nx > 1; nx--) {
pos = esl_rnd_Roll(r, nx);
@@ -463,13 +463,13 @@ main(int argc, char **argv)
char *msafile = esl_opt_GetArg(go, 1);
int fmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int textmode = esl_opt_GetBoolean(go, "--text");
int nali = 0;
int status;
- /* If you know the alphabet you want, create it - you'll pass it to eslx_msafile_Open() */
+ /* If you know the alphabet you want, create it - you'll pass it to esl_msafile_Open() */
if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO);
@@ -478,16 +478,16 @@ main(int argc, char **argv)
* To let the Open() function autoguess the format, you pass <infmt=eslMSAFILE_UNKNOWN>.
* To let it autoguess the alphabet, you set <abc=NULL> and pass <&abc>.
* To open in text mode instead of digital, you pass <NULL> for the alphabet argument.
- * eslx_msafile_OpenFailure() is a convenience, printing various diagnostics of any
+ * esl_msafile_OpenFailure() is a convenience, printing various diagnostics of any
* open failure to <stderr>. You can of course handle your own diagnostics instead.
*/
- if (textmode) status = eslx_msafile_Open(NULL, msafile, NULL, fmt, NULL, &afp);
- else status = eslx_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ if (textmode) status = esl_msafile_Open(NULL, msafile, NULL, fmt, NULL, &afp);
+ else status = esl_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
fmt = afp->format;
- while ((status = eslx_msafile_Read(afp, &msa)) == eslOK)
+ while ((status = esl_msafile_Read(afp, &msa)) == eslOK)
{
/* if digital MSA: msa->ax[idx=0..nseq-1][acol=1..alen] is the alignment data;
* if text MSA: msa->aseq[idx=0..nseq-1][acol=0..alen-1] */
@@ -496,13 +496,13 @@ main(int argc, char **argv)
/* permute it */
esl_msashuffle_PermuteSequenceOrder(rng, msa);
- eslx_msafile_Write(stdout, msa, fmt);
+ esl_msafile_Write(stdout, msa, fmt);
esl_msa_Destroy(msa);
}
- if (nali == 0 || status != eslEOF) eslx_msafile_ReadFailure(afp, status); /* a convenience, like eslx_msafile_OpenFailure() */
+ if (nali == 0 || status != eslEOF) esl_msafile_ReadFailure(afp, status); /* a convenience, like esl_msafile_OpenFailure() */
esl_alphabet_Destroy(abc);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_randomness_Destroy(rng);
esl_getopts_Destroy(go);
exit(0);
@@ -511,13 +511,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msashuffle.c 761 2012-05-10 20:09:44Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msashuffle.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msashuffle.h b/easel/esl_msashuffle.h
index 63011b4..f98944d 100644
--- a/easel/esl_msashuffle.h
+++ b/easel/esl_msashuffle.h
@@ -1,8 +1,8 @@
/* Shuffling or bootstrapping multiple sequence alignments.
*
* SRE, Tue Jan 22 09:18:09 2008 [Market Street Cafe, Leesburg]
- * SVN $Id: esl_msashuffle.h 761 2012-05-10 20:09:44Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msashuffle.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslMSASHUFFLE_INCLUDED
#define eslMSASHUFFLE_INCLUDED
@@ -28,10 +28,10 @@ extern int esl_msashuffle_XQRNA(ESL_RANDOMNESS *r, ESL_ALPHABET *abc, ESL_DSQ *x
#endif /*eslMSASHUFFLE_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msaweight.c b/easel/esl_msaweight.c
index 2d834a4..a60a82d 100644
--- a/easel/esl_msaweight.c
+++ b/easel/esl_msaweight.c
@@ -493,7 +493,7 @@ esl_msaweight_IDFilter(const ESL_MSA *msa, double maxid, ESL_MSA **ret_newmsa)
}
#endif
- if (ident > maxid)
+ if (ident >= maxid)
{
remove = TRUE;
break;
@@ -742,7 +742,7 @@ main(int argc, char **argv)
{
ESL_GETOPTS *go;
char *msafile;
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
ESL_MSA *msa;
float *sqd;
int status;
@@ -788,12 +788,12 @@ main(int argc, char **argv)
/* Weight one or more alignments from input file
*/
- if ((status = eslx_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
- while ( (status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ( (status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (maxN > 0 && msa->nseq > maxN) { esl_msa_Destroy(msa); continue; }
@@ -834,7 +834,7 @@ main(int argc, char **argv)
esl_msa_Destroy(msa);
free(sqd);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (nbadali == 0)
printf("OK: all weights identical between squid and Easel in %d alignment(s)\n", nali);
@@ -894,7 +894,7 @@ main(int argc, char **argv)
ESL_STOPWATCH *w;
ESL_GETOPTS *go;
char *msafile;
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
ESL_MSA *msa;
int do_gsc;
int do_pb;
@@ -932,12 +932,12 @@ main(int argc, char **argv)
/* Weight one or more alignments from input file
*/
- if ((status = eslx_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
- while ( (status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ( (status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (maxN > 0 && msa->nseq > maxN) { esl_msa_Destroy(msa); continue; }
esl_stopwatch_Start(w);
@@ -951,7 +951,7 @@ main(int argc, char **argv)
printf("%-20s %6d %6d %.3f\n", msa->name, msa->alen, msa->nseq, cpu);
esl_msa_Destroy(msa);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_stopwatch_Destroy(w);
return eslOK;
@@ -1001,7 +1001,7 @@ main(int argc, char **argv)
{
ESL_GETOPTS *go;
char *msafile;
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
ESL_MSA *msa;
int do_gsc;
int do_pb;
@@ -1037,12 +1037,12 @@ main(int argc, char **argv)
/* Weight one or more alignments from input file
*/
- if ((status = eslx_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
- while ( (status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ( (status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (maxN > 0 && msa->nseq > maxN) { esl_msa_Destroy(msa); continue; }
if (do_gsc) esl_msaweight_GSC(msa);
@@ -1064,7 +1064,7 @@ main(int argc, char **argv)
nbig);
esl_msa_Destroy(msa);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
return eslOK;
}
#endif /* eslMSAWEIGHT_STATS */
@@ -1092,16 +1092,16 @@ main(int argc, char **argv)
int main(int argc, char **argv)
{
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
ESL_MSA *msa;
int i;
int status;
- if ( (status = eslx_msafile_Open(NULL, argv[1], NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
- if ( (status = eslx_msafile_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
- eslx_msafile_Close(afp);
+ if ( (status = esl_msafile_Open(NULL, argv[1], NULL, eslMSAFILE_UNKNOWN, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Read(afp, &msa)) != eslOK)
+ esl_msafile_ReadFailure(afp, status);
+ esl_msafile_Close(afp);
esl_msaweight_GSC(msa);
@@ -1117,13 +1117,10 @@ int main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_msaweight.c 715 2011-08-03 21:04:24Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msaweight.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_msaweight.h b/easel/esl_msaweight.h
index 53604ac..4ed871f 100644
--- a/easel/esl_msaweight.h
+++ b/easel/esl_msaweight.h
@@ -1,8 +1,8 @@
/* Sequence weighting algorithms.
*
* SRE, Sun Nov 5 09:11:13 2006 [Janelia]
- * SVN $Id: esl_msaweight.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_msaweight.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslMSAWEIGHT_INCLUDED
#define eslMSAWEIGHT_INCLUDED
@@ -18,10 +18,10 @@ extern int esl_msaweight_IDFilter(const ESL_MSA *msa, double maxid, ESL_MSA **re
#endif /*eslMSAWEIGHT_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_normal.c b/easel/esl_normal.c
index 259edb5..1fb84e0 100644
--- a/easel/esl_normal.c
+++ b/easel/esl_normal.c
@@ -1,7 +1,31 @@
-/* Statistical routines for normal distributions
- * (This module is currently incomplete and not fully tested,
- * though it compiles cleanly.)
+/* Statistical routines for normal (Gaussian) distributions.
*
+ * Contents:
+ * 1. Densities and distributions
+ * 2. Generic API, interface to histogram module
+ * 3. Unit tests
+ * 4. Test driver
+ * 5. Example
+ *
+ * To-do:
+ * - incomplete API, by the standards of other Easel stats modules.
+ * Compare esl_gumbel, for example.
+ *
+ *****************************************************************
+ * Crib notes.
+ *
+ * The error function is defined as: erf(x) = 2/sqrt(pi) \int_0^x e^{-t^2} dt
+ * The complementary error function is: erfc(x) = 1 - erf(x)
+ * The normal CDF in terms of erf: CDF(z) = 1/2 + 1/2 erf(z/sqrt(2))
+ * erf(x) is an "odd function": erf(x) = -erf(-x)
+ *
+ * lim_{x -> -inf} erf(x) = -1; erf(0) = 0; lim_{x -> +inf} erf(x) = 1
+ * lim_{x -> -inf} erfc(x) = 2 erfc(0) = 1; lim_{x -> +inf} erfc(x) = 0;
+ *
+ * erf(), erfc() in double precision are in the C99 standard. Some
+ * systems (cough, Microsoft, cough) are not necessarily C99 compliant
+ * and may not provide erf(), erfc(). But Easel will compile in an
+ * alternative, esl_stats_erfc(), if needed.
*/
#include "esl_config.h"
@@ -9,6 +33,8 @@
#include "easel.h"
#include "esl_normal.h"
+#include "esl_stats.h"
+
/*****************************************************************
* 1. Densities and distributions.
@@ -29,7 +55,7 @@ esl_normal_pdf(double x, double mu, double sigma)
double z;
z = (x - mu) / sigma;
- return exp(-z*z*2.0) / (sigma * sqrt(2. * eslCONST_PI));
+ return exp(-z*z*0.5) / (sigma * sqrt(2. * eslCONST_PI));
}
/* Function: esl_normal_logpdf()
@@ -47,7 +73,7 @@ esl_normal_logpdf(double x, double mu, double sigma)
double z;
z = (x - mu) / sigma;
- return (-z*z*2.0) - log(sigma) - log(sqrt(2.*eslCONST_PI));
+ return (-z*z*0.5) - log(sigma) - log(sqrt(2.*eslCONST_PI));
}
/* Function: esl_normal_cdf()
@@ -64,8 +90,13 @@ esl_normal_cdf(double x, double mu, double sigma)
{
double z;
+ /* for z -> -inf, CDF->0, so we rearrange in order to avoid 1 - 1
+ * cancellation error that arises in 0.5 * (1 + erf(z)) version.
+ * This way, esl_normal_cdf() returns full double-precision dynamic
+ * range.
+ */
z = (x - mu) / sigma;
- return 0.5 + 0.5 * erf(z / sqrt(2.));
+ return 0.5 * erfc(-1. * z / sqrt(2.));
}
/* Function: esl_normal_surv()
@@ -81,74 +112,125 @@ esl_normal_cdf(double x, double mu, double sigma)
double
esl_normal_surv(double x, double mu, double sigma)
{
- double z = (x - mu) / (sqrt(2.) * sigma);
+ double z = (x - mu) / sigma;
+
+ /* As above, we avoid the use of 1-CDF or the more
+ * common 1/2 (1 - erf(z)) version because we need to
+ * avoid 1-1 cancellation error.
+ */
+ return 0.5 * erfc( z / sqrt(2.));
+}
+
+
+/*****************************************************************
+ * 2. Generic API, interface to histogram module
+ *****************************************************************/
+
+double
+esl_normal_generic_pdf(double x, void *params)
+{
+ double *v = (double *) params;
+ return esl_normal_pdf(x, v[0], v[1]);
+}
+
+double
+esl_normal_generic_cdf(double x, void *params)
+{
+ double *v = (double *) params;
+ return esl_normal_cdf(x, v[0], v[1]);
+}
- return 0.5 - 0.5 * erf(z);
+double
+esl_normal_generic_surv(double x, void *params)
+{
+ double *v = (double *) params;
+ return esl_normal_surv(x, v[0], v[1]);
}
/*****************************************************************
- * Unit tests.
+ * 3. Unit tests.
*****************************************************************/
#ifdef eslNORMAL_TESTDRIVE
static int
utest_pdf(void)
{
+ char msg[] = "gaussian PDF unit test failed";
double mu = 0.;
double sigma = 1.;
+ double delta = 0.01;
double x;
double newpdf, lastpdf;
+ double cdf;
+
+ /* One way to test the PDF is to integrate the CDF by quadrature, which should give us ~ 1. */
+ for (cdf = 0., x = -40.; x < 40.; x += delta)
+ cdf += esl_normal_pdf(x, mu, sigma) * delta;
+ if (esl_DCompare(cdf, 1.0, 1e-9) != eslOK) esl_fatal(msg);
+ /* We also verify that we're using double-precision range */
x = 0.;
newpdf = esl_normal_pdf(x, mu, sigma);
do {
x += 1.;
lastpdf = newpdf;
- newpdf = esl_normal_pdf(x, mu, sigma);
+ newpdf = esl_normal_pdf(x, mu, sigma);
} while (newpdf > 0.);
-
- if (lastpdf > 1e-300) esl_fatal("Dynamic range of esl_normal_pdf insufficient");
+ /* If denormals flush to zero, we reach x=38; lastpdf = 2.12001e-298.
+ * With denormals, we reach one more step, x=39; lastpdf = 1.09722e-314.
+ * icc enables flush-to-zero at all -O levels, and gcc does not.
+ */
+ if (lastpdf > 1e-297 || x < 38.) esl_fatal(msg);
return eslOK;
}
static int
utest_logpdf(void)
{
+ char msg[] = "gaussian log PDF unit test failed";
double mu = 0.;
double sigma = 1.;
+ double delta = 0.01;
double x;
double old, new;
+ double cdf;
+
+ /* One way to test the log PDF is to integrate the CDF by quadrature, which should give us ~ 1. */
+ for (cdf = 0., x = -40.; x < 40.; x += delta)
+ cdf += exp(esl_normal_logpdf(x, mu, sigma)) * delta;
+ if (esl_DCompare(cdf, 1.0, 1e-9) != eslOK) esl_fatal(msg);
- x = 0.;
- new = esl_normal_logpdf(x, mu, sigma);
- do {
- x += 1.;
- old = new;
- new = esl_normal_logpdf(x, mu, sigma);
- } while (new > 0.);
-
- if (old > 1e-300) esl_fatal("Dynamic range of esl_normal_logpdf insufficient");
+ /* Another way is to compare exp(logpdf) to the PDF */
+ for (x = -20.; x < 20.; x += delta)
+ {
+ old = esl_normal_pdf (x, mu, sigma);
+ new = exp(esl_normal_logpdf(x, mu, sigma));
+ if (esl_DCompare(old, new, 1e-9) != eslOK) esl_fatal(msg);
+ }
- old = esl_normal_pdf(42, -5., 2.1);
- new = exp(esl_normal_logpdf(42, -5., 2.1));
- if (esl_DCompare(old, new, 1e-9) != eslOK)
- esl_fatal("logpdf and pdf aren't giving the same answer");
return eslOK;
}
static int
utest_cdf(void)
{
+ char msg[] = "gaussian CDF unit test failed";
double mu = 0.;
double sigma = 1.;
double x;
- double new;
- for (x = 0.; x > -100.; x -= 1.0)
- {
- new = esl_normal_cdf(x, mu, sigma);
- printf("%.0f %g\n", x, new);
- }
+ x = esl_normal_cdf(mu, mu, sigma);
+ if (esl_DCompare(x, 0.5, 1e-9) != eslOK) esl_fatal(msg);
+
+ x = esl_normal_cdf(99., mu, sigma);
+ if (esl_DCompare(x, 1.0, 1e-9) != eslOK) esl_fatal(msg);
+
+ x = esl_normal_cdf(-99., mu, sigma);
+ if (esl_DCompare(x, 0.0, 1e-9) != eslOK) esl_fatal(msg);
+
+ x = esl_normal_cdf(-30., mu, sigma);
+ if (x > 1e-100 || x == 0.) esl_fatal(msg);
+
return eslOK;
}
@@ -156,32 +238,36 @@ utest_cdf(void)
static int
utest_surv(void)
{
+ char msg[] = "gaussian survival unit test failed";
double mu = 0.;
double sigma = 1.;
double x;
- double new;
- for (x = 0.; x < 100.; x += 1.0)
- {
- new = esl_normal_surv(x, mu, sigma);
- printf("%.0f %g\n", x, new);
- }
- return eslOK;
-}
-
+ x = esl_normal_surv(mu, mu, sigma);
+ if (esl_DCompare(x, 0.5, 1e-9) != eslOK) esl_fatal(msg);
+
+ x = esl_normal_surv(-99., mu, sigma);
+ if (esl_DCompare(x, 1.0, 1e-9) != eslOK) esl_fatal(msg);
+
+ x = esl_normal_surv(99., mu, sigma);
+ if (esl_DCompare(x, 0.0, 1e-9) != eslOK) esl_fatal(msg);
+ x = esl_normal_surv(30., mu, sigma);
+ if (x > 1e-100 || x == 0.) esl_fatal(msg);
+ return eslOK;
+}
#endif /*eslNORMAL_TESTDRIVE*/
/*****************************************************************
- * Test driver.
+ * 4. Test driver.
*****************************************************************/
#ifdef eslNORMAL_TESTDRIVE
/* Compile:
- gcc -g -Wall -I. -L. -o test -DeslNORMAL_TESTDRIVE esl_normal.c -leasel -lm
+ gcc -g -Wall -I. -L. -o esl_normal_utest -DeslNORMAL_TESTDRIVE esl_normal.c -leasel -lm
*/
#include <stdio.h>
#include <math.h>
@@ -193,7 +279,7 @@ main(int argc, char **argv)
{
utest_pdf();
utest_logpdf();
- /* utest_cdf(); */
+ utest_cdf();
utest_surv();
return eslOK;
@@ -201,36 +287,12 @@ main(int argc, char **argv)
#endif /*eslNORMAL_TESTDRIVE*/
/*****************************************************************
- * Example.
+ * 5. Example.
*****************************************************************/
#ifdef eslNORMAL_EXAMPLE
-/*::cexcerpt::normal_example::begin::*/
-/* compile:
- gcc -g -Wall -I. -o example -DeslNORMAL_EXAMPLE esl_normal.c easel.c -lm
- */
-#include <stdio.h>
-#include <math.h>
-
-#include "easel.h"
-#include "esl_normal.h"
-
-int
-main(int argc, char **argv)
-{
- double z;
-
- z = sqrt(2 * eslCONST_PI);
- printf("%.60f\n", z);
- printf("%.60f\n", eslCONST_PI);
- printf("%.60f\n", (1. + sqrt(5.)) / 2.);
- return 0;
-}
-#endif /*eslNORMAL_EXAMPLE*/
-
-#ifdef eslNORMAL_EXAMPLE2
-/* Print a Gaussian histogram in xmgrace XY set format
- gcc -g -Wall -I. -L. -o example -DeslNORMAL_EXAMPLE2 esl_normal.c -leasel -lm
+/* Print Gaussian distribution(s) in xmgrace XY set format
+ gcc -g -Wall -I. -L. -o esl_normal_example -DeslNORMAL_EXAMPLE esl_normal.c -leasel -lm
*/
#include <stdio.h>
#include <math.h>
@@ -242,7 +304,6 @@ main(int argc, char **argv)
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", 0 },
- { "-N", eslARG_REAL, "1.0", NULL, NULL, NULL, NULL, NULL, "number of samples", 0 },
{ "--mean", eslARG_REAL, "0.0", NULL, NULL, NULL, NULL, NULL, "mean of normal distribution", 0 },
{ "--sd", eslARG_REAL, "1.0", NULL, NULL, NULL, NULL, NULL, "s.d. of normal distribution", 0 },
{ "--min", eslARG_REAL, "-10.0", NULL, NULL, NULL, NULL, NULL, "minimum for xaxis", 0 },
@@ -260,36 +321,34 @@ main(int argc, char **argv)
double minx = esl_opt_GetReal(go, "--min");
double maxx = esl_opt_GetReal(go, "--max");
double xstep = esl_opt_GetReal(go, "--step");
- double N = esl_opt_GetReal(go, "-N");
double mean = esl_opt_GetReal(go, "--mean");
double sd = esl_opt_GetReal(go, "--sd");
double x;
double val;
-
for (x = minx; x < maxx; x += xstep)
{
- val = N * (esl_normal_surv(x, mean, sd) - esl_normal_surv(x+xstep, mean, sd));
- printf("%f %f\n", x, val);
+ val = esl_normal_logpdf(x, mean, sd) * xstep; /* replace w/ whatever you want to test drive */
+ printf("%f %g\n", x, val);
}
- printf("&\n");
+ printf("&\n");
esl_getopts_Destroy(go);
return 0;
}
-#endif /*eslNORMAL_EXAMPLE2*/
+#endif /*eslNORMAL_EXAMPLE*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_normal.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_normal.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_normal.h b/easel/esl_normal.h
index 1d85595..2afefb2 100644
--- a/easel/esl_normal.h
+++ b/easel/esl_normal.h
@@ -1,8 +1,8 @@
/* Statistical routines for normal distributions
*
* SRE, Tue Nov 21 14:29:02 2006 [Janelia]
- * SVN $Id: esl_normal.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_normal.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslNORMAL_INCLUDED
#define eslNORMAL_INCLUDED
@@ -12,13 +12,17 @@ extern double esl_normal_logpdf(double x, double mu, double sigma);
extern double esl_normal_cdf (double x, double mu, double sigma);
extern double esl_normal_surv (double x, double mu, double sigma);
+extern double esl_normal_generic_pdf (double x, void *params);
+extern double esl_normal_generic_cdf (double x, void *params);
+extern double esl_normal_generic_surv(double x, void *params);
+
#endif /*eslNORMAL_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_paml.c b/easel/esl_paml.c
index f4e824c..9c3ba87 100644
--- a/easel/esl_paml.c
+++ b/easel/esl_paml.c
@@ -177,14 +177,14 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_paml.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_paml.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_paml.h b/easel/esl_paml.h
index 623cc86..725b887 100644
--- a/easel/esl_paml.h
+++ b/easel/esl_paml.h
@@ -7,8 +7,8 @@
*
* incept: SRE, Tue Jul 13 13:20:08 2004 [St. Louis]
* upgrade to Easel: SRE, Thu Mar 8 13:26:20 2007 [Janelia]
- * SVN $Id: esl_paml.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_paml.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslPAML_INCLUDED
#define eslPAML_INCLUDED
@@ -22,10 +22,10 @@ extern int esl_paml_ReadE(FILE *fp, ESL_DMATRIX *E, double *pi);
#endif /*eslPAML_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_random.c b/easel/esl_random.c
index 383f3c8..565f144 100644
--- a/easel/esl_random.c
+++ b/easel/esl_random.c
@@ -14,10 +14,18 @@
*
* See http://csrc.nist.gov/rng/ for the NIST random number
* generation test suite.
+ *
+ * It'd be nice if we had a debugging/unit testing mode in which
+ * esl_random() deliberately generated extreme values, such as 0 for
+ * example. Routines that use esl_random() can be sensitive to whether
+ * the interval 0,1 is open or closed. We should be able to test for
+ * problems with interval endpoints without taking enormous numbers of
+ * samples.
*/
#include "esl_config.h"
#include <stdlib.h>
+#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
@@ -102,19 +110,37 @@ esl_randomness_Create(uint32_t seed)
* Synopsis: Create the alternative fast generator.
*
* Purpose: Same as <esl_randomness_Create()>, except that a simple
- * linear congruential generator will be used.
+ * linear congruential generator (LCG) will be used.
+ *
+ * This is a low quality generator. Successive samples from
+ * an LCG are correlated, and it has a relatively short
+ * period. IT SHOULD NOT BE USED FOR SERIOUS
+ * SIMULATIONS. Rather, it's a quick and dirty RNG where
+ * you're sure that speed is more important than the
+ * quality of your random numbers. For a high quality RNG,
+ * use <esl_randomness_Create()> instead.
*
* This is a $(a=69069, c=1)$ LCG, with a period of
- * $2^{32}$. Because of the relatively short period, this
- * generator should not be used for serious simulations
- * involving large samples.
+ * $2^{32}$.
+ *
+ * It is about 20x faster to initialize the generator, and
+ * about 25\% faster to sample each number, compared to the
+ * default Mersenne Twister. (In most cases, this speed
+ * differential is not worth the degradation in
+ * quality. Since we made MT our default generator, the
+ * speed advantage of the LCG essentially disappeared, so
+ * in some sense this is legacy code.)
*
- * The properties of this generator are not as good as the
- * default Mersenne Twister, but it is faster, especially
- * if you only need a small number of samples from the
- * generator; it is about 20x faster to initialize the
- * generator, and about 25\% faster to sample a number,
- * compared to the default.
+ * Here's an example of how serial correlation arises in an
+ * LCG, and how it can lead to serious (and difficult to
+ * diagnose) failure in a Monte Carlo simulation. Recall
+ * that an LCG calculates $x_{i+1} = ax_i + c$. Suppose
+ * $x_i$ is small: in the range 0..6000, say, as a specific
+ * example. Now $x_{i+1}$ cannot be larger than 4.1e8, for
+ * an LCG with $a=69069$,$c=1$. So if you take a sample and
+ * test whether it is $< 1e-6$ (say), the next sample will
+ * be in a range of about 0..0.1, rather than being uniform
+ * on 0..1.
*
* Args: seed $>= 0$.
*
@@ -246,24 +272,13 @@ esl_randomness_Destroy(ESL_RANDOMNESS *r)
/* Function: esl_random()
* Synopsis: Generate a uniform random deviate on [0,1)
*
- * Purpose: Returns a uniform deviate x, $0.0 <= x < 1.0$, given
+ * Purpose: Returns a uniform deviate x, $0.0 \leq x < 1.0$, given
* RNG <r>.
*
- * Uses the original Mersenne Twister algorithm, MT19937
- * [Matsumoto98]. This generator has a period of $2^{19937} -
- * 1$. It generates uniformly distributed variates on the
- * interval $0..2^{32}-1$.
- *
* If you cast the return value to float, the [0,1) interval
* guarantee is lost because values close to 1 will round to
* 1.0.
*
- * Notes: Easel previously used a reimplementation of ran2() from
- * Numerical Recipes in C, which uses L'Ecuyer's algorithm
- * for combining output of two linear congruential
- * generators, plus a Bays-Durham shuffle \citep{Press93}.
- * MT is about 10x faster.
- *
* Returns: a uniformly distribute random deviate on interval
* $0.0 \leq x < 1.0$.
*/
@@ -275,6 +290,20 @@ esl_random(ESL_RANDOMNESS *r)
}
+/* Function: esl_random_uint32()
+ * Synopsis: Generate a uniform random deviate on 0..2^32-1
+ * Incept: SRE, Wed Jan 13 10:59:26 2016
+ *
+ * Purpose: Returns a uniform deviate x, a 32-bit unsigned
+ * integer $0 \leq x < 2^{32}$, given RNG <r>.
+ */
+uint32_t
+esl_random_uint32(ESL_RANDOMNESS *r)
+{
+ return (r->type == eslRND_MERSENNE) ? mersenne_twister(r) : knuth(r);
+}
+
+
static uint32_t
knuth(ESL_RANDOMNESS *r)
{
@@ -356,21 +385,20 @@ mersenne_fill_table(ESL_RANDOMNESS *r)
/* choose_arbitrary_seed()
* Return a 'quasirandom' seed > 0.
- * This could be a *lot* better than it is now; see RFC1750
- * for a discussion of securely seeding RNGs.
+ * This should be ok, but could be better.
+ * See RFC1750 for a discussion of securely seeding RNGs.
*/
static uint32_t
choose_arbitrary_seed(void)
{
- uint32_t a = (uint32_t) time ((time_t *) NULL);
- uint32_t b = 87654321; /* anything nonzero */
- uint32_t c = 12345678; /* anything nonzero. jenkins' mix3 needs 3 numbers; add an arbitrary one */
+ uint32_t a = (uint32_t) time ((time_t *) NULL);
+ uint32_t b = 87654321; // we'll use getpid() below, if we can
+ uint32_t c = (uint32_t) clock(); // clock() gives time since process invocation, in msec at least, if not usec
uint32_t seed;
#ifdef HAVE_GETPID
- b = (uint32_t) getpid(); /* preferable b choice, if we have POSIX getpid(); else both b,c are arbitrary */
+ b = (uint32_t) getpid(); // preferable b choice, if we have POSIX getpid()
#endif
- seed = jenkins_mix3(a,b,c); /* try to decorrelate closely spaced choices of pid/time */
-
+ seed = jenkins_mix3(a,b,c); // try to decorrelate closely spaced choices of pid/times
return (seed == 0) ? 42 : seed; /* 42 is entirely arbitrary, just to avoid seed==0. */
}
@@ -466,6 +494,13 @@ esl_rnd_UniformPositive(ESL_RANDOMNESS *r)
* and James Lovato (M.D. Anderson Cancer Center, Texas
* USA) using the method described in
* \citep{AhrensDieter73}.
+ *
+ * Original algorithm said to use uniform deviates on [0,1)
+ * interval (i.e. <esl_random()>), but this appears to be
+ * wrong. Use uniform deviates on (0,1) interval instead
+ * (i.e., <esl_rnd_UniformPositive()>). RANLIB, GNU Octave
+ * have made this alteration, possibly inadvertently.
+ * [xref cryptogenomicon post, 13 Oct 2014].
*
* Method: Impenetrability of the code is to be blamed on
* FORTRAN/f2c lineage.
@@ -511,7 +546,7 @@ esl_rnd_Gaussian(ESL_RANDOMNESS *r, double mean, double stddev)
8.781922E-2,9.930398E-2,0.11556,0.1404344,0.1836142,0.2790016,0.7010474
};
- u = esl_random(r);
+ u = esl_rnd_UniformPositive(r);
s = 0.0;
if(u > 0.5) s = 1.0;
u += (u-s);
@@ -539,18 +574,18 @@ S60:
/*
* CENTER CONTINUED
*/
- u = esl_random(r);
+ u = esl_rnd_UniformPositive(r);
w = u*(a[i]-aa);
tt = (0.5*w+aa)*w;
goto S80;
S70:
tt = u;
- ustar = esl_random(r);
+ ustar = esl_rnd_UniformPositive(r);
S80:
if(ustar > tt) goto S50;
- u = esl_random(r);
+ u = esl_rnd_UniformPositive(r);
if(ustar >= u) goto S70;
- ustar = esl_random(r);
+ ustar = esl_rnd_UniformPositive(r);
goto S40;
S100:
/*
@@ -562,6 +597,7 @@ S100:
S110:
aa += d[i-1];
i += 1;
+ ESL_DASSERT1(( i <= 31 ));
S120:
u += u;
if(u < 1.0) goto S110;
@@ -573,11 +609,11 @@ S140:
S150:
tt = u;
S160:
- ustar = esl_random(r);
+ ustar = esl_rnd_UniformPositive(r);
if(ustar > tt) goto S50;
- u = esl_random(r);
+ u = esl_rnd_UniformPositive(r);
if(ustar >= u) goto S150;
- u = esl_random(r);
+ u = esl_rnd_UniformPositive(r);
goto S140;
}
@@ -650,14 +686,14 @@ gamma_fraction(ESL_RANDOMNESS *r, double a) /* for fractional a, 0 < a < 1 */
*
* Args: r - random number generation seed
* a - order of the gamma function; a > 0
- *
- * Throws: <eslEINVAL> for $a <= 0$.
*/
double
esl_rnd_Gamma(ESL_RANDOMNESS *r, double a)
{
double aint;
+ ESL_DASSERT1(( a > 0. ));
+
aint = floor(a);
if (a == aint && a < 12.)
return gamma_integer(r, (unsigned int) a);
@@ -667,7 +703,73 @@ esl_rnd_Gamma(ESL_RANDOMNESS *r, double a)
return gamma_fraction(r, a);
else
return gamma_integer(r, aint) + gamma_fraction(r, a-aint);
- return eslOK;
+}
+
+
+/* Function: esl_rnd_Dirichlet()
+ * Synopsis: Sample a Dirichlet-distributed random probability vector
+ * Incept: SRE, Wed Feb 17 12:20:53 2016 [H1/76]
+ *
+ * Purpose: Using generator <rng>, sample a Dirichlet-distributed
+ * probabilty vector <p> of <K> elements, using Dirichlet
+ * parameters <alpha> (also of <K> elements).
+ *
+ * Caller provides the allocated space for <p>.
+ *
+ * <alpha> is optional. If it isn't provided (i.e. is
+ * <NULL>), sample <p> uniformly. (That is, use <alpha[i] =
+ * 1.> for all i=0..K-1.)
+ *
+ * This routine is redundant with <esl_dirichlet_DSample()>
+ * and <esl_dirichlet_DSampleUniform()> in the dirichlet
+ * module. Provided here because there's cases where we
+ * just want to sample a probability vector without
+ * introducing a dependency on all the stats/dirichlet code
+ * in Easel.
+ *
+ * Args: rng : random number generator
+ * alpha : OPTIONAL: Dirichlet parameters 0..K-1, or NULL to use alpha[i]=1 for all i
+ * K : number of elements in alpha, p
+ * p : RESULT: sampled probability vector
+ *
+ * Returns: (void)
+ */
+void
+esl_rnd_Dirichlet(ESL_RANDOMNESS *rng, const double *alpha, int K, double *p)
+{
+ int x;
+ double norm = 0.;
+
+ for (x = 0; x < K; x++)
+ {
+ p[x] = esl_rnd_Gamma(rng, (alpha ? alpha[x] : 1.0));
+ norm += p[x];
+ }
+ for (x = 0; x < K; x++)
+ p[x] /= norm;
+}
+
+
+/* Function: esl_rnd_mem()
+ * Synopsis: Overwrite a buffer with random garbage.
+ * Incept: SRE, Fri Feb 19 08:53:07 2016
+ *
+ * Purpose: Write <n> bytes of random garbage into buffer
+ * <buf>, by uniform sampling of values 0..255,
+ * using generator <rng>.
+ *
+ * Used in unit tests that are reusing memory, and that
+ * want to make sure that there's no favorable side effects
+ * from that reuse.
+ */
+void
+esl_rnd_mem(ESL_RANDOMNESS *rng, void *buf, int n)
+{
+ unsigned char *p = (unsigned char *) buf;
+ int i;
+
+ for (i = 0; i < n; i++)
+ p[i] = (unsigned char) esl_rnd_Roll(rng, 256);
}
@@ -730,7 +832,7 @@ esl_rnd_FChoose(ESL_RANDOMNESS *r, const float *p, int N)
for (i = 0; i < N; i++)
{
- sum += p[i];
+ sum += (double) p[i];
if (roll < (sum / norm) ) return i;
}
esl_fatal("unreached code was reached. universe collapses.");
@@ -800,7 +902,7 @@ esl_rnd_FChooseCDF(ESL_RANDOMNESS *r, const float *cdf, int N)
ESL_DASSERT1((cdf[N-1] > 0.99 && cdf[N-1] < 1.01));
for (i = 0; i < N; i++)
- if (roll < cdf[i]/cdf[N-1]) return i;
+ if (roll < (double) cdf[i] / (double) cdf[N-1]) return i; // yes, the casts are NECESSARY. Without them, you get a heisenbug on icc/linux.
esl_fatal("unreached code is reached. universe goes foom");
return 0; /*notreached*/
}
@@ -825,6 +927,7 @@ esl_rnd_FChooseCDF(ESL_RANDOMNESS *r, const float *cdf, int N)
*/
#include "easel.h"
+#include "esl_composition.h"
#include "esl_getopts.h"
#include "esl_random.h"
#include "esl_stopwatch.h"
@@ -1009,8 +1112,6 @@ utest_choose(ESL_RANDOMNESS *r, int n, int nbins, int be_verbose)
free(ct);
return;
}
-
-
#endif /*eslRANDOM_TESTDRIVE*/
/*-------------------- end, unit tests --------------------------*/
@@ -1060,6 +1161,10 @@ main(int argc, char **argv)
int n = esl_opt_GetInteger(go, "-n");
int be_verbose = esl_opt_GetBoolean(go, "-v");
+ fprintf(stderr, "## %s\n", argv[0]);
+ fprintf(stderr, "# rng seed 1 (slow) = %" PRIu32 "\n", esl_randomness_GetSeed(r1));
+ fprintf(stderr, "# rng seed 2 (fast) = %" PRIu32 "\n", esl_randomness_GetSeed(r2));
+
utest_random(r1, n, nbins, be_verbose);
utest_choose(r1, n, nbins, be_verbose);
utest_random(r2, n, nbins, be_verbose);
@@ -1068,6 +1173,8 @@ main(int argc, char **argv)
if (mtbitfile) save_bitfile(mtbitfile, r1, n);
if (kbitfile) save_bitfile(kbitfile, r2, n);
+ fprintf(stderr, "# status = ok\n");
+
esl_randomness_Destroy(r1);
esl_randomness_Destroy(r2);
esl_getopts_Destroy(go);
@@ -1111,31 +1218,51 @@ save_bitfile(char *bitfile, ESL_RANDOMNESS *r, int n)
*****************************************************************/
#ifdef eslRANDOM_EXAMPLE
/*::cexcerpt::random_example::begin::*/
-/* compile: gcc -g -Wall -I. -o esl_random_example -DeslRANDOM_EXAMPLE esl_random.c easel.c -lm
+/* compile: cc -I. -o esl_random_example -DeslRANDOM_EXAMPLE esl_random.c esl_getopts.c easel.c -lm
* run: ./random_example 42
*/
#include <stdio.h>
#include "easel.h"
+#include "esl_getopts.h"
#include "esl_random.h"
+/* In Easel and HMMER, the option for setting the seed is typically -s, sometimes --seed.
+ * Default is usually 0 because we want a "random" seed. Less commonly, "42" for a fixed seed;
+ * rarely, a different fixed seed.
+ *
+ * Generally you want to use esl_randomness_Create(), to get a Mersenne Twister. The "fast"
+ * RNG you get from esl_randomness_CreateFast() isn't all that much faster (~25% per sample)
+ * but has much worse quality in its randomness.
+ */
+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", 0 },
+ { "-i", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "sample uint32's instead of doubles", 0 },
+ { "-n", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "number of random samples to show", 0 },
+ { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options]";
+static char banner[] = "example of using random module";
+
int
main(int argc, char **argv)
{
- long seed = atoi(argv[1]);
- ESL_RANDOMNESS *r = esl_randomness_Create(seed);
- int n = 1076;
-
- printf("RNG seed: %" PRIu32 "\n", esl_randomness_GetSeed(r));
- printf("A sequence of %d pseudorandom numbers:\n", n);
- while (n--) printf("%f\n", esl_random(r));
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_Create( esl_opt_GetInteger(go, "-s") );
+ int do_uint32 = esl_opt_GetBoolean(go, "-i");
+ int n = esl_opt_GetInteger(go, "-n");
+
+ printf("RNG seed: %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+ printf("\nA sequence of %d pseudorandom numbers:\n", n);
+ if (do_uint32) while (n--) printf("%" PRIu32 "\n", esl_random_uint32(rng));
+ else while (n--) printf("%f\n", esl_random(rng));
- esl_randomness_Dump(stdout, r);
- printf("%f\n", esl_random(r));
+ printf("\nInternal dump of RNG state:\n");
+ esl_randomness_Dump(stdout, rng);
- esl_randomness_Dump(stdout, r);
- printf("%f\n", esl_random(r));
-
- esl_randomness_Destroy(r);
+ esl_randomness_Destroy(rng);
+ esl_getopts_Destroy(go);
return 0;
}
/*::cexcerpt::random_example::end::*/
@@ -1144,15 +1271,15 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_random.c 738 2011-12-15 17:03:02Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_random.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_random.h b/easel/esl_random.h
index edd441d..2b6afe1 100644
--- a/easel/esl_random.h
+++ b/easel/esl_random.h
@@ -3,6 +3,8 @@
#ifndef eslRANDOM_INCLUDED
#define eslRANDOM_INCLUDED
+#include <stdint.h>
+
#define eslRND_FAST 0
#define eslRND_MERSENNE 1
@@ -21,7 +23,7 @@ typedef struct {
/* 1. The ESL_RANDOMNESS object.
*/
-extern ESL_RANDOMNESS *esl_randomness_Create(uint32_t seed);
+extern ESL_RANDOMNESS *esl_randomness_Create (uint32_t seed);
extern ESL_RANDOMNESS *esl_randomness_CreateFast(uint32_t seed);
extern ESL_RANDOMNESS *esl_randomness_CreateTimeseeded(void); /* DEPRECATED */
extern void esl_randomness_Destroy(ESL_RANDOMNESS *r);
@@ -30,7 +32,8 @@ extern uint32_t esl_randomness_GetSeed(const ESL_RANDOMNESS *r);
/* 2. The generator, esl_random().
*/
-extern double esl_random(ESL_RANDOMNESS *r);
+extern double esl_random (ESL_RANDOMNESS *r);
+extern uint32_t esl_random_uint32(ESL_RANDOMNESS *r);
/* 3. Debugging/development tools.
*/
@@ -39,8 +42,10 @@ extern int esl_randomness_Dump(FILE *fp, ESL_RANDOMNESS *r);
/* 4. Other fundamental sampling (including Gaussian, gamma).
*/
extern double esl_rnd_UniformPositive(ESL_RANDOMNESS *r);
-extern double esl_rnd_Gaussian(ESL_RANDOMNESS *r, double mean, double stddev);
-extern double esl_rnd_Gamma(ESL_RANDOMNESS *r, double a);
+extern double esl_rnd_Gaussian (ESL_RANDOMNESS *rng, double mean, double stddev);
+extern double esl_rnd_Gamma (ESL_RANDOMNESS *rng, double a);
+extern void esl_rnd_Dirichlet(ESL_RANDOMNESS *rng, const double *alpha, int K, double *p);
+extern void esl_rnd_mem (ESL_RANDOMNESS *rng, void *buf, int n);
/* 5. Multinomial sampling from discrete probability n-vectors.
*/
@@ -53,10 +58,10 @@ extern int esl_rnd_FChooseCDF(ESL_RANDOMNESS *r, const float *cdf, int N);
#endif /*eslRANDOM_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_random.tex b/easel/esl_random.tex
index 6b014bf..f73c78c 100644
--- a/easel/esl_random.tex
+++ b/easel/esl_random.tex
@@ -20,8 +20,16 @@ initialize (about 20x) and somewhat faster to generate samples (about
applications. Because of its initialization speed, the LCG is
advantageous when a small number of reasonably random samples is
needed in a speed-critical application. However, it has a relatively
-short period ($2^32$), making it entirely unsuitable for large
-simulations.
+short period ($2^32$), making it unsuitable for large simulations.
+
+A new generator can either be seeded with a number that you provide,
+or using an arbitrary (quasirandom) seed. If you seed it yourself, you
+can guarantee reproducibility: two generators seeded with the same
+seed will give exactly the same sequence, even on different hardware
+platforms and operating systems. If you let it seed itself
+arbitrarily, you will get different sequences. Multiple instances of
+running the same program will get quite different arbitrary seeds even
+if you start them at the same time.
Bit streams from \ccode{esl\_random()}'s two generators were tested
against a National Institute of Standards and Technology statistical
@@ -41,6 +49,9 @@ more than one active generator and they will not interfere with each
other. The object is meant to be opaque; you should not need to use
its contents.
+
+
+
% Table generated by autodoc -t esl_random.c (so don't edit here, edit esl_random.c:)
\begin{table}[hbp]
\begin{center}
@@ -99,9 +110,18 @@ sequences, which creates a chicken and the egg problem: how can we
select a pseudorandom seed for the pseudorandom number generator?
Calling \ccode{esl\_randomness\_Create(0)} (i.e., a seed argument of
0) causes Easel to select an arbitrary seed. The arbitrary seed is
-constructed by a combination of the current time and (if available)
-the process id. Two different \ccode{ESL\_RANDOMNESS} objects created
-this way should (but are not guaranteed to) produce different
-pseudorandom number sequences.
+constructed by a combination of the current wall clock time (in
+seconds), the elapsed cpu time since starting the program (in
+milliseconds or microseconds), and (if available) the process
+id.\footnote{Specifically, by a bitwise mixing function that combines
+ input from \ccode{time()}, \ccode{clock()}, and \ccode{getpid()}. On
+ some platforms, \ccode{getpid()} is not available, and an arbitrary
+ constant is used instead; on those platforms, arbitrary seeds are a
+ little less arbitrary, but are still quite randomly distributed. It
+ is improbable to get two generators with the same arbitrary seed; to
+ try, you would have to start two generators in the same process at
+ the same time.} Two different \ccode{ESL\_RANDOMNESS} objects
+created this way are expected to always produce different pseudorandom
+number sequences.
diff --git a/easel/esl_randomseq.c b/easel/esl_randomseq.c
index 9ad5480..169c51f 100644
--- a/easel/esl_randomseq.c
+++ b/easel/esl_randomseq.c
@@ -1,17 +1,18 @@
/* Generating, shuffling, and randomizing sequences.
*
* Contents:
- * 1. Generating iid sequences.
- * 2. Shuffling sequences.
- * 3. Randomizing sequences.
- * 4. Generating iid sequences (digital mode).
- * 5. Shuffling sequences (digital mode).
- * 6. Randomizing sequences (digital mode).
- * 7. Statistics drivers.
- * 8. Unit tests.
- * 9. Test driver.
- * 10. Example.
- * 11. Copyright and license information
+ * 1. Generating simple random character strings.
+ * 2. Generating iid sequences.
+ * 3. Shuffling sequences.
+ * 4. Randomizing sequences.
+ * 5. Generating iid sequences (digital mode).
+ * 6. Shuffling sequences (digital mode).
+ * 7. Randomizing sequences (digital mode).
+ * 8. Statistics drivers.
+ * 9. Unit tests.
+ * 10. Test driver.
+ * 11. Example.
+ * 12. Copyright and license information
*/
#include "esl_config.h"
@@ -22,11 +23,127 @@
#include <time.h>
#include "easel.h"
+#include "esl_alphabet.h"
#include "esl_random.h"
#include "esl_randomseq.h"
-#ifdef eslAUGMENT_ALPHABET
-#include "esl_alphabet.h"
-#endif
+
+
+/*****************************************************************
+ * 1. Generating simple random character strings.
+ *****************************************************************/
+
+/* Function: esl_rsq_Sample()
+ * Synopsis: Generate a random character string.
+ *
+ * Purpose: Sample a random character string of length <L>,
+ * consisting of characters in the set defined by
+ * an integer flag <allowed_chars>, using
+ * random number generator <rng>.
+ *
+ * Return the new NUL-terminated string in <*ret_s>. This
+ * may either be a new allocation, or in pre-allocated
+ * storage provided by the caller. If caller passes
+ * <*ret_s> as <NULL>, new space is allocated, and the
+ * caller is responsible for freeing it. That is:
+ * \begin{cchunk}
+ * char *s = NULL;
+ * esl_rsq_Sample(..., &s);
+ * free(s);
+ * \end{cchunk}
+ *
+ * If caller passes a non-<NULL> <*ret_s>, it is assumed to
+ * be a preallocated space of at least <L+1> characters,
+ * and caller is (of course) responsible for freeing
+ * it. That is:
+ * \begin{cchunk}
+ * char *s = malloc(L+1);
+ * esl_rsq_Sample(...,L, &s);
+ * free(s);
+ * \end{cchunk}
+ *
+ * Allowed values of the flag <allowed_char_flag> mirror
+ * the standard C99 character set functions in <ctype.h>:
+ *
+ * | <eslRSQ_SAMPLE_ALNUM> | isalnum() | isalpha() or isdigit() |
+ * | <eslRSQ_SAMPLE_ALPHA> | isalpha() | islower() or isupper() |
+ * | <eslRSQ_SAMPLE_LOWER> | islower() | [a-z] |
+ * | <eslRSQ_SAMPLE_UPPER> | isupper() | [A-Z] |
+ * | <eslRSQ_SAMPLE_DIGIT> | isdigit() | [0-9] |
+ * | <eslRSQ_SAMPLE_XDIGIT> | isxdigit() | [0-9] or [a-f] or [A-F] |
+ * | <eslRSQ_SAMPLE_CNTRL> | iscntrl() | ASCII control characters |
+ * | <eslRSQ_SAMPLE_GRAPH> | isgraph() | any printing char except space |
+ * | <eslRSQ_SAMPLE_SPACE> | isspace() | space, and other whitespace such as tab, newline |
+ * | <eslRSQ_SAMPLE_BLANK> | isblank() | space or tab |
+ * | <eslRSQ_SAMPLE_PRINT> | isprint() | any printing char including space |
+ * | <eslRSQ_SAMPLE_PUNCT> | ispunct() | punctuation |
+ *
+ * Note that with <eslRSQ_SAMPLE_CNTRL>, your string
+ * may sample NUL control characters (<0>), in addition to
+ * the string-terminating one at <(*ret_s)[L]>, so <strlen(*ret_s)>
+ * may not equal <L> in this case.
+ *
+ * These values are exclusive: you use one and only one of
+ * them as <allowed_chars>, you can't logically OR or NOT
+ * them together.
+ *
+ * Args: rng - ESL_RANDOMNESS object, the random number generator
+ * allowed_chars - allowed character set flag: eslRSQ_SAMPLE_*
+ * L - length of string to sample
+ * ret_s - RETURN: the NUL-terminated string
+ *
+ * Returns: <eslOK> on success; <*ret_s> is the sampled string, which was
+ * newly allocated here, and caller becomes responsible for free'ing.
+ *
+ * Throws: <eslEMEM> on allocation error; <eslEINVAL> if caller
+ * passes an invalid value of <allowed_chars>. Now <*ret_s>
+ * is <NULL>.
+ */
+int
+esl_rsq_Sample(ESL_RANDOMNESS *rng, int allowed_chars, int L, char **ret_s)
+{
+ char *s = *ret_s; // if s == NULL, we will allocate here. Else, we're using caller-provided allocation
+ int n = 0;
+ char c[127];
+ int x,i;
+ int status;
+
+ /* We can't portably make assumptions about char codes (EBCDIC,
+ * ASCII...); and we don't want to write a bunch of fiddly overhead
+ * initializing static tables. So, quickly and portably build an
+ * array c[0..n-1] of characters we will sample uniformly from.
+ * RNG sampling is fairly compute-intensive anyway, so this time
+ * should disappear in the noise of that.
+ */
+ switch (allowed_chars) {
+ case eslRSQ_SAMPLE_ALNUM: for (x = 0; x < 128; x++) if (isalnum(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_ALPHA: for (x = 0; x < 128; x++) if (isalpha(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_LOWER: for (x = 0; x < 128; x++) if (islower(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_UPPER: for (x = 0; x < 128; x++) if (isupper(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_DIGIT: for (x = 0; x < 128; x++) if (isdigit(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_XDIGIT: for (x = 0; x < 128; x++) if (isxdigit(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_CNTRL: for (x = 0; x < 128; x++) if (iscntrl(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_GRAPH: for (x = 0; x < 128; x++) if (isgraph(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_SPACE: for (x = 0; x < 128; x++) if (isspace(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_BLANK: for (x = 0; x < 128; x++) if (isblank(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_PRINT: for (x = 0; x < 128; x++) if (isprint(x)) c[n++] = x; break;
+ case eslRSQ_SAMPLE_PUNCT: for (x = 0; x < 128; x++) if (ispunct(x)) c[n++] = x; break;
+ default: ESL_XEXCEPTION(eslEINVAL, "bad flag; wanted something like eslRSQ_SAMPLE_ALPHA");
+ }
+
+ if (!s) ESL_ALLOC(s, sizeof(char) * (L+1)); /* +\0 */
+
+ for (i = 0; i < L; i++)
+ s[i] = c[ esl_rnd_Roll(rng, n) ];
+ s[L] = '\0';
+
+ *ret_s = s; // if using caller-provided space, this is a no-op, passing back the same *ret_s we got.
+ return eslOK;
+
+ ERROR:
+ if (! *ret_s && s) free(s); // if we allocated s here, clean up.
+ return status;
+}
+
/*****************************************************************
*# 1. Generating iid sequences.
@@ -628,7 +745,6 @@ esl_rsq_CMarkov1(ESL_RANDOMNESS *r, const char *s, char *markoved)
/*****************************************************************
*# 4. Generating iid sequences (digital mode).
*****************************************************************/
-#ifdef eslAUGMENT_ALPHABET
/* Function: esl_rsq_xIID()
* Synopsis: Generate an iid random digital sequence.
@@ -678,7 +794,89 @@ esl_rsq_xfIID(ESL_RANDOMNESS *r, const float *p, int K, int L, ESL_DSQ *dsq)
return eslOK;
}
-#endif /*eslAUGMENT_ALPHABET*/
+
+/* Function: esl_rsq_SampleDirty()
+ * Synopsis: Sample a digital sequence, including noncanonicals.
+ * Incept: SRE, Wed Feb 17 10:57:28 2016 [H1/76]
+ *
+ * Purpose: Using random number generator <rng>, use probability
+ * vector <p> to sample an iid digital sequence in alphabet
+ * <abc> of length <L>. Store it in <dsq>.
+ *
+ * The <dsq> space, allocated by the caller, has room for
+ * at least <L+2> residues, counting the digital
+ * sentinels.
+ *
+ * Probability vector <p> has <Kp> terms, and sums to 1.0
+ * over them. The probabilities in <p> for residues <K>,
+ * <Kp-2>, and <Kp-1> (gap, nonresidue, missing) are
+ * typically zero, to generate a standard unaligned digital
+ * sequence with degenerate residues. To sample a random
+ * "alignment", <p[K]> is nonzero.
+ *
+ * If <p> is <NULL>, then we sample a probability vector
+ * according to the following rules.
+ * 1. Sample pc, the probability of canonical
+ * vs. noncanonical residues, uniformly on [0,1).
+ * 2. Sample a p[] uniformly for canonical residues
+ * <0..K-1>, and renormalize by multiplying by pc.
+ * Sample a different p[] uniformly for noncanonical
+ * residues <K+1..Kp-3>, and renormalize by (1-pc).
+ * 3. p[] = 0 for gap residue K, nonresidue Kp-2,
+ * missing residue Kp-1.
+ * This usage is mainly intended to make it easy to
+ * sample dirty edge cases for automated tests.
+ *
+ * Args: rng : random number generator
+ * abc : digital alphabet
+ * p : OPTIONAL: p[0..Kp-1] probability vector, or NULL
+ * L : length of digital sequence to sample
+ * dsq : resulting digital seq sample, caller-provided space
+ *
+ * Returns: <eslOK> on success
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ */
+int
+esl_rsq_SampleDirty(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, double **byp_p, int L, ESL_DSQ *dsq)
+{
+ double *p = NULL;
+ int i;
+ int status;
+
+ /* If p isn't provided, sample one. */
+ if ( esl_byp_IsProvided(byp_p))
+ p = *byp_p;
+ else
+ {
+ double pc = esl_random(rng); /* [0,1) */
+ int x;
+
+ ESL_ALLOC(p, sizeof(double) * abc->Kp);
+
+ esl_rnd_Dirichlet(rng, NULL /* i.e. uniform */, abc->K, p);
+ esl_rnd_Dirichlet(rng, NULL, (abc->Kp - abc->K - 3), (p + abc->K +1)); /* K+1..Kp-3 range of alphabet */
+ for (x = 0; x < abc->K; x++) p[x] = p[x] * pc;
+ for (x = abc->K+1; x <= abc->Kp-3; x++) p[x] = p[x] * (1.-pc);
+ p[abc->K] = 0.;
+ p[abc->Kp-2] = 0.;
+ p[abc->Kp-1] = 0.;
+ }
+
+ dsq[0] = eslDSQ_SENTINEL;
+ for (i = 1; i <= L; i++)
+ dsq[i] = esl_rnd_DChoose(rng, p, abc->Kp);
+ dsq[L+1] = eslDSQ_SENTINEL;
+
+ if (esl_byp_IsReturned(byp_p)) *byp_p = p;
+ else if (esl_byp_IsInternal(byp_p)) free(p);
+ return eslOK;
+
+ ERROR:
+ if (! esl_byp_IsProvided(byp_p) && p) free(p);
+ if ( esl_byp_IsReturned(byp_p)) *byp_p = NULL;
+ return status;
+}
/*--------------------- end, digital generation ---------------- */
@@ -686,7 +884,6 @@ esl_rsq_xfIID(ESL_RANDOMNESS *r, const float *p, int K, int L, ESL_DSQ *dsq)
/*****************************************************************
*# 5. Shuffling sequences (digital mode)
*****************************************************************/
-#ifdef eslAUGMENT_ALPHABET
/* Function: esl_rsq_XShuffle()
* Synopsis: Shuffle a digital sequence.
@@ -749,9 +946,10 @@ esl_rsq_XShuffleDP(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ
ESL_DSQ **E = NULL; /* edge lists: E[0] is the edge list from vertex A */
int *nE = NULL; /* lengths of edge lists */
int *iE = NULL; /* positions in edge lists */
+ ESL_DSQ *Z = NULL; /* connectivity in last edge graph Z */
int n; /* tmp: remaining length of an edge list to be shuffled */
ESL_DSQ sf; /* last character in shuffled */
- ESL_DSQ *Z; /* connectivity in last edge graph Z */
+
int keep_connecting; /* flag used in Z connectivity algorithm */
int is_eulerian; /* flag used for when we've got a good Z */
@@ -973,7 +1171,6 @@ esl_rsq_XShuffleWindows(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int w, ESL
return eslOK;
}
-#endif /*eslAUGMENT_ALPHABET*/
/*------------------- end, digital shuffling -------------------*/
@@ -981,7 +1178,6 @@ esl_rsq_XShuffleWindows(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int w, ESL
/*****************************************************************
*# 6. Randomizing sequences (digital mode)
*****************************************************************/
-#ifdef eslAUGMENT_ALPHABET
/* Function: esl_rsq_XMarkov0()
* Synopsis: Generate new digital sequence of same 0th order Markov properties.
@@ -1079,12 +1275,12 @@ esl_rsq_XMarkov0(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *m
int
esl_rsq_XMarkov1(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *markoved)
{
- int status;
+ double **p = NULL; /* conditional probabilities p[x][y] = P(y | x) */
+ double *p0 = NULL; /* marginal probabilities P(x), just for initial residue. */
int i;
ESL_DSQ x,y;
ESL_DSQ i0; /* initial symbol */
- double **p; /* conditional probabilities p[x][y] = P(y | x) */
- double *p0; /* marginal probabilities P(x), just for initial residue. */
+ int status;
/* validate the input string */
for (i = 1; i <= L; i++)
@@ -1144,7 +1340,6 @@ esl_rsq_XMarkov1(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *m
return status;
}
-#endif /*eslAUGMENT_ALPHABET*/
/*------------------ end, digital randomizing -------------------*/
/*****************************************************************
@@ -1585,7 +1780,7 @@ utest_XShufflers(ESL_RANDOMNESS *r, int L, int K)
/* allocations */
ESL_ALLOC(dsq, sizeof(ESL_DSQ) * (L+2));
ESL_ALLOC(ds2, sizeof(ESL_DSQ) * (L+2));
- ESL_ALLOC(p, sizeof(double) * K);
+ ESL_ALLOC(p, sizeof(float) * K);
if (composition_allocate(K, &m1, &di1) != eslOK) esl_fatal(logmsg);
if (composition_allocate(K, &m2, &di2) != eslOK) esl_fatal(logmsg);
@@ -1695,7 +1890,7 @@ utest_XMarkovs(ESL_RANDOMNESS *r, int L, int K)
/* allocations */
ESL_ALLOC(dsq, sizeof(ESL_DSQ) * (L+2));
ESL_ALLOC(ds2, sizeof(ESL_DSQ) * (L+2));
- ESL_ALLOC(p, sizeof(double) * K);
+ ESL_ALLOC(p, sizeof(float) * K);
if (composition_allocate(K, &m1, &di1) != eslOK) esl_fatal(logmsg);
if (composition_allocate(K, &m2, &di2) != eslOK) esl_fatal(logmsg);
@@ -1917,13 +2112,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_randomseq.c 715 2011-08-03 21:04:24Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_randomseq.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_randomseq.h b/easel/esl_randomseq.h
index bdc30c0..75bd605 100644
--- a/easel/esl_randomseq.h
+++ b/easel/esl_randomseq.h
@@ -1,52 +1,71 @@
/* Generating, shuffling, and randomizing sequences.
- *
- * SRE, Thu Apr 24 09:38:13 2008 [Janelia]
- * SVN $Id: esl_randomseq.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_randomseq.h $
*/
#ifndef eslRANDOMSEQ_INCLUDED
#define eslRANDOMSEQ_INCLUDED
+#include "esl_alphabet.h"
#include "esl_random.h"
-/* 1. Generating iid sequences. */
+/* Control flag passed to esl_rsq_Sample(): */
+#define eslRSQ_SAMPLE_ALNUM 1 /* isalpha | isdigit */
+#define eslRSQ_SAMPLE_ALPHA 2 /* islower | isupper */
+#define eslRSQ_SAMPLE_LOWER 3 /* ASCII: a-z */
+#define eslRSQ_SAMPLE_UPPER 4 /* ASCII: A-Z */
+#define eslRSQ_SAMPLE_DIGIT 5 /* 0-9 */
+#define eslRSQ_SAMPLE_XDIGIT 6 /* 0-9, a-f, A-F */
+#define eslRSQ_SAMPLE_CNTRL 7 /* ASCII: 0..0x1F, plus 0x7F (DEL) */
+#define eslRSQ_SAMPLE_GRAPH 8 /* isprint && ! ' ' (space) */
+#define eslRSQ_SAMPLE_SPACE 9 /* ' ', '\f', '\n', '\r', '\t', '\v' */
+#define eslRSQ_SAMPLE_BLANK 10 /* ' ', '\t' */
+#define eslRSQ_SAMPLE_PRINT 11 /* ASCII: 0x20 ' ' through 0x7E '~' */
+#define eslRSQ_SAMPLE_PUNCT 12 /* isprint && !(isspace || isalnum) */
+
+
+/* 1. Generating simple random character strings. */
+extern int esl_rsq_Sample(ESL_RANDOMNESS *rng, int allowed_chars_flag, int L, char **ret_s);
+
+/* 2. Generating iid sequences. */
extern int esl_rsq_IID (ESL_RANDOMNESS *r, const char *alphabet, const double *p, int K, int L, char *s);
extern int esl_rsq_fIID (ESL_RANDOMNESS *r, const char *alphabet, const float *p, int K, int L, char *s);
-/* 2. Shuffling sequences. */
+/* 3. Shuffling sequences. */
extern int esl_rsq_CShuffle (ESL_RANDOMNESS *r, const char *s, char *shuffled);
extern int esl_rsq_CShuffleDP (ESL_RANDOMNESS *r, const char *s, char *shuffled);
extern int esl_rsq_CShuffleKmers (ESL_RANDOMNESS *r, const char *s, int K, char *shuffled);
extern int esl_rsq_CReverse (const char *s, char *rev);
extern int esl_rsq_CShuffleWindows(ESL_RANDOMNESS *r, const char *s, int w, char *shuffled);
-/* 3. Randomizing sequences */
+/* 4. Randomizing sequences */
extern int esl_rsq_CMarkov0 (ESL_RANDOMNESS *r, const char *s, char *markoved);
extern int esl_rsq_CMarkov1 (ESL_RANDOMNESS *r, const char *s, char *markoved);
-/* 4. Generating iid sequences (digital mode). */
-extern int esl_rsq_xIID (ESL_RANDOMNESS *r, const double *p, int K, int L, ESL_DSQ *dsq);
-extern int esl_rsq_xfIID(ESL_RANDOMNESS *r, const float *p, int K, int L, ESL_DSQ *dsq);
+/* 5. Generating iid sequences (digital mode). */
+extern int esl_rsq_xIID (ESL_RANDOMNESS *r, const double *p, int K, int L, ESL_DSQ *dsq);
+extern int esl_rsq_xfIID (ESL_RANDOMNESS *r, const float *p, int K, int L, ESL_DSQ *dsq);
+extern int esl_rsq_SampleDirty(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, double **byp_p, int L, ESL_DSQ *dsq);
-/* 5. Shuffling sequences (digital mode). */
+/* 6. Shuffling sequences (digital mode). */
extern int esl_rsq_XShuffle (ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, ESL_DSQ *shuffled);
extern int esl_rsq_XShuffleDP (ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *shuffled);
extern int esl_rsq_XShuffleKmers (ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *shuffled);
extern int esl_rsq_XReverse(const ESL_DSQ *dsq, int L, ESL_DSQ *rev);
extern int esl_rsq_XShuffleWindows(ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int w, ESL_DSQ *shuffled);
-/* 6. Randomizing sequences (digital mode) */
+/* 7. Randomizing sequences (digital mode) */
extern int esl_rsq_XMarkov0 (ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *markoved);
extern int esl_rsq_XMarkov1 (ESL_RANDOMNESS *r, const ESL_DSQ *dsq, int L, int K, ESL_DSQ *markoved);
#endif /*eslRANDOMSEQ_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
+ *
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_ratematrix.c b/easel/esl_ratematrix.c
index 612f1c1..e8ecf6b 100644
--- a/easel/esl_ratematrix.c
+++ b/easel/esl_ratematrix.c
@@ -40,6 +40,7 @@
#include <math.h>
#include "easel.h"
+#include "esl_composition.h"
#include "esl_dmatrix.h"
#include "esl_vectorops.h"
#include "esl_ratematrix.h"
@@ -815,13 +816,13 @@ main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_ratematrix.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_ratematrix.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_ratematrix.h b/easel/esl_ratematrix.h
index 893f1da..493ca18 100644
--- a/easel/esl_ratematrix.h
+++ b/easel/esl_ratematrix.h
@@ -1,8 +1,8 @@
/* Routines for manipulating evolutionary rate matrices.
*
* SRE, Tue Jul 13 16:09:05 2004 [St. Louis]
- * SVN $Id: esl_ratematrix.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_ratematrix.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslRATEMATRIX_INCLUDED
#define eslRATEMATRIX_INCLUDED
@@ -28,10 +28,10 @@ extern double esl_rmx_ExpectedScore (ESL_DMATRIX *P, double *pi);
#endif /*eslRATEMATRIX_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_recorder.c b/easel/esl_recorder.c
index a62cec7..cffaf99 100644
--- a/easel/esl_recorder.c
+++ b/easel/esl_recorder.c
@@ -1135,13 +1135,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_recorder.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_recorder.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_recorder.h b/easel/esl_recorder.h
index 74ea0ea..1f1c351 100644
--- a/easel/esl_recorder.h
+++ b/easel/esl_recorder.h
@@ -1,8 +1,8 @@
/* Saving history in a line-based input stream.
*
* SRE, Mon Dec 28 09:51:51 2009 [Zaragoza]
- * SVN $Id: esl_recorder.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_recorder.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslRECORDER_INCLUDED
#define eslRECORDER_INCLUDED
@@ -83,12 +83,12 @@ extern int esl_recorder_GetBlock(ESL_RECORDER *rc, char ***opt_lines,
#endif /*eslRECORDER_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_regexp.c b/easel/esl_regexp.c
index 5f82761..be59f1a 100644
--- a/easel/esl_regexp.c
+++ b/easel/esl_regexp.c
@@ -40,6 +40,14 @@
* If you do not want invalid input regex syntax to halt your application,
* you can install a custom error handler that can handle
* the eslESYNTAX errors as you wish.
+ *****************************************************************
+ * TODO:
+ * - would be great to have an esl_regexp_Sample(), which sampled
+ * strings from a regexp. We could use this in unit tests that
+ * need to stress edge cases (generating strings with unusual
+ * but legal characters, for example). We would probably want
+ * to implement some artificial limits on repeat operators,
+ * to keep length of sampled seq reasonable.
*/
#include "esl_config.h"
@@ -337,6 +345,46 @@ esl_regexp_SubmatchCoords(ESL_REGEXP *machine, char *origin, int elem,
*ret_end = 0;
return status;
}
+
+
+
+/* Function: esl_regexp_ParseCoordString()
+ *
+ * Purpose: Given a string <cstring> of the format required for a
+ * range (<from>..<to>, e.g. 10..23 or 39-91) parse out
+ * the start and end, and return them within the variables
+ * <ret_start> and <ret_end>.
+ *
+ * Returns: <eslOK> on success, and <ret_start> and <ret_end>
+ * are set to the start/end coordinates of the parse.
+ *
+ * Throws: <eslESYNTAX> if a regexp match is not made, and
+ * <eslFAIL> if the start or end values are not parsed.
+ */
+int
+esl_regexp_ParseCoordString(const char *cstring, uint32_t *ret_start, uint32_t *ret_end)
+{
+ ESL_REGEXP *re = esl_regexp_Create();
+ char tok1[32];
+ char tok2[32];
+ int status;
+
+ if (esl_regexp_Match(re, "^(\\d+)\\D+(\\d*)$", cstring) != eslOK) { status = eslESYNTAX; goto ERROR; }
+ if (esl_regexp_SubmatchCopy(re, 1, tok1, 32) != eslOK) { status = eslFAIL; goto ERROR; }
+ if (esl_regexp_SubmatchCopy(re, 2, tok2, 32) != eslOK) { status = eslFAIL; goto ERROR; }
+
+ *ret_start = atol(tok1);
+ *ret_end = (tok2[0] == '\0') ? 0 : atol(tok2);
+
+ esl_regexp_Destroy(re);
+ return eslOK;
+
+ ERROR:
+ esl_regexp_Destroy(re);
+ return status;
+}
+
+
/*=================== end of the exposed API ==========================================*/
@@ -618,12 +666,12 @@ regcomp(const char *exp)
static char *
reg(register struct comp *cp, int paren, int *flagp)
{
- int status;
register char *ret = NULL; /* SRE: NULL init added to silence gcc */
register char *br;
register char *ender;
register int parno = 0; /* SRE: init added to silence gcc */
- int flags;
+ int flags;
+ int status;
*flagp = HASWIDTH; /* Tentatively. */
@@ -677,7 +725,7 @@ reg(register struct comp *cp, int paren, int *flagp)
return(ret);
ERROR:
- return NULL;
+ return (status == eslOK ? ret : NULL); // fake out: status always non-OK here, this is solely to use <status> and silence compiler warning
}
/*
@@ -730,11 +778,11 @@ regbranch(register struct comp *cp, int *flagp)
static char *
regpiece(register struct comp *cp, int *flagp)
{
- int status;
register char *ret;
register char op;
register char *next;
int flags;
+ int status;
ret = regatom(cp, &flags);
if (ret == NULL)
@@ -787,7 +835,7 @@ regpiece(register struct comp *cp, int *flagp)
return(ret);
ERROR:
- return NULL;
+ return (status == eslOK ? ret : NULL); // status is not OK; this construction serves solely to silence compiler warning about unused <status>
}
/*
@@ -804,7 +852,7 @@ regpiece(register struct comp *cp, int *flagp)
static char *
regatom(register struct comp *cp, int *flagp)
{
- register char *ret;
+ register char *ret = NULL;
int flags;
int status;
@@ -932,7 +980,7 @@ regatom(register struct comp *cp, int *flagp)
return(ret);
ERROR:
- return NULL;
+ return (status == eslOK ? ret : NULL); // status is not OK. Construction serves to silence compiler warning about unused <status>.
}
/*
@@ -1563,9 +1611,9 @@ regsub(const esl__regexp *rp, const char *source, char *dest)
static char *
regescape(struct comp *cp, char c)
{
+ char *ret = NULL;
+ char x;
int status;
- char *ret;
- char x;
switch (c) {
/* escapes: */
@@ -1631,7 +1679,7 @@ regescape(struct comp *cp, char c)
return ret;
ERROR:
- return NULL;
+ return (status == eslOK ? ret : NULL); // status is not OK; construction serves to silence compiler warning about unused <status>
}
@@ -1639,7 +1687,7 @@ regescape(struct comp *cp, char c)
* 3 code examples, and the test driver
*****************************************************************/
-#ifdef eslREGEXP_EXAMPLE1
+#ifdef eslREGEXP_EXAMPLE
/* Single match example.
* Find first match of <pattern> in <string>;
* print coords of complete match.
@@ -1681,7 +1729,7 @@ main(int argc, char **argv)
esl_regexp_Destroy(m);
exit(0);
}
-#endif /* eslREGEXP_EXAMPLE1*/
+#endif /* eslREGEXP_EXAMPLE*/
#ifdef eslREGEXP_EXAMPLE2
@@ -1858,13 +1906,13 @@ main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_regexp.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_regexp.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_regexp.h b/easel/esl_regexp.h
index dcc7150..e985a8c 100644
--- a/easel/esl_regexp.h
+++ b/easel/esl_regexp.h
@@ -1,8 +1,8 @@
/* Regular expression matching on strings.
*
* SRE, Sun Jan 2 10:52:34 2005 [Zaragoza]
- * SVN $Id: esl_regexp.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_regexp.h $
+ * SVN $Id$
+ * SVN $URL$
******************************************************************
* The regexp module is a wrapper around a modified version of Henry
* Spencer's regex library. Spencer's copyright notice appears below,
@@ -65,13 +65,15 @@ extern char *esl_regexp_SubmatchDup(ESL_REGEXP *machine, int elem);
extern int esl_regexp_SubmatchCopy(ESL_REGEXP *machine, int elem, char *buffer, int nc);
extern int esl_regexp_SubmatchCoords(ESL_REGEXP *machine, char *origin, int elem,
int *ret_start, int *ret_end);
+extern int esl_regexp_ParseCoordString(const char *cstring, uint32_t *ret_start, uint32_t *ret_end);
+
#endif /*eslREGEXP_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_regexp.tex b/easel/esl_regexp.tex
index 8d3157a..1f03a8b 100644
--- a/easel/esl_regexp.tex
+++ b/easel/esl_regexp.tex
@@ -346,7 +346,7 @@ expressions:
\end{tabular}
\end{center}
-A backslash is followed by an alphanumeric character that is neither
+A backslash that is followed by an alphanumeric character that is neither
an escape code or a character set code is an error.
\ccode{[} is the set (or range) operator. \footnote{An unmatched
diff --git a/easel/esl_rootfinder.c b/easel/esl_rootfinder.c
index 4b50325..727cc14 100644
--- a/easel/esl_rootfinder.c
+++ b/easel/esl_rootfinder.c
@@ -248,18 +248,18 @@ esl_root_Bisection(ESL_ROOTFINDER *R, double xl, double xr, double *ret_x)
int status;
double xmag;
- if ((status = esl_rootfinder_SetBrackets(R, xl, xr)) != eslOK) return status;
+ if ((status = esl_rootfinder_SetBrackets(R, xl, xr)) != eslOK) goto ERROR;
while (1) {
R->iter++;
- if (R->iter > R->max_iter) ESL_EXCEPTION(eslENOHALT, "failed to converge in Bisection");
+ if (R->iter > R->max_iter) ESL_XEXCEPTION(eslENOHALT, "failed to converge in Bisection");
/* Bisect and evaluate the function */
R->x = (R->xl+R->xr)/2.;
if (R->func != NULL) {
- if ((status = (*R->func)(R->x, R->params, &(R->fx))) != eslOK) return status;
+ if ((status = (*R->func)(R->x, R->params, &(R->fx))) != eslOK) ESL_XEXCEPTION(status, "user-provided function failed");
} else {
- if ((status = (*R->fdf) (R->x, R->params, &(R->fx), &(R->dfx))) != eslOK) return status;
+ if ((status = (*R->fdf) (R->x, R->params, &(R->fx), &(R->dfx))) != eslOK) ESL_XEXCEPTION(status, "user-provided function failed");
}
/* Test for convergence */
@@ -279,6 +279,10 @@ esl_root_Bisection(ESL_ROOTFINDER *R, double xl, double xr, double *ret_x)
*ret_x = R->x;
return eslOK;
+
+ ERROR:
+ *ret_x = 0.0;
+ return status;
}
@@ -371,6 +375,7 @@ static int quadratic_fdf(double x, void *params, double *ret_fx, double *ret_dfx
static void
utest_Bisection(void)
{
+ char msg[] = "esl_rootfinder:: bisection unit test failed";
ESL_ROOTFINDER *R = NULL;
struct polyparams p;
double x;
@@ -380,14 +385,16 @@ utest_Bisection(void)
p.b = 9.;
p.c = -2.;
- R = esl_rootfinder_Create(quadratic_f, &p);
- esl_root_Bisection(R, 0., 100., &x); /* find the positive root, 0.2 */
- if (fabs(x-0.2) > R->abs_tolerance) esl_fatal("didn't find root 0.2");
+ /* find the positive root, 0.2 */
+ if (( R = esl_rootfinder_Create(quadratic_f, &p) ) == NULL) esl_fatal(msg);
+ if ( esl_root_Bisection(R, 0., 100., &x) != eslOK) esl_fatal(msg);
+ if ( fabs(x-0.2) > R->abs_tolerance) esl_fatal(msg);
esl_rootfinder_Destroy(R);
- R = esl_rootfinder_CreateFDF(quadratic_fdf, &p);
- esl_root_Bisection(R, -100., 0., &x); /* find the negative root, -2.0 */
- if (fabs(x+2.) > R->abs_tolerance) esl_fatal("didn't find root -2");
+ /* find the negative root, -2.0 */
+ if (( R = esl_rootfinder_CreateFDF(quadratic_fdf, &p) ) == NULL) esl_fatal(msg);
+ if ( esl_root_Bisection(R, -100., 0., &x) != eslOK) esl_fatal(msg);
+ if ( fabs(x+2.) > R->abs_tolerance) esl_fatal(msg);
esl_rootfinder_Destroy(R);
}
@@ -529,13 +536,13 @@ int main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_rootfinder.c 725 2011-10-13 11:27:39Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_rootfinder.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_rootfinder.h b/easel/esl_rootfinder.h
index 5cf6348..9f8cb41 100644
--- a/easel/esl_rootfinder.h
+++ b/easel/esl_rootfinder.h
@@ -1,8 +1,8 @@
/* Finding roots of functions.
*
* SRE, Fri Apr 6 10:01:43 2007 [Janelia]
- * SVN $Id: esl_rootfinder.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_rootfinder.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef ESL_ROOTFINDER_INCLUDED
#define ESL_ROOTFINDER_INCLUDED
@@ -51,10 +51,10 @@ extern int esl_root_NewtonRaphson(ESL_ROOTFINDER *R, double guess, double *ret_x
#endif /*eslROOTFINDER_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_scorematrix.c b/easel/esl_scorematrix.c
index 4df0f6d..043161f 100644
--- a/easel/esl_scorematrix.c
+++ b/easel/esl_scorematrix.c
@@ -22,6 +22,7 @@
#include "easel.h"
#include "esl_alphabet.h"
+#include "esl_composition.h"
#include "esl_dmatrix.h"
#include "esl_fileparser.h"
#include "esl_rootfinder.h"
@@ -65,7 +66,7 @@ esl_scorematrix_Create(const ESL_ALPHABET *abc)
S->path = NULL;
ESL_ALLOC(S->s, sizeof(int *) * abc->Kp);
- for (i = 0; i < abc->Kp; i++) S->s[i] = NULL;
+ S->s[0] = NULL;
ESL_ALLOC(S->isval, sizeof(char) * abc->Kp);
for (i = 0; i < abc->Kp; i++) S->isval[i] = FALSE;
ESL_ALLOC(S->outorder, sizeof(char) * (abc->Kp+1));
@@ -351,6 +352,8 @@ esl_scorematrix_RelEntropy(const ESL_SCOREMATRIX *S, const double *fi, const dou
* and <a> is a residue in the query.
*
* $P(b \mid a) = P(ab) / P(a)$, where $P(a) = \sum_b P(ab)$.
+ *
+ * The value stored in <P->mx[a][b]> is $P(b \mid a)$.
*
* All values in <P> involving the codes for gap,
* nonresidue, and missing data (codes <K>,<Kp-2>, and
@@ -725,6 +728,44 @@ static const struct esl_scorematrix_aa_preload_s ESL_SCOREMATRIX_AA_PRELOADS[] =
}},
};
+
+#define eslNTDIM 18
+
+struct esl_scorematrix_nt_preload_s {
+ char *name;
+ int matrix[eslNTDIM][eslNTDIM];
+};
+
+static const struct esl_scorematrix_nt_preload_s ESL_SCOREMATRIX_NT_PRELOADS[] = {
+ { "DNA1", {
+ /* A C G T - R Y M K S W H B V D N * ~ */
+ { 41, -32, -26, -26, 0, 18, -29, 17, -26, -29, 18, 6, -28, 6, 7, 0, -38, 0, }, /*A*/
+ { -32, 39, -38, -17, 0, -35, 18, 15, -26, 14, -24, 6, 6, 3, -28, -1, -38, 0, }, /*C*/
+ { -26, -38, 46, -31, 0, 22, -34, -32, 21, 20, -29, -32, 8, 9, 10, 1, -38, 0, }, /*G*/
+ { -26, -17, -31, 39, 0, -28, 18, -21, 15, -23, 16, 7, 7, -24, 5, 0, -38, 0, }, /*T*/
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, /*-*/
+ { 18, -35, 22, -28, 0, 20, -32, -2, 3, 1, 0, -9, -7, 7, 8, 1, -38, 0, }, /*R*/
+ { -29, 18, -34, 18, 0, -32, 18, 0, -1, -1, 0, 7, 6, -9, -9, -1, -38, 0, }, /*Y*/
+ { 17, 15, -32, -21, 0, -2, 0, 16, -26, -3, 1, 6, -8, 4, -7, -1, -38, 0, }, /*M*/
+ { -26, -26, 21, 15, 0, 3, -1, -26, 18, 3, -1, -8, 7, -5, 7, 1, -38, 0, }, /*K*/
+ { -29, 14, 20, -23, 0, 1, -1, -3, 3, 17, -26, -9, 7, 6, -6, 0, -38, 0, }, /*S*/
+ { 18, -24, -29, 16, 0, 0, 0, 1, -1, -26, 17, 7, -8, -7, 6, 0, -38, 0, }, /*W*/
+ { 6, 6, -32, 7, 0, -9, 7, 6, -8, -9, 7, 7, -3, -3, -3, 0, -38, 0, }, /*H*/
+ { -28, 6, 8, 7, 0, -7, 6, -8, 7, 7, -8, -3, 7, -2, -2, 0, -38, 0, }, /*B*/
+ { 6, 3, 9, -24, 0, 7, -9, 4, -5, 6, -7, -3, -2, 6, -1, 0, -38, 0, }, /*V*/
+ { 7, -28, 10, 5, 0, 8, -9, -7, 7, -6, 6, -3, -2, -1, 7, 0, -38, 0, }, /*D*/
+ { 0, -1, 1, 0, 0, 1, -1, -1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, /*N*/
+ { -38, -38, -38, -38, 0, -38, -38, -38, -38, -38, -38, -38, -38, -38, -38, 0, -38, 0, }, /***/
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, /*~*/
+ }},
+
+};
+
+
+
+
+
+
/* Function: esl_scorematrix_Set()
* Synopsis: Set one of several standard matrices.
*
@@ -753,24 +794,43 @@ esl_scorematrix_Set(const char *name, ESL_SCOREMATRIX *S)
int x, y;
if (S->abc_r->type == eslAMINO)
- {
+ {
int nmat = sizeof(ESL_SCOREMATRIX_AA_PRELOADS) / sizeof(struct esl_scorematrix_aa_preload_s);
for (which = 0; which < nmat; which++)
- if (strcmp(ESL_SCOREMATRIX_AA_PRELOADS[which].name, name) == 0) break;
+ if (strcmp(ESL_SCOREMATRIX_AA_PRELOADS[which].name, name) == 0) break;
if (which >= nmat) return eslENOTFOUND;
+ ESL_DASSERT1(( S->Kp >= 24 )); // strcpy below is safe. The assertion tries to convince static analyzer of that.
strcpy(S->outorder, "ARNDCQEGHILKMFPSTWYVBZX*");
/* All standard PAM, BLOSUM matrices have same list of valid
* residues. If that ever changes, make <outorder> a data elem in the
* structures above.
*/
- }
+
+ /* Transfer scores from static built-in storage */
+ for (x = 0; x < S->Kp; x++)
+ for (y = 0; y < S->Kp; y++)
+ S->s[x][y] = ESL_SCOREMATRIX_AA_PRELOADS[which].matrix[x][y];
+
+ }
+ else if (S->abc_r->type == eslDNA || S->abc_r->type == eslRNA)
+ {
+ int nmat = sizeof(ESL_SCOREMATRIX_NT_PRELOADS) / sizeof(struct esl_scorematrix_nt_preload_s);
+ for (which = 0; which < nmat; which++)
+ if (strcmp(ESL_SCOREMATRIX_NT_PRELOADS[which].name, name) == 0) break;
+ if (which >= nmat) return eslENOTFOUND;
+
+ ESL_DASSERT1(( S->Kp >= 15 )); // strcpy below is safe. The assertion tries to convince static analyzer of that.
+ strcpy(S->outorder, "ACGTRYMKSWHBVDN");
+
+ /* Transfer scores from static built-in storage */
+ for (x = 0; x < S->Kp; x++)
+ for (y = 0; y < S->Kp; y++)
+ S->s[x][y] = ESL_SCOREMATRIX_NT_PRELOADS[which].matrix[x][y];
+
+ }
else return eslENOTFOUND; /* no DNA matrices are built in yet! */
- /* Transfer scores from static built-in storage */
- for (x = 0; x < S->Kp; x++)
- for (y = 0; y < S->Kp; y++)
- S->s[x][y] = ESL_SCOREMATRIX_AA_PRELOADS[which].matrix[x][y];
/* Use <outorder> list to set <isval[x]> */
S->nc = strlen(S->outorder);
@@ -886,19 +946,19 @@ esl_scorematrix_SetFromProbs(ESL_SCOREMATRIX *S, double lambda, const ESL_DMATRI
int
esl_scorematrix_SetWAG(ESL_SCOREMATRIX *S, double lambda, double t)
{
- int status;
- int i,j;
ESL_DMATRIX *Q = NULL;
ESL_DMATRIX *P = NULL;
static double wagpi[20];
+ int i,j;
+ int status;
if (S->K != 20) ESL_EXCEPTION(eslEINVAL, "Must be using an amino acid alphabet (K=20) to make WAG-based matrices");
- if (( Q = esl_dmatrix_Create(20, 20)) == NULL) goto ERROR;
- if (( P = esl_dmatrix_Create(20, 20)) == NULL) goto ERROR;
- if ( esl_composition_WAG(wagpi) != eslOK) goto ERROR;
- if ( esl_rmx_SetWAG(Q, wagpi) != eslOK) goto ERROR;
- if ( esl_dmx_Exp(Q, t, P) != eslOK) goto ERROR;
+ if (( Q = esl_dmatrix_Create(20, 20)) == NULL) { status = eslEMEM; goto ERROR; }
+ if (( P = esl_dmatrix_Create(20, 20)) == NULL) { status = eslEMEM; goto ERROR; }
+ if ((status = esl_composition_WAG(wagpi)) != eslOK) goto ERROR;
+ if ((status = esl_rmx_SetWAG(Q, wagpi)) != eslOK) goto ERROR;
+ if ((status = esl_dmx_Exp(Q, t, P)) != eslOK) goto ERROR;
for (i = 0; i < 20; i++)
for (j = 0; j < 20; j++)
@@ -1134,6 +1194,8 @@ lambda_fdf(double lambda, void *params, double *ret_fx, double *ret_dfx)
* newly allocated $Kp \times Kp$ <ESL_DMATRIX>, over both
* the canonical (typically K=4 or K=20) residues in the
* residue alphabet, and the degenerate residue codes.
+ * Values involving degenerate residue codes are marginal
+ * probabilities (i.e. summed over the degeneracy).
* Only actual residue degeneracy can have nonzero values
* for <p_ij>; by convention, all values involving the
* special codes for gap, nonresidue, and missing data
@@ -1170,7 +1232,7 @@ lambda_fdf(double lambda, void *params, double *ret_fx, double *ret_dfx)
*/
int
esl_scorematrix_ProbifyGivenBG(const ESL_SCOREMATRIX *S, const double *fi, const double *fj,
- double *opt_lambda, ESL_DMATRIX **opt_P)
+ double *opt_lambda, ESL_DMATRIX **opt_P)
{
ESL_ROOTFINDER *R = NULL;
ESL_DMATRIX *P = NULL;
@@ -1192,12 +1254,13 @@ esl_scorematrix_ProbifyGivenBG(const ESL_SCOREMATRIX *S, const double *fi, const
* f(lambda) is positive; else we may identify the root we don't want
* at lambda=0.
*/
+ fx = -1.0;
lambda_guess = 1. / (double) esl_scorematrix_Max(S);
for (; lambda_guess < 50.; lambda_guess *= 2.0) {
lambda_fdf(lambda_guess, &p, &fx, &dfx);
if (fx > 0) break;
}
- if (fx <= 0) ESL_EXCEPTION(eslEINVAL, "Failed to bracket root for solving lambda");
+ if (fx <= 0) ESL_XEXCEPTION(eslEINVAL, "Failed to bracket root for solving lambda");
/* Create a solver and find lambda by Newton/Raphson */
if (( R = esl_rootfinder_CreateFDF(lambda_fdf, &p) ) == NULL) { status = eslEMEM; goto ERROR; }
@@ -1214,17 +1277,15 @@ esl_scorematrix_ProbifyGivenBG(const ESL_SCOREMATRIX *S, const double *fi, const
}
esl_rootfinder_Destroy(R);
- if (opt_lambda != NULL) *opt_lambda = lambda;
- if (opt_P != NULL) *opt_P = P;
+ if (opt_lambda) *opt_lambda = lambda;
+ if (opt_P) *opt_P = P;
return eslOK;
ERROR:
- if (R != NULL) esl_rootfinder_Destroy(R);
- if (opt_lambda != NULL) *opt_lambda = 0.;
- if (opt_P != NULL) *opt_P = NULL;
+ if (R) esl_rootfinder_Destroy(R);
+ if (opt_lambda) *opt_lambda = 0.;
+ if (opt_P) *opt_P = NULL;
return status;
-
-
}
@@ -1237,7 +1298,8 @@ esl_scorematrix_ProbifyGivenBG(const ESL_SCOREMATRIX *S, const double *fi, const
* Input: P->mx[i][j] are joint probabilities p_ij for the canonical
* alphabet 0..abc->K-1, but P matrix is allocated for Kp X Kp.
*
- * Fill in [i][j'=K..Kp-1], [i'=K..Kp-1][j], and
+ * Calculate marginal sums for all i,j pairs involving degeneracy
+ * codes. Fill in [i][j'=K..Kp-1], [i'=K..Kp-1][j], and
* [i'=K..Kp-1][j'=K..Kp-1] for degeneracies i',j'. Any p_ij involving
* a gap (K), nonresidue (Kp-2), or missing data (Kp-1) character is
* set to 0.0 by convention.
@@ -1448,11 +1510,15 @@ yualtschul_func(double lambda, void *params, double *ret_fx)
M->mx[i][j] = exp(lambda * S->mx[i][j]);
/* the Y matrix is the inverse of M */
- if ((status = esl_dmx_Invert(M, Y)) != eslOK) return status;
+ if ((status = esl_dmx_Invert(M, Y)) != eslOK) goto ERROR;
/* We're trying to find the root of \sum_ij Y_ij - 1 = 0 */
*ret_fx = esl_dmx_Sum(Y) - 1.;
return eslOK;
+
+ ERROR:
+ *ret_fx = 0.;
+ return status;
}
/* yualtschul_engine()
@@ -1478,7 +1544,7 @@ yualtschul_engine(ESL_DMATRIX *S, ESL_DMATRIX *P, double *fi, double *fj, double
struct yualtschul_params p;
double lambda;
double xl, xr;
- double fx;
+ double fx = -1.0;
int i,j;
/* Set up a bisection method to find lambda */
@@ -1528,9 +1594,9 @@ yualtschul_engine(ESL_DMATRIX *S, ESL_DMATRIX *P, double *fi, double *fj, double
return eslOK;
ERROR:
- if (p.M != NULL) esl_dmatrix_Destroy(p.M);
- if (p.Y != NULL) esl_dmatrix_Destroy(p.Y);
- if (R != NULL) esl_rootfinder_Destroy(R);
+ if (p.M) esl_dmatrix_Destroy(p.M);
+ if (p.Y) esl_dmatrix_Destroy(p.Y);
+ if (R) esl_rootfinder_Destroy(R);
return status;
}
@@ -1744,6 +1810,7 @@ main(int argc, char **argv)
{
FILE *ofp = NULL;
if ( (ofp = fopen(mfile, "w")) == NULL) esl_fatal("failed to open %s for writing scorematrix", mfile);
+ ESL_DASSERT1(( S0->Kp >= 20 )); // the strcpy below is fine. The assertion tries to convince static analyzers of that.
strcpy(S0->outorder, "ARNDCQEGHILKMFPSTWYV");
esl_scorematrix_Write(ofp, S0);
fclose(ofp);
@@ -2226,13 +2293,13 @@ int main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_scorematrix.c 750 2012-02-27 21:35:13Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_scorematrix.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_scorematrix.h b/easel/esl_scorematrix.h
index d6b7b18..e7d7ba3 100644
--- a/easel/esl_scorematrix.h
+++ b/easel/esl_scorematrix.h
@@ -71,12 +71,12 @@ extern int esl_scorematrix_Probify(const ESL_SCOREMATRIX *S, ESL_DMATRIX **opt_P
#endif /*eslSCOREMATRIX_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_scorematrix.tex b/easel/esl_scorematrix.tex
index 3c950d8..a05fdf5 100644
--- a/easel/esl_scorematrix.tex
+++ b/easel/esl_scorematrix.tex
@@ -18,16 +18,17 @@ scores.
\hyperlink{func:esl_scorematrix_Compare()}{\ccode{esl\_scorematrix\_Compare()}} & Compare two matrices for equality.\\
\hyperlink{func:esl_scorematrix_Max()}{\ccode{esl\_scorematrix\_Max()}} & Returns maximum value in score matrix.\\
\hyperlink{func:esl_scorematrix_Min()}{\ccode{esl\_scorematrix\_Min()}} & Returns minimum value in score matrix.\\
-\hyperlink{func:esl_scorematrix_RelativeEntropy()}{\ccode{esl\_scorematrix\_RelativeEntropy()}} & Returns relative entropy of a matrix.\\
+%\hyperlink{func:esl_scorematrix_RelativeEntropy()}{\ccode{esl\_scorematrix\_RelativeEntropy()}} & Returns relative entropy of a matrix.\\
\hyperlink{func:esl_scorematrix_IsSymmetric()}{\ccode{esl\_scorematrix\_IsSymmetric()}} & Returns \ccode{TRUE} for symmetric matrix.\\
\hyperlink{func:esl_scorematrix_Destroy()}{\ccode{esl\_scorematrix\_Destroy()}} & Frees a matrix.\\
\apisubhead{Reading/writing score matrices.}\\
\hyperlink{func:esl_scorematrix_Read()}{\ccode{esl\_scorematrix\_Read()}} & Read a standard matrix input file.\\
\hyperlink{func:esl_scorematrix_Write()}{\ccode{esl\_scorematrix\_Write()}} & Write a BLAST-compatible score matrix file.\\
-\apisubhead{Interpreting matrices probabilistically.}\\
-\hyperlink{func:esl_scorematrix_ObtainPij()}{\ccode{esl\_scorematrix\_ObtainPij()}} & Obtain $P_{ij}$ from score matrix with known $\lambda$ and background $f$'s.\\
-\hyperlink{func:esl_scorematrix_SolveLambda()}{\ccode{esl\_scorematrix\_SolveLambda()}} & Find $\lambda$ for score matrix, given background.\\
-\hyperlink{func:esl_scorematrix_ReverseEngineer()}{\ccode{esl\_scorematrix\_ReverseEngineer()}} & Calculate the probabilistic basis of a score matrix.\\
+%\apisubhead{Interpreting matrices probabilistically.}\\
+%\hyperlink{func:esl_scorematrix_ObtainPij()}{\ccode{esl\_scorematrix\_ObtainPij()}} & Obtain $P_{ij}$ from score matrix with known $\lambda$ and background $f$'s.\\
+%\hyperlink{func:esl_scorematrix_SolveLambda()}{\ccode{esl\_scorematrix\_SolveLambda()}} & Find $\lambda$ for score matrix, given background.\\
+%\hyperlink{func:esl_scorematrix_ReverseEngineer()}{\ccode{esl\_scorematrix\_ReverseEngineer()}} & Calculate the probabilistic basis of a score matrix.\\
+
\hline
\end{tabular}
}
diff --git a/easel/esl_sq.c b/easel/esl_sq.c
index 68beb3a..95cc54f 100644
--- a/easel/esl_sq.c
+++ b/easel/esl_sq.c
@@ -1,15 +1,15 @@
-/* A sequence.
+/* esl_sq : a single biological sequence.
*
* Contents:
* 1. Text version of the ESL_SQ object.
* 2. Digitized version of the ESL_SQ object. [with <alphabet>]
* 3. Other functions that operate on sequences.
* 4. Getting single sequences from MSAs. [with <msa>]
- * 5. Internal functions.
- * 6. Unit tests.
- * 7. Test driver.
- * 8. Examples.
- * 9. Copyright and license information.
+ * 5. Debugging, development tools [with <random>, <randomseq>]
+ * 6. Internal functions.
+ * 7. Unit tests.
+ * 8. Test driver.
+ * 9. Examples.
*/
#include "esl_config.h"
@@ -19,13 +19,20 @@
#include <ctype.h>
#include "easel.h"
+#include "esl_sq.h"
+#include "esl_vectorops.h"
+
#ifdef eslAUGMENT_ALPHABET
-#include "esl_alphabet.h" /* alphabet aug adds digital sequences */
+#include "esl_alphabet.h" /* alphabet adds digital sequences */
#endif
#ifdef eslAUGMENT_MSA
-#include "esl_msa.h" /* msa aug adds ability to extract sq from an MSA */
+#include "esl_msa.h" /* msa adds ability to extract sq from an MSA */
+#endif
+#if defined eslAUGMENT_RANDOM && defined eslAUGMENT_RANDOMSEQ
+#include "esl_random.h" /* random, randomseq add ability to sample random sq objects for unit tests */
+#include "esl_randomseq.h"
#endif
-#include "esl_sq.h"
+
/* Shared parts of text/digital creation functions (defined in "internal functions" section) */
static ESL_SQ *sq_create(int do_digital);
@@ -115,6 +122,12 @@ esl_sq_CreateFrom(const char *name, const char *seq, const char *desc, const cha
sq->C = 0;
sq->W = n;
sq->L = n;
+
+ /* optional for extra residue markups */
+ sq->nxr = 0;
+ sq->xr_tag = NULL;
+ sq->xr = NULL;
+
return sq;
ERROR:
@@ -150,6 +163,7 @@ esl_sq_Grow(ESL_SQ *sq, int64_t *opt_nsafe)
void *tmp;
int64_t new;
int64_t nsafe;
+ int x; /* index for optional extra residue markups */
int status;
if (sq->seq != NULL) nsafe = sq->salloc - sq->n; /* text */
@@ -163,6 +177,10 @@ esl_sq_Grow(ESL_SQ *sq, int64_t *opt_nsafe)
if (sq->seq != NULL) ESL_RALLOC(sq->seq, tmp, new * sizeof(char)); /* text */
else ESL_RALLOC(sq->dsq, tmp, new * sizeof(ESL_DSQ)); /* digital */
if (sq->ss != NULL) ESL_RALLOC(sq->ss, tmp, new * sizeof(char));
+
+ for (x = 0; x < sq->nxr; x++)
+ if (sq->xr[x] != NULL) ESL_RALLOC(sq->xr[x], tmp, new * sizeof(char));
+
sq->salloc = new;
}
if (opt_nsafe != NULL) *opt_nsafe = nsafe;
@@ -197,23 +215,28 @@ esl_sq_Grow(ESL_SQ *sq, int64_t *opt_nsafe)
int
esl_sq_GrowTo(ESL_SQ *sq, int64_t n)
{
- void *tmp;
+ int x; /* index for optional extra residue markups */
int status;
if (sq->seq != NULL) /* text mode */
{
if (n+1 > sq->salloc) {
- ESL_RALLOC(sq->seq, tmp, (n+1) * sizeof(char));
- if (sq->ss != NULL) ESL_RALLOC(sq->ss, tmp, (n+1) * sizeof(char));
- sq->salloc = n+1;
+ ESL_REALLOC(sq->seq, (n+1) * sizeof(char));
+ if (sq->ss != NULL) ESL_REALLOC(sq->ss, (n+1) * sizeof(char));
+ for (x = 0; x < sq->nxr; x++) /* optional extra residue markups */
+ if (sq->xr[x] != NULL) ESL_REALLOC(sq->xr[x], (n+1) * sizeof(char));
+ sq->salloc = n+1;
}
}
else /* digital mode */
{
if (n+2 > sq->salloc) {
- ESL_RALLOC(sq->dsq, tmp, (n+2) * sizeof(ESL_DSQ));
- if (sq->ss != NULL) ESL_RALLOC(sq->ss, tmp, (n+2) * sizeof(char));
- sq->salloc = n+2;
+ ESL_REALLOC(sq->dsq, (n+2) * sizeof(ESL_DSQ));
+ if (sq->ss != NULL) ESL_REALLOC(sq->ss, (n+2) * sizeof(char));
+ for (x = 0; x < sq->nxr; x++) /* optional extra residue markups */
+ if (sq->xr[x] != NULL) ESL_REALLOC(sq->xr[x], (n+2) * sizeof(char));
+
+ sq->salloc = n+2;
}
}
return eslOK;
@@ -248,11 +271,33 @@ esl_sq_GrowTo(ESL_SQ *sq, int64_t n)
int
esl_sq_Copy(const ESL_SQ *src, ESL_SQ *dst)
{
+ int x; /* index for optional extra residue markups */
int status;
/* If <src> has structure annotation and <dst> does not, initialize an allocation in <dst> */
- if (src->ss != NULL && dst->ss == NULL) ESL_ALLOC(dst->ss, sizeof(char) * dst->salloc);
-
+ if (src->ss != NULL && dst->ss == NULL) ESL_ALLOC(dst->ss, sizeof(char) * dst->salloc);
+
+ /* similarly for optional extra residue markups */
+ if (src->nxr > 0) {
+ if (dst->nxr > 0) {
+ for (x = 0; x < dst->nxr; x++) {
+ if (dst->xr[x] != NULL) { free(dst->xr[x]); dst->xr[x] = NULL; }
+ if (dst->xr_tag[x] != NULL) { free(dst->xr_tag[x]); dst->xr_tag[x] = NULL; }
+ }
+ if (dst->xr != NULL) { free(dst->xr); dst->xr = NULL; }
+ if (dst->xr_tag != NULL) { free(dst->xr_tag); dst->xr_tag = NULL; }
+ }
+
+ dst->nxr = src->nxr;
+ ESL_ALLOC(dst->xr_tag, sizeof(char *) * dst->nxr);
+ ESL_ALLOC(dst->xr, sizeof(char *) * dst->nxr);
+
+ for (x = 0; x < dst->nxr; x++) {
+ ESL_ALLOC(dst->xr_tag[x], sizeof(char) * src->nalloc);
+ ESL_ALLOC(dst->xr[x], sizeof(char) * src->salloc);
+ }
+ }
+
if ((status = esl_sq_SetName (dst, src->name)) != eslOK) goto ERROR;
if ((status = esl_sq_SetSource (dst, src->source)) != eslOK) goto ERROR;
if ((status = esl_sq_SetAccession(dst, src->acc)) != eslOK) goto ERROR;
@@ -261,8 +306,10 @@ esl_sq_Copy(const ESL_SQ *src, ESL_SQ *dst)
if (src->seq != NULL && dst->seq != NULL) /* text to text */
{
- strcpy(dst->seq, src->seq);
+ strcpy(dst->seq, src->seq);
if (src->ss != NULL) strcpy(dst->ss, src->ss);
+ for (x = 0; x < src->nxr; x++)
+ if (src->xr[x] != NULL) strcpy(dst->xr[x], src->xr[x]);
}
#ifdef eslAUGMENT_ALPHABET
else if (src->seq != NULL && dst->dsq != NULL) /* text to digital */
@@ -271,13 +318,17 @@ esl_sq_Copy(const ESL_SQ *src, ESL_SQ *dst)
if (src->ss != NULL) {
strcpy(dst->ss+1, src->ss);
dst->ss[0] = '\0';
- }
+ for (x = 0; x < src->nxr; x++)
+ if (src->xr[x] != NULL) { strcpy(dst->xr[x]+1, src->xr[x]); dst->xr[x][0] = '\0'; }
+ }
}
else if (src->dsq != NULL && dst->seq != NULL) /* digital to text */
{
if ((status = esl_abc_Textize(src->abc, src->dsq, src->n, dst->seq)) != eslOK) goto ERROR;
if (src->ss != NULL) strcpy(dst->ss, src->ss+1);
- }
+ for (x = 0; x < src->nxr; x++)
+ if (src->xr[x] != NULL) strcpy(dst->xr[x], src->xr[x]+1);
+ }
else /* digital to digital */
{
if (src->abc->type != dst->abc->type)
@@ -287,9 +338,14 @@ esl_sq_Copy(const ESL_SQ *src, ESL_SQ *dst)
strcpy(dst->ss+1, src->ss+1);
dst->ss[0] = '\0';
}
+ for (x = 0; x < src->nxr; x++)
+ if (src->xr[x] != NULL) { strcpy(dst->xr[x]+1, src->xr[x]+1); dst->xr[x][0] = '\0'; }
}
#endif
-
+
+ for (x = 0; x < src->nxr; x++)
+ if (src->xr_tag[x] != NULL) strcpy(dst->xr_tag[x], src->xr_tag[x]);
+
dst->n = src->n;
dst->start = src->start;
dst->end = src->end;
@@ -324,6 +380,8 @@ esl_sq_Copy(const ESL_SQ *src, ESL_SQ *dst)
int
esl_sq_Compare(ESL_SQ *sq1, ESL_SQ *sq2)
{
+ int x; /* index for optional extra residue markups */
+
/* Annotation comparison */
if (strcmp(sq1->name, sq2->name) != 0) return eslFAIL;
if (strcmp(sq1->acc, sq2->acc) != 0) return eslFAIL;
@@ -359,6 +417,20 @@ esl_sq_Compare(ESL_SQ *sq1, ESL_SQ *sq2)
if (sq1->hoff != -1 && sq2->hoff != -1 && sq1->hoff != sq2->hoff) return eslFAIL;
if (sq1->eoff != -1 && sq2->eoff != -1 && sq1->eoff != sq2->eoff) return eslFAIL;
+ /* optional extra residue markup comparison */
+ if (sq1->nxr != sq2->nxr) return eslFAIL;
+ for (x = 0; x < sq1->nxr; x++) {
+ if (sq1->xr_tag[x] != NULL && sq2->xr_tag[x] != NULL) {
+ if (strcmp(sq1->xr_tag[x], sq2->xr_tag[x]) != 0) return eslFAIL;
+ } else
+ if (sq1->xr_tag[x] != NULL || sq2->xr_tag[x] != NULL) return eslFAIL;
+
+ if (sq1->xr[x] != NULL && sq2->xr[x] != NULL) {
+ if (strcmp(sq1->xr[x], sq2->xr[x]) != 0) return eslFAIL;
+ } else
+ if (sq1->xr[x] != NULL || sq2->xr[x] != NULL) return eslFAIL;
+ }
+
/* alphabet comparison */
#ifdef eslAUGMENT_ALPHABET
if (sq1->abc != NULL && (sq1->abc->type != sq2->abc->type)) return eslFAIL;
@@ -382,6 +454,8 @@ esl_sq_Compare(ESL_SQ *sq1, ESL_SQ *sq2)
int
esl_sq_Reuse(ESL_SQ *sq)
{
+ int x; /* index for optional extra residue markups */
+
sq->name[0] = '\0';
sq->acc[0] = '\0';
sq->desc[0] = '\0';
@@ -393,6 +467,18 @@ esl_sq_Reuse(ESL_SQ *sq)
if (sq->seq != NULL) sq->ss[0] = '\0';
else sq->ss[0] = sq->ss[1] = '\0'; /* in digital mode, ss string is 1..n; 0 is a dummy \0 byte*/
}
+
+ /* optional extra residue markup */
+ if (sq->nxr > 0) {
+ for (x = 0; x < sq->nxr; x++) {
+ if (sq->xr[x] != NULL) { free(sq->xr[x]); sq->xr[x] = NULL; }
+ if (sq->xr_tag[x] != NULL) { free(sq->xr_tag[x]); sq->xr_tag[x] = NULL; }
+ }
+ if (sq->xr != NULL) { free(sq->xr); sq->xr = NULL; }
+ if (sq->xr_tag != NULL) { free(sq->xr_tag); sq->xr_tag = NULL; }
+ sq->nxr = 0;
+ }
+
sq->n = 0;
sq->start = 0;
sq->end = 0;
@@ -444,6 +530,7 @@ esl_sq_IsText(const ESL_SQ *sq)
void
esl_sq_Destroy(ESL_SQ *sq)
{
+ int x; /* index for optional extra residue markups */
if (sq == NULL) return;
if (sq->name != NULL) free(sq->name);
@@ -453,6 +540,14 @@ esl_sq_Destroy(ESL_SQ *sq)
if (sq->dsq != NULL) free(sq->dsq);
if (sq->ss != NULL) free(sq->ss);
if (sq->source != NULL) free(sq->source);
+ if (sq->nxr > 0) {
+ for (x = 0; x < sq->nxr; x++) {
+ if (sq->xr[x] != NULL) free(sq->xr[x]);
+ if (sq->xr_tag[x] != NULL) free(sq->xr_tag[x]);
+ }
+ if (sq->xr != NULL) free(sq->xr);
+ if (sq->xr_tag != NULL) free(sq->xr_tag);
+ }
free(sq);
return;
}
@@ -497,6 +592,44 @@ esl_sq_DestroyBlock(ESL_SQ_BLOCK *block)
return;
}
+/* Function: esl_sq_BlockGrowTo()
+ * Synopsis: Grows a sequence block to hold at least <n> <ESL_SQ>.
+ * Incept:
+ *
+ * Purpose: Assure that the list of sequences
+ * can hold up to a total of <n> sequences,
+ * reallocating as needed.
+ *
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ *
+ */
+int
+esl_sq_BlockGrowTo(ESL_SQ_BLOCK *sqblock, int newsize, int do_digital, const ESL_ALPHABET *abc)
+{
+ int status = eslOK;
+ int i;
+ if(sqblock->listSize < newsize)
+ {
+ ESL_REALLOC(sqblock->list, sizeof(ESL_SQ) * newsize);
+ sqblock->listSize = newsize;
+
+ for (i = sqblock->count; i < sqblock->listSize; ++i)
+ {
+ sqblock->list[i].abc = abc;
+ if ((status = sq_init(sqblock->list + i, do_digital)) != eslOK)
+ goto ERROR;
+ }
+ }
+ return eslOK;
+
+ ERROR:
+ return status;
+}
+
+
#ifdef eslAUGMENT_ALPHABET
/* Function: esl_sq_CreateDigitalBlock()
@@ -671,6 +804,7 @@ esl_sq_CreateDigitalFrom(const ESL_ALPHABET *abc, const char *name, const ESL_DS
int
esl_sq_Digitize(const ESL_ALPHABET *abc, ESL_SQ *sq)
{
+ int x; /* index for optional extra residue markups */
int status;
/* Contract checks */
@@ -688,6 +822,12 @@ esl_sq_Digitize(const ESL_ALPHABET *abc, ESL_SQ *sq)
void *tmp;
ESL_RALLOC(sq->ss, tmp, sizeof(char) * sq->salloc);
}
+ /* optional extra residue markups follow same convenctions as ss */
+ for (x = 0; x < sq->nxr; x++)
+ if (sq->xr[x] != NULL) {
+ void *tmp;
+ ESL_RALLOC(sq->xr[x], tmp, sizeof(char) * sq->salloc);
+ }
}
ESL_ALLOC(sq->dsq, (sq->salloc) * sizeof(ESL_DSQ));
@@ -697,6 +837,12 @@ esl_sq_Digitize(const ESL_ALPHABET *abc, ESL_SQ *sq)
memmove(sq->ss+1, sq->ss, sq->n+1);
sq->ss[0] = '\0';
}
+ for (x = 0; x < sq->nxr; x++)
+ if (sq->xr[x] != NULL) {
+ memmove(sq->xr[x]+1, sq->xr[x], sq->n+1);
+ sq->xr[x][0] = '\0';
+ }
+
free(sq->seq);
sq->seq = NULL;
sq->abc = abc;
@@ -729,6 +875,7 @@ esl_sq_Digitize(const ESL_ALPHABET *abc, ESL_SQ *sq)
int
esl_sq_Textize(ESL_SQ *sq)
{
+ int x; /* index for optional extra residue markups */
int status;
/* Contract checks */
@@ -743,7 +890,10 @@ esl_sq_Textize(ESL_SQ *sq)
if ((status = esl_abc_Textize(sq->abc, sq->dsq, sq->n, sq->seq)) != eslOK) goto ERROR;
if (sq->ss != NULL)
memmove(sq->ss, sq->ss+1, sq->n+1); /* slide back to 0..n-1; +1 includes terminal \0 */
-
+ for (x = 0; x < sq->nxr; x++)
+ if (sq->xr[x] != NULL)
+ memmove(sq->xr[x], sq->xr[x]+1, sq->n+1); /* slide back to 0..n-1; +1 includes terminal \0 */
+
free(sq->dsq);
sq->dsq = NULL;
sq->abc = NULL; /* nullify reference (caller still owns real abc) */
@@ -780,7 +930,7 @@ esl_sq_Textize(ESL_SQ *sq)
*
* The routine is tested on large sequence databases to
* make sure there are zero false positive classifications
- * on known sequences. See <esl_abc_GuessAlphabet() for
+ * on known sequences. See <esl_abc_GuessAlphabet()> for
* details of these tests, and crossreferences.
*
* Returns: <eslOK> on success, and <*ret_type> is set to
@@ -1200,13 +1350,15 @@ esl_sq_FormatSource(ESL_SQ *sq, const char *source, ...)
int
esl_sq_AppendDesc(ESL_SQ *sq, const char *desc)
{
- void *tmp;
int dlen = (sq->desc == NULL ? 0 : strlen(sq->desc));
int newlen = (desc == NULL ? 0 : strlen(desc));
int status;
- if (dlen + newlen + 1 >= sq->dalloc) { /* +1 for appended space */
- ESL_RALLOC(sq->desc, tmp, sizeof(char) * (newlen+dlen+eslSQ_DESCCHUNK));
+ if (desc == NULL) return eslOK;
+
+ // sq->desc == NULL check below is logically unnecessary but it silences zealous static analyzers
+ if (sq->desc == NULL || dlen + newlen + 1 >= sq->dalloc) { // +1 for appended space.
+ ESL_REALLOC(sq->desc, sizeof(char) * (newlen+dlen+eslSQ_DESCCHUNK));
sq->dalloc = newlen+dlen+eslSQ_DESCCHUNK;
}
@@ -1326,11 +1478,12 @@ esl_sq_XAddResidue(ESL_SQ *sq, ESL_DSQ x)
* complement (such as amino acids), an <eslEINCOMPAT>
* error is thrown, and the sequence isn't changed at all.
*
- * Gap and missing data characters, if any, are preserved
- * (in text mode, <._-> are treated as gaps, and <~> as
- * missing data). Degenerate nucleic acid IUPAC characters
- * are complemented appropriately.
- *
+ * Gap, nonresidues, and missing data characters, if any,
+ * are preserved (in text mode, <._-> are treated as gaps,
+ * <*> are nonresidues, and <~> as missing
+ * data). Degenerate nucleic acid IUPAC characters are
+ * complemented appropriately.
+ *
* The <start/end> coords in <sq> are swapped. (Note that
* in the unusual case of sequences of length 1,
* <start=end> and we can't unambiguously tell if a seq is
@@ -1352,6 +1505,7 @@ int
esl_sq_ReverseComplement(ESL_SQ *sq)
{
int64_t i;
+ int x; /* index for optional extra residue markups */
int status = eslOK;
if (sq->seq != NULL)
@@ -1397,6 +1551,7 @@ esl_sq_ReverseComplement(ESL_SQ *sq)
case '_': sq->seq[i] = '_'; break;
case '-': sq->seq[i] = '-'; break;
case '~': sq->seq[i] = '~'; break;
+ case '*': sq->seq[i] = '*'; break;
default: sq->seq[i] = 'N'; status = eslEINVAL; break;
}
@@ -1407,23 +1562,24 @@ esl_sq_ReverseComplement(ESL_SQ *sq)
#ifdef eslAUGMENT_ALPHABET
else
{
- if (sq->abc->complement == NULL)
- ESL_EXCEPTION(eslEINCOMPAT, "tried to take reverse complement of a non-nucleic sequence");
-
- ESL_DSQ x;
- for (i = 1; i <= sq->n/2; i++)
- {
- x = sq->abc->complement[sq->dsq[sq->n-i+1]];
- sq->dsq[sq->n-i+1] = sq->abc->complement[sq->dsq[i]];
- sq->dsq[i] = x;
- }
- if (sq->n%2) sq->dsq[i] = sq->abc->complement[sq->dsq[i]];
+ if ((status = esl_abc_revcomp(sq->abc, sq->dsq, sq->n)) != eslOK) goto ERROR;
}
#endif /*eslAUGMENT_ALPHABET*/
- ESL_SWAP(sq->start, sq->end, int);
+ ESL_SWAP(sq->start, sq->end, int64_t);
/* revcomp invalidates any secondary structure annotation */
if (sq->ss != NULL) { free(sq->ss); sq->ss = NULL; }
+ /* revcomp invalidates any extra residue markup */
+ if (sq->nxr > 0) {
+ for (x = 0; x < sq->nxr; x++)
+ if (sq->xr[x] != NULL) { free(sq->xr_tag[x]); free(sq->xr[x]); sq->xr_tag[x] = NULL; sq->xr[x] = NULL; }
+ free(sq->xr_tag); sq->xr_tag = NULL;
+ free(sq->xr); sq->xr = NULL;
+ }
+
+ return status;
+
+ ERROR:
return status;
}
@@ -1477,6 +1633,56 @@ esl_sq_Checksum(const ESL_SQ *sq, uint32_t *ret_checksum)
return eslOK;
}
+
+
+/* Function: esl_sq_CountResidues()
+ * Synopsis: compute character counts
+ *
+ * Purpose: Given an ESL\_SQ <sq>, compute counts of all observed
+ * residues in the range between <start> and <start>+<L>-1. Note
+ * that a text-mode sequence starts at 0, while a digital-mode
+ * sequence starts at 1. Will count degeneracies as partial
+ * observations of the K canonical residues. Gaps, missing data,
+ * and not-a-residue characters will be ignored (so $\sum_x f[x]$ is
+ * not necessarily == L!). The array <*f> needs to be allocated for
+ * sq->abc->K values.
+ *
+ * The vector is not zeroed out, allowing counts to be gathered from
+ * a collection of ESL\_SQs.
+ *
+ * Returns: <eslOK> on success, <eslERANGE> when start or L are
+ * outside the range of the sequence.
+ */
+int
+esl_sq_CountResidues(const ESL_SQ *sq, int start, int L, float *f)
+{
+ int i;
+
+ if (sq->seq != NULL) { /* text */
+ if (start<0 || start+L>sq->n)
+ return eslERANGE; //range out of sequence bounds
+
+ for (i=start ; i < start+L; i++) {
+ if(! esl_abc_CIsGap(sq->abc, sq->seq[i])) // ignore gap characters
+ esl_abc_FCount(sq->abc, f, sq->abc->inmap[(int) sq->seq[i]], 1.);
+ }
+#ifdef eslAUGMENT_ALPHABET
+ } else { /* digital sequence; 0 is a sentinel */
+ if (start<1 || start+L>sq->n+1)
+ return eslERANGE; //range out of sequence bounds
+
+ for (i=start ; i < start+L; i++) {
+ if(! esl_abc_XIsGap(sq->abc, sq->dsq[i])) // ignore gap characters
+ esl_abc_FCount(sq->abc, f, sq->dsq[i], 1.);
+ }
+#endif
+ }
+
+ return eslOK;
+}
+
+
+
/*---------------------- end, other functions -------------------*/
@@ -1525,6 +1731,9 @@ esl_sq_GetFromMSA(const ESL_MSA *msa, int which, ESL_SQ *sq)
char *acc = NULL;
char *desc = NULL;
char *ss = NULL;
+ char **xr_tag = NULL; /* extra residue markup tags */
+ char **xr = NULL; /* extra residue markup */
+ int x; /* index for optional extra residue markups */
int status;
if (which >= msa->nseq || which < 0) return eslEOD;
@@ -1538,31 +1747,69 @@ esl_sq_GetFromMSA(const ESL_MSA *msa, int which, ESL_SQ *sq)
if (msa->sqdesc != NULL) desc = msa->sqdesc[which];
if (msa->ss != NULL) ss = msa->ss[which];
+ /* a markup for unparsed #=GR lines is converted to a sequence extra residue markup */
+ if (msa->ngr)
+ {
+ ESL_ALLOC(xr_tag, sizeof(char *) * msa->ngr); for (x = 0; x < msa->ngr; x++) xr_tag[x] = NULL;
+ ESL_ALLOC(xr, sizeof(char *) * msa->ngr); for (x = 0; x < msa->ngr; x++) xr[x] = NULL;
+ }
+
+ sq->nxr = 0;
+ for (x = 0; x < msa->ngr; x ++) {
+ if (msa->gr[x][which] != NULL) {
+ xr[sq->nxr] = msa->gr[x][which];
+ if (msa->gr_tag[x] != NULL) xr_tag[sq->nxr] = msa->gr_tag[x]; else { status = eslEINVAL; goto ERROR; }
+ sq->nxr ++;
+ }
+ }
+ if (sq->nxr > 0) {
+ ESL_ALLOC(sq->xr_tag, sizeof(char *) * sq->nxr); for (x = 0; x < sq->nxr; x ++) sq->xr_tag[x] = NULL;
+ ESL_ALLOC(sq->xr, sizeof(char *) * sq->nxr); for (x = 0; x < sq->nxr; x ++) sq->xr[x] = NULL;
+ }
+
if ((status = esl_sq_SetName (sq, msa->sqname[which])) != eslOK) goto ERROR;
if ((status = esl_sq_SetAccession(sq, acc)) != eslOK) goto ERROR;
if ((status = esl_sq_SetDesc (sq, desc)) != eslOK) goto ERROR;
if ((status = esl_sq_SetSource (sq, msa->name)) != eslOK) goto ERROR;
if ((status = esl_sq_GrowTo (sq, msa->alen)) != eslOK) goto ERROR; /* can't be more than alen residues */
-
+
if (! (msa->flags & eslMSA_DIGITAL)) /* text mode to text mode */
{
strcpy(sq->seq, msa->aseq[which]);
if (ss != NULL) {
- strcpy(sq->ss, msa->ss[which]);
- esl_strdealign(sq->ss, sq->seq, gapchars, NULL);
+ if (sq->ss == NULL) esl_strdup(ss, -1, &(sq->ss));
+ else strcpy(sq->ss, ss);
+ esl_strdealign(sq->ss, sq->seq, gapchars, NULL);
+ }
+ for (x = 0; x < sq->nxr; x++) {
+ esl_strdup(xr[x], -1, &(sq->xr[x]));
+ esl_strdup(xr_tag[x], -1, &(sq->xr_tag[x]));
+ esl_strdealign(sq->xr[x], sq->seq, gapchars, NULL);
}
esl_strdealign(sq->seq, sq->seq, gapchars, &(sq->n)); /* sq->n gets set as side effect */
- }
+ }
#ifdef eslAUGMENT_ALPHABET
else
{
esl_abc_dsqcpy(msa->ax[which], msa->alen, sq->dsq);
if (ss != NULL) {
- strcpy(sq->ss+1, ss); sq->ss[0] = '\0';
+ if (sq->ss == NULL) { /* even in digital mode, msa->ss is [0.alen-1] */
+ ESL_ALLOC(sq->ss, sizeof(char) * (strlen(ss)+2));
+ sq->ss[0] = '\0';
+ strcpy(sq->ss+1, ss);
+ }
+ else { strcpy(sq->ss+1, ss); sq->ss[0] = '\0'; }
esl_abc_CDealign(sq->abc, sq->ss+1, sq->dsq, NULL);
}
+ for (x = 0; x < sq->nxr; x ++) { /* even in digital mode, msa->gr are [0.alen-1] */
+ ESL_ALLOC(sq->xr[x], sizeof(char) * (strlen(xr[x])+2));
+ sq->xr[x][0] = '\0';
+ strcpy(sq->xr[x]+1, xr[x]);
+ esl_abc_CDealign(sq->abc, sq->xr[x]+1, sq->dsq, NULL);
+ esl_strdup(xr_tag[x], -1, &(sq->xr_tag[x]));
+ }
esl_abc_XDealign(sq->abc, sq->dsq, sq->dsq, &(sq->n)); /* sq->n gets set as side effect */
- }
+ }
#endif /*eslAUGMENT_ALPHABET*/
/* This is a complete sequence; set bookkeeping accordingly */
@@ -1576,9 +1823,14 @@ esl_sq_GetFromMSA(const ESL_MSA *msa, int which, ESL_SQ *sq)
sq->doff = -1;
sq->hoff = -1;
sq->eoff = -1;
+
+ if (xr_tag) free(xr_tag);
+ if (xr) free(xr);
return eslOK;
ERROR:
+ if (xr_tag) free(xr_tag);
+ if (xr) free(xr);
return status;
}
@@ -1613,7 +1865,11 @@ esl_sq_FetchFromMSA(const ESL_MSA *msa, int which, ESL_SQ **ret_sq)
char *acc = NULL;
char *desc = NULL;
char *ss = NULL;
- char *gapchars = "-_.~"; /* hardcoded for now; only affects text mode, not digital */
+ char *gapchars = "-_.~"; /* hardcoded for now; only affects text mode, not digital */
+ char **xr_tag = NULL; /* extra residue markup tags */
+ char **xr = NULL; /* extra residue markup */
+ int nxr = 0; /* number of extra residue markups */
+ int x; /* index for optional extra residue markups */
int status;
if (which >= msa->nseq || which < 0) return eslEOD;
@@ -1623,10 +1879,42 @@ esl_sq_FetchFromMSA(const ESL_MSA *msa, int which, ESL_SQ **ret_sq)
if (msa->sqdesc != NULL) desc = msa->sqdesc[which];
if (msa->ss != NULL) ss = msa->ss[which];
+ /* a markup for unparsed #=GR lines is converted to a sequence extra residue markup */
+ if (msa->ngr > 0) {
+ ESL_ALLOC(xr_tag, sizeof(char *) * msa->ngr);
+ ESL_ALLOC(xr, sizeof(char *) * msa->ngr);
+ for (x = 0; x < msa->ngr; x ++) {
+ xr_tag[x] = NULL;
+ xr[x] = NULL;
+ if (msa->gr[x][which] != NULL) {
+ xr[nxr] = msa->gr[x][which];
+ if (msa->gr_tag[x] != NULL) xr_tag[nxr] = msa->gr_tag[x]; else goto ERROR;
+ nxr ++;
+ }
+ }
+ }
+
if (! (msa->flags & eslMSA_DIGITAL)) /* text mode MSA to text mode sequence */
{
if ((sq = esl_sq_CreateFrom(msa->sqname[which], msa->aseq[which], desc, acc, ss)) == NULL) goto ERROR;
if (sq->ss != NULL) esl_strdealign(sq->ss, sq->seq, gapchars, NULL);
+
+ if (nxr > 0) {
+ sq->nxr = nxr;
+ ESL_ALLOC(sq->xr_tag, sizeof(char *) * sq->nxr); for (x = 0; x < sq->nxr; x ++) sq->xr_tag[x] = NULL;
+ ESL_ALLOC(sq->xr, sizeof(char *) * sq->nxr); for (x = 0; x < sq->nxr; x ++) sq->xr[x] = NULL;
+ for (x = 0; x < sq->nxr; x ++) {
+ if (xr[x] != NULL) {
+ if (sq->xr[x] == NULL) esl_strdup(xr[x], sq->n, &(sq->xr[x]));
+ else strcpy(sq->xr[x], xr[x]);
+ esl_strdealign(sq->xr[x], sq->seq, gapchars, NULL);
+ }
+ if (xr_tag[x] != NULL) {
+ if (sq->xr_tag[x] == NULL) esl_strdup(xr_tag[x], -1, &(sq->xr_tag[x]));
+ else strcpy(sq->xr_tag[x], xr_tag[x]);
+ }
+ }
+ }
esl_strdealign(sq->seq, sq->seq, gapchars, &(sq->n));
}
#ifdef eslAUGMENT_ALPHABET
@@ -1634,6 +1922,26 @@ esl_sq_FetchFromMSA(const ESL_MSA *msa, int which, ESL_SQ **ret_sq)
{
if ((sq = esl_sq_CreateDigitalFrom(msa->abc, msa->sqname[which], msa->ax[which], msa->alen, desc, acc, ss)) == NULL) goto ERROR;
if (sq->ss != NULL) esl_abc_CDealign(sq->abc, sq->ss+1, sq->dsq, NULL);
+ if (nxr > 0) {
+ sq->nxr = nxr;
+ ESL_ALLOC(sq->xr_tag, sizeof(char *) * sq->nxr); for (x = 0; x < sq->nxr; x ++) sq->xr_tag[x] = NULL;
+ ESL_ALLOC(sq->xr, sizeof(char *) * sq->nxr); for (x = 0; x < sq->nxr; x ++) sq->xr[x] = NULL;
+ for (x = 0; x < sq->nxr; x ++) {
+ if (xr[x] != NULL) {
+ if (sq->xr[x] == NULL) {
+ ESL_ALLOC(sq->xr[x], sizeof(char) * (sq->n+2));
+ sq->xr[x][0] = '\0';
+ strcpy(sq->xr[x]+1, xr[x]);
+ }
+ else strcpy(sq->xr[x]+1, xr[x]); sq->xr[x][0] = '\0';
+ esl_abc_CDealign(sq->abc, sq->xr[x]+1, sq->dsq, NULL);
+ }
+ if (xr_tag[x] != NULL) {
+ if (sq->xr_tag[x] == NULL) esl_strdup(xr_tag[x], -1, &(sq->xr_tag[x]));
+ else strcpy(sq->xr_tag[x], xr_tag[x]);
+ }
+ }
+ }
esl_abc_XDealign(sq->abc, sq->dsq, sq->dsq, &(sq->n));
}
#endif
@@ -1645,10 +1953,17 @@ esl_sq_FetchFromMSA(const ESL_MSA *msa, int which, ESL_SQ **ret_sq)
sq->L = sq->n;
sq->C = 0;
sq->W = sq->n;
- *ret_sq = sq;
- return eslOK;
+ *ret_sq = sq;
+ if (msa->ngr > 0) {
+ free(xr_tag); free(xr);
+ }
+ return eslOK;
+
ERROR:
+ if (msa->ngr > 0) {
+ if (xr_tag != NULL) free(xr_tag); if (xr != NULL) free(xr);
+ }
esl_sq_Destroy(sq);
*ret_sq = NULL;
return eslEMEM;
@@ -1658,10 +1973,117 @@ esl_sq_FetchFromMSA(const ESL_MSA *msa, int which, ESL_SQ **ret_sq)
+/*****************************************************************
+ *# 5. Debugging/development tools [with <random> and <randomseq>]
+ *****************************************************************/
+#if defined eslAUGMENT_RANDOM && defined eslAUGMENT_RANDOMSEQ
+
+/* Function: esl_sq_Sample()
+ * Synopsis: Sample a random, ugly <ESL_SQ> for test purposes.
+ * Incept: SRE, Tue Feb 23 08:32:54 2016 [H1/83]
+ *
+ * Purpose: Sample a random sequence with random annotation, with a
+ * sequence length of <0..maxL> (note 0 is included!),
+ * using the random number generator <rng>. Return the
+ * newly allocated sequence in <*ret_sq>. Caller is
+ * responsible for free'ing it with <esl_sq_Destroy()>.
+ *
+ * If <abc> is <NULL>, a text mode sequence is sampled. If
+ * a digital alphabet <abc> is provided, a digital mode
+ * sequence is sampled.
+ *
+ * This routine is intended for producing test cases. The
+ * sequence object contains randomized contents. If you
+ * want to synthesize random sequences (as opposed to
+ * sampling an entirely synthetic <ESL_SQ> object), see
+ * the <randomseq> module.
+ *
+ * Args: rng : random number generator
+ * abc : digital alphabet; or <NULL> for text mode
+ * maxL : sequence length sampled is 0..maxL
+ * ret_sq : RESULT: new <ESL_SQ>
+ *
+ * Returns: <eslOK> on success
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ */
+int
+esl_sq_Sample(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, int maxL, ESL_SQ **ret_sq)
+{
+ ESL_SQ *sq = *ret_sq; // caller may or may not provide an existing <sq>
+ int maxn = eslSQ_NAMECHUNK *2; // by being bigger than the initial alloc size, we will exercise realloc
+ int maxa = eslSQ_ACCCHUNK *2;
+ int maxd = eslSQ_DESCCHUNK *2;
+ char *buf = NULL;
+ int n;
+ int status;
+
+ n = ESL_MAX(maxn, ESL_MAX(maxa, maxd));
+ ESL_ALLOC(buf, sizeof(char) * (n+1));
+
+ if (! sq)
+ {
+ if (abc == NULL) { if (( sq = esl_sq_Create()) == NULL) { status = eslEMEM; goto ERROR; } }
+#ifdef eslAUGMENT_ALPHABET
+ else { if (( sq = esl_sq_CreateDigital(abc)) == NULL) { status = eslEMEM; goto ERROR; } }
+#endif /*eslAUGMENT_ALPHABET*/
+ }
+
+ /* Name */
+ do {
+ n = 1 + esl_rnd_Roll(rng, maxn); // 1..maxn
+ esl_rsq_Sample(rng, eslRSQ_SAMPLE_GRAPH, n, &buf); // one word: no space
+ } while (ispunct(buf[0])); // #, // are bad things for names to start with in Stockholm
+ esl_sq_SetName(sq, buf);
+
+ /* Optional accession */
+ if (esl_rnd_Roll(rng, 2)) // 50% chance of an accession
+ {
+ n = 1 + esl_rnd_Roll(rng, maxa); // 1..maxa
+ esl_rsq_Sample(rng, eslRSQ_SAMPLE_GRAPH, n, &buf); // one word: no space
+ esl_sq_SetAccession(sq, buf);
+ }
+
+ /* Optional description */
+ if (esl_rnd_Roll(rng, 2)) // 50% chance of a description
+ {
+ do {
+ n = 1 + esl_rnd_Roll(rng, maxd); // 1..maxa
+ esl_rsq_Sample(rng, eslRSQ_SAMPLE_PRINT, n, &buf); // include spaces in descriptions...
+ } while (isspace(buf[0])); // ... just not as the first char.
+ esl_sq_SetDesc(sq, buf);
+ }
+
+ /* Optional taxid. */
+ if (esl_rnd_Roll(rng, 2)) // 50% chance of taxid
+ {
+ sq->tax_id = 1 + esl_rnd_Roll(rng, 2147483647); // 1..2^31-1
+ }
+
+ /* Sequence, in text or digital mode */
+ n = esl_rnd_Roll(rng, maxL+1); //0..maxL; 0 len seqs happen
+ esl_sq_GrowTo(sq, n);
+ if (abc == NULL) esl_rsq_Sample(rng, eslRSQ_SAMPLE_ALPHA, n, &(sq->seq));
+#ifdef eslAUGMENT_ALPHABET
+ else esl_rsq_SampleDirty(rng, abc, NULL, n, sq->dsq); // "dirty" = with ambig residues
+#endif /*eslAUGMENT_ALPHABET*/
+ esl_sq_SetCoordComplete(sq, n);
+
+ free(buf);
+ *ret_sq = sq;
+ return eslOK;
+
+ ERROR:
+ if (buf) free(buf);
+ if (!(*ret_sq) && sq) esl_sq_Destroy(sq);
+ return status;
+}
+#endif /*eslAUGMENT_RANDOM && eslAUGMENT_RANDOMSEQ */
+
/*****************************************************************
- * 5. Internal functions
+ * 6. Internal functions
*****************************************************************/
/* Create and CreateDigital() are almost identical, so
@@ -1724,6 +2146,7 @@ sq_init(ESL_SQ *sq, int do_digital)
sq->name = NULL;
sq->acc = NULL;
sq->desc = NULL;
+ sq->source = NULL;
sq->tax_id = -1;
sq->seq = NULL;
sq->dsq = NULL;
@@ -1736,6 +2159,13 @@ sq_init(ESL_SQ *sq, int do_digital)
sq->salloc = eslSQ_SEQCHUNK;
sq->srcalloc = eslSQ_NAMECHUNK;
+ ESL_DASSERT1(( sq->salloc >= 4 )); // dsqdata makes this assumption when it packs in place.
+
+ /* optional for extra residue markups */
+ sq->nxr = 0;
+ sq->xr_tag = NULL;
+ sq->xr = NULL;
+
ESL_ALLOC(sq->name, sizeof(char) * sq->nalloc);
ESL_ALLOC(sq->acc, sizeof(char) * sq->aalloc);
ESL_ALLOC(sq->desc, sizeof(char) * sq->dalloc);
@@ -1767,7 +2197,22 @@ sq_create_from(const char *name, const char *desc, const char *acc)
sq->seq = NULL;
sq->dsq = NULL;
sq->ss = NULL;
-
+ sq->source = NULL;
+
+ /* optional for extra residue markups */
+ sq->nxr = 0;
+ sq->xr_tag = NULL;
+ sq->xr = NULL;
+
+ /* coord bookkeeping has to be set by the parent caller,
+ * because that's where we know the seq length <n>. We don't
+ * know it here.
+ */
+ sq->doff = -1;
+ sq->hoff = -1;
+ sq->roff = -1;
+ sq->eoff = -1;
+
if (name != NULL)
{
n = strlen(name)+1;
@@ -1815,14 +2260,7 @@ sq_create_from(const char *name, const char *desc, const char *acc)
ESL_ALLOC(sq->source, sizeof(char) * sq->srcalloc);
sq->source[0] = '\0';
- /* coord bookkeeping has to be set by the parent caller,
- * because that's where we know the seq length <n>. We don't
- * know it here.
- */
- sq->doff = -1;
- sq->hoff = -1;
- sq->roff = -1;
- sq->eoff = -1;
+
return sq;
ERROR:
@@ -1834,6 +2272,7 @@ sq_create_from(const char *name, const char *desc, const char *acc)
static void
sq_free(ESL_SQ *sq)
{
+ int x; /* index for optional extra residue markups */
if (sq->name != NULL) free(sq->name);
if (sq->acc != NULL) free(sq->acc);
if (sq->desc != NULL) free(sq->desc);
@@ -1841,13 +2280,21 @@ sq_free(ESL_SQ *sq)
if (sq->seq != NULL) free(sq->seq);
if (sq->dsq != NULL) free(sq->dsq);
if (sq->ss != NULL) free(sq->ss);
+ if (sq->nxr > 0) {
+ for (x = 0; x < sq->nxr; x++) {
+ if (sq->xr[x] != NULL) free(sq->xr[x]);
+ if (sq->xr_tag[x] != NULL) free(sq->xr_tag[x]);
+ }
+ if (sq->xr != NULL) free(sq->xr);
+ if (sq->xr_tag != NULL) free(sq->xr_tag);
+ }
}
/*----------------- end, internal functions ---------------------*/
/*****************************************************************
- * 5. Unit tests.
+ * 7. Unit tests.
*****************************************************************/
#ifdef eslSQ_TESTDRIVE
#include "esl_random.h"
@@ -2026,11 +2473,167 @@ utest_CreateDigital()
}
#endif /*eslAUGMENT_ALPHABET*/
+/* write_msa_with_seqmarkups()
+ * Write a good MSA with sequence markups to a tmpfile in Stockholm format.
+ */
+static void
+write_msa_with_seqmarkups(FILE *ofp)
+{
+ fprintf(ofp, "# STOCKHOLM 1.0\n");
+ fprintf(ofp, "seq1 ACDE.FGHKLMNPQRSTVWY\n");
+ fprintf(ofp, "#=GR seq1 tWS ..<..<........>...>.\n");
+ fprintf(ofp, "seq2 ACDEGFGHKLMNPQRSTVWY\n");
+ fprintf(ofp, "seq3 ACDEGFGHKLMNPQRSTVWY\n");
+ fprintf(ofp, "#=GR seq3 SS ...<<..>>...........\n");
+ fprintf(ofp, "seq4 ACDE.FGHKLMNPQRSTVWY\n");
+ fprintf(ofp, "seq5 ACDEGFGHKLMNPQRSTVWY\n");
+ fprintf(ofp, "seq6 ACDE.FGHKLMNPQRSTVWY\n");
+ fprintf(ofp, "#=GR seq6 SS ........<<<..>>>....\n");
+ fprintf(ofp, "#=GR seq6 tWH .<...A...>....a.....\n");
+ fprintf(ofp, "#=GR seq6 csS .<.................>\n");
+ fprintf(ofp, "//\n");
+ return;
+}
+
+/* test optional extra residue markups in a sq */
+#include "esl_msafile.h"
+#include "esl_msafile_stockholm.h"
+static void
+utest_ExtraResMarkups()
+{
+ char msg[] = "sq extra residue markups test driver failed";
+ char tmpfile[32];
+ FILE *ofp = NULL;
+ ESL_ALPHABET *abc = NULL;
+ ESL_MSAFILE *afp1 = NULL;
+ ESL_MSAFILE *afp2 = NULL;
+ ESL_MSA *msa1 = NULL;
+ ESL_MSA *msa2 = NULL;
+ ESL_SQ *sq = NULL;
+ ESL_SQ *sq1 = NULL;
+ ESL_SQ *sq2 = NULL;
+
+ strcpy(tmpfile, "esltmpXXXXXX");
+ if (esl_tmpfile_named(tmpfile, &ofp) != eslOK) esl_fatal(msg);
+ write_msa_with_seqmarkups(ofp);
+ fclose(ofp);
+
+ /* Digital msa to digital sq */
+ esl_msafile_Open(&abc, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp1);
+ esl_msafile_stockholm_Read(afp1, &msa1);
+
+ sq = esl_sq_CreateDigital(abc);
+ if (esl_sq_GetFromMSA(msa1, 0, sq) != eslOK) esl_fatal(msg); esl_sq_Reuse(sq);
+ if (esl_sq_GetFromMSA(msa1, 1, sq) != eslOK) esl_fatal(msg); esl_sq_Reuse(sq);
+ if (esl_sq_GetFromMSA(msa1, 2, sq) != eslOK) esl_fatal(msg); esl_sq_Reuse(sq);
+ if (esl_sq_GetFromMSA(msa1, 5, sq) != eslOK) esl_fatal(msg);
+
+ /* test of sq_Copy */
+ sq1 = esl_sq_Create();
+ sq2 = esl_sq_CreateDigital(abc);
+ esl_sq_Copy(sq, sq1);
+ esl_sq_Copy(sq, sq2);
+ esl_sq_Destroy(sq1);
+ esl_sq_Destroy(sq2);
+ esl_sq_Destroy(sq);
+
+ if (esl_sq_FetchFromMSA(msa1, 0, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+ if (esl_sq_FetchFromMSA(msa1, 1, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+ if (esl_sq_FetchFromMSA(msa1, 2, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+ if (esl_sq_FetchFromMSA(msa1, 5, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+
+
+ /* Text msa to text sq */
+ esl_msafile_Open(NULL, tmpfile, NULL, eslMSAFILE_STOCKHOLM, NULL, &afp2);
+ esl_msafile_stockholm_Read(afp2, &msa2);
+
+ sq = esl_sq_Create();
+ if (esl_sq_GetFromMSA(msa2, 0, sq) != eslOK) esl_fatal(msg); esl_sq_Reuse(sq);
+ if (esl_sq_GetFromMSA(msa2, 1, sq) != eslOK) esl_fatal(msg); esl_sq_Reuse(sq);
+ if (esl_sq_GetFromMSA(msa2, 2, sq) != eslOK) esl_fatal(msg); esl_sq_Reuse(sq);
+ if (esl_sq_GetFromMSA(msa2, 5, sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+
+ if (esl_sq_FetchFromMSA(msa2, 0, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+ if (esl_sq_FetchFromMSA(msa2, 1, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+ if (esl_sq_FetchFromMSA(msa2, 2, &sq) != eslOK) esl_fatal(msg); esl_sq_Destroy(sq);
+ if (esl_sq_FetchFromMSA(msa2, 5, &sq) != eslOK) esl_fatal(msg);
+ /* test of sq_Copy */
+ sq1 = esl_sq_Create();
+ sq2 = esl_sq_CreateDigital(abc);
+ esl_sq_Copy(sq, sq1);
+ esl_sq_Copy(sq, sq2);
+ esl_sq_Destroy(sq1);
+ esl_sq_Destroy(sq2);
+ esl_sq_Destroy(sq);
+
+ /* clean up */
+ remove(tmpfile);
+ esl_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
+ esl_msa_Destroy(msa1);
+ esl_msa_Destroy(msa2);
+ esl_alphabet_Destroy(abc);
+}
+
+/* test counting residues in a sq */
+static void
+utest_CountResidues()
+{
+ char *msg = "failure in utest_CountResidues()";
+ char *name = "seqname";
+ char *acc = "XX00001";
+ char *desc = "test sequence description";
+ char *seq = "GGGAATTCCC";
+ char *ss = "xxxx...xxx";
+ ESL_SQ *sq = NULL;
+ float *cnts = NULL;
+ int status;
+ ESL_ALPHABET *abc = esl_alphabet_Create(eslDNA);
+
+ ESL_ALLOC(cnts, abc->Kp * sizeof(float));
+
+
+ if ((sq = esl_sq_CreateFrom(name, seq, desc, acc, ss)) == NULL) esl_fatal(msg);
+ sq->abc = abc;
+ esl_vec_FSet (cnts, abc->K, 0);
+ esl_sq_CountResidues(sq, 0, sq->n, cnts);
+ if (cnts[0] != 2) esl_fatal(msg);
+ if (cnts[1] != 3) esl_fatal(msg);
+ if (cnts[2] != 3) esl_fatal(msg);
+ if (cnts[3] != 2) esl_fatal(msg);
+
+
+#ifdef eslAUGMENT_ALPHABET
+ esl_sq_Digitize(abc, sq);
+ esl_vec_FSet (cnts, abc->K, 0);
+ esl_sq_CountResidues(sq, 1, sq->n, cnts);
+ if (cnts[0] != 2) esl_fatal(msg);
+ if (cnts[1] != 3) esl_fatal(msg);
+ if (cnts[2] != 3) esl_fatal(msg);
+ if (cnts[3] != 2) esl_fatal(msg);
+#endif
+
+ free(cnts);
+ esl_sq_Destroy(sq);
+ esl_alphabet_Destroy(abc);
+ return;
+
+
+ERROR:
+ if (cnts != NULL) free(cnts);
+ if (sq != NULL) esl_sq_Destroy(sq);
+ if (abc != NULL) esl_alphabet_Destroy(abc);
+
+ esl_fatal(msg);
+ return;
+}
+
+
#endif /* eslSQ_TESTDRIVE*/
/*--------------------- end, unit tests -------------------------*/
/*****************************************************************
- * 6. Test driver.
+ * 8. Test driver.
*****************************************************************/
#ifdef eslSQ_TESTDRIVE
/* gcc -g -Wall -o esl_sq_utest -I. -L. -DeslSQ_TESTDRIVE esl_sq.c -leasel -lm
@@ -2045,13 +2648,15 @@ utest_CreateDigital()
#include "esl_alphabet.h"
#include "esl_getopts.h"
#include "esl_msa.h"
+#include "esl_msafile.h"
+#include "esl_msafile_stockholm.h"
#include "esl_random.h"
#include "esl_sq.h"
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", 0 },
- { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
+ { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
static char usage[] = "[-options]";
@@ -2066,11 +2671,14 @@ main(int argc, char **argv)
utest_Create();
utest_Set(r);
utest_Format(r);
+ utest_CountResidues();
#ifdef eslAUGMENT_ALPHABET
utest_CreateDigital();
#endif
+ utest_ExtraResMarkups();
+
esl_randomness_Destroy(r);
esl_getopts_Destroy(go);
return 0;
@@ -2083,7 +2691,7 @@ main(int argc, char **argv)
/*****************************************************************
- * 7. Examples.
+ * 9. Examples.
*****************************************************************/
#ifdef eslSQ_EXAMPLE
@@ -2205,15 +2813,3 @@ int main(void)
#endif /*eslSQ_EXAMPLE2*/
/*------------------ end, example drivers ------------------------*/
-/*****************************************************************
- * Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_sq.c 741 2012-02-01 15:26:09Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sq.c $
- *****************************************************************/
diff --git a/easel/esl_sq.h b/easel/esl_sq.h
index 2ccbdc1..9ebbe84 100644
--- a/easel/esl_sq.h
+++ b/easel/esl_sq.h
@@ -1,8 +1,4 @@
-/* A sequence.
- *
- * SRE, Mon Mar 31 17:03:51 2008 [Janelia]
- * SVN $Id: esl_sq.h 699 2011-06-16 18:19:23Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sq.h $
+/* esl_sq : a single biological sequence
*/
#ifndef eslSQ_INCLUDED
#define eslSQ_INCLUDED
@@ -13,7 +9,10 @@
#ifdef eslAUGMENT_MSA
#include "esl_msa.h"
#endif
-
+#if defined eslAUGMENT_RANDOM && defined eslAUGMENT_RANDOMSEQ
+#include "esl_random.h" /* random, randomseq add ability to sample random sq objects for unit tests */
+#include "esl_randomseq.h" /* random, randomseq add ability to sample random sq objects for unit tests */
+#endif
/* ESL_SQ - a biosequence
*
@@ -90,7 +89,7 @@ typedef struct {
char *name; /* name; one word, no whitespace ("\0" if no name) */
char *acc; /* optional accession (1 word) ("\0" if none) */
char *desc; /* description line ("\0" if no description) */
- int32_t tax_id; /* NCBI taxonomy id (-1 if none) */
+ int32_t tax_id; /* NCBI taxonomy id (-1 if none) */
char *seq; /* sequence [0..n-1], or NULL if digital */
ESL_DSQ *dsq; /* digitized sequence [1..n], or NULL if text */
char *ss; /* optional sec structure [0..n-1], [1..n], or NULL */
@@ -100,14 +99,14 @@ typedef struct {
/* Coordinate info for: seq subseq window info */
/* ---- ------ ------ ----- */
int64_t start; /* coord of seq[0],dsq[1] on source [1..L] 1 1<=i<=L 1<=i<=L 0 */
- int64_t end; /* coord of seq[n-1],dsq[n] on source[1..L] L 1<=j<=L 1<=j<=L 0 */
- int64_t C; /* # of context residues for a window 0 0 n-W 0 */
- int64_t W; /* window width L n n-C 0 */
- int64_t L; /* source sequence length in residues L L (or -1) L (or -1) L */
+ int64_t end; /* coord of seq[n-1],dsq[n] on source[1..L] L 1<=j<=L 1<=j<=L 0 */
+ int64_t C; /* # of context residues for a window 0 0 n-W 0 */
+ int64_t W; /* window width L n n-C 0 */
+ int64_t L; /* source sequence length in residues L L (or -1) L (or -1) L */
/* and n: length of seq (or dsq) and ss actually stored: L abs(j-i)+1 C+W 0 */
/* In all the above bookkeeping, a -1 means "unknown" */
char *source; /* name of the source of a subseq/window; or MSA name; or ""*/
-
+
/* Memory allocation bookkeeping: (all inclusive of \0; >= strlen()+1) */
int nalloc; /* allocated length of name */
int aalloc; /* allocated length of accession */
@@ -116,11 +115,18 @@ typedef struct {
int srcalloc; /* allocated length for source name */
/* Disk offset bookkeeping: */
- int64_t idx; /* ctr for which # seq this is; -1 if not counting */
- off_t roff; /* record offset (start of record); -1 if none */
- off_t hoff; /* offset to last byte of header; -1 if unknown */
- off_t doff; /* data offset (start of sequence data); -1 if none */
- off_t eoff; /* offset to last byte of record; -1 if unknown */
+ int64_t idx; /* ctr for which # seq this is; -1 if not counting */
+ off_t roff; /* record offset (start of record); -1 if none */
+ off_t hoff; /* offset to last byte of header; -1 if unknown */
+ off_t doff; /* data offset (start of sequence data); -1 if none */
+ off_t eoff; /* offset to last byte of record; -1 if unknown */
+
+ /* Optional information for extra residue markups.
+ * The number of them, and their tags are arbitrary
+ */
+ char **xr_tag; /* markup tags for extra residue markups [0..ntr-1][free-text], [0..ntr-1][free-text], or NULL */
+ char **xr; /* annotations for extra residue markups [0..ntr-1][0..n-1], [0..ntr-1][1..n], or NULL */
+ int nxr; /* number of extra residue markups */
/* Copy of a pointer to the alphabet, if digital mode */
#if defined(eslAUGMENT_ALPHABET)
@@ -139,11 +145,11 @@ typedef struct {
} ESL_SQ_BLOCK;
/* These control default initial allocation sizes in an ESL_SQ. */
-#define eslSQ_NAMECHUNK 32 /* allocation unit for name, source */
-#define eslSQ_ACCCHUNK 32 /* allocation unit for accession */
-#define eslSQ_DESCCHUNK 128 /* allocation unit for description */
-#define eslSQ_SEQCHUNK 256 /* allocation unit for seqs */
-
+#define eslSQ_NAMECHUNK 32 // allocation unit for name, source
+#define eslSQ_ACCCHUNK 32 // allocation unit for accession
+#define eslSQ_DESCCHUNK 128 // allocation unit for description
+#define eslSQ_SEQCHUNK 256 // allocation unit for seqs
+ // .. dsqdata assumes _SEQCHUNK >= 4
extern ESL_SQ *esl_sq_Create(void);
extern ESL_SQ *esl_sq_CreateFrom(const char *name, const char *seq,
@@ -170,6 +176,7 @@ extern int esl_sq_SetCoordComplete(ESL_SQ *sq, int64_t L);
extern int esl_sq_CAddResidue (ESL_SQ *sq, char c);
extern int esl_sq_ReverseComplement(ESL_SQ *sq);
extern int esl_sq_Checksum(const ESL_SQ *sq, uint32_t *ret_checksum);
+extern int esl_sq_CountResidues(const ESL_SQ *sq, int start, int L, float *f);
#ifdef eslAUGMENT_ALPHABET
extern ESL_SQ *esl_sq_CreateDigital(const ESL_ALPHABET *abc);
@@ -188,18 +195,23 @@ extern int esl_sq_FetchFromMSA(const ESL_MSA *msa, int which, ESL_SQ **ret_s
#endif
extern ESL_SQ_BLOCK *esl_sq_CreateBlock(int count);
+extern int esl_sq_BlockGrowTo(ESL_SQ_BLOCK *sqblock, int newsize, int do_digital, const ESL_ALPHABET *abc);
#ifdef eslAUGMENT_ALPHABET
extern ESL_SQ_BLOCK *esl_sq_CreateDigitalBlock(int count, const ESL_ALPHABET *abc);
#endif
extern void esl_sq_DestroyBlock(ESL_SQ_BLOCK *sqBlock);
+#if defined eslAUGMENT_RANDOM && defined eslAUGMENT_RANDOMSEQ
+extern int esl_sq_Sample(ESL_RANDOMNESS *rng, ESL_ALPHABET *abc, int maxL, ESL_SQ **ret_sq);
+#endif /* eslAUGMENT_RANDOM && eslAUGMENT_RANDOMSEQ */
+
#endif /*eslSQ_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_sq.tex b/easel/esl_sq.tex
index 9ed5db3..67b42ff 100644
--- a/easel/esl_sq.tex
+++ b/easel/esl_sq.tex
@@ -1,21 +1,21 @@
The \eslmod{sq} module provides \Easel's object for single biological
sequences: an \ccode{ESL\_SQ}.
-Sequence objects invariably become complicated even when their
+Sequence objects invariably become complicated, even though their
designer intends them to be simple. There's many things we want to do
with a sequence, and useful features naturally accrete over time. If a
library isn't careful to balance creeping featuritis against having an
easy way to start using the object in simple applications, then the
sequence object - possibly the most fundamental object of a
biosequence library - can become a barrier to anyone else actually
-using the library! All those useful features won't matter much if you
+using the library. All those useful features won't matter much if you
can't figure out how to turn your sequence data into an object, or get
it back out. \Easel\ expects you to have your own preferred way of
dealing with sequence data that's not necessarily \Easel's way, so it
provides simple ways to create sequence objects from elemental (C
string) data, and simple ways to get elemental C strings back out.
-This lets you minimize your exposure to \Easel's more advanced (and
-complicated) capabilities if you like.
+This lets you minimize your exposure to \Easel's more complicated
+capabilities if you like.
The most basic use of an \ccode{ESL\_SQ} object is to hold one
complete sequence, simply as a plain C string. A sequence may also
@@ -68,8 +68,8 @@ sequentially, you would typically just allocate a single
\ccode{ESL\_SQ} object and \ccode{esl\_sq\_Reuse()} it for each new
sequence, rather than creating and destroying a lot of objects.
-A sequence object can also store a secondary structure annotation line
-for the sequence, one character per residue.
+A sequence object can also store an optional secondary structure
+annotation line for the sequence, one character per residue.
When augmented with \eslmod{msa}, an interface to the \ccode{ESL\_MSA}
multiple alignment object provides the ability to extract single
@@ -81,44 +81,15 @@ You would often use the \eslmod{sq} module in conjunction with
Table~\ref{tbl:sq_api} lists the functions in the \eslmod{sq} API.
+
+
% Table generated by autodoc -t esl_sq.c (so don't edit here, edit esl_sq.c:)
-\begin{table}[hbp]
-\begin{center}
-{\small
-\begin{tabular}{|ll|}\hline
-\apisubhead{Text version of the \ccode{ESL\_SQ} object.}\\
-\hyperlink{func:esl_sq_Create()}{\ccode{esl\_sq\_Create()}} & Create a new, empty \ccode{ESL\_SQ}.\\
-\hyperlink{func:esl_sq_CreateFrom()}{\ccode{esl\_sq\_CreateFrom()}} & Create a new \ccode{ESL\_SQ} from text information.\\
-\hyperlink{func:esl_sq_Grow()}{\ccode{esl\_sq\_Grow()}} & Assure that a \ccode{ESL\_SQ} has space to add more residues.\\
-\hyperlink{func:esl_sq_GrowTo()}{\ccode{esl\_sq\_GrowTo()}} & Grows an \ccode{ESL\_SQ} to hold a seq of at least \ccode{n} residues.\\
-\hyperlink{func:esl_sq_Copy()}{\ccode{esl\_sq\_Copy()}} & Make a copy of an \ccode{ESL\_SQ}.\\
-\hyperlink{func:esl_sq_Reuse()}{\ccode{esl\_sq\_Reuse()}} & Reinitialize an \ccode{ESL\_SQ} for re-use.\\
-\hyperlink{func:esl_sq_Destroy()}{\ccode{esl\_sq\_Destroy()}} & Frees an \ccode{ESL\_SQ}.\\
-\apisubhead{Digitized version of the \ccode{ESL\_SQ} object. (Requires \ccode{alphabet})}\\
-\hyperlink{func:esl_sq_CreateDigital()}{\ccode{esl\_sq\_CreateDigital()}} & Create a new, empty \ccode{ESL\_SQ} in digital mode.\\
-\hyperlink{func:esl_sq_CreateDigitalFrom()}{\ccode{esl\_sq\_CreateDigitalFrom()}} & Create a new digital \ccode{ESL\_SQ} from text info.\\
-\hyperlink{func:esl_sq_Digitize()}{\ccode{esl\_sq\_Digitize()}} & Convert an \ccode{ESL\_SQ} to digital mode.\\
-\hyperlink{func:esl_sq_Textize()}{\ccode{esl\_sq\_Textize()}} & Convert an \ccode{ESL\_SQ} to text mode.\\
-\hyperlink{func:esl_sq_GuessAlphabet()}{\ccode{esl\_sq\_GuessAlphabet()}} & Guess alphabet type of a single sequence.\\
-\apisubhead{Other functions that operate on sequences.}\\
-\hyperlink{func:esl_sq_SetName()}{\ccode{esl\_sq\_SetName()}} & Format and set a name of a sequence.\\
-\hyperlink{func:esl_sq_SetAccession()}{\ccode{esl\_sq\_SetAccession()}} & Format and set the accession field in a sequence.\\
-\hyperlink{func:esl_sq_SetDesc()}{\ccode{esl\_sq\_SetDesc()}} & Format and set the description field in a sequence.\\
-\hyperlink{func:esl_sq_SetSource()}{\ccode{esl\_sq\_SetSource()}} & Format and set the source name field in a sequence.\\
-\hyperlink{func:esl_sq_CAddResidue()}{\ccode{esl\_sq\_CAddResidue()}} & Add one residue (or terminal NUL) to a text seq.\\
-\hyperlink{func:esl_sq_XAddResidue()}{\ccode{esl\_sq\_XAddResidue()}} & Add one residue (or terminal sentinel) to digital seq.\\
-\hyperlink{func:esl_sq_GetFromMSA()}{\ccode{esl\_sq\_GetFromMSA()}} & Get a single sequence from an MSA.\\
-\hyperlink{func:esl_sq_FetchFromMSA()}{\ccode{esl\_sq\_FetchFromMSA()}} & Fetch a single sequence from an MSA.\\
-\hline
-\end{tabular}
-}
-\end{center}
-\caption{The \eslmod{sq} API.}
-\label{tbl:sq_api}
-\end{table}
-
-
-\subsection{Example of getting data in and out of an \ccode{ESL\_SQ}}
+\input{apitables/esl_sq_api}
+
+
+
+
+\subsection{Example of getting data in and out of an \ccodeincmd{ESL\_SQ}}
The easiest way to create a new \ccode{ESL\_SQ} object is with the
\ccode{esl\_sq\_CreateFrom()} function, which just takes character
@@ -192,7 +163,7 @@ Ignore the \ccode{dsq} field for now; we're about to get to it, when
we talk about digital mode sequences.
The \ccode{ESL\_SQ} object itself doesn't particularly care about the
-contents of these text fields, so long as they're C strings, and so
+contents of the annotation text fields, so long as they're C strings, and so
long as \ccode{n} is the length of the \ccode{seq} (and optional
\ccode{ss}, if it's non-\ccode{NULL}) strings. However, sequence file
formats do impose some expectations on the annotation strings, and it
@@ -229,14 +200,13 @@ You Know What You're Doing. Their memory allocations are managed by
the \ccode{ESL\_SQ} object. Instead, use the appropriate
\ccode{esl\_sq\_Set*} function to overwrite an annotation field.
-
The \eslmod{sq} module isn't much use by itself; it's a building block
for several other modules. For example, one of the main things you'll
want to do with sequences is to read them from a file. For examples
and documentation of sequence input, see the \eslmod{sqio} module.
-\subsection{Example of using a digital \ccode{ESL\_SQ}}
+\subsection{Example of using a digital \ccodeincmd{ESL\_SQ}}
What follows might make more sense if you've read about the
\eslmod{alphabet} module first. \eslmod{alphabet}'s documentation
diff --git a/easel/esl_sqio.c b/easel/esl_sqio.c
index e402c29..6c2dae7 100644
--- a/easel/esl_sqio.c
+++ b/easel/esl_sqio.c
@@ -1,14 +1,14 @@
/* Unaligned sequence file i/o.
*
* Contents:
- * 1. An <ESL_SQFILE> object, in text mode.
- * 2. An <ESL_SQFILE> object, in digital mode. [with <alphabet>]
- * 3. Miscellaneous routines.
- * 4. Sequence reading (sequential).
- * 5. Sequence/subsequence fetching, random access [with <ssi>]
- * 6. Writing sequences.
- * 7. Parse sequences.
- * 8. Functions specific to sqio
+ * 1. An <ESL_SQFILE> object, text mode.
+ * 2. An <ESL_SQFILE> object, digital mode. [with <alphabet>]
+ * 3. Sequence reading.
+ * 4. Sequence writing.
+ * 5. Miscellaneous routines.
+ * 6. Sequence/subsequence fetching, random access [with <ssi>]
+ * 7. Sequence database caching.
+ * 8. Internal functions.
* 9. Benchmark driver.
* 10. Unit tests.
* 11. Test driver.
@@ -57,7 +57,7 @@ static int convert_sq_to_msa(ESL_SQ *sq, ESL_MSA **ret_msa);
static int sqfile_open(const char *filename, int format, const char *env, ESL_SQFILE **ret_sqfp);
/* Function: esl_sqfile_Open()
- * Synopsis: Open a sequence file for reading.
+ * Synopsis: Open a sequence file <filename> for reading.
*
* Purpose: Open a sequence file <filename> for reading.
* The opened <ESL_SQFILE> is returned through <ret_sqfp>.
@@ -79,11 +79,13 @@ static int sqfile_open(const char *filename, int format, const char *env, ESL_S
* open <ESL_SQFILE>. Caller deallocates this object with
* <esl_sqfile_Close()>.
*
- * Returns <eslENOTFOUND> if <filename> can't be found or
- * opened. Returns <eslEFORMAT> if the file is empty, or
+ * Returns <eslENOTFOUND> if <filename> can't be opened.
+ *
+ * Returns <eslEFORMAT> if the file is empty, or
* if autodetection is attempted and the format can't be
- * determined. On any error condition, <*ret_sqfp> is
- * returned NULL.
+ * determined.
+ *
+ * On any error condition, <*ret_sqfp> is returned NULL.
*
* Throws: <eslEMEM> on allocation failure.
*/
@@ -94,45 +96,6 @@ esl_sqfile_Open(const char *filename, int format, const char *env, ESL_SQFILE **
}
-/* Function: esl_sqfile_Position()
- * Synopsis: Reposition an open sequence file to an offset.
- *
- * Purpose: Reposition an open <sqfp> to offset <offset>.
- * <offset> would usually be the first byte of a
- * desired sequence record.
- *
- * Only normal sequence files can be positioned to a
- * nonzero offset. If <sqfp> corresponds to a standard
- * input stream or gzip -dc stream, it may not be
- * repositioned. If <sqfp> corresponds to a multiple
- * sequence alignment file, the only legal <offset>
- * is 0, to rewind the file to the beginning and
- * be able to read the entire thing again.
- *
- * After <esl_sqfile_Position()> is called on a nonzero
- * <offset>, and other bookkeeping information is unknown.
- * If caller knows it, it should set it explicitly.
- *
- * See the SSI module for manipulating offsets and indices.
- *
- * Returns: <eslOK> on success;
- * <eslEOF> if no data can be read from this position.
- *
- * Throws: <eslESYS> if the fseeko() or fread() call fails.
- * <eslEMEM> on (re-)allocation failure.
- * <eslEINVAL> if the <sqfp> is not positionable.
- * <eslENOTFOUND> if in trying to rewind an alignment file
- * by closing and reopening it, the open fails.
- * On errors, the state of <sqfp> is indeterminate, and
- * it should not be used again.
- */
-int
-esl_sqfile_Position(ESL_SQFILE *sqfp, off_t offset)
-{
- return sqfp->position(sqfp, offset);
-}
-
-
/* Function: esl_sqfile_Close()
* Synopsis: Close a sequence file.
*
@@ -276,6 +239,7 @@ sqfile_open(const char *filename, int format, const char *env, ESL_SQFILE **ret_
/*------------------- ESL_SQFILE open/close -----------------------*/
+
/*****************************************************************
*# 2. An <ESL_SQFILE> object, in digital mode [with <alphabet>]
*****************************************************************/
@@ -350,21 +314,17 @@ esl_sqfile_SetDigital(ESL_SQFILE *sqfp, const ESL_ALPHABET *abc)
* Returns: <eslOK> on success, and <*ret_type> is set to <eslDNA>,
* <eslRNA>, or <eslAMINO>.
*
- * Returns <eslENOALPHABET> and sets <*ret_type> to
- * <eslUNKNOWN> if the first sequence (or alignment)
- * in the file contains no more than ten residues total,
- * or if its alphabet cannot be guessed (i.e. it contains
- * IUPAC degeneracy codes, but no amino acid specific
- * residues).
+ * Returns <eslENOALPHABET> if the alphabet can't be
+ * reliably guessed.
*
- * Returns <eslEFORMAT> if a parse error is encountered in
- * trying to read the sequence file. <sqfp->errbuf> is set
- * to a useful error message if this occurs,
- * <sqfp->linenumber> is the line on which the error
- * occurred, and <*ret_type> is set to <eslUNKNOWN>.
+ * Returns <eslEFORMAT> if a parse error is encountered.
+ * Call <esl_sqfile_GetErrorBuf()> to get a ptr to a
+ * user-directed error message describing the problem,
+ * including the line number on which it was found.
*
- * Returns <eslENODATA> and sets <*ret_type> to <eslUNKNOWN>
- * if the file appears to be empty.
+ * Returns <eslENODATA> if the file appears to be empty.
+ *
+ * On any error, <*ret_type> is <eslSQFILE_UNKNOWN>.
*
* Throws: <eslEMEM> on allocation error;
* <eslEINCONCEIVABLE> on unimaginable internal errors.
@@ -375,665 +335,288 @@ esl_sqfile_GuessAlphabet(ESL_SQFILE *sqfp, int *ret_type)
return sqfp->guess_alphabet(sqfp, ret_type);
}
-/* Function: esl_sqfile_Cache()
- * Synopsis: Read a database into memory.
+#endif /*eslAUGMENT_ALPHABET*/
+/*-------------- end, digital mode ESL_SQFILE -------------------*/
+
+
+
+/*****************************************************************
+ *# 3. Sequence reading (sequential)
+ *****************************************************************/
+
+/* Function: esl_sqio_Read()
+ * Synopsis: Read the next sequence from a file.
*
- * Purpose: Read an entire database into memory building a cached
- * structure <ESL_SQCACHE>. The cache structure has basic
- * information about the database, ie number of sequences
- * number of residues, etc.
+ * Purpose: Reads the next sequence from open sequence file <sqfp> into
+ * <sq>. Caller provides an allocated and initialized <sq>, which
+ * will be internally reallocated if its space is insufficient.
*
- * All sequences <ESL_SQ> are in a memory array <sq_list>.
- * The number of elements in the list is <seq_count>. The
- * header pointers, ie name, acc and desc are pointers into
- * the <header_mem> buffer. All digitized sequences are pointers
- * into the <residue_mem> buffer.
+ * Returns: <eslOK> on success; the new sequence is stored in <sq>.
+ *
+ * Returns <eslEOF> when there is no sequence left in the
+ * file (including first attempt to read an empty file).
+ *
+ * Returns <eslEFORMAT> if a parse error is encountered.
+ * Call <esl_sqfile_GetErrorBuf()> to get a ptr to a
+ * user-directed error message describing the problem,
+ * including the line number on which it was found.
*
- * Returns: <eslOK> on success.
- *
- * Returns <eslEFORMAT> if a parse error is encountered in
- * trying to read the sequence file.
+ * Throws: <eslEMEM> on allocation failure;
+ * <eslEINCONCEIVABLE> on internal error.
+ */
+int
+esl_sqio_Read(ESL_SQFILE *sqfp, ESL_SQ *sq)
+{
+ return sqfp->read(sqfp, sq);
+}
+
+
+/* Function: esl_sqio_ReadInfo()
+ * Synopsis: Read sequence info, but not the sequence itself.
+ *
+ * Purpose: Read the next sequence from open sequence file <sqfp>,
+ * but don't store the sequence (or secondary structure).
+ * Upon successful return, <s> holds all the available
+ * information about the sequence -- its name, accession,
+ * description, and overall length <sq->L>.
*
- * Returns <eslENODATA> if the file appears to be empty.
+ * This is useful for indexing sequence files, where
+ * individual sequences might be ginormous, and we'd rather
+ * avoid reading complete seqs into memory.
*
- * Throws: <eslEMEM> on allocation error;
+ * Returns: <eslOK> on success.
*/
-int
-esl_sqfile_Cache(const ESL_ALPHABET *abc, const char *seqfile, int fmt, const char *env, ESL_SQCACHE **ret_sqcache)
+int
+esl_sqio_ReadInfo(ESL_SQFILE *sqfp, ESL_SQ *sq)
{
- int status;
+ return sqfp->read_info(sqfp, sq);
+}
- int n;
- uint32_t len;
- uint32_t max;
- uint32_t count;
+/* Function: esl_sqio_ReadSequence()
+ * Synopsis: Read sequence, but not the header itself.
+ *
+ * Purpose: Read the next sequence from open sequence file <sqfp>,
+ * skipping over the header data. Upon successful return,
+ * <s> holds just the sequece data. File offsets will be
+ * filled in.
+ *
+ * This is useful fast reads of binary formats where the
+ * header information and sequences are stored in different
+ * files.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_sqio_ReadSequence(ESL_SQFILE *sqfp, ESL_SQ *sq)
+{
+ return sqfp->read_seq(sqfp, sq);
+}
- uint64_t res_size = 1;
- uint64_t hdr_size = 1;
- ESL_SQFILE *sqfp = NULL;
+/* Function: esl_sqio_ReadWindow()
+ * Synopsis: Read next window of sequence.
+ *
+ * Purpose: Read a next window of <W> residues from open file <sqfp>,
+ * keeping <C> residues from the previous window as
+ * context, and keeping previous annotation in the <sq>
+ * as before.
+ *
+ * If this is the first window of a new sequence record,
+ * <C> is ignored (there's no previous context yet), and
+ * the annotation fields of the <sq> (name, accession, and
+ * description) are initialized by reading the sequence
+ * record's header. This is the only time the annotation
+ * fields are initialized.
+ *
+ * On return, <sq->dsq[]> contains the window and its
+ * context; residues <1..sq->C> are the previous context,
+ * and residues <sq->C+1..sq->n> are the new window. The
+ * start and end coordinates of the whole <dsq[1..n]>
+ * (including context) in the original source sequence are
+ * <sq->start..sq->end>. (Or, for text mode sequences,
+ * <sq->seq[0..sq->C-1,sq->C..sq->n-1]>, while <start> and
+ * <end> coords are still <1..L>.)
+ *
+ * When a sequence record is completed and no more data
+ * remain, <eslEOD> is returned, with an ``info'' <sq>
+ * structure (containing the annotation and the total
+ * sequence length <L>, but no sequence). (The total
+ * sequence length <L> is unknown in <sq> until this
+ * <eslEOD> return.)
+ *
+ * The caller may then do one of two things before calling
+ * <esl_sq_ReadWindow()> again; it can reset the sequence
+ * with <esl_sq_Reuse()> to continue reading the next
+ * sequence in the file, or it can set a negative <W> as a
+ * signal to read windows from the reverse complement
+ * (Crick) strand. Reverse complement reading only works
+ * for nucleic acid sequence.
+ *
+ * If you read the reverse complement strand, you must read
+ * the whole thing, calling <esl_sqio_ReadWindow()> with
+ * negative <W> windows until <eslEOD> is returned again
+ * with an empty (info-only) <sq> structure. When that
+ * <EOD> is reached, the <sqfp> is repositioned at the
+ * start of the next sequence record; the caller should now
+ * <Reuse()> the <sq>, and the next <esl_sqio_ReadWindow()>
+ * call must have a positive <W>, corresponding to starting
+ * to read the Watson strand of the next sequence.
+ *
+ * Note that the <ReadWindow()> interface is designed for
+ * an idiom of sequential reading of complete sequences in
+ * overlapping windows, possibly on both strands; if you
+ * want more freedom to move around in the sequence
+ * grabbing windows in another order, you can use the
+ * <FetchSubseq()> interface.
+ *
+ * Reading the reverse complement strand requires file
+ * repositioning, so it will not work on non-repositionable
+ * streams like gzipped files or a stdin pipe. Moreover,
+ * for reverse complement input to be efficient, the
+ * sequence file should have consistent line lengths,
+ * suitable for SSI's fast subsequence indexing.
+ *
+ * Returns: <eslOK> on success; <sq> now contains next window of
+ * sequence, with at least 1 new residue. The number
+ * of new residues is <sq->W>; <sq->C> residues are
+ * saved from the previous window. Caller may now
+ * process residues <sq->dsq[sq->C+1]..sq->dsq[sq->n]>.
+ *
+ * <eslEOD> if no new residues were read for this sequence
+ * and strand, and <sq> now contains an empty info-only
+ * structure (annotation and <L> are valid). Before calling
+ * <esl_sqio_ReadWindow()> again, caller will either want
+ * to make <W> negative (to start reading the Crick strand
+ * of the current sequence), or it will want to reset the
+ * <sq> (with <esl_sq_Reuse()>) to go on the next sequence.
+ *
+ * <eslEOF> if we've already returned <eslEOD> before to
+ * signal the end of the previous seq record, and moreover,
+ * there's no more sequence records in the file.
+ *
+ * <eslEINVAL> if an invalid residue is found in the
+ * sequence, or if you attempt to take the reverse
+ * complement of a sequence that can't be reverse
+ * complemented.
+ *
+ * Throws: <eslESYNTAX> if you try to read a reverse window before
+ * you've read forward strand.
+ *
+ * <eslECORRUPT> if something goes awry internally in the
+ * coordinate system.
+ *
+ * <eslEMEM> on allocation error.
+ */
+int
+esl_sqio_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
+{
+ return sqfp->read_window(sqfp, C, W, sq);
+}
- ESL_SQ *c = NULL;
- ESL_SQ *sq = NULL;
- ESL_SQCACHE *cache = NULL;
+/* Function: esl_sqio_ReadBlock()
+ * Synopsis: Read the next block of sequences from a file.
+ *
+ * Purpose: Reads a block of sequences from open sequence file <sqfp> into
+ * <sqBlock>.
+ *
+ * Returns: <eslOK> on success; the new sequence is stored in <sqBlock>.
+ *
+ * Returns <eslEOF> when there is no sequence left in the
+ * file (including first attempt to read an empty file).
+ *
+ * Returns <eslEFORMAT> if a parse error is encountered.
+ * Call <esl_sqfile_GetErrorBuf()> to get a ptr to a
+ * user-directed error message describing the problem,
+ * including the line number on which it was found.
+ *
+ * Throws: <eslEMEM> on allocation failure;
+ * <eslEINCONCEIVABLE> on internal error.
+ */
+int
+esl_sqio_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target)
+{
+ return sqfp->read_block(sqfp, sqBlock, max_residues, max_sequences, long_target);
+}
- ESL_DSQ *res_ptr = NULL;
- char *hdr_ptr = NULL;
-
- /* open the database */
- status = esl_sqfile_OpenDigital(abc, seqfile, fmt, env, &sqfp);
- if (status != eslOK) return status;
-
- /* if we can't rewind the database, stop now. */
- if (!esl_sqfile_IsRewindable(sqfp)) return eslFAIL;
-
- /* loop through the database reading all the sequnces */
- max = 0;
- count = 0;
- sq = esl_sq_CreateDigital(abc);
- while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) {
- ++count;
-
- res_size += sq->n + 1;
- if (sq->n > max) max = sq->n;
-
- len = strlen(sq->name);
- if (len > 0) ++len;
- hdr_size += len;
-
- len = strlen(sq->acc);
- if (len > 0) ++len;
- hdr_size += len;
-
- len = strlen(sq->desc);
- if (len > 0) ++len;
- hdr_size += len;
-
- esl_sq_Reuse(sq);
- }
- if (status != eslEOF) goto ERROR;
-
- /* now that the database information is know, allocate the memory to
- * hold the data. different memory blocks will be used to hold the
- * redisues and header info. the idea is that since the header info,
- * ie, name, acc, etc is used infrenquently (only when there is a hit)
- * if some pages need to be swapped out, hopefully it will be the
- * header pages first leaving the sequences in memory.
- */
- ESL_ALLOC(cache, sizeof(ESL_SQCACHE));
-
- cache->filename = NULL;
- cache->sq_list = NULL;
- cache->residue_mem = NULL;
- cache->header_mem = NULL;
-
- cache->abc = abc;
- cache->format = fmt;
- cache->seq_count = count;
- cache->res_count = res_size;
- cache->max_seq = max;
-
- cache->res_size = res_size + 2;
- cache->hdr_size = hdr_size;
-
- ESL_ALLOC(cache->filename, strlen(seqfile) + 1);
- strcpy(cache->filename, seqfile);
-
- ESL_ALLOC(cache->sq_list, sizeof(ESL_SQ) * (count + 1));
-
- /* different memory blocks will be used to hold the residues and header
- * info. the idea is that since the header info, ie, name, acc, etc.
- * is used infrenquently (only when there is a hit) if some pages need
- * to be swapped out, hopefully it will be the header pages first
- * leaving the sequences in memory.
- */
- ESL_ALLOC(cache->residue_mem, res_size + 2);
- ESL_ALLOC(cache->header_mem, hdr_size);
-
- hdr_ptr = cache->header_mem;
- *hdr_ptr = 0;
-
- res_ptr = cache->residue_mem;
- *res_ptr = eslDSQ_SENTINEL;
-
- /* loop through the database filling in the cache */
- n = 0;
- esl_sqfile_Position(sqfp, 0);
- while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) {
- c = cache->sq_list + n;
-
- /* if header fields have been defined, copy them to the cache */
- c->name = hdr_ptr;
- if (sq->name[0] != 0) {
- c->name = hdr_ptr + 1;
- strcpy(c->name, sq->name);
- hdr_ptr += strlen(sq->name) + 1;
- }
-
- c->acc = hdr_ptr;
- if (sq->acc[0] != 0) {
- c->acc = hdr_ptr + 1;
- strcpy(c->acc, sq->acc);
- hdr_ptr += strlen(sq->acc) + 1;
- }
-
- c->desc = hdr_ptr;
- if (sq->desc[0] != 0) {
- c->desc = hdr_ptr + 1;
- strcpy(c->desc, sq->desc);
- hdr_ptr += strlen(sq->desc) + 1;
- }
-
- c->tax_id = sq->tax_id;
- c->seq = NULL;
- c->ss = NULL;
-
- /* copy the digitized sequence */
- memcpy(res_ptr + 1, sq->dsq + 1, sq->n + 1);
- c->dsq = res_ptr;
- c->n = sq->n;
- res_ptr += sq->n + 1;
-
- /* Coordinate info */
- c->start = sq->start;
- c->end = sq->end;
- c->C = sq->C;
- c->W = sq->W;
- c->L = sq->L;
-
- c->source = NULL;
-
- /* allocated lengths */
- c->nalloc = -1;
- c->aalloc = -1;
- c->dalloc = -1;
- c->salloc = -1;
- c->srcalloc = -1;
-
- /* Disk offset bookkeeping */
- c->idx = n;
- c->roff = sq->roff;
- c->hoff = sq->hoff;
- c->doff = sq->doff;
- c->eoff = sq->eoff;
-
- c->abc = abc;
-
- esl_sq_Reuse(sq);
- ++n;
- }
- if (status != eslEOF) goto ERROR;
-
- /* add on last empty sequence */
- c = cache->sq_list + count;
- *(res_ptr + 1) = eslDSQ_SENTINEL;
-
- c->name = hdr_ptr;
- c->acc = hdr_ptr;
- c->desc = hdr_ptr;
-
- c->tax_id = -1;
- c->seq = NULL;
- c->ss = NULL;
-
- c->dsq = res_ptr;
- c->n = 0;
-
- c->start = 0;
- c->end = 0;
- c->C = 0;
- c->W = 0;
- c->L = -1;
-
- c->source = NULL;
-
- c->nalloc = -1;
- c->aalloc = -1;
- c->dalloc = -1;
- c->salloc = -1;
- c->srcalloc = -1;
-
- c->idx = count;
- c->roff = -1;
- c->hoff = -1;
- c->doff = -1;
- c->eoff = -1;
-
- c->abc = NULL;
-
- if (sq != NULL) esl_sq_Destroy(sq);
- esl_sqfile_Close(sqfp);
-
- *ret_sqcache = cache;
-
- return eslOK;
-
-ERROR:
- if (sq != NULL) esl_sq_Destroy(sq);
- esl_sqfile_Close(sqfp);
-
- esl_sqfile_Free(cache);
-
- return status;
-}
-
-/* Function: esl_sqfile_Free()
- * Synopsis: Free a cached database <ESL_SQCACHE>.
- *
- * Purpose: Frees all the memory used to cache the sequence database.
- *
- * Returns: none.
- */
-void
-esl_sqfile_Free(ESL_SQCACHE *sqcache)
-{
- if (sqcache == NULL) return;
-
- if (sqcache->filename != NULL) free(sqcache->filename);
- if (sqcache->sq_list != NULL) free(sqcache->sq_list);
- if (sqcache->residue_mem != NULL) free(sqcache->residue_mem);
- if (sqcache->header_mem != NULL) free(sqcache->header_mem);
-
- sqcache->abc = NULL;
- sqcache->filename = NULL;
- sqcache->sq_list = NULL;
- sqcache->residue_mem = NULL;
- sqcache->header_mem = NULL;
-
- free(sqcache);
-}
-
-
-#endif /*eslAUGMENT_ALPHABET*/
-/*-------------- end, digital mode ESL_SQFILE -------------------*/
-
-
-
-/*****************************************************************
- *# 3. Miscellaneous routines
- *****************************************************************/
-
-/* Function: esl_sqfile_IsRewindable()
- * Synopsis: Return <TRUE> if <sqfp> can be rewound.
- *
- * Purpose: Returns <TRUE> if <sqfp> can be rewound (positioned
- * to an offset of zero), in order to read it a second
- * time.
- */
-int
-esl_sqfile_IsRewindable(const ESL_SQFILE *sqfp)
-{
- return sqfp->is_rewindable(sqfp);
-}
-
-
-/* Function: esl_sqfile_GetErrorBuf()
- * Synopsis: Return the error buffer
- *
- * Purpose: Returns the pointer to the error buffer.
- * Each parser is responsible for formatting
- * a zero terminated string describing the
- * error condition.
- *
- * Returns: A pointer the error message.
- */
-const char *
-esl_sqfile_GetErrorBuf(const ESL_SQFILE *sqfp)
-{
- return sqfp->get_error(sqfp);
-}
-
-
-/* Function: esl_sqio_Ignore()
- * Synopsis: Sets the input map to ignore one or more input characters.
- *
- * Purpose: Set the input map of the open <sqfp> to allow
- * the characters in the string <ignoredchars> to appear
- * in input sequences. These characters will be ignored.
- *
- * For example, an application might want to ignore '*'
- * characters in its sequence input, because some translated
- * peptide files use '*' to indicate stop codons.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_sqio_Ignore(ESL_SQFILE *sqfp, const char *ignoredchars)
-{
- int i;
- for (i = 0; ignoredchars[i] != '\0'; i++)
- sqfp->inmap[(int) ignoredchars[i]] = eslDSQ_IGNORED;
- return eslOK;
-}
-
-/* Function: esl_sqio_AcceptAs()
- * Synopsis: Map a list of additional characters.
- *
- * Purpose: Set the input map of the open <sqfp> to allow the
- * characters in the string <xchars> to appear in
- * input sequences. These characters will all be
- * mapped to the character <readas> (or, for digital
- * sequence input, to the digitized representation
- * of the text character <readas> in the <sqfp>'s
- * digital alphabet).
- *
- * For example, an application might want to read
- * '*' as 'X' when reading translated peptide files
- * that use '*' to indicate a stop codon.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_sqio_AcceptAs(ESL_SQFILE *sqfp, char *xchars, char readas)
-{
- int i;
-
-#ifdef eslAUGMENT_ALPHABET
- if (sqfp->do_digital)
- {
- for (i = 0; xchars[i] != '\0'; i++)
- sqfp->inmap[(int) xchars[i]] = esl_abc_DigitizeSymbol(sqfp->abc, readas);
- }
-#endif
- if (! sqfp->do_digital)
- {
- for (i = 0; xchars[i] != '\0'; i++)
- sqfp->inmap[(int) xchars[i]] = readas;
- }
- return eslOK;
-
-}
-
-
-/* Function: esl_sqio_EncodeFormat()
- * Synopsis: Convert a string to an internal format code.
- *
- * Purpose: Given <fmtstring>, return format code. For example, if
- * <fmtstring> is "fasta", returns <eslSQFILE_FASTA>. Returns
- * <eslSQFILE_UNKNOWN> if <fmtstring> doesn't exactly match a
- * known format.
- *
- * Matching is case insensitive; fasta, FASTA, and FastA
- * all return <eslSQFILE_FASTA>, for example.
- *
- * When augmented by msa, then alignment file formats
- * are recognized in addition to unaligned file formats.
- */
-int
-esl_sqio_EncodeFormat(char *fmtstring)
-{
- if (strcasecmp(fmtstring, "fasta") == 0) return eslSQFILE_FASTA;
- if (strcasecmp(fmtstring, "embl") == 0) return eslSQFILE_EMBL;
- if (strcasecmp(fmtstring, "genbank") == 0) return eslSQFILE_GENBANK;
- if (strcasecmp(fmtstring, "ddbj") == 0) return eslSQFILE_DDBJ;
- if (strcasecmp(fmtstring, "uniprot") == 0) return eslSQFILE_UNIPROT;
- if (strcasecmp(fmtstring, "daemon") == 0) return eslSQFILE_DAEMON;
- if (strcasecmp(fmtstring, "hmmpgmd") == 0) return eslSQFILE_HMMPGMD;
- if (strcasecmp(fmtstring, "fmindex") == 0) return eslSQFILE_FMINDEX;
-
-
-#ifdef eslAUGMENT_NCBI
- if (strcasecmp(fmtstring, "ncbi") == 0) return eslSQFILE_NCBI;
-#endif
-#ifdef eslAUGMENT_MSA
- return eslx_msafile_EncodeFormat(fmtstring);
-#endif
- return eslSQFILE_UNKNOWN;
-}
-
-/* Function: esl_sqio_DecodeFormat()
- * Synopsis: Returns descriptive string for file format code.
- *
- * Purpose: Given a format code <fmt>, returns a string label for
- * that format. For example, if <fmt> is <eslSQFILE_FASTA>,
- * returns "FASTA".
- *
- * When augmented by msa, then alignment file format codes
- * are recognized in addition to unaligned file format codes.
- */
-char *
-esl_sqio_DecodeFormat(int fmt)
-{
-#ifdef eslAUGMENT_MSA
- if (esl_sqio_IsAlignment(fmt)) return eslx_msafile_DecodeFormat(fmt);
-#endif
-
- switch (fmt) {
- case eslSQFILE_UNKNOWN: return "unknown";
- case eslSQFILE_FASTA: return "FASTA";
- case eslSQFILE_EMBL: return "EMBL";
- case eslSQFILE_GENBANK: return "GenBank";
- case eslSQFILE_DDBJ: return "DDBJ";
- case eslSQFILE_UNIPROT: return "UniProt";
- case eslSQFILE_DAEMON: return "daemon";
- case eslSQFILE_HMMPGMD: return "hmmpgmd";
-#ifdef eslAUGMENT_NCBI
- case eslSQFILE_NCBI: return "NCBI";
-#endif
- default: break;
- }
- esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "no such sqio format code %d", fmt);
- return NULL;
-}
-
-/* Function: esl_sqio_IsAlignment()
- * Synopsis: Return TRUE for alignment file format codes.
+/* Function: esl_sqio_Parse()
+ * Synopsis: Parse a sequence already read into a buffer.
*
- * Purpose: Returns TRUE if <fmt> is an alignment file
- * format code; else returns FALSE.
+ * Purpose: Parse the buffer <buf> for a sequence <s> of type
+ * <format>. The buffer must contain the entire sequence.
*
- * This function only checks the convention
- * that <fmt> codes $<$100 are unaligned formats,
- * and $\geq$100 are aligned formats. It does
- * not check that <fmt> is a recognized format
- * code.
- */
-int
-esl_sqio_IsAlignment(int fmt)
-{
- return (fmt >= 100 ? TRUE : FALSE);
-}
-
-
-
-/*****************************************************************
- *# 4. Sequence reading (sequential)
- *****************************************************************/
-
-/* Function: esl_sqio_Read()
- * Synopsis: Read the next sequence from a file.
- *
- * Purpose: Reads the next sequence from open sequence file <sqfp> into
- * <sq>. Caller provides an allocated and initialized <s>, which
- * will be internally reallocated if its space is insufficient.
- *
- * Returns: <eslOK> on success; the new sequence is stored in <s>.
- *
- * Returns <eslEOF> when there is no sequence left in the
- * file (including first attempt to read an empty file).
- *
- * Returns <eslEFORMAT> if there's a problem with the format,
- * such as an illegal character; the line number that the parse
- * error occurs on is in <sqfp->linenumber>, and an informative
- * error message is placed in <sqfp->errbuf>.
+ * Returns: <eslOK> on success.
*
- * Throws: <eslEMEM> on allocation failure;
- * <eslEINCONCEIVABLE> on internal error.
+ * Throws: <eslEMEM> on allocation error.
+ * <eslEFORMAT> on parsing error.
+ * <eslEINVAL> on unsupported format.
*/
int
-esl_sqio_Read(ESL_SQFILE *sqfp, ESL_SQ *sq)
+esl_sqio_Parse(char *buf, int size, ESL_SQ *s, int format)
{
- return sqfp->read(sqfp, sq);
-}
+ int status;
+ switch (format) {
+ case eslSQFILE_EMBL:
+ case eslSQFILE_UNIPROT:
+ case eslSQFILE_GENBANK:
+ case eslSQFILE_DDBJ:
+ case eslSQFILE_FASTA:
+ case eslSQFILE_DAEMON:
+ status = esl_sqascii_Parse(buf, size, s, format);
-/* Function: esl_sqio_ReadInfo()
- * Synopsis: Read sequence info, but not the sequence itself.
- *
- * Purpose: Read the next sequence from open sequence file <sqfp>,
- * but don't store the sequence (or secondary structure).
- * Upon successful return, <s> holds all the available
- * information about the sequence -- its name, accession,
- * description, and overall length <sq->L>.
- *
- * This is useful for indexing sequence files, where
- * individual sequences might be ginormous, and we'd rather
- * avoid reading complete seqs into memory.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_sqio_ReadInfo(ESL_SQFILE *sqfp, ESL_SQ *sq)
-{
- return sqfp->read_info(sqfp, sq);
+ break;
+ default:
+ ESL_EXCEPTION(eslEINVAL, "can't parse that format");
+ }
+ return status;
}
+/*------------------ end, sequential sequence input -------------*/
-/* Function: esl_sqio_ReadSequence()
- * Synopsis: Read sequence, but not the header itself.
- *
- * Purpose: Read the next sequence from open sequence file <sqfp>,
- * skipping over the header data. Upon successful return,
- * <s> holds just the sequece data. File offsets will be
- * filled in.
- *
- * This is useful fast reads of binary formats where the
- * header information and sequences are stored in different
- * files.
- *
- * Returns: <eslOK> on success.
- */
-int
-esl_sqio_ReadSequence(ESL_SQFILE *sqfp, ESL_SQ *sq)
-{
- return sqfp->read_seq(sqfp, sq);
-}
-
-/* Function: esl_sqio_ReadWindow()
- * Synopsis: Read next window of sequence.
- *
- * Purpose: Read a next window of <W> residues from open file <sqfp>,
- * keeping <C> residues from the previous window as
- * context, and keeping previous annotation in the <sq>
- * as before.
- *
- * If this is the first window of a new sequence record,
- * <C> is ignored (there's no previous context yet), and
- * the annotation fields of the <sq> (name, accession, and
- * description) are initialized by reading the sequence
- * record's header. This is the only time the annotation
- * fields are initialized.
- *
- * On return, <sq->dsq[]> contains the window and its
- * context; residues <1..sq->C> are the previous context,
- * and residues <sq->C+1..sq->n> are the new window. The
- * start and end coordinates of the whole <dsq[1..n]>
- * (including context) in the original source sequence are
- * <sq->start..sq->end>. (Or, for text mode sequences,
- * <sq->seq[0..sq->C-1,sq->C..sq->n-1]>, while <start> and
- * <end> coords are still <1..L>.)
- *
- * When a sequence record is completed and no more data
- * remain, <eslEOD> is returned, with an ``info'' <sq>
- * structure (containing the annotation and the total
- * sequence length <L>, but no sequence). (The total
- * sequence length <L> is unknown in <sq> until this
- * <eslEOD> return.)
- *
- * The caller may then do one of two things before calling
- * <esl_sq_ReadWindow()> again; it can reset the sequence
- * with <esl_sq_Reuse()> to continue reading the next
- * sequence in the file, or it can set a negative <W> as a
- * signal to read windows from the reverse complement
- * (Crick) strand. Reverse complement reading only works
- * for nucleic acid sequence.
- *
- * If you read the reverse complement strand, you must read
- * the whole thing, calling <esl_sqio_ReadWindow()> with
- * negative <W> windows until <eslEOD> is returned again
- * with an empty (info-only) <sq> structure. When that
- * <EOD> is reached, the <sqfp> is repositioned at the
- * start of the next sequence record; the caller should now
- * <Reuse()> the <sq>, and the next <esl_sqio_ReadWindow()>
- * call must have a positive <W>, corresponding to starting
- * to read the Watson strand of the next sequence.
- *
- * Note that the <ReadWindow()> interface is designed for
- * an idiom of sequential reading of complete sequences in
- * overlapping windows, possibly on both strands; if you
- * want more freedom to move around in the sequence
- * grabbing windows in another order, you can use the
- * <FetchSubseq()> interface.
- *
- * Reading the reverse complement strand requires file
- * repositioning, so it will not work on non-repositionable
- * streams like gzipped files or a stdin pipe. Moreover,
- * for reverse complement input to be efficient, the
- * sequence file should have consistent line lengths,
- * suitable for SSI's fast subsequence indexing.
- *
- * Returns: <eslOK> on success; <sq> now contains next window of
- * sequence, with at least 1 new residue. The number
- * of new residues is <sq->W>; <sq->C> residues are
- * saved from the previous window. Caller may now
- * process residues <sq->dsq[sq->C+1]..sq->dsq[sq->n]>.
- *
- * <eslEOD> if no new residues were read for this sequence
- * and strand, and <sq> now contains an empty info-only
- * structure (annotation and <L> are valid). Before calling
- * <esl_sqio_ReadWindow()> again, caller will either want
- * to make <W> negative (to start reading the Crick strand
- * of the current sequence), or it will want to reset the
- * <sq> (with <esl_sq_Reuse()>) to go on the next sequence.
- *
- * <eslEOF> if we've already returned <eslEOD> before to
- * signal the end of the previous seq record, and moreover,
- * there's no more sequence records in the file.
- *
- * <eslEINVAL> if an invalid residue is found in the
- * sequence, or if you attempt to take the reverse
- * complement of a sequence that can't be reverse
- * complemented.
- *
- * Throws: <eslESYNTAX> if you try to read a reverse window before
- * you've read forward strand.
- *
- * <eslECORRUPT> if something goes awry internally in the
- * coordinate system.
- *
- * <eslEMEM> on allocation error.
- */
-int
-esl_sqio_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
-{
- return sqfp->read_window(sqfp, C, W, sq);
-}
+/*****************************************************************
+ *# 4. Writing sequences.
+ *****************************************************************/
-/* Function: esl_sqio_ReadBlock()
- * Synopsis: Read the next block of sequences from a file.
- *
- * Purpose: Reads a block of sequences from open sequence file <sqfp> into
- * <sqBlock>.
+/* Function: esl_sqio_Write()
+ * Synopsis: Write a sequence to a file.
*
- * Returns: <eslOK> on success; the new sequence is stored in <sqBlock>.
- *
- * Returns <eslEOF> when there is no sequence left in the
- * file (including first attempt to read an empty file).
+ * Purpose: Write sequence <s> to an open FILE <fp> in file format
+ * <format>.
*
- * Returns <eslEFORMAT> if there's a problem with the format,
- * such as an illegal character; the line number that the parse
- * error occurs on is in <sqfp->linenumber>, and an informative
- * error message is placed in <sqfp->errbuf>.
+ * If <update> is <TRUE>, set the offsets for sequence <s>.
+ *
+ * Returns: <eslOK> on success.
*
- * Throws: <eslEMEM> on allocation failure;
- * <eslEINCONCEIVABLE> on internal error.
+ * Throws: <eslEMEM> on allocation error.
+ * <eslEWRITE> on system write error, such as filled disk.
*/
int
-esl_sqio_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target)
+esl_sqio_Write(FILE *fp, ESL_SQ *s, int format, int update)
{
- return sqfp->read_block(sqfp, sqBlock, max_residues, long_target);
+ int status;
+
+#ifdef eslAUGMENT_MSA
+ ESL_MSA *msa;
+ if (esl_sqio_IsAlignment(format))
+ {
+ if ((status = convert_sq_to_msa(s, &msa)) != eslOK) return status;
+ status = esl_msafile_Write(fp, msa, format);
+ esl_msa_Destroy(msa);
+ return status;
+ }
+#endif
+
+ switch (format) {
+ case eslSQFILE_FASTA:
+ case eslSQFILE_HMMPGMD:
+ status = esl_sqascii_WriteFasta(fp, s, update);
+ break;
+ default:
+ ESL_EXCEPTION(eslEINCONCEIVABLE, "can't write that format");
+ }
+ return status;
}
/* Function: esl_sqio_Echo()
@@ -1069,14 +652,241 @@ esl_sqio_Echo(ESL_SQFILE *sqfp, const ESL_SQ *sq, FILE *ofp)
{
return sqfp->echo(sqfp, sq, ofp);
}
-/*------------------ end, sequential sequence input -------------*/
+/*----------------- end, writing sequences ---------------------*/
+
+
+
+/*****************************************************************
+ *# 5. Miscellaneous routines
+ *****************************************************************/
+
+/* Function: esl_sqfile_GetErrorBuf()
+ * Synopsis: Return the error buffer
+ *
+ * Purpose: Returns the pointer to the error buffer.
+ * Each parser is responsible for formatting
+ * a zero terminated string describing the
+ * error condition.
+ *
+ * Returns: A pointer the error message.
+ */
+const char *
+esl_sqfile_GetErrorBuf(const ESL_SQFILE *sqfp)
+{
+ return sqfp->get_error(sqfp);
+}
+
+
+/* Function: esl_sqfile_IsRewindable()
+ * Synopsis: Return <TRUE> if <sqfp> can be rewound.
+ *
+ * Purpose: Returns <TRUE> if <sqfp> can be rewound (positioned
+ * to an offset of zero), in order to read it a second
+ * time.
+ */
+int
+esl_sqfile_IsRewindable(const ESL_SQFILE *sqfp)
+{
+ return sqfp->is_rewindable(sqfp);
+}
+
+/* Function: esl_sqio_IsAlignment()
+ * Synopsis: Return TRUE for alignment file format codes.
+ *
+ * Purpose: Returns TRUE if <fmt> is an alignment file
+ * format code; else returns FALSE.
+ *
+ * This function only checks the convention
+ * that <fmt> codes $<$100 are unaligned formats,
+ * and $\geq$100 are aligned formats. It does
+ * not check that <fmt> is a recognized format
+ * code.
+ */
+int
+esl_sqio_IsAlignment(int fmt)
+{
+ return (fmt >= 100 ? TRUE : FALSE);
+}
+
+
+/* Function: esl_sqio_EncodeFormat()
+ * Synopsis: Convert a string to an internal format code.
+ *
+ * Purpose: Given <fmtstring>, return format code. For example, if
+ * <fmtstring> is "fasta", returns <eslSQFILE_FASTA>. Returns
+ * <eslSQFILE_UNKNOWN> if <fmtstring> doesn't exactly match a
+ * known format.
+ *
+ * Matching is case insensitive; fasta, FASTA, and FastA
+ * all return <eslSQFILE_FASTA>, for example.
+ *
+ * When augmented by msa, then alignment file formats
+ * are recognized in addition to unaligned file formats.
+ */
+int
+esl_sqio_EncodeFormat(char *fmtstring)
+{
+ if (strcasecmp(fmtstring, "fasta") == 0) return eslSQFILE_FASTA;
+ if (strcasecmp(fmtstring, "embl") == 0) return eslSQFILE_EMBL;
+ if (strcasecmp(fmtstring, "genbank") == 0) return eslSQFILE_GENBANK;
+ if (strcasecmp(fmtstring, "ddbj") == 0) return eslSQFILE_DDBJ;
+ if (strcasecmp(fmtstring, "uniprot") == 0) return eslSQFILE_UNIPROT;
+ if (strcasecmp(fmtstring, "daemon") == 0) return eslSQFILE_DAEMON;
+ if (strcasecmp(fmtstring, "hmmpgmd") == 0) return eslSQFILE_HMMPGMD;
+ if (strcasecmp(fmtstring, "fmindex") == 0) return eslSQFILE_FMINDEX;
+
+
+#ifdef eslAUGMENT_NCBI
+ if (strcasecmp(fmtstring, "ncbi") == 0) return eslSQFILE_NCBI;
+#endif
+#ifdef eslAUGMENT_MSA
+ return esl_msafile_EncodeFormat(fmtstring);
+#endif
+ return eslSQFILE_UNKNOWN;
+}
+
+/* Function: esl_sqio_DecodeFormat()
+ * Synopsis: Returns descriptive string for file format code.
+ *
+ * Purpose: Given a format code <fmt>, returns a string label for
+ * that format. For example, if <fmt> is <eslSQFILE_FASTA>,
+ * returns "FASTA".
+ *
+ * When augmented by msa, then alignment file format codes
+ * are recognized in addition to unaligned file format codes.
+ */
+char *
+esl_sqio_DecodeFormat(int fmt)
+{
+#ifdef eslAUGMENT_MSA
+ if (esl_sqio_IsAlignment(fmt)) return esl_msafile_DecodeFormat(fmt);
+#endif
+
+ switch (fmt) {
+ case eslSQFILE_UNKNOWN: return "unknown";
+ case eslSQFILE_FASTA: return "FASTA";
+ case eslSQFILE_EMBL: return "EMBL";
+ case eslSQFILE_GENBANK: return "GenBank";
+ case eslSQFILE_DDBJ: return "DDBJ";
+ case eslSQFILE_UNIPROT: return "UniProt";
+ case eslSQFILE_DAEMON: return "daemon";
+ case eslSQFILE_HMMPGMD: return "hmmpgmd";
+#ifdef eslAUGMENT_NCBI
+ case eslSQFILE_NCBI: return "NCBI";
+#endif
+ default: break;
+ }
+ esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "no such sqio format code %d", fmt);
+ return NULL;
+}
+
+
+/* Function: esl_sqfile_Position()
+ * Synopsis: Reposition an open sequence file to an offset.
+ *
+ * Purpose: Reposition an open <sqfp> to offset <offset>.
+ * <offset> would usually be the first byte of a
+ * desired sequence record.
+ *
+ * Only normal sequence files can be positioned to a
+ * nonzero offset. If <sqfp> corresponds to a standard
+ * input stream or gzip -dc stream, it may not be
+ * repositioned. If <sqfp> corresponds to a multiple
+ * sequence alignment file, the only legal <offset>
+ * is 0, to rewind the file to the beginning and
+ * be able to read the entire thing again.
+ *
+ * After <esl_sqfile_Position()> is called on a nonzero
+ * <offset>, and other bookkeeping information is unknown.
+ * If caller knows it, it should set it explicitly.
+ *
+ * See the SSI module for manipulating offsets and indices.
+ *
+ * Returns: <eslOK> on success;
+ * <eslEOF> if no data can be read from this position.
+ *
+ * Throws: <eslESYS> if the fseeko() or fread() call fails.
+ * <eslEMEM> on (re-)allocation failure.
+ * <eslEINVAL> if the <sqfp> is not positionable.
+ * <eslENOTFOUND> if in trying to rewind an alignment file
+ * by closing and reopening it, the open fails.
+ * On errors, the state of <sqfp> is indeterminate, and
+ * it should not be used again.
+ */
+int
+esl_sqfile_Position(ESL_SQFILE *sqfp, off_t offset)
+{
+ return sqfp->position(sqfp, offset);
+}
+
+/* Function: esl_sqio_Ignore()
+ * Synopsis: Sets the input map to ignore one or more input characters.
+ *
+ * Purpose: Set the input map of the open <sqfp> to allow
+ * the characters in the string <ignoredchars> to appear
+ * in input sequences. These characters will be ignored.
+ *
+ * For example, an application might want to ignore '*'
+ * characters in its sequence input, because some translated
+ * peptide files use '*' to indicate stop codons.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_sqio_Ignore(ESL_SQFILE *sqfp, const char *ignoredchars)
+{
+ int i;
+ for (i = 0; ignoredchars[i] != '\0'; i++)
+ sqfp->inmap[(int) ignoredchars[i]] = eslDSQ_IGNORED;
+ return eslOK;
+}
+
+/* Function: esl_sqio_AcceptAs()
+ * Synopsis: Map a list of additional characters.
+ *
+ * Purpose: Set the input map of the open <sqfp> to allow the
+ * characters in the string <xchars> to appear in
+ * input sequences. These characters will all be
+ * mapped to the character <readas> (or, for digital
+ * sequence input, to the digitized representation
+ * of the text character <readas> in the <sqfp>'s
+ * digital alphabet).
+ *
+ * For example, an application might want to read
+ * '*' as 'X' when reading translated peptide files
+ * that use '*' to indicate a stop codon.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_sqio_AcceptAs(ESL_SQFILE *sqfp, char *xchars, char readas)
+{
+ int i;
+
+#ifdef eslAUGMENT_ALPHABET
+ if (sqfp->do_digital)
+ {
+ for (i = 0; xchars[i] != '\0'; i++)
+ sqfp->inmap[(int) xchars[i]] = esl_abc_DigitizeSymbol(sqfp->abc, readas);
+ }
+#endif
+ if (! sqfp->do_digital)
+ {
+ for (i = 0; xchars[i] != '\0'; i++)
+ sqfp->inmap[(int) xchars[i]] = readas;
+ }
+ return eslOK;
+
+}
+/*--------------- end, miscellaneous routines -------------------*/
+
/*****************************************************************
- *# 5. Sequence/subsequence fetching, random access [with <ssi>]
+ *# 6. Sequence/subsequence fetching, random access [with <ssi>]
*****************************************************************/
-#ifdef eslAUGMENT_SSI
+#ifdef eslAUGMENT_SSI
/* Function: esl_sqfile_OpenSSI()
* Synopsis: Opens an SSI index associated with a sequence file.
*
@@ -1253,123 +1063,326 @@ esl_sqio_FetchInfo(ESL_SQFILE *sqfp, const char *key, ESL_SQ *sq)
}
-/* Function: esl_sqio_FetchSubseq()
- * Synopsis: Fetch a subsequence, using SSI indexing.
- *
- * Purpose: Fetch subsequence <start..end> from a sequence named (or
- * accessioned) <source>, in the repositionable, open sequence file <sqfp>.
- * The open <sqfp> must have an SSI index. Put the
- * subsequence in <sq>.
- *
- * As a special case, if <end> is 0, the subsequence is
- * fetched all the way to the end, so you don't need to
- * look up the sequence length <L> to fetch a suffix.
- *
- * The caller may want to rename/reaccession/reannotate the
- * subsequence. Upon successful return, <sq->name> is set
- * to <source/start-end>, and <sq->source> is set to
- * <source> The accession and description <sq->acc> and
- * <sq->desc> are set to the accession and description of
- * the source sequence.
- *
- * Returns: <eslOK> on success.
- * <eslEINVAL> if no SSI index is present, or if <sqfp> can't
- * be repositioned.
- * <eslENOTFOUND> if <source> isn't found in the file.
- * <eslEFORMAT> if either the index file or the sequence file
- * can't be parsed, because of unexpected format issues.
- * <eslERANGE> if the <start..end> coords don't lie entirely
- * within the <source> sequence.
- *
- * Throws: <eslEMEM> on allocation errors.
- */
-int
-esl_sqio_FetchSubseq(ESL_SQFILE *sqfp, const char *source, int64_t start, int64_t end, ESL_SQ *sq)
-{
- return sqfp->fetch_subseq(sqfp, source, start, end, sq);
-}
-#endif /*eslAUGMENT_SSI*/
-/*------------- end, random sequence access with SSI -------------------*/
+/* Function: esl_sqio_FetchSubseq()
+ * Synopsis: Fetch a subsequence, using SSI indexing.
+ *
+ * Purpose: Fetch subsequence <start..end> from a sequence named (or
+ * accessioned) <source>, in the repositionable, open sequence file <sqfp>.
+ * The open <sqfp> must have an SSI index. Put the
+ * subsequence in <sq>.
+ *
+ * As a special case, if <end> is 0, the subsequence is
+ * fetched all the way to the end, so you don't need to
+ * look up the sequence length <L> to fetch a suffix.
+ *
+ * The caller may want to rename/reaccession/reannotate the
+ * subsequence. Upon successful return, <sq->name> is set
+ * to <source/start-end>, and <sq->source> is set to
+ * <source> The accession and description <sq->acc> and
+ * <sq->desc> are set to the accession and description of
+ * the source sequence.
+ *
+ * Returns: <eslOK> on success.
+ * <eslEINVAL> if no SSI index is present, or if <sqfp> can't
+ * be repositioned.
+ * <eslENOTFOUND> if <source> isn't found in the file.
+ * <eslEFORMAT> if either the index file or the sequence file
+ * can't be parsed, because of unexpected format issues.
+ * <eslERANGE> if the <start..end> coords don't lie entirely
+ * within the <source> sequence.
+ *
+ * Throws: <eslEMEM> on allocation errors.
+ */
+int
+esl_sqio_FetchSubseq(ESL_SQFILE *sqfp, const char *source, int64_t start, int64_t end, ESL_SQ *sq)
+{
+ return sqfp->fetch_subseq(sqfp, source, start, end, sq);
+}
+#endif /*eslAUGMENT_SSI*/
+/*------------- end, random sequence access with SSI -------------------*/
+
+
+/*****************************************************************
+ *# 7. Sequence database caching.
+ *****************************************************************/
+
+/* Function: esl_sqfile_Cache()
+ * Synopsis: Read a database into memory.
+ *
+ * Purpose: Read an entire database into memory building a cached
+ * structure <ESL_SQCACHE>. The cache structure has basic
+ * information about the database, ie number of sequences
+ * number of residues, etc.
+ *
+ * All sequences <ESL_SQ> are in a memory array <sq_list>.
+ * The number of elements in the list is <seq_count>. The
+ * header pointers, ie name, acc and desc are pointers into
+ * the <header_mem> buffer. All digitized sequences are pointers
+ * into the <residue_mem> buffer.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Returns <eslEFORMAT> if a parse error is encountered in
+ * trying to read the sequence file.
+ *
+ * Returns <eslENODATA> if the file appears to be empty.
+ *
+ * Throws: <eslEMEM> on allocation error;
+ */
+int
+esl_sqfile_Cache(const ESL_ALPHABET *abc, const char *seqfile, int fmt, const char *env, ESL_SQCACHE **ret_sqcache)
+{
+ int status;
+
+ int n;
+
+ uint32_t len;
+ uint32_t max;
+ uint32_t count;
+
+ uint64_t res_size = 1;
+ uint64_t hdr_size = 1;
+
+ ESL_SQFILE *sqfp = NULL;
+
+ ESL_SQ *c = NULL;
+ ESL_SQ *sq = NULL;
+ ESL_SQCACHE *cache = NULL;
+
+ ESL_DSQ *res_ptr = NULL;
+ char *hdr_ptr = NULL;
+
+ /* open the database */
+ status = esl_sqfile_OpenDigital(abc, seqfile, fmt, env, &sqfp);
+ if (status != eslOK) return status;
+
+ /* if we can't rewind the database, stop now. */
+ if (!esl_sqfile_IsRewindable(sqfp)) return eslFAIL;
+
+ /* loop through the database reading all the sequnces */
+ max = 0;
+ count = 0;
+ sq = esl_sq_CreateDigital(abc);
+ while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) {
+ ++count;
+
+ res_size += sq->n + 1;
+ if (sq->n > max) max = sq->n;
+
+ len = strlen(sq->name);
+ if (len > 0) ++len;
+ hdr_size += len;
+
+ len = strlen(sq->acc);
+ if (len > 0) ++len;
+ hdr_size += len;
+
+ len = strlen(sq->desc);
+ if (len > 0) ++len;
+ hdr_size += len;
+
+ esl_sq_Reuse(sq);
+ }
+ if (status != eslEOF) goto ERROR;
+
+ /* now that the database information is know, allocate the memory to
+ * hold the data. different memory blocks will be used to hold the
+ * redisues and header info. the idea is that since the header info,
+ * ie, name, acc, etc is used infrenquently (only when there is a hit)
+ * if some pages need to be swapped out, hopefully it will be the
+ * header pages first leaving the sequences in memory.
+ */
+ ESL_ALLOC(cache, sizeof(ESL_SQCACHE));
+
+ cache->filename = NULL;
+ cache->sq_list = NULL;
+ cache->residue_mem = NULL;
+ cache->header_mem = NULL;
+
+ cache->abc = abc;
+ cache->format = fmt;
+ cache->seq_count = count;
+ cache->res_count = res_size;
+ cache->max_seq = max;
+
+ cache->res_size = res_size + 2;
+ cache->hdr_size = hdr_size;
+
+ ESL_ALLOC(cache->filename, strlen(seqfile) + 1);
+ strcpy(cache->filename, seqfile);
+
+ ESL_ALLOC(cache->sq_list, sizeof(ESL_SQ) * (count + 1));
+
+ /* different memory blocks will be used to hold the residues and header
+ * info. the idea is that since the header info, ie, name, acc, etc.
+ * is used infrenquently (only when there is a hit) if some pages need
+ * to be swapped out, hopefully it will be the header pages first
+ * leaving the sequences in memory.
+ */
+ ESL_ALLOC(cache->residue_mem, res_size + 2);
+ ESL_ALLOC(cache->header_mem, hdr_size);
+
+ hdr_ptr = cache->header_mem;
+ *hdr_ptr = 0;
+
+ res_ptr = cache->residue_mem;
+ *res_ptr = eslDSQ_SENTINEL;
+
+ /* loop through the database filling in the cache */
+ n = 0;
+ esl_sqfile_Position(sqfp, 0);
+ while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) {
+ c = cache->sq_list + n;
+
+ /* if header fields have been defined, copy them to the cache */
+ c->name = hdr_ptr;
+ if (sq->name[0] != 0) {
+ c->name = hdr_ptr + 1;
+ strcpy(c->name, sq->name);
+ hdr_ptr += strlen(sq->name) + 1;
+ }
+
+ c->acc = hdr_ptr;
+ if (sq->acc[0] != 0) {
+ c->acc = hdr_ptr + 1;
+ strcpy(c->acc, sq->acc);
+ hdr_ptr += strlen(sq->acc) + 1;
+ }
+
+ c->desc = hdr_ptr;
+ if (sq->desc[0] != 0) {
+ c->desc = hdr_ptr + 1;
+ strcpy(c->desc, sq->desc);
+ hdr_ptr += strlen(sq->desc) + 1;
+ }
+
+ c->tax_id = sq->tax_id;
+ c->seq = NULL;
+ c->ss = NULL;
+ c->nxr = 0;
+ c->xr_tag = NULL;
+ c->xr = NULL;
+
+ /* copy the digitized sequence */
+ memcpy(res_ptr + 1, sq->dsq + 1, sq->n + 1);
+ c->dsq = res_ptr;
+ c->n = sq->n;
+ res_ptr += sq->n + 1;
+
+ /* Coordinate info */
+ c->start = sq->start;
+ c->end = sq->end;
+ c->C = sq->C;
+ c->W = sq->W;
+ c->L = sq->L;
+
+ c->source = NULL;
+
+ /* allocated lengths */
+ c->nalloc = -1;
+ c->aalloc = -1;
+ c->dalloc = -1;
+ c->salloc = -1;
+ c->srcalloc = -1;
+
+ /* Disk offset bookkeeping */
+ c->idx = n;
+ c->roff = sq->roff;
+ c->hoff = sq->hoff;
+ c->doff = sq->doff;
+ c->eoff = sq->eoff;
+
+ c->abc = abc;
+
+ esl_sq_Reuse(sq);
+ ++n;
+ }
+ if (status != eslEOF) goto ERROR;
+
+ /* add on last empty sequence */
+ c = cache->sq_list + count;
+ *(res_ptr + 1) = eslDSQ_SENTINEL;
+
+ c->name = hdr_ptr;
+ c->acc = hdr_ptr;
+ c->desc = hdr_ptr;
+
+ c->tax_id = -1;
+ c->seq = NULL;
+ c->ss = NULL;
+ c->nxr = 0;
+ c->xr_tag = NULL;
+ c->xr = NULL;
+
+ c->dsq = res_ptr;
+ c->n = 0;
+
+ c->start = 0;
+ c->end = 0;
+ c->C = 0;
+ c->W = 0;
+ c->L = -1;
+ c->source = NULL;
+ c->nalloc = -1;
+ c->aalloc = -1;
+ c->dalloc = -1;
+ c->salloc = -1;
+ c->srcalloc = -1;
-/*****************************************************************
- *# 6. Writing sequences.
- *****************************************************************/
+ c->idx = count;
+ c->roff = -1;
+ c->hoff = -1;
+ c->doff = -1;
+ c->eoff = -1;
-/* Function: esl_sqio_Write()
- * Synopsis: Write a sequence to a file.
- *
- * Purpose: Write sequence <s> to an open FILE <fp> in
- * file format <format>. If <update> is true,
- * set the offsets for sequence <s>.
- *
- * Returns: <eslOK> on success.
- *
- * Throws: <eslEMEM> on allocation error.
- * <eslEWRITE> on system write error, such as filled disk.
- */
-int
-esl_sqio_Write(FILE *fp, ESL_SQ *s, int format, int update)
-{
- int status;
+ c->abc = NULL;
+
+ if (sq != NULL) esl_sq_Destroy(sq);
+ esl_sqfile_Close(sqfp);
-#ifdef eslAUGMENT_MSA
- ESL_MSA *msa;
- if (esl_sqio_IsAlignment(format))
- {
- if ((status = convert_sq_to_msa(s, &msa)) != eslOK) return status;
- status = eslx_msafile_Write(fp, msa, format);
- esl_msa_Destroy(msa);
- return status;
- }
-#endif
+ *ret_sqcache = cache;
- switch (format) {
- case eslSQFILE_FASTA:
- status = esl_sqascii_WriteFasta(fp, s, update);
- break;
- default:
- ESL_EXCEPTION(eslEINCONCEIVABLE, "can't write that format");
- }
- return status;
-}
-/*-------------------- writing sequences -----------------------*/
+ return eslOK;
+
+ERROR:
+ if (sq != NULL) esl_sq_Destroy(sq);
+ esl_sqfile_Close(sqfp);
+ esl_sqfile_Free(cache);
+ return status;
+}
-/* Function: esl_sqio_Parse()
- * Synopsis: Parse a sequence already read into a buffer.
+/* Function: esl_sqfile_Free()
+ * Synopsis: Free a cached database <ESL_SQCACHE>.
*
- * Purpose: Parse the buffer <buf> for a sequence <s> of type
- * <format>. The buffer must contain the entire sequence.
- *
- * Returns: <eslOK> on success.
+ * Purpose: Frees all the memory used to cache the sequence database.
*
- * Throws: <eslEMEM> on allocation error.
- * <eslEFORMAT> on parsing error.
- * <eslEINVAL> on unsupported format.
+ * Returns: none.
*/
-int
-esl_sqio_Parse(char *buf, int size, ESL_SQ *s, int format)
+void
+esl_sqfile_Free(ESL_SQCACHE *sqcache)
{
- int status;
+ if (sqcache == NULL) return;
- switch (format) {
- case eslSQFILE_EMBL:
- case eslSQFILE_UNIPROT:
- case eslSQFILE_GENBANK:
- case eslSQFILE_DDBJ:
- case eslSQFILE_FASTA:
- case eslSQFILE_DAEMON:
- status = esl_sqascii_Parse(buf, size, s, format);
+ if (sqcache->filename != NULL) free(sqcache->filename);
+ if (sqcache->sq_list != NULL) free(sqcache->sq_list);
+ if (sqcache->residue_mem != NULL) free(sqcache->residue_mem);
+ if (sqcache->header_mem != NULL) free(sqcache->header_mem);
- break;
- default:
- ESL_EXCEPTION(eslEINVAL, "can't parse that format");
- }
- return status;
+ sqcache->abc = NULL;
+ sqcache->filename = NULL;
+ sqcache->sq_list = NULL;
+ sqcache->residue_mem = NULL;
+ sqcache->header_mem = NULL;
+
+ free(sqcache);
}
+/*---------------- end, sequence database caching ---------------*/
+
+
@@ -1395,6 +1408,7 @@ static int
convert_sq_to_msa(ESL_SQ *sq, ESL_MSA **ret_msa)
{
ESL_MSA *msa;
+ int x; /* counter for extra-residue markups */
int status;
#ifdef eslAUGMENT_ALPHABET
@@ -1435,6 +1449,27 @@ convert_sq_to_msa(ESL_SQ *sq, ESL_MSA **ret_msa)
if ((status = esl_strdup(sq->ss, -1, &(msa->ss[0]))) != eslOK) goto ERROR;
}
+
+ if (sq->nxr > 0) {
+ msa->ngr = sq->nxr;
+ ESL_ALLOC(msa->gr, sizeof(char **) * msa->ngr);
+ ESL_ALLOC(msa->gr_tag, sizeof(char *) * msa->ngr);
+
+ for (x = 0; x < msa->ngr; x ++) {
+ ESL_ALLOC(msa->gr[x], sizeof(char *));
+ ESL_ALLOC(msa->gr_tag[x], sizeof(char));
+
+#ifdef eslAUGMENT_ALPHABET
+ if (sq->dsq != NULL) { /* sq->xr is 1..L in digital mode; but msa->gr is always 0..L-1 */
+ if ((status = esl_strdup(sq->xr[x]+1, -1, &(msa->gr[x][0]))) != eslOK) goto ERROR;
+ } else
+#endif
+ if ((status = esl_strdup(sq->xr[x], -1, &(msa->gr[x][0]))) != eslOK) goto ERROR;
+
+ if ((status = esl_strdup(sq->xr_tag[x], -1, &(msa->gr_tag[x]))) != eslOK) goto ERROR;
+ }
+ }
+
msa->alen = sq->n;
msa->nseq = 1;
*ret_msa = msa;
@@ -2233,10 +2268,58 @@ main(int argc, char **argv)
/*****************************************************************
*# 12. Examples
*****************************************************************/
-#ifdef eslSQIO_EXAMPLE
-/*::cexcerpt::sqio_example::begin::*/
-/* compile: gcc -g -Wall -I. -o sqio_example -DeslSQIO_EXAMPLE esl_sqio.c esl_sq.c easel.c
- * run: ./example <FASTA file>
+/* The last example in a file is always the most useful example;
+ * so you can M-> to it immediately.
+ * example3 = using esl_sqio_Parse()
+ * example2 = simplest, text mode
+ * example = standard idiom for digital seqfile reading
+ */
+
+
+#ifdef eslSQIO_EXAMPLE3
+/*::cexcerpt::sqio_example_parse::begin::*/
+/* Example of using esl_sqio_Parse() to parse a buffer
+ * cc -g -Wall -I. -L. -o esl_sqio_example3 -DeslSQIO_EXAMPLE3 esl_sqio.c -leasel -lm
+ * ./esl_sqio_example3
+ */
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_sq.h"
+#include "esl_sqio.h"
+
+int
+main(void)
+{
+ ESL_ALPHABET *abc = NULL;
+ ESL_SQ *sq = NULL;
+ int format = eslSQFILE_FASTA;
+ int alphatype = eslAMINO;
+ int status;
+
+ char *test = ">12345 TEST Test fasta buffer\n"
+ "ARVAPVALPSACAPAGTQCLISGWGNTLSNGVNNPDLLQCVDAPVLSQADCEAAYPGEIT\n"
+ "SSMICVGFLEGGKDSCQGDSGGPVVCNGQLQGIVSWGYGCALPDNPGVYTKVCNFVGWIQ\n"
+ "DTIAAN";
+
+ abc = esl_alphabet_Create(alphatype);
+ sq = esl_sq_CreateDigital(abc);
+
+ status = esl_sqio_Parse(test, strlen(test), sq, format);
+ if (status == eslEFORMAT) esl_fatal("Parse failed, invalid format");
+ else if (status != eslOK) esl_fatal("Unexpected error %d", status);
+
+ esl_sq_Destroy(sq);
+ esl_alphabet_Destroy(abc);
+ return 0;
+}
+/*::cexcerpt::sqio_example_parse::end::*/
+#endif /*eslSQIO_EXAMPLE3*/
+
+
+#ifdef eslSQIO_EXAMPLE2
+/*::cexcerpt::sqio_example_text::begin::*/
+/* cc -g -Wall -I. -L. -o esl_sqio_example2 -DeslSQIO_EXAMPLE2 esl_sqio.c -leasel -lm
+ * ./esl_sqio_example2 <FASTA file>
*/
#include "easel.h"
#include "esl_sq.h"
@@ -2247,7 +2330,7 @@ main(int argc, char **argv)
{
ESL_SQ *sq = esl_sq_Create();
ESL_SQFILE *sqfp;
- int format = eslSQFILE_UNKNOWN;
+ int format = eslSQFILE_FASTA;
char *seqfile = argv[1];
int status;
@@ -2258,28 +2341,27 @@ main(int argc, char **argv)
while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
{ /* use each sequence for whatever you want */
- printf("Read %s: length %ld\n", sq->name, (long) sq->L);
+ printf("%-40s length: %8ld desclen: %lu\n", sq->name, (long) sq->L, strlen(sq->desc));
esl_sq_Reuse(sq);
}
- if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s - %s\n",
- sqfp->filename, sqfp->get_error(sqfp));
- else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
- status, sqfp->filename);
+ if (status == eslEFORMAT) esl_fatal("Parse failed\n %s", esl_sqfile_GetErrorBuf(sqfp));
+ else if (status != eslEOF) esl_fatal("Unexpected read error %d", status);
esl_sq_Destroy(sq);
esl_sqfile_Close(sqfp);
return 0;
}
-/*::cexcerpt::sqio_example::end::*/
-#endif /*eslSQIO_EXAMPLE*/
+/*::cexcerpt::sqio_example_text::end::*/
+#endif /*eslSQIO_EXAMPLE2*/
-/* Example 2 shows how to open a file digitally, while guessing its
- * file format and its alphabet. (This is a standard idiom.)
- */
-#ifdef eslSQIO_EXAMPLE2
-/*::cexcerpt::sqio_example2::begin::*/
-/* compile: gcc -g -Wall -I. -L. -o sqio_example2 -DeslSQIO_EXAMPLE2 esl_sqio.c -leasel -lm
- * run: ./example <sequence file>
+
+
+
+#ifdef eslSQIO_EXAMPLE
+/*::cexcerpt::sqio_example_digital::begin::*/
+/* Example showing standard idiom for opening sequence file, digital mode.
+ * cc -g -Wall -I. -L. -o esl_sqio_example -DeslSQIO_EXAMPLE esl_sqio.c -leasel -lm
+ * ./esl_sqio_example <sequence file>
*/
#include "easel.h"
#include "esl_alphabet.h"
@@ -2288,31 +2370,37 @@ main(int argc, char **argv)
#include "esl_sqio.h"
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", 0 },
- { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use DNA alphabet", 0 },
- { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use RNA alphabet", 0 },
- { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use protein alphabet", 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+ /* name type default env range toggles reqs incomp help docgroup */
+ { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help", 0 },
+ { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use DNA alphabet", 0 },
+ { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use RNA alphabet", 0 },
+ { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use amino alphabet", 0 },
+ { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "set input format", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
static char usage[] = "[-options] <seqfile>";
-static char banner[] = "example for the sqio module";
+static char banner[] = "example of reading in standard sqio idiom, digital mode";
int
main(int argc, char **argv)
{
ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 1, argc, argv, banner, usage);
+ char *seqfile = esl_opt_GetArg(go, 1);
ESL_ALPHABET *abc = NULL;
ESL_SQ *sq = NULL;
ESL_SQFILE *sqfp = NULL;
- int format = eslSQFILE_UNKNOWN;
+ int infmt = eslSQFILE_UNKNOWN;
int alphatype = eslUNKNOWN;
- char *seqfile = esl_opt_GetArg(go, 1);
int status;
- status = esl_sqfile_Open(seqfile, format, NULL, &sqfp);
+ if (esl_opt_IsOn(go, "--informat")) {
+ if ((infmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat")))==eslSQFILE_UNKNOWN)
+ esl_fatal("%s is not a valid input sequence file format for --informat");
+ }
+
+ status = esl_sqfile_Open(seqfile, infmt, NULL, &sqfp);
if (status == eslENOTFOUND) esl_fatal("No such file.");
- else if (status == eslEFORMAT) esl_fatal("Format unrecognized.");
+ else if (status == eslEFORMAT) esl_fatal("Format couldn't be determined.");
else if (status != eslOK) esl_fatal("Open failed, code %d.", status);
if (esl_opt_GetBoolean(go, "--rna")) alphatype = eslRNA;
@@ -2320,25 +2408,23 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--amino")) alphatype = eslAMINO;
else {
status = esl_sqfile_GuessAlphabet(sqfp, &alphatype);
- if (status == eslENOALPHABET) esl_fatal("Couldn't guess alphabet from first sequence in %s", seqfile);
- else if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n%s\n",
- seqfile, sqfp->get_error(sqfp));
- else if (status == eslENODATA) esl_fatal("Sequence file %s contains no data?", seqfile);
- else if (status != eslOK) esl_fatal("Failed to guess alphabet (error code %d)\n", status);
+ if (status == eslENOALPHABET) esl_fatal("Couldn't guess alphabet");
+ else if (status == eslEFORMAT) esl_fatal("Parse failed\n %s",
+ esl_sqfile_GetErrorBuf(sqfp));
+ else if (status == eslENODATA) esl_fatal("Sequence file empty?");
+ else if (status != eslOK) esl_fatal("Unexpected error guessing alphabet");
}
abc = esl_alphabet_Create(alphatype);
sq = esl_sq_CreateDigital(abc);
esl_sqfile_SetDigital(sqfp, abc);
while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
- { /* use each sequence for whatever you want */
- printf("Read %s: length %ld\n", sq->name, (long) sq->L);
- esl_sq_Reuse(sq);
- }
- if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n%s\n",
- sqfp->filename, sqfp->get_error(sqfp));
- else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
- status, sqfp->filename);
+ {
+ esl_sqio_Write(stdout, sq, eslSQFILE_FASTA, /*update=*/FALSE);
+ esl_sq_Reuse(sq);
+ }
+ if (status == eslEFORMAT) esl_fatal("Parse failed\n %s", esl_sqfile_GetErrorBuf(sqfp));
+ else if (status != eslEOF) esl_fatal("Unexpected error %d in reading", status);
esl_sqfile_Close(sqfp);
esl_sq_Destroy(sq);
@@ -2346,58 +2432,7 @@ main(int argc, char **argv)
esl_getopts_Destroy(go);
return 0;
}
-/*::cexcerpt::sqio_example2::end::*/
-#endif /*eslSQIO_EXAMPLE2*/
-
-#ifdef eslSQIO_EXAMPLE3
-/*::cexcerpt::sqio_example3::begin::*/
-/* compile: gcc -g -Wall -I. -L. -o esl_sqio_example3 -DeslSQIO_EXAMPLE3 esl_sqio.c -leasel -lm
- * run: ./esl_sqio_example3
- */
-#include "easel.h"
-#include "esl_alphabet.h"
-#include "esl_sq.h"
-#include "esl_sqio.h"
-
-int
-main(void)
-{
- ESL_ALPHABET *abc = NULL;
- ESL_SQ *sq = NULL;
- int format = eslSQFILE_FASTA;
- int alphatype = eslAMINO;
- int status;
-
- char *test = ">12345 TEST Test fasta buffer\n"
- "ARVAPVALPSACAPAGTQCLISGWGNTLSNGVNNPDLLQCVDAPVLSQADCEAAYPGEIT\n"
- "SSMICVGFLEGGKDSCQGDSGGPVVCNGQLQGIVSWGYGCALPDNPGVYTKVCNFVGWIQ\n"
- "DTIAAN";
-
- abc = esl_alphabet_Create(alphatype);
- sq = esl_sq_CreateDigital(abc);
-
- status = esl_sqio_Parse(test, strlen(test), sq, format);
- if (status == eslEFORMAT) esl_fatal("Parse failed, invalid format");
- else if (status != eslOK) esl_fatal("Unexpected error %d", status);
-
- esl_sq_Destroy(sq);
- esl_alphabet_Destroy(abc);
- return 0;
-}
-/*::cexcerpt::sqio_example3::end::*/
-#endif /*eslSQIO_EXAMPLE3*/
-
+/*::cexcerpt::sqio_example_digital::end::*/
+#endif /*eslSQIO_EXAMPLE*/
-/*****************************************************************
- * Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl_sqio.c 833 2012-12-07 18:57:36Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sqio.c $
- *****************************************************************/
diff --git a/easel/esl_sqio.h b/easel/esl_sqio.h
index 1de2271..6f27ac0 100644
--- a/easel/esl_sqio.h
+++ b/easel/esl_sqio.h
@@ -1,7 +1,11 @@
-/* Unaligned sequence file i/o.
+/* sqio: unaligned sequence file i/o.
*
- * SVN $Id: esl_sqio.h 723 2011-09-25 14:37:08Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sqio.h $
+ * To do:
+ * :: esl_sqio_* vs. esl_sqfile_* prefixing is inconsistent,
+ * for historical reasons. Fix.
+ *
+ * :: Write tests for bad format detection, making sure that
+ * linenumber report is correct.
*/
#ifndef eslSQIO_INCLUDED
#define eslSQIO_INCLUDED
@@ -65,7 +69,7 @@ typedef struct esl_sqio_s {
int (*read_window) (struct esl_sqio_s *sqfp, int C, int W, ESL_SQ *sq);
int (*echo) (struct esl_sqio_s *sqfp, const ESL_SQ *sq, FILE *ofp);
- int (*read_block) (struct esl_sqio_s *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target);
+ int (*read_block) (struct esl_sqio_s *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target);
#ifdef eslAUGMENT_SSI
int (*open_ssi) (struct esl_sqio_s *sqfp, const char *ssifile_hint);
@@ -115,15 +119,15 @@ typedef struct esl_sqcache_s {
* - >100 is reserved for msa, for aligned formats
*/
#define eslSQFILE_UNKNOWN 0
-#define eslSQFILE_FASTA 1
-#define eslSQFILE_EMBL 2 /* EMBL/Swiss-Prot/TrEMBL */
-#define eslSQFILE_GENBANK 3 /* GenBank */
-#define eslSQFILE_DDBJ 4 /* DDBJ (currently passed to GenBank parser */
-#define eslSQFILE_UNIPROT 5 /* UniProt (passed to EMBL parser) */
-#define eslSQFILE_NCBI 6 /* NCBI (blast db) */
-#define eslSQFILE_DAEMON 7 /* Farrar's "daemon" format for hmmpgmd queries: fasta with // end-of-record terminator */
-#define eslSQFILE_HMMPGMD 8 /* Farrar's hmmpgmd database format: fasta w/ extra header line starting in '#' */
-#define eslSQFILE_FMINDEX 9 /* the pressed FM-index format used for the FM-index-based MSV acceleration */
+#define eslSQFILE_FASTA 1 // FASTA format
+#define eslSQFILE_EMBL 2 // EMBL DNA sequence
+#define eslSQFILE_GENBANK 3 // Genbank DNA sequence
+#define eslSQFILE_DDBJ 4 // DDBJ (currently identical to GenBank parser)
+#define eslSQFILE_UNIPROT 5 // UniProt (currently identical to EMBL parser)
+#define eslSQFILE_NCBI 6 // NCBI blast db, v4, single file
+#define eslSQFILE_DAEMON 7 // Farrar format, hmmpgmd queries: fasta + // terminator
+#define eslSQFILE_HMMPGMD 8 // Farrar hmmpgmd database format: fasta + # header
+#define eslSQFILE_FMINDEX 9 // Pressed FM-index format used in HMMER
/*::cexcerpt::sq_sqio_format::end::*/
@@ -133,32 +137,32 @@ typedef struct esl_sqcache_s {
#define eslREADBUFSIZE 4096
extern int esl_sqfile_Open(const char *seqfile, int fmt, const char *env, ESL_SQFILE **ret_sqfp);
-extern int esl_sqfile_Position(ESL_SQFILE *sqfp, off_t offset);
extern void esl_sqfile_Close(ESL_SQFILE *sqfp);
#ifdef eslAUGMENT_ALPHABET
extern int esl_sqfile_OpenDigital(const ESL_ALPHABET *abc, const char *filename, int format, const char *env, ESL_SQFILE **ret_sqfp);
extern int esl_sqfile_SetDigital(ESL_SQFILE *sqfp, const ESL_ALPHABET *abc);
extern int esl_sqfile_GuessAlphabet(ESL_SQFILE *sqfp, int *ret_type);
-
-extern int esl_sqfile_Cache(const ESL_ALPHABET *abc, const char *seqfile, int fmt, const char *env, ESL_SQCACHE **ret_sqcache);
-extern void esl_sqfile_Free(ESL_SQCACHE *sqcache);
#endif
-const char *esl_sqfile_GetErrorBuf(const ESL_SQFILE *sqfp);
-extern int esl_sqfile_IsRewindable(const ESL_SQFILE *sqfp);
-extern int esl_sqio_Ignore(ESL_SQFILE *sqfp, const char *ignoredchars);
-extern int esl_sqio_AcceptAs(ESL_SQFILE *sqfp, char *xchars, char readas);
-extern int esl_sqio_EncodeFormat(char *fmtstring);
-extern char *esl_sqio_DecodeFormat(int fmt);
-extern int esl_sqio_IsAlignment(int fmt);
-
extern int esl_sqio_Read (ESL_SQFILE *sqfp, ESL_SQ *sq);
extern int esl_sqio_ReadInfo (ESL_SQFILE *sqfp, ESL_SQ *sq);
extern int esl_sqio_ReadWindow (ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq);
extern int esl_sqio_ReadSequence(ESL_SQFILE *sqfp, ESL_SQ *sq);
+extern int esl_sqio_ReadBlock (ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target);
+extern int esl_sqio_Parse (char *buffer, int size, ESL_SQ *s, int format);
+
+extern int esl_sqio_Write (FILE *fp, ESL_SQ *s, int format, int update);
extern int esl_sqio_Echo (ESL_SQFILE *sqfp, const ESL_SQ *sq, FILE *ofp);
-extern int esl_sqio_ReadBlock (ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target);
+
+const char *esl_sqfile_GetErrorBuf(const ESL_SQFILE *sqfp);
+extern int esl_sqfile_IsRewindable(const ESL_SQFILE *sqfp);
+extern int esl_sqio_IsAlignment(int fmt);
+extern int esl_sqio_EncodeFormat(char *fmtstring);
+extern char *esl_sqio_DecodeFormat(int fmt);
+extern int esl_sqfile_Position(ESL_SQFILE *sqfp, off_t offset);
+extern int esl_sqio_Ignore(ESL_SQFILE *sqfp, const char *ignoredchars);
+extern int esl_sqio_AcceptAs(ESL_SQFILE *sqfp, char *xchars, char readas);
#ifdef eslAUGMENT_SSI
extern int esl_sqfile_OpenSSI (ESL_SQFILE *sqfp, const char *ssifile_hint);
@@ -170,16 +174,22 @@ extern int esl_sqio_FetchInfo (ESL_SQFILE *sqfp, const char *key, ESL_SQ *sq)
extern int esl_sqio_FetchSubseq(ESL_SQFILE *sqfp, const char *source, int64_t start, int64_t end, ESL_SQ *sq);
#endif
-extern int esl_sqio_Write(FILE *fp, ESL_SQ *s, int format, int update);
-extern int esl_sqio_Parse(char *buffer, int size, ESL_SQ *s, int format);
+extern int esl_sqfile_Cache(const ESL_ALPHABET *abc, const char *seqfile, int fmt, const char *env, ESL_SQCACHE **ret_sqcache);
+extern void esl_sqfile_Free(ESL_SQCACHE *sqcache);
+
+
+
+
+
+
#endif /*eslSQIO_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_sqio.tex b/easel/esl_sqio.tex
index dc60640..d3fb3d3 100644
--- a/easel/esl_sqio.tex
+++ b/easel/esl_sqio.tex
@@ -1,67 +1,42 @@
-The \eslmod{sqio} module contains routines for input from unaligned
-sequence data files, such as FASTA files.
+The \eslmod{sqio} module handles input from unaligned sequence data
+files, such as FASTA files.
-Several different common sequence file formats are understood, and can
-be automatically recognized.
-
-Sequences can be read sequentially from multiple sequence alignment
-files, as if the MSA file was an unaligned sequence file, when the
-module is augmented with the \eslmod{msa} module.
+\eslmod{sqio} can automatically recognize and parse several different
+file formats, including FASTA, UniProt, Genbank, DDBJ, and EMBL.
+Additionally, it can read individual unaligned sequences from multiple
+alignment files in several different formats, including Stockholm,
+Clustal, aligned FASTA, PSI-BLAST, and Phylip.\footnote{Sequential
+ input from MSA files requires either the full Easel library or
+ augmentation with \eslmod{msafile}.}
Sequences can be read from normal files, directly from the
\ccode{stdin} pipe, or from \ccode{gzip}-compressed files.
-Sequences can be read from NCBI BLAST database files.
-
Sequence files can be automatically looked for in a list of one or
more database directories, specified by an environment variable (such
-as \ccode{BLASTDB}).
+as \ccode{HMMERDB}).
Table~\ref{tbl:sqio_api} lists the functions in the \eslmod{sqio} API.
The module uses an \ccode{ESL\_SQFILE} object which works much like an
ANSI C \ccode{FILE}, maintaining information for an open sequence file
while it's being read.
-% Table generated by autodoc -t esl_sqio.c (so don't edit here, edit esl_sqio.c:)
-\begin{table}[hbp]
-\begin{center}
-{\small
-\begin{tabular}{|ll|}\hline
-\apisubhead{The \ccode{ESL\_SQFILE} object.}\\
-\hyperlink{func:esl_sqfile_Open()}{\ccode{esl\_sqfile\_Open()}} & Description.\\
-\hyperlink{func:esl_sqfile_Close()}{\ccode{esl\_sqfile\_Close()}} & Description.\\
-\apisubhead{Sequence input/output}\\
-\hyperlink{func:esl_sqio_Read()}{\ccode{esl\_sqio\_Read()}} & Description.\\
-\hyperlink{func:esl_sqio_Write()}{\ccode{esl\_sqio\_Write()}} & Description.\\
-\hyperlink{func:esl_sqio_Echo()}{\ccode{esl\_sqio\_Echo()}} & Echo the next sequence record onto output stream\\
-\hyperlink{func:esl_sqio_WhatFormat()}{\ccode{esl\_sqio\_WhatFormat()}} & Description.\\
-\hyperlink{func:esl_sqio_EncodeFormat()}{\ccode{esl\_sqio\_EncodeFormat()}} & Description.\\
-\hyperlink{func:esl_sqio_DecodeFormat()}{\ccode{esl\_sqio\_DecodeFormat()}} & Returns descriptive string for file format code.\\
-\hyperlink{func:esl_sqio_IsAlignment()}{\ccode{esl\_sqio\_IsAlignment()}} & Description.\\
-\hyperlink{func:esl_sqio_Position()}{\ccode{esl\_sqio\_Position()}} & Description.\\
-\hyperlink{func:esl_sqio_Rewind()}{\ccode{esl\_sqio\_Rewind()}} & Description.\\
-\hyperlink{func:esl_sqfile_GuessAlphabet()}{\ccode{esl\_sqfile\_GuessAlphabet()}} & Guess the alphabet of an open \ccode{ESL\_SQFILE}\\
-\apisubhead{Fast random access in a seqfile [with SSI augmentation]}\\
-\hyperlink{func:esl_sqfile_OpenSSI()}{\ccode{esl\_sqfile\_OpenSSI()}} & Opens an SSI index associated with a seq file.\\
-\hyperlink{func:esl_sqfile_PositionByKey()}{\ccode{esl\_sqfile\_PositionByKey()}} & Use SSI to reposition seq file to a particular sequence.\\
-\hyperlink{func:esl_sqfile_PositionByNumber()}{\ccode{esl\_sqfile\_PositionByNumber()}} & Use SSI to reposition by sequence number\\
-\hline
-\end{tabular}
-}
-\end{center}
-\caption{The \eslmod{sqio} API.}
-\label{tbl:sqio_api}
-\end{table}
+% API table is auto generated by the Makefile,
+% using autodoc -t esl_sqio.c
+%
+\input{apitables/esl_sqio_api}
+
+
\subsection{Example: reading sequences from a file}
-Figure~\ref{fig:sqio_example} shows a program that opens a file, reads
+Figure~\ref{fig:sqio_example_text} shows a program that opens a file, reads
sequences from it one at a time, then closes the file.
\begin{figure}
-\input{cexcerpts/sqio_example}
+\input{cexcerpts/sqio_example_text}
\caption{Example of reading sequences from a file.}
-\label{fig:sqio_example}
+\label{fig:sqio_example_text}
\end{figure}
A FASTA file named \ccode{seqfile} is opened for reading by calling
@@ -69,7 +44,7 @@ A FASTA file named \ccode{seqfile} is opened for reading by calling
creates a new \ccode{ESL\_SQFILE} and returns it through the
\ccode{sqfp} pointer. If the \ccode{format} is passed as
\ccode{eslSQFILE\_UNKNOWN}, then the format of the file is
-autodetected; here, we bypass autodetection by asserting that the file
+autodetected. Here, we bypass autodetection by asserting that the file
is in FASTA format by passing a \ccode{eslSQFILE\_FASTA} code. (See
below for a list of valid codes and formats.) The optional \ccode{env}
argument is described below too; here, we're passing \ccode{NULL} and
@@ -78,13 +53,11 @@ not using it.
Several things can go wrong in trying to open a sequence file that are
beyond the control of Easel or your application, so it's important
that you check the return code. \ccode{esl\_sqfile\_Open()} returns
-\ccode{eslENOTFOUND} if the file can't be opened; \ccode{eslEFORMAT}
-if the file is empty, or if autodetection can't determine its format;
-and \ccode{eslEINVAL} if you try to autodetect format on an input
-stream that can't be autodetected (a nonrewindable stream: see below
-for info about reading from \ccode{stdin} and compressed
-files). (Additionally, an internal error might be thrown, which you
-should check for if you installed a nonfatal error handler).
+\ccode{eslENOTFOUND} if the file can't be opened, and
+\ccode{eslEFORMAT} if the file is empty, or if autodetection can't
+determine its format.\footnote{Additionally, internal errors might be
+ thrown, which you should check for if you installed a nonfatal error
+ handler.}
The file is then read one sequence at a time by calling
\ccode{esl\_sq\_Read(sqfp, sq)}. This function returns \ccode{eslOK}
@@ -94,14 +67,14 @@ file, \ccode{esl\_sq\_Read()} returns \ccode{eslEOF}.
If at any point the file does not appear to be in the proper format,
\ccode{esl\_sq\_Read()} returns \ccode{eslEFORMAT}. The application
-must check for this. The API provides a little information about what
-went wrong and where. \ccode{sqfp->filename} is the name of the file
-that we were parsing (not necessarily the same as \ccode{seqfile};
-\ccode{sqfp->filename} can be a full pathname if we used an
-\ccode{env} argument to look for \ccode{seqfile} in installed database
-directories). The function \ccode{esl\_sqfile\_GetErrorBuf} should be
-called to get a pointer to the generated error message. The buffer
- is a brief explanatory message that gets filled in when a
+must check for this. The API can provide a little information about
+what went wrong and where. \ccode{sqfp->filename} is the name of the
+file that we were parsing (not necessarily the same as
+\ccode{seqfile}; \ccode{sqfp->filename} can be a full pathname if we
+used an \ccode{env} argument to look for \ccode{seqfile} in installed
+database directories). The function \ccode{esl\_sqfile\_GetErrorBuf()}
+should be called to get a pointer to the generated error message. The
+buffer is a brief explanatory message that gets filled in when a
\ccode{eslEFORMAT} error occurs.
\footnote{Unlike in the MSA module, you don't get access to the
current line text; some of sqio's parsers use fast block-based
@@ -116,24 +89,68 @@ Finally, to clean up properly, a \ccode{ESL\_SQ} that was created is
destroyed with \ccode{esl\_sq\_Destroy(sq)}, and a \ccode{ESL\_SQFILE}
is closed with \ccode{esl\_sqfile\_Close()}.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Digital sequence input mode}
+
+Most Easel-based programs manipulate sequences in Easel's digital
+sequence format, using \eslmod{alphabet}, as opposed to manipulating
+them as plaintext. The \eslmod{sqio} reader can be used either in text
+mode or digital mode. In text mode, you get the \ccode{sq->seq} field
+of the \ccode{ESL\_SQ}; in digital mode, you get \ccode{sq->dsq}.
+
+To use digital mode, both the \ccode{ESL\_SQFILE} reader and the
+\ccode{ESL\_SQ} sequence object must be set to digital mode. The
+reader, because it has an input map that maps plaintext input
+characters to internal residue codes (plaintext or digital), or
+errors. The sequence object, because it needs to have either its
+\ccode{seq} or \ccode{dsq} field allocated. Both also carry a copy of
+the pointer to the alphabet.
+
+Figure~\ref{fig:sqio_example_digital} shows an example of the standard
+idiom for opening files in digital mode, autoguessing their format and
+alphabet by default, and allowing format and alphabet to be specified
+on the command line.
+
+\begin{figure}
+\input{cexcerpts/sqio_example_digital}
+\caption{Standard idiom for reading sequences in digital mode.}
+\label{fig:sqio_example_digital}
+\end{figure}
+
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Accepted formats}
Accepted unaligned sequence file formats (and their Easel format
-codes) are:
-
-\begin{tabular}{ll}
-\ccode{eslSQFILE\_DDBJ} & DDBJ flat text DNA database format \\
-\ccode{eslSQFILE\_EMBL} & EMBL flat text DNA database format \\
-\ccode{eslSQFILE\_FASTA} & FASTA format \\
-\ccode{eslSQFILE\_GENBANK} & GenBank flat text DNA database format \\
-\ccode{eslSQFILE\_UNIPROT} & UniProt flat text protein database format \\
-\ccode{eslSQFILE\_NCBI} & NCBI BLAST database format version 4 \\
+codes) include:
+
+\begin{tabular}{lll}
+\textbf{name} & \textbf{code} & \textbf{description} \\
+fasta & \ccode{eslSQFILE\_FASTA} & FASTA format \\
+embl & \ccode{eslSQFILE\_EMBL} & EMBL DNA database format \\
+genbank & \ccode{eslSQFILE\_GENBANK} & GenBank DNA database format \\
+ddbj & \ccode{eslSQFILE\_DDBJ} & DDBJ DNA database format \\
+uniprot & \ccode{eslSQFILE\_UNIPROT} & UniProt protein database format \\
\end{tabular}
-Additionally, the code \ccode{eslSQFILE\_UNKNOWN} is recognized. It
-tells \ccode{esl\_sqfile\_Open()} to perform format autodetection.
+The above names, case-insensitive, are what a user uses to specify a
+format on a command line: i.e.\ \ccode{--informat fasta} or
+\ccode{--informat FASTA}.
+
+The codes are what you use as a developer to specify a format to an
+Easel function call.
+
+Additionally, there is a code \ccode{eslSQFILE\_UNKNOWN}. It
+tells \ccode{esl\_sqfile\_Open()} to perform format
+autodetection.\footnote{There are some other formats as well, which we
+ don't advertise because they're less well supported.}
-\subsection{Special input streams: stdin and compressed files}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Reading from stdin and compressed files}
There are two special cases for input files.
@@ -143,74 +160,61 @@ standard input (really, it just associates \ccode{stdin}, which is
always open, with the \ccode{ESL\_SQFILE}).
The module can read compressed sequence files. If the \ccode{seqfile}
-argument to \ccode{esl\_sqfile\_Open()} ends in \ccode{.gz}, the file is
-assumed to be compressed with \ccode{gzip}; instead of opening it
+argument to \ccode{esl\_sqfile\_Open()} ends in \ccode{.gz}, the file
+is assumed to be compressed with \ccode{gzip}; instead of opening it
normally, \ccode{esl\_sqfile\_Open()} opens it as a pipe from
-\ccode{gzip -dc}. Your system must support pipes to use this -
-specifically, it must support the \ccode{popen()} system call (POSIX.2
-compliant operating systems do). The \ccode{configure} script
-automatically checks this at compile-time and defines
-\ccode{HAVE\_POPEN} appropriately. Obviously, the user must also have
-\ccode{gzip} installed and in his PATH.
+\ccode{gzip -dc}. Your system must support pipes to use
+this.\footnote{Specifically, it must support the \ccode{popen()}
+ system call (POSIX.2 compliant operating systems do). The
+ \ccode{configure} script automatically checks this at compile-time
+ and defines \ccode{HAVE\_POPEN} appropriately.} Obviously, the user
+must also have \ccode{gzip} installed and in his PATH.
For both special cases, the catch is that you can't use format
autodetection; you must provide a valid known format code when you
read from stdin or from a compressed file. Pipes are not rewindable,
-and format autodetection relies on a two-pass algorithm: it reads
-partway into the file to determine the format, then rewinds to start
-parsing for real.
-
-\subsection{Augmentations}
-
-The sqio module is optionally augmented by up to two additional
-modules, as follows:
-
-\subsubsection{msa: read unaligned sequences sequentially from an alignment}
-
-If sqio is augmented with the msa module, then the sqio API gains the
-ability to read alignment file formats in addition to unaligned file
-formats. The sqio API remains exactly the same (the caller doesn't
-have to use any msa module functions).
-
-\subsubsection{alphabet: digitized sequences}
+and format autodetection currently relies on a two-pass algorithm: it
+reads partway into the file to determine the format, then rewinds to
+start parsing for real.\footnote{The \eslmod{msafile} module is more
+ advanced. Its parsers are based on the newer \eslmod{buffer} module
+ which provides rewindable input buffers even for stdin and pipes.}
-At present, only placeholders exist in the code for this augmentation.
-The plan is to provide the ability to input sequences directly into
-\ccode{dsq} as pre-digitized sequences.
-\subsubsection{ncbi: read NCBI BLAST databases}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% SRE: commented NCBI section out.
+%% I don't believe that it works, or that it's up to date.
+%% Needs testing.
-If sqio is augmented with the ncbi module, then the sqio API gains the
-ability to read NCBI BLAST database formats in addition to ASCII file
-formats. The sqio API remains exactly the same (the caller doesn't
-have to use any msa module functions).
+%% \subsection{NCBI BLAST database support}
-To open a BLAST database, the format must be supplied. If a format
-of \ccode{eslSQFILE\_UNKNOWN} is specified, only ASCII based format,
-i.e. FASTA, GENBANK, etc. will be opened.
+%% If sqio is augmented with the ncbi module, then the sqio API gains the
+%% ability to read NCBI BLAST database formats in addition to ASCII file
+%% formats. The sqio API remains exactly the same (the caller doesn't
+%% have to use any msa module functions).
-When opening a BLAST database, the file name should not include any
-extensions. If the \ccode{ESL\_ALPHABET} is not specified, Easel
-will first try to open a protein database, followed by a DNA database
-and finally a multi-volume database. The handling of a multi-volume
-database is done through the alias file. The only directive in
-the alias file is the DBLIST line, listing all the database volumes.
+%% To open a BLAST database, the format must be supplied. If a format
+%% of \ccode{eslSQFILE\_UNKNOWN} is specified, only ASCII based format,
+%% i.e. FASTA, GENBANK, etc. will be opened.
+%% When opening a BLAST database, the file name should not include any
+%% extensions. If the \ccode{ESL\_ALPHABET} is not specified, Easel
+%% will first try to open a protein database, followed by a DNA database
+%% and finally a multi-volume database. The handling of a multi-volume
+%% database is done through the alias file. The only directive in
+%% the alias file is the DBLIST line, listing all the database volumes.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Adding a sequence parser}
-The \eslmod{sqio} module is designed to handle multiple sequence
-formats. Parsers for different formats can be plugged into the
-\eslmod{sqio} module without any API changes. This means that
-programs using the Easel library won't need code changes to
-use the new parser.
+New parsers for new formats can be plugged into \eslmod{sqio} without
+any API changes. Existing Easel-based programs don't need code changes
+to use the new parser.
-A new parser will need a format type, a structure for parser
-specific data, API functions and a hook into the
-\ccode{sqfile\_open} function.
+A new parser will need a format type, a structure for parser specific
+data, API functions and a hook into the \ccode{sqfile\_open} function.
The list of formats are defined in \ccode{esl\_sqio.h}. A new
\ccode{\#define} will be added to the existing formats:
@@ -225,17 +229,16 @@ inclusion can be controlled.
\input{cexcerpts/sq_sqio_data}
-Finally, the routine specific function pointers neeed to be
-defined. The functions in \ccode{esl\_sqio.c} in turn call
-these function pointers. The \ccode{esl\_sqfile\_Open} function
-initializes the function pionters to NULL, so if they are not
-set an exception will occur when the function is called. At
-a minimum, the function should be defined to return an
-\ccode{eslEUNIMPLEMENTED}. Below is a map the the function
-pointers to their respective function.
+Finally, a set of parser specific function pointers need to be
+defined. The functions in \ccode{esl\_sqio.c} in turn call these
+function pointers. The \ccode{esl\_sqfile\_Open} function initializes
+the function pointers to NULL, so if they are not set, an exception
+will occur when the function is called. At a minimum, the function
+should be defined to return an \ccode{eslEUNIMPLEMENTED}. Below is a
+map the the function pointers to their respective function.
\begin{tabular}{ll} \\
-Function Pointer & ESL\_SQIO Function \\ \hline
+Function pointer & \eslmod{sqio} function \\ \hline
position & esl\_sqfile\_Position \\
close & esl\_sqfile\_Close \\
set\_digital & esl\_sqfile\_SetDigital \\
diff --git a/easel/esl_sqio_ascii.c b/easel/esl_sqio_ascii.c
index 9465d5b..3e195b4 100644
--- a/easel/esl_sqio_ascii.c
+++ b/easel/esl_sqio_ascii.c
@@ -52,7 +52,7 @@ static int sqascii_Read (ESL_SQFILE *sqfp, ESL_SQ *sq);
static int sqascii_ReadInfo (ESL_SQFILE *sqfp, ESL_SQ *sq);
static int sqascii_ReadSequence (ESL_SQFILE *sqfp, ESL_SQ *sq);
static int sqascii_ReadWindow (ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq);
-static int sqascii_ReadBlock (ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target);
+static int sqascii_ReadBlock (ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target);
static int sqascii_Echo (ESL_SQFILE *sqfp, const ESL_SQ *sq, FILE *ofp);
static int sqascii_IsRewindable (const ESL_SQFILE *sqfp);
@@ -250,7 +250,7 @@ esl_sqascii_Open(char *filename, int format, ESL_SQFILE *sqfp)
* could open a second .gz pipe, but that's ugly; and in any case,
* we can't rewind stdin. Eventually, this will get resolved, by
* having sqio open an ESL_BUFFER, then doing an
- * eslx_msafile_OpenBuffer() if we need to hand control to the
+ * esl_msafile_OpenBuffer() if we need to hand control to the
* msafile module. For now, sqio is already documented to be
* unable to autodetect MSA file formats in stdin or .gz pipes,
* so leave it that way.
@@ -266,7 +266,7 @@ esl_sqascii_Open(char *filename, int format, ESL_SQFILE *sqfp)
#ifdef eslAUGMENT_MSA
if (format == eslSQFILE_UNKNOWN || esl_sqio_IsAlignment(format))
{
- status = eslx_msafile_Open(NULL, filename, NULL, format, NULL, &(ascii->afp));
+ status = esl_msafile_Open(NULL, filename, NULL, format, NULL, &(ascii->afp));
if (status != eslOK) { status = eslEFORMAT; goto ERROR; } /* This was our last attempt. Failure to open == failure to detect format */
sqfp->format = format = ascii->afp->format;
}
@@ -498,7 +498,7 @@ sqascii_Position(ESL_SQFILE *sqfp, off_t offset)
if (esl_sqio_IsAlignment(sqfp->format))
{/* msa file: close and reopen. maybe sometime we'll have esl_msafile_Rewind() */
/* we have already verified that offset==0 for MSA file */
- eslx_msafile_Close(ascii->afp);
+ esl_msafile_Close(ascii->afp);
if (ascii->msa != NULL) esl_msa_Destroy(ascii->msa);
ascii->afp = NULL;
ascii->msa = NULL;
@@ -510,7 +510,7 @@ sqascii_Position(ESL_SQFILE *sqfp, off_t offset)
EFORMAT error can't occur because we know the format and
don't use autodetection.
*/
- status = eslx_msafile_Open(NULL, sqfp->filename, NULL, sqfp->format, NULL, &(ascii->afp));
+ status = esl_msafile_Open(NULL, sqfp->filename, NULL, sqfp->format, NULL, &(ascii->afp));
if (status == eslENOTFOUND) ESL_EXCEPTION(eslENOTFOUND, "failed to reopen alignment file");
else if (status != eslOK) return status;
}
@@ -558,7 +558,7 @@ sqascii_Close(ESL_SQFILE *sqfp)
#endif
#ifdef eslAUGMENT_MSA
- if (ascii->afp != NULL) eslx_msafile_Close(ascii->afp);
+ if (ascii->afp != NULL) esl_msafile_Close(ascii->afp);
if (ascii->msa != NULL) esl_msa_Destroy(ascii->msa);
#endif /*eslAUGMENT_MSA*/
@@ -627,7 +627,7 @@ sqascii_SetDigital(ESL_SQFILE *sqfp, const ESL_ALPHABET *abc)
else
{
#ifdef eslAUGMENT_MSA
- eslx_msafile_SetDigital(ascii->afp, abc);
+ esl_msafile_SetDigital(ascii->afp, abc);
#else
status = eslEFORMAT;
#endif
@@ -675,7 +675,7 @@ sqascii_GuessAlphabet(ESL_SQFILE *sqfp, int *ret_type)
/* Special case: for MSA files, hand this off to msafile_GuessAlphabet. */
#ifdef eslAUGMENT_MSA
- if (esl_sqio_IsAlignment(sqfp->format)) return eslx_msafile_GuessAlphabet(ascii->afp, ret_type);
+ if (esl_sqio_IsAlignment(sqfp->format)) return esl_msafile_GuessAlphabet(ascii->afp, ret_type);
#endif
/* set the sqfp to record; we'll rewind afterwards and use the recording */
@@ -691,6 +691,7 @@ sqascii_GuessAlphabet(ESL_SQFILE *sqfp, int *ret_type)
/* reset the sqfp, so it uses the recording next */
ascii->mpos = 0;
+ ascii->linenumber = 1;
ascii->is_recording = FALSE;
if ((status = loadbuf(sqfp)) != eslOK) ESL_EXCEPTION(status, "buffer load failed, but shouldn't have");
esl_sq_Destroy(sq);
@@ -780,7 +781,7 @@ sqascii_Read(ESL_SQFILE *sqfp, ESL_SQ *sq)
if (ascii->msa == NULL || ascii->idx >= ascii->msa->nseq)
{ /* we need to load a new alignment? */
esl_msa_Destroy(ascii->msa);
- status = eslx_msafile_Read(ascii->afp, &(ascii->msa));
+ status = esl_msafile_Read(ascii->afp, &(ascii->msa));
if (status == eslEFORMAT)
{ /* oops, a parse error; upload the error info from afp to sqfp */
ascii->linenumber = ascii->afp->linenumber;
@@ -793,7 +794,7 @@ sqascii_Read(ESL_SQFILE *sqfp, ESL_SQ *sq)
/* grab next seq from alignment */
/* this is inefficient; it goes via a temporarily allocated copy of the sequence */
- status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq);
+ if ((status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq)) != eslOK) return status;
esl_sq_GrowTo(sq, tmpsq->n);
esl_sq_Copy(tmpsq, sq);
esl_sq_Destroy(tmpsq);
@@ -810,7 +811,7 @@ sqascii_Read(ESL_SQFILE *sqfp, ESL_SQ *sq)
/* Main case: read next seq from sqfp's stream */
if (ascii->nc == 0) return eslEOF;
- if ((status = ascii->parse_header(sqfp, sq)) != eslOK) return status; /* EOF, EFORMAT */
+ if ((status = ascii->parse_header(sqfp, sq)) != eslOK) return status; /* EMEM, EOF, EFORMAT */
do {
if ((status = seebuf(sqfp, -1, &n, &epos)) == eslEFORMAT) return status;
@@ -858,6 +859,8 @@ sqascii_Read(ESL_SQFILE *sqfp, ESL_SQ *sq)
* avoid reading complete seqs into memory.
*
* Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation error.
*/
static int
sqascii_ReadInfo(ESL_SQFILE *sqfp, ESL_SQ *sq)
@@ -875,7 +878,7 @@ sqascii_ReadInfo(ESL_SQFILE *sqfp, ESL_SQ *sq)
if (ascii->msa == NULL || ascii->idx >= ascii->msa->nseq)
{ /* we need to load a new alignment? */
esl_msa_Destroy(ascii->msa);
- status = eslx_msafile_Read(ascii->afp, &(ascii->msa));
+ status = esl_msafile_Read(ascii->afp, &(ascii->msa));
if (status == eslEFORMAT)
{ /* oops, a parse error; upload the error info from afp to sqfp */
ascii->linenumber = ascii->afp->linenumber;
@@ -888,7 +891,7 @@ sqascii_ReadInfo(ESL_SQFILE *sqfp, ESL_SQ *sq)
/* grab next seq from alignment */
/* this is inefficient; it goes via a temporarily allocated copy of the sequence */
- status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq);
+ if ((status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq)) != eslOK) return status;
if (tmpsq->dsq != NULL) tmpsq->dsq[1] = eslDSQ_SENTINEL;
else tmpsq->seq[0] = '\0';
esl_sq_Copy(tmpsq, sq);
@@ -968,11 +971,10 @@ sqascii_ReadInfo(ESL_SQFILE *sqfp, ESL_SQ *sq)
static int
sqascii_ReadSequence(ESL_SQFILE *sqfp, ESL_SQ *sq)
{
- int status;
+ ESL_SQASCII_DATA *ascii = &sqfp->data.ascii;
int64_t epos;
int64_t n;
-
- ESL_SQASCII_DATA *ascii = &sqfp->data.ascii;
+ int status;
#ifdef eslAUGMENT_MSA
if (esl_sqio_IsAlignment(sqfp->format))
@@ -981,7 +983,7 @@ sqascii_ReadSequence(ESL_SQFILE *sqfp, ESL_SQ *sq)
if (ascii->msa == NULL || ascii->idx >= ascii->msa->nseq)
{ /* we need to load a new alignment? */
esl_msa_Destroy(ascii->msa);
- status = eslx_msafile_Read(ascii->afp, &(ascii->msa));
+ status = esl_msafile_Read(ascii->afp, &(ascii->msa));
if (status == eslEFORMAT)
{ /* oops, a parse error; upload the error info from afp to sqfp */
ascii->linenumber = ascii->afp->linenumber;
@@ -994,7 +996,9 @@ sqascii_ReadSequence(ESL_SQFILE *sqfp, ESL_SQ *sq)
/* grab next seq from alignment */
/* this is inefficient; it goes via a temporarily allocated copy of the sequence */
- status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq);
+ status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq); // eslEMEM | eslEOD
+ if (status != eslOK) return status;
+
esl_sq_GrowTo(sq, tmpsq->n);
esl_sq_Copy(tmpsq, sq);
esl_sq_Destroy(tmpsq);
@@ -1160,7 +1164,7 @@ sqascii_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
if (ascii->msa == NULL || ascii->idx >= ascii->msa->nseq)
{ /* need new alignment? */
esl_msa_Destroy(ascii->msa);
- status = eslx_msafile_Read(ascii->afp, &(ascii->msa));
+ status = esl_msafile_Read(ascii->afp, &(ascii->msa));
if (status == eslEFORMAT)
{ /* oops, a parse error; upload the error info from afp to sqfp */
ascii->linenumber = ascii->afp->linenumber;
@@ -1175,8 +1179,9 @@ sqascii_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
if ((status = esl_sq_FetchFromMSA(ascii->msa, ascii->idx, &tmpsq)) != eslOK) goto ERROR;
/*by default, tmpsq is an ascii sequence, convert it to digital if that's what sq is*/
- if (sq->seq == NULL)
- esl_sq_Digitize(sq->abc, tmpsq);
+ if (sq->seq == NULL &&
+ (( status = esl_sq_Digitize(sq->abc, tmpsq)) != eslOK))
+ goto ERROR;
/* Figure out tmpsq coords we'll put in sq */
if (W > 0)
@@ -1206,8 +1211,8 @@ sqascii_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
sq->W = 0;
sq->n = 0;
sq->L = tmpsq->L;
- if (sq->dsq != NULL) sq->dsq[1] = eslDSQ_SENTINEL;
- else sq->seq[0] = '\0';
+ if (sq->dsq) sq->dsq[1] = eslDSQ_SENTINEL;
+ else if (sq->seq) sq->seq[0] = '\0';
ascii->idx++;
esl_sq_Destroy(tmpsq);
@@ -1404,7 +1409,7 @@ sqascii_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
if (ascii->nc > 0) {
ascii->bookmark_offset = ascii->boff+ascii->bpos; /* remember where the next seq starts. */
- ascii->bookmark_linenum = ascii->bookmark_linenum;
+ //ascii->bookmark_linenum = ascii->bookmark_linenum;
} else {
ascii->bookmark_offset = 0; /* signals for EOF, no more seqs */
ascii->bookmark_linenum = 0;
@@ -1436,11 +1441,18 @@ sqascii_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
* Purpose: Reads a block of sequences from open sequence file <sqfp> into
* <sqBlock>.
*
- * Because sequences in a database can exceed MAX_RESIDUE_COUNT,
- * this function uses ReadWindow to read restricted-size chunks
- * of sequence, and must allow for the possibility that a
+ * In the case that <long_target> is false, the sequences are
+ * expected to be protein - individual sequences won't be long
+ * so read them in one-whole-sequence at a time. If <max_sequences> is set
+ * to a number > 0 read <max_sequences> sequences, up to at most
+ * MAX_RESIDUE_COUNT residues.
+ *
+ * If <long_target> is true, the sequences are expected to be DNA.
+ * Because sequences in a DNA database can exceed MAX_RESIDUE_COUNT,
+ * this function uses ReadWindow to read chunks of sequence no
+ * larger than <max_residues>, and must allow for the possibility that a
* request will be made to continue reading a partly-read
- * sequence
+ * sequence. This case also respects the <max_sequences> limit.
*
* Returns: <eslOK> on success; the new sequence is stored in <sqBlock>.
*
@@ -1456,7 +1468,7 @@ sqascii_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
* <eslEINCONCEIVABLE> on internal error.
*/
static int
-sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target)
+sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target)
{
int i = 0;
int size = 0;
@@ -1464,13 +1476,18 @@ sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
ESL_SQ *tmpsq = NULL;
sqBlock->count = 0;
+ if (max_sequences < 1 || max_sequences > sqBlock->listSize)
+ max_sequences = sqBlock->listSize;
+
if ( !long_target )
{ /* in these cases, an individual sequence won't ever be really long,
so just read in a sequence at a time */
- for (i = 0; i < sqBlock->listSize && size < MAX_RESIDUE_COUNT; ++i)
+
+ for (i = 0; i < max_sequences && size < MAX_RESIDUE_COUNT; ++i)
{
status = sqascii_Read(sqfp, sqBlock->list + i);
+
if (status != eslOK) break;
size += sqBlock->list[i].n;
++sqBlock->count;
@@ -1478,6 +1495,10 @@ sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
}
else
{ /* DNA, not an alignment. Might be really long sequences */
+
+ if (max_residues < 1)
+ max_residues = MAX_RESIDUE_COUNT;
+
tmpsq = esl_sq_Create();
//if complete flag is set to FALSE, then the prior block must have ended with a window that was a possibly
@@ -1490,6 +1511,7 @@ sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
{
sqBlock->count = i = 1;
size = sqBlock->list->n - sqBlock->list->C;
+ sqBlock->list->L = sqfp->data.ascii.L;
if (size == max_residues)
{ // Filled the block with a single very long window.
@@ -1514,7 +1536,7 @@ sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
if(tmpsq != NULL) esl_sq_Destroy(tmpsq);
return status; //surprising
}
- sqBlock->list->L = tmpsq->L;
+ //sqBlock->list->L = tmpsq->L;
}
}
else if (status == eslEOD)
@@ -1528,55 +1550,62 @@ sqascii_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
} // otherwise, just start at the beginning
- for ( ; i < sqBlock->listSize && size < max_residues; ++i) {
+ for ( ; i < max_sequences && size < max_residues; ++i) {
+ /* restricted request_size is used to ensure that all blocks are pretty close to the
+ * same size. Without it, we may either naively keep asking for max_residue windows,
+ * which can result in a window with ~2*max_residues ... or we can end up with absurdly
+ * short fragments at the end of blocks
+ */
+ int request_size = ESL_MAX(max_residues-size, max_residues * .05);
+
esl_sq_Reuse(tmpsq);
esl_sq_Reuse(sqBlock->list + i);
- status = sqascii_ReadWindow(sqfp, 0, max_residues , sqBlock->list + i);
+
+ status = sqascii_ReadWindow(sqfp, 0, request_size , sqBlock->list + i);
if (status != eslOK && status != eslEOD) break; /* end of sequences (eslEOF), or we read an empty seq (eslEOD) or error (other) */
size += sqBlock->list[i].n - sqBlock->list[i].C;
-
+ sqBlock->list[i].L = sqfp->data.ascii.L;
++(sqBlock->count);
- if (size >= max_residues) {
- // a full window worth of sequence has been read; did we reach the end of the final sequence in the block?
-
- sqBlock->complete = FALSE; // default value, unless overridden below
-
- status = skip_whitespace(sqfp);
- if ( status != eslOK ) { // either EOD or end of buffer (EOF) was reached before the next character was seen
- sqBlock->complete = TRUE;
- status = eslOK;
- }
-
- if(tmpsq != NULL) esl_sq_Destroy(tmpsq);
- return status;
- }
- else if(status == eslEOD) {
- /* We've read an empty sequence of length 0, rare, but
- * possible, and we need to be able to handle it
- * gracefully. Ensure L is 0, set status to eslOK and move
- * on, we've already incremented sqBlock->count by 1
- * above. This means our block may contain zero-length
- * sequences when we return (that is, we still add these
- * seqs onto the block instead of skipping them altogether).
- */
- sqBlock->list[i].L = 0; /* actually, this should already be 0... */
- status = eslOK;
- }
- else {
- /* Sequence finished, but haven't yet reached max_residues. Need to burn off the EOD value
- that will be returned by the next ReadWindow call. Can just use a tmp sq, after setting
- a couple values ReadWindow needs to see for correct processing.
- */
- esl_sq_Reuse(tmpsq);
- tmpsq->start = sqBlock->list[i].start ;
- tmpsq->C = 0;
- status = sqascii_ReadWindow(sqfp, 0, max_residues, tmpsq);
- if (status != eslEOD) {
- if(tmpsq != NULL) esl_sq_Destroy(tmpsq);
- return status; //surprising
- }
- sqBlock->list[i].L = tmpsq->L;
- status = eslOK;
+
+ if (size >= max_residues) {
+ // a full window worth of sequence has been read; did we reach the end of the final sequence in the block?
+ sqBlock->complete = FALSE; // default value, unless overridden below
+
+ status = skip_whitespace(sqfp);
+ if ( status != eslOK ) { // either EOD or end of buffer (EOF) was reached before the next character was seen
+ sqBlock->complete = TRUE;
+ status = eslOK;
+ }
+
+ if(tmpsq != NULL) esl_sq_Destroy(tmpsq);
+ return status;
+ } else if(status == eslEOD) {
+ /* We've read an empty sequence of length 0, rare, but
+ * possible, and we need to be able to handle it
+ * gracefully. Ensure L is 0, set status to eslOK and move
+ * on, we've already incremented sqBlock->count by 1
+ * above. This means our block may contain zero-length
+ * sequences when we return (that is, we still add these
+ * seqs onto the block instead of skipping them altogether).
+ */
+ sqBlock->list[i].L = 0; /* actually, this should already be 0... */
+ status = eslOK;
+ } else {
+ /* Sequence finished, but haven't yet reached max_residues. Need to burn off the EOD value
+ that will be returned by the next ReadWindow call. Can just use a tmp sq, after setting
+ a couple values ReadWindow needs to see for correct processing.
+ */
+ esl_sq_Reuse(tmpsq);
+ tmpsq->start = sqBlock->list[i].start ;
+ tmpsq->C = 0;
+ status = sqascii_ReadWindow(sqfp, 0, max_residues, tmpsq);
+
+ if (status != eslEOD) {
+ if(tmpsq != NULL) esl_sq_Destroy(tmpsq);
+ return status; //surprising
+ }
+ //sqBlock->list[i].L = tmpsq->L;
+ status = eslOK;
}
}
}
@@ -2028,7 +2057,7 @@ static int
loadmem(ESL_SQFILE *sqfp)
{
void *tmp;
- int n;
+ int n = 0;
int status;
ESL_SQASCII_DATA *ascii = &sqfp->data.ascii;
@@ -2470,10 +2499,13 @@ read_nres(ESL_SQFILE *sqfp, ESL_SQ *sq, int64_t nskip, int64_t nres, int64_t *op
status = seebuf(sqfp, nres, &n, &epos);
}
+
if (status == eslEOF) {
if (! ascii->eof_is_ok) ESL_FAIL(eslEFORMAT, ascii->errbuf, "Premature EOF before end of seq record");
n = 0;
- }
+ } else if (status == eslEFORMAT) {
+ return status;
+ }
n = ESL_MIN(nres, n);
addbuf(sqfp, sq, n); /* bpos now at last residue + 1 if OK/EOD, 0 if EOF */
@@ -2843,7 +2875,7 @@ header_genbank(ESL_SQFILE *sqfp, ESL_SQ *sq)
if (strncmp(ascii->buf, "DEFINITION ", 11) == 0)
{
s = ascii->buf+12;
- esl_strchop(s, ascii->nc);
+ esl_strchop(s, ascii->nc-12);
if ((status = esl_sq_AppendDesc(sq, s)) != eslOK)
ESL_FAIL(status, ascii->errbuf, "Line %" PRId64 ": failed to parse desc on DEFINITION line", ascii->linenumber);
}
@@ -3016,19 +3048,27 @@ header_fasta(ESL_SQFILE *sqfp, ESL_SQ *sq)
while (status == eslOK && (c == '\t' || c == ' ')) status = nextchar(sqfp, &c); /* skip space */
/* Store the description (end-of-line delimited) */
+ /* Patched to deal with NCBI NR desclines: delimit by ctrl-A (0x01) too. [SRE:H1/82] */
pos = 0;
- while (status == eslOK && c != '\n' && c != '\r')
+ while (status == eslOK && c != '\n' && c != '\r' && c != 1)
{
sq->desc[pos++] = c;
if (pos == sq->dalloc-1) { ESL_RALLOC(sq->desc, tmp, sq->dalloc*2); sq->dalloc*= 2; }
status = nextchar(sqfp, &c);
}
sq->desc[pos] = '\0';
+
+ /* Because of the NCBI NR patch, c might be0x01 ctrl-A now; skip to eol.
+ * (TODO: I'm worried about the efficiency of this nextchar() stuff. Revisit.)
+ */
+ while (status == eslOK && c != '\n' && c != '\r')
+ status = nextchar(sqfp, &c);
sq->hoff = ascii->boff + ascii->bpos;
while (status == eslOK && (c == '\n' || c == '\r')) status = nextchar(sqfp, &c); /* skip past eol (DOS \r\n, MAC \r, UNIX \n */
+ if (status != eslOK && status != eslEOF) ESL_FAIL(eslEFORMAT, ascii->errbuf, "Unexpected failure in parsing FASTA name/description line");
+ /* Edge case: if the last sequence in the file is L=0, no residues, we are EOF now, not OK; but we'll return OK because we parsed the header line */
- if (status != eslOK) ESL_FAIL(eslEFORMAT, ascii->errbuf, "Premature EOF in parsing FASTA name/description line");
sq->doff = ascii->boff + ascii->bpos;
ascii->prvrpl = ascii->prvbpl = -1;
ascii->currpl = ascii->curbpl = 0;
@@ -3366,15 +3406,12 @@ fileheader_hmmpgmd(ESL_SQFILE *sqfp)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $Id: esl_sqio_ascii.c 833 2012-12-07 18:57:36Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sqio_ascii.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_sqio_ascii.h b/easel/esl_sqio_ascii.h
index 08c654f..32499f1 100644
--- a/easel/esl_sqio_ascii.h
+++ b/easel/esl_sqio_ascii.h
@@ -1,7 +1,7 @@
/* Unaligned ascii sequence file i/o.
*
- * SVN $Id: esl_sqio_ascii.h 715 2011-08-03 21:04:24Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sqio_ascii.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslSQIO_ASCII_INCLUDED
#define eslSQIO_ASCII_INCLUDED
@@ -66,7 +66,7 @@ typedef struct esl_sqascii_s {
/* MSA augmentation confers reading MSA files as sequential seq files. */
#if defined(eslAUGMENT_MSA)
- ESLX_MSAFILE *afp; /* open ESLX_MSAFILE for reading */
+ ESL_MSAFILE *afp; /* open ESL_MSAFILE for reading */
ESL_MSA *msa; /* preloaded alignment to draw seqs from */
int idx; /* index of next seq to return, 0..nseq-1 */
#else
@@ -99,10 +99,10 @@ extern int esl_sqascii_Parse(char *buf, int size, ESL_SQ *s, int format);
#endif /*eslSQIO_ASCII_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_sqio_ncbi.c b/easel/esl_sqio_ncbi.c
index 3110916..b5997cc 100644
--- a/easel/esl_sqio_ncbi.c
+++ b/easel/esl_sqio_ncbi.c
@@ -49,7 +49,7 @@ static int sqncbi_Read (ESL_SQFILE *sqfp, ESL_SQ *sq);
static int sqncbi_ReadInfo (ESL_SQFILE *sqfp, ESL_SQ *sq);
static int sqncbi_ReadSequence (ESL_SQFILE *sqfp, ESL_SQ *sq);
static int sqncbi_ReadWindow (ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq);
-static int sqncbi_ReadBlock (ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target);
+static int sqncbi_ReadBlock (ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target);
static int sqncbi_Echo (ESL_SQFILE *sqfp, const ESL_SQ *sq, FILE *ofp);
static int sqncbi_IsRewindable (const ESL_SQFILE *sqfp);
@@ -239,7 +239,7 @@ sqncbi_ParseIndexFile(ESL_SQNCBI_DATA *ncbi, int dbtype)
/* read in database stats */
if (fread(&info[0], sizeof(uint32_t), 4, ncbi->fppin) != 4) { status = eslFAIL; goto ERROR; }
ncbi->num_seq = htobe32(info[0]);
- ncbi->total_res = *(uint64_t *)(info+1);
+ memcpy(&ncbi->total_res, info+1, sizeof(uint64_t));
ncbi->max_seq = htobe32(info[3]);
/* save the offsets to the index tables */
@@ -536,7 +536,7 @@ sqncbi_Open(ESL_SQNCBI_DATA *ncbi, char *filename)
}
ncbi->hdr_alloced = INIT_HDR_BUFFER_SIZE;
- ESL_ALLOC(ncbi->hdr_buf, sizeof(char) * INIT_HDR_BUFFER_SIZE);
+ ESL_ALLOC(ncbi->hdr_buf, sizeof(unsigned char) * INIT_HDR_BUFFER_SIZE);
/* skip the first sentinal byte in the .psq file */
fgetc(ncbi->fppsq);
@@ -576,7 +576,6 @@ sqncbi_Position(ESL_SQFILE *sqfp, off_t offset)
return status;
}
-
/* Function: sqncbi_Close()
* Synopsis: Close a sequence file.
* Incept: MSF, Mon Dec 10, 2009 [Janelia]
@@ -1135,11 +1134,17 @@ sqncbi_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
* Purpose: Reads a block of sequences from open sequence file <sqfp> into
* <sqBlock>.
*
- * Because sequences in a database can exceed MAX_RESIDUE_COUNT,
- * this function uses ReadWindow to read restricted-size chunks
- * of sequence, and must allow for the possibility that a
- * request will be made to continue reading a partly-read
- * sequence
+ * In the case that <long_target> is false, the sequences are
+ * expected to be protein - individual sequences won't be long
+ * so read them in one-whole-sequence at a time. If <max_sequences>
+ * is set to a number > 0 read <max_sequences> sequences.
+ *
+ * If <long_target> is true, the sequences are expected to be DNA.
+ * Because sequences in a DNA database can exceed MAX_RESIDUE_COUNT,
+ * this function uses ReadWindow to read chunks of sequence no
+ * larger than <max_residues>, and must allow for the possibility that
+ * a request will be made to continue reading a partly-read
+ * sequence.
*
* Returns: <eslOK> on success; the new sequence is stored in <sqBlock>.
*
@@ -1153,12 +1158,12 @@ sqncbi_ReadWindow(ESL_SQFILE *sqfp, int C, int W, ESL_SQ *sq)
* <eslEINCONCEIVABLE> on internal error.
*/
static int
-sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int long_target)
+sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int max_sequences, int long_target)
{
int i = 0;
int size = 0;
int status = eslOK;
- ESL_SQ *tmpsq;
+ ESL_SQ *tmpsq = NULL;
sqBlock->count = 0;
@@ -1166,7 +1171,10 @@ sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
{ /* in these cases, an individual sequence won't ever be really long,
so just read in a sequence at a time */
- for (i = 0; i < sqBlock->listSize && size < MAX_RESIDUE_COUNT; ++i)
+ if (max_sequences < 1 || max_sequences > sqBlock->listSize)
+ max_sequences = sqBlock->listSize;
+
+ for (i = 0; i < max_sequences && size < MAX_RESIDUE_COUNT; ++i)
{
status = sqncbi_Read(sqfp, sqBlock->list + i);
if (status != eslOK) break;
@@ -1177,9 +1185,9 @@ sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
else
{ /* DNA, not an alignment. Might be really long sequences */
- /*this variable is used instead of the MAX_RESIDUE_COUNT macro because impl_dummy may require shorter sequences to fit in memory*/
- if (max_residues < 0)
- max_residues = MAX_RESIDUE_COUNT;
+ /*this variable is used instead of the MAX_RESIDUE_COUNT macro because impl_dummy may require shorter sequences to fit in memory*/
+ if (max_residues < 0)
+ max_residues = MAX_RESIDUE_COUNT;
tmpsq = esl_sq_Create();
@@ -1193,6 +1201,7 @@ sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
{
sqBlock->count = i = 1;
size = sqBlock->list->n;
+ sqBlock->list[i].L = sqfp->data.ncbi.seq_L;
if (sqBlock->list->n >= max_residues)
{ // Filled the block with a single very long window.
@@ -1241,14 +1250,22 @@ sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
for ( ; i < sqBlock->listSize && size < max_residues; ++i)
{
+ /* restricted request_size is used to ensure that all blocks are pretty close to the
+ * same size. Without it, we may either naively keep asking for max_residue windows,
+ * which can result in a window with ~2*max_residues ... or we can end up with absurdly
+ * short fragments at the end of blocks
+ */
+ int request_size = ESL_MAX(max_residues-size, max_residues * .05);
+
esl_sq_Reuse(tmpsq);
esl_sq_Reuse(sqBlock->list + i);
- status = sqncbi_ReadWindow(sqfp, 0, max_residues, tmpsq);
+ status = sqncbi_ReadWindow(sqfp, 0, request_size, tmpsq);
if (status != eslOK) break; // end of sequences
size += sqBlock->list[i].n - sqBlock->list[i].C;
+ sqBlock->list[i].L = sqfp->data.ncbi.seq_L;
++(sqBlock->count);
- if (sqBlock->list[i].n >= max_residues)
+ if (size >= max_residues)
{ // a full window worth of sequence was read
if ( sqBlock->list[i].n == sqfp->data.ncbi.seq_L) {
@@ -1283,7 +1300,7 @@ sqncbi_ReadBlock(ESL_SQFILE *sqfp, ESL_SQ_BLOCK *sqBlock, int max_residues, int
if(tmpsq != NULL) esl_sq_Destroy(tmpsq);
return status; //surprising
}
- sqBlock->list[i].L = tmpsq->L;
+ //sqBlock->list[i].L = tmpsq->L;
status = eslOK;
}
}
@@ -1512,8 +1529,8 @@ pos_sequence(ESL_SQNCBI_DATA *ncbi, int inx)
* last index is used to point to the end of the last header and sequences.
*/
if (ncbi->volumes > 0) {
- cnt = volume->end_seq - inx + 2;
- start = start - volume->start_seq;
+ cnt = volume->end_seq - inx + 2; // cppcheck thinks end_seq can be uninitialized here. I think it's wrong.
+ start = start - volume->start_seq; // .. and ditto for start_seq.
} else {
cnt = ncbi->num_seq - inx + 1;
}
@@ -3272,13 +3289,13 @@ ignore_sequence_of_integer(ESL_SQNCBI_DATA *ncbi)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_sqio_ncbi.c 763 2012-05-23 13:38:16Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sqio_ncbi.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_sqio_ncbi.h b/easel/esl_sqio_ncbi.h
index 1579014..b478d5b 100644
--- a/easel/esl_sqio_ncbi.h
+++ b/easel/esl_sqio_ncbi.h
@@ -1,7 +1,7 @@
/* Unaligned ncbi sequence file i/o.
*
- * SVN $Id: esl_sqio_ncbi.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sqio_ncbi.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslSQIO_NCBI_INCLUDED
#define eslSQIO_NCBI_INCLUDED
@@ -30,7 +30,7 @@ typedef struct esl_sqncbi_vol_s {
char *name; /* name of the volume */
uint32_t start_seq; /* starting sequence number */
- uint32_t end_seq; /* starting sequence number */
+ uint32_t end_seq; /* ending sequence number */
uint32_t hdr_off; /* disk offset in .pin to header index */
uint32_t seq_off; /* disk offset to .pin to sequence index */
@@ -107,10 +107,10 @@ extern int esl_sqncbi_Open(char *seqfile, int format, struct esl_sqio_s *sqfp);
#endif /*eslSQIO_NCBI_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_sse.c b/easel/esl_sse.c
index ae8c5ac..7bba7ff 100644
--- a/easel/esl_sse.c
+++ b/easel/esl_sse.c
@@ -370,9 +370,9 @@ utest_expf(ESL_GETOPTS *go)
esl_sse_dump_ps(stdout, r.v); printf("\n");
}
if (r.x[0] != 0.0f) esl_fatal("expf(-inf) should be 0");
- if (r.x[1] != 1.0f) esl_fatal("logf(-0) should be 1");
- if (r.x[2] != 1.0f) esl_fatal("logf(0) should be 1");
- if (! isinf(r.x[3])) esl_fatal("logf(inf) should be inf");
+ if (r.x[1] != 1.0f) esl_fatal("expf(-0) should be 1");
+ if (r.x[2] != 1.0f) esl_fatal("expf(0) should be 1");
+ if (! isinf(r.x[3])) esl_fatal("expf(inf) should be inf");
/* exp(NaN) = NaN exp(large) = inf exp(-large) = 0 exp(1) = exp(1) */
x = _mm_set_ps(1.0f, -666.0f, 666.0f, eslNaN); /* set_ps() is in order 3 2 1 0 */
@@ -576,15 +576,15 @@ int main(void) { return 0; }
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_sse.c 807 2012-09-19 17:51:00Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sse.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
/* Additionally, esl_sse_logf() and esl_sse_expf() are
diff --git a/easel/esl_sse.h b/easel/esl_sse.h
index 303f123..77b6b46 100644
--- a/easel/esl_sse.h
+++ b/easel/esl_sse.h
@@ -235,13 +235,13 @@ esl_sse_hmax_epi16(__m128i a)
#endif /*HAVE_SSE2*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_sse.h 745 2012-02-07 13:15:41Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_sse.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_sse.tex b/easel/esl_sse.tex
index b443def..de01d07 100644
--- a/easel/esl_sse.tex
+++ b/easel/esl_sse.tex
@@ -15,7 +15,7 @@ enables SSE if it is available on the compilation machine.
\begin{tabular}{|ll|}\hline
\hyperlink{func:esl_sse_logf()}{\ccode{esl\_sse\_logf()}} & \ccode{r[z] = log x[z]}\\
\hyperlink{func:esl_sse_expf()}{\ccode{esl\_sse\_expf()}} & \ccode{r[z] = exp x[z]}\\
-\hyperlink{func:esl_sse_select_ps()}{\ccode{esl\_sse\_select\_ps()}} & SSE equivalent of \ccode{vec\_sel()}\\
+%\hyperlink{func:esl_sse_select_ps()}{\ccode{esl\_sse\_select\_ps()}} & SSE equivalent of \ccode{vec\_sel()}\\
\hline
\end{tabular}
}
diff --git a/easel/esl_ssi.c b/easel/esl_ssi.c
index 5c377f3..500cc10 100644
--- a/easel/esl_ssi.c
+++ b/easel/esl_ssi.c
@@ -626,6 +626,7 @@ int
esl_newssi_Open(const char *ssifile, int allow_overwrite, ESL_NEWSSI **ret_newssi)
{
ESL_NEWSSI *ns = NULL;
+ int i;
int status;
ESL_ALLOC(ns, sizeof(ESL_NEWSSI));
@@ -668,11 +669,19 @@ esl_newssi_Open(const char *ssifile, int allow_overwrite, ESL_NEWSSI **ret_newss
if ((ns->ssifp = fopen(ssifile, "w")) == NULL) { status = eslENOTFOUND; goto ERROR; }
ESL_ALLOC(ns->filenames, sizeof(char *) * eslSSI_FCHUNK);
+ for (i = 0; i < eslSSI_FCHUNK; i++)
+ ns->filenames[i] = NULL;
ESL_ALLOC(ns->fileformat, sizeof(uint32_t) * eslSSI_FCHUNK);
ESL_ALLOC(ns->bpl, sizeof(uint32_t) * eslSSI_FCHUNK);
ESL_ALLOC(ns->rpl, sizeof(uint32_t) * eslSSI_FCHUNK);
ESL_ALLOC(ns->pkeys, sizeof(ESL_PKEY) * eslSSI_KCHUNK);
+ for (i = 0; i < eslSSI_KCHUNK; i++)
+ ns->pkeys[i].key = NULL;
ESL_ALLOC(ns->skeys, sizeof(ESL_SKEY) * eslSSI_KCHUNK);
+ for (i = 0; i < eslSSI_KCHUNK; i++) {
+ ns->skeys[i].key = NULL;
+ ns->skeys[i].pkey = NULL;
+ }
*ret_newssi = ns;
return eslOK;
@@ -709,6 +718,7 @@ esl_newssi_AddFile(ESL_NEWSSI *ns, const char *filename, int fmt, uint16_t *ret_
{
int status;
uint16_t fh;
+ int i;
int n;
if (ns->nfiles >= eslSSI_MAXFILES) ESL_XFAIL(eslERANGE, ns->errbuf, "exceeded the maximum number of files an SSI index can store");
@@ -725,11 +735,11 @@ esl_newssi_AddFile(ESL_NEWSSI *ns, const char *filename, int fmt, uint16_t *ret_
ns->nfiles++;
if (ns->nfiles % eslSSI_FCHUNK == 0) {
- void *tmp;
- ESL_RALLOC(ns->filenames, tmp, sizeof(char *) * (ns->nfiles+eslSSI_FCHUNK));
- ESL_RALLOC(ns->fileformat, tmp, sizeof(uint32_t) * (ns->nfiles+eslSSI_FCHUNK));
- ESL_RALLOC(ns->bpl, tmp, sizeof(uint32_t) * (ns->nfiles+eslSSI_FCHUNK));
- ESL_RALLOC(ns->rpl, tmp, sizeof(uint32_t) * (ns->nfiles+eslSSI_FCHUNK));
+ ESL_REALLOC(ns->filenames, sizeof(char *) * (ns->nfiles+eslSSI_FCHUNK));
+ for (i = ns->nfiles; i < ns->nfiles+eslSSI_FCHUNK; i++) ns->filenames[i] = NULL;
+ ESL_REALLOC(ns->fileformat, sizeof(uint32_t) * (ns->nfiles+eslSSI_FCHUNK));
+ ESL_REALLOC(ns->bpl, sizeof(uint32_t) * (ns->nfiles+eslSSI_FCHUNK));
+ ESL_REALLOC(ns->rpl, sizeof(uint32_t) * (ns->nfiles+eslSSI_FCHUNK));
}
*ret_fh = fh;
return eslOK;
@@ -832,6 +842,7 @@ esl_newssi_AddKey(ESL_NEWSSI *ns, const char *key, uint16_t fh,
off_t r_off, off_t d_off, int64_t L)
{
int status;
+ int i;
int n; /* a string length */
if (fh >= eslSSI_MAXFILES) ESL_XEXCEPTION(eslEINVAL, "invalid fh");
@@ -876,8 +887,9 @@ esl_newssi_AddKey(ESL_NEWSSI *ns, const char *key, uint16_t fh,
/* Reallocate as needed. */
if (ns->nprimary % eslSSI_KCHUNK == 0) {
- void *tmp;
- ESL_RALLOC(ns->pkeys, tmp, sizeof(ESL_PKEY) * (ns->nprimary+eslSSI_KCHUNK));
+ ESL_REALLOC(ns->pkeys, sizeof(ESL_PKEY) * (ns->nprimary+eslSSI_KCHUNK));
+ for (i = ns->nprimary; i < ns->nprimary + eslSSI_KCHUNK; i++)
+ ns->pkeys[i].key = NULL;
}
}
return eslOK;
@@ -911,6 +923,7 @@ int
esl_newssi_AddAlias(ESL_NEWSSI *ns, const char *alias, const char *key)
{
int status;
+ int i;
int n; /* a string length */
if (ns->nsecondary >= eslSSI_MAXKEYS) ESL_XFAIL(eslERANGE, ns->errbuf, "exceeded maximum number of secondary keys allowed");
@@ -938,8 +951,11 @@ esl_newssi_AddAlias(ESL_NEWSSI *ns, const char *alias, const char *key)
ns->nsecondary++;
if (ns->nsecondary % eslSSI_KCHUNK == 0) {
- void *tmp;
- ESL_RALLOC(ns->skeys, tmp, sizeof(ESL_SKEY) * (ns->nsecondary+eslSSI_KCHUNK));
+ ESL_REALLOC(ns->skeys, sizeof(ESL_SKEY) * (ns->nsecondary+eslSSI_KCHUNK));
+ for (i = ns->nsecondary; i < ns->nsecondary+eslSSI_KCHUNK; i++) {
+ ns->skeys[i].key = NULL;
+ ns->skeys[i].pkey = NULL;
+ }
}
}
return eslOK;
@@ -989,6 +1005,9 @@ esl_newssi_Write(ESL_NEWSSI *ns)
ESL_PKEY pkey; /* primary key info from external tmpfile */
ESL_SKEY skey; /* secondary key info from external tmpfile */
+ if (ns->nsecondary > 0 && ns->slen == 0)
+ ESL_EXCEPTION(eslEINVAL, "zero secondary key length: shouldn't happen");
+
/* We need fixed-width buffers to get our keys fwrite()'ten in their
* full binary lengths; pkey->key (for instance) is not guaranteed
* to be allocated for the final maximum plen. We use strncpy(), not
@@ -998,7 +1017,7 @@ esl_newssi_Write(ESL_NEWSSI *ns)
*/
ESL_ALLOC(fk, sizeof(char) * ns->flen);
ESL_ALLOC(pk, sizeof(char) * ns->plen);
- if (ns->slen) ESL_ALLOC(sk, sizeof(char) * ns->slen);
+ if (ns->nsecondary > 0) ESL_ALLOC(sk, sizeof(char) * ns->slen);
/* How big is the index? If it's going to be > 2GB, we better have
* 64-bit offsets. (2047 (instead of 2048) gives us
@@ -1093,7 +1112,6 @@ esl_newssi_Write(ESL_NEWSSI *ns)
if (ns->bpl[i] > 0 && ns->rpl[i] > 0) file_flags |= eslSSI_FASTSUBSEQ;
strncpy(fk, ns->filenames[i], ns->flen);
- status = eslFAIL;
if (fwrite(fk, sizeof(char), ns->flen, ns->ssifp) != ns->flen ||
esl_fwrite_u32(ns->ssifp, ns->fileformat[i]) != eslOK ||
esl_fwrite_u32(ns->ssifp, file_flags) != eslOK ||
@@ -1144,7 +1162,7 @@ esl_newssi_Write(ESL_NEWSSI *ns)
{
if (esl_fgets(&buf, &n, ns->stmp) != eslOK) ESL_XFAIL(eslESYS, ns->errbuf, "read from sorted secondary key tmpfile failed");
if (parse_skey(buf, &skey) != eslOK) ESL_XFAIL(eslESYS, ns->errbuf, "parse failed for a line of sorted secondary key tmpfile failed");
- strncpy(sk, skey.key, ns->slen);
+ strncpy(sk, skey.key, ns->slen); // slen > 0 if there are any secondary keys.
strncpy(pk, skey.pkey, ns->plen);
if (fwrite(sk, sizeof(char), ns->slen, ns->ssifp) != ns->slen ||
@@ -1154,6 +1172,7 @@ esl_newssi_Write(ESL_NEWSSI *ns)
}
else
{
+ /* if ns->nsecondary=0, ns->slen=0 and sk=NULL */
for (i = 0; i < ns->nsecondary; i++)
{
strncpy(sk, ns->skeys[i].key, ns->slen);
@@ -1793,6 +1812,7 @@ main(int argc, char **argv)
int status;
/* Create <nfiles> sequence file names. */
+ ESL_DASSERT1(( nfiles > 0 ));
ESL_ALLOC(sqfile, sizeof(char *) * nfiles);
for (j = 0; j < nfiles; j++)
{
@@ -1871,7 +1891,10 @@ main(int argc, char **argv)
/* Retrieve it */
status = esl_ssi_FindName(ssi, query, &fh, &roff, NULL, NULL);
if (status != eslOK) esl_fatal("didn't find %s in index", query);
- esl_ssi_FileInfo(ssi, fh, &qfile, &qfmt);
+
+ status = esl_ssi_FileInfo(ssi, fh, &qfile, &qfmt);
+ if (status != eslOK) esl_fatal("didn't locate file info for %s", query);
+
if (esl_sqfile_Open(qfile, qfmt, NULL, &sqfp) != eslOK)
esl_fatal("failed to open fasta file %s", qfile);
esl_sqfile_Position(sqfp, roff);
@@ -2021,13 +2044,13 @@ int main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_ssi.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_ssi.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_ssi.h b/easel/esl_ssi.h
index d4655ce..c2373c7 100644
--- a/easel/esl_ssi.h
+++ b/easel/esl_ssi.h
@@ -160,10 +160,10 @@ typedef void ESL_NEWSSI;
#endif /* eslSSI_INCLUDED */
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_ssi.tex b/easel/esl_ssi.tex
index 3eefda8..a719fc7 100644
--- a/easel/esl_ssi.tex
+++ b/easel/esl_ssi.tex
@@ -78,8 +78,10 @@ set of functions for portable binary file i/o.
\hyperlink{func:esl_byteswap()}{\ccode{esl\_byteswap()}} & Description.\\
\hyperlink{func:esl_ntoh16()}{\ccode{esl\_ntoh16()}} & Description.\\
\hyperlink{func:esl_hton16()}{\ccode{esl\_hton16()}} & Description.\\
-\hyperlink{func:esl_fread_i16()}{\ccode{esl\_fread\_i16()}} & Description.\\
-\hyperlink{func:esl_fwrite_i16()}{\ccode{esl\_fwrite\_i16()}} & Description.\\
+%\hyperlink{func:esl_fread_i16()}{\ccode{esl\_fread\_i16()}} & Description.\\
+%\hyperlink{func:esl_fwrite_i16()}{\ccode{esl\_fwrite\_i16()}} & Description.\\
+\ccode{esl\_fread\_i16()} & Description.\\
+\ccode{esl\_fwrite\_i16()} & Description.\\
\hyperlink{func:esl_fread_offset()}{\ccode{esl\_fread\_offset()}} & Description.\\
\hyperlink{func:esl_fwrite_offset()}{\ccode{esl\_fwrite\_offset()}} & Description.\\
\hline
diff --git a/easel/esl_stack.c b/easel/esl_stack.c
index 3c9718c..a9daca8 100644
--- a/easel/esl_stack.c
+++ b/easel/esl_stack.c
@@ -56,15 +56,16 @@ esl_stack_ICreate(void)
ns->nalloc = ESL_STACK_INITALLOC;
ns->pdata = NULL;
ns->cdata = NULL;
- ESL_ALLOC(ns->idata, sizeof(int) * ns->nalloc);
+ ns->idata = NULL;
ns->n = 0;
-
#ifdef HAVE_PTHREAD
ns->do_mutex = FALSE;
ns->do_cond = FALSE;
ns->mutex = NULL;
ns->cond = NULL;
#endif
+
+ ESL_ALLOC(ns->idata, sizeof(int) * ns->nalloc);
return ns;
ERROR:
@@ -92,15 +93,16 @@ esl_stack_CCreate(void)
cs->nalloc = ESL_STACK_INITALLOC;
cs->idata = NULL;
cs->pdata = NULL;
- ESL_ALLOC(cs->cdata, sizeof(char) * cs->nalloc);
+ cs->cdata = NULL;
cs->n = 0;
-
#ifdef HAVE_PTHREAD
cs->do_mutex = FALSE;
cs->do_cond = FALSE;
cs->mutex = NULL;
cs->cond = NULL;
#endif
+
+ ESL_ALLOC(cs->cdata, sizeof(char) * cs->nalloc);
return cs;
ERROR:
@@ -128,9 +130,8 @@ esl_stack_PCreate(void)
ps->nalloc = ESL_STACK_INITALLOC;
ps->idata = NULL;
ps->cdata = NULL;
- ESL_ALLOC(ps->pdata, sizeof(void *) * ps->nalloc);
+ ps->pdata = NULL;
ps->n = 0;
-
#ifdef HAVE_PTHREAD
ps->do_mutex = FALSE;
ps->do_cond = FALSE;
@@ -138,6 +139,7 @@ esl_stack_PCreate(void)
ps->cond = NULL;
#endif
+ ESL_ALLOC(ps->pdata, sizeof(void *) * ps->nalloc);
return ps;
ERROR:
@@ -172,15 +174,17 @@ esl_stack_Reuse(ESL_STACK *s)
void
esl_stack_Destroy(ESL_STACK *s)
{
- if (s->idata) free(s->idata);
- if (s->cdata) free(s->cdata);
- if (s->pdata) free(s->pdata);
-
+ if (s)
+ {
+ if (s->idata) free(s->idata);
+ if (s->cdata) free(s->cdata);
+ if (s->pdata) free(s->pdata);
#ifdef HAVE_PTHREAD
- if (s->mutex) { pthread_mutex_destroy(s->mutex); free(s->mutex); }
- if (s->cond) { pthread_cond_destroy(s->cond); free(s->cond); }
+ if (s->mutex) { pthread_mutex_destroy(s->mutex); free(s->mutex); }
+ if (s->cond) { pthread_cond_destroy(s->cond); free(s->cond); }
#endif
- free(s);
+ free(s);
+ }
}
/*------------------ end, ESL_STACK object ----------------------*/
@@ -556,7 +560,8 @@ esl_stack_DiscardTopN(ESL_STACK *s, int n)
int
esl_stack_DiscardSelected(ESL_STACK *s, int (*discard_func)(void *, void *), void *param)
{
- int opos, npos;
+ int opos;
+ int npos = 0;
#ifdef HAVE_PTHREAD
if (s->do_mutex && pthread_mutex_lock(s->mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread_mutex_lock() failure");
@@ -741,10 +746,11 @@ esl_stack_ReleaseCond(ESL_STACK *s)
if (pthread_mutex_lock(s->mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread_mutex_lock() failure");
if (pthread_cond_broadcast(s->cond) != 0) ESL_EXCEPTION(eslESYS, "pthread_cond_broadcast() failure");
- pthread_cond_destroy(s->cond);
+ /* You can't free s->cond yet; you can only set the flag.
+ * Reason: you may have workers that are ALREADY in a wait state, in pthread_cond_wait(),
+ * and that function depends on s->cond.
+ */
s->do_cond = FALSE;
- free(s->cond);
- s->cond = NULL;
if (pthread_mutex_unlock(s->mutex) != 0) ESL_EXCEPTION(eslESYS, "pthread_mutex_unlock() failure");
return eslOK;
@@ -759,6 +765,8 @@ esl_stack_ReleaseCond(ESL_STACK *s)
*****************************************************************/
#ifdef eslSTACK_TESTDRIVE
+#include "esl_random.h"
+
static void
utest_integer(void)
{
@@ -867,19 +875,15 @@ utest_convert2string(void)
free(result); /* after Convert2String, only the string itself remains to be free'd */
}
-
-#ifdef eslAUGMENT_RANDOM
static void
-utest_shuffle(void)
+utest_shuffle(ESL_RANDOMNESS *r)
{
char *msg = "stack shuffle unit test failed";
- ESL_RANDOMNESS *r = esl_randomness_Create(42);
ESL_STACK *s = esl_stack_ICreate();
int n = ESL_STACK_INITALLOC*2+1; /* exercises reallocation */
int *seen = malloc(sizeof(int) * n);
int i;
int val;
- int appears_shuffled = FALSE;
for (i = 0; i < n; i++) esl_stack_IPush(s, i);
esl_stack_Shuffle(r, s);
@@ -888,15 +892,52 @@ utest_shuffle(void)
i = n-1;
while (esl_stack_IPop(s, &val) != eslEOD) {
seen[val]++;
- if (val != i--) appears_shuffled = TRUE;
}
for (i = 0; i < n; i++) if (seen[i] != 1) esl_fatal(msg);
free(seen);
esl_stack_Destroy(s);
- esl_randomness_Destroy(r);
}
-#endif /*eslAUGMENT_RANDOM*/
+
+/* discard all elems in the stack > thresh */
+static int
+discard_function(void *elemp, void *paramp)
+{
+ int elem = * (int *) elemp;
+ int thresh = * (int *) paramp;
+ return (elem > thresh) ? TRUE : FALSE;
+}
+
+static void
+utest_discard_selected(ESL_RANDOMNESS *r)
+{
+ char *msg = "stack: DiscardSelected() unit test failed";
+ ESL_STACK *ns = esl_stack_ICreate();
+ int n = 1000;
+ int thresh = 42;
+ int npass = 0;
+ int val;
+ int i;
+
+ for (i = 0; i < n; i++)
+ {
+ val = esl_rnd_Roll(r, 100) + 1;
+ if (val <= thresh) npass++;
+ esl_stack_IPush(ns, val);
+ }
+
+ if (esl_stack_DiscardSelected(ns, discard_function, &thresh) != eslOK) esl_fatal(msg);
+
+ if (esl_stack_ObjectCount(ns) != npass) esl_fatal(msg);
+ while (esl_stack_IPop(ns, &val) == eslOK)
+ {
+ if (val > thresh) esl_fatal(msg);
+ npass--;
+ }
+ if (npass != 0) esl_fatal(msg);
+ esl_stack_Destroy(ns);
+}
+
#ifdef HAVE_PTHREAD
/* Unit test for using a stack as part of an idiom
@@ -921,9 +962,9 @@ utest_shuffle(void)
* nonthreaded code in main()).
*/
struct threadtest_s {
- ESL_STACK *input;
- ESL_STACK *working;
- ESL_STACK *output;
+ ESL_STACK *input; /* faux "work unit" queue that the pusher_thread() processes*/
+ ESL_STACK *working; /* interthread communication: pusher puts work on this stack, popper pulls it off */
+ ESL_STACK *output; /* popper_thread() puts "finished" units on this stack */
};
static void *
@@ -1013,52 +1054,6 @@ utest_interthread_comm(void)
return;
}
#endif /* HAVE_PTHREAD -- pthread-specific utests */
-
-
-#ifdef HAVE_PTHREAD
-
-/* discard all elems in the stack > thresh */
-static int
-discard_function(void *elemp, void *paramp)
-{
- int elem = * (int *) elemp;
- int thresh = * (int *) paramp;
- return (elem > thresh) ? TRUE : FALSE;
-}
-
-static void
-utest_DiscardSelected(void)
-{
- char *msg = "stack: DiscardSelected() unit test failed";
- ESL_STACK *ns = esl_stack_ICreate();
- ESL_RANDOMNESS *r = esl_randomness_CreateFast(0);
- int n = 1000;
- int thresh = 42;
- int npass = 0;
- int val;
- int i;
-
- for (i = 0; i < n; i++)
- {
- val = esl_rnd_Roll(r, 100) + 1;
- if (val <= thresh) npass++;
- esl_stack_IPush(ns, val);
- }
-
- if (esl_stack_DiscardSelected(ns, discard_function, &thresh) != eslOK) esl_fatal(msg);
-
- if (esl_stack_ObjectCount(ns) != npass) esl_fatal(msg);
- while (esl_stack_IPop(ns, &val) == eslOK)
- {
- if (val > thresh) esl_fatal(msg);
- npass--;
- }
- if (npass != 0) esl_fatal(msg);
-
- esl_randomness_Destroy(r);
- esl_stack_Destroy(ns);
-}
-#endif /* HAVE_PTHREAD*/
#endif /*eslSTACK_TESTDRIVE*/
/*---------------- end of unit tests ----------------------------*/
@@ -1068,16 +1063,15 @@ utest_DiscardSelected(void)
/*****************************************************************
* 6. Test driver.
*****************************************************************/
-
-/*****************************************************************
+#ifdef eslSTACK_TESTDRIVE
+/*
* Test driver and API example for the pushdown stack module.
* To compile:
* gcc -g -Wall -I. -L. -DeslSTACK_TESTDRIVE -o testdrive esl_stack.c -leasel -lm
* To run:
* ./testdrive
- * Returns 0 (success) w/ no output, or returns nonzero and says why.
- *****************************************************************/
-
+ * Returns 0 (success), or returns nonzero and says why.
+ */
/* why Pop() into a void *obj_p, instead of directly into int *obj, in
* the test of the pointer stack? On PowerPC/Linux, using gcc -O3,
* trying to Pop() into *obj causes a "dereferencing type-punned
@@ -1088,24 +1082,45 @@ utest_DiscardSelected(void)
* suspicious that it's a gcc optimizer bug. Pop()'ing into a void *
* avoids the issue altogether. (SRE, Feb 22 2008 J2/119)
*/
-#ifdef eslSTACK_TESTDRIVE
+#include "easel.h"
+#include "esl_getopts.h"
+#include "esl_random.h"
+#include "esl_stack.h"
+
+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", 0 },
+ { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options]";
+static char banner[] = "unit test driver for esl_stack module";
+
int
-main(void)
+main(int argc, char **argv)
{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_Create(esl_opt_GetInteger(go, "-s"));
+
+ fprintf(stderr, "## %s\n", argv[0]);
+ fprintf(stderr, "# rng seed = %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+
utest_integer();
utest_char();
utest_pointer();
utest_convert2string();
-
-#ifdef eslAUGMENT_RANDOM
- utest_shuffle();
-#endif
+ utest_shuffle(rng);
+ utest_discard_selected(rng);
#ifdef HAVE_PTHREAD
utest_interthread_comm();
- utest_DiscardSelected();
#endif
+ esl_randomness_Destroy(rng);
+ esl_getopts_Destroy(go);
+
+
+ fprintf(stderr, "# status = ok\n");
return eslOK;
}
#endif /*eslSTACK_TESTDRIVE*/
@@ -1149,13 +1164,13 @@ main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_stack.c 777 2012-07-06 12:29:15Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stack.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_stack.h b/easel/esl_stack.h
index df75833..0968892 100644
--- a/easel/esl_stack.h
+++ b/easel/esl_stack.h
@@ -5,8 +5,8 @@
* cstack - SRE, Mon Oct 13 12:57:56 2003 [St. Louis]
* Incorp into easel - SRE, Sun Dec 26 07:39:02 2004 [Zaragoza]
*
- * SVN $Id: esl_stack.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stack.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslSTACK_INCLUDED
#define eslSTACK_INCLUDED
@@ -71,10 +71,10 @@ extern int esl_stack_ReleaseCond(ESL_STACK *s);
#endif /*eslSTACK_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_stats.c b/easel/esl_stats.c
index b14db5a..e6b9cc3 100644
--- a/easel/esl_stats.c
+++ b/easel/esl_stats.c
@@ -246,6 +246,7 @@ esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax)
int iter; /* iteration counter */
double pax; /* P(a,x) */
double qax; /* Q(a,x) */
+ int status;
if (a <= 0.) ESL_EXCEPTION(eslERANGE, "esl_stats_IncompleteGamma(): a must be > 0");
if (x < 0.) ESL_EXCEPTION(eslERANGE, "esl_stats_IncompleteGamma(): x must be >= 0");
@@ -292,7 +293,7 @@ esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax)
/* check for convergence */
if (fabs((nu1-oldp)/nu1) < 1.e-7)
{
- esl_stats_LogGamma(a, &qax);
+ if ((status = esl_stats_LogGamma(a, &qax)) != eslOK) return status;
qax = nu1 * exp(a * log(x) - x - qax);
if (ret_pax != NULL) *ret_pax = 1 - qax;
@@ -327,7 +328,7 @@ esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax)
if (fabs(val/p) < 1.e-7)
{
- esl_stats_LogGamma(a, &pax);
+ if ((status = esl_stats_LogGamma(a, &pax)) != eslOK) return status;
pax = p * exp(a * log(x) - x - pax);
if (ret_pax != NULL) *ret_pax = pax;
@@ -341,6 +342,191 @@ esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax)
/*NOTREACHED*/
return eslOK;
}
+
+
+/* Function: esl_stats_erfc()
+ * Synopsis: Complementary error function.
+ *
+ * Purpose: Calculate and return the complementary error function,
+ * erfc(x).
+ *
+ * erfc(x) is mandated by the ANSI C99 standard but that
+ * doesn't mean it's available on supposedly modern systems
+ * (looking at you here, Microsoft).
+ *
+ * Used for cumulative distribution function calculations
+ * for the normal (Gaussian) distribution. See <esl_normal>
+ * module.
+ *
+ * erfc(-inf) = 2.0
+ * erfc(0) = 1.0
+ * erfc(inf) = 0.0
+ * erfc(NaN) = NaN
+ *
+ * Args: x : any real-numbered value -inf..inf
+ *
+ * Returns: erfc(x)
+ *
+ * Throws: (no abnormal error conditions)
+ *
+ * Source:
+ * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+ * Developed at SunPro, a Sun Microsystems, Inc. business.
+ * Permission to use, copy, modify, and distribute this software is
+ * freely granted, provided that this notice is preserved.
+ * [as posted by eggcrook at stackexchange.com, 21 Dec 2012]
+ *
+ * Removed arcane incantations for runtime detection of endianness,
+ * and for treating IEEE754 doubles as two adjacent uint32_t;
+ * replaced with ANSI-compliant macros and compile-time detection
+ * of endianness. [Apr 2015]
+ */
+double
+esl_stats_erfc(double x)
+{
+ static const double tiny = 1e-300;
+ static const double half = 5.00000000000000000000e-01; /* 0x3FE00000, 0x00000000 */
+ static const double one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */
+ static const double two = 2.00000000000000000000e+00; /* 0x40000000, 0x00000000 */
+ static const double erx = 8.45062911510467529297e-01; /* 0x3FEB0AC1, 0x60000000 */
+ /*
+ * Coefficients for approximation to erf on [0,0.84375]
+ */
+ static const double pp0 = 1.28379167095512558561e-01; /* 0x3FC06EBA, 0x8214DB68 */
+ static const double pp1 = -3.25042107247001499370e-01; /* 0xBFD4CD7D, 0x691CB913 */
+ static const double pp2 = -2.84817495755985104766e-02; /* 0xBF9D2A51, 0xDBD7194F */
+ static const double pp3 = -5.77027029648944159157e-03; /* 0xBF77A291, 0x236668E4 */
+ static const double pp4 = -2.37630166566501626084e-05; /* 0xBEF8EAD6, 0x120016AC */
+ static const double qq1 = 3.97917223959155352819e-01; /* 0x3FD97779, 0xCDDADC09 */
+ static const double qq2 = 6.50222499887672944485e-02; /* 0x3FB0A54C, 0x5536CEBA */
+ static const double qq3 = 5.08130628187576562776e-03; /* 0x3F74D022, 0xC4D36B0F */
+ static const double qq4 = 1.32494738004321644526e-04; /* 0x3F215DC9, 0x221C1A10 */
+ static const double qq5 = -3.96022827877536812320e-06; /* 0xBED09C43, 0x42A26120 */
+ /*
+ * Coefficients for approximation to erf in [0.84375,1.25]
+ */
+ static const double pa0 = -2.36211856075265944077e-03; /* 0xBF6359B8, 0xBEF77538 */
+ static const double pa1 = 4.14856118683748331666e-01; /* 0x3FDA8D00, 0xAD92B34D */
+ static const double pa2 = -3.72207876035701323847e-01; /* 0xBFD7D240, 0xFBB8C3F1 */
+ static const double pa3 = 3.18346619901161753674e-01; /* 0x3FD45FCA, 0x805120E4 */
+ static const double pa4 = -1.10894694282396677476e-01; /* 0xBFBC6398, 0x3D3E28EC */
+ static const double pa5 = 3.54783043256182359371e-02; /* 0x3FA22A36, 0x599795EB */
+ static const double pa6 = -2.16637559486879084300e-03; /* 0xBF61BF38, 0x0A96073F */
+ static const double qa1 = 1.06420880400844228286e-01; /* 0x3FBB3E66, 0x18EEE323 */
+ static const double qa2 = 5.40397917702171048937e-01; /* 0x3FE14AF0, 0x92EB6F33 */
+ static const double qa3 = 7.18286544141962662868e-02; /* 0x3FB2635C, 0xD99FE9A7 */
+ static const double qa4 = 1.26171219808761642112e-01; /* 0x3FC02660, 0xE763351F */
+ static const double qa5 = 1.36370839120290507362e-02; /* 0x3F8BEDC2, 0x6B51DD1C */
+ static const double qa6 = 1.19844998467991074170e-02; /* 0x3F888B54, 0x5735151D */
+ /*
+ * Coefficients for approximation to erfc in [1.25,1/0.35]
+ */
+ static const double ra0 = -9.86494403484714822705e-03; /* 0xBF843412, 0x600D6435 */
+ static const double ra1 = -6.93858572707181764372e-01; /* 0xBFE63416, 0xE4BA7360 */
+ static const double ra2 = -1.05586262253232909814e+01; /* 0xC0251E04, 0x41B0E726 */
+ static const double ra3 = -6.23753324503260060396e+01; /* 0xC04F300A, 0xE4CBA38D */
+ static const double ra4 = -1.62396669462573470355e+02; /* 0xC0644CB1, 0x84282266 */
+ static const double ra5 = -1.84605092906711035994e+02; /* 0xC067135C, 0xEBCCABB2 */
+ static const double ra6 = -8.12874355063065934246e+01; /* 0xC0545265, 0x57E4D2F2 */
+ static const double ra7 = -9.81432934416914548592e+00; /* 0xC023A0EF, 0xC69AC25C */
+ static const double sa1 = 1.96512716674392571292e+01; /* 0x4033A6B9, 0xBD707687 */
+ static const double sa2 = 1.37657754143519042600e+02; /* 0x4061350C, 0x526AE721 */
+ static const double sa3 = 4.34565877475229228821e+02; /* 0x407B290D, 0xD58A1A71 */
+ static const double sa4 = 6.45387271733267880336e+02; /* 0x40842B19, 0x21EC2868 */
+ static const double sa5 = 4.29008140027567833386e+02; /* 0x407AD021, 0x57700314 */
+ static const double sa6 = 1.08635005541779435134e+02; /* 0x405B28A3, 0xEE48AE2C */
+ static const double sa7 = 6.57024977031928170135e+00; /* 0x401A47EF, 0x8E484A93 */
+ static const double sa8 = -6.04244152148580987438e-02; /* 0xBFAEEFF2, 0xEE749A62 */
+ /*
+ * Coefficients for approximation to erfc in [1/.35,28]
+ */
+ static const double rb0 = -9.86494292470009928597e-03; /* 0xBF843412, 0x39E86F4A */
+ static const double rb1 = -7.99283237680523006574e-01; /* 0xBFE993BA, 0x70C285DE */
+ static const double rb2 = -1.77579549177547519889e+01; /* 0xC031C209, 0x555F995A */
+ static const double rb3 = -1.60636384855821916062e+02; /* 0xC064145D, 0x43C5ED98 */
+ static const double rb4 = -6.37566443368389627722e+02; /* 0xC083EC88, 0x1375F228 */
+ static const double rb5 = -1.02509513161107724954e+03; /* 0xC0900461, 0x6A2E5992 */
+ static const double rb6 = -4.83519191608651397019e+02; /* 0xC07E384E, 0x9BDC383F */
+ static const double sb1 = 3.03380607434824582924e+01; /* 0x403E568B, 0x261D5190 */
+ static const double sb2 = 3.25792512996573918826e+02; /* 0x40745CAE, 0x221B9F0A */
+ static const double sb3 = 1.53672958608443695994e+03; /* 0x409802EB, 0x189D5118 */
+ static const double sb4 = 3.19985821950859553908e+03; /* 0x40A8FFB7, 0x688C246A */
+ static const double sb5 = 2.55305040643316442583e+03; /* 0x40A3F219, 0xCEDF3BE6 */
+ static const double sb6 = 4.74528541206955367215e+02; /* 0x407DA874, 0xE79FE763 */
+ static const double sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */
+
+ int hx,ix;
+ double R,S,P,Q,s,y,z,r;
+
+ ESL_GET_HIGHWORD(hx, x); // SRE: replaced original Sun incantation here.
+ ix = hx & 0x7fffffff;
+ if (ix>=0x7ff00000) /* erfc(nan)=nan; erfc(+-inf)=0,2 */
+ return (double)(((unsigned)hx>>31)<<1)+one/x;
+
+ if (ix < 0x3feb0000) /* |x|<0.84375 */
+ {
+ if (ix < 0x3c700000) return one-x; /* |x|<2**-56 */
+ z = x*x;
+ r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4)));
+ s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5))));
+ y = r/s;
+ if (hx < 0x3fd00000) /* x<1/4 */
+ {
+ return one-(x+x*y);
+ }
+ else
+ {
+ r = x*y;
+ r += (x-half);
+ return half - r ;
+ }
+ }
+
+ if (ix < 0x3ff40000) /* 0.84375 <= |x| < 1.25 */
+ {
+ s = fabs(x)-one;
+ P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6)))));
+ Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6)))));
+ if (hx>=0)
+ {
+ z = one-erx;
+ return z - P/Q;
+ }
+ else
+ {
+ z = erx+P/Q;
+ return one+z;
+ }
+ }
+
+ if (ix < 0x403c0000) /* |x|<28 */
+ {
+ x = fabs(x);
+ s = one/(x*x);
+ if (ix< 0x4006DB6D) /* |x| < 1/.35 ~ 2.857143*/
+ {
+ R = ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*(ra5+s*(ra6+s*ra7))))));
+ S = one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*(sa5+s*(sa6+s*(sa7+s*sa8)))))));
+ }
+ else /* |x| >= 1/.35 ~ 2.857143 */
+ {
+ if (hx < 0 && ix >= 0x40180000) return two-tiny; /* x < -6 */
+ R = rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*(rb5+s*rb6)))));
+ S = one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*(sb5+s*(sb6+s*sb7))))));
+ }
+ z = x;
+ ESL_SET_LOWWORD(z, 0); // SRE: replaced original Sun incantation here.
+ r = exp(-z*z-0.5625) * exp((z-x)*(z+x)+R/S);
+
+ if (hx>0) return r/x;
+ else return two-r/x;
+ }
+ else
+ {
+ if (hx>0) return tiny*tiny;
+ else return two-tiny;
+ }
+}
/*----------------- end, special functions ----------------------*/
@@ -361,8 +547,9 @@ esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax)
* experiments a,b have different binomial probabilities
* $p_a,p_b$. The G-test is a log-likelihood-ratio statistic,
* assuming maximum likelihood values for $p,p_a,p_b$.
- * $2G$ is distributed approximately as $\Chi^2(1)$, which
- * we use to calculate a P-value for the G statistic.
+ * $2G$ is distributed approximately as $X^2(1)$,
+ * %"X" is "Chi"
+ * which we use to calculate a P-value for the G statistic.
*
* Args: ca - number of positives in experiment a
* na - total number in experiment a
@@ -432,7 +619,7 @@ esl_stats_GTest(int ca, int na, int cb, int nb, double *ret_G, double *ret_P)
int
esl_stats_ChiSquaredTest(int v, double x, double *ret_answer)
{
- return esl_stats_IncompleteGamma((double)v/2, x/2, NULL, ret_answer);
+ return esl_stats_IncompleteGamma((double)v/2., x/2., NULL, ret_answer);
}
/*----------------- end, statistical tests ---------------------*/
@@ -642,6 +829,37 @@ esl_stats_LinearRegression(const double *x, const double *y, const double *sigma
#include <gsl/gsl_sf_gamma.h>
#endif
+
+/* Macros for treating IEEE754 double as two uint32_t halves, with
+ * compile-time handling of endianness; see esl_stats.h.
+ */
+static void
+utest_doublesplitting(ESL_RANDOMNESS *rng)
+{
+ char msg[] = "esl_stats:: doublesplitting unit test failed";
+ uint32_t ix0, ix1;
+ double x;
+ double x2;
+ int iteration; // iteration 0 uses x = 2; iteration 1 uses random x = [0,1).
+
+ for (iteration = 0; iteration < 2; iteration++)
+ {
+ x = (iteration == 0 ? 2.0 : esl_random(rng));
+ ESL_GET_WORDS(ix0, ix1, x);
+ ESL_SET_WORDS(x2, ix0, ix1);
+ if (x2 != x) esl_fatal(msg);
+
+ ESL_GET_HIGHWORD(ix0, x);
+ ESL_SET_HIGHWORD(x2, ix0);
+ if (x2 != x) esl_fatal(msg);
+
+ ESL_GET_LOWWORD(ix0, x);
+ ESL_SET_LOWWORD(x2, ix0);
+ if (iteration == 0 && ix0 != 0) esl_fatal(msg);
+ if (x2 != x) esl_fatal(msg);
+ }
+}
+
/* The LogGamma() function is rate-limiting in hmmbuild, because it is
* used so heavily in mixture Dirichlet calculations.
* ./configure --with-gsl; [compile test driver]
@@ -757,6 +975,43 @@ utest_LinearRegression(ESL_RANDOMNESS *r, int use_sigma, int be_verbose)
free(y);
free(sigma);
}
+
+static void
+utest_erfc(ESL_RANDOMNESS *rng, int be_verbose)
+{
+ char msg[] = "esl_stats:: erfc unit test failed";
+ double x;
+ double result;
+ int i;
+
+ if (be_verbose) {
+ printf("#--------------------------\n");
+ printf("# erfc unit testing...\n");
+ }
+
+ result = esl_stats_erfc( eslNaN);
+ if (! isnan(result)) esl_fatal(msg);
+ if (esl_stats_erfc(-eslINFINITY) != 2.0) esl_fatal(msg);
+ if (esl_stats_erfc( 0.0) != 1.0) esl_fatal(msg);
+ if (esl_stats_erfc( eslINFINITY) != 0.0) esl_fatal(msg);
+
+ for (i = 0; i < 42; i++)
+ {
+ x = esl_random(rng) * 10. - 5.;
+ result = esl_stats_erfc(x);
+ if (!isfinite(result)) esl_fatal(msg);
+#ifdef HAVE_ERFC
+ if (esl_DCompare(result, erfc(x), 1e-6) != eslOK) esl_fatal(msg);
+ if (be_verbose)
+ printf("%15f %15f %15f\n", x, result, erfc(x));
+#endif
+ }
+
+ if (be_verbose)
+ printf("#--------------------------\n");
+ return;
+}
+
#endif /*eslSTATS_TESTDRIVE*/
/*-------------------- end of unit tests ------------------------*/
@@ -797,6 +1052,8 @@ main(int argc, char **argv)
if (be_verbose) printf("seed = %" PRIu32 "\n", esl_randomness_GetSeed(r));
+ utest_doublesplitting(r);
+ utest_erfc(r, be_verbose);
utest_LogGamma(r, N, be_verbose);
utest_LinearRegression(r, TRUE, be_verbose);
utest_LinearRegression(r, FALSE, be_verbose);
@@ -908,13 +1165,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_stats.c 771 2012-06-11 12:53:13Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stats.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_stats.h b/easel/esl_stats.h
index abc3bb1..c0676fc 100644
--- a/easel/esl_stats.h
+++ b/easel/esl_stats.h
@@ -1,17 +1,118 @@
-/* Foundation, miscellenea for the statistics modules.
+/* Foundation, miscellanea for the statistics modules.
*/
#ifndef eslSTATS_INCLUDED
#define eslSTATS_INCLUDED
+#include "easel.h"
+
+/*****************************************************************
+ * Splitting IEEE754 double-precision float into two uint32_t
+ *****************************************************************
+ *
+ * Currently we only need these macros for one function,
+ * esl_stats_erfc(). The Sun Microsystems erfc() code that we've
+ * borrowed splits an IEEE754 double into two unsigned 32-bit
+ * integers. It uses arcane trickery to deal with endianness at
+ * runtime, using incantations like these:
+ * n0 = ((*(int*)&one)>>29)^1 0|1 = bigendian | littleendian
+ * hx = *(n0+(int*)&x); get high word
+ * (1-n0+(int*)&z) = 0; set low word
+ *
+ * Not only is this arcane and dubious, static code checking (using
+ * the clang/llvm checker) doesn't like it. I found an improvement
+ * in a library called zenilib, at:
+ * http://www-personal.umich.edu/~bazald/l/api/math__private_8h_source.html
+ *
+ * Here we do the same thing in an ANSI-respecting way using unions,
+ * with endianness detected at compile time.
+ *
+ * The zenilib code also appears to derive from (C) Sun Microsystems
+ * code.
+ *
+ * SRE TODO: insert license/copyright info here
+ */
+
+#ifdef WORDS_BIGENDIAN
+typedef union
+{
+ double val;
+ struct {
+ uint32_t msw;
+ uint32_t lsw;
+ } parts;
+} esl_double_split_t;
+#else /* else we're littleendian, such as Intel */
+typedef union
+{
+ double val;
+ struct {
+ uint32_t lsw;
+ uint32_t msw;
+ } parts;
+} esl_double_split_t;
+#endif /*WORDS_BIGENDIAN*/
+
+#define ESL_GET_WORDS(ix0, ix1, d) \
+ do { \
+ esl_double_split_t esltmp_ds; \
+ esltmp_ds.val = (d); \
+ (ix0) = esltmp_ds.parts.msw; \
+ (ix1) = esltmp_ds.parts.lsw; \
+ } while (0)
+
+#define ESL_GET_HIGHWORD(ix0, d) \
+ do { \
+ esl_double_split_t esltmp_ds; \
+ esltmp_ds.val = (d); \
+ (ix0) = esltmp_ds.parts.msw; \
+ } while (0)
+
+#define ESL_GET_LOWWORD(ix0, d) \
+ do { \
+ esl_double_split_t esltmp_ds; \
+ esltmp_ds.val = (d); \
+ (ix0) = esltmp_ds.parts.lsw; \
+ } while (0)
+
+#define ESL_SET_WORDS(d, ix0, ix1) \
+ do { \
+ esl_double_split_t esltmp_ds; \
+ esltmp_ds.parts.msw = (ix0); \
+ esltmp_ds.parts.lsw = (ix1); \
+ (d) = esltmp_ds.val; \
+ } while (0)
+
+#define ESL_SET_HIGHWORD(d, ix0) \
+ do { \
+ esl_double_split_t esltmp_ds; \
+ esltmp_ds.val = (d); \
+ esltmp_ds.parts.msw = (ix0); \
+ (d) = esltmp_ds.val; \
+ } while (0)
+
+#define ESL_SET_LOWWORD(d, ix1) \
+ do { \
+ esl_double_split_t esltmp_ds; \
+ esltmp_ds.val = (d); \
+ esltmp_ds.parts.lsw = (ix1); \
+ (d) = esltmp_ds.val; \
+ } while (0)
+
+
+/*****************************************************************
+ * Function declarations
+ *****************************************************************/
+
/* 1. Summary statistics calculations */
extern int esl_stats_DMean(const double *x, int n, double *opt_mean, double *opt_var);
extern int esl_stats_FMean(const float *x, int n, double *opt_mean, double *opt_var);
extern int esl_stats_IMean(const int *x, int n, double *opt_mean, double *opt_var);
/* 2. Special functions */
-extern int esl_stats_LogGamma(double x, double *ret_answer);
-extern int esl_stats_Psi(double x, double *ret_answer);
-extern int esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax);
+extern int esl_stats_LogGamma(double x, double *ret_answer);
+extern int esl_stats_Psi(double x, double *ret_answer);
+extern int esl_stats_IncompleteGamma(double a, double x, double *ret_pax, double *ret_qax);
+extern double esl_stats_erfc(double x);
/* 3. Standard statistical tests */
extern int esl_stats_GTest(int ca, int na, int cb, int nb, double *ret_G, double *ret_P);
@@ -22,16 +123,26 @@ extern int esl_stats_LinearRegression(const double *x, const double *y, const do
double *opt_a, double *opt_b,
double *opt_sigma_a, double *opt_sigma_b, double *opt_cov_ab,
double *opt_cc, double *opt_Q);
+
+
+/*****************************************************************
+ * Portability
+ *****************************************************************/
+
+#ifndef HAVE_ERFC
+#define erfc(x) esl_stats_erfc(x)
+#endif
+
#endif /*eslSTATS_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_stats.h 771 2012-06-11 12:53:13Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stats.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_stopwatch.c b/easel/esl_stopwatch.c
index 96080ef..9e96db8 100644
--- a/easel/esl_stopwatch.c
+++ b/easel/esl_stopwatch.c
@@ -1,12 +1,19 @@
/* Tracking cpu/system/elapsed time used by a process.
*
- * Thanks to Warren Gish for assistance.
+ * Credits:
+ * - Thanks to Warren Gish for assistance.
+ * - Includes portable high-resolution timer code
+ * (C) 2012 David Robert Nadeau, http://NadeauSoftware.com/
+ * Creative Commons Attribution 3.0 Unported License
+ * http://creativecommons.org/licenses/by/3.0/deed.en_US
*/
#include "esl_config.h"
#include "easel.h"
#include "esl_stopwatch.h"
+static double stopwatch_getRealTime(void);
+
/*****************************************************************
* ESL_STOPWATCH object maintenance
*****************************************************************/
@@ -24,8 +31,8 @@
ESL_STOPWATCH *
esl_stopwatch_Create(void)
{
- int status;
ESL_STOPWATCH *w = NULL;
+ int status;
ESL_ALLOC(w, sizeof(ESL_STOPWATCH));
w->elapsed = 0.;
@@ -34,6 +41,7 @@ esl_stopwatch_Create(void)
return w;
ERROR:
+ esl_stopwatch_Destroy(w);
return NULL;
}
@@ -44,12 +52,12 @@ esl_stopwatch_Create(void)
void
esl_stopwatch_Destroy(ESL_STOPWATCH *w)
{
- free(w);
+ if (w)
+ free(w);
}
-
/* Function: esl_stopwatch_Start()
*
* Purpose: Start a stopwatch. This sets the base
@@ -62,12 +70,16 @@ esl_stopwatch_Destroy(ESL_STOPWATCH *w)
int
esl_stopwatch_Start(ESL_STOPWATCH *w)
{
-#ifdef HAVE_TIMES /* POSIX */
- w->t0 = times(&(w->cpu0));
-#else /* fallback to ANSI C */
+#if defined HAVE_TIMES && defined eslSTOPWATCH_HIGHRES /* System-dependent highest resolution */
+ times(&(w->cpu0));
+ w->t0 = stopwatch_getRealTime();
+#elif HAVE_TIMES /* ... else fall back to POSIX... */
+ w->t0 = times(&(w->cpu0));
+#else /* ... else fallback to ANSI C */
w->t0 = time(NULL);
w->cpu0 = clock();
#endif
+
w->elapsed = 0.;
w->user = 0.;
w->sys = 0.;
@@ -85,24 +97,35 @@ esl_stopwatch_Start(ESL_STOPWATCH *w)
int
esl_stopwatch_Stop(ESL_STOPWATCH *w)
{
-#ifdef HAVE_TIMES
+#if defined eslSTOPWATCH_HIGHRES && defined HAVE_TIMES
+ double t1;
struct tms cpu1;
+ double clk_tck;
+#elif defined HAVE_TIMES
clock_t t1;
+ struct tms cpu1;
double clk_tck;
#else
- time_t t1;
- clock_t cpu1;
+ time_t t1;
+ clock_t cpu1;
#endif
-#ifdef HAVE_TIMES /* POSIX */
+#if defined eslSTOPWATCH_HIGHRES && defined HAVE_TIMES
+ t1 = stopwatch_getRealTime();
+ w->elapsed = t1 - w->t0;
+ clk_tck = (double) sysconf(_SC_CLK_TCK);
+ times(&cpu1);
+ w->user = (double) (cpu1.tms_utime + cpu1.tms_cutime -
+ w->cpu0.tms_utime - w->cpu0.tms_cutime) / clk_tck;
+ w->sys = (double) (cpu1.tms_stime + cpu1.tms_cstime -
+ w->cpu0.tms_stime - w->cpu0.tms_cstime) / clk_tck;
+#elif defined HAVE_TIMES /* POSIX */
t1 = times(&cpu1);
-
clk_tck = (double) sysconf(_SC_CLK_TCK);
w->elapsed = (double) (t1 - w->t0) / clk_tck;
w->user = (double) (cpu1.tms_utime + cpu1.tms_cutime -
w->cpu0.tms_utime - w->cpu0.tms_cutime) / clk_tck;
-
w->sys = (double) (cpu1.tms_stime + cpu1.tms_cstime -
w->cpu0.tms_stime - w->cpu0.tms_cstime) / clk_tck;
#else /* fallback to ANSI C */
@@ -111,8 +134,8 @@ esl_stopwatch_Stop(ESL_STOPWATCH *w)
w->elapsed = difftime(t1, w->t0);
w->user = (double) (cpu1- w->cpu0) / (double) CLOCKS_PER_SEC;
w->sys = 0.; /* no way to portably get system time in ANSI C */
-
#endif
+
return eslOK;
}
@@ -163,7 +186,6 @@ format_time_string(char *buf, double sec, int do_frac)
* Returns: <eslOK> on success.
*
* Throws: <eslEWRITE> on any system write error, such as filled disk.
-
*/
int
esl_stopwatch_Display(FILE *fp, ESL_STOPWATCH *w, char *prefix)
@@ -185,6 +207,24 @@ esl_stopwatch_Display(FILE *fp, ESL_STOPWATCH *w, char *prefix)
}
+
+/* Function: esl_stopwatch_GetElapsed()
+ * Synopsis: Return the elapsed time in seconds
+ * Incept: SRE, Fri Jan 8 10:10:37 2016
+ *
+ * Purpose: After watch <w> is Stop()'ed, calling
+ * <esl_stopwatch_GetElapsed(w)> returns the elapsed time
+ * in seconds.
+ *
+ * The resolution is system-dependent.
+ */
+double
+esl_stopwatch_GetElapsed(ESL_STOPWATCH *w)
+{
+ return w->elapsed;
+}
+
+
/* Function: esl_stopwatch_Include()
*
* Purpose: Merge the cpu and system times from a slave into
@@ -217,6 +257,120 @@ esl_stopwatch_Include(ESL_STOPWATCH *master, ESL_STOPWATCH *w)
}
+/*****************************************************************
+ * Portable high resolution timing
+ *****************************************************************/
+
+/* The following code is
+ * (C) 2012 David Robert Nadeau, http://NadeauSoftware.com
+ * Creative Commons Attribution 3.0 Unported License
+ * http://creativecommons.org/licenses/by/3.0/deed.en_US
+ *
+ * Reference: http://nadeausoftware.com/articles/2012/04/c_c_tip_how_measure_elapsed_real_time_benchmarking
+ *
+ * On resolution:
+ * I believe that on Mac OS/X, the high performance timer has a resolution in units
+ * of nanoseconds (at least on some platforms, including my laptop). However, calling
+ * the esl_stopwatch_* functions themselves have overhead. The example driver is
+ * a reasonable test of the minimal resolution, including call overhead; that gives
+ * me about 0.1 microseconds (12 Jan 2016).
+ */
+#if defined(_WIN32)
+#include <Windows.h>
+
+#elif defined(__unix__) || defined(__unix) || defined(unix) || (defined(__APPLE__) && defined(__MACH__))
+#include <unistd.h> /* POSIX flags */
+#include <time.h> /* clock_gettime(), time() */
+#include <sys/time.h> /* gethrtime(), gettimeofday() */
+
+#if defined(__MACH__) && defined(__APPLE__)
+#include <mach/mach.h>
+#include <mach/mach_time.h>
+#endif
+
+#else
+#error "Unable to define getRealTime( ) for an unknown OS."
+#endif
+
+/**
+ * Returns the real time, in seconds, or -1.0 if an error occurred.
+ *
+ * Time is measured since an arbitrary and OS-dependent start time.
+ * The returned real time is only useful for computing an elapsed time
+ * between two calls to this function.
+ */
+static double
+stopwatch_getRealTime(void)
+{
+#if defined(_WIN32)
+ FILETIME tm;
+ ULONGLONG t;
+#if defined(NTDDI_WIN8) && NTDDI_VERSION >= NTDDI_WIN8
+ /* Windows 8, Windows Server 2012 and later. ---------------- */
+ GetSystemTimePreciseAsFileTime( &tm );
+#else
+ /* Windows 2000 and later. ---------------------------------- */
+ GetSystemTimeAsFileTime( &tm );
+#endif
+ t = ((ULONGLONG)tm.dwHighDateTime << 32) | (ULONGLONG)tm.dwLowDateTime;
+ return (double)t / 10000000.0;
+
+#elif (defined(__hpux) || defined(hpux)) || ((defined(__sun__) || defined(__sun) || defined(sun)) && (defined(__SVR4) || defined(__svr4__)))
+ /* HP-UX, Solaris. ------------------------------------------ */
+ return (double)gethrtime( ) / 1000000000.0;
+
+#elif defined(__MACH__) && defined(__APPLE__)
+ /* OSX. ----------------------------------------------------- */
+ static double timeConvert = 0.0;
+ if ( timeConvert == 0.0 )
+ {
+ mach_timebase_info_data_t timeBase;
+ (void)mach_timebase_info( &timeBase );
+ timeConvert = (double)timeBase.numer /
+ (double)timeBase.denom /
+ 1000000000.0;
+ }
+ return (double)mach_absolute_time( ) * timeConvert;
+
+#elif defined(_POSIX_VERSION)
+ /* POSIX. --------------------------------------------------- */
+#if defined(_POSIX_TIMERS) && (_POSIX_TIMERS > 0)
+ {
+ struct timespec ts;
+#if defined(CLOCK_MONOTONIC_PRECISE)
+ /* BSD. --------------------------------------------- */
+ const clockid_t id = CLOCK_MONOTONIC_PRECISE;
+#elif defined(CLOCK_MONOTONIC_RAW)
+ /* Linux. ------------------------------------------- */
+ const clockid_t id = CLOCK_MONOTONIC_RAW;
+#elif defined(CLOCK_HIGHRES)
+ /* Solaris. ----------------------------------------- */
+ const clockid_t id = CLOCK_HIGHRES;
+#elif defined(CLOCK_MONOTONIC)
+ /* AIX, BSD, Linux, POSIX, Solaris. ----------------- */
+ const clockid_t id = CLOCK_MONOTONIC;
+#elif defined(CLOCK_REALTIME)
+ /* AIX, BSD, HP-UX, Linux, POSIX. ------------------- */
+ const clockid_t id = CLOCK_REALTIME;
+#else
+ const clockid_t id = (clockid_t)-1; /* Unknown. */
+#endif /* CLOCK_* */
+ if ( id != (clockid_t)-1 && clock_gettime( id, &ts ) != -1 )
+ return (double)ts.tv_sec +
+ (double)ts.tv_nsec / 1000000000.0;
+ /* Fall thru. */
+ }
+#endif /* _POSIX_TIMERS */
+
+ /* AIX, BSD, Cygwin, HP-UX, Linux, OSX, POSIX, Solaris. ----- */
+ struct timeval tm;
+ gettimeofday( &tm, NULL );
+ return (double)tm.tv_sec + (double)tm.tv_usec / 1000000.0;
+#else
+ return -1.0; /* Failed. */
+#endif
+}
+
/*****************************************************************
* Example of using the stopwatch module
@@ -233,12 +387,22 @@ int
main(void)
{
ESL_STOPWATCH *w;
+ double t = 0.;
w = esl_stopwatch_Create();
+ /* This tests the minimum *practical* resolution of the clock,
+ * inclusive of overhead of calling the stopwatch functions.
+ * It gives me ~0.1 usec (12 Jan 2016).
+ */
esl_stopwatch_Start(w);
- sleep(5);
- esl_stopwatch_Stop(w);
+ while (t == 0.)
+ {
+ esl_stopwatch_Stop(w);
+ t = esl_stopwatch_GetElapsed(w);
+ }
+
+ printf("Elapsed time clock has practical resolution of around: %g sec\n", t);
esl_stopwatch_Display(stdout, w, "CPU Time: ");
esl_stopwatch_Destroy(w);
@@ -249,14 +413,14 @@ main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_stopwatch.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stopwatch.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_stopwatch.h b/easel/esl_stopwatch.h
index 3f8cc3b..d703a72 100644
--- a/easel/esl_stopwatch.h
+++ b/easel/esl_stopwatch.h
@@ -3,8 +3,8 @@
* SRE, Wed Feb 22 19:30:36 2006 [St. Louis] [moved to Easel]
* SRE, Thu Aug 3 08:00:35 2000 [St. Louis] [moved to SQUID]
* SRE, Fri Nov 26 14:54:21 1999 [St. Louis] [HMMER]
- * SVN $Id: esl_stopwatch.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stopwatch.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslSTOPWATCH_INCLUDED
#define eslSTOPWATCH_INCLUDED
@@ -18,21 +18,26 @@
#endif
typedef struct {
- /* t0 and cpu0 keep base, when the watch was Start()'ed */
+#ifdef eslSTOPWATCH_HIGHRES
+ double t0; /* baseline wall time from Nadeau routine */
+#elif HAVE_TIMES
+ clock_t t0; /* baseline wall time, POSIX times() */
+#else
+ time_t t0; /* baseline wall time from ANSI time() */
+#endif
+
#ifdef HAVE_TIMES
- clock_t t0; /* Wall time, POSIX times() */
- struct tms cpu0; /* CPU/system time, POSIX times()*/
+ struct tms cpu0; /* baseline CPU/system time, POSIX times() */
#else
- time_t t0; /* Wall time, fallback to ANSI time() */
- clock_t cpu0; /* CPU time, fallback to ANSI clock() */
+ clock_t cpu0; /* baseline CPU time, fallback to ANSI clock() */
#endif
/* elapsed/user/sys are t-t0 results for the last time the
* watch was Stop()'ed.
*/
- double elapsed; /* elapsed time, seconds */
- double user; /* CPU time, seconds */
- double sys; /* system time, seconds */
+ double elapsed; /* elapsed wall time, seconds */
+ double user; /* CPU time, seconds */
+ double sys; /* system time, seconds */
} ESL_STOPWATCH;
@@ -43,18 +48,20 @@ extern int esl_stopwatch_Start(ESL_STOPWATCH *w);
extern int esl_stopwatch_Stop(ESL_STOPWATCH *w);
extern int esl_stopwatch_Display(FILE *fp, ESL_STOPWATCH *w, char *prefix);
+extern double esl_stopwatch_GetElapsed(ESL_STOPWATCH *w);
+
extern int esl_stopwatch_Include(ESL_STOPWATCH *master, ESL_STOPWATCH *w);
#endif /*eslSTOPWATCH_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_stretchexp.c b/easel/esl_stretchexp.c
index e3f0bbc..a812b68 100644
--- a/easel/esl_stretchexp.c
+++ b/easel/esl_stretchexp.c
@@ -1,6 +1,23 @@
/* Statistical routines for stretched exponential distributions.
*
- * xref STL9/146
+ * Contents:
+ * 1. Evaluating densities and distributions
+ * 2. Generic API routines: for general interface w/ histogram module
+ * 3. Dumping plots for files
+ * 4. Sampling (augmentation: random)
+ * 5. ML fitting to complete data (augmentation: minimizer)
+ * 6. ML fitting to binned data (augmentation: histogram, minimizer)
+ * 7. Test driver
+ * 8. Example
+ * 9. Copyright and license information
+ *
+ * Xrefs:
+ * STL9/146 : original implementation
+ *
+ * To-do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:07:44 2013
*/
#include <esl_config.h>
@@ -23,7 +40,7 @@
#endif
/****************************************************************************
- * Routines for evaluating densities and distributions
+ * 1. Evaluating densities and distributions
****************************************************************************/
/* mu <= x < infinity
* [x=mu is no problem, but watch out for evaluating log(0) when it is]
@@ -163,11 +180,10 @@ double
esl_sxp_invcdf(double p, double mu, double lambda, double tau)
{
double x1, x2, xm; /* low, high guesses at x */
- double f1, f2, fm;
+ double f2, fm;
double tol = 1e-6;
x1 = mu;
- f1 = 0.;
x2 = mu + 1.;
do { /* bracket */
x2 = x2 + 2.*(x2-x1);
@@ -192,7 +208,7 @@ esl_sxp_invcdf(double p, double mu, double lambda, double tau)
/****************************************************************************
- * Generic API routines: for general interface w/ histogram module
+ * 2. Generic API routines: for general interface w/ histogram module
****************************************************************************/
/* Function: esl_sxp_generic_pdf()
@@ -251,7 +267,7 @@ esl_sxp_generic_invcdf(double p, void *params)
/****************************************************************************
- * Routines for dumping plots for files
+ * 3. Dumping plots for files
****************************************************************************/
/* Function: esl_sxp_Plot()
@@ -282,7 +298,7 @@ esl_sxp_Plot(FILE *fp, double mu, double lambda, double tau,
/****************************************************************************
- * Routines for sampling (requires augmentation w/ random, dirichlet modules)
+ * 4. Sampling (augmentation: random)
****************************************************************************/
#ifdef eslAUGMENT_RANDOM
/* Function: esl_sxp_Sample()
@@ -305,7 +321,7 @@ esl_sxp_Sample(ESL_RANDOMNESS *r, double mu, double lambda, double tau)
/****************************************************************************
- * Maximum likelihood fitting
+ * 5. ML fitting to complete data (augmentation: minimizer)
****************************************************************************/
#ifdef eslAUGMENT_MINIMIZER
/* This structure is used to sneak the data into minimizer's generic
@@ -378,10 +394,16 @@ esl_sxp_FitComplete(double *x, int n,
*ret_mu = mu;
*ret_lambda = exp(p[0]);
*ret_tau = exp(p[1]);
- return eslOK;
+ return status;
}
+#endif /*eslAUGMENT_MINIMIZER*/
+
+/****************************************************************************
+ * 6. ML fitting to binned data (augmentation: histogram, minimizer)
+ ****************************************************************************/
#ifdef eslAUGMENT_HISTOGRAM
+#ifdef eslAUGMENT_MINIMIZER
struct sxp_binned_data {
ESL_HISTOGRAM *g; /* contains the binned data */
double mu; /* mu is not a learnable param */
@@ -478,75 +500,16 @@ esl_sxp_FitCompleteBinned(ESL_HISTOGRAM *g,
*ret_mu = mu;
*ret_lambda = exp(p[0]);
*ret_tau = exp(p[1]);
- return eslOK;
+ return status;
}
#endif /*eslAUGMENT_HISTOGRAM*/
#endif /*eslAUGMENT_MINIMIZER*/
-/****************************************************************************
- * Example main()
- ****************************************************************************/
-#ifdef eslSTRETCHEXP_EXAMPLE
-/*::cexcerpt::sxp_example::begin::*/
-/* compile:
- gcc -g -Wall -I. -o example -DeslSTRETCHEXP_EXAMPLE\
- -DeslAUGMENT_HISTOGRAM -DeslAUGMENT_RANDOM -DeslAUGMENT_MINIMIZER\
- esl_stretchexp.c esl_histogram.c esl_random.c esl_minimizer.c esl_stats.c esl_vectorops.c easel.c -lm
- */
-#include <stdio.h>
-#include "easel.h"
-#include "esl_random.h"
-#include "esl_histogram.h"
-#include "esl_stretchexp.h"
-
-int
-main(int argc, char **argv)
-{
- double mu = -50.0;
- double lambda = 2.5;
- double tau = 0.7;
- ESL_HISTOGRAM *h = esl_histogram_CreateFull(mu, 100., 0.1);
- ESL_RANDOMNESS *r = esl_randomness_Create(0);
- int n = 10000;
- double *data;
- int ndata;
- double emu, elam, etau;
- int i;
- double x;
-
- for (i = 0; i < n; i++)
- {
- x = esl_sxp_Sample(r, mu, lambda, tau);
- esl_histogram_Add(h, x);
- }
- esl_histogram_GetData(h, &data, &ndata);
-
- /* Plot the empirical (sampled) and expected survivals */
- esl_histogram_PlotSurvival(stdout, h);
- esl_sxp_Plot(stdout, mu, lambda, tau,
- &esl_sxp_surv, h->xmin, h->xmax, 0.1);
-
- /* ML fit to complete data, and plot fitted survival curve */
- esl_sxp_FitComplete(data, ndata, &emu, &elam, &etau);
- esl_sxp_Plot(stdout, emu, elam, etau,
- &esl_sxp_surv, h->xmin, h->xmax, 0.1);
-
- /* ML fit to binned data, plot fitted survival curve */
- esl_sxp_FitCompleteBinned(h, &emu, &elam, &etau);
- esl_sxp_Plot(stdout, emu, elam, etau,
- &esl_sxp_surv, h->xmin, h->xmax, 0.1);
-
- esl_randomness_Destroy(r);
- esl_histogram_Destroy(h);
- return 0;
-}
-/*::cexcerpt::sxp_example::end::*/
-#endif /*eslSTRETCHEXP_EXAMPLE*/
/****************************************************************************
- * Test driver
+ * 7. Test driver
****************************************************************************/
#ifdef eslSTRETCHEXP_TESTDRIVE
/* gcc -g -Wall -I. -L . -o stretchexp_utest -DeslSTRETCHEXP_TESTDRIVE esl_stretchexp.c -leasel -lm
@@ -621,7 +584,7 @@ main(int argc, char **argv)
if (plotfile != NULL) {
if ((pfp = fopen(plotfile, "w")) == NULL)
- ESL_EXCEPTION(eslFAIL, "Failed to open plotfile");
+ esl_fatal("Failed to open plotfile");
}
for (i = 0; i < n; i++)
@@ -635,23 +598,17 @@ main(int argc, char **argv)
if (be_verbose)
printf("Complete data fit: mu = %f lambda = %f tau = %f\n",
emu, elambda, etau);
- if (fabs( (emu-mu)/mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted mu > 1%\n");
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted lambda > 10%\n");
- if (fabs( (etau-tau)/tau ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted tau > 10%\n");
+ if (fabs( (emu-mu)/mu ) > 0.01) esl_fatal("Error in (complete) fitted mu > 1%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) esl_fatal("Error in (complete) fitted lambda > 10%\n");
+ if (fabs( (etau-tau)/tau ) > 0.10) esl_fatal("Error in (complete) fitted tau > 10%\n");
esl_sxp_FitCompleteBinned(h, &emu, &elambda, &etau);
if (be_verbose)
printf("Binned data fit: mu = %f lambda = %f tau = %f\n",
emu, elambda, etau);
- if (fabs( (emu-mu)/mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted mu > 1%\n");
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 10%\n");
- if (fabs( (etau-tau)/tau ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted tau > 10%\n");
+ if (fabs( (emu-mu)/mu ) > 0.01) esl_fatal("Error in (binned) fitted mu > 1%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) esl_fatal("Error in (binned) fitted lambda > 10%\n");
+ if (fabs( (etau-tau)/tau ) > 0.10) esl_fatal("Error in (binned) fitted tau > 10%\n");
if (plot_pdf) esl_sxp_Plot(pfp, mu, lambda, tau, &esl_sxp_pdf, xmin, xmax, xstep);
if (plot_logpdf) esl_sxp_Plot(pfp, mu, lambda, tau, &esl_sxp_logpdf, xmin, xmax, xstep);
@@ -668,16 +625,75 @@ main(int argc, char **argv)
}
#endif /*eslSTRETCHEXP_TESTDRIVE*/
+/****************************************************************************
+ * Example main()
+ ****************************************************************************/
+#ifdef eslSTRETCHEXP_EXAMPLE
+/*::cexcerpt::sxp_example::begin::*/
+/* compile:
+ gcc -g -Wall -I. -o example -DeslSTRETCHEXP_EXAMPLE\
+ -DeslAUGMENT_HISTOGRAM -DeslAUGMENT_RANDOM -DeslAUGMENT_MINIMIZER\
+ esl_stretchexp.c esl_histogram.c esl_random.c esl_minimizer.c esl_stats.c esl_vectorops.c easel.c -lm
+ */
+#include <stdio.h>
+#include "easel.h"
+#include "esl_random.h"
+#include "esl_histogram.h"
+#include "esl_stretchexp.h"
+
+int
+main(int argc, char **argv)
+{
+ double mu = -50.0;
+ double lambda = 2.5;
+ double tau = 0.7;
+ ESL_HISTOGRAM *h = esl_histogram_CreateFull(mu, 100., 0.1);
+ ESL_RANDOMNESS *r = esl_randomness_Create(0);
+ int n = 10000;
+ double *data;
+ int ndata;
+ double emu, elam, etau;
+ int i;
+ double x;
+
+ for (i = 0; i < n; i++)
+ {
+ x = esl_sxp_Sample(r, mu, lambda, tau);
+ esl_histogram_Add(h, x);
+ }
+ esl_histogram_GetData(h, &data, &ndata);
+
+ /* Plot the empirical (sampled) and expected survivals */
+ esl_histogram_PlotSurvival(stdout, h);
+ esl_sxp_Plot(stdout, mu, lambda, tau,
+ &esl_sxp_surv, h->xmin, h->xmax, 0.1);
+
+ /* ML fit to complete data, and plot fitted survival curve */
+ esl_sxp_FitComplete(data, ndata, &emu, &elam, &etau);
+ esl_sxp_Plot(stdout, emu, elam, etau,
+ &esl_sxp_surv, h->xmin, h->xmax, 0.1);
+
+ /* ML fit to binned data, plot fitted survival curve */
+ esl_sxp_FitCompleteBinned(h, &emu, &elam, &etau);
+ esl_sxp_Plot(stdout, emu, elam, etau,
+ &esl_sxp_surv, h->xmin, h->xmax, 0.1);
+
+ esl_randomness_Destroy(r);
+ esl_histogram_Destroy(h);
+ return 0;
+}
+/*::cexcerpt::sxp_example::end::*/
+#endif /*eslSTRETCHEXP_EXAMPLE*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_stretchexp.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stretchexp.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_stretchexp.h b/easel/esl_stretchexp.h
index b88f9fa..3da89f9 100644
--- a/easel/esl_stretchexp.h
+++ b/easel/esl_stretchexp.h
@@ -1,8 +1,8 @@
/* Stretched exponential distributions.
*
* SRE, Fri Aug 19 13:51:14 2005 [St. Louis] [xref STL9/146]
- * SVN $Id: esl_stretchexp.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_stretchexp.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslSTRETCHEXP_INCLUDED
#define eslSTRETCHEXP_INCLUDED
@@ -49,10 +49,10 @@ extern int esl_sxp_FitCompleteBinned(ESL_HISTOGRAM *g,
#endif /*eslSTRETCHEXP_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_swat.c b/easel/esl_swat.c
index 67782fa..082dc43 100644
--- a/easel/esl_swat.c
+++ b/easel/esl_swat.c
@@ -10,6 +10,7 @@
#include "esl_config.h"
#include "easel.h"
+#include "esl_composition.h"
#include "esl_scorematrix.h"
#define eslSWAT_PROHIBIT -999999999
@@ -218,13 +219,13 @@ utest_Score(char *s1, char *s2, ESL_SCOREMATRIX *S, int gop, int gex, int expect
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_swat.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_swat.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_threads.c b/easel/esl_threads.c
index efdc4d8..2152cce 100644
--- a/easel/esl_threads.c
+++ b/easel/esl_threads.c
@@ -427,14 +427,14 @@ main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_threads.c 830 2012-12-05 18:43:12Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_threads.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_threads.h b/easel/esl_threads.h
index 5bc27dd..998526c 100644
--- a/easel/esl_threads.h
+++ b/easel/esl_threads.h
@@ -1,7 +1,7 @@
/* Simple master/worker data parallelization using POSIX threads.
*
- * SVN $Id: esl_threads.h 753 2012-03-09 04:09:05Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_threads.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslTHREADS_INCLUDED
#define eslTHREADS_INCLUDED
@@ -38,10 +38,10 @@ extern int esl_threads_CPUCount(int *ret_ncpu);
#endif /*eslTHREADS_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_tree.c b/easel/esl_tree.c
index 197b032..42bcd0d 100644
--- a/easel/esl_tree.c
+++ b/easel/esl_tree.c
@@ -59,23 +59,6 @@ esl_tree_Create(int ntaxa)
T->ld = NULL;
T->rd = NULL;
- /* 2nd allocation round */
- T->N = ntaxa;
- ESL_ALLOC(T->parent, sizeof(int) * (ntaxa-1));
- ESL_ALLOC(T->left, sizeof(int) * (ntaxa-1));
- ESL_ALLOC(T->right, sizeof(int) * (ntaxa-1));
- ESL_ALLOC(T->ld, sizeof(double) * (ntaxa-1));
- ESL_ALLOC(T->rd, sizeof(double) * (ntaxa-1));
-
- for (i = 0; i < ntaxa-1; i++)
- {
- T->parent[i] = 0;
- T->left[i ] = 0;
- T->right[i] = 0;
- T->ld[i] = 0.;
- T->rd[i] = 0.;
- }
-
/* Optional info starts NULL
*/
T->taxaparent = NULL;
@@ -95,6 +78,22 @@ esl_tree_Create(int ntaxa)
T->show_quoted_labels = FALSE;
T->show_numeric_taxonlabels = TRUE;
+ /* 2nd allocation round */
+ T->N = ntaxa;
+ ESL_ALLOC(T->parent, sizeof(int) * (ntaxa-1));
+ ESL_ALLOC(T->left, sizeof(int) * (ntaxa-1));
+ ESL_ALLOC(T->right, sizeof(int) * (ntaxa-1));
+ ESL_ALLOC(T->ld, sizeof(double) * (ntaxa-1));
+ ESL_ALLOC(T->rd, sizeof(double) * (ntaxa-1));
+
+ for (i = 0; i < ntaxa-1; i++)
+ {
+ T->parent[i] = 0;
+ T->left[i ] = 0;
+ T->right[i] = 0;
+ T->ld[i] = 0.;
+ T->rd[i] = 0.;
+ }
T->nalloc = ntaxa;
return T;
@@ -259,8 +258,9 @@ esl_tree_SetTaxaParents(ESL_TREE *T)
int i;
int status;
- if (T->taxaparent != NULL) return eslOK; /* map already exists. */
+ if (T->taxaparent != NULL) return eslOK; // map already exists.
ESL_ALLOC(T->taxaparent, sizeof(int) * T->N);
+ for (i = 0; i < T->N; i++) T->taxaparent[i] = 0; // solely to calm static analyzers.
for (i = 0; i < T->N-1; i++) /* traversal order doesn't matter */
{
@@ -341,7 +341,7 @@ esl_tree_SetTaxonlabels(ESL_TREE *T, char **names)
int status;
if (T->taxonlabel != NULL) esl_Free2D((void **) T->taxonlabel, T->N);
- ESL_ALLOC(T->taxonlabel, sizeof(char **) * T->nalloc);
+ ESL_ALLOC(T->taxonlabel, sizeof(char *) * T->nalloc);
for (i = 0; i < T->nalloc; i++) T->taxonlabel[i] = NULL;
if (names != NULL)
@@ -389,7 +389,6 @@ esl_tree_RenumberNodes(ESL_TREE *T)
int status;
int needs_rearranging = FALSE;
-
/* Pass 1. Preorder traverse of T by its children links;
* construct map[old] -> new.
*/
@@ -410,9 +409,8 @@ esl_tree_RenumberNodes(ESL_TREE *T)
* (traversal order doesn't matter here)
*/
if (( T2 = esl_tree_Create(T->nalloc)) == NULL) { status = eslEMEM; goto ERROR; };
- T2->N = T->N;
if (T->nodelabel != NULL) {
- ESL_ALLOC(T2->nodelabel, sizeof(char *) * (T2->nalloc-1));
+ ESL_ALLOC(T2->nodelabel, sizeof(char *) * (T2->nalloc-1));
for (v = 0; v < T2->nalloc-1; v++) T2->nodelabel[v] = NULL;
}
if (T->taxaparent != NULL) {
@@ -431,15 +429,15 @@ esl_tree_RenumberNodes(ESL_TREE *T)
T2->rd[map[v]] = T->rd[v];
if (T->taxaparent != NULL) {
- if (T->left[v] <= 0) T2->taxaparent[T->left[v]] = map[v];
- if (T->right[v] <= 0) T2->taxaparent[T->right[v]] = map[v];
+ if (T->left[v] <= 0) T2->taxaparent[-(T->left[v])] = map[v];
+ if (T->right[v] <= 0) T2->taxaparent[-(T->right[v])] = map[v];
}
- if (T->nodelabel != NULL)
- T2->nodelabel[map[v]] = T2->nodelabel[v];
+ if (T->nodelabel != NULL)
+ esl_strdup(T->nodelabel[v], -1, &(T2->nodelabel[map[v]]));
}
- /* Finally, swap the new guts of T2 with the old guts of T;
+ /* Finally, swap the new guts of T2 with the old guts of T;
* destroy T2 and return. T is now renumbered.
*/
ESL_SWAP(T->parent, T2->parent, int *);
@@ -486,7 +484,6 @@ esl_tree_VerifyUltrametric(ESL_TREE *T)
for (i = 0; i < T->N; i++)
{
d[i] = 0.0;
- child = i;
parent = T->taxaparent[i];
if (T->left[parent] == -i) d[i] += T->ld[parent];
else if (T->right[parent] == -i) d[i] += T->rd[parent];
@@ -648,6 +645,7 @@ static int
newick_validate_unquoted(char *label)
{
char *sptr;
+
for (sptr = label; *sptr != '\0'; sptr++)
{
if (! isprint(*sptr)) return eslFAIL;
@@ -756,7 +754,7 @@ newick_write_nodelabel(FILE *fp, ESL_TREE *T, int v)
else if (newick_validate_quoted(T->nodelabel[v]) == eslOK)
status = newick_write_quoted(fp, T->nodelabel[v]);
else
- ESL_EXCEPTION(eslECORRUPT, "bad node label");
+ ESL_EXCEPTION(eslECORRUPT, "bad node label\n");
return status;
}
@@ -1028,7 +1026,7 @@ newick_parse_quoted_label(FILE *fp, char *buf, int *pos, int *nc, char **ret_lab
}
/* backtrack over any trailing whitespace and nul-terminate. */
- while (isspace(label[n-1]) && n > 0) n--;
+ while (n>0 && isspace(label[n-1])) n--;
label[n] = '\0';
*ret_label = label;
return eslOK;
@@ -1107,7 +1105,7 @@ newick_parse_branchlength(FILE *fp, char *buf, int *pos, int *nc, double *ret_d)
ESL_ALLOC(branch, sizeof(char) * nalloc);
if (buf[*pos] != ':') { status = eslEFORMAT; goto ERROR; }
- if (newick_advance_buffer(fp, buf, pos, nc) != eslOK) goto ERROR;
+ if (( status = newick_advance_buffer(fp, buf, pos, nc)) != eslOK) goto ERROR;
while (1) {
if (strchr("(]", buf[*pos]) != NULL) { status = eslEFORMAT; goto ERROR; }
@@ -1248,6 +1246,7 @@ esl_tree_ReadNewick(FILE *fp, char *errbuf, ESL_TREE **ret_T)
*/
while ((status = esl_stack_CPop(cs, &c)) == eslOK)
{
+
if (newick_skip_whitespace(fp, buf, &pos, &nc) != eslOK)
ESL_XFAIL(eslEFORMAT, errbuf, "file ended prematurely.");
@@ -1264,8 +1263,6 @@ esl_tree_ReadNewick(FILE *fp, char *errbuf, ESL_TREE **ret_T)
{
if (buf[pos] != ';')
ESL_XFAIL(eslEFORMAT, errbuf, "expected a semicolon, saw %c.", buf[pos]);
- if (newick_advance_buffer(fp, buf, &pos, &nc) == eslEOF)
- ESL_XFAIL(eslEFORMAT, errbuf, "file ended prematurely.");
break; /* end of the Newick file */
}
@@ -1396,6 +1393,7 @@ esl_tree_ReadNewick(FILE *fp, char *errbuf, ESL_TREE **ret_T)
}
esl_tree_RenumberNodes(T);
+
esl_stack_Destroy(cs);
esl_stack_Destroy(vs);
*ret_T = T;
@@ -1651,8 +1649,8 @@ cluster_engine(ESL_DMATRIX *D_original, int mode, ESL_TREE **ret_T)
*/
T->ld[N-2] = T->rd[N-2] = height[N-2];
if (! T->is_linkage_tree) {
- if (idx[i] > 0) T->ld[N-2] -= height[idx[i]];
- if (idx[j] > 0) T->rd[N-2] -= height[idx[j]];
+ if (idx[i] > 0) T->ld[N-2] = ESL_MAX(0., T->ld[N-2] - height[idx[i]]); // max to 0, to avoid fp roundoff giving us negative length
+ if (idx[j] > 0) T->rd[N-2] = ESL_MAX(0., T->rd[N-2] - height[idx[j]]);
}
/* If either node was an internal node, record parent in it.
@@ -1846,7 +1844,7 @@ esl_tree_Simulate(ESL_RANDOMNESS *r, int N, ESL_TREE **ret_T)
* node (in <branchpapa>) and a 0/1 flag (in <branchside>)
* for the branch to the left vs. right child.
*/
- if ((T = esl_tree_Create(N)) == NULL) goto ERROR;
+ if ((T = esl_tree_Create(N)) == NULL) { status = eslEMEM; goto ERROR; }
ESL_ALLOC(branchpapa, sizeof(int) * N);
ESL_ALLOC(branchside, sizeof(int) * N);
@@ -2136,13 +2134,13 @@ main(int argc, char **argv)
int main(int argc, char **argv)
{
ESL_TREE *tree = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
ESL_DMATRIX *D = NULL;
- eslx_msafile_Open(NULL, argv[1], NULL, eslMSAFILE_UNKNOWN, NULL, &afp);
- eslx_msafile_Read(afp, &msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Open(NULL, argv[1], NULL, eslMSAFILE_UNKNOWN, NULL, &afp);
+ esl_msafile_Read(afp, &msa);
+ esl_msafile_Close(afp);
esl_dst_CDiffMx(msa->aseq, msa->nseq, &D);
esl_tree_UPGMA(D, &tree);
@@ -2190,13 +2188,10 @@ int main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $Id: esl_tree.c 728 2011-10-24 21:32:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_tree.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_tree.h b/easel/esl_tree.h
index c283632..0bfdfeb 100644
--- a/easel/esl_tree.h
+++ b/easel/esl_tree.h
@@ -1,8 +1,8 @@
/* Phylogenetic trees.
*
* SRE, Tue May 2 13:54:30 2006 [St. Louis]
- * SVN $Id: esl_tree.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_tree.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslTREE_INCLUDED
#define eslTREE_INCLUDED
@@ -15,7 +15,7 @@
* All trees are represented as rooted trees, starting from
* node 0. For N taxa, there are N-1 internal nodes, numbered
* 0..N-2. Taxa on leaves are numbered 0..N-1, and represented
- * in <parent>, <left>, <right> as negative numbers.
+ * in <left> and <right> as negative numbers.
*
*/
typedef struct {
@@ -119,11 +119,11 @@ extern int esl_tree_ToDistanceMatrix(ESL_TREE *T, ESL_DMATRIX **ret_D);
#endif /*eslTREE_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_vectorops.c b/easel/esl_vectorops.c
index e8ca6a4..06f121f 100644
--- a/easel/esl_vectorops.c
+++ b/easel/esl_vectorops.c
@@ -115,21 +115,38 @@ esl_vec_IIncrement(int *v, int n, int x)
*
* <esl_vec_FSum()> and <esl_vec_ISum()> do the same,
* but for float and integer vectors.
+ *
+ * The floating point summations use Kahan compensated
+ * summation, in order to minimize roundoff error
+ * accumulation. Additionally, I believe they are most
+ * accurate if vec[] is sorted in increasing order, from
+ * small to large, so you may consider sorting <vec> before
+ * summing it.
*/
double
esl_vec_DSum(double *vec, int n)
{
double sum = 0.;
+ double y,t,c;
int x;
- for (x = 0; x < n; x++) sum += vec[x];
+
+ c = 0.0;
+ for (x = 0; x < n; x++) {
+ y = vec[x] - c; t = sum + y; c = (t-sum)-y; sum = t;
+ }
return sum;
}
float
esl_vec_FSum(float *vec, int n)
{
float sum = 0.;
+ float y,t,c;
int x;
- for (x = 0; x < n; x++) sum += vec[x];
+
+ c = 0.0;
+ for (x = 0; x < n; x++) {
+ y = vec[x] - c; t = sum + y; c = (t-sum)-y; sum = t;
+ }
return sum;
}
int
@@ -246,6 +263,11 @@ esl_vec_ICopy(const int *src, const int n, int *dest)
* for floating point comparisons, and strict equality
* for integer comparisons. Return <eslOK>
* if the vectors are equal, and <eslFAIL> if not.
+ *
+ * If <n=0>, the test always succeeds. In this case, either
+ * <vec1> and <vec2> (or both) may be <NULL>. This
+ * accommodates an occasional convention of leaving empty
+ * vectors <NULL>.
*
* <esl_vec_FCompare()> and <esl_vec_ICompare()> do the same,
* for float and integer vectors.
@@ -327,8 +349,17 @@ esl_vec_ISwap(int *vec1, int *vec2, int n)
* <vec> and <rev> can be the same, in which case <vec> is
* reversed in place.
*
- * <esl_vec_FReverse()> and <esl_vec_IReverse()>
- * do the same, for float and integer values.
+ * <esl_vec_FReverse()>, <esl_vec_IReverse()>, and
+ * <esl_vec_CReverse()> do the same, for float, integer,
+ * and char arrays.
+ *
+ * <esl_vec_CReverse()> needs to be used carefully if
+ * <vec> is a NUL-terminated string, instead of an array.
+ * If you reverse a string <s> in place (i.e.
+ * <esl_vec_CReverse(s, s, n)>), the trailing NUL will
+ * still be there, and you're fine. If you reverse string
+ * <s> into new storage <s2>, you'll need to NUL-terminate
+ * <s2> yourself.
*/
void
esl_vec_DReverse(double *vec, double *rev, int n)
@@ -372,7 +403,20 @@ esl_vec_IReverse(int *vec, int *rev, int n)
}
if (n%2) rev[i] = vec[i];
}
+void
+esl_vec_CReverse(char *vec, char *rev, int n)
+{
+ int i;
+ char x;
+ for (i = 0; i < n/2; i++)
+ {
+ x = vec[n-i-1];
+ rev[n-i-1] = vec[i];
+ rev[i] = x;
+ }
+ if (n%2) rev[i] = vec[i];
+}
@@ -507,6 +551,9 @@ esl_vec_IMin(const int *vec, int n)
* in <vec>. In case of ties, the element with the smallest index
* is returned.
*
+ * <n> can be 0 and <vec> can be <NULL>, in which case the
+ * function returns 0.
+ *
* <esl_vec_FArgMax()> and <esl_vec_IArgMax()> do the same,
* for float and integer vectors.
*
@@ -1407,13 +1454,13 @@ int main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_vectorops.c 762 2012-05-11 21:01:15Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_vectorops.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_vectorops.h b/easel/esl_vectorops.h
index 7b02f91..d96a068 100644
--- a/easel/esl_vectorops.h
+++ b/easel/esl_vectorops.h
@@ -42,6 +42,7 @@ extern void esl_vec_ISwap(int *vec1, int *vec2, int n);
extern void esl_vec_DReverse(double *vec, double *rev, int n);
extern void esl_vec_FReverse(float *vec, float *rev, int n);
extern void esl_vec_IReverse(int *vec, int *rev, int n);
+extern void esl_vec_CReverse(char *vec, char *rev, int n);
extern double esl_vec_DDot(double *vec1, double *vec2, int n);
extern float esl_vec_FDot(float *vec1, float *vec2, int n);
@@ -121,13 +122,13 @@ extern int esl_vec_IShuffle(ESL_RANDOMNESS *r, int *v, int n);
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_vectorops.h 762 2012-05-11 21:01:15Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_vectorops.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_vmx.c b/easel/esl_vmx.c
index 883e316..6cc9403 100644
--- a/easel/esl_vmx.c
+++ b/easel/esl_vmx.c
@@ -523,15 +523,15 @@ int main(void) { return 0; }
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_vmx.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_vmx.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
/* Additionally, esl_sse_logf() and esl_sse_expf() are
diff --git a/easel/esl_vmx.h b/easel/esl_vmx.h
index f64f34f..25900d8 100644
--- a/easel/esl_vmx.h
+++ b/easel/esl_vmx.h
@@ -1,8 +1,8 @@
#ifdef HAVE_VMX
/* Vectorized routines for PowerPC, using Altivec.
*
- * SVN $Id: esl_vmx.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_vmx.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslVMX_INCLUDED
#define eslVMX_INCLUDED
@@ -167,11 +167,11 @@ esl_vmx_hmax_u8(vector unsigned char v)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_weibull.c b/easel/esl_weibull.c
index 8c1e96c..bd7357f 100644
--- a/easel/esl_weibull.c
+++ b/easel/esl_weibull.c
@@ -1,4 +1,20 @@
/* Statistical routines for Weibull distributions.
+ *
+ * Contents:
+ * 1. Routines for evaluating densities and distributions.
+ * 2. Generic API routines, for general interface w/ histogram module
+ * 3. Dumping plots to files
+ * 4. Sampling (augmentation: random)
+ * 5. ML fitting to complete data (augmentation: minimizer)
+ * 6. ML fitting to binned data (augmentation: histogram, minimizer)
+ * 7. Test driver
+ * 8. Example
+ * 9. Copyright and licence information.
+ *
+ * To-do:
+ * - Fit*() functions should return eslEINVAL on n=0, eslENORESULT
+ * on failure due to small n. Compare esl_gumbel. xref J12/93.
+ * SRE, Wed Nov 27 11:13:48 2013
*/
#include "esl_config.h"
@@ -22,7 +38,7 @@
/****************************************************************************
- * Routines for evaluating densities and distributions
+ * 1. Routines for evaluating densities and distributions
****************************************************************************/
/* mu <= x < infinity
* However, x=mu can be a problem:
@@ -94,7 +110,7 @@ esl_wei_cdf(double x, double mu, double lambda, double tau)
double tly = tau * log(y);
if (x <= mu) return 0.0;
- else if (fabs(tly) < eslSMALLX1) return exp(tly);
+ else if (fabs(tly) < eslSMALLX1) return exp(tly);
else return 1 - exp(-exp(tly));
}
@@ -171,7 +187,7 @@ esl_wei_invcdf(double p, double mu, double lambda, double tau)
/****************************************************************************
- * Generic API routines: for general interface w/ histogram module
+ * 2. Generic API routines: for general interface w/ histogram module
****************************************************************************/
/* Function: esl_wei_generic_pdf()
@@ -230,7 +246,7 @@ esl_wei_generic_invcdf(double p, void *params)
/****************************************************************************
- * Routines for dumping plots for files
+ * 3. Dumping plots for files
****************************************************************************/
/* Function: esl_wei_Plot()
@@ -263,7 +279,7 @@ esl_wei_Plot(FILE *fp, double mu, double lambda, double tau,
/****************************************************************************
- * Routines for sampling (requires augmentation w/ random module)
+ * 4. Sampling (augmentation: random)
****************************************************************************/
#ifdef eslAUGMENT_RANDOM
@@ -284,7 +300,7 @@ esl_wei_Sample(ESL_RANDOMNESS *r, double mu, double lambda, double tau)
/****************************************************************************
- * Maximum likelihood fitting
+ * 5. ML fitting to complete data (augmentation: minimizer)
****************************************************************************/
#ifdef eslAUGMENT_MINIMIZER
/* Easel's conjugate gradient descent code allows a single void ptr to
@@ -393,8 +409,14 @@ esl_wei_FitComplete(double *x, int n, double *ret_mu,
*ret_tau = exp(p[1]);
return status;
}
+#endif /*eslAUGMENT_MINIMIZER*/
+
+/*****************************************************************
+ * 6. ML fitting to binned data (augmentation: histogram, minimizer)
+ *****************************************************************/
#ifdef eslAUGMENT_HISTOGRAM
+#ifdef eslAUGMENT_MINIMIZER
struct wei_binned_data {
ESL_HISTOGRAM *h; /* contains the binned observed data */
double mu; /* mu is considered to be known, not fitted */
@@ -432,8 +454,10 @@ wei_binned_func(double *p, int nparam, void *dptr)
tmp = esl_wei_cdf(bi, data->mu, lambda, tau) -
esl_wei_cdf(ai, data->mu, lambda, tau);
- if (tmp == 0.) return eslINFINITY;
- ESL_DASSERT1( (tmp > 0.));
+ /* for cdf~1.0, numerical roundoff error can create tmp<0 by a
+ * teensy amount; tolerate that, but catch anything worse */
+ ESL_DASSERT1( (tmp + 1e-7 > 0.));
+ if (tmp <= 0.) return eslINFINITY;
logL += h->obs[i] * log(tmp);
}
@@ -527,8 +551,129 @@ esl_wei_FitCompleteBinned(ESL_HISTOGRAM *h, double *ret_mu,
/*--------------------------- end fitting ----------------------------------*/
+
+
+/****************************************************************************
+ * 7. Test driver
+ ****************************************************************************/
+#ifdef eslWEIBULL_TESTDRIVE
+/* Compile:
+ gcc -g -Wall -I. -I ~/src/easel -L ~/src/easel -o test -DeslWEIBULL_TESTDRIVE\
+ esl_weibull.c -leasel -lm
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "easel.h"
+#include "esl_getopts.h"
+#include "esl_random.h"
+#include "esl_histogram.h"
+#include "esl_weibull.h"
+
+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", 0 },
+ { "-l", eslARG_REAL, "1.0", NULL, NULL, NULL, NULL, NULL, "set slope of sampled variates (lambda parameter) to <x> ", 0 },
+ { "-m", eslARG_REAL, "10.0", NULL, NULL, NULL, NULL, NULL, "set location of sampled variates (mu parameter) to <x>", 0 },
+ { "-n", eslARG_INT, "10000", NULL, NULL, NULL, NULL, NULL, "set # of sampled variates to <n>", 0 },
+ { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "output histogram to file <f>", 0 },
+ { "-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
+ { "-t", eslARG_REAL, "0.7", NULL, NULL, NULL, NULL, NULL, "set shape of sampled variates (tau parameter) to <x>", 0 },
+ { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be more verbose in output", 0 },
+ { "-w", eslARG_REAL, "0.1", NULL, NULL, NULL, NULL, NULL, "set width of histogram bins to <x>", 0 },
+ { "--cdf", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump plot of cumulative distribution", 0 },
+ { "--logcdf", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump plot of log cumulative distribution", 0 },
+ { "--pdf", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump plot of probability density", 0 },
+ { "--logpdf", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump plot of log probability density", 0 },
+ { "--surv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump plot of survival P(s>x)", 0 },
+ { "--logsurv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "dump plot of log survival, log(P(s>x))", 0 },
+ { "--xL", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "set minimum x-axis value on dumped plots to <x>", 0 },
+ { "--xH", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "set maximum x-axis value on dumped plots to <x>", 0 },
+ { "--xS", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "set x-axis increment value on dumped plots to <x>", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options]";
+static char banner[] = "test driver for Easel's Weibull distribution module";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_Create(esl_opt_GetInteger(go, "-s"));
+ double mu = esl_opt_GetReal (go, "-m");
+ double lambda = esl_opt_GetReal (go, "-l");
+ double tau = esl_opt_GetReal (go, "-t");
+ int n = esl_opt_GetInteger(go, "-n");
+ double binwidth = esl_opt_GetReal (go, "-w");
+ int plot_cdf = esl_opt_GetBoolean(go, "--cdf");
+ int plot_logcdf = esl_opt_GetBoolean(go, "--logcdf");
+ int plot_pdf = esl_opt_GetBoolean(go, "--pdf");
+ int plot_logpdf = esl_opt_GetBoolean(go, "--logpdf");
+ int plot_surv = esl_opt_GetBoolean(go, "--surv");
+ int plot_logsurv = esl_opt_GetBoolean(go, "--logsurv");
+ int be_verbose = esl_opt_GetBoolean(go, "-v");
+ char *plotfile = esl_opt_GetString (go, "-o");
+ ESL_HISTOGRAM *h = NULL;
+ int xmin_set = esl_opt_IsOn(go, "--xL");
+ double xmin = xmin_set ? esl_opt_GetReal(go, "--xL") : mu;
+ int xmax_set = esl_opt_IsOn(go, "--xH");
+ double xmax = xmax_set ? esl_opt_GetReal(go, "--xH") : mu+40*(1./lambda);
+ int xstep_set = esl_opt_IsOn(go, "--xH");
+ double xstep = xstep_set ? esl_opt_GetReal(go, "--xS") : 0.1;
+ FILE *pfp = stdout;
+ double emu, elambda, etau;
+ int i;
+ double x;
+ double *data;
+ int ndata;
+
+ fprintf(stderr, "## %s\n", argv[0]);
+ fprintf(stderr, "# rng seed = %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+
+ if (be_verbose) printf("Parametric: mu = %f lambda = %f tau = %f\n", mu, lambda, tau);
+
+ h = esl_histogram_CreateFull(mu, 100., binwidth);
+ if (plotfile && (pfp = fopen(plotfile, "w")) == NULL) ESL_EXCEPTION(eslFAIL, "Failed to open plotfile");
+
+ for (i = 0; i < n; i++)
+ {
+ x = esl_wei_Sample(rng, mu, lambda, tau);
+ esl_histogram_Add(h, x);
+ }
+ esl_histogram_GetData(h, &data, &ndata);
+
+ esl_wei_FitComplete(data, ndata, &emu, &elambda, &etau);
+ if (be_verbose) printf("Complete data fit: mu = %f lambda = %f tau = %f\n", emu, elambda, etau);
+ if (fabs( (emu-mu)/mu ) > 0.01) ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted mu > 1%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted lambda > 10%\n");
+ if (fabs( (etau-tau)/tau ) > 0.10) ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted tau > 10%\n");
+
+ esl_wei_FitCompleteBinned(h, &emu, &elambda, &etau);
+ if (be_verbose) printf("Binned data fit: mu = %f lambda = %f tau = %f\n", emu, elambda, etau);
+ if (fabs( (emu-mu)/mu ) > 0.01) ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted mu > 1%\n");
+ if (fabs( (elambda-lambda)/lambda ) > 0.10) ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 10%\n");
+ if (fabs( (etau-tau)/tau ) > 0.10) ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 10%\n");
+
+ if (plot_pdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_pdf, xmin, xmax, xstep);
+ if (plot_logpdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_logpdf, xmin, xmax, xstep);
+ if (plot_cdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_cdf, xmin, xmax, xstep);
+ if (plot_logcdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_logcdf, xmin, xmax, xstep);
+ if (plot_surv) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_surv, xmin, xmax, xstep);
+ if (plot_logsurv) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_logsurv, xmin, xmax, xstep);
+
+ if (plotfile) fclose(pfp);
+ esl_histogram_Destroy(h);
+ esl_randomness_Destroy(rng);
+ esl_getopts_Destroy(go);
+
+ fprintf(stderr, "# status = ok\n");
+ return 0;
+}
+#endif /*eslWEIBULL_TESTDRIVE*/
+
/****************************************************************************
- * Example main()
+ * 8. Example
****************************************************************************/
#ifdef eslWEIBULL_EXAMPLE
/*::cexcerpt::wei_example::begin::*/
@@ -590,145 +735,15 @@ main(int argc, char **argv)
#endif /*eslWEIBULL_EXAMPLE*/
-
-
-
-/****************************************************************************
- * Test driver
- ****************************************************************************/
-#ifdef eslWEIBULL_TESTDRIVE
-/* Compile:
- gcc -g -Wall -I. -I ~/src/easel -L ~/src/easel -o test -DeslWEIBULL_TESTDRIVE\
- esl_weibull.c -leasel -lm
-*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "easel.h"
-#include "esl_random.h"
-#include "esl_histogram.h"
-#include "esl_weibull.h"
-
-int
-main(int argc, char **argv)
-{
- ESL_HISTOGRAM *h;
- ESL_RANDOMNESS *r;
- double mu = 10.0;
- double lambda = 1.0;
- double tau = 0.7;
- int n = 10000;
- double binwidth = 0.1;
- double emu, elambda, etau;
- int i;
- double x;
- double *data;
- int ndata;
-
- int opti;
- int be_verbose = FALSE;
- char *plotfile = NULL;
- FILE *pfp = stdout;
- int plot_pdf = FALSE;
- int plot_logpdf = FALSE;
- int plot_cdf = FALSE;
- int plot_logcdf = FALSE;
- int plot_surv = FALSE;
- int plot_logsurv = FALSE;
- int xmin_set = FALSE;
- double xmin;
- int xmax_set = FALSE;
- double xmax;
- int xstep_set = FALSE;
- double xstep;
-
- for (opti = 1; opti < argc && *(argv[opti]) == '-'; opti++)
- {
- if (strcmp(argv[opti], "-m") == 0) mu = atof(argv[++opti]);
- else if (strcmp(argv[opti], "-l") == 0) lambda = atof(argv[++opti]);
- else if (strcmp(argv[opti], "-n") == 0) n = atoi(argv[++opti]);
- else if (strcmp(argv[opti], "-o") == 0) plotfile = argv[++opti];
- else if (strcmp(argv[opti], "-v") == 0) be_verbose = TRUE;
- else if (strcmp(argv[opti], "-t") == 0) tau = atof(argv[++opti]);
- else if (strcmp(argv[opti], "-w") == 0) binwidth = atof(argv[++opti]);
- else if (strcmp(argv[opti], "-C") == 0) plot_cdf = TRUE;
- else if (strcmp(argv[opti], "-LC") == 0) plot_logcdf = TRUE;
- else if (strcmp(argv[opti], "-P") == 0) plot_pdf = TRUE;
- else if (strcmp(argv[opti], "-LP") == 0) plot_logpdf = TRUE;
- else if (strcmp(argv[opti], "-S") == 0) plot_surv = TRUE;
- else if (strcmp(argv[opti], "-LS") == 0) plot_logsurv = TRUE;
- else if (strcmp(argv[opti], "-XL") == 0) { xmin_set = TRUE; xmin = atof(argv[++opti]); }
- else if (strcmp(argv[opti], "-XH") == 0) { xmax_set = TRUE; xmax = atof(argv[++opti]); }
- else if (strcmp(argv[opti], "-XS") == 0) { xstep_set = TRUE; xstep = atof(argv[++opti]); }
- else ESL_EXCEPTION(eslEINVAL, "bad option");
- }
-
- if (be_verbose)
- printf("Parametric: mu = %f lambda = %f tau = %f\n", mu, lambda, tau);
-
- r = esl_randomness_Create(0);
- h = esl_histogram_CreateFull(mu, 100., binwidth);
- if (plotfile != NULL) {
- if ((pfp = fopen(plotfile, "w")) == NULL)
- ESL_EXCEPTION(eslFAIL, "Failed to open plotfile");
- }
- if (! xmin_set) xmin = mu;
- if (! xmax_set) xmax = mu+40*(1./lambda);
- if (! xstep_set) xstep = 0.1;
-
- for (i = 0; i < n; i++)
- {
- x = esl_wei_Sample(r, mu, lambda, tau);
- esl_histogram_Add(h, x);
- }
- esl_histogram_GetData(h, &data, &ndata);
-
- esl_wei_FitComplete(data, ndata, &emu, &elambda, &etau);
- if (be_verbose)
- printf("Complete data fit: mu = %f lambda = %f tau = %f\n",
- emu, elambda, etau);
- if (fabs( (emu-mu)/mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted mu > 1%\n");
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted lambda > 10%\n");
- if (fabs( (etau-tau)/tau ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (complete) fitted tau > 10%\n");
-
- esl_wei_FitCompleteBinned(h, &emu, &elambda, &etau);
- if (be_verbose)
- printf("Binned data fit: mu = %f lambda = %f tau = %f\n",
- emu, elambda, etau);
- if (fabs( (emu-mu)/mu ) > 0.01)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted mu > 1%\n");
- if (fabs( (elambda-lambda)/lambda ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 10%\n");
- if (fabs( (etau-tau)/tau ) > 0.10)
- ESL_EXCEPTION(eslFAIL, "Error in (binned) fitted lambda > 10%\n");
-
- if (plot_pdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_pdf, xmin, xmax, xstep);
- if (plot_logpdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_logpdf, xmin, xmax, xstep);
- if (plot_cdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_cdf, xmin, xmax, xstep);
- if (plot_logcdf) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_logcdf, xmin, xmax, xstep);
- if (plot_surv) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_surv, xmin, xmax, xstep);
- if (plot_logsurv) esl_wei_Plot(pfp, mu, lambda, tau, &esl_wei_logsurv, xmin, xmax, xstep);
-
- if (plotfile != NULL) fclose(pfp);
- esl_histogram_Destroy(h);
- esl_randomness_Destroy(r);
- return 0;
-}
-#endif /*eslWEIBULL_TESTDRIVE*/
-
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_weibull.c 727 2011-10-24 17:17:32Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_weibull.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_weibull.h b/easel/esl_weibull.h
index 096277f..354a9ba 100644
--- a/easel/esl_weibull.h
+++ b/easel/esl_weibull.h
@@ -1,8 +1,8 @@
/* Weibull distributions.
*
* SRE, Tue Aug 9 10:48:35 2005 [St. Louis]
- * SVN $Id: esl_weibull.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_weibull.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslWEIBULL_INCLUDED
#define eslWEIBULL_INCLUDED
@@ -50,10 +50,10 @@ extern int esl_wei_FitCompleteBinned(ESL_HISTOGRAM *h, double *ret_mu,
#endif /*eslWEIBULL_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_workqueue.c b/easel/esl_workqueue.c
index 05ebc25..53e48ab 100644
--- a/easel/esl_workqueue.c
+++ b/easel/esl_workqueue.c
@@ -358,9 +358,10 @@ int esl_workqueue_WorkerUpdate(ESL_WORK_QUEUE *queue, void *in, void **out)
int cnt;
int inx;
int queueSize;
+ int status;
- if (queue == NULL) ESL_EXCEPTION(eslEINVAL, "Invalid queue object");
- if (pthread_mutex_lock (&queue->queueMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex lock failed");
+ if (queue == NULL) ESL_XEXCEPTION(eslEINVAL, "Invalid queue object");
+ if (pthread_mutex_lock (&queue->queueMutex) != 0) ESL_XEXCEPTION(eslESYS, "mutex lock failed");
queueSize = queue->queueSize;
@@ -369,14 +370,14 @@ int esl_workqueue_WorkerUpdate(ESL_WORK_QUEUE *queue, void *in, void **out)
{
/* check to make sure we don't overflow */
- if (queue->readerQueueCnt >= queueSize) ESL_EXCEPTION(eslEINVAL, "Reader queue overflow");
+ if (queue->readerQueueCnt >= queueSize) ESL_XEXCEPTION(eslEINVAL, "Reader queue overflow");
inx = (queue->readerQueueHead + queue->readerQueueCnt) % queueSize;
queue->readerQueue[inx] = in;
cnt = queue->readerQueueCnt++;
if (cnt == 0)
{
- if (pthread_cond_signal (&queue->readerQueueCond) != 0) ESL_EXCEPTION(eslESYS, "cond signal failed");
+ if (pthread_cond_signal (&queue->readerQueueCond) != 0) ESL_XEXCEPTION(eslESYS, "cond signal failed");
}
}
@@ -390,7 +391,7 @@ int esl_workqueue_WorkerUpdate(ESL_WORK_QUEUE *queue, void *in, void **out)
++queue->pendingWorkers;
while (queue->workerQueueCnt == 0)
{
- if (pthread_cond_wait (&queue->workerQueueCond, &queue->queueMutex) != 0) ESL_EXCEPTION(eslESYS, "cond wait failed");
+ if (pthread_cond_wait (&queue->workerQueueCond, &queue->queueMutex) != 0) ESL_XEXCEPTION(eslESYS, "cond wait failed");
}
--queue->pendingWorkers;
}
@@ -402,9 +403,12 @@ int esl_workqueue_WorkerUpdate(ESL_WORK_QUEUE *queue, void *in, void **out)
--queue->workerQueueCnt;
}
- if (pthread_mutex_unlock (&queue->queueMutex) != 0) ESL_EXCEPTION(eslESYS, "mutex unlock failed");
-
+ if (pthread_mutex_unlock (&queue->queueMutex) != 0) ESL_XEXCEPTION(eslESYS, "mutex unlock failed");
return eslOK;
+
+ ERROR:
+ if (out) *out = NULL;
+ return status;
}
/* Function: esl_workqueue_Dump()
@@ -553,14 +557,14 @@ main(void)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_workqueue.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_workqueue.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_workqueue.h b/easel/esl_workqueue.h
index 5d52413..1efbc6a 100644
--- a/easel/esl_workqueue.h
+++ b/easel/esl_workqueue.h
@@ -1,7 +1,7 @@
/* Simple threaded work queue using POSIX threads.
*
- * SVN $Id: esl_workqueue.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_workqueue.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslWORKQUEUE_INCLUDED
#define eslWORKQUEUE_INCLUDED
@@ -41,10 +41,10 @@ extern int esl_workqueue_Dump(ESL_WORK_QUEUE *queue);
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/esl_wuss.c b/easel/esl_wuss.c
index 8b384ce..69d64b3 100644
--- a/easel/esl_wuss.c
+++ b/easel/esl_wuss.c
@@ -1,4 +1,21 @@
/* RNA secondary structure markup in WUSS notation.
+ *
+ * <> : base pairs in stem-loops, i.e. <<<___>>>
+ * () : base pairs in helices enclosing multifurcation of all <> stems
+ * [] : base pairs in helices enclosing multifurc of at least one () helix
+ * {} : base pairs in helices enclosing even deeper multifurcations
+ *
+ * _ : (i.e. underscore) nucleotide in a hairpin loop
+ * - : (i.e. dash) nucleotide in a bulge or interior loop
+ * , : nucleotide in a multifurcation loop (mnemonic: "stem1, stem2," )
+ * : : nucleotide in external single strand
+ *
+ * Aa : (and Bb, Cc, etc) pseudoknotted base pairs, upper case on left, lower case on right.
+ *
+ * and in alignments of a seq to an RNA structure profile, as in Infernal:
+ * . : insertion relative to a known consensus structure
+ * ~ : nucleotide is unaligned to a structure profile, because of local structure alignment
+ *
*/
#include "esl_config.h"
@@ -7,6 +24,7 @@
#include "easel.h"
#include "esl_stack.h"
+#include "esl_vectorops.h"
#include "esl_wuss.h"
/* Function: esl_wuss2ct()
@@ -40,8 +58,8 @@ esl_wuss2ct(char *ss, int len, int *ct)
/* Initialization: always initialize the main pda (0);
* we'll init the pk pda's on demand.
*/
- if ((pda[0] = esl_stack_ICreate()) == NULL) goto FINISH;
for (i = 1; i <= 26; i++) pda[i] = NULL;
+ if ((pda[0] = esl_stack_ICreate()) == NULL) goto FINISH;
for (pos = 0; pos <= len; pos++) ct[pos] = 0;
@@ -126,12 +144,16 @@ esl_wuss2ct(char *ss, int len, int *ct)
* format string <ss>. <ss> must be allocated for at least
* n+1 chars (+1 for the terminal NUL).
*
- * Currently limited to nonpseudoknotted structures. Attempting
- * to convert a pseudoknot-containing <ct> will return an
- * <eslEINVAL> error.
+ * ER, Sat Aug 18 13:22:03 EDT 2012
+ * esl\_ct2wuss() extended to deal with pseudoknots structures.
+ * Pseudoknots are annotated as AA...aa, BB...bb,..., ZZ..zz.
+ * Attemting to convert a <ct> that requires more letters
+ * than [A-Z] will return an <eslEINVAL> error.
+ *
+ * Attempting to convert a <ct> that involves triplet interactions
+ * will return an <eslEINVAL> error.
*
* Returns: <eslOK> on success.
- * <eslEINVAL> if <ct> contains a pseudoknot.
*
* Throws: <eslEMEM> on allocation failure.
* <eslEINCONCEIVABLE> on internal failure.
@@ -139,111 +161,382 @@ esl_wuss2ct(char *ss, int len, int *ct)
int
esl_ct2wuss(int *ct, int n, char *ss)
{
- ESL_STACK *pda = NULL; /* main stack */
- ESL_STACK *aux = NULL; /* aux storage */
- int status = eslEMEM; /* exit status 'til proven otherwise */
- int i,j;
- int nfaces;
- int minface;
-
- ss[0] = '\0'; /* in case we abort, and caller does something dumb w/ ss */
-
- if ((pda = esl_stack_ICreate()) == NULL) goto FINISH;
- if ((aux = esl_stack_ICreate()) == NULL) goto FINISH;
-
+ int rb[26]; /* array that delimits the right bound of a pseudoknot character */
+ ESL_STACK *pda = NULL; /* stack for "main" secondary structure */
+ ESL_STACK *auxpk = NULL; /* aux stack for pseudoknot */
+ ESL_STACK *auxss = NULL; /* aux stack for single stranded */
+ int *cct = NULL; /* copy of ct vector */
+ int nfaces; /* number of faces in a cWW structure */
+ int minface; /* max depth of faces in a cWW structure */
+ int leftbound, rightbound; /* left and right bound to find basepairs belonging to a given pseudoknot */
+ int xpk = 0; /* number of pseudoknot chararactes used */
+ int npk = 0; /* number of pseudoknots */
+ int npairs = 0; /* total number of basepairs */
+ int npairs_reached = 0; /* number of basepairs found so far */
+ int found_partner; /* true if we've found left partner of a given base in stack pda */
+ int i,j,k; /* sequence indices */
+ int x; /* index for pseudoknot characters */
+ int status = eslEMEM; /* exit status 'til proven otherwise */
+
+ /* total number of basepairs */
+ for (j = 1; j <= n; j ++) { if (ct[j] > 0 && j < ct[j]) npairs ++; }
+
+ /* Copy of ct; if a pseudoknotted structure, cct will be modified later.
+ */
+ ESL_ALLOC(cct, sizeof(int)*(n+1));
+ esl_vec_ICopy(ct, (n+1), cct);
+
+ /* Initialize rightbounds for all 26 pseudoknot indices */
+ for (x = 0; x < 26; x ++) rb[x] = -1;
+
+ /* init ss[] to single stranded */
+ for (j = 0; j < n; j ++) { ss[j] = ':'; }
+ ss[n] = '\0';
+
+ /* Initialization*/
+ if ((pda = esl_stack_ICreate()) == NULL) goto FINISH;
+ if ((auxpk = esl_stack_ICreate()) == NULL) goto FINISH;
+ if ((auxss = esl_stack_ICreate()) == NULL) goto FINISH;
+
for (j = 1; j <= n; j++)
{
- if (ct[j] == 0) /* unpaired: push j. */
+ if (cct[j] == 0) /* unpaired: push j. */
{
if (esl_stack_IPush(pda, j) != eslOK) goto FINISH;
}
- else if (ct[j] > j) /* left side of a bp: push j. */
+ else if (cct[j] > j) /* left side of a bp: push j. */
{
if (esl_stack_IPush(pda, j) != eslOK) goto FINISH;
}
- else /* right side of a bp; main routine: resolve a subseq */
+ else /* right side of a bp; main routine: fingh the left partner */
{
- /* Pop back until we find the left partner of i;
- * store SS residues in aux;
- * keep track of #faces and the maximum face depth.
+ found_partner = FALSE;
+ /* Pop back until we find the left partner of j;
+ * In case this is not a nested structure, finding
+ * the left partner of j will require to put bases
+ * aside into stack auxpk.
+ *
+ * After we find the left partner of j,
+ * store single stranded residues in auxss;
+ * keep track of #faces and the maximum face depth.
*/
nfaces = 0;
minface = -1;
- while (1)
+
+ while (esl_stack_ObjectCount(pda))
{
if (esl_stack_IPop(pda, &i) != eslOK) goto FINISH;
-
+
if (i < 0) /* a face counter */
{
nfaces++;
if (i < minface) minface = i;
}
- else if (ct[i] == j)
- break; /* we found the i,j pair. */
- else if (ct[i] == 0)
+
+ else if (cct[i] == j) /* we found the i,j pair. */
{
- if (esl_stack_IPush(aux, i) != eslOK) goto FINISH;
+ found_partner = TRUE;
+ npairs_reached ++;
+ /* Now we know i,j pair; and we know how many faces are
+ * above them; and we know the max depth of those faces.
+ * That's enough to label the pair in WUSS notation.
+ * if nfaces == 0, minface is -1; <> a closing bp of a hairpin.
+ * if nfaces == 1, inherit minface, we're continuing a stem.
+ * if nfaces > 1, bump minface in depth; we're closing a bifurc.
+ */
+ if (nfaces > 1 && minface > -4) minface--;
+ switch (minface) {
+ case -1: ss[i-1] = '<'; ss[j-1] = '>'; break;
+ case -2: ss[i-1] = '('; ss[j-1] = ')'; break;
+ case -3: ss[i-1] = '['; ss[j-1] = ']'; break;
+ case -4: ss[i-1] = '{'; ss[j-1] = '}'; break;
+ default:
+ esl_stack_Destroy(pda); esl_stack_Destroy(auxpk); esl_stack_Destroy(auxss); free(cct);
+ ESL_EXCEPTION(eslEINCONCEIVABLE, "no such face code");
+ }
+ if (esl_stack_IPush(pda, minface) != eslOK) goto FINISH;
+
+ /* Now, aux contains all the unpaired residues we need to label,
+ * according to the # of faces "above" them:
+ * nfaces = 0: hairpin loop
+ * nfaces = 1: bulge or interior loop
+ * nfaces > 1: multifurc
+ */
+ while (esl_stack_IPop(auxss, &i) == eslOK)
+ {
+ switch (nfaces) {
+
+ case 0: ss[i-1] = '_'; break;
+ case 1: ss[i-1] = '-'; break;
+ default: ss[i-1] = ','; break; /* nfaces > 1 */
+ }
+ }
+ break;
}
- else /* ct[i]>0, != j: i is paired, but not to j: pseudoknot! */
+
+ else if (cct[i] == 0)
{
- esl_stack_Destroy(pda); esl_stack_Destroy(aux);
- ESL_EXCEPTION(eslEINVAL, "pseudoknots not permitted yet");
+ /* add to auxss only if originally sigle stranded */
+ if (ct[i] == 0) { if (esl_stack_IPush(auxss, i) != eslOK) goto FINISH; }
}
- }
+
+ else /* cct[i]>0, != j: i is paired, but not to j: pseudoknot! */
+ {
+ /* i is in the way to find j's left partner.
+ * Move i to stack auxpk; resolve pseudoknot(s) after we've found partern for j.
+ */
+ if (esl_stack_IPush(auxpk, i) != eslOK) goto FINISH;
+ }
+ }
- /* Now we know i,j pair; and we know how many faces are
- * above them; and we know the max depth of those faces.
- * That's enough to label the pair in WUSS notation.
- * if nfaces == 0, minface is -1; <> a closing bp of a hairpin.
- * if nfaces == 1, inherit minface, we're continuing a stem.
- * if nfaces > 1, bump minface in depth; we're closing a bifurc.
- */
- if (nfaces > 1 && minface > -4) minface--;
- switch (minface) {
- case -1: ss[i-1] = '<'; ss[j-1] = '>'; break;
- case -2: ss[i-1] = '('; ss[j-1] = ')'; break;
- case -3: ss[i-1] = '['; ss[j-1] = ']'; break;
- case -4: ss[i-1] = '{'; ss[j-1] = '}'; break;
- default:
- esl_stack_Destroy(pda); esl_stack_Destroy(aux);
- ESL_EXCEPTION(eslEINCONCEIVABLE, "no such face code");
+ if (!found_partner) {
+ esl_stack_Destroy(pda); esl_stack_Destroy(auxpk); esl_stack_Destroy(auxss); free(cct);
+ ESL_EXCEPTION(eslEINVAL, "Cannot find left partner (%d) of base %d. Likely a triplet", ct[j], j);
}
- if (esl_stack_IPush(pda, minface) != eslOK) goto FINISH;
+ } /* finished finding the left partner of j */
+
+ /* After we've found the left partner of j, resolve pks found along the way.
+ * Then, remove the pseudoknotted based from cct so we can find the rest of the structure.
+ */
+ if (esl_stack_ObjectCount(auxpk)) {
- /* Now, aux contains all the unpaired residues we need to label,
- * according to the # of faces "above" them:
- * nfaces = 0: hairpin loop
- * nfaces = 1: bulge or interior loop
- * nfaces > 1: multifurc
- */
- while (esl_stack_IPop(aux, &i) == eslOK)
+ /* init for first pseudoknot */
+ leftbound = cct[j];
+ rightbound = leftbound + 1;
+ xpk = -1; /* start with 'A' if possible again */
+
+ while (esl_stack_IPop(auxpk, &i) == eslOK) {
+
+ for (k = rightbound-1; k > leftbound; k --)
{
- switch (nfaces) {
- case 0: ss[i-1] = '_'; break;
- case 1: ss[i-1] = '-'; break;
- default: ss[i-1] = ','; break; /* nfaces > 1 */
- }
+ if (cct[k] == 0) { continue; }
+ else if (cct[k] > rightbound) { continue; }
+ else if (cct[k] == i) { break; } /* i continues the given pseudoknot */
+ else { k = leftbound; break; } /* a new pseudoknot */
}
- } /* finished processing a subseq enclosed by a bp */
- } /* finished loop over j: end position on seq, 1..n*/
+ if (k == leftbound) /* a new pseudoknot */
+ {
+ npk ++;
+ xpk ++;
+ /* figure out if we can use this alphabet index, or bump it up if necessary */
+ while (i < rb[xpk]) { xpk ++; }
+
+ leftbound = (rightbound < cct[i])? rightbound : cct[j];
+ rightbound = cct[i];
+ }
+
+ npairs_reached ++;
+ if (xpk+(int)('a') <= (int)('z')) {
+
+ /* update the rightbound of this pk index if necessary */
+ if (cct[i] > rb[xpk]) rb[xpk] = cct[i];
+
+ /* Add pk indices for this basepair */
+ ss[i-1] = (char)(xpk+(int)('A'));
+ ss[cct[i]-1] = (char)(xpk+(int)('a'));
+
+ /* remove pseudoknotted pair from cct */
+ cct[i] = 0;
+ cct[ct[i]] = 0;
+ }
+ else ESL_EXCEPTION(eslEINVAL, "Don't have enough letters to describe all different pseudoknots.");
+
+ }
+ } /* while there is something in auxpk stack */
- /* Anything that's left in the pda is either a face counter
- * or external single-strand. Face counters are negative;
- * position indices are positive.
- */
- while (esl_stack_IPop(pda, &i) == eslOK)
- if (i > 0) ss[i-1] = ':';
- ss[n] = '\0';
+ } /* finished loop over j: end position on seq, 1..n*/
+
status = eslOK;
+ ERROR:
FINISH:
- if (pda != NULL) esl_stack_Destroy(pda);
- if (aux != NULL) esl_stack_Destroy(aux);
+ if (npairs != npairs_reached)
+ ESL_EXCEPTION(eslFAIL, "found %d out of %d pairs.", npairs_reached, npairs);
+ if (pda != NULL) esl_stack_Destroy(pda);
+ if (auxpk != NULL) esl_stack_Destroy(auxpk);
+ if (auxss != NULL) esl_stack_Destroy(auxss);
+ if (cct != NULL) free(cct);
return status;
}
+/* Function: esl_ct2simplewuss()
+ * Incept: ER, Wed Aug 22 13:31:54 EDT 2012 [Janelia]
+ *
+ * Purpose: Convert a CT array <ct> for <n> residues (1..n) to a simple WUSS
+ * format string <ss>. <ss> must be allocated for at least
+ * n+1 chars (+1 for the terminal NUL).
+ *
+ * This function can be used with the <ct> of a secondary
+ * structure including arbitrary pseudoknots, or for the
+ * <ct> or a tertiary structure (say cWH, tWH, cSS,... H bonds).
+ *
+ * The string <ss> has basepairs annotated as <>, Aa, Bb, ..., Zz;
+ * unpaired bases are annotated as '.'.
+ *
+ * Attemting to convert a <ct> that requires more letters
+ * than [A-Z] will return an <eslEINVAL> error.
+ *
+ * Attempting to convert a <ct> that involves triplet interactions
+ * will return an <eslEINVAL> error.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ * <eslEINCONCEIVABLE> on internal failure.
+ */
+int
+esl_ct2simplewuss(int *ct, int n, char *ss)
+{
+ int rb[26]; /* array that delimits the right bound of a pseudoknot character */
+ ESL_STACK *pda = NULL; /* stack for "main" secondary structure */
+ ESL_STACK *auxpk = NULL; /* aux stack for pseudoknot */
+ int *cct = NULL; /* copy of ct vector */
+ int leftbound, rightbound; /* left and right bound to find basepairs belonging to a given pseudoknot */
+ int xpk = 0; /* number of pseudoknot chararactes used */
+ int npk = 0; /* number of pseudoknots */
+ int npairs = 0; /* total number of basepairs */
+ int npairs_reached = 0; /* number of basepairs found so far */
+ int found_partner; /* true if we've found left partner of a given base in stack pda */
+ int i,j,k; /* sequence indices */
+ int x; /* index for pseudoknot characters */
+ int status = eslEMEM; /* exit status 'til proven otherwise */
+
+ /* total number of basepairs */
+ for (j = 1; j <= n; j ++) { if (ct[j] > 0 && j < ct[j]) npairs ++; }
+
+ /* Copy of ct; if a pseudoknotted structure, cct will be modified later.
+ */
+ ESL_ALLOC(cct, sizeof(int)*(n+1));
+ esl_vec_ICopy(ct, (n+1), cct);
+
+ /* Initialize rightbounds for all 26 pseudoknot indices */
+ for (x = 0; x < 26; x ++) rb[x] = -1;
+
+ /* init ss[] to single stranded */
+ for (j = 0; j < n; j ++) { ss[j] = '.'; }
+ ss[n] = '\0';
+
+ /* Initialization*/
+ if ((pda = esl_stack_ICreate()) == NULL) goto FINISH;
+ if ((auxpk = esl_stack_ICreate()) == NULL) goto FINISH;
+
+ for (j = 1; j <= n; j++)
+ {
+ if (cct[j] == 0) /* unpaired: push j. */
+ {
+ if (esl_stack_IPush(pda, j) != eslOK) goto FINISH;
+ }
+ else if (cct[j] > j) /* left side of a bp: push j. */
+ {
+ if (esl_stack_IPush(pda, j) != eslOK) goto FINISH;
+ }
+ else /* right side of a bp; main routine: fingh the left partner */
+ {
+ found_partner = FALSE;
+
+ /* Pop back until we find the left partner of j;
+ * In case this is not a nested structure, finding
+ * the left partner of j will require to put bases
+ * aside into stack auxpk.
+ */
+ while (esl_stack_ObjectCount(pda))
+ {
+ if (esl_stack_IPop(pda, &i) != eslOK) goto FINISH;
+
+ if (cct[i] == j) /* we found the i,j pair. */
+ {
+ found_partner = TRUE;
+ npairs_reached ++;
+
+ ss[i-1] = '<';
+ ss[j-1] = '>';
+ break;
+ }
+
+ else if (cct[i] == 0)
+ {
+ if (ct[i] == 0) ss[i-1] = '.';
+ }
+
+ else /* cct[i]>0, != j: i is paired, but not to j: pseudoknot! */
+ {
+ /* i is in the way to find j's left partner.
+ * Move i to stack auxpk; resolve pseudoknot(s) after we've found partern for j.
+ */
+ if (esl_stack_IPush(auxpk, i) != eslOK) goto FINISH;
+ }
+ }
+
+ if (!found_partner) {
+ esl_stack_Destroy(pda); esl_stack_Destroy(auxpk); free(cct);
+ ESL_EXCEPTION(eslEINVAL, "Cannot find left partner (%d) of base %d. Likely a triplet", ct[j], j);
+ }
+ } /* finished finding the left partner of j */
+
+ /* After we've found the left partner of j, resolve pks found along the way.
+ * Then, remove the pseudoknotted based from cct so we can find the rest of the structure.
+ */
+ if (esl_stack_ObjectCount(auxpk)) {
+
+ /* init for first pseudoknot */
+ leftbound = cct[j];
+ rightbound = leftbound + 1;
+ xpk = -1; /* start with 'A' if possible again */
+
+ while (esl_stack_IPop(auxpk, &i) == eslOK) {
+
+ for (k = rightbound-1; k > leftbound; k --)
+ {
+ if (cct[k] == 0) { continue; }
+ else if (cct[k] > rightbound) { continue; }
+ else if (cct[k] == i) { break; } /* i continues the given pseudoknot */
+ else { k = leftbound; break; } /* a new pseudoknot */
+ }
+
+ if (k == leftbound) /* a new pseudoknot */
+ {
+ npk ++;
+ xpk ++;
+ /* figure out if we can use this alphabet index, or bump it up if necessary */
+ while (i < rb[xpk]) { xpk ++; }
+
+ leftbound = (rightbound < cct[i])? rightbound : cct[j];
+ rightbound = cct[i];
+ }
+
+ npairs_reached ++;
+ if (xpk+(int)('a') <= (int)('z')) {
+
+ /* update the rightbound of this pk index if necessary */
+ if (cct[i] > rb[xpk]) rb[xpk] = cct[i];
+
+ /* Add pk indices for this basepair */
+ ss[i-1] = (char)(xpk+(int)('A'));
+ ss[cct[i]-1] = (char)(xpk+(int)('a'));
+
+ /* remove pseudoknotted pair from cct */
+ cct[i] = 0;
+ cct[ct[i]] = 0;
+ }
+ else ESL_EXCEPTION(eslEINVAL, "Don't have enough letters to describe all different pseudoknots.");
+
+ }
+ } /* while there is something in auxpk stack */
+
+ } /* finished loop over j: end position on seq, 1..n*/
+
+ status = eslOK;
+ ERROR:
+ FINISH:
+ if (npairs != npairs_reached)
+ ESL_EXCEPTION(eslFAIL, "found %d out of %d pairs.", npairs_reached, npairs);
+ if (pda != NULL) esl_stack_Destroy(pda);
+ if (auxpk != NULL) esl_stack_Destroy(auxpk);
+ if (cct != NULL) free(cct);
+ return status;
+}
/* Function: esl_wuss2kh()
* Incept: SRE, Tue Feb 15 10:05:35 2005 [St. Louis]
@@ -412,14 +705,68 @@ esl_wuss_nopseudo(char *ss1, char *ss2)
}
+/* Function: esl_wuss_reverse()
+ * Synopsis: "Reverse complement" a WUSS annotation
+ * Incept: SRE, Wed Feb 10 12:46:51 2016 [JB251 BOS-MCO]
+ *
+ * Purpose: If we need to reverse complement a structure-annotated RNA
+ * sequence, we need to "reverse complement" the WUSS
+ * annotation string. Reverse complement the annotation string
+ * <ss> into caller-provided space <new>. To revcomp an annotation
+ * in place, use <esl_wuss_reverse(ss, ss)>.
+ *
+ * Old SELEX files use a different structure annotation
+ * format, with angle brackets pointing the opposite
+ * direction: \ccode{><} for a base pair. As a convenient
+ * side effect, <esl_wuss_reverse()> will also reverse
+ * complement SELEX annotation lines.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+esl_wuss_reverse(char *ss, char *new)
+{
+ int i, n;
+
+ /* first, "complement" the annotation */
+ for (i = 0; ss[i] != '\0'; i++)
+ {
+ if (isupper(ss[i])) new[i] = tolower(ss[i]);
+ else if (islower(ss[i])) new[i] = toupper(ss[i]);
+ else {
+ switch (ss[i]) {
+ case '<': new[i] = '>'; break;
+ case '>': new[i] = '<'; break;
+ case '(': new[i] = ')'; break;
+ case ')': new[i] = '('; break;
+ case '[': new[i] = ']'; break;
+ case ']': new[i] = '['; break;
+ case '{': new[i] = '}'; break;
+ case '}': new[i] = '{'; break;
+ default: new[i] = ss[i]; break;
+ }
+ }
+ }
+ n = i;
+ /* Then, reverse it in place. */
+ for (i = 0; i < n/2; i++)
+ ESL_SWAP(new[i], new[n-i-1], char);
+
+ return eslOK;
+}
+
+
#ifdef eslWUSS_TESTDRIVE
-/* gcc -g -Wall -o test -I. -DeslWUSS_TESTDRIVE wuss.c stack.c easel.c
- * ./test
+/* gcc -g -Wall -o testwuss -I. -DeslWUSS_TESTDRIVE esl_wuss.c esl_random.c esl_stack.c esl_vectorops.c easel.c
+ * ./testwuss
*/
+
#include <stdlib.h>
#include "easel.h"
+#include "esl_random.h"
#include "esl_stack.h"
+#include "esl_vectorops.h"
#include "esl_wuss.h"
int
@@ -448,6 +795,7 @@ main(int argc, char **argv)
int *ct1 = NULL;
int *ct2 = NULL;
char *ss2 = NULL;
+ char *ss3 = NULL;
int i;
int nbp, nbp_true, npk;
int status;
@@ -456,6 +804,7 @@ main(int argc, char **argv)
ESL_ALLOC(ct1, sizeof(int) * (len+1));
ESL_ALLOC(ct2, sizeof(int) * (len+1));
ESL_ALLOC(ss2, sizeof(char) * (len+1));
+ ESL_ALLOC(ss3, sizeof(char) * (len+1));
nbp_true = npk = 0;
for (i = 0; i < len; i++)
{
@@ -470,11 +819,21 @@ main(int argc, char **argv)
for (i = 1; i <= len; i++)
if (ct1[i] > i) nbp++;
if (nbp != nbp_true + npk) abort();
-
+
if (esl_wuss2kh(ss, ss) != eslOK) abort();
- if (esl_kh2wuss(ss, ss) != eslOK) abort();
+ if (esl_kh2wuss(ss, ss) != eslOK) abort();
if (esl_wuss2ct(ss, len, ct2) != eslOK) abort();
+ for (i = 1; i <= len; i++)
+ if (ct1[i] != ct2[i]) abort();
+ /* test of pseudoknots */
+ if (esl_ct2wuss(ct1, len, ss2) != eslOK) abort();
+ if (esl_wuss2ct(ss2, len, ct2) != eslOK) abort();
+ for (i = 1; i <= len; i++)
+ if (ct1[i] != ct2[i]) abort();
+
+ if (esl_ct2simplewuss(ct1, len, ss2) != eslOK) abort();
+ if (esl_wuss2ct(ss2, len, ct2) != eslOK) abort();
for (i = 1; i <= len; i++)
if (ct1[i] != ct2[i]) abort();
@@ -485,18 +844,20 @@ main(int argc, char **argv)
if (ct1[i] != ct2[i]) abort();
if (esl_wuss2ct(ss_nopk, len, ct1) != eslOK) abort();
- if (esl_ct2wuss(ct1, len, ss2) != eslOK) abort();
- if (strcmp(ss_nopk, ss2) != 0) abort();
+ if (esl_ct2wuss(ct1, len, ss3) != eslOK) abort();
+ if (strcmp(ss_nopk, ss3) != 0) abort();
free(ct1);
free(ct2);
free(ss2);
+ free(ss3);
return 0;
ERROR:
free(ct1);
free(ct2);
free(ss2);
+ free(ss3);
return status;
}
#endif /*eslWUSS_TESTDRIVE*/
@@ -505,13 +866,13 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: esl_wuss.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_wuss.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/esl_wuss.h b/easel/esl_wuss.h
index 2b226b0..ff103ac 100644
--- a/easel/esl_wuss.h
+++ b/easel/esl_wuss.h
@@ -1,27 +1,25 @@
/* RNA secondary structure markup in WUSS notation.
*
- * SRE, Tue Feb 15 10:15:28 2005
- * SVN $Id: esl_wuss.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/esl_wuss.h $
*/
#ifndef eslWUSS_INCLUDED
#define eslWUSS_INCLUDED
extern int esl_wuss2ct(char *ss, int len, int *ct);
extern int esl_ct2wuss(int *ct, int n, char *ss);
+extern int esl_ct2simplewuss(int *ct, int n, char *ss);
extern int esl_wuss2kh(char *ss, char *kh);
extern int esl_kh2wuss(char *kh, char *ss);
extern int esl_wuss_full(char *oldss, char *newss);
extern int esl_wuss_nopseudo(char *ss1, char *ss2);
-
+extern int esl_wuss_reverse(char *ss, char *new);
#endif /*eslWUSS_INCLUDED*/
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/install-sh b/easel/install-sh
old mode 100644
new mode 100755
diff --git a/easel/interface_gsl.c b/easel/interface_gsl.c
index c269834..6c57a7c 100644
--- a/easel/interface_gsl.c
+++ b/easel/interface_gsl.c
@@ -53,14 +53,14 @@ esl_GSL_MatrixInversion(ESL_DMATRIX *A, ESL_DMATRIX **ret_Ai)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: interface_gsl.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/interface_gsl.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/interface_gsl.h b/easel/interface_gsl.h
index 31f11cd..1cb68b2 100644
--- a/easel/interface_gsl.h
+++ b/easel/interface_gsl.h
@@ -3,8 +3,8 @@
* Easel's interfaces to the GNU Scientific Library
*
* SRE, Tue Jul 13 15:36:48 2004
- * SVN $Id: interface_gsl.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/interface_gsl.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslINTERFACE_GSL_INCLUDED
#define eslINTERFACE_GSL_INCLUDED
diff --git a/easel/interface_lapack.c b/easel/interface_lapack.c
index 7d927ed..27417e5 100644
--- a/easel/interface_lapack.c
+++ b/easel/interface_lapack.c
@@ -84,14 +84,14 @@ esl_lapack_dgeev(ESL_DMATRIX *A, double **ret_Er, double **ret_Ei, ESL_DMATRIX *
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*
- * SVN $Id: interface_lapack.c 685 2011-05-23 14:27:52Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/interface_lapack.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/easel/interface_lapack.h b/easel/interface_lapack.h
index 109b456..152f34e 100644
--- a/easel/interface_lapack.h
+++ b/easel/interface_lapack.h
@@ -2,8 +2,8 @@
/* interface_lapack.h
*
* SRE, Tue Jul 13 15:11:51 2004 [St. Louis]
- * SVN $Id: interface_lapack.h 664 2011-02-27 17:08:36Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/interface_lapack.h $
+ * SVN $Id$
+ * SVN $URL$
*/
#ifndef eslINTERFACE_LAPACK_INCLUDED
#define eslINTERFACE_LAPACK_INCLUDED
diff --git a/easel/makeTAGS.sh b/easel/makeTAGS.sh
new file mode 100755
index 0000000..e9e03b0
--- /dev/null
+++ b/easel/makeTAGS.sh
@@ -0,0 +1,15 @@
+#! /bin/sh
+etags configure.ac
+etags -a INSTALL
+etags -a LICENSE
+
+
+# Recursively add all .c, .h, .pl, *.tex, *.man
+find . -name "*.c" -print -or -name "*.h" -print | xargs etags -a
+find . -name "*.pl" -print -or -name "*.pm" -print | xargs etags -a
+find . -name "*.sh" -print | xargs etags -a
+find . -name "*.tex" -print | xargs etags -a
+find . -name "*.man" -print | xargs etags -a
+find . -name "*.in" -print | xargs etags -a
+find . -name "*.sqc" -print | xargs etags -a
+find . -name "*README" -print | xargs etags -a
diff --git a/easel/miniapps/Makefile.in b/easel/miniapps/Makefile.in
index aa6242e..31d0e5e 100644
--- a/easel/miniapps/Makefile.in
+++ b/easel/miniapps/Makefile.in
@@ -49,6 +49,7 @@ PROGS = esl-afetch\
esl-alimask\
esl-alimerge\
esl-alipid\
+ esl-alirev\
esl-alistat\
esl-cluster\
esl-compalign\
@@ -63,6 +64,7 @@ PROGS = esl-afetch\
esl-sfetch\
esl-shuffle\
esl-ssdraw\
+ esl-translate\
esl-weight
PROGOBJS =\
@@ -72,6 +74,7 @@ PROGOBJS =\
esl-alimask.o\
esl-alimerge.o\
esl-alipid.o\
+ esl-alirev.o\
esl-alistat.o\
esl-cluster.o\
esl-compalign.o\
@@ -86,6 +89,7 @@ PROGOBJS =\
esl-sfetch.o\
esl-shuffle.o\
esl-ssdraw.o\
+ esl-translate.o\
esl-weight.o
@@ -133,6 +137,10 @@ clean:
-rm -f *.o *~
-rm -f *.gcno *.gcda *.gcov
-rm -f TAGS
+ for prog in ${PROGS}; do\
+ if test -d $$prog.dSYM; then rm -rf $$prog.dSYM; fi;\
+ done
+
distclean: clean
-rm -f ${PROGS}
@@ -141,10 +149,10 @@ distclean: clean
################################################################
# Easel - a library of C functions for biological sequence analysis
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 HHMI Janelia Farm Research Campus
-# Other copyrights also apply. See the COPYRIGHT file for a full list.
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
#
-# Easel is distributed under the Janelia Farm Software License, a BSD
-# license. See the LICENSE file for more details.
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
################################################################
diff --git a/easel/miniapps/esl-afetch.c b/easel/miniapps/esl-afetch.c
index d2db34f..12ea92f 100644
--- a/easel/miniapps/esl-afetch.c
+++ b/easel/miniapps/esl-afetch.c
@@ -60,10 +60,10 @@ static ESL_OPTIONS options[] = {
{ 0,0,0,0,0,0,0,0,0,0 },
};
-static void create_ssi_index(ESL_GETOPTS *go, ESLX_MSAFILE *afp);
-static void multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESLX_MSAFILE *afp);
-static void onefetch (ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESLX_MSAFILE *afp);
-static void regurgitate_one_stockholm_entry(FILE *ofp, ESLX_MSAFILE *afp);
+static void create_ssi_index(ESL_GETOPTS *go, ESL_MSAFILE *afp);
+static void multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESL_MSAFILE *afp);
+static void onefetch (ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESL_MSAFILE *afp);
+static void regurgitate_one_stockholm_entry(FILE *ofp, ESL_MSAFILE *afp);
int
main(int argc, char **argv)
@@ -72,7 +72,7 @@ main(int argc, char **argv)
char *alifile = NULL; /* alignment file name */
int infmt = eslMSAFILE_UNKNOWN; /* format code for alifile */
int outfmt = eslMSAFILE_UNKNOWN; /* output format for fetched msa's */
- ESLX_MSAFILE *afp = NULL; /* open alignment file */
+ ESL_MSAFILE *afp = NULL; /* open alignment file */
FILE *ofp = NULL; /* output stream for alignments */
int status; /* easel return code */
@@ -87,18 +87,18 @@ main(int argc, char **argv)
if (esl_opt_ArgNumber(go) < 1) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n");
if (esl_opt_IsOn(go, "--informat")) {
- infmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (infmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid input alignment file format for --informat", esl_opt_GetString(go, "--informat"));
}
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid output alignment file format for --outformat", esl_opt_GetString(go, "--outformat"));
alifile = esl_opt_GetArg(go, 1);
/* Open the alignment file. */
- if ( (status = eslx_msafile_Open(NULL, alifile, NULL, infmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, alifile, NULL, infmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
/* Open the SSI index, if any */
if (! esl_opt_GetBoolean(go, "--index"))
@@ -152,7 +152,7 @@ main(int argc, char **argv)
if (ofp != stdout) printf("\n\nRetrieved alignment %s.\n", esl_opt_GetArg(go, 2));
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_getopts_Destroy(go);
exit(0);
}
@@ -162,7 +162,7 @@ main(int argc, char **argv)
* Both name and accession of MSAs are stored as keys.
*/
static void
-create_ssi_index(ESL_GETOPTS *go, ESLX_MSAFILE *afp)
+create_ssi_index(ESL_GETOPTS *go, ESL_MSAFILE *afp)
{
ESL_NEWSSI *ns = NULL;
ESL_MSA *msa = NULL;
@@ -189,10 +189,10 @@ create_ssi_index(ESL_GETOPTS *go, ESLX_MSAFILE *afp)
printf("Working... ");
fflush(stdout);
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
if (status != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ esl_msafile_ReadFailure(afp, status);
nali++;
@@ -236,7 +236,7 @@ create_ssi_index(ESL_GETOPTS *go, ESLX_MSAFILE *afp)
* the order they occur in the MSA file.
*/
static void
-multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESLX_MSAFILE *afp)
+multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESL_MSAFILE *afp)
{
ESL_KEYHASH *keys = esl_keyhash_Create();
ESL_FILEPARSER *efp = NULL;
@@ -265,9 +265,9 @@ multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESLX_MSAFILE *
if (! afp->ssi)
{
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
nali++;
if (msa->name == NULL)
@@ -275,7 +275,7 @@ multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESLX_MSAFILE *
if ( (esl_keyhash_Lookup(keys, msa->name, -1, NULL) == eslOK) ||
(msa->acc != NULL && esl_keyhash_Lookup(keys, msa->acc, -1, NULL) == eslOK))
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
esl_msa_Destroy(msa);
}
@@ -296,7 +296,7 @@ multifetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *keyfile, ESLX_MSAFILE *
* the one we're after.
*/
static void
-onefetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESLX_MSAFILE *afp)
+onefetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESL_MSAFILE *afp)
{
ESL_MSA *msa = NULL;
int nali = 1;
@@ -304,7 +304,7 @@ onefetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESLX_MSAFILE *afp)
if (afp->ssi)
{
- status = eslx_msafile_PositionByKey(afp, key);
+ status = esl_msafile_PositionByKey(afp, key);
if (status == eslENOTFOUND) esl_fatal("MSA %s not found in SSI index for file %s\n", key, afp->bf->filename);
else if (status == eslEFORMAT) esl_fatal("Failed to parse SSI index for %s\n", afp->bf->filename);
else if (status != eslOK) esl_fatal("Failed to look up location of MSA %s in SSI index of file %s\n", key, afp->bf->filename);
@@ -316,18 +316,18 @@ onefetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESLX_MSAFILE *afp)
}
else
{
- if ((status = eslx_msafile_Read(afp, &msa)) != eslOK)
- eslx_msafile_ReadFailure(afp, status);
+ if ((status = esl_msafile_Read(afp, &msa)) != eslOK)
+ esl_msafile_ReadFailure(afp, status);
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
esl_msa_Destroy(msa);
}
}
else
{ /* without an index, we have to brute-force search the file */
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (! msa->name)
esl_fatal("Every alignment in file must have a name to be retrievable. Failed to find name of alignment #%d\n", nali);
@@ -340,7 +340,7 @@ onefetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESLX_MSAFILE *afp)
if (! msa) esl_fatal("Failed to find alignment %s\n", key);
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
esl_msa_Destroy(msa);
}
}
@@ -351,13 +351,13 @@ onefetch(ESL_GETOPTS *go, FILE *ofp, int outfmt, char *key, ESLX_MSAFILE *afp)
* we reach the end-of-alignment marker.
*/
static void
-regurgitate_one_stockholm_entry(FILE *ofp, ESLX_MSAFILE *afp)
+regurgitate_one_stockholm_entry(FILE *ofp, ESL_MSAFILE *afp)
{
char *p;
esl_pos_t n;
int status;
- while ( (status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ( (status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
fwrite(p, sizeof(char), n, ofp);
fputs("\n", ofp);
@@ -370,13 +370,10 @@ regurgitate_one_stockholm_entry(FILE *ofp, ESLX_MSAFILE *afp)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-afetch.c $
- * SVN $Id: esl-afetch.c 732 2011-11-11 15:11:13Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-afetch.itest.pl b/easel/miniapps/esl-afetch.itest.pl
index 3ffda3d..18c536f 100755
--- a/easel/miniapps/esl-afetch.itest.pl
+++ b/easel/miniapps/esl-afetch.itest.pl
@@ -6,7 +6,7 @@
# Example: ./esl-afetch.itest.pl ./esl-afetch foo
#
# SRE, Fri Nov 11 09:16:49 2011
-# SVN $Id: esl-afetch.itest.pl 732 2011-11-11 15:11:13Z eddys $
+# SVN $Id$
$esl_afetch = shift;
$tmppfx = shift;
@@ -143,4 +143,5 @@ unlink "$tmppfx.sto.ssi";
unlink "$tmppfx.tmp";
unlink "$tmppfx.tmp2";
unlink "$tmppfx.name";
+unlink "$tmppfx.list";
exit 0;
diff --git a/easel/miniapps/esl-alimanip.c b/easel/miniapps/esl-alimanip.c
index 74355f6..eddb591 100644
--- a/easel/miniapps/esl-alimanip.c
+++ b/easel/miniapps/esl-alimanip.c
@@ -30,101 +30,102 @@ static char usage[] = "[options] <msafile>";
#define CLUSTOPTS "--cn-id,--cs-id,--cx-id,--cn-ins,--cs-ins,--cx-ins" /* Exclusive choice for clustering */
#define CHOOSESEQOPTS "--seq-k,--seq-r,--seq-ins,--reorder" /* Exclusive choice for choosing which seqs to keep/remove */
-#define INCOMPATWITHSMALLOPTS "--lnfract,--lxfract,--lmin,--lmax,--detrunc,--k-reorder,--seq-ins,--seq-ni,--seq-xi,--trim,--minpp,--t-keeprf,--tree,--reorder,--mask2rf,--m-keeprf,--num-all,--num-rf,--rm-gc,--sindi,--post2pp" /* Options incompatible with --small (all opts except --seq-k,--seq-r,--informat,--outformat,--rna,--dna,--amino */
-
-static int write_rf_gapthresh(const ESL_GETOPTS *go, char *errbuf, ESL_MSA *msa, float gapthresh);
-static int write_rf_given_alen(ESL_MSA *msa, char *errbuf, int *i_am_rf, int do_keep_rf_chars, char *amask, int amask_len);
-static int write_rf_given_rflen(ESL_MSA *msa, char *errbuf, int *i_am_rf, int do_keep_rf_chars, char *mask_for_rf, int mask_for_rf_len);
-static int individualize_consensus(const ESL_GETOPTS *go, char *errbuf, ESL_MSA *msa);
-static int read_sqfile(ESL_SQFILE *sqfp, const ESL_ALPHABET *abc, int nseq, ESL_SQ ***ret_sq);
-static int trim_msa(ESL_MSA *msa, ESL_SQ **sq, int do_keeprf, char *errbuf);
-static int prune_msa_based_on_posteriors(ESL_MSA *msa, float min_pp, char *errbuf);
-static int get_pp_idx(ESL_ALPHABET *abc, char ppchar);
-static int get_tree_order(ESL_TREE *T, char *errbuf, int **ret_order);
-static int reorder_msa(ESL_MSA *msa, int *order, char *errbuf);
-static int read_mask_file(char *filename, char *errbuf, char **ret_mask, int *ret_mask_len);
-static int expand_msa2mask(char *errbuf, ESL_MSA *msa1, char *xmask, ESL_MSA **newmsa1);
-static int add_gap_columns_to_msa(char *errbuf, ESL_MSA *msa, int *toadd, ESL_MSA **ret_msa, int do_treat_as_rf_gap);
-static int msa_median_length(ESL_MSA *msa);
-static int msa_remove_seqs_below_minlen(ESL_MSA *msa, float minlen, ESL_MSA **ret_new_msa);
-static int msa_remove_seqs_above_maxlen(ESL_MSA *msa, float maxlen, ESL_MSA **ret_new_msa);
-static int msa_remove_truncated_seqs(ESL_MSA *msa, char *errbuf, int ntrunc, int *i_am_rf, ESL_MSA **ret_new_msa);
-static int msa_remove_seqs_with_ambiguities(ESL_MSA *msa, int max_nambig, ESL_MSA **ret_new_msa);
-static int number_columns(ESL_MSA *msa, int do_all, int *i_am_rf, char *errbuf);
-static char digit_to_char(int digit);
-static int int_ndigits(int i);
-static char get_char_digit_x_from_int(int i, int place);
-static int read_seq_name_file(char *filename, char *errbuf, char ***ret_seqlist, int *ret_seqlist_n);
-static int msa_keep_or_remove_seqs(ESL_MSA *msa, char *errbuf, char **seqlist, int seqlist_n, int do_keep, int do_reorder, int nali, ESL_MSA **ret_new_msa);
-static int insert_x_pair_shared(ESL_MSA *msa, int *i_am_rf, int i, int j, int cfirst, int clast, double *opt_pshared, int *opt_nshared, int *opt_nins);
-static int insert_x_pair_shared_length(ESL_MSA *msa, int *i_am_rf, int i, int j, int cfirst, int clast, double *opt_pshared, double *opt_nshared, int *opt_nins);
-static int insert_x_diffmx(const ESL_GETOPTS *go, char *errbuf, ESL_MSA *msa, int rflen, int *i_am_rf, int do_length_weight, int do_only_internal_inserts, ESL_DMATRIX **ret_D);
-static int MSADivide(ESL_MSA *mmsa, ESL_DMATRIX *D, int do_mindiff, int do_nc, int do_nsize, float mindiff, int target_nc, int target_nsize, int *ret_num_msa, ESL_MSA ***ret_cmsa, int *ret_xsize, char *errbuf);
-static int select_node(ESL_TREE *T, double *diff, double mindiff, int **ret_clust, int *ret_nc, int *ret_xsize, int *ret_best, char *errbuf);
+#define INCOMPATWITHSMALLOPTS "--rffract,--lnfract,--lxfract,--lmin,--lmax,--detrunc,--k-reorder,--seq-ins,--seq-ni,--seq-xi,--trim,--minpp,--t-keeprf,--tree,--reorder,--mask2rf,--m-keeprf,--num-all,--num-rf,--rm-gc,--sindi,--post2pp" /* Options incompatible with --small (all opts except --seq-k,--seq-r,--informat,--outformat,--rna,--dna,--amino */
+
+static int write_rf_gapthresh(const ESL_GETOPTS *go, char *errbuf, ESL_MSA *msa, float gapthresh);
+static int write_rf_given_alen(ESL_MSA *msa, char *errbuf, int *i_am_rf, int do_keep_rf_chars, char *amask, int amask_len);
+static int write_rf_given_rflen(ESL_MSA *msa, char *errbuf, int *i_am_rf, int do_keep_rf_chars, char *mask_for_rf, int mask_for_rf_len);
+static int individualize_consensus(const ESL_GETOPTS *go, char *errbuf, ESL_MSA *msa);
+static int read_sqfile(ESL_SQFILE *sqfp, const ESL_ALPHABET *abc, int nseq, ESL_SQ ***ret_sq);
+static int trim_msa(ESL_MSA *msa, ESL_SQ **sq, int do_keeprf, char *errbuf);
+static int prune_msa_based_on_posteriors(ESL_MSA *msa, float min_pp, char *errbuf);
+static int get_pp_idx(ESL_ALPHABET *abc, char ppchar);
+static int get_tree_order(ESL_TREE *T, char *errbuf, int **ret_order);
+static int reorder_msa(ESL_MSA *msa, int *order, char *errbuf);
+static int read_mask_file(char *filename, char *errbuf, char **ret_mask, int *ret_mask_len);
+static int expand_msa2mask(char *errbuf, ESL_MSA *msa1, char *xmask, ESL_MSA **newmsa1);
+static int add_gap_columns_to_msa(char *errbuf, ESL_MSA *msa, int *toadd, ESL_MSA **ret_msa, int do_treat_as_rf_gap);
+static int msa_median_length(ESL_MSA *msa);
+static int msa_remove_seqs_below_minlen(ESL_MSA *msa, float minlen, int *i_am_rf, ESL_MSA **ret_new_msa);
+static int msa_remove_seqs_above_maxlen(ESL_MSA *msa, float maxlen, ESL_MSA **ret_new_msa);
+static int msa_remove_truncated_seqs(ESL_MSA *msa, char *errbuf, int ntrunc, int *i_am_rf, ESL_MSA **ret_new_msa);
+static int msa_remove_seqs_with_ambiguities(ESL_MSA *msa, int max_nambig, ESL_MSA **ret_new_msa);
+static int number_columns(ESL_MSA *msa, int do_all, int *i_am_rf, char *errbuf);
+static char digit_to_char(int digit);
+static int int_ndigits(int i);
+static char get_char_digit_x_from_int(int i, int place);
+static int read_seq_name_file(char *filename, char *errbuf, char ***ret_seqlist, int *ret_seqlist_n);
+static int msa_keep_or_remove_seqs(ESL_MSA *msa, char *errbuf, char **seqlist, int seqlist_n, int do_keep, int do_reorder, int nali, ESL_MSA **ret_new_msa);
+static int insert_x_pair_shared(ESL_MSA *msa, int *i_am_rf, int i, int j, int cfirst, int clast, double *opt_pshared, int *opt_nshared, int *opt_nins);
+static int insert_x_pair_shared_length(ESL_MSA *msa, int *i_am_rf, int i, int j, int cfirst, int clast, double *opt_pshared, double *opt_nshared, int *opt_nins);
+static int insert_x_diffmx(const ESL_GETOPTS *go, char *errbuf, ESL_MSA *msa, int rflen, int *i_am_rf, int do_length_weight, int do_only_internal_inserts, ESL_DMATRIX **ret_D);
+static int MSADivide(ESL_MSA *mmsa, ESL_DMATRIX *D, int do_mindiff, int do_nc, int do_nsize, float mindiff, int target_nc, int target_nsize, int *ret_num_msa, ESL_MSA ***ret_cmsa, int *ret_xsize, char *errbuf);
+static int select_node(ESL_TREE *T, double *diff, double mindiff, int **ret_clust, int *ret_nc, int *ret_xsize, int *ret_best, char *errbuf);
static float find_mindiff(ESL_TREE *T, double *diff, int do_nsize, int target, int **ret_clust, int *ret_nc, int *ret_xsize, int *ret_best, float *ret_mindiff, char *errbuf);
-static int determine_first_last_consensus_columns(ESL_MSA *msa, char *errbuf, int *i_am_rf, int rflen, int **ret_fA, int **ret_lA);
-static int dst_nongap_XPairId(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *ax2, double *opt_distance, int *opt_nid, int *opt_n);
-static int dst_nongap_XDiffMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, ESL_DMATRIX **ret_D);
-static int find_seqs_with_given_insert(ESL_MSA *msa, int *i_am_rf, char *errbuf, int target, int min, int max, int **ret_useme);
-static int minorize_msa(const ESL_GETOPTS *go, ESL_MSA *msa, char *errbuf, FILE *fp, char *tag, int outfmt);
-static int remove_gc_markup(ESL_MSA *msa, char *errbuf, char *tag);
-static int cp_and_add_gaps_to_aseq(char *new_aseq, char *orig_aseq, int alen, int *toadd, int nnew, char gapchar);
-static int map_rfpos_to_apos(ESL_MSA *msa, ESL_ALPHABET *abc, char *errbuf, int **ret_i_am_rf, int **ret_rf2a_map, int *ret_rflen);
-static int convert_post_to_pp(ESL_MSA *msa, char *errbuf, int nali);
-static int compare_ints(const void *el1, const void *el2);
+static int determine_first_last_consensus_columns(ESL_MSA *msa, char *errbuf, int *i_am_rf, int rflen, int **ret_fA, int **ret_lA);
+static int dst_nongap_XPairId(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *ax2, double *opt_distance, int *opt_nid, int *opt_n);
+static int dst_nongap_XDiffMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, ESL_DMATRIX **ret_D);
+static int find_seqs_with_given_insert(ESL_MSA *msa, int *i_am_rf, char *errbuf, int target, int min, int max, int **ret_useme);
+static int minorize_msa(const ESL_GETOPTS *go, ESL_MSA *msa, char *errbuf, FILE *fp, char *tag, int outfmt);
+static int remove_gc_markup(ESL_MSA *msa, char *errbuf, char *tag);
+static int cp_and_add_gaps_to_aseq(char *new_aseq, char *orig_aseq, int alen, int *toadd, int nnew, char gapchar);
+static int map_rfpos_to_apos(ESL_MSA *msa, ESL_ALPHABET *abc, char *errbuf, int **ret_i_am_rf, int **ret_rf2a_map, int *ret_rflen);
+static int convert_post_to_pp(ESL_MSA *msa, char *errbuf, int nali);
+static int compare_ints(const void *el1, const void *el2);
static ESL_OPTIONS options[] = {
- /* name type default env range togs reqs incomp help docgroup */
- { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "help; show brief info on version and usage", 1 },
- { "-o", eslARG_OUTFILE,NULL, NULL, NULL, NULL,NULL, NULL, "output the alignment to file <f>, not stdout", 1 },
- { "--informat", eslARG_STRING,NULL, NULL, NULL, NULL,NULL, NULL, "specify that input file is in format <s>", 1 },
- { "--outformat", eslARG_STRING,NULL, NULL,NULL, NULL, NULL,NULL, "specify that output format be <s>", 1 },
- { "--devhelp", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "show list of undocumented developer options", 1 },
+ /* name type default env range togs reqs incomp help docgroup */
+ { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "help; show brief info on version and usage", 1 },
+ { "-o", eslARG_OUTFILE,NULL, NULL, NULL, NULL,NULL, NULL, "output the alignment to file <f>, not stdout", 1 },
+ { "--informat", eslARG_STRING,NULL, NULL, NULL, NULL,NULL, NULL, "specify that input file is in format <s>", 1 },
+ { "--outformat", eslARG_STRING,NULL, NULL, NULL, NULL,NULL,NULL, "specify that output format be <s>", 1 },
+ { "--devhelp", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "show list of undocumented developer options", 1 },
/* options for removing/trimming/reordering sequences */
- { "--lnfract", eslARG_REAL, NULL, NULL, "0<=x<=2", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length < <x> fraction of median length", 2 },
- { "--lxfract", eslARG_REAL, NULL, NULL, "0<=x<=3", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length > <x> fraction of median length", 2 },
- { "--lmin", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length < <n> residues", 2 },
- { "--lmax", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length > <n> residues", 2 },
- { "--detrunc", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CHOOSESEQOPTS, "remove seqs w/gaps in >= <n> 5' or 3'-most non-gap #=GC RF cols",2 },
- { "--xambig", eslARG_INT, NULL, NULL, "n>=0", NULL,NULL, CHOOSESEQOPTS, "remove sequences with >= <n> ambiguous residues", 2 },
- { "--seq-r", eslARG_INFILE,NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "remove sequences with names listed in file <f>", 2 },
- { "--seq-k", eslARG_INFILE,NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "remove all seqs *except* those listed in <f>", 2 },
- { "--small", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, INCOMPATWITHSMALLOPTS, "w/--seq-r or --seq-k use minimal RAM (no seq reordering)", 2 },
- { "--k-reorder", eslARG_NONE, NULL, NULL, NULL, NULL,"--seq-k", INCOMPATWITHSMALLOPTS, "with --seq-k <f>, reorder sequences to order in <f>",2 },
- { "--seq-ins", eslARG_INT, NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "keep only seqs w/an insert after non-gap RF col <n>", 2 },
- { "--seq-ni", eslARG_INT, "1", NULL, "n>0", NULL,"--seq-ins", NULL, "w/--seq-ins require at least <n> residue insertions", 2 },
- { "--seq-xi", eslARG_INT,"1000000",NULL, "n>0", NULL,"--seq-ins", NULL, "w/--seq-ins require at most <n> residue insertions", 2 },
- { "--trim", eslARG_INFILE, NULL, NULL, NULL, NULL,NULL, NULL, "trim aligned seqs in <msafile> to subseqs in <f>", 2 },
- { "--t-keeprf", eslARG_NONE, NULL, NULL, NULL, NULL,"--trim", NULL, "w/--trim keep GC RF annotation in msa, if it exists", 2 },
- { "--minpp", eslARG_REAL, NULL, NULL, "0<x<=0.95",NULL,NULL,NULL, "replace residues with posterior probabilities < <x> with gaps", 2 },
- { "--tree", eslARG_OUTFILE,NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "reorder MSA to tree order following SLC, save Newick tree to <f>",2 },
- { "--reorder", eslARG_INFILE, NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "reorder seqs to the order listed in <f>, all seqs must be listed",2 },
+ { "--lnfract", eslARG_REAL, NULL, NULL, "0<=x<=2", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length < <x> fraction of median length", 2 },
+ { "--lxfract", eslARG_REAL, NULL, NULL, "0<=x<=3", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length > <x> fraction of median length", 2 },
+ { "--lmin", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length < <n> residues", 2 },
+ { "--lmax", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CHOOSESEQOPTS, "remove sequences w/length > <n> residues", 2 },
+ { "--rffract", eslARG_REAL, NULL, NULL, "0<=x<=1", NULL,NULL, CHOOSESEQOPTS, "remove seqs w/nongap RF len < <x> fraction of aln nongap RF len", 2 },
+ { "--detrunc", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CHOOSESEQOPTS, "remove seqs w/gaps in >= <n> 5' or 3'-most nongap #=GC RF cols", 2 },
+ { "--xambig", eslARG_INT, NULL, NULL, "n>=0", NULL,NULL, CHOOSESEQOPTS, "remove sequences with >= <n> ambiguous residues", 2 },
+ { "--seq-r", eslARG_INFILE,NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "remove sequences with names listed in file <f>", 2 },
+ { "--seq-k", eslARG_INFILE,NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "remove all seqs *except* those listed in <f>", 2 },
+ { "--small", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, INCOMPATWITHSMALLOPTS, "w/--seq-r or --seq-k use minimal RAM (no seq reordering)", 2 },
+ { "--k-reorder", eslARG_NONE, NULL, NULL, NULL, NULL,"--seq-k", INCOMPATWITHSMALLOPTS, "with --seq-k <f>, reorder sequences to order in <f>", 2 },
+ { "--seq-ins", eslARG_INT, NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "keep only seqs w/an insert after nongap RF col <n>", 2 },
+ { "--seq-ni", eslARG_INT, "1", NULL, "n>0", NULL,"--seq-ins", NULL, "w/--seq-ins require at least <n> residue insertions", 2 },
+ { "--seq-xi", eslARG_INT,"1000000",NULL, "n>0", NULL,"--seq-ins", NULL, "w/--seq-ins require at most <n> residue insertions", 2 },
+ { "--trim", eslARG_INFILE, NULL, NULL, NULL, NULL,NULL, NULL, "trim aligned seqs in <msafile> to subseqs in <f>", 2 },
+ { "--t-keeprf", eslARG_NONE, NULL, NULL, NULL, NULL,"--trim", NULL, "w/--trim keep GC RF annotation in msa, if it exists", 2 },
+ { "--minpp", eslARG_REAL, NULL, NULL, "0<x<=0.95",NULL,NULL,NULL, "replace residues with posterior probabilities < <x> with gaps", 2 },
+ { "--tree", eslARG_OUTFILE,NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "reorder MSA to tree order following SLC, save Newick tree to <f>", 2 },
+ { "--reorder", eslARG_INFILE, NULL, NULL, NULL, NULL,NULL, CHOOSESEQOPTS, "reorder seqs to the order listed in <f>, all seqs must be listed", 2 },
/* options for adding/removing alignment annotation */
- { "--mask2rf", eslARG_INFILE, FALSE,NULL, NULL, NULL,NULL, NULL, "set #=GC RF as x=1, gap=0 from 1/0s in 1-line <f>", 3 },
- { "--m-keeprf", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mask2rf", NULL, "with --mask2rf, do not overwrite nongap RF characters with 'x'", 3 },
- { "--num-all", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "add annotation numbering all columns", 3 },
- { "--num-rf", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "add annotation numbering the non-gap RF columns", 3 },
- { "--rm-gc", eslARG_STRING,NULL, NULL, NULL, NULL,NULL, "--mask2rf", "remove GC <s> markup, <s> must be RF|SS_cons|SA_cons|PP_cons", 3 },
- { "--sindi", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "annotate individual secondary structures by imposing consensus", 3 },
+ { "--mask2rf", eslARG_INFILE, FALSE,NULL, NULL, NULL,NULL, NULL, "set #=GC RF as x=1, gap=0 from 1/0s in 1-line <f>", 3 },
+ { "--m-keeprf", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mask2rf", NULL, "with --mask2rf, do not overwrite nongap RF characters with 'x'", 3 },
+ { "--num-all", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "add annotation numbering all columns", 3 },
+ { "--num-rf", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "add annotation numbering the nongap RF columns", 3 },
+ { "--rm-gc", eslARG_STRING,NULL, NULL, NULL, NULL,NULL, "--mask2rf", "remove GC <s> markup, <s> must be RF|SS_cons|SA_cons|PP_cons", 3 },
+ { "--sindi", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "annotate individual secondary structures by imposing consensus", 3 },
{ "--post2pp", eslARG_NONE, NULL, NULL, NULL, NULL,NULL, NULL, "convert infernal 0.72-1.0.2 POST posterior prob annotation to PP", 3 },
/* options for specifying the alphabet */
- { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--dna,--rna", "<msafile> contains protein alignments", 4 },
- { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--amino,--rna", "<msafile> contains DNA alignments", 4 },
- { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--amino,--dna", "<msafile> contains RNA alignments", 4 },
+ { "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--dna,--rna", "<msafile> contains protein alignments", 4 },
+ { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--amino,--rna", "<msafile> contains DNA alignments", 4 },
+ { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL,"--amino,--dna", "<msafile> contains RNA alignments", 4 },
/* All options below are developer options, only shown if --devhelp invoked */
- { "--xmask", eslARG_INFILE, NULL, NULL, NULL, NULL,NULL, NULL, "for each 0 column in <f>, add a 100% gap column to <msafile>", 101 },
- { "--cn-id", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into <n> clusters based on sequence identity", 101 },
- { "--cs-id", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into clusters on id s.t max cluster has <n> seqs", 101 },
- { "--cx-id", eslARG_REAL, NULL, NULL, "0.<x<1.",NULL,NULL, CLUSTOPTS, "split MSA into clusters s.t. no seq b/t 2 clusters > <x> seq id", 101 },
- { "--cn-ins", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into <n> clusters based on insert similarity", 101 },
- { "--cs-ins", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into clusters on inserts s.t. max cluster has <n> seqs",101 },
- { "--cx-ins", eslARG_REAL, NULL, NULL, "0.<x<1.",NULL,NULL, CLUSTOPTS, "split MSA into clusters s.t. no seq b/t 2 clusters > <x> ins id", 101 },
- { "--c-nmin", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, NULL, "only keep the cluster(s) with number of seqs > <n>", 101 },
- { "--c-mx", eslARG_OUTFILE,NULL, NULL, NULL, NULL,NULL, NULL, "output identity matrix to file <f>", 101 },
- { "-M", eslARG_STRING,NULL, NULL, NULL, NULL,NULL, "--seq-r,--seq-k", "use #=GS tag <s> to define minor alignments, and output them", 101 },
- { "--M-rf", eslARG_NONE, NULL, NULL, NULL, NULL,"-M", NULL, "w/-M, impose major #=GC RF onto all minor alns", 101 },
- { "--M-gapt", eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL,"-M", NULL, "w/-M, fraction of gaps allowed in non-gap RF columns", 101 },
+ { "--xmask", eslARG_INFILE, NULL, NULL, NULL, NULL,NULL, NULL, "for each 0 column in <f>, add a 100% gap column to <msafile>", 101 },
+ { "--cn-id", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into <n> clusters based on sequence identity", 101 },
+ { "--cs-id", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into clusters on id s.t max cluster has <n> seqs", 101 },
+ { "--cx-id", eslARG_REAL, NULL, NULL, "0.<x<1.",NULL,NULL, CLUSTOPTS, "split MSA into clusters s.t. no seq b/t 2 clusters > <x> seq id", 101 },
+ { "--cn-ins", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into <n> clusters based on insert similarity", 101 },
+ { "--cs-ins", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, CLUSTOPTS, "split MSA into clusters on inserts s.t. max cluster has <n> seqs", 101 },
+ { "--cx-ins", eslARG_REAL, NULL, NULL, "0.<x<1.",NULL,NULL, CLUSTOPTS, "split MSA into clusters s.t. no seq b/t 2 clusters > <x> ins id", 101 },
+ { "--c-nmin", eslARG_INT, NULL, NULL, "n>0", NULL,NULL, NULL, "only keep the cluster(s) with number of seqs > <n>", 101 },
+ { "--c-mx", eslARG_OUTFILE,NULL, NULL, NULL, NULL,NULL, NULL, "output identity matrix to file <f>", 101 },
+ { "-M", eslARG_STRING,NULL, NULL, NULL, NULL,NULL, "--seq-r,--seq-k", "use #=GS tag <s> to define minor alignments, and output them", 101 },
+ { "--M-rf", eslARG_NONE, NULL, NULL, NULL, NULL,"-M", NULL, "w/-M, impose major #=GC RF onto all minor alns", 101 },
+ { "--M-gapt", eslARG_REAL, "0.5", NULL, "0<=x<=1", NULL,"-M", NULL, "w/-M, fraction of gaps allowed in nongap RF columns", 101 },
{ 0,0,0,0,0,0,0,0,0,0 },
};
@@ -138,7 +139,7 @@ main(int argc, char **argv)
int infmt = eslMSAFILE_UNKNOWN; /* format code for alifile */
int outfmt = eslMSAFILE_UNKNOWN; /* format code for output ali */
int i; /* counter */
- ESLX_MSAFILE *afp = NULL; /* open ali file, normal interface */
+ ESL_MSAFILE *afp = NULL; /* open ali file, normal interface */
ESL_MSAFILE2 *afp2 = NULL; /* open ali file, legacy small-mem interface */
ESL_MSA *msa = NULL; /* one multiple sequence alignment */
int status; /* easel return code */
@@ -275,7 +276,7 @@ main(int argc, char **argv)
if (esl_opt_IsOn(go, "--informat"))
{
- infmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (infmt == eslMSAFILE_UNKNOWN)
esl_fatal("%s is not a valid input sequence file format for --informat", esl_opt_GetString(go, "--informat"));
if (esl_opt_GetBoolean(go, "--small") && infmt != eslMSAFILE_PFAM)
@@ -284,16 +285,16 @@ main(int argc, char **argv)
if (esl_opt_IsOn(go, "--outformat"))
{
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN)
esl_fatal("%s is not a valid input sequence file format for --outformat", esl_opt_GetString(go, "--outformat"));
if (esl_opt_GetBoolean(go, "--small") && outfmt != eslMSAFILE_PFAM)
esl_fatal("--small requires (and defaults to) pfam format\ncan't set --outformat %s\n", esl_opt_GetString(go, "--outformat"));
}
- /***********************************************
+ /***************************************************************
* Open the MSA file; determine alphabet; set for digital input
- ***********************************************/
+ ****************************************************************/
if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO);
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
@@ -308,8 +309,8 @@ main(int argc, char **argv)
}
else
{
- if ( (status = eslx_msafile_Open(&abc, alifile, NULL, infmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Open(&abc, alifile, NULL, infmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
infmt = afp->format;
}
@@ -385,9 +386,9 @@ main(int argc, char **argv)
nali = 0;
if (! esl_opt_GetBoolean(go, "--small")) {
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
nali++;
/* if RF exists, get i_am_rf array[0..alen] which tells us which positions are non-gap RF positions
@@ -434,7 +435,7 @@ main(int argc, char **argv)
if (esl_opt_IsOn(go, "--lnfract")) {
median = msa_median_length(msa);
minlen = esl_opt_GetReal(go, "--lnfract") * (float) median;
- msa_remove_seqs_below_minlen(msa, minlen, &new_msa);
+ msa_remove_seqs_below_minlen(msa, minlen, NULL, &new_msa); /* NULL: do not consider only nongap RF positions */
/* new_msa is msa without seqs below minlen, swap ptrs */
esl_msa_Destroy(msa);
msa = new_msa;
@@ -451,7 +452,7 @@ main(int argc, char **argv)
}
if (esl_opt_IsOn(go, "--lmin")) {
minlen = esl_opt_GetInteger(go, "--lmin");
- msa_remove_seqs_below_minlen(msa, minlen, &new_msa);
+ msa_remove_seqs_below_minlen(msa, minlen, NULL, &new_msa); /* NULL: do not consider only nongap RF positions */
/* new_msa is msa without seqs below minlen, swap ptrs */
esl_msa_Destroy(msa);
msa = new_msa;
@@ -465,6 +466,16 @@ main(int argc, char **argv)
msa = new_msa;
new_msa = NULL;
}
+ if (esl_opt_IsOn(go, "--rffract")) {
+ /* determine nongap RF length */
+ if(msa->rf == NULL) esl_fatal("with --rffract, alignment(s) must have RF annotation, alignment %d does not", nali);
+ minlen = rflen * esl_opt_GetReal(go, "--rffract");
+ msa_remove_seqs_below_minlen(msa, minlen, i_am_rf, &new_msa);
+ /* new_msa is msa without seqs below minlen, swap ptrs */
+ esl_msa_Destroy(msa);
+ msa = new_msa;
+ new_msa = NULL;
+ }
if( esl_opt_IsOn(go, "--detrunc")) {
if((status = msa_remove_truncated_seqs(msa, errbuf, esl_opt_GetInteger(go, "--detrunc"), i_am_rf, &new_msa)) != eslOK) esl_fatal(errbuf);
/* new_msa is msa without seqs below minlen, swap ptrs */
@@ -645,7 +656,7 @@ main(int argc, char **argv)
nmin = esl_opt_IsOn(go, "--c-nmin") ? esl_opt_GetInteger(go, "--c-nmin") : 1;
for(m = 0; m < nmsa; m++) {
if(cmsa[m]->nseq >= nmin) {
- status = eslx_msafile_Write(ofp, cmsa[m], outfmt);
+ status = esl_msafile_Write(ofp, cmsa[m], outfmt);
if (status == eslEMEM) esl_fatal("Memory error when outputting alignment\n");
else if (status != eslOK) esl_fatal("Writing alignment file failed with error %d\n", status);
}
@@ -667,7 +678,7 @@ main(int argc, char **argv)
* Output alignment *
********************/
if(! esl_opt_IsOn(go, "-M")) { /* if -M, we already output the alignments in minorize_msa() */
- status = eslx_msafile_Write(ofp, msa, outfmt);
+ status = esl_msafile_Write(ofp, msa, outfmt);
if (status == eslEMEM) esl_fatal("Memory error when outputting alignment\n");
else if (status != eslOK) esl_fatal("Writing alignment file failed with error %d\n", status);
}
@@ -732,7 +743,7 @@ main(int argc, char **argv)
}
if (esl_opt_GetBoolean(go, "--small")) esl_msafile2_Close(afp2);
- else eslx_msafile_Close(afp);
+ else esl_msafile_Close(afp);
esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
@@ -994,14 +1005,14 @@ static int trim_msa(ESL_MSA *msa, ESL_SQ **sq, int do_keeprf, char *errbuf)
int ualen;
if(! (msa->flags & eslMSA_DIGITAL))
- ESL_XFAIL(eslEINVAL, errbuf, "in trim_msa(), msa must be digitized.");
+ ESL_FAIL(eslEINVAL, errbuf, "in trim_msa(), msa must be digitized.");
ESL_ALLOC(aseq, sizeof(char) * (msa->alen+1));
for(i = 0; i < msa->nseq; i++)
{
- if (sq[i]->dsq == NULL) ESL_XFAIL(eslEINVAL, errbuf, "in trim_msa(), sq's must be digitized.");
- if (sq[i]->n == 0) ESL_XFAIL(eslEINVAL, errbuf, "in trim_msa(), sq[%d] is zero-length\n", i);
+ if (sq[i]->dsq == NULL) ESL_FAIL(eslEINVAL, errbuf, "in trim_msa(), sq's must be digitized.");
+ if (sq[i]->n == 0) ESL_FAIL(eslEINVAL, errbuf, "in trim_msa(), sq[%d] is zero-length\n", i);
ESL_ALLOC(a2ua_map, sizeof(int) * (msa->alen+1));
esl_vec_ISet(a2ua_map, (msa->alen+1), -1);
@@ -1026,7 +1037,7 @@ static int trim_msa(ESL_MSA *msa, ESL_SQ **sq, int do_keeprf, char *errbuf)
esl_strdup(aseq, -1, &(uaseq));
esl_strdealign(uaseq, uaseq, "-_.~", NULL);
offset = strstr(uaseq, uasubseq); /* we'll replace the first occurence of uasubseq in uaseq */
- if(offset == NULL) ESL_XFAIL(eslEINVAL, errbuf, "in trim_msa(), sq[%d] is not a subseq of msa seq %d\n", i, i);
+ if(offset == NULL) ESL_FAIL(eslEINVAL, errbuf, "in trim_msa(), sq[%d] is not a subseq of msa seq %d\n", i, i);
uastart = offset - uaseq + 1;
uaend = uastart + strlen(uasubseq) - 1;
astart = ua2a_map[uastart];
@@ -1478,6 +1489,7 @@ expand_msa2mask(char *errbuf, ESL_MSA *msa, char *xmask, ESL_MSA **newmsa)
free(nzeroesA);
return eslOK;
+
ERROR:
return status;
}
@@ -1527,13 +1539,15 @@ msa_median_length(ESL_MSA *msa)
/* Function: msa_remove_seqs_below_minlen()
*
* Purpose: Remove sequences in MSA whose dealigned length is less than a minimum length.
+ * If <i_am_rf> is non-NULL, only consider positions that are nongap RF.
*/
static int
-msa_remove_seqs_below_minlen(ESL_MSA *msa, float minlen, ESL_MSA **ret_new_msa)
+msa_remove_seqs_below_minlen(ESL_MSA *msa, float minlen, int *i_am_rf, ESL_MSA **ret_new_msa)
{
- int status;
- int *useme;
- int i;
+ int status;
+ int *useme; /* [0..msa->nseq-1]: 1 to keep sequence, 0 to remove it */
+ int i, apos; /* sequence index, alignment position */
+ int64_t len; /* length of current sequence, either nongap length (if i_am_rf == NULL) or nongap RF length (if i_am_rf != NULL) */
ESL_MSA *new_msa;
ESL_SQ *sq;
@@ -1541,13 +1555,22 @@ msa_remove_seqs_below_minlen(ESL_MSA *msa, float minlen, ESL_MSA **ret_new_msa)
ESL_ALLOC(useme, sizeof(int) * msa->nseq);
for (i = 0; i < msa->nseq; i++) {
- esl_sq_GetFromMSA(msa, i, sq);
- useme[i] = ((float) sq->n >= minlen) ? TRUE : FALSE;
- /*printf("useme[i:%d]: %d\n", i, useme[i]);*/
- esl_sq_Reuse(sq);
+ if(i_am_rf != NULL) {
+ len = 0;
+ for(apos = 1; apos <= msa->alen; apos++) {
+ if(i_am_rf[(apos-1)] && (! esl_abc_XIsGap(msa->abc, msa->ax[i][apos]))) len++;
+ }
+ }
+ else { /* i_am_rf is NULL, consider the entire sequence */
+ esl_sq_GetFromMSA(msa, i, sq);
+ len = sq->n;
+ esl_sq_Reuse(sq);
+ }
+ useme[i] = ((float) len >= minlen) ? TRUE : FALSE;
+ /*printf("useme[i:%d]: %d (len: %" PRId64 ", minlen: %.2f)\n", i, useme[i], len, minlen);*/
}
- if(esl_vec_ISum(useme, msa->nseq) == 0) esl_fatal("No sequences exceed minimum allowed length.");
+ if(esl_vec_ISum(useme, msa->nseq) == 0) esl_fatal("No sequences at or above minimum allowed length.");
if((status = esl_msa_SequenceSubset(msa, useme, &new_msa)) != eslOK) esl_fatal("esl_msa_SequenceSubset() had a problem.");
free(useme);
esl_sq_Destroy(sq);
@@ -1612,9 +1635,9 @@ msa_remove_truncated_seqs(ESL_MSA *msa, char *errbuf, int ntrunc, int *i_am_rf,
ESL_MSA *new_msa;
/* contract check */
- if(! (msa->flags & eslMSA_DIGITAL)) ESL_XFAIL(eslEINVAL, errbuf, "in msa_remove_truncated_seqs(), msa must be digitized.");
- if(msa->rf == NULL) ESL_XFAIL(eslEINVAL, errbuf, "No #=GC RF markup in alignment, it is needed for --detrunc.");
- if(i_am_rf == NULL) ESL_XFAIL(eslEINVAL, errbuf, "internal error, msa_remove_truncated_seq() i_am_rf is NULL.");
+ if(! (msa->flags & eslMSA_DIGITAL)) ESL_FAIL(eslEINVAL, errbuf, "in msa_remove_truncated_seqs(), msa must be digitized.");
+ if(msa->rf == NULL) ESL_FAIL(eslEINVAL, errbuf, "No #=GC RF markup in alignment, it is needed for --detrunc.");
+ if(i_am_rf == NULL) ESL_FAIL(eslEINVAL, errbuf, "internal error, msa_remove_truncated_seq() i_am_rf is NULL.");
ESL_ALLOC(useme, sizeof(int) * msa->nseq);
@@ -1715,7 +1738,7 @@ number_columns(ESL_MSA *msa, int do_all, int *i_am_rf, char *errbuf)
int tagidx;
/* contract check */
- if(!do_all && i_am_rf == NULL) ESL_XFAIL(eslEINVAL, errbuf, "number_columns() called but MSA has no #=GC RF annotation.");
+ if(!do_all && i_am_rf == NULL) ESL_FAIL(eslEINVAL, errbuf, "number_columns() called but MSA has no #=GC RF annotation.");
alen_ndigits = int_ndigits(msa->alen);
tagwidth = do_all ? (3+alen_ndigits) : (5+alen_ndigits); /* "COL.X" or RFCOL.X" */
@@ -2676,11 +2699,11 @@ dst_nongap_XPairId(const ESL_ALPHABET *abc, const ESL_DSQ *ax1, const ESL_DSQ *a
int
dst_nongap_XDiffMx(const ESL_ALPHABET *abc, ESL_DSQ **ax, int N, ESL_DMATRIX **ret_D)
{
- int status;
ESL_DMATRIX *D = NULL;
int i,j;
+ int status;
- if (( D = esl_dmatrix_Create(N,N) ) == NULL) goto ERROR;
+ if (( D = esl_dmatrix_Create(N,N) ) == NULL) { status = eslEMEM; goto ERROR; }
for (i = 0; i < N; i++)
{
@@ -2717,8 +2740,8 @@ static int find_seqs_with_given_insert(ESL_MSA *msa, int *i_am_rf, char *errbuf,
int i;
/* contract check */
- if(! (msa->flags & eslMSA_DIGITAL)) ESL_XFAIL(eslEINVAL, errbuf, "in find_seqs_with_given_insert(), msa must be digitized.");
- if(msa->rf == NULL) ESL_XFAIL(eslEINVAL, errbuf, "No #=GC RF markup in alignment, it is needed for --seq-ins.");
+ if(! (msa->flags & eslMSA_DIGITAL)) ESL_FAIL(eslEINVAL, errbuf, "in find_seqs_with_given_insert(), msa must be digitized.");
+ if(msa->rf == NULL) ESL_FAIL(eslEINVAL, errbuf, "No #=GC RF markup in alignment, it is needed for --seq-ins.");
ESL_ALLOC(useme,sizeof(int) * (msa->nseq));
ESL_ALLOC(ict, sizeof(int *) * (msa->alen+2));
@@ -2741,7 +2764,7 @@ static int find_seqs_with_given_insert(ESL_MSA *msa, int *i_am_rf, char *errbuf,
}
}
clen = rfpos;
- if(target > clen) ESL_XFAIL(eslEINVAL, errbuf, "--seq-ins <n> enabled with <n> = %d, but non-gap RF length of alignment is only %d columns.", target, clen);
+ if(target > clen) ESL_FAIL(eslEINVAL, errbuf, "--seq-ins <n> enabled with <n> = %d, but non-gap RF length of alignment is only %d columns.", target, clen);
for(i = 0; i < msa->nseq; i++) {
/* printf("ict[target:%d][i:%d]: %d, min: %d max: %d\n", target, i, ict[target][i], min, max); */
@@ -2885,9 +2908,9 @@ minorize_msa(const ESL_GETOPTS *go, ESL_MSA *msa, char *errbuf, FILE *fp, char *
}
if((status = reorder_msa(msa, order, errbuf)) != eslOK) return status;
- eslx_msafile_Write(fp, msa, outfmt);
+ esl_msafile_Write(fp, msa, outfmt);
for(m = 0; m < nmin; m++) {
- eslx_msafile_Write(fp, minor_msaA[m], outfmt);
+ esl_msafile_Write(fp, minor_msaA[m], outfmt);
esl_msa_Destroy(minor_msaA[m]);
}
free(minor_msaA);
@@ -2966,7 +2989,7 @@ add_gap_columns_to_msa(char *errbuf, ESL_MSA *msa, int *toadd, ESL_MSA **ret_msa
char *newstr;
/* contract check */
if(! (msa->flags & eslMSA_DIGITAL))
- ESL_XFAIL(eslEINVAL, errbuf, "in add_gap_columns_to_msa(), msa must be digitized.");
+ ESL_FAIL(eslEINVAL, errbuf, "in add_gap_columns_to_msa(), msa must be digitized.");
for(apos = 0; apos <= msa->alen; apos++)
nnew += toadd[apos];
@@ -3302,13 +3325,10 @@ compare_ints(const void *el1, const void *el2)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * $SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-alimanip.c $
- * SVN $Id: esl-alimanip.c 711 2011-07-27 20:06:15Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-alimanip.itest.pl b/easel/miniapps/esl-alimanip.itest.pl
index 9d94c29..c2b3717 100755
--- a/easel/miniapps/esl-alimanip.itest.pl
+++ b/easel/miniapps/esl-alimanip.itest.pl
@@ -8,7 +8,7 @@
# EPN, Tue Feb 2 13:19:44 2010
$eslalimanip= shift;
-$tmppfx = shift;
+$tmppfx = shift;
if (! -x "$eslalimanip") { die "FAIL: didn't find esl-alimanip binary $eslalimanip"; }
@@ -191,6 +191,20 @@ if ($output =~ /seq1/) { die "FAIL: alignment manipulated incorrectly"; }
if ($output !~ /seq2/) { die "FAIL: alignment manipulated incorrectly"; }
if ($output =~ /seq3/) { die "FAIL: alignment manipulated incorrectly"; }
+$output = `$eslalimanip --rna --lmax 29 $tmppfx.stk 2>&1`;
+if ($? != 0) { die "FAIL: esl-alimanip failed unexpectedly";}
+# should remove seq2
+if ($output !~ /seq1/) { die "FAIL: alignment manipulated incorrectly"; }
+if ($output =~ /seq2/) { die "FAIL: alignment manipulated incorrectly"; }
+if ($output !~ /seq3/) { die "FAIL: alignment manipulated incorrectly"; }
+
+$output = `$eslalimanip --rna --rffract 0.953 $tmppfx.stk 2>&1`;
+if ($? != 0) { die "FAIL: esl-alimanip failed unexpectedly";}
+# should remove seq3
+if ($output !~ /seq1/) { die "FAIL: alignment manipulated incorrectly"; }
+if ($output !~ /seq2/) { die "FAIL: alignment manipulated incorrectly"; }
+if ($output =~ /seq3/) { die "FAIL: alignment manipulated incorrectly"; }
+
$output = `$eslalimanip --rna --detrunc 1 $tmppfx.stk 2>&1`;
if ($? != 0) { die "FAIL: esl-alimanip failed unexpectedly";}
# should remove seq3
diff --git a/easel/miniapps/esl-alimanip.man b/easel/miniapps/esl-alimanip.man
index 9ce3fe9..a5bb6c9 100644
--- a/easel/miniapps/esl-alimanip.man
+++ b/easel/miniapps/esl-alimanip.man
@@ -105,6 +105,12 @@ Remove any sequences with length more than
residues.
.TP
+.BI --rfnfract " <x>"
+Remove any sequences with nongap RF length less than
+.I <x>
+fraction the nongap RF length of the alignment.
+
+.TP
.BI --detrunc " <n>"
Remove any sequences that have all gaps in the first
.I <n>
diff --git a/easel/miniapps/esl-alimap.c b/easel/miniapps/esl-alimap.c
index 22422ae..936e2ea 100644
--- a/easel/miniapps/esl-alimap.c
+++ b/easel/miniapps/esl-alimap.c
@@ -64,8 +64,8 @@ main(int argc, char **argv)
char *alifile1= NULL; /* alignment 1 file name */
char *alifile2= NULL; /* alignment 2 file name */
int fmt; /* format code for alifiles */
- ESLX_MSAFILE *afp1 = NULL; /* open alignment file 1 */
- ESLX_MSAFILE *afp2 = NULL; /* open alignment file 2 */
+ ESL_MSAFILE *afp1 = NULL; /* open alignment file 1 */
+ ESL_MSAFILE *afp2 = NULL; /* open alignment file 2 */
ESL_MSA *msa1 = NULL; /* multiple sequence alignment 1 */
ESL_MSA *msa2 = NULL; /* multiple sequence alignment 2 */
int status; /* easel return code */
@@ -119,15 +119,15 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
- if ( (status = eslx_msafile_Open(&abc, alifile1, NULL, fmt, NULL, &afp1)) != eslOK) eslx_msafile_OpenFailure(afp1, status);
- if ( (status = eslx_msafile_Open(&abc, alifile2, NULL, fmt, NULL, &afp2)) != eslOK) eslx_msafile_OpenFailure(afp2, status);
+ if ( (status = esl_msafile_Open(&abc, alifile1, NULL, fmt, NULL, &afp1)) != eslOK) esl_msafile_OpenFailure(afp1, status);
+ if ( (status = esl_msafile_Open(&abc, alifile2, NULL, fmt, NULL, &afp2)) != eslOK) esl_msafile_OpenFailure(afp2, status);
/******************************************************************
* Read first alignment from each file, we only use the first one
******************************************************************/
- if ((status = eslx_msafile_Read(afp1, &msa1)) != eslOK) eslx_msafile_ReadFailure(afp1, status);
- if ((status = eslx_msafile_Read(afp2, &msa2)) != eslOK) eslx_msafile_ReadFailure(afp2, status);
+ if ((status = esl_msafile_Read(afp1, &msa1)) != eslOK) esl_msafile_ReadFailure(afp1, status);
+ if ((status = esl_msafile_Read(afp2, &msa2)) != eslOK) esl_msafile_ReadFailure(afp2, status);
/* map the alignments in msa1 and msa2 */
if(! esl_opt_IsOn(go, "--submap")) {
@@ -149,8 +149,8 @@ main(int argc, char **argv)
/* Cleanup, normal return
*/
- eslx_msafile_Close(afp1);
- eslx_msafile_Close(afp2);
+ esl_msafile_Close(afp1);
+ esl_msafile_Close(afp2);
esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
esl_msa_Destroy(msa1);
@@ -158,8 +158,8 @@ main(int argc, char **argv)
return 0;
ERROR:
- if (afp1) eslx_msafile_Close(afp1);
- if (afp2) eslx_msafile_Close(afp2);
+ if (afp1) esl_msafile_Close(afp1);
+ if (afp2) esl_msafile_Close(afp2);
if (go) esl_getopts_Destroy(go);
if (msa1) esl_msa_Destroy(msa1);
if (msa2) esl_msa_Destroy(msa2);
diff --git a/easel/miniapps/esl-alimask.c b/easel/miniapps/esl-alimask.c
index 366cb8f..2e9d465 100644
--- a/easel/miniapps/esl-alimask.c
+++ b/easel/miniapps/esl-alimask.c
@@ -84,7 +84,7 @@ main(int argc, char **argv)
char *alifile = NULL; /* alignment file name */
int infmt = eslMSAFILE_UNKNOWN; /* format code for alifile */
int outfmt = eslMSAFILE_UNKNOWN; /* format code for output ali */
- ESLX_MSAFILE *afp = NULL; /* open alignment file normal version */
+ ESL_MSAFILE *afp = NULL; /* open alignment file normal version */
ESL_MSAFILE2 *afp2 = NULL; /* open alignment file: legacy small-mem version */
FILE *ofp; /* output file (default is stdout) */
ESL_MSA *msa = NULL; /* one multiple sequence alignment */
@@ -259,12 +259,12 @@ main(int argc, char **argv)
/* determine input/output formats */
if (esl_opt_IsOn(go, "--informat")) {
- infmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (infmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --informat", esl_opt_GetString(go, "--informat"));
if (do_small && infmt != eslMSAFILE_PFAM) esl_fatal("small memory mode requires Pfam formatted alignments");
}
if (esl_opt_IsOn(go, "--outformat")) {
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --outformat", esl_opt_GetString(go, "--outformat"));
if (do_small && outfmt != eslMSAFILE_PFAM) esl_fatal("we can only output Pfam formatted alignments in small memory mode");
}
@@ -308,8 +308,8 @@ main(int argc, char **argv)
}
else
{
- status = eslx_msafile_Open(NULL, alifile, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(NULL, alifile, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
}
/* If nec, read mask from the mask file */
@@ -333,8 +333,8 @@ main(int argc, char **argv)
}
else
{
- status = eslx_msafile_Read(afp, &msa); /* if ! do_small, we read full aln into memory */
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ status = esl_msafile_Read(afp, &msa); /* if ! do_small, we read full aln into memory */
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
orig_alen = msa->alen;
if(do_postprob && msa->pp == NULL && (! esl_opt_IsOn(go, "--ppcons"))) esl_fatal("-p was enabled, but the MSA has no posterior probability (#=GR PP) annotation.");
@@ -500,7 +500,6 @@ main(int argc, char **argv)
if(do_gapthresh && do_postprob) {
for(apos = 0; apos < msa->alen; apos++)
useme_final[apos] = (useme_g[apos] && useme_pp[apos]) ? TRUE : FALSE;
- nkept = esl_vec_ISum(useme_final, (int) msa->alen);
if(be_verbose) {
nkept = esl_vec_ISum(useme_final, (int) msa->alen);
if(msa->rf == NULL) fprintf(stdout, " %-19s %7" PRId64 " %7s %7d %7d %7s %7s %13s\n", "gapfreq&postprobs", msa->alen, "-", nkept, (int) msa->alen - nkept, "-", "-", "-");
@@ -522,7 +521,9 @@ main(int argc, char **argv)
* Unless --small enabled, mask the alignment *
************************************************/
if(! do_small) {
- if((status = esl_msa_ColumnSubset(msa, errbuf, useme_final)) != eslOK) esl_fatal(errbuf);
+ if (abc && (abc->type == eslRNA || abc->type == eslDNA) &&
+ (status = esl_msa_RemoveBrokenBasepairs(msa, errbuf, useme_final)) != eslOK) esl_fatal(errbuf);
+ if ((status = esl_msa_ColumnSubset (msa, errbuf, useme_final)) != eslOK) esl_fatal(errbuf);
} /* else we'll do it as we regurgitate it upon rereading below */
/************************
@@ -530,7 +531,7 @@ main(int argc, char **argv)
************************/
if (! do_small)
{
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
}
else {
/* do_small==TRUE, we don't have the full msa stored,
@@ -614,7 +615,7 @@ main(int argc, char **argv)
if (msa) esl_msa_Destroy(msa);
if (abc) esl_alphabet_Destroy(abc);
if (w) esl_stopwatch_Destroy(w);
- if (afp) eslx_msafile_Close(afp);
+ if (afp) esl_msafile_Close(afp);
if (afp2) esl_msafile2_Close(afp2);
esl_getopts_Destroy(go);
return 0;
@@ -1208,13 +1209,10 @@ parse_coord_string(const char *cstring, uint32_t *ret_start, uint32_t *ret_end)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-alimask.c $
- * SVN $Id: esl-alistat.c 393 2009-09-27 12:04:55Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-alimask.itest.pl b/easel/miniapps/esl-alimask.itest.pl
index 6784910..deee0fb 100755
--- a/easel/miniapps/esl-alimask.itest.pl
+++ b/easel/miniapps/esl-alimask.itest.pl
@@ -110,7 +110,7 @@ for($pass = 0; $pass < 4; $pass++) {
if ($output !~ /aAAA\.AAAA\.\.c\.CCCCCC\.\.GGGgg/) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
if ($output !~ /\.555\.4\*44\.\.\.\.888888\.\.899\.\./) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
if ($have_rfA[$pass]) {
- if ($output !~ /:::::::::::::<<_______>>::/) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
+ if ($output !~ /.............<<<.....>>>../) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
}
system("$eslalimask $smallA[$pass] --rna -q -o $tmppfx.out $afileA[$pass] $tmppfx.fullmask > /dev/null");
@@ -127,7 +127,7 @@ for($pass = 0; $pass < 4; $pass++) {
if ($output !~ /aAAA\.AAAA\.\.c\.CCCCCC\.\.GGGgg/) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
if ($output !~ /\.555\.4\*44\.\.\.\.888888\.\.899\.\./) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
if ($have_rfA[$pass]) {
- if ($output !~ /:::::::::::::<<_______>>::/) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
+ if ($output !~ /.............<<<.....>>>../) { die "FAIL: alignment masked incorrectly on pass $pass2write"; }
}
$output = `$eslalimask $smallA[$pass] --rna --outformat pfam $afileA[$pass] $tmppfx.fullmask 2>&1`;
diff --git a/easel/miniapps/esl-alimerge.c b/easel/miniapps/esl-alimerge.c
index f2f3405..51d70cb 100644
--- a/easel/miniapps/esl-alimerge.c
+++ b/easel/miniapps/esl-alimerge.c
@@ -92,7 +92,7 @@ main(int argc, char **argv)
char *listfile = NULL; /* list file name (stays NULL unless --list) */
int infmt = eslMSAFILE_UNKNOWN; /* format code for input alifiles */
int outfmt = eslMSAFILE_UNKNOWN; /* format code for output ali */
- ESLX_MSAFILE *afp = NULL; /* open alignment file, normal interface */
+ ESL_MSAFILE *afp = NULL; /* open alignment file, normal interface */
ESL_MSAFILE2 *afp2 = NULL; /* open alignment file, small-mem interface */
FILE *ofp; /* output file (default is stdout) */
char **alifile_list = NULL; /* list of alignment files to merge */
@@ -196,12 +196,12 @@ main(int argc, char **argv)
} else ofp = stdout;
if (esl_opt_IsOn(go, "--informat")) {
- infmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (infmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --informat", esl_opt_GetString(go, "--informat"));
if (do_small && infmt != eslMSAFILE_PFAM) esl_fatal("small memory mode requires Pfam formatted alignments");
}
if (esl_opt_IsOn(go, "--outformat")) {
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --outformat", esl_opt_GetString(go, "--outformat"));
if (do_small && outfmt != eslMSAFILE_PFAM) esl_fatal("we can only output Pfam formatted alignments in small memory mode");
}
@@ -287,15 +287,15 @@ main(int argc, char **argv)
}
else
{
- status = eslx_msafile_Open(NULL, alifile_list[fi], NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(NULL, alifile_list[fi], NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
}
/* while loop: while we have an alignment in current alignment file, (statement looks weird b/c we use a different function if --small) */
while((status = (do_small) ?
esl_msafile2_ReadInfoPfam(afp2, NULL, NULL, -1, NULL,NULL, &(msaA[ai]), &nseq_cur, &alen_cur, &ngs_cur, &maxname_cur, &maxgf_cur, &maxgc_cur, &maxgr_cur, NULL, NULL, NULL, NULL, NULL) :
- eslx_msafile_Read (afp, &(msaA[ai]))) == eslOK) {
+ esl_msafile_Read (afp, &(msaA[ai]))) == eslOK) {
if(msaA[ai]->rf == NULL) esl_fatal("Error, all alignments must have #=GC RF annotation; alignment %d of file %d does not (%s)\n", nali_per_file[fi], (fi+1), alifile_list[fi]);
msaA[ai]->abc = abc; /* msa's are read in text mode, so this is (currently) only used to define gap characters, it doesn't even have to be the correct alphabet. if --small, this is set as RNA regardless of input */
@@ -367,7 +367,7 @@ main(int argc, char **argv)
free(tmpstr);
}
ai++;
- } /* end of while eslx_msafile_Read() loop */
+ } /* end of while esl_msafile_Read() loop */
if (do_small)
{
@@ -375,12 +375,12 @@ main(int argc, char **argv)
else if (status == eslEINVAL) esl_fatal("Alignment file %s, parse error:\n%s\n", alifile_list[fi], afp2->errbuf);
else if (status != eslEOF) esl_fatal("Alignment file %s, read failed with error code %d\n", alifile_list[fi], status);
}
- else if (status != eslEOF) eslx_msafile_ReadFailure(afp, status);
+ else if (status != eslEOF) esl_msafile_ReadFailure(afp, status);
if(nali_per_file[fi] == 0) esl_fatal("Failed to read any alignments from file %s\n", alifile_list[fi]);
if (do_small) esl_msafile2_Close(afp2);
- else eslx_msafile_Close(afp);
+ else esl_msafile_Close(afp);
} /* end of for (fi=0; fi < nalifile; fi++) */
nali_tot = ai;
@@ -533,7 +533,7 @@ main(int argc, char **argv)
if(esl_opt_GetBoolean(go, "-v")) { fprintf(stdout, "done.\n#\n"); fflush(stdout); }
mmsa->alen = alen_mmsa; /* it was -1, b/c we filled in each seq as we marched through each msaA[] alignment */
if(ofp != stdout) { fprintf(stdout, "# Saving alignment to file %s ... ", esl_opt_GetString(go, "-o")); }
- status = eslx_msafile_Write(ofp, mmsa, outfmt);
+ status = esl_msafile_Write(ofp, mmsa, outfmt);
if(status != eslOK) esl_fatal("Error, during alignment output; status code: %d\n", status);
}
if(ofp != stdout) {
@@ -1154,15 +1154,13 @@ add_msa(ESL_MSA *mmsa, char *errbuf, ESL_MSA *msa_to_add, int *maxgap, int *maxm
int *nmisA = NULL; /* [0..alen] number of missing data ('~') gap columns to add after each alignment column when merging */
int *neitherA = NULL; /* [0..apos..alen] = ngapA[apos] + nmisA[apos] */
- nseq_existing = mmsa->nseq;
+ nseq_existing = mmsa->nseq;
/* determine how many all gap columns to insert after each alignment position
* of the child msa when copying it to the merged msa */
if((status = determine_gap_columns_to_add(msa_to_add, maxgap, maxmis, clen, &(ngapA), &(nmisA), &(neitherA), errbuf)) != eslOK)
return status;
- nseq_existing = mmsa->nseq;
-
/* Append msa_to_add's sequence data and per-sequence annotation to mmsa after adding necessary gaps */
/* sequence names and aligned sequence data (digitized) */
for(i = 0, mi = nseq_existing; i < msa_to_add->nseq; i++, mi++) {
@@ -1359,12 +1357,14 @@ add_msa(ESL_MSA *mmsa, char *errbuf, ESL_MSA *msa_to_add, int *maxgap, int *maxm
mmsa->nseq += msa_to_add->nseq;
if(ngapA != NULL) free(ngapA);
- if(nmisA != NULL) free(nmisA);
+ if(nmisA != NULL) free(nmisA);
if(neitherA != NULL) free(neitherA);
return eslOK;
ERROR:
- if(ngapA != NULL) free(ngapA);
+ if(ngapA != NULL) free(ngapA);
+ if(nmisA != NULL) free(nmisA);
+ if(neitherA != NULL) free(neitherA);
return status;
}
diff --git a/easel/miniapps/esl-alipid.c b/easel/miniapps/esl-alipid.c
index f232b1e..3ef7e09 100644
--- a/easel/miniapps/esl-alipid.c
+++ b/easel/miniapps/esl-alipid.c
@@ -13,9 +13,10 @@
static ESL_OPTIONS options[] = {
/* name type default env range togs reqs incomp help docgroup */
- { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "help; show brief info on version and usage", 1 },
+ { "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "help; show brief info on version and usage", 1 },
{ "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "specify the input MSA file is in format <s>", 0 },
{ "--outformat", eslARG_STRING, "Clustal", NULL, NULL, NULL, NULL, NULL, "write the output MSA in format <s>", 0 },
+ { "--noheader", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "no header", 0 },
{ "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use DNA alphabet", 0 },
{ "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use RNA alphabet", 0 },
{ "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use protein alphabet", 0 },
@@ -32,14 +33,17 @@ main(int argc, char **argv)
char *msafile = esl_opt_GetArg(go, 1);
ESL_ALPHABET *abc = NULL;
int infmt = eslMSAFILE_UNKNOWN;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
FILE *ofp = stdout;
int nali = 0;
int namewidth;
double pid;
+ double pmatch;
int nid, n;
+ int nmatch, m;
int i,j;
+ int header = TRUE;
int status;
/* allow user to assert the input MSA alphabet */
@@ -47,33 +51,37 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--amino")) abc = esl_alphabet_Create(eslAMINO);
+ if (esl_opt_GetBoolean(go, "--noheader")) header = FALSE;
+
/* allow user to assert the input MSA format */
if (esl_opt_IsOn(go, "--informat") &&
- (infmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
+ (infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
esl_fatal("%s is not a valid MSA file format for --informat", esl_opt_GetString(go, "--informat"));
/* digital open */
- if ( ( status = eslx_msafile_Open(&abc, msafile, NULL, infmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( ( status = esl_msafile_Open(&abc, msafile, NULL, infmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
- while ((status = eslx_msafile_Read(afp, &msa)) == eslOK)
+ if (header) fprintf(ofp, "# seqname1 seqname2 %%id nid denomid %%match nmatch denommatch\n");
+ while ((status = esl_msafile_Read(afp, &msa)) == eslOK)
{
nali++;
namewidth = esl_str_GetMaxWidth(msa->sqname, msa->nseq);
- for (i = 0; i < msa->nseq; i++)
+ for (i = 0; i < msa->nseq; i++)
for (j = i+1; j < msa->nseq; j++)
{
- esl_dst_XPairId(abc, msa->ax[i], msa->ax[j], &pid, &nid, &n);
- fprintf(ofp, "%-*s %-*s %6.2f %6d %6d\n", namewidth, msa->sqname[i], namewidth, msa->sqname[j], pid*100.0, nid, n);
+ esl_dst_XPairId (abc, msa->ax[i], msa->ax[j], &pid, &nid, &n);
+ esl_dst_XPairMatch(abc, msa->ax[i], msa->ax[j], &pmatch, &nmatch, &m);
+ fprintf(ofp, "%-*s %-*s %6.2f %6d %6d %6.2f %6d %6d\n", namewidth, msa->sqname[i], namewidth, msa->sqname[j], pid*100.0, nid, n, pmatch*100.0, nmatch, m);
}
esl_msa_Destroy(msa);
}
- if (nali == 0 || status != eslEOF) eslx_msafile_ReadFailure(afp, status);
+ if (nali == 0 || status != eslEOF) esl_msafile_ReadFailure(afp, status);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
return 0;
@@ -81,13 +89,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $Id: esl-alipid.c 766 2012-06-04 13:11:51Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-alipid.c $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-alipid.man b/easel/miniapps/esl-alipid.man
index 943e36f..d7f8407 100644
--- a/easel/miniapps/esl-alipid.man
+++ b/easel/miniapps/esl-alipid.man
@@ -74,8 +74,9 @@ all options, including expert options.
.BI --informat " <s>"
Specify that the input alignment is in
.I <s>
-format. At present, valid formats are limited to
-Stockholm, Pfam, and AFA (aligned FASTA).
+format. Valid format strings include
+"stockholm", "pfam", "a2m", "phylip", "phylips",
+"psiblast", "selex", "afa", "clustal", and "clustallike".
.TP
.B --amino
diff --git a/easel/miniapps/esl-alirev.c b/easel/miniapps/esl-alirev.c
new file mode 100644
index 0000000..e3e5d38
--- /dev/null
+++ b/easel/miniapps/esl-alirev.c
@@ -0,0 +1,87 @@
+
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_getopts.h"
+#include "esl_msa.h"
+#include "esl_msafile.h"
+#include "esl_vectorops.h"
+
+#include <stdio.h>
+
+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", 0 },
+ { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "specify the input MSA file is in format <s>", 0 },
+ { "--outformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "write the output MSA in format <s>", 0 },
+ { "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use DNA alphabet", 0 },
+ { "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use RNA alphabet", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options] <msafile>";
+static char banner[] = "reverse complement multiple sequence alignment(s)";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 1, argc, argv, banner, usage);
+ char *msafile = esl_opt_GetArg(go, 1);
+ int infmt = eslMSAFILE_UNKNOWN;
+ int outfmt = eslMSAFILE_UNKNOWN;
+ ESL_ALPHABET *abc = NULL;
+ ESL_MSAFILE *afp = NULL;
+ ESL_MSA *msa = NULL;
+ int nali = 0;
+ int status;
+
+ /* Alphabet specification from cmdline? */
+ if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
+ else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
+
+ /* MSA input file format from cmdline? */
+ if (esl_opt_IsOn(go, "--informat") &&
+ (infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
+ esl_fatal("Your --informat, %s, is not a recognized multiple alignment file format",
+ esl_opt_GetString(go, "--informat"));
+
+ /* Open in digital mode. Autoguess alphabet, format if we haven't set them already. */
+ if (( status = esl_msafile_Open(&abc, msafile, NULL, infmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
+
+ /* Reverse complementation only makes sense for alphabets that have abc->complement set */
+ if (! abc->complement)
+ esl_fatal("File %s appears to use the %s alphabet.\nThat alphabet cannot be reverse complemented.\n",
+ msafile, esl_abc_DecodeType(abc->type));
+
+ /* Set the output format, if requested.
+ * By default, write in the same format we read in.
+ * Remember, it's afp->format that gets set; infmt was only a hint.
+ */
+ if ( esl_opt_IsOn(go, "--outformat") )
+ {
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ if (outfmt == eslMSAFILE_UNKNOWN)
+ esl_fatal("Your --outformat, %s, is not a recognized multiple alignment file format.\n",
+ esl_opt_GetString(go, "--outformat"));
+ }
+ else outfmt = afp->format;
+
+ /* Here we go. */
+ while ((status = esl_msafile_Read(afp, &msa)) == eslOK)
+ {
+ nali++;
+
+ status = esl_msa_ReverseComplement(msa);
+
+ esl_msafile_Write(stdout, msa, outfmt);
+
+ esl_msa_Destroy(msa);
+ }
+ if (nali == 0) esl_fatal("No alignments found in input file %s\n", msafile);
+ if (status != eslEOF) esl_msafile_ReadFailure(afp, status);
+
+ esl_msafile_Close(afp);
+ esl_alphabet_Destroy(abc);
+ esl_getopts_Destroy(go);
+ return 0;
+}
diff --git a/easel/miniapps/esl-alirev.man b/easel/miniapps/esl-alirev.man
new file mode 100644
index 0000000..1d138f2
--- /dev/null
+++ b/easel/miniapps/esl-alirev.man
@@ -0,0 +1,127 @@
+.TH "esl-alirev" 1 "@RELEASEDATE@" "@PACKAGE@ @RELEASE@" "@PACKAGE@ Manual"
+
+.SH NAME
+.TP
+esl-alirev - reverse complement a multiple alignment
+
+
+.SH SYNOPSIS
+
+.B esl-alirev
+.I [options]
+.I msafile
+
+
+.SH DESCRIPTION
+
+.pp
+.B esl-alirev
+reads the multiple alignment in
+.I msafile
+and outputs its reverse complement to
+.I stdout.
+
+.pp
+An example of where you might need to do this is when you've
+downloaded a chunk of multiway genomic alignment from one of the
+genome browsers, but your RNA of interest is on the opposite strand.
+
+.pp
+Any per-column and per-residue annotation lines are reversed as well,
+including Stockholm format and old SELEX format annotations.
+Annotations that Easel recognizes as secondary structure annotation (a
+consensus structure line, individual secondary structure lines) will
+be "reverse complemented" to preserve proper bracketing orders: for
+example, ...<<<...>>> is reverse complemented to <<<...>>>..., not
+simply reversed to >>>...<<<..., which would be wrong.
+
+.pp
+If
+.I msafile
+is - (a single dash), alignment input is read from
+.I stdin.
+
+.pp
+The
+.I msafile
+may be in any of several formats.
+The format is autodetected by default.
+See the
+.B --informat
+option to assert an input format.
+
+.pp
+By default the output alignment is written in the same format as the
+input alignment. See the
+.B --outformat
+option to use a different output format.
+
+.pp
+Because the alignment is parsed into Easel's digital internal
+representation, the output alignment may differ in certain details
+from the original alignment; these details should be inconsequential
+but may catch your eye. One is that if you have a reference annotation
+line, Easel's output will put consensus residues in upper case,
+nonconsensus (inserted) residues in lower case. Another is that the
+headers for some formats, such as Clustal format, are written with an
+arbitrary version number -- so you may find yourself revcomping an
+alignment in "MUSCLE (3.7) multiple sequence alignment" format and it
+could come out claiming to be a "CLUSTAL 2.1 multiple sequence
+alignment", just because Easel writes all of its Clustal format
+alignment files with that header.
+
+.pp
+The
+.I msafile
+must contain nucleic acid sequences (DNA or RNA).
+The alphabet will be autodetected by default.
+See the
+.B --dna
+or
+.B --rna
+options to assert an alphabet.
+
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Print brief help; includes version number and summary of
+all options, including expert options.
+
+.TP
+.BI --informat " <s>"
+Specify that the input alignment is in
+.I <s>
+format. Valid format strings include
+"stockholm", "pfam", "a2m", "phylip", "phylips",
+"psiblast", "selex", "afa", "clustal", and "clustallike".
+
+.TP
+.BI --outformat " <s>"
+Write the output alignment in
+.I <s>
+format. Valid format strings include
+"stockholm", "pfam", "a2m", "phylip", "phylips",
+"psiblast", "selex", "afa", "clustal", and "clustallike".
+
+.TP
+.B --dna
+Assert that the
+.I msafile
+contains DNA sequences.
+
+.TP
+.B --rna
+Assert that the
+.I msafile
+contains RNA sequences.
+
+
+.SH AUTHOR
+
+Easel and its documentation are @EASEL_COPYRIGHT at .
+ at EASEL_LICENSE@.
+See COPYING in the source code distribution for more details.
+The Easel home page is: @EASEL_URL@
diff --git a/easel/miniapps/esl-alistat.c b/easel/miniapps/esl-alistat.c
index 6488569..427f50c 100644
--- a/easel/miniapps/esl-alistat.c
+++ b/easel/miniapps/esl-alistat.c
@@ -61,7 +61,7 @@ main(int argc, char **argv)
ESL_ALPHABET *abc = NULL; /* biological alphabet */
char *alifile = NULL; /* alignment file name */
int fmt = eslMSAFILE_UNKNOWN; /* format code for alifile */
- ESLX_MSAFILE *afp = NULL; /* open msa file */
+ ESL_MSAFILE *afp = NULL; /* open msa file */
ESL_MSAFILE2 *old_afp = NULL; /* open msa file, legacy (--small) */
ESL_MSA *msa = NULL; /* one multiple sequence alignment */
int nali; /* number of alignments read */
@@ -137,7 +137,7 @@ main(int argc, char **argv)
alifile = esl_opt_GetArg(go, 1);
if (esl_opt_IsOn(go, "--informat") &&
- (fmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
+ (fmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
esl_fatal("%s is not a valid input sequence file format for --informat", esl_opt_GetString(go, "--informat"));
if (esl_opt_GetBoolean(go, "--small") && fmt != eslMSAFILE_PFAM) esl_fatal("--small requires --informat pfam\n");
@@ -170,8 +170,8 @@ main(int argc, char **argv)
}
else
{
- if ( (status = eslx_msafile_Open(&abc, alifile, NULL, fmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Open(&abc, alifile, NULL, fmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
}
/**************************************
@@ -233,7 +233,7 @@ main(int argc, char **argv)
while ( (status = ( esl_opt_GetBoolean(go, "--small") ?
esl_msafile2_ReadInfoPfam(old_afp, listfp, abc, -1, NULL, NULL, &msa, &nseq, &alen, NULL, NULL, NULL, NULL, NULL, &abc_ct, &pp_ct, NULL, NULL, NULL) :
- eslx_msafile_Read (afp, &msa))) == eslOK)
+ esl_msafile_Read (afp, &msa))) == eslOK)
{
nali++;
nres = 0;
@@ -261,7 +261,7 @@ main(int argc, char **argv)
printf("%-6d %-20s %10s %7d %7" PRId64 " %12" PRId64,
nali,
msa->name,
- eslx_msafile_DecodeFormat(fmt),
+ esl_msafile_DecodeFormat(fmt),
nseq,
alen,
nres);
@@ -281,7 +281,7 @@ main(int argc, char **argv)
printf("Alignment number: %d\n", nali);
if (msa->name != NULL)
printf("Alignment name: %s\n", msa->name);
- printf("Format: %s\n", eslx_msafile_DecodeFormat(fmt));
+ printf("Format: %s\n", esl_msafile_DecodeFormat(fmt));
printf("Number of sequences: %d\n", nseq);
printf("Alignment length: %" PRId64 "\n", alen);
printf("Total # residues: %" PRId64 "\n", nres);
@@ -374,7 +374,7 @@ main(int argc, char **argv)
}
else
{
- if (nali == 0 || status != eslEOF) eslx_msafile_ReadFailure(afp, status);
+ if (nali == 0 || status != eslEOF) esl_msafile_ReadFailure(afp, status);
}
/* Cleanup, normal return
@@ -413,7 +413,7 @@ main(int argc, char **argv)
}
- if (afp) eslx_msafile_Close(afp);
+ if (afp) esl_msafile_Close(afp);
if (old_afp) esl_msafile2_Close(old_afp);
esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
@@ -480,7 +480,7 @@ static int count_msa(ESL_MSA *msa, char *errbuf, int nali, int no_ambig, int use
ESL_ALLOC(ct, sizeof(int) * (msa->alen+1));
ESL_ALLOC(ss_nopseudo, sizeof(char) * (msa->alen+1));
esl_wuss_nopseudo(msa->ss_cons, ss_nopseudo);
- if ((status = esl_wuss2ct(ss_nopseudo, msa->alen, ct)) != eslOK) ESL_FAIL(status, errbuf, "Consensus structure string is inconsistent.");
+ if ((status = esl_wuss2ct(ss_nopseudo, msa->alen, ct)) != eslOK) ESL_XFAIL(status, errbuf, "Consensus structure string is inconsistent.");
for(apos = 0; apos < msa->alen; apos++) {
/* careful ct is indexed 1..alen, not 0..alen-1 */
if(ct[(apos+1)] > (apos+1)) { /* apos+1 is an 'i' in an i:j pair, where i < j */
@@ -507,7 +507,7 @@ static int count_msa(ESL_MSA *msa, char *errbuf, int nali, int no_ambig, int use
for(apos = 0; apos < msa->alen; apos++) { /* update appropriate abc count, careful, ax ranges from 1..msa->alen (but abc_ct is 0..msa->alen-1) */
if((! no_ambig) || (! esl_abc_XIsDegenerate(msa->abc, msa->ax[i][apos+1]))) { /* skip ambiguities (degenerate residues) if no_ambig is TRUE */
- if((status = esl_abc_DCount(msa->abc, abc_ct[apos], msa->ax[i][apos+1], seqwt)) != eslOK) ESL_FAIL(status, errbuf, "problem counting residue %d of seq %d", apos, i);
+ if((status = esl_abc_DCount(msa->abc, abc_ct[apos], msa->ax[i][apos+1], seqwt)) != eslOK) ESL_XFAIL(status, errbuf, "problem counting residue %d of seq %d", apos, i);
}
}
@@ -526,7 +526,7 @@ static int count_msa(ESL_MSA *msa, char *errbuf, int nali, int no_ambig, int use
if(msa->pp[i] != NULL) {
for(apos = 0; apos < msa->alen; apos++) {
if((! no_ambig) || (! esl_abc_XIsDegenerate(msa->abc, msa->ax[i][apos+1]))) { /* skip ambiguities (degenerate residues) if no_ambig is TRUE */
- if((ppidx = get_pp_idx(msa->abc, msa->pp[i][apos])) == -1) ESL_FAIL(eslEFORMAT, errbuf, "bad #=GR PP char: %c", msa->pp[i][apos]);
+ if((ppidx = get_pp_idx(msa->abc, msa->pp[i][apos])) == -1) ESL_XFAIL(eslEFORMAT, errbuf, "bad #=GR PP char: %c", msa->pp[i][apos]);
pp_ct[apos][ppidx] += seqwt;
}
}
@@ -534,21 +534,25 @@ static int count_msa(ESL_MSA *msa, char *errbuf, int nali, int no_ambig, int use
}
}
- *ret_abc_ct = abc_ct;
- if(ret_bp_ct != NULL) *ret_bp_ct = bp_ct; /* we only allocated bp_ct if ret_bp_ct != NULL */
- if(ret_pp_ct != NULL) *ret_pp_ct = pp_ct; /* we only allocated pp_ct if ret_pp_ct != NULL */
-
- if(ss_nopseudo != NULL) free(ss_nopseudo);
- if(ct != NULL) free(ct);
+ *ret_abc_ct = abc_ct;
+ if (ret_bp_ct) *ret_bp_ct = bp_ct; /* we only allocated bp_ct if ret_bp_ct != NULL */
+ if (ret_pp_ct) *ret_pp_ct = pp_ct; /* we only allocated pp_ct if ret_pp_ct != NULL */
+ if (ss_nopseudo) free(ss_nopseudo);
+ if (ct) free(ct);
return eslOK;
ERROR:
- if(abc_ct != NULL) esl_Free2D((void **) abc_ct, msa->alen);
- if(bp_ct != NULL) esl_Free3D((void ***) bp_ct, msa->alen, msa->abc->Kp);
- if(pp_ct != NULL) esl_Free2D((void **) pp_ct, msa->alen);
- ESL_FAIL(status, errbuf, "Error, out of memory while counting important values in the msa.");
- return status; /* NEVERREACHED */
+ if (abc_ct) esl_Free2D((void **) abc_ct, msa->alen);
+ if (bp_ct) esl_Free3D((void ***) bp_ct, msa->alen, msa->abc->Kp);
+ if (pp_ct) esl_Free2D((void **) pp_ct, msa->alen);
+ if (ss_nopseudo) free(ss_nopseudo);
+ if (ct) free(ct);
+
+ *ret_abc_ct = NULL;
+ if (ret_bp_ct) *ret_bp_ct = NULL;
+ if (ret_pp_ct) *ret_pp_ct = NULL;
+ return status;
}
@@ -854,26 +858,28 @@ static int dump_posterior_sequence_info(FILE *fp, ESL_MSA *msa, int nali, char *
*/
static int dump_insert_info(FILE *fp, ESL_MSA *msa, int use_weights, int nali, int *i_am_rf, char *alifile, char *errbuf)
{
- int status;
- int apos, rfpos;
- double **ict;
- double *total_ict;
- int i;
- int rflen;
- double seqwt; /* weight of current sequence */
- double nseq;
-
- /* contract check */
- if(! (msa->flags & eslMSA_DIGITAL)) ESL_XFAIL(eslEINVAL, errbuf, "in dump_insert_info(), msa must be digitized.");
- if(msa->rf == NULL) ESL_XFAIL(eslEINVAL, errbuf, "No #=GC RF markup in alignment, it is needed for --iinfo.");
- if(i_am_rf == NULL) ESL_XFAIL(eslEINVAL, errbuf, "internal error, dump_insert_info() i_am_rf is NULL.");
- if(use_weights && msa->wgt == NULL) ESL_FAIL(eslEINCOMPAT, errbuf, "dump_insert_info(): use_weights==TRUE but msa->wgt == NULL");
+ double **ict = NULL;
+ double *total_ict = NULL;
+ int apos, rfpos;
+ int i;
+ int rflen;
+ double seqwt; /* weight of current sequence */
+ double nseq;
+ int status;
+
+ /* contract checks */
+ if (! (msa->flags & eslMSA_DIGITAL)) ESL_FAIL(eslEINVAL, errbuf, "in dump_insert_info(), msa must be digitized.");
+ if (msa->rf == NULL) ESL_FAIL(eslEINVAL, errbuf, "No #=GC RF markup in alignment, it is needed for --iinfo.");
+ if (i_am_rf == NULL) ESL_FAIL(eslEINVAL, errbuf, "internal error, dump_insert_info() i_am_rf is NULL.");
+ if (use_weights && msa->wgt == NULL) ESL_FAIL(eslEINCOMPAT, errbuf, "dump_insert_info(): use_weights==TRUE but msa->wgt == NULL");
ESL_ALLOC(total_ict, sizeof(double) * (msa->alen+2));
esl_vec_DSet(total_ict, (msa->alen+2), 0.);
ESL_ALLOC(ict, sizeof(double *) * (msa->alen+2));
- for(i = 0; i <= msa->alen; i++)
+ for (i = 0; i <= msa->alen; i++) ict[i] = NULL;
+
+ for (i = 0; i <= msa->alen; i++)
{
ESL_ALLOC(ict[i], sizeof(double) * (msa->nseq));
esl_vec_DSet(ict[i], (msa->nseq), 0.);
@@ -882,12 +888,12 @@ static int dump_insert_info(FILE *fp, ESL_MSA *msa, int use_weights, int nali, i
fprintf(fp, "# Insert information:\n");
fprintf(fp, "# Alignment file: %s\n", alifile);
fprintf(fp, "# Alignment idx: %d\n", nali);
- if(msa->name != NULL) { fprintf(fp, "# Alignment name: %s\n", msa->name); }
+ if (msa->name) { fprintf(fp, "# Alignment name: %s\n", msa->name); }
fprintf(fp, "# rfpos is the nongap RF position after which insertions occur\n");
fprintf(fp, "# An rfpos of '0' indicates insertions before the first nongap RF position\n");
fprintf(fp, "# Number of sequences: %d\n", msa->nseq);
- if(use_weights) { fprintf(fp, "# IMPORTANT: Counts are weighted based on sequence weights in alignment file.\n"); }
- else { fprintf(fp, "# Sequence weights from alignment were ignored (if they existed).\n"); }
+ if (use_weights) { fprintf(fp, "# IMPORTANT: Counts are weighted based on sequence weights in alignment file.\n"); }
+ else { fprintf(fp, "# Sequence weights from alignment were ignored (if they existed).\n"); }
fprintf(fp, "#\n");
fprintf(fp, "# %8s %10s %8s %8s\n", "rfpos", "nseq w/ins", "freq ins", "avg len");
@@ -895,12 +901,12 @@ static int dump_insert_info(FILE *fp, ESL_MSA *msa, int use_weights, int nali, i
rflen = 0;
for(apos = 1; apos <= msa->alen; apos++)
- if(i_am_rf[apos-1]) rflen++;
+ if (i_am_rf[apos-1]) rflen++;
rfpos = 0;
- for(apos = 1; apos <= msa->alen; apos++)
+ for (apos = 1; apos <= msa->alen; apos++)
{
- if(i_am_rf[apos-1]) rfpos++;
+ if (i_am_rf[apos-1]) rfpos++;
else {
for(i = 0; i < msa->nseq; i++) {
seqwt = use_weights ? msa->wgt[i] : 1.0;
@@ -930,11 +936,16 @@ static int dump_insert_info(FILE *fp, ESL_MSA *msa, int use_weights, int nali, i
for(i = 0; i <= msa->alen; i++) free(ict[i]);
free(ict);
free(total_ict);
-
return eslOK;
ERROR:
- return status;
+ if (ict) {
+ for (i = 0; i <= msa->alen; i++)
+ if (ict[i]) free(ict[i]);
+ free(ict);
+ }
+ if (total_ict) free(total_ict);
+ return status;
}
/* dump_column_residue_counts
@@ -1139,13 +1150,10 @@ static int check_msa_weights(ESL_MSA *msa)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-alistat.c $
- * SVN $Id: esl-alistat.c 712 2011-07-27 22:15:08Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-alistat.itest.pl b/easel/miniapps/esl-alistat.itest.pl
index 2e1d92b..c59da9a 100755
--- a/easel/miniapps/esl-alistat.itest.pl
+++ b/easel/miniapps/esl-alistat.itest.pl
@@ -229,4 +229,5 @@ unlink "$tmppfx.pc";
unlink "$tmppfx.ps";
unlink "$tmppfx.r";
unlink "$tmppfx.c";
+unlink "$tmppfx.bp";
exit 0;
diff --git a/easel/miniapps/esl-cluster.c b/easel/miniapps/esl-cluster.c
index c551d2d..aab8653 100644
--- a/easel/miniapps/esl-cluster.c
+++ b/easel/miniapps/esl-cluster.c
@@ -1,7 +1,7 @@
/* Clusters tabular data.
*
* SRE, Mon Nov 3 13:43:29 2008 [Janelia]
- * SVN $Id: esl-cluster.c 685 2011-05-23 14:27:52Z eddys $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/easel/miniapps/esl-compalign.c b/easel/miniapps/esl-compalign.c
index a9cb066..1f9b616 100644
--- a/easel/miniapps/esl-compalign.c
+++ b/easel/miniapps/esl-compalign.c
@@ -49,7 +49,7 @@ main(int argc, char **argv)
int kstatus, tstatus;/* return code from Easel routine */
int fmt; /* expected format of kfile, tfile */
char *kfile, *tfile; /* known, test structure file */
- ESLX_MSAFILE *kfp, *tfp; /* open kfile, tfile */
+ ESL_MSAFILE *kfp, *tfp; /* open kfile, tfile */
ESL_MSA *ka, *ta; /* known, trusted alignment */
int64_t klen, tlen; /* lengths of dealigned seqs */
int i; /* counter over sequences */
@@ -104,7 +104,8 @@ main(int argc, char **argv)
int ppidx; /* index of PP */
char ppchars[11] = "0123456789*";
int cm_cor_ptm, cm_cor_pti, cm_ptm, cm_pti, cm_incor_ptm, cm_incor_pti; /* cumulative counts of posteriors */
- int tot_cor_ptm, tot_cor_pti, tot_ptm, tot_pti, tot_incor_ptm, tot_incor_pti; /* total counts of posteriors */
+ // int tot_cor_ptm, tot_cor_pti, tot_ptm, tot_pti; /* total counts of posteriors */
+ // int tot_incor_ptm,tot_incor_pti; // SRE: commented out; don't seem to be used; need to silence compiler warning
char errbuf[eslERRBUFSIZE];
/***********************************************
@@ -152,8 +153,8 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
- if ( (kstatus = eslx_msafile_Open(&abc, kfile, NULL, fmt, NULL, &kfp)) != eslOK) eslx_msafile_OpenFailure(kfp, kstatus);
- if ( (tstatus = eslx_msafile_Open(&abc, tfile, NULL, fmt, NULL, &tfp)) != eslOK) eslx_msafile_OpenFailure(tfp, tstatus);
+ if ( (kstatus = esl_msafile_Open(&abc, kfile, NULL, fmt, NULL, &kfp)) != eslOK) esl_msafile_OpenFailure(kfp, kstatus);
+ if ( (tstatus = esl_msafile_Open(&abc, tfile, NULL, fmt, NULL, &tfp)) != eslOK) esl_msafile_OpenFailure(tfp, tstatus);
do_post = esl_opt_GetBoolean(go, "-p");
@@ -171,10 +172,10 @@ main(int argc, char **argv)
* this means looping over all seqs in all alignments.
***********************************************/
nali = 0;
- while ( (kstatus = eslx_msafile_Read(kfp, &ka)) != eslEOF)
+ while ( (kstatus = esl_msafile_Read(kfp, &ka)) != eslEOF)
{
- if ( kstatus != eslOK) eslx_msafile_ReadFailure(kfp, kstatus);
- if ( (tstatus = eslx_msafile_Read(tfp, &ta)) != eslOK) eslx_msafile_ReadFailure(tfp, tstatus);
+ if ( kstatus != eslOK) esl_msafile_ReadFailure(kfp, kstatus);
+ if ( (tstatus = esl_msafile_Read(tfp, &ta)) != eslOK) esl_msafile_ReadFailure(tfp, tstatus);
nali++;
if((nali > 1) && (esl_opt_IsOn(go, "--c2dfile"))) esl_fatal("--c2dfile is only meant for msafiles with single alignments");
@@ -191,7 +192,7 @@ main(int argc, char **argv)
/* make sure the sequences are all identical */
ESL_ALLOC(seqlen, sizeof(int) * ka->nseq);
for(i = 0; i < ka->nseq; i++) {
- if(strcmp(ka->sqname[i], ta->sqname[i]) != 0) esl_fatal("sequence i of trusted alignment %s has different name than seq i of predicted alignment %s\n", ka->sqname[i], ta->sqname[i]);
+ if(strcmp(ka->sqname[i], ta->sqname[i]) != 0) esl_fatal("sequence %d of trusted alignment %s has different name than seq %d of predicted alignment %s\n", (i+1), ka->sqname[i], (i+1), ta->sqname[i]);
ESL_ALLOC(ks, sizeof(ESL_DSQ) * (ka->alen+2));
memcpy(ks, ka->ax[i], (ka->alen+2) * sizeof(ESL_DSQ));
esl_abc_XDealign(ka->abc, ks, ka->ax[i], &klen);
@@ -201,10 +202,10 @@ main(int argc, char **argv)
esl_abc_XDealign(ta->abc, ts, ta->ax[i], &tlen);
if (tlen != klen)
- esl_fatal("dealigned sequence mismatch, seq %d, when dealigned, is %d residues in the known alignment, but %d residues in the trusted alignment.", i, klen, tlen);
+ esl_fatal("dealigned sequence mismatch, seq %d, when dealigned, is %d residues in the known alignment, but %d residues in the trusted alignment.", (i+1), klen, tlen);
if (memcmp(ks, ts, sizeof(ESL_DSQ) * klen) != 0)
- esl_fatal("dealigned sequence mismatch, seq %d %s, when dealigned, are not identical.", i, ka->sqname[i]);
+ esl_fatal("dealigned sequence mismatch, seq %d %s, when dealigned, are not identical.", (i+1), ka->sqname[i]);
seqlen[i] = tlen;
free(ks);
@@ -395,12 +396,12 @@ main(int argc, char **argv)
printf("# %2s %8s %8s %9s %8s %8s %9s\n", "--", "--------", "--------", "---------", "--------", "--------", "---------");
}
cm_ptm = cm_pti = cm_cor_ptm = cm_cor_pti = cm_incor_ptm = cm_incor_pti = 0;
- tot_ptm = esl_vec_ISum(ptm, npostvals);
- tot_pti = esl_vec_ISum(pti, npostvals);
- tot_cor_ptm = esl_vec_ISum(cor_ptm, npostvals);
- tot_cor_pti = esl_vec_ISum(cor_pti, npostvals);
- tot_incor_ptm = tot_ptm - tot_cor_ptm;
- tot_incor_pti = tot_pti - tot_cor_pti;
+ //tot_ptm = esl_vec_ISum(ptm, npostvals);
+ //tot_pti = esl_vec_ISum(pti, npostvals);
+ //tot_cor_ptm = esl_vec_ISum(cor_ptm, npostvals);
+ //tot_cor_pti = esl_vec_ISum(cor_pti, npostvals);
+ //tot_incor_ptm = tot_ptm - tot_cor_ptm;
+ //tot_incor_pti = tot_pti - tot_cor_pti;
for(p = (npostvals-1); p >= 0; p--) {
cm_cor_ptm += cor_ptm[p];
cm_cor_pti += cor_pti[p];
@@ -491,8 +492,8 @@ main(int argc, char **argv)
if(abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
- eslx_msafile_Close(tfp);
- eslx_msafile_Close(kfp);
+ esl_msafile_Close(tfp);
+ esl_msafile_Close(kfp);
return 0;
ERROR:
@@ -546,32 +547,35 @@ static int get_pp_idx(ESL_ALPHABET *abc, char ppchar)
int
read_mask_file(char *filename, char *errbuf, char **ret_mask, int *ret_mask_len)
{
- int status;
- ESL_FILEPARSER *efp;
+ ESL_FILEPARSER *efp = NULL;
+ char *mask = NULL;
char *tok;
- char *mask;
int toklen;
int n;
+ int status;
- if (esl_fileparser_Open(filename, NULL, &efp) != eslOK) ESL_FAIL(eslFAIL, errbuf, "failed to open %s in read_mask_file\n", filename);
+
+ if (esl_fileparser_Open(filename, NULL, &efp) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "failed to open %s in read_mask_file\n", filename);
esl_fileparser_SetCommentChar(efp, '#');
- if((status = esl_fileparser_GetToken(efp, &tok, &toklen)) != eslOK) ESL_FAIL(eslFAIL, errbuf, "failed to read a single token from %s\n", filename);
+ if((status = esl_fileparser_GetToken(efp, &tok, &toklen)) != eslOK) ESL_XFAIL(eslFAIL, errbuf, "failed to read a single token from %s\n", filename);
ESL_ALLOC(mask, sizeof(char) * (toklen+1));
for(n = 0; n < toklen; n++) {
if((tok[n] == '0') || (tok[n] == '1')) {
mask[n] = tok[n];
}
- else { ESL_FAIL(eslFAIL, errbuf, "read a non-0 and non-1 character (%c) in the mask file %s\n", tok[n], filename); }
+ else { ESL_XFAIL(eslFAIL, errbuf, "read a non-0 and non-1 character (%c) in the mask file %s\n", tok[n], filename); }
}
mask[n] = '\0';
- *ret_mask = mask;
+ *ret_mask = mask;
*ret_mask_len = n;
esl_fileparser_Close(efp);
return eslOK;
ERROR:
- return eslEMEM;
+ if (efp) esl_fileparser_Close(efp);
+ if (mask) free(mask);
+ return status;
}
diff --git a/easel/miniapps/esl-compstruct.c b/easel/miniapps/esl-compstruct.c
index affda54..cfff14e 100644
--- a/easel/miniapps/esl-compstruct.c
+++ b/easel/miniapps/esl-compstruct.c
@@ -38,7 +38,7 @@ main(int argc, char **argv)
int kstatus, tstatus;/* return code from Easel routine */
int fmt; /* expected format of kfile, tfile */
char *kfile, *tfile; /* known, test structure file */
- ESLX_MSAFILE *kfp, *tfp; /* open kfile, tfile */
+ ESL_MSAFILE *kfp, *tfp; /* open kfile, tfile */
ESL_MSA *ka, *ta; /* known, trusted alignment */
int64_t klen, tlen; /* lengths of dealigned seqs */
int *kct, *tct; /* known, test CT rep of structure */
@@ -104,8 +104,8 @@ main(int argc, char **argv)
* Open the two Stockholm files.
***********************************************/
- if ( (status = eslx_msafile_Open(NULL, kfile, NULL, fmt, NULL, &kfp)) != eslOK) eslx_msafile_OpenFailure(kfp, status);
- if ( (status = eslx_msafile_Open(NULL, tfile, NULL, fmt, NULL, &tfp)) != eslOK) eslx_msafile_OpenFailure(tfp, status);
+ if ( (status = esl_msafile_Open(NULL, kfile, NULL, fmt, NULL, &kfp)) != eslOK) esl_msafile_OpenFailure(kfp, status);
+ if ( (status = esl_msafile_Open(NULL, tfile, NULL, fmt, NULL, &tfp)) != eslOK) esl_msafile_OpenFailure(tfp, status);
/***********************************************
* Do structure comparisons, one seq at a time;
@@ -119,10 +119,10 @@ main(int argc, char **argv)
printf("%20s %17s %17s\n", "", "[sensitivity]", "[PPV]");
- while ( (kstatus = eslx_msafile_Read(kfp, &ka)) != eslEOF)
+ while ( (kstatus = esl_msafile_Read(kfp, &ka)) != eslEOF)
{
- if ( kstatus != eslOK) eslx_msafile_ReadFailure(kfp, kstatus);
- if ( (tstatus = eslx_msafile_Read(tfp, &ta)) != eslOK) eslx_msafile_ReadFailure(tfp, tstatus);
+ if ( kstatus != eslOK) esl_msafile_ReadFailure(kfp, kstatus);
+ if ( (tstatus = esl_msafile_Read(tfp, &ta)) != eslOK) esl_msafile_ReadFailure(tfp, tstatus);
/* Sanity check on alignment
*/
@@ -323,8 +323,8 @@ main(int argc, char **argv)
puts("");
esl_getopts_Destroy(go);
- eslx_msafile_Close(tfp);
- eslx_msafile_Close(kfp);
+ esl_msafile_Close(tfp);
+ esl_msafile_Close(kfp);
return 0;
ERROR:
@@ -334,13 +334,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-compstruct.c $
- * SVN $Id: esl-compstruct.c 668 2011-03-01 14:28:28Z nawrockie $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-construct.c b/easel/miniapps/esl-construct.c
index 3619647..4fb1921 100644
--- a/easel/miniapps/esl-construct.c
+++ b/easel/miniapps/esl-construct.c
@@ -67,7 +67,7 @@ main(int argc, char **argv)
ESL_ALPHABET *abc = NULL; /* biological alphabet */
char *alifile = NULL; /* alignment file name */
int fmt; /* format code for alifiles */
- ESLX_MSAFILE *afp = NULL; /* open alignment file */
+ ESL_MSAFILE *afp = NULL; /* open alignment file */
ESL_MSA *msa = NULL; /* multiple sequence alignment */
int status; /* easel return code */
@@ -79,7 +79,6 @@ main(int argc, char **argv)
int do_remove_bps = FALSE; /* TRUE if -r */
int do_consistent = FALSE; /* TRUE if -c */
int do_indi2cons = FALSE; /* TRUE if --indi <x> */
- char *indi2cons;
int have_cons; /* TRUE if first alignment has consensus sequence */
int do_newcons = FALSE; /* TRUE if we're creating a new consensus structure
* and outputing a new alignment (if -x -f -c or --indi)
@@ -179,8 +178,8 @@ main(int argc, char **argv)
if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
- if ( (status = eslx_msafile_Open(&abc, alifile, NULL, fmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Open(&abc, alifile, NULL, fmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
/* open output file */
if (esl_opt_GetString(go, "-o") != NULL) {
@@ -206,7 +205,6 @@ main(int argc, char **argv)
do_consistent = esl_opt_GetBoolean(go, "-c");
if(!(esl_opt_IsDefault(go, "--indi"))) {
do_indi2cons = TRUE;
- indi2cons = esl_opt_GetString(go, "--indi");
}
if(do_max || do_ffreq || do_fmin || do_remove_bps || do_consistent || do_indi2cons) {
do_newcons = TRUE;
@@ -224,9 +222,9 @@ main(int argc, char **argv)
lmax = esl_opt_GetInteger(go, "--lmax");
if(esl_opt_GetBoolean(go, "-v")) be_verbose = TRUE;
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
nali++;
/* determine max length name */
@@ -512,7 +510,6 @@ main(int argc, char **argv)
/* --fmin */
if(do_fmin) {
/* define ss_cons */
- nbps = 0;
prev_nbps = -1;
fthresh = 0.99;
inconsistent_flag = pknot_flag = FALSE;
@@ -645,7 +642,7 @@ main(int argc, char **argv)
if((status = esl_ct2wuss(cons_ct, msa->alen, sscons)) != eslOK) goto ERROR;
if(msa->ss_cons != NULL) { free(msa->ss_cons); msa->ss_cons = NULL; }
if((status = esl_strcat(&(msa->ss_cons), -1, sscons, msa->alen)) != eslOK) goto ERROR;
- status = eslx_msafile_Write(ofp, msa, (esl_opt_GetBoolean(go, "--pfam") ? eslMSAFILE_PFAM : eslMSAFILE_STOCKHOLM));
+ status = esl_msafile_Write(ofp, msa, (esl_opt_GetBoolean(go, "--pfam") ? eslMSAFILE_PFAM : eslMSAFILE_STOCKHOLM));
if (status == eslEMEM) esl_fatal("Memory error when outputting alignment\n");
else if (status != eslOK) esl_fatal("Writing alignment file failed with error %d\n", status);
}
@@ -667,12 +664,12 @@ main(int argc, char **argv)
printf("# Alignment(s) saved to file %s\n", esl_opt_GetString(go, "-o"));
fclose(ofp);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_getopts_Destroy(go);
return 0;
ERROR:
- if(afp) eslx_msafile_Close(afp);
+ if(afp) esl_msafile_Close(afp);
if(go) esl_getopts_Destroy(go);
if(msa) esl_msa_Destroy(msa);
if(lfp) fclose(lfp);
diff --git a/easel/miniapps/esl-histplot.c b/easel/miniapps/esl-histplot.c
index 6d046f9..0b92c71 100644
--- a/easel/miniapps/esl-histplot.c
+++ b/easel/miniapps/esl-histplot.c
@@ -1,7 +1,7 @@
/* esl-histplot - collate data into a histogram and output xmgrace datafile.
*
* SRE, Tue Feb 21 14:18:05 2006
- * SVN $Id: esl-histplot.c 400 2009-10-12 10:38:07Z nawrockie $
+ * SVN $Id$
*/
/* Wish list
@@ -17,8 +17,10 @@
#include "esl_getopts.h"
#include "esl_histogram.h"
#include "esl_exponential.h"
+#include "esl_gev.h"
#include "esl_gumbel.h"
-
+#include "esl_normal.h"
+#include "esl_stats.h"
static char banner[] = "collate a data histogram, output xmgrace datafile";
@@ -37,17 +39,20 @@ static ESL_OPTIONS options[] = {
{"--max", eslARG_REAL, "100.",NULL,NULL, NULL,NULL,NULL,"initial upper bound of histogram", 3 },
{"--surv", eslARG_NONE, FALSE,NULL,NULL, NULL,NULL,NULL,"output survival plot, not histogram", 3 },
- {"--gumbel", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit data to a Gumbel distribution", 4 },
- {"--trunc", eslARG_REAL, NULL, NULL,NULL, NULL,"--gumbel",NULL,"with --gumbel, specify data is truncated, min value is <x>", 4 },
- {"--exptail", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit tail to an exponential distribution", 4 },
+ {"--gumbel", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit data to a Gumbel distribution", 4 },
+ {"--exptail", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit tail to an exponential distribution", 4 },
+ {"--gev", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit data to a generalized EVD (Frechet or Weibull)", 4 },
+ {"--normal", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit data to a normal (Gaussian) distribution", 4 },
+ {"--trunc", eslARG_REAL, NULL, NULL,NULL, NULL,"--gumbel",NULL,"with --gumbel, specify data are truncated, min value is <x>", 4 },
{"--gumloc", eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit data to a Gumbel distribution w/ known lambda", 4 },
{"--exptailloc",eslARG_NONE, FALSE, NULL,NULL, NULL,NULL,NULL,"fit tail to an exponential tail w/ known lambda", 4 },
{"--showgum", eslARG_NONE, FALSE, NULL,NULL, NULL,"--mu",NULL,"plot a known Gumbel for comparison", 4 },
{"--showexp", eslARG_NONE, FALSE, NULL,NULL, NULL,"--mu",NULL,"plot a known exponential tail for comparison", 4 },
+ {"--showgev", eslARG_NONE, FALSE, NULL,NULL, NULL,"--mu",NULL,"plot a known GEV for comparison", 4 },
+ {"--alpha", eslARG_REAL, "0.0", NULL,NULL, NULL,NULL,NULL,"set known alpha (GEV shape parameter)", 4 },
{"--lambda", eslARG_REAL,"0.693", NULL,NULL, NULL,NULL,NULL,"set known lambda", 4 },
{"--mu", eslARG_REAL, "0.0", NULL,NULL, NULL,NULL,NULL,"set known mu", 4 },
{"-t", eslARG_REAL, "0.01", NULL,NULL, NULL,NULL,NULL,"set tail mass to fit to", 4 },
-
{ 0,0,0,0,0,0,0,0,0,0},
};
@@ -70,9 +75,10 @@ main(int argc, char **argv)
double *xv;
int n;
- double params[2];
+ double params[3]; /* mu, lambda, alpha */
double lambda;
double mu;
+ double alpha;
double tailp;
/*****************************************************************
@@ -110,6 +116,9 @@ main(int argc, char **argv)
hmax = esl_opt_GetReal (go, "--max");
lambda = esl_opt_GetReal (go, "--lambda");
mu = esl_opt_GetReal (go, "--mu");
+ alpha = esl_opt_GetReal (go, "--alpha");
+
+ ESL_DASSERT1(( which_field >= 1 ));
if (esl_opt_ArgNumber(go) != 1)
{
@@ -183,10 +192,13 @@ main(int argc, char **argv)
if (esl_opt_GetBoolean(go, "--gumbel"))
{
esl_histogram_GetData(h, &xv, &n);
- if(! esl_opt_IsDefault(go, "--trunc"))
- esl_gumbel_FitTruncated(xv, n, esl_opt_GetReal(go, "--trunc"), &(params[0]), &(params[1]));
- else
- esl_gumbel_FitComplete(xv, n, &(params[0]), &(params[1]));
+ if(! esl_opt_IsDefault(go, "--trunc")) {
+ if (esl_gumbel_FitTruncated(xv, n, esl_opt_GetReal(go, "--trunc"), &(params[0]), &(params[1])) != eslOK)
+ esl_fatal("gumbel truncated fit failed");
+ } else {
+ if (esl_gumbel_FitComplete(xv, n, &(params[0]), &(params[1])) != eslOK)
+ esl_fatal("gumbel complete fit failed");
+ }
esl_histogram_SetExpect(h, &esl_gumbel_generic_cdf, ¶ms);
printf("# Gumbel fit: mu = %f lambda = %f\n", params[0], params[1]);
@@ -195,7 +207,8 @@ main(int argc, char **argv)
{
params[1] = lambda;
esl_histogram_GetData(h, &xv, &n);
- esl_gumbel_FitCompleteLoc(xv, n, params[1], &(params[0]));
+ if (esl_gumbel_FitCompleteLoc(xv, n, params[1], &(params[0])) != eslOK)
+ esl_fatal("gumbel location-only complete fit failed");
esl_histogram_SetExpect(h, &esl_gumbel_generic_cdf, ¶ms);
printf("# Gumbel fit with forced lambda = %f: mu = %f\n", params[1], params[0]);
@@ -203,7 +216,8 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--exptail"))
{
esl_histogram_GetTailByMass(h, tailp, &xv, &n, NULL);
- esl_exp_FitComplete(xv, n, &(params[0]), &(params[1]));
+ if (esl_exp_FitComplete(xv, n, &(params[0]), &(params[1])) != eslOK)
+ esl_fatal("exponential complete fit failed");
esl_histogram_SetExpectedTail(h, params[0], tailp, &esl_exp_generic_cdf, ¶ms);
printf("# Exponential fit to %.2f%% tail: lambda = %f\n", tailp*100.0, params[1]);
@@ -215,6 +229,22 @@ main(int argc, char **argv)
params[0] = xv[0]; /* might be able to do better than minimum score, but this'll do */
esl_histogram_SetExpectedTail(h, params[0], tailp, &esl_exp_generic_cdf, ¶ms);
}
+ else if (esl_opt_GetBoolean(go, "--gev"))
+ {
+ esl_histogram_GetData(h, &xv, &n);
+ if (esl_gev_FitComplete(xv, n, &(params[0]), &(params[1]), &(params[2])) != eslOK)
+ esl_fatal("generalized EVD complete data fit failed");
+ esl_histogram_SetExpect(h, &esl_gev_generic_cdf, ¶ms);
+
+ printf("# generalized EVD fit: mu = %f lambda = %f alpha = %f\n", params[0], params[1], params[2]);
+ }
+ else if (esl_opt_GetBoolean(go, "--normal"))
+ {
+ esl_histogram_GetData(h, &xv, &n);
+ esl_stats_DMean(xv, n, &(params[0]), &(params[1])); // params[1] is now the variance...
+ params[1] = sqrt(params[1]); // ... and now the std deviation.
+ esl_histogram_SetExpect(h, &esl_normal_generic_cdf, ¶ms);
+ }
else if (esl_opt_GetBoolean(go, "--showgum"))
{
params[0] = mu;
@@ -227,7 +257,13 @@ main(int argc, char **argv)
params[1] = lambda;
esl_histogram_SetExpectedTail(h, mu, tailp, &esl_exp_generic_cdf, ¶ms);
}
-
+ else if (esl_opt_GetBoolean(go, "--showgev"))
+ {
+ params[0] = mu;
+ params[1] = lambda;
+ params[2] = alpha;
+ esl_histogram_SetExpect(h, &esl_gev_generic_cdf, ¶ms);
+ }
/*****************************************************************
* Output
diff --git a/easel/miniapps/esl-mask.c b/easel/miniapps/esl-mask.c
index df1aea6..960b0e4 100644
--- a/easel/miniapps/esl-mask.c
+++ b/easel/miniapps/esl-mask.c
@@ -1,7 +1,7 @@
/* Mask sequences in a sequence flatfile.
*
* SRE, Sat Oct 31 09:58:56 2009 [Janelia]
- * SVN $Id: esl-mask.c 480 2010-01-06 00:05:59Z farrarm $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/easel/miniapps/esl-mask.itest.pl b/easel/miniapps/esl-mask.itest.pl
index cd77901..02b47e8 100755
--- a/easel/miniapps/esl-mask.itest.pl
+++ b/easel/miniapps/esl-mask.itest.pl
@@ -6,7 +6,7 @@
# Example: ./esl-mask.itest.pl ./esl-mask foo
#
# SRE, Sun Nov 1 09:26:45 2009 [Casa de Gatos]
-# SVN $Id: esl-mask.itest.pl 434 2009-11-11 14:22:49Z eddys $
+# SVN $Id$
$eslmask = shift;
$tmppfx = shift;
diff --git a/easel/miniapps/esl-reformat.c b/easel/miniapps/esl-reformat.c
index 057d7ad..4633b38 100644
--- a/easel/miniapps/esl-reformat.c
+++ b/easel/miniapps/esl-reformat.c
@@ -5,6 +5,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#include <time.h>
#include "easel.h"
#include "esl_getopts.h"
@@ -21,7 +22,7 @@ static char usage[] = "[-options] <format> <seqfile>\n\
Output format choices: Unaligned Aligned \n\
----------- ------- \n\
fasta a2m \n\
- afa \n\
+ hmmpgmd afa \n\
clustal \n\
clustallike\n\
pfam \n\
@@ -44,7 +45,7 @@ static ESL_OPTIONS options[] = {
{ "-r", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-d", "convert to RNA alphabet (T->U)", 0 },
{ "-u", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-l", "convert to upper case", 0 },
{ "-x", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-n", "convert non-IUPAC chars (e.g. X) in DNA to N", 0 },
- { "--gapsym", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, "--mingap,--nogap", "convert all gaps to character <c>", 0 },
+ { "--gapsym", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, "--mingap,--nogap", "convert all gaps to character <s>", 0 },
{ "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "input sequence file is in format <s>", 0 },
{ "--mingap", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--nogap", "remove columns containing all gaps (seqfile=MSA)", 0 },
{ "--keeprf", eslARG_NONE, FALSE, NULL, NULL, NULL, "--mingap", NULL, "with --mingap, keep all nongap #=GC RF columns", 0 },
@@ -57,14 +58,15 @@ static ESL_OPTIONS options[] = {
{ "--rename", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "rename and number each sequence <s>.<n>", 0 },
{ "--replace", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "<s> = <s1>:<s2> replace characters in <s1> with those in <s2>", 0},
{ "--small", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, INCOMPATWITHSMALLOPT, "use minimal RAM, input must be pfam, output must be afa or pfam",0 },
+ { "--id_map", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "if format is hmmpgmd, put the id map into file <s>", 0 },
{ 0,0,0,0,0,0,0,0 },
};
static void symconvert(char *s, char *oldsyms, char *newsyms);
-static void regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsym, int force_lower, int force_upper,
+static void regurgitate_pfam_as_afa(ESL_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsym, int force_lower, int force_upper,
int force_rna, int force_dna, int iupac_to_n, int x_is_bad, char *rename, char *rfrom,
char *rto, int *ret_reached_eof);
-static int regurgitate_pfam_as_pfam(ESLX_MSAFILE *afp, FILE *ofp, char *gapsym, int force_lower, int force_upper, int force_rna,
+static int regurgitate_pfam_as_pfam(ESL_MSAFILE *afp, FILE *ofp, char *gapsym, int force_lower, int force_upper, int force_rna,
int force_dna, int iupac_to_n, int x_is_bad, int wussify, int dewuss, int fullwuss,
char *rfrom, char *rto);
static int parse_replace_string(const char *rstring, char **ret_from, char **ret_to);
@@ -79,6 +81,7 @@ main(int argc, char **argv)
int status; /* return code from an Easel call */
FILE *ofp; /* output stream */
+
char *outfile; /* output file, or NULL */
int force_rna; /* TRUE to force RNA alphabet */
int force_dna; /* TRUE to force DNA alphabet */
@@ -94,6 +97,7 @@ main(int argc, char **argv)
int fullwuss; /* TRUE to convert simple WUSS to full WUSS */
char *rename; /* if non-NULL rename seqs to <s>.<n> */
int do_small; /* TRUE to operate in small memory mode */
+ int do_fixbps; /* TRUE to assume SS/SS_cons are for WUSS RNA*/
char *rstring; /* <s> from --replace <s> */
char *rfrom, *rto; /* <s1> and <s2> from --replace <s>=<s1>:<s2>*/
int reached_eof; /* reached EOF? used only in small mem mode */
@@ -101,6 +105,8 @@ main(int argc, char **argv)
int nali; /* number of alignments read */
char errbuf[eslERRBUFSIZE]; /* for error messages */
+
+
/*****************************************************************
* Parse the command line
*****************************************************************/
@@ -158,6 +164,7 @@ main(int argc, char **argv)
rename = esl_opt_GetString (go, "--rename");
do_small = esl_opt_GetBoolean(go, "--small");
rstring = esl_opt_GetString( go, "--replace");
+ do_fixbps = (force_rna || force_dna || wussify || dewuss || fullwuss) ? TRUE : FALSE;
/* if --small, make sure infmt == pfam and (outfmt == afa || outfmt == pfam) */
if(do_small && (infmt != eslMSAFILE_PFAM || (outfmt != eslMSAFILE_AFA && outfmt != eslMSAFILE_PFAM)))
@@ -187,12 +194,11 @@ main(int argc, char **argv)
*/
if (esl_sqio_IsAlignment(outfmt))
{
- ESLX_MSAFILE *afp;
+ ESL_MSAFILE *afp;
ESL_MSA *msa;
- /* use text mode, deliberately, for maximum generality of conversion */
- status = eslx_msafile_Open(NULL, infile, NULL, infmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(NULL, infile, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if ( esl_opt_IsOn(go, "--ignore")) esl_fatal("The --ignore option is unimplemented for alignment reformatting.");
if ( esl_opt_IsOn(go, "--acceptx")) esl_fatal("The --acceptx option is unimplemented for alignment reformatting.");
@@ -212,23 +218,23 @@ main(int argc, char **argv)
else if (status == eslEINVAL) esl_fatal("--small alignment file parse error:\n%s\n", afp->errmsg);
else if (status != eslOK) esl_fatal("--small alignment file read failed with error code %d\n", status);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
}
else { /* do_small enabled, but neither (infmt==pfam && outfmt=afa) nor (infmt==pfam && outfmt==pfam) */
esl_fatal("--small requires '--informat pfam' and output format of either 'afa' or 'pfam'");
}
}
else { /* normal mode, --small not enabled */
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
nali++;
- if (nali > 1 && ! eslx_msafile_IsMultiRecord(outfmt))
- esl_fatal("Input file contains >1 alignments, but %s formatted output file can only contain 1", eslx_msafile_DecodeFormat(outfmt));
+ if (nali > 1 && ! esl_msafile_IsMultiRecord(outfmt))
+ esl_fatal("Input file contains >1 alignments, but %s formatted output file can only contain 1", esl_msafile_DecodeFormat(outfmt));
- if (do_mingap) if((status = esl_msa_MinimGaps(msa, errbuf, "-_.~", esl_opt_GetBoolean(go, "--keeprf"))) != eslOK) esl_fatal(errbuf);
- if (do_nogap) if((status = esl_msa_NoGaps (msa, errbuf, "-_.~")) != eslOK) esl_fatal(errbuf);
+ if (do_mingap) if((status = esl_msa_MinimGapsText(msa, errbuf, "-_.~", esl_opt_GetBoolean(go, "--keeprf"), do_fixbps)) != eslOK) esl_fatal(errbuf);
+ if (do_nogap) if((status = esl_msa_NoGapsText (msa, errbuf, "-_.~", do_fixbps)) != eslOK) esl_fatal(errbuf);
if (rfrom) esl_msa_SymConvert(msa, rfrom, rto);
if (gapsym) esl_msa_SymConvert(msa, "-_.", gapsym);
if (force_lower) esl_msa_SymConvert(msa,
@@ -284,73 +290,131 @@ main(int argc, char **argv)
}
}
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
esl_msa_Destroy(msa);
}
- eslx_msafile_Close(afp);
- }
+ }
+ esl_msafile_Close(afp);
} /* end of alignment->alignment conversion */
else
{ /* else: conversion to unaligned file formats */
ESL_SQFILE *sqfp; /* open input sequence file */
ESL_SQ *sq; /* an input sequence */
+ char *mapfile; /* file name into which an hmmpgmd map file should be written */
+ FILE *mapfp; /* output stream for the map file */
status = esl_sqfile_Open(infile, infmt, NULL, &sqfp);
if (status == eslENOTFOUND)
- esl_fatal("Couldn't open seqfile %s\n", infile);
+ esl_fatal("Couldn't open seqfile %s\n", infile);
else if (status == eslEFORMAT)
- esl_fatal("Couldn't determine format of seqfile %s\n", infile);
+ esl_fatal("Couldn't determine format of seqfile %s\n", infile);
else if (status == eslEINVAL)
- esl_fatal("Can't autodetect format of stdin or .gz; use --informat\n");
+ esl_fatal("Can't autodetect format of stdin or .gz; use --informat\n");
else if (status != eslOK)
- esl_fatal("Open of seqfile %s failed, code %d\n", infile, status);
+ esl_fatal("Open of seqfile %s failed, code %d\n", infile, status);
if ( esl_opt_IsOn(go, "--ignore")) esl_sqio_Ignore (sqfp, esl_opt_GetString(go, "--ignore"));
if ( esl_opt_IsOn(go, "--acceptx")) esl_sqio_AcceptAs(sqfp, esl_opt_GetString(go, "--acceptx"), 'X');
sq = esl_sq_Create();
- idx = 0;
- while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
- {
- if (rfrom!=NULL) symconvert(sq->seq, rfrom, rto);
- if (force_lower) symconvert(sq->seq,
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
- "abcdefghijklmnopqrstuvwxyz");
- if (force_upper) symconvert(sq->seq,
- "abcdefghijklmnopqrstuvwxyz",
- "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
- if (force_rna) symconvert(sq->seq, "Tt", "Uu");
- if (force_dna) symconvert(sq->seq, "Uu", "Tt");
- if (iupac_to_n) symconvert(sq->seq,
- "RYMKSWHBVDrymkswhbvd",
- "NNNNNNNNNNnnnnnnnnnn");
- if (x_is_bad) symconvert(sq->seq, "Xx", "Nn");
-
- if (wussify && sq->ss != NULL) esl_kh2wuss(sq->ss, sq->ss);
- if (dewuss && sq->ss != NULL) esl_wuss2kh(sq->ss, sq->ss);
- if (fullwuss && sq->ss != NULL)
- {
- status = esl_wuss_full(sq->ss, sq->ss);
- if (status == eslESYNTAX)
- esl_fatal("Bad SS for %s: not in WUSS format\n", sq->name);
- else if (status != eslOK)
- esl_fatal("Conversion of SS for %s failed, code %d\n",
- sq->name, status);
- }
+ if ( outfmt == eslSQFILE_HMMPGMD ) {
+ int64_t res_cnt = 0;
+ char timestamp[32];
+ time_t date;
+
+ //will need to make two passes through the file, one to get sequence count, one to convert sequences
+ if (! esl_sqfile_IsRewindable(sqfp))
+ esl_fatal("Target sequence file %s isn't rewindable; can't produce a file in hmmpgmd format", infile);
+
+
+ //pick map file name, and open the file
+ if (esl_opt_IsUsed(go, "--id_map")) {
+ mapfile = esl_opt_GetString( go, "--id_map");
+ } else {
+ esl_strdup(infile, -1, &mapfile); // there will be an infile, because stdin was restricted above
+ esl_strcat(&mapfile, -1, ".map", 4);
+ }
+ if ((mapfp = fopen(mapfile, "w")) == NULL)
+ esl_fatal("Failed to open map output file %s\n", mapfile);
+
+ //get counts, and write out the map file
+ idx = 0;
+ while ((status = esl_sqio_Read(sqfp, sq)) == eslOK) {
+ res_cnt += sq->n;
+ esl_sq_Reuse(sq);
+ idx++;
+ }
+
+ /* status should be eslEOF on normal end; if it isn't, deal w/ error */
+ if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n",
+ sqfp->filename, esl_sqfile_GetErrorBuf(sqfp));
+ else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
+ status, sqfp->filename);
+
+ /* Print the first line of the hmmpgmd format, which contains database information.
+ * #<res_count> <seq_count> <db_count> <db_sequences_1> <db_sequences_before_removing_duplicates_1> <db_sequences_2> <db_sequences_before_removing_duplicates_2> ... <date_stamp>
+ * It shoves all sequences into a single database, #1.
+ */
+ date = time(NULL);
+ ctime_r(&date, timestamp);
+ fprintf(mapfp, "%d\n", idx);
+ fprintf(ofp, "#%" PRId64 " %d %d %d %d %s", res_cnt, idx, 1, idx, idx, timestamp);
+
+ esl_sqfile_Position(sqfp, 0);
+ }
- if (rename) esl_sq_FormatName(sq, "%s.%d", rename, idx+1);
- esl_sqio_Write(ofp, sq, outfmt, FALSE);
- esl_sq_Reuse(sq);
- idx++;
- }
+ idx = 0;
+ while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
+ {
+ if (rfrom!=NULL) symconvert(sq->seq, rfrom, rto);
+ if (force_lower) symconvert(sq->seq,
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
+ "abcdefghijklmnopqrstuvwxyz");
+ if (force_upper) symconvert(sq->seq,
+ "abcdefghijklmnopqrstuvwxyz",
+ "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
+ if (force_rna) symconvert(sq->seq, "Tt", "Uu");
+ if (force_dna) symconvert(sq->seq, "Uu", "Tt");
+ if (iupac_to_n) symconvert(sq->seq,
+ "RYMKSWHBVDrymkswhbvd",
+ "NNNNNNNNNNnnnnnnnnnn");
+ if (x_is_bad) symconvert(sq->seq, "Xx", "Nn");
+
+ if (wussify && sq->ss != NULL) esl_kh2wuss(sq->ss, sq->ss);
+ if (dewuss && sq->ss != NULL) esl_wuss2kh(sq->ss, sq->ss);
+
+ if (fullwuss && sq->ss != NULL)
+ {
+ status = esl_wuss_full(sq->ss, sq->ss);
+ if (status == eslESYNTAX)
+ esl_fatal("Bad SS for %s: not in WUSS format\n", sq->name);
+ else if (status != eslOK)
+ esl_fatal("Conversion of SS for %s failed, code %d\n",
+ sq->name, status);
+ }
+
+ if ( outfmt == eslSQFILE_HMMPGMD ) {
+ fprintf(mapfp, "%d %s %s\n", idx+1, sq->name?sq->name:"", sq->desc?sq->desc:"");
+ esl_sq_FormatName(sq, "%d 1", idx+1);
+ esl_sq_FormatDesc(sq, "");
+ } else {
+ if (rename) esl_sq_FormatName(sq, "%s.%d", rename, idx+1);
+ }
+ esl_sqio_Write(ofp, sq, outfmt, FALSE);
+ esl_sq_Reuse(sq);
+ idx++;
+ }
/* status should be eslEOF on normal end; if it isn't, deal w/ error */
if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n",
sqfp->filename, esl_sqfile_GetErrorBuf(sqfp));
else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
status, sqfp->filename);
+ if ( outfmt == eslSQFILE_HMMPGMD )
+ fclose(mapfp);
+
esl_sq_Destroy(sq);
esl_sqfile_Close(sqfp);
} /* end of unaligned seq conversion */
@@ -441,7 +505,7 @@ symconvert(char *s, char *oldsyms, char *newsyms)
* Returns void. Dies upon any input error.
*/
static void
-regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsym, int force_lower, int force_upper, int force_rna, int force_dna, int iupac_to_n, int x_is_bad, char *rename, char *rfrom, char *rto, int *ret_reached_eof)
+regurgitate_pfam_as_afa(ESL_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsym, int force_lower, int force_upper, int force_rna, int force_dna, int iupac_to_n, int x_is_bad, char *rename, char *rfrom, char *rto, int *ret_reached_eof)
{
char *p = NULL;
esl_pos_t n = 0;
@@ -487,7 +551,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
/* Check the magic Stockholm header line, allowing blank lines */
do {
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) return;
else if (status != eslOK) esl_fatal("small mem parse error. problem reading line %d of msafile", (int) afp->linenumber);
} while (esl_memspn(afp->line, afp->n, " \t") == afp->n || /* skip blank lines */
@@ -496,7 +560,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
if (! esl_memstrpfx(afp->line, afp->n, "# STOCKHOLM 1.")) esl_fatal("small mem parse failed (line %d): missing \"# STOCKHOLM\" header", (int) afp->linenumber);
- while ((status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ((status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
while (n && ( *p == ' ' || *p == '\t')) { p++; n--; } /* skip leading whitespace */
@@ -510,12 +574,12 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
if (esl_memstrcmp(tag, taglen, "AC"))
{
if (! ac_fp && esl_tmpfile(ac_tmpfile, &ac_fp) != eslOK) esl_fatal("small mem parse failed, unable to open accession tmpfile");
- fprintf(ac_fp, "%.*s %.*s\n", (int) seqnamelen, seqname, (int) n, p);
+ fprintf(ac_fp, "%.*s %.*s\n", (int) seqnamelen, seqname, (int) n, p); // cppcheck thinks ac_fp is a "possible null pointer deference"; I think it's wrong.
}
if (esl_memstrcmp(tag, taglen, "DE"))
{
if (! de_fp && esl_tmpfile(de_tmpfile, &de_fp) != eslOK) esl_fatal("small mem parse failed, unable to open description tmpfile");
- fprintf(de_fp, "%.*s %.*s\n", (int) seqnamelen, seqname, (int) n, p);
+ fprintf(de_fp, "%.*s %.*s\n", (int) seqnamelen, seqname, (int) n, p); // cppcheck thinks de_fp is a "possible null pointer deference"; I think it's wrong.
}
}
else if (esl_memstrpfx(p, n, "//")) break;
@@ -526,7 +590,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
/* The regurgitate_*() functions are limited, and only deal with single-record Pfam files.
* If there appears to be more data in the file, drop the reached_eof flag.
*/
- while ((status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ((status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
while (n && ( *p == ' ' || *p == '\t')) { p++; n--; } /* skip leading whitespace */
if (esl_memstrpfx(p, n, "# STOCKHOLM 1.")) break;
@@ -540,8 +604,8 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
* Pass 1 complete; rewind (close/reopen) all files
*****************************************************************/
- eslx_msafile_Close(afp);
- if ((status = eslx_msafile_Open(NULL, alifile, NULL, eslMSAFILE_PFAM, NULL, &afp)) != eslOK)
+ esl_msafile_Close(afp);
+ if ((status = esl_msafile_Open(NULL, alifile, NULL, eslMSAFILE_PFAM, NULL, &afp)) != eslOK)
esl_fatal("--small, second pass, unable to open file %s for reading", alifile);
if (ac_fp) { /* open the tmpfile with the seq accessions */
@@ -564,7 +628,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
******************************************************************************************/
do {
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) return;
else if (status != eslOK) esl_fatal("small mem parse pass 2 error. problem reading line %d of msafile", (int) afp->linenumber);
} while (esl_memspn(afp->line, afp->n, " \t") == afp->n || /* skip blank lines */
@@ -573,7 +637,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
if (! esl_memstrpfx(afp->line, afp->n, "# STOCKHOLM 1.")) esl_fatal("small mem parse pass 2 failed (line %d): missing \"# STOCKHOLM\" header", (int) afp->linenumber);
- while ((status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ((status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
while (n && ( *p == ' ' || *p == '\t')) { p++; n--; } /* skip leading whitespace */
@@ -655,7 +719,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
if (ac_fp) fclose(ac_fp);
if (de_fp) fclose(de_fp);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (first_seqname) free(first_seqname);
if (ac_buf) free(ac_buf);
@@ -678,7 +742,7 @@ regurgitate_pfam_as_afa(ESLX_MSAFILE *afp, FILE *ofp, char *alifile, char *gapsy
* message that indicates the cause of the problem.
*/
static int
-regurgitate_pfam_as_pfam(ESLX_MSAFILE *afp, FILE *ofp, char *gapsym, int force_lower, int force_upper, int force_rna, int force_dna, int iupac_to_n, int x_is_bad, int wussify, int dewuss, int fullwuss, char *rfrom, char *rto)
+regurgitate_pfam_as_pfam(ESL_MSAFILE *afp, FILE *ofp, char *gapsym, int force_lower, int force_upper, int force_rna, int force_dna, int iupac_to_n, int x_is_bad, int wussify, int dewuss, int fullwuss, char *rfrom, char *rto)
{
char *p;
esl_pos_t n;
@@ -707,7 +771,7 @@ regurgitate_pfam_as_pfam(ESLX_MSAFILE *afp, FILE *ofp, char *gapsym, int force_l
*/
/* Check the magic Stockholm header line, allowing blank lines */
do {
- status = eslx_msafile_GetLine(afp, &p, &n);
+ status = esl_msafile_GetLine(afp, &p, &n);
if (status == eslEOF) return eslEOF;
else if (status != eslOK) esl_fatal("small mem parse error. problem reading line %d of msafile", (int) afp->linenumber);
fprintf(ofp, "%.*s\n", (int) afp->n, afp->line);
@@ -718,7 +782,7 @@ regurgitate_pfam_as_pfam(ESLX_MSAFILE *afp, FILE *ofp, char *gapsym, int force_l
if (! esl_memstrpfx(afp->line, afp->n, "# STOCKHOLM 1.")) esl_fatal("small mem parse failed (line %d): missing \"# STOCKHOLM\" header", (int) afp->linenumber);
/* Read the alignment file one line at a time. */
- while ((status = eslx_msafile_GetLine(afp, &p, &n)) == eslOK)
+ while ((status = esl_msafile_GetLine(afp, &p, &n)) == eslOK)
{
if ((int) afp->linenumber % flushpoint == 0) fflush(ofp);
while (n && ( *p == ' ' || *p == '\t')) { p++; n--; } /* skip leading whitespace */
@@ -880,14 +944,11 @@ parse_replace_string(const char *rstring, char **ret_from, char **ret_to)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-reformat.c $
- * SVN $Id: esl-reformat.c 711 2011-07-27 20:06:15Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-selectn.c b/easel/miniapps/esl-selectn.c
index 65d5720..f811901 100644
--- a/easel/miniapps/esl-selectn.c
+++ b/easel/miniapps/esl-selectn.c
@@ -1,7 +1,10 @@
-/* Select <n> random lines from a file and print them.
+/* Select <m> random lines from a file and print them.
+ *
+ * Uses a reservoir sample - O(m) in space, single pass on the input,
+ * never reads the entire input into memory.
*
* SRE, Fri Jun 13 08:17:53 2008 [Janelia]
- * SVN $Id: esl-selectn.c 526 2010-02-22 12:45:09Z eddys $
+ * SVN $Id$
*/
#include "esl_config.h"
@@ -49,16 +52,16 @@ int
main(int argc, char **argv)
{
ESL_GETOPTS *go = NULL;
- ESL_RANDOMNESS *r = NULL;
- int nselect = 0;
+ ESL_RANDOMNESS *rng = NULL;
char *filename = NULL;
FILE *fp = NULL;
- char **larr = NULL;
+ int m = 0; /* number of lines to sample */
+ char **larr = NULL; /* sampled line ptr array, [0..m-1] */
char *buf = NULL;
int buflen = 0;
- char *tmp = NULL;
- int i,j;
- int n;
+ int n; /* number of lines read so far */
+ int r; /* random #, 0..n-1 */
+ int i;
/* Parse command line */
go = esl_getopts_Create(options);
@@ -67,12 +70,12 @@ main(int argc, char **argv)
if (esl_opt_GetBoolean(go, "-h") ) cmdline_help(argv[0], go);
if (esl_opt_ArgNumber(go) != 2) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n");
- nselect = atoi(esl_opt_GetArg(go, 1));
+ m = atoi(esl_opt_GetArg(go, 1));
filename = esl_opt_GetArg(go, 2);
+ rng = esl_randomness_Create(esl_opt_GetInteger(go, "--seed"));
- r = esl_randomness_Create(esl_opt_GetInteger(go, "--seed"));
-
- if ((larr = malloc(sizeof(char *) * nselect)) == NULL) esl_fatal("allocation failed");
+ if ((larr = malloc(sizeof(char *) * m)) == NULL) esl_fatal("allocation failed");
+ for (i = 0; i < m; i++) larr[i] = NULL;
if (strcmp(filename, "-") == 0) fp = stdin;
else {
@@ -83,37 +86,38 @@ main(int argc, char **argv)
while (esl_fgets(&buf, &buflen, fp) == eslOK)
{
n++;
- i = esl_rnd_Roll(r, n);
- if (i < nselect) {
- for (j = i; j < nselect && j < n; j++)
- {
- tmp = larr[j];
- larr[j] = buf;
- buf = tmp;
- }
- free(buf);
- buf = NULL;
- buflen = 0;
+ if (n <= m) {
+ larr[n-1] = buf;
+ buf = NULL;
+ buflen = 0;
+ } else {
+ r = esl_rnd_Roll(rng, n);
+ if (r < m) {
+ free(larr[r]);
+ larr[r] = buf;
+ buf = NULL;
+ buflen = 0;
+ }
}
- }
+ }
- for (i = 0; i < nselect; i++) printf("%s", larr[i]);
+ for (i = 0; i < m; i++) printf("%s", larr[i]);
if (fp != stdin) fclose(fp);
- for (i = 0; i < nselect; i++) free(larr[i]);
+ for (i = 0; i < m; i++) free(larr[i]);
free(larr);
- free(buf);
- esl_randomness_Destroy(r);
+ if (buf) free(buf);
+ esl_randomness_Destroy(rng);
esl_getopts_Destroy(go);
return 0;
}
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-selectn.man b/easel/miniapps/esl-selectn.man
index 0fc0ea1..1f43735 100644
--- a/easel/miniapps/esl-selectn.man
+++ b/easel/miniapps/esl-selectn.man
@@ -30,8 +30,8 @@ input is read from
.I stdin.
.pp
-The algorithm used is efficient, requiring only a single pass through
-.I filename
+Uses a reservoir sampling algorithm, which is efficient: requires only a single pass through
+.I filename,
and memory storage proportional to
.I nlines
(and importantly, not to the size of
diff --git a/easel/miniapps/esl-seqstat.c b/easel/miniapps/esl-seqstat.c
index ab78874..9665ef5 100644
--- a/easel/miniapps/esl-seqstat.c
+++ b/easel/miniapps/esl-seqstat.c
@@ -1,7 +1,7 @@
/* Simple statistics on a sequence file
*
* SRE, Sun Feb 24 15:33:53 2008 [UA5315 to St. Louis]
- * SVN $Id: esl-seqstat.c 757 2012-03-28 14:49:15Z eddys $
+ * SVN $Id$
* from squid's seqstat (1994)
*
* Wish list:
@@ -18,6 +18,7 @@
#include <math.h>
#include "easel.h"
+#include "esl_composition.h"
#include "esl_getopts.h"
#include "esl_sq.h"
#include "esl_sqio.h"
@@ -39,8 +40,8 @@ static ESL_OPTIONS options[] = {
{ "--rna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, ALPH_OPTS, "specify that <seqfile> contains RNA sequence", 1 },
{ "--dna", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, ALPH_OPTS, "specify that <seqfile> contains DNA sequence", 1 },
{ "--amino", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, ALPH_OPTS, "specify that <seqfile> contains protein sequence", 1 },
-
- { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,NULL, NULL, "arrest after start: for debugging under gdb", 99 },
+ { "--comptbl", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "alternative output: a table of residue compositions per seq", 1 },
+ { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for debugging under gdb", 99 },
{ 0,0,0,0,0,0,0,0,0,0 },
};
@@ -85,9 +86,10 @@ main(int argc, char **argv)
double *monoc = NULL; /* monoresidue composition per sequence */
double *monoc_all = NULL; /* monoresidue composition over all seqs */
int do_comp = FALSE;
+ int do_comptbl = FALSE;
int status = eslOK;
int wstatus;
- int i;
+ int i, x;
int do_stall; /* used to stall when debugging */
@@ -98,8 +100,9 @@ main(int argc, char **argv)
if (esl_opt_GetBoolean(go, "-h") ) cmdline_help(argv[0], go);
if (esl_opt_ArgNumber(go) != 1) cmdline_failure(argv[0], "Incorrect number of command line arguments.\n");
- seqfile = esl_opt_GetArg(go, 1);
- do_comp = esl_opt_GetBoolean(go, "-c");
+ seqfile = esl_opt_GetArg(go, 1);
+ do_comp = esl_opt_GetBoolean(go, "-c");
+ do_comptbl = esl_opt_GetBoolean(go, "--comptbl");
if (esl_opt_GetString(go, "--informat") != NULL) {
infmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat"));
@@ -109,7 +112,6 @@ main(int argc, char **argv)
do_stall = esl_opt_GetBoolean(go, "--stall"); /* a stall point for attaching gdb */
while (do_stall);
-
/* open input file */
status = esl_sqfile_Open(seqfile, infmt, NULL, &sqfp);
if (status == eslENOTFOUND) esl_fatal("No such file %s", seqfile);
@@ -131,18 +133,28 @@ main(int argc, char **argv)
sq = esl_sq_CreateDigital(abc);
esl_sqfile_SetDigital(sqfp, abc);
- if (do_comp) {
+ if (do_comp || do_comptbl) {
ESL_ALLOC(monoc, (abc->Kp) * sizeof(double));
ESL_ALLOC(monoc_all, (abc->Kp) * sizeof(double));
esl_vec_DSet(monoc_all, abc->Kp, 0.0);
esl_vec_DSet(monoc, abc->Kp, 0.0);
}
+ /* Output header, if any */
+ if (do_comptbl) {
+ printf("#%-29s %6s", " Sequence name", "Length");
+ for (x = 0; x < abc->K; x++) printf(" %c", (char) abc->sym[x]);
+ fputc('\n', stdout);
+ printf("#%-29s %6s", "-----------------------------", "------");
+ for (x = 0; x < abc->K; x++) printf(" %6s", "------");
+ fputc('\n', stdout);
+ }
+
while ((wstatus = esl_sqio_ReadWindow(sqfp, 0, 4096, sq)) != eslEOF)
{
if (wstatus == eslOK)
{
- if (do_comp)
+ if (do_comp || do_comptbl)
for (i = 1; i <= sq->n; i++)
monoc[sq->dsq[i]]++;
}
@@ -154,14 +166,20 @@ main(int argc, char **argv)
large = ESL_MAX(large, sq->L);
}
- if (esl_opt_GetBoolean(go, "-a")) {
- printf("= %-20s %8" PRId64 " %s\n", sq->name, sq->L, (sq->desc != NULL) ? sq->desc : "");
+ if (!do_comptbl && esl_opt_GetBoolean(go, "-a")) {
+ printf("= %-25s %8" PRId64 " %s\n", sq->name, sq->L, (sq->desc != NULL) ? sq->desc : "");
+ }
+
+ if (do_comptbl) {
+ printf("%-30s %6" PRId64, sq->name, sq->L);
+ for (x = 0; x < abc->K; x++) printf(" %6.0f", monoc[x]);
+ fputc('\n', stdout);
}
nres += sq->L;
nseq++;
esl_sq_Reuse(sq);
- if (do_comp) {
+ if (do_comp || do_comptbl) {
esl_vec_DAdd(monoc_all, monoc, abc->Kp);
esl_vec_DSet(monoc, abc->Kp, 0.0);
}
@@ -172,20 +190,21 @@ main(int argc, char **argv)
wstatus, sqfp->filename);
}
- printf("Format: %s\n", esl_sqio_DecodeFormat(sqfp->format));
- printf("Alphabet type: %s\n", esl_abc_DecodeType(abc->type));
- printf("Number of sequences: %" PRId64 "\n", nseq);
- printf("Total # residues: %" PRId64 "\n", nres);
- printf("Smallest: %" PRId64 "\n", small);
- printf("Largest: %" PRId64 "\n", large);
- printf("Average length: %.1f\n", (float) nres / (float) nseq);
-
- if (do_comp) {
- show_overall_composition(abc, monoc_all, nres);
- free(monoc);
- free(monoc_all);
- }
+ if (! do_comptbl)
+ {
+ printf("Format: %s\n", esl_sqio_DecodeFormat(sqfp->format));
+ printf("Alphabet type: %s\n", esl_abc_DecodeType(abc->type));
+ printf("Number of sequences: %" PRId64 "\n", nseq);
+ printf("Total # residues: %" PRId64 "\n", nres);
+ printf("Smallest: %" PRId64 "\n", small);
+ printf("Largest: %" PRId64 "\n", large);
+ printf("Average length: %.1f\n", (float) nres / (float) nseq);
+
+ if (do_comp) show_overall_composition(abc, monoc_all, nres);
+ }
+ if (monoc) free(monoc);
+ if (monoc_all) free(monoc_all);
esl_alphabet_Destroy(abc);
esl_sq_Destroy(sq);
esl_sqfile_Close(sqfp);
@@ -200,15 +219,16 @@ main(int argc, char **argv)
static void
show_overall_composition(const ESL_ALPHABET *abc, const double *monoc_all, int64_t nres)
{
+ double *iid_bg = NULL;;
int x;
+ int status;
printf("\nResidue composition:\n");
if (abc->type == eslAMINO)
{
- double *iid_bg;
-
- if ((iid_bg = malloc(sizeof(double) * abc->K)) == NULL) esl_fatal("malloc failed");
+ ESL_DASSERT1(( abc->K == 20 )); // esl_composition_*() functions assume this
+ ESL_ALLOC(iid_bg, sizeof(double) * abc->K);
esl_composition_SW50(iid_bg);
for (x = 0; x < abc->K; x++)
@@ -229,6 +249,10 @@ show_overall_composition(const ESL_ALPHABET *abc, const double *monoc_all, int64
}
return;
+
+ ERROR:
+ if (iid_bg) free(iid_bg);
+ return;
}
diff --git a/easel/miniapps/esl-sfetch.c b/easel/miniapps/esl-sfetch.c
index dc6fdc0..f355458 100644
--- a/easel/miniapps/esl-sfetch.c
+++ b/easel/miniapps/esl-sfetch.c
@@ -2,7 +2,7 @@
*
* From squid's sfetch and ffetch
* SRE, Mon Mar 31 16:12:50 2008 [Janelia]
- * SVN $Id: esl-sfetch.c 769 2012-06-05 17:50:33Z nawrockie $
+ * SVN $Id$
*/
#include "esl_config.h"
@@ -51,7 +51,8 @@ cmdline_help(char *argv0, ESL_GETOPTS *go)
esl_opt_DisplayHelp(stdout, go, 2, 2, 80);
puts("\n On command line, subseq coords are separated by any nonnumeric, nonspace character(s).");
puts(" for example, -c 23..100 or -c 23/100 or -c 23-100 all work.\n");
- puts(" Additionally, to retrieve a suffix to the end, omit the end coord; -c 23: will work.");
+ puts(" Additionally, to retrieve a suffix to the end, omit the end coord or set it to zero; -c 23.. ");
+ puts(" will work, as will -c 23..0\n");
puts(" By default, the subseq will be named <source name>/<from>-<to>. To assign a name of");
puts(" your choice, use -n <newname>.\n");
puts(" In retrieving subsequences listed in a file (-C -f, or just -Cf), each line of the file");
@@ -60,8 +61,6 @@ cmdline_help(char *argv0, ESL_GETOPTS *go)
puts(" retrieved; in protein sequence, this is an error. The -r option is another way to revcomp.");
puts("\n other options:");
esl_opt_DisplayHelp(stdout, go, 3, 2, 80);
- puts("\n options for retreiving subsequences from cmsearch tab file (require -C and -f):");
- esl_opt_DisplayHelp(stdout, go, 4, 2, 80);
exit(0);
}
@@ -73,6 +72,7 @@ static ESL_OPTIONS options[] = {
{ "-n", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, "-f,--index", "rename the sequence <s>", 1 },
{ "-r", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--index", "reverse complement the seq(s)", 1 },
+
{ "-c", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, "-f,--index", "retrieve subsequence coords <from>..<to>", 2 },
{ "-C", eslARG_NONE, FALSE, NULL, NULL, NULL, "-f", "--index", "<namefile> in <f> contains subseq coords too", 2 },
@@ -91,7 +91,6 @@ static void onefetch(ESL_GETOPTS *go, FILE *ofp, char *key, ESL_SQFILE *sqfp);
static void multifetch_subseq(ESL_GETOPTS *go, FILE *ofp, char *keyfile, ESL_SQFILE *sqfp);
static void onefetch_subseq(ESL_GETOPTS *go, FILE *ofp, ESL_SQFILE *sqfp, char *newname,
char *key, uint32_t given_start, uint32_t given_end);
-static int parse_coord_string(const char *cstring, uint32_t *ret_start, uint32_t *ret_end);
int
main(int argc, char **argv)
@@ -188,7 +187,10 @@ main(int argc, char **argv)
{
uint32_t start, end;
- parse_coord_string(cstring, &start, &end);
+ status = esl_regexp_ParseCoordString(cstring, &start, &end);
+ if (status == eslESYNTAX) esl_fatal("-c takes arg of subseq coords <from>..<to>; %s not recognized", cstring);
+ if (status == eslFAIL) esl_fatal("Failed to find <from> or <to> coord in %s", cstring);
+
onefetch_subseq(go, ofp, sqfp, newname, key, start, end);
if (ofp != stdout) printf("\n\nRetrieved subsequence %s/%d-%d.\n", key, start, end);
}
@@ -431,12 +433,19 @@ multifetch_subseq(ESL_GETOPTS *go, FILE *ofp, char *gdffile, ESL_SQFILE *sqfp)
{
if (esl_fileparser_GetTokenOnLine(efp, &newname, &n1) != eslOK)
esl_fatal("Failed to read subseq name on line %d of file %s\n", efp->linenumber, gdffile);
+
if (esl_fileparser_GetTokenOnLine(efp, &s, NULL) != eslOK)
esl_fatal("Failed to read start coord on line %d of file %s\n", efp->linenumber, gdffile);
start = atoi(s);
+ if(start <= 0)
+ esl_fatal("Read invalid start coord %d on line %d of file %s (must be positive integer)\n", start, efp->linenumber, gdffile);
+
if (esl_fileparser_GetTokenOnLine(efp, &s, NULL) != eslOK)
esl_fatal("Failed to read end coord on line %d of file %s\n", efp->linenumber, gdffile);
end = atoi(s);
+ if(end < 0)
+ esl_fatal("Read invalid end coord %d on line %d of file %s (must be positive integer, or 0 for full length)\n", end, efp->linenumber, gdffile);
+
if (esl_fileparser_GetTokenOnLine(efp, &source, &n2) != eslOK)
esl_fatal("Failed to read source seq name on line %d of file %s\n", efp->linenumber, gdffile);
@@ -478,20 +487,3 @@ onefetch_subseq(ESL_GETOPTS *go, FILE *ofp, ESL_SQFILE *sqfp, char *newname, cha
}
-static int
-parse_coord_string(const char *cstring, uint32_t *ret_start, uint32_t *ret_end)
-{
- ESL_REGEXP *re = esl_regexp_Create();
- char tok1[32];
- char tok2[32];
-
- if (esl_regexp_Match(re, "^(\\d+)\\D+(\\d*)$", cstring) != eslOK) esl_fatal("-c takes arg of subseq coords <from>..<to>; %s not recognized", cstring);
- if (esl_regexp_SubmatchCopy(re, 1, tok1, 32) != eslOK) esl_fatal("Failed to find <from> coord in %s", cstring);
- if (esl_regexp_SubmatchCopy(re, 2, tok2, 32) != eslOK) esl_fatal("Failed to find <to> coord in %s", cstring);
-
- *ret_start = atol(tok1);
- *ret_end = (tok2[0] == '\0') ? 0 : atol(tok2);
-
- esl_regexp_Destroy(re);
- return eslOK;
-}
diff --git a/easel/miniapps/esl-shuffle.c b/easel/miniapps/esl-shuffle.c
index d294ae4..413586f 100644
--- a/easel/miniapps/esl-shuffle.c
+++ b/easel/miniapps/esl-shuffle.c
@@ -1,7 +1,7 @@
/* Shuffling or generating random sequences.
*
* SRE, Wed Jan 16 15:30:05 2008 [UA5230 to New York]
- * SVN $Id: esl-shuffle.c 715 2011-08-03 21:04:24Z eddys $
+ * SVN $Id$
* from squid's shuffle (1995)
*/
#include "esl_config.h"
@@ -11,6 +11,7 @@
#include <string.h>
#include "easel.h"
+#include "esl_composition.h"
#include "esl_getopts.h"
#include "esl_msa.h"
#include "esl_msashuffle.h"
@@ -113,19 +114,19 @@ msa_shuffling(ESL_GETOPTS *go, ESL_RANDOMNESS *r, FILE *ofp, int outfmt)
{
char *msafile = esl_opt_GetArg(go, 1);
int infmt = eslMSAFILE_UNKNOWN;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
ESL_MSA *shuf = NULL;
int N = esl_opt_GetInteger(go, "-N");
int i;
int status;
- if ( (status = eslx_msafile_Open(NULL, msafile, NULL, infmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ( (status = esl_msafile_Open(NULL, msafile, NULL, infmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
shuf = esl_msa_Clone(msa);
@@ -153,14 +154,14 @@ msa_shuffling(ESL_GETOPTS *go, ESL_RANDOMNESS *r, FILE *ofp, int outfmt)
}
}
- eslx_msafile_Write(ofp, shuf, afp->format);
+ esl_msafile_Write(ofp, shuf, afp->format);
}
esl_msa_Destroy(shuf);
esl_msa_Destroy(msa);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
return eslOK;
}
@@ -175,9 +176,9 @@ seq_generation(ESL_GETOPTS *go, ESL_RANDOMNESS *r, FILE *ofp, int outfmt)
ESL_ALPHABET *abc = NULL;
ESL_SQ *sq = NULL;
double *fq = NULL;
- int alphatype;
- int N = esl_opt_GetInteger(go, "-N");
- int L = esl_opt_GetInteger(go, "-L");
+ int alphatype = eslUNKNOWN; // static checkers can't see that 1 of --rna, --dna, --amino must be true
+ int N = esl_opt_GetInteger(go, "-N");
+ int L = esl_opt_GetInteger(go, "-L");
int i;
int status;
@@ -390,10 +391,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-shuffle.itest.pl b/easel/miniapps/esl-shuffle.itest.pl
index 90a8462..0c8e568 100755
--- a/easel/miniapps/esl-shuffle.itest.pl
+++ b/easel/miniapps/esl-shuffle.itest.pl
@@ -6,7 +6,7 @@
# Example: ./esl-shuffle.itest.pl ./esl-shuffle foo
#
# SRE, Tue Nov 10 17:27:22 2009
-# SVN $Id: esl-shuffle.itest.pl 589 2010-04-10 12:53:24Z eddys $
+# SVN $Id$
$eslshuffle = shift;
$tmppfx = shift;
diff --git a/easel/miniapps/esl-ssdraw.c b/easel/miniapps/esl-ssdraw.c
index 9ad9f99..6442e0f 100644
--- a/easel/miniapps/esl-ssdraw.c
+++ b/easel/miniapps/esl-ssdraw.c
@@ -580,7 +580,7 @@ main(int argc, char **argv)
char *templatefile = NULL; /* template file, specifying >= 1 SS diagrams
* (each must have a unique consensus length) */
int fmt; /* format code for alifile */
- ESLX_MSAFILE *afp = NULL; /* open alignment file, normal interface */
+ ESL_MSAFILE *afp = NULL; /* open alignment file, normal interface */
ESL_MSAFILE2 *afp2 = NULL; /* open alignment file, legacy small-memory interface */
ESL_MSA *msa = NULL; /* one multiple sequence alignment */
int status; /* easel return code */
@@ -855,10 +855,10 @@ main(int argc, char **argv)
hc_scheme[RB_6_RL_SCHEME][1][IYELW] = hc_scheme[RB_6_RH_SCHEME][4][IYELW] = hc_scheme[RB_5_RL_SCHEME][1][IYELW] = hc_scheme[RB_5_RL_SCHEME][3][IYELW] = RED2BLUE_2_OF_6_Y;
hc_scheme[RB_6_RL_SCHEME][1][IBLCK] = hc_scheme[RB_6_RH_SCHEME][4][IBLCK] = hc_scheme[RB_5_RL_SCHEME][1][IBLCK] = hc_scheme[RB_5_RL_SCHEME][3][IBLCK] = RED2BLUE_2_OF_6_K;
- hc_scheme[RB_6_RL_SCHEME][2][ICYAN] = hc_scheme[RB_6_RH_SCHEME][3][ICYAN] = hc_scheme[RB_5_RL_SCHEME][2][ICYAN] = hc_scheme[RB_5_RL_SCHEME][2][ICYAN] = RED2BLUE_3_OF_6_C;
- hc_scheme[RB_6_RL_SCHEME][2][IMGTA] = hc_scheme[RB_6_RH_SCHEME][3][IMGTA] = hc_scheme[RB_5_RL_SCHEME][2][IMGTA] = hc_scheme[RB_5_RL_SCHEME][2][IMGTA] = RED2BLUE_3_OF_6_M;
- hc_scheme[RB_6_RL_SCHEME][2][IYELW] = hc_scheme[RB_6_RH_SCHEME][3][IYELW] = hc_scheme[RB_5_RL_SCHEME][2][IYELW] = hc_scheme[RB_5_RL_SCHEME][2][IYELW] = RED2BLUE_3_OF_6_Y;
- hc_scheme[RB_6_RL_SCHEME][2][IBLCK] = hc_scheme[RB_6_RH_SCHEME][3][IBLCK] = hc_scheme[RB_5_RL_SCHEME][2][IBLCK] = hc_scheme[RB_5_RL_SCHEME][2][IBLCK] = RED2BLUE_3_OF_6_K;
+ hc_scheme[RB_6_RL_SCHEME][2][ICYAN] = hc_scheme[RB_6_RH_SCHEME][3][ICYAN] = hc_scheme[RB_5_RL_SCHEME][2][ICYAN] = RED2BLUE_3_OF_6_C;
+ hc_scheme[RB_6_RL_SCHEME][2][IMGTA] = hc_scheme[RB_6_RH_SCHEME][3][IMGTA] = hc_scheme[RB_5_RL_SCHEME][2][IMGTA] = RED2BLUE_3_OF_6_M;
+ hc_scheme[RB_6_RL_SCHEME][2][IYELW] = hc_scheme[RB_6_RH_SCHEME][3][IYELW] = hc_scheme[RB_5_RL_SCHEME][2][IYELW] = RED2BLUE_3_OF_6_Y;
+ hc_scheme[RB_6_RL_SCHEME][2][IBLCK] = hc_scheme[RB_6_RH_SCHEME][3][IBLCK] = hc_scheme[RB_5_RL_SCHEME][2][IBLCK] = RED2BLUE_3_OF_6_K;
hc_scheme[RB_6_RL_SCHEME][3][ICYAN] = hc_scheme[RB_6_RH_SCHEME][2][ICYAN] = hc_scheme[RB_5_RL_SCHEME][3][ICYAN] = hc_scheme[RB_5_RL_SCHEME][1][ICYAN] = RED2BLUE_4_OF_6_C;
hc_scheme[RB_6_RL_SCHEME][3][IMGTA] = hc_scheme[RB_6_RH_SCHEME][2][IMGTA] = hc_scheme[RB_5_RL_SCHEME][3][IMGTA] = hc_scheme[RB_5_RL_SCHEME][1][IMGTA] = RED2BLUE_4_OF_6_M;
@@ -977,8 +977,8 @@ main(int argc, char **argv)
}
else
{
- status = eslx_msafile_Open(NULL, alifile, NULL, fmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(NULL, alifile, NULL, fmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
}
/* Read the mask files, if nec */
@@ -1010,8 +1010,8 @@ main(int argc, char **argv)
}
else
{
- status = eslx_msafile_Read(afp, &msa); /* if ! do_small, we read full aln into memory */
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ status = esl_msafile_Read(afp, &msa); /* if ! do_small, we read full aln into memory */
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
msa_nseq = msa->nseq;
msa_alen = msa->alen;
@@ -1288,7 +1288,7 @@ main(int argc, char **argv)
if(date != NULL) free(date);
free_sspostscript(ps);
esl_alphabet_Destroy(abc);
- if (afp) eslx_msafile_Close(afp);
+ if (afp) esl_msafile_Close(afp);
if (afp2) esl_msafile2_Close(afp2);
esl_getopts_Destroy(go);
free(hc_nbins);
@@ -1396,7 +1396,7 @@ static int
setup_sspostscript(SSPostscript_t *ps, char *errbuf)
{
float xroom, yroom;
- float header_fontwidth, header_max_chars;
+ float header_max_chars;
if(ps->rflen == 0) ESL_FAIL(eslEINVAL, errbuf, "Failed to ready any nucleotides in template file.");
@@ -1421,7 +1421,7 @@ setup_sspostscript(SSPostscript_t *ps, char *errbuf)
ps->legx_stats = ps->pagex_max - PAGE_SIDEBUF - ps->leg_rhs_space - (LEG_EXTRA_COLUMNS * ps->legx_charsize);
/* determine max size of description that will fit in header */
- header_fontwidth = (HEADER_FONTSIZE_UNSCALED / COURIER_HEIGHT_WIDTH_RATIO) / ps->scale;
+ //header_fontwidth = (HEADER_FONTSIZE_UNSCALED / COURIER_HEIGHT_WIDTH_RATIO) / ps->scale; // SRE: appears to be unused.
ps->headerx_charsize = (HEADER_FONTSIZE_UNSCALED / COURIER_HEIGHT_WIDTH_RATIO) / ps->scale;
header_max_chars = (int) ((ps->pagex_max - 2*PAGE_SIDEBUF) / ps->headerx_charsize);
ps->headery_charsize = (HEADER_FONTSIZE_UNSCALED) / ps->scale;
@@ -2031,11 +2031,12 @@ draw_legend_column_headers(FILE *fp, SSPostscript_t *ps, int pagenum, char *errb
{
int status;
int i;
- float x, y, legend_fontsize;
+ float x, y;
+ // float legend_fontsize;
char *cur_string;
int cur_width = 0;
- legend_fontsize = LEG_FONTSIZE_UNSCALED / ps->scale;
+ //legend_fontsize = LEG_FONTSIZE_UNSCALED / ps->scale;
x = ps->legx;
y = ps->cur_legy;
@@ -2268,7 +2269,6 @@ draw_scheme_colorlegend(const ESL_GETOPTS *go, FILE *fp, SchemeColorLegend_t *sc
fprintf(fp, "((all colors)) %.2f %.2f moveto show\n", x, y);
/* print stats for excluded by mask */
- old_x = x;
x = ps->legx_stats;
y += (float) ps->leg_cellsize * 0.3125;
fprintf(fp, "(%4d %4d) %.2f %.2f moveto show\n", ps->rflen-n1s, 0, x, y);
@@ -3385,8 +3385,6 @@ individuals_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *errbuf,
ppavgA[9] = 0.90;
ppavgA[10] = 0.975;
- if(ps->mask == NULL) { ngap_masked_p = -1; } /* special flag */
-
/* determine number of pages we'll add */
new_npage = do_prob ? msa->nseq*2 : msa->nseq;
if((status = add_pages_sspostscript(ps, new_npage, INDIMODE)) != eslOK) ESL_FAIL(status, errbuf, "memory error adding pages to the postscript object.");
@@ -3401,11 +3399,11 @@ individuals_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *errbuf,
for(rfpos = 0; rfpos < ps->rflen; rfpos++) ps->otypeAA[p][rfpos] = OUTLINE_NONE_IDX;
}
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
noccl = 2;
if (do_rescol) noccl += 5;
if (do_outline) noccl += 7;
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * noccl);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * noccl);
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
if(do_rescol) ESL_ALLOC(ps->rcolAAA[p][rfpos], sizeof(float) * NCMYK); /* CMYK colors */
ESL_ALLOC(ps->bcolAAA[p][rfpos], sizeof(float) * NCMYK); /* CMYK colors */
@@ -3416,8 +3414,8 @@ individuals_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *errbuf,
p++;
ESL_ALLOC(ps->rAA[p], sizeof(char) * (ps->rflen+1));
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 1);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 1);
if(do_prob_res) ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
ESL_ALLOC(ps->bcolAAA[p][rfpos], sizeof(float) * NCMYK); /* CMYK colors */
@@ -3837,8 +3835,8 @@ cons_seq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
if((status = add_pages_sspostscript(ps, 1, INDIMODE)) != eslOK) ESL_FAIL(status, errbuf, "memory error adding pages to the postscript object.");
for(p = orig_npage; p < ps->npage; p++) {
- ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
/* fill ps->rAA with nucleotides and gaps for RF sequence */
@@ -3864,7 +3862,7 @@ cons_seq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
}
ESL_ALLOC(ps->rcolAAA[pp], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->occlAAA[pp], sizeof(OneCellColorLegend_t **) * 5);
+ ESL_ALLOC(ps->occlAAA[pp], sizeof(OneCellColorLegend_t *) * 5);
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
ESL_ALLOC(ps->rcolAAA[pp][rfpos], sizeof(float) * NCMYK); /* CMYK colors */
if(ps->msa_ct[(rfpos+1)] == 0) { /* single stranded */
@@ -3993,7 +3991,7 @@ rf_seq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps, ESL
if(do_rescol && seen_canonical) { /* determine color for the nucleotide, depends if it is single-stranded or basepaired */
ESL_ALLOC(ps->rcolAAA[pp], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->occlAAA[pp], sizeof(OneCellColorLegend_t **) * 3);
+ ESL_ALLOC(ps->occlAAA[pp], sizeof(OneCellColorLegend_t *) * 3);
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
ESL_ALLOC(ps->rcolAAA[pp][rfpos], sizeof(float) * NCMYK); /* CMYK colors */
apos = ps->msa_rf2a_map[rfpos];
@@ -4068,7 +4066,7 @@ rf_seq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps, ESL
* <ret_spos_ct> [0..apos..alen-1]
* - per position count of first nongap position over all seqs.
*
- * <ret_erfpos_ct> [0..apos..alen-1]
+ * <ret_epos_ct> [0..apos..alen-1]
* - per position count of final nongap position over all seqs.
*
* A 'gap' has a looser defintion than in esl_abc here, esl_abc's gap,
@@ -4140,6 +4138,7 @@ int count_msa(const ESL_ALPHABET *abc, ESL_MSA *msa, char *errbuf, double ***ret
for(i = 0; i < msa->nseq; i++) {
seen_start = FALSE;
+ epos = 0; // all seqs should have at least one residue, so we only need to initialize epos to make static analyzers happy.
if((status = esl_abc_Digitize(abc, msa->aseq[i], tmp_dsq)) != eslOK) ESL_FAIL(status, errbuf, "problem digitizing sequence %d", i);
for(apos = 0; apos < msa->alen; apos++) { /* update appropriate abc count, careful, tmp_dsq ranges from 1..msa->alen (not 0..msa->alen-1) */
if((status = esl_abc_DCount(abc, abc_ct[apos], tmp_dsq[apos+1], 1.0)) != eslOK) ESL_FAIL(status, errbuf, "problem counting nucleotide %d of seq %d", apos, i);
@@ -4148,7 +4147,7 @@ int count_msa(const ESL_ALPHABET *abc, ESL_MSA *msa, char *errbuf, double ***ret
spos_ct[apos]++;
seen_start = TRUE;
}
- epos = apos;
+ epos = apos; // as noted above: must get called at least once per seq.
}
/* get bp count, if nec */
if(bp_ct[apos] != NULL) { /* our flag for whether position (apos+1) is an 'i' in an i:j pair where i < j */
@@ -4218,12 +4217,12 @@ infocontent_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *errbuf,
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 1);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 1);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
@@ -4391,16 +4390,16 @@ delete_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *errbuf, SSPo
if((status = add_pages_sspostscript(ps, 1, ALIMODE)) != eslOK) ESL_FAIL(status, errbuf, "memory error adding pages to the postscript object.");
for(p = orig_npage; p < ps->npage; p++) {
- ESL_ALLOC(ps->bcolAAA[p], sizeof(int *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 2);
+ ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 2);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(c = 0; c < ps->rflen; c++) {
- ESL_ALLOC(ps->bcolAAA[p][c], sizeof(int) * NCMYK); /* CMYK colors */
+ ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
}
@@ -4593,7 +4592,7 @@ insertfreq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
int p, pp, c, l;
int rfpos;
int orig_npage = ps->npage;
- int apos;
+ //int apos;
int nzeroins = 0;
int nzeroins_masked = 0;
int nfewins = 0;
@@ -4613,12 +4612,12 @@ insertfreq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 2);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 2);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
@@ -4682,7 +4681,7 @@ insertfreq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
/* print info on inserts before rfpos 1 to tabfile, if nec */
if(tabfp != NULL) {
- apos = ps->msa_rf2a_map[0];
+ //apos = ps->msa_rf2a_map[0];
if(nseq_with_ins_ct[0] > span_ct[0]) ESL_FAIL(eslERANGE, errbuf, "drawing insert page, rfpos: 0 nseq_with_ins_ct (%d) exceeds span_ct (%d)", nseq_with_ins_ct[0], span_ct[0]);
ifreq = (float) nseq_with_ins_ct[0] / (float) span_ct[0];
fprintf(tabfp, " insertfreq %6d %8.5f %10d %3d", 0, ifreq, span_ct[0], -1);
@@ -4691,7 +4690,7 @@ insertfreq_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
}
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
- apos = ps->msa_rf2a_map[rfpos];
+ //apos = ps->msa_rf2a_map[rfpos];
if(nseq_with_ins_ct[rfpos+1] > span_ct[rfpos]) ESL_FAIL(eslERANGE, errbuf, "drawing insert page, rfpos: %d nseq_with_ins_ct (%d) exceeds span_ct (%d)", rfpos, nseq_with_ins_ct[rfpos+1], span_ct[rfpos]);
ifreq = (float) nseq_with_ins_ct[rfpos+1] / (float) span_ct[rfpos]; /* note we don't need to add one to span_ct, it is [0..rflen-1] */
if(nseq_with_ins_ct[(rfpos+1)] == 0) { /* careful, nseq_with_ins_ct goes from 1..rflen, its off-by-one with other arrays */
@@ -4774,7 +4773,7 @@ insertavglen_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *p
int p, pp, c, l;
int rfpos;
int orig_npage = ps->npage;
- int apos;
+ //int apos;
int nzeroins = 0;
int nzeroins_masked = 0;
float *limits;
@@ -4789,12 +4788,12 @@ insertavglen_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *p
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 1);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 1);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
@@ -4857,7 +4856,7 @@ insertavglen_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *p
/* print info on inserts before rfpos 1 to tabfile, if nec */
if(tabfp != NULL) {
- apos = ps->msa_rf2a_map[0];
+ //apos = ps->msa_rf2a_map[0];
if(nseq_with_ins_ct[0] > span_ct[0]) ESL_FAIL(eslERANGE, errbuf, "drawing insert page, rfpos: 0 nseq_with_ins_ct (%d) exceeds span_ct (%d)", nseq_with_ins_ct[0], span_ct[0]);
ifreq = (span_ct[0] == 0) ? 0. : (float) nseq_with_ins_ct[0] / (float) span_ct[0];
iavglen = (nseq_with_ins_ct[0] == 0) ? 0. : (float) nins_ct[0] / (float) nseq_with_ins_ct[0];
@@ -4867,7 +4866,7 @@ insertavglen_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *p
}
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
- apos = ps->msa_rf2a_map[rfpos];
+ //apos = ps->msa_rf2a_map[rfpos];
if(nseq_with_ins_ct[rfpos+1] > span_ct[rfpos]) ESL_FAIL(eslERANGE, errbuf, "drawing insert page, rfpos: %d nseq_with_ins_ct (%d) exceeds span_ct (%d)", rfpos, nseq_with_ins_ct[rfpos+1], span_ct[rfpos]);
ifreq = (span_ct[rfpos] == 0) ? 0. : (float) nseq_with_ins_ct[rfpos+1] / (float) span_ct[rfpos];
iavglen = (nseq_with_ins_ct[rfpos+1] == 0) ? 0. : (float) nins_ct[rfpos+1] / (float) nseq_with_ins_ct[rfpos+1];
@@ -4959,12 +4958,12 @@ span_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps, int *
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 2);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 2);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
@@ -5134,12 +5133,12 @@ avg_posteriors_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *errb
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 1);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 1);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(rfpos = 0; rfpos < ps->rflen; rfpos++) {
ESL_ALLOC(ps->bcolAAA[p][rfpos], sizeof(float) * NCMYK); /* CMYK colors */
@@ -5302,7 +5301,7 @@ colormask_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps,
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 2);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 2);
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
}
@@ -5377,7 +5376,7 @@ diffmask_sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps, E
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 4);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 4);
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
}
@@ -5445,11 +5444,11 @@ add_pages_sspostscript(SSPostscript_t *ps, int ntoadd, int page_mode)
ESL_ALLOC(ps->rcolAAA, sizeof(float **) * (ps->npage + ntoadd));
ESL_ALLOC(ps->bcolAAA, sizeof(float **) * (ps->npage + ntoadd));
ESL_ALLOC(ps->otypeAA, sizeof(char *) * (ps->npage + ntoadd));
- ESL_ALLOC(ps->occlAAA, sizeof(OneCellColorLegend_t ***) * (ps->npage + ntoadd));
+ ESL_ALLOC(ps->occlAAA, sizeof(OneCellColorLegend_t **) * (ps->npage + ntoadd));
ESL_ALLOC(ps->nocclA, sizeof(int) * (ps->npage + ntoadd));
- ESL_ALLOC(ps->tlAAA, sizeof(TextLegend_t ***) * (ps->npage + ntoadd));
+ ESL_ALLOC(ps->tlAAA, sizeof(TextLegend_t **) * (ps->npage + ntoadd));
ESL_ALLOC(ps->ntlA, sizeof(int) * (ps->npage + ntoadd));
- ESL_ALLOC(ps->sclAA, sizeof(SchemeColorLegend_t **) * (ps->npage + ntoadd));
+ ESL_ALLOC(ps->sclAA, sizeof(SchemeColorLegend_t *) * (ps->npage + ntoadd));
ESL_ALLOC(ps->descA, sizeof(char *) * (ps->npage + ntoadd));
ESL_ALLOC(ps->modeA, sizeof(int) * (ps->npage + ntoadd));
ESL_ALLOC(ps->seqidxA, sizeof(int) * (ps->npage + ntoadd));
@@ -5592,12 +5591,12 @@ mutual_information_sspostscript(const ESL_GETOPTS *go, ESL_ALPHABET *abc, char *
for(p = orig_npage; p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
- ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t **) * 2);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
+ ESL_ALLOC(ps->occlAAA[p], sizeof(OneCellColorLegend_t *) * 2);
if(! esl_opt_GetBoolean(go, "--no-cnt")) {
ESL_ALLOC(ps->rAA[p], sizeof(char) * ps->rflen);
ESL_ALLOC(ps->rcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t **) * 1);
+ ESL_ALLOC(ps->tlAAA[p], sizeof(TextLegend_t *) * 1);
}
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
@@ -6988,7 +6987,7 @@ drawfile2sspostscript(const ESL_GETOPTS *go, char *errbuf, SSPostscript_t *ps, f
if((status = add_pages_sspostscript(ps, 1, ALIMODE)) != eslOK) ESL_FAIL(status, errbuf, "memory error adding pages to the postscript object.");
for(p = (ps->npage-1); p < ps->npage; p++) {
ESL_ALLOC(ps->bcolAAA[p], sizeof(float *) * ps->rflen);
- ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t *) * 1);
+ ESL_ALLOC(ps->sclAA[p], sizeof(SchemeColorLegend_t) * 1);
for(c = 0; c < ps->rflen; c++) {
ESL_ALLOC(ps->bcolAAA[p][c], sizeof(float) * NCMYK); /* CMYK colors */
}
@@ -7483,13 +7482,10 @@ void define_outline_procedure(FILE *fp)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-ssdraw.c $
- * SVN $Id: esl-ssdraw.c 821 2012-11-21 15:00:19Z nawrockie $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/miniapps/esl-translate.c b/easel/miniapps/esl-translate.c
new file mode 100644
index 0000000..b1b3e74
--- /dev/null
+++ b/easel/miniapps/esl-translate.c
@@ -0,0 +1,215 @@
+/* Translate DNA sequence into six frames, into individual ORFs.
+ *
+ */
+#include "esl_config.h"
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_gencode.h"
+#include "esl_getopts.h"
+
+
+/*****************************************************************
+ * 1. Main loop for reading complete sequences with ReadSeq()
+ *****************************************************************/
+
+static int
+do_by_sequences(ESL_GENCODE *gcode, ESL_GENCODE_WORKSTATE *wrk, ESL_SQFILE *sqfp)
+{
+ ESL_SQ *sq = esl_sq_CreateDigital(gcode->nt_abc);
+ int status;
+
+ while (( status = esl_sqio_Read(sqfp, sq )) == eslOK)
+ {
+ if (sq->n < 3) continue;
+
+ if (wrk->do_watson) {
+ esl_gencode_ProcessStart(gcode, wrk, sq);
+ esl_gencode_ProcessPiece(gcode, wrk, sq);
+ esl_gencode_ProcessEnd(wrk, sq);
+ }
+
+ if (wrk->do_crick) {
+ esl_sq_ReverseComplement(sq);
+ esl_gencode_ProcessStart(gcode, wrk, sq);
+ esl_gencode_ProcessPiece(gcode, wrk, sq);
+ esl_gencode_ProcessEnd(wrk, sq);
+ }
+
+ esl_sq_Reuse(sq);
+ }
+ if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s)\n%s\n",
+ sqfp->filename, sqfp->get_error(sqfp));
+ else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
+ status, sqfp->filename);
+
+ esl_sq_Destroy(sq);
+ return eslOK;
+}
+
+
+static int
+do_by_windows(ESL_GENCODE *gcode, ESL_GENCODE_WORKSTATE *wrk, ESL_SQFILE *sqfp)
+{
+ ESL_SQ *sq = esl_sq_CreateDigital(gcode->nt_abc);
+ int windowsize = 4092; // can be any value, but a multiple of 3 makes most sense. windowsize can be +/-; + means reading top strand; - means bottom strand.
+ int contextsize = 2; // contextsize (adjacent window overlap) must be 2, or translation won't work properly.
+ int wstatus;
+
+ ESL_DASSERT1(( windowsize % 3 == 0 ));
+
+ while (( wstatus = esl_sqio_ReadWindow(sqfp, contextsize, windowsize, sq)) != eslEOF)
+ {
+ if (wstatus == eslEOD)
+ {
+ if ( (windowsize > 0 && wrk->do_watson) || (windowsize < 0 && wrk->do_crick))
+ esl_gencode_ProcessEnd(wrk, sq);
+
+ if (windowsize > 0 && ! wrk->do_crick) { esl_sq_Reuse(sq); continue; } // Don't switch to revcomp if we don't need do. Allows -W --watson to work on nonrewindable streams
+ if (windowsize < 0) esl_sq_Reuse(sq); // Do not Reuse the sq on the switch from watson to crick; ReadWindow needs sq->L
+ windowsize = -windowsize; // switch to other strand.
+ continue;
+ }
+ else if (wstatus == eslEFORMAT) esl_fatal("Parsing failed in sequence file %s:\n%s", sqfp->filename, esl_sqfile_GetErrorBuf(sqfp));
+ else if (wstatus == eslEINVAL) esl_fatal("Invalid residue(s) found in sequence file %s\n%s", sqfp->filename, esl_sqfile_GetErrorBuf(sqfp));
+ else if (wstatus != eslOK) esl_fatal("Unexpected error %d reading sequence file %s", wstatus, sqfp->filename);
+
+ /* If we're the first window in this input DNA sequence
+ * (or the first window in its revcomp), then initialize.
+ * sq->C is the actual context overlap; 0=1st window; 2 (i.e. C)= subsequent.
+ */
+ if (sq->C == 0)
+ {
+ if (sq->n < 3) continue; // DNA sequence too short; skip it, don't even bother to revcomp, go to next sequence.
+ if ( (windowsize > 0 && wrk->do_watson) || (windowsize < 0 && wrk->do_crick))
+ esl_gencode_ProcessStart(gcode, wrk, sq);
+ }
+
+ if ( (windowsize > 0 && wrk->do_watson) || (windowsize < 0 && wrk->do_crick))
+ esl_gencode_ProcessPiece(gcode, wrk, sq);
+ }
+ esl_sq_Destroy(sq);
+ return eslOK;
+}
+
+
+/*****************************************************************
+ * x. main() for the esl-translate program
+ *****************************************************************/
+
+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", 0 },
+ { "-c", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "use alt genetic code of NCBI transl table <n>", 0 },
+ { "-l", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "minimum ORF length", 0 },
+ { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-M", "ORFs must initiate with AUG only", 0 },
+ { "-M", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m", "ORFs must start with allowed initiation codon", 0 },
+ { "-W", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use windowed, memory-efficient seq reading", 0 },
+ { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "specify that input file is in format <s>", 0 },
+ { "--watson", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only translate top strand", 0 },
+ { "--crick", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only translate bottom strand", 0 },
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+static char usage[] = "[-options] <seqfile>";
+static char banner[] = "six-frame translation of nucleic acid seq to ORFs";
+
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = NULL;
+ ESL_ALPHABET *nt_abc = esl_alphabet_Create(eslDNA);
+ ESL_ALPHABET *aa_abc = esl_alphabet_Create(eslAMINO);
+ ESL_GENCODE *gcode = NULL;
+ ESL_GENCODE_WORKSTATE *wrk = NULL;
+ char *seqfile = NULL;
+ int informat = eslSQFILE_UNKNOWN;
+ ESL_SQFILE *sqfp = NULL;
+ int status;
+
+ /*****************************************************************
+ * command line parsing
+ *****************************************************************/
+
+ go = esl_getopts_Create(options);
+ if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK ||
+ esl_opt_VerifyConfig(go) != eslOK)
+ {
+ printf("Failed to parse command line: %s\n", go->errbuf);
+ esl_usage(stdout, argv[0], usage);
+ printf("\nTo see more help on available options, do %s -h\n\n", argv[0]);
+ exit(1);
+ }
+
+ if (esl_opt_GetBoolean(go, "-h") )
+ {
+ esl_banner(stdout, argv[0], banner);
+ esl_usage (stdout, argv[0], usage);
+ puts("\n where options are:");
+ esl_opt_DisplayHelp(stdout, go, /*docgroup=*/0, /*indent=*/2, /*textwidth=*/80);
+
+ puts("\nAvailable NCBI genetic code tables (for -c <id>):");
+ esl_gencode_DumpAltCodeTable(stdout);
+
+ exit(0);
+ }
+
+ if (esl_opt_ArgNumber(go) != 1)
+ {
+ printf("Incorrect number of command line arguments.\n");
+ esl_usage(stdout, argv[0], usage);
+ printf("\nTo see more help on available options, do %s -h\n\n", argv[0]);
+ exit(1);
+ }
+
+ seqfile = esl_opt_GetArg(go, 1);
+
+ if (esl_opt_IsOn(go, "--informat") &&
+ (informat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat"))) == eslMSAFILE_UNKNOWN)
+ esl_fatal("%s is not a valid input sequence file format for --informat", esl_opt_GetString(go, "--informat"));
+
+ status = esl_sqfile_OpenDigital(nt_abc, seqfile, informat, /*env=*/NULL, &sqfp);
+ if (status == eslENOTFOUND) esl_fatal("Failed to find (or open) sequence file %s", seqfile);
+ else if (status == eslEFORMAT) esl_fatal("Failed to recognize format of sequence file %s", seqfile);
+ else if (status != eslOK) esl_fatal("Failure in opening sequence file %s; code %d", seqfile, status);
+
+ /* A limitation. The esl_sqio_ReadWindow() interface needs to use SSI positioning
+ * to read reverse complement, and that doesn't work on nonrewindable streams.
+ */
+ if ( esl_opt_GetBoolean(go, "-W") && ! esl_sqfile_IsRewindable(sqfp) && ! esl_opt_GetBoolean(go, "--watson"))
+ esl_fatal("esl-translate can't read reverse complement from a nonrewindable stream (stdin pipe, .gz file, etc).");
+
+ /* Set up the genetic code. Default = NCBI 1, the standard code; allow ORFs to start at any aa
+ */
+ gcode = esl_gencode_Create(nt_abc, aa_abc);
+ esl_gencode_Set(gcode, esl_opt_GetInteger(go, "-c")); // default = 1, the standard genetic code
+
+ if (esl_opt_GetBoolean(go, "-m")) esl_gencode_SetInitiatorOnlyAUG(gcode);
+ else if (! esl_opt_GetBoolean(go, "-M")) esl_gencode_SetInitiatorAny(gcode); // note this is the default, if neither -m or -M are set
+
+
+ /* Set up the workstate structure, which contains both stateful
+ * info about our position in <sqfp> and the DNA <sq>, as well as
+ * one-time config info from options
+ */
+ wrk = esl_gencode_WorkstateCreate(go, gcode);
+
+
+ /* The two styles of main processing loop:
+ */
+ if (esl_opt_GetBoolean(go, "-W")) do_by_windows(gcode, wrk, sqfp);
+ else do_by_sequences(gcode, wrk, sqfp);
+
+
+ esl_gencode_WorkstateDestroy(wrk);
+ esl_sqfile_Close(sqfp);
+ esl_gencode_Destroy(gcode);
+ esl_alphabet_Destroy(aa_abc);
+ esl_alphabet_Destroy(nt_abc);
+ esl_getopts_Destroy(go);
+ return 0;
+}
+
+
+
+
diff --git a/easel/miniapps/esl-translate.itest.pl b/easel/miniapps/esl-translate.itest.pl
new file mode 100755
index 0000000..39a65e3
--- /dev/null
+++ b/easel/miniapps/esl-translate.itest.pl
@@ -0,0 +1,149 @@
+#! /usr/bin/perl
+
+BEGIN {
+ $builddir = shift;
+ $srcdir = shift;
+ $tmppfx = shift;
+}
+
+if (! -x "$builddir/miniapps/esl-translate") { die "FAIL: didn't find esl-translate program in $builddir/miniapps"; }
+if (! -x "$builddir/miniapps/esl-reformat") { die "FAIL: didn't find esl-reformat program in $builddir/miniapps"; }
+if (! -x "$builddir/miniapps/esl-shuffle") { die "FAIL: didn't find esl-shuffle program in $builddir/miniapps"; }
+if (! -x "$builddir/miniapps/esl-sfetch") { die "FAIL: didn't find esl-shuffle program in $builddir/miniapps"; }
+
+# Test the genetic code is correct, including spot checks of some alternative codes
+#
+# The reformatting to pfam format is solely to get the seq all on one line, simplifying parsing
+#
+open(TESTFILE,">$tmppfx.fa") || die "FAIL: couldn't open $tmppfx.fa for writing translation_test seqfile";
+print TESTFILE << "EOF";
+>translation_test
+TTGATAATG
+AAAAACAAGAATACAACCACGACTAGAAGCAGGAGTATAATCATGATT
+CAACACCAGCATCCACCCCCGCCTCGACGCCGGCGTCTACTCCTGCTT
+GAAGACGAGGATGCAGCCGCGGCTGGAGGCGGGGGTGTAGTCGTGGTT
+TACTATTCATCCTCGTCTTGCTGGTGTTTATTCTTGTTTTGATAATAG
+EOF
+close TESTFILE;
+
+$output = `$builddir/miniapps/esl-translate -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=1\.\.192\s+length=64\s+frame=1/) { die "FAIL: standard genetic code mistranslated? unexpected desc line"; }
+if ($output !~ /orf1\s+LIMKNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLF\s+/) { die "FAIL: standard genetic code mistranslated"; }
+
+$output = `$builddir/miniapps/esl-translate -c 3 -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=1\.\.195\s+length=65\s+frame=1/) { die "FAIL: yeast mito genetic code mistranslated? unexpected desc line"; }
+if ($output !~ /orf1\s+LMMKNKNTTTTRSRSMIMIQHQHPPPPRRRRTTTTEDEDAAAAGGGGVVVVYYSSSSCWCLFLFW\s+/) { die "FAIL: yeast mito genetic code mistranslated"; }
+
+$output = `$builddir/miniapps/esl-translate -c 14 -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=1\.\.198\s+length=66\s+frame=1/) { die "FAIL: alt flatworm genetic code mistranslated? unexpected desc line"; }
+if ($output !~ /orf1\s+LIMNNKNTTTTSSSSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLFWY\s+/) { die "FAIL: alt flatworm genetic code mistranslated"; }
+
+# Use initiators, -M option.
+# Code 1 uses UUG (also CUG, AUG). Code 3 uses AUA (also AUG). Code 14, only AUG.
+# Initiator is always M.
+$output = `$builddir/miniapps/esl-translate -M -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=1\.\.192\s+length=64\s+frame=1/) { die "FAIL: standard genetic code initiators mishandled w/ -M? unexpected desc line"; }
+if ($output !~ /orf1\s+MIMKNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLF\s+/) { die "FAIL: standard genetic code initiators mishandled w/ -M"; }
+
+$output = `$builddir/miniapps/esl-translate -M -c 3 -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=4\.\.195\s+length=64\s+frame=1/) { die "FAIL: yeast mito genetic code initiators mishandled w/ -M? unexpected desc line"; }
+if ($output !~ /orf1\s+MMKNKNTTTTRSRSMIMIQHQHPPPPRRRRTTTTEDEDAAAAGGGGVVVVYYSSSSCWCLFLFW\s+/) { die "FAIL: yeast mito genetic code initiators mishandled w/ -M"; }
+
+$output = `$builddir/miniapps/esl-translate -M -c 14 -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=7\.\.198\s+length=64\s+frame=1/) { die "FAIL: alt flatworm genetic code initiators mishandled w/ -M? unexpected desc line"; }
+if ($output !~ /orf1\s+MNNKNTTTTSSSSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLFWY\s+/) { die "FAIL: alt flatworm genetic code initiators mishandled w/ -M"; }
+
+# Use only AUG initiator, -m option.
+$output = `$builddir/miniapps/esl-translate -m -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=7\.\.192\s+length=62\s+frame=1/) { die "FAIL: standard genetic code AUG starts mishandled w/ -m? unexpected desc line"; }
+if ($output !~ /orf1\s+MKNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLF\s+/) { die "FAIL: standard genetic code AUG starts mishandled w/ -m"; }
+
+$output = `$builddir/miniapps/esl-translate -m -c 3 -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=7\.\.195\s+length=63\s+frame=1/) { die "FAIL: yeast mito genetic code AUG starts mishandled w/ -m? unexpected desc line"; }
+if ($output !~ /orf1\s+MKNKNTTTTRSRSMIMIQHQHPPPPRRRRTTTTEDEDAAAAGGGGVVVVYYSSSSCWCLFLFW\s+/) { die "FAIL: yeast mito genetic code AUG starts mishandled w/ -m"; }
+
+$output = `$builddir/miniapps/esl-translate -m -c 14 -l 60 $tmppfx.fa | $builddir/miniapps/esl-reformat pfam -`;
+if ($output !~ / coords=7\.\.198\s+length=64\s+frame=1/) { die "FAIL: alt flatworm genetic code AUG starts mishandled w/ -m? unexpected desc line"; }
+if ($output !~ /orf1\s+MNNKNTTTTSSSSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVYYSSSSCWCLFLFWY\s+/) { die "FAIL: alt flatworm genetic code AUG starts mishandled w/ -m"; }
+
+
+# Now test ambiguous translation, using a second contrived sequence.
+# The test includes an ambiguous stop (UAA|UAG) which should correctly decode to *.
+# Also includes an ambig initiator HUG=AUG|CUG|UUG, which should decode to M with -M;
+# NNN, though, can't initiate (because it's consistent with a stop too).
+#
+# The test seq is short enough that we don't need to reformat to pfam, which
+# is essential, because the test seq translates to other peptides in other frames,
+# whereas above we could make it translate to a single seq.
+#
+open(TESTFILE,">$tmppfx.fa") || die "FAIL: couldn't open $tmppfx.fa for writing ambig_test seqfile";
+print TESTFILE << "EOF";
+>ambig_test
+NNNHUGUUYUURUCNUAYUGYCUNCCNCAYCARCGNAUHACNAAYAARAGYAGRGUNGCNGAYGARGGN
+YUUYCUYAUYGUUAR
+EOF
+close TESTFILE;
+
+$output = `$builddir/miniapps/esl-translate -l 25 --watson $tmppfx.fa`;
+if ($output !~ / coords=4\.\.81\s+length=26\s+frame=1/) { die "FAIL: ambiguity codes mishandled by translation - unexpected desc line"; }
+if ($output !~ /\s+XFLSYCLPHQRITNKSRVADEGXXXX\s+/) { die "FAIL: ambiguity codes mishandled by translation"; }
+
+$output = `$builddir/miniapps/esl-translate -M -l 25 --watson $tmppfx.fa`;
+if ($output !~ / coords=4\.\.81\s+length=26\s+frame=1/) { die "FAIL: ambiguity codes mishandled by translation - unexpected desc line"; }
+if ($output !~ /\s+MFLSYCLPHQRITNKSRVADEGXXXX\s+/) { die "FAIL: ambiguity codes mishandled by translation"; }
+
+
+# Generate a couple of large-ish random sequences, larger than the window size.
+# Default ReadSeq vs. -W ReadWindow should give the same answer.
+# Do more than one seq, to test that we can do that.
+#
+system("$builddir/miniapps/esl-shuffle -G --dna -N 2 -L 10000 > $tmppfx.fa");
+$out1 = `$builddir/miniapps/esl-translate $tmppfx.fa`;
+$out2 = `$builddir/miniapps/esl-translate -W $tmppfx.fa`;;
+if ($out1 ne $out2) { die "FAIL: default vs. windowed (-W) give different results"; }
+
+
+
+# Using those same large sequences, test coords.
+#
+system("$builddir/miniapps/esl-sfetch --index $tmppfx.fa > /dev/null");
+ at output = `$builddir/miniapps/esl-translate -l 100 $tmppfx.fa`;
+foreach $line (@output)
+{
+ if ($line =~ /^>(orf\d+)\s+source=(\S+)\s+coords=(\d+)\.\.(\d+)\s+length=(\d+)\s+frame=(\d+)/)
+ {
+ $orfname = $1;
+ $source = $2;
+ $start = $3;
+ $end = $4;
+ $aalen = $5;
+ $frame = $6;
+
+ if ($end > $start)
+ {
+ if ($end - $start + 1 != $aalen * 3) { die "FAIL: $start..$end is not a multiple of 3"; }
+ if ($start >= 4) { $start -= 3; $has_leading_stop = 1; } else { $has_leading_stop = 0; }
+ if ($end <= 9997) { $end += 3; $has_trailing_stop = 1; } else { $has_trailing_stop = 0; }
+ $ntlen = $end - $start + 1;
+ }
+ else
+ {
+ if ($start - $end + 1 != $aalen * 3) { die "FAIL: $start..$end is not a multiple of 3"; }
+ if ($end >= 4) { $end -= 3; $has_trailing_stop = 1; } else { $has_trailing_stop = 0; }
+ if ($start <= 9997) { $start += 3; $has_leading_stop = 1; } else { $has_leading_stop = 0; }
+ $ntlen = $start - $end + 1;
+ }
+
+ $out2 = `$builddir/miniapps/esl-sfetch -c $start..$end $tmppfx.fa $source | $builddir/miniapps/esl-translate -l $aalen -`;
+ if ($has_leading_stop) { $expected_start = 4; } else { $expected_start = 1; }
+ if ($has_trailing_stop) { $expected_end = $ntlen - 3; } else { $expected_end = $ntlen; }
+ if ( $out2 !~ /^>orf\d+ source=.+ coords=$expected_start..$expected_end length=$aalen frame=1/)
+ { die "FAIL: fetched & translated seq not identical to original translation - coord problem?"; }
+ }
+
+}
+
+print "ok\n";
+unlink "$tmppfx.fa";
+unlink "$tmppfx.fa.ssi";
+exit 0;
diff --git a/easel/miniapps/esl-translate.man b/easel/miniapps/esl-translate.man
new file mode 100644
index 0000000..4a5c897
--- /dev/null
+++ b/easel/miniapps/esl-translate.man
@@ -0,0 +1,293 @@
+.TH "esl-translate" 1 "@RELEASEDATE@" "@PACKAGE@ @RELEASE@" "@PACKAGE@ Manual"
+
+.SH NAME
+.TP
+esl-translate - translate DNA sequence in six frames into individual ORFs
+
+.SH SYNOPSIS
+.B esl-translate
+.I [options]
+.I seqfile
+
+
+.SH DESCRIPTION
+
+.pp
+Given a
+.I seqfile
+containing DNA or RNA sequences,
+.B esl-translate
+outputs a six-frame translation of them as individual open reading
+frames in FASTA format.
+
+.pp
+By default, only open reading frames greater than 20aa are reported.
+This minimum ORF length can be changed with the
+.I -l
+option.
+
+.pp
+By default, no specific initiation codon is required, and any amino acid can start an open reading frame.
+This is because
+.I esl-translate
+may be used on sequence fragments, eukaryotic genes with introns, or other
+cases where we
+do not want to assume that ORFs are complete coding regions.
+This behavior can be changed. With the
+.I -m
+option, ORFs start with an initiator AUG Met. With the
+.I -M
+option, ORFs start with any of the initiation codons allowed by the
+genetic code. For example, the "standard" code (NCBI transl_table 1)
+allows AUG, CUG, and UUG as initiators. When
+.I -m
+or
+.I -M
+are used, an initiator is always translated to Met (even if the initiator
+is something like UUG or CUG that doesn't encode Met as an elongator).
+
+.pp
+If
+.I seqfile
+is - (a single dash), input is read from the stdin pipe. This
+(combined
+with the output being a standard FASTA file) allows
+.B esl-translate
+to be used in command line incantations.
+If
+.I seqfile
+ends in .gz, it is assumed to be a gzip-compressed file, and
+Easel will try to read it as a stream from
+.B gunzip -c.
+
+
+
+.SH OUTPUT FORMAT
+
+.pp
+
+
+The output FASTA name/description line contains information about the
+source and coordinates of each ORF. Each ORF is named
+.B orf1,
+etc., with numbering starting from 1, in order of their start position
+on the top strand followed by the bottom strand. The rest of the
+FASTA name/desc line contains 4 additional fields, followed by the
+description of the source sequence:
+
+.TP
+.B source=<s>
+<s> is the name of the source DNA/RNA sequence.
+
+.TP
+.B coords=<start>..<end>
+Coords, 1..L, for the translated ORF in a source DNA sequence of
+length L. If start is greater than end, the ORF is on the bottom
+(reverse complement) strand. The start is the first nucleotide of the
+first codon; the end is the last nucleotide of the last codon. The
+stop codon is not included in the coordinates (unlike in CDS
+annotation in GenBank, for example.)
+
+.TP
+.B length=<n>
+Length of the ORF in amino acids.
+
+.TP
+.B frame=<n>
+Which frame the ORF is in. Frames 1..3 are the top strand; 4..6 are the
+bottom strand. Frame 1 starts at nucleotide 1. Frame 4 starts at
+nucleotide L.
+
+
+
+.SH ALTERNATIVE GENETIC CODES
+
+.pp
+By default, the "standard" genetic code is used (NCBI transl_table 1).
+Any NCBI genetic code transl_table can be selected with the
+.I -c
+option, as follows:
+
+.TP
+.B 1
+Standard
+.TP
+.B 2
+Vertebrate mitochondrial
+.TP
+.B 3
+Yeast mitochondrial
+.TP
+.B 4
+Mold, protozoan, coelenterate mitochondrial; Mycoplasma/Spiroplasma
+.TP
+.B 5
+Invertebrate mitochondrial
+.TP
+.B 6
+Ciliate, dasycladacean, Hexamita nuclear
+.TP
+.B 9
+Echinoderm and flatworm mitochondrial
+.TP
+.B 10
+Euplotid nuclear
+.TP
+.B 11
+Bacterial, archaeal; and plant plastid
+.TP
+.B 12
+Alternative yeast
+.TP
+.B 13
+Ascidian mitochondrial
+.TP
+.B 14
+Alternative flatworm mitochondrial
+.TP
+.B 16
+Chlorophycean mitochondrial
+.TP
+.B 21
+Trematode mitochondrial
+.TP
+.B 22
+Scenedesmus obliquus mitochondrial
+.TP
+.B 23
+Thraustochytrium mitochondrial
+.TP
+.B 24
+Pterobranchia mitochondrial
+.TP
+.B 25
+Candidate Division SR1 and Gracilibacteria
+
+
+.PP
+As of this writing, more information about the genetic codes in the
+NCBI translation tables is at
+.I http://www.ncbi.nlm.nih.gov/Taxonomy/
+at a link titled
+.I Genetic codes.
+
+.SH IUPAC DEGENERACY CODES IN DNA
+
+.pp
+DNA sequences may contain IUPAC degeneracy codes, such as N, R, Y,
+etc. If all codons consistent with a degenerate codon translate to the
+same amino acid (or to a stop), that translation is done; otherwise,
+the codon is translated as X (even if one or more compatible codons
+are stops). For example, in the standard code, UAR translates to *
+(stop), GGN translates to G (glycine), NNN translates to X, and UGR
+translates to X (it could be either a UGA stop or a UGG Trp).
+
+.pp
+Degenerate initiation codons are handled essentially the same. If all
+codons consistent with the degenerate codon are legal initiators, then
+the codon is allowed to initiate a new ORF. Stop codons are never
+a legal initiator (not only with
+.I -m
+or
+.I -M
+but also with the default of allowing any amino acid to initiate),
+so degenerate codons consistent with a stop cannot be initiators.
+For example, NNN cannot initiate an ORF, nor can UGR -- even
+though they translate to X. This means that we don't translate
+long stretches of N's as long ORFs of X's, which is probably a
+feature, given the prevalence of artificial runs of N's in genome
+sequence assemblies.
+
+.pp
+Degenerate DNA codons are not translated to degenerate amino acids
+other than X, even when that is possible. For example, SAR and MUH
+are decoded as X, not Z (Q|E) and J (I|L). The extra complexity
+needed for a degenerate to degenerate translation doesn't seem worthwhile.
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Print brief help. Includes version number and summary of all options.
+Also includes a list of the available
+NCBI transl_tables and their numerical codes, for the
+.I -c
+option.
+
+.TP
+.BI -c " <id>"
+Choose alternative genetic code
+.I <id>
+where
+.I <id>
+is the numerical code of one of the NCBI transl_tables.
+
+.TP
+.BI -l " <n>"
+Set the minimum reported ORF length to
+.I <n>
+aa.
+
+.TP
+.B -m
+Require ORFs to start with an initiator codon AUG (Met).
+
+.TP
+.B -M
+Require ORFs to start with an initiator codon, as specified by the
+allowed initiator codons in the NCBI transl_table. In the default
+Standard code, AUG, CUG, and UUG are allowed as initiators. An
+initiation codon is always translated as Met, even if it does not
+normally encode Met as an elongator.
+
+.TP
+.B -W
+Use a memory-efficient windowed sequence reader.
+The default is to read entire DNA sequences into memory, which
+may become memory limited for some very large eukaryotic chromosomes.
+The windowed reader cannot
+reverse complement a nonrewindable input stream, so
+either
+.I <seqfile>
+must be a file,
+or you must use
+.I --watson
+to limit translation to the top strand.
+
+
+.TP
+.BI --informat " <s>"
+Assert that the input
+.I <seqfile>
+is in
+.I <s>
+format. Valid formats include
+FASTA, GenBank, EMBL, Uniprot, DDBJ, Stockholm, Clustal, and Phylip.
+.I <s>
+is case-insensitive but must be a complete format name; for example,
+.BI --informat " fasta"
+or
+.BI --informat " embl"
+work.
+
+.TP
+.B --watson
+Only translate the top strand.
+
+.TP
+.B --crick
+Only translate the bottom strand.
+
+
+.SH AUTHOR
+
+Easel and its documentation are @EASEL_COPYRIGHT at .
+ at EASEL_LICENSE@.
+See COPYING in the source code distribution for more details.
+The Easel home page is: @EASEL_URL@
+
+
+
+
+
diff --git a/easel/miniapps/esl-weight.c b/easel/miniapps/esl-weight.c
index 5a6f24b..e9dd9db 100644
--- a/easel/miniapps/esl-weight.c
+++ b/easel/miniapps/esl-weight.c
@@ -66,7 +66,7 @@ main(int argc, char **argv)
char *msafile = NULL;
int fmt = eslMSAFILE_UNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
int status;
FILE *ofp; /* output stream */
@@ -80,7 +80,7 @@ main(int argc, char **argv)
msafile = esl_opt_GetArg(go, 1);
if (esl_opt_IsOn(go, "--informat")) {
- fmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ fmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (fmt == eslMSAFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --informat", esl_opt_GetString(go, "--informat"));
}
@@ -91,35 +91,35 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--dna")) abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
- if ((status = eslx_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (esl_opt_GetBoolean(go, "-f"))
{
ESL_MSA *fmsa;
status = esl_msaweight_IDFilter(msa, esl_opt_GetReal(go, "--idf"), &fmsa);
- eslx_msafile_Write(ofp, fmsa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(ofp, fmsa, eslMSAFILE_STOCKHOLM);
if (fmsa != NULL) esl_msa_Destroy(fmsa);
}
else if (esl_opt_GetBoolean(go, "-g"))
{
status = esl_msaweight_GSC(msa);
- eslx_msafile_Write(ofp, msa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(ofp, msa, eslMSAFILE_STOCKHOLM);
}
else if (esl_opt_GetBoolean(go, "-p"))
{
status = esl_msaweight_PB(msa);
- eslx_msafile_Write(ofp, msa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(ofp, msa, eslMSAFILE_STOCKHOLM);
}
else if (esl_opt_GetBoolean(go, "-b"))
{
status = esl_msaweight_BLOSUM(msa, esl_opt_GetReal(go, "--id"));
- eslx_msafile_Write(ofp, msa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(ofp, msa, eslMSAFILE_STOCKHOLM);
}
else esl_fatal("internal error: no weighting algorithm selected");
if (status != eslOK) esl_fatal("Failed to calculate weights for msa %s", msa->name);
@@ -128,7 +128,7 @@ main(int argc, char **argv)
}
esl_alphabet_Destroy(abc);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
if (ofp != stdout) fclose(ofp);
esl_getopts_Destroy(go);
exit(0);
@@ -136,13 +136,10 @@ main(int argc, char **argv)
/*****************************************************************
* Easel - a library of C functions for biological sequence analysis
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 HHMI Janelia Farm Research Campus
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ * Version 0.43; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute
+ * Other copyrights also apply. See the LICENSE file for a full list.
*
- * Easel is distributed under the Janelia Farm Software License, a BSD
- * license. See the LICENSE file for more details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/miniapps/esl-weight.c $
- * SVN $Id: esl-weight.c 732 2011-11-11 15:11:13Z eddys $
+ * Easel is open source software, distributed under the BSD license. See
+ * the LICENSE file for more details.
*****************************************************************/
diff --git a/easel/testsuite/Makefile.in b/easel/testsuite/Makefile.in
index bbfd9b8..33a39c6 100644
--- a/easel/testsuite/Makefile.in
+++ b/easel/testsuite/Makefile.in
@@ -35,19 +35,22 @@ check:
dcheck:
@echo Running developer testsuite...
+ @echo -n Compiling for unit tests and valgrind tests...
+ @(cd ..; make clean > /dev/null; testsuite/${top_srcdir}/configure --enable-debugging >/dev/null; make dev > /dev/null)
+ @echo done.
@echo -n Running unit tests...
@${srcdir}/../devkit/sqc ${SQCLEVEL} ${srcdir}/testsuite.sqc .. ${srcdir}/.. > utest.report
@echo done. [See utest.report]
- @echo -n Testing that all drivers compile...
- @env CC="${CC}" CFLAGS="${CFLAGS}" ./driver_report.pl > driver.report
- @echo done. [See driver.report]
- @echo -n Measuring test code coverage...
- @env CC="${CC}" CFLAGS="${CFLAGS}" ./coverage_report.pl > coverage.report
- @echo done. [See coverage.report]
@echo -n Looking for memory leaks...
- @env CC="${CC}" CFLAGS="${CFLAGS}" ./valgrind_report.pl > valgrind.report
+ @${srcdir}/valgrind_report.pl .. ${srcdir}/.. > valgrind.report
@echo done. [See valgrind.report]
- @cat driver.report coverage.report valgrind.report utest.report > dcheck.report
+ @echo -n Recompiling for coverage tests...
+ @(cd ..; make clean > /dev/null; testsuite/${top_srcdir}/configure --enable-gcov > /dev/null; make tests > /dev/null)
+ @echo done.
+ @echo -n Measuring test code coverage...
+ @${top_srcdir}/testsuite/coverage_report.pl .. ${top_srcdir} > coverage.report
+ @echo done. [See coverage.report]
+ @cat coverage.report valgrind.report utest.report > dcheck.report
@echo
@echo Finished developer testsuite.
@echo For a complete report, see dcheck.report.
@@ -56,18 +59,18 @@ clean:
-rm -f *.gcno *.gcda *.gcov
-rm -f esltmp??????
-rm -f *.o *~
- -rm -f driver.report coverage.report valgrind.report utest.report
-rm -f ${PROGS}
distclean: clean
+ -rm -f coverage.report valgrind.report utest.report
rm Makefile
################################################################
# Easel - a library of C functions for biological sequence analysis
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 HHMI Janelia Farm Research Campus
-# Other copyrights also apply. See the COPYRIGHT file for a full list.
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
#
-# Easel is distributed under the Janelia Farm Software License, a BSD
-# license. See the LICENSE file for more details.
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
################################################################
\ No newline at end of file
diff --git a/easel/testsuite/coverage_report.pl b/easel/testsuite/coverage_report.pl
index 9c77791..69c1a19 100755
--- a/easel/testsuite/coverage_report.pl
+++ b/easel/testsuite/coverage_report.pl
@@ -3,41 +3,52 @@
# Measures testsuite coverage (as percentage of source lines),
# using gcov.
#
-# Usage: from testsuite directory:
-# ./coverage_report.pl
+# Assumes you've already compiled the library, with test drivers only.
#
-# This assumes you've already compiled the library. To recompile
-# from scratch, do
-# ./coverage_report.pl -c
+# Usage:
+# coverage_report.pl <top_builddir> <top_srcdir>
+#
+# Example usage, in a single directory (source and build):
+# ./configure --enable-gcov
+# make tests
+# testsuite/coverage_report.pl . .
+#
+# Example usage, in separate build dir
+# mkdir build_dir
+# cd build_dir
+# ../configure --enable-gcov
+# make tests
+# ../testsuite/coverage_report.pl . ..
+#
+#
+# It has to be 'make tests', not 'make dev'. The _utest driver must be
+# the last executable compiled for each module .c file, or gcov will
+# bitch about stamp mismatch between .gcno, .gcda files. (When you
+# build esl_foo_utest, it generates a .gcno file for esl_foo.c. When
+# you run esl_foo_utest, it generates a .gcda file for esl_foo.c. If
+# you build esl_foo_example before you run esl_foo_utest, you get a
+# mismatch.)
#
# It assumes you have 'sloccount' installed, so it can count
# ANSI C lines in files with no test driver. If you don't, use
# ./coverage_report.pl -s
-#
-# SRE, Thu Mar 1 19:22:57 2007 (Janelia)
-# SVN $Id: coverage_report.pl 231 2008-03-25 14:43:57Z eddys $
-require "getopts.pl";
+
+
+use Getopt::Std;
+use File::Basename;
$have_sloccount = 1;
-&Getopts('cs');
-if ($opt_c) { $do_recompile = 1; }
+getopts('s');
if ($opt_s) { $have_sloccount = 0; }
-if ($ENV{'CC'} ne "") { $CC = $ENV{'CC'}; } else { $CC = "gcc"; }
-$CFLAGS = "-g -Wall -fprofile-arcs -ftest-coverage";
-
-printf("Code coverage test for Easel, using gcov:\n\n");
+if ($#ARGV+1 != 2) { die("Usage: coverage_report.pl <top_builddir> <top_srcdir>"); }
+$top_builddir = shift;
+$top_srcdir = shift;
-if ($do_recompile) {
- print("Recompiling... ");
- `(cd ..; make clean > /dev/null)`; if ($? != 0) { print "[make clean failed]\n"; exit; }
- `(cd ..; ./configure --enable-gcov > /dev/null)`; if ($? != 0) { print "[configure failed]\n"; exit; }
- `(cd ..; make > /dev/null)`; if ($? != 0) { print "[make failed]\n"; exit; }
- print "ok.\n\n";
-}
+printf("Code coverage test for Easel, using gcov:\n\n");
- at modules = <../esl_*.c>;
-unshift(@modules, "../easel.c");
+ at modules = <$top_srcdir/esl_*.c>;
+unshift(@modules, "$top_srcdir/easel.c");
$nmodules = 0;
$npresent = 0;
@@ -46,41 +57,43 @@ $nsuccess = 0;
$nlines = 0;
$nlines_covered = 0;
foreach $module (@modules) {
- $module =~ /^\.\.\/(\S+)/;
- $basecfile = $1;
+ $basecfile = fileparse($module);
$nmodules++;
# create the eslDMATRIX_TESTDRIVE flag and dmatrix_utest program name from esl_dmatrix.c
- if ($module =~ /^\.\.\/(esl_)?(\S+).c/) {
+ if ($basecfile =~ /^(esl_)?(\S+).c/) {
+ $pfx = $1;
$base = $2;
- $progname = $base."_utest";
+ $progname = $pfx.$base."_utest";
$base =~ tr/a-z/A-Z/;
$flag = "esl".$base."_TESTDRIVE";
}
-
- printf("%-20s ", $basecfile);
+ printf("%-28s ", $basecfile);
# one way to fail: there isn't a test driver at all
`grep $flag $module`;
- if ($? != 0) { printf("%6.2f%% coverage [driver ABSENT]\n", 0); push @nodriverlist, $module; next; }
+ if ($? != 0) { printf("%40s[NO DRIVER]\n", ""); push @nodriverlist, $module; next; }
$npresent++;
- `$CC $CFLAGS -I.. -L.. -o $progname -D$flag $module -leasel -lm >& /dev/null`;
- if ($? != 0) { printf("%6.2f%% coverage [compilation FAILED]\n", 0); next; };
+ # or: there's a test driver but it wasn't compiled. Sometimes normal, such as esl_mpi_utest on non-MPI
+ if (! -x "$top_builddir/$progname") { printf("%40s[UTEST NOT COMPILED]\n", ""); next; };
$ncompiled++;
- `./$progname >& /dev/null`;
- if ($? != 0) { printf("%6.2f%% coverage [test driver FAILED ]\n", 0); next; };
+ `$top_builddir/$progname >& /dev/null`;
+ if ($? != 0) { printf("%40s[UTEST FAILED ]\n", ""); next; };
$nsuccess++;
- $output = `gcov $module`;
- if ($output =~ /File.*$module.*\nLines executed:\s*(\d+\.\d+)% of\s+(\d+)/) {
+ $output = `(cd $top_builddir; gcov $basecfile)`;
+ if ($output =~ /File.*$basecfile.*\nLines executed:\s*(\d+\.\d+)% of\s+(\d+)/) {
$pct_cvg = $1;
$nlines += $2;
$nlines_covered += $1*$2/100;
- printf("%6.2f%% coverage\n", $pct_cvg);
+ printf("%6.2f%% ", $pct_cvg);
+ $nbar = int($pct_cvg * 20 / 100);
+ for ($i = 0; $i < $nbar; $i++) { printf("*"); }
+ printf("\n");
}
- else {die "failed to parse gcov output";}
+ else { die "failed to parse gcov output";}
}
if ($have_sloccount) {
@@ -109,9 +122,13 @@ if ($nsuccess != $ncompiled) {
}
print "\n";
- printf("Total coverage (of .c's with test drivers): %.2f%%\n", 100.*$nlines_covered / $nlines);
+ printf("Total coverage (of modules with test drivers): %.2f%%\n", 100.*$nlines_covered / $nlines);
if ($have_sloccount) {
- printf("Total coverage (including .c files without drivers yet): %.2f%%\n", 100.*$nlines_covered / ($nlines+$nlines_nodrivers));
+ printf("Total coverage (including modules without drivers yet): %.2f%%\n", 100.*$nlines_covered / ($nlines+$nlines_nodrivers));
}
+
+#
+# SRE, Thu Mar 1 19:22:57 2007 (Janelia)
+# SVN $Id$
diff --git a/easel/testsuite/driver_report.pl b/easel/testsuite/driver_report.pl
deleted file mode 100755
index 0a7441b..0000000
--- a/easel/testsuite/driver_report.pl
+++ /dev/null
@@ -1,121 +0,0 @@
-#! /usr/bin/perl
-
-# Make sure that all drivers compile.
-# (Eventually, we should also make sure they run! But that
-# means tracking their command-line arguments.)
-#
-# In all easel modules, we look for lines like
-# #ifdef eslFOO_(EXAMPLE|TESTDRIVE|REGRESSION|BENCHMARK|STATS)*
-# that precede one or more example main()'s, then we compile the
-# module with that #define.
-#
-# Usage: from testsuite directory:
-# ./driver_report.pl
-#
-# This assumes you've already compiled the library. To recompile
-# from scratch, do
-# ./driver_report.pl -c
-#
-# Some regression tests run against the old squid library.
-# squid must be installed and compiled; all drivers are linked
-# against -lsquid.
-# The path to squid's headers and libraries is assumed to be ~/src/squid.
-# This location can be overridden by setting SQUIDSRC in the environment.
-#
-# SRE, Fri Mar 2 10:01:44 2007 (Janelia)
-# SVN $Id: driver_report.pl 664 2011-02-27 17:08:36Z eddys $
-
-require "getopts.pl";
-&Getopts('c');
-if ($opt_c) { $do_recompile = 1; }
-
-if ($ENV{'CC'} ne "") { $CC = $ENV{'CC'}; } else { $CC = "gcc"; }
-if ($ENV{'CFLAGS'} ne "") { $CFLAGS = $ENV{'CFLAGS'}; } else { $CFLAGS = "-g -Wall"; }
-if ($ENV{'SQUIDSRC'} ne "") { $SQUIDSRC = $ENV{'SQUIDSRC'}; } else { $SQUIDSRC = "/groups/eddys/home/eddys/src/squid"; }
-$progname = "drivertest";
-
-
-print("Driver code compilation test for Easel:\n");
-print("(Compiling with $CC $CFLAGS -L$SQUIDSRC -I$SQUIDSRC)\n\n");
-
-
-if ($do_recompile) {
- print("Recompiling... ");
- `(cd ..; make clean > /dev/null)`; if ($? != 0) { print "[make clean failed]\n"; exit; }
- `(cd ..; ./configure --enable-debugging > /dev/null)`; if ($? != 0) { print "[configure failed]\n"; exit; }
- `(cd ..; make > /dev/null)`; if ($? != 0) { print "[make failed]\n"; exit; }
- print "ok.\n\n";
-}
-
- at modules = <../esl_*.c>;
-unshift(@modules, "../easel.c");
-
-$nmodules = 0;
-$ndrivers = 0;
-$nfailures = 0;
-$no_testdriver= 0;
-$no_example = 0;
-foreach $module (@modules) {
- $module =~ /^\.\.\/(\S+)/;
- $basecfile = $1;
- $nmodules++;
- printf("%-20s ", $basecfile);
-
-
-
- open(DRIVERFLAGS, qq/grep -E "#ifdef esl.*_(EXAMPLE|TESTDRIVE|REGRESSION|BENCHMARK|STATS)" $module | /) || die;
- $has_example = $has_testdriver = 0;
- $n = 0;
- while (<DRIVERFLAGS>) {
- /^#ifdef (esl\S+_(EXAMPLE|TESTDRIVE|REGRESSION|BENCHMARK|STATS)\d*)/;
- $flag = $1;
- $type = $2;
- if ($saw_flag{$flag}) { next; }
-
- if ($type eq "EXAMPLE") { $has_example = 1; }
- if ($type eq "TESTDRIVE") { $has_testdriver = 1; }
-
- if ($n == 0) { printf("%-30s ", $flag); }
- else { printf("%20s %-30s ", "", $flag); }
- $n++;
- $ndrivers++;
-
- `$CC $CFLAGS -I.. -L.. -L$SQUIDSRC -I$SQUIDSRC -o drivertest -D$flag $module -leasel -lsquid -lm >& /dev/null`;
- if ($? != 0) { print("[FAILED]\n"); $nfailures++; }
- else { print("ok.\n"); }
- $saw_flag{$flag} = 1;
- }
- if ($n == 0) { print "[NO DRIVERS PRESENT]\n"; }
- close DRIVERFLAGS;
-
- if (! $has_testdriver) { push @notestdrivelist, $module; $no_testdriver++;}
- if (! $has_example) { push @noexamplelist, $module; $no_example++; }
-}
-
-printf("\nOf %d total modules in Easel:\n", $nmodules);
-
-if ($no_example == 0) {
- printf(" - All %d have at least one example main()\n", $nmodules);
-} else {
- printf(" - %d do not have an example main()\n", $no_example);
- foreach $module (@noexamplelist) {
- printf(" %s\n", $module);
- }
-}
-if ($no_testdriver == 0) {
- printf(" - All %d have at least one test driver main()\n", $nmodules);
-} else {
- printf(" - %d do not have a test driver main()\n", $no_testdriver);
- foreach $module (@notestdrivelist) {
- printf(" %s\n", $module);
- }
-}
-
-print "\n";
-if ($nfailures == 0) {
- printf("All of the %d driver main()'s compile successfully\n", $ndrivers);
-} else {
- printf("%d of the %d driver main()'s fail to compile\n", $nfailures, $ndrivers);
-}
-
-unlink $progname;
diff --git a/easel/testsuite/i1-degen-residues.pl b/easel/testsuite/i1-degen-residues.pl
index 4bba919..eb3c5ac 100755
--- a/easel/testsuite/i1-degen-residues.pl
+++ b/easel/testsuite/i1-degen-residues.pl
@@ -6,7 +6,7 @@
# Example: ./i1-degen-residues.pl .. .. foo
#
# SRE, Tue Feb 2 13:09:58 2010 [Janelia]
-# SVN $Id: i1-degen-residues.pl 715 2011-08-03 21:04:24Z eddys $
+# SVN $Id$
$top_builddir = shift;
$top_srcdir = shift;
@@ -94,4 +94,6 @@ unlink "$tmppfx.aa.ssi";
unlink "$tmppfx.bad";
unlink "$tmppfx.bad.ssi";
unlink "$tmppfx.out";
+unlink "$tmppfx.out2";
+unlink "$tmppfx.out3";
exit 0;
diff --git a/easel/testsuite/i2-ncbi-indices.pl b/easel/testsuite/i2-ncbi-indices.pl
index 77df333..392b62a 100755
--- a/easel/testsuite/i2-ncbi-indices.pl
+++ b/easel/testsuite/i2-ncbi-indices.pl
@@ -11,7 +11,7 @@
# Example: ./i2-ncbi-indices . . tmp
#
# SRE, Tue Feb 2 12:43:04 2010 [Janelia]
-# SVN $Id: i2-ncbi-indices.pl 715 2011-08-03 21:04:24Z eddys $
+# SVN $Id$
#
diff --git a/easel/testsuite/i3-blank-gf.pl b/easel/testsuite/i3-blank-gf.pl
index 23ba73c..831dcde 100755
--- a/easel/testsuite/i3-blank-gf.pl
+++ b/easel/testsuite/i3-blank-gf.pl
@@ -10,7 +10,7 @@
# save file parser strictly requires DESC <s> or ACC <s>.
#
# SRE, Tue Jul 13 10:46:02 2010
-# SVN $Id: i3-blank-gf.pl 715 2011-08-03 21:04:24Z eddys $
+# SVN $Id$
BEGIN {
$builddir = shift;
diff --git a/easel/testsuite/testsuite.sqc b/easel/testsuite/testsuite.sqc
index 152618a..5eeb897 100644
--- a/easel/testsuite/testsuite.sqc
+++ b/easel/testsuite/testsuite.sqc
@@ -10,17 +10,21 @@
1 exercise dirichlet-utest @esl_dirichlet_utest@
1 exercise distance-utest @esl_distance_utest@
1 exercise dmatrix-utest @esl_dmatrix_utest@
+1 exercise dsqdata-utest @esl_dsqdata_utest@
1 exercise easel-utest @easel_utest@
1 exercise exponential-utest @esl_exponential_utest@
1 exercise fileparser-utest @esl_fileparser_utest@
1 exercise gamma-utest @esl_gamma_utest@
+1 exercise gencode-utest @esl_gencode_utest@
1 exercise getopts-utest @esl_getopts_utest@
1 exercise gumbel-utest @esl_gumbel_utest@
+1 exercise heap-utest @esl_heap_utest@
1 exercise histogram-utest @esl_histogram_utest@
1 exercise hyperexp-utest @esl_hyperexp_utest@
1 exercise keyhash-utest @esl_keyhash_utest@
1 exercise mem-utest @esl_mem_utest@
1 exercise msa-utest @esl_msa_utest@
+1 exercise msacluster-utest @esl_msacluster_utest@
1 exercise msafile @esl_msafile_utest@
1 exercise msafile2 @esl_msafile2_utest@
1 exercise msafile-a2m @esl_msafile_a2m_utest@
@@ -30,8 +34,8 @@
1 exercise msafile-psiblast @esl_msafile_psiblast_utest@
1 exercise msafile-selex @esl_msafile_selex_utest@
1 exercise msafile-stockholm @esl_msafile_stockholm_utest@
-1 exercise msacluster-utest @esl_msacluster_utest@
1 exercise msaweight-utest @esl_msaweight_utest@
+1 exercise normal-utest @esl_normal_utest@
1 exercise random-utest @esl_random_utest@
1 exercise randomseq-utest @esl_randomseq_utest@
1 exercise ratematrix-utest @esl_ratematrix_utest@
@@ -57,6 +61,8 @@
1 exercise ncbi-indices !testsuite/i2-ncbi-indices.pl! @@ !! %TESTPFX%
1 exercise blank-gf !testsuite/i3-blank-gf.pl! @@ !! %TESTPFX%
+1 exercise esl-translate !miniapps/esl-translate.itest.pl! @@ !! %TESTPFX%
+
1 exercise esl-afetch !miniapps/esl-afetch.itest.pl! @miniapps/esl-afetch@ %TESTPFX%
1 exercise esl-alimanip !miniapps/esl-alimanip.itest.pl! @miniapps/esl-alimanip@ %TESTPFX%
1 exercise esl-alimap !miniapps/esl-alimap.itest.pl! @miniapps/esl-alimap@ %TESTPFX%
@@ -76,14 +82,13 @@
# minimizer
# mixgev
# mpi
-# normal
# paml
# swat
# interface_gsl
# interface_lapack
################################################################
-# valgrind tests (optional. 'make SQCLEVEL=3 check'
+# valgrind tests (optional. 'export SQC_VALGRIND=1; make SQCLEVEL=3 check'
################################################################
3 valgrind alphabet-utest @esl_alphabet_utest@
@@ -113,6 +118,7 @@
3 valgrind msafile-stockholm @esl_msafile_stockholm_utest@
3 valgrind msacluster-utest @esl_msacluster_utest@
3 valgrind msaweight-utest @esl_msaweight_utest@
+3 valgrind normal-utest @esl_normal_utest@
3 valgrind random-utest @esl_random_utest@
3 valgrind randomseq-utest @esl_randomseq_utest@
3 valgrind ratematrix-utest @esl_ratematrix_utest@
@@ -139,6 +145,7 @@
################################################################
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/easel/branches/infernal/1.1/testsuite/testsuite.sqc $
+# SVN $URL$
# SVN $Id: testsuite.sqc 714 2011-07-29 21:26:26Z eddys $
################################################################
+
diff --git a/easel/testsuite/valgrind_report.pl b/easel/testsuite/valgrind_report.pl
index 186a392..ac4100e 100755
--- a/easel/testsuite/valgrind_report.pl
+++ b/easel/testsuite/valgrind_report.pl
@@ -2,33 +2,35 @@
# Run the testsuite under Valgrind, to check for memory leakage.
#
-# Usage: from testsuite directory:
-# testsuite/valgrind_report.pl
-# This assumes you've already compiled the library. To recompile
-# from scratch, do
-# ./driver_report.pl -c
+# First you have to do a 'make dev' or 'make check', or equiv;
+# all the unit test drivers need to be compiled and present.
+#
+# Usage:
+# valgrind_report.pl <top_builddir> <top_srcdir>
+#
+# Example, in a single directory (source+build):
+# ./configure --enable-debugging
+# make dev
+# testsuite/valgrind_report.pl . .
+#
+# Example, in separate build dir:
+# mkdir build_dir
+# cd build_dir
+# ../configure --enable-debugging
+# make dev
+# ../testsuite/valgrind_report.pl . ..
#
-# SRE, Fri Mar 2 08:37:48 2007 [Janelia]
-# SVN $Id: valgrind_report.pl 231 2008-03-25 14:43:57Z eddys $
-require "getopts.pl";
-&Getopts('c');
-if ($opt_c) { $do_recompile = 1; }
-if ($ENV{'CC'} ne "") { $CC = $ENV{'CC'}; } else { $CC = "gcc"; }
-if ($ENV{'CFLAGS'} ne "") { $CFLAGS = $ENV{'CFLAGS'}; } else { $CFLAGS = "-g -Wall"; }
+use File::Basename;
-printf("Memory leak testing for Easel, using valgrind:\n\n");
+if ($#ARGV+1 != 2) { die("Usage: valgrind_report.pl <top_builddir> <top_srcdir>"); }
+$top_builddir = shift;
+$top_srcdir = shift;
-if ($do_recompile) {
- print("Recompiling... ");
- `(cd ..; make clean > /dev/null)`; if ($? != 0) { print "[make clean failed]\n"; exit; }
- `(cd ..; ./configure --enable-debugging > /dev/null)`; if ($? != 0) { print "[configure failed]\n"; exit; }
- `(cd ..; make > /dev/null)`; if ($? != 0) { print "[make failed]\n"; exit; }
- print "ok.\n\n";
-}
+printf("Memory leak testing for Easel, using valgrind:\n\n");
- at modules = <../esl_*.c>;
-unshift(@modules, "../easel.c");
+ at modules = <$top_srcdir/esl_*.c>;
+unshift(@modules, "$top_srcdir/easel.c");
$nmodules = 0;
$npresent = 0;
@@ -36,35 +38,35 @@ $ncompiled = 0;
$nsuccess = 0;
$nleaking = 0;
foreach $module (@modules) {
- $module =~ /^\.\.\/(\S+)/;
- $basecfile = $1;
+ $basecfile = fileparse($module);
$nmodules++;
- # create the eslDMATRIX_TESTDRIVE flag and dmatrix_utest program name from esl_dmatrix.c
+ # create the eslDMATRIX_TESTDRIVE flag and esl_dmatrix_utest program name from esl_dmatrix.c
if ($basecfile =~ /^(esl_)?(\S+).c/) {
+ $pfx = $1;
$base = $2;
- $progname = $base."_utest";
+ $progname = $pfx.$base."_utest";
$base =~ tr/a-z/A-Z/;
$flag = "esl".$base."_TESTDRIVE";
}
- printf("%-20s ", $basecfile);
+ printf("%-28s ", $basecfile);
# one way to fail: there isn't a test driver at all
`grep $flag $module`;
if ($? != 0) { printf(" [NO DRIVER]\n"); next; }
$npresent++;
- `$CC $CFLAGS -I.. -L.. -o $progname -D$flag $module -leasel -lm >& /dev/null`;
- if ($? != 0) { printf(" [COMPILE FAILED]\n"); next; };
+ # Some unit tests aren't compiled.
+ # That can be normal: for example, esl_mpi_utest on a non-MPI system
+ if (! -x "$top_builddir/$progname") { printf(" [UTEST NOT COMPILED]\n"); next; }
$ncompiled++;
- push @proglist, $progname;
-
- $output = `valgrind ./$progname 2>&1`;
+
+ $output = `valgrind $top_builddir/$progname 2>&1`;
if ($? != 0) { printf(" [VALGRIND FAILED]\n"); next; };
$nsuccess++;
- if ($output =~ /malloc\/free: in use at exit: (\S+) bytes in (\S+) blocks/)
+ if ($output =~ / definitely lost: (\S+) bytes in (\S+) blocks/)
{
if ($1 > 0) {
$nleaking++;
@@ -77,14 +79,14 @@ foreach $module (@modules) {
printf("\nOf %d total modules in Easel:\n", $nmodules);
if ($npresent != $nmodules) {
- printf(" - %d have test drivers, %d do not\n", $npresent, $nmodules-$npresent);
+ printf(" - %d have test drivers written, %d do not\n", $npresent, $nmodules-$npresent);
} else {
- printf(" - All %d have test drivers\n", $npresent);
+ printf(" - All %d have test drivers written\n", $npresent);
}
if ($ncompiled != $npresent) {
- printf(" - %d compiled, %d did not\n", $ncompiled, $npresent-$ncompiled);
+ printf(" - %d test drivers were found compiled; %d were not\n", $ncompiled, $npresent-$ncompiled);
} else {
- printf(" - All %d compiled\n", $ncompiled);
+ printf(" - All %d test drivers were found compiled\n", $ncompiled);
}
if ($nsuccess != $ncompiled) {
printf(" - %d ran successfully, %d did not\n", $nsuccess, $ncompiled-$nsuccess);
@@ -94,11 +96,12 @@ if ($nsuccess != $ncompiled) {
print "\n";
if ($nleaking == 0) {
- printf("None of %d .c's with running test drivers) show memory leaks\n", $nsuccess);
+ printf("None of %d modules with running test drivers show memory leaks\n", $nsuccess);
} else {
- printf("%d of %d .c's with running test drivers) are leaking.\n", $nleaking, $nsuccess);
+ printf("%d of %d modules with running test drivers are leaking.\n", $nleaking, $nsuccess);
}
-unlink @proglist;
-
+# SRE, Fri Mar 2 08:37:48 2007 [Janelia]
+# SVN $Id$
+# SVN $URL$
diff --git a/hmmer/COPYRIGHT b/hmmer/COPYRIGHT
deleted file mode 100644
index e3bcb84..0000000
--- a/hmmer/COPYRIGHT
+++ /dev/null
@@ -1,79 +0,0 @@
-HMMER - Biological sequence analysis with profile hidden Markov models
-Copyright (C) 2014 Howard Hughes Medical Institute.
-------------------------------------------------------------------
-
-Additional copyrights apply to the entirety of the package:
-Copyright (C) 1992-2013 Sean R. Eddy
-Copyright (C) 2000-2013 Howard Hughes Medical Institute
-Copyright (C) 1992-2004 Washington University School of Medicine
-Copyright (C) 1992-1994 MRC Laboratory of Molecular Biology
-
-The code includes contributions and input from the members of the
-HMMER development team and the Eddy/Rivas laboratories at HHMI Janelia
-Farm, whose current members include:
-
- Sean Eddy Janelia Farm
- Sergi Castellano Janelia Farm
- Goran Ceric Janelia Farm
- Michael Farrar Janelia Farm
- Rob Finn Wellcome Trust Sanger Institute
- Bjarne Knudsen CLC bio
- Diana Kolbe Washington University/Janelia Farm
- Eric Nawrocki Janelia Farm
- Elena Rivas Janelia Farm
- Travis Wheeler Janelia Farm
-
-HMMER also includes contributions from others, including copyrighted
-and licensed code and technology. These are noted in the appropriate
-places in source files. Contributors include:
-
- Jeremy Buhler Washington University
- Ian Holmes UC Berkeley
- Erik Lindahl Stanford University
- Graeme Mitchison Cambridge University
- Lee Newberg Rensselaer Polytechnic Institute
-
- Apple Computer Cupertino, CA
- Free Software Foundation, Inc. Cambridge, MA
- IBM TJ Watson Research Center Yorktown Heights, NY
- X Consortium Cambridge, MA
-
-HMMER uses the Easel software library, which has its own license and
-copyright information. See easel/COPYRIGHT and easel/LICENSE.
-
-HMMER includes patent-pending SIMD technology under nonexclusive
-license from Michael Farrar. You are sublicensed to use this
-technology specifically for the use, modification, and redistribution
-of HMMER3, under the terms of the GPLv3 patent clause.
-
-This source code is distributed under the terms of the GNU General
-Public License. See the file LICENSE for details.
-
-This program is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or (at
-your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
-
-A copy of the GNU General Public License is in the file LICENSE. You
-may also obtain a copy from <http://www.gnu.org/licenses/>.
-
-"HMMER" is a trademark of the Howard Hughes Medical Institute.
-Although the code is freely available as open source, we intend that
-only the version at http://hmmer.org/ is known as HMMER. You are free
-to create a modified version and distribute it (subject to the terms
-of the GPL), but we ask that you name it something that would not be
-confused with HMMER itself.
-
-------------------------------------------------------------------
-The HMMER development team
-HHMI Janelia Farm Research Campus
-http://hmmer.org/
-
-
-
-
diff --git a/hmmer/INSTALL b/hmmer/INSTALL
index 7a7a05b..b8de4b5 100644
--- a/hmmer/INSTALL
+++ b/hmmer/INSTALL
@@ -1,42 +1,46 @@
Brief installation instructions
-HMMER i1.1.1; July 2014
+HMMER 3.1b3; July 2016
-------------------------------------------------------------
These are quick installation instructions. For complete documentation,
including customization and troubleshooting, please see the
Installation chapter in the HMMER User's Guide (Userguide.pdf).
-Starting from a source distribution, hmmer-i1.1.1.tar.gz:
- uncompress: uncompress hmmer-i1.1.1.tar.gz
- unpack: tar xf hmmer-i1.1.1.tar
- move into new directory: cd hmmer-i1.1.1
- configure: ./configure
- build: make
- automated tests: make check
- automated install: make install
+-------------------------------------------------------------
+
+Starting from a distribution "with binaries", such as
+hmmer-3.1b3-linux-intel-x86_64.tar.gz:
+ uncompress hmmer-3.1b3-xyz.tar.gz
+ tar xf hmmer-3.1b3-xyz.tar
+ cd hmmer-3.1b3-xyz
+
+The pre-compiled binaries are found in the directory ./binaries.
+You may copy these into a directory of your choosing, or simply add
+this directory to your $PATH variable.
+
+-------------------------------------------------------------
+
+Starting from a source distribution, hmmer-3.1b3.tar.gz:
+ uncompress hmmer-3.1b3.tar.gz
+ tar xf hmmer-3.1b3.tar
+ cd hmmer-3.1b3
+ ./configure
+ make
+ make check # optional: automated tests
+ make install # optional: installation
+
+-------------------------------------------------------------
HMMER is developed primarily on Linux and Mac OS/X systems. It is
tested on a variety of UNIX and UNIX-like operating systems. It is
written in ANSI C99 conforming to POSIX standards. It is meant to be
portable to any POSIX-compliant system with an ANSI C99 compiler,
-including all UNIX and Macintosh systems. It should also build on
-Windows systems with optional POSIX compatibility software installed,
-such as Cygwin.
-
--------------------------------------------------------------
-Starting from a Subversion (SVN) working copy:
-
-If you have checked HMMER out from its Subversion repository, there's
-some additional stuff you need to do one-time-only in your new working
-directory:
+including all UNIX and Macintosh systems. A binary version is also
+available for Windows systems with Cygwin installed (Cygwin is
+optional POSIX compatibility software).
- ln -s easel/aclocal.m4 aclocal.m4
- autoconf
- (cd easel; autoconf)
-------------------------------------------------------------
-The HMMER development team
-HHMI Janelia Farm Research Campus
-http://hmmer.org/
+HMMER development team | HHMI/Harvard | http://hmmer.org/
diff --git a/hmmer/LICENSE b/hmmer/LICENSE
index 94a9ed0..9e76758 100644
--- a/hmmer/LICENSE
+++ b/hmmer/LICENSE
@@ -1,674 +1,97 @@
- GNU GENERAL PUBLIC LICENSE
- Version 3, 29 June 2007
+HMMER - Biological sequence analysis with profile hidden Markov models
+ at HMMER_COPYRIGHT@
+------------------------------------------------------------------
+
+Additional copyrights apply to the entirety of the package:
+Copyright (C) 1992-2016 Sean R. Eddy
+Copyright (C) 2000-2016 Howard Hughes Medical Institute
+Copyright (C) 2015-2016 President and Fellows of Harvard College
+Copyright (C) 1992-2004 Washington University School of Medicine
+Copyright (C) 1992-1994 MRC Laboratory of Molecular Biology
+
+The code includes contributions and input from the members of the
+HMMER development team, whose current members include:
+
+ Sean Eddy HHMI/Harvard University
+ Travis Wheeler University of Montana
+ Nick Carter HHMI/Harvard University
+ Elena Rivas Harvard University
+ Walt Shands Intel and U. Montana
+ Eric Nawrocki NIH NCBI
+ Rob Finn European Bioinformatics Institute
+
+and past members (with their past affiliations) include:
+ Sergi Castellano HHMI Janelia Farm
+ Goran Ceric HHMI Janelia Farm
+ Michael Farrar HHMI Janelia Farm
+ Bill Arndt HHMI Janelia Farm
+ Bjarne Knudsen CLC bio
+ Diana Kolbe Washington University/Janelia Farm
+
+HMMER also includes contributions from others, including copyrighted
+and licensed code and technology. These are noted in the appropriate
+places in source files. Contributors include:
+
+ Jeremy Buhler Washington University
+ Ian Holmes UC Berkeley
+ Erik Lindahl Stanford University
+ Graeme Mitchison Cambridge University
+ Lee Newberg Rensselaer Polytechnic Institute
+
+ Apple Computer Cupertino, CA
+ Free Software Foundation, Inc. Cambridge, MA
+ IBM TJ Watson Research Center Yorktown Heights, NY
+ X Consortium Cambridge, MA
+
+HMMER uses the Easel software library, which has its own license and
+copyright information. See easel/COPYRIGHT and easel/LICENSE.
+
+HMMER includes patent-pending SIMD technology under a nonexclusive
+license from Michael Farrar. You are sublicensed to use this
+technology specifically for the use, modification, and redistribution
+of HMMER3.
+
+This source code is distributed as open source under the terms of the
+BSD three-clause license:
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ 1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the following
+ disclaimer in the documentation and/or other materials provided
+ with the distribution.
+
+ 3. Neither the name of any copyright holder nor the names of
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"HMMER" is a trademark of the Howard Hughes Medical Institute. If you
+fork a modified version of the code, please name it something that
+would not be confused with HMMER itself.
+
+------------------------------------------------------------------
+The HMMER dev team | HHMI/Harvard University | http://hmmer.org/
+
+
+
+
+
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
- Preamble
-
- The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
- The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works. By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users. We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors. You can apply it to
-your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-price. Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
- To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights. Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
- For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received. You must make sure that they, too, receive
-or can get the source code. And you must show them these terms so they
-know their rights.
-
- Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
- For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software. For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
- Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so. This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software. The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable. Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products. If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
- Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary. To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
- The precise terms and conditions for copying, distribution and
-modification follow.
-
- TERMS AND CONDITIONS
-
- 0. Definitions.
-
- "This License" refers to version 3 of the GNU General Public License.
-
- "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
- "The Program" refers to any copyrightable work licensed under this
-License. Each licensee is addressed as "you". "Licensees" and
-"recipients" may be individuals or organizations.
-
- To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy. The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
- A "covered work" means either the unmodified Program or a work based
-on the Program.
-
- To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy. Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
- To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies. Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
- An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License. If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
- 1. Source Code.
-
- The "source code" for a work means the preferred form of the work
-for making modifications to it. "Object code" means any non-source
-form of a work.
-
- A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
- The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form. A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
- The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities. However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work. For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
- The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
- The Corresponding Source for a work in source code form is that
-same work.
-
- 2. Basic Permissions.
-
- All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met. This License explicitly affirms your unlimited
-permission to run the unmodified Program. The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work. This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
- You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force. You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright. Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
- Conveying under any other circumstances is permitted solely under
-the conditions stated below. Sublicensing is not allowed; section 10
-makes it unnecessary.
-
- 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
- No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
- When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
- 4. Conveying Verbatim Copies.
-
- You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
- You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
- 5. Conveying Modified Source Versions.
-
- You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
- a) The work must carry prominent notices stating that you modified
- it, and giving a relevant date.
-
- b) The work must carry prominent notices stating that it is
- released under this License and any conditions added under section
- 7. This requirement modifies the requirement in section 4 to
- "keep intact all notices".
-
- c) You must license the entire work, as a whole, under this
- License to anyone who comes into possession of a copy. This
- License will therefore apply, along with any applicable section 7
- additional terms, to the whole of the work, and all its parts,
- regardless of how they are packaged. This License gives no
- permission to license the work in any other way, but it does not
- invalidate such permission if you have separately received it.
-
- d) If the work has interactive user interfaces, each must display
- Appropriate Legal Notices; however, if the Program has interactive
- interfaces that do not display Appropriate Legal Notices, your
- work need not make them do so.
-
- A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit. Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
- 6. Conveying Non-Source Forms.
-
- You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
- a) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by the
- Corresponding Source fixed on a durable physical medium
- customarily used for software interchange.
-
- b) Convey the object code in, or embodied in, a physical product
- (including a physical distribution medium), accompanied by a
- written offer, valid for at least three years and valid for as
- long as you offer spare parts or customer support for that product
- model, to give anyone who possesses the object code either (1) a
- copy of the Corresponding Source for all the software in the
- product that is covered by this License, on a durable physical
- medium customarily used for software interchange, for a price no
- more than your reasonable cost of physically performing this
- conveying of source, or (2) access to copy the
- Corresponding Source from a network server at no charge.
-
- c) Convey individual copies of the object code with a copy of the
- written offer to provide the Corresponding Source. This
- alternative is allowed only occasionally and noncommercially, and
- only if you received the object code with such an offer, in accord
- with subsection 6b.
-
- d) Convey the object code by offering access from a designated
- place (gratis or for a charge), and offer equivalent access to the
- Corresponding Source in the same way through the same place at no
- further charge. You need not require recipients to copy the
- Corresponding Source along with the object code. If the place to
- copy the object code is a network server, the Corresponding Source
- may be on a different server (operated by you or a third party)
- that supports equivalent copying facilities, provided you maintain
- clear directions next to the object code saying where to find the
- Corresponding Source. Regardless of what server hosts the
- Corresponding Source, you remain obligated to ensure that it is
- available for as long as needed to satisfy these requirements.
-
- e) Convey the object code using peer-to-peer transmission, provided
- you inform other peers where the object code and Corresponding
- Source of the work are being offered to the general public at no
- charge under subsection 6d.
-
- A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
- A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling. In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage. For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product. A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
- "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source. The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
- If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information. But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
- The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed. Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
- Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
- 7. Additional Terms.
-
- "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law. If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
- When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it. (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.) You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
- Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
- a) Disclaiming warranty or limiting liability differently from the
- terms of sections 15 and 16 of this License; or
-
- b) Requiring preservation of specified reasonable legal notices or
- author attributions in that material or in the Appropriate Legal
- Notices displayed by works containing it; or
-
- c) Prohibiting misrepresentation of the origin of that material, or
- requiring that modified versions of such material be marked in
- reasonable ways as different from the original version; or
-
- d) Limiting the use for publicity purposes of names of licensors or
- authors of the material; or
-
- e) Declining to grant rights under trademark law for use of some
- trade names, trademarks, or service marks; or
-
- f) Requiring indemnification of licensors and authors of that
- material by anyone who conveys the material (or modified versions of
- it) with contractual assumptions of liability to the recipient, for
- any liability that these contractual assumptions directly impose on
- those licensors and authors.
-
- All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10. If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term. If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
- If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
- Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
- 8. Termination.
-
- You may not propagate or modify a covered work except as expressly
-provided under this License. Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
- However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
- Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
- Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License. If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
- 9. Acceptance Not Required for Having Copies.
-
- You are not required to accept this License in order to receive or
-run a copy of the Program. Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance. However,
-nothing other than this License grants you permission to propagate or
-modify any covered work. These actions infringe copyright if you do
-not accept this License. Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
- 10. Automatic Licensing of Downstream Recipients.
-
- Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License. You are not responsible
-for enforcing compliance by third parties with this License.
-
- An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations. If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
- You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License. For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
- 11. Patents.
-
- A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based. The
-work thus licensed is called the contributor's "contributor version".
-
- A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version. For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
- Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
- In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement). To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
- If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients. "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
- If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
- A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License. You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
- Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
- 12. No Surrender of Others' Freedom.
-
- If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License. If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all. For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
- 13. Use with the GNU Affero General Public License.
-
- Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work. The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
- 14. Revised Versions of this License.
-
- The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time. Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
- Each version is given a distinguishing version number. If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation. If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
- If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
- Later license versions may give you additional or different
-permissions. However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
- 15. Disclaimer of Warranty.
-
- THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
- 16. Limitation of Liability.
-
- IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
- 17. Interpretation of Sections 15 and 16.
-
- If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
- END OF TERMS AND CONDITIONS
-
- How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
- To do so, attach the following notices to the program. It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
- Copyright (C) <year> <name of author>
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
- If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
- <program> Copyright (C) <year> <name of author>
- This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License. Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
- You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
- The GNU General Public License does not permit incorporating your program
-into proprietary programs. If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
diff --git a/hmmer/Makefile.in b/hmmer/Makefile.in
index 2fefbcd..141b611 100644
--- a/hmmer/Makefile.in
+++ b/hmmer/Makefile.in
@@ -78,7 +78,8 @@ endif
# Programs installed by HMMER (stable, documented)
#
-PROGS = hmmalign\
+PROGS = alimask\
+ hmmalign\
hmmbuild\
hmmconvert\
hmmemit\
@@ -91,9 +92,8 @@ PROGS = hmmalign\
jackhmmer\
phmmer\
nhmmer\
- hmmpgmd\
- makenhmmerdb\
- exactmatch
+ nhmmscan\
+ hmmpgmd
.PHONY: all dev check pdf install uninstall clean distclean TAGS
@@ -178,73 +178,26 @@ distclean:
-rm -rf autom4te.cache
-rm -f *.o *~ Makefile.bak core TAGS gmon.out
-rm -f cscope.po.out cscope.out cscope.in.out cscope.files
- -rm -f release-notes/LICENSE.sh
-rm -f src/impl
-rm Makefile
+#Use 'ifneq' instead of 'test -e' because the '+@' in QUIET_SUBDIR0 can't
+#be passed to the shell. Note that ifneq breaks if indented.
+ifneq (,$(wildcard ./release-notes/LICENSE.sh))
+ -rm -f release-notes/LICENSE.sh
+endif
+
TAGS:
- -rm -f ${top_srcdir}/TAGS
- make tags-append
-
-tags-append:
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/Makefile.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/COPYRIGHT
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/INSTALL
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/LICENSE
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/README
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/configure.ac
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/*.h
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/*.pl
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_sse/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_sse/*.h
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_sse/*.in
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_dummy/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_dummy/*.h
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_dummy/*.in
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_vmx/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_vmx/*.h
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/src/impl_vmx/*.in
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/man/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/man/*.man
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/man/boilerplate-tail
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/userguide/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/documentation/userguide/*.tex
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/libdivsufsort/README
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/libdivsufsort/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/libdivsufsort/*.c
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/profmark/00README
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/profmark/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/profmark/*.c
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/profmark/x-*
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/profmark/pmark-*
-
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.in
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.pl
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.sh
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.pm
- etags -o ${top_srcdir}/TAGS -a ${srcdir}/testsuite/*.sqc
-
- ${QUIET_SUBDIR0}easel ${QUIET_SUBDIR1} tags-append
+ ./makeTAGS.sh
+
+
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
-#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/Makefile.in $
-# SVN $Id: Makefile.in 3909 2012-03-08 19:16:34Z wheelert $
################################################################
diff --git a/hmmer/README b/hmmer/README
deleted file mode 100644
index 310987f..0000000
--- a/hmmer/README
+++ /dev/null
@@ -1,31 +0,0 @@
-HMMER - profile hidden Markov models for biological sequence analysis
-http://hmmer.org/
-Version i1.1.1; July 2014
-Copyright (C) 2014 Howard Hughes Medical Institute.
-------------------------------------------------------------------
-
-HMMER searches biological sequence databases for homologous sequences,
-using either single sequences or multiple sequence alignments as
-queries. HMMER implements a technology called "profile hidden Markov
-models" (profile HMMs). HMMER is the software engine underlying many
-protein family domain databases and large-scale annotation pipelines,
-including the Pfam and SMART databases.
-
-Other files to read in the top-level source directory:
-
- INSTALL Brief installation instructions.
- Userguide.pdf The HMMER User's Guide.
- COPYRIGHT Copyright and license information.
- LICENSE The GNU General Public License (GPLv3).
-
-To get started after installation, see the Tutorial section in the
-HMMER User's Guide (Userguide.pdf).
-
-
--------------------------------------------------------------------
-The HMMER development team
-HHMI Janelia Farm Research Campus
-http://hmmer.org/
-
-
-
diff --git a/hmmer/README.md b/hmmer/README.md
new file mode 100644
index 0000000..3bd5356
--- /dev/null
+++ b/hmmer/README.md
@@ -0,0 +1,57 @@
+### **HMMER: profile HMMs for biological sequence analysis**
+
+HMMER searches biological sequence databases for homologous sequences,
+using either single sequences or multiple sequence alignments as
+queries. HMMER implements a technology called "profile hidden Markov
+models" (profile HMMs). HMMER is the software engine underlying many
+protein family domain databases and large-scale annotation pipelines,
+including the Pfam and SMART databases.
+
+Other files to read in the top-level source directory:
+
+ * INSTALL - brief installation instructions.
+ * Userguide.pdf - the HMMER User's Guide.
+ * LICENSE - copyright and license information.
+
+To get started after installation, see the Tutorial section in the
+HMMER User's Guide.
+
+________________________________________________________________
+
+To obtain HMMER releases, please visit: http://hmmer.org
+
+To participate in HMMER development, visit us at github: https://github.com/EddyRivasLab/hmmer
+
+HMMER depends on the Easel library, also hosted at github: https://github.com/EddyRivasLab/easel
+
+To clone your own copy of HMMER source code for the first time:
+
+```bash
+ $ git clone https://github.com/EddyRivasLab/hmmer
+ $ cd hmmer
+ $ git clone https://github.com/EddyRivasLab/easel
+ $ git checkout h3-develop
+ $ (cd easel; git checkout develop)
+ $ ln -s easel/aclocal.m4 aclocal.m4
+ $ autoconf
+```
+
+and to build:
+
+```bash
+ $ ./configure
+ $ make
+```
+
+We have just switched to a "git flow" workflow. We have three active branches:
+ * **h3-master** is to become the stable HMMER3 release branch.
+ * **h3-develop** is the HMMER3 development branch
+ * **master**, for historical reasons, is the HMMER4 development branch.
+
+To contribute to HMMER3 development, you want to be on the
+**h3-develop** branch, which is where we are currently integrating
+feature branches. We don't currently recommend that you use the master
+branch where H4 is getting assembled. For more information, see the
+[HMMER wiki](https://github.com/EddyRivasLab/hmmer/wiki).
+
+
diff --git a/hmmer/aclocal.m4 b/hmmer/aclocal.m4
deleted file mode 120000
index 865f5c8..0000000
--- a/hmmer/aclocal.m4
+++ /dev/null
@@ -1 +0,0 @@
-easel/aclocal.m4
\ No newline at end of file
diff --git a/hmmer/aclocal.m4 b/hmmer/aclocal.m4
new file mode 100644
index 0000000..e531239
--- /dev/null
+++ b/hmmer/aclocal.m4
@@ -0,0 +1,873 @@
+# aclocal.m4 contains custom macros used for creating configuration scripts.
+#
+# The aclocal.m4 in Easel is the master copy. HMMER and other projects
+# that depend on Easel create a symlink to the Easel aclocal.m4.
+#
+# Contents:
+# 1. CHECK_GNU_MAKE Sets EXEC_DEPENDENCY to $$@.o vs. %: %.o for sysv vs. GNU make.
+# 2. ACX_MPI Detects MPI installation
+# 3. ACX_PTHREAD Detects POSIX threads
+# 4. AX_COMPILER_VENDOR Sets $ax_cv_c_compiler_vendor to gnu, intel, etc.
+# 5. AX_CHECK_COMPILER_FLAGS Checks for support of a compiler flag. Example: -msse2
+# 6. AX_GCC_FUNC_ATTRIBUTE Checks for gcc-like support of function __attribute() tags
+# 7. ESL_PIC_FLAGS Detects whether/how to build PIC (position independent code)
+# 8. Copyright, license info
+#
+# The autoconf macro archive is at:
+# http://www.gnu.org/software/ac-archive/
+#
+
+#################################################################
+# Macro: CHECK_GNU_MAKE
+# Usage: CHECK_GNU_MAKE
+# Author: John Darrington <j.darrington at elvis.murdoch.edu.au>
+# Modified from the original.
+#
+# Sets the format of makefile dependency lines for executables.
+#
+# We need this because GNU make and SYSV make use different systems
+# specifying variables for dependencies: $$@ in sysv, %: %.o in GNU.
+# Would love to hear a better way of doing this.
+#
+# I use two different conventions in my Makefiles. Sometimes
+# executable "foo" has a file "foo.c" - this is the HMMER, Easel, Infernal convention.
+# Sometimes executable "foo" has a file "foo_main.c" - this is
+# my older SQUID convention. The configure script sets the
+# EXEC_DEPENDENCY appropriately: here, HMMER style.
+#
+# Then we can write one Makefile line for all programs in ${PROGS} like so:
+# ${PROGS}: @EXEC_DEPENDENCY@
+#
+# Sets an output variable EXEC_DEPENDENCY.
+#
+AC_DEFUN(CHECK_GNU_MAKE,[
+ AC_MSG_CHECKING(whether you have a GNU make)
+ foundGNUmake='nope, so we assume you will use a sysv-compatible make.' ;
+ EXEC_DEPENDENCY=[\$\$\@.o] ;
+ for a in "$MAKE" make gmake gnumake ; do
+ if test -z "$a" ; then continue ; fi ;
+ if ( sh -c "$a --version" 2> /dev/null | grep GNU 2>&1 > /dev/null ) ; then
+ foundGNUmake='yes, you do; and we assume you will use it!' ;
+ EXEC_DEPENDENCY='%: %.o' ;
+ fi
+ done
+ AC_MSG_RESULT($foundGNUmake)
+ AC_SUBST(EXEC_DEPENDENCY)
+])
+
+
+################################################################
+# Macro: ACX_MPI
+# Usage: ACX_MPI([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+# Authors: Steven G. Johnson and Julian C. Cummings
+# Version: 2006-10-22
+# Unmodified from the original; can be replaced with new version.
+#
+# xref http://autoconf-archive.cryp.to/acx_mpi.html
+# Sets MPICC, MPILIBS output variable.
+# If ACTION-IF-FOUND is not specified, default action defines HAVE_MPI.
+#
+AC_DEFUN([ACX_MPI], [
+AC_PREREQ(2.50) dnl for AC_LANG_CASE
+
+AC_LANG_CASE([C], [
+ AC_REQUIRE([AC_PROG_CC])
+ AC_ARG_VAR(MPICC,[MPI C compiler command])
+ AC_CHECK_PROGS(MPICC, mpicc hcc mpxlc_r mpxlc mpcc cmpicc, $CC)
+ acx_mpi_save_CC="$CC"
+ CC="$MPICC"
+ AC_SUBST(MPICC)
+],
+[C++], [
+ AC_REQUIRE([AC_PROG_CXX])
+ AC_ARG_VAR(MPICXX,[MPI C++ compiler command])
+ AC_CHECK_PROGS(MPICXX, mpic++ mpicxx mpiCC hcp mpxlC_r mpxlC mpCC cmpic++, $CXX)
+ acx_mpi_save_CXX="$CXX"
+ CXX="$MPICXX"
+ AC_SUBST(MPICXX)
+],
+[Fortran 77], [
+ AC_REQUIRE([AC_PROG_F77])
+ AC_ARG_VAR(MPIF77,[MPI Fortran 77 compiler command])
+ AC_CHECK_PROGS(MPIF77, mpif77 hf77 mpxlf_r mpxlf mpf77 cmpifc, $F77)
+ acx_mpi_save_F77="$F77"
+ F77="$MPIF77"
+ AC_SUBST(MPIF77)
+],
+[Fortran], [
+ AC_REQUIRE([AC_PROG_FC])
+ AC_ARG_VAR(MPIFC,[MPI Fortran compiler command])
+ AC_CHECK_PROGS(MPIFC, mpif90 mpxlf95_r mpxlf90_r mpxlf95 mpxlf90 mpf90 cmpif90c, $FC)
+ acx_mpi_save_FC="$FC"
+ FC="$MPIFC"
+ AC_SUBST(MPIFC)
+])
+
+if test x = x"$MPILIBS"; then
+ AC_LANG_CASE([C], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+ [C++], [AC_CHECK_FUNC(MPI_Init, [MPILIBS=" "])],
+ [Fortran 77], [AC_MSG_CHECKING([for MPI_Init])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[ call MPI_Init])],[MPILIBS=" "
+ AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])],
+ [Fortran], [AC_MSG_CHECKING([for MPI_Init])
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[ call MPI_Init])],[MPILIBS=" "
+ AC_MSG_RESULT(yes)], [AC_MSG_RESULT(no)])])
+fi
+AC_LANG_CASE([Fortran 77], [
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(fmpi, MPI_Init, [MPILIBS="-lfmpi"])
+ fi
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(fmpich, MPI_Init, [MPILIBS="-lfmpich"])
+ fi
+],
+[Fortran], [
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(fmpi, MPI_Init, [MPILIBS="-lfmpi"])
+ fi
+ if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(mpichf90, MPI_Init, [MPILIBS="-lmpichf90"])
+ fi
+])
+if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(mpi, MPI_Init, [MPILIBS="-lmpi"])
+fi
+if test x = x"$MPILIBS"; then
+ AC_CHECK_LIB(mpich, MPI_Init, [MPILIBS="-lmpich"])
+fi
+
+dnl We have to use AC_TRY_COMPILE and not AC_CHECK_HEADER because the
+dnl latter uses $CPP, not $CC (which may be mpicc).
+AC_LANG_CASE([C], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpi.h])
+ AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi],
+[C++], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpi.h])
+ AC_TRY_COMPILE([#include <mpi.h>],[],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi],
+[Fortran 77], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpif.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ include 'mpif.h'])],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi],
+[Fortran], [if test x != x"$MPILIBS"; then
+ AC_MSG_CHECKING([for mpif.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[ include 'mpif.h'])],[AC_MSG_RESULT(yes)], [MPILIBS=""
+ AC_MSG_RESULT(no)])
+fi])
+
+AC_LANG_CASE([C], [CC="$acx_mpi_save_CC"],
+ [C++], [CXX="$acx_mpi_save_CXX"],
+ [Fortran 77], [F77="$acx_mpi_save_F77"],
+ [Fortran], [FC="$acx_mpi_save_FC"])
+
+AC_SUBST(MPILIBS)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x = x"$MPILIBS"; then
+ $2
+ :
+else
+ ifelse([$1],,[AC_DEFINE(HAVE_MPI,1,[Define if you have the MPI library.])],[$1])
+ :
+fi
+])dnl ACX_MPI
+
+
+
+#################################################################
+# Macro: ACX_PTHREAD
+# Usage: ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+# Authors: Steven G. Johnson <stevenj at alum.mit.edu>
+# Alejandro Forero Cuervo <bachue at bachue.com>
+# Version: 1.9 (2004/02/23)
+# Source: http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html
+#
+# SRE: I have modified this source; search for SRE to see where.
+# Solaris needs -D_POSIX_PTHREAD_SEMANTICS or ctime_r() calls will choke.
+#
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/acx_pthread.html
+dnl
+AC_DEFUN([ACX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+ save_LIBS="$LIBS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+ AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
+ AC_MSG_RESULT($acx_pthread_ok)
+ if test x"$acx_pthread_ok" = xno; then
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+ fi
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try. Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important. Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+# other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+# doesn't hurt to check since this sometimes defines pthreads too;
+# also defines -D_REENTRANT)
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+ *solaris*)
+
+ # On Solaris (at least, for some versions), libc contains stubbed
+ # (non-functional) versions of the pthreads routines, so link-based
+ # tests will erroneously succeed. (We need to link with -pthread or
+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather
+ # a function called by this macro, so we could check for that, but
+ # who knows whether they'll stub that too in a future libc.) So,
+ # we'll just look for -pthreads and -lpthread first:
+
+ acx_pthread_flags="-pthread -pthreads pthread -mt $acx_pthread_flags"
+ ;;
+esac
+
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
+
+ case $flag in
+ none)
+ AC_MSG_CHECKING([whether pthreads work without any flags])
+ ;;
+
+ -*)
+ AC_MSG_CHECKING([whether pthreads work with $flag])
+ PTHREAD_CFLAGS="$flag"
+ ;;
+
+ pthread-config)
+ AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
+ if test x"$acx_pthread_config" = xno; then continue; fi
+ PTHREAD_CFLAGS="`pthread-config --cflags`"
+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+ ;;
+
+ *)
+ AC_MSG_CHECKING([for the pthreads library -l$flag])
+ PTHREAD_LIBS="-l$flag"
+ ;;
+ esac
+
+ save_LIBS="$LIBS"
+ save_CFLAGS="$CFLAGS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+ # Check for various functions. We must include pthread.h,
+ # since some functions may be macros. (On the Sequent, we
+ # need a special flag -Kthread to make this header compile.)
+ # We check for pthread_join because it is in -lpthread on IRIX
+ # while pthread_create is in libc. We check for pthread_attr_init
+ # due to DEC craziness with -lpthreads. We check for
+ # pthread_cleanup_push because it is one of the few pthread
+ # functions on Solaris that doesn't have a non-functional libc stub.
+ # We try pthread_create on general principles.
+ AC_TRY_LINK([#include <pthread.h>],
+ [pthread_t th; pthread_join(th, 0);
+ pthread_attr_init(0); pthread_cleanup_push(0, 0);
+ pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+ [acx_pthread_ok=yes])
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ AC_MSG_RESULT($acx_pthread_ok)
+ if test "x$acx_pthread_ok" = xyes; then
+ break;
+ fi
+
+ PTHREAD_LIBS=""
+ PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+ save_LIBS="$LIBS"
+ LIBS="$PTHREAD_LIBS $LIBS"
+ save_CFLAGS="$CFLAGS"
+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+ # Detect AIX lossage: threads are created detached by default
+ # and the JOINABLE attribute has a nonstandard name (UNDETACHED).
+ AC_MSG_CHECKING([for joinable pthread attribute])
+ AC_TRY_LINK([#include <pthread.h>],
+ [int attr=PTHREAD_CREATE_JOINABLE;],
+ ok=PTHREAD_CREATE_JOINABLE, ok=unknown)
+ if test x"$ok" = xunknown; then
+ AC_TRY_LINK([#include <pthread.h>],
+ [int attr=PTHREAD_CREATE_UNDETACHED;],
+ ok=PTHREAD_CREATE_UNDETACHED, ok=unknown)
+ fi
+ if test x"$ok" != xPTHREAD_CREATE_JOINABLE; then
+ AC_DEFINE(PTHREAD_CREATE_JOINABLE, $ok,
+ [Define to the necessary symbol if this constant
+ uses a non-standard name on your system.])
+ fi
+ AC_MSG_RESULT(${ok})
+ if test x"$ok" = xunknown; then
+ AC_MSG_WARN([we do not know how to create joinable pthreads])
+ fi
+
+ AC_MSG_CHECKING([if more special flags are required for pthreads])
+ flag=no
+# Added _POSIX_PTHREAD_SEMANTICS for solaris. Needed for ctime_r() compliance.
+# SRE, Fri Oct 29 10:03:36 2010 [J7/3]
+ case "${host_cpu}-${host_os}" in
+ *-aix* | *-freebsd*) flag="-D_THREAD_SAFE";;
+ *solaris*) flag="-D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS";;
+ *-osf* | *-hpux*) flag="-D_REENTRANT";;
+ esac
+ AC_MSG_RESULT(${flag})
+ if test "x$flag" != xno; then
+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+ fi
+
+ LIBS="$save_LIBS"
+ CFLAGS="$save_CFLAGS"
+
+ # More AIX lossage: must compile with cc_r
+ AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
+else
+ PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+ ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+ :
+else
+ acx_pthread_ok=no
+ $2
+fi
+AC_LANG_RESTORE
+])dnl ACX_PTHREAD
+#
+# ACX_PTHREAD macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+#################################################################
+# Macro: AX_COMPILER_VENDOR
+# Usage: AX_COMPILER_VENDOR
+# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
+# Copyright (C) 2007 Matteo Frigo
+# Version: 2007-08-01
+# Source: http://autoconf-archive.cryp.to/ax_compiler_vendor.html
+#
+# Sets $ax_cv_c_compiler_vendor to gnu, intel, ibm, sun, hp, borland,
+# comeau, dec, cray, kai, lcc, metrowerks, sgi, microsoft, watcom, etc.
+#
+# Everything below is verbatim from the archive. DO NOT MODIFY IT.
+AC_DEFUN([AX_COMPILER_VENDOR],
+[
+AC_CACHE_CHECK([for _AC_LANG compiler vendor], ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor,
+ [ax_cv_[]_AC_LANG_ABBREV[]_compiler_vendor=unknown
+ # note: don't check for gcc first since some other compilers define __GNUC__
+ for ventest in intel:__ICC,__ECC,__INTEL_COMPILER ibm:__xlc__,__xlC__,__IBMC__,__IBMCPP__ pathscale:__PATHCC__,__PATHSCALE__ gnu:__GNUC__ sun:__SUNPRO_C,__SUNPRO_CC hp:__HP_cc,__HP_aCC dec:__DECC,__DECCXX,__DECC_VER,__DECCXX_VER borland:__BORLANDC__,__TURBOC__ comeau:__COMO__ cray:_CRAYC kai:__KCC lcc:__LCC__ metrowerks:__MWERKS__ sgi:__sgi,sgi microsoft:_MSC_VER watcom:__WATCOMC__ portland:__PGI; do
+ vencpp="defined("`echo $ventest | cut -d: -f2 | sed 's/,/) || defined(/g'`")"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,[
+#if !($vencpp)
+ thisisanerror;
+#endif
+])], [ax_cv_]_AC_LANG_ABBREV[_compiler_vendor=`echo $ventest | cut -d: -f1`; break])
+ done
+ ])
+])
+#
+# AX_COMPILER_VENDOR macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+#################################################################
+# Macro: AX_CHECK_COMPILER_FLAGS
+# Usage: AX_CHECK_COMPILER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
+# Authors: Copyright (C) 2007 Steven G. Johnson <stevenj at alum.mit.edu>
+# Copyright (C) 2007 Matteo Frigo.
+# Version: 2007-07-29
+# Source: http://autoconf-archive.cryp.to/ax_check_compiler_flags.html
+#
+# Check whether the given compiler FLAGS work with the current language's compiler,
+# or whether they give an error. (Warnings, however, are ignored.)
+# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on success/failure.
+#
+# Everything below is verbatim from the archive. DO NOT MODIFY IT.
+#
+AC_DEFUN([AX_CHECK_COMPILER_FLAGS],
+[AC_PREREQ(2.59) dnl for _AC_LANG_PREFIX
+AC_MSG_CHECKING([whether _AC_LANG compiler accepts $1])
+dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
+AS_LITERAL_IF([$1],
+ [AC_CACHE_VAL(AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1), [
+ ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
+ AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes,
+ AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no)
+ _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])],
+ [ax_save_FLAGS=$[]_AC_LANG_PREFIX[]FLAGS
+ _AC_LANG_PREFIX[]FLAGS="$1"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
+ eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=yes,
+ eval AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)=no)
+ _AC_LANG_PREFIX[]FLAGS=$ax_save_FLAGS])
+eval ax_check_compiler_flags=$AS_TR_SH(ax_cv_[]_AC_LANG_ABBREV[]_flags_$1)
+AC_MSG_RESULT($ax_check_compiler_flags)
+if test "x$ax_check_compiler_flags" = xyes; then
+ m4_default([$2], :)
+else
+ m4_default([$3], :)
+fi
+])dnl AX_CHECK_COMPILER_FLAGS
+#
+# AX_CHECK_COMPILER_FLAGS macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+
+
+
+#################################################################
+# Macro: AX_GCC_FUNC_ATTRIBUTE
+# Usage: AX_GCC_FUNC_ATTRIBUTE(noreturn), for example
+# Author: Gabriele Svelto <gabriele.svelto at gmail.com>
+# Version: 3?
+# Source: http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# Unmodified from the original; can be replaced by a new version.
+#
+# Defines HAVE_FUNC_ATTRIBUTE_NORETURN (for example).
+#
+################################################################
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
+#
+# DESCRIPTION
+#
+# This macro checks if the compiler supports one of GCC's function
+# attributes; many other compilers also provide function attributes with
+# the same syntax. Compiler warnings are used to detect supported
+# attributes as unsupported ones are ignored by default so quieting
+# warnings when using this macro will yield false positives.
+#
+# The ATTRIBUTE parameter holds the name of the attribute to be checked.
+#
+# If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
+#
+# The macro caches its result in the ax_cv_have_func_attribute_<attribute>
+# variable.
+#
+# The macro currently supports the following function attributes:
+#
+# alias
+# aligned
+# alloc_size
+# always_inline
+# artificial
+# cold
+# const
+# constructor
+# constructor_priority for constructor attribute with priority
+# deprecated
+# destructor
+# dllexport
+# dllimport
+# error
+# externally_visible
+# flatten
+# format
+# format_arg
+# gnu_inline
+# hot
+# ifunc
+# leaf
+# malloc
+# noclone
+# noinline
+# nonnull
+# noreturn
+# nothrow
+# optimize
+# pure
+# unused
+# used
+# visibility
+# warning
+# warn_unused_result
+# weak
+# weakref
+#
+# Unsuppored function attributes will be tested with a prototype returning
+# an int and not accepting any arguments and the result of the check might
+# be wrong or meaningless so use with care.
+#
+# LICENSE
+#
+# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto at gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 3
+
+AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
+ AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
+
+ AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([
+ m4_case([$1],
+ [alias], [
+ int foo( void ) { return 0; }
+ int bar( void ) __attribute__(($1("foo")));
+ ],
+ [aligned], [
+ int foo( void ) __attribute__(($1(32)));
+ ],
+ [alloc_size], [
+ void *foo(int a) __attribute__(($1(1)));
+ ],
+ [always_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [artificial], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [cold], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [const], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [constructor_priority], [
+ int foo( void ) __attribute__((__constructor__(65535/2)));
+ ],
+ [constructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [deprecated], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [destructor], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [dllexport], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [dllimport], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [error], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [externally_visible], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [flatten], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [format], [
+ int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
+ ],
+ [format_arg], [
+ char *foo(const char *p) __attribute__(($1(1)));
+ ],
+ [gnu_inline], [
+ inline __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [hot], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [ifunc], [
+ int my_foo( void ) { return 0; }
+ static int (*resolve_foo(void))(void) { return my_foo; }
+ int foo( void ) __attribute__(($1("resolve_foo")));
+ ],
+ [leaf], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [malloc], [
+ void *foo( void ) __attribute__(($1));
+ ],
+ [noclone], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [noinline], [
+ __attribute__(($1)) int foo( void ) { return 0; }
+ ],
+ [nonnull], [
+ int foo(char *p) __attribute__(($1(1)));
+ ],
+ [noreturn], [
+ void foo( void ) __attribute__(($1));
+ ],
+ [nothrow], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [optimize], [
+ __attribute__(($1(3))) int foo( void ) { return 0; }
+ ],
+ [pure], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [unused], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [used], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [visibility], [
+ int foo_def( void ) __attribute__(($1("default")));
+ int foo_hid( void ) __attribute__(($1("hidden")));
+ int foo_int( void ) __attribute__(($1("internal")));
+ int foo_pro( void ) __attribute__(($1("protected")));
+ ],
+ [warning], [
+ int foo( void ) __attribute__(($1("")));
+ ],
+ [warn_unused_result], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weak], [
+ int foo( void ) __attribute__(($1));
+ ],
+ [weakref], [
+ static int foo( void ) { return 0; }
+ static int bar( void ) __attribute__(($1("foo")));
+ ],
+ [
+ m4_warn([syntax], [Unsupported attribute $1, the test may fail])
+ int foo( void ) __attribute__(($1));
+ ]
+ )], [])
+ ],
+ dnl GCC doesn't exit with an error if an unknown attribute is
+ dnl provided but only outputs a warning, so accept the attribute
+ dnl only if no warning were issued.
+ [AS_IF([test -s conftest.err],
+ [AS_VAR_SET([ac_var], [no])],
+ [AS_VAR_SET([ac_var], [yes])])],
+ [AS_VAR_SET([ac_var], [no])])
+ ])
+
+ AS_IF([test yes = AS_VAR_GET([ac_var])],
+ [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FUNC_ATTRIBUTE_$1), 1,
+ [Define to 1 if the system has the `$1' function attribute])], [])
+
+ AS_VAR_POPDEF([ac_var])
+])
+#
+# AX_GCC_FUNC_ATTRIBUTE macro end
+# ****************************************************************
+# ****************************************************************
+
+
+
+
+################################################################
+# Macro: ESL_PIC_FLAGS
+# Usage: ESL_PIC_FLAGS
+# Author: Dan Nicholson, Mesa3D project
+# References: http://www.mesa3d.org/
+# http://www.mail-archive.com/mesa3d-dev@lists.sourceforge.net/msg04938.html
+#
+# Derived (essentially verbatim) from MESA_PIC_FLAGS, in the Mesa
+# project's acinclude.m4 file. From the Mesa file's header:
+# "Find out whether to build PIC code using the option --enable-pic and
+# the configure enable_static/enable_shared settings. If PIC is needed,
+# figure out the necessary flags for the platform and compiler.
+#
+# The platform checks have been shamelessly taken from libtool and
+# stripped down to just what's needed for Mesa. See _LT_COMPILER_PIC in
+# /usr/share/aclocal/libtool.m4 or
+# http://git.savannah.gnu.org/gitweb/?p=libtool.git;a=blob;f=libltdl/m4/libtool.m4;hb=HEAD
+#
+# Sets an output variable @PIC_FLAGS@ which should be added to
+# CFLAGS lines.
+#
+AC_DEFUN([ESL_PIC_FLAGS],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_ARG_VAR([PIC_FLAGS], [compiler flags for PIC code])
+AC_ARG_ENABLE([pic],
+ [AS_HELP_STRING([--disable-pic],
+ [compile PIC objects @<:@default=enabled for shared builds
+ on supported platforms@:>@])],
+ [enable_pic="$enableval"
+ test "x$enable_pic" = x && enable_pic=auto],
+ [enable_pic=auto])
+# disable PIC by default for static builds
+if test "$enable_pic" = auto && test "$enable_static" = yes; then
+ enable_pic=no
+fi
+# if PIC hasn't been explicitly disabled, try to figure out the flags
+if test "$enable_pic" != no; then
+ AC_MSG_CHECKING([for $CC option to produce PIC])
+ # allow the user's flags to override
+ if test "x$PIC_FLAGS" = x; then
+ # see if we're using GCC
+ if test "x$GCC" = xyes; then
+ case "$host_os" in
+ aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw*|os2*|pw32*)
+ # This hack is so that the source file can tell whether
+ # it is being built for inclusion in a dll (and should
+ # export symbols for example).
+ PIC_FLAGS="-DDLL_EXPORT"
+ ;;
+ darwin*|rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ PIC_FLAGS="-fno-common"
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ ;;
+ *)
+ # Everyone else on GCC uses -fPIC
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ else # !GCC
+ case "$host_os" in
+ hpux9*|hpux10*|hpux11*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ PIC_FLAGS="+Z"
+ ;;
+ esac
+ ;;
+ linux*|k*bsd*-gnu)
+ case `basename "$CC"` in
+ icc*|ecc*|ifort*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ pgcc*|pgf77*|pgf90*|pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc
+ # compiler, which looks to be a dead project)
+ PIC_FLAGS="-fpic"
+ ;;
+ ccc*)
+ # All Alpha code is PIC.
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ PIC_FLAGS="-qpic"
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*|*Sun\ F*)
+ # Sun C 5.9 or Sun Fortran
+ PIC_FLAGS="-KPIC"
+ ;;
+ esac
+ esac
+ ;;
+ solaris*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ sunos4*)
+ PIC_FLAGS="-PIC"
+ ;;
+ esac
+ fi # GCC
+ fi # PIC_FLAGS
+ AC_MSG_RESULT([$PIC_FLAGS])
+fi
+AC_SUBST([PIC_FLAGS])
+])
+#
+# ESL_PIC_FLAGS macro end.
+# ****************************************************************
+# ****************************************************************
+
+
+
+#################################################################
+# Easel - a library of C functions for biological sequence analysis
+# Version 0.43; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute
+# Other copyrights also apply. See the LICENSE file for a full list.
+#
+# Easel is open source software, distributed under the BSD license. See
+# the LICENSE file for more details.
+#
+# SVN $Id$
+# SVN $URL$
+#################################################################
diff --git a/hmmer/configure b/hmmer/configure
index b0ffa53..f96bc1d 100755
--- a/hmmer/configure
+++ b/hmmer/configure
@@ -1,8 +1,8 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for HMMER i1.1.1.
+# Generated by GNU Autoconf 2.63 for HMMER 3.1b3.
#
-# Report bugs to <eddys at janelia.hhmi.org>.
+# Report bugs to <sean at eddylab.org>.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -596,9 +596,9 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='HMMER'
PACKAGE_TARNAME='hmmer'
-PACKAGE_VERSION='i1.1.1'
-PACKAGE_STRING='HMMER i1.1.1'
-PACKAGE_BUGREPORT='eddys at janelia.hhmi.org'
+PACKAGE_VERSION='3.1b3'
+PACKAGE_STRING='HMMER 3.1b3'
+PACKAGE_BUGREPORT='sean at eddylab.org'
# Factoring default headers for most tests.
ac_includes_default="\
@@ -647,7 +647,6 @@ SIMD_CFLAGS
IMPL_CHOICE
HMMERIMPLLIB
PIC_FLAGS
-PRTDIAG
EXEC_DEPENDENCY
AR
RANLIB
@@ -740,8 +739,6 @@ enable_mpi
with_xlc_arch
enable_threads
with_gsl
-enable_portable_binary
-with_gcc_arch
enable_pic
enable_largefile
'
@@ -1308,7 +1305,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures HMMER i1.1.1 to adapt to many kinds of systems.
+\`configure' configures HMMER 3.1b3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1373,7 +1370,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of HMMER i1.1.1:";;
+ short | recursive ) echo "Configuration of HMMER 3.1b3:";;
esac
cat <<\_ACEOF
@@ -1391,9 +1388,6 @@ Optional Features:
--enable-mpi enable MPI parallelization
--enable-threads enable POSIX multithreading support (default is
check)
- --enable-portable-binary
- disable compiler optimizations that would produce
- unportable binaries
--disable-pic compile PIC objects [default=enabled for shared
builds on supported platforms]
--disable-largefile omit support for large files
@@ -1403,8 +1397,6 @@ Optional Packages:
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--with-xlc-arch=<arch> specify architecture <arch> for xlc -qarch
--with-gsl use the GSL, GNU Scientific Library (default is no)
- --with-gcc-arch=<arch> use architecture <arch> for gcc -march/-mtune,
- instead of guessing
Some influential environment variables:
CC C compiler command
@@ -1421,7 +1413,7 @@ Some influential environment variables:
Use these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.
-Report bugs to <eddys at janelia.hhmi.org>.
+Report bugs to <sean at eddylab.org>.
_ACEOF
ac_status=$?
fi
@@ -1484,7 +1476,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-HMMER configure i1.1.1
+HMMER configure 3.1b3
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1498,7 +1490,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by HMMER $as_me i1.1.1, which was
+It was created by HMMER $as_me 3.1b3, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -1872,15 +1864,20 @@ $as_echo "$as_me: Configuring HMMER for your system." >&6;}
# remember if the user is overriding CFLAGS
if test x"$CFLAGS" = x; then
sre_cflags_env_set=no
+else
+ sre_cflags_env_set=yes
fi
+
+
################################################################
# 3. Info on the package
+################################################################
#
# The four AC_INIT args set these output variables and preprocessor symbols:
# PACKAGE_NAME <package> e.g. "HMMER"
# PACKAGE_VERSION <version> e.g. "3.0"
-# PACKAGE_BUGREPORT <bug-report> e.g. "eddys at janelia.hhmi.org"
+# PACKAGE_BUGREPORT <bug-report> e.g. "sean at eddylab.org"
# PACKAGE_TARNAME <tarname> e.g. "hmmer"
# From them, it derives one more:
# PACKAGE_STRING <package> <version>, e.g. "HMMER 3.0"
@@ -1897,18 +1894,18 @@ fi
# to use HMMER as a library inside other packages, with no name clashes.
################################################################
-HMMER_DATE="July 2014"
-HMMER_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-HMMER_LICENSE="Freely distributed under the GNU General Public License (GPLv3)."
+HMMER_DATE="July 2016"
+HMMER_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+HMMER_LICENSE="Freely distributed under the BSD open source license."
HMMER_VERSION=$PACKAGE_VERSION
HMMER_URL="http://hmmer.org/"
HMMER_ESLDIR="easel"
HMMER_SADIR="libdivsufsort"
-EASEL_DATE="July 2014"
-EASEL_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-EASEL_LICENSE="Freely distributed under the Janelia Farm Software License."
-EASEL_VERSION="$PACKAGE_VERSION"
+EASEL_DATE="July 2016"
+EASEL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+EASEL_LICENSE="Freely distributed under the BSD open source license."
+EASEL_VERSION="0.43"
EASEL_URL="http://bioeasel.org/"
# Output variables (AC_OUTPUT replaces @var@ in input files, such as Makefiles)
@@ -2109,7 +2106,7 @@ $as_echo "$as_me: Full HMMER source distribution - using full configuration" >&6
################################################################
-# Process the ./configure command line
+# 4. Process the ./configure command line
################################################################
# --enable-debugging - set basic debugging (level 0)
@@ -3879,8 +3876,8 @@ fi
################################################################
-# Checks for programs, including choice of compiler ${CC} and ${CFLAGS}.
-#
+# 5. Checks for programs, including choice of compiler ${CC} and ${CFLAGS}.
+################################################################
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -4657,6 +4654,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
# MPI : set @CC@ to mpicc, sets @MPILIBS@, defines HAVE_MPI.
if test "$enable_mpi" = "yes"; then
@@ -5258,6 +5256,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
ac_compiler_gnu=$ac_cv_c_compiler_gnu
+# AC_PROG_CC_STDC wants to append -c99 to icc; icc doesn't like this.
+
{ $as_echo "$as_me:$LINENO: checking for C compiler vendor" >&5
$as_echo_n "checking for C compiler vendor... " >&6; }
if test "${ax_cv_c_compiler_vendor+set}" = set; then
@@ -5319,7 +5319,6 @@ fi
{ $as_echo "$as_me:$LINENO: result: $ax_cv_c_compiler_vendor" >&5
$as_echo "$ax_cv_c_compiler_vendor" >&6; }
-# AC_PROG_CC_STDC wants to append -c99 to icc; icc doesn't like this.
if test "$ax_cv_c_compiler_vendor" != "intel"; then
case $ac_cv_prog_cc_stdc in
no) ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;;
@@ -5802,6 +5801,9 @@ fi
+# CHECK_GNU_MAKE sets EXEC_DEPENDENCY for SYSV vs. GNU make,
+# supporting Makefile lines of ${PROGS}: ${EXEC_DEPENDENCY}
+
{ $as_echo "$as_me:$LINENO: checking whether you have a GNU make" >&5
$as_echo_n "checking whether you have a GNU make... " >&6; }
foundGNUmake='nope, so we assume you will use a sysv-compatible make.' ;
@@ -5818,7 +5820,11 @@ $as_echo "$foundGNUmake" >&6; }
-# Select our optimization level in CFLAGS.
+
+# If the base $CFLAGS isn't already set, select what it should be.
+# We've used AX_CC_MAXOPT in the past (from FFTW), but it's
+# superaggressive and problematic in many respects. Use -O3 instead.
+#
if test "$enable_debugging" != "no"; then
cat >>confdefs.h <<\_ACEOF
#define p7_DEBUGGING 1
@@ -5828,57 +5834,133 @@ _ACEOF
CFLAGS="-g -Wall"
fi
else
- sre_save_ac_test_cflags="$ac_test_CFLAGS"
if test "$sre_cflags_env_set" = "no"; then
- ac_test_CFLAGS=""
+ CFLAGS="-O3"
fi
+fi
+# Figure out how to generate PIC code for shared libraries
+# This sets @PIC_FLAGS@ output variable for Easel.
-
-
-# Check whether --enable-portable-binary was given.
-if test "${enable_portable_binary+set}" = set; then
- enableval=$enable_portable_binary; acx_maxopt_portable=$withval
+# Check whether --enable-pic was given.
+if test "${enable_pic+set}" = set; then
+ enableval=$enable_pic; enable_pic="$enableval"
+ test "x$enable_pic" = x && enable_pic=auto
else
- acx_maxopt_portable=no
+ enable_pic=auto
fi
+# disable PIC by default for static builds
+if test "$enable_pic" = auto && test "$enable_static" = yes; then
+ enable_pic=no
+fi
+# if PIC hasn't been explicitly disabled, try to figure out the flags
+if test "$enable_pic" != no; then
+ { $as_echo "$as_me:$LINENO: checking for $CC option to produce PIC" >&5
+$as_echo_n "checking for $CC option to produce PIC... " >&6; }
+ # allow the user's flags to override
+ if test "x$PIC_FLAGS" = x; then
+ # see if we're using GCC
+ if test "x$GCC" = xyes; then
+ case "$host_os" in
+ aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw*|os2*|pw32*)
+ # This hack is so that the source file can tell whether
+ # it is being built for inclusion in a dll (and should
+ # export symbols for example).
+ PIC_FLAGS="-DDLL_EXPORT"
+ ;;
+ darwin*|rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ PIC_FLAGS="-fno-common"
+ ;;
+ hpux*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ ;;
+ *)
+ # Everyone else on GCC uses -fPIC
+ PIC_FLAGS="-fPIC"
+ ;;
+ esac
+ else # !GCC
+ case "$host_os" in
+ hpux9*|hpux10*|hpux11*)
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
+ # but not for PA HP-UX.
+ case "$host_cpu" in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ PIC_FLAGS="+Z"
+ ;;
+ esac
+ ;;
+ linux*|k*bsd*-gnu)
+ case `basename "$CC"` in
+ icc*|ecc*|ifort*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ pgcc*|pgf77*|pgf90*|pgf95*)
+ # Portland Group compilers (*not* the Pentium gcc
+ # compiler, which looks to be a dead project)
+ PIC_FLAGS="-fpic"
+ ;;
+ ccc*)
+ # All Alpha code is PIC.
+ ;;
+ xl*)
+ # IBM XL C 8.0/Fortran 10.1 on PPC
+ PIC_FLAGS="-qpic"
+ ;;
+ *)
+ case `$CC -V 2>&1 | sed 5q` in
+ *Sun\ C*|*Sun\ F*)
+ # Sun C 5.9 or Sun Fortran
+ PIC_FLAGS="-KPIC"
+ ;;
+ esac
+ esac
+ ;;
+ solaris*)
+ PIC_FLAGS="-KPIC"
+ ;;
+ sunos4*)
+ PIC_FLAGS="-PIC"
+ ;;
+ esac
+ fi # GCC
+ fi # PIC_FLAGS
+ { $as_echo "$as_me:$LINENO: result: $PIC_FLAGS" >&5
+$as_echo "$PIC_FLAGS" >&6; }
+fi
-# Try to determine "good" native compiler flags if none specified via CFLAGS
-if test "$ac_test_CFLAGS" != "set"; then
- CFLAGS=""
- case $ax_cv_c_compiler_vendor in
- dec) CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -tune host"
-# CFLAGS="-newc -w0 -O5 -ansi_alias -ansi_args -fp_reorder -tune host"
- if test "x$acx_maxopt_portable" = xno; then
- CFLAGS="$CFLAGS -arch host"
- fi;;
- sun) CFLAGS="-native -xO5 -dalign"
-# CFLAGS="-native -fast -xO5 -dalign"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS -xarch=generic"
- fi;;
- hp) CFLAGS="+Oall +Optrs_ansi +DSnative"
- if test "x$acx_maxopt_portable" = xyes; then
- CFLAGS="$CFLAGS +DAportable"
- fi;;
+# 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) { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -msse2" >&5
+$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
+if test "${ax_cv_c_flags__msse2+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
- ibm) xlc_opt="-qtune=auto -qstrict"
- if test "x$acx_maxopt_portable" = xno; then
- if test "x$XLC_ARCH" = xno; then
- xlc_opt="-qarch=auto $xlc_opt"
- else
- xlc_opt="-qarch=$XLC_ARCH $xlc_opt"
- fi
- fi
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $xlc_opt" >&5
-$as_echo_n "checking whether C compiler accepts $xlc_opt... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$xlc_opt"
- cat >conftest.$ac_ext <<_ACEOF
+ ax_save_FLAGS=$CFLAGS
+ CFLAGS="-msse2"
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
@@ -5911,1261 +5993,138 @@ $as_echo "$ac_try_echo") >&5
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=yes
+ ax_cv_c_flags__msse2=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
- eval `$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`=no
+ ax_cv_c_flags__msse2=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$xlc_opt" | $as_tr_sh`
+ CFLAGS=$ax_save_FLAGS
+fi
+
+eval ax_check_compiler_flags=$ax_cv_c_flags__msse2
{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
$as_echo "$ax_check_compiler_flags" >&6; }
if test "x$ax_check_compiler_flags" = xyes; then
- CFLAGS="-O3 -qansialias -w $xlc_opt"
-else
- CFLAGS="-O3 -qansialias -w"
- echo "******************************************************"
- echo "* You seem to have the IBM C compiler. It is *"
- echo "* recommended for best performance that you use: *"
- echo "* *"
- echo "* CFLAGS=-O3 -qarch=xxx -qtune=xxx -qansialias -w *"
- echo "* ^^^ ^^^ *"
- echo "* where xxx is pwr2, pwr3, 604, or whatever kind of *"
- echo "* CPU you have. (Set the CFLAGS environment var. *"
- echo "* and re-run configure.) For more info, man cc. *"
- echo "******************************************************"
-fi
-
- ;;
-
- intel) CFLAGS="-O3 -ansi_alias"
- if test "x$acx_maxopt_portable" = xno; then
- icc_archflag=unknown
- icc_flags=""
- case $host_cpu in
- i686*|x86_64*)
- # icc accepts gcc assembly syntax, so these should work:
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+ SIMD_CFLAGS="-msse2"
+else
+ impl_choice=dummy
+fi
+;;
+ intel) ;;
+ *) ;;
+ esac
+fi
+if test "$enable_sse" = "yes" && test "$impl_choice" = dummy; then
+ { { $as_echo "$as_me:$LINENO: error: SSE instructions are apparently not available; --enable-sse failed" >&5
+$as_echo "$as_me: error: SSE instructions are apparently not available; --enable-sse failed" >&2;}
+ { (exit 1); exit 1; }; }
+fi
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0 output" >&5
-$as_echo_n "checking for x86 cpuid 0 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then
+# If we're using VMX/Altivec, figure out our @SIMD_CFLAGS@
+if test "$impl_choice" = "vmx"; then
+ if test "x$SIMD_CFLAGS" = x; then
+ if test "$GCC" = "yes"; then
+ # -DFAKE__VEC__ is a workaround because gcc-3.3 does not
+ # #define __VEC__ with -maltivec.
+ { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -faltivec" >&5
+$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; }
+if test "${ax_cv_c_flags__faltivec+set}" = set; then
$as_echo_n "(cached) " >&6
else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
+
+ ax_save_FLAGS=$CFLAGS
+ CFLAGS="-faltivec"
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdio.h>
+
int
main ()
{
- int op = 0, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
;
return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
+ (eval "$ac_compile") 2>conftest.er1
ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext; then
+ ax_cv_c_flags__faltivec=yes
else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
+ $as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+ ax_cv_c_flags__faltivec=no
fi
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+ CFLAGS=$ax_save_FLAGS
fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 1 output" >&5
-$as_echo_n "checking for x86 cpuid 1 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then
- $as_echo_n "(cached) " >&6
+eval ax_check_compiler_flags=$ax_cv_c_flags__faltivec
+{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
+$as_echo "$ax_check_compiler_flags" >&6; }
+if test "x$ax_check_compiler_flags" = xyes; then
+ SIMD_CFLAGS="-faltivec"
else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_1=unknown
+ { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -maltivec -mabi=altivec" >&5
+$as_echo_n "checking whether C compiler accepts -maltivec -mabi=altivec... " >&6; }
+if test "${ax_cv_c_flags__maltivec__mabi_altivec+set}" = set; then
+ $as_echo_n "(cached) " >&6
else
- cat >conftest.$ac_ext <<_ACEOF
+
+ ax_save_FLAGS=$CFLAGS
+ CFLAGS="-maltivec -mabi=altivec"
+ cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
-#include <stdio.h>
+
int
main ()
{
- int op = 1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
;
return 0;
}
_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
+rm -f conftest.$ac_objext
+if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
+ (eval "$ac_compile") 2>conftest.er1
ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_1" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- case $ax_cv_gcc_x86_cpuid_0 in # see AX_GCC_ARCHFLAG
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *6a?:*[234]:*:*|*6[789b]?:*:*:*) icc_flags="-xK";;
- *f3[347]:*:*:*|*f41347:*:*:*) icc_flags="-xP -xN -xW -xK";;
- *f??:*:*:*) icc_flags="-xN -xW -xK";;
- esac ;;
- esac ;;
- esac
- if test "x$icc_flags" != x; then
- for flag in $icc_flags; do
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $flag" >&5
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$flag"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- icc_archflag=$flag; break
-else
- :
-fi
-
- done
- fi
- { $as_echo "$as_me:$LINENO: checking for icc architecture flag" >&5
-$as_echo_n "checking for icc architecture flag... " >&6; }
- { $as_echo "$as_me:$LINENO: result: $icc_archflag" >&5
-$as_echo "$icc_archflag" >&6; }
- if test "x$icc_archflag" != xunknown; then
- CFLAGS="$CFLAGS $icc_archflag"
- fi
- fi
- ;;
-
- gnu)
- # default optimization flags for gcc on all systems
- CFLAGS="-O3 -fomit-frame-pointer"
-
- # -malign-double for x86 systems
- # SRE: no, that's a bad idea;
- # on 32bit Ubuntu Linux systems, for example, this
- # causes an odd and buggy interaction with _FILE_OFFSET_BITS (LFS)
- # and fstat().
- # AX_CHECK_COMPILER_FLAGS(-malign-double, CFLAGS="$CFLAGS -malign-double")
-
- # -fstrict-aliasing for gcc-2.95+
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -fstrict-aliasing" >&5
-$as_echo_n "checking whether C compiler accepts -fstrict-aliasing... " >&6; }
-if test "${ax_cv_c_flags__fstrict_aliasing+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-fstrict-aliasing"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_flags__fstrict_aliasing=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ax_cv_c_flags__fstrict_aliasing=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-fi
-
-eval ax_check_compiler_flags=$ax_cv_c_flags__fstrict_aliasing
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- CFLAGS="$CFLAGS -fstrict-aliasing"
-else
- :
-fi
-
-
- # note that we enable "unsafe" fp optimization with other compilers, too
- # SRE: no, that's a bad idea, don't use this
-# AX_CHECK_COMPILER_FLAGS(-ffast-math, CFLAGS="$CFLAGS -ffast-math")
-
-
-
-
-
-# Check whether --with-gcc-arch was given.
-if test "${with_gcc_arch+set}" = set; then
- withval=$with_gcc_arch; ax_gcc_arch=$withval
-else
- ax_gcc_arch=yes
-fi
-
-
-{ $as_echo "$as_me:$LINENO: checking for gcc architecture flag" >&5
-$as_echo_n "checking for gcc architecture flag... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: " >&5
-$as_echo "" >&6; }
-if test "${ax_cv_gcc_archflag+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
-ax_cv_gcc_archflag="unknown"
-
-if test "$GCC" = yes; then
-
-if test "x$ax_gcc_arch" = xyes; then
-ax_gcc_arch=""
-if test "$cross_compiling" = no; then
-case $host_cpu in
- i[3456]86*|x86_64*) # use cpuid codes, in part from x86info-1.7 by D. Jones
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0 output" >&5
-$as_echo_n "checking for x86 cpuid 0 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 1 output" >&5
-$as_echo_n "checking for x86 cpuid 1 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_1+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_1=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 1, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_1=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_1=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_1" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_1" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
- case $ax_cv_gcc_x86_cpuid_0 in
- *:756e6547:*:*) # Intel
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[48]?:*:*:*) ax_gcc_arch="pentium-mmx pentium" ;;
- *5??:*:*:*) ax_gcc_arch=pentium ;;
- *6[3456]?:*:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[01]:*:*) ax_gcc_arch="pentium2 pentiumpro" ;;
- *6a?:*[234]:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6[9d]?:*:*:*) ax_gcc_arch="pentium-m pentium3 pentiumpro" ;;
- *6[78b]?:*:*:*) ax_gcc_arch="pentium3 pentiumpro" ;;
- *6??:*:*:*) ax_gcc_arch=pentiumpro ;;
- *f3[347]:*:*:*|*f41347:*:*:*)
- case $host_cpu in
- x86_64*) ax_gcc_arch="nocona pentium4 pentiumpro" ;;
- *) ax_gcc_arch="prescott pentium4 pentiumpro" ;;
- esac ;;
- *f??:*:*:*) ax_gcc_arch="pentium4 pentiumpro";;
- esac ;;
- *:68747541:*:*) # AMD
- case $ax_cv_gcc_x86_cpuid_1 in
- *5[67]?:*:*:*) ax_gcc_arch=k6 ;;
- *5[8d]?:*:*:*) ax_gcc_arch="k6-2 k6" ;;
- *5[9]?:*:*:*) ax_gcc_arch="k6-3 k6" ;;
- *60?:*:*:*) ax_gcc_arch=k7 ;;
- *6[12]?:*:*:*) ax_gcc_arch="athlon k7" ;;
- *6[34]?:*:*:*) ax_gcc_arch="athlon-tbird k7" ;;
- *67?:*:*:*) ax_gcc_arch="athlon-4 athlon k7" ;;
- *6[68a]?:*:*:*)
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:$LINENO: checking for x86 cpuid 0x80000006 output" >&5
-$as_echo_n "checking for x86 cpuid 0x80000006 output... " >&6; }
-if test "${ax_cv_gcc_x86_cpuid_0x80000006+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- if test "$cross_compiling" = yes; then
- ax_cv_gcc_x86_cpuid_0x80000006=unknown
-else
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <stdio.h>
-int
-main ()
-{
-
- int op = 0x80000006, eax, ebx, ecx, edx;
- FILE *f;
- __asm__("cpuid"
- : "=a" (eax), "=b" (ebx), "=c" (ecx), "=d" (edx)
- : "a" (op));
- f = fopen("conftest_cpuid", "w"); if (!f) return 1;
- fprintf(f, "%x:%x:%x:%x\n", eax, ebx, ecx, edx);
- fclose(f);
- return 0;
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_link") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
- { (case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_try") 2>&5
- ac_status=$?
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- ax_cv_gcc_x86_cpuid_0x80000006=`cat conftest_cpuid`; rm -f conftest_cpuid
-else
- $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-ax_cv_gcc_x86_cpuid_0x80000006=unknown; rm -f conftest_cpuid
-fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-
-
-fi
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_x86_cpuid_0x80000006" >&5
-$as_echo "$ax_cv_gcc_x86_cpuid_0x80000006" >&6; }
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- # L2 cache size
- case $ax_cv_gcc_x86_cpuid_0x80000006 in
- *:*:*[1-9a-f]??????:*) # (L2 = ecx >> 16) >= 256
- ax_gcc_arch="athlon-xp athlon-4 athlon k7" ;;
- *) ax_gcc_arch="athlon-4 athlon k7" ;;
- esac ;;
- *f[4cef8b]?:*:*:*) ax_gcc_arch="athlon64 k8" ;;
- *f5?:*:*:*) ax_gcc_arch="opteron k8" ;;
- *f7?:*:*:*) ax_gcc_arch="athlon-fx opteron k8" ;;
- *f??:*:*:*) ax_gcc_arch="k8" ;;
- esac ;;
- *:746e6543:*:*) # IDT
- case $ax_cv_gcc_x86_cpuid_1 in
- *54?:*:*:*) ax_gcc_arch=winchip-c6 ;;
- *58?:*:*:*) ax_gcc_arch=winchip2 ;;
- *6[78]?:*:*:*) ax_gcc_arch=c3 ;;
- *69?:*:*:*) ax_gcc_arch="c3-2 c3" ;;
- esac ;;
- esac
- if test x"$ax_gcc_arch" = x; then # fallback
- case $host_cpu in
- i586*) ax_gcc_arch=pentium ;;
- i686*) ax_gcc_arch=pentiumpro ;;
- esac
- fi
- ;;
-
- sparc*)
- # Extract the first word of "prtdiag", so it can be a program name with args.
-set dummy prtdiag; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PRTDIAG+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
- case $PRTDIAG in
- [\\/]* | ?:[\\/]*)
- ac_cv_path_PRTDIAG="$PRTDIAG" # Let the user override the test with a path.
- ;;
- *)
- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_dummy="$PATH:/usr/platform/`uname -i`/sbin/:/usr/platform/`uname -m`/sbin/"
-for as_dir in $as_dummy
-do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_exec_ext in '' $ac_executable_extensions; do
- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
- ac_cv_path_PRTDIAG="$as_dir/$ac_word$ac_exec_ext"
- $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
- break 2
- fi
-done
-done
-IFS=$as_save_IFS
-
- test -z "$ac_cv_path_PRTDIAG" && ac_cv_path_PRTDIAG="prtdiag"
- ;;
-esac
-fi
-PRTDIAG=$ac_cv_path_PRTDIAG
-if test -n "$PRTDIAG"; then
- { $as_echo "$as_me:$LINENO: result: $PRTDIAG" >&5
-$as_echo "$PRTDIAG" >&6; }
-else
- { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
- cputype=`(((grep cpu /proc/cpuinfo | cut -d: -f2) ; ($PRTDIAG -v |grep -i sparc) ; grep -i cpu /var/run/dmesg.boot ) | head -n 1) 2> /dev/null`
- cputype=`echo "$cputype" | tr -d ' -' |tr $as_cr_LETTERS $as_cr_letters`
- case $cputype in
- *ultrasparciv*) ax_gcc_arch="ultrasparc4 ultrasparc3 ultrasparc v9" ;;
- *ultrasparciii*) ax_gcc_arch="ultrasparc3 ultrasparc v9" ;;
- *ultrasparc*) ax_gcc_arch="ultrasparc v9" ;;
- *supersparc*|*tms390z5[05]*) ax_gcc_arch="supersparc v8" ;;
- *hypersparc*|*rt62[056]*) ax_gcc_arch="hypersparc v8" ;;
- *cypress*) ax_gcc_arch=cypress ;;
- esac ;;
-
- alphaev5) ax_gcc_arch=ev5 ;;
- alphaev56) ax_gcc_arch=ev56 ;;
- alphapca56) ax_gcc_arch="pca56 ev56" ;;
- alphapca57) ax_gcc_arch="pca57 pca56 ev56" ;;
- alphaev6) ax_gcc_arch=ev6 ;;
- alphaev67) ax_gcc_arch=ev67 ;;
- alphaev68) ax_gcc_arch="ev68 ev67" ;;
- alphaev69) ax_gcc_arch="ev69 ev68 ev67" ;;
- alphaev7) ax_gcc_arch="ev7 ev69 ev68 ev67" ;;
- alphaev79) ax_gcc_arch="ev79 ev7 ev69 ev68 ev67" ;;
-
- powerpc*)
- cputype=`((grep cpu /proc/cpuinfo | head -n 1 | cut -d: -f2 | cut -d, -f1 | sed 's/ //g') ; /usr/bin/machine ; /bin/machine; grep CPU /var/run/dmesg.boot | head -n 1 | cut -d" " -f2) 2> /dev/null`
- cputype=`echo $cputype | sed -e 's/ppc//g;s/ *//g'`
- case $cputype in
- *750*) ax_gcc_arch="750 G3" ;;
- *740[0-9]*) ax_gcc_arch="$cputype 7400 G4" ;;
- *74[4-5][0-9]*) ax_gcc_arch="$cputype 7450 G4" ;;
- *74[0-9][0-9]*) ax_gcc_arch="$cputype G4" ;;
- *970*) ax_gcc_arch="970 G5 power4";;
- *POWER4*|*power4*|*gq*) ax_gcc_arch="power4 970";;
- *POWER5*|*power5*|*gr*|*gs*) ax_gcc_arch="power5 power4 970";;
- 603ev|8240) ax_gcc_arch="$cputype 603e 603";;
- *) ax_gcc_arch=$cputype ;;
- esac
- ax_gcc_arch="$ax_gcc_arch powerpc"
- ;;
-esac
-fi # not cross-compiling
-fi # guess arch
-
-if test "x$ax_gcc_arch" != x -a "x$ax_gcc_arch" != xno; then
-for arch in $ax_gcc_arch; do
- if test "x$acx_maxopt_portable" = xyes; then # if we require portable code
- flags="-mtune=$arch"
- # -mcpu=$arch and m$arch generate nonportable code on every arch except
- # x86. And some other arches (e.g. Alpha) don't accept -mtune. Grrr.
- case $host_cpu in i*86|x86_64*) flags="$flags -mcpu=$arch -m$arch";; esac
- else
- flags="-march=$arch -mcpu=$arch -m$arch"
- fi
- for flag in $flags; do
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $flag" >&5
-$as_echo_n "checking whether C compiler accepts $flag... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$flag"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$flag" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- ax_cv_gcc_archflag=$flag; break
-else
- :
-fi
-
- done
- test "x$ax_cv_gcc_archflag" = xunknown || break
-done
-fi
-
-fi # $GCC=yes
-
-fi
-
-{ $as_echo "$as_me:$LINENO: checking for gcc architecture flag" >&5
-$as_echo_n "checking for gcc architecture flag... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $ax_cv_gcc_archflag" >&5
-$as_echo "$ax_cv_gcc_archflag" >&6; }
-if test "x$ax_cv_gcc_archflag" = xunknown; then
- :
-else
- CFLAGS="$CFLAGS $ax_cv_gcc_archflag"
-fi
-
- ;;
- esac
-
- if test -z "$CFLAGS"; then
- echo ""
- echo "********************************************************"
- echo "* WARNING: Don't know the best CFLAGS for this system *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "* (otherwise, a default of CFLAGS=-O3 will be used) *"
- echo "********************************************************"
- echo ""
- CFLAGS="-O3"
- fi
-
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts $CFLAGS" >&5
-$as_echo_n "checking whether C compiler accepts $CFLAGS... " >&6; }
-ax_save_FLAGS=$CFLAGS
- CFLAGS="$CFLAGS"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- eval `$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-eval ax_check_compiler_flags=$`$as_echo "ax_cv_c_flags_$CFLAGS" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- :
-else
-
- echo ""
- echo "********************************************************"
- echo "* WARNING: The guessed CFLAGS don't seem to work with *"
- echo "* your compiler. *"
- echo "* Use ./configure CFLAGS=... to specify your own flags *"
- echo "********************************************************"
- echo ""
- CFLAGS=""
-
-fi
-
-
-fi
-
- ac_test_CFLAGS="$sre_save_ac_test_cflags"
- # That was a workaround. AX_CC_MAXOPT apparently thinks that
- # $ac_test_CFLAGS only gets set if ${CFLAGS} was set by the
- # user (in the environment), but that's not so; it gets set
- # by AC_PROG_CC. Instead of rewriting AX_CC_MAXOPT, we fool
- # it.
-fi
-
-# Figure out how to generate PIC code for shared libraries
-# This sets @PIC_FLAGS@ output variable for Easel.
-
-# Check whether --enable-pic was given.
-if test "${enable_pic+set}" = set; then
- enableval=$enable_pic; enable_pic="$enableval"
- test "x$enable_pic" = x && enable_pic=auto
-else
- enable_pic=auto
-fi
-
-# disable PIC by default for static builds
-if test "$enable_pic" = auto && test "$enable_static" = yes; then
- enable_pic=no
-fi
-# if PIC hasn't been explicitly disabled, try to figure out the flags
-if test "$enable_pic" != no; then
- { $as_echo "$as_me:$LINENO: checking for $CC option to produce PIC" >&5
-$as_echo_n "checking for $CC option to produce PIC... " >&6; }
- # allow the user's flags to override
- if test "x$PIC_FLAGS" = x; then
- # see if we're using GCC
- if test "x$GCC" = xyes; then
- case "$host_os" in
- aix*|beos*|cygwin*|irix5*|irix6*|osf3*|osf4*|osf5*)
- # PIC is the default for these OSes.
- ;;
- mingw*|os2*|pw32*)
- # This hack is so that the source file can tell whether
- # it is being built for inclusion in a dll (and should
- # export symbols for example).
- PIC_FLAGS="-DDLL_EXPORT"
- ;;
- darwin*|rhapsody*)
- # PIC is the default on this platform
- # Common symbols not allowed in MH_DYLIB files
- PIC_FLAGS="-fno-common"
- ;;
- hpux*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
- # but not for PA HP-UX.
- case $host_cpu in
- hppa*64*|ia64*)
- ;;
- *)
- PIC_FLAGS="-fPIC"
- ;;
- esac
- ;;
- *)
- # Everyone else on GCC uses -fPIC
- PIC_FLAGS="-fPIC"
- ;;
- esac
- else # !GCC
- case "$host_os" in
- hpux9*|hpux10*|hpux11*)
- # PIC is the default for IA64 HP-UX and 64-bit HP-UX,
- # but not for PA HP-UX.
- case "$host_cpu" in
- hppa*64*|ia64*)
- # +Z the default
- ;;
- *)
- PIC_FLAGS="+Z"
- ;;
- esac
- ;;
- linux*|k*bsd*-gnu)
- case `basename "$CC"` in
- icc*|ecc*|ifort*)
- PIC_FLAGS="-KPIC"
- ;;
- pgcc*|pgf77*|pgf90*|pgf95*)
- # Portland Group compilers (*not* the Pentium gcc
- # compiler, which looks to be a dead project)
- PIC_FLAGS="-fpic"
- ;;
- ccc*)
- # All Alpha code is PIC.
- ;;
- xl*)
- # IBM XL C 8.0/Fortran 10.1 on PPC
- PIC_FLAGS="-qpic"
- ;;
- *)
- case `$CC -V 2>&1 | sed 5q` in
- *Sun\ C*|*Sun\ F*)
- # Sun C 5.9 or Sun Fortran
- PIC_FLAGS="-KPIC"
- ;;
- esac
- esac
- ;;
- solaris*)
- PIC_FLAGS="-KPIC"
- ;;
- sunos4*)
- PIC_FLAGS="-PIC"
- ;;
- esac
- fi # GCC
- fi # PIC_FLAGS
- { $as_echo "$as_me:$LINENO: result: $PIC_FLAGS" >&5
-$as_echo "$PIC_FLAGS" >&6; }
-fi
-
-
-
-# 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) { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -msse2" >&5
-$as_echo_n "checking whether C compiler accepts -msse2... " >&6; }
-if test "${ax_cv_c_flags__msse2+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-msse2"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_flags__msse2=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ax_cv_c_flags__msse2=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-fi
-
-eval ax_check_compiler_flags=$ax_cv_c_flags__msse2
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- SIMD_CFLAGS="-msse2"
-else
- impl_choice=dummy
-fi
-;;
- intel) ;;
- *) ;;
- esac
-fi
-if test "$enable_sse" = "yes" && test "$impl_choice" = dummy; then
- { { $as_echo "$as_me:$LINENO: error: SSE instructions are apparently not available; --enable-sse failed" >&5
-$as_echo "$as_me: error: SSE instructions are apparently not available; --enable-sse failed" >&2;}
- { (exit 1); exit 1; }; }
-fi
-
-# If we're using VMX/Altivec, figure out our @SIMD_CFLAGS@
-if test "$impl_choice" = "vmx"; then
- if test "x$SIMD_CFLAGS" = x; then
- if test "$GCC" = "yes"; then
- # -DFAKE__VEC__ is a workaround because gcc-3.3 does not
- # #define __VEC__ with -maltivec.
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -faltivec" >&5
-$as_echo_n "checking whether C compiler accepts -faltivec... " >&6; }
-if test "${ax_cv_c_flags__faltivec+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-faltivec"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ax_cv_c_flags__faltivec=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ax_cv_c_flags__faltivec=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- CFLAGS=$ax_save_FLAGS
-fi
-
-eval ax_check_compiler_flags=$ax_cv_c_flags__faltivec
-{ $as_echo "$as_me:$LINENO: result: $ax_check_compiler_flags" >&5
-$as_echo "$ax_check_compiler_flags" >&6; }
-if test "x$ax_check_compiler_flags" = xyes; then
- SIMD_CFLAGS="-faltivec"
-else
- { $as_echo "$as_me:$LINENO: checking whether C compiler accepts -maltivec -mabi=altivec" >&5
-$as_echo_n "checking whether C compiler accepts -maltivec -mabi=altivec... " >&6; }
-if test "${ax_cv_c_flags__maltivec__mabi_altivec+set}" = set; then
- $as_echo_n "(cached) " >&6
-else
-
- ax_save_FLAGS=$CFLAGS
- CFLAGS="-maltivec -mabi=altivec"
- cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-
-int
-main ()
-{
-
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
@@ -7949,8 +6908,9 @@ _ACEOF
fi
-# 5. Checks for libraries
-#
+################################################################
+# 6. Checks for libraries
+#################################################################
LIBGSL=
if test "x$with_gsl" != xno; then
{ $as_echo "$as_me:$LINENO: checking for gsl_expm1 in -lgsl" >&5
@@ -8044,10 +7004,101 @@ fi
fi
-# Checks for headers
-#
+# Easel stopwatch high-res timer may try to use clock_gettime,
+# which may be in librt
+{ $as_echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
+$as_echo_n "checking for library containing clock_gettime... " >&6; }
+if test "${ac_cv_search_clock_gettime+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+ ac_func_search_save_LIBS=$LIBS
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char clock_gettime ();
+int
+main ()
+{
+return clock_gettime ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' rt posix4; do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ ac_cv_search_clock_gettime=$ac_res
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext
+ if test "${ac_cv_search_clock_gettime+set}" = set; then
+ break
+fi
+done
+if test "${ac_cv_search_clock_gettime+set}" = set; then
+ :
+else
+ ac_cv_search_clock_gettime=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5
+$as_echo "$ac_cv_search_clock_gettime" >&6; }
+ac_res=$ac_cv_search_clock_gettime
+if test "$ac_res" != no; then
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+fi
+
+
+
+################################################################
+# 7. Checks for headers
+#################################################################
-# Checks for headers
# Defines HAVE_SYS_TYPES_H, HAVE_STDINT_H, etc.
{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
@@ -8567,9 +7618,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8722,9 +7773,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -8820,171 +7871,6 @@ done
-# 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
-
-
-
-for ac_header in \
- emmintrin.h\
- pmmintrin.h\
- xmmintrin.h
-
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
- # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_compile") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } && {
- test -z "$ac_c_werror_flag" ||
- test ! -s conftest.err
- } && test -s conftest.$ac_objext; then
- ac_header_compiler=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
- *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
- ac_status=$?
- grep -v '^ *+' conftest.er1 >conftest.err
- rm -f conftest.er1
- cat conftest.err >&5
- $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); } >/dev/null && {
- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- test ! -s conftest.err
- }; then
- ac_header_preproc=yes
-else
- $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
- ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So? What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
- yes:no: )
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
- ac_header_preproc=yes
- ;;
- no:yes:* )
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
- { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- ( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
-_ASBOX
- ) | sed "s/^/$as_me: WARNING: /" >&2
- ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
- $as_echo_n "(cached) " >&6
-else
- eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
- $as_echo "$as_val"'`
- if test "x$as_val" = x""yes; then
- cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
# 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
@@ -9112,9 +7998,9 @@ $as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result
{ $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
( cat <<\_ASBOX
-## ------------------------------------- ##
-## Report this to eddys at janelia.hhmi.org ##
-## ------------------------------------- ##
+## ------------------------------- ##
+## Report this to sean at eddylab.org ##
+## ------------------------------- ##
_ASBOX
) | sed "s/^/$as_me: WARNING: /" >&2
;;
@@ -9147,8 +8033,9 @@ done
CPPFLAGS="$sre_save_CPPFLAGS"
fi
-# Checks for types
-#
+################################################################
+# 8. Checks for types
+#################################################################
{ $as_echo "$as_me:$LINENO: checking whether byte ordering is bigendian" >&5
$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
@@ -9964,9 +8851,115 @@ _ACEOF
fi
-# Checks for functions, defining HAVE_FOO when foo is found
+
+################################################################
+# 9. Checks for structures - currently none
+################################################################
+
+
+################################################################
+# 10. Checks for compiler characteristics
+################################################################
+
+# __attribute__() tags on function declarations
+# HAVE_FUNC_ATTRIBUTE_NORETURN
+#
+# The clang static analyzer can't figure out that some of our
+# varargs-dependent fatal error handlers (esl_fatal(), for example)
+# cannot return. To tell it so, we take advantage of __attribute__
+# tags on function declarations, a non-ISO gcc extension, when
+# available. gcc, clang, and other gcc-like compilers support this.
+#
+# This gets set in the Easel esl_config.h.
#
+
+
+ { $as_echo "$as_me:$LINENO: checking for __attribute__((noreturn))" >&5
+$as_echo_n "checking for __attribute__((noreturn))... " >&6; }
+if test "${ax_cv_have_func_attribute_noreturn+set}" = set; then
+ $as_echo_n "(cached) " >&6
+else
+
+ cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+
+ void foo( void ) __attribute__((noreturn));
+
+int
+main ()
+{
+
+ ;
+ return 0;
+}
+
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+ (eval "$ac_link") 2>conftest.er1
+ ac_status=$?
+ grep -v '^ *+' conftest.er1 >conftest.err
+ rm -f conftest.er1
+ cat conftest.err >&5
+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ $as_test_x conftest$ac_exeext
+ }; then
+ if test -s conftest.err; then
+ ax_cv_have_func_attribute_noreturn=no
+else
+ ax_cv_have_func_attribute_noreturn=yes
+fi
+
+else
+ $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ax_cv_have_func_attribute_noreturn=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+ conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $ax_cv_have_func_attribute_noreturn" >&5
+$as_echo "$ax_cv_have_func_attribute_noreturn" >&6; }
+
+ if test yes = $ax_cv_have_func_attribute_noreturn; then
+
+cat >>confdefs.h <<_ACEOF
+#define HAVE_FUNC_ATTRIBUTE_NORETURN 1
+_ACEOF
+
+fi
+
+
+
+
+
+
+################################################################
+# 11. Checks for functions, defining HAVE_FOO when foo is found
+################################################################
+
+
for ac_func in mkstemp
do
as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
@@ -11818,9 +10811,10 @@ _ACEOF
fi
-#
-# 11. System services
-#
+
+#################################################################
+# 12. System services
+#################################################################
# Check whether --enable-largefile was given.
if test "${enable_largefile+set}" = set; then
enableval=$enable_largefile;
@@ -12179,9 +11173,14 @@ fi
-# Done.
-# Config subdirs and files (except main Makefile, which we defer)
-#
+
+################################################################
+# 13. Config subdirs and files
+################################################################
+
+# Everything except the main Makefile, which we defer;
+# we need that outside the if clause for source compilation,
+# so the Makefile gets produced for a binary distro too.
if test -d release-notes; then
ac_config_files="$ac_config_files release-notes/LICENSE.sh"
@@ -12191,8 +11190,10 @@ ac_config_files="$ac_config_files documentation/Makefile"
ac_config_files="$ac_config_files documentation/man/Makefile"
-ac_config_files="$ac_config_files documentation/userguide/Makefile"
+if test -d "documentation/userguide"; then
+ ac_config_files="$ac_config_files documentation/userguide/Makefile"
+fi
ac_config_files="$ac_config_files src/Makefile"
ac_config_files="$ac_config_files testsuite/Makefile"
@@ -12211,14 +11212,15 @@ ac_config_files="$ac_config_files easel/miniapps/Makefile"
ac_config_files="$ac_config_files easel/testsuite/Makefile"
-ac_config_files="$ac_config_files easel/documentation/Makefile"
+if test -d "easel/documentation"; then
+ ac_config_files="$ac_config_files easel/documentation/Makefile"
+fi
ac_config_files="$ac_config_files easel/Makefile"
ac_config_files="$ac_config_files libdivsufsort/Makefile"
-
# the following incantation establishes a symlink of
# src/impl_{whatever} to src/impl in the *build* directory.
# Testsuite sqc tests rely on it.
@@ -12226,7 +11228,7 @@ ac_config_links="$ac_config_links src/impl:${ac_top_build_prefix}src/impl_${impl
################################################################
-# 13. AC_OUTPUT
+# 14. AC_OUTPUT
################################################################
# remember that sneaky if statement that wraps the source
# configuration? well, it ends here.
@@ -12655,7 +11657,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by HMMER $as_me i1.1.1, which was
+This file was extended by HMMER $as_me 3.1b3, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -12718,7 +11720,7 @@ Report bugs to <bug-autoconf at gnu.org>."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-HMMER config.status i1.1.1
+HMMER config.status 3.1b3
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@@ -13559,15 +12561,12 @@ fi
#################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
-#
-# SVN $Id: configure.ac 4709 2014-07-22 13:12:14Z nawrockie $
-# SVN $URL$
# xref autoconf macro archive: //www.gnu.org/software/ac-archive/
#################################################################
diff --git a/hmmer/configure.ac b/hmmer/configure.ac
index 3237b88..600d3b0 100644
--- a/hmmer/configure.ac
+++ b/hmmer/configure.ac
@@ -1,57 +1,72 @@
-# Process this file with autoconf to produce the HMMER configure script.
+# You process this file with autoconf to produce the HMMER configure script.
#
# This is synchronized with Easel's configure script, so that HMMER
# configures Easel in addition to itself. This saves having to do a
-# separate ./configure in Easel. That means that everything that
+# separate ./configure in Easel. It also means that everything that
# appears in Easel's configure script must also appear here.
#
-# reminders to save re-reading autoconf manual for the n'th time:
-# output variables:
+# Wee reminders to save re-reading autoconf manual for the n'th time:
+# Output variables:
# - are defined here as normal shell variables, e.g. FOO="my string"
# - are made into output variables by calling AC_SUBST(FOO)
-# - any occurrence of @FOO@ in an output file is then substituted
-# I think this only happens in files we assign w/ AC_CONFIG_FILES;
-# that's the Makefile.in's.
+# - any occurrence of @FOO@ in an output file is substituted, for
+# output files assigned w/ AC_CONFIG_FILES (such as Makefile.in's).
#
# C preprocessor symbols:
# - are defined here by calling AC_DEFINE(FOO) or AC_DEFINE(FOO, [42])
# - then #undef FOO in easel.h.in becomes #define FOO, #define FOO 42
-# I think this only happens in header files that we assign
-# w/ AC_CONFIG_HEADERS -- which means, easel.h.in
+# in header files assigned w/ AC_CONFIG_HEADERS (such as p7_config.h.in)
#
-# GNU recommends the following order:
-# 1. autoconf requirements
+# Contents:
+# 1. Autoconf requirements
# 2. AC_INIT
-# 3. info on the package
-# 4. checks for programs
-# 5. checks for libraries
-# 6. checks for header files
-# 7. checks for types
-# 8. checks for structures
-# 9. checks for compiler characteristics
-# 10. checks for library functions
-# 11. checks for system services
-# 12. AC_CONFIG_FILES
-# 13. AC_OUTPUT
+# 3. Info on the package
+# 4. Process ./configure command line
+# 5. Checks for programs, including ${CC}, ${CFLAGS}
+# 6. Checks for libraries
+# 7. Checks for header files, including SIMD vectorization (SSE)
+# 8. Checks for types
+# 9. Checks for structures
+# 10. Checks for compiler characteristics
+# 11. Checks for library functions
+# 12. checks for system services
+# 13. AC_CONFIG_FILES
+# 14. AC_OUTPUT
+################################################################
+# 1. Autoconf requirements
+################################################################
+
# Autoconf 2.61 has a bug in AC_FUNC_FSEEKO; don't use it.
AC_PREREQ(2.63)
-AC_INIT(HMMER, i1.1.1, eddys at janelia.hhmi.org, hmmer)
+
+
+
+################################################################
+# 2. AC_INIT
+################################################################
+
+AC_INIT(HMMER, 3.1b3, sean at eddylab.org, hmmer)
AC_MSG_NOTICE([Configuring HMMER for your system.])
# remember if the user is overriding CFLAGS
if test x"$CFLAGS" = x; then
sre_cflags_env_set=no
+else
+ sre_cflags_env_set=yes
fi
+
+
################################################################
# 3. Info on the package
+################################################################
#
# The four AC_INIT args set these output variables and preprocessor symbols:
# PACKAGE_NAME <package> e.g. "HMMER"
# PACKAGE_VERSION <version> e.g. "3.0"
-# PACKAGE_BUGREPORT <bug-report> e.g. "eddys at janelia.hhmi.org"
+# PACKAGE_BUGREPORT <bug-report> e.g. "sean at eddylab.org"
# PACKAGE_TARNAME <tarname> e.g. "hmmer"
# From them, it derives one more:
# PACKAGE_STRING <package> <version>, e.g. "HMMER 3.0"
@@ -68,18 +83,18 @@ fi
# to use HMMER as a library inside other packages, with no name clashes.
################################################################
-HMMER_DATE="July 2014"
-HMMER_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-HMMER_LICENSE="Freely distributed under the GNU General Public License (GPLv3)."
+HMMER_DATE="July 2016"
+HMMER_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+HMMER_LICENSE="Freely distributed under the BSD open source license."
HMMER_VERSION=$PACKAGE_VERSION
HMMER_URL="http://hmmer.org/"
HMMER_ESLDIR="easel"
HMMER_SADIR="libdivsufsort"
-EASEL_DATE="July 2014"
-EASEL_COPYRIGHT="Copyright (C) 2014 Howard Hughes Medical Institute."
-EASEL_LICENSE="Freely distributed under the Janelia Farm Software License."
-EASEL_VERSION="$PACKAGE_VERSION"
+EASEL_DATE="July 2016"
+EASEL_COPYRIGHT="Copyright (C) 2016 Howard Hughes Medical Institute."
+EASEL_LICENSE="Freely distributed under the BSD open source license."
+EASEL_VERSION="0.43"
EASEL_URL="http://bioeasel.org/"
# Output variables (AC_OUTPUT replaces @var@ in input files, such as Makefiles)
@@ -136,7 +151,7 @@ AC_MSG_NOTICE([Full HMMER source distribution - using full configuration])
################################################################
-# Process the ./configure command line
+# 4. Process the ./configure command line
################################################################
# --enable-debugging - set basic debugging (level 0)
@@ -337,10 +352,11 @@ fi
################################################################
-# Checks for programs, including choice of compiler ${CC} and ${CFLAGS}.
-#
+# 5. Checks for programs, including choice of compiler ${CC} and ${CFLAGS}.
+################################################################
AC_PROG_CC
AC_PROG_INSTALL
+
# MPI : set @CC@ to mpicc, sets @MPILIBS@, defines HAVE_MPI.
if test "$enable_mpi" = "yes"; then
ACX_MPI([AC_DEFINE(HAVE_MPI)
@@ -350,35 +366,36 @@ if test "$enable_mpi" = "yes"; then
CC=$MPICC
fi
AC_PROG_CPP
-AX_COMPILER_VENDOR
+
# AC_PROG_CC_STDC wants to append -c99 to icc; icc doesn't like this.
+AX_COMPILER_VENDOR
if test "$ax_cv_c_compiler_vendor" != "intel"; then
AC_PROG_CC_STDC
fi
AC_PROG_RANLIB
AC_PATH_PROG([AR], [ar], [:], [$PATH:/usr/ccs/bin:/usr/xpg4/bin])
+
+# CHECK_GNU_MAKE sets EXEC_DEPENDENCY for SYSV vs. GNU make,
+# supporting Makefile lines of ${PROGS}: ${EXEC_DEPENDENCY}
CHECK_GNU_MAKE
-# Select our optimization level in CFLAGS.
+
+# If the base $CFLAGS isn't already set, select what it should be.
+# We've used AX_CC_MAXOPT in the past (from FFTW), but it's
+# superaggressive and problematic in many respects. Use -O3 instead.
+#
if test "$enable_debugging" != "no"; then
AC_DEFINE(p7_DEBUGGING, 1)
if test "$GCC" = "yes" && test "$sre_cflags_env_set" = "no"; then
CFLAGS="-g -Wall"
fi
else
- sre_save_ac_test_cflags="$ac_test_CFLAGS"
if test "$sre_cflags_env_set" = "no"; then
- ac_test_CFLAGS=""
+ CFLAGS="-O3"
fi
- AX_CC_MAXOPT
- ac_test_CFLAGS="$sre_save_ac_test_cflags"
- # That was a workaround. AX_CC_MAXOPT apparently thinks that
- # $ac_test_CFLAGS only gets set if ${CFLAGS} was set by the
- # user (in the environment), but that's not so; it gets set
- # by AC_PROG_CC. Instead of rewriting AX_CC_MAXOPT, we fool
- # it.
fi
+
# Figure out how to generate PIC code for shared libraries
# This sets @PIC_FLAGS@ output variable for Easel.
ESL_PIC_FLAGS
@@ -567,8 +584,9 @@ else
AC_DEFINE(HAVE_GZIP)
fi
-# 5. Checks for libraries
-#
+################################################################
+# 6. Checks for libraries
+#################################################################
LIBGSL=
AS_IF([test "x$with_gsl" != xno],
[AC_CHECK_LIB([gsl], [gsl_expm1],
@@ -583,10 +601,15 @@ AS_IF([test "x$with_gsl" != xno],
[-lgslcblas]
)])
-# Checks for headers
-#
+# Easel stopwatch high-res timer may try to use clock_gettime,
+# which may be in librt
+AC_SEARCH_LIBS(clock_gettime, [rt posix4])
+
+
+################################################################
+# 7. Checks for headers
+#################################################################
-# Checks for headers
# Defines HAVE_SYS_TYPES_H, HAVE_STDINT_H, etc.
AC_CHECK_HEADERS([ \
endian.h\
@@ -595,32 +618,19 @@ AC_CHECK_HEADERS([ \
unistd.h\
sys/types.h\
netinet/in.h
-])
+])
# Check for sysctl.h separately. On OpenBSD, it requires
# <sys/param.h> and autoconf needs special logic to deal w. this as
# follows.
AC_CHECK_HEADERS([sys/param.h])
-AC_CHECK_HEADERS([sys/sysctl.h], [], [],
+AC_CHECK_HEADERS([sys/sysctl.h], [], [],
[[#ifdef HAVE_SYS_PARAM_H
#include <sys/param.h>
#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
@@ -633,8 +643,9 @@ if test "$impl_choice" = "vmx"; then
CPPFLAGS="$sre_save_CPPFLAGS"
fi
-# Checks for types
-#
+################################################################
+# 8. Checks for types
+#################################################################
AC_C_BIGENDIAN
AC_TYPE_UINT8_T
AC_TYPE_UINT16_T
@@ -642,8 +653,34 @@ AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_OFF_T
-# Checks for functions, defining HAVE_FOO when foo is found
+
+################################################################
+# 9. Checks for structures - currently none
+################################################################
+
+
+################################################################
+# 10. Checks for compiler characteristics
+################################################################
+
+# __attribute__() tags on function declarations
+# HAVE_FUNC_ATTRIBUTE_NORETURN
#
+# The clang static analyzer can't figure out that some of our
+# varargs-dependent fatal error handlers (esl_fatal(), for example)
+# cannot return. To tell it so, we take advantage of __attribute__
+# tags on function declarations, a non-ISO gcc extension, when
+# available. gcc, clang, and other gcc-like compilers support this.
+#
+# This gets set in the Easel esl_config.h.
+#
+AX_GCC_FUNC_ATTRIBUTE(noreturn)
+
+
+################################################################
+# 11. Checks for functions, defining HAVE_FOO when foo is found
+################################################################
+
AC_CHECK_FUNCS(mkstemp)
AC_CHECK_FUNCS(popen)
AC_CHECK_FUNCS(strcasecmp)
@@ -661,22 +698,30 @@ AC_CHECK_FUNCS(htons, , AC_CHECK_LIB(socket, htons))
AC_CHECK_FUNCS(htonl, , AC_CHECK_LIB(socket, htonl))
AC_FUNC_FSEEKO
-#
-# 11. System services
-#
+
+#################################################################
+# 12. System services
+#################################################################
AC_SYS_LARGEFILE
-# Done.
-# Config subdirs and files (except main Makefile, which we defer)
-#
+
+################################################################
+# 13. Config subdirs and files
+################################################################
+
+# Everything except the main Makefile, which we defer;
+# we need that outside the if clause for source compilation,
+# so the Makefile gets produced for a binary distro too.
if test -d release-notes; then
AC_CONFIG_FILES(release-notes/LICENSE.sh)
fi
AC_CONFIG_FILES([documentation/Makefile])
AC_CONFIG_FILES([documentation/man/Makefile])
-AC_CONFIG_FILES([documentation/userguide/Makefile])
+if test -d "documentation/userguide"; then
+ AC_CONFIG_FILES([documentation/userguide/Makefile])
+fi
AC_CONFIG_FILES([src/Makefile])
AC_CONFIG_FILES([testsuite/Makefile])
AC_CONFIG_FILES([profmark/Makefile])
@@ -686,18 +731,19 @@ AC_CONFIG_HEADERS([easel/esl_config.h])
AC_CONFIG_HEADERS([libdivsufsort/divsufsort.h])
AC_CONFIG_FILES([easel/miniapps/Makefile])
AC_CONFIG_FILES([easel/testsuite/Makefile])
-AC_CONFIG_FILES([easel/documentation/Makefile])
+if test -d "easel/documentation"; then
+ AC_CONFIG_FILES([easel/documentation/Makefile])
+fi
AC_CONFIG_FILES([easel/Makefile])
AC_CONFIG_FILES([libdivsufsort/Makefile])
-
# the following incantation establishes a symlink of
# src/impl_{whatever} to src/impl in the *build* directory.
# Testsuite sqc tests rely on it.
AC_CONFIG_LINKS([src/impl:${ac_top_build_prefix}src/impl_${impl_choice}])
################################################################
-# 13. AC_OUTPUT
+# 14. AC_OUTPUT
################################################################
# remember that sneaky if statement that wraps the source
# configuration? well, it ends here.
@@ -726,15 +772,12 @@ fi
#################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
-#
-# SVN $Id: configure.ac 4709 2014-07-22 13:12:14Z nawrockie $
-# SVN $URL$
# xref autoconf macro archive: //www.gnu.org/software/ac-archive/
#################################################################
diff --git a/hmmer/documentation/Makefile.in b/hmmer/documentation/Makefile.in
index 5bd81e1..09a0c7a 100644
--- a/hmmer/documentation/Makefile.in
+++ b/hmmer/documentation/Makefile.in
@@ -23,24 +23,31 @@ uninstall:
${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} uninstall
clean:
- ${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} clean
+#Use 'ifneq' instead of 'test -e' because the '+@' in QUIET_SUBDIR0 can't
+#be passed to the shell. Note that ifneq breaks if indented.
+ifneq (,$(wildcard userguide/.))
${QUIET_SUBDIR0}userguide ${QUIET_SUBDIR1} clean
+endif
+ ${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} clean;
-rm -f *~
distclean:
- ${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} distclean
+#See above for explanation of 'ifneq' usage
+ifneq (,$(wildcard userguide/.))
${QUIET_SUBDIR0}userguide ${QUIET_SUBDIR1} distclean
+endif
+ ${QUIET_SUBDIR0}man ${QUIET_SUBDIR1} distclean
-rm -f Makefile
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/documentation/Makefile.in $
-# SVN $Id: Makefile.in 3649 2011-08-11 15:12:30Z eddys $
-################################################################
\ No newline at end of file
+# SVN $URL$
+# SVN $Id$
+################################################################
diff --git a/hmmer/documentation/man/Makefile.in b/hmmer/documentation/man/Makefile.in
index 3d92f48..7dacae5 100644
--- a/hmmer/documentation/man/Makefile.in
+++ b/hmmer/documentation/man/Makefile.in
@@ -26,13 +26,19 @@ MANS = hmmer\
hmmconvert\
hmmemit\
hmmfetch\
+ hmmlogo\
+ hmmpgmd\
hmmpress\
hmmscan\
hmmsearch\
hmmsim\
hmmstat\
jackhmmer\
- phmmer
+ makehmmerdb\
+ phmmer\
+ nhmmer\
+ nhmmscan\
+ alimask
.PHONY: install uninstall clean distclean
@@ -55,13 +61,13 @@ distclean:
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/documentation/man/Makefile.in $
-# SVN $Id: Makefile.in 3649 2011-08-11 15:12:30Z eddys $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/documentation/man/alimask.man b/hmmer/documentation/man/alimask.man
new file mode 100644
index 0000000..09d7aff
--- /dev/null
+++ b/hmmer/documentation/man/alimask.man
@@ -0,0 +1,323 @@
+.TH "alimask" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
+
+.SH NAME
+alimask - Add mask line to a multiple sequence alignment
+
+.SH SYNOPSIS
+.B alimask
+.I [options]
+.I <msafile>
+.I <postmsafile>
+
+
+.SH DESCRIPTION
+
+.PP
+.B alimask
+is used to apply a mask line to a multiple sequence
+alignment, based on provided alignment or model coordinates.
+When
+.B hmmbuild
+receives a masked alignment as input, it produces a profile
+model in which the emission probabilities at masked positions
+are set to match the background frequency, rather than being
+set based on observed frequencies in the alignment.
+Position-specific insertion and deletion rates are not
+altered, even in masked regions.
+.B alimask
+autodetects input format, and produces masked alignments
+in Stockholm format.
+.I <msafile>
+may contain only one sequence alignment.
+
+.PP
+A common motivation for masking a region in an alignment is
+that the region contains a simple tandem repeat that is
+observed to cause an unacceptably high rate of false positive
+hits.
+
+.PP
+In the simplest case, a mask range is given in coordinates
+relative to the input alignment, using
+.BI --alirange " <s>".
+However it is more often the case that the region to be
+masked has been identified in coordinates relative to
+the profile model (e.g. based on recognizing a simple
+repeat pattern in false hit alignments or in the HMM logo).
+Not all alignment columns are converted to match state
+positions in the profile (see the
+.I --symfrac
+flag for
+.B hmmbuild
+for discussion), so model positions do not necessarily match
+up to alignment column positions.
+To remove the burden of converting model positions to
+alignment positions,
+.B alimask
+accepts the mask range input in model coordinates as well,
+using
+.BI --modelrange " <s>".
+When using this flag,
+.I alimask
+determines which alignment positions would be identified by
+.B hmmbuild
+as match states, a process that requires that all
+.B hmmbuild
+flags impacting that decision be supplied to
+.BR alimask .
+It is for this reason that many of the
+.B hmmbuild
+flags are also used by
+.BR alimask .
+
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Help; print a brief reminder of command line usage and all available
+options.
+
+.TP
+.BI -o " <f>"
+Direct the summary output to file
+.IR <f> ,
+rather than to
+.IR stdout .
+
+
+.SH OPTIONS FOR SPECIFYING MASK RANGE
+
+A single mask range is given as a dash-separated pair, like
+.I "--modelrange 10-20"
+and multiple ranges may be submitted as a comma-separated list,
+.IR "--modelrange 10-20,30-42" .
+
+
+.TP
+.BI --modelrange " <s>"
+Supply the given range(s) in model coordinates.
+
+.TP
+.BI --alirange " <s>"
+Supply the given range(s) in alignment coordinates.
+
+.TP
+.B --apendmask
+Add to the existing mask found with the alignment.
+The default is to overwrite any existing mask.
+
+.TP
+.BI --model2ali " <s>"
+Rather than actually produce the masked alignment, simply
+print model range(s) corresponding to input alignment
+range(s).
+
+.TP
+.BI --ali2model " <s>"
+Rather than actually produce the masked alignment, simply
+print alignment range(s) corresponding to input model
+range(s).
+
+
+.SH OPTIONS FOR SPECIFYING THE ALPHABET
+
+The alphabet type (amino, DNA, or RNA) is autodetected by default, by
+looking at the composition of the
+.IR msafile .
+Autodetection is normally quite reliable, but occasionally alphabet
+type may be ambiguous and autodetection can fail (for instance, on
+tiny toy alignments of just a few residues). To avoid this, or to
+increase robustness in automated analysis pipelines, you may specify
+the alphabet type of
+.I msafile
+with these options.
+
+.TP
+.B --amino
+Specify that all sequences in
+.I msafile
+are proteins.
+
+.TP
+.B --dna
+Specify that all sequences in
+.I msafile
+are DNAs.
+
+.TP
+.B --rna
+Specify that all sequences in
+.I msafile
+are RNAs.
+
+
+
+.SH OPTIONS CONTROLLING PROFILE CONSTRUCTION
+
+These options control how consensus columns are defined in an alignment.
+
+.TP
+.B --fast
+Define consensus columns as those that have a fraction >=
+.B symfrac
+of residues as opposed to gaps. (See below for the
+.B --symfrac
+option.) This is the default.
+
+.TP
+.B --hand
+Define consensus columns in next profile using reference annotation to
+the multiple alignment.
+This allows you to define any consensus columns you like.
+
+.TP
+.BI --symfrac " <x>"
+Define the residue fraction threshold necessary to define a
+consensus column when using the
+.B --fast
+option. The default is 0.5. The symbol fraction in each column
+is calculated after taking relative sequence weighting into account,
+and ignoring gap characters corresponding to ends of sequence
+fragments
+(as opposed to internal insertions/deletions).
+Setting this to 0.0 means that every alignment column will be assigned
+as consensus, which may be useful in some cases. Setting it to 1.0
+means that only columns that include 0 gaps (internal
+insertions/deletions) will be assigned as consensus.
+
+.TP
+.BI --fragthresh " <x>"
+We only want to count terminal gaps as deletions if the aligned
+sequence is known to be full-length, not if it is a fragment (for
+instance, because only part of it was sequenced). HMMER uses a simple
+rule to infer fragments: if the sequence length L is less than
+or equal to a fraction
+.I <x>
+times the alignment length in columns,
+then the sequence is handled as a fragment. The default is 0.5.
+Setting
+.BI --fragthresh 0
+will define no (nonempty) sequence as a fragment; you might want to do
+this if you know you've got a carefully curated alignment of full-length
+sequences.
+Setting
+.BI --fragthresh 1
+will define all sequences as fragments; you might want to do this if
+you know your alignment is entirely composed of fragments, such as
+translated short reads in metagenomic shotgun data.
+
+
+.SH OPTIONS CONTROLLING RELATIVE WEIGHTS
+
+HMMER uses an ad hoc sequence weighting algorithm to downweight
+closely related sequences and upweight distantly related ones. This
+has the effect of making models less biased by uneven phylogenetic
+representation. For example, two identical sequences would typically
+each receive half the weight that one sequence would. These options
+control which algorithm gets used.
+
+.TP
+.B --wpb
+Use the Henikoff position-based sequence weighting scheme [Henikoff
+and Henikoff, J. Mol. Biol. 243:574, 1994]. This is the default.
+
+.TP
+.B --wgsc
+Use the Gerstein/Sonnhammer/Chothia weighting algorithm [Gerstein et
+al, J. Mol. Biol. 235:1067, 1994].
+
+.TP
+.B --wblosum
+Use the same clustering scheme that was used to weight data in
+calculating BLOSUM subsitution matrices [Henikoff and Henikoff,
+Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage
+clustered at an identity threshold (default 0.62; see
+.IR --wid )
+and within each cluster of c sequences, each sequence gets relative
+weight 1/c.
+
+.TP
+.B --wnone
+No relative weights. All sequences are assigned uniform weight.
+
+.TP
+.BI --wid " <x>"
+Sets the identity threshold used by single-linkage clustering when
+using
+.IR --wblosum .
+Invalid with any other weighting scheme. Default is 0.62.
+
+
+
+
+
+.SH OTHER OPTIONS
+
+.TP
+.BI --informat " <s>"
+Declare that the input
+.I msafile
+is in format
+.IR <s> .
+Currently the accepted multiple alignment sequence file formats
+include Stockholm, Aligned FASTA, Clustal, NCBI PSI-BLAST, PHYLIP,
+Selex, and UCSC SAM A2M. Default is to autodetect the format of
+the file.
+
+
+.TP
+.BI --seed " <n>"
+Seed the random number generator with
+.IR <n> ,
+an integer >= 0.
+If
+.I <n>
+is nonzero, any stochastic simulations will be reproducible; the same
+command will give the same results.
+If
+.I <n>
+is 0, the random number generator is seeded arbitrarily, and
+stochastic simulations will vary from run to run of the same command.
+The default seed is 42.
+
+
+
+.SH SEE ALSO
+
+See
+.B hmmer(1)
+for a master man page with a list of all the individual man pages
+for programs in the HMMER package.
+
+.PP
+For complete documentation, see the user guide that came with your
+HMMER distribution (Userguide.pdf); or see the HMMER web page
+(@HMMER_URL@).
+
+
+
+.SH COPYRIGHT
+
+.nf
+ at HMMER_COPYRIGHT@
+ at HMMER_LICENSE@
+.fi
+
+For additional information on copyright and licensing, see the file
+called COPYRIGHT in your HMMER source distribution, or see the HMMER
+web page
+(@HMMER_URL@).
+
+
+.SH AUTHOR
+
+.nf
+Eddy/Rivas Laboratory
+Janelia Farm Research Campus
+19700 Helix Drive
+Ashburn VA 20147 USA
+http://eddylab.org
+.fi
+
diff --git a/hmmer/documentation/man/hmmbuild.man b/hmmer/documentation/man/hmmbuild.man
index ee2b66d..b5368ab 100644
--- a/hmmer/documentation/man/hmmbuild.man
+++ b/hmmer/documentation/man/hmmbuild.man
@@ -16,7 +16,7 @@ For each multiple sequence alignment in
.I <msafile>
build a profile HMM
and save it to a new file
-.I <hmmfile_out>.
+.IR <hmmfile_out> .
.PP
@@ -29,7 +29,7 @@ To use '-', you must also specify the
alignment file format with
.BI --informat " <s>",
as in
-.B --informat stockholm
+.B "--informat stockholm"
(because of a current limitation in our implementation,
MSA file formats cannot be autodetected in a nonrewindable
input stream.)
@@ -37,7 +37,7 @@ input stream.)
.PP
.I <hmmfile_out>
may not be '-'
-.I (stdout),
+.IR (stdout) ,
because sending the HMM file to
.I stdout
would conflict with the other text
@@ -58,12 +58,12 @@ options.
.TP
.BI -n " <s>"
Name the new profile
-.I <s>.
+.IR <s> .
The default is to use the name of the alignment (if one is present in
the
-.I msafile,
+.IR msafile ,
or, failing that, the name of the
-.I hmmfile.
+.IR hmmfile .
If
.I msafile
contains more than one alignment,
@@ -77,9 +77,9 @@ annotated in the
.TP
.BI -o " <f>"
Direct the summary output to file
-.I <f>,
+.IR <f> ,
rather than to
-.I stdout.
+.IR stdout .
.TP
.BI -O " <f>"
@@ -99,7 +99,7 @@ transitions between insert and delete states.
The alphabet type (amino, DNA, or RNA) is autodetected by default, by
looking at the composition of the
-.I msafile.
+.IR msafile .
Autodetection is normally quite reliable, but occasionally alphabet
type may be ambiguous and autodetection can fail (for instance, on
tiny toy alignments of just a few residues). To avoid this, or to
@@ -166,8 +166,9 @@ insertions/deletions) will be assigned as consensus.
We only want to count terminal gaps as deletions if the aligned
sequence is known to be full-length, not if it is a fragment (for
instance, because only part of it was sequenced). HMMER uses a simple
-rule to infer fragments: if the sequence length L is less than
-or equal to a fraction
+rule to infer fragments: if the range of a sequence in the alignment
+(the number of alignment columns between the first and last positions
+of the sequence) is less than or equal to a fraction
.I <x>
times the alignment length in columns,
then the sequence is handled as a fragment. The default is 0.5.
@@ -208,7 +209,7 @@ Use the same clustering scheme that was used to weight data in
calculating BLOSUM subsitution matrices [Henikoff and Henikoff,
Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage
clustered at an identity threshold (default 0.62; see
-.I --wid)
+.IR --wid )
and within each cluster of c sequences, each sequence gets relative
weight 1/c.
@@ -220,7 +221,7 @@ No relative weights. All sequences are assigned uniform weight.
.BI --wid " <x>"
Sets the identity threshold used by single-linkage clustering when
using
-.I --wblosum.
+.IR --wblosum .
Invalid with any other weighting scheme. Default is 0.62.
@@ -230,7 +231,7 @@ Invalid with any other weighting scheme. Default is 0.62.
After relative weights are determined, they are normalized to sum to a
total effective sequence number,
-.I eff_nseq.
+.IR eff_nseq .
This number may be the actual number of sequences in the alignment,
but it is almost always smaller than that.
The default entropy weighting method
@@ -242,20 +243,20 @@ relative entropy is controlled by a two-parameter function, where the
two parameters are settable with
.I --ere
and
-.I --esigma.
+.IR --esigma .
.TP
.B --eent
Adjust effective sequence number to achieve a specific relative entropy
per position (see
-.I --ere).
+.IR --ere ).
This is the default.
.TP
.B --eclust
Set effective sequence number to the number of single-linkage clusters
at a specific identity threshold (see
-.I --eid).
+.IR --eid ).
This option is not recommended; it's for experiments evaluating
how much better
.B --eent
@@ -271,16 +272,17 @@ may be useful for short models.
.TP
.BI --eset " <x>"
Explicitly set the effective sequence number for all models to
-.I <x>.
+.IR <x> .
.TP
.BI --ere " <x>"
Set the minimum relative entropy/position target to
-.I <x>.
+.IR <x> .
Requires
-.B --eent.
-Default depends on the sequence alphabet; for protein
-sequences, it is 0.59 bits/position.
+.BR --eent .
+Default depends on the sequence alphabet. For protein
+sequences, it is 0.59 bits/position; for nucleotide
+sequences, it is 0.45 bits/position.
.TP
.BI --esigma " <x>"
@@ -307,10 +309,12 @@ Default mixture Dirichlet prior parameters for protein models and for
nucleic acid (RNA and DNA) models are built in. The following options
allow you to override the default priors.
+.TP
.B --pnone
Don't use any priors. Probability parameters will simply be the
observed frequencies, after relative sequence weighting.
+.TP
.B --plaplace
Use a Laplace +1 prior in place of the default mixture Dirichlet
prior.
@@ -362,28 +366,39 @@ the location parameter tau for Forward evalues. Default is 0.04.
.SH OTHER OPTIONS
.TP
-.B --mpi
-Run as a parallel MPI program. Each alignment is assigned to a MPI
-worker node for construction. (Therefore, the maximum parallelization
-cannot exceed the number of alignments in the input
-.I msafile.)
-This is useful when building large profile libraries. This option is
-only available if optional MPI capability was enabled at compile-time.
+.BI --cpu " <n>"
+Set the number of parallel worker threads to
+.IR <n> .
+By default, HMMER sets this to the number of CPU cores it detects in
+your machine - that is, it tries to maximize the use of your available
+processor cores. Setting
+.I <n>
+higher than the number of available cores is of little if any value,
+but you may want to set it to something less. You can also control
+this number by setting an environment variable,
+.IR HMMER_NCPU .
+
+This option is only available if HMMER was compiled with POSIX threads
+support. This is the default, but it may have been turned off for your
+site or machine for some reason.
+
.TP
.BI --informat " <s>"
Declare that the input
.I msafile
is in format
-.I <s>.
-Currently the accepted multiple alignment sequence file formats only
-include Stockholm and SELEX. Default is to autodetect the format of
+.IR <s> .
+Currently the accepted multiple alignment sequence file formats
+include Stockholm, Aligned FASTA, Clustal, NCBI PSI-BLAST, PHYLIP,
+Selex, and UCSC SAM A2M. Default is to autodetect the format of
the file.
+
.TP
.BI --seed " <n>"
Seed the random number generator with
-.I <n>,
+.IR <n> ,
an integer >= 0.
If
.I <n>
@@ -396,6 +411,44 @@ stochastic simulations will vary from run to run of the same command.
The default seed is 42.
+.TP
+.BI --w_beta " <x>"
+Window length tail mass.
+The upper bound,
+.IR W ,
+on the length at which nhmmer expects to find an instance of the
+model is set such that the fraction of all sequences generated
+by the model with length
+.I ">= W"
+is less than
+.IR <x> .
+The default is 1e-7.
+
+
+
+.TP
+.BI --w_length " <n>"
+Override the model instance length upper bound,
+.IR W ,
+which is otherwise controlled by
+.BR --w_beta .
+It should be larger than the model length. The value of
+.I W
+is used deep in the acceleration pipeline, and modest changes
+are not expected to impact results (though larger values of
+.I W
+do lead to longer run time).
+
+
+.TP
+.B --mpi
+Run as a parallel MPI program. Each alignment is assigned to a MPI
+worker node for construction. (Therefore, the maximum parallelization
+cannot exceed the number of alignments in the input
+.IR msafile .)
+This is useful when building large profile libraries. This option is
+only available if optional MPI capability was enabled at compile-time.
+
.TP
.B --stall
@@ -404,6 +457,13 @@ immediately after start, and wait for a debugger to attach to the
running process and release the arrest.
+.TP
+.BI --maxinsertlen " <n>"
+Restrict insert length parameterization such that the expected
+insert length at each position of the model is no more than
+.IR <n> .
+
+
.SH SEE ALSO
diff --git a/hmmer/documentation/man/hmmconvert.man b/hmmer/documentation/man/hmmconvert.man
index 74af4ce..ae692f2 100644
--- a/hmmer/documentation/man/hmmconvert.man
+++ b/hmmer/documentation/man/hmmconvert.man
@@ -57,10 +57,10 @@ HMMER2, for comparative studies.
Output in a HMMER3 ASCII text format other then the most current one.
Valid choices for
.I <s>
-are 3/b or 3/a.
-The current format is 3/b, and this is the default. There is a
-slightly different format 3/a that was used in some alpha test code.
-
+are 3/a through 3/f.
+The current format is 3/f, and this is the default. The format 3/b
+was used in the official HMMER3 release, and the others were used in
+the various testing versions.
.SH SEE ALSO
diff --git a/hmmer/documentation/man/hmmemit.man b/hmmer/documentation/man/hmmemit.man
index bba0715..dceccae 100644
--- a/hmmer/documentation/man/hmmemit.man
+++ b/hmmer/documentation/man/hmmemit.man
@@ -16,7 +16,7 @@ The
.B hmmemit
program
samples (emits) sequences from the profile HMM(s) in
-.I hmmfile,
+.IR hmmfile ,
and writes them to output.
Sampling sequences may be useful for a variety of purposes, including
creating synthetic true positives for benchmarks or tests.
@@ -68,9 +68,9 @@ options.
.TP
.BI -o " <f>"
Direct the output sequences to file
-.I <f>,
+.IR <f> ,
rather than to
-.I stdout.
+.IR stdout .
.TP
.BI -N " <n>"
@@ -174,7 +174,7 @@ Configure the profile for unihit glocal alignment.
.SH OPTIONS CONTROLLING FANCY CONSENSUS EMISSION
These options require that you have set the
-.B -C option.
+.BR "-C option" .
.TP
.BI --minl " <x>"
@@ -197,7 +197,7 @@ threshold for showing strongly conserved residues as upper case.
.TP
.BI --seed " <n>"
Seed the random number generator with
-.I <n>,
+.IR <n> ,
an integer >= 0.
If
.I <n>
diff --git a/hmmer/documentation/man/hmmer.man b/hmmer/documentation/man/hmmer.man
index 768f3f1..225b1ee 100644
--- a/hmmer/documentation/man/hmmer.man
+++ b/hmmer/documentation/man/hmmer.man
@@ -21,14 +21,17 @@ HMMER - profile HMMs for biological sequence analysis
.B hmmfetch
Retrieve profile HMM(s) from a file
+.B hmmpgmd
+ Daemon used for hmmer.org web server, for phmmer-, hmmsearch-, and hmmscan-like search
+
.B hmmpress
Prepare an HMM database for hmmscan
.B hmmscan
- Search sequence(s) against a profile database
+ Search protein sequence(s) against a protein profile database
.B hmmsearch
- Search profile(s) against a sequence database
+ Search protein profile(s) against a protein sequence database
.B hmmsim
Collect profile score distributions on random sequences
@@ -39,8 +42,14 @@ HMMER - profile HMMs for biological sequence analysis
.B jackhmmer
Iterative search of a protein sequence against a protein sequence database
+.B nhmmer
+ Search nucleotide sequence(s), alignment(s), or profile(s) against a nucleotide sequence database
+
+.B nhmmscan
+ Search nucleotide sequence(s) against a nucleotide profile database
+
.B phmmer
- Search a protein sequence against a protein sequence database
+ Search a protein sequence(s) against a protein sequence database
.SH DESCRIPTION
@@ -76,7 +85,10 @@ homologs. The
program builds profile(s) from multiple alignment(s).
The
.B hmmsearch
-program searches profile(s) against a sequence database.
+program searches protein profile(s) against a protein sequence database,
+and
+.B nhmmer
+searches nucleotide profile(s) against a nucleotide sequence database.
Suppose you have a single sequence of interest, and you want to search
a sequence database for additional homologs. The
@@ -90,8 +102,9 @@ profile is searched again.
.B phmmer
is used like BLASTP, and
.B jackhmmer
-is used like a protein PSI-BLAST. Currently these two programs support only
-protein/protein comparison, but this will change with time.
+is used like a protein PSI-BLAST. The
+.B nhmmer
+program searches a single nucleotide sequence against a nucleotide sequence.
Suppose you have sequence(s) that you want to analyze using a
HMMER-based profile HMM database like Pfam (http://pfam.sanger.ac.uk).
@@ -101,12 +114,18 @@ program formats a profile HMM flatfile (such as the file you
would download from Pfam) into a HMMER binary database.
The
.B hmmscan
-program searches sequence(s) against that database.
+program searches protein sequence(s) against that database.
+The
+.B nhmmscan
+program can similarly search nucleotide sequence(s) against
+a pressed database of nucleotide profiles, such as from
+Dfam (http://dfam.janelia.org).
+
Suppose you want to align lots of sequences. You can construct a
manageably small alignment of a representative set of sequences,
build a profile with
-.B hmmbuild,
+.BR hmmbuild ,
and use the
.B hmmalign
program to align any number of sequences to that profile.
@@ -141,7 +160,7 @@ Each program has its own man page.
This is a summary man page for the entire HMMER3 package.
See individual man pages
-.B [hmmbuild(1),
+.BR [hmmbuild(1) ,
for example]
for usage, options, and description of each program in the package.
diff --git a/hmmer/documentation/man/hmmfetch.man b/hmmer/documentation/man/hmmfetch.man
index 2fe003c..a6d6ac9 100644
--- a/hmmer/documentation/man/hmmfetch.man
+++ b/hmmer/documentation/man/hmmfetch.man
@@ -11,13 +11,13 @@ hmmfetch - retrieve profile HMM(s) from a file
.I <key>
(retrieves HMM named <key>)
-.B hmmfetch -f
+.B "hmmfetch -f"
.I [options]
.I <hmmfile>
.I <keyfile>
(retrieves all HMMs listed in <keyfile>)
-.B hmmfetch --index
+.B "hmmfetch --index"
.I [options]
.I <hmmfile>
(indexes <hmmfile> for fetching)
@@ -34,16 +34,16 @@ Quickly retrieves one or more profile HMMs from an
For maximum speed, the
.I <hmmfile>
should be indexed first, using
-.B hmmfetch --index.
+.BR "hmmfetch --index" .
The index is a binary file named
-.I <hmmfile>.ssi.
+.IR <hmmfile>.ssi .
However, this is optional, and retrieval will still
work from unindexed files, albeit much more slowly.
.PP
The default mode is to retrieve a single profile by name or
accession, called the
-.I <key>.
+.IR <key> .
For example:
.nf
@@ -61,27 +61,27 @@ The first whitespace-delimited field on each non-blank non-comment
line of the
.I <keyfile>
is used as a
-.I <key>,
+.IR <key> ,
and any remaining data on the line is ignored. This allows
a variety of whitespace delimited datafiles to be used
as
-.I <keyfile>s.
+.IR <keyfile>s .
.PP
When using
.I -f
and a
-.I <keyfile>,
+.IR <keyfile> ,
if
.B hmmfile
has been indexed, the keys are retrieved in the order
they occur in the
-.I keyfile,
+.IR keyfile ,
but if
.B hmmfile
isn't indexed, keys are retrieved in the order they occur
in the
-.B hmmfile.
+.BR hmmfile .
This is a side effect of an implementation that allows
multiple keys to be retrieved even if the
.B <hmmfile>
@@ -136,7 +136,7 @@ options.
The second commandline argument is a
.I <keyfile>
instead of a single
-.I <key>.
+.IR <key> .
The first field on each line of the
.I <keyfile>
is used as a retrieval
@@ -163,7 +163,7 @@ being created.
.TP
.B --index
Instead of retrieving one or more profiles from
-.I <hmmfile>,
+.IR <hmmfile> ,
index the
.I <hmmfile>
for future retrievals.
diff --git a/hmmer/documentation/man/hmmlogo.man b/hmmer/documentation/man/hmmlogo.man
new file mode 100644
index 0000000..d3755e0
--- /dev/null
+++ b/hmmer/documentation/man/hmmlogo.man
@@ -0,0 +1,103 @@
+.TH "hmmlogo" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
+
+.SH NAME
+hmmlogo - given an HMM, produce data required to build an HMM logo
+
+
+.SH SYNOPSIS
+.B hmmlogo
+.I [options]
+.I <hmmfile>
+
+
+.SH DESCRIPTION
+
+.PP
+.B hmmlogo
+computes letter height and indel parameters that can be used to
+produce a profile HMM logo. This tool is essentially a
+command-line interface for much of the data underlying the Skylign
+logo server (skylign.org).
+
+By default,
+.B hmmlogo
+prints out a table of per-position letter heights (dependent on the
+requested height method), then prints a table of per-position gap
+probabilities.
+
+In a typical logo, the total height of a stack of letters for one
+position depends on the information content of the position, and
+that stack height is subdivided according to the emission
+probabilities of the letters of the alphabet.
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Help; print a brief reminder of command line usage and all available
+options.
+
+
+.TP
+.B --height_relent_all
+Total height = relative entropy (aka information content); all letters
+are given a positive height. (default)
+
+.TP
+.B --height_relent_abovebg
+Total height = relative entropy (aka information content); only letters
+with above-background probability are given positive height.
+
+.TP
+.B --height_score
+Total height = sums of scores of positive-scoring letters; letter
+height depends on the score of that letter at that position. Only
+letters with above-background probability (positive score) are
+given positive height. (Note that only letter height is meaningful -
+stack height has no inherent meaning).
+
+.TP
+.B --no_indel
+Don't print out the indel probability table.
+
+
+.SH SEE ALSO
+
+See
+.B hmmer(1)
+for a master man page with a list of all the individual man pages
+for programs in the HMMER package.
+
+.PP
+For complete documentation, see the user guide that came with your
+HMMER distribution (Userguide.pdf); or see the HMMER web page
+(@HMMER_URL@).
+
+
+
+.SH COPYRIGHT
+
+.nf
+ at HMMER_COPYRIGHT@
+ at HMMER_LICENSE@
+.fi
+
+For additional information on copyright and licensing, see the file
+called COPYRIGHT in your HMMER source distribution, or see the HMMER
+web page
+(@HMMER_URL@).
+
+
+.SH AUTHOR
+
+.nf
+Eddy/Rivas Laboratory
+Janelia Farm Research Campus
+19700 Helix Drive
+Ashburn VA 20147 USA
+http://eddylab.org
+.fi
+
+
+
diff --git a/hmmer/documentation/man/hmmpgmd.man b/hmmer/documentation/man/hmmpgmd.man
new file mode 100644
index 0000000..e87c8b5
--- /dev/null
+++ b/hmmer/documentation/man/hmmpgmd.man
@@ -0,0 +1,233 @@
+.TH "hmmpgmd" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
+
+.SH NAME
+hmmpgmd - daemon for searching a protein query against a protein database
+
+
+.SH SYNOPSIS
+.B hmmpgmd
+.I [options]
+
+
+.SH DESCRIPTION
+
+.PP
+The
+.B hmmpgmd
+program is the daemon that we use internally for the hmmer.org web server,
+and essentially stands in front of the protein search programs
+.BR phmmer ,
+.BR hmmsearch ,
+and
+.BR hmmscan .
+
+To use
+.BR hmmpgmd ,
+first an instance must be started up as a
+.I master
+server, and provided with at least one of a
+.I "sequence database"
+(using the
+.B --seqdb
+flag)
+and/or an
+.I "HMM database"
+(using the
+.B --hmmdb
+flag).
+A sequence database must be in the hmmpgmd format, which may be
+produced using
+.BR esl-reformat .
+An HMM database is of the form produced by
+.BR hmmbuild .
+The input database(s) will be loaded into memory by the
+master. When the master has finished loading the database(s), it
+prints the line:
+"Data loaded into memory. Master is ready."
+
+
+.PP
+Only after master is ready, one or more instances of hmmpgmd may
+be started as workers. These workers may be (and typically are) on
+different machines from the master, but must have access to the
+same database file(s) provided to the master, with the same path. As
+with the master, each worker loads the database(s) into memory, and
+indicates completion by printing: "Data loaded into memory. Worker is ready."
+
+
+.PP
+The master server and workers are expected to remain running.
+One or more clients then connect to the master and submit possibly
+many queries. The master distributes the work of a query among the
+workers, collects results, and merges them before responding to the
+client. Two example client programs are included in the HMMER3.1 src
+directory - the C program
+.B hmmc2
+and the perl script
+.BR hmmpgmd_client_example.pl .
+These are intended as examples only, and should be extended as
+necessary to meet your needs.
+
+.PP
+A query is submitted to the master from the client as a character
+string. Queries may be the sort that would normally be handled
+by
+.B phmmer
+(protein sequence vs protein database),
+.B hmmsearch
+(protein HMM query vs protein database), or
+.B hmmscan
+(protein query vs protein HMM database).
+
+
+The general form of a client query is to start with a single line
+of the form
+.IR "@[options]" ,
+followed by multiple lines of text representing either the query HMM
+or fasta-formatted sequence. The final line of each query is the separator
+.IR "//" .
+
+
+.PP
+For example, to perform a
+.B phmmer
+type search of a sequence against a sequence database
+file, the first line is of the form
+.IR "@--seqdb 1" ,
+then the fasta-formatted query sequence starting with the header line
+.IR >sequence-name ,
+followed by one or more lines of sequence, and finally the closing
+.IR "//" .
+
+.PP
+To perform an
+.B hmmsearch
+type search, the query sequence is replaced by the full
+text of a HMMER-format query HMM.
+
+.PP
+To perform an
+.B hmmscan
+type search, the text matches that of the
+.B phmmer
+type search, except that the first line changes to
+.IR "@--hmmdb 1" .
+
+.PP
+In the hmmpgmd-formatted sequence database file, each sequence
+can be associated with one or more sub-databases. The
+.I --seqdb
+flag indicates which of these sub-databases will be queried.
+The HMM database format does not support sub-databases.
+
+.PP
+The result of each query is an undocumented data structure in
+binary format. In the future the data will be returned in a proper
+serialized structure, but for now, it requires meticulous unpacking
+within the client. The example clients show how this is done.
+
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Help; print a brief reminder of command line usage and all available
+options.
+
+
+
+.SH EXPERT OPTIONS
+
+.TP
+.BI --master
+Run as the master server.
+
+.TP
+.BI --worker " <s>"
+Run as a worker, connecting to the master server that is running on IP
+address
+.IR <s> .
+
+.TP
+.BI --daemon
+Run as a daemon using config file: /etc/hmmpgmd.conf
+
+.TP
+.BI --cport " <n>"
+Port to use for communication between clients and the master server.
+The default is 51371.
+
+.TP
+.BI --wport " <n>"
+Port to use for communication between workers and the master server.
+The default is 51372.
+
+.TP
+.BI --ccncts " <n>"
+Maximum number of client connections to accept. The default is 16.
+
+.TP
+.BI --wcncts " <n>"
+Maximum number of worker connections to accept. The default is 32.
+
+.TP
+.BI --pid " <f>"
+Name of file into which the process id will be written.
+
+.TP
+.BI --seqdb " <f>"
+Name of the file (in hmmpgmd format) containing protein sequences.
+The contents of this file will be cached for searches.
+
+.TP
+.BI --hmmdb " <f>"
+Name of the file containing protein HMMs. The contents of this file
+will be cached for searches.
+
+.TP
+.BI --cpu " <n>"
+Number of parallel threads to use (for
+.I --worker
+).
+
+
+.SH SEE ALSO
+
+See
+.B hmmer(1)
+for a master man page with a list of all the individual man pages
+for programs in the HMMER package.
+
+.PP
+For complete documentation, see the user guide that came with your
+HMMER distribution (Userguide.pdf); or see the HMMER web page
+(@HMMER_URL@).
+
+
+
+.SH COPYRIGHT
+
+.nf
+ at HMMER_COPYRIGHT@
+ at HMMER_LICENSE@
+.fi
+
+For additional information on copyright and licensing, see the file
+called COPYRIGHT in your HMMER source distribution, or see the HMMER
+web page
+(@HMMER_URL@).
+
+
+.SH AUTHOR
+
+.nf
+Eddy/Rivas Laboratory
+Janelia Farm Research Campus
+19700 Helix Drive
+Ashburn VA 20147 USA
+http://eddylab.org
+.fi
+
+
+
diff --git a/hmmer/documentation/man/hmmpress.man b/hmmer/documentation/man/hmmpress.man
index 3ebfc60..a8b81e3 100644
--- a/hmmer/documentation/man/hmmpress.man
+++ b/hmmer/documentation/man/hmmpress.man
@@ -17,7 +17,7 @@ Starting from a profile database
.I <hmmfile>
in standard HMMER3 format,
construct binary compressed datafiles for
-.B hmmscan.
+.BR hmmscan .
The
.I hmmpress
step is required for
@@ -26,11 +26,11 @@ to work.
.PP
Four files are created:
-.I <hmmfile>.h3m,
-.I <hmmfile>.h3i,
-.I <hmmfile>.h3f,
+.IR <hmmfile>.h3m ,
+.IR <hmmfile>.h3i ,
+.IR <hmmfile>.h3f ,
and
-.I <hmmfile>.h3p.
+.IR <hmmfile>.h3p .
The
.I <hmmfile>.h3m
file contains the profile HMMs and their annotation in a binary
diff --git a/hmmer/documentation/man/hmmscan.man b/hmmer/documentation/man/hmmscan.man
index d98a40c..efaf83b 100644
--- a/hmmer/documentation/man/hmmscan.man
+++ b/hmmer/documentation/man/hmmscan.man
@@ -1,7 +1,7 @@
.TH "hmmscan" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
.SH NAME
-hmmscan - search sequence(s) against a profile database
+hmmscan - search protein sequence(s) against a protein profile database
.SH SYNOPSIS
@@ -16,12 +16,12 @@ hmmscan - search sequence(s) against a profile database
.PP
.B hmmscan
-is used to search sequences against collections of profiles.
-For each sequence in
-.I <seqfile>,
+is used to search protein sequences against collections
+of protein profiles. For each sequence in
+.IR <seqfile> ,
use that query sequence to search the target database of
profiles in
-.I <hmmdb>,
+.IR <hmmdb> ,
and output ranked lists of the profiles with the
most significant matches to the sequence.
@@ -41,7 +41,7 @@ The
needs to be press'ed using
.B hmmpress
before it can be searched with
-.B hmmscan.
+.BR hmmscan .
This creates four binary files,
suffixed .h3{fimp}.
@@ -55,7 +55,7 @@ The
.I <hmmdb>
cannot be read from a <stdin> stream, because it needs to have
those four auxiliary binary files generated by
-.B hmmpress.
+.BR hmmpress .
.PP
The output format is designed to be human-readable, but is often so
@@ -72,7 +72,6 @@ in /dev/null.
-
.SH OPTIONS
.TP
@@ -103,6 +102,13 @@ per-domain output, with one data line per homologous domain
detected in a query sequence for each homologous model.
.TP
+.BI --pfamtblout " <f>"
+Save an especially succinct tabular (space-delimited) file
+summarizing the per-target output, with one data line per
+homologous target model found.
+
+
+.TP
.B --acc
Use accessions instead of names in the main output, where available
for profiles and/or sequences.
@@ -131,14 +137,14 @@ characters per line. The default is 120.
Reporting thresholds control which hits are reported in output files
(the main output,
-.I --tblout,
+.IR --tblout ,
and
-.I --domtblout).
+.IR --domtblout ).
.TP
.BI -E " <x>"
In the per-target output, report target profiles with an E-value of <=
-.I <x>.
+.IR <x> .
The default is 10.0, meaning that on average, about 10 false positives
will be reported per query, so you can see the top of the noise
and decide for yourself if it's really noise.
@@ -147,14 +153,14 @@ and decide for yourself if it's really noise.
.BI -T " <x>"
Instead of thresholding per-profile output on E-value, instead
report target profiles with a bit score of >=
-.I <x>.
+.IR <x> .
.TP
.BI --domE " <x>"
In the per-domain output, for target profiles that have already satisfied
the per-profile reporting threshold, report individual domains
with a conditional E-value of <=
-.I <x>.
+.IR <x> .
The default is 10.0.
A conditional E-value means the expected number of additional false
positive domains in the smaller search space of those comparisons that
@@ -166,7 +172,7 @@ have at least one homologous domain already).
.BI --domT " <x>"
Instead of thresholding per-domain output on E-value, instead
report domains with a bit score of >=
-.I <x>.
+.IR <x> .
@@ -178,12 +184,13 @@ Inclusion thresholds control which hits are considered to be
reliable enough
to be included in an output alignment or a subsequent search round.
In
-.B hmmscan, which does not have any alignment output (like
+.BR hmmscan ,
+which does not have any alignment output (like
.B hmmsearch
or
-.B phmmer)
+.BR phmmer )
nor any iterative search steps (like
-.B jackhmmer),
+.BR jackhmmer ),
inclusion thresholds have little effect. They only affect what domains
get marked as significant (!) or questionable (?) in domain
output.
@@ -204,7 +211,7 @@ use a bit score of >=
.I <x>
as the per-target inclusion threshold.
It would be unusual to use bit score thresholds with
-.I hmmscan,
+.IR hmmscan ,
because you don't expect a single score threshold to work for
different profiles; different profiles have slightly different
expected score distributions.
@@ -227,7 +234,7 @@ As with
.B --incT
above,
it would be unusual to use a single bit score threshold in
-.B hmmscan.
+.BR hmmscan .
@@ -337,21 +344,21 @@ Turn off the null2 score corrections for biased composition.
.TP
.BI -Z " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-sequence E-value calculations,
rather than the actual number of targets seen.
.TP
.BI --domZ " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-domain conditional E-value calculations,
rather than the number of targets that passed the reporting thresholds.
.TP
.BI --seed " <n>"
Set the random number seed to
-.I <n>.
+.IR <n> .
Some steps in postprocessing require Monte Carlo simulation. The
default is to use a fixed seed (42), so that results are exactly
reproducible. Any other positive integer will give different (but also
@@ -360,22 +367,23 @@ reproducible) results. A choice of 0 uses an arbitrarily chosen seed.
.TP
.BI --qformat " <s>"
Assert that the query sequence file is in format
-.I <s>. Accepted formats include
-.I fasta,
-.I embl,
-.I genbank,
-.I ddbj,
-.I uniprot,
-.I stockholm,
-.I pfam,
-.I a2m,
+.IR <s> .
+Accepted formats include
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
and
-.I afa.
+.IR afa .
.TP
.BI --cpu " <n>"
Set the number of parallel worker threads to
-.I <n>.
+.IR <n> .
By default, HMMER sets this to the number of CPU cores it detects in
your machine - that is, it tries to maximize the use of your available
processor cores. Setting
@@ -383,7 +391,7 @@ processor cores. Setting
higher than the number of available cores is of little if any value,
but you may want to set it to something less. You can also control
this number by setting an environment variable,
-.I HMMER_NCPU.
+.IR HMMER_NCPU .
This option is only available if HMMER was compiled with POSIX threads
support. This is the default, but it may have been turned off for your
@@ -396,14 +404,14 @@ For debugging the MPI master/worker version: pause after start, to
enable the developer to attach debuggers to the running master and
worker(s) processes. Send SIGCONT signal to release the pause.
(Under gdb:
-.I (gdb) signal SIGCONT)
+.IR "(gdb) signal SIGCONT" )
(Only available if optional MPI support was enabled at compile-time.)
.TP
.BI --mpi
Run in MPI master/worker mode, using
-.I mpirun.
+.IR mpirun .
(Only available if optional MPI support was enabled at compile-time.)
diff --git a/hmmer/documentation/man/hmmsearch.man b/hmmer/documentation/man/hmmsearch.man
index d83b7b0..9ad6d82 100644
--- a/hmmer/documentation/man/hmmsearch.man
+++ b/hmmer/documentation/man/hmmsearch.man
@@ -17,13 +17,13 @@ hmmsearch - search profile(s) against a sequence database
.B hmmsearch
is used to search one or more profiles against a sequence database.
For each profile in
-.I <hmmfile>,
-use that query profile to search the target database of profiles in
-.I <seqdb>,
+.IR <hmmfile> ,
+use that query profile to search the target database of sequences in
+.IR <seqdb> ,
and output ranked lists of the sequences with the most significant
matches to the profile.
To build profiles from multiple alignments, see
-.B hmmbuild.
+.BR hmmbuild .
.PP
Either the query
@@ -75,9 +75,9 @@ instead of the default stdout.
.TP
.BI -A " <f>"
Save a multiple alignment of all significant hits (those satisfying
-.I inclusion thresholds)
+.IR "inclusion thresholds" )
to the file
-.I <f>.
+.IR <f> .
.TP
.BI --tblout " <f>"
@@ -120,9 +120,9 @@ characters per line. The default is 120.
Reporting thresholds control which hits are reported in output files
(the main output,
-.I --tblout,
+.IR --tblout ,
and
-.I --domtblout).
+.IR --domtblout ).
Sequence hits and domain hits are ranked by statistical significance
(E-value) and output is generated in two sections called per-target
and per-domain output. In per-target output, by default, all
@@ -137,7 +137,7 @@ E-value reporting thresholds, or to use bit score thresholds instead.
.TP
.BI -E " <x>"
In the per-target output, report target sequences with an E-value of <=
-.I <x>.
+.IR <x> .
The default is 10.0, meaning that on average, about 10 false positives
will be reported per query, so you can see the top of the noise
and decide for yourself if it's really noise.
@@ -146,14 +146,14 @@ and decide for yourself if it's really noise.
.BI -T " <x>"
Instead of thresholding per-profile output on E-value, instead
report target sequences with a bit score of >=
-.I <x>.
+.IR <x> .
.TP
.BI --domE " <x>"
In the per-domain output, for target sequences that have already satisfied
the per-profile reporting threshold, report individual domains
with a conditional E-value of <=
-.I <x>.
+.IR <x> .
The default is 10.0.
A conditional E-value means the expected number of additional false
positive domains in the smaller search space of those comparisons that
@@ -165,7 +165,7 @@ have at least one homologous domain already).
.BI --domT " <x>"
Instead of thresholding per-domain output on E-value, instead
report domains with a bit score of >=
-.I <x>.
+.IR <x> .
@@ -318,21 +318,21 @@ Turn off the null2 score corrections for biased composition.
.TP
.BI -Z " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-sequence E-value calculations,
rather than the actual number of targets seen.
.TP
.BI --domZ " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-domain conditional E-value calculations,
rather than the number of targets that passed the reporting thresholds.
.TP
.BI --seed " <n>"
Set the random number seed to
-.I <n>.
+.IR <n> .
Some steps in postprocessing require Monte Carlo simulation. The
default is to use a fixed seed (42), so that results are exactly
reproducible. Any other positive integer will give different (but also
@@ -341,25 +341,25 @@ reproducible) results. A choice of 0 uses a randomly chosen seed.
.TP
.BI --tformat " <s>"
Assert that the target sequence database file is in format
-.I <s>.
+.IR <s> .
Accepted formats include
-.I fasta,
-.I embl,
-.I genbank,
-.I ddbj,
-.I uniprot,
-.I stockholm,
-.I pfam,
-.I a2m,
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
and
-.I afa.
+.IR afa .
The default is to autodetect the format of the file.
.TP
.BI --cpu " <n>"
Set the number of parallel worker threads to
-.I <n>.
+.IR <n> .
By default, HMMER sets this to the number of CPU cores it detects in
your machine - that is, it tries to maximize the use of your available
processor cores. Setting
@@ -367,7 +367,7 @@ processor cores. Setting
higher than the number of available cores is of little if any value,
but you may want to set it to something less. You can also control
this number by setting an environment variable,
-.I HMMER_NCPU.
+.IR HMMER_NCPU .
This option is only available if HMMER was compiled with POSIX threads
support. This is the default, but it may have been turned off at
@@ -380,13 +380,13 @@ For debugging the MPI master/worker version: pause after start, to
enable the developer to attach debuggers to the running master and
worker(s) processes. Send SIGCONT signal to release the pause.
(Under gdb:
-.I (gdb) signal SIGCONT)
+.IR "(gdb) signal SIGCONT" )
(Only available if optional MPI support was enabled at compile-time.)
.TP
.BI --mpi
Run in MPI master/worker mode, using
-.I mpirun.
+.IR mpirun .
(Only available if optional MPI support was enabled at compile-time.)
diff --git a/hmmer/documentation/man/hmmsim.man b/hmmer/documentation/man/hmmsim.man
index 388b70c..bc9f55a 100644
--- a/hmmer/documentation/man/hmmsim.man
+++ b/hmmer/documentation/man/hmmsim.man
@@ -15,7 +15,7 @@ hmmsim - collect score distributions on random sequences
The
.B hmmsim
program generates random sequences, scores them with the model(s) in
-.I <hmmfile>,
+.IR <hmmfile> ,
and outputs various sorts of histograms, plots, and fitted
distributions for the resulting scores.
@@ -137,7 +137,7 @@ options.
Collect expected Viterbi alignment length statistics from each
simulated sequence. This only works with Viterbi scores (the default;
see
-.I --vit).
+.IR --vit ).
Two additional fields are printed in the output table for
each model: the mean length of Viterbi alignments, and the standard
deviation.
@@ -149,24 +149,24 @@ deviation.
.TP
.BI -L " <n>"
Set the length of the randomly sampled (nonhomologous) sequences to
-.I <n>.
+.IR <n> .
The default is 100.
.TP
.BI -N " <n>"
Set the number of randomly sampled sequences to
-.I <n>.
+.IR <n> .
The default is 1000.
.TP
.B --mpi
Run in MPI parallel mode, under
-.B mpirun.
+.BR mpirun .
It is parallelized at the level of sending one profile at a time to an
MPI worker process, so parallelization only helps if you have more
than one profile in the
-.I <hmmfile>,
+.IR <hmmfile> ,
and you want to have at least as many profiles as MPI worker
processes.
(Only available if optional MPI support was enabled at compile-time.)
@@ -187,7 +187,7 @@ When collecting Viterbi alignment statistics (the
.I -a
option), for each sampled sequence, output two fields per
line to a file
-.I <f>:
+.IR <f> :
the length of the optimal alignment, and the Viterbi bit score.
Requires that the
.I -a
@@ -196,7 +196,7 @@ option is also used.
.TP
.BI --efile " <f>"
Output a rank vs. E-value plot in XMGRACE xy format to file
-.I <f>.
+.IR <f> .
The x-axis is the rank of this sequence, from highest score to lowest;
the y-axis is the E-value calculated for this sequence. E-values are
calculated using H3's default procedures (i.e. the pmu, plambda
@@ -207,7 +207,7 @@ and E-value if E-values are accurately estimated.
.TP
.BI --ffile " <f>"
Output a "filter power" file to
-.I <f>:
+.IR <f> :
for each model, a line with three fields:
model name, number of sequences passing the P-value threshold,
and fraction of sequences passing the P-value threshold. See
@@ -232,7 +232,7 @@ in XMGRACE xy format. There are three plots:
.BI --xfile " <f>"
Output the bit scores as a binary array of double-precision floats (8
bytes per score) to file
-.I <f>.
+.IR <f> .
Programs like Easel's
.B esl-histplot
can read such binary files. This is useful when generating extremely
@@ -333,7 +333,7 @@ Set the upper bound on the tail mass distribution. (The default is
Set the number of tail masses to sample, starting from
.I --tmin
and ending at
-.I --tmax.
+.IR --tmax .
(The default is 1, for the default 0.02 single tail mass.)
.TP
@@ -394,13 +394,13 @@ For debugging the MPI master/worker version: pause after start, to
enable the developer to attach debuggers to the running master and
worker(s) processes. Send SIGCONT signal to release the pause.
(Under gdb:
-.I (gdb) signal SIGCONT)
+.IR "(gdb) signal SIGCONT" )
(Only available if optional MPI support was enabled at compile-time.)
.TP
.BI --seed " <n>"
Set the random number seed to
-.I <n>.
+.IR <n> .
The default is 0, which makes the random number generator use
an arbitrary seed, so that different runs of
.B hmmsim
@@ -454,7 +454,7 @@ and it will not work with
.BI --pthresh " <x>"
Set the filter P-value threshold to use in generating filter power
files with
-.I --ffile.
+.IR --ffile .
The default is 0.02 (which would be appropriate for testing MSV
scores, since this is the default MSV filter threshold in H3's
acceleration pipeline.) Other appropriate choices (matching defaults
diff --git a/hmmer/documentation/man/hmmstat.man b/hmmer/documentation/man/hmmstat.man
index e5767fb..7bb86ca 100644
--- a/hmmer/documentation/man/hmmstat.man
+++ b/hmmer/documentation/man/hmmstat.man
@@ -16,7 +16,7 @@ The
.B hmmstat
utility prints out a tabular file of summary statistics for each
profile in
-.I <hmmfile>.
+.IR <hmmfile> .
.PP
@@ -68,7 +68,7 @@ Probably not useful. Information content is a slightly
different calculation than relative entropy.
.TP
-.B p relE
+.B "p relE"
Mean positional relative entropy, in bits.
This is a fancier version of the per-match-state relative entropy,
taking into account the transition (insertion/deletion) probabilities;
diff --git a/hmmer/documentation/man/jackhmmer.man b/hmmer/documentation/man/jackhmmer.man
index 5b44644..30ad244 100644
--- a/hmmer/documentation/man/jackhmmer.man
+++ b/hmmer/documentation/man/jackhmmer.man
@@ -16,14 +16,14 @@ jackhmmer - iteratively search sequence(s) against a protein database
iteratively searches each query sequence in
.I <seqfile>
against the target sequence(s) in
-.I <seqdb>.
+.IR <seqdb> .
The first iteration is identical to a
.B phmmer
search.
For the next iteration,
a multiple alignment of the query together with all target sequences
satisfying
-.I inclusion thresholds
+.I "inclusion thresholds"
is assembled, a profile is constructed from this alignment
(identical to using
.B hmmbuild
@@ -71,7 +71,7 @@ options.
.TP
.BI -N " <n>"
Set the maximum number of iterations to
-.I <n>.
+.IR <n> .
The default is 5. If N=1, the result is equivalent to a
.B phmmer
search.
@@ -89,7 +89,7 @@ including checkpoint files for each iteration.
.TP
.BI -o " <f>"
Direct the human-readable output to a file
-.I <f>.
+.IR <f> .
.TP
.BI -A " <f>"
@@ -116,7 +116,7 @@ in a readily parseable, columnar, whitespace-delimited format.
.BI --chkhmm " <prefix>"
At the start of each iteration, checkpoint the query HMM, saving it
to a file named
-.I <prefix>-<n>.hmm
+.I "<prefix>-<n>.hmm"
where
.I <n>
is the iteration number (from 1..N).
@@ -128,7 +128,7 @@ domains satisfying inclusion thresholds (e.g. what will become the
query HMM for the next iteration),
saving it
to a file named
-.I <checkpoint file prefix>-<n>.sto
+.I "<checkpoint file prefix>-<n>.sto"
in Stockholm format,
where
.I <n>
@@ -174,7 +174,7 @@ parameters to be changed.
.TP
.BI --popen " <x>"
Set the gap open probability for a single sequence query model to
-.I <x>.
+.IR <x> .
The default is 0.02.
.I <x>
must be >= 0 and < 0.5.
@@ -182,7 +182,7 @@ must be >= 0 and < 0.5.
.TP
.BI --pextend " <x>"
Set the gap extend probability for a single sequence query model to
-.I <x>.
+.IR <x> .
The default is 0.4.
.I <x>
must be >= 0 and < 1.0.
@@ -191,11 +191,12 @@ must be >= 0 and < 1.0.
.BI --mx " <s>"
Obtain residue alignment probabilities from the built-in
substitution matrix named
-.I <s>.
+.IR <s> .
Several standard matrices are built-in, and do not need to be
read from files.
The matrix name
-.I <s> can be
+.I <s>
+can be
PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80,
or BLOSUM90.
Only one of the
@@ -208,7 +209,7 @@ options may be used.
.BI --mxfile " <mxfile>"
Obtain residue alignment probabilities from the substitution matrix
in file
-.I <mxfile>.
+.IR <mxfile> .
The default score matrix is BLOSUM62 (this matrix is internal to
HMMER and does not have to be available as a file).
The format of a substitution matrix
@@ -221,9 +222,9 @@ analysis software.
Reporting thresholds control which hits are reported in output files
(the main output,
-.I --tblout,
+.IR --tblout ,
and
-.I --domtblout).
+.IR --domtblout ).
In each iteration, sequence hits and domain hits are ranked by
statistical significance (E-value) and output is generated in two
sections called per-target and per-domain output. In per-target
@@ -248,7 +249,7 @@ Use a bit score threshold for per-sequence output instead of an
E-value threshold (any setting of
.B -E
is ignored). Report sequences with a bit score of >=
-.I <x>.
+.IR <x> .
By default this option is unset.
.TP
@@ -258,7 +259,8 @@ Declare the total size of the database to be
sequences, for purposes of E-value calculation.
Normally E-values are calculated relative to the size of the database
you actually searched (e.g. the number of sequences in
-.I target_seqdb). In some cases (for instance, if you've split your
+.IR target_seqdb ).
+In some cases (for instance, if you've split your
target sequence database into multiple files for parallelization of
your search), you may know better what the actual size of your search
space is.
@@ -316,7 +318,7 @@ Include sequences with E-values <=
.I <x>
in subsequent iteration or final
alignment output by
-.I -A.
+.IR -A .
The default is 0.001.
.TP
@@ -325,7 +327,7 @@ Use a bit score threshold for per-sequence inclusion instead of an
E-value threshold (any setting of
.B --incE
is ignored). Include sequences with a bit score of >=
-.I <x>.
+.IR <x> .
By default this option is unset.
.TP
@@ -333,7 +335,7 @@ By default this option is unset.
Include domains with conditional E-values <=
.I <x>
in subsequent iteration or final alignment output by
-.I -A,
+.IR -A ,
in addition to the top-scoring
domain per significant sequence hit.
The default is 0.001.
@@ -344,7 +346,7 @@ Use a bit score threshold for per-domain inclusion instead of an
E-value threshold (any setting of
.B --incT
is ignored). Include domains with a bit score of >=
-.I <x>.
+.IR <x> .
By default this option is unset.
@@ -430,9 +432,9 @@ of residues as opposed to gaps. (See below for the
.B --symfrac
option.) Although this is the default
profile construction option elsewhere (in
-.B hmmbuild,
+.BR hmmbuild ,
in particular), it may have undesirable effects in
-.B jackhmmer,
+.BR jackhmmer ,
because a profile could iteratively walk in sequence space away from
your original query, leaving few or no consensus columns corresponding
to its residues.
@@ -456,10 +458,10 @@ is calculated after taking relative sequence weighting into account,
and ignoring gap characters corresponding to ends of sequence
fragments
(as opposed to internal insertions/deletions).
-Setting this to 1.0 means that every alignment column will be assigned
-as consensus, which may be useful in some cases. Setting it to 0.0 is
-a bad idea, because no columns will be assigned as consensus, and
-you'll get a model of zero length.
+Setting this to 0.0 means that every alignment column will be assigned
+as consensus, which may be useful in some cases. Setting it to 1.0
+means that only columns that include 0 gaps (internal
+insertions/deletions) will be assigned as consensus.
.TP
.BI --fragthresh " <x>"
@@ -513,7 +515,7 @@ Use the same clustering scheme that was used to weight data in
calculating BLOSUM subsitution matrices [Henikoff and Henikoff,
Proc. Natl. Acad. Sci 89:10915, 1992]. Sequences are single-linkage
clustered at an identity threshold (default 0.62; see
-.I --wid)
+.IR --wid )
and within each cluster of c sequences, each sequence gets relative
weight 1/c.
@@ -525,7 +527,7 @@ No relative weights. All sequences are assigned uniform weight.
.BI --wid " <x>"
Sets the identity threshold used by single-linkage clustering when
using
-.I --wblosum.
+.IR --wblosum .
Invalid with any other weighting scheme. Default is 0.62.
@@ -536,7 +538,7 @@ Invalid with any other weighting scheme. Default is 0.62.
After relative weights are determined, they are normalized to sum to a
total effective sequence number,
-.I eff_nseq.
+.IR eff_nseq .
This number may be the actual number of sequences in the alignment,
but it is almost always smaller than that.
The default entropy weighting method
@@ -548,20 +550,20 @@ relative entropy is controlled by a two-parameter function, where the
two parameters are settable with
.I --ere
and
-.I --esigma.
+.IR --esigma .
.TP
.B --eent
Adjust effective sequence number to achieve a specific relative entropy
per position (see
-.I --ere).
+.IR --ere ).
This is the default.
.TP
.B --eclust
Set effective sequence number to the number of single-linkage clusters
at a specific identity threshold (see
-.I --eid).
+.IR --eid ).
This option is not recommended; it's for experiments evaluating
how much better
.B --eent
@@ -577,14 +579,14 @@ may be useful for short models.
.TP
.BI --eset " <x>"
Explicitly set the effective sequence number for all models to
-.I <x>.
+.IR <x> .
.TP
.BI --ere " <x>"
Set the minimum relative entropy/position target to
-.I <x>.
+.IR <x> .
Requires
-.B --eent.
+.BR --eent .
Default depends on the sequence alphabet; for protein
sequences, it is 0.59 bits/position.
@@ -675,21 +677,21 @@ Turn off the null2 score corrections for biased composition.
.TP
.BI -Z " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-sequence E-value calculations,
rather than the actual number of targets seen.
.TP
.BI --domZ " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-domain conditional E-value calculations,
rather than the number of targets that passed the reporting thresholds.
.TP
.BI --seed " <n>"
Seed the random number generator with
-.I <n>,
+.IR <n> ,
an integer >= 0.
If
.I <n>
@@ -707,7 +709,7 @@ The default seed is 42.
Declare that the input
.I query_seqfile
is in format
-.I <s>.
+.IR <s> .
Accepted sequence file formats include FASTA, EMBL, GenBank, DDBJ,
UniProt, Stockholm, and SELEX. Default is to autodetect the format of
the file.
@@ -717,7 +719,7 @@ the file.
Declare that the input
.I target_seqdb
is in format
-.I <s>.
+.IR <s> .
Accepted sequence file formats include FASTA, EMBL, GenBank, DDBJ,
UniProt, Stockholm, and SELEX. Default is to autodetect the format of
the file.
@@ -725,7 +727,7 @@ the file.
.TP
.BI --cpu " <n>"
Set the number of parallel worker threads to
-.I <n>.
+.IR <n> .
By default, HMMER sets this to the number of CPU cores it detects in
your machine - that is, it tries to maximize the use of your available
processor cores. Setting
@@ -733,25 +735,26 @@ processor cores. Setting
higher than the number of available cores is of little if any value,
but you may want to set it to something less. You can also control
this number by setting an environment variable,
-.I HMMER_NCPU.
+.IR HMMER_NCPU .
This option is only available if HMMER was compiled with POSIX threads
support. This is the default, but it may have been turned off at
compile-time for your site or machine for some reason.
+.TP
.BI --stall
For debugging the MPI master/worker version: pause after start, to
enable the developer to attach debuggers to the running master and
worker(s) processes. Send SIGCONT signal to release the pause.
(Under gdb:
-.I (gdb) signal SIGCONT)
+.IR "(gdb) signal SIGCONT" )
(Only available if optional MPI support was enabled at compile-time.)
.TP
.BI --mpi
Run in MPI master/worker mode, using
-.I mpirun.
+.IR mpirun .
(Only available if optional MPI support was enabled at compile-time.)
diff --git a/hmmer/documentation/man/makehmmerdb.man b/hmmer/documentation/man/makehmmerdb.man
new file mode 100644
index 0000000..7267adf
--- /dev/null
+++ b/hmmer/documentation/man/makehmmerdb.man
@@ -0,0 +1,162 @@
+.TH "makehmmerdb" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
+
+.SH NAME
+makehmmerdb - build a HMMER binary database file from a sequence file
+
+
+.SH SYNOPSIS
+.B makehmmerdb
+.I [options]
+.I <seqfile>
+.I <binaryfile>
+
+
+.SH DESCRIPTION
+
+.PP
+.B makehmmerdb
+is used to create a binary file from a DNA sequence file. This
+binary file may be used as a target database for the DNA search tool
+.BR nhmmer .
+Using default settings in
+.IR nhmmer ,
+this yields a roughly 10-fold acceleration with small loss of
+sensitivity on benchmarks. (This method has been extensively tested,
+but should still be treated as somewhat experimental.)
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Help; print a brief reminder of command line usage and all available
+options.
+
+
+.\" .SH OPTIONS FOR SPECIFYING THE ALPHABET
+.\"
+.\" The alphabet type (amino, DNA, or RNA) is autodetected by default, by
+.\" looking at the composition of the
+.\" .IR seqfile .
+.\" Autodetection is normally quite reliable, but occasionally alphabet
+.\" type may be ambiguous and autodetection can fail (for instance, when
+.\" the first sequence starts with a run of ambiguous characters). To avoid
+.\" this, or to increase robustness in automated analysis pipelines, you
+.\" may specify the alphabet type of
+.\" .I seqfile
+.\" with these options.
+.\"
+.\" .TP
+.\" .B --dna
+.\" Specify that all sequences in
+.\" .I msafile
+.\" are DNAs.
+.\"
+.\" .TP
+.\" .B --rna
+.\" Specify that all sequences in
+.\" .I msafile
+.\" are RNAs.
+.\"
+.\" .TP
+.\" .B --amino
+.\" Specify that all sequences in
+.\" .I msafile
+.\" are proteins. Note that currently, a binary database of amino
+.\" acid sequence cannot be used as target to hmmsearch of phmmer
+.\" (only nhmmer can use the binary format).
+
+
+
+.SH OTHER OPTIONS
+
+.TP
+.BI --informat " <s>"
+Assert that the sequence database file is in format
+.IR <s> .
+Accepted formats include
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
+and
+.IR afa .
+The default is to autodetect the format of the file.
+
+
+.TP
+.BI --bin_length " <n>"
+Bin length. The binary file depends on a data structure called the
+FM index, which organizes a permuted copy of the sequence in bins
+of length
+.IR <n> .
+Longer bin length will lead to smaller files (because data is
+captured about each bin) and possibly slower query time. The
+default is 256. Much more than 512 may lead to notable reduction
+in speed.
+
+
+.TP
+.BI --sa_freq " <n>"
+Suffix array sample rate. The FM index structure also samples from
+the underlying suffix array for the sequence database. More frequent
+sampling (smaller value for
+.IR <n> )
+will yield larger file size and faster search (until file size becomes
+large enough to cause I/O to be a bottleneck). The default value
+is 8. Must be a power of 2.
+
+
+.TP
+.BI --block_size " <n>"
+The input sequence is broken into blocks of size
+.I <n>
+million letters. An FM index is built for each block, rather than
+building an FM index for the entire sequence database. Default is
+50. Larger blocks do not seem to yield substantial speed increase.
+
+
+
+.SH SEE ALSO
+
+See
+.B hmmer(1)
+for a master man page with a list of all the individual man pages
+for programs in the HMMER package.
+
+.PP
+For complete documentation, see the user guide that came with your
+HMMER distribution (Userguide.pdf); or see the HMMER web page
+(@HMMER_URL@).
+
+
+
+.SH COPYRIGHT
+
+.nf
+ at HMMER_COPYRIGHT@
+ at HMMER_LICENSE@
+.fi
+
+For additional information on copyright and licensing, see the file
+called COPYRIGHT in your HMMER source distribution, or see the HMMER
+web page
+(@HMMER_URL@).
+
+
+.SH AUTHOR
+
+.nf
+Eddy/Rivas Laboratory
+Janelia Farm Research Campus
+19700 Helix Drive
+Ashburn VA 20147 USA
+http://eddylab.org
+.fi
+
+
+
diff --git a/hmmer/documentation/man/nhmmer.man b/hmmer/documentation/man/nhmmer.man
new file mode 100644
index 0000000..8acfe79
--- /dev/null
+++ b/hmmer/documentation/man/nhmmer.man
@@ -0,0 +1,621 @@
+.TH "nhmmer" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
+
+.SH NAME
+nhmmer - search DNA/RNA queries against a DNA/RNA sequence database
+
+
+.SH SYNOPSIS
+.B nhmmer
+.I [options]
+.I <queryfile>
+.I <seqdb>
+
+
+.SH DESCRIPTION
+
+.PP
+.B nhmmer
+is used to search one or more nucleotide queries against a
+nucleotide sequence database.
+For each query in
+.IR <queryfile> ,
+use that query to search the target database of sequences in
+.IR <seqdb> ,
+and output a ranked list of the hits with the most significant
+matches to the query. A query may be either a profile model
+built using
+.BR hmmbuild ,
+a sequence alignment, or a single sequence. Sequence based
+queries can be in a number of formats (see
+.BR --qformat ),
+and can typically be autodetected. Note that only
+.I Stockholm
+format supports queries made up of more than one sequence
+alignment.
+
+
+
+.PP
+Either the query
+.I <queryfile>
+or the target
+.I <seqdb>
+may be '-' (a dash character), in which case
+the query file or target database input will be read from a <stdin> pipe instead of from a
+file. Only one input source can come through <stdin>, not both.
+If the query is sequence-based and passed via <stdin>, the
+.B --qformat
+flag must be used.
+If the
+.I <queryfile>
+contains more than one query, then
+.I <seqdb>
+cannot come from <stdin>, because we can't rewind the
+streaming target database to search it with another profile.
+
+.PP
+If the query is sequence-based, and not from <stdin>,
+a new file containing the HMM(s) built from the input(s) in
+.I <queryfile>
+may optionally be produced, with the filename set using the
+.B --hmmout
+flag.
+
+
+.PP
+The output format is designed to be human-readable, but is often so
+voluminous that reading it is impractical, and parsing it is a pain. The
+.B --tblout
+option saves output in a simple tabular format that is concise and
+easier to parse.
+The
+.B -o
+option allows redirecting the main output, including throwing it away
+in /dev/null.
+
+
+
+.SH OPTIONS
+
+.TP
+.B -h
+Help; print a brief reminder of command line usage and all available
+options.
+
+
+
+.SH OPTIONS FOR CONTROLLING OUTPUT
+
+.TP
+.BI -o " <f>"
+Direct the main human-readable output to a file
+.I <f>
+instead of the default stdout.
+
+.TP
+.BI -A " <f>"
+Save a multiple alignment of all significant hits (those satisfying
+.IR "inclusion thresholds" )
+to the file
+.IR <f> .
+
+.TP
+.BI --tblout " <f>"
+Save a simple tabular (space-delimited) file summarizing the
+per-target output, with one data line per homologous target sequence
+found.
+
+.TP
+.BI --dfamtblout " <f>"
+Save a tabular (space-delimited) file summarizing the
+per-hit output, similar to
+.B --tblout
+but more succinct.
+
+.TP
+.BI --aliscoresout " <f>"
+Save to file a list of per-position scores for each hit.
+This is useful, for example, in identifying regions of high
+score density for use in resolving overlapping hits from
+different models.
+
+.TP
+.BI --hmmout " <f>"
+If <queryfile> is sequence-based, write the internally-computed
+HMM(s) to
+.IR <f> .
+
+
+.TP
+.B --acc
+Use accessions instead of names in the main output, where available
+for profiles and/or sequences.
+
+.TP
+.B --noali
+Omit the alignment section from the main output. This can greatly
+reduce the output volume.
+
+.TP
+.B --notextw
+Unlimit the length of each line in the main output. The default
+is a limit of 120 characters per line, which helps in displaying
+the output cleanly on terminals and in editors, but can truncate
+target profile description lines.
+
+.TP
+.BI --textw " <n>"
+Set the main output's line length limit to
+.I <n>
+characters per line. The default is 120.
+
+
+
+.SH OPTIONS CONTROLLING REPORTING THRESHOLDS
+
+Reporting thresholds control which hits are reported in output files
+(the main output,
+.IR --tblout ,
+and
+.IR --dfamtblout ).
+Hits are ranked by statistical significance (E-value).
+
+
+.TP
+.BI -E " <x>"
+Report target sequences with an E-value of <=
+.IR <x> .
+The default is 10.0, meaning that on average, about 10 false positives
+will be reported per query, so you can see the top of the noise
+and decide for yourself if it's really noise.
+
+.TP
+.BI -T " <x>"
+Instead of thresholding output on E-value, instead
+report target sequences with a bit score of >=
+.IR <x> .
+
+
+
+
+.SH OPTIONS FOR INCLUSION THRESHOLDS
+
+Inclusion thresholds are stricter than reporting thresholds.
+Inclusion thresholds control which hits are considered to be reliable
+enough to be included in an output alignment or a subsequent search
+round, or marked as significant ("!") as opposed to questionable ("?")
+in hit output.
+
+.TP
+.BI --incE " <x>"
+Use an E-value of <=
+.I <x>
+as the inclusion threshold.
+The default is 0.01, meaning that on average, about 1 false positive
+would be expected in every 100 searches with different query
+sequences.
+
+.TP
+.BI --incT " <x>"
+Instead of using E-values for setting the inclusion threshold,
+use a bit score of >=
+.I <x>
+as the inclusion threshold.
+By default this option is unset.
+
+
+
+.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING
+
+Curated profile databases may define specific bit score thresholds for
+each profile, superseding any thresholding based on statistical
+significance alone.
+
+To use these options, the profile must contain the appropriate (GA,
+TC, and/or NC) optional score threshold annotation; this is picked up
+by
+.B hmmbuild
+from Stockholm format alignment files. For a nucleotide model, each
+thresholding option has a single per-hit threshold <x>
+This acts as if
+.BI -T <x>
+.BI --incT <x>
+has been applied specifically using each model's curated thresholds.
+
+.TP
+.B --cut_ga
+Use the GA (gathering) bit score threshold in the model to set
+per-hit reporting and inclusion
+thresholds. GA thresholds are generally considered to be the
+reliable curated thresholds defining family membership; for example,
+in Dfam, these thresholds are applied when annotating a genome
+with a model of a family known to be found in that organism. They
+may allow for minimal expected false discovery rate.
+
+.TP
+.B --cut_nc
+Use the NC (noise cutoff) bit score threshold in the model to set
+per-hit reporting and inclusion
+thresholds. NC thresholds are less stringent than GA; in the context
+of Pfam, they are generally used to store the score of the
+highest-scoring known false positive.
+
+.TP
+.B --cut_tc
+Use the NC (trusted cutoff) bit score threshold in the model to set
+per-hit reporting and inclusion
+thresholds. TC thresholds are more stringent than GA, and are
+generally considered to be the score of the lowest-scoring known
+true positive that is above all known false positives; for example,
+in Dfam, these thresholds are applied when annotating a genome
+with a model of a family not known to be found in that organism.
+
+
+
+
+.SH OPTIONS CONTROLLING THE ACCELERATION PIPELINE
+
+HMMER3 searches are accelerated in a three-step filter pipeline: the
+scanning-SSV filter, the Viterbi filter, and the Forward filter. The
+first filter is the fastest and most approximate; the last is the full
+Forward scoring algorithm. There is also a bias filter step between
+SSV and Viterbi. Targets that pass all the steps in the acceleration
+pipeline are then subjected to postprocessing -- domain
+identification and scoring using the Forward/Backward algorithm.
+
+Changing filter thresholds only removes or includes targets from
+consideration; changing filter thresholds does not alter bit scores,
+E-values, or alignments, all of which are determined solely in
+postprocessing.
+
+.TP
+.B --max
+Turn off (nearly) all filters, including the bias filter, and run full
+Forward/Backward postprocessing on most of the target sequence.
+In contrast to
+.B phmmer
+and
+.BR hmmsearch ,
+where this flag really does turn off the filters entirely, the
+.I --max
+flag in
+.B nhmmer
+sets the scanning-SSV filter threshold to 0.4, not 1.0. Use of this
+flag increases sensitivity somewhat, at a large cost in speed.
+
+.TP
+.BI --F1 " <x>"
+Set the P-value threshold for the SSV filter step. The default is
+0.02, meaning that roughly 2% of the highest scoring nonhomologous
+targets are expected to pass the filter.
+
+.TP
+.BI --F2 " <x>"
+Set the P-value threshold for the Viterbi filter step.
+The default is 0.001.
+
+.TP
+.BI --F3 " <x>"
+Set the P-value threshold for the Forward filter step.
+The default is 1e-5.
+
+.TP
+.B --nobias
+Turn off the bias filter. This increases sensitivity somewhat, but can
+come at a high cost in speed, especially if the query has biased
+residue composition (such as a repetitive sequence region, or if it is
+a membrane protein with large regions of hydrophobicity). Without the
+bias filter, too many sequences may pass the filter with biased
+queries, leading to slower than expected performance as the
+computationally intensive Forward/Backward algorithms shoulder an
+abnormally heavy load.
+
+
+
+.SH OPTIONS FOR SPECIFYING THE ALPHABET
+
+The alphabet type of the target database (DNA or RNA) is autodetected
+by default, by looking at the composition of the
+.IR <seqdb> .
+Autodetection is normally quite reliable, but occasionally alphabet
+type may be ambiguous and autodetection can fail (for instance, when
+the first sequence starts with a run of ambiguous characters). To
+avoid this, or to increase robustness in automated analysis pipelines,
+you may specify the alphabet type of
+.I <seqdb>
+with these options.
+
+.TP
+.B --dna
+Specify that all sequences in
+.I <seqdb>
+are DNAs.
+
+.TP
+.B --rna
+Specify that all sequences in
+.I <seqdb>
+are RNAs.
+
+
+.SH OPTIONS CONTROLLING SEED SEARCH HEURISTIC
+
+When searching with
+.IR nhmmer ,
+one may optionally precompute a binary version of the target database, using
+.IR makehmmerdb ,
+then search against that database. Using default settings, this yields a
+roughly 10-fold acceleration with small loss of sensitivity on benchmarks.
+This is achieved using a heuristic method that searches for seeds (ungapped
+alignments) around which full processing is done. This is essentially
+a replacement to the SSV stage. (This method has been extensively tested,
+but should still be treated as somewhat experimental.)
+The following options only impact
+.I nhmmer
+if the value of
+.B --tformat
+is
+.IR hmmerdb .
+
+Changing parameters for this seed-finding step will impact both speed and
+sensitivity - typically faster search leads to lower sensitivity.
+
+.TP
+.BI --seed_max_depth " <n>"
+The seed step requires that a seed reach a specified bit score in length
+no longer than
+.BR <n> .
+By default, this value is 15. Longer seeds allow a greater chance of
+meeting the bit score threshold, leading to diminished filtering
+(greater sensitivity, slower run time).
+
+.TP
+.BI --seed_sc_thresh " <x>"
+The seed must reach score
+.B <x>
+(in bits). The default is 15.0 bits. A higher threshold increases
+filtering stringency, leading to faster run times and lower
+sensitivity.
+
+.TP
+.BI --seed_sc_density " <x>"
+Either all prefixes or all suffixes of a seed must have
+bit density (bits per aligned position) of at least
+.BR <x> .
+The default is 0.8 bits/position. An increase in the density
+requirement leads to increased filtering stringency, thus faster
+run times and lower sensitivity.
+
+.TP
+.BI --seed_drop_max_len " <n>"
+A seed may not have a run of length
+.B <n>
+in which the score drops by
+.I --seed_drop_lim
+or more. Basically, this prunes seeds that go through long
+slightly-negative seed extensions. The default is 4. Increasing
+the limit causes (slightly) diminished filtering efficiency, thus
+slower run times and higher sensitivity. (minor tuning option)
+
+.TP
+.BI --seed_drop_lim " <x>"
+In a seed, there may be no run of length
+.I --seed_drop_max_len
+in which the score drops by
+.IR --seed_drop_lim .
+The default is 0.3 bits. Larger numbers mean less filtering.
+(minor tuning option)
+
+.TP
+.BI --seed_req_pos " <n>"
+A seed must contain a run of at least
+.B <n>
+positive-scoring matches. The default is 5. Larger values mean
+increased filtering.
+(minor tuning option)
+
+.TP
+.BI --seed_ssv_length " <n>"
+After finding a short seed, an ungapped alignment is extended
+in both directions in an attempt to meet the
+.I --F1
+score threshold. The window through which this ungapped alignment
+extends is length
+.BR <n> .
+The default is 70.
+Decreasing this value slightly reduces run time, at a small risk of
+reduced sensitivity. (minor tuning option)
+
+
+.SH OTHER OPTIONS
+
+.TP
+.BI --tformat " <s>"
+Assert that the target sequence database file is in format
+.IR <s> .
+Accepted formats include
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
+.IR afa ,
+and
+.IR hmmerfm .
+The default is to autodetect the format of the file. The format
+.I hmmerfm
+indicates that the database file is a binary file produced using
+.I makehmmerdb
+(this format is not currently autodetected).
+
+
+.TP
+.BI --qformat " <s>"
+Declare that the input
+.I <queryfile>
+is in format
+.IR <s> .
+This is used when the query is sequence-based, rather than made
+up of profile model(s).
+Currently the accepted multiple alignment sequence file formats
+include Stockholm, Aligned FASTA, Clustal, NCBI PSI-BLAST, PHYLIP,
+Selex, and UCSC SAM A2M. Default is to autodetect the format of
+the file.
+
+
+.TP
+.B --nonull2
+Turn off the null2 score corrections for biased composition.
+
+.TP
+.BI -Z " <x>"
+For the purposes of per-hit E-value calculations,
+Assert that the total size of the target database is
+.I <x>
+million nucleotides,
+rather than the actual number of targets seen.
+
+
+.TP
+.BI --seed " <n>"
+Set the random number seed to
+.IR <n> .
+Some steps in postprocessing require Monte Carlo simulation. The
+default is to use a fixed seed (42), so that results are exactly
+reproducible. Any other positive integer will give different (but also
+reproducible) results. A choice of 0 uses a randomly chosen seed.
+
+
+.TP
+.BI --w_beta " <x>"
+Window length tail mass.
+The upper bound,
+.IR W ,
+on the length at which nhmmer expects to find an instance of the
+model is set such that the fraction of all sequences generated
+by the model with length
+.I ">= W"
+is less than
+.IR <x> .
+The default is 1e-7.
+This flag may be used to override the value of
+.I W
+established for the model by
+.BR hmmbuild ,
+or when the query is sequence-based.
+
+
+
+.TP
+.BI --w_length " <n>"
+Override the model instance length upper bound,
+.IR W ,
+which is otherwise controlled by
+.BR --w_beta .
+It should be larger than the model length. The value of
+.I W
+is used deep in the acceleration pipeline, and modest changes
+are not expected to impact results (though larger values of
+.I W
+do lead to longer run time).
+This flag may be used to override the value of
+.I W
+established for the model by
+.BR hmmbuild ,
+or when the query is sequence-based.
+
+
+
+.TP
+.B --toponly
+Only search the top strand. By default both the query sequence
+and its reverse-complement are searched.
+
+.TP
+.B --bottomonly
+Only search the bottom (reverse-complement) strand. By
+default both the query sequence and its reverse-complement are searched.
+
+
+
+.TP
+.BI --cpu " <n>"
+Set the number of parallel worker threads to
+.IR <n> .
+By default, HMMER sets this to the number of CPU cores it detects in
+your machine - that is, it tries to maximize the use of your available
+processor cores. Setting
+.I <n>
+higher than the number of available cores is of little if any value,
+but you may want to set it to something less. You can also control
+this number by setting an environment variable,
+.IR HMMER_NCPU .
+
+This option is only available if HMMER was compiled with POSIX threads
+support. This is the default, but it may have been turned off at
+compile-time for your site or machine for some reason.
+
+
+.TP
+.BI --stall
+For debugging the MPI master/worker version: pause after start, to
+enable the developer to attach debuggers to the running master and
+worker(s) processes. Send SIGCONT signal to release the pause.
+(Under gdb:
+.IR "(gdb) signal SIGCONT" )
+(Only available if optional MPI support was enabled at compile-time.)
+
+.TP
+.BI --mpi
+Run in MPI master/worker mode, using
+.IR mpirun .
+(Only available if optional MPI support was enabled at compile-time.)
+
+
+
+
+
+
+
+.SH SEE ALSO
+
+See
+.B hmmer(1)
+for a master man page with a list of all the individual man pages
+for programs in the HMMER package.
+
+.PP
+For complete documentation, see the user guide that came with your
+HMMER distribution (Userguide.pdf); or see the HMMER web page
+(@HMMER_URL@).
+
+
+
+.SH COPYRIGHT
+
+.nf
+ at HMMER_COPYRIGHT@
+ at HMMER_LICENSE@
+.fi
+
+For additional information on copyright and licensing, see the file
+called COPYRIGHT in your HMMER source distribution, or see the HMMER
+web page
+(@HMMER_URL@).
+
+
+.SH AUTHOR
+
+.nf
+Eddy/Rivas Laboratory
+Janelia Farm Research Campus
+19700 Helix Drive
+Ashburn VA 20147 USA
+http://eddylab.org
+.fi
+
+
+
diff --git a/hmmer/documentation/man/hmmscan.man b/hmmer/documentation/man/nhmmscan.man
similarity index 63%
copy from hmmer/documentation/man/hmmscan.man
copy to hmmer/documentation/man/nhmmscan.man
index d98a40c..0aff8a1 100644
--- a/hmmer/documentation/man/hmmscan.man
+++ b/hmmer/documentation/man/nhmmscan.man
@@ -1,7 +1,7 @@
-.TH "hmmscan" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
+.TH "nhmmscan" 1 "@HMMER_DATE@" "HMMER @HMMER_VERSION@" "HMMER Manual"
.SH NAME
-hmmscan - search sequence(s) against a profile database
+nhmmscan - search nucleotide sequence(s) against a nucleotide profile database
.SH SYNOPSIS
@@ -15,13 +15,13 @@ hmmscan - search sequence(s) against a profile database
.SH DESCRIPTION
.PP
-.B hmmscan
-is used to search sequences against collections of profiles.
-For each sequence in
-.I <seqfile>,
+.B nhmmscan
+is used to search nucleotide sequences against collections
+of nucleotide profiles. For each sequence in
+.IR <seqfile> ,
use that query sequence to search the target database of
profiles in
-.I <hmmdb>,
+.IR <hmmdb> ,
and output ranked lists of the profiles with the
most significant matches to the sequence.
@@ -41,7 +41,7 @@ The
needs to be press'ed using
.B hmmpress
before it can be searched with
-.B hmmscan.
+.BR hmmscan .
This creates four binary files,
suffixed .h3{fimp}.
@@ -55,15 +55,13 @@ The
.I <hmmdb>
cannot be read from a <stdin> stream, because it needs to have
those four auxiliary binary files generated by
-.B hmmpress.
+.BR hmmpress .
.PP
The output format is designed to be human-readable, but is often so
voluminous that reading it is impractical, and parsing it is a pain. The
.B --tblout
-and
-.B --domtblout
-options save output in simple tabular formats that are concise and
+option saves output in a simple tabular format that is concise and
easier to parse.
The
.B -o
@@ -72,7 +70,6 @@ in /dev/null.
-
.SH OPTIONS
.TP
@@ -93,14 +90,23 @@ instead of the default stdout.
.TP
.BI --tblout " <f>"
Save a simple tabular (space-delimited) file summarizing the
-per-target output, with one data line per homologous target model
-found.
+per-hit output, with one data line per homologous target model
+hit found.
.TP
-.BI --domtblout " <f>"
-Save a simple tabular (space-delimited) file summarizing the
-per-domain output, with one data line per homologous domain
-detected in a query sequence for each homologous model.
+.BI --dfamtblout " <f>"
+Save a tabular (space-delimited) file summarizing the
+per-hit output, similar to
+.B --tblout
+but more succinct.
+
+.TP
+.BI --aliscoresout " <f>"
+Save to file a list of per-position scores for each hit.
+This is useful, for example, in identifying regions of high
+score density for use in resolving overlapping hits from
+different models.
+
.TP
.B --acc
@@ -131,42 +137,24 @@ characters per line. The default is 120.
Reporting thresholds control which hits are reported in output files
(the main output,
-.I --tblout,
+.IR --tblout ,
and
-.I --domtblout).
+.IR --dfamtblout ).
+Hits are ranked by statistical significance (E-value).
.TP
.BI -E " <x>"
-In the per-target output, report target profiles with an E-value of <=
-.I <x>.
+Report target profiles with an E-value of <=
+.IR <x> .
The default is 10.0, meaning that on average, about 10 false positives
will be reported per query, so you can see the top of the noise
and decide for yourself if it's really noise.
.TP
.BI -T " <x>"
-Instead of thresholding per-profile output on E-value, instead
+Instead of thresholding output on E-value, instead
report target profiles with a bit score of >=
-.I <x>.
-
-.TP
-.BI --domE " <x>"
-In the per-domain output, for target profiles that have already satisfied
-the per-profile reporting threshold, report individual domains
-with a conditional E-value of <=
-.I <x>.
-The default is 10.0.
-A conditional E-value means the expected number of additional false
-positive domains in the smaller search space of those comparisons that
-already satisfied the per-profile reporting threshold (and thus must
-have at least one homologous domain already).
-
-
-.TP
-.BI --domT " <x>"
-Instead of thresholding per-domain output on E-value, instead
-report domains with a bit score of >=
-.I <x>.
+.IR <x> .
@@ -178,57 +166,34 @@ Inclusion thresholds control which hits are considered to be
reliable enough
to be included in an output alignment or a subsequent search round.
In
-.B hmmscan, which does not have any alignment output (like
-.B hmmsearch
-or
-.B phmmer)
-nor any iterative search steps (like
-.B jackhmmer),
-inclusion thresholds have little effect. They only affect what domains
-get marked as significant (!) or questionable (?) in domain
+.BR nhmmscan ,
+which does not have any alignment output (like
+.BR nhmmer ),
+inclusion thresholds have little effect. They only affect what hits
+get marked as significant (!) or questionable (?) in hit
output.
.TP
.BI --incE " <x>"
Use an E-value of <=
.I <x>
-as the per-target inclusion threshold.
+as the inclusion threshold.
The default is 0.01, meaning that on average, about 1 false positive
would be expected in every 100 searches with different query
sequences.
.TP
.BI --incT " <x>"
-Instead of using E-values for setting the inclusion threshold, instead
+Instead of using E-values for setting the inclusion threshold,
use a bit score of >=
.I <x>
-as the per-target inclusion threshold.
+as the inclusion threshold.
It would be unusual to use bit score thresholds with
-.I hmmscan,
+.IR hmmscan ,
because you don't expect a single score threshold to work for
different profiles; different profiles have slightly different
expected score distributions.
-.TP
-.BI --incdomE " <x>"
-Use a conditional E-value of <=
-.I <x>
-as the per-domain inclusion threshold, in targets that have already
-satisfied the overall per-target inclusion threshold.
-The default is 0.01.
-
-.TP
-.BI --incdomT " <x>"
-Instead of using E-values,
-instead use a bit score of >=
-.I <x>
-as the per-domain inclusion threshold.
-As with
-.B --incT
-above,
-it would be unusual to use a single bit score threshold in
-.B hmmscan.
-
.SH OPTIONS FOR MODEL-SPECIFIC SCORE THRESHOLDING
@@ -241,50 +206,50 @@ To use these options, the profile must contain the appropriate (GA,
TC, and/or NC) optional score threshold annotation; this is picked up
by
.B hmmbuild
-from Stockholm format alignment files. Each thresholding option has
-two scores: the per-sequence threshold <x1> and the per-domain
-threshold <x2>
-These act as if
-.BI -T <x1>
-.BI --incT <x1>
-.BI --domT <x2>
-.BI --incdomT <x2>
+from Stockholm format alignment files. For a nucleotide model, each
+thresholding option has a single per-hit threshold <x>
+This acts as if
+.BI -T <x>
+.BI --incT <x>
has been applied specifically using each model's curated thresholds.
.TP
.B --cut_ga
-Use the GA (gathering) bit scores in the model to set
-per-sequence (GA1) and per-domain (GA2) reporting and inclusion
+Use the GA (gathering) bit score threshold in the model to set
+per-hit reporting and inclusion
thresholds. GA thresholds are generally considered to be the
reliable curated thresholds defining family membership; for example,
-in Pfam, these thresholds define what gets included in Pfam Full
-alignments based on searches with Pfam Seed models.
+in Dfam, these thresholds are applied when annotating a genome
+with a model of a family known to be found in that organism. They
+may allow for minimal expected false discovery rate.
.TP
.B --cut_nc
-Use the NC (noise cutoff) bit score thresholds in the model to set
-per-sequence (NC1) and per-domain (NC2) reporting and inclusion
-thresholds. NC thresholds are generally considered to be the score of
-the highest-scoring known false positive.
+Use the NC (noise cutoff) bit score threshold in the model to set
+per-hit reporting and inclusion
+thresholds. NC thresholds are less stringent than GA; in the context
+of Pfam, they are generally used to store the score of the
+highest-scoring known false positive.
.TP
.B --cut_tc
-Use the NC (trusted cutoff) bit score thresholds in the model to set
-per-sequence (TC1) and per-domain (TC2) reporting and inclusion
-thresholds. TC thresholds are generally considered to be the score of
-the lowest-scoring known true positive that is above all known false
-positives.
-
+Use the NC (trusted cutoff) bit score threshold in the model to set
+per-hit reporting and inclusion
+thresholds. TC thresholds are more stringent than GA, and are
+generally considered to be the score of the lowest-scoring known
+true positive that is above all known false positives; for example,
+in Dfam, these thresholds are applied when annotating a genome
+with a model of a family not known to be found in that organism.
.SH CONTROL OF THE ACCELERATION PIPELINE
HMMER3 searches are accelerated in a three-step filter pipeline: the
-MSV filter, the Viterbi filter, and the Forward filter. The first
-filter is the fastest and most approximate; the last is the full
+scanning-SSV filter, the Viterbi filter, and the Forward filter. The
+first filter is the fastest and most approximate; the last is the full
Forward scoring algorithm. There is also a bias filter step between
-MSV and Viterbi. Targets that pass all the steps in the acceleration
+SSV and Viterbi. Targets that pass all the steps in the acceleration
pipeline are then subjected to postprocessing -- domain
identification and scoring using the Forward/Backward algorithm.
@@ -295,9 +260,16 @@ postprocessing.
.TP
.B --max
-Turn off all filters, including the bias filter, and run full
-Forward/Backward postprocessing on every target. This increases
-sensitivity somewhat, at a large cost in speed.
+Turn off (nearly) all filters, including the bias filter, and run full
+Forward/Backward postprocessing on most of the target sequence.
+In contrast to
+.B hmmscan,
+where this flag really does turn off the filters entirely, the
+.I --max
+flag in
+.B nhmmscan
+sets the scanning-SSV filter threshold to 0.4, not 1.0. Use of this
+flag increases sensitivity somewhat, at a large cost in speed.
.TP
.BI --F1 " <x>"
@@ -337,21 +309,14 @@ Turn off the null2 score corrections for biased composition.
.TP
.BI -Z " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-sequence E-value calculations,
rather than the actual number of targets seen.
.TP
-.BI --domZ " <x>"
-Assert that the total number of targets in your searches is
-.I <x>,
-for the purposes of per-domain conditional E-value calculations,
-rather than the number of targets that passed the reporting thresholds.
-
-.TP
.BI --seed " <n>"
Set the random number seed to
-.I <n>.
+.IR <n> .
Some steps in postprocessing require Monte Carlo simulation. The
default is to use a fixed seed (42), so that results are exactly
reproducible. Any other positive integer will give different (but also
@@ -360,22 +325,73 @@ reproducible) results. A choice of 0 uses an arbitrarily chosen seed.
.TP
.BI --qformat " <s>"
Assert that the query sequence file is in format
-.I <s>. Accepted formats include
-.I fasta,
-.I embl,
-.I genbank,
-.I ddbj,
-.I uniprot,
-.I stockholm,
-.I pfam,
-.I a2m,
+.IR <s> .
+Accepted formats include
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
and
-.I afa.
+.IR afa .
+The default is to autodetect the format of the file.
+
+
+.TP
+.BI --w_beta " <x>"
+Window length tail mass.
+The upper bound,
+.IR W ,
+on the length at which nhmmer expects to find an instance of the
+model is set such that the fraction of all sequences generated
+by the model with length
+.I ">= W"
+is less than
+.IR <x> .
+The default is 1e-7.
+This flag may be used to override the value of
+.I W
+established for the model by
+.BR hmmbuild .
+
+
+
+.TP
+.BI --w_length " <n>"
+Override the model instance length upper bound,
+.IR W ,
+which is otherwise controlled by
+.BR --w_beta .
+It should be larger than the model length. The value of
+.I W
+is used deep in the acceleration pipeline, and modest changes
+are not expected to impact results (though larger values of
+.I W
+do lead to longer run time).
+This flag may be used to override the value of
+.I W
+established for the model by
+.BR hmmbuild .
+
+
+.TP
+.B --toponly
+Only search the top strand. By default both the query sequence
+and its reverse-complement are searched.
+
+.TP
+.B --bottomonly
+Only search the bottom (reverse-complement) strand. By
+default both the query sequence and its reverse-complement are searched.
+
.TP
.BI --cpu " <n>"
Set the number of parallel worker threads to
-.I <n>.
+.IR <n> .
By default, HMMER sets this to the number of CPU cores it detects in
your machine - that is, it tries to maximize the use of your available
processor cores. Setting
@@ -383,7 +399,7 @@ processor cores. Setting
higher than the number of available cores is of little if any value,
but you may want to set it to something less. You can also control
this number by setting an environment variable,
-.I HMMER_NCPU.
+.IR HMMER_NCPU .
This option is only available if HMMER was compiled with POSIX threads
support. This is the default, but it may have been turned off for your
@@ -396,14 +412,14 @@ For debugging the MPI master/worker version: pause after start, to
enable the developer to attach debuggers to the running master and
worker(s) processes. Send SIGCONT signal to release the pause.
(Under gdb:
-.I (gdb) signal SIGCONT)
+.IR "(gdb) signal SIGCONT" )
(Only available if optional MPI support was enabled at compile-time.)
.TP
.BI --mpi
Run in MPI master/worker mode, using
-.I mpirun.
+.IR mpirun .
(Only available if optional MPI support was enabled at compile-time.)
diff --git a/hmmer/documentation/man/phmmer.man b/hmmer/documentation/man/phmmer.man
index bf3fe93..69cb7f8 100644
--- a/hmmer/documentation/man/phmmer.man
+++ b/hmmer/documentation/man/phmmer.man
@@ -17,9 +17,9 @@ phmmer - search protein sequence(s) against a protein sequence database
.B phmmer
is used to search one or more query protein sequences against a protein sequence database.
For each query sequence in
-.I <seqfile>,
+.IR <seqfile> ,
use that sequence to search the target database of sequences in
-.I <seqdb>,
+.IR <seqdb> ,
and output ranked lists of the sequences with the most significant
matches to the query.
@@ -124,7 +124,7 @@ position-independent gap open and gap extend probabilities.
.TP
.BI --popen " <x>"
Set the gap open probability for a single sequence query model to
-.I <x>.
+.IR <x> .
The default is 0.02.
.I <x>
must be >= 0 and < 0.5.
@@ -132,7 +132,7 @@ must be >= 0 and < 0.5.
.TP
.BI --pextend " <x>"
Set the gap extend probability for a single sequence query model to
-.I <x>.
+.IR <x> .
The default is 0.4.
.I <x>
must be >= 0 and < 1.0.
@@ -141,11 +141,12 @@ must be >= 0 and < 1.0.
.BI --mx " <s>"
Obtain residue alignment probabilities from the built-in
substitution matrix named
-.I <s>.
+.IR <s> .
Several standard matrices are built-in, and do not need to be
read from files.
The matrix name
-.I <s> can be
+.I <s>
+can be
PAM30, PAM70, PAM120, PAM240, BLOSUM45, BLOSUM50, BLOSUM62, BLOSUM80,
or BLOSUM90.
Only one of the
@@ -158,7 +159,7 @@ options may be used.
.BI --mxfile " <mxfile>"
Obtain residue alignment probabilities from the substitution matrix
in file
-.I <mxfile>.
+.IR <mxfile> .
The default score matrix is BLOSUM62 (this matrix is internal to
HMMER and does not have to be available as a file).
The format of a substitution matrix
@@ -176,9 +177,9 @@ options may be used.
Reporting thresholds control which hits are reported in output files
(the main output,
-.I --tblout,
+.IR --tblout ,
and
-.I --domtblout).
+.IR --domtblout ).
Sequence hits and domain hits are ranked by statistical significance
(E-value) and output is generated in two sections called per-target
and per-domain output. In per-target output, by default, all
@@ -193,7 +194,7 @@ E-value reporting thresholds, or to use bit score thresholds instead.
.TP
.BI -E " <x>"
In the per-target output, report target sequences with an E-value of <=
-.I <x>.
+.IR <x> .
The default is 10.0, meaning that on average, about 10 false positives
will be reported per query, so you can see the top of the noise
and decide for yourself if it's really noise.
@@ -202,14 +203,14 @@ and decide for yourself if it's really noise.
.BI -T " <x>"
Instead of thresholding per-profile output on E-value, instead
report target sequences with a bit score of >=
-.I <x>.
+.IR <x> .
.TP
.BI --domE " <x>"
In the per-domain output, for target sequences that have already satisfied
the per-profile reporting threshold, report individual domains
with a conditional E-value of <=
-.I <x>.
+.IR <x> .
The default is 10.0.
A conditional E-value means the expected number of additional false
positive domains in the smaller search space of those comparisons that
@@ -220,7 +221,7 @@ have at least one homologous domain already).
.BI --domT " <x>"
Instead of thresholding per-domain output on E-value, instead
report domains with a bit score of >=
-.I <x>.
+.IR <x> .
.SH OPTIONS CONTROLLING INCLUSION THRESHOLDS
@@ -381,21 +382,21 @@ Turn off the null2 score corrections for biased composition.
.TP
.BI -Z " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-sequence E-value calculations,
rather than the actual number of targets seen.
.TP
.BI --domZ " <x>"
Assert that the total number of targets in your searches is
-.I <x>,
+.IR <x> ,
for the purposes of per-domain conditional E-value calculations,
rather than the number of targets that passed the reporting thresholds.
.TP
.BI --seed " <n>"
Seed the random number generator with
-.I <n>,
+.IR <n> ,
an integer >= 0.
If
.I <n>
@@ -412,18 +413,18 @@ The default seed is 42.
Declare that the input
.I <seqfile>
is in format
-.I <s>.
+.IR <s> .
Accepted formats include
-.I fasta,
-.I embl,
-.I genbank,
-.I ddbj,
-.I uniprot,
-.I stockholm,
-.I pfam,
-.I a2m,
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
and
-.I afa.
+.IR afa .
The default is to autodetect the format of the file.
.TP
@@ -431,24 +432,24 @@ The default is to autodetect the format of the file.
Declare that the input
.I <seqdb>
is in format
-.I <s>.
+.IR <s> .
Accepted formats include
-.I fasta,
-.I embl,
-.I genbank,
-.I ddbj,
-.I uniprot,
-.I stockholm,
-.I pfam,
-.I a2m,
+.IR fasta ,
+.IR embl ,
+.IR genbank ,
+.IR ddbj ,
+.IR uniprot ,
+.IR stockholm ,
+.IR pfam ,
+.IR a2m ,
and
-.I afa.
+.IR afa .
The default is to autodetect the format of the file.
.TP
.BI --cpu " <n>"
Set the number of parallel worker threads to
-.I <n>.
+.IR <n> .
By default, HMMER sets this to the number of CPU cores it detects in
your machine - that is, it tries to maximize the use of your available
processor cores. Setting
@@ -456,25 +457,25 @@ processor cores. Setting
higher than the number of available cores is of little if any value,
but you may want to set it to something less. You can also control
this number by setting an environment variable,
-.I HMMER_NCPU.
+.IR HMMER_NCPU .
This option is only available if HMMER was compiled with POSIX threads
support. This is the default, but it may have been turned off at
compile-time for your site or machine for some reason.
-
+.TP
.BI --stall
For debugging the MPI master/worker version: pause after start, to
enable the developer to attach debuggers to the running master and
worker(s) processes. Send SIGCONT signal to release the pause.
(Under gdb:
-.I (gdb) signal SIGCONT)
+.IR "(gdb) signal SIGCONT" )
(Only available if optional MPI support was enabled at compile-time.)
.TP
.BI --mpi
Run in MPI master/worker mode, using
-.I mpirun.
+.IR mpirun .
(Only available if optional MPI support was enabled at compile-time.)
diff --git a/hmmer/documentation/userguide/Makefile.in b/hmmer/documentation/userguide/Makefile.in
index 65e1512..fb04019 100644
--- a/hmmer/documentation/userguide/Makefile.in
+++ b/hmmer/documentation/userguide/Makefile.in
@@ -28,17 +28,23 @@ SEDITION = ${top_srcdir}/easel/devkit/sedition
RMANPROCESS = ${top_srcdir}/easel/devkit/rmanprocess.pl
MANPAGES = \
+ ${top_srcdir}/documentation/man/alimask.man\
${top_srcdir}/documentation/man/hmmalign.man\
${top_srcdir}/documentation/man/hmmbuild.man\
${top_srcdir}/documentation/man/hmmconvert.man\
${top_srcdir}/documentation/man/hmmemit.man\
${top_srcdir}/documentation/man/hmmfetch.man\
+ ${top_srcdir}/documentation/man/hmmlogo.man\
+ ${top_srcdir}/documentation/man/hmmpgmd.man\
${top_srcdir}/documentation/man/hmmpress.man\
${top_srcdir}/documentation/man/hmmscan.man\
${top_srcdir}/documentation/man/hmmsearch.man\
${top_srcdir}/documentation/man/hmmsim.man\
${top_srcdir}/documentation/man/hmmstat.man\
${top_srcdir}/documentation/man/jackhmmer.man\
+ ${top_srcdir}/documentation/man/makehmmerdb.man\
+ ${top_srcdir}/documentation/man/nhmmer.man\
+ ${top_srcdir}/documentation/man/nhmmscan.man\
${top_srcdir}/documentation/man/phmmer.man
TEXFILES =\
@@ -121,13 +127,13 @@ distclean: clean
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/documentation/userguide/Makefile.in $
-# SVN $Id: Makefile.in 4156 2012-07-10 12:21:15Z nawrockie $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/documentation/userguide/formats.tex b/hmmer/documentation/userguide/formats.tex
index 820b426..9534794 100644
--- a/hmmer/documentation/userguide/formats.tex
+++ b/hmmer/documentation/userguide/formats.tex
@@ -10,17 +10,18 @@ save file. An abridged version is shown here, where (\ldots) mark
deletions made for clarity and space:
\begin{tinysreoutput}
-HMMER3/e [3.0 | March 2010]
+HMMER3/f [3.1 | February 2013]
NAME fn3
ACC PF00041.13
DESC Fibronectin type III domain
LENG 86
ALPH amino
RF no
+MM no
CONS yes
CS yes
MAP yes
-DATE Thu Jun 16 11:48:22 2011
+DATE Fri Feb 15 06:04:13 2013
NSEQ 106
EFFN 11.415833
CKSUM 3564431818
@@ -35,30 +36,32 @@ HMM A C D E F G H I
COMPO 2.70330 4.91262 3.03272 2.64079 3.60307 2.84344 3.74204 3.07942 (...) 3.21526
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 (...) 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.00000 *
- 1 3.16986 5.21447 4.52134 3.29953 4.34285 4.18764 4.30886 3.35801 (...) 3.93889 1 p - -
+ 1 3.16986 5.21447 4.52134 3.29953 4.34285 4.18764 4.30886 3.35801 (...) 3.93889 1 p - - -
2.68629 4.42236 2.77530 2.73088 3.46365 2.40512 3.72505 3.29365 (...) 3.61514
0.09796 2.38361 6.81068 0.10064 2.34607 0.48576 0.95510
- 2 2.70230 5.97353 2.24744 2.62947 5.31433 2.60356 4.43584 4.79731 (...) 4.25623 3 s - -
+ 2 2.70230 5.97353 2.24744 2.62947 5.31433 2.60356 4.43584 4.79731 (...) 4.25623 3 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 (...) 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
(...)
- 85 2.48488 5.72055 3.87501 1.97538 3.04853 3.48010 4.51877 3.51898 (...) 3.43366 120 e - B
+ 85 2.48488 5.72055 3.87501 1.97538 3.04853 3.48010 4.51877 3.51898 (...) 3.43366 120 e - - B
+
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 (...) 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 86 3.03720 5.94099 3.75455 2.96917 5.26587 2.91682 3.66571 4.11840 (...) 4.99111 121 s - E
+ 86 3.03720 5.94099 3.75455 2.96917 5.26587 2.91682 3.66571 4.11840 (...) 4.99111 121 s - - E
+
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 (...) 3.61503
0.00227 6.08723 * 0.61958 0.77255 0.00000 *
//
\end{tinysreoutput}
An HMM file consists of one or more HMMs. Each HMM starts with a
-format version identifier (here, \prog{HMMER3/e}) and ends with
+format version identifier (here, \prog{HMMER3/f}) and ends with
\prog{//} on a line by itself. The format version identifier allows
backward compatibility as the HMMER software evolves: it tells the
parser this file is from HMMER3's save file format version
-e.\footnote{HMMER 3.0 used 3/b format. HMMER 3.1 uses 3/e format.
+f.\footnote{HMMER 3.0 used 3/b format. HMMER 3.1 uses 3/f format.
Some alpha test versions of 3.0 used 3/a format. Internal
- development versions of 3.1 used 3/c and 3/d formats.} The closing
+ development versions of 3.1 used 3/c, 3/d, and 3/e formats.} The closing
\prog{//} allows multiple HMMs to be concatenated.
The format is divided into two regions. The first region contains
@@ -84,16 +87,16 @@ The header section is parsed line by line in a tag/value format. Each
line type is either \textbf{mandatory} or \textbf{optional} as
indicated.
-\begin{sreitems}{\emprog{STATS <s1> <s2> <f>}}
+\begin{sreitems}{\emprog{header}}
-\item [\emprog{HMMER3/b}] Unique identifier for the save file format
- version; the \prog{/b} means that this is HMMER3 HMM file format
- version b. When HMMER3 changes its save file format, the revision
+\item [\emprog{HMMER3/f}] Unique identifier for the save file format
+ version; the \prog{/f} means that this is HMMER3 HMM file format
+ version f. When HMMER3 changes its save file format, the revision
code advances. This way, parsers may easily remain backwards
- compatible. The remainder of the line after the \prog{HMMER3/b} tag
+ compatible. The remainder of the line after the \prog{HMMER3/f} tag
is free text that is ignored by the parser. HMMER currently writes
its version number and release date in brackets here,
- e.g. \prog{[3.0b2 | June 2009]} in this
+ e.g. \prog{[3.1b2 | December 2013]} in this
example. \textbf{Mandatory.}
\item [\emprog{NAME <s>}] Model name; \prog{<s>} is a single word
@@ -116,6 +119,11 @@ in a Stockholm alignment file. \textbf{Optional.}
integer, is the number of match states in the model.
\textbf{Mandatory.}
+\item [\emprog{MAXL <d>}] Max instance length; \prog{<d>}, a positive
+nonzero integer, is the upper bound on the length at which and instance
+of the model is expected to be found. Used only by nhmmer and nhmmscan.
+\textbf{Optional.}
+
\item [\emprog{ALPH <s>}] Symbol alphabet type. For biosequence
analysis models, \prog{<s>} is \prog{amino}, \prog{DNA}, or \prog{RNA}
(case insensitive). There are also other accepted alphabets for
@@ -138,6 +146,17 @@ outputs, and also may optionally be used to define consensus match
columns in profile HMM construction. \textbf{Optional}; assumed to be
no if not present.
+\item [\emprog{MM <s>}] Model masked flag; \prog{<s>} is
+either \prog{no} or \prog{yes} (case insensitive). If \prog{yes}, the
+model mask annotation character field for each match state in the main
+model (see below) is valid; if \prog{no}, these characters are
+ignored. Indicates that the profile model was created such that
+emission probabilities at masked positions are set to match the
+background frequency, rather than being set based on observed frequencies
+in the alignment. Position-specific insertion and deletion rates are not
+altered, even in masked regions. \textbf{Optional}; assumed to be
+no if not present.
+
\item [\emprog{CONS <s>}] Consensus residue annotation flag;
\prog{<s>} is either \prog{no} or \prog{yes} (case insensitive). If
\prog{yes}, the consensus residue field for each match state in the
@@ -289,6 +308,11 @@ The next field is the \prog{RF} annotation for this node. If
character, representing the reference annotation for this match state;
otherwise, this field is `-'.
+The next field is the \prog{MM} mask value for this node. If
+\prog{MM} was \prog{yes} in the header, then this is a single 'm'
+character, indicating that the position was identified as a masked
+position during model construction; otherwise, this field is `-'.
+
The next field is the \prog{CS} annotation for this node. If
\prog{CS} was \prog{yes}, then this is a single character,
representing the consensus structure at this match state; otherwise
@@ -511,6 +535,12 @@ are as follows:
column. The intent is to allow labeling the columns with some
sort of mark.
+\item [\emprog{MM}]
+ Model mask line. An 'm' indicates that the column lies within a
+ masked range, so that \prog{hmmbuild} should produce emissions matching
+ the background for a match state corresponding to that alignment column.
+ Otherwise, a '.' is used.
+
\item [\emprog{SS\_cons}]
Secondary structure consensus. For protein alignments,
DSSP codes or gaps are accepted as markup: [HGIEBTSCX.-\_], where
@@ -659,8 +689,100 @@ column.
+\subsection{hmmpgmd sequence database format}
+
+The hmmpgmd sequence database format closely resembles the
+FASTA format, with slight modification to support use within HMMER's
+\prog{hmmpgmd} daemon.
+
+
+The \prog{hmmpgmd} program enables search of one or more sequence
+databases (e.g. NR, SwissProt, UniProt) within a single instance,
+having loaded a single sequence file into memory. Because the set of
+sequences found within the various databases may overlap, the hmmpgmd
+format allows each sequence to be stored once, and includes a small piece of
+metadata that indicates, for each sequence, the list of source databases in
+which the sequence is found. When a search is performed in \prog{hmmpgmd}, a
+single target database is specified, and search is restricted to sequences
+belonging to that database.
+
+Furthermore, because a single sequence might be found multiple times
+within a single sequence database, \prog{hmmpgmd} is designed to compute
+E-values not just on the total number of non-redundant sequences
+within a database, but on the total number of sequences in the original
+(possibly redundant) database, provided those redundant counts are
+given in the hmmpgmd-formatted file.
+
+The \prog{hmmpgmd} file begins with a single line containing various counts
+describing the contents of the file, of the form
+
+\emprog{\#res\_cnt seq\_cnt db\_cnt cnt\_1 fullcnt\_1 cnt\_2 fullcnt\_2 $\ldots$ date\_stamp}
+
+\subsubsection{Fields in header line}
+\begin{sreitems}{\emprog{header}}
+
+\item [\emprog{res\_cnt}] Number of residues in the sequence file.
+
+\item [\emprog{seq\_cnt}] Number of sequences in the sequence file.
+
+\item [\emprog{db\_cnt}] Number of databases in the sequence file.
+
+\item [\emprog{cnt\_i}] Of the sequnces in the file, the number that belong to
+database \prog{i}. Note that if the file contains only a single
+database, this will match \prog{seq\_cnt}.
+
+\item [\emprog{fullcnt\_i}] For database \prog{i}, the number of sequences
+that should be used in computing E-values. If redundant
+sequences were collapsed out of the original database, this may be
+larger than \prog{cnt\_i}.
+
+\end{sreitems}
+
+
+\subsubsection{FASTA-like sequence format}
+
+In the main body of the sequence file, database sequences are stored
+sequentially, with each entry consisting of a one-line FASTA-like
+header followed by one or more lines containing the amino acid sequence,
+like
+
+\begin{cchunk}
+>1 100
+ACDEFGHIKLMNPQTVWY
+>2 010
+ACDKLMNPQTVWYEFGHI
+>3 111
+EFMNRGHIKLMNPQT
+\end{cchunk}
+Note that the per-entry header line is made up of two parts. The first part
+is a numeric, incrementing sequence identifier (the i'th entry has the
+identifier \prog{i}). The second part is a bit string indicating database
+membership. In this example, sequence 1 is found in database 1, sequence 2 is
+found in database 2, and sequence 3 found in databases 1, 2, and 3. The number
+of bits in each bit string should match \prog{db\_cnt}.
+
+Because \prog{hmmpgmd} accepts only numeric sequence identifiers, it is
+necessary to keep track of the mapping between each numeric sequence identifier
+and the corresponding meta data (e.g. name, accession, description) external to
+the hmmpgmd-format file, and post-process \prog{hmmpgmd} seach results to
+apply those fields to the target sequence information.
+Depending on the size of the map list, this might be easily acheived with a
+simple perl array, or might require a more heavy-duty mapping backend such as
+mongodb (\url{http://www.mongodb.org}).
+
+
+\subsubsection{Creating a file in hmmpgmd format}
+
+The HMMER-Easel tool \prog{esl-reformat} is able to convert a file in unaligned
+fasta format into an hmmpgmd format file, such as
+
+\user{esl-reformat --id\_map mydb.hmmpgmd.map hmmpgmd mydb.fasta > mydb.hmmpgmd}.
+
+The optional \prog{--id\_map} flag captures sequence name and description
+information into a simple tabular file, to be used for mapping those values
+back to \prog{hmmpgmd} query hits.
diff --git a/hmmer/documentation/userguide/install.tex b/hmmer/documentation/userguide/install.tex
index 1bc263d..463cc2c 100644
--- a/hmmer/documentation/userguide/install.tex
+++ b/hmmer/documentation/userguide/install.tex
@@ -4,14 +4,24 @@
\subsection{Quick installation instructions}
-Download \prog{hmmer-3.0.tar.gz} from \url{http://hmmer.org/}, or
-directly from
-\url{ftp://selab.janelia.org/pub/software/hmmer3/hmmer-3.0.tar.gz};
-unpack it, configure, and make:
-
-\user{wget ftp://selab.janelia.org/pub/software/hmmer3/hmmer-3.0.tar.gz}\\
-\user{tar xf hmmer-3.0.tar.gz}\\
-\user{cd hmmer-3.0}\\
+Download \prog{hmmer-3.1b2.tar.gz} from \url{http://hmmer.org/};
+%, or
+%directly from the ftp
+%\url{ftp://selab.janelia.org/pub/software/hmmer3/3.1b2/hmmer-3.1b2.tar.gz};
+unpack it:
+
+\user{wget ftp://selab.janelia.org/pub/software/hmmer3/3.1b2/hmmer-3.1b2.tar.gz}\\
+\user{tar xf hmmer-3.1b2.tar.gz}\\
+\user{cd hmmer-3.1b1}
+
+If you have downloaded a variant "with binaries", the pre-compiled binaries are
+found in the directory \prog{./binaries}. You may copy these into a directory of
+your choosing, or simply run them from here (for example, by adding this directory
+to your \prog{PATH} variable).
+
+If you have downloaded the HMMER source code, you'll need to compile the software
+with configure and make:
+
\user{./configure}\\
\user{make}
@@ -43,7 +53,7 @@ have a copy of Easel separately installed:
\user{cd easel; make install}
That's it. You can keep reading if you want to know more about
-customizing a HMMER3 installation, or you can skip ahead to the next
+customizing a HMMER installation, or you can skip ahead to the next
chapter, the tutorial.
\subsection{System requirements}
@@ -59,7 +69,7 @@ Microsoft Windows.\footnote{There are add-on products available for
Cygwin environment on Windows.} We have tested most extensively on
Linux and on MacOS/X, because these are the machines we develop on.
-\paragraph{Processor:} HMMER3 depends on vector parallelization methods
+\paragraph{Processor:} HMMER depends on vector parallelization methods
that are supported on most modern processors. H3 requires either an
x86-compatible (IA32, IA64, or Intel64) processor that supports the
SSE2 vector instruction set, or a PowerPC processor that supports the
@@ -114,7 +124,7 @@ GNU make and GNU grep.
\subsection{Multithreaded parallelization for multicores is the default}
-The four search programs and \prog{hmmbuild} support multicore
+The six search programs and \prog{hmmbuild} support multicore
parallelization using POSIX threads. By default, the configure script
will identify whether your platform supports POSIX threads (almost all
platforms do), and will automatically compile in multithreading
@@ -129,7 +139,7 @@ your machine. You can control the number of cores each HMMER process
will use for computation with the \ccode{--cpu <x>} command line
option or the \ccode{HMMER\_NCPU} environment variable. Even with a
single processing thread (\ccode{--cpu 1}), HMMER will devote a second
-execution thread to database input, resulting in significant speedup
+execution thread to database input, resulting in possible speedup
over serial execution.
If you specify \ccode{--cpu 0}, the program will run in serial-only
@@ -138,10 +148,10 @@ is awry with the threaded parallel implementation.
\subsection{MPI parallelization for clusters is optional}
-The four search programs and hmmbuild now also support MPI (Message
-Passing Interface) parallelization on clusters. To use MPI, you first
-need to have an MPI library installed, such as OpenMPI
-(\url{www.open-mpi.org}). We use Intel MPI at Janelia.
+MPI (Message Passing Interface) parallelization on clusters is now
+supported in hmmbuild and all search programs except nhmmer and
+nhmmscan. To use MPI, you first need to have an MPI library installed,
+such as OpenMPI (\url{www.open-mpi.org}). We use Intel MPI at Janelia.
MPI support is not enabled by default, and it is not compiled into the
precompiled binaries that we supply with HMMER. To enable MPI support
diff --git a/hmmer/documentation/userguide/introduction.tex b/hmmer/documentation/userguide/introduction.tex
index 9fb6292..f9e104d 100644
--- a/hmmer/documentation/userguide/introduction.tex
+++ b/hmmer/documentation/userguide/introduction.tex
@@ -2,11 +2,11 @@
\setcounter{footnote}{0}
HMMER is used to search sequence databases for homologs of protein
-sequences, and to make protein sequence alignments. HMMER can be used
+or DNA sequences, and to make sequence alignments. HMMER can be used
to search sequence databases with single query sequences but it
-becomes particularly powerful when the query is an multiple sequence
-alignment of a sequence family. HMMER makes a \emph{profile} of the
-query that assigns a position-specific scoring system for
+becomes particularly powerful when the query is an alignment of multiple
+instances of a sequence family. HMMER makes a \emph{profile}
+of the query that assigns a position-specific scoring system for
substitutions, insertions, and deletions. HMMER profiles are
probabilistic models called ``profile hidden Markov models'' (profile
HMMs) \citep{Krogh94,Eddy98,Durbin98}.
@@ -17,13 +17,15 @@ significantly more accurate and more able to detect remote homologs,
because of the strength of its underlying probability models. In the
past, this strength came at a significant computational cost, with
profile HMM implementations running about 100x slower than comparable
-BLAST searches. With HMMER3, HMMER is now essentially as fast as
-BLAST.
-
+BLAST searches for protein search, and about 1000x slower than BLAST
+searches for DNA search. With HMMER3.1, HMMER is now essentially as
+fast as BLAST for protein search, and roughly 5-10x slower than BLAST
+in DNA search\footnote{NCBI blastn with \texttt{--wordsize 7};
+default wordsize of 11 is $\sim$10x faster, but much less sensitive.}.
\subsection{How to avoid reading this manual}
-I hate reading documentation. If you're like me, you're sitting here
+We hate reading documentation. If you're like us, you're sitting here
thinking, \pageref{manualend} pages of documentation, you must be
joking! I just want to know that the software compiles, runs, and
gives apparently useful results, before I read some
@@ -66,17 +68,18 @@ The UC Santa Cruz SAM software is the closest relative of HMMER.
\subsection{What profile HMMs are}
Profile HMMs are statistical models of multiple sequence alignments,
-or even of single sequences. They capture position-specific
-information about how conserved each column of the alignment is, and
-which residues are likely. Anders Krogh, David Haussler, and
-co-workers at UC Santa Cruz introduced profile HMMs to computational
-biology \citep{Krogh94}, adopting HMM techniques which have been used
-for years in speech recognition. HMMs had been used in biology before
-the Krogh/Haussler work, notably by Gary Churchill \citep{Churchill89},
-but the Krogh paper had a dramatic impact because HMM technology was
-so well-suited to the popular ``profile'' methods for searching
-databases using multiple sequence alignments instead of single query
-sequences.
+or even of single sequences. They capture position-specific information about
+how conserved each column of the alignment is, and which
+residues\footnote{In some circles, ``residue" is used to refer specifically in
+reference to amino acids, but here we allow the term to alternately refer
+to nucleotides.} are likely. Anders Krogh, David Haussler, and co-workers at UC
+Santa Cruz introduced profile HMMs to computational biology \citep{Krogh94},
+adopting HMM techniques which have been used for years in speech recognition.
+HMMs had been used in biology before the Krogh/Haussler work, notably by Gary
+Churchill \citep{Churchill89}, but the Krogh paper had a dramatic impact
+because HMM technology was so well-suited to the popular ``profile'' methods
+for searching databases using multiple sequence alignments instead of single
+query sequences.
``Profiles'' had been introduced by Gribskov and colleagues
\citep{Gribskov87,Gribskov90}, and several other groups introduced
@@ -89,8 +92,8 @@ stuck.\footnote{There has been agitation in some quarters to call all
on the name.} All profile methods (including PSI-BLAST
\citep{Altschul97}) are more or less statistical descriptions of the
consensus of a multiple sequence alignment. They use
-\emph{position-specific} scores for amino acids (or nucleotides) and
-position specific penalties for opening and extending an insertion or
+\emph{position-specific} scores for amino acids or nucleotides (residues)
+and position specific penalties for opening and extending an insertion or
deletion. Traditional pairwise alignment (for example, BLAST
\citep{Altschul90}, FASTA \citep{Pearson88}, or the Smith/Waterman
algorithm \citep{Smith81}) uses position-{\em independent} scoring
@@ -128,19 +131,19 @@ instance, because an HMM cannot describe base pairs.
\subsection{Applications of profile HMMs}
-HMMER can be used to replace BLASTP and PSI-BLAST for searching
-databases with single query sequences. With HMMER3, we now include two
-programs for searching databases with single query sequences:
+HMMER can be used to replace BLASTP and PSI-BLAST for searching protein
+databases with single query sequences. HMMER includes two
+programs for searching protein databases with single query sequences:
\prog{phmmer} and \prog{jackhmmer}, where \prog{jackhmmer} is an
iterative search akin to PSI-BLAST.
-Another application of HMMER is when you are working on a protein
+Another application of HMMER is when you are working on a
sequence family, and you have carefully constructed a multiple
-sequence alignment. Your family, like most protein families, has a
-number of strongly (but not absolutely) conserved key residues,
-separated by characteristic spacing. You wonder if there are more
-members of your family in the sequence databases, but the family is so
-evolutionarily diverse, a BLAST search with any individual sequence
+sequence alignment. Your family, like most protein (or DNA) families, has
+a number of strongly (but not absolutely) conserved key amino acids
+(or nucleotides), separated by characteristic spacing. You wonder if there
+are more members of your family in the sequence databases, but the family is
+so evolutionarily diverse, a BLAST search with any individual sequence
doesn't even find the rest of the sequences you already know
about. You're sure there are some distantly related sequences in the
noise. You spend many pleasant evenings scanning weak BLAST alignments
@@ -166,28 +169,29 @@ or fibronectin type III domain?
Another application is the automated construction and maintenance
of large multiple alignment databases. It is useful to organize
sequences into evolutionarily related families. But there are
-thousands of protein sequence families, some of which comprise tens of
+thousands of
+sequence families, some of which comprise tens of
thousands of sequences -- and the primary sequence databases continue
to double every year or two. This is a hopeless task for manual
curation; but on the other hand, manual curation is still necessary
for high-quality, biologically relevant multiple alignments. Databases
-like Pfam \citep{Finn10} are constructed by distinguishing between a
-stable curated ``seed'' alignment of a small number of representative
-sequences, and ``full'' alignments of all detectable homologs; HMMER
-is used to make a model of the seed, search the database for homologs,
-and automatically produce the full alignment by aligning every
+like Pfam \citep{Finn10} and Dfam \citep{Wheeler13} are constructed by
+distinguishing between a stable curated ``seed'' alignment of a small number
+of representative sequences, and ``full'' alignments of all detectable
+homologs; HMMER is used to make a model of the seed, search the database for
+homologs, and can automatically produce the full alignment by aligning every
sequence to the seed consensus.
You may find other applications as well. Using hidden Markov models to
make a linear consensus model of a bunch of related strings is a
pretty generic problem, and not just in biological sequence analysis.
-HMMER3 has already been used to model mouse song [Elena Rivas,
- personal communication] and in the past HMMER has reportedly been
-used to model music, speech, and even automobile engine telemetry. If
-you use it for something particularly strange, I'd be curious to hear
-about it -- but I never, ever want to see my error messages showing up
-on the console of my Saab.
-
+HMMER3 has been used to model mouse song [Elena Rivas, personal
+ communication] and in the past HMMER has reportedly been used to
+model music, speech, and even automobile engine
+telemetry.\footnote{True. We told the company that did it that we now
+ live in fear of our own error messages showing up on our car's
+ dashboard.} If you use it for something particularly strange, we'd
+be curious to hear about it.
\subsection{Design goals of HMMER3}
@@ -201,8 +205,7 @@ molecular biology's most important sequence analysis applications to
use more powerful statistical inference engines, without sacrificing
computational performance.
-Specifically, HMMER3 has three main design features that \emph{in
-combination} distinguish it from previous tools:
+Specifically, HMMER3 has three main design features:
\begin{description}
\item[\textbf{Explicit representation of alignment uncertainty.}]
@@ -212,7 +215,7 @@ combination} distinguish it from previous tools:
alignments become. HMMER3 calculates complete posterior alignment
ensembles rather than single optimal alignments. Posterior ensembles
get used for a variety of useful inferences involving alignment
- uncertainty. For example, any HMMER3 sequence alignment is
+ uncertainty. For example, any HMMER sequence alignment is
accompanied by posterior probability annotation, representing the
degree of confidence in each individual aligned residue.
@@ -231,9 +234,10 @@ combination} distinguish it from previous tools:
posterior alignment ensemble.
\item[\textbf{Speed.}] A major limitation of previous profile HMM
- implementations (including HMMER2) was their slow
- performance. HMMER3 implements a new heuristic acceleration
- algorithm. For most queries, it's about as fast as BLAST.
+ implementations (including HMMER2) was their slow performance. HMMER3
+ implements a heuristic acceleration algorithm. For most protein
+ queries, it's about as fast as BLAST, while for DNA queries it's
+ typically less than 10x slower than sensitive settings for BLAST.
\end{description}
Individually, none of these points is new. As far as alignment
@@ -278,28 +282,75 @@ to modern hardware architectures. We expect to be able to take good
advantage of GPUs and other parallel processing environments in the
near future.
-\subsection{What's still missing in HMMER3}
+\subsection{What's different in HMMER3, compared to HMMER2}
+
+If you're upgrading from using HMMER2, you will notice these main
+issues, among many lesser ones:
+
+\paragraph{Speed.} Did we mention, HMMER3 is 100-1000x faster? No more
+coffee breaks waiting for results.
+
+\paragraph{No model calibration: hmmcalibrate is gone.} If you're looking for the
+\prog{hmmcalibrate} program, it's not there any more. We understand
+the statistics of HMMER scores well enough now that a
+compute-intensive calibration step is unnecessary. There's still a
+model statistics calibration step but it's tiny by comparison to what
+HMMER2 had to do, so now it's built into \prog{hmmbuild}, and into
+single sequence searches like \prog{phmmer} and \prog{jackhmmer}.
+
+\paragraph{Local alignments, not glocal alignments.} We only
+understand the statistics of HMMER \emph{local} Forward scores, so
+HMMER3 (for now) only does local alignment. HMMER2 used glocal
+alignment by default (global with respect to the query profile, local
+in the target sequence), and had an option for doing local alignment.
+Whereas we used to build two HMMER2 models for each Pfam domain (a
+glocal mode one and a local mode one) now we build just one HMMER3
+model. Because HMMER3 does local alignment, you'll notice more
+ragged-ended annotations of Pfam domains, for example. In a few cases
+of short domains, such as zinc fingers, HMMER3 can be less sensitive
+than HMMER2, because even though HMMER3's parameterization is more
+sensitive than HMMER2's, glocal alignment (when a complete domain is
+in fact present) is more sensitive than local. No, we're not happy
+about it either, but the benefits greatly outweigh the costs.
+
+
+\subsection{What's new in HMMER3.1, compared to HMMER 3.0}
+
+\paragraph{DNA sequence comparison.} HMMER now includes tools that are
+specifically designed for DNA/DNA comparison: \prog{nhmmer} and
+\prog{nhmmscan}. These give the ability to search long
+(e.g. chromosome length) target sequences.
+
+\paragraph{More sequence input formats.} HMMER now handles a wide variety of
+input sequence file formats, both aligned (Stockholm, Aligned FASTA, Clustal,
+NCBI PSI-BLAST, PHYLIP, Selex, UCSC SAM A2M) and unaligned (FASTA, EMBL,
+Genbank), usually with autodetection.
+
+\paragraph{MSV stage of HMMER acceleration pipeline now even faster.}
+ Bjarne Knudsen, chief scientific officer of CLCbio, contributed an
+ important optimization of the MSV filter (the first stage in the
+ accelerated "filter pipeline") that increases overall HMMER3 speed by
+ about two-fold.
+
+\paragraph{Faster DNA search using FM-index methods.} This beta release includes a new
+option for increasing the speed of searching DNA sequence files. A
+binary file is created in a preprocessing step, using the tool
+\prog{makehmmerdb}. The tool \prog{nhmmer} then utilizes this binary
+format to support a fast new seed-finding stage. Using default
+settings in \prog{nhmmer}, we have observed a roughly 10-fold
+acceleration with small loss of sensitivity on benchmarks. (This
+method has been tested, but should still be treated as somewhat
+experimental.)
+
+
+\subsection{What's still missing in HMMER3.1}
Even though this is a stable public release that we consider suitable
for large-scale production work (genome annotation, Pfam analysis,
-whatever), at the same time, HMMER3 remains a work in progress. We
-think the codebase is a suitable foundation for development of a
-number of significantly improved approaches to classically important
-problems in sequence analysis. Some of the more important ``holes''
-for us are:
-
-\paragraph{DNA sequence comparison.} HMMER3's search pipeline is somewhat
-specialized to protein/protein comparison. Specifically, the pipeline
-works by filtering individual sequences, winnowing down to a subset of
-the sequences in a database that need close attention from the full
-heavy artillery of Bayesian inference. This strategy doesn't work for
-long DNA sequences; it doesn't filter the human genome much to say
-``there's a hit on chromosome 1''. The algorithms need to be adapted
-to identify high-scoring regions of a target sequence, rather than
-filtering by whole sequence scores. (You can chop a DNA sequence into
-overlapping windows and HMMER3 would work fine on such a chopped-up
-database, but that's a disgusting kludge and I don't want to know
-about it.)
+whatever), at the same time, HMMER is a work in progress. We think the
+codebase is a suitable foundation for development of a number of
+significantly improved approaches to classically important problems in
+sequence analysis. Some of the more important ``holes'' for us are:
\paragraph{Translated comparisons.} We'd of course love to have the HMM
equivalents of BLASTX, TBLASTN, and TBLASTX. They'll come.
@@ -315,18 +366,7 @@ power, and at HMMER3 speed.
We also have some technical and usability issues we will be addressing
Real Soon Now:
-\paragraph{More sequence input formats.} HMMER3 will work fine with FASTA
-files for unaligned sequences, and Stockholm and ``aligned FASTA''
-files for multiple sequence alignments. It has parsers for a handful
-of other formats (GenBank, EMBL, and UniProt flatfiles; SELEX format
-alignments) that we've tested somewhat. It's particularly missing
-parsers for some widely used alignment formats such as Clustal format,
-so using HMMER3 on the MSAs produced by many popular multiple
-alignment programs (MUSCLE or MAFFT for example) is harder than it
-should be, because it may require a reformat to Stockholm or aligned
-FASTA format.
-
-\paragraph{More alignment modes.} HMMER3 \emph{only} does local
+\paragraph{More alignment modes.} As mentioned above, HMMER3 \emph{only} does local
alignment. HMMER2 also could do glocal alignment (align a complete
model to a subsequence of the target) and global alignment (align a
complete model to a complete target sequence). The E-value statistics
@@ -337,16 +377,15 @@ sequences with poor P-values.
\paragraph{More speed.} Even on x86 platforms, HMMER3's acceleration
algorithms are still on a nicely sloping bit of their asymptotic
-optimization curve. I still think we can accelerate the code by
-another two-fold or so. Additionally, for a small number of HMMs
-($<1$\% of Pfam models), the acceleration core is performing
-relatively poorly, for reasons we pretty much understand (having to do
-with biased composition; most of these pesky models are hydrophobic
-membrane proteins), but which are nontrivial to work around. This'll
-produce an annoying behavior that you may notice: if you look
-systematically, sometimes you'll see a model that runs at something
-more like HMMER2 speed, 100x or so slower than an average query. This,
-needless to say, Will Be Fixed.
+optimization curve. We still think we can accelerate the code by another
+two-fold or so, perhaps more for DNA search. Additionally, for a small number
+of HMMs ($<1$\% of Pfam models), the acceleration core is performing relatively
+poorly, for reasons we pretty much understand (having to do with biased
+composition; most of these pesky models are hydrophobic membrane proteins), but
+which are nontrivial to work around. This'll produce an annoying behavior that
+you may notice: if you look systematically, sometimes you'll see a model that
+runs at something more like HMMER2 speed, 100x or so slower than an average
+query. This, needless to say, Will Be Fixed.
\paragraph{More processor support.} One of the attractive features of the
HMMER3 ``MSV'' acceleration algorithm is that it is a very tight and
@@ -358,14 +397,24 @@ but none of this is far along as yet. But this work (combined with the
parallelization) is partly why we expect to wring significantly more
speed out of HMMER in the future.
+\paragraph{Better parallelization.} HMMER3 is so fast that it's often
+input-bound, rather than CPU-bound: that is, it takes longer to get at
+the sequences than it takes to compare them to a profile. That's
+taxing the simple parallelization methods we use. HMMER3's
+multithreaded parallelization really doesn't scale well beyond 2-4
+processors, on most machines; and possibly worse, if you're on a slow
+filesystem (for example, if you're reading data from a network
+filesystem instead of from local disk). We need to do a lot more work
+on our parallelization and our data input.
+
\subsection{How to learn more about profile HMMs}
\textbf{Cryptogenomicon} (\url{http://cryptogenomicon.org/}) is a blog
-where I'll be talking about issues as they arise in HMMER3, and where
-you can comment or follow the discussion.
+where we will be talking about issues as they arise in HMMER3, and
+where you can comment or follow the discussion.
-Reviews of the profile HMM literature have been written by myself
+Reviews of the profile HMM literature have been written by us
\citep{Eddy96,Eddy98} and by Anders Krogh \citep{Krogh98}.
For details on how profile HMMs and probabilistic models are used in
@@ -373,6 +422,9 @@ computational biology, see the pioneering 1994 paper from Krogh et
al. \citep{Krogh94} or our book \emph{Biological Sequence Analysis:
Probabilistic Models of Proteins and Nucleic Acids} \citep{Durbin98}.
+For details on many aspects of the inner workings
+of HMMER3, see recent papers by us \citep{Eddy09b,Eddy11}.
+
To learn more about HMMs from the perspective of the speech
recognition community, an excellent tutorial introduction has been
written by Rabiner \citep{Rabiner89}.
@@ -381,7 +433,7 @@ written by Rabiner \citep{Rabiner89}.
There is still no ``real'' paper on HMMER. If you're writing for an
enlightened (url-friendly) journal, the best reference is
\url{http://hmmer.org/}.
-If you must use a paper reference, the best one to use is my 1998
+If you must use a paper reference, the best one to use is our 1998
profile HMM review \citep{Eddy98}.
\end{srefaq}
diff --git a/hmmer/documentation/userguide/more.tex b/hmmer/documentation/userguide/more.tex
index 7fd5262..810380a 100644
--- a/hmmer/documentation/userguide/more.tex
+++ b/hmmer/documentation/userguide/more.tex
@@ -16,13 +16,13 @@ the header will say:
\begin{sreoutput}
# hmmscan :: search sequence(s) against a profile database
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
\end{sreoutput}
-So (from the second line there) this is from HMMER 3.0.
+So (from the second line there) this is from HMMER 3.1.
There is not yet any appropriate citable published paper that
describes the HMMER3 software suite.
@@ -121,7 +121,8 @@ incantations that generate subsets of queries or targets on the
fly. For example:
\user{esl-sfetch --index uniprot\_sprot.fasta}
-\user{cat mytargets.list | esl-sfetch -f uniprot\_sprot.fasta - | hmmsearch globins4.hmm -}
+
+\user{cat mytargs.list | esl-sfetch -f uniprot\_sprot.fasta - | hmmsearch globins4.hmm -}
This takes a list of sequence names/accessions in
\prog{mytargets.list}, fetches them one by one from UniProt (note that
@@ -136,6 +137,7 @@ database queries).
Ditto for piping subsets of profiles. Supposing you have a copy of Pfam in Pfam-A.hmm:
\user{hmmfetch --index Pfam-A.hmm}
+
\user{cat myqueries.list | hmmfetch -f Pfam.hmm - | hmmsearch - uniprot\_sprot.fasta}
This takes a list of query profile names/accessions in
@@ -166,6 +168,7 @@ containing multiple profile queries against a streamed target
database:
\user{cat myqueries.list | hmmfetch -f Pfam.hmm > many.hmms}
+
\user{cat mytargets.list | esl-sfetch -f uniprot\_sprot.fasta - | hmmsearch many.hmms -}
This will fail. Unfortunately the above business about how it will
@@ -185,6 +188,7 @@ multiple queries against multiple targets, you always want to be
reading the \emph{queries} from a stdin pipe, not the targets:
\user{cat mytargets.list | esl-sfetch -f uniprot\_sprot.fasta > mytarget.seqs}
+
\user{cat myqueries.list | hmmfetch -f Pfam.hmm - | hmmsearch - mytarget.seqs}
So in this multiple queries/multiple targets case of using stdin
diff --git a/hmmer/documentation/userguide/pipeline.tex b/hmmer/documentation/userguide/pipeline.tex
index cb39dea..d5771ad 100644
--- a/hmmer/documentation/userguide/pipeline.tex
+++ b/hmmer/documentation/userguide/pipeline.tex
@@ -1,14 +1,18 @@
-\section{The HMMER3 profile/sequence comparison pipeline}
+\section{The HMMER profile/sequence comparison pipeline}
\label{section:pipeline}
\setcounter{footnote}{0}
In this section, we briefly outline the processing pipeline for a
single profile/sequence comparison.\footnote{Code gurus and
masochists: you can follow along in \ccode{src/p7\_pipeline.c}.} This
-should help give you a sense of what HMMER3 is doing under the hood,
+should help give you a sense of what HMMER is doing under the hood,
what sort of mistakes it may make (rarely, of course!), and what the
-various results in the output actually mean.
+various results in the output actually mean. We'll first describe the
+pipeline in the context of protein search (\prog{phmmer}, \prog{hmmsearch},
+\prog{hmmscan}, \prog{jackhmmer}), then wrap back around to discuss the
+modified pipeline used in \prog{nhmmer} and \prog{nhmmscan}.
+
In briefest outline, the comparison pipeline takes the following
steps:
@@ -69,7 +73,8 @@ steps:
\end{description}
-In more detail, each step is described in subsections that follow:
+In more detail, each step is described in subsections that follow. Even more
+detail may be found in \citep{Eddy11}.
\subsection{Null model.}
@@ -107,8 +112,12 @@ Viterbi''. This is HMMER's main speed heuristic.
The MSV score is comparable to BLAST's sum score (optimal sum of
ungapped alignment segments). Roughly speaking, MSV is comparable to
skipping the heuristic word hit and hit extension steps of the BLAST
-acceleration algorithm. HMMER uses vector parallelization methods to
-accelerate optimal ungapped alignment.
+acceleration algorithm.
+
+The MSV filter is very, very fast. In addition to avoiding indel
+calculations in the dynamic programming table, it uses reduced precision
+scores scaled to 8-bit integers, enabling acceleration via 16-way
+parallel SIMD vector instructions.
The MSV score is a true log-odds likelihood ratio, so it obeys
conjectures about the expected score distribution \citep{Eddy08} that
@@ -120,7 +129,7 @@ filter, meaning that about $2\%$ of nonhomologous sequences are
expected to pass. You can use the \ccode{--F1 <x>} option to change
this threshold. For example, \ccode{--F1 <0.05>} would pass 5\% of the
comparisons, making a search more sensitive but slower. Setting the
-threshold to $>1.0$ (\ccode{--F1 99} for example) assures that all
+threshold to $\ge 1.0$ (\ccode{--F1 99} for example) assures that all
comparisons will pass. Shutting off the MSV filter may be worthwhile
if you want to make sure you don't miss comparisons that have a lot of
scattered insertions and deletions. Alternatively, the \ccode{--max}
@@ -154,7 +163,7 @@ composition, but these methods are computationally expensive and
applied late in the pipeline (described below).
In a few cases, profiles and/or target sequences are sufficiently
-biased that too many comparisons pass the MSV filter, causing HMMER3
+biased that too many comparisons pass the MSV filter, causing HMMER
speed performance to be severely degraded. Although the final scores
and E-values at the end of the pipeline will be calculated taking into
account a ``null2'' model of biased composition and simple repetition,
@@ -162,7 +171,7 @@ the null2 model is dependent on a full alignment ensemble calculation
via the Forward/Backward algorithm, making it computationally complex,
so it won't get calculated until the very end. The treatment of biased
composition comparisons is probably the most serious problem remaining
-in HMMER3. Solving it well will require more research. As a stopgap
+in HMMER. Solving it well will require more research. As a stopgap
solution to rescuing most of the speed degradation while not
sacrificing too much sensitivity, an \emph{ad hoc} biased composition
filtering step is applied to remove highly biased comparisons.
@@ -420,7 +429,7 @@ $L$ is the length of the envelope subsequence. Usually in
enough that this is not a problem. For example, a typical Pfam domain
model is about 200 residues long, matching to individual target
envelopes of about 200 residues each; this requires about 1.4 MB of
-memory in MEA alignment. However, in the new \prog{phmmer} and
+memory in MEA alignment. However, in \prog{phmmer} and
\prog{jackhmmer} programs, it's often going to be the case that you're
aligning an entire query sequence to an entire target sequence in a
single unresolved ``domain'' alignment. If this is titin (about 40,000
@@ -430,8 +439,7 @@ sequences of up to a few thousand residues. If you see a ``fatal
exception'' error complaining about failure of a large memory
allocation, you're almost certainly seeing a prohibitive memory
requirement at this stage.\footnote{We know how to fix this, with
- memory-efficient algorithms. It's just a matter of finding the time
- to do it.}
+ memory-efficient algorithms, and are working on it.}
In a tabular output (\ccode{--tblout}) file, the number of domains in
envelopes (before any significance thresholding) is in the column
@@ -441,15 +449,86 @@ envelopes.
\paragraph{Biased composition score correction (``null2'')}
An \emph{ad hoc} biased composition score correction is calculated for
each envelope, using the posterior decoding. A corrected bit score and
-P-value for each envelope is calculated. These per-domain scores and
-P-values will eventually be subjected to per-domain thresholds to
-define significant domains that will appear in output.
-
-Once the position-specific ``null2'' score is available, specifying a
-biased composition correction that applies to every residue, the total
-corrected bit score for the target sequence is recalculated, by
-summing up envelope scores for each significant domain.
-
-
-
+P-value for each envelope is calculated. These null2-corrected scores
+are subjected to the reporting and inclusion thresholds, at both the full
+sequence level and per-domain.
+
+%Once the position-specific ``null2'' score is available, specifying a
+%biased composition correction that applies to every residue, the total
+%corrected bit score for the target sequence is recalculated, by
+%summing up envelope scores for each significant domain.
+
+
+
+\subsection{Modifications to the pipeline as used for DNA search.}
+
+\subsubsection{SSV, not MSV.}
+
+In the MSV filter, one or more high-scoring ungapped segments contribute to a
+score that, if sufficiently high, casues the entire sequence to be passed on to
+the next stage (the bias filter). This strategy won't work for long
+DNA sequences; it doesn't filter the human genome much to say ``there's a hit on
+chromosome 1, now process the whole thing''. In the scanning-SSV (``Single
+ungapped Segment Viterbi'') algorithm used in \prog{nhmmer} and
+\prog{nhmmscan}, each comparison between a query and target is
+scanned for high-scoring ungapped alignment segments, and a window around each
+such segment is extracted, merging overlapping windows. Each window is then
+passed on to the remaining filter cascade, where it is (for the most part)
+treated as described above. As with the MSV filter, the default P-value
+threshold is $0.02$, and can be controlled with the \ccode{--F1} flag.
+
+The \ccode{--max} flag also controls the amount of the sequence database that
+passes the SSV filter, but instead of the threshold being set to $1.0$, as
+described for the protein pipeline, it is set to $0.4$.
+%, which allows passage to anything with a sniff of a chance of passing the
+% final threshold
+
+%Without doing this, the
+%segment-surrounding windows all overlap to the point that merging them causes
+%full-length chromosomes to possibly trickle down to the later
+%envelope-definition machinery, causing to out-of-memory errors. As a special
+%hack in case of very long merged windows, a maximum window length of 80Kb is
+%enforced by splitting long windows (keeping overlapping blocks, and tracking
+%shared hits as necessary to avoid duplicates).
+
+
+\subsubsection{There are no domains, but there are envelopes.}
+
+In HMMER's protein-search programs, multiple matches of the model to a target
+sequence are treated as domains contained within a single hit for that
+sequence. In the DNA-search programs, each match of the model to a subsequence
+is treated as an independent hit - there's no notion of a domain. This is
+largely a difference in reporting; both pipelines rely on essentially the same
+envelope detection code; envelopes lead to domains in protein search, and
+hits in DNA search.
+
+
+\subsubsection{Biased composition.}
+
+DNA sequence is littered with regions containing tandem simple repeats or other
+low complexity sequence. Without accounting for such composition bias, we see
+many cases in which one part of a hit is obviously legitimate, and serves as the
+anchor for a neighboring alignment segment that is clearly low-complexity
+garbage, one form of a problem known as homologous overextension
+\citep{Gonzalez10}. The null2 method used in protein search delays score
+modification until after the alignment is complete, but we know that
+this kind of overextension can be (mostly) avoided if the model's log odds
+scores account for the composition bias of the target region while constructing
+the alignment. The DNA search pipeline therefore does just this: it modifies
+the scoring scheme for each target envelope as a function of that envelope's
+sequence composition, then builds the alignment according to that scheme.
+
+
+%\subsubsection{More about envelopes.}
+
+%DNA sequence is littered with regions containing tandem simple repeats or other
+%low complexity sequence. When an HMM contains a regions with similar bias, the
+%envelope-definition machinery can produce absurdly long envelopes
+%around plausible alignments\footnote{we've seen envelopes extending more than
+%1000 bases beyond the end of an alignment of length 300}. This happens because
+%the region-identification method is confused: there are many overlapping weak
+%hits, with no discrete alignment good enough to call a hit.
+
+%By trimming these very long envelopes such that they are no more than 20 bases
+%beyond the edges of the aligned range, \ldots
diff --git a/hmmer/documentation/userguide/tabular.tex b/hmmer/documentation/userguide/tabular.tex
index ef34a1e..438cd8d 100644
--- a/hmmer/documentation/userguide/tabular.tex
+++ b/hmmer/documentation/userguide/tabular.tex
@@ -8,10 +8,14 @@ The \ccode{--tblout} output option produces the \emph{target hits
table}. The target hits table consists of one line for each
different query/target comparison that met the reporting thresholds,
ranked by decreasing statistical significance (increasing E-value).
-Each line consists of \textbf{18 space-delimited fields} followed by a
-free text target sequence description, as follows:\footnote{The
- \ccode{tblout} format is deliberately space-delimited (rather than
- tab-delimited) and justified into aligned columns, so these files
+
+
+\paragraph{tblout fields for protein search programs}
+
+In the protein search programs, each line consists of \textbf{18
+space-delimited fields} followed by a free text target sequence description, as
+follows:\footnote{The \ccode{tblout} format is deliberately space-delimited
+(rather than tab-delimited) and justified into aligned columns, so these files
are suitable both for automated parsing and for human
examination. Tab-delimited data files are difficult for humans to
examine and spot check. For this reason, we think tab-delimited
@@ -121,7 +125,67 @@ free text target sequence description, as follows:\footnote{The
The remainder of the line is the target's description line, as free text.
\end{description}
-This table is columnated neatly for human readability, but do not
+
+
+\paragraph{tblout fields for DNA search programs}
+
+In the DNA search programs, there is less concentration on domains, and more
+focus on presenting the hit ranges. Each line consists of \textbf{15
+space-delimited fields} followed by a free text target sequence description, as follows:
+
+\begin{description}
+\item[\emprog{(1) target name:}]
+ The name of the target sequence or profile.
+
+\item[\emprog{(2) accession:}]
+ The accession of the target sequence or profile, or '-' if none.
+
+\item[\emprog{(3) query name:}]
+ The name of the query sequence or profile.
+
+\item[\emprog{(4) accession:}]
+ The accession of the query sequence or profile, or '-' if none.
+
+\item[\emprog{(5) hmmfrom:}]
+ The position in the hmm at which the hit starts.
+
+\item[\emprog{(6) hmm to:}]
+ The position in the hmm at which the hit ends.
+
+\item[\emprog{(7) alifrom:}]
+ The position in the target sequence at which the hit starts.
+
+\item[\emprog{(8) ali to:}]
+ The position in the target sequence at which the hit ends.
+
+\item[\emprog{(9) envfrom:}]
+ The position in the target sequence at which the surrounding envelope starts.
+
+\item[\emprog{(10) env to:}]
+ The position in the target sequence at which the surrounding envelope ends.
+
+\item[\emprog{(11) sq len:}]
+ The length of the target sequence..
+
+\item[\emprog{(12) strand:}]
+ The strand on which the hit was found (``-" when alifrom>ali to).
+
+\item[\emprog{(13) E-value:}] The expectation value
+ (statistical significance) of the target, as above.
+
+\item[\emprog{(14) score (full sequence):}]
+ The score (in bits) for this hit. It includes the biased-composition
+ correction.
+
+\item[\emprog{(15) Bias (full sequence):}] The biased-composition
+ correction, as above
+
+\item[\emprog{(16) description of target:}]
+ The remainder of the line is the target's description line, as free text.
+\end{description}
+
+
+These tables are columnated neatly for human readability, but do not
write parsers that rely on this columnation; rely on space-delimited
fields. The pretty columnation assumes fixed maximum widths for each
field. If a field exceeds its allotted width, it will still be fully
@@ -145,16 +209,16 @@ E-value calculations is different (number of target sequences for
\prog{phmmer} where the query is a sequence and the targets are also
sequences?
-If the ``domain number estimation'' section of the table (exp, reg,
+If the ``domain number estimation'' section of the protein table (exp, reg,
clu, ov, env, dom, rep, inc) makes no sense to you, it may help to
-read the previous section of the manual, which describes the HMMER3
+read the previous section of the manual, which describes the HMMER
processing pipeline, including the steps that probabilistically define
domain locations in a sequence.
-\subsection{The domain hits table}
+\subsection{The domain hits table (protein search only)}
-The \ccode{--domtblout} option produces the \emph{domain hits
- table}. There is one line for each domain. There may be more than
+In protein search programs, the \ccode{--domtblout} option produces the
+\emph{domain hits table}. There is one line for each domain. There may be more than
one domain per sequence. The domain table has \textbf{22
whitespace-delimited fields} followed by a free text target sequence
description, as follows:
diff --git a/hmmer/documentation/userguide/titlepage.tex.in b/hmmer/documentation/userguide/titlepage.tex.in
index bd29189..f27eba6 100644
--- a/hmmer/documentation/userguide/titlepage.tex.in
+++ b/hmmer/documentation/userguide/titlepage.tex.in
@@ -17,12 +17,8 @@ Version @HMMER_VERSION@; @HMMER_DATE@ \\
\vspace*{\fill}
-Sean R. Eddy\\
-for the HMMER Development Team\\
-Janelia Farm Research Campus\\
-19700 Helix Drive\\
-Ashburn VA 20147 USA\\
-\url{http://eddylab.org/} \\
+Sean R. Eddy, Travis J. Wheeler,\\
+and the HMMER development team\\
\end{center}
\vspace*{\fill}
diff --git a/hmmer/documentation/userguide/tutorial.tex b/hmmer/documentation/userguide/tutorial.tex
index 049f433..c847932 100644
--- a/hmmer/documentation/userguide/tutorial.tex
+++ b/hmmer/documentation/userguide/tutorial.tex
@@ -4,7 +4,7 @@
\setcounter{footnote}{0}
Here's a tutorial walk-through of some small projects with
-HMMER3. This should suffice to get you started on work of your own,
+HMMER. This should suffice to get you started on work of your own,
and you can (at least temporarily) skip the rest of the Guide,
such as all the nitty-gritty details of available command line
options.
@@ -12,20 +12,31 @@ options.
\subsection {The programs in HMMER}
\begin{tabular}{ll}
-\multicolumn{2}{c}{\textbf{Single sequence queries: new to HMMER3}} \\
- & \\
-\textbf{phmmer} & Search a sequence against a sequence database. (BLASTP-like) \\
-\textbf{jackhmmer} & Iteratively search a sequence against a sequence database. (PSIBLAST-like) \\
- & \\
-\multicolumn{2}{c}{\textbf{Replacements for HMMER2's functionality}} \\
- & \\
-\textbf{hmmbuild} & Build a profile HMM from an input multiple alignment.\\
-\textbf{hmmsearch} & Search a profile HMM against a sequence database.\\
-\textbf{hmmscan} & Search a sequence against a profile HMM database.\\
-\textbf{hmmalign} & Make a multiple alignment of many sequences to a common profile HMM.\\
- & \\
+
+\multicolumn{2}{c}{\textbf{Build models and align sequences (DNA or protein)}}
+\\ & \\
+\textbf{hmmbuild} & Build a profile HMM from an input multiple alignment.\\
+\textbf{hmmalign} & Make a multiple alignment of many sequences to a common profile HMM.\\
+& \\
+
+\multicolumn{2}{c}{\textbf{Search protein queries against protein database}} \\
+& \\
+\textbf{phmmer} & Search a single protein sequence against a protein sequence database. (BLASTP-like) \\
+\textbf{jackhmmer} & Iteratively search a protein sequence against a protein sequence database. (PSIBLAST-like) \\
+\textbf{hmmsearch} & Search a protein profile HMM against a protein sequence database.\\
+\textbf{hmmscan} & Search a protein sequence against a protein profile HMM database.\\
+\textbf{hmmpgmd} & Search daemon used for hmmer.org website.\\
+& \\
+
+\multicolumn{2}{c}{\textbf{Search DNA queries against DNA database}} \\
+& \\
+\textbf{nhmmer} & Search a DNA sequence, alignment, or profile HMM against a DNA sequence database. (BLASTN-like)\\
+\textbf{nhmmscan} & Search a DNA sequence against a DNA profile HMM database.\\
+& \\
+
\multicolumn{2}{c}{\textbf{Other utilities}}\\
& \\
+\textbf{alimask} & Modify alignment file to mask column ranges.\\
\textbf{hmmconvert} & Convert profile formats to/from HMMER3 format.\\
\textbf{hmmemit} & Generate (sample) sequences from a profile HMM.\\
\textbf{hmmfetch} & Get a profile HMM by name or accession from an HMM database.\\
@@ -39,15 +50,62 @@ core functionality for protein domain analysis and annotation
pipelines, for instance using profile databases like Pfam or
SMART.
-The \prog{phmmer} and \prog{jackhmmer} programs are new to
-HMMER3. They search a single sequence against a sequence database,
-akin to BLASTP and PSIBLAST, respectively. (Internally, they just
-produce a profile HMM from the query sequence, then run HMM searches.)
+The \prog{phmmer} and \prog{jackhmmer} programs search a single protein
+sequence against a protein sequence database, akin to BLASTP and PSIBLAST,
+respectively. (Internally, they just produce a profile HMM from the query
+sequence, then run HMM searches.)
+
+The pair \prog{nhmmer/nhmmscan} are new to HMMER3.1. The program \prog{nhmmer}
+can search against a DNA sequence database with a query of a prebuilt HMM (built
+using \prog{hmmbuild}), a multiple sequence alignment, or a single sequence. The
+program \prog{nhmmscan} can search an HMM database with a DNA sequence query.
-In the Tutorial section, I'll show examples of running each of these
+The program \prog{hmmpgmd} is also new to HMMER3.1. It is the daemon that
+we use internally for the hmmer.org web server, and essentially
+stands in front of the protein search tools \prog{phmmer}, \prog{hmmsearch},
+and \prog{hmmscan}. As a daemon, it starts up, loads the target database into
+memory, then performs searches against that database as requested by client
+programs.
+
+In the Tutorial section, we'll show examples of running each of these
programs, using examples in the \ccode{tutorial/} subdirectory of the
distribution.
+\subsection{Supported formats}
+
+HMMER can usually automatically detect the format of a multiple sequence
+alignment, for example given to \prog{hmmbuild} or as the query to
+\prog{nhmmer}. To override autodetection, specify \ccode{--informat afa} on the
+command line of any program that reads an input alignment.
+
+HMMER can also usually detect the format of an unaligned
+sequence file, for example given as the target database to one of the search
+programs, or as input to \prog{hmmalign}. Autodetection can be overridden with
+program-specifc flags, for example specifying \ccode{--tformat afa} on
+the command line of search programs.
+
+See man-pages for program-specific lists of accepted formats.
+
+%\begin{tabular}{ll}
+%& \\
+%\multicolumn{1}{l}{\textbf{Alignment formats supported by HMMER}} \\
+%& \\
+%Stockholm (preferred) \\
+%Aligned FASTA \\
+%Clustal \\
+%NCBI PSI-BLAST \\
+%PHYLIP \\
+%Selex \\
+%UCSC SAM A2M \\
+%& \\
+%\multicolumn{1}{l}{\textbf{Unaligned sequence formats supported by HMMER}} \\
+%& \\
+%FASTA \\
+%EMBL \\
+%Genbank \\
+%\end{tabular} \\
+%\\
+
\subsection{Files used in the tutorial}
@@ -67,6 +125,9 @@ are:
\item[\emprog{globins4.out}] An example \prog{hmmsearch} output file that results
from searching the \prog{globins4.hmm} against UniProt 15.7.
%
+\item[\emprog{globins45.fa}] A FASTA file containing 45 unaligned globin
+sequences.
+%
\item[\emprog{fn3.sto}] An example alignment of 106 fibronectin type III
domains. This is the Pfam 22.0 \prog{fn3} seed alignment. It provides an
example of a Stockholm format with more complex annotation. We'll also use
@@ -86,6 +147,9 @@ are:
\item[\emprog{Pkinase.sto}] The Pfam 22.0 {Pkinase} seed alignment of
protein kinase domains.
%
+\item[\emprog{Pkinase.hmm}] A profile HMM created from \prog{Pkinase.sto} by
+ \prog{hmmbuild}.
+%
\item[\emprog{minifam}] An example HMM flatfile database, containing
three models: \prog{globins4}, \prog{fn3}, and \prog{Pkinase}.
%
@@ -95,22 +159,32 @@ are:
\item[\emprog{HBB\_HUMAN}] A FASTA file containing the sequence of
human $\beta-$hemoglobin, used as an example query for \prog{phmmer}
and \prog{jackhmmer}.
+%
+\item[\emprog{MADE1.sto}] An example alignment of 1997 instances of the
+MADE1 transposable element family. This is the Dfam 1.1 \prog{MADE1} seed
+alignment. We'll use it for an example of using \prog{nhmmer} to search a DNA
+database.
+%
+\item[\emprog{MADE1.hmm}] A profile HMM created from \prog{MADE1.sto} by
+ \prog{hmmbuild} with default parameters (note: this model differs from the
+ MADE1 model found in DFAM, which is built with more.
+%
+\item[\emprog{dna\_target.fa}] A FASTA file containing 330000 bases extracted
+from human chromosome 1, in which four MADE1 instances are found. This is used
+as the example database for \prog{nhmmer} and \prog{nhmmscan}.
\end{sreitems}
-
-\subsection{Searching a sequence database with a single profile HMM}
+\subsection{Searching a protein sequence database with a single protein profile HMM}
\subsubsection{Step 1: build a profile HMM with hmmbuild}
HMMER starts with a multiple sequence alignment file that you
-provide. Currently HMMER3 can read Stockholm or aligned FASTA
-alignments.\footnote{It expects Stockholm by default. To read aligned
- FASTA files, which HMMER calls ``afa'' format, specify
- \ccode{--informat afa} on the command line of any program that reads
- an input alignment.} The file \prog{tutorial/globins4.sto} is an
+provide. The format can usually be autodetected, with
+accepted formats described above. The file \prog{tutorial/globins4.sto} is an
example of a simple Stockholm file. It looks like this:
+\begin{samepage}
\begin{sreoutput}
# STOCKHOLM 1.0
@@ -130,6 +204,7 @@ MYG_PHYCA AAKYKELGYQG
GLB5_PETMA RSAY.......
//
\end{sreoutput}
+\end{samepage}
Most popular alignment formats are similar block-based formats, and
can be turned into Stockholm format with a little editing or
@@ -147,10 +222,11 @@ HMM(s) in a file. For example, type:
and you'll see some output that looks like:
% tutorial regression: glb-build.out
+\begin{samepage}
\begin{sreoutput}
# hmmbuild :: profile HMM construction from multiple sequence alignments
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# input alignment file: globins4.sto
@@ -161,8 +237,9 @@ and you'll see some output that looks like:
#---- -------------------- ----- ----- ----- -------- ------ -----------
1 globins4 4 171 149 0.96 0.589
-# CPU time: 0.13u 0.00s 00:00:00.13 Elapsed: 00:00:00.15
+# CPU time: 0.24u 0.00s 00:00:00.24 Elapsed: 00:00:00.27
\end{sreoutput}
+\end{samepage}
If your input file had contained more than one alignment, you'd get
one line of output for each model. For instance, a single
@@ -179,80 +256,85 @@ an ``effective'' total sequence number (\prog{eff\_nseq}) of 0.96. The
model ended up with a relative entropy per position ((\prog{re/pos};
information content) of 0.589 bits.
-This output format is rudimentary. HMMER3 knows quite a bit more
-information about what it's done to build this HMM. Some of this
-information is likely to be useful to you, the user. As H3 testing and
-development proceeds, we're likely to expand the amount of data that
-\prog{hmmbuild} reports.
+%This output format is rudimentary. HMMER3 knows quite a bit more
+%information about what it's done to build this HMM. Some of this
+%information is likely to be useful to you, the user. As H3 testing and
+%development proceeds, we're likely to expand the amount of data that
+%\prog{hmmbuild} reports.
The new HMM was saved to \prog{globins4.hmm}. If you were to look at
this file (and you don't have to -- it's intended for HMMER's
consumption, not yours), you'd see something like:
% tutorial regression: globins4.hmm, edited down
+\begin{samepage}
\begin{sreoutput}
-HMMER3/b [3.0 | March 2010]
+HMMER3/f [3.1 | February 2013]
NAME globins4
LENG 149
ALPH amino
RF no
+MM no
+CONS yes
CS no
MAP yes
-DATE Sun Mar 28 09:50:46 2010
+DATE Thu Feb 14 16:44:36 2013
NSEQ 4
EFFN 0.964844
CKSUM 2027839109
STATS LOCAL MSV -9.9014 0.70957
STATS LOCAL VITERBI -10.7224 0.70957
STATS LOCAL FORWARD -4.1637 0.70957
-HMM A C D E F G H I ... W Y
+HMM A C D E F G H I K L M N P Q R S T V W Y
m->m m->i m->d i->m i->i d->m d->d
- COMPO 2.36553 4.52577 2.96709 2.70473 3.20818 3.02239 3.41069 2.90041 ... 4.55393 3.62921
- 2.68640 4.42247 2.77497 2.73145 3.46376 2.40504 3.72516 3.29302 ... 4.58499 3.61525
+ COMPO 2.36553 4.52577 2.96709 2.70473 3.20818 3.02239 3.41069 2.90041 2.55332 2.35210 3.67329 3.19812 3.45595 3.16091 3.07934 2.66722 2.85475 2.56965 4.55393 3.62921
+ 2.68640 4.42247 2.77497 2.73145 3.46376 2.40504 3.72516 3.29302 2.67763 2.69377 4.24712 2.90369 2.73719 3.18168 2.89823 2.37879 2.77497 2.98431 4.58499 3.61525
0.57544 1.78073 1.31293 1.75577 0.18968 0.00000 *
- 1 1.70038 4.17733 3.76164 3.36686 3.72281 3.29583 4.27570 2.40482 ... 5.32720 4.10031 9 - -
- 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 ... 4.58477 3.61503
+ 1 1.70038 4.17733 3.76164 3.36686 3.72281 3.29583 4.27570 2.40482 3.29230 2.54324 3.63799 3.55099 3.93183 3.61602 3.56580 2.71897 2.84104 1.67328 5.32720 4.10031 9 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.03156 3.86736 4.58970 0.61958 0.77255 0.34406 1.23405
...
- 149 2.92198 5.11574 3.28049 2.65489 4.47826 3.59727 2.51142 3.88373 ... 5.42147 4.18835 165 - -
- 2.68634 4.42241 2.77536 2.73098 3.46370 2.40469 3.72511 3.29370 ... 4.58493 3.61418
+ 149 2.92198 5.11574 3.28049 2.65489 4.47826 3.59727 2.51142 3.88373 1.57593 3.35205 4.19259 3.10178 3.96579 2.72398 1.84611 2.91372 3.10363 3.55066 5.42147 4.18835 165 k - - -
+ 2.68634 4.42241 2.77536 2.73098 3.46370 2.40469 3.72511 3.29370 2.67757 2.69331 4.24706 2.90363 2.73756 3.18097 2.89817 2.37903 2.77536 2.98535 4.58493 3.61418
0.22163 1.61553 * 1.50361 0.25145 0.00000 *
//
\end{sreoutput}
+\end{samepage}
-The HMMER3 ASCII save file format is defined in
+The HMMER ASCII save file format is defined in
Section~\ref{section:formats}.
-If you're used to HMMER2, you may now be expecting to calibrate the
-model with H2's \prog{hmmcalibrate} program. HMMER3 models no longer
-need a separate calibration step. We've figured out how to calculate
-the necessary parameters rapidly, bypassing the need for costly
-simulation \citep{Eddy08}. The determination of the statistical
-parameters is part of \prog{hmmbuild}. These are the parameter values
-on the three lines marked \prog{STATS}.
+%If you're used to HMMER2, you may now be expecting to calibrate the
+%model with H2's \prog{hmmcalibrate} program. HMMER3 models no longer
+%need a separate calibration step. We've figured out how to calculate
+%the necessary parameters rapidly, bypassing the need for costly
+%simulation \citep{Eddy08}. The determination of the statistical
+%parameters is part of \prog{hmmbuild}. These are the parameter values
+%on the three lines marked \prog{STATS}.
-You also may be expecting to need to configure the model's alignment
-mode, as in HMMER2's \prog{hmmbuild -f} option for building local
-``fragment search'' alignment models, for example. HMMER3's
-\prog{hmmbuild} does not have these options. \prog{hmmbuild} builds a
-``core profile'', which the search and alignment programs configure as
-they need to. And at least for the moment, they always configure for
-local alignment.
+%You also may be expecting to need to configure the model's alignment
+%mode, as in HMMER2's \prog{hmmbuild -f} option for building local
+%``fragment search'' alignment models, for example. HMMER3's
+%\prog{hmmbuild} does not have these options. \prog{hmmbuild} builds a
+%``core profile'', which the search and alignment programs configure as
+%they need to. And at least for the moment, they always configure for
+%local alignment.
\subsubsection{Step 2: search the sequence database with hmmsearch}
-Presumably you have a sequence database to search. Here I'll use the
-UniProt 15.7 Swiss-Prot FASTA format flatfile (not provided in the
+Presumably you have a sequence database to search. Here we'll use the
+UniProt 2013\_02 Swiss-Prot FASTA format flatfile (not provided in the
tutorial, because of its large size), \prog{uniprot\_sprot.fasta}. If
you don't have a sequence database handy, run your example search
against \prog{tutorial/globins45.fa} instead, which is a FASTA format
file containing 45 globin sequences.
-\prog{hmmsearch} accepts any FASTA file as input. It also accepts
-EMBL/UniProt text format. It will automatically determine what format
-your file is in; you don't have to say. An example of searching a
-sequene database with our \prog{globins4.hmm} model would look like:
+\prog{hmmsearch} accepts any FASTA file as target database input. It also
+accepts EMBL/UniProt text format, and Genbank format. It will automatically
+determine what format your file is in; you don't have to say. An example of
+searching a sequence database with our \prog{globins4.hmm} model would look
+like:
\user{hmmsearch globins4.hmm uniprot\_sprot.fasta > globins4.out}
@@ -266,12 +348,12 @@ ran, on what, and with what options:
% tutorial regression: globins4.out
\begin{sreoutput}
# hmmsearch :: search profile(s) against a sequence database
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# query HMM file: globins4.hmm
-# target sequence database: uniprot_sprot.fasta
+# target sequence database: uniprot\_sprot.fasta
# per-seq hits tabular output: globins4.tbl
# per-dom hits tabular output: globins4.domtbl
# number of worker threads: 2
@@ -286,17 +368,20 @@ of ranked top hits (sorted by E-value, most significant hit first),
formatted in a BLAST-like style:
% tutorial regression: globins4.out
+\begin{samepage}
\begin{sreoutput}
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Sequence Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
- 6e-65 222.7 3.2 6.7e-65 222.6 2.2 1.0 1 sp|P02185|MYG_PHYCA Myoglobin OS=Physeter catodon GN=MB PE
- 3.1e-63 217.2 0.1 3.4e-63 217.0 0.0 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor
- 4.5e-63 216.6 0.0 5e-63 216.5 0.0 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien
- 4.5e-63 216.6 0.0 5e-63 216.5 0.0 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu
- 4.5e-63 216.6 0.0 5e-63 216.5 0.0 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod
- 6.4e-63 216.1 3.0 7.1e-63 216.0 2.0 1.0 1 sp|P02177|MYG_ESCGI Myoglobin OS=Eschrichtius gibbosus GN=
- \end{sreoutput}
+ 6.5e-65 222.7 3.2 7.2e-65 222.6 3.2 1.0 1 sp|P02185|MYG_PHYMC Myoglobin OS=Physeter macrocephalus GN
+ 3.3e-63 217.2 0.1 3.7e-63 217.0 0.1 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor
+ 4.9e-63 216.6 0.0 5.4e-63 216.5 0.0 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien
+ 4.9e-63 216.6 0.0 5.4e-63 216.5 0.0 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu
+ 4.9e-63 216.6 0.0 5.4e-63 216.5 0.0 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod
+ 7e-63 216.1 3.0 7.7e-63 216.0 3.0 1.0 1 sp|P02177|MYG_ESCGI Myoglobin OS=Eschrichtius gibbosus GN=
+ ...
+\end{sreoutput}
+\end{samepage}
The last two columns, obviously, are the name of each target sequence
and optional description.
@@ -315,8 +400,8 @@ the profile HMM and the target sequence.
The next number, the \emph{bias}, is a correction term for biased
sequence composition that has been applied to the sequence bit
-score.\footnote{The method that HMMER3 uses to compensate for biased
- composition is unpublished, and different from HMMER2. We will write
+score.\footnote{The method that HMMER uses to compensate for biased
+ composition is unpublished. We will write
it up when there's a chance.} For instance, for the top hit
\prog{MYG\_PHYCA} that scored 222.7 bits, the bias of 3.2 bits means
that this sequence originally scored 225.9 bits, which was adjusted by
@@ -352,12 +437,14 @@ An example of what that output file will look like is provided in
\prog{tutorial/fn3.out}. The sequence top hits list says:
% tutorial regression: fn3.out
+\begin{samepage}
\begin{sreoutput}
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Sequence Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
- 1.9e-57 178.0 0.4 1.2e-16 47.2 0.7 9.4 9 7LESS_DROME RecName: Full=Protein sevenless; EC=2.7
+ 1.9e-57 178.0 0.4 1.2e-16 47.2 0.9 9.4 9 7LESS_DROME RecName: Full=Protein sevenless;
\end{sreoutput}
+\end{samepage}
OK, now let's pick up the explanation where we left off. The total
sequence score of 178.0 sums up \emph{all} the fibronectin III domains
@@ -397,7 +484,7 @@ best domain score of 222.6. What's going on? What's going on is that
the position and alignment of that domain is uncertain -- in this
case, only very slightly so, but nonetheless uncertain. The full
sequence score is summed over all possible alignments of the globin
-model to the \prog{MYG\_PHYCA} sequence. When HMMER3 identifies
+model to the \prog{MYG\_PHYCA} sequence. When HMMER identifies
domains, it identifies what it calls an \textbf{envelope} bounding
where the domain's alignment most probably lies. (More on this later,
when we discuss the reported coordinates of domains and alignments in
@@ -416,14 +503,14 @@ domains according to HMMER's statistical model. It's an average,
calculated as a weighted marginal sum over all possible
alignments. Because it's an average, it isn't necessarily a round
integer. The second, the column marked \prog{N}, is the number of
-domains that HMMER3's domain postprocessing and annotation pipeline
+domains that HMMER's domain postprocessing and annotation pipeline
finally decided to identify, annotate, and align in the target
sequence. This is the number of alignments that will show up in the
domain report later in the output file.
These two numbers should be about the same. Rarely, you might see that
they're wildly different, and this would usually be a sign that the
-target sequence is so highly repetitive that it's confused the H3
+target sequence is so highly repetitive that it's confused the HMMER
domain postprocessors. Such sequences aren't likely to show up as
significant homologs to any sensible query in the first place.
@@ -438,13 +525,14 @@ Domain annotation for each sequence (and alignments):
\end{sreoutput}
Now for each sequence in the top hits list, there will be a section
-containing a table of where HMMER3 thinks all the domains are,
+containing a table of where HMMER thinks all the domains are,
followed by the alignment inferred for each domain. Let's use the
\prog{fn3} vs. \prog{7LESS\_DROME} example, because it contains lots
of domains, and is more interesting in this respect than the globin4
output. The domain table for \prog{7LESS\_DROME} looks like:
% tutorial regression: fn3.out
+\begin{samepage}
\begin{sreoutput}
>> 7LESS_DROME RecName: Full=Protein sevenless; EC=2.7.10.1;
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
@@ -455,10 +543,11 @@ output. The domain table for \prog{7LESS\_DROME} looks like:
4 ! 5.1 0.0 0.0016 0.0016 10 36 .. 1209 1235 .. 1203 1259 .. 0.82
5 ! 24.3 0.0 1.7e-09 1.7e-09 14 80 .. 1313 1380 .. 1304 1386 .. 0.82
6 ? 0.0 0.0 0.063 0.063 58 72 .. 1754 1768 .. 1739 1769 .. 0.89
- 7 ! 47.2 0.7 1.2e-16 1.2e-16 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
+ 7 ! 47.2 0.9 1.2e-16 1.2e-16 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
8 ! 17.8 0.0 1.8e-07 1.8e-07 6 74 .. 1904 1966 .. 1901 1976 .. 0.90
9 ! 12.8 0.0 6.6e-06 6.6e-06 1 86 [] 1993 2107 .. 1993 2107 .. 0.89
\end{sreoutput}
+\end{samepage}
Domains are reported in the order they appear in the sequence, not in
order of their significance.
@@ -501,8 +590,8 @@ independent/best single domain E-value depends on). There's one
sequence reported as a putative homolog in the sequence top hits list
(that's the size of the search space that the conditional E-value
depends on). A better example is to see what happens when we search
-UniProt (15.7 contains 497293 sequences) with the \prog{fn3} model:
-% ^^^^ ^^^^^^ VERIFY WHEN UPDATING
+UniProt (2013\_02 contains 539165 sequences) with the \prog{fn3} model:
+% ^^^^^^^^ ^^^^^^ VERIFY WHEN UPDATING
\user{hmmsearch fn3.hmm uniprot\_sprot.fasta}
@@ -511,55 +600,57 @@ worry about it - I'll show the relevant bits here.) Now the domain
report for \prog{7LESS\_DROME} looks like:
% tutorial regression: fn3-2.out
+\begin{samepage}
\begin{sreoutput}
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 40.7 0.0 9.1e-12 6.4e-09 2 84 .. 439 520 .. 437 521 .. 0.95
- 2 ! 14.4 0.0 0.0014 1 13 85 .. 836 913 .. 826 914 .. 0.73
- 3 ? 5.1 0.0 1.1 7.9e+02 10 36 .. 1209 1235 .. 1203 1259 .. 0.82
- 4 ! 24.3 0.0 1.2e-06 0.00084 14 80 .. 1313 1380 .. 1304 1386 .. 0.82
- 5 ! 47.2 0.7 8.3e-14 5.8e-11 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
- 6 ! 17.8 0.0 0.00013 0.091 6 74 .. 1904 1966 .. 1901 1976 .. 0.90
- 7 ! 12.8 0.0 0.0047 3.3 1 86 [] 1993 2107 .. 1993 2107 .. 0.89
+ 1 ! 40.7 0.0 9.6e-12 6.9e-09 2 84 .. 439 520 .. 437 521 .. 0.95
+ 2 ! 14.4 0.0 0.0015 1.1 13 85 .. 836 913 .. 826 914 .. 0.73
+ 3 ? 5.1 0.0 1.2 8.6e+02 10 36 .. 1209 1235 .. 1203 1259 .. 0.82
+ 4 ! 24.3 0.0 1.3e-06 0.00091 14 80 .. 1313 1380 .. 1304 1386 .. 0.82
+ 5 ! 47.2 0.9 8.8e-14 6.3e-11 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
+ 6 ! 17.8 0.0 0.00014 0.099 6 74 .. 1904 1966 .. 1901 1976 .. 0.90
+ 7 ! 12.8 0.0 0.005 3.5 1 86 [] 1993 2107 .. 1993 2107 .. 0.89
\end{sreoutput}
+\end{samepage}
Notice that \emph{almost} everything's the same (it's the same target
sequence, after all) \emph{except} for what happens with E-values. The
independent E-value is calculated assuming a search space of all
-497293 sequences. For example, look at the highest scoring domain
+539165 sequences. For example, look at the highest scoring domain
%^^^^^
(domain 5 here; domain 7 above). When we only looked at a single
-sequence, its score of 47.2 bits has an E-value of 5.8e-11. When we
+sequence, its score of 47.2 bits has an E-value of 1.2e-16. When we
% ^^^^ ^^^^^^^
-search a database of 497293 sequences, a hit scoring 47.2 bits would
+search a database of 539165 sequences, a hit scoring 47.2 bits would
% ^^^^^^ ^^^^
-be expected to happen 497293 times as often: 1.2e-16 $\times$ 497293
+be expected to happen 539165 times as often: 1.2e-16 $\times$ 539165
% ^^^^^^ ^^^^^^^ ^^^^^^
-$=$ 5.97e-11 (it's showing 5.8e-11 because of roundoff issues; the
-% ^^^^^^^
+$=$ 6.47e-11 (it's showing 6.3e-11 because of roundoff issues; the
+% ^^^^^^^^ ^^^^^^^
1.2e-16 in fact isn't exactly 1.2e-16 inside HMMER). In this UniProt
%^^^^^^ ^^^^^^^
-search, 711 sequences were reported in the top hits list (with
+search, 754 sequences were reported in the top hits list (with
% ^^^
-E-values $\leq 10$). If we were to assume that all 711 are true
+E-values $\leq 10$). If we were to assume that all 754 are true
% ^^^
homologs, x out the domain(s) that made us think that, and then went
-looking for \emph{additional} domains in those 711 sequences, we'd be
+looking for \emph{additional} domains in those 754 sequences, we'd be
% ^^^
-searching a smaller database of 711 sequences: the expected number of
+searching a smaller database of 754 sequences: the expected number of
% ^^^
times we'd see a hit of 47.2 bits or better is now 1.2e-16 $\times$
% ^^^^ ^^^^^^^
-711 $=$ 8.3e-14. That's where the conditional E-value (c-Evalue) is
+754 $=$ 9.0e-14. That's where the conditional E-value (c-Evalue) is
%^^ ^^^^^^^
-coming from.
+coming from (subject to rounding error).
Notice that a couple of domains disappeared in the UniProt search,
because now, in this larger search space size, they're not
significant. Domain 1 (the one with the score of -1.3 bits) got a
-conditional E-value of 0.17 $\times$ 711 = 121, and domain 6 (with a
+conditional E-value of 0.17 $\times$ 754 = 128, and domain 6 (with a
% ^^^
-bit score of 0.0) got a c-Evalue of 0.063 $\times$ 711 = 45. These
+bit score of 0.0) got a c-Evalue of 0.063 $\times$ 754 = 47.5. These
% ^^^
fail the default reporting threshold of 10.0. The domain with a score
of 5.1 bits also shifted from being above to below the default
@@ -582,11 +673,11 @@ E-value to decide the statistical significance of additional
weak-scoring domains.
\end{itemize}
-In the UniProt output, for example, I'd be pretty sure of four of the
+In the UniProt output, for example, we'd be pretty sure of four of the
domains (1, 4, 5, and maybe 6), each of which has a strong enough
independent E-value to declare \prog{7LESS\_DROME} to be an
fnIII-domain-containing protein. Domains 2 and 7 wouldn't be
-significant if they were all I saw in the sequence, but once I decide
+significant if they were all we saw in the sequence, but once we decide
that \prog{7LESS\_DROME} contains fn3 domains on the basis of the
other hits, their conditional E-values indicate that they are probably
also fn3 domains too. Domain 3 is too weak to be sure of, from this
@@ -618,14 +709,14 @@ alignment will tend to be in tighter agreement, corresponding to
sharper posterior probability defining the location of the homologous
region.
-Operationally, I would use the envelope coordinates to annotate domain
+Operationally, we would use the envelope coordinates to annotate domain
locations on target sequences, not the alignment coordinates. However,
be aware that when two weaker-scoring domains are close to each other,
envelope coordinates can and will overlap, corresponding to the
overlapping uncertainty of where one domain ends and another begins.
In contrast, alignment coordinates generally do not overlap (though
there are cases where even they will overlap\footnote{Not to mention
- one (mercifully rare) bug/artifact that I'm betting is so unusual
+ one (mercifully rare) bug/artifact that we're betting is so unusual
that testers don't even see an example of it -- but we'll
see.}).
@@ -636,6 +727,7 @@ residue of the alignment.
For comparison, current UniProt consensus annotation of Sevenless
shows seven domains:
+\begin{samepage}
\begin{sreoutput}
FT DOMAIN 311 431 Fibronectin type-III 1.
FT DOMAIN 436 528 Fibronectin type-III 2.
@@ -645,6 +737,7 @@ FT DOMAIN 1680 1794 Fibronectin type-III 5.
FT DOMAIN 1797 1897 Fibronectin type-III 6.
FT DOMAIN 1898 1988 Fibronectin type-III 7.
\end{sreoutput}
+\end{samepage}
These domains are a pretty tough case to call, actually. HMMER fails
to see anything significant overlapping two of these domains (311-431
@@ -662,6 +755,7 @@ unconvincing), fibronectin III domain 2 in your \prog{7LESS\_DROME}
output is shown as:
% tutorial regressions: fn3.out
+\begin{samepage}
\begin{sreoutput}
== domain 2 score: 40.7 bits; conditional E-value: 1.3e-14
---CEEEEEEECTTEEEEEEE--S..SS--SEEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEEEEEETTEE.E CS
@@ -670,10 +764,11 @@ output is shown as:
7LESS_DROME 439 SAPVIEHLMGLDDSHLAVHWHPGRFTNGPIEGYRLRLSSSEGNA-TSEQLVPAGRGSYIFSQLQAGTNYTLALSMINKQGEGP 520
78999999999*****************************9998.**********************************9997 PP
\end{sreoutput}
+\end{samepage}
The initial header line starts with a \prog{==} as a little handle for
-a parsing script to grab hold of. The rest of that line, we'll
-probably put more information on eventually.
+a parsing script to grab hold of. We may put more information on that line
+eventually.
If the model had any consensus structure or reference line annotation
that it inherited from your multiple alignment (\prog{\#=GC SS\_cons},
@@ -695,7 +790,7 @@ The line starting with \prog{7LESS\_DROME} is the target sequence.
Dashes (\prog{-}) in this line indicate deletions in the target
sequence with respect to the model.
-The bottom line is new to HMMER3. This represents the posterior
+The bottom line represents the posterior
probability (essentially the expected accuracy) of each aligned
residue. A 0 means 0-5\%, 1 means 5-15\%, and so on; 9 means 85-95\%,
and a \prog{*} means 95-100\% posterior probability. You can use these
@@ -712,7 +807,7 @@ whether a residue should be considered to be homologous (aligned to
the model somewhere) versus not homologous at all.\footnote{It may
make more sense to condition the posterior probabilities on the
assumption that the residue is indeed homologous: given that, how
-likely is it that I've got it correctly aligned.}
+likely is it that we've got it correctly aligned.}
These domain table and per-domain alignment reports for each sequence
@@ -724,36 +819,37 @@ statistics. For example, at the bottom of the globins search output,
you'll find something like:
% tutorial regression: tail -13 globins4.out
+\begin{samepage}
\begin{sreoutput}
Internal pipeline statistics summary:
-------------------------------------
-Query model(s): 1 (149 nodes)
-Target sequences: 497293 (175274722 residues)
-Passed MSV filter: 19416 (0.0390434); expected 9945.9 (0.02)
-Passed bias filter: 15923 (0.0320194); expected 9945.9 (0.02)
-Passed Vit filter: 2207 (0.00443803); expected 497.3 (0.001)
-Passed Fwd filter: 1076 (0.00216371); expected 5.0 (1e-05)
-Initial search space (Z): 497293 [actual number of targets]
-Domain search space (domZ): 1075 [number of targets reported over threshold]
-# CPU time: 5.66u 0.07s 00:00:05.73 Elapsed: 00:00:02.29
-# Mc/sec: 11354.75
+Query model(s): 1 (149 nodes)
+Target sequences: 539165 (191456931 residues searched)
+Passed MSV filter: 20801 (0.03858); expected 10783.3 (0.02)
+Passed bias filter: 17061 (0.0316434); expected 10783.3 (0.02)
+Passed Vit filter: 2321 (0.0043048); expected 539.2 (0.001)
+Passed Fwd filter: 1109 (0.00205688); expected 5.4 (1e-05)
+Initial search space (Z): 539165 [actual number of targets]
+Domain search space (domZ): 1108 [number of targets reported over threshold]
+# CPU time: 6.50u 0.11s 00:00:06.61 Elapsed: 00:00:02.59
+# Mc/sec: 11014.32
//
\end{sreoutput}
+\end{samepage}
-This gives you some idea of what's going on in HMMER3's acceleration
-pipeline. You've got one query HMM, and the database has 497,293
+This gives you some idea of what's going on in HMMER's acceleration
+pipeline. You've got one query HMM, and the database has 539,165
% ^^^^^^^
target sequences. Each sequence goes through a gauntlet of three
scoring algorithms called MSV, Viterbi, and Forward, in order of
increasing sensitivity and increasing computational requirement.
-MSV (the ``Multi ungapped Segment Viterbi'' algorithm) is the new
-algorithm in HMMER3. It essentially calculates the HMM equivalent of
-BLAST's sum score -- an optimal sum of ungapped high-scoring alignment
-segments. Unlike BLAST, it does this calculation directly, without
-BLAST's word hit or hit extension step, using a SIMD vector-parallel
-algorithm. By default, HMMER3 is configured to allow sequences with a
-P-value of $\leq 0.02$ through the MSV score filter (thus, if the
+MSV (the ``Multi ungapped Segment Viterbi'' algorithm) essentially calculates
+the HMM equivalent of BLAST's sum score -- an optimal sum of ungapped
+high-scoring alignment segments. Unlike BLAST, it does this calculation
+directly, without BLAST's word hit or hit extension step, using a SIMD
+vector-parallel algorithm. By default, HMMER is configured to allow sequences
+with a P-value of $\leq 0.02$ through the MSV score filter (thus, if the
database contained no homologs and P-values were accurately
calculated, the highest scoring 2\% of the sequences will pass the
filter). Here, about 4\% of the database got through the MSV filter.
@@ -762,7 +858,7 @@ A quick check is then done 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''. If you don't like it
(it can occasionally be overaggressive) you can shut it off with the
-\prog{--nobias} option. Here, 15923 sequences pass through the bias
+\prog{--nobias} option. Here, 17061 sequences pass through the bias
% ^^^^^
filter.
@@ -771,12 +867,12 @@ This is a bit more sensitive than the MSV score, but the Viterbi
filter is about four-fold slower than MSV. By default, HMMER3 lets
sequences with a P-value of $\leq 0.001$ through this stage. Here
(because there's a little over a thousand true globin homologs in this
-database), much more than that gets through - 2207 sequences.
+database), much more than that gets through - 2321 sequences.
% ^^^^
Then the full Forward score is calculated, which sums over all
possible alignments of the profile to the target sequence. The default
-allows sequences with a P-value of $\leq 10^{-5}$\% through; 1076
+allows sequences with a P-value of $\leq 10^{-5}$ through; 1109
% ^^^^
sequences passed.
@@ -795,20 +891,531 @@ are reported in the statistics summary.
Finally, it reports the speed of the search in units of Mc/sec
(million dynamic programming cells per second), the CPU time, and the
-elapsed time. This search took about 2.29 seconds of elapsed (wall
+elapsed time. This search took about 2.59 seconds of elapsed (wall
% ^^^^
clock time) (running with \ccode{--cpu 2} on two cores). That's in the
same ballpark as BLAST. On
the same machine, also running dual-core, NCBI BLAST with one of these
globin sequences took 2.3 seconds, and WU-BLAST took 4.8 seconds.
+
+\subsection{Single sequence protein queries using phmmer}
+
+The \prog{phmmer} program is for searching a single sequence query
+against a sequence database, much as \prog{BLASTP} or \prog{FASTA}
+would do. \prog{phmmer} works essentially just like \prog{hmmsearch}
+does, except you provide a query sequence instead of a query profile
+HMM.
+
+Internally, HMMER builds a profile HMM from your single query
+sequence, using a simple position-independent scoring system (BLOSUM62
+scores converted to probabilities, plus a gap-open and gap-extend
+probability).
+
+The file \prog{tutorial/HBB\_HUMAN} is a FASTA file containing the
+human $\beta-$globin sequence as an example query. If you have a
+sequence database such as \prog{uniprot\_sprot.fasta}, make that your
+target database; otherwise, use \prog{tutorial/globins45.fa} as a
+small example:
+
+\user{phmmer tutorial/HBB\_HUMAN uniprot\_sprot.fasta}\\
+or\\
+\user{phmmer tutorial/HBB\_HUMAN tutorial/globins45.fa}
+
+Everything about the output is essentially as previously described for
+\prog{hmmsearch}.
+
+
+\subsection{Iterative protein searches using jackhmmer}
+
+The \prog{jackhmmer} program is for searching a single sequence query
+iteratively against a sequence database, much as \prog{PSI-BLAST}
+would do.
+
+The first round is identical to a \prog{phmmer} search. All the
+matches that pass the inclusion thresholds are put in a multiple
+alignment. In the second (and subsequent) rounds, a profile is made
+from these results, and the database is searched again with the
+profile.
+
+Iterations continue either until no new sequences are detected or the
+maximum number of iterations is reached. By default, the maximum
+number of iterations is 5; you can change this with the \ccode{-N}
+option.
+
+Your original query sequence is always included in the multiple
+alignments, whether or not it appears in the database.\footnote{If it
+ \emph{is} in the database, it will almost certainly be included in
+ the internal multiple alignment twice, once because it's the query
+ and once because it's a significant database match to itself. This
+ redundancy won't screw up the alignment, because sequences are
+ downweighted for redundancy anyway.}
+The ``consensus'' columns assigned to each multiple alignment always
+correspond exactly to the residues of your query, so the coordinate
+system of every profile is always the same as the numbering of
+residues in your query sequence, 1..L for a sequence of length L.
+
+Assuming you have UniProt or something like it handy, here's an
+example command line for a jackhmmer search:
+
+\user{jackhmmer tutorial/HBB\_HUMAN uniprot\_sprot.fasta}\\
+
+One difference from \prog{phmmer} output you'll notice is that
+\prog{jackhmmer} marks ``new'' sequences with a \ccode{+} and ``lost''
+sequences with a \ccode{-}. New sequences are sequences that pass the
+inclusion threshold(s) in this round, but didn't in the round before.
+Lost sequences are the opposite: sequences that passed the inclusion
+threshold(s) in the previous round, but have now fallen beneath (yet
+are still in the reported hits -- it's possible, though rare, to lose
+sequences utterly, if they no longer even pass the reporting
+threshold(s)). In the first round, everything above the inclusion
+thresholds is marked with a \ccode{+}, and nothing is marked with a
+\ccode{-}. For example, the top of this output looks like:
+
+% tutorial regression: hbb-jack.out
+\begin{samepage}
+\begin{sreoutput}
+# jackhmmer :: iteratively search a protein sequence against a protein database
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
+# Freely distributed under the GNU General Public License (GPLv3).
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# query sequence file: HBB_HUMAN
+# target sequence database: uniprot_sprot.fasta
+# per-seq hits tabular output: hbb-jack.tbl
+# per-dom hits tabular output: hbb-jack.domtbl
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+Query: HBB_HUMAN [L=146]
+Description: Human beta hemoglobin.
+
+Scores for complete sequences (score includes all domains):
+ --- full sequence --- --- best 1 domain --- -#dom-
+ E-value score bias E-value score bias exp N Sequence Description
+ ------- ------ ----- ------- ------ ----- ---- -- -------- -----------
++ 3.3e-98 330.5 0.6 3.7e-98 330.3 0.6 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien
++ 3.3e-98 330.5 0.6 3.7e-98 330.3 0.6 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu
++ 3.3e-98 330.5 0.6 3.7e-98 330.3 0.6 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod
++ 9.5e-98 329.0 0.7 1.1e-97 328.8 0.7 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor
++ 2.9e-96 324.2 0.5 3.2e-96 324.0 0.5 1.0 1 sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates l
++ 2.9e-95 320.9 0.6 3.2e-95 320.8 0.6 1.0 1 sp|P02032|HBB_SEMEN Hemoglobin subunit beta OS=Semnopithec
+...
+\end{sreoutput}
+\end{samepage}
+
+That continues until the inclusion threshold is reached, at which
+point you see a tagline ``inclusion threshold'' indicating where the
+threshold was set:
+
+% tutorial regression: hbb-jack.out
+\begin{samepage}
+\begin{sreoutput}
++ 0.00047 25.0 0.2 0.00055 24.8 0.2 1.0 1 sp|Q0KIY5|MYG_KOGBR Myoglobin OS=Kogia breviceps GN=MB PE=
++ 0.0006 24.6 0.0 0.00071 24.4 0.0 1.0 1 sp|P14399|MYG_MUSAN Myoglobin OS=Mustelus antarcticus GN=m
+ ------ inclusion threshold ------
+ 0.001 23.9 0.3 0.011 20.5 0.3 2.0 1 sp|P81044|HBAZ_MACEU Hemoglobin subunit zeta (Fragments) OS
+ 0.0013 23.5 0.0 0.0017 23.2 0.0 1.1 1 sp|O80405|LGB3_PEA Leghemoglobin Lb120-1 OS=Pisum sativum
+\end{sreoutput}
+\end{samepage}
+
+The domain output and search statistics are then shown just as in
+\prog{phmmer}. At the end of this first iteration, you'll see some
+output that starts with \ccode{@@} (this is a simple tag that lets you
+search through the file to find the end of one iteration and the
+beginning of another):
+
+% tutorial regression: hbb-jack.out
+\begin{samepage}
+\begin{sreoutput}
+@@ New targets included: 935
+@@ New alignment includes: 936 subseqs (was 1), including original query
+@@ Continuing to next round.
+
+@@
+@@ Round: 2
+@@ Included in MSA: 936 subsequences (query + 935 subseqs from 935 targets)
+@@ Model size: 146 positions
+@@
+\end{sreoutput}
+\end{samepage}
+
+This (obviously) is telling you that the new alignment contains 936
+sequences, your query plus 935 significant matches. For round two,
+it's built a new model from this alignment. Now for round two, it
+fires off what's essentially an \prog{hmmsearch} of the target
+database with this new model:
+
+% tutorial regression: hbb-jack.out
+\begin{samepage}
+\begin{sreoutput}
+Scores for complete sequences (score includes all domains):
+ --- full sequence --- --- best 1 domain --- -#dom-
+ E-value score bias E-value score bias exp N Sequence Description
+ ------- ------ ----- ------- ------ ----- ---- -- -------- -----------
+ 7.5e-68 232.1 0.2 8.3e-68 232.0 0.2 1.0 1 sp|P02055|HBB_MELME Hemoglobin subunit beta OS=Meles meles
+ 1.1e-67 231.5 0.4 1.3e-67 231.4 0.4 1.0 1 sp|P81042|HBE_MACEU Hemoglobin subunit epsilon OS=Macropus
+ 1.3e-67 231.3 0.3 1.5e-67 231.1 0.3 1.0 1 sp|P15449|HBB_MELCA Hemoglobin subunit beta OS=Mellivora c
+ 1.9e-67 230.8 0.2 2.1e-67 230.6 0.2 1.0 1 sp|P68046|HBB_ODORO Hemoglobin subunit beta OS=Odobenus ro
+...
+\end{sreoutput}
+\end{samepage}
+
+If you skim down through this output, you'll start seeing newly
+included sequences marked with \ccode{+}'s, such as:
+
+% tutorial regression: hbb-jack.out
+\begin{samepage}
+\begin{sreoutput}
+...
+ 9.4e-30 108.5 0.0 1e-29 108.4 0.0 1.0 1 sp|Q9DEP0|MYG_CRYAN Myoglobin OS=Cryodraco antarcticus GN=
++ 1.4e-29 107.9 0.2 1.6e-29 107.8 0.2 1.0 1 sp|P14397|MYG_GALGA Myoglobin OS=Galeorhinus galeus GN=mb
+ 2.4e-29 107.2 0.0 2.7e-29 107.0 0.0 1.0 1 sp|P02022|HBAM_LITCT Hemoglobin heart muscle subunit alpha-
++ 4.8e-29 106.2 0.1 5.3e-29 106.1 0.1 1.0 1 sp|P14398|MYG_GALJA Myoglobin OS=Galeorhinus japonicus GN=
+ 1.9e-28 104.3 0.0 2.3e-28 104.0 0.0 1.0 1 sp|P09106|HBAT_PAPAN Hemoglobin subunit theta-1 OS=Papio an
+ 3.7e-28 103.4 0.3 4.8e-28 103.0 0.3 1.0 1 sp|P80017|GLBD_CAUAR Globin D, coelomic OS=Caudina arenicol
+ 4.1e-28 103.2 0.0 5.1e-28 102.9 0.0 1.0 1 sp|P0C227|GLB_NERAL Globin OS=Nerita albicilla PE=1 SV=1
+ 3.1e-25 93.8 0.2 3.4e-25 93.7 0.2 1.0 1 sp|P18979|HBA1_UROHA Hemoglobin subunit alpha-1 (Fragment)
++ 4.2e-24 90.2 0.0 5e-24 89.9 0.0 1.0 1 sp|Q90W04|NGB_TETNG Neuroglobin OS=Tetraodon nigroviridis
+ 8.4e-24 89.2 0.0 1e-23 89.0 0.0 1.0 1 sp|P59742|NGB1_ONCMY Neuroglobin-1 OS=Oncorhynchus mykiss G
++ 1e-23 88.9 0.0 1.3e-23 88.7 0.0 1.0 1 sp|P59743|NGB2_ONCMY Neuroglobin-2 OS=Oncorhynchus mykiss G
+
+...
+\end{sreoutput}
+\end{samepage}
+
+It's unusual to see sequences get lost (and marked with \ccode{-}),
+but it can happen; it doesn't happen in this globin example.
+
+After round 2, many more globin sequences have been found:
+
+% tutorial regression: hbb-jack.out
+\begin{samepage}
+\begin{sreoutput}
+@@ New targets included: 172
+@@ New alignment includes: 1110 subseqs (was 936), including original query
+@@ Continuing to next round.
+
+@@
+@@ Round: 3
+@@ Included in MSA: 1110 subsequences (query + 1109 subseqs from 1107 targets)
+@@ Model size: 146 positions
+@@
+\end{sreoutput}
+\end{samepage}
+
+Because new sequences were included, it keeps going to round three,
+and then again to round four, then again to round five. After round
+five, the search ends quietly because there's a default maximum
+of five iterations, and you get:
+
+\begin{samepage}
+\begin{sreoutput}
+@@ New targets included: 1
+@@ New alignment includes: 1151 subseqs (was 1149), including original query
+//
+\end{sreoutput}
+\end{samepage}
+
+In this example, round 5 results in an alignment with two new subsequences, a
+new hit (sp|Q09240|GLOB9\_CAEEL), and a second matching domain in a
+previously found hit (sp|P81044|HBAZ\_MACEU). The final alignment includes
+sequences from 1150 hits, with one hit (HBAZ\_MACEU) contributing two matching
+domains.
+
+That \ccode{//} marks the end of the results for one query.
+
+
+
+
+\subsection{Searching a DNA sequence database}
+
+\subsubsection{Step 1: Optionally build a profile HMM with hmmbuild}
+
+This step is nearly idential to Step 1 for protein profile HMM. For the DNA
+example, type:
+
+\user{hmmbuild MADE1.hmm tutorial/MADE1.sto}
+
+and you'll see some output that looks like:
+
+% tutorial regression: MADE1.out
+\begin{samepage}
+\begin{sreoutput}
+# hmmbuild :: profile HMM construction from multiple sequence alignments
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
+# Freely distributed under the GNU General Public License (GPLv3).
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# input alignment file: tutorial/MADE1.sto
+# output HMM file: MADE1.hmm
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+# idx name nseq alen mlen W eff_nseq re/pos description
+#---- -------------------- ----- ----- ----- ----- -------- ------ -----------
+1 MADE1 1997 1112 80 426 3.91 0.708 MADE1 (MAriner Derived Element 1), a TcMar-Mariner DNA transposon
+
+# CPU time: 0.15u 0.01s 00:00:00.16 Elapsed: 00:00:00.20
+\end{sreoutput}
+\end{samepage}
+
+Notice the new output column with the header ``W'', which is only present when
+the input sequence alignment is made up of DNA or RNA. This represents an upper
+bound on the length at which nhmmer expects to find an instance of the
+family\footnote{W is based on position-specific insert rates: only
+$1e-7$ of all sequences generated from the profile HMM will have length
+greater than W.}.
+It is always larger than mlen, though the ratio of mlen to W depends on the
+observed insert rate in the seed alignment. This length is used deep in the
+acceleration pipeline, and modest changes are not expected to impact results,
+but larger values of W do lead to longer run time. The value can be overridden
+with the \ccode{--w\_length} or \ccode{--w\_beta} flags, at the risk of
+possibly missing instances of the family that happen to be longer than W due to
+plentiful insertions.
+
+
+
+\subsubsection{Step 2: search the DNA sequence database with nhmmer}
+
+We'll use \prog{tutorial/dna\_target.fa} as the target sequence database. It is
+a FASTA format file containing one 330Kb long DNA sequence extracted from human
+chromosome 1.
+
+The program \prog{nhmmer} accepts a target DNA sequence database in the
+same formats as hmmsearch (we typically use FASTA). For the query, it accepts
+either an HMM file as produced above by hmmbuild, or a file containing either
+one DNA sequence or an alignment of multiple DNA sequences.
+
+If a sequence or alignment is used as query input, \prog{nhmmer} internally
+produces the HMM for that alignment\footnote{Using default hmmbuild
+parameters; if you want more control, explicitly built the model with
+hmmbuild.}, then searches with that model. The HMM produced in this way is
+automatically saved to disk; the default file name is chosen by appending
+``.hmm'' to the name of the sequence file name. This can be overridden with the
+\ccode{--hmmout} flag.
+
+An example of searching a sequence database with our \prog{MADE1.hmm} model
+would look like:
+
+\user{nhmmer MADE1.hmm tutorial/dna\_target.fa > MADE1.out}
+
+The output file \prog{MADE1.out} should look like the example provided in
+\prog{tutorial/MADE1.out}.
+
+This output is largely similar to that of hmmsearch. The key differences are
+that (1) each hit is not to a full sequence in the target database, but a
+local alignment of the HMM to a subsequence of a full target database sequence,
+and (2) there are no domains.
+
+The first section is the \emph{header} that tells you what program you ran, on
+what, and with what options, as above.
+
+The second section is the \emph{top hits} list. It is a list
+of ranked top hits (sorted by E-value, most significant hit first),
+formatted much like the \prog{hmmsearch} output \emph{top hits} list:
+
+% tutorial regression: MADE1.out
+\begin{samepage}
+\begin{sreoutput}
+ E-value score bias Sequence start end Description
+ ------- ------ ----- -------- ----- ----- -----------
+ 8.4e-11 39.0 7.4 humanchr1/239220001-239550000 302390 302466
+ 7.8e-08 29.5 6.0 humanchr1/239220001-239550000 302466 302390
+ 8.4e-08 29.4 8.3 humanchr1/239220001-239550000 174456 174498
+ 5.6e-06 23.6 7.0 humanchr1/239220001-239550000 174493 174456
+ ------ inclusion threshold ------
+ 1.7 6.0 6.7 humanchr1/239220001-239550000 304074 304104
+\end{sreoutput}
+\end{samepage}
+
+The table presents the \emph{hit E-value}, \emph{sequence bit score},
+\emph{bias}, \emph{Sequence} and \emph{Description}. See the section above for
+\prog{hmmsearch} for a description of these fields.
+
+The ``start'' and ``end'' columns give, for each hit, the range in the target
+sequence at which the hit is found. Note that ``end'' can be smaller than
+``start'', indicating a hit found on the reverse complement of the target
+database sequence.
+
+Note that one of the five reported hits falls below the inclusion threshold.
+
+The observant reader will notice that the first two hits cover the same range of
+positions, one on the forward strand (302390..302466), the other on the reverse
+(302466..302390). The next two hits likewise cover a shared range. This
+happens because the MADE1 model is palindromic (the consensus is almost
+perfectly so), and highlights the important facts that (a) \prog{nhmmer}
+searches on both strands of an input sequence, and (b) this can sometimes
+lead to overlapping opposite-strand hits, which are not filtered.
+
+
+Then comes the third output section, which starts with
+
+\begin{sreoutput}
+Annotation for each hit (and alignments):
+\end{sreoutput}
+
+For each hit in the top hits list, there will be a one-line table
+providing detailed information about the hit, followed by the alignment
+inferred for the hit. The first entry from the \prog{MADE1} example
+above looks like:
+
+% tutorial regression: MADE1.out
+\begin{samepage}
+\begin{sreoutput}
+>> humanchr1/239220001-239550000
+ score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc
+ ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ----
+ ! 39.0 7.4 8.4e-11 4 80 .] 302390 302466 .. 302387 302466 .. 330000 0.87
+\end{sreoutput}
+\end{samepage}
+
+The bit score, bias value, Evalue, and acc are as described for
+\prog{hmmsearch}, as is the choice of \ccode{!} or \ccode{?} symbols.
+
+The next four columns give the endpoints of the reported local
+alignment with respect to both the query model (``hmm from'' and ``hmm
+to'') and the target sequence (``ali from'' and ``ali to''). These are as
+described in the section for \prog{hmmsearch} results, including the symbology
+used to recognize flush vs internal end points in hits.
+
+The next two columns (``env from'' and ``env to'') also behave as
+described earlier for \prog{hmmsearch}, defining the \emph{envelope} of the
+hit's location on the target sequence.
+
+The ``sq len'' column indicates the full length of the target sequence, enabling
+simple calculation of the proximity of a hit to the end of the target.
+
+Under each one-line hit table is displayed the alignment inferred between the
+model and the hit envelope. For example, the top hit from above is shown as:
+
+% tutorial regressions: fn3.out
+\begin{samepage}
+\begin{sreoutput}
+ Alignment:
+ score: 39.0 bits
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxx RF
+ MADE1 4 ggttggtgcaaaagtaattgcggtttttgccattacttttaatggc....aaaaaccgcaattacttttgcacc 73
+ ggt ggtgcaaaa aattg ggtttttgccatt cttttaat gc a aaa g a t ctttt cacc
+ humanchr1/239220001-239550000 302390 GGTCGGTGCAAAATCAATTGTGGTTTTTGCCATTGCTTTTAATTGCttttA-AAA--GTA-ATGCTTTTACACC 302459
+ 899******************************************955533.443..334.4689********* PP
+
+ xxxxxxx RF
+ MADE1 74 aacctaa 80
+ aa ctaa
+ humanchr1/239220001-239550000 302460 AATCTAA 302466
+ **99986 PP
+\end{sreoutput}
+\end{samepage}
+
+Details of the alignment format are the same as for \prog{hmmsearch}.
+
+
+Finally, at the bottom of the file, you'll see some summary
+statistics. For example, at the bottom of the MADE1 search output,
+you'll find something like:
+
+\begin{samepage}
+\begin{sreoutput}
+Internal pipeline statistics summary:
+-------------------------------------
+Query model(s): 1 (80 nodes)
+Target sequences: 1 (660000 residues searched)
+Residues passing SSV filter: 61658 (0.0934); expected (0.02)
+Residues passing bias filter: 45802 (0.0694); expected (0.02)
+Residues passing Vit filter: 2443 (0.0037); expected (0.001)
+Residues passing Fwd filter: 2217 (0.00336); expected (1e-05)
+Total number of hits: 5 (0.000403)
+# CPU time: 0.05u 0.00s 00:00:00.05 Elapsed: 00:00:00.03
+# Mc/sec: 1760.00
+//
+\end{sreoutput}
+\end{samepage}
+
+This gives you some idea of what's going on in nhmmer's acceleration
+pipeline. You've got one query HMM, and 660,000 residues were
+% ^^^^^^^
+searched (there are 330,000 bases in the single sequence found in the file;
+% ^^^^^^^
+the search includes the reverse complement, doubling the search space). The
+sequences in the database go through a gauntlet of three scoring algorithms
+called SSV, Viterbi, and Forward, in order of increasing sensitivity and
+increasing computational requirement.
+
+SSV (the ``Single ungapped Segment Viterbi'' algorithm) as used
+in nhmmer is closely related to the MSV algorithm used in \prog{hmmsearch},
+in that it depends on ungapped alignment segments. The difference lies in
+how those alignments are used. Using MSV, a sequence is either rejected or
+accepted in its entirety. In the scanning-SSV filter of \prog{nhmmer}, each
+sequence in the database is scanned for high-scoring ungapped alignment
+segments, and a window around each such segment is extracted (merging
+overlapping windows), and passed on to the next stage. By default, nhmmer is
+configured to allow sequence segments with a P-value of $\leq 0.02$ through the
+SSV score filter (thus, if the database contained no homologs and P-values were
+accurately calculated, the highest scoring 2\% of the sequence will pass the
+filter). Here, 61658 bases,
+% ^^^^^^
+or about 9\% of the database, got through the SSV filter.
+% ^^^^
+
+
+The quick ``bias filter'' is then applied, as in \prog{hmmsearch}. Here,
+ 45802 bases, roughly 7\% of the database
+% ^^^^^ ^^^
+pass through the bias filter.
+
+The Viterbi filter then calculates a gapped optimal alignment score for each
+window that survived the earlier stages. This score is a closer approximation
+than the SSV score of the final score that the window will achieve if it
+survives to final processing, but the Viterbi filter is about four-fold slower
+than SSV. By default, nhmmer lets windows with a P-value of $\leq 0.001$
+through this stage. Here, 2443 bases, about 0.4\% of the database gets through.
+% ^^^^ ^^^^^
+
+Then the full Forward score is calculated, which sums over all
+possible alignments of the profile to the window. The default
+allows windows with a P-value of $\leq 10^{-5}$ through; 2217 bases
+% ^^^^
+passed.
+
+All sequences that make it through these filters are
+then subjected to a full probabilistic analysis using the HMM
+Forward/Backward algorithms, to identify hit envelopes, then determine
+posterior probabilities for each aligned residue, followed by optimal
+accuracy alignment. The results of this step are what you finally see on
+the output. The final number of hits and fractional coverage of the
+database is shown next. This is typically smaller than the fraction of the
+database passing the Forward filter, as hit identification typically trims
+windows down to a smaller envelope.
+
+Finally, nhmmer reports the speed of the search in units of Mc/sec
+(million dynamic programming cells per second), the CPU time, and the
+elapsed time. This search took about 0.03 seconds of elapsed (wall
+% ^^^^
+clock time).
+
+There is not currently a DNA analog to \prog{jackhmmer}.
+
+
+
\subsection{Searching a profile HMM database with a query sequence}
-The \prog{hmmscan} program is for annotating all the different
-known/detectable domains in a given sequence. It takes a single query
+In some cases, rather than wishing to search a single model against a collection
+of sequences, you may wish to annotate all the instances of a collection of HMMs
+found in a single sequence.
+
+In the case of proteins, \prog{hmmscan} is for annotating all the different
+known/detectable domains in a given protein sequence. It takes a single query
sequence and an HMM database as input. The HMM database might be Pfam,
SMART, or TIGRFams, for example, or another collection of your choice.
+In the case of DNA, the same purpose is met with \prog{nhmmscan}. In this case,
+the HMM database might be Dfam (a database of HMMs for transposable element
+families), or a collection of conserved regulatory elements.
+
+Here, we show an example of using \prog{hmmscan}, which, you will see, produces
+output very much like that of \prog{hmmsearch}. We omit details of running
+\prog{nhmmscan} - it is run in the same way as \prog{hmmscan}, and its output
+matches that of \prog{nhmmer}.
+
\subsubsection{Step 1: create an HMM database flatfile}
An HMM ``database'' flatfile is simply a concatenation of individual
@@ -881,6 +1488,7 @@ database with the \prog{hmmpress} program:
This will quickly produce:
+\begin{samepage}
\begin{sreoutput}
Working... done.
Pressed and indexed 3 HMMs (3 names and 2 accessions).
@@ -889,6 +1497,7 @@ SSI index for binary model file: minifam.h3i
Profiles (MSV part) pressed into: minifam.h3f
Profiles (remainder) pressed into: minifam.h3p
\end{sreoutput}
+\end{samepage}
and you'll see these four new binary files in the directory.
@@ -919,10 +1528,11 @@ what happens when we scan the \prog{7LESS\_DROME} sequence:
The header and the first section of the output will look like:
% tutorial regression: 7LESS.out
+\begin{samepage}
\begin{sreoutput}
# hmmscan :: search sequence(s) against a profile database
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# query sequence file: 7LESS_DROME
@@ -938,9 +1548,10 @@ Scores for complete sequence (score includes all domains):
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Model Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
- 5.6e-57 178.0 0.4 3.5e-16 47.2 0.7 9.4 9 fn3 Fibronectin type III domain
- 1.1e-43 137.2 0.0 1.7e-43 136.5 0.0 1.3 1 Pkinase Protein kinase domain
+ 5.6e-57 178.0 0.4 3.5e-16 47.2 0.9 9.4 9 fn3 Fibronectin type III domain
+ 1.1e-43 137.2 0.0 1.7e-43 136.5 0.0 1.3 1 Pkinase Protein kinase domain
\end{sreoutput}
+\end{samepage}
The output fields are in the same order and have the same meaning as
in \prog{hmmsearch}'s output.
@@ -957,8 +1568,9 @@ just as in \prog{hmmsearch}. The \prog{fn3} annotation, for example,
looks like:
% tutorial regression: 7LESS.out
+\begin{samepage}
\begin{sreoutput}
-Domain and alignment annotation for each model:
+Domain annotation for each model (and alignments):
>> fn3 Fibronectin type III domain
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
@@ -968,22 +1580,26 @@ Domain and alignment annotation for each model:
4 ! 5.1 0.0 0.0032 0.0048 10 36 .. 1209 1235 .. 1203 1259 .. 0.82
5 ! 24.3 0.0 3.4e-09 5e-09 14 80 .. 1313 1380 .. 1304 1386 .. 0.82
6 ? 0.0 0.0 0.13 0.19 58 72 .. 1754 1768 .. 1739 1769 .. 0.89
- 7 ! 47.2 0.7 2.3e-16 3.5e-16 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
+ 7 ! 47.2 0.9 2.3e-16 3.5e-16 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
8 ! 17.8 0.0 3.7e-07 5.5e-07 6 74 .. 1904 1966 .. 1901 1976 .. 0.90
9 ! 12.8 0.0 1.3e-05 2e-05 1 86 [] 1993 2107 .. 1993 2107 .. 0.89
\end{sreoutput}
+\end{samepage}
and an example alignment (of that second domain again):
% tutorial regression: 7LESS.out
+\begin{samepage}
\begin{sreoutput}
- == domain 2 score: 40.7 bits; conditional E-value: 2.6e-14
- ---CEEEEEEECTTEEEEEEE--S..SS--SEEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEEEEEETTEE.E CS
+ == domain 2 score: 40.7 bits; conditional E-value: 2.6e-14
+ ---CEEEEEEECTTEEEEEEE--S--SS--SEEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEEEEEETTEE-E CS
fn3 2 saPenlsvsevtstsltlsWsppkdgggpitgYeveyqekgegeewqevtvprtttsvtltgLepgteYefrVqavngagegp 84
saP ++ + ++ l ++W p + +gpi+gY++++++++++ + e+ vp+ s+ +++L++gt+Y++ + +n++gegp
7LESS_DROME 439 SAPVIEHLMGLDDSHLAVHWHPGRFTNGPIEGYRLRLSSSEGNA-TSEQLVPAGRGSYIFSQLQAGTNYTLALSMINKQGEGP 520
78999999999*****************************9998.**********************************9997 PP
\end{sreoutput}
+\end{samepage}
+
You'd think that except for the E-values (which depend on database
search space sizes), you should get exactly the same scores, domain
@@ -1005,6 +1621,12 @@ argument of \prog{--seed 0} to programs that have this property
(hmmbuild and the four search programs).
+
+
+
+
+
+
\subsection{Creating multiple alignments with hmmalign}
The file \prog{tutorial/globins45.fa} is a FASTA file containing 45
@@ -1017,6 +1639,7 @@ The output of this is a Stockholm format multiple alignment file. The
first few lines of it look like:
% tutorial regression: head -15 glb-ali.out
+\begin{samepage}
\begin{sreoutput}
# STOCKHOLM 1.0
@@ -1035,6 +1658,7 @@ MYG_MOUSE g--LSDGEWQLVLNVWGKVEADLAGHGQEVLIGLFKTHPETLDKFDKFKN
MYG_MUSAN v------DWEKVNSVWSAVESDLTAIGQNILLRLFEQYPESQNHFPKFKN
...
\end{sreoutput}
+\end{samepage}
and so on.
@@ -1062,7 +1686,7 @@ residues and gap characters \footnote{By default, \prog{hmmalign}
trimming and see columns for all match states, use the
\prog{--allcol} option. This can be helpful if you're writing some
postprocessor that's trying to keep track of what columns are
- assigned to what match states in the profile.} In input files, in
+ assigned to what match states in the profile.}. In input files, in
most alignment formats\footnote{A2M format is the exception.} HMMER is
case-insensitive, and it does not distinguish between different gap
characters: '-' (dash), '.' (period), or even '\_' (underscore) are
@@ -1076,7 +1700,7 @@ The residues of the shorter insertion are thrown down in an arbitrary
order. (If you must know: by arbitrary HMMER convention, the insertion
is divided in half; half is left-justified, and the other half is
right-justified, leaving '.' characters in the middle.) Notice that
-in the previous paragraph I oh-so-carefully said residues are
+in the previous paragraph we oh-so-carefully said residues are
``assigned'' to a state, not ``aligned''. For match states, assigned
and aligned are the same thing: a one-to-one correspondence between a
residue and a consensus match state in the model. But there may be one
@@ -1092,9 +1716,9 @@ Enough about the sequences in the alignment. Now notice all those
\prog{PP} annotation lines. That's posterior probability annotation,
as in the single sequence alignments that \prog{hmmscan} and
\prog{hmmsearch} showed. This essentially represents the confidence
-that each residue is aligned where it should be.
+that each residue is assigned where it should be.
-Er, I mean, ``assigned'', not ``aligned''. The posterior probability
+Again, that's ``assigned'', not ``aligned''. The posterior probability
assigned to an inserted residue is the probability that it is assigned
to the insert state that corresponds to that column. Because the same
insert state might correspond to more than one column, the probability
@@ -1102,15 +1726,15 @@ on an insert residue is \emph{not} the probability that it belongs in
that particular column; again, where there's a choice of column for
inserted residues, that choice is arbitrary.
-\prog{hmmalign} currently has a ``feature'' that we're aware
-of. Recall that HMMER3 only does local alignments. Here, we know that
+The program \prog{hmmalign} currently has a ``feature'' that we're aware
+of. Recall that HMMER only does local alignments. Here, we know that
we've provided full length globin sequences, and \prog{globins4} is a
full length globin model. We'd probably like \prog{hmmalign} to
produce a global alignment. It can't currently do that. If it doesn't
quite manage to extend its local alignment to the full length of a
target globin sequence, you'll get a weird-looking effect, as the
nonmatching termini are pulled out to the left or right. For example,
-look at the N-terminal \prog{g} in \prog{MYG\_HORSE} above. H3 is
+look at the N-terminal \prog{g} in \prog{MYG\_HORSE} above. HMMER is
about 80\% confident that this residue is nonhomologous, though any
sensible person would align it into the first globin consensus column.
@@ -1118,6 +1742,7 @@ Look at the end of that first block of Stockholm alignment, where you'll
see:
% tutorial regression: glb-ali.out
+\begin{samepage}
\begin{sreoutput}
...
HBBL_RANCA v-HWTAEEKAVINSVWQKV--DVEQDGHEALTRLFIVYPWTQRYFSTFGD
@@ -1127,6 +1752,7 @@ HBB2_TRICR .VHLTAEDRKEIAAILGKV--NVDSLGGQCLARLIVVNPWSRRYFHDFGD
#=GC PP_cons .679**********************************************
#=GC RF .xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
\end{sreoutput}
+\end{samepage}
The \prog{\#=GC PP\_cons} line is Stockholm-format \emph{consensus
posterior probability} annotation for the entire column. It's
@@ -1141,211 +1767,6 @@ The \prog{\#=GC RF} line is Stockholm-format \emph{reference
coordinate annotation}, with an x marking each column that the
profile considered to be consensus.
-\subsection{Single sequence queries using phmmer}
-
-The \prog{phmmer} program is for searching a single sequence query
-against a sequence database, much as \prog{BLASTP} or \prog{FASTA}
-would do. \prog{phmmer} works essentially just like \prog{hmmsearch}
-does, except you provide a query sequence instead of a query profile
-HMM.
-
-Internally, HMMER builds a profile HMM from your single query
-sequence, using a simple position-independent scoring system (BLOSUM62
-scores converted to probabilities, plus a gap-open and gap-extend
-probability).
-
-The file \prog{tutorial/HBB\_HUMAN} is a FASTA file containing the
-human $\beta-$globin sequence as an example query. If you have a
-sequence database such as \prog{uniprot\_sprot.fasta}, make that your
-target database; otherwise, use \prog{tutorial/globins45.fa} as a
-small example:
-
-\user{phmmer tutorial/HBB\_HUMAN uniprot\_sprot.fa}\\
-or\\
-\user{phmmer tutorial/HBB\_HUMAN tutorial/globins45.fa}
-
-Everything about the output is essentially as previously described for
-\prog{hmmsearch}.
-
-
-\subsection{Iterative searches using jackhmmer}
-
-The \prog{jackhmmer} program is for searching a single sequence query
-iteratively against a sequence database, much as \prog{PSI-BLAST}
-would do.
-
-The first round is identical to a \prog{phmmer} search. All the
-matches that pass the inclusion thresholds are put in a multiple
-alignment. In the second (and subsequent) rounds, a profile is made
-from these results, and the database is searched again with the
-profile.
-
-Iterations continue either until no new sequences are detected or the
-maximum number of iterations is reached. By default, the maximum
-number of iterations is 5; you can change this with the \ccode{-N}
-option.
-
-Your original query sequence is always included in the multiple
-alignments, whether or not it appears in the database.\footnote{If it
- \emph{is} in the database, it will almost certainly be included in
- the internal multiple alignment twice, once because it's the query
- and once because it's a significant database match to itself. This
- redundancy won't screw up the alignment, because sequences are
- downweighted for redundancy anyway.}
-The ``consensus'' columns assigned to each multiple alignment always
-correspond exactly to the residues of your query, so the coordinate
-system of every profile is always the same as the numbering of
-residues in your query sequence, 1..L for a sequence of length L.
-
-Assuming you have UniProt or something like it handy, here's an
-example command line for a jackhmmer search:
-
-\user{jackhmmer tutorial/HBB\_HUMAN uniprot\_sprot.fa}\\
-
-One difference from \prog{phmmer} output you'll notice is that
-\prog{jackhmmer} marks ``new'' sequences with a \ccode{+} and ``lost''
-sequences with a \ccode{-}. New sequences are sequences that pass the
-inclusion threshold(s) in this round, but didn't in the round before.
-Lost sequences are the opposite: sequences that passed the inclusion
-threshold(s) in the previous round, but have now fallen beneath (yet
-are still in the reported hits -- it's possible, though rare, to lose
-sequences utterly, if they no longer even pass the reporting
-threshold(s)). In the first round, everything above the inclusion
-thresholds is marked with a \ccode{+}, and nothing is marked with a
-\ccode{-}. For example, the top of this output looks like:
-
-% tutorial regression: hbb-jack.out
-\begin{sreoutput}
-# jackhmmer :: iteratively search a protein sequence against a protein database
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# query sequence file: HBB_HUMAN
-# target sequence database: uniprot_sprot.fasta
-# per-seq hits tabular output: hbb-jack.tbl
-# per-dom hits tabular output: hbb-jack.domtbl
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-Query: HBB_HUMAN [L=146]
-Description: Human beta hemoglobin.
-
-Scores for complete sequences (score includes all domains):
- --- full sequence --- --- best 1 domain --- -#dom-
- E-value score bias E-value score bias exp N Sequence Description
- ------- ------ ----- ------- ------ ----- ---- -- -------- -----------
-+ 2.3e-98 331.4 0.0 2.5e-98 331.2 0.0 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien
-+ 2.3e-98 331.4 0.0 2.5e-98 331.2 0.0 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu
-+ 2.3e-98 331.4 0.0 2.5e-98 331.2 0.0 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod
-+ 9.1e-98 329.4 0.0 1e-97 329.3 0.0 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor
-+ 2e-96 325.1 0.0 2.2e-96 324.9 0.0 1.0 1 sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates l
-+ 2e-95 321.8 0.0 2.2e-95 321.7 0.0 1.0 1 sp|P02032|HBB_SEMEN Hemoglobin subunit beta OS=Semnopithec
-...
-\end{sreoutput}
-
-That continues until the inclusion threshold is reached, at which
-point you see a tagline ``inclusion threshold'' indicating where the
-threshold was set:
-
-% tutorial regression: hbb-jack.out
-\begin{sreoutput}
-+ 0.00076 24.1 0.0 0.00083 24.0 0.0 1.0 1 sp|P02180|MYG_BALPH Myoglobin OS=Balaenoptera physalus GN=
-+ 0.00087 23.9 0.0 0.0009 23.9 0.0 1.0 1 sp|P02148|MYG_PONPY Myoglobin OS=Pongo pygmaeus GN=MB PE=1
- ------ inclusion threshold ------
- 0.0013 23.3 0.3 0.021 19.4 0.2 2.1 1 sp|P81044|HBAZ_MACEU Hemoglobin subunit zeta (Fragments) OS
- 0.0021 22.7 0.0 0.0022 22.6 0.0 1.0 1 sp|P02182|MYG_ZIPCA Myoglobin OS=Ziphius cavirostris GN=MB
-\end{sreoutput}
-
-The domain output and search statistics are then shown just as in
-\prog{phmmer}. At the end of this first iteration, you'll see some
-output that starts with \ccode{@@} (this is a simple tag that lets you
-search through the file to find the end of one iteration and the
-beginning of another):
-
-% tutorial regression: hbb-jack.out
-\begin{sreoutput}
-@@ New targets included: 894
-@@ New alignment includes: 895 subseqs (was 1), including original query
-@@ Continuing to next round.
-
-@@
-@@ Round: 2
-@@ Included in MSA: 895 subsequences (query + 894 subseqs from 894 targets)
-@@ Model size: 146 positions
-@@
-\end{sreoutput}
-
-This (obviously) is telling you that the new alignment contains 895
-sequences, your query plus 894 significant matches. For round two,
-it's built a new model from this alignment. Now for round two, it
-fires off what's essentially an \prog{hmmsearch} of the target
-database with this new model:
-
-% tutorial regression: hbb-jack.out
-\begin{sreoutput}
-Scores for complete sequences (score includes all domains):
- --- full sequence --- --- best 1 domain --- -#dom-
- E-value score bias E-value score bias exp N Sequence Description
- ------- ------ ----- ------- ------ ----- ---- -- -------- -----------
- 1.5e-67 231.0 0.2 1.7e-67 230.8 0.1 1.0 1 sp|P02055|HBB_MELME Hemoglobin subunit beta OS=Meles meles
- 2.3e-67 230.4 0.4 2.6e-67 230.2 0.3 1.0 1 sp|P81042|HBE_MACEU Hemoglobin subunit epsilon OS=Macropus
- 2.7e-67 230.2 0.3 2.9e-67 230.0 0.2 1.0 1 sp|P15449|HBB_MELCA Hemoglobin subunit beta OS=Mellivora c
- 3.3e-67 229.9 0.2 3.7e-67 229.7 0.2 1.0 1 sp|P68046|HBB_ODORO Hemoglobin subunit beta OS=Odobenus ro
-...
-\end{sreoutput}
-
-If you skim down through this output, you'll start seeing newly
-included sequences marked with \ccode{+}'s, such as:
-
-% tutorial regression: hbb-jack.out
-\begin{sreoutput}
-...
- 9.8e-30 108.3 0.0 1.1e-29 108.2 0.0 1.0 1 sp|P87497|MYG_CHIRA Myoglobin OS=Chionodraco rastrospinosu
-+ 1.4e-29 107.8 0.3 1.5e-29 107.7 0.2 1.0 1 sp|P14399|MYG_MUSAN Myoglobin OS=Mustelus antarcticus GN=m
- 1.5e-29 107.7 0.3 2e-29 107.3 0.2 1.0 1 sp|P80017|GLBD_CAUAR Globin D, coelomic OS=Caudina arenicol
- 3e-29 106.8 0.0 3.3e-29 106.6 0.0 1.0 1 sp|P02022|HBAM_RANCA Hemoglobin heart muscle subunit alpha-
- 4e-29 106.3 0.0 4.4e-29 106.2 0.0 1.0 1 sp|Q9DEP0|MYG_CRYAN Myoglobin OS=Cryodraco antarcticus GN=
-+ 9.3e-29 105.2 0.2 1e-28 105.0 0.1 1.0 1 sp|P14397|MYG_GALGA Myoglobin OS=Galeorhinus galeus GN=mb
- 1.3e-28 104.7 0.0 1.6e-28 104.4 0.0 1.0 1 sp|P0C227|GLB_NERAL Globin OS=Nerita albicilla PE=1 SV=1
- 2e-28 104.1 0.0 2.4e-28 103.8 0.0 1.0 1 sp|P09106|HBAT_PAPAN Hemoglobin subunit theta-1 OS=Papio an
-+ 2.8e-28 103.6 0.1 3.1e-28 103.5 0.1 1.0 1 sp|P14398|MYG_GALJA Myoglobin OS=Galeorhinus japonicus GN=
- 7.9e-26 95.7 0.0 8.8e-26 95.5 0.0 1.0 1 sp|P23216|GLBP1_GLYDI Globin, major polymeric component P1 O
-...
-\end{sreoutput}
-
-It's unusual to see sequences get lost (and marked with \ccode{-}),
-but it can happen; it doesn't happen in this globin example.
-
-After round 2, many more globin sequences have been found:
-
-% tutorial regression: hbb-jack.out
-\begin{sreoutput}
-@@ New targets included: 167
-@@ New alignment includes: 1064 subseqs (was 895), including original query
-@@ Continuing to next round.
-
-@@
-@@ Round: 3
-@@ Included in MSA: 1064 subsequences (query + 1063 subseqs from 1061 targets)
-@@ Model size: 146 positions
-@@
-\end{sreoutput}
-
-Because new sequences were included, it keeps going to round three,
-and then again to round four, then again to round five. After round
-five (where this example has found 1113 included hits in the
-database), the search ends quietly because there's a default maximum
-of five iterations, and you get:
-
-\begin{sreoutput}
-@@ New targets included: 1
-@@ New alignment includes: 1114 subseqs (was 1113), including original query
-//
-\end{sreoutput}
-
-That \ccode{//} marks the end of the results for one query.
-
-
diff --git a/hmmer/makeTAGS.sh b/hmmer/makeTAGS.sh
new file mode 100755
index 0000000..11fe387
--- /dev/null
+++ b/hmmer/makeTAGS.sh
@@ -0,0 +1,19 @@
+#! /bin/sh
+
+etags configure.ac
+etags -a COPYRIGHT
+etags -a INSTALL
+etags -a LICENSE
+
+# Recursively add all .c, .h, .pl, *.tex, *.man
+find . -name "*.c" -print -or -name "*.h" -print | xargs etags -a
+find . -name "*.pl" -print -or -name "*.pm" -print | xargs etags -a
+find . -name "*.sh" -print | xargs etags -a
+find . -name "*.tex" -print | xargs etags -a
+find . -name "*.man" -print | xargs etags -a
+find . -name "*.in" -print | xargs etags -a
+find . -name "*.sqc" -print | xargs etags -a
+find . -name "*README" -print | xargs etags -a
+
+etags -a documentation/man/boilerplate-tail
+
diff --git a/hmmer/profmark/Makefile.in b/hmmer/profmark/Makefile.in
index e45c64a..86bf285 100644
--- a/hmmer/profmark/Makefile.in
+++ b/hmmer/profmark/Makefile.in
@@ -58,14 +58,14 @@ clean:
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/profmark/Makefile.in $
-# SVN $Id: Makefile.in 3844 2012-02-07 21:51:20Z eddys $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/profmark/create-profmark.c b/hmmer/profmark/create-profmark.c
index 13f0ea8..6a94ec0 100644
--- a/hmmer/profmark/create-profmark.c
+++ b/hmmer/profmark/create-profmark.c
@@ -33,7 +33,7 @@
#include "esl_sqio.h"
#include "esl_stack.h"
#include "esl_vectorops.h"
-
+#include "esl_composition.h"
static char banner[] = "construct a benchmark profile training/test set";
static char usage[] = "[options] <basename> <msafile> <seqdb>\n";
@@ -158,7 +158,7 @@ main(int argc, char **argv)
char outfile[256]; /* name of an output file */
int alifmt; /* format code for alifile */
int dbfmt; /* format code for dbfile */
- ESLX_MSAFILE *afp = NULL; /* open alignment file */
+ ESL_MSAFILE *afp = NULL; /* open alignment file */
ESL_MSA *origmsa = NULL; /* one multiple sequence alignment */
ESL_MSA *msa = NULL; /* MSA after frags are removed */
ESL_MSA *trainmsa= NULL; /* training set, aligned */
@@ -216,8 +216,8 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--dna")) cfg.abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--rna")) cfg.abc = esl_alphabet_Create(eslRNA);
- status = eslx_msafile_Open(&(cfg.abc), alifile, NULL, alifmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(&(cfg.abc), alifile, NULL, alifmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if (cfg.abc->type == eslAMINO) esl_composition_SW34(cfg.fq);
else esl_vec_DSet(cfg.fq, cfg.abc->K, 1.0 / (double) cfg.abc->K);
@@ -227,9 +227,9 @@ main(int argc, char **argv)
/* Read and process MSAs one at a time */
nali = 0;
- while ((status = eslx_msafile_Read(afp, &origmsa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &origmsa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
esl_msa_ConvertDegen2X(origmsa);
esl_msa_Hash(origmsa);
@@ -252,7 +252,7 @@ main(int argc, char **argv)
synthesize_positives(go, &cfg, msa->name, teststack, &ntest);
- eslx_msafile_Write(cfg.out_msafp, trainmsa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(cfg.out_msafp, trainmsa, eslMSAFILE_STOCKHOLM);
esl_dst_XAverageId(cfg.abc, trainmsa->ax, trainmsa->nseq, 10000, &avgid); /* 10000 is max_comparisons, before sampling kicks in */
fprintf(cfg.tblfp, "%-20s %3.0f%% %6d %6d %6d %6d %6d %6d\n", msa->name, 100.*avgid, (int) trainmsa->alen, msa->nseq, nfrags, trainmsa->nseq, ntestdom, ntest);
@@ -275,7 +275,7 @@ main(int argc, char **argv)
if (cfg.pidfp) fclose(cfg.pidfp);
esl_randomness_Destroy(cfg.r);
esl_alphabet_Destroy(cfg.abc);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_getopts_Destroy(go);
return 0;
}
@@ -324,7 +324,6 @@ remove_fragments(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_filteredmsa, int
int *useme = NULL;
double len = 0.0;
int i;
- int nfrags;
int status;
for (i = 0; i < msa->nseq; i++)
@@ -332,7 +331,7 @@ remove_fragments(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_filteredmsa, int
len *= cfg->fragfrac / (double) msa->nseq;
ESL_ALLOC(useme, sizeof(int) * msa->nseq);
- for (nfrags = 0, i = 0; i < msa->nseq; i++)
+ for (i = 0; i < msa->nseq; i++)
useme[i] = (esl_abc_dsqrlen(msa->abc, msa->ax[i]) < len) ? 0 : 1;
if ((status = esl_msa_SequenceSubset(msa, useme, ret_filteredmsa)) != eslOK) goto ERROR;
@@ -362,7 +361,6 @@ separate_sets(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_trainmsa, ESL_STACK
int nc = 0;
int c;
int ctrain; /* index of the cluster that becomes the training alignment */
- int ntrain; /* number of seqs in the training alignment */
int nskip;
int i;
int status;
@@ -372,7 +370,7 @@ separate_sets(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_trainmsa, ESL_STACK
if ((status = esl_msacluster_SingleLinkage(msa, cfg->idthresh1, &assignment, &nin, &nc)) != eslOK) goto ERROR;
ctrain = esl_vec_IArgMax(nin, nc);
- ntrain = esl_vec_IMax(nin, nc);
+ //ntrain = esl_vec_IMax(nin, nc); // We don't need <ntrain> for anything, but this is how you'd get it.
for (i = 0; i < msa->nseq; i++) useme[i] = (assignment[i] == ctrain) ? 1 : 0;
if ((status = esl_msa_SequenceSubset(msa, useme, &trainmsa)) != eslOK) goto ERROR;
@@ -634,7 +632,7 @@ set_random_segment(ESL_GETOPTS *go, struct cfg_s *cfg, FILE *logfp, ESL_DSQ *dsq
char *pkey = NULL;
int start, end;
int64_t Lseq;
- int status;
+ int status = eslOK;
if (L==0) return eslOK;
if (L > cfg->db_maxL) esl_fatal("can't fetch a segment of length %d; database max is %d\n", L, cfg->db_maxL);
@@ -750,15 +748,12 @@ write_pids(FILE *pidfp, ESL_MSA *origmsa, ESL_MSA *trainmsa, ESL_STACK *teststac
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/profmark/create-profmark.c $
- * SVN $Id: create-profmark.c 3267 2010-05-14 17:27:36Z eddys $
*****************************************************************/
diff --git a/hmmer/profmark/rocplot.c b/hmmer/profmark/rocplot.c
index d2773c1..4e628ed 100644
--- a/hmmer/profmark/rocplot.c
+++ b/hmmer/profmark/rocplot.c
@@ -42,7 +42,7 @@
* xmgrace -settype xydydy results.xy
*
* SRE, Wed Jun 18 13:37:31 2008 [Janelia]
- * SVN $Id: rocplot.c 3546 2011-05-23 14:36:44Z eddys $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/hmmer/src/Makefile.in b/hmmer/src/Makefile.in
index 1b56fbc..2d03993 100644
--- a/hmmer/src/Makefile.in
+++ b/hmmer/src/Makefile.in
@@ -25,7 +25,7 @@ SIMDFLAGS = @SIMD_CFLAGS@
CPPFLAGS = @CPPFLAGS@
LDFLAGS = @LDFLAGS@
DEFS = @DEFS@
-LIBS = -lhmmer -leasel -ldivsufsort @LIBS@ @LIBGSL@ @PTHREAD_LIBS@ -lm
+LIBS = -lhmmer -leasel -ldivsufsort @LIBS@ @LIBGSL@ @PTHREAD_LIBS@ -lm
MPILIBS = @MPILIBS@
AR = @AR@
@@ -45,7 +45,6 @@ MYINCDIRS = -I../${ESLDIR} \
PROGS = alimask\
- exactmatch\
hmmalign\
hmmbuild\
hmmconvert\
@@ -60,9 +59,11 @@ PROGS = alimask\
jackhmmer\
phmmer\
nhmmer\
+ nhmmscan\
hmmpgmd\
hmmc2\
- makenhmmerdb
+ makehmmerdb\
+ hmmerfm-exactmatch
PROGOBJS =\
@@ -82,9 +83,11 @@ PROGOBJS =\
jackhmmer.o\
phmmer.o\
nhmmer.o\
+ nhmmscan.o\
hmmpgmd.o\
hmmc2.o\
- makenhmmerdb.o\
+ makehmmerdb.o\
+ hmmerfm-exactmatch.o
HDRS = hmmer.h \
cachedb.h \
@@ -141,11 +144,12 @@ OBJS = build.o\
p7_spensemble.o\
p7_tophits.o\
p7_trace.o\
- p7_msvdata.o\
+ p7_scoredata.o\
+ hmmpgmd2msa.o\
fm_alphabet.o\
fm_general.o\
- fm_msv.o\
- hmmpgmd2msa.o
+ fm_sse.o\
+ fm_ssv.o
# island.o\
STATS = \
@@ -184,7 +188,8 @@ UTESTS =\
p7_profile_utest\
p7_tophits_utest\
p7_trace_utest\
- p7_msvdata_utest
+ p7_scoredata_utest\
+ hmmpgmd2msa_utest
ITESTS = \
itest_brute
@@ -248,7 +253,7 @@ libhmmer-src.stamp: ${OBJS}
${OBJS}: ${HDRS} p7_config.h
${PROGOBJS}: ${HDRS} p7_config.h
-${PROGS}: @EXEC_DEPENDENCY@ libhmmer.a ../${ESLDIR}/libeasel.a
+${PROGS}: @EXEC_DEPENDENCY@ libhmmer.a ../${ESLDIR}/libeasel.a
${QUIET_GEN}${CC} ${CFLAGS} ${SIMDFLAGS} ${DEFS} ${LDFLAGS} ${MYLIBDIRS} -o $@ $@.o ${MPILIBS} ${LIBS}
.c.o:
@@ -359,13 +364,13 @@ clean:
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/Makefile.in $
-# SVN $Id: Makefile.in 4103 2012-06-24 02:09:43Z wheelert $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/src/alimask.c b/hmmer/src/alimask.c
index 0865b24..208b744 100644
--- a/hmmer/src/alimask.c
+++ b/hmmer/src/alimask.c
@@ -57,11 +57,14 @@ static ESL_OPTIONS options[] = {
/* mask ranges */
{ "--modelrange", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "range(s) for mask(s) in model coordinates", 5 },
{ "--alirange", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "range(s) for mask(s) in alignment coordinates", 5 },
- { "--model2ali", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "print model ranges corresponding to input alignment ranges", 5 },
- { "--ali2model", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "print alignment ranges corresponding to input model ranges", 5 },
+ { "--apendmask", eslARG_NONE, NULL, NULL, NULL, NULL, WGTOPTS, NULL, "add to existing mask (default ignores to existing mask)", 5 },
+ { "--model2ali", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "given model ranges, print corresp. input alignment ranges", 5 },
+ { "--ali2model", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, RANGEOPTS, "given alignment ranges, print corresp. model ranges", 5 },
+
/* Other options */
- { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input alifile is in format <s> (no autodetect)", 8 },
- { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 8 },
+ { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input alifile is in format <s> (no autodetect)", 8 },
+ { "--outformat", eslARG_STRING, "Stockholm", NULL, NULL, NULL, NULL, NULL, "output alignment in format <s>", 2 },
+ { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 8 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -138,13 +141,21 @@ static int
output_header(const ESL_GETOPTS *go, FILE *ofp, char *alifile, char *postmsafile)
{
p7_banner(ofp, go->argv[0], banner);
-
+
if (fprintf(ofp, "# input alignment file: %s\n", alifile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) {
if (fprintf(ofp, "# output alignment file: %s\n", postmsafile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
+ if (esl_opt_IsUsed(go, "--alirange") && fprintf(ofp, "# alignment range: %s\n", esl_opt_GetString(go, "--alirange")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--modelrange") && fprintf(ofp, "# model range: %s\n", esl_opt_GetString(go, "--modelrange"))< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--apendmask") && fprintf(ofp, "# add to existing mask: [on]\n" )< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "--model2ali") && fprintf(ofp, "# ali ranges for model range: %s\n", esl_opt_GetString(go, "--model2ali")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--ali2model") && fprintf(ofp, "# model ranges for ali range: %s\n", esl_opt_GetString(go, "--ali2model")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+
if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--amino") && fprintf(ofp, "# input alignment is asserted as: protein\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--dna") && fprintf(ofp, "# input alignment is asserted as: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -167,26 +178,61 @@ output_header(const ESL_GETOPTS *go, FILE *ofp, char *alifile, char *postmsafile
return eslOK;
}
-/* lifted from esl-sfetch */
-static int
-parse_coord_string(const char *cstring, uint32_t *ret_start, uint32_t *ret_end)
+
+/* Function: p7_Alimask_MakeModel2AliMap()
+ * Synopsis: Compute map of coordinate in the alignment corresponding to each model position.
+ *
+ * Args: msa - The alignment for which the mapped model is to be computed. We assume
+ * the MSA has already been manipulated to account for model building
+ * flags (e.g. weighting).
+ * do_hand - TRUE when the model is to follow a hand-build RF line (which must be
+ * part of the file.
+ * symfraq - if weighted occupancy exceeds this value, include the column in the model.
+ * map - int array into which the map values will be stored. Calling function
+ * must allocate (msa->alen+1) ints.
+ *
+ * Returns: The number of mapped model positions.
+ */
+int
+p7_Alimask_MakeModel2AliMap(ESL_MSA *msa, int do_hand, float symfrac, int *map )
{
- ESL_REGEXP *re = esl_regexp_Create();
- char tok1[32];
- char tok2[32];
+ int i = 0;
+ int apos, idx;
+ float r; /* weighted residue count */
+ float totwgt; /* weighted residue+gap count */
+
+ i = 0;
+ if ( do_hand ) {
+ if (msa->rf == NULL) p7_Fail("Model file does not contain an RF line, required for --hand.\n");
+ /* Watch for off-by-one. rf is [0..alen-1]*/
+ for (apos = 1; apos <= msa->alen; apos++) {
+ if (!esl_abc_CIsGap(msa->abc, msa->rf[apos-1]) ) {
+ map[i] = apos;
+ i++;
+ }
+ }
- if (esl_regexp_Match(re, "^(\\d+)\\D+(\\d*)$", cstring) != eslOK) esl_fatal("-c takes arg of subseq coords <from>..<to>; %s not recognized", cstring);
- if (esl_regexp_SubmatchCopy(re, 1, tok1, 32) != eslOK) esl_fatal("Failed to find <from> coord in %s", cstring);
- if (esl_regexp_SubmatchCopy(re, 2, tok2, 32) != eslOK) esl_fatal("Failed to find <to> coord in %s", cstring);
+ } else {
- *ret_start = atol(tok1);
- *ret_end = (tok2[0] == '\0') ? 0 : atol(tok2);
+ for (apos = 1; apos <= msa->alen; apos++)
+ {
+ r = totwgt = 0.;
+ for (idx = 0; idx < msa->nseq; idx++)
+ {
+ if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) { r += msa->wgt[idx]; totwgt += msa->wgt[idx]; }
+ else if (esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) { totwgt += msa->wgt[idx]; }
+ else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) continue;
+ }
- esl_regexp_Destroy(re);
- return eslOK;
+ if (r > 0. && r / totwgt >= symfrac) {
+ map[i] = apos;
+ i++;
+ }
+ }
+ }
+ return i;
}
-
int
main(int argc, char **argv)
{
@@ -201,9 +247,11 @@ main(int argc, char **argv)
FILE *ofp = NULL; /* output file (default is stdout) */
ESL_ALPHABET *abc = NULL; /* digital alphabet */
- char *alifile; /* name of the alignment file we're building HMMs from */
- ESLX_MSAFILE *afp = NULL; /* open alifile */
- int fmt; /* format code for alifile */
+ char *alifile; /* name of the alignment file we're building HMMs from */
+ ESL_MSAFILE *afp = NULL; /* open alifile */
+ int infmt = eslMSAFILE_UNKNOWN; /* autodetect alignment format by default. */
+ int outfmt = eslMSAFILE_STOCKHOLM;
+
char *postmsafile; /* optional file to resave annotated, modified MSAs to */
FILE *postmsafp = NULL; /* open <postmsafile>, or NULL */
@@ -218,59 +266,65 @@ main(int argc, char **argv)
int *map = NULL; /* map[i]=j, means model position i comes from column j of the alignment; 1..alen */
+ int keep_mm;
+
/* Set processor specific flags */
impl_Init();
-
alifile = NULL;
postmsafile = NULL;
/* Parse the command line
*/
process_commandline(argc, argv, &go, &alifile, &postmsafile);
-
+ keep_mm = esl_opt_IsUsed(go, "--apendmask");
/* Initialize what we can in the config structure (without knowing the alphabet yet).
* Fields controlled by masters are set up in usual_master() or mpi_master()
* Fields used by workers are set up in mpi_worker()
*/
ofp = NULL;
- fmt = eslMSAFILE_UNKNOWN; /* autodetect alignment format by default. */
+ infmt = eslMSAFILE_UNKNOWN;
afp = NULL;
abc = NULL;
if (esl_opt_IsOn(go, "--informat")) {
- fmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
- if (fmt == eslMSAFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat"));
+ infmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ if (infmt == eslMSAFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat"));
}
+ /* Determine output alignment file format */
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ if (outfmt == eslMSAFILE_UNKNOWN) p7_Fail(argv[0], "%s is not a recognized output MSA file format\n", esl_opt_GetString(go, "--outformat"));
+
+
/* Parse the ranges */
if (esl_opt_IsUsed(go, "--alirange")) {
- rangestr = esl_opt_GetString(go, "--alirange");
+ esl_strdup(esl_opt_GetString(go, "--alirange"), -1, &rangestr) ;
} else if (esl_opt_IsUsed(go, "--modelrange")) {
- rangestr = esl_opt_GetString(go, "--modelrange");
+ esl_strdup(esl_opt_GetString(go, "--modelrange"), -1, &rangestr) ;
} else if (esl_opt_IsUsed(go, "--model2ali")) {
- rangestr = esl_opt_GetString(go, "--model2ali");
+ esl_strdup(esl_opt_GetString(go, "--model2ali"), -1, &rangestr) ;
} else if (esl_opt_IsUsed(go, "--ali2model")) {
- rangestr = esl_opt_GetString(go, "--ali2model");
+ esl_strdup(esl_opt_GetString(go, "--ali2model"), -1, &rangestr) ;
} else {
if (puts("Must specify mask range with --modelrange, --alirange, --model2ali, or --ali2model\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto ERROR;
}
-
while ( (status = esl_strtok(&rangestr, ",", &range) ) == eslOK) {
- parse_coord_string(range, mask_starts + mask_range_cnt, mask_ends + mask_range_cnt );
+ status = esl_regexp_ParseCoordString(range, mask_starts + mask_range_cnt, mask_ends + mask_range_cnt );
+ if (status == eslESYNTAX) esl_fatal("range flags take coords <from>..<to>; %s not recognized", range);
+ if (status == eslFAIL) esl_fatal("Failed to find <from> or <to> coord in %s", range);
+
mask_range_cnt++;
}
-
/* Start timing. */
esl_stopwatch_Start(w);
-
/* Open files, set alphabet.
* afp - open alignment file for input
* abc - alphabet expected or guessed in ali file
@@ -282,8 +336,8 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--rna")) abc = esl_alphabet_Create(eslRNA);
else abc = NULL;
- status = eslx_msafile_Open(&abc, alifile, NULL, fmt, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(&abc, alifile, NULL, infmt, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) {
postmsafp = fopen(postmsafile, "w");
@@ -297,31 +351,33 @@ main(int argc, char **argv)
}
else ofp = stdout;
+
/* Looks like the i/o is set up successfully...
* Initial output to the user
*/
output_header(go, ofp, alifile, postmsafile); /* cheery output header */
/* read the alignment */
- if ((status = eslx_msafile_Read(afp, &msa)) != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if ((status = esl_msafile_Read(afp, &msa)) != eslOK) esl_msafile_ReadFailure(afp, status);
if (esl_opt_IsUsed(go, "--alirange") || esl_opt_IsUsed(go, "--modelrange") ) {
/* add/modify mmline for the mask */
if (msa->mm == NULL) {
- // if it doesn't already exist, allocate it and set is to all '.'
ESL_ALLOC(msa->mm, msa->alen);
- for (i=0; i<msa->alen; i++)
- msa->mm[i] = '.';
+ keep_mm = FALSE;
}
+
+ if (!keep_mm)
+ for (i=0; i<msa->alen; i++) msa->mm[i] = '.';
+
}
// convert model coordinates to alignment coordinates, if necessary
if (esl_opt_IsUsed(go, "--modelrange") || esl_opt_IsUsed(go, "--model2ali") || esl_opt_IsUsed(go, "--ali2model") ) {
- int apos, idx;
- float r; /* weighted residue count */
- float totwgt; /* weighted residue+gap count */
- float symfrac;
+
+ float symfrac = esl_opt_GetReal(go, "--symfrac");
+ int do_hand = esl_opt_IsOn(go, "--hand");
//same as p7_builder relative_weights
if (esl_opt_IsOn(go, "--wnone") ) { esl_vec_DSet(msa->wgt, msa->nseq, 1.); }
@@ -330,35 +386,24 @@ main(int argc, char **argv)
else if (esl_opt_IsOn(go, "--wgsc") ) status = esl_msaweight_GSC(msa);
else if (esl_opt_IsOn(go, "--wblosum")) status = esl_msaweight_BLOSUM(msa, esl_opt_GetReal(go, "--wid"));
-
-
- symfrac = esl_opt_GetReal(go, "--symfrac");
-
if ((status = esl_msa_MarkFragments(msa, esl_opt_GetReal(go, "--fragthresh"))) != eslOK) goto ERROR;
- // Determine weighted sym freq in each column, build a map of model mask coordinates to alignment coords
+ //build a map of model mask coordinates to alignment coords
ESL_ALLOC(map, sizeof(int) * (msa->alen+1));
- i = 0;
- for (apos = 1; apos <= msa->alen; apos++)
- {
- r = totwgt = 0.;
- for (idx = 0; idx < msa->nseq; idx++)
- {
- if (esl_abc_XIsResidue(msa->abc, msa->ax[idx][apos])) { r += msa->wgt[idx]; totwgt += msa->wgt[idx]; }
- else if (esl_abc_XIsGap(msa->abc, msa->ax[idx][apos])) { totwgt += msa->wgt[idx]; }
- else if (esl_abc_XIsMissing(msa->abc, msa->ax[idx][apos])) continue;
- }
- map[i] = apos;
-
- if (r > 0. && r / totwgt >= symfrac)
- i++;
- }
+ p7_Alimask_MakeModel2AliMap(msa, do_hand, symfrac, map ); // Returns <L>, which we don't need.
if ( esl_opt_IsUsed(go, "--model2ali") ) {
//print mapping
printf ("model coordinates alignment coordinates\n");
for (i=0; i<mask_range_cnt; i++)
printf ("%8d..%-8d -> %8d..%-8d\n", mask_starts[i], mask_ends[i], map[mask_starts[i]-1], map[mask_ends[i]-1]);
+ /* If I wanted to, I could print all the map values independently:
+ printf("\n\n-----------\n");
+ printf("Map\n");
+ printf("---\n");
+ for (i=0; i<L; i++)
+ printf("%d -> %d\n", i+1, map[i]);
+ */
} else if ( esl_opt_IsUsed(go, "--ali2model") ) {
//print mapping (requires scanning the inverted map
int alistart = 0;
@@ -389,15 +434,15 @@ main(int argc, char **argv)
for (j=mask_starts[i]; j<=mask_ends[i]; j++)
msa->mm[j-1] = 'm';
- if ((status = eslx_msafile_Write(postmsafp, msa, eslMSAFILE_STOCKHOLM)) != eslOK) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ if ((status = esl_msafile_Write(postmsafp, msa, outfmt)) != eslOK) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
}
esl_stopwatch_Stop(w);
if (esl_opt_IsOn(go, "-o")) fclose(ofp);
if (postmsafp) fclose(postmsafp);
- if (afp) eslx_msafile_Close(afp);
- if (abc) esl_alphabet_Destroy(abc);
+ if (afp) esl_msafile_Close(afp);
+ if (abc) esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
esl_stopwatch_Destroy(w);
@@ -412,8 +457,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/build.c b/hmmer/src/build.c
index 3bfb297..0b300bf 100644
--- a/hmmer/src/build.c
+++ b/hmmer/src/build.c
@@ -364,7 +364,7 @@ annotate_model(P7_HMM *hmm, int *matassign, ESL_MSA *msa)
ESL_ALLOC(hmm->mm, sizeof(char) * (hmm->M+2));
hmm->mm[0] = ' ';
for (apos = k = 1; apos <= msa->alen; apos++)
- if (matassign[apos]) hmm->mm[k++] = msa->mm[apos-1];
+ if (matassign[apos]) hmm->mm[k++] = ( msa->mm[apos-1] == '.' ? '-' : msa->mm[apos-1]) ;
hmm->mm[k] = '\0';
hmm->flags |= p7H_MMASK;
}
@@ -420,7 +420,7 @@ utest_basic(void)
char msafile[16] = "p7tmpXXXXXX"; /* tmpfile name template */
FILE *ofp = NULL;
ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO);
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
P7_HMM *hmm = NULL;
float symfrac = 0.5;
@@ -435,13 +435,13 @@ utest_basic(void)
fprintf(ofp, "//\n");
fclose(ofp);
- if (eslx_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(failmsg);
- if (eslx_msafile_Read(afp, &msa) != eslOK) esl_fatal(failmsg);
- if (p7_Fastmodelmaker(msa, symfrac, NULL, &hmm, NULL) != eslOK) esl_fatal(failmsg);
+ if (esl_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp) != eslOK) esl_fatal(failmsg);
+ if (esl_msafile_Read(afp, &msa) != eslOK) esl_fatal(failmsg);
+ if (p7_Fastmodelmaker(msa, symfrac, NULL, &hmm, NULL) != eslOK) esl_fatal(failmsg);
p7_hmm_Destroy(hmm);
esl_msa_Destroy(msa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_alphabet_Destroy(abc);
remove(msafile);
return;
@@ -462,7 +462,7 @@ utest_fragments(void)
char msafile[16] = "p7tmpXXXXXX"; /* tmpfile name template */
FILE *ofp = NULL;
ESL_ALPHABET *abc = esl_alphabet_Create(eslAMINO);
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
ESL_MSA *dmsa = NULL;
ESL_MSA *postmsa = NULL;
@@ -499,10 +499,10 @@ utest_fragments(void)
fclose(ofp);
/* Read the original as text for comparison to postmsa. Make a digital copy for construction */
- if (eslx_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)!= eslOK) esl_fatal(failmsg);
- if (eslx_msafile_Read(afp, &msa) != eslOK) esl_fatal(failmsg);
- if ((dmsa = esl_msa_Clone(msa)) == NULL) esl_fatal(failmsg);
- if (esl_msa_Digitize(abc, dmsa, NULL) != eslOK) esl_fatal(failmsg);
+ if (esl_msafile_Open(NULL, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp)!= eslOK) esl_fatal(failmsg);
+ if (esl_msafile_Read(afp, &msa) != eslOK) esl_fatal(failmsg);
+ if ((dmsa = esl_msa_Clone(msa)) == NULL) esl_fatal(failmsg);
+ if (esl_msa_Digitize(abc, dmsa, NULL) != eslOK) esl_fatal(failmsg);
if (p7_Handmodelmaker(dmsa, NULL, &hmm, &trarr) != eslOK) esl_fatal(failmsg);
for (i = 0; i < dmsa->nseq; i++)
@@ -522,7 +522,7 @@ utest_fragments(void)
esl_msa_Destroy(msa);
esl_msa_Destroy(dmsa);
esl_msa_Destroy(postmsa);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_alphabet_Destroy(abc);
remove(msafile);
return;
@@ -590,7 +590,7 @@ main(int argc, char **argv)
int fmt = eslMSAFILE_UNKNOWN;
int alphatype = eslUNKNOWN;
ESL_ALPHABET *abc = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
P7_HMM *hmm = NULL;
P7_PRIOR *prior = NULL;
@@ -606,8 +606,8 @@ main(int argc, char **argv)
else if (esl_opt_GetBoolean(go, "--dna")) alphatype = eslDNA;
else if (esl_opt_GetBoolean(go, "--amino")) alphatype = eslAMINO;
- if ((status = eslx_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp)) != eslOK)
- eslx_msafile_OpenFailure(afp, status);
+ if ((status = esl_msafile_Open(&abc, msafile, NULL, fmt, NULL, &afp)) != eslOK)
+ esl_msafile_OpenFailure(afp, status);
bg = p7_bg_Create(abc);
@@ -619,9 +619,9 @@ main(int argc, char **argv)
}
if (prior == NULL) esl_fatal("Failed to initialize prior");
- while ((status = eslx_msafile_Read(afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
/* The modelmakers collect counts in an HMM structure */
status = p7_Handmodelmaker(msa, NULL, &hmm, &trarr);
@@ -653,7 +653,7 @@ main(int argc, char **argv)
status = p7_tracealign_MSA(msa, trarr, hmm->M, p7_DEFAULT, &postmsa);
if (status != eslOK) esl_fatal("failed to create new MSA from traces\n");
- eslx_msafile_Write(stdout, postmsa, eslMSAFILE_PFAM);
+ esl_msafile_Write(stdout, postmsa, eslMSAFILE_PFAM);
p7_profile_Destroy(gm);
p7_hmm_Destroy(hmm);
@@ -662,7 +662,7 @@ main(int argc, char **argv)
esl_msa_Destroy(msa);
}
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
p7_bg_Destroy(bg);
esl_alphabet_Destroy(abc);
esl_getopts_Destroy(go);
@@ -676,15 +676,12 @@ main(int argc, char **argv)
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/build.c $
- * SVN $Id: build.c 3496 2011-02-28 22:18:49Z eddys $
************************************************************/
diff --git a/hmmer/src/cachedb.c b/hmmer/src/cachedb.c
index 2c45b92..c394fe1 100644
--- a/hmmer/src/cachedb.c
+++ b/hmmer/src/cachedb.c
@@ -79,7 +79,7 @@ p7_seqcache_Open(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf)
/* This is a bit of a hack. The first line contains database information.
*
- * #<res_count> <seq_count> <db_count> <db_entries> ... <id>
+ * #<res_count> <seq_count> <db_count> <db_sequences_1> <db_sequences_before_removing_duplicates_1> <db_sequences_2> <db_sequences_before_removing_duplicates_2> ... <date_stamp>
*
* The rest of the file is a fasta format. The fasta header is just
* sequence number followed by a binary number indicating which
@@ -250,10 +250,10 @@ p7_seqcache_Open(char *seqfile, P7_SEQCACHE **ret_cache, char *errbuf)
}
for (i = 0; i < cache->db_cnt; ++i) {
- printf("final (%d):: %d %d\n", i, cache->db[i].count, db_inx[i]);
+ printf("sequence database (%d):: %d %d\n", i, cache->db[i].count, db_inx[i]);
}
- printf("\nTotal memory %" PRId64 "\n", total_mem);
+ printf("\nLoaded sequence db file %s; total memory %" PRId64 "\n", seqfile, total_mem);
esl_sqfile_Close(sqfp);
esl_sq_Destroy(sq);
@@ -659,13 +659,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/cachedb.c $
- * SVN $Id: cachedb.c 3754 2011-11-21 14:25:31Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/cachedb.h b/hmmer/src/cachedb.h
index 2507ea3..db65f83 100644
--- a/hmmer/src/cachedb.h
+++ b/hmmer/src/cachedb.h
@@ -42,8 +42,8 @@ extern void p7_seqcache_Close(P7_SEQCACHE *cache);
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/emit.c b/hmmer/src/emit.c
index d6a11b2..936c022 100644
--- a/hmmer/src/emit.c
+++ b/hmmer/src/emit.c
@@ -7,7 +7,7 @@
* 4. Copyright and license.
*
* SRE, Tue Jan 9 08:55:53 2007 [Janelia] [The Crystal Method, Vegas]
- * SVN $Id: emit.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -310,8 +310,12 @@ p7_emit_SimpleConsensus(const P7_HMM *hmm, ESL_SQ *sq)
for (k = 1; k <= hmm->M; k++)
{
- x = esl_vec_FArgMax(hmm->mat[k], hmm->abc->K);
- if ((status = esl_sq_XAddResidue(sq, x)) != eslOK) return status;
+ if (hmm->mm && hmm->mm[k] == 'm') { //masked position, spit out the degenerate code
+ if ((status = esl_sq_XAddResidue(sq, hmm->abc->Kp-3)) != eslOK) return status;
+ } else {
+ x = esl_vec_FArgMax(hmm->mat[k], hmm->abc->K);
+ if ((status = esl_sq_XAddResidue(sq, x)) != eslOK) return status;
+ }
}
if ((status = esl_sq_XAddResidue(sq, eslDSQ_SENTINEL)) != eslOK) return status;
return eslOK;
@@ -352,7 +356,11 @@ p7_emit_FancyConsensus(const P7_HMM *hmm, float min_lower, float min_upper, ESL_
if ((status = esl_sq_GrowTo(sq, hmm->M)) != eslOK) return status;
for (k = 1; k <= hmm->M; k++)
- {
+ {
+
+ if (hmm->mm && hmm->mm[k] == 'm') { //masked position, spit out the degenerate code
+ if ((status = esl_sq_CAddResidue(sq, tolower(esl_abc_CGetUnknown(hmm->abc))) ) != eslOK) return status;
+ } else {
p = esl_vec_FMax( hmm->mat[k], hmm->abc->K);
x = esl_vec_FArgMax(hmm->mat[k], hmm->abc->K);
@@ -362,6 +370,7 @@ p7_emit_FancyConsensus(const P7_HMM *hmm, float min_lower, float min_upper, ESL_
if ((status = esl_sq_CAddResidue(sq, c)) != eslOK) return status;
}
+ }
if ((status = esl_sq_CAddResidue(sq, '\0')) != eslOK) return status;
return eslOK;
}
@@ -597,8 +606,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/errors.c b/hmmer/src/errors.c
index caa457e..4cf7a14 100644
--- a/hmmer/src/errors.c
+++ b/hmmer/src/errors.c
@@ -9,7 +9,7 @@
* documentation.
*
* SRE, Fri Jan 12 08:46:02 2007
- * SVN $Id: errors.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
diff --git a/hmmer/src/evalues.c b/hmmer/src/evalues.c
index 32de5dc..a1d18b2 100644
--- a/hmmer/src/evalues.c
+++ b/hmmer/src/evalues.c
@@ -8,7 +8,7 @@
* 5. Copyright and license information
*
* SRE, Mon Aug 6 13:00:06 2007
- * SVN $Id: evalues.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -652,8 +652,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/eweight.c b/hmmer/src/eweight.c
index 4e29f73..7c5f163 100644
--- a/hmmer/src/eweight.c
+++ b/hmmer/src/eweight.c
@@ -5,7 +5,7 @@
* Ph.D. thesis, Washington University School of Medicine, 2006.
*
* SRE, Fri May 4 14:01:54 2007 [Janelia] [Tom Waits, Orphans]
- * SVN $Id: eweight.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -42,19 +42,19 @@ eweight_target_f(double Neff, void *params, double *ret_fx)
* Incept: SRE, Fri May 4 15:32:59 2007 [Janelia]
*
* Purpose: Use the "entropy weighting" algorithm to determine
- * what effective sequence number we should use, and
- * return it in <ret_Neff>.
- *
+ * what effective sequence number we should use, and
+ * return it in <ret_Neff>.
+ *
* Caller provides a count-based <hmm>, and the
* Dirichlet prior <pri> that's to be used to parameterize
- * models; neither of these will be modified.
+ * models; neither of these will be modified.
* Caller also provides the relative entropy
- * target in bits in <etarget>.
- *
+ * target in bits in <etarget>.
+ *
* <ret_Neff> will range from 0 to the true number of
* sequences counted into the model, <hmm->nseq>.
*
- * Returns: <eslOK> on success.
+ * Returns: <eslOK> on success.
*
* Throws: <eslEMEM> on allocation failure.
*/
@@ -74,7 +74,7 @@ p7_EntropyWeight(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double
p.pri = pri;
if ((p.h2 = p7_hmm_Clone(hmm)) == NULL) return eslEMEM;
p.etarget = etarget;
-
+
Neff = (double) hmm->nseq;
if ((status = eweight_target_f(Neff, &p, &fx)) != eslOK) goto ERROR;
if (fx > 0.)
@@ -85,7 +85,7 @@ p7_EntropyWeight(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double
esl_rootfinder_Destroy(R);
}
-
+
p7_hmm_Destroy(p.h2);
*ret_Neff = Neff;
return eslOK;
@@ -98,4 +98,86 @@ p7_EntropyWeight(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double
}
+/* Evaluate fx = rel entropy - etarget, which we want to be = 0,
+ * for effective sequence number <x>.
+ */
+static int
+eweight_target_exp_f(double exp, void *params, double *ret_fx)
+{
+ struct ew_param_s *p = (struct ew_param_s *) params;
+
+ p7_hmm_CopyParameters(p->hmm, p->h2);
+ p7_hmm_ScaleExponential(p->h2, exp);
+ p7_ParameterEstimation(p->h2, p->pri);
+ *ret_fx = p7_MeanMatchRelativeEntropy(p->h2, p->bg) - p->etarget;
+ return eslOK;
+}
+
+
+
+/* Function: p7_EntropyWeight_exp()
+ *
+ * Purpose: Use an alternative "entropy weighting" algorithm to
+ * determine the effective observed counts we should
+ * use, and return it in <ret_Neff>.
+ *
+ * Caller provides a count-based <hmm>, and the
+ * Dirichlet prior <pri> that's to be used to parameterize
+ * models; neither of these will be modified.
+ * Caller also provides the relative entropy
+ * target in bits in <etarget>.
+ *
+ * <ret_exp> will range from 0 to 1. This value will be used
+ * for each column to exponentially scale the observed counts.
+ * If a column has K (possibly weighted) observed letters, the
+ * scaled count will be K^ret_exp. This ensures that all scaled
+ * counts are at least 1.
+ *
+ * See p7_hmm_ScaleExponential() for more details.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ */
+int
+p7_EntropyWeight_exp(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double etarget, double *ret_exp)
+{
+
+ int status;
+ ESL_ROOTFINDER *R = NULL;
+ struct ew_param_s p;
+ double exp = 1.;
+ double fx;
+
+ /* Store parameters in the structure we'll pass to the rootfinder
+ */
+ p.hmm = hmm;
+ p.bg = bg;
+ p.pri = pri;
+ if ((p.h2 = p7_hmm_Clone(hmm)) == NULL) return eslEMEM;
+ p.etarget = etarget;
+
+ //Neff = (double) hmm->nseq;
+ if ((status = eweight_target_exp_f(1.0, &p, &fx)) != eslOK) goto ERROR;
+ if (fx > 0.)
+ {
+ if ((R = esl_rootfinder_Create(eweight_target_exp_f, &p)) == NULL) {status = eslEMEM; goto ERROR;}
+ esl_rootfinder_SetAbsoluteTolerance(R, 0.001); /* getting exp to ~3 sig digits is fine */
+ if ((status = esl_root_Bisection(R, 0., 1.0, &exp)) != eslOK) goto ERROR;
+
+ esl_rootfinder_Destroy(R);
+ }
+
+
+ p7_hmm_Destroy(p.h2);
+
+ *ret_exp = exp;
+ return eslOK;
+
+ ERROR:
+ if (p.h2 != NULL) p7_hmm_Destroy(p.h2);
+ if (R != NULL) esl_rootfinder_Destroy(R);
+
+ return status;
+}
diff --git a/hmmer/src/fm_alphabet.c b/hmmer/src/fm_alphabet.c
index 05a302b..f0830e5 100644
--- a/hmmer/src/fm_alphabet.c
+++ b/hmmer/src/fm_alphabet.c
@@ -1,7 +1,13 @@
-#include "hmmer.h"
+#include "p7_config.h"
+
+#include <ctype.h>
+
+#include "easel.h"
#include "esl_mem.h"
+#include "hmmer.h"
+
-/* Function: fm_createAlphabet()
+/* Function: fm_alphabetCreate()
*
* Synopsis: Produce an alphabet for FMindex.
*
@@ -12,15 +18,15 @@
* from a bit-packing perspective
*
* Args: meta - metadata object already initialized with the alphabet type.
- * meta's alphabet (and corresponding size) are set here
+ * This will hold the alphabet (and corresponding reverse alphabet)
+ * created here.
* alph_bits - pointer to an int that this function sets equal to the
* number of bits required to store the alphabet (log of alph size)
*
* Returns: <eslOK> on success.
*/
int
-fm_createAlphabet (FM_METADATA *meta, uint8_t *alph_bits) {
-
+fm_alphabetCreate (FM_METADATA *meta, uint8_t *alph_bits) {
int i = 0;
int status;
@@ -28,15 +34,11 @@ fm_createAlphabet (FM_METADATA *meta, uint8_t *alph_bits) {
if ( meta->alph_type == fm_DNA) {
meta->alph_size = 4;
if (alph_bits) *alph_bits = 2;
+/*
} else if ( meta->alph_type == fm_DNA_full) {
meta->alph_size = 15;
if (alph_bits) *alph_bits = 4;
- } else if ( meta->alph_type == fm_RNA) {
- meta->alph_size = 4;
- if (alph_bits) *alph_bits = 2;
- } else if ( meta->alph_type == fm_RNA_full) {
- meta->alph_size = 15;
- if (alph_bits) *alph_bits = 4;
+*/
} else if ( meta->alph_type == fm_AMINO) {
meta->alph_size = 26;
if (alph_bits) *alph_bits = 5;
@@ -44,27 +46,58 @@ fm_createAlphabet (FM_METADATA *meta, uint8_t *alph_bits) {
esl_fatal("Unknown alphabet type\n%s", "");
}
- ESL_ALLOC(meta->alph, meta->alph_size*sizeof(char));
+ ESL_ALLOC(meta->alph, (1+meta->alph_size)*sizeof(char));
ESL_ALLOC(meta->inv_alph, 256*sizeof(char));
- if ( meta->alph_type == fm_DNA)
- esl_memstrcpy("ACGT", meta->alph_size, meta->alph);
- else if ( meta->alph_type == fm_DNA_full)
- esl_memstrcpy("ACGTRYMKSWHBVDN", meta->alph_size, meta->alph);
- else if ( meta->alph_type == fm_RNA)
- esl_memstrcpy("ACGU", meta->alph_size, meta->alph);
- else if ( meta->alph_type == fm_RNA_full)
- esl_memstrcpy("ACGURYMKSWHBVDN", meta->alph_size, meta->alph);
- else if ( meta->alph_type == fm_AMINO)
- esl_memstrcpy("ACDEFGHIKLMNPQRSTVWYBJZOUX", meta->alph_size, meta->alph);
+ if ( meta->alph_type == fm_DNA /*|| meta->alph_type == fm_DNA_full*/)
+ ESL_ALLOC(meta->compl_alph, (1+meta->alph_size)*sizeof(int));
+
+
+
+ if ( meta->alph_type == fm_DNA) {
+ esl_memstrcpy("ACGT", 4, meta->alph);
+ for (i=0; i<4; i++)
+ meta->compl_alph[i] = 3-i;
+/* TODO: fm_DNA_full has currently been disabled because of problems with how the
+ * FM index handles very long runs of the same character (in this case, Ns).
+ * See wheelert/notebook/2013/12-11-FM-alphabet-speed notes on 12/12.
+ *
+ } else if ( meta->alph_type == fm_DNA_full) {
+ esl_memstrcpy("ACGTRYMKSWHBVDN", 15, meta->alph);
+ meta->compl_alph[0] = 3; // A->T
+ meta->compl_alph[1] = 2; // C->G
+ meta->compl_alph[2] = 1; // G->C
+ meta->compl_alph[3] = 0; // T->A
+ meta->compl_alph[4] = 5; // R->Y
+ meta->compl_alph[5] = 4; // Y->R
+ meta->compl_alph[6] = 7; // M->K
+ meta->compl_alph[7] = 6; // K->M
+ meta->compl_alph[8] = 8; // S S
+ meta->compl_alph[9] = 9; // W W
+ meta->compl_alph[10]= 13; // H->D
+ meta->compl_alph[11]= 12; // B->V
+ meta->compl_alph[12]= 11; // V->B
+ meta->compl_alph[13]= 10; // D->H
+ meta->compl_alph[14]= 14; // N N
+*/
+ } else if ( meta->alph_type == fm_AMINO) {
+ esl_memstrcpy("ACDEFGHIKLMNPQRSTVWYBJZOUX", meta->alph_size, meta->alph);
+ }
for (i=0; i<256; i++)
meta->inv_alph[i] = -1;
- for (i=0; i<meta->alph_size; i++)
+ for (i=0; i<meta->alph_size; i++) {
meta->inv_alph[tolower(meta->alph[i])] = meta->inv_alph[toupper(meta->alph[i])] = i;
+ //special case for RNA, equate U to T:
+ if ( (meta->alph_type == fm_DNA /*|| meta->alph_type == fm_DNA_full*/) && toupper(meta->alph[i]) == 'T')
+ meta->inv_alph['u'] = meta->inv_alph['U'] = i;
+ }
+
+
+
return eslOK;
ERROR:
@@ -72,6 +105,25 @@ ERROR:
return eslFAIL;
}
+/* Function: fm_alphabetDestroy()
+ *
+ * Synopsis: Free the alphabet for an FMindex metadata object
+ *
+ * Purpose: Free both the alphabet and corresponding inverse alphabet
+ * (inv_alph) held within <meta>.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+fm_alphabetDestroy (FM_METADATA *meta) {
+ if (meta != NULL){
+ if (meta->alph != NULL) free (meta->alph);
+ if (meta->inv_alph != NULL) free (meta->inv_alph);
+ if (meta->compl_alph != NULL) free (meta->compl_alph);
+ }
+ return eslOK;
+}
+
/* Function: fm_reverseString()
*
@@ -108,14 +160,12 @@ fm_reverseString (char* str, int N)
int
fm_getComplement (char c, uint8_t alph_type)
{
- if ( alph_type == fm_DNA) {
- return 3-c;
- } else if ( alph_type == fm_RNA) {
+ if ( alph_type == fm_DNA ) {
return 3-c;
+/*
} else if ( alph_type == fm_DNA_full) {
esl_fatal("complement for DNA_full not yet implemented\n");
- } else if ( alph_type == fm_RNA_full) {
- esl_fatal("complement for RNA_full not yet implemented\n");
+*/
} else if ( alph_type == fm_AMINO) {
esl_fatal("complement for amino acids is undefined\n");
} else {
diff --git a/hmmer/src/fm_general.c b/hmmer/src/fm_general.c
index 23cc8fe..9fc3fd7 100644
--- a/hmmer/src/fm_general.c
+++ b/hmmer/src/fm_general.c
@@ -12,10 +12,11 @@
* # 7. Copyright and license.
*
*/
-#include "hmmer.h"
-
-
+#include "p7_config.h"
+#include "easel.h"
+#include "esl_getopts.h"
+#include "hmmer.h"
/* Function: fm_initSeeds()
*
@@ -62,21 +63,78 @@ ERROR:
+/* Function: fm_initAmbiguityList()
+ *
+ * Synopsis: initialize the object used to store a list of ambiguity ranges
+ *
+ * Returns: eslEMEM in event of allocation failure, otherwise eslOK
+ */
+int
+fm_initAmbiguityList (FM_AMBIGLIST *list) {
+
+ int status;
+
+ list->size = 1000;
+
+ ESL_ALLOC(list->ranges, list->size * sizeof(FM_INTERVAL));
+ if (list->ranges == NULL )
+ esl_fatal("unable to allocate memory to store FM ambiguity data\n");
+
+ list->count = 0;
+
+ return eslOK;
+
+ERROR:
+ return eslEMEM;
+
+}
+
+/* Function: fm_addAmbiguityRange()
+ *
+ * Synopsis: return a pointer to the next seed element on the list,
+ * increasing the size of the list, if necessary.
+ *
+ * Returns: NULL in event of allocation failure, otherwise pointer to
+ * the next seed diagonal
+ */
+int
+fm_addAmbiguityRange (FM_AMBIGLIST *list, uint32_t start, uint32_t stop) {
+ int status;
+
+ if (list->count == list->size) {
+ list->size *= 4;
+ ESL_REALLOC(list->ranges, list->size * sizeof(FM_INTERVAL));
+ }
+
+ list->ranges[list->count].lower = start;
+ list->ranges[list->count].upper = stop;
+
+ list->count++;
+
+ return eslOK;
+
+ERROR:
+ return eslFAIL;
+}
+
+
+
+
+
/*********************************************************************
*# 2. Interval / range computation
*********************************************************************/
/* Function: fm_updateIntervalForward()
*
- * Synopsis: return a pointer to the next window element on the list,
- * increasing the size of the list, if necessary.
+ * Synopsis: Implement Algorithm 4 (i371) of Simpson (Bioinformatics 2010)
*
- * Purpose: Implement Algorithm 4 (i371) of Simpson (Bioinformatics 2010)
+ * Purpose:
*
* Returns: eslOK
*/
int
-fm_updateIntervalForward( const FM_DATA *fm, FM_CFG *cfg, char c, FM_INTERVAL *interval_bk, FM_INTERVAL *interval_f) {
+fm_updateIntervalForward( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval_bk, FM_INTERVAL *interval_f) {
uint32_t occLT_l, occLT_u, occ_l, occ_u;
fm_getOccCountLT (fm, cfg, interval_bk->lower - 1, c, &occ_l, &occLT_l);
@@ -113,7 +171,8 @@ fm_getSARangeForward( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alp
interval->lower = interval_bk.lower = abs(fm->C[c]);
interval->upper = interval_bk.upper = abs(fm->C[c+1])-1;
- while (interval_bk.lower>0 && interval_bk.lower <= interval_bk.upper) {
+
+ while (interval_bk.lower>=0 && interval_bk.lower <= interval_bk.upper) {
c = query[++i];
if (c == '\0') // end of query - the current range defines the hits
break;
@@ -128,7 +187,7 @@ fm_getSARangeForward( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alp
int
-fm_updateIntervalReverse( const FM_DATA *fm, FM_CFG *cfg, char c, FM_INTERVAL *interval) {
+fm_updateIntervalReverse( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval) {
int count1, count2;
//TODO: counting in these calls will often overlap
// - might get acceleration by merging to a single redundancy-avoiding call
@@ -161,9 +220,7 @@ fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alp
interval->lower = abs(fm->C[(int)c]);
interval->upper = abs(fm->C[(int)c+1])-1;
-// fprintf (stderr, "%d : %12d..%12d\n", c, interval->lower, interval->upper );
-
- while (interval->lower>0 && interval->lower <= interval->upper) {
+ while (interval->lower>=0 && interval->lower <= interval->upper) {
c = query[++i];
if (c == '\0') // end of query - the current range defines the hits
break;
@@ -172,8 +229,6 @@ fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alp
fm_updateIntervalReverse(fm, cfg, c, interval);
-// fprintf (stderr, "%d : %12d..%12d\n", c, interval->lower, interval->upper );
-
cfg->occCallCnt+=2;
}
@@ -189,126 +244,177 @@ fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alp
/* Function: getChar()
* Synopsis: Find the character c residing at a given position in the BWT.
- * Purpose: The returned char is used by getFMHits(), to seed a call to
- * bwt_getOccCount().
+ * Purpose: This method must account for possible string compression, either
+ * 4 characters in one byte for a 4-letter DNA/RNA alphabet, 2 chars
+ * per byte for a 15-letter alphabet of DNA/RNA with ambiguity codes,
+ * or one char per byte for amino acids.
*/
-//#ifndef FMDEBUG
-//inline
-//#endif
uint8_t
fm_getChar(uint8_t alph_type, int j, const uint8_t *B )
{
uint8_t c = -1;
- if (alph_type == fm_DNA) {
+ if (alph_type == fm_DNA /* || alph_type == fm_RNA */) {
/*
- * B[j>>2] is the byte of B in which j is found (j/4)
+ * B[j/4] is the byte of B in which j is found
*
* Let j' be the final two bits of j (j&0x2)
* The char bits are the two starting at position 2*j'.
- * Without branching, grab them by shifting B[j>>2] right 6-2*j' bits,
+ * Without branching, grab them by shifting B[j/4] right 6-2*j' bits,
* then masking to keep the final two bits
*/
- c = (B[j>>2] >> ( 0x6 - ((j&0x3)<<1) ) & 0x3);
- } else if (alph_type == fm_DNA_full) {
- c = (B[j>>1] >> (((j&0x1)^0x1)<<2) ) & 0xf; //unpack the char: shift 4 bits right if it's odd, then mask off left bits in any case
- } else {
- esl_fatal("Invalid alphabet type\n");
+ c = (B[j/4] >> ( 0x6 - ((j&0x3)*2) ) & 0x3);
+/*
+ } else if (alph_type == fm_DNA_full ) {
+ c = (B[j/2] >> (((j&0x1)^0x1)*4) ) & 0xf; //unpack the char: shift 4 bits right if it's odd, then mask off left bits in any case
+*/
+ } else { // amino
+ c = B[j];
}
return c;
}
-/* Function: getChar()
- * Synopsis: Find the character c residing at a given position in the BWT.
- * Purpose: The returned char is used by getFMHits(), to seed a call to
- * bwt_getOccCount().
+
+/* Function: fm_findOverlappingAmbiguityBlock()
+ * Synopsis: Search in the meta->ambig_list array for the first
+ * ambiguity range starting after <start>. If that index
+ * comes before <end>, return it. Otherwise, return -1.
+ */
+int32_t
+fm_findOverlappingAmbiguityBlock (const FM_DATA *fm, const FM_METADATA *meta, uint32_t start, uint32_t end)
+{
+
+ int lo = fm->ambig_offset;
+ int hi = lo + fm->ambig_cnt - 1;
+ int mid;
+ FM_INTERVAL *ranges = meta->ambig_list->ranges;
+
+ // (1) Search in the meta->ambig_list array for the last ambiguity range
+ // ending before <start>, using binary search, first handling edge cases:
+ if (hi <= lo) return hi; // either 0 or -1
+ if (ranges[lo].lower > end) return -1;
+ if (ranges[hi].upper < start) return -1;
+
+ while (lo < hi) {
+ mid = (lo + hi) / 2; // round down
+ if (ranges[mid].lower < start) lo = mid + 1; // too far left
+ else hi = mid; // might be too far right
+ }
+
+ //the range test above may have pushed the target one too far to the right
+ if (lo>0 && ranges[lo-1].upper >= start && ranges[lo-1].lower <= end) return lo-1;
+ else if ( ranges[lo].upper >= start && ranges[lo].lower <= end) return lo;
+ else return -1;
+
+}
+
+
+/* Function: fm_convertRange2DSQ()
+ * Synopsis: Convert the BWT range into a DSQ.
+ *
+ * Purpose: The input value of <first> is the 0-based position at which
+ * the requested range starts on either FM->T or revcomp(FM->T),
+ * depending on <complementarity>. Since only FM->T is stored,
+ * the necessary work is done to correct positions in the case
+ * that the positions are relative to the revcomp.
*/
-//#ifndef FMDEBUG
-//inline
-//#endif
int
-fm_convertRange2DSQ(FM_METADATA *meta, int id, int first, int length, const uint8_t *B, ESL_SQ *sq )
+fm_convertRange2DSQ(const FM_DATA *fm, const FM_METADATA *meta, uint64_t first, int length, int complementarity, ESL_SQ *sq, int fix_ambiguities)
{
- int i;
- uint8_t c;
+ uint64_t i, j;
+
+ if (complementarity == p7_COMPLEMENT)
+ first = fm->N-(first+length)-1;
+ //All the "+1" dsq offsets below are because the dsq characters are 1-based.
esl_sq_GrowTo(sq, length);
sq->n = length;
- if (meta->alph_type == fm_DNA || meta->alph_type == fm_RNA) {
+ if (meta->alph_type == fm_DNA ) {
/*
* B[j>>2] is the byte of B in which j is found (j/4)
*
* Let j' be the final two bits of j (j&0x2)
* The char bits are the two starting at position 2*j'.
- * Without branching, grab them by shifting B[j>>2] right 6-2*j' bits,
+ * Without branching, grab them by shifting B[j/4] right 6-2*j' bits,
* then masking to keep the final two bits
*/
- for (i = first; i<= first+length-1; i++)
- sq->dsq[i-first+1] = (B[i>>2] >> ( 0x6 - ((i&0x3)<<1) ) & 0x3);
-
+ for (i = first; i <= first+length-1; i++)
+ sq->dsq[i-first+1] = (fm->T[i/4] >> ( 0x6 - ((i&0x3)*2) ) & 0x3);
sq->dsq[length+1] = eslDSQ_SENTINEL;
- } else if (meta->alph_type == fm_DNA_full || meta->alph_type == fm_RNA_full ) {
+ if (fix_ambiguities) {
+ /* Account for the fact that in the DNA alphabet without ambiguity codes,
+ * makehmmerdb turns ambiguity codes into one of the nucleotides. Need
+ * to replace with an N.
+ */
+ int32_t pos = fm_findOverlappingAmbiguityBlock (fm, meta, first, first+length-1 );
+ if (pos != -1) {
+ while (pos <= fm->ambig_offset + fm->ambig_cnt -1 && meta->ambig_list->ranges[pos].lower <= first+length-1) {
+ int start = ESL_MAX(first, meta->ambig_list->ranges[pos].lower);
+ int end = ESL_MIN(first+length-1, meta->ambig_list->ranges[pos].upper);
+ for (j= start; j<=end; j++)
+ sq->dsq[j-first+1] = sq->abc->Kp-3; //'N'
+ pos++;
+ }
+ }
+ }
+
+/*
+ } else if (meta->alph_type == fm_DNA_full) {
for (i = first; i<= first+length-1; i++) {
- c = (B[i>>1] >> (((i&0x1)^0x1)<<2) ) & 0xf; //unpack the char: shift 4 bits right if it's odd, then mask off left bits in any case
- sq->dsq[i-first+1] = c + (c < 4 ? 0 : 1);
+ c = (fm->T[i/2] >> (((i&0x1)^0x1)*4) ) & 0xf; //unpack the char: shift 4 bits right if it's odd, then mask off left bits in any case
+ sq->dsq[i-first+1] = c + (c < 4 ? 0 : 1); //increment by one for ambiguity codes
}
sq->dsq[length+1] = eslDSQ_SENTINEL;
- } else {
- esl_fatal("Invalid alphabet type\n");
+*/
+ } else { // amino
+ for (i = first; i<= first+length-1; i++)
+ sq->dsq[i-first+1] = fm->T[i] + (fm->T[i] < 20 ? 0 : 1); //increment by one for ambiguity codes
+
+ sq->dsq[length+1] = eslDSQ_SENTINEL;
}
+ if (complementarity == p7_COMPLEMENT)
+ esl_sq_ReverseComplement(sq);
+
return eslOK;
}
-/* Function: computeSequenceOffset()
+/* Function: fm_computeSequenceOffset()
* Synopsis: Search in the meta->seq_data array for the sequence id corresponding to the
* requested position. The matching entry is the one with the largest index i
* such that seq_data[i].offset < pos
- *
- *
- * Input: file pointer to binary file
- * Output: return filled meta struct
*/
-//inline
-uint32_t
-fm_computeSequenceOffset (const FM_DATA *fms, FM_METADATA *meta, int block, int pos)
+uint64_t
+fm_computeSequenceOffset (const FM_DATA *fms, const FM_METADATA *meta, int block, uint64_t pos)
{
- uint32_t lo = fms[block].seq_offset;
- uint32_t hi = lo + fms[block].seq_cnt - 1;
- uint32_t mid;
-
- /* //linear scan
- for (mid=lo+1; i<=hi; i++) {
- if (meta->seq_data[i].offset > pos) // the position of interest belongs to the previous sequence
- break;
- }
- return i-1;
- */
+ uint64_t lo = fms[block].seq_offset;
+ uint64_t hi = lo + fms[block].seq_cnt - 1;
+ uint64_t mid;
//binary search, first handling edge cases
- if (lo==hi) return lo;
- if (meta->seq_data[hi].offset <= pos) return hi;
+ if (lo==hi) return lo;
+ if (meta->seq_data[hi].fm_start <= pos) return hi;
while (1) {
mid = (lo + hi + 1) / 2; /* round up */
- if (meta->seq_data[mid].offset <= pos) lo = mid; /* too far left */
- else if (meta->seq_data[mid-1].offset > pos) hi = mid; /* too far right */
+ if (meta->seq_data[mid].fm_start <= pos) lo = mid; /* too far left */
+ else if (meta->seq_data[mid-1].fm_start > pos) hi = mid; /* too far right */
else return mid-1; /* found it */
}
-
}
-/* Function: FM_getOriginalPosition()
- * Synopsis: find
+/* Function: fm_getOriginalPosition()
+ * Synopsis: Find the id of the sequence in the original input corresponding
+ * to a given hit, and the position of that hit in the original
* Purpose: Given:
* fms - an array of FM-indexes
* meta - the fm metadata
@@ -319,29 +425,30 @@ fm_computeSequenceOffset (const FM_DATA *fms, FM_METADATA *meta, int block, int
*
* Returns
* *segment_id - index of the sequence segment captured in the FM-index
- * *seg_pos - position in the original sequence, as compressed in the FM binary data structure
+ * *seg_pos - position in the original sequence, as compressed in the FM binary data structure (zero based)
+ * int - eslERANGE if the range in question crosses the boundary between two target sequences. Otherwise eslOK.
*/
int
-fm_getOriginalPosition (const FM_DATA *fms, FM_METADATA *meta, int fm_id, int length, int direction, uint32_t fm_pos,
- uint32_t *segment_id, uint32_t *seg_pos
+fm_getOriginalPosition (const FM_DATA *fms, const FM_METADATA *meta, int fm_id, int length, int complementarity,
+ uint64_t fm_pos, uint32_t *segment_id, uint64_t *seg_pos
) {
+
+ // if complementarity == p7_NOCOMPLEMENT, the end positions are in context of FM->T
+ // otherwise, they're in context of revcomp(FM->T).
+ if (complementarity == p7_COMPLEMENT) // need location in forward context:
+ fm_pos = fms->N - fm_pos - 1;
+
*segment_id = fm_computeSequenceOffset( fms, meta, fm_id, fm_pos);
- *seg_pos = ( fm_pos - meta->seq_data[ *segment_id ].offset) + meta->seq_data[ *segment_id ].start - 1;
+ *seg_pos = ( fm_pos - meta->seq_data[ *segment_id ].fm_start) + 1;
- //verify that the hit doesn't extend beyond the bounds of the target sequence
- if (direction == fm_forward) {
- if (*seg_pos + length > meta->seq_data[ *segment_id ].start + meta->seq_data[ *segment_id ].length ) {
- *segment_id = *seg_pos = -1; // goes into the next sequence, so it should be ignored
- return eslOK;
- }
- } else { //backward
- if ((int)*seg_pos - length + 1 < 0 ) {
- *segment_id = *seg_pos = -1; // goes into the previous sequence, so it should be ignored
- return eslOK;
- }
- }
+ if (complementarity == p7_COMPLEMENT) // now reverse orientation
+ *seg_pos = meta->seq_data[ *segment_id ].length - *seg_pos + 1;
+ //verify that the hit doesn't extend beyond the bounds of the target sequence
+ if (*seg_pos + length - 1 > meta->seq_data[ *segment_id ].length )
+ return eslERANGE;
+
return eslOK;
}
@@ -352,59 +459,47 @@ fm_getOriginalPosition (const FM_DATA *fms, FM_METADATA *meta, int fm_id, int le
int
fm_initConfigGeneric( FM_CFG *cfg, ESL_GETOPTS *go ) {
- cfg->maskSA = cfg->meta->freq_SA - 1;
- cfg->shiftSA = cfg->meta->SA_shift;
-
- cfg->msv_length = (go ? esl_opt_GetInteger(go, "--fm_msv_length") : -1);
- cfg->max_depth = (go ? esl_opt_GetInteger(go, "--fm_max_depth") : -1);
- cfg->neg_len_limit = (go ? esl_opt_GetInteger(go, "--fm_max_neg_len") : -1);
- cfg->consec_pos_req = (go ? esl_opt_GetInteger(go, "--fm_req_pos") : -1);
- cfg->score_ratio_req = (go ? esl_opt_GetReal(go, "--fm_sc_ratio") : -1.0);
- cfg->max_scthreshFM = (go ? esl_opt_GetReal(go, "--fm_max_scthresh") : -1.0);
-
+ cfg->ssv_length = (go ? esl_opt_GetInteger(go, "--seed_ssv_length") : -1);
+ cfg->max_depth = (go ? esl_opt_GetInteger(go, "--seed_max_depth") : -1);
+ cfg->drop_max_len = (go ? esl_opt_GetInteger(go, "--seed_drop_max_len") : -1);
+ cfg->consec_pos_req = (go ? esl_opt_GetInteger(go, "--seed_req_pos") : -1);
+ cfg->consensus_match_req = (go ? esl_opt_GetInteger(go, "--seed_consens_match") : 10);
+ cfg->drop_lim = eslCONST_LOG2 * (go ? esl_opt_GetReal(go, "--seed_drop_lim") : -1.0); // convert from bits to nats
+ cfg->score_density_req = eslCONST_LOG2 * (go ? esl_opt_GetReal(go, "--seed_sc_density") : -1.0);// convert from bits to nats
+ cfg->scthreshFM = eslCONST_LOG2 * (go ? esl_opt_GetReal(go, "--seed_sc_thresh") : -1.0); // convert from bits to nats
-/*
-
- //bounding cutoffs
- cfg->max_scthreshFM = 10.5;
-
- cfg->max_depth = 18;
- cfg->neg_len_limit = 4;
- cfg->consec_pos_req = 4;
- cfg->score_ratio_req = 0.40;
- cfg->msv_length = 50;
-
-*/
return eslOK;
}
-/* Function: freeFM()
+/* Function: fm_FM_free()
* Synopsis: release the memory required to store an individual FM-index
*/
void
-fm_freeFM ( FM_DATA *fm, int isMainFM)
+fm_FM_destroy ( FM_DATA *fm, int isMainFM)
{
- if (fm->BWT_mem) free (fm->BWT_mem);
- if (fm->C) free (fm->C);
- if (fm->occCnts_b) free (fm->occCnts_b);
- if (fm->occCnts_sb) free (fm->occCnts_sb);
+ free (fm->BWT_mem);
+ free (fm->C);
+ free (fm->occCnts_b);
+ free (fm->occCnts_sb);
- if (isMainFM && fm->T) free (fm->T);
- if (isMainFM && fm->SA) free (fm->SA);
+ if (isMainFM) {
+ free (fm->T);
+ free (fm->SA);
+ }
}
-/* Function: readFM()
+/* Function: fm_FM_read()
* Synopsis: Read the FM index off disk
* Purpose: Read the FM-index as written by fmbuild.
* First read the metadata header, then allocate space for the full index,
* then read it in.
*/
int
-fm_readFM( FM_DATA *fm, FM_METADATA *meta, int getAll )
+fm_FM_read( FM_DATA *fm, FM_METADATA *meta, int getAll )
{
//shortcut variables
- int *C = NULL;
+ int64_t *C = NULL;
int status;
int i;
@@ -412,45 +507,48 @@ fm_readFM( FM_DATA *fm, FM_METADATA *meta, int getAll )
uint16_t *occCnts_b = NULL; //convenience variables, used to simplify macro calls
uint32_t *occCnts_sb = NULL;
- int compressed_bytes;
+ int32_t compressed_bytes;
int num_freq_cnts_b;
int num_freq_cnts_sb;
int num_SA_samples;
- int prevC;
+ int64_t prevC;
int cnt;
int chars_per_byte = 8/meta->charBits;
- if(fread(&(fm->N), sizeof(fm->N), 1, meta->fp) != 1)
+ if(fread(&(fm->N), sizeof(uint64_t), 1, meta->fp) != 1)
esl_fatal( "%s: Error reading block_length in FM index.\n", __FILE__);
- if(fread(&(fm->term_loc), sizeof(fm->term_loc), 1, meta->fp) != 1)
+ if(fread(&(fm->term_loc), sizeof(uint32_t), 1, meta->fp) != 1)
esl_fatal( "%s: Error reading terminal location in FM index.\n", __FILE__);
- if(fread(&(fm->seq_offset), sizeof(fm->seq_offset), 1, meta->fp) != 1)
+ if(fread(&(fm->seq_offset), sizeof(uint32_t), 1, meta->fp) != 1)
esl_fatal( "%s: Error reading seq_offset in FM index.\n", __FILE__);
- if(fread(&(fm->overlap), sizeof(fm->overlap), 1, meta->fp) != 1)
+ if(fread(&(fm->ambig_offset), sizeof(uint32_t), 1, meta->fp) != 1)
+ esl_fatal( "%s: Error reading ambig_offset in FM index.\n", __FILE__);
+ if(fread(&(fm->overlap), sizeof(uint32_t), 1, meta->fp) != 1)
esl_fatal( "%s: Error reading overlap in FM index.\n", __FILE__);
- if(fread(&(fm->seq_cnt), sizeof(fm->seq_cnt), 1, meta->fp) != 1)
+ if(fread(&(fm->seq_cnt), sizeof(uint32_t), 1, meta->fp) != 1)
esl_fatal( "%s: Error reading seq_cnt in FM index.\n", __FILE__);
-
+ if(fread(&(fm->ambig_cnt), sizeof(uint32_t), 1, meta->fp) != 1)
+ esl_fatal( "%s: Error reading ambig_cnt in FM index.\n", __FILE__);
compressed_bytes = ((chars_per_byte-1+fm->N)/chars_per_byte);
- num_freq_cnts_b = 1+ceil((float)fm->N/meta->freq_cnt_b);
- num_freq_cnts_sb = 1+ceil((float)fm->N/meta->freq_cnt_sb);
- num_SA_samples = 1+floor((float)fm->N/meta->freq_SA);
+ num_freq_cnts_b = 1+ceil((double)fm->N/meta->freq_cnt_b);
+ num_freq_cnts_sb = 1+ceil((double)fm->N/meta->freq_cnt_sb);
+ num_SA_samples = floor((double)fm->N/meta->freq_SA);
// allocate space, then read the data
- if (getAll) ESL_ALLOC (fm->T, compressed_bytes );
- ESL_ALLOC (fm->BWT_mem, compressed_bytes + 31 ); // +31 for manual 16-byte alignment ( typically only need +15, but this allows offset in memory, plus offset in case of <16 bytes of characters at the end)
+ if (getAll) ESL_ALLOC (fm->T, sizeof(uint8_t) * compressed_bytes );
+ ESL_ALLOC (fm->BWT_mem, sizeof(uint8_t) * (compressed_bytes + 31) ); // +31 for manual 16-byte alignment ( typically only need +15, but this allows offset in memory, plus offset in case of <16 bytes of characters at the end)
fm->BWT = (uint8_t *) (((unsigned long int)fm->BWT_mem + 15) & (~0xf)); // align vector memory on 16-byte boundaries
if (getAll) ESL_ALLOC (fm->SA, num_SA_samples * sizeof(uint32_t));
- ESL_ALLOC (fm->C, 1+meta->alph_size * sizeof(uint32_t));
+ ESL_ALLOC (fm->C, (1+meta->alph_size) * sizeof(int64_t));
ESL_ALLOC (fm->occCnts_b, num_freq_cnts_b * (meta->alph_size ) * sizeof(uint16_t)); // every freq_cnt positions, store an array of ints
ESL_ALLOC (fm->occCnts_sb, num_freq_cnts_sb * (meta->alph_size ) * sizeof(uint32_t)); // every freq_cnt positions, store an array of ints
if(getAll && fread(fm->T, sizeof(uint8_t), compressed_bytes, meta->fp) != compressed_bytes)
esl_fatal( "%s: Error reading T in FM index.\n", __FILE__);
- if(fread(fm->BWT, sizeof(uint8_t), compressed_bytes, meta->fp) != compressed_bytes)
+ if( fread(fm->BWT, sizeof(uint8_t), compressed_bytes, meta->fp) != compressed_bytes)
esl_fatal( "%s: Error reading BWT in FM index.\n", __FILE__);
if(getAll && fread(fm->SA, sizeof(uint32_t), (size_t)num_SA_samples, meta->fp) != (size_t)num_SA_samples)
esl_fatal( "%s: Error reading SA in FM index.\n", __FILE__);
@@ -490,7 +588,7 @@ fm_readFM( FM_DATA *fm, FM_METADATA *meta, int getAll )
return eslOK;
ERROR:
- fm_freeFM(fm, getAll);
+ fm_FM_destroy(fm, getAll);
esl_fatal("Error allocating memory in %s\n", "readFM");
return eslFAIL;
}
@@ -508,6 +606,9 @@ fm_readFMmeta( FM_METADATA *meta)
int status;
int i;
+
+ fm_initAmbiguityList(meta->ambig_list);
+
if( fread(&(meta->fwd_only), sizeof(meta->fwd_only), 1, meta->fp) != 1 ||
fread(&(meta->alph_type), sizeof(meta->alph_type), 1, meta->fp) != 1 ||
fread(&(meta->alph_size), sizeof(meta->alph_size), 1, meta->fp) != 1 ||
@@ -515,11 +616,9 @@ fm_readFMmeta( FM_METADATA *meta)
fread(&(meta->freq_SA), sizeof(meta->freq_SA), 1, meta->fp) != 1 ||
fread(&(meta->freq_cnt_sb), sizeof(meta->freq_cnt_sb), 1, meta->fp) != 1 ||
fread(&(meta->freq_cnt_b), sizeof(meta->freq_cnt_b), 1, meta->fp) != 1 ||
- fread(&(meta->SA_shift), sizeof(meta->SA_shift), 1, meta->fp) != 1 ||
- fread(&(meta->cnt_shift_sb), sizeof(meta->cnt_shift_sb), 1, meta->fp) != 1 ||
- fread(&(meta->cnt_shift_b), sizeof(meta->cnt_shift_b), 1, meta->fp) != 1 ||
fread(&(meta->block_count), sizeof(meta->block_count), 1, meta->fp) != 1 ||
fread(&(meta->seq_count), sizeof(meta->seq_count), 1, meta->fp) != 1 ||
+ fread(&(meta->ambig_list->count), sizeof(meta->ambig_list->count), 1, meta->fp) != 1 ||
fread(&(meta->char_count), sizeof(meta->char_count), 1, meta->fp) != 1
)
esl_fatal( "%s: Error reading meta data for FM index.\n", __FILE__);
@@ -531,10 +630,10 @@ fm_readFMmeta( FM_METADATA *meta)
for (i=0; i<meta->seq_count; i++) {
- if( fread(&(meta->seq_data[i].id), sizeof(meta->seq_data[i].id), 1, meta->fp) != 1 ||
- fread(&(meta->seq_data[i].start), sizeof(meta->seq_data[i].start), 1, meta->fp) != 1 ||
+ if( fread(&(meta->seq_data[i].target_id), sizeof(meta->seq_data[i].target_id), 1, meta->fp) != 1 ||
+ fread(&(meta->seq_data[i].target_start), sizeof(meta->seq_data[i].target_start), 1, meta->fp) != 1 ||
+ fread(&(meta->seq_data[i].fm_start), sizeof(meta->seq_data[i].fm_start), 1, meta->fp) != 1 ||
fread(&(meta->seq_data[i].length), sizeof(meta->seq_data[i].length), 1, meta->fp) != 1 ||
- fread(&(meta->seq_data[i].offset), sizeof(meta->seq_data[i].offset), 1, meta->fp) != 1 ||
fread(&(meta->seq_data[i].name_length), sizeof(meta->seq_data[i].name_length), 1, meta->fp) != 1 ||
fread(&(meta->seq_data[i].acc_length), sizeof(meta->seq_data[i].acc_length), 1, meta->fp) != 1 ||
fread(&(meta->seq_data[i].source_length),sizeof(meta->seq_data[i].source_length),1, meta->fp) != 1 ||
@@ -556,6 +655,20 @@ fm_readFMmeta( FM_METADATA *meta)
}
+ if (meta->ambig_list->count > meta->ambig_list->size) {
+ ESL_REALLOC(meta->ambig_list->ranges, meta->ambig_list->count * sizeof(FM_INTERVAL));
+ if (meta->ambig_list->ranges == NULL )
+ esl_fatal("unable to allocate memory to store FM ambiguity data\n");
+ meta->ambig_list->size = meta->ambig_list->count;
+ }
+
+ for (i=0; i<meta->ambig_list->count; i++) {
+ if( fread(&(meta->ambig_list->ranges[i].lower), sizeof(meta->ambig_list->ranges[i].lower), 1, meta->fp) != 1 ||
+ fread(&(meta->ambig_list->ranges[i].upper), sizeof(meta->ambig_list->ranges[i].upper), 1, meta->fp) != 1
+ )
+ esl_fatal( "%s: Error reading ambiguity data for FM index.\n", __FILE__);
+ }
+
return eslOK;
ERROR:
@@ -572,46 +685,98 @@ ERROR:
}
-
-
-
/* Function: fm_configAlloc()
- * Synopsis: Allocate a 16-byte-aligned <FM_CFG> model object, and it's FM_METADATA
- *
+ * Synopsis: Allocate a <FM_CFG> model object, and its FM_METADATA
*/
int
-fm_configAlloc(void **mem, FM_CFG **cfg)
+fm_configAlloc(FM_CFG **cfg)
{
int status;
- if (mem == NULL || cfg == NULL)
+ if ( cfg == NULL)
esl_fatal("null pointer when allocating FM configuration\n");
- *mem = NULL;
*cfg = NULL;
- ESL_ALLOC(*mem, sizeof(FM_CFG)+ 15 );
- *cfg = (FM_CFG *) (((unsigned long int)(*mem) + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */
+ ESL_ALLOC(*cfg, sizeof(FM_CFG) );
+ if ((*cfg) == NULL)
+ esl_fatal("unable to allocate memory to store FM config data\n");
ESL_ALLOC((*cfg)->meta, sizeof(FM_METADATA));
+ if ((*cfg)->meta == NULL)
+ esl_fatal("unable to allocate memory to store FM meta data\n");
+
+ ESL_ALLOC ((*cfg)->meta->ambig_list, sizeof(FM_AMBIGLIST));
+ if ((*cfg)->meta->ambig_list == NULL)
+ esl_fatal("unable to allocate memory to store FM ambiguity data\n");
+
+
+
return eslOK;
ERROR:
- if (*cfg != NULL)
- if ((*cfg)->meta != NULL) free ((*cfg)->meta);
+ if (*cfg != NULL) {
+ if ((*cfg)->meta != NULL) free ((*cfg)->meta);
+ free (*cfg);
+ }
+ return eslEMEM;
+}
- if (*mem != NULL)
- free (*mem);
- return eslEMEM;
+
+/* Function: fm_configDestroy()
+ * Synopsis: Destroy various memory items used for the FMindex implementation
+ *
+ * Purpose: Destroy the masks used by the FM index, the metadata for
+ * the FM index, and the config itself.
+ */
+int
+fm_configDestroy(FM_CFG *cfg ) {
+ if (cfg) {
+#if defined (p7_IMPL_SSE)
+ if (cfg->fm_chars_mem) free(cfg->fm_chars_mem);
+ if (cfg->fm_masks_mem) free(cfg->fm_masks_mem);
+ if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem);
+#endif
+ fm_metaDestroy(cfg->meta);
+ free(cfg);
+ }
+ return eslOK;
}
+/* Function: fm_metaDestroy()
+ * Synopsis: Destroy various metadata for the FMindex implementation
+ */
+int
+fm_metaDestroy(FM_METADATA *meta ) {
+ int i;
+ if (meta != NULL) {
+ for (i=0; i<meta->seq_count; i++) {
+ if(meta->seq_data[i].name) free(meta->seq_data[i].name);
+ if(meta->seq_data[i].acc) free(meta->seq_data[i].acc);
+ if(meta->seq_data[i].source) free(meta->seq_data[i].source);
+ if(meta->seq_data[i].desc) free(meta->seq_data[i].desc);
+
+ }
+ free(meta->seq_data);
+
+ if (meta->ambig_list) {
+ if (meta->ambig_list->ranges) free(meta->ambig_list->ranges);
+ free(meta->ambig_list);
+ }
+
+ fm_alphabetDestroy(meta);
+ free (meta);
+ }
+
+ return eslOK;
+}
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/fm_msv.c b/hmmer/src/fm_msv.c
deleted file mode 100644
index 42c3e9d..0000000
--- a/hmmer/src/fm_msv.c
+++ /dev/null
@@ -1,1166 +0,0 @@
-/* MSV algorithm; generic (non-SIMD) version.
- *
- * Contents:
- * 1. MSV implementation.
- * 2. Benchmark driver.
- * 3. Unit tests.
- * 4. Test driver.
- * 5. Example.
- * 6. Copyright and license information.
- *
- * SRE, Fri Aug 15 10:38:21 2008 [Janelia]
- * SVN $Id: generic_msv.c 3582 2011-06-26 20:09:21Z wheelert $
- */
-
-#include "p7_config.h"
-
-#include "easel.h"
-#include "esl_alphabet.h"
-#include "esl_gumbel.h"
-
-
-#include "hmmer.h"
-#include <string.h>
-
-/*****************************************************************
- * 1. MSV implementation.
- *****************************************************************/
-
-
-
-
-/* hit_sorter(): qsort's pawn, below */
-static int
-hit_sorter(const void *a, const void *b)
-{
- FM_DIAG *d1 = (FM_DIAG*)a;
- FM_DIAG *d2 = (FM_DIAG*)b;
-
- return 2 * (d1->sortkey > d2->sortkey) - 1; // same as the test below
-// if ( d1->sortkey > d2->sortkey) return 1;
-// else return -1;
-
-}
-
-static int
-mergeSeeds(FM_DIAGLIST *seeds, int N, int msv_length) {
- int i;
- int j = 0;
-
- if (seeds->count == 0)
- return eslOK;
-
- FM_DIAG *diags = seeds->diags;
- FM_DIAG next = diags[0];
-
- int tmp;
- int next_is_complement;
-
- int curr_is_complement = next.sortkey > N;
- int compl_mult = curr_is_complement ? 1 : -1;
- int curr_n = next.n;
- int curr_k = next.k;
- int curr_len = next.length;
- int curr_end = curr_n + curr_len - 1;
- int curr_diagval = next.n + next.k * compl_mult;
-
-
- for( i=1; i<seeds->count; i++) {
-
- next = diags[i];
- next_is_complement = next.sortkey > N;
- compl_mult = next_is_complement ? 1 : -1;
-
- //overlapping diagonals will share the same value of (n - k) for non-complement hits, and (n+k) for complement hits
- if ( next_is_complement == curr_is_complement //same direction
- && ( next.n + next.k * compl_mult) == curr_diagval //same diagonal
- && next.n + next.length < curr_n + curr_len + msv_length //overlapping, or close to it
- ) {
-
-
- //overlapping diags; extend, if appropriate
- if (next_is_complement) {
- curr_len += curr_n - next.n;
- } else {
- tmp = next.n + next.length - 1;
- if (tmp > curr_end) {
- curr_end = tmp;
- curr_len = curr_end - curr_n + 1;
- }
- }
- } else {
- //doesn't overlap current diagonal, so store current...
- diags[j].n = curr_n;
- diags[j].k = curr_k;
- diags[j].length = curr_end - curr_n + 1;
- diags[j].complementarity = curr_is_complement;
- diags[j].sortkey = 0.0;
-
- // ... then start up a new one
- curr_n = next.n;
- curr_k = next.k;
- curr_len = next.length;
- curr_end = curr_n + curr_len - 1;
- curr_diagval = next.n + next.k * compl_mult;
- curr_is_complement = next_is_complement;
-
- j++;
- }
- }
- // store final entry
- diags[j].n = curr_n;
- diags[j].k = curr_k;
- diags[j].length = curr_end - curr_n + 1;
- diags[j].sortkey = 0.0;
-
- seeds->count = j+1;
- return eslOK;
-
-}
-
-static uint32_t
-FM_backtrackSeed(const FM_DATA *fmf, FM_CFG *fm_cfg, int i, FM_DIAG *seed) {
- int j = i;
- int len = 0;
- int c;
-
- while ( j != fmf->term_loc && (j & fm_cfg->maskSA)) { //go until we hit a position in the full SA that was sampled during FM index construction
- c = fm_getChar( fm_cfg->meta->alph_type, j, fmf->BWT);
- j = fm_getOccCount (fmf, fm_cfg, j-1, c);
- j += abs(fmf->C[c]);
- len++;
- }
-
- return len + (j==fmf->term_loc ? 0 : fmf->SA[ j >> fm_cfg->shiftSA ]) ; // len is how many backward steps we had to take to find a sampled SA position
-
-}
-
-static int
-FM_getPassingDiags(const FM_DATA *fmf, FM_CFG *fm_cfg,
- int k, int M, float sc, int depth, int fm_direction,
- int model_direction, int complementarity,
- FM_INTERVAL *interval,
- FM_DIAGLIST *seeds
- )
-{
-
- int i;
- FM_DIAG *seed;
-
- //iterate over the forward interval, for each entry backtrack until hitting a sampled suffix array entry
- for (i = interval->lower; i<= interval->upper; i++) {
-
- seed = fm_newSeed(seeds);
- seed->k = k;
- seed->length = depth;
- seed->n = FM_backtrackSeed(fmf, fm_cfg, i, seed);
- seed->complementarity = complementarity;
-
- /* In both fm_forward and fm_backward cases, seed->n corresponds to the start
- * of the seed in terms of the target sequence, in a forward direction. But the meaning of
- * seed->k differs: in fm_backward, k represents the model position aligned to n, while
- * in fm_forward, k holds the model position aligned to the last character of the seed.
- * So ... shift k over in the forward case. Doing this will mean
- */
-
- if(fm_direction == fm_forward) //
- seed->k += (depth - 1) * (model_direction == fm_forward ? -1 : 1) ;
-
- seed->sortkey = ( complementarity == fm_complement ? fmf->N + 1 : 0) // makes complement seeds cover a different score range than non-complements
- + (seed->n + ( seed->k * (complementarity == fm_complement ? 1 : -1))) // unique diagonal within the complement/non-complement score range
- + ((double)seed->k/(double)(M+1)) // fractional part, used to sort seeds sharing a diagonal
- ;
- }
-
- return eslOK;
-}
-
-
-static int
-FM_Recurse( int depth, int M, int fm_direction,
- const FM_DATA *fmf, const FM_DATA *fmb,
- FM_CFG *fm_cfg, const P7_MSVDATA *msvdata,
- int first, int last, float sc_threshFM,
- FM_DP_PAIR *dp_pairs,
- FM_INTERVAL *interval_1, FM_INTERVAL *interval_2,
- FM_DIAGLIST *seeds,
- char *seq
- )
-{
-
-
- int sc, next_score;
-
- //int max_k;
- int c, i, k;
-
- FM_INTERVAL interval_1_new, interval_2_new;
-
- for (c=0; c< fm_cfg->meta->alph_size; c++) {//acgt
- int dppos = last;
-
- seq[depth-1] = fm_cfg->meta->alph[c];
- seq[depth] = '\0';
-
- for (i=first; i<=last; i++) { // for each surviving diagonal from the previous round
-
- if (dp_pairs[i].model_direction == fm_forward)
- k = dp_pairs[i].pos + 1;
- else //fm_backward
- k = dp_pairs[i].pos - 1;
-
- if (dp_pairs[i].complementarity == fm_complement) {
- next_score = msvdata->scores[k*fm_cfg->meta->alph_size + fm_getComplement(c,fm_cfg->meta->alph_type) ];
- } else
- next_score = msvdata->scores[k*fm_cfg->meta->alph_size + c];
-
- sc = dp_pairs[i].score + next_score;
-
-
- if ( sc >= sc_threshFM ) { // this is a seed I want to extend
-
- interval_1_new.lower = interval_1->lower;
- interval_1_new.upper = interval_1->upper;
-
- //fprintf(stderr, "%-18s : (%.2f)\n", seq, sc);
-
- if (fm_direction == fm_forward) {
- //searching for forward matches on the FM-index
- interval_2_new.lower = interval_2->lower;
- interval_2_new.upper = interval_2->upper;
- if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
- fm_updateIntervalForward( fmb, fm_cfg, c, &interval_1_new, &interval_2_new);
-
- if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use passing a non-existent string
- FM_getPassingDiags(fmf, fm_cfg, k, M, sc, depth, fm_forward,
- dp_pairs[i].model_direction, dp_pairs[i].complementarity,
- &interval_2_new, seeds);
-
- } else {
- //searching for reverse matches on the FM-index
- if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
- fm_updateIntervalReverse( fmf, fm_cfg, c, &interval_1_new);
-
- if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use passing a non-existent string
- FM_getPassingDiags(fmf, fm_cfg, k, M, sc, depth, fm_backward,
- dp_pairs[i].model_direction, dp_pairs[i].complementarity,
- &interval_1_new, seeds);
-
- }
-
- } else if ( sc <= 0 //some other path in the string enumeration tree will do the job
- || depth == fm_cfg->max_depth //can't extend anymore, 'cause we've reached the pruning length
- || (depth == dp_pairs[i].max_score_len + fm_cfg->neg_len_limit) //too many consecutive positions with a negative total score contribution (sort of like Xdrop)
- || (sc/depth < fm_cfg->score_ratio_req) //score density is too low
- || (dp_pairs[i].max_consec_pos < fm_cfg->consec_pos_req && //a seed is expected to have at least one run of positive-scoring matches at least length consec_pos_req; if it hasn't, (see Tue Nov 23 09:39:54 EST 2010)
- ( (depth >= fm_cfg->max_depth/2 && sc/depth < sc_threshFM/fm_cfg->max_depth) // if we're close to the end of the sequence, abort -- if that end does have sufficiently long all-positive run, I'll find it on the reverse sweep
- || depth == fm_cfg->max_depth-fm_cfg->consec_pos_req+1 ) // if we're at least half way across the sequence, and score density is too low, abort -- if the density on the other side is high enough, I'll find it on the reverse sweep
- )
- || (dp_pairs[i].model_direction == fm_forward &&
- ( (k == M) //can't extend anymore, 'cause we're at the end of the model, going forward
- || (depth > (fm_cfg->max_depth - 10) && sc + msvdata->opt_ext_fwd[k][fm_cfg->max_depth-depth-1] < sc_threshFM) //can't hit threshold, even with best possible forward extension up to length ssv_req
- ))
- || (dp_pairs[i].model_direction == fm_backward &&
- ( (k == 1) //can't extend anymore, 'cause we're at the beginning of the model, going backwards
- || (depth > (fm_cfg->max_depth - 10) && sc + msvdata->opt_ext_rev[k][fm_cfg->max_depth-depth-1] < sc_threshFM ) //can't hit threshold, even with best possible extension up to length ssv_req
- ))
- )
- {
-
- //do nothing - it's been pruned
-
- } else { // it's possible to extend this diagonal and reach the threshold score
-
- dppos++;
- dp_pairs[dppos].pos = k;
- dp_pairs[dppos].score = sc;
- dp_pairs[dppos].model_direction = dp_pairs[i].model_direction;
- dp_pairs[dppos].complementarity = dp_pairs[i].complementarity;
-
- if (sc > dp_pairs[i].max_score) {
- dp_pairs[dppos].max_score = sc;
- dp_pairs[dppos].max_score_len = depth;
- } else {
- dp_pairs[dppos].max_score = dp_pairs[i].max_score;
- dp_pairs[dppos].max_score_len = dp_pairs[i].max_score_len;
- }
-
- dp_pairs[dppos].consec_pos = (next_score > 0 ? dp_pairs[i].consec_pos + 1 : 0);
- dp_pairs[dppos].max_consec_pos = ESL_MAX( dp_pairs[dppos].consec_pos, dp_pairs[i].max_consec_pos);
-
- }
- }
-
-
-
- if ( dppos > last ){ // at least one diagonal that might reach threshold score, but hasn't yet, so extend
-
- interval_1_new.lower = interval_1->lower;
- interval_1_new.upper = interval_1->upper;
-
- if (fm_direction == fm_forward) {
- interval_2_new.lower = interval_2->lower;
- interval_2_new.upper = interval_2->upper;
- if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
- fm_updateIntervalForward( fmb, fm_cfg, c, &interval_1_new, &interval_2_new);
-
- if ( interval_1_new.lower < 0 || interval_1_new.lower > interval_1_new.upper ) //that string doesn't exist in fwd index
- continue;
-
- FM_Recurse(depth+1, M, fm_direction,
- fmf, fmb, fm_cfg, msvdata,
- last+1, dppos, sc_threshFM, dp_pairs,
- &interval_1_new, &interval_2_new,
- seeds,
- seq
- );
-
-
- } else {
-
- if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
- fm_updateIntervalReverse( fmf, fm_cfg, c, &interval_1_new);
-
- if ( interval_1_new.lower < 0 || interval_1_new.lower > interval_1_new.upper ) //that string doesn't exist in reverse index
- continue;
-
- FM_Recurse(depth+1, M, fm_direction,
- fmf, fmb, fm_cfg, msvdata,
- last+1, dppos, sc_threshFM, dp_pairs,
- &interval_1_new, NULL,
- seeds,
- seq
- );
-
- }
- } else {
- //printf ("internal stop: %d\n", depth);
- }
-
- }
-
- return eslOK;
-}
-
-
-static int FM_getSeeds (const P7_OPROFILE *gm, P7_GMX *gx, float sc_threshFM,
- FM_DIAGLIST *seeds,
- const FM_DATA *fmf, const FM_DATA *fmb,
- FM_CFG *fm_cfg, const P7_MSVDATA *msvdata )
-{
- FM_INTERVAL interval_f1, interval_f2, interval_bk;
- //ESL_DSQ c;
- int i, k;
- int status;
- float sc;
- char *seq;
-
- FM_DP_PAIR *dp_pairs_fwd;
- FM_DP_PAIR *dp_pairs_rev;
-
- ESL_ALLOC(dp_pairs_fwd, gm->M * fm_cfg->max_depth * sizeof(FM_DP_PAIR)); // guaranteed to be enough to hold all diagonals
- ESL_ALLOC(dp_pairs_rev, gm->M * fm_cfg->max_depth * sizeof(FM_DP_PAIR));
-
- ESL_ALLOC(seq, 50*sizeof(char));
-
-
- for (i=0; i<fm_cfg->meta->alph_size; i++) {//skip '$'
- int fwd_cnt=0;
- int rev_cnt=0;
-
- interval_f1.lower = interval_f2.lower = interval_bk.lower = fmf->C[i];
- interval_f1.upper = interval_f2.upper = interval_bk.upper = abs(fmf->C[i+1])-1;
-
- if (interval_f1.lower<0 ) //none of that character found
- continue;
-
-
- //c = i - (i <= gm->abc->K ? 1 : 0); // shift to the easel alphabet
- seq[0] = fm_cfg->meta->alph[i];//gm->abc->sym[i];
- seq[1] = '\0';
-
- // Fill in a DP column for the character c, (compressed so that only positive-scoring entries are kept)
- // There will be 4 DP columns for each character, (1) fwd-std, (2) fwd-complement, (3) rev-std, (4) rev-complement
- for (k = 1; k <= gm->M; k++) // there's no need to bother keeping an entry starting at the last position (gm->M)
- {
-
-
- sc = msvdata->scores[k*fm_cfg->meta->alph_size + i];
- if (sc>0) { // we'll extend any positive-scoring diagonal
- if (k < gm->M-2) { // don't bother starting a forward diagonal so close to the end of the model
- //Forward pass on the FM-index
- dp_pairs_fwd[fwd_cnt].pos = k;
- dp_pairs_fwd[fwd_cnt].score = sc;
- dp_pairs_fwd[fwd_cnt].max_score = sc;
- dp_pairs_fwd[fwd_cnt].max_score_len = 1;
- dp_pairs_fwd[fwd_cnt].consec_pos = 1;
- dp_pairs_fwd[fwd_cnt].max_consec_pos = 1;
- dp_pairs_fwd[fwd_cnt].complementarity = fm_nocomplement;
- dp_pairs_fwd[fwd_cnt].model_direction = fm_forward;
- fwd_cnt++;
- }
- if (k > 3) { // don't bother starting a reverse diagonal so close to the start of the model
- dp_pairs_rev[rev_cnt].pos = k;
- dp_pairs_rev[rev_cnt].score = sc;
- dp_pairs_rev[rev_cnt].max_score = sc;
- dp_pairs_rev[rev_cnt].max_score_len = 1;
- dp_pairs_rev[rev_cnt].consec_pos = 1;
- dp_pairs_rev[rev_cnt].max_consec_pos = 1;
- dp_pairs_rev[rev_cnt].complementarity = fm_nocomplement;
- dp_pairs_rev[rev_cnt].model_direction = fm_backward;
- rev_cnt++;
- }
- }
-
-
- sc = msvdata->scores[k*fm_cfg->meta->alph_size + fm_getComplement(i, fm_cfg->meta->alph_type)];
- if (sc>0) { // we'll extend any positive-scoring diagonal
-
- //forward on the FM, reverse on the model
- if (k > 3) { // don't bother starting a reverse diagonal so close to the start of the model
- dp_pairs_fwd[fwd_cnt].pos = k;
- dp_pairs_fwd[fwd_cnt].score = sc;
- dp_pairs_fwd[fwd_cnt].max_score = sc;
- dp_pairs_fwd[fwd_cnt].max_score_len = 1;
- dp_pairs_fwd[fwd_cnt].consec_pos = 1;
- dp_pairs_fwd[fwd_cnt].max_consec_pos = 1;
- dp_pairs_fwd[fwd_cnt].complementarity = fm_complement;
- dp_pairs_fwd[fwd_cnt].model_direction = fm_backward;
- fwd_cnt++;
- }
-
-
- //reverse on the FM, forward on the model
- if (k < gm->M-2) { // don't bother starting a forward diagonal so close to the end of the model
- dp_pairs_rev[rev_cnt].pos = k;
- dp_pairs_rev[rev_cnt].score = sc;
- dp_pairs_rev[rev_cnt].max_score = sc;
- dp_pairs_rev[rev_cnt].max_score_len = 1;
- dp_pairs_rev[rev_cnt].consec_pos = 1;
- dp_pairs_rev[rev_cnt].max_consec_pos = 1;
- dp_pairs_rev[rev_cnt].complementarity = fm_complement;
- dp_pairs_rev[rev_cnt].model_direction = fm_forward;
- rev_cnt++;
- }
- }
-
-
- }
-
- FM_Recurse ( 2, gm->M, fm_forward,
- fmf, fmb, fm_cfg, msvdata,
- 0, fwd_cnt-1, sc_threshFM, dp_pairs_fwd,
- &interval_f1, &interval_f2,
- seeds
- , seq
- );
-
-
- FM_Recurse ( 2, gm->M, fm_backward,
- fmf, fmb, fm_cfg, msvdata,
- 0, rev_cnt-1, sc_threshFM, dp_pairs_rev,
- &interval_bk, NULL,
- seeds
- , seq
- );
-
- }
-
-
- //now sort, first by direction, then N (position on database sequence), then K (model position)
- qsort(seeds->diags, seeds->count, sizeof(FM_DIAG), hit_sorter);
-
- //merge duplicates
- mergeSeeds(seeds, fmf->N, fm_cfg->msv_length);
-
- return eslOK;
-
-ERROR:
- ESL_EXCEPTION(eslEMEM, "Error allocating memory for hit list\n");
-
-}
-
-
-
-static int
-FM_extendSeed(FM_DIAG *diag, const FM_DATA *fm, const P7_MSVDATA *msvdata, FM_CFG *cfg, float sc_thresh, ESL_SQ *tmp_sq)
-{
- //extend seed in both diagonal directions,
- // use n and k to store the beginning and end
- // and sortkey to hold the score (so I don't have to run MSV again in pipeline)
-
- int k,n;
- int model_start, model_end, target_start, target_end;
- int hit_start, hit_end, max_hit_start, max_hit_end;
- float sc;
- float max_sc = 0;
- int c;
- uint32_t tmp_id;
-
- if (diag->complementarity == fm_complement) {
- // complementary diagonal is reverse, so K is the last model position of the diag, not the first
- model_start = ESL_MAX(1, diag->k - diag->length - cfg->msv_length + 1 + 1 );
- model_end = ESL_MIN(msvdata->M, diag->k - diag->length + cfg->msv_length ); //+1 and -1 cancel
- target_start = diag->n - (model_end - diag->k);
- target_end = diag->n + (diag->k - model_start);
- } else {
- model_start = ESL_MIN( diag->k, ESL_MAX(1, diag->k + diag->length - cfg->msv_length )) ; //-1 and +1 cancel
- model_end = ESL_MIN(msvdata->M, diag->k + cfg->msv_length - 1 );
- target_start = diag->n - (diag->k - model_start);
- target_end = diag->n + (model_end - diag->k);
- }
-
-
- k = model_start;
- n = 1;
- sc = 0;
-
- tmp_id = fm_computeSequenceOffset( fm, cfg->meta, 0, target_start);
- fm_convertRange2DSQ(cfg->meta, tmp_id, target_start, target_end-target_start+1, fm->T, tmp_sq );
-// fm_convertRange2DSQ(cfg->meta->alph_type, target_start, target_end, fm->T, tmp_sq );
-
- if (diag->complementarity == fm_complement)
- esl_sq_ReverseComplement(tmp_sq);
-
- hit_start = n;
- for ( ; k <= model_end; k++, n++) {
- c = tmp_sq->dsq[n];
-
- sc += msvdata->scores[k*cfg->meta->alph_size + c];
- //printf ("%d: %.2f (%.2f)\n", k, sc, hmmdata->s.scores_f[k][c] );
-
- if (sc < 0) {
- sc = 0;
- hit_start = n+1;
- }
- hit_end = n;
-
- if (sc > max_sc) {
- max_sc = sc;
- max_hit_start = hit_start;
- max_hit_end = hit_end;
- }
- }
-
- if (diag->complementarity == fm_complement) {
- diag->n = target_end - max_hit_end + 1;
- diag->k = max_hit_end;
- } else {
- diag->n = target_start + max_hit_start - 1;
- diag->k = model_start + max_hit_start - 1;
- }
- diag->length = max_hit_end - max_hit_start + 1;
- diag->sortkey = max_sc;
-
-
- return eslOK;
-}
-
-
-/* Function: p7_FM_MSV()
- * Synopsis: Finds windows with MSV scores above given threshold
- *
- * Details: Uses FM-index to find high-scoring diagonals (seeds), then extends those
- * seeds to maximal scoring diagonals (no gaps). Diagonals in close
- * proximity (within a small window) are stitched together, and windows
- * meeting the MSV scoring threshold (usually score s.t. p=0.02) are
- * captured, and passed on to the Viterbi and Forward stages of the
- * pipeline.
- *
- *
- * Args: dsq - digital target sequence, 1..L
- * L - length of dsq in residues
- * gm - profile (can be in any mode)
- * gx - DP matrix
- * nu - configuration: expected number of hits (use 2.0 as a default)
- * bg - the background model, required for translating a P-value threshold into a score threshold
- * P - p-value below which a region is captured as being above threshold
- * starts - RETURN: array of start positions for windows surrounding above-threshold areas
- * ends - RETURN: array of end positions for windows surrounding above-threshold areas
- * hit_cnt - RETURN: count of entries in the above two arrays
- *
- *
- * Note: Not worried about speed here. Based on p7_GMSV
- *
- * Returns: <eslOK> on success.
- *
- * Throws: <eslEINVAL> if <ox> allocation is too small.
- */
-int
-p7_FM_MSV( P7_OPROFILE *om, P7_GMX *gx, float nu, P7_BG *bg, double F1,
- const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_MSVDATA *msvdata,
- P7_HMM_WINDOWLIST *windowlist)
-{
- float P;
- float P_fm = 0.5;
- float sc_thresh, sc_threshFM, j_thresh;
- float invP, invP_FM;
- float nullsc;
-
- int i, j;
- float window_tmove;
- float window_tloop;
-
- float tloop = logf((float) om->max_length / (float) (om->max_length+3));
- float tloop_total = tloop * om->max_length;
- float tmove = logf( 3.0f / (float) (om->max_length+3));
- float tbmk = logf( 2.0f / ((float) om->M * (float) (om->M+1)));
- float tec = logf(1.0f / nu);
- uint32_t tmp_id, tmp_n;
- uint32_t prev_n = 0;
- uint32_t prev_id = 0;
- uint32_t prev_nstart = 0;
- uint32_t prev_fmstart = 0;
- int prev_k;
- float prev_sc = 0.0;
- float score = 0.0;
- int left_edge;
- int prev_right_edge;
- FM_DIAG *diag;
-
- ESL_SQ *tmp_sq;
-
- FM_DIAGLIST seeds;
- fm_initSeeds(&seeds);
-
- /* Set false target length. This is a conservative estimate of the length of window that'll
- * soon be passed on to later phases of the pipeline; used to recover some bits of the score
- * that we would miss if we left length parameters set to the full target length */
- p7_oprofile_ReconfigMSVLength(om, om->max_length);
- p7_bg_SetLength(bg, om->max_length);
- p7_bg_NullOne (bg, NULL, om->max_length, &nullsc);
-
- tmp_sq = esl_sq_CreateDigital(om->abc);
-
- /*
- * Computing the score required to let P meet the F1 prob threshold
- * In original code, converting from an MSV score S (the score getting
- * to state C) to a probability goes like this:
- * S = XMX(L,p7G_C)
- * usc = S + tmove + tloop_total
- * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda)
- * and XMX(C) was the diagonal score + tmove + tbmk + tec
- * and we're computing the threshold score S, so reverse it:
- * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda)
- * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda)
- * S = usc - tmove - tloop_total - tmove - tbmk - tec
- *
- *
- * Here, I compute threshold with length model based on max_length. Usually, the
- * length of a window returned by this scan will be 2*max_length-1 or longer. Doesn't
- * really matter - in any case, both the bg and om models will change with roughly
- * 1 bit for each doubling of the length model, so they offset.
- */
- invP = esl_gumbel_invsurv(F1, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
- sc_thresh = (invP * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec);
- j_thresh = 0 - tmove - tbmk - tec; //the score required to make it worth appending a diagonal to another diagonal
-
- invP_FM = esl_gumbel_invsurv(P_fm, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
- sc_threshFM = ESL_MIN(fm_cfg->max_scthreshFM, (invP_FM * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec) ) ;
-/*
- sc_threshFM = (invP_FM * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec) ;
- fprintf (stderr, "%.2f", sc_threshFM);
- exit(0);
-*/
-
-
- //get diagonals that score above sc_threshFM
- FM_getSeeds(om, gx, sc_threshFM, &seeds, fmf, fmb, fm_cfg, msvdata);
-
- //now extend those diagonals to find ones scoring above sc_thresh
- for(i=0; i<seeds.count; i++) {
- FM_extendSeed( seeds.diags+i, fmf, msvdata, fm_cfg, sc_thresh, tmp_sq);
- }
-
-
- if ( sc_thresh <= j_thresh) {
- //no use doing MSV filter, just use a simple SSV filter, but with a little extra complexity to handle window merging
- for(i=0; i<seeds.count; i++) {
- diag = seeds.diags+i;
-
- score = (float)diag->sortkey;
-
- if (score >= sc_thresh) {
- //then convert to positions in the original sequence used to produce the db
- fm_getOriginalPosition (fmf, fm_cfg->meta, 0, diag->length, fm_forward, diag->n, &(tmp_id), &(tmp_n) );
- if (tmp_id == -1) continue; // crosses over a barrier between sequences in the digital data structure
- p7_hmmwindow_new(windowlist, tmp_id, tmp_n, diag->n, diag->k, seeds.diags[i].length, score, diag->complementarity);
-
- }
-
- }
-
- } else {
- //use MSV filter
-
- //first filter away diagonals that don't meet j_thresh
- j=0;
- for(i=0; i<seeds.count; i++) {
- if (seeds.diags[i].sortkey >= j_thresh)
- seeds.diags[j++] = seeds.diags[i];
- }
- seeds.count = j;
-
-
- /*
- * Then sweep through and look for diagonals or near-neighbor-sets that meet sc_thresh
- * The result of this approach is that overlapping windows are merged in place
- */
-
- for(i=0; i<seeds.count; i++) {
- diag = seeds.diags+i;
- score = (float)diag->sortkey;
-
- fm_getOriginalPosition (fmf, fm_cfg->meta, 0, diag->length, fm_forward, diag->n, &(tmp_id), &(tmp_n) );
-
- if (tmp_id == -1) continue; // crosses over a barrier between sequences in the digital data structure
-
- left_edge = tmp_n - msvdata->prefix_lengths[diag->k - diag->length + 1] + 1;
- prev_right_edge = prev_n + msvdata->suffix_lengths[prev_k ] - 1;
-
- if ( prev_n!=0 && tmp_id==prev_id && left_edge <= prev_right_edge ) { //we're close to the previous diagonal
-
- if ( prev_sc >= sc_thresh) { // extending an MSV window that's already passed sc_thresh
- //extend existing [SM]SV
- windowlist->windows[windowlist->count-1].length = tmp_n - prev_nstart + seeds.diags[i].length; // widen the window
- windowlist->windows[windowlist->count-1].score += score - j_thresh ;
-
- } else if ( prev_sc + score >= sc_thresh) { // here's an MSV window, finally above sc_thresh
- //create MSV
- //fm_newWindow(windowlist, fm_cfg->meta->seq_data[ tmp_id ].id, prev_nstart, seeds.diags+i);
- p7_hmmwindow_new(windowlist, tmp_id, prev_nstart, prev_fmstart, diag->k, 0, score, diag->complementarity);
- windowlist->windows[windowlist->count-1].length = tmp_n - prev_nstart + diag->length; // widen the window
- windowlist->windows[windowlist->count-1].score += prev_sc - j_thresh ;
-
- }
- // allow hits or candidates to keep getting extended
- prev_n = tmp_n;
- prev_k = seeds.diags[i].k;
- prev_sc += score ;
-
-
- } else { // not close to the previous diagonal
-
- if (score >= sc_thresh) { // this diagonal doesn't need any help from another. Make a window based on just this seed
- //create SSV
-// fm_newWindow(windowlist, fm_cfg->meta->seq_data[ tmp_id ].id, tmp_n, seeds.diags+i);
- p7_hmmwindow_new(windowlist, tmp_id, tmp_n, diag->n, diag->k, diag->length, score, diag->complementarity);
- }
-
- //capture the n position of the diagonal and above-j_thresh contribution, whether it produced an SSV hit or not,
- //and keep for the next iteration
- prev_id = tmp_id;
- prev_nstart = prev_n = tmp_n;
- prev_fmstart = diag->n;
- prev_k = diag->k;
- prev_sc = (float)diag->sortkey;
-
-
- }
-
- }
-
- }
-
-
- //update window size and corresponding score. Filter away windows now below threshold, compressing list
- j=0;
- for(i=0; i<windowlist->count; i++) {
- P7_HMM_WINDOW *window = windowlist->windows + i;
-
- int diag_len = window->length;
-
-// int window_start = window->fm_n - om->max_length + fm_cfg->msv_length + 1;
-// int window_end = window->fm_n + window->length + om->max_length - fm_cfg->msv_length - 1;
-
- int window_start = window->fm_n - (om->max_length * msvdata->prefix_lengths[window->k]) - 100;
- int window_end = window->fm_n + window->length + (om->max_length * msvdata->suffix_lengths[window->k + window->length - 1]) + 100;
-
- window->length = window_end - window_start + 1;
- window->n -= (window->fm_n - window_start) - 1 ; // final -1 to shift n up one, accounting for difference between 0-based fm-index and 1-based DSQ
- window->fm_n = window_start;
-
- window_tmove = logf( 3.0f / (float) (window->length+3));
- window_tloop = logf((float)window->length / (float) (window->length+3));
-
- window->score += tbmk + tec
- + 2*window_tmove
- + ( (window->length - diag_len) * window_tloop );
-
- p7_bg_SetLength(bg, om->max_length);
- p7_bg_NullOne (bg, NULL, om->max_length, &(window->null_sc));
-
- P = esl_gumbel_surv( (window->score - window->null_sc)/eslCONST_LOG2, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
- if (P <= F1 )
- windowlist->windows[j++] = windowlist->windows[i];
-
- }
- windowlist->count = j;
-
-
- //Now merge overlapping windows.
- if (windowlist->count > 0) {
- j=1;
- for(i=1; i<windowlist->count; i++) {
- P7_HMM_WINDOW *prev_window = windowlist->windows + i-1;
- P7_HMM_WINDOW *window = windowlist->windows + i;
-
- if (window->id == prev_window->id &&
- window->complementarity == prev_window->complementarity &&
- window->n <= prev_window->n + prev_window->length - 1
- ) { //overlap , so extend the previous window, and update it's score
-
- prev_window->length = window->n - prev_window->n + 1 + window->length;
- prev_window->score = prev_window->score + window->score - j_thresh ;
-
- } else {
- //no overlap, so shift the current window over to the next active slot
- windowlist->windows[j++] = windowlist->windows[i];
-
- }
-
- }
- windowlist->count = j;
- }
-
- return eslEOF;
-
-//ERROR:
-// ESL_EXCEPTION(eslEMEM, "Error allocating memory for hit list\n");
-
-}
-/*------------------ end, p7_FM_MSV() ------------------------*/
-
-
-
-
-
-/*****************************************************************
- * 2. Benchmark driver.
- *****************************************************************/
-#ifdef p7GENERIC_MSV_BENCHMARK
-/*
- gcc -g -O2 -o generic_msv_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_MSV_BENCHMARK generic_msv.c -lhmmer -leasel -lm
- icc -O3 -static -o generic_msv_benchmark -I. -L. -I../easel -L../easel -Dp7GENERIC_MSV_BENCHMARK generic_msv.c -lhmmer -leasel -lm
- ./benchmark-generic-msv <hmmfile>
- */
-/* As of Fri Dec 28 14:48:39 2007
- * Viterbi = 61.8 Mc/s
- * Forward = 8.6 Mc/s
- * Backward = 7.1 Mc/s
- * GMSV = 55.9 Mc/s
- * (gcc -g -O2, 3.2GHz Xeon, N=50K, L=400, M=72 RRM_1 model)
- */
-#include "p7_config.h"
-
-#include "easel.h"
-#include "esl_alphabet.h"
-#include "esl_getopts.h"
-#include "esl_random.h"
-#include "esl_randomseq.h"
-#include "esl_stopwatch.h"
-
-#include "hmmer.h"
-
-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", 0 },
- { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
- { "-L", eslARG_INT, "400", NULL, "n>0", NULL, NULL, NULL, "length of random target seqs", 0 },
- { "-N", eslARG_INT, "20000", NULL, "n>0", NULL, NULL, NULL, "number of random target seqs", 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-};
-static char usage[] = "[-options] <hmmfile>";
-static char banner[] = "benchmark driver for generic MSV";
-
-int
-main(int argc, char **argv)
-{
- ESL_GETOPTS *go = p7_CreateDefaultApp(options, 1, argc, argv, banner, usage);
- char *hmmfile = esl_opt_GetArg(go, 1);
- ESL_STOPWATCH *w = esl_stopwatch_Create();
- ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s"));
- ESL_ALPHABET *abc = NULL;
- P7_HMMFILE *hfp = NULL;
- P7_HMM *hmm = NULL;
- P7_BG *bg = NULL;
- P7_PROFILE *gm = NULL;
- P7_GMX *gx = NULL;
- int L = esl_opt_GetInteger(go, "-L");
- int N = esl_opt_GetInteger(go, "-N");
- ESL_DSQ *dsq = malloc(sizeof(ESL_DSQ) * (L+2));
- int i;
- float sc;
- double base_time, bench_time, Mcs;
-
- if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile);
- if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM");
-
- bg = p7_bg_Create(abc);
- p7_bg_SetLength(bg, L);
- gm = p7_profile_Create(hmm->M, abc);
- p7_ProfileConfig(hmm, bg, gm, L, p7_UNILOCAL);
- gx = p7_gmx_Create(gm->M, L);
-
- /* Baseline time. */
- esl_stopwatch_Start(w);
- for (i = 0; i < N; i++) esl_rsq_xfIID(r, bg->f, abc->K, L, dsq);
- esl_stopwatch_Stop(w);
- base_time = w->user;
-
- /* Benchmark time. */
- esl_stopwatch_Start(w);
- for (i = 0; i < N; i++)
- {
- esl_rsq_xfIID(r, bg->f, abc->K, L, dsq);
- p7_GMSV (dsq, L, gm, gx, 2.0, &sc);
- }
- esl_stopwatch_Stop(w);
- bench_time = w->user - base_time;
- Mcs = (double) N * (double) L * (double) gm->M * 1e-6 / (double) bench_time;
- esl_stopwatch_Display(stdout, w, "# CPU time: ");
- printf("# M = %d\n", gm->M);
- printf("# %.1f Mc/s\n", Mcs);
-
- free(dsq);
- p7_gmx_Destroy(gx);
- p7_profile_Destroy(gm);
- p7_bg_Destroy(bg);
- p7_hmm_Destroy(hmm);
- p7_hmmfile_Close(hfp);
- esl_alphabet_Destroy(abc);
- esl_stopwatch_Destroy(w);
- esl_randomness_Destroy(r);
- esl_getopts_Destroy(go);
- return 0;
-}
-#endif /*p7GENERIC_MSV_BENCHMARK*/
-/*----------------- end, benchmark ------------------------------*/
-
-/*****************************************************************
- * 3. Unit tests
- *****************************************************************/
-#ifdef p7GENERIC_MSV_TESTDRIVE
-#include "esl_getopts.h"
-#include "esl_random.h"
-#include "esl_randomseq.h"
-#include "esl_vectorops.h"
-/* The MSV score can be validated against Viterbi (provided we trust
- * Viterbi), by creating a multihit local profile in which:
- * 1. All t_MM scores = 0
- * 2. All other core transitions = -inf
- * 3. All t_BMk entries uniformly log 2/(M(M+1))
- */
-static void
-utest_msv(ESL_GETOPTS *go, ESL_RANDOMNESS *r, ESL_ALPHABET *abc, P7_BG *bg, P7_PROFILE *gm, int nseq, int L)
-{
- P7_PROFILE *g2 = NULL;
- ESL_DSQ *dsq = NULL;
- P7_GMX *gx = NULL;
- float sc1, sc2;
- int k, idx;
-
- if ((dsq = malloc(sizeof(ESL_DSQ) *(L+2))) == NULL) esl_fatal("malloc failed");
- if ((gx = p7_gmx_Create(gm->M, L)) == NULL) esl_fatal("matrix creation failed");
- if ((g2 = p7_profile_Clone(gm)) == NULL) esl_fatal("profile clone failed");
-
- /* Make g2's scores appropriate for simulating the MSV algorithm in Viterbi */
- esl_vec_FSet(g2->tsc, p7P_NTRANS * g2->M, -eslINFINITY);
- for (k = 1; k < g2->M; k++) p7P_TSC(g2, k, p7P_MM) = 0.0f;
- for (k = 0; k < g2->M; k++) p7P_TSC(g2, k, p7P_BM) = log(2.0f / ((float) g2->M * (float) (g2->M+1)));
-
- for (idx = 0; idx < nseq; idx++)
- {
- if (esl_rsq_xfIID(r, bg->f, abc->K, L, dsq) != eslOK) esl_fatal("seq generation failed");
-
- if (p7_GMSV (dsq, L, gm, gx, 2.0, &sc1) != eslOK) esl_fatal("MSV failed");
- if (p7_GViterbi(dsq, L, g2, gx, &sc2) != eslOK) esl_fatal("viterbi failed");
- if (fabs(sc1-sc2) > 0.0001) esl_fatal("MSV score not equal to Viterbi score");
- }
-
- p7_gmx_Destroy(gx);
- p7_profile_Destroy(g2);
- free(dsq);
- return;
-}
-#endif /*p7GENERIC_MSV_TESTDRIVE*/
-/*----------------- end, unit tests -----------------------------*/
-
-
-/*****************************************************************
- * 4. Test driver.
- *****************************************************************/
-/* gcc -g -Wall -Dp7GENERIC_MSV_TESTDRIVE -I. -I../easel -L. -L../easel -o generic_msv_utest generic_msv.c -lhmmer -leasel -lm
- */
-#ifdef p7GENERIC_MSV_TESTDRIVE
-#include "easel.h"
-#include "esl_getopts.h"
-#include "esl_msa.h"
-
-#include "p7_config.h"
-#include "hmmer.h"
-
-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", 0 },
- { "-s", eslARG_INT, "42", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0 },
- { "-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be verbose", 0 },
- { "--vv", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "be very verbose", 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-};
-static char usage[] = "[-options]";
-static char banner[] = "unit test driver for the generic Msv implementation";
-
-int
-main(int argc, char **argv)
-{
- ESL_GETOPTS *go = p7_CreateDefaultApp(options, 0, argc, argv, banner, usage);
- ESL_RANDOMNESS *r = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s"));
- ESL_ALPHABET *abc = NULL;
- P7_HMM *hmm = NULL;
- P7_PROFILE *gm = NULL;
- P7_BG *bg = NULL;
- int M = 100;
- int L = 200;
- int nseq = 20;
- char errbuf[eslERRBUFSIZE];
-
- if ((abc = esl_alphabet_Create(eslAMINO)) == NULL) esl_fatal("failed to create alphabet");
- if (p7_hmm_Sample(r, M, abc, &hmm) != eslOK) esl_fatal("failed to sample an HMM");
- if ((bg = p7_bg_Create(abc)) == NULL) esl_fatal("failed to create null model");
- if ((gm = p7_profile_Create(hmm->M, abc)) == NULL) esl_fatal("failed to create profile");
- if (p7_ProfileConfig(hmm, bg, gm, L, p7_LOCAL) != eslOK) esl_fatal("failed to config profile");
- if (p7_hmm_Validate (hmm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, HMM is bad!: %s", errbuf);
- if (p7_profile_Validate(gm, errbuf, 0.0001) != eslOK) esl_fatal("whoops, profile is bad!: %s", errbuf);
-
- utest_msv(go, r, abc, bg, gm, nseq, L);
-
- p7_profile_Destroy(gm);
- p7_bg_Destroy(bg);
- p7_hmm_Destroy(hmm);
- esl_alphabet_Destroy(abc);
- esl_randomness_Destroy(r);
- esl_getopts_Destroy(go);
- return 0;
-}
-#endif /*p7GENERIC_MSV_TESTDRIVE*/
-/*-------------------- end, test driver -------------------------*/
-
-
-/*****************************************************************
- * 5. Example
- *****************************************************************/
-#ifdef p7GENERIC_MSV_EXAMPLE
-/*
- gcc -g -O2 -Dp7GENERIC_MSV_EXAMPLE -I. -I../easel -L. -L../easel -o generic_msv_example generic_msv.c -lhmmer -leasel -lm
- */
-#include "p7_config.h"
-
-#include "easel.h"
-#include "esl_alphabet.h"
-#include "esl_getopts.h"
-#include "esl_gumbel.h"
-#include "esl_sq.h"
-#include "esl_sqio.h"
-
-#include "hmmer.h"
-
-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", 0 },
- { "--nu", eslARG_REAL, "2.0", NULL, NULL, NULL, NULL, NULL, "set nu param to <x>: expected # MSV diagonals", 0 },
- { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-};
-static char usage[] = "[-options] <hmmfile> <seqfile>";
-static char banner[] = "example of generic MSV algorithm";
-
-
-int
-main(int argc, char **argv)
-{
- ESL_GETOPTS *go = p7_CreateDefaultApp(options, 2, argc, argv, banner, usage);
- char *hmmfile = esl_opt_GetArg(go, 1);
- char *seqfile = esl_opt_GetArg(go, 2);
- float nu = esl_opt_GetReal(go, "--nu");
- ESL_ALPHABET *abc = NULL;
- P7_HMMFILE *hfp = NULL;
- P7_HMM *hmm = NULL;
- P7_BG *bg = NULL;
- P7_PROFILE *gm = NULL;
- P7_GMX *fwd = NULL;
- ESL_SQ *sq = NULL;
- ESL_SQFILE *sqfp = NULL;
- P7_TRACE *tr = NULL;
- int format = eslSQFILE_UNKNOWN;
- float sc, nullsc, seqscore, lnP;
- int status;
-
- /* Read in one HMM */
- if (p7_hmmfile_OpenE(hmmfile, NULL, &hfp, NULL) != eslOK) p7_Fail("Failed to open HMM file %s", hmmfile);
- if (p7_hmmfile_Read(hfp, &abc, &hmm) != eslOK) p7_Fail("Failed to read HMM");
- p7_hmmfile_Close(hfp);
-
- /* Open sequence file */
- sq = esl_sq_CreateDigital(abc);
- status = esl_sqfile_Open(seqfile, format, NULL, &sqfp);
- if (status == eslENOTFOUND) p7_Fail("No such file.");
- else if (status == eslEFORMAT) p7_Fail("Format unrecognized.");
- else if (status == eslEINVAL) p7_Fail("Can't autodetect stdin or .gz.");
- else if (status != eslOK) p7_Fail("Open failed, code %d.", status);
-
- /* Configure a profile from the HMM */
- bg = p7_bg_Create(abc);
- gm = p7_profile_Create(hmm->M, abc);
- p7_ProfileConfig(hmm, bg, gm, sq->n, p7_LOCAL);
-
- /* Allocate matrix */
- fwd = p7_gmx_Create(gm->M, sq->n);
-
- while ((status = esl_sqio_Read(sqfp, sq)) == eslOK)
- {
- p7_ReconfigLength(gm, sq->n);
- p7_bg_SetLength(bg, sq->n);
- p7_gmx_GrowTo(fwd, gm->M, sq->n);
-
- /* Run MSV */
- p7_GMSV(sq->dsq, sq->n, gm, fwd, nu, &sc);
-
- /* Calculate bit score and P-value using standard null1 model*/
- p7_bg_NullOne (bg, sq->dsq, sq->n, &nullsc);
- seqscore = (sc - nullsc) / eslCONST_LOG2;
- lnP = esl_gumbel_logsurv(seqscore, gm->evparam[p7_MMU], gm->evparam[p7_MLAMBDA]);
-
- /* output suitable for direct use in profmark benchmark postprocessors:
- * <Pvalue> <bitscore> <target name> <query name>
- */
- printf("%g\t%.2f\t%s\t%s\n", exp(lnP), seqscore, sq->name, hmm->name);
-
- esl_sq_Reuse(sq);
- }
- if (status == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n", sqfp->filename, esl_sqfile_GetErrorBuf(sqfp));
- else if (status != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s", status, sqfp->filename);
-
- /* Cleanup */
- esl_sqfile_Close(sqfp);
- esl_sq_Destroy(sq);
- p7_trace_Destroy(tr);
- p7_gmx_Destroy(fwd);
- p7_profile_Destroy(gm);
- p7_bg_Destroy(bg);
- p7_hmm_Destroy(hmm);
- esl_alphabet_Destroy(abc);
- esl_getopts_Destroy(go);
- return 0;
-}
-#endif /*p7GENERIC_MSV_EXAMPLE*/
-/*-------------------- end, example -----------------------------*/
-
-/*****************************************************************
- * HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * HMMER is distributed under the terms of the GNU General Public License
- * (GPLv3). See the LICENSE file for details.
- *****************************************************************/
diff --git a/hmmer/src/impl_sse/fm.c b/hmmer/src/fm_sse.c
similarity index 68%
rename from hmmer/src/impl_sse/fm.c
rename to hmmer/src/fm_sse.c
index 3fd0fe5..63f401d 100644
--- a/hmmer/src/impl_sse/fm.c
+++ b/hmmer/src/fm_sse.c
@@ -1,9 +1,20 @@
-#include "hmmer.h"
-#include "impl_sse.h"
+#include "p7_config.h"
+
+#include <stdio.h>
+#if defined (p7_IMPL_SSE)
+#include <xmmintrin.h> /* SSE */
+#include <emmintrin.h> /* SSE2 */
+#endif
+#include "easel.h"
+#include "esl_getopts.h"
+#include "hmmer.h"
+
+#if defined (p7_IMPL_SSE)
int
-fm_getbits_m128 (__m128i in, char *buf, int reverse) {
+fm_getbits_m128 (__m128i in, char *buf, int reverse)
+{
byte_m128 new;
new.m128 = in;
int i,j;
@@ -24,7 +35,8 @@ fm_getbits_m128 (__m128i in, char *buf, int reverse) {
}
int
-fm_print_m128 (__m128i in) {
+fm_print_m128 (__m128i in)
+{
char str[144];
fm_getbits_m128(in, str, 0);
fprintf (stderr, "%s\n", str);
@@ -33,25 +45,30 @@ fm_print_m128 (__m128i in) {
int
-fm_print_m128_rev (__m128i in) {
+fm_print_m128_rev (__m128i in)
+{
char str[144];
fm_getbits_m128(in, str, 1);
fprintf (stderr, "%s\n", str);
return eslOK;
}
+#endif //#if defined (p7_IMPL_SSE)
/* Function: fm_initConfig()
* Purpose: Initialize vector masks used in SSE FMindex implementation
*/
int
-fm_initConfig( FM_CFG *cfg, ESL_GETOPTS *go ) {
+fm_configInit( FM_CFG *cfg, ESL_GETOPTS *go )
+{
int status;
int i,j;
int trim_chunk_count;
fm_initConfigGeneric(cfg, go);
+#if defined (p7_IMPL_SSE)
+
cfg->fm_allones_v = _mm_set1_epi8(0xff);
cfg->fm_neg128_v = _mm_set1_epi8((int8_t) -128);
cfg->fm_zeros_v = _mm_set1_epi8((int8_t) 0x00); //00 00 00 00
@@ -84,10 +101,10 @@ fm_initConfig( FM_CFG *cfg, ESL_GETOPTS *go ) {
* Incrementally chew off the 1s in chunks of 2 (for DNA) or 4 (for DNA_full)
* from the right side, and stick each result into an element of a __m128 array
*/
- if (cfg->meta->alph_type == fm_DNA)
- trim_chunk_count = 64; //2-bit steps
- else //(meta->alph_type == fm_DNA_full)
- trim_chunk_count = 16; //8-bit steps
+ //if (cfg->meta->alph_type == fm_DNA)
+ trim_chunk_count = 64; //2-bit steps
+// else //(meta->alph_type == fm_DNA_full)
+// trim_chunk_count = 16; //8-bit steps
//chars_per_vector = 128/meta->charBits;
cfg->fm_masks_v = NULL;
@@ -130,18 +147,22 @@ fm_initConfig( FM_CFG *cfg, ESL_GETOPTS *go ) {
}
}
+#endif //#if defined (p7_IMPL_SSE)
+/*
if (cfg->meta->alph_type == fm_DNA_full) {
cfg->fm_masks_v[16] = cfg->fm_allones_v;
cfg->fm_reverse_masks_v[16] = cfg->fm_allones_v;
}
-
+*/
return eslOK;
ERROR:
+#if defined (p7_IMPL_SSE)
if (cfg->fm_chars_mem) free(cfg->fm_chars_mem);
if (cfg->fm_masks_mem) free(cfg->fm_masks_mem);
if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem);
+#endif
esl_fatal("Error allocating memory in initGlobals\n");
return eslFAIL;
@@ -149,20 +170,6 @@ ERROR:
-/* Function: fm_destroyConfig()
- * Purpose: Destroy vector masks used in SSE FMindex implementation
- */
-int
-fm_destroyConfig(FM_CFG *cfg ) {
- if (cfg) {
- if (cfg->fm_chars_mem) free(cfg->fm_chars_mem);
- if (cfg->fm_masks_mem) free(cfg->fm_masks_mem);
- if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem);
- //free(cfg);
- }
- return eslOK;
-}
-
/* Function: fm_getOccCount()
* Synopsis: Compute number of occurrences of c in BWT[1..pos]
*
@@ -182,31 +189,39 @@ fm_destroyConfig(FM_CFG *cfg ) {
* and certainly better space-utilization.
*/
int
-fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
+fm_getOccCount (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c) {
int i;
FM_METADATA *meta = cfg->meta;
int cnt;
- const int b_pos = (pos+1) >> meta->cnt_shift_b; //floor(pos/b_size) : the b count element preceding pos
+ const int b_pos = (pos+1) / meta->freq_cnt_b ; //floor(pos/b_size) : the b count element preceding pos
const uint16_t * occCnts_b = fm->occCnts_b;
const uint32_t * occCnts_sb = fm->occCnts_sb;
- const int sb_pos = (pos+1) >> meta->cnt_shift_sb; //floor(pos/sb_size) : the sb count element preceding pos
+ const int sb_pos = (pos+1) / meta->freq_cnt_sb; //floor(pos/sb_size) : the sb count element preceding pos
const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function
const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos
- const int up_b = b_rel_pos>>(meta->cnt_shift_b - 1); //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
- const int landmark = ((b_pos+up_b)<<(meta->cnt_shift_b)) - 1 ;
+ int up_b = 2*b_rel_pos/meta->freq_cnt_b; //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
+ int landmark = ((b_pos+up_b)*meta->freq_cnt_b) - 1 ;
+
+ if (landmark >= fm->N) { // special case: for a count in the final block, just count from the bottom
+ up_b = 0;
+ landmark = (b_pos*(meta->freq_cnt_b)) - 1 ;
+ }
+
+#if defined (p7_IMPL_SSE)
+
+
// get the cnt stored at the nearest checkpoint
cnt = FM_OCC_CNT(sb, sb_pos, c );
if (up_b)
cnt += FM_OCC_CNT(b, b_pos + 1, c ) ;
- else if ( b_pos != sb_pos * (1<<(meta->cnt_shift_sb - meta->cnt_shift_b)) )
+ else if ( b_pos != sb_pos * (meta->freq_cnt_sb / meta->freq_cnt_b) )
cnt += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount
-
if ( landmark < fm->N || landmark == -1 ) {
const uint8_t * BWT = fm->BWT;
@@ -221,7 +236,7 @@ fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
// Since I count from left or right, whichever is closer, this means
// we can support an occ_b interval of up to 4096 with guarantee of
// correctness.
- if (meta->alph_type == fm_DNA) {
+ if (meta->alph_type == fm_DNA ) {
if (!up_b) { // count forward, adding
for (i=1+floor(landmark/4.0) ; i+15<( (pos+1)/4); i+=16) { // keep running until i begins a run that shouldn't all be counted
@@ -233,28 +248,28 @@ fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
int remaining_cnt = pos + 1 - i*4 ;
if (remaining_cnt > 0) {
BWT_v = *(__m128i*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v);
+ FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
+ tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
+ FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v);
}
} else { // count backwards, subtracting
for (i=(landmark/4)-15 ; i>(pos/4); i-=16) {
BWT_v = *(__m128i*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v);
+ FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
+ FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v);
}
int remaining_cnt = 64 - (pos + 1 - i*4);
if (remaining_cnt > 0) {
BWT_v = *(__m128i*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v);
+ FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
+ tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
+ FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v);
}
}
-
- } else if ( meta->alph_type == fm_DNA_full) {
+/*
+ } else if ( meta->alph_type == fm_DNA_full ) {
if (!up_b) { // count forward, adding
for (i=1+floor(landmark/2.0) ; i+15<( (pos+1)/2); i+=16) { // keep running until i begins a run that shouldn't all be counted
@@ -287,8 +302,38 @@ fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
FM_COUNT_4BIT(tmp_v, tmp2_v, counts_v);
}
}
- } else {
- esl_fatal("Invalid alphabet type\n");
+*/
+ } else { //amino
+
+ if (!up_b) { // count forward, adding
+ for (i=1+landmark ; i+15<(pos+1); i+=16) { // keep running until i begins a run that shouldn't all be counted
+ BWT_v = *(__m128i*)(BWT+i);
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if matching, all zeros otherwise
+ counts_v = _mm_subs_epi8(counts_v, BWT_v); // adds 1 for each matching byte (subtracting negative 1)
+ }
+ int remaining_cnt = pos + 1 - i ;
+ if (remaining_cnt > 0) {
+ BWT_v = *(__m128i*)(BWT+i);
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v);
+ BWT_v = _mm_and_si128(BWT_v, *(cfg->fm_masks_v + remaining_cnt));// mask characters we don't want to count
+ counts_v = _mm_subs_epi8(counts_v, BWT_v);
+ }
+ } else { // count backwards, subtracting
+
+ for (i=landmark-15 ; i>pos; i-=16) {
+ BWT_v = *(__m128i*)(BWT+i);
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if matching, all zeros otherwise
+ counts_v = _mm_subs_epi8(counts_v, BWT_v); // adds 1 for each matching byte (subtracting negative 1)
+ }
+ int remaining_cnt = 16 - (pos + 1 - i);
+ if (remaining_cnt > 0) {
+ BWT_v = *(__m128i*)(BWT+i);
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v);
+ BWT_v = _mm_and_si128(BWT_v, *(cfg->fm_reverse_masks_v + remaining_cnt));// mask characters we don't want to count
+ //tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2));
+ counts_v = _mm_subs_epi8(counts_v, BWT_v);
+ }
+ }
}
counts_v = _mm_xor_si128(counts_v, cfg->fm_neg128_v); //counts are stored in signed bytes, base -128. Move them to unsigned bytes
@@ -301,6 +346,7 @@ fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
cnt--;
}
+#endif //#if defined (p7_IMPL_SSE)
return cnt ;
@@ -329,29 +375,28 @@ fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
*
*/
int
-fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt) {
-
- if (c == 0 && pos >= fm->term_loc)// < 'A'? cntlt depends on relationship of pos and the position where the '$' was replaced by 'A'
- *cntlt = 1;
- else
- *cntlt = 0;
+fm_getOccCountLT (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt) {
FM_METADATA *meta = cfg->meta;
int i,j;
-
- const int b_pos = (pos+1) >> meta->cnt_shift_b; //floor(pos/b_size) : the b count element preceding pos
const uint16_t * occCnts_b = fm->occCnts_b;
const uint32_t * occCnts_sb = fm->occCnts_sb;
- const int sb_pos = (pos+1) >> meta->cnt_shift_sb; //floor(pos/sb_size) : the sb count element preceding pos
+ const int b_pos = (pos+1) / meta->freq_cnt_b; //floor(pos/b_size) : the b count element preceding pos
+ const int sb_pos = (pos+1) / meta->freq_cnt_sb; //floor(pos/sb_size) : the sb count element preceding pos
+ const int b_rel_pos = (pos+1) % meta->freq_cnt_b; // how close is pos to the boundary corresponding to b_pos
+ int up_b = 2*b_rel_pos/meta->freq_cnt_b; //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
+ int landmark = ((b_pos+up_b)*(meta->freq_cnt_b)) - 1 ;
- const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function
- const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos
- const int up_b = b_rel_pos>>(meta->cnt_shift_b - 1); //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
- const int landmark = ((b_pos+up_b)<<(meta->cnt_shift_b)) - 1 ;
+
+ if (landmark >= fm->N) { // special case: for a count in the final block, just count from the bottom
+ up_b = 0;
+ landmark = (b_pos*(meta->freq_cnt_b)) - 1 ;
+ }
// get the cnt stored at the nearest checkpoint
+ *cntlt = 0;
*cnteq = FM_OCC_CNT(sb, sb_pos, c );
for (i=0; i<c; i++)
*cntlt += FM_OCC_CNT(sb, sb_pos, i );
@@ -360,20 +405,20 @@ fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *
*cnteq += FM_OCC_CNT(b, b_pos + 1, c ) ;
for (i=0; i<c; i++)
*cntlt += FM_OCC_CNT(b, b_pos + 1, i ) ;
- } else if ( b_pos != sb_pos * (1<<(meta->cnt_shift_sb - meta->cnt_shift_b)) ) {
+ } else if ( b_pos != sb_pos * (meta->freq_cnt_sb / meta->freq_cnt_b)) {
*cnteq += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount
for (i=0; i<c; i++)
*cntlt += FM_OCC_CNT(b, b_pos, i ) ;
}
+#if defined (p7_IMPL_SSE)
-
- if ( landmark < fm->N || landmark == -1 ) {
+ if ( landmark < fm->N - 1 || landmark == -1 ) {
const uint8_t * BWT = fm->BWT;
- register __m128i c_v;
+ register __m128i c_v = cfg->fm_zeros_v;
register __m128i BWT_v;
register __m128i tmp_v;
register __m128i tmp2_v;
@@ -383,7 +428,7 @@ fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *
// Since I count from left or right, whichever is closer, this means
// we can support an occ_b interval of up to 4096 with guarantee of
// correctness.
- if (meta->alph_type == fm_DNA) {
+ if (meta->alph_type == fm_DNA ) {
/* TODO: For 4-bit characters, it's easy to develop an alternative SSE function that will count
* instances <c in the same time as counting matches. I haven't yet identified a similar
@@ -454,7 +499,7 @@ fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *
FM_COUNT_2BIT(tmp_v, tmp2_v, counts_v_eq);
}
}
-
+/*
} else if ( meta->alph_type == fm_DNA_full) {
c_v = *(cfg->fm_chars_v + c);
@@ -506,35 +551,83 @@ fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *
}
}
- } else {
- esl_fatal("Invalid alphabet type\n");
+*/
+ } else { //amino
+ if (!up_b) { // count forward, adding
+ for (i=1+landmark ; i+15<(pos+1); i+=16) { // keep running until i begins a run that shouldn't all be counted
+ BWT_v = *(__m128i*)(BWT+i);
+ tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise
+ counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1)
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if eq, all zeros otherwise
+ counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v);
+ }
+ int remaining_cnt = pos + 1 - i ;
+ if (remaining_cnt > 0) {
+ BWT_v = *(__m128i*)(BWT+i);
+ tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise
+ tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_masks_v + remaining_cnt/4));
+ counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1)
+
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v);
+ BWT_v = _mm_and_si128(BWT_v, *(cfg->fm_masks_v + remaining_cnt/4));// mask characters we don't want to count
+ counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v);
+ }
+
+ } else { // count backwards, subtracting
+ for (i=landmark-15 ; i>pos; i-=16) {
+ BWT_v = *(__m128i*)(BWT+i);
+ tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise
+ counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1)
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v); // each byte is all 1s if eq, all zeros otherwise
+ counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v);
+ }
+
+ int remaining_cnt = 16 - (pos + 1 - i);
+ if (remaining_cnt > 0) {
+ BWT_v = *(__m128i*)(BWT+i);
+ tmp_v = _mm_cmplt_epi8(BWT_v, c_v); // each byte is all 1s if leq, all zeros otherwise
+ tmp_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/4));
+ counts_v_lt = _mm_subs_epi8(counts_v_lt, tmp_v); // adds 1 for each matching byte (subtracting negative 1)
+
+ BWT_v = _mm_cmpeq_epi8(BWT_v, c_v);
+ BWT_v = _mm_and_si128(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/4));// mask characters we don't want to count
+ //tmp2_v = _mm_and_si128(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2));
+ counts_v_eq = _mm_subs_epi8(counts_v_eq, BWT_v);
+ }
+ }
+
}
- counts_v_lt = _mm_xor_si128(counts_v_lt, cfg->fm_neg128_v); //counts are stored in signed bytes, base -128. Move them to unsigned bytes
- FM_GATHER_8BIT_COUNTS(counts_v_lt,counts_v_lt,counts_v_lt);
- (*cntlt) += ( up_b == 1 ? -1 : 1) * ( _mm_extract_epi16(counts_v_lt, 0) );
+ if (c>0) {
+ counts_v_lt = _mm_xor_si128(counts_v_lt, cfg->fm_neg128_v); //counts are stored in signed bytes, base -128. Move them to unsigned bytes
+ FM_GATHER_8BIT_COUNTS(counts_v_lt,counts_v_lt,counts_v_lt);
+ (*cntlt) += ( up_b == 1 ? -1 : 1) * ( _mm_extract_epi16(counts_v_lt, 0) );
+ }
counts_v_eq = _mm_xor_si128(counts_v_eq, cfg->fm_neg128_v);
FM_GATHER_8BIT_COUNTS(counts_v_eq,counts_v_eq,counts_v_eq);
(*cnteq) += ( up_b == 1 ? -1 : 1) * ( _mm_extract_epi16(counts_v_eq, 0) );
}
- if (c==0 && pos >= fm->term_loc) { // I overcounted 'A' by one, because '$' was replaced with an 'A'
- (*cnteq)--;
- }
+ if ( pos >= fm->term_loc) {
+ if (c == 0) { // deal with the fact that '$' was replaced with an 'A'
+ (*cnteq)--; // I overcounted 'A' by one
+ (*cntlt) = 1; // '$' is lexicographically lower than 'A', but I didn't count it in the method above
+ }
+ }
+#endif //#if defined (p7_IMPL_SSE)
return eslOK ;
}
-
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/fm_ssv.c b/hmmer/src/fm_ssv.c
new file mode 100644
index 0000000..3199a61
--- /dev/null
+++ b/hmmer/src/fm_ssv.c
@@ -0,0 +1,841 @@
+#include "p7_config.h"
+
+#include <string.h>
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_gumbel.h"
+#include "esl_sq.h"
+
+#include "hmmer.h"
+
+
+/* hit_sorter(): qsort's pawn, below */
+static int
+FM_hit_sorter(const void *a, const void *b)
+{
+// return 2 * (((FM_DIAG*)a)->sortkey > ((FM_DIAG*)b)->sortkey) - 1; // same as the test below
+ if ( ((FM_DIAG*)a)->sortkey > ((FM_DIAG*)b)->sortkey) return 1;
+ else return -1;
+}
+
+
+
+/* Function: FM_mergeSeeds()
+ *
+ * Synopsis: Given collection of seeds, sort and merge overlapping ones
+ *
+ * Returns: <eslOK> on success.
+ */
+static int
+FM_mergeSeeds(FM_DIAGLIST *seeds, int N, int ssv_length) {
+ int i;
+ int j = 0;
+
+ FM_DIAG next;
+ int tmp;
+ int next_is_complement;
+ int curr_is_complement;
+ int curr_n;
+ int curr_k;
+ int curr_len;
+ int curr_end;
+ int curr_diagval;
+
+ FM_DIAG *diags = seeds->diags;
+
+
+ if (seeds->count == 0)
+ return eslOK;
+
+ //sort, first by direction, then N (position on database sequence), then K (model position)
+ qsort(diags, seeds->count, sizeof(FM_DIAG), FM_hit_sorter);
+
+ next = diags[0];
+
+ curr_is_complement = (next.complementarity == p7_COMPLEMENT);
+ curr_n = next.n;
+ curr_k = next.k;
+ curr_len = next.length;
+ curr_end = curr_n + curr_len - 1;
+ curr_diagval = next.n - next.k;
+
+ for( i=1; i<seeds->count; i++) {
+
+ next = diags[i];
+ next_is_complement = (next.complementarity == p7_COMPLEMENT);
+
+ if ( next_is_complement == curr_is_complement //same direction
+ && ( next.n - next.k) == curr_diagval //overlapping diagonals will share the same value of (n - k)
+ && next.n + next.length < curr_n + curr_len + ssv_length //overlapping, or close to it
+ ) {
+
+
+ //overlapping diags; extend, if appropriate
+ tmp = next.n + next.length - 1;
+ if (tmp > curr_end) {
+ curr_end = tmp;
+ curr_len = curr_end - curr_n + 1;
+ }
+ } else {
+ //doesn't overlap current diagonal, so store current...
+ diags[j].n = curr_n;
+ diags[j].k = curr_k;
+ diags[j].length = curr_end - curr_n + 1;
+ diags[j].complementarity = curr_is_complement;
+ diags[j].score = 0.0;
+
+ // ... then start up a new one
+ curr_n = next.n;
+ curr_k = next.k;
+ curr_len = next.length;
+ curr_end = curr_n + curr_len - 1;
+ curr_diagval = next.n - next.k;
+ curr_is_complement = next_is_complement;
+
+ j++;
+ }
+ }
+ // store final entry
+ diags[j].n = curr_n;
+ diags[j].k = curr_k;
+ diags[j].length = curr_end - curr_n + 1;
+ diags[j].score = 0.0;
+ diags[j].complementarity = curr_is_complement;
+
+ seeds->count = j+1;
+
+ return eslOK;
+
+}
+
+
+ /* Function: FM_backtrackSeed()
+ *
+ * Synopsis: Find position(s) in the FM index for a diagonal that meets score threshold
+ *
+ * Details: Follows the BWT/FM-index until finding an entry of the implicit
+ * suffix array that is found in the sampled SA.
+
+ *
+ * Args: fmf - FM index for finding matches to the input sequence
+ * fm_cfg - FM-index meta data
+ * i - Single position in the BWT
+ *
+ * Returns: <eslOK> on success.
+ */
+static uint32_t
+FM_backtrackSeed(const FM_DATA *fmf, const FM_CFG *fm_cfg, int i) {
+ int j = i;
+ int len = 0;
+ int c;
+
+ while ( j != fmf->term_loc && (j % fm_cfg->meta->freq_SA)) { //go until we hit a position in the full SA that was sampled during FM index construction
+ c = fm_getChar( fm_cfg->meta->alph_type, j, fmf->BWT);
+ j = fm_getOccCount (fmf, fm_cfg, j-1, c);
+ j += abs(fmf->C[c]);
+ len++;
+ }
+
+ return len + (j==fmf->term_loc ? 0 : fmf->SA[ j / fm_cfg->meta->freq_SA ]) ; // len is how many backward steps we had to take to find a sampled SA position
+}
+
+/* Function: FM_getPassingDiags()
+ *
+ * Synopsis: Find position(s) in the FM index for a seed that meets score threshold, keep list
+ *
+ * Details: This step determines the location of each instance of the seed
+ * and creates a diagonal for that instance
+ *
+ * Args: fmf - FM index for finding matches to the input sequence
+ * fmb - FM index for finding matches to the reverse of the input sequence
+ * fm_cfg - FM-index meta data
+ * k - Position of the diagonal in the model
+ * M - Length of the model
+ * depth - Length of the diagonal
+ * fm_direction - which FM is in use for this diag
+ * model_direction - forward or reverse path over the model
+ * complementarity - top or bottom strand
+ * interval - FM-index interval
+ * seeds - RETURN: collection of threshold-passing windows
+ *
+ * Returns: <eslOK> on success.
+ */
+static int
+FM_getPassingDiags(const FM_DATA *fmf, const FM_CFG *fm_cfg,
+ int k, int M, float sc, int depth, int fm_direction,
+ int model_direction, int complementarity,
+ FM_INTERVAL *interval,
+ FM_DIAGLIST *seeds
+ )
+{
+ int i;
+ FM_DIAG *seed;
+
+ //iterate over the forward interval, for each entry backtrack until hitting a sampled suffix array entry
+ for (i = interval->lower; i<= interval->upper; i++) {
+
+ seed = fm_newSeed(seeds);
+ seed->k = k;
+ seed->length = depth;
+
+ if (complementarity == p7_NOCOMPLEMENT )
+ seed->n = fmf->N - FM_backtrackSeed(fmf, fm_cfg, i) - depth - 1;
+ else
+ seed->n = FM_backtrackSeed(fmf, fm_cfg, i) ;
+
+ seed->complementarity = complementarity;
+
+ /* seed->n corresponds to the start of the seed in terms of the
+ * target sequence, in a forward direction. seed->k holds the
+ * model position at the beginning of that seed. If model_direction
+ * is fm_reverse, the ->n value is from the beginning of the revcomp,
+ */
+ if (model_direction == fm_forward)
+ seed->k -= (depth - 1) ;
+
+
+ seed->sortkey = (int)( complementarity == p7_COMPLEMENT ? fmf->N + 1 : 0) // makes complement seeds cover a different score range than non-complements
+ + ((int)(seed->n) - (int)(seed->k) ) // unique diagonal within the complement/non-complement score range
+ + ((double)(seed->k)/(double)(M+1)) ; // fractional part, used to sort seeds sharing a diagonal
+
+
+ }
+
+ return eslOK;
+}
+
+/* Function: FM_Recurse()
+ *
+ * Synopsis: Recursively traverse/prune a string trie, testing all strings vs the model
+ *
+ * Details: This is the heart of the FM SSV method. Given a path P on the
+ * trie, we keep track of a compact list of all not-yet-pruned
+ * diagonals in the DP table of the string S corresponding to
+ * P against the model. The preserved diagonals might be for
+ * either a forward or backwards pass over the model and a pass
+ * over either the top or bottom (reverse complemented) strand
+ * of the target sequences.
+ *
+ * Args: depth - how long is the current path
+ * Kp - alphabet size (including ambiguity)
+ * fmf - FM index for finding matches to the input sequence
+ * fmb - FM index for finding matches to the reverse of the input sequence
+ * fm_cfg - FM-index meta data
+ * ssvdata - compact data required for computing SSV scores
+ * sc_threshFM - Score that a short diagonal must pass to warrant extension to a full diagonal
+ * dp_pairs - Compact representation of the surviving diagonals in the DP table
+ * first - The index of the first entry in dp_pairs for the current column of the DP table
+ * last - The index of the last entry in dp_pairs for the current column of the DP table
+ * interval_1 - FM-index interval - used for the standard backwards pass along the BWT (fmf)
+ * interval_2 - FM-index interval - used for the forward pass along the BWT (fmb)
+ * seeds - RETURN: collection of threshold-passing windows
+ * seq - preallocated char* used to capture and print the string for the current path - for debugging only
+ *
+ * Returns: <eslOK> on success.
+ */
+static int
+FM_Recurse( int depth, int Kp, int fm_direction,
+ const FM_DATA *fmf, const FM_DATA *fmb,
+ const FM_CFG *fm_cfg,
+ const P7_SCOREDATA *ssvdata, uint8_t *consensus,
+ float sc_threshFM,
+ FM_DP_PAIR *dp_pairs, int first, int last,
+ FM_INTERVAL *interval_1, FM_INTERVAL *interval_2,
+ FM_DIAGLIST *seeds
+// , char *seq
+ )
+{
+
+
+ float sc, next_score;
+
+ int c, i, k;
+ FM_INTERVAL interval_1_new, interval_2_new;
+ uint8_t positive_run = 0;
+ uint8_t consec_consensus = 0;
+ uint8_t cons_c = 0;
+
+ for (c=0; c< fm_cfg->meta->alph_size; c++) {//acgt
+ int dppos = last;
+ //seq[depth-1] = fm_cfg->meta->alph[c];
+ //seq[depth] = '\0';
+
+ for (i=first; i<=last; i++) { // for each surviving diagonal from the previous round
+
+ if (dp_pairs[i].model_direction == fm_forward)
+ k = dp_pairs[i].pos + 1;
+ else //fm_backward
+ k = dp_pairs[i].pos - 1;
+
+ if (dp_pairs[i].complementarity == p7_COMPLEMENT) {
+ next_score = ssvdata->ssv_scores_f[k*Kp + fm_cfg->meta->compl_alph[c]];
+ cons_c = fm_cfg->meta->compl_alph[consensus[k]];
+ } else {
+ next_score = ssvdata->ssv_scores_f[k*Kp + c];
+ cons_c = consensus[k];
+ }
+
+ sc = dp_pairs[i].score + next_score;
+ positive_run = (next_score > 0 ? dp_pairs[i].consec_pos + 1 : 0);
+ consec_consensus = (c == cons_c ? dp_pairs[i].consec_consensus+1 : 0);
+
+ if ( sc >= sc_threshFM
+ || (fm_cfg->consensus_match_req > 0 && consec_consensus == fm_cfg->consensus_match_req)
+ ) { // this is a seed I want to extend
+
+ interval_1_new.lower = interval_1->lower;
+ interval_1_new.upper = interval_1->upper;
+
+ if (fm_direction == fm_forward) {
+ if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
+ fm_updateIntervalReverse( fmf, fm_cfg, c, &interval_1_new);
+
+ if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) { //no use passing a non-existent string
+ FM_getPassingDiags(fmf, fm_cfg, k, ssvdata->M, sc, depth, fm_forward,
+ dp_pairs[i].model_direction, dp_pairs[i].complementarity,
+ &interval_1_new, seeds);
+ }
+ } else { // fm_direction == fm_reverse
+ //searching for forward matches on the FM-index
+ interval_2_new.lower = interval_2->lower;
+ interval_2_new.upper = interval_2->upper;
+
+ //searching for reverse matches on the FM-index
+ if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
+ fm_updateIntervalForward( fmb, fm_cfg, c, &interval_1_new, &interval_2_new);
+
+ if ( interval_2_new.lower >= 0 && interval_2_new.lower <= interval_2_new.upper ) { //no use passing a non-existent string
+ FM_getPassingDiags(fmf, fm_cfg, k, ssvdata->M, sc, depth, fm_backward,
+ dp_pairs[i].model_direction, dp_pairs[i].complementarity,
+ &interval_2_new, seeds);
+ }
+ }
+
+ } else if ( sc <= 0 //some other path in the string enumeration tree will do the job
+ || depth == fm_cfg->max_depth //can't extend anymore, 'cause we've reached the pruning length
+ || ( dp_pairs[i].model_direction == fm_forward && k == ssvdata->M) //can't extend anymore, 'cause we're at the end of the model, going forward
+ || ( dp_pairs[i].model_direction == fm_backward && k == 1 ) //can't extend anymore, 'cause we're at the beginning of the model, going backwards
+ || (depth == dp_pairs[i].score_peak_len + fm_cfg->drop_max_len) //too many consecutive positions with a negative total score contribution (sort of like Xdrop)
+ || (depth > 4 && depth > consec_consensus && (float)sc/(float)depth < fm_cfg->score_density_req) //score density is too low (don't bother checking in the first couple slots
+ || (depth >= 0.7*fm_cfg->max_depth && depth > consec_consensus && (float)sc/(float)depth < sc_threshFM/(float)(fm_cfg->max_depth)) // if we're most of the way across the sequence, and score density is too low, abort -- if the density on the other side is high enough, I'll find it on the reverse sweep
+ || (dp_pairs[i].max_consec_pos < fm_cfg->consec_pos_req && //a seed is expected to have at least one run of positive-scoring matches at least length consec_pos_req; if it hasn't, (see Tue Nov 23 09:39:54 EST 2010)
+ (fm_cfg->consec_pos_req - positive_run) == (fm_cfg->max_depth - depth + 1) // if we're close to the end of the sequence, abort -- if that end does have sufficiently long all-positive run, I'll find it on the reverse sweep
+ )
+ || (dp_pairs[i].model_direction == fm_forward &&
+ ( (depth > (fm_cfg->max_depth - 10)) && sc + ssvdata->opt_ext_fwd[k][fm_cfg->max_depth-depth-1] < sc_threshFM) //can't hit threshold, even with best possible forward extension up to length ssv_req
+ )
+ || (dp_pairs[i].model_direction == fm_backward &&
+ ( (depth > (fm_cfg->max_depth - 10)) && sc + ssvdata->opt_ext_rev[k-1][fm_cfg->max_depth-depth-1] < sc_threshFM ) //can't hit threshold, even with best possible extension up to length ssv_req
+ )
+
+ )
+ {
+
+ //do nothing - it's been pruned
+
+ } else { // it's possible to extend this diagonal and reach the threshold score
+
+ dppos++;
+
+ dp_pairs[dppos].pos = k;
+ dp_pairs[dppos].score = sc;
+ dp_pairs[dppos].model_direction = dp_pairs[i].model_direction;
+ dp_pairs[dppos].complementarity = dp_pairs[i].complementarity;
+
+ if (sc > dp_pairs[i].max_score) {
+ dp_pairs[dppos].max_score = sc;
+ dp_pairs[dppos].score_peak_len = depth;
+ } else {
+ dp_pairs[dppos].max_score = dp_pairs[i].max_score;
+ if (sc >= dp_pairs[i].max_score - fm_cfg->drop_lim)
+ dp_pairs[dppos].score_peak_len = depth; // close enough to call it a new peak
+ else
+ dp_pairs[dppos].score_peak_len = dp_pairs[i].score_peak_len;
+ }
+
+ dp_pairs[dppos].consec_pos = positive_run;
+ dp_pairs[dppos].max_consec_pos = ESL_MAX( positive_run, dp_pairs[i].max_consec_pos);
+ dp_pairs[dppos].consec_consensus = consec_consensus;
+ }
+ }
+
+ if ( dppos > last ){ // at least one diagonal that might reach threshold score, but hasn't yet, so extend
+
+ interval_1_new.lower = interval_1->lower;
+ interval_1_new.upper = interval_1->upper;
+
+ if (fm_direction == fm_forward) {
+
+ if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
+ fm_updateIntervalReverse( fmf, fm_cfg, c, &interval_1_new);
+
+ if ( interval_1_new.lower < 0 || interval_1_new.lower > interval_1_new.upper ) { //that string doesn't exist in fwd index
+ continue;
+ }
+ FM_Recurse(depth+1, Kp, fm_direction,
+ fmf, fmb, fm_cfg, ssvdata, consensus,
+ sc_threshFM, dp_pairs, last+1, dppos,
+ &interval_1_new, NULL,
+ seeds
+ //, seq
+ );
+
+
+ } else { // fm_direction == fm_reverse
+
+ interval_2_new.lower = interval_2->lower;
+ interval_2_new.upper = interval_2->upper;
+
+ if ( interval_1_new.lower >= 0 && interval_1_new.lower <= interval_1_new.upper ) //no use extending a non-existent string
+ fm_updateIntervalForward( fmb, fm_cfg, c, &interval_1_new, &interval_2_new);
+
+
+ if ( interval_1_new.lower < 0 || interval_1_new.lower > interval_1_new.upper ) { //that string doesn't exist in reverse index
+ continue;
+ }
+ FM_Recurse(depth+1, Kp, fm_direction,
+ fmf, fmb, fm_cfg, ssvdata, consensus,
+ sc_threshFM, dp_pairs, last+1, dppos,
+ &interval_1_new, &interval_2_new,
+ seeds
+ //, seq
+ );
+
+ }
+
+ }
+
+ }
+
+ return eslOK;
+}
+
+/* Function: FM_getSeeds()
+ *
+ * Synopsis: Find short diagonal seeds with score above a modest threshold.
+ *
+ * Details: Given FM configuration <fm_cfg>, model scoring data <ssvdata>,
+ * both forward and backward FM indexes (<fmf>, <fmb>), and
+ * a score threshold <sc_threshFM>, find all seeds in the FMs
+ * that meet the threshold, and place them in the container
+ * <seeds>.
+ *
+ * This involves building diagonals in both forward and reverse
+ * orientation relative to the model, because the pruning method
+ * includes a score density calculation - sometimes that density
+ * is only found on one end of the hit. This function merely
+ * kickstarts the task of traversing over a trie of all strings
+ * up to some fixed length looking for threshold-passing
+ * diagonals - FM_Recurse() does the hard work.
+ *
+ * Args: fmf - FM index for finding matches to the input sequence
+ * fmb - FM index for finding matches to the reverse of the input sequence
+ * fm_cfg - FM-index meta data
+ * ssvdata - compact data required for computing SSV scores
+ * Kp - Alphabet size (including ambiguity chars)
+ * sc_threshFM - Score that a short diagonal must pass to warrant extension to a full diagonal
+ * strands - p7_STRAND_TOPONLY | p7_STRAND_BOTTOMONLY | p7_STRAND_BOTH
+ * seeds - RETURN: collection of threshold-passing windows
+ *
+ * Returns: <eslOK> on success.
+ */
+static int FM_getSeeds ( const FM_DATA *fmf, const FM_DATA *fmb,
+ const FM_CFG *fm_cfg, const P7_SCOREDATA *ssvdata,
+ uint8_t *consensus, int Kp, float sc_threshFM,
+ int strands, FM_DIAGLIST *seeds
+ )
+{
+ FM_INTERVAL interval_f1, interval_f2, interval_bk;
+ int i, k;
+ int status;
+ float sc;
+ //char *seq;
+
+ FM_DP_PAIR *dp_pairs_fwd;
+ FM_DP_PAIR *dp_pairs_rev;
+
+ ESL_ALLOC(dp_pairs_fwd, ssvdata->M * fm_cfg->max_depth * sizeof(FM_DP_PAIR)); // guaranteed to be enough to hold all diagonals
+ ESL_ALLOC(dp_pairs_rev, ssvdata->M * fm_cfg->max_depth * sizeof(FM_DP_PAIR));
+
+ //ESL_ALLOC(seq, 50*sizeof(char));
+
+ for (i=0; i<fm_cfg->meta->alph_size; i++) {
+ int fwd_cnt=0;
+ int rev_cnt=0;
+ interval_f1.lower = interval_f2.lower = interval_bk.lower = fmf->C[i];
+ interval_f1.upper = interval_f2.upper = interval_bk.upper = abs(fmf->C[i+1])-1;
+
+ if (interval_f1.lower<0 ) //none of that character found
+ continue;
+
+ // This is here for debugging purposes only. Feel free to comment out.
+ //seq[0] = fm_cfg->meta->alph[i];
+ //seq[1] = '\0';
+
+ // Fill in a DP column for the character c, (compressed so that only positive-scoring entries are kept)
+ // There will be 4 DP columns for each character, (1) fwd-std, (2) fwd-complement, (3) rev-std, (4) rev-complement
+ for (k = 1; k <= ssvdata->M; k++) // there's no need to bother keeping an entry starting at the last position (gm->M)
+ {
+
+ if (strands != p7_STRAND_BOTTOMONLY) {
+ sc = ssvdata->ssv_scores_f[k*Kp + i];
+ if (sc>0) { // we'll extend any positive-scoring diagonal
+ /* fwd on model, fwd on FM (really, reverse on FM, but the FM is on a reversed string, so its fwd*/
+ if (k < ssvdata->M-3) { // don't bother starting a forward diagonal so close to the end of the model
+ //Forward pass on the FM-index
+ dp_pairs_fwd[fwd_cnt].pos = k;
+ dp_pairs_fwd[fwd_cnt].score = sc;
+ dp_pairs_fwd[fwd_cnt].max_score = sc;
+ dp_pairs_fwd[fwd_cnt].score_peak_len = 1;
+ dp_pairs_fwd[fwd_cnt].consec_pos = 1;
+ dp_pairs_fwd[fwd_cnt].max_consec_pos = 1;
+ dp_pairs_fwd[fwd_cnt].consec_consensus = (i==consensus[k] ? 1 : 0);
+ dp_pairs_fwd[fwd_cnt].complementarity = p7_NOCOMPLEMENT;
+ dp_pairs_fwd[fwd_cnt].model_direction = fm_forward;
+ fwd_cnt++;
+ }
+
+ /* rev on model, rev on FM (the FM is on the unreversed string)*/
+ if (k > 4) { // don't bother starting a reverse diagonal so close to the start of the model
+ dp_pairs_rev[rev_cnt].pos = k;
+ dp_pairs_rev[rev_cnt].score = sc;
+ dp_pairs_rev[rev_cnt].max_score = sc;
+ dp_pairs_rev[rev_cnt].score_peak_len = 1;
+ dp_pairs_rev[rev_cnt].consec_pos = 1;
+ dp_pairs_rev[rev_cnt].max_consec_pos = 1;
+ dp_pairs_rev[rev_cnt].consec_consensus = (i==consensus[k] ? 1: 0);
+ dp_pairs_rev[rev_cnt].complementarity = p7_NOCOMPLEMENT;
+ dp_pairs_rev[rev_cnt].model_direction = fm_backward;
+ rev_cnt++;
+ }
+ }
+ }
+
+
+ // Now do the reverse complement
+ if (strands != p7_STRAND_TOPONLY) {
+ sc = ssvdata->ssv_scores_f[k*Kp + fm_cfg->meta->compl_alph[i]];
+ if (sc>0) { // we'll extend any positive-scoring diagonal
+ /* rev on model, fwd on FM (really, reverse on FM, but the FM is on a reversed string, so its fwd*/
+ if (k > 4) { // don't bother starting a reverse diagonal so close to the start of the model
+ dp_pairs_fwd[fwd_cnt].pos = k;
+ dp_pairs_fwd[fwd_cnt].score = sc;
+ dp_pairs_fwd[fwd_cnt].max_score = sc;
+ dp_pairs_fwd[fwd_cnt].score_peak_len = 1;
+ dp_pairs_fwd[fwd_cnt].consec_pos = 1;
+ dp_pairs_fwd[fwd_cnt].max_consec_pos = 1;
+ dp_pairs_fwd[fwd_cnt].consec_consensus = (i==consensus[k] ? 1: 0);
+ dp_pairs_fwd[fwd_cnt].complementarity = p7_COMPLEMENT;
+ dp_pairs_fwd[fwd_cnt].model_direction = fm_backward;
+ fwd_cnt++;
+ }
+
+ /* fwd on model, rev on FM (the FM is on the unreversed string - complemented)*/
+ if (k < ssvdata->M-3) { // don't bother starting a forward diagonal so close to the end of the model
+ dp_pairs_rev[rev_cnt].pos = k;
+ dp_pairs_rev[rev_cnt].score = sc;
+ dp_pairs_rev[rev_cnt].max_score = sc;
+ dp_pairs_rev[rev_cnt].score_peak_len = 1;
+ dp_pairs_rev[rev_cnt].consec_pos = 1;
+ dp_pairs_rev[rev_cnt].max_consec_pos = 1;
+ dp_pairs_rev[rev_cnt].consec_consensus = (i==consensus[k] ? 1: 0);
+ dp_pairs_rev[rev_cnt].complementarity = p7_COMPLEMENT;
+ dp_pairs_rev[rev_cnt].model_direction = fm_forward;
+ rev_cnt++;
+ }
+
+ }
+ }
+ }
+
+
+ FM_Recurse ( 2, Kp, fm_forward,
+ fmf, fmb, fm_cfg, ssvdata, consensus,
+ sc_threshFM, dp_pairs_fwd, 0, fwd_cnt-1,
+ &interval_f1, NULL,
+ seeds
+ //, seq
+ );
+
+ FM_Recurse ( 2, Kp, fm_backward,
+ fmf, fmb, fm_cfg, ssvdata, consensus,
+ sc_threshFM, dp_pairs_rev, 0, rev_cnt-1,
+ &interval_bk, &interval_f2,
+ seeds
+ //, seq
+ );
+ }
+
+
+ //merge duplicates
+ FM_mergeSeeds(seeds, fmf->N, fm_cfg->ssv_length);
+
+ free (dp_pairs_fwd);
+ free (dp_pairs_rev);
+ //if (seq) free(seq);
+ return eslOK;
+
+ERROR:
+ return eslEMEM;
+
+}
+
+
+/* Function: FM_window_from_diag()
+ *
+ * Synopsis: Create a hit window, with sequence-based coordinates, from a diagonal
+ * holding FM-based coordinates
+ *
+ * Details: The submitted diagonal is in FM-based coordinates. Since a single
+ * FM index might be the concatenation of many sequences in the
+ * original, this needs to be converted to coordinates in the
+ * original sequence space (get sequence ID and positions). A diag
+ * might span multiple input strings, so it is broken up as
+ * necessary (usually, only one of these will pan out as a legit
+ * diagonal, but we'll let the next stage sort that out).
+ *
+ * Args: diag - The FM-based diagonal
+ * fm - Data for the FM-index.
+ * meta - FM metadata from the config
+ * windowlist - RETURN: collection of SSV-passing windows, with meta data required for downstream stages.
+ *
+ * Returns: <eslOK> on success.
+ */
+static int
+FM_window_from_diag (FM_DIAG *diag, const FM_DATA *fm, const FM_METADATA *meta, P7_HMM_WINDOWLIST *windowlist) {
+
+ // if diag->complementarity == p7_NOCOMPLEMENT, these positions are in context of FM->T
+ // otherwise, they're in context of revcomp(FM->T).
+
+ int status;
+ uint32_t seg_id;
+ uint64_t seg_pos;
+
+ status = fm_getOriginalPosition (fm, meta, 0, diag->length, diag->complementarity, diag->n, &seg_id, &seg_pos);
+
+ p7_hmmwindow_new(windowlist, seg_id, seg_pos, diag->n, diag->k+diag->length-1, diag->length, diag->score, diag->complementarity,
+ meta->seq_data[seg_id].length);
+
+ return eslOK;
+
+}
+
+
+/* Function: FM_extendSeed()
+ * Synopsis: Extend seed in both diagonal directions, capturing the score
+ *
+ * Details: Given a diagonal seed found using FM-index traversal (typically
+ * around length 16, with a modest score, but not necessarily enough
+ * to pass the SSV threshold), establish a window around that seed,
+ * and extend it to maximize score (with the constraint of not going
+ * through a long negative scoring stretch). Capture the score of
+ * this extended diagonal.
+ *
+ * Args: diag - The initial seed
+ * fm - Data for the FM-index (only need the forward FM from the
+ * calling function).
+ * ssvdata - Compact data required for computing MSV (SSV) scores
+ * cfg - FM-index meta data
+ * tmp_sq - Sequence object that this function uses for calculations.
+ * Must be pre-allocated.
+ *
+ * Returns: <eslOK> on success.
+ */
+static int
+FM_extendSeed(FM_DIAG *diag, const FM_DATA *fm, const P7_SCOREDATA *ssvdata, FM_CFG *cfg, ESL_SQ *tmp_sq)
+{
+
+ uint64_t k,n;
+ int32_t model_start, model_end;
+ int64_t target_start, target_end;
+ int64_t hit_start, max_hit_start, max_hit_end;
+ float sc;
+ float max_sc = 0.0;
+ int c;
+ // this will allow a diagonal to be extended at least 10 bases in each direction, an up to as much as required to allow a diag of length cfg->ssv_length
+ int extend = ESL_MAX(10, cfg->ssv_length - diag->length);
+
+ //this determines the start and end of the window that we think it's possible we'll extend to the window to (which determines the sequence we'll extract)
+ model_start = ESL_MAX ( 1, diag->k - extend + 1) ;
+ model_end = ESL_MIN( ssvdata->M, diag->k + diag->length + extend - 1 );
+ target_start = diag->n - (diag->k - model_start);
+ target_end = diag->n + (model_end - diag->k);
+
+ if (target_start < 0) {
+ model_start -= target_start;
+ target_start = 0;
+ }
+ if (target_end > fm->N-2) {
+ model_end -= target_end - (fm->N-2);
+ target_end = fm->N-2;
+ }
+
+ fm_convertRange2DSQ(fm, cfg->meta, target_start, target_end-target_start+1, diag->complementarity, tmp_sq, FALSE );
+
+
+ //This finds the highest-scoring sub-diag in the just-determined potential diagonal range.
+ k = model_start;
+ n = 1;
+ sc = 0.0;
+
+ hit_start = n;
+ for ( ; k <= model_end; k++, n++) {
+ c = tmp_sq->dsq[n];
+
+ sc += ssvdata->ssv_scores_f[k*tmp_sq->abc->Kp + c];
+
+ if (sc < 0) {
+ sc = 0;
+ hit_start = n+1;
+ } else if (sc > max_sc) {
+ max_sc = sc;
+ max_hit_start = hit_start;
+ max_hit_end = n;
+ }
+ }
+
+
+ diag->n = target_start + max_hit_start - 1;
+ diag->k = model_start + max_hit_start - 1;
+ diag->length = max_hit_end - max_hit_start + 1;
+ diag->score = max_sc;
+
+ return eslOK;
+}
+
+
+/* Function: p7_SSVFM_longlarget()
+ * Synopsis: Finds windows with SSV scores above given threshold, using FM-index
+ *
+ * Details: Uses FM-index to find high-scoring diagonals (seeds), then extends those
+ * seeds to maximal scoring diagonals (no gaps). Windows meeting the SSV
+ * scoring threshold (usually score s.t. p=0.02) are captured, and passed
+ * on to the Viterbi and Forward stages of the pipeline.
+ *
+ * Args: om - optimized profile
+ * nu - configuration: expected number of hits (use 2.0 as a default)
+ * bg - the background model, required for translating a P-value threshold into a score threshold
+ * F1 - p-value below which a window is captured as being above threshold
+ * fmf - data for forward traversal of the FM-index
+ * fmb - data for backward traversal of the FM-index
+ * fm_cfg - FM-index meta data
+ * ssvdata - compact data required for computing SSV scores
+ * strands - p7_STRAND_TOPONLY | p7_STRAND_BOTTOMONLY | p7_STRAND_BOTH
+ * windowlist - RETURN: collection of SSV-passing windows, with meta data required for downstream stages.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> if trouble allocating memory for seeds
+ */
+int
+p7_SSVFM_longlarget( P7_OPROFILE *om, float nu, P7_BG *bg, double F1,
+ const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_SCOREDATA *ssvdata,
+ int strands, P7_HMM_WINDOWLIST *windowlist)
+{
+ float sc_thresh, sc_threshFM;
+ float invP;
+ //, invP_FM;
+ float nullsc;
+
+ int i;
+
+ float tloop = logf((float) om->max_length / (float) (om->max_length+3));
+ float tloop_total = tloop * om->max_length;
+ float tmove = logf( 3.0f / (float) (om->max_length+3));
+ float tbmk = logf( 2.0f / ((float) om->M * (float) (om->M+1)));
+ float tec = logf(1.0f / nu);
+ FM_DIAG *diag;
+
+ ESL_SQ *tmp_sq;
+ uint8_t *consensus;
+
+
+ FM_DIAGLIST seeds;
+ int status;
+ status = fm_initSeeds(&seeds);
+ if (status != eslOK)
+ ESL_EXCEPTION(eslEMEM, "Error allocating memory for seed list\n");
+
+ /* convert the consensus to a collection of ints, so I can test for runs of identity to the consensus */
+ ESL_ALLOC(consensus, (om->M+1)*sizeof(uint8_t) );
+ for (i=1; i<=om->M; i++)
+ consensus[i] = om->abc->inmap[(int)(om->consensus[i])];
+
+
+ /* Set false target length. This is a conservative estimate of the length of window that'll
+ * soon be passed on to later phases of the pipeline; used to recover some bits of the score
+ * that we would miss if we left length parameters set to the full target length */
+ p7_oprofile_ReconfigMSVLength(om, om->max_length);
+ p7_bg_SetLength(bg, om->max_length);
+ p7_bg_NullOne (bg, NULL, om->max_length, &nullsc);
+
+ tmp_sq = esl_sq_CreateDigital(om->abc);
+
+ /*
+ * Computing the score required to let P meet the F1 prob threshold
+ * In original code, converting from an SSV score S (the score getting
+ * to state C) to a probability goes like this:
+ * S = XMX(L,p7G_C)
+ * usc = S + tmove + tloop_total
+ * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda)
+ * and XMX(C) was the diagonal score + tmove + tbmk + tec
+ * and we're computing the threshold score S, so reverse it:
+ * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda)
+ * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda)
+ * S = usc - tmove - tloop_total - tmove - tbmk - tec
+ *
+ *
+ * Here, I compute threshold with length model based on max_length. Usually, the
+ * length of a window returned by this scan will be 2*max_length-1 or longer. Doesn't
+ * really matter - in any case, both the bg and om models will change with roughly
+ * 1 bit for each doubling of the length model, so they offset.
+ */
+
+ invP = esl_gumbel_invsurv(F1, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
+ sc_thresh = (invP * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec);
+
+
+// invP_FM = esl_gumbel_invsurv(0.5, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
+// sc_threshFM = ESL_MAX(fm_cfg->scthreshFM, (invP_FM * eslCONST_LOG2) + nullsc - (tmove + tloop_total + tmove + tbmk + tec) ) ;
+ sc_threshFM = fm_cfg->scthreshFM * fm_cfg->sc_thresh_ratio;
+
+ //get diagonals that score above sc_threshFM
+ status = FM_getSeeds(fmf, fmb, fm_cfg, ssvdata, consensus, om->abc->Kp, sc_threshFM, strands, &seeds );
+ if (status != eslOK)
+ ESL_EXCEPTION(eslEMEM, "Error allocating memory for seed computation\n");
+
+ //now extend those diagonals to find ones scoring above sc_thresh
+ for(i=0; i<seeds.count; i++) {
+ FM_extendSeed( seeds.diags+i, fmf, ssvdata, fm_cfg, tmp_sq);
+ }
+
+ for(i=0; i<seeds.count; i++) {
+ diag = seeds.diags+i;
+ if (diag->score >= sc_thresh)
+ FM_window_from_diag(diag, fmf, fm_cfg->meta, windowlist );
+
+ }
+
+ esl_sq_Destroy(tmp_sq);
+
+ free(seeds.diags);
+ free(consensus);
+ return eslEOF;
+
+ERROR:
+ ESL_EXCEPTION(eslEMEM, "Error allocating memory for SSVFM longtarget\n");
+
+}
+/*------------------ end, FM_MSV() ------------------------*/
+
+
+/*****************************************************************
+ * HMMER - Biological sequence analysis with profile HMMs
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
+ * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ *
+ * HMMER is distributed under the terms of the GNU General Public License
+ * (GPLv3). See the LICENSE file for details.
+ *****************************************************************/
diff --git a/hmmer/src/generic_decoding.c b/hmmer/src/generic_decoding.c
index 6c2a128..8a41f6d 100644
--- a/hmmer/src/generic_decoding.c
+++ b/hmmer/src/generic_decoding.c
@@ -482,13 +482,13 @@ dump_matrix_csv(FILE *fp, P7_GMX *pp, int istart, int iend, int kstart, int kend
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/generic_decoding.c $
- * SVN $Id: generic_decoding.c 3816 2012-01-22 15:23:50Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/generic_fwdback.c b/hmmer/src/generic_fwdback.c
index 09f90dc..392a13b 100644
--- a/hmmer/src/generic_fwdback.c
+++ b/hmmer/src/generic_fwdback.c
@@ -828,13 +828,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/generic_fwdback.c $
- * SVN $Id: generic_fwdback.c 3776 2011-12-02 18:38:22Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/generic_fwdback_chk.c b/hmmer/src/generic_fwdback_chk.c
index 9f7787b..3f85f7b 100644
--- a/hmmer/src/generic_fwdback_chk.c
+++ b/hmmer/src/generic_fwdback_chk.c
@@ -841,8 +841,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/generic_msv.c b/hmmer/src/generic_msv.c
index f608477..5cc0451 100644
--- a/hmmer/src/generic_msv.c
+++ b/hmmer/src/generic_msv.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* SRE, Fri Aug 15 10:38:21 2008 [Janelia]
- * SVN $Id: generic_msv.c 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -165,7 +165,7 @@ p7_GMSV_longtarget(const ESL_DSQ *dsq, int L, P7_PROFILE *gm, P7_GMX *gx, float
float tloop_total = tloop * gm->max_length;
- int target_end;
+ //int target_end;
int target_start;
@@ -226,12 +226,12 @@ p7_GMSV_longtarget(const ESL_DSQ *dsq, int L, P7_PROFILE *gm, P7_GMX *gx, float
if (XMX(i,p7G_C) > sc_thresh)
{
target_start = ESL_MAX(1, i - gm->max_length + 1);
- target_end = ESL_MIN(L, i + gm->max_length - 1);
+ //target_end = ESL_MIN(L, i + gm->max_length - 1);
//TODO: this is wrong - it just pretends the hit was to the middle of the model, to get dummy to
// quit crashing. Results are definitely wrong.
// Need to get diagonal backtracking implemented in dummy
- p7_hmmwindow_new(windowlist, 0, target_start, 0, gm->M/2, 1, XMX(i,p7G_C), fm_nocomplement );
+ p7_hmmwindow_new(windowlist, 0, target_start, 0, gm->M/2, 1, XMX(i,p7G_C), p7_NOCOMPLEMENT, L);
//start the search all over again
@@ -574,8 +574,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/generic_null2.c b/hmmer/src/generic_null2.c
index 44de485..061e1c7 100644
--- a/hmmer/src/generic_null2.c
+++ b/hmmer/src/generic_null2.c
@@ -13,7 +13,7 @@
* to a separate file because it's so important.
*
* SRE, Thu Feb 28 09:51:27 2008 [Janelia]
- * SVN $Id: generic_null2.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -445,8 +445,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/generic_optacc.c b/hmmer/src/generic_optacc.c
index 8b7a69b..b457757 100644
--- a/hmmer/src/generic_optacc.c
+++ b/hmmer/src/generic_optacc.c
@@ -10,7 +10,7 @@
* 7. Copyright and license information
*
* SRE, Fri Feb 29 12:48:46 2008 [Janelia]
- * SVN $Id: generic_optacc.c 3788 2011-12-16 01:53:22Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -625,8 +625,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/generic_stotrace.c b/hmmer/src/generic_stotrace.c
index 30105d9..6951706 100644
--- a/hmmer/src/generic_stotrace.c
+++ b/hmmer/src/generic_stotrace.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* SRE, Fri Aug 15 10:50:55 2008 [Janelia]
- * SVN $Id: generic_stotrace.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -524,8 +524,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/generic_viterbi.c b/hmmer/src/generic_viterbi.c
index b504879..38fda8b 100644
--- a/hmmer/src/generic_viterbi.c
+++ b/hmmer/src/generic_viterbi.c
@@ -281,7 +281,7 @@ p7_GViterbi_longtarget(const ESL_DSQ *dsq, int L, const P7_PROFILE *gm, P7_GMX *
for (k = 1; k <= gm->M; k++) {
if (MMX(i,k) == XMX(i,p7G_E)) {
- p7_hmmwindow_new(windowlist, 0, i, 0, k, 1, 0.0, fm_nocomplement );
+ p7_hmmwindow_new(windowlist, 0, i, 0, k, 1, 0.0, p7_NOCOMPLEMENT, L);
}
MMX(i,0) = IMX(i,0) = DMX(i,0) = -eslINFINITY;
}
@@ -713,13 +713,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/generic_viterbi.c $
+ * SVN $URL$
* SVN $Id: generic_viterbi.c 3569 2011-06-16 16:16:13Z eddys $
*****************************************************************/
diff --git a/hmmer/src/generic_vtrace.c b/hmmer/src/generic_vtrace.c
index e5eded9..0970ceb 100644
--- a/hmmer/src/generic_vtrace.c
+++ b/hmmer/src/generic_vtrace.c
@@ -6,7 +6,7 @@
* 3. Copyright and license information.
*
* SRE, Fri Aug 15 09:17:11 2008 [Janelia]
- * SVN $Id: generic_vtrace.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -271,8 +271,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/h2_io.c b/hmmer/src/h2_io.c
index 887650d..2cdee59 100644
--- a/hmmer/src/h2_io.c
+++ b/hmmer/src/h2_io.c
@@ -243,13 +243,13 @@ printprob(FILE *fp, int fieldwidth, float p, float null)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: h2_io.c 3722 2011-10-24 17:23:02Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/h2_io.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/heatmap.c b/hmmer/src/heatmap.c
index ae25283..c60ec71 100644
--- a/hmmer/src/heatmap.c
+++ b/hmmer/src/heatmap.c
@@ -2,7 +2,7 @@
* evolving toward eventual inclusion in Easel
*
* SRE, Thu Jan 25 09:51:18 2007 [Janelia] [Elgar, Enigma Variations]
- * SVN $Id: heatmap.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
diff --git a/hmmer/src/hmmalign.c b/hmmer/src/hmmalign.c
index 580e566..0a122d7 100644
--- a/hmmer/src/hmmalign.c
+++ b/hmmer/src/hmmalign.c
@@ -1,5 +1,4 @@
/* hmmalign: align sequences to a profile HMM
- *
*/
#include "p7_config.h"
@@ -125,7 +124,7 @@ main(int argc, char **argv)
}
/* Determine output alignment file format */
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) cmdline_failure(argv[0], "%s is not a recognized output MSA file format\n", esl_opt_GetString(go, "--outformat"));
/* Open output stream */
@@ -202,7 +201,7 @@ main(int argc, char **argv)
p7_tracealign_Seqs(sq, tr, totseq, hmm->M, msaopts, hmm, &msa);
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
for (idx = 0; idx <= totseq; idx++) esl_sq_Destroy(sq[idx]); /* including sq[nseq] because we overallocated */
for (idx = 0; idx < totseq; idx++) p7_trace_Destroy(tr[idx]);
@@ -230,7 +229,7 @@ map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE
{
ESL_SQ **sq = NULL;
P7_TRACE **tr = NULL;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
ESL_ALPHABET *abc = (ESL_ALPHABET *) hmm->abc; /* removing const'ness to make compiler happy. Safe. */
int *matassign = NULL;
@@ -238,11 +237,11 @@ map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE
int i,k;
int status;
- status = eslx_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
- status = eslx_msafile_Read(afp, &msa);
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ status = esl_msafile_Read(afp, &msa);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (! (hmm->flags & p7H_CHKSUM) ) esl_fatal("HMM has no checksum. --mapali unreliable without it.");
if (! (hmm->flags & p7H_MAP) ) esl_fatal("HMM has no map. --mapali can't work without it.");
@@ -272,7 +271,7 @@ map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE
*ret_tr = tr;
*ret_sq = sq;
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_msa_Destroy(msa);
free(matassign);
return eslOK;
@@ -281,7 +280,7 @@ map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE
*ret_ntot = 0;
*ret_tr = NULL;
*ret_sq = NULL;
- if (afp != NULL) eslx_msafile_Close(afp);
+ if (afp != NULL) esl_msafile_Close(afp);
if (msa != NULL) esl_msa_Destroy(msa);
if (matassign != NULL) free(matassign);
return status;
@@ -292,13 +291,10 @@ map_alignment(const char *msafile, const P7_HMM *hmm, ESL_SQ ***ret_sq, P7_TRACE
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmalign.c $
- * SVN $Id: hmmalign.c 3619 2011-07-28 11:14:18Z eddys $
*****************************************************************/
diff --git a/hmmer/src/hmmbuild.c b/hmmer/src/hmmbuild.c
index 09c28ab..e13c3bb 100644
--- a/hmmer/src/hmmbuild.c
+++ b/hmmer/src/hmmbuild.c
@@ -45,7 +45,7 @@ typedef struct {
ESL_MSA *msa;
P7_HMM *hmm;
double entropy;
- int force_single; /* FALSE by default, TRUE if esl_opt_IsUsed(go, "--single") ; only matters for single sequences */
+ int force_single; /* FALSE by default, TRUE if esl_opt_IsUsed(go, "--singlemx") ; only matters for single sequences */
} WORK_ITEM;
typedef struct _pending_s {
@@ -60,7 +60,7 @@ typedef struct _pending_s {
#define ALPHOPTS "--amino,--dna,--rna" /* Exclusive options for alphabet choice */
#define CONOPTS "--fast,--hand" /* Exclusive options for model construction */
-#define EFFOPTS "--eent,--eclust,--eset,--enone" /* Exclusive options for effective sequence number calculation */
+#define EFFOPTS "--eent,--eentexp,--eclust,--eset,--enone" /* Exclusive options for effective sequence number calculation */
#define WGTOPTS "--wgsc,--wblosum,--wpb,--wnone,--wgiven" /* Exclusive options for relative weighting */
static ESL_OPTIONS options[] = {
@@ -88,21 +88,35 @@ static ESL_OPTIONS options[] = {
{ "--wid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--wblosum", NULL, "for --wblosum: set identity cutoff", 4 },
/* Alternative effective sequence weighting strategies */
{ "--eent", eslARG_NONE,"default",NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to achieve relative entropy target", 5 },
+ { "--eentexp", eslARG_NONE,"default",NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to reach rel. ent. target using exp scaling", 5 },
{ "--eclust", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "eff seq # is # of single linkage clusters", 5 },
{ "--enone", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "no effective seq # weighting: just use nseq", 5 },
{ "--eset", eslARG_REAL, NULL, NULL, NULL, EFFOPTS, NULL, NULL, "set eff seq # for all models to <x>", 5 },
- { "--ere", eslARG_REAL, NULL, NULL,"x>0", NULL, "--eent", NULL, "for --eent: set minimum rel entropy/position to <x>", 5 },
- { "--esigma", eslARG_REAL, "45.0", NULL,"x>0", NULL, "--eent", NULL, "for --eent: set sigma param to <x>", 5 },
+ { "--ere", eslARG_REAL, NULL, NULL,"x>0", NULL, NULL, NULL, "for --eent[exp]: set minimum rel entropy/position to <x>", 5 },
+ { "--esigma", eslARG_REAL, "45.0", NULL,"x>0", NULL, NULL, NULL, "for --eent[exp]: set sigma param to <x>", 5 },
{ "--eid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--eclust", NULL, "for --eclust: set fractional identity cutoff to <x>", 5 },
/* Alternative prior strategies */
{ "--pnone", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--plaplace", "don't use any prior; parameters are frequencies", 9 },
{ "--plaplace",eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--pnone", "use a Laplace +1 prior", 9 },
+ { "--popen", eslARG_REAL, NULL, NULL,"0<=x<0.5",NULL, NULL, "", "force gap open prob. (w/ --singlemx, aa default 0.02, nt 0.031)", 9 },
+ { "--pextend", eslARG_REAL, NULL, NULL, "0<=x<1", NULL, NULL, "", "force gap extend prob. (w/ --singlemx, aa default 0.4, nt 0.75)", 9 },
+
+ { "--tmm", eslARG_REAL,"2.0", NULL, NULL, NULL, NULL, NULL, "MM transition", 9 },
+ { "--tmi", eslARG_REAL,"0.1", NULL, NULL, NULL, NULL, NULL, "MI transition", 9 },
+ { "--tmd", eslARG_REAL,"0.1", NULL, NULL, NULL, NULL, NULL, "MD transition", 9 },
+
+ { "--tim", eslARG_REAL,"0.12", NULL, NULL, NULL, NULL, NULL, "IM transition", 9 },
+ { "--tii", eslARG_REAL,"0.4", NULL, NULL, NULL, NULL, NULL, "II transition", 9 },
+
+ { "--tdm", eslARG_REAL,"0.5", NULL, NULL, NULL, NULL, NULL, "DM transition", 9 },
+ { "--tdd", eslARG_REAL,"1.0", NULL, NULL, NULL, NULL, NULL, "DD transition", 9 },
+
+
+
/* Single sequence methods */
- { "--single", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "", "use substitution score matrix for single-sequence protein inputs", 10 },
- { "--popen", eslARG_REAL, "0.02", NULL,"0<=x<0.5",NULL, NULL, "", "gap open probability (with --single)", 10 },
- { "--pextend", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, "", "gap extend probability (with --single)", 10 },
- { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix (built-in matrices, with --single)", 10 },
- { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file <f> (with --single)", 10 },
+ { "--singlemx", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "", "use substitution score matrix for single-sequence inputs", 10 },
+ { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix (built-in matrices, with --singlemx)", 10 },
+ { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file <f> (with --singlemx)", 10 },
/* Control of E-value calibration */
{ "--EmL", eslARG_INT, "200", NULL,"n>0", NULL, NULL, NULL, "length of sequences for MSV Gumbel mu fit", 6 },
@@ -120,12 +134,18 @@ static ESL_OPTIONS options[] = {
#ifdef HAVE_MPI
{ "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "run as an MPI parallel program", 8 },
#endif
- { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for attaching debugger to process", 8 },
- { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input alifile is in format <s> (no autodetect)", 8 },
- { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 8 },
- { "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 8 },
- { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length ", 8 },
- { "--uniforminsert", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "learn uniform insert parameters (not position-specific)", 8 },
+ { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "arrest after start: for attaching debugger to process", 8 },
+ { "--informat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input alifile is in format <s> (no autodetect)", 8 },
+ { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 8 },
+ { "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 8 },
+ { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length ", 8 },
+ { "--maxinsertlen", eslARG_INT, NULL, NULL, "n>=5", NULL, NULL, NULL, "pretend all inserts are length <= <n>", 8 },
+
+ /* expert-only option (for now), hidden from view. May not keep. */
+ { "--seq_weights_r", eslARG_OUTFILE,FALSE, NULL, NULL, NULL, NULL, NULL, "write seq weights after relative seq weighting to file <f>", 99 },
+ { "--seq_weights_e", eslARG_OUTFILE,FALSE, NULL, NULL, NULL, NULL, NULL, "write seq weights after entropy weighting to file <f>", 99 },
+
+
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -140,7 +160,7 @@ struct cfg_s {
char *alifile; /* name of the alignment file we're building HMMs from */
int fmt; /* format code for alifile */
- ESLX_MSAFILE *afp; /* open alifile */
+ ESL_MSAFILE *afp; /* open alifile */
ESL_ALPHABET *abc; /* digital alphabet */
char *hmmName; /* hmm file name supplied from -n */
@@ -150,6 +170,12 @@ struct cfg_s {
char *postmsafile; /* optional file to resave annotated, modified MSAs to */
FILE *postmsafp; /* open <postmsafile>, or NULL */
+ char *seqweights_r_file; /* optional file to write sequence weights after relative seq weighting */
+ FILE *seqweights_r_fp; /* open <seqweights_r_file>, or NULL */
+
+ char *seqweights_e_file; /* optional file to write sequence weights after entropy weighting */
+ FILE *seqweights_e_fp; /* open <seqweights_e_file>, or NULL */
+
int nali; /* which # alignment this is in file (only valid in serial mode) */
int nnamed; /* number of alignments that had their own names */
@@ -173,7 +199,7 @@ static void pipeline_thread(void *arg);
#ifdef HAVE_MPI
static void mpi_master (const ESL_GETOPTS *go, struct cfg_s *cfg);
static void mpi_worker (const ESL_GETOPTS *go, struct cfg_s *cfg);
-static void mpi_init_open_failure(ESLX_MSAFILE *afp, int status);
+static void mpi_init_open_failure(ESL_MSAFILE *afp, int status);
static void mpi_init_other_failure(char *format, ...);
#endif
@@ -292,6 +318,7 @@ output_header(const ESL_GETOPTS *go, const struct cfg_s *cfg)
if (esl_opt_IsUsed(go, "--wnone") && fprintf(cfg->ofp, "# relative weighting scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--wid") && fprintf(cfg->ofp, "# frac id cutoff for BLOSUM wgts: %f\n", esl_opt_GetReal(go, "--wid")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--eent") && fprintf(cfg->ofp, "# effective seq number scheme: entropy weighting\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--eentexp") && fprintf(cfg->ofp, "# effective seq number scheme: entropy weighting using exponent-based scaling\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--eclust") && fprintf(cfg->ofp, "# effective seq number scheme: single linkage clusters\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--enone") && fprintf(cfg->ofp, "# effective seq number scheme: none\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--eset") && fprintf(cfg->ofp, "# effective seq number: set to %f\n", esl_opt_GetReal(go, "--eset")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -307,10 +334,13 @@ output_header(const ESL_GETOPTS *go, const struct cfg_s *cfg)
if (esl_opt_IsUsed(go, "--EfL") && fprintf(cfg->ofp, "# seq length for Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--EfN") && fprintf(cfg->ofp, "# seq number for Fwd exp tau fit: %d\n", esl_opt_GetInteger(go, "--EfN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--Eft") && fprintf(cfg->ofp, "# tail mass for Fwd exp tau fit: %f\n", esl_opt_GetReal(go, "--Eft")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--popen") && fprintf(cfg->ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--pextend") && fprintf(cfg->ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--mx") && fprintf(cfg->ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--mxfile") && fprintf(cfg->ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--singlemx") && fprintf(cfg->ofp, "# use score matrix for 1-seq MSAs: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--popen") && fprintf(cfg->ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--pextend") && fprintf(cfg->ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--mx") && fprintf(cfg->ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--mxfile") && fprintf(cfg->ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--maxinsertlen") && fprintf(cfg->ofp, "# max insert length: %d\n", esl_opt_GetInteger (go, "--maxinsertlen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
#ifdef HMMER_THREADS
if (esl_opt_IsUsed(go, "--cpu") && fprintf(cfg->ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -322,13 +352,44 @@ output_header(const ESL_GETOPTS *go, const struct cfg_s *cfg)
if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(cfg->ofp,"# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
else if ( fprintf(cfg->ofp,"# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
- if (esl_opt_IsUsed(go, "--w_beta") && fprintf(cfg->ofp, "# window length beta value: %g bits\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--w_beta") && fprintf(cfg->ofp, "# window length tail mass: %g bits\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--w_length") && fprintf(cfg->ofp, "# window length : %d\n", esl_opt_GetInteger(go, "--w_length"))< 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
if (fprintf(cfg->ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
return eslOK;
}
+void
+apply_fixed_gap_params(P7_HMM *hmm, double popen, double pextend){
+ int k;
+ for (k = 0; k <= hmm->M; k++)
+ {
+ if (popen != -1) {
+ hmm->t[k][p7H_MM] = 1.0 - 2 * popen;
+ hmm->t[k][p7H_MI] = popen;
+ hmm->t[k][p7H_MD] = popen;
+ }
+ if (pextend != -1) {
+ hmm->t[k][p7H_IM] = 1.0 - pextend;
+ hmm->t[k][p7H_II] = pextend;
+ hmm->t[k][p7H_DM] = 1.0 - pextend;
+ hmm->t[k][p7H_DD] = pextend;
+ }
+ }
+
+ /* Deal w/ special stuff at node M, overwriting a little of what we
+ * just did.
+ */
+ if (popen != -1) {
+ hmm->t[hmm->M][p7H_MM] = 1.0 - popen;
+ }
+ hmm->t[hmm->M][p7H_MD] = 0.;
+ hmm->t[hmm->M][p7H_DM] = 1.0;
+ hmm->t[hmm->M][p7H_DD] = 0.;
+
+}
+
int
main(int argc, char **argv)
{
@@ -356,7 +417,13 @@ main(int argc, char **argv)
cfg.abc = NULL;
cfg.hmmfp = NULL;
cfg.postmsafile = esl_opt_GetString(go, "-O"); /* NULL by default */
- cfg.postmsafp = NULL;
+ cfg.postmsafp = NULL;
+
+ cfg.seqweights_r_file = esl_opt_GetString(go, "--seq_weights_r"); /* NULL by default */
+ cfg.seqweights_r_fp = NULL;
+
+ cfg.seqweights_e_file = esl_opt_GetString(go, "--seq_weights_e"); /* NULL by default */
+ cfg.seqweights_e_fp = NULL;
cfg.nali = 0; /* this counter is incremented in masters */
cfg.nnamed = 0; /* 0 or 1 if a single MSA; == nali if multiple MSAs */
@@ -367,7 +434,7 @@ main(int argc, char **argv)
cfg.hmmName = esl_opt_GetString(go, "-n"); /* NULL by default */
if (esl_opt_IsOn(go, "--informat")) {
- cfg.fmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ cfg.fmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (cfg.fmt == eslMSAFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat"));
}
@@ -415,7 +482,7 @@ main(int argc, char **argv)
*/
if (cfg.my_rank == 0) {
if (esl_opt_IsOn(go, "-o")) { fclose(cfg.ofp); }
- if (cfg.afp) eslx_msafile_Close(cfg.afp);
+ if (cfg.afp) esl_msafile_Close(cfg.afp);
if (cfg.abc) esl_alphabet_Destroy(cfg.abc);
if (cfg.hmmfp) fclose(cfg.hmmfp);
}
@@ -460,8 +527,8 @@ usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
else if (esl_opt_GetBoolean(go, "--rna")) cfg->abc = esl_alphabet_Create(eslRNA);
else cfg->abc = NULL;
- status = eslx_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp));
- if (status != eslOK) eslx_msafile_OpenFailure(cfg->afp, status);
+ status = esl_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp));
+ if (status != eslOK) esl_msafile_OpenFailure(cfg->afp, status);
cfg->hmmfp = fopen(cfg->hmmfile, "w");
if (cfg->hmmfp == NULL) p7_Fail("Failed to open HMM file %s for writing", cfg->hmmfile);
@@ -476,10 +543,11 @@ usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
if (cfg->postmsafile)
{
cfg->postmsafp = fopen(cfg->postmsafile, "w");
- if (cfg->postmsafp == NULL) p7_Fail("Failed to MSA resave file %s for writing", cfg->postmsafile);
- }
+ if (cfg->postmsafp == NULL) p7_Fail("Failed to resave MSA file %s", cfg->postmsafile);
+ }
else cfg->postmsafp = NULL;
+
/* Looks like the i/o is set up successfully...
* Initial output to the user
*/
@@ -498,27 +566,88 @@ usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
}
#endif
+
+ if (cfg->seqweights_r_file)
+ {
+ if (ncpus != 0)
+ p7_Fail("--seq_weights_r flag only valid with --cpu=0", NULL);
+ cfg->seqweights_r_fp = fopen(cfg->seqweights_r_file, "w");
+ if (cfg->seqweights_r_fp == NULL) p7_Fail("Failed to write sequence weight (W) file %s", cfg->seqweights_r_file);
+ }
+ else cfg->seqweights_r_fp = NULL;
+
+ if (cfg->seqweights_e_file)
+ {
+ if (ncpus != 0)
+ p7_Fail("--seq_weights_e flag only valid with --cpu=0", NULL);
+ cfg->seqweights_e_fp = fopen(cfg->seqweights_e_file, "w");
+ if (cfg->seqweights_e_fp == NULL) p7_Fail("Failed to write sequence weight (W) file %s", cfg->seqweights_e_file);
+ }
+ else cfg->seqweights_e_fp = NULL;
+
+
+
infocnt = (ncpus == 0) ? 1 : ncpus;
ESL_ALLOC(info, sizeof(*info) * infocnt);
for (i = 0; i < infocnt; ++i)
- {
+ {
info[i].bg = p7_bg_Create(cfg->abc);
info[i].bld = p7_builder_Create(go, cfg->abc);
if (info[i].bld == NULL) p7_Fail("p7_builder_Create failed");
+
+
//do this here instead of in p7_builder_Create(), because it's an hmmbuild-specific option
- info[i].bld->do_uniform_insert = esl_opt_IsOn(go, "--uniforminsert");
+ if ( esl_opt_IsOn(go, "--maxinsertlen") )
+ info[i].bld->max_insert_len = esl_opt_GetInteger(go, "--maxinsertlen");
+
+ if( !esl_opt_GetBoolean(go, "--pnone") && !esl_opt_GetBoolean(go, "--plaplace") )
+ {
+ if (esl_opt_IsUsed(go, "--tmm")) info[i].bld->prior->tm->alpha[0][0] = esl_opt_GetReal(go, "--tmm"); // TMM
+ if (esl_opt_IsUsed(go, "--tmi")) info[i].bld->prior->tm->alpha[0][1] = esl_opt_GetReal(go, "--tmi"); // TMM
+ if (esl_opt_IsUsed(go, "--tmd")) info[i].bld->prior->tm->alpha[0][2] = esl_opt_GetReal(go, "--tmd"); // TMM
+
+ if (esl_opt_IsUsed(go, "--tim")) info[i].bld->prior->ti->alpha[0][0] = esl_opt_GetReal(go, "--tim"); // TMM
+ if (esl_opt_IsUsed(go, "--tii")) info[i].bld->prior->ti->alpha[0][1] = esl_opt_GetReal(go, "--tii"); // TMM
+
+ if (esl_opt_IsUsed(go, "--tdm")) info[i].bld->prior->td->alpha[0][0] = esl_opt_GetReal(go, "--tdm"); // TMM
+ if (esl_opt_IsUsed(go, "--tdd")) info[i].bld->prior->td->alpha[0][1] = esl_opt_GetReal(go, "--tdd"); // TMM
+
+ }
+
+
+
+ double popen;
+ double pextend;
+ if ( cfg->abc->type == eslDNA || cfg->abc->type == eslRNA ) {
+ //If user hasn't overridden defaults, assign the nucleotide defaults
+ popen = esl_opt_IsUsed(go, "--popen") ? esl_opt_GetReal(go, "--popen") : 0.03125;
+ pextend = esl_opt_IsUsed(go, "--pextend") ? esl_opt_GetReal(go, "--pextend") : 0.75;
+ } else {
+ //protein defaults
+ popen = esl_opt_IsUsed(go, "--popen") ? esl_opt_GetReal(go, "--popen") : 0.02;
+ pextend = esl_opt_IsUsed(go, "--pextend") ? esl_opt_GetReal(go, "--pextend") : 0.4;
+ }
/* Default matrix is stored in the --mx option, so it's always IsOn().
* Check --mxfile first; then go to the --mx option and the default.
*/
- if ( cfg->abc->type == eslAMINO && esl_opt_IsUsed(go, "--single")) {
- if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (info[i].bld, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), info[i].bg);
- else status = p7_builder_LoadScoreSystem(info[i].bld, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), info[i].bg);
+ if ( esl_opt_IsUsed(go, "--singlemx") ) {
+ char *mx = esl_opt_GetString(go, "--mx");
+
+ if ( cfg->abc->type == eslDNA || cfg->abc->type == eslRNA ) {
+ //If user hasn't overridden defaults, assign the nucleotide defaults
+ if ( !esl_opt_IsUsed(go, "--mx") ) mx = "DNA1";
+ }
+ if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (info[i].bld, esl_opt_GetString(go, "--mxfile"), NULL, popen, pextend, info[i].bg);
+ else status = p7_builder_LoadScoreSystem(info[i].bld, mx, popen, pextend, info[i].bg);
if (status != eslOK) p7_Fail("Failed to set single query seq score system:\n%s\n", info[i].bld->errbuf);
+ } else {
+ if (esl_opt_IsUsed(go, "--popen") ) info[i].bld->popen = popen;
+ if (esl_opt_IsUsed(go, "--pextend")) info[i].bld->pextend = pextend;
}
/* special arguments for hmmbuild */
@@ -530,11 +659,11 @@ usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
info[i].queue = queue;
if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
#endif
- }
+ }
#ifdef HMMER_THREADS
for (i = 0; i < ncpus * 2; ++i)
- {
+ {
ESL_ALLOC(item, sizeof(*item));
item->nali = 0;
@@ -546,7 +675,7 @@ usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
status = esl_workqueue_Init(queue, item);
if (status != eslOK) esl_fatal("Failed to add block to work queue");
- }
+ }
#endif
#ifdef HMMER_THREADS
@@ -557,22 +686,22 @@ usual_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
#endif
for (i = 0; i < infocnt; ++i)
- {
+ {
p7_bg_Destroy(info[i].bg);
p7_builder_Destroy(info[i].bld);
- }
+ }
#ifdef HMMER_THREADS
if (ncpus > 0)
- {
+ {
esl_workqueue_Reset(queue);
while (esl_workqueue_Remove(queue, (void **) &item) == eslOK)
- {
- free(item);
- }
+ {
+ free(item);
+ }
esl_workqueue_Destroy(queue);
esl_threads_Destroy(threadObj);
- }
+ }
#endif
free(info);
@@ -638,7 +767,7 @@ mpi_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
else if (esl_opt_GetBoolean(go, "--rna")) cfg->abc = esl_alphabet_Create(eslRNA);
else cfg->abc = NULL;
- status = eslx_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp));
+ status = esl_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp));
if (status != eslOK) mpi_init_open_failure(cfg->afp, status);
cfg->hmmfp = fopen(cfg->hmmfile, "w");
@@ -705,9 +834,9 @@ mpi_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
{
if (have_work)
{
- rstatus = eslx_msafile_Read(cfg->afp, &msa);
+ rstatus = esl_msafile_Read(cfg->afp, &msa);
if (rstatus == eslOK) { cfg->nali++; ESL_DPRINTF1(("MPI master read MSA %s\n", msa->name == NULL? "" : msa->name)); }
- else if (rstatus == eslEOF) { have_work = FALSE; ESL_DPRINTF1(("MPI master has run out of MSAs (having read %d)\n", cfg->nali)); }
+ else if (rstatus == eslEOF) { have_work = FALSE; rstatus = eslOK; ESL_DPRINTF1(("MPI master has run out of MSAs (having read %d)\n", cfg->nali)); }
else { have_work = FALSE; xstatus = rstatus; ESL_DPRINTF1(("MPI master msa read has failed... start to shut down\n")); }
}
@@ -785,17 +914,17 @@ mpi_master(const ESL_GETOPTS *go, struct cfg_s *cfg)
free(msalist);
p7_bg_Destroy(bg);
- if (rstatus != eslOK) { MPI_Finalize(); eslx_msafile_ReadFailure(cfg->afp, rstatus); }
+ if (rstatus != eslOK) { MPI_Finalize(); esl_msafile_ReadFailure(cfg->afp, rstatus); }
else if (xstatus != eslOK) { MPI_Finalize(); p7_Fail(errmsg); }
else return;
}
static void
-mpi_init_open_failure(ESLX_MSAFILE *afp, int status)
+mpi_init_open_failure(ESL_MSAFILE *afp, int status)
{
MPI_Bcast(&status, 1, MPI_INT, 0, MPI_COMM_WORLD);
MPI_Finalize();
- eslx_msafile_OpenFailure(afp, status);
+ esl_msafile_OpenFailure(afp, status);
}
static void
@@ -877,16 +1006,16 @@ mpi_worker(const ESL_GETOPTS *go, struct cfg_s *cfg)
/* Build the HMM */
ESL_DPRINTF2(("worker %d: has received MSA %s (%d columns, %d seqs)\n", cfg->my_rank, msa->name, msa->alen, msa->nseq));
- if ( msa->nseq > 1 || cfg->abc->type != eslAMINO || !esl_opt_IsUsed(go, "--single")) {
- if ((status = p7_Builder(bld, msa, bg, &hmm, NULL, NULL, NULL, postmsa_ptr)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; }
- } else {
- //for protein, single sequence, use blosum matrix:
+ if ( msa->nseq == 1 && esl_opt_IsUsed(go, "--singlemx")) {
+ //for, single sequence, use blosum matrix:
sq = esl_sq_CreateDigital(cfg->abc);
if ((status = esl_sq_FetchFromMSA(msa, 0, &sq)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; }
if ((status = p7_SingleBuilder(bld, sq, bg, &hmm, NULL, NULL, NULL)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; }
esl_sq_Destroy(sq);
sq = NULL;
hmm->eff_nseq = 1;
+ } else {
+ if ((status = p7_Builder(bld, msa, bg, &hmm, NULL, NULL, NULL, postmsa_ptr, NULL, NULL)) != eslOK) { strcpy(errmsg, bld->errbuf); goto ERROR; }
}
@@ -947,25 +1076,28 @@ serial_loop(WORKER_INFO *info, struct cfg_s *cfg, const ESL_GETOPTS *go)
double entropy;
cfg->nali = 0;
- while ((status = eslx_msafile_Read(cfg->afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(cfg->afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(cfg->afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(cfg->afp, status);
cfg->nali++;
if ((status = set_msa_name(cfg, errmsg, msa)) != eslOK) p7_Fail("%s\n", errmsg); /* cfg->nnamed gets incremented in this call */
/* bg new-HMM trarr gm om */
- if ( msa->nseq > 1 || cfg->abc->type != eslAMINO || !esl_opt_IsUsed(go, "--single")) {
- if ((status = p7_Builder(info->bld, msa, info->bg, &hmm, NULL, NULL, NULL, postmsa_ptr)) != eslOK) p7_Fail("build failed: %s", bld->errbuf);
- } else {
- //for protein, single sequence, use blosum matrix:
- sq = esl_sq_CreateDigital(cfg->abc);
+ if ( msa->nseq == 1 && esl_opt_IsUsed(go, "--singlemx")) {
if ((status = esl_sq_FetchFromMSA(msa, 0, &sq)) != eslOK) p7_Fail("build failed: %s", bld->errbuf);
if ((status = p7_SingleBuilder(info->bld, sq, info->bg, &hmm, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", bld->errbuf);
esl_sq_Destroy(sq);
sq = NULL;
hmm->eff_nseq = 1;
+ } else {
+ if ((status = p7_Builder(info->bld, msa, info->bg, &hmm, NULL, NULL, NULL, postmsa_ptr, cfg->seqweights_r_fp, cfg->seqweights_e_fp )) != eslOK) p7_Fail("build failed: %s", bld->errbuf);
+
+ //if not --singlemx, but the user set the popen/pextend flags, override the computed gap params now:
+ if (info->bld->popen != -1 || info->bld->pextend != -1) {
+ apply_fixed_gap_params(hmm, info->bld->popen, info->bld->pextend);
+ }
}
entropy = p7_MeanMatchRelativeEntropy(hmm, info->bg);
if ((status = output_result(cfg, errmsg, cfg->nali, msa, hmm, postmsa, entropy)) != eslOK) p7_Fail(errmsg);
@@ -1004,17 +1136,17 @@ thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, struct cfg_s *cfg, const ES
/* Main loop: */
item = (WORK_ITEM *) newItem;
while (sstatus == eslOK) {
- sstatus = eslx_msafile_Read(cfg->afp, &item->msa);
+ sstatus = esl_msafile_Read(cfg->afp, &item->msa);
if (sstatus == eslOK) {
item->nali = ++cfg->nali;
if (set_msa_name(cfg, errmsg, item->msa) != eslOK) p7_Fail("%s\n", errmsg);
}
else if (sstatus == eslEOF && processed < cfg->nali) sstatus = eslOK;
else if (sstatus != eslEOF)
- eslx_msafile_ReadFailure(cfg->afp, sstatus);
+ esl_msafile_ReadFailure(cfg->afp, sstatus);
if (sstatus == eslOK) {
- item->force_single = esl_opt_IsUsed(go, "--single");
+ item->force_single = esl_opt_IsUsed(go, "--singlemx");
status = esl_workqueue_ReaderUpdate(queue, item, &newItem);
if (status != eslOK) esl_fatal("Work queue reader failed");
@@ -1143,12 +1275,7 @@ pipeline_thread(void *arg)
while (item->msa != NULL)
{
- if ( item->msa->nseq > 1 || info->bg->abc->type != eslAMINO || !item->force_single) {
- status = p7_Builder(info->bld, item->msa, info->bg, &item->hmm, NULL, NULL, NULL, &item->postmsa);
- if (status != eslOK) p7_Fail("build failed: %s", info->bld->errbuf);
- } else {
- //for protein, single sequence, use blosum matrix:
- sq = esl_sq_CreateDigital(info->bg->abc);
+ if ( item->msa->nseq == 1 && item->force_single) {
status = esl_sq_FetchFromMSA(item->msa, 0, &sq);
if (status != eslOK) p7_Fail("build failed: %s", info->bld->errbuf);
@@ -1158,6 +1285,14 @@ pipeline_thread(void *arg)
esl_sq_Destroy(sq);
sq = NULL;
item->hmm->eff_nseq = 1;
+ } else {
+ status = p7_Builder(info->bld, item->msa, info->bg, &item->hmm, NULL, NULL, NULL, &item->postmsa, NULL, NULL);
+ if (status != eslOK) p7_Fail("build failed: %s", info->bld->errbuf);
+
+ //if not --singlemx, but the user set the popen/pextend flags, override the computed gap params now:
+ if (info->bld->popen != -1 || info->bld->pextend != -1) {
+ apply_fixed_gap_params(item->hmm, info->bld->popen, info->bld->pextend);
+ }
}
item->entropy = p7_MeanMatchRelativeEntropy(item->hmm, info->bg);
@@ -1190,30 +1325,47 @@ output_result(const struct cfg_s *cfg, char *errbuf, int msaidx, ESL_MSA *msa, P
* so we can keep the data and labels properly sync'ed.
*/
if (msa == NULL)
- {
+ {
+ if (cfg->abc->type == eslAMINO) {
+ if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %8s %6s %s\n", " idx", "name", "nseq", "alen", "mlen", "eff_nseq", "re/pos", "description") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
+ if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %8s %6s %s\n", "----", "--------------------", "-----", "-----", "-----", "--------", "------", "-----------") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
+ } else {
if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %5s %8s %6s %s\n", " idx", "name", "nseq", "alen", "mlen", "W", "eff_nseq", "re/pos", "description") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
if (fprintf(cfg->ofp, "#%4s %-20s %5s %5s %5s %5s %8s %6s %s\n", "----", "--------------------", "-----", "-----", "-----", "-----", "--------", "------", "-----------") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
- return eslOK;
}
-
+ return eslOK;
+ }
// if ((status = p7_hmm_Validate(hmm, errbuf, 0.0001)) != eslOK) return status;
if ((status = p7_hmmfile_WriteASCII(cfg->hmmfp, -1, hmm)) != eslOK) ESL_FAIL(status, errbuf, "HMM save failed");
-
+
/* # name nseq alen M max_length eff_nseq re/pos description */
- if (fprintf(cfg->ofp, "%-5d %-20s %5d %5" PRId64 " %5d %5d %8.2f %6.3f %s\n",
- msaidx,
- (msa->name != NULL) ? msa->name : "",
- msa->nseq,
- msa->alen,
- hmm->M,
- hmm->max_length,
- hmm->eff_nseq,
- entropy,
- (msa->desc != NULL) ? msa->desc : "") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
-
+ if (cfg->abc->type == eslAMINO) {
+ if (fprintf(cfg->ofp, "%-5d %-20s %5d %5" PRId64 " %5d %8.2f %6.3f %s\n",
+ msaidx,
+ (msa->name != NULL) ? msa->name : "",
+ msa->nseq,
+ msa->alen,
+ hmm->M,
+ hmm->eff_nseq,
+ entropy,
+ (msa->desc != NULL) ? msa->desc : "") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
+ } else {
+ if (fprintf(cfg->ofp, "%-5d %-20s %5d %5" PRId64 " %5d %5d %8.2f %6.3f %s\n",
+ msaidx,
+ (msa->name != NULL) ? msa->name : "",
+ msa->nseq,
+ msa->alen,
+ hmm->M,
+ hmm->max_length,
+ hmm->eff_nseq,
+ entropy,
+ (msa->desc != NULL) ? msa->desc : "") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "output_result: write failed");
+ }
+
if (cfg->postmsafp != NULL && postmsa != NULL) {
- eslx_msafile_Write(cfg->postmsafp, postmsa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(cfg->postmsafp, postmsa, eslMSAFILE_STOCKHOLM);
}
return eslOK;
@@ -1287,8 +1439,8 @@ set_msa_name(struct cfg_s *cfg, char *errbuf, ESL_MSA *msa)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/hmmc2.c b/hmmer/src/hmmc2.c
index 3d9fb14..a54f83e 100644
--- a/hmmer/src/hmmc2.c
+++ b/hmmer/src/hmmc2.c
@@ -14,10 +14,10 @@
#include <ctype.h>
#include <sys/socket.h>
-#include <arpa/inet.h>
#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h> /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
-#endif
+#include <netinet/in.h> /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
+#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */
+#include <arpa/inet.h>
#include "easel.h"
#include "esl_alphabet.h"
@@ -39,7 +39,8 @@
#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc"
static ESL_OPTIONS searchOpts[] = {
- /* Control of output */
+ /* name type default env range toggles reqs incomp help docgroup*/
+ /* Control of output */
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
@@ -82,8 +83,19 @@ static ESL_OPTIONS searchOpts[] = {
{ "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 },
{ "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 },
{ "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 },
- { "--seqdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--hmmdb", "protein database to search", 12 },
{ "--hmmdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--seqdb", "hmm database to search", 12 },
+ { "--seqdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--hmmdb", "protein database to search", 12 },
+ { "--seqdb_ranges",eslARG_STRING, NULL, NULL, NULL, NULL, "--seqdb", NULL, "range(s) of sequences within --seqdb that will be searched", 12 },
+
+ /* name type default env range toggles reqs incomp help docgroup*/
+ { "-c", eslARG_INT, "1", NULL, NULL, NULL, NULL, "--seqdb", "use alt genetic code of NCBI transl table <n>", 15 },
+ { "-l", eslARG_INT, "20", NULL, NULL, NULL, NULL, "--seqdb", "minimum ORF length", 15 },
+ { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-M,--seqdb", "ORFs must initiate with AUG only", 15 },
+ { "-M", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m,--seqdb", "ORFs must start with allowed initiation codon", 15 },
+ { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, "--seqdb", "specify that input file is in format <s>", 15 },
+ { "--watson", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqdb", "only translate top strand", 15 },
+ { "--crick", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--seqdb", "only translate bottom strand", 15 },
+
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -170,7 +182,7 @@ int main(int argc, char *argv[])
int size;
char *seq;
- char *opts;
+ char opts[MAX_READ_LEN];
int seqlen;
int ali;
@@ -243,11 +255,6 @@ int main(int argc, char *argv[])
exit(1);
}
- if ((opts = malloc(MAX_READ_LEN)) == NULL) {
- fprintf(stderr, "[%s:%d] malloc error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno));
- exit(1);
- }
-
/* set up a signal handler for broken pipes */
if (signal(SIGINT, sig_int) == SIG_ERR) {
fprintf(stderr, "[%s:%d] signal error %d - %s\n", __FILE__, __LINE__, errno, strerror(errno));
@@ -359,14 +366,11 @@ int main(int argc, char *argv[])
/* create a commandline string with dummy program name for
* the esl_opt_ProcessSpoof() function to parse.
*/
- strncpy(opts, "X ", MAX_READ_LEN);
- strncat(opts, s, MAX_READ_LEN);
- strncat(opts, "\n", MAX_READ_LEN);
- opts[MAX_READ_LEN-1] = 0;
+ snprintf(opts, sizeof(opts), "X %s\n", s);
if (esl_getopts_Reuse(go) != eslOK) p7_Die("Internal failure reusing options object");
if (esl_opt_ProcessSpoof(go, opts) != eslOK) {
- printf("Failed to parse options string: %s\n", go->errbuf);
+ printf("Failed to parse options string: %s\n", go->errbuf);
continue;
}
if (esl_opt_VerifyConfig(go) != eslOK) {
@@ -385,6 +389,7 @@ int main(int argc, char *argv[])
while (*ptr && isspace(*ptr)) ++ptr;
}
+
if (*ptr && strncmp(ptr, "//", 2) != 0) {
P7_HMM *hmm = NULL; /* query HMM */
// P7_HMMFILE *hfp = NULL; /* open input HMM file */
@@ -510,6 +515,19 @@ int main(int argc, char *argv[])
char *base;
P7_HIT *hit = th->unsrt + i;
+
+ /* Given the sequence header:
+ * >1 000101001 12343829483298 1234
+ * hmmpgmd hijacks the desc and acc fields to pass back domain
+ * architecture and taxonomy id information to the hmmer webserver.
+ * This means the fields are non-NULL, but don't point to real
+ * addresses, so will break any attempt to print non-NULL desc
+ * or acc fields. So we simply clear them out here
+ */
+ hit->desc = NULL;
+ hit->acc = NULL;
+
+
hit->dcl = (P7_DOMAIN *)(data + ((char *)hit->dcl - (char *)NULL));
/* the hit string pointers contain the length of the string including
@@ -538,6 +556,7 @@ int main(int argc, char *argv[])
if (ad->model != NULL) ad->model = base + (ad->model - (char *)NULL);
if (ad->mline != NULL) ad->mline = base + (ad->mline - (char *)NULL);
if (ad->aseq != NULL) ad->aseq = base + (ad->aseq - (char *)NULL);
+ if (ad->ntseq != NULL) ad->ntseq = base + (ad->ntseq - (char *)NULL);
if (ad->ppline != NULL) ad->ppline = base + (ad->ppline - (char *)NULL);
if (ad->hmmname != NULL) ad->hmmname = base + (ad->hmmname - (char *)NULL);
if (ad->hmmacc != NULL) ad->hmmacc = base + (ad->hmmacc - (char *)NULL);
@@ -548,13 +567,14 @@ int main(int argc, char *argv[])
ptr += sizeof(P7_ALIDISPLAY) + ad->memsize;
++dcl;
+
}
}
/* adjust the reported and included hits */
//th->is_sorted = FALSE;
//p7_tophits_Sort(th);
-
+
/* Print the results. */
if (scores) p7_tophits_Targets(stdout, th, pli, 120); fprintf(stdout, "\n\n");
if (ali) p7_tophits_Domains(stdout, th, pli, 120); fprintf(stdout, "\n\n");
@@ -576,12 +596,11 @@ int main(int argc, char *argv[])
if (abc) esl_alphabet_Destroy(abc);
if (hmm) p7_hmm_Destroy(hmm);
if (sq) esl_sq_Destroy(sq);
- }
+
+ }
}
free(seq);
- free(opts);
-
esl_getopts_Destroy(go);
esl_stopwatch_Destroy(w);
@@ -593,15 +612,15 @@ int main(int argc, char *argv[])
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: hmmc2.c 4314 2012-11-26 14:53:12Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmc2.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/hmmconvert.c b/hmmer/src/hmmconvert.c
index b4b1db9..c1e5b33 100644
--- a/hmmer/src/hmmconvert.c
+++ b/hmmer/src/hmmconvert.c
@@ -1,7 +1,7 @@
/* hmmconvert: converting profile HMM files to HMMER3 HMM format.
*
* SRE, Thu Oct 16 08:57:43 2008 [janelia] [Enigma MCMXC a.D.]
- * SVN $Id: hmmconvert.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -74,8 +74,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/hmmdmstr.c b/hmmer/src/hmmdmstr.c
index a2363dd..1e0a438 100644
--- a/hmmer/src/hmmdmstr.c
+++ b/hmmer/src/hmmdmstr.c
@@ -1,8 +1,8 @@
/* master side of the hmmpgmd daemon
*
* MSF, Thu Aug 12, 2010 [Janelia]
- * SVN $Id: hmmdmstr.c 4326 2012-12-05 19:02:25Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmdmstr.c $
+ * SVN $Id$
+ * SVN $URL$
*/
#include "p7_config.h"
@@ -18,8 +18,8 @@
#include <setjmp.h>
#include <sys/socket.h>
#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h> /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
-#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */
+#include <netinet/in.h> /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
+#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */
#include <arpa/inet.h>
#include <syslog.h>
#include <assert.h>
@@ -94,6 +94,8 @@ typedef struct {
int idle_cnt;
struct worker_s *idling;
+ RANGE_LIST *range_list; /* (optional) list of ranges searched within the seqdb */
+
int completed;
} WORKERSIDE_ARGS;
@@ -121,6 +123,7 @@ typedef struct worker_s {
struct worker_s *prev;
} WORKER_DATA;
+
static void setup_clientside_comm(ESL_GETOPTS *opts, CLIENTSIDE_ARGS *args);
static void setup_workerside_comm(ESL_GETOPTS *opts, WORKERSIDE_ARGS *args);
@@ -298,8 +301,10 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
int n;
int cnt;
int inx;
- int rem;
+ int ready_workers; /* counter variable used to track the number of workers currently available to receive work; short for "remaining", I imagine */
int tries;
+ int i;
+
memset(&results, 0, sizeof(SEARCH_RESULTS)); /* avoid valgrind bitching about uninit bytes; remove, if we ever serialize structs properly */
@@ -307,7 +312,6 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
esl_stopwatch_Start(w);
/* figure out the size of the database we are searching */
- inx = 0;
if (query->cmd_type == HMMD_CMD_SEARCH) {
cnt = args->seq_db->db[query->dbx].count;
} else {
@@ -315,8 +319,20 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
}
init_results(&results);
- tries = 0;
+ //if range(s) are given, count how many of the seqdb's sequences are within supplied range(s)
+ if (args->range_list) { // can only happen in HMMD_CMD_SEARCH case
+ int range_cnt = 0; // this will now count how many of the seqs in the db are within the range
+ for (i=0; i<cnt; i++) {
+ if ( hmmpgmd_IsWithinRanges(args->seq_db->list[i].idx, args->range_list ) )
+ range_cnt++;
+ }
+ cnt = range_cnt;
+ }
+
+
+ inx = 0;
+ tries = 0;
do {
/* process any changes to the available workers */
if ((n = pthread_mutex_lock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex lock", n);
@@ -326,10 +342,11 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
/* if there are no workers, report an error */
if (args->ready > 0) {
- rem = args->ready;
+ ready_workers = args->ready;
/* update the workers search information */
worker = args->head;
+
while (worker != NULL) {
worker->cmd = query->cmd;
worker->completed = 0;
@@ -337,12 +354,26 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
/* assign each worker a portion of the database */
worker->srch_inx = inx;
- worker->srch_cnt = cnt / rem;
-
- inx += worker->srch_cnt;
- cnt -= worker->srch_cnt;
- --rem;
+ if (args->range_list) {
+ // if ranges are given, need to split the db list based on which elements in the list are within the given range(s)
+ int goal = cnt / ready_workers; //how many within-range sequences do I want to ask this worker to handle
+ int curr = 0; //how many within-range sequences have I seen since the start of this full-db range
+ worker->srch_cnt = 0;
+ while (curr < goal) {
+ if ( hmmpgmd_IsWithinRanges (args->seq_db->list[inx].idx, args->range_list ) )
+ curr++;
+ worker->srch_cnt++;
+ inx++;
+ }
+ cnt -= curr;
+ } else {
+ // default - split evenly among workers
+ worker->srch_cnt = cnt / ready_workers;
+ inx += worker->srch_cnt;
+ cnt -= worker->srch_cnt;
+ }
+ --ready_workers;
worker = worker->next;
}
@@ -351,7 +382,7 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
/* notify all the worker threads of the new query */
if ((n = pthread_cond_broadcast(&args->start_cond)) != 0) LOG_FATAL_MSG("cond broadcast", n);
}
-
+
if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n);
if (args->ready > 0) {
@@ -377,6 +408,7 @@ process_search(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
} while (args->ready > 0 && results.errors == 1 && tries < 2);
+
esl_stopwatch_Stop(w);
/* copy the search stats */
@@ -514,7 +546,7 @@ process_load(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
if ( (status = p7_hmmcache_SetNumericNames(hmm_db)) != eslOK) goto ERROR;
- client_msg(query->sock, eslOK, "Loaded profile db %s; models: %d memory: %" PRId64 "\n",
+ client_msg(query->sock, eslOK, "Loaded profile db %s; models: %d memory: %" PRId64 "\n",
name, hmm_db->n, p7_hmmcache_Sizeof(hmm_db));
}
@@ -665,6 +697,7 @@ process_shutdown(WORKERSIDE_ARGS *args, QUEUE_DATA *query)
if ((n = pthread_mutex_unlock (&args->work_mutex)) != 0) LOG_FATAL_MSG("mutex unlock", n);
}
+
void
master_process(ESL_GETOPTS *go)
{
@@ -686,6 +719,7 @@ master_process(ESL_GETOPTS *go)
char *name = esl_opt_GetString(go, "--seqdb");
if ((status = p7_seqcache_Open(name, &seq_db, errbuf)) != eslOK)
p7_Fail("Failed to cache %s (%d)", name, status);
+
}
if (esl_opt_IsUsed(go, "--hmmdb")) {
@@ -703,6 +737,14 @@ master_process(ESL_GETOPTS *go)
name, hmm_db->n, (uint64_t) p7_hmmcache_Sizeof(hmm_db));
}
+ /* if stdout is redirected at the commandline, it causes printf's to be buffered,
+ * which means status logging isn't printed. This line strongly requests unbuffering,
+ * which should be ok, given the low stdout load of hmmpgmd
+ */
+ setvbuf (stdout, NULL, _IONBF, BUFSIZ);
+ printf("Data loaded into memory. Master is ready.\n");
+ setvbuf (stdout, NULL, _IOFBF, BUFSIZ);
+
/* initialize the search stack, set it up for interthread communication */
cmdstack = esl_stack_PCreate();
esl_stack_UseMutex(cmdstack);
@@ -741,6 +783,13 @@ master_process(ESL_GETOPTS *go)
printf("Processing command %d from %s\n", query->cmd_type, query->ip_addr);
fflush(stdout);
+ worker_comm.range_list = NULL;
+ if (esl_opt_IsUsed(query->opts, "--seqdb_ranges")) {
+ ESL_ALLOC(worker_comm.range_list, sizeof(RANGE_LIST));
+ hmmpgmd_GetRanges(worker_comm.range_list, esl_opt_GetString(query->opts, "--seqdb_ranges"));
+ }
+
+
switch(query->cmd_type) {
case HMMD_CMD_SEARCH: process_search(&worker_comm, query); break;
case HMMD_CMD_SCAN: process_search(&worker_comm, query); break;
@@ -770,7 +819,19 @@ master_process(ESL_GETOPTS *go)
pthread_cond_destroy(&worker_comm.start_cond);
pthread_cond_destroy(&worker_comm.complete_cond);
+
+ if (worker_comm.range_list) {
+ if (worker_comm.range_list->starts) free(worker_comm.range_list->starts);
+ if (worker_comm.range_list->ends) free(worker_comm.range_list->ends);
+ free (worker_comm.range_list);
+ }
+
return;
+
+
+ERROR:
+ p7_Fail("Memory allocation error. Code: %d\n", status);
+
}
static int
@@ -1250,7 +1311,7 @@ clientside_loop(CLIENTSIDE_ARGS *data)
char *ptr;
char *buffer;
- char *opt_str;
+ char opt_str[MAX_BUFFER];
int dbx;
int buf_size;
@@ -1273,10 +1334,10 @@ clientside_loop(CLIENTSIDE_ARGS *data)
time_t date;
char timestamp[32];
+ ESL_ALPHABET *abcDNA = NULL; /* DNA sequence alphabet */
+
buf_size = MAX_BUFFER;
if ((buffer = malloc(buf_size)) == NULL) LOG_FATAL_MSG("malloc", errno);
- if ((opt_str = malloc(MAX_BUFFER)) == NULL) LOG_FATAL_MSG("malloc", errno);
-
ptr = buffer;
remaining = buf_size;
amount = 0;
@@ -1329,7 +1390,6 @@ clientside_loop(CLIENTSIDE_ARGS *data)
if (*ptr == '!') {
process_ServerCmd(ptr, data);
free(buffer);
- free(opt_str);
return 0;
} else if (*ptr == '@') {
char *s = ++ptr;
@@ -1341,24 +1401,19 @@ clientside_loop(CLIENTSIDE_ARGS *data)
/* create a commandline string with dummy program name for
* the esl_opt_ProcessSpoof() function to parse.
*/
- strncpy(opt_str, "hmmpgmd ", MAX_BUFFER);
- strncat(opt_str, s, MAX_BUFFER);
- strncat(opt_str, "\n", MAX_BUFFER);
- opt_str[MAX_BUFFER-1] = 0;
+ snprintf(opt_str, sizeof(opt_str), "hmmpgmd %s\n", s);
/* skip remaining white spaces */
while (*ptr && isspace(*ptr)) ++ptr;
} else {
client_msg(data->sock_fd, eslEFORMAT, "Missing options string");
free(buffer);
- free(opt_str);
return 0;
}
if (strncmp(ptr, "//", 2) == 0) {
client_msg(data->sock_fd, eslEFORMAT, "Missing search sequence/hmm");
free(buffer);
- free(opt_str);
return 0;
}
@@ -1391,6 +1446,7 @@ clientside_loop(CLIENTSIDE_ARGS *data)
if (*ptr == '>') {
/* try to parse the input buffer as a FASTA sequence */
seq = esl_sq_CreateDigital(abc);
+ /* try to parse the input buffer as a FASTA sequence */
status = esl_sqio_Parse(ptr, strlen(ptr), seq, eslSQFILE_DAEMON);
if (status != eslOK) client_msg_longjmp(data->sock_fd, status, &jmp_env, "Error parsing FASTA sequence");
if (seq->n < 1) client_msg_longjmp(data->sock_fd, eslEFORMAT, &jmp_env, "Error zero length FASTA sequence");
@@ -1421,7 +1477,6 @@ clientside_loop(CLIENTSIDE_ARGS *data)
if (seq != NULL) esl_sq_Destroy(seq);
if (sco != NULL) esl_scorematrix_Destroy(sco);
- free(opt_str);
free(buffer);
return 0;
}
@@ -1542,10 +1597,10 @@ clientside_loop(CLIENTSIDE_ARGS *data)
esl_stack_PPush(cmdstack, parms);
free(buffer);
- free(opt_str);
return 0;
}
+
/* discard_function()
* function handed to esl_stack_DiscardSelected() to remove
* all commands in the stack that are associated with a
@@ -1835,7 +1890,7 @@ workerside_thread(void *arg)
WORKERSIDE_ARGS *parent = (WORKERSIDE_ARGS *)worker->parent;
HMMD_HEADER hdr;
int n;
- int fd;
+ int fd = 0;
int version;
int updated;
int status = eslOK;
@@ -1860,7 +1915,8 @@ workerside_thread(void *arg)
if (parent->seq_db != NULL) n += strlen(parent->seq_db->name) + 1;
if (parent->hmm_db != NULL) n += strlen(parent->hmm_db->name) + 1;
- if ((cmd = malloc(n)) == NULL) {
+ cmd = malloc(n);
+ if (cmd == NULL) {
p7_syslog(LOG_ERR,"[%s:%d] - malloc %d - %s\n", __FILE__, __LINE__, errno, strerror(errno));
goto EXIT;
}
@@ -2077,11 +2133,14 @@ setup_workerside_comm(ESL_GETOPTS *opts, WORKERSIDE_ARGS *args)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
+ *
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/hmmdutils.c b/hmmer/src/hmmdutils.c
index 7071531..68c8c6d 100644
--- a/hmmer/src/hmmdutils.c
+++ b/hmmer/src/hmmdutils.c
@@ -1,7 +1,7 @@
/* hmmpgmd: hmmer deamon searchs against a sequence database.
*
* MSF, Thu Aug 12, 2010 [Janelia]
- * SVN $Id: hmmdutils.c 4326 2012-12-05 19:02:25Z nawrockie $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -16,9 +16,6 @@
#include <pthread.h>
#include <setjmp.h>
#include <sys/socket.h>
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h> /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */
-#endif
#include <arpa/inet.h>
#include <syslog.h>
#include <assert.h>
@@ -34,6 +31,7 @@
#include "esl_sqio.h"
#include "esl_stopwatch.h"
#include "esl_threads.h"
+#include "esl_regexp.h"
#include "hmmer.h"
#include "hmmpgmd.h"
@@ -93,8 +91,21 @@ static ESL_OPTIONS searchOpts[] = {
{ "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 },
{ "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 },
{ "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 12 },
- { "--seqdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--hmmdb", "protein database to search", 12 },
- { "--hmmdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--seqdb", "hmm database to search", 12 },
+ { "--hmmdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--seqdb", "hmm database to search", 12 },
+ { "--seqdb", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, "--hmmdb", "protein database to search", 12 },
+ { "--seqdb_ranges",eslARG_STRING, NULL, NULL, NULL, NULL, "--seqdb", NULL, "range(s) of sequences within --seqdb that will be searched", 12 },
+
+ /* name type default env range toggles reqs incomp help docgroup*/
+ { "-c", eslARG_INT, "1", NULL, NULL, NULL, NULL, NULL, "use alt genetic code of NCBI transl table <n>", 99 },
+ { "-l", eslARG_INT, "20", NULL, NULL, NULL, NULL, NULL, "minimum ORF length", 99 },
+ { "-m", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-M", "ORFs must initiate with AUG only", 99 },
+ { "-M", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-m", "ORFs must start with allowed initiation codon", 99 },
+// { "-W", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use windowed, memory-efficient seq reading", 99 },
+ { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "specify that input file is in format <s>", 99 },
+ { "--watson", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only translate top strand", 99 },
+ { "--crick", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only translate bottom strand", 99 },
+
+
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -207,4 +218,72 @@ free_QueueData(QUEUE_DATA *data)
free(data);
}
+/* Function: hmmpgmd_IsWithinRanges()
+ * Synopsis: Test if the given id falls within one of a collection of ranges
+ *
+ * Purpose: Given an index <sq_idx> and a number <N> of ranges stored in two
+ * parallel arrays of start (<range_starts>) and end (<range_ends>)
+ * positions, return TRUE if sq_idx falls in one of the ranges.
+ * Otherwise return FALSE;
+ *
+ * Returns: <TRUE> if within range(s), otherwise <FALSE>
+ */
+int
+hmmpgmd_IsWithinRanges (int64_t sq_idx, RANGE_LIST *list ) {
+ int i;
+ for (i=0; i<list->N; i++) {
+ if (sq_idx >= list->starts[i] && sq_idx <= list->ends[i] )
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+/* Function: hmmpgmd_GetRanges()
+ * Synopsis: Parse command flag into range(s)
+ *
+ * Purpose: Given a command flag string <rangestr> of the form
+ * <start1>..<end1>,<start2>..<end2>...
+ * parse the string into a RANGE_LIST <list>
+ *
+ * Returns: <eslOK> on success <TRUE>, <eslEMEM> on memory allocation failure,
+ * otherwise <eslESYNTAX> or <eslFAIL> on parsing errors.
+ */
+int
+hmmpgmd_GetRanges (RANGE_LIST *list, char *rangestr) {
+ char *range;
+ char *rangestr_cpy;
+ char *rangestr_cpy_ptr;
+ int status;
+
+ list->N = 0;
+ list->starts = NULL;
+ list->ends = NULL;
+
+ //first pass to figure out how much to allocate
+ esl_strdup(rangestr, -1, &rangestr_cpy); // do this because esl_strtok modifies the string, and we shouldn't change the opts value
+ rangestr_cpy_ptr = rangestr_cpy; // do this because esl_strtok advances the pointer on the target string, but we need to free it
+ while ( (status = esl_strtok(&rangestr_cpy, ",", &range) ) == eslOK) list->N++;
+ ESL_ALLOC(list->starts, list->N * sizeof(int));
+ ESL_ALLOC(list->ends, list->N * sizeof(int));
+ free(rangestr_cpy_ptr);
+
+ //2nd pass to get the values
+ list->N = 0;
+ esl_strdup(rangestr, -1, &rangestr_cpy);
+ rangestr_cpy_ptr = rangestr_cpy;
+ while ( (status = esl_strtok(&rangestr_cpy, ",", &range) ) == eslOK) {
+ status = esl_regexp_ParseCoordString(range, list->starts + list->N, list->ends + list->N);
+ if (status == eslESYNTAX) esl_fatal("--seqdb_ranges takes coords <from>..<to>; %s not recognized", range);
+ if (status == eslFAIL) esl_fatal("Failed to find <from> or <to> coord in %s", range);
+ list->N++;
+ }
+ free(rangestr_cpy_ptr);
+
+ return eslOK;
+
+ERROR:
+ return eslEMEM;
+}
+
#endif /*HMMER_THREADS*/
diff --git a/hmmer/src/hmmdwrkr.c b/hmmer/src/hmmdwrkr.c
index ce842e6..3a5384f 100644
--- a/hmmer/src/hmmdwrkr.c
+++ b/hmmer/src/hmmdwrkr.c
@@ -14,8 +14,8 @@
#include <setjmp.h>
#include <sys/socket.h>
#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h> /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
-#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */
+#include <netinet/in.h> /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
+#endif /* On OpenBSD, netinet/in.h is required for (must precede) arpa/inet.h */
#include <arpa/inet.h>
#include <syslog.h>
#include <time.h>
@@ -60,6 +60,8 @@ typedef struct {
ESL_ALPHABET *abc; /* digital alphabet */
ESL_GETOPTS *opts; /* search specific options */
+ RANGE_LIST *range_list; /* (optional) list of ranges searched within the seqdb */
+
double elapsed; /* elapsed search time */
/* Structure created and populated by the individual threads.
@@ -78,14 +80,14 @@ typedef struct {
} WORKER_ENV;
static void process_InitCmd(HMMD_COMMAND *cmd, WORKER_ENV *env);
-static void process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env);
+static void process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env, QUEUE_DATA *query);
static void process_Shutdown(HMMD_COMMAND *cmd, WORKER_ENV *env);
static QUEUE_DATA *process_QueryCmd(HMMD_COMMAND *cmd, WORKER_ENV *env);
static int setup_masterside_comm(ESL_GETOPTS *opts);
-static void send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info);
+static void send_results(int fd, ESL_STOPWATCH *w, P7_TOPHITS *th, P7_PIPELINE *pli);
#define BLOCK_SIZE 1000
static void search_thread(void *arg);
@@ -144,7 +146,9 @@ worker_process(ESL_GETOPTS *go)
int shutdown = 0;
WORKER_ENV env;
int status;
-
+
+ QUEUE_DATA *query = NULL;
+
/* Initializations */
impl_Init();
p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */
@@ -160,10 +164,20 @@ worker_process(ESL_GETOPTS *go)
{
if ((status = read_Command(&cmd, &env)) != eslOK) break;
+
switch (cmd->hdr.command) {
case HMMD_CMD_INIT: process_InitCmd (cmd, &env); break;
- case HMMD_CMD_SCAN: process_SearchCmd(cmd, &env); break;
- case HMMD_CMD_SEARCH: process_SearchCmd(cmd, &env); break;
+ case HMMD_CMD_SCAN:
+ {
+ query = process_QueryCmd(cmd, &env);
+ process_SearchCmd(cmd, &env, query);
+ free_QueueData(query);
+ }
+ break;
+ case HMMD_CMD_SEARCH:
+ query = process_QueryCmd(cmd, &env);
+ process_SearchCmd(cmd, &env, query);
+ break;
case HMMD_CMD_SHUTDOWN: process_Shutdown (cmd, &env); shutdown = 1; break;
default: p7_syslog(LOG_ERR,"[%s:%d] - unknown command %d (%d)\n", __FILE__, __LINE__, cmd->hdr.command, cmd->hdr.length);
}
@@ -178,8 +192,9 @@ worker_process(ESL_GETOPTS *go)
return;
}
+
static void
-process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
+process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env, QUEUE_DATA *query)
{
int i;
int cnt;
@@ -192,7 +207,6 @@ process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
ESL_THREADS *threadObj = NULL;
pthread_mutex_t inx_mutex;
int current_index;
- QUEUE_DATA *query = NULL;
time_t date;
char timestamp[32];
@@ -208,9 +222,15 @@ process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
printf("\n%s", timestamp); /* note that ctime_r() leaves \n on end of timestamp */
/* initialize thread data */
- query = process_QueryCmd(cmd, env);
esl_stopwatch_Start(w);
+ info->range_list = NULL;
+ if (esl_opt_IsUsed(query->opts, "--seqdb_ranges")) {
+ ESL_ALLOC(info->range_list, sizeof(RANGE_LIST));
+ hmmpgmd_GetRanges(info->range_list, esl_opt_GetString(query->opts, "--seqdb_ranges"));
+ }
+
+
if (query->cmd_type == HMMD_CMD_SEARCH) threadObj = esl_threads_Create(&search_thread);
else threadObj = esl_threads_Create(&scan_thread);
@@ -219,10 +239,15 @@ process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
} else {
fprintf(stdout, "Search hmm %s [M=%d]", query->hmm->name, query->hmm->M);
}
- fprintf(stdout, " vs %s DB %d [%d - %d]\n",
+ fprintf(stdout, " vs %s DB %d [%d - %d]",
(query->cmd_type == HMMD_CMD_SEARCH) ? "SEQ" : "HMM",
query->dbx, query->inx, query->inx + query->cnt - 1);
+ if (info->range_list)
+ fprintf(stdout, " in range(s) %s", esl_opt_GetString(query->opts, "--seqdb_ranges"));
+
+ fprintf(stdout, "\n");
+
/* Create processing pipeline and hit list */
for (i = 0; i < env->ncpus; ++i) {
info[i].abc = query->abc;
@@ -230,6 +255,8 @@ process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
info[i].seq = query->seq;
info[i].opts = query->opts;
+ info[i].range_list = info[0].range_list;
+
info[i].th = NULL;
info[i].pli = NULL;
@@ -293,17 +320,22 @@ process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
}
print_timings(99, w->elapsed, info[0].pli);
- send_results(env->fd, w, info);
+ send_results(env->fd, w, info[0].th, info[0].pli);
/* free the last of the pipeline data */
p7_pipeline_Destroy(info->pli);
p7_tophits_Destroy(info->th);
- free_QueueData(query);
-
esl_threads_Destroy(threadObj);
pthread_mutex_destroy(&inx_mutex);
+
+ if (info->range_list) {
+ if (info->range_list->starts) free(info->range_list->starts);
+ if (info->range_list->ends) free(info->range_list->ends);
+ free (info->range_list);
+ }
+
free(info);
esl_stopwatch_Destroy(w);
@@ -315,7 +347,6 @@ process_SearchCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
LOG_FATAL_MSG("malloc", errno);
}
-
static QUEUE_DATA *
process_QueryCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
{
@@ -351,6 +382,7 @@ process_QueryCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
query->hmm = NULL;
query->seq = NULL;
+
query->abc = esl_alphabet_Create(eslAMINO);
/* check if we are processing a sequence or hmm */
@@ -484,8 +516,21 @@ process_InitCmd(HMMD_COMMAND *cmd, WORKER_ENV *env)
}
env->hmm_db = hcache;
+
+ printf("Loaded profile db %s; models: %d memory: %" PRId64 "\n",
+ p, hcache->n, (uint64_t) p7_hmmcache_Sizeof(hcache));
+
}
+ /* if stdout is redirected at the commandline, it causes printf's to be buffered,
+ * which means status logging isn't printed. This line strongly requests unbuffering,
+ * which should be ok, given the low stdout load of hmmpgmd
+ */
+ setvbuf (stdout, NULL, _IONBF, BUFSIZ);
+ printf("Data loaded into memory. Worker is ready.\n");
+ setvbuf (stdout, NULL, _IOFBF, BUFSIZ);
+
+
/* write back to the master that we are on line */
n = MSG_SIZE(cmd);
cmd->hdr.status = eslOK;
@@ -595,20 +640,20 @@ search_thread(void *arg)
/* Main loop: */
for (i = 0; i < count; ++i, ++sq) {
+ if ( !(info->range_list) || hmmpgmd_IsWithinRanges ((*sq)->idx, info->range_list)) {
+ dbsq.name = (*sq)->name;
+ dbsq.dsq = (*sq)->dsq;
+ dbsq.n = (*sq)->n;
+ dbsq.idx = (*sq)->idx;
+ if((*sq)->desc != NULL) dbsq.desc = (*sq)->desc;
- dbsq.name = (*sq)->name;
- dbsq.dsq = (*sq)->dsq;
- dbsq.n = (*sq)->n;
- dbsq.idx = (*sq)->idx;
- if((*sq)->desc != NULL) dbsq.desc = (*sq)->desc;
-
- //p7_pli_NewSeq(pli, &dbsq);
- p7_bg_SetLength(bg, dbsq.n);
- p7_oprofile_ReconfigLength(om, dbsq.n);
+ p7_bg_SetLength(bg, dbsq.n);
+ p7_oprofile_ReconfigLength(om, dbsq.n);
- p7_Pipeline(pli, om, bg, &dbsq, th);
+ p7_Pipeline(pli, om, bg, &dbsq, NULL, th);
- p7_pipeline_Reuse(pli);
+ p7_pipeline_Reuse(pli);
+ }
}
}
@@ -664,7 +709,6 @@ scan_thread(void *arg)
pli = p7_pipeline_Create(info->opts, 100, 100, FALSE, p7_SCAN_MODELS);
p7_pli_NewSeq(pli, info->seq);
- p7_bg_SetLength(bg, info->seq->n);
/* loop until all sequences have been processed */
count = 1;
@@ -696,9 +740,10 @@ scan_thread(void *arg)
/* Main loop: */
for (i = 0; i < count; ++i, ++om) {
p7_pli_NewModel(pli, *om, bg);
+ p7_bg_SetLength(bg, info->seq->n);
p7_oprofile_ReconfigLength(*om, info->seq->n);
- p7_Pipeline(pli, *om, bg, info->seq, th);
+ p7_Pipeline(pli, *om, bg, info->seq, NULL, th);
p7_pipeline_Reuse(pli);
}
}
@@ -721,8 +766,9 @@ scan_thread(void *arg)
return;
}
+
static void
-send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info)
+send_results(int fd, ESL_STOPWATCH *w, P7_TOPHITS *th, P7_PIPELINE *pli)
{
HMMD_SEARCH_STATS stats;
HMMD_SEARCH_STATUS status;
@@ -730,6 +776,8 @@ send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info)
P7_DOMAIN *dcl;
int i, j, n;
esl_pos_t offset;
+ char *pEnd; /* pointer used by strtol to locate the taxonomy id on the description line. */
+
memset(&status, 0, sizeof(HMMD_SEARCH_STATUS)); /* silence valgrind errors - zero out entire structure including its padding */
status.status = eslOK;
@@ -740,21 +788,21 @@ send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info)
stats.user = w->user;
stats.sys = w->sys;
- stats.nmodels = info->pli->nmodels;
- stats.nseqs = info->pli->nseqs;
- stats.n_past_msv = info->pli->n_past_msv;
- stats.n_past_bias = info->pli->n_past_bias;
- stats.n_past_vit = info->pli->n_past_vit;
- stats.n_past_fwd = info->pli->n_past_fwd;
+ stats.nmodels = pli->nmodels;
+ stats.nseqs = pli->nseqs;
+ stats.n_past_msv = pli->n_past_msv;
+ stats.n_past_bias = pli->n_past_bias;
+ stats.n_past_vit = pli->n_past_vit;
+ stats.n_past_fwd = pli->n_past_fwd;
- stats.Z = info->pli->Z;
- stats.domZ = info->pli->domZ;
- stats.Z_setby = info->pli->Z_setby;
- stats.domZ_setby = info->pli->domZ_setby;
+ stats.Z = pli->Z;
+ stats.domZ = pli->domZ;
+ stats.Z_setby = pli->Z_setby;
+ stats.domZ_setby = pli->domZ_setby;
- stats.nhits = info->th->N;
- stats.nreported = info->th->nreported;
- stats.nincluded = info->th->nincluded;
+ stats.nhits = th->N;
+ stats.nreported = th->nreported;
+ stats.nincluded = th->nincluded;
n = sizeof(P7_HIT) * stats.nhits;
@@ -765,23 +813,37 @@ send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info)
/* get the data in the right format before we send it */
for (i = 0; i < stats.nhits; ++i) {
P7_HIT *h1 = &hit[i];
- P7_HIT *h2 = &info->th->unsrt[i];
+ P7_HIT *h2 = &th->unsrt[i];
memcpy(h1, h2, sizeof(P7_HIT));
/* the name will be an integer value of the sequence index */
h1->name = (char *) strtol(h2->name, NULL, 10);
- h1->acc = NULL;
+// h1->acc = NULL;
/* We want to override the sequence description as a container
* for the domain architecture.
* We have already assigned the architecture when generating
* the sequence database, and comparing it to the latest version
* of Pfam. Copying the example above, convert the string to
- * a long and cast back to the a char. Nasty hack, but atleast
+ * a long and cast back to a char. Nasty hack, but at least
* then it gets written back out to the socket. rdf
*/
- if(h2->desc != NULL) h1->desc = (char *) strtol(h2->desc, NULL, 10);
+ //if(h2->desc != NULL) h1->desc = (char *) strtol(h2->desc, NULL, 10);
+ if (h2->desc != NULL) {
+ h1->desc = (char *) strtol(h2->desc, &pEnd, 10);
+ /* Given the sequence header:
+ * >1 000101001 12343829483298 1234
+ * This will grab the last value (1234) if present and place it in
+ * the acc entry as it is not being used by hmmpgmd. This is the same
+ * way that we hijacked the desc field to pass the architecture
+ * information back. Currently used to pass the taxonomy id to the
+ * hmmer website.
+ */
+ h1->acc = (char *) strtol(pEnd, &pEnd, 10);
+ }
+
+
h1->offset = offset;
/* figure out how big the domains are and their offset */
@@ -810,7 +872,7 @@ send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info)
/* loop through the hit list sending the domains */
for (i = 0; i < stats.nhits; ++i) {
char *base;
- P7_HIT *h2 = &info->th->unsrt[i];
+ P7_HIT *h2 = &th->unsrt[i];
dcl = h2->dcl;
@@ -834,6 +896,7 @@ send_results(int fd, ESL_STOPWATCH *w, WORKER_INFO *info)
if (ad->model != NULL) ad->model = base + (ad->model - ad->mem);
if (ad->mline != NULL) ad->mline = base + (ad->mline - ad->mem);
if (ad->aseq != NULL) ad->aseq = base + (ad->aseq - ad->mem);
+ if (ad->ntseq != NULL) ad->ntseq = base + (ad->ntseq - ad->mem);
if (ad->ppline != NULL) ad->ppline = base + (ad->ppline - ad->mem);
if (ad->hmmname != NULL) ad->hmmname = base + (ad->hmmname - ad->mem);
if (ad->hmmacc != NULL) ad->hmmacc = base + (ad->hmmacc - ad->mem);
@@ -903,11 +966,14 @@ setup_masterside_comm(ESL_GETOPTS *opts)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
+ *
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/hmmemit.c b/hmmer/src/hmmemit.c
index d0e60e3..28a8259 100644
--- a/hmmer/src/hmmemit.c
+++ b/hmmer/src/hmmemit.c
@@ -19,7 +19,7 @@
#include "hmmer.h"
-#define EMITOPTS "-a,-c,-C,-p,--simplerepeats"
+#define EMITOPTS "-a,-c,-C,-p"
#define MODEOPTS "--local,--unilocal,--glocal,--uniglocal"
static ESL_OPTIONS options[] = {
@@ -32,7 +32,6 @@ static ESL_OPTIONS options[] = {
{ "-c", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "emit simple majority-rule consensus sequence", 2 },
{ "-C", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "emit fancier consensus sequence (req's --minl, --minu)", 2 },
{ "-p", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "sample sequences from profile, not core model", 2 },
- { "--simplerepeats",eslARG_NONE,FALSE, NULL, NULL, NULL, NULL, EMITOPTS, "find locations with simple repeat signal", 2 },
/* options controlling emission from profiles with -p */
{ "-L", eslARG_INT, "400", NULL, NULL, NULL, "-p", NULL, "set expected length from profile to <n>", 3 },
{ "--local", eslARG_NONE,"default",NULL, NULL, MODEOPTS, "-p", NULL, "configure profile in multihit local mode", 3 },
@@ -57,7 +56,6 @@ static void emit_consensus(ESL_GETOPTS *go, FILE *ofp, int outfmt,
static void emit_fancycons(ESL_GETOPTS *go, FILE *ofp, int outfmt, P7_HMM *hmm);
static void emit_alignment(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM *hmm);
static void emit_sequences(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM *hmm);
-static void find_simplerepeats(ESL_GETOPTS *go, FILE *ofp, P7_HMM *hmm);
int
@@ -99,7 +97,7 @@ main(int argc, char **argv)
while ((status = p7_hmmfile_Read(hfp, &abc, &hmm)) != eslEOF)
{
- if (status == eslEFORMAT) esl_fatal("Bad file format in HMM file %s:\n:%s\n", hfp->fname, hfp->errbuf);
+ if (status == eslEFORMAT) esl_fatal("Bad file format in HMM file %s:\n%s\n", hfp->fname, hfp->errbuf);
else if (status == eslEINCOMPAT) esl_fatal("HMM in %s is not in the expected %s alphabet\n", hfp->fname, esl_abc_DecodeType(abc->type));
else if (status != eslOK) esl_fatal("Unexpected error in reading HMMs from %s\n", hfp->fname);
nhmms++;
@@ -107,7 +105,6 @@ main(int argc, char **argv)
if (esl_opt_GetBoolean(go, "-c")) emit_consensus(go, ofp, outfmt, hmm);
else if (esl_opt_GetBoolean(go, "-C")) emit_fancycons(go, ofp, outfmt, hmm);
else if (esl_opt_GetBoolean(go, "-a")) emit_alignment(go, ofp, outfmt, r, hmm);
- else if (esl_opt_IsOn(go, "--simplerepeats")) find_simplerepeats(go, ofp, hmm);
else emit_sequences(go, ofp, outfmt, r, hmm);
@@ -213,7 +210,7 @@ emit_alignment(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM
}
p7_tracealign_Seqs(sq, tr, N, hmm->M, optflags, hmm, &msa);
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
for (i = 0; i < N; i++) p7_trace_Destroy(tr[i]); free(tr);
for (i = 0; i < N; i++) esl_sq_Destroy(sq[i]); free(sq);
@@ -231,7 +228,7 @@ emit_sequences(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM
int do_profile = esl_opt_GetBoolean(go, "-p");
int N = esl_opt_GetInteger(go, "-N");
int L = esl_opt_GetInteger(go, "-L");
- int mode;
+ int mode = p7_LOCAL;
int nseq;
int status;
@@ -275,74 +272,12 @@ emit_sequences(ESL_GETOPTS *go, FILE *ofp, int outfmt, ESL_RANDOMNESS *r, P7_HMM
-/* repeat_sorter(): qsort's pawn, below */
-static int
-repeat_sorter(const void *vw1, const void *vw2)
-{
- P7_HMM_WINDOW *w1 = (P7_HMM_WINDOW*) vw1;
- P7_HMM_WINDOW *w2 = (P7_HMM_WINDOW*) vw2;
-
- if (w1->n > w2->n) return 1;
- else if (w1->n < w2->n) return -1;
- else return 0;
-}
-
-static void
-find_simplerepeats(ESL_GETOPTS *go, FILE *ofp, P7_HMM *hmm)
-{
- int i, j;
- int status;
- int max_repeat_len = 5;
- int min_repeat_cnt = 4;
- int min_rep_len = 25;
- int min_tot_len = 50;
- float relent_thresh = 1.5;
- P7_HMM_WINDOWLIST *windowlist;
- ESL_ALLOC(windowlist, sizeof(P7_HMM_WINDOWLIST));
- p7_hmmwindow_init(windowlist);
-
- p7_hmm_GetSimpleRepeats(hmm, max_repeat_len, min_repeat_cnt, min_rep_len, relent_thresh, windowlist);
-
- if (windowlist->count > 1) qsort(windowlist->windows, windowlist->count, sizeof(P7_HMM_WINDOW), repeat_sorter);
-
- //merge neighboring windows
- j = 0;
- for (i=1; i<windowlist->count; i++) {
- if (windowlist->windows[i].n < windowlist->windows[j].n + windowlist->windows[j].length + max_repeat_len ) {
- windowlist->windows[j].length = (windowlist->windows[i].n+windowlist->windows[i].length)-windowlist->windows[j].n;
- } else {
- j++;
- windowlist->windows[j].n = windowlist->windows[i].n;
- windowlist->windows[j].length = windowlist->windows[i].length;
- }
- }
- windowlist->count = j+1;
-
- //print repeat ranges, if sufficiently long
- fprintf(ofp, "Position ranges for simple repeats\n");
- for (i=0; i<windowlist->count; i++) {
- if (windowlist->windows[i].length >= min_tot_len) {
- fprintf(ofp, "%d .. %d\n",windowlist->windows[i].n - min_rep_len, windowlist->windows[i].n - min_rep_len + windowlist->windows[i].length - 1 );
- }
- }
-
-
-ERROR:
- if (windowlist != NULL) free(windowlist);
-
-}
-
-
-
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmemit.c $
- * SVN $Id: hmmemit.c 3474 2011-01-17 13:25:32Z eddys $
*****************************************************************/
diff --git a/hmmer/src/hmmer.c b/hmmer/src/hmmer.c
index 12c3c03..b31c43f 100644
--- a/hmmer/src/hmmer.c
+++ b/hmmer/src/hmmer.c
@@ -7,7 +7,7 @@
* 4. License and copyright
*
* SRE, Fri Jan 12 13:19:38 2007 [Janelia] [Franz Ferdinand, eponymous]
- * SVN $Id: hmmer.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -243,8 +243,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/hmmer.h b/hmmer/src/hmmer.h
index f83a170..9c4adf8 100644
--- a/hmmer/src/hmmer.h
+++ b/hmmer/src/hmmer.h
@@ -13,10 +13,9 @@
* 9. P7_ALIDISPLAY: an alignment formatted for printing
* 10. P7_DOMAINDEF: reusably managing workflow in annotating domains
* 11. P7_TOPHITS: ranking lists of top-scoring hits
- * 12. P7_MSVDATA: data used in diagonal recovery and extension
+ * 12. P7_SCOREDATA: data used in diagonal recovery and extension
* 13. P7_HMM_WINDOW: data used to track lists of sequence windows
- * 14. FM: FM-index
- * 15. Inclusion of the architecture-specific optimized implementation.
+ * 14. Inclusion of the architecture-specific optimized implementation.
* 16. P7_PIPELINE: H3's accelerated seq/profile comparison pipeline
* 17. P7_BUILDER: configuration options for new HMM construction.
* 18. Declaration of functions in HMMER's exposed API.
@@ -311,9 +310,6 @@ typedef struct p7_bg_s {
ESL_HMM *fhmm; /* bias filter: p7_bg_SetFilter() sets this, from model's mean composition */
float omega; /* the "prior" on null2/null3: set at initialization (one omega for both null types) */
- int use_null3; /* use null3 in addition to null2 ?*/
- int use_null3w; /* use windowed-null3 in addition to null2 ? (compatible with use_null3) */
- int null3_wlen; /* if use_null3w==TRUE, this is the width to be used by p7_null3_windowed_score()*/
const ESL_ALPHABET *abc; /* reference to alphabet in use: set at initialization */
} P7_BG;
@@ -587,8 +583,8 @@ typedef struct p7_alidisplay_s {
char *model; /* aligned query consensus sequence */
char *mline; /* "identities", conservation +'s, etc. */
char *aseq; /* aligned target sequence */
+ char *ntseq; /* nucleotide target sequence if nhmmscant */
char *ppline; /* posterior prob annotation; or NULL */
- char *appline; /* posterior prob of being aligned to the model (mocc) annotation; or NULL */
int N; /* length of strings */
char *hmmname; /* name of HMM */
@@ -603,8 +599,6 @@ typedef struct p7_alidisplay_s {
char *sqdesc; /* description of targ seq; or [0]='\0' */
long sqfrom; /* start position on sequence (1..L) */
long sqto; /* end position on sequence (1..L) */
- long hqfrom; /* start position on sequence (1..L) of trusted alignment (per APP) */
- long hqto; /* end position on sequence (1..L) of trusted alignment (per APP) */
long L; /* length of sequence */
int memsize; /* size of allocated block of memory */
@@ -619,7 +613,7 @@ typedef struct p7_alidisplay_s {
typedef struct p7_dom_s {
int ienv, jenv;
int iali, jali;
- int ihq, jhq; /* Stores the conservative boundaries based on APP (aligned posterior probability) */
+ int iorf, jorf; /*Used in translated search to capture the range in the DNA sequence of the ORF containing the match to a protein query */
float envsc; /* Forward score in envelope ienv..jenv; NATS; without null2 correction */
float domcorrection; /* null2 score when calculating a per-domain score; NATS */
float dombias; /* FLogsum(0, log(bg->omega) + domcorrection): null2 score contribution; NATS */
@@ -628,6 +622,7 @@ typedef struct p7_dom_s {
double lnP; /* log(P-value) of the bitscore */
int is_reported; /* TRUE if domain meets reporting thresholds */
int is_included; /* TRUE if domain meets inclusion thresholds */
+ float *scores_per_pos; /* score in BITS that each position in the alignment contributes to an overall viterbi score */
P7_ALIDISPLAY *ad;
} P7_DOMAIN;
@@ -668,12 +663,6 @@ typedef struct p7_domaindef_s {
float rt2; /* controls extent of regions. regions extended until mocc[i]-{b,e}occ[i] < dt2 */
float rt3; /* controls when regions are flagged for split: if expected # of E preceding B is >= dt3 */
- /* Heuristic thresholds for APP labeling (posterior probability of being aligned to a model, based on mocc */
- int show_app; /* default FALSE, if TRUE, the APP of an nhmmer 'domain' should be printed */
- float app_hi; /* default 0.95 */
- float app_med; /* default 0.85 */
- float app_lo; /* default 0.75 */
-
/* Heuristic thresholds that control the stochastic traceback/clustering process */
int nsamples; /* collect ensemble of this many stochastic traces */
float min_overlap; /* 0.8 means >= 80% overlap of (smaller/larger) segment to link, both in seq and hmm */
@@ -773,22 +762,34 @@ typedef struct p7_tophits_s {
/*****************************************************************
- * 12. P7_MSVDATA: data used in diagonal recovery and extension
+ * 12. P7_SCOREDATA: data used in diagonal recovery and extension
*****************************************************************/
+enum p7_scoredatatype_e {
+ p7_sd_std = 0,
+ p7_sd_fm = 1,
+};
+
+
/* This contains a compact representation of 8-bit bias-shifted scores for use in
- * diagonal recovery (standard [MS]SV) and extension (standard and FM-[MS]SV),
+ * diagonal recovery (standard SSV) and extension (standard and FM-SSV),
* along with MAXL-associated prefix- and suffix-lengths, and optimal extensions
- * for FM-MSV.
+ * for FM-SSV.
*/
-typedef struct p7_msvdata_s {
- int M;
- uint8_t *scores; //implicit (M+1)*K matrix, where M = # states, and K = # characters in alphabet
- uint8_t **opt_ext_fwd;
- uint8_t **opt_ext_rev;
+typedef struct p7_scoredata_s {
+ int type;
+ int M;
+ union {//implicit (M+1)*K matrix, where M = # states, and K = # characters in alphabet
+ uint8_t *ssv_scores; // this 2D array is used in the default nhmmer pipeline
+ float *ssv_scores_f; // this 2D array is used in the FM-index based pipeline
+ };
float *prefix_lengths;
float *suffix_lengths;
-} P7_MSVDATA;
+ float *fwd_scores;
+ float **fwd_transitions;
+ float **opt_ext_fwd; // Used only for FM-index based pipeline
+ float **opt_ext_rev; // Used only for FM-index based pipeline
+} P7_SCOREDATA;
/*****************************************************************
@@ -799,13 +800,14 @@ typedef struct p7_msvdata_s {
typedef struct p7_hmm_window_s {
float score;
float null_sc;
- int32_t id; //sequence id of the database sequence hit
- int32_t n; //position in database sequence at which the diagonal/window starts
- int32_t fm_n; //position in the concatenated fm-index sequence at which the diagonal starts
- int32_t length; // length of the diagonal/window
- int16_t k; //position of the model at which the diagonal ends
+ int32_t id; //sequence id of the database sequence hit
+ int64_t n; //position in database sequence at which the diagonal/window starts
+ int64_t fm_n; //position in the concatenated fm-index sequence at which the diagonal starts
+ int32_t length; // length of the diagonal/window
+ int16_t k; //position of the model at which the diagonal ends
+ int64_t target_len; //length of the target sequence
int8_t complementarity;
- int used_to_extend;
+ int8_t used_to_extend;
} P7_HMM_WINDOW;
typedef struct p7_hmm_window_list_s {
@@ -815,13 +817,23 @@ typedef struct p7_hmm_window_list_s {
} P7_HMM_WINDOWLIST;
+
/*****************************************************************
- * 14. FM: FM-index implementation (architecture-specific code found in impl_**)
+ * 14. The optimized implementation.
*****************************************************************/
-// fm.c
+#if defined (p7_IMPL_SSE)
+#include "impl_sse/impl_sse.h"
+#elif defined (p7_IMPL_VMX)
+#include "impl_vmx/impl_vmx.h"
+#else
+#include "impl_dummy/impl_dummy.h"
+#endif
-#define FM_MAX_LINE 256
+/*****************************************************************
+ * 15. The FM-index acceleration to the SSV filter. Only works for SSE
+ *****************************************************************/
+#define FM_MAX_LINE 256
/* Structure the 2D occ array into a single array. "type" is either b or sb.
* Note that one extra count value is required by RLE, one 4-byte int for
@@ -832,21 +844,19 @@ typedef struct p7_hmm_window_list_s {
enum fm_alphabettypes_e {
fm_DNA = 0, //acgt, 2 bit
- fm_DNA_full = 1, //includes ambiguity codes, 4 bit
- fm_RNA = 2, //acgu, 2 bit
- fm_RNA_full = 3, //includes ambiguity codes, 4 bit
+ //fm_DNA_full = 1, //includes ambiguity codes, 4 bit.
fm_AMINO = 4, // 5 bit
};
+/*TODO: fm_DNA_full has currently been disabled because of problems with how the
+ * FM index handles very long runs of the same character (in this case, Ns).
+ * See wheelert/notebook/2013/12-11-FM-alphabet-speed notes on 12/12.
+ */
enum fm_direction_e {
fm_forward = 0,
fm_backward = 1,
};
-enum fm_complementarity_e {
- fm_nocomplement = 0,
- fm_complement = 1,
-};
typedef struct fm_interval_s {
int lower;
@@ -854,7 +864,7 @@ typedef struct fm_interval_s {
} FM_INTERVAL;
typedef struct fm_hit_s {
- uint32_t start;
+ uint64_t start;
uint32_t block;
int direction;
int length;
@@ -862,11 +872,23 @@ typedef struct fm_hit_s {
} FM_HIT;
+
+typedef struct fm_ambiglist_s {
+ FM_INTERVAL *ranges;
+ uint32_t count;
+ uint32_t size;
+} FM_AMBIGLIST;
+
+
typedef struct fm_seqdata_s {
- uint32_t id;
- uint32_t start;
- uint32_t length;
- uint32_t offset;
+
+ uint32_t target_id; // Which sequence in the target database did this segment come from (can be multiple segment per sequence, if a sequence has Ns)
+ uint64_t target_start; // The position in sequence {id} in the target database at which this sequence-block starts (usually 1, unless its a long sequence split out over multiple FMs)
+ uint32_t fm_start; // The position in the FM block at which this sequence begins
+ uint32_t length; // Length of this sequence segment (usually the length of the target sequence, unless its a long sequence split out over multiple FMs)
+
+
+ //meta data taken from the sequence this segment was taken from
uint16_t name_length;
uint16_t source_length;
uint16_t acc_length;
@@ -886,31 +908,31 @@ typedef struct fm_metadata_s {
uint32_t freq_SA; //frequency with which SA is sampled
uint32_t freq_cnt_sb; //frequency with which full cumulative counts are captured
uint32_t freq_cnt_b; //frequency with which intermittent counts are captured
- uint8_t SA_shift;
- uint8_t cnt_shift_sb;
- uint8_t cnt_shift_b;
uint16_t block_count;
uint32_t seq_count;
uint64_t char_count; //total count of characters including those in and out of the alphabet
char *alph;
char *inv_alph;
- FILE *fp;
- FM_SEQDATA *seq_data;
+ int *compl_alph;
+ FILE *fp;
+ FM_SEQDATA *seq_data;
+ FM_AMBIGLIST *ambig_list;
} FM_METADATA;
-
typedef struct fm_data_s {
- uint32_t N; //length of text
+ uint64_t N; //length of text
uint32_t term_loc; // location in the BWT at which the '$' char is found (replaced in the sequence with 'a')
uint32_t seq_offset;
+ uint32_t ambig_offset;
+ uint32_t seq_cnt;
+ uint32_t ambig_cnt;
uint32_t overlap; // number of bases at the beginning that overlap the FM-index for the preceding block
- uint16_t seq_cnt;
uint8_t *T; //text corresponding to the BWT
uint8_t *BWT_mem;
uint8_t *BWT;
uint32_t *SA; // sampled suffix array
- int32_t *C; //the first position of each letter of the alphabet if all of T is sorted. (signed, as I use that to keep tract of presence/absence)
+ int64_t *C; //the first position of each letter of the alphabet if all of T is sorted. (signed, as I use that to keep tract of presence/absence)
uint32_t *occCnts_sb;
uint16_t *occCnts_b;
} FM_DATA;
@@ -919,17 +941,21 @@ typedef struct fm_dp_pair_s {
uint16_t pos; // position of the diagonal in the model.
float score;
float max_score;
- uint8_t max_score_len; // how long was the diagonal when the maximum observed score was seen?
+ uint8_t score_peak_len; // how long was the diagonal when the most recent peak (within fm_drop_lim of the max score) was seen?
uint8_t consec_pos;
uint8_t max_consec_pos;
+ uint8_t consec_consensus;
uint8_t model_direction;
uint8_t complementarity;
} FM_DP_PAIR;
typedef struct fm_diag_s {
- uint32_t n; //position of the database sequence at which the diagonal starts
- double sortkey;
+ uint64_t n; //position of the database sequence at which the diagonal starts
+ union {
+ double sortkey;
+ double score;
+ };
uint16_t k; //position of the model at which the diagonal starts
uint16_t length;
uint8_t complementarity;
@@ -941,18 +967,204 @@ typedef struct fm_diaglist_s {
int size;
} FM_DIAGLIST;
+/* Effectively global variables, to be initialized once in fm_initConfig(),
+ * then passed around among threads to avoid recomputing them
+ *
+ * When allocated, must be 16-byte aligned, and all _m128i elements
+ * must precede other types
+ */
+typedef struct {
+#if defined (p7_IMPL_SSE)
+ /* mask arrays, and 16-byte-offsets into them */
+ __m128i *fm_masks_mem;
+ __m128i *fm_masks_v;
+ __m128i *fm_reverse_masks_mem;
+ __m128i *fm_reverse_masks_v;
+ __m128i *fm_chars_mem;
+ __m128i *fm_chars_v;
+
+ /*various precomputed vectors*/
+ __m128i fm_allones_v;
+ __m128i fm_zeros_v;
+ __m128i fm_neg128_v;
+ __m128i fm_m0f; //00 00 11 11
+ __m128i fm_m01; //01 01 01 01
+ __m128i fm_m11; //00 00 00 11
+
+ /* no non-__m128i- elements above this line */
+#endif //#if defined (p7_IMPL_SSE)
+
+ /*counter, to compute FM-index speed*/
+ int occCallCnt;
+
+ /*bounding cutoffs*/
+ int max_depth;
+ float drop_lim; // 0.2 ; in seed, max drop in a run of length [fm_drop_max_len]
+ int drop_max_len; // 4 ; maximum run length with score under (max - [fm_drop_lim])
+ int consec_pos_req; //5
+ int consensus_match_req; //10
+ float score_density_req; //.5
+ int ssv_length;
+ float scthreshFM;
+ float sc_thresh_ratio; //information content deficit, actual_relent/target_relent
+
+ /*pointer to FM-index metadata*/
+ FM_METADATA *meta;
+
+} FM_CFG;
-/*****************************************************************
- * 15. The optimized implementation.
- *****************************************************************/
#if defined (p7_IMPL_SSE)
-#include "impl_sse/impl_sse.h"
-#elif defined (p7_IMPL_VMX)
-#include "impl_vmx/impl_vmx.h"
-#else
-#include "impl_dummy/impl_dummy.h"
-#endif
+//used to convert from a byte array to an __m128i
+typedef union {
+ uint8_t bytes[16];
+ __m128i m128;
+ } byte_m128;
+
+
+/* Gather the sum of all counts in a 16x8-bit element into a single 16-bit
+ * element of the register (the 0th element)
+ *
+ * the _mm_sad_epu8 accumulates 8-bit counts into 16-bit counts:
+ * left 8 counts (64-bits) accumulate in counts_v[0],
+ * right 8 counts in counts_v[4] (the other 6 16-bit ints are 0)
+ * the _mm_shuffle_epi32 flips the 4th int into the 0th slot
+ */
+#define FM_GATHER_8BIT_COUNTS( in_v, mid_v, out_v ) do {\
+ mid_v = _mm_sad_epu8 (in_v, cfg->fm_zeros_v);\
+ tmp_v = _mm_shuffle_epi32(mid_v, _MM_SHUFFLE(1, 1, 1, 2));\
+ out_v = _mm_add_epi16(mid_v, tmp_v);\
+ } while (0)
+
+
+/* Macro for SSE operations to turn 2-bit character values into 2-bit binary
+ * (00 or 01) match/mismatch values representing occurrences of a character in a
+ * 4-char-per-byte packed BWT.
+ *
+ * Typically followed by a call to FM_COUNT_SSE_4PACKED, possibly with a
+ * mask in between to handle the case where we don't want to add over all
+ * positions in the vector
+ *
+ * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values
+ * at the end
+ *
+ * xor(in_v, c_v) : each 2-bit value will be 00 if a match, and non-0 if a mismatch
+ * and(in_v, 01010101) : look at the right bit of each 2-bit value,
+ * srli(1)+and() : look at the left bit of each 2-bit value,
+ * or() : if either left bit or right bit is non-0, 01, else 00 (match is 00)
+ *
+ * subs() : invert, so match is 01, mismatch is 00
+ *
+ */
+#define FM_MATCH_2BIT(in_v, c_v, a_v, b_v, out_v) do {\
+ a_v = _mm_xor_si128(in_v, c_v);\
+ \
+ b_v = _mm_srli_epi16(a_v, 1);\
+ a_v = _mm_or_si128(a_v, b_v);\
+ b_v = _mm_and_si128(a_v, cfg->fm_m01);\
+ \
+ out_v = _mm_subs_epi8(cfg->fm_m01,b_v);\
+ } while (0)
+
+
+/*Macro for SSE operations to count bits produced by FM_MATCH_SSE_4PACKED
+ *
+ * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values
+ * at the end
+ *
+ * then add up the 2-bit values:
+ * srli(4)+add() : left 4 bits shifted right, added to right 4 bits
+ *
+ * srli(2)+and(00000011) : left 2 bits (value 0..2) shifted right, masked, so no other bits active
+ * and(00000011) : right 2 bits (value 0..2) masked so no other bits active
+ *
+ * final 2 add()s : tack current counts on to already-tabulated counts.
+ */
+#define FM_COUNT_2BIT(a_v, b_v, cnts_v) do {\
+ b_v = _mm_srli_epi16(a_v, 4);\
+ a_v = _mm_add_epi16(a_v, b_v);\
+ \
+ b_v = _mm_srli_epi16(a_v, 2);\
+ a_v = _mm_and_si128(a_v,cfg->fm_m11);\
+ b_v = _mm_and_si128(b_v,cfg->fm_m11);\
+ \
+ cnts_v = _mm_add_epi16(cnts_v, a_v);\
+ cnts_v = _mm_add_epi16(cnts_v, b_v);\
+ } while (0)
+
+
+
+/* Macro for SSE operations that turns a vector of 4-bit character values into
+ * 2 vectors representing matches. Each byte in the input vector consists of
+ * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce
+ * one vector, which contains all-1s for bytes in which the left half matches
+ * the c_v character (and 0s if it doesn't), while the 16 right-halves produce
+ * the other vector, again with each byte either all-1s or all-0s.
+ *
+ * The expectation is that FM_COUNT_4BIT will be called after this, to
+ * turn these binary values into sums over a series of vectors. The macros
+ * are split up to allow one end or other to be trimmed in the case that
+ * counting is not expected to include the full vector.
+ *
+ * srli(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks)
+ * and() : capture the right 4-bit value
+ *
+ * cmpeq()x2 : test if both left and right == c. For each, if ==c , value = 11111111 (-1)
+ */
+#define FM_MATCH_4BIT(in_v, c_v, out1_v, out2_v) do {\
+ out1_v = _mm_srli_epi16(in_v, 4);\
+ out2_v = _mm_and_si128(in_v, cfg->fm_m0f);\
+ out1_v = _mm_and_si128(out1_v, cfg->fm_m0f);\
+ \
+ out1_v = _mm_cmpeq_epi8(out1_v, c_v);\
+ out2_v = _mm_cmpeq_epi8(out2_v, c_v);\
+ } while (0)
+
+
+/* Macro for SSE operations that turns a vector of 4-bit character values into
+ * 2 vectors representing matches. Each byte in the input vector consists of
+ * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce
+ * one vector, which contains all-1s for bytes in which the left half is less than
+ * the c_v character (and 0s if it doesn't), while the 16 right-halves produce
+ * the other vector, again with each byte either all-1s or all-0s.
+ *
+ * The expectation is that FM_COUNT_4BIT will be called after this, to
+ * turn these binary values into sums over a series of vectors. The macros
+ * are split up to allow one end or other to be trimmed in the case that
+ * counting is not expected to include the full vector.
+ *
+ * srli(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks)
+ * and() : capture the right 4-bit value
+ *
+ * cmplt()x2 : test if both left and right < c. For each, if <c , value = 11111111 (-1)
+ */
+#define FM_LT_4BIT(in_v, c_v, out1_v, out2_v) do {\
+ out1_v = _mm_srli_epi16(in_v, 4);\
+ out2_v = _mm_and_si128(in_v, cfg->fm_m0f);\
+ out1_v = _mm_and_si128(out1_v, cfg->fm_m0f);\
+ \
+ out1_v = _mm_cmplt_epi8(out1_v, c_v);\
+ out2_v = _mm_cmplt_epi8(out2_v, c_v);\
+ } while (0)
+
+
+
+/* Macro for SSE operations to add occurrence counts to the tally vector counts_v,
+ * in the 4-bits-per-character case
+ *
+ * The expectation is that in[12]_v will contain bytes that are either
+ * 00000000 = 0
+ * or
+ * 11111111 = -1
+ * so subtracting the value of the byte is the same as adding 0 or 1.
+ */
+#define FM_COUNT_4BIT(in1_v, in2_v, cnts_v) do {\
+ cnts_v = _mm_subs_epi8(cnts_v, in1_v);\
+ cnts_v = _mm_subs_epi8(cnts_v, in2_v);\
+ } while (0)
+
+
+#endif // if defined (p7_IMPL_SSE)
/*****************************************************************
* 16. P7_PIPELINE: H3's accelerated seq/profile comparison pipeline
@@ -960,6 +1172,7 @@ typedef struct fm_diaglist_s {
enum p7_pipemodes_e { p7_SEARCH_SEQS = 0, p7_SCAN_MODELS = 1 };
enum p7_zsetby_e { p7_ZSETBY_NTARGETS = 0, p7_ZSETBY_OPTION = 1, p7_ZSETBY_FILEINFO = 2 };
+enum p7_complementarity_e { p7_NOCOMPLEMENT = 0, p7_COMPLEMENT = 1 };
typedef struct p7_pipeline_s {
/* Dynamic programming matrices */
@@ -971,8 +1184,10 @@ typedef struct p7_pipeline_s {
/* Domain postprocessing */
ESL_RANDOMNESS *r; /* random number generator */
int do_reseeding; /* TRUE: reseed for reproducible results */
+ int do_alignment_score_calc;
P7_DOMAINDEF *ddef; /* domain definition workflow */
+
/* Reporting threshold settings */
int by_E; /* TRUE to cut per-target report off by E */
double E; /* per-target E-value threshold */
@@ -1025,20 +1240,13 @@ typedef struct p7_pipeline_s {
enum p7_pipemodes_e mode; /* p7_SCAN_MODELS | p7_SEARCH_SEQS */
int long_targets; /* TRUE if the target sequences are expected to be very long (e.g. dna chromosome search in nhmmer) */
- int strand; /* TRUE if the search should ignore the revcomp (used for nhmmer only) */
+ int strands; /* p7_STRAND_TOPONLY | p7_STRAND_BOTTOMONLY | p7_STRAND_BOTH */
int W; /* window length for nhmmer scan - essentially maximum length of model that we expect to find*/
int block_length; /* length of overlapping blocks read in the multi-threaded variant (default MAX_RESIDUE_COUNT) */
int show_accessions;/* TRUE to output accessions not names */
int show_alignments;/* TRUE to output alignments (default) */
- /* Preferences for APP labeling (posterior probability of being aligned to a model, based on mocc) in output */
- int show_app; /* default FALSE, if TRUE, the APP */
- float app_hi; /* default 0.95 */
- float app_med; /* default 0.85 */
- float app_lo; /* default 0.75 */
-
-
P7_HMMFILE *hfp; /* COPY of open HMM database (if scan mode) */
char errbuf[eslERRBUFSIZE];
} P7_PIPELINE;
@@ -1053,7 +1261,7 @@ typedef struct p7_pipeline_s {
enum p7_archchoice_e { p7_ARCH_FAST = 0, p7_ARCH_HAND = 1 };
enum p7_wgtchoice_e { p7_WGT_NONE = 0, p7_WGT_GIVEN = 1, p7_WGT_GSC = 2, p7_WGT_PB = 3, p7_WGT_BLOSUM = 4 };
-enum p7_effnchoice_e { p7_EFFN_NONE = 0, p7_EFFN_SET = 1, p7_EFFN_CLUST = 2, p7_EFFN_ENTROPY = 3 };
+enum p7_effnchoice_e { p7_EFFN_NONE = 0, p7_EFFN_SET = 1, p7_EFFN_CLUST = 2, p7_EFFN_ENTROPY = 3, p7_EFFN_ENTROPY_EXP = 4 };
typedef struct p7_builder_s {
/* Model architecture */
@@ -1087,7 +1295,7 @@ typedef struct p7_builder_s {
/* Choice of prior */
P7_PRIOR *prior; /* choice of prior when parameterizing from counts */
- int do_uniform_insert; /* default is FALSE */
+ int max_insert_len;
/* Optional: information used for parameterizing single sequence queries */
ESL_SCOREMATRIX *S; /* residue score matrix */
@@ -1132,36 +1340,7 @@ extern int p7_Tau (ESL_RANDOMNESS *r, P7_OPROFILE *om, P7_BG *bg, int L, i
/* eweight.c */
extern int p7_EntropyWeight(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double infotarget, double *ret_Neff);
-/* fm_alphabet.c */
-extern int fm_createAlphabet (FM_METADATA *meta, uint8_t *alph_bits);
-extern int fm_reverseString (char* str, int N);
-extern int fm_getComplement (char c, uint8_t alph_type);
-
-/* fm_general.c */
-extern uint32_t fm_computeSequenceOffset (const FM_DATA *fms, FM_METADATA *meta, int block, int pos);
-extern int fm_getOriginalPosition (const FM_DATA *fms, FM_METADATA *meta, int fm_id, int length, int direction, uint32_t fm_pos,
- uint32_t *segment_id, uint32_t *seg_pos);
-extern int fm_readFMmeta( FM_METADATA *meta);
-extern int fm_readFM( FM_DATA *fm, FM_METADATA *meta, int getAll );
-extern void fm_freeFM ( FM_DATA *fm, int isMainFM);
-extern uint8_t fm_getChar(uint8_t alph_type, int j, const uint8_t *B );
-extern int fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval);
-extern int fm_getSARangeForward( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval);
-extern int fm_configAlloc(void **mem, FM_CFG **cfg);
-extern int fm_updateIntervalForward( const FM_DATA *fm, FM_CFG *cfg, char c, FM_INTERVAL *interval_f, FM_INTERVAL *interval_bk);
-extern int fm_updateIntervalReverse( const FM_DATA *fm, FM_CFG *cfg, char c, FM_INTERVAL *interval);
-extern int fm_initSeeds (FM_DIAGLIST *list) ;
-extern FM_DIAG * fm_newSeed (FM_DIAGLIST *list);
-extern int fm_convertRange2DSQ(FM_METADATA *meta, int id, int first, int length, const uint8_t *B, ESL_SQ *sq );
-extern int fm_initConfigGeneric( FM_CFG *cfg, ESL_GETOPTS *go);
-
-
-/* fm_msv.c */
-extern int p7_FM_MSV( P7_OPROFILE *om, P7_GMX *gx, float nu, P7_BG *bg, double F1,
- const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_MSVDATA *msvdata,
- P7_HMM_WINDOWLIST *windowlist);
-
-
+extern int p7_EntropyWeight_exp(const P7_HMM *hmm, const P7_BG *bg, const P7_PRIOR *pri, double etarget, double *ret_exp);
/* generic_decoding.c */
extern int p7_GDecoding (const P7_PROFILE *gm, const P7_GMX *fwd, P7_GMX *bck, P7_GMX *pp);
extern int p7_GDomainDecoding(const P7_PROFILE *gm, const P7_GMX *fwd, const P7_GMX *bck, P7_DOMAINDEF *ddef);
@@ -1209,12 +1388,13 @@ extern void p7_closelog(void);
/* hmmlogo.c */
extern float hmmlogo_maxHeight (P7_BG *bg);
-extern int hmmlogo_emissionHeightsDivRelent (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **heights );
-extern int hmmlogo_posScoreHeightsDivRelent (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **heights );
+extern int hmmlogo_RelativeEntropy_all (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights );
+extern int hmmlogo_RelativeEntropy_above_bg (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights );
extern int hmmlogo_ScoreHeights (P7_HMM *hmm, P7_BG *bg, float **heights );
extern int hmmlogo_IndelValues (P7_HMM *hmm, float *insert_P, float *insert_expL, float *delete_P );
+
/* hmmpgmd2msa.c */
extern int hmmpgmd2msa(void *data, P7_HMM *hmm, ESL_SQ *qsq, int *incl, int incl_size, int *excl, int excl_size, ESL_MSA **ret_msa);
@@ -1252,7 +1432,6 @@ extern double p7_MeanMatchRelativeEntropy(const P7_HMM *hmm, const P7_BG *bg);
extern double p7_MeanForwardScore (const P7_HMM *hmm, const P7_BG *bg);
extern int p7_MeanPositionRelativeEntropy(const P7_HMM *hmm, const P7_BG *bg, double *ret_entropy);
extern int p7_hmm_CompositionKLDist(P7_HMM *hmm, P7_BG *bg, float *ret_KL, float **opt_avp);
-extern int p7_hmm_GetSimpleRepeats(P7_HMM *hmm, int maxK, int min_rep, int min_length, float relent_thresh, P7_HMM_WINDOWLIST *ranges);
/* mpisupport.c */
@@ -1287,7 +1466,7 @@ extern int p7_tracealign_computeTraces(P7_HMM *hmm, ESL_SQ **sq, int offset, in
extern int p7_tracealign_getMSAandStats(P7_HMM *hmm, ESL_SQ **sq, int N, ESL_MSA **ret_msa, float **ret_pp, float **ret_relent, float **ret_scores );
/* p7_alidisplay.c */
-extern P7_ALIDISPLAY *p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const ESL_SQ *sq, P7_DOMAINDEF *app_ddef);
+extern P7_ALIDISPLAY *p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq);
extern P7_ALIDISPLAY *p7_alidisplay_Clone(const P7_ALIDISPLAY *ad);
extern size_t p7_alidisplay_Sizeof(const P7_ALIDISPLAY *ad);
extern int p7_alidisplay_Serialize(P7_ALIDISPLAY *ad);
@@ -1296,7 +1475,11 @@ extern void p7_alidisplay_Destroy(P7_ALIDISPLAY *ad);
extern char p7_alidisplay_EncodePostProb(float p);
extern float p7_alidisplay_DecodePostProb(char pc);
extern char p7_alidisplay_EncodeAliPostProb(float p, float hi, float med, float lo);
-extern int p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, int show_accessions);
+
+extern int p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, P7_PIPELINE *pli);
+extern int p7_translated_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, P7_PIPELINE *pli);
+extern int p7_nontranslated_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, int show_accessions);
+
extern int p7_alidisplay_Backconvert(const P7_ALIDISPLAY *ad, const ESL_ALPHABET *abc, ESL_SQ **ret_sq, P7_TRACE **ret_tr);
extern int p7_alidisplay_Dump(FILE *fp, const P7_ALIDISPLAY *ad);
extern int p7_alidisplay_Compare(const P7_ALIDISPLAY *ad1, const P7_ALIDISPLAY *ad2);
@@ -1322,7 +1505,7 @@ extern int p7_builder_LoadScoreSystem(P7_BUILDER *bld, const char *matri
extern int p7_builder_SetScoreSystem (P7_BUILDER *bld, const char *mxfile, const char *env, double popen, double pextend, P7_BG *bg);
extern void p7_builder_Destroy(P7_BUILDER *bld);
-extern int p7_Builder (P7_BUILDER *bld, ESL_MSA *msa, P7_BG *bg, P7_HMM **opt_hmm, P7_TRACE ***opt_trarr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om, ESL_MSA **opt_postmsa);
+extern int p7_Builder (P7_BUILDER *bld, ESL_MSA *msa, P7_BG *bg, P7_HMM **opt_hmm, P7_TRACE ***opt_trarr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om, ESL_MSA **opt_postmsa, FILE *seqweights_w_fp, FILE *seqweights_e_fp);
extern int p7_SingleBuilder(P7_BUILDER *bld, ESL_SQ *sq, P7_BG *bg, P7_HMM **opt_hmm, P7_TRACE **opt_tr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om);
extern int p7_Builder_MaxLength (P7_HMM *hmm, double emit_thresh);
@@ -1334,9 +1517,10 @@ extern int p7_domaindef_Reuse (P7_DOMAINDEF *ddef);
extern int p7_domaindef_DumpPosteriors(FILE *ofp, P7_DOMAINDEF *ddef);
extern void p7_domaindef_Destroy(P7_DOMAINDEF *ddef);
-extern int p7_domaindef_ByViterbi (P7_PROFILE *gm, const ESL_SQ *sq, P7_GMX *gx1, P7_GMX *gx2, P7_DOMAINDEF *ddef);
-extern int p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, P7_OPROFILE *om, P7_OMX *oxf, P7_OMX *oxb, P7_OMX *fwd, P7_OMX *bck,
- P7_DOMAINDEF *ddef, P7_DOMAINDEF *ddef_app, P7_BG *bg, int long_target);
+extern int p7_domaindef_ByViterbi (P7_PROFILE *gm, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_GMX *gx1, P7_GMX *gx2, P7_DOMAINDEF *ddef);
+extern int p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, const ESL_SQ *ntsq, P7_OPROFILE *om, P7_OMX *oxf, P7_OMX *oxb, P7_OMX *fwd, P7_OMX *bck,
+ P7_DOMAINDEF *ddef, P7_BG *bg, int long_target,
+ P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr);
/* p7_gmx.c */
@@ -1371,6 +1555,7 @@ extern int p7_hmm_SetComposition(P7_HMM *hmm);
extern int p7_hmm_SetConsensus (P7_HMM *hmm, ESL_SQ *sq);
/* 3. Renormalization and rescaling counts in core HMMs. */
extern int p7_hmm_Scale (P7_HMM *hmm, double scale);
+extern int p7_hmm_ScaleExponential(P7_HMM *hmm, double exp);
extern int p7_hmm_Renormalize(P7_HMM *hmm);
/* 4. Debugging and development code. */
extern int p7_hmm_Dump(FILE *fp, P7_HMM *hmm);
@@ -1406,15 +1591,15 @@ extern int p7_hmmfile_Position(P7_HMMFILE *hfp, const off_t offset);
/* p7_hmmwindow.c */
int p7_hmmwindow_init (P7_HMM_WINDOWLIST *list);
-P7_HMM_WINDOW *p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity);
+P7_HMM_WINDOW *p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity, uint32_t target_len);
/* p7_msvdata.c */
-extern P7_MSVDATA *p7_hmm_MSVDataCreate(P7_OPROFILE *om, int do_opt_ext);
-extern P7_MSVDATA *p7_hmm_MSVDataClone(P7_MSVDATA *src, int K);
-extern int p7_hmm_MSVDataComputeRest(P7_OPROFILE *om, P7_MSVDATA *data );
-extern void p7_hmm_MSVDataDestroy( P7_MSVDATA *data );
+extern P7_SCOREDATA *p7_hmm_ScoreDataCreate(P7_OPROFILE *om, P7_PROFILE *gm );
+extern P7_SCOREDATA *p7_hmm_ScoreDataClone(P7_SCOREDATA *src, int K);
+extern int p7_hmm_ScoreDataComputeRest(P7_OPROFILE *om, P7_SCOREDATA *data );
+extern void p7_hmm_ScoreDataDestroy( P7_SCOREDATA *data );
extern int p7_hmm_initWindows (P7_HMM_WINDOWLIST *list);
extern P7_HMM_WINDOW *p7_hmm_newWindow (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity);
@@ -1430,7 +1615,7 @@ extern int p7_pipeline_Reuse (P7_PIPELINE *pli);
extern void p7_pipeline_Destroy(P7_PIPELINE *pli);
extern int p7_pipeline_Merge (P7_PIPELINE *p1, P7_PIPELINE *p2);
-extern int p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_MSVDATA *msvdata, P7_HMM_WINDOWLIST *windowlist, int L, float pct_overlap);
+extern int p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_SCOREDATA *msvdata, P7_HMM_WINDOWLIST *windowlist, float pct_overlap);
extern int p7_pli_TargetReportable (P7_PIPELINE *pli, float score, double lnP);
extern int p7_pli_DomainReportable (P7_PIPELINE *pli, float dom_score, double lnP);
@@ -1439,10 +1624,18 @@ extern int p7_pli_DomainIncludable (P7_PIPELINE *pli, float dom_score, double l
extern int p7_pli_NewModel (P7_PIPELINE *pli, const P7_OPROFILE *om, P7_BG *bg);
extern int p7_pli_NewModelThresholds(P7_PIPELINE *pli, const P7_OPROFILE *om);
extern int p7_pli_NewSeq (P7_PIPELINE *pli, const ESL_SQ *sq);
-extern int p7_Pipeline (P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_TOPHITS *th);
-extern int p7_Pipeline_LongTarget (P7_PIPELINE *pli, P7_OPROFILE *om, P7_MSVDATA *msvdata, P7_BG *bg, const ESL_SQ *sq, P7_TOPHITS *hitlist, int64_t seqidx);
-extern int p7_Pipeline_FM (P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, int64_t seqidx,
- const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_MSVDATA *msvdata);
+extern int p7_Pipeline (P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_TOPHITS *th);
+extern int p7_Pipeline_LongTarget (P7_PIPELINE *pli, P7_OPROFILE *om, P7_SCOREDATA *data,
+ P7_BG *bg, P7_TOPHITS *hitlist, int64_t seqidx,
+ const ESL_SQ *sq, int complementarity,
+ const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg
+/* , ESL_STOPWATCH *ssv_watch_master
+ , ESL_STOPWATCH *postssv_watch_master
+ , ESL_STOPWATCH *watch_slave
+*/
+ );
+
+
extern int p7_pli_Statistics(FILE *ofp, P7_PIPELINE *pli, ESL_STOPWATCH *w);
@@ -1496,7 +1689,8 @@ extern int p7_tophits_Add(P7_TOPHITS *h,
int domidx, int ndom,
P7_ALIDISPLAY *ali);
extern int p7_tophits_SortBySortkey(P7_TOPHITS *h);
-extern int p7_tophits_SortBySeqidx(P7_TOPHITS *h);
+extern int p7_tophits_SortBySeqidxAndAlipos(P7_TOPHITS *h);
+extern int p7_tophits_SortByModelnameAndAlipos(P7_TOPHITS *h);
extern int p7_tophits_Merge(P7_TOPHITS *h1, P7_TOPHITS *h2);
extern int p7_tophits_GetMaxPositionLength(P7_TOPHITS *h);
@@ -1506,11 +1700,13 @@ extern int p7_tophits_GetMaxShownLength(P7_TOPHITS *h);
extern void p7_tophits_Destroy(P7_TOPHITS *h);
extern int p7_tophits_ComputeNhmmerEvalues(P7_TOPHITS *th, double N, int W);
-extern int p7_tophits_RemoveDuplicates(P7_TOPHITS *th);
+extern int p7_tophits_RemoveDuplicates(P7_TOPHITS *th, int using_bit_cutoffs);
extern int p7_tophits_Threshold(P7_TOPHITS *th, P7_PIPELINE *pli);
extern int p7_tophits_CompareRanking(P7_TOPHITS *th, ESL_KEYHASH *kh, int *opt_nnew);
extern int p7_tophits_Targets(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw);
extern int p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw);
+
+
extern int p7_tophits_Alignment(const P7_TOPHITS *th, const ESL_ALPHABET *abc,
ESL_SQ **inc_sqarr, P7_TRACE **inc_trarr, int inc_n, int optflags,
ESL_MSA **ret_msa);
@@ -1519,8 +1715,7 @@ extern int p7_tophits_TabularDomains(FILE *ofp, char *qname, char *qacc, P7_TOPH
extern int p7_tophits_TabularXfam(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli);
extern int p7_tophits_TabularTail(FILE *ofp, const char *progname, enum p7_pipemodes_e pipemode,
const char *qfile, const char *tfile, const ESL_GETOPTS *go);
-extern int p7_tophits_LongInserts(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli, int min_length);
-
+extern int p7_tophits_AliScores(FILE *ofp, char *qname, P7_TOPHITS *th );
/* p7_trace.c */
extern P7_TRACE *p7_trace_Create(void);
@@ -1561,17 +1756,59 @@ extern int p7_Seqmodel(const ESL_ALPHABET *abc, ESL_DSQ *dsq, int M, char *name,
ESL_DMATRIX *P, float *f, double popen, double pextend,
P7_HMM **ret_hmm);
+/* fm_alphabet.c */
+extern int fm_alphabetCreate (FM_METADATA *meta, uint8_t *alph_bits);
+extern int fm_alphabetDestroy (FM_METADATA *meta);
+extern int fm_reverseString (char *str, int N);
+extern int fm_getComplement (char c, uint8_t alph_type);
+
+
+/* fm_general.c */
+extern uint64_t fm_computeSequenceOffset (const FM_DATA *fms, const FM_METADATA *meta, int block, uint64_t pos);
+extern int fm_getOriginalPosition (const FM_DATA *fms, const FM_METADATA *meta, int fm_id, int length, int direction, uint64_t fm_pos,
+ uint32_t *segment_id, uint64_t *seg_pos);
+extern int fm_readFMmeta( FM_METADATA *meta);
+extern int fm_FM_read( FM_DATA *fm, FM_METADATA *meta, int getAll );
+extern void fm_FM_destroy ( FM_DATA *fm, int isMainFM);
+extern uint8_t fm_getChar(uint8_t alph_type, int j, const uint8_t *B );
+extern int fm_getSARangeReverse( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval);
+extern int fm_getSARangeForward( const FM_DATA *fm, FM_CFG *cfg, char *query, char *inv_alph, FM_INTERVAL *interval);
+extern int fm_configAlloc(FM_CFG **cfg);
+extern int fm_configDestroy(FM_CFG *cfg);
+extern int fm_metaDestroy(FM_METADATA *meta );
+extern int fm_updateIntervalForward( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval_f, FM_INTERVAL *interval_bk);
+extern int fm_updateIntervalReverse( const FM_DATA *fm, const FM_CFG *cfg, char c, FM_INTERVAL *interval);
+extern int fm_initSeeds (FM_DIAGLIST *list) ;
+extern FM_DIAG * fm_newSeed (FM_DIAGLIST *list);
+extern int fm_initAmbiguityList (FM_AMBIGLIST *list);
+extern int fm_addAmbiguityRange (FM_AMBIGLIST *list, uint32_t start, uint32_t stop);
+extern int fm_convertRange2DSQ(const FM_DATA *fm, const FM_METADATA *meta, uint64_t first, int length, int complementarity, ESL_SQ *sq, int fix_ambiguities );
+extern int fm_initConfigGeneric( FM_CFG *cfg, ESL_GETOPTS *go);
+
+/* fm_ssv.c */
+extern int p7_SSVFM_longlarget( P7_OPROFILE *om, float nu, P7_BG *bg, double F1,
+ const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_SCOREDATA *ssvdata,
+ int strands, P7_HMM_WINDOWLIST *windowlist);
+
+
+/* fm_sse.c */
+extern int fm_configInit (FM_CFG *cfg, ESL_GETOPTS *go);
+extern int fm_getOccCount (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c);
+extern int fm_getOccCountLT (const FM_DATA *fm, const FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt);
+
+
+
#endif /*P7_HMMERH_INCLUDED*/
-/************************************************************
+/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: hmmer.h 4103 2012-06-24 02:09:43Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmer.h $
+ * SVN $Id$
+ * SVN $URL$
************************************************************/
diff --git a/hmmer/src/exactmatch.c b/hmmer/src/hmmerfm-exactmatch.c
similarity index 65%
rename from hmmer/src/exactmatch.c
rename to hmmer/src/hmmerfm-exactmatch.c
index baaf33a..287d504 100644
--- a/hmmer/src/exactmatch.c
+++ b/hmmer/src/hmmerfm-exactmatch.c
@@ -1,20 +1,19 @@
-#include "hmmer.h"
+#include "p7_config.h"
+
#include <sys/times.h>
+#include <string.h>
#include "easel.h"
-#include <string.h>
+#include "hmmer.h"
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 },
-
{ "--out", eslARG_STRING, "none", NULL, NULL, NULL, NULL, NULL, "save list of hits to file <s> ('-' writes to stdout)", 2 },
{ "--count_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "compute just counts, not locations", 2 },
-
+ { "--fwd_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't compute matches to the reversed sequence", 2 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
-
-
static char usage[] = "[options] <qfile> <fmfile>";
static char banner[] = "Find all instances of each <qfile> sequence in the database represented by <fmfile>";
@@ -32,7 +31,7 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_fmfi
/* help format: */
if (esl_opt_GetBoolean(go, "-h") == TRUE)
{
- p7_banner(stdout, argv[0], banner);
+ esl_banner(stdout, argv[0], banner);
esl_usage(stdout, argv[0], usage);
if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
@@ -93,12 +92,21 @@ static int
output_header(FM_METADATA *meta, FILE *ofp, const ESL_GETOPTS *go, char *fmfile, char *qfile)
{
char *alph;
+ char *appname = NULL;
+ int status;
if (meta->alph_type == fm_DNA) alph = "dna";
- else if (meta->alph_type == fm_DNA_full) alph = "dna_full";
else if (meta->alph_type == fm_AMINO) alph = "amino";
- p7_banner(ofp, go->argv[0], banner);
+ if ((status = esl_FileTail(go->argv[0], FALSE, &appname)) != eslOK) return status;
+
+
+
+ if (fprintf(ofp, "# %s :: %s\n", appname, banner) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# %s\n", EASEL_COPYRIGHT) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# %s\n", EASEL_LICENSE) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+
if (fprintf(ofp, "# input binary-formatted HMMER database: %s\n", fmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# input file of query sequences: %s\n", qfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -108,13 +116,23 @@ output_header(FM_METADATA *meta, FILE *ofp, const ESL_GETOPTS *go, char *fmfile,
if (fprintf(ofp, "# output file containing list of hits: %s\n", (esl_strcmp(outfile, "-") == 0 ? "stdout" : outfile)) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
- if (esl_opt_IsUsed(go, "--count_only") && fprintf(ofp, "# output only counts, not hit locations\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--count_only") && fprintf(ofp, "# output only counts, not hit locations\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--fwd_only") && fprintf(ofp, "# don't compute matches to the reversed sequence\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
if (fprintf(ofp, "# alphabet : %s\n", alph) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# bin_length : %d\n", meta->freq_cnt_b) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# suffix array sample rate: %d\n", meta->freq_SA) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- return eslOK;
+
+
+ if (appname) free(appname);
+ return eslOK;
+
+ERROR:
+if (appname) free(appname);
+return status;
+
}
@@ -126,19 +144,17 @@ output_header(FM_METADATA *meta, FILE *ofp, const ESL_GETOPTS *go, char *fmfile,
* to String Pattern Matching). Most of the meat is in the method of counting
* characters - bwt_getOccCount, which depends on compilation choices.
*/
-//#ifndef FMDEBUG
-//inline
-//#endif
int
getFMHits( FM_DATA *fm, FM_CFG *cfg, FM_INTERVAL *interval, int block_id, int hit_offset, int hit_length, FM_HIT *hits_ptr, int fm_direction) {
int i, j, len = 0;
+ int dist_from_end;
for (i = interval->lower; i<= interval->upper; i++) {
j = i;
len = 0;
- while ( j != fm->term_loc && (j & cfg->maskSA)) { //go until we hit a position in the full SA that was sampled during FM index construction
+ while ( j != fm->term_loc && (j % cfg->meta->freq_SA)) { //go until we hit a position in the full SA that was sampled during FM index construction
uint8_t c = fm_getChar( cfg->meta->alph_type, j, fm->BWT);
j = fm_getOccCount (fm, cfg, j-1, c);
j += abs(fm->C[c]);
@@ -150,9 +166,17 @@ getFMHits( FM_DATA *fm, FM_CFG *cfg, FM_INTERVAL *interval, int block_id, int hi
hits_ptr[hit_offset + i - interval->lower].direction = fm_direction;
hits_ptr[hit_offset + i - interval->lower].length = hit_length;
- hits_ptr[hit_offset + i - interval->lower].start = len + (j==fm->term_loc ? 0 : fm->SA[ j >> cfg->shiftSA ]) ; // len is how many backward steps we had to take to find a sampled SA position
- if (fm_direction == fm_backward)
- hits_ptr[hit_offset + i - interval->lower].start += hit_length - 1 ;
+ dist_from_end = 1 + len + (j==fm->term_loc ? 0 : fm->SA[ j / cfg->meta->freq_SA ]) ; // len is how many backward steps we had to take to find a sampled SA position
+
+ if (fm_direction == fm_forward)
+ dist_from_end += hit_length;
+ else
+ dist_from_end += 1;
+
+ //the SA is on the reversed string. What would be the position in the unreversed string?
+ hits_ptr[hit_offset + i - interval->lower].start = fm->N - dist_from_end;
+
+ //printf ("SA: %d\n", hits_ptr[hit_offset + i - interval->lower].start);
}
@@ -181,15 +205,14 @@ hit_sorter(const void *a, const void *b)
/* Function: main()
* Synopsis: Run set of queries against an FM
- * Incept: TJW, Fri Dec 24 21:30:51 MST 2010 [Tucson]
* Purpose: Read in a FM and a file of query sequences.
* For each query, find matching FM interval, then collect positions in
- * the original text T for the corresponding occurences. These positions
+ * the original text T for the corresponding occurrences. These positions
* are 0-based (so first character is position 0).
*/
int
-main(int argc, char *argv[]) {
-
+main(int argc, char *argv[])
+{
void* tmp; // used for RALLOC calls
clock_t t1, t2;
struct tms ts1, ts2;
@@ -204,22 +227,24 @@ main(int argc, char *argv[]) {
int hit_num = 0;
int hit_num2 = 0;
int hits_size = 0;
- int i;
+ int i,j;
int count_only = 0;
- FM_DATA *fmsf;
- FM_DATA *fmsb;
FM_INTERVAL interval;
- FILE* fp_fm = NULL;
- FILE* fp = NULL;
- FILE* out = NULL;
+ FM_DATA *fmsf = NULL;
+ FM_DATA *fmsb = NULL;
+ FILE* fp_fm = NULL;
+ FILE* fp = NULL;
+ FILE* out = NULL;
char *outname = NULL;
ESL_GETOPTS *go = NULL; /* command line processing */
- void *cfg_mem; //used to ensure cfg is 16-byte aligned, which matters since, for sse/vmx implementations, elements within cfg need to be aligned thusly
FM_CFG *cfg;
FM_METADATA *meta;
+ ESL_SQ *tmpseq; // used for sequence validation
+ ESL_ALPHABET *abc = NULL;
+
//start timer
t1 = times(&ts1);
@@ -232,7 +257,7 @@ main(int argc, char *argv[]) {
out = stdout;
outname = "stdout";
} else {
- out = fopen(optarg,"w");
+ out = fopen(outname,"w");
}
}
@@ -244,44 +269,45 @@ main(int argc, char *argv[]) {
esl_fatal("Cannot open file `%s': ", fname_fm);
- fm_configAlloc(&cfg_mem, &cfg);
+ fm_configAlloc(&cfg);
cfg->occCallCnt = 0;
meta = cfg->meta;
meta->fp = fp_fm;
-
fm_readFMmeta( meta);
+ if (meta->alph_type == fm_DNA) abc = esl_alphabet_Create(eslDNA);
+ else if (meta->alph_type == fm_AMINO) abc = esl_alphabet_Create(eslAMINO);
+ tmpseq = esl_sq_CreateDigital(abc);
+
+
+
//read in FM-index blocks
- ESL_ALLOC(fmsf, cfg->meta->block_count * sizeof(FM_DATA) );
- if (!meta->fwd_only)
+ ESL_ALLOC(fmsf, meta->block_count * sizeof(FM_DATA) );
+ if (!meta->fwd_only )
ESL_ALLOC(fmsb, meta->block_count * sizeof(FM_DATA) );
for (i=0; i<meta->block_count; i++) {
- fm_readFM( fmsf+i,meta, 1 );
+ fm_FM_read( fmsf+i,meta, TRUE );
- if (!meta->fwd_only) {
- fm_readFM(fmsb+i, meta, 0 );
+ if (!meta->fwd_only) { // whether or not we're going to search forward, need to read it in
+ fm_FM_read(fmsb+i, meta, FALSE );
fmsb[i].SA = fmsf[i].SA;
fmsb[i].T = fmsf[i].T;
}
}
fclose(fp_fm);
- output_header(cfg->meta, stdout, go, fname_fm, fname_queries);
+ output_header(meta, stdout, go, fname_fm, fname_queries);
/* initialize a few global variables, then call initGlobals
* to do architecture-specific initialization
*/
- cfg->maskSA = meta->freq_SA - 1;
- cfg->shiftSA = meta->SA_shift;
- fm_initConfig(cfg, NULL);
-
-
- fm_createAlphabet(meta, NULL); // don't override charBits
+ fm_configInit(cfg, NULL);
+ fm_alphabetCreate(meta, NULL); // don't override charBits
fp = fopen(fname_queries,"r");
if (fp == NULL)
@@ -292,7 +318,6 @@ main(int argc, char *argv[]) {
hits_size = 200;
ESL_ALLOC(hits, hits_size * sizeof(FM_HIT));
-
while(fgets(line, FM_MAX_LINE, fp) ) {
int qlen=0;
while (line[qlen] != '\0' && line[qlen] != '\n') qlen++;
@@ -302,8 +327,8 @@ main(int argc, char *argv[]) {
for (i=0; i<meta->block_count; i++) {
- fm_getSARangeForward(fmsb+i, cfg, line, meta->inv_alph, &interval);// yes, use the backward fm to produce a forward search on the forward fm
- if (interval.lower>0 && interval.lower <= interval.upper) {
+ fm_getSARangeReverse(fmsf+i, cfg, line, meta->inv_alph, &interval);
+ if (interval.lower>=0 && interval.lower <= interval.upper) {
int new_hit_num = interval.upper - interval.lower + 1;
hit_num += new_hit_num;
if (!count_only) {
@@ -311,18 +336,16 @@ main(int argc, char *argv[]) {
hits_size = 2*hit_num;
ESL_RALLOC(hits, tmp, hits_size * sizeof(FM_HIT));
}
- //even though I used fmsb above, use fmsf here, since we'll now do a backward trace
- //in the FM-index to find the next sampled SA position
getFMHits(fmsf+i, cfg, &interval, i, hit_num-new_hit_num, qlen, hits, fm_forward);
}
+
}
/* find reverse hits, using backward search on the forward FM*/
-
- if (!meta->fwd_only) {
- fm_getSARangeReverse(fmsf+i, cfg, line, meta->inv_alph, &interval);
- if (interval.lower>0 && interval.lower <= interval.upper) {
+ if (!meta->fwd_only && !(esl_opt_IsOn(go, "--fwd_only")) ) {
+ fm_getSARangeForward(fmsb+i, cfg, line, meta->inv_alph, &interval);// yes, use the backward fm to produce the equivalent of a forward search on the forward fm
+ if (interval.lower>=0 && interval.lower <= interval.upper) {
int new_hit_num = interval.upper - interval.lower + 1;
hit_num += new_hit_num;
if (!count_only) {
@@ -330,15 +353,17 @@ main(int argc, char *argv[]) {
hits_size = 2*hit_num;
ESL_RALLOC(hits, tmp, hits_size * sizeof(FM_HIT));
}
+ //even though I used fmsb above, use fmsf here, since we'll now do a backward trace
+ //in the FM-index to find the next sampled SA position
getFMHits(fmsf+i, cfg, &interval, i, hit_num-new_hit_num, qlen, hits, fm_backward);
}
}
+
}
}
-
if (hit_num > 0) {
if (count_only) {
hit_cnt++;
@@ -349,36 +374,85 @@ main(int argc, char *argv[]) {
//for each hit, identify the sequence id and position within that sequence
for (i = 0; i< hit_num; i++) {
- fm_getOriginalPosition (fmsf, meta, hits[i].block, hits[i].length, hits[i].direction, hits[i].start, &(hits[i].block), &(hits[i].start) );
- hits[i].sortkey = hits[i].block == -1 ? -1 : meta->seq_data[ hits[i].block ].id;
+ hits[i].sortkey = 0;
+
+ // validate match - if any characters in orig sequence were ambiguities, reject.
+ // This step gets the letters in the hit range, with ambiguity characters returned.
+ // (if direction is fm_backwards, then the string is reversed ... doesn't matter for our purposes
+ uint64_t range2DSQ_start = (hits[i].direction == fm_forward ? hits[i].start : hits[i].start-hits[i].length+1);
+ fm_convertRange2DSQ( fmsf + hits[i].block, meta, range2DSQ_start, hits[i].length,
+ p7_NOCOMPLEMENT, tmpseq, TRUE );
+
+ // Compare to ambig-base corrected hit to filter out made up sequence hits
+ for (j=1; j<=hits[i].length; j++) {
+ if (tmpseq->dsq[j] >= abc->K) {
+ hits[i].sortkey = -1; //reject
+ j = hits[i].length+1; //quit looking
+ }
+ }
+
+
+ if (hits[i].sortkey != -1 ) { // no ambiguity characters
+
+ uint32_t segment_id = fm_computeSequenceOffset( fmsf, meta, hits[i].block, hits[i].start);
+
+ // Make sure that this hit doesn't span two target sequences
+ if ( ( hits[i].start - meta->seq_data[segment_id].fm_start ) + hits[i].length - 1 > meta->seq_data[ segment_id ].length )
+ hits[i].sortkey = -1;
+ else
+ hits[i].sortkey = meta->seq_data[ segment_id ].target_id;
+
+ // hits[].start: Absolute position of hit within block ( containing possibly multiple
+ // concatenated sequences and/or sequence segments.
+ // fm_seq[].target_id: The index into the sequence records for this sequence segment.
+ // fm_seq[].fm_start: Position in block where this sequence segment begins
+ // target_start: The absolute position within sequence ("target_id") where this segment
+ // start.
+ // Therefore:
+ // What is the absolute position of this hit against sequence "target_id"?
+ hits[i].start = ( hits[i].start - meta->seq_data[segment_id].fm_start) +
+ meta->seq_data[segment_id].target_start;
+
+
+ // This approach reuses the .block memory to get the segment_id back.
+ // Unfortunately we have lost the information on the actual block the hit
+ // was found in, confusing anyone who assumes that <FM_HIT>.block is actually
+ // the block number. Sorry.
+ // TODO: move away from this approach.
+ hits[i].block = segment_id;
+ }
+
if (hits[i].sortkey != -1)
hit_num2++; // legitimate hit
}
+
+
if (hit_num2 > 0)
hit_cnt++;
-
//now sort according the the sequence_id corresponding to that seq_offset
qsort(hits, hit_num, sizeof(FM_HIT), hit_sorter);
//skim past the skipped entries
i = 0;
while ( i < hit_num ) {
- if (hits[i].block != -1 )
+ if (hits[i].sortkey != -1 )
break; //
i++;
}
+
if (i < hit_num) {
if (out != NULL) {
fprintf (out, "%s\n",line);
//fprintf (out, "\t%10s (%8d %s)\n",meta->seq_data[ hits[i].block ].name, hits[i].start, (hits[i].direction==fm_forward?"+":"-"));
- fprintf (out, " %8d %s %10s\n", hits[i].start, (hits[i].direction==fm_forward?"f":"b"), meta->seq_data[ hits[i].block ].name);
+ fprintf (out, " %8ld %s %10s\n", (long)(hits[i].start), (hits[i].direction==fm_forward?"f":"r"), meta->seq_data[ hits[i].block ].name);
}
hit_indiv_cnt++;
i++; // skip the first one, since I'll be comparing each to the previous
+
for ( ; i< hit_num; i++) {
if ( //meta->seq_data[ hits[i].block ].id != meta->seq_data[ hits[i-1].block ].id ||
hits[i].sortkey != hits[i-1].sortkey || //sortkey is seq_data[].id
@@ -387,7 +461,7 @@ main(int argc, char *argv[]) {
{
if (out != NULL)
//fprintf (out, "\t%10s (%8d %s)\n",meta->seq_data[ hits[i].block ].name, hits[i].start, (hits[i].direction==fm_forward?"+":"-"));
- fprintf (out, " %8d %s %10s\n", hits[i].start, (hits[i].direction==fm_forward?"f":"b"), meta->seq_data[ hits[i].block ].name);
+ fprintf (out, " %8ld %s %10s\n", (long)(hits[i].start), (hits[i].direction==fm_forward?"f":"r"), meta->seq_data[ hits[i].block ].name);
hit_indiv_cnt++;
}
}
@@ -403,23 +477,17 @@ main(int argc, char *argv[]) {
}
for (i=0; i<meta->block_count; i++) {
- fm_freeFM( fmsb+i, 1 );
+ fm_FM_destroy( fmsf+i, 1 );
if (!meta->fwd_only)
- fm_freeFM( fmsf+i, 0 );
+ fm_FM_destroy( fmsb+i, 0 );
}
- for (i=0; i<meta->seq_count; i++)
- free (meta->seq_data[i].name);
-
- free (meta->seq_data);
free (hits);
free (line);
fclose(fp);
- fm_destroyConfig(cfg);
- free (cfg->meta);
- free(cfg_mem); //16-byte aligned memory in which cfg is found
+ fm_configDestroy(cfg);
// compute and print the elapsed time in millisec
@@ -452,8 +520,8 @@ ERROR:
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/hmmfetch.c b/hmmer/src/hmmfetch.c
index 1704a48..7c3488b 100644
--- a/hmmer/src/hmmfetch.c
+++ b/hmmer/src/hmmfetch.c
@@ -1,7 +1,7 @@
/* Fetch an HMM from an HMM database (such as Pfam)
*
* SRE, Mon Jun 18 09:30:06 2007 [Janelia]
- * SVN $Id: hmmfetch.c 3546 2011-05-23 14:36:44Z eddys $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/hmmer/src/hmmlogo.c b/hmmer/src/hmmlogo.c
index d7355a1..91dcf1c 100644
--- a/hmmer/src/hmmlogo.c
+++ b/hmmer/src/hmmlogo.c
@@ -8,7 +8,6 @@
*/
#include "hmmer.h"
-//#include "esl_alphabet.h"
/*****************************************************************
* 1. logo value functions
@@ -28,30 +27,29 @@ hmmlogo_maxHeight (P7_BG *bg)
/* assumes rel_ents is allocated with abc->K floats, and heights with hmm->M*abc->K floats*/
int
-hmmlogo_emissionHeightsDivRelent (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **heights ) {
+hmmlogo_RelativeEntropy_all (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights ) {
int K = hmm->abc->K;
int M = hmm->M;
int i, j;
- float p;
float logodds;
for (i = 1; i <= M; i++) {
// height of column, to be split among the residues
rel_ents[i] = 0;
for (j=0; j<K; j++) {
- p = hmm->mat[i][j];
- if ( p > 0 ) {
- logodds = eslCONST_LOG2R * log(p / bg->f[j]); //bits
- rel_ents[i] += p * logodds ;
+ probs[i][j] = hmm->mat[i][j];
+
+ if ( probs[i][j] > 0 ) {
+ logodds = eslCONST_LOG2R * log(probs[i][j] / bg->f[j]); //bits
+ rel_ents[i] += probs[i][j] * logodds ;
}
}
// height of residues
for (j=0; j<K; j++) {
- p = hmm->mat[i][j];
- heights[i][j] = p * rel_ents[i];
+ heights[i][j] = rel_ents[i] * probs[i][j];
}
}
@@ -61,36 +59,40 @@ hmmlogo_emissionHeightsDivRelent (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float
/* assumes rel_ents is allocated with abc->K floats, and heights with hmm->M*abc->K floats*/
int
-hmmlogo_posScoreHeightsDivRelent (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **heights ) {
+hmmlogo_RelativeEntropy_above_bg (P7_HMM *hmm, P7_BG *bg, float *rel_ents, float **probs, float **heights ) {
int K = hmm->abc->K;
int M = hmm->M;
int i, j;
- float p;
float logodds;
- float pos_scoresum;
+ float abovebg_prob_sum;
for (i = 1; i <= M; i++) {
// height of column, to be split among the residues; also sum of of positive scores
rel_ents[i] = 0;
- pos_scoresum = 0.0;
+ abovebg_prob_sum = 0.0;
for (j=0; j<K; j++) {
- p = hmm->mat[i][j];
- logodds = eslCONST_LOG2R * log(p / bg->f[j]); //bits
- rel_ents[i] += p==0? 0 : p * logodds ;
- if (logodds > 0)
- pos_scoresum += logodds;
+ probs[i][j] = hmm->mat[i][j];
+
+ if ( probs[i][j] > 0 ) {
+ logodds = eslCONST_LOG2R * log(probs[i][j] / bg->f[j]); //bits
+ rel_ents[i] += probs[i][j] * logodds ;
+
+ if (logodds > 0)
+ abovebg_prob_sum += probs[i][j];
+ }
}
//height of residues
for (j=0; j<K; j++) {
- p = hmm->mat[i][j];
- logodds = log(p / bg->f[j]); //bits
- heights[i][j] = logodds<=0 ? 0.0 : (rel_ents[i] * eslCONST_LOG2R * logodds / pos_scoresum) ;
+ heights[i][j] = 0.0;
+ if ( probs[i][j] > 0 ) {
+ logodds = eslCONST_LOG2R * log(probs[i][j] / bg->f[j]); //bits
+ heights[i][j] = logodds<=0 ? 0.0 : (rel_ents[i] * probs[i][j] / abovebg_prob_sum) ;
+ }
}
-
}
return eslOK;
}
@@ -105,18 +107,15 @@ hmmlogo_ScoreHeights (P7_HMM *hmm, P7_BG *bg, float **heights ) {
float p;
float logodds;
- float pos_scoresum;
for (i = 1; i <= M; i++) {
// height of column, to be split among the residues; also sum of of positive scores
- pos_scoresum = 0.0;
for (j=0; j<K; j++) {
p = hmm->mat[i][j];
logodds = eslCONST_LOG2R * log(p / bg->f[j]); //bits
heights[i][j] = logodds;
}
-
}
return eslOK;
}
@@ -124,23 +123,25 @@ hmmlogo_ScoreHeights (P7_HMM *hmm, P7_BG *bg, float **heights ) {
/* assumes heights is allocated with hmm->M floats*/
int
-hmmlogo_IndelValues (P7_HMM *hmm, float *insert_P, float *insert_expL, float *delete_P ) {
+hmmlogo_IndelValues (P7_HMM *hmm, float *insert_P, float *insert_expL, float *occupancy ) {
int i;
if (insert_P != NULL) insert_P[1] = hmm->t[1][p7H_MI]; //probability of inserting after this match
if (insert_expL != NULL) insert_expL[1] = 1 / (1 - hmm->t[1][p7H_II]) ; //expected length of the insert, if it happens
- if (delete_P != NULL) delete_P[1] = 0.0; //1st match state never deleted
+// if (delete_P != NULL) delete_P[1] = 0.0; //1st match state never deleted
for (i = 2; i < hmm->M; i++) {
if (insert_P != NULL) insert_P[i] = hmm->t[i][p7H_MI]; //probability of inserting after this match
if (insert_expL != NULL) insert_expL[i] = 1 / (1 - hmm->t[i][p7H_II]) ; //expected length of the insert, if it happens
- if (delete_P != NULL) delete_P[i] = ( (1.0-delete_P[i-1]) * hmm->t[i-1][p7H_MD] ) + ( delete_P[i-1] * hmm->t[i-1][p7H_DD]) ; //probability of missing this state, either due to DD or MD from previous position
+// if (delete_P != NULL) delete_P[i] = ( (1.0-delete_P[i-1]) * hmm->t[i-1][p7H_MD] ) + ( delete_P[i-1] * hmm->t[i-1][p7H_DD]) ; //probability of missing this state, either due to DD or MD from previous position
}
if (insert_P != NULL) insert_P[hmm->M] = 0.0; //no inserts after final position
if (insert_expL != NULL) insert_expL[hmm->M] = 0.0; //no inserts after final position
- if (delete_P != NULL) delete_P[hmm->M] = ( (1.0-delete_P[hmm->M-1]) * hmm->t[hmm->M-1][p7H_MD] ) + ( delete_P[hmm->M-1] * hmm->t[hmm->M-1][p7H_DD]) ; //probability of missing this state, either due to DD or MD from previous position
+// if (delete_P != NULL) delete_P[hmm->M] = ( (1.0-delete_P[hmm->M-1]) * hmm->t[hmm->M-1][p7H_MD] ) + ( delete_P[hmm->M-1] * hmm->t[hmm->M-1][p7H_DD]) ; //probability of missing this state, either due to DD or MD from previous position
+
+ if (occupancy != NULL) p7_hmm_CalculateOccupancy(hmm, occupancy, NULL);
return eslOK;
}
@@ -154,25 +155,26 @@ hmmlogo_IndelValues (P7_HMM *hmm, float *insert_P, float *insert_expL, float *de
* 2. hmmlogo application
*****************************************************************/
-#define HMMLOGO_OPTS "--height_emission,--height_positive_score,--height_bits"
-#define HMMLOGO_HEIGHT_EMISSION 1
-#define HMMLOGO_HEIGHT_POS_SCORE 2
-#define HMMLOGO_HEIGHT_BITS 3
+#define HMMLOGO_OPTS "--height_relent_all,--height_relent_abovebg,--height_score"
+#define HMMLOGO_RELENT_ALL 1
+#define HMMLOGO_RELENT_ABOVEBG 2
+#define HMMLOGO_SCORE 3
+
static ESL_OPTIONS options[] = {
/* name type defaul env range toggles reqs incomp help docgroup*/
{ "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 },
/* Control of output */
- { "--height_emission", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = relative entropy ; residue height = emission (default)", 1 },
- { "--height_positive_score", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = relative entropy ; residue height = % of positive score ", 1 },
- { "--height_bits", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = sums of (pos|neg) scores; residue height = score", 1 },
+ { "--height_relent_all", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = relative entropy ; all letters shown (default)", 1 },
+ { "--height_relent_abovebg", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = relative entropy ; only letters >bg shown", 1 },
+ { "--height_score", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, HMMLOGO_OPTS, "total height = sums of (pos|neg) scores; residue height = score", 1 },
{ "--no_indel", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "don't provide indel rate values", 1 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
-static char usage[] = "<hmmfile> [options]";
+static char usage[] = "[options] <hmmfile>";
static char banner[] = "given an hmm, produce data required to build an hmm logo";
int
@@ -191,12 +193,13 @@ main(int argc, char **argv)
float *rel_ents = NULL;
float **heights = NULL;
+ float **probs = NULL;
float *ins_P = NULL;
float *ins_expL = NULL;
- float *del_P = NULL;
+ float *occupancy = NULL;
- int mode = HMMLOGO_HEIGHT_EMISSION; //default
+ int mode = HMMLOGO_RELENT_ALL; //default
go = esl_getopts_Create(options);
@@ -207,21 +210,22 @@ main(int argc, char **argv)
p7_banner (stdout, argv[0], banner);
esl_usage (stdout, argv[0], usage);
puts("\nOptions:");
- esl_opt_DisplayHelp(stdout, go, 1, 2, 80);
+ esl_opt_DisplayHelp(stdout, go, 1, 2, 100);
+ exit(0);
}
if (esl_opt_ArgNumber(go) != 1) esl_fatal(argv[0], "Incorrect number of command line arguments.\n");
hmmfile = esl_opt_GetArg(go, 1);
- if (esl_opt_IsOn(go, "--height_emission"))
- mode = HMMLOGO_HEIGHT_EMISSION;
- else if (esl_opt_IsOn(go, "--height_positive_score"))
- mode = HMMLOGO_HEIGHT_POS_SCORE;
- else if (esl_opt_IsOn(go, "--height_bits"))
- mode = HMMLOGO_HEIGHT_BITS;
-
-
+ if (esl_opt_IsOn(go, "--height_relent_all"))
+ mode = HMMLOGO_RELENT_ALL;
+ else if (esl_opt_IsOn(go, "--height_relent_abovebg"))
+ mode = HMMLOGO_RELENT_ABOVEBG;
+ else if (esl_opt_IsOn(go, "--height_score"))
+ mode = HMMLOGO_SCORE;
+ else
+ mode = HMMLOGO_RELENT_ALL; //default
/* Open the query profile HMM file */
status = p7_hmmfile_OpenE(hmmfile, NULL, &hfp, errbuf);
@@ -236,18 +240,22 @@ main(int argc, char **argv)
ESL_ALLOC(rel_ents, (hmm->M+1) * sizeof(float));
ESL_ALLOC(heights, (hmm->M+1) * sizeof(float*));
- for (i = 1; i <= hmm->M; i++)
+ ESL_ALLOC(probs, (hmm->M+1) * sizeof(float*));
+
+ for (i = 1; i <= hmm->M; i++) {
ESL_ALLOC(heights[i], abc->K * sizeof(float));
+ ESL_ALLOC(probs[i], abc->K * sizeof(float));
+ }
/* residue heights */
- if (mode == HMMLOGO_HEIGHT_EMISSION) {
+ if (mode == HMMLOGO_RELENT_ALL) {
printf ("max expected height = %.2f\n", hmmlogo_maxHeight(bg) );
- hmmlogo_emissionHeightsDivRelent(hmm, bg, rel_ents, heights);
- } else if (mode == HMMLOGO_HEIGHT_POS_SCORE) {
+ hmmlogo_RelativeEntropy_all(hmm, bg, rel_ents, probs, heights);
+ } else if (mode == HMMLOGO_RELENT_ABOVEBG) {
printf ("max expected height = %.2f\n", hmmlogo_maxHeight(bg) );
- hmmlogo_posScoreHeightsDivRelent(hmm, bg, rel_ents, heights);
- } else if (mode == HMMLOGO_HEIGHT_BITS) {
- hmmlogo_ScoreHeights (hmm, bg, heights );
+ hmmlogo_RelativeEntropy_above_bg(hmm, bg, rel_ents, probs, heights);
+ } else if (mode == HMMLOGO_SCORE) {
+ hmmlogo_ScoreHeights(hmm, bg, heights );
}
printf ("Residue heights\n");
@@ -256,7 +264,7 @@ main(int argc, char **argv)
for (j=0; j<abc->K; j++)
printf("%6.3f ", heights[i][j] );
- if (mode != HMMLOGO_HEIGHT_BITS)
+ if (mode != HMMLOGO_SCORE)
printf(" (%6.3f)", rel_ents[i]);
printf("\n");
@@ -276,17 +284,17 @@ main(int argc, char **argv)
ESL_ALLOC(ins_P, (hmm->M+1) * sizeof(float));
ESL_ALLOC(ins_expL, (hmm->M+1) * sizeof(float));
- ESL_ALLOC(del_P, (hmm->M+1) * sizeof(float));
+ ESL_ALLOC(occupancy, (hmm->M+1) * sizeof(float));
- hmmlogo_IndelValues(hmm, ins_P, ins_expL, del_P);
+ hmmlogo_IndelValues(hmm, ins_P, ins_expL, occupancy);
printf ("Indel values\n");
for (i = 1; i <= hmm->M; i++)
- printf("%d: %6.3f %6.3f %6.3f\n", i, ins_P[i], ins_expL[i], del_P[i] );
+ printf("%d: %6.3f %6.3f %6.3f\n", i, ins_P[i], ins_expL[i], occupancy[i] );
free(ins_P);
free(ins_expL);
- free(del_P);
+ free(occupancy);
}
@@ -310,9 +318,9 @@ main(int argc, char **argv)
if (abc != NULL) esl_alphabet_Destroy(abc);
- if (ins_P != NULL) free(ins_P);
- if (ins_expL != NULL) free(ins_expL);
- if (del_P != NULL) free(del_P);
+ if (ins_P != NULL) free(ins_P);
+ if (ins_expL != NULL) free(ins_expL);
+ if (occupancy != NULL) free(occupancy);
}
@@ -321,8 +329,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/hmmpgmd.c b/hmmer/src/hmmpgmd.c
index 03ea15c..351b850 100644
--- a/hmmer/src/hmmpgmd.c
+++ b/hmmer/src/hmmpgmd.c
@@ -36,7 +36,8 @@ static ESL_OPTIONS cmdlineOpts[] = {
{ "--hmmdb", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--worker", "hmm database to cache for searches", 12 },
{ "--cpu", eslARG_INT, NULL,"HMMER_NCPU","n>0", NULL, NULL, "--master", "number of parallel CPU workers to use for multithreads", 12 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-};
+
+ };
static char usage[] = "[options]";
static char banner[] = "search a query against a database";
@@ -221,11 +222,14 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
+ *
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/hmmpgmd.h b/hmmer/src/hmmpgmd.h
index 2b05e79..b33e935 100644
--- a/hmmer/src/hmmpgmd.h
+++ b/hmmer/src/hmmpgmd.h
@@ -1,6 +1,6 @@
/*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmpgmd.h $
- * SVN $Id: hmmpgmd.h 3529 2011-04-27 21:20:37Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*/
#ifndef P7_HMMPGMD_INCLUDED
#define P7_HMMPGMD_INCLUDED
@@ -100,7 +100,7 @@ size_t writen(int fd, const void *vptr, size_t n);
size_t readn(int fd, void *vptr, size_t n);
typedef struct queue_data_s {
- uint32_t cmd_type; /* type of command to preform */
+ uint32_t cmd_type; /* type of command to perform */
uint32_t query_type; /* type of the query */
P7_HMM *hmm; /* query HMM */
ESL_SQ *seq; /* query sequence */
@@ -117,7 +117,16 @@ typedef struct queue_data_s {
} QUEUE_DATA;
+
+typedef struct {
+ int N; /* number of ranges */
+ uint32_t *starts; /* 0..N-1 start positions */
+ uint32_t *ends; /* 0..N-1 start positions */
+} RANGE_LIST;
+
extern void free_QueueData(QUEUE_DATA *data);
+extern int hmmpgmd_IsWithinRanges (int64_t sq_idx, RANGE_LIST *list );
+extern int hmmpgmd_GetRanges (RANGE_LIST *list, char *rangestr);
extern int process_searchopts(int fd, char *cmdstr, ESL_GETOPTS **ret_opts);
@@ -133,8 +142,8 @@ extern void master_process(ESL_GETOPTS *go);
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/hmmpgmd2msa.c b/hmmer/src/hmmpgmd2msa.c
index b79c72b..9f1a59a 100644
--- a/hmmer/src/hmmpgmd2msa.c
+++ b/hmmer/src/hmmpgmd2msa.c
@@ -220,7 +220,9 @@ hmmpgmd2msa(void *data, P7_HMM *hmm, ESL_SQ *qsq, int *incl, int incl_size, int
p += sizeof(P7_ALIDISPLAY);
ESL_ALLOC(ad2->mem, ad2->memsize);
+
memcpy(ad2->mem, p, ad->memsize);
+
p += ad2->memsize;
p7_alidisplay_Deserialize(ad2);
}
@@ -261,17 +263,294 @@ ERROR:
return status;
}
+/******************************************************************************
+ *# 2. The <hmmpgmd2stats> function
+ *****************************************************************************/
+
+
+
+/* Function: hmmpgmd2stats()
+ * Synopsis: Use a HMMPGMD-derived data stream to extract some simple
+ * statistics regarding its alignment.
+ * Purpose: Given a data stream from HMMPGMD of the form shown
+ * here, produce a vector of floats:
+ * positions 0 to hmm->M-1 are:
+ * Fraction of alignments which cover model at that position
+ * positions hmm->M to hmm->M*2-1
+ * Fraction of alignments which cover model at that position (mod hmm->M)
+ * with a similar residue
+ * positions hmm->M*2 to hmm->M*3-1
+ * Fraction of alignments which cover model at that position (mod hmm->M)
+ * with the consensus residue
+ *
+ * Args : data: a pointer to binary data in the format given above
+ * hmm: the HMM against which the alidisplay traces and
+ * additional sequences/traces are threaded to reach
+ * the returned msa.
+ *
+ * Returns: the location where the output vector will be placed.
+ * caller is responsible for freeing it later
+ *
+ */
+int hmmpgmd2stats(void *data, P7_HMM *hmm, float** statsOut)
+{
+ int i, j, k;
+ int status;
+
+ /* trace of the query sequence with N residues onto model with N match states */
+ P7_TRACE *qtr = NULL;
+
+ /* vars used to read from the binary data */
+ HMMD_SEARCH_STATS *stats = NULL; /* pointer to a single stats object, at the beginning of data */
+ P7_HIT *hits = NULL; /* an array of hits, at the appropriate offset in data */
+
+ P7_TOPHITS th;
+ P7_DOMAIN *dom;
+ P7_ALIDISPLAY *ad, *ad2;
+
+ int *cover, *id, *similar; //store statistics result per hit
+ int readPos, writePos; //for converting alignment contents into model indexing
+
+ char *p = (char*)data; /*pointer used to walk along data, must be char* to allow pointer arithmetic */
+
+ th.N = 0;
+ th.unsrt = NULL;
+ th.hit = NULL;
+
+ //storage for output
+ ESL_ALLOC( *statsOut, sizeof(float) * hmm->M * 3);
+
+ //storage for accumulation per hit
+ ESL_ALLOC( cover, sizeof(int) * hmm->M);
+ ESL_ALLOC( id, sizeof(int) * hmm->M);
+ ESL_ALLOC( similar, sizeof(int) * hmm->M);
+ for(k = 0; k < hmm->M; k++)
+ {
+ cover[k] = 0;
+ id[k] = 0;
+ similar[k] = 0;
+
+ (*statsOut)[k ] = 0;
+ (*statsOut)[k+hmm->M ] = 0;
+ (*statsOut)[k+hmm->M*2] = 0;
+ }
+
+ /* get search stats + hit info */
+ stats = (HMMD_SEARCH_STATS*)p;
+
+ /* sanity check */
+ if ( ( stats->Z_setby != p7_ZSETBY_NTARGETS && stats->Z_setby != p7_ZSETBY_OPTION && stats->Z_setby != p7_ZSETBY_FILEINFO )
+ || ( stats->domZ_setby != p7_ZSETBY_NTARGETS && stats->domZ_setby != p7_ZSETBY_OPTION && stats->domZ_setby != p7_ZSETBY_FILEINFO )
+ || stats->nhits > 10000000
+ || stats->elapsed > 1000000
+ ) {
+ status = eslFAIL;
+ goto ERROR;
+ }
+
+ /* ok, it looks legitimate */
+ p += sizeof(HMMD_SEARCH_STATS);
+ hits = (P7_HIT*)p;
+ p += sizeof(P7_HIT) * stats->nhits;
+
+ /* create a tophits object, use it to step through the alignments */
+ ESL_ALLOC( th.unsrt, sizeof(P7_HIT) * stats->nhits);
+ memcpy( th.unsrt, hits, sizeof(P7_HIT) * stats->nhits);
+ ESL_ALLOC( th.hit, sizeof(P7_HIT*) * stats->nhits);
+ for (i=0; i<stats->nhits; i++) {
+ th.hit[i] = &(th.unsrt[i]);
+ if ( th.hit[i]->ndom > 10000
+ || th.hit[i]->flags > p7_IS_INCLUDED + p7_IS_REPORTED + p7_IS_NEW + p7_IS_DROPPED + p7_IS_DUPLICATE
+ ) {
+ status = eslFAIL;
+ goto ERROR;
+ }
+ }
+
+ th.N = stats->nhits;
+ th.nreported = 0;
+ th.nincluded = 0;
+ th.is_sorted_by_sortkey = 0;
+ th.is_sorted_by_seqidx = 0;
+
+ for (i = 0; i < th.N; i++)
+ {
+ ESL_ALLOC( th.hit[i]->dcl, sizeof(P7_DOMAIN) * th.hit[i]->ndom);
+
+ if(th.hit[i]->flags & p7_IS_INCLUDED) th.nincluded++;
+
+ /* first grab all the P7_DOMAINs for the hit */
+ for (j=0; j < th.hit[i]->ndom; j++)
+ {
+ dom = (P7_DOMAIN*)p;
+ th.hit[i]->dcl[j].is_included = dom->is_included;
+ p += sizeof(P7_DOMAIN);
+ }
+
+ /* then grab the P7_ALIDISPLAYs for the hit */
+ for (j=0; j < th.hit[i]->ndom; j++)
+ {
+ ad = (P7_ALIDISPLAY*)p;
+ ESL_ALLOC(th.hit[i]->dcl[j].ad, sizeof(P7_ALIDISPLAY));
+ ad2 = th.hit[i]->dcl[j].ad;
+
+ ad2->memsize = ad->memsize;
+ ad2->rfline = ad->rfline;
+ ad2->mmline = ad->mmline;
+
+ ad2->csline = ad->csline ;
+ ad2->model = ad->model ;
+ ad2->mline = ad->mline ;
+ ad2->aseq = ad->aseq ;
+ ad2->ppline = ad->ppline;
+ ad2->N = ad->N;
+
+ ad2->hmmname = ad->hmmname;
+ ad2->hmmacc = ad->hmmacc ;
+ ad2->hmmdesc = ad->hmmdesc;
+ ad2->hmmfrom = ad->hmmfrom;
+ ad2->hmmto = ad->hmmto;
+ ad2->M = ad->M;
+
+ ad2->sqname = ad->sqname;
+ ad2->sqacc = ad->sqacc ;
+ ad2->sqdesc = ad->sqdesc;
+ ad2->sqfrom = ad->sqfrom;
+ ad2->sqto = ad->sqto;
+ ad2->L = ad->L;
+
+ p += sizeof(P7_ALIDISPLAY);
+
+ ESL_ALLOC(ad2->mem, ad2->memsize);
+
+ memcpy(ad2->mem, p, ad->memsize);
+
+ p += ad2->memsize;
+
+ p7_alidisplay_Deserialize(ad2);
+
+ if(th.hit[i]->flags & p7_IS_INCLUDED && th.hit[i]->dcl[j].is_included)
+ {
+ writePos = ad2->hmmfrom-1;
+ readPos = 0;
+ while(readPos < ad2->N)
+ {
+ //check if model covers residue
+ if(isupper(ad2->aseq[readPos]) || ad2->aseq[readPos] == '-')
+ {
+ cover[writePos]++;
+
+ //check mline for id
+ if(isalpha(ad2->mline[readPos]))
+ {
+ id[writePos]++;
+ similar[writePos]++;
+ }
+ //check mline for not-a-space
+ else if(ad2->mline[readPos] == '+')
+ {
+ similar[writePos]++;
+ }
+ writePos++;
+ }
+ readPos++;
+ }
+ }
+ }
+
+ //increment output, adjusting for overlaps
+ for(k = 0; k < hmm->M; k++)
+ {
+ if(cover[k]) (*statsOut)[k]+=1.0;
+
+ if(id[k]) (*statsOut)[k+hmm->M]+=(id[k]/cover[k]);
+ id[k] = 0;
+
+ if(similar[k]) (*statsOut)[k+hmm->M*2]+=(similar[k]/cover[k]);
+ similar[k] = 0;
+
+ cover[k] = 0;
+ }
+
+ }
+
+ for(i = 0; i < hmm->M*3; i++)
+ {
+ (*statsOut)[i] = (*statsOut)[i]/(th.nincluded);
+ }
+
+ for(i = hmm->M; i < hmm->M*3; i++)
+ {
+ if((*statsOut)[i%hmm->M])
+ {
+ (*statsOut)[i] = (*statsOut)[i]/(*statsOut)[i%hmm->M];
+ }
+ else
+ {
+ (*statsOut)[i] = 0.0;
+ }
+ }
+
+
+ /* free memory */
+ if (qtr != NULL) free(qtr);
+ qtr = NULL;
+
+ for (i = 0; i < th.N; i++) {
+ for (j=0; j < th.hit[i]->ndom; j++)
+ if(th.hit[i]->dcl[j].ad)
+ {
+ p7_alidisplay_Destroy(th.hit[i]->dcl[j].ad);
+ th.hit[i]->dcl[j].ad = NULL;
+ }
+
+ if (th.hit[i]->dcl != NULL) free (th.hit[i]->dcl);
+ th.hit[i]->dcl = NULL;
+ }
+ if (th.unsrt != NULL) free (th.unsrt);
+ th.unsrt = NULL;
+ if (th.hit != NULL) free (th.hit);
+ th.hit = NULL;
+
+ return eslOK;
+
+ERROR:
+ /* free memory */
+ if (qtr != NULL) free(qtr);
+ qtr = NULL;
+
+ for (i = 0; i < th.N; i++) {
+ for (j=0; j < th.hit[i]->ndom; j++)
+ if(th.hit[i]->dcl[j].ad)
+ {
+ p7_alidisplay_Destroy(th.hit[i]->dcl[j].ad);
+ th.hit[i]->dcl[j].ad = NULL;
+ }
+
+ if (th.hit[i]->dcl != NULL) free (th.hit[i]->dcl);
+ th.hit[i]->dcl = NULL;
+ }
+ if (th.unsrt != NULL) free (th.unsrt);
+ th.unsrt = NULL;
+ if (th.hit != NULL) free (th.hit);
+ th.hit = NULL;
+
+
+ return status;
+}
/*****************************************************************
- * 2. Test driver
+ * 3. Test driver
*****************************************************************/
-#define hmmpgmd2msa_TESTDRIVE
+//#define hmmpgmd2msa_TESTDRIVE
#ifdef hmmpgmd2msa_TESTDRIVE
+//gcc -o alistat_test -msse2 -std=gnu99 -g -O2 -I. -L. -I../easel -L../easel -D hmmpgmd2msa_TESTDRIVE hmmpgmd2msa.c -lhmmer -leasel -lm
+
/* Test driver. As written, requires files that won't be released with
* the distribution. So it should be replaced with a tighter test.
*/
@@ -289,25 +568,26 @@ main(int argc, char **argv) {
char errbuf[eslERRBUFSIZE];
int status;
+
+ float* statsOut;
+ int x;
//char *badstring = "asdlfuhasdfuhasdfhasdfhaslidhflaishdfliasuhdfliasuhdfliasudfh";
char *hmm_file = "esl_align.hmm";
char *fa_file = "esl_align.fa";
char *dat_file = "esl_align.big.bin";
-
-
if (argc > 1 ) {
ESL_ALLOC(hmm_file, sizeof(char) * (strlen(argv[1])+1) );
strcpy(hmm_file, argv[1]);
}
if (argc > 2 ) {
- ESL_ALLOC(fa_file, sizeof(char) * (strlen(argv[2])+1) );
- strcpy(fa_file, argv[2]);
+ ESL_ALLOC(dat_file, sizeof(char) * (strlen(argv[2])+1) );
+ strcpy(dat_file, argv[2]);
}
if (argc > 3 ) {
- ESL_ALLOC(dat_file, sizeof(char) * (strlen(argv[3])+1) );
- strcpy(dat_file, argv[3]);
+ ESL_ALLOC(fa_file, sizeof(char) * (strlen(argv[3])+1) );
+ strcpy(fa_file, argv[3]);
}
printf("hmmpgmd2msa:\nhmm: %s\nfa: %s\ndat: %s\n", hmm_file, fa_file, dat_file);
@@ -318,11 +598,11 @@ main(int argc, char **argv) {
if ( (status = p7_hmmfile_Read(hfp, &abc, &hmm)) != 0 ) goto ERROR;
/* read the query sequence */
- if ( (status = esl_sqfile_OpenDigital(abc, fa_file, eslSQFILE_UNKNOWN, NULL, &qfp)) != 0) goto ERROR;
- qsq = esl_sq_CreateDigital(abc);
- if ( (status = esl_sqio_Read(qfp, qsq)) != eslOK) goto ERROR;
-
+ //if ( (status = esl_sqfile_OpenDigital(abc, fa_file, eslSQFILE_UNKNOWN, NULL, &qfp)) != 0) goto ERROR;
+ //qsq = esl_sq_CreateDigital(abc);
+ //if ( (status = esl_sqio_Read(qfp, qsq)) != eslOK) goto ERROR;
+ //printf("sequence length %d\n", qsq->n);
/* get stats for the hmmd data */
@@ -334,11 +614,36 @@ main(int argc, char **argv) {
ESL_ALLOC(data, size);
fread(data, size, 1, fp);
- status = hmmpgmd2msa(data, hmm, qsq, NULL,0, NULL, 0, &msa);
+ status = hmmpgmd2stats(data, hmm, &statsOut);
+ //status = hmmpgmd2msa(data, hmm, qsq, NULL,0, NULL, 0, &msa);
+
+ for(x = 0; x < hmm->M*3; x++)
+ {
+ if(statsOut[x] > 1)
+ {
+ printf("problem x: %d %f\n", x, statsOut[x]);
+ }
+ }
+
+ for(x = 0; x < hmm->M; x++)
+ {
+ printf("%d", ((int)(10*statsOut[x])>=10)?9:(int)(10*statsOut[x]));
+ }
+ printf("\n");
+ for(x = hmm->M; x < hmm->M*2; x++)
+ {
+ printf("%d", ((int)(10*statsOut[x])>=10)?9:(int)(10*statsOut[x]));
+ }
+ printf("\n");
+ for(x = hmm->M*2; x < hmm->M*3; x++)
+ {
+ printf("%d", ((int)(10*statsOut[x])>=10)?9:(int)(10*statsOut[x]));
+ }
+ printf("\n");
if (status != eslOK) goto ERROR;
- eslx_msafile_Write(stdout, msa, eslMSAFILE_STOCKHOLM);
+ //esl_msafile_Write(stdout, msa, eslMSAFILE_STOCKHOLM);
exit(0);
@@ -351,15 +656,12 @@ ERROR:
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk/src/hmmpgmd2msa.c $
- * SVN $Id: build.c 3496 2011-02-28 22:18:49Z wheelert $
************************************************************/
diff --git a/hmmer/src/hmmpgmd_client_example.pl b/hmmer/src/hmmpgmd_client_example.pl
new file mode 100755
index 0000000..e4d42fd
--- /dev/null
+++ b/hmmer/src/hmmpgmd_client_example.pl
@@ -0,0 +1,648 @@
+#!/usr/bin/env perl
+
+=head1 SYNOPSIS
+
+ This script is a very basic version of what is performed by the HMMER website
+ searches. The script will connet to a hmmpgmd client and take the input fasta file
+ (containing one or more sequences) and push each sequence down the socket
+ to be searched by the master. When the results come back, the status is
+ read. If successful, the whole message is read from the socket and written
+ to file in /tmp, as well as being stored in a scalar. The scalar is then
+ unpacked, just to the level of the stats. The sequence is searched against
+ the first database in the hmmpgmd list of databases (whether sequence of HMM).
+
+ NOTE: The socket call is wrapped up in a sig alarm that will die terminate when
+ it does not response. Under normal website operation, this is set to 30 secs.
+
+
+=cut
+
+use strict;
+use warnings;
+use Carp;
+use IO::Socket::INET;
+use Getopt::Long;
+
+#------------------------------------------------------------------------------
+#Process the options;
+#------------------------------------------------------------------------------
+
+my ( $map, $file, $nocleanup, $peerAddr, $peerPort, $proto, $verbose, $help, $timeout );
+
+$timeout = 30;
+GetOptions(
+ "map=s" => \$map,
+ "file=s" => \$file,
+ "PeerAddr=s" => \$peerAddr,
+ "PeerPort=s" => \$peerPort,
+ "Proto=s" => \$proto,
+ "timeout=i" => \$timeout,
+ "verbose" => \$verbose,
+ "nocleanup" => \$nocleanup,
+ "h|help" => \$help
+) or die "Failed to parse options, run -h :[$@]\n";
+
+if ( !defined($map) ) {
+ warn("No accessions will be reported, just hmmpgmd index.\n");
+}
+elsif ( !-s $map ) {
+ warn
+"A map file [$map] was specified, but it either has no size or does not exist.\n";
+ $help = 1;
+}
+
+if ( defined($file) ) {
+ unless ( -s $file ) {
+ warn "\n$file either does not exist, or has no size\n\n";
+ $help = 1;
+ }
+}
+else {
+ warn "\nPlease specify a query fasta filename!\n\n";
+ $help = 1;
+}
+
+help() if ($help);
+
+#------------------------------------------------------------------------------
+#Now get the socket connection.
+#------------------------------------------------------------------------------
+
+my $connection;
+$connection = {
+ PeerAddr => defined($peerAddr) ? $peerAddr : '127.0.0.1',
+ PeerPort => defined($peerPort) ? $peerPort : '51371',
+ Proto => defined($proto) ? $proto : 'tcp'
+};
+
+$verbose && print STDERR "Getting socket connection";
+my $sock = IO::Socket::INET->new(%$connection)
+ or die "Could not connect to socket: [$!] \n";
+$sock->autoflush(1);
+
+#------------------------------------------------------------------------------
+# Read in the mapping file
+#------------------------------------------------------------------------------
+# In this example, the mappings are read into memory. If you have a large
+#database, you may want to consider a NoSQL alternative such as Redis or
+#MongoDB
+
+my $mappings;
+if ($map) {
+ $mappings = readMapFile($map);
+}
+
+#------------------------------------------------------------------------------
+main();
+
+sub main {
+
+ #Build up the connection string
+ my ($optStr);
+
+ #If you are using a hmm database, you would change this to be --hmmdb
+ $optStr = '@--seqdb 1';
+
+ #open the input fasta file.
+ my $c = 1;
+ local $/ = "\n>";
+ open( my $fh, '<', $file ) or die "Could not open $file:[$!]\n";
+ my @fasta = <$fh>;
+ close($fh);
+
+ foreach (@fasta) {
+ $verbose && print STDERR "Working on sequence #: $c\n";
+
+ my $seq = $_;
+ $seq =~ s/>$//mx;
+ $seq =~ s/^([^>])/>$1/x;
+ my ($query_name) = $seq =~ /^>([^\s]*)/mx;
+ $seq .= "\n//"; #add on the file delimiter required by hmmer; That's all there is ...
+
+ $verbose && print STDERR "sending |$optStr\n$seq| to the socket\n";
+
+ #Print the query to the socket
+ print $sock "$optStr\n$seq";
+ my ( $stats, $hits );
+
+ #Wrap this whole call in a sig alarm.
+ local $SIG{ALRM} = sub { croak "Failed to get response from hmmpgmd" };
+ alarm $timeout;
+ eval {
+ #open the file where we store the binary data.
+ open( my $outFH, '>', "/tmp/hmmer.$$.$c.out" )
+ or die "Could not open /tmp/hmmer.$$.c.out:[$!]\n";
+ ( $stats, $hits ) = &unpackResults( $sock, $outFH, $verbose );
+ close($outFH) or croak "Could not close tmp file";
+ };
+ if ($@) {
+ die "Timeout on the socket:$@\n";
+ }
+ alarm 0;
+
+ $verbose && print STDERR "Got " . $stats->{nincluded} . " hits\n";
+ printHits($hits);
+ $c++;
+ }
+
+ #------------------------------------------------------------------------------
+ # Normally we will want to clean up /tmp, but occasionally it will be useful.
+ #------------------------------------------------------------------------------
+
+ unless ($nocleanup) {
+ $verbose && print STDERR "Cleaning up /tmp\n";
+ my @files = glob("/tmp/hmmer.$$.*");
+ foreach my $f (@files) {
+ unlink($f) if ( -e $f );
+ }
+ }
+ exit;
+}
+
+#------------------------------------------------------------------------------
+#Subroutines
+#------------------------------------------------------------------------------
+#------------------------------------------------------------------------------
+
+=head1 SUBROUTINES
+
+
+=cut
+
+
+=head2 printHits
+
+ Title : printHits
+ Incept : finnr, Apr 22, 2013 5:16:13 PM
+ Usage : printHits( $hitArrayRef );
+ Function : Prints out elements form the unpacked data sturcture so that
+ : alignments can be viewed.
+ Args : The array reference containing the unpacked data
+ Returns : 1
+
+=cut
+
+sub printHits {
+ my ($hits) = @_;
+
+ my $ruler = '-' x 80;
+
+ #Use a flush buffer, so results are written in the entirity.
+ local $/ = 1;
+ foreach my $seq (@$hits) {
+ next if ( !$seq->{nincluded} );
+ my $str = join( "\t",
+ "Seq hit", $seq->{name}, $seq->{desc}, $seq->{score}, $seq->{evalue} );
+ print "$str\n\n";
+ foreach my $dom ( @{ $seq->{domains} } ) {
+ if ( $dom->{is_included} ) {
+ print "Domain hit "
+ . $seq->{name} . "/"
+ . $dom->{ienv} . "-"
+ . $dom->{jenv}
+ . ": score "
+ . sprintf( '%.2f', $dom->{bitscore} )
+ . ", E-value (individual) "
+ . $dom->{ievalue}
+ . " E-value (conditional) "
+ . $dom->{cevalue} . "\n\n";
+ print sprintf( "\t%-30s %6d %s %-6d\n",
+ $seq->{name}, $dom->{alisqfrom}, $dom->{aliaseq}, $dom->{alisqto} );
+ print sprintf( "\t%37s %s\n", '', $dom->{alimline} );
+ print sprintf(
+ "\t%-30s %6d %s %-6d\n",
+ $dom->{alihmmname}, $dom->{alihmmfrom},
+ $dom->{alimodel}, $dom->{alihmmto}
+ );
+ print sprintf( "\t%37s %s\n\n", '', $dom->{alippline} );
+ }
+ }
+ print "$ruler\n";
+ }
+ return 1;
+}
+
+#------------------------------------------------------------------------------
+=head2 unpackResults
+
+ Title : unpackResu;ts
+ Incept : finnr, Apr 22, 2013 5:18:15 PM
+ Usage : unpackResults( $socket, $fh)
+ Function : Takes the sockect connection to hmmpgmd and reads the response. If
+ : successful it will unpack the binary data structure and build a
+ : Perl data structure.
+ Args : An IO::Socket::INET to hmmpgmd, filehandle to temp file.
+ Returns : Perl data sturcture of results.
+ Note : Include a data export module such as Data::Priner to reveal
+ : the entirity of the HMMER result data structure. Everything that
+ : is available in the commandline version is present.
+
+=cut
+
+sub unpackResults {
+ my ( $socket, $fh ) = @_;
+
+ #Ths is the unpacking template and length.
+ my $statusTemplate = "I x4 Q";
+ my $STATUS = 16;
+ my $rl = read( $sock, my $statusB, $STATUS );
+
+ #Read the status from the socket.
+ unless ( $rl == $STATUS ) {
+ die "Error reading STATUS from socket. Requested " . $STATUS
+ . "bytes, but only read $rl bytes\n";
+ }
+
+ #Unpack the status.
+ my ( $status, $messLen ) = unpack( $statusTemplate, $statusB );
+ if ( $status == 0 ) #Everything was successful
+ {
+ #read the entire results from the socket. We will store this
+ #in a temporary file. This is not entirely necessary.
+ my $binaryData = readAndStore( $socket, $messLen, $fh );
+
+ #We now process the binary data structure returned by
+ #hmmpgmd. To make the code more readable, we will
+ #unpack section by section, cutting off the front
+ #of the binary and processing just that bit.
+
+ my $bit = substr( $binaryData, 0, 120, '' );
+
+ #Get a hash reference back containing all the search
+ #stats, such as time, number of hits
+ my $stats = unpackStats($bit);
+
+ my $hits = [];
+
+ if ( $stats->{nreported} ) {
+
+ #We have at least some hits to unpack....
+ #The first hit section contains all of the sequence matches
+ #but not domain mataches.
+ for ( my $n = 1 ; $n <= $stats->{nreported} ; $n++ ) {
+ $bit = substr( $binaryData, 0, 152, '' );
+ unpackHit( $bit, $hits, $stats->{Z} );
+ }
+
+ #Now, unpack the domain hits for the sequences
+ for ( my $h = 0 ; $h < $stats->{nreported} ; $h++ ) {
+ if ( $hits->[$h]->{ndom} ) {
+ my $dombit = substr( $binaryData, 0, 72 * $hits->[$h]->{ndom}, '' );
+
+ #This gets the fixed size fields
+ unpackDomain( $dombit, $hits, $h, $stats );
+ for ( my $a = 1 ; $a <= $hits->[$h]->{ndom} ; $a++ ) {
+
+ #Now unpack the variable sized fields.
+ unpackAli( \$binaryData, $hits, $h, $a );
+ }
+ }
+ }
+ }
+ return ( $stats, $hits );
+ }
+ else #There was an error, read the message
+ {
+ $rl = read( $sock, my $errorLine, $messLen );
+ my $errorMessage = unpack( "a$messLen", $errorLine );
+ die "There was an error reported by HMMER: $errorMessage\n";
+ }
+}
+
+#------------------------------------------------------------------------------
+=head2 unpackAli
+
+ Title : unpackAli
+ Incept : finnr, Apr 22, 2013 7:53:39 PM
+ Usage : unpackAli( $binaryData, $hits, $hitCount, $domCount);
+ Function : Takes the binary data, gets the alignment data, which in this case
+ : are dynamic fields. This uses the data found within the hit/domain
+ : information to locate and read the appropriate amount of bytes.
+ Args : The binary data stream, the hit data structure and the hit and domain
+ : positions.
+ Returns : 1
+
+=cut
+
+sub unpackAli {
+ my ( $binary, $hits, $h, $a ) = @_;
+
+ my $bit = substr( $$binary, 0, 168, '' );
+ my @aliKeys =
+ qw(rfline mmline csline model mline aseq ppline N hmmname hmmacc hmmdesc
+ hmmfrom hmmto M sqname sqacc sqdesc sqfrom sqto L memsize mem);
+ my @ali = unpack( "Q7 I x4 Q3 I3 x4 Q6 I x4 Q", $bit );
+ my %ali = map { $aliKeys[$_] => $ali[$_] } 0 .. $#aliKeys;
+
+ $bit = substr( $$binary, 0, $ali{memsize}, '' );
+ my @unpackElements = qw(0 1 2 3 4 5 6 8 9 10 14 15 16 20);
+
+ my $offset = 0;
+ for ( my $i = 0 ; $i < $#unpackElements ; $i++ ) {
+ my $e = $unpackElements[$i];
+ next if ( $ali[$e] == 0 ); #Then this element is not defined in the binary
+ my $ne; #Store the next defined element.
+ for ( my $j = $i + 1 ; $j <= $#unpackElements ; $j++ ) {
+ if ( $ali[ $unpackElements[$j] ] > 0 ) {
+ $ne = $unpackElements[$j];
+ $j = $#unpackElements + 1; #break the loop
+ }
+ }
+
+ #The number of bytes that we need to unpack is:
+ my $l = ( $ali[$ne] - $ali[$e] );
+
+ #Define the unpack template:
+ my $template = $offset > 0 ? "x$offset a$l" : "a$l";
+ my $s = $ali[$e] == 0 ? '' : unpack( $template, $bit );
+ chop($s); #This removes the \0 - C string terminator
+ $ali{ $aliKeys[$e] } = $s;
+
+ #keep a note of what has aready been unpacked.
+ $offset += $l;
+ }
+
+ foreach my $k (@aliKeys) {
+ next if $k =~ /memsize/;
+ $hits->[$h]->{domains}->[ $a - 1 ]->{ 'ali' . $k } = $ali{$k};
+ }
+ return 1;
+}
+
+#------------------------------------------------------------------------------
+=head2 unpackDomain
+
+ Title : unpackDomain
+ Incept : finnr, Apr 22, 2013 7:59:59 PM
+ Usage : unpackDomain( $binary, $hits, $h, $stats );
+ Function : unpack the domain hit from the binary string.
+ Args : binary string, the hit array reference, the sequence position,
+ : stats hash ref.
+ Returns : 1
+
+=cut
+
+sub unpackDomain {
+ my ( $binary, $hits, $h, $stats ) = @_;
+
+ my @dom = unpack( "i4 f5 x4 d i2 Q x8" x $hits->[$h]->{ndom}, $binary );
+ my $noDomKeys = 13;
+
+ #*** If the P7_DOMAIN struc changes, modify these numbers
+ for ( my $d = 0 ; $d < $hits->[$h]->{ndom} ; $d++ ) {
+ my $off = ( $d * $noDomKeys );
+ my $ievalue = sprintf( "%.1e", exp( $dom[ $off + 9 ] ) * $stats->{Z} );
+ $ievalue = $ievalue < 0.0001 ? $ievalue : sprintf( "%.6g", $ievalue );
+ my $cevalue = sprintf( "%.1e", exp( $dom[ $off + 9 ] ) * $stats->{domZ} );
+ $cevalue = $cevalue < 0.0001 ? $cevalue : sprintf( "%.6g", $cevalue );
+ $hits->[$h]->{domains}->[$d] = {
+ ienv => $dom[$off],
+ jenv => $dom[ $off + 1 ],
+ iali => $dom[ $off + 2 ],
+ jali => $dom[ $off + 3 ],
+ bitscore => $dom[ $off + 8 ],
+ ievalue => $ievalue,
+ cevalue => $cevalue,
+ oasc => sprintf( "%4.2f",
+ ( $dom[ $off + 9 ] / ( 1.0 + abs( $dom[ $off + 1 ] - $dom[$off] ) ) ) ),
+ bias => sprintf( "%.2f", abs( $dom[ $off + 9 ] * 1.442695041 ) ),
+ is_reported => $dom[ $off + 10 ],
+ is_included => $dom[ $off + 11 ],
+ };
+
+ }
+ return 1;
+}
+
+#------------------------------------------------------------------------------
+=head2 unpackHit
+
+ Title : unpackHit
+ Incept : finnr, Apr 22, 2013 8:22:55 PM
+ Usage : unpackHit($binary, $hitArray, $dbsize);
+ Function : unpack a single sequence match, pushing the data into the hitArray
+ : reference. The database size is also passed in to correctly set
+ : the e-value.
+ Args : Binary data, hit array, int of the database size
+ Returns : 1
+
+=cut
+
+sub unpackHit {
+ my ( $binary, $hits, $z ) = @_;
+
+ my @hitKeys =
+ qw(name acc desc window_length sort_key score pre_score sum_score
+ pvalue pre_pvalue sum_pvalue nexpected nregions nclustered noverlaps
+ nenvelopes ndom flags nreported nincluded best_domain seqidx subseq_start dcl offset);
+ my $noHitsKeys = scalar(@hitKeys);
+ my $raw_hits = [];
+ @{$raw_hits} = unpack( "Q3 I x4 d f3 x4 d3 f I9 Q4", $binary );
+
+ my $evalue = sprintf( "%.1e", exp( $raw_hits->[8] ) * $z );
+ $evalue = $evalue < 0.0001 ? $evalue : sprintf( "%.6g", $evalue );
+
+ my $acc = $raw_hits->[0];
+ my $desc = $raw_hits->[2];
+
+ if ($mappings) {
+ ( $acc, $desc ) = split( /\s+/xm, $mappings->[ $raw_hits->[0] ], 2 );
+ }
+
+ push @$hits,
+ {
+ name => $acc,
+ acc => $raw_hits->[1],
+ desc => $desc,
+ score => sprintf( "%.1f", $raw_hits->[5] ),
+ bias => sprintf( "%.1f", abs( $raw_hits->[6] - $raw_hits->[5] ) ),
+ pvalue => $raw_hits->[8],
+ nregions => $raw_hits->[12],
+ ndom => $raw_hits->[16],
+ flags => $raw_hits->[17],
+ nreported => $raw_hits->[18],
+ nincluded => $raw_hits->[19],
+ evalue => $evalue,
+ dcl => $raw_hits->[23]
+ };
+ return 1;
+}
+
+#------------------------------------------------------------------------------
+=head2 readAndStore
+
+ Title : readAndStore
+ Incept : finnr, Apr 22, 2013 8:13:49 PM
+ Usage : readAndStore($socket, $messageLength, $filehandle)
+ Function : Reads the message (length in bytes) from the socket and
+ : writes the binary response to the temporary file, returning the
+ : binary data in scalar context.
+ Args : IO::Socket::INET, message length, filehandle.
+ Returns : binary data in scalar
+
+=cut
+
+sub readAndStore {
+ my ( $socket, $messLen, $fh ) = @_;
+
+ #Read the number of bytes in the messlen, from the socket, into the results
+ #scalar (binary format)
+ my $rl = read( $socket, my $resultsB, $messLen );
+
+ #Check that the read length is correct.
+ unless ( $rl == $messLen ) {
+ die "Error reading STATS from socket. Requested " . $messLen
+ . " bytes, but only read $rl bytes\n";
+ }
+
+ #Print the results to the file
+ print $fh $resultsB;
+
+ #return the binary string
+ return $resultsB;
+}
+
+#------------------------------------------------------------------------------
+=head2 unpackStats
+
+ Title : unpackStats
+ Incept : finnr, Apr 22, 2013 8:09:15 PM
+ Usage : unpackStats($binaryData)
+ Function : Unpacks the search stats binary data.
+ Args : The binary data
+ Returns : hashRef containing the search statistics.
+
+=cut
+
+sub unpackStats {
+ my ($bit) = @_;
+
+ #The binary template
+ my $statsTemplate = "d5 I2 q9";
+
+ #Store how far we have read through the file
+ my @stats = unpack( $statsTemplate, $bit );
+
+ #This is the literal mean of each values. Store in a more informative
+ #hash.
+ my @statsKeys = qw(elapsed user sys Z domZ Z_setby domZ_setby nmodels nseqs
+ n_past_msv n_past_bias n_past_vit n_past_fwd nhits nreported nincluded );
+
+ unless ( $#stats == $#statsKeys ) {
+ die "Missmatch between the number of stats data elements recieved ["
+ . $#stats
+ . "] and expected [$#statsKeys]\n";
+ }
+
+ my %stats = map { $statsKeys[$_] => $stats[$_] } 0 .. $#statsKeys;
+
+ #Return the hashref containing the stats.
+ return \%stats;
+}
+
+#------------------------------------------------------------------------------
+=head2 readMapFile
+
+ Title : readMapFile
+ Incept : finnr, Apr 22, 2013 8:00:16 PM
+ Usage : readMapFile('/path/to/file');
+ Function : Reads the map file produced by esl-reformat into an array so that
+ : sequence 'meta' data can be reapplied.
+ Args : Path to file.
+ Returns : ArrayRef containing sequence meta data. The sequence index is
+ : used as the index into the array.
+
+=cut
+
+sub readMapFile {
+ my ($mapfile) = @_;
+
+#Read the file produced by hmmpgmd, using the sequence index/name as the array
+#index. This will produce an array where the first zeroth element is uninitalized.
+
+ my @mappings;
+
+ $verbose && print STDERR "Reading map file, $mapfile\n";
+
+ my $M;
+ open( $M, '<', $mapfile ) or die "Could not open map file:[$!]\n";
+ while (<$M>) {
+ chomp;
+ my ( $idx, $header ) = split( /\s+/xm, $_, 2 );
+ next if ( !defined($header) );
+ $mappings[$idx] = $header;
+ }
+ close($M);
+
+ #Return the array reference to the
+ return ( \@mappings );
+}
+
+#------------------------------------------------------------------------------
+=head2 help
+
+ Title : help
+ Incept : finnr, Apr 22, 2013 8:03:50 PM
+ Usage : help
+ Function : prints some help
+ Args : none
+ Returns : nothing
+
+=cut
+
+sub help {
+
+ print <<'EOF';
+
+Summary: Sample hmmpgmd client
+
+Usage: hmmpgmd_client_example.pl [options] -file seq.fa
+
+ file : The name of the fasta file. The file is not being validated; give it
+ : rubbish and bad things will happen.
+ map : The map file produced by esl-reformat when using hmmpgmd format option.
+ : If this is not provided, then it will just report the index numbers.
+ h|help : Prints this help statement
+ verbose : Prints debug statements/progress reports.
+ nocleanup : When this flag is set, leaves the hmmpgmd binary output files in
+ : /tmp. The files has the format hmmer.#PID.#sequence.out.
+ timeout : Change the default timeout, 30 secs. Time in seconds.
+
+ #The following options control which hmmpgmd master is linked by the client. They are used
+ #by IO::Socket::INET, see CPAN for more information.
+
+ PeerAddr : The IP address of the machine where the master is running, default 127.0.0.1
+ PeerPort : The port number that the master is listening on, default 51371
+ Proto : The socket protocol - should not change this unless the master
+ : changes its communications protocol, which is tcp
+
+ Also, you can run:
+
+ perldoc hmmpgmd_client_example.pl
+
+ for more information.
+
+Details: This example script shows how to search sequences in a FASTA file against an
+hmmpgmd format database file, using HMMER's hmmpgmd. Steps include:
+
+(1) Generate an hmmpgmd format file, including map file, from a FASTA format
+ file, for example using the HMMER/Easel tool esl-reformat:
+
+ prompt% esl-reformat --id_map my.hmmpgmd.map hmmpgmd my.fasta > my.hmmpgmd
+
+(2) Start the hmmpgmd master/worker, run the following commands:
+
+ prompt% hmmpgmd --master --seqdb my.hmmpgmd
+ prompt% hmmpgmd --worker 127.0.0.1 --cpu 4
+
+(3) Run this client to connect to the master
+
+(4) Submit one query to hmmpgmd for each sequence in the query file, retrieve results
+ from the master, then unpack the custom (and undocumented) binary. Examples of
+ unpacking the binary are seen in the unpackXXX() functions.
+
+EOF
+
+ exit 0;
+
+}
diff --git a/hmmer/src/hmmpress.c b/hmmer/src/hmmpress.c
index 6d5f66e..169ae55 100644
--- a/hmmer/src/hmmpress.c
+++ b/hmmer/src/hmmpress.c
@@ -164,13 +164,13 @@ open_db_files(ESL_GETOPTS *go, char *basename, FILE **ret_mfp, FILE **ret_ffp,
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmpress.c $
- * SVN $Id: hmmpress.c 3630 2011-08-03 14:09:27Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/hmmpress.itest.pl b/hmmer/src/hmmpress.itest.pl
index 809a5a5..bd95197 100755
--- a/hmmer/src/hmmpress.itest.pl
+++ b/hmmer/src/hmmpress.itest.pl
@@ -6,7 +6,7 @@
# Example: ./hmmpress.itest.pl ./hmmpress ../testsuite/minifam.hmm foo
#
# SRE, Thu Nov 12 08:47:56 2009 [Janelia]
-# SVN $Id: hmmpress.itest.pl 3042 2009-11-12 14:44:48Z eddys $
+# SVN $Id$
$hmmpress = shift; # The hmmpress executable. example: "./hmmpress"
$minifam = shift; # An HMM database. example: "../testsuite/minifam.hmm"
diff --git a/hmmer/src/hmmscan.c b/hmmer/src/hmmscan.c
index 868bdbe..e089632 100644
--- a/hmmer/src/hmmscan.c
+++ b/hmmer/src/hmmscan.c
@@ -56,9 +56,9 @@ typedef struct {
#endif
#ifdef HAVE_MPI
-#define DAEMONOPTS "-o,--tblout,--domtblout,--mpi,--stall"
+#define DAEMONOPTS "-o,--tblout,--domtblout,--pfamtblout,--mpi,--stall"
#else
-#define DAEMONOPTS "-o,--tblout,--domtblout"
+#define DAEMONOPTS "-o,--tblout,--domtblout,--pfamtblout"
#endif
static ESL_OPTIONS options[] = {
@@ -66,8 +66,9 @@ static ESL_OPTIONS options[] = {
{ "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 },
/* Control of output */
{ "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
- { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <s>", 2 },
- { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <s>", 2 },
+ { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <f>", 2 },
+ { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <f>", 2 },
+ { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format <f>", 2 },
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
@@ -220,6 +221,7 @@ output_header(FILE *ofp, ESL_GETOPTS *go, char *hmmfile, char *seqfile)
if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--domtblout") && fprintf(ofp, "# per-dom hits tabular output: %s\n", esl_opt_GetString(go, "--domtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--pfamtblout")&& fprintf(ofp, "# pfam-style tabular hit output: %s\n", esl_opt_GetString(go, "--pfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -325,6 +327,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
FILE *ofp = stdout; /* output file for results (default stdout) */
FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */
+ FILE *pfamtblfp= NULL; /* output stream for pfam tabular output (--pfamtblout) */
int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */
ESL_SQFILE *sqfp = NULL; /* open seqfile */
P7_HMMFILE *hfp = NULL; /* open HMM database file */
@@ -397,9 +400,10 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Open the results output files */
if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) esl_fatal("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); }
- if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); }
- if (esl_opt_IsOn(go, "--domtblout")) { if ((domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp")); }
-
+ if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblout")); }
+ if (esl_opt_IsOn(go, "--domtblout")) { if ((domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblout")); }
+ if (esl_opt_IsOn(go, "--pfamtblout")){ if ((pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) esl_fatal("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); }
+
output_header(ofp, go, cfg->hmmfile, cfg->seqfile);
#ifdef HMMER_THREADS
@@ -505,8 +509,9 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
- if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, info->th, info->pli);
esl_stopwatch_Stop(w);
p7_pli_Statistics(ofp, info->pli, w);
@@ -527,6 +532,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
*/
if (tblfp) p7_tophits_TabularTail(tblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go);
if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go);
+ if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp,"hmmscan", p7_SEARCH_SEQS, cfg->seqfile, cfg->hmmfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for successful exit
@@ -555,6 +561,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (ofp != stdout) fclose(ofp);
if (tblfp) fclose(tblfp);
if (domtblfp) fclose(domtblfp);
+ if (pfamtblfp) fclose(pfamtblfp);
return eslOK;
ERROR:
@@ -732,6 +739,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
FILE *ofp = stdout; /* output file for results (default stdout) */
FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */
+ FILE *pfamtblfp= NULL; /* output stream for pfam-style tabular output (--pfamtblout) */
int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */
P7_BG *bg = NULL; /* null model */
ESL_SQFILE *sqfp = NULL; /* open seqfile */
@@ -797,6 +805,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
mpi_failure("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp"));
if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL)
mpi_failure("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp"));
+ if (esl_opt_IsOn(go, "--pfamtblout") && (pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL)
+ mpi_failure("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout"));
ESL_ALLOC(list, sizeof(MSV_BLOCK));
list->complete = 0;
@@ -930,8 +940,9 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_tophits_Targets(ofp, th, pli, textw); fprintf(ofp, "\n\n");
p7_tophits_Domains(ofp, th, pli, textw); fprintf(ofp, "\n\n");
- if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
- if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
+ if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
+ if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
+ if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, th, pli);
esl_stopwatch_Stop(w);
p7_pli_Statistics(ofp, pli, w);
@@ -973,6 +984,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
*/
if (tblfp) p7_tophits_TabularTail(tblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go);
if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go);
+ if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp, "hmmscan", p7_SEARCH_SEQS, cfg->seqfile, cfg->hmmfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for successful exit
@@ -989,6 +1001,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (ofp != stdout) fclose(ofp);
if (tblfp) fclose(tblfp);
if (domtblfp) fclose(domtblfp);
+ if (pfamtblfp) fclose(pfamtblfp);
return eslOK;
@@ -1087,7 +1100,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_bg_SetLength(bg, qsq->n);
p7_oprofile_ReconfigLength(om, qsq->n);
- p7_Pipeline(pli, om, bg, qsq, th);
+ p7_Pipeline(pli, om, bg, qsq, NULL, th);
p7_oprofile_Destroy(om);
p7_pipeline_Reuse(pli);
@@ -1174,7 +1187,7 @@ serial_loop(WORKER_INFO *info, P7_HMMFILE *hfp)
p7_bg_SetLength(info->bg, info->qsq->n);
p7_oprofile_ReconfigLength(om, info->qsq->n);
- p7_Pipeline(info->pli, om, info->bg, info->qsq, info->th);
+ p7_Pipeline(info->pli, om, info->bg, info->qsq, NULL, info->th);
p7_oprofile_Destroy(om);
p7_pipeline_Reuse(info->pli);
@@ -1245,7 +1258,7 @@ pipeline_thread(void *arg)
P7_OM_BLOCK *block;
void *newBlock;
- impl_ThreadInit();
+ impl_Init();
obj = (ESL_THREADS *) arg;
esl_threads_Started(obj, &workeridx);
@@ -1268,7 +1281,7 @@ pipeline_thread(void *arg)
p7_bg_SetLength(info->bg, info->qsq->n);
p7_oprofile_ReconfigLength(om, info->qsq->n);
- p7_Pipeline(info->pli, om, info->bg, info->qsq, info->th);
+ p7_Pipeline(info->pli, om, info->bg, info->qsq, NULL, info->th);
p7_oprofile_Destroy(om);
p7_pipeline_Reuse(info->pli);
@@ -1293,14 +1306,14 @@ pipeline_thread(void *arg)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: hmmscan.c 3976 2012-04-03 12:09:10Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmscan.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/hmmsearch.c b/hmmer/src/hmmsearch.c
index d5127e0..f0872ed 100644
--- a/hmmer/src/hmmsearch.c
+++ b/hmmer/src/hmmsearch.c
@@ -62,10 +62,10 @@ static ESL_OPTIONS options[] = {
{ "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 },
/* Control of output */
{ "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
- { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of all hits to file <s>", 2 },
- { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <s>", 2 },
- { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <s>", 2 },
- { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format <s>", 2 },
+ { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of all hits to file <f>", 2 },
+ { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <f>", 2 },
+ { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <f>", 2 },
+ { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format <f>", 2 },
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
@@ -90,6 +90,7 @@ static ESL_OPTIONS options[] = {
{ "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 },
{ "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 },
{ "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 },
+
/* Other options */
{ "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 },
{ "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 },
@@ -104,6 +105,16 @@ static ESL_OPTIONS options[] = {
{ "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 12 },
{ "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 12 },
#endif
+
+ /* Restrict search to subset of database - hidden because these flags are
+ * (a) currently for internal use
+ * (b) probably going to change
+ * Doesn't work with MPI
+ */
+ { "--restrictdb_stkey", eslARG_STRING, "0", NULL, NULL, NULL, NULL, NULL, "Search starts at the sequence with name <s> (not with MPI)", 99 },
+ { "--restrictdb_n",eslARG_INT, "-1", NULL, NULL, NULL, NULL, NULL, "Search <j> target sequences (starting at --restrictdb_stkey)", 99 },
+ { "--ssifile", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "restrictdb_x values require ssi file. Override default to <s>", 99 },
+
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -122,14 +133,17 @@ struct cfg_s {
int do_mpi; /* TRUE if we're doing MPI parallelization */
int nproc; /* how many MPI processes, total */
int my_rank; /* who am I, in 0..nproc-1 */
+
+ char *firstseq_key; /* name of the first sequence in the restricted db range */
+ int n_targetseq; /* number of sequences in the restricted range */
};
static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg);
-static int serial_loop (WORKER_INFO *info, ESL_SQFILE *dbfp);
+static int serial_loop (WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs);
#ifdef HMMER_THREADS
#define BLOCK_SIZE 1000
-static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp);
+static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs);
static void pipeline_thread(void *arg);
#endif /*HMMER_THREADS*/
@@ -233,6 +247,10 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *hmmfile, char *seqfile)
if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") && fprintf(ofp, "# Restrict db to start at seq key: %s\n", esl_opt_GetString(go, "--restrictdb_stkey")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--restrictdb_n") && fprintf(ofp, "# Restrict db to # target seqs: %d\n", esl_opt_GetInteger(go, "--restrictdb_n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--ssifile") && fprintf(ofp, "# Override ssi file to: %s\n", esl_opt_GetString(go, "--ssifile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--domZ") && fprintf(ofp, "# domain search space set to: %.0f\n", esl_opt_GetReal(go, "--domZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -268,9 +286,29 @@ main(int argc, char **argv)
cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */
cfg.nproc = 0; /* this gets reset below, if we init MPI */
cfg.my_rank = 0; /* this gets reset below, if we init MPI */
+ cfg.firstseq_key = NULL;
+ cfg.n_targetseq = -1;
process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.dbfile);
+/* is the range restricted? */
+
+#ifndef eslAUGMENT_SSI
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n") || esl_opt_IsUsed(go, "--ssifile") )
+ p7_Fail("Unable to use range-control options unless an SSI index file is available. See 'esl_sfetch --index'\n");
+#else
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") )
+ if ((cfg.firstseq_key = esl_opt_GetString(go, "--restrictdb_stkey")) == NULL) p7_Fail("Failure capturing --restrictdb_stkey\n");
+
+ if (esl_opt_IsUsed(go, "--restrictdb_n") )
+ cfg.n_targetseq = esl_opt_GetInteger(go, "--restrictdb_n");
+
+ if ( cfg.n_targetseq != -1 && cfg.n_targetseq < 1 )
+ p7_Fail("--restrictdb_n must be >= 1\n");
+
+#endif
+
+
/* Figure out who we are, and send control there:
* we might be an MPI master, an MPI worker, or a serial program.
*/
@@ -363,6 +401,16 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile");
else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, cfg->dbfile);
+
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) {
+ if (esl_opt_IsUsed(go, "--ssifile"))
+ esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile"));
+ else
+ esl_sqfile_OpenSSI(dbfp, NULL);
+ }
+
+
+
/* Open the query profile HMM file */
status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &hfp, errbuf);
if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf);
@@ -397,7 +445,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
{
/* One-time initializations after alphabet <abc> becomes known */
output_header(ofp, go, cfg->hmmfile, cfg->dbfile);
- dbfp->abc = abc; //ReadBlock requires knowledge of the alphabet to decide how best to read blocks
+ esl_sqfile_SetDigital(dbfp, abc); //ReadBlock requires knowledge of the alphabet to decide how best to read blocks
for (i = 0; i < infocnt; ++i)
{
@@ -430,11 +478,19 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* seqfile may need to be rewound (multiquery mode) */
if (nquery > 1)
- {
- if (! esl_sqfile_IsRewindable(dbfp))
- esl_fatal("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile);
- esl_sqfile_Position(dbfp, 0);
- }
+ {
+ if (! esl_sqfile_IsRewindable(dbfp))
+ esl_fatal("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile);
+
+ if (! esl_opt_IsUsed(go, "--restrictdb_stkey") )
+ esl_sqfile_Position(dbfp, 0); //only re-set current position to 0 if we're not planning to set it in a moment
+ }
+
+ if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general
+ sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key);
+ if (sstatus != eslOK)
+ p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key);
+ }
if (fprintf(ofp, "Query: %s [M=%d]\n", hmm->name, hmm->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (hmm->acc) { if (fprintf(ofp, "Accession: %s\n", hmm->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
@@ -447,47 +503,47 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_oprofile_Convert(gm, om); /* <om> is now p7_LOCAL, multihit */
for (i = 0; i < infocnt; ++i)
- {
- /* Create processing pipeline and hit list */
- info[i].th = p7_tophits_Create();
- info[i].om = p7_oprofile_Clone(om);
- info[i].pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */
- p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg);
+ {
+ /* Create processing pipeline and hit list */
+ info[i].th = p7_tophits_Create();
+ info[i].om = p7_oprofile_Clone(om);
+ info[i].pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */
+ p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg);
#ifdef HMMER_THREADS
- if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
+ if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
#endif
- }
+ }
#ifdef HMMER_THREADS
- if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp);
- else sstatus = serial_loop(info, dbfp);
+ if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp, cfg->n_targetseq);
+ else sstatus = serial_loop(info, dbfp, cfg->n_targetseq);
#else
- sstatus = serial_loop(info, dbfp);
+ sstatus = serial_loop(info, dbfp, cfg->n_targetseq);
#endif
switch(sstatus)
- {
- case eslEFORMAT:
- esl_fatal("Parse failed (sequence file %s):\n%s\n",
- dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
- break;
- case eslEOF:
- /* do nothing */
- break;
- default:
- esl_fatal("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
- }
+ {
+ case eslEFORMAT:
+ esl_fatal("Parse failed (sequence file %s):\n%s\n",
+ dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
+ break;
+ case eslEOF:
+ /* do nothing */
+ break;
+ default:
+ esl_fatal("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
+ }
/* merge the results of the search results */
for (i = 1; i < infocnt; ++i)
- {
- p7_tophits_Merge(info[0].th, info[i].th);
- p7_pipeline_Merge(info[0].pli, info[i].pli);
+ {
+ p7_tophits_Merge(info[0].th, info[i].th);
+ p7_pipeline_Merge(info[0].pli, info[i].pli);
- p7_pipeline_Destroy(info[i].pli);
- p7_tophits_Destroy(info[i].th);
- p7_oprofile_Destroy(info[i].om);
- }
+ p7_pipeline_Destroy(info[i].pli);
+ p7_tophits_Destroy(info[i].th);
+ p7_oprofile_Destroy(info[i].om);
+ }
/* Print the results. */
p7_tophits_SortBySortkey(info->th);
@@ -509,8 +565,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (p7_tophits_Alignment(info->th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK)
{
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
@@ -542,6 +598,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
*/
if (tblfp) p7_tophits_TabularTail(tblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
+ if (pfamtblfp) p7_tophits_TabularTail(pfamtblfp,"hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for exit
@@ -570,6 +627,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (afp) fclose(afp);
if (tblfp) fclose(tblfp);
if (domtblfp) fclose(domtblfp);
+ if (pfamtblfp) fclose(pfamtblfp);
return eslOK;
@@ -654,7 +712,7 @@ typedef struct {
* MPI workers. If multiple hmm's are in the query file, the
* blocks are reused without parsing the database a second time.
*/
-int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block)
+int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block, int n_targetseqs)
{
int status = eslOK;
@@ -662,23 +720,23 @@ int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block)
if (list->complete)
{
if (list->current == list->last)
- {
- block->offset = 0;
- block->length = 0;
- block->count = 0;
+ {
+ block->offset = 0;
+ block->length = 0;
+ block->count = 0;
- status = eslEOF;
- }
+ status = eslEOF;
+ }
else
- {
- int inx = list->current++;
+ {
+ int inx = list->current++;
- block->offset = list->blocks[inx].offset;
- block->length = list->blocks[inx].length;
- block->count = list->blocks[inx].count;
+ block->offset = list->blocks[inx].offset;
+ block->length = list->blocks[inx].length;
+ block->count = list->blocks[inx].count;
- status = eslOK;
- }
+ status = eslOK;
+ }
return status;
}
@@ -688,7 +746,8 @@ int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block)
block->count = 0;
esl_sq_Reuse(sq);
- while (block->length < MAX_BLOCK_SIZE && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK)
+ if (n_targetseqs == 0) status = eslEOF; //this is to handle the end-case of a restrictdb scenario, where no more targets are required, and we want to mark the list as complete
+ while (block->length < MAX_BLOCK_SIZE && (n_targetseqs <0 || block->count < n_targetseqs) && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK)
{
if (block->count == 0) block->offset = sq->roff;
block->length = sq->eoff - block->offset + 1;
@@ -696,7 +755,9 @@ int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block)
esl_sq_Reuse(sq);
}
- if (status == eslEOF && block->count > 0) status = eslOK;
+ if (block->count > 0)
+ if (status == eslEOF || block->count == n_targetseqs)
+ status = eslOK;
if (status == eslEOF) list->complete = 1;
/* add the block to the list of known blocks */
@@ -774,6 +835,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
MPI_Status mpistatus;
char errbuf[eslERRBUFSIZE];
+ int n_targets;
+
w = esl_stopwatch_Create();
if (esl_opt_GetBoolean(go, "--notextw")) textw = 0;
@@ -791,6 +854,14 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else if (status == eslEINVAL) mpi_failure("Can't autodetect format of a stdin or .gz seqfile");
else if (status != eslOK) mpi_failure("Unexpected error %d opening sequence file %s\n", status, cfg->dbfile);
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) {
+ if (esl_opt_IsUsed(go, "--ssifile"))
+ esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile"));
+ else
+ esl_sqfile_OpenSSI(dbfp, NULL);
+ }
+
+
/* Open the query profile HMM file */
status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &hfp, errbuf);
if (status == eslENOTFOUND) mpi_failure("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf);
@@ -830,19 +901,28 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
bg = p7_bg_Create(abc);
}
+
+ if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general
+ sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key);
+ if (sstatus != eslOK)
+ p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key);
+ }
+
/* Outer loop: over each query HMM in <hmmfile>. */
while (hstatus == eslOK)
{
- P7_PROFILE *gm = NULL;
- P7_OPROFILE *om = NULL; /* optimized query profile */
- P7_PIPELINE *pli = NULL;
- P7_TOPHITS *th = NULL;
-
+ P7_PROFILE *gm = NULL;
+ P7_OPROFILE *om = NULL; /* optimized query profile */
+ P7_PIPELINE *pli = NULL;
+ P7_TOPHITS *th = NULL;
+ int seq_cnt = 0;
nquery++;
esl_stopwatch_Start(w);
+ n_targets = cfg->n_targetseq;
+
/* seqfile may need to be rewound (multiquery mode) */
- if (nquery > 1) list->current = 0;
+ if (nquery > 1) list->current = 0;
if (fprintf(ofp, "Query: %s [M=%d]\n", hmm->name, hmm->M) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (hmm->acc) { if (fprintf(ofp, "Accession: %s\n", hmm->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
@@ -860,38 +940,44 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_pli_NewModel(pli, om, bg);
/* Main loop: */
- while ((sstatus = next_block(dbfp, dbsq, list, &block)) == eslOK)
- {
- if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0)
- mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE);
+ while ((n_targets==-1 || seq_cnt<=n_targets) && (sstatus = next_block(dbfp, dbsq, list, &block, n_targets-seq_cnt)) == eslOK )
+ {
+ seq_cnt += block.count;
- MPI_Get_count(&mpistatus, MPI_PACKED, &size);
- if (mpi_buf == NULL || size > mpi_size) {
- void *tmp;
- ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size);
- mpi_size = size;
- }
+ if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0)
+ mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE);
- dest = mpistatus.MPI_SOURCE;
- MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus);
+ MPI_Get_count(&mpistatus, MPI_PACKED, &size);
+ if (mpi_buf == NULL || size > mpi_size) {
+ void *tmp;
+ ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size);
+ mpi_size = size;
+ }
+
+ dest = mpistatus.MPI_SOURCE;
+ MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus);
+
+ if (mpistatus.MPI_TAG == HMMER_ERROR_TAG)
+ mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf);
+ if (mpistatus.MPI_TAG != HMMER_READY_TAG)
+ mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest);
+
+ MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD);
+ }
+
+ if (n_targets!=-1 && seq_cnt==n_targets)
+ sstatus = eslEOF;
- if (mpistatus.MPI_TAG == HMMER_ERROR_TAG)
- mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf);
- if (mpistatus.MPI_TAG != HMMER_READY_TAG)
- mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest);
-
- MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD);
- }
switch(sstatus)
- {
- case eslEFORMAT:
- mpi_failure("Parse failed (sequence file %s):\n%s\n", dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
- break;
- case eslEOF:
- break;
- default:
- mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
- }
+ {
+ case eslEFORMAT:
+ mpi_failure("Parse failed (sequence file %s):\n%s\n", dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
+ break;
+ case eslEOF:
+ break;
+ default:
+ mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
+ }
block.offset = 0;
block.length = 0;
@@ -950,7 +1036,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (tblfp) p7_tophits_TabularTargets(tblfp, hmm->name, hmm->acc, th, pli, (nquery == 1));
if (domtblfp) p7_tophits_TabularDomains(domtblfp, hmm->name, hmm->acc, th, pli, (nquery == 1));
-
+ if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, hmm->name, hmm->acc, th, pli);
+
esl_stopwatch_Stop(w);
p7_pli_Statistics(ofp, pli, w);
if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -961,8 +1048,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (p7_tophits_Alignment(th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK)
{
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
@@ -1010,8 +1097,9 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Terminate outputs... any last words?
*/
- if (tblfp) p7_tophits_TabularTail(tblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
- if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
+ if (tblfp) p7_tophits_TabularTail(tblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
+ if (domtblfp) p7_tophits_TabularTail(domtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
+ if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp, "hmmsearch", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for exit
@@ -1030,6 +1118,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (afp) fclose(afp);
if (tblfp) fclose(tblfp);
if (domtblfp) fclose(domtblfp);
+ if (pfamtblfp) fclose(pfamtblfp);
return eslOK;
@@ -1081,6 +1170,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
/* One-time initializations after alphabet <abc> becomes known */
dbsq = esl_sq_CreateDigital(abc);
bg = p7_bg_Create(abc);
+ esl_sqfile_SetDigital(dbfp, abc);
}
/* Outer loop: over each query HMM in <hmmfile>. */
@@ -1126,7 +1216,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_bg_SetLength(bg, dbsq->n);
p7_oprofile_ReconfigLength(om, dbsq->n);
- p7_Pipeline(pli, om, bg, dbsq, th);
+ p7_Pipeline(pli, om, bg, dbsq, NULL, th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(pli);
@@ -1193,25 +1283,30 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
#endif /*HAVE_MPI*/
static int
-serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp)
+serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs)
{
int sstatus;
ESL_SQ *dbsq = NULL; /* one target sequence (digital) */
+ int seq_cnt = 0;
dbsq = esl_sq_CreateDigital(info->om->abc);
/* Main loop: */
- while ((sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK)
- {
+ while ( (n_targetseqs==-1 || seq_cnt<n_targetseqs) && (sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK)
+ {
p7_pli_NewSeq(info->pli, dbsq);
p7_bg_SetLength(info->bg, dbsq->n);
p7_oprofile_ReconfigLength(info->om, dbsq->n);
- p7_Pipeline(info->pli, info->om, info->bg, dbsq, info->th);
-
+ p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th);
+
+ seq_cnt++;
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(info->pli);
- }
+ }
+
+ if (n_targetseqs!=-1 && seq_cnt==n_targetseqs)
+ sstatus = eslEOF;
esl_sq_Destroy(dbsq);
@@ -1220,7 +1315,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp)
#ifdef HMMER_THREADS
static int
-thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
+thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs)
{
int status = eslOK;
int sstatus = eslOK;
@@ -1228,8 +1323,6 @@ thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
ESL_SQ_BLOCK *block;
void *newBlock;
- impl_ThreadInit();
-
esl_workqueue_Reset(queue);
esl_threads_WaitForStart(obj);
@@ -1237,21 +1330,30 @@ thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
if (status != eslOK) esl_fatal("Work queue reader failed");
/* Main loop: */
- while (sstatus == eslOK)
+ while (sstatus == eslOK )
{
block = (ESL_SQ_BLOCK *) newBlock;
- sstatus = esl_sqio_ReadBlock(dbfp, block, -1, FALSE);
+
+ if (n_targetseqs == 0)
+ {
+ block->count = 0;
+ sstatus = eslEOF;
+ } else {
+ sstatus = esl_sqio_ReadBlock(dbfp, block, -1, n_targetseqs, FALSE);
+ n_targetseqs -= block->count;
+ }
+
if (sstatus == eslEOF)
- {
- if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
- ++eofCount;
- }
-
+ {
+ if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
+ ++eofCount;
+ }
+
if (sstatus == eslOK)
- {
- status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
- if (status != eslOK) esl_fatal("Work queue reader failed");
- }
+ {
+ status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+ }
}
status = esl_workqueue_ReaderUpdate(queue, block, NULL);
@@ -1279,6 +1381,8 @@ pipeline_thread(void *arg)
ESL_SQ_BLOCK *block = NULL;
void *newBlock;
+ impl_Init();
+
obj = (ESL_THREADS *) arg;
esl_threads_Started(obj, &workeridx);
@@ -1300,7 +1404,7 @@ pipeline_thread(void *arg)
p7_bg_SetLength(info->bg, dbsq->n);
p7_oprofile_ReconfigLength(info->om, dbsq->n);
- p7_Pipeline(info->pli, info->om, info->bg, dbsq, info->th);
+ p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(info->pli);
@@ -1323,14 +1427,11 @@ pipeline_thread(void *arg)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmsearch.c $
- * SVN $Id: hmmsearch.c 3572 2011-06-20 18:06:12Z wheelert $
*****************************************************************/
diff --git a/hmmer/src/hmmsim.c b/hmmer/src/hmmsim.c
index 7c477aa..ba31d2a 100644
--- a/hmmer/src/hmmsim.c
+++ b/hmmer/src/hmmsim.c
@@ -194,10 +194,7 @@ main(int argc, char **argv)
*/
cfg.hmmfile = esl_opt_GetArg(go, 1);
cfg.r = esl_randomness_Create(esl_opt_GetInteger(go, "--seed"));
- cfg.abc = esl_alphabet_Create(eslAMINO);
-
- if (esl_opt_GetBoolean(go, "--bgflat")) cfg.bg = p7_bg_CreateUniform(cfg.abc);
- else cfg.bg = p7_bg_Create(cfg.abc);
+ //cfg.abc = esl_alphabet_Create(eslAMINO);
cfg.my_rank = 0; /* MPI init will change this soon, if --mpi was set */
cfg.nproc = 0; /* MPI init will change this soon, if --mpi was set */
@@ -212,9 +209,7 @@ main(int argc, char **argv)
cfg.ffp = NULL;
cfg.xfp = NULL;
cfg.alfp = NULL;
-
- p7_bg_SetLength(cfg.bg, esl_opt_GetInteger(go, "-L")); /* set the null model background length in both master and workers. */
-
+ cfg.bg = NULL;
/* This is our stall point, if we need to wait until we get a
* debugger attached to this process for debugging (especially
@@ -376,12 +371,18 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
(av = malloc(sizeof(int) * cfg->N)) == NULL) p7_Fail("allocation failed");
while ((status = p7_hmmfile_Read(cfg->hfp, &(cfg->abc), &hmm)) != eslEOF)
- {
+ {
if (status == eslEOD) p7_Fail("read failed, HMM file %s may be truncated?", cfg->hmmfile);
else if (status == eslEFORMAT) p7_Fail("bad file format in HMM file %s", cfg->hmmfile);
else if (status == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile);
else if (status != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile);
+ if (cfg->bg == NULL) {
+ if (esl_opt_GetBoolean(go, "--bgflat")) cfg->bg = p7_bg_CreateUniform(cfg->abc);
+ else cfg->bg = p7_bg_Create(cfg->abc);
+ p7_bg_SetLength(cfg->bg, esl_opt_GetInteger(go, "-L")); /* set the null model background length in both master and workers. */
+ }
+
if (process_workunit(go, cfg, errbuf, hmm, xv, av, &mu, &lambda) != eslOK) p7_Fail(errbuf);
if (output_result (go, cfg, errbuf, hmm, xv, av, mu, lambda) != eslOK) p7_Fail(errbuf);
@@ -455,6 +456,13 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else if (status == eslEFORMAT) { xstatus = status; sprintf(errbuf, "bad file format in HMM file %s", cfg->hmmfile); }
else if (status == eslEINCOMPAT) { xstatus = status; sprintf(errbuf, "HMM file %s contains different alphabets", cfg->hmmfile); }
else if (status != eslEOF) { xstatus = status; sprintf(errbuf, "Unexpected error in reading HMMs from %s", cfg->hmmfile); }
+
+ if (cfg->bg == NULL) { // first time only
+ if (esl_opt_GetBoolean(go, "--bgflat")) cfg->bg = p7_bg_CreateUniform(cfg->abc);
+ else cfg->bg = p7_bg_Create(cfg->abc);
+ }
+ //this next step is redundant, but it avoids a race condition above.
+ p7_bg_SetLength(cfg->bg, esl_opt_GetInteger(go, "-L")); /* set the null model background length in both master and workers. */
}
}
@@ -955,13 +963,13 @@ elide_length_model(P7_PROFILE *gm, P7_BG *bg)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/hmmsim.c $
- * SVN $Id: hmmsim.c 3658 2011-08-20 17:41:31Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/hmmstat.c b/hmmer/src/hmmstat.c
index 8762e4b..8119cf5 100644
--- a/hmmer/src/hmmstat.c
+++ b/hmmer/src/hmmstat.c
@@ -4,7 +4,7 @@
* ./hmmstat Pfam
*
* SRE, Thu May 24 11:18:20 2007
- * SVN $Id: hmmstat.c 4064 2012-06-06 19:33:42Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -23,10 +23,13 @@ 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", 0 },
- { "--eval2score", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "compute score required to get E-value (E) for database of (Z) sequences", 0 },
- { "-Z", eslARG_INT, "1", NULL, "n>0", NULL, "--eval2score", NULL, "database size, by default in # sequences , for --eval2score (default 1)", 0 },
- { "--rescntZ", eslARG_NONE, FALSE, NULL, NULL, NULL, "--eval2score", NULL, "for --eval2score, -Z is in # residues (DNA models only)", 0 },
- { "-E", eslARG_REAL, "0.01", NULL, NULL, NULL, "--eval2score", NULL, "E-value threshold, for --eval2score", 0 },
+ { "--eval2score", eslARG_NONE, FALSE, NULL, NULL, NULL, "-E", NULL, "compute score for E-value (E) for database of (Z) sequences", 0 },
+ { "--score2eval", eslARG_NONE, FALSE, NULL, NULL, NULL, "-S", NULL, "compute E-value for score (S) for database of (Z) sequences", 0 },
+ { "-Z", eslARG_INT, "1", NULL, "n>0", NULL, NULL, "--baseZ1,--baseZ", "database size (in seqs) for --eval2score or --score2eval", 0 },
+ { "--baseZ", eslARG_INT, "0", NULL, NULL, NULL, NULL, "--baseZ1,-Z", "database size (M bases) (DNA only, if search on both strands)", 0 },
+ { "--baseZ1", eslARG_INT, "0", NULL, NULL, NULL, NULL, "--baseZ,-Z", "database size (M bases) (DNA only, if search on single strand)", 0 },
+ { "-E", eslARG_REAL, "0.01", NULL, NULL, NULL, "--eval2score", NULL, "E-value threshold, for --eval2score", 0 },
+ { "-S", eslARG_REAL, "0.01", NULL, NULL, NULL, "--score2eval", NULL, "Score input for --score2eval", 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -40,11 +43,19 @@ output_header(FILE *ofp, const ESL_GETOPTS *go)
p7_banner(ofp, go->argv[0], banner);
if (esl_opt_IsUsed(go, "--eval2score")) {
- if ( fprintf(ofp, "# show scores required to reach E-value: %.2g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--rescntZ") ) {
- if ( fprintf(ofp, "# assume database residue count: %d\n", esl_opt_GetInteger(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if ( fprintf(ofp, "# show score required to reach E-value: %.2g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ }
+ if (esl_opt_IsUsed(go, "--score2eval")) {
+ if ( fprintf(ofp, "# show E-value corresponding to score: %.2g\n", esl_opt_GetReal(go, "-S")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ }
+
+ if (esl_opt_IsUsed(go, "--eval2score") || esl_opt_IsUsed(go, "--score2eval")) {
+ if (esl_opt_IsUsed(go, "--baseZ") ) {
+ if ( fprintf(ofp, "# using base count (search both strands): %d Mb\n", esl_opt_GetInteger(go, "--baseZ")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ } else if (esl_opt_IsUsed(go, "--baseZ1") ) {
+ if ( fprintf(ofp, "# using base count (search single strand): %d Mb\n", esl_opt_GetInteger(go, "--baseZ1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
} else {
- if ( fprintf(ofp, "# assume database sequence count: %d\n", esl_opt_GetInteger(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if ( fprintf(ofp, "# using database sequence count: %d\n", esl_opt_GetInteger(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
}
@@ -70,8 +81,12 @@ main(int argc, char **argv)
char errbuf[eslERRBUFSIZE];
int do_eval2score = 0;
- int z_val;
+ int do_score2eval = 0;
+ long z_val;
float e_val;
+ float s_val;
+
+ float nseq;
/* Process the command line options.
*/
@@ -89,7 +104,7 @@ main(int argc, char **argv)
p7_banner(stdout, argv[0], banner);
esl_usage(stdout, argv[0], usage);
puts("\nOptions:");
- esl_opt_DisplayHelp(stdout, go, 0, 2, 90); /* 0=docgroup, 2 = indentation; 80=textwidth*/
+ esl_opt_DisplayHelp(stdout, go, 0, 2, 80); /* 0=docgroup, 2 = indentation; 80=textwidth*/
exit(0);
@@ -114,8 +129,23 @@ main(int argc, char **argv)
if ( esl_opt_IsOn(go, "--eval2score") ) {
do_eval2score = TRUE;
- z_val = esl_opt_GetInteger(go, "-Z");
e_val = esl_opt_GetReal(go, "-E");
+ } else if ( esl_opt_IsOn(go, "--score2eval") ) {
+ do_score2eval = TRUE;
+ s_val = esl_opt_GetReal(go, "-S");
+ } else if ( esl_opt_IsUsed(go, "--baseZ") || esl_opt_IsUsed(go, "--baseZ1") || esl_opt_IsUsed(go, "-Z") ) {
+ puts("The flags -Z, --baseZ, and --baseZ1 are for use with --eval2score and --score2eval.");
+ esl_usage(stdout, argv[0], usage);
+ printf("\nTo see more help on available options, do %s -h\n\n", argv[0]);
+ exit(1);
+ }
+
+ if (esl_opt_IsUsed(go, "--baseZ") ) {
+ z_val = 1000000 * 2 * (long)(esl_opt_GetInteger(go, "--baseZ"));
+ } else if (esl_opt_IsUsed(go, "--baseZ1") ) {
+ z_val = 1000000 * (long)(esl_opt_GetInteger(go, "--baseZ1"));
+ } else {
+ z_val = esl_opt_GetInteger(go, "-Z");
}
/* Initializations: open the HMM file
@@ -131,10 +161,15 @@ main(int argc, char **argv)
printf("# %-4s %-20s %-12s %8s %8s %6s %6s %6s %6s %6s", "idx", "name", "accession", "nseq", "eff_nseq", "M", "relent", "info", "p relE", "compKL");
if (do_eval2score)
printf (" %6s %6.2g", "sc for", e_val);
+ if (do_score2eval)
+ printf (" %6s %6.2f", "E-val for", s_val);
+
printf("\n");
printf("# %-4s %-20s %-12s %8s %8s %6s %6s %6s %6s %6s", "----", "--------------------", "------------", "--------", "--------", "------", "------", "------", "------", "------");
if (do_eval2score)
printf (" %13s", "-------------");
+ if (do_score2eval)
+ printf (" %13s", "-------------");
printf("\n");
@@ -147,22 +182,29 @@ main(int argc, char **argv)
else if (status != eslOK) esl_fatal("Unexpected error in reading HMMs from %s", hmmfile);
nhmm++;
- if ( esl_opt_IsOn(go, "--eval2score") ) {
- if (esl_opt_IsUsed(go, "--rescntZ") ) {
+ if ( esl_opt_IsOn(go, "--eval2score") || esl_opt_IsOn(go, "--score2eval") ) {
+ if (esl_opt_IsUsed(go, "--baseZ") || esl_opt_IsUsed(go, "--baseZ1" ) ) {
if ( hmm->abc->type != eslRNA && hmm->abc->type != eslDNA) {
- puts("The flag --rescntZ can't be used with non-nucleotide models.");
+ puts("The flags --baseZ and --baseZ1 can't be used with non-nucleotide models.");
esl_usage(stdout, argv[0], usage);
printf("\nTo see more help on available options, do %s -h\n\n", argv[0]);
exit(1);
}
} else if ( hmm->abc->type != eslAMINO && hmm->abc->type != eslRNA && hmm->abc->type != eslDNA) {
- puts("The flag --eval2score can't be used with non-sequence models.");
+ puts("The flags --eval2score and --score2eval can't be used with non-sequence models.");
esl_usage(stdout, argv[0], usage);
printf("\nTo see more help on available options, do %s -h\n\n", argv[0]);
exit(1);
}
}
+ if (esl_opt_IsUsed(go, "--baseZ") ) {
+ nseq = (float)z_val / (float)(hmm->max_length);
+ } else if (esl_opt_IsUsed(go, "--baseZ1") ) {
+ nseq = (float)z_val / (float)(hmm->max_length);
+ } else {
+ nseq = z_val;
+ }
if (bg == NULL) bg = p7_bg_Create(abc);
@@ -183,20 +225,15 @@ main(int argc, char **argv)
if ( esl_opt_IsOn(go, "--eval2score") ) {
- float nseq;
float sc;
- if (esl_opt_IsUsed(go, "--rescntZ") )
- nseq = (float)z_val / (float)(hmm->max_length);
- else
- nseq = (float)z_val;
-
sc = esl_exp_invsurv( e_val / nseq , hmm->evparam[p7_FTAU], hmm->evparam[p7_FLAMBDA]);
-
- printf("%8.1f", sc);
-
+ printf("%13.2f", sc);
+ } else if ( esl_opt_IsOn(go, "--score2eval") ) {
+ float e;
+ e = nseq * esl_exp_surv( s_val , hmm->evparam[p7_FTAU], hmm->evparam[p7_FLAMBDA]);
+ printf("%13.2g", e);
}
-
printf("\n");
/* p7_MeanForwardScore(hmm, bg)); */
diff --git a/hmmer/src/impl_dummy/Makefile.in b/hmmer/src/impl_dummy/Makefile.in
index 4ca6a02..e9f1709 100644
--- a/hmmer/src/impl_dummy/Makefile.in
+++ b/hmmer/src/impl_dummy/Makefile.in
@@ -42,8 +42,7 @@ OBJS = decoding.o\
vitfilter.o\
p7_omx.o\
p7_oprofile.o\
- mpi.o\
- fm.o
+ mpi.o
HDRS = impl_dummy.h
@@ -179,14 +178,14 @@ clean:
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_dummy/Makefile.in $
-# SVN $Id: Makefile.in 4027 2012-05-07 14:59:40Z nawrockie $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/src/impl_dummy/decoding.c b/hmmer/src/impl_dummy/decoding.c
index eb6f5fb..6a6433c 100644
--- a/hmmer/src/impl_dummy/decoding.c
+++ b/hmmer/src/impl_dummy/decoding.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: decoding.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -324,8 +324,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/fm.c b/hmmer/src/impl_dummy/fm.c
deleted file mode 100644
index 658e78a..0000000
--- a/hmmer/src/impl_dummy/fm.c
+++ /dev/null
@@ -1,295 +0,0 @@
-#include "hmmer.h"
-#include "impl_dummy.h"
-
-
-/* Function: fm_initConfig()
- * do nothing. This is a placeholder in the dummy implementation for
- * a function that does something in _sse and _vmx code
- */
-int
-fm_initConfig( FM_CFG *cfg, ESL_GETOPTS *go ) {
-
- fm_initConfigGeneric(cfg, go);
-
- return eslOK;
-}
-
-/* Function: fm_destroyConfig()
- * do nothing. This is a placeholder in the dummy implementation for
- * a function that does something in _sse and _vmx code
- */
-int
-fm_destroyConfig(FM_CFG *cfg ) {
- return eslOK;
-}
-
-
-/* Function: fm_getOccCount()
- * Synopsis: Compute number of occurrences of c in BWT[1..pos]
- *
- * Purpose: Scan through the BWT to compute number of occurrence of c in BWT[0..pos].
- *
- * First, use checkpointed occurrence counts in the arrays occCnts_sb and occCnts_b.
- * The checkpoint used is the one closest to pos, possibly requiring that counts be
- * subtracted from the checkpointed total
- *
- * Counting is done by simply scanning through the BWT serially. This can be made
- * faster with slick bit-fiddling, but speed isn't the issue here, so it's
- * just a slow (and correct) implementation
- */
-int
-fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
-
- int i;
- FM_METADATA *meta = cfg->meta;
-
- int cnt;
- const int b_pos = (pos+1) >> meta->cnt_shift_b; //floor(pos/b_size) : the b count element preceding pos
- const uint16_t * occCnts_b = fm->occCnts_b;
- const uint32_t * occCnts_sb = fm->occCnts_sb;
- const int sb_pos = (pos+1) >> meta->cnt_shift_sb; //floor(pos/sb_size) : the sb count element preceding pos
-
-
- const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function
- const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos
- const int up_b = b_rel_pos>>(meta->cnt_shift_b - 1); //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
- const int landmark = ((b_pos+up_b)<<(meta->cnt_shift_b)) - 1 ;
- // get the cnt stored at the nearest checkpoint
- cnt = FM_OCC_CNT(sb, sb_pos, c );
-
- if (up_b)
- cnt += FM_OCC_CNT(b, b_pos + 1, c ) ;
- else if ( b_pos != sb_pos * (1<<(meta->cnt_shift_sb - meta->cnt_shift_b)) )
- cnt += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount
-
-
- if ( landmark < fm->N || landmark == -1) {
-
- const uint8_t * BWT = fm->BWT;
-
-
- if (meta->alph_type == fm_DNA) {
-
- if (!up_b) { // count forward, adding
- for (i=1+floor(landmark/4.0); i<(pos+1)/4 ; i++) {// floor to allow for the case of landmark = -1
- if ((BWT[i] & 0xc0)>>6 == c) cnt++; //11000000
- if ((BWT[i] & 0x30)>>4 == c) cnt++; //00110000
- if ((BWT[i] & 0x0c)>>2 == c) cnt++; //00001100
- if ((BWT[i] & 0x03) == c) cnt++; //00000011
- }
- int remaining_cnt = pos + 1 - i*4 ;
- if (remaining_cnt >= 1)
- if ((BWT[i] & 0xc0)>>6 == c) cnt++; //11000000
- if (remaining_cnt >= 2)
- if ((BWT[i] & 0x30)>>4 == c) cnt++; //00110000
- if (remaining_cnt >= 3)
- if ((BWT[i] & 0x0c)>>2 == c) cnt++; //00001100
-
- } else { // count backwards, subtracting
- for (i=landmark/4; i>pos/4 ; i--) {
- if ((BWT[i] & 0xc0)>>6 == c) cnt--; //11000000
- if ((BWT[i] & 0x30)>>4 == c) cnt--; //00110000
- if ((BWT[i] & 0x0c)>>2 == c) cnt--; //00001100
- if ((BWT[i] & 0x03) == c) cnt--; //00000011
- }
- int remaining_cnt = 3 + 4*i - pos;
- if (remaining_cnt >= 1)
- if ((BWT[i] & 0x03) == c) cnt--; //00000011
- if (remaining_cnt >= 2)
- if ((BWT[i] & 0x0c)>>2 == c) cnt--; //00001100
- if (remaining_cnt >= 3)
- if ((BWT[i] & 0x30)>>4 == c) cnt--; //00110000
-
- }
- } else if ( meta->alph_type == fm_DNA_full) {
- if (!up_b) { // count forward, adding
- for (i=1+floor(landmark/2.0); i<(pos+1)/2 ; i++) {// floor to allow for the case of landmark = -1
- if ((BWT[i] & 0xf0)>>4 == c) cnt++;
- if ((BWT[i] & 0x0f) == c) cnt++;
- }
-
- if ( !(pos & 0x1) ) {// pos is even, so there's a final singleton
- if ((BWT[i] & 0xf0)>>4 == c) cnt++;
- }
- } else { // count backwards, subtracting
- for (i=landmark/2; i>pos/2 ; i--) {
- if ((BWT[i] & 0xf0)>>4 == c) cnt--; // BWT[i] contains two chars, compressed into one bit
- if ((BWT[i] & 0x0f) == c) cnt--;
- }
- if (!(pos & 0x1)) { // pos is even, so there's a final singleton
- if ((BWT[i] & 0x0f) == c) cnt--;
- }
- }
- } else {
- esl_fatal("Invalid alphabet type\n");
- }
- }
-
- if (c==0 && pos >= fm->term_loc) { // I overcounted 'A' by one, because '$' was replaced with an 'A'
- cnt--;
- }
-
- return cnt;
-
-}
-
-
-/* Function: fm_getOccCountLT()
- * Synopsis: Compute number of occurrences of characters with value <c in BWT[1..pos]
- *
- * Purpose: Scan through the BWT to compute number of occurrence of characters with value <c
- * in BWT[0..pos].
- *
- * First, use checkpointed occurrence counts in the arrays occCnts_sb and occCnts_b.
- * The checkpoint used is the one closest to pos, possibly requiring that counts be
- * subtracted from the checkpointed total
- *
- * Counting is done by simply scanning through the BWT serially. This can be made
- * faster with slick bit-fiddling, but speed isn't the issue here, so it's
- * just a slow (and correct) implementation
- */
-int
-fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt) {
-
-
- if (c == 0 && pos >= fm->term_loc)// < 'A'? cntlt depends on relationship of pos and the position where the '$' was replaced by 'A'
- *cntlt = 1;
- else
- *cntlt = 0;
-
- int i;
- FM_METADATA *meta = cfg->meta;
-
- //int cnt;
- const int b_pos = (pos+1) >> meta->cnt_shift_b; //floor(pos/b_size) : the b count element preceding pos
- const uint16_t * occCnts_b = fm->occCnts_b;
- const uint32_t * occCnts_sb = fm->occCnts_sb;
- const int sb_pos = (pos+1) >> meta->cnt_shift_sb; //floor(pos/sb_size) : the sb count element preceding pos
-
-
- const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function
- const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos
- const int up_b = b_rel_pos>>(meta->cnt_shift_b - 1); //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
- const int landmark = ((b_pos+up_b)<<(meta->cnt_shift_b)) - 1 ;
-
- // get the cnt stored at the nearest checkpoint
- *cnteq = FM_OCC_CNT(sb, sb_pos, c );
- for (i=0; i<c; i++)
- *cntlt += FM_OCC_CNT(sb, sb_pos, i );
-
- if (up_b) {
- *cnteq += FM_OCC_CNT(b, b_pos + 1, c ) ;
- for (i=0; i<c; i++)
- *cntlt += FM_OCC_CNT(b, b_pos + 1, i ) ;
- } else if ( b_pos != sb_pos * (1<<(meta->cnt_shift_sb - meta->cnt_shift_b)) ) {
- *cnteq += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount
- for (i=0; i<c; i++)
- *cntlt += FM_OCC_CNT(b, b_pos, i ) ;
- }
-
-
-
-
- if ( landmark < fm->N || landmark == -1) {
-
- const uint8_t * BWT = fm->BWT;
-
- if (meta->alph_type == fm_DNA) {
-
- if (!up_b) { // count forward, adding
- for (i=1+floor(landmark/4.0); i<(pos+1)/4 ; i++) {// floor to allow for the case of landmark = -1
- if ((BWT[i] & 0xc0)>>6 < c) (*cntlt)++; //11000000
- if ((BWT[i] & 0xc0)>>6 == c) (*cnteq)++; //11000000
- if ((BWT[i] & 0x30)>>4 < c) (*cntlt)++; //00110000
- if ((BWT[i] & 0x30)>>4 == c) (*cnteq)++; //00110000
- if ((BWT[i] & 0x0c)>>2 < c) (*cntlt)++; //00001100
- if ((BWT[i] & 0x0c)>>2 == c) (*cnteq)++; //00001100
- if ((BWT[i] & 0x03) < c) (*cntlt)++; //00000011
- if ((BWT[i] & 0x03) == c) (*cnteq)++; //00000011
- }
- int remaining_cnt = pos + 1 - i*4 ;
- if (remaining_cnt >= 1) {
- if ((BWT[i] & 0xc0)>>6 < c) (*cntlt)++; //11000000
- if ((BWT[i] & 0xc0)>>6 == c) (*cnteq)++; //11000000
- }
- if (remaining_cnt >= 2) {
- if ((BWT[i] & 0x30)>>4 < c) (*cntlt)++; //00110000
- if ((BWT[i] & 0x30)>>4 == c) (*cnteq)++; //00110000
- }
- if (remaining_cnt >= 3) {
- if ((BWT[i] & 0x0c)>>2 < c) (*cntlt)++; //00001100
- if ((BWT[i] & 0x0c)>>2 == c) (*cnteq)++; //00001100
- }
-
- } else { // count backwards, subtracting
- for (i=landmark/4; i>pos/4 ; i--) {
- if ((BWT[i] & 0xc0)>>6 < c) (*cntlt)--; //11000000
- if ((BWT[i] & 0xc0)>>6 == c) (*cnteq)--; //11000000
- if ((BWT[i] & 0x30)>>4 < c) (*cntlt)--; //00110000
- if ((BWT[i] & 0x30)>>4 == c) (*cnteq)--; //00110000
- if ((BWT[i] & 0x0c)>>2 < c) (*cntlt)--; //00001100
- if ((BWT[i] & 0x0c)>>2 == c) (*cnteq)--; //00001100
- if ((BWT[i] & 0x03) < c) (*cntlt)--; //00000011
- if ((BWT[i] & 0x03) == c) (*cnteq)--; //00000011
- }
- int remaining_cnt = 3 + 4*i - pos;
- if (remaining_cnt >= 1) {
- if ((BWT[i] & 0x03) < c) (*cntlt)--; //00000011
- if ((BWT[i] & 0x03) == c) (*cnteq)--; //00000011
- }
- if (remaining_cnt >= 2) {
- if ((BWT[i] & 0x0c)>>2 < c) (*cntlt)--; //00001100
- if ((BWT[i] & 0x0c)>>2 == c) (*cnteq)--; //00001100
- }
- if (remaining_cnt >= 3) {
- if ((BWT[i] & 0x30)>>4 < c) (*cntlt)--; //00110000
- if ((BWT[i] & 0x30)>>4 == c) (*cnteq)--; //00110000
- }
- }
- } else if ( meta->alph_type == fm_DNA_full) {
- if (!up_b) { // count forward, adding
- for (i=1+floor(landmark/2.0); i<(pos+1)/2 ; i++) {// floor to allow for the case of landmark = -1
- if ((BWT[i] & 0xf0)>>4 < c) (*cntlt)++;
- if ((BWT[i] & 0xf0)>>4 == c) (*cnteq)++;
- if ((BWT[i] & 0x0f) < c) (*cntlt)++;
- if ((BWT[i] & 0x0f) == c) (*cnteq)++;
- }
-
- if ( !(pos & 0x1) ) {// pos is even, so there's a final singleton
- if ((BWT[i] & 0xf0)>>4 < c) (*cntlt)++;
- if ((BWT[i] & 0xf0)>>4 == c) (*cnteq)++;
- }
- } else { // count backwards, subtracting
- for (i=landmark/2; i>pos/2 ; i--) {
- if ((BWT[i] & 0xf0)>>4 < c) (*cntlt)--; // BWT[i] contains two chars, compressed into one bit
- if ((BWT[i] & 0xf0)>>4 == c) (*cnteq)--; // BWT[i] contains two chars, compressed into one bit
- if ((BWT[i] & 0x0f) < c) (*cntlt)--;
- if ((BWT[i] & 0x0f) == c) (*cnteq)--;
- }
- if (!(pos & 0x1)) { // pos is even, so there's a final singleton
- if ((BWT[i] & 0x0f) < c) (*cntlt)--;
- if ((BWT[i] & 0x0f) == c) (*cnteq)--;
- }
- }
- } else {
- esl_fatal("Invalid alphabet type\n");
- }
- }
-
- if (c==0 && pos >= fm->term_loc) { // I overcounted 'A' by one, because '$' was replaced with an 'A'
- (*cnteq)--;
- }
-
- return eslOK;
-
-}
-
-/*****************************************************************
- * HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * HMMER is distributed under the terms of the GNU General Public License
- * (GPLv3). See the LICENSE file for details.
- *****************************************************************/
diff --git a/hmmer/src/impl_dummy/fwdback.c b/hmmer/src/impl_dummy/fwdback.c
index 86ab0d4..a4746eb 100644
--- a/hmmer/src/impl_dummy/fwdback.c
+++ b/hmmer/src/impl_dummy/fwdback.c
@@ -10,7 +10,7 @@
* 8. Copyright and license information.
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: fwdback.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -610,8 +610,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/impl_dummy.h b/hmmer/src/impl_dummy/impl_dummy.h
index 595363a..12df085 100644
--- a/hmmer/src/impl_dummy/impl_dummy.h
+++ b/hmmer/src/impl_dummy/impl_dummy.h
@@ -2,7 +2,7 @@
* routines: structures, declarations, and macros.
*
* MSF, Oct 27, 2009 [Janelia]
- * SVN $Id: impl_dummy.h 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#ifndef P7_IMPL_DUMMY_INCLUDED
#define P7_IMPL_DUMMY_INCLUDED
@@ -24,6 +24,7 @@
*****************************************************************/
typedef P7_PROFILE P7_OPROFILE;
+#define p7O_NTRANS 8 /* 7 core transitions + BMk entry */
enum p7o_tsc_e { p7O_BM = 0, p7O_MM = 1, p7O_IM = 2, p7O_DM = 3, p7O_MD = 4, p7O_MI = 5, p7O_II = 6, p7O_DD = 7 };
typedef struct {
@@ -46,36 +47,9 @@ p7_oprofile_FGetEmission(const P7_OPROFILE *om, int k, int x)
typedef P7_GMX P7_OMX;
-/*****************************************************************
- * 3. FM-index
- *****************************************************************/
-
-/* Effectively global variables, to be initialized once in fm_initConfig(),
- * then passed around among threads to avoid recomputing them
- */
-typedef struct {
- /*suffix-array mask and offset values*/
- int maskSA;
- int shiftSA;
-
- /*counter, to compute FM-index speed*/
- int occCallCnt;
-
- /*bounding cutoffs*/
- int max_depth;
- int neg_len_limit;
- int consec_pos_req;
- float score_ratio_req;
- int msv_length;
- float max_scthreshFM;
-
- /*pointer to FM-index metadata*/
- FM_METADATA *meta;
-
-} FM_CFG;
/*****************************************************************
- * 4. Declarations of the external API.
+ * 3. Declarations of the external API.
*****************************************************************/
/* p7_omx.c */
@@ -99,6 +73,7 @@ extern void p7_oprofile_Destroy(P7_OPROFILE *om);
extern size_t p7_oprofile_Sizeof(P7_OPROFILE *om);
extern P7_OPROFILE *p7_oprofile_Copy(P7_OPROFILE *om);
extern P7_OPROFILE *p7_oprofile_Clone(P7_OPROFILE *om);
+extern int p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr);
extern int p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om);
extern int p7_oprofile_ReconfigLength (P7_OPROFILE *om, int L);
@@ -115,7 +90,9 @@ extern int p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm);
extern int p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm);
extern int p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr );
-extern int p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr );
+extern int p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr );
+extern int p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr );
+extern int p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr );
/* decoding.c */
extern int p7_Decoding (const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp);
@@ -138,7 +115,7 @@ extern void p7_oprofile_DestroyBlock(P7_OM_BLOCK *block);
/* msvfilter.c */
extern int p7_MSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc);
-extern int p7_MSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist);
+extern int p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist);
/* null2.c */
extern int p7_Null2_ByExpectation(const P7_OPROFILE *om, P7_OMX *pp, float *null2);
@@ -162,14 +139,8 @@ extern int p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROF
extern int p7_ViterbiScore (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc);
-/*fm.c */
-extern int fm_initConfig (FM_CFG *cfg, ESL_GETOPTS *go );
-extern int fm_destroyConfig (FM_CFG *cfg );
-extern int fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c);
-extern int fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt);
-
/*****************************************************************
- * 5. Implementation specific initialization
+ * 4. Implementation specific initialization
*****************************************************************/
static inline void
impl_Init(void)
@@ -187,8 +158,8 @@ impl_ThreadInit(void)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/io.c b/hmmer/src/impl_dummy/io.c
index 3a65cc5..f71e6a0 100644
--- a/hmmer/src/impl_dummy/io.c
+++ b/hmmer/src/impl_dummy/io.c
@@ -870,13 +870,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_dummy/io.c $
- * SVN $Id: io.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/impl_dummy/mpi.c b/hmmer/src/impl_dummy/mpi.c
index c5a9bcb..fbfbeef 100644
--- a/hmmer/src/impl_dummy/mpi.c
+++ b/hmmer/src/impl_dummy/mpi.c
@@ -8,7 +8,7 @@
* 5. Copyright and license information.
*
* SRE, Thu Jun 14 09:59:20 2007 [Janelia] [Tom Waits, Orphans]
- * SVN $Id: mpi.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -24,7 +24,7 @@
#include "esl_getopts.h"
#include "hmmer.h"
-#include "impl_dummy."
+#include "impl_dummy.h"
/*****************************************************************
* 1. Communicating P7_OPROFILE, an optimized model.
@@ -367,8 +367,8 @@ int main(void) { return 0; }
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/msvfilter.c b/hmmer/src/impl_dummy/msvfilter.c
index 064bde9..c5fa132 100644
--- a/hmmer/src/impl_dummy/msvfilter.c
+++ b/hmmer/src/impl_dummy/msvfilter.c
@@ -15,7 +15,7 @@
* 6. Copyright and license information
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: msvfilter.c 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -58,13 +58,15 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
/*------------------ end, p7_MSVFilter() ------------------------*/
-/* Function: p7_MSVFilter_longtarget()
+/* Function: p7_SSVFilter_longtarget()
* Synopsis: Finds windows with MSV scores above some threshold (slow, correct version)
*
* Purpose: Calculates the MSV score for regions of sequence <dsq> of length <L>
* residues, and captures the positions at which such regions exceed the
* score required to be significant in the eyes of the calling function
- * (usually p=0.02).
+ * (usually p=0.02). Note - this is out of touch with the vectorized
+ * SSVFilter code. As dummy functions are deprecated, there's no
+ * need to update it.
*
* Args: dsq - digital target sequence, 1..L
* L - length of dsq in residues
@@ -82,7 +84,7 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
* Throws: <eslEINVAL> if <ox> allocation is too small.
*/
int
-p7_MSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist)
+p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist)
{
int status;
if ((status = p7_gmx_GrowTo(ox, om->M, L)) != eslOK) return status;
@@ -508,8 +510,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/null2.c b/hmmer/src/impl_dummy/null2.c
index f0e4e0c..e016621 100644
--- a/hmmer/src/impl_dummy/null2.c
+++ b/hmmer/src/impl_dummy/null2.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: null2.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -329,8 +329,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/optacc.c b/hmmer/src/impl_dummy/optacc.c
index 1bf5238..503c4c8 100644
--- a/hmmer/src/impl_dummy/optacc.c
+++ b/hmmer/src/impl_dummy/optacc.c
@@ -10,7 +10,7 @@
* 7. Copyright and license information.
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: optacc.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -588,8 +588,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/p7_omx.c b/hmmer/src/impl_dummy/p7_omx.c
index 8d39d46..9d03e3e 100644
--- a/hmmer/src/impl_dummy/p7_omx.c
+++ b/hmmer/src/impl_dummy/p7_omx.c
@@ -6,7 +6,7 @@
* 3. Copyright and license information
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: p7_omx.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -115,8 +115,8 @@ p7_omx_Destroy(P7_OMX *ox)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/p7_oprofile.c b/hmmer/src/impl_dummy/p7_oprofile.c
index 5b4ebe0..ffaec9c 100644
--- a/hmmer/src/impl_dummy/p7_oprofile.c
+++ b/hmmer/src/impl_dummy/p7_oprofile.c
@@ -263,13 +263,13 @@ p7_oprofile_ReconfigUnihit(P7_OPROFILE *om, int L)
/* Function: p7_oprofile_GetFwdTransitionArray()
- * Synopsis: Retrieve full 32-bit float transition probabilities from an
- * optimized profile into a flat array
+ * Synopsis: Retrieve full 32-bit float transition probabilities from a
+ * profile into a flat array
*
* Purpose: Extract an array of <type> (e.g. p7O_II) transition probabilities
* from the underlying <om> profile. In SIMD implementations,
* these are striped and interleaved, making them difficult to
- * directly access. Here, this is trivial
+ * directly access. Here, this is trivial.
*
* Args: <om> - optimized profile, containing transition information
* <type> - transition type (e.g. p7O_II)
@@ -285,7 +285,7 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
int i;
for (i=0; i<om->M; i++) {
- arr[i] = p7P_TSC(om, i, type);
+ arr[i] = exp(p7P_TSC(om, i, type));
}
return eslOK;
@@ -294,12 +294,12 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
-/* Function: p7_oprofile_GetMSVEmissionArray()
- * Synopsis: Retrieve MSV residue emission scores from an optimized
+/* Function: p7_oprofile_GetSSVEmissionScoreArray()
+ * Synopsis: Retrieve MSV residue emission scores from a
* profile into an array
*
* Purpose: Extract an implicitly 2D array of 8-bit int MSV residue
- * emission scores from an optimized profile <om>. <arr> must
+ * emission scores from a profile <om>. <arr> must
* be allocated by the calling function to be of size
* ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
* is done as [om->abc->Kp * i + c ] for character c at
@@ -310,7 +310,7 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
* is based on code from the function mf_conversion in impl_sse's
* p7_oprofile.c
*
- * Args: <om> - optimized profile, containing transition information
+ * Args: <om> - profile, containing emission information
* <arr> - preallocated array into which scores will be placed
*
* Returns: <eslOK> on success.
@@ -318,7 +318,7 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
* Throws: (no abnormal error conditions)
*/
int
-p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr )
+p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr )
{
int M = om->M; /* length of the query */
int i, j;
@@ -346,6 +346,131 @@ p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr )
return eslOK;
}
+/* Function: p7_oprofile_GetFwdEmissionArray()
+ * Synopsis: Retrieve Fwd (float) residue emission scores from a
+ * profile into an array
+ *
+ * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue
+ * emission scores from a profile <om>. <arr> must
+ * be allocated by the calling function to be of size
+ * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
+ * is done as [om->abc->Kp * i + c ] for character c at
+ * position i.
+ *
+ *
+ * Args: <om> - profile
+ * <arr> - preallocated array into which scores will be placed
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr )
+{
+ int i, j;
+
+ for (i = 1; i <= om->M; i++) {
+ for (j=0; j<om->abc->Kp; j++) {
+ arr[i*om->abc->Kp + j] = om->rsc[j][(i) * p7P_NR + p7P_MSC];
+ }
+ }
+
+ return eslOK;
+}
+
+/* Function: p7_oprofile_GetFwdEmissionArray()
+ * Synopsis: Retrieve Fwd (float) residue emission values from an optimized
+ * profile into an array
+ *
+ * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue
+ * emission values from an optimized profile <om>, converting
+ * back to emission values based on the background. <arr> must
+ * be allocated by the calling function to be of size
+ * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
+ * is done as [om->abc->Kp * i + c ] for character c at
+ * position i.
+ *
+ * Args: <om> - optimized profile, containing transition information
+ * <bg> - background frequencies
+ * <arr> - preallocated array into which scores will be placed
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr )
+{
+ int i, j;
+
+ for (i = 1; i <= om->M; i++) {
+ for (j=0; j<om->abc->Kp; j++) {
+ arr[i*om->abc->Kp + j] = bg->f[j] * exp( om->rsc[j][(i) * p7P_NR + p7P_MSC]);
+ }
+ }
+
+ return eslOK;
+}
+
+
+
+/* Function: p7_oprofile_UpdateFwdEmissionScores()
+ * Synopsis: Update om match emissions to account for new bg, using
+ * preallocated sc_tmp[].
+ *
+ * Purpose: Change scores based on updated background model
+ *
+ */
+int
+p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_tmp)
+{
+ int M = om->M; /* length of the query */
+ int i, j;
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+
+ for (i = 1; i <= om->M; i++) {
+
+ for (j=0; j<K; j++) {
+ if (om->mm && om->mm[i] == 'm')
+ sc_tmp[j] = 0;
+ else
+ sc_tmp[j] = log(fwd_emissions[i*om->abc->Kp + j] / bg->f[j]);
+ }
+
+
+ esl_abc_FExpectScVec(bg->abc, sc_tmp, bg->f);
+
+ for (j=0; j<Kp; j++)
+ om->rsc[j][(i) * p7P_NR + p7P_MSC] = sc_tmp[j];
+
+ }
+
+ return eslOK;
+
+}
+
+/* Function: p7_oprofile_UpdateVitEmissionScores()
+ * Synopsis: Dummy function - no need to update Viterbi-specific scores in dummy
+ *
+ */
+int
+p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ return eslOK;
+}
+
+
+/* Function: p7_oprofile_UpdateMSVEmissionScores()
+ * Synopsis: Dummy function - no need to update Viterbi-specific scores in dummy
+ */
+int
+p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ return eslOK;
+
+}
/*------------ end, conversions from P7_OPROFILE ------------------*/
@@ -668,8 +793,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/stotrace.c b/hmmer/src/impl_dummy/stotrace.c
index 23fb79b..33654c9 100644
--- a/hmmer/src/impl_dummy/stotrace.c
+++ b/hmmer/src/impl_dummy/stotrace.c
@@ -11,7 +11,7 @@
* 7. Copyright and license information.
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: stotrace.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -412,8 +412,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/vitfilter.c b/hmmer/src/impl_dummy/vitfilter.c
index ebeff78..fc4cbdc 100644
--- a/hmmer/src/impl_dummy/vitfilter.c
+++ b/hmmer/src/impl_dummy/vitfilter.c
@@ -15,7 +15,7 @@
* 6. Copyright and license information
*
* MSF Tue Nov 3, 2009 [Janelia]
- * SVN $Id: vitfilter.c 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -508,8 +508,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_dummy/vitscore.c b/hmmer/src/impl_dummy/vitscore.c
index c30c4b9..3099565 100644
--- a/hmmer/src/impl_dummy/vitscore.c
+++ b/hmmer/src/impl_dummy/vitscore.c
@@ -12,7 +12,7 @@
* 6. Copyright and license information.
*
* MSF, Tue Nov 03, 2009 [Janelia]
- * SVN $Id: vitscore.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -392,8 +392,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/Makefile.in b/hmmer/src/impl_sse/Makefile.in
index ae3590d..8531320 100644
--- a/hmmer/src/impl_sse/Makefile.in
+++ b/hmmer/src/impl_sse/Makefile.in
@@ -43,8 +43,7 @@ OBJS = decoding.o\
vitfilter.o\
p7_omx.o\
p7_oprofile.o\
- mpi.o\
- fm.o
+ mpi.o
HDRS = impl_sse.h
@@ -181,14 +180,14 @@ clean:
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_sse/Makefile.in $
-# SVN $Id: Makefile.in 4027 2012-05-07 14:59:40Z nawrockie $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/src/impl_sse/decoding.c b/hmmer/src/impl_sse/decoding.c
index ac9e524..7f5324c 100644
--- a/hmmer/src/impl_sse/decoding.c
+++ b/hmmer/src/impl_sse/decoding.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* SRE, Mon Aug 18 08:15:50 2008 [Janelia]
- * SVN $Id: decoding.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -443,8 +443,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/fwdback.c b/hmmer/src/impl_sse/fwdback.c
index 43c91f5..04b09da 100644
--- a/hmmer/src/impl_sse/fwdback.c
+++ b/hmmer/src/impl_sse/fwdback.c
@@ -29,7 +29,7 @@
* 8. Copyright and license information.
*
* SRE, Thu Jul 31 08:43:20 2008 [Janelia]
- * SVN $Id: fwdback.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -1198,8 +1198,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/impl_sse.h b/hmmer/src/impl_sse/impl_sse.h
index fa7fcab..86b04df 100644
--- a/hmmer/src/impl_sse/impl_sse.h
+++ b/hmmer/src/impl_sse/impl_sse.h
@@ -2,7 +2,7 @@
* routines: structures, declarations, and macros.
*
* SRE, Sun Nov 25 11:23:02 2007
- * SVN $Id: impl_sse.h 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#ifndef P7_IMPL_SSE_INCLUDED
#define P7_IMPL_SSE_INCLUDED
@@ -14,10 +14,9 @@
#include <xmmintrin.h> /* SSE */
#include <emmintrin.h> /* SSE2 */
-#ifdef _PMMINTRIN_H_INCLUDED
+#ifdef __SSE3__
#include <pmmintrin.h> /* DENORMAL_MODE */
#endif
-
#include "hmmer.h"
/* In calculating Q, the number of vectors we need in a row, we have
@@ -250,214 +249,10 @@ p7_omx_FSetMDI(const P7_OMX *ox, int s, int i, int k, float val)
}
-/*****************************************************************
- * 3. FM-index
- *****************************************************************/
-
-/* Effectively global variables, to be initialized once in fm_initConfig(),
- * then passed around among threads to avoid recomputing them
- *
- * When allocated, must be 16-byte aligned, and all _m128i elements
- * must precede other types
- */
-typedef struct {
- /* mask arrays, and 16-byte-offsets into them */
- __m128i *fm_masks_mem;
- __m128i *fm_masks_v;
- __m128i *fm_reverse_masks_mem;
- __m128i *fm_reverse_masks_v;
- __m128i *fm_chars_mem;
- __m128i *fm_chars_v;
-
- /*various precomputed vectors*/
- __m128i fm_allones_v;
- __m128i fm_zeros_v;
- __m128i fm_neg128_v;
- __m128i fm_m0f; //00 00 11 11
- __m128i fm_m01; //01 01 01 01
- __m128i fm_m11; //00 00 00 11
-
- /* no non-__m128i- elements above this line */
-
- /*suffix-array mask and offset values*/
- int maskSA;
- int shiftSA;
-
- /*counter, to compute FM-index speed*/
- int occCallCnt;
-
- /*bounding cutoffs*/
- int max_depth;
- int neg_len_limit;
- int consec_pos_req; //6
- float score_ratio_req; //.49
- int msv_length;
- float max_scthreshFM;
-
- /*pointer to FM-index metadata*/
- FM_METADATA *meta;
-
-} FM_CFG;
-
-
-//used to convert from a byte array to an __m128i
-typedef union {
- uint8_t bytes[16];
- __m128i m128;
- } byte_m128;
-
-
-/* Gather the sum of all counts in a 16x8-bit element into a single 16-bit
- * element of the register (the 0th element)
- *
- * the _mm_sad_epu8 accumulates 8-bit counts into 16-bit counts:
- * left 8 counts (64-bits) accumulate in counts_v[0],
- * right 8 counts in counts_v[4] (the other 6 16-bit ints are 0)
- * the _mm_shuffle_epi32 flips the 4th int into the 0th slot
- */
-#define FM_GATHER_8BIT_COUNTS( in_v, mid_v, out_v ) do {\
- mid_v = _mm_sad_epu8 (in_v, cfg->fm_zeros_v);\
- tmp_v = _mm_shuffle_epi32(mid_v, _MM_SHUFFLE(1, 1, 1, 2));\
- out_v = _mm_add_epi16(mid_v, tmp_v);\
- } while (0)
-
-// use this instead?
-// D = _mm_srli_si128(C, 8);
-// E = _mm_add_epi32(C, D);
-// sad = mm_cvtsi128_si32(E)
-
-
-/* Macro for SSE operations to turn 2-bit character values into 2-bit binary
- * (00 or 01) match/mismatch values representing occurrences of a character in a
- * 4-char-per-byte packed BWT.
- *
- * Typically followed by a call to FM_COUNT_SSE_4PACKED, possibly with a
- * mask in between to handle the case where we don't want to add over all
- * positions in the vector
- *
- * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values
- * at the end
- *
- * xor(in_v, c_v) : each 2-bit value will be 00 if a match, and non-0 if a mismatch
- * and(in_v, 01010101) : look at the right bit of each 2-bit value,
- * srli(1)+and() : look at the left bit of each 2-bit value,
- * or() : if either left bit or right bit is non-0, 01, else 00 (match is 00)
- *
- * subs() : invert, so match is 01, mismatch is 00
- *
- */
-#define FM_MATCH_2BIT(in_v, c_v, a_v, b_v, out_v) do {\
- a_v = _mm_xor_si128(in_v, c_v);\
- \
- b_v = _mm_and_si128(a_v, cfg->fm_m01);\
- a_v = _mm_srli_epi16(a_v, 1);\
- a_v = _mm_and_si128(a_v, cfg->fm_m01);\
- a_v = _mm_or_si128(a_v, b_v);\
- \
- out_v = _mm_subs_epi8(cfg->fm_m01,a_v);\
- } while (0)
-
-
-/*Macro for SSE operations to count bits produced by FM_MATCH_SSE_4PACKED
- *
- * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values
- * at the end
- *
- * then add up the 2-bit values:
- * srli(4)+add() : left 4 bits shifted right, added to right 4 bits
- *
- * srli(2)+and(00000011) : left 2 bits (value 0..2) shifted right, masked, so no other bits active
- * and(00000011) : right 2 bits (value 0..2) masked so no other bits active
- *
- * final 2 add()s : tack current counts on to already-tabulated counts.
- */
-#define FM_COUNT_2BIT(a_v, b_v, cnts_v) do {\
- b_v = _mm_srli_epi16(a_v, 4);\
- a_v = _mm_add_epi16(a_v, b_v);\
- \
- b_v = _mm_srli_epi16(a_v, 2);\
- a_v = _mm_and_si128(a_v,cfg->fm_m11);\
- b_v = _mm_and_si128(b_v,cfg->fm_m11);\
- \
- cnts_v = _mm_add_epi16(cnts_v, a_v);\
- cnts_v = _mm_add_epi16(cnts_v, b_v);\
- } while (0)
-
-
-
-/* Macro for SSE operations that turns a vector of 4-bit character values into
- * 2 vectors representing matches. Each byte in the input vector consists of
- * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce
- * one vector, which contains all-1s for bytes in which the left half matches
- * the c_v character (and 0s if it doesn't), while the 16 right-halves produce
- * the other vector, again with each byte either all-1s or all-0s.
- *
- * The expectation is that FM_COUNT_4BIT will be called after this, to
- * turn these binary values into sums over a series of vectors. The macros
- * are split up to allow one end or other to be trimmed in the case that
- * counting is not expected to include the full vector.
- *
- * srli(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks)
- * and() : capture the right 4-bit value
- *
- * cmpeq()x2 : test if both left and right == c. For each, if ==c , value = 11111111 (-1)
- */
-#define FM_MATCH_4BIT(in_v, c_v, out1_v, out2_v) do {\
- out1_v = _mm_srli_epi16(in_v, 4);\
- out2_v = _mm_and_si128(in_v, cfg->fm_m0f);\
- out1_v = _mm_and_si128(out1_v, cfg->fm_m0f);\
- \
- out1_v = _mm_cmpeq_epi8(out1_v, c_v);\
- out2_v = _mm_cmpeq_epi8(out2_v, c_v);\
- } while (0)
-
-
-/* Macro for SSE operations that turns a vector of 4-bit character values into
- * 2 vectors representing matches. Each byte in the input vector consists of
- * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce
- * one vector, which contains all-1s for bytes in which the left half is less than
- * the c_v character (and 0s if it doesn't), while the 16 right-halves produce
- * the other vector, again with each byte either all-1s or all-0s.
- *
- * The expectation is that FM_COUNT_4BIT will be called after this, to
- * turn these binary values into sums over a series of vectors. The macros
- * are split up to allow one end or other to be trimmed in the case that
- * counting is not expected to include the full vector.
- *
- * srli(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks)
- * and() : capture the right 4-bit value
- *
- * cmplt()x2 : test if both left and right < c. For each, if <c , value = 11111111 (-1)
- */
-#define FM_LT_4BIT(in_v, c_v, out1_v, out2_v) do {\
- out1_v = _mm_srli_epi16(in_v, 4);\
- out2_v = _mm_and_si128(in_v, cfg->fm_m0f);\
- out1_v = _mm_and_si128(out1_v, cfg->fm_m0f);\
- \
- out1_v = _mm_cmplt_epi8(out1_v, c_v);\
- out2_v = _mm_cmplt_epi8(out2_v, c_v);\
- } while (0)
-
-
-
-/* Macro for SSE operations to add occurrence counts to the tally vector counts_v,
- * in the 4-bits-per-character case
- *
- * The expectation is that in[12]_v will contain bytes that are either
- * 00000000 = 0
- * or
- * 11111111 = -1
- * so subtracting the value of the byte is the same as adding 0 or 1.
- */
-#define FM_COUNT_4BIT(in1_v, in2_v, cnts_v) do {\
- cnts_v = _mm_subs_epi8(cnts_v, in1_v);\
- cnts_v = _mm_subs_epi8(cnts_v, in2_v);\
- } while (0)
-
/*****************************************************************
- * 4. Declarations of the external API.
+ * 3. Declarations of the external API.
*****************************************************************/
/* p7_omx.c */
@@ -481,6 +276,10 @@ extern void p7_oprofile_Destroy(P7_OPROFILE *om);
extern size_t p7_oprofile_Sizeof(P7_OPROFILE *om);
extern P7_OPROFILE *p7_oprofile_Copy(P7_OPROFILE *om);
extern P7_OPROFILE *p7_oprofile_Clone(const P7_OPROFILE *om);
+extern int p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr);
+extern int p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr);
+extern int p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr);
+
extern int p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om);
extern int p7_oprofile_ReconfigLength (P7_OPROFILE *om, int L);
@@ -497,7 +296,9 @@ extern int p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm);
extern int p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm);
extern int p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr );
-extern int p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr );
+extern int p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr );
+extern int p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr );
+extern int p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr );
/* decoding.c */
extern int p7_Decoding (const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp);
@@ -525,7 +326,7 @@ extern int p7_SSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, fl
/* msvfilter.c */
extern int p7_MSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc);
-extern int p7_MSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist);
+extern int p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist);
/* null2.c */
@@ -549,14 +350,8 @@ extern int p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROF
extern int p7_ViterbiScore (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc);
-/*fm.c */
-extern int fm_initConfig (FM_CFG *cfg, ESL_GETOPTS *go);
-extern int fm_destroyConfig (FM_CFG *cfg );
-extern int fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c);
-extern int fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt);
-
/*****************************************************************
- * 5. Implementation specific initialization
+ * 4. Implementation specific initialization
*****************************************************************/
static inline void
impl_Init(void)
@@ -568,21 +363,6 @@ impl_Init(void)
*/
_MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
#endif
-}
-
-
-static inline void
-impl_ThreadInit(void)
-{
-#ifdef HAVE_FLUSH_ZERO_MODE
- /* In order to avoid the performance penalty dealing with sub-normal
- * values in the floating point calculations, set the processor flag
- * so sub-normals are "flushed" immediately to zero.
- * On OS X, need to reset this flag for each thread
- * (see TW notes 05/08/10 for details)
- */
- _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON);
-#endif
#ifdef _PMMINTRIN_H_INCLUDED
/*
@@ -593,16 +373,14 @@ impl_ThreadInit(void)
*/
_MM_SET_DENORMALS_ZERO_MODE(_MM_DENORMALS_ZERO_ON);
#endif
-
}
-
#endif /* P7_IMPL_SSE_INCLUDED */
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/io.c b/hmmer/src/impl_sse/io.c
index 8cd469d..f9bbc18 100644
--- a/hmmer/src/impl_sse/io.c
+++ b/hmmer/src/impl_sse/io.c
@@ -1023,13 +1023,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_sse/io.c $
- * SVN $Id: io.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/impl_sse/mpi.c b/hmmer/src/impl_sse/mpi.c
index 4ef68d6..3a67308 100644
--- a/hmmer/src/impl_sse/mpi.c
+++ b/hmmer/src/impl_sse/mpi.c
@@ -8,7 +8,7 @@
* 5. Copyright and license information.
*
* SRE, Thu Jun 14 09:59:20 2007 [Janelia] [Tom Waits, Orphans]
- * SVN $Id: mpi.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -161,7 +161,7 @@ p7_oprofile_MPIPackSize(P7_OPROFILE *om, MPI_Comm comm, int *ret_n)
if (om->mm != NULL) len += strlen(om->mm) + 1;
if (om->cs != NULL) len += strlen(om->cs) + 1;
if (om->consensus != NULL) len += strlen(om->consensus) + 1;
- if (MPI_Pack_size(6, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
+ if (MPI_Pack_size(7, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
if (MPI_Pack_size(len, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
cnt = p7_NEVPARAM + p7_NCUTOFFS + p7_MAXABET;
if (MPI_Pack_size(cnt, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
@@ -786,8 +786,8 @@ int main(void) { return 0; }
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/msvfilter.c b/hmmer/src/impl_sse/msvfilter.c
index 3691869..c54b4e9 100644
--- a/hmmer/src/impl_sse/msvfilter.c
+++ b/hmmer/src/impl_sse/msvfilter.c
@@ -15,7 +15,7 @@
* 6. Copyright and license information
*
* SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos]
- * SVN $Id: msvfilter.c 4198 2012-08-27 19:33:50Z nawrockie $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -131,7 +131,6 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
}
#endif
-
for (i = 1; i <= L; i++)
{
rsc = om->rbv[dsq[i]];
@@ -215,22 +214,23 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
/* Function: p7_SSVFilter_longtarget()
* Synopsis: Finds windows with SSV scores above some threshold (vewy vewy fast, in limited precision)
- * Incept: TJW, Mon Feb 22 16:27:25 2010 [Janelia] - based on p7_MSVFilter
- *
*
- * Purpose: Calculates an approximation of the MSV score for regions of
- * sequence <dsq> of length <L> residues, using optimized profile
- * <om>, and a preallocated one-row DP matrix <ox>, and captures
- * the positions at which such regions exceed the score required
- * to be significant in the eyes of the calling function (usually
- * p=0.02). Note that this variant performs only SSV computations,
- * never passing through the J state. See comments in
- * p7_MSVFilter_longtarget() for details
+ * Purpose: Calculates an approximation of the SSV (single ungapped diagonal)
+ * score for regions of sequence <dsq> of length <L> residues, using
+ * optimized profile <om>, and a preallocated one-row DP matrix <ox>,
+ * and captures the positions at which such regions exceed the score
+ * required to be significant in the eyes of the calling function,
+ * which depends on the <bg> and <p> (usually p=0.02 for nhmmer).
+ * Note that this variant performs only SSV computations, never
+ * passing through the J state - the score required to pass SSV at
+ * the default threshold (or less restrictive) is sufficient to
+ * pass MSV in essentially all DNA models we've tested.
*
- * Rather than simply capturing positions at which a score threshold
- * is reached, this function establishes windows around those
- * high-scoring positions. p7_MSVFilter_longtarget then merges
- * overlapping windows.
+ * Above-threshold diagonals are captured into a preallocated list
+ * <windowlist>. Rather than simply capturing positions at which a
+ * score threshold is reached, this function establishes windows
+ * around those high-scoring positions, using scores in <msvdata>.
+ * These windows can be merged by the calling function.
*
*
* Args: dsq - digital target sequence, 1..L
@@ -238,11 +238,9 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
* om - optimized profile
* ox - DP matrix
* msvdata - compact representation of substitution scores, for backtracking diagonals
- * sc_thresh - a precomputed threshold required for a window to be considered "high-scoring"
- * sc_threshv - a precomputed vector containing a vector of sc_thresh values
- * starts - RETURN: array of start positions for windows surrounding above-threshold areas
- * ends - RETURN: array of end positions for windows surrounding above-threshold areas
- * hit_cnt - RETURN: count of entries in the above two arrays
+ * bg - the background model, required for translating a P-value threshold into a score threshold
+ * P - p-value below which a region is captured as being above threshold
+ * windowlist - preallocated container for all hits (resized if necessary)
*
*
* Note: We misuse the matrix <ox> here, using only a third of the
@@ -256,9 +254,9 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
*
* Throws: <eslEINVAL> if <ox> allocation is too small.
*/
-static int
-p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata,
- uint8_t sc_thresh, __m128i sc_threshv, P7_HMM_WINDOWLIST *windowlist)
+int
+p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *ssvdata,
+ P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist)
{
register __m128i mpv; /* previous row values */
@@ -266,13 +264,11 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
register __m128i xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */
register __m128i sv; /* temp storage of 1 curr row value in progress */
register __m128i biasv; /* emission bias in a vector */
- uint8_t xJ; /* special states' scores */
int i; /* counter over sequence positions 1..L */
int q; /* counter over vectors 0..nq-1 */
int Q = p7O_NQB(om->M); /* segment length: # of vectors */
__m128i *dp = ox->dpb[0]; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/
__m128i *rsc; /* will point at om->rbv[x] for residue x[i] */
- __m128i tecv; /* vector for E->C cost */
__m128i tjbmv; /* vector for J->B move cost + B->M move costs */
__m128i basev; /* offset for scores */
__m128i ceilingv; /* saturated simd value used to test for overflow */
@@ -293,20 +289,50 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
union { __m128i v; uint8_t b[16]; } u;
+ /*
+ * Computing the score required to let P meet the F1 prob threshold
+ * In original code, converting from a scaled int MSV
+ * score S (the score getting to state E) to a probability goes like this:
+ * usc = S - om->tec_b - om->tjb_b - om->base_b;
+ * usc /= om->scale_b;
+ * usc -= 3.0;
+ * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda)
+ * and we're computing the threshold usc, so reverse it:
+ * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda)
+ * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda)
+ * usc += 3
+ * usc *= om->scale_b
+ * S = usc + om->tec_b + om->tjb_b + om->base_b
+ *
+ * Here, I compute threshold with length model based on max_length. Doesn't
+ * matter much - in any case, both the bg and om models will change with roughly
+ * 1 bit for each doubling of the length model, so they offset.
+ */
+ float nullsc;
+ __m128i sc_threshv;
+ uint8_t sc_thresh;
+ float invP = esl_gumbel_invsurv(P, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
+
+
/* Check that the DP matrix is ok for us. */
if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small");
ox->M = om->M;
+ p7_bg_SetLength(bg, om->max_length);
+ p7_oprofile_ReconfigMSVLength(om, om->max_length);
+ p7_bg_NullOne (bg, dsq, om->max_length, &nullsc);
+
+ sc_thresh = (int) ceil( ( ( nullsc + (invP * eslCONST_LOG2) + 3.0 ) * om->scale_b ) + om->base_b + om->tec_b + om->tjb_b );
+ sc_threshv = _mm_set1_epi8((int8_t) 255 - sc_thresh);
+
/* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base.
*/
biasv = _mm_set1_epi8((int8_t) om->bias_b); /* yes, you can set1() an unsigned char vector this way */
ceilingv = _mm_cmpeq_epi8(biasv, biasv);
for (q = 0; q < Q; q++) dp[q] = _mm_setzero_si128();
- xJ = 0;
basev = _mm_set1_epi8((int8_t) om->base_b);
- tecv = _mm_set1_epi8((int8_t) om->tec_b);
tjbmv = _mm_set1_epi8((int8_t) om->tjb_b + (int8_t) om->tbm_b);
xBv = _mm_subs_epu8(basev, tjbmv);
@@ -338,7 +364,6 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
cmp = _mm_movemask_epi8(tempv);
if (cmp != 0) { //hit pthresh, so add position to list and reset values
-
//figure out which model state hit threshold
end = -1;
rem_sc = -1;
@@ -355,11 +380,11 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
}
//recover the diagonal that hit threshold
- start = end;
- target_end = target_start = i;
+ start = end; // model position
+ target_end = target_start = i; // target position
sc = rem_sc;
while (rem_sc > om->base_b - om->tjb_b - om->tbm_b) {
- rem_sc -= om->bias_b - msvdata->scores[start*om->abc->Kp + dsq[target_start]];
+ rem_sc -= om->bias_b - ssvdata->ssv_scores[start*om->abc->Kp + dsq[target_start]];
--start;
--target_start;
}
@@ -374,7 +399,7 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
max_sc = sc;
pos_since_max = 0;
while (k<om->M && n<=L) {
- sc += om->bias_b - msvdata->scores[k*om->abc->Kp + dsq[n]];
+ sc += om->bias_b - ssvdata->ssv_scores[k*om->abc->Kp + dsq[n]];
if (sc >= max_sc) {
max_sc = sc;
@@ -390,14 +415,23 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
}
end += (max_end - target_end);
- k += (max_end - target_end);
+ //k += (max_end - target_end);
target_end = max_end;
ret_sc = ((float) (max_sc - om->tjb_b) - (float) om->base_b);
ret_sc /= om->scale_b;
ret_sc -= 3.0; // that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ
- p7_hmmwindow_new(windowlist, 0, target_start, k, end, end-start+1 , ret_sc, fm_nocomplement );
+ p7_hmmwindow_new( windowlist,
+ 0, // sequence_id; used in the FM-based filter, but not here
+ target_start, // position in the target at which the diagonal starts
+ 0, // position in the target fm_index at which diagonal starts; not used here, just in FM-based filter
+ end, // position in the model at which the diagonal ends
+ end-start+1 , // length of diagonal
+ ret_sc, // score of diagonal
+ p7_NOCOMPLEMENT, // always p7_NOCOMPLEMENT here; varies in FM-based filter
+ L
+ );
i = target_end; // skip forward
}
@@ -412,290 +446,6 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
-/* Function: p7_MSVFilter_longtarget()
- * Synopsis: Finds windows with MSV scores above some threshold (vewy vewy fast, in limited precision)
- *
- * Purpose: Calculates an approximation of the MSV score for regions of
- * sequence <dsq>, using optimized profile <om>, and a pre-
- * allocated one-row DP matrix <ox>, and captures the positions
- * at which such regions exceed the score required to be
- * significant in the eyes of the calling function (usually
- * p=0.02). Note that this will typically simply call
- * p7_SSVFilter_longtarget(), as the score threshold is nearly
- * always lower than the score required for a pass through the
- * J-state to yield a positive score.
- *
- *
- *
- * Args: dsq - digital target sequence, 1..L
- * L - length of dsq in residues
- * om - optimized profile
- * ox - DP matrix
- * msvdata - compact representation of substitution scores, for backtracking diagonals
- * bg - the background model, required for translating a P-value threshold into a score threshold
- * P - p-value below which a region is captured as being above threshold
- * windowlist - RETURN: preallocated array of hit windows (start and end of diagonal) for the above-threshold areas
- *
- * Note: We misuse the matrix <ox> here, using only a third of the
- * first dp row, accessing it as <dp[0..Q-1]> rather than
- * in triplets via <{MDI}MX(q)> macros, since we only need
- * to store M state values. We know that if <ox> was big
- * enough for normal DP calculations, it must be big enough
- * to hold the MSVFilter calculation.
- *
- * Returns: <eslOK> on success.
- *
- * Throws: <eslEINVAL> if <ox> allocation is too small.
- */
-int
-p7_MSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist)
-{
-#ifdef ALLOW_MSV
- register __m128i mpv; /* previous row values */
- register __m128i xEv; /* E state: keeps max for Mk->E as we go */
- register __m128i xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */
- register __m128i sv; /* temp storage of 1 curr row value in progress */
- register __m128i biasv; /* emission bias in a vector */
- uint8_t xJ; /* special states' scores */
- int i; /* counter over sequence positions 1..L */
-// int j;
- int q; /* counter over vectors 0..nq-1 */
- int Q = p7O_NQB(om->M); /* segment length: # of vectors */
- __m128i *dp = ox->dpb[0]; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/
- __m128i *rsc; /* will point at om->rbv[x] for residue x[i] */
-
- __m128i xEv_prev; /* E state: keeps the max seen up to the current position i, for window overlap test. Note that this will always just be xJv + tecv */
- __m128i xJv; /* vector for states score */
- __m128i tecv; /* vector for E->C cost */
- __m128i tjbmv; /* vector for [JN]->B->M move cost */
- __m128i basev; /* offset for scores */
- __m128i jthreshv; /* pushes value to saturation if it's above pthresh */
- __m128i ceilingv; /* saturated simd value used to test for overflow */
- __m128i tempv; /* work vector */
-#endif
-
-
- /*
- * Computing the score required to let P meet the F1 prob threshold
- * In original code, converting from a scaled int MSV
- * score S (the score getting to state E) to a probability goes like this:
- * usc = S - om->tec_b - om->tjb_b - om->base_b;
- * usc /= om->scale_b;
- * usc -= 3.0;
- * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda)
- * and we're computing the threshold usc, so reverse it:
- * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda)
- * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda)
- * usc += 3
- * usc *= om->scale_b
- * S = usc + om->tec_b + om->tjb_b + om->base_b
- *
- * Here, I compute threshold with length model based on max_length. Doesn't
- * matter much - in any case, both the bg and om models will change with roughly
- * 1 bit for each doubling of the length model, so they offset.
- */
- float nullsc;
- __m128i sc_threshv;
- uint8_t sc_thresh;
-
- float invP = esl_gumbel_invsurv(P, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
-
- p7_bg_SetLength(bg, om->max_length);
- p7_oprofile_ReconfigMSVLength(om, om->max_length);
- p7_bg_NullOne (bg, dsq, om->max_length, &nullsc);
-
- sc_thresh = (int) ceil( ( ( nullsc + (invP * eslCONST_LOG2) + 3.0 ) * om->scale_b ) + om->base_b + om->tec_b + om->tjb_b );
- sc_threshv = _mm_set1_epi8((int8_t) 255 - sc_thresh);
-
-#ifdef ALLOW_MSV
- //see ~wheelert/notebook/2012/0326-nhmmer-msv-ssv/00NOTES - notes on 'Mar 31'
- uint8_t jthresh = om->base_b + om->tec_b + 1;
- jthreshv = _mm_set1_epi8((int8_t) 255 - (int)jthresh);
-
-
- if (force_ssv || (sc_thresh < jthresh)) {
-#endif
-
- p7_SSVFilter_longtarget(dsq, L, om, ox, msvdata, (uint8_t)sc_thresh, sc_threshv, windowlist);
-
-#ifdef ALLOW_MSV
- } else {
-
- /*e.g. if base=190, tec=3, tjb=22 then a score of 217 would be required for a
- * second ssv-hit to improve the score of an earlier one. Usually,
- * sc_thresh < base. So only bother with msv if sc thresh is uncommonly
- * high. This will require mu of something in the neighborhood of -6.4 bits
- * (see TJW notes Mon Jun 7 10:19:34 EDT 2010 for details)
- */
- int hit_pthresh;
- int e_unchanged;
-
- //used to track neighboring MSV peaks
- int first_peak = -1;
- int last_peak = -1;
- int hit_jthresh;
-
-
- /* Check that the DP matrix is ok for us. */
- if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small");
- ox->M = om->M;
-
- /* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base.
- */
- biasv = _mm_set1_epi8((int8_t) om->bias_b); /* yes, you can set1() an unsigned char vector this way */
- for (q = 0; q < Q; q++) dp[q] = _mm_setzero_si128();
- xJ = 0;
-
-
- /* saturate simd register for overflow test */
- ceilingv = _mm_cmpeq_epi8(biasv, biasv);
-
- basev = _mm_set1_epi8((int8_t) om->base_b);
-
- tecv = _mm_set1_epi8((int8_t) om->tec_b);
- tjbmv = _mm_set1_epi8((int8_t) om->tjb_b + (int8_t) om->tbm_b);
-
- xJv = _mm_subs_epu8(biasv, biasv);
- xBv = _mm_subs_epu8(basev, tjbmv);
-
- xEv_prev = _mm_setzero_si128();
-
-
- #if p7_DEBUGGING
- if (ox->debugging)
- {
- uint8_t xB;
- xB = _mm_extract_epi16(xBv, 0);
- xJ = _mm_extract_epi16(xJv, 0);
- p7_omx_DumpMFRow(ox, 0, 0, 0, xJ, xB, xJ);
- }
- #endif
-
-
- for (i = 1; i <= L; i++)
- {
-
- rsc = om->rbv[dsq[i]];
- xEv = _mm_setzero_si128();
-
- /* Right shifts by 1 byte. 4,8,12,x becomes x,4,8,12.
- * Because ia32 is littlendian, this means a left bit shift.
- * Zeros shift on automatically, which is our -infinity.
- */
- mpv = _mm_slli_si128(dp[Q-1], 1);
- for (q = 0; q < Q; q++)
- {
- /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */
- sv = _mm_max_epu8(mpv, xBv);
- sv = _mm_adds_epu8(sv, biasv);
- sv = _mm_subs_epu8(sv, *rsc); rsc++;
- xEv = _mm_max_epu8(xEv, sv);
-
- mpv = dp[q]; /* Load {MDI}(i-1,q) into mpv */
- dp[q] = sv; /* Do delayed store of M(i,q) now that memory is usable */
- }
-
- if (last_peak == -1) { // haven't seen an above-jthresh peak recently, check if we've hit jthresh now
- tempv = _mm_adds_epu8(xEv, jthreshv);
- tempv = _mm_cmpeq_epi8(tempv, ceilingv);
- hit_jthresh = _mm_movemask_epi8(tempv);
- } else {
- hit_jthresh = 0xffff; // already passed some above-jthresh peak in the recent past
- }
-
-
- /* Now the "special" states, which start from Mk->E (->C, ->J->B)
- * Use shuffles instead of shifts so when the last max has completed,
- * the last four elements of the simd register will contain the
- * max value. Then the last shuffle will broadcast the max value
- * to all simd elements.
- *
- * This is placed here so it can be run while movemask above is blocking
- */
- tempv = _mm_shuffle_epi32(xEv, _MM_SHUFFLE(2, 3, 0, 1));
- xEv = _mm_max_epu8(xEv, tempv);
- tempv = _mm_shuffle_epi32(xEv, _MM_SHUFFLE(0, 1, 2, 3));
- xEv = _mm_max_epu8(xEv, tempv);
- tempv = _mm_shufflelo_epi16(xEv, _MM_SHUFFLE(2, 3, 0, 1));
- xEv = _mm_max_epu8(xEv, tempv);
- tempv = _mm_srli_si128(xEv, 1);
- xEv = _mm_max_epu8(xEv, tempv);
- xEv = _mm_shuffle_epi32(xEv, _MM_SHUFFLE(0, 0, 0, 0));
-
-
- if (hit_jthresh != 0x0000) {
- //test if xE has increased this iteration. If we go a long way without increasing, then we'll give up on the current window
- tempv = _mm_max_epu8(xEv, xEv_prev);
- tempv = _mm_cmpeq_epi8(tempv, xEv_prev); //if these are equal, then xEv didn't go up
- e_unchanged = _mm_movemask_epi8(tempv);
-
-
- if (e_unchanged == 0x0000) { // there was an increase. Establish peaks
- xEv_prev = xEv;
- if (first_peak == -1)
- first_peak = i;
- last_peak = i;
-
- //check if we've hit pthresh. If so, reset values and add this region to the list of hits
- tempv = _mm_adds_epu8(xEv, sc_threshv);
- tempv = _mm_cmpeq_epi8(tempv, ceilingv);
- hit_pthresh = _mm_movemask_epi8(tempv);
- if (hit_pthresh != 0)
- {
-
- int start = first_peak - om->max_length + 1;
- int length = i-first_peak+1 + 2 * om->max_length;
- fm_newWindow(windowlist, 0, start, -1, -1, length , -1, fm_nocomplement );
-
- // got one peak. Start scanning for the next one, as though starting from scratch
- first_peak = last_peak = -1;
-
- //reset xE, xJ, and xB
- xJv = _mm_setzero_si128(); //_mm_subs_epu8(biasv, biasv);
- xBv = _mm_subs_epu8(basev, tjbmv);
- for (q = 0; q < Q; q++)
- dp[q] = _mm_set1_epi8(0); // this will cause values to get reset to xB in next iteration
-
- }
- } else if (i > last_peak + om->max_length) {
- //been a long time since the last above-jthresh peak was seen;
- // give up looking for a J-state-induced extension that will drive the score above sc_thresh
-
- first_peak = last_peak = -1;
-
- //Reset values as if the previous peak hadn't existed, retaining the growth of the current peak
- //See end of TW notes feb 25, 2010
- tempv = _mm_subs_epu8(xEv_prev, basev);
- tempv = _mm_subs_epu8(tempv, tecv);
- for (q = 0; q < Q; q++)
- dp[q] = _mm_subs_epu8(dp[q], tempv);
-
- //reset xE, xJ, and xB
- xEv_prev = xEv = xJv = _mm_setzero_si128();
- xBv = _mm_subs_epu8(basev, tjbmv);
-
- } //else ... nothing to do, just extend another step
-
- }
-
-
- xEv = _mm_subs_epu8(xEv, tecv);
- xJv = _mm_max_epu8(xJv,xEv);
-
- xBv = _mm_max_epu8(basev, xJv);
- xBv = _mm_subs_epu8(xBv, tjbmv);
-
- } /* end loop over sequence residues 1..L */
- }
-#endif
-
- return eslOK;
-
-
-}
-/*------------------ end, p7_MSVFilter_longtarget() ------------------------*/
-
-
/*****************************************************************
* 2. Benchmark driver.
@@ -1130,8 +880,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/null2.c b/hmmer/src/impl_sse/null2.c
index 60ccbe0..7b9f38f 100644
--- a/hmmer/src/impl_sse/null2.c
+++ b/hmmer/src/impl_sse/null2.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* SRE, Mon Aug 18 08:31:11 2008 [Janelia]
- * SVN $Id: null2.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -141,7 +141,7 @@ p7_Null2_ByTrace(const P7_OPROFILE *om, const P7_TRACE *tr, int zstart, int zend
float xfactor;
__m128 sv;
__m128 *rp;
- int q, r, s;
+ int q, r;
int x;
int z;
@@ -162,7 +162,7 @@ p7_Null2_ByTrace(const P7_OPROFILE *om, const P7_TRACE *tr, int zstart, int zend
Ld++;
if (tr->k[z] > 0) /* must be an M or I */
{ /* surely there's an easier way? but our workspace is striped, interleaved quads... */
- s = ( (tr->st[z] == p7T_M) ? p7X_M : p7X_I);
+ // s = ( (tr->st[z] == p7T_M) ? p7X_M : p7X_I); // We don't need the state type <s>, but this is how you'd get it.
q = p7X_NSCELLS * ( (tr->k[z] - 1) % Q) + p7X_M;
r = (tr->k[z] - 1) / Q;
u.v = wrk->dpf[0][q];
@@ -506,8 +506,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/optacc.c b/hmmer/src/impl_sse/optacc.c
index cbff36e..6c3ce56 100644
--- a/hmmer/src/impl_sse/optacc.c
+++ b/hmmer/src/impl_sse/optacc.c
@@ -10,7 +10,7 @@
* 7. Copyright and license information.
*
* SRE, Mon Aug 18 20:01:01 2008 [Casa de Gatos]
- * SVN $Id: optacc.c 3991 2012-04-17 21:08:00Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -947,8 +947,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/p7_omx.c b/hmmer/src/impl_sse/p7_omx.c
index 759537e..220f5d8 100644
--- a/hmmer/src/impl_sse/p7_omx.c
+++ b/hmmer/src/impl_sse/p7_omx.c
@@ -9,7 +9,7 @@
* p7_omx.ai - figure illustrating the layout of a P7_OMX.
*
* SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos]
- * SVN $Id: p7_omx.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -641,8 +641,8 @@ ERROR:
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/p7_oprofile.c b/hmmer/src/impl_sse/p7_oprofile.c
index 82404bb..80c9cd8 100644
--- a/hmmer/src/impl_sse/p7_oprofile.c
+++ b/hmmer/src/impl_sse/p7_oprofile.c
@@ -29,6 +29,11 @@
#include "hmmer.h"
#include "impl_sse.h"
+static uint8_t unbiased_byteify(P7_OPROFILE *om, float sc);
+static uint8_t biased_byteify(P7_OPROFILE *om, float sc);
+static int16_t wordify(P7_OPROFILE *om, float sc);
+static int sf_conversion(P7_OPROFILE *om);
+
/*****************************************************************
* 1. The P7_OPROFILE structure: a score profile.
*****************************************************************/
@@ -373,6 +378,7 @@ p7_oprofile_Copy(P7_OPROFILE *om1)
om2->allocM = om1->allocM;
om2->mode = om1->mode;
om2->nj = om1->nj;
+ om2->max_length = om1->max_length;
om2->clone = om1->clone;
@@ -412,6 +418,236 @@ p7_oprofile_Clone(const P7_OPROFILE *om1)
return NULL;
}
+
+/* Function: p7_oprofile_UpdateFwdEmissionScores()
+ * Synopsis: Update the Forward/Backward part of the optimized profile
+ * match emissions to account for new background distribution.
+ *
+ * Purpose: This implementation re-orders the loops used to access/modify
+ * the rfv array relative to how it's accessed for example in
+ * fb_conversion(), to minimize the required size of sc_arr.
+ *
+ * Args: om - optimized profile to be updated.
+ * bg - the new bg distribution
+ * fwd_emissions - precomputed Fwd (float) residue emission
+ * probabilities in serial order (gathered from
+ * the optimized striped <om> with
+ * p7_oprofile_GetFwdEmissionArray() ).
+ * sc_arr Preallocated array of at least Kp*4 floats
+ */
+int
+p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ int M = om->M; /* length of the query */
+ int k, q, x, z;
+ int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+ union { __m128 v; float x[4]; } tmp; /* used to align and load simd minivectors */
+
+
+ for (k = 1, q = 0; q < nq; q++, k++) {
+
+ //First compute the core characters of the alphabet
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 4; z++) {
+ if (k+ z*nq <= M) sc_arr[z*Kp + x] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]);
+ else sc_arr[z*Kp + x] = -eslINFINITY;
+
+ tmp.x[z] = sc_arr[z*Kp + x];
+ }
+ om->rfv[x][q] = esl_sse_expf(tmp.v);
+
+ }
+
+ /* gap, nonresidue, and missing data residue codes don't get set by FExpectScVec(),
+ * so do them
+ */
+ for (z = 0; z < 4; z++)
+ {
+ sc_arr[z*Kp + K] = -eslINFINITY; /* gap char - */
+ sc_arr[z*Kp + (Kp - 2)] = -eslINFINITY; /* nonresidue * */
+ sc_arr[z*Kp + (Kp - 1)] = -eslINFINITY; /* missing data ~ */
+ }
+
+ // Then compute corresponding scores for ambiguity codes.
+ for (z = 0; z < 4; z++)
+ esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f);
+
+ //finish off the interleaved values
+ for (x = K; x < Kp; x++) {
+ for (z = 0; z < 4; z++)
+ tmp.x[z] = sc_arr[z*Kp + x]; // computed in FExpectScVec call above
+ om->rfv[x][q] = esl_sse_expf(tmp.v);
+ }
+ }
+
+ return eslOK;
+}
+
+
+/* Function: p7_oprofile_UpdateVitEmissionScores()
+ * Synopsis: Update the Viterbi part of the optimized profile match
+ * emissions to account for new background distribution.
+ *.
+ * Purpose: This implementation re-orders the loops used to access/modify
+ * the rmv array relative to how it's accessed for example in
+ * vf_conversion(), to minimize the required size of sc_arr.
+ *
+ * Args: om - optimized profile to be updated.
+ * bg - the new bg distribution
+ * fwd_emissions - precomputed Fwd (float) residue emission
+ * probabilities in serial order (gathered from
+ * the optimized striped <om> with
+ * p7_oprofile_GetFwdEmissionArray() ).
+ * sc_arr Preallocated array of at least Kp*8 floats
+ */
+int
+p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ int M = om->M; /* length of the query */
+ int k, q, x, z;
+ int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+ int idx;
+ union { __m128i v; int16_t i[8]; } tmp; /* used to align and load simd minivectors */
+
+ for (k = 1, q = 0; q < nq; q++, k++) {
+
+ //First compute the core characters of the alphabet
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 8; z++) {
+ idx = z*Kp + x;
+ if (k+ z*nq <= M) {
+ sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]);
+ tmp.i[z] = wordify(om, sc_arr[idx]);
+ }
+ else
+ {
+ sc_arr[idx] = -eslINFINITY;
+ tmp.i[z] = -32768;
+ }
+
+ }
+ om->rwv[x][q] = tmp.v;
+
+ }
+
+ // Then compute corresponding scores for ambiguity codes.
+ for (z = 0; z < 8; z++)
+ esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f);
+
+ //finish off the interleaved values
+ for (x = K; x < Kp; x++) {
+ for (z = 0; z < 8; z++) {
+ idx = z*Kp + x;
+ if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY)
+ tmp.i[z] = -32768;
+ else
+ tmp.i[z] = wordify(om, sc_arr[idx]);
+ }
+ om->rwv[x][q] = tmp.v;
+ }
+ }
+
+ return eslOK;
+}
+
+
+
+/* Function: p7_oprofile_UpdateMSVEmissionScores()
+ * Synopsis: Update the MSV part of the optimized profile match
+ * emissions to account for new background distribution.
+ *.
+ * Purpose: This implementation re-orders the loops used to access/modify
+ * the rbv array relative to how it's accessed for example in
+ * mf_conversion(), to minimize the required size of sc_arr.
+ *
+ * Args: om - optimized profile to be updated.
+ * bg - the new bg distribution
+ * fwd_emissions - precomputed Fwd (float) residue emission
+ * probabilities in serial order (gathered from
+ * the optimized striped <om> with
+ * p7_oprofile_GetFwdEmissionArray() ).
+ * sc_arr Preallocated array of at least Kp*16 floats
+ */
+int
+p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ int M = om->M; /* length of the query */
+ int k, q, x, z;
+ int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+ int idx;
+ float max = 0.0; /* maximum residue score: used for unsigned emission score bias */
+ union { __m128i v; uint8_t i[16]; } tmp; /* used to align and load simd minivectors */
+
+
+ /* First we determine the basis for the limited-precision MSVFilter scoring system.
+ * Default: 1/3 bit units, base offset 190: range 0..255 => -190..65 => -63.3..21.7 bits
+ * See J2/66, J4/138 for analysis.
+ * This depends on having computed scores. I do this in a first pass, to get the max
+ * score ... then re-compute those scores so they can be converted to 8bit scores
+ */
+ for (k = 1, q = 0; q < nq; q++, k++) {
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 16; z++) {
+ idx = z*Kp + x;
+ if (k+ z*nq <= M && !(om->mm && om->mm[(k+z*nq)]=='m'))
+ max = ESL_MAX(max, log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]));
+ }
+ }
+ }
+ om->scale_b = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */
+ om->base_b = 190;
+ om->bias_b = unbiased_byteify(om, -1.0 * max);
+
+ for (k = 1, q = 0; q < nq; q++, k++) {
+
+ //First compute the core characters of the alphabet
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 16; z++) {
+ idx = z*Kp + x;
+ if (k+ z*nq <= M) {
+ sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]);
+ tmp.i[z] = biased_byteify(om, sc_arr[idx]);
+ }
+ else
+ {
+ sc_arr[idx] = -eslINFINITY;
+ tmp.i[z] = 255;
+ }
+
+ }
+ om->rbv[x][q] = tmp.v;
+
+ }
+
+ // Then compute corresponding scores for ambiguity codes.
+ for (z = 0; z < 16; z++)
+ esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f);
+
+ //finish off the interleaved values
+ for (x = K; x < Kp; x++) {
+ for (z = 0; z < 16; z++) {
+ idx = z*Kp + x;
+ if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY)
+ tmp.i[z] = 255;
+ else
+ tmp.i[z] = biased_byteify(om, sc_arr[idx]);
+ }
+ om->rbv[x][q] = tmp.v;
+ }
+ }
+
+ sf_conversion(om);
+
+ return eslOK;
+}
+
+
/*----------------- end, P7_OPROFILE structure ------------------*/
@@ -559,11 +795,13 @@ mf_conversion(const P7_PROFILE *gm, P7_OPROFILE *om)
/* striped match costs: start at k=1. */
for (x = 0; x < gm->abc->Kp; x++)
+ {
for (q = 0, k = 1; q < nq; q++, k++)
- {
- for (z = 0; z < 16; z++) tmp.i[z] = ((k+ z*nq <= M) ? biased_byteify(om, p7P_MSC(gm, k+z*nq, x)) : 255);
- om->rbv[x][q] = tmp.v;
- }
+ {
+ for (z = 0; z < 16; z++) tmp.i[z] = ((k+ z*nq <= M) ? biased_byteify(om, p7P_MSC(gm, k+z*nq, x)) : 255);
+ om->rbv[x][q] = tmp.v;
+ }
+ }
/* transition costs */
om->tbm_b = unbiased_byteify(om, logf(2.0f / ((float) gm->M * (float) (gm->M+1)))); /* constant B->Mk penalty */
@@ -713,6 +951,7 @@ fb_conversion(const P7_PROFILE *gm, P7_OPROFILE *om)
om->rfv[x][q] = esl_sse_expf(tmp.v);
}
+
/* Transition scores, all but the DD's. */
for (j = 0, k = 1, q = 0; q < nq; q++, k++)
{
@@ -733,7 +972,7 @@ fb_conversion(const P7_PROFILE *gm, P7_OPROFILE *om)
}
}
- /* And finally the DD's, which are at the end of the optimized tsc vector; (j is already there) */
+ /* And finally the DD's, which are at the end of the optimized tfv vector; (j is already there) */
for (k = 1, q = 0; q < nq; q++, k++)
{
for (z = 0; z < 4; z++) tmp.x[z] = (k+z*nq < M) ? p7P_TSC(gm, k+z*nq, p7P_DD) : -eslINFINITY;
@@ -987,7 +1226,8 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
for (i=0; i<nq; i++) {
- tmp.v = om->tfv[ type + 7 * i ];
+ // because DD transitions are held at the end of the tfv array
+ tmp.v = om->tfv[ (type==p7O_DD ? nq*7+i : type+7*i) ];
for (j=0; j<4; j++)
if ( i+1+ j*nq < om->M+1)
arr[i+1+ j*nq] = tmp.x[j];
@@ -997,11 +1237,11 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
}
-/* Function: p7_oprofile_GetMSVEmissionArray()
+/* Function: p7_oprofile_GetSSVEmissionScoreArray()
* Synopsis: Retrieve MSV residue emission scores from an optimized
* profile into an array
*
- * Purpose: Extract an implicitly 2D array of 8-bit int MSV residue
+ * Purpose: Extract an implicitly 2D array of 8-bit int SSV residue
* emission scores from an optimized profile <om>. <arr> must
* be allocated by the calling function to be of size
* ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
@@ -1021,7 +1261,7 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
* Throws: (no abnormal error conditions)
*/
int
-p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr )
+p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr )
{
int x, q, z, k;
union { __m128i v; uint8_t i[16]; } tmp; /* used to align and read simd minivectors */
@@ -1041,6 +1281,104 @@ p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr )
return eslOK;
}
+
+
+/* Function: p7_oprofile_GetFwdEmissionScoreArray()
+ * Synopsis: Retrieve Fwd (float) residue emission scores from an optimized
+ * profile into an array
+ *
+ * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue
+ * emission scores from an optimized profile <om>. <arr> must
+ * be allocated by the calling function to be of size
+ * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
+ * is done as [om->abc->Kp * i + c ] for character c at
+ * position i.
+ *
+ * In SIMD implementations, the residue scores are striped
+ * and interleaved, making them somewhat difficult to
+ * directly access.
+ *
+ * Args: <om> - optimized profile, containing transition information
+ * <arr> - preallocated array into which scores will be placed
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr )
+{
+ int x, q, z, k;
+ union { __m128 v; float f[4]; } tmp; /* used to align and read simd minivectors */
+ int M = om->M; /* length of the query */
+ int K = om->abc->Kp;
+ int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */
+ int cell_cnt = (om->M + 1) * K;
+
+ for (x = 0; x < K; x++) {
+ for (q = 0, k = 1; q < nq; q++, k++) {
+ tmp.v = esl_sse_logf(om->rfv[x][q]);
+ for (z = 0; z < 4; z++)
+ if ( (K * (k+z*nq) + x) < cell_cnt)
+ arr[ K * (k+z*nq) + x ] = tmp.f[z];
+ }
+ }
+
+ return eslOK;
+}
+
+/* Function: p7_oprofile_GetFwdEmissionArray()
+ * Synopsis: Retrieve Fwd (float) residue emission values from an optimized
+ * profile into an array
+ *
+ * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue
+ * emission values from an optimized profile <om>, converting
+ * back to emission values based on the background. <arr> must
+ * be allocated by the calling function to be of size
+ * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
+ * is done as [om->abc->Kp * i + c ] for character c at
+ * position i.
+ *
+ * In SIMD implementations, the residue scores are striped
+ * and interleaved, making them somewhat difficult to
+ * directly access.
+ *
+ * Args: <om> - optimized profile, containing transition information
+ * <bg> - background frequencies
+ * <arr> - preallocated array into which scores will be placed
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr )
+{
+ int x, q, z, k;
+ union { __m128 v; float f[4]; } tmp; /* used to align and read simd minivectors */
+ int M = om->M; /* length of the query */
+ int Kp = om->abc->Kp;
+ int K = om->abc->K;
+ int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */
+ int cell_cnt = (om->M + 1) * Kp;
+
+ for (x = 0; x < K; x++) {
+ for (q = 0, k = 1; q < nq; q++, k++) {
+ tmp.v = om->rfv[x][q];
+ for (z = 0; z < 4; z++)
+ if ( (Kp * (k+z*nq) + x) < cell_cnt)
+ arr[ Kp * (k+z*nq) + x ] = tmp.f[z] * bg->f[x];
+ }
+ }
+
+ //degeneracy emissions for each position
+ for (x = 0; x <= M; x++)
+ esl_abc_FExpectScVec(om->abc, arr+Kp*x, bg->f);
+
+ return eslOK;
+}
+
+
/*------------ end, conversions from P7_OPROFILE ------------------*/
@@ -1821,13 +2159,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_oprofile.c 3960 2012-03-22 21:42:50Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_sse/p7_oprofile.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/impl_sse/ssvfilter.c b/hmmer/src/impl_sse/ssvfilter.c
index 05c62d7..2b07662 100644
--- a/hmmer/src/impl_sse/ssvfilter.c
+++ b/hmmer/src/impl_sse/ssvfilter.c
@@ -6,7 +6,7 @@
* 3. Copyright and license information
*
* Bjarne Knudsen, CLC Bio
- * SVN $Id: ssvfilter.c 3974 2012-03-30 13:53:57Z wheelert $
+ * SVN $Id$
*/
/*****************************************************************
@@ -928,8 +928,8 @@ p7_SSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, float *ret_sc)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/stotrace.c b/hmmer/src/impl_sse/stotrace.c
index 8aa705a..b8a66bb 100644
--- a/hmmer/src/impl_sse/stotrace.c
+++ b/hmmer/src/impl_sse/stotrace.c
@@ -11,7 +11,7 @@
* 7. Copyright and license information.
*
* SRE, Fri Aug 15 08:02:43 2008 [Janelia]
- * SVN $Id: stotrace.c 3639 2011-08-05 14:43:19Z nawrockie $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -652,8 +652,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_sse/vitfilter.c b/hmmer/src/impl_sse/vitfilter.c
index 75ca3e3..084fd1c 100644
--- a/hmmer/src/impl_sse/vitfilter.c
+++ b/hmmer/src/impl_sse/vitfilter.c
@@ -421,7 +421,7 @@ p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7
for (z = 0; z < 8; z++) { // unstripe
if ( tmp.i[z] == xE && (q+Q*z+1) <= om->M) {
// (q+Q*z+1) is the model position k at which the xE score is found
- p7_hmmwindow_new(windowlist, 0, i, 0, (q+Q*z+1), 1, 0.0, fm_nocomplement );
+ p7_hmmwindow_new(windowlist, 0, i, i-1, (q+Q*z+1), 1, 0.0, p7_NOCOMPLEMENT, L );
}
}
MMXo(q) = IMXo(q) = DMXo(q) = _mm_set1_epi16(-32768); //reset score to start search for next vit window.
@@ -916,14 +916,14 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: vitfilter.c 4103 2012-06-24 02:09:43Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_sse/vitfilter.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/impl_sse/vitscore.c b/hmmer/src/impl_sse/vitscore.c
index a1a60dd..3dae86d 100644
--- a/hmmer/src/impl_sse/vitscore.c
+++ b/hmmer/src/impl_sse/vitscore.c
@@ -20,7 +20,7 @@
* 6. Copyright and license information.
*
* SRE, Sun Aug 3 13:10:24 2008 [St. Louis]
- * SVN $Id: vitscore.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -554,8 +554,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/Makefile.in b/hmmer/src/impl_vmx/Makefile.in
index 8690984..6d4fc7e 100644
--- a/hmmer/src/impl_vmx/Makefile.in
+++ b/hmmer/src/impl_vmx/Makefile.in
@@ -42,8 +42,7 @@ OBJS = decoding.o\
vitfilter.o\
p7_omx.o\
p7_oprofile.o\
- mpi.o\
- fm.o
+ mpi.o
HDRS = impl_vmx.h
@@ -178,13 +177,13 @@ clean:
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_vmx/Makefile.in $
-# SVN $Id: Makefile.in 4032 2012-05-09 12:54:46Z eddys $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/src/impl_vmx/decoding.c b/hmmer/src/impl_vmx/decoding.c
index 7949a23..6ffe7c3 100644
--- a/hmmer/src/impl_vmx/decoding.c
+++ b/hmmer/src/impl_vmx/decoding.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* SRE, Mon Aug 18 08:15:50 2008 [Janelia]
- * SVN $Id: decoding.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -444,8 +444,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/fm.c b/hmmer/src/impl_vmx/fm.c
deleted file mode 100644
index c52cfa6..0000000
--- a/hmmer/src/impl_vmx/fm.c
+++ /dev/null
@@ -1,541 +0,0 @@
-#include "hmmer.h"
-#include "esl_vmx.h"
-#include "impl_vmx.h"
-
-
-int
-fm_getbits_vec (vector unsigned char in, char *buf, int reverse) {
- byte_vec new;
- new.u8 = in;
- int i,j;
-
- for (i=0; i<16;i++) {
-
- for (j=0; j<8; j++) {
- if (reverse)
- buf[9*i+j] = (new.bytes[i]>>j)&0x1 ? '1' : '0';
- else
- buf[9*i+(7-j)] = (new.bytes[i]>>j)&0x1 ? '1' : '0';
- }
- buf[9*i + 8] = ' ';
- }
- buf[143] = '\0';
-
- return eslOK;
-}
-
-int
-fm_print_vec (vector unsigned char in) {
- char str[144];
- fm_getbits_vec(in, str, 0);
- fprintf (stderr, "%s\n", str);
- return eslOK;
-}
-
-
-int
-fm_print_vec_rev (vector unsigned char in) {
- char str[144];
- fm_getbits_vec(in, str, 1);
- fprintf (stderr, "%s\n", str);
- return eslOK;
-}
-
-
-/* Function: fm_initConfig()
- * Purpose: Initialize vector masks used in VMX FMindex implementation
- */
-int
-fm_initConfig( FM_CFG *cfg, ESL_GETOPTS *go ) {
- int status;
- int i,j;
- int trim_chunk_count;
-
- fm_initConfigGeneric(cfg, go);
-
- cfg->fm_allones_v = esl_vmx_set_u8((unsigned char) 0xff);
- cfg->fm_neg128_v = esl_vmx_set_u8((int8_t) -128);
- cfg->fm_zeros_v = esl_vmx_set_u8((int8_t) 0x00); //all zeros
- cfg->fm_m0f = esl_vmx_set_u8((int8_t) 0x0f); //00 00 11 11
- cfg->fm_one = esl_vmx_set_u8((int8_t) 1); //
- cfg->fm_two = esl_vmx_set_u8((int8_t) 2); //
- cfg->fm_four = esl_vmx_set_u8((int8_t) 4); //
-
- if (cfg->meta->alph_type == fm_DNA) {
- cfg->fm_m01 = esl_vmx_set_u8((int8_t) 0x55); //01 01 01 01
- cfg->fm_m11 = esl_vmx_set_u8((int8_t) 0x03); //00 00 00 11
- }
- //set up an array of vectors, one for each character in the alphabet
- cfg->fm_chars_v = NULL;
- ESL_ALLOC (cfg->fm_chars_mem, cfg->meta->alph_size * sizeof(vector unsigned char) + 15 ); // +15 for manual 16-byte alignment, which matters for SIMD stuff
- cfg->fm_chars_v = (vector unsigned char *) (((unsigned long int)cfg->fm_chars_mem + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */
-
- for (i=0; i<cfg->meta->alph_size; i++) {
- int8_t c = i;
- if (cfg->meta->alph_type == fm_DNA) {
- // need 4 copies per byte
- c |= i<<2;
- c |= i<<4;
- c |= i<<6;
- } //else, just leave it on the right-most bits
-
- cfg->fm_chars_v[i] = esl_vmx_set_u8(c);
- }
-
- /* this is a collection of masks used to clear off the left- or right- part
- * of a register when we shouldn't be counting the whole thing
- * Incrementally chew off the 1s in chunks of 2 (for DNA) or 4 (for DNA_full)
- * from the right side, and stick each result into an element of a vector
- */
- if (cfg->meta->alph_type == fm_DNA)
- trim_chunk_count = 64; //2-bit steps
- else //(meta->alph_type == fm_DNA_full)
- trim_chunk_count = 16; //8-bit steps
-
- //chars_per_vector = 128/meta->charBits;
- cfg->fm_masks_v = NULL;
- cfg->fm_reverse_masks_v = NULL;
- ESL_ALLOC (cfg->fm_masks_mem, (1+trim_chunk_count) *sizeof(vector unsigned char) + 15 ); // +15 for manual 16-byte alignment, which matters for SIMD stuff
- cfg->fm_masks_v = (vector unsigned char *) (((unsigned long int)cfg->fm_masks_mem + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */
-
- ESL_ALLOC (cfg->fm_reverse_masks_mem, (1+trim_chunk_count) *sizeof(vector unsigned char) + 15 ); // +15 for manual 16-byte alignment, which matters for SIMD stuff
- cfg->fm_reverse_masks_v = (vector unsigned char *) (((unsigned long int)cfg->fm_reverse_masks_mem + 15) & (~0xf)); /* align vector memory on 16-byte boundaries */
-
-
- {
- byte_vec arr;
- arr.u8 = cfg->fm_allones_v;
-
- for (i=trim_chunk_count-1; i>0; i--) {
- int byte_mask=0xff; //11 11 11 11
- int byte_i = (i-1)/(trim_chunk_count/16);
- if (cfg->meta->alph_type == fm_DNA) {
- switch (i&0x03) {
- case 1:
- byte_mask = 0xc0; //11 00 00 00
- break;
- case 2:
- byte_mask = 0xf0; //11 11 00 00
- break;
- case 3:
- byte_mask = 0xfc; //11 11 11 00
- break;
- default:
- break;
- }
- }
-
- arr.bytes[byte_i] = byte_mask; //chew off the appropriate number of bits
- for (j=byte_i+1; j<16; j++) {
- arr.bytes[j] = 0x0;
- }
- cfg->fm_masks_v[i] = *(vector unsigned char*)(&(arr.u8));
- cfg->fm_reverse_masks_v[trim_chunk_count-i] = vec_andc( cfg->fm_allones_v , cfg->fm_masks_v[i]); //_mm_andnot_si128(fm_masks_v[i], fm_allones_v );
-
- }
- }
-
- if (cfg->meta->alph_type == fm_DNA_full) {
- cfg->fm_masks_v[16] = cfg->fm_allones_v;
- cfg->fm_reverse_masks_v[16] = cfg->fm_allones_v;
-
- }
-/*
- fprintf( stderr, "mask\n========\n");
- for (i=0; i<trim_chunk_count; i++) {
- fprintf( stderr, "%2d:", i);
- fm_print_vec(fm_masks_v[i]);
- }
-
- fprintf( stderr, "\n\n reverse mask\n========\n");
- for (i=0; i<trim_chunk_count; i++) {
- fprintf( stderr, "%2d:", i);
- fm_print_vec(fm_reverse_masks_v[i]);
- }
-exit(1);
-*/
- return eslOK;
-
-ERROR:
- if (cfg->fm_chars_mem) free(cfg->fm_chars_mem);
- if (cfg->fm_masks_mem) free(cfg->fm_masks_mem);
- if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem);
-
- esl_fatal("Error allocating memory in initGlobals\n");
- return eslFAIL;
-}
-
-
-/* Function: fm_destroyConfig()
- * Purpose: Destroy vector masks used in SSE FMindex implementation
- */
-int
-fm_destroyConfig(FM_CFG *cfg ) {
- if (cfg) {
- if (cfg->fm_chars_mem) free(cfg->fm_chars_mem);
- if (cfg->fm_masks_mem) free(cfg->fm_masks_mem);
- if (cfg->fm_reverse_masks_mem) free(cfg->fm_reverse_masks_mem);
- }
- return eslOK;
-}
-
-/* Function: fm_getOccCount()
- * Synopsis: Compute number of occurrences of c in BWT[1..pos]
- *
- * Purpose: Scan through the BWT to compute number of occurrence of c in BWT[0..pos],
- * using altivec instructions to scan 16 bytes-at-a-time.
- *
- * First, use checkpointed occurrence counts in the arrays occCnts_sb and occCnts_b.
- * The checkpoint used is the one closest to pos, possibly requiring that counts be
- * subtracted from the checkpointed total
- *
- * The counting method is SIMD, loading 16 bytes (32 or 64 chars, depending on
- * alphabet) at a time into the vector co-processors, then counting occurrences. One
- * constraint of this approach is that occCnts_b checkpoints must be spaced at least
- * every 32 or 64 chars (16 bytes, in pressed format), and in multiples of 64/32, so
- * that _mm_load_si128 calls appropriately meet 16-byte-alignment requirements. That's
- * a reasonable expectation, as spacings of 256 or more seem to give the best speed,
- * and certainly better space-utilization.
- */
-int
-fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c) {
-
- int i;
- FM_METADATA *meta = cfg->meta;
-
- int cnt;
- const int b_pos = (pos+1) >> meta->cnt_shift_b; //floor(pos/b_size) : the b count element preceding pos
- const uint16_t * occCnts_b = fm->occCnts_b;
- const uint32_t * occCnts_sb = fm->occCnts_sb;
- const int sb_pos = (pos+1) >> meta->cnt_shift_sb; //floor(pos/sb_size) : the sb count element preceding pos
-
-
- const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function
- const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos
- const int up_b = b_rel_pos>>(meta->cnt_shift_b - 1); //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
- const int landmark = ((b_pos+up_b)<<(meta->cnt_shift_b)) - 1 ;
- // get the cnt stored at the nearest checkpoint
- cnt = FM_OCC_CNT(sb, sb_pos, c );
-
- if (up_b)
- cnt += FM_OCC_CNT(b, b_pos + 1, c ) ;
- else if ( b_pos != sb_pos * (1<<(meta->cnt_shift_sb - meta->cnt_shift_b)) )
- cnt += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount
-
-
- if ( landmark < fm->N || landmark == -1) {
-
- const uint8_t * BWT = fm->BWT;
-
-
- vector unsigned char c_v = *(cfg->fm_chars_v + c);
- vector unsigned char BWT_v;
- vector unsigned char tmp_v;
- vector unsigned char tmp2_v;
- byte_vec counts;
- counts.u8 = cfg->fm_neg128_v; // set to -128, offset to allow each 8-bit int to hold up to 255.
- // so effectively, can guarantee holding 128*16 = 2048.
- // Since I count from left or right, whichever is closer, this means
- // we can support an occ_b interval of up to 4096 with guarantee of
- // correctness.
- if (meta->alph_type == fm_DNA) {
-
- if (!up_b) { // count forward, adding
- for (i=1+floor(landmark/4.0) ; i+15<( (pos+1)/4); i+=16) { // keep running until i begins a run that shouldn't all be counted
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts.i8);
- }
-
- int remaining_cnt = pos + 1 - i*4 ;
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts.i8);
- }
-
- } else { // count backwards, subtracting
- for (i=(landmark/4)-15 ; i>(pos/4); i-=16) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts.i8);
- }
-
- int remaining_cnt = 64 - (pos + 1 - i*4);
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts.i8);
- }
- }
-
- } else if ( meta->alph_type == fm_DNA_full) {
-
- if (!up_b) { // count forward, adding
-
- for (i=1+floor(landmark/2.0) ; i+15<( (pos+1)/2); i+=16) { // keep running until i begins a run that shouldn't all be counted
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts.i8);
- }
- int remaining_cnt = pos + 1 - i*2 ;
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_masks_v + (remaining_cnt+1)/2)); // mask characters we don't want to count
- tmp2_v = vec_and(tmp2_v, *(cfg->fm_masks_v + remaining_cnt/2));
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts.i8);
- }
-
- } else { // count backwards, subtracting
- for (i=(landmark/2)-15 ; i>(pos/2); i-=16) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts.i8);
- }
-
- int remaining_cnt = 32 - (pos + 1 - i*2);
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/2)); // mask characters we don't want to count
- tmp2_v = vec_and(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2));
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts.i8);
- }
- }
- } else {
- esl_fatal("Invalid alphabet type\n");
- }
-
- FM_GATHER_8BIT_COUNTS(counts.i8,counts.i32);
- cnt += ( up_b == 1 ? -1 : 1) * ( counts.ints[3] + 128*16 );
-
- }
-
- if (c==0 && pos >= fm->term_loc) { // I overcounted 'A' by one, because '$' was replaced with an 'A'
- cnt--;
- }
-
-
-
- return cnt ;
-
-}
-
-
-/* Function: fm_getOccCountLT()
- * Synopsis: Compute number of occurrences of characters with value <c in BWT[1..pos]
- *
- * Purpose: Scan through the BWT to compute number of occurrences of characters with
- * value <c in BWT[0..pos], using altivec instructions to scan 16 bytes-at-a-time.
- *
- * First, use checkpointed occurrence counts in the arrays occCnts_sb and occCnts_b.
- * The checkpoint used is the one closest to pos, possibly requiring that counts be
- * subtracted from the checkpointed total
- *
- * The counting method is SIMD, loading 16 bytes (32 or 64 chars, depending on
- * alphabet) at a time into the vector co-processors, then counting occurrences. One
- * constraint of this approach is that occCnts_b checkpoints must be spaced at least
- * every 32 or 64 chars (16 bytes, in pressed format), and in multiples of 64/32, so
- * that _mm_load_si128 calls appropriately meet 16-byte-alignment requirements. That's
- * a reasonable expectation, as spacings of 256 or more seem to give the best speed,
- * and certainly better space-utilization.
- */
-
-int
-fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt) {
-
- if (c == 0 && pos >= fm->term_loc)// < 'A'? cntlt depends on relationship of pos and the position where the '$' was replaced by 'A'
- *cntlt = 1;
- else
- *cntlt = 0;
-
- FM_METADATA *meta = cfg->meta;
-
- int i,j;
-
- const int b_pos = (pos+1) >> meta->cnt_shift_b; //floor(pos/b_size) : the b count element preceding pos
- const uint16_t * occCnts_b = fm->occCnts_b;
- const uint32_t * occCnts_sb = fm->occCnts_sb;
- const int sb_pos = (pos+1) >> meta->cnt_shift_sb; //floor(pos/sb_size) : the sb count element preceding pos
-
-
- const int cnt_mod_mask_b = meta->freq_cnt_b - 1; //used to compute the mod function
- const int b_rel_pos = (pos+1) & cnt_mod_mask_b; // pos % b_size : how close is pos to the boundary corresponding to b_pos
- const int up_b = b_rel_pos>>(meta->cnt_shift_b - 1); //1 if pos is expected to be closer to the boundary of b_pos+1, 0 otherwise
- const int landmark = ((b_pos+up_b)<<(meta->cnt_shift_b)) - 1 ;
-
- // get the cnt stored at the nearest checkpoint
- *cnteq = FM_OCC_CNT(sb, sb_pos, c );
- for (i=0; i<c; i++)
- *cntlt += FM_OCC_CNT(sb, sb_pos, i );
-
- if (up_b) {
- *cnteq += FM_OCC_CNT(b, b_pos + 1, c ) ;
- for (i=0; i<c; i++)
- *cntlt += FM_OCC_CNT(b, b_pos + 1, i ) ;
- } else if ( b_pos != sb_pos * (1<<(meta->cnt_shift_sb - meta->cnt_shift_b)) ) {
- *cnteq += FM_OCC_CNT(b, b_pos, c ) ;// b_pos has cumulative counts since the prior sb_pos - if sb_pos references the same count as b_pos, it'll doublecount
- for (i=0; i<c; i++)
- *cntlt += FM_OCC_CNT(b, b_pos, i ) ;
- }
-
-
-
- if ( landmark < fm->N || landmark == -1 ) {
-
- const uint8_t * BWT = fm->BWT;
-
-
- vector unsigned char c_v; // = *(fm_chars_v + c);
- vector unsigned char BWT_v;
- vector unsigned char tmp_v;
- vector unsigned char tmp2_v;
- byte_vec counts_lt;
- counts_lt.u8 = cfg->fm_neg128_v; // set to -128, offset to allow each 8-bit int to hold up to 255.
- byte_vec counts_eq;
- counts_eq.u8 = cfg->fm_neg128_v; // set to -128, offset to allow each 8-bit int to hold up to 255.
- // so effectively, can guarantee holding 128*16 = 2048.
- // Since I count from left or right, whichever is closer, this means
- // we can support an occ_b interval of up to 4096 with guarantee of
- // correctness.
- if (meta->alph_type == fm_DNA) {
-
- if (!up_b) { // count forward, adding
- for (i=1+floor(landmark/4.0) ; i+15<( (pos+1)/4); i+=16) { // keep running until i begins a run that shouldn't all be counted
- BWT_v = *(vector unsigned char*)(BWT+i);
- for (j=0; j<c; j++) {
- c_v = *(cfg->fm_chars_v + j);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_lt.i8);
- }
- c_v = *(cfg->fm_chars_v + c);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_eq.i8);
- }
-
- int remaining_cnt = pos + 1 - i*4 ;
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- for (j=0; j<c; j++) {
- c_v = *(cfg->fm_chars_v + j);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_lt.i8);
- }
- c_v = *(cfg->fm_chars_v + c);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_eq.i8);
- }
-
- } else { // count backwards, subtracting
- for (i=(landmark/4)-15 ; i>(pos/4); i-=16) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- for (j=0; j<c; j++) {
- c_v = *(cfg->fm_chars_v + j);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_lt.i8);
- }
- c_v = *(cfg->fm_chars_v + c);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_eq.i8);
- }
-
- int remaining_cnt = 64 - (pos + 1 - i*4);
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- for (j=0; j<c; j++) {
- c_v = *(cfg->fm_chars_v + j);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_lt.i8);
- }
- c_v = *(cfg->fm_chars_v + c);
- FM_MATCH_2BIT(BWT_v, c_v, tmp_v, tmp2_v, tmp_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt)); // leaves only the remaining_cnt chars in the array
- FM_COUNT_2BIT(tmp_v, tmp2_v, counts_eq.i8);
- }
- }
-
- } else if ( meta->alph_type == fm_DNA_full) {
-
- if (!up_b) { // count forward, adding
-
- for (i=1+floor(landmark/2.0) ; i+15<( (pos+1)/2); i+=16) { // keep running until i begins a run that shouldn't all be counted
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_lt.i8);
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_eq.i8);
- }
- int remaining_cnt = pos + 1 - i*2 ;
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_masks_v + (remaining_cnt+1)/2)); // mask characters we don't want to count
- tmp2_v = vec_and(tmp2_v, *(cfg->fm_masks_v + remaining_cnt/2));
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_lt.i8);
-
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_masks_v + (remaining_cnt+1)/2)); // mask characters we don't want to count
- tmp2_v = vec_and(tmp2_v, *(cfg->fm_masks_v + remaining_cnt/2));
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_eq.i8);
- }
-
- } else { // count backwards, subtracting
- for (i=(landmark/2)-15 ; i>(pos/2); i-=16) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_lt.i8);
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_eq.i8);
- }
-
- int remaining_cnt = 32 - (pos + 1 - i*2);
- if (remaining_cnt > 0) {
- BWT_v = *(vector unsigned char*)(BWT+i);
- FM_LT_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/2)); // mask characters we don't want to count
- tmp2_v = vec_and(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2));
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_lt.i8);
-
- FM_MATCH_4BIT(BWT_v, c_v, tmp_v, tmp2_v);
- tmp_v = vec_and(tmp_v, *(cfg->fm_reverse_masks_v + remaining_cnt/2)); // mask characters we don't want to count
- tmp2_v = vec_and(tmp2_v, *(cfg->fm_reverse_masks_v + (remaining_cnt+1)/2));
- FM_COUNT_4BIT( (vector signed char)tmp_v, (vector signed char)tmp2_v, counts_eq.i8);
- }
- }
- } else {
- esl_fatal("Invalid alphabet type\n");
- }
-
- FM_GATHER_8BIT_COUNTS(counts_lt.i8,counts_lt.i32);
- (*cntlt) += ( up_b == 1 ? -1 : 1) * ( counts_lt.ints[3] + 128*16 );
-
- FM_GATHER_8BIT_COUNTS(counts_eq.i8,counts_eq.i32);
- (*cnteq) += ( up_b == 1 ? -1 : 1) * ( counts_eq.ints[3] + 128*16 );
-
- }
-
- if (c==0 && pos >= fm->term_loc) { // I overcounted 'A' by one, because '$' was replaced with an 'A'
- (*cnteq)--;
- }
-
-
-
- return eslOK ;
-
-}
-
-/*****************************************************************
- * HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * HMMER is distributed under the terms of the GNU General Public License
- * (GPLv3). See the LICENSE file for details.
- *****************************************************************/
diff --git a/hmmer/src/impl_vmx/fwdback.c b/hmmer/src/impl_vmx/fwdback.c
index a4ea451..575b9b9 100644
--- a/hmmer/src/impl_vmx/fwdback.c
+++ b/hmmer/src/impl_vmx/fwdback.c
@@ -29,7 +29,7 @@
* 8. Copyright and license information.
*
* SRE, Thu Jul 31 08:43:20 2008 [Janelia]
- * SVN $Id: fwdback.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -1185,8 +1185,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/impl_vmx.h b/hmmer/src/impl_vmx/impl_vmx.h
index 18c2d1e..2e453c9 100644
--- a/hmmer/src/impl_vmx/impl_vmx.h
+++ b/hmmer/src/impl_vmx/impl_vmx.h
@@ -2,7 +2,7 @@
* routines: structures, declarations, and macros.
*
* SRE, Sun Nov 25 11:23:02 2007
- * SVN $Id: impl_vmx.h 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#ifndef P7_IMPL_VMX_INCLUDED
#define P7_IMPL_VMX_INCLUDED
@@ -244,207 +244,9 @@ p7_omx_FSetMDI(const P7_OMX *ox, int s, int i, int k, float val)
}
-/*****************************************************************
- * 3. FM-index
- *****************************************************************/
-
-/* Effectively global variables, to be initialized once in fm_initConfig(),
- * then passed around among threads to avoid recomputing them
- *
- * When allocated, must be 16-byte aligned, and all vector elements
- * must precede other types
- */
-typedef struct {
- /* mask arrays, and 16-byte-offsets into them */
- vector unsigned char *fm_masks_mem;
- vector unsigned char *fm_masks_v;
- vector unsigned char *fm_reverse_masks_mem;
- vector unsigned char *fm_reverse_masks_v;
- vector unsigned char *fm_chars_mem;
- vector unsigned char *fm_chars_v;
-
- /*various precomputed vectors*/
- vector unsigned char fm_allones_v;
- vector unsigned char fm_zeros_v;
- vector unsigned char fm_neg128_v;
- vector unsigned char fm_m0f; //00 00 11 11
- vector unsigned char fm_m01; //01 01 01 01
- vector unsigned char fm_m11; //00 00 00 11
- vector unsigned char fm_one; //value of 1 in each byte, used for shifting
- vector unsigned char fm_two; //value of 2 in each byte, used for shifting
- vector unsigned char fm_four; //value of 4 in each byte, used for shifting
-
-
- /* no non-vector elements above this line */
-
-
- /*suffix-array mask and offset values*/
- int maskSA;
- int shiftSA;
-
- /*counter, to compute FM-index speed*/
- int occCallCnt;
-
- /*bounding cutoffs*/
- int max_depth;
- int neg_len_limit;
- int consec_pos_req;
- float score_ratio_req;
- int msv_length;
- float max_scthreshFM;
-
- /*pointer to FM-index metadata*/
- FM_METADATA *meta;
-
-} FM_CFG;
-
-//used to convert from a byte array to a vec
-typedef union {
- uint8_t bytes[16];
- int ints[4];
- vector signed char i8;
- vector unsigned char u8;
- vector signed int i32;
- } byte_vec;
-
-/* Gather the sum of all counts in a 16x8-bit element into a single 32-bit
- * element of the register (the last (3rd) element)
- */
-#define FM_GATHER_8BIT_COUNTS( in_v, out_v ) do {\
- out_v = vec_sums(vec_sum4s(in_v, (vector signed int)cfg->fm_zeros_v), (vector signed int)cfg->fm_zeros_v);\
- } while (0)
-
-
-
-/* Macro for altivec operations to turn 2-bit character values into 2-bit binary
- * (00 or 01) match/mismatch values representing occurrences of a character in a
- * 4-char-per-byte packed BWT.
- *
- * Typically followed by a call to FM_COUNT_SSE_4PACKED, possibly with a
- * mask in between to handle the case where we don't want to add over all
- * positions in the vector
- *
- * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values
- * at the end
- *
- * xor(in_v, c_v) : each 2-bit value will be 00 if a match, and non-0 if a mismatch
- * and(in_v, 01010101) : look at the right bit of each 2-bit value,
- * sr(1)+and() : look at the left bit of each 2-bit value,
- * or() : if either left bit or right bit is non-0, 01, else 00 (match is 00)
- *
- * subs() : invert, so match is 01, mismatch is 00
- *
- */
-#define FM_MATCH_2BIT(in_v, c_v, a_v, b_v, out_v) do {\
- a_v = vec_xor(in_v, c_v);\
- \
- b_v = vec_and(a_v, cfg->fm_m01);\
- a_v = vec_sr(a_v, cfg->fm_one);\
- a_v = vec_and(a_v, cfg->fm_m01);\
- a_v = vec_or(a_v, b_v);\
- \
- out_v = vec_subs(cfg->fm_m01,a_v);\
- } while (0)
-
-
-/*Macro for altivec operations to count bits produced by FM_MATCH_SSE_4PACKED
- *
- * tmp_v and tmp2_v are used as temporary vectors throughout, and hold meaningless values
- * at the end
- *
- * then add up the 2-bit values:
- * sr(4)+add() : left 4 bits shifted right, added to right 4 bits
- *
- * sr(2)+and(00000011) : left 2 bits (value 0..2) shifted right, masked, so no other bits active
- * and(00000011) : right 2 bits (value 0..2) masked so no other bits active
- *
- * final 2 add()s : tack current counts on to already-tabulated counts.
- */
-#define FM_COUNT_2BIT(a_v, b_v, cnts_v) do {\
- b_v = vec_sr(a_v, cfg->fm_four);\
- a_v = (vector unsigned char)vec_adds( (vector signed char)a_v, (vector signed char)b_v);\
- \
- b_v = vec_sr(a_v, cfg->fm_two);\
- a_v = vec_and(a_v,cfg->fm_m11);\
- b_v = vec_and(b_v,cfg->fm_m11);\
- \
- cnts_v = vec_adds(cnts_v, (vector signed char)a_v);\
- cnts_v = vec_adds(cnts_v, (vector signed char)b_v);\
- } while (0)
-
-
-
-/* Macro for altivec operations that turns a vector of 4-bit character values into
- * 2 vectors representing matches. Each byte in the input vector consists of
- * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce
- * one vector, which contains all-1s for bytes in which the left half matches
- * the c_v character (and 0s if it doesn't), while the 16 right-halves produce
- * the other vector, again with each byte either all-1s or all-0s.
- *
- * The expectation is that FM_COUNT_4BIT will be called after this, to
- * turn these binary values into sums over a series of vectors. The macros
- * are split up to allow one end or other to be trimmed in the case that
- * counting is not expected to include the full vector.
- *
- * sr(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks)
- * and() : capture the right 4-bit value
- *
- * cmpeq()x2 : test if both left and right == c. For each, if ==c , value = 11111111 (-1)
- */
-#define FM_MATCH_4BIT(in_v, c_v, out1_v, out2_v) do {\
- out1_v = vec_sr(in_v, cfg->fm_four);\
- out2_v = vec_and(in_v, cfg->fm_m0f);\
- out1_v = vec_and(out1_v, cfg->fm_m0f);\
- \
- out1_v = (vector unsigned char)vec_cmpeq(out1_v, c_v);\
- out2_v = (vector unsigned char)vec_cmpeq(out2_v, c_v);\
- } while (0)
-
-
-/* Macro for altivec operations that turns a vector of 4-bit character values into
-* 2 vectors representing matches. Each byte in the input vector consists of
- * a left half (4 bits) and a right half (4 bits). The 16 left-halves produce
- * one vector, which contains all-1s for bytes in which the left half is less than
- * the c_v character (and 0s if it doesn't), while the 16 right-halves produce
- * the other vector, again with each byte either all-1s or all-0s.
- *
- * The expectation is that FM_COUNT_4BIT will be called after this, to
- * turn these binary values into sums over a series of vectors. The macros
- * are split up to allow one end or other to be trimmed in the case that
- * counting is not expected to include the full vector.
- *
- * sr(4)+and() : capture the left 4-bit value (need the mask because 16-bit shift leaves garbage in left-4-bit chunks)
- * and() : capture the right 4-bit value
- *
- * cmpeq()x2 : test if both left and right < c. For each, if <c , value = 11111111 (-1)
- */
-#define FM_LT_4BIT(in_v, c_v, out1_v, out2_v) do {\
- out1_v = vec_sr(in_v, cfg->fm_four);\
- out2_v = vec_and(in_v, cfg->fm_m0f);\
- out1_v = vec_and(out1_v, cfg->fm_m0f);\
- \
- out1_v = (vector unsigned char)vec_cmplt(out1_v, c_v);\
- out2_v = (vector unsigned char)vec_cmplt(out2_v, c_v);\
- } while (0)
-
-
-/* Macro for SSE operations to add occurrence counts to the tally vector counts_v,
- * in the 4-bits-per-character case
- *
- * The expectation is that in[12]_v will contain bytes that are either
- * 00000000 = 0
- * or
- * 11111111 = -1
- * so subtracting the value of the byte is the same as adding 0 or 1.
- */
-#define FM_COUNT_4BIT(in1_v, in2_v, counts_v) do {\
- counts_v = vec_subs(counts_v, in1_v);\
- counts_v = vec_subs(counts_v, in2_v);\
- } while (0)
-
/*****************************************************************
- * 4. Declarations of the external API.
+ * 3. Declarations of the external API.
*****************************************************************/
/* p7_omx.c */
@@ -468,6 +270,7 @@ extern void p7_oprofile_Destroy(P7_OPROFILE *om);
extern size_t p7_oprofile_Sizeof(P7_OPROFILE *om);
extern P7_OPROFILE *p7_oprofile_Copy(P7_OPROFILE *om);
extern P7_OPROFILE *p7_oprofile_Clone(const P7_OPROFILE *om);
+extern int p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr);
extern int p7_oprofile_Convert(const P7_PROFILE *gm, P7_OPROFILE *om);
extern int p7_oprofile_ReconfigLength (P7_OPROFILE *om, int L);
@@ -484,7 +287,9 @@ extern int p7_profile_SameAsMF(const P7_OPROFILE *om, P7_PROFILE *gm);
extern int p7_profile_SameAsVF(const P7_OPROFILE *om, P7_PROFILE *gm);
extern int p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr );
-extern int p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr );
+extern int p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr );
+extern int p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr );
+extern int p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr );
/* decoding.c */
extern int p7_Decoding (const P7_OPROFILE *om, const P7_OMX *oxf, P7_OMX *oxb, P7_OMX *pp);
@@ -509,7 +314,7 @@ extern void p7_oprofile_DestroyBlock(P7_OM_BLOCK *block);
/* msvfilter.c */
extern int p7_MSVFilter (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc);
-extern int p7_MSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist);
+extern int p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist);
/* null2.c */
extern int p7_Null2_ByExpectation(const P7_OPROFILE *om, const P7_OMX *pp, float *null2);
@@ -532,16 +337,10 @@ extern int p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROF
/* vitscore.c */
extern int p7_ViterbiScore (const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float *ret_sc);
-/*fm.c */
-extern int fm_initConfig (FM_CFG *cfg, ESL_GETOPTS *go );
-extern int fm_destroyConfig (FM_CFG *cfg );
-extern int fm_getOccCount (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c);
-extern int fm_getOccCountLT (const FM_DATA *fm, FM_CFG *cfg, int pos, uint8_t c, uint32_t *cnteq, uint32_t *cntlt);
-
/*****************************************************************
- * 4. Implementation specific initialization
+ * 3. Implementation specific initialization
*****************************************************************/
static inline void
impl_Init(void)
@@ -559,8 +358,8 @@ impl_ThreadInit(void)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/io.c b/hmmer/src/impl_vmx/io.c
index 6692d09..446ff39 100644
--- a/hmmer/src/impl_vmx/io.c
+++ b/hmmer/src/impl_vmx/io.c
@@ -1017,13 +1017,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/impl_vmx/io.c $
- * SVN $Id: io.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/impl_vmx/mpi.c b/hmmer/src/impl_vmx/mpi.c
index 7c574aa..dcfe336 100644
--- a/hmmer/src/impl_vmx/mpi.c
+++ b/hmmer/src/impl_vmx/mpi.c
@@ -8,7 +8,7 @@
* 5. Copyright and license information.
*
* SRE, Thu Jun 14 09:59:20 2007 [Janelia] [Tom Waits, Orphans]
- * SVN $Id: mpi.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -162,7 +162,7 @@ p7_oprofile_MPIPackSize(P7_OPROFILE *om, MPI_Comm comm, int *ret_n)
if (om->mm != NULL) len += strlen(om->mm) + 1;
if (om->cs != NULL) len += strlen(om->cs) + 1;
if (om->consensus != NULL) len += strlen(om->consensus) + 1;
- if (MPI_Pack_size(6, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
+ if (MPI_Pack_size(7, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
if (MPI_Pack_size(len, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
cnt = p7_NEVPARAM + p7_NCUTOFFS + p7_MAXABET;
if (MPI_Pack_size(cnt, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz;
@@ -786,8 +786,8 @@ int main(void) { return 0; }
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/msvfilter.c b/hmmer/src/impl_vmx/msvfilter.c
index a7cd8be..5f9d457 100644
--- a/hmmer/src/impl_vmx/msvfilter.c
+++ b/hmmer/src/impl_vmx/msvfilter.c
@@ -15,7 +15,7 @@
* 6. Copyright and license information
*
* SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos]
- * SVN $Id: msvfilter.c 4198 2012-08-27 19:33:50Z nawrockie $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -205,35 +205,35 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
/*------------------ end, p7_MSVFilter() ------------------------*/
-
/* Function: p7_SSVFilter_longtarget()
* Synopsis: Finds windows with SSV scores above some threshold (vewy vewy fast, in limited precision)
- * Incept: TJW, Mon Feb 22 16:27:25 2010 [Janelia] - based on p7_MSVFilter
- *
*
- * Purpose: Calculates an approximation of the MSV score for regions of
- * sequence <dsq> of length <L> residues, using optimized profile
- * <om>, and a preallocated one-row DP matrix <ox>, and captures
- * the positions at which such regions exceed the score required
- * to be significant in the eyes of the calling function (usually
- * p=0.02). Note that this variant performs only SSV computations,
- * never passing through the J state. See comments in
- * p7_MSVFilter_longtarget() for details
+ * Purpose: Calculates an approximation of the SSV (single ungapped diagonal)
+ * score for regions of sequence <dsq> of length <L> residues, using
+ * optimized profile <om>, and a preallocated one-row DP matrix <ox>,
+ * and captures the positions at which such regions exceed the score
+ * required to be significant in the eyes of the calling function,
+ * which depends on the <bg> and <p> (usually p=0.02 for nhmmer).
+ * Note that this variant performs only SSV computations, never
+ * passing through the J state - the score required to pass SSV at
+ * the default threshold (or less restrictive) is sufficient to
+ * pass MSV in essentially all DNA models we've tested.
*
- * Rather than simply capturing positions at which a score threshold
- * is reached, this function establishes windows around those
- * high-scoring positions. p7_MSVFilter_longtarget then merges
- * overlapping windows.
+ * Above-threshold diagonals are captured into a preallocated list
+ * <windowlist>. Rather than simply capturing positions at which a
+ * score threshold is reached, this function establishes windows
+ * around those high-scoring positions, using scores in <msvdata>.
+ * These windows can be merged by the calling function.
*
*
* Args: dsq - digital target sequence, 1..L
* L - length of dsq in residues
* om - optimized profile
* ox - DP matrix
- * sc_threshv - a precomputed vector containing the score threshold required for a window to be considered "high-scoring"
- * starts - RETURN: array of start positions for windows surrounding above-threshold areas
- * ends - RETURN: array of end positions for windows surrounding above-threshold areas
- * hit_cnt - RETURN: count of entries in the above two arrays
+ * msvdata - compact representation of substitution scores, for backtracking diagonals
+ * bg - the background model, required for translating a P-value threshold into a score threshold
+ * P - p-value below which a region is captured as being above threshold
+ * windowlist - preallocated container for all hits (resized if necessary)
*
*
* Note: We misuse the matrix <ox> here, using only a third of the
@@ -247,8 +247,9 @@ p7_MSVFilter(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7_OMX *ox, float
*
* Throws: <eslEINVAL> if <ox> allocation is too small.
*/
-static int
-p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, uint8_t sc_thresh, vector unsigned char sc_threshv, P7_HMM_WINDOWLIST *windowlist)
+int
+p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_SCOREDATA *ssvdata,
+ P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist)
{
vector unsigned char mpv; /* previous row values */
@@ -284,16 +285,45 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
float ret_sc;
union { vector unsigned char v; uint8_t b[16]; } u;
- uint8_t *scores = NULL;
- ESL_ALLOC(scores, ((om->abc->Kp)*Q) * sizeof(uint8_t) );
+ /*
+ * Computing the score required to let P meet the F1 prob threshold
+ * In original code, converting from a scaled int MSV
+ * score S (the score getting to state E) to a probability goes like this:
+ * usc = S - om->tec_b - om->tjb_b - om->base_b;
+ * usc /= om->scale_b;
+ * usc -= 3.0;
+ * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda)
+ * and we're computing the threshold usc, so reverse it:
+ * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda)
+ * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda)
+ * usc += 3
+ * usc *= om->scale_b
+ * S = usc + om->tec_b + om->tjb_b + om->base_b
+ *
+ * Here, I compute threshold with length model based on max_length. Doesn't
+ * matter much - in any case, both the bg and om models will change with roughly
+ * 1 bit for each doubling of the length model, so they offset.
+ */
+ float nullsc;
+ float invP = esl_gumbel_invsurv(P, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
+ vector unsigned char sc_threshv; /* pushes value to saturation if it's above pthresh */
+ int sc_thresh;
/* Check that the DP matrix is ok for us. */
if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small");
ox->M = om->M;
+ p7_bg_SetLength(bg, om->max_length);
+ p7_oprofile_ReconfigMSVLength(om, om->max_length);
+ p7_bg_NullOne (bg, dsq, om->max_length, &nullsc);
+
+ sc_thresh = (int) ceil( ( ( nullsc + (invP * eslCONST_LOG2) + 3.0 ) * om->scale_b ) + om->base_b + om->tec_b + om->tjb_b );
+ sc_threshv = esl_vmx_set_u8( (int8_t)sc_thresh - 1);
+
+
/* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base.
*/
biasv = esl_vmx_set_u8(om->bias_b);
@@ -336,22 +366,22 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
rem_sc = -1;
for (q = 0; q < Q; q++) { /// Unpack and unstripe, so we can find the state that exceeded pthresh
u.v = dp[q];
- for (k = 0; k < 16; k++) scores[q+Q*k+1] = u.b[k]; // unstripe
- dp[q] = vec_splat_u8(0); // while we're here ... this will cause values to get reset to xB in next dp iteration
-
- }
- for (k = 1; k <= om->M; k++) {
- if (scores[k] >= sc_thresh && scores[k] > rem_sc) {
- end = k;
- rem_sc = scores[k];
+ for (k = 0; k < 16; k++) { // unstripe
+ //(q+Q*k+1) is the model position k at which the xE score is found
+ if (u.b[k] >= sc_thresh && u.b[k] > rem_sc && (q+Q*k+1) <= om->M) {
+ end = (q+Q*k+1);
+ rem_sc = u.b[k];
+ }
}
+ dp[q] = vec_splat_u8(0); // while we're here ... this will cause values to get reset to xB in next dp iteration
}
+
//recover the diagonal that hit threshold
start = end;
target_end = target_start = i;
sc = rem_sc;
while (rem_sc > om->base_b - om->tjb_b - om->tbm_b) {
- rem_sc -= om->bias_b - msvdata->scores[start*om->abc->Kp + dsq[target_start]];
+ rem_sc -= om->bias_b - ssvdata->ssv_scores[start*om->abc->Kp + dsq[target_start]];
--start;
--target_start;
//if ( start == 0 || target_start==0) break;
@@ -368,7 +398,7 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
max_sc = sc;
pos_since_max = 0;
while (k<om->M && n<=L) {
- sc += om->bias_b - msvdata->scores[k*om->abc->Kp + dsq[n]];
+ sc += om->bias_b - ssvdata->ssv_scores[k*om->abc->Kp + dsq[n]];
if (sc >= max_sc) {
max_sc = sc;
max_end = n;
@@ -389,7 +419,18 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
ret_sc /= om->scale_b;
ret_sc -= 3.0; // that's ~ L \log \frac{L}{L+3}, for our NN,CC,JJ
- p7_hmmwindow_new(windowlist, 0, target_start, -1, end, end-start+1 , ret_sc, fm_nocomplement );
+ p7_hmmwindow_new( windowlist,
+ 0, // sequence_id; used in the FM-based filter, but not here
+ target_start, // position in the target at which the diagonal starts
+ 0, // position in the target fm_index at which diagonal starts; not used here, just in FM-based filter
+ end, // position in the model at which the diagonal ends
+ end-start+1 , // length of diagonal
+ ret_sc, // score of diagonal
+ p7_NOCOMPLEMENT, // always p7_NOCOMPLEMENT here; varies in FM-based filter
+ L
+ );
+
+
i = target_end; // skip forward
@@ -398,8 +439,6 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
} /* end loop over sequence residues 1..L */
- free(scores);
-
return eslOK;
@@ -410,268 +449,6 @@ p7_SSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox,
/*------------------ end, p7_SSVFilter_longtarget() ------------------------*/
-/* Function: p7_MSVFilter_longtarget()
- * Synopsis: Finds windows with MSV scores above some threshold (vewy vewy fast, in limited precision)
- * Incept: TJW, Mon Feb 22 16:27:25 2010 [Janelia] - based on p7_MSVFilter
- *
- * Purpose: Calculates an approximation of the MSV score for regions of
- * sequence <dsq> of length <L> residues, using optimized profile
- * <om>, and a preallocated one-row DP matrix <ox>, and captures
- * the positions at which such regions exceed the score required
- * to be significant in the eyes of the calling function (usually
- * p=0.02). Note that this will typically simply call
- * p7_SSVFilter_longtarget(), as the score threshold is nearly
- * always lower than the score required for a pass through the
- * J-state to yield a positive score.
- *
- * Rather than simply capturing positions at which a score threshold
- * is reached, this function (and SSVFilter_longtarget) establishes
- * windows around those high-scoring positions, and merges overlapping
- * windows.
- *
- *
- * Args: dsq - digital target sequence, 1..L
- * L - length of dsq in residues
- * om - optimized profile
- * ox - DP matrix
- * msvdata - compact representation of substitution scores, for backtracking diagonals
- * bg - the background model, required for translating a P-value threshold into a score threshold
- * P - p-value below which a region is captured as being above threshold
- * windowlist - RETURN: array of hit windows (start and end of diagonal) for the above-threshold areas
- *
- * Note: We misuse the matrix <ox> here, using only a third of the
- * first dp row, accessing it as <dp[0..Q-1]> rather than
- * in triplets via <{MDI}MX(q)> macros, since we only need
- * to store M state values. We know that if <ox> was big
- * enough for normal DP calculations, it must be big enough
- * to hold the MSVFilter calculation.
- *
- * Returns: <eslOK> on success.
- *
- * Throws: <eslEINVAL> if <ox> allocation is too small.
- */
-int
-p7_MSVFilter_longtarget(const ESL_DSQ *dsq, int L, P7_OPROFILE *om, P7_OMX *ox, const P7_MSVDATA *msvdata, P7_BG *bg, double P, P7_HMM_WINDOWLIST *windowlist)
-{
-#ifdef ALLOW_MSV
- vector unsigned char mpv; /* previous row values */
- vector unsigned char xEv; /* E state: keeps max for Mk->E as we go */
- vector unsigned char xBv; /* B state: splatted vector of B[i-1] for B->Mk calculations */
- vector unsigned char sv; /* temp storage of 1 curr row value in progress */
- vector unsigned char biasv; /* emission bias in a vector */
- uint8_t xJ; /* special states' scores */
- int i; /* counter over sequence positions 1..L */
- int j;
- int q; /* counter over vectors 0..nq-1 */
- int Q = p7O_NQB(om->M); /* segment length: # of vectors */
- vector unsigned char *dp = ox->dpb[0]; /* we're going to use dp[0][0..q..Q-1], not {MDI}MX(q) macros*/
- vector unsigned char *rsc; /* will point at om->rbv[x] for residue x[i] */
-
- vector unsigned char zerov; /* vector of zeros */
- vector unsigned char xEv_prev; /* E state: keeps the max seen up to the current position i, for window overlap test. Note that this will always just be xJv + tecv */
- vector unsigned char xJv; /* vector for states score */
- vector unsigned char tecv; /* vector for E->C cost */
- vector unsigned char tjbmv; /* vector for [JN]->B->M move cost */
- vector unsigned char basev; /* offset for scores */
- vector unsigned char jthreshv; /* pushes value to saturation if it's above pthresh */
- vector unsigned char tempv; /* work vector */
-#endif
-
-
- /*
- * Computing the score required to let P meet the F1 prob threshold
- * In original code, converting from a scaled int MSV
- * score S (the score getting to state E) to a probability goes like this:
- * usc = S - om->tec_b - om->tjb_b - om->base_b;
- * usc /= om->scale_b;
- * usc -= 3.0;
- * P = f ( (usc - nullsc) / eslCONST_LOG2 , mu, lambda)
- * and we're computing the threshold usc, so reverse it:
- * (usc - nullsc) / eslCONST_LOG2 = inv_f( P, mu, lambda)
- * usc = nullsc + eslCONST_LOG2 * inv_f( P, mu, lambda)
- * usc += 3
- * usc *= om->scale_b
- * S = usc + om->tec_b + om->tjb_b + om->base_b
- *
- * Here, I compute threshold with length model based on max_length. Doesn't
- * matter much - in any case, both the bg and om models will change with roughly
- * 1 bit for each doubling of the length model, so they offset.
- */
- float nullsc;
- float invP = esl_gumbel_invsurv(P, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
- vector unsigned char sc_threshv; /* pushes value to saturation if it's above pthresh */
- int sc_thresh;
-
- p7_bg_SetLength(bg, om->max_length);
- p7_oprofile_ReconfigMSVLength(om, om->max_length);
- p7_bg_NullOne (bg, dsq, om->max_length, &nullsc);
-
- sc_thresh = (int) ceil( ( ( nullsc + (invP * eslCONST_LOG2) + 3.0 ) * om->scale_b ) + om->base_b + om->tec_b + om->tjb_b );
- sc_threshv = esl_vmx_set_u8( (int8_t)sc_thresh - 1);
-
-#ifdef ALLOW_MSV
- int jthresh = om->base_b + om->tec_b + 1; //+1 because the score of a pass through the model must be positive to contribute to MSV score
- jthreshv = esl_vmx_set_u8( (int8_t)jthresh - 1);
-
- if (force_ssv || (sc_thresh < jthresh)) {
-#endif
-
- p7_SSVFilter_longtarget(dsq, L, om, ox, msvdata, (uint8_t)sc_thresh, sc_threshv, windowlist);
-
-#ifdef ALLOW_MSV
-
- } else {
- /*e.g. if base=190, tec=3, tjb=22 then a score of 217 would be required for a
- * second ssv-hit to improve the score of an earlier one. Usually,
- * sc_thresh < base. So only bother with msv if sc thresh is surprisingly
- * high. This will require mu of something in the neighborhood of -6.4 bits
- * (see TJW notes Mon Jun 7 10:19:34 EDT 2010 for details)
- */
- int status;
-
- //used to track neighboring MSV peaks
- int first_peak = -1;
- int last_peak = -1;
- int hit_jthresh = FALSE;
-
-
- /* Check that the DP matrix is ok for us. */
- if (Q > ox->allocQ16) ESL_EXCEPTION(eslEINVAL, "DP matrix allocated too small");
- ox->M = om->M;
-
- /* Initialization. In offset unsigned arithmetic, -infinity is 0, and 0 is om->base.
- */
- biasv = esl_vmx_set_u8(om->bias_b);
- for (q = 0; q < Q; q++) dp[q] = vec_splat_u8(0);
- xJ = 0;
- zerov = vec_splat_u8(0);
- xEv_prev = vec_splat_u8(0);
-
- basev = esl_vmx_set_u8((int8_t) om->base_b);
- tecv = esl_vmx_set_u8((int8_t) om->tec_b);
- tjbmv = esl_vmx_set_u8((int8_t) om->tjb_b + (int8_t) om->tbm_b);
-
- xJv = vec_subs(biasv, biasv);
- xBv = vec_subs(basev, tjbmv);
-
-
- #if p7_DEBUGGING
- if (ox->debugging)
- {
- unsigned char xB;
- vec_ste(xBv, 0, &xB);
- vec_ste(xJv, 0, &xJ);
- p7_omx_DumpMFRow(ox, 0, 0, 0, xJ, xB, xJ);
- }
- #endif
-
-
- for (i = 1; i <= L; i++)
- {
- rsc = om->rbv[dsq[i]];
- xEv = vec_splat_u8(0);
-
- /* Right shifts by 1 byte. 4,8,12,x becomes x,4,8,12.
- * Because ia32 is littlendian, this means a left bit shift.
- * Zeros shift on automatically, which is our -infinity.
- */
- mpv = vec_sld(zerov, dp[Q-1], 15);
- for (q = 0; q < Q; q++)
- {
- /* Calculate new MMXo(i,q); don't store it yet, hold it in sv. */
- sv = vec_max(mpv, xBv);
- sv = vec_adds(sv, biasv);
- sv = vec_subs(sv, *rsc); rsc++;
- xEv = vec_max(xEv, sv);
-
- mpv = dp[q]; /* Load {MDI}(i-1,q) into mpv */
- dp[q] = sv; /* Do delayed store of M(i,q) now that memory is usable */
- }
-
-
- if (last_peak >= 0 || vec_any_gt(xEv, jthreshv) )
- hit_jthresh = TRUE; //previously saw, or just saw an above-jthresh peak recently
- else
- hit_jthresh = FALSE;
-
-
- /* Now the "special" states, which start from Mk->E (->C, ->J->B)
- * Use rotates instead of shifts so when the last max has completed,
- * all elements of the simd register will contain the max value.
- */
- tempv = vec_sld(xEv, xEv, 1);
- xEv = vec_max(xEv, tempv);
- tempv = vec_sld(xEv, xEv, 2);
- xEv = vec_max(xEv, tempv);
- tempv = vec_sld(xEv, xEv, 4);
- xEv = vec_max(xEv, tempv);
- tempv = vec_sld(xEv, xEv, 8);
- xEv = vec_max(xEv, tempv);
-
-
- if (hit_jthresh) {
- //test if xE has increased this iteration. If we go a long way without increasing, then we'll give up on the current window
- if ( vec_any_gt(xEv, xEv_prev) ) { // there was an increase. Establish peaks
- xEv_prev = xEv;
- if (first_peak == -1)
- first_peak = i;
- last_peak = i;
-
- //check if we've hit sc_thresh. If so, reset values and add this region to the list of hits
- if (vec_any_gt(xEv, sc_threshv) ) {
- int start = first_peak - om->max_length + 1;
- int length = i-first_peak+1 + 2 * om->max_length;
- fm_newWindow(windowlist, 0, start, -1, -1, length , -1, fm_nocomplement );
-
- // got one peak. Start scanning for the next one, as though starting from scratch
- first_peak = last_peak = -1;
-
- //reset xE, xJ, and xB
- xJv = vec_splat_u8(0);
- xBv = vec_subs(basev, tjbmv);
- for (q = 0; q < Q; q++)
- dp[q] = vec_splat_u8(0); // this will cause values to get reset to xB in next iteration
-
- }
- } else if (i > last_peak + om->max_length) {
- //been a long time since the last above-jthresh peak was seen;
- // give up looking for a J-state-induced extension that will drive the score above sc_thresh
-
- first_peak = last_peak = -1;
-
- //Reset values as if the previous peak hadn't existed, retaining the growth of the current peak
- //See end of TW notes feb 25, 2010
- tempv = vec_subs(xEv_prev, basev);
- tempv = vec_subs(tempv, tecv);
- for (q = 0; q < Q; q++)
- dp[q] = vec_subs(dp[q], tempv);
-
- //reset xE, xJ, and xB
- xEv_prev = xEv = xJv = vec_splat_u8(0);
- xBv = vec_subs(basev, tjbmv);
-
- } //else ... nothing to do, just extend another step
-
- }
-
- xEv = vec_subs(xEv, tecv);
- xJv = vec_max(xJv,xEv);
-
- xBv = vec_max(basev, xJv);
- xBv = vec_subs(xBv, tjbmv);
-
- } /* end loop over sequence residues 1..L */
- }
-
-#endif
-
- return eslOK;
-
-
-}
-/*------------------ end, p7_MSVFilter_longtarget() ------------------------*/
-
-
/*****************************************************************
* 2. Benchmark driver.
*****************************************************************/
@@ -1106,8 +883,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/null2.c b/hmmer/src/impl_vmx/null2.c
index c75f767..e94d1dc 100644
--- a/hmmer/src/impl_vmx/null2.c
+++ b/hmmer/src/impl_vmx/null2.c
@@ -9,7 +9,7 @@
* 6. Copyright and license information.
*
* SRE, Mon Aug 18 08:31:11 2008 [Janelia]
- * SVN $Id: null2.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -517,8 +517,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/optacc.c b/hmmer/src/impl_vmx/optacc.c
index ab1d4bc..0f49dc4 100644
--- a/hmmer/src/impl_vmx/optacc.c
+++ b/hmmer/src/impl_vmx/optacc.c
@@ -10,7 +10,7 @@
* 7. Copyright and license information.
*
* SRE, Mon Aug 18 20:01:01 2008 [Casa de Gatos]
- * SVN $Id: optacc.c 3991 2012-04-17 21:08:00Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -956,8 +956,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/p7_omx.c b/hmmer/src/impl_vmx/p7_omx.c
index b207fd5..60e4a98 100644
--- a/hmmer/src/impl_vmx/p7_omx.c
+++ b/hmmer/src/impl_vmx/p7_omx.c
@@ -9,7 +9,7 @@
* p7_omx.ai - figure illustrating the layout of a P7_OMX.
*
* SRE, Sun Nov 25 11:26:48 2007 [Casa de Gatos]
- * SVN $Id: p7_omx.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -661,8 +661,8 @@ ERROR:
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/p7_oprofile.c b/hmmer/src/impl_vmx/p7_oprofile.c
index 395a192..8bfa40f 100644
--- a/hmmer/src/impl_vmx/p7_oprofile.c
+++ b/hmmer/src/impl_vmx/p7_oprofile.c
@@ -13,7 +13,7 @@
* 9. Copyright and license information.
*
* SRE, Wed Jul 30 11:00:04 2008 [Janelia]
- * SVN $Id: p7_oprofile.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -33,6 +33,10 @@
#include "hmmer.h"
#include "impl_vmx.h"
+static uint8_t unbiased_byteify(P7_OPROFILE *om, float sc);
+static uint8_t biased_byteify(P7_OPROFILE *om, float sc);
+static int16_t wordify(P7_OPROFILE *om, float sc);
+
/*****************************************************************
* 1. The P7_OPROFILE structure: a score profile.
*****************************************************************/
@@ -89,6 +93,7 @@ p7_oprofile_Create(int allocM, const ESL_ALPHABET *abc)
om->rfv[0] = (vector float *) (((unsigned long int) om->rfv_mem + 15) & (~0xf));
om->tfv = (vector float *) (((unsigned long int) om->tfv_mem + 15) & (~0xf));
+
/* set the rest of the row pointers for match emissions */
for (x = 1; x < abc->Kp; x++) {
om->rbv[x] = om->rbv[0] + (x * nqb);
@@ -352,6 +357,7 @@ p7_oprofile_Copy(P7_OPROFILE *om1)
om2->allocM = om1->allocM;
om2->mode = om1->mode;
om2->nj = om1->nj;
+ om2->max_length = om1->max_length;
om2->clone = om1->clone;
@@ -391,6 +397,221 @@ p7_oprofile_Clone(const P7_OPROFILE *om1)
return NULL;
}
+
+/* Function: p7_oprofile_UpdateFwdEmissionScores()
+ * Synopsis: Update the Forward/Backward part of the optimized profile
+ * match emissions to account for new background distribution.
+ *
+ * Purpose: This implementation re-orders the loops used to access/modify
+ * the rfv array relative to how it's accessed for example in
+ * fb_conversion(), to minimize the required size of sc_arr.
+ *
+ * Args: om - optimized profile to be updated.
+ * bg - the new bg distribution
+ * fwd_emissions - precomputed Fwd (float) residue emission
+ * probabilities in serial order (gathered from
+ * the optimized striped <om> with
+ * p7_oprofile_GetFwdEmissionArray() ).
+ * sc_arr Preallocated array of at least Kp*4 floats
+ */
+int
+p7_oprofile_UpdateFwdEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ int M = om->M; /* length of the query */
+ int k, q, x, z;
+ int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+ union { vector float v; float x[4]; } tmp;
+
+ for (k = 1, q = 0; q < nq; q++, k++) {
+
+ //First compute the core characters of the alphabet
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 4; z++) {
+ if (k+ z*nq <= M) sc_arr[z*Kp + x] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log(fwd_emissions[Kp * (k+z*nq) + x]/bg->f[x]);
+ else sc_arr[z*Kp + x] = -eslINFINITY;
+
+ tmp.x[z] = sc_arr[z*Kp + x];
+ }
+ om->rfv[x][q] = esl_vmx_expf(tmp.v);
+ }
+
+ // Then compute corresponding scores for ambiguity codes.
+ for (z = 0; z < 4; z++)
+ esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f);
+
+ //finish off the interleaved values
+ for (x = K; x < Kp; x++) {
+ for (z = 0; z < 4; z++)
+ tmp.x[z] = sc_arr[z*Kp + x]; // computed in FExpectScVec call above
+ om->rfv[x][q] = esl_vmx_expf(tmp.v);
+ }
+ }
+
+ return eslOK;
+
+}
+
+/* Function: p7_oprofile_UpdateVitEmissionScores()
+ * Synopsis: Update the Viterbi part of the optimized profile match
+ * emissions to account for new background distribution.
+ *.
+ * Purpose: This implementation re-orders the loops used to access/modify
+ * the rmv array relative to how it's accessed for example in
+ * vf_conversion(), to minimize the required size of sc_arr.
+ *
+ * Args: om - optimized profile to be updated.
+ * bg - the new bg distribution
+ * fwd_emissions - precomputed Fwd (float) residue emission
+ * probabilities in serial order (gathered from
+ * the optimized striped <om> with
+ * p7_oprofile_GetFwdEmissionArray() ).
+ * sc_arr Preallocated array of at least Kp*8 floats
+ */
+int
+p7_oprofile_UpdateVitEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ int M = om->M; /* length of the query */
+ int k, q, x, z;
+ int nq = p7O_NQW(M); /* segment length; total # of striped vectors needed */
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+ int idx;
+ union { vector signed short v; int16_t i[8]; } tmp; /* used to align and load simd minivectors */
+
+ for (k = 1, q = 0; q < nq; q++, k++) {
+
+ //First compute the core characters of the alphabet
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 8; z++) {
+ idx = z*Kp + x;
+ if (k+ z*nq <= M) {
+ sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]);
+ tmp.i[z] = wordify(om, sc_arr[idx]);
+ }
+ else
+ {
+ sc_arr[idx] = -eslINFINITY;
+ tmp.i[z] = -32768;
+ }
+
+ }
+ om->rwv[x][q] = tmp.v;
+
+ }
+
+ // Then compute corresponding scores for ambiguity codes.
+ for (z = 0; z < 8; z++)
+ esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f);
+
+ //finish off the interleaved values
+ for (x = K; x < Kp; x++) {
+ for (z = 0; z < 8; z++) {
+ idx = z*Kp + x;
+ if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY)
+ tmp.i[z] = -32768;
+ else
+ tmp.i[z] = wordify(om, sc_arr[idx]);
+ }
+ om->rwv[x][q] = tmp.v;
+ }
+ }
+
+ return eslOK;
+}
+
+
+
+/* Function: p7_oprofile_UpdateMSVEmissionScores()
+ * Synopsis: Update the MSV part of the optimized profile match
+ * emissions to account for new background distribution.
+ *.
+ * Purpose: This implementation re-orders the loops used to access/modify
+ * the rbv array relative to how it's accessed for example in
+ * mf_conversion(), to minimize the required size of sc_arr.
+ *
+ * Args: om - optimized profile to be updated.
+ * bg - the new bg distribution
+ * fwd_emissions - precomputed Fwd (float) residue emission
+ * probabilities in serial order (gathered from
+ * the optimized striped <om> with
+ * p7_oprofile_GetFwdEmissionArray() ).
+ * sc_arr Preallocated array of at least Kp*16 floats
+ */
+int
+p7_oprofile_UpdateMSVEmissionScores(P7_OPROFILE *om, P7_BG *bg, float *fwd_emissions, float *sc_arr)
+{
+ int M = om->M; /* length of the query */
+ int k, q, x, z;
+ int nq = p7O_NQB(M); /* segment length; total # of striped vectors needed */
+ int K = om->abc->K;
+ int Kp = om->abc->Kp;
+ int idx;
+ float max = 0.0; /* maximum residue score: used for unsigned emission score bias */
+ union { vector unsigned char v; uint8_t i[16]; } tmp; /* used to align and load simd minivectors */
+
+ /* First we determine the basis for the limited-precision MSVFilter scoring system.
+ * Default: 1/3 bit units, base offset 190: range 0..255 => -190..65 => -63.3..21.7 bits
+ * See J2/66, J4/138 for analysis.
+ * This depends on having computed scores. I do this in a first pass, to get the max
+ * score ... then re-compute those scores so they can be converted to 8bit scores
+ */
+ for (k = 1, q = 0; q < nq; q++, k++) {
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 16; z++) {
+ idx = z*Kp + x;
+ if (k+ z*nq <= M && !(om->mm && om->mm[(k+z*nq)]=='m'))
+ max = ESL_MAX(max, log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]));
+ }
+ }
+ }
+ om->scale_b = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */
+ om->base_b = 190;
+ om->bias_b = unbiased_byteify(om, -1.0 * max);
+
+ for (k = 1, q = 0; q < nq; q++, k++) {
+
+ //First compute the core characters of the alphabet
+ for (x = 0; x < K; x++) {
+ for (z = 0; z < 16; z++) {
+ idx = z*Kp + x;
+ if (k+ z*nq <= M) {
+ sc_arr[idx] = (om->mm && om->mm[(k+z*nq)]=='m') ? 0 : log( (double)(fwd_emissions[Kp * (k+z*nq) + x])/bg->f[x]);
+ tmp.i[z] = biased_byteify(om, sc_arr[idx]);
+ }
+ else
+ {
+ sc_arr[idx] = -eslINFINITY;
+ tmp.i[z] = 255;
+ }
+
+ }
+ om->rbv[x][q] = tmp.v;
+
+ }
+
+ // Then compute corresponding scores for ambiguity codes.
+ for (z = 0; z < 16; z++)
+ esl_abc_FExpectScVec(om->abc, sc_arr+(z*Kp), bg->f);
+
+ //finish off the interleaved values
+ for (x = K; x < Kp; x++) {
+ for (z = 0; z < 16; z++) {
+ idx = z*Kp + x;
+ if (x==K || x>Kp-3 || sc_arr[idx] == -eslINFINITY)
+ tmp.i[z] = 255;
+ else
+ tmp.i[z] = biased_byteify(om, sc_arr[idx]);
+ }
+ om->rbv[x][q] = tmp.v;
+ }
+ }
+
+ return eslOK;
+}
+
+
/*----------------- end, P7_OPROFILE structure ------------------*/
@@ -928,7 +1149,8 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
union { vector float v; float x[4]; } tmp;
for (i=0; i<nq; i++) {
- tmp.v = om->tfv[ type + 7 * i ];
+ // because DD transitions are held at the end of the tfv array
+ tmp.v = om->tfv[ (type==p7O_DD ? nq*7+i : type+7*i) ];
for (j=0; j<4; j++)
if ( i+1+ j*nq < om->M+1)
arr[i+1+ j*nq] = tmp.x[j];
@@ -963,7 +1185,7 @@ p7_oprofile_GetFwdTransitionArray(const P7_OPROFILE *om, int type, float *arr )
* Throws: (no abnormal error conditions)
*/
int
-p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr )
+p7_oprofile_GetSSVEmissionScoreArray(const P7_OPROFILE *om, uint8_t *arr )
{
int x, q, z, k;
union { vector unsigned char v; uint8_t i[16]; } tmp; /* used to align and read simd minivectors */
@@ -984,6 +1206,102 @@ p7_oprofile_GetMSVEmissionArray(const P7_OPROFILE *om, uint8_t *arr )
return eslOK;
}
+
+
+/* Function: p7_oprofile_GetFwdEmissionScoreArray()
+ * Synopsis: Retrieve Fwd (float) residue emission scores from an optimized
+ * profile into an array
+ *
+ * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue
+ * emission scores from an optimized profile <om>. <arr> must
+ * be allocated by the calling function to be of size
+ * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
+ * is done as [om->abc->Kp * i + c ] for character c at
+ * position i.
+ *
+ * In SIMD implementations, the residue scores are striped
+ * and interleaved, making them somewhat difficult to
+ * directly access.
+ *
+ * Args: <om> - optimized profile, containing transition information
+ * <arr> - preallocated array into which scores will be placed
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+p7_oprofile_GetFwdEmissionScoreArray(const P7_OPROFILE *om, float *arr )
+{
+ int x, q, z, k;
+ union { vector float v; float f[4]; } tmp; /* used to align and read simd minivectors */
+ int M = om->M; /* length of the query */
+ int K = om->abc->Kp;
+ int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */
+ int cell_cnt = (om->M + 1) * K;
+
+ for (x = 0; x < K; x++) {
+ for (q = 0, k = 1; q < nq; q++, k++) {
+ tmp.v = esl_vmx_logf(om->rfv[x][q]);
+ for (z = 0; z < 4; z++)
+ if ( (K * (k+z*nq) + x) < cell_cnt)
+ arr[ K * (k+z*nq) + x ] = tmp.f[z];
+ }
+ }
+
+ return eslOK;
+}
+
+/* Function: p7_oprofile_GetFwdEmissionArray()
+ * Synopsis: Retrieve Fwd (float) residue emission values from an optimized
+ * profile into an array
+ *
+ * Purpose: Extract an implicitly 2D array of 32-bit float Fwd residue
+ * emission values from an optimized profile <om>, converting
+ * back to emission values based on the background. <arr> must
+ * be allocated by the calling function to be of size
+ * ( om->abc->Kp * ( om->M + 1 )), and indexing into the array
+ * is done as [om->abc->Kp * i + c ] for character c at
+ * position i.
+ *
+ * In SIMD implementations, the residue scores are striped
+ * and interleaved, making them somewhat difficult to
+ * directly access.
+ *
+ * Args: <om> - optimized profile, containing transition information
+ * <bg> - background frequencies
+ * <arr> - preallocated array into which scores will be placed
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: (no abnormal error conditions)
+ */
+int
+p7_oprofile_GetFwdEmissionArray(const P7_OPROFILE *om, P7_BG *bg, float *arr )
+{
+ int x, q, z, k;
+ union { vector float v; float f[4]; } tmp; /* used to align and read simd minivectors */
+ int M = om->M; /* length of the query */
+ int Kp = om->abc->Kp;
+ int K = om->abc->K;
+ int nq = p7O_NQF(M); /* segment length; total # of striped vectors needed */
+ int cell_cnt = (om->M + 1) * Kp;
+
+ for (x = 0; x < K; x++) {
+ for (q = 0, k = 1; q < nq; q++, k++) {
+ tmp.v = om->rfv[x][q];
+ for (z = 0; z < 4; z++)
+ if ( (Kp * (k+z*nq) + x) < cell_cnt)
+ arr[ Kp * (k+z*nq) + x ] = tmp.f[z] * bg->f[x];
+ }
+ }
+
+ //degeneracy emissions for each position
+ for (x = 0; x <= M; x++)
+ esl_abc_FExpectScVec(om->abc, arr+Kp*x, bg->f);
+
+ return eslOK;
+}
/*------------ end, conversions from P7_OPROFILE ------------------*/
/*****************************************************************
@@ -1772,8 +2090,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/stotrace.c b/hmmer/src/impl_vmx/stotrace.c
index 071b0f8..016dc0b 100644
--- a/hmmer/src/impl_vmx/stotrace.c
+++ b/hmmer/src/impl_vmx/stotrace.c
@@ -11,7 +11,7 @@
* 7. Copyright and license information.
*
* SRE, Fri Aug 15 08:02:43 2008 [Janelia]
- * SVN $Id: stotrace.c 3497 2011-03-02 23:18:03Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -653,8 +653,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/vitfilter.c b/hmmer/src/impl_vmx/vitfilter.c
index 6e7d3bd..d1405c7 100644
--- a/hmmer/src/impl_vmx/vitfilter.c
+++ b/hmmer/src/impl_vmx/vitfilter.c
@@ -18,7 +18,7 @@
* 6. Copyright and license information
*
* SRE, Thu Jul 31 20:32:25 2008 [Casa de Gatos]
- * SVN $Id: vitfilter.c 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -421,7 +421,7 @@ p7_ViterbiFilter_longtarget(const ESL_DSQ *dsq, int L, const P7_OPROFILE *om, P7
for (z = 0; z < 8; z++) { // unstripe
if ( tmp.i[z] == xE && (q+Q*z+1) <= om->M) {
// (q+Q*z+1) is the model position k at which the xE score is found
- p7_hmmwindow_new(windowlist, 0, i, 0, (q+Q*z+1), 1, 0.0, fm_nocomplement );
+ p7_hmmwindow_new(windowlist, 0, i, i-1, (q+Q*z+1), 1, 0.0, p7_NOCOMPLEMENT, L );
}
}
MMXo(q) = IMXo(q) = DMXo(q) = negInfv; //reset score to start search for next vit window.
@@ -913,8 +913,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/impl_vmx/vitscore.c b/hmmer/src/impl_vmx/vitscore.c
index bf51293..844b13c 100644
--- a/hmmer/src/impl_vmx/vitscore.c
+++ b/hmmer/src/impl_vmx/vitscore.c
@@ -20,7 +20,7 @@
* 6. Copyright and license information.
*
* SRE, Sun Aug 3 13:10:24 2008 [St. Louis]
- * SVN $Id: vitscore.c 3665 2011-08-25 13:45:55Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -555,8 +555,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/itest_brute.c b/hmmer/src/itest_brute.c
index 1f756ae..66265a0 100644
--- a/hmmer/src/itest_brute.c
+++ b/hmmer/src/itest_brute.c
@@ -27,7 +27,7 @@
* etc) are then verified against the generic implementations.
*
* SRE, Tue Jul 17 08:17:36 2007 [Janelia]
- * SVN $Id: itest_brute.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $Id$
* xref J1/106-109: original implementation
* xref J5/118: revival; brought up to date with H3's assumptions of zero insert scores.
*/
diff --git a/hmmer/src/jackhmmer.c b/hmmer/src/jackhmmer.c
index f436516..77486da 100644
--- a/hmmer/src/jackhmmer.c
+++ b/hmmer/src/jackhmmer.c
@@ -47,7 +47,7 @@ typedef struct {
#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc"
#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc"
#define CONOPTS "--fast,--hand" /* Exclusive options for model construction */
-#define EFFOPTS "--eent,--eclust,--eset,--enone" /* Exclusive options for effective sequence number calculation */
+#define EFFOPTS "--eent,--eentexp,--eclust,--eset,--enone" /* Exclusive options for effective sequence number calculation */
#define WGTOPTS "--wgsc,--wblosum,--wpb,--wnone,--wgiven" /* Exclusive options for relative weighting */
#if defined (HMMER_THREADS) && defined (HAVE_MPI)
@@ -64,11 +64,11 @@ static ESL_OPTIONS options[] = {
{ "-N", eslARG_INT, "5", NULL, "n>0", NULL, NULL, NULL, "set maximum number of iterations to <n>", 1 },
/* Control of output */
{ "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
- { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of hits to file <s>", 2 },
- { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <s>", 2 },
- { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <s>", 2 },
- { "--chkhmm", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save HMM checkpoints to files <s>-<iteration>.hmm", 2 },
- { "--chkali", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save alignment checkpoints to files <s>-<iteration>.sto", 2 },
+ { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of hits to file <f>", 2 },
+ { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <f>", 2 },
+ { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <f>", 2 },
+ { "--chkhmm", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save HMM checkpoints to files <f>-<iteration>.hmm", 2 },
+ { "--chkali", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save alignment checkpoints to files <f>-<iteration>.sto", 2 },
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
@@ -112,11 +112,12 @@ static ESL_OPTIONS options[] = {
{ "--wid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--wblosum",NULL, "for --wblosum: set identity cutoff", 9 },
/* Alternative effective sequence weighting strategies */
{ "--eent", eslARG_NONE, "default", NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to achieve relative entropy target", 10 },
+ { "--eentexp", eslARG_NONE, "default",NULL, NULL, EFFOPTS, NULL, NULL, "adjust eff seq # to reach rel. ent. target using exp scaling", 10 },
{ "--eclust", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "eff seq # is # of single linkage clusters", 10 },
{ "--enone", eslARG_NONE, FALSE, NULL, NULL, EFFOPTS, NULL, NULL, "no effective seq # weighting: just use nseq", 10 },
{ "--eset", eslARG_REAL, NULL, NULL, NULL, EFFOPTS, NULL, NULL, "set eff seq # for all models to <x>", 10 },
- { "--ere", eslARG_REAL, NULL, NULL,"x>0", NULL, "--eent", NULL, "for --eent: set minimum rel entropy/position to <x>", 10 },
- { "--esigma", eslARG_REAL, "45.0", NULL,"x>0", NULL, "--eent", NULL, "for --eent: set sigma param to <x>", 10 },
+ { "--ere", eslARG_REAL, NULL, NULL,"x>0", NULL, NULL, NULL, "for --eent[exp]: set minimum rel entropy/position to <x>", 10 },
+ { "--esigma", eslARG_REAL, "45.0", NULL,"x>0", NULL, NULL, NULL, "for --eent[exp]: set sigma param to <x>", 10 },
{ "--eid", eslARG_REAL, "0.62", NULL,"0<=x<=1", NULL,"--eclust",NULL, "for --eclust: set fractional identity cutoff to <x>", 10 },
/* Alternative prior strategies */
{ "--pnone", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--plaplace", "don't use any prior; parameters are frequencies", 13 },
@@ -485,9 +486,9 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (esl_opt_IsOn(go, "-A") && (afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL)
p7_Fail("Failed to open alignment output file %s for writing\n", esl_opt_GetString(go, "-A"));
if (esl_opt_IsOn(go, "--tblout") && (tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL)
- p7_Fail("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp"));
+ p7_Fail("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblout"));
if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL)
- p7_Fail("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp"));
+ p7_Fail("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblout"));
/* Open the target sequence database for sequential access. */
status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp);
@@ -590,7 +591,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else
{
/* Throw away old model. Build new one. */
- status = p7_Builder(bld, msa, info[0].bg, ret_hmm, NULL, NULL, &om, NULL);
+ status = p7_Builder(bld, msa, info[0].bg, ret_hmm, NULL, NULL, &om, NULL, NULL, NULL);
if (status == eslENORESULT) p7_Fail("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf);
else if (status == eslEFORMAT) p7_Fail("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf);
else if (status != eslOK) p7_Fail("Unexpected error constructing new model at iteration %d:", iteration);
@@ -703,8 +704,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
if (afp)
{
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
@@ -1109,7 +1110,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else
{
/* Throw away old model. Build new one. */
- status = p7_Builder(bld, msa, bg, ret_hmm, NULL, NULL, &om, NULL);
+ status = p7_Builder(bld, msa, bg, ret_hmm, NULL, NULL, &om, NULL, NULL, NULL);
if (status == eslENORESULT) mpi_failure("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf);
else if (status == eslEFORMAT) mpi_failure("Failed to construct new model from iteration %d results:\n%s", iteration, bld->errbuf);
else if (status != eslOK) mpi_failure("Unexpected error constructing new model at iteration %d:", iteration);
@@ -1267,8 +1268,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
if (afp)
{
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
@@ -1467,7 +1468,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_bg_SetLength(bg, dbsq->n);
p7_oprofile_ReconfigLength(om, dbsq->n);
- p7_Pipeline(pli, om, bg, dbsq, th);
+ p7_Pipeline(pli, om, bg, dbsq, NULL, th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(pli);
@@ -1569,7 +1570,7 @@ checkpoint_msa(int nquery, ESL_MSA *msa, char *basename, int iteration)
esl_sprintf(&filename, "%s-%d.sto", basename, iteration);
if (nquery == 1) { if ((fp = fopen(filename, "w")) == NULL) p7_Fail("Failed to open MSA checkpoint file %s for writing\n", filename); }
else { if ((fp = fopen(filename, "a")) == NULL) p7_Fail("Failed to open MSA checkpoint file %s for append\n", filename); }
- eslx_msafile_Write(fp, msa, eslMSAFILE_PFAM);
+ esl_msafile_Write(fp, msa, eslMSAFILE_PFAM);
fclose(fp);
free(filename);
@@ -1592,7 +1593,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp)
p7_bg_SetLength(info->bg, dbsq->n);
p7_oprofile_ReconfigLength(info->om, dbsq->n);
- p7_Pipeline(info->pli, info->om, info->bg, dbsq, info->th);
+ p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(info->pli);
@@ -1623,7 +1624,7 @@ thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
while (sstatus == eslOK)
{
block = (ESL_SQ_BLOCK *) newBlock;
- sstatus = esl_sqio_ReadBlock(dbfp, block, -1, FALSE);
+ sstatus = esl_sqio_ReadBlock(dbfp, block, -1, -1, FALSE);
if (sstatus == eslEOF)
{
if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
@@ -1662,7 +1663,7 @@ pipeline_thread(void *arg)
ESL_SQ_BLOCK *block = NULL;
void *newBlock;
- impl_ThreadInit();
+ impl_Init();
obj = (ESL_THREADS *) arg;
@@ -1686,7 +1687,7 @@ pipeline_thread(void *arg)
p7_bg_SetLength(info->bg, dbsq->n);
p7_oprofile_ReconfigLength(info->om, dbsq->n);
- p7_Pipeline(info->pli, info->om, info->bg, dbsq, info->th);
+ p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(info->pli);
@@ -1709,13 +1710,10 @@ pipeline_thread(void *arg)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/jackhmmer.c $
- * SVN $Id: jackhmmer.c 3816 2012-01-22 15:23:50Z eddys $
*****************************************************************/
diff --git a/hmmer/src/logsum.c b/hmmer/src/logsum.c
index 9176ed5..cbc6354 100644
--- a/hmmer/src/logsum.c
+++ b/hmmer/src/logsum.c
@@ -389,14 +389,14 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/logsum.c $
+ * SVN $URL$
* SVN $Id: logsum.c 3474 2011-01-17 13:25:32Z eddys $
*****************************************************************/
diff --git a/hmmer/src/makenhmmerdb.c b/hmmer/src/makehmmerdb.c
similarity index 60%
rename from hmmer/src/makenhmmerdb.c
rename to hmmer/src/makehmmerdb.c
index bc7ea57..08d0834 100644
--- a/hmmer/src/makenhmmerdb.c
+++ b/hmmer/src/makehmmerdb.c
@@ -1,32 +1,43 @@
-#include "divsufsort.h"
-#include "hmmer.h"
+#include "p7_config.h"
+
#include "easel.h"
#include "esl_sq.h"
#include "esl_sqio.h"
#include "esl_mem.h"
+
#include <string.h>
-//#define PRINTBWT 1
-//#define PRINTOCC 1
+#include "hmmer.h"
+#include "divsufsort.h"
+
#define FM_BLOCK_COUNT 100000 //max number of SQ objects in a block
-#define FM_BLOCK_OVERLAP 100000 //100 Kbases of overlap, at most, between adjascent FM-index blocks
+#define FM_BLOCK_OVERLAP 20000 //20 Kbases of overlap, at most, between adjascent FM-index blocks
+//#define ALPHOPTS "--amino,--dna,--rna" /* Exclusive options for alphabet choice */
+
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 },
- { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "specify that input file is in format <s>", 2 },
- { "--alph", eslARG_STRING, "dna", NULL, NULL, NULL, NULL, NULL, "alphabet [dna,dna_full,amino]", 2 },
- { "--bin_length", eslARG_INT, "256", NULL, NULL, NULL, NULL, NULL, "bin length (power of 2; 32<=b<=4096)", 2 },
- { "--sa_freq", eslARG_INT, "8", NULL, NULL, NULL, NULL, NULL, "suffix array sample rate (power of 2)", 2 },
- { "--block_size", eslARG_INT, "50", NULL, NULL, NULL, NULL, NULL, "input sequence broken into chunks this size (Mbases)", 2 },
- { "--fwd_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "build FM-index only for forward search (not for HMMER)", 2 },
+ /* Selecting the alphabet rather than autoguessing it */
+ //TODO: when I make the FM method work for amino acids, re-enable this selection
+// { "--amino", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input is protein sequence", 2 },
+// { "--dna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input is DNA sequence", 2 },
+// { "--rna", eslARG_NONE, FALSE, NULL, NULL, ALPHOPTS, NULL, NULL, "input is RNA sequence", 2 },
+
+ /* Other options */
+ { "--informat", eslARG_STRING, FALSE, NULL, NULL, NULL, NULL, NULL, "specify that input file is in format <s>", 3 },
+ { "--bin_length", eslARG_INT, "256", NULL, NULL, NULL, NULL, NULL, "bin length (power of 2; 32<=b<=4096)", 3 },
+ { "--sa_freq", eslARG_INT, "8", NULL, NULL, NULL, NULL, NULL, "suffix array sample rate (power of 2)", 3 },
+ { "--block_size", eslARG_INT, "50", NULL, NULL, NULL, NULL, NULL, "input sequence broken into blocks this size (Mbases)", 3 },
+
+ /* hidden*/
+ { "--fwd_only", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "build FM-index only for forward search (not for HMMER)", 9 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
-
-static char usage[] = "[options] <seqfile> <fmfile>";
+static char usage[] = "[options] <seqfile> <binaryfile>";
static char banner[] = "build a HMMER binary-formatted database from an input sequence file";
@@ -49,8 +60,11 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_seqf
if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 120=textwidth*/
+// if (puts("\nOptions for selecting alphabet rather than guessing it:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+// esl_opt_DisplayHelp(stdout, go, 2, 2, 80);
+
if (puts("\nSpecial options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
- esl_opt_DisplayHelp(stdout, go, 2, 2, 80); /* 2= group; 2 = indentation; 120=textwidth*/
+ esl_opt_DisplayHelp(stdout, go, 3, 2, 80); /* 2= group; 2 = indentation; 120=textwidth*/
exit(0);
}
@@ -87,11 +101,13 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *seqfile, char *fmfile)
{
p7_banner(ofp, go->argv[0], banner);
- if (fprintf(ofp, "# input sequence file: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if ( fprintf(ofp, "# input sequence file: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# output binary-formatted HMMER database: %s\n", fmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (fprintf(ofp, "# alphabet : %s\n", esl_opt_GetString(go, "--alph")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (fprintf(ofp, "# bin_length : %d\n", esl_opt_GetInteger(go, "--bin_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# bin_length: %d\n", esl_opt_GetInteger(go, "--bin_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# suffix array sample rate: %d\n", esl_opt_GetInteger(go, "--sa_freq")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+// if (esl_opt_IsUsed(go, "--amino") && fprintf(ofp, "# input is asserted to be: protein\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+// if (esl_opt_IsUsed(go, "--dna") && fprintf(ofp, "# input is asserted to be: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+// if (esl_opt_IsUsed(go, "--rna") && fprintf(ofp, "# input is asserted to be: RNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
return eslOK;
}
@@ -105,11 +121,10 @@ int
allocateSeqdata (FM_METADATA *meta, ESL_SQ *sq, int numseqs, int *allocedseqs) {
int length;
int status = eslOK;
- if (numseqs == *allocedseqs) {
- *allocedseqs *= 2; // we've bumped up against allocation limit, double allocation.
- }
- if (numseqs == 0 || numseqs == *allocedseqs) { // either first allocation, or increase in size
+
+ if (numseqs == *allocedseqs) { // either first allocation, or increase in size
+ *allocedseqs *= 4; // we've bumped up against allocation limit, double allocation.
ESL_REALLOC (meta->seq_data, *allocedseqs * sizeof(FM_SEQDATA));
if (meta->seq_data == NULL )
esl_fatal("unable to allocate memory to store FM meta data\n");
@@ -150,32 +165,40 @@ ERROR:
*
* if SAsamp == NULL, don't store/write T or SAsamp
*/
-int buildAndWriteFMIndex (FM_METADATA *meta, uint32_t seq_offset, uint16_t seq_cnt, uint32_t overlap,
- uint8_t *T, uint8_t *BWT,
- int *SA, uint32_t *SAsamp,
- uint32_t *occCnts_sb, uint32_t *cnts_sb,
- uint16_t *occCnts_b, uint16_t *cnts_b,
- int N, FILE *fp
+int buildAndWriteFMIndex (FM_METADATA *meta, uint32_t seq_offset, uint32_t ambig_offset,
+ uint32_t seq_cnt, uint32_t ambig_cnt, uint32_t overlap,
+ FM_DATA *fm_data, uint32_t *SAsamp,
+ uint32_t *cnts_sb, uint16_t *cnts_b,
+ uint64_t N, uint8_t *Tcompressed, FILE *fp
) {
int status;
- int i,j,c,joffset;
+ uint64_t i,j,c,joffset;
int chars_per_byte = 8/meta->charBits;
- int compressed_bytes = ((chars_per_byte-1+N)/chars_per_byte);
- int term_loc;
+ uint32_t compressed_bytes = ((chars_per_byte-1+N)/chars_per_byte);
+ uint32_t term_loc;
- int num_freq_cnts_b = 1+ceil((float)N/meta->freq_cnt_b);
- int num_freq_cnts_sb = 1+ceil((float)N/meta->freq_cnt_sb);
- int num_SA_samples = 1+floor((float)N/meta->freq_SA);
+ uint8_t *T = fm_data->T;
+ uint8_t *BWT = fm_data->BWT;
+ int *SA = (int*) fm_data->SA; //cast this way because libdivsufsort requires an int.
+ uint32_t *occCnts_sb = fm_data->occCnts_sb;
+ uint16_t *occCnts_b = fm_data->occCnts_b;
- uint8_t *Tcompressed;
- if (SAsamp != NULL)
- ESL_ALLOC (Tcompressed, compressed_bytes * sizeof(uint8_t));
+ int num_freq_cnts_b = 1+ceil((double)N/(meta->freq_cnt_b));
+ int num_freq_cnts_sb = 1+ceil((double)N/meta->freq_cnt_sb);
+ int num_SA_samples = floor((double)N/meta->freq_SA);
+
+ if (SAsamp != NULL) {
+ ESL_REALLOC (Tcompressed, compressed_bytes * sizeof(uint8_t));
+
+ // Reverse the text T, so the BWT will be on reversed T. Only used for the 1st pass
+ fm_reverseString ((char*)T, N-1);
+ }
// Construct the Suffix Array on text T
- status = divsufsort(T, SA, N);
+ status = divsufsort(fm_data->T, SA, N);
if ( status < 0 )
esl_fatal("buildAndWriteFMIndex: Error building BWT.\n");
@@ -193,26 +216,28 @@ int buildAndWriteFMIndex (FM_METADATA *meta, uint32_t seq_offset, uint16_t seq_c
}
T[N-1]=0;
-
BWT[0] = SA[0]==0 ? 0 /* '$' */ : T[ SA[0]-1] ;
-
cnts_sb[BWT[0]]++;
cnts_b[BWT[0]]++;
+ if (SAsamp != NULL)
+ SAsamp[0] = 0; // not used, since indexing is base-1. Set for the sake of consistency of output.
+
//Scan through SA to build the BWT and FM index structures
for(j=1; j < N; ++j) {
if (SA[j]==0) { //'$'
term_loc = j;
BWT[j] = 0; //store 'a' in place of '$'
} else {
- BWT[j] = T[ SA[j]-1] ;
+ BWT[j] = T[ SA[j]-1] ;
}
+
//sample the SA
if (SAsamp != NULL) {
if ( !(j % meta->freq_SA) )
- SAsamp[ j>>meta->SA_shift ] = ( SA[j] == N - 1 ? -1 : SA[j] ) ; // handle the wrap-around '$'
+ SAsamp[ j/meta->freq_SA ] = ( SA[j] == N - 1 ? -1 : SA[j] ) ; // handle the wrap-around '$'
}
cnts_sb[BWT[j]]++;
@@ -222,30 +247,17 @@ int buildAndWriteFMIndex (FM_METADATA *meta, uint32_t seq_offset, uint16_t seq_c
if ( !( joffset % meta->freq_cnt_b) ) { // (j+1)%freq_cnt_b==0 , i.e. every freq_cnt_bth position, noting that it's a zero-based count
for (c=0; c<meta->alph_size; c++)
- FM_OCC_CNT(b, (joffset>>meta->cnt_shift_b), c ) = cnts_b[c];
+ FM_OCC_CNT(b, (joffset/meta->freq_cnt_b), c ) = cnts_b[c];
if ( !(joffset % meta->freq_cnt_sb) ) { // j%freq_cnt_sb==0
for (c=0; c<meta->alph_size; c++) {
- FM_OCC_CNT(sb, (joffset>>meta->cnt_shift_sb), c ) = cnts_sb[c];
+ FM_OCC_CNT(sb, (joffset/meta->freq_cnt_sb), c ) = cnts_sb[c];
cnts_b[c] = 0;
}
}
}
}
-
-
-/*
-printf("BWT (termloc: %d): \n", term_loc);
-for(j=0; j < N; ++j) {
- printf("%d\n", BWT[j]);
-}
-
-printf("SA:\n");
-for(j=0; j < N; ++j) {
- printf("%d\n", SA[j]);
-}
-*/
//wrap up the counting;
for (c=0; c<meta->alph_size; c++) {
FM_OCC_CNT(b, num_freq_cnts_b-1, c ) = cnts_b[c];
@@ -257,65 +269,83 @@ for(j=0; j < N; ++j) {
// Convert BWT and T to packed versions if appropriate.
if (meta->alph_type == fm_DNA) {
//4 chars per byte. Counting will be done based on quadruples 0..3; 4..7; 8..11; etc.
- for(i=0; i < N-3; i+=4) {
- BWT[i>>2] = BWT[i]<<6 | BWT[i+1]<<4 | BWT[i+2]<<2 | BWT[i+3];
- if (SAsamp != NULL)
- Tcompressed[i>>2] = T[i]<<6 | T[i+1]<<4 | T[i+2]<<2 | T[i+3];
- }
- if (i <= N-1) {
- BWT[i>>2] = BWT[i]<<6;
- if (SAsamp != NULL)
- Tcompressed[i>>2] = T[i]<<6;
- }
- if (i+1 <= N-1) {
- BWT[i>>2] = BWT[i+1]<<4;
- if (SAsamp != NULL)
- Tcompressed[i>>2] = T[i+1]<<4;
- }
- if (i+2 <= N-1) {
- BWT[i>>2] = BWT[i+2]<<2;
- if (SAsamp != NULL)
- Tcompressed[i>>2] = T[i+2]<<2;
- }
-
- } else if (meta->alph_type == fm_DNA_full) {
+ for(i=0; i < N-3; i+=4)
+ BWT[i/4] = BWT[i]<<6 | BWT[i+1]<<4 | BWT[i+2]<<2 | BWT[i+3];
+ if (i <= N-1)
+ BWT[i/4] = BWT[i]<<6;
+ if (i+1 <= N-1)
+ BWT[i/4] |= BWT[i+1]<<4;
+ if (i+2 <= N-1)
+ BWT[i/4] |= BWT[i+2]<<2;
+/*
+ } else if (meta->alph_type == fm_DNA_full ) {
//2 chars per byte. Counting will be done based on quadruples 0..3; 4..7; 8..11; etc.
- for(i=0; i < N-1; i+=2) {
- BWT[i>>1] = BWT[i]<<4 | BWT[i+1];
- if (SAsamp != NULL)
- Tcompressed[i>>1] = T[i]<<4 | T[i+1];
- }
- if (i==N-1) {
- BWT[i>>1] = BWT[i]<<4 ;
- if (SAsamp != NULL)
- Tcompressed[i>>1] = T[i]<<4 ;
- }
+ for(i=0; i < N-1; i+=2)
+ BWT[i/2] = BWT[i]<<4 | BWT[i+1];
+ if (i==N-1)
+ BWT[i/2] = BWT[i]<<4 ;
+*/
}
+
+
+ //If this is the 1st (reversed text) BWT, de-reverse it, then compress it
+ if (SAsamp != NULL) {
+ fm_reverseString ((char*)T, N-1);
+ // Convert BWT and T to packed versions if appropriate.
+ if (meta->alph_type == fm_DNA ) {
+ //4 chars per byte. Counting will be done based on quadruples 0..3; 4..7; 8..11; etc.
+ for(i=0; i < N-3; i+=4)
+ Tcompressed[i/4] = T[i]<<6 | T[i+1]<<4 | T[i+2]<<2 | T[i+3];
+
+ if (i <= N-1)
+ Tcompressed[i/4] = T[i]<<6;
+ if (i+1 <= N-1)
+ Tcompressed[i/4] |= T[i+1]<<4;
+ if (i+2 <= N-1)
+ Tcompressed[i/4] |= T[i+2]<<2;
+/*
+ } else if (meta->alph_type == fm_DNA_full) {
+ //2 chars per byte. Counting will be done based on quadruples 0..3; 4..7; 8..11; etc.
+ for(i=0; i < N-1; i+=2)
+ Tcompressed[i/2] = T[i]<<4 | T[i+1];
+ if (i==N-1)
+ Tcompressed[i/2] = T[i]<<4 ;
+*/
+ } else {
+ for(i=0; i < N-1; i++)
+ Tcompressed[i] = T[i];
+ }
+ }
+
+
for(j=0; j < N-1; ++j) {
T[j]++; //move values back up, in case the reverse FM needs to be built
}
T[N-1] = 0;
+
// Write the FM-index meta data
- if(fwrite(&N, sizeof(N), 1, fp) != 1)
+ if(fwrite(&N, sizeof(uint64_t), 1, fp) != 1)
esl_fatal( "buildAndWriteFMIndex: Error writing block_length in FM index.\n");
- if(fwrite(&term_loc, sizeof(term_loc), 1, fp) != 1)
+ if(fwrite(&term_loc, sizeof(uint32_t), 1, fp) != 1)
esl_fatal( "buildAndWriteFMIndex: Error writing terminal location in FM index.\n");
- if(fwrite(&seq_offset, sizeof(seq_offset), 1, fp) != 1)
+ if(fwrite(&seq_offset, sizeof(uint32_t), 1, fp) != 1)
esl_fatal( "buildAndWriteFMIndex: Error writing seq_offset in FM index.\n");
- if(fwrite(&overlap, sizeof(overlap), 1, fp) != 1)
+ if(fwrite(&ambig_offset, sizeof(uint32_t), 1, fp) != 1)
+ esl_fatal( "buildAndWriteFMIndex: Error writing ambig_offset in FM index.\n");
+ if(fwrite(&overlap, sizeof(uint32_t), 1, fp) != 1)
esl_fatal( "buildAndWriteFMIndex: Error writing overlap in FM index.\n");
- if(fwrite(&seq_cnt, sizeof(seq_cnt), 1, fp) != 1)
+ if(fwrite(&seq_cnt, sizeof(uint32_t), 1, fp) != 1)
esl_fatal( "buildAndWriteFMIndex: Error writing seq_cnt in FM index.\n");
-
+ if(fwrite(&ambig_cnt, sizeof(uint32_t), 1, fp) != 1)
+ esl_fatal( "buildAndWriteFMIndex: Error writing ambig_cnt in FM index.\n");
// don't write Tcompressed or SAsamp if SAsamp == NULL
- if(SAsamp != NULL && fwrite(Tcompressed, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
+ if(Tcompressed != NULL && fwrite(Tcompressed, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
esl_fatal( "buildAndWriteFMIndex: Error writing T in FM index.\n");
if(fwrite(BWT, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
esl_fatal( "buildAndWriteFMIndex: Error writing BWT in FM index.\n");
-
if(SAsamp != NULL && fwrite(SAsamp, sizeof(uint32_t), (size_t)num_SA_samples, fp) != (size_t)num_SA_samples)
esl_fatal( "buildAndWriteFMIndex: Error writing SA in FM index.\n");
if(fwrite(occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fp) != (size_t)num_freq_cnts_b)
@@ -323,12 +353,10 @@ for(j=0; j < N; ++j) {
if(fwrite(occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fp) != (size_t)num_freq_cnts_sb)
esl_fatal( "buildAndWriteFMIndex: Error writing occCnts_sb in FM index.\n");
-
return eslOK;
ERROR:
/* Deallocate memory. */
- if (Tcompressed) free(Tcompressed);
return eslFAIL;
}
@@ -343,28 +371,28 @@ ERROR:
* could easily be replaced.
*/
int
-main(int argc, char *argv[]) {
-
+main(int argc, char **argv)
+{
+ int status = eslOK;
char tmp_filename[16] = "fmtmpXXXXXX";
FILE *fptmp = NULL;
FILE *fp = NULL;
- uint8_t *T = NULL;
- uint8_t *BWT = NULL;
- int *SA = NULL; //what I write will be 32-bit ints, but I need to keep this as int so it'll work with libdivsufsort
+
+
+ // these will be allocated once, and reused for each built block
+ FM_METADATA *meta = NULL;
+ FM_DATA *fm_data = NULL;
uint32_t *SAsamp = NULL;
- uint32_t *occCnts_sb = NULL; // same indexing as above
uint32_t *cnts_sb = NULL;
- uint16_t *occCnts_b = NULL; // this is logically a 2D array, but will be indexed as occ_cnts[alph_size*index + char] (instead of occ_cnts[index][char])
uint16_t *cnts_b = NULL;
- FM_METADATA *meta = NULL;
- //char *inv_alph = NULL;
- //char *alph = NULL;
+ uint8_t *Tcompressed = NULL;
+
+
clock_t t1, t2;
struct tms ts1, ts2;
- long i,j, c;
- int status = eslOK;
+ long i,j,c;
int chars_per_byte;
int num_freq_cnts_sb ;
@@ -377,63 +405,70 @@ main(int argc, char *argv[]) {
ESL_SQ *sq = NULL;
ESL_SQFILE *sqfp = NULL;
- ESL_SQ *tmpsq;
- ESL_SQ_BLOCK *block;
+ ESL_SQ *tmpsq = NULL;
+ ESL_SQ_BLOCK *block = NULL;
char *fname_in = NULL;
char *fname_out= NULL;
- int block_size = 50000000;
+ uint32_t block_size = 50000000;
int sq_cnt = 0;
int use_tmpsq = 0;
- int reported_N = 0;
- uint32_t block_length;
+ uint64_t block_length;
uint64_t total_char_count = 0;
- int max_block_size;
+ uint32_t max_block_size;
- int namelengths;
int numblocks = 0;
- uint32_t numseqs;
+ uint32_t numseqs = 0;
+
+
int allocedseqs = 1000;
uint32_t seq_offset = 0;
+ uint32_t ambig_offset = 0;
uint32_t overlap = 0;
- uint16_t seq_cnt;
+ uint32_t seq_cnt;
+ uint32_t ambig_cnt;
+
+ uint32_t prev_numseqs = 0;
int compressed_bytes;
- int term_loc;
+ uint32_t term_loc;
ESL_GETOPTS *go = NULL; /* command line processing */
+ int in_ambig_run = 0;
+
+ ESL_RANDOMNESS *r = esl_randomness_CreateFast(42);
+
+
+#if !defined (p7_IMPL_SSE)
+ p7_Fail("The hmmerfm sequence database file format is valid only on systems supporting SSE vector instructions\n");
+#endif
+
ESL_ALLOC (meta, sizeof(FM_METADATA));
if (meta == NULL)
esl_fatal("unable to allocate memory to store FM meta data\n");
+ meta->alph = NULL;
+
+
+ ESL_ALLOC (meta->ambig_list, sizeof(FM_AMBIGLIST));
+ if (meta->ambig_list == NULL)
+ esl_fatal("unable to allocate memory to store FM ambiguity data\n");
+ fm_initAmbiguityList(meta->ambig_list);
+
meta->alph_type = fm_DNA;
meta->freq_SA = 8;
meta->freq_cnt_b = 256;
meta->freq_cnt_sb = pow(2,16); //65536 - that's the # values in a short
+ meta->seq_count = 0;
+ ESL_ALLOC (meta->seq_data, allocedseqs * sizeof(FM_SEQDATA));
+ if (meta->seq_data == NULL )
+ esl_fatal("unable to allocate memory to store FM sequence data\n");
process_commandline(argc, argv, &go, &fname_in, &fname_out);
- meta->fwd_only = (esl_opt_IsOn(go, "--fwd_only")) ? 1 : 0;
-
- if (esl_opt_IsOn(go, "--alph")) { meta->alph = esl_opt_GetString(go, "--alph") ; }
-
- if ( esl_strcmp(meta->alph, "dna")==0) {
- meta->alph_type = fm_DNA;
- alphatype = eslDNA;
- } else if (esl_strcmp(meta->alph, "dna_full")==0) {
- meta->alph_type = fm_DNA_full;
- alphatype = eslDNA;
- } else if (esl_strcmp(meta->alph, "amino")==0) {
- meta->alph_type = fm_AMINO;
- alphatype = eslAMINO;
- } else {
- esl_fatal("Unknown alphabet type. Try 'dna', 'dna_full', or 'amino'\n%s", "");
- }
- meta->alph = NULL;
-
if (esl_opt_IsOn(go, "--bin_length")) meta->freq_cnt_b = esl_opt_GetInteger(go, "--bin_length");
if ( meta->freq_cnt_b < 32 || meta->freq_cnt_b >4096 || (meta->freq_cnt_b & (meta->freq_cnt_b - 1)) ) // test power of 2
esl_fatal("bin_length must be a power of 2, at least 128, and at most 4096\n");
@@ -444,28 +479,18 @@ main(int argc, char *argv[]) {
if (esl_opt_IsOn(go, "--block_size")) block_size = 1000000 * esl_opt_GetInteger(go, "--block_size");
- if ( block_size <=0 )
+ if ( block_size <= 0 )
esl_fatal ("block_size must be a positive number\n");
+ if ( block_size > 3500000000 )
+ esl_fatal ("block_size must less than 3500M\n");
+
+
//start timer
t1 = times(&ts1);
output_header(stdout, go, fname_in, fname_out);
- meta->SA_shift = (int) round(log(meta->freq_SA) * eslCONST_LOG2R); /* i.e. log2() */
- meta->cnt_shift_b = (int) round(log(meta->freq_cnt_b) * eslCONST_LOG2R);
- meta->cnt_shift_sb = (int) round(log(meta->freq_cnt_sb) * eslCONST_LOG2R);
-
- //getInverseAlphabet
- fm_createAlphabet(meta, &(meta->charBits));
- chars_per_byte = 8/meta->charBits;
-
- //shift inv_alph up one, to make space for '$' at 0
- for (i=0; i<256; i++)
- if ( meta->inv_alph[i] >= 0)
- meta->inv_alph[i]++;
-
-
if (esl_opt_GetString(go, "--informat") != NULL) {
infmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (infmt == eslSQFILE_UNKNOWN) esl_fatal("%s is not a valid input sequence file format for --informat");
@@ -476,6 +501,48 @@ main(int argc, char *argv[]) {
else if (status == eslEFORMAT) esl_fatal("Format of seqfile %s unrecognized.", fname_in);
else if (status != eslOK) esl_fatal("Open failed, code %d.", status);
+ meta->fwd_only = 0;
+
+/* TODO: when I make the FM method work for amino acids, re-enable this selection
+ if ( esl_opt_IsUsed(go, "--amino") ) {
+ meta->alph_type = fm_AMINO;
+ alphatype = eslAMINO;
+ meta->fwd_only = 1;
+ } else if (esl_opt_IsUsed(go, "--dna") || esl_opt_IsUsed(go, "--rna") ){
+ */
+ //meta->alph = "dna"; //esl_opt_IsUsed(go, "--dna") ? "dna" || "rna";
+ meta->alph_type = fm_DNA;
+ alphatype = eslDNA;
+/*
+ } else {
+ esl_sqfile_GuessAlphabet(sqfp, &alphaguess);
+
+ if (alphaguess == eslDNA || alphaguess == eslRNA) {
+ meta->alph_type = fm_DNA;
+ alphatype = eslDNA;
+ } else if (alphaguess == eslAMINO) {
+ meta->alph_type = fm_AMINO;
+ alphatype = eslAMINO;
+ meta->fwd_only = 1;
+ } else {
+ esl_fatal("Unable to guess alphabet. Try '--dna' or '--amino'\n%s", ""); //'dna_full'
+ }
+ }
+*/
+
+ if (esl_opt_IsOn(go, "--fwd_only") )
+ meta->fwd_only = 1;
+
+ //getInverseAlphabet
+ fm_alphabetCreate(meta, &(meta->charBits));
+ chars_per_byte = 8/meta->charBits;
+
+ //shift inv_alph up one, to make space for '$' at 0
+ for (i=0; i<256; i++)
+ if ( meta->inv_alph[i] >= 0)
+ meta->inv_alph[i]++;
+
+
abc = esl_alphabet_Create(alphatype);
sq = esl_sq_CreateDigital(abc);
tmpsq = esl_sq_CreateDigital(abc);
@@ -483,20 +550,29 @@ main(int argc, char *argv[]) {
esl_sqfile_SetDigital(sqfp, abc);
block = esl_sq_CreateDigitalBlock(FM_BLOCK_COUNT, abc);
block->complete = FALSE;
-// max_block_size = FM_BLOCK_OVERLAP+block_size+1 + block_size*.2; // +1 for the '$'
- max_block_size = FM_BLOCK_OVERLAP+block_size+1 + block_size; // temporary hack to avoid memory over-runs (see end of 1101_fmindex_benchmarking/00NOTES)
+ max_block_size = FM_BLOCK_OVERLAP+block_size+1 + block_size*.05; // +1 for the '$', +5% of block size because that's the slop allowed by readwindow
/* Allocate BWT, Text, SA, and FM-index data structures, allowing storage of maximally large sequence*/
- ESL_ALLOC (T, max_block_size * sizeof(uint8_t));
- ESL_ALLOC (BWT, max_block_size * sizeof(uint8_t));
- ESL_ALLOC (SA, max_block_size * sizeof(int));
- ESL_ALLOC (SAsamp, (1+max_block_size/meta->freq_SA) * sizeof(uint32_t));
- ESL_ALLOC (occCnts_sb, (1+ceil((float)max_block_size/meta->freq_cnt_sb)) * meta->alph_size * sizeof(uint32_t)); // every freq_cnt_sb positions, store an array of ints
+ ESL_ALLOC(fm_data, sizeof(FM_DATA) );
+
+ if (fm_data == NULL) {
+ esl_fatal( "%s: Cannot allocate memory.\n", argv[0]);
+ }
+
+ ESL_ALLOC (fm_data->T, max_block_size * sizeof(uint8_t));
+ ESL_ALLOC (fm_data->BWT_mem, max_block_size * sizeof(uint8_t));
+ fm_data->BWT = fm_data->BWT_mem; // in SSE code, used to align memory. Here, doesn't matter
+ ESL_ALLOC (fm_data->SA, max_block_size * sizeof(int));
+ ESL_ALLOC (SAsamp, (floor((double)max_block_size/meta->freq_SA) ) * sizeof(uint32_t));
+
+ ESL_ALLOC (fm_data->occCnts_sb, (1+ceil((double)max_block_size/meta->freq_cnt_sb)) * meta->alph_size * sizeof(uint32_t)); // every freq_cnt_sb positions, store an array of ints
+ ESL_ALLOC (fm_data->occCnts_b, ( 1+ceil((double)max_block_size/meta->freq_cnt_b)) * meta->alph_size * sizeof(uint16_t)); // every freq_cnt_b positions, store an array of 8-byte ints
ESL_ALLOC (cnts_sb, meta->alph_size * sizeof(uint32_t));
- ESL_ALLOC (occCnts_b, ( 1+ceil((float)max_block_size/meta->freq_cnt_b)) * meta->alph_size * sizeof(uint16_t)); // every freq_cnt_b positions, store an array of 8-byte ints
ESL_ALLOC (cnts_b, meta->alph_size * sizeof(uint16_t));
- if((T == NULL) || (BWT == NULL) || (SA==NULL) || (SAsamp==NULL) || (BWT==NULL) || (cnts_b==NULL) || (occCnts_b==NULL) || (cnts_sb==NULL) || (occCnts_sb==NULL) ) {
+ if((fm_data->T == NULL) || (fm_data->BWT == NULL) || (fm_data->SA==NULL) ||
+ (fm_data->occCnts_b==NULL) || (fm_data->occCnts_sb==NULL) ||
+ (SAsamp==NULL) || (cnts_b==NULL) || (cnts_sb==NULL) ) {
esl_fatal( "%s: Cannot allocate memory.\n", argv[0]);
}
@@ -505,9 +581,6 @@ main(int argc, char *argv[]) {
if (esl_tmpfile(tmp_filename, &fptmp) != eslOK) esl_fatal("unable to open fm-index tmpfile");
- numblocks = 0;
- numseqs = 0;
-
/* Main loop: */
while (status == eslOK ) {
@@ -524,11 +597,13 @@ main(int argc, char *argv[]) {
block->complete = TRUE;
}
- status = esl_sqio_ReadBlock(sqfp, block, block_size, TRUE);
+ status = esl_sqio_ReadBlock(sqfp, block, block_size, -1, alphatype != eslAMINO);
if (status == eslEOF) continue;
- if (status != eslOK) ESL_XEXCEPTION(status, "failure reading sequence block");
+ if (status != eslOK) esl_fatal("Parse failed (sequence file %s): status:%d\n%s\n",
+ sqfp->filename, status, esl_sqfile_GetErrorBuf(sqfp));
seq_offset = numseqs;
+ ambig_offset = meta->ambig_list->count;
if (block->complete || block->count == 0) {
use_tmpsq = FALSE;
@@ -559,9 +634,10 @@ main(int argc, char *argv[]) {
allocateSeqdata(meta, block->list+i, numseqs, &allocedseqs);
//meta data
- meta->seq_data[numseqs].id = block->first_seqidx + i ;
- meta->seq_data[numseqs].start = block->list[i].start;
- meta->seq_data[numseqs].offset = block_length; //meta->seq_data[numseqs-1].length + ( numseqs == 0 ? 0 : meta->seq_data[numseqs-1].offset);
+ meta->seq_data[numseqs].target_id = block->first_seqidx + i ;
+ meta->seq_data[numseqs].target_start = block->list[i].start;
+ meta->seq_data[numseqs].fm_start = block_length;
+
if (block->list[i].name == NULL) meta->seq_data[numseqs].name[0] = '\0';
else strcpy(meta->seq_data[numseqs].name, block->list[i].name );
if (block->list[i].acc == NULL) meta->seq_data[numseqs].acc[0] = '\0';
@@ -575,75 +651,67 @@ main(int argc, char *argv[]) {
c = abc->sym[block->list[i].dsq[j]];
if ( meta->alph_type == fm_DNA) {
if (meta->inv_alph[c] == -1) {
- if (!reported_N) {
- printf ("You have selected alph_type 'dna', but your sequence database contains an ambiguity code.\n");
- printf ("The database will be built, but seeds will not be formed around these positions.\n");
- printf ("Use alph_type 'dna_full' if this bothers you.\n");
- reported_N = 1;
- }
-
- if (meta->seq_data[numseqs].length > 0) {
- //start a new sequence if the one I'm currently working on isn't empty
- numseqs++;
- allocateSeqdata(meta, block->list+i, numseqs, &allocedseqs);
- //meta data
- meta->seq_data[numseqs].id = block->first_seqidx + i ;
- meta->seq_data[numseqs].start = block->list[i].start + j;
- meta->seq_data[numseqs].offset = meta->seq_data[numseqs-1].length + ( numseqs == 0 ? 0 : meta->seq_data[numseqs-1].offset);
- if (block->list[i].name == NULL) meta->seq_data[numseqs].name[0] = '\0';
- else strcpy(meta->seq_data[numseqs].name, block->list[i].name );
- if (block->list[i].acc == NULL) meta->seq_data[numseqs].acc[0] = '\0';
- else strcpy(meta->seq_data[numseqs].acc, block->list[i].acc );
- if (block->list[i].source == NULL) meta->seq_data[numseqs].source[0] = '\0';
- else strcpy(meta->seq_data[numseqs].source, block->list[i].source );
- if (block->list[i].desc == NULL) meta->seq_data[numseqs].desc[0] = '\0';
- else strcpy(meta->seq_data[numseqs].desc, block->list[i].desc );
+ // replace ambiguity characters by random choice of A,C,G, and T.
+ c = meta->alph[(int)(esl_random(r)*4)];
+ if (!in_ambig_run) {
+ fm_addAmbiguityRange(meta->ambig_list, block_length, block_length);
+ in_ambig_run=1;
} else {
- meta->seq_data[numseqs].start++;
+ meta->ambig_list->ranges[meta->ambig_list->count - 1].upper = block_length;
}
-
- continue;
+ } else {
+ in_ambig_run=0;
}
} else if (meta->inv_alph[c] == -1) {
esl_fatal("requested alphabet doesn't match input text\n");
}
- T[block_length] = meta->inv_alph[c];
+ fm_data->T[block_length] = meta->inv_alph[c];
block_length++;
if (j>block->list[i].C) total_char_count++; // add to total count, only if it's not redundant with earlier read
meta->seq_data[numseqs].length++;
-
}
numseqs++;
+ in_ambig_run = 0;
}
- T[block_length] = 0; // last character 0 is effectively '$' for suffix array
+
+ fm_data->T[block_length] = 0; // last character 0 is effectively '$' for suffix array
block_length++;
seq_cnt = numseqs-seq_offset;
- //build and write FM-index for T
+ ambig_cnt = meta->ambig_list->count - ambig_offset;
- buildAndWriteFMIndex(meta, seq_offset, seq_cnt, (uint32_t)block->list[0].C, T, BWT, SA, SAsamp,
- occCnts_sb, cnts_sb, occCnts_b, cnts_b, block_length, fptmp);
+
+ //build and write FM-index for T. This will be a BWT on the reverse of the sequence, required for reverse-traversal of the BWT
+ buildAndWriteFMIndex(meta, seq_offset, ambig_offset, seq_cnt, ambig_cnt, (uint32_t)block->list[0].C, fm_data,
+ SAsamp, cnts_sb, cnts_b, block_length, Tcompressed, fptmp);
if ( ! meta->fwd_only ) {
- //build and write FM-index for reversed T
- fm_reverseString ((char*)T, block_length-1);
- buildAndWriteFMIndex(meta, seq_offset, seq_cnt, 0, T, BWT, SA, NULL,
- occCnts_sb, cnts_sb, occCnts_b, cnts_b, block_length, fptmp);
+ //build and write FM-index for un-reversed T (used to find reverse hits using forward traversal of the BWT
+ buildAndWriteFMIndex(meta, seq_offset, ambig_offset, seq_cnt, ambig_cnt, 0, fm_data,
+ NULL, cnts_sb, cnts_b, block_length, Tcompressed, fptmp);
}
- numblocks++;
+ prev_numseqs = numseqs;
+ numblocks++;
}
+ esl_sqfile_Close(sqfp);
+ esl_alphabet_Destroy(abc);
+ esl_sq_Destroy(sq);
+ esl_sq_Destroy(tmpsq);
+ esl_sq_DestroyBlock(block);
+
+ esl_randomness_Destroy(r);
+
meta->seq_count = numseqs;
meta->block_count = numblocks;
-
/* Finished writing the FM-index data to a temporary file. Now write
* metadata to fname_out, than append FM-index data from temp file
*/
@@ -659,21 +727,19 @@ main(int argc, char *argv[]) {
fwrite(&(meta->freq_SA), sizeof(meta->freq_SA), 1, fp) != 1 ||
fwrite(&(meta->freq_cnt_sb), sizeof(meta->freq_cnt_sb), 1, fp) != 1 ||
fwrite(&(meta->freq_cnt_b), sizeof(meta->freq_cnt_b), 1, fp) != 1 ||
- fwrite(&(meta->SA_shift), sizeof(meta->SA_shift), 1, fp) != 1 ||
- fwrite(&(meta->cnt_shift_sb), sizeof(meta->cnt_shift_sb), 1, fp) != 1 ||
- fwrite(&(meta->cnt_shift_b), sizeof(meta->cnt_shift_b), 1, fp) != 1 ||
fwrite(&(meta->block_count), sizeof(meta->block_count), 1, fp) != 1 ||
fwrite(&(meta->seq_count), sizeof(meta->seq_count), 1, fp) != 1 ||
+ fwrite(&(meta->ambig_list->count), sizeof(meta->ambig_list->count), 1, fp) != 1 ||
fwrite(&total_char_count, sizeof(total_char_count), 1, fp) != 1
)
esl_fatal( "%s: Error writing meta data for FM index.\n", argv[0]);
- for (i=0; i<numseqs; i++) {
- if( fwrite(&(meta->seq_data[i].id), sizeof(meta->seq_data[i].id), 1, fp) != 1 ||
- fwrite(&(meta->seq_data[i].start), sizeof(meta->seq_data[i].start), 1, fp) != 1 ||
- fwrite(&(meta->seq_data[i].length), sizeof(meta->seq_data[i].length), 1, fp) != 1 ||
- fwrite(&(meta->seq_data[i].offset), sizeof(meta->seq_data[i].offset), 1, fp) != 1 ||
+ for (i=0; i<meta->seq_count; i++) {
+ if( fwrite(&(meta->seq_data[i].target_id), sizeof(meta->seq_data[i].target_id), 1, fp) != 1 ||
+ fwrite(&(meta->seq_data[i].target_start), sizeof(meta->seq_data[i].target_start), 1, fp) != 1 ||
+ fwrite(&(meta->seq_data[i].fm_start), sizeof(meta->seq_data[i].fm_start), 1, fp) != 1 ||
+ fwrite(&(meta->seq_data[i].length), sizeof(meta->seq_data[i].length), 1, fp) != 1 ||
fwrite(&(meta->seq_data[i].name_length), sizeof(meta->seq_data[i].name_length), 1, fp) != 1 ||
fwrite(&(meta->seq_data[i].acc_length), sizeof(meta->seq_data[i].acc_length), 1, fp) != 1 ||
fwrite(&(meta->seq_data[i].source_length),sizeof(meta->seq_data[i].source_length), 1, fp) != 1 ||
@@ -686,10 +752,14 @@ main(int argc, char *argv[]) {
esl_fatal( "%s: Error writing meta data for FM index.\n", argv[0]);
}
- namelengths = 0;
- for (i=0; i<numseqs; i++)
- namelengths += meta->seq_data[i].name_length + 1;
+ for (i=0; i<meta->ambig_list->count; i++) {
+ if( fwrite(&(meta->ambig_list->ranges[i].lower), sizeof(meta->ambig_list->ranges[i].lower), 1, fp) != 1 ||
+ fwrite(&(meta->ambig_list->ranges[i].upper), sizeof(meta->ambig_list->ranges[i].upper), 1, fp) != 1
+ )
+ esl_fatal( "%s: Error writing ambiguity data for FM index.\n", argv[0]);
+ }
+
/* now append the FM-index data in fptmp to the desired output file, fp */
rewind(fptmp);
@@ -703,28 +773,32 @@ main(int argc, char *argv[]) {
esl_fatal( "%s: Error reading terminal location in FM index.\n", argv[0]);
if(fread(&seq_offset, sizeof(seq_offset), 1, fptmp) != 1)
esl_fatal( "%s: Error reading seq_offset in FM index.\n", argv[0]);
+ if(fread(&ambig_offset, sizeof(ambig_offset ), 1, fptmp) != 1)
+ esl_fatal( "%s: Error reading ambig_offset in FM index.\n", argv[0]);
if(fread(&overlap, sizeof(overlap), 1, fptmp) != 1)
esl_fatal( "%s: Error reading overlap in FM index.\n", argv[0]);
if(fread(&seq_cnt, sizeof(seq_cnt), 1, fptmp) != 1)
esl_fatal( "%s: Error reading seq_cnt in FM index.\n", argv[0]);
+ if(fread(&ambig_cnt, sizeof(ambig_cnt), 1, fptmp) != 1)
+ esl_fatal( "%s: Error reading ambig_cnt in FM index.\n", argv[0]);
compressed_bytes = ((chars_per_byte-1+block_length)/chars_per_byte);
- num_freq_cnts_b = 1+ceil((float)block_length/meta->freq_cnt_b);
- num_freq_cnts_sb = 1+ceil((float)block_length/meta->freq_cnt_sb);
- num_SA_samples = 1+floor((float)block_length/meta->freq_SA);
+ num_freq_cnts_b = 1+ceil((double)block_length/meta->freq_cnt_b);
+ num_freq_cnts_sb = 1+ceil((double)block_length/meta->freq_cnt_sb);
+ num_SA_samples = floor((double)block_length/meta->freq_SA);
//j==0 test cause T and SA to be written only for forward sequence
- if(j==0 && fread(T, sizeof(uint8_t), compressed_bytes, fptmp) != compressed_bytes)
+ if(j==0 && fread(fm_data->T, sizeof(uint8_t), compressed_bytes, fptmp) != compressed_bytes)
esl_fatal( "%s: Error reading T in FM index.\n", argv[0]);
- if(fread(BWT, sizeof(uint8_t), compressed_bytes, fptmp) != compressed_bytes)
+ if(fread(fm_data->BWT, sizeof(uint8_t), compressed_bytes, fptmp) != compressed_bytes)
esl_fatal( "%s: Error reading BWT in FM index.\n", argv[0]);
if(j==0 && fread(SAsamp, sizeof(uint32_t), (size_t)num_SA_samples, fptmp) != (size_t)num_SA_samples)
esl_fatal( "%s: Error reading SA in FM index.\n", argv[0]);
- if(fread(occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fptmp) != (size_t)num_freq_cnts_b)
+ if(fread(fm_data->occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fptmp) != (size_t)num_freq_cnts_b)
esl_fatal( "%s: Error reading occCnts_b in FM index.\n", argv[0]);
- if(fread(occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fptmp) != (size_t)num_freq_cnts_sb)
+ if(fread(fm_data->occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fptmp) != (size_t)num_freq_cnts_sb)
esl_fatal( "%s: Error reading occCnts_sb in FM index.\n", argv[0]);
@@ -736,49 +810,42 @@ main(int argc, char *argv[]) {
esl_fatal( "%s: Error writing terminal location in FM index.\n", argv[0]);
if(fwrite(&seq_offset, sizeof(seq_offset), 1, fp) != 1)
esl_fatal( "%s: Error writing seq_offset in FM index.\n", argv[0]);
+ if(fwrite(&ambig_offset, sizeof(ambig_offset), 1, fp) != 1)
+ esl_fatal( "%s: Error writing ambig_offset in FM index.\n", argv[0]);
if(fwrite(&overlap, sizeof(overlap), 1, fp) != 1)
esl_fatal( "%s: Error writing overlap in FM index.\n", argv[0]);
if(fwrite(&seq_cnt, sizeof(seq_cnt), 1, fp) != 1)
esl_fatal( "%s: Error writing seq_cnt in FM index.\n", argv[0]);
+ if(fwrite(&ambig_cnt, sizeof(ambig_cnt), 1, fp) != 1)
+ esl_fatal( "%s: Error writing ambig_cnt in FM index.\n", argv[0]);
- if(j==0 && fwrite(T, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
+ if(j==0 && fwrite(fm_data->T, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
esl_fatal( "%s: Error writing T in FM index.\n", argv[0]);
- if(fwrite(BWT, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
+ if(fwrite(fm_data->BWT, sizeof(uint8_t), compressed_bytes, fp) != compressed_bytes)
esl_fatal( "%s: Error writing BWT in FM index.\n", argv[0]);
if(j==0 && fwrite(SAsamp, sizeof(uint32_t), (size_t)num_SA_samples, fp) != (size_t)num_SA_samples)
esl_fatal( "%s: Error writing SA in FM index.\n", argv[0]);
- if(fwrite(occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fp) != (size_t)num_freq_cnts_b)
+ if(fwrite(fm_data->occCnts_b, sizeof(uint16_t)*(meta->alph_size), (size_t)num_freq_cnts_b, fp) != (size_t)num_freq_cnts_b)
esl_fatal( "%s: Error writing occCnts_b in FM index.\n", argv[0]);
- if(fwrite(occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fp) != (size_t)num_freq_cnts_sb)
+ if(fwrite(fm_data->occCnts_sb, sizeof(uint32_t)*(meta->alph_size), (size_t)num_freq_cnts_sb, fp) != (size_t)num_freq_cnts_sb)
esl_fatal( "%s: Error writing occCnts_sb in FM index.\n", argv[0]);
}
}
-
- fprintf (stderr, "Number of characters in index: %ld\n", (long)total_char_count);
- fprintf (stderr, "Number of FM-index blocks: %ld\n", (long)meta->block_count);
-
-
fclose(fp);
fclose(fptmp);
- free(T);
- free(BWT);
- free(SA);
+
+ if (fm_data != NULL)
+ fm_FM_destroy(fm_data, TRUE);
+ free(fm_data);
free(SAsamp);
- free(occCnts_b);
free(cnts_b);
- free(occCnts_sb);
free(cnts_sb);
+ free(Tcompressed);
- for (i=0; i<numseqs; i++)
- free(meta->seq_data[i].name);
- free(meta->seq_data);
- free(meta->inv_alph);
- free(meta->alph);
- free(meta);
-
+ fm_metaDestroy(meta);
esl_getopts_Destroy(go);
@@ -799,23 +866,22 @@ main(int argc, char *argv[]) {
ERROR:
/* Deallocate memory. */
if (fp) fclose(fp);
- if (T) free(T);
- if (BWT) free(BWT);
- if (SA) free(SA);
- if (SAsamp) free(SAsamp);
- if (occCnts_b) free(occCnts_b);
- if (cnts_b) free(cnts_b);
- if (occCnts_sb) free(occCnts_sb);
- if (cnts_sb) free(cnts_sb);
-
- if (meta) {
- for (i=0; i<numseqs; i++)
- free(meta->seq_data[i].name);
- free(meta->seq_data);
- free(meta->inv_alph);
- free(meta->alph);
- free(meta);
- }
+ if (fm_data) fm_FM_destroy(fm_data, TRUE);
+ free(fm_data);
+
+ free(SAsamp);
+ free(cnts_b);
+ free(cnts_sb);
+
+ fm_metaDestroy(meta);
+ esl_getopts_Destroy(go);
+
+
+ esl_sqfile_Close(sqfp);
+ esl_alphabet_Destroy(abc);
+ esl_sq_Destroy(sq);
+ if (tmpsq) esl_sq_Destroy(tmpsq);
+ if (block) esl_sq_DestroyBlock(block);
fprintf (stderr, "failure during memory allocation\n");
diff --git a/hmmer/src/modelconfig.c b/hmmer/src/modelconfig.c
index e296027..917d3b1 100644
--- a/hmmer/src/modelconfig.c
+++ b/hmmer/src/modelconfig.c
@@ -140,15 +140,17 @@ p7_ProfileConfig(const P7_HMM *hmm, const P7_BG *bg, P7_PROFILE *gm, int L, int
sc[hmm->abc->Kp-2] = -eslINFINITY; /* nonresidue character */
sc[hmm->abc->Kp-1] = -eslINFINITY; /* missing data character */
for (k = 1; k <= hmm->M; k++) {
- for (x = 0; x < hmm->abc->K; x++)
- sc[x] = log(hmm->mat[k][x] / bg->f[x]);
+ for (x = 0; x < hmm->abc->K; x++)
+ sc[x] = log((double)hmm->mat[k][x] / bg->f[x]);
+
esl_abc_FExpectScVec(hmm->abc, sc, bg->f);
+
for (x = 0; x < hmm->abc->Kp; x++) {
rp = gm->rsc[x] + k * p7P_NR;
rp[p7P_MSC] = sc[x];
}
}
-
+
/* Insert emission scores */
/* SRE, Fri Dec 5 08:41:08 2008: We currently hardwire insert scores
* to 0, i.e. corresponding to the insertion emission probabilities
@@ -1120,8 +1122,8 @@ profile_local_endpoints(ESL_RANDOMNESS *r, P7_HMM *core, P7_PROFILE *gm, ESL_SQ
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/modelstats.c b/hmmer/src/modelstats.c
index 75212f8..3458f50 100644
--- a/hmmer/src/modelstats.c
+++ b/hmmer/src/modelstats.c
@@ -1,7 +1,7 @@
/* Miscellaneous summary statistics calculated for HMMs and profiles.
*
* SRE, Fri May 4 11:43:20 2007 [Janelia]
- * SVN $Id: modelstats.c 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -256,140 +256,10 @@ p7_hmm_CompositionKLDist(P7_HMM *hmm, P7_BG *bg, float *ret_KL, float **opt_avp)
-
-/* Function: p7_hmm_GetSimpleRepeats()
- * Synopsis: Print locations of regions identified as containing
- * simple tandem repeats
- *
- * Purpose: Scan the model <hmm>, searching for regions with simple
- * tandem repeats, and return their locations in the model
- * using <ranges>.
- *
- * Tests for repeats of up to length <maxK>, and requires
- * at least <min_rep> consecutive (ungapped) instances,
- * where the average relative entropy (depends on <hmm>
- * and <bg>) of the length-K repeat must exceed <relent>
- * bits.
- *
- * Basic idea: build a circular list for each length
- * 1..maxK. Suppose we're dealing with list of length
- * K=3. Then node 1 will count the number of times
- * each character is observed in the model's consensus
- * at positions n*3+1 over the most recent k*min_rep
- * states. Once k*min_rep states have been added to the
- * node counts, compute avg relative entropy, and compare
- * to threshold. If passes, that's a repeat seed (see
- * below), otherwise, remove the count associated with
- * position 1, and add the next position. Repeat,
- * removing count for position 2 and adding for
- * k*min_rep+1, then removing 3 and adding k*min_rep+2,
- * and so on.
- *
- * Once complete, ignore long seeds that overlap short
- * seeds, then for each seed, attempt to extend by lining
- * up consecutive length-K blocks on either side of the
- * seed, allowing up to length-2 indels.
- *
- *
- * Returns: <eslOK> on success.
- *
- * Throws: <eslEMEM> on allocation error.
- */
-
-int
-p7_hmm_GetSimpleRepeats(P7_HMM *hmm, int maxK, int min_rep, int min_length, float relent_thresh, P7_HMM_WINDOWLIST *ranges)
-{
- int K = hmm->abc->K;
- int i, j, k, n, x;
- int **counts;
- int pos; // where we are in the circular list
- int status;
- float relent;
- P7_BG *bg;
- int reps;
-
-
- // can't hope to find a repeat under this definition
- if (hmm->M < min_rep)
- return eslOK;
-
- if ((bg = p7_bg_Create(hmm->abc)) == NULL) esl_fatal("failed to create null model");
-
- // for each circular-list length
- for (n=2; n<=maxK; n++) {
-
- reps = min_rep;
- //go to the next # of reps required to reach min-length with equal # chars from each node
- if (n*reps < min_length) {
- reps = ceil(min_length/n);
- }
-
-
- ESL_ALLOC(counts, n*sizeof(int*)) ; // there are n nodes in the list
-
- //establish count vector for each node
- for (i=0; i<n; i++) {
- ESL_ALLOC(counts[i], K*sizeof(int));
- esl_vec_ISet(counts[i], K, 0);
- }
-
- pos = 0;
- //for each model position
- for (i = 1; i <= hmm->M; i++) {
- // add to count vector
- x = esl_vec_FArgMax(hmm->mat[i], hmm->abc->K);
- counts[pos][x]++; //TODO: could use emission probabilities instead, using hmm->mat[k]
- pos++;
- pos %= n;
-
- //if we've accrued enough counts, check relent
- if (i >= n*reps ) {
- //that means go through each node, computing relent, add them up, then divide by # nodes
- relent = 0.0;
- for (j=0; j<n; j++) { //for each node
-
- for (k=0; k<K; k++) {
- float p = (float)(counts[j][k])/(float)reps;
- float logodds = log((p+.000000001) / bg->f[k]); //natural log add that tiny amount to avoid log-of-zero trouble ... just means the definition of 0*(log(0)) = 0
- relent += p * logodds / log(2);
- }
- }
-
- if (relent/n > relent_thresh) {//avg relent
- //printf ("%d : %.2f (%d-mer)\n", i, rel_ent, n);
- p7_hmmwindow_new(ranges, 0, i, 0, 0, n*reps, relent/n, 0);
- }
-
- //remove the first character of the preceding (n*min_rep), since it'll be replaced with a new one
- x = esl_vec_FArgMax(hmm->mat[i - (n*reps) + 1], hmm->abc->K);
- counts[pos][x]--;
- }
-
- }
-
- for (i=0; i<n; i++)
- if (counts[i] != NULL) free(counts[i]) ;
- free(counts);
-
- }
-
- return eslOK;
-
- ERROR:
-
- if (counts != NULL) {
- for (i=0; i<n; i++)
- if (counts[i] != NULL) free(counts[i]) ;
- free(counts);
- }
- return status;
-}
-
-
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/mpisupport.c b/hmmer/src/mpisupport.c
index 42cf268..65bdba3 100644
--- a/hmmer/src/mpisupport.c
+++ b/hmmer/src/mpisupport.c
@@ -499,7 +499,7 @@ p7_profile_MPISend(P7_PROFILE *gm, int dest, int tag, MPI_Comm comm, char **buf,
if ((status = esl_mpi_PackOptSize(gm->name, -1, MPI_CHAR, comm, &sz))!= eslOK) goto ERROR; n += sz; /* name (string) */
if ((status = esl_mpi_PackOptSize(gm->acc, -1, MPI_CHAR, comm, &sz))!= eslOK) goto ERROR; n += sz; /* acc (string) */
if ((status = esl_mpi_PackOptSize(gm->desc, -1, MPI_CHAR, comm, &sz))!= eslOK) goto ERROR; n += sz; /* desc (string) */
- if (MPI_Pack_size( (M+2), MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz*3; /* rf,cs,consensus */
+ if (MPI_Pack_size( (M+2), MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz*4; /* rf,cs,mm,consensus */
if (MPI_Pack_size( p7_NEVPARAM, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* evparam */
if (MPI_Pack_size( p7_NCUTOFFS, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* Pfam cutoffs */
}
@@ -978,7 +978,6 @@ p7_tophits_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc,
if ((status = p7_tophits_CreateNextHit(th, &hit)) != eslOK) goto ERROR;
if ((status = p7_hit_MPIRecv(source, tag, comm, buf, nalloc, hit)) != eslOK) goto ERROR;
}
-
*ret_th = th;
return eslOK;
@@ -1062,12 +1061,10 @@ p7_hit_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc, P7_H
if ((status = p7_hit_MPIUnpack(*buf, n, &pos, comm, hit)) != eslOK) goto ERROR;
ESL_ALLOC(hit->dcl, sizeof(P7_DOMAIN) * hit->ndom);
-
/* loop through all of the hits sent */
for (inx = 0; inx < hit->ndom; ++inx) {
if ((status = p7_dcl_MPIRecv(source, tag, comm, buf, nalloc, hit->dcl + inx)) != eslOK) goto ERROR;
}
-
return eslOK;
ERROR:
@@ -1261,8 +1258,9 @@ p7_dcl_MPIPackSize(P7_DOMAIN *dcl, MPI_Comm comm, int *ret_n)
if (MPI_Pack_size(1, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* lnP */
if (MPI_Pack_size(2, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* thresholds */
+
/* P7_ALIDISPLAY data */
- if (MPI_Pack_size(16, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* offset info */
+ if (MPI_Pack_size(17, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* offset info */
if (MPI_Pack_size(3, MPI_LONG, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* sequence info */
if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* string pool size */
if (MPI_Pack_size(ad->memsize, MPI_CHAR, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* string pool */
@@ -1390,6 +1388,8 @@ p7_dcl_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, P7_DOMAIN *dcl)
if (MPI_Unpack(buf, n, pos, &ad->L, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &ad->memsize, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ dcl->scores_per_pos = NULL; /*this field is used for nhmmer, which currently doesn't have MPI support */
+
/* allocate the string pools for the alignments */
ESL_ALLOC(ad->mem, ad->memsize);
if (MPI_Unpack(buf, n, pos, ad->mem, ad->memsize, MPI_CHAR, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
@@ -1750,15 +1750,15 @@ int main(void) { return 0; }
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: mpisupport.c 4085 2012-06-18 14:33:04Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/mpisupport.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/nhmmer.c b/hmmer/src/nhmmer.c
index bb93f58..e1ebcd0 100644
--- a/hmmer/src/nhmmer.c
+++ b/hmmer/src/nhmmer.c
@@ -18,6 +18,7 @@
#include "esl_stopwatch.h"
+
#ifdef HMMER_THREADS
#include <unistd.h>
#include "esl_threads.h"
@@ -26,7 +27,6 @@
#include "hmmer.h"
-
/* set the max residue count to 1/4 meg when reading a block */
#ifdef P7_IMPL_DUMMY_INCLUDED
#include "esl_vectorops.h"
@@ -39,15 +39,22 @@ typedef struct {
#ifdef HMMER_THREADS
ESL_WORK_QUEUE *queue;
#endif /*HMMER_THREADS*/
- P7_BG *bg; /* null model */
+ P7_BG *bg; /* null model */
P7_PIPELINE *pli; /* work pipeline */
P7_TOPHITS *th; /* top hit results */
P7_OPROFILE *om; /* optimized query profile */
- FM_CFG *fm_cfg; /* global data for FM-index for fast MSV */
- P7_MSVDATA *msvdata; /* hmm-specific data for FM-index for fast MSV */
+ FM_CFG *fm_cfg; /* global data for FM-index for fast SSV */
+ P7_SCOREDATA *scoredata; /* hmm-specific data used by nhmmer */
} WORKER_INFO;
typedef struct {
+ FM_DATA *fmf;
+ FM_DATA *fmb;
+ int active; //TRUE is worker is supposed to work on the contents, FALSE otherwise
+} FM_THREAD_INFO;
+
+
+typedef struct {
int id; /* internal sequence ID */
int length; /* length of sequence */
} ID_LENGTH;
@@ -79,21 +86,21 @@ static ESL_OPTIONS options[] = {
{ "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 },
/* Control of output */
{ "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
- { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of all hits to file <s>", 2 },
- { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of hits to file <s>", 2 },
- { "--dfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits to file, in Dfam format <s>", 2 },
- { "--longinsertout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of long inserts to file <s>", 2 },
- { "--insertlength", eslARG_INT, "40", NULL, "n>=5", NULL, "--longinsertout", NULL, "min length of insert printed to --longinsertout", 2 },
-
+ { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of all hits to file <f>", 2 },
+ { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of hits to file <f>", 2 },
+ { "--dfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits to file, in Dfam format <f>", 2 },
+ { "--aliscoresout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save scores for each position in each alignment to <f>", 2 },
+ { "--hmmout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "if input is alignment(s), write produced hmms to file <f>", 2 },
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
{ "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 },
/* Control of scoring system */
- { "--popen", eslARG_REAL, "0.02", NULL, "0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 },
- { "--pextend", eslARG_REAL, "0.4", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 },
-/* { "--mx", eslARG_STRING, "BLOSUM62", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 3 },*/
-/* { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file <f>", 3 },*/
+ { "--singlemx", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "", "use substitution score matrix w/ single-sequence MSA-format inputs", 3 },
+ { "--popen", eslARG_REAL, "0.03125",NULL,"0<=x<0.5",NULL, NULL, NULL, "gap open probability", 3 },
+ { "--pextend", eslARG_REAL, "0.75", NULL, "0<=x<1", NULL, NULL, NULL, "gap extend probability", 3 },
+ { "--mx", eslARG_STRING, "DNA1", NULL, NULL, NULL, NULL, "--mxfile", "substitution score matrix choice (of some built-in matrices)", 3 },
+ { "--mxfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "--mx", "read substitution score matrix from file <f>", 3 },
/* Control of reporting thresholds */
{ "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report sequences <= this E-value threshold in output", 4 },
{ "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report sequences >= this score threshold in output", 4 },
@@ -105,52 +112,68 @@ static ESL_OPTIONS options[] = {
{ "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 },
{ "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 },
/* Control of acceleration pipeline */
- { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 },
- { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "Stage 1 (MSV) threshold: promote hits w/ P <= F1", 7 },
- { "--F2", eslARG_REAL, "1e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 },
- { "--F3", eslARG_REAL, "1e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 },
- { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 },
- { "--B1", eslARG_INT, "110", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (MSV)", 7 },
- { "--B2", eslARG_INT, "240", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Vit)", 7 },
- { "--B3", eslARG_INT, "1000", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Fwd)", 7 },
- /* Control of boundary picking based on aligned posterior probability */
- { "--show_app", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "", "Show aligned-posterior-probability (APP) line in tabular output", 9 },
- { "--app_hi", eslARG_REAL, "0.95", NULL, NULL, NULL, NULL, "", "Set aligned-posterior-probability 'H' threshold", 9 },
- { "--app_med", eslARG_REAL, "0.85", NULL, NULL, NULL, NULL, "", "Set aligned-posterior-probability 'M' threshold (also hq_start/end)", 9 },
- { "--app_lo", eslARG_REAL, "0.75", NULL, NULL, NULL, NULL, "", "Set aligned-posterior-probability 'L' threshold", 9 },
+ { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 },
+ { "--F1", eslARG_REAL, /*set below*/NULL, NULL, NULL, NULL, NULL, "--max", "Stage 1 (SSV) threshold: promote hits w/ P <= F1", 7 },
+ { "--F2", eslARG_REAL, "3e-3", NULL, NULL, NULL, NULL, "--max", "Stage 2 (Vit) threshold: promote hits w/ P <= F2", 7 },
+ { "--F3", eslARG_REAL, "3e-5", NULL, NULL, NULL, NULL, "--max", "Stage 3 (Fwd) threshold: promote hits w/ P <= F3", 7 },
+ { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 },
+
+ /* Selecting the alphabet rather than autoguessing it */
+ { "--dna", eslARG_NONE, FALSE, NULL, NULL, "--rna", NULL, NULL, "input alignment is DNA sequence data", 8 },
+ { "--rna", eslARG_NONE, FALSE, NULL, NULL, "--dna", NULL, NULL, "input alignment is RNA sequence data", 8 },
+#if defined (p7_IMPL_SSE)
/* Control of FM pruning/extension */
- { "--fm_msv_length", eslARG_INT, "70", NULL, NULL, NULL, NULL, NULL, "max length used when extending seed for MSV", 8 },
- { "--fm_max_depth", eslARG_INT, "16", NULL, NULL, NULL, NULL, NULL, "seed length at which bit threshold must be met", 8 },
- { "--fm_max_neg_len", eslARG_INT, "4", NULL, NULL, NULL, NULL, NULL, "maximum number consecutive negative scores in seed", 8 },
- { "--fm_req_pos", eslARG_INT, "5", NULL, NULL, NULL, NULL, NULL, "minimum number consecutive positive scores in seed" , 8 },
- { "--fm_sc_ratio", eslARG_REAL, "0.45", NULL, NULL, NULL, NULL, NULL, "seed must maintain this bit ratio from one of two ends", 8 },
- { "--fm_max_scthresh", eslARG_REAL, "10.5", NULL, NULL, NULL, NULL, NULL, "max total bits required in seed of length fm_max_depth", 8 },
+ { "--seed_max_depth", eslARG_INT, "15", NULL, NULL, NULL, NULL, NULL, "seed length at which bit threshold must be met", 9 },
+ { "--seed_sc_thresh", eslARG_REAL, "15", NULL, NULL, NULL, NULL, NULL, "Default req. score for FM seed (bits)", 9 },
+ { "--seed_sc_density", eslARG_REAL, "0.8", NULL, NULL, NULL, NULL, NULL, "seed must maintain this bit density from one of two ends", 9 },
+ { "--seed_drop_max_len", eslARG_INT, "4", NULL, NULL, NULL, NULL, NULL, "maximum run length with score under (max - [fm_drop_lim])", 9 },
+ { "--seed_drop_lim", eslARG_REAL, "0.3", NULL, NULL, NULL, NULL, NULL, "in seed, max drop in a run of length [fm_drop_max_len]", 9 },
+ { "--seed_req_pos", eslARG_INT, "5", NULL, NULL, NULL, NULL, NULL, "minimum number consecutive positive scores in seed" , 9 },
+ { "--seed_consens_match", eslARG_INT, "11", NULL, NULL, NULL, NULL, NULL, "<n> consecutive matches to consensus will override score threshold" , 9 },
+ { "--seed_ssv_length", eslARG_INT, "70", NULL, NULL, NULL, NULL, NULL, "length of window around FM seed to get full SSV diagonal", 9 },
+#endif
/* Other options */
- { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target <seqdb> is in format <s>: no autodetection", 12 },
+ { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target <seqdb> is in format <s>", 12 },
+ { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert query <seqfile> is in format <s>", 12 },
{ "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 },
- { "--usenull3", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--nonull2", "also use null3 for biased composition score corrections", 12 },
- { "--usenull3w", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--nonull2", "also use windowed-null3 for bias score corrections", 12 },
- { "--null3wlen", eslARG_INT, "20", NULL, "n>=10", NULL, "--usenull3w", NULL, "width on either side of position to use for windowed-null3", 12 },
{ "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set database size (Megabases) to <x> for E-value calculations", 12 },
{ "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 12 },
{ "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 12 },
- { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length - essentially max expected hit length ", 12 },
+ { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length - essentially max expected hit length" , 12 },
{ "--block_length", eslARG_INT, NULL, NULL, "n>=50000", NULL, NULL, NULL, "length of blocks read from target database (threaded) ", 12 },
- { "--toponly", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--bottomonly", "only search the top strand", 12 },
- { "--bottomonly", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--toponly", "only search the bottom strand", 12 },
+ { "--watson", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--crick", "only search the top strand", 12 },
+ { "--crick", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--watson", "only search the bottom strand", 12 },
+
+
+ /* Restrict search to subset of database - hidden because these flags are
+ * (a) currently for internal use
+ * (b) probably going to change
+ */
+ { "--restrictdb_stkey", eslARG_STRING, "0", NULL, NULL, NULL, NULL, NULL, "Search starts at the sequence with name <s>", 99 },
+ { "--restrictdb_n",eslARG_INT, "-1", NULL, NULL, NULL, NULL, NULL, "Search <j> target sequences (starting at --restrictdb_stkey)", 99 },
+ { "--ssifile", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "restrictdb_x values require ssi file. Override default to <s>", 99 },
+
+ /* stage-specific window length used for bias composition estimate,
+ * hidden because they are confusing/expert options. May drag them out
+ * into the daylight eventually
+ */
+ { "--B1", eslARG_INT, "110", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (SSV)", 99 },
+ { "--B2", eslARG_INT, "240", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Vit)", 99 },
+ { "--B3", eslARG_INT, "1000", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Fwd)", 99 },
+
+ /* expert-only option (for now), hidden from view, for altering bg probs. May not keep. */
+ { "--bgfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "override default background probs with values in file <f>", 99 },
/* Not used, but retained because esl option-handling code errors if it isn't kept here. Placed in group 99 so it doesn't print to help*/
{ "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "Not used", 99 },
{ "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "Not used", 99 },
{ "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "Not used", 99 },
- { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "Not used", 99 },
- { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "Not used", 99 },
-/* will eventually bring these back, but store in group 99 for now, so they don't print to help*/
- { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert query <seqfile> is in format <s>: no autodetection", 99 },
+ { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "Not used", 99 },
+ { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "Not used", 99 },
@@ -168,33 +191,43 @@ static ESL_OPTIONS options[] = {
*/
struct cfg_s {
char *dbfile; /* target sequence database file */
- char *hmmfile; /* query HMM file */
+ char *queryfile; /* query HMM file */
+ int qfmt;
int do_mpi; /* TRUE if we're doing MPI parallelization */
int nproc; /* how many MPI processes, total */
int my_rank; /* who am I, in 0..nproc-1 */
-};
-//static char usage[] = "[options] <query hmmfile|alignfile> <target seqfile>";
-//static char banner[] = "search a DNA model or alignment against a DNA database";
-static char usage[] = "[options] <hmmfile> <seqdb>";
-static char banner[] = "search a DNA model against a DNA database";
+ char *firstseq_key; /* name of the first sequence in the restricted db range */
+ int n_targetseq; /* number of sequences in the restricted range */
+};
+static char usage[] = "[options] <query hmmfile|alignfile> <target seqfile>";
+static char banner[] = "search a DNA model or alignment against a DNA database";
+//static char usage[] = "[options] <hmmfile> <seqdb>";
+//static char banner[] = "search a DNA model against a DNA database";
-static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg);
-static int serial_loop (WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp);
-static int serial_loop_FM(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp);
+static int serial_master (ESL_GETOPTS *go, struct cfg_s *cfg);
+static int serial_loop (WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs /*, ESL_STOPWATCH *ssv_watch_master, ESL_STOPWATCH *postssv_watch_master, ESL_STOPWATCH *watch_slave*/);
+#if defined (p7_IMPL_SSE)
+ static int serial_loop_FM (WORKER_INFO *info, ESL_SQFILE *dbfp /*, ESL_STOPWATCH *ssv_watch_master, ESL_STOPWATCH *postssv_watch_master, ESL_STOPWATCH *watch_slave*/);
+#endif
#ifdef HMMER_THREADS
#define BLOCK_SIZE 1000
-static int thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp);
+static int thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs);
static void pipeline_thread(void *arg);
+#if defined (p7_IMPL_SSE)
+static int thread_loop_FM(WORKER_INFO *info, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp);
+static void pipeline_thread_FM(void *arg);
+#endif
+
#endif /*HMMER_THREADS*/
static int
-process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmfile, char **ret_seqfile)
+process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_queryfile, char **ret_seqfile)
{
ESL_GETOPTS *go = esl_getopts_Create(options);
int status;
@@ -214,8 +247,8 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmf
if (puts("\nOptions directing output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
esl_opt_DisplayHelp(stdout, go, 2, 2, 100);
-// if (puts("\nOptions controlling scoring system:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
-// esl_opt_DisplayHelp(stdout, go, 3, 2, 80);
+ if (puts("\nOptions controlling scoring system:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 3, 2, 100);
if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
esl_opt_DisplayHelp(stdout, go, 4, 2, 100);
@@ -229,11 +262,14 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmf
if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
esl_opt_DisplayHelp(stdout, go, 7, 2, 100);
- if (puts("\nOptions controlling APP-based trimming thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
- esl_opt_DisplayHelp(stdout, go, 9, 2, 100);
+ if (puts("\nOptions for selecting query alphabet rather than guessing it:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 8, 2, 80);
- if (puts("\nControl of FM pruning and extension:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
- esl_opt_DisplayHelp(stdout, go, 8, 2, 100);
+// if (puts("\nOptions for restricting search to a range of target database sequences:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+// esl_opt_DisplayHelp(stdout, go, 8, 2, 100);
+
+ if (puts("\nOptions controlling seed search heuristic:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 9, 2, 100);
if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
esl_opt_DisplayHelp(stdout, go, 12, 2, 100);
@@ -242,12 +278,12 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmf
}
if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
- if ((*ret_hmmfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get <hmmfile> argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
- if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get <seqdb> argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if ((*ret_queryfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get <queryfile> argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get <seqdb> argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
/* Validate any attempted use of stdin streams */
- if (strcmp(*ret_hmmfile, "-") == 0 && strcmp(*ret_seqfile, "-") == 0)
- { if (puts("Either <hmmfile> or <seqdb> may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if (strcmp(*ret_queryfile, "-") == 0 && strcmp(*ret_seqfile, "-") == 0)
+ { if (puts("Either <query hmmfile|alignfile> or <seqdb> may be '-' (to read from stdin), but not both.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
*ret_go = go;
return eslOK;
@@ -266,80 +302,81 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmf
}
static int
-output_header(FILE *ofp, const ESL_GETOPTS *go, char *hmmfile, char *seqfile)
+output_header(FILE *ofp, const ESL_GETOPTS *go, char *queryfile, char *seqfile, int ncpus)
{
p7_banner(ofp, go->argv[0], banner);
- if (fprintf(ofp, "# query HMM file: %s\n", hmmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# query file: %s\n", queryfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (fprintf(ofp, "# target sequence database: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of all hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--dfamtblout") && fprintf(ofp, "# hits output in Dfam format: %s\n", esl_opt_GetString(go, "--dfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--longinsertout") && fprintf(ofp, "# long inserts output: %s\n", esl_opt_GetString(go, "--longinsertout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--insertlength") && fprintf(ofp, "# long inserts minimum length: %d\n", esl_opt_GetInteger(go, "--insertlength")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of all hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--dfamtblout") && fprintf(ofp, "# hits output in Dfam format: %s\n", esl_opt_GetString(go, "--dfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--aliscoresout") && fprintf(ofp, "# alignment scores output: %s\n", esl_opt_GetString(go, "--aliscoresout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--hmmout") && fprintf(ofp, "# hmm output: %s\n", esl_opt_GetString(go, "--hmmout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--singlemx") && fprintf(ofp, "# Use score matrix for 1-seq MSAs: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--popen") && fprintf(ofp, "# gap open probability: %f\n", esl_opt_GetReal (go, "--popen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--pextend") && fprintf(ofp, "# gap extend probability: %f\n", esl_opt_GetReal (go, "--pextend")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
-//if (esl_opt_IsUsed(go, "--mx") && fprintf(ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
-//if (esl_opt_IsUsed(go, "--mxfile") && fprintf(ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--mx") && fprintf(ofp, "# subst score matrix (built-in): %s\n", esl_opt_GetString (go, "--mx")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--mxfile") && fprintf(ofp, "# subst score matrix (file): %s\n", esl_opt_GetString (go, "--mxfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# sequence reporting threshold: E-value <= %g\n", esl_opt_GetReal (go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# sequence reporting threshold: score >= %g\n", esl_opt_GetReal (go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--domE") && fprintf(ofp, "# domain reporting threshold: E-value <= %g\n", esl_opt_GetReal (go, "--domE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--domT") && fprintf(ofp, "# domain reporting threshold: score >= %g\n", esl_opt_GetReal (go, "--domT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# sequence inclusion threshold: E-value <= %g\n", esl_opt_GetReal (go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# sequence inclusion threshold: score >= %g\n", esl_opt_GetReal (go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--incdomE") && fprintf(ofp, "# domain inclusion threshold: E-value <= %g\n", esl_opt_GetReal (go, "--incdomE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--incdomT") && fprintf(ofp, "# domain inclusion threshold: score >= %g\n", esl_opt_GetReal (go, "--incdomT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# SSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--B1") && fprintf(ofp, "# biased comp MSV window len: %d\n", esl_opt_GetInteger(go, "--B1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--B1") && fprintf(ofp, "# biased comp SSV window len: %d\n", esl_opt_GetInteger(go, "--B1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--B2") && fprintf(ofp, "# biased comp Viterbi window len: %d\n", esl_opt_GetInteger(go, "--B2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--B3") && fprintf(ofp, "# biased comp Forward window len: %d\n", esl_opt_GetInteger(go, "--B3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
-
- if (esl_opt_IsUsed(go, "--show_app") && fprintf(ofp, "# Show APP line\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--app_hi") && fprintf(ofp, "# APP 'H': <= %g\n", esl_opt_GetReal(go, "--app_hi")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--app_med") && fprintf(ofp, "# APP 'M', (hq start/end base): <= %g\n", esl_opt_GetReal(go, "--app_med")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--app_lo") && fprintf(ofp, "# APP 'L': <= %g\n", esl_opt_GetReal(go, "--app_lo")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
-
- if (esl_opt_IsUsed(go, "--fm_msv_length") && fprintf(ofp, "# seed extension max length: %d\n", esl_opt_GetInteger(go, "--fm_msv_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--fm_max_depth") && fprintf(ofp, "# seed length: %d\n", esl_opt_GetInteger(go, "--fm_max_depth")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--fm_max_neg_len") && fprintf(ofp, "# max consec neg score in seed: %d\n", esl_opt_GetInteger(go, "--fm_max_neg_len")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--fm_req_pos") && fprintf(ofp, "# min consec pos score in seed: %d\n", esl_opt_GetInteger(go, "--fm_req_pos")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--fm_sc_ratio") && fprintf(ofp, "# min seed bit ratio: %.2f\n", esl_opt_GetReal(go, "--fm_sc_ratio")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--fm_max_scthresh") && fprintf(ofp, "# max bits in seed: %.2f\n", esl_opt_GetReal(go, "--fm_max_scthresh")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--bgfile") && fprintf(ofp, "# file with custom bg probs: %s\n", esl_opt_GetString(go, "--bgfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "--dna") && fprintf(ofp, "# input query is asserted as: DNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--rna") && fprintf(ofp, "# input query is asserted as: RNA\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+#if defined (p7_IMPL_SSE)
+ if (esl_opt_IsUsed(go, "--seed_max_depth") && fprintf(ofp, "# FM Seed length: %d\n", esl_opt_GetInteger(go, "--seed_max_depth")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_sc_thresh") && fprintf(ofp, "# FM score threshhold (bits): %g\n", esl_opt_GetReal(go, "--seed_sc_thresh")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_sc_density") && fprintf(ofp, "# FM score density (bits/pos): %g\n", esl_opt_GetReal(go, "--seed_sc_density")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_drop_max_len") && fprintf(ofp, "# FM max neg-growth length: %d\n", esl_opt_GetInteger(go, "--seed_drop_max_len")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_drop_lim") && fprintf(ofp, "# FM max run drop: %g\n", esl_opt_GetReal(go, "--seed_drop_lim")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_req_pos") && fprintf(ofp, "# FM req positive run length: %d\n", esl_opt_GetInteger(go, "--seed_req_pos")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_consens_match") && fprintf(ofp, "# FM consec consensus match req: %d\n", esl_opt_GetInteger(go, "--seed_consens_match")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed_ssv_length") && fprintf(ofp, "# FM len used for Vit window: %d\n", esl_opt_GetInteger(go, "--seed_ssv_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+#endif
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") && fprintf(ofp, "# Restrict db to start at seq key: %s\n", esl_opt_GetString(go, "--restrictdb_stkey")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--restrictdb_n") && fprintf(ofp, "# Restrict db to # target seqs: %d\n", esl_opt_GetInteger(go, "--restrictdb_n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--ssifile") && fprintf(ofp, "# Override ssi file to: %s\n", esl_opt_GetString(go, "--ssifile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--usenull3") && fprintf(ofp, "# null3 bias corrections: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--usenull3w") && fprintf(ofp, "# windowed-null3 bias corrections: width=%d\n", esl_opt_GetInteger(go, "--null3wlen")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
-
- if (esl_opt_IsUsed(go, "--toponly") && fprintf(ofp, "# search only top strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (esl_opt_IsUsed(go, "--bottomonly") && fprintf(ofp, "# search only bottom strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--watson") && fprintf(ofp, "# search only top strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--crick") && fprintf(ofp, "# search only bottom strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# database size is set to: %.1f Mb\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--seed")) {
if (esl_opt_GetInteger(go, "--seed") == 0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
-//if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# query <seqfile> format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# query <seqfile> format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--tformat") && fprintf(ofp, "# targ <seqfile> format asserted: %s\n", esl_opt_GetString(go, "--tformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--w_beta") && fprintf(ofp, "# window length beta value: %g\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--w_length") && fprintf(ofp, "# window length : %d\n", esl_opt_GetInteger(go, "--w_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--block_length")&&fprintf(ofp, "# block length : %d\n", esl_opt_GetInteger(go, "--block_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- #ifdef HMMER_THREADS
- if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+#ifdef HMMER_THREADS
+ //if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# number of worker threads: %d\n", ncpus) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
#endif
if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
return eslOK;
@@ -359,13 +396,43 @@ main(int argc, char **argv)
/* Initialize what we can in the config structure (without knowing the alphabet yet)
*/
- cfg.hmmfile = NULL;
+ cfg.queryfile = NULL;
cfg.dbfile = NULL;
+ cfg.qfmt = eslMSAFILE_UNKNOWN;
cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */
cfg.nproc = 0; /* this gets reset below, if we init MPI */
cfg.my_rank = 0; /* this gets reset below, if we init MPI */
- process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.dbfile);
+ cfg.firstseq_key = NULL;
+ cfg.n_targetseq = -1;
+
+ process_commandline(argc, argv, &go, &cfg.queryfile, &cfg.dbfile);
+
+ if (esl_opt_IsOn(go, "--qformat")) {
+ if (strcasecmp("fasta", esl_opt_GetString(go, "--qformat")) == 0)
+ cfg.qfmt = eslSQFILE_FASTA;
+ else
+ cfg.qfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--qformat"));
+
+ if (cfg.qfmt == eslMSAFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat"));
+ }
+
+
+#ifndef eslAUGMENT_SSI
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n") || esl_opt_IsUsed(go, "--ssifile") )
+ p7_Fail("Unable to use range-control options unless an SSI index file is available. See 'esl_sfetch --index'\n");
+#else
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") )
+ if ((cfg.firstseq_key = esl_opt_GetString(go, "--restrictdb_stkey")) == NULL) p7_Fail("Failure capturing --restrictdb_stkey\n");
+
+ if (esl_opt_IsUsed(go, "--restrictdb_n") )
+ cfg.n_targetseq = esl_opt_GetInteger(go, "--restrictdb_n");
+
+ if ( cfg.n_targetseq != -1 && cfg.n_targetseq < 1 )
+ p7_Fail("--restrictdb_n must be >= 1\n");
+
+#endif
+
status = serial_master(go, &cfg);
@@ -373,9 +440,11 @@ main(int argc, char **argv)
return status;
}
+
+
/* serial_master()
* The serial version of hmmsearch.
- * For each query HMM in <hmmfile> search the database for hits.
+ * For each query HMM in <queryfile> search the database for hits.
*
* A master can only return if it's successful. All errors are handled
* immediately and fatally with p7_Fail().
@@ -383,58 +452,75 @@ main(int argc, char **argv)
static int
serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
{
- FILE *ofp = stdout; /* results output file (-o) */
- FILE *afp = NULL; /* alignment output file (-A) */
- FILE *tblfp = NULL; /* output stream for tabular (--tblout) */
- FILE *dfamtblfp = NULL; /* output stream for tabular Dfam format (--dfamtblout) */
- FILE *inserttblfp = NULL; /* output stream for table of long inserts (--longinsertout) */
-
-
- P7_HMMFILE *hfp = NULL; /* open input HMM file */
- P7_HMM *hmm = NULL; /* one HMM query */
- P7_MSVDATA *msvdata = NULL;
- /*either the two above or ones below will be used*/
- //int qhformat = eslSQFILE_UNKNOWN; /* format of qfile */
- //ESL_SQFILE *qfp = NULL; /* open qfile */
- //ESL_SQ *qsq = NULL; /* query sequence */
-
- //int dbformat = eslSQFILE_FMINDEX; // eslSQFILE_UNKNOWN; /* format of dbfile */
- int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */
- ESL_SQFILE *dbfp = NULL; /* open input sequence file */
-
- ESL_ALPHABET *abc = NULL; /* digital alphabet */
+ FILE *ofp = stdout; /* results output file (-o) */
+ FILE *afp = NULL; /* alignment output file (-A) */
+ FILE *tblfp = NULL; /* output stream for tabular (--tblout) */
+ FILE *dfamtblfp = NULL; /* output stream for tabular Dfam format (--dfamtblout) */
+ FILE *aliscoresfp = NULL; /* output stream for alignment scores (--aliscoresout) */
+
+ /*Some fraction of these will be used, depending on what sort of input is used for the query*/
+ P7_HMMFILE *hfp = NULL; /* open input HMM file */
+ P7_HMM *hmm = NULL; /* one HMM query */
+ ESL_MSAFILE *qfp_msa = NULL; /* open query alifile */
+ ESL_SQFILE *qfp_sq = NULL; /* open query seqfile */
+ ESL_SQ *qsq = NULL; /* query sequence */
+ FILE *hmmoutfp = NULL; /* output stream for hmms (--hmmout), only if input is an alignment file */
+ char *hmmfile = NULL; /* file to write HMM to */
+
+ int dbformat = eslSQFILE_UNKNOWN; /* format of dbfile */
+ ESL_SQFILE *dbfp = NULL; /* open input sequence file */
+
+ P7_BG *bg_manual = NULL;
+
+ ESL_ALPHABET *abc = NULL; /* digital alphabet */
ESL_STOPWATCH *w;
- //int seed;
- int textw = 0;
- int nquery = 0;
- int status = eslOK;
+ P7_SCOREDATA *scoredata = NULL;
+
+ int textw = 0;
+ int nquery = 0;
+ int status = eslOK;
int qhstatus = eslOK;
- int sstatus = eslOK;
+ int sstatus = eslOK;
int i;
- double resCnt = 0;
+ double resCnt = 0;
/* used to keep track of the lengths of the sequences that are processed */
ID_LENGTH_LIST *id_length_list = NULL;
-
/* these variables are only used if db type is FM-index*/
- void *fm_cfg_mem = NULL; //used to ensure cfg is 16-byte aligned, which matters since, for sse/vmx implementations, elements within cfg need to be aligned thusly
FM_CFG *fm_cfg = NULL;
FM_METADATA *fm_meta = NULL;
fpos_t fm_basepos;
/* end FM-index-specific variables */
+
int ncpus = 0;
int infocnt = 0;
WORKER_INFO *info = NULL;
#ifdef HMMER_THREADS
ESL_SQ_BLOCK *block = NULL;
+ FM_THREAD_INFO *fminfo = NULL;
ESL_THREADS *threadObj= NULL;
ESL_WORK_QUEUE *queue = NULL;
#endif
char errbuf[eslERRBUFSIZE];
double window_beta = -1.0 ;
int window_length = -1;
+
+ P7_BUILDER *builder = NULL;
+ ESL_MSA *msa = NULL;
+ int msas_named = 0;
+ int force_single = ( esl_opt_IsOn(go, "--singlemx") ? TRUE : FALSE );
+
+
+// ESL_STOPWATCH *ssv_watch_master = esl_stopwatch_Create();
+// ESL_STOPWATCH *ssv_watch_master_tot = esl_stopwatch_Create();
+
+// ESL_STOPWATCH *postssv_watch_master = esl_stopwatch_Create();
+// ESL_STOPWATCH *postssv_watch_master_tot = esl_stopwatch_Create();
+
+// ESL_STOPWATCH *watch_slave = esl_stopwatch_Create();
+
if (esl_opt_IsUsed(go, "--w_beta")) { if ( ( window_beta = esl_opt_GetReal(go, "--w_beta") ) < 0 || window_beta > 1 ) esl_fatal("Invalid window-length beta value\n"); }
if (esl_opt_IsUsed(go, "--w_length")) { if (( window_length = esl_opt_GetInteger(go, "--w_length")) < 4 ) esl_fatal("Invalid window length value\n"); }
@@ -444,30 +530,40 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else textw = esl_opt_GetInteger(go, "--textw");
- /* If caller declared input formats, decode them */
-/* if (esl_opt_IsOn(go, "--qformat")) {
- qhformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat"));
- if (qhformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat"));
- }
- */
+ /* If caller declared target format, decode it */
if (esl_opt_IsOn(go, "--tformat")) {
dbformat = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--tformat"));
if (dbformat == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized sequence database file format\n", esl_opt_GetString(go, "--tformat"));
}
if (dbformat == eslSQFILE_FMINDEX) {
+
+#if !defined (p7_IMPL_SSE)
+ p7_Fail("%s is a valid sequence database file format only on systems supporting SSE vector instructions\n", esl_opt_GetString(go, "--tformat"));
+#endif
+
//For now, this is a separate path from the typical esl_sqfile_Open() function call
//TODO: create esl_sqio_fmindex.c, analogous to esl_sqio_ascii.c,
- fm_configAlloc(&fm_cfg_mem, &fm_cfg);
+ if (esl_opt_IsOn(go, "--max")) {
+ p7_Fail("--max flag is incompatible with the FMINDEX target type\n");
+ }
+
+ fm_configAlloc(&fm_cfg);
fm_meta = fm_cfg->meta;
if((fm_meta->fp = fopen(cfg->dbfile, "rb")) == NULL)
- esl_fatal("Cannot open file `%s': ", cfg->dbfile);
+ p7_Fail("Failed to open target sequence database %s for reading\n", cfg->dbfile);
+
+ if ( (status = fm_readFMmeta(fm_meta)) != eslOK)
+ p7_Fail("Failed to read FM meta data from target sequence database %s\n", cfg->dbfile);
+
+ if ( (status = fm_configInit(fm_cfg, go)) != eslOK)
+ p7_Fail("Failed to initialize FM configuration for target sequence database %s\n", cfg->dbfile);
+
+ if ( (status = fm_alphabetCreate(fm_meta, NULL)) != eslOK)
+ p7_Fail("Failed to create FM alphabet for target sequence database %s\n", cfg->dbfile);
- fm_readFMmeta(fm_meta);
- fm_initConfig(fm_cfg, go);
- fm_createAlphabet(fm_meta, NULL); // don't override charBits
fgetpos( fm_meta->fp, &fm_basepos);
} else {
@@ -478,24 +574,120 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile");
else if (status != eslOK) p7_Fail("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile);
- if (dbfp->format > 100) // breaking the law! That range is reserved for msa, for aligned formats
- p7_Fail("%s contains a multiple sequence alignment; expect unaligned sequences, like FASTA\n", cfg->dbfile);
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) {
+ if (esl_opt_IsUsed(go, "--ssifile"))
+ esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile"));
+ else
+ esl_sqfile_OpenSSI(dbfp, NULL);
+ }
+
+ if ( esl_opt_IsOn(go, "--dna") )
+ abc = esl_alphabet_Create(eslDNA);
+ else if ( esl_opt_IsOn(go, "--rna") )
+ abc = esl_alphabet_Create(eslRNA);
+
}
- /* Open the query profile HMM file */
- status = p7_hmmfile_OpenE(cfg->hmmfile, NULL, &hfp, errbuf);
- if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf);
- else if (status == eslEFORMAT) p7_Fail("File format problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf);
- else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf);
+ /* We're about to see if this is an HMM file. If we already know it isn't, based on --qformat, just skip the test*/
+ if ( esl_opt_IsOn(go, "--qformat") )
+ status = eslENORESULT; // so it'll fail into the section that opens an alignment
+ else
+ status = p7_hmmfile_OpenE(cfg->queryfile, NULL, &hfp, errbuf);
+
+ if (status == eslENOTFOUND) {
+ // File just doesn't exist
+ p7_Fail("File existence/permissions problem in trying to open query file %s.\n%s\n", cfg->queryfile, errbuf);
+ } else if (status == eslOK) {
+ //Successfully read HMM file
+ qhstatus = p7_hmmfile_Read(hfp, &abc, &hmm);
+ if (qhstatus != eslOK) p7_Fail("reading hmm from file %s (%d)\n", cfg->queryfile, qhstatus);
+ } else {
+ //It's not an HMM. Maybe an alignment file, or a fasta file
+ if (strcmp(cfg->queryfile, "-") == 0 && ! esl_opt_IsOn(go, "--qformat")) {
+ p7_Fail("Must specify --qformat to read <alignfile> from stdin ('-')");
+ }
+
+ /* We're about to test if it's recognized as an MSA. If we know it shouldn't be,
+ * because of --qformat=fasta, skip the attempt
+ */
+ if (cfg->qfmt == eslSQFILE_FASTA ) {
+ status = eslENORESULT;
+ } else {
+ //Haven't already decided that it's a fasta file; try MSA first
+ status = esl_msafile_Open(&abc, cfg->queryfile, NULL, cfg->qfmt, NULL, &qfp_msa);
+ }
+
+ if (status == eslENOTFOUND) {
+ p7_Fail("File existence/permissions problem in trying to open query file %s.\n%s\n", cfg->queryfile, errbuf);
+ } else if (status != eslOK) {
+ // Either we've been told it's expected to be in fasta format, or we just learned
+ //that it's not an MSA, so we should precede assuming it's fasta.
+ cfg->qfmt = eslSQFILE_FASTA;
+ if (abc != NULL) {
+ status = esl_sqfile_OpenDigital(abc, cfg->queryfile, eslSQFILE_FASTA, NULL, &qfp_sq);
+ if (status != eslOK) p7_Fail ("Unexpected error %d opening query file %s\n", status, cfg->queryfile);
+ } else {
+ int q_type = eslUNKNOWN;
+ status = esl_sqfile_Open(cfg->queryfile, eslSQFILE_FASTA, NULL, &qfp_sq);
+ if (status != eslOK) p7_Fail ("Unexpected error %d opening query file %s\n", status, cfg->queryfile);
+ if ( esl_opt_IsOn(go, "--dna") )
+ abc = esl_alphabet_Create(eslDNA);
+ else if ( esl_opt_IsOn(go, "--rna") )
+ abc = esl_alphabet_Create(eslRNA);
+ else {
+ esl_sqfile_GuessAlphabet(qfp_sq, &q_type);
+ if (q_type == eslUNKNOWN) p7_Fail ("Unable to guess alphabet for query file %s\n", cfg->queryfile);
+ abc = esl_alphabet_Create(q_type);
+ }
+ esl_sqfile_SetDigital(qfp_sq, abc );
+ }
+ }
+
+ qsq = esl_sq_CreateDigital(abc); // only need this in the case of a single sequence ... but that could come from an MSA
+
+ if (dbformat == eslSQFILE_FMINDEX) {
+ if ( (abc->type == eslDNA || abc->type == eslRNA) && !(fm_meta->alph_type == fm_DNA /*|| fm_meta->alph_type == fm_DNA_full*/) )
+ p7_Fail("incompatible alphabets - the HMM is a nucleotide alphabet, but the database isn't");
+ if ( (abc->type == eslAMINO ) && !(fm_meta->alph_type == fm_AMINO ) )
+ p7_Fail("incompatible alphabets - the HMM is an amino alphabet, but the database isn't");
+ }
+
+ builder = p7_builder_Create(NULL, abc);
+ if (builder == NULL) p7_Fail("p7_builder_Create failed");
+
+
+ // special arguments for hmmbuild
+ builder->w_len = (go != NULL && esl_opt_IsOn (go, "--w_length")) ? esl_opt_GetInteger(go, "--w_length"): -1;
+ builder->w_beta = (go != NULL && esl_opt_IsOn (go, "--w_beta")) ? esl_opt_GetReal (go, "--w_beta") : p7_DEFAULT_WINDOW_BETA;
+ if ( builder->w_beta < 0 || builder->w_beta > 1 ) esl_fatal("Invalid window-length beta value\n");
+
+
+ if (qfp_sq != NULL) {
+ // read first sequence
+ qhstatus = esl_sqio_Read(qfp_sq, qsq);
+ if (qhstatus != eslOK) p7_Fail("reading sequence from file %s (%d)\n", cfg->queryfile, qhstatus);
+
+ } else {
+ // read first sequence alignment
+ qhstatus = esl_msafile_Read(qfp_msa, &msa);
+ if (qhstatus != eslOK) p7_Fail("reading alignment from file %s (%d)\n", cfg->queryfile, qhstatus);
+ }
+
+ }
/* Open the results output files */
if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) p7_Fail("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); }
if (esl_opt_IsOn(go, "-A")) { if ((afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) p7_Fail("Failed to open alignment file %s for writing\n", esl_opt_GetString(go, "-A")); }
if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular output file %s for writing\n", esl_opt_GetString(go, "--tblout")); }
- if (esl_opt_IsOn(go, "--dfamtblout")) { if ((dfamtblfp = fopen(esl_opt_GetString(go, "--dfamtblout"),"w")) == NULL) esl_fatal("Failed to open tabular dfam output file %s for writing\n", esl_opt_GetString(go, "--dfamtblout")); }
- if (esl_opt_IsOn(go, "--longinsertout")) { if ((inserttblfp = fopen(esl_opt_GetString(go, "--longinsertout"),"w")) == NULL) esl_fatal("Failed to open long-insert output file %s for writing\n", esl_opt_GetString(go, "--longinsertout")); }
-
+ if (esl_opt_IsOn(go, "--dfamtblout")) { if ((dfamtblfp = fopen(esl_opt_GetString(go, "--dfamtblout"),"w")) == NULL) esl_fatal("Failed to open tabular dfam output file %s for writing\n", esl_opt_GetString(go, "--dfamtblout")); }
+ if (esl_opt_IsOn(go, "--aliscoresout")) { if ((aliscoresfp = fopen(esl_opt_GetString(go, "--aliscoresout"),"w")) == NULL) esl_fatal("Failed to open alignment scores output file %s for writing\n", esl_opt_GetString(go, "--aliscoresout")); }
+ if (qfp_msa != NULL || qfp_sq != NULL) {
+ if (esl_opt_IsOn(go, "--hmmout")) {
+ hmmfile = esl_opt_GetString(go, "--hmmout");
+ if ((hmmoutfp = fopen(hmmfile,"w")) == NULL) esl_fatal("Failed to open hmm output file %s for writing\n", hmmfile);
+ }
+ }
#ifdef HMMER_THREADS
/* initialize thread data */
@@ -504,31 +696,32 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (ncpus > 0) {
- threadObj = esl_threads_Create(&pipeline_thread);
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX)
+ threadObj = esl_threads_Create(&pipeline_thread_FM);
+ else
+#endif
+ threadObj = esl_threads_Create(&pipeline_thread);
+
queue = esl_workqueue_Create(ncpus * 2);
}
#endif
+ if (esl_opt_IsOn(go, "--bgfile")) {
+ bg_manual = p7_bg_Create(abc);
+ status = p7_bg_Read(esl_opt_GetString(go, "--bgfile"), bg_manual, errbuf);
+ if (status != eslOK) p7_Fail("Trouble reading bgfile: %s\n", errbuf);
+ }
+
infocnt = (ncpus == 0) ? 1 : ncpus;
ESL_ALLOC(info, sizeof(*info) * infocnt);
- /* <abc> is not known 'til first HMM is read. Could be DNA or RNA*/
- qhstatus = p7_hmmfile_Read(hfp, &abc, &hmm);
-
if (! (abc->type == eslRNA || abc->type == eslDNA))
p7_Fail("Invalid alphabet type in hmm for nhmmer. Expect DNA or RNA\n");
- /* if using FM-index, verify that the alphabets are in agreement */
- if (dbformat == eslSQFILE_FMINDEX) {
- if ( ! (fm_meta->alph_type == fm_DNA ||
- fm_meta->alph_type == fm_DNA_full ||
- fm_meta->alph_type == fm_RNA ||
- fm_meta->alph_type == fm_RNA_full ) )
- p7_Fail("Alphabet type of hmm and database disagree.\n");
- }
if (qhstatus == eslOK) {
/* One-time initializations after alphabet <abc> becomes known */
- output_header(ofp, go, cfg->hmmfile, cfg->dbfile);
+ output_header(ofp, go, cfg->queryfile, cfg->dbfile, ncpus);
if (dbformat != eslSQFILE_FMINDEX)
dbfp->abc = abc;
@@ -537,55 +730,133 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
info[i].pli = NULL;
info[i].th = NULL;
info[i].om = NULL;
- info[i].bg = p7_bg_Create(abc);
-
- info[i].bg->use_null3 = esl_opt_IsUsed(go, "--usenull3");
- info[i].bg->use_null3w = esl_opt_IsUsed(go, "--usenull3w");
- info[i].bg->null3_wlen = esl_opt_GetInteger(go, "--null3wlen");
+ if (bg_manual != NULL)
+ info[i].bg = p7_bg_Clone(bg_manual);
+ else
+ info[i].bg = p7_bg_Create(abc);
- info[i].fm_cfg = NULL;
#ifdef HMMER_THREADS
info[i].queue = queue;
#endif
}
-
-
#ifdef HMMER_THREADS
for (i = 0; i < ncpus * 2; ++i) {
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) {
+ ESL_ALLOC(fminfo, sizeof(FM_THREAD_INFO));
+ if (fminfo == NULL) esl_fatal("Failed to allocate FM thread info");
+
+ ESL_ALLOC(fminfo->fmf, sizeof(FM_DATA));
+ ESL_ALLOC(fminfo->fmb, sizeof(FM_DATA));
+ if (fminfo->fmf == NULL || fminfo->fmb == NULL) esl_fatal("Failed to allocate FM thread info");
+ fminfo->active = FALSE;
+
+ status = esl_workqueue_Init(queue, fminfo);
+ if (status != eslOK) esl_fatal("Failed to add FM info to work queue");
+
+ }
+ else
+#endif
+ {
+
block = esl_sq_CreateDigitalBlock(BLOCK_SIZE, abc);
if (block == NULL) esl_fatal("Failed to allocate sequence block");
status = esl_workqueue_Init(queue, block);
if (status != eslOK) esl_fatal("Failed to add block to work queue");
+ }
}
#endif
}
+ if (qfp_sq != NULL || (qfp_msa != NULL && force_single )) {
+ /* We'll use this scoring matrix whenever we have a single sequence (even in MSA format)
+ * Default is stored in the --mx option, so it's always IsOn(). Check --mxfile first; then go to the --mx option and the default.
+ */
+ if (esl_opt_IsOn(go, "--mxfile")) status = p7_builder_SetScoreSystem (builder, esl_opt_GetString(go, "--mxfile"), NULL, esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), info->bg);
+ else status = p7_builder_LoadScoreSystem(builder, esl_opt_GetString(go, "--mx"), esl_opt_GetReal(go, "--popen"), esl_opt_GetReal(go, "--pextend"), info->bg);
+ if (status != eslOK) p7_Fail("Failed to set single query seq score system:\n%s\n", builder->errbuf);
+ }
+
- /* Outer loop: over each query HMM in <hmmfile>. */
+ /* Outer loop: over each query HMM or alignment in <queryfile>. */
while (qhstatus == eslOK) {
P7_PROFILE *gm = NULL;
P7_OPROFILE *om = NULL; /* optimized query profile */
+ if ( qfp_msa != NULL ) {
+ //deal with recently read MSA
+ //if name isn't assigned, give it one (can only do this if there's a single unnamed alignment, so pick it's filename)
+ if (msa->name == NULL) {
+ char *name = NULL;
+ if (msas_named>0) p7_Fail("I need name annotation on each alignment in a multi MSA file; failed on #%d", nquery+1);
+
+ if (cfg->queryfile != NULL) {
+ if ((status = esl_FileTail(cfg->queryfile, TRUE, &name)) != eslOK) return status; /* TRUE=nosuffix */
+ } else {
+ name = "Query";
+ }
+
+ if ((status = esl_msa_SetName(msa, name, -1)) != eslOK) p7_Fail("Error assigning name to alignment");
+ msas_named++;
+
+ free(name);
+ }
+
+ //Turn sequence alignment into an HMM
+ if (msa->nseq == 1 && force_single) {
+ if (qsq!=NULL) esl_sq_Destroy(qsq);
+ qsq = esl_sq_CreateDigitalFrom(msa->abc, (msa->sqname?msa->sqname[0]:"Query"), msa->ax[0], msa->alen, (msa->sqdesc?msa->sqdesc[0]:NULL), (msa->sqacc?msa->sqacc[0]:NULL), NULL);
+ esl_abc_XDealign(qsq->abc, qsq->dsq, qsq->dsq, &(qsq->n));
+ if ((qhstatus = p7_SingleBuilder(builder, qsq, info->bg, &hmm, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", builder->errbuf);
+ } else {
+ if ((qhstatus = p7_Builder(builder, msa, info->bg, &hmm, NULL, NULL, NULL, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", builder->errbuf);
+ }
+
+ } else if ( qfp_sq != NULL) {// FASTA format, so they all have names
+ //Turn sequence into an HMM
+ if ((qhstatus = p7_SingleBuilder(builder, qsq, info->bg, &hmm, NULL, NULL, NULL)) != eslOK) p7_Fail("build failed: %s", builder->errbuf);
+ }
+
+
+ // Assign HMM max_length
if (window_length > 0) hmm->max_length = window_length;
else if (window_beta > 0) p7_Builder_MaxLength(hmm, window_beta);
else if (hmm->max_length == -1 ) p7_Builder_MaxLength(hmm, p7_DEFAULT_WINDOW_BETA);
+
+ if (hmmoutfp != NULL) { //
+ if ((status = p7_hmmfile_WriteASCII(hmmoutfp, -1, hmm)) != eslOK) ESL_FAIL(status, errbuf, "HMM save failed");
+ fclose(hmmoutfp);
+ }
+
nquery++;
resCnt = 0;
esl_stopwatch_Start(w);
/* seqfile may need to be rewound (multiquery mode) */
if (nquery > 1) {
- if (dbformat == eslSQFILE_FMINDEX) {
- //rewind
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) { //rewind
if (fsetpos(fm_meta->fp, &fm_basepos) != 0) ESL_EXCEPTION(eslESYS, "rewind via fsetpos() failed");
-
- } else {
+ }
+ else
+#endif
+ {
if (! esl_sqfile_IsRewindable(dbfp))
esl_fatal("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile);
- esl_sqfile_Position(dbfp, 0);
+
+ if (! esl_opt_IsUsed(go, "--restrictdb_stkey") )
+ esl_sqfile_Position(dbfp, 0); //only re-set current position to 0 if we're not planning to set it in a moment
+ }
+ }
+
+ if (dbformat != eslSQFILE_FMINDEX) {
+ if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general
+ sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key);
+ if (sstatus != eslOK)
+ p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key);
}
}
@@ -600,63 +871,104 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_ProfileConfig(hmm, info->bg, gm, 100, p7_LOCAL); /* 100 is a dummy length for now; and MSVFilter requires local mode */
p7_oprofile_Convert(gm, om); /* <om> is now p7_LOCAL, multihit */
- msvdata = p7_hmm_MSVDataCreate(om, FALSE);
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) {
+ //capture a measure of score density multiplied by something I conjecture to be related to
+ //the expected longest common subsequence (sqrt(M)). If less than a default target
+ //(7 bits of expected LCS), then the requested score threshold will be shifted down
+ // according to this ratio.
+ // Xref: ~wheelert/notebook/2014/03-04-FM-time-v-len/00NOTES -- Thu Mar 6 14:40:48 EST 2014
+ float best_sc_avg = 0;
+ int j;
+ for (i = 1; i <= om->M; i++) {
+ float max_score = 0;
+ for (j=0; j<hmm->abc->K; j++) {
+ if ( esl_abc_XIsResidue(om->abc,j) && gm->rsc[j][(i) * p7P_NR + p7P_MSC] > max_score) max_score = gm->rsc[j][(i) * p7P_NR + p7P_MSC];
+ }
+ best_sc_avg += max_score;
+ }
+ best_sc_avg /= sqrt((double) hmm->M); //that's dividing by M to get score density, then multiplying by sqrt(M) as a proxy for expected LCS
+ best_sc_avg = ESL_MAX(5.0,best_sc_avg); // don't let it get too low, or run time will dramatically suffer
+
+ fm_cfg->sc_thresh_ratio = ESL_MIN(best_sc_avg/7.0, 1.0);
+ scoredata = p7_hmm_ScoreDataCreate(om, gm);
+ }
+ else
+#endif
+ scoredata = p7_hmm_ScoreDataCreate(om, NULL);
for (i = 0; i < infocnt; ++i) {
/* Create processing pipeline and hit list */
info[i].th = p7_tophits_Create();
- info[i].om = p7_oprofile_Clone(om);
+ info[i].om = p7_oprofile_Copy(om);
info[i].pli = p7_pipeline_Create(go, om->M, 100, TRUE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */
- p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg);
- if ( esl_opt_IsUsed(go, "--toponly") )
- info[i].pli->strand = p7_STRAND_TOPONLY;
- else if ( esl_opt_IsUsed(go, "--bottomonly") )
- info[i].pli->strand = p7_STRAND_BOTTOMONLY;
- else
- info[i].pli->strand = p7_STRAND_BOTH;
+ //set method specific --F1, if it wasn't set at command line
+ if (!esl_opt_IsOn(go, "--F1") ) {
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX)
+ info[i].pli->F1 = 0.03;
+ else
+#endif
+ info[i].pli->F1 = 0.02;
+ }
+#if defined (p7_IMPL_SSE)
+ info[i].fm_cfg = fm_cfg;
+#endif
+ p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg);
- if ( esl_opt_IsUsed(go, "--block_length") )
- info[i].pli->block_length = esl_opt_GetInteger(go, "--block_length");
- else
- info[i].pli->block_length = NHMMER_MAX_RESIDUE_COUNT;
+ info[i].pli->do_alignment_score_calc = esl_opt_IsOn(go, "--aliscoresout") ;
+ if ( esl_opt_IsUsed(go, "--watson") )
+ info[i].pli->strands = p7_STRAND_TOPONLY;
+ else if ( esl_opt_IsUsed(go, "--crick") )
+ info[i].pli->strands = p7_STRAND_BOTTOMONLY;
+ else
+ info[i].pli->strands = p7_STRAND_BOTH;
- info[i].pli->show_app = esl_opt_IsUsed(go, "--show_app");
- info[i].pli->app_hi = esl_opt_GetReal (go, "--app_hi");
- info[i].pli->app_med = esl_opt_GetReal (go, "--app_med");
- info[i].pli->app_lo = esl_opt_GetReal (go, "--app_lo");
- if (info[i].pli->app_med < info[i].pli->app_lo) info[i].pli->app_med = info[i].pli->app_lo;
- if (info[i].pli->app_hi < info[i].pli->app_med) info[i].pli->app_hi = info[i].pli->app_med;
+ if (dbformat != eslSQFILE_FMINDEX) {
+ if ( esl_opt_IsUsed(go, "--block_length") )
+ info[i].pli->block_length = esl_opt_GetInteger(go, "--block_length");
+ else
+ info[i].pli->block_length = NHMMER_MAX_RESIDUE_COUNT;
+ }
- info[i].fm_cfg = fm_cfg;
- info[i].msvdata = p7_hmm_MSVDataClone(msvdata, om->abc->Kp);
+ info[i].scoredata = p7_hmm_ScoreDataClone(scoredata, om->abc->Kp);
#ifdef HMMER_THREADS
- if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
+ if (ncpus > 0)
+ esl_threads_AddThread(threadObj, &info[i]);
#endif
}
/* establish the id_lengths data structutre */
id_length_list = init_id_length(1000);
-
#ifdef HMMER_THREADS
+ #if defined (p7_IMPL_SSE)
if (dbformat == eslSQFILE_FMINDEX) {
- if (ncpus > 0) sstatus = thread_loop(info, id_length_list, threadObj, queue, dbfp);
- else sstatus = serial_loop_FM(info, id_length_list, dbfp);
- } else {
- if (ncpus > 0) sstatus = thread_loop(info, id_length_list, threadObj, queue, dbfp);
- else sstatus = serial_loop(info, id_length_list, dbfp);
+ for(i=0; i<fm_cfg->meta->seq_count; i++)
+ add_id_length(id_length_list, fm_cfg->meta->seq_data[i].target_id, fm_cfg->meta->seq_data[i].target_start + fm_cfg->meta->seq_data[i].length - 1);
+
+ if (ncpus > 0) sstatus = thread_loop_FM (info, threadObj, queue, dbfp);
+ else sstatus = serial_loop_FM (info, dbfp/*, ssv_watch_master, postssv_watch_master, watch_slave*/);
}
-#else
+ else
+ #endif //defined (p7_IMPL_SSE)
+ {
+ if (ncpus > 0) sstatus = thread_loop (info, id_length_list, threadObj, queue, dbfp, cfg->firstseq_key, cfg->n_targetseq);
+ else sstatus = serial_loop (info, id_length_list, dbfp, cfg->firstseq_key, cfg->n_targetseq/*, ssv_watch_master, postssv_watch_master, watch_slave*/);
+ }
+#else //HMMER_THREADS
+ #if defined (p7_IMPL_SSE)
if (dbformat == eslSQFILE_FMINDEX)
- sstatus = serial_loop_FM(info, id_length_list, dbfp);
+ sstatus = serial_loop_FM (info, dbfp);
else
- sstatus = serial_loop(info, id_length_list, dbfp);
-#endif
+ #endif // defined (p7_IMPL_SSE)
+ sstatus = serial_loop (info, id_length_list, dbfp, cfg->firstseq_key, cfg->n_targetseq/*, ssv_watch_master, postssv_watch_master, watch_slave*/);
+#endif //HMMER_THREADS
switch(sstatus) {
@@ -672,18 +984,29 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
esl_fatal("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
}
-
//need to re-compute e-values before merging (when list will be sorted)
- if (esl_opt_IsUsed(go, "-Z"))
+ if (esl_opt_IsUsed(go, "-Z")) {
resCnt = 1000000*esl_opt_GetReal(go, "-Z");
- else
- for (i = 0; i < infocnt; ++i)
- resCnt += info[i].pli->nres;
+
+ if ( info[0].pli->strands == p7_STRAND_BOTH)
+ resCnt *= 2;
+
+ } else {
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) {
+ resCnt = 2 * fm_meta->char_count;
+ }
+ else
+#endif
+ {
+ for (i = 0; i < infocnt; ++i)
+ resCnt += info[i].pli->nres;
+ }
+ }
for (i = 0; i < infocnt; ++i)
p7_tophits_ComputeNhmmerEvalues(info[i].th, resCnt, info[i].om->max_length);
-
/* merge the results of the search results */
for (i = 1; i < infocnt; ++i) {
p7_tophits_Merge(info[0].th, info[i].th);
@@ -694,38 +1017,52 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_oprofile_Destroy(info[i].om);
}
-
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) {
+ info[0].pli->nseqs = fm_meta->seq_data[fm_meta->seq_count-1].target_id + 1;
+ info[0].pli->nres = resCnt;
+ }
+#endif
/* Print the results. */
- p7_tophits_SortBySeqidx(info->th);
+ p7_tophits_SortBySeqidxAndAlipos(info->th);
assign_Lengths(info->th, id_length_list);
- p7_tophits_RemoveDuplicates(info->th);
+ p7_tophits_RemoveDuplicates(info->th, info->pli->use_bit_cutoffs);
p7_tophits_SortBySortkey(info->th);
p7_tophits_Threshold(info->th, info->pli);
-
//tally up total number of hits and target coverage
info->pli->n_output = info->pli->pos_output = 0;
for (i = 0; i < info->th->N; i++) {
- if (info->th->hit[i]->dcl[0].is_reported || info->th->hit[i]->dcl[0].is_included) {
+ if ( (info->th->hit[i]->flags & p7_IS_REPORTED) || info->th->hit[i]->flags & p7_IS_INCLUDED) {
info->pli->n_output++;
info->pli->pos_output += abs(info->th->hit[i]->dcl[0].jali - info->th->hit[i]->dcl[0].iali) + 1;
}
}
-
p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (tblfp) p7_tophits_TabularTargets(tblfp, hmm->name, hmm->acc, info->th, info->pli, (nquery == 1));
if (dfamtblfp) p7_tophits_TabularXfam(dfamtblfp, hmm->name, hmm->acc, info->th, info->pli);
- if (inserttblfp) p7_tophits_LongInserts(inserttblfp, hmm->name, hmm->acc, info->th, info->pli, esl_opt_GetInteger(go, "--insertlength") );
-
+ if (aliscoresfp) p7_tophits_AliScores(aliscoresfp, hmm->name, info->th );
esl_stopwatch_Stop(w);
+
p7_pli_Statistics(ofp, info->pli, w);
+
+// esl_stopwatch_Display(stdout, ssv_watch_master, "# SSV time: ");
+// esl_stopwatch_Display(stdout, postssv_watch_master, "# POSTSSV time: ");
+
+// esl_stopwatch_Include(ssv_watch_master_tot, ssv_watch_master);
+// esl_stopwatch_Include(postssv_watch_master_tot, postssv_watch_master);
+
+ //reset the per-query master stopwatches
+// esl_stopwatch_Start(ssv_watch_master); esl_stopwatch_Stop(ssv_watch_master);
+// esl_stopwatch_Start(postssv_watch_master); esl_stopwatch_Stop(postssv_watch_master);
+
if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
/* Output the results in an MSA (-A option) */
@@ -733,8 +1070,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
ESL_MSA *msa = NULL;
if (p7_tophits_Alignment(info->th, abc, NULL, NULL, 0, p7_DEFAULT, &msa) == eslOK) {
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
} else {
@@ -744,10 +1081,9 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
for (i = 0; i < infocnt; ++i)
- p7_hmm_MSVDataDestroy(info[i].msvdata);
-
- p7_hmm_MSVDataDestroy(msvdata);
+ p7_hmm_ScoreDataDestroy(info[i].scoredata);
+ p7_hmm_ScoreDataDestroy(scoredata);
p7_pipeline_Destroy(info->pli);
p7_tophits_Destroy(info->th);
p7_oprofile_Destroy(info->om);
@@ -755,21 +1091,45 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_profile_Destroy(gm);
p7_hmm_Destroy(hmm);
destroy_id_length(id_length_list);
+ if (qsq != NULL) esl_sq_Reuse(qsq);
+
+ if (hfp != NULL) {
+ qhstatus = p7_hmmfile_Read(hfp, &abc, &hmm);
+ } else if (qfp_msa != NULL){
+ esl_msa_Destroy(msa);
+ qhstatus = esl_msafile_Read(qfp_msa, &msa);
+ } else { // qfp_sq
+ qhstatus = esl_sqio_Read(qfp_sq, qsq);
+ }
- qhstatus = p7_hmmfile_Read(hfp, &abc, &hmm);
- } /* end outer loop over query HMMs */
+ } /* end outer loop over queries */
- switch(qhstatus) {
- case eslEOD: p7_Fail("read failed, HMM file %s may be truncated?", cfg->hmmfile); break;
- case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->hmmfile); break;
- case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); break;
- case eslEOF: /* do nothing; EOF is what we expect here */ break;
- default: p7_Fail("Unexpected error (%d) in reading HMMs from %s", qhstatus, cfg->hmmfile);
+ if (hfp != NULL) {
+ switch(qhstatus) {
+ case eslEOD: p7_Fail("read failed, HMM file %s may be truncated?", cfg->queryfile); break;
+ case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->queryfile); break;
+ case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->queryfile); break;
+ case eslEOF: /* do nothing; EOF is what we expect here */ break;
+ default: p7_Fail("Unexpected error (%d) in reading HMMs from %s", qhstatus, cfg->queryfile);
+ }
+ } else if (qfp_msa != NULL){
+ if (qhstatus != eslEOF ) esl_msafile_ReadFailure(qfp_msa, status);
+ } else { // qfp_sq
+ if (qhstatus == eslEFORMAT) p7_Fail("Parse failed (sequence file %s):\n%s\n",
+ qfp_sq->filename, esl_sqfile_GetErrorBuf(qfp_sq));
+ else if (qhstatus != eslEOF) p7_Fail("Unexpected error %d reading sequence file %s",
+ qhstatus, qfp_sq->filename);
}
+
+
+// esl_stopwatch_Display(stdout, ssv_watch_master_tot, "# Total SSV time: ");
+// esl_stopwatch_Display(stdout, postssv_watch_master_tot, "# Total POSTSSV time: ");
+
+
/* Terminate outputs - any last words?
*/
- if (tblfp) p7_tophits_TabularTail(tblfp, "nhmmer", p7_SEARCH_SEQS, cfg->hmmfile, cfg->dbfile, go);
+ if (tblfp) p7_tophits_TabularTail(tblfp, "nhmmer", p7_SEARCH_SEQS, cfg->queryfile, cfg->dbfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for successful exit
@@ -780,8 +1140,22 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
#ifdef HMMER_THREADS
if (ncpus > 0) {
esl_workqueue_Reset(queue);
- while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) {
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) {
+ while (esl_workqueue_Remove(queue, (void **) &fminfo) == eslOK) {
+ if (fminfo) {
+ if (fminfo->fmf) free(fminfo->fmf);
+ if (fminfo->fmb) free(fminfo->fmb);
+ free(fminfo);
+ }
+ }
+ }
+ else
+#endif
+ {
+ while (esl_workqueue_Remove(queue, (void **) &block) == eslOK) {
esl_sq_DestroyBlock(block);
+ }
}
esl_workqueue_Destroy(queue);
esl_threads_Destroy(threadObj);
@@ -790,102 +1164,100 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
free(info);
- p7_hmmfile_Close(hfp);
+
+
+ if (hfp) p7_hmmfile_Close(hfp);
+ if (qfp_msa) esl_msafile_Close(qfp_msa);
+ if (qfp_sq) esl_sqfile_Close(qfp_sq);
+
+ if (builder) p7_builder_Destroy(builder);
+ if (qsq) esl_sq_Destroy(qsq);
+
esl_sqfile_Close(dbfp);
esl_alphabet_Destroy(abc);
esl_stopwatch_Destroy(w);
+#if defined (p7_IMPL_SSE)
if (dbformat == eslSQFILE_FMINDEX) {
- fm_destroyConfig(fm_cfg);
- free (fm_cfg->meta);
- free(fm_cfg_mem); //16-byte aligned memory in which cfg is found
+ fclose(fm_meta->fp);
+ fm_configDestroy(fm_cfg); // will cascade to destroy meta and alphabet, too
}
+#endif
+
if (ofp != stdout) fclose(ofp);
if (afp) fclose(afp);
if (tblfp) fclose(tblfp);
-
+ if (dfamtblfp) fclose(dfamtblfp);
+ if (aliscoresfp) fclose(aliscoresfp);
return eslOK;
ERROR:
- return eslFAIL;
+ if (hfp) p7_hmmfile_Close(hfp);
+ if (qfp_msa) esl_msafile_Close(qfp_msa);
+ if (qfp_sq) esl_sqfile_Close(qfp_sq);
+
+ if (builder) p7_builder_Destroy(builder);
+ if (qsq) esl_sq_Destroy(qsq);
+
+ if (ofp != stdout) fclose(ofp);
+ if (afp) fclose(afp);
+ if (tblfp) fclose(tblfp);
+ if (dfamtblfp) fclose(dfamtblfp);
+ if (aliscoresfp) fclose(aliscoresfp);
+
+#if defined (p7_IMPL_SSE)
+ if (dbformat == eslSQFILE_FMINDEX) {
+ fm_configDestroy(fm_cfg);
+ }
+#endif
+
+ if (hmmfile != NULL) free (hmmfile);
+
+ return eslFAIL;
}
//TODO: MPI code needs to be added here
static int
-serial_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp)
+serial_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs/*, ESL_STOPWATCH *ssv_watch_master, ESL_STOPWATCH *postssv_watch_master, ESL_STOPWATCH *watch_slave*/)
{
- int wstatus;
- int i;
- int prev_hit_cnt;
+ int wstatus = eslOK;
int seq_id = 0;
- P7_DOMAIN *dcl;
ESL_SQ *dbsq = esl_sq_CreateDigital(info->om->abc);
#ifdef eslAUGMENT_ALPHABET
ESL_SQ *dbsq_revcmp;
+
+
if (dbsq->abc->complement != NULL)
dbsq_revcmp = esl_sq_CreateDigital(info->om->abc);
#endif /*eslAUGMENT_ALPHABET*/
-
wstatus = esl_sqio_ReadWindow(dbfp, 0, info->pli->block_length, dbsq);
-
- while (wstatus == eslOK ) {
+ while (wstatus == eslOK && (n_targetseqs==-1 || seq_id < n_targetseqs) ) {
dbsq->idx = seq_id;
-
p7_pli_NewSeq(info->pli, dbsq);
- if (info->pli->strand != p7_STRAND_BOTTOMONLY) {
+ if (info->pli->strands != p7_STRAND_BOTTOMONLY) {
info->pli->nres -= dbsq->C; // to account for overlapping region of windows
- prev_hit_cnt = info->th->N;
-
- p7_Pipeline_LongTarget(info->pli, info->om, info->msvdata, info->bg, dbsq, info->th, info->pli->nseqs);
-
+ p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, info->pli->nseqs, dbsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, ssv_watch_master, postssv_watch_master, watch_slave*/);
p7_pipeline_Reuse(info->pli); // prepare for next search
- // modify hit positions to account for the position of the window in the full sequence
- for (i=prev_hit_cnt; i < info->th->N ; i++) {
- dcl = info->th->unsrt[i].dcl;
- dcl->ienv += dbsq->start - 1;
- dcl->jenv += dbsq->start - 1;
- dcl->iali += dbsq->start - 1;
- dcl->jali += dbsq->start - 1;
- dcl->ihq += dbsq->start - 1;
- dcl->jhq += dbsq->start - 1;
- dcl->ad->sqfrom += dbsq->start - 1;
- dcl->ad->sqto += dbsq->start - 1;
- }
} else {
info->pli->nres -= dbsq->n;
}
#ifdef eslAUGMENT_ALPHABET
//reverse complement
- if (info->pli->strand != p7_STRAND_TOPONLY && dbsq->abc->complement != NULL )
+ if (info->pli->strands != p7_STRAND_TOPONLY && dbsq->abc->complement != NULL )
{
- prev_hit_cnt = info->th->N;
esl_sq_Copy(dbsq,dbsq_revcmp);
esl_sq_ReverseComplement(dbsq_revcmp);
- p7_Pipeline_LongTarget(info->pli, info->om, info->msvdata, info->bg, dbsq_revcmp, info->th, info->pli->nseqs);
+ p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, info->pli->nseqs, dbsq_revcmp, p7_COMPLEMENT, NULL, NULL, NULL/*, ssv_watch_master, postssv_watch_master, watch_slave*/);
p7_pipeline_Reuse(info->pli); // prepare for next search
- for (i=prev_hit_cnt; i < info->th->N ; i++) {
- dcl = info->th->unsrt[i].dcl;
- // modify hit positions to account for the position of the window in the full sequence
- dcl->ienv = dbsq_revcmp->start - dcl->ienv + 1;
- dcl->jenv = dbsq_revcmp->start - dcl->jenv + 1;
- dcl->iali = dbsq_revcmp->start - dcl->iali + 1;
- dcl->jali = dbsq_revcmp->start - dcl->jali + 1;
- dcl->ihq = dbsq_revcmp->start - dcl->ihq + 1;
- dcl->jhq = dbsq_revcmp->start - dcl->jhq + 1;
- dcl->ad->sqfrom = dbsq_revcmp->start - dcl->ad->sqfrom + 1;
- dcl->ad->sqto = dbsq_revcmp->start - dcl->ad->sqto + 1;
-
- }
-
info->pli->nres += dbsq_revcmp->W;
}
@@ -904,14 +1276,18 @@ serial_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp)
}
}
+
if (dbsq) esl_sq_Destroy(dbsq);
+ if (dbsq_revcmp) esl_sq_Destroy(dbsq_revcmp);
return wstatus;
}
+
+#if defined (p7_IMPL_SSE)
static int
-serial_loop_FM(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *dbfp)
+serial_loop_FM(WORKER_INFO *info, ESL_SQFILE *dbfp /*, ESL_STOPWATCH *ssv_watch_master, ESL_STOPWATCH *postssv_watch_master, ESL_STOPWATCH *watch_slave*/)
{
int wstatus = eslOK;
@@ -922,34 +1298,36 @@ serial_loop_FM(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_SQFILE *db
FM_METADATA *meta = info->fm_cfg->meta;
+
for ( i=0; i<info->fm_cfg->meta->block_count; i++ ) {
- wstatus = fm_readFM( &fmf, meta, 1 );
+ wstatus = fm_FM_read( &fmf, meta, TRUE );
if (wstatus != eslOK) return wstatus;
- wstatus = fm_readFM( &fmb, meta, 0 );
+ wstatus = fm_FM_read( &fmb, meta, FALSE );
if (wstatus != eslOK) return wstatus;
fmb.SA = fmf.SA;
fmb.T = fmf.T;
- wstatus = p7_Pipeline_FM(info->pli, info->om, info->bg, info->th, info->pli->nseqs,
- &fmf, &fmb, info->fm_cfg, info->msvdata);
+ wstatus = p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg,
+ info->th, -1, NULL, -1, &fmf, &fmb, info->fm_cfg/*, ssv_watch_master, postssv_watch_master, watch_slave*/);
if (wstatus != eslOK) return wstatus;
+ fm_FM_destroy(&fmf, 1);
+ fm_FM_destroy(&fmb, 0);
}
- info->pli->nres = 2 * meta->char_count;
-
return wstatus;
}
+#endif //#if defined (p7_IMPL_SSE)
#ifdef HMMER_THREADS
static int
-thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
+thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, char *firstseq_key, int n_targetseqs)
{
- int i;
+ int i;
int status = eslOK;
int sstatus = eslOK;
int eofCount = 0;
@@ -957,6 +1335,10 @@ thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj,
void *newBlock;
int seqid = -1;
+ ESL_SQ *tmpsq = esl_sq_CreateDigital(info->om->abc);
+ int abort = FALSE; // in the case n_targetseqs != -1, a block may get abbreviated
+
+
esl_workqueue_Reset(queue);
esl_threads_WaitForStart(obj);
@@ -964,41 +1346,60 @@ thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj,
if (status != eslOK) esl_fatal("Work queue reader failed");
((ESL_SQ_BLOCK *)newBlock)->complete = TRUE;
-
/* Main loop: */
- while (sstatus == eslOK ) {
+ while (sstatus == eslOK ) {
block = (ESL_SQ_BLOCK *) newBlock;
- sstatus = esl_sqio_ReadBlock(dbfp, block, info->pli->block_length, TRUE);
-
+ if (abort) {
+ block->count = 0;
+ sstatus = eslEOF;
+ } else {
+ sstatus = esl_sqio_ReadBlock(dbfp, block, info->pli->block_length, n_targetseqs, TRUE);
+ }
block->first_seqidx = info->pli->nseqs;
- info->pli->nseqs += block->count - (block->complete ? 0 : 1);// if there's an incomplete sequence read into the block wait to count it until it's complete.
-
-
seqid = block->first_seqidx;
for (i=0; i<block->count; i++) {
block->list[i].idx = seqid;
add_id_length(id_length_list, seqid, block->list[i].L);
seqid++;
+
+ if ( seqid == n_targetseqs // hit the sequence target
+ && ( i<block->count-1 || block->complete ) // and either it's not the last sequence (so it's complete), or its complete
+ ) {
+ abort = TRUE;
+ block->count = i+1;
+ break;
+ }
}
+ info->pli->nseqs += block->count - ((abort || block->complete) ? 0 : 1);// if there's an incomplete sequence read into the block wait to count it until it's complete.
if (sstatus == eslEOF) {
if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
++eofCount;
+ } else if (!block->complete ) {
+ // The final sequence on the block was an incomplete window of the active sequence,
+ // so our next read will need a copy of it to correctly deal with overlapping
+ // regions. We capture a copy of the sequence here before sending it off to the
+ // pipeline to avoid odd race conditions that can occur otherwise.
+ // Copying the entire sequence isn't really necessary, and is a bit heavy-
+ // handed. Could accelerate if this proves to have any notable impact on speed.
+ esl_sq_Copy(block->list + (block->count - 1) , tmpsq);
}
+
if (sstatus == eslOK) {
+
status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
if (status != eslOK) esl_fatal("Work queue reader failed");
//newBlock needs all this information so the next ReadBlock call will know what to do
((ESL_SQ_BLOCK *)newBlock)->complete = block->complete;
if (!block->complete) {
- // the final sequence on the block was an incomplete window of the active sequence,
- // so prep the next block to read in the next window
- esl_sq_Copy(block->list + (block->count - 1) , ((ESL_SQ_BLOCK *)newBlock)->list);
+ // Push the captured copy of the previously-read sequence into the new block,
+ // in preparation for ReadWindow (double copy ... slower than necessary)
+ esl_sq_Copy(tmpsq, ((ESL_SQ_BLOCK *)newBlock)->list);
if ( ((ESL_SQ_BLOCK *)newBlock)->list->n < info->om->max_length ) {
//no reason to search the final partial sequence on the block, as the next block will search this whole chunk
@@ -1012,6 +1413,7 @@ thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj,
}
}
+
status = esl_workqueue_ReaderUpdate(queue, block, NULL);
if (status != eslOK) esl_fatal("Work queue reader failed");
@@ -1021,23 +1423,23 @@ thread_loop(WORKER_INFO *info, ID_LENGTH_LIST *id_length_list, ESL_THREADS *obj,
esl_workqueue_Complete(queue);
}
+ esl_sq_Destroy(tmpsq);
+
return sstatus;
}
static void
pipeline_thread(void *arg)
{
- int prev_hit_cnt;
- int i, j;
+ int i;
int status;
int workeridx;
WORKER_INFO *info;
ESL_THREADS *obj;
- P7_DOMAIN *dcl;
ESL_SQ_BLOCK *block = NULL;
void *newBlock;
- impl_ThreadInit();
+ impl_Init();
obj = (ESL_THREADS *) arg;
esl_threads_Started(obj, &workeridx);
@@ -1047,8 +1449,10 @@ pipeline_thread(void *arg)
status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock);
if (status != eslOK) esl_fatal("Work queue worker failed");
+
/* loop until all blocks have been processed */
block = (ESL_SQ_BLOCK *) newBlock;
+
while (block->count > 0)
{
/* Main loop: */
@@ -1058,53 +1462,24 @@ pipeline_thread(void *arg)
p7_pli_NewSeq(info->pli, dbsq);
- if (info->pli->strand != p7_STRAND_BOTTOMONLY) {
+ if (info->pli->strands != p7_STRAND_BOTTOMONLY) {
info->pli->nres -= dbsq->C; // to account for overlapping region of windows
- prev_hit_cnt = info->th->N;
- p7_Pipeline_LongTarget(info->pli, info->om, info->msvdata, info->bg, dbsq, info->th, block->first_seqidx + i);
+ p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, block->first_seqidx + i, dbsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/);
p7_pipeline_Reuse(info->pli); // prepare for next search
-
- // modify hit positions to account for the position of the window in the full sequence
- for (j=prev_hit_cnt; j < info->th->N ; ++j) {
- dcl = info->th->unsrt[j].dcl;
- dcl->ienv += dbsq->start - 1;
- dcl->jenv += dbsq->start - 1;
- dcl->iali += dbsq->start - 1;
- dcl->jali += dbsq->start - 1;
- dcl->ihq += dbsq->start - 1;
- dcl->jhq += dbsq->start - 1;
- dcl->ad->sqfrom += dbsq->start - 1;
- dcl->ad->sqto += dbsq->start - 1;
- }
} else {
info->pli->nres -= dbsq->n;
}
#ifdef eslAUGMENT_ALPHABET
//reverse complement
- if (info->pli->strand != p7_STRAND_TOPONLY && dbsq->abc->complement != NULL)
+ if (info->pli->strands != p7_STRAND_TOPONLY && dbsq->abc->complement != NULL)
{
- prev_hit_cnt = info->th->N;
esl_sq_ReverseComplement(dbsq);
- p7_Pipeline_LongTarget(info->pli, info->om, info->msvdata, info->bg, dbsq, info->th, block->first_seqidx + i);
+ p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg, info->th, block->first_seqidx + i, dbsq, p7_COMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/);
p7_pipeline_Reuse(info->pli); // prepare for next search
- for (j=prev_hit_cnt; j < info->th->N ; ++j) {
- dcl = info->th->unsrt[j].dcl;
- // modify hit positions to account for the position of the window in the full sequence
- dcl->ienv = dbsq->start - dcl->ienv + 1;
- dcl->jenv = dbsq->start - dcl->jenv + 1;
- dcl->iali = dbsq->start - dcl->iali + 1;
- dcl->jali = dbsq->start - dcl->jali + 1;
- dcl->ihq = dbsq->start - dcl->ihq + 1;
- dcl->jhq = dbsq->start - dcl->jhq + 1;
- dcl->ad->sqfrom = dbsq->start - dcl->ad->sqfrom + 1;
- dcl->ad->sqto = dbsq->start - dcl->ad->sqto + 1;
-
- }
-
info->pli->nres += dbsq->W;
}
@@ -1116,6 +1491,7 @@ pipeline_thread(void *arg)
if (status != eslOK) esl_fatal("Work queue worker failed");
block = (ESL_SQ_BLOCK *) newBlock;
+
}
status = esl_workqueue_WorkerUpdate(info->queue, block, NULL);
@@ -1124,6 +1500,115 @@ pipeline_thread(void *arg)
esl_threads_Finished(obj, workeridx);
return;
}
+
+
+#if defined (p7_IMPL_SSE)
+static int
+thread_loop_FM(WORKER_INFO *info, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
+{
+
+ int status = eslOK;
+ int i;
+
+ FM_METADATA *meta = info->fm_cfg->meta;
+ FM_THREAD_INFO *fminfo = NULL;
+ void *newFMinfo = NULL;
+
+ esl_workqueue_Reset(queue);
+ esl_threads_WaitForStart(obj);
+
+ status = esl_workqueue_ReaderUpdate(queue, NULL, &newFMinfo);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+ fminfo = (FM_THREAD_INFO *) newFMinfo;
+
+ /* Main loop: */
+ for ( i=0; i<info->fm_cfg->meta->block_count; i++ ) {
+
+ status = fm_FM_read( fminfo->fmf, meta, TRUE );
+ if (status != eslOK) return status;
+ status = fm_FM_read( fminfo->fmb, meta, FALSE );
+ if (status != eslOK) return status;
+
+ fminfo->fmb->SA = fminfo->fmf->SA;
+ fminfo->fmb->T = fminfo->fmf->T;
+ fminfo->active = TRUE;
+
+ status = esl_workqueue_ReaderUpdate(queue, fminfo, &newFMinfo);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+ fminfo = (FM_THREAD_INFO *) newFMinfo;
+
+ }
+
+ /* this part is here to feed the worker threads with new fminfo objects to swap from
+ * the queue while they are confirming completion of earlier fminfo objects (by
+ * returning them). They are labelled inactive, so the worker doesn't bother
+ * computing on them.
+ */
+ for (i=0; i<esl_threads_GetWorkerCount(obj)-1; i++) {
+ fminfo->active = FALSE;
+ esl_workqueue_ReaderUpdate(queue, fminfo, &newFMinfo);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+ fminfo = (FM_THREAD_INFO *) newFMinfo;
+ }
+ fminfo->active = FALSE;
+ esl_workqueue_ReaderUpdate(queue, fminfo, NULL);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+
+ esl_threads_WaitForFinish(obj);
+ esl_workqueue_Complete(queue);
+
+ return status;
+}
+
+
+static void
+pipeline_thread_FM(void *arg)
+{
+ int status;
+ int workeridx;
+ WORKER_INFO *info;
+ ESL_THREADS *obj;
+ FM_THREAD_INFO *fminfo = NULL;
+ void *newFMinfo = NULL;
+
+
+ impl_Init();
+
+ obj = (ESL_THREADS *) arg;
+ esl_threads_Started(obj, &workeridx);
+
+ info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx);
+
+ status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newFMinfo);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+
+ /* loop until all blocks have been processed */
+ fminfo = (FM_THREAD_INFO *) newFMinfo;
+
+ while (fminfo->active)
+ {
+ status = p7_Pipeline_LongTarget(info->pli, info->om, info->scoredata, info->bg,
+ info->th, -1, NULL, -1, fminfo->fmf, fminfo->fmb, info->fm_cfg/*, NULL, NULL, NULL */);
+ if (status != eslOK) esl_fatal ("Work queue worker failed");
+
+ fm_FM_destroy(fminfo->fmf, 1);
+ fm_FM_destroy(fminfo->fmb, 0);
+
+ status = esl_workqueue_WorkerUpdate(info->queue, fminfo, &newFMinfo);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+ fminfo = (FM_THREAD_INFO *) newFMinfo;
+
+ }
+
+ status = esl_workqueue_WorkerUpdate(info->queue, fminfo, NULL);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+
+ esl_threads_Finished(obj, workeridx);
+ return;
+}
+#endif //#if defined (p7_IMPL_SSE)
+
+
#endif /* HMMER_THREADS */
@@ -1192,27 +1677,22 @@ assign_Lengths(P7_TOPHITS *th, ID_LENGTH_LIST *id_length_list) {
int i;
int j = 0;
-
for (i=0; i<th->N; i++) {
while (th->hit[i]->seqidx != id_length_list->id_lengths[j].id) { j++; }
th->hit[i]->dcl[0].ad->L = id_length_list->id_lengths[j].length;
}
return eslOK;
-
}
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/nhmmer.c $
- * SVN $Id: nhmmer.c 4175 2012-07-18 10:50:59Z nawrockie $
*****************************************************************/
diff --git a/hmmer/src/nhmmscan.c b/hmmer/src/nhmmscan.c
new file mode 100644
index 0000000..d935a4a
--- /dev/null
+++ b/hmmer/src/nhmmscan.c
@@ -0,0 +1,921 @@
+/* nhmmscan: search sequence(s) against a profile HMM database, using nhmmer pipeline
+ */
+#include "p7_config.h"
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_getopts.h"
+#include "esl_sq.h"
+#include "esl_sqio.h"
+#include "esl_stopwatch.h"
+
+#ifdef HMMER_THREADS
+#include <unistd.h>
+#include "esl_threads.h"
+#include "esl_workqueue.h"
+#endif /*HMMER_THREADS*/
+
+#include "hmmer.h"
+#include "esl_vectorops.h"
+
+
+typedef struct {
+#ifdef HMMER_THREADS
+ ESL_WORK_QUEUE *queue;
+#endif /*HMMER_THREADS*/
+ ESL_SQ *qsq;
+ P7_BG *bg; /* null/background model */
+ P7_BG *bg_default; /* The default null/bg model. This should only be set (non-NULL) if bg has been overriden by --bgfile */
+ P7_PIPELINE *pli; /* work pipeline */
+ P7_TOPHITS *th; /* top hit results */
+ float *scores;
+ float *fwd_emissions; /* to hold residue emission probabilities in serial order (gathered from the optimized striped <om> with p7_oprofile_GetFwdEmissionArray() ). */
+} WORKER_INFO;
+
+#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc"
+#define DOMREPOPTS "--domE,--domT,--cut_ga,--cut_nc,--cut_tc"
+#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc"
+#define INCDOMOPTS "--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc"
+#define THRESHOPTS "-E,-T,--domE,--domT,--incE,--incT,--incdomE,--incdomT,--cut_ga,--cut_nc,--cut_tc"
+
+#define CPUOPTS NULL
+#define MPIOPTS NULL
+
+//#define DAEMONOPTS "-o,--tblout,--domtblout"
+
+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 },
+ /* Control of output */
+ { "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
+ { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <f>", 2 },
+ { "--dfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits to file, in Dfam format <f>", 2 },
+ { "--aliscoresout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save of scores for each position in each alignment to <f>", 2 },
+ { "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
+ { "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
+ { "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
+ { "--textw", eslARG_INT, "120", NULL, "n>=120",NULL, NULL, "--notextw", "set max width of ASCII text output lines", 2 },
+
+ /* Control of reporting thresholds */
+ { "-E", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, REPOPTS, "report models <= this E-value threshold in output", 4 },
+ { "-T", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, REPOPTS, "report models >= this score threshold in output", 4 },
+ /* Control of inclusion (significance) thresholds: */
+ { "--incE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCOPTS, "consider models <= this E-value threshold as significant", 5 },
+ { "--incT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCOPTS, "consider models >= this score threshold as significant", 5 },
+ /* Model-specific thresholding for both reporting and inclusion */
+ { "--cut_ga", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's GA gathering cutoffs to set all thresholding", 6 },
+ { "--cut_nc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's NC noise cutoffs to set all thresholding", 6 },
+ { "--cut_tc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, THRESHOPTS, "use profile's TC trusted cutoffs to set all thresholding", 6 },
+ /* Control of acceleration pipeline */
+ { "--max", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--F1,--F2,--F3", "Turn all heuristic filters off (less speed, more power)", 7 },
+ { "--F1", eslARG_REAL, "0.02", NULL, NULL, NULL, NULL, "--max", "MSV threshold: promote hits w/ P <= F1", 7 },
+ { "--F2", eslARG_REAL, "3e-3", NULL, NULL, NULL, NULL, "--max", "Vit threshold: promote hits w/ P <= F2", 7 },
+ { "--F3", eslARG_REAL, "3e-5", NULL, NULL, NULL, NULL, "--max", "Fwd threshold: promote hits w/ P <= F3", 7 },
+ { "--nobias", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--max", "turn off composition bias filter", 7 },
+
+ /* Other options */
+ { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert input <seqfile> is in format <s>", 12 },
+ { "--nonull2", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "turn off biased composition score corrections", 12 },
+ { "-Z", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of comparisons done, for E-value calculation", 12 },
+ { "--seed", eslARG_INT, "42", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 12 },
+ { "--w_beta", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, "tail mass at which window length is determined", 12 },
+ { "--w_length", eslARG_INT, NULL, NULL, NULL, NULL, NULL, NULL, "window length - essentially max expected hit length ", 12 },
+ { "--watson", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--crick", "only search the top strand", 12 },
+ { "--crick", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--watson", "only search the bottom strand", 12 },
+
+
+
+ /* stage-specific window length used for bias composition estimate,
+ * hidden because they are confusing/expert options. May drag them out
+ * into the daylight eventually
+ */
+ { "--B1", eslARG_INT, "110", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (MSV)", 99 },
+ { "--B2", eslARG_INT, "240", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Vit)", 99 },
+ { "--B3", eslARG_INT, "1000", NULL, NULL, NULL, NULL, "--max,--nobias", "window length for biased-composition modifier (Fwd)", 99 },
+
+ /* expert-only option (for now), hidden from view, for altering bg probs. May not keep. */
+ { "--bgfile", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "override default background probs with values in file <f>", 99 },
+
+
+ /* Not used, but retained because esl option-handling code errors if it isn't kept here. Placed in group 99 so it doesn't print to help*/
+ { "--domE", eslARG_REAL, "10.0", NULL, "x>0", NULL, NULL, DOMREPOPTS, "report domains <= this E-value threshold in output", 99 },
+ { "--domT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, DOMREPOPTS, "report domains >= this score cutoff in output", 99 },
+ { "--incdomE", eslARG_REAL, "0.01", NULL, "x>0", NULL, NULL, INCDOMOPTS, "consider domains <= this E-value threshold as significant", 99 },
+ { "--incdomT", eslARG_REAL, FALSE, NULL, NULL, NULL, NULL, INCDOMOPTS, "consider domains >= this score threshold as significant", 99 },
+ { "--domZ", eslARG_REAL, FALSE, NULL, "x>0", NULL, NULL, NULL, "set # of significant seqs, for domain E-value calculation", 99 },
+
+// { "--daemon", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, DAEMONOPTS, "run program as a daemon", 12 },
+
+
+ #ifdef HMMER_THREADS
+ { "--cpu", eslARG_INT, NULL,"HMMER_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 12 },
+#endif
+ { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
+};
+
+
+/* struct cfg_s : "Global" application configuration shared by all threads/processes
+ *
+ * This structure is passed to routines within main.c, as a means of semi-encapsulation
+ * of shared data amongst different parallel processes (threads or MPI processes).
+ */
+struct cfg_s {
+ char *seqfile; /* query sequence file */
+ char *hmmfile; /* database HMM file */
+
+ int do_mpi; /* TRUE if we're doing MPI parallelization */
+ int nproc; /* how many MPI processes, total */
+ int my_rank; /* who am I, in 0..nproc-1 */
+};
+
+static char usage[] = "[-options] <hmmdb> <seqfile>";
+static char banner[] = "search DNA sequence(s) against a DNA profile database";
+
+static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg);
+static int serial_loop (WORKER_INFO *info, P7_HMMFILE *hfp);
+#ifdef HMMER_THREADS
+#define BLOCK_SIZE 1
+static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, P7_HMMFILE *hfp);
+static void pipeline_thread(void *arg);
+#endif /*HMMER_THREADS*/
+
+
+/* process_commandline()
+ *
+ * Processes the commandline, filling in fields in <cfg> and creating and returning
+ * an <ESL_GETOPTS> options structure. The help page (hmmsearch -h) is formatted
+ * here.
+ */
+static int
+process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_hmmfile, char **ret_seqfile)
+{
+ ESL_GETOPTS *go = esl_getopts_Create(options);
+ int status;
+
+ if (esl_opt_ProcessEnvironment(go) != eslOK) { if (printf("Failed to process environment: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if (esl_opt_ProcessCmdline(go, argc, argv) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if (esl_opt_VerifyConfig(go) != eslOK) { if (printf("Failed to parse command line: %s\n", go->errbuf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+
+ /* help format: */
+ if (esl_opt_GetBoolean(go, "-h") == TRUE)
+ {
+ p7_banner(stdout, argv[0], banner);
+ esl_usage(stdout, argv[0], usage);
+ if (puts("\nBasic options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/
+
+ if (puts("\nOptions controlling output:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 2, 2, 80);
+
+ if (puts("\nOptions controlling reporting thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 4, 2, 80);
+
+ if (puts("\nOptions controlling inclusion (significance) thresholds:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 5, 2, 80);
+
+ if (puts("\nOptions for model-specific thresholding:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 6, 2, 80);
+
+ if (puts("\nOptions controlling acceleration heuristics:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 7, 2, 80);
+
+ if (puts("\nOther expert options:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 12, 2, 80);
+ exit(0);
+ }
+
+ if (esl_opt_ArgNumber(go) != 2) { if (puts("Incorrect number of command line arguments.") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if ((*ret_hmmfile = esl_opt_GetArg(go, 1)) == NULL) { if (puts("Failed to get <hmmdb> argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+ if ((*ret_seqfile = esl_opt_GetArg(go, 2)) == NULL) { if (puts("Failed to get <seqfile> argument on command line") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+
+ /* Validate any attempted use of stdin streams */
+ if (strcmp(*ret_hmmfile, "-") == 0)
+ { if (puts("nhmmscan cannot read <hmm database> from stdin stream, because it must have hmmpress'ed auxfiles") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed"); goto FAILURE; }
+
+ *ret_go = go;
+ return eslOK;
+
+ FAILURE: /* all errors handled here are user errors, so be polite. */
+ esl_usage(stdout, argv[0], usage);
+ if (puts("\nwhere most common options are:") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_opt_DisplayHelp(stdout, go, 1, 2, 80); /* 1= group; 2 = indentation; 80=textwidth*/
+ if (printf("\nTo see more help on available options, do %s -h\n\n", argv[0]) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "write failed");
+ esl_getopts_Destroy(go);
+ exit(1);
+
+ ERROR:
+ if (go) esl_getopts_Destroy(go);
+ exit(status);
+}
+
+
+static int
+output_header(FILE *ofp, ESL_GETOPTS *go, char *hmmfile, char *seqfile)
+{
+ p7_banner(ofp, go->argv[0], banner);
+
+ if (fprintf(ofp, "# query sequence file: %s\n", seqfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (fprintf(ofp, "# target HMM database: %s\n", hmmfile) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "-o") && fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--dfamtblout") && fprintf(ofp, "# hits output in Dfam format: %s\n", esl_opt_GetString(go, "--dfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--aliscoresout") && fprintf(ofp, "# alignment scores output: %s\n", esl_opt_GetString(go, "--aliscoresout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--textw") && fprintf(ofp, "# max ASCII text line length: %d\n", esl_opt_GetInteger(go, "--textw")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "-E") && fprintf(ofp, "# profile reporting threshold: E-value <= %g\n", esl_opt_GetReal(go, "-E")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "-T") && fprintf(ofp, "# profile reporting threshold: score >= %g\n", esl_opt_GetReal(go, "-T")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--incE") && fprintf(ofp, "# profile inclusion threshold: E-value <= %g\n", esl_opt_GetReal(go, "--incE")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--incT") && fprintf(ofp, "# profile inclusion threshold: score >= %g\n", esl_opt_GetReal(go, "--incT")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--cut_ga") && fprintf(ofp, "# model-specific thresholding: GA cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--cut_nc") && fprintf(ofp, "# model-specific thresholding: NC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--cut_tc") && fprintf(ofp, "# model-specific thresholding: TC cutoffs\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--max") && fprintf(ofp, "# Max sensitivity mode: on [all heuristic filters off]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--F1") && fprintf(ofp, "# MSV filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "--B1") && fprintf(ofp, "# biased comp MSV window len: %d\n", esl_opt_GetInteger(go, "--B1")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--B2") && fprintf(ofp, "# biased comp Viterbi window len: %d\n", esl_opt_GetInteger(go, "--B2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--B3") && fprintf(ofp, "# biased comp Forward window len: %d\n", esl_opt_GetInteger(go, "--B3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--bgfile") && fprintf(ofp, "# file with custom bg probs: %s\n", esl_opt_GetString(go, "--bgfile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "--watson") && fprintf(ofp, "# search only top strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--crick") && fprintf(ofp, "# search only bottom strand: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (esl_opt_IsUsed(go, "-Z") && fprintf(ofp, "# sequence search space set to: %.0f\n", esl_opt_GetReal(go, "-Z")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--seed")) {
+ if (esl_opt_GetInteger(go, "--seed")==0 && fprintf(ofp, "# random number seed: one-time arbitrary\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ else if ( fprintf(ofp, "# random number seed set to: %d\n", esl_opt_GetInteger(go, "--seed")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ }
+ if (esl_opt_IsUsed(go, "--qformat") && fprintf(ofp, "# input seqfile format asserted: %s\n", esl_opt_GetString(go, "--qformat")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--w_beta") && fprintf(ofp, "# window length beta value: %g\n", esl_opt_GetReal(go, "--w_beta")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--w_length") && fprintf(ofp, "# window length : %d\n", esl_opt_GetInteger(go, "--w_length")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+// if (esl_opt_IsUsed(go, "--daemon") && fprintf(ofp, "run as a daemon process\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+#ifdef HMMER_THREADS
+ if (esl_opt_IsUsed(go, "--cpu") && fprintf(ofp, "# number of worker threads: %d\n", esl_opt_GetInteger(go, "--cpu")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+#endif
+ if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ return eslOK;
+}
+
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = NULL;
+ struct cfg_s cfg;
+ int status = eslOK;
+
+ impl_Init(); /* processor-specific initialization */
+ p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */
+
+ /* Initialize what we can in the config structure (without knowing the alphabet yet) */
+ cfg.hmmfile = NULL;
+ cfg.seqfile = NULL;
+ cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */
+ cfg.nproc = 0; /* this gets reset below, if we init MPI */
+ cfg.my_rank = 0; /* this gets reset below, if we init MPI */
+
+ process_commandline(argc, argv, &go, &cfg.hmmfile, &cfg.seqfile);
+
+ status = serial_master(go, &cfg);
+
+ esl_getopts_Destroy(go);
+ return status;
+}
+
+
+/* serial_master()
+ * The serial version of hmmsearch.
+ * For each query HMM in <hmmdb> search the database for hits.
+ *
+ * A master can only return if it's successful. All errors are handled
+ * immediately and fatally with p7_Fail().
+ */
+static int
+serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
+{
+ FILE *ofp = stdout; /* output file for results (default stdout) */
+ FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
+ FILE *dfamtblfp = NULL; /* output stream for tabular Dfam format (--dfamtblout) */
+ FILE *aliscoresfp = NULL; /* output stream for alignment scores (--aliscoresout) */
+
+ P7_BG *bg_manual = NULL;
+
+ int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */
+ ESL_SQFILE *sqfp = NULL; /* open seqfile */
+ P7_HMMFILE *hfp = NULL; /* open HMM database file */
+ ESL_ALPHABET *abc = NULL; /* sequence alphabet */
+ P7_OPROFILE *om = NULL; /* target profile */
+ ESL_STOPWATCH *w = NULL; /* timing */
+ ESL_SQ *qsq = NULL; /* query sequence */
+ int nquery = 0;
+ int textw;
+ int status = eslOK;
+ int hstatus = eslOK;
+ int sstatus = eslOK;
+ int i;
+
+ int ncpus = 0;
+
+ int infocnt = 0;
+ WORKER_INFO *info = NULL;
+#ifdef HMMER_THREADS
+ P7_OM_BLOCK *block = NULL;
+ ESL_THREADS *threadObj= NULL;
+ ESL_WORK_QUEUE *queue = NULL;
+#endif
+ char errbuf[eslERRBUFSIZE];
+
+ double window_beta = -1.0 ;
+ int window_length = -1;
+ if (esl_opt_IsUsed(go, "--w_beta")) { if ( ( window_beta = esl_opt_GetReal(go, "--w_beta") ) < 0 || window_beta > 1 ) esl_fatal("Invalid window-length beta value\n"); }
+ if (esl_opt_IsUsed(go, "--w_length")) { if (( window_length = esl_opt_GetInteger(go, "--w_length")) < 4 ) esl_fatal("Invalid window length value\n"); }
+
+
+ w = esl_stopwatch_Create();
+
+ if (esl_opt_GetBoolean(go, "--notextw")) textw = 0;
+ else textw = esl_opt_GetInteger(go, "--textw");
+
+ /* If caller declared an input format, decode it */
+ if (esl_opt_IsOn(go, "--qformat")) {
+ seqfmt = esl_sqio_EncodeFormat(esl_opt_GetString(go, "--qformat"));
+ if (seqfmt == eslSQFILE_UNKNOWN) p7_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--qformat"));
+ }
+
+ /* validate options if running as a daemon */
+// if (esl_opt_IsOn(go, "--daemon")) {
+ /* running as a daemon, the input format must be type daemon */
+// if (seqfmt != eslSQFILE_UNKNOWN && seqfmt != eslSQFILE_DAEMON)
+// esl_fatal("Input format %s not supported. Must be daemon\n", esl_opt_GetString(go, "--qformat"));
+// seqfmt = eslSQFILE_DAEMON;
+
+// if (strcmp(cfg->seqfile, "-") != 0) esl_fatal("Query sequence file must be '-'\n");
+// }
+
+ /* Open the target profile database to get the sequence alphabet */
+ status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, errbuf);
+ if (status == eslENOTFOUND) p7_Fail("File existence/permissions problem in trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf);
+ else if (status == eslEFORMAT) p7_Fail("File format problem, trying to open HMM file %s.\n%s\n", cfg->hmmfile, errbuf);
+ else if (status != eslOK) p7_Fail("Unexpected error %d in opening HMM file %s.\n%s\n", status, cfg->hmmfile, errbuf);
+ if (! hfp->is_pressed) p7_Fail("Failed to open binary auxfiles for %s: use hmmpress first\n", hfp->fname);
+
+ hstatus = p7_oprofile_ReadMSV(hfp, &abc, &om);
+ if (hstatus == eslEFORMAT) p7_Fail("bad format, binary auxfiles, %s:\n%s", cfg->hmmfile, hfp->errbuf);
+ else if (hstatus == eslEINCOMPAT) p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile);
+ else if (hstatus != eslOK) p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile);
+
+ p7_oprofile_Destroy(om);
+ p7_hmmfile_Close(hfp);
+
+ /* Open the query sequence database */
+ status = esl_sqfile_OpenDigital(abc, cfg->seqfile, seqfmt, NULL, &sqfp);
+ if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->seqfile);
+ else if (status == eslEFORMAT) p7_Fail("Sequence file %s is empty or misformatted\n", cfg->seqfile);
+ else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile");
+ else if (status != eslOK) p7_Fail("Unexpected error %d opening sequence file %s\n", status, cfg->seqfile);
+ if (sqfp->format > 100) // breaking the law! That range is reserved for msa, for aligned formats
+ p7_Fail("%s contains a multiple sequence alignment; expect unaligned sequences, like FASTA\n", cfg->seqfile);
+ qsq = esl_sq_CreateDigital(abc);
+
+
+ /* Open the results output files */
+ if (esl_opt_IsOn(go, "-o")) { if ((ofp = fopen(esl_opt_GetString(go, "-o"), "w")) == NULL) esl_fatal("Failed to open output file %s for writing\n", esl_opt_GetString(go, "-o")); }
+ if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) esl_fatal("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); }
+ if (esl_opt_IsOn(go, "--dfamtblout")) { if ((dfamtblfp = fopen(esl_opt_GetString(go, "--dfamtblout"),"w")) == NULL) esl_fatal("Failed to open tabular dfam output file %s for writing\n", esl_opt_GetString(go, "--dfamtblout")); }
+ if (esl_opt_IsOn(go, "--aliscoresout")) { if ((aliscoresfp = fopen(esl_opt_GetString(go, "--aliscoresout"),"w")) == NULL) esl_fatal("Failed to open alignment scores output file %s for writing\n", esl_opt_GetString(go, "--aliscoresout")); }
+
+ output_header(ofp, go, cfg->hmmfile, cfg->seqfile);
+
+#ifdef HMMER_THREADS
+ /* initialize thread data */
+ if (esl_opt_IsOn(go, "--cpu")) ncpus = esl_opt_GetInteger(go, "--cpu");
+ else esl_threads_CPUCount(&ncpus);
+
+ if (ncpus > 0)
+ {
+ threadObj = esl_threads_Create(&pipeline_thread);
+ queue = esl_workqueue_Create(ncpus * 2);
+ }
+#endif
+
+ if (esl_opt_IsOn(go, "--bgfile")) {
+ bg_manual = p7_bg_Create(abc);
+ status = p7_bg_Read(esl_opt_GetString(go, "--bgfile"), bg_manual, errbuf);
+ if (status != eslOK) p7_Fail("Trouble reading bgfile: %s\n", errbuf);
+ }
+
+ infocnt = (ncpus == 0) ? 1 : ncpus;
+ ESL_ALLOC(info, sizeof(*info) * infocnt);
+
+ for (i = 0; i < infocnt; ++i)
+ {
+ if (bg_manual != NULL) {
+ info[i].bg = p7_bg_Clone(bg_manual);
+ info[i].bg_default = p7_bg_Create(abc);
+ } else {
+ info[i].bg = p7_bg_Create(abc);
+ info[i].bg_default = NULL;
+ }
+#ifdef HMMER_THREADS
+ info[i].queue = queue;
+#endif
+ ESL_ALLOC(info[i].scores, sizeof(float) * abc->Kp * 16); //allocation of space to store scores that will be used in p7_oprofile_Update(Fwd|Vit|MSV)EmissionScores
+ }
+
+#ifdef HMMER_THREADS
+ for (i = 0; i < ncpus * 2; ++i)
+ {
+ block = p7_oprofile_CreateBlock(BLOCK_SIZE);
+ if (block == NULL) esl_fatal("Failed to allocate sequence block");
+
+ status = esl_workqueue_Init(queue, block);
+ if (status != eslOK) esl_fatal("Failed to add block to work queue");
+ }
+#endif
+
+ /* Outside loop: over each query sequence in <seqfile>. */
+ while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK)
+ {
+ if (sstatus == eslEMEM) p7_Fail("Memory allocation error reading sequence file\n", status);
+ if (sstatus == eslEINCONCEIVABLE) p7_Fail("Unexpected error %d reading sequence file\n", status);
+ // if (qsq->L > NHMMER_MAX_RESIDUE_COUNT) p7_Fail("Input sequence %s in file %s exceeds maximum length of %d bases.\n", qsq->name, cfg->seqfile, NHMMER_MAX_RESIDUE_COUNT);
+
+ nquery++;
+ esl_stopwatch_Start(w);
+
+ /* Open the target profile database */
+ status = p7_hmmfile_OpenE(cfg->hmmfile, p7_HMMDBENV, &hfp, NULL);
+ if (status != eslOK) p7_Fail("Unexpected error %d in opening hmm file %s.\n", status, cfg->hmmfile);
+
+#ifdef HMMER_THREADS
+ /* if we are threaded, create a lock to prevent multiple readers */
+ if (ncpus > 0)
+ {
+ status = p7_hmmfile_CreateLock(hfp);
+ if (status != eslOK) p7_Fail("Unexpected error %d creating lock\n", status);
+ }
+#endif
+
+ if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (qsq->acc[0] != 0 && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (qsq->desc[0] != 0 && fprintf(ofp, "Description: %s\n", qsq->desc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ for (i = 0; i < infocnt; ++i)
+ {
+ /* Create processing pipeline and hit list */
+ info[i].th = p7_tophits_Create();
+ info[i].pli = p7_pipeline_Create(go, 100, 100, TRUE, p7_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */
+ info[i].pli->hfp = hfp; /* for two-stage input, pipeline needs <hfp> */
+
+ p7_pli_NewSeq(info[i].pli, qsq);
+ info[i].qsq = qsq;
+
+ if ( esl_opt_IsUsed(go, "--watson") )
+ info[i].pli->strands = p7_STRAND_TOPONLY;
+ else if ( esl_opt_IsUsed(go, "--crick") )
+ info[i].pli->strands = p7_STRAND_BOTTOMONLY;
+ else
+ info[i].pli->strands = p7_STRAND_BOTH;
+
+ info[i].fwd_emissions = NULL;
+
+ #ifdef HMMER_THREADS
+ if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
+ #endif
+ }
+
+#ifdef HMMER_THREADS
+ if (ncpus > 0) hstatus = thread_loop(threadObj, queue, hfp);
+ else hstatus = serial_loop(info, hfp);
+#else
+ hstatus = serial_loop(info, hfp);
+#endif
+ switch(hstatus)
+ {
+ case eslEFORMAT: p7_Fail("bad file format in HMM file %s", cfg->hmmfile); break;
+ case eslEINCOMPAT: p7_Fail("HMM file %s contains different alphabets", cfg->hmmfile); break;
+ case eslEOF:
+ case eslOK: /* do nothing */
+ break;
+ default: p7_Fail("Unexpected error in reading HMMs from %s", cfg->hmmfile);
+ }
+
+
+
+ /* merge the results of the search results */
+ for (i = 1; i < infocnt; ++i)
+ {
+ p7_tophits_Merge(info[0].th, info[i].th);
+ p7_pipeline_Merge(info[0].pli, info[i].pli);
+
+ p7_pipeline_Destroy(info[i].pli);
+ p7_tophits_Destroy(info[i].th);
+ }
+
+
+ /* modify e-value to account for number of models */
+ for (i = 0; i < info->th->N ; i++)
+ {
+ info->th->unsrt[i].lnP += log((float)info->pli->nmodels);
+ info->th->unsrt[i].dcl[0].lnP = info->th->unsrt[i].lnP;
+ info->th->unsrt[i].sortkey = -1.0 * info->th->unsrt[i].lnP;
+ }
+
+
+ /* it's possible to have duplicates based on how viterbi ranges can overlap */
+ p7_tophits_SortByModelnameAndAlipos(info->th);
+ p7_tophits_RemoveDuplicates(info->th, info->pli->use_bit_cutoffs);
+
+ /* Print results */
+ p7_tophits_SortBySortkey(info->th);
+ p7_tophits_Threshold(info->th, info->pli);
+
+ //tally up total number of hits and target coverage
+ info->pli->n_output = info->pli->pos_output = 0;
+ for (i = 0; i < info->th->N; i++) {
+ if ( (info->th->hit[i]->flags & p7_IS_REPORTED) || info->th->hit[i]->flags & p7_IS_INCLUDED) {
+ info->pli->n_output++;
+ info->pli->pos_output += abs(info->th->hit[i]->dcl[0].jali - info->th->hit[i]->dcl[0].iali) + 1;
+ }
+ }
+
+
+
+
+ p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
+ if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (dfamtblfp) p7_tophits_TabularXfam(dfamtblfp, qsq->name, NULL, info->th, info->pli);
+ if (aliscoresfp) p7_tophits_AliScores(aliscoresfp, qsq->name, info->th );
+
+
+ esl_stopwatch_Stop(w);
+ info->pli->nseqs = 1;
+ p7_pli_Statistics(ofp, info->pli, w);
+ if (fprintf(ofp, "//\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ fflush(ofp);
+
+ p7_hmmfile_Close(hfp);
+ p7_pipeline_Destroy(info->pli);
+ p7_tophits_Destroy(info->th);
+ esl_sq_Reuse(qsq);
+ }
+
+
+
+ if (sstatus == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n",
+ sqfp->filename, esl_sqfile_GetErrorBuf(sqfp));
+ else if (sstatus != eslEOF) esl_fatal("Unexpected error %d reading sequence file %s",
+ sstatus, sqfp->filename);
+
+ /* Terminate outputs - any last words?
+ */
+ if (tblfp) p7_tophits_TabularTail(tblfp, "hmmscan", p7_SCAN_MODELS, cfg->seqfile, cfg->hmmfile, go);
+ if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
+
+ /* Cleanup - prepare for successful exit
+ */
+ for (i = 0; i < infocnt; ++i) {
+ p7_bg_Destroy(info[i].bg);
+ p7_bg_Destroy(info[i].bg_default);
+ if (info[i].scores != NULL) free(info[i].scores);
+ }
+
+#ifdef HMMER_THREADS
+ if (ncpus > 0)
+ {
+ esl_workqueue_Reset(queue);
+ while (esl_workqueue_Remove(queue, (void **) &block) == eslOK)
+ p7_oprofile_DestroyBlock(block);
+ esl_workqueue_Destroy(queue);
+ esl_threads_Destroy(threadObj);
+ }
+#endif
+
+ ERROR:
+
+ p7_bg_Destroy(bg_manual);
+
+ if (info!=NULL) free(info);
+
+ if (qsq!=NULL) esl_sq_Destroy(qsq);
+ if (w!=NULL) esl_stopwatch_Destroy(w);
+ if (abc!=NULL) esl_alphabet_Destroy(abc);
+ if (sqfp!=NULL) esl_sqfile_Close(sqfp);
+
+ if (ofp != stdout) fclose(ofp);
+ if (tblfp) fclose(tblfp);
+ if (dfamtblfp) fclose(dfamtblfp);
+ if (aliscoresfp) fclose(aliscoresfp);
+
+ return status;
+}
+
+
+static int
+serial_loop(WORKER_INFO *info, P7_HMMFILE *hfp)
+{
+ int status;
+ int i;
+ int seq_len = 0;
+ int prev_hit_cnt = 0;
+ P7_OPROFILE *om = NULL;
+ P7_SCOREDATA *scoredata = NULL; /* hmm-specific data used by nhmmer */
+ ESL_ALPHABET *abc = NULL;
+
+#ifdef eslAUGMENT_ALPHABET
+ ESL_SQ *sq_revcmp = NULL;
+ if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL ) {
+ sq_revcmp = esl_sq_CreateDigital(info->qsq->abc);
+ esl_sq_Copy(info->qsq,sq_revcmp);
+ esl_sq_ReverseComplement(sq_revcmp);
+
+ info->pli->nres += info->qsq->n;
+ }
+#endif /*eslAUGMENT_ALPHABET*/
+
+
+ /* Main loop: */
+ while ((status = p7_oprofile_ReadMSV(hfp, &abc, &om)) == eslOK)
+ {
+ seq_len = 0;
+
+ p7_pli_NewModel(info->pli, om, info->bg);
+ p7_bg_SetLength(info->bg, info->qsq->n);
+ p7_oprofile_ReconfigLength(om, info->qsq->n);
+
+ if (info->bg_default != NULL) {
+ /*bg was overridden by --bgfile; we need to fix all the scores
+ *-First, compute emissions based on bg_default
+ *-Then use those emissions to compute new scores for fwd, vit and msv, based on bg
+ *We need to ReadRest now, so we correctly compute fwd_emissions
+ */
+ p7_oprofile_ReadRest(info->pli->hfp, om);
+ if ((status = p7_pli_NewModelThresholds(info->pli, om)) != eslOK) return status;
+ ESL_REALLOC(info->fwd_emissions, sizeof(float) * abc->Kp * (om->M+1));
+ p7_oprofile_GetFwdEmissionArray(om, info->bg_default, info->fwd_emissions);
+ p7_oprofile_UpdateFwdEmissionScores(om, info->bg, info->fwd_emissions, info->scores);
+ p7_oprofile_UpdateVitEmissionScores(om, info->bg, info->fwd_emissions, info->scores);
+ p7_oprofile_UpdateMSVEmissionScores(om, info->bg, info->fwd_emissions, info->scores);
+ }
+
+ scoredata = p7_hmm_ScoreDataCreate(om, FALSE);
+
+#ifdef eslAUGMENT_ALPHABET
+ //reverse complement
+ if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL )
+ {
+ p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, sq_revcmp, p7_COMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/);
+ p7_pipeline_Reuse(info->pli); // prepare for next search
+ seq_len = info->qsq->n;
+ }
+#endif
+
+
+ if (info->pli->strands != p7_STRAND_BOTTOMONLY) {
+ p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, info->qsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/);
+ p7_pipeline_Reuse(info->pli);
+ seq_len += info->qsq->n;
+ }
+
+ for (i = prev_hit_cnt; i < info->th->N ; i++)
+ {
+ info->th->unsrt[i].lnP += log((float)seq_len / (float)om->max_length);
+ info->th->unsrt[i].dcl[0].lnP = info->th->unsrt[i].lnP;
+ info->th->unsrt[i].sortkey = -1.0 * info->th->unsrt[i].lnP;
+ info->th->unsrt[i].dcl[0].ad->L = om->M;
+ }
+
+ prev_hit_cnt = info->th->N;
+
+ p7_oprofile_Destroy(om);
+ p7_hmm_ScoreDataDestroy(scoredata);
+
+
+
+
+ }
+
+ esl_alphabet_Destroy(abc);
+#ifdef eslAUGMENT_ALPHABET
+ esl_sq_Destroy(sq_revcmp);
+#endif
+
+ if (info->fwd_emissions != NULL) free(info->fwd_emissions);
+
+
+ERROR:
+
+ return status;
+}
+
+#ifdef HMMER_THREADS
+static int
+thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, P7_HMMFILE *hfp)
+{
+ int status = eslOK;
+ int sstatus = eslOK;
+ int eofCount = 0;
+ P7_OM_BLOCK *block;
+ ESL_ALPHABET *abc = NULL;
+ void *newBlock;
+
+ esl_workqueue_Reset(queue);
+ esl_threads_WaitForStart(obj);
+
+ status = esl_workqueue_ReaderUpdate(queue, NULL, &newBlock);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+
+ /* Main loop: */
+ while (sstatus == eslOK)
+ {
+ block = (P7_OM_BLOCK *) newBlock;
+ sstatus = p7_oprofile_ReadBlockMSV(hfp, &abc, block);
+
+ if (sstatus == eslEOF)
+ {
+ if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
+ ++eofCount;
+ }
+
+ if (sstatus == eslOK)
+ {
+ status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+ }
+ }
+
+ status = esl_workqueue_ReaderUpdate(queue, block, NULL);
+ if (status != eslOK) esl_fatal("Work queue reader failed");
+
+ if (sstatus == eslEOF)
+ {
+ /* wait for all the threads to complete */
+ esl_threads_WaitForFinish(obj);
+ esl_workqueue_Complete(queue);
+ }
+
+ esl_alphabet_Destroy(abc);
+ return sstatus;
+}
+
+static void
+pipeline_thread(void *arg)
+{
+ int i, j;
+ int status;
+ int workeridx;
+ WORKER_INFO *info;
+ ESL_THREADS *obj;
+ P7_OM_BLOCK *block;
+ void *newBlock;
+ P7_OPROFILE *om = NULL;
+ P7_SCOREDATA *scoredata = NULL; /* hmm-specific data used by nhmmer */
+
+ int seq_len = 0;
+ int prev_hit_cnt = 0;
+
+#ifdef eslAUGMENT_ALPHABET
+ ESL_SQ *sq_revcmp = NULL;
+#endif /*eslAUGMENT_ALPHABET*/
+
+
+ impl_Init();
+
+ obj = (ESL_THREADS *) arg;
+ esl_threads_Started(obj, &workeridx);
+
+ info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx);
+
+ status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+
+#ifdef eslAUGMENT_ALPHABET
+ //reverse complement
+ if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL ) {
+ sq_revcmp = esl_sq_CreateDigital(info->qsq->abc);
+ esl_sq_Copy(info->qsq,sq_revcmp);
+ esl_sq_ReverseComplement(sq_revcmp);
+ info->pli->nres += info->qsq->n;
+ }
+#endif /*eslAUGMENT_ALPHABET*/
+
+
+ /* loop until all blocks have been processed */
+ block = (P7_OM_BLOCK *) newBlock;
+ while (block->count > 0)
+ {
+ /* Main loop: */
+ for (i = 0; i < block->count; ++i)
+ {
+ om = block->list[i];
+ seq_len = 0;
+
+ p7_pli_NewModel(info->pli, om, info->bg);
+ p7_bg_SetLength(info->bg, info->qsq->n);
+ p7_oprofile_ReconfigLength(om, info->qsq->n);
+
+ if (info->bg_default != NULL) {
+ /*bg was overridden by --bgfile; we need to fix all the scores
+ *-First, compute emissions based on bg_default
+ *-Then use those emissions to compute new scores for fwd, vit and msv, based on bg
+ *We need to ReadRest now, so we correctly compute fwd_emissions
+ */
+ p7_oprofile_ReadRest(info->pli->hfp, om);
+ if ((status = p7_pli_NewModelThresholds(info->pli, om)) != eslOK) esl_fatal("Error setting thresholds in worker thread");
+ ESL_REALLOC(info->fwd_emissions, sizeof(float) * info->qsq->abc->Kp * (om->M+1));
+ p7_oprofile_GetFwdEmissionArray(om, info->bg_default, info->fwd_emissions);
+ p7_oprofile_UpdateFwdEmissionScores(om, info->bg, info->fwd_emissions, info->scores);
+ p7_oprofile_UpdateVitEmissionScores(om, info->bg, info->fwd_emissions, info->scores);
+ p7_oprofile_UpdateMSVEmissionScores(om, info->bg, info->fwd_emissions, info->scores);
+ }
+
+ scoredata = p7_hmm_ScoreDataCreate(om, FALSE);
+
+
+#ifdef eslAUGMENT_ALPHABET
+ //reverse complement
+ if (info->pli->strands != p7_STRAND_TOPONLY && info->qsq->abc->complement != NULL )
+ {
+ p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, sq_revcmp, p7_COMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/);
+ p7_pipeline_Reuse(info->pli); // prepare for next search
+ seq_len = info->qsq->n;
+ }
+#endif
+ if (info->pli->strands != p7_STRAND_BOTTOMONLY) {
+ p7_Pipeline_LongTarget(info->pli, om, scoredata, info->bg, info->th, 0, info->qsq, p7_NOCOMPLEMENT, NULL, NULL, NULL/*, NULL, NULL, NULL*/);
+ p7_pipeline_Reuse(info->pli);
+ seq_len += info->qsq->n;
+ }
+
+ for (j = prev_hit_cnt; j < info->th->N ; j++)
+ {
+ info->th->unsrt[j].lnP += log((float)seq_len / (float)om->max_length);
+ info->th->unsrt[j].dcl[0].lnP = info->th->unsrt[j].lnP;
+ info->th->unsrt[j].sortkey = -1.0 * info->th->unsrt[j].lnP;
+ info->th->unsrt[j].dcl[0].ad->L = om->M;
+ }
+
+ prev_hit_cnt = info->th->N;
+ p7_hmm_ScoreDataDestroy(scoredata);
+ p7_oprofile_Destroy(om);
+ block->list[i] = NULL;
+ }
+
+
+ status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+
+ block = (P7_OM_BLOCK *) newBlock;
+ }
+
+#ifdef eslAUGMENT_ALPHABET
+ esl_sq_Destroy(sq_revcmp);
+#endif
+
+ if (info->fwd_emissions != NULL) free(info->fwd_emissions);
+
+ status = esl_workqueue_WorkerUpdate(info->queue, block, NULL);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+
+ esl_threads_Finished(obj, workeridx);
+ return;
+
+
+ERROR:
+
+ esl_fatal("Error allocating memory in work queue");
+ return;
+
+
+}
+#endif /* HMMER_THREADS */
+
+
+/*****************************************************************
+ * HMMER - Biological sequence analysis with profile HMMs
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
+ * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ *
+ * HMMER is distributed under the terms of the GNU General Public License
+ * (GPLv3). See the LICENSE file for details.
+ *
+ * SVN $Id: hmmscan.c 3976 2012-04-03 12:09:10Z eddys $
+ * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk/src/nhmmscan.c $
+ *****************************************************************/
+
diff --git a/hmmer/src/p7_alidisplay.c b/hmmer/src/p7_alidisplay.c
index b81783c..930c167 100644
--- a/hmmer/src/p7_alidisplay.c
+++ b/hmmer/src/p7_alidisplay.c
@@ -26,97 +26,6 @@
* 1. The P7_ALIDISPLAY object
*****************************************************************/
-/* Function: p7_alidisplay_pickHqBounds()
- * Synopsis: Compute conservative (high-quality) alignment boundaries
- * based aligned posterior probabilities (APP).
- *
- * Purpose: Each hit coming from the nhmmer pipeline brings with it
- * an APP array (in ddef->mocc) that indicates the confidence
- * nhmmer has that each position in the alignment is supposed
- * to be aligned to *some* state of the model. There are
- * typically only a few bases on either end that fall below
- * a threshold of, say 80% or 90%, though in some cases, the
- * length of such a low-quality terminal run can be pretty
- * long.
- *
- * This function a scans along from the left end to the right
- * until a position i with mocc matching <thresh> is found, then:
- * (a) if position i represents a positive-scoring match
- * to the model, it scans back left until the first
- * negative-scoring "mismatch" to the model at position j,
- * and sets ihq (the hq start) to j+1;
- * (b) if position i is a negative-scoring "mismatch", it
- * scans to the right until the first positive-scoring
- * match at position j, and sets ihq to j.
- * The symmetric computation is done from the right end of APP
- * to compute jhq.
- *
- * The result of the function is then to update the ihq and jhq
- * values for all hits in the <th> object.
- *
- * This function assumes the hits are found in th->hit, i.e.
- * that deduplication and sorting have already taken place
- *
- * For details about offsets into mocc, see
- * ~wheelert/notebook/2012/0203_app_hq_bounds/, (Feb 5)
- *
- * Args: ddef - object housing the mocc posterior probability array
- * ad - object holding the mline values used for the final edge
- * settlement and into which the hq-bounds will be stored
- * tr - trace, used in the position stepping
- * z1 - envelope start
- * z2 - envelope end
- * thresh - P-value threshold used in trimming
- *
- * Returns: <eslOK> on success.
- */
-static int
-p7_alidisplay_pickHqBounds(P7_DOMAINDEF *ddef, P7_ALIDISPLAY *ad, const P7_TRACE *tr, int z1, int z2, float thresh)
-{
- int z, i; /* counter over positions in the alignment */
-
- /*strange special case, should be gone with new (as of May 2012) domain definition machinery*/
- if (z1==z2){
- ad->hqto = ad->hqfrom = tr->i[z1];
- return eslOK;
- }
-
- /*scan left to right to find left boundary*/
- i = z1-2;
- for (z = z1 ; z < z2; z++) {
- if ( tr->st[z] != p7T_D ) { //skip delete states in the trace
- if (ddef->mocc[i++] >= thresh) break;
- }
- }
- if (z==z2) { /* no confidence!, set values to 0 */
- ad->hqto = ad->hqfrom = 0;
- return eslOK;
- }
- //walk left or right to add good terminal positions or trim bad ones.
- i=z-z1;
- while (i>0 && ad->mline[i] != ' ') i--; // positive score, so move out to the left
- while (ad->mline[i] == ' ') i++; // negative score, move back to right
- ad->hqfrom = tr->i[z1+i];
-
-
-
- /*scan right to left to find right boundary*/
- i = ddef->L + 1 - (tr->N - z2 - 3);
- for (z = z2 ; z > z1; z--) {
- if ( tr->st[z] != p7T_D ) { //skip delete states in the trace
- if (ddef->mocc[i--] >= thresh) break;
- }
- }
-
- //walk left or right to add good terminal positions or trim bad ones.
- i=z-z1;
- while (i<z2-z1 && ad->mline[i] != ' ') i++; // positive score, so move out to the right
- while (ad->mline[i] == ' ') i--; // negative score, move back to left
- ad->hqto = tr->i[z1+i];
-
-
- return eslOK;
-}
/* Function: p7_alidisplay_Create()
* Synopsis: Create an alignment display, from trace and oprofile.
@@ -139,6 +48,7 @@ p7_alidisplay_pickHqBounds(P7_DOMAINDEF *ddef, P7_ALIDISPLAY *ad, const P7_TRACE
* which - domain number, 0..tr->ndom-1
* om - optimized profile (query)
* sq - digital sequence (target)
+ * ntsq - text sequence (original nucleotide target in the case of translated search)
* ddef_app - optional posterior prob alignment line; only nhmmer sends a not-NULL value
*
* Returns: <eslOK> on success.
@@ -147,7 +57,7 @@ p7_alidisplay_pickHqBounds(P7_DOMAINDEF *ddef, P7_ALIDISPLAY *ad, const P7_TRACE
* in the data.
*/
P7_ALIDISPLAY *
-p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const ESL_SQ *sq, P7_DOMAINDEF *ddef_app)
+p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq)
{
P7_ALIDISPLAY *ad = NULL;
char *Alphabet = om->abc->sym;
@@ -157,6 +67,9 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
int hmm_namelen, hmm_acclen, hmm_desclen;
int sq_namelen, sq_acclen, sq_desclen;
int status;
+ char n1,n2,n3;
+ int j;
+ ESL_SQ *ntorfseqtxt = NULL;
/* First figure out which piece of the trace (from first match to last match)
* we're going to represent, and how big it is.
@@ -188,18 +101,19 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
* bookkeeping.
*/
n = (z2-z1+2) * 3; /* model, mline, aseq mandatory */
+
if (om->rf[0] != 0) n += z2-z1+2; /* optional reference line */
if (om->mm[0] != 0) n += z2-z1+2; /* optional reference line */
if (om->cs[0] != 0) n += z2-z1+2; /* optional structure line */
if (tr->pp != NULL) n += z2-z1+2; /* optional posterior prob line */
- if (ddef_app != NULL) n += z2-z1+2; /* optional posterior prob alignment line */
hmm_namelen = strlen(om->name); n += hmm_namelen + 1;
hmm_acclen = (om->acc != NULL ? strlen(om->acc) : 0); n += hmm_acclen + 1;
hmm_desclen = (om->desc != NULL ? strlen(om->desc) : 0); n += hmm_desclen + 1;
- sq_namelen = strlen(sq->name); n += sq_namelen + 1;
+
+ sq_namelen = strlen(sq->name); n += sq_namelen + 1;
sq_acclen = strlen(sq->acc); n += sq_acclen + 1; /* sq->acc is "\0" when unset */
sq_desclen = strlen(sq->desc); n += sq_desclen + 1; /* same for desc */
-
+
ESL_ALLOC(ad, sizeof(P7_ALIDISPLAY));
ad->mem = NULL;
@@ -207,13 +121,14 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
ad->memsize = sizeof(char) * n;
ESL_ALLOC(ad->mem, ad->memsize);
if (om->rf[0] != 0) { ad->rfline = ad->mem + pos; pos += z2-z1+2; } else { ad->rfline = NULL; }
- if (om->mm[0] != 0) { ad->mmline = ad->mem + pos; pos += z2-z1+2; } else { ad->mmline = NULL; }
+ //if (om->mm[0] != 0) { ad->mmline = ad->mem + pos; pos += z2-z1+2; } else { ad->mmline = NULL; }
+ ad->mmline = NULL;
if (om->cs[0] != 0) { ad->csline = ad->mem + pos; pos += z2-z1+2; } else { ad->csline = NULL; }
ad->model = ad->mem + pos; pos += z2-z1+2;
ad->mline = ad->mem + pos; pos += z2-z1+2;
ad->aseq = ad->mem + pos; pos += z2-z1+2;
+
if (tr->pp != NULL) { ad->ppline = ad->mem + pos; pos += z2-z1+2;} else { ad->ppline = NULL; }
- if (ddef_app != NULL) { ad->appline = ad->mem + pos; pos += z2-z1+2;} else { ad->appline = NULL; }
ad->hmmname = ad->mem + pos; pos += hmm_namelen +1;
ad->hmmacc = ad->mem + pos; pos += hmm_acclen +1;
ad->hmmdesc = ad->mem + pos; pos += hmm_desclen +1;
@@ -224,6 +139,7 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
strcpy(ad->hmmname, om->name);
if (om->acc != NULL) strcpy(ad->hmmacc, om->acc); else ad->hmmacc[0] = 0;
if (om->desc != NULL) strcpy(ad->hmmdesc, om->desc); else ad->hmmdesc[0] = 0;
+
strcpy(ad->sqname, sq->name);
strcpy(ad->sqacc, sq->acc);
strcpy(ad->sqdesc, sq->desc);
@@ -232,11 +148,11 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
ad->hmmfrom = tr->k[z1];
ad->hmmto = tr->k[z2];
ad->M = om->M;
+
ad->sqfrom = tr->i[z1];
- ad->sqto = tr->i[z2];
+ ad->sqto = tr->i[z2];
ad->L = sq->n;
-
/* optional rf line */
if (ad->rfline != NULL) {
for (z = z1; z <= z2; z++) ad->rfline[z-z1] = ((tr->st[z] == p7T_I) ? '.' : om->rf[tr->k[z]]);
@@ -261,16 +177,7 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
ad->ppline[z-z1] = '\0';
}
-
- /* optional app line */
- if (ddef_app != NULL && ddef_app->show_app) {
- for (z = z1, s = z-2 ; z <= z2; z++) ad->appline[z-z1] = ( (tr->st[z] == p7T_D) ? '.' : p7_alidisplay_EncodeAliPostProb(ddef_app->mocc[s++], ddef_app->app_hi, ddef_app->app_med, ddef_app->app_lo ));
- ad->appline[z-z1] = '\0';
- } else {
- ad->appline = NULL;
- }
-
-
+
/* mandatory three alignment display lines: model, mline, aseq */
for (z = z1; z <= z2; z++)
{
@@ -298,6 +205,7 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
ad->model [z-z1] = om->consensus[k];
ad->mline [z-z1] = ' ';
ad->aseq [z-z1] = '-';
+
break;
default: ESL_XEXCEPTION(eslEINVAL, "invalid state in trace: not M,D,I");
@@ -308,14 +216,9 @@ p7_alidisplay_Create(const P7_TRACE *tr, int which, const P7_OPROFILE *om, const
ad->aseq [z2-z1+1] = '\0';
ad->N = z2-z1+1;
+ esl_sq_Destroy(ntorfseqtxt);
- if (ddef_app != NULL) {
- /* pick APP-based hq bounds. This is done after mline is created,
- * as mline is used in the trimming process
- */
- p7_alidisplay_pickHqBounds(ddef_app, ad, tr, z1, z2, ddef_app->app_med);
- }
-
+
return ad;
ERROR:
@@ -342,7 +245,7 @@ p7_alidisplay_Clone(const P7_ALIDISPLAY *ad)
int status;
ESL_ALLOC(ad2, sizeof(P7_ALIDISPLAY));
- ad2->rfline = ad2->mmline = ad2->csline = ad2->model = ad2->mline = ad2->aseq = ad2->ppline = NULL;
+ ad2->rfline = ad2->mmline = ad2->csline = ad2->model = ad2->mline = ad2->aseq = ad2->ntseq = ad2->ppline = NULL;
ad2->hmmname = ad2->hmmacc = ad2->hmmdesc = NULL;
ad2->sqname = ad2->sqacc = ad2->sqdesc = NULL;
ad2->mem = NULL;
@@ -360,6 +263,7 @@ p7_alidisplay_Clone(const P7_ALIDISPLAY *ad)
ad2->model = ad2->mem + (ad->model - ad->mem);
ad2->mline = ad2->mem + (ad->mline - ad->mem);
ad2->aseq = ad2->mem + (ad->aseq - ad->mem);
+ ad2->ntseq = (ad->ntseq ? ad2->mem + (ad->ntseq - ad->mem) : NULL );
ad2->ppline = (ad->ppline ? ad2->mem + (ad->ppline - ad->mem) : NULL );
ad2->N = ad->N;
@@ -385,6 +289,7 @@ p7_alidisplay_Clone(const P7_ALIDISPLAY *ad)
if ( esl_strdup(ad->model, -1, &(ad2->model)) != eslOK) goto ERROR;
if ( esl_strdup(ad->mline, -1, &(ad2->mline)) != eslOK) goto ERROR;
if ( esl_strdup(ad->aseq, -1, &(ad2->aseq)) != eslOK) goto ERROR;
+ if ( esl_strdup(ad->ntseq, -1, &(ad2->ntseq)) != eslOK) goto ERROR;
if ( esl_strdup(ad->ppline, -1, &(ad2->ppline)) != eslOK) goto ERROR;
ad2->N = ad->N;
@@ -434,6 +339,7 @@ p7_alidisplay_Sizeof(const P7_ALIDISPLAY *ad)
if (ad->csline) n += ad->N+1;
if (ad->ppline) n += ad->N+1;
n += 3 * (ad->N+1); /* model, mline, aseq */
+ if (ad->ntseq) n += (3 * ad->N) + 1; /* ntseq */
n += 1 + strlen(ad->hmmname);
n += 1 + strlen(ad->hmmacc); /* optional acc, desc fields: when not present, just "" ("\0") */
n += 1 + strlen(ad->hmmdesc);
@@ -481,6 +387,7 @@ p7_alidisplay_Serialize(P7_ALIDISPLAY *ad)
memcpy(ad->mem+pos, ad->model, ad->N+1); free(ad->model); ad->model = ad->mem+pos; pos += ad->N+1;
memcpy(ad->mem+pos, ad->mline, ad->N+1); free(ad->mline); ad->mline = ad->mem+pos; pos += ad->N+1;
memcpy(ad->mem+pos, ad->aseq, ad->N+1); free(ad->aseq); ad->aseq = ad->mem+pos; pos += ad->N+1;
+ if (ad->ntseq) { memcpy(ad->mem+pos, ad->ntseq, (3*ad->N)+1); free(ad->ntseq); ad->ntseq = ad->mem+pos; pos += (3*ad->N)+1; }
if (ad->ppline) { memcpy(ad->mem+pos, ad->ppline, ad->N+1); free(ad->ppline); ad->ppline = ad->mem+pos; pos += ad->N+1; }
n = 1 + strlen(ad->hmmname); memcpy(ad->mem + pos, ad->hmmname, n); free(ad->hmmname); ad->hmmname = ad->mem+pos; pos += n;
n = 1 + strlen(ad->hmmacc); memcpy(ad->mem + pos, ad->hmmacc, n); free(ad->hmmacc); ad->hmmacc = ad->mem+pos; pos += n;
@@ -529,6 +436,7 @@ p7_alidisplay_Deserialize(P7_ALIDISPLAY *ad)
ESL_ALLOC(ad->model, sizeof(char) * ad->N+1); memcpy(ad->model, ad->mem+pos, ad->N+1); pos += ad->N+1;
ESL_ALLOC(ad->mline, sizeof(char) * ad->N+1); memcpy(ad->mline, ad->mem+pos, ad->N+1); pos += ad->N+1;
ESL_ALLOC(ad->aseq, sizeof(char) * ad->N+1); memcpy(ad->aseq, ad->mem+pos, ad->N+1); pos += ad->N+1;
+ if (ad->ntseq) { ESL_ALLOC(ad->ntseq, sizeof(char) * (3*ad->N)+1); memcpy(ad->ntseq, ad->mem+pos, (3*ad->N)+1); pos += (3*ad->N)+1; }
if (ad->ppline) { ESL_ALLOC(ad->ppline, sizeof(char) * ad->N+1); memcpy(ad->ppline, ad->mem+pos, ad->N+1); pos += ad->N+1; }
n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->hmmname, sizeof(char) * n); memcpy(ad->hmmname, ad->mem+pos, n); pos += n;
n = 1 + strlen(ad->mem+pos); ESL_ALLOC(ad->hmmacc, sizeof(char) * n); memcpy(ad->hmmacc, ad->mem+pos, n); pos += n;
@@ -552,6 +460,7 @@ p7_alidisplay_Deserialize(P7_ALIDISPLAY *ad)
if (ad->model != ad->mem+pos) { free(ad->model); ad->model = ad->mem+pos; } pos += ad->N+1;
if (ad->mline != ad->mem+pos) { free(ad->mline); ad->mline = ad->mem+pos; } pos += ad->N+1;
if (ad->aseq != ad->mem+pos) { free(ad->aseq); ad->aseq = ad->mem+pos; } pos += ad->N+1;
+ if (ad->ntseq) { if (ad->ntseq != ad->mem+pos) { free(ad->ntseq); ad->ntseq = ad->mem+pos; } pos += (3*ad->N)+1; }
if (ad->ppline) { if (ad->ppline != ad->mem+pos) { free(ad->ppline); ad->ppline = ad->mem+pos; } pos += ad->N+1; }
n = 1 + strlen(ad->hmmname); if (ad->hmmname != ad->mem+pos) { free(ad->hmmname); ad->hmmname = ad->mem+pos; } pos += n;
@@ -583,6 +492,7 @@ p7_alidisplay_Destroy(P7_ALIDISPLAY *ad)
if (ad->model) free(ad->model);
if (ad->mline) free(ad->mline);
if (ad->aseq) free(ad->aseq);
+ if (ad->ntseq) free(ad->ntseq);
if (ad->ppline) free(ad->ppline);
if (ad->hmmname) free(ad->hmmname);
if (ad->hmmacc) free(ad->hmmacc);
@@ -609,29 +519,6 @@ integer_textwidth(long n)
return w;
}
-/* Function: p7_alidisplay_EncodeAliPostProb()
- * Synopsis: Convert the posterior probability of a position aligning
- * toa core model state into a char code.
- *
- * Purpose: Convert the posterior probability <p> to
- * a character code used to visually assess the
- * confidence that a position should be included
- * at the boundary of an alignment.
- *
- * Returns a character from the class [HML-],
- * with 'H' if <p> >= <hi>
- * 'M' if <hi> > <p> >= <med>
- * 'L' if <med> > <p> >= <lo>
- * '-' if <p> < <lo>
- *
- * Returns: the encoded character.
- */
-char
-p7_alidisplay_EncodeAliPostProb(float p, float hi, float med, float lo)
-{
- //return (p >= 0.97) ? '*' : (p<0.7? '0' : (char) ((p-.67) * (100.0/3)) + '0');
- return (p >= hi ) ? 'H' : (p>med ? 'M' : (p>lo ? 'L' : '-'));
-}
/* Function: p7_alidisplay_EncodePostProb()
* Synopsis: Convert a posterior probability to a char code.
@@ -680,7 +567,6 @@ p7_alidisplay_DecodePostProb(char pc)
}
-
/* Function: p7_alidisplay_Print()
* Synopsis: Human readable output of <P7_ALIDISPLAY>
*
@@ -702,7 +588,36 @@ p7_alidisplay_DecodePostProb(char pc)
* Throws: <eslEWRITE> on write error, such as filling the disk.
*/
int
-p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, int show_accessions)
+p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, P7_PIPELINE *pli)
+{
+ int status;
+ if ((status = p7_nontranslated_alidisplay_Print(fp, ad, min_aliwidth, linewidth, pli->show_accessions)) != eslOK) return status;
+
+ return status;
+}
+
+/* Function: p7_nontranslated_alidisplay_Print()
+ * Synopsis: Human readable output of <P7_ALIDISPLAY>
+ *
+ * Purpose: Prints alignment <ad> to stream <fp>.
+ *
+ * Put at least <min_aliwidth> alignment characters per
+ * line; try to make lines no longer than <linewidth>
+ * characters, including name, coords, and spacing. The
+ * width of lines may exceed <linewidth>, if that's what it
+ * takes to put a name, coords, and <min_aliwidth>
+ * characters of alignment on a line.
+ *
+ * As a special case, if <linewidth> is negative or 0, then
+ * alignments are formatted in a single block of unlimited
+ * line length.
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEWRITE> on write error, such as filling the disk.
+ */
+int
+p7_nontranslated_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth, int show_accessions)
{
char *buf = NULL;
char *show_hmmname = NULL;
@@ -759,7 +674,6 @@ p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth
else { strncpy(buf, ad->aseq+pos, aliwidth); if (fprintf(fp, " %*s %*s %s %*s\n", namewidth, show_seqname, coordwidth, "-", buf, coordwidth, "-") < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); }
if (ad->ppline != NULL) { strncpy(buf, ad->ppline+pos, aliwidth); if (fprintf(fp, " %*s %s PP\n", namewidth+coordwidth+1, "", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); }
- if (ad->appline != NULL) { strncpy(buf, ad->appline+pos, aliwidth); if (fprintf(fp, " %*s %s APP\n", namewidth+coordwidth+1, "", buf) < 0) ESL_XEXCEPTION_SYS(eslEWRITE, "alignment display write failed"); }
k1 += nk;
if (ad->sqfrom < ad->sqto) i1 += ni;
@@ -774,7 +688,6 @@ p7_alidisplay_Print(FILE *fp, P7_ALIDISPLAY *ad, int min_aliwidth, int linewidth
return status;
}
-
/* Function: p7_alidisplay_Backconvert()
* Synopsis: Convert an alidisplay to a faux trace and subsequence.
*
@@ -968,6 +881,7 @@ p7_alidisplay_Compare(const P7_ALIDISPLAY *ad1, const P7_ALIDISPLAY *ad2)
if (esl_strcmp(ad1->model, ad2->model) != eslOK) return eslFAIL;
if (esl_strcmp(ad1->mline, ad2->mline) != eslOK) return eslFAIL;
if (esl_strcmp(ad1->aseq, ad2->aseq) != eslOK) return eslFAIL;
+ if (esl_strcmp(ad1->ntseq, ad2->ntseq) != eslOK) return eslFAIL;
if (esl_strcmp(ad1->ppline, ad2->ppline) != eslOK) return eslFAIL;
if (ad1->N != ad2->N) return eslFAIL;
@@ -1171,7 +1085,7 @@ create_faux_alidisplay(ESL_RANDOMNESS *rng, int N, P7_ALIDISPLAY **ret_ad)
guidestring[N] = '\0';
ESL_ALLOC(ad, sizeof(P7_ALIDISPLAY));
- ad->rfline = ad->mmline = ad->csline = ad->model = ad->mline = ad->aseq = ad->ppline = NULL;
+ ad->rfline = ad->mmline = ad->csline = ad->model = ad->mline = ad->aseq = ad->ntseq = ad->ppline = NULL;
ad->hmmname = ad->hmmacc = ad->hmmdesc = NULL;
ad->sqname = ad->sqacc = ad->sqdesc = NULL;
ad->mem = NULL;
@@ -1455,7 +1369,7 @@ main(int argc, char **argv)
p7_pli_NewSeq(pli, sq);
p7_bg_SetLength(bg, sq->n);
p7_oprofile_ReconfigLength(om, sq->n);
- p7_Pipeline(pli, om, bg, sq, hitlist);
+ p7_Pipeline(pli, om, bg, sq, NULL, hitlist);
if (hitlist->N == 0) { p7_Fail("target sequence doesn't hit"); }
@@ -1480,13 +1394,15 @@ main(int argc, char **argv)
#endif /*p7ALIDISPLAY_EXAMPLE*/
-/*****************************************************************
+/****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *****************************************************************/
-
+ *
+ * SVN $Id$
+ * SVN $URL$
+ ****************************************************************/
diff --git a/hmmer/src/p7_bg.c b/hmmer/src/p7_bg.c
index 4d87f26..d01e69e 100644
--- a/hmmer/src/p7_bg.c
+++ b/hmmer/src/p7_bg.c
@@ -753,15 +753,15 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_bg.c 3751 2011-11-17 22:46:50Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_bg.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/p7_builder.c b/hmmer/src/p7_builder.c
index f7f4230..efa4ebe 100644
--- a/hmmer/src/p7_builder.c
+++ b/hmmer/src/p7_builder.c
@@ -70,7 +70,7 @@ p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc)
bld->arch_strategy = p7_ARCH_FAST;
bld->wgt_strategy = p7_WGT_PB;
bld->effn_strategy = p7_EFFN_ENTROPY;
- seed = 0;
+ seed = 42;
}
else
{
@@ -84,6 +84,7 @@ p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc)
else if (esl_opt_GetBoolean(go, "--wgiven")) bld->wgt_strategy = p7_WGT_GIVEN;
if (esl_opt_GetBoolean(go, "--eent")) bld->effn_strategy = p7_EFFN_ENTROPY;
+ else if (esl_opt_GetBoolean(go, "--eentexp")) bld->effn_strategy = p7_EFFN_ENTROPY_EXP;
else if (esl_opt_GetBoolean(go, "--eclust")) bld->effn_strategy = p7_EFFN_CLUST;
else if (esl_opt_GetBoolean(go, "--enone")) bld->effn_strategy = p7_EFFN_NONE;
else if (esl_opt_IsOn (go, "--eset")) { bld->effn_strategy = p7_EFFN_SET; bld->eset = esl_opt_GetReal(go, "--eset"); }
@@ -91,7 +92,7 @@ p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc)
seed = esl_opt_GetInteger(go, "--seed");
}
- bld->do_uniform_insert = FALSE; // default
+ bld->max_insert_len = 0;
/* The default RE target is alphabet dependent. */
if (go != NULL && esl_opt_IsOn (go, "--ere"))
@@ -123,6 +124,7 @@ p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc)
* As a special case, seed==0 means choose an arbitrary seed and shut off the
* reinitialization; this allows run-to-run variation.
*/
+
bld->r = esl_randomness_CreateFast(seed);
bld->do_reseeding = (seed == 0) ? FALSE : TRUE;
@@ -137,10 +139,28 @@ p7_builder_Create(const ESL_GETOPTS *go, const ESL_ALPHABET *abc)
default: bld->prior = p7_prior_CreateLaplace(abc); break;
}
if (bld->prior == NULL) goto ERROR;
+ /*
+ if (go != NULL) {
+ if (esl_opt_IsOn(go, "--tmm")) bld->prior->tm->alpha[0][0] = esl_opt_GetReal(go, "--tmm"); // TMM
+ if (esl_opt_IsOn(go, "--tmi")) bld->prior->tm->alpha[0][1] = esl_opt_GetReal(go, "--tmi"); // TMM
+ if (esl_opt_IsOn(go, "--tmd")) bld->prior->tm->alpha[0][2] = esl_opt_GetReal(go, "--tmd"); // TMM
+
+ if (esl_opt_IsOn(go, "--tim")) bld->prior->ti->alpha[0][0] = esl_opt_GetReal(go, "--tim"); // TMM
+ if (esl_opt_IsOn(go, "--tii")) bld->prior->ti->alpha[0][1] = esl_opt_GetReal(go, "--tii"); // TMM
+
+ if (esl_opt_IsOn(go, "--tdm")) bld->prior->td->alpha[0][0] = esl_opt_GetReal(go, "--tdm"); // TMM
+ if (esl_opt_IsOn(go, "--tdd")) bld->prior->td->alpha[0][1] = esl_opt_GetReal(go, "--tdd"); // TMM
+ }
+ */
}
+
bld->abc = abc;
bld->errbuf[0] = '\0';
+
+ bld->popen = -1;
+ bld->pextend = -1;
+
return bld;
ERROR:
@@ -291,7 +311,11 @@ p7_builder_SetScoreSystem(P7_BUILDER *bld, const char *mxfile, const char *env,
if ((bld->S = esl_scorematrix_Create(bld->abc)) == NULL) { status = eslEMEM; goto ERROR; }
if (mxfile == NULL)
{
- if ((status = esl_scorematrix_Set("BLOSUM62", bld->S)) != eslOK) goto ERROR;
+ if (bld->abc->type == eslAMINO) {
+ if ((status = esl_scorematrix_Set("BLOSUM62", bld->S)) != eslOK) goto ERROR;
+ } else {
+ if ((status = esl_scorematrix_Set("DNA1", bld->S)) != eslOK) goto ERROR;
+ }
}
else
{
@@ -358,7 +382,6 @@ p7_builder_Destroy(P7_BUILDER *bld)
static int validate_msa (P7_BUILDER *bld, ESL_MSA *msa);
static int relative_weights (P7_BUILDER *bld, ESL_MSA *msa);
static int build_model (P7_BUILDER *bld, ESL_MSA *msa, P7_HMM **ret_hmm, P7_TRACE ***opt_tr);
-static int homogonize_inserts (P7_HMM *hmm);
static int effective_seqnumber (P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm, const P7_BG *bg);
static int parameterize (P7_BUILDER *bld, P7_HMM *hmm);
static int annotate (P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm);
@@ -404,8 +427,9 @@ static int make_post_msa (P7_BUILDER *bld, const ESL_MSA *premsa, cons
int
p7_Builder(P7_BUILDER *bld, ESL_MSA *msa, P7_BG *bg,
P7_HMM **opt_hmm, P7_TRACE ***opt_trarr, P7_PROFILE **opt_gm, P7_OPROFILE **opt_om,
- ESL_MSA **opt_postmsa)
+ ESL_MSA **opt_postmsa, FILE *seqweights_w_fp, FILE *seqweights_e_fp)
{
+ int i,j;
uint32_t checksum = 0; /* checksum calculated for the input MSA. hmmalign --mapali verifies against this. */
P7_HMM *hmm = NULL;
P7_TRACE **tr = NULL;
@@ -414,18 +438,38 @@ p7_Builder(P7_BUILDER *bld, ESL_MSA *msa, P7_BG *bg,
if ((status = validate_msa (bld, msa)) != eslOK) goto ERROR;
if ((status = esl_msa_Checksum (msa, &checksum)) != eslOK) ESL_XFAIL(status, bld->errbuf, "Failed to calculate checksum");
if ((status = relative_weights (bld, msa)) != eslOK) goto ERROR;
+ if (seqweights_w_fp != NULL) {
+ for (i = 0; i < msa->nseq; i++)
+ fprintf( seqweights_w_fp, "%.2f %s\n", msa->wgt[i], msa->sqname[i]) ;
+ }
+
if ((status = esl_msa_MarkFragments(msa, bld->fragthresh)) != eslOK) goto ERROR;
if ((status = build_model (bld, msa, &hmm, tr_ptr)) != eslOK) goto ERROR;
- if (bld->do_uniform_insert)
- if ((status = homogonize_inserts (hmm)) != eslOK) goto ERROR;
+
+ //Ensures that the weighted-average I->I count <= bld->max_insert_len
+ //(MI currently contains the number of observed insert-starts)
+ if (bld->max_insert_len>0)
+ for (i=1; i<hmm->M; i++ )
+ hmm->t[i][p7H_II] = ESL_MIN(hmm->t[i][p7H_II], bld->max_insert_len*hmm->t[i][p7H_MI]);
if ((status = effective_seqnumber (bld, msa, hmm, bg)) != eslOK) goto ERROR;
+ if (seqweights_e_fp != NULL) {
+ for (i = 0; i < msa->nseq; i++)
+ fprintf( seqweights_e_fp, "%.4f %s\n", msa->wgt[i], msa->sqname[i]) ;
+ }
if ((status = parameterize (bld, hmm)) != eslOK) goto ERROR;
if ((status = annotate (bld, msa, hmm)) != eslOK) goto ERROR;
if ((status = calibrate (bld, hmm, bg, opt_gm, opt_om)) != eslOK) goto ERROR;
if ((status = make_post_msa (bld, msa, hmm, tr, opt_postmsa)) != eslOK) goto ERROR;
+ //force masked positions to background (it'll be close already, so no relevant impact on weighting)
+ if (hmm->mm != NULL)
+ for (i=1; i<hmm->M; i++ )
+ if (hmm->mm[i] == 'm')
+ for (j=0; j<hmm->abc->K; j++)
+ hmm->mat[i][j] = bg->f[j];
+
if ( bld->abc->type == eslDNA || bld->abc->type == eslRNA ) {
if (bld->w_len > 0) hmm->max_length = bld->w_len;
else if (bld->w_beta == 0.0) hmm->max_length = hmm->M *4;
@@ -487,6 +531,13 @@ p7_SingleBuilder(P7_BUILDER *bld, ESL_SQ *sq, P7_BG *bg, P7_HMM **opt_hmm,
if ((status = p7_hmm_SetConsensus(hmm, sq)) != eslOK) goto ERROR;
if ((status = calibrate(bld, hmm, bg, opt_gm, opt_om)) != eslOK) goto ERROR;
+ if ( bld->abc->type == eslDNA || bld->abc->type == eslRNA ) {
+ if (bld->w_len > 0) hmm->max_length = bld->w_len;
+ else if (bld->w_beta == 0.0) hmm->max_length = hmm->M *4;
+ else if ( (status = p7_Builder_MaxLength(hmm, bld->w_beta)) != eslOK) goto ERROR;
+ }
+
+
/* build a faux trace: relative to core model (B->M_1..M_L->E) */
if (opt_tr != NULL)
{
@@ -523,8 +574,8 @@ p7_SingleBuilder(P7_BUILDER *bld, ESL_SQ *sq, P7_BG *bg, P7_HMM **opt_hmm,
*
* The idea is to find the length such that all but e.g. 1e-7 sequences emitted
* by the model are at most that long. The method conceptually fills in a table of
- * length at most max_len (set to 100,000), though in practice, only two columns are
- * used to store values;
+ * length at most length_bound (usually 20 * model_length, up to at most 100,000),
+ * though in practice, only two columns are used to store values;
*
* Letting i correspond to the ith state of the model,
* j to a length j of emitted sequence, and
@@ -609,6 +660,9 @@ p7_SingleBuilder(P7_BUILDER *bld, ESL_SQ *sq, P7_BG *bg, P7_HMM **opt_hmm,
* (1) each M[i] should contribute (1-t_md)M[i] to Y.
* (2) each D[i] should contribute (1-t_dd)D[i] to Y.
*
+ * If the probability threshold isn't met before reaching length_bound, then MAXL is
+ * simply set to length_bound (usually 20 * model_length).
+ *
*
* Args: hmm - p7_HMM (required for the transition probabilities)
*
@@ -624,11 +678,11 @@ p7_Builder_MaxLength (P7_HMM *hmm, double emit_thresh)
double surv; // surviving probability mass at length L; Y from above
int k; // active state in model
int i;
- int length_bound = 200000; // default cap on # iterations (aka max model length)
double **I = NULL;
double **M = NULL;
double **D = NULL;
- int model_len = hmm->M; // model length
+ int model_len = hmm->M; // model length
+ int length_bound = ESL_MAX(model_len, ESL_MIN(20*model_len, 100000)); // cap on # iterations (aka max model length)
int status;
if (model_len==1) {
@@ -636,6 +690,8 @@ p7_Builder_MaxLength (P7_HMM *hmm, double emit_thresh)
return eslOK;
}
+ hmm->max_length = length_bound; //default, if it never reaches the target surviving density
+
// double I[model_len+1][2], M[model_len+1][2], D[model_len+1][2]; //2 columns for each way of ending a subpath
ESL_ALLOC(I, (model_len+1) * sizeof(double*));
@@ -716,7 +772,7 @@ p7_Builder_MaxLength (P7_HMM *hmm, double emit_thresh)
free(M);
free(D);
- if (hmm->max_length >= length_bound) return eslERANGE;
+ if (hmm->max_length > length_bound) return eslERANGE;
return eslOK;
ERROR:
@@ -821,54 +877,6 @@ build_model(P7_BUILDER *bld, ESL_MSA *msa, P7_HMM **ret_hmm, P7_TRACE ***opt_tr)
return status;
}
-/* homogonize_inserts()
- *
- * <hmm> comes in with weighted observed counts. It goes out with
- * the observed counts for transitions p7H_II and p7H_MI distributed
- * equally among all positions.
- */
-static int
-homogonize_inserts(P7_HMM *hmm)
-{
- int i;
- float tii = 0.0;
- float tmi = 0.0;
- float dmi;
- float tm_md;
-
- /* Get total counts for M->I and I->I transitions
- * Ignore position M, as its insert state isn't reached.
- */
- for (i=1; i<hmm->M; i++ ) {
- tii += hmm->t[i][p7H_II];
- tmi += hmm->t[i][p7H_MI];
- }
-
-
- //these is the avg counts per position
- tii /= (hmm->M-1);
- tmi /= (hmm->M-1);
-
- //assign those avg counts per position
- for (i=1; i<hmm->M; i++ ) {
-
- hmm->t[i][p7H_II] = tii;
- hmm->t[i][p7H_IM] = tmi; //(I->M == M->I by design).
-
- dmi = tmi - hmm->t[i][p7H_MI]; //change
- hmm->t[i][p7H_MI] = tmi;
-
- /* the change to M->I counts should be offset by
- * changes to the M->M or M->D counts
- */
- tm_md = hmm->t[i][p7H_MM] + hmm->t[i][p7H_MD];
- hmm->t[i][p7H_MM] -= (tm_md == 0 ? 0 : (dmi * hmm->t[i][p7H_MM]/tm_md)) ;
- hmm->t[i][p7H_MD] -= (tm_md == 0 ? 0 : (dmi * hmm->t[i][p7H_MD]/tm_md)) ;
-
- }
-
- return eslOK;
-}
/* set_effective_seqnumber()
@@ -887,35 +895,63 @@ static int
effective_seqnumber(P7_BUILDER *bld, const ESL_MSA *msa, P7_HMM *hmm, const P7_BG *bg)
{
int status;
+ int i;
- if (bld->effn_strategy == p7_EFFN_NONE) hmm->eff_nseq = msa->nseq;
- else if (bld->effn_strategy == p7_EFFN_SET) hmm->eff_nseq = bld->eset;
- else if (bld->effn_strategy == p7_EFFN_CLUST)
- {
- int nclust;
-
- status = esl_msacluster_SingleLinkage(msa, bld->eid, NULL, NULL, &nclust);
- if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed");
- else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "single linkage clustering algorithm (at %d%% id) failed", (int)(100 * bld->eid));
-
- hmm->eff_nseq = (double) nclust;
- }
-
- else if (bld->effn_strategy == p7_EFFN_ENTROPY)
- {
+ if (bld->effn_strategy == p7_EFFN_ENTROPY_EXP) {
double etarget;
double eff_nseq;
-
+ double exp;
etarget = (bld->esigma - eslCONST_LOG2R * log( 2.0 / ((double) hmm->M * (double) (hmm->M+1)))) / (double) hmm->M; /* xref J5/36. */
etarget = ESL_MAX(bld->re_target, etarget);
- status = p7_EntropyWeight(hmm, bg, bld->prior, etarget, &eff_nseq);
+ status = p7_EntropyWeight_exp(hmm, bg, bld->prior, etarget, &exp);
if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed");
else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "internal failure in entropy weighting algorithm");
+
+ p7_hmm_ScaleExponential(hmm, exp);
+
+ for (i = 1; i <= hmm->M; i++)
+ eff_nseq += esl_vec_FSum(hmm->mat[i], hmm->abc->K);
+
+
+ eff_nseq /= hmm->M;
hmm->eff_nseq = eff_nseq;
+
+ } else {
+
+ if (bld->effn_strategy == p7_EFFN_NONE) hmm->eff_nseq = msa->nseq;
+ else if (bld->effn_strategy == p7_EFFN_SET) hmm->eff_nseq = bld->eset;
+ else if (bld->effn_strategy == p7_EFFN_CLUST)
+ {
+ int nclust;
+
+ status = esl_msacluster_SingleLinkage(msa, bld->eid, NULL, NULL, &nclust);
+ if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed");
+ else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "single linkage clustering algorithm (at %d%% id) failed", (int)(100 * bld->eid));
+
+ hmm->eff_nseq = (double) nclust;
}
-
- p7_hmm_Scale(hmm, hmm->eff_nseq / (double) hmm->nseq);
+ else if (bld->effn_strategy == p7_EFFN_ENTROPY)
+ {
+ double etarget;
+ double eff_nseq;
+ etarget = (bld->esigma - eslCONST_LOG2R * log( 2.0 / ((double) hmm->M * (double) (hmm->M+1)))) / (double) hmm->M; /* xref J5/36. */
+ etarget = ESL_MAX(bld->re_target, etarget);
+
+ status = p7_EntropyWeight(hmm, bg, bld->prior, etarget, &eff_nseq);
+ if (status == eslEMEM) ESL_XFAIL(status, bld->errbuf, "memory allocation failed");
+ else if (status != eslOK) ESL_XFAIL(status, bld->errbuf, "internal failure in entropy weighting algorithm");
+ hmm->eff_nseq = eff_nseq;
+ }
+
+ p7_hmm_Scale(hmm, hmm->eff_nseq / (double) hmm->nseq);
+
+ }
+
+ //this re-assignment of the wgt values is done in support of hmmbuild's --seq_weights_e flag
+ for (i = 0; i < msa->nseq; i++)
+ msa->wgt[i] *= (hmm->eff_nseq / (double) hmm->nseq);
+
return eslOK;
ERROR:
@@ -1003,7 +1039,7 @@ static int
make_post_msa(P7_BUILDER *bld, const ESL_MSA *premsa, const P7_HMM *hmm, P7_TRACE **tr, ESL_MSA **opt_postmsa)
{
ESL_MSA *postmsa = NULL;
- int optflags = p7_ALL_CONSENSUS_COLS;
+ int optflags = p7_DEFAULT;
int status;
if (opt_postmsa == NULL) return eslOK;
@@ -1030,13 +1066,13 @@ make_post_msa(P7_BUILDER *bld, const ESL_MSA *premsa, const P7_HMM *hmm, P7_TRAC
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_builder.c 4285 2012-11-05 10:59:57Z nawrockie $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_builder.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/p7_config.h.in b/hmmer/src/p7_config.h.in
index 023593c..ef09429 100644
--- a/hmmer/src/p7_config.h.in
+++ b/hmmer/src/p7_config.h.in
@@ -1,8 +1,8 @@
/* @configure_input@
- * p7config.h.in -> p7config.h
+ * p7_config.h.in -> p7_config.h
*
- * p7config.h is generated from p7config.h.in by the ./configure script.
- * DO NOT EDIT p7config.h; only edit p7config.h.in.
+ * p7_config.h is generated from p7_config.h.in by the ./configure script.
+ * DO NOT EDIT p7_config.h; only edit p7_config.h.in.
*
* Configuration of HMMER, including both system-dependent configuration
* (done by ./configure) and hardcoded configuration that someone might
@@ -12,8 +12,7 @@
* (for example, LFS support), it must be included before any other
* header file.
*
- * SRE, Mon Jan 1 16:07:28 2007 [Casa de Gatos] [Nirvana, Nevermind]
- * SVN $Id: p7_config.h.in 4326 2012-12-05 19:02:25Z nawrockie $
+ * SRE, Mon Jan 1 16:07:28 2007 [Casa de Gatos]
*/
#ifndef P7_CONFIGH_INCLUDED
#define P7_CONFIGH_INCLUDED
@@ -50,7 +49,7 @@
* These are empirically tuned constants,
*/
#define p7_ETARGET_AMINO 0.59 /* bits, from the work of Steve Johnson. */
-#define p7_ETARGET_DNA 0.45 /* bits, from the work of Travis Wheeler. */
+#define p7_ETARGET_DNA 0.62 /* bits, from the work of Travis Wheeler and Robert Hubley. */
#define p7_ETARGET_OTHER 1.0 /* bits */ /* if you define your own alphabet, set this */
@@ -108,24 +107,13 @@
#undef p7_IMPL_VMX
#undef p7_IMPL_DUMMY
+
/* System headers
*/
-#undef HAVE_STRINGS_H
-
-#undef HAVE_ENDIAN_H
-#undef HAVE_INTTYPES_H
-#undef HAVE_STDINT_H
-#undef HAVE_UNISTD_H
-#undef HAVE_SYS_TYPES_H
-#undef HAVE_NETINET_IN_H /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
-
-#undef HAVE_SYS_PARAM_H /* On OpenBSD, sys/sysctl.h needs sys/param.h */
+#undef HAVE_NETINET_IN_H /* On FreeBSD, you need netinet/in.h for struct sockaddr_in */
+#undef HAVE_SYS_PARAM_H /* On OpenBSD, sys/sysctl.h needs sys/param.h */
#undef HAVE_SYS_SYSCTL_H
-#undef HAVE_XMMINTRIN_H /* SSE */
-#undef HAVE_EMMINTRIN_H /* SSE2 */
-#undef HAVE_PMMINTRIN_H /* SSE3 */
-
/* Optional parallel implementations
*/
#undef HAVE_SSE2
@@ -146,8 +134,8 @@
#endif /*P7_CONFIGH_INCLUDED*/
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/p7_domaindef.c b/hmmer/src/p7_domaindef.c
index 94cc43d..2b91bdc 100644
--- a/hmmer/src/p7_domaindef.c
+++ b/hmmer/src/p7_domaindef.c
@@ -31,7 +31,7 @@
* all the necessary working memory and heuristic thresholds.
*
* SRE, Thu Jan 24 09:28:01 2008 [Janelia]
- * SVN $Id: p7_domaindef.c 4016 2012-05-01 03:56:41Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -42,13 +42,14 @@
#include "esl_random.h"
#include "esl_sq.h"
#include "esl_vectorops.h"
+#include "esl_sse.h"
#include "hmmer.h"
static int is_multidomain_region (P7_DOMAINDEF *ddef, int i, int j);
static int region_trace_ensemble (P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *dsq, int ireg, int jreg, const P7_OMX *fwd, P7_OMX *wrk, int *ret_nc);
-static int rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_DOMAINDEF *ddef_app, const P7_OPROFILE *om, const ESL_SQ *sq, P7_OMX *ox1, P7_OMX *ox2,
- int i, int j, int null2_is_done, P7_BG *bg, int long_target);
+static int rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_OMX *ox1, P7_OMX *ox2,
+ int i, int j, int null2_is_done, P7_BG *bg, int long_target, P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr);
/*****************************************************************
@@ -197,10 +198,10 @@ p7_domaindef_Reuse(P7_DOMAINDEF *ddef)
else
{
for (d = 0; d < ddef->ndom; d++) {
- p7_alidisplay_Destroy(ddef->dcl[d].ad);
- ddef->dcl[d].ad = NULL;
+ p7_alidisplay_Destroy(ddef->dcl[d].ad); ddef->dcl[d].ad = NULL;
+ free(ddef->dcl[d].scores_per_pos); ddef->dcl[d].scores_per_pos = NULL;
}
-
+
}
ddef->ndom = 0;
ddef->L = 0;
@@ -284,7 +285,6 @@ void
p7_domaindef_Destroy(P7_DOMAINDEF *ddef)
{
int d;
-
if (ddef == NULL) return;
if (ddef->mocc != NULL) free(ddef->mocc);
@@ -293,8 +293,10 @@ p7_domaindef_Destroy(P7_DOMAINDEF *ddef)
if (ddef->n2sc != NULL) free(ddef->n2sc);
if (ddef->dcl != NULL) {
- for (d = 0; d < ddef->ndom; d++)
+ for (d = 0; d < ddef->ndom; d++) {
+ if (ddef->dcl[d].scores_per_pos) free(ddef->dcl[d].scores_per_pos);
p7_alidisplay_Destroy(ddef->dcl[d].ad);
+ }
free(ddef->dcl);
}
@@ -328,7 +330,7 @@ p7_domaindef_Destroy(P7_DOMAINDEF *ddef)
* Returns: <eslOK> on success.
*/
int
-p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, P7_GMX *gx1, P7_GMX *gx2, P7_DOMAINDEF *ddef)
+p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_GMX *gx1, P7_GMX *gx2, P7_DOMAINDEF *ddef)
{
int d;
int saveL = gm->L; /* need to be able to restore original <gm> config */
@@ -341,7 +343,7 @@ p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, P7_GMX *gx1, P7_GMX *gx
p7_ReconfigUnihit(gm, 0); /* process each domain in unihit L=0 mode */
for (d = 0; d < ddef->gtr->ndom; d++)
- rescore_isolated_domain(ddef, gm, sq, gx1, gx2, ddef->gtr->sqfrom[d], ddef->gtr->sqto[d], FALSE, NULL, FALSE);
+ rescore_isolated_domain(ddef, gm, sq, ntsq, gx1, gx2, ddef->gtr->sqfrom[d], ddef->gtr->sqto[d], FALSE, NULL, FALSE, NULL, NULL, NULL);
/* Restore original model configuration, including length */
if (p7_IsMulti(save_mode)) p7_ReconfigMultihit(gm, saveL);
@@ -363,11 +365,8 @@ p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, P7_GMX *gx1, P7_GMX *gx
* calculations) and obtain an optimal accuracy alignment,
* using <fwd> and <bck> matrices as workspace for the
* necessary full-matrix DP calculations. Caller provides a
- * new or reused <ddef> object to hold these results, and
- * optionally provides a new or reused <ddef_app> object to
- * hold details required by nhmmer to produce the APP
- * (posterior probability of being aligned) line in
- * alignment printout. A <bg> is provided for (possible) use
+ * new or reused <ddef> object to hold these results.
+ * A <bg> is provided for (possible) use
* in null3 score correction (used in nhmmer), and a boolean
* <long_target> argument is provided to allow nhmmer-
* specific modifications to the behavior of this function
@@ -376,7 +375,6 @@ p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, P7_GMX *gx1, P7_GMX *gx
* Upon return, <ddef> contains the definitions of all the
* domains: their bounds, their null-corrected Forward
* scores, and their optimal posterior accuracy alignments.
- * If <ddef_app> is not null, it is now prepared for reuse.
*
* Returns: <eslOK> on success.
*
@@ -385,9 +383,11 @@ p7_domaindef_ByViterbi(P7_PROFILE *gm, const ESL_SQ *sq, P7_GMX *gx1, P7_GMX *gx
* models.
*/
int
-p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, P7_OPROFILE *om,
+p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, const ESL_SQ *ntsq, P7_OPROFILE *om,
P7_OMX *oxf, P7_OMX *oxb, P7_OMX *fwd, P7_OMX *bck,
- P7_DOMAINDEF *ddef, P7_DOMAINDEF *ddef_app, P7_BG *bg, int long_target)
+ P7_DOMAINDEF *ddef, P7_BG *bg, int long_target,
+ P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr
+)
{
int i, j;
int triggered;
@@ -408,8 +408,10 @@ p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, P7_OPROFILE *om,
p7_oprofile_ReconfigUnihit(om, saveL); /* process each domain in unihit mode, regardless of om->mode */
i = -1;
triggered = FALSE;
+
for (j = 1; j <= sq->n; j++)
{
+
if (! triggered)
{ /* xref J2/101 for what the logic below is: */
if (ddef->mocc[j] - (ddef->btot[j] - ddef->btot[j-1]) < ddef->rt2) i = j;
@@ -469,7 +471,7 @@ p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, P7_OPROFILE *om,
/*the !long_target argument will cause the function to recompute null2
* scores if this is part of a long_target (nhmmer) pipeline */
- if (rescore_isolated_domain(ddef, ddef_app, om, sq, fwd, bck, i2, j2, TRUE, bg, long_target) == eslOK)
+ if (rescore_isolated_domain(ddef, om, sq, ntsq, fwd, bck, i2, j2, TRUE, bg, long_target, bg_tmp, scores_arr, fwd_emissions_arr) == eslOK)
last_j2 = j2;
}
p7_spensemble_Reuse(ddef->sp);
@@ -479,13 +481,14 @@ p7_domaindef_ByPosteriorHeuristics(const ESL_SQ *sq, P7_OPROFILE *om,
{
/* The region looks simple, single domain; convert the region to an envelope. */
ddef->nenvelopes++;
- rescore_isolated_domain(ddef, ddef_app, om, sq, fwd, bck, i, j, FALSE, bg, long_target);
+ rescore_isolated_domain(ddef, om, sq, ntsq, fwd, bck, i, j, FALSE, bg, long_target, bg_tmp, scores_arr, fwd_emissions_arr);
}
i = -1;
triggered = FALSE;
}
}
+
/* Restore model to uni/multihit mode, and to its original length model */
if (p7_IsMulti(save_mode)) p7_oprofile_ReconfigMultihit(om, saveL);
else p7_oprofile_ReconfigUnihit (om, saveL);
@@ -677,6 +680,79 @@ region_trace_ensemble(P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *
return eslOK;
}
+
+
+
+/* Function: reparameterize_model()
+ *
+ * Synopsis: Establish new background priors based on a sequence window,
+ * and change match state emission log-odds scores accordingly.
+ *
+ * Purpose: Compute new background priors based on a sequence window,
+ * and set match search model's match state emission log-odds
+ * scores accordingly. Used narrowly within the post-fwd
+ * portion of the longtarget pipeline
+ *
+ * If sq != NULL: Given a sequence <sq> and <start> and length
+ * <L>, compute the residue frequency, and modify <bg> in place
+ * to store a mixture of that frequency with the default (passed
+ * in <bg>). Then update the match emission scores in place in
+ * <om> to account for new <bg> values. Prior bg values are
+ * stored for return in <bgf_arr>. This is called by
+ * rescore_isolated_domain(), which is required to call it again
+ * once complete to return <bg> and <om> to original state.
+ *
+ *
+ * If sq == NULL: return <bg> and <om> to original state.
+ *
+ * Only used in the longtarget (nhmmer) case. In-place
+ * modification is done to avoid rampant memory allocation.
+ * Doing this requires that (a) each thread has its own
+ * independent copy of <bg> and <om>, and (b) those are
+ * returned to their original state before being used
+ * outside the function using the modified structures.
+ *
+ * The pre-allocated array <sc_tmp> must be passed, for use
+ * in p7_oprofile_UpdateFwdEmissionScores().
+ *
+ */
+static int
+reparameterize_model (P7_BG *bg, P7_OPROFILE *om, const ESL_SQ *sq, int start, int L, float *fwd_emissions, float *bgf_arr, float *sc_arr) {
+ int K = om->abc->K;
+ int i;
+ float tmp;
+ int status;
+
+ /* Fraction of new bg frequencies that comes from a prior determined by the sequence block.
+ * This is 25% for long sequences, more for shorter sequences (e.g. 50% for sequences of length 50)
+ */
+ float bg_smooth = 1.; // will be modified immediately below, if it's used
+
+ if (sq != NULL) {
+ /* compute new bg->f, capturing original values into a preallocated array */
+ bg_smooth = 25.0 / (ESL_MIN(100,ESL_MAX(50,sq->n)));
+
+ esl_vec_FSet (bgf_arr, om->abc->K, 0);
+ status = esl_sq_CountResidues(sq, start, L, bgf_arr);
+ if (status != eslOK) p7_Fail("Invalid sequence range in reparameterize_model()\n");
+ esl_vec_FNorm(bgf_arr, om->abc->K);
+
+ for (i=0; i<K; i++) {
+ tmp = bg->f[i];
+ bg->f[i] = (bg_smooth*bg->f[i]) + ( (1.0-bg_smooth) * bgf_arr[i]) ;
+ bgf_arr[i] = tmp;
+ }
+ } else {
+ /* revert bg->f to the passed in orig_bgf */
+ esl_vec_FCopy(bgf_arr, K, bg->f);
+ }
+
+ p7_oprofile_UpdateFwdEmissionScores(om, bg, fwd_emissions, sc_arr);
+
+ return eslOK;
+}
+
+
/* rescore_isolated_domain()
* SRE, Fri Feb 8 09:18:33 2008 [Janelia]
*
@@ -701,15 +777,16 @@ region_trace_ensemble(P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *
* sufficient for the complete sequence lying around, and can just use
* those.) The caller also provides a <P7_DOMAINDEF> object (ddef)
* which is (efficiently, we trust) managing any necessary temporary
- * working space and heuristic thresholds. The caller also optionally
- * provides a second <P7_DOMAINDEF> object (ddef_app) which if
- * provided is used to hold details required by nhmmer to produce the
- * APP (posterior probability of being aligned) line in alignment
- * printout.
+ * working space and heuristic thresholds.
*
- * If <long_target> is TRUE, null3 biased-composition score correction
- * is used, and <bg> is required. Otherwise null2 is used, and <bg>
- * may be NULL.
+ * If <long_target> is TRUE, the calling function optionally
+ * passes in three allocated arrays (bgf_arr, scores_arr,
+ * fwd_emissions_arr) used for temporary storage in
+ * reparameterize_model(), and a previously computed array block_bg
+ * of residue frequencies for the long_target block from which this
+ * envelope came (if scores_arr is NULL, reparameterization is not
+ * done, and the domcorrection, used to determine null2, is not
+ * computed).
*
* Returns <eslOK> if a domain was successfully identified, scored,
* and aligned in the envelope; if so, the per-domain information is
@@ -721,7 +798,6 @@ region_trace_ensemble(P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *
* the OA trace of the domain. Before exit, we called
* <Reuse()> on it.
*
- * <ddef_app>: if not null, it is now prepared for reuse.
*
* <ox1> : happens to be holding OA score matrix for the domain
* upon return, but that's not part of the spec; officially
@@ -733,8 +809,9 @@ region_trace_ensemble(P7_DOMAINDEF *ddef, const P7_OPROFILE *om, const ESL_DSQ *
* spec just makes its contents "undefined".
*/
static int
-rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_DOMAINDEF *ddef_app, const P7_OPROFILE *om, const ESL_SQ *sq,
- P7_OMX *ox1, P7_OMX *ox2, int i, int j, int null2_is_done, P7_BG *bg, int long_target)
+rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_OPROFILE *om, const ESL_SQ *sq, const ESL_SQ *ntsq,
+ P7_OMX *ox1, P7_OMX *ox2, int i, int j, int null2_is_done, P7_BG *bg, int long_target,
+ P7_BG *bg_tmp, float *scores_arr, float *fwd_emissions_arr)
{
P7_DOMAIN *dom = NULL;
int Ld = j-i+1;
@@ -744,27 +821,33 @@ rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_DOMAINDEF *ddef_app, const P7_OPR
int pos;
float null2[p7_MAXCODE];
int status;
- float null3_corr;
+ int max_env_extra = 20;
+ int orig_L;
- p7_Forward (sq->dsq + i-1, Ld, om, ox1, &envsc);
- p7_Backward(sq->dsq + i-1, Ld, om, ox1, ox2, NULL);
- if (ddef_app != NULL) {
- //grab mocc values for computing confidence of alignment-inclusion boundaries
- if ((status = p7_domaindef_GrowTo(ddef_app, Ld)) != eslOK) return status; /* ddef_app btot,etot,mocc now ready*/
- if ((status = p7_DomainDecoding(om, ox1, ox2, ddef_app)) != eslOK && status != eslERANGE) return status; /* ddef_app->{btot,etot,mocc} now made. */
+ if (long_target) {
+ //temporarily change model length to env_len. The nhmmer pipeline will tack
+ //on the appropriate cost to account for the longer actual window
+ orig_L = om->L;
+ p7_oprofile_ReconfigRestLength(om, j-i+1);
+ }
+
+ if (long_target && scores_arr!=NULL) {
+ // Modify bg and om in-place to avoid having to clone (allocate) a massive
+ // number of times when there are many hits
+ reparameterize_model (bg, om, sq, i, j-i+1, fwd_emissions_arr, bg_tmp->f, scores_arr);
}
+ p7_Forward (sq->dsq + i-1, Ld, om, ox1, &envsc);
+ p7_Backward(sq->dsq + i-1, Ld, om, ox1, ox2, NULL);
status = p7_Decoding(om, ox1, ox2, ox2); /* <ox2> is now overwritten with post probabilities */
if (status == eslERANGE) return eslFAIL; /* rare: numeric overflow; domain is assumed to be repetitive garbage [J3/119-212] */
-
/* Find an optimal accuracy alignment */
p7_OptimalAccuracy(om, ox2, ox1, &oasc); /* <ox1> is now overwritten with OA scores */
p7_OATrace (om, ox2, ox1, ddef->tr); /* <tr>'s seq coords are offset by i-1, rel to orig dsq */
-
/* hack the trace's sq coords to be correct w.r.t. original dsq */
for (z = 0; z < ddef->tr->N; z++)
if (ddef->tr->i[z] > 0) ddef->tr->i[z] += i-1;
@@ -772,65 +855,114 @@ rescore_isolated_domain(P7_DOMAINDEF *ddef, P7_DOMAINDEF *ddef_app, const P7_OPR
/* get ptr to next empty domain structure in domaindef's results */
if (ddef->ndom == ddef->nalloc) {
ESL_REALLOC(ddef->dcl, sizeof(P7_DOMAIN) * (ddef->nalloc*2));
- ddef->nalloc *= 2;
+ ddef->nalloc *= 2;
}
dom = &(ddef->dcl[ddef->ndom]);
+ dom->ad = p7_alidisplay_Create(ddef->tr, 0, om, sq, ntsq);
+ dom->scores_per_pos = NULL;
- /* store the results in it */
- dom->ad = p7_alidisplay_Create(ddef->tr, 0, om, sq, ddef_app);
- dom->iali = dom->ad->sqfrom;
- dom->jali = dom->ad->sqto;
- dom->ihq = dom->ad->hqfrom;
- dom->jhq = dom->ad->hqto;
- dom->ienv = i;
- dom->jenv = j;
- dom->envsc = envsc; /* in units of NATS */
- dom->oasc = oasc; /* in units of expected # of correctly aligned residues */
- dom->dombias = 0.0; /* gets set later, using bg->omega and dombias */
- dom->bitscore = 0.0; /* gets set later by caller, using envsc, null score, and dombias */
- dom->lnP = 0.0; /* gets set later by caller, using bitscore */
- dom->is_reported = FALSE; /* gets set later by caller */
- dom->is_included = FALSE; /* gets set later by caller */
+ /* For long target DNA, it's common to see a huge envelope (>1Kb longer than alignment), usually
+ * involving simple repeat part of model that attracted similar segments of the repeatedly, to
+ * acquire a large total score. Now that we have alignment boundaries, re-run Fwd/Bkwd to trim away
+ * such a long envelope and estimate the true score of the hit region
+ */
+ if (long_target) {
+ if ( i < dom->ad->sqfrom-max_env_extra //trim the left side of the envelope
+ || j > dom->ad->sqto+max_env_extra //trim the right side of the envelope
+ ) {
- /* Compute bias correction
- *
- * Is null2 set already for this i..j? (It is, if we're in a domain that
- * was defined by stochastic traceback clustering in a multidomain region;
- * it isn't yet, if we're in a simple one-domain region). If it isn't,
- * do it now, by the expectation (posterior decoding) method.
- */
- if (long_target || !null2_is_done) {
- p7_Null2_ByExpectation(om, ox2, null2);
- for (pos = i; pos <= j; pos++)
- ddef->n2sc[pos] = logf(null2[sq->dsq[pos]]);
- }
- for (pos = i; pos <= j; pos++)
- domcorrection += ddef->n2sc[pos]; /* domcorrection is in units of NATS */
+ //trim in the envelope, and do it again
+ i = ESL_MAX(i,dom->ad->sqfrom-max_env_extra);
+ j = ESL_MIN(j,dom->ad->sqto+max_env_extra);
+ Ld = j - i + 1;
- if (long_target) {
- /* for long_target case, merge in the results of two null3 correction
- * see ~/notebook/2012/0214_Dfam_false_positives/00NOTES 02/19 for details
- *
- * bias composition is based only on the aligned positions:
- */
- if (bg->use_null3) {
- p7_null3_score(om->abc, sq->dsq, NULL /*don't use trace*/, dom->iali, dom->jali, bg, &null3_corr);
- domcorrection = p7_FLogsum (domcorrection, null3_corr);
+ //temporarily change model length to env_len. The nhmmer pipeline will tack
+ //on the appropriate cost to account for the longer actual window
+ p7_oprofile_ReconfigRestLength(om, j-i+1);
+
+ if (scores_arr!=NULL) {
+ //revert bg and om back to original, then forward to new values
+ reparameterize_model (bg, om, NULL, 0, 0, fwd_emissions_arr, bg_tmp->f, scores_arr);
+ reparameterize_model (bg, om, sq, i, Ld, fwd_emissions_arr, bg_tmp->f, scores_arr);
+ }
+
+ p7_Forward (sq->dsq + i-1, Ld, om, ox1, &envsc);
+ p7_Backward(sq->dsq + i-1, Ld, om, ox1, ox2, NULL);
+
+ status = p7_Decoding(om, ox1, ox2, ox2); /* <ox2> is now overwritten with post probabilities */
+ if (status == eslERANGE) return eslFAIL; /* rare: numeric overflow; domain is assumed to be repetitive garbage [J3/119-212] */
+
+ /* Find an optimal accuracy alignment */
+ p7_OptimalAccuracy(om, ox2, ox1, &oasc); /* <ox1> is now overwritten with OA scores */
+ p7_trace_Reuse(ddef->tr);
+ p7_OATrace (om, ox2, ox1, ddef->tr); /* <tr>'s seq coords are offset by i-1, rel to orig dsq */
+
+ /* re-hack the trace's sq coords to be correct w.r.t. original dsq */
+ for (z = 0; z < ddef->tr->N; z++)
+ if (ddef->tr->i[z] > 0) ddef->tr->i[z] += i-1;
+
+ /* store the results in it, first destroying the old alidisplay object */
+ p7_alidisplay_Destroy(dom->ad);
+ dom->ad = p7_alidisplay_Create(ddef->tr, 0, om, sq, NULL);
}
- if (bg->use_null3w) {
- p7_null3_windowed_score(om->abc, sq->dsq, dom->iali, dom->jali, bg, &null3_corr);
- domcorrection = p7_FLogsum (domcorrection, null3_corr);
+
+ /* Estimate bias correction, by computing what the score would've been without
+ * reparameterization
+ */
+ domcorrection = envsc;
+ if (scores_arr!=NULL) { //revert bg and om back to original,
+ //and while I'm at it, capture what the default parameterized score would have been, for "null2"
+ reparameterize_model (bg, om, NULL, 0, 0, fwd_emissions_arr, bg_tmp->f, scores_arr);
+ p7_Forward (sq->dsq + i-1, Ld, om, ox1, &domcorrection);
}
+
+ p7_oprofile_ReconfigRestLength(om, orig_L);
+
+ if (domcorrection < envsc) //negative bias correction shouldn't happen. Stick with the original score.
+ envsc = domcorrection;
+
+ dom->domcorrection = domcorrection - envsc;
+
+ } else {
+
+ /* Compute bias correction (for non-longtarget case)
+ *
+ * Is null2 set already for this i..j? (It is, if we're in a domain that
+ * was defined by stochastic traceback clustering in a multidomain region;
+ * it isn't yet, if we're in a simple one-domain region). If it isn't,
+ * do it now, by the expectation (posterior decoding) method.
+ */
+ if (!null2_is_done) {
+ p7_Null2_ByExpectation(om, ox2, null2);
+ for (pos = i; pos <= j; pos++)
+ ddef->n2sc[pos] = logf(null2[sq->dsq[pos]]);
+ }
+ for (pos = i; pos <= j; pos++)
+ domcorrection += ddef->n2sc[pos]; /* domcorrection is in units of NATS */
+
+ dom->domcorrection = domcorrection; /* in units of NATS */
+
}
- dom->domcorrection = domcorrection; /* in units of NATS */
+
+ dom->iali = dom->ad->sqfrom;
+ dom->jali = dom->ad->sqto;
+ dom->ienv = i;
+ dom->jenv = j;
+ dom->envsc = envsc; /* in units of NATS */
+ dom->oasc = oasc; /* in units of expected # of correctly aligned residues */
+ dom->dombias = 0.0; /* gets set later, using bg->omega and dombias */
+ dom->bitscore = 0.0; /* gets set later by caller, using envsc, null score, and dombias */
+ dom->lnP = 0.0; /* gets set later by caller, using bitscore */
+ dom->is_reported = FALSE; /* gets set later by caller */
+ dom->is_included = FALSE; /* gets set later by caller */
+
ddef->ndom++;
p7_trace_Reuse(ddef->tr);
- if (ddef_app != NULL) p7_domaindef_Reuse(ddef_app);
return eslOK;
ERROR:
@@ -942,7 +1074,8 @@ main(int argc, char **argv)
p7_Forward (sq->dsq, sq->n, om, fwd, &overall_sc);
p7_Backward(sq->dsq, sq->n, om, fwd, bck, &sc);
- p7_domaindef_ByPosteriorHeuristics(sq, om, oxf, oxb, fwd, bck, ddef, NULL, NULL, FALSE);
+ p7_domaindef_ByPosteriorHeuristics(sq, NULL, om, oxf, oxb, fwd, bck, ddef, NULL, FALSE, NULL, NULL, NULL);
+
printf("Overall raw likelihood score: %.2f nats\n", overall_sc);
@@ -1029,6 +1162,9 @@ main(int argc, char **argv)
P7_TRACE *tr = NULL;
P7_GMX *fwd = NULL;
P7_GMX *bck = NULL;
+ P7_OMX *gxf = NULL; /* parsing matrix, passed to PosteriorHeuristics */
+ P7_OMX *gxb = NULL;
+
P7_DOMAINDEF *ddef = NULL;
int N = esl_opt_GetInteger(go, "-N");
int L0 = esl_opt_GetInteger(go, "-L");
@@ -1055,6 +1191,8 @@ main(int argc, char **argv)
ddef = p7_domaindef_Create(r);
fwd = p7_gmx_Create(gm->M, L0);
bck = p7_gmx_Create(gm->M, L0);
+ gxf = p7_gmx_Create(gm->M, L0);
+ gxb = p7_gmx_Create(gm->M, L0);
tr = p7_trace_Create();
p7_FLogsumInit();
@@ -1084,7 +1222,8 @@ main(int argc, char **argv)
p7_GForward (sq->dsq, sq->n, gm, fwd, &overall_sc);
if (! do_baseline) {
p7_GBackward(sq->dsq, sq->n, gm, bck, &sc);
- p7_domaindef_ByPosteriorHeuristics(gm, sq, fwd, bck, ddef, NULL, NULL, FALSE);
+ p7_domaindef_ByPosteriorHeuristics(sq, gm, fwd, bck, gxf, gxb, ddef, NULL, FALSE, NULL, NULL, NULL);
+ //Is this even being compiled by any tests? Looks like there's a fair amount of bit rot here
}
}
diff --git a/hmmer/src/p7_gmx.c b/hmmer/src/p7_gmx.c
index 73df507..87c6b0f 100644
--- a/hmmer/src/p7_gmx.c
+++ b/hmmer/src/p7_gmx.c
@@ -492,13 +492,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_gmx.c $
- * SVN $Id: p7_gmx.c 3734 2011-11-02 12:45:37Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/p7_gmxchk.c b/hmmer/src/p7_gmxchk.c
index 0a8cba4..3fcd72e 100644
--- a/hmmer/src/p7_gmxchk.c
+++ b/hmmer/src/p7_gmxchk.c
@@ -840,8 +840,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/p7_gmxchk.h b/hmmer/src/p7_gmxchk.h
index 0b737e5..ef27132 100644
--- a/hmmer/src/p7_gmxchk.h
+++ b/hmmer/src/p7_gmxchk.h
@@ -183,8 +183,8 @@ extern int p7_gmxchk_DumpRow(FILE *ofp, P7_GMXCHK *gxc, float *dpc, int i
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/p7_hmm.c b/hmmer/src/p7_hmm.c
index 0117bc3..420db4d 100644
--- a/hmmer/src/p7_hmm.c
+++ b/hmmer/src/p7_hmm.c
@@ -768,6 +768,78 @@ p7_hmm_Scale(P7_HMM *hmm, double scale)
return eslOK;
}
+
+/* Function: p7_hmm_ScaleExponential()
+ * Synopsis: In a model containing counts, rescale counts by an exponential factor.
+ *
+ * Purpose: Given a counts-based model <hmm>, scale core by an
+ * exponential factor <exp>. This should be thought of as
+ * an alternative to p7_hmm_Scale(). Let C_i be the total
+ * observed count in column i, and F be the scale. In
+ * p7_hmm_Scale, the updated total observed count would be
+ * C_i = C_i * F (i.e. the scaling factor is uniform across
+ * all columns). In this function, C_i = C_i ^ F. The result
+ * is a non-uniform scaling across columns -- columns with
+ * higher C_i will be reduced to a greater extent than will
+ * columns with low counts.
+ *
+ * Consider the case where one column has 30 observations and a
+ * bunch of others have 300. This can happen when heavily-
+ * fragmented sequences are used to reconstruct a family MSA, as
+ * in Dfam models ... but isn't likely to have been seen in Pfam
+ * alignments. Though the column with 30 observations isn't nearly
+ * as complete as the one with 300, it still has enough that we
+ * shouldn't be willing to discount the observations entirely -
+ * something that might happen if uniform entropy weighting needs
+ * to push the average observations down 10-fold in order to achieve
+ * the desired avg relative entropy.
+ * e.g.
+ *
+ * C_i F -> C_i
+ * 3 .8 2.4
+ * 30 .8 15
+ * 300 .8 96
+ * 3 .7 2.2
+ * 30 .7 11
+ * 300 .7 54
+ * 3 .6 1.9
+ * 30 .6 7.6
+ * 300 .6 30
+ *
+ * Note: the observed counts will never drop below 1 in this case.
+ *
+ * After computing the per-column total scale for column i, that
+ * scale is applied to the core probability model emissions and
+ * transitions (<t>, <ins>, and <mat>) for position i.
+ *
+ * Args: hmm - counts based HMM.
+ * exp - exponential factor; 1.0=no scaling.
+ * ret_scaleavg - returns the mean of the per-column scale factors corresponding
+ * to the factor exp.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+p7_hmm_ScaleExponential(P7_HMM *hmm, double exp)
+{
+
+// printf ("\n==================\nTry exp = %.4f\n", exp);
+ int k;
+ for (k = 1; k <= hmm->M; k++) {
+
+ float count = esl_vec_FSum(hmm->mat[k], hmm->abc->K);
+ float new_count = pow(count, exp);
+ double scale = new_count / count;
+
+ //printf ("column %d : cnt: %.1f, new_cnt: %.1f, scale: %.4f\n", k, count, new_count, scale );
+
+ esl_vec_FScale(hmm->t[k], p7H_NTRANSITIONS, scale);
+ esl_vec_FScale(hmm->mat[k], hmm->abc->K, scale);
+ esl_vec_FScale(hmm->ins[k], hmm->abc->K, scale);
+ }
+ return eslOK;
+}
+
/* Function: p7_hmm_Renormalize()
* Synopsis: Renormalize all parameter vectors (emissions/transitions).
*
@@ -1130,11 +1202,11 @@ p7_hmm_Compare(P7_HMM *h1, P7_HMM *h2, float tol)
}
if (strcmp(h1->name, h2->name) != 0) return eslFAIL;
- if (strcmp(h1->comlog, h2->comlog) != 0) return eslFAIL;
+ if (esl_strcmp(h1->comlog, h2->comlog) != 0) return eslFAIL;
if (strcmp(h1->ctime, h2->ctime) != 0) return eslFAIL;
- if (h1->nseq != h2->nseq) return eslFAIL;
- if (h1->eff_nseq != h2->eff_nseq) return eslFAIL;
+ if (h1->nseq != h2->nseq) return eslFAIL;
+ if (esl_FCompare(h1->eff_nseq, h2->eff_nseq, tol) != eslOK) return eslFAIL;
if (h1->checksum != h2->checksum) return eslFAIL;
if (esl_strcmp(h1->acc, h2->acc) != 0) return eslFAIL;
@@ -1256,7 +1328,7 @@ p7_hmm_Validate(P7_HMM *hmm, char *errbuf, float tol)
* Synopsis: Calculate match occupancy and insert expected use count vectors.
*
* Purpose: Calculate a vector <mocc[1..M]> containing probability
- * that each match state is used in a sampled path through
+ * that each match state is used in a sampled glocal path through
* the model. Caller provides allocated space (<M+1> floats)
* for <mocc>.
*
@@ -1275,9 +1347,8 @@ p7_hmm_CalculateOccupancy(const P7_HMM *hmm, float *mocc, float *iocc)
mocc[0] = 0.; /* no M_0 state */
mocc[1] = hmm->t[0][p7H_MI] + hmm->t[0][p7H_MM]; /* initialize w/ 1 - B->D_1 */
for (k = 2; k <= hmm->M; k++)
- mocc[k] = mocc[k-1] * (hmm->t[k-1][p7H_MM] + hmm->t[k-1][p7H_MI]) +
- (1.0-mocc[k-1]) * hmm->t[k-1][p7H_DM];
-
+ mocc[k] = mocc[k-1] * (hmm->t[k-1][p7H_MM] + hmm->t[k-1][p7H_MI]) +
+ (1.0-mocc[k-1]) * hmm->t[k-1][p7H_DM];
if (iocc != NULL) {
iocc[0] = hmm->t[0][p7H_MI] / hmm->t[0][p7H_IM];
for (k = 1; k <= hmm->M; k++)
@@ -1428,14 +1499,14 @@ main(int argc, char **argv)
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_hmm.c 3960 2012-03-22 21:42:50Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_hmm.c $
+ * SVN $Id$
+ * SVN $URL$
************************************************************/
diff --git a/hmmer/src/p7_hmmcache.c b/hmmer/src/p7_hmmcache.c
index b9df27c..016c493 100644
--- a/hmmer/src/p7_hmmcache.c
+++ b/hmmer/src/p7_hmmcache.c
@@ -226,13 +226,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_hmmcache.c 3754 2011-11-21 14:25:31Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_hmmcache.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/p7_hmmcache.h b/hmmer/src/p7_hmmcache.h
index c3294a9..678e54a 100644
--- a/hmmer/src/p7_hmmcache.h
+++ b/hmmer/src/p7_hmmcache.h
@@ -24,13 +24,13 @@ extern void p7_hmmcache_Close (P7_HMMCACHE *cache);
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_hmmcache.h 3754 2011-11-21 14:25:31Z eddys $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_hmmcache.h $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/p7_hmmfile.c b/hmmer/src/p7_hmmfile.c
index 95b5a40..15e5584 100644
--- a/hmmer/src/p7_hmmfile.c
+++ b/hmmer/src/p7_hmmfile.c
@@ -588,17 +588,21 @@ p7_hmmfile_WriteASCII(FILE *fp, int format, P7_HMM *hmm)
if (format >= p7_HMMFILE_3e && fprintf(fp, "CONS %s\n", (hmm->flags & p7H_CONS) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
if (fprintf(fp, "CS %s\n", (hmm->flags & p7H_CS) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
if (fprintf(fp, "MAP %s\n", (hmm->flags & p7H_MAP) ? "yes" : "no") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
-
if (hmm->ctime != NULL) { if ( fprintf (fp, "DATE %s\n", hmm->ctime) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); }
if (hmm->comlog != NULL) { if ( (status = multiline(fp, "COM ", hmm->comlog)) != eslOK) return status; }
- if (hmm->nseq >= 0) { if ( fprintf (fp, "NSEQ %d\n", hmm->nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); }
+ if (hmm->nseq > 0) { if ( fprintf (fp, "NSEQ %d\n", hmm->nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); }
if (hmm->eff_nseq >= 0) { if ( fprintf (fp, "EFFN %f\n", hmm->eff_nseq) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); }
if (hmm->flags & p7H_CHKSUM) { if ( fprintf (fp, "CKSUM %u\n", hmm->checksum) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); } /* unsigned 32-bit */
- if ((hmm->flags & p7H_GA) && fprintf(fp, "GA %.2f %.2f\n", hmm->cutoff[p7_GA1], hmm->cutoff[p7_GA2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
- if ((hmm->flags & p7H_TC) && fprintf(fp, "TC %.2f %.2f\n", hmm->cutoff[p7_TC1], hmm->cutoff[p7_TC2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
- if ((hmm->flags & p7H_NC) && fprintf(fp, "NC %.2f %.2f\n", hmm->cutoff[p7_NC1], hmm->cutoff[p7_NC2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
-
+ if (hmm->abc->type == eslRNA || hmm->abc->type == eslDNA ) {
+ if ((hmm->flags & p7H_GA) && fprintf(fp, "GA %.2f\n", hmm->cutoff[p7_GA1]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
+ if ((hmm->flags & p7H_TC) && fprintf(fp, "TC %.2f\n", hmm->cutoff[p7_TC1]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
+ if ((hmm->flags & p7H_NC) && fprintf(fp, "NC %.2f\n", hmm->cutoff[p7_NC1]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
+ } else {
+ if ((hmm->flags & p7H_GA) && fprintf(fp, "GA %.2f %.2f\n", hmm->cutoff[p7_GA1], hmm->cutoff[p7_GA2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
+ if ((hmm->flags & p7H_TC) && fprintf(fp, "TC %.2f %.2f\n", hmm->cutoff[p7_TC1], hmm->cutoff[p7_TC2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
+ if ((hmm->flags & p7H_NC) && fprintf(fp, "NC %.2f %.2f\n", hmm->cutoff[p7_NC1], hmm->cutoff[p7_NC2]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
+ }
if (hmm->flags & p7H_STATS) {
if (format == p7_HMMFILE_3a) { /* reverse compatibility */
if (fprintf(fp, "STATS LOCAL VLAMBDA %f\n", hmm->evparam[p7_MLAMBDA]) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
@@ -617,7 +621,6 @@ p7_hmmfile_WriteASCII(FILE *fp, int format, P7_HMM *hmm)
if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
if (fprintf(fp, " %8s %8s %8s %8s %8s %8s %8s\n",
"m->m", "m->i", "m->d", "i->m", "i->i", "d->m", "d->d") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
-
if (hmm->flags & p7H_COMPO) {
if (fprintf(fp, " COMPO ") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
for (x = 0; x < hmm->abc->K; x++)
@@ -635,7 +638,6 @@ p7_hmmfile_WriteASCII(FILE *fp, int format, P7_HMM *hmm)
for (x = 0; x < p7H_NTRANSITIONS; x++)
{ if ( (status = printprob(fp, 8, hmm->t[0][x])) != eslOK) return status; }
if (fputc('\n', fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
-
for (k = 1; k <= hmm->M; k++) {
/* Line 1: k; match emissions; optional map, RF, MM, CS */
if (fprintf(fp, " %6d ", k) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
@@ -651,6 +653,9 @@ p7_hmmfile_WriteASCII(FILE *fp, int format, P7_HMM *hmm)
x = tolower(hmm->abc->sym[hmm->abc->Kp-3]);
if (fprintf(fp, " %c", (hmm->flags & p7H_CONS) ? x : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
}
+
+
+ if (hmm->rf && hmm->rf[k] == ' ') ESL_EXCEPTION_SYS(eslEWRITE, "input alignment contains an RF line with spaces");
if (fprintf(fp, " %c", (hmm->flags & p7H_RF) ? hmm->rf[k] : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
if (format >= p7_HMMFILE_3f) { if (fprintf(fp, " %c", (hmm->flags & p7H_MMASK) ? hmm->mm[k] : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed"); }
if (fprintf(fp, " %c\n", (hmm->flags & p7H_CS) ? hmm->cs[k] : '-') < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
@@ -659,7 +664,6 @@ p7_hmmfile_WriteASCII(FILE *fp, int format, P7_HMM *hmm)
if (fputs(" ", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
for (x = 0; x < hmm->abc->K; x++)
{ if ( (status = printprob(fp, 8, hmm->ins[k][x])) != eslOK) return status; }
-
/* Line 3: transitions */
if (fputs("\n ", fp) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "hmm write failed");
for (x = 0; x < p7H_NTRANSITIONS; x++)
@@ -703,7 +707,7 @@ p7_hmmfile_WriteToString(char **ascii_hmm, int format, P7_HMM *hmm)
int coffset = 0;
/* These 3 chars and int are used in the size determiantion */
int size;
- int n;
+ int n = 0;
char buff[100];
char *end = NULL;
char *sptr;
@@ -743,7 +747,7 @@ p7_hmmfile_WriteToString(char **ascii_hmm, int format, P7_HMM *hmm)
size += strlen(hmm->comlog);
}
- size += (hmm->nseq >= 0 ? 7 + sprintf(buff, "%d", hmm->nseq) : 0); /* NSEQ line */
+ size += (hmm->nseq > 0 ? 7 + sprintf(buff, "%d", hmm->nseq) : 0); /* NSEQ line */
size += (hmm->eff_nseq >= 0 ? 7 + sprintf(buff, "%f", hmm->eff_nseq) : 0); /* EFFN line */
size += (hmm->flags & p7H_CHKSUM ? 7 + sprintf(buff, "%u", hmm->checksum) : 0); /*CKSUM line */
@@ -844,7 +848,7 @@ p7_hmmfile_WriteToString(char **ascii_hmm, int format, P7_HMM *hmm)
if ( (status = multilineString(&ret_hmm, "COM ", hmm->comlog, &coffset)) != eslOK) return status; }
- if (hmm->nseq >= 0){
+ if (hmm->nseq > 0){
if((offset = sprintf(ret_hmm + coffset, "NSEQ %d\n", hmm->nseq)) < 0) return eslEWRITE;
coffset += offset;
}
@@ -973,7 +977,7 @@ p7_hmmfile_WriteToString(char **ascii_hmm, int format, P7_HMM *hmm)
coffset += offset;
if (format >= p7_HMMFILE_3f) {
- if ((offset = sprintf(ret_hmm + coffset, " %c", (hmm->flags & p7H_MMASK) ? hmm->mm[k] : '.')) < 0) return eslEWRITE;
+ if ((offset = sprintf(ret_hmm + coffset, " %c", (hmm->flags & p7H_MMASK) ? hmm->mm[k] : '-')) < 0) return eslEWRITE;
coffset += offset;
}
@@ -1471,32 +1475,45 @@ read_asc30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm)
}
else if (strcmp(tag, "GA") == 0) {
- if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line");
- if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line");
- hmm->cutoff[p7_GA1] = atof(tok1);
- hmm->cutoff[p7_GA2] = atof(tok2);
- hmm->flags |= p7H_GA;
+ if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line");
+ hmm->cutoff[p7_GA1] = atof(tok1);
+ if ( (abc->type == eslDNA || abc->type == eslRNA) ) { //if DNA, there's no need for a 2nd value (domain GA)
+ hmm->cutoff[p7_GA2] = hmm->cutoff[p7_GA1];
+ } else {
+ if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on GA line");
+ hmm->cutoff[p7_GA2] = atof(tok2);
+ }
+ hmm->flags |= p7H_GA;
}
else if (strcmp(tag, "TC") == 0) {
- if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line");
- if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line");
- hmm->cutoff[p7_TC1] = atof(tok1);
- hmm->cutoff[p7_TC2] = atof(tok2);
- hmm->flags |= p7H_TC;
+ if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line");
+ hmm->cutoff[p7_TC1] = atof(tok1);
+ if ( (abc->type == eslDNA || abc->type == eslRNA) ) { //if DNA, there's no need for a 2nd value (domain GA)
+ hmm->cutoff[p7_TC2] = hmm->cutoff[p7_TC1];
+ } else {
+ if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on TC line");
+ hmm->cutoff[p7_TC2] = atof(tok2);
+ }
+ hmm->flags |= p7H_TC;
}
else if (strcmp(tag, "NC") == 0) {
- if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line");
- if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line");
- hmm->cutoff[p7_NC1] = atof(tok1);
- hmm->cutoff[p7_NC2] = atof(tok2);
- hmm->flags |= p7H_NC;
+ if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line");
+ hmm->cutoff[p7_NC1] = atof(tok1);
+ if ( (abc->type == eslDNA || abc->type == eslRNA) ) { //if DNA, there's no need for a 2nd value (domain GA)
+ hmm->cutoff[p7_NC2] = hmm->cutoff[p7_NC1];
+ } else {
+ if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok2, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few fields on NC line");
+ hmm->cutoff[p7_NC2] = atof(tok2);
+ }
+ hmm->flags |= p7H_NC;
}
else if (strcmp(tag, "HMM") == 0)
break;
} /* end, loop over possible header tags */
+
if (status != eslOK) goto ERROR;
/* If we saw one STATS line, we need all 3. (True for both 3/a and 3/b formats) */
@@ -1537,6 +1554,7 @@ read_asc30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm)
/* The main model section. */
for (k = 1; k <= hmm->M; k++)
{
+
if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model section, at node %d (expected %d)", k, hmm->M);
if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model section, at node %d (expected %d)", k, hmm->M);
if (atoi(tok1) != k) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "Expected match line to start with %d (of %d); saw %s", k, hmm->M, tok1);
@@ -1553,7 +1571,6 @@ read_asc30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm)
if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing CONS field on match line for node %d: should at least be -", k);
if (hmm->flags & p7H_CONS) hmm->consensus[k] = *tok1;
}
-
if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Missing RF field on match line for node %d: should at least be -", k);
if (hmm->flags & p7H_RF) hmm->rf[k] = *tok1;
@@ -1572,7 +1589,6 @@ read_asc30hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm)
if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on insert line, node %d: expected %d, got %d\n", k, abc->K, x);
hmm->ins[k][x] = (*tok1 == '*' ? 0.0 : expf(-1.0 *atof(tok1)));
}
-
if ((status = esl_fileparser_NextLine(hfp->efp)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Premature end of data in main model: no transition line, node %d", k);
for (x = 0; x < p7H_NTRANSITIONS; x++) {
if ((status = esl_fileparser_GetTokenOnLine(hfp->efp, &tok1, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Too few probability fields on transition line, node %d: expected %d, got %d\n", k, abc->K, x);
@@ -1793,8 +1809,8 @@ read_asc20hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm)
}
else if (strcmp(tag, "DESC") == 0) {
- if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "No description found on DESC line");
- p7_hmm_SetDescription(hmm, tok1);
+ /* #h106. Allow "DESC" bare, with nothing following. Looks like some SMART models circa 1998 are like this. */
+ if ((status = esl_fileparser_GetRemainingLine(hfp->efp, &tok1)) == eslOK) p7_hmm_SetDescription(hmm, tok1);
}
else if (strcmp(tag, "LENG") == 0) {
@@ -1974,6 +1990,9 @@ read_asc20hmm(P7_HMMFILE *hfp, ESL_ALPHABET **ret_abc, P7_HMM **opt_hmm)
if (hmm->M <= 0) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No LENG found for HMM (or LENG <= 0)");
if (abc == NULL) ESL_XFAIL(eslEFORMAT, hfp->errbuf, "No ALPH found for HMM");
+ /* Part of #h106 fix: */
+ if ((status = p7_hmm_Renormalize(hmm)) != eslOK) return status;
+
/* legacy issues */
if (( status = p7_hmm_SetConsensus(hmm, NULL)) != eslOK) ESL_XFAIL(status, hfp->errbuf, "Failed to create consensus line");
@@ -2554,14 +2573,14 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_hmmfile.c 3960 2012-03-22 21:42:50Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_hmmfile.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
diff --git a/hmmer/src/p7_hmmwindow.c b/hmmer/src/p7_hmmwindow.c
index b91fdcd..140164f 100644
--- a/hmmer/src/p7_hmmwindow.c
+++ b/hmmer/src/p7_hmmwindow.c
@@ -17,9 +17,9 @@
*********************************************************************/
-/* Function: p7_hmm_initWindows()
+/* Function: p7_hmmwindow_init()
*
- * Synopsis: initialize the object used to store a list of windows around seeds
+ * Synopsis: initialize the object used to store a list of sequence windows
*
* Returns: eslEMEM in event of allocation failure, otherwise eslOK
*/
@@ -37,20 +37,21 @@ ERROR:
}
-/* Function: p7_hmm_newWindow()
+/* Function: p7_hmmwindow_new()
*
- * Synopsis: return a pointer to the next window element on the list,
- * increasing the size of the list, if necessary.
+ * Synopsis: Return a pointer to the next window element on the list
*
- * Purpose: accepts <id>, <pos>, <fm_pos>, <k>, <length>, <score>,
+ * Purpose: Accepts <id>, <pos>, <fm_pos>, <k>, <length>, <score>,
* and <complementarity>, assigns those to the next window
- * element, then returns it.
+ * element, then returns it, increasing the size of the
+ * list, if necessary.
*
* Returns: NULL in event of allocation failure, otherwise pointer to
* the next seed diagonal
*/
+
P7_HMM_WINDOW *
-p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity) {
+p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t fm_pos, uint16_t k, uint32_t length, float score, uint8_t complementarity, uint32_t target_len) {
int status;
P7_HMM_WINDOW *window;
@@ -60,13 +61,14 @@ p7_hmmwindow_new (P7_HMM_WINDOWLIST *list, uint32_t id, uint32_t pos, uint32_t f
}
window = list->windows + list->count;
- window->id = id;
- window->n = pos;
- window->fm_n = fm_pos;
- window->k = k;
- window->length = length;
- window->score = score;
+ window->id = id;
+ window->n = pos;
+ window->fm_n = fm_pos;
+ window->k = k;
+ window->length = length;
+ window->score = score;
window->complementarity = complementarity;
+ window->target_len = target_len;
list->count++;
@@ -93,8 +95,8 @@ ERROR:
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/p7_msvdata.c b/hmmer/src/p7_msvdata.c
deleted file mode 100644
index bf93949..0000000
--- a/hmmer/src/p7_msvdata.c
+++ /dev/null
@@ -1,421 +0,0 @@
-/* The Plan7 MSVDATA data structure, which holds a compact representation
- * of substitution scores and maximal extensions, used by nhmmer.
- *
- * Contents:
- * 1. The P7_MSVDATA object: allocation, initialization, destruction.
- * 2. Unit tests.
- * 3. Test driver.
- * 4. Copyright and license.
- *
- */
-#include "p7_config.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <time.h>
-
-#include "easel.h"
-#include "esl_alphabet.h"
-#include "esl_vectorops.h"
-#include "esl_random.h"
-#include "esl_dirichlet.h"
-
-#include "hmmer.h"
-
-
-/*********************************************************************
- *# 1. The P7_MSVDATA object: allocation, initialization, destruction.
- *********************************************************************/
-
-/* Function: p7_hmm_GetScoreArrays()
- * Synopsis: Get compact representation of substitution scores and maximal extensions
- *
- * Purpose: Extract 8-bit (MSV-style) substitution scores from gm, and
- * for each position in the model capture the maximum possible
- * score that can be added to a diagonal's score (in both
- * directions) by extending lengths 1..10.
- *
- * The scores will be used in both standard MSV diagonal recovery
- * and FM-MSV diagonal scoring. The extension scores are used in
- * FM-MSV's pruning step.
- *
- * Args: gm - P7_PROFILE containing scores used to produce MSVDATA contents
- * data - where scores and will be stored
- * do_opt_ext - boolean, TRUE if optimal-extension scores are required (for FM-MSV)
- * scale - used to produce 8-bit extracted scores
- * bias - used to produce 8-bit extracted scores
- *
- * Returns: data->scores and possibly ->opt_ext_(fwd|rev) are filled in;
- * return eslEMEM on allocation failure, eslOK otherwise.
- */
-static int
-p7_hmm_GetScoreArrays(P7_OPROFILE *om, P7_MSVDATA *data, int do_opt_ext ) {
- int i, j, status;
-
- //gather values from gm->rsc into a succinct 2D array
- uint8_t *max_scores;
- float sc_fwd, sc_rev;
- int K = om->abc->Kp;
- data->M = om->M;
-
- ESL_ALLOC(data->scores, (om->M + 1) * K * sizeof(uint8_t));
- p7_oprofile_GetMSVEmissionArray(om, data->scores);
-
-
- if (do_opt_ext) {
- ESL_ALLOC(max_scores, (om->M + 1) * sizeof(float));
- for (i = 1; i <= om->M; i++) {
- max_scores[i] = 0;
- for (j=0; j<K; j++)
- if (data->scores[i*K + j] > max_scores[i]) max_scores[i] = data->scores[i*K + j];
- }
-
-
-
- //for each position in the query, what's the highest possible score achieved by extending X positions, for X=1..10
- ESL_ALLOC(data->opt_ext_fwd, (om->M + 1) * sizeof(uint8_t*));
- ESL_ALLOC(data->opt_ext_rev, (om->M + 1) * sizeof(uint8_t*));
-
- for (i=1; i<=om->M; i++) {
- ESL_ALLOC(data->opt_ext_fwd[i], 10 * sizeof(uint8_t));
- ESL_ALLOC(data->opt_ext_rev[i], 10 * sizeof(uint8_t));
- sc_fwd = 0;
- sc_rev = 0;
- for (j=0; j<10 && i+j+1<=om->M; j++) {
- sc_fwd += max_scores[i+j+1];
- data->opt_ext_fwd[i][j] = sc_fwd;
-
- sc_rev += max_scores[om->M-i-j];
- data->opt_ext_rev[i][j] = sc_rev;
- }
- for ( ; j<10; j++) { //fill in empty values
- data->opt_ext_fwd[i][j] = data->opt_ext_fwd[i][j-1];
- data->opt_ext_rev[i][j] = data->opt_ext_rev[i][j-1];
- }
-
- }
- }
-
- return eslOK;
-
-ERROR:
- return eslEMEM;
-}
-
-
-/* Function: p7_hmm_MSVDataDestroy()
- *
- * Synopsis: Destroy a <P7_MSVDATA> object.
- */
-void
-p7_hmm_MSVDataDestroy(P7_MSVDATA *data )
-{
- int i;
- if (data != NULL) {
-
- if (data->scores != NULL) free( data->scores);
- if (data->prefix_lengths != NULL) free( data->prefix_lengths);
- if (data->suffix_lengths != NULL) free( data->suffix_lengths);
-
- if (data->opt_ext_fwd != NULL) {
- for (i=1; i<=data->M; i++)
- free(data->opt_ext_fwd[i]);
- free(data->opt_ext_fwd);
- }
- if (data->opt_ext_rev != NULL) {
- for (i=1; i<=data->M; i++)
- free(data->opt_ext_rev[i]);
- free( data->opt_ext_rev);
- }
-
- free(data);
- }
-
-}
-
-/* Function: p7_hmm_MSVDataCreate()
- * Synopsis: Create a <P7_MSVDATA> model object, based on MSV-filter
- * part of profile
- *
- * Purpose: Allocate a <P7_MSVDATA> object used in both FM-MSV and
- * MSV_LongTarget diagonal recovery/extension, then populate
- * it with data based on the given gm.
- *
- * Once a hit passes the MSV filter, and the prefix/suffix
- * values of P7_MSVDATA are required, p7_hmm_MSVDataComputeRest()
- * must be called.
- *
- * Args: om - P7_PROFILE containing scores used to produce MSVDATA contents
- * do_opt_ext - boolean, TRUE if optimal-extension scores are required (for FM-MSV)
- *
- * Returns: a pointer to the new <P7_MSVDATA> object.
- *
- * Throws: <NULL> on allocation failure.
- */
-P7_MSVDATA *
-p7_hmm_MSVDataCreate(P7_OPROFILE *om, int do_opt_ext )
-{
- P7_MSVDATA *data = NULL;
- int status;
-
- ESL_ALLOC(data, sizeof(P7_MSVDATA));
-
- data->scores = NULL;
- data->opt_ext_fwd = NULL;
- data->opt_ext_rev = NULL;
- data->prefix_lengths = NULL;
- data->suffix_lengths = NULL;
-
- p7_hmm_GetScoreArrays(om, data, do_opt_ext); /* for FM-index string tree traversal */
-
- return data;
-
-ERROR:
- p7_hmm_MSVDataDestroy(data);
- return NULL;
-}
-
-
-/* Function: p7_hmm_MSVDataClone()
- * Synopsis: Clone a <P7_MSVDATA> model object
- *
- * Purpose: Allocate a <P7_MSVDATA> object used in both FM-MSV and
- * MSV_LongTarget diagonal recovery/extension, then
- * copy data into it from another populated instance
- *
- * Once a hit passes the MSV filter, and the prefix/suffix
- * values of P7_MSVDATA are required, p7_hmm_MSVDataComputeRest()
- * must be called.
- *
- * Args: src - P7_MSVDATA upon which clone will be based
- * Kp - alphabet size, including degeneracy codes, gaps
- *
- * Returns: a pointer to the new <P7_MSVDATA> object.
- *
- * Throws: <NULL> on allocation failure.
- */
-P7_MSVDATA *
-p7_hmm_MSVDataClone(P7_MSVDATA *src, int Kp) {
- P7_MSVDATA *new;
- int status;
- int i;
-
- if (src == NULL)
- return NULL;
-
- ESL_ALLOC(new, sizeof(P7_MSVDATA));
- new->M = src->M;
- new->scores = NULL;
- new->opt_ext_fwd = NULL;
- new->opt_ext_rev = NULL;
- new->prefix_lengths = NULL;
- new->suffix_lengths = NULL;
-
- if (src->scores != NULL) {
- ESL_ALLOC(new->scores, (src->M + 1) * Kp * sizeof(uint8_t));
- memcpy(new->scores, src->scores, (src->M + 1) * Kp * sizeof(uint8_t) );
- }
-
- if (src->opt_ext_fwd != NULL) {
- ESL_ALLOC(new->opt_ext_fwd, (src->M + 1) * sizeof(uint8_t*));
- for (i=1; i<=src->M; i++) {
- ESL_ALLOC(new->opt_ext_fwd[i], 10 * sizeof(uint8_t));
- memcpy(new->opt_ext_fwd+i, src->opt_ext_fwd+i, 10 * sizeof(uint8_t));
- }
- }
- if (src->opt_ext_rev != NULL) {
- ESL_ALLOC(new->opt_ext_rev, (src->M + 1) * sizeof(uint8_t*));
- for (i=1; i<=src->M; i++) {
- ESL_ALLOC(new->opt_ext_rev[i], 10 * sizeof(uint8_t));
- memcpy(new->opt_ext_rev+i, src->opt_ext_rev+i, 10 * sizeof(uint8_t));
- }
- }
-
-
- if (src->prefix_lengths != NULL) {
- ESL_ALLOC(new->prefix_lengths, (src->M+1) * sizeof(float));
- memcpy(new->prefix_lengths, src->prefix_lengths, (src->M+1) * sizeof(float));
- }
- if (src->suffix_lengths != NULL) {
- ESL_ALLOC(new->suffix_lengths, (src->M+1) * sizeof(float));
- memcpy(new->suffix_lengths, src->suffix_lengths, (src->M+1) * sizeof(float));
- }
-
- return new;
-
-ERROR:
- return NULL;
-}
-
-/* Function: p7_hmm_MSVDataComputeRest()
- * Synopsis: Compute prefix_ and suffix_ lengths for a <P7_MSVDATA>
- * model object that was created by p7_hmm_MSVDataCreate.
- *
- * Purpose: This approach of computing the prefix/suffix length, used
- * in establishing windows around a seed diagonal, is fast
- * becuse it uses a simple closed-form computation of the
- * length L_i for each position i at which all but
- * (1-p7_DEFAULT_WINDOW_BETA) of position i's match- and
- * insert-state emissions are length L_i or shorter.
- *
- * Args: om - P7_OPROFILE containing transitions probabilities used to compute (pre|suf)fix lengths
- * data - P7_MSVDATA into which the computed prefix/suffix values are placed
- *
- * Returns: eslEMEM on failure, else eslOK
- *
- * Throws: <NULL> on allocation failure.
- */
-int
-p7_hmm_MSVDataComputeRest(P7_OPROFILE *om, P7_MSVDATA *data )
-{
- int status;
- int i;
- float sum;
-
-
- float *t_mis;
- float *t_iis;
-
-
- ESL_ALLOC(t_mis, sizeof(float) * (om->M+1));
- p7_oprofile_GetFwdTransitionArray(om, p7O_MI, t_mis );
-
- ESL_ALLOC(t_iis, sizeof(float) * (om->M+1));
- p7_oprofile_GetFwdTransitionArray(om, p7O_II, t_iis );
-
-
- ESL_ALLOC(data->prefix_lengths, (om->M+1) * sizeof(float));
- ESL_ALLOC(data->suffix_lengths, (om->M+1) * sizeof(float));
-
-
- sum = 0;
- for (i=1; i < om->M; i++) {
- data->prefix_lengths[i] = 2 + (int)(log(p7_DEFAULT_WINDOW_BETA / t_mis[i] )/log(t_iis[i]));
- sum += data->prefix_lengths[i];
- }
- data->prefix_lengths[0] = data->prefix_lengths[om->M] = 0;
-
-
- for (i=1; i < om->M; i++)
- data->prefix_lengths[i] /= sum;
-
- data->suffix_lengths[om->M] = data->prefix_lengths[om->M-1];
- for (i=om->M - 1; i >= 1; i--)
- data->suffix_lengths[i] = data->suffix_lengths[i+1] + data->prefix_lengths[i-1];
- for (i=2; i < om->M; i++)
- data->prefix_lengths[i] += data->prefix_lengths[i-1];
-
- free(t_mis);
- free(t_iis);
-
- return eslOK;
-
- ERROR:
- if (t_mis) free(t_mis);
- if (t_iis) free(t_iis);
- p7_hmm_MSVDataDestroy(data);
- return eslEMEM;
-}
-
-
-/*****************************************************************
- * 2. Unit tests
- *****************************************************************/
-#ifdef p7MSVDATA_TESTDRIVE
-
-static void
-utest_createMSVData(ESL_GETOPTS *go, ESL_RANDOMNESS *r )
-{
- char msg[] = "create MSVData unit test failed";
- P7_HMM *hmm = NULL;
- ESL_ALPHABET *abc = NULL;
- P7_PROFILE *gm = NULL;
- P7_OPROFILE *om = NULL;
- P7_MSVDATA *msvdata = NULL;
-
- uint8_t scale = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */
- uint8_t bias;
- int x;
- float max = 0.0;
-
- if ( (abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal(msg);
-
- if ( p7_hmm_Sample(r, 100, abc, &hmm) != eslOK) esl_fatal(msg);
- if ( (gm = p7_profile_Create (hmm->M, abc)) == NULL ) esl_fatal(msg);
- if ( (om = p7_oprofile_Create(hmm->M, abc)) == NULL ) esl_fatal(msg);
-
- for (x = 0; x < gm->abc->K; x++) max = ESL_MAX(max, esl_vec_FMax(gm->rsc[x], (gm->M+1)*2));
- //based on unbiased_byteify
- max = -1.0f * roundf(scale * max);
- bias = (max > 255.) ? 255 : (uint8_t) max;
-
-
- if ( (msvdata = p7_hmm_MSVDataCreate(om, FALSE)) == NULL ) esl_fatal(msg);
-
- p7_hmm_MSVDataDestroy(msvdata);
- p7_oprofile_Destroy(om);
- p7_profile_Destroy(gm);
- p7_hmm_Destroy(hmm);
- esl_alphabet_Destroy(abc);
-
-}
-#endif /*p7BG_TESTDRIVE*/
-
-
-/*****************************************************************
- * 3. Test driver
- *****************************************************************/
-
-#ifdef p7MSVDATA_TESTDRIVE
-#include "esl_config.h"
-
-#include <stdio.h>
-
-#include "easel.h"
-#include "esl_getopts.h"
-#include "esl_random.h"
-
-#include "hmmer.h"
-
-static ESL_OPTIONS options[] = {
- /* name type default env range togs reqs incomp help docgrp */
- {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0},
- {"-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0},
- {"-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show verbose commentary/output", 0},
- { 0,0,0,0,0,0,0,0,0,0},
-};
-static char usage[] = "[-options]";
-static char banner[] = "test driver for p7_bg";
-
-int
-main(int argc, char **argv)
-{
- ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
- ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s"));
- int be_verbose = esl_opt_GetBoolean(go, "-v");
-
- if (be_verbose) printf("p7_msvdata unit test: rng seed %" PRIu32 "\n", esl_randomness_GetSeed(rng));
-
- utest_createMSVData(go, rng);
-
- esl_randomness_Destroy(rng);
- esl_getopts_Destroy(go);
- return 0;
-}
-#endif /* p7BG_TESTDRIVE */
-
-/************************************************************
- * HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
- * Other copyrights also apply. See the COPYRIGHT file for a full list.
- *
- * HMMER is distributed under the terms of the GNU General Public License
- * (GPLv3). See the LICENSE file for details.
- *
- * SVN $Id: p7_msvdata.c 3784 2011-12-07 21:51:25Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk/src/p7_msvdata.c $
- ************************************************************/
-
-
diff --git a/hmmer/src/p7_null3.c b/hmmer/src/p7_null3.c
index 3f0f959..31296d3 100644
--- a/hmmer/src/p7_null3.c
+++ b/hmmer/src/p7_null3.c
@@ -130,125 +130,6 @@ p7_null3_score(const ESL_ALPHABET *abc, const ESL_DSQ *dsq, P7_TRACE *tr, int st
-
-/* Function: p7_null3_windowed_score()
- *
- * Purpose: Calculate a correction (in log_2 odds) to be applied
- * to a sequence.
- *
- * Similar to the function p7_null3_score(). In that function,
- * a null model is constructed /post hoc/ as the distribution
- * of the target sequence, then all instances of each character
- * c incur the same bias bits.
- *
- * In this function, each position i in <dsq> has its own
- * null model, constructed from the distribution in a window
- * around position i. This is an ad hoc way of dealing with
- * the fact that an envelope might contain two low-complexity
- * regions, each with different composition (e.g. one is all
- * GC, and the other all AT), with the result being that the
- * whole-sequence distribution is uniform (unbiased), despite
- * obviously biased regions.
- *
- * Args: abc - alphabet for hit (only used to get alphabet size)
- * dsq - the sequence the hit resides in
- * start- start position of hit in dsq
- * stop - end position of hit in dsq
- * bg - background, used for the default null model's emission freq.
- * Also provides the 'width' value - the number of residues
- * on either side of position i that are used to construct i's
- * window, for i's null model (so internal positions will
- * contain 1+(2*width) residues, while positions within 'width'
- * of the ends of the envelope will have fewer residues)
- * ret_sc- RETURN: the correction to the score (in NATS);
- * caller subtracts this from hit score to get
- * corrected score.
- * Return: void, ret_sc: the log-odds score correction (in NATS).
- */
-void
-p7_null3_windowed_score(const ESL_ALPHABET *abc, const ESL_DSQ *dsq, int start, int stop, P7_BG *bg, float *ret_sc)
-{
- float score = 0.;
- int status;
- int i, j;
- float *freq;
-
- int width = bg->null3_wlen;
-
- ESL_ALLOC(freq, sizeof(float) * abc->K);
- esl_vec_FSet(freq, abc->K, 0.0);
-
- /* contract check */
- if(abc == NULL) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() alphabet is NULL.%s\n", "");
- if(dsq == NULL) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() dsq alphabet is NULL.%s\n", "");
- if(abc->type != eslRNA && abc->type != eslDNA) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() expects alphabet of RNA or DNA.%s\n", "");
-
-
- if (start > stop) {
- i = start;
- start = stop;
- stop = i;
- }
- if ( (stop-start) < width) width = (stop-start); //intentionally not start+width+1
-
- //check sequence validity
- for (i = start; i <= stop; i++)
- if(esl_abc_XIsGap(abc, dsq[i])) esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "in p7_null3_score(), res %d is a gap!%s\n", "");
-
-
- /* tally frequencies for first base */
- i = start;
- for (j = start; j <= start + width ; j++)
- esl_abc_FCount(abc, freq, dsq[j], 1.);
- esl_vec_FNorm(freq, abc->K);
- /* score modifier for position i, in nats */
- score += freq[dsq[i]]==0 ? 0.0 : esl_logf( freq[dsq[i]]/bg->f[dsq[i]] ) ;
-
-
- /* add the next character onto the frequency stack, without removing a preceding char */
- i++;
- while (i<= start+width ) {
- if (j<=stop) { /* if j>stop, don't really add a character ... 'cause there isn't one */
- esl_vec_FScale(freq, abc->K, (width+(i-start)) );
- esl_abc_FCount(abc, freq, dsq[j], 1.);
- esl_vec_FNorm(freq, abc->K );
- }
- score += freq[dsq[i]]==0 ? 0.0 : esl_logf( freq[dsq[i]]/bg->f[dsq[i]] ) ;
- i++;
- j++;
- }
-
- /* remove a preceding character and add a new one */
- while (j<=stop) {
- esl_abc_FCount(abc, freq, dsq[i-width-1], (-1.)/(1+2*width));
- esl_abc_FCount(abc, freq, dsq[j], 1./(1+2*width));
- score += freq[dsq[i]]==0 ? 0.0 : esl_logf( freq[dsq[i]]/bg->f[dsq[i]] ) ;
- i++;
- j++;
- }
-
- /*finally, pull off the leading characters as the edge cases shrink*/
- while (i<=stop) {
- esl_vec_FScale(freq, abc->K, (width+2+(stop-i)) );
- esl_abc_FCount(abc, freq, dsq[i-width-1], -1.);
- esl_vec_FNorm(freq, abc->K );
- score += freq[dsq[i]]>0 ? esl_logf( freq[dsq[i]]/bg->f[dsq[i]] ) : 0 ;
- i++;
- }
-
-
- /* Return the correction to the bit score. */
- score = p7_FLogsum(0., score);
- *ret_sc = score;
-
- return;
-
- ERROR:
- esl_exception(eslEINVAL, FALSE, __FILE__, __LINE__, "p7_null3_score() memory allocation error.%s\n", "");
- return; /* never reached */
-
-}
-
/*****************************************************************
* 2. Benchmark driver
*****************************************************************/
@@ -471,8 +352,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/p7_pipeline.c b/hmmer/src/p7_pipeline.c
index 04edb34..d8895e2 100644
--- a/hmmer/src/p7_pipeline.c
+++ b/hmmer/src/p7_pipeline.c
@@ -20,9 +20,22 @@
#include "esl_gumbel.h"
#include "esl_vectorops.h"
-
#include "hmmer.h"
+#include "esl_sqio.h" //!!!!DEBUG
+
+/* Struct used to pass a collection of useful temporary objects around
+ * within the LongTarget functions
+ * */
+typedef struct {
+ ESL_SQ *tmpseq; // - a new or reused digital sequence object used for p7_alidisplay_Create() call
+ P7_BG *bg;
+ P7_OPROFILE *om;
+ float *scores;
+ float *fwd_emissions_arr;
+} P7_PIPELINE_LONGTARGET_OBJS;
+
+
/*****************************************************************
* 1. The P7_PIPELINE object: allocation, initialization, destruction.
*****************************************************************/
@@ -93,6 +106,7 @@ p7_pipeline_Create(ESL_GETOPTS *go, int M_hint, int L_hint, int long_targets, en
ESL_ALLOC(pli, sizeof(P7_PIPELINE));
+ pli->do_alignment_score_calc = 0;
pli->long_targets = long_targets;
if ((pli->fwd = p7_omx_Create(M_hint, L_hint, L_hint)) == NULL) goto ERROR;
@@ -195,7 +209,7 @@ p7_pipeline_Create(ESL_GETOPTS *go, int M_hint, int L_hint, int long_targets, en
pli->do_max = FALSE;
pli->do_biasfilter = TRUE;
pli->do_null2 = TRUE;
- pli->F1 = (go ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F1")) : 0.02);
+ pli->F1 = ((go && esl_opt_IsOn(go, "--F1")) ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F1")) : 0.02);
pli->F2 = (go ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F2")) : 1e-3);
pli->F3 = (go ? ESL_MIN(1.0, esl_opt_GetReal(go, "--F3")) : 1e-5);
if (long_targets) {
@@ -301,35 +315,55 @@ p7_pipeline_Destroy(P7_PIPELINE *pli)
* Purpose: Accepts a <windowlist> of SSV diagonals, extends those
* to windows based on a combination of the max_length
* value from <om> and the prefix and suffix lengths stored
- * in <msvdata>, then merges (in place) windows that overlap
+ * in <data>, then merges (in place) windows that overlap
* by more than <pct_overlap> percent, ensuring that windows
* stay within the bounds of 1..<L>.
*
* Returns: <eslOK>
*/
int
-p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_MSVDATA *msvdata, P7_HMM_WINDOWLIST *windowlist, int L, float pct_overlap) {
+p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_SCOREDATA *data, P7_HMM_WINDOWLIST *windowlist, float pct_overlap) {
int i;
P7_HMM_WINDOW *prev_window = NULL;
P7_HMM_WINDOW *curr_window = NULL;
- int window_start;
- int window_end;
- int new_hit_cnt = 0;
+ int64_t window_start;
+ int64_t window_end;
+ int32_t window_len;
+ int64_t tmp;
+ int new_hit_cnt = 0;
if (windowlist->count == 0)
return eslOK;
/* extend windows */
for (i=0; i<windowlist->count; i++) {
+
curr_window = windowlist->windows+i;
- // the 0.1 multiplier provides for a small buffer in excess of the predefined prefix/suffix lengths - one proportional to max_length
- window_start = ESL_MAX( 1, curr_window->n - ( om->max_length * (0.1 + msvdata->prefix_lengths[curr_window->k - curr_window->length + 1] )) ) ;
- window_end = ESL_MIN( L , curr_window->n + curr_window->length + (om->max_length * (0.1 + msvdata->suffix_lengths[curr_window->k] ) ) ) ;
+ if ( curr_window->complementarity == p7_COMPLEMENT) {
+ //flip for complement (then flip back), so the min and max bounds allow for appropriate overlap into neighboring segments in a multi-segment FM sequence
+ curr_window->n = curr_window->target_len - curr_window->n + 1;
+
+ window_start = ESL_MAX( 1 , curr_window->n - curr_window->length - (om->max_length * (0.1 + data->suffix_lengths[curr_window->k] ) ) ) ;
+ window_end = ESL_MIN( curr_window->target_len, curr_window->n + (om->max_length * (0.1 + data->prefix_lengths[curr_window->k - curr_window->length + 1] )) ) ;
+ tmp = window_end;
+ window_end = curr_window->target_len - window_start; // + 1;
+ window_start = curr_window->target_len - tmp ; //+ 1;
+
+ curr_window->n = curr_window->target_len - curr_window->n + 1;
+
+ } else {
+
+ // the 0.1 multiplier provides for a small buffer in excess of the predefined prefix/suffix lengths - one proportional to max_length
+ window_start = ESL_MAX( 1 , curr_window->n - (om->max_length * (0.1 + data->prefix_lengths[curr_window->k - curr_window->length + 1] )) ) ;
+ window_end = ESL_MIN( curr_window->target_len, curr_window->n + curr_window->length + (om->max_length * (0.1 + data->suffix_lengths[curr_window->k] ) ) ) ;
+ }
- curr_window->n = window_start;
curr_window->length = window_end - window_start + 1;
+
+ curr_window->fm_n -= (curr_window->n - window_start);
+ curr_window->n = window_start;
}
@@ -340,13 +374,20 @@ p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_MSVDATA *msvdata, P7_HMM
window_start = ESL_MAX(prev_window->n, curr_window->n);
window_end = ESL_MIN(prev_window->n+prev_window->length-1, curr_window->n+curr_window->length-1);
+ window_len = window_end - window_start + 1;
- if ( (float)(window_end-window_start+1)/ESL_MIN(prev_window->length, curr_window->length) > pct_overlap ) {
-// if (curr_window->n <= prev_window->n + prev_window->length ) {
+ if ( prev_window->complementarity == curr_window->complementarity &&
+ prev_window->id == curr_window->id &&
+ (float)(window_len)/ESL_MIN(prev_window->length, curr_window->length) > pct_overlap // &&
+ //curr_window->n + curr_window->length >= prev_window->n + prev_window->length
+ )
+ {
//merge windows
- if ( curr_window->n + curr_window->length > prev_window->n + prev_window->length )
- prev_window->length = curr_window->n + curr_window->length - prev_window->n; //+1, -1 factored out
-
+ window_start = ESL_MIN(prev_window->n, curr_window->n);
+ window_end = ESL_MAX(prev_window->n+prev_window->length-1, curr_window->n+curr_window->length-1);
+ prev_window->fm_n -= (prev_window->n - window_start);
+ prev_window->n = window_start;
+ prev_window->length = window_end - window_start + 1;
} else {
new_hit_cnt++;
windowlist->windows[new_hit_cnt] = windowlist->windows[i];
@@ -354,14 +395,6 @@ p7_pli_ExtendAndMergeWindows (P7_OPROFILE *om, const P7_MSVDATA *msvdata, P7_HMM
}
windowlist->count = new_hit_cnt+1;
- /* ensure that window start and end are within target sequence bounds */
- if ( windowlist->windows[0].n < 1)
- windowlist->windows[0].n = 1;
-
- if ( windowlist->windows[windowlist->count-1].n + windowlist->windows[windowlist->count-1].length - 1 > L)
- windowlist->windows[windowlist->count-1].length = L - windowlist->windows[windowlist->count-1].n + 1;
-
-
return eslOK;
}
@@ -632,7 +665,7 @@ p7_pipeline_Merge(P7_PIPELINE *p1, P7_PIPELINE *p2)
* Xref: J4/25.
*/
int
-p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_TOPHITS *hitlist)
+p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, const ESL_SQ *ntsq, P7_TOPHITS *hitlist)
{
P7_HIT *hit = NULL; /* ptr to the current hit output data */
float usc, vfsc, fwdsc; /* filter scores */
@@ -703,7 +736,7 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
p7_omx_GrowTo(pli->oxb, om->M, 0, sq->n);
p7_BackwardParser(sq->dsq, sq->n, om, pli->oxf, pli->oxb, NULL);
- status = p7_domaindef_ByPosteriorHeuristics(sq, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, NULL, bg, FALSE);
+ status = p7_domaindef_ByPosteriorHeuristics(sq, ntsq, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, bg, FALSE, NULL, NULL, NULL);
if (status != eslOK) ESL_FAIL(status, pli->errbuf, "domain definition workflow failure"); /* eslERANGE can happen */
if (pli->ddef->nregions == 0) return eslOK; /* score passed threshold but there's no discrete domains here */
if (pli->ddef->nenvelopes == 0) return eslOK; /* rarer: region was found, stochastic clustered, no envelopes found */
@@ -727,7 +760,8 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
*/
sum_score = 0.0f;
seqbias = 0.0f;
- Ld = 0;
+
+ Ld = 0;
if (pli->do_null2)
{
for (d = 0; d < pli->ddef->ndom; d++)
@@ -736,7 +770,7 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
{
sum_score += pli->ddef->dcl[d].envsc; /* NATS */
Ld += pli->ddef->dcl[d].jenv - pli->ddef->dcl[d].ienv + 1;
- seqbias += pli->ddef->dcl[d].domcorrection; /* NATS */
+ seqbias += pli->ddef->dcl[d].domcorrection; /* NATS */
}
}
seqbias = p7_FLogsum(0.0, log(bg->omega) + seqbias); /* NATS */
@@ -864,6 +898,7 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
}
}
}
+
}
return eslOK;
@@ -871,12 +906,89 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
-/* Function: postViterbi_LongTarget()
+/* Function: p7_pli_computeAliScores()
+ * Synopsis: Compute per-position scores for the alignment for a domain
+ *
+ * Purpose: Compute per-position (Viterbi) scores for the alignment for a domain,
+ * for the purpose of optionally printing these scores out in association
+ * with each alignment. Such scores can, for example, be used to detangle
+ * overlapping alignments (from different models)
+ *
+ * Args: dom - domain with the alignment for which we wish to compute scores
+ * seq - sequence in which domain resides
+ * data - contains model's emission and transition values in unstriped form
+ * K - alphabet size
+ *
+ * Returns: <eslOK> on success.
+ *
+ * Throws: <eslEMEM> on allocation failure.
+ */
+static int
+p7_pli_computeAliScores(P7_DOMAIN *dom, ESL_DSQ *seq, const P7_SCOREDATA *data, int K)
+{
+ int status;
+ int i, j, k;
+ float sc;
+
+ //Compute score contribution of each position in the alignment to the overall Viterbi score
+ ESL_ALLOC( dom->scores_per_pos, sizeof(float) * dom->ad->N );
+ for (i=0; i<dom->ad->N; i++) dom->scores_per_pos[i] = 0.0;
+
+ i = dom->iali - 1; //sequence position
+ j = dom->ad->hmmfrom - 1; //model position
+ k = 0;
+ while ( k<dom->ad->N) {
+ if (dom->ad->model[k] != '.' && dom->ad->aseq[k] != '-') { //match
+ i++; j++;
+ // Including the MM cost is a hack. The cost of getting to/from this match
+ // state does matter, but an IM or DM transition would improperly deflate
+ // the score of this column, so just give MM. That amount is offset out of
+ // the score shown for preceding indels
+ dom->scores_per_pos[k] = data->fwd_scores[K * j + seq[i]]
+ + (j==1 ? 0 : log(data->fwd_transitions[p7O_MM][j]) );
+ k++;
+ } else if (dom->ad->model[k] == '.' ) { // insert
+ //spin through the insert, accumulating cost; only assign to final column in gap
+ dom->scores_per_pos[k] = -eslINFINITY;
+
+ sc = log(data->fwd_transitions[p7O_MI][j]);
+ i++; k++;
+ while (k<dom->ad->N && dom->ad->model[k] == '.') { //extend insert
+ dom->scores_per_pos[k] = -eslINFINITY;
+ sc += log(data->fwd_transitions[p7O_II][j]);
+ i++; k++;
+ }
+ sc += log(data->fwd_transitions[p7O_IM][j+1]) - log(data->fwd_transitions[p7O_MM][j+1]);
+ dom->scores_per_pos[k-1] = sc;
+
+ } else if (dom->ad->aseq[k] == '-' ) { // delete
+ dom->scores_per_pos[k] = -eslINFINITY;
+ sc = log(data->fwd_transitions[p7O_MD][j]);
+ j++; k++;
+ while (k<dom->ad->N && dom->ad->aseq[k] == '-') { //extend delete
+ dom->scores_per_pos[k] = -eslINFINITY;
+ sc += log(data->fwd_transitions[p7O_DD][j]);
+ j++; k++;
+ }
+ sc += log(data->fwd_transitions[p7O_DM][j+1]) - log(data->fwd_transitions[p7O_MM][j+1]);
+ dom->scores_per_pos[k-1] = sc;
+ }
+ }
+
+ return eslOK;
+
+ERROR:
+ return eslEMEM;
+
+}
+
+
+/* Function: p7_pli_postViterbi_LongTarget()
* Synopsis: the part of the LongTarget P7 search Pipeline downstream
* of the Viterbi filter
*
* Purpose: This is called by postMSV_LongTarget(), and runs the
- * post-Viterbi part of H3's accelerated pipeline to
+ * post-Viterbi part of HMMER's accelerated pipeline to
* compare profile <om> against sequence <sq>. If a
* significant hit is found, information about it is
* added to the <hitlist>.
@@ -888,23 +1000,23 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
* om - optimized profile (query)
* bg - background model
* hitlist - pointer to hit storage bin
- * msvdata - for computing windows based on maximum prefix/suffix extensions
+ * data - for computing windows based on maximum prefix/suffix extensions
* seqidx - the id # of the sequence from which the current window was extracted
* window_start - the starting position of the extracted window (offset from the first
* position of the block of a possibly longer sequence)
* window_len - the length of the extracted window
- * tmpseq - a new or reused digital sequence object used for "domain" definition
- * ddef_app - a new or reused DOMAINDEF object used for capturing and printing APP values
* subseq - digital sequence of the extracted window
* seq_start - first position of the sequence block passed in to the calling pipeline function
* seq_name - name of the sequence the window comes from
* seq_source - source of the sequence the window comes from
* seq_acc - acc of the sequence the window comes from
* seq_desc - desc of the sequence the window comes from
- * nullsc - score of the passed window vs the bg model
- * usc - msv score of the passed window
+ * seq_len - length of the sequence the window comes from (Available from FM; otherwise 0 and to be ignored)
* complementarity - boolean; is the passed window sourced from a complementary sequence block
- *
+ * overlap - number of residues in this sequence window that overlap a preceding window.
+ * pli_tmp - a collection of objects used in the long target pipeline that should be
+ * (and are) only allocated once per pipeline to minimize alloc overhead.
+
* Returns: <eslOK> on success. If a significant hit is obtained,
* its information is added to the growing <hitlist>.
*
@@ -917,15 +1029,15 @@ p7_Pipeline(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, const ESL_SQ *sq, P7_T
*
* Throws: <eslEMEM> on allocation failure.
*
- * Xref: J4/25.
*/
static int
-postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist,
- int64_t seqidx, int window_start, int window_len, ESL_SQ *tmpseq, P7_DOMAINDEF *ddef_app,
- ESL_DSQ *subseq, int seq_start, char *seq_name, char *seq_source, char* seq_acc, char* seq_desc,
- int complementarity, int *overlap
+p7_pli_postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, const P7_SCOREDATA *data,
+ int64_t seqidx, int window_start, int window_len, ESL_DSQ *subseq,
+ int seq_start, char *seq_name, char *seq_source, char* seq_acc, char* seq_desc, int seq_len,
+ int complementarity, int *overlap, P7_PIPELINE_LONGTARGET_OBJS *pli_tmp
)
{
+ P7_DOMAIN *dom = NULL; /* convenience variable, ptr to current domain */
P7_HIT *hit = NULL; /* ptr to the current hit output data */
float fwdsc; /* filter scores */
float nullsc;
@@ -935,7 +1047,8 @@ postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS
double P; /* P-value of a hit */
int d;
int status;
-
+// int nres;
+ ESL_DSQ *dsq_holder;
int env_len;
int ali_len;
@@ -946,15 +1059,18 @@ postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS
int F3_L = ESL_MIN( window_len, pli->B3);
-
p7_bg_SetLength(bg, window_len);
p7_bg_NullOne (bg, subseq, window_len, &nullsc);
- p7_bg_FilterScore(bg, subseq, window_len, &bias_filtersc);
- bias_filtersc -= nullsc; //remove nullsc, so bias scaling can be done, then add it back on later
+ if (pli->do_biasfilter)
+ {
+ p7_bg_FilterScore(bg, subseq, window_len, &bias_filtersc);
+ bias_filtersc -= nullsc; //remove nullsc, so bias scaling can be done, then add it back on later
+ } else {
+ bias_filtersc = 0;
+ }
p7_oprofile_ReconfigRestLength(om, window_len);
-
/* Parse with Forward and obtain its real Forward score. */
p7_ForwardParser(subseq, window_len, om, pli->oxf, &fwdsc);
filtersc = nullsc + (bias_filtersc * ( F3_L>window_len ? 1.0 : (float)F3_L/window_len) );
@@ -967,26 +1083,30 @@ postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS
*overlap = -1; // overload variable to tell calling function that this window passed fwd
/*now that almost everything has been filtered away, set up seq object for domaindef function*/
- if ((status = esl_sq_SetName (tmpseq, seq_name)) != eslOK) goto ERROR;
- if ((status = esl_sq_SetSource (tmpseq, seq_source)) != eslOK) goto ERROR;
- if ((status = esl_sq_SetAccession(tmpseq, seq_acc)) != eslOK) goto ERROR;
- if ((status = esl_sq_SetDesc (tmpseq, seq_desc)) != eslOK) goto ERROR;
- if ((status = esl_sq_GrowTo (tmpseq, window_len)) != eslOK) goto ERROR;
- tmpseq->n = window_len;
-
- if ((status = esl_abc_dsqcpy(subseq, window_len, tmpseq->dsq)) != eslOK) goto ERROR;
- tmpseq->dsq[window_len+1]= eslDSQ_SENTINEL;
+ if ((status = esl_sq_SetName (pli_tmp->tmpseq, seq_name)) != eslOK) goto ERROR;
+ if ((status = esl_sq_SetSource (pli_tmp->tmpseq, seq_source)) != eslOK) goto ERROR;
+ if ((status = esl_sq_SetAccession(pli_tmp->tmpseq, seq_acc)) != eslOK) goto ERROR;
+ if ((status = esl_sq_SetDesc (pli_tmp->tmpseq, seq_desc)) != eslOK) goto ERROR;
+ pli_tmp->tmpseq->L = seq_len;
+ pli_tmp->tmpseq->n = window_len;
+ dsq_holder = pli_tmp->tmpseq->dsq; // will point back to the original at the end
+ pli_tmp->tmpseq->dsq = subseq;
/* Now a Backwards parser pass, and hand it to domain definition workflow
* In this case "domains" will end up being translated as independent "hits" */
p7_omx_GrowTo(pli->oxb, om->M, 0, window_len);
- p7_BackwardParser(tmpseq->dsq, window_len, om, pli->oxf, pli->oxb, NULL);
+ p7_BackwardParser(subseq, window_len, om, pli->oxf, pli->oxb, NULL);
+
+ //if we're asked to not do null correction, pass a NULL instead of a temp scores variable - domaindef knows what to do
+ status = p7_domaindef_ByPosteriorHeuristics(pli_tmp->tmpseq, NULL, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, bg, TRUE,
+ pli_tmp->bg, (pli->do_null2?pli_tmp->scores:NULL), pli_tmp->fwd_emissions_arr);
- status = p7_domaindef_ByPosteriorHeuristics(tmpseq, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, ddef_app, bg, TRUE);
+ pli_tmp->tmpseq->dsq = dsq_holder;
if (status != eslOK) ESL_FAIL(status, pli->errbuf, "domain definition workflow failure"); /* eslERANGE can happen */
if (pli->ddef->nregions == 0) return eslOK; /* score passed threshold but there's no discrete domains here */
if (pli->ddef->nenvelopes == 0) return eslOK; /* rarer: region was found, stochastic clustered, no envelopes found */
+
/* Put these hits ("domains") into the hit list.
*
* Modified original pipeline to create a single hit for each
@@ -1002,118 +1122,122 @@ postViterbi_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS
for (d = 0; d < pli->ddef->ndom; d++)
{
- /* note: the initial bitscore of a hit depends on the window_len of the
- * current window. Here, the score is modified (reduced) by treating
- * all passing windows as though they came from windows of length
- * om->max_length. For details, see
- * ~wheelert/notebook/2012/0130_bits_v_evalues/00NOTES (Feb 1)
- */
+ dom = pli->ddef->dcl + d;
+
//adjust the score of a hit to account for the full length model - the characters outside the envelope but in the window
- env_len = pli->ddef->dcl[d].jenv - pli->ddef->dcl[d].ienv + 1;
- ali_len = pli->ddef->dcl[d].jali - pli->ddef->dcl[d].iali + 1;
- bitscore = pli->ddef->dcl[d].envsc ;
- //For these modifications, see notes, ~/notebook/2010/0716_hmmer_score_v_eval_bug/, end of Thu Jul 22 13:36:49 EDT 2010
- bitscore -= 2 * log(2. / (window_len+2)) + (env_len-ali_len) * log((float)window_len / (window_len+2));
- bitscore += 2 * log(2. / (om->max_length+2)) ;
- //the ESL_MAX test handles the extremely rare case that the env_len is actually larger than om->max_length
- bitscore += (ESL_MAX(om->max_length, env_len) - ali_len) * log((float)om->max_length / (float) (om->max_length+2));
+ env_len = dom->jenv - dom->ienv + 1;
+ ali_len = dom->jali - dom->iali + 1;
+ bitscore = dom->envsc ;
+
+
+ if (ali_len < 8) {
+ p7_alidisplay_Destroy(dom->ad);
+ continue; // anything less than this is a funny byproduct of the Forward score passing a very low threshold, but no reliable alignment existing that supports it
+ }
+ /* note: this bitscore was computed under a model with length of
+ * env_len (jenv-ienv+1). Here, the score is modified (reduced) by
+ * treating the hit as though it came from a window of length
+ * om->max_length. To do this:
+ */
+ // (1) the entrance/exit costs are shifted from env_len to max_length:
+ bitscore -= 2 * log(2. / (env_len+2)) ;
+ bitscore += 2 * log(2. / (om->max_length+2)) ;
- /*compute scores used to decide if we should keep this "domain" as a hit.
- *
- * Apply an ad hoc log(omega) fudge factor penalty; interpreted as a prior,
- * saying that this null model is <omega> as likely as the standard null model.
- * <omega> is by default 1/(2^8), so this is by default an 8 bit penalty.
+ // (2) the extension cost for going from ali bounds to env bounds is removed,
+ // and replaced with the cost of going from ali bounds to max length (or env
+ // bounds in the extremely rare case that the env_len is actually larger than om->max_length).
+ bitscore -= (env_len-ali_len) * log((float)env_len / (env_len+2));
+ bitscore += (ESL_MAX(om->max_length, env_len) - ali_len) * log((float)om->max_length / (float) (om->max_length+2));
+
+ /* Compute scores used to decide if we should keep this "domain" as a hit.
+ * Note that the bias correction was captured in dom->domcorrection during
+ * the p7_domaindef_ByPosteriorHeuristics() call.
*/
- dom_bias = (pli->do_null2 ? p7_FLogsum(0.0, log(bg->omega) + pli->ddef->dcl[d].domcorrection) : 0.0);
- dom_score = (bitscore - (nullsc + dom_bias)) / eslCONST_LOG2;
+ dom_bias = dom->domcorrection;
+ p7_bg_SetLength(bg, ESL_MAX(om->max_length, env_len));
+ p7_bg_NullOne (bg, subseq, ESL_MAX(om->max_length, env_len), &nullsc);
+ dom_score = (bitscore - (nullsc)) / eslCONST_LOG2;
dom_lnP = esl_exp_logsurv(dom_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]);
- //note: this test is conservative: it uses just the nres from the current pipeline, while the final filters
- //will add up nres from all threads, over all windows, which will increase stringency
- if ( p7_pli_TargetReportable(pli, dom_score, dom_lnP + log((float)pli->nres / om->max_length) ) ) {
-
- p7_tophits_CreateNextHit(hitlist, &hit);
-
- hit->ndom = 1;
- hit->best_domain = 0;
-
- hit->window_length = om->max_length;
- hit->seqidx = seqidx;
- hit->subseq_start = seq_start;
-
- ESL_ALLOC(hit->dcl, sizeof(P7_DOMAIN) );
- hit->dcl[0] = pli->ddef->dcl[d];
-
- if (complementarity == fm_nocomplement) {
- hit->dcl[0].ienv += window_start - 1; // represents the real position within the sequence handed to the pipeline
- hit->dcl[0].jenv += window_start - 1;
- hit->dcl[0].iali += window_start - 1;
- hit->dcl[0].jali += window_start - 1;
- hit->dcl[0].ihq += window_start - 1;
- hit->dcl[0].jhq += window_start - 1;
- hit->dcl[0].ad->sqfrom += window_start - 1;
- hit->dcl[0].ad->sqto += window_start - 1;
- } else {
-
- hit->dcl[0].ienv = window_start + window_len - 1 - hit->dcl[0].ienv + 1; // represents the real position within the sequence handed to the pipeline
- hit->dcl[0].jenv = window_start + window_len - 1 - hit->dcl[0].jenv + 1;
- hit->dcl[0].iali = window_start + window_len - 1 - hit->dcl[0].iali + 1;
- hit->dcl[0].jali = window_start + window_len - 1 - hit->dcl[0].jali + 1;
- hit->dcl[0].ihq = window_start + window_len - 1 - hit->dcl[0].ihq + 1;
- hit->dcl[0].jhq = window_start + window_len - 1 - hit->dcl[0].jhq + 1;
- hit->dcl[0].ad->sqfrom = window_start + window_len - 1 - hit->dcl[0].ad->sqfrom + 1;
- hit->dcl[0].ad->sqto = window_start + window_len - 1 - hit->dcl[0].ad->sqto + 1;
- }
+ if (pli->do_alignment_score_calc)
+ p7_pli_computeAliScores(dom, subseq, data, om->abc->Kp);
+ p7_tophits_CreateNextHit(hitlist, &hit);
- hit->pre_score = bitscore / eslCONST_LOG2;
- hit->pre_lnP = esl_exp_logsurv (hit->pre_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]);
+ hit->ndom = 1;
+ hit->best_domain = 0;
- hit->dcl[0].dombias = dom_bias;
- hit->sum_score = hit->score = hit->dcl[0].bitscore = dom_score;
- hit->sum_lnP = hit->lnP = hit->dcl[0].lnP = dom_lnP;
+ hit->window_length = om->max_length;
+ hit->seqidx = seqidx;
+ hit->subseq_start = seq_start;
- if (pli->mode == p7_SEARCH_SEQS)
- {
- if ( (status = esl_strdup(seq_name, -1, &(hit->name))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure");
- if (seq_acc[0] != '\0' && (status = esl_strdup(seq_acc, -1, &(hit->acc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure");
- if (seq_desc[0] != '\0' && (status = esl_strdup(seq_desc, -1, &(hit->desc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure");
- } else {
- if ((status = esl_strdup(om->name, -1, &(hit->name))) != eslOK) esl_fatal("allocation failure");
- if ((status = esl_strdup(om->acc, -1, &(hit->acc))) != eslOK) esl_fatal("allocation failure");
- if ((status = esl_strdup(om->desc, -1, &(hit->desc))) != eslOK) esl_fatal("allocation failure");
- }
+ ESL_ALLOC(hit->dcl, sizeof(P7_DOMAIN) );
+ hit->dcl[0] = pli->ddef->dcl[d];
+ hit->dcl[0].ad->L = seq_len;
- /* If using model-specific thresholds, filter now. See notes in front
- * of the analogous piece of code in p7_Pipeline() for further explanation
- * of timing.
- */
- if (pli->use_bit_cutoffs)
- {
- if (p7_pli_TargetReportable(pli, hit->score, hit->lnP))
- {
- hit->flags |= p7_IS_REPORTED;
- if (p7_pli_TargetIncludable(pli, hit->score, hit->lnP))
- hit->flags |= p7_IS_INCLUDED;
- }
+ // compute the real positions within the sequence handed to the pipeline
+ if (complementarity == p7_NOCOMPLEMENT) {
+ hit->dcl[0].ienv += seq_start + window_start - 2;
+ hit->dcl[0].jenv += seq_start + window_start - 2;
+ hit->dcl[0].iali += seq_start + window_start - 2;
+ hit->dcl[0].jali += seq_start + window_start - 2;
+ hit->dcl[0].ad->sqfrom += seq_start + window_start - 2;
+ hit->dcl[0].ad->sqto += seq_start + window_start - 2;
+ } else {
+ hit->dcl[0].ienv = seq_start - (window_start + hit->dcl[0].ienv) + 2;
+ hit->dcl[0].jenv = seq_start - (window_start + hit->dcl[0].jenv) + 2;
+ hit->dcl[0].iali = seq_start - (window_start + hit->dcl[0].iali) + 2;
+ hit->dcl[0].jali = seq_start - (window_start + hit->dcl[0].jali) + 2;
+ hit->dcl[0].ad->sqfrom = seq_start - (window_start + hit->dcl[0].ad->sqfrom) + 2;
+ hit->dcl[0].ad->sqto = seq_start - (window_start + hit->dcl[0].ad->sqto) + 2;
+ }
+ hit->pre_score = bitscore / eslCONST_LOG2;
+ hit->pre_lnP = esl_exp_logsurv (hit->pre_score, om->evparam[p7_FTAU], om->evparam[p7_FLAMBDA]);
- if (p7_pli_DomainReportable(pli, hit->dcl[0].bitscore, hit->dcl[0].lnP))
- {
- hit->dcl[0].is_reported = TRUE;
- if (p7_pli_DomainIncludable(pli, hit->dcl[0].bitscore, hit->dcl[0].lnP))
- hit->dcl[0].is_included = TRUE;
- }
+ hit->dcl[0].dombias = dom_bias;
+ hit->sum_score = hit->score = hit->dcl[0].bitscore = dom_score;
+ hit->sum_lnP = hit->lnP = hit->dcl[0].lnP = dom_lnP;
- }
+ if (pli->mode == p7_SEARCH_SEQS)
+ {
+ if ( (status = esl_strdup(seq_name, -1, &(hit->name))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure");
+ if (seq_acc[0] != '\0' && (status = esl_strdup(seq_acc, -1, &(hit->acc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure");
+ if (seq_desc[0] != '\0' && (status = esl_strdup(seq_desc, -1, &(hit->desc))) != eslOK) ESL_EXCEPTION(eslEMEM, "allocation failure");
+ } else {
+ if ((status = esl_strdup(om->name, -1, &(hit->name))) != eslOK) esl_fatal("allocation failure");
+ if ((status = esl_strdup(om->acc, -1, &(hit->acc))) != eslOK) esl_fatal("allocation failure");
+ if ((status = esl_strdup(om->desc, -1, &(hit->desc))) != eslOK) esl_fatal("allocation failure");
}
- }
+ /* If using model-specific thresholds, filter now. See notes in front
+ * of the analogous piece of code in p7_Pipeline() for further explanation
+ * of timing.
+ */
+ if (pli->use_bit_cutoffs)
+ {
+ if (p7_pli_TargetReportable(pli, hit->score, hit->lnP))
+ {
+ hit->flags |= p7_IS_REPORTED;
+ if (p7_pli_TargetIncludable(pli, hit->score, hit->lnP))
+ hit->flags |= p7_IS_INCLUDED;
+ }
+
+ if (p7_pli_DomainReportable(pli, hit->dcl[0].bitscore, hit->dcl[0].lnP))
+ {
+ hit->dcl[0].is_reported = TRUE;
+ if (p7_pli_DomainIncludable(pli, hit->dcl[0].bitscore, hit->dcl[0].lnP))
+ hit->dcl[0].is_included = TRUE;
+ }
+
+ }
+
+ }
return eslOK;
@@ -1123,40 +1247,42 @@ ERROR:
}
-/* Function: postMSV_LongTarget()
+/* Function: p7_pli_postSSV_LongTarget()
* Synopsis: the part of the LongTarget P7 search Pipeline downstream
- * of the MSV filter
+ * of the SSV filter
*
- * Purpose: This is called by either the standard (SIMD-MSV) long-target
+ * Purpose: This is called by either the standard (SIMD-SSV) long-target
* pipeline (p7_Pipeline_LongTarget) or the FM-index long-target
* pipeline (p7_Pipeline_FM), and runs the post-MSV part of H3's
- * accelerated pipeline to compare profile <om> against
- * sequence <sq>. If a significant hit is found,
- * information about it is added to the <hitlist>.
- * The pipeline accumulates beancounting information
- * about how many comparisons (and residues) flow through
- * the pipeline while it's active.
+ * accelerated pipeline to compare profile <om> against sequence
+ * <sq>. If a significant hit is found (within the function
+ * p7_pipeline_postViterbi_LongTarget(), called in this function),
+ * information about it is added to the <hitlist>. The pipeline
+ * accumulates beancounting information about how many comparisons
+ * and residues flow through the pipeline while it's active.
*
* Args: pli - the main pipeline object
* om - optimized profile (query)
* bg - background model
* hitlist - pointer to hit storage bin
- * msvdata - for computing windows based on maximum prefix/suffix extensions
+ * data - for computing windows based on maximum prefix/suffix extensions
* seqidx - the id # of the sequence from which the current window was extracted
* window_start - the starting position of the extracted window (offset from the first
* position of the block of a possibly longer sequence)
* window_len - the length of the extracted window
- * tmpseq - a new or reused digital sequence object used for "domain" definition
- * ddef_app - a new or reused DOMAINDEF object used for capturing and printing APP values
* subseq - digital sequence of the extracted window
* seq_start - first position of the sequence block passed in to the calling pipeline function
* seq_name - name of the sequence the window comes from
* seq_source - source of the sequence the window comes from
* seq_acc - acc of the sequence the window comes from
* seq_desc - desc of the sequence the window comes from
+ * seq_len - length of the sequence the window comes from (only FM will have it; otherwise, 0 and ignored)
* nullsc - score of the passed window vs the bg model
* usc - msv score of the passed window
* complementarity - boolean; is the passed window sourced from a complementary sequence block
+ * vit_windowlist - initialized window list, in which viterbi-passing hits are captured
+ * pli_tmp - a collection of objects used in the long target pipeline that should be
+ * (and are) only allocated once per pipeline to minimize alloc overhead.
*
* Returns: <eslOK> on success. If a significant hit is obtained,
* its information is added to the growing <hitlist>.
@@ -1170,33 +1296,32 @@ ERROR:
*
* Throws: <eslEMEM> on allocation failure.
*
- * Xref: J4/25.
*/
static int
-postMSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, const P7_MSVDATA *msvdata,
- int64_t seqidx, int window_start, int window_len, ESL_SQ *tmpseq, P7_DOMAINDEF *ddef_app,
- ESL_DSQ *subseq, int seq_start, char *seq_name, char *seq_source, char* seq_acc, char* seq_desc,
- float nullsc, float usc, int complementarity, P7_HMM_WINDOWLIST *vit_windowlist
+p7_pli_postSSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, const P7_SCOREDATA *data,
+ int64_t seqidx, uint64_t window_start, int window_len, ESL_DSQ *subseq,
+ uint64_t seq_start, char *seq_name, char *seq_source, char* seq_acc, char* seq_desc, int seq_len,
+ float nullsc, float usc, int complementarity, P7_HMM_WINDOWLIST *vit_windowlist,
+ P7_PIPELINE_LONGTARGET_OBJS *pli_tmp
)
{
float filtersc; /* HMM null filter score */
float bias_filtersc; /* HMM null filter score */
float seq_score; /* the corrected per-seq bit score */
- double P; /* P-value of a hit */
+ double P; /* P-value of a hit */
int i;
int overlap;
- int new_n;
- int new_len;
+ uint64_t new_n;
+ uint32_t new_len;
int loc_window_len; //used to re-parameterize to shorter target windows
int max_window_len = 80000;
- int smaller_window_len = 40000;
+ int overlap_len = ESL_MIN(40000, om->max_length); // Won't allow more than 40K overlap - that's an absurdly long MAXL.
int F1_L = ESL_MIN( window_len, pli->B1);
int F2_L = ESL_MIN( window_len, pli->B2);
-
//initial bias filter, based on the input window_len
if (pli->do_biasfilter) {
p7_bg_SetLength(bg, window_len);
@@ -1223,38 +1348,34 @@ postMSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hit
// possibly shorter length model
filtersc = nullsc + (bias_filtersc * ( F2_L>window_len ? 1.0 : (float)F2_L/window_len) );
-
//Then configure the model length based on the possibly shorter window length
p7_oprofile_ReconfigRestLength(om, loc_window_len);
/* Second level filter: ViterbiFilter(), multihit with <om> */
p7_omx_GrowTo(pli->oxf, om->M, 0, window_len);
-
//use window_len instead of loc_window_len, because length parameterization is done, just need to loop over subseq
p7_ViterbiFilter_longtarget(subseq, window_len, om, pli->oxf, filtersc, pli->F2, vit_windowlist);
- p7_pli_ExtendAndMergeWindows (om, msvdata, vit_windowlist, window_len, 0.5);
-
+ p7_pli_ExtendAndMergeWindows (om, data, vit_windowlist, 0.5);
// if a window is still too long (>80Kb), need to split it up to
// ensure numeric stability in Fwd.
for (i=0; i<vit_windowlist->count; i++) {
if (vit_windowlist->windows[i].length > max_window_len) {
- //fprintf(stderr, "shockingly long window (%d, %d)\n", vit_windowlist->windows[i].n, vit_windowlist->windows[i].length);
-
//modify the current window to restrict length to 40K, then add
//new windows with max length 40K, and MAXL overlap w/ preceding window
new_n = vit_windowlist->windows[i].n ;
new_len = vit_windowlist->windows[i].length ;
- vit_windowlist->windows[i].length = smaller_window_len;
+ vit_windowlist->windows[i].length = max_window_len;
do {
- new_n += (smaller_window_len - om->max_length);
- new_len -= (smaller_window_len - om->max_length);
- p7_hmmwindow_new(vit_windowlist, 0, new_n, 0, 0, ESL_MIN(smaller_window_len,new_len), 0.0, fm_nocomplement );
- } while (new_len > smaller_window_len);
+ int shift = max_window_len - overlap_len;
+ new_n += shift;
+ new_len -= shift;
+ p7_hmmwindow_new(vit_windowlist, 0, new_n, 0, 0, ESL_MIN(max_window_len,new_len), 0.0, p7_NOCOMPLEMENT, new_len );
+ } while (new_len > max_window_len);
}
}
@@ -1265,12 +1386,12 @@ postMSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hit
if (i>0)
pli->pos_past_vit -= ESL_MAX(0, vit_windowlist->windows[i-1].n + vit_windowlist->windows[i-1].length - vit_windowlist->windows[i].n );
- postViterbi_LongTarget(pli, om, bg, hitlist, seqidx,
- window_start+vit_windowlist->windows[i].n-1, vit_windowlist->windows[i].length, tmpseq,
- ddef_app, subseq + vit_windowlist->windows[i].n - 1,
- seq_start, seq_name, seq_source, seq_acc, seq_desc, complementarity, &overlap
+ p7_pli_postViterbi_LongTarget(pli, om, bg, hitlist, data, seqidx,
+ window_start+vit_windowlist->windows[i].n-1, vit_windowlist->windows[i].length,
+ subseq + vit_windowlist->windows[i].n - 1,
+ seq_start, seq_name, seq_source, seq_acc, seq_desc, seq_len, complementarity, &overlap,
+ pli_tmp
);
-
if (overlap == -1 && i<vit_windowlist->count-1) {
overlap = ESL_MAX(0, vit_windowlist->windows[i].n + vit_windowlist->windows[i].length - vit_windowlist->windows[i+1].n );
} else {
@@ -1278,13 +1399,10 @@ postMSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hit
overlap = 0;
}
- //pli->ddef->dcl = NULL; // we've handed the alidisplays to hitlist
- //p7_domaindef_Reuse(pli->ddef);
pli->ddef->ndom = 0;
}
-
return eslOK;
}
@@ -1293,17 +1411,23 @@ postMSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hit
/* Function: p7_Pipeline_LongTarget()
- * Synopsis: HMMER3's accelerated seq/profile comparison pipeline, modified to use the scanning MSV/SSV filters.
+ * Synopsis: Accelerated seq/profile comparison pipeline for long target sequences.
*
- * Purpose: Run H3's accelerated pipeline to compare profile <om>
+ * Purpose: Run HMMER's accelerated pipeline to compare profile <om>
* against sequence <sq>. If a significant hit is found,
- * information about it is added to the <hitlist>.
- * This is a variant of p7_Pipeline that runs the
- * versions of the MSV/SSV filters that scan a long
- * sequence and find high-scoring regions (windows), then pass
- * those to the remainder of the pipeline. The pipeline
- * accumulates beancounting information about how many comparisons
- * flow through the pipeline while it's active.
+ * information about it is added to the <hitlist>. This is
+ * a variant of p7_Pipeline that runs one of two
+ * alternative SSV filters
+ * (1) the scanning SSV filter (p7_SSVFilter_longtarget) that scans
+ * a long sequence and finds high-scoring regions (windows), or
+ * (2) the FM-index-based SSV filter that finds modest-scoring
+ * diagonals using the FM-index, and extends them to maximum-
+ * scoring diagonals subjected to the SSV filter thresholds
+ *
+ * Windows passing the appropriate SSV filter are then passed
+ * to the remainder of the pipeline. The pipeline accumulates
+ * bean counting information about how many comparisons and
+ * residues flow through the pipeline while it's active.
*
* Returns: <eslOK> on success. If a significant hit is obtained,
* its information is added to the growing <hitlist>.
@@ -1314,49 +1438,72 @@ postMSV_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hit
*
* <eslERANGE> on numerical overflow errors in the
* optimized vector implementations; particularly in
- * posterior decoding. I don't believe this is possible for
- * multihit local models, but I'm set up to catch it
+ * posterior decoding. We don't believe this is possible for
+ * multihit local models, but we're set up to catch it
* anyway. We may emit a warning to the user, but cleanly
* skip the problematic sequence and continue.
*
- * Throws: <eslEMEM> on allocation failure.
+ * Args: pli - the main pipeline object
+ * om - optimized profile (query)
+ * data - for computing diagonals, and picking window edges based
+ * on maximum prefix/suffix extensions
+ * bg - background model
+ * hitlist - pointer to hit storage bin (already allocated)
*
- * Xref: J4/25.
+ * :: the next three values are assigned if a standard sequence database is being used. If FM database is used, they are ignored
+ * seqidx - the id # of the sequence from which the current window was extracted
+ * sq - digital sequence of the window
+ * complementarity - is <sq> from the top strand (p7_NOCOMPLEMENT), or bottom strand (P7_COMPLEMENT)
+ *
+ * :: the next three are assigned if an FM database is being used. If standard sequence is used, they are set to NULL.
+ * fmf - the FM_DATA for forward-strand search
+ * fmb - the FM_DATA for reverse-strand (complement) search
+ * fm_cfg - general FM configuration
+ *
+ * Throws: <eslEMEM> on allocation failure.
*/
int
-p7_Pipeline_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_MSVDATA *msvdata, P7_BG *bg, const ESL_SQ *sq, P7_TOPHITS *hitlist, int64_t seqidx)
+p7_Pipeline_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_SCOREDATA *data,
+ P7_BG *bg, P7_TOPHITS *hitlist,
+ int64_t seqidx, const ESL_SQ *sq, int complementarity,
+ const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg
+ /*, ESL_STOPWATCH *ssv_watch_master
+ , ESL_STOPWATCH *postssv_watch_master
+ , ESL_STOPWATCH *watch_slave
+*/
+ )
{
int i;
int status;
float nullsc; /* null model score */
float usc; /* msv score */
float P;
- ESL_DSQ *subseq;
- ESL_SQ *tmpseq = NULL;
float bias_filtersc;
- P7_DOMAINDEF *ddef_app = NULL ;
+ ESL_DSQ *subseq;
+ uint64_t seq_start;
+
+
P7_HMM_WINDOWLIST msv_windowlist;
P7_HMM_WINDOWLIST vit_windowlist;
+ P7_HMM_WINDOW *window;
+ FM_SEQDATA seq_data;
+ P7_PIPELINE_LONGTARGET_OBJS *pli_tmp;
+
+ if ((sq && (sq->n == 0)) || (fmf && (fmf->N == 0))) return eslOK; /* silently skip length 0 seqs; they'd cause us all sorts of weird problems */
- if (sq->n == 0) return eslOK; /* silently skip length 0 seqs; they'd cause us all sorts of weird problems */
+ ESL_ALLOC(pli_tmp, sizeof(P7_PIPELINE_LONGTARGET_OBJS));
+ pli_tmp->bg = p7_bg_Clone(bg);
+ pli_tmp->om = p7_oprofile_Create(om->M, om->abc);
+ ESL_ALLOC(pli_tmp->scores, sizeof(float) * om->abc->Kp * 4); //allocation of space to store scores that will be used in p7_oprofile_Update(Fwd|Vit|MSV)EmissionScores
+ ESL_ALLOC(pli_tmp->fwd_emissions_arr, sizeof(float) * om->abc->Kp * (om->M+1));
msv_windowlist.windows = NULL;
vit_windowlist.windows = NULL;
-
p7_hmmwindow_init(&msv_windowlist);
- ddef_app = p7_domaindef_Create(pli->r); /* single allocation of a domaindef object that will be used
- to compute mocc posterior probs for hit segments */
-
- ddef_app->show_app = pli->show_app;
- ddef_app->app_hi = pli->app_hi;
- ddef_app->app_med = pli->app_med;
- ddef_app->app_lo = pli->app_lo;
-
-
p7_omx_GrowTo(pli->oxf, om->M, 0, om->max_length); /* expand the one-row omx if needed */
/* Set false target length. This is a conservative estimate of the length of window that'll
@@ -1369,202 +1516,185 @@ p7_Pipeline_LongTarget(P7_PIPELINE *pli, P7_OPROFILE *om, P7_MSVDATA *msvdata, P
* This variant of SSV will scan a long sequence and find
* short high-scoring regions.
*/
- p7_MSVFilter_longtarget(sq->dsq, sq->n, om, pli->oxf, msvdata, bg, pli->F1, &msv_windowlist);
+// if (watch_slave) {
+ // esl_stopwatch_Start(watch_slave);
+ // }
+
+
+ if (fmf) // using an FM-index
+ p7_SSVFM_longlarget(om, 2.0, bg, pli->F1, fmf, fmb, fm_cfg, data, pli->strands, &msv_windowlist );
+ else // compare directly to sequence
+ p7_SSVFilter_longtarget(sq->dsq, sq->n, om, pli->oxf, data, bg, pli->F1, &msv_windowlist);
+/* if (watch_slave) {
+ esl_stopwatch_Stop(watch_slave);
+ esl_stopwatch_Include(ssv_watch_master, watch_slave);
+ esl_stopwatch_Start(watch_slave);
+ }
+*/
- /* convert hits to windows, possibly filtering based on composition bias,
- * definitely merging neighboring windows, and
- * TODO: splitting overly-large windows
+ /* convert hits to windows, merging neighboring windows
*/
if ( msv_windowlist.count > 0 ) {
- /* In scan mode, if it passes the MSV filter, read the rest of the profile */
- if (pli->hfp)
+ /* In scan mode, if it passes the MSV filter, read the rest of the profile
+ * Not necessary for dummy mode, where the ->base_w variable checks cause compilation failure*/
+#ifndef P7_IMPL_DUMMY_INCLUDED
+ if (!fmf && pli->hfp)
{
- p7_oprofile_ReadRest(pli->hfp, om);
- if ((status = p7_pli_NewModelThresholds(pli, om)) != eslOK) goto ERROR; /* pli->errbuf has err msg set */
+ if (om->base_w == 0 && om->scale_w == 0) { // we haven't already read this hmm (if we're on the second strand, we would've)
+ p7_oprofile_ReadRest(pli->hfp, om);
+ if ((status = p7_pli_NewModelThresholds(pli, om)) != eslOK) goto ERROR;
+ }
}
+#endif
- if (msvdata->prefix_lengths == NULL) { //otherwise, already filled in
- p7_hmm_MSVDataComputeRest(om, msvdata);
- }
+ p7_oprofile_GetFwdEmissionArray(om, bg, pli_tmp->fwd_emissions_arr);
- /*
- //filter for biased composition of diagonals here ?
- if (pli->do_biasfilter) {
- j = 0;
- for (i=0; i<windowlist.count; i++) {
- curr_window = windowlist.windows + i;
- p7_bg_FilterScore(bg, sq->dsq + curr_window->n-1, curr_window->length, &bias_sc);
- bias_sc = (curr_window->score - bias_sc) / eslCONST_LOG2;
- biasP = esl_gumbel_surv(bias_sc, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
-
- if (biasP <= pli->F1 ) { // keep it
- windowlist.windows[j] = windowlist.windows[i];
- j++;
+ if (data->prefix_lengths == NULL) //otherwise, already filled in
+ p7_hmm_ScoreDataComputeRest(om, data);
+
+ p7_pli_ExtendAndMergeWindows (om, data, &msv_windowlist, 0);
+
+ /* If using FM, it's possible for a seed we just created to span more than one segment
+ * in the target. Check for this, and resolve it, by trimming an over-extended
+ * segment, and tacking it on as a new window (to be dealt with in a later pass)
+ */
+ if (fmf) {
+ for (i=0; i<msv_windowlist.count; i++) {
+ int again = TRUE;
+ window = msv_windowlist.windows + i;
+
+ while (again) {
+ uint32_t seg_id;
+ uint64_t seg_pos;
+ again = FALSE;
+
+ status = fm_getOriginalPosition (fmf, fm_cfg->meta, 0, window->length, window->complementarity, window->fm_n, &seg_id, &seg_pos);
+
+ if (status == eslERANGE) {
+ int overext;
+ int use_length;
+ int is_compl = (window->complementarity == p7_COMPLEMENT);
+
+ overext = (seg_pos + window->length) - (fm_cfg->meta->seq_data[ seg_id ].target_start + fm_cfg->meta->seq_data[ seg_id ].length - 1) ;
+
+ use_length = window->length - overext + 1;
+
+ if (use_length >= 8 && window->length >= 8) { // if both halves are kinda long, split the first half off as a new window
+ p7_hmmwindow_new(&msv_windowlist, seg_id + (is_compl?-1:1), window->n, window->fm_n, window->k+use_length-1, use_length, window->score, window->complementarity, fm_cfg->meta->seq_data[seg_id].length);
+ window = msv_windowlist.windows + i; // it may have moved due a a realloc
+ window->k += use_length;
+ window->length = overext;
+ again = TRUE;
+ } else if (window->length >= 8) { //if just the right half is long enough, shift numbers over
+ window->k += use_length;
+ window->length = overext;
+ } else { //just limit the length of the left half
+ window->length = use_length;
+ }
+
+ }
}
}
- windowlist.count = j;
}
-*/
- p7_pli_ExtendAndMergeWindows (om, msvdata, &msv_windowlist, sq->n, 0);
-
- /*
- * pass each remaining window on to the remaining pipeline
- */
+ /* Pass each remaining window on to the remaining pipeline */
p7_hmmwindow_init(&vit_windowlist);
- tmpseq = esl_sq_CreateDigital(sq->abc);
- for (i=0; i<msv_windowlist.count; i++){
- int window_len = msv_windowlist.windows[i].length;
+ pli_tmp->tmpseq = esl_sq_CreateDigital(om->abc);
+ if (!fmf )
+ free (pli_tmp->tmpseq->dsq); //this ESL_SQ object is just a container that'll point to a series of other DSQs, so free the one we just created inside the larger SQ object
- subseq = sq->dsq + msv_windowlist.windows[i].n - 1;
- p7_bg_SetLength(bg, window_len);
- p7_bg_NullOne (bg, subseq, window_len, &nullsc);
+ for (i=0; i<msv_windowlist.count; i++){
+ window = msv_windowlist.windows + i ;
- p7_bg_FilterScore(bg, subseq, window_len, &bias_filtersc);
+ if (fmf) {
+ fm_convertRange2DSQ( fmf, fm_cfg->meta, window->fm_n, window->length, window->complementarity, pli_tmp->tmpseq, TRUE );
+ subseq = pli_tmp->tmpseq->dsq;
+ } else {
+ subseq = sq->dsq + window->n - 1;
+ }
+ p7_bg_SetLength(bg, window->length);
+ p7_bg_NullOne (bg, subseq, window->length, &nullsc);
+
+ p7_bg_FilterScore(bg, subseq, window->length, &bias_filtersc);
// Compute standard MSV to ensure that bias doesn't overcome SSV score when MSV
// would have survived it
- p7_oprofile_ReconfigMSVLength(om, window_len);
- p7_MSVFilter(subseq, window_len, om, pli->oxf, &usc);
-
+ p7_oprofile_ReconfigMSVLength(om, window->length);
+ p7_MSVFilter(subseq, window->length, om, pli->oxf, &usc);
P = esl_gumbel_surv( (usc-nullsc)/eslCONST_LOG2, om->evparam[p7_MMU], om->evparam[p7_MLAMBDA]);
- if (P > pli->F1 ) continue;
- pli->pos_past_msv += window_len;
+ if (P > pli->F1 ) continue;
+ pli->pos_past_msv += window->length;
- status = postMSV_LongTarget(pli, om, bg, hitlist, msvdata, seqidx, msv_windowlist.windows[i].n, window_len, tmpseq, ddef_app,
- subseq, sq->start, sq->name, sq->source, sq->acc, sq->desc, nullsc, usc, fm_nocomplement, &vit_windowlist
- );
+ if (fmf) {
+ seq_data = fm_cfg->meta->seq_data[window->id];
+ seq_start = seq_data.target_start;
+ if (window->complementarity == p7_COMPLEMENT)
+ seq_start += seq_data.length - 2;
+ }
+ status = p7_pli_postSSV_LongTarget(pli, om, bg, hitlist, data,
+ (fmf != NULL ? seq_data.target_id : seqidx),
+ window->n, window->length, subseq,
+ (fmf != NULL ? seq_start : sq->start),
+ (fmf != NULL ? seq_data.name : sq->name),
+ (fmf != NULL ? seq_data.source : sq->source),
+ (fmf != NULL ? seq_data.acc : sq->acc),
+ (fmf != NULL ? seq_data.desc : sq->desc),
+ (fmf != NULL ? seq_data.length : -1),
+ nullsc,
+ usc,
+ (fmf != NULL ? window->complementarity : complementarity),
+ &vit_windowlist,
+ pli_tmp
+ );
+ if (status != eslOK) goto ERROR;
+ }
- if (status != eslOK) goto ERROR;
+ if (fmf) free (pli_tmp->tmpseq->dsq);
- }
+ pli_tmp->tmpseq->dsq = NULL; //it's a pointer to a dsq object belonging to another sequence
- esl_sq_Destroy(tmpseq);
+ esl_sq_Destroy(pli_tmp->tmpseq);
free (vit_windowlist.windows);
}
+/*
+ if (watch_slave) {
+ esl_stopwatch_Stop(watch_slave);
+ esl_stopwatch_Include(postssv_watch_master, watch_slave);
+ }
+*/
if (msv_windowlist.windows != NULL) free (msv_windowlist.windows);
- if (ddef_app != NULL ) p7_domaindef_Destroy(ddef_app);
+
+ if (pli_tmp != NULL) {
+ if (pli_tmp->bg != NULL) p7_bg_Destroy(pli_tmp->bg);
+ if (pli_tmp->om != NULL) p7_oprofile_Destroy(pli_tmp->om);
+ if (pli_tmp->scores != NULL) free (pli_tmp->scores);
+ if (pli_tmp->fwd_emissions_arr != NULL) free (pli_tmp->fwd_emissions_arr);
+ free(pli_tmp);
+ }
return eslOK;
ERROR:
- if (tmpseq != NULL) esl_sq_Destroy(tmpseq);
if (msv_windowlist.windows != NULL) free (msv_windowlist.windows);
if (vit_windowlist.windows != NULL) free (vit_windowlist.windows);
- if (ddef_app != NULL ) p7_domaindef_Destroy(ddef_app);
-
- return status;
-
-}
-
-
-
-
-
-/* Function: p7_Pipeline_FM()
- * Synopsis: HMMER3's accelerated seq/profile comparison pipeline, using FM-index.
- *
- * Purpose: Using FM-index, find high-scoring MSV windows, then
- * pass these windows on to later pipeline stages. This
- * pipeline compares profile <om> against the FM-index
- * to find seeds, then extends those seeds to MSV-passing
- * diagonals by comparing agasint the sequence associated
- * with that window. If a significant hit is found,
- * information about it is added to the <hitlist>. The
- * pipeline accumulates beancounting information about how
- * many comparisons flow through the pipeline while it's active.
- *
- * Returns: <eslOK> on success. If a significant hit is obtained,
- * its information is added to the growing <hitlist>.
- *
- * <eslEINVAL> if (in a scan pipeline) we're supposed to
- * set GA/TC/NC bit score thresholds but the model doesn't
- * have any.
- *
- * <eslERANGE> on numerical overflow errors in the
- * optimized vector implementations; particularly in
- * posterior decoding. I don't believe this is possible for
- * multihit local models, but I'm set up to catch it
- * anyway. We may emit a warning to the user, but cleanly
- * skip the problematic sequence and continue.
- *
- * Throws: <eslEMEM> on allocation failure.
- *
- * Xref: J4/25.
- */
-int
-p7_Pipeline_FM( P7_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, P7_TOPHITS *hitlist, int64_t seqidx,
- const FM_DATA *fmf, const FM_DATA *fmb, FM_CFG *fm_cfg, const P7_MSVDATA *msvdata)
-{
-
- int i;
- int status;
- ESL_SQ *tmpseq;
- ESL_DSQ *subseq;
- P7_HMM_WINDOW window;
- P7_HMM_WINDOWLIST windowlist;
- FM_SEQDATA *seqdata;
- P7_DOMAINDEF *ddef_app;
-
- tmpseq = esl_sq_CreateDigital(om->abc);
-
- ddef_app = p7_domaindef_Create(pli->r); /* single allocation of a domaindef object that will be used
- to compute mocc posterior probs for hit segments */
-
- if (fmf->N == 0) return eslOK; /* silently skip length 0 seqs; they'd cause us all sorts of weird problems */
-
- p7_hmmwindow_init(&windowlist);
-
- seqdata = fm_cfg->meta->seq_data;
-
- p7_omx_GrowTo(pli->oxf, om->M, 0, 0); /* expand the one-row omx if needed */
-
-
- /* First level filter: the MSV filter, multihit with <om>.
- * This variant of MSV will scan a long sequence and find
- * short high-scoring regions.
- * */
- p7_FM_MSV(om, (P7_GMX*)(pli->oxf), 2.0, bg, pli->F1,
- fmf, fmb, fm_cfg, msvdata, &windowlist );
-
- for (i=0; i<windowlist.count; i++){
-
- window = windowlist.windows[i] ;
-
- fm_convertRange2DSQ( fm_cfg->meta, window.id, window.fm_n, window.length, fmf->T, tmpseq );
-
-
- if (window.complementarity == fm_complement)
- esl_sq_ReverseComplement(tmpseq);
-
- subseq = tmpseq->dsq; // so subseq is just a pointer to tmpseq's dsq
-
- pli->n_past_msv++;
- pli->pos_past_msv += window.length;
- p7_oprofile_ReconfigMSVLength(om, window.length);
-
- status = postMSV_LongTarget(pli, om, bg, hitlist, msvdata, seqidx, window.n, window.length, tmpseq, ddef_app,
- subseq, 1, seqdata[window.id].name, seqdata[window.id].source,
- seqdata[window.id].acc, seqdata[window.id].desc,
- window.null_sc, window.score, window.complementarity, NULL
- );
-
- if (status != eslOK) return status;
-
- pli->ddef->ndom = 0; // reset for next use
+ if (pli_tmp != NULL) {
+ if (pli_tmp->tmpseq != NULL) esl_sq_Destroy(pli_tmp->tmpseq);
+ if (pli_tmp->bg != NULL) p7_bg_Destroy(pli_tmp->bg);
+ if (pli_tmp->om != NULL) p7_oprofile_Destroy(pli_tmp->om);
+ if (pli_tmp->scores != NULL) free (pli_tmp->scores);
+ if (pli_tmp->fwd_emissions_arr != NULL) free (pli_tmp->fwd_emissions_arr);
+ free(pli_tmp);
}
- esl_sq_Destroy(tmpseq);
- free(windowlist.windows);
+ return status;
- return eslOK;
}
@@ -1588,47 +1718,47 @@ p7_pli_Statistics(FILE *ofp, P7_PIPELINE *pli, ESL_STOPWATCH *w)
fprintf(ofp, "Internal pipeline statistics summary:\n");
fprintf(ofp, "-------------------------------------\n");
if (pli->mode == p7_SEARCH_SEQS) {
- fprintf(ofp, "Query model(s): %15" PRId64 " (%" PRId64 " nodes)\n", pli->nmodels, pli->nnodes);
- fprintf(ofp, "Target sequences: %15" PRId64 " (%" PRId64 " residues searched)\n", pli->nseqs, pli->nres);
+ fprintf(ofp, "Query model(s): %15" PRId64 " (%" PRId64 " nodes)\n", pli->nmodels, pli->nnodes);
+ fprintf(ofp, "Target sequences: %15" PRId64 " (%" PRId64 " residues searched)\n", pli->nseqs, pli->nres);
ntargets = pli->nseqs;
} else {
- fprintf(ofp, "Query sequence(s): %15" PRId64 " (%" PRId64 " residues searched)\n", pli->nseqs, pli->nres);
- fprintf(ofp, "Target model(s): %15" PRId64 " (%" PRId64 " nodes)\n", pli->nmodels, pli->nnodes);
+ fprintf(ofp, "Query sequence(s): %15" PRId64 " (%" PRId64 " residues searched)\n", pli->nseqs, pli->nres);
+ fprintf(ofp, "Target model(s): %15" PRId64 " (%" PRId64 " nodes)\n", pli->nmodels, pli->nnodes);
ntargets = pli->nmodels;
}
if (pli->long_targets) {
- fprintf(ofp, "Residues passing MSV filter: %15" PRId64 " (%.3g); expected (%.3g)\n",
+ fprintf(ofp, "Residues passing SSV filter: %15" PRId64 " (%.3g); expected (%.3g)\n",
//fprintf(ofp, "Windows passing MSV filter: %15" PRId64 " (%.4g); expected (%.4g)\n",
//pli->n_past_msv,
pli->pos_past_msv,
- (double)pli->pos_past_msv / pli->nres ,
+ (double)pli->pos_past_msv / (pli->nres*pli->nmodels) ,
pli->F1);
fprintf(ofp, "Residues passing bias filter: %15" PRId64 " (%.3g); expected (%.3g)\n",
//fprintf(ofp, "Windows passing bias filter: %15" PRId64 " (%.4g); expected (%.4g)\n",
//pli->n_past_bias,
pli->pos_past_bias,
- (double)pli->pos_past_bias / pli->nres ,
+ (double)pli->pos_past_bias / (pli->nres*pli->nmodels) ,
pli->F1);
fprintf(ofp, "Residues passing Vit filter: %15" PRId64 " (%.3g); expected (%.3g)\n",
//fprintf(ofp, "Windows passing Vit filter: %15" PRId64 " (%.4g); expected (%.4g)\n",
//pli->n_past_vit,
pli->pos_past_vit,
- (double)pli->pos_past_vit / pli->nres ,
+ (double)pli->pos_past_vit / (pli->nres*pli->nmodels) ,
pli->F2);
fprintf(ofp, "Residues passing Fwd filter: %15" PRId64 " (%.3g); expected (%.3g)\n",
//fprintf(ofp, "Windows passing Fwd filter: %15" PRId64 " (%.4g); expected (%.4g)\n",
//pli->n_past_fwd,
pli->pos_past_fwd,
- (double)pli->pos_past_fwd / pli->nres ,
+ (double)pli->pos_past_fwd / (pli->nres*pli->nmodels) ,
pli->F3);
fprintf(ofp, "Total number of hits: %15d (%.3g)\n",
(int)pli->n_output,
- (double)pli->pos_output / pli->nres );
+ (double)pli->pos_output / (pli->nres*pli->nmodels) );
} else { // typical case output
@@ -1763,7 +1893,7 @@ main(int argc, char **argv)
p7_bg_SetLength(bg, sq->n);
p7_oprofile_ReconfigLength(om, sq->n);
- p7_Pipeline(pli, om, bg, sq, hitlist);
+ p7_Pipeline(pli, om, bg, sq, NULL, hitlist);
esl_sq_Reuse(sq);
p7_pipeline_Reuse(pli);
@@ -1950,13 +2080,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_pipeline.c $
- * SVN $Id: p7_pipeline.c 4103 2012-06-24 02:09:43Z wheelert $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/p7_prior.c b/hmmer/src/p7_prior.c
index e6dbbb9..ebd1955 100644
--- a/hmmer/src/p7_prior.c
+++ b/hmmer/src/p7_prior.c
@@ -2,7 +2,7 @@
*
*
* SRE, Sat Mar 24 09:12:44 2007 [Janelia]
- * SVN $Id: p7_prior.c 4102 2012-06-24 02:06:57Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -210,32 +210,28 @@ p7_prior_CreateNucleic(void)
ESL_ALLOC(pri, sizeof(P7_PRIOR));
pri->tm = pri->ti = pri->td = pri->em = pri->ei = NULL;
-
- pri->tm = esl_mixdchlet_Create(1, 3); // match transitions; single component; 3 params
- pri->ti = esl_mixdchlet_Create(1, 2); // insert transitions; single component; 2 params
- pri->td = esl_mixdchlet_Create(1, 2); // delete transitions; single component; 2 params
+ pri->tm = esl_mixdchlet_Create(1, 3); // match transitions; single component; 3 params
+ pri->ti = esl_mixdchlet_Create(1, 2); // insert transitions; single component; 2 params
+ pri->td = esl_mixdchlet_Create(1, 2); // delete transitions; single component; 2 params
pri->em = esl_mixdchlet_Create(num_comp, 4); // match emissions; X component; 4 params
- pri->ei = esl_mixdchlet_Create(1, 4); // insert emissions; single component; 4 params
-
+ pri->ei = esl_mixdchlet_Create(1, 4); // insert emissions; single component; 4 params
if (pri->tm == NULL || pri->ti == NULL || pri->td == NULL || pri->em == NULL || pri->ei == NULL) goto ERROR;
/* Transition priors: roughly, learned from rmark benchmark - hand-beautified (trimming overspecified significant digits)
*/
pri->tm->pq[0] = 1.0;
- pri->tm->alpha[0][0] = 2.0; // TMM
- pri->tm->alpha[0][1] = 0.1; // TMI
- pri->tm->alpha[0][2] = 0.1; // TMD
-
+ pri->tm->alpha[0][0] = 2.0; // TMM
+ pri->tm->alpha[0][1] = 0.1; // TMI
+ pri->tm->alpha[0][2] = 0.1; // TMD
pri->ti->pq[0] = 1.0;
- pri->ti->alpha[0][0] = 0.06; // TIM
- pri->ti->alpha[0][1] = 0.2; // TII
+ pri->ti->alpha[0][0] = 0.12; // TIM - was 0.06 (TW changed 3/19/15)
+ pri->ti->alpha[0][1] = 0.4; // TII - was 0.2 (TW changed 3/19/15)
pri->td->pq[0] = 1.0;
- pri->td->alpha[0][0] = 0.1; // TDM
- pri->td->alpha[0][1] = 0.2; // TDD
-
+ pri->td->alpha[0][0] = 0.5; // TDM - was 0.1 (TW changed 3/19/15)
+ pri->td->alpha[0][1] = 1.0; // TDD - was 0.2 (TW changed 3/19/15)
/* Match emission priors */
@@ -245,8 +241,7 @@ p7_prior_CreateNucleic(void)
esl_vec_DCopy(defm[q], 4, pri->em->alpha[q]);
}
-
- /* Insert emission priors. Should that alphas be lower? higher?
+ /* Insert emission priors. Should alphas be lower? higher?
*/
pri->ei->pq[0] = 1.0;
esl_vec_DSet(pri->ei->alpha[0], 4, 1.0);
@@ -399,8 +394,8 @@ p7_ParameterEstimation(P7_HMM *hmm, const P7_PRIOR *pri)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/src/p7_profile.c b/hmmer/src/p7_profile.c
index e622ca8..7764a13 100644
--- a/hmmer/src/p7_profile.c
+++ b/hmmer/src/p7_profile.c
@@ -642,13 +642,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_profile.c $
- * SVN $Id: p7_profile.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/p7_scoredata.c b/hmmer/src/p7_scoredata.c
new file mode 100644
index 0000000..e136c01
--- /dev/null
+++ b/hmmer/src/p7_scoredata.c
@@ -0,0 +1,465 @@
+/* The Plan7 SCOREDATA data structure, which holds a compact representation
+ * of substitution scores and maximal extensions, used by nhmmer.
+ *
+ * Contents:
+ * 1. The P7_SCOREDATA object: allocation, initialization, destruction.
+ * 2. Unit tests.
+ * 3. Test driver.
+ * 4. Copyright and license.
+ *
+ */
+#include "p7_config.h"
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <time.h>
+
+#include "easel.h"
+#include "esl_alphabet.h"
+#include "esl_vectorops.h"
+#include "esl_random.h"
+#include "esl_dirichlet.h"
+
+#include "hmmer.h"
+
+
+/*********************************************************************
+ *# 1. The P7_SCOREDATA object: allocation, initialization, destruction.
+ *********************************************************************/
+
+/* Function: scoredata_GetSSVScoreArrays()
+ * Synopsis: Get compact representation of substitution scores and maximal extensions
+ *
+ * Purpose: Extract 8-bit (MSV-style) substitution scores from optimized
+ * matrix. These scores will be used in both standard MSV diagonal
+ * recovery and FM-MSV diagonal scoring.
+ *
+ * Optionally, for each position in the model, capture the maximum
+ * possible score that can be added to a diagonal's score (in both
+ * directions) by extending lengths 1..10. These extension scores
+ * are used in FM-MSV's pruning step.
+ *
+ * Once a hit passes the SSV filter, and the prefix/suffix
+ * values of P7_SCOREDATA are required (to establish windows
+ * around SSV diagonals), p7_hmm_ScoreDataComputeRest()
+ * must be called.
+ *
+ *
+ * Args: om - P7_OPROFILE containing scores used to produce SCOREDATA contents
+ * data - where scores and will be stored
+ * do_opt_ext - boolean, TRUE if optimal-extension scores are required (for FM-MSV)
+ * scale - used to produce 8-bit extracted scores
+ * bias - used to produce 8-bit extracted scores
+ *
+ * Returns: data->scores and possibly ->opt_ext_(fwd|rev) are filled in;
+ * return eslEMEM on allocation failure, eslOK otherwise.
+ */
+static int
+scoredata_GetSSVScoreArrays(P7_OPROFILE *om, P7_PROFILE *gm, P7_SCOREDATA *data ) {
+ int i, j, status;
+
+ //gather values from gm->rsc into a succinct 2D array
+ float *max_scores;
+ float sc_fwd, sc_rev;
+ int K = om->abc->Kp;
+ data->M = om->M;
+
+ if (!gm) { // get values for the standard pipeline
+ data->type = p7_sd_std;
+ ESL_ALLOC(data->ssv_scores, (om->M + 1) * K * sizeof(uint8_t));
+ p7_oprofile_GetSSVEmissionScoreArray(om, data->ssv_scores);
+
+ } else {// need float, unscaled scores, and other stuff used in the FMindex-based SSV pipeline,
+ data->type = p7_sd_fm;
+ ESL_ALLOC(data->ssv_scores_f, (om->M + 1) * K * sizeof(float));
+ ESL_ALLOC(max_scores, (om->M + 1) * sizeof(float));
+
+ for (i = 1; i <= om->M; i++) {
+ max_scores[i] = 0;
+ for (j=0; j<K; j++) {
+ if (esl_abc_XIsResidue(om->abc,j)) {
+ data->ssv_scores_f[i*K + j] = gm->rsc[j][(i) * p7P_NR + p7P_MSC];
+ if (data->ssv_scores_f[i*K + j] > max_scores[i]) max_scores[i] = data->ssv_scores_f[i*K + j];
+ }
+ }
+ }
+
+ //for each position in the query, what's the highest possible score achieved by extending X positions, for X=1..10
+ ESL_ALLOC(data->opt_ext_fwd, (om->M + 1) * sizeof(float*));
+ ESL_ALLOC(data->opt_ext_rev, (om->M + 1) * sizeof(float*));
+
+ for (i=1; i<om->M; i++) {
+ ESL_ALLOC(data->opt_ext_fwd[i], 10 * sizeof(float));
+ ESL_ALLOC(data->opt_ext_rev[i], 10 * sizeof(float));
+ }
+ for (i=1; i<om->M; i++) {
+ sc_fwd = 0;
+ sc_rev = 0;
+ for (j=0; j<10 && i+j+1<=om->M; j++) {
+ sc_fwd += max_scores[i+j+1];
+ data->opt_ext_fwd[i][j] = sc_fwd;
+
+ sc_rev += max_scores[om->M-i-j];
+ data->opt_ext_rev[om->M-i][j] = sc_rev;
+
+ }
+ for ( ; j<10; j++) { //fill in empty values
+ data->opt_ext_fwd[i][j] = data->opt_ext_fwd[i][j-1];
+ data->opt_ext_rev[om->M-i][j] = data->opt_ext_rev[om->M-i][j-1];
+ }
+ }
+ free(max_scores);
+ }
+ return eslOK;
+
+ERROR:
+ return eslEMEM;
+}
+
+
+/* Function: p7_hmm_ScoreDataDestroy()
+ *
+ * Synopsis: Destroy a <P7_SCOREDATA> object.
+ */
+void
+p7_hmm_ScoreDataDestroy(P7_SCOREDATA *data )
+{
+ int i;
+
+ if (data != NULL) {
+
+ if (data->ssv_scores != NULL) free( data->ssv_scores);
+ if (data->prefix_lengths != NULL) free( data->prefix_lengths);
+ if (data->suffix_lengths != NULL) free( data->suffix_lengths);
+ if (data->fwd_scores != NULL) free( data->fwd_scores);
+
+ if (data->fwd_transitions != NULL) {
+ for (i=0; i<p7O_NTRANS; i++)
+ free(data->fwd_transitions[i]);
+ free(data->fwd_transitions);
+ }
+ if (data->opt_ext_fwd != NULL) {
+ for (i=1; i<data->M; i++)
+ free(data->opt_ext_fwd[i]);
+ free(data->opt_ext_fwd);
+ }
+ if (data->opt_ext_rev != NULL) {
+ for (i=1; i<data->M; i++)
+ free(data->opt_ext_rev[i]);
+ free( data->opt_ext_rev);
+ }
+
+ free(data);
+ }
+
+}
+
+/* Function: p7_hmm_ScoreDataCreate()
+ * Synopsis: Create a <P7_SCOREDATA> model object, based on MSV-filter
+ * part of profile
+ *
+ * Purpose: Allocate a <P7_SCOREDATA> object, then populate
+ * it with data based on the given optimized matrix.
+ *
+ * Once a hit passes the MSV filter, and the prefix/suffix
+ * values of P7_SCOREDATA are required, p7_hmm_ScoreDataComputeRest()
+ * must be called.
+ *
+ * Args: om - P7_OPROFILE containing scores used to produce SCOREDATA contents
+ * do_opt_ext - boolean, TRUE if optimal-extension scores are required (for FM-MSV)
+ *
+ * Returns: a pointer to the new <P7_SCOREDATA> object.
+ *
+ * Throws: <NULL> on allocation failure.
+ */
+P7_SCOREDATA *
+p7_hmm_ScoreDataCreate(P7_OPROFILE *om, P7_PROFILE *gm )
+{
+ P7_SCOREDATA *data = NULL;
+ int status;
+
+ ESL_ALLOC(data, sizeof(P7_SCOREDATA));
+
+ data->ssv_scores = NULL;
+ data->ssv_scores_f = NULL;
+ data->opt_ext_fwd = NULL;
+ data->opt_ext_rev = NULL;
+ data->prefix_lengths = NULL;
+ data->suffix_lengths = NULL;
+ data->fwd_scores = NULL;
+ data->fwd_transitions = NULL;
+
+ scoredata_GetSSVScoreArrays(om, gm, data);
+
+ return data;
+
+ERROR:
+ p7_hmm_ScoreDataDestroy(data);
+ return NULL;
+}
+
+
+/* Function: p7_hmm_ScoreDataClone()
+ * Synopsis: Clone a <P7_SCOREDATA> model object
+ *
+ * Purpose: Allocate a <P7_SCOREDATA> object used in both FM-MSV and
+ * MSV_LongTarget diagonal recovery/extension, then
+ * copy data into it from another populated instance
+ *
+ * Once a hit passes the MSV filter, and the prefix/suffix
+ * values of P7_SCOREDATA are required, p7_hmm_ScoreDataComputeRest()
+ * must be called.
+ *
+ * Args: src - P7_SCOREDATA upon which clone will be based
+ * Kp - alphabet size, including degeneracy codes, gaps
+ *
+ * Returns: a pointer to the new <P7_SCOREDATA> object.
+ *
+ * Throws: <NULL> on allocation failure.
+ */
+P7_SCOREDATA *
+p7_hmm_ScoreDataClone(P7_SCOREDATA *src, int Kp) {
+ P7_SCOREDATA *new;
+ int status;
+ int i;
+
+ if (src == NULL)
+ return NULL;
+
+ ESL_ALLOC(new, sizeof(P7_SCOREDATA));
+ new->M = src->M;
+ new->type = src->type;
+ new->ssv_scores = NULL;
+ new->opt_ext_fwd = NULL;
+ new->opt_ext_rev = NULL;
+ new->prefix_lengths = NULL;
+ new->suffix_lengths = NULL;
+ new->fwd_scores = NULL;
+ new->fwd_transitions = NULL;
+
+ if (new->type == p7_sd_std) {
+ ESL_ALLOC(new->ssv_scores, (src->M + 1) * Kp * sizeof(uint8_t));
+ memcpy(new->ssv_scores, src->ssv_scores, (src->M + 1) * Kp * sizeof(uint8_t) );
+ } else {
+ ESL_ALLOC(new->ssv_scores_f, (src->M + 1) * Kp * sizeof(float));
+ memcpy(new->ssv_scores_f, src->ssv_scores_f, (src->M + 1) * Kp * sizeof(float) );
+ }
+
+
+ if (src->prefix_lengths != NULL) {
+ ESL_ALLOC(new->prefix_lengths, (src->M+1) * sizeof(float));
+ memcpy(new->prefix_lengths, src->prefix_lengths, (src->M+1) * sizeof(float));
+ }
+ if (src->suffix_lengths != NULL) {
+ ESL_ALLOC(new->suffix_lengths, (src->M+1) * sizeof(float));
+ memcpy(new->suffix_lengths, src->suffix_lengths, (src->M+1) * sizeof(float));
+ }
+ if (src->fwd_scores != NULL) {
+ ESL_ALLOC(new->fwd_scores, (src->M+1) * sizeof(float));
+ memcpy(new->fwd_scores, src->fwd_scores, (src->M+1) * sizeof(float));
+ }
+
+
+ if (src->opt_ext_fwd != NULL) {
+ ESL_ALLOC(new->opt_ext_fwd, (src->M + 1) * sizeof(float*));
+ for (i=1; i<src->M; i++) {
+ ESL_ALLOC(new->opt_ext_fwd[i], 10 * sizeof(float));
+ memcpy(new->opt_ext_fwd[i], src->opt_ext_fwd[i], 10 * sizeof(float));
+ }
+ }
+ if (src->opt_ext_rev != NULL) {
+ ESL_ALLOC(new->opt_ext_rev, (src->M + 1) * sizeof(float*));
+ for (i=1; i<src->M; i++) {
+ ESL_ALLOC(new->opt_ext_rev[i], 10 * sizeof(float));
+ memcpy(new->opt_ext_rev[i], src->opt_ext_rev[i], 10 * sizeof(float));
+ }
+ }
+ if (src->fwd_transitions != NULL) {
+ ESL_ALLOC(new->fwd_transitions, p7O_NTRANS * sizeof(float*));
+ for (i=0; i<p7O_NTRANS; i++) {
+ ESL_ALLOC(new->fwd_transitions[i], (src->M+1)* sizeof(float));
+ memcpy(new->fwd_transitions[i], src->fwd_transitions[i], (src->M+1) * sizeof(float));
+ }
+ }
+
+ return new;
+
+ERROR:
+ return NULL;
+}
+
+/* Function: p7_hmm_ScoreDataComputeRest()
+ * Synopsis: Using position-specific insert rates, compute MAXL-based prefix and suffix lengths
+ *
+ * Purpose: Using position-specific insert rates, compute MAXL-based prefix
+ * and suffix lengths for each position in the model, used when
+ * establishing windows around SSV diagonals. This fleshes out
+ * the <P7_SCOREDATA> model object that was created by
+ * p7_hmmScoreDataCreate().
+ *
+ * This approach of computing the prefix/suffix length, used
+ * in establishing windows around a seed diagonal, is fast
+ * because it uses a simple closed-form computation of the
+ * length L_i for each position i at which all but
+ * (1-p7_DEFAULT_WINDOW_BETA) of position i's match- and
+ * insert-state emissions are length L_i or shorter.
+ *
+ * Args: om - P7_OPROFILE containing emission/transition probabilities used to for calculations
+ * data - P7_SCOREDATA into which the computed values are placed
+ *
+ * Returns: eslEMEM on failure, else eslOK
+ *
+ * Throws: <NULL> on allocation failure.
+ */
+int
+p7_hmm_ScoreDataComputeRest(P7_OPROFILE *om, P7_SCOREDATA *data )
+{
+ int status;
+ int i;
+ float sum;
+ float *t_mis;
+ float *t_iis;
+
+ ESL_ALLOC(data->fwd_scores, sizeof(float) * om->abc->Kp * (om->M+1));
+ p7_oprofile_GetFwdEmissionScoreArray(om, data->fwd_scores);
+
+ //2D array, holding all the transition scores/costs
+ ESL_ALLOC(data->fwd_transitions, sizeof(float*) * p7O_NTRANS);
+
+ for (i=0; i<p7O_NTRANS; i++) {
+ ESL_ALLOC(data->fwd_transitions[i], sizeof(float) * (om->M+1));
+ p7_oprofile_GetFwdTransitionArray(om, i, data->fwd_transitions[i] );
+ }
+ t_mis = data->fwd_transitions[p7O_MI];
+ t_iis = data->fwd_transitions[p7O_II];
+
+ ESL_ALLOC(data->prefix_lengths, (om->M+1) * sizeof(float));
+ ESL_ALLOC(data->suffix_lengths, (om->M+1) * sizeof(float));
+
+
+ sum = 0;
+ for (i=1; i < om->M; i++) {
+ data->prefix_lengths[i] = 2 + (int)(log(p7_DEFAULT_WINDOW_BETA / t_mis[i] )/log(t_iis[i]));
+ sum += data->prefix_lengths[i];
+ }
+ data->prefix_lengths[0] = data->prefix_lengths[om->M] = 0;
+
+
+ for (i=1; i < om->M; i++)
+ data->prefix_lengths[i] /= sum;
+
+ data->suffix_lengths[om->M] = data->prefix_lengths[om->M-1];
+ for (i=om->M - 1; i >= 1; i--)
+ data->suffix_lengths[i] = data->suffix_lengths[i+1] + data->prefix_lengths[i-1];
+ for (i=2; i < om->M; i++)
+ data->prefix_lengths[i] += data->prefix_lengths[i-1];
+
+ return eslOK;
+
+ ERROR:
+ p7_hmm_ScoreDataDestroy(data);
+ return eslEMEM;
+}
+
+
+/*****************************************************************
+ * 2. Unit tests
+ *****************************************************************/
+#ifdef p7SCOREDATA_TESTDRIVE
+
+static void
+utest_createScoreData(ESL_GETOPTS *go, ESL_RANDOMNESS *r )
+{
+ char msg[] = "create MSVData unit test failed";
+ P7_HMM *hmm = NULL;
+ ESL_ALPHABET *abc = NULL;
+ P7_PROFILE *gm = NULL;
+ P7_OPROFILE *om = NULL;
+ P7_SCOREDATA *scoredata = NULL;
+
+ uint8_t scale = 3.0 / eslCONST_LOG2; /* scores in units of third-bits */
+ uint8_t bias;
+ int x;
+ float max = 0.0;
+
+ if ( (abc = esl_alphabet_Create(eslDNA)) == NULL) esl_fatal(msg);
+
+ if ( p7_hmm_Sample(r, 100, abc, &hmm) != eslOK) esl_fatal(msg);
+ if ( (gm = p7_profile_Create (hmm->M, abc)) == NULL ) esl_fatal(msg);
+ if ( (om = p7_oprofile_Create(hmm->M, abc)) == NULL ) esl_fatal(msg);
+
+ for (x = 0; x < gm->abc->K; x++) max = ESL_MAX(max, esl_vec_FMax(gm->rsc[x], (gm->M+1)*2));
+ //based on unbiased_byteify
+ max = -1.0f * roundf(scale * max);
+ bias = (max > 255.) ? 255 : (uint8_t) max;
+
+
+ if ( (scoredata = p7_hmm_ScoreDataCreate(om, FALSE)) == NULL ) esl_fatal(msg);
+
+ p7_hmm_ScoreDataDestroy(scoredata);
+ p7_oprofile_Destroy(om);
+ p7_profile_Destroy(gm);
+ p7_hmm_Destroy(hmm);
+ esl_alphabet_Destroy(abc);
+
+}
+#endif /*p7BG_TESTDRIVE*/
+
+
+/*****************************************************************
+ * 3. Test driver
+ *****************************************************************/
+
+#ifdef p7SCOREDATA_TESTDRIVE
+#include "esl_config.h"
+
+#include <stdio.h>
+
+#include "easel.h"
+#include "esl_getopts.h"
+#include "esl_random.h"
+
+#include "hmmer.h"
+
+static ESL_OPTIONS options[] = {
+ /* name type default env range togs reqs incomp help docgrp */
+ {"-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show help and usage", 0},
+ {"-s", eslARG_INT, "0", NULL, NULL, NULL, NULL, NULL, "set random number seed to <n>", 0},
+ {"-v", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show verbose commentary/output", 0},
+ { 0,0,0,0,0,0,0,0,0,0},
+};
+static char usage[] = "[-options]";
+static char banner[] = "test driver for p7_bg";
+
+int
+main(int argc, char **argv)
+{
+ ESL_GETOPTS *go = esl_getopts_CreateDefaultApp(options, 0, argc, argv, banner, usage);
+ ESL_RANDOMNESS *rng = esl_randomness_CreateFast(esl_opt_GetInteger(go, "-s"));
+ int be_verbose = esl_opt_GetBoolean(go, "-v");
+
+ if (be_verbose) printf("p7_scoredata unit test: rng seed %" PRIu32 "\n", esl_randomness_GetSeed(rng));
+
+ utest_createScoreData(go, rng);
+
+ esl_randomness_Destroy(rng);
+ esl_getopts_Destroy(go);
+ return 0;
+}
+#endif /* p7BG_TESTDRIVE */
+
+/************************************************************
+ * HMMER - Biological sequence analysis with profile HMMs
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
+ * Other copyrights also apply. See the COPYRIGHT file for a full list.
+ *
+ * HMMER is distributed under the terms of the GNU General Public License
+ * (GPLv3). See the LICENSE file for details.
+ *
+ * SVN $Id: p7_scoredata.c 3784 2011-12-07 21:51:25Z wheelert $
+ * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/trunk/src/p7_scoredata.c $
+ ************************************************************/
+
+
diff --git a/hmmer/src/p7_spensemble.c b/hmmer/src/p7_spensemble.c
index a2dcc9b..ba67079 100644
--- a/hmmer/src/p7_spensemble.c
+++ b/hmmer/src/p7_spensemble.c
@@ -2,7 +2,7 @@
* posterior sampling and clustering.
*
* SRE, Wed Jan 9 07:26:34 2008 [Janelia]
- * SVN $Id: p7_spensemble.c 3474 2011-01-17 13:25:32Z eddys $
+ * SVN $Id$
*/
#include "p7_config.h"
#include "easel.h"
diff --git a/hmmer/src/p7_tophits.c b/hmmer/src/p7_tophits.c
index debe0a8..a173334 100644
--- a/hmmer/src/p7_tophits.c
+++ b/hmmer/src/p7_tophits.c
@@ -73,7 +73,7 @@ p7_tophits_Grow(P7_TOPHITS *h)
{
void *p;
P7_HIT *ori = h->unsrt;
- int Nalloc = h->Nalloc * 2; /* grow by doubling */
+ uint64_t Nalloc = h->Nalloc * 2; /* grow by doubling */
int i;
int status;
@@ -275,7 +275,7 @@ hit_sorter_by_sortkey(const void *vh1, const void *vh2)
}
static int
-hit_sorter_by_seqidx(const void *vh1, const void *vh2)
+hit_sorter_by_seqidx_aliposition(const void *vh1, const void *vh2)
{
P7_HIT *h1 = *((P7_HIT **) vh1); /* don't ask. don't change. Don't Panic. */
P7_HIT *h2 = *((P7_HIT **) vh2);
@@ -287,7 +287,29 @@ hit_sorter_by_seqidx(const void *vh1, const void *vh2)
int dir2 = (h2->dcl[0].iali < h2->dcl[0].jali ? 1 : -1);
if (dir1 != dir2) return dir2; // so if dir1 is pos (1), and dir2 is neg (-1), this will return -1, placing h1 before h2; otherwise, vice versa
- else return (h1->dcl[0].iali > h2->dcl[0].iali ? 1 : -1 );
+
+ if ( h1->dcl[0].iali == h2->dcl[0].iali) return (h1->dcl[0].jali < h2->dcl[0].jali ? 1 : -1 );
+ else return (h1->dcl[0].iali > h2->dcl[0].iali ? 1 : -1 );
+}
+
+static int
+hit_sorter_by_modelname_aliposition(const void *vh1, const void *vh2)
+{
+ P7_HIT *h1 = *((P7_HIT **) vh1); /* don't ask. don't change. Don't Panic. */
+ P7_HIT *h2 = *((P7_HIT **) vh2);
+
+ int res = esl_strcmp( h1->name, h2->name);
+
+ if ( res != 0 ) return res; /* first key, seq_idx (unique id for sequences), low to high */
+
+ // if on different strand, the positive strand goes first, else use position
+ int dir1 = (h1->dcl[0].iali < h1->dcl[0].jali ? 1 : -1);
+ int dir2 = (h2->dcl[0].iali < h2->dcl[0].jali ? 1 : -1);
+
+ if (dir1 != dir2) return dir2; // so if dir1 is pos (1), and dir2 is neg (-1), this will return -1, placing h1 before h2; otherwise, vice versa
+
+ if ( h1->dcl[0].iali == h2->dcl[0].iali) return (h1->dcl[0].jali < h2->dcl[0].jali ? 1 : -1 );
+ else return (h1->dcl[0].iali > h2->dcl[0].iali ? 1 : -1 );
}
@@ -314,9 +336,9 @@ p7_tophits_SortBySortkey(P7_TOPHITS *h)
}
-/* Function: p7_tophits_SortBySeqidx()
+/* Function: p7_tophits_SortBySeqidxAndAlipos()
* Synopsis: Sorts a hit list by sequence index and position in that
- * sequence at which the hit's first domain begins
+ * sequence at which the hit's first domain begins (used in nhmmer)
*
* Purpose: Sorts a top hit list. After this call,
* <h->hit[i]> points to the i'th ranked
@@ -325,18 +347,40 @@ p7_tophits_SortBySortkey(P7_TOPHITS *h)
* Returns: <eslOK> on success.
*/
int
-p7_tophits_SortBySeqidx(P7_TOPHITS *h)
+p7_tophits_SortBySeqidxAndAlipos(P7_TOPHITS *h)
{
int i;
if (h->is_sorted_by_seqidx) return eslOK;
for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i;
- if (h->N > 1) qsort(h->hit, h->N, sizeof(P7_HIT *), hit_sorter_by_seqidx);
+ if (h->N > 1) qsort(h->hit, h->N, sizeof(P7_HIT *), hit_sorter_by_seqidx_aliposition);
h->is_sorted_by_sortkey = FALSE;
h->is_sorted_by_seqidx = TRUE;
return eslOK;
}
+/* Function: p7_tophits_SortByModelnameAndAlipos()
+ * Synopsis: Sorts a hit list by model name and position in the query sequence
+ * sequence at which the hit's first domain begins (used in nhmmscan)
+ *
+ * Purpose: Sorts a top hit list. After this call,
+ * <h->hit[i]> points to the i'th ranked
+ * <P7_HIT> for all <h->N> hits.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+p7_tophits_SortByModelnameAndAlipos(P7_TOPHITS *h)
+{
+ int i;
+
+ if (h->is_sorted_by_seqidx) return eslOK;
+ for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i;
+ if (h->N > 1) qsort(h->hit, h->N, sizeof(P7_HIT *), hit_sorter_by_modelname_aliposition);
+ h->is_sorted_by_sortkey = FALSE;
+ h->is_sorted_by_seqidx = TRUE;
+ return eslOK;
+}
/* Function: p7_tophits_Merge()
@@ -361,9 +405,11 @@ p7_tophits_Merge(P7_TOPHITS *h1, P7_TOPHITS *h2)
P7_HIT *ori1 = h1->unsrt; /* original base of h1's data */
P7_HIT *new2;
int i,j,k;
- int Nalloc = h1->Nalloc + h2->Nalloc;
+ uint64_t Nalloc = h1->Nalloc + h2->Nalloc;
int status;
+ if(h2->N <= 0) return eslOK;
+
/* Make sure the two lists are sorted */
if ((status = p7_tophits_SortBySortkey(h1)) != eslOK) goto ERROR;
if ((status = p7_tophits_SortBySortkey(h2)) != eslOK) goto ERROR;
@@ -573,8 +619,10 @@ p7_tophits_Destroy(P7_TOPHITS *h)
if (h->unsrt[i].acc != NULL) free(h->unsrt[i].acc);
if (h->unsrt[i].desc != NULL) free(h->unsrt[i].desc);
if (h->unsrt[i].dcl != NULL) {
- for (j = 0; j < h->unsrt[i].ndom; j++)
- if (h->unsrt[i].dcl[j].ad != NULL) p7_alidisplay_Destroy(h->unsrt[i].dcl[j].ad);
+ for (j = 0; j < h->unsrt[i].ndom; j++) {
+ if (h->unsrt[i].dcl[j].ad != NULL) p7_alidisplay_Destroy(h->unsrt[i].dcl[j].ad);
+ if (h->unsrt[i].dcl[j].scores_per_pos != NULL) free (h->unsrt[i].dcl->scores_per_pos);
+ }
free(h->unsrt[i].dcl);
}
}
@@ -694,12 +742,15 @@ p7_tophits_ComputeNhmmerEvalues(P7_TOPHITS *th, double N, int W)
* Returns: <eslOK> on success.
*/
int
-p7_tophits_RemoveDuplicates(P7_TOPHITS *th)
+p7_tophits_RemoveDuplicates(P7_TOPHITS *th, int using_bit_cutoffs)
{
int i; /* counter over hits */
int j; /* previous un-duplicated hit */
int s_i, s_j, e_i, e_j, dir_i, dir_j, len_i, len_j;
- int64_t sub_i, sub_j;
+ int intersect_alistart, intersect_aliend, intersect_alilen;
+ int intersect_hmmstart, intersect_hmmend, intersect_hmmlen;
+ //int64_t sub_i, sub_j;
+ int tmp;
double p_i, p_j;
int remove;
@@ -709,27 +760,50 @@ p7_tophits_RemoveDuplicates(P7_TOPHITS *th)
for (i = 1; i < th->N; i++)
{
- sub_j = th->hit[j]->subseq_start;
+ //sub_j = th->hit[j]->subseq_start;
p_j = th->hit[j]->lnP;
s_j = th->hit[j]->dcl[0].iali;
e_j = th->hit[j]->dcl[0].jali;
dir_j = (s_j < e_j ? 1 : -1);
- len_j = 1 + dir_j * (e_j - s_j) ;
+ if (dir_j == -1) {
+ tmp = s_j;
+ s_j = e_j;
+ e_j = tmp;
+ }
+ len_j = e_j - s_j + 1 ;
- sub_i = th->hit[i]->subseq_start;
+ //sub_i = th->hit[i]->subseq_start;
p_i = th->hit[i]->lnP;
s_i = th->hit[i]->dcl[0].iali;
e_i = th->hit[i]->dcl[0].jali;
dir_i = (s_i < e_i ? 1 : -1);
- len_i = 1 + dir_i * (e_i - s_i) ;
+ if (dir_i == -1) {
+ tmp = s_i;
+ s_i = e_i;
+ e_i = tmp;
+ }
+ len_i = e_i - s_i + 1 ;
+
- if ( th->hit[i]->seqidx == th->hit[i-1]->seqidx && //same source sequence
- // sub_i != sub_j && // not from the same subsequence ... if they are, then domaindef already split them up
+ // these will only matter if seqidx and strand are the same
+ intersect_alistart = s_i>s_j ? s_i : s_j;
+ intersect_aliend = e_i<e_j ? e_i : e_j;
+ intersect_alilen = intersect_aliend - intersect_alistart + 1;
+
+ intersect_hmmstart = (th->hit[i]->dcl[0].ad->hmmfrom > th->hit[j]->dcl[0].ad->hmmfrom) ? th->hit[i]->dcl[0].ad->hmmfrom : th->hit[j]->dcl[0].ad->hmmfrom;
+ intersect_hmmend = (th->hit[i]->dcl[0].ad->hmmto < th->hit[j]->dcl[0].ad->hmmto) ? th->hit[i]->dcl[0].ad->hmmto : th->hit[j]->dcl[0].ad->hmmto;
+ intersect_hmmlen = intersect_hmmend - intersect_hmmstart + 1;
+
+ if ( esl_strcmp(th->hit[i]->name, th->hit[i-1]->name) == 0 && //same model
+ th->hit[i]->seqidx == th->hit[i-1]->seqidx && //same source sequence
dir_i == dir_j && // only bother removing if the overlapping hits are on the same strand
+ intersect_hmmlen > 0 && //only if they're both hitting similar parts of the model
(
- ( s_i >= s_j-3 && s_i <= s_j+3) || // at least one side is essentially flush (
- ( e_i >= e_j-3 && e_i <= e_j+3)
+ ( s_i >= s_j-3 && s_i <= s_j+3) || // at least one side is essentially flush
+ ( e_i >= e_j-3 && e_i <= e_j+3) ||
+ ( intersect_alilen >= len_i * 0.95) || // or one of the hits covers >90% of the other
+ ( intersect_alilen >= len_j * 0.95)
)
)
{
@@ -749,12 +823,14 @@ p7_tophits_RemoveDuplicates(P7_TOPHITS *th)
* see late notes in ~wheelert/notebook/2012/0518-dfam-scripts/00NOTES
*/
//remove = 0; // 1 := keep i, 0 := keep i-1
- //if (s_i==s_j && e_i==e_j) // if same length, choose the one with lower p-value (they should be roughly the same)
- remove = p_i < p_j ? j : i;
- //else // otherwise remove the shorter one (assume that one was cut short by the end of a segment
- // remove = len_i > len_j ? j : i;
+ remove = p_i < p_j ? j : i;
th->hit[remove]->flags |= p7_IS_DUPLICATE;
+ if (using_bit_cutoffs) {
+ //report/include flags were already included, need to remove them here
+ th->hit[remove]->flags &= ~p7_IS_REPORTED;
+ th->hit[remove]->flags &= ~p7_IS_INCLUDED;
+ }
j = remove == j ? i : j;
} else {
@@ -1185,25 +1261,30 @@ p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw)
------ ----- --------- ------- ------- --------- --------- --------- --------- --------- --------- --------- ----
! 82.7 104.4 4.9e-22 782 998 .. 241981174 241980968 .. 241981174 241980966 .. 241981174 241980968 234234233 0.78
*/
- if (fprintf(ofp, " %6s %5s %9s %9s %9s %2s %9s %9s %2s %9s %9s %2s %9s %9s %9s %2s %4s\n", "score", "bias", " Evalue", "hmmfrom", "hmm to", " ", " alifrom ", " ali to ", " ", " envfrom ", " env to ", " ", " hqfrom ", " hq to ", " sq len ", " ", "acc") < 0)
+ if (fprintf(ofp, " %6s %5s %9s %9s %9s %2s %9s %9s %2s %9s %9s %9s %2s %4s\n", "score", "bias", " Evalue", "hmmfrom", "hmm to", " ", " alifrom ", " ali to ", " ", " envfrom ", " env to ", (pli->mode == p7_SEARCH_SEQS ? " sq len " : " mod len "), " ", "acc") < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
- if (fprintf(ofp, " %6s %5s %9s %9s %9s %2s %9s %9s %2s %9s %9s %2s %9s %9s %9s %2s %4s\n", "------", "-----", "---------", "-------", "-------", " ", "---------", "---------", " ", "---------", "---------", " ", "---------", "---------", "---------", " ", "----") < 0)
+ if (fprintf(ofp, " %6s %5s %9s %9s %9s %2s %9s %9s %2s %9s %9s %9s %2s %4s\n", "------", "-----", "---------", "-------", "-------", " ", "---------", "---------", " ", "---------", "---------", "---------", " ", "----") < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
} else {
+
+
+
/* The domain table is 101 char wide:
- # score bias Evalue hmmfrom hmmto alifrom ali to envfrom env to acc
- --- ------ ----- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 123.4 23.1 6.8e-9 3 1230 .. 1 492 [] 2 490 .] 0.90
- 123 ! 1234.5 123.4 123456789 1234567 1234567 .. 1234567 1234567 [] 1234567 1234568 .] 0.12
+ # score bias c-Evalue i-Evalue hmmfrom hmmto alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ? 123.4 23.1 9.7e-11 6.8e-9 3 1230 .. 1 492 [] 2 490 .] 0.90
+ 123 ! 1234.5 123.4 123456789 123456789 1234567 1234567 .. 1234567 1234567 [] 1234567 1234568 .] 0.12
*/
+ if (fprintf(ofp, " %3s %6s %5s %9s %9s %7s %7s %2s %7s %7s %2s %7s %7s %2s %4s\n", "#", "score", "bias", "c-Evalue", "i-Evalue", "hmmfrom", "hmm to", " ", "alifrom", "ali to", " ", "envfrom", "env to", " ", "acc") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
+ if (fprintf(ofp, " %3s %6s %5s %9s %9s %7s %7s %2s %7s %7s %2s %7s %7s %2s %4s\n", "---", "------", "-----", "---------", "---------", "-------", "-------", " ", "-------", "-------", " ", "-------", "-------", " ", "----") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
- if (fprintf(ofp, " %3s %6s %5s %9s %9s %7s %7s %2s %7s %7s %2s %7s %7s %2s %4s\n", "#", "score", "bias", "c-Evalue", "i-Evalue", "hmmfrom", "hmm to", " ", "alifrom", "ali to", " ", "envfrom", "env to", " ", "acc") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
- if (fprintf(ofp, " %3s %6s %5s %9s %9s %7s %7s %2s %7s %7s %2s %7s %7s %2s %4s\n", "---", "------", "-----", "---------", "---------", "-------", "-------", " ", "-------", "-------", " ", "-------", "-------", " ", "----") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
- }
+ }
+
+
nd = 0;
for (d = 0; d < th->hit[h]->ndom; d++)
if (th->hit[h]->dcl[d].is_reported)
@@ -1212,7 +1293,7 @@ p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw)
if (pli->long_targets)
{
- if (fprintf(ofp, " %c %6.1f %5.1f %9.2g %9d %9d %c%c %9ld %9ld %c%c %9d %9d %c%c %9d %9d %9ld %4.2f\n",
+ if (fprintf(ofp, " %c %6.1f %5.1f %9.2g %9d %9d %c%c %9ld %9ld %c%c %9d %9d %c%c %9ld %4.2f\n",
//nd,
th->hit[h]->dcl[d].is_included ? '!' : '?',
th->hit[h]->dcl[d].bitscore,
@@ -1230,8 +1311,6 @@ p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw)
th->hit[h]->dcl[d].jenv,
(th->hit[h]->dcl[d].ienv == 1) ? '[' : '.',
(th->hit[h]->dcl[d].jenv == th->hit[h]->dcl[d].ad->L) ? ']' : '.',
- th->hit[h]->dcl[d].ihq,
- th->hit[h]->dcl[d].jhq,
th->hit[h]->dcl[d].ad->L,
(th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv))))) < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
@@ -1239,7 +1318,7 @@ p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw)
}
else
{
- if (fprintf(ofp, " %3d %c %6.1f %5.1f %9.2g %9.2g %7d %7d %c%c %7ld %7ld %c%c %7d %7d %c%c %4.2f\n",
+ if (fprintf(ofp, " %3d %c %6.1f %5.1f %9.2g %9.2g %7d %7d %c%c",
nd,
th->hit[h]->dcl[d].is_included ? '!' : '?',
th->hit[h]->dcl[d].bitscore,
@@ -1249,18 +1328,30 @@ p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw)
th->hit[h]->dcl[d].ad->hmmfrom,
th->hit[h]->dcl[d].ad->hmmto,
(th->hit[h]->dcl[d].ad->hmmfrom == 1) ? '[' : '.',
- (th->hit[h]->dcl[d].ad->hmmto == th->hit[h]->dcl[d].ad->M) ? ']' : '.',
- th->hit[h]->dcl[d].ad->sqfrom,
- th->hit[h]->dcl[d].ad->sqto,
- (th->hit[h]->dcl[d].ad->sqfrom == 1) ? '[' : '.',
- (th->hit[h]->dcl[d].ad->sqto == th->hit[h]->dcl[d].ad->L) ? ']' : '.',
+ (th->hit[h]->dcl[d].ad->hmmto == th->hit[h]->dcl[d].ad->M ) ? ']' : '.') < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
+
+ if (fprintf(ofp, " %7ld %7ld %c%c",
+ th->hit[h]->dcl[d].ad->sqfrom,
+ th->hit[h]->dcl[d].ad->sqto,
+ (th->hit[h]->dcl[d].ad->sqfrom == 1) ? '[' : '.',
+ (th->hit[h]->dcl[d].ad->sqto == th->hit[h]->dcl[d].ad->L) ? ']' : '.') < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
+
+ if (fprintf(ofp, " %7d %7d %c%c",
th->hit[h]->dcl[d].ienv,
th->hit[h]->dcl[d].jenv,
(th->hit[h]->dcl[d].ienv == 1) ? '[' : '.',
- (th->hit[h]->dcl[d].jenv == th->hit[h]->dcl[d].ad->L) ? ']' : '.',
- (th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv))))) < 0)
+ (th->hit[h]->dcl[d].jenv == th->hit[h]->dcl[d].ad->L) ? ']' : '.') < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
+
+
+
+ if (fprintf(ofp, " %4.2f\n",
+ (th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv))))) < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
}
+
}
if (pli->show_alignments)
@@ -1299,7 +1390,7 @@ p7_tophits_Domains(FILE *ofp, P7_TOPHITS *th, P7_PIPELINE *pli, int textw)
ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
}
- if ((status = p7_alidisplay_Print(ofp, th->hit[h]->dcl[d].ad, 40, textw, pli->show_accessions)) != eslOK) return status;
+ if ((status = p7_alidisplay_Print(ofp, th->hit[h]->dcl[d].ad, 40, textw, pli)) != eslOK) return status;
if (fprintf(ofp, "\n") < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "domain hit list: write failed");
@@ -1457,11 +1548,11 @@ p7_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7
{
if (pli->long_targets)
{
- if (fprintf(ofp, "#%-*s %-*s %-*s %-*s %s %s %*s %*s %*s %*s %*s %*s %*s %6s %9s %6s %5s %s\n",
- tnamew-1, " target name", taccw, "accession", qnamew, "query name", qaccw, "accession", "hmmfrom", "hmm to", posw, "alifrom", posw, "ali to", posw, "envfrom", posw, "env to", posw, "hq from", posw, "hq to", posw, "sq len", "strand", " E-value", " score", " bias", "description of target") < 0)
+ if (fprintf(ofp, "#%-*s %-*s %-*s %-*s %s %s %*s %*s %*s %*s %*s %6s %9s %6s %5s %s\n",
+ tnamew-1, " target name", taccw, "accession", qnamew, "query name", qaccw, "accession", "hmmfrom", "hmm to", posw, "alifrom", posw, "ali to", posw, "envfrom", posw, "env to", posw, ( pli->mode == p7_SCAN_MODELS ? "modlen" : "sq len" ), "strand", " E-value", " score", " bias", "description of target") < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-sequence hit list: write failed");
- if (fprintf(ofp, "#%*s %*s %*s %*s %s %s %*s %*s %*s %*s %*s %*s %*s %6s %9s %6s %5s %s\n",
- tnamew-1, "-------------------", taccw, "----------", qnamew, "--------------------", qaccw, "----------", "-------", "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", "------", "---------", "------", "-----", "---------------------") < 0)
+ if (fprintf(ofp, "#%*s %*s %*s %*s %s %s %*s %*s %*s %*s %*s %6s %9s %6s %5s %s\n",
+ tnamew-1, "-------------------", taccw, "----------", qnamew, "--------------------", qaccw, "----------", "-------", "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", "------", "---------", "------", "-----", "---------------------") < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-per-sequence hit list: write failed");
}
else
@@ -1483,7 +1574,7 @@ p7_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7
d = th->hit[h]->best_domain;
if (pli->long_targets)
{
- if (fprintf(ofp, "%-*s %-*s %-*s %-*s %7d %7d %*d %*d %*d %*d %*d %*d %*ld %6s %9.2g %6.1f %5.1f %s\n",
+ if (fprintf(ofp, "%-*s %-*s %-*s %-*s %7d %7d %*d %*d %*d %*d %*ld %6s %9.2g %6.1f %5.1f %s\n",
tnamew, th->hit[h]->name,
taccw, th->hit[h]->acc ? th->hit[h]->acc : "-",
qnamew, qname,
@@ -1494,8 +1585,6 @@ p7_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7
posw, th->hit[h]->dcl[d].jali,
posw, th->hit[h]->dcl[d].ienv,
posw, th->hit[h]->dcl[d].jenv,
- posw, th->hit[h]->dcl[d].ihq,
- posw, th->hit[h]->dcl[d].jhq,
posw, th->hit[h]->dcl[0].ad->L,
(th->hit[h]->dcl[d].iali < th->hit[h]->dcl[d].jali ? " + " : " - "),
exp(th->hit[h]->lnP),
@@ -1562,14 +1651,14 @@ p7_tophits_TabularDomains(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7
if (show_header)
{
- if (fprintf(ofp, "#%*s %22s %40s %11s %11s %11s\n", tnamew+qnamew-1+15+taccw+qaccw, "", "--- full sequence ---", "-------------- this domain -------------", "hmm coord", "ali coord", "env coord") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
- if (fprintf(ofp, "#%-*s %-*s %5s %-*s %-*s %5s %9s %6s %5s %3s %3s %9s %9s %6s %5s %5s %5s %5s %5s %5s %5s %4s %s\n",
- tnamew-1, " target name", taccw, "accession", "tlen", qnamew, "query name", qaccw, "accession", "qlen", "E-value", "score", "bias", "#", "of", "c-Evalue", "i-Evalue", "score", "bias", "from", "to", "from", "to", "from", "to", "acc", "description of target") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
- if (fprintf(ofp, "#%*s %*s %5s %*s %*s %5s %9s %6s %5s %3s %3s %9s %9s %6s %5s %5s %5s %5s %5s %5s %5s %4s %s\n",
- tnamew-1, "-------------------", taccw, "----------", "-----", qnamew, "--------------------", qaccw, "----------", "-----", "---------", "------", "-----", "---", "---", "---------", "---------", "------", "-----", "-----", "-----", "-----", "-----", "-----", "-----", "----", "---------------------") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
+ if (fprintf(ofp, "#%*s %22s %40s %11s %11s %11s\n", tnamew+qnamew-1+15+taccw+qaccw, "", "--- full sequence ---", "-------------- this domain -------------", "hmm coord", "ali coord", "env coord") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
+ if (fprintf(ofp, "#%-*s %-*s %5s %-*s %-*s %5s %9s %6s %5s %3s %3s %9s %9s %6s %5s %5s %5s %5s %5s %5s %5s %4s %s\n",
+ tnamew-1, " target name", taccw, "accession", "tlen", qnamew, "query name", qaccw, "accession", "qlen", "E-value", "score", "bias", "#", "of", "c-Evalue", "i-Evalue", "score", "bias", "from", "to", "from", "to", "from", "to", "acc", "description of target") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
+ if (fprintf(ofp, "#%*s %*s %5s %*s %*s %5s %9s %6s %5s %3s %3s %9s %9s %6s %5s %5s %5s %5s %5s %5s %5s %4s %s\n",
+ tnamew-1, "-------------------", taccw, "----------", "-----", qnamew, "--------------------", qaccw, "----------", "-----", "---------", "------", "-----", "---", "---", "---------", "---------", "------", "-----", "-----", "-----", "-----", "-----", "-----", "-----", "----", "---------------------") < 0)
+ ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
}
for (h = 0; h < th->N; h++)
@@ -1589,6 +1678,8 @@ p7_tophits_TabularDomains(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7
if (pli->mode == p7_SEARCH_SEQS) { qlen = th->hit[h]->dcl[d].ad->M; tlen = th->hit[h]->dcl[d].ad->L; }
else { qlen = th->hit[h]->dcl[d].ad->L; tlen = th->hit[h]->dcl[d].ad->M; }
+
+
if (fprintf(ofp, "%-*s %-*s %5d %-*s %-*s %5d %9.2g %6.1f %5.1f %3d %3d %9.2g %9.2g %6.1f %5.1f %5d %5d %5ld %5ld %5d %5d %4.2f %s\n",
tnamew, th->hit[h]->name,
taccw, th->hit[h]->acc ? th->hit[h]->acc : "-",
@@ -1614,6 +1705,7 @@ p7_tophits_TabularDomains(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7
(th->hit[h]->dcl[d].oasc / (1.0 + fabs((float) (th->hit[h]->dcl[d].jenv - th->hit[h]->dcl[d].ienv)))),
(th->hit[h]->desc ? th->hit[h]->desc : "-")) < 0)
ESL_EXCEPTION_SYS(eslEWRITE, "tabular per-domain hit list: write failed");
+
}
}
return eslOK;
@@ -1653,6 +1745,8 @@ p7_tophits_TabularXfam(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PI
P7_TOPHITS *domHitlist = NULL;
P7_HIT *domhit = NULL;
int tnamew = ESL_MAX(20, p7_tophits_GetMaxNameLength(th));
+ int taccw = ESL_MAX(20, p7_tophits_GetMaxAccessionLength(th));
+ int qnamew = ESL_MAX(20, strlen(qname));
int ndom = 0;
int posw = (pli->long_targets ? ESL_MAX(7, p7_tophits_GetMaxPositionLength(th)) : 0);
int h,d;
@@ -1661,37 +1755,37 @@ p7_tophits_TabularXfam(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PI
if (pli->long_targets)
{
- if (fprintf(ofp, "# Hit scores\n# ----------\n#\n") < 0)
- ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
- if (fprintf(ofp, "# %-*s %6s %9s %5s %s %s %6s %*s %*s %*s %*s %*s %*s %*s %s\n",
- tnamew-1, "name", " bits", " E-value", " bias", "hmm-st", "hmm-en", "strand", posw, "ali-st", posw, "ali-en", posw, "env-st", posw, "env-en", posw, "hq-st", posw, "hq-en", posw, "sq-len", "description of target") < 0)
- ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
- if (fprintf(ofp, "# %*s %6s %9s %5s %s %s %6s %*s %*s %*s %*s %*s %*s %*s %s\n",
- tnamew-1, "-------------------", "------", "---------", "-----", "-------", "-------", "------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", "---------------------") < 0)
- ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
+ if (fprintf(ofp, "# hit scores\n# ----------\n#\n") < 0)
+ ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
+ if (fprintf(ofp, "# %-*s %-*s %-*s %6s %9s %5s %s %s %6s %*s %*s %*s %*s %*s %s\n",
+ tnamew-1, "target name", taccw, "acc", qnamew, "query name", "bits", " e-value", " bias", "hmm-st", "hmm-en", "strand", posw, "ali-st", posw, "ali-en", posw, "env-st", posw, "env-en", posw, ( pli->mode == p7_SCAN_MODELS ? "modlen" : "sq-len" ), "description of target") < 0)
+ ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
+ if (fprintf(ofp, "# %-*s %-*s %-*s %6s %9s %5s %s %s %6s %*s %*s %*s %*s %*s %s\n",
+ tnamew-1, "-------------------", taccw, "-------------------", qnamew, "-------------------", "------", "---------", "-----", "-------", "-------", "------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", posw, "-------", "---------------------") < 0)
+ ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
- for (h = 0; h < th->N; h++)
- if (th->hit[h]->flags & p7_IS_REPORTED)
- {
- //d = th->hit[h]->best_domain;
- if (fprintf(ofp, "%-*s %6.1f %9.2g %5.1f %7d %7d %s %*d %*d %*d %*d %*d %*d %*ld %s\n",
- tnamew, th->hit[h]->name,
- th->hit[h]->score,
- exp(th->hit[h]->lnP),
- th->hit[h]->dcl[0].dombias * eslCONST_LOG2R, /* convert NATS to BITS at last moment */
- th->hit[h]->dcl[0].ad->hmmfrom,
- th->hit[h]->dcl[0].ad->hmmto,
- (th->hit[h]->dcl[0].iali < th->hit[h]->dcl[0].jali ? " + " : " - "),
- posw, th->hit[h]->dcl[0].iali,
- posw, th->hit[h]->dcl[0].jali,
- posw, th->hit[h]->dcl[0].ienv,
- posw, th->hit[h]->dcl[0].jenv,
- posw, th->hit[h]->dcl[0].ihq,
- posw, th->hit[h]->dcl[0].jhq,
- posw, th->hit[h]->dcl[0].ad->L,
- th->hit[h]->desc == NULL ? "-" : th->hit[h]->desc) < 0)
- ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
- }
+ for (h = 0; h < th->N; h++)
+ if (th->hit[h]->flags & p7_IS_REPORTED)
+ {
+ //d = th->hit[h]->best_domain;
+ if (fprintf(ofp, "%-*s %-*s %-*s %6.1f %9.2g %5.1f %7d %7d %s %*d %*d %*d %*d %*ld %s\n",
+ tnamew, th->hit[h]->name,
+ taccw, ( pli->mode == p7_SCAN_MODELS ? th->hit[h]->acc : qacc ),
+ qnamew, qname,
+ th->hit[h]->score,
+ exp(th->hit[h]->lnP),
+ th->hit[h]->dcl[0].dombias * eslCONST_LOG2R, /* convert nats to bits at last moment */
+ th->hit[h]->dcl[0].ad->hmmfrom,
+ th->hit[h]->dcl[0].ad->hmmto,
+ (th->hit[h]->dcl[0].iali < th->hit[h]->dcl[0].jali ? " + " : " - "),
+ posw, th->hit[h]->dcl[0].iali,
+ posw, th->hit[h]->dcl[0].jali,
+ posw, th->hit[h]->dcl[0].ienv,
+ posw, th->hit[h]->dcl[0].jenv,
+ posw, th->hit[h]->dcl[0].ad->L,
+ th->hit[h]->desc == NULL ? "-" : th->hit[h]->desc) < 0)
+ ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
+ }
}
else
{
@@ -1799,88 +1893,48 @@ p7_tophits_TabularXfam(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PI
}
-/* Function: p7_tophits_LongInserts()
- * Synopsis: Output list of long inserts for each query/hit pair
+/* Function: p7_tophits_AliScores()
+ * Synopsis: Output per-position scores for each position of each query/hit pair
*
- * Purpose:
+ * Purpose: This depends on per-alignment-position scores having been
+ * previously computed, as in p7_pipeline_computeAliScores()
*
* Returns: <eslOK> on success.
*
- * Throws: <eslEMEM> on allocation failure.
- * <eslEWRITE> if a write to <ofp> fails; for example, if
- * the disk fills up.
+ * Throws: none
*/
int
-p7_tophits_LongInserts(FILE *ofp, char *qname, char *qacc, P7_TOPHITS *th, P7_PIPELINE *pli, int min_length)
+p7_tophits_AliScores(FILE *ofp, char *qname, P7_TOPHITS *th )
{
- int h,i,j,k;
- int insert_len;
- int status;
- int qnamew = ESL_MAX(20, strlen(qname));
- int tnamew = ESL_MAX(20, p7_tophits_GetMaxNameLength(th));
- int qaccw = ((qacc != NULL) ? ESL_MAX(10, strlen(qacc)) : 10);
- int taccw = ESL_MAX(10, p7_tophits_GetMaxAccessionLength(th));
-
P7_HIT *hit;
-
- if (fprintf(ofp, "# Long inserts (at least length %d)\n# ------------\n#\n", min_length) < 0)
- ESL_XEXCEPTION_SYS(eslEWRITE, "long insert output: write failed");
-
- if (fprintf(ofp, "#%-*s %-*s %-*s %-*s %s %s\n",
- tnamew-1, " target name", taccw, "accession", qnamew, "query name", qaccw, "accession", "insert from", "insert to") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "long insert output: write failed");
-
- if (fprintf(ofp, "#%*s %*s %*s %*s %s %s\n",
- tnamew-1, "-------------------", taccw, "----------", qnamew, "--------------------", qaccw, "----------", "----------", "----------") < 0)
- ESL_EXCEPTION_SYS(eslEWRITE, "long insert output: write failed");
-
+ int h, i;
+ float *scores;
for (h = 0; h < th->N; h++) {
hit = th->hit[h];
if (hit->flags & p7_IS_REPORTED)
{
- j = hit->dcl[0].ad->sqfrom;
- k = hit->dcl[0].ad->hmmfrom;
- insert_len = 0;
- for (i=0; k<=hit->dcl[0].ad->hmmto && i < hit->dcl[0].ad->N; i++) {
-// printf("%c",hit->dcl[0].ad->model[i]);
-
- if (hit->dcl[0].ad->model[i] == '.') {
- insert_len++;
- } else {
- if (insert_len >= min_length) {
- int start = j;
- start -= (insert_len-1) * (hit->dcl[0].ad->sqfrom < hit->dcl[0].ad->sqto ? 1 : -1 );
- if (fprintf(ofp, "%-*s %-*s %-*s %-*s %7d %7d\n",
- tnamew, hit->name,
- taccw, hit->acc,
- qnamew, qname,
- qaccw, qacc,
- start,
- j
- ) < 0)
- ESL_XEXCEPTION_SYS(eslEWRITE, "xfam tabular output: write failed");
- }
- k++;
- insert_len = 0;
- }
+ fprintf (ofp, "%s %s %d %d :", qname, hit->name, hit->dcl[0].iali, hit->dcl[0].jali);
- if (hit->dcl[0].ad->aseq[i] != '-') {
- j += (hit->dcl[0].ad->sqfrom < hit->dcl[0].ad->sqto ? 1 : -1 );
- }
- }
+ scores = hit->dcl[0].scores_per_pos;
+ for (i=0; i<hit->dcl[0].ad->N; i++) {
+ if (scores[i] == -eslINFINITY)
+ fprintf (ofp, " >");
+ else
+ fprintf (ofp, " %.3f", scores[i]);
+ }
+ fprintf (ofp, "\n");
}
}
return eslOK;
- ERROR:
- return status;
}
+
/* Function: p7_tophits_TabularTail()
* Synopsis: Print a trailer on a tabular output file.
*
@@ -2129,18 +2183,14 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $Id: p7_tophits.c 4055 2012-05-30 20:32:49Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_tophits.c $
+ * SVN $Id$
+ * SVN $URL$
*****************************************************************/
-
-
-
-
diff --git a/hmmer/src/p7_trace.c b/hmmer/src/p7_trace.c
index e7a17e3..7f19c21 100644
--- a/hmmer/src/p7_trace.c
+++ b/hmmer/src/p7_trace.c
@@ -1636,14 +1636,14 @@ main(int argc, char **argv)
/************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/p7_trace.c $
+ * SVN $URL$
* SVN $Id: p7_trace.c 3474 2011-01-17 13:25:32Z eddys $
************************************************************/
diff --git a/hmmer/src/phmmer.c b/hmmer/src/phmmer.c
index 4d2c152..4b0c73d 100644
--- a/hmmer/src/phmmer.c
+++ b/hmmer/src/phmmer.c
@@ -55,9 +55,9 @@ typedef struct {
#endif
#ifdef HAVE_MPI
-#define DAEMONOPTS "-o,-A,--tblout,--domtblout,--mpi,--stall"
+#define DAEMONOPTS "-o,-A,--tblout,--domtblout,--pfamtblout,--mpi,--stall"
#else
-#define DAEMONOPTS "-o,-A,--tblout,--domtblout"
+#define DAEMONOPTS "-o,-A,--tblout,--domtblout,--pfamtblout"
#endif
static ESL_OPTIONS options[] = {
@@ -65,9 +65,10 @@ static ESL_OPTIONS options[] = {
{ "-h", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show brief help on version and usage", 1 },
/* Control of output */
{ "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
- { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of hits to file <s>", 2 },
- { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <s>", 2 },
- { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <s>", 2 },
+ { "-A", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save multiple alignment of hits to file <f>", 2 },
+ { "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-sequence hits to file <f>", 2 },
+ { "--domtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of per-domain hits to file <f>", 2 },
+ { "--pfamtblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save table of hits and domains to file, in Pfam format <f>", 2 },
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
@@ -120,7 +121,17 @@ static ESL_OPTIONS options[] = {
#ifdef HAVE_MPI
{ "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 12 },
{ "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 12 },
-#endif
+#endif
+
+ /* Restrict search to subset of database - hidden because these flags are
+ * (a) currently for internal use
+ * (b) probably going to change
+ * Doesn't work with MPI
+ */
+ { "--restrictdb_stkey", eslARG_STRING, "0", NULL, NULL, NULL, NULL, NULL, "Search starts at the sequence with name <s> (not with MPI)", 99 },
+ { "--restrictdb_n",eslARG_INT, "-1", NULL, NULL, NULL, NULL, NULL, "Search <j> target sequences (starting at --restrictdb_stkey)", 99 },
+ { "--ssifile", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "restrictdb_x values require ssi file. Override default to <s>", 99 },
+
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
static char usage[] = "[-options] <seqfile> <seqdb>";
@@ -138,14 +149,17 @@ struct cfg_s {
int do_mpi; /* TRUE if we're doing MPI parallelization */
int nproc; /* how many MPI processes, total */
int my_rank; /* who am I, in 0..nproc-1 */
+
+ char *firstseq_key; /* name of the first sequence in the restricted db range */
+ int n_targetseq; /* number of sequences in the restricted range */
};
static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg);
-static int serial_loop (WORKER_INFO *info, ESL_SQFILE *dbfp);
+static int serial_loop (WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs);
#ifdef HMMER_THREADS
#define BLOCK_SIZE 1000
-static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp);
+static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs);
static void pipeline_thread(void *arg);
#endif /*HMMER_THREADS*/
@@ -235,6 +249,7 @@ output_header(FILE *ofp, ESL_GETOPTS *go, char *qfile, char *dbfile)
if (esl_opt_IsUsed(go, "-A") && fprintf(ofp, "# MSA of hits saved to file: %s\n", esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--tblout") && fprintf(ofp, "# per-seq hits tabular output: %s\n", esl_opt_GetString(go, "--tblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--domtblout") && fprintf(ofp, "# per-dom hits tabular output: %s\n", esl_opt_GetString(go, "--domtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--pfamtblout")&& fprintf(ofp, "# pfam-style tabular hit output: %s\n", esl_opt_GetString(go, "--pfamtblout")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--acc") && fprintf(ofp, "# prefer accessions over names: yes\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--noali") && fprintf(ofp, "# show alignments in output: no\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--notextw") && fprintf(ofp, "# max ASCII text line length: unlimited\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -259,6 +274,10 @@ output_header(FILE *ofp, ESL_GETOPTS *go, char *qfile, char *dbfile)
if (esl_opt_IsUsed(go, "--F2") && fprintf(ofp, "# Vit filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F2")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--F3") && fprintf(ofp, "# Fwd filter P threshold: <= %g\n", esl_opt_GetReal(go, "--F3")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--nobias") && fprintf(ofp, "# biased composition HMM filter: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") && fprintf(ofp, "# Restrict db to start at seq key: %s\n", esl_opt_GetString(go, "--restrictdb_stkey")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--restrictdb_n") && fprintf(ofp, "# Restrict db to # target seqs: %d\n", esl_opt_GetInteger(go, "--restrictdb_n")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+ if (esl_opt_IsUsed(go, "--ssifile") && fprintf(ofp, "# Override ssi file to: %s\n", esl_opt_GetString(go, "--ssifile")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
+
if (esl_opt_IsUsed(go, "--nonull2") && fprintf(ofp, "# null2 bias corrections: off\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--EmL") && fprintf(ofp, "# seq length, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmL")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (esl_opt_IsUsed(go, "--EmN") && fprintf(ofp, "# seq number, MSV Gumbel mu fit: %d\n", esl_opt_GetInteger(go, "--EmN")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -281,7 +300,7 @@ output_header(FILE *ofp, ESL_GETOPTS *go, char *qfile, char *dbfile)
#endif
#ifdef HAVE_MPI
if (esl_opt_IsUsed(go, "--mpi") && fprintf(ofp, "# MPI: on\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
-#endif
+#endif
if (fprintf(ofp, "# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
return eslOK;
}
@@ -306,11 +325,30 @@ main(int argc, char **argv)
cfg.do_mpi = FALSE; /* this gets reset below, if we init MPI */
cfg.nproc = 0; /* this gets reset below, if we init MPI */
cfg.my_rank = 0; /* this gets reset below, if we init MPI */
+ cfg.firstseq_key = NULL;
+ cfg.n_targetseq = -1;
/* Initializations */
p7_FLogsumInit(); /* we're going to use table-driven Logsum() approximations at times */
process_commandline(argc, argv, &go, &cfg.qfile, &cfg.dbfile);
+
+ /* is the range restricted? */
+#ifndef eslAUGMENT_SSI
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n") || esl_opt_IsUsed(go, "--ssifile") )
+ p7_Fail("Unable to use range-control options unless an SSI index file is available. See 'esl_sfetch --index'\n");
+#else
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") )
+ if ((cfg.firstseq_key = esl_opt_GetString(go, "--restrictdb_stkey")) == NULL) p7_Fail("Failure capturing --restrictdb_stkey\n");
+
+ if (esl_opt_IsUsed(go, "--restrictdb_n") )
+ cfg.n_targetseq = esl_opt_GetInteger(go, "--restrictdb_n");
+
+ if ( cfg.n_targetseq != -1 && cfg.n_targetseq < 1 )
+ p7_Fail("--restrictdb_n must be >= 1\n");
+#endif
+
+
/* Figure out who we are, and send control there:
* we might be an MPI master, an MPI worker, or a serial program.
*/
@@ -359,6 +397,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
FILE *afp = NULL; /* alignment output file (-A option) */
FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */
+ FILE *pfamtblfp= NULL; /* output stream for pfam tabular output (--pfamtblout) */
int qformat = eslSQFILE_UNKNOWN; /* format of qfile */
ESL_SQFILE *qfp = NULL; /* open qfile */
ESL_SQ *qsq = NULL; /* query sequence */
@@ -438,7 +477,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (esl_opt_IsOn(go, "-A")) { if ((afp = fopen(esl_opt_GetString(go, "-A"), "w")) == NULL) p7_Fail("Failed to open alignment output file %s for writing\n", esl_opt_GetString(go, "-A")); }
if (esl_opt_IsOn(go, "--tblout")) { if ((tblfp = fopen(esl_opt_GetString(go, "--tblout"), "w")) == NULL) p7_Fail("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp")); }
if (esl_opt_IsOn(go, "--domtblout")) { if ((domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL) p7_Fail("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp")); }
-
+ if (esl_opt_IsOn(go, "--pfamtblout")){ if ((pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL) esl_fatal("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout")); }
+
/* Open the target sequence database for sequential access. */
status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp);
if (status == eslENOTFOUND) p7_Fail("Failed to open target sequence database %s for reading\n", cfg->dbfile);
@@ -446,6 +486,15 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else if (status == eslEINVAL) p7_Fail("Can't autodetect format of a stdin or .gz seqfile");
else if (status != eslOK) p7_Fail("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile);
+
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) {
+ if (esl_opt_IsUsed(go, "--ssifile"))
+ esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile"));
+ else
+ esl_sqfile_OpenSSI(dbfp, NULL);
+ }
+
+
/* Open the query sequence file */
status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp);
if (status == eslENOTFOUND) p7_Fail("Failed to open sequence file %s for reading\n", cfg->qfile);
@@ -512,10 +561,19 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* seqfile may need to be rewound (multiquery mode) */
if (nquery > 1)
- {
- if (! esl_sqfile_IsRewindable(dbfp)) p7_Fail("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile);
- esl_sqfile_Position(dbfp, 0);
- }
+ {
+ if (! esl_sqfile_IsRewindable(dbfp)) p7_Fail("Target sequence file %s isn't rewindable; can't search it with multiple queries", cfg->dbfile);
+
+ if ( cfg->firstseq_key == NULL )
+ esl_sqfile_Position(dbfp, 0); //only re-set current position to 0 if we're not planning to set it in a moment
+ }
+
+ if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general
+ sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key);
+ if (sstatus != eslOK)
+ p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key);
+ }
+
if (fprintf(ofp, "Query: %s [L=%ld]\n", qsq->name, (long) qsq->n) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
if (qsq->acc[0] != '\0' && fprintf(ofp, "Accession: %s\n", qsq->acc) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
@@ -526,49 +584,49 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_SingleBuilder(bld, qsq, info[0].bg, NULL, NULL, NULL, &om); /* bypass HMM - only need model */
for (i = 0; i < infocnt; ++i)
- {
- /* Create processing pipeline and hit list */
- info[i].th = p7_tophits_Create();
- info[i].om = p7_oprofile_Clone(om);
- info[i].pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */
- p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg);
+ {
+ /* Create processing pipeline and hit list */
+ info[i].th = p7_tophits_Create();
+ info[i].om = p7_oprofile_Clone(om);
+ info[i].pli = p7_pipeline_Create(go, om->M, 100, FALSE, p7_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */
+ p7_pli_NewModel(info[i].pli, info[i].om, info[i].bg);
#ifdef HMMER_THREADS
- if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
+ if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
#endif
- }
+ }
#ifdef HMMER_THREADS
- if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp);
- else sstatus = serial_loop(info, dbfp);
+ if (ncpus > 0) sstatus = thread_loop(threadObj, queue, dbfp, cfg->n_targetseq);
+ else sstatus = serial_loop(info, dbfp, cfg->n_targetseq);
#else
- sstatus = serial_loop(info, dbfp);
+ sstatus = serial_loop(info, dbfp, cfg->n_targetseq);
#endif
switch(sstatus)
- {
- case eslEFORMAT:
- p7_Fail("Parse failed (sequence file %s):\n%s\n",
- dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
- break;
- case eslEOF:
- /* do nothing */
- break;
- default:
- p7_Fail("Unexpected error %d reading sequence file %s",
- sstatus, dbfp->filename);
- }
+ {
+ case eslEFORMAT:
+ p7_Fail("Parse failed (sequence file %s):\n%s\n",
+ dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
+ break;
+ case eslEOF:
+ /* do nothing */
+ break;
+ default:
+ p7_Fail("Unexpected error %d reading sequence file %s",
+ sstatus, dbfp->filename);
+ }
/* merge the results of the search results */
for (i = 1; i < infocnt; ++i)
- {
- p7_tophits_Merge(info[0].th, info[i].th);
- p7_pipeline_Merge(info[0].pli, info[i].pli);
+ {
+ p7_tophits_Merge(info[0].th, info[i].th);
+ p7_pipeline_Merge(info[0].pli, info[i].pli);
- p7_pipeline_Destroy(info[i].pli);
- p7_tophits_Destroy(info[i].th);
- p7_oprofile_Destroy(info[i].om);
- }
+ p7_pipeline_Destroy(info[i].pli);
+ p7_tophits_Destroy(info[i].th);
+ p7_oprofile_Destroy(info[i].om);
+ }
/* Print the results. */
p7_tophits_SortBySortkey(info->th);
@@ -576,8 +634,9 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_tophits_Targets(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
p7_tophits_Domains(ofp, info->th, info->pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
- if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, info->th, info->pli, (nquery == 1));
+ if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, info->th, info->pli);
esl_stopwatch_Stop(w);
p7_pli_Statistics(ofp, info->pli, w);
@@ -590,8 +649,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if ( p7_tophits_Alignment(info->th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK)
{
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
@@ -614,8 +673,9 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Terminate outputs - any last words?
*/
- if (tblfp) p7_tophits_TabularTail(tblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
- if (domtblfp) p7_tophits_TabularTail(domtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
+ if (tblfp) p7_tophits_TabularTail(tblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
+ if (domtblfp) p7_tophits_TabularTail(domtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
+ if (pfamtblfp) p7_tophits_TabularTail(pfamtblfp,"phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for successful exit
@@ -647,6 +707,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (afp != NULL) fclose(afp);
if (tblfp != NULL) fclose(tblfp);
if (domtblfp != NULL) fclose(domtblfp);
+ if (pfamtblfp) fclose(pfamtblfp);
return eslOK;
ERROR:
@@ -730,41 +791,42 @@ typedef struct {
* MPI workers. If multiple hmm's are in the query file, the
* blocks are reused without parsing the database a second time.
*/
-int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block)
+int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block, int n_targetseqs)
{
int status = eslOK;
/* if the list has been calculated, use it instead of parsing the database */
if (list->complete)
- {
+ {
if (list->current == list->last)
- {
- block->offset = 0;
- block->length = 0;
- block->count = 0;
+ {
+ block->offset = 0;
+ block->length = 0;
+ block->count = 0;
- status = eslEOF;
- }
+ status = eslEOF;
+ }
else
- {
- int inx = list->current++;
+ {
+ int inx = list->current++;
- block->offset = list->blocks[inx].offset;
- block->length = list->blocks[inx].length;
- block->count = list->blocks[inx].count;
+ block->offset = list->blocks[inx].offset;
+ block->length = list->blocks[inx].length;
+ block->count = list->blocks[inx].count;
- status = eslOK;
- }
+ status = eslOK;
+ }
return status;
- }
+ }
block->offset = 0;
block->length = 0;
block->count = 0;
esl_sq_Reuse(sq);
- while (block->length < MAX_BLOCK_SIZE && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK)
+ if (n_targetseqs == 0) status = eslEOF; //this is to handle the end-case of a restrictdb scenario, where no more targets are required, and we want to mark the list as complete
+ while (block->length < MAX_BLOCK_SIZE && (n_targetseqs < 0 || block->count < n_targetseqs) && (status = esl_sqio_ReadInfo(sqfp, sq)) == eslOK)
{
if (block->count == 0) block->offset = sq->roff;
block->length = sq->eoff - block->offset + 1;
@@ -772,7 +834,9 @@ int next_block(ESL_SQFILE *sqfp, ESL_SQ *sq, BLOCK_LIST *list, SEQ_BLOCK *block)
esl_sq_Reuse(sq);
}
- if (status == eslEOF && block->count > 0) status = eslOK;
+ if (block->count > 0)
+ if (status == eslEOF || block->count == n_targetseqs)
+ status = eslOK;
if (status == eslEOF) list->complete = 1;
/* add the block to the list of known blocks */
@@ -827,6 +891,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
FILE *afp = NULL; /* alignment output file (-A option) */
FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
FILE *domtblfp = NULL; /* output stream for tabular per-seq (--domtblout) */
+ FILE *pfamtblfp= NULL; /* output stream for pfam-style tabular output (--pfamtblout) */
int qformat = eslSQFILE_UNKNOWN; /* format of qfile */
P7_BG *bg = NULL; /* null model */
ESL_SQFILE *qfp = NULL; /* open qfile */
@@ -854,6 +919,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
int size;
MPI_Status mpistatus;
+ int n_targets;
+
/* Initializations */
abc = esl_alphabet_Create(eslAMINO);
w = esl_stopwatch_Create();
@@ -903,6 +970,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
mpi_failure("Failed to open tabular per-seq output file %s for writing\n", esl_opt_GetString(go, "--tblfp"));
if (esl_opt_IsOn(go, "--domtblout") && (domtblfp = fopen(esl_opt_GetString(go, "--domtblout"), "w")) == NULL)
mpi_failure("Failed to open tabular per-dom output file %s for writing\n", esl_opt_GetString(go, "--domtblfp"));
+ if (esl_opt_IsOn(go, "--pfamtblout") && (pfamtblfp = fopen(esl_opt_GetString(go, "--pfamtblout"), "w")) == NULL)
+ mpi_failure("Failed to open pfam-style tabular output file %s for writing\n", esl_opt_GetString(go, "--pfamtblout"));
/* Open the target sequence database for sequential access. */
status = esl_sqfile_OpenDigital(abc, cfg->dbfile, dbformat, p7_SEQDBENV, &dbfp);
@@ -912,6 +981,15 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
else if (status != eslOK) mpi_failure("Unexpected error %d opening target sequence database file %s\n", status, cfg->dbfile);
dbsq = esl_sq_CreateDigital(abc);
+ if (esl_opt_IsUsed(go, "--restrictdb_stkey") || esl_opt_IsUsed(go, "--restrictdb_n")) {
+ if (esl_opt_IsUsed(go, "--ssifile"))
+ esl_sqfile_OpenSSI(dbfp, esl_opt_GetString(go, "--ssifile"));
+ else
+ esl_sqfile_OpenSSI(dbfp, NULL);
+ }
+
+
+
/* Open the query sequence file */
status = esl_sqfile_OpenDigital(abc, cfg->qfile, qformat, NULL, &qfp);
if (status == eslENOTFOUND) mpi_failure("Failed to open sequence file %s for reading\n", cfg->qfile);
@@ -927,21 +1005,32 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
list->last = 0;
list->blocks = NULL;
+
/* Show header output */
output_header(ofp, go, cfg->qfile, cfg->dbfile);
+ if ( cfg->firstseq_key != NULL ) { //it's tempting to want to do this once and capture the offset position for future passes, but ncbi files make this non-trivial, so this keeps it general
+ sstatus = esl_sqfile_PositionByKey(dbfp, cfg->firstseq_key);
+ if (sstatus != eslOK)
+ p7_Fail("Failure setting restrictdb_stkey to %d\n", cfg->firstseq_key);
+ }
+
+
/* Outer loop over sequence queries */
while ((qstatus = esl_sqio_Read(qfp, qsq)) == eslOK)
{
P7_PIPELINE *pli = NULL; /* processing pipeline */
P7_TOPHITS *th = NULL; /* top-scoring sequence hits */
P7_OPROFILE *om = NULL; /* optimized query profile */
+ int seq_cnt = 0;
nquery++;
if (qsq->n == 0) continue; /* skip zero length seqs as if they aren't even present */
esl_stopwatch_Start(w);
+ n_targets = cfg->n_targetseq;
+
/* seqfile may need to be rewound (multiquery mode) */
if (nquery > 1) list->current = 0;
@@ -958,39 +1047,45 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_pli_NewModel(pli, om, bg);
/* Main loop: */
- while ((sstatus = next_block(dbfp, dbsq, list, &block)) == eslOK)
- {
- if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0)
- mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE);
+ while ((n_targets==-1 || seq_cnt<=n_targets) && (sstatus = next_block(dbfp, dbsq, list, &block, n_targets-seq_cnt)) == eslOK )
+ {
+ seq_cnt += block.count;
- MPI_Get_count(&mpistatus, MPI_PACKED, &size);
- if (mpi_buf == NULL || size > mpi_size) {
- void *tmp;
- ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size);
- mpi_size = size;
- }
+ if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0)
+ mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE);
- dest = mpistatus.MPI_SOURCE;
- MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus);
+ MPI_Get_count(&mpistatus, MPI_PACKED, &size);
+ if (mpi_buf == NULL || size > mpi_size) {
+ void *tmp;
+ ESL_RALLOC(mpi_buf, tmp, sizeof(char) * size);
+ mpi_size = size;
+ }
+
+ dest = mpistatus.MPI_SOURCE;
+ MPI_Recv(mpi_buf, size, MPI_PACKED, dest, mpistatus.MPI_TAG, MPI_COMM_WORLD, &mpistatus);
+
+ if (mpistatus.MPI_TAG == HMMER_ERROR_TAG)
+ mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf);
+ if (mpistatus.MPI_TAG != HMMER_READY_TAG)
+ mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest);
+
+ MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD);
+ }
+
+ if (n_targets!=-1 && seq_cnt==n_targets)
+ sstatus = eslEOF;
- if (mpistatus.MPI_TAG == HMMER_ERROR_TAG)
- mpi_failure("MPI client %d raised error:\n%s\n", dest, mpi_buf);
- if (mpistatus.MPI_TAG != HMMER_READY_TAG)
- mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest);
-
- MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, HMMER_BLOCK_TAG, MPI_COMM_WORLD);
- }
switch(sstatus)
- {
- case eslEFORMAT:
- mpi_failure("Parse failed (sequence file %s):\n%s\n",
- dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
- break;
- case eslEOF:
- break;
- default:
- mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
- }
+ {
+ case eslEFORMAT:
+ mpi_failure("Parse failed (sequence file %s):\n%s\n",
+ dbfp->filename, esl_sqfile_GetErrorBuf(dbfp));
+ break;
+ case eslEOF:
+ break;
+ default:
+ mpi_failure("Unexpected error %d reading sequence file %s", sstatus, dbfp->filename);
+ }
block.offset = 0;
block.length = 0;
@@ -1047,8 +1142,9 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_tophits_Targets(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
p7_tophits_Domains(ofp, th, pli, textw); if (fprintf(ofp, "\n\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
- if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
- if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
+ if (tblfp) p7_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
+ if (domtblfp) p7_tophits_TabularDomains(domtblfp, qsq->name, qsq->acc, th, pli, (nquery == 1));
+ if (pfamtblfp) p7_tophits_TabularXfam(pfamtblfp, qsq->name, qsq->acc, th, pli);
esl_stopwatch_Stop(w);
p7_pli_Statistics(ofp, pli, w);
@@ -1060,8 +1156,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if ( p7_tophits_Alignment(th, abc, NULL, NULL, 0, p7_ALL_CONSENSUS_COLS, &msa) == eslOK)
{
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
if (fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A")) < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed");
}
@@ -1105,6 +1201,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
*/
if (tblfp) p7_tophits_TabularTail(tblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
if (domtblfp) p7_tophits_TabularTail(domtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
+ if (pfamtblfp)p7_tophits_TabularTail(pfamtblfp, "phmmer", p7_SEARCH_SEQS, cfg->qfile, cfg->dbfile, go);
if (ofp) { if (fprintf(ofp, "[ok]\n") < 0) ESL_EXCEPTION_SYS(eslEWRITE, "write failed"); }
/* Cleanup - prepare for successful exit
@@ -1126,6 +1223,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (afp != NULL) fclose(afp);
if (tblfp != NULL) fclose(tblfp);
if (domtblfp != NULL) fclose(domtblfp);
+ if (pfamtblfp) fclose(pfamtblfp);
return eslOK;
ERROR:
@@ -1252,7 +1350,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
p7_bg_SetLength(bg, dbsq->n);
p7_oprofile_ReconfigLength(om, dbsq->n);
- p7_Pipeline(pli, om, bg, dbsq, th);
+ p7_Pipeline(pli, om, bg, dbsq, NULL, th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(pli);
@@ -1306,27 +1404,33 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
}
#endif /*HAVE_MPI*/
+
static int
-serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp)
+serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int n_targetseqs)
{
- int sstatus;
+ int sstatus = eslOK;
ESL_SQ *dbsq = NULL; /* one target sequence (digital) */
+ int seq_cnt = 0;
dbsq = esl_sq_CreateDigital(info->om->abc);
/* Main loop: */
- while ((sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK)
+ while ((n_targetseqs==-1 || seq_cnt<n_targetseqs) && (sstatus = esl_sqio_Read(dbfp, dbsq)) == eslOK)
{
p7_pli_NewSeq(info->pli, dbsq);
p7_bg_SetLength(info->bg, dbsq->n);
p7_oprofile_ReconfigLength(info->om, dbsq->n);
- p7_Pipeline(info->pli, info->om, info->bg, dbsq, info->th);
-
+ p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th);
+
+ seq_cnt++;
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(info->pli);
}
+ if (n_targetseqs!=-1 && seq_cnt==n_targetseqs)
+ sstatus = eslEOF;
+
esl_sq_Destroy(dbsq);
return sstatus;
@@ -1334,7 +1438,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp)
#ifdef HMMER_THREADS
static int
-thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
+thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp, int n_targetseqs)
{
int status = eslOK;
int sstatus = eslOK;
@@ -1352,18 +1456,27 @@ thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFILE *dbfp)
while (sstatus == eslOK)
{
block = (ESL_SQ_BLOCK *) newBlock;
- sstatus = esl_sqio_ReadBlock(dbfp, block, -1, FALSE);
+
+ if (n_targetseqs == 0)
+ {
+ block->count = 0;
+ sstatus = eslEOF;
+ } else {
+ sstatus = esl_sqio_ReadBlock(dbfp, block, -1, n_targetseqs, FALSE);
+ n_targetseqs -= block->count;
+ }
+
if (sstatus == eslEOF)
- {
- if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
- ++eofCount;
- }
+ {
+ if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
+ ++eofCount;
+ }
if (sstatus == eslOK)
- {
- status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
- if (status != eslOK) p7_Fail("Work queue reader failed");
- }
+ {
+ status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
+ if (status != eslOK) p7_Fail("Work queue reader failed");
+ }
}
status = esl_workqueue_ReaderUpdate(queue, block, NULL);
@@ -1390,7 +1503,7 @@ pipeline_thread(void *arg)
ESL_SQ_BLOCK *block = NULL;
void *newBlock;
- impl_ThreadInit();
+ impl_Init();
obj = (ESL_THREADS *) arg;
esl_threads_Started(obj, &workeridx);
@@ -1413,7 +1526,7 @@ pipeline_thread(void *arg)
p7_bg_SetLength(info->bg, dbsq->n);
p7_oprofile_ReconfigLength(info->om, dbsq->n);
- p7_Pipeline(info->pli, info->om, info->bg, dbsq, info->th);
+ p7_Pipeline(info->pli, info->om, info->bg, dbsq, NULL, info->th);
esl_sq_Reuse(dbsq);
p7_pipeline_Reuse(info->pli);
@@ -1436,13 +1549,10 @@ pipeline_thread(void *arg)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
- *
- * SVN $Id: phmmer.c 3806 2012-01-09 18:32:47Z wheelert $
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/phmmer.c $
*****************************************************************/
diff --git a/hmmer/src/seqmodel.c b/hmmer/src/seqmodel.c
index 858fa74..3d831dc 100644
--- a/hmmer/src/seqmodel.c
+++ b/hmmer/src/seqmodel.c
@@ -303,13 +303,13 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*
- * SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/src/seqmodel.c $
- * SVN $Id: seqmodel.c 3878 2012-02-26 15:04:16Z eddys $
+ * SVN $URL$
+ * SVN $Id$
*****************************************************************/
diff --git a/hmmer/src/tracealign.c b/hmmer/src/tracealign.c
index b1699b7..7e64747 100644
--- a/hmmer/src/tracealign.c
+++ b/hmmer/src/tracealign.c
@@ -7,7 +7,7 @@
* 4. Copyright and license.
*
* SRE, Tue Oct 21 19:38:19 2008 [Casa de Gatos]
- * SVN $Id: tracealign.c 3960 2012-03-22 21:42:50Z wheelert $
+ * SVN $Id$
*/
#include "p7_config.h"
@@ -267,22 +267,25 @@ p7_tracealign_computeTraces(P7_HMM *hmm, ESL_SQ **sq, int offset, int N, P7_TRA
*/
for (idx = offset; idx < offset+ N; idx++)
{
- p7_omx_GrowTo(oxf, hmm->M, sq[idx]->n, sq[idx]->n);
- p7_omx_GrowTo(oxb, hmm->M, sq[idx]->n, sq[idx]->n);
+ /* special case: a sequence of length 0. HMMER model can't generate 0 length seq. Set tr->N == 0 as a flag. (bug #h100 fix) */
+ if (sq[idx]->n == 0) { tr[idx]->N = 0; continue; }
- p7_oprofile_ReconfigLength(om, sq[idx]->n);
+ p7_omx_GrowTo(oxf, hmm->M, sq[idx]->n, sq[idx]->n);
+ p7_omx_GrowTo(oxb, hmm->M, sq[idx]->n, sq[idx]->n);
- p7_Forward (sq[idx]->dsq, sq[idx]->n, om, oxf, &fwdsc);
- p7_Backward(sq[idx]->dsq, sq[idx]->n, om, oxf, oxb, NULL);
+ p7_oprofile_ReconfigLength(om, sq[idx]->n);
- status = p7_Decoding(om, oxf, oxb, oxb); /* <oxb> is now overwritten with post probabilities */
+ p7_Forward (sq[idx]->dsq, sq[idx]->n, om, oxf, &fwdsc);
+ p7_Backward(sq[idx]->dsq, sq[idx]->n, om, oxf, oxb, NULL);
- if (status == eslOK)
+ status = p7_Decoding(om, oxf, oxb, oxb); /* <oxb> is now overwritten with post probabilities */
+
+ if (status == eslOK)
{
p7_OptimalAccuracy(om, oxb, oxf, &oasc); /* <oxf> is now overwritten with OA scores */
p7_OATrace (om, oxb, oxf, tr[idx]); /* tr[idx] is now an OA traceback for seq #idx */
}
- else if (status == eslERANGE)
+ else if (status == eslERANGE)
{
/* Work around the numeric overflow problem in Decoding()
* xref J3/119-121 for commentary;
@@ -325,25 +328,25 @@ p7_tracealign_computeTraces(P7_HMM *hmm, ESL_SQ **sq, int offset, int N, P7_TRA
}
- /* the above steps aren't storing the tfrom/tto values in the trace,
- * which are required for downstream processing in this case, so
- * hack them here. Note - this treats the whole thing as one domain,
- * even if there are really multiple domains.
- */
- // skip the parts of the trace that precede the first match state
- tfrom = 2;
- while (tr[idx]->st[tfrom] != p7T_M) tfrom++;
+ /* the above steps aren't storing the tfrom/tto values in the trace,
+ * which are required for downstream processing in this case, so
+ * hack them here. Note - this treats the whole thing as one domain,
+ * even if there are really multiple domains.
+ */
+ // skip the parts of the trace that precede the first match state
+ tfrom = 2;
+ while (tr[idx]->st[tfrom] != p7T_M) tfrom++;
- tto = tfrom + 1;
- //run until the model is exited
- while (tr[idx]->st[tto] != p7T_E) tto++;
+ tto = tfrom + 1;
+ //run until the model is exited
+ while (tr[idx]->st[tto] != p7T_E) tto++;
- tr[idx]->tfrom[0] = tfrom;
- tr[idx]->tto[0] = tto - 1;
+ tr[idx]->tfrom[0] = tfrom;
+ tr[idx]->tto[0] = tto - 1;
- p7_omx_Reuse(oxf);
- p7_omx_Reuse(oxb);
+ p7_omx_Reuse(oxf);
+ p7_omx_Reuse(oxb);
}
#if 0
@@ -468,19 +471,19 @@ ERROR:
*****************************************************************/
/* map_new_msa()
- *
+ *
* Construct <inscount[0..M]>, <matuse[1..M]>, and <matmap[1..M]>
* arrays for mapping model consensus nodes <1..M> onto columns
* <1..alen> of a new MSA.
- *
+ *
* Here's the problem. We want to align the match states in columns,
* but some sequences have inserted symbols in them; we need some
* sort of overall knowledge of where the inserts are and how long
* they are in order to create the alignment.
- *
+ *
* Here's our trick. inscount[] is a 0..M array; inserts[k] stores
* the maximum number of times insert substate k was used. This
- * is the maximum number of gaps to insert between canonical
+ * is the maximum number of gaps to insert between canonical
* column k and k+1. inserts[0] is the N-term tail; inserts[M] is
* the C-term tail.
*
@@ -490,22 +493,22 @@ ERROR:
* the <p7_ALL_CONSENSUS_COLS> option flag is set, though, all
* matuse[1..M] are set <TRUE>. (matuse[0] is unused, always <FALSE>.)
*
- * Then, using these arrays, we construct matmap[] and determine alen.
+ * Then, using these arrays, we construct matmap[] and determine alen.
* If match state k is represented as an alignment column,
* matmap[1..M] = that position, <1..alen>.
* If match state k is not in the alignment (<matuse[k] == FALSE>),
* matmap[k] = matmap[k-1] = the last alignment column that a match
- * state did map to; this is a trick to make some apos coordinate setting
- * work cleanly.
- * Because of this trick, you can't just assume because matmap[k] is
- * nonzero that match state k maps somewhere in the alignment;
+ * state did map to; this is a trick to make some apos coordinate setting
+ * work cleanly.
+ * Because of this trick, you can't just assume because matmap[k] is
+ * nonzero that match state k maps somewhere in the alignment;
* you have to check matuse[k] == TRUE, then look at what matmap[k] says.
* Remember that N and C emit on transition, hence the check for an
- * N->N or C->C transition before bumping nins.
+ * N->N or C->C transition before bumping nins.
* <matmap[0]> is unused; by convention, <matmap[0] = 0>.
*/
static int
-map_new_msa(P7_TRACE **tr, int nseq, int M, int optflags, int **ret_inscount,
+map_new_msa(P7_TRACE **tr, int nseq, int M, int optflags, int **ret_inscount,
int **ret_matuse, int **ret_matmap, int *ret_alen)
{
int *inscount = NULL; /* inscount[k=0..M] == max # of inserts in node k */
@@ -1193,7 +1196,7 @@ main(int argc, char **argv)
}
/* Determine output alignment file format */
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) esl_fatal(argv[0], "%s is not a recognized output MSA file format\n", esl_opt_GetString(go, "--outformat"));
/* Open output stream */
@@ -1265,7 +1268,7 @@ main(int argc, char **argv)
p7_tracealign_getMSAandStats(hmm, sq, totseq, &msa, pp, relent, scores);
- eslx_msafile_Write(ofp, msa, outfmt);
+ esl_msafile_Write(ofp, msa, outfmt);
for (idx = 0; idx < totseq; idx++) {
printf("%s\n------------------\n", sq[idx]->name);
@@ -1303,8 +1306,8 @@ main(int argc, char **argv)
/*****************************************************************
* HMMER - Biological sequence analysis with profile HMMs
- * Version i1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 3.1b3; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* HMMER is distributed under the terms of the GNU General Public License
diff --git a/hmmer/testsuite/2OG-FeII_Oxy_3-nt.hmm b/hmmer/testsuite/2OG-FeII_Oxy_3-nt.hmm
new file mode 100644
index 0000000..1f1cb9b
--- /dev/null
+++ b/hmmer/testsuite/2OG-FeII_Oxy_3-nt.hmm
@@ -0,0 +1,968 @@
+HMMER3/f [3.1b2 | February 2015]
+NAME 2OG-FeII_Oxy_3
+LENG 315
+MAXL 460
+ALPH DNA
+RF no
+MM no
+CONS yes
+CS no
+MAP yes
+DATE Sun May 24 19:35:19 2015
+NSEQ 10
+EFFN 2.104492
+CKSUM 2445899954
+STATS LOCAL MSV -10.9419 0.70331
+STATS LOCAL VITERBI -12.6195 0.70331
+STATS LOCAL FORWARD -4.5577 0.70331
+HMM A C G T
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.59876 1.25236 1.23561 1.50794
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 0.00000 *
+ 1 2.16934 0.63500 2.28846 1.36888 1 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 2 2.35771 2.16224 2.45792 0.35001 2 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 3 2.04879 1.98622 0.49094 2.10503 3 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 4 1.86846 1.93996 1.30549 0.84190 4 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 5 1.90362 2.06977 0.77496 1.33168 5 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 6 1.94363 0.87529 1.31288 1.76591 6 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 7 2.15378 0.55177 1.85421 1.88750 7 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 8 2.35771 2.16224 2.45792 0.35001 8 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 9 1.94577 0.86882 1.32125 1.76681 9 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 10 0.26989 2.66415 2.48073 2.48657 10 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 11 0.26989 2.66415 2.48073 2.48657 11 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 12 2.51103 0.32003 2.63402 2.11283 12 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 13 1.83960 2.55424 0.40682 2.32683 13 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 14 2.35771 2.16224 2.45792 0.35001 14 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 15 2.01389 0.72249 1.53185 1.80269 15 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 16 1.41338 2.32425 0.62721 2.08147 16 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 17 2.35771 2.16224 2.45792 0.35001 17 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 18 1.45188 1.19813 1.31797 1.62743 18 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 19 1.62880 1.19713 1.16131 1.66761 19 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 20 1.60146 1.45205 1.08109 1.49128 20 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 21 1.81880 1.43711 0.93297 1.57609 21 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 22 2.51103 0.32003 2.63402 2.11283 22 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 23 2.51103 0.32003 2.63402 2.11283 23 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 24 1.82328 1.02535 1.37930 1.47806 24 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 25 2.42794 2.88272 0.23894 2.68328 25 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 26 2.42794 2.88272 0.23894 2.68328 26 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 27 1.58255 1.10027 1.48148 1.45044 27 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 28 1.12879 1.28085 1.60258 1.62254 28 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 29 1.43445 1.85961 1.63202 0.89042 29 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 30 2.05461 2.33449 0.48355 1.84259 30 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 31 2.05724 2.33886 0.48036 1.85028 31 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 32 0.62978 1.73369 2.02055 1.84465 32 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 33 1.46539 1.47987 1.03616 1.67915 33 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 34 2.51103 0.32003 2.63402 2.11283 34 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 35 0.26989 2.66415 2.48073 2.48657 35 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 36 2.51103 0.32003 2.63402 2.11283 36 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 37 2.51103 0.32003 2.63402 2.11283 37 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 38 2.51103 0.32003 2.63402 2.11283 38 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 39 2.00701 0.73402 1.51356 1.79872 39 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 40 2.35771 2.16224 2.45792 0.35001 40 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 41 2.42794 2.88272 0.23894 2.68328 41 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 42 2.42794 2.88272 0.23894 2.68328 42 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 43 2.51103 0.32003 2.63402 2.11283 43 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 44 0.26989 2.66415 2.48073 2.48657 44 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 45 2.51103 0.32003 2.63402 2.11283 45 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 46 2.35771 2.16224 2.45792 0.35001 46 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 47 2.35771 2.16224 2.45792 0.35001 47 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 48 2.51103 0.32003 2.63402 2.11283 48 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 49 2.42794 2.88272 0.23894 2.68328 49 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 50 0.26989 2.66415 2.48073 2.48657 50 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 51 2.51103 0.32003 2.63402 2.11283 51 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 52 0.26989 2.66415 2.48073 2.48657 52 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 53 2.26251 0.51250 2.38603 1.58515 53 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 54 2.00638 0.73510 1.51187 1.79836 54 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 55 0.26989 2.66415 2.48073 2.48657 55 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 56 0.26989 2.66415 2.48073 2.48657 56 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 57 2.51103 0.32003 2.63402 2.11283 57 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 58 2.42794 2.88272 0.23894 2.68328 58 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 59 0.26989 2.66415 2.48073 2.48657 59 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 60 1.83960 2.55424 0.40682 2.32683 60 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 61 2.35771 2.16224 2.45792 0.35001 61 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 62 1.74226 1.98782 2.12699 0.56443 62 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 63 2.51103 0.32003 2.63402 2.11283 63 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 64 1.15847 1.95137 1.10156 1.55305 64 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 65 2.51103 0.32003 2.63402 2.11283 65 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 66 1.80409 1.26456 1.09016 1.52855 66 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 67 2.04545 1.97436 0.49559 2.09867 67 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 68 2.35771 2.16224 2.45792 0.35001 68 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 69 1.94701 0.86518 1.32600 1.76734 69 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 70 0.62205 2.05642 2.01749 1.59822 70 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 71 2.04425 1.97006 0.49729 2.09637 71 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 72 2.14306 0.56205 1.83128 1.88088 72 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 73 1.34385 0.82375 2.05128 1.76138 73 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 74 2.35771 2.16224 2.45792 0.35001 74 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 75 2.42794 2.88272 0.23894 2.68328 75 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 76 2.51103 0.32003 2.63402 2.11283 76 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 77 2.35771 2.16224 2.45792 0.35001 77 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 78 1.90737 1.27708 0.89797 1.80010 78 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 79 0.26989 2.66415 2.48073 2.48657 79 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 80 2.26282 0.51215 2.38636 1.58585 80 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 81 1.62344 0.95573 1.47502 1.66350 81 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 82 2.51103 0.32003 2.63402 2.11283 82 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 83 0.26989 2.66415 2.48073 2.48657 83 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 84 2.42794 2.88272 0.23894 2.68328 84 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 85 1.93581 1.49569 0.73833 1.87283 85 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 86 1.24891 1.53848 1.44049 1.34070 86 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 87 1.63017 1.47085 0.92462 1.72770 87 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 88 1.82810 1.03196 1.33042 1.52047 88 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 89 2.51103 0.32003 2.63402 2.11283 89 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 90 1.64541 1.51837 0.88234 1.74763 90 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 91 1.97233 1.68062 0.62996 1.95195 91 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 92 0.71223 2.17478 1.37943 1.93727 92 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 93 1.63086 1.47604 0.92050 1.72947 93 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09976 3.76224 2.63502 1.46634 0.26236 1.09861 0.40547
+ 94 1.99526 2.24902 0.53207 1.76532 94 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05006 3.71254 3.71254 1.46634 0.26236 1.62670 0.21887
+ 95 1.05668 1.14051 1.91693 1.68375 95 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05006 3.71254 3.71254 1.46634 0.26236 1.62670 0.21887
+ 96 1.57755 1.16035 1.26058 1.62630 96 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05006 3.71254 3.71254 1.46634 0.26236 0.49948 0.93356
+ 97 2.42794 2.88272 0.23894 2.68328 97 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 98 2.42794 2.88272 0.23894 2.68328 98 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 99 1.95690 0.76296 1.77391 1.50169 99 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 100 2.42794 2.88272 0.23894 2.68328 100 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 101 2.42794 2.88272 0.23894 2.68328 101 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 102 1.81787 1.03208 1.53105 1.32781 102 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 103 2.05856 2.34105 0.47876 1.85415 103 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 104 1.68018 1.64579 1.99195 0.72491 104 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 105 1.94132 0.88252 1.30359 1.76496 105 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 106 2.35771 2.16224 2.45792 0.35001 106 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 107 2.35771 2.16224 2.45792 0.35001 107 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 108 2.51103 0.32003 2.63402 2.11283 108 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 109 2.42794 2.88272 0.23894 2.68328 109 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 110 0.26989 2.66415 2.48073 2.48657 110 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 111 1.83054 2.54926 0.41038 2.32142 111 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 112 2.35771 2.16224 2.45792 0.35001 112 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 113 0.26989 2.66415 2.48073 2.48657 113 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 114 2.51103 0.32003 2.63402 2.11283 114 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 115 2.35771 2.16224 2.45792 0.35001 115 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 116 2.42794 2.88272 0.23894 2.68328 116 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 117 2.26282 0.51215 2.38636 1.58585 117 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 118 2.51103 0.32003 2.63402 2.11283 118 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 119 2.51103 0.32003 2.63402 2.11283 119 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 120 1.92629 1.43714 0.77743 1.85076 120 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 121 1.26913 1.80185 0.97432 1.73453 121 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 122 1.10095 2.18846 0.88685 1.94209 122 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 123 1.77865 0.55427 2.26098 1.88130 123 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 124 0.26989 2.66415 2.48073 2.48657 124 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 125 2.35771 2.16224 2.45792 0.35001 125 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 126 2.51103 0.32003 2.63402 2.11283 126 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 127 1.82408 0.53341 2.28516 1.89529 127 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 128 2.42794 2.88272 0.23894 2.68328 128 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 129 1.60909 1.96244 0.93579 1.31999 129 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 130 1.73888 1.98705 2.12526 0.56602 130 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 131 2.51103 0.32003 2.63402 2.11283 131 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 132 1.91775 0.97854 1.18772 1.75860 132 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 133 1.70946 1.93374 0.63559 1.93236 133 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 134 1.72252 0.72361 2.09681 1.54395 134 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 135 1.90325 1.11826 1.04028 1.76779 135 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 136 1.61570 1.36089 1.01894 1.69369 136 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 137 0.93246 1.52837 1.62192 1.65023 137 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 138 1.94201 0.88032 1.30641 1.76524 138 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 139 2.42794 2.88272 0.23894 2.68328 139 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 140 0.98668 1.18126 1.95666 1.72055 140 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 141 1.80678 1.16661 1.18792 1.51621 141 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 142 2.42794 2.88272 0.23894 2.68328 142 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 143 0.26989 2.66415 2.48073 2.48657 143 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 144 1.83054 2.54926 0.41038 2.32142 144 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 145 0.83509 1.66663 1.87212 1.49840 145 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 146 0.71851 2.17266 1.36966 1.93480 146 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 147 2.51103 0.32003 2.63402 2.11283 147 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 148 1.87095 1.64588 1.72313 0.74513 148 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 149 2.35771 2.16224 2.45792 0.35001 149 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 150 2.51103 0.32003 2.63402 2.11283 150 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 151 2.42794 2.88272 0.23894 2.68328 151 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 152 0.93197 1.52917 1.62188 1.65036 152 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 153 2.01205 0.72553 1.52700 1.80162 153 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 154 2.42794 2.88272 0.23894 2.68328 154 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 155 0.86796 1.34093 1.95302 1.73305 155 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 156 2.16853 0.53814 1.88555 1.89662 156 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 157 2.42794 2.88272 0.23894 2.68328 157 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 158 2.35771 2.16224 2.45792 0.35001 158 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 159 1.92651 1.43856 0.77645 1.85128 159 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 160 1.89169 0.89508 1.74020 1.32755 160 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 161 1.96595 1.65112 0.64584 1.93851 161 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 162 1.58349 1.09298 1.48148 1.46004 162 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 163 2.05429 2.33396 0.48394 1.84165 163 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 164 1.34060 0.82634 2.05000 1.76068 164 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 165 1.80841 1.14625 1.20959 1.51440 165 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 166 2.42794 2.88272 0.23894 2.68328 166 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 167 2.35771 2.16224 2.45792 0.35001 167 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 168 1.82904 1.60249 0.84342 1.57117 168 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 169 2.26141 0.51370 2.38488 1.58271 169 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 170 2.35771 2.16224 2.45792 0.35001 170 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 171 1.90577 1.25492 0.91638 1.79440 171 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 172 1.10819 2.19082 0.87959 1.94445 172 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 173 1.81677 0.53669 2.28126 1.89303 173 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 174 1.94650 0.86667 1.32405 1.76712 174 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 175 2.42794 2.88272 0.23894 2.68328 175 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 176 2.42794 2.88272 0.23894 2.68328 176 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 177 1.77159 1.27005 1.23768 1.35068 177 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10046 3.76224 2.62622 1.46634 0.26236 1.09861 0.40547
+ 178 1.62531 1.62968 0.83571 1.75107 178 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05010 3.71188 3.71188 1.46634 0.26236 1.63205 0.21757
+ 179 1.23225 1.54475 1.21365 1.62006 179 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05010 3.71188 3.71188 1.46634 0.26236 1.63205 0.21757
+ 180 1.41047 1.17383 1.40802 1.59867 180 c - - -
+ 1.15642 1.30366 1.47638 1.68530
+ 0.11164 2.51087 3.71188 1.73306 0.19449 1.63205 0.21757
+ 181 2.34840 2.77173 0.26727 2.57104 187 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05010 3.71188 3.71188 1.46634 0.26236 1.63205 0.21757
+ 182 1.51828 2.31852 0.58431 2.07943 188 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05010 3.71188 3.71188 1.46634 0.26236 1.63205 0.21757
+ 183 1.54942 1.18134 1.41806 1.43305 189 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05010 3.71188 3.71188 1.46634 0.26236 0.49603 0.93890
+ 184 1.66493 1.65653 0.78736 1.80211 190 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 185 1.07399 1.74378 1.21607 1.67609 191 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 186 1.90707 1.27331 0.90107 1.79910 192 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 187 2.26251 0.51250 2.38603 1.58515 193 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 188 1.18617 1.76585 1.07526 1.70176 194 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 189 1.75795 1.42820 1.21202 1.23696 195 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 190 2.15950 0.65113 2.27813 1.34444 196 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 191 1.58847 1.65002 1.63736 0.89350 197 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 192 1.96595 1.65112 0.64584 1.93851 198 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 193 1.54574 1.89023 0.73555 1.85426 199 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 194 2.06429 1.42799 2.17531 0.65445 200 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 195 1.60786 1.21462 1.16017 1.66375 201 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 196 2.15117 0.55424 1.84864 1.88589 202 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 197 1.38077 2.30778 0.64965 2.06431 203 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 198 1.61408 1.34397 1.03433 1.68928 204 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 199 1.66953 0.80114 1.70466 1.70918 205 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 200 2.04518 1.97340 0.49597 2.09815 206 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 201 1.77183 1.30093 1.19644 1.36480 207 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 202 1.87803 0.51006 2.31398 1.91200 208 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 203 1.73135 1.98535 2.12141 0.56959 209 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 204 1.81313 1.45659 0.93679 1.55144 210 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 205 1.35693 1.61887 1.02112 1.69153 211 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 206 1.32757 1.06044 1.64087 1.63596 212 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 207 1.90571 1.25403 0.91713 1.79417 213 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 208 2.51103 0.32003 2.63402 2.11283 214 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 209 2.35771 2.16224 2.45792 0.35001 215 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 210 1.66084 1.66922 0.78266 1.80523 216 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 211 2.51103 0.32003 2.63402 2.11283 217 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 212 2.42794 2.88272 0.23894 2.68328 218 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 213 1.57499 1.42175 1.20850 1.37415 219 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 214 1.80062 0.54404 2.27266 1.88805 220 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 215 2.51103 0.32003 2.63402 2.11283 221 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 216 1.95183 0.85152 1.34400 1.76949 222 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 217 2.42794 2.88272 0.23894 2.68328 223 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 218 2.42794 2.88272 0.23894 2.68328 224 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 219 2.09844 0.77655 2.21411 1.17730 225 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 220 2.42794 2.88272 0.23894 2.68328 226 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 221 0.26989 2.66415 2.48073 2.48657 227 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 222 2.09844 0.77655 2.21411 1.17730 228 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 223 2.51103 0.32003 2.63402 2.11283 229 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 224 2.35771 2.16224 2.45792 0.35001 230 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 225 1.82116 1.04025 1.34993 1.48928 231 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 226 2.51103 0.32003 2.63402 2.11283 232 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 227 0.26989 2.66415 2.48073 2.48657 233 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 228 1.57280 2.40834 0.53037 2.16993 234 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 229 2.51103 0.32003 2.63402 2.11283 235 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 230 2.35771 2.16224 2.45792 0.35001 236 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 231 1.83436 1.59693 0.83328 1.59384 237 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 232 2.35771 2.16224 2.45792 0.35001 238 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 233 2.35771 2.16224 2.45792 0.35001 239 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 234 2.16126 0.64818 2.27998 1.34885 240 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 235 1.53920 0.68514 2.13821 1.81058 241 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 236 1.35774 1.89403 1.15401 1.28401 242 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 237 1.48944 1.62766 0.91352 1.73159 243 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 238 2.42794 2.88272 0.23894 2.68328 244 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 239 2.42794 2.88272 0.23894 2.68328 245 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 240 1.58372 1.09119 1.48390 1.46006 246 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 241 2.51103 0.32003 2.63402 2.11283 247 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 242 2.42794 2.88272 0.23894 2.68328 248 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 243 1.95304 0.84822 1.34839 1.77005 249 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 244 2.35771 2.16224 2.45792 0.35001 250 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 245 0.88629 1.93049 1.91301 1.22042 251 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 246 2.26910 0.50534 2.39291 1.59982 252 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 247 1.87065 1.93999 1.31902 0.83270 253 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 248 2.51103 0.32003 2.63402 2.11283 254 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 249 1.66503 1.65706 0.78701 1.80234 255 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 250 1.82408 0.53341 2.28516 1.89529 256 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 251 2.35771 2.16224 2.45792 0.35001 257 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 252 1.82343 2.54535 0.41320 2.31717 258 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 253 2.51103 0.32003 2.63402 2.11283 259 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 254 0.26989 2.66415 2.48073 2.48657 260 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 255 2.51103 0.32003 2.63402 2.11283 261 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 256 2.51103 0.32003 2.63402 2.11283 262 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 257 2.42794 2.88272 0.23894 2.68328 263 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 258 2.04767 1.98225 0.49249 2.10290 264 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 259 2.42794 2.88272 0.23894 2.68328 265 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 260 2.35771 2.16224 2.45792 0.35001 266 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 261 1.92817 1.44931 0.76909 1.85521 267 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 262 0.26989 2.66415 2.48073 2.48657 268 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 263 1.93164 1.47088 0.75459 1.86328 269 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 264 1.72591 0.73604 2.08970 1.51751 270 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 265 1.50714 0.91575 1.66486 1.66589 271 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 266 2.00592 0.73589 1.51063 1.79810 272 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 267 1.92999 1.46074 0.76136 1.85946 273 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 268 2.04425 1.97006 0.49729 2.09637 274 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 269 2.11686 1.63539 2.22737 0.55008 275 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 270 1.58395 1.43966 1.09478 1.49961 276 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 271 1.58202 1.21932 1.31421 1.46827 277 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 272 1.15193 1.57417 1.26319 1.63966 278 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 273 1.62673 1.45688 0.93690 1.72246 279 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 274 2.42794 2.88272 0.23894 2.68328 280 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 275 2.42794 2.88272 0.23894 2.68328 281 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 276 1.56353 1.30086 1.33874 1.36208 282 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 277 1.66330 1.69299 0.76854 1.81507 283 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 278 1.44217 1.32165 1.32753 1.46205 284 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 279 1.95913 0.83232 1.36984 1.77294 285 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 280 0.84492 1.71355 1.58339 1.68792 286 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 281 1.73517 0.72618 2.09738 1.52739 287 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 282 1.95248 0.84975 1.34635 1.76979 288 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 283 1.92586 1.43431 0.77937 1.84974 289 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 284 1.05437 1.10057 1.96608 1.72091 290 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 285 1.61165 1.21728 1.15437 1.66522 291 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 286 2.51103 0.32003 2.63402 2.11283 292 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 287 2.42794 2.88272 0.23894 2.68328 293 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 288 1.49098 1.80089 0.91221 1.56994 294 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 289 2.51103 0.32003 2.63402 2.11283 295 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 290 0.26989 2.66415 2.48073 2.48657 296 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 291 2.10268 0.76584 2.21856 1.19020 297 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 292 0.87998 1.93196 1.91399 1.22809 298 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 293 1.94309 0.87698 1.31070 1.76568 299 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 294 1.95201 0.85102 1.34467 1.76958 300 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 295 2.42794 2.88272 0.23894 2.68328 301 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 296 2.26840 0.50609 2.39218 1.59827 302 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 297 1.83960 2.55424 0.40682 2.32683 303 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 298 0.26989 2.66415 2.48073 2.48657 304 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 299 2.35771 2.16224 2.45792 0.35001 305 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 300 2.51103 0.32003 2.63402 2.11283 306 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 301 2.35771 2.16224 2.45792 0.35001 307 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 302 2.35771 2.16224 2.45792 0.35001 308 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 303 2.51103 0.32003 2.63402 2.11283 309 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 304 2.42794 2.88272 0.23894 2.68328 310 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 305 2.51103 0.32003 2.63402 2.11283 311 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 306 2.51103 0.32003 2.63402 2.11283 312 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 307 2.35771 2.16224 2.45792 0.35001 313 t - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 308 0.26989 2.66415 2.48073 2.48657 314 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 309 2.51103 0.32003 2.63402 2.11283 315 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 310 0.77112 1.96706 1.94119 1.37000 316 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 311 1.90823 1.28770 0.88930 1.80296 317 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 312 2.51103 0.32003 2.63402 2.11283 318 c - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 313 2.42794 2.88272 0.23894 2.68328 319 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 314 0.94864 1.53137 1.59220 1.64499 320 a - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04758 3.76224 3.76224 1.46634 0.26236 1.09861 0.40547
+ 315 1.54490 1.88715 0.73744 1.85261 321 g - - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02407 3.73874 * 1.46634 0.26236 0.00000 *
+//
diff --git a/hmmer/testsuite/2OG-FeII_Oxy_3.hmm b/hmmer/testsuite/2OG-FeII_Oxy_3.hmm
new file mode 100644
index 0000000..7af2c59
--- /dev/null
+++ b/hmmer/testsuite/2OG-FeII_Oxy_3.hmm
@@ -0,0 +1,327 @@
+HMMER3/f [3.1b2 | February 2015]
+NAME 2OG-FeII_Oxy_3
+ACC PF13640.1
+DESC 2OG-Fe(II) oxygenase superfamily
+LENG 100
+ALPH amino
+RF no
+MM no
+CONS yes
+CS no
+MAP yes
+DATE Tue Jun 23 14:47:53 2015
+NSEQ 172
+EFFN 9.330139
+CKSUM 1283029202
+GA 27.00 27.00
+TC 27.00 27.00
+NC 26.90 26.90
+STATS LOCAL MSV -9.5003 0.71755
+STATS LOCAL VITERBI -10.8403 0.71755
+STATS LOCAL FORWARD -3.4913 0.71755
+HMM A C D E F G H I K L M N P Q R S T V W Y
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 2.60828 4.43278 2.88684 2.72461 3.17389 2.70884 3.20927 3.10440 2.87795 2.51035 3.82812 3.07438 3.12534 3.18768 2.81088 2.64623 2.82185 2.71636 4.26413 3.26891
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.00000 *
+ 1 1.86444 3.26121 5.40713 4.79255 2.76762 3.00537 4.70743 2.21688 4.57987 2.01374 2.91205 4.45202 4.09468 3.26260 4.59197 3.16357 2.47892 2.26153 3.94196 3.24332 1 a - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 2 3.08936 4.25226 3.53248 2.49547 4.59223 2.45980 3.03148 3.82171 2.67863 3.09913 3.65748 2.98052 4.15367 2.16028 2.56623 2.44060 2.42719 2.78056 4.63215 4.04177 2 q - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 3 2.65892 4.11711 4.54749 4.81374 2.62989 4.18215 4.95998 1.85629 4.59615 1.34854 3.17242 4.79181 3.48746 4.72529 4.60047 3.93760 3.56335 1.73675 5.45060 3.06340 3 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 4 2.31424 4.08229 3.84173 3.28271 4.41382 3.20377 2.68782 3.12887 3.13103 2.83320 4.26293 2.12806 4.26276 2.82714 2.64524 2.16866 3.08995 2.84532 6.00016 2.80572 4 n - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 5 2.75562 3.64827 3.35707 2.68909 4.04014 3.79641 3.12559 3.24160 2.89495 2.83671 3.41462 3.14491 4.58378 2.37091 2.19357 2.81662 3.30740 2.30845 6.08810 2.50785 5 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 6 3.11487 4.87428 3.02978 3.16036 2.91874 4.36562 3.19664 3.20730 2.84015 2.72385 3.33619 3.11955 4.74643 3.65841 3.78871 3.18977 2.99596 2.44825 4.81319 1.33728 6 y - - -
+ 2.68608 4.42208 2.77511 2.73131 3.46361 2.40520 3.72502 3.29361 2.67748 2.69362 4.24697 2.90354 2.73727 3.18109 2.89808 2.37894 2.77514 2.98526 4.58484 3.61465
+ 0.08931 2.54987 4.91335 0.13496 2.06946 0.48576 0.95510
+ 7 2.61987 4.92197 3.21483 2.15968 4.92485 2.06315 3.26970 4.28577 2.79167 3.26667 4.89559 3.21684 2.45550 3.01189 2.21872 2.55073 2.73890 3.34217 6.28788 4.87738 8 g - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00410 5.89566 6.61801 0.61958 0.77255 0.46097 0.99607
+ 8 2.86945 5.06366 2.21399 2.54504 5.20957 2.67376 3.65768 4.69646 2.22204 3.76661 4.90351 2.96449 2.06969 2.43784 2.63696 2.38248 3.11103 4.25453 6.29510 4.48834 9 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 9 2.75910 5.86629 2.98984 2.78496 5.20735 0.86222 4.32457 4.69104 3.02348 4.16994 4.90871 3.05859 3.42732 3.27887 2.60159 3.05721 3.44423 3.99305 6.30132 4.63250 10 g - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.01056 5.90170 4.85753 0.61958 0.77255 0.48576 0.95510
+ 10 2.65400 3.80384 2.22806 2.65205 3.63513 1.78977 3.29431 4.65006 2.84118 3.97066 3.98265 3.33612 3.44320 2.42884 3.38254 2.71101 2.84713 3.48830 6.27326 3.06490 11 g - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00410 5.89524 6.61759 0.61958 0.77255 0.52954 0.88885
+ 11 3.11575 4.17976 2.87535 2.36387 2.22991 2.27828 2.75207 3.01544 2.81842 2.77616 4.58907 3.68976 4.60152 3.28015 2.70060 3.03395 3.46730 3.28678 3.96846 2.82115 12 f - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.02872 5.89524 3.66660 0.61958 0.77255 0.52954 0.88885
+ 12 3.43082 3.51116 4.28762 4.68771 2.26681 3.37398 2.48748 2.27573 4.49385 1.44308 3.54967 4.71883 4.95387 3.75923 3.86178 3.89614 3.57734 3.06893 5.44125 1.86049 13 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00420 5.87072 6.59306 0.61958 0.77255 0.67802 0.70851
+ 13 2.81866 5.83042 3.02862 2.62491 2.83804 2.55524 4.07006 4.65370 2.38996 3.17741 4.65714 2.98227 2.70518 3.35367 2.43687 1.93197 2.54513 3.58293 6.26584 4.01922 14 s - - -
+ 2.68658 4.42358 2.77535 2.73141 3.46470 2.40632 3.72353 3.29270 2.67833 2.69470 4.24444 2.90116 2.73760 3.18250 2.89591 2.37895 2.77543 2.98457 4.58301 3.61363
+ 0.18700 1.83154 4.56672 2.07647 0.13396 0.38196 1.14736
+ 14 2.50988 4.13309 4.99046 4.04931 3.34274 4.55412 4.86318 2.68919 2.92327 2.39221 2.88138 4.30023 1.58808 4.30636 3.22125 2.87862 3.66957 2.78776 2.05721 4.31658 31 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00411 5.89292 6.61526 0.61958 0.77255 0.54476 0.86746
+ 15 5.60618 7.18518 5.37318 5.35526 5.45537 5.65043 0.06430 6.77686 5.22193 5.97791 7.17143 5.72415 6.29727 4.84747 5.39336 5.64550 5.98668 6.42256 6.89021 5.36779 32 H - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00411 5.89292 6.61526 0.61958 0.77255 0.54476 0.86746
+ 16 2.40991 3.50303 3.39874 4.44040 2.21014 4.56175 3.76318 2.76857 4.09162 2.44182 3.62051 3.80617 3.90158 3.98612 3.56605 2.79101 2.13976 1.88019 4.79454 2.67179 33 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.01010 5.89292 4.92054 0.61958 0.77255 0.54476 0.86746
+ 17 4.79149 7.66066 0.14544 3.25520 6.85201 4.68333 4.60634 6.59464 4.77116 5.97740 6.99128 4.12718 5.42868 4.64902 5.60679 4.56004 5.14348 6.06945 8.05185 6.35396 34 D - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.02801 5.88694 3.69510 0.61958 0.77255 0.58269 0.81734
+ 18 2.58967 5.25544 3.22010 2.58043 3.18637 2.58563 4.02666 3.18461 2.52641 3.67935 4.83715 2.01678 4.25028 3.29259 2.86792 2.25647 2.36656 3.36628 6.23579 3.25151 35 n - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.42897 5.86317 1.06138 0.61958 0.77255 0.71896 0.66798
+ 19 2.58655 2.97934 2.66008 2.58766 3.18912 2.99515 3.63225 3.82226 2.81205 2.85148 4.48682 2.70054 3.49843 3.08073 2.68780 2.10696 3.13769 2.74134 5.90186 4.10395 36 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.10636 5.44066 2.33754 0.61958 0.77255 1.37439 0.29168
+ 20 2.51079 5.44786 3.11965 2.32105 4.15454 3.41155 2.67383 3.72590 2.57759 2.62091 4.50254 3.35879 3.59826 2.79228 2.79438 2.40261 2.56593 3.04044 4.15047 2.89810 37 e - - -
+ 2.68635 4.42030 2.77432 2.73156 3.46160 2.40481 3.71999 3.29579 2.67931 2.69518 4.24524 2.90529 2.73719 3.18178 2.89568 2.37869 2.77381 2.98663 4.58330 3.61598
+ 1.08012 0.41813 6.13363 2.01159 0.14361 1.58850 0.22845
+ 21 2.55251 5.56733 2.63381 2.52477 4.90086 2.96518 3.21563 4.37878 2.39044 3.08022 3.93591 2.91275 3.14530 2.97720 2.99972 2.28924 2.91852 3.22592 3.92316 2.46849 63 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00645 5.44343 6.16578 0.61958 0.77255 0.11459 2.22318
+ 22 2.77644 5.37161 2.57185 2.51302 5.19646 2.47072 3.26733 3.28487 2.38913 2.66723 4.12064 2.54588 2.62161 3.32114 2.81157 2.25474 3.16848 3.87552 5.67567 4.25299 64 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 23 2.81995 4.93687 2.86501 2.05201 4.23246 2.84028 3.31004 4.27223 2.60372 3.12852 4.89524 2.99066 2.75946 3.18149 2.84408 1.94265 2.67156 3.69733 4.08452 3.45080 65 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 24 3.35272 3.87671 2.84115 3.06760 2.25552 3.58955 3.73471 4.60150 2.04937 3.77903 4.85501 3.40436 4.30033 3.08269 1.28536 2.98297 3.11099 3.94138 6.25471 3.57979 66 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 25 2.47712 5.65500 2.77871 3.04797 4.70792 3.97172 4.16894 2.59110 2.57800 2.55050 4.38087 3.68320 4.00285 2.56738 1.96625 2.76334 2.53393 2.29049 5.10921 4.78178 67 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 26 2.37655 4.61649 5.43158 4.81532 2.40146 4.11503 4.96002 2.21599 4.59727 1.62653 3.64752 4.79240 4.98940 4.72604 4.60090 3.12840 3.02810 1.66272 3.07019 2.70589 68 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 27 2.05253 5.63928 4.10094 3.46661 5.27473 2.93621 4.77576 4.71693 3.58274 4.29984 4.62556 2.57292 4.77673 3.92343 4.03633 1.81012 0.95627 4.11926 6.50532 5.17723 69 t - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 28 2.06280 3.25046 5.40686 4.79230 2.19904 3.43783 4.33495 2.68220 4.57968 1.77414 2.50142 4.78136 4.34002 3.82207 4.59187 2.54679 3.10424 2.25008 5.45274 3.02312 70 l - - -
+ 2.68623 4.42230 2.77525 2.73129 3.46359 2.40518 3.72500 3.29359 2.67746 2.69333 4.24695 2.90352 2.73745 3.18152 2.89806 2.37872 2.77495 2.98524 4.58482 3.61508
+ 0.03149 3.86697 4.59770 0.90789 0.51647 0.48576 0.95510
+ 29 3.19552 4.53069 5.42238 4.80636 3.16260 4.61954 4.95360 1.76841 4.58906 1.39413 2.61847 3.84689 4.98313 4.03160 4.59384 3.64322 3.13782 1.54432 5.44458 3.46271 74 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.13454 5.89292 2.09456 0.61958 0.77255 0.54476 0.86746
+ 30 2.86270 3.81991 5.33846 4.72222 2.73187 4.53230 4.86658 2.13320 4.50411 1.19520 3.71858 4.69911 4.89564 4.63261 4.50749 3.84421 2.56611 2.09866 4.67361 2.30521 75 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00468 5.76305 6.48540 0.61958 0.77255 1.12733 0.39141
+ 31 3.15483 4.93278 4.46102 3.88949 2.90000 3.60704 4.65184 3.27874 3.81683 3.13724 3.76774 3.11861 4.75135 3.63757 4.10184 2.88286 3.27667 3.19743 5.52560 0.76364 76 y - - -
+ 2.68624 4.42231 2.77525 2.73129 3.46339 2.40518 3.72500 3.29348 2.67746 2.69354 4.24627 2.90352 2.73731 3.18152 2.89806 2.37892 2.77517 2.98488 4.58482 3.61509
+ 0.07193 2.68999 6.48540 0.16791 1.86711 0.22636 1.59666
+ 32 3.08091 4.33415 4.18294 4.44171 3.19106 4.62162 4.95414 2.60144 4.57363 0.70570 3.21584 4.22015 4.66248 4.70857 4.21751 3.93205 3.03037 2.52365 5.45374 3.28843 78 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 33 3.00271 3.83350 3.02013 2.53965 4.85514 3.97614 3.49632 4.69340 2.99646 4.16698 4.90201 1.34989 3.54548 2.24112 3.01651 2.15163 2.56591 4.12786 6.29386 4.88259 79 n - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.37755 5.90170 1.16562 0.61958 0.77255 0.48576 0.95510
+ 34 2.68417 4.55678 1.60622 2.53260 4.97941 3.17884 3.17568 3.51531 2.42927 3.31925 4.67737 2.92618 2.67494 3.06223 2.86644 2.69834 2.81561 3.80008 6.07003 4.66020 80 d - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00591 5.53006 6.25240 0.61958 0.77255 0.12999 2.10455
+ 35 2.32681 4.70239 2.23571 2.54067 5.19585 3.27684 4.10481 4.67976 2.20165 4.04199 4.89513 3.38022 1.56168 3.26174 3.03207 2.83814 3.38958 3.04557 5.23242 3.59959 81 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 36 2.83088 5.85946 2.06905 1.62400 3.90013 3.16033 3.90928 4.15660 2.94192 3.34504 4.90022 2.33886 3.99925 2.58160 3.13005 2.42360 2.98047 3.76865 5.06909 4.01414 82 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.44611 5.90170 1.02960 0.61958 0.77255 0.48576 0.95510
+ 37 2.82505 5.54835 2.66987 2.15162 4.86850 3.18319 4.07169 4.33740 2.81759 3.50233 4.14310 3.15773 2.87660 3.05320 3.30610 2.28453 3.33004 3.92559 1.53187 4.60063 83 w - - -
+ 2.68582 4.42296 2.77520 2.73182 3.46386 2.40460 3.72502 3.29465 2.67763 2.69446 4.24800 2.90330 2.73770 3.18159 2.89672 2.37856 2.77492 2.98574 4.58182 3.61435
+ 1.56803 0.38136 2.21995 1.06880 0.42071 1.73050 0.19504
+ 38 2.52539 5.54002 2.41190 1.93812 4.88257 3.01036 3.34226 3.17455 2.62758 3.50888 4.25152 2.55162 2.51549 2.79127 3.09608 2.74015 2.92367 3.34164 5.97422 4.56479 99 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00708 5.34926 6.07160 0.61958 0.77255 1.23538 0.34351
+ 39 2.10298 5.58670 2.64445 1.99844 2.23843 3.18736 3.59860 4.40030 2.72190 3.73345 4.16935 2.79345 3.72822 2.94420 3.07753 2.65924 2.81379 3.64261 6.02558 3.43075 100 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00625 5.47435 6.19669 0.61958 0.77255 0.31125 1.31875
+ 40 2.54045 4.53054 1.93861 1.80738 4.14225 3.15747 3.43513 4.15733 2.76008 3.51268 4.84003 3.15986 4.46991 2.98677 2.99768 2.53091 3.06792 3.87004 2.68132 3.67150 101 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00441 5.82252 6.54486 0.61958 0.77255 0.82102 0.57979
+ 41 3.27799 5.01970 3.25330 2.91729 5.04188 0.65908 4.10725 4.49154 3.13180 3.65762 4.81085 3.57856 4.55469 3.40577 3.21666 2.74002 3.46103 4.11107 6.21836 4.84215 102 G - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00437 5.83143 6.55378 0.61958 0.77255 0.82425 0.57726
+ 42 2.99359 5.42355 4.40172 3.31657 4.95404 0.42656 5.04415 4.34385 4.00124 3.69402 4.89317 4.33084 4.91846 4.31699 4.36228 3.40136 3.01384 4.01047 4.28042 5.09954 103 G - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00435 5.83607 6.55841 0.61958 0.77255 0.85135 0.55659
+ 43 2.39048 3.51118 2.49481 1.69038 4.57115 3.09589 3.65461 4.34314 2.85576 3.13330 4.31839 2.84870 3.99423 2.21795 2.69433 3.03535 2.99217 3.23272 5.43338 4.83809 104 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00435 5.83607 6.55841 0.61958 0.77255 0.78061 0.61272
+ 44 3.42815 4.46348 5.39316 4.77794 1.61270 4.59868 4.93226 2.59824 4.56286 1.04188 3.69036 4.76155 4.96091 4.69258 4.27125 3.55317 2.17294 2.79409 5.42320 4.06820 105 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00432 5.84297 6.56532 0.61958 0.77255 0.81956 0.58094
+ 45 2.60926 5.55248 3.22433 1.67108 3.11986 3.66049 4.35832 3.57955 3.04676 2.51939 3.79529 3.51005 4.54600 2.56110 2.32251 3.20205 3.25137 2.29312 6.05066 3.34734 106 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.01148 5.84297 4.76643 0.61958 0.77255 0.81956 0.58094
+ 46 2.90859 4.78444 3.93880 4.74999 1.72734 4.29800 4.91018 1.96082 3.55426 1.65781 3.56194 4.73704 4.94079 4.66905 4.54722 3.88799 3.37996 2.23989 4.86532 2.14259 107 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00783 5.83585 5.32351 0.61958 0.77255 0.85234 0.55585
+ 47 2.39042 3.29388 4.56452 3.64090 2.53586 4.49992 3.01278 2.98679 4.16987 2.43863 2.93256 2.76568 3.83471 3.71554 3.54858 3.11562 3.19612 2.56959 2.80572 2.04946 108 y - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.13804 5.83238 2.07140 0.61958 0.77255 0.86781 0.54451
+ 48 3.09407 5.73748 2.23099 2.18041 4.59934 3.16941 4.05679 4.56924 2.47260 3.10527 4.77804 2.88484 1.69076 3.09654 2.78049 2.77584 2.61971 4.12835 6.16992 4.34925 109 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.11033 5.69933 2.29152 0.61958 0.77255 1.30680 0.31565
+ 49 2.63325 5.64777 2.62847 2.53212 4.64538 2.94495 2.81273 3.58312 2.64067 2.98482 4.04541 2.49143 2.72674 3.09829 2.91635 2.23303 2.94598 3.26395 4.93320 3.47794 110 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.08755 5.59453 2.52432 0.61958 0.77255 1.52865 0.24440
+ 50 2.56314 5.61484 2.27235 2.31317 4.95279 3.16498 3.61173 2.74769 2.33491 2.59889 3.98674 3.13246 2.93344 2.97189 2.84733 2.56906 2.81637 3.83231 6.05181 3.87717 111 d - - -
+ 2.68569 4.42265 2.77509 2.73155 3.46372 2.40545 3.72534 3.29394 2.67767 2.69323 4.24663 2.90322 2.73695 3.18055 2.89755 2.37922 2.77555 2.98527 4.58517 3.61519
+ 1.30049 0.53600 1.94829 0.03150 3.47351 1.66057 0.21076
+ 51 2.38887 5.16977 2.20835 2.23659 4.87989 3.59573 4.00504 4.36221 2.62257 2.29228 4.58205 2.95534 3.39857 2.58485 2.04360 2.92151 2.99753 3.74080 4.87270 4.56803 113 r - - -
+ 2.68520 4.42127 2.77279 2.73011 3.46279 2.40644 3.72513 3.29451 2.67753 2.69377 4.24541 2.90164 2.73842 3.18242 2.89854 2.38058 2.77591 2.98464 4.58366 3.61367
+ 1.36297 0.32623 3.79596 2.06110 0.13618 0.24744 1.51776
+ 52 2.89182 4.91907 3.01400 2.29828 2.68256 3.20594 3.21826 3.85188 2.51269 3.45749 3.34278 2.37428 3.33701 2.92134 2.74294 2.27132 2.91647 3.32123 6.22696 3.59832 136 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.04194 5.81896 3.26747 0.61958 0.77255 0.92512 0.50498
+ 53 2.21636 5.33276 2.17138 1.96269 4.26186 2.47939 3.71369 4.60995 2.79537 3.29685 4.52258 2.92097 3.12486 3.29078 3.05138 2.29187 2.90631 3.65766 6.21550 3.70530 137 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00459 5.78161 6.50396 0.61958 0.77255 1.03011 0.44156
+ 54 2.46345 5.78979 2.36033 2.52764 4.56026 1.97598 3.31795 4.29757 2.68757 4.09545 4.83022 3.16528 2.70823 2.87072 2.55191 2.20418 3.01936 4.05393 6.22196 3.72916 138 g - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00458 5.78524 6.50758 0.61958 0.77255 1.05323 0.42895
+ 55 2.50775 3.34718 3.17943 2.57342 4.62923 3.35966 3.39521 3.48918 2.74177 2.87431 3.61717 2.77924 2.76795 3.33202 2.89727 2.42262 2.90897 2.18296 5.32712 3.42391 139 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00458 5.78524 6.50758 0.61958 0.77255 1.05323 0.42895
+ 56 2.23987 4.97109 3.48574 2.30945 4.09482 3.14876 3.36216 3.59417 2.75969 3.59418 4.39079 2.62064 2.73856 3.05587 2.74092 2.37932 2.83104 2.74653 4.14025 2.97387 140 a - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00458 5.78524 6.50758 0.61958 0.77255 1.05323 0.42895
+ 57 2.37928 5.78554 2.99329 2.29650 5.12959 2.57801 3.34189 3.74276 2.13715 3.15685 4.22709 3.22145 3.71951 2.87168 2.16933 2.63963 3.15448 2.57758 6.21883 4.55327 141 k - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00458 5.78524 6.50758 0.61958 0.77255 1.05323 0.42895
+ 58 2.48313 4.70831 2.60873 2.17841 5.11757 3.15170 3.10649 4.24073 2.44829 3.12153 4.52333 2.91593 3.29724 2.98389 2.92449 2.63570 2.52447 2.55676 3.82633 3.69694 142 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00957 5.78524 5.04268 0.61958 0.77255 1.05323 0.42895
+ 59 2.51690 4.75377 4.53022 4.16714 3.00019 3.40144 4.39128 1.86576 4.18523 1.72012 3.49791 4.25349 4.66583 4.59913 3.71755 3.08318 3.45997 1.58417 3.77169 3.07367 143 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00460 5.78026 6.50260 0.61958 0.77255 0.79347 0.60198
+ 60 2.03508 4.92283 2.26495 1.72925 3.74629 3.86202 3.02963 4.41606 2.66689 2.90061 4.66624 3.00863 3.46823 3.05187 2.82064 2.96827 2.88331 3.47104 5.67213 4.37006 144 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.42385 5.81168 1.07153 0.61958 0.77255 0.95459 0.48608
+ 61 2.79321 3.64609 2.06235 2.50884 4.03323 2.24998 3.42381 4.06796 2.62218 3.30595 4.56363 3.23985 3.07965 2.63353 2.66830 2.82759 2.91949 3.54101 3.76331 3.91364 145 d - - -
+ 2.68574 4.42257 2.77450 2.73120 3.46386 2.40515 3.72339 3.29386 2.67763 2.69378 4.24680 2.90374 2.73752 3.18166 2.89789 2.37878 2.77533 2.98550 4.58509 3.61535
+ 0.23218 1.80050 3.17053 1.11985 0.39501 1.81108 0.17850
+ 62 2.57270 4.08656 3.00614 2.18953 3.32179 2.87060 3.47923 4.11470 2.61745 2.48276 3.98150 3.34235 3.04031 2.63252 2.47740 2.72438 3.05801 2.96458 4.28845 4.30942 151 e - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.01202 5.35401 4.93078 0.61958 0.77255 1.61494 0.22177
+ 63 2.62274 4.44732 2.36671 2.18592 4.33647 2.79452 3.42256 3.19640 2.37197 3.09518 4.59896 2.89094 3.02315 2.64118 2.85077 2.52386 2.99767 3.54976 5.99232 3.98458 152 e - - -
+ 2.68597 4.42236 2.77530 2.73128 3.46364 2.40523 3.72505 3.29353 2.67746 2.69365 4.24635 2.90357 2.73699 3.18157 2.89805 2.37897 2.77491 2.98521 4.58487 3.61514
+ 0.11688 2.38290 4.01574 0.67707 0.70949 1.78696 0.18328
+ 64 2.66217 4.74670 3.26055 3.51214 3.29068 3.02851 3.57223 2.35757 3.45494 2.22733 3.85326 3.62239 3.81811 3.53020 2.54329 3.12502 2.54051 1.72600 4.54095 4.11460 155 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.03275 5.37838 3.58994 0.61958 0.77255 1.44594 0.26856
+ 65 2.77225 5.34097 3.28639 2.38471 3.49516 3.21301 2.64143 3.77379 2.41276 3.17232 4.03381 3.41676 3.75265 2.85837 2.45464 2.97652 3.06840 2.12879 3.26014 3.35699 156 v - - -
+ 2.68638 4.42279 2.77499 2.73146 3.46362 2.40592 3.72586 3.29083 2.67751 2.69288 4.24670 2.90431 2.73825 3.18169 2.89808 2.37945 2.77414 2.98345 4.58586 3.61488
+ 0.98955 0.46823 6.14413 1.01156 0.45201 0.11146 2.24931
+ 66 2.69246 4.94079 4.09871 4.22257 3.28040 3.92850 4.81899 2.99127 4.11725 2.27332 3.62403 3.41715 0.86663 4.35192 3.93964 3.48546 3.18729 3.01506 4.53650 4.18792 160 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 67 2.68080 5.84718 3.53157 2.35776 4.44678 3.45682 3.73467 4.01374 1.90776 2.97606 4.19687 2.73760 3.74136 2.51308 2.11044 2.90142 2.97771 2.52944 6.28335 3.61205 161 k - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 68 2.06417 4.87154 3.14297 2.22971 2.68486 3.15613 3.94774 4.45916 2.22281 3.69552 4.09003 3.02640 1.97095 3.21590 2.84964 3.05502 3.29978 3.44966 4.48219 4.57988 162 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 69 2.91349 5.86230 2.67524 2.94676 4.30836 1.07433 4.34812 4.67146 3.09504 4.16317 4.90993 1.76361 4.11763 3.45065 3.42216 2.73211 3.48273 4.24653 6.30533 4.42513 163 g - - -
+ 2.68640 4.42247 2.77522 2.73081 3.46376 2.40447 3.72517 3.29376 2.67763 2.69371 4.24614 2.90280 2.73762 3.18169 2.89811 2.37909 2.77535 2.98541 4.58499 3.61479
+ 0.25547 1.49558 6.62405 0.05385 2.94828 0.48576 0.95510
+ 70 2.59587 4.92219 2.27128 2.39403 5.20796 3.58714 4.13221 4.69450 2.54116 3.99219 4.33359 3.11754 4.51652 3.00100 1.48658 2.35369 2.33122 4.13224 6.29428 4.28075 165 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 71 2.40750 3.59508 5.42818 4.36314 2.93712 3.64344 4.96021 2.31551 4.59517 1.02348 2.57470 4.79140 4.98971 4.72473 4.60027 3.79978 2.75057 2.33972 5.45142 4.27565 166 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 72 2.37144 4.84136 5.32988 4.30432 3.46335 4.61263 4.94158 2.02323 4.52418 1.94567 3.65995 4.02180 4.97719 2.97282 4.56303 2.80216 3.03866 1.23151 5.46180 3.53245 167 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 73 2.70325 4.00204 5.43259 4.81630 2.56423 4.62639 3.92211 1.72167 4.19790 1.36883 3.17800 4.79315 4.98993 4.72681 4.60159 3.93825 3.56772 1.93950 5.45050 2.57606 168 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00947 5.90170 5.00728 0.61958 0.77255 0.48576 0.95510
+ 74 3.51238 4.89091 5.41570 4.81072 0.61207 4.67023 4.94714 3.32433 3.76650 2.49534 3.31205 4.80590 5.03261 4.73828 4.20763 3.74013 3.62722 3.06815 3.59678 2.98113 169 F - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00409 5.89633 6.61867 0.61958 0.77255 0.52233 0.89928
+ 75 2.73086 5.85363 2.68475 2.25225 4.53829 3.35715 3.69070 3.98454 2.13085 2.94150 4.55185 2.88840 2.67327 3.16909 2.34197 2.69791 2.45751 3.51816 4.67217 3.42519 170 k - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00409 5.89633 6.61867 0.61958 0.77255 0.46356 0.99167
+ 76 2.87659 4.88405 3.49318 3.05646 5.16392 1.97085 3.59085 4.64104 2.88191 4.13141 4.87556 2.76069 2.94367 3.24517 3.02114 1.27869 2.82581 3.08374 6.27190 4.86874 171 s - - -
+ 2.68621 4.42311 2.77364 2.73157 3.46369 2.40419 3.72518 3.29440 2.67786 2.69441 4.24553 2.90338 2.73784 3.18182 2.89844 2.37899 2.77489 2.98458 4.58344 3.61589
+ 0.92277 0.91243 1.60428 0.75153 0.63799 0.48576 0.95510
+ 77 2.52681 5.71655 2.05354 2.19606 5.05811 2.68028 3.89445 4.54161 2.57614 3.77540 4.06652 3.45813 3.42540 3.22985 2.25722 2.35650 2.62958 2.95314 4.40339 4.15220 182 d - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00509 5.67893 6.40127 0.61958 0.77255 0.20817 1.67168
+ 78 2.79104 4.13702 2.42909 2.19703 3.44794 3.82505 3.66462 4.08570 2.62513 3.55035 4.89046 2.26716 3.45574 3.03219 1.92068 2.69292 2.87849 3.89258 4.84470 3.30626 183 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00411 5.89246 6.61481 0.61958 0.77255 0.44889 1.01704
+ 79 2.36131 4.07766 3.29135 4.19554 3.00164 4.29918 3.99991 2.48441 4.09417 2.03516 2.81531 2.72540 4.88851 3.97901 3.71850 1.72322 2.68609 2.58076 5.55546 3.81440 184 s - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 80 2.49570 4.84979 5.27014 3.63537 2.62610 4.60424 4.92992 2.66350 3.94771 1.30681 3.21304 3.16844 2.73889 4.63856 3.85747 3.62157 3.48277 2.72851 2.56918 2.96008 185 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 81 4.74054 7.09369 3.85393 3.82200 6.18008 4.86165 0.24421 6.06638 3.52377 5.40266 6.36125 2.99069 5.47910 3.91371 4.02577 4.60628 4.99530 5.67425 7.21523 5.80510 186 H - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 82 2.44371 3.89784 3.62804 1.80968 4.45971 1.79894 3.94514 4.58694 3.07279 3.98986 4.28892 3.61550 4.53012 2.85604 1.79205 2.57032 3.58443 4.17642 6.24833 3.37647 187 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 83 2.08614 4.84657 5.29260 4.68544 3.23061 3.33384 3.29840 2.27137 4.49680 2.75376 3.84648 4.51250 4.97239 4.25770 3.48467 3.91325 3.39449 0.91855 5.46637 3.78720 188 v - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 84 2.52595 4.32262 3.19948 2.13638 3.34489 3.80945 4.32093 3.89557 2.38059 2.70907 3.77501 3.41695 2.82094 2.98051 2.57893 2.42111 1.97218 4.00466 6.26457 4.86397 189 t - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 85 2.57231 5.12599 2.93295 2.28969 4.29150 3.14779 3.92405 4.08622 2.27605 3.51754 4.19263 3.52714 1.38261 2.63773 3.00958 3.21904 3.05256 3.78454 6.28613 4.65218 190 p - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 86 2.43759 4.37430 5.29578 4.68842 3.40082 4.60786 4.43263 2.52891 3.99227 2.61148 2.82213 3.83370 3.15805 4.43195 3.66575 3.02885 2.82131 1.04701 5.46592 3.35869 191 v - - -
+ 2.68603 4.42045 2.77500 2.73066 3.46301 2.40506 3.72507 3.29398 2.67781 2.69346 4.24793 2.90406 2.73753 3.18123 2.89603 2.37931 2.77572 2.98557 4.58597 3.61571
+ 1.59323 0.78040 1.08321 0.94687 0.49095 0.48576 0.95510
+ 87 2.27375 5.59096 2.39366 2.37454 3.91716 1.91354 3.56530 3.29289 2.69322 3.40990 4.63481 2.93462 3.22042 3.17651 3.00903 2.51597 2.81647 3.63401 6.03096 4.41359 199 g - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00615 5.49045 6.21280 0.61958 0.77255 0.34712 1.22662
+ 88 2.06685 5.10621 2.52526 2.44230 4.07233 2.87176 3.82106 3.12395 2.35641 3.11930 4.83533 3.37289 3.06377 2.56314 2.97487 2.53891 2.59478 3.18985 6.22897 4.82093 200 a - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00688 5.81209 5.55700 0.61958 0.77255 0.43077 1.04984
+ 89 2.44741 5.11446 2.59293 2.38694 5.19097 2.39928 3.50428 4.25676 2.43227 3.77662 4.60263 2.72855 3.71099 2.27880 2.38084 2.63451 2.72505 3.96376 3.75210 4.19904 201 q - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.06971 5.87413 2.74066 0.61958 0.77255 0.65883 0.72869
+ 90 2.55021 5.80116 3.01245 2.32978 4.87601 2.03999 3.42273 4.17520 2.66964 3.58865 4.08375 3.14168 2.87922 2.70014 2.13887 2.49165 2.95504 3.64165 5.25800 3.79977 202 g - - -
+ 2.68594 4.42229 2.77523 2.73127 3.46357 2.40516 3.72498 3.29358 2.67744 2.69358 4.24693 2.90350 2.73728 3.18150 2.89804 2.37890 2.77523 2.98504 4.58480 3.61507
+ 0.02483 3.76945 6.53123 0.66036 0.72705 0.94105 0.49465
+ 91 3.23686 5.79272 3.18905 2.24770 5.13289 3.49891 4.11514 4.46384 2.24008 3.48439 4.19246 3.48043 3.08637 3.26188 1.36825 2.78020 2.31630 2.94773 5.49899 4.82036 205 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00446 5.81130 6.53364 0.61958 0.77255 0.38360 1.14383
+ 92 3.36352 5.54307 3.63401 3.21882 4.22196 3.68627 3.44699 3.45893 2.35674 3.16305 3.70507 3.73534 4.58827 3.22867 0.82118 3.32532 3.59453 3.71311 6.04874 3.62533 206 r - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00415 5.88352 6.60587 0.61958 0.77255 0.41851 1.07302
+ 93 2.64771 3.08212 5.35275 4.54753 2.74344 4.61563 3.78040 2.74663 3.02417 1.62615 2.72821 3.69096 4.97997 4.68412 3.15964 3.04509 2.95887 2.23124 3.56491 2.55740 207 l - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 94 1.39891 3.25807 5.30751 4.69944 3.93827 4.02909 4.93728 2.39108 4.50782 2.61012 2.92737 4.36729 4.97431 4.47830 4.30660 1.87364 2.38465 2.21988 5.46451 3.74727 208 a - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 95 2.67435 4.54347 5.33862 4.47287 2.98215 3.42631 4.94316 1.47673 3.21774 1.53971 3.37723 3.98458 4.01570 3.43806 4.56633 3.92160 3.68524 1.89587 5.46065 3.99717 209 i - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 96 2.17188 4.21829 4.09977 3.82040 2.68228 3.72722 4.06634 2.48109 3.76678 2.36224 3.46619 2.54134 3.90087 3.86254 3.53965 2.75487 1.72668 2.50854 5.61575 4.17033 210 t - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 97 2.24534 4.59323 4.75711 4.17574 2.72564 2.02385 3.22831 2.39849 3.52341 2.46751 2.97218 3.17655 4.29368 3.84016 4.30275 2.39584 2.38178 2.61571 5.56029 4.16247 211 g - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 98 2.92482 4.21421 4.32118 4.12917 2.14408 4.01062 4.91108 3.03724 4.41172 2.67680 3.98140 3.09438 4.95682 4.33553 4.50211 3.39283 3.56305 2.80489 1.29922 1.96459 212 w - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 99 2.91197 4.64402 5.36239 4.75080 1.75177 4.19368 4.07127 2.42943 4.54775 1.95642 3.09040 3.30607 4.98115 3.25766 3.76901 3.06766 3.35243 2.30778 4.33488 2.02234 213 f - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00407 5.90170 6.62405 0.61958 0.77255 0.48576 0.95510
+ 100 2.75027 4.88291 3.49137 2.22273 3.36123 3.00260 2.85107 4.11021 2.71201 2.86045 3.20889 3.46769 4.41776 3.32256 2.62053 2.70754 2.14499 2.70852 5.33344 2.81592 214 t - - -
+ 2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
+ 0.00274 5.90037 * 0.61958 0.77255 0.00000 *
+//
diff --git a/hmmer/testsuite/Makefile.in b/hmmer/testsuite/Makefile.in
index 50cb223..ebe4feb 100644
--- a/hmmer/testsuite/Makefile.in
+++ b/hmmer/testsuite/Makefile.in
@@ -54,13 +54,13 @@ distclean: clean
################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b3; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $URL: https://svn.janelia.org/eddylab/eddys/src/hmmer/branches/infernal/1.1/testsuite/Makefile.in $
-# SVN $Id: Makefile.in 4032 2012-05-09 12:54:46Z eddys $
+# SVN $URL$
+# SVN $Id$
################################################################
diff --git a/hmmer/testsuite/i10-duplicate-names.pl b/hmmer/testsuite/i10-duplicate-names.pl
index 5ec5b7e..cce89ea 100755
--- a/hmmer/testsuite/i10-duplicate-names.pl
+++ b/hmmer/testsuite/i10-duplicate-names.pl
@@ -7,7 +7,7 @@
# Example: ./i10-duplicate-names.pl .. .. tmpfoo
#
# SRE, Sun Dec 13 14:41:31 2009 [Yokohama, Japan]
-# SVN $Id: i10-duplicate-names.pl 3462 2011-01-11 13:52:50Z eddys $
+# SVN $Id$
BEGIN {
$builddir = shift;
diff --git a/hmmer/testsuite/i11-hmmalign-mapali.pl b/hmmer/testsuite/i11-hmmalign-mapali.pl
index f856f9d..62e3601 100755
--- a/hmmer/testsuite/i11-hmmalign-mapali.pl
+++ b/hmmer/testsuite/i11-hmmalign-mapali.pl
@@ -8,7 +8,7 @@
# Example: ./i11-hmmalign-mapali.pl .. .. tmpfoo
#
# SRE, Mon Dec 21 14:38:17 2009 [Janelia]
-# SVN $Id: i11-hmmalign-mapali.pl 3145 2010-02-03 16:55:42Z eddys $
+# SVN $Id$
$builddir = shift;
$srcdir = shift;
diff --git a/hmmer/testsuite/i12-delete-corruption.pl b/hmmer/testsuite/i12-delete-corruption.pl
index 2a695a8..d72b5af 100755
--- a/hmmer/testsuite/i12-delete-corruption.pl
+++ b/hmmer/testsuite/i12-delete-corruption.pl
@@ -11,7 +11,7 @@
# The hmmalign --allcol option is gone (as of 25 May 2010).
#
# SRE, Tue Mar 2 11:11:07 2010 [Janelia]
-# SVN $Id: i12-delete-corruption.pl 3277 2010-05-24 22:00:46Z eddys $
+# SVN $Id$
BEGIN {
diff --git a/hmmer/testsuite/i13-msa-integrity.pl b/hmmer/testsuite/i13-msa-integrity.pl
index 586f506..f68af8b 100755
--- a/hmmer/testsuite/i13-msa-integrity.pl
+++ b/hmmer/testsuite/i13-msa-integrity.pl
@@ -6,7 +6,7 @@
# Example: ./i13-msa-integrity.pl .. .. tmpfoo
#
# SRE, Tue Mar 9 09:19:22 2010 [Janelia]
-# SVN $Id: i13-msa-integrity.pl 3522 2011-04-04 15:46:19Z eddys $
+# SVN $Id$
$builddir = shift;
diff --git a/hmmer/testsuite/i17-stdin.pl b/hmmer/testsuite/i17-stdin.pl
index 3c525d7..ebeb2c3 100755
--- a/hmmer/testsuite/i17-stdin.pl
+++ b/hmmer/testsuite/i17-stdin.pl
@@ -301,7 +301,7 @@ if ($verbose) { print "$tag...\n"; }
`diff -b $tmppfx.out1 $tmppfx.out3 2>&1 > /dev/null`; if ($?) { die "FAIL: $prog results differ if $tag2 comes through stdin\n"; }
$output = `cat $arg1 $arg2 | $prog - - 2>&1`; if (! $?) { die "FAIL: $prog should have failed on double - -\n"; }
-if ($output !~ /^Either <hmmfile> or <seqdb>/) { die "FAIL: $prog didn't give expected error message for the - - case.\n"; }
+if ($output !~ /^Either <query hmmfile|alignfile> or <seqdb>/) { die "FAIL: $prog didn't give expected error message for the - - case.\n"; }
$output = `cat $arg2 | $prog $arg1b - 2>&1`; if (! $?) { die "FAIL: $prog should fail on multiquery $tag1, stdin $tag2.\n"; }
diff --git a/hmmer/testsuite/i18-nhmmer-generic.pl b/hmmer/testsuite/i18-nhmmer-generic.pl
index 6900f02..355a46d 100755
--- a/hmmer/testsuite/i18-nhmmer-generic.pl
+++ b/hmmer/testsuite/i18-nhmmer-generic.pl
@@ -14,9 +14,9 @@ BEGIN {
$builddir = shift;
$srcdir = shift;
$tmppfx = shift;
+ $verbose = shift; # if arg not given, defaults to false (zero)
}
-$verbose = 0;
# The test makes use of the following file:
#
@@ -55,7 +55,7 @@ if ($output !~ /MAXL 75/) {
# Create a roughly 4.5MB database against which to search
$database = "$tmppfx.fa";
-do_cmd ( "$builddir/easel/miniapps/esl-shuffle --seed 1 --dna -G -N 1 -L 4500000 -o $tmppfx.A" );
+do_cmd ( "$builddir/easel/miniapps/esl-shuffle --seed 33 --dna -G -N 1 -L 4500000 -o $tmppfx.A" );
do_cmd ( "$builddir/src/hmmemit -N 2 --seed 4 $tmppfx.hmm > $tmppfx.B " );
do_cmd ( "$builddir/src/hmmemit -N 1 --seed 3 $tmppfx.hmm >> $tmppfx.B" );
do_cmd ( "head -n 33000 $tmppfx.A > $database" );
@@ -72,43 +72,47 @@ $output = do_cmd($cmd);
if ($? != 0) { die "FAIL: nhmmer failed unexpectedly\n"; }
$expect =
q[
-Target sequences: 1 \(9000000 residues searched\)
-Residues passing MSV filter: 180964 \(0.0201\); expected \(0.02\)
-Residues passing bias filter: 153828 \(0.0171\); expected \(0.02\)
-Residues passing Vit filter: 6124 \(0.00068\); expected \(0.001\)
-Residues passing Fwd filter: 155 \(1.72e-05\); expected \(1e-05\)
-Total number of hits: 3 \(6.44e-06\)];
+Target sequences: 1 \(9000000 residues searched\)
+Residues passing SSV filter: 174175 \(0.0194\); expected \(0.02\)
+Residues passing bias filter: 145307 \(0.0161\); expected \(0.02\)
+Residues passing Vit filter: 18396 \(0.00204\); expected \(0.003\)
+Residues passing Fwd filter: 415 \(4.61e-05\); expected \(3e-05\)
+Total number of hits: 4 \(8e-06\)];
if ($output !~ /$expect/s) {
die "FAIL: nhmmer failed search test 1\n";
}
-$expect =
- q[0.054 16.4 1.2 random 4499980 4499999\s+
- 0.077 15.9 0.2 random 3299961 3299978\s+
- 0.16 15.0 0.6 random 1979941 1979960];
+$expect = q[
+ 0.45 13.6 5.2 random 4499980 4499998\s+
+ 1.7 11.8 4.4 random 1979941 1979960\s+
+ 1.8 11.7 4.2 random 3299961 3299978\s+
+ 8.2 9.7 2.3 random 2354832 2354818];
if ($output !~ /$expect/s) {
die "FAIL: nhmmer failed search test 2\n";
}
-$cmd = "$builddir/src/nhmmer --tformat fasta --toponly $tmppfx.hmm $database";
+$cmd = "$builddir/src/nhmmer --tformat fasta --watson $tmppfx.hmm $database";
$output = do_cmd($cmd);
if ($? != 0) { die "FAIL: nhmmer failed unexpectedly\n"; }
$expect =
-q[Target sequences: 1 \(4500000 residues searched\)
-Residues passing MSV filter: 91159 \(0.0203\); expected \(0.02\)
-Residues passing bias filter: 78403 \(0.0174\); expected \(0.02\)
-Residues passing Vit filter: 3386 \(0.000752\); expected \(0.001\)
-Residues passing Fwd filter: 155 \(3.44e-05\); expected \(1e-05\)
-Total number of hits: 3 \(1.29e-05\)];
+q[
+Target sequences: 1 \(4500000 residues searched\)
+Residues passing SSV filter: 84366 \(0.0187\); expected \(0.02\)
+Residues passing bias filter: 70869 \(0.0157\); expected \(0.02\)
+Residues passing Vit filter: 9070 \(0.00202\); expected \(0.003\)
+Residues passing Fwd filter: 228 \(5.07e-05\); expected \(3e-05\)
+Total number of hits: 3 \(1.27e-05\)];
if ($output !~ /$expect/s) {
die "FAIL: nhmmer failed search test 3\n";
}
$expect =
- q[0.027 16.4 1.2 random 4499980 4499999.+
- 0.039 15.9 0.2 random 3299961 3299978\s+
- 0.078 15.0 0.6 random 1979941 1979960];
+ q[
+ 0.22 13.6 5.2 random 4499980 4499998\s+
+ 0.86 11.8 4.4 random 1979941 1979960\s+
+ 0.89 11.7 4.2 random 3299961 3299978];
+
if ($output !~ /$expect/s) {
die "FAIL: nhmmer failed search test 4\n";
}
diff --git a/hmmer/testsuite/i20-fmindex-core.pl b/hmmer/testsuite/i20-fmindex-core.pl
index 0b3a1fc..de1b38f 100755
--- a/hmmer/testsuite/i20-fmindex-core.pl
+++ b/hmmer/testsuite/i20-fmindex-core.pl
@@ -52,7 +52,7 @@ if ($output !~ /$expect/s) {
}
print "ok\n";
-unlink "$tmppfx.fa";
+unlink "$tmppfx.fm";
unlink "$tmppfx.fm";
unlink "$tmppfx.test";
diff --git a/hmmer/testsuite/i9-optional-annotation.pl b/hmmer/testsuite/i9-optional-annotation.pl
index cf24dc1..ffdba62 100755
--- a/hmmer/testsuite/i9-optional-annotation.pl
+++ b/hmmer/testsuite/i9-optional-annotation.pl
@@ -8,7 +8,7 @@
# Example: ./i9-optional-annotation.pl .. .. tmpfoo
#
# SRE, Sun Nov 29 11:49:39 2009
-# SVN $Id: i9-optional-annotation.pl 3145 2010-02-03 16:55:42Z eddys $
+# SVN $Id$
BEGIN {
$builddir = shift;
diff --git a/hmmer/testsuite/testsuite.sqc b/hmmer/testsuite/testsuite.sqc
index 8a4f8e9..8a4f9fe 100644
--- a/hmmer/testsuite/testsuite.sqc
+++ b/hmmer/testsuite/testsuite.sqc
@@ -40,7 +40,7 @@
1 exercise p7_profile @src/p7_profile_utest@
1 exercise p7_tophits @src/p7_tophits_utest@
1 exercise p7_trace @src/p7_trace_utest@
-1 exercise p7_msvdata @src/p7_msvdata_utest@
+1 exercise p7_scoredata @src/p7_scoredata_utest@
1 exercise decoding @src/impl/decoding_utest@
1 exercise fwdback @src/impl/fwdback_utest@
@@ -137,10 +137,11 @@
1 prep rnddb @easel/miniapps/esl-shuffle@ -G --amino -L 100 -N 2 -o %RNDDB%
1 exercise search @src/hmmsearch@ !tutorial/globins4.hmm! %RNDDB%
1 exercise search/-h @src/hmmsearch@ -h
-1 exercise search/-o @src/hmmsearch@ -o %HMMSEARCH.out% !tutorial/globins4.hmm! %RNDDB%
-1 exercise search/-A @src/hmmsearch@ -A %HMMSEARCH.sto% !tutorial/globins4.hmm! %RNDDB%
-1 exercise search/--tblout @src/hmmsearch@ --tblout %HMMSEARCH.tbl% !tutorial/globins4.hmm! %RNDDB%
-1 exercise search/--domtblout @src/hmmsearch@ --domtblout %HMMSEARCH.dtbl% !tutorial/globins4.hmm! %RNDDB%
+1 exercise search/-o @src/hmmsearch@ -o %HMMSEARCH.out% !tutorial/globins4.hmm! %RNDDB%
+1 exercise search/-A @src/hmmsearch@ -A %HMMSEARCH.sto% !tutorial/globins4.hmm! %RNDDB%
+1 exercise search/--tblout @src/hmmsearch@ --tblout %HMMSEARCH.tbl% !tutorial/globins4.hmm! %RNDDB%
+1 exercise search/--domtblout @src/hmmsearch@ --domtblout %HMMSEARCH.dtbl% !tutorial/globins4.hmm! %RNDDB%
+1 exercise search/--pfamtblout @src/hmmsearch@ --pfamtblout %HMMSEARCH.dtbl% !tutorial/globins4.hmm! %RNDDB%
1 exercise search/--acc @src/hmmsearch@ --acc !tutorial/globins4.hmm! %RNDDB%
1 exercise search/--noali @src/hmmsearch@ --noali !tutorial/globins4.hmm! %RNDDB%
1 exercise search/--notextw @src/hmmsearch@ --notextw !tutorial/globins4.hmm! %RNDDB%
@@ -222,10 +223,11 @@
# phmmer xxxxxxxxxxxxxxxxxxxx
1 exercise phmmer @src/phmmer@ --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
1 exercise phmmer/-h @src/phmmer@ -h
-1 exercise phmmer/-o @src/phmmer@ -o %PHMMER.out% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
-1 exercise phmmer/-A @src/phmmer@ -A %PHMMER.sto% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
-1 exercise phmmer/--tblout @src/phmmer@ --tblout %PHMMER.tbl% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
-1 exercise phmmer/--domtblout @src/phmmer@ --domtblout %PHMMER.dtbl% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
+1 exercise phmmer/-o @src/phmmer@ -o %PHMMER.out% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
+1 exercise phmmer/-A @src/phmmer@ -A %PHMMER.sto% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
+1 exercise phmmer/--tblout @src/phmmer@ --tblout %PHMMER.tbl% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
+1 exercise phmmer/--domtblout @src/phmmer@ --domtblout %PHMMER.dtbl% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
+1 exercise phmmer/--pfamtblout @src/phmmer@ --pfamtblout %PHMMER.dtbl% --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
1 exercise phmmer/--acc @src/phmmer@ --acc --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
1 exercise phmmer/--noali @src/phmmer@ --noali --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
1 exercise phmmer/--notextw @src/phmmer@ --notextw --EmL 10 --EvL 10 --EfL 10 !tutorial/HBB_HUMAN! %RNDDB%
@@ -264,30 +266,57 @@
# nhmmer xxxxxxxxxxxxxxxxxxxx
1 prep rnddb @easel/miniapps/esl-shuffle@ -G --dna -L 10000 -N 2 -o %RNDDB%
-1 exercise nhmmer @src/nhmmer@ !tutorial/SNORD96.hmm! %RNDDB%
+1 exercise nhmmer @src/nhmmer@ !tutorial/MADE1.hmm! %RNDDB%
1 exercise nhmmer/-h @src/nhmmer@ -h
-1 exercise nhmmer/-o @src/nhmmer@ -o %nhmmer.out% !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/-A @src/nhmmer@ -A %nhmmer.sto% !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--tblout @src/nhmmer@ --tblout %nhmmer.tbl% !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--dfamtblout @src/nhmmer@ --dfamtblout %nhmmer.dtbl% !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--acc @src/nhmmer@ --acc !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--noali @src/nhmmer@ --noali !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--notextw @src/nhmmer@ --notextw !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--textw @src/nhmmer@ --textw 256 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/-E @src/nhmmer@ -E 0.01 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/-T @src/nhmmer@ -T 20 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--incE @src/nhmmer@ --incE 0.01 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--incT @src/nhmmer@ --incT 20 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--max @src/nhmmer@ --max !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--F1 @src/nhmmer@ --F1 0.03 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--F2 @src/nhmmer@ --F2 0.002 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--F3 @src/nhmmer@ --F3 0.0002 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--nobias @src/nhmmer@ --nobias !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--nonull2 @src/nhmmer@ --nonull2 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/-Z @src/nhmmer@ -Z 45000000 !tutorial/SNORD96.hmm! %RNDDB%
-1 exercise nhmmer/--seed @src/nhmmer@ --seed 42 !tutorial/SNORD96.hmm! %RNDDB%
+1 exercise nhmmer/-o @src/nhmmer@ -o %nhmmer.out% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/-A @src/nhmmer@ -A %nhmmer.sto% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--tblout @src/nhmmer@ --tblout %nhmmer.tbl% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--dfamtblout @src/nhmmer@ --dfamtblout %nhmmer.dtbl% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--acc @src/nhmmer@ --acc !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--noali @src/nhmmer@ --noali !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--notextw @src/nhmmer@ --notextw !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--textw @src/nhmmer@ --textw 256 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/-E @src/nhmmer@ -E 0.01 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/-T @src/nhmmer@ -T 20 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--incE @src/nhmmer@ --incE 0.01 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--incT @src/nhmmer@ --incT 20 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--max @src/nhmmer@ --max !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--F1 @src/nhmmer@ --F1 0.03 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--F2 @src/nhmmer@ --F2 0.002 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--F3 @src/nhmmer@ --F3 0.0002 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--nobias @src/nhmmer@ --nobias !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--nonull2 @src/nhmmer@ --nonull2 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/-Z @src/nhmmer@ -Z 45000000 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmer/--seed @src/nhmmer@ --seed 42 !tutorial/MADE1.hmm! %RNDDB%
+
+
+# nhmmscan xxxxxxxxxxxxxxxxxxxx
+1 prep rnddb @easel/miniapps/esl-shuffle@ -G --dna -L 10000 -N 2 -o %RNDDB%
+1 prep press @src/hmmpress@ -f !tutorial/MADE1.hmm!
+1 exercise nhmmscan @src/nhmmscan@ !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/-h @src/nhmmscan@ -h
+1 exercise nhmmscan/-o @src/nhmmscan@ -o %nhmmscan.out% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--tblout @src/nhmmscan@ --tblout %nhmmscan.tbl% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--dfamtblout @src/nhmmscan@ --dfamtblout %nhmmscan.dtbl% !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--acc @src/nhmmscan@ --acc !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--noali @src/nhmmscan@ --noali !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--notextw @src/nhmmscan@ --notextw !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--textw @src/nhmmscan@ --textw 256 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/-E @src/nhmmscan@ -E 0.01 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/-T @src/nhmmscan@ -T 20 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--incE @src/nhmmscan@ --incE 0.01 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--incT @src/nhmmscan@ --incT 20 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--max @src/nhmmscan@ --max !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--F1 @src/nhmmscan@ --F1 0.03 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--F2 @src/nhmmscan@ --F2 0.002 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--F3 @src/nhmmscan@ --F3 0.0002 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--nobias @src/nhmmscan@ --nobias !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--nonull2 @src/nhmmscan@ --nonull2 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/-Z @src/nhmmscan@ -Z 45000000 !tutorial/MADE1.hmm! %RNDDB%
+1 exercise nhmmscan/--seed @src/nhmmscan@ --seed 42 !tutorial/MADE1.hmm! %RNDDB%
-################################################################
+
+#################################################################
# Integration tests
################################################################
@@ -331,7 +360,8 @@
1 exercise stdin_pipes !testsuite/i17-stdin.pl! @@ !! %OUTFILES%
1 exercise nhmmer_generic !testsuite/i18-nhmmer-generic.pl! @@ !! %OUTFILES%
1 exercise hmmpgmd_ga !testsuite/i19-hmmpgmd-ga.pl! @@ !! %OUTFILES%
-# 1 exercise fmindex-core !testsuite/i20-fmindex-core.pl! @@ !! %OUTFILES%
+#comment out fmindex test until it's been returned to life
+#1 exercise fmindex-core !testsuite/i20-fmindex-core.pl! @@ !! %OUTFILES%
1 exercise brute-itest @src/itest_brute@
1 exercise hmmpress-itest !src/hmmpress.itest.pl! @src/hmmpress@ %MINIFAM.HMM% %TMPPFX%
@@ -399,13 +429,13 @@
#################################################################
# HMMER - Biological sequence analysis with profile HMMs
-# Version i1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 3.1b2; February 2015
+# Copyright (C) 2015 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# HMMER is distributed under the terms of the GNU General Public License
# (GPLv3). See the LICENSE file for details.
#
-# SVN $Id: testsuite.sqc 4320 2012-11-27 15:57:41Z nawrockie $
+# SVN $Id$
# SVN $URL$
################################################################
diff --git a/hmmer/tutorial/MADE1.hmm b/hmmer/tutorial/MADE1.hmm
new file mode 100644
index 0000000..905efd4
--- /dev/null
+++ b/hmmer/tutorial/MADE1.hmm
@@ -0,0 +1,265 @@
+HMMER3/f [3.1 | February 2013]
+NAME MADE1
+ACC DF0000629.2
+DESC MADE1 (MAriner Derived Element 1), a TcMar-Mariner DNA transposon
+LENG 80
+MAXL 426
+ALPH DNA
+RF yes
+MM no
+CONS yes
+CS no
+MAP yes
+DATE Tue Feb 19 20:33:41 2013
+NSEQ 1997
+EFFN 3.911818
+CKSUM 3015610723
+STATS LOCAL MSV -8.5786 0.71858
+STATS LOCAL VITERBI -9.3632 0.71858
+STATS LOCAL FORWARD -3.4823 0.71858
+HMM A C G T
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.24257 1.59430 1.62906 1.16413
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03960 3.94183 3.94183 1.46634 0.26236 0.00000 *
+ 1 2.69765 2.44396 2.81521 0.24089 1 t x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03960 3.94183 3.94183 1.46634 0.26236 1.09861 0.40547
+ 2 2.72939 2.37873 2.85832 0.24244 2 t x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03725 4.00179 4.00179 1.46634 0.26236 1.09861 0.40547
+ 3 0.16099 3.16370 2.87328 2.99734 3 a x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03604 4.03416 4.03416 1.46634 0.26236 1.09861 0.40547
+ 4 1.98862 2.42132 0.42649 2.10770 4 g x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03539 4.05203 4.05203 1.46634 0.26236 1.09861 0.40547
+ 5 1.96369 2.69532 0.36534 2.32099 5 g x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03764 4.06427 3.92372 1.46634 0.26236 1.09861 0.40547
+ 6 2.56994 2.11239 2.71946 0.30571 6 t x - -
+ 1.37159 1.41129 1.39124 1.37159
+ 0.03806 3.89715 4.07214 1.50442 0.25122 1.00714 0.45454
+ 7 2.58388 2.10353 2.64646 0.31253 12 t x - -
+ 1.38764 1.38524 1.38764 1.38465
+ 0.03494 4.03864 4.09125 1.40070 0.28293 1.09237 0.40860
+ 8 2.18552 2.70201 0.28821 2.64645 14 g x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03628 4.09157 3.96779 1.46634 0.26236 1.09861 0.40547
+ 9 2.16916 2.82142 0.28427 2.60854 15 g x - -
+ 1.38091 1.39033 1.38365 1.39033
+ 0.03566 4.00237 4.08886 1.38021 0.28972 1.01958 0.44745
+ 10 2.45517 2.15232 2.42886 0.34277 18 t x - -
+ 1.39065 1.39065 1.39065 1.37335
+ 0.03536 4.01212 4.09576 1.39554 0.28462 1.09775 0.40589
+ 11 2.10260 2.95484 0.28160 2.64222 21 g x - -
+ 1.36740 1.40555 1.40555 1.36740
+ 0.03843 3.92069 4.02468 1.44733 0.26814 1.09856 0.40549
+ 12 2.54740 0.30185 2.61355 2.21647 26 c x - -
+ 1.38748 1.38276 1.38748 1.38748
+ 0.03457 4.05446 4.09623 1.40847 0.28040 1.05496 0.42803
+ 13 0.28443 2.72003 2.32214 2.48149 28 a x - -
+ 1.38740 1.38740 1.38298 1.38740
+ 0.03441 4.05976 4.10001 1.41198 0.27926 1.09780 0.40587
+ 14 0.29412 2.55413 2.49679 2.35701 30 a x - -
+ 1.38194 1.39067 1.38194 1.39067
+ 0.03505 4.02482 4.10005 1.39522 0.28473 1.09929 0.40512
+ 15 0.18837 2.99710 2.82270 2.77556 33 a x - -
+ 1.39015 1.39472 1.37503 1.38539
+ 0.03725 3.97815 4.02618 1.37955 0.28994 1.10102 0.40426
+ 16 0.50816 2.05151 2.22111 1.82407 37 a x - -
+ 1.36727 1.38730 1.39683 1.39405
+ 0.04830 3.89881 3.61610 1.29026 0.32186 1.05306 0.42905
+ 17 2.11260 2.73141 0.29747 2.64152 41 g x - -
+ 1.36913 1.40376 1.40376 1.36913
+ 0.03705 3.93681 4.08299 1.44872 0.26771 1.07479 0.41759
+ 18 2.24459 1.90539 2.34054 0.43234 46 t x - -
+ 1.33632 1.42493 1.39937 1.38665
+ 0.04427 3.64574 4.06297 1.70501 0.20061 1.21309 0.35279
+ 19 0.44322 2.17202 2.18055 2.03175 57 a x - -
+ 1.41047 1.41471 1.36338 1.35797
+ 0.03970 3.81957 4.07540 1.65588 0.21186 1.22788 0.34660
+ 20 0.33340 2.42691 2.40824 2.25160 66 a x - -
+ 1.29389 1.44615 1.37917 1.43324
+ 0.04223 3.70146 4.09459 1.55158 0.23815 1.05880 0.42598
+ 21 2.50563 1.98543 2.69601 0.33746 74 t x - -
+ 1.39462 1.39462 1.42862 1.32990
+ 0.04184 3.80216 3.98177 1.80466 0.17976 1.00279 0.45705
+ 22 2.54484 1.97505 2.66483 0.33806 84 t x - -
+ 1.39134 1.39489 1.38662 1.37246
+ 0.03877 3.97504 3.95038 1.37620 0.29107 1.13932 0.38572
+ 23 2.10159 2.83856 0.29282 2.61635 88 g x - -
+ 1.39682 1.39682 1.35536 1.39682
+ 0.05046 3.75402 3.65808 1.08330 0.41321 1.13019 0.39004
+ 24 2.25298 0.61854 2.50691 1.29221 90 c x - -
+ 1.35803 1.49605 1.46737 1.24379
+ 0.06091 3.28322 3.83564 1.89752 0.16245 1.28788 0.32276
+ 25 1.27819 2.23285 0.76242 1.91259 106 g x - -
+ 1.29024 1.67349 1.68279 1.04597
+ 0.05752 3.44263 3.73311 2.58671 0.07825 1.26818 0.33037
+ 26 1.86925 2.58352 0.39466 2.33986 131 g x - -
+ 1.31084 1.49412 1.46666 1.29002
+ 0.04698 3.54257 4.07715 2.25245 0.11109 0.86163 0.54900
+ 27 2.38297 1.93394 2.39162 0.39800 151 t x - -
+ 1.33582 1.47359 1.44163 1.30411
+ 0.04951 3.48445 4.03783 2.15951 0.12260 1.21681 0.35122
+ 28 2.41717 2.17810 2.62774 0.32113 170 t x - -
+ 1.36805 1.48060 1.37439 1.32840
+ 0.04849 3.50958 4.05014 2.58370 0.07850 1.22399 0.34822
+ 29 2.57764 2.35132 2.56552 0.28512 194 t x - -
+ 1.43829 1.43458 1.24787 1.43829
+ 0.04667 3.56670 4.05428 2.49706 0.08591 1.23744 0.34267
+ 30 2.47248 2.07688 2.62257 0.33172 215 t x - -
+ 1.25120 1.52623 1.70635 1.15531
+ 0.08932 3.31524 3.01336 2.81842 0.06156 1.22909 0.34610
+ 31 2.25937 2.13157 2.02027 0.43957 248 t x - -
+ 1.18172 1.43522 1.72841 1.28150
+ 0.07936 2.93117 3.77395 2.46269 0.08906 0.60457 0.79034
+ 32 2.04508 2.84981 0.30490 2.58263 280 g x - -
+ 1.17665 1.66785 1.66218 1.16056
+ 0.05998 3.23615 3.96853 2.83684 0.06040 1.01952 0.44749
+ 33 2.45103 0.38098 2.56776 1.87147 317 c x - -
+ 1.24153 1.52524 1.60663 1.22783
+ 0.05538 3.39046 3.90294 2.73920 0.06680 1.18729 0.36391
+ 34 2.22082 0.36258 2.75077 2.02704 347 c x - -
+ 1.15008 1.62014 1.86511 1.10673
+ 0.06086 3.18178 4.04341 2.94504 0.05403 1.25991 0.33363
+ 35 0.27033 2.66664 2.52541 2.43767 388 a x - -
+ 1.24951 1.47565 1.41392 1.42074
+ 0.07123 3.00373 3.95552 3.13655 0.04440 1.28173 0.32512
+ 36 2.83107 2.41670 2.97197 0.22235 439 t x - -
+ 1.37071 1.57683 1.38637 1.23972
+ 0.05293 3.45216 3.91807 2.54402 0.08181 1.14651 0.38235
+ 37 2.52322 2.25084 2.45909 0.31611 465 t x - -
+ 1.26335 1.55077 1.59008 1.19965
+ 0.07504 3.13329 3.55006 3.08962 0.04659 1.13108 0.38962
+ 38 0.45807 2.30687 1.98940 2.03143 512 a x - -
+ 1.15472 1.67511 1.53797 1.26320
+ 0.09820 3.13076 2.99876 2.79197 0.06326 1.39915 0.28343
+ 39 2.37471 0.42180 2.44763 1.80427 550 c x - -
+ 1.23785 1.49058 1.48364 1.35502
+ 0.06081 3.19472 4.01643 2.41851 0.09327 0.94671 0.49105
+ 40 2.32826 1.95481 2.36781 0.40458 578 t x - -
+ 1.36586 1.46001 1.43000 1.29720
+ 0.05257 3.39673 4.03256 1.84862 0.17133 1.40979 0.27997
+ 41 2.68669 2.13935 2.81520 0.28200 592 t x - -
+ 1.34965 1.42793 1.45781 1.31633
+ 0.04735 3.57826 3.99988 2.09424 0.13144 1.22129 0.34934
+ 42 2.55904 2.16444 2.70859 0.29952 609 t x - -
+ 1.12072 1.61936 1.63578 1.26895
+ 0.07346 3.25910 3.42962 2.85641 0.05919 1.38363 0.28857
+ 43 1.99923 1.61027 2.26343 0.57851 646 t x - -
+ 1.32290 1.58747 1.61095 1.11018
+ 0.06656 3.08568 3.97944 2.44774 0.09046 0.75593 0.63407
+ 44 0.23887 2.79899 2.55209 2.60783 675 a x - -
+ 1.18557 1.50323 1.59070 1.31590
+ 0.05597 3.38637 3.88222 2.46900 0.08847 1.27945 0.32599
+ 45 0.29593 2.53488 2.53903 2.32335 701 a x - -
+ 1.08710 1.54222 1.59276 1.40430
+ 0.07539 2.94521 3.91062 1.91623 0.15918 1.22327 0.34852
+ 46 2.58352 2.40524 2.76700 0.25955 725 t x - -
+ 1.19685 1.58503 1.74852 1.14293
+ 0.06124 3.18279 4.02089 2.82961 0.06085 1.05474 0.42814
+ 47 2.13251 2.88788 0.29508 2.50964 764 g x - -
+ 1.20891 1.55463 1.68206 1.19000
+ 0.06526 3.12574 3.94910 2.41448 0.09367 1.10396 0.40280
+ 48 2.23841 2.99164 0.25118 2.72900 792 g x - -
+ 1.26330 1.55339 1.52606 1.24355
+ 0.05464 3.34968 4.01313 2.78872 0.06347 1.15133 0.38012
+ 49 2.57533 0.32900 2.64632 2.01501 824 c x - -
+ 1.35118 1.39828 1.40141 1.39516
+ 0.04340 3.79297 3.91506 1.59549 0.22666 1.20075 0.35806
+ 50 0.46433 2.04127 2.23437 2.00605 833 a x - -
+ 1.23062 1.36903 1.62282 1.36182
+ 0.05764 3.31530 3.92762 2.28791 0.10700 1.07910 0.41536
+ 51 0.27513 2.77017 2.28518 2.57549 853 a x - -
+ 1.27958 1.58726 1.46109 1.25394
+ 0.05750 3.30072 3.96214 2.60776 0.07656 1.25708 0.33475
+ 52 0.20149 2.86434 2.84551 2.69770 883 a x - -
+ 1.23645 1.62259 1.71174 1.10368
+ 0.05756 3.26729 4.02702 2.54508 0.08172 1.27391 0.32814
+ 53 0.26982 2.65833 2.50477 2.46835 911 a x - -
+ 1.36005 1.50358 1.48100 1.22550
+ 0.06921 3.37553 3.42118 2.36646 0.09851 1.27560 0.32748
+ 54 0.40022 2.19284 2.22687 2.20396 934 a x - -
+ 1.12070 1.60472 1.53213 1.35895
+ 0.05523 3.36752 3.94966 2.42917 0.09224 0.84774 0.55928
+ 55 2.11356 0.46400 2.46442 1.79955 960 c x - -
+ 1.23932 1.35913 1.50478 1.46331
+ 0.05187 3.47055 3.94022 2.35854 0.09933 1.12102 0.39445
+ 56 1.85868 0.79440 2.22069 1.25971 983 c x - -
+ 1.21951 1.50212 1.51138 1.34185
+ 0.06404 3.29054 3.69705 1.75742 0.18933 1.18410 0.36532
+ 57 1.33272 2.32720 0.71452 1.90215 999 g x - -
+ 1.12229 1.49343 1.56653 1.42255
+ 0.04920 3.46654 4.08749 2.17995 0.11996 1.31769 0.31164
+ 58 2.48337 0.43652 2.46331 1.68683 1017 c x - -
+ 1.34704 1.55461 1.38112 1.28222
+ 0.04823 3.61532 3.90311 2.20911 0.11631 1.00864 0.45368
+ 59 0.41659 2.44509 1.93972 2.20507 1034 a x - -
+ 1.38198 1.38198 1.39194 1.38932
+ 0.03641 3.98130 4.06929 1.35873 0.29704 1.31330 0.31325
+ 60 0.41612 2.39160 1.97116 2.21075 1037 a x - -
+ 1.03649 1.46430 1.57421 1.57557
+ 0.04769 3.52580 4.06641 2.32461 0.10294 0.84329 0.56263
+ 61 2.66264 2.12302 2.82746 0.28581 1056 t x - -
+ 1.36925 1.39635 1.38930 1.39048
+ 0.04097 3.97400 3.84718 1.39433 0.28502 1.12205 0.39395
+ 62 2.26510 2.13196 2.42551 0.37231 1060 t x - -
+ 1.37965 1.39147 1.39147 1.38264
+ 0.04082 3.91610 3.90805 1.24613 0.33914 0.95192 0.48776
+ 63 0.41244 2.25761 2.16787 2.12907 1062 a x - -
+ 1.34515 1.41203 1.41203 1.37753
+ 0.04054 3.77835 4.08203 1.30483 0.31638 1.11819 0.39582
+ 64 2.51464 0.37905 2.62296 1.82008 1068 c x - -
+ 1.39543 1.38753 1.39233 1.37008
+ 0.03854 3.90584 4.03535 1.36573 0.29463 1.13682 0.38689
+ 65 2.16380 2.11332 2.18714 0.42765 1073 t x - -
+ 1.38764 1.38471 1.38519 1.38764
+ 0.03575 4.05376 4.03073 1.40080 0.28289 1.03825 0.43707
+ 66 2.79349 2.39141 2.87271 0.23478 1075 t x - -
+ 1.37227 1.39101 1.39101 1.39101
+ 0.03597 4.01447 4.05827 1.39017 0.28639 1.06429 0.42308
+ 67 2.82488 2.47749 2.93179 0.21887 1078 t x - -
+ 1.38141 1.39112 1.38915 1.38353
+ 0.03661 3.99477 4.04370 1.35958 0.29675 1.13439 0.38804
+ 68 2.77679 2.30433 2.90694 0.24425 1081 t x - -
+ 1.37593 1.38989 1.45520 1.32825
+ 0.04447 3.68736 3.99242 1.76176 0.18843 0.98580 0.46703
+ 69 2.47698 3.17398 0.19595 2.95437 1093 g x - -
+ 1.38264 1.38264 1.39734 1.38264
+ 0.05358 3.96553 3.40487 1.40348 0.28202 1.03112 0.44100
+ 70 2.84327 0.27906 2.97336 2.00890 1097 c x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03412 4.08811 4.08811 1.46634 0.26236 0.69006 0.69625
+ 71 0.21870 2.83638 2.69251 2.65798 1098 a x - -
+ 1.37446 1.37942 1.39640 1.39509
+ 0.03670 3.93983 4.09935 1.41905 0.27700 1.10002 0.40476
+ 72 2.35233 0.46085 2.23804 1.78715 1103 c x - -
+ 1.38536 1.38781 1.38781 1.38421
+ 0.03493 4.03822 4.09272 1.39310 0.28542 1.09638 0.40658
+ 73 2.57111 0.32543 2.74124 1.98892 1105 c x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03381 4.09688 4.09688 1.46634 0.26236 1.09626 0.40664
+ 74 0.27014 2.61416 2.53262 2.47636 1106 a x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03461 4.09267 4.05587 1.46634 0.26236 1.09748 0.40603
+ 75 0.52873 2.16549 1.91736 1.90409 1107 a x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03426 4.08396 4.08396 1.46634 0.26236 1.07423 0.41788
+ 76 2.33134 0.38082 2.65861 1.90055 1108 c x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03466 4.07266 4.07266 1.46634 0.26236 1.09861 0.40547
+ 77 2.20588 0.45134 2.35553 1.84373 1109 c x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03550 4.04912 4.04912 1.46634 0.26236 1.09861 0.40547
+ 78 2.69018 2.22054 2.82311 0.26898 1110 t x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03711 4.00561 4.00561 1.46634 0.26236 1.09861 0.40547
+ 79 0.16248 3.15867 2.86159 2.98963 1111 a x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04048 3.92018 3.92018 1.46634 0.26236 1.09861 0.40547
+ 80 0.17484 3.04770 2.86638 2.88183 1112 a x - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02045 3.90014 * 1.46634 0.26236 0.00000 *
+//
diff --git a/hmmer/tutorial/MADE1.out b/hmmer/tutorial/MADE1.out
new file mode 100644
index 0000000..b85ee5f
--- /dev/null
+++ b/hmmer/tutorial/MADE1.out
@@ -0,0 +1,118 @@
+# nhmmer :: search a DNA model or alignment against a DNA database
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
+# Freely distributed under the GNU General Public License (GPLv3).
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+# query HMM file: MADE1.hmm
+# target sequence database: dna_target.fa
+# hits tabular output: MADE1.tblout
+# number of worker threads: 2
+# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+
+Query: MADE1 [M=80]
+Accession: DF0000629.2
+Description: MADE1 (MAriner Derived Element 1), a TcMar-Mariner DNA transposon
+Scores for complete hits:
+ E-value score bias Sequence start end Description
+ ------- ------ ----- -------- ----- ----- -----------
+ 8.4e-11 39.0 7.4 humanchr1/239220001-239550000 302390 302466
+ 7.8e-08 29.5 6.0 humanchr1/239220001-239550000 302466 302390
+ 8.4e-08 29.4 8.3 humanchr1/239220001-239550000 174456 174498
+ 5.6e-06 23.6 7.0 humanchr1/239220001-239550000 174493 174456
+ ------ inclusion threshold ------
+ 1.7 6.0 6.7 humanchr1/239220001-239550000 304074 304104
+
+
+Annotation for each hit (and alignments):
+>> humanchr1/239220001-239550000
+ score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc
+ ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ----
+ ! 39.0 7.4 8.4e-11 4 80 .] 302390 302466 .. 302387 302466 .. 330000 0.87
+
+ Alignment:
+ score: 39.0 bits
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxxxxxxxxxxxxxxxxx RF
+ MADE1 4 ggttggtgcaaaagtaattgcggtttttgccattacttttaatggc....aaaaaccgcaattacttttgcacc 73
+ ggt ggtgcaaaa aattg ggtttttgccatt cttttaat gc a aaa g a t ctttt cacc
+ humanchr1/239220001-239550000 302390 GGTCGGTGCAAAATCAATTGTGGTTTTTGCCATTGCTTTTAATTGCttttA-AAA--GTA-ATGCTTTTACACC 302459
+ 899******************************************955533.443..334.4689********* PP
+
+ xxxxxxx RF
+ MADE1 74 aacctaa 80
+ aa ctaa
+ humanchr1/239220001-239550000 302460 AATCTAA 302466
+ **99986 PP
+
+>> humanchr1/239220001-239550000
+ score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc
+ ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ----
+ ! 29.5 6.0 7.8e-08 1 77 [. 302466 302390 .. 302466 302387 .. 330000 0.74
+
+ Alignment:
+ score: 29.5 bits
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx................xxxxxxxxxxxxxxx RF
+ MADE1 1 ttaggttggtgcaaaagtaattgcggtttttgccattactttt................aatggcaaaaaccgc 58
+ ttag ttggtg aaaag cattactttt aatggcaaaaacc c
+ humanchr1/239220001-239550000 302466 TTAGATTGGTGTAAAAG----------------CATTACTTTTaaaagcaattaaaagcAATGGCAAAAACCAC 302409
+ 68899999999999998................5667777776222222222222222268************* PP
+
+ xxxxxxxxxxxxxxxxxxx RF
+ MADE1 59 aattacttttgcaccaacc 77
+ aatt ttttgcacc acc
+ humanchr1/239220001-239550000 302408 AATTGATTTTGCACCGACC 302390
+ ***************9998 PP
+
+>> humanchr1/239220001-239550000
+ score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc
+ ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ----
+ ! 29.4 8.3 8.4e-08 1 43 [. 174456 174498 .. 174456 174518 .. 330000 0.93
+
+ Alignment:
+ score: 29.4 bits
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx RF
+ MADE1 1 ttaggttggtgcaaaagtaattgcggtttttgccattactttt 43
+ ttaggtt gtgcaaaagtaattg ggtttttg cattactttt
+ humanchr1/239220001-239550000 174456 TTAGGTTAGTGCAAAAGTAATTGTGGTTTTTGTCATTACTTTT 174498
+ 589************************************9975 PP
+
+>> humanchr1/239220001-239550000
+ score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc
+ ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ----
+ ! 23.6 7.0 5.6e-06 43 80 .] 174493 174456 .. 174513 174456 .. 330000 0.93
+
+ Alignment:
+ score: 23.6 bits
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx RF
+ MADE1 43 taatggcaaaaaccgcaattacttttgcaccaacctaa 80
+ taatg caaaaacc caattacttttgcac aacctaa
+ humanchr1/239220001-239550000 174493 TAATGACAAAAACCACAATTACTTTTGCACTAACCTAA 174456
+ 689********************************985 PP
+
+>> humanchr1/239220001-239550000
+ score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to sq len acc
+ ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- ----
+ ? 6.0 6.7 1.7 42 72 .. 304074 304104 .. 304053 304109 .. 330000 0.87
+
+ Alignment:
+ score: 6.0 bits
+ xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx RF
+ MADE1 42 ttaatggcaaaaaccgcaattacttttgcac 72
+ t a tgg aaaaa ca tta ttttgca
+ humanchr1/239220001-239550000 304074 TAAGTGGGAAAAAATACACTTATTTTTGCAT 304104
+ 55779************************85 PP
+
+
+
+Internal pipeline statistics summary:
+-------------------------------------
+Query model(s): 1 (80 nodes)
+Target sequences: 1 (660000 residues searched)
+Residues passing SSV filter: 61658 (0.0934); expected (0.02)
+Residues passing bias filter: 45802 (0.0694); expected (0.02)
+Residues passing Vit filter: 2443 (0.0037); expected (0.001)
+Residues passing Fwd filter: 2217 (0.00336); expected (1e-05)
+Total number of hits: 5 (0.000403)
+# CPU time: 0.05u 0.01s 00:00:00.06 Elapsed: 00:00:00.33
+# Mc/sec: 160.00
+//
+[ok]
diff --git a/hmmer/tutorial/MADE1.sto b/hmmer/tutorial/MADE1.sto
new file mode 100644
index 0000000..c3dccf1
--- /dev/null
+++ b/hmmer/tutorial/MADE1.sto
@@ -0,0 +1,4021 @@
+# STOCKHOLM 1.0
+#=GF ID MADE1
+#=GF AC DF0000629.2
+#=GF DE MADE1 (MAriner Derived Element 1), a TcMar-Mariner DNA transposon
+#=GF AU Finn RD, Hubley R, Jones T, Jurka J, Smit A, Wheeler T
+#=GF SE Repbase
+#=GF GA 15.98;
+#=GF TC 32.00;
+#=GF NC 15.90;
+#=GF BM hmmbuild --hand --maxinsertlen 10 HMM.ann SEED.ann
+#=GF SM nhmmer -Z 3102 --dfamtblout DFAMOUT -E 100 --noali HMM.ann
+#=GF SM dfamseq
+#=GF CT Type; DNA Transposon;
+#=GF CT Class; Cut and Paste;
+#=GF CT Superfamily; TcMar-Mariner;
+#=GF MS TaxId:9606 TaxName:Homo sapiens
+#=GF RN [1]
+#=GF RM 8643651
+#=GF RT Tiggers and DNA transposon fossils in the human genome.
+#=GF RA Smit AF, Riggs AD;
+#=GF RL Proc Natl Acad Sci U S A 1996;93:1443-1448
+#=GF DR Repbase; MADE1;
+#=GF CC Resembles an internal deletion product of Mariner1; has 37 bp
+#=GF CC TIRs and a TA target site.
+#=GF SQ 1997
+#=GS H.sapiens_13.1/49567006-49566901 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_8.1/107923792-107923714 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/35544547-35544476 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/33053357-33053450 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/137095299-137095226 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_19.1/19100550-19100497 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_1.1/164701792-164701870 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/68038940-68038866 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_Y.1/16255032-16255111 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_11.1/78684849-78684770 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_9.1/102803629-102803549 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_7.1/70331740-70331819 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_12.1/65806432-65806356 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_4.1/140063757-140063828 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/145673253-145673319 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/75316483-75316561 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/58241727-58241653 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_10.1/9215317-9215239 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/5959133-5959195 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/123101247-123101157 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/35165291-35165214 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/178351842-178351911 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/109325838-109325779 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/108039241-108039320 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/11149279-11149387 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_9.1/76348944-76348881 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/13679946-13679866 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_3.1/50865115-50865038 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/142708263-142708322 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_14.1/99520157-99520073 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_8.1/49894414-49894352 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_22.1/33739050-33738973 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_10.1/28741187-28741252 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_18.1/71734515-71734437 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_7.1/96920909-96920830 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_6.1/140981762-140981839 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_9.1/73732275-73732334 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/111001521-111001446 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_18.1/33907333-33907408 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_10.1/109566953-109566884 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_1.1/179679390-179679469 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/157390677-157390755 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/211802792-211802859 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_20.1/8603541-8603488 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_9.1/93793923-93793841 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_11.1/76241565-76241634 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/133793823-133793745 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/159458164-159458225 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_X.1/129332388-129332309 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_5.1/66760434-66760355 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/62116231-62116153 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_20.1/9534057-9533996 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_3.1/94020912-94020991 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/168717118-168717039 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_21.1/34963270-34963347 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_11.1/130743555-130743492 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/103112987-103113055 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/16530066-16530000 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/199584406-199584328 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/112277369-112277443 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/5239389-5239312 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/15469390-15469317 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/97258936-97258995 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/67700789-67700711 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/120466487-120466408 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/183325541-183325620 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/113826669-113826741 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_9.1/14878575-14878655 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_X.1/24671328-24671251 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_9.1/18507503-18507562 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_5.1/85696277-85696354 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/227603020-227602944 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/145097997-145097895 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/16556446-16556522 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_12.1/43712804-43712881 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_9.1/7783782-7783704 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/67467756-67467826 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/7944476-7944565 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/105870337-105870416 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_12.1/93112104-93112186 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_11.1/87185547-87185458 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/51926423-51926502 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_13.1/93064224-93064137 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_4.1/184034469-184034531 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/45513677-45513583 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_9.1/104650141-104650062 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/68266302-68266393 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/201450273-201450196 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/94318145-94318222 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/28599864-28599787 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_6.1/132825302-132825242 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/75668274-75668326 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_17.1/65467610-65467689 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_2.1/40084937-40085016 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/21149898-21149966 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/39334003-39333910 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/93468166-93468090 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/113239604-113239525 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_10.1/118343486-118343564 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/113390680-113390769 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/36863111-36863193 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/18445901-18445981 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/10018988-10018929 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/119639026-119639108 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/8450038-8450117 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/57168871-57168769 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/142166360-142166436 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_17.1/19300760-19300695 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_8.1/4383131-4383205 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_9.1/75906141-75906041 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_18.1/49446508-49446584 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_5.1/27986390-27986288 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/63278417-63278355 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_10.1/29070427-29070485 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_12.1/33194672-33194751 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/35696549-35696474 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/111050175-111050123 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/106323847-106323770 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/198518364-198518435 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/73380886-73380810 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/77834126-77834062 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/31315697-31315776 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_21.1/34559248-34559333 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_6.1/153177803-153177876 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/8946935-8946859 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/70880041-70880120 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_9.1/114950996-114950924 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/180685010-180684936 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/96906805-96906869 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_19.1/37871674-37871616 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_5.1/78202463-78202524 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_22.1/22242843-22242781 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_1.1/18916588-18916699 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_9.1/37068668-37068747 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/19206718-19206772 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_19.1/56355102-56355179 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_8.1/62548174-62548122 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/93465898-93465957 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_20.1/37145281-37145200 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_8.1/39613629-39613705 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_9.1/113535321-113535241 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_8.1/120739328-120739250 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/18530220-18530296 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/151604386-151604469 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_15.1/94126227-94126316 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_14.1/98798076-98798014 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_22.1/34855547-34855625 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_X.1/16091228-16091289 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_13.1/88383262-88383184 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_6.1/136299032-136298955 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_19.1/38544602-38544525 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_7.1/104212624-104212699 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/18862138-18862066 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_20.1/37774282-37774352 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_17.1/65596860-65596926 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_6.1/37770434-37770356 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/7946507-7946585 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_1.1/242637446-242637514 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/136584670-136584591 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_7.1/96169277-96169197 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_20.1/55035410-55035334 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_1.1/58940108-58940022 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/135737563-135737641 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/8028613-8028545 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_21.1/22973756-22973829 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_9.1/101475094-101475017 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_X.1/6437632-6437699 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_3.1/174693253-174693326 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/108288464-108288387 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_X.1/134620705-134620633 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_17.1/13403574-13403646 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_2.1/19846337-19846267 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/51170432-51170511 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/139967180-139967082 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/86639093-86639151 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_9.1/46742299-46742222 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_8.1/72382788-72382709 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_13.1/106517268-106517187 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_10.1/31940286-31940360 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_2.1/115629064-115628966 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_17.1/63353454-63353530 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_3.1/101876312-101876231 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/147222821-147222751 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/121937526-121937447 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_5.1/3913164-3913092 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/197750756-197750681 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/59575566-59575489 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_10.1/120312913-120312835 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_5.1/166290303-166290225 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_11.1/3428118-3428051 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/71595564-71595486 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_14.1/63143275-63143196 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_8.1/51726349-51726414 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/59930276-59930395 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/176670402-176670321 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/13108636-13108715 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/36515990-36515911 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/172004049-172003971 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_17.1/51614882-51614960 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_3.1/38064467-38064372 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_X.1/149435154-149435247 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/112590909-112590830 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_3.1/4821494-4821562 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/194474471-194474416 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/109197177-109197099 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_7.1/118083993-118083934 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_10.1/10057471-10057541 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/9169954-9170021 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/40243672-40243770 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/177723149-177723225 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/54148689-54148766 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/103229254-103229326 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/133586397-133586470 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/32135553-32135678 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_13.1/21187976-21187915 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_8.1/12038264-12038197 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/78886479-78886539 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/56002911-56002844 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_3.1/189745381-189745467 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_14.1/29896119-29896195 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_2.1/148224279-148224200 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/61110381-61110460 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_5.1/19446772-19446835 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/53365959-53366028 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/149554886-149554960 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/19689499-19689435 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_8.1/15379468-15379395 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_5.1/176701407-176701483 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_17.1/51948186-51948107 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_4.1/129325867-129325947 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_NC.49/74886-74808 DE GL000219.1 dna:supercontig supercontig:GRCh37:GL000219.1:1:179198:1
+#=GS H.sapiens_1.1/204622312-204622234 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_20.1/38188414-38188335 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_2.1/165484586-165484523 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/4493184-4493106 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/213291075-213290996 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/120259931-120259856 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/121002722-121002800 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/13888230-13888295 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_18.1/64024969-64025049 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_10.1/14482909-14482844 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/133915829-133915925 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_20.1/41663327-41663252 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_20.1/12766828-12766762 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_8.1/112498156-112498234 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_21.1/14719716-14719638 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_15.1/53610103-53610161 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_10.1/117898738-117898685 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_X.1/98454339-98454418 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_9.1/32764378-32764299 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_12.1/10267456-10267542 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_6.1/69203333-69203409 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_7.1/110288509-110288611 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/189625704-189625625 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/277674-277732 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_21.1/45866831-45866894 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_X.1/71012024-71012090 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_15.1/50893962-50894040 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_4.1/128419287-128419192 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_14.1/102137305-102137368 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_17.1/71311939-71312019 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_20.1/5875896-5875826 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_9.1/126347736-126347665 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/117850350-117850430 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/175956513-175956575 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_19.1/11334803-11334869 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_20.1/21244871-21244795 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_9.1/109847472-109847361 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/194855781-194855861 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/42116085-42116157 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/245220579-245220649 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/180339058-180339122 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/113226309-113226246 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/71587679-71587601 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_14.1/37289002-37289101 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_3.1/77975857-77975936 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/164716164-164716216 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_9.1/120012883-120012962 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_12.1/5709840-5709903 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_17.1/2978366-2978434 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_8.1/25003980-25003900 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_14.1/39009284-39009358 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_4.1/25213610-25213663 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/18799421-18799496 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/23596786-23596700 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/104956076-104956156 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_7.1/19686900-19686976 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_8.1/68965658-68965595 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/4086165-4086087 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/78322095-78322174 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/6507148-6507069 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/113494968-113494886 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/241404677-241404602 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/101051187-101051108 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/78644185-78644112 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/118383099-118383022 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_12.1/91518510-91518608 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/77268987-77268908 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/99722206-99722120 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_5.1/68186046-68185968 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/26983185-26983108 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/168537191-168537107 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/3888274-3888339 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/106009729-106009802 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/34906820-34906888 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/105496681-105496602 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_1.1/81508747-81508668 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/78413612-78413530 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/209957275-209957351 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/55277736-55277842 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_18.1/62552228-62552164 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_12.1/68094346-68094238 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_17.1/40551104-40551033 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_13.1/74885117-74885193 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/39724692-39724614 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_17.1/68403991-68404056 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_8.1/4238642-4238588 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_8.1/37487215-37487147 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/127232307-127232244 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/216143949-216143870 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/28332263-28332334 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_12.1/127880334-127880401 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_22.1/33306690-33306616 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_2.1/38390896-38390819 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/4662512-4662437 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/173197377-173197296 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/17446628-17446574 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/34267045-34267118 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/42562918-42562837 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_18.1/66188212-66188293 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_X.1/97378609-97378551 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/8603107-8603048 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/108839427-108839506 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/45697973-45697896 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_22.1/30340283-30340204 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_18.1/65215489-65215423 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_16.1/26216053-26215995 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_2.1/157871767-157871689 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/95360454-95360571 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/72693874-72693938 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/149165262-149165186 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_12.1/27695349-27695424 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_4.1/156287676-156287599 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_13.1/36068572-36068650 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_2.1/181481849-181481921 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/89066926-89066844 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/87274282-87274227 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/107766190-107766115 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/87051050-87051111 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_1.1/79065250-79065168 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/63346203-63346280 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/129102991-129103071 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/114202364-114202288 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_13.1/40187139-40187199 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_1.1/56989207-56989109 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/12172751-12172823 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/41626528-41626600 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/20988479-20988552 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/178959652-178959571 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/18400964-18400900 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/87847042-87846967 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/105104682-105104752 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_20.1/3487657-3487750 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_17.1/15773546-15773609 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_10.1/66624224-66624303 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_6.1/128877634-128877709 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/143750534-143750458 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_18.1/71487277-71487356 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_6.1/69716237-69716306 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/34180292-34180214 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_8.1/132713950-132713883 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/148393765-148393844 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/107811978-107811899 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_15.1/54101900-54101975 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_9.1/110474739-110474665 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_11.1/56958293-56958215 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/46929892-46929971 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/48782389-48782325 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_18.1/32433110-32433199 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_4.1/31636737-31636631 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/21407515-21407593 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/7524522-7524618 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_18.1/71574719-71574633 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_6.1/15848908-15848829 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/48308821-48308732 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/43063501-43063577 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/32772680-32772623 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/62731982-62731905 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_8.1/23145187-23145257 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_5.1/92533642-92533583 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/1360859-1360937 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/5476888-5476966 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/96408229-96408152 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_15.1/40119895-40119968 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_17.1/50416994-50417068 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_17.1/63725518-63725578 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_5.1/18013069-18012998 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_16.1/53202547-53202602 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_13.1/55194459-55194385 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_17.1/9974288-9974212 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_18.1/41402335-41402413 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_9.1/77128286-77128361 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/158186029-158186103 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/20534163-20534084 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/89227706-89227785 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_7.1/41814033-41814098 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_14.1/64561835-64561756 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_10.1/24517340-24517286 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_15.1/78813779-78813856 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_8.1/106145070-106145136 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/166324652-166324598 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/194121329-194121259 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/13969343-13969281 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/103070347-103070414 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/188607399-188607320 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/8220188-8220258 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/47708339-47708265 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_X.1/129850144-129850066 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/99504303-99504227 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/211391758-211391700 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/17332259-17332180 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_16.1/20867484-20867571 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_4.1/125525993-125526067 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/143862029-143862082 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/100677426-100677507 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/22397838-22397916 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_7.1/118102566-118102646 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_21.1/27161974-27162053 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_7.1/97535387-97535309 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_13.1/36930013-36929930 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_16.1/80229779-80229858 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_14.1/69218409-69218475 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_5.1/117009721-117009663 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_9.1/21132547-21132478 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/105229975-105229868 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/79962036-79962111 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/135811679-135811756 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/113763823-113763751 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/19172552-19172650 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/67444468-67444389 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/76698606-76698678 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_21.1/17061440-17061362 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_13.1/110574309-110574220 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_12.1/83401940-83401862 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/160438896-160438975 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/131791847-131791768 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/6800285-6800363 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/188089235-188089333 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/7711103-7711024 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/122316359-122316434 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/74110373-74110279 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_9.1/4904851-4904922 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/127383631-127383552 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_X.1/14630060-14629982 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/54774164-54774242 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/112663548-112663469 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/8048243-8048164 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_15.1/77255789-77255710 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_18.1/65591918-65591854 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_12.1/12129996-12130059 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_X.1/5484236-5484327 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_9.1/90359820-90359899 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/113743260-113743339 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/151469141-151469219 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/72529196-72529123 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/218000885-218000960 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/76438722-76438812 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_17.1/66349355-66349283 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_7.1/142815490-142815413 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/39927074-39927148 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_9.1/3390966-3390907 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_Y.1/19095266-19095183 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_3.1/63790430-63790360 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/85191319-85191249 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/248841253-248841193 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/155889779-155889858 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/54499758-54499691 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/32510325-32510246 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_10.1/67084128-67084206 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_6.1/109145536-109145470 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_17.1/47748655-47748724 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_10.1/15532794-15532859 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/132393157-132393233 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_17.1/21481167-21481089 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_1.1/64146281-64146187 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/91214595-91214531 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/64591040-64591117 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/34628741-34628820 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/3466563-3466509 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_5.1/121806442-121806512 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_8.1/15265664-15265605 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_1.1/39173489-39173434 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/49851407-49851486 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/100957906-100957823 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_9.1/96357111-96357181 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/109864045-109863972 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/221226302-221226372 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/222186349-222186428 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/26906476-26906379 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_20.1/40591063-40590984 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_10.1/71618974-71619053 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_10.1/13064624-13064509 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_21.1/11051935-11052013 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_4.1/125582331-125582408 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_15.1/57252170-57252245 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_9.1/125222259-125222163 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/174317409-174317487 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/80161403-80161457 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/104800427-104800481 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_3.1/21236840-21236917 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/138274106-138274208 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_14.1/28202571-28202469 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_4.1/31162745-31162815 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_5.1/105167491-105167428 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_4.1/153822120-153822186 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/119999427-119999505 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_9.1/120853318-120853387 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_20.1/52993093-52993014 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_12.1/105721763-105721686 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_13.1/99370320-99370398 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_10.1/56609437-56609514 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/79549637-79549700 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_2.1/68500324-68500246 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/13113835-13113898 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_20.1/15539029-15539108 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_10.1/97398228-97398150 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_12.1/39048909-39048995 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/225788149-225788224 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/68089697-68089776 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_14.1/86382959-86383016 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_5.1/156505351-156505430 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_10.1/33016626-33016568 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/114751912-114751835 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_2.1/220816766-220816691 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_18.1/22603150-22603213 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_4.1/155706672-155706738 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/70793197-70793269 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_19.1/35322238-35322169 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_2.1/59548383-59548459 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/7285042-7284965 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_5.1/139540215-139540149 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/73567512-73567588 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_14.1/45389564-45389644 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_13.1/48499132-48499186 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_3.1/19650617-19650513 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/40558533-40558596 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/7949418-7949342 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_20.1/6116874-6116952 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_18.1/41908798-41908718 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_13.1/47787519-47787444 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_21.1/31173552-31173631 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_7.1/147582151-147582230 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/208843036-208843115 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/60803885-60803979 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_4.1/158509384-158509305 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/21225670-21225748 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/178465637-178465710 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/69390129-69390051 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/70530195-70530116 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/91741657-91741736 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_16.1/49974605-49974682 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_16.1/56850913-56850843 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/110809666-110809729 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/106906220-106906283 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_9.1/129920586-129920516 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/177522011-177522089 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/59655890-59655812 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_14.1/104818353-104818430 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_1.1/118484101-118484032 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_18.1/33762578-33762651 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_3.1/358124-358057 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_11.1/97595524-97595603 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_16.1/26747553-26747632 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_2.1/224346362-224346263 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/163093911-163093986 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/31833877-31833956 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_18.1/21573817-21573880 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_X.1/31571609-31571528 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/171890270-171890196 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_18.1/70374568-70374490 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_9.1/77280141-77280218 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/79109490-79109569 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/6968540-6968473 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/23000564-23000463 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/108297549-108297628 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/122323745-122323822 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_5.1/18059725-18059789 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/107202028-107202122 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/245120589-245120667 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/112062811-112062734 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/68972086-68972163 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/60414223-60414286 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/84786073-84785999 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/5196153-5196253 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/96352109-96352182 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/36270219-36270141 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_12.1/86041099-86041031 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_5.1/98280902-98280820 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_9.1/111121209-111121134 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_5.1/106741944-106742017 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_17.1/7661573-7661641 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_X.1/88068260-88068343 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/210814759-210814837 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_20.1/9086968-9086890 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_2.1/50608803-50608882 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/42224814-42224893 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/36703000-36702924 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/29455850-29455927 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_21.1/28706998-28707077 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_12.1/106624405-106624467 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_6.1/44569443-44569542 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_13.1/49326224-49326285 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_11.1/39853391-39853340 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/118944317-118944244 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/31209529-31209462 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/14461619-14461542 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_11.1/97756293-97756239 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/38935837-38935767 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_16.1/26036634-26036555 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/152559434-152559513 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/245533638-245533717 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/79152826-79152747 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/227989051-227988975 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/125862222-125862136 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/42258014-42258090 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_8.1/134998382-134998452 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_9.1/22137354-22137420 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/76730903-76730987 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_9.1/16244958-16245037 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_5.1/106346505-106346575 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/185990470-185990393 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_12.1/127944244-127944160 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_10.1/8734406-8734471 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_18.1/6241511-6241589 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/78484209-78484130 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_14.1/78073789-78073684 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_5.1/109021283-109021383 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/153149273-153149195 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/118049498-118049573 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/95039903-95039831 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/41559419-41559347 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/71995269-71995191 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_6.1/124294874-124294796 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_9.1/6411203-6411128 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_X.1/16928941-16929012 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_15.1/48243932-48244010 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_20.1/36968064-36968126 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_3.1/102071243-102071163 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/70971896-70971827 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/224072770-224072852 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/25965273-25965334 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_5.1/59302063-59302134 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_12.1/105345538-105345617 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_6.1/146948266-146948327 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/17429662-17429589 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/97287656-97287583 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/41039694-41039762 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_10.1/10905540-10905620 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_12.1/110419693-110419634 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_X.1/16645137-16645211 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/85595277-85595359 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/29127495-29127571 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/25610297-25610376 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/145396476-145396549 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/80080840-80080762 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/223657898-223657820 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/225755430-225755505 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/188212849-188212779 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/57431955-57432033 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/138404039-138404116 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/95368438-95368359 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_X.1/6296647-6296710 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/163663823-163663745 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/67859409-67859487 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/27005307-27005233 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_9.1/109847419-109847472 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_13.1/75134387-75134316 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_13.1/48293509-48293433 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_2.1/72976645-72976726 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/87425085-87425017 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_22.1/40971754-40971827 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_10.1/57759742-57759820 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/164631446-164631523 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/14733245-14733171 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/88263549-88263627 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_4.1/179298666-179298590 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_19.1/46481684-46481605 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_18.1/1840046-1840135 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_20.1/47041975-47041913 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_1.1/225994330-225994256 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/82174941-82174864 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/56136874-56136796 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_6.1/81922123-81922069 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/20045159-20045214 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/152002389-152002318 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_21.1/23672831-23672760 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_4.1/23464725-23464644 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/45648683-45648605 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/56297624-56297550 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_19.1/48554684-48554762 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_10.1/76738829-76738752 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_6.1/80495090-80495169 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/95724177-95724098 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/100813868-100813944 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/5314809-5314869 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/154759890-154759963 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/28819774-28819851 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/94856814-94856883 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/26027301-26027363 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_14.1/20742927-20742867 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_11.1/12432752-12432827 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/37771842-37771920 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_19.1/45080528-45080476 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_14.1/52033393-52033458 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_2.1/48978933-48978863 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/159162421-159162344 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/123881420-123881343 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_12.1/103320376-103320301 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_NC.42/149737-149801 DE GL000213.1 dna:supercontig supercontig:GRCh37:GL000213.1:1:164239:1
+#=GS H.sapiens_3.1/153502332-153502392 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_21.1/21022597-21022524 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_1.1/219837762-219837708 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_13.1/105661523-105661463 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_1.1/95918741-95918818 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/62448536-62448615 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_11.1/34386938-34386863 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_9.1/24843023-24842962 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_14.1/85652014-85651936 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_NC.14/11916-11978 DE GL000249.1 dna:supercontig supercontig:GRCh37:GL000249.1:1:38502:1
+#=GS H.sapiens_4.1/155140063-155140142 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/70804142-70804068 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/68273119-68273042 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_1.1/162915868-162915947 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_20.1/57710843-57710916 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_X.1/129718852-129718930 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/82370047-82369968 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/83110543-83110473 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/120156697-120156752 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_4.1/102387184-102387241 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_14.1/26333554-26333500 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_12.1/103897780-103897858 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_11.1/76589281-76589360 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/112230886-112230966 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/80409949-80410027 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_21.1/22666397-22666473 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_12.1/74414103-74414024 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_4.1/162109047-162109121 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_18.1/70520624-70520548 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_8.1/103479223-103479302 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_13.1/96223231-96223309 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_22.1/27182499-27182574 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_7.1/135929198-135929277 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_16.1/47244915-47244839 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_20.1/8590881-8590802 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_10.1/33387562-33387465 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_13.1/26984453-26984377 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_2.1/174358684-174358607 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/31812716-31812604 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_1.1/207614033-207613963 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/34174926-34175003 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/190884499-190884598 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_16.1/18932884-18932947 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/154404355-154404278 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_13.1/108259382-108259455 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_1.1/90582580-90582661 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/105479216-105479143 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_7.1/91255094-91255171 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/224304169-224304093 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/126636390-126636475 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/150123038-150123116 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_20.1/19570829-19570750 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_X.1/70401392-70401469 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/14189197-14189289 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/147892111-147892030 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/165280041-165280111 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_12.1/102388864-102388948 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/105698986-105699046 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/52019826-52019885 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/96656055-96656137 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_18.1/69457152-69457227 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_5.1/64895271-64895349 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_11.1/67420919-67420998 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/120526048-120525978 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/105185281-105185360 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/45434291-45434221 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/125023442-125023506 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/40308468-40308389 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_12.1/33545982-33545885 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_5.1/25355129-25355205 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/142285343-142285272 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/232309326-232309265 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_14.1/65295227-65295306 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_7.1/119822590-119822653 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_19.1/54049423-54049493 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_18.1/18642425-18642349 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_X.1/105073880-105073953 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/96073378-96073316 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/51948523-51948599 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_10.1/82363192-82363255 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_1.1/47090585-47090657 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/110463603-110463683 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_20.1/7870408-7870336 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_11.1/58035774-58035848 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/45778921-45778982 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/56954935-56955015 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_12.1/84966786-84966850 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_7.1/84295322-84295243 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_20.1/38683104-38683183 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_2.1/162163041-162162982 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/67925061-67925128 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/23684812-23684895 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/228184690-228184622 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/97634497-97634577 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_7.1/128546911-128546832 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/31356698-31356619 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_6.1/138621752-138621824 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/3984161-3984107 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/93457596-93457521 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/116884136-116884222 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/38929724-38929648 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_13.1/95193834-95193902 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_1.1/89256060-89256138 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_20.1/37131639-37131697 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_5.1/84538808-84538727 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/72118116-72118182 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/202705931-202705854 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/133509057-133508980 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/49996512-49996452 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/18572101-18572027 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/40173535-40173599 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_17.1/70710587-70710532 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_7.1/40569430-40569352 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/65557223-65557295 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/216056486-216056556 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/160440256-160440333 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/55296472-55296541 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/166398219-166398288 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_2.1/125231522-125231601 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/170496118-170496187 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/39307122-39307043 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_5.1/139554007-139553926 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_18.1/26776411-26776490 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_16.1/7124427-7124335 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_2.1/70682752-70682673 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/35919689-35919631 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/189861575-189861652 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/8812962-8812883 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_9.1/102303329-102303416 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/210838610-210838533 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/98204775-98204857 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/138420542-138420467 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/79848075-79848012 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_16.1/10049327-10049407 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/105607402-105607339 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_18.1/69244861-69244780 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_18.1/54249057-54249126 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_7.1/41343445-41343516 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/161698034-161697957 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/62066659-62066572 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_9.1/43582126-43582201 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/183605600-183605520 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/44208965-44209038 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/99177496-99177422 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/107677296-107677375 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/118658513-118658441 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/15233197-15233276 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/68849322-68849257 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_8.1/118026301-118026376 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/54806249-54806171 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/4729219-4729136 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_17.1/27350637-27350569 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_9.1/30771105-30771183 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/4479851-4479930 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/12345400-12345332 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_8.1/127759903-127759810 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/33766606-33766676 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/92503784-92503861 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_15.1/100047174-100047106 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_8.1/2528001-2527928 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_1.1/97368344-97368263 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/183759040-183758962 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/54684513-54684591 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_1.1/70445566-70445491 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/105199268-105199348 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_22.1/48118232-48118319 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_1.1/190217312-190217376 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/5810783-5810690 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_4.1/29737695-29737630 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/24758980-24758911 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_16.1/82139474-82139561 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_16.1/5132949-5132882 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_X.1/80531863-80531784 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_19.1/45782786-45782840 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_2.1/235285387-235285321 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/64415736-64415813 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/19172608-19172552 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/5419829-5419906 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/124631102-124631180 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_20.1/38404718-38404797 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_16.1/6123280-6123335 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_8.1/4363744-4363665 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_12.1/8741921-8741981 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_4.1/14917642-14917564 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_13.1/66540472-66540551 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_20.1/13936493-13936423 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_4.1/157217794-157217716 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/12777918-12777992 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_7.1/135482773-135482854 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/165815509-165815437 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/63639412-63639484 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_13.1/54560591-54560673 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_X.1/126409417-126409494 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/176395458-176395384 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/139732836-139732915 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_10.1/53399505-53399583 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/116822176-116822254 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_5.1/96786796-96786869 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_19.1/48401994-48402069 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_7.1/9083983-9083914 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/175136380-175136460 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/98273629-98273559 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_22.1/44011431-44011358 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_11.1/123751847-123751776 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/85203346-85203274 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_13.1/56543734-56543661 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_2.1/207438700-207438776 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/134964703-134964622 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_X.1/34059687-34059758 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_12.1/63514194-63514118 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_12.1/117716085-117716163 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_8.1/29846250-29846175 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/3688212-3688149 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_18.1/2482642-2482579 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/156961367-156961290 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/75370871-75370810 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_18.1/42126142-42126063 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_21.1/32167220-32167142 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_12.1/8382433-8382367 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_9.1/89331920-89331845 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/150796716-150796636 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/147966200-147966275 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/52899857-52899934 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_14.1/87329648-87329724 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_9.1/13141140-13141197 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/105900385-105900312 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_14.1/53493775-53493698 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_9.1/84420913-84420990 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_9.1/17700833-17700891 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_12.1/63429104-63429042 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_3.1/170552014-170551931 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_22.1/25928770-25928692 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_2.1/29645313-29645366 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/92053380-92053304 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_14.1/91628219-91628121 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_3.1/76392761-76392684 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_12.1/65016301-65016380 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_6.1/72429057-72429133 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/27000686-27000746 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/4478240-4478302 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_12.1/95715155-95715088 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_12.1/8382434-8382367 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_11.1/70130080-70130158 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_3.1/100701326-100701393 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_X.1/112221465-112221539 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/82201271-82201351 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_5.1/24529063-24529129 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/37439844-37439923 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_22.1/27445701-27445777 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_20.1/39001459-39001536 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_8.1/109661793-109661868 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/231361319-231361236 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/170695671-170695599 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/113651909-113651840 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/80471827-80471750 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/59626468-59626391 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/100400694-100400616 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/122520182-122520080 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_10.1/3071950-3072003 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_9.1/113992667-113992729 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_18.1/73955529-73955447 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_1.1/77742418-77742334 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/88762287-88762366 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/154558735-154558813 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_7.1/41076215-41076284 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_11.1/31890859-31890800 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/43269473-43269555 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_12.1/96293902-96293827 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_11.1/104685453-104685376 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/95571889-95571824 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_10.1/113718479-113718548 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/144533709-144533786 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/2344394-2344313 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/113836283-113836209 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/160657072-160657147 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/7543749-7543695 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/27075587-27075666 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/73534351-73534287 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/146421686-146421752 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/172899082-172899141 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_3.1/26516858-26516782 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/79729950-79729848 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/7961155-7961092 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/4675187-4675107 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/230147100-230147163 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/80069602-80069692 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_18.1/61905795-61905691 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_4.1/175668002-175668072 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/169871304-169871229 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_10.1/80510375-80510449 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_6.1/164512276-164512342 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/131941078-131941148 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/164960154-164960232 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/98298528-98298458 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_20.1/12961408-12961484 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_16.1/21940172-21940235 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/132295674-132295570 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/50412723-50412644 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/153468690-153468619 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/155202503-155202442 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_9.1/129299948-129299869 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_5.1/13174880-13174956 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_14.1/27396957-27396869 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_4.1/111313257-111313197 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/103276761-103276839 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/123490557-123490671 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/21179759-21179833 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/85088691-85088612 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/38058222-38058297 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_7.1/118041890-118041954 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_6.1/117514850-117514926 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/7126961-7127037 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/106804565-106804652 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_8.1/84350905-84350967 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_12.1/65102517-65102574 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_6.1/64825848-64825778 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/64059999-64060052 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_15.1/47274148-47274224 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_1.1/98839022-98838945 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/20456060-20456139 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/70276804-70276750 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/158331622-158331723 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/37299878-37299957 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/185033152-185033090 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/59943514-59943579 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/78522359-78522433 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/102356213-102356129 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/214165743-214165820 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/110536228-110536155 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_3.1/175213266-175213319 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/81857217-81857290 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/134197575-134197650 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_10.1/53054298-53054400 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_X.1/131130876-131130955 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/158035384-158035463 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_14.1/38856140-38856064 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_21.1/26895661-26895567 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_1.1/101138934-101139013 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/262905-262984 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/83269700-83269622 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_11.1/19260445-19260366 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/133839557-133839617 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/94666352-94666420 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_3.1/70100635-70100558 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/113691700-113691638 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/25787813-25787736 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/57823516-57823607 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_1.1/186554203-186554280 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/235601180-235601248 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/127230072-127230007 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/180498392-180498316 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/50357385-50357307 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_13.1/63404663-63404740 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/131703394-131703316 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_9.1/113478446-113478506 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_13.1/65052640-65052576 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_1.1/7922473-7922550 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/119378793-119378867 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/127479204-127479287 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/219563082-219563161 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/79797865-79797925 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_10.1/110301210-110301271 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_7.1/67018133-67018214 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/4194225-4194280 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/59511496-59511422 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_5.1/55992120-55992043 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/35034267-35034346 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_4.1/157527437-157527510 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/26692675-26692751 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/55872316-55872237 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/165401855-165401780 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/174623371-174623450 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/101615082-101615005 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/15813673-15813752 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/54922243-54922316 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_5.1/180347208-180347129 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_7.1/122850520-122850444 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/176959236-176959337 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/10123432-10123491 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/177759296-177759218 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/21955968-21956025 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_3.1/141469018-141468952 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_X.1/123405050-123404979 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_5.1/1569627-1569548 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/34011203-34011107 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/28600570-28600641 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/70775525-70775449 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/235107603-235107531 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/110288611-110288545 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_3.1/148359612-148359683 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/41552076-41551979 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/107336942-107336865 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_10.1/68389229-68389161 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_22.1/32575838-32575759 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_X.1/40417654-40417568 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_12.1/92641154-92641228 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_14.1/26641375-26641454 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_10.1/52957648-52957569 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_2.1/9630811-9630868 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/25875770-25875690 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/147798625-147798704 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_18.1/25443558-25443638 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_1.1/113691766-113691703 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/115039768-115039692 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_17.1/54314087-54314165 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_11.1/87925797-87925717 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_18.1/63545872-63545949 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/201540662-201540584 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/91608384-91608458 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/21581279-21581200 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_13.1/30780828-30780753 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_17.1/44995944-44995868 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_4.1/103080116-103080198 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/139928863-139928790 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/12633968-12633889 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/5951764-5951852 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/126675583-126675686 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/62974922-62974846 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/113318566-113318643 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/243061249-243061174 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/216743640-216743561 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_21.1/23146979-23146903 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_10.1/2043680-2043605 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/100232855-100232928 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_5.1/25535256-25535333 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/38630545-38630466 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/90391878-90391811 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/183747965-183747892 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/62652633-62652555 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/72311479-72311558 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_X.1/23139022-23138954 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_9.1/2485331-2485266 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_19.1/8755450-8755372 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_1.1/216033802-216033879 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/5724614-5724678 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/78897424-78897492 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/120648785-120648706 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_18.1/55569536-55569457 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_17.1/66383129-66383208 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_12.1/73133053-73133121 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_3.1/163234273-163234194 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/194058636-194058563 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/54930978-54931060 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/62754738-62754808 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_10.1/36482808-36482883 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/65504826-65504886 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_15.1/27262467-27262412 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_8.1/120566954-120567034 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_5.1/40235899-40235977 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_20.1/53765378-53765270 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_1.1/20111783-20111710 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_14.1/99390241-99390311 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_1.1/56843087-56843008 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_17.1/12307494-12307564 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_3.1/15175933-15176011 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_18.1/54454196-54454119 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/180857928-180857858 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/7754615-7754510 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/20326491-20326551 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/47736101-47736025 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_8.1/27082460-27082522 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_1.1/24606264-24606342 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/174181505-174181439 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_13.1/34327660-34327578 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_6.1/2445257-2445173 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_14.1/25150452-25150398 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_8.1/40954427-40954494 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/167521001-167521080 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_10.1/98282920-98282869 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_X.1/28550067-28549993 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/38107290-38107215 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/57591372-57591308 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_21.1/30853542-30853454 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_5.1/100794442-100794517 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/113877687-113877748 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_14.1/75238145-75238217 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_2.1/222384289-222384372 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_20.1/58712669-58712594 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_2.1/137402759-137402682 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/23121540-23121459 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/93595270-93595339 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_7.1/89235178-89235097 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/4302973-4302894 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/216494602-216494680 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/166435094-166435171 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/5429107-5429028 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_8.1/2979502-2979581 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_18.1/22880589-22880668 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_X.1/46928469-46928399 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/113917625-113917704 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/50937289-50937368 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_1.1/222916234-222916312 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/100624433-100624509 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/101845792-101845882 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/83480838-83480761 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_19.1/32968257-32968189 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_4.1/93823280-93823207 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_X.1/12963823-12963747 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_3.1/113485622-113485696 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/119117947-119117869 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/108266637-108266716 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/8305864-8305932 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/99743483-99743555 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_18.1/1347015-1347079 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_6.1/151872109-151872192 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/89207254-89207326 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_5.1/155634661-155634589 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/40313410-40313464 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/14008427-14008346 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_12.1/52850720-52850774 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_X.1/8410766-8410695 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_21.1/19264031-19264109 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_18.1/71811338-71811416 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/44979454-44979372 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/48724698-48724782 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/5313273-5313346 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_14.1/45487261-45487329 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_X.1/47436740-47436664 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_5.1/59776411-59776481 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/122698177-122698234 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/45605000-45605104 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/61529667-61529745 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_15.1/58281793-58281853 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_10.1/38577056-38577129 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_9.1/116309906-116309828 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/152117767-152117827 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_7.1/36527187-36527083 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/72574848-72574915 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/6973465-6973543 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_12.1/128049055-128048977 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_4.1/188345043-188344964 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_15.1/63534234-63534301 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_10.1/2495334-2495411 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/129981682-129981762 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/12604218-12604280 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_19.1/39776702-39776781 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_4.1/21596586-21596519 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/136935272-136935352 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/65717562-65717483 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_14.1/43173654-43173725 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_X.1/8199998-8199940 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_16.1/2944104-2944028 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_20.1/55293943-55294022 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_15.1/47534472-47534409 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_16.1/74114363-74114293 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_8.1/27082383-27082437 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/38192870-38192939 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/53246599-53246679 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_3.1/84545733-84545812 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/155664673-155664594 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_18.1/71583292-71583345 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_10.1/69791304-69791230 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_10.1/62938894-62938970 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_18.1/30106130-30106184 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_X.1/20207790-20207726 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/86358874-86358937 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/111502795-111502713 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_14.1/27917223-27917293 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_8.1/135225738-135225815 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/104656477-104656544 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_20.1/11878095-11878031 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_12.1/60420556-60420630 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_12.1/82658726-82658819 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_20.1/46718951-46718877 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_20.1/41702211-41702288 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_4.1/82313673-82313595 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/104953725-104953645 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_9.1/117075571-117075651 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_11.1/102979287-102979352 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_1.1/105450150-105450081 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/203425712-203425793 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/166594814-166594741 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/135557944-135557816 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/175164733-175164654 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/31673335-31673276 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_8.1/12435617-12435539 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/208832427-208832347 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_13.1/72903905-72903828 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_16.1/61773457-61773535 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/83027704-83027627 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_15.1/86585370-86585293 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_Y.1/16070499-16070578 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_10.1/120765377-120765304 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_1.1/38293461-38293530 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/239094640-239094578 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/147629198-147629277 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/213783080-213783159 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/94148589-94148511 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/131591302-131591366 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/4026467-4026537 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_16.1/56207291-56207209 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_20.1/32506331-32506416 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_1.1/57336018-57335941 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/208082472-208082542 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/116345567-116345645 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_16.1/82152539-82152603 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/43095689-43095612 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/94772077-94771998 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/29601794-29601857 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_9.1/9425554-9425481 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/98913409-98913485 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/105519515-105519606 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_5.1/42180701-42180779 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_12.1/66484958-66485034 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/224266055-224266123 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/9652830-9652761 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_5.1/127429468-127429393 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/139876059-139875975 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_5.1/39167150-39167224 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_19.1/52873708-52873760 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_4.1/109201767-109201691 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_3.1/125650207-125650273 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/90401274-90401350 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/138895907-138895986 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_11.1/24203541-24203466 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_13.1/80577717-80577649 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_2.1/162300659-162300567 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/27083322-27083249 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/70266711-70266778 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/9707323-9707390 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/93764288-93764218 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_12.1/109256517-109256592 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/210428117-210428042 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/48454006-48454099 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/17833840-17833918 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_3.1/143870911-143870993 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_12.1/23382981-23382924 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_5.1/124462988-124463065 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_14.1/20501826-20501916 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_4.1/104343346-104343261 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_13.1/30145325-30145256 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_6.1/62688790-62688878 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/112646303-112646379 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_13.1/95117558-95117637 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/95307606-95307552 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/202979896-202979973 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/163703592-163703667 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/150635569-150635490 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_18.1/11457724-11457639 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_5.1/129080672-129080742 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/67263351-67263275 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/165699318-165699228 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/24045921-24045846 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/20056700-20056646 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_9.1/119360835-119360756 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/18941920-18942007 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/37296020-37296099 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/78570940-78571024 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/156400253-156400175 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/27317247-27317321 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_20.1/22337493-22337558 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_15.1/48941381-48941302 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_4.1/176607396-176607468 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/30341943-30341881 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/63291664-63291577 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_Y.1/28557293-28557211 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_3.1/21871245-21871321 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/117102730-117102650 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/162094190-162094261 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/23013429-23013356 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_20.1/38683575-38683510 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_2.1/176195191-176195112 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/91079239-91079155 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_6.1/122874493-122874416 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/84397048-84396970 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_16.1/63042857-63042932 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_2.1/4759036-4759095 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_16.1/63580045-63580123 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_1.1/34641548-34641470 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_21.1/33581874-33581798 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_8.1/121057223-121057148 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/56231415-56231493 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_8.1/131517356-131517436 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/60990439-60990515 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/128003326-128003270 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/64135466-64135523 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/63692992-63693070 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/138632609-138632686 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_17.1/56315722-56315669 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_7.1/81919395-81919474 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/43693364-43693287 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/100361087-100361153 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/61045093-61045172 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_12.1/101936665-101936566 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_8.1/31858350-31858276 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/61100543-61100617 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/151347401-151347322 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_14.1/86329950-86329873 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_5.1/86527668-86527745 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_11.1/68273555-68273634 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_12.1/95441756-95441695 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_X.1/37662567-37662491 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_18.1/46592470-46592539 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_3.1/19457182-19457257 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/211384422-211384333 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/98977194-98977129 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/90587180-90587111 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_8.1/65271554-65271461 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/29410833-29410912 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/35884918-35884994 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/15218105-15218031 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/134727824-134727902 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/11537713-11537636 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/51286666-51286742 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/75453406-75453313 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_3.1/150953738-150953817 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/94806797-94806899 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_X.1/124796968-124796905 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/204847543-204847475 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/154501995-154501923 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/30032774-30032855 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/149657882-149657804 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/83125770-83125716 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/63167723-63167647 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/150179621-150179689 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_17.1/63909033-63909124 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_2.1/157788764-157788685 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_17.1/43077811-43077882 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_14.1/89584456-89584534 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_6.1/76841301-76841365 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/30657997-30658075 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_4.1/12798789-12798711 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/131901619-131901684 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_13.1/34486212-34486137 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_3.1/121641025-121640947 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_11.1/26859015-26858955 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_16.1/83434220-83434151 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_2.1/59327633-59327710 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_18.1/58075106-58075028 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_Y.1/13908423-13908368 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_15.1/72006399-72006474 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/5368393-5368446 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/9444428-9444350 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_X.1/139129799-139129866 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/17114420-17114341 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_2.1/218297020-218297100 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/150512435-150512516 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/184749196-184749292 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_11.1/35571890-35571797 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_2.1/80021399-80021488 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/76603407-76603341 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/8056327-8056393 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_6.1/147766637-147766714 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_18.1/30904023-30903967 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_15.1/100292005-100291926 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_13.1/76498706-76498642 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_9.1/33042125-33042193 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/207271364-207271278 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/82916463-82916396 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/112494493-112494435 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_7.1/83548921-83548998 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_20.1/34497144-34497218 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_18.1/76893388-76893305 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_5.1/144760945-144761025 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/20086814-20086754 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/159210329-159210393 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/56589807-56589883 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/37599412-37599487 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_21.1/25841912-25841991 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_8.1/48628152-48628073 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/6226339-6226245 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_16.1/8359655-8359551 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_13.1/75502274-75502353 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_14.1/33669375-33669452 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_1.1/234153497-234153566 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_15.1/70261159-70261092 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_9.1/87291708-87291654 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_10.1/63875977-63876056 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_7.1/135736380-135736300 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/87071956-87072034 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/148228548-148228628 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/60853193-60853129 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_22.1/27527734-27527797 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_14.1/78910246-78910326 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_8.1/122888481-122888583 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/113352197-113352138 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/29786202-29786123 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_6.1/92816528-92816449 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/13910501-13910565 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/139027152-139027049 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/33565546-33565469 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_X.1/100373611-100373547 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/88388477-88388555 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_18.1/34758056-34757975 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_21.1/28111057-28110953 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_11.1/35321885-35321824 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_X.1/10184659-10184738 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_21.1/19047256-19047327 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_7.1/70771678-70771598 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/63619847-63619783 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_9.1/14746108-14746159 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_9.1/7624269-7624348 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_2.1/211370041-211369963 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_12.1/115283519-115283438 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_14.1/31362337-31362291 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_12.1/74411632-74411555 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/60413402-60413471 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/40378656-40378587 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/14910746-14910667 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/70215485-70215378 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/64273260-64273326 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_14.1/37941576-37941521 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_1.1/185622187-185622262 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/144629726-144629805 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/88534548-88534492 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/149497845-149497924 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/70171391-70171333 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_14.1/49209634-49209559 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_12.1/85949729-85949651 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_18.1/36997573-36997501 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_4.1/31757539-31757612 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/70443259-70443188 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/169760589-169760668 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_2.1/82584821-82584739 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_1.1/188116606-188116539 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/132825201-132825302 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_10.1/103690202-103690150 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_2.1/173806986-173806903 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/68742211-68742143 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/59678824-59678737 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_3.1/170259613-170259546 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/66475132-66475193 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/116213300-116213225 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/103242962-103242874 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/33719330-33719253 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/35784002-35784089 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/64275921-64275845 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_7.1/68388485-68388406 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/134029867-134029789 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_12.1/114558175-114558094 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_X.1/100145471-100145393 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/59114347-59114411 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/74663350-74663271 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_12.1/79176613-79176692 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/98752473-98752397 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_18.1/22542742-22542689 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_5.1/175362215-175362293 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_7.1/34980372-34980447 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/45887264-45887344 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_2.1/54376044-54376098 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/68944906-68944985 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_14.1/88575215-88575298 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_14.1/22387695-22387616 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_6.1/47988206-47988282 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_3.1/55614167-55614101 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/49158528-49158603 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_X.1/91159263-91159178 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/28717029-28717106 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/94199668-94199744 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_10.1/6591539-6591478 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/69539941-69539862 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_13.1/28776971-28777045 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_21.1/27842576-27842498 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_6.1/128476780-128476702 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_5.1/164373145-164373049 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_16.1/10147660-10147597 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_15.1/86762511-86762584 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_5.1/83638197-83638140 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/143876901-143876980 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_10.1/108477513-108477448 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/92565001-92565078 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_13.1/77953342-77953421 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_5.1/126740132-126740054 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/60486763-60486686 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_11.1/5409264-5409192 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_12.1/44377275-44377350 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_11.1/129206525-129206449 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/61038001-61037936 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_18.1/57416909-57416986 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_6.1/135683561-135683481 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_21.1/47179981-47179920 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_19.1/43177742-43177820 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_3.1/67691923-67691867 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/164644580-164644657 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_13.1/46387781-46387702 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_5.1/122112130-122112210 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/18286298-18286360 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_1.1/96829845-96829735 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/186452459-186452389 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/136257240-136257174 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/112155268-112155343 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_3.1/8520040-8520108 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/54464787-54464719 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/180782963-180783027 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/201251908-201251982 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/73662990-73663074 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_3.1/76467049-76467126 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/49747123-49747050 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_18.1/69168395-69168302 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_7.1/48597400-48597309 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/6154559-6154483 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_16.1/48274650-48274595 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_15.1/51788201-51788148 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_7.1/105597411-105597347 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/113601986-113601892 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_4.1/153822224-153822120 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_17.1/3132363-3132288 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_9.1/122929191-122929103 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_17.1/33874342-33874392 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_8.1/119385054-119384974 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_7.1/86867018-86866954 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/239608018-239607954 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/115964914-115964846 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_11.1/133616395-133616325 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_11.1/13999584-13999500 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_3.1/70927845-70927923 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/2743556-2743476 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/164444444-164444536 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_13.1/29825589-29825527 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_6.1/156083959-156084034 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_1.1/218877972-218878048 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_11.1/71513630-71513696 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_21.1/17092286-17092355 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_3.1/9068276-9068196 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_18.1/23836850-23836931 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_6.1/57254931-57255009 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/19667259-19667350 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/110979907-110979829 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_22.1/23478815-23478892 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_1.1/246507265-246507313 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_5.1/138499433-138499486 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/125507426-125507504 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/89985858-89985783 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/79026921-79027029 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_16.1/24024682-24024566 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/33926486-33926409 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_18.1/72008609-72008542 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_5.1/35002132-35002053 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_3.1/129618452-129618538 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_1.1/212725464-212725548 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_15.1/68142177-68142100 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_2.1/28934491-28934423 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/31457019-31457102 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_8.1/138555225-138555313 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_18.1/10073376-10073456 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_3.1/20133396-20133320 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/63475959-63475850 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_4.1/124325062-124325137 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_15.1/54847899-54847843 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_7.1/133682032-133681970 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/23561239-23561311 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/138587081-138587160 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/150485436-150485514 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_4.1/179165757-179165830 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/147043358-147043436 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_4.1/123043626-123043707 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/103950367-103950450 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/75588704-75588783 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_3.1/122645886-122645965 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_18.1/59723336-59723251 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_19.1/44167332-44167411 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_10.1/16843934-16843987 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/70489798-70489905 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_7.1/107312772-107312853 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_12.1/19974279-19974201 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_7.1/92585257-92585328 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_18.1/21474083-21474162 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_3.1/184609265-184609186 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/69039514-69039433 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/196501743-196501812 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/45592106-45592182 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_9.1/93353854-93353782 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_10.1/108247237-108247294 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_X.1/92253332-92253254 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/101623913-101623988 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_1.1/193313137-193313190 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/104826596-104826518 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/127879238-127879159 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/129657649-129657591 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_17.1/37453664-37453740 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_8.1/75201037-75200958 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/13137332-13137431 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_16.1/54905604-54905540 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_4.1/34388456-34388379 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_17.1/71424659-71424738 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_X.1/25224572-25224491 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/34144917-34144856 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/61280584-61280529 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_9.1/84511355-84511277 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_7.1/137335849-137335913 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/7779679-7779602 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_8.1/103745942-103745863 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/105883125-105883046 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/34841789-34841850 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_5.1/65905918-65905847 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_9.1/82003754-82003831 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/77775119-77775208 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_21.1/29522993-29522925 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_18.1/44074706-44074768 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/140179820-140179903 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/34352574-34352651 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_10.1/25168652-25168730 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_9.1/72975697-72975634 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_20.1/18312570-18312645 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_7.1/70402832-70402772 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/116112499-116112421 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/19114099-19114027 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/67441665-67441729 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_15.1/72064951-72065023 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_20.1/11980221-11980145 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_11.1/60047705-60047629 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_9.1/3752099-3752177 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/118751825-118751749 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_10.1/9346720-9346794 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_7.1/69167976-69168062 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_16.1/10147878-10147815 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_6.1/49735571-49735493 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_6.1/82693206-82693266 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_12.1/86409031-86408982 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_9.1/103732818-103732758 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_13.1/33615495-33615576 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_21.1/26827153-26827064 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_6.1/85546984-85547043 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/60104786-60104708 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/168264634-168264559 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/138658537-138658459 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_22.1/43947245-43947312 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_12.1/5305886-5305956 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_3.1/15661144-15661077 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/56938732-56938811 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_1.1/209519466-209519530 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/70195789-70195711 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/207401122-207401045 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/170247910-170247843 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_3.1/170134695-170134756 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/56773687-56773617 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_9.1/87623259-87623333 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_7.1/26099962-26100051 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/147075126-147075200 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_3.1/109194926-109194997 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/60262343-60262263 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_11.1/106398691-106398768 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_16.1/52289380-52289459 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_2.1/147156981-147157037 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_8.1/119044326-119044401 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/100578227-100578149 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/96732041-96731983 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/108340277-108340184 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_1.1/177155581-177155501 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_3.1/158779242-158779174 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/31577439-31577364 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_8.1/88412442-88412508 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_8.1/55667215-55667140 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_2.1/137858044-137857967 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_7.1/137753370-137753295 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_9.1/83011814-83011878 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/220610895-220610817 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/133208942-133208880 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/32028338-32028409 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/23648822-23648885 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/74154605-74154673 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_3.1/3050435-3050514 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/121633849-121633783 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_3.1/165611693-165611633 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/107716057-107716130 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_18.1/14397266-14397342 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_X.1/122151754-122151679 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/20671534-20671597 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_17.1/51705971-51705913 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_5.1/34677939-34678010 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/8129275-8129221 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_5.1/84930229-84930292 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_11.1/37137928-37137874 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_4.1/56138542-56138447 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_12.1/16541116-16541041 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_10.1/121883731-121883653 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_20.1/29636682-29636759 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_1.1/83025863-83025932 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/154484176-154484098 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/70909244-70909178 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/204353695-204353616 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_X.1/73720915-73720838 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/22580764-22580682 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_5.1/110891595-110891674 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_13.1/42547256-42547174 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_6.1/69924701-69924624 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_7.1/34796880-34796950 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/198803501-198803582 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_16.1/78659914-78659837 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_6.1/6473282-6473370 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/31518339-31518430 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/84852577-84852649 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_10.1/26757613-26757534 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_13.1/36515300-36515380 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/158560769-158560699 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/101444379-101444461 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_11.1/107539666-107539589 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_6.1/87087702-87087624 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_16.1/52845319-52845407 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_8.1/122199038-122199110 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/58040083-58040005 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_16.1/11400381-11400302 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_4.1/16623657-16623586 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/120694554-120694484 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_14.1/57290936-57291010 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_7.1/69884124-69884071 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_8.1/106904986-106904923 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_16.1/62780334-62780406 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_7.1/49069658-49069580 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_21.1/41711795-41711728 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_19.1/10330422-10330353 DE 19 dna:chromosome chromosome:GRCh37:19:1:59128983:1
+#=GS H.sapiens_4.1/94472933-94472854 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_17.1/61268649-61268739 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_13.1/81982697-81982645 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_7.1/132782727-132782785 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_4.1/117022965-117022883 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_3.1/25312392-25312299 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_10.1/107790156-107790236 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_2.1/124941513-124941439 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_15.1/65924041-65924126 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/89630109-89630040 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_1.1/17476683-17476605 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_18.1/14553610-14553674 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_12.1/29043607-29043542 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_1.1/99256240-99256297 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_17.1/39212973-39213050 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_1.1/211670946-211670882 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_Y.1/3820039-3819967 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_21.1/32834884-32834806 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_1.1/93788050-93787984 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/82445056-82445136 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_8.1/3649467-3649389 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_11.1/17029509-17029434 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/67870609-67870689 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_17.1/45195953-45195875 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_3.1/93537856-93537930 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_13.1/50911985-50912065 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_8.1/96175092-96175162 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_14.1/78317325-78317395 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_20.1/10036979-10037059 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_1.1/224850778-224850700 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/178583521-178583586 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_11.1/13070767-13070837 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_5.1/13919980-13919909 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_6.1/135560389-135560309 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_17.1/46496586-46496509 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_1.1/74750157-74750237 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_12.1/69557638-69557716 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_12.1/20780210-20780272 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_10.1/19423359-19423449 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_10.1/119676881-119676939 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_7.1/110110213-110110275 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_1.1/199761205-199761295 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_6.1/20331447-20331507 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_8.1/72744916-72744839 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/133475122-133475204 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_10.1/3944916-3945024 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_21.1/38086340-38086417 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_9.1/112404717-112404797 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_7.1/34941256-34941177 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_13.1/55793236-55793300 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_12.1/91255595-91255654 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_17.1/14662540-14662615 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_14.1/61051911-61051851 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_8.1/53942103-53942029 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/67353120-67353044 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_3.1/107084124-107084045 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_6.1/154069489-154069568 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_18.1/32399915-32399995 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_3.1/113738517-113738597 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_20.1/31455923-31455850 DE 20 dna:chromosome chromosome:GRCh37:20:1:63025520:1
+#=GS H.sapiens_4.1/165746554-165746645 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_17.1/63096475-63096534 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_X.1/5605692-5605621 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_13.1/57315669-57315742 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_4.1/152610759-152610835 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/80492169-80492244 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_2.1/164628491-164628419 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/2429336-2429408 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_5.1/173971197-173971118 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/59760206-59760128 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_12.1/40220759-40220849 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_2.1/168758543-168758614 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_11.1/80142596-80142676 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_7.1/146677016-146677090 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_X.1/13579009-13578935 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_14.1/85813256-85813331 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_11.1/119893368-119893445 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_14.1/79084291-79084214 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_10.1/71572531-71572452 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_15.1/49773472-49773394 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_8.1/88053329-88053250 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_9.1/86329122-86329198 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/54477852-54477778 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_6.1/114598553-114598632 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_13.1/83433799-83433877 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_21.1/27239296-27239375 DE 21 dna:chromosome chromosome:GRCh37:21:1:48129895:1
+#=GS H.sapiens_1.1/88388790-88388712 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_13.1/77375943-77376017 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_X.1/130538572-130538494 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_14.1/30160898-30160831 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_9.1/119155870-119155949 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/175848458-175848540 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/30927630-30927706 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_4.1/59829622-59829692 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_5.1/37888361-37888447 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_9.1/122274034-122273972 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_13.1/71475361-71475283 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_4.1/157123932-157123862 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/130359684-130359758 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_2.1/125458425-125458504 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_18.1/40809759-40809838 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_3.1/130075405-130075321 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/154663083-154663008 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/78190882-78190821 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_7.1/9133744-9133822 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_5.1/39586044-39585947 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_13.1/62527198-62527120 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_17.1/68496982-68497098 DE 17 dna:chromosome chromosome:GRCh37:17:1:81195210:1
+#=GS H.sapiens_X.1/32760115-32760035 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_4.1/155645381-155645459 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_5.1/77444586-77444517 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_5.1/97689122-97689201 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_NC.25/12079-12001 DE GL000241.1 dna:supercontig supercontig:GRCh37:GL000241.1:1:42152:1
+#=GS H.sapiens_6.1/114131774-114131698 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_2.1/54931034-54931107 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_9.1/73524759-73524689 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_4.1/146839194-146839273 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_22.1/35207468-35207533 DE 22 dna:chromosome chromosome:GRCh37:22:1:51304566:1
+#=GS H.sapiens_1.1/86574594-86574669 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/141076460-141076531 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_18.1/37996631-37996554 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_2.1/86813268-86813347 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_3.1/159540407-159540484 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_8.1/128145986-128145927 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_10.1/120779955-120780029 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_14.1/30174608-30174508 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_2.1/237795498-237795575 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_12.1/42473656-42473579 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_10.1/2277700-2277623 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_3.1/81690558-81690494 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/107784265-107784316 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/39362167-39362245 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_7.1/62740093-62740152 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_12.1/13740912-13740814 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_9.1/107041055-107040983 DE 9 dna:chromosome chromosome:GRCh37:9:1:141213431:1
+#=GS H.sapiens_1.1/158439462-158439546 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_4.1/82901781-82901701 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/135033143-135033063 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_6.1/72248589-72248666 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_X.1/70845703-70845606 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_3.1/106528817-106528721 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/62182220-62182142 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_1.1/159064081-159064001 DE 1 dna:chromosome chromosome:GRCh37:1:1:249250621:1
+#=GS H.sapiens_8.1/118397962-118398040 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_8.1/31378516-31378591 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_12.1/5522213-5522272 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_10.1/5667126-5667205 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_2.1/208278489-208278414 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_6.1/148845370-148845292 DE 6 dna:chromosome chromosome:GRCh37:6:1:171115067:1
+#=GS H.sapiens_11.1/3578676-3578598 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_18.1/19275547-19275488 DE 18 dna:chromosome chromosome:GRCh37:18:1:78077248:1
+#=GS H.sapiens_15.1/94624411-94624333 DE 15 dna:chromosome chromosome:GRCh37:15:1:102531392:1
+#=GS H.sapiens_X.1/136379587-136379508 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/106941750-106941831 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_X.1/142519391-142519447 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_2.1/29726777-29726855 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_10.1/129692170-129692249 DE 10 dna:chromosome chromosome:GRCh37:10:1:135534747:1
+#=GS H.sapiens_4.1/122190685-122190583 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_8.1/84226854-84226931 DE 8 dna:chromosome chromosome:GRCh37:8:1:146364022:1
+#=GS H.sapiens_X.1/13909209-13909294 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_3.1/28692560-28692482 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_4.1/146459028-146459098 DE 4 dna:chromosome chromosome:GRCh37:4:1:191154276:1
+#=GS H.sapiens_7.1/95359736-95359654 DE 7 dna:chromosome chromosome:GRCh37:7:1:159138663:1
+#=GS H.sapiens_13.1/20839129-20839208 DE 13 dna:chromosome chromosome:GRCh37:13:1:115169878:1
+#=GS H.sapiens_11.1/93818069-93818148 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_12.1/74380524-74380437 DE 12 dna:chromosome chromosome:GRCh37:12:1:133851895:1
+#=GS H.sapiens_14.1/22348688-22348765 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+#=GS H.sapiens_5.1/3719892-3719813 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_X.1/119589819-119589883 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_11.1/99413217-99413294 DE 11 dna:chromosome chromosome:GRCh37:11:1:135006516:1
+#=GS H.sapiens_3.1/187953927-187954006 DE 3 dna:chromosome chromosome:GRCh37:3:1:198022430:1
+#=GS H.sapiens_5.1/45808850-45808962 DE 5 dna:chromosome chromosome:GRCh37:5:1:180915260:1
+#=GS H.sapiens_2.1/52168091-52168020 DE 2 dna:chromosome chromosome:GRCh37:2:1:243199373:1
+#=GS H.sapiens_X.1/15982118-15982178 DE X dna:chromosome chromosome:GRCh37:X:1:155270560:1
+#=GS H.sapiens_16.1/26558428-26558349 DE 16 dna:chromosome chromosome:GRCh37:16:1:90354753:1
+#=GS H.sapiens_Y.1/15779845-15779925 DE Y dna:chromosome chromosome:GRCh37:Y:1:10000:1
+#=GS H.sapiens_14.1/99179197-99179121 DE 14 dna:chromosome chromosome:GRCh37:14:1:107349540:1
+H.sapiens_13.1/49567006-49566901 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/107923792-107923714 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/35544547-35544476 TTAGAT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/33053357-33053450 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_7.1/137095299-137095226 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T.....T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/19100550-19100497 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_1.1/164701792-164701870 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................C.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/68038940-68038866 .TAGGT.....C.AG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_Y.1/16255032-16255111 TTATGT.....T.GG..T..A....C.A.A..A...G...G....T..........A........C.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/78684849-78684770 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/102803629-102803549 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_7.1/70331740-70331819 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........G........A.......T.........T...G.C...............A........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_12.1/65806432-65806356 .TAGGT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............G............................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/140063757-140063828 .TATGT.....T.G...T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/145673253-145673319 ...GAT.....T.GG..T..G....C.A.A..A.......G....T..........A........A.......T.............G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_8.1/75316483-75316561 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................A....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/58241727-58241653 ....GT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/9215317-9215239 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/5959133-5959195 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/123101247-123101157 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/35165291-35165214 TTAGGT.....T.GG..T..G....C.A.A..A...A........T..........C........A.......T.........T...G.C...............A........................G...................A..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/178351842-178351911 ..AGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C.....................................................................................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/109325838-109325779 TTAGTT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/108039241-108039320 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/11149279-11149387 TTAGGT.....T.CG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................GCGGCAGTTAACCATTAACCATTAACCCATTAA....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/76348944-76348881 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................A............................................................................................................................................................................... [...]
+H.sapiens_4.1/13679946-13679866 TTAGAT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_3.1/50865115-50865038 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/142708263-142708322 ...........................A.A..A...A...G....T..........G........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/99520157-99520073 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T...............GGTT.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/49894414-49894352 TTAGGT.....T.GG..G..G....C.A.A..A...G...G....T..........A........G.......T.........T...C.C...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/33739050-33738973 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_10.1/28741187-28741252 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G.......................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_18.1/71734515-71734437 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/96920909-96920830 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...C.C...............G........................G...................C..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/140981762-140981839 TTAGGT.....T.GG..T..G....T.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C...........................................................................................T................ [...]
+H.sapiens_9.1/73732275-73732334 TTAGGT.....G.GG..T..G....A.A.A..A...T...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/111001521-111001446 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T.....................................................................................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_18.1/33907333-33907408 TTAGCT.....T.GG..T..G....C.A.A..A...T...G....T.........................................G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_10.1/109566953-109566884 ...........................A.A..A...A...C....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T.............................TTA....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/179679390-179679469 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/157390677-157390755 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/211802792-211802859 ..AGAT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.A...............A........................G...................T..................T.......................T....................T................................T...............................G....................................A.......................................................................................................................................... [...]
+H.sapiens_20.1/8603541-8603488 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_9.1/93793923-93793841 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.............................................................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/76241565-76241634 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........G.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_X.1/133793823-133793745 TTAGGT.....T.GG..T..G....G.A.A..A...A........T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_4.1/159458164-159458225 TTAGGT.....TTGG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_X.1/129332388-129332309 TTAGGT.....T.AG..T..G....C.C.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/66760434-66760355 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/62116231-62116153 TTAACT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/9534057-9533996 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_3.1/94020912-94020991 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_1.1/168717118-168717039 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/34963270-34963347 ..AGAT.....C.AG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/130743555-130743492 .TGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.................G........................A...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/103112987-103113055 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_4.1/16530066-16530000 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/199584406-199584328 TTACGA.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/112277369-112277443 .TAGGT.....T.AG..T..G....C.A.A..A...A...A....T..........G........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/5239389-5239312 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/15469390-15469317 .....T.....T.GG..T..G....C.A.G..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/97258936-97258995 .............................................T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/67700789-67700711 .TAGGC.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/120466487-120466408 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/183325541-183325620 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................T........................................A..................................................T................ [...]
+H.sapiens_X.1/113826669-113826741 TTAGGT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/14878575-14878655 TTAGGT.....T.GT..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/24671328-24671251 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/18507503-18507562 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/85696277-85696354 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.T...............A........................A...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/227603020-227602944 ..AGGT.....T.GG..T..C....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/145097997-145097895 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/16556446-16556522 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/43712804-43712881 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/7783782-7783704 TTAGAT.....T.GG..T..G....T.G.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/67467756-67467826 .................T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................G..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/7944476-7944565 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T............................TTTG....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/105870337-105870416 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/93112104-93112186 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/87185547-87185458 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/51926423-51926502 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/93064224-93064137 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................C.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/184034469-184034531 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_12.1/45513677-45513583 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_9.1/104650141-104650062 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/68266302-68266393 .........................C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/201450273-201450196 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/94318145-94318222 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........T.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_10.1/28599864-28599787 TTAGGT.....T.GA..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...A.A...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/132825302-132825242 ..AGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/75668274-75668326 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_17.1/65467610-65467689 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/40084937-40085016 TTAGAT.....T.GG..T..G....C.A.A..A.......C....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/21149898-21149966 ...........T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/39334003-39333910 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/93468166-93468090 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_11.1/113239604-113239525 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/118343486-118343564 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/113390680-113390769 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............A........................G...................T..................T.......................A....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/36863111-36863193 TTAAGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........TTTGG.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/18445901-18445981 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/10018988-10018929 ..AGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/119639026-119639108 TTAGGT.....T.GG..T..G....T.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/8450038-8450117 TTAGGT.....T.GG..G..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/57168871-57168769 TTATAT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G.............TCATTACTTTTATTAGCATTTTGC.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/142166360-142166436 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/19300760-19300695 TCAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......G.........T...G..............................................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/4383131-4383205 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/75906141-75906041 TTAGGT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/49446508-49446584 .TAGGT.....T.GG..T..G....C.A.A..A...A........T..........A........A.................T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/27986390-27986288 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/63278417-63278355 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........T........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/29070427-29070485 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/33194672-33194751 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/35696549-35696474 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.T...............C........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A................................................AGT................ [...]
+H.sapiens_4.1/111050175-111050123 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_6.1/106323847-106323770 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C.............ACA........................G...................C..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/198518364-198518435 TTGGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...A.T...............G........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/73380886-73380810 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...A.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/77834126-77834062 TTAGTT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/31315697-31315776 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................G................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/34559248-34559333 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/153177803-153177876 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/8946935-8946859 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...G.T...............G........................G...................A..................G.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/70880041-70880120 TTCGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/114950996-114950924 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/180685010-180684936 ...........................A.A..A...A...G....T..........A........A.......C.........T...A.C...........TTTTA........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................T.....................................TTTC..................................................T................ [...]
+H.sapiens_4.1/96906805-96906869 ....................................A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/37871674-37871616 .....T.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A................................................................... [...]
+H.sapiens_5.1/78202463-78202524 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................G............................................................................................................................................................................... [...]
+H.sapiens_22.1/22242843-22242781 .TAGGT.....A.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_1.1/18916588-18916699 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/37068668-37068747 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A........................................AAACTTTTAAT................ [...]
+H.sapiens_3.1/19206718-19206772 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_19.1/56355102-56355179 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_8.1/62548174-62548122 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_10.1/93465898-93465957 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/37145281-37145200 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C......................................GCA..................................................T................ [...]
+H.sapiens_8.1/39613629-39613705 ..AGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........A...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_9.1/113535321-113535241 TTAGGT.....T.GG..G..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/120739328-120739250 TTAGGT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_16.1/18530220-18530296 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/151604386-151604469 TTAGGT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............A........................G...................T..................T.......................T....................T................................T.............................TAG....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/94126227-94126316 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/98798076-98798014 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/34855547-34855625 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/16091228-16091289 .............................................T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................G........................................A..................................................T................ [...]
+H.sapiens_13.1/88383262-88383184 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/136299032-136298955 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/38544602-38544525 TTTGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/104212624-104212699 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/18862138-18862066 ....GT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_20.1/37774282-37774352 TTGGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T................AAT.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_17.1/65596860-65596926 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/37770434-37770356 TTAGGT.....C.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/7946507-7946585 .TAGGC.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/242637446-242637514 ....................G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/136584670-136584591 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/96169277-96169197 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_20.1/55035410-55035334 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/58940108-58940022 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............T........................T...................T..................T.......................T....................T................................T.............................TTT....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/135737563-135737641 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/8028613-8028545 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_21.1/22973756-22973829 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_9.1/101475094-101475017 TTAGTT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/6437632-6437699 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.T...............G........................G...................G..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................A................ [...]
+H.sapiens_3.1/174693253-174693326 .TAGGT.....T.GA..T..G....C.A.A..A...A...A....T..........A........A.......T.........T.....................................................................................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/108288464-108288387 ..AGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/134620705-134620633 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T..................................................................................................................................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_17.1/13403574-13403646 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/19846337-19846267 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/51170432-51170511 TTAGGC.....T.AG..T..A....C.A.A..A...A...G....T..........A........A.......T.........G...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_8.1/139967180-139967082 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/86639093-86639151 TTAGGT.....T.GA..T..G....C.A.A..A...C...C....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/46742299-46742222 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/72382788-72382709 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/106517268-106517187 TTAGTT.....T.GG..T..G....C.A.A..A...G...G....C..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/31940286-31940360 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................C....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/115629064-115628966 TTAGGT.....T.GG..T..T....C.A.C..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G.................TAACGGCAAATTACTTGTAT.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/63353454-63353530 TTAGGT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/101876312-101876231 TTGGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................A.................ATT..................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/147222821-147222751 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/121937526-121937447 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_5.1/3913164-3913092 TTAGGT.....T.AG..T..G....A.A.A..A...C...A....C..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/197750756-197750681 TTAGGC.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_10.1/59575566-59575489 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_10.1/120312913-120312835 TTAGGT.....T.GA..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/166290303-166290225 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/3428118-3428051 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_7.1/71595564-71595486 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/63143275-63143196 .TAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/51726349-51726414 TTAGGT.....T.CG..T..G....C.A.A..A.......G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/59930276-59930395 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................CCACTATTAAAGTTTAATATTAATTAAATTTCATATATCCAA..................................................T................ [...]
+H.sapiens_4.1/176670402-176670321 TTAGGT.....T.AA..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/13108636-13108715 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T..............................TG....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/36515990-36515911 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........C........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/172004049-172003971 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/51614882-51614960 TTAGTT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/38064467-38064372 TTAGAT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......TCACAGTTTTT...G.C........TATTGAAA........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_X.1/149435154-149435247 TTAGGA.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.T...............G........................A...................T..................C.......................T....................T................................T...............................G....................................C.............................A........................................G..................................................T................ [...]
+H.sapiens_6.1/112590909-112590830 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......C.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_3.1/4821494-4821562 TTTGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/194474471-194474416 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_5.1/109197177-109197099 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................C..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/118083993-118083934 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/10057471-10057541 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_4.1/9169954-9170021 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_8.1/40243672-40243770 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A..AGGAAT.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/177723149-177723225 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/54148689-54148766 TTATGT.....T.GG..T..G....C.C.A..A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/103229254-103229326 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_6.1/133586397-133586470 ...........T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_11.1/32135553-32135678 TTAGGT.....T.GG..T..G....C.G.T..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/21187976-21187915 ...GGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A............................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/12038264-12038197 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T..............................................................................................................................................................................................................................................................................................................................................................T................ [...]
+H.sapiens_4.1/78886479-78886539 ..AGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/56002911-56002844 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/189745381-189745467 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_14.1/29896119-29896195 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/148224279-148224200 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_15.1/61110381-61110460 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/19446772-19446835 .................T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/53365959-53366028 ...GGT.....T.GG..T..G....C.A.A..A...A........T..........A........T.......T.........T...G.T...............G........................T...................T..................T.......................C....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/149554886-149554960 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.T...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................C................ [...]
+H.sapiens_16.1/19689499-19689435 TTAGGT.....T.GG..T..G....T.A.G..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_8.1/15379468-15379395 .....T.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/176701407-176701483 TTATGT.....T.GT..T..G....C.T.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/51948186-51948107 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/129325867-129325947 TTAAGT.....G.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................G................ [...]
+H.sapiens_NC.49/74886-74808 TTAGGG.....T.GG..T..A....C.A.A..A...A..AG....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/204622312-204622234 TTAGGC.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_20.1/38188414-38188335 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........G.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/165484586-165484523 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.T...............G........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_3.1/4493184-4493106 .TAAGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/213291075-213290996 TTAGGT.....T.GG..T..G....C.G.A..A...C...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/120259931-120259856 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/121002722-121002800 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........G.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_10.1/13888230-13888295 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/64024969-64025049 .TAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_10.1/14482909-14482844 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T.........................................................................................................................................................................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/133915829-133915925 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C........AAATTGCA........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/41663327-41663252 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_20.1/12766828-12766762 TTAGGT.....T.GG..T..G....................................................................T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/112498156-112498234 TTAGGT.....T.GG..T..G....C.A.AGAA...A...A....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/14719716-14719638 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/53610103-53610161 TTAGGT.....T.GC..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/117898738-117898685 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_X.1/98454339-98454418 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/32764378-32764299 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_12.1/10267456-10267542 ....GC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/69203333-69203409 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/110288509-110288611 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/189625704-189625625 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................G................ [...]
+H.sapiens_12.1/277674-277732 ..AGGT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/45866831-45866894 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_X.1/71012024-71012090 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................G..................................................T................ [...]
+H.sapiens_15.1/50893962-50894040 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/128419287-128419192 .TAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/102137305-102137368 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A............................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_17.1/71311939-71312019 TTAGGT.....A.GA..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/5875896-5875826 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....C..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_9.1/126347736-126347665 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A................................C...............A........................T...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/117850350-117850430 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/175956513-175956575 ..AGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/11334803-11334869 TTAAAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_20.1/21244871-21244795 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/109847472-109847361 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/194855781-194855861 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/42116085-42116157 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_1.1/245220579-245220649 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_2.1/180339058-180339122 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/113226309-113226246 TTAGAT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/71587679-71587601 .TAGGC.....T.GG..T..G....T.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/37289002-37289101 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/77975857-77975936 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/164716164-164716216 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A..................................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_9.1/120012883-120012962 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/5709840-5709903 ........................................................A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_17.1/2978366-2978434 TTAGGT.....T.G...................................................A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/25003980-25003900 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/39009284-39009358 TTAGGT.....T.GA..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/25213610-25213663 .TAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......C.........T...G.A...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_4.1/18799421-18799496 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_1.1/23596786-23596700 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..........................................CTCCCCCTT................ [...]
+H.sapiens_6.1/104956076-104956156 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_7.1/19686900-19686976 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/68965658-68965595 TTAGGT.....T.GG..T..G....G.A.G..A...A...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_4.1/4086165-4086087 .TAGGC.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_11.1/78322095-78322174 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................A...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/6507148-6507069 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/113494968-113494886 ..AGGT.....T.GG..T..G....C.A.A..A...T...G....T..........C........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/241404677-241404602 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/101051187-101051108 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................T........................................G..................................................T................ [...]
+H.sapiens_2.1/78644185-78644112 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G..........................................G...................T..................T.......................T....................T.....................................................................................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/118383099-118383022 .TAGGT.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/91518510-91518608 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/77268987-77268908 TTAGGT.....C.AG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/99722206-99722120 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/68186046-68185968 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/26983185-26983108 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/168537191-168537107 .TAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A...........................................CTGGTAAT................ [...]
+H.sapiens_10.1/3888274-3888339 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/106009729-106009802 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/34906820-34906888 ..AGGT.....T.GC..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/105496681-105496602 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................G..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/81508747-81508668 TTGGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_X.1/78413612-78413530 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/209957275-209957351 ..AGGT.....G.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C..............CG........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/55277736-55277842 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/62552228-62552164 TTACAT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_12.1/68094346-68094238 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/40551104-40551033 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/74885117-74885193 ...GGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/39724692-39724614 TTAGGT.....T.GG..C..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/68403991-68404056 .............................A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_8.1/4238642-4238588 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/37487215-37487147 TTAGGT.....T.GG..C..A....C.A.A..A...T...G....T..........C........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/127232307-127232244 ........................................................A........A.......C.........T...G.C...............A........................G...................T..................T.....................ACT....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/216143949-216143870 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................G................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/28332263-28332334 TTAGGT.....T.GA..T..G....T.C.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................C.......................T....................T................................................................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_12.1/127880334-127880401 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_22.1/33306690-33306616 ....GT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/38390896-38390819 ..AGGT.....T.TG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/4662512-4662437 TTAGGT.....T.GG..T..A....C.A.G..A...A...G....T.........................................G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/173197377-173197296 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/17446628-17446574 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T......................................................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_8.1/34267045-34267118 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/42562918-42562837 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_18.1/66188212-66188293 TTAGTT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/97378609-97378551 TTAGGT.....T.GG..G..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_8.1/8603107-8603048 TTAGGT.....T.GG..T..G....C.A.A..T...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/108839427-108839506 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/45697973-45697896 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/30340283-30340204 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/65215489-65215423 ...........................A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/26216053-26215995 .TAAGT.....T.GG..T..G....C.A.A.........................................................................................................................................................................................................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_2.1/157871767-157871689 TTAGCT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/95360454-95360571 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................G....................T................................T...............................ATTCTTCAAAAGAATTGTTATTCTTCAAAAAGAATAAC.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/72693874-72693938 .TAAGT.....T.GG.AT..G....C.A.A..A...A...G....A..........A........A.......C.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/149165262-149165186 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/27695349-27695424 ..AGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/156287676-156287599 .TATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/36068572-36068650 TTAGGT.....T.GG..T..G....C.A.A..A...A...G...............A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/181481849-181481921 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/89066926-89066844 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/87274282-87274227 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_2.1/107766190-107766115 TTAGAT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/87051050-87051111 TTAGGT.......GA..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/79065250-79065168 .TAGCT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................C................................C...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_8.1/63346203-63346280 .TAGGT.....T.GA..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_6.1/129102991-129103071 TTAGAT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/114202364-114202288 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_13.1/40187139-40187199 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/56989207-56989109 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_10.1/12172751-12172823 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T.....................................................................................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/41626528-41626600 TTAGGG.....C.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/20988479-20988552 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/178959652-178959571 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...C.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_2.1/18400964-18400900 TCAGGT.....T.GG..A..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_15.1/87847042-87846967 .....T.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/105104682-105104752 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_20.1/3487657-3487750 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G...................................GGAGGTTTTGTTTTTT................ [...]
+H.sapiens_17.1/15773546-15773609 TTAGGT.....T.GG..T..G....T.A.A..A.......G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/66624224-66624303 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/128877634-128877709 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/143750534-143750458 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.............G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/71487277-71487356 TTAGGC.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/69716237-69716306 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_12.1/34180292-34180214 TTAGGT.....T.GG..T..A....A.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/132713950-132713883 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/148393765-148393844 TTAGGT.....A.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................A................ [...]
+H.sapiens_8.1/107811978-107811899 TTAGGT.....T.GT..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/54101900-54101975 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................A....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_9.1/110474739-110474665 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......G.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/56958293-56958215 TTAGAT.....T.GA..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_11.1/46929892-46929971 TTAGTT.....T.GA..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/48782389-48782325 TTAAGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_18.1/32433110-32433199 .TAGGT.....C.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/31636737-31636631 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/21407515-21407593 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/7524522-7524618 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C......................................TTT..................................................T................ [...]
+H.sapiens_18.1/71574719-71574633 .TAGGT.....G.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/15848908-15848829 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....A..........A........A.......T.........C...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/48308821-48308732 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/43063501-43063577 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/32772680-32772623 TTAGGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.T...............G........................G.................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_11.1/62731982-62731905 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/23145187-23145257 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_5.1/92533642-92533583 TTAGGT.....T.GG..T..G....C.A.A.....................................................T...G............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_3.1/1360859-1360937 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C.....C...............T........................A...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/5476888-5476966 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................A....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/96408229-96408152 ..AGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................G........................................A..................................................T................ [...]
+H.sapiens_15.1/40119895-40119968 TTAGAT.....T.GG..T..G....C.A.A...........................................T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/50416994-50417068 TTAAAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/63725518-63725578 ..AGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/18013069-18012998 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/53202547-53202602 TTAGGT.....T.GG..T..G....C.A.A..A...A.................................................................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_13.1/55194459-55194385 TTAGGT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A......CT.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_17.1/9974288-9974212 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................A...................T..................T.......................T....................T................................G...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/41402335-41402413 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............T........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/77128286-77128361 TTAGGT.....T.GA..T..G....G.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/158186029-158186103 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/20534163-20534084 .TAGGT.....T.GG..T..C....C.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/89227706-89227785 TTAGGT.....T.GG..C..T....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_7.1/41814033-41814098 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A.................................................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_14.1/64561835-64561756 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/24517340-24517286 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_15.1/78813779-78813856 TTCGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/106145070-106145136 .TAGGC.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/166324652-166324598 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_2.1/194121329-194121259 TTAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G....................................................................................................................................................................................................................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/13969343-13969281 TTATGT.....T.GG..T..G....C.A.A..A...A...T....T..........T........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_7.1/103070347-103070414 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/188607399-188607320 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A.................................................AT................ [...]
+H.sapiens_4.1/8220188-8220258 ...........T.AG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/47708339-47708265 TTAGGT.....T.AG..T..G....C.A.A..A.......G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................A...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/129850144-129850066 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/99504303-99504227 TTAGCT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/211391758-211391700 .............................................T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/17332259-17332180 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............A........................C...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/20867484-20867571 .TAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T.............ACT [...]
+H.sapiens_4.1/125525993-125526067 ..AGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/143862029-143862082 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_6.1/100677426-100677507 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_6.1/22397838-22397916 .TAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................................................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/118102566-118102646 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/27161974-27162053 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........A...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_7.1/97535387-97535309 .TAGGC.....T.AG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/36930013-36929930 TTACGT.....T.AG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.T...............G........................G..............GGTTTT..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/80229779-80229858 TTACGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G..............................TAATTGC.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/69218409-69218475 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/117009721-117009663 .........................C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G............................................................................................................................................................................................................................................................................................................................................T................ [...]
+H.sapiens_9.1/21132547-21132478 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/105229975-105229868 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A.................................................GT................ [...]
+H.sapiens_16.1/79962036-79962111 ..AGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......................................G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/135811679-135811756 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_10.1/113763823-113763751 .....T.....C.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/19172552-19172650 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C................GTAAAAAAAACCGC........................................A.................................................GT................ [...]
+H.sapiens_10.1/67444468-67444389 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......C.........T...G.C...............G........................A...................T..................T.......................T....................T................................G...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/76698606-76698678 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/17061440-17061362 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/110574309-110574220 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/83401940-83401862 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/160438896-160438975 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/131791847-131791768 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/6800285-6800363 TTAGGT.....C.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/188089235-188089333 ...........T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................A................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/7711103-7711024 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................A....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_10.1/122316359-122316434 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/74110373-74110279 TTAGAT.....T.GG..T..A....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/4904851-4904922 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/127383631-127383552 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/14630060-14629982 .TAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................A.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/54774164-54774242 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/112663548-112663469 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/8048243-8048164 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................G.......................T....................G................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/77255789-77255710 TTAGGT.....T.GG..T..G....C.A.A..A...A...G...............A........A.......T.........A...A.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/65591918-65591854 ...GGT.....T.GG..T..T....C.A.A..A...A....................................T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/12129996-12130059 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_X.1/5484236-5484327 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/90359820-90359899 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................G..................................................T................ [...]
+H.sapiens_6.1/113743260-113743339 .TATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/151469141-151469219 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................T....................................C.............................C.......................................CA..................................................T................ [...]
+H.sapiens_1.1/72529196-72529123 .TAGGT.....G.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_2.1/218000885-218000960 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/76438722-76438812 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/66349355-66349283 TCAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_7.1/142815490-142815413 .TAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/39927074-39927148 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................G..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/3390966-3390907 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_Y.1/19095266-19095183 .........................C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A...................................CTACTTTCAATGTCAT................ [...]
+H.sapiens_3.1/63790430-63790360 TTAGGT.....T.AG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/85191319-85191249 TTATGT.....T.GT..T..G....C.A.G..A...A...G....T...........................................T...............G........................G...................T................................................................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/248841253-248841193 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/155889779-155889858 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/54499758-54499691 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/32510325-32510246 TCAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/67084128-67084206 .TAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/109145536-109145470 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/47748655-47748724 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/15532794-15532859 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_3.1/132393157-132393233 TTATGT.....T.AG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/21481167-21481089 TTGGGT.....T.GG..T..G....G.A.A..A...A...T....T..........A................T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/64146281-64146187 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................C.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/91214595-91214531 TTAGGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_5.1/64591040-64591117 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G............................................T..................G.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/34628741-34628820 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/3466563-3466509 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_5.1/121806442-121806512 TTAGGT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_8.1/15265664-15265605 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/39173489-39173434 TTAGGT.....T.GG..T..G....T.G.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_8.1/49851407-49851486 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_7.1/100957906-100957823 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/96357111-96357181 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/109864045-109863972 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........G.......T.........T...G.T...............G............................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/221226302-221226372 .TAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/222186349-222186428 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/26906476-26906379 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/40591063-40590984 TTATGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C............................................................T..................T.......................T....................T..............................AAT...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/71618974-71619053 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/13064624-13064509 TTAGGT.....T.GG..G..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/11051935-11052013 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/125582331-125582408 TTAGGT.....T.GG..C..A....C.A.A..A...A..AG....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................T..............................................................................................................................................................T................ [...]
+H.sapiens_15.1/57252170-57252245 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_9.1/125222259-125222163 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......G.........T...A.T...............G........................G...................G..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/174317409-174317487 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/80161403-80161457 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_6.1/104800427-104800481 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/21236840-21236917 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................A................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/138274106-138274208 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/28202571-28202469 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................TGTTGCCATTAAGAGTAATCCGGTT....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/31162745-31162815 .................T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................T....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/105167491-105167428 TTAGGT.....T.GG..T..A....C.A.A.........................................................G.T...............G................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_4.1/153822120-153822186 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/119999427-119999505 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/120853318-120853387 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_20.1/52993093-52993014 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................C....................T................................G...............................C....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_12.1/105721763-105721686 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_13.1/99370320-99370398 .TAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/56609437-56609514 TTATGT.....T.GG..T..G....C.A.A..A............T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................A................ [...]
+H.sapiens_11.1/79549637-79549700 TTAGGC.....T.GG..T..A....G.A.A..A...A...G....T..........C........A.......T.........C...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/68500324-68500246 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_4.1/13113835-13113898 ..AGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/15539029-15539108 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/97398228-97398150 TTAGGT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/39048909-39048995 TTAGGT.....T.GG..A..A....C.A.A..A...A..AG....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................G..................................................T................ [...]
+H.sapiens_1.1/225788149-225788224 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_16.1/68089697-68089776 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/86382959-86383016 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/156505351-156505430 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/33016626-33016568 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....C..........A........A.......T.........T...T............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_11.1/114751912-114751835 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/220816766-220816691 ..AGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/22603150-22603213 TTAGCT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_4.1/155706672-155706738 ..AGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/70793197-70793269 .............GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............T........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/35322238-35322169 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/59548383-59548459 .TAGGT.....T.AA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_9.1/7285042-7284965 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/139540215-139540149 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_5.1/73567512-73567588 TTAAGC.....T.GG..T..G....C.A.A..T...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/45389564-45389644 TTAGGT.....TTGG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_13.1/48499132-48499186 ........................................G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/19650617-19650513 .TAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/40558533-40558596 ........................................G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/7949418-7949342 ...GGT.....T.CA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/6116874-6116952 TTAGGT.......GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................C...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/41908798-41908718 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/47787519-47787444 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T.....................................T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/31173552-31173631 TTAGGT.....G.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/147582151-147582230 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................T........................................G..................................................T................ [...]
+H.sapiens_2.1/208843036-208843115 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/60803885-60803979 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........C...A.C...............G........................G...................TGTTTGCCATTTAAAGTACT.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/158509384-158509305 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/21225670-21225748 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/178465637-178465710 ...GGT.....T.GC..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/69390129-69390051 TTAGGT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/70530195-70530116 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/91741657-91741736 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................A...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................C..................................................T................ [...]
+H.sapiens_16.1/49974605-49974682 ..AGGC.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/56850913-56850843 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/110809666-110809729 .TAGGT.....T.GG..T..G......A.A..A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/106906220-106906283 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_9.1/129920586-129920516 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_1.1/177522011-177522089 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/59655890-59655812 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/104818353-104818430 TCAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T.....................................................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/118484101-118484032 ...........T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.........................................................................................................................................................................................................................A..................................................T................ [...]
+H.sapiens_18.1/33762578-33762651 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/358124-358057 TTAGCT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/97595524-97595603 TTAGGT.....T.GG..T..A....C.A.A..A...A...A....C..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/26747553-26747632 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/224346362-224346263 ..AGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/163093911-163093986 ...GGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/31833877-31833956 TTAGTT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................C.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/21573817-21573880 TTAGGT.....T.TG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_X.1/31571609-31571528 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/171890270-171890196 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_18.1/70374568-70374490 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..........................................G....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/77280141-77280218 TTAAAT.....T.GG..T..G....C.A.A..A...T...A....T...................A.......T.........T...A.................G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................A................ [...]
+H.sapiens_4.1/79109490-79109569 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................G...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/6968540-6968473 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_2.1/23000564-23000463 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/108297549-108297628 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/122323745-122323822 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.A...............G........................G...................A..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/18059725-18059789 ...........................A.A..G...A...G....T..........A........C.......T.........T...G.C............AGAG........................G...................T................................................................................................................................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/107202028-107202122 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/245120589-245120667 TTAGGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/112062811-112062734 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G............................................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/68972086-68972163 TTAAAT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/60414223-60414286 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....G...........................................................................................................................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/84786073-84785999 ..AGGT.....T.CG..T..G....C.A.A..A.......G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/5196153-5196253 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/96352109-96352182 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/36270219-36270141 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/86041099-86041031 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................T........................................A..................................................T................ [...]
+H.sapiens_5.1/98280902-98280820 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/111121209-111121134 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T.....................A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/106741944-106742017 .................T..A....C.A.A..A..TA...T....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/7661573-7661641 TTAAGT.....T.GG..T..G....C.A.A..A.......G....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................G....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/88068260-88068343 ..AGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T.....T...............G........................G...................T..................T.......................T...................CT................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/210814759-210814837 TTAGGT.....T.GG..T..A....C.G.C..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/9086968-9086890 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/50608803-50608882 TTAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/42224814-42224893 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/36703000-36702924 TTAGGT.....T.GG..T..G....C.A.A..A.......T....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_11.1/29455850-29455927 ..AGTT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/28706998-28707077 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............T........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_12.1/106624405-106624467 ...........................A.A..A...T...G....T..........A........A.......T.........G...G.........................................................................................................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/44569443-44569542 TTACGT.....T.GG..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................A.......................TGGCCTACATTAGGACGTGGGT................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/49326224-49326285 .............................................T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/39853391-39853340 .................................................................A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/118944317-118944244 ...GGT.....T.GG..G..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/31209529-31209462 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/14461619-14461542 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/97756293-97756239 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_X.1/38935837-38935767 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....C..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_16.1/26036634-26036555 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/152559434-152559513 TTAGGT.....T.GA..T..G....G.A.A..A...A...G....T..........C........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/245533638-245533717 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/79152826-79152747 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................C..................................................T................ [...]
+H.sapiens_2.1/227989051-227988975 ..AGGT.....T.GG..T..G....A.A.G..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/125862222-125862136 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........AAAAGTAAT.........T...G.C...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/42258014-42258090 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/134998382-134998452 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/22137354-22137420 TTAAGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.T...............G............................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/76730903-76730987 TTAGGC.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.C...............A........................G.............GTGAGAT..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/16244958-16245037 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/106346505-106346575 TTAGGC.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_2.1/185990470-185990393 ...GGT.....T.GC..T..G....C.A.C..A...A...G....C..........A........A.......T.........T...A.C...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/127944244-127944160 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/8734406-8734471 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_18.1/6241511-6241589 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......G.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/78484209-78484130 TTGGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_14.1/78073789-78073684 ...GAT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G..............ACATTGAAAGTAATTACTTTTGC.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/109021283-109021383 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T.............................TTG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/153149273-153149195 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/118049498-118049573 ...GGG.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...C.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/95039903-95039831 ....GT.....G.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/41559419-41559347 TTAAGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/71995269-71995191 .TAGGT.....T.GA..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/124294874-124294796 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/6411203-6411128 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/16928941-16929012 ..............G..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.A...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/48243932-48244010 .TAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/36968064-36968126 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/102071243-102071163 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/70971896-70971827 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/224072770-224072852 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/25965273-25965334 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_5.1/59302063-59302134 TTAGGT.....T.GG.....G....C.G.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/105345538-105345617 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/146948266-146948327 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_12.1/17429662-17429589 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/97287656-97287583 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T..............................................................................................................................................................................................C................ [...]
+H.sapiens_12.1/41039694-41039762 TTAGGT.....T.GG..T..G....C.A.A..A.......G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/10905540-10905620 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_12.1/110419693-110419634 TCAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/16645137-16645211 .....T.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/85595277-85595359 TTAGGT.....T.GG..T..G....A.A.A..ATGGA...A....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/29127495-29127571 .TATGT.....T.CG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/25610297-25610376 TTAGGT.....T.AA..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................A...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/145396476-145396549 ...........T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/80080840-80080762 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G..............................................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/223657898-223657820 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/225755430-225755505 TTATGT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/188212849-188212779 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...T.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/57431955-57432033 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/138404039-138404116 TTAGGT.....T.GG..T..G....G.G.A..A...A...................A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/95368438-95368359 TTAGGT.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........A...G.C...............G........................A...................T..................T.......................T....................T................................C...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/6296647-6296710 TTAAAT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_4.1/163663823-163663745 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C......................................................................A..................................................T................ [...]
+H.sapiens_6.1/67859409-67859487 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/27005307-27005233 TTATGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/109847419-109847472 ...........................A.A..A...A...G....T..........A........A.......T.........T..................................................................................................................................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_13.1/75134387-75134316 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/48293509-48293433 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/72976645-72976726 .............................A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_9.1/87425085-87425017 .TAGGT.....T.CA..T..G....C.A.A..A...A...G....T..........A........A.......T.............................................................................................................................................................................................................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_22.1/40971754-40971827 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_10.1/57759742-57759820 .TAGGT.....C.AG..T..G....C.A.A..A...A...G....C..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/164631446-164631523 TTAAGT.....T.GG..T..G....T.G.A..A...A........T..........A........A.......T.........T...T.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/14733245-14733171 ...........T.GG..T..G....CCA.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/88263549-88263627 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_4.1/179298666-179298590 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/46481684-46481605 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/1840046-1840135 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_20.1/47041975-47041913 TTAGGT.....A.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_1.1/225994330-225994256 ....GT.....T.GG..T..G....C.A.A..A...G...G....T..........A........T.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/82174941-82174864 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................G................ [...]
+H.sapiens_16.1/56136874-56136796 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................A................ [...]
+H.sapiens_6.1/81922123-81922069 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_16.1/20045159-20045214 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G............................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_3.1/152002389-152002318 ..AGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................G........................................A..................................................T................ [...]
+H.sapiens_21.1/23672831-23672760 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................C..................T.......................T....................T................................................................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_4.1/23464725-23464644 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/45648683-45648605 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/56297624-56297550 TTAGGT.....T.GG..T..G......A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/48554684-48554762 TCAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/76738829-76738752 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............T........................G...................T..................T.......................T....................T................................T...............................A....................................T.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/80495090-80495169 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/95724177-95724098 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_11.1/100813868-100813944 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................T...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/5314809-5314869 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_2.1/154759890-154759963 TTAGGT.....T.AA..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C........................................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/28819774-28819851 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/94856814-94856883 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C..............TG........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/26027301-26027363 ................................A...A...G....T..........C........A.......T.........T...G..............................................................T..................T.......................A....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/20742927-20742867 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G.......................................................................................................................................................................................................................C........................................A................................................................... [...]
+H.sapiens_11.1/12432752-12432827 TTAGGT.....T.GC..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/37771842-37771920 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/45080528-45080476 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_14.1/52033393-52033458 ...GGT.....T.GG..T..G....C.G.A..A...A........T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/48978933-48978863 TTGGCT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_5.1/159162421-159162344 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/123881420-123881343 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/103320376-103320301 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_NC.42/149737-149801 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........G.......T.........T...G.G...............G........................A...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/153502332-153502392 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/21022597-21022524 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/219837762-219837708 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_13.1/105661523-105661463 ........................................................A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/95918741-95918818 .TAGGT.....C.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/62448536-62448615 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...A.T...............G........................G...................T..................T.......................T....................T................................T...............................T....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/34386938-34386863 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T.....................................................A...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/24843023-24842962 .............................................T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/85652014-85651936 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_NC.14/11916-11978 TTAGGT.......GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/155140063-155140142 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................G................ [...]
+H.sapiens_4.1/70804142-70804068 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/68273119-68273042 TTAGGT.....T.GG..T..G......A.A..A...A...G....T..........A........A.......T.........C...A.................G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/162915868-162915947 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............C........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/57710843-57710916 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/129718852-129718930 TTAGGT.....A.GG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/82370047-82369968 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................A................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/83110543-83110473 ....GT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/120156697-120156752 TTATGT.....C.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/102387184-102387241 .TAGGT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G.................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_14.1/26333554-26333500 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_12.1/103897780-103897858 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/76589281-76589360 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/112230886-112230966 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_8.1/80409949-80410027 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/22666397-22666473 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................G.......................T....................T................................T...............................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/74414103-74414024 TTAGGT.....T.GG..T..C....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/162109047-162109121 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_18.1/70520624-70520548 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.C...............G........................G...................A..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/103479223-103479302 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_13.1/96223231-96223309 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G............................................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/27182499-27182574 ....GT.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/135929198-135929277 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/47244915-47244839 TTAAGT.....T.AC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................C...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/8590881-8590802 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/33387562-33387465 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_13.1/26984453-26984377 ..AGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/174358684-174358607 TTAGGT.....T.GG..T..G....C.G.A..A...A...G....G..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/31812716-31812604 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................TGCCATTACTTTTAATAATGCCAATTTTAATAAT...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/207614033-207613963 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................G................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_8.1/34174926-34175003 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_3.1/190884499-190884598 .TAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/18932884-18932947 TTAGAC.....T.GG..T..G....T.G.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_5.1/154404355-154404278 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/108259382-108259455 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/90582580-90582661 TTAGCT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/105479216-105479143 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/91255094-91255171 TTGGGT.....TTGG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/224304169-224304093 ...GGT.....T.AG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_8.1/126636390-126636475 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/150123038-150123116 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/19570829-19570750 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/70401392-70401469 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_X.1/14189197-14189289 TTAGGT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C...................CATTAGAAGTAATTTCTGCCCA..................................................T................ [...]
+H.sapiens_2.1/147892111-147892030 TTAGGT.....A.GG..T..A....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/165280041-165280111 .............GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/102388864-102388948 TTAGGT.....C.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G..............................TGTGTGC.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/105698986-105699046 .............................................T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/52019826-52019885 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C........................................A...................T..................T.......................G....................T................................T...............................G....................................C.............................A........................................G..................................................T................ [...]
+H.sapiens_2.1/96656055-96656137 TTAGAT.....T.GG..T..G....C.A.A..A...G...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/69457152-69457227 TTAGCT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_5.1/64895271-64895349 .TATGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_11.1/67420919-67420998 TTAGAT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/120526048-120525978 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G....................................................................................................................................................................................................................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/105185281-105185360 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/45434291-45434221 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/125023442-125023506 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A..........................................................................................................................................................................................................................................................................................................................................C..................................................T................ [...]
+H.sapiens_12.1/40308468-40308389 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/33545982-33545885 ..AGGA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_5.1/25355129-25355205 ...GGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................C................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/142285343-142285272 ....................G....C.A.A..G...A...G....T........TCA........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................A...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/232309326-232309265 ........................................G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/65295227-65295306 TCAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/119822590-119822653 ..AGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_19.1/54049423-54049493 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/18642425-18642349 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/105073880-105073953 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/96073378-96073316 ..AGGT.....T.GC..T..G...............G...G....T..........A........A.......T.........G...G.................................................................................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/51948523-51948599 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T.....................................................................................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/82363192-82363255 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........C...G.C...............G........................A...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_1.1/47090585-47090657 TTAAGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.C........................................A...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/110463603-110463683 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/7870408-7870336 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T..................................................................................................................................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/58035774-58035848 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/45778921-45778982 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/56954935-56955015 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/84966786-84966850 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................C.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_7.1/84295322-84295243 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/38683104-38683183 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/162163041-162162982 ...GGT.....T.GG..T..G....C.A.A..A...A...................A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/67925061-67925128 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_2.1/23684812-23684895 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/228184690-228184622 ..............G..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/97634497-97634577 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A.................................................AT................ [...]
+H.sapiens_7.1/128546911-128546832 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/31356698-31356619 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/138621752-138621824 TTGGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/3984161-3984107 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/93457596-93457521 .TAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/116884136-116884222 ...GGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/38929724-38929648 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............A........................G...................T..................A.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/95193834-95193902 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A................................................................... [...]
+H.sapiens_1.1/89256060-89256138 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/37131639-37131697 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/84538808-84538727 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_3.1/72118116-72118182 .................T..G....A.A.A..C...A...A....T..........A........A.......T.........T..................................................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/202705931-202705854 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...A.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/133509057-133508980 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................G..................................................T................ [...]
+H.sapiens_8.1/49996512-49996452 TTATGT.....T.GG..T..G....C.A.C..A...A...G....T............................................................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_6.1/18572101-18572027 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................G..................T.......................T....................T................................T...............................G....................................T.............................C........................................G..................................................T................ [...]
+H.sapiens_1.1/40173535-40173599 TTAAGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........A...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_17.1/70710587-70710532 TTAGCC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/40569430-40569352 TTAGGT.....T.GG..T..G....C.A....T...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/65557223-65557295 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/216056486-216056556 .................T..G....A.A.A..A...A...T....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/160440256-160440333 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/55296472-55296541 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T.............................................................................................................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/166398219-166398288 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/125231522-125231601 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/170496118-170496187 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_12.1/39307122-39307043 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/139554007-139553926 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_18.1/26776411-26776490 TTAGAT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/7124427-7124335 TTAGGT.....T.GA..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/70682752-70682673 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/35919689-35919631 ...........................A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/189861575-189861652 TTAGAT.....T.GG..C..A....T.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_3.1/8812962-8812883 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/102303329-102303416 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/210838610-210838533 TTAGGT.....T.GG..A..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/98204775-98204857 TTAGAT.....T.GG..T..G....C.A.A..A...G...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/138420542-138420467 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/79848075-79848012 ........................................G....T..........A........A.......T.........T...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_16.1/10049327-10049407 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A......AT.........T...A.C...............T........................G...................T..................T.......................A....................C................................T...............................G....................................C.............................C........................................C..................................................C................ [...]
+H.sapiens_7.1/105607402-105607339 ...........................A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/69244861-69244780 .TAAAT.....T.GG..T..G....C.A.A..A...A....................................T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/54249057-54249126 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/41343445-41343516 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.............................................................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/161698034-161697957 TTAGGT.....T.GG..T..G....T.G.A..A...A...G....T..........A........A.......C.........T...G.A...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_1.1/62066659-62066572 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................G........................................A..................................................T................ [...]
+H.sapiens_9.1/43582126-43582201 TTAGGT.....T.GA..T..G....C.A.A..A...G...G....T..........G........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/183605600-183605520 TTGGTT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_2.1/44208965-44209038 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G.........................................................................................................................................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/99177496-99177422 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_7.1/107677296-107677375 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/118658513-118658441 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/15233197-15233276 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........T.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/68849322-68849257 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/118026301-118026376 ...GGT.....T.GG..T..G....C.A.A..T...A...G....T..........A........T.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_2.1/54806249-54806171 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/4729219-4729136 TTAGGT.....C.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/27350637-27350569 ..............G..T..G....C.A.A..A...G...A....T..........A.......TA.......T.........T...G.G...............G.......................................................................................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/30771105-30771183 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/4479851-4479930 TTAGGC.....T.GA..T..G....C.A.A..A...G...G....T..........A........A.......T.........G...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/12345400-12345332 .TAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_8.1/127759903-127759810 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/33766606-33766676 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/92503784-92503861 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T....................................................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/100047174-100047106 .TAGGT.....T.GA..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................C....................................................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/2528001-2527928 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........G..........................T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/97368344-97368263 TTAGGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.C...............C........................A...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/183759040-183758962 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/54684513-54684591 TTAGGG.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/70445566-70445491 ...GGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/105199268-105199348 TTAAGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T......................CT....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/48118232-48118319 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/190217312-190217376 TTAGAT.....T.CG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/5810783-5810690 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/29737695-29737630 ..AGGC.....T.CA..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C.......................................................................................................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/24758980-24758911 ...........T.GA..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................A...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/82139474-82139561 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/5132949-5132882 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_X.1/80531863-80531784 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/45782786-45782840 .........................................................................T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/235285387-235285321 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G.................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_3.1/64415736-64415813 TTAGGT.....T.GG..T..A....A.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/19172608-19172552 ...........................A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................T..............................................................................................................................................................T................ [...]
+H.sapiens_16.1/5419829-5419906 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/124631102-124631180 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_20.1/38404718-38404797 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_16.1/6123280-6123335 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....G..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_8.1/4363744-4363665 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.T...............C........................A...................T..................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/8741921-8741981 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_4.1/14917642-14917564 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T.........................................G.T...............G........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_13.1/66540472-66540551 TTAGGT.....T.GG..C..A....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/13936493-13936423 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/157217794-157217716 TTAGGT.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/12777918-12777992 .TAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/135482773-135482854 TTAAGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G..........................................G...................T..................T.......................T....................G................................T...............................T....................................C.............................T........................................A..................................................C................ [...]
+H.sapiens_2.1/165815509-165815437 TTAGGC.....T.GG..T..G....C.A.A..A...A...T........................A.......T.........T...A.G...............G...............................................................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/63639412-63639484 .....T.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/54560591-54560673 TTAGGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/126409417-126409494 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T.....................................................................................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/176395458-176395384 ....GT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................G................ [...]
+H.sapiens_4.1/139732836-139732915 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/53399505-53399583 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/116822176-116822254 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/96786796-96786869 TTAGGT.....T.GG..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/48401994-48402069 .TAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/9083983-9083914 ..AGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/175136380-175136460 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/98273629-98273559 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_22.1/44011431-44011358 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................A...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/123751847-123751776 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C..............................AA....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/85203346-85203274 .TAGCT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/56543734-56543661 ...........T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/207438700-207438776 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/134964703-134964622 TTAGGT.....T.GG..T..G....C.A.A..T...A...A....T..........A......TAA.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/34059687-34059758 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_12.1/63514194-63514118 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T.....................................................G...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/117716085-117716163 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/29846250-29846175 TCAGGA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_3.1/3688212-3688149 ........................................G....T..........A........A.......T.........C...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/2482642-2482579 TTAAAT.....T.GG..T..G....C.A.A..A...T...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_2.1/156961367-156961290 ..AGGT.....A.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/75370871-75370810 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................ATT................ [...]
+H.sapiens_18.1/42126142-42126063 .TAGGT.....T.CG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............C........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_21.1/32167220-32167142 TTGGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/8382433-8382367 .TGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_9.1/89331920-89331845 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................G........................................A..................................................T................ [...]
+H.sapiens_1.1/150796716-150796636 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/147966200-147966275 TCAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/52899857-52899934 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.A...............G........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/87329648-87329724 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/13141140-13141197 .................T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/105900385-105900312 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...A.C...............A........................G...................T..........................................A....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_14.1/53493775-53493698 TTAGAT.....T.GG..T..G....C.A.G..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/84420913-84420990 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........C.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_9.1/17700833-17700891 .............................................T..........A........A.......T.........A...G.C............................................................T..................T.......................T....................T................................T...............................G....................................T......................................................................G..................................................T................ [...]
+H.sapiens_12.1/63429104-63429042 ..AGGT.....T.GA..T..G....C.A.C..C...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_3.1/170552014-170551931 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................A...................T..................G.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/25928770-25928692 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....A..........A........T.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/29645313-29645366 TTAGGT.....T.GG..T..G....C.A.A..A...A.................................................................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_11.1/92053380-92053304 TTAGGC.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/91628219-91628121 TTAGG......T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/76392761-76392684 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/65016301-65016380 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/72429057-72429133 TTATGT.....T.GG..T..G....C.A.A..A...A...G....C..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/27000686-27000746 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T......................................................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_2.1/4478240-4478302 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...C.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/95715155-95715088 TTAGGT.....T.GG..T..G....C.A.A..A.......G....T..........A........A.......T.........T...G.C...............A............................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_12.1/8382434-8382367 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_11.1/70130080-70130158 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.C...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................T...........................................................................................T................ [...]
+H.sapiens_3.1/100701326-100701393 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_X.1/112221465-112221539 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/82201271-82201351 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G..................CT..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/24529063-24529129 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/37439844-37439923 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/27445701-27445777 TTAAGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/39001459-39001536 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_8.1/109661793-109661868 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/231361319-231361236 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/170695671-170695599 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................G........................................A..................................................T................ [...]
+H.sapiens_7.1/113651909-113651840 TTAGGT.....T.GG..T..G....C.T.G..A...A...G....T..........A........T.......T.........T..................................................................T..................T.......................T....................T................................T...............................T....................................C.......................................................................................................................................... [...]
+H.sapiens_2.1/80471827-80471750 ...GGT.....T.GA..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T...................CT................................T...............................G....................................A.............................C........................................G..................................................T................ [...]
+H.sapiens_2.1/59626468-59626391 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/100400694-100400616 TTAAAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/122520182-122520080 TTAGGT.....T.GA..C..A....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/3071950-3072003 TTAGGT.....T.GG..T..G....T.A.A..A...A...A....T..........A........A.......C.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_9.1/113992667-113992729 .........................................................................T.........T...G.C...............A........................G...................T..................T...................GTAAT....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/73955529-73955447 TTAGTT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/77742418-77742334 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/88762287-88762366 TTAGGT.....T.GG..C..G....T.A.A..A...A...G....T..........A........A.......C.........T...G.A...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/154558735-154558813 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/41076215-41076284 .TGGGA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_11.1/31890859-31890800 .............GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_7.1/43269473-43269555 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...............GTCTT..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/96293902-96293827 TTAGGC.....T.GG..T..G....C.A.A..A...A...A....C..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_11.1/104685453-104685376 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/95571889-95571824 TTACGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_10.1/113718479-113718548 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................A................ [...]
+H.sapiens_4.1/144533709-144533786 .TAGGT.....T.GT..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/2344394-2344313 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/113836283-113836209 TTAGAT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/160657072-160657147 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G...................................AT.............................G........................................G..................................................T................ [...]
+H.sapiens_5.1/7543749-7543695 TTAAGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_2.1/27075587-27075666 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/73534351-73534287 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/146421686-146421752 TTAGGT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/172899082-172899141 TTAGGT.....T.GC..C..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/26516858-26516782 .TAGAC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/79729950-79729848 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/7961155-7961092 TTATGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/4675187-4675107 TTAGGG.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/230147100-230147163 .TAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_13.1/80069602-80069692 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/61905795-61905691 TTAGGT.....T.GG..T..A....C.A.A..A...A...A....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/175668002-175668072 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G....................................................................................................................................................................................................................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/169871304-169871229 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_10.1/80510375-80510449 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/164512276-164512342 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_X.1/131941078-131941148 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............G........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_6.1/164960154-164960232 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C......................................................................A..................................................T................ [...]
+H.sapiens_12.1/98298528-98298458 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_20.1/12961408-12961484 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_16.1/21940172-21940235 TTAGAC.....T.GG..T..G....T.G.G..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_3.1/132295674-132295570 TTAGGT.....T.CG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G...............................AACTGC.............................A........................................A..................................................T................ [...]
+H.sapiens_7.1/50412723-50412644 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/153468690-153468619 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........C.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/155202503-155202442 .............................................T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/129299948-129299869 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................T...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/13174880-13174956 TTAGGT.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/27396957-27396869 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........C...G.C...............A........................G...................T..................T.......................T....................T................................T.....................TTTTTTTTTTG....................................C.............................C........................................A................................................................... [...]
+H.sapiens_4.1/111313257-111313197 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.............G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/103276761-103276839 ..AGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_2.1/123490557-123490671 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/21179759-21179833 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/85088691-85088612 TTAGGT.....T.GG..T..G....T.A.A..A...A...T....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/38058222-38058297 ..AGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................T....................................T............................TC........................................A..................................................T................ [...]
+H.sapiens_7.1/118041890-118041954 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/117514850-117514926 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/7126961-7127037 TTAGGT.....T.GG..T..A....C.A.A..A...G...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C...........................................................................................T................ [...]
+H.sapiens_7.1/106804565-106804652 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/84350905-84350967 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......G.........C...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/65102517-65102574 ....GT.....G.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/64825848-64825778 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/64059999-64060052 ..AGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_15.1/47274148-47274224 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/98839022-98838945 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...T.T...............G........................A...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/20456060-20456139 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/70276804-70276750 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_4.1/158331622-158331723 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/37299878-37299957 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/185033152-185033090 TTAGCT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_11.1/59943514-59943579 TTAGCA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/78522359-78522433 ...GGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........T.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/102356213-102356129 TTAGGC.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/214165743-214165820 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G......................................C.......................T....................A................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/110536228-110536155 .TAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/175213266-175213319 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_4.1/81857217-81857290 TTAGGT.....T.GG..T..G....C.A.A..A...A....................................T.........T...G.T...............A........................G...................C..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/134197575-134197650 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/53054298-53054400 TTAGGT.....T.GG..T..G....C.A.A..T...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/131130876-131130955 TTAGGC.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/158035384-158035463 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/38856140-38856064 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................C..................T.......................T....................T................................T...............................A....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_21.1/26895661-26895567 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/101138934-101139013 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/262905-262984 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/83269700-83269622 TTAAGT.....T.GG..T..C....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/19260445-19260366 TTAGGT.....T.GA..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/133839557-133839617 ........................................................A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/94666352-94666420 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_3.1/70100635-70100558 TTAGGT.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/113691700-113691638 .............................A..A...A...A....T..........A........A.......T.........G...G.C...............A...............................................................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_2.1/25787813-25787736 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................C....................................................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_10.1/57823516-57823607 TTAGGT.....T.AG..T..G....C.A.A..A...A....................................T.........T...G.C...............A........................G...................T..................T.......................A....................T................................T...............................G....................................T.............................A........................TCAGGTTAGTTCAAAAA..................................................T................ [...]
+H.sapiens_1.1/186554203-186554280 .TAGGT.....T.CA..T..G....G.A.A..A...A...G....T..........A........A.......C.........G...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/235601180-235601248 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................C................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/127230072-127230007 TTAGGT.....A.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............A........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/180498392-180498316 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/50357385-50357307 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/63404663-63404740 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T.....................................................A...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/131703394-131703316 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/113478446-113478506 TTAGCT.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_13.1/65052640-65052576 ........................................G....T..........A........A.......T.........T.ATG.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/7922473-7922550 TTAGGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/119378793-119378867 TCAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........C...G.C...............T........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/127479204-127479287 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/219563082-219563161 TTAGGT.....T.GG..C..G....T.G.A..A...A...G....T..........A........A.......T.........T...T.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/79797865-79797925 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_10.1/110301210-110301271 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C........................................A...................T..................T.......................T....................T................................T...............................G..................................................................T........................................A..................................................T................ [...]
+H.sapiens_7.1/67018133-67018214 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.A...............A........................G...................T..................T.......................T....................T................................T.............................TTG....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_2.1/4194225-4194280 .............................A..A...A...G....T..........A........A.......T.........T...A.C...............................................................................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/59511496-59511422 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G..........................................G...................T..................C.......................T....................T................................G...............................G..............................................................................................................................................................T................ [...]
+H.sapiens_5.1/55992120-55992043 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/35034267-35034346 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/157527437-157527510 ...........T.GG..T..A....C.A.A..A...A...G....T..........T........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_16.1/26692675-26692751 TTAGGT.....T.GG..C..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/55872316-55872237 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/165401855-165401780 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.................G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/174623371-174623450 TTAGCC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/101615082-101615005 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/15813673-15813752 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......G.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/54922243-54922316 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T.............................................................................................................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_5.1/180347208-180347129 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........T.......T.........T...G.C...............A........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_7.1/122850520-122850444 ..AGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C........................................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/176959236-176959337 TTAAAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/10123432-10123491 .TAGGT.....T.GG..C..G....C.T.A..A...A...G....T..........A........A.......T.........T..................................................................................................................................T................................T...............................G....................................T.............................A........................................A................................................................... [...]
+H.sapiens_1.1/177759296-177759218 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/21955968-21956025 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_3.1/141469018-141468952 ...........................A.G..A...A...G....T..........A........A.......T...............................G........................G...................T..................T.......................T....................A................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/123405050-123404979 ...GGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TG....................................C.......................................................................................................................................... [...]
+H.sapiens_5.1/1569627-1569548 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/34011203-34011107 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/28600570-28600641 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...GGC...............G...............................................................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/70775525-70775449 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/235107603-235107531 ...........T.GG..T..G....T.G.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................C....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/110288611-110288545 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/148359612-148359683 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/41552076-41551979 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T..............CGCCATTACTTTTTATTTT...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/107336942-107336865 .TAGAT.....T.GG..T..G....C.A.A..A...A...G....C...................A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/68389229-68389161 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/32575838-32575759 TTAGTT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/40417654-40417568 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..GCAAAATTA........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/92641154-92641228 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........T.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/26641375-26641454 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/52957648-52957569 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...C.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/9630811-9630868 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.A.............................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/25875770-25875690 ..AGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...T.C...............T........................G...................T..................T.......................T.....................................................G...............................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_3.1/147798625-147798704 TTATAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/25443558-25443638 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/113691766-113691703 .TGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C.................AT.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/115039768-115039692 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_17.1/54314087-54314165 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................A....................................C.............................A........................................T..................................................T................ [...]
+H.sapiens_11.1/87925797-87925717 TTAAGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/63545872-63545949 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/201540662-201540584 .TAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................A.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/91608384-91608458 TTAGAC.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/21581279-21581200 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/30780828-30780753 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/44995944-44995868 TCAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/103080116-103080198 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/139928863-139928790 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/12633968-12633889 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/5951764-5951852 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....TTGGCGCAAAAA........A.......T.........T...G.T............ATAG........................G...................T..................T.......................G....................G................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_6.1/126675583-126675686 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A............................................CTGCAGT................ [...]
+H.sapiens_2.1/62974922-62974846 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/113318566-113318643 TTAGGC.....T.AG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_1.1/243061249-243061174 ....GT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_2.1/216743640-216743561 TTAGCT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_21.1/23146979-23146903 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/2043680-2043605 ...GGT.....TCAG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/100232855-100232928 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/25535256-25535333 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/38630545-38630466 TTAGCT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...A.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/90391878-90391811 TTAGGT.....T.GG..T..G....T.G.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_2.1/183747965-183747892 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...........................TTTTC....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/62652633-62652555 .............................A..A...A...G....C..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/72311479-72311558 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/23139022-23138954 .........................C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/2485331-2485266 .........................C.A.A..A...A...G....T..........A........A.......T.........T.....T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_19.1/8755450-8755372 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T.....................................................................................................C.............................C........................................A.................................................GT................ [...]
+H.sapiens_1.1/216033802-216033879 TTAGGT.....T.GG..C..G....C.A.A..A.......G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/5724614-5724678 TTGGGT.....T.AG..T..G....C.C.A..A...A...G....T..........T........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/78897424-78897492 TTAAAT.....T.GG..C..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.C.........................................................................................................................................................................................................................................................................................................A..................................................T................ [...]
+H.sapiens_5.1/120648785-120648706 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/55569536-55569457 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/66383129-66383208 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/73133053-73133121 TTAAGT.....T.AG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G......................CAG...................T..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_3.1/163234273-163234194 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/194058636-194058563 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_2.1/54930978-54931060 TTAGGT.....C.GG..T..A....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C................................GTTTTGCCA..................................................T................ [...]
+H.sapiens_16.1/62754738-62754808 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/36482808-36482883 TTAGAT.....T.AG..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/65504826-65504886 TTAGGT.....T.AG..G..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/27262467-27262412 TTAACT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_8.1/120566954-120567034 TTAAGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.C...............C........................A...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/40235899-40235977 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/53765378-53765270 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/20111783-20111710 TTAGGT.....T.GG..T..G....C.A.A..A.......G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................C....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_14.1/99390241-99390311 TTAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......C.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_1.1/56843087-56843008 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/12307494-12307564 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_3.1/15175933-15176011 .TAGGC.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/54454196-54454119 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_2.1/180857928-180857858 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_9.1/7754615-7754510 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/20326491-20326551 ..AGAT.....T.GG..T..G....C.A.A..A...A...G....T.........................................................................................................................................................................................................................................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_7.1/47736101-47736025 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G..................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_8.1/27082460-27082522 TTATGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_1.1/24606264-24606342 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/174181505-174181439 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C............................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_13.1/34327660-34327578 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T................................................................................................................................G....................................C.............................A........................................A...........................................AAGTAATT................ [...]
+H.sapiens_6.1/2445257-2445173 .........................C.A.T..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/25150452-25150398 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/40954427-40954494 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_6.1/167521001-167521080 TTAGGT.....T.GG..T..G....C.A.G..A...T...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/98282920-98282869 .TAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_X.1/28550067-28549993 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/38107290-38107215 ..AGGT.....C.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/57591372-57591308 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/30853542-30853454 TTAGGT.....T.GA..T..G....C.A.A..A...T...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/100794442-100794517 ....GT.....A.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/113877687-113877748 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/75238145-75238217 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/222384289-222384372 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................A...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/58712669-58712594 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/137402759-137402682 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................A..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/23121540-23121459 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................T..................C.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/93595270-93595339 .TAGGT.....T.GG..G..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_7.1/89235178-89235097 TTAGGA.....A.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.T...............G........................G................GTTT..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/4302973-4302894 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/216494602-216494680 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/166435094-166435171 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/5429107-5429028 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/2979502-2979581 TTAGGT.....T.GG..T..G....A.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/22880589-22880668 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/46928469-46928399 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......C.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_2.1/113917625-113917704 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................A...................C..................G.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/50937289-50937368 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/222916234-222916312 TTAGTT.....T.GG..G..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/100624433-100624509 TTAGGT.....T.AG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T..............................TT....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/101845792-101845882 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T....................TACTTTTAATGT....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/83480838-83480761 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/32968257-32968189 ..............G..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/93823280-93823207 TTAGGT.....T.AG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_X.1/12963823-12963747 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G..................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_3.1/113485622-113485696 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/119117947-119117869 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/108266637-108266716 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/8305864-8305932 TTAGCC.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/99743483-99743555 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................T...................C..................T.......................T....................T................................T...............................A............................................................................................................................................................................... [...]
+H.sapiens_18.1/1347015-1347079 TTAGGT.....T.GG..T..G....C.C.A..C...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/151872109-151872192 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/89207254-89207326 TTAGTT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_5.1/155634661-155634589 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/40313410-40313464 TTGGGT.....T.GG..T..G....C.A.A..A...A...G...................................................................................................................................................................................................................................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/14008427-14008346 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/52850720-52850774 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T......................................................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_X.1/8410766-8410695 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.......................................................................................................................................... [...]
+H.sapiens_21.1/19264031-19264109 TTAGGT.....G.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/71811338-71811416 .TAGGT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/44979454-44979372 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/48724698-48724782 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................G....................T................................T...............................G....................................A.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/5313273-5313346 ...........T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/45487261-45487329 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/47436740-47436664 TCAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_5.1/59776411-59776481 ...GGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/122698177-122698234 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G................................................................... [...]
+H.sapiens_2.1/45605000-45605104 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............GTTTTAATTACTTTTTTTAAGTAAAG...................T..................T.......................T....................T................................T.........................ATAAATG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/61529667-61529745 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_15.1/58281793-58281853 .TAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/38577056-38577129 ..AGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...........................................................................................................................................A..................................................T................ [...]
+H.sapiens_9.1/116309906-116309828 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/152117767-152117827 ...........................A.A..A...A...G....T..........A........A.......T...............................G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/36527187-36527083 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/72574848-72574915 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............C........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/6973465-6973543 .TAGTC.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/128049055-128048977 TTAAGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................T...................G..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/188345043-188344964 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/63534234-63534301 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/2495334-2495411 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/129981682-129981762 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T...................CT................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/12604218-12604280 ..............G..T..A....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/39776702-39776781 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/21596586-21596519 ...........................A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/136935272-136935352 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/65717562-65717483 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_14.1/43173654-43173725 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.............G.T...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_X.1/8199998-8199940 ...........................A.A..A...A...G....T..........A........A.......T...............................................................................................A.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/2944104-2944028 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/55293943-55294022 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...A.C...............A........................G...................A..................T.......................T....................T................................T...............................T....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/47534472-47534409 ...........................A.A..A...A...G....T..........A........A.......T.........A...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/74114363-74114293 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/27082383-27082437 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_4.1/38192870-38192939 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T.........TA........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/53246599-53246679 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/84545733-84545812 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/155664673-155664594 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_18.1/71583292-71583345 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...A.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_10.1/69791304-69791230 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/62938894-62938970 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_18.1/30106130-30106184 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_X.1/20207790-20207726 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/86358874-86358937 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/111502795-111502713 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/27917223-27917293 .....T.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_8.1/135225738-135225815 TTAGTT.....T.GG..T..G....C.A.A..C...A...C....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/104656477-104656544 TTAAGT.....T.GG..T..G....C.A.A..G...T...G....T..........A........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/11878095-11878031 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/60420556-60420630 TTAGGT.....T.GT..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/82658726-82658819 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/46718951-46718877 ...GGT.....T.GG..T..G......A.A..A...A...G....T..........A........A.......C.........T...G.C...............T........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/41702211-41702288 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/82313673-82313595 .TAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/104953725-104953645 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............T........................G...................T..................T.......................T....................T................................C...............................T....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_9.1/117075571-117075651 TTACAT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/102979287-102979352 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_1.1/105450150-105450081 TTAGTT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_1.1/203425712-203425793 .TAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G..................GG..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/166594814-166594741 TTAGGT.....T.TA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/135557944-135557816 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................AGTAAAACACACGCTAAAGCACCTTGTTTAGAGATGCATACATGGGTGGCCT................ [...]
+H.sapiens_4.1/175164733-175164654 .TACGT.....T.GG..T..G....C.G.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/31673335-31673276 .TAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A....................................................................................................................................................................................................................................................................................................................................................................................C................ [...]
+H.sapiens_8.1/12435617-12435539 .TAGGC.....T.GC..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/208832427-208832347 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T..TG.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_13.1/72903905-72903828 ..AGGT.....T.GG..T..C....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/61773457-61773535 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/83027704-83027627 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T..............................TT....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_15.1/86585370-86585293 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_Y.1/16070499-16070578 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/120765377-120765304 ...........T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/38293461-38293530 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/239094640-239094578 .............................................T..........A........A.......T.........T...G.T...............T........................A...................T..................T......................GT....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/147629198-147629277 TTATGT.....T.GA..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/213783080-213783159 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G........................G..................GT..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/94148589-94148511 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/131591302-131591366 ....................G....T.A.A..A...A..TA....T..........A........A.......T...............................G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/4026467-4026537 TCAGGT.....T.GG..T..G....C.A.A...........................................T.........T...T.T...............T........................A...................T..................T.......................T....................T................................T...............................G..............................................................................................................................................................T................ [...]
+H.sapiens_16.1/56207291-56207209 TTAGGT.....T.G...T..G....C.A.A..A...A...G....C..........A........A.......T.........T...T.C...............G........................A...................T..................T.......................T....................T................................T........................AGGTTTTG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/32506331-32506416 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G..............................TTTTTGC.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/57336018-57335941 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_2.1/208082472-208082542 TTAAGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/116345567-116345645 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/82152539-82152603 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_7.1/43095689-43095612 ....GT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/94772077-94771998 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_16.1/29601794-29601857 TTAGAC.....T.GG..T..G....T.G.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................................... [...]
+H.sapiens_9.1/9425554-9425481 TTAGGA.....G.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/98913409-98913485 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/105519515-105519606 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/42180701-42180779 .TAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_12.1/66484958-66485034 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T.....................................................................................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/224266055-224266123 ...........T.GA..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/9652830-9652761 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_5.1/127429468-127429393 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/139876059-139875975 TTAGTT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.T...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/39167150-39167224 ..AAGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/52873708-52873760 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_4.1/109201767-109201691 ...GGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................C....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/125650207-125650273 .TAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_13.1/90401274-90401350 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........T........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/138895907-138895986 TTAGGT.....C.GG..T..G....C.G.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/24203541-24203466 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T.........TT........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/80577717-80577649 TTAGGT.....T.GG..T..G....C.A.A..A...A....................................T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/162300659-162300567 TTACAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C..............AG........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_15.1/27083322-27083249 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_X.1/70266711-70266778 TTAGGT.....T.GG..T..G....C.A.A..A...A...T....A..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/9707323-9707390 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G..............................................................................................................................................................................................................................................................................................................................................................T................ [...]
+H.sapiens_8.1/93764288-93764218 ...GGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_12.1/109256517-109256592 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/210428117-210428042 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_15.1/48454006-48454099 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/17833840-17833918 TTAGGT.....T.CA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/143870911-143870993 TTAAAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................C....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/23382981-23382924 .............................A..A...A...G....T..........A........A.......T.........T.............................................................................................................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/124462988-124463065 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.A...............G........................G...................A..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/20501826-20501916 ....GC.....T.GG..T..A....C.A.C..A...A...G....T..........T........A.......T.........A...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/104343346-104343261 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/30145325-30145256 .....T.....T.GG..T..GATTAC.A.A..A...A..............................................T...A.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/62688790-62688878 .TAGGT.....T.GG..T..G....G.A.A..A...A...G....C..........A........A.......T.........T...G.C.......CATTAATTG........................C...................T..................T.......................T....................T..............................AAT...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/112646303-112646379 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/95117558-95117637 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_7.1/95307606-95307552 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_2.1/202979896-202979973 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/163703592-163703667 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/150635569-150635490 TTAAGT.....T.GA..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/11457724-11457639 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C..............TG........................G...................T..................T.......................T....................T..................GCCATTACTTTGAAT...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/129080672-129080742 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........................................................................................................................................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_5.1/67263351-67263275 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................A................ [...]
+H.sapiens_2.1/165699318-165699228 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/24045921-24045846 .TATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/20056700-20056646 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_9.1/119360835-119360756 ...GGT.....T.GG..T..T....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/18941920-18942007 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/37296020-37296099 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/78570940-78571024 .TAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........ACTGGTGATC.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/156400253-156400175 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......G.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/27317247-27317321 TTAGGT.....T.GA..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/22337493-22337558 TTAGGT.....T.GA..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_15.1/48941381-48941302 TTAGGT.....T.GA..C..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................T........................................A..................................................G................ [...]
+H.sapiens_4.1/176607396-176607468 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................A...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/30341943-30341881 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_7.1/63291664-63291577 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_Y.1/28557293-28557211 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/21871245-21871321 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/117102730-117102650 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/162094190-162094261 ...GAT.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/23013429-23013356 ..AGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_20.1/38683575-38683510 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............................................................................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/176195191-176195112 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_9.1/91079239-91079155 .TAGGT.....T.GA..T..G....C.C.A..A...A...G....T..........A........A.......C.........T...G.C...............T........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/122874493-122874416 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T..TG.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/84397048-84396970 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_16.1/63042857-63042932 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T..................................................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/4759036-4759095 TTAGAT.....T.GG..T..G....C.A.A..A...A.................................................................................................................................................................................................................................................................................................................................................................................................................T................ [...]
+H.sapiens_16.1/63580045-63580123 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................C..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/34641548-34641470 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/33581874-33581798 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................G................ [...]
+H.sapiens_8.1/121057223-121057148 TTAGGT.....A.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A................................................................... [...]
+H.sapiens_11.1/56231415-56231493 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_8.1/131517356-131517436 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................C................................A...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/60990439-60990515 TTAGGT.....T.GA..T..G....C.G.A..A...A...G....T..........A........A.......T.........G...G.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_8.1/128003326-128003270 ..............G..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/64135466-64135523 TTAAGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_6.1/63692992-63693070 TTAGGT.....T.AG..T..G....C...T..A...A...G....T..........A........A.......G.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/138632609-138632686 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/56315722-56315669 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A.............................................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_7.1/81919395-81919474 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/43693364-43693287 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/100361087-100361153 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T..................................................................................................................................................................................................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/61045093-61045172 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_12.1/101936665-101936566 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...GGC...............G........................GCTTTTGCCATTAAAAGTAAT..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/31858350-31858276 TTAGGT.....A.GG..T..G....C.A.A..A...A...G....T.........................................G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/61100543-61100617 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/151347401-151347322 TTATGT.....T.AA..C..A....G.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/86329950-86329873 .TAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/86527668-86527745 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/68273555-68273634 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/95441756-95441695 .........................C.A.T..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/37662567-37662491 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/46592470-46592539 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/19457182-19457257 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T..................................................................................................................................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/211384422-211384333 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/98977194-98977129 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A..........................T...G.T...............G........................G.......................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_8.1/90587180-90587111 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......A.........T...G.C...............A........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/65271554-65271461 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T...........AATGGAAT.......................T....................C................................T...............................G....................................G......................GTAGTGGC........................................A..................................................T................ [...]
+H.sapiens_3.1/29410833-29410912 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/35884918-35884994 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C..............................CTTACTTTTAA..................................................T................ [...]
+H.sapiens_8.1/15218105-15218031 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/134727824-134727902 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/11537713-11537636 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.T...............C........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/51286666-51286742 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/75453406-75453313 TTAGGT.....T.GG..C..A....A.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/150953738-150953817 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................G........................................A..................................................T................ [...]
+H.sapiens_3.1/94806797-94806899 TTATGT.....C.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........C...A.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/124796968-124796905 .............................A..A...A...G....T..........A........A.......T.........T...G..............................................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/204847543-204847475 TTAAGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/154501995-154501923 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_7.1/30032774-30032855 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/149657882-149657804 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/83125770-83125716 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/63167723-63167647 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C........................................A...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/150179621-150179689 .........................C.A.A..A...A...A...............A........A.......T.........T...G.C...............A........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/63909033-63909124 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G.......AAGTAATTGTTGT..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/157788764-157788685 TTACGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/43077811-43077882 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_14.1/89584456-89584534 TTAGGT.....T.GA..C..G....C.A.A..A...A...G....T..........G........A.......T.........G...G.C...............G........................G..................GT..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/76841301-76841365 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................A...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/30657997-30658075 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/12798789-12798711 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/131901619-131901684 .TAGCT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A............................................................................................................................................................................... [...]
+H.sapiens_13.1/34486212-34486137 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/121641025-121640947 TTAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/26859015-26858955 .....T.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A.......T.........T...G...............................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/83434220-83434151 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G....................................................................................................................................................................................................................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/59327633-59327710 TTAGGT.....T.AG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/58075106-58075028 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_Y.1/13908423-13908368 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_15.1/72006399-72006474 ..AGGT.....T.GG..T..G....C.A.A..T...A...G....T..........T........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/5368393-5368446 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...A.T...............G........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_4.1/9444428-9444350 .TAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........T.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/139129799-139129866 TTAGGT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_11.1/17114420-17114341 TTAAGT.....A.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/218297020-218297100 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T..TG.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/150512435-150512516 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/184749196-184749292 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/35571890-35571797 ..AGAT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/80021399-80021488 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/76603407-76603341 ...GGT.....G.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T.....................................................................................................C.............................C............................................................................................................ [...]
+H.sapiens_X.1/8056327-8056393 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/147766637-147766714 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T.........TA........A.......T.........T...G.T...............A........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/30904023-30903967 TTAGGT.....T.GG..T..G....C.A........................................................................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_15.1/100292005-100291926 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/76498706-76498642 ................................A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T...........................................................................................T................ [...]
+H.sapiens_9.1/33042125-33042193 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................G................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/207271364-207271278 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/82916463-82916396 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_5.1/112494493-112494435 TTAGGT.....T.GG..........A.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/83548921-83548998 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/34497144-34497218 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_18.1/76893388-76893305 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/144760945-144761025 TTGGGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......A.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TG....................................T.............................T........................................A..................................................T................ [...]
+H.sapiens_6.1/20086814-20086754 ...........................A.A..A...A...G....T..........A........A.......T.........T..................................................................................................................................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/159210329-159210393 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_8.1/56589807-56589883 ..AGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_7.1/37599412-37599487 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_21.1/25841912-25841991 TTAGGT.....T.GG..G..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................C...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/48628152-48628073 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................C..................T.......................C....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/6226339-6226245 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................A...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/8359655-8359551 TTAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................TGAGTTTTAATGGCAAA [...]
+H.sapiens_13.1/75502274-75502353 .TAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/33669375-33669452 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G..........................................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/234153497-234153566 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/70261159-70261092 TTAGGT.....T.GG..T..G......A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_9.1/87291708-87291654 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_10.1/63875977-63876056 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/135736380-135736300 TTACAT.....T.AG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TT....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/87071956-87072034 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/148228548-148228628 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/60853193-60853129 ...........................A.A..A...A...G....T..........A........A.......T...............................G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/27527734-27527797 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_14.1/78910246-78910326 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T..............................TG....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/122888481-122888583 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...C.T...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C......ATTAAAAGTAATGGCAAAAACATC........................................A..................................................T................ [...]
+H.sapiens_6.1/113352197-113352138 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.A...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/29786202-29786123 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/92816528-92816449 TTAGAT.....T.TA..T..G....C.A.A..A...A...G....C..........A........A.......A.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/13910501-13910565 ....................................A...A....T..........A........T.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/139027152-139027049 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G..............................................................T..................T.......................T....................T................................G...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/33565546-33565469 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/100373611-100373547 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/88388477-88388555 TTAGGT.....C.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T....................................................................C.............................T........................................T..................................................T................ [...]
+H.sapiens_18.1/34758056-34757975 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/28111057-28110953 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/35321885-35321824 ........................................................A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/10184659-10184738 TTAGGC.....T.GG..T..A....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_21.1/19047256-19047327 .TAGGT.....T.CG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C......................................................................A..................................................T................ [...]
+H.sapiens_7.1/70771678-70771598 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............T........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/63619847-63619783 .TAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_9.1/14746108-14746159 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_9.1/7624269-7624348 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/211370041-211369963 TTAGGT.....T.GG..T..G....C.T.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_12.1/115283519-115283438 ...GGT.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A.......T.........T...C.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/31362337-31362291 ........................................G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/74411632-74411555 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/60413402-60413471 TTAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/40378656-40378587 TTAGGT.....T.GG..T..A....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/14910746-14910667 TTAGGC.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/70215485-70215378 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/64273260-64273326 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_14.1/37941576-37941521 .TAGGC.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T..................................................................................................................................................................................................................................................................................................................................................................T................ [...]
+H.sapiens_1.1/185622187-185622262 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/144629726-144629805 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................AA....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/88534548-88534492 ...........................A.A..A...A...G....T..........A........A.......T.........T...A.C.........................................................................................................................................................................................................................................................................................................A..................................................T................ [...]
+H.sapiens_6.1/149497845-149497924 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................A..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/70171391-70171333 TCAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_14.1/49209634-49209559 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/85949729-85949651 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........T.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_18.1/36997573-36997501 TTACGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_4.1/31757539-31757612 TTACAT.....T.GG..T..G....C.A.A..A...A...G....T..........T........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/70443259-70443188 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/169760589-169760668 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/82584821-82584739 ..AGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................G...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/188116606-188116539 TTAGAT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................T............................................................................................................................................................................................................... [...]
+H.sapiens_6.1/132825201-132825302 TTAGGT.....T.G...T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/103690202-103690150 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_2.1/173806986-173806903 TTAGGTAATTGT.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................T........................................A..................................................T................ [...]
+H.sapiens_8.1/68742211-68742143 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_11.1/59678824-59678737 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T.................GT.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/170259613-170259546 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/66475132-66475193 TTAAGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_8.1/116213300-116213225 TTAGGT.....T.GG..T..G....C.A.A..A.......C....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/103242962-103242874 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_10.1/33719330-33719253 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/35784002-35784089 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/64275921-64275845 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/68388485-68388406 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/134029867-134029789 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/114558175-114558094 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G.......................AG...................T..................T.......................T....................T...............................GT...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/100145471-100145393 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/59114347-59114411 .TAGGC.....T.GG..T..G....A.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/74663350-74663271 TTAGGT.....A.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/79176613-79176692 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/98752473-98752397 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_18.1/22542742-22542689 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_5.1/175362215-175362293 TTAGGT.....G.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/34980372-34980447 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/45887264-45887344 .TAGTT.....T.GG..T..G....C.A.A..A.......C....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/54376044-54376098 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_7.1/68944906-68944985 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_14.1/88575215-88575298 ..AGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.C........AGTTTGCG........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/22387695-22387616 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/47988206-47988282 TTAGGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_3.1/55614167-55614101 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A...................................................................................................................................................................................................................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/49158528-49158603 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/91159263-91159178 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.T...........TAAAA........................G...................T................AAT.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/28717029-28717106 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/94199668-94199744 ...GGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/6591539-6591478 .............................................T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/69539941-69539862 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/28776971-28777045 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/27842576-27842498 ..AGGT.....T.CG..TTTG....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/128476780-128476702 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/164373145-164373049 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/10147660-10147597 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/86762511-86762584 TTAGGT.....T.GG..T..C....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/83638197-83638140 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........................................................................................................................................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/143876901-143876980 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/108477513-108477448 TTAGAT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_4.1/92565001-92565078 TTAGGT.....T.AG..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................................................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_13.1/77953342-77953421 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_5.1/126740132-126740054 .TAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................C.......................T....................T................................C...............................A....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_3.1/60486763-60486686 TTAGGT.....T.GGGAT..G....G.A.A..A...A...G....C..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/5409264-5409192 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/44377275-44377350 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/129206525-129206449 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/61038001-61037936 ....................................A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T..............................TA....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/57416909-57416986 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....A..........A........A.......T...............C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/135683561-135683481 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/47179981-47179920 ....GT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_19.1/43177742-43177820 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................C..................................................G................ [...]
+H.sapiens_3.1/67691923-67691867 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_1.1/164644580-164644657 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C...........................................................................................T................ [...]
+H.sapiens_13.1/46387781-46387702 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................T...................A..................T.......................T....................T................................T...............................A....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/122112130-122112210 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/18286298-18286360 ..............G..T..G....C.A.A..A.GAA...A....T..........A........A.......T.........T...G.C...............A..................................................................................................................................................................................................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/96829845-96829735 .TAGGC.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/186452459-186452389 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/136257240-136257174 TTAGGT.....T.GG..T..G....C.A.A..A...A.................................................................................................................................................................................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_7.1/112155268-112155343 TTAGGT.....T.GG..T..G....C.A.A..A...A....................................T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/8520040-8520108 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/54464787-54464719 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...G.T...............G........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_1.1/180782963-180783027 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T.........................................................................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/201251908-201251982 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........T.......T.........T...G.G...............G........................G...................C..................C.......................T....................T................................A...............................G....................................C.............................C...........................................................................................T................ [...]
+H.sapiens_9.1/73662990-73663074 .TAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........T........A.......T.........C...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T...............G [...]
+H.sapiens_3.1/76467049-76467126 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/49747123-49747050 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/69168395-69168302 ..AGAT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/48597400-48597309 TTACGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T............AATTACT.......................T....................T................................T...........................AATTG....................................C.............................C........................................A...........................................AAAGTAAT................ [...]
+H.sapiens_5.1/6154559-6154483 ...GAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/48274650-48274595 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_15.1/51788201-51788148 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_7.1/105597411-105597347 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/113601986-113601892 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G.....................TCATTAAAAGTTTTGC.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/153822224-153822120 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_17.1/3132363-3132288 ....GT.....T.GG..G..G....C.A.A..A...A...G....T..........G........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/122929191-122929103 TTAGTT.....T.AG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/33874342-33874392 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_8.1/119385054-119384974 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/86867018-86866954 TTAGGT.....T.GG..T..C....C.A.A..A...A...G....C..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/239608018-239607954 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................G.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/115964914-115964846 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_11.1/133616395-133616325 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G....................................................................................................................................................................................................................................T.............................C........................................G..................................................T................ [...]
+H.sapiens_11.1/13999584-13999500 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/70927845-70927923 TTAGAT.....C.AG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/2743556-2743476 TTACAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/164444444-164444536 ..AGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/29825589-29825527 TTAGGT.....T.GG..T..G....T.G.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_6.1/156083959-156084034 .TATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/218877972-218878048 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_11.1/71513630-71513696 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_21.1/17092286-17092355 .TAGGT.....C.AG..T..G....C.A.A..A...A...A....T..........A........A.......T.........G...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_3.1/9068276-9068196 TTAGGT.....T.GA..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_18.1/23836850-23836931 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T.............................TTG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/57254931-57255009 TTAGGA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.............G.T...............G........................G...................T..................T.......................T....................T................................T...............................T....................................T.............................C........................................T..................................................T................ [...]
+H.sapiens_11.1/19667259-19667350 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/110979907-110979829 .....T.....T.AG..T..T....C.A.A..A...A...GATATC..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/23478815-23478892 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_1.1/246507265-246507313 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_5.1/138499433-138499486 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/125507426-125507504 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/89985858-89985783 TTAGGT.....T.GG.....G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/79026921-79027029 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................C...................T..................T.......................T....................C................................T...............................G....................................CTATTACATTTAATGCATTACTTTTCCTGCC........................................A..................................................T................ [...]
+H.sapiens_16.1/24024682-24024566 TTAGGT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......C.........T...G.T...............G............................................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/33926486-33926409 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.................G........................G...................A..................T.......................T....................G................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/72008609-72008542 ...........................A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/35002132-35002053 TTAGGT.....T.GC..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................G........................................A..................................................T................ [...]
+H.sapiens_3.1/129618452-129618538 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/212725464-212725548 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/68142177-68142100 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/28934491-28934423 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T........................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_11.1/31457019-31457102 TTAGTT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......C.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C....................................GCAAA..................................................A................ [...]
+H.sapiens_8.1/138555225-138555313 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................A....................................C.............................C.....................................CCTA..................................................T................ [...]
+H.sapiens_18.1/10073376-10073456 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........A...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/20133396-20133320 TTGGAT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........A...G.C........................................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/63475959-63475850 TTAGGT.....T.GG..T..G....C.A.A..A...C...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T..GCCACTACTTTTAAAAAGTTCAAAATTTTTT...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/124325062-124325137 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G...........................................................................................................G..................................................T................ [...]
+H.sapiens_15.1/54847899-54847843 TTAGGT.....T.GG..T..G....C.A.A..T...A...G....T..........A.............................................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_7.1/133682032-133681970 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A.............................................................................................................................................................................................................................................................................................................................................................................................T................ [...]
+H.sapiens_5.1/23561239-23561311 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.T...............G........................A...................T..................T.......................T.....................................................................................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_2.1/138587081-138587160 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................C...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/150485436-150485514 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/179165757-179165830 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/147043358-147043436 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/123043626-123043707 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A................................................CAT................ [...]
+H.sapiens_1.1/103950367-103950450 .TAGGC.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/75588704-75588783 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...C.C...............G........................G...................T..................T.......................T....................T................................T..............................TG....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/122645886-122645965 TTAGGT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................A...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/59723336-59723251 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C..................................TTTTTTT..................................................T................ [...]
+H.sapiens_19.1/44167332-44167411 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/16843934-16843987 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/70489798-70489905 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/107312772-107312853 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_12.1/19974279-19974201 .TAGGT.....T.GG..C..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/92585257-92585328 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................................................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/21474083-21474162 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/184609265-184609186 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/69039514-69039433 .TAGGT.....T.CA..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/196501743-196501812 TTAGGT.......GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/45592106-45592182 TTAGGA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................C...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/93353854-93353782 ....GT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T...................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_10.1/108247237-108247294 TTAGGT.....T.GG..T..G....C.A.A..A...A...T....T..........A........A.......T.........T...G.C...............A........................G...................G..................C.......................T....................T................................................................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_X.1/92253332-92253254 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/101623913-101623988 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G........................G...................T..................T.......................T....................G................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/193313137-193313190 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_3.1/104826596-104826518 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................C..................T.......................T....................T................................G...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/127879238-127879159 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/129657649-129657591 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/37453664-37453740 ..AGGT.....T.GG..T..G......A.G..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/75201037-75200958 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C...........................GCC........................................A................................................................... [...]
+H.sapiens_16.1/13137332-13137431 TCAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/54905604-54905540 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_4.1/34388456-34388379 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/71424659-71424738 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/25224572-25224491 TTAGGT.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A......AT.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................A................ [...]
+H.sapiens_8.1/34144917-34144856 TTAGGT.....T.GG..T..G....C.A.A..A......................................................................................................................................................................................................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/61280584-61280529 ..AAGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_9.1/84511355-84511277 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/137335849-137335913 TTAGGC.....T.GG..C..T....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/7779679-7779602 .TAGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...A.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/103745942-103745863 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/105883125-105883046 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/34841789-34841850 .....T.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_5.1/65905918-65905847 TTAGGG.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_9.1/82003754-82003831 .TATGT.....T.GA..T..G....C.A.A..A...A...G....C..........A........G.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/77775119-77775208 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/29522993-29522925 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/44074706-44074768 TTAGGC.....T.GG..T..T....C.A.A..A...A...G....T..........C........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.......................................................................................................................................... [...]
+H.sapiens_2.1/140179820-140179903 .TACGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G................................TCGTC.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/34352574-34352651 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/25168652-25168730 TTAAGT.....G.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............C........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_9.1/72975697-72975634 .............GG..T..G....T.G.A..A...A...G....T..........G........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/18312570-18312645 .TAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/70402832-70402772 ....GT.....T.GA..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/116112499-116112421 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/19114099-19114027 TTAGCC.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/67441665-67441729 TTAGGT.....T.GG..T..G....A.A.A..A...A...T....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/72064951-72065023 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/11980221-11980145 ..AGAT.....T.GG..T..T....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/60047705-60047629 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/3752099-3752177 TTAGGT.....T.GG..C..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C...........................................................................................T................ [...]
+H.sapiens_4.1/118751825-118751749 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/9346720-9346794 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_7.1/69167976-69168062 TTAGGT.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.A...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/10147878-10147815 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.T...............G........................G...................T..................C.......................C....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/49735571-49735493 TTAGGT.....T.GG..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/82693206-82693266 TTAGTT.....T.GA..T..G....C.A.A..A...A...G....T..........A.............................................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_12.1/86409031-86408982 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G.................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_9.1/103732818-103732758 TTAGGT.....T.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/33615495-33615576 TTAGGT.....T.GG..T..G....C.C.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/26827153-26827064 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/85546984-85547043 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/60104786-60104708 TTAGCA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_6.1/168264634-168264559 TTATGT.....T.GG..T..G....C.A.A..A...A....................................T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/138658537-138658459 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................A...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/43947245-43947312 ...........T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................C.......................T....................T................................T............................................................................................................................................................................................................... [...]
+H.sapiens_12.1/5305886-5305956 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................C....................T................................T...............................G....................................T.............................C........................................G..................................................T................ [...]
+H.sapiens_3.1/15661144-15661077 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/56938732-56938811 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/209519466-209519530 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_12.1/70195789-70195711 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................C...................T..................T.......................G....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/207401122-207401045 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/170247910-170247843 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/170134695-170134756 .TAGGT.....T.GG..T..A....T.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_4.1/56773687-56773617 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/87623259-87623333 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/26099962-26100051 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/147075126-147075200 .....T.....T.GT..T..C....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/109194926-109194997 ..............G..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/60262343-60262263 TTAGGT.....T.GA..T..G....T.A.A..A...A...A....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A.................................................CT................ [...]
+H.sapiens_11.1/106398691-106398768 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................G.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/52289380-52289459 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/147156981-147157037 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/119044326-119044401 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/100578227-100578149 .TAGGT.....T.GG..T..G....C.A.A..A...C...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/96732041-96731983 ...........................A.A..A...A...G....C..........A........A.......T...............................G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_11.1/108340277-108340184 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/177155581-177155501 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................G..................................................T................ [...]
+H.sapiens_3.1/158779242-158779174 TTAGAC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_10.1/31577439-31577364 ...GAT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_8.1/88412442-88412508 ...GGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C........................................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/55667215-55667140 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................T..................T.......................T....................T................................................................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/137858044-137857967 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/137753370-137753295 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/83011814-83011878 ...........................A.A..A...A...G....T...........................T.........T...T.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/220610895-220610817 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_4.1/133208942-133208880 ..AGGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T...G.C............................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/32028338-32028409 .TAGGT.....T.GG..G..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C............................................................................................................ [...]
+H.sapiens_3.1/23648822-23648885 .........................C.A.A..A...A...G....T...........................T.........T...A.C............................................................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/74154605-74154673 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....G..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/3050435-3050514 .TAGCT.....T.GA..T..G....C.A.A..A...A...G....T..........G................T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/121633849-121633783 ....GT.....T.GA..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/165611693-165611633 .................................................................A.......C.........T...G.T...............G........................A...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/107716057-107716130 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/14397266-14397342 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T..TG.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/122151754-122151679 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G..................................................................A........................................A..................................................C................ [...]
+H.sapiens_10.1/20671534-20671597 TTAAGT.....T.GG..T..G....C.A.A..A...G...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_17.1/51705971-51705913 ....GT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...T.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/34677939-34678010 ....GT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/8129275-8129221 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/84930229-84930292 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................C..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_11.1/37137928-37137874 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_4.1/56138542-56138447 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/16541116-16541041 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/121883731-121883653 .TAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................T....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/29636682-29636759 TTAGCG.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/83025863-83025932 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/154484176-154484098 TTAGGT.....G.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/70909244-70909178 ....GT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................G..................................................T................ [...]
+H.sapiens_1.1/204353695-204353616 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_X.1/73720915-73720838 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/22580764-22580682 TTAAAT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C......................................TTT..................................................T................ [...]
+H.sapiens_5.1/110891595-110891674 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/42547256-42547174 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/69924701-69924624 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/34796880-34796950 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_1.1/198803501-198803582 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......C.........T...G.C...............A........................G...................T..................C.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/78659914-78659837 TTAGGT.....T.GG..T..A......A.A..A...A...G....T..........A........A.......T.........A...A.C........AATATTAG........................G...................T..................T.......................G....................G................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/6473282-6473370 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/31518339-31518430 TTAGGT.....T.GG..C..T....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/84852577-84852649 TTAGGT.....T.GG..T..G....T.G.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/26757613-26757534 TTAGGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/36515300-36515380 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............T........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/158560769-158560699 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/101444379-101444461 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.....AAT.........T...A.C...............A........................G...................T..................T.......................T....................T................................A...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/107539666-107539589 .TAGGC.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/87087702-87087624 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/52845319-52845407 TTAGGT.....G.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_8.1/122199038-122199110 .............GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/58040083-58040005 TTAAGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................C................ [...]
+H.sapiens_16.1/11400381-11400302 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/16623657-16623586 TTAGAT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_6.1/120694554-120694484 .TAGGT.....T.GG..C..G....C.A.A..A...A...G....C..........A........C.......C.........T...G.T...............G........................G...................T..................T.......................T..................................................................................................................................................................................................................................................................... [...]
+H.sapiens_14.1/57290936-57291010 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........G.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/69884124-69884071 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_8.1/106904986-106904923 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_16.1/62780334-62780406 TTAGGT.....C.GG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/49069658-49069580 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_21.1/41711795-41711728 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_19.1/10330422-10330353 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........C........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/94472933-94472854 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/61268649-61268739 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/81982697-81982645 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T............................................................................................................................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_7.1/132782727-132782785 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/117022965-117022883 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..........................................G....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/25312392-25312299 TTAGAT.....T.GG..G..G....C.G.A..A...A...G....T..........A........T.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/107790156-107790236 TTATGT.....T.GG..T..A....C.G.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/124941513-124941439 TTAGGT.....T.CG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................C...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_15.1/65924041-65924126 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/89630109-89630040 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................G............................................................................................................................................................................... [...]
+H.sapiens_1.1/17476683-17476605 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/14553610-14553674 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........G.......T.........T...G.T...............G........................A...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_12.1/29043607-29043542 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/99256240-99256297 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G..........................................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_17.1/39212973-39213050 TTAGGT.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................G.............................C........................................A................................................................... [...]
+H.sapiens_1.1/211670946-211670882 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_Y.1/3820039-3819967 .....T.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................T................................T...............................T....................................G.............................T........................................G................................................................... [...]
+H.sapiens_21.1/32834884-32834806 TTAGAT.....T.GG..T..G....C.A.G..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/93788050-93787984 ...GGC.....T.AA..T..G....C.G.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/82445056-82445136 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.C...............C........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/3649467-3649389 TTAGGT.....T.GG..T..G....C.A.A..A...C...G....C..........T........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/17029509-17029434 TTAGCT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................A....................G................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_7.1/67870609-67870689 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/45195953-45195875 TTAGGT.....T.GG..T..G....C.A.T..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/93537856-93537930 .TATGT.....T.GG..T..G....C.A.A..A...A...G....C..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/50911985-50912065 TTAAGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T..............................TG....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_8.1/96175092-96175162 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................................................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/78317325-78317395 TTGGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T...............C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/10036979-10037059 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/224850778-224850700 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/178583521-178583586 .............................A..A...A...G....C..........T........A.......T.........T...A.A...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/13070767-13070837 .TAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................G..................................................T................ [...]
+H.sapiens_5.1/13919980-13919909 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/135560389-135560309 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................A...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/46496586-46496509 TTAGGT.....T.GA..T..G....C.A.A..A...A............................A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/74750157-74750237 TTAGGT.....T.GG..T..A....C.A.A..A...A...A....T..........A........A.......A.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/69557638-69557716 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................C....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/20780210-20780272 .............................................T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_10.1/19423359-19423449 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.CAGCTTTTGCCATTGTG........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/119676881-119676939 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T..........................................................................................................................C.............................C........................................A................................................................... [...]
+H.sapiens_7.1/110110213-110110275 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G....................................................................................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/199761205-199761295 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G.........................TCATTAAAATGC.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/20331447-20331507 .TAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................A..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/72744916-72744839 ..AGTT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......C.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/133475122-133475204 TTAGAT.....T.GG..T..G....A.A.A..A...A..AG....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/3944916-3945024 TTATGT.....T.GG..T..G....C.A.A..A...A...G....TCATTGAAAGTA........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_21.1/38086340-38086417 TTAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......A.........T...G.C...............G........................G...................T..................C.......................T....................T................................T....................................................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/112404717-112404797 TTAGGT.....T.GG..T..G....C.A.A..C...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/34941256-34941177 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/55793236-55793300 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/91255595-91255654 .................................................................A.......T.........T...G.................G........................G...................C..................T.......................G....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/14662540-14662615 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T.....................................................................................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/61051911-61051851 TTATGT.....T.GC..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/53942103-53942029 TTACAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/67353120-67353044 TTAGGT.....T.AG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................C...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/107084124-107084045 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/154069489-154069568 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.............................................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/32399915-32399995 TTATGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/113738517-113738597 TTACGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_20.1/31455923-31455850 .....T.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/165746554-165746645 TTAGGT.....T.TG..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/63096475-63096534 TTAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/5605692-5605621 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/57315669-57315742 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/152610759-152610835 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/80492169-80492244 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/164628491-164628419 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........A...G.C...............A........................A...................C..................T.......................T....................T................................T...............................T....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/2429336-2429408 TTAGGT.....T.GG..T..G....G.A.A..A...A...G....T..........A........A.......T.........T...G.C...............T........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/173971197-173971118 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......G.........T...G.T...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/59760206-59760128 TTAGGT.....T.AG..T..G....C.A.A..A...C...G....T..........A........A.......A.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/40220759-40220849 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T.........TA........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/168758543-168758614 TTAGGT.....T.GG..C..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/80142596-80142676 TTAGGT.....T.GG..T..G....A.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................C.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_7.1/146677016-146677090 TTAGGT.....T.GG..T..G....C.A.A..A...A........T..........A........A.......G.........T...G.T...............G........................G...................C..................T.......................T....................T................................................................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/13579009-13578935 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/85813256-85813331 TTAGGT.....T.GG..T..G....C.A.A..A.......G....T..........A........A.......T.........T...G.T...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_11.1/119893368-119893445 TTTGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/79084291-79084214 ..AAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/71572531-71572452 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/49773472-49773394 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/88053329-88053250 TTAGGC.....T.GG..T..G......A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_9.1/86329122-86329198 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/54477852-54477778 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_6.1/114598553-114598632 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................A.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/83433799-83433877 TTAGGT.....T.GG..T..G....C.A.A..A...A........T..........A........A.......T.........T...G.A...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_21.1/27239296-27239375 TTAGTT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_1.1/88388790-88388712 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/77375943-77376017 ...GGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.G...............A........................G...................T..................T.......................T.....................................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/130538572-130538494 TTGGGC.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/30160898-30160831 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................................................................................................................................................................................................ [...]
+H.sapiens_9.1/119155870-119155949 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............C........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/175848458-175848540 ....GT.....T.GG..T..G....C.A.A..T...A...G....T..........A........A.......T.........T...G.T...............G........................T...................T..................T.......................T....................T................................T........................TTTAAACA....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/30927630-30927706 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................T.............................A........................................A..................................................T................ [...]
+H.sapiens_4.1/59829622-59829692 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.G...............T........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/37888361-37888447 TTAGGT.....T.GG..T..G....C.A.A..G...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A...........................................AGGAAATC................ [...]
+H.sapiens_9.1/122274034-122273972 ........................................................A........A.......T.........T...G.C...............C........................A...................T..................T......................AA....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/71475361-71475283 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...A.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/157123932-157123862 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.............G.C...............A........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_7.1/130359684-130359758 TTAGGA.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/125458425-125458504 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....C..........A........A.......T.........T...G.C...............G........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_18.1/40809759-40809838 TTAGAC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/130075405-130075321 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/154663083-154663008 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........G........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................C....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/78190882-78190821 .............................................T..........A........A.......T.........T.....C...............T........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/9133744-9133822 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................C...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/39586044-39585947 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/62527198-62527120 TTATGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_17.1/68496982-68497098 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T...............GCCATTAGTAATTGCTTT...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/32760115-32760035 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/155645381-155645459 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....C..........A........A.......T.........T...G.C...............A........................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/77444586-77444517 ..AGGT.....T.GG..T..G....C.A.A..A...A...A....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A................................................................... [...]
+H.sapiens_5.1/97689122-97689201 ..............G..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_NC.25/12079-12001 TTAGGG.....T.GG..T..G....C.A.A..A...A..AG....T..........A........A.......T.........T...G.C...............T........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/114131774-114131698 TTAAGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................T........................................A..................................................T................ [...]
+H.sapiens_2.1/54931034-54931107 ....................G....C.A.A..A...AACAG....C..........A........A.......T.........T...A.C........................................T...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/73524759-73524689 TTGGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C................................................................................................................................................................................................................................................................C........................................A..................................................T................ [...]
+H.sapiens_4.1/146839194-146839273 TTAGGT.....T.GG..G..G....C.AGA..A...A...G....T..........A........A.......T.........T...A.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_22.1/35207468-35207533 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A.........................................................................................................................................................................................................................................................................................A..................................................T................ [...]
+H.sapiens_1.1/86574594-86574669 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................C................................T...............................G....................................C.............................C............................................................................................................ [...]
+H.sapiens_7.1/141076460-141076531 .TAGGT.....T.GG..A..G....C.A.A..A...A...G....T..........A........A.......T.........G...G.C...............G............................................T..................T.......................C....................T................................T...............................G....................................A.............................T........................................A..................................................T................ [...]
+H.sapiens_18.1/37996631-37996554 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......C.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_2.1/86813268-86813347 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/159540407-159540484 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........G.......A.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/128145986-128145927 .............................................T..........A........A.......A.........T...G.C...............G...............................................................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/120779955-120780029 TTAGTT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/30174608-30174508 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................T..................................................T................ [...]
+H.sapiens_2.1/237795498-237795575 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/42473656-42473579 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T..................................................................T.................AT.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/2277700-2277623 ...GGT.....T.TG..T..G....T.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/81690558-81690494 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................C..................................................T................ [...]
+H.sapiens_4.1/107784265-107784316 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T......................................................................................................................................................................................................................................................................................................................................................................................................................... [...]
+H.sapiens_1.1/39362167-39362245 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/62740093-62740152 ...........................A.A..A...A...A....T..........T........A.......T.........T...G.A.......................................................................................................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_12.1/13740912-13740814 ..AGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_9.1/107041055-107040983 .TAGGT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T.............................................................................................................T....................T................................T...............................G....................................T.............................T........................................G..................................................T................ [...]
+H.sapiens_1.1/158439462-158439546 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G...................TATTTT...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/82901781-82901701 TTAGGT.....T.GG..T..G....C.A.A..A...A...A....T..........G........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/135033143-135033063 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............A........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/72248589-72248666 TTAGGT.....T.GT..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/70845703-70845606 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_3.1/106528817-106528721 ..AGAT.....T.GG..T..G....C.A.A..A...A...A....G..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/62182220-62182142 TTAGGT.....T.GG..T..G....T.C.A..A...A...G....T..........A........A.......A.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_1.1/159064081-159064001 TTAGGT.....T.GG..T..G....C.A.C..A...A...G....T..........A........G.......C.........T...G.T...............G........................G...................C..................A.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/118397962-118398040 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/31378516-31378591 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................G...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_12.1/5522213-5522272 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/5667126-5667205 TTAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/208278489-208278414 ...GGT.....T.GG..T..G....T.A.A..A...A...G....T..........C........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_6.1/148845370-148845292 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.C...............A........................G...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_11.1/3578676-3578598 .TAGGC.....C.GG..T..A....C.A.A..A...A...A....T..........A........A.......T.........T...G.C...............T........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_18.1/19275547-19275488 ...........................A.A..A...A...G....T..........A........A.......T.........T...................................................................................................................................................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_15.1/94624411-94624333 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/136379587-136379508 TTAGGT.....T.GA..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................C................ [...]
+H.sapiens_X.1/106941750-106941831 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................G...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/142519391-142519447 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................C................................................................................................................................................................................................................................................................................................................ [...]
+H.sapiens_2.1/29726777-29726855 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................A....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_10.1/129692170-129692249 TTAAGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_4.1/122190685-122190583 .TAAGT.....T.GG..T..G....C.A.A..A...A...C....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_8.1/84226854-84226931 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........T........A.......T.........T...G.C...............A........................G...................T..................T.......................T....................T................................G...............................A....................................G.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/13909209-13909294 TTAGAT.....T.GA..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...T.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/28692560-28692482 TTAGGT.....T.GG..G..G....C.A.A..A...T...G....T..........A........A.......T.........T...A.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_4.1/146459028-146459098 TTAGGC.....T.GG..T..G....C.A.A..A.......G....T..........T........G.......C.........T...G.C...............A........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_7.1/95359736-95359654 TTAGGT.....C.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_13.1/20839129-20839208 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T..............................TT....................................C.............................T........................................A..................................................T................ [...]
+H.sapiens_11.1/93818069-93818148 TTAGGA.....T.AG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.C...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................A........................................A..................................................T................ [...]
+H.sapiens_12.1/74380524-74380437 TTAGGT.....T.GG..T..A....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T........................GCCATTATT...............................T....................................T.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/22348688-22348765 TTAGGC.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.T...............G........................G...................C..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/3719892-3719813 TTAGGC.....T.GG..T..G....C.A.A..A...A...G....T..........A........C.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/119589819-119589883 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................G................................T...............................T....................................C.............................C............................................................................................................ [...]
+H.sapiens_11.1/99413217-99413294 TTAGGT.....T.GT..T..C....C.A.A..A...A........T..........A........A.......T.........T...G.T...............G........................G...................G..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_3.1/187953927-187954006 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.T...............G........................A...................T..................T.......................T....................C................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_5.1/45808850-45808962 TTAGGT.....T.GG..T..G....C.A.A..A...T...G....T..........A........A.......T.........T...G.C...............G........................A...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_2.1/52168091-52168020 ..AGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......C.........T...G.C...............A........................T...................T..................T.......................T....................T................................T..............................TA....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_X.1/15982118-15982178 .TAGAT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........T...G.A...............G........................G...................T..................T............................................................................................................................................................................................................................................................................................. [...]
+H.sapiens_16.1/26558428-26558349 TTAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........T.......T.........T...G.C...............T........................G...................C..................T.......................T....................T................................T...............................G....................................G.............................A........................................A..................................................T................ [...]
+H.sapiens_Y.1/15779845-15779925 TTAGGT.....T.AG..T..G....C.G.A..T...A...G....T..........A........A.......T.........T...G.T...............G........................G...................T..................T.......................T....................T................................T...............................G....................................C.............................C........................................A..................................................T................ [...]
+H.sapiens_14.1/99179197-99179121 .TAGGT.....T.GG..T..G....C.A.A..A...A...G....T..........A........A.......T.........C...G.T...............G........................A...................T..................T.......................T....................T................................................................G....................................C.............................C........................................A..................................................T................ [...]
+#=GC RF xxxxxx.....x.xx..x..x....x.x.x..x...x...x....x..........x........x.......x.........x...x.x...............x........................x...................x..................x.......................x....................x................................x...............................x....................................x.............................x........................................x..................................................x................ [...]
+//
diff --git a/hmmer/tutorial/SNORD96.hmm b/hmmer/tutorial/SNORD96.hmm
deleted file mode 100755
index df49dfc..0000000
--- a/hmmer/tutorial/SNORD96.hmm
+++ /dev/null
@@ -1,313 +0,0 @@
-HMMER3/f [3.1dev | November 2011]
-NAME SNORD96
-ACC RF00055
-DESC Small nucleolar RNA SNORD96 family
-LENG 96
-MAXL 189
-ALPH RNA
-RF no
-MM no
-CONS yes
-CS yes
-MAP yes
-DATE Wed Mar 21 09:32:31 2012
-NSEQ 5
-EFFN 2.797852
-CKSUM 2846147472
-STATS LOCAL MSV -9.2458 0.71831
-STATS LOCAL VITERBI -10.2120 0.71831
-STATS LOCAL FORWARD -3.7792 0.71831
-HMM A C G U
- m->m m->i m->d i->m i->i d->m d->d
- COMPO 1.35563 1.46177 1.39677 1.33561
- 1.38629 1.38629 1.38629 1.38629
- 0.16480 3.91159 2.02550 1.46634 0.26236 0.00000 *
- 1 1.77648 1.41563 1.40423 1.07167 1 u - - <
- 1.38629 1.38629 1.38629 1.38629
- 0.04611 3.79290 3.79290 1.46634 0.26236 0.26492 1.45786
- 2 1.25997 2.43004 0.66229 2.18362 2 g - - <
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 3 1.17896 2.39083 0.72647 2.14359 3 g - - <
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 4 2.81719 0.22931 2.96038 2.37149 4 c - - <
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 5 2.15598 0.65626 1.50520 1.94177 5 c - - <
- 1.38629 1.38629 1.38629 1.38629
- 0.17687 3.91159 1.95119 1.46634 0.26236 1.09861 0.40547
- 6 1.44108 1.94142 1.02116 1.34842 6 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04665 3.78138 3.78138 1.46634 0.26236 0.24811 1.51537
- 7 1.25997 2.43004 0.66229 2.18362 7 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 8 2.63752 2.39431 2.75260 0.25688 8 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 9 2.66310 3.21385 0.17293 3.01860 9 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 10 0.67658 2.09315 2.09996 1.40288 10 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 11 1.47795 1.95341 1.18164 1.12908 11 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 12 2.66310 3.21385 0.17293 3.01860 12 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 13 0.17907 3.02591 2.84498 2.85933 13 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 14 0.95146 1.54509 1.94106 1.35876 14 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 15 0.17907 3.02591 2.84498 2.85933 15 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 16 1.15067 2.01415 2.04385 0.86605 16 u - - _
- 1.05191 1.52827 1.52827 1.52827
- 0.17687 1.95119 3.91159 0.26114 1.47043 1.09861 0.40547
- 17 2.81719 0.22931 2.96038 2.37149 18 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 18 1.21311 1.20840 1.95212 1.33910 19 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 19 2.09810 2.34988 0.53674 1.62314 20 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 20 1.22483 1.26200 1.43794 1.68370 21 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 21 1.17137 1.92410 1.46779 1.15959 22 u - - _
- 1.62225 1.62225 1.62225 0.89738
- 0.29169 1.45674 3.91159 0.16370 1.89045 1.09861 0.40547
- 22 0.17907 3.02591 2.84498 2.85933 24 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 23 1.85093 1.49661 1.48354 0.93601 25 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 24 0.97241 1.49200 1.94099 1.37301 26 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 25 0.17907 3.02591 2.84498 2.85933 27 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 26 0.17907 3.02591 2.84498 2.85933 28 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 27 0.17907 3.02591 2.84498 2.85933 29 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 28 0.89544 2.29766 1.01494 2.05064 30 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 29 0.69372 1.47052 2.12867 1.88727 31 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.30754 3.91159 1.40757 1.46634 0.26236 1.09861 0.40547
- 30 0.35540 2.43509 2.24133 2.25189 32 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.05300 3.65705 3.65705 1.46634 0.26236 0.15144 1.96232
- 31 2.35370 0.56743 2.48638 1.36730 33 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 32 0.17907 3.02591 2.84498 2.85933 34 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 33 2.81719 0.22931 2.96038 2.37149 35 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 34 2.81719 0.22931 2.96038 2.37149 36 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 35 0.17907 3.02591 2.84498 2.85933 37 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 36 2.63752 2.39431 2.75260 0.25688 38 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 37 2.81719 0.22931 2.96038 2.37149 39 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 38 2.63752 2.39431 2.75260 0.25688 40 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 39 2.63752 2.39431 2.75260 0.25688 41 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 40 2.63752 2.39431 2.75260 0.25688 42 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 41 2.81719 0.22931 2.96038 2.37149 43 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 42 2.66310 3.21385 0.17293 3.01860 44 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 43 2.66310 3.21385 0.17293 3.01860 45 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 44 2.66310 3.21385 0.17293 3.01860 46 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 45 0.93482 2.30479 0.96818 2.05738 47 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 46 2.81719 0.22931 2.96038 2.37149 48 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 47 2.63752 2.39431 2.75260 0.25688 49 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 48 2.66310 3.21385 0.17293 3.01860 50 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 49 0.17907 3.02591 2.84498 2.85933 51 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 50 2.63752 2.39431 2.75260 0.25688 52 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 51 2.24061 1.47167 2.36388 0.56210 53 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 52 1.49246 1.95626 1.16861 1.13012 54 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 53 1.25997 2.43004 0.66229 2.18362 55 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.15208 3.91159 2.11134 1.46634 0.26236 1.09861 0.40547
- 54 1.93657 1.15048 0.97920 1.80967 56 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 55 2.18739 0.66835 2.30911 1.28776 57 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 56 1.88470 1.99919 1.02144 1.04241 58 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 57 2.17776 0.68629 2.29896 1.26265 59 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.19400 3.80505 1.87027 1.46634 0.26236 2.08582 0.13262
- 58 1.98903 0.85122 2.09367 1.16141 60 c - - _
- 1.83773 1.07640 1.07640 1.83773
- 0.42135 1.14508 3.66369 0.74979 0.63954 0.70240 0.68398
- 59 2.09144 1.32102 2.20631 0.69411 63 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 60 1.80268 1.15191 1.40283 1.29751 64 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 61 1.37268 1.45901 1.41943 1.30101 65 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 62 2.49560 2.97765 0.21746 2.77937 66 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 63 1.43088 0.73199 2.13532 1.82174 67 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 2.08582 0.13262
- 64 1.09920 2.23360 0.86140 1.98666 68 g - - _
- 1.52827 1.52827 1.52827 1.05191
- 0.19886 1.84465 3.80505 0.26114 1.47043 2.08582 0.13262
- 65 2.49560 2.97765 0.21746 2.77937 70 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04554 3.80505 3.80505 1.46634 0.26236 0.28557 1.39267
- 66 2.36548 0.55180 2.49892 1.39428 71 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 67 1.19058 1.21640 1.95183 1.35616 72 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 68 0.89485 2.02463 2.03519 1.11281 73 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 69 2.63752 2.39431 2.75260 0.25688 74 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 70 2.66310 3.21385 0.17293 3.01860 75 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 71 1.19092 1.23270 1.94874 1.33902 76 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 72 2.63752 2.39431 2.75260 0.25688 77 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 73 2.66310 3.21385 0.17293 3.01860 78 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 74 1.21311 1.20840 1.95212 1.33910 79 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 75 2.19265 1.08986 2.31489 0.79111 80 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 76 0.17907 3.02591 2.84498 2.85933 81 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.15811 3.91159 2.06960 1.46634 0.26236 1.09861 0.40547
- 77 1.38315 0.76976 2.10798 1.80420 82 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04581 3.79929 3.79929 1.46634 0.26236 0.27536 1.42421
- 78 2.63752 2.39431 2.75260 0.25688 83 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 79 2.63752 2.39431 2.75260 0.25688 84 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 80 2.81719 0.22931 2.96038 2.37149 85 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 81 2.22976 1.42378 2.35272 0.58603 86 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 82 1.58719 2.60996 0.46442 2.37016 87 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 83 1.50710 0.62394 2.29736 1.95126 88 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 84 0.64575 2.32332 1.37334 2.08326 89 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 85 0.17907 3.02591 2.84498 2.85933 90 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 86 2.63752 2.39431 2.75260 0.25688 91 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 87 2.22976 1.42378 2.35272 0.58603 92 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 88 2.81719 0.22931 2.96038 2.37149 93 c - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 89 2.63752 2.39431 2.75260 0.25688 94 u - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 90 2.66310 3.21385 0.17293 3.01860 95 g - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 91 0.17907 3.02591 2.84498 2.85933 96 a - - _
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 92 2.07491 2.30610 0.57844 1.54174 97 g - - >
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 93 2.66310 3.21385 0.17293 3.01860 98 g - - >
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 94 2.22091 0.85269 2.34524 0.99587 99 c - - >
- 1.38629 1.38629 1.38629 1.38629
- 0.04084 3.91159 3.91159 1.46634 0.26236 1.09861 0.40547
- 95 2.23973 0.78771 2.36523 1.06509 100 c - - >
- 1.38629 1.38629 1.38629 1.38629
- 0.16480 3.91159 2.02550 1.46634 0.26236 1.09861 0.40547
- 96 1.15001 1.40485 1.85996 1.26484 101 a - - >
- 1.38629 1.38629 1.38629 1.38629
- 0.02332 3.77011 * 1.46634 0.26236 0.00000 *
-//
diff --git a/hmmer/tutorial/SNORD96.out b/hmmer/tutorial/SNORD96.out
deleted file mode 100755
index 85304c2..0000000
--- a/hmmer/tutorial/SNORD96.out
+++ /dev/null
@@ -1,82 +0,0 @@
-# nhmmer :: search a DNA model against a DNA database
-# HMMER 3.1dev (November 2011); http://hmmer.org/
-# Copyright (C) 2011 Howard Hughes Medical Institute.
-# Freely distributed under the GNU General Public License (GPLv3).
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-# query HMM file: ../tutorial/SNORD96.hmm
-# target sequence database: ../tutorial/dna_target.fa
-# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-Query: SNORD96 [M=96]
-Accession: RF00055
-Description: Small nucleolar RNA SNORD96 family
-Scores for complete hits:
- E-value score bias Sequence start end Description
- ------- ------ ----- -------- ----- ----- -----------
- 3.8e-22 78.6 0.0 chr22 1846605 1846512
- 0.0017 18.9 0.0 chr22 189908 189969
- ------ inclusion threshold ------
- 0.038 14.5 0.0 chr22 1197742 1197673
-
-
-Annotation for each hit (and alignments):
->> chr22
- score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to hqfrom hq to acc
- ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- --------- ----
- ! 78.6 0.0 3.8e-22 2 95 .. 1846605 1846512 .. 1846606 1846511 .. 1846605 1846512 0.97
-
- Alignment:
- score: 78.6 bits
- <<<<_____________________________________________________.._________________________________>> CS
- SNORD96 2 ggccggugaugaaauccgauauaaaaaaacaccaucuuucgggacugauuuggcgcc..ucugcggcaaugaugcuacuucugcaauucugagg 93
- ggccgguga gaaa+cc + au+aaaaa caccaucuuucggg+cugau +g+cgcc uc gcggc+aug+ugc+a uucugcaauucugagg
- chr22 1846605 GGCCGGUGAAGAAAACCUCGAUUAAAAA-CACCAUCUUUCGGGGCUGAUCGGCCGCCgcUCGGCGGCCAUGCUGCCA-UUCUGCAAUUCUGAGG 1846514
- 789**********************999.***************************9999*****************.***************9 PP
-
- >> CS
- SNORD96 94 cc 95
- cc
- chr22 1846513 CC 1846512
- 87 PP
-
->> chr22
- score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to hqfrom hq to acc
- ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- --------- ----
- ! 18.9 0.0 0.0017 8 84 .. 189908 189969 .. 189902 189982 .. 189927 189964 0.67
-
- Alignment:
- score: 18.9 bits
- _____________________________________________________________________________ CS
- SNORD96 8 ugaugaaauccgauauaaaaaaacaccaucuuucgggacugauuuggcgccucugcggcaaugaugcuacuucugca 84
- ugauga+ ucc u aa +accaucuuucggg cuga uu+ +g + ug+ug+ua uu ug +
- chr22 189908 UGAUGAUUUCCCUU----AAUUUUACCAUCUUUCGGGUCUGAAUUA----------AGAUGUGUUGAUA-UUAUGGG 189969
- 55566655544333....344459*****************98877..........4566677777777.5555443 PP
-
->> chr22
- score bias Evalue hmmfrom hmm to alifrom ali to envfrom env to hqfrom hq to acc
- ------ ----- --------- ------- ------- --------- --------- --------- --------- --------- --------- ----
- ? 14.5 0.0 0.038 6 71 .. 1197742 1197673 .. 1197746 1197645 .. 1197742 1197673 0.76
-
- Alignment:
- score: 14.5 bits
- ________________________..____________________._________._____________ CS
- SNORD96 6 ggugaugaaauccgauauaaaaaa..acaccaucuuucgggacuga.uuuggcgcc.ucugcggcaauga 71
- ggug +ga+au + ++a aaaaa a a ucu cggg+cuga uu++gc++c u g gc+auga
- chr22 1197742 GGUGUGGAUAUUUUCAACAAAAAUaaAAAUGCUCUCCCGGGGCUGAaUUGAGCUUCgUGGGUUGCUAUGA 1197673
- 689999***9998888887776540034455589999********7355556666667777778888875 PP
-
-
-
-Internal pipeline statistics summary:
--------------------------------------
-Query model(s): 1 (96 nodes)
-Target sequences: 1 (3718012 residues searched)
-Residues passing MSV filter: 99668 (0.0268); expected (0.02)
-Residues passing bias filter: 95863 (0.0258); expected (0.02)
-Residues passing Vit filter: 3043 (0.000818); expected (0.001)
-Residues passing Fwd filter: 612 (0.000165); expected (1e-05)
-Total number of hits: 3 (6.08e-05)
-# CPU time: 0.11u 0.01s 00:00:00.12 Elapsed: 00:00:00.13
-# Mc/sec: 2745.61
-//
-[ok]
diff --git a/hmmer/tutorial/SNORD96.sto b/hmmer/tutorial/SNORD96.sto
deleted file mode 100755
index 7363e48..0000000
--- a/hmmer/tutorial/SNORD96.sto
+++ /dev/null
@@ -1,16 +0,0 @@
-# STOCKHOLM 1.0
-#=GF ID SNORD96
-#=GF AC RF00055
-#=GF DE Small nucleolar RNA SNORD96 family
-#=GF AU Griffiths-Jones SR, Daub J
-#=GF GA 26.0
-#=GF NC 25.9
-#=GF TC 26.7
-
-AC096691.6/4224-4322 CGACG-GUGAUGAAAAACCGCA-AGAAAAACACACCAUCUUUCGGGGCUGAUUUGGCGCCGCCGCGCGUGCAAUGAUGCUAAUUCUGCAAUUCUGAUGUCC
-AC096691.6/3994-4089 UGGCCGGUGAAGAAAA-CCUCG-AUUAAAAA-CACCAUCUUUCGGGGCUGAUCGGCCGCCGCUCGGCG-GCCAUGCUGCCA-UUCUGCAAUUCUGAGGCCA
-AC096691.6/3812-3905 GGACCUGUGAUGAAAU-CUGGA-ACCAAAAA-UACCAUCUUUCGGGACUGAUUUGGCUU---UCAGCA-GCCAUGUUGUCACUUCCAAGAUCCUGAGGUCU
-AJ242537.1/1-95 -AGCCGAUGUGGAUAU-CAGAUUAUAAAAGAACACCAUCUUUCGGGACUGAUUGACUUCU--UUUGAA-GUUUUGCUGAUACUUCUGCAAUUCUGAGGCU-
-AJ240068.1/1-85 UAGCCAAUGAGGACAU-CAGAUUAUAAAAGAACACCAUCUUUCGGGACUGAUUAA---------------CAUUGAUGAUACUUCUGCAAUUCUGAGGCUA
-#=GC SS_cons <<<<<___________________________________________________________________________________________>>>>>
-//
diff --git a/hmmer/tutorial/dna_target.fa b/hmmer/tutorial/dna_target.fa
index deb045c..1fb10db 100755
--- a/hmmer/tutorial/dna_target.fa
+++ b/hmmer/tutorial/dna_target.fa
@@ -1,37179 +1,5501 @@
->chr22
-agcaaatgacagctcatgagccaaatacggctcactgcctatttttgtag
-atgacgttttagaggaatgcatccaccttcatctgttctttagagtggat
-ggctgctctcacactgcacccgcaaagatgaagaattgtgacagcccgta
-ggggctgcaaagccttaaatatttactatctggccctttacagaagaagc
-ttgtcTAGGTGCTGactccccaggcttccaggagtgttggcaggtgacag
-gtcatagatgacttgctcttagctgaagggaagtactttccccagggcta
-cacattctgcctggggctgtacagacccattgcctggtgatgcacggtaa
-agagttggtcccctcacataaattgaggacagcaattaagggccactgca
-gctccagagctcccacgggatcagccaaggcttccgatagaactgcatcc
-cggttctttgccctatcctgcctcctttcctctctcatagccttgttccc
-aagaacactcccccaaaatcttcagcaaacaaatctttgtctcacagtca
-gtttcctgagagctctgcctaagaAAGGAGTTCAGCAATTCTCCTCAAAA
-CCTTTGATTGGTGACTCAAAGGAATATATTCTAGGAGTAAGAGTAAAACA
-GAAAGAGAGGATCTTAAAGGGGGATAATGCCCAGGTTCAAACTGAGCTTG
-CCTTGACTAAAGACCCTGAGATTACTAGTGTTTCTAGTGTAGCCACTGGC
-CGGAAGCAAATATAATTCCTCTCTAGAAAAAGACAACATTATCTGAAACA
-TTAAGCTCTGAACTTTTCAAATATAGTGTCCAGCATTTACTAAAAGTATC
-CAGGCATGTGAGACAACAATACAGCTGCAAACCCAGAAGAAACAATAGGT
-ATTAAGAGCAAATTCCTAGGAGATTAAGGTGATACATTAGGAAATATTCC
-TTCAAATAAATATATTTTATATTCCCAAGGAAATAAAAGACAAGATTAAA
-AAGTTATGTAGAAAATTGGCAACTAATAAAAAAATTTAGAATTATAAAGC
-AAAGGAAACAAATCATCTAATGGAAGGATTTACATCAACattagacacag
-ctgaatagaaaatcagaaaactggaagacaggccagaagaaaatattcag
-gcatgtgcttagtgataaaaagactttaaagatatataaaaaataattag
-aagcatagggactatggtgtaaaaatttaatatatgtgtaattaaagccc
-tacaagtagagggaaaagaatacggtataagaccaatatttgaaagcaat
-aggatgagaattttccaaaagtgaCTATAAATACCAAGTCATACCAAACA
-TGAAACCTAGGCAGAACAAATgaaaagaaaagcacaatcacaatatagaa
-aacctctgcaccagtaagaatggcaattattaagaagtcaaaaaaaaata
-acagatgctgggatggttgcagagaaaaaaagaatgcttatacactattg
-gtgggagtgtaaattaattcaaccattgtgaaagacagtgtggtgattcc
-tcaaacacctaaaaacagaattactgtttgacccagcaatcccattactg
-gatatgtatccaaaggaatataaattgttctattataaagaaaaatgtat
-acatatgttcattgcagcactgttcaaaatagcaaagacatggaagcaac
-ctaaatgctcatcagtggcagactgcataaacaaaatgaagtacgtattc
-accatggaatactaggcagccatgaaaaaataagattatgtcctttgcag
-gaacatggatggaactggaggccattattcttagcaaagtaacacaggaa
-cagaaaaccaaaaactacatcttctcacttataagtgggagctaaataat
-gagaatacatggacacatagaggggaacaacacatactggggcttgtcac
-attagtgatattttctcaaattagctcagtggagggtgggaggagggaga
-ggatcagaaaaaatggctaatggccactgggcttaacataatacctgggt
-gacaaccccccatgacaaaagtttacctacataacaaacctgcacatgtt
-cccctgaacttaaaagttaagttaaaaaaaaaaaAGAAAAAAAGAaaacc
-tctgaaaaccaaagacagaaaagcttaaggttgataaaaagttaaaaaca
-acaactacccagatttccttcaaaggagtaagaataaactgacagctcat
-ttcttaatggaaaaatgaaagcctagagataatggGTGAATGATGAAAGA
-GTTGAAATGagaaattaatagcaacaaaataactagaaaatcctcacata
-tgttaaaattaaacagcacaactttaaacaactttttttttttttgagat
-ggagtctcactctgttgcccaggctggagtacagtggcacgatcttggct
-cactgcaacctctgcctcctgggttcaagcaattagcctgtcttagactc
-ccgagtagctgggattacaggcacacaccaccactcctggctaatttttg
-tatttttattagagacagggtttccccatgttggccaggatggtctcgaa
-ctcctgacctcatgatccgcccacctcggcctcccaaagtgctgggatta
-caggcatgagcaaccgtgcccagcctaaacaactctttggtcagaaacat
-caatataaaacttggaggccgggcgtggtggctcacacctgtaatcccag
-cactttgggaggccaaggtgggcggatcacgaggtcaggagatcgagacc
-atcctggctaatatggtgaaaccccgtctctactaaaaatacaaaaaatt
-agccaggcgcggtggcgggtgcctgtagtcccagctactcgggaggctga
-ggcaggagaatggtgtgaacctgggaggcggagcttgcagtgagctgagc
-tgagatcacgccaccgcactccagcctgggtgacaaagcgagactccgtc
-tcaaaaaaaaacttagaaaatattttgaactgaatgtaacaaaaataata
-catagcagaagctatgagataaagctaaactaatgcttaagtgcaaaatt
-atttatgaaatggaaatctgagaaaagCAAAGTgtgcatttgccaatata
-ggatgatagaatatattttaggtaataatttgttcccttgatttacagta
-tgtaaatatttatatctatgctttgaaagccctcacctgcactttaaccc
-agacctaacaatgttctggatggTCTGATTTCTTaaaaaaaaaaaaaaaa
-aaaaaaGGCAattgtattacagtatgactagaacatcttttaaatgaatg
-ctatttggtcactggattcctatagtgaaaaaaaattaatcccttttatc
-acatcatattaaaaaataagtccagatacacaatagattattagaatgta
-aaatttatcagaggcaaattttaagtgaacttcagtaccagaaagatttc
-ttaatctagactcagcagcactaactgtaatggaaaggactgatttatta
-gatgacttggcactattagaacttctctttttcagtagactaaaaaggcc
-attccatgagtggaaggaaaatatttgctatCTAATATCCAgaccctgga
-agaggcagaggtttcttaaataagatgcaaagatcattaataaaaaattt
-gtaaaacagaaaattagacacaatcgaaattaagaacttaagttcataaa
-aattatatcaataagacaagaaaatacactcctcagatacaaatcagaga
-gcaaatttccaaacaacccataaacacaagaactgatgaccaattcatga
-cttatcaggacaatagaaaccaagaccacaaggcaaacttgtctacacct
-agcagaatagctacaatttaaaaagctaggaagtaccaagtgttggtgag
-gatacagagaaattggagctctgttacagtaatggtgagaatttagtgat
-tacactcataggtatatgaccccaaagaaacgcgtactcatataatcaca
-aaaagcatgcctaatagattcataacagcattatttttgcgagtcaacaa
-ctggaaatgtcccaagtgccaatcagcagtaaaatggattagtgcattat
-gggaaacttatacaatggtacattagagcaatatataataataatctgca
-gttacatggaataatatgacttgctttcacgcacattattttgagcgTGT
-GTGTtttataaacaggcaaaagcaatttattgtgttagaagtcaagatat
-tgattaggttaggtgaggaagggtattcatgggctgagagaatgagagat
-ttttttgaacactgggaatgctctgtttcttggcttggggtgtggctggt
-catacCACATGGATATAGGGATGTTTACTTTGTGATAATTTATCAAGTGG
-TCACCTTCTGAGCCATATATATACTCATACACATAATTCCATAGCCAGAG
-CCTTACATAACGGAAGTGGATGGAGGTGGTGGTGGAGTGGGGGGCAGGTA
-CCAGAGCTGGTGGTGAACTTGGCACACATTATTTTAGGCatgaagcatga
-aatagttattaacttcagaaaacgtttttataaatattataacacagtaa
-atgactttttgtgcatggctcatatatgtttacatcatgaaaattatatg
-aatgttatgtcaatatcgactctaaaccaatcctgggattattctatgca
-tgcagtaaagagtttggttggagggaaagtgtgcatgtcggttttagaat
-gattgtaagaaaatcaaatccccaacttctctggtaggatggctattaat
-atctaatggtgacaaattaaaaattgcagtaaaagagcctttcttagata
-tatgacatctcaaaagaaattgctaaaatagattaagttattgtttctag
-gaagcaaatgaagaAAATATTGATGCAAAGGGATTCTTAAAAAAAAAAAA
-AAACACCTTGTAGAACTTGTAGTTTTTAAAACTACTTATTAtgtaatccc
-agcacttagggaggccaaagtgggtggatcatttgaggtcaggagtttga
-gaccagcctagccaacatgatgaaatcccgcctctactaaaaatacaaaa
-atcagctggggatgatggtgcatgcctgtagtcccagctacttgggaggc
-tgaggcaggaaaaccacttgaacccaggaggtggaggttgcagtgagcca
-agattgcaccactgcactctagcctgggcgacagagcaagactctgtctc
-aataaataaaTAAGtaaatatttaataaatgaaatctataactttataca
-tttttctataatataaataaaatCTGTAACAGTAATAGCTAAAGGTGCCA
-TTTATATCAGTAAATGTCCACATAAATTTAATAACTCATACGttccataa
-actctcagagaacgggaaagagagatacccatctcatttcaataattgat
-acaattatgacgtcacagctgaacaagcaagcacagaaaaaaatgtatat
-tcaaatctactttaaacagataaacaaatcctaaataacatttaatatta
-agatcaacaagatcttaaaagaataagacatcaccaccatacagggttaa
-tcagaggaatgtgagaatgattcaggaaacctatcaatggggcattacac
-taggagaataaaggaaaaactttaattatctcactagctgctgaagaagc
-atttgataaaagtcaatgctcattcctgataaaaaaccacttagaaaacg
-aagacagtaatcaaacgctcttatctcaataaaaagtatttaccagaaaa
-tggaagcaagcatcatacttaatggtgaaacattagtgatgttttctcat
-attagctccgccaggatgtccaccatatatcaccgtttaacattgcgcag
-aaggttctaccaatgtaaaaatgaaaaaaGTAACTGTAGCGATATGACAG
-TACATATATGAGAATATTCTTTCCCATAAAAATGCAAAAGCACAAACTGA
-TAAATTGCTGGAACCGGCCGTGAGAGTTCACCAACCTGGAGCTGAATATA
-TCAACCTATGAAAATCAATAGCTTTTCTATAACCAGCAACAATCAAATAG
-AACAGGTAATAGAAAAAAAAGCATTCTATTCCGGGCCAAAATAATAATAC
-AAAAGAACTCCGGACAATTCTTACCTACTGGAAGAGTAAAAGTTGGCCTG
-AGTAGCTGAAGAGACATTCATTGTTGATCAGAGTAGATCAACACTCTAGC
-caacactcaaaaactctcagtggcttagcaaaatggacatccatttcagc
-tcacacgaatgagctgatgttcagcatggacttctgggatgtgaccttcc
-atgtggctattcagggacccggactccttccagcttgtgtttcctgaacc
-ctcggtggcctcaggtttccctgcgaggtctctgcttgcatgtggaaggc
-aaccaaaggagattgagagacagtgcagacgattcctatgggccagacct
-ggaggccaggagcatcatttctgcccacgtttcatcatctggaacttagt
-cacgtcgtcacacccagagtgaaggaagatgaaaaatatcactccctctg
-tgtcctggaagaaaaggaaagtggtttgggagaGGCTTCCGAATGTTTGG
-CAACCCGGgaaagacttaatgctgaaagggtgtcatttctctccaacaac
-tcatgcatcccgtcggtatctccaacaaattccaattggttttaataggg
-aaactgatgatctgattctcaagtttgtatggccaataaatgtatggaaa
-tagccagtacaattttgaaaaaatgcaccatgggcatgactgtggatgtg
-ggtttgccttatttgatgtgccgtaggtggaacaataaacacaatgtgac
-attagtgcaatatcaatacataacggaagagaaaaggcgatctggaaaca
-aatggacacatcaggggatttgcacataatcagattaaattcatagacag
-taaaagtgacttttcaagttaatgaggactaaagatctatctaataagtg
-attttggaatatttgactacccatttgctaaaagaaatgtcaatggatca
-taacttatatgttaataaatttcagttttattaaagatttaaacctaaca
-aatatcaatataatctgaggcaggagaaagcatagTGATATGAATGAATT
-AGAAACCATATGGAGAAAGACTGACAAATTCCCCATGATAAGTAACACAG
-TACACAAAGTTAATTGATATCTGGCAGAATGACAAAAATATTTCAACAGA
-AACAGGCAGGATTTtaatattcagaatttagaaagcattcacacacatca
-acaacaaaaagacaacgcagtagaatgtagtcaaagaatatggatggctg
-attgactgaacattattaaaatggccactaaacacattaaaagaatatca
-aatataaactaaaacaagattttttgcctctcgtattagggaaaaagcat
-aaaaaaccatcatgtgaaatgctggggaggaggtactgtctgcattttgg
-tgggagcatgcattggaaaggcctttaaaagggtagcttgttaatcaact
-gattacaaaatccatagactctgatccagtacttgtattttaggaatctg
-gatcaaagaagagccaacccatgttcatgagacatgtatgcatgcatgta
-caatttgttttcttcacagcattatttgtaattgcaaaaacatgaaaaca
-aatcgtcattaagacagaatggttacattaataatcacaaatccaatcaa
-tgaaatgctacaaaagagttagaaatggagaaagatctaaaggctgattt
-gtaaaattaataagatgtatagctaagtgaaagaagcaagttgttgacag
-ggtatgatataatTCCACTCATGTTGGCACACACATAGATACATATgaaa
-gagagagagagacagacagagtcgaagagaatggtagagagagagaaagg
-gagagCACGTCAGGTTGCCTACTCAATGCATTGCTTTGAAGGCATTTGGT
-CAATGAGTACCAATAAGAATGTGATGATCTGAAGAGCACGTCCTAATTTG
-GCAGGGTATGCTTCCAGAATCCTTTTAAAGGAAAATGTATCAGCAAGTTA
-CATACATAGTAAGTAACAAAAGACAAAGAAATTAAGCATGTAACTACCTC
-CCTTACTTCTTCCTTTCTCCTTTCTCTCTCCTAAGAACAATTCCTTGCCT
-GTATTAGCATCTCCGATGACAAACCTCCCCCGCTGCCTCCATGCCCCTTC
-CCCAACTCTAAGGTTCTTGGCAGTGTGCTGAGGACTGCAGCCCCCATCCC
-TATCACTTCCTATCAGTTGCTGCTGGAGCCATTGAAGGACCCACCCTCAG
-CTCTGGTTCTGTCCATGCATCCCCTCCAGAGGCCGCCGGAGAACTCAGGG
-AAGGTGGAGTAAGGAGGCTGCCCAGAGAGCAAAGCAGGCGTCTGCTCTGG
-CAAGACCAACCCTATGTGTCAGCAACACTGAAGCTTTCCCTTGGTGTCTC
-TCTAGGAGATTTTGGGAGACTTTGGAAGATCTCCCCTTGCCCTGCTGGTG
-CCACCCCGGTGACTCTTGCTTCCGAACTGCTCCTTGTTGTTGCCTGTGGA
-ATTGCACTAGTGTGGTTGGTCTCCATTCTCTCTGATCAGTTGTTTTTTCT
-CCTTCTTTGATTTCTCTTTCCAAATGTTAATATTTCACATGCTTCGACGC
-TGCTGGCCCTTACTTCtttttttttttttttttttttttttttttggaga
-tagagtctcgctctgtcccccaggctgtagtgcagcggcactatctgagc
-tcactgcaagctctgcctcccgggttcacgccattcttctgcctcagcct
-cctgagtagctgggattacaggcgcctgccaccgggcccggctaattttt
-tgtgtttttagtagagacagggtttcaccgtgttagctaggatggtctcg
-atctcctgaccttgtgatccacccacctcagcctcctaaagtgctgggat
-tgcagacgtgagccactgcgcccggccTGGTCCTTACTTCTTACTCATTG
-TCATCAATTGTCCAGAGCTTCCTCTGTGACACCCAGAATGTAATTTCCAA
-CTCTGTCTCCAGTCCTGACCTCACTCTAAGTGCACAGGCGCTGTGGGGAG
-TCTCCACCAGTGGACCTCAGAGCACTGCTGTTGGGCATGCTGGCCAGAGC
-CCTGCAGCCTGCTTCCCTGGGTACCCCGCACACCCCTGTGGGGCTGAGGG
-CAACCCCGGAGAGATTAGGCACCAGTCAGCTCAAGGTCTAGAGTGGCAGC
-TGCCCTGGGGGTCTAGGGATCCCCACACTGCTGCTCCCACAAGACCCTCT
-CCCACTGTGGTCTCCACTTCCAGCGTTCTGGGAAATTCAGCCACAGGAGG
-CTTATGTACTGACATTTCCACTGTAGCAAGCTCCCTTGGGTTTCCTGTGC
-CTCACAACTTCTGCCCATAGGTATATCCTCCACATGTATTATACACACAT
-CAATATGACATAGCCGTATCCTCCACATGTATCACACACACACCAATATG
-ACAAGGTGAAATGGAGACCATACGTGTGAATGGAATGGAaaccagcattt
-ctggagcatccactgtgtgtcctctgctatacgggctgcatcccatgtag
-aatctgtaattctcacaataaccttgggtaggtggatattacactgactt
-tagatatgagaaaaATATGACCAAATCCTATTCTCAATTTTCACTAAAAG
-TATGGCCTCGGGAAAATTGCTTAAAATCATTTAGATTCAGTTTAGAGTTG
-AGGCAAAAGGTtgtcaaccaaaataacagagaggccctctaaaagaaaag
-atgtttttttgagaacggagcattgcaatggaaaagtgccgcagtaaaca
-cggtgcatattcagggaggtaaaagagaacaaaggatttttacaggtaaa
-caatgaggaggattacataattgttttgagatcattgtccttgattataa
-ggatcaatagcaagggtgacagcagtccaaggttggacaggcagttgctg
-ggcagatgtctttgtgaaagtaaattttgttggctcacgcctgtaacccc
-agcactttgggaggccaaggtgggcagaacacctgaggttgggagttcaa
-gaccagcctgaccaacatggagaaaacctgtctctactaaaaatacaaaa
-ttagcagggggtggtggcacatgcctgtagttccagctactcaaaaggct
-gaggcaggagaactgcttgaacctgggagatggaggttgcagtaagccga
-gatcgcaccattgtgcttcagcctgggcaacaagagtgaaactccatctc
-aaaaaaaaaaaaaaaaaaaaataggaagtaacttttgtgcaaggttgtgg
-gttttgtagagcatctttcattattaggcatacaagcatccctggactcc
-tttgctctatttttcgccgttttcatagcattagtgactccatttgattc
-tgataactttcacGAAGTCTTTGGAatttgaccaactttttactggccaa
-atattatgtgccttggactgtgctaggcaacgtggatcagacagaggtgg
-cccagacatagcccTATGTCGCCAATTATCCATAGCCTATCAGCAAGCAA
-ATTAAATATACATACATTAAATGAATACAATCCTGTGAACAGGTATCAAG
-TACCACTGCCACAATGGACATGGTGGTAAGTAGCAAGGACACTGAGGTTT
-GTATTAAAAGTCACAGCACTATCCTGAAAACAGCAATTGACTTGCCATCA
-GGAGATGGCATCAGGGTCATTGAAATCCTGACGGTGAAAATAAGCACAAG
-TATTTTAACCATATCAGCTTTGTCAGAAAAGGGATACATTACTTCATCCA
-CTTAGTCATTTCAGTGATTCTCAAATGCATAAACTAGATGATTTGAAAAT
-ATATGTTCTGAGcagacaccatggctcatgcttgtaatcctagaactttg
-ggaggtcgaggtgggtggactgcttgagcccaagagtttgagaccagcct
-tcgcaacatgctgaaaccctgtccctacaaaaaatacataaagtagtcgg
-gcttggtggcgtgcacctgtagtccagctactcggggggcagaagtggaa
-tgatcactcaagcctgtgatcctgccactgccctccatcctgcacaacag
-agtgagactctatctcaaaaagaaaaagaaaagaaaATATATCTTCTTAA
-ATAACAATCACAGATATAGAGGATAAAATATAACAGAAATTCTTCATATG
-CACAGCTGAGTTTTTGTGAAATAAAGGCAACAAATTTAAAGAAAACCCAA
-AACAAGCATAGTTTTATAACACTGAAGCCAATGTTTCCTTAGGGGGCATT
-TTTACCCACCTTATAAACGTGACtttttttttttcagacagagtctcgct
-ctgtcacccaggctgaagtgcctggtgcaatctcggctcactgcaaactc
-tgccttctgggttaaagccatccttctgcctcaagcctcctgagtagttg
-ggattacaggtgtccaccaccatgtcctgctaatttttatatttttagta
-gaagcggagtttcaccatcttggtcaggctggtctcaaactcccgacctc
-aagagatccacctgccttggcctcccaaagtgctgggattacaggcgtga
-gccaccacacctagccTAAAATACTTTTTAAAAAAACGAAAAGATAAATC
-TTTGAGTCCATGCAAGGATGGGAGATGTAAAAGTGGCTCACATAAAATTA
-CTGGGAACTTGAGAAAATGCACATTCAGTAAAGTGCTACCAGAAAAAAAA
-AATCCATCTTCCAACATAGTGGAACACAGGACAGTCTCAAGTAAGACCCC
-AGGAAAATGCAGAAAACATGAGTCTTGTGATCATTGATGGTATGAATCAT
-TAAATCGCCTAGACtggggcttgacattacatttattatctggtttaaga
-aactccaagtgaagcaattaacatgaggtaagccttgactgttagaacct
-gaggaagcttgttagacacagactaaatcGTTGCTCCCcagtctttctgg
-cacgggggtatggagctgggggatggttttgggatggaactgttccacct
-cagatcatcgggcattagattctcataaggggcccacaacccagatccct
-cacatgtgcagttcacagagggtttgccctctcatgagactctaaggcca
-cctttgatctgacaggagggagagctcaggtggtgatgtgagctcatggg
-ctgctcaacgcctgctgtgccatccagtaactaacatggcgtggatgggt
-actggtcttccgcctggagactggggaccactgGTCTAAATAAGCGCTGT
-AGAATCACCCTTTCCCTCATGGATGCTGCATGGTTTCTACCAGGTAAGTG
-TCCACAAACATAAGGCCACTCTCTAAAACCACAACACACTTCAGCAAGCA
-ACTCACAACAGGAACAGGAGTCATCCCAAACAACAAAAGGCAGATCTGAC
-CACTGAGAAGTTAAAATAACAGAATTTTTGGAAACAAAGTGTAAAACGTG
-TACACTTAAGATACATAAAAGGAAAGCACTAAAAACACACACACAAAAAC
-ACCCCAAGATATGATTTAAAAAACACCAGAGAGATTTAGAGAAACAGAAA
-CAAAACAAGGAAGCATTTTATGAATAATACGTATAGTTAATAAAATTAAA
-ACTTGAAGGATGATGTACTAAGTATTGGGTTTGGTGagccgggcacggtg
-gctcatgcctgtaatcccagcactttaggaggctgaggtgggtggatcac
-aaggtcaggagtttgagaccagcctgtccaatatggtgaaaccccatctc
-tactaaaaatgcaaaaattagctgggcatggtggtgcgtgcctgtaatcc
-cagctacttgggaggctgaggcaggggaatcgcttgaatccaggaagcgg
-aggttgcagtgagccaagttcacagagcgagactccgtgtcaaaaagaaa
-aaagaaaTGGGTTTGGTGTAGGTAAAGAAAGAATTATGGAAATGGAGTCT
-AAACCTGAGGAAATTTTATATGGAGCACCTAAAGAGAAAGTTGAGGAATA
-TACATAAGTGAAGTTGAAATGATAGCGTTTGAAATGTATAGCATACTATA
-TCCAAAAATAGAAAATAGAAGAATGGGGGATAATTTTTAACCTTGGAGTA
-ATAACCTTTAAGAAATTGGTGCAAAGATAATTAATGACATAAATTAATGT
-TAGtgtgaataactctaaacaattattggctgtgtcaaatatttttaata
-actaatttctgagataaaaaaatatgagggactgaaacacagggaaatta
-acaaaatatttgtaaggggaaataggattaagccattataaagtctttgt
-actgttaagcatgaggataaaaatactgaaaaattttaaacttggtaacg
-tgtaggttaagtaAAGCCTCTAATTTCAAAAACAGTAGGAGTGTAGTAGA
-TTTCAAAAACTTGTATTAAACAGAAATATTGAAGTAGCAGAGGCAAGACA
-AAAAGAAAGTCCAAAATATAGAAAAAATAAACCCAACTGTATGAATAATC
-AGAATAAATGCAAATAGATGAAACTCACAAGTTCAAGATAGAGAAGCTGA
-AATTCTAGAAGAAATGTCTAGTGGAATATTTGTCAGAGACACATTTAAAC
-ACACATAAATACTGAAAACTCAAAAAGTAaaaataaaataaaataaaata
-aGGTATATCAGACCAAAATGGAAAGCAAGTATAATACTGcattcatcaac
-aatatggtccacattttttcctaaagctgggccatggcaaaccctcccaa
-caccctaatttccaaagactgaaataagtgtaacttatctgaatgcaatg
-taattcatctaggaatcaattaaaagagaactagaaaaccccaactcctt
-agaacttgaaccatacatttccaaataatctttgagtgaaaaataccaaa
-aagaaattaaaccaatactttggttattaggatatagcacatcaaacttg
-gtggaatggagctaaagtagtgcttggagggaaatttaagacttgagtac
-atattttagaaaagaagaaaagaaaaatTTTAAAAGTGACTAAAGATTTA
-ATAGAAGAAAAAGCAGTAATAATGGACTCCTTTTAAAGATCAACTTTCTG
-TCAATAAATGTCTAAGTGTAGACAAACACGAATAATGTTCCCAAAACATA
-CACATCAGACCAATTCAGAATGAAAAAAGAAAACAGTGAATATTCTGATC
-ACCATGAAAAGAACCAAATCAGTCATTAAAAACCCAGTGTGCCAGGGATC
-TCCACTTGTGGTTATGATATAGGAAGCTGTGAAAACCTTAACTCCCAGGA
-TAACACCATGAAGAGCCTGAACAAACAAATTTGGTGCTTCTTTATGAGAA
-GAGTGAAAAGCGGTGGATGAAATCTTTATTAAGTGATTTCCAGAGAGAGA
-TAAGTCCTTCATAGAAGTATAGATGGACAGATATGGGCTTTCATGTACCA
-GAGGCACGTGCCTGGCCTGAGCAAGGATGGGGTCCCATAAACTGAGAGAC
-CCTGAAAGAATAAGGAAATATTAGCTCCGTTCTGGACGTCAGTGTGGGCT
-GGCAAGATGGAGTGGAGTTTGGAAGAACCCTGAGTTCAAATAGAGGTCTT
-CTGACCCACCAGTTACCTTCATGTGTCCCCTATGCCTCTTCCTTCAGAGG
-GTTTTCTTTTTACTCTTTTTTTTGTCGGGGGGACATGgggaaggagtctt
-gctctgtcgcccaggctggactgcagtggtgcaatctcggctcaccacaa
-cctccacctcccaggttcaagtgattctcctgcctcagcctcccgagtag
-ctgggattacaggtgcccaccaccacacccggctaattttttgtattttt
-agtagagatggggtttcactgtgttagccaggattgtctcgatctcctga
-tctcgtgatccacccgcctcagcctcccaaagtgctgggattacaggcgt
-ccgccactacacccagctaattttttgtagttttagtagagacggggttt
-caccatgttagccaggatggtctcgatcacctgacctcgtgatccacccg
-cctcagcctcccaaaatggtgggattacaggcgtgagccactgcgtccgg
-ccttgtatttttagtagagatggcgtttcgccatgttagtcaggctggtc
-tctaactcctgacctcaggtgatccacacacctcagcctcccaaagtaat
-aggCCCCTTCACAGAGTTTTGATAGGAAAACGATGGAGGAGAACAGGCTG
-GTGAGCAGGAGACTGTGTTACTACCCCACTGCCTCACCGTGCCCAAACAG
-TGGGCATGCACCCAAACTCCTCCAGATGCAATGTTGATAAGATAAAGAAA
-TGCTCCAGCTTTGGAGGTTAGGGGCTGGGCGAATCACAAGTTACAACAGT
-CTGACTGGAGTTGCAGCCCAGATCAACTCCAATTGACCTGTGAGACTCCC
-TAGGGGTTGGCCTCACCCTAACCACAGACAGAGAGAAGGGTCTCTCTGGG
-ATGCAAACCAGAAAGACCCAAAACATCAACACAGAACAAAATATGTCAGT
-CTCTAGTGCTCTTTAATATACAATGCCTGAAATAAAATAGTATGATATTT
-TCAAACAGCCACCAGACAGCAGCACCTAGAGGCAGGGTGAAAGATGTCTG
-ATTCAttgtaataagcaggcaaggaccttaaaacagctcttgtcaaagtt
-taatgctgtaaactgaaatatgtatataatggctgaagagatggaatatt
-tcagagcaaaagggaaattctaaaagagaaacaaatgaaattttagagta
-aaaagcacaatatctgatattaaaacaaaaaaattaaataggctggaagt
-acattagaaatggaaggagacagtaccagtgaagttgaagacaagtcagt
-actaattttccaaaatgaagcagagagaaaaaatattgaattaaaaatgg
-aacaaagcatcagtaatgtgtagtttaaagaaatctgtctaatatgcata
-aaattagagtatggaaggagaggaaataagaatgaggcaataaagtattt
-gaatgaatatttactaagcttttttttttcaatttgataaaatggaaaat
-gaatccacaaatctaggaagttcagtggagttcaagagagtgagttcaac
-gcaccaagggtcatcagagtcaaaatactgaaaacctaagaaaaagagaa
-aatcttaaaagtcatcagtacagagggaggttgccacgtcacataaagca
-gaacaattataagaatgatagctggcttccaaaacaatataagccagggg
-aaggagtaacaataacatctttaaagttctgaaagaaagaaaaatacttt
-caacctagaatttcatatccagtgaaattatcttccaaagttagaaaaat
-cagataaatgcaaactgacagacgtcatagtccacactacaaaaaaatgt
-aaaaacaaatatcatgctgaagagacattttgccagatggaatctcagtt
-caacaagaaggcataaaatatgccaaaaatgataaatataggattgaatt
-tgaaagactgtatgttttgttcacttgtcttaaatatataaaagacaatt
-gagtcattggaggaaaagtaataggtaatgcatatggtgggatttataac
-atacagtaaagtatatgaaaatgaaacacaaagaatgatcagggataaac
-aggagacacactattatggttttacatcatagtgatgctaaaatgttact
-tcatggtagatttgtttaaattaagaatacctgttgtaatacctacagaa
-atcactaaaaagaaagagatatacctaaaaaccaattaaaagagataaga
-tggaatagaaaaccactttataaataaaaaagaaagcaggagtaaaaaac
-ataggataaatataaaccaaattgcaacatggtggacttaatcccaacca
-tactgataattacattaaatataaatggtttagaATTTCTCCTTCCACCT
-TCCAAAGGAGTAATTGCTATAGTACTTGCCATTCACCATAAaaacaaaca
-agaaaactgaaataatttacaaaacaactgttttaagatagacaataggt
-agcacagaactgcaaacaatgatcaaagagaaacaaattaggtgaaccca
-atgatcaccttggacttctgcttggaggcaatttctagaccatggtgcaa
-ggaaggagaagcaaacccagaaatcttgagttgaatagacaggatacagt
-cagctggggccaaggtgtctggaattttcagggcagagtacaggatagga
-ggaagttagtcagagaaaaagctccagaaatctgcacagaagttcctgtg
-agACATGGGCTAAATATCAGTTTTCAGGTAAAATGGAAATGAAGACTCCA
-TGAGGCACGTCATAAAAGAAATGCCAGGGGGAAAAATaataaggtcgagg
-aaataaatattatgagaattaaaaaaggaacaaaactctcaatcacagaa
-aatattatgagttacatacataaccaaagtaatttaaagataaaatattg
-aaattaataagaaattaaaagatgtaaaagcaaagacaaaatatcaaccg
-catttctgtatactgaaaacagcaacaaatacaccaaaacaacaaaacct
-aggagtttgtaggagtaaatttagcaaaagaaatgtgagactttactgaa
-aaatacattaaaatttattaaggccattaaaaagagctaagaaagtgaag
-tgataaacctgtgtgtagatagacagttgcaatattataaatatgtctct
-tttcccagactaacctacaaagtcaaaggaagcttgaccaaaattctgtc
-aaggctctgcatagaatatgtcaagttgattttaaCGTTAGTTTTAATTT
-AATTTATTTGTGTAAATTTAAGAGGTACAAGTGCAAttttgttacatgtg
-taaatgtaagaagtacaagtgcaattttgttacatgggtctattgcctag
-cattagagtatgagtttttagtgtatccctcatcactcaaataatgtaca
-ttgtacccattaagtaatttctGAATGTTCTGAACTCTTTGCTATTCCAC
-ATAAAGTTAAAAATCTAGAAATTACTTAATCAATTTTAACTTTATATAGA
-AGAGCAAAGGGTTCAGAACATCCAAGAGAGTTTTGCTGCATCAGATATAA
-TGATTTATTATAAAGGTGACCTGAGCAAGACCACGTGGTCCTGGCCACAT
-GGATTAACTCATAGACTCTTGGGACAGAGAAAGAGGCAGCCTCCCTCTCT
-CCAACCCCCAGAAGTACATCTCACTTAATTAGAAACTTGGTAAGTGACAG
-AGACAGAGCTTCACACATTTAAAGAAAATATGTATGACATTATGGTGAAT
-AACGCATTTTTACCTTAGTCttttttttgttttgttttttgagacggagt
-ctcgctctgtcgcccaggctggagtgcagtggcgcgatctcagctcactg
-caagctccgcctcctgggttcacaccattctcctgcctcagcctcctgag
-tgctgggactacaggcacccgccaccaagcccagctaattttttgtattt
-ttagtagagacagggtttccctgtgttagccaggatggtctcgatctcct
-gaccttgtgatccgcccacctcggcctcccaaagtgctgggattacaggc
-gtgagccattgcgcccagccACCTTAGTCTTAAACTGCACAAATTATGAA
-GGATAATATAAACAAACTCAGTGACATTAAAATAAAAATGTTTGTATTTA
-AAAAGACACTATAGgaccgggcgcggtggctcacgcctataatttcagca
-ctttgggagactgaggcaggtggatcatgaggtcaagagatccaggccat
-cctggccaacacggtgaaaccccggctctactaaaaatacaaaacaatta
-gctgggcatggtggcacgcgcctgttatcccagctactcaggaggctgag
-gcaggagaatgacttgaacctggttgcagtgagccgagatcacaccactg
-cactccagcctgagcaacagaacaagactccatctcaaaaaataattaaa
-aaaaagacactataaccaaagtagaaacacagactataccctggagaaga
-catttgcaatgagcataactgacaaaggtttagaatccagActacagatc
-aacgagaaagaaaatacagtagaagaaaaaatggtcagaggatatggaaa
-aggatttcggagaaaaataaaccataactttgaataaacatgtgaaaaat
-atccaaactcattactagagaaatagatgttattatctcagtgcatgaca
-ctgtacacctgtcaggaaaatttaagggtacacactctgaagggctggga
-aagatgtgaagaggaacaggtgtgtatggtaggagtataaatttgtacaa
-ctactttggagctacatttatcaataactggtcaatttaacataaatatg
-tcccacaacccagcaatttcactcatagctatctatttaacctttagata
-agtgataaggaacctatacagggttggccattgcagttcaaattaggttg
-atataagagagcatcagaaacagcagaaaaccatcaagaggaaaatggat
-aaataaattgtagtatattcatgcaataaaatgctgtacagagaaaacaa
-atgacctaggattttgggtaacaacatatataattctcactaacctaatg
-ctgggaaaataagctggttgcaggaagagtcacacattttaatttcacgt
-agacagctttataaatagagaaataaagcacagtgcacaggaatgcatgc
-agacatgataaaggcaagaggaagcacatggaatcaaatgagcatcaaat
-tcaggatggtggtatctcgaaagaggcggtggtgaaggaataggaacaGG
-TTCATGGAATGTTCACCTGCACGTGGGAGGTTTTATTGTTTTGGCTGAGG
-AATGGACAGCCTAATTCCCTCttttttttttttttttttttttttttttt
-GGTGTCTTCTGCCCTTTTTTGTGCCAcctaacactgtcctgcgtgcccac
-cgggccaggcaaagcctccctgcccctccctgttcctcttgccctggggc
-ccctgccttggctgttcctgccacttcagattatttacccccagatgttc
-aaacaagcaggcctcccttcttccaagtctcaactcaaacctcaccatct
-cagggaggcttcctgaccTCAGCGCCCTCGTCACCCTAGGCAGTGTTCTA
-GTTTAATTCTCCACGCGGCAGTCAGCATTAGCTGGTAGTTCCATTTGACT
-TGCCGTAGTTCCTCTCTGGCTTTTGTTTACTCCTGTCTTCCCTCTCTAGA
-ACACAAGCGCCTTAGCAAAGGAACAAGCTGTCCTGTTTTCAGCAGGGACT
-TGTGCTTGGTGCAAGGCAGGCATTTCACTGGATGAATGAATGAATGAGTT
-AGTGAGACAATATGAGAACCGTAATCATAACATGGAATATCCATATCAGT
-TTCTATCGGTATTTTTTTaagcaataaaggcagagatttattggaaatga
-gggtacactctattgaaaacgaacgtacacttcacagggtgggagcgacc
-agagtaaaaaggctcaagggtccctttacagaattttctggggttgaaat
-agcctctagaggtttcccattggttacttggtgtacaccctatgaaaagg
-aaatagtggccccacaatcagtctgattggttggtggaaagcaaccaatc
-agagactaaagtgaacttacaaagttacacccctatgcaaacgtctgatt
-ggttgcggaaaacaaccaatcagagatactttcaattttccatcggccac
-acagaaaaagtgtgtgtgtgttgggggcggggggtgggcgagttacaaag
-ggagtagcctctggttcttttgttgtttaggtgtggaaagttAACTTTCC
-ACATCTGTCAGCATTTTTATTAGAAGGAGAGTCATGGACAAACGTGCATA
-GCTAGGGGATCCCCAAGAATGAGGGGTCACAGTGCAGAGAGAGAGGAGAA
-AGGAAGGGGAAAAACTGCATGCAGGAGACTGTACTTGAGCAGAGCCTCGT
-AGGTCAGGCTGCGTTCCGATGGGTACAGGAGAGAGACTGAACAGCAGCAC
-GCGGGGCGGACTATGCTCACATAGGGCAAAGCCATCGTGCTTCTGGGGTG
-GGGACACCTTGTGAGAGAAAGAAAGATGCTCAGAGTCAAGGCCAGGGTGA
-GGGCCCAGCGTAGGTGAACGGGTGTCAGGGCGATGAGGGAAAGTGGTCTC
-TCAGCTGATGTGCGATGAGCTTATGCGCAATGCCaatggcccatgttgat
-caagcagaccatatgtgacgaccctgcactaagcactttacatgtagtaa
-ctcatctcatcctctaacaaccaggtgaggtgggtgatctcatcttccct
-aattctcagattagaaaacggaggctcggagaggttaaccaaggctccaa
-ggtcacTTGGGCTTTGGATAATAGCAACCGATGCCTGTCCCCTGAACTCT
-GCCCCCTTTGCACAAAATACCAGAGAATATTGTGAAGACCCGGTGCTATT
-GAGGGATGGAGGAAGTAAGGACAGGGTCATACTAGAACCGCCTCTCAGAT
-ACATGCATCCAAACTCTCAGATGGTGGCTCATGCAGGGTGCAGCTGtggc
-tgggagctgcctggcagccaaagcagaaagaaaagtgtgtgattcagtgt
-ccatcagaataataactttttaaaatcttcaggaacaagtgtgagttttc
-ccatgctgtggctcaggagaaacccttcctgaggcctttataaacagaat
-gctggtaactgggctattttctcaacaGTGCCCCCATGTGCCAGCCACAA
-CAGTCGTGTAAATGTTGCTTTCTCTCATAATTTCCCATTTTGGAATTGTT
-ATAATTCCTTCCCCACCTCCTGTAGGTGGTATGCTTGGGGTTCTGGGGGT
-TCTATGATATGTGCATATATATAGTATAGGAATGATACATATATTCCGAT
-ATAACCGTATCACAGGAAtatatgtatgtgtgtgtgtatacgtatatatc
-ttccttccttcctttcttccctccttctttccttccttccttccttcttc
-tctttcttccttTGCATAGGTACTTTCTGAGTGGCATTACATGACAGGCA
-TTTGTATAAGGACAAGGGATATATGAGAAAAAGGTAATTCAGCAAACAGG
-ATCTCTGGAATGTTCAGAACACATGGGGTAAACCACGtgtattagtcagg
-attctctagagggacagaactatatatatatatatatatatatatatata
-tatatatgatgggatatatatatatatatatatgatgggatatatatata
-tgatgggatatatatatatatatatatatgatgggatatatatatatgat
-gggatatatatatatatgatgggatatatatatatatatgatgggatata
-tatatatacgatgggatatatatatttcatataTTCTGTATATATATTCA
-CTGAAATAAGGAAATATACATATTCCATATATTCTGTatatatacagaaa
-taattttatatatatatagatagatatataaaggggagtttattaagtat
-taactcacatgatcacaaggtcctacaataggctgtctgcaggctgagga
-gcaaggagagccagtcccagtcccaaaactgaagaacttggagtccgatg
-ttcgagggcaggaagcatccagcacaggagaaagatgtaggctgggaggc
-taggccagtctctcttttcacatatttctgcctgtttatattctagccat
-gctggcagctgattagatgatgcctacccagattaagggtggatctgcct
-ttcccagcccagtgactcaaatgttaatctcctttggcaacaccctcaca
-gacacacccaggatcaatactttgtatccttccatccaatgaagttgaca
-ctcagaactaaccatcacGCCATGACATAGGACAAGTTATTGCCTGGGAC
-AAAAATGAGCTCATAAACAAAGAAGCTTCCTTACATACAGATTTTATAGA
-TTCTCTAGTAAAAACAACTTCCAAGGTCACCTCCTCCTCCTCCCAGTCCT
-CTGTCCGCCCCCCCACAGCCTGAGCACCCACATCATAAATGGGGAGCAGC
-TGGTGTCCCAGATTTTGGGACCCTTCCCTGTCCTTGGCGTCTGATGCTCT
-ATGGCTTCTTGGACATTTGTTTTATTCACAAACACTGAAGAATCAGTTTA
-ATTAGACATCTTCCAATTCTATGTCAAGCCCTTGGAAATCCCAAGTGTTT
-AGCAGTTAGGAGGGAGGGTATAAAGGCTCCTGCTGAGGTCACAGTCTGGG
-GGCAGGATTGGGCCGGAGGGGCAGCCTTAGAGAGGATGCAATTAGCTGGT
-ATTGAAAATAACAGAAGAAAGAAATCCTCAGGTGCAGGGCCACTCACACA
-CACCTTGACGTAAGGGTCAGCAAACGAGGAAGGAGAAAAATTGAGTGAGT
-TCTCAGATGTTTATCATTAGCAGAAACCCACTGGGTAGGCTTAGATTATT
-AGTGTAACTCAGTGGCACTCACCCTGCACAGAACCATGAACAGGCACTGC
-TTCCCAAAAGCAATGGGCCCAATCCCAGGGCCCTCTGTAATCTGTCCTGA
-TGCATGGTTAAAAGCTTAGTATTGCGACTCTTTAATTTAGAAAAATCAAT
-CAAACTTTGACAATTTTTccttcttccctccctctccttcctccctttac
-tgcctccctccctctccttcctccctagtccctctccttcctccctAAGt
-ccctctccctcttctctctccttcctccctgtccttcctcccctcctccc
-tctctttactgcctctccctcctccctctccttcttccctctccttcctc
-cttgtctctcctccctctccttcctccttctccttcctccctacctccct
-ctccctcctccctctctttcctccctccctctcctttctcccTTCCTTCT
-CTTCTTCCTTCAGTTAGGAAGGAAGTGCCATTACATGCCAGGCACTGGTA
-TCAGGACAGGGGATACAAAGAAAATGCctaattcatgcaagtcattttag
-cttgcacccggtatgtcttggattgctagttctgagagaaaggaaccagc
-gcaccaggaagaccctcaggcagccccatggacagttctgtgcagagagg
-gatccaggcccccagccaacagctggcaacaaatgccactcatgtggatg
-aggccttggaagtagacccttcatctcaatcaaactttgatgactacagc
-ctggccaacatctgactgcagacaggagagaccccaagcgaggactaccc
-agcaaactcttcccaaatgtatggctcatagaatctgtgtacacgataaa
-ggcccctaagtgctggggtgatccatcatgcaacattcgataactgcaac
-aGACACTGAGCCCAGTGGTTGGTGCACCATCAATGCTCAGACAGTGGTGG
-CTGCTGCTTCTGTCAAATAACAGCAGTTCCATGTTCTGACAGATGTCCTA
-GATTATTCCAGGAAGTCGCATGGCTCCAGACTCCCTCCACACCCACAGTG
-CCCCCTGAGGAAGCCTGGCCCCACAGATGGTGACTGGCGGGAGCCATCAG
-ACCCCCTGTCTGATTGATTGCACTTGAGTGCTAGAGAGGAGGCCATGAGA
-GAAAGTCACACACGTGAAACTCACACGGGAAACCACAGCCTCTGCACCTC
-CGCAGGACACGGCACGGTAGCTCAGCCAGAGCCTTGGCGACCTTGGGTGC
-CCTTCGCGAGCTCCTGCTTCCGGAGCCGGCTCTGCAGCTGTTCTTCCTCC
-TCTTGTGTCTCTTGTAGCTTATAATAAAAATCTCTCTCTGGGAATTTCTT
-TGTTCTTTGAGCATTTCTTTGTTTCTTGCAGCCTAAAAGAGCCCATCTCA
-AACAACAAGGGTCTGGGTGGAGGAAGGGTTAAGGACATCTTATTTAGACT
-CAAAGAGCCCAATCAAGCCTTCTGCCTGAATGGAATGATTTGTGCAGTTC
-CTCGGTGAGACAAGAAGCTGCTTCTCTGCTCTGCCTACTAAGAAGGCCTG
-GATTTCCATACATAAGTAGATAAACACAACGTGCTGAAGGCAGACAGGGA
-AAGCAAGAAAGAACACACTATTCATTAACTTCTCCGCTTCCTAATAGGAT
-CACCACGGGCTGAGCAACATTTCTGCTTGAGTACCCCAGCACAAAGCCCT
-GTCTGGGCCTCAGCCACCTGGTAATTCTCAATTAGGCTCCACGGCAGCAC
-TAACGGCTGGCTGTTGGCTCCTACAGGTAGAGCTTATTCAACAAGGGGCC
-CGAGCTGTATGCCCGGAGATCACGCATGCCCAGCCTGCTGGGCCACCGTG
-GGCGCTGGGCAGTCTCTCTGCATTTGACCCTTTCATGATGCAGCTCCCAG
-TTCCCTGGGGTGGGGGCTGAGGAGCCTGGCAAGCCAGTGTGGCCATCCCC
-AAGTTACTCAGCACCACAGGCAGCAGCATTTTACAGCACATAGGAGGGAG
-CAAACCTTGCAAAAATGGATCGATAGAGACTGCTTATTGAAAGAACCTTG
-AACAAGCACATGTGTAAGGATTGAGAATGTGGTGTCTGAACTGGCAGCAT
-GTGCCCAGAGCAGCACAGACCTCCCAGGAAAATGAAGAGAGGAAATCGAG
-GTCCCAGCAGCCCCAAGGCCCTATCTTCCTGTTTCTGCAATCACAGAGTC
-TTCACCTTGCCTTTTGCTCAAAGCACCGGACATCAACCTGTGGGCCATTG
-TCCACATTTGGCTGTCTGTACCTAGACCTGCACTGATGGATGTGGCATGC
-TCAGAGGTGGAGCAGATTCAGGCTGTTGTCAACAATGGTTTTGAACTCAC
-CATCATGTTCTAAGTTAAATATTCCTCCGTGCATCATCCACCTGAATGGT
-TGTTCTGTGATCCCTGGAACAAGAAGATAGAGCTCCAAATGGCACAACCA
-GATAAGCATCACCCACCCCCGCTCAAGAATTCTGTTCGAAGTGTGCTTAT
-TCCCACCTGGGCACACAATGTACCCATACAATAAAGCTTGCTGAAGTTGC
-AAACCTGCCCGAACATGGGGCTCTCCTACGTGACCATGCACCTAAAGGGC
-TCCAATCCCTCTGCCAATCACCCTAAGAAGTTTCCAACCTGCTCCATTTG
-GCTGAGAATCCTTTACTGGCTCCCCATCACCAGTGTGAATTAAGTCGCAC
-CCCCTTAGCCTTCCTCCAGAGCCTTCTCTGAATTGACCCAGCCTGGATTT
-CACCTGTCAGTCATTCTTTGATATCCTTGTCTGTGAGTCCCTTATCCTGA
-ATATGCTGAGCCCCTACTGAATACGCCCTCCCACCGTgaggcaggatagc
-gccgtgtggaaggcacaggcctgtggatcagacagacctggactctgatt
-acttaatctgtttgaacctcagtttcctcatctataaattcaaaatactc
-atcatcgtctgtgctgtgtagggttggcaagaggattacacgtcagtcct
-ggaaagcaggactcaaggcccagcatgcagtgcacactAACCACCCGTCG
-ACACTCCAGGGCCCCCCACTCTAAGCATGCCTACTGTGTGGTGAAGTCAC
-TGCCTTCATTGCGGTTATGGCCATCATCCTCCTCACTTCTGCCTTTCCCG
-TGGTGACCTGGACTCCTTCTCACCCCTTCCTGCATGGCCCCTGCTCACCC
-CTTCCTTTCCCAGCCTCTGCTGGAGGCTCCAAGCTCCAGATCCTGATGTA
-GGGCCAGCCTTGACCATGTCTGCCTGAGCCTGGATTGCTGTTCTGTGGCT
-GGACTTTGTGGGGATTTGCAACAGCCGAGCCTCACCATGCCCAGCTCAGA
-GGCCGTCCTTAGCATGAGTCCTTTCATGTGACATCATTTAATTAAGTGTT
-ATATTGTATGGGTCTATAAATGTCCACCTGAATTTAAATCTGCCAATAAA
-ACTAAAAATCTCCTATAAAAGGAAGACAATGATTGTGAGCAGATATGGCC
-AAATGCCCATAAATCAGAAGGGGTGATGTCTCCAGGCAGAGGCTGGAATT
-GGAGTCACTAAGTCAGGTAGGGACCATCACCCACAGCCAAGGGGCCTTTC
-TTTCAGATGCCACTGTGTACATTTAGGATGTGATGATCTGAAGTGTGGAA
-CAGTCACCCCCACAGTGCATGTAGCTGAGGGCACGCCAGGACCCTGACGC
-CAAGCTGCCCGGCCCCACCTGGGCACTCTTCCTACCGCAGCAGAAGCGAA
-TTTCGGGCCTAGAGGAAATCGAGCCTGTCCATCCAGGGACAAACCCAGGC
-CTGGTGGGCCCTGTGCGGGAGTTTCCCAGAGGTAACCTGGTACCCAGCCA
-GGGGCAGACAAGTAACTGTGCTGGAGTCCCTGAAGGACCAGACGAGGGTG
-TTTCCCAAAGCAGGGCACACGGAGGCTCCTTCACTCGTGGGTTTCTCACT
-GGGACCCTGAGAGGTTCTGAGAGCAGGGAGCATCCCTGGGTAAAGGAGAC
-ATGGTTGCACCTGAAAGAAGGGTGCTGGGCTGTAGAACGCTGCACAGAGG
-TGAGCCCAGAGCTGAGACAGATTGCACCTGGGGCCTCTGCCCTCCAGCCC
-GGGGCCTGTTCTCCTGGGCAAGGCAGCAAACCTTGTAGCGTAGTTCTCTG
-TGCCCATCCAGTCTCGAGGTCACATGTAGAAAACTGCAGTTTTCTAAGAA
-AAACCAGGCTTCCAGTGGGTGTAAAGCCTTGAGCTCCCAGCTGGTCCATC
-AAGGCTCAGACTGGTTTCCAGCACAGTCCCATGATGGGCTCAGCTCAGCA
-CCGAGTGTGCACAGAACGCCCACGCAGTATCTCAGAAAGTGTGGAATCCA
-GGACTGACAAGCGTGCCCTATCTCCCTCCAGCCAGGGTTCTGGCATCCAC
-TCAGAGAGCCTCTCAGACCCAGGGGACCTGGAAATGCTAGCCTTTCCTAA
-TCAACCCCACCTCCCTTCCACTCCACAATCCCCCCGTCACCTTAACCATC
-CCACCATCCTGGCTCAGGCCCTCTGCCTCCCTGTAGAGCTGTTTATACCC
-ATGACTTTCCTCTTCCTGGAGCCTGGTTCCCCAGGACGGTCAGTGCCGCA
-GGCCTCCACCTGCCTCACCCCAGTGGTCTCAGGTGCTTTATAGGGAGTCT
-ACCCATCCAATCTCCCAGCACCTGGCTGAGGAGGTGATTTCCACATTCTA
-AGACACCAGCTGCTGCTCTACTGTGCCATGAAATAAGATGCCAGCATTTT
-AATAAGAGCTTCCTGGGGGTGGGGAAGTAGGGCATAGAAATACAAGTCTC
-TCTTGGTAAATGGACACATGCATTCTGAGACATCTGACTTCAGAAACACA
-CGTCTTAGGATTCAGGAAATGTGATATGGCCCACCTTTTTCAGGAAAGCA
-GAGAAGGCAGTGACTTGCCCATTATGGCTTCAGTGTCATGCCAGGTCACT
-GTGCAAGATGCTACTATTTACGGGAGACTTCCagggtcaatgtggctgag
-tggcagagctgggacaagacttgggggtaaagcagaccctggccataatg
-ccaactccgccatctataagctgcaggactggggcgagtcacttgaactc
-tcctagcctccgtttgcccatAGGCAGTGGGCAGGTGGTCcaggttcaac
-ttcctcattgcaatacccacctccaaaaagctgtgaaaactagaagcatt
-tttcgaactcattcaatgataagaccccacctgacgtgacctggcctctt
-tggtaaccaaatctgacctgagctacctgcagttctttagtctttgatgg
-atcagattcccaagaatattcatatgtttcatgtagaactgctatatcag
-ttgtgtttgattacaggtgctgtccccaacccctggggTGCTCCATGCAG
-ATGGACTGGGGCCAGGGCCATCATCTCCATCCTATGGACTCTGATCAGTC
-ACCTTCCCCTATTTTCAGGGGTGGTTAACAAGAGCCGGGACTGGCACAGC
-TCTCTGGGCTCTGGTCACATGTCCTTTGCTGTCCTACAAACTTTTGGGAG
-TGTGCTCCGGGAAATGGTGCCCTGGTGGGGAGGGCTGCTCCTGAGAAGCT
-CCCATGGTTTATTTGGCCACATGCAGGGGCTCTTGCCCTCTCAAGGGAAA
-CCACACAGCAGGGATGAGAGGGCCGAGGGCCAAGTGCCAGAGGTACAAGT
-CCTGAGACAAGGTCTGGAGTCAAGGGTCGCGGGTCAGGGGAGCACTGGCG
-TCACTGAGTAACATCTTCATGAAGTGACTCTTCCAGAGCAGCGGACGTCA
-AGGGTGGGGCTGCCTCTGCCTAGGCCAGGGATTACCCTCTTGCTTCAGAT
-TTGGAACTGAAACCGCTGGGATCGGCGCCTCCACTGGGGGCCTAAATCCC
-CTGTTACTCTTTTTCAATGCCTTGTCATCGCTGTCCTGTTTGATATTCTT
-GTCTGTTTCCTTTTGCTGGAACACAGAGGAAATTTATACCTCATTCTTAG
-AAAAAGGAAAAAAAGATAGTTGTGCGATTGTGGGCAGAAATAGTCAATTG
-TCAGCTGTTTACAGGATGGGGCATTGGCGGATTCAGACTGGGACTCCCAC
-CCACTGTGAAGACCCTTGAAAGTGATACCACTGCAAACCTATAGGAGGGC
-CCCGAAGGAAAATTCTCCTTGCAAACTGTCCTGCCCCTGAAGCTTTGATT
-CCTTTCCTGCTGCTGATACCGCTGTCTGTCTGTTCCACATGAGCTCCTCT
-CTCCTCTGCTCGGCCGTCCTGGACTACACAAAATCTCAGTCCTGCCACAG
-CCTGATGCTCTTCCCCCACACCCCCAAGCACACACACCGCACAACATACT
-CAGCACCTAGATTCCCAGGCTGGGCCAGGAATAGGGCCTGAGTCTATGGG
-GTTCCCATCAGCATCTTCATGGGGGGATCCTACAAAAACAGCCATCCGCA
-GCTCTTTGCCCAAATATATAGGAAGTGACTTCTTTTCTTTTGTGCCTTCT
-CATCAAAGGGTGGCATCAGACTAATATGGGTTTTGTTTGCCACAGCTTTC
-TGTCAAAAGACCTTGGGCAAGTTCCAAATACATCCATCCTCAGAAGAGCT
-ATATATTAAGGatttctgtatagtaaattatcactggatgcattggctgc
-aaaaacaagcatttgtcacctcacagggtctgtggttcaggaatctgagt
-gtggctttgctgtgtactgctgccttaagttcattcactttcaagatgtt
-gggctgggctgagtctcatctgaaggttgggctgtggaaggatcgacatg
-gctgtgagcaggattcagtcatctatgggctggcagtctgagggtgtcac
-tcctctgtcgctgcagccagatgtctctgcctgttcctggccccatgagt
-cccttcacaggctcacaacctggcagctcgctcccctctgagtgaacaag
-ggagggagagagtgagacagaagtcactgtcctttggtagcctcatttca
-gaagtgacattccagcagttttggccacattctgtttattagaaagaagt
-caataggtgcagtctgtactcaggggtggagcttacacaagggctgagtt
-cctggagggggttatccctggagtaatctgagagccacctacTCATGCCA
-ACTGCATGTATTTCAAGAGACACACACATACACAGAGCCGCACATATACA
-CATGGCTTCTGGACACACTGTAAGAACCCAATAAATGGCAACTAACTTTT
-CTTAATTACTAAGACCAATTAACATTTGACTGTTATTCACCTGCCAGTTT
-AAGGTCCTTGAAACAAACTCATTTTTTAAAGTAGGGGCAAAATGTCTGTG
-GTTTGCCAGTTTGGCCACTGAGTCATCATCTGACCTGAGCATGTGCTCTC
-TGGCCCTCGGCATCCACACCTCGGAGATGCAAGGCTGCTCTGTCCTCTCA
-CCTGCATGCATGCTGGACTGTGTGCCTTTTCCTGTAACCTGGCCAGACTT
-CACTGGCCCCCAGCTTAGCCCAGGTCCCCAGCTCTGGTGGCCTTCACTGG
-TCCCTGTTCAGAGAGGAGAATCTTGATTCTACAACTCCTGGCTCTTCCCA
-GGACCACATGACCTTCCACACCACCTCACTGTGTCCCATGGATCATCTTC
-CTCCTGTTACCAACTGAGGTCCTTACAGAGGAGGCTGGTCATATCCCTCA
-GGGGCCAGCAACTCCCACAGTGACTGCACAGGGCGGTATTCAGAGGACAC
-TTGCTGGCCTGGATGCAGGCTGAGAAGAGATCACACCTAAGGTcagcatg
-ctgccatccaggatgggggaggagactggtccttctgggaagagcaagta
-gttccgtgtggctggagcaTGAAGACCTGACCCAGGTCATCTGGGGCACT
-GAAGGAGCTCTCCATTCATCCTGGGAGTATATGGAACTTTGGCAGCTAAT
-CCTCTCTAGCCTGCAGCCAGGGCCAAGCTGATATTTGTGTGTCAACAACA
-GGAGTGaacagttcctcggtgctcaccacaggccaggctctgttcagcat
-ttggcatttttaatcaatttgattcccaccacagccctaggaggtaaatg
-caattattatcctcactccataagtgaggaaactagagcacaaaggggtt
-tgatgatgcattcaaagtcacagggccaagaagtgatagagtccaggttt
-gatccaggcccagagtcctaagtgctctATGATTTTTCCTGGGGATGACA
-CAACCAAGTCCTGCTGCAAGGCCTGGGAAGGCCAGCCTTGGAGAGGATGG
-TGCATAGGAAGCACCTTCACTGGTCTAGTTAGAAACAGGAGACCAAACGA
-GAGGATGAGGCCTCAGAGGGGATGGGGATTTGGGAATGACTGACAGGACA
-TGAAGGAGGTTAGGATGGACAGGATCTGGTGGCCACTTAGCTGGGCAGGC
-ACTCAGATGAGTGTCTGTGAAGAGCAGGACAGCATCTGTCAGAGGCTGTG
-CCGCCAAGTCTGTTCCTGATGTTCCTGACCACGTGATTTGAAGTCAAAGG
-GTCCGTTAgtagccacccaaatgcattcatctcacccactgcccaggtag
-agctgatttgtcaggagaagggaattgcaatctgtattagtctgtcctca
-ctgctaataaagacatacccacatttctgagactgggtaatttataaagg
-aaagcggtttaattgacttacagttccctatggctggggaggcctcataa
-tcatggcagaaggcaaaggaggaacaaaggcagatcttaaatggaggcag
-gcaagaaaacttgtgcaggggaactcctctttataagagtatcagatctc
-gtgagacttattcactatcatgagaacagcatgggaaagacctgcccccg
-tgattgaattacctcccacggggtccctcccatgacacatggtaattatg
-ggagctacagttcaagatgagatttgggtggatacggccaaaccatatca
-caattgaaaaagagtttatttattattattattttgagacagggtctctt
-tttgtcatccaggctggagcacagtgattcaatcacagctcactgcagct
-gcaacctcttgggctcaagtgatccttctacctcagcctcccaagtagct
-gagaccatgggtgcctgccatcatgcctggctaatttttaaaactttttg
-tactgatggggcctcgctatgttgcccaggctggtctcaatttcctgagc
-tcaagcaatcctcccacctcagcctcccaaagtgctgggataacaggagt
-gagccaccatgcctggtaaagaaagagtgtaatacacatagagccagcta
-accgggacaccagggttgtattattactcaaatcagcctccctgaaaatt
-tggaagatagggttttcttttttaagatagtttggtgggcagaagactaa
-gaaagggggaatattgattggtttggttggagataaaattagagggtgtt
-gaagctgtcctcctgtgctgagtcagttcctggatgggggccacaagacg
-agaggagccggcttaccggtctgggtggtaccagctgatctacctgaatg
-tttaaggtctgaaaaataccttaaacaccgatcttaggttttacaatagc
-catgtcatccataggaacaatggaggagatttggaatcttgtggcctctg
-gcttcataactcctaaatcataatttccaatctgtggctaatttgttggt
-tatacagaaaggcattctggtccccaagcaaggagggagttcattttggg
-gagggtctgttatgttatcatctgtgtttcaaagttaaactctaaactca
-attgcttccaaagttagttcagcccacacgcaggaatgagcaagggcagc
-ttggaggttagaggtgagatggggtcggttaggccagctctctcactatc
-atcattttctcaccgttataaccttcgcaaaggcagtttGAAATTTTATT
-TTGCTTTTCAAGACACCATGACACTAAAATTGTACATAGGATTTGGGGGG
-GGGCGTCTAGGGGAAGGGGGCGTCTTATCCTTGTGTTTCTGTCATATGGA
-CGCAACAGGCCAAAGGAGAGAAAAACATGAGAAGCAGTGGGATGGGAAGG
-AGTTGACGGTTTTGAGCAACAGGGAGACCCGGGAGCCGGTGGAGCAAAGA
-TCACAAGGAATGGGTGGGAGGTGGACACGGCACTGGGGGCTTTCTGAGCC
-ACAGTCAGGGTTATTCTGGGCTCTCTCCTCAGTATACTGTGAAACCGCTG
-GAGTGCGAAGCACAGGGGTGAGGCTCCAGCCGGCTTGTACTGCCACATTC
-GCGTCGTCGTCATTCTCCTCACCACGGTGGCCTCCACCGATGCAGGGCCT
-GTGAATGTCACCTCCACCCCAGCCGAACATCCCTGCAATGGCTTCATCCA
-TCCTGACAAATAGTAACAAGCCACTAGCACTTCTTGCCCCACACCTGTTT
-CCCCAGGAGACAGCATGGCTTCTCAGGAGCGTGTGCTCCTTCAGAGCGGC
-TCTGTCTGCTCTCTCGCAGGGCGCTCCCAGCACCCAGAGCTGCGACCTGT
-CCTTAACCAAGGGATCCGCTGAGCCCCCGGCTCCTCTTCTGTGTTTGCCT
-TGTCTGTGGGGCCTGTGATGCTCTCCGTCCGTGGCTTGACCCCCACCCAT
-GAAAATGCTTCAGCACTTTCTCAGGAAAGACGCATGCCCTGTGTCCCCAC
-TGGGTCCCATCCCCAGCCCCACCTTTAGCCTTGACTCAGATGCACAGAGA
-TGCAGCTGTGGGTGGGCTCACCAATGTCCACACGCACCCCAGCCTGAAGC
-ACGGTGCTACAGACCTAGTAGGGGCTGCAGAGATATTTTAAGGGAAAAAT
-ATAATTTACAGCTTCTTACAATAGTTTGAAGTTCGGAAAGAGTGAGATTG
-GGGAAAAAATAGAAGCAGTAGCGGCGGCACTGATTTTACCAGGCTCTCTA
-TGGGCTGAATTTTAAAAACTTGCCTTTCAAAGGGACTTGGAACTTCTTCC
-CAATTCATTGTGTTGCTACTTTGCAAACTCCACTTGATTCCTGAGCTCAT
-CATGAATTCTATAAATTTTGTATTTTTACACCAGGGCCCTTTGAAGTTGT
-ACCTTTAAAGAGCAAAAACAAAACCAAAGTGACACTTTCTTTTTTTTTTT
-TAATAGAAAAGCGTGTGTAGCTGTGACATAGTTCACATTCCACAACCACT
-GAAGGGTTGAAACATGAACTTGAAAGTAAATAGCTTTGTGGAGATTCACA
-TCGAGGAGCACTGTGCAGTCATTCAGAAGAATAAACTCCAGCTCTGCCCG
-GTGATGGCAGGGGTGTTAACAATGCAGTATTGAGCTCAAAAAGTAACTTG
-CTAAAAGGTGTGTTTGATGAAATTTATTTTTGCAAAACAATTACACAGGA
-TAAAGCCTGCATTTTTGTGTGTAGGTTTCTATATGCGGATGTGTATTTAT
-AGATCCATGTCCTGTGCGTCTCTGCATGAGTAAGTGCATCCAGACAGACG
-TGTGGAGTGTGTTCATGCCTGTGTATGTGTGGGGATAGAAACACATGTGT
-AGAAGTAAGAACTGGGAAGAggctgggcgtggtggctcatgcctgtaatc
-ccataactttgggaggctgaggcaggtggatagcttgagctcaggagttt
-gagaccaatgtggcaaaaccctgtctctaccaaagatatgcaaaaaatta
-gcctggcatggggccatgcaactgtggtcccagctgcttgggtggctgag
-gtgggaggatcacttgagcctaggggatggaggttgtagtgagccgagat
-cacgccactgcactccagccaggcaacagagtgaggccctgtctaaaaac
-aaacgaaacaaaacaaaTGAGAATAATAGTTAGTACAGATTTCCTCGTGA
-TGAAGTTGGCAGGAGGTGGAGAGGTTGTGGGGAAAGGGAAGAGGGTACAG
-TGACAAGAAATAAAAATTACGTATTTGGAAAAATAAACAACATGCTTTTA
-CGCATTTTGTAAAGTATATATATGCGTATAAGTGTGTATAGAATAAGTCA
-AATTTGAAATAAAATGAAAATGAAGGCTGGGCAACTGTTAGTGGATGAAA
-CAAAATGAAATAATGTCTAAGAAACTGCTTCCTAAATGGCAAAGTGACAT
-TCTAACTGAAATTATTATCACAGTTGTCCAAATAACTATTACTGTTATTA
-AAAGCTCAGCTTCAGCAGAATGCAGGCTGTGCTGGCGTCTGTTCAAAAGC
-AAACCTTCTCACTGAAGTTTCCCTGCTCAGATTCCAAGCGGACTGGGACT
-CCTAGCTAAGCCAGCCCTCGGGGCCAGAAGTCAGGGGAGCAGTCCTATCT
-GAGCATCCCCAGCACTCATCCAGGCTTTCCTACCTTGGGGGAGCCCCAGC
-CCCATTAATGTACCCCTCAGAGAATAGTCTGCTTTCTCCTTCTCTCCTGC
-TAGCATGAGCCACGGTTGATCAGGGACCCCTAGTGTGGCCTGAGGTTTCC
-TCTCAGAGGAAAGCTGTCTTTCACCTGGAAGGCTGCTGGCCAGCAGTGGG
-CAGTGAGTGAGGCATGATGGGACAACCCCTGAGCTCCTAGAAGAAGACAC
-CTGCACCCAGCTCACTGCCCAAACCAATATGTTCATTACTCATGACTAGA
-TGTGAGTCTGTGCATCCTTCCCCGCTATCTGTGTTTGCTGTGAGTTCTCG
-CGTACATGCAAAGCTGGAGGTGGGTACTGAAAATCTGTGCTTCATAACAG
-CGCAGCATTCTATGGGGGCAGCAGGGAGAGAGGCCATCCTAACTAGGGGG
-TTCAGAGGACTTCACAGGAAGACGGGTgagaaaattagccatgctttccc
-caaggccaagaataaaaatgtcccaagggatttggagaaagcatttgaag
-atgaCGAAGGAAAGATAGATTGAGAAGGACATGAAAGACCAATACTAAGA
-TCAGAATCATGTTTAGGGGCAATGGGAGCCACCAAATATTTTACAGCAGA
-GAATGATCAGAGAGATCCTCCTTTAACAGCAATACAGAAGAGGGCTGGGA
-GGGGTCAAGGCTGCAAAAGACAATGGAACATCAGGGCTTAATAAACCCCC
-ATGGTAACAGGATTTACCCCGGAAATGTCTATCCTGAAGCTTTCTGGGAG
-ATTCCAAGATGTCCTTATTGCCACTGTCATTAGGGAGGAAACTGAAAGCT
-GGATTAGGCAAGAGCCAAACCCTTGCTCTGCCTTTCGGGTCTGGTTTTGA
-TGACATTTTGTCACCACCACATACCTACCCCCATTTCTGCATCTTTCAAA
-AAATGAGTTGCAAAGGTGGACTTCTCTGGGCTTCTGAGTGAAGAATTATT
-AAATCACAAGGCCCCAAAGACCCCAGGGTTGCTTCCTTAGGTTACTTGGG
-CTTGGGGTGGTCAGGGGAGGGCTCAGAGCATCATTATAAATGCAACAATG
-GTAAGGAACTTCTAGTTATGGAAATGCTGGAGGAGCAGGAACCCAGACTA
-GCCTTCCCATATAACATACaggacagtggttcctggcagataggaagcaa
-acagggtgagtctatgaacgctgaagctgattagctggagttttcaggct
-gcgtcacagagagcgtagctcagccagctccctgagtagaagagatagga
-tggatctttcagaaggtcaaggctagagtttgcagagcacagtattagag
-agagaaaaattgcaaagatagaaagctcaggagaagcaaagaagctcctg
-tcatatactaggactgggtactgaccagctcatgctaggaggaaactacc
-caaagccagggggaatcaaataatcagtgaaaggaattgcagaaattcgc
-acagcctgggcatagttcctgtcctcaccagtcagagtaggaaactacat
-aacctatggaacattcagtacagaacacaaaagaatgtaacttattagtg
-agaagaaatatcagtcagtaaaaacacacctggagttgacaaagatggta
-gaactcatgagcaattatattgaggcagtaattataactatagtccaagg
-agctagaggaaaaatcgagcatgctacctgaagacacggaagatattgaa
-atatgcaaaatcaaagttttagagacaaatacggtaatgtctgacataaa
-aatatcccatattgggaggctgaggtgggctgatcatgaggtcaagagat
-tgagaccatcctggtcaacagggtgaaaccccgtctctactaaaaataca
-aaaattagctgggcatggtgatgggtgcttgtagtcccagctactcggga
-ggctgaggcaggagaatcgcttgaacctgggaggcggaagttgcagtgag
-ccgagattgtgccactacattccagcctggcaacagagcgagactccatc
-tcaaaaaaaaaaaaaaaaaaaaaaatctcatagaggattaacagcagaat
-agacaatgtagaagaagaaataatcagtaaatttagaaacatacctatag
-aaacaagctaaaataaagcagaacatcagcaagttataagaaaatttcca
-gaagcttgatgtatgtggaatttgagtccccagtagagagaagaaagagg
-aaggatagaaaaaatatttgaagaaataacagtagaaaaaaaattaaatt
-tgatgaaaaccataaacccacaggtccaagaagctcaaaagcccttaagt
-ataagaaacatgaagacaattagaccaagcagtatcaaagtcaaattgct
-acaaagcagagattaagataaatcttaagagtagacataaaaagagactt
-tgctcaggaaacatggaatagacataattttccctacttctgctaagttc
-acctagaaatcctggccattatatgtaaagcaagcatgaaacagttctaa
-taggtggagagaagaaagactggctagggtctgggcgcggtggctcacac
-ctgtaatcccagcactttaggaggccgaggtgggtgaatcatgaggtcag
-gagttcgataccagcctggccaatatagtgaaaccccatctctactaaaa
-atacaaaaaattagccaggcatggtggcaagtgcctgtaatcccagctac
-tcaggatgctgaggcaggagaatcgcttgaacctgggaggtggaggttgc
-agtgagccaagatcgcactgttacactcttacccaggcaacagtgcaagt
-ctccatctcaagaaaaaaaaaatggctagggacctcaaggccaacaaaac
-aacagagcggtcaggtccctgtgttttctttttgcagggacctcaaggcc
-aacaaaacaacagagcggtcaggtccctgggttttctttttgcctcatgt
-ttcccagacttggcaccagagaagccagttatctggataaccaaaaggca
-tggttgaaaaagtctgaatgaaacccagctctctttaatcaaataaacag
-cagagggggacctaacaagacagcaaacttttagacaataactgcactgc
-ttcagcagacaccagaggaaaagctgtggccccaccacactcatgcatca
-aagggaggagagtggagatcctagacttccactctggccagaagtgatgg
-gtgttgttaggcatcaacttgactggattaaggggtgcccggatcatggt
-gaagcatcagctctgggtgtgtcagtgaaggtgtttctggaagagactgg
-cctgtgaatccgtggactgagtaaggaagatccactctcacccagtgtgc
-caagggccatgcagttggctgagggcctgaacagaacaaaatggcagagg
-aagggtgaatttgcttgcttgctttctcttctggacacctaggttctcct
-gttctggggaatcagaagtccaggcgctctggcatttgggctctgggact
-agtcccagtggccccccaggttctcagaccttcagcctctgactgagagt
-tacaccattggttttcctggatgtgaggctttcggacttggaatgtggca
-cactattggcatcccagcatctcagcagctctcctcttacatgccttccc
-agcctccataatcacataaaccacttcccctaataaatcccctctcatat
-agcttcatctatctatctatctatctatctatctatctatctatctatct
-atctatctaactatccatccatccatcctattggttttgtctctctggag
-aatgctgactaatactccagattataacatggtgtcccagtacttccctc
-caccccaatggcagaggatgtcggagaaggctgagtaggaaaacccctgt
-cttcccacttcctagtgtcctagtgtcaagggagaacccacacccaccca
-gtggtaatgagaaccccacccctgaatggggtagtgtcagagaaggattg
-gttcaaccaggactttcaccaccactcagtggaactgaggcctcctccca
-tccggaccctgtcagtggagactgtgtggtgagcagtgagcagaggaggc
-attcctccctgtaccagccaggctggtatcagcgtaggcctaagggagag
-ctcaaactcccaccccatccaccaataacgagatgtccctccaactgggt
-ttcaatggaggcaagtagagatcctggacttccagcagtaatggggtggt
-gcccaccttcccccaccagaggagcttcagaggaggcttactgaaacata
-agatttaaataagattcagaattgcataacataatatccaaaaggtccag
-ttttcaatagaaaatcactcattataccaagaaccattaagatctcaact
-tgaataagacaaaaccactgacagctgccaactttaagatatcacagatg
-ttaaactcgactgaaaaggattttaaagaagtcatcataaaaatgcttca
-aagagcaatttggaacatctaagacatgaatcaaaaaagtctctgcaaag
-aaatagaaaagtttagaattgaaaattttagaagagaaaatggaaatttt
-aaaacaaaaaaaaagcactgaaaaacaaatcctcaatagtttcaacagca
-aattaataggacagaggaattgattatttttgacatagaacaacagaaat
-tacctcatggaaaacagaggaaatagacttacaagaaaagaacagagtct
-tagaggcactggggactataacaaaggatttaacatttgtgtcatcagtg
-ttctagaaggagagaagaaagaagctggagctgaggccaggtgcagtggc
-tcatgcctgtagtcccaggacattggaaggccaaaacaggaggattgctt
-gagcccagaaattcaagatcagcctaggcaacatattgagaccccatctc
-cacacgcacacacacacacacacacacacacacacacacacacacaaata
-caaaaattagctgagcatggtggtgtgtacttatagtcccagctgctcga
-gaggctgaggtgtaaggatcacttgagtccaggaggtcagctgaagtgag
-ctgtgattatgctgctgcagtccagtctgggtctttttttttttaagacc
-ctgtcttaaaaaaaaaaaaaaggaaagaaattgaaacttaaaagtattta
-aagaaataatggctggaaattccccagatttggtaaaacacataaacaaa
-tatccaaatttagtaagctgaggaaatcacagcaaggtagatctaaagaa
-atctacaccaatacacatcagaatcaaacttctgaaaactaaagacaaag
-aaaaacccttgaaatcagacaaagaaaaaaattgcctgtaagggtaattt
-taatgacagtgaatttctcatccaaaaccaacccagaaggcattggcatt
-acagtgcagaaagggaatgactgtcaacatagaattgtatattcagcaaa
-aatagccctcaggactaaaggcagaaccaagatattctcagatcaaggaa
-gcttaagagtatttgttggctgggcacggtggctcacacctctaatcccg
-gcactttgggaggctgaggcgggcagatcacgaggtcaggagttcaagac
-cagcctgaccaacaaggtgaaaccctatctctactaaagatacaaaaaat
-tagctgggcgtggtggtgtgcacctgtaatcccagctactcgggaagccg
-aggcaggataattgcttgaacctgggaggcggaggttgcagtgaaccaag
-attgagccactgcactccagcctgggcgaaagagtgagagtccgcctcaa
-aaaaaaaaagagtatttgtcactagtagacctatcctgagagaatggcta
-tggggatatctctaaacagaaagaggttgataaaggaaggaatcatgtaa
-caacaggaagaaaggaagaacaaaagagagagtaaacatatgagaaaaat
-accacaggctttccttacctgtgtgagttttctaaattatgcatgatggt
-ggaagcaaaaattataatgctgtataatgccgttctcaatgtatgcacgg
-gaaatatttaagacaattatattaaaaatggggaagggtaaaggaacata
-aaaggagttaagttttctacacaacactttggttaaatgttaactcctat
-acgctatgataagttatgtatatatcatgaatacttaagggcaactattt
-aaggacagttatggccggatgcagtggcttatgcctgtaatcccagaact
-ttgggaggctgaggcaagggatcgtttgagcccaggggtttgagaccaac
-ctgagcaatatgacgaaagccctctctacaaaaaaaaaaaaaaaaaaaaa
-aaaaaaaattagccgggcttgatagtatgcatctatagtcccagttacct
-gggaggctgagatgggagaaccacctgaacccggaagagtcaggctgcag
-tgagccgtgatcatagcattgctttccagtccgggcaatagagtgagaAT
-ATATGAGTGTTTTGAATGTATGaaagatatattcaaaaacattatgggta
-aatgaagatggaattttaaagtttgttcaGTTtgatccacctgcctcggc
-gtcccaaagtgctgggattacaggtgtgagccactgcacccggctgcctg
-ctttttatcctggccatgctggcagctgattagatggtgcccactcacgt
-tgagggtaggtctgcctttcccagtccgctgactcaaatatgaatctcct
-ttggcaacaccctcacagacacacccaggatcaataatttgcatccttca
-gtccaatccagttgacacccaatatgaaccatcacaGTGgagcaaaacaa
-atccaaaggcacaaagcagaaaataataaaaataaaagcagctatcaatg
-aaattgacaacagaaacaataccgaatatcaatgaaacagaaagctcatt
-tttgataatactaataaaatagacaagcctttagcaagtctgacaaacac
-gaacagaaaacacgaaacttaggaatatcaggaaggaaacaggtggtatc
-accacaggccttgcagacatcaggtgataacaaagggataccacgaacaa
-ctctatacattaaaacttgacaaaatggatgaaatggaccaattcctcaa
-aaagtacaaactgttttaactggcccaatatgaaatagttcattgaatag
-cccataactattaagaaaactgaatttggctgggcgctgtggctcacgcc
-tataatcccagcactttgggaggctgaggtgggtgggtcacaaggtcagg
-agttcgagaccatcctggccaacatggtgaaaccccgtctctactaaata
-tacaaaaattagccgggcgtggtggcaggcgcgtgtaatctcagctactt
-aggaggctgaggcaggagaatcacttgaaaccggaaggcagaggttgcag
-tgagctgagatcacaccactgcactgctgcctgggcaacaagagcaaaac
-tccgtctccaaaaaaaaaaaccaaaacaaaacaaaacaaaaaactgaatt
-tgtaatttttaaaagctccaaaagaggtatctctaggcctgaacaatttt
-actggagaatttcaccaagcatttaaaaaataattaatactaattttaga
-caatctcttccagaaaattgtagaggataagacataaatcaactcatttt
-ctgaagccagtgatattgacatcaaagcaaaagaaagtagaaaaaaaaac
-taaaggcaaatattctaatatgaatatagatgcagaaatttttaacaaaa
-tacaatttttttaactaaaaactctttagagttcttaacaaaatttaatg
-atatgtaaaacaaaatatacaccatgaccaagtggaatttattccaggga
-tcaagattgattcaatattttaacatcaatgaatgcaacacaccatatta
-agaaactaaagggaaaaaatcacaatcatgtcaattgatgcagggaaaaa
-agcatctgacaaaatccaacacccacttatgataaaaactctcaagaaac
-taggaatggaagggagcttcctcaacttgataaaaagcatctataaaaaa
-acgaacaaacaaaaattctacaaatgatggtatacttaatggtgaaagtc
-aaaatgcttttctcctaagggtgggaacaaggccaggatatttgttctca
-ccagtcctattcaacagagtgctgaaactgctagccagtgcagaataaga
-caataggaaaaaaaaaaaaaggctacacaggtgggaagaaagataaaaat
-ggttgccatctgcagatgacaccattgtttacttagaaataccataggaa
-atctgcaaaaaaaaaaaaaaaaaccctaaaacatgtccttcatctaataa
-ttgtgtttctcagtatcacagaatacaaagtcaacatgaaaaaaagcaat
-tgtatttctatatactagcaatgccaatgtggaaagtgaaattttagaaa
-gtacaatgttggtcaggcgtggtggctcatgcctgtaatcccagcacttt
-gggaggttgaggtgggcagatcacttgaggccaggagtttgagaccagcc
-tgaccaacatgatgaaacctcatctctactaaaaatacaaaaaatttagc
-caagcatggtggcacatgcctgtaattccagccacttgggagcccgaggc
-atgagaatcccttgaacccaggaggtggaggttgcagtgagctgagatct
-tgctactgcactcgtctgggtgacagagtgagactttgcctcaaaaaaaa
-aattatgattattcaaaaagtaaaatatttaggtatagatgtaataaaac
-atgtacatgacttgtacactgaaatctacaaaatactaatgaaaatcaaa
-gaagatccaaattaatagaaagacgtaccatttttgttgagtgaagattc
-aacattgtaaagacattaattccatctctaattgatctactagttcaatc
-caattcctatcaaaatcccagcaagatatttttgtagatatatacaagat
-tactgtgaaattcatatagaaagggaaaggaactagaaaatagaacattt
-ggctgggcgcggtggctcatgcctgctatcccagcactttgggaggccga
-gatgggcagatcacgaggtcaggagatcaagaccatcctggctaacactg
-tgaaaccctctctctactaaaaatacgaaaattagccgggcatggtggcg
-ggcacctgtagtcccagctactcaggaggctgaggcaggagaatcgattc
-ttgaacccgggaggcagagcttgcagtgagccgagatcgcacactgcact
-ccactccagcctgggcaacagagcaagactcggtctcaaaaaataaaaat
-aaaaaataaaaaaaaaaaaaacacttctggaaaagaagaataaagtatat
-gaatcactttacctggtttcaatactcatgatatagctactgtaattaag
-actgtggtattggcagaaggataaaaacagattaatggaacagaatagag
-tacctagaagtagcttcatacaaatatggccaattaatattttataaagg
-tgaaattgtactggaacaattggaaatccatacacaaaagaaaaaaaaaa
-actcaacctgaacctcacagcttacataaaaattaactcaaaatggatta
-tagatttaaatgttaaatgtagagtcatgaaacttttagaatattacatg
-ggaggaaatctttgggacatagggcatggctaagtgttcttataaatgac
-accaaacacacatgattcaaagaaaaatgatacatcggttttcatcacaa
-ttaaaaacttttgctctgcaaaagaTTATGCTCTGTCCGAATTCCCAGCA
-CTGGTGCAGATGGACAGTAGTTTCCCTCTAGAAAGACTTTCTACCTTAGT
-AGATTACAAACTTATTTCTTATAAGAAGTTGGATTTGGAGCACCTACTTC
-TATTTCTCATTGTTTCTAATTGCAGGCTCCTATTTGGAAATCAATTGTTT
-TTGTGTTTTGCACTTTGCTCCAAATTTTGCCTACATTGGGCCTGAATCTT
-GGCATCCGCTGGAACAAGTCAAGAGCAAGGCAACCTAAGGAAGTAAAtgt
-gtgtgagtgaggggcttgtgtgataggtgtgtgaatgtgtatatgttgta
-tgtgtacctgtgtttttatatgcatgtatgtgcacgtatacatgtgaatg
-tgtggtgttcacatgtatgtgtgttgtgtgctcatgcacatgtgtgtatg
-tttatgtatgttgtgtgtggtgcagcatgcatgtgtgtgtggtgtgatgt
-gtatgtgtgcgtgtatgttgtatgtgcatatatgtgtgtAGGGAGGTGGT
-GATGGTTGCAACTTGGCATGATTTTGCTCCTGGCAGTCCTGGTGCAGGCT
-GCTTGGAAATTTTTTCTTGGGAAATTTGAACTTCAGGAAAGCATTTTATA
-TTCCAGAACACATGCCCCCACATGAAAACGCGAAAGGTGTCAGAGGTAGC
-GTTTCTACCTGTGGGCCTGCGGAGAGCTACGTGGATCTTCCCCTCCCAAC
-AGTCGAGAAGACTCGAGGCCGCCTCTGAGCACCTCCCCTGGCTCAGCGGA
-GTACAGTGCACCGTCCCCACAGCTCCTTCCTGAGCTTTCGGTCCACTTTA
-AATCAATAGCAGAAGAATGTATTTGATTATCAGGCTGATTTTACTCTCTG
-TGCTCTAATGAAGAGCCCATATTATGCAAATGCATATGATGATGACAGCA
-GGTTTTTAAACTGCAAATTCATTCTCCAAGCTCAAAATAAACTTTTGTTG
-TGGGGTGGGGGACGGTGTACTATAACACAAGGAAGATGGGAAAACTCATT
-TCAGAAAGAATGCATCCCAGGAAAAAAAATAATTAAGCTCCTTAGAATTA
-ATTTGAAGGCTTTCGTATTTATCTTTTGTGACTCATTGTTGAAAGTTAGA
-AGAACCAATCAACCCTATTCCTTCATTCTGTCAAATTAAAGAAAAAGAAA
-CTGTAGTCCCAATGGGAATGAAAAATATCATTTGTATTCAGGGCTCTTTA
-GAGACAGTTGCATTTGGGTGCGTGGGAAGACCTGGCCTCCTGCTCTGAGC
-CTTTCTTGTCCACCAGCCCGGCTGGAAACTGCAGGGATGGCAGCGCCCCT
-CCTGCTGGTGAGCAGCTCCTGAGGGGGCTTCACCTGGGTAGAAAAGTGAG
-GAGGGACCCCCAGCCCTTCTACCCATCCATGAGGAAGGGGAAAGGCAAAA
-TCAAGTTTGTTTATTACTTTTGAGGCCAATTTTAAAATGCCAAGGGTCAT
-TTTTTCTCCCCTGTAAAGGATAAAGGACTAGGCAGAGCTTGTGGGTACAA
-ATGTCACAGCCAGCTGTCTTGCACTGGGGTGGGGGCTGGGACACAAGGCC
-AGGGGTGCGTGGATCCCTTGCAGCCATGTGCTGGGTCACACCTGAACCCT
-GCCCTACACGCACATCCCTTACCAGTGCCTTCCGCACCTATCACCATTTG
-ACCTAGTCTCTGCTGAATTTGGGAAAGGTCTCCCCTTCCCGGGAGAATTG
-ATTGTTGATTCTTTCAGGAGTGAGAGGTAAGACCTCAGGACTCCCTGAGA
-TGGAAACGAGGCTCTTCCTACAGGTCTGCGTCGAGTTCCCATGTGCCCAG
-AGTGGTTCTTCTCTTCCACAGACTCCAAACCACCACATGGCTCTTCAGGA
-CACACCTGTACCAGACATGAGCTCACCTGCCTGTTTCCTGGTACTCTTAT
-CTTGAGTTGGTGGTAATCCAACCCAGACTCACCCCAGCCTAAAAAAGAAA
-GAAAGGAATCTGGTGGTTTAGCTACTAAAAGACCCAGTAGTCACACTGGG
-CTTAGGAGCTTGCAGAACAGGGTGGAAAATCTGTCTCTCTCCATTTCTCA
-TTTCTCCAGAAAGGATGGCTGGTTTAAGGGGGCTTGGGGGAGGAAATTCC
-TTCCCTCTGTGGTCTCCAACCAAGTCAGAGTGAGACTACCACTGCCTTGT
-GTGAGTCCAATACCCATTACTGTTGGCGTGACCACTGTCTTTGTCTATCA
-TCAAATTGCTATTTGTAACTCATTGTGATGCTTTGTACAGACTGTAACAA
-ACATACTATTTTTGTAGGTGTGCATCTACCATCACCTGGGCATAATTCTG
-CCTCCAGCTGTGTATTTGATttagtctgttctcatgctgccgataaagac
-atactcgagactgggtaatttataaaggaaagaggtttgattgactcaca
-gttccacctgcctagggaggcctcacaatcctggcagaaggtgagaggca
-tgtcttacagggcagcaggcaagagagaatgagagacaagtgaaaggaga
-aacccctcataaaaccatcagatttcgtgagacttattcactaccacaag
-aacagtatgggggaaaccaatcccatgattcaattatctcccactgggtc
-cctcccacaacatgtgggaattatgggagctacaattcaaggtgagattt
-aggtggggacacagccaaaccctatcaGTATTGTTTCTAGCTCATGGTGC
-TGTGTGGAGCCTTCCAGCGCATGAATATATTGCTTTGGTTCACTTTTGGT
-TGGTGGTGTTTTAGAAGGATAATACCAGGCAtattaatccattttcatgt
-tgctgagaaagacatacctgagactgggaagaaaaggaggtttaactgga
-cttacagttccacatggctggggaggcctcagaatcatggcaggaggcaa
-aaggcacttcttacatggcagcggcaagagaaaataaggaagaaacaaaa
-gtggaaacccctagtaaaaccatcagatctcatgaaacgtattcagtatc
-atgagactagcatgggaatgactggtccccatgatttaatcaccaccatc
-cccaggtccctcccacaacatgagggaattatgggagatacaattcaagt
-tgagatttgggtggggacacagccaaacAAACCACACCACCGAGATAATA
-TATTCTCTCTTCTTCTGTCTTTCTCTTGAAGCGTTGACAAAAGAGTAGTG
-TCATGGCTGGGCTAGATCTGAAATGTTCAAATAGAACTGTTTCCTTCAAA
-GTTGTAGAGCTCCTCTAGCATCCagaagttggaagtcagtttgacttttt
-gtccgtgtttggcaggctgcttcttccgtcttcagatttggaaggttgtt
-actccagccacctcactgtgtcatgtgtacctaggtgctgttctttcatc
-aaatttgcctgataatgagtgcttttgatatgcagatttggatatttttt
-gagctccagaacgtgttctatttatgtctttgaagattgcttatttcctg
-tGAAAACCAAGAGTTCCTTCCCATTTGCAACCAAAGTGAAATCAGTATTT
-TCCAGCACAGTCATTTCCCCCTCTGCAGGCCTGGCCAGGATGCTGTCCCA
-GCCCTCCCTGCCTCCACGGCCCTGATATCCCCTGCCTGACTAGGTCggcc
-tcctccctgctcctgaagactggctctggagaggctgtggcccctgccgt
-cctctctgccatggacattctcccctcagtcctctgcaaggctgcctctc
-actcaaatgccaagacatttccagaacatcctagctgaaggggcacttgc
-ccatcacaagccccagccacggggtctcactcttcttatggcattagtca
-gtcactgagatgatcttatttttctcatatttttagcaccctccacctga
-gggcaggggctctgtccccttgctctctgctctagccacagtgcctcaaa
-cacagcctggtatgcagcaggcacccTTGGGTAGGACACCTTTGGGTGGG
-GCTGCCTGACCCAACCCCACAGCAGAACCACCACTTCCCCACATGCTGGG
-TGTCTATGGTCTCACAAGCCCTCCCATGTACCTGGTGCAATTCTAGATTC
-TTCTGAAACGAGCACCCGTGTTACTGCTGGGCTCTCCCAAAGGTTTGAAT
-CTGCTCATTGCTACCATCTTATAACTCTGATGCTGCTGGGTTTGTTGAAA
-ATACCACTTCCTCTTCTCAGCTCCCTGGGTTTTCTTCTCGCCTTTCCACC
-TGCTCCTTCTCTGTGTTCTCATGAGTAAGAGCCCTCCAGCCAGCAGCAGC
-TCCCTGGCCTCTGCTTGATTCTTGTACTCAGTCCTTTGAAAAATAAGGTC
-TCCTCCCACCTGTTGCAGGAAACATTATTTCGGGGGTACATCAGTGGTTG
-GCTGGCCTTCAGGTTGCTCTGATTTGAACAATCCTTGCTGCTTTTCTGCG
-TGCCCTGCTAGCAGAGCCCTAACTCTCACCTGCCGTTAATTATGCCTTAT
-CCCATTGTGCATCCTTTCCCTGCTGCCCCGCCCACCACCTGTGAAACGTC
-AGCTCCCTGAGGGCCTTTGTCCACTGCCAGAGCTCCCATGGAGCATGCGC
-CCAGCAAGCGCACGGAGAATGTTTGTGAATGAAGACATGAATGGACAAGT
-GAATGAGTGCATGGGCGGCAAGTAGCTCTCATTGAGTCCTACAAGATGTG
-GCCCCAAGGCCCTGTGACTTCTATACCCACCACATGCAAGCTCTGTCCCC
-CAGCAGCCACAGTGTCCCCTCCAGGCAGCCTCTAATaatgaatgaatgac
-tacatgaatgaatgaatgGTTATCAATTACTAATTAGAATTAGCATCTTC
-TTTGACTCTTCGCTTACTGCTGTGATTCAGTCCGGCCTTCAAGTACCCTC
-AGCTTGTTGCAGGTTCAGTGATTGAAGTGGACAGACCCTCTAGAGGCCCT
-GTGATCCTCACCCCCCAGAGTGACATAtccccttgagtgtgggtgggcct
-ctgactttgccatagattatgcaaaggtgatgagatgtcactctcatgat
-caggtctcctaagattgagactctgtccttgctgagacagtccctcttca
-cttgctcagaagaagcaagctgccctgttgtagtgaacggccctcagggg
-agggcggggcaggatagtaaggacctaaggcctgggctgacggcctacaa
-ggggcagaaagctgccaaaaaccacatgagcttggactctcccagccgag
-cctcagatgagaccccagccctggttgacgctggattctagcttcacaga
-ggaccttgctgggccttgcctgactcaacccacaggaacacaacgtgtgc
-tgttggaagaggacatgtctctgcaacactgctgtgcagccctagataac
-taacacaGTGACCTGGTCACACAAAGCAATGGTCAGGATCCTGGGATTGG
-GGATTCCCAGCTCCAACATATCCCTTTCTGTTAACAGCACCTGCTCTGCC
-TGGGTCAGCCCCACTGGGGTGAGTCTCCTTCCAGCTCAGGGATAGCCCTT
-TCTCTCTGGTCAGCAGCCACTTTACACATGGCCCCTGCCGAGGCCCCAAC
-CATCTCTGCAGCTGCTGTGGCTGCTGCGTCTGTCTGTGGAGCTCATGTAA
-ACCCTGGGCAGAAGCCTTGGGCTATGAGAAGGAAGATGCCTTCTGCTTTC
-TGTGCAAAGGTGCTGCTGCCTGAGGCTCCTTGTCTGAACCCCAAAGGCTG
-TCACCTTCCTAACCCCCGATTTAACCCCAAGAAAAGCTGTCCTCTGAGTC
-CCATGGCCCTCCCTCCAAAGCTTCACTTCTCTCCAGGCCTACAGTGTCTG
-GGGCACAGGCTTTCTTCTACATATTAATGCTTAAAGGCATGATTTGCTAG
-TCATTTTTTTACAAAATTTTGCAAAAAATAATTCCTCAAATATTCAGCCA
-TTTAGATTACACAGGTTTTTGCATACTTATATATGTTCTGGGTCACTTTT
-CTTTTTACAGTTGGACACAGGAGGAAAGAATCAAATGTATATCTTCATGC
-ATTTTCCCAGAACCATAGAGAATCCATATGGTGTGTAGTCTGCTAACAGT
-GAGATAAACCCTCTGTTATTAGTCTCTGAAATTAAATACGTAAAGAACCA
-GGCTCAGAATTACCACCACCAAGCACGGGTGGAACCAAGTACTTTGTTAT
-TAATCCCATCTGTATTTGCATATTCCAGTTGGGAAGACAGCTGTGTACAT
-TGTTATCATTGTCATCATCTCTGTCATTATTTTGAACGACATTCATTGAT
-CATTTCCTATATGAGAGCGCCTCTGCAAGGATAGATAGATGGGAGGATTG
-ACTTCTCTTTTAAATCCCCATAACAATTTGGCACAATTCAGTAAATACAC
-ACTTTATAGACTTCCTGAAACTGCCTGGCTGGGTGCTGGCCCTCTGTGGA
-TTTATCGCTCACCCCTGACCTGATCGTGTATAATGGGAAACTGCGTCGGC
-CTTTGGCTGGCTCAGAACAAAGGACCCACCTGTACCACAGCTGAGCTGAG
-AGAATGGAGGCATTTGTCCTTAACTCAGAACAGTCCCCAGACTTATTGAT
-CTCAGAACCAAATGTCAAATACCCCACTTTCCGAAATAATTGTCTCTCTT
-GAAAGTTCTGTGCAAATTGAATTTTTATAAATCAAATTGTATTGTAAAGC
-CAGTAAAGAGAAGTGCTGCTTATGGGAAGCTTGTTTGCCTTACTTTATAA
-ATGGAAGCAAACCGTGCTATGAATAAGAGCTGTTAGTTAACTTTGCTTAT
-AAAGCCTTTTGAAAATGTTCACtttttttttttataatatttgttttttt
-GAAAGGGGGGTTGCCAGTTCTGCGACTGTATGTTTGGAACATCAATGAAG
-CGGGGGCCTTGAGAGTATCCGGAGTCGAAAAGGATTTCCCATTCCAGGGA
-AGGGTCTGGAATAGTAAAGAAGGCATGGCTTCTAGAGTCCTCTGCTATCC
-CCTCATGACACATTGATTGAGCACAGTCGGTGCCAGCCACCTTTCCAGTC
-TTGGTTCACTCCTGAGTCcagtgggtctccagtgtgagtgtgcaccacag
-tcacccgggggtctatcaaaacacaggccttggtgctcccacccccagag
-tttctgactcggtaggtcaggatatagcttgagaatgtgcatttctagtg
-agtcctcaggtggtgctgaggctgctggttctgacgcactttgagaatca
-ctgATCGGTGAATACACGAAAGTCCTTCCCGTTCTGGGAGTTGATAGTCT
-CTACAGAACCGTGCCTTCCTTTTCTGGCCCTGTGAGTCTTAGCTGGCAAT
-GAACACGGAAGCTGGCTTGTCTATGACGTCCCTTCGCGGTGCTGTAGGGA
-TTTAGTATTCAGCATGTGGAAGGTTCTCAGTAAGACTTCTTCTTATCTTT
-GAGTTTGGAAACATGATTGACAGAAATTCAGTTTGACTTGTTGGGGTATG
-AATCTGTAGATGTGGGTCTGAGTTCTGATTCGGTGAGATCCGTCTGTATA
-ACTCAGTCATCCTTTCACTGCTTGGACATTTATTTCCTTTTCTATGGAAT
-GCATTCACTTCttcattcatttcaacagataatcatagagcaccaactct
-atctgcaccatggattttgcaagctcctgggaatgcagaagagaacatta
-cagatggctttgctggctttgtgggattcaAAAATAGCCATCAAAACAAG
-TCTGAAGCAACTCACACAACTAATTTTAATGGTGGCCACTGCCAGGGTAA
-CCAGTTCATTGAAGAAATGACTCTCGGCAGGGATCAGAACACAACTTACA
-TTCTGTATCGCTGTGCCTTCAattattattattattattatttattatta
-Gtttcttttgagacagagtcttgctctgtcgcccaggctggagtgcagtg
-gcacgatctcggctcactgccagctccgcctcccaggttcacgccattct
-cctgcctcagcctcctgagtagctgggactgcaggtgcccgccaccatgc
-ccagctaatttttttgtatttttagtagagacagggtttcaccatgttag
-ccaggatggtctcgatctcctgacctcgtgatccacccgtctcggcctcc
-caaagtgctgggattacaggcgtgagccaccgcgcccagccCTGCGCCTT
-CAAATTTACCAGTGTTGGGGGGAGATGCTTTCATCTCTCCCTTCCCCAGT
-AAAACTCAGCAGGTCCCAGAACTTTTCTGCTCAATAGAGACAATCCTACA
-CTCCTGTAGGTTGCAAAGCACACTCTCACTTTAGGAATTAAAATGGCTAG
-TCTACCTATTATTTGCACTTTATTCAAAGGCAACATTTCCACTCTTTTGC
-ACCTTCCCTGCTACCCCCTCAGGCAGCTGATGGTTGGGCCACTGCACCTG
-GGAAAAAGAGgcattaatcaggctccagtccaaagcaaaatccattccag
-gtgtttcaagcagaggatgattcattcaggggaatggtcacaggtgTaga
-gactatgttgatttgcatcaatgacaatatcagaactggaagagcagctg
-tgattgtgttcaccttctgttcaattttaagaaaattgggccatttttct
-ccaagattcatttatcttctgcacaggacaagctgtcaagttatatgggg
-acatggtaccacccgcacacgtacattggcagacttttgagagtgaccct
-tctctgcagttccctgggactgaggaattccttttgttcactctcatagt
-acagagtcccagggcctaccatttagtttttcccaccacaaaatcttgca
-cactatagtccagggagtcatgtgactttctgccagttgtcaaggctgtc
-tattctattacacactgagaaactgggaaaaaaaacCTGTCAAGCCATTA
-TCTGGATTGCCTGGGCCCATTCATTATTGACCACCATTCctgggggattt
-cagtggcatttgagatccaaggaattggcatcaattcggatgcagggtag
-agtgaagagagaagacgcaggtcagttctctttgtcagagccgcatctca
-ctccagtcaatagctgaaggaccctttgggaaaaggtgagaggaatatca
-acagtatccccctgtaaatgtatttcggaatccttctgcacagagactca
-aattccccttcaaccaaccagctctgggtctacagagagggttcgatgtg
-gaagctgagagtgcatgactcaccagcatgtcctcgacagttgggtttct
-acccaccagaacctggagatgtcctgtatttcctatgtcaaatagcatta
-gtgaactttccctgtattgcattcgcatcaatgccatgaccagttgtcag
-tgctgaagatgcctgACATGGCTCCATCTCTCACTCAGATGTTGCCTTCT
-GGTCTTTCCTTCTTTAGGACCCTATTATCCCAAGCTTaccaaagagcttt
-ccaagaacactactgctcctctggcaaatgcatctcttggtagtgtcttc
-tgggctctcccagggagggtcacggggaaagggatacacaagacatacac
-cagaagtctactccaacgttcctgggtttctcagccttggtattccattt
-tccgcattatgccggggaagatttggcatctcaaatggatgtaggtcatc
-ggtgagtccaagtttcagtaaatcaatcaagaaaactgttagaaactctt
-tcagcttcttgagctaacacattaaatccaggctctctggtgagtacacc
-gctaccagtaaatttggtccgatctcaatttatcttccatcttctttggt
-ctgacaccctttaaattcatttctacacatattcttcacatttctgctgg
-tgaaaattagcaatatctcgtgattcttttatactataaactacctcctc
-ccagggcagatgttacagttgccctcccagtgatgtataggaagttccaa
-ctctggttataggtaaaaggggtgaagagggtgggtttggggagaatagc
-catcactttgcaagtcaccttcttcaggtgagcatattacaagatctctg
-cacaaggctgagttatctagactcctcagagatcgagaccaggcatgctg
-gcgagggaccctcagagagtttcaggtgttcaagattcccaactttattt
-aagtccatccagatgtatccattggaagtctcaaaattccatttttccca
-gtcgatcagctctctaactttcatgtaacagagtcagcaggtgtgtgaat
-tcaacttatgttataattctgcaacatgtgcacatacattgtgtttctga
-tttccaacacgtttctcactgcagctacaaaaacagagatattattttag
-ggctgctctgaaatcactttggttctctcaccatgacttaagctgagcct
-ttctagccccaggtttgtcattttctctataagctctccagtATAATAAA
-AACTATACCCCCACAATCCCTGTAGTCATATGGTAAAAGTATCATATGAC
-TGTCACTCCACAATCCCCGCAATCCCTGTAGTCATATGGTAAAAGTACCA
-CATGACTCTCACCTCACAATCCCGCAAACCCTTGTAGTCATATGGTAAAA
-GTACCACATGACTCTCACCTCACAATCCCCAAAACCCTTGTAGTCATATG
-GTAAAAGTATCATAACGGTCAAGTGAAGCAGCCACCCTCCAGCATGGGAT
-CCCACAGACACTGCATCATGATGAACAGCAGGTGAATGCTTCAATTGTGA
-TGCCATGACACGCCATGAATTTAATGGTGTCTGATTGCCTAACGCTTCTG
-AGTTCAGCCTTGCATTTAAGACCTAGGATATGACCAAACTGATTCCAGAA
-TCCCATCTTTGAGGGTCTATTTCCTGGGCTGGAACTACCTCTGGTACTGA
-ATGACATAATGgccaggagtcaatcacggaaacaacctccacaggcattc
-aacagatggaatttaatatagggtatttttttttacacaagtattgaaag
-ggtgaagaccaagaaaggaaaatcatagcaagccataagtaataactgaa
-ggaaacaaaataccacccctagagctgggaaaacaGCAGACAAGAAGCTA
-GGGtgttttagtcagggttctctagagggacaaaactaataggagatata
-tatagatatataggtatatagagatatataCacacacacatatatatgat
-atatgatatatatatcctgtaatatatataataggatatatatatatatC
-CTATTCTCCCCTTTatatatatatatataaacgggagtttattaagtatt
-aactcacatgatcacaaggtcccacaataagccatctgcaggctgaggag
-caaggaagccagcctgagtccccaaactgaagaacctggagtccgatgtc
-caacggcagggagggtccagcacgggagaaagatgcaggctgggagccta
-ggccaatctaacctcttcatgtttttctgcctgctttatcctggccacag
-tggcagctgattagatggtgcccacccagattaagtgtgggtctgccttt
-cccagcccactgaatcaaatgttaatctcctttggcaacaccctcacaga
-cacacccagggtcaatactttgcatccttcaatccaatcacattgacact
-cagtgttaaccatcacaTGGGGTTACCAGATCCTATGGACACTGAAGAGG
-AGCTGCATGGAGCTGTGGACGAACGTTCTGAGGGTGAAGTATGTTCCAGC
-TGTTACTACTACCCCTGAGAGGGCACCACCTCTGCTCCCTTTGCCTGCCC
-CTTCTCCCCCACCCAAGACTAGAAAGCAGCATTTACCAACCTGGCTCCTG
-GAACGTTTGTATGCGTAGATCTTGTTTGAGCACTAGCAAGAAGAGGAGAA
-Aggctgggaaaggcacacccactcttaatctggttaggcaccatctaaac
-agctgccagtgtggccaggataaagcaggcagaaaaacatgaagagGTTA
-GGTATGTGTTTAGAACTGGTAGCAACCAGAGTGGGTTGATTTGCCATGGA
-GGTGAAATGTATCCTCCAAAGAGCAGAAAGACAAGAGCTCAGAGAATCAG
-GGCAATTTAGGAGTTGGAAGACAAGGATGAGAGAGAAAGAGGGTTACAGC
-CCCTTGTGAAAAGAATATTGAGAACAGCAGAAGTGAAGAAAGCATTTGGA
-AGGCATTTGGCAGGGAAATAAGAATATACTTCCCTCTCTCTGATGCTTTT
-TGAGAGAAATAACAGCAGGGATTTGAACTGCATTAAGATTCGGGCACACG
-GCAGTTTCAGGGGTTTTCAGTCTGCCTGGATGTCTATTACTGGGACTAGG
-CTAAATAACCTGGAGGAAATTCTCCTAACTACACTACTGACATTCTAGGT
-AGGAGCCAGAAGCAGTTGCTCTTTTTTTTTTTTTTTTTTTCCCTTTTGGA
-CCTCAGGTGCAAAAGGGGCTCCTCACATCCTTGTTTCCTATCAAGCTCAT
-TACTGTCAGCAGCTAAGACGGGACTCCCACTCCTCTTTCGGCAGTTGTTC
-TCCACAACCAAGCATCCCAGCCACCTTTGCCTCTCGCCCTGACATCTGCA
-CTGGTGTGTGTGATATATGCGATTAGATAGATGTGTAACTTAGAGAAATA
-GGCAGTGTTGTGTATGCATGTACATAAATAAATAGATTAAAATTTATGTA
-AAATAGTGTGCTATAAATCTCATTTGGTTTCTTACATTTTACACCAAAGC
-ACCATATATTCAAGATTTTCTTCTGTTGCTCTGTAGCTCATAATCACGGC
-TTCTGGCTCCTGCGTAGAATATCAGGAGTGCAGTTAGGAGAATTTTCTCC
-AGTGTTACTTAGCCGAGTCCCGGTAATAGTCATCCAGGCAATACTGCCAT
-GTGCTAAATCTGTTTGTGGATTTCTCTAGGGTGTGCCTCTGGGAGAGTAA
-TACAACACGGTATTTCTTGCTTGTTATTAAattgagatataatgtacatg
-ccataaaatttgcccttataaagtctacaattcagtggattttagtattt
-tcacaaatatattcacattaccgcaatctaattccagaagatttttgtta
-ccacattaaaaaaattcctgttcccattagcagtcacttcccaaccctcc
-accaaccacgggcaactgctgccctactttctgtgtggatttgtctatAT
-TTCTTTCCTTTTAAAAAAATGTTGTTTATTAAGTTATTGACTCTCTGATG
-TAGAAAGTTAAATTAATTATACATGTCAGACTATAAAGCATGAGCCTATT
-TTTTTTTTAAATGACCTAATTCCTCTCTGATCCCCACTTCCTCTCTCCCC
-TTCATTGGCACCTGCTTTGGAGTTTCGGGTTAACTGTGATGTTAACTATG
-TTAACTAATTATACTTAGGACATATAGAGTATCCTTTTGTGTGCATTTTT
-TTCACGTACACAGAGATATTGTGCTAGAGTTTCTTACTTTCTCACTCAAC
-TCTACCATTTGGGATCCAGACAGAGGGTACAGTGCAGCGGCAACAGCAGC
-CTTTGCGGaaatacagtttcccatgaaaggggaccggagcccactggaga
-aactggtgattccacgatagggcaaaaaaaaaagtccaaaaagagcctgg
-aatatctcttcatacttcccagcaggaaagctatcagaggccagcaggga
-cacacgaaatatcctcagaaaacaaattcgagatcaataaagatataaac
-tgccatgcaccagaaaacatcccatagatttaaatcttaagtacatacta
-atcctggaaaaaaataactaattgatcagtactggaggatagcagggaat
-agacgcatttaatttggaaagtggaagcattaggaaaacaccaagctttg
-ttctgctttacctgcttgaatttatctgaacataactaaaccatagatga
-gggaaagtttctgtctacaaaatgatttcagctaatgaatgaaaaagaaa
-tGATAAAGTTTGACTGTCTTTTGAAGCccctcaaattggggcataggctg
-ggagggttcttggctttacccaggaaagaattcaagggtgagccagtggt
-attaaacagcagcttttattgaggcagcagcagaggttctgctccttgca
-gagcagggctcccccatgggcagtgcgctcagagcaggagctcagaggca
-gctctgcactcatatttatatccacttttaattatatgcaaattaagagg
-cagtttatgcagaaatttctaggagaaaggtggtaacatctgggttgttg
-gggcgttatcatgaaagggggtggcaacttccgggtgttgccatggcaat
-ggtaaactggcatggcgttttatggggaggtgcttctgccccgacctgtt
-ttagctagtcctcagtttggtccagtgtccaagcctcgcctctggaatct
-agtctgcctccgacttcaTTATAATTTTTAGActttaatgaattagtgga
-tataggcaatgatcataagtagctgttcacataaaatgagaaacaaacag
-acatcgtgtagtttagagataaaaatatcatctctgaaatactttggcct
-aaataaaataaaacaaagcaaaagaacctaatctgttcaagtttctagac
-ctttcaatttccaggaaattcaggagacaagaacatcctaaattatttca
-tgcagacgtggctgcgagaaaccctatgggacaaacatcctggtttcttc
-aacaaatggaattcacagattaaaaagaaagatgagagggagaacccacg
-gaaaggtttagagacttaatatacagatagaccaatagagatacaccatg
-tatggCtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtATACTTTGT
-TTTATTTCATTTAGGCAAAAGTATTTCAGAGATGATATTTTTATCTCTAA
-GCTACATGATGCCTGGTTGTTTCCCATTTTATGTCAACAGCTACTTATAA
-TCGTTGCCTATATCcacacacacacacacacacacacacacacatatata
-tatacacacacacacacatgcatacatacaaatatcatatacaaacacat
-acaTTGCTGAAAGTCATTTAAGAACATTCAGggaaatgtgaacactagca
-gtatatctgatggaagtaaaaatcgaatgttgaaaattgtggagtgggct
-tataagattgtgattgttttcacaatgggaaaataatttatatttaggaa
-ttatatttttaaggataaaatattctctctggaatttgcttcaaaagtaa
-aatgaagcaggatgatggtgagtgggtggaggcccagaggaaacacagtt
-gactgtgagttaattattacaaagctgagggatgaccacagggggtcatg
-atgctgtcctttttattttatgtttgaaattttCTATAGTAAAATAAAAG
-CAAAaagagcacaactctggagaaaaccctggtctccttctggtccagcc
-actgtgtgatgtgggcccctacttaaattcccagaccttcagttccttca
-tctgtgaaggagagatatgattatcaatctcttagggtagtttgagaata
-tgtaatcaacaggtataaagcacatagagcagtgtctgCCCATTACTCTG
-TAGATCTCCAGTTTATTGCTTCTAACTTCTGCAGAATATTTCATAGAATG
-TCTCCAGTGGATTCTATTTGTCTATGCCTCCACTGCCACACTGCAACCAT
-CACCAGTGAATATTTTCACACTTGTCCTCATTTATGAGAGAATTCCTGAA
-GGATAAACTTTGAGGAATGAGGTTGCTGGCTAATGGTCGCCACCATGTCT
-GCATCCCTGCAGAAAATCCCACCTCCCTTCATTCTAGCTCTTGGATAAAA
-TTATCTTCCTTTCTATATTTTTCCATTATAAGGTCTTAATTGGAGGTAAT
-GTCagtatctctttacctctcacttagccattcagttttccttttccagg
-aattttctaccatattctttgccaaaattgccgttagttttcttggcttt
-ttttcttgtggatttgcagaagtatctggtacgttcaggatgatatttca
-tttacagttttagacatcatgaataacttccttcagtttttcatttgtct
-acattatttgtcaagagcgttttccttgaaagaaaatctaattttgatgt
-aacctcaatctatcacttttccccttgagacttatgcttctcaagtcttc
-gttaagaatctgtccacatcaaaaaattacaaatacagctccattatatc
-attttattagttctatattttatatgtcgtgtttttaaaatctacctgga
-attcatttgtaaatataaggtagaagtacaactgtgtttttctccatttt
-atgagtcattgtcttttaaaacacaatctgtaaaacaacccatccttcgt
-cattgggttgcaCACATGGATACATGAATACATGTGTGAAGATTGCATAG
-TCCATGTGAAAGGATCTTCCAGGCATACAAAGTCACAAAATGTATGTTTG
-TATCATATTTTGCCCTGCTGCAGACACTGACAGGTAACTttctgagttcc
-attgtcctccttgcctgtttgcatgtctgcaccatgatcaccctgctgct
-ggtgtttttacattggctttgaaaactgtcattatacctagtaagaaata
-atcctgcctttgtttcctttcaaatgctacttagctgtttgtagactttc
-attctctcatacaaattgagaaaataagtatattgactttataaacaaaa
-ttataattgttattgggactgctttgaatttttagtgtaagatagaaaaa
-aattaagctttatggtggtaagttaaattactctgtccgtgaagaaggtt
-ttttctattttttgaactcttattttatgttatttgaatttaattttctt
-cttataaaacttttgtgcatttcttttagaataatttcagttcttcataa
-taataattggcactatgaaagaaatcaattttttctattatatcattagg
-taattacttctgatgtagaagaatgttattcacatgagtaaattgatctg
-cagacttgttgaattctcttcataatttgaaGTCATACACATGCTCACAC
-ATGTACACACGCTCACGCATGTTCATTTTTATTCTGTGGTGTTTACAGTA
-CATAATCATATCATTTAATAATTTATGTTtttggtatgagtttataacat
-aaatcagggttgaactttatcaaattgttttcacgtacttattgatagaa
-caacgtgctttttgttcctctattagttaattagtgtggcgtatcacctt
-agtacatttttCTCTGACAAAGATAAACTATATTCATTATGTTGTGTTAA
-TTTCGATATACTTTTAGAGTTGGCTAACTAATAtattatatataatgtgt
-ctaaaatatattattaagcttcattaatctacttgtgaaaatatcctgtt
-ttattttttattttttgattctttatgtcagtttctaaaagagtggtgtt
-aaaacattcaagtacaattattgatcaattttcttctctgaatttcttca
-ttgtttttgttttcatatattttaaaactatattattaaaatcatatatg
-ttcatatttattttgaaaccttaattgttatcattaccgatatatagtat
-ttctttccttgatcttaaatgtactttacctcttattaCACGGGCTGTTT
-CTAAGTTCAAAAATGtctgtattatttggttttaagtgtatttctggtag
-acaacatattattagataatgtttattcactgcattctgatagtctgttt
-tattacagaaattttagtacatttacatttattgtagtaacAGTTTATTT
-CCACTTATTTTAGCaataatatttgaaatttttaaaatatatcatatttt
-taatCAGATTTTTCTATTTTCACTttcttttttattgttgagtagaaatt
-tatattgtgtatataccaatagctgtttatccattcatcagaggctgaac
-atttgtgttgtttccagtttatagctcttaccaataaagctactacaaca
-ttcacttgccaatctttgtgcagacataggttggtttgtttgtttcctct
-tgagtaaatacctgcagtgggattgatgccattctttttcaaagttattg
-tactatttgcattttcaccatcaatgtatgaaagtatcagttgcttcaga
-tttttgccagcttttttctgttttattaactttttcccttttttaaggtt
-ttcagtttcatgctattgtgagtttaatgtgcattttcttaatgactaat
-gatattgaccatcttttcaaatgtatacttgccatacttatttcttctct
-ggtaaaacatctgtccatacttttggatgtttctaaattagttttctcat
-tttttatttttgagtattaacatgcttaatcagatatttgtttaataaac
-acatacttagtctatggcttgatttttttctcttaagagtgtttgagagg
-aaaacacttttaattatgaagtctaaatttttaacattttattttatgtt
-ttatgcctttgtgtcttatgtaaaaaCAAGACAAAAGAAAACCAAAAAAA
-TCCATGACTTATCTAAATAAAAAATAATGTTCTCTATGTTTTTCCCTAGA
-AATTTTCTTCTAAGAGTTTTAATttattcttttttagttttgttttgggc
-attctttgtcattcgtagttctatcaattttagttatctttttgccttct
-aaaataattgcttttgattgagattttgtttcctctatagatcaatttgt
-ggataatttacatcttCgttttaaagtgtaggttttattattattcatgt
-atagtgaggccaacagatcaggagatcattgccattgaaaaaactgtctg
-ttactcacagttcccaagaggaggggacatgccacaccattcagggccac
-aggggaaaataccaggagcagtcaggaggcagaaggagctggagaaaagc
-aggagcaggagcttctattgtggtttccaggtgacaggcaaagccaagcc
-aagtaagcaggcttaggattggctagtttgaataacttcagcaggttttg
-gggtataggttgtctcttactgggccctgggatgactagagcagaggaat
-attgtttcctggaattaaagaaccagatagagaaagtggtcctgagtatg
-ggccctggatttgttagttttcccatgaaagctttacttctgggtgaatt
-gtttgctatctaattactggctggccctgggaatctctccccctttaggg
-agtcctcataagctggagcactaggaatatagaaaataagaaaATGTggc
-caggcacagtggctcatgcctgtaatcccagaactttgggaggccgaggc
-aggcggatcacaagttctggagatcaagaacatcttggccaacatggtga
-aaccccgtctctactaaaaataaaaaaattagccaggtgtggtggcccat
-gcctgtagtcccagctactctggaggctgaggcaagagaatcgctagaac
-ccgggaggcagaggttgtagtgagccgagatcgcgccactgcactccagc
-ctgctgacaagagcaaaactctgtctcaaaaaaaaaaaaaaaaaagaaaa
-gaaaaaGAAAATAAGAAAATATTAATGCAATTAttaaaatattaaatttt
-cagttcatgaacatgagatttctttatctatttaggtctcctaaaatttc
-attgattagtgctttgttgcttatagcacacatcttgcacatattttatt
-agatttattcttaaatatttcatgttatttggaactaagatggtcatttt
-aaatcttcaatatggaatttttcgtggctagtatataaaaataaaataga
-ttttgtatacttaccttgtatcctgaaaacttgctaagtttattattagt
-tAGAGTAGCTTTTTTTTTTTTAATCTTATTCATGTTTTCCTTGACCTTTT
-GCACTCCTGGCTTGTATTTATATAGTTGTTTTACTATCTGATTAGCTTAT
-AGGTTATGCTTTTGTGTCTTATGTAaaaacaagacaaaacaaaacaaaaA
-AATCCATGCCTTATCTAAACTAAAACAAAAAAATGTTCTGTATGTTTTCC
-CCTAGAAATTTTCTTGGGGAATCGTAATAGaatattgattctattatctg
-tgttcttcctggttcttcttccattggcttatatttttctctatttgggt
-tgatattttctgcttccttgcatgactggtaatttttgttggattatgga
-cactgtgattttaaattgttgggtgctggatatttttgtgtttctgtaaa
-tattgttgtgctctgttctgagatgcattggatttccttgatataagtta
-gatttattttcttttttatgcttaattttaacctttattaggGTAtagat
-aaataaattatagtacaattctcctaataaatattgtttctatggaagtc
-acaacttcaaagactatctaacagattgggaatacactgattgtataatg
-ttatacgaaaaaaaaaaaccttaaggctatatgaccatatgtaaggtaac
-cccaatactgttcttaaattgatatcatatgtctatagataacaaagttg
-ataaaaatatcctgaaaattcaggtttgttgttcttgctaagtggtgaga
-ttataggtcattgaacattttttaacattcttttttTCACATCTTTCCTA
-AATGTATGGGTATTTTTGTTGTTGTTAGACACAAAGTTAATACTACTAAC
-AATAAAAAATACTTGTTATACTTTCAAggttaaaattaaaataacaggca
-atctgagcgttggcaagaatgtagaacaattggaacttacatgcactgtg
-ggtggaaatgcacatgggtataaagattttagaaccctttaggagtattc
-actaaaaccgaaaatacacacaccctttgtgagccagcaatgacattcct
-aggaagatgcccaaaaggaatacatgcagccatgcaccaaagccgtatgc
-aagaatgttcaaggcagcactgtttgcaataactacaactgctaacaatc
-tgaagtttcatcaatagtagaatggaggactggtcccggtggctcacgcc
-tgtaatcccagcactttgggaggctgaggtgggcagatcacgaggtcagt
-aaattgagaccatgctggctaacaaggtgaaacctcgtctctactaaaaa
-tacaaaaaattagccgggtgtggtggcgggtgcctgtaggcccagctact
-caggaggctgaggcaggagaaaggcgtgaacttggagtttgcagtgagct
-gagatggcgccagtgcactccagcctgggcgacacagcgagactccatct
-caaataaaaaaaatatatagtagaatggataaataattgtagtataagat
-atagtggaacacaatagaaagtgcaataagagtgattctcacaaacacat
-tgttgaagaaaagattctagatgcaaagagtacatataaagtacaaaatg
-aaaacaaaacaaattcatcttttaagccaagacaacagttacccttggtg
-actagaatcaggcctgtggagagtgggtagtgctatttctgggcttgagt
-actggtttcatgagagtttatgctttgtgaatatcactaaactgtatact
-tatgagctgtgtccttacctgtatgcaaggtgtatttAATTTTAAAAAAT
-ATTGTTCCTAGTCAATATATTAAGGCATTTATATGGACCAAAACTCACTG
-GGAGGTGGTCTTGTTCTGGAAACGTACCTGTGGTATACCCCGACAGTCAT
-AAACTCAGGGAAGCAAGTCCATTTTTAGCACTGGAATTTTTAATTTAGTT
-ATCAGTCATCTACTCATAAATAAACCACAATTTCTCTATATTTTAATAAT
-ATTCAGTTTATATCTTTGTCATTTCTGCACAACTAGAGCCAAGCCTAGTA
-GTGACATGAAAAAAGTGCTTAAACATACGTGTTAGATGAGTGGATGAATG
-TAGATCAAAAATAATAAAACCTATACTTTGAAACCAAGATGTAAATTATC
-CCCAGATTCATCTGTATATTCAACAGAATCCCAGTGGATTTGATGtgaat
-ggatgaatgtgcagatgtgtggatggatgggtgggtcgatgtatgggtgg
-gtgaatggatgggtggatgaatAAATAGACAACTTGGCCTTCTTTCTTGA
-AATTGTAGTTTTATGCTTCTCTGATCCACTCTTTCTCCCTCCACCACCTA
-CCACTAAGATACCAGGATTTATATATCTGCCTGGCTTTATGAGAATAAGA
-GTGTTACAATTAGAGCCAATGTCATACAGTCATCCTCCTCTTCCTGCACC
-AGCCTGGACTCAGGAATAAACTTCTAACACAGTCCTAGTAATAATCATCT
-ATTCCTCTATGCTCGAGGTTTTACTGTGTAACGGTTTCCTCCATTTTTAT
-GTTAAAAATGTCAAGACAggccgggtgtggtggctcacgcctgtaatccc
-agcactttgggaggccgaggcgggcagatcacgtgaggtcaggagttcga
-gaccagcctggccaacatggcaaaaccccatctctactaaaaatacaaaa
-attagccaggtgtggtggcacgtgcctgtagtcccagctactagggaggc
-tgaggcaggagaatcacttgaacccgagaggtggaggttgtggtgagctg
-agatccggccactgcactccagcctgggcaacagagggagactccatctc
-aaaaaatttaaaaaatagaaaaaTGCCAAGACAAAACACCAAACAAATGA
-GTCACTGTTAAAAGTAATTAAGAAGACAAGGATCTTCTCTACAACAGAAT
-GCAAAAGTAGGAAAAGGTGACCAAGACCACCCAGTGTGTACTTGAGGCTA
-CCTGAGAGCAAAGACATTTTTGCTTCTAAGTATTCAGTAGAAGAGGAGCT
-CAGTGAAGCTCTGGGAAGGTCCCAGGAGGGATTCCAGAAGAGTTAGCAAC
-TAAAATAACGTATATTTGGGGTGGATTTCATCTGCAGAGGGGTAAGGGCT
-TGAACGCAAGTAGGATTTGGAAAGGCACTTAGAGGCAGCATCAGAGCAAG
-CACAGCCCTGATGGGGTGGGCTTCACCAATGCCAGTGGACCGAATCTGAG
-CATGTGGTTGGGGCAAAGGTGAGAATGCCAGTTACTTTTCTCCCACAGAT
-TCTTATTTTAAAAAAGAGTCAAAGGAAGtaaaattataggatgttagatc
-ttgaaggtgccttcgctaagtcttggtgttgttttacagaatgagtaatc
-aaagcccagcggagttgggtggctgtcccagtgtctgcagcaaatcactg
-tagaatctatattttaacgcagggatcctgatccctaactctgctGGCGG
-CCCCTCGTGATGAATTGGAAAGTCTTTTTGAAGCATAGCATTATGTAAGA
-GTTGAACATCTTTTCCTTGAGCAAGACCTTGGGGAAGATTATAATCCATG
-GTACTCCATTTAAACTTCCCTTCCTGTTTGGGAGGCTTAATAATCCCTTT
-TACATCTCAGAAGGCAACAAAAAGGTGGAGCATTTCTGCAGTTATTTTCT
-AAGTCAAACATGGACCAAACTCTGTCTAATGCTTTGGTATAGAACTGCAC
-CCCACACTGGACACATCCTTATAGGCACTGAGACACTTCTGGGAGCACTG
-GCTGCAGAAACATTGGGAGAGGAGTACAAAAAACACAGAATCAGAAGTCA
-GAATGCTTGGGCTTTTGTCCCCTTGTTTGTGCAGCCCCCGCCATGCCCCA
-TCCGCCCTCCATTTTATTCTCTTGCCGATGAAACCACGCACTGCCTGGCC
-TCTTGTCTCCTTTCCTGTTCTGATTATCTGCTAGCCCTGGATTTTGAGGA
-ACTCTACAATCCCTCATTTGCAGGCATGCAGAGTCGGCTGGAACTTTTTG
-AGTGATATCACCATAGTTCGATAGAGAAGGAGAAATGTCAGATGGCAAAG
-AGGCAATTAAGTTCCAGGACAACTTCAATGATTTGTGTTTTAAACTTTCG
-ATTTATCTAAACCTCAATTTGAGTCCATTTCCACGAACTCCAACAATTGC
-CTGACACAAAGCAACTGAAGAAAAACCTCCAGGAGCCTGAGATGGAAACA
-GATGGCCAGAGCAGGCAAGAATGGCCTACATTTGTTCCATCCAGTTGTTC
-CCAACGATGGCAAAAAGTCATTAAAAATGCACTTAAGAATCTAGCTTAAT
-ATTGATCAATGGCAGGGTTATGGGAGATGTTGAATCTTGACAGAGCAAGA
-ACTGTATGAGGAACCAAATGATTTTTTTCTGATGGAGTATTAGAGAAAGC
-ACTGTCATAATACAATTTCCCAGACAGATTCATCAATGATGTCAACTGTT
-ACCCCAAGTTTTGAATGATGACTCAGATTTAAGAATTCTAGATTAATGGG
-TGGTGGGGGGGGAAATAGTCACGTTCTCGCTAATGGATAGGATGGAAACA
-CCCAAAGTGACCTAAAGGAAGTTATTCGCCATGCAATTCCTGAAGACAAG
-AGCAATAGTCCACCTTCCCTGACTTGGAATCTCACTTTTTTCCCAAAGTG
-CCAGTGAAGCATCAAAAATTTATTTTCTGCAATGAAAGGCAGCCGTACTG
-AGGTCATCTGAGAAATGCTTTTCCGTCCAAGGAGTTGTCAGTGATGGAGA
-ACTTGGGGTGAAGCTGTAAAGATGTTCCTGCATCAAAATGCACAGCTTGG
-CCGAGGCCAGCCAGAAAAATGTCTCTTCTGTCTCACTTTCTTTTGCATTC
-CCAGTGCCACTGCTGTCAGCTCTGTATTGCACAATTGCTAGAGCCCCTCA
-CTAATCTCCTCACCTCAACCTTACCCCCTCTAAGTCTTTCTGGCCAGGTG
-ACAGAAAGCCTCCACTGTGAAAACCTGACCACTTCATCCTGTGCTTACCT
-TTCTGCAATGACCCTCAGCATCTAACAATCACCCAGCTCAAGGTAGGGGC
-TCAAGACTTGCTCTCTGAATACATAGATCTCTTTCTTCCTGAAGGACAGA
-GGATGAACATGGCAGCATGGAAGATCTACAGGCTTGAATCTCACCATGTC
-TTGCAAACCCACCGGAAGGAGTCCCCCTGGGTGAGGTCAGGCAGTGTCGC
-CCTCTGCCACGCCATGTGGCTTTACCATCCATGTGTTCCAAGAACATTTC
-AAGGCAGCTTAATATCATCATGAGTTTCACTGAATCTGTCTGTGTGGGGC
-CCAAGAAAGACAGCGGAGGTCCACTGGAGTTGACGTTCTGAAACTTATCG
-TCTGCTCCCCTCAGTTTGCACACACCTGTTCCAACTTTACATGGAACTTC
-CTACCCCACCCCTACCACCTCCTAGACATGCATCTTGTCCTCCCACCAGC
-TACAGGCCCTGCCAGATTTTCAAATCCCAGTGTGGGGCCTGGTGTAGTGG
-GGTCAAAGGGTTCGCTCTGCAATTCAGAAGGCCAGGCAAGGGCAGGCTCT
-GCTTTACTTCCCGTGGCTGGCATGGTCTCTCTTGTGTCCCTTCTCCAGTG
-AATAgggaaggggaagagggccgggaaggggaagagggccgggaagggag
-ggTTTGGCAATGGAAGGTATCTGCTTCTCTTGGCTTAACAAGGTGTCTAT
-GGTTACCTCGGTTTCTTTGGAGTTAATGCAAAATTCAAGACTCAGGTCTC
-TCGGGAAGGCGCTTCCTTGACTTACAACTTCTGTCTTTTCCCCTCTGTTT
-CCCTCCCTGGATGAAGTGGTGGGTGCTACAGGCAGGGTCTCCTCATGGGT
-TAGGTGACATCTGTGCTCCAACAGCAATGCGTGGCTGAGGTTTCTCACCC
-TGCTTTTCGCTGGTGTCCACCTAGGTTCTTGCATCCCAACCTGCTGGGGT
-tgacaaagattctccacttcaccaaatgttagccaggctcctgcacctcc
-cccagacccacctgtgcacttccttccaaaatccaggtttaccaagaact
-tcagtaagttactttaccaataacccccaccttcgatatctgatcaccct
-tgatacctgatcaggctcctgatcttcctgcagcccccaggtgatgccag
-tcaccctggcctgtcctcagcaagaatcccattaggctgctttactgtga
-gtcctactcactgctgatatcccctctcattcatgtttcagcccctgaac
-ccacccttctccttggctactaatccccactttcccatgctgtacttggg
-attgagcccaatctttctgcctatgacaaggtctcatcctggtagtccct
-ccacctattgtgatggtcctaataaagtcttccttacagaactttagcga
-gtgccattgaatcattttctttaacaGAGTGTCCACAGCTGATGCCTCCC
-TGACCTGTGGTCTTGGCAAGCACAATGCAAAAGAAAGGTCCTTACTCGAC
-ATCACTGTGTGCAGATCCGCGGAGGTCTGGCTCTAACCTTCATCCTCCCT
-TGGGCATCCACCCATCAACCTGTGGCTGCTGGATCCCCATGCCCTTGCTG
-GGGCTGGTGACCACCTGGCAAGCCCGCCTTCCTTCTCCTCCACAGCAACA
-CGGGAAATTATGCATATGTTATatttactgtctgtgatcctggaagactt
-gcttaacctgcttgcactccagtttcctcagctgtaaaatagagagcact
-agcatctatcttgcagggttgtactgatgattaaatgaattggagcctgt
-aaaatgctgagagcagttccaagcacagagtaagcacattatcagggccg
-gtttttatGATTGCTCTTCCTCTTGCTACAACTCAGTCCTCCCCGGTATA
-CTGTTCACCTCTGCAGGAGTAGAAGAAAGCCAAATACAGACATGTGAGAA
-GTAAGCACACACAGGgttataggttgaatggtgtccccccaaaatgtata
-tgttgaggtcttaacccccagttcctcagcatggaactttatttggaaat
-aaaatcacggcagatgtaattagttaacatgaagtcatgctacaggagga
-tgagcgctgctctaatgtgacgttatcaaagggggaaatttggacataga
-gacaaaaaacagtgagaacgccatgggactgtggaggtggagaccagggt
-gatgcatttataagccaaggaatgcaaaagaggccagccagacacggaag
-ctgggaagaggcatgcacagcttttgcctcccagacacagaagggaccaa
-cactgctaccaccttgatcttcaacttctggccaccagaaccatggaaca
-ataaatttttgttttttcaagcaacccaagctgtggtaccttgttccagc
-agccatagcaaagcaacacacacacacacacacacacacacacaaaacat
-gcacacacatacacatacaaacgtgcaaacacatatgcacacatacacac
-ataaacatgtgcacacataaacgttcacacacataaacatgcaaacacat
-atacacacaaacatgaacacatataacacatatacacacacataaacaca
-aacttgcacatacataaacacatatatacacacatatacgcacatatata
-cacacaaacacacacataaacatgcatacatatacacatacacacatata
-catacacacataaacatatacacacatatacaaacacacacatacagaca
-catacacagacacatatgcacacatatacacacacacacatacacacaca
-cacCTTTCATCTGATTTCACTGGTACATGGGCAAATTTATCATTATTATC
-GTTGGCCCCCAAGCCCATCTTTCCCTGCACTGTTAGCTGTGTTGTCACTG
-GCCTCTGAAATGCAGCCTTCTTCTGCTCCTGCACCTGCTGAGCTCCTATG
-CATCCCTTATCCACAGCGGCCATCAGTGCAGGTTCACTGTCTGCCACCTG
-GTGCTCGGCTAGGACCCAGTGCTGGGGAGACAAATACAAAGCACATGCCC
-TGCCATTCAGAGGCTCAGGGCCACTTCCTGCTGCCAGATTCCAGATCTGT
-CTGCCGACAACTCTCCCCTGCCTTTTCCTGCTCCACCCCAGCATTACTGG
-GGCCTTTTTGAGTCCCTCTTTATGGTTATCTCTACCAGGAGACCATACTC
-ACTCATGAGATGACAGTCCATTTGACTCTGATCATGCCTCTCCAGCAGCC
-CCGATGGAGGAATAAGGTAGAGAAGCGGCTCTATAAATGTCCAATGGCTT
-GACCAAAGTTTCCGCTGGAAATCTTGTTTCTTGACTAATGAATACTCTAG
-TTTGAAAAATAATCCTGAAGAGCAGCTGCATATCAAAATGATGGGCAGTC
-ATAGACAGTCAATGGATATTTGCTGCATTTAATGGAATTGGATTTCCTAA
-AAGCTGGACATTTCCTCTATCAAATATCCAATACATCCTGGCCATGTGCA
-ATAGATAATACAGCATCCATCTCTAAGTGCATGCCTAAAGACAGACGTGG
-TTTGTAACCAATAAGGCCTCATTGGGAAAGGGGCTTTCCTGAGAGAAATG
-TGGATGTTTTAATTAGTTTAGTACCCTTGAAAATGATCTTACTTAACATA
-AAGAATAAAATAATCTGGGCCTTCAACCACCCTTAATACGTATTATTGAG
-GGGCTTTGCATTGCTTGCAATATTACATTTGTTTTTCCCTCTTCTTGGTA
-AAAAACACGGTTCTTGGCAGGAGGCACCACAGATTAGGTGATGCATTTAC
-TTACTAGAGACAGTCCTTGAGGTCAAGCAAGGGGCAACATCGAGATCTTG
-GCCTCTGCTGCTTCTAATGCGCTTGCTACTTAGAGACAATTCATGAGAAT
-GTAGATAGTTCACATTGCGCATAGGACCCTCAGATGACAGTGCTGTGAGT
-GAAACAGCTGGTGCTTCTCCGTTATGCTCTGCCCTGCATTCGGCCTTGGT
-CCTAGAAAAGCCATCCTTGCAGGTGAAGGGTAGAAACAGGTGGCTTGCAG
-GCCCAAGTCCCTTCCTATTTATTGAATATCTTTTATGTGTCTTATTAAtt
-gccagataaaatacagagttctctgttaaatttgaatttcaaagaagcaa
-caaataaatttttagtctaaataggtcccaAACACTGCACTTTTATTTGC
-TAGTTCTGGCACCTCTCATGGGTGTGATGGCTGCTTTTGGTCAATGGCCC
-TAGGCAGGTAATTGCATGGTGACTGAGCCCCTGATCTGGGTTTTGGGTGA
-ACCAGTGTCCGCCAGCCCCTAAAGTCAAAAAAGTGACATAATCTCCCCAG
-GCGTACCCACAACACCATTGTGAGAATCAGTAGGGGTGTGAGAAGGCTTA
-AAATGCCTTCCTAATGCCCTGGGGTatccacgcattcatatagctgtccg
-tccacccacctgttcttccttctgtccactcatttatatagctatctgtc
-cacctacccattcttccttctgtccttccatctggttgtccacctcatta
-tccatccTGTTAtttctttctttctttttttttttttttgaattttgctc
-ttgttgcccagcctggagtgcaatggcactgtctcagctcactacaacct
-ccacctccccggttcaagctattctcctgccttagcctcctgtgttgctg
-agattacaggctcctgccacacgcccagataatttttgtatttttagtag
-aaatggggtttcaccatgttgaccaggctggtctcaaactcctgacctca
-ggtgatccacacgcctcggcctcccaaagtgctgggattccaggtgtgag
-ccaccatgactggccCTGTtatttcttaatagacaccaactatgtgaaag
-gcactgctctgcaggggctgagtatCACGCAAAATGGTCATTCACTTTCT
-TGTGTGGAAGACACGAACGAAGTGACTCAATAGAAAACCAACAAAAGTAC
-TGAAAAGCGGCCATCATAGGTGCTGCTGTGTCCTGCGCATCTCACTTTAC
-TGGCTGACAACCCCCGGGTGTCCCCTTCTCTGGAGAACTGCCTTTCTCAA
-AGAACAGGAGCTGCCCCACCTTTCCATCCCCCGGCCTGTCAGGAGGACCT
-CAGCCAAAGCCCAAGGACATCGGTACAAAATGCTGGGACCCTGGCTTCCT
-AGAGGGATCAACCCTGCAGCACAAACTGCTCCACAGAGCTGGCCTGTAGG
-GCTGCACTCTCAGCCAGCTCCCCGCTATCCCCTGCTCCCTGGGCCCCCCA
-GGAACAGCCCTCTCCCTCAAGGCTTGGCTGGAAGGAGACTGACCAGACTG
-TGCTTCAGGAACAACACCTGTAACAACTTCTCGTTTCCTTAATTTTCATA
-GTGTCACAATTTATTTTCTCCTTCTTGTCTACCTATTGAATTAAAAAAGT
-AGGCAAGAGATACCTACTTTGCTTTATTTACACAAGTAAAGGCAACTGAA
-CTCAAGGAAGTTAGGGAATTTGTGCCCAAGCCCACTGCAGGTCAGCTGAA
-GCCACAACGAGAATTTGATCCCCCAACCTGAGGACAATGTTCCTCTTGCC
-CTGAGTGGCAAATTCCAAGCTGCAGACAGTGTGATAGCTCAACCTTCTCT
-GAGTGTCTTCCACACTCCGACCTTGAGCTTAAGGCATAAATCCCATTTCA
-GTTGCAGCTGATGCTTCATGGCAAAGAATGGTTTACCACCTATCACCCGG
-TCCTGGGTGCTTCAGAGCTAGACAATGGGCAATGGATTCTGAGCTCTTAG
-TGAAAGGAGCCATTGAAATATAAGGCTTTATTCTGCTAATGTGTTTGAGA
-CATAAATTGTTCTTATCTCAAAGCATTCTCCAAGGGATTTTTTTAAAATC
-TGCATTTCTCTGTGGAACAAAGGATGAAAGCTCAGGGGCGGGGTTTAGAC
-ACACAATGGGGTTTGAGGAGAGGGAAAGAATCCAGATCTGAGCCACCTGT
-CCTTCCAGGAGAATGGTCCCCGACCCTGTTGTCCTTGTGGAGGACTCCTG
-TGTCCCCTGCAGAGGCTGAAGGGGAATTCAGTAAAGGGGGCTTTGGGTAC
-CACTTCTCTGTCCCCTCTGGGACTGATTTTATGACTCTGTAcaatcagcc
-cttggtatccctcagttccacatccatagatttaaccaactgcagataaa
-agatattcagaaaaaaacaattccacaaagttcccaaaagaaaaacttga
-atttgcctcacacagagtcctacgttgaatccacgtgaatggagtgatgt
-gtaagcattgtagtgggtattaaaagtaatctagagatgatgtgacatac
-acgtgggcatatgcataggtcatgtgcaaatactatctcattttatacta
-gagacttgagcctcctcagggtttggtatccataggaagtcctggaaccc
-atcctctagggatactgaggagtgaACCTAACAGGGTTCAGTAAGAGATG
-CAGCGTGGAGCAGCACTAAAGCCTCTTGTGGCCAGGCCTGGGGCGCATTC
-TAGCCCCATCACTGCTCAGCTGGGAAGGCTGCATCAGGGAGCTTCGTCTC
-TTCATGCCCCATTTTCCTCCACTAAAGTTGTCCTCTCCCAGCAGGGAGCC
-AACAACagccacatgtgactatttaaattaaactacaatataataaaata
-atgtgccacagtcttgctagcaaatttcaggtgttcaacagacatgtgtc
-aaacaaaaaataaatccagacttggtgtaggagaccagaatatgtcacct
-caaacgatggctgtaagacaccagggtctgatacccaaaatacgcctctt
-tgacataaggatgattttgagctgattcttttgagaaaatgtagacacag
-gagaagctctgagaagaaagtagaaatgatcttttcaccagggaaattta
-catctataaaggagatccccatttgtgaaggttctctctctctgcaccag
-aaagagaaagaccctaaatcacgagacttgcaaatggagaggcaccatca
-caaacttcactgtccctgctgtgttggtcctggtcacctctcaataacca
-gccctcagcacccttttgtgcttctattgaagacagaagtgtttaaccct
-aagccctaaccctgacccccaagccacctctcagagctgtgctcatttct
-ctgggcatctctcacatatgcatgaggttaatcaacttctgttcattctt
-ctcttgctaatctgtcttttgtaacagggatctgtcccctctaagaacta
-tgaaggggagagggaaagttatcttttcctcccctatgtcagtaaggagt
-tactttgagaaggattattgctgaggggtgggagaagaggagagactatt
-gcaataggaagaatactctgactataaggtcaccaagagtttcaagagat
-gggcaaaatggattttttttctctaacagagaggaagaaagctagaaatg
-accagttgtgggggaatgagaggaaggggtggcACACTCGGCTCATGGAT
-CAGAGTTAGGAATGCACTAGGCTGCATCCCGAAAGGCGGCCCCAGCCCTG
-CTCTGAATCTTTGTGCAAGAGAAAGCACACTACCAAACCACACCAGGTGC
-ATTGTCCTAAGCCACACTGCCAAACCAACCCCCTCCAGTCACTCCCCACT
-TACCCgtccattcaggctgctttaacaaaatgctgtagactggggatggg
-gtggtgggggaggtggactcatcaacaacaggcattcatttctcatgctt
-ccacagcctggaagtcctggatcaaggtgccagcagattcagtgtctgat
-gagggtgcctcctggctgcgtcctcatgtggggggaggggtgagagtgct
-cccattcataaggatgctaatcccactcctaagggctccccctcaggact
-taatcaccccctaaaggcaccatctctttacactatcacattgggaatta
-ggtttccacacgggaatctggggtgacactaacatgcagatcataCCGTG
-CCCAATCTGGAATTTTCCATTTTCCCAAATCACCCCTCGTCCTTTTTTTG
-TTCTTCATAGCCTGTTTATTCTGTCTCTGCtcttgctttaaaagcctcag
-tcacctttgtctcagtggagttgagctcagttcacactggagtctctctc
-ccctactgcaatagtctgaataaaatctgctgcctcctttaacaaacgtc
-tggtgctgtctttcttggaTGGCTCGAAGGCATTCCCTTCACAGAGCCAC
-CTCCCCAGACATAGATGGAGCTCCCAAAGTATCTTCTTTCCTTCGGCACG
-TCCCACCCGTAATGGTACGTTGACACCATACCAGCATGCCCAAGCACTGC
-TGGAACGAAAGGACGCTGCTCTGTTACTCATCCCTGCGCCCTATGCCTCA
-AGATGGGGGTGGCATGTGCTATGTGCCCCTTAAACAGCCCCCAAAAGAAT
-TCTCCCAGGAGGAATGCAAGGATGCCCACTTTAACCTGTACCCATTTGGT
-CTGTACCTGTACGCATTTGGTCTTTCTGACCTGACTCTAAGGCACCCTTA
-GGTGGGGTATGGAATGGGGCTTGTGCTCATGAGAGGCAGACTTTCCACAA
-CGACAGCCCCAACCTAACACCAAGGCTGATTTGTGCTGTTTGTTGTTAGT
-TGTTAGTTTGGCAGGGGGTGGGGGAAGGGGGTGGAGGCCGGGGGTGGACT
-GTTGTGATGCGGTCTTCTGAATGCTGTGCAGTGATGATGCTCCCAGGAGG
-CCACTTCTGTCTCAGATGCTGCCTTCTTCTGCTCCCCTGAGGGAAACTCC
-CTGCCACTGAGCCTCCTCCCCAGGAACTAACTCCCTGCCACTGAGCCCCC
-TCCCCGAGAACTACCTACCAATCCATCTGAGACACTGAAGAATATCACCC
-GCCGTCTTCTGGAAGACAGAGCTGGTGTGCACTGCCTAAGTCACTCTCTT
-CCGTTTCTTGCTGGTGTATCCTGGCGTACCTGCCTCCGCTCTCTCTGGAG
-CTTCCTAATGCAGTGTTGGAGGCAGATGTCAGACAGTTGTGATCAGATCC
-TCATTCTTTCATTGTTTCCCTAATTTCATTTCAGAAATGACTGATGGGGA
-GAAAGATGCAGAGCACAGACTAATTCGCAGCTAATTCTTCTAAACAGTCA
-TGACTGGCTAGACAAAATGTGGCAGATGCTTTTCATTTTATTTCCAAATT
-TGCAATGAAAGCCGAGAGTCGCGGTGGATAGGCTCTTTCTTCTGGCCCCT
-GACCTGTGCGATGACTCAACATGGCACAGGATGATGGAGTTAGAAAACCC
-CACGGGGACAGAAGACGCTGTAGACAGTCAGCTGGCGGGAAGGACTCGGA
-CAACCCAATCGCACACCAAGATGCCCTTGAGCGCTGCTGTCTCCCTCACA
-GTGGGGGCGCCACCCAGAACACCAGGCACTTTGCTGTGGCTCCAGGGAGA
-CGTGAGCTCTGGACAGAAGGAAATGTTCTCCTGAGTCCTTTCAATTCTTG
-GTGGCTGCTGGACTTGCCTGTTGAGGGGGATCTTGCTGCGGGTCATAGCC
-ACTCCTCTCAtggtggggacacagtaagaaaacaagacaggtcaggtaga
-gtattcacatacacacacacacgcatgcacacacacaattttagctggct
-ataactactttaaagaaaatctgtaggttgccaatagaatgacaggtgac
-agttaaggagggatggccactgttcagggaaagtctctctggaaagatga
-ccttcgagctgaggaccagaaaggcctgtggcagtgagGCTTttttgttg
-ttgttgttgttttttggtttttttgagacagagtctcactctgtcgccca
-ggctggagttcagtggcatgatcttggctcactccaacctctgcctcctg
-ggttcaagcgattcttctgcctcagcctcccaagtagctgggaatacaga
-tgcgtgccaccatgcctggctaatttttgtatttttagtagagatggggt
-ttcaccatattggccaggctggtctcgaactcctgacctcatgatccacc
-caccttggccccccagagtgctgggattacaggtgtgaaccactgcaccc
-agccGTCAGCAAGttttgtgtgtcgacttggttaggatgtggtgcccagt
-tatttgatcaagcaataatctggatgtcaatgtgggggtactttgtagat
-gtgggtaacatccaccatcagctgatggtacataaaggagataccctgaa
-tagtgtgaatgggcctcatcccatcaattgaagatcttaagagcgtaact
-gaagcttccctggaaaagaagaaattctgcctgaagaccacagcatcact
-gctgcccccgagccctacggagctcagacttgcctacccccagagtcccg
-tggaccaatttcttgcaatctctttTATTGATTCAAatttctacttctat
-taaatttatttttatttattttatttttattttGTTGTACAAtacacaca
-atattctactggttctgtttctctggagaaccatgtcggatgcTAATACA
-GGGTTCATAGTCATGCAtcttctctatccatttgctctggacacattagt
-gggcctcatccacacatggtttcagctattcacatatggctgcaacttct
-gaatttctgtctacagcctgggactctctccttgcaccacagtcataaac
-tcaggaacctgctggacatgactactcaaaggctcccgcgtatctcaaac
-ctaagatgtcTGTTGTGAAATGAGAAAATTTACCCTCACCCTAAGCtttt
-ttattattttttaaaaattCTTAACtaatttttaattgtaatgtaacata
-aacaggaacatgcataaatcagaagcgtgttgtgtgcagagctcagtcaa
-ttttcacaaaatgaacacacccctgaagtcaccatcctgatcgagatgac
-cacatcctcagggttccaaatatccccatgctcattcccagtcatgaccg
-ccttctttgcaaagtgtaacaccttcttctgactactggcccctatgtta
-cttttgcttgtttcaaattttatacaaattgaaccatatagcatgaatta
-ttttatgtctgtttcttttactcaatattgtatttgtgggatttattcat
-gtggtgttgtatattaatcatttatgcatccatattttatcattgcagag
-taccacactgtgtaattctaccacaatttgttcaaacaattccactgttg
-gtgggcgccggggctgcctccagcttggggccagtgtgtataatgctgtg
-tgattattctatacatgtgtttggtacatatttccatgtggcattgttgt
-gtataaacctgattaaaatgactagattccacttcctgcatacgtctgtc
-tttagtggatgctgaccaccagttttccaaactggctgtaaaagttaaca
-ctcttgcatatattatttgagtgttccaattgctccatatccttgccaac
-acttcacattgtcagaccttttaaattttatccttccatgagtatgtgat
-ggtaactccctgtaattctaattcgcattttcttggagtctaatgagtgt
-gagcattgttttacttattttgggtccttaggaaagcttctattgtgaag
-tgcctgttcagtctcttgctaatatttttactgagtatttttgtccgttt
-tttttttcttgttgattttagattcctgttatacattttgcagatatatt
-ctttcattcattggcttgtgaatttcctctttttggtgtcttttgatgaa
-cacaagttcctaattttatgtagaaattaatgtcttctcctgtatggtta
-atacattttgtgtccttttaaagaaatctttgccaactcaagatcactaa
-gacactaagatgttctcctaattgtccttctttcacactgagatttacaa
-tatctctggaaatgaattttgtgtgtgatgtgaagagggcaagatttatt
-ttttccataagcatatccaattgactcagcatcatttattgaaaaaacat
-cattttcccactgctctggcatgctatgatcataaatcatctgtctatgg
-ggtgtgtatctgtttctggactctattctcttccactggtgtccttgcct
-gtccttgcattacaatgctgtcttaatcactgtagctttgcaataaatct
-tgatttctggtaatgtgattcctcagactgcattcttctttatgattgtc
-ttggctatccttggtcctttgcactttcatacaaattttagaatcagttt
-ataaatttccaacaaaaaaagatggccaatcttttctttaggattgcatt
-aaatctacataatcaatttgtgaagcattgaaatttaactattctgtatt
-ttaactcattattttcatttgtttaatttcttcaaataatattttatagt
-tttctatgtagagaattttgcatatagtttgttttcttaagaagttagat
-tattcaaatcacaatgagatgtgcctttttaaattttattttattcttaa
-ttgttctttgtataaataaaattaaactttatatattgacctagtattca
-gtgaacttggtaaatttacttattgattttcctgggctgtctgtagactt
-ctttgactttctcacctacagtacacaaacatcattagaaaacagtgaca
-atttttattacttttatccaatcttacaacaataatttttttttcttgcc
-ttattgcactagctagaattcccagtacatttcttaatagaagtggtggt
-agcttgtcttatccccaatatcaggtaaaatgccatcaatgtgatgctta
-ctgtttttattttatagatttatttttagattaagggggttccctactat
-gcaagttttgctaagagtattttttgtatcatgaacgggtgttgaatttc
-accaaatgcttgttatgtatctattgagatgaccgtttgatttctcttct
-taatttggtgatttatgactgattttcaactgttacttatgcatttctgc
-acaacttgcccccttgcaaaaactcgacttgattttaatgcattgctcac
-ttttatgtatcatggatttaattttctcatatttactttggtaatttttg
-gatccatattcattagagacactgTTCTCtggattagcttcctattgttg
-ctataacaaatttcctcaaatacagtggtttaaaacaacacaaatttctt
-gtcttatagttatagagatcaaaagtctaaaatgaagatattatcagagc
-tgggtcattctgaagccttcaagaaagaattctgttccttgcttttttag
-cttcttgagggcacctgcattccttggctcacggcacctcctctcatcac
-ttcaaCTTCTTGTTTGGGTCATCAGGACTCCTATGACTGATTCTGATGTT
-TGTGTCTCttaccttgaacacaccaggataatctacattaatcttcacat
-ctcagatgctcaacttaataacatctgcaaactccactatatgagataac
-acattaacagattccagggattaagcctttagtctttttgggggatgact
-ataattcagcctaTTAGTCTCCAAACATTTTTCTCTGTAAAGTGCAGGGA
-aggttttgctatcaggatgattctggcctcatcaagactgttaggaagtg
-cttcttctctattttgtgggagaatattttgcatataagagtttggtgaa
-acttgctattctgtaaatatttagaagaatgtaaagtcatagaaacctgg
-agggtcttttttttggcatgggaaattttaaatatagatttaattatcaa
-atactttaataagtatggaaattttagatttttctatttcttcttgagtc
-agttttagtcaattgtgttttggtatatgtaaattttgccttccctctct
-tcttttaaactttattcaatgctgtcttttcttttaaaaaaaaaaaacct
-tatttaatgttttcaggttttgtctaatatattactctttctaaagaact
-aatatttgctgttgtttgtttattataatagtttgcttctctttctttaa
-tttctgattttatctttattttgtacttaactactgttttaaacttaatt
-tactatcatttttcccaactacttgaaataaatatttggattgatttttg
-agcctttaatctttttgactttatgaattatgttaataaatttccctcaa
-ggggcagctgtaactgtatcccacacatttttcctgtagtttcatcatca
-tatgcagcaaaatattttctaatttcctttgtgaatcttttctttgattc
-atgggttatttagaattgtgttgcttattttttagttatttgggaattat
-ctactcataattatcctttttattaaaaaaattactggcttctaccacaa
-ctctactgtagtcagagaaaaatgtaagatgcctaatttcagtcatttgt
-agggatttgctttgtagctcaacatatgagtaatattaataaaggatctg
-tgtgcgtatataaaagtgcataatctatactatttgagtatagtgttctt
-catatgccaattagagtagatttgttaagctgtcaaactcttccacataa
-taattgatagttttgtctgcttttggttttagttccaaagtaacatatat
-taggatcgccattatgatcatttccttgtcaatttctgcccctagttcta
-ttggtttggattacatatatttggagactgtccagagatgataatacatt
-tagggttattttattttcccagaggagctaccctttaatttctatgaaat
-gtttcattttaaattataaatcatttctattttaaagtctactttgacac
-gtgatggttatatcactttgtcattattataattagcattactcttgtta
-ttaatgtttatatgatacataattttcattctcttaatatcaaactttat
-tttaaagacgtaactcttgtaagctgtatatatctgtacttttttcttaa
-tataaacatcttttgtattttaatctgtgtatttagtccatttacatgca
-atgtaaacattggtatttgggGATGTGAATTTCCTGCCTTAATATTTTTG
-CGATCACCTTGACCTGATTTTATTTACTTTCTTGATTTCTTCTGGTTTTT
-TTTCCCAGTATTTTTATGATCCTTTTTTTCTTCTCCTAACTTATTACATA
-TGCAtttttgttgttgttgttttttattttgagatggagtctcactcttg
-ttgccaaggctggagcgcaatggcgcaatctcggctcactgcaacctctg
-ccttcagggttcaagcaattctcgtgcctcagccttctgagtagttggga
-ttacaggcacccgccaccatgcctggctaattttgtatttttagtagaga
-tggggtttctccatgttggtcagggtgatctcgaactcccaacctcaggt
-gatccacctgcctcagcctcccaaacggctggaattacaggcttgagcca
-ctgtgcccggccTATGTAGGCATTTTATTTTTACTATAAATTTATTGGTG
-GCCCTGTGGATTACTAAATATATTCTTGATTTGTCAGTTTCTATAATATT
-TTATCCCTCCTTAAACACAAAAACTATGATACTTAACCTCCCTCCTTACT
-TTTATGCTATATTGCCttatttttaaattatatataatGTATATCTATTC
-CCACAATATAATTGTACCTATAATTATAATTATAGGTACAACTTATATTT
-TTCCTTCCTGAATTTTTCTGCTTTGACTGAGATTCACTGTCTATCTGAAA
-AATTTCTACATACCTTTTAGTGAAAGTTTTAGTAGTATCTAATTACTTCA
-GTAATTTTCTAATTATGTCttcttttattttaacttttagattcaggggt
-acatgtgcaggtttgttatataggtaaactcatgtcacaggggtttgatg
-tacagattatttcaccacccagatactaagcctaatacccaacagtcact
-ttttctgctcctctctctctttccaccctccactctctggtaggcctcag
-tgtgtgttgttcctctctatgtgtccatgtgttctcatcatttagctcac
-acttataagcaagaacatgtggtatttggttttctgttccagtgttagtt
-tgctaaagataatagcttctagcttcataaagctagaaggacatgacctt
-gttcttttttatggctgcatagtatttcatggtgtTtgatatggtttgac
-tgtgtccacacccaaaatttcatcttgaattaaaagccacatgatcccta
-catgtcaagggtgggaccaggtggaggtaattgaatcaaggggttttttt
-cccccatgctgttcttgtgccagtgagtgagtctcatgagatctgatggt
-tgtattagtgtctggcatttcccctgcttgcactccttctctctcctgac
-atcctgtgaagaggtgtcttcctccatgatggtaagtttccagatggctc
-cccagctctgtgaacctgtgagtcaattatacctcttttcattataaatt
-actttataaattataaatgtataaatttatacattcataaatttatatat
-aatatatattatatatataattatatattatacatatataaatttatata
-taaatttatacattataaatttacaatgtataaatacatatgtataaata
-tatatgcataatgtataaatatatatatttataaattataaattttattt
-ataaattacaatctcaggtatttcttcatagcagtgtaagaacaaactaa
-taGAgtgtacatgtaccagattttctttatccagtttaccattgatgaac
-atttaagttgattccatgtctttgctattgtgaacagtgctgcaatgaac
-atacgcatgcatgtgtctttataacagaatgattatactcctttgggtat
-atgctcagcaatgggaatcctgtgtagaatggtagttctgtttttatgtc
-tttgaggaatcatcacatatgtcttcatttcaacttcacctctgaaaaat
-attcttttactgtattgaattttaaattctgtgattttctgaaacagtat
-gagggtgatatatcaatgtccattggactctgatatttctgttgcaccat
-cttttttattattgctctttcgaaggtaatgcgtttcacttttcctgact
-acttttaagatttttctctttgtctttgatatttataagtttgactaGAG
-TACgtgtgtgcgtgtgtgtatgtgtgtgtgtgtTTGATTTTTTGTAGTCA
-ATTTTGGAAAAATATTAGAcaaatatttcttatgttctatttttcctctt
-tgtctgattttccagttactcatgtattggacttttaaaaatcattttct
-aggagtctcctatatccttttaagatattttgtaaccttttgtctttgtt
-gtctcagtttagatattttctactgaattagcatctcagttactcatgtt
-cttttctttacctgtaatatttattgatttggttatccagacatatttat
-gatcacatataaatatctggtaacttagaaacactgttcttaagcatctt
-aaatctccatttcacaaaacaattttatttagtctttatgttcctctttg
-acatcagtctttgtcacaattcaagtagcattttgagtaatgggagagca
-ttttctcaagtacattgacattacttccagctaagttgttttgagatttt
-taaaaattcttaaattcttaaaatatgctattaatgaaaacttactctga
-gcctcatatacccacttgcataatatttagtagagttgattcttttactc
-gtcatctagaggtatctttgtgatctctacaaaataacTTCATGACTTCT
-GCTTTTTATTTTTTGAAAattgagatagaatttacatgccataaaattaa
-ctatttaaatgtgtacaattcagtggtcttcagtatatacacagtcatgt
-aaccatcaccattatctcattccaaaacactttttgtcaccccccaaaag
-ccccatacacattagcagtcactatctataaaccccccaacgacacccat
-cccctgtcatgcacttcctgtctctatgacttgcctattttgcacattta
-atataaaaagaatcatacaatgtatggtcttttgtaactggcttcttcct
-tctagcacagggttttcaaggttcatatatattgtagtgtacatcagctc
-ttcatttcttttttatggctcaataatattctgttgtacagacagactac
-attttgtttatccatttggctgatgggttttgggttgttttaattttttg
-gctatagtgaattatgctgctatggatatttatgtacaagtttttgttta
-aacacctgttgtcaattttcctgggcatatacctaggggtagaattactg
-agatatatggcaactctaatcttttgaggaactgcaaaactgcttgctgc
-agaggctgccccattttacattcccactagcgatatacgagcattccaat
-ttctccacatatttgccagcatttatttctcatttttcggtttgaggtat
-cctagaaggtttgaagagatatctcaattcatttccctaatatctaatga
-tgttgagtatattgccatgtgtttatggatcttatatctttgaagaaatg
-tccatttctttttaccaatgtcctttgtccattggtaaattgtgttattt
-atttatttatttatttacgttacaagagttctttatacattttggatatt
-aacgccttgtgggatatatgatttgcaaataatttcttacattatgtggc
-ttgtctcttcactctctggatagtgtcatttgatttaaaaaagtttttga
-ttttgatgaagtttaatttatctaacttttctttggttgcttgtgctttt
-ggtgtcatatctaagaaatcattgcctaatccaaggtcatgaatatttac
-acatattttcttttaataattctacagtttcagctttaacatttaagtat
-ttgatccattttgagttaatttctgtacatggttagaggaagggttcaaa
-cttattattttgcttgtagatatttaattgtccttgtgtattatttgttg
-aaagactattctttctccactgaatggttttaacacccttgtaggaaatc
-aattgaccatagatatatggtttatttttggaatctcaatttttctccat
-agataaatatgcctattcttatgccagcaacacactgtctctattactgt
-agctttgtagaaagattggaaattaggaaatgtgaattcttcaaatttat
-tattcctcttcaagattgttttgactattctggttctcttgcaattatat
-atgaattttaaaatgtttgtctatttttgtaaaaagatgaatttttatag
-gaattgtattaaatctgttgatcaattttggcagtattatgatcttaatg
-atataggtcttctaatttattaacacatggcatttttctgtttatttggg
-tctttaatttttttaacaagtttttatagtttcatgtatacaagtcttac
-acttttcttatgtatattgctgagtatattattctttttgatgctattgt
-aaattgaattattcccttaattatatttttagatagttctttgactattg
-agacatgactgatttttgtatattaatcatgtatcctgcaatattactga
-acttatatattagctccaatagttttttggcaggtacctaagattttttT
-GTTTGTTTGTTTTTGTTTTTTATTTTATAGGTAAGATCATACTGTTTGCA
-CCTAGATGTCATTTTCCTTCTTTTCCTAGATGActtttattcctgatttt
-agtaaattaagtcttctcttgttttgttttattggtcaggttaggtaaat
-gtttgtcaaatgtgttgattttttttaaaaaactttcattttcattgatt
-ttctctattgtttttgtattctctattctgtttatgtctgctctaatttt
-tataattttcttcttttgatttagatttaatttccttttctatctctagt
-ttcttaaggtggaaagttaggtaaataatttgagatttttctattttctt
-aatgtaagcattatagctataaatctccttgtgagcattgctttaacagc
-atactctaagttttggtatgctgtgtttctatctcaaagtactttttaat
-tttcactgtgttcttctttgacccattggttatttaatttccacatattt
-gtaaagttttccaatttctttctcttattgatttttaaattcactccact
-ttcactatggccagagagcataatttgtatgacttcaaccctttttaatt
-tattgagatttgtttcattgcctaatataggttccatcatgaaaaagttt
-ccacgtgcacttctgatgctattttcaatggaactgcacattctgttgtt
-aaatggagtggtctatagatgtcttttaggtctaattggcttacaatgtt
-gttcaattccttttatttgctaatcttctctatagttgttatatttatta
-ttaaaagcaaggtactgacatttccagctattattattaaattgtctact
-ttccattttaactttgtatgtttttgcttcatgtattttgggactttttt
-cttaggttcatgtacagttataattattgtcttttaaggaattgacccct
-tgataattataccatgtccttatttgtctctagtaatgatttttgtttca
-aagtcaattttgtttgatataagtataggctgcctgtttctgttttgatt
-attattagtatggtgtgtcttgtttatcttttacttccaacctatttgtg
-atttttaatttaagctgtgtttcttgtcgacagcatacggttggatgatg
-tcttatccactttgccaatttatgccttttaattgaagagtttaacttat
-ttgcatttaatgtaattagtaataaggtagaatttaccactgttattttg
-ctacttgttttctacatgtcttatgtcattattgtttctctattcctcca
-ttacttccttcttttgtgttaaaaagatatttcctagtgtgttattttaa
-ttcccttgttgtttcctttactatccatattctaggcattttcttagtgg
-ttgccctggatattataattagaatcttaatgtataataatccagttcag
-aataagaccaactaaatttaaatagtaaataaaaacctttcctttctata
-acttcctttctctccttttttatgttttattttcttatgcagttgtattt
-taaatcagaaaggaaaacaaaaggaattacaaacaaacaatacatgtata
-ctgtcctttctatttacctctgtagttatttttgtctgtgctctctattt
-ctctacagagcttacagtttctctccagtgtcctttcatgttagcccgaa
-gtactccatttagcatttttttataggtcaggtttactagtaatagactc
-tggcagcctttttttattttattatatatctatatatatttttaattcag
-taagtcttaatctccatcatttttgaagaatagtctggtggaatgtagga
-ttttgattgacaattttttttcaataatgtaattatggcatcccattgct
-ttctggtctcatggtttctgataagaaatcagctttgaatcttgttggtg
-ttcccttgtacatgacaagtcacttctcttttgctgcttttaagattctg
-tgtctttgatatttgacattttgattaaatgtgtctcagtgtgggtctcc
-ttgagtttattttacttggaatttactgagcttttagaatgtaacattcg
-tttattttataaaatttttgaaaagtttcagccattactttcttaaatct
-actttcttcccctttttctttctccattctttttgaaactcctattacac
-atatgttggcttgcttgatagtcccacaggtgtttgagattccttcctct
-tttcttccttctttttaaaatttctgttctccaaactggataatttaaat
-agtcctatcgtcaagttttacaattcttcttcctgctgaaatgggttctt
-gagcccctttagtgaatgtcttattccagatattgtacttttcaactaca
-gaattttaatttattttttaaaaaatacgtctgtctctttattgatattt
-tctatttggtgagatagcattatcacactttcctttatttccttaaatat
-tttaacattctttgaacataatacacatacccaattatagtattttagtc
-ttcatttatgaaacccaacatctaggcttccacaaagactgtttctatag
-gtcgattttttttcctgtatataggacatactttcttatttgcttgcaca
-ccttacacttttttgttgttgaaaaacttggcattttaaataatataatg
-tgacaactctgaaaatcaggattttttcctgccttggagttattgtttct
-tcatgttgtagtagttgttattgttcagtgacttttccaaactaattatt
-taacatgtgcattttttgtcatgtgtggctatttaagtctctacttgcaa
-aacataatggtcagctaatgattgtacagagctttctttaagtgcctagg
-gccaaaaaacttcccagtttccaagCACTTCCCAACATTGCTCTTTCCTT
-CACTTCTTGCTTTTGCAGAGCCCCTCAGTCAgaatatatcaatgtttttc
-aaagccccatgggtatcttgttcctcagcccttccttttagcctttgaca
-ttaacctgttgtttacTGCAGTGAGTGTTtgttgcctcagcattcgtttt
-gaatacaggtttagctttctcatgacagaggcagggctcagtcacccttg
-acacaattttcagttctatgccacacccaaaagactcaagccagatgcca
-gcaaaagaatcttaaagacatgtggaacacctagcatactgggttccctg
-atttcctgccacttttttttttaagagactcttcagtcacttgcccatga
-acttacagtgacctgcaccctattccccaatatatactgctggctgccat
-gctctcttctctatgcttgCCCTCCCTGACCTCTGTGTGTGGCCTCCAAG
-GATGCTGAATAACATCCCCTGAAAGTCCCCTGGGGTTTTTAGTAAGTACT
-AAACTTTCCCATTGTGATTGTGTCACTGAAGCCCTGGCCACACTGTGACC
-CTTGACCTTTAGGCTTCCAGAAGGGACTTCTGCAGAAGTCCCTGGGTTCt
-ctttttgtcccttttcctttccccgttcttgttgacattcttattacaca
-tacattgacttgattggtagtcccacagttatttgagactctgtcctgct
-ttcttcattctttaaaaatttctgttcttcCAATACAGATTCCCTGCTGC
-TGCTCTTCTGTCCAGGCTCTGGTAACTACTAGAAGTTTCAAAGCTAGGAG
-CAGAGCTACCACAAAGTTGATAATAAAACTCAAAGAGTTTTATTCAAAAC
-Atttacccaaacttgtattcattgcctcaggcagctacgaagttaaaaca
-cttctctgtaattgttttcaactagtgacctcttggggagaaggtgagct
-cccagttagccacctgatatgccaaataatggcaattctttgagaatgag
-gctttgaatacagctgcagctttgttcctctccctcagataccaggcata
-agtgctcttgcttttcaaagctgcctctgagctggagagcagaggatgag
-actagagcaagttcaactgtgagcaaagctcacttttacaaagattcaac
-catttttcttagataaatactcacaagatgggtgcaagtctttgaagaat
-ttccagagttttgaaaaagttgattttcttaattttttccaggtttttaa
-aaaaattgtttttctggaagtgtgagttttgggatgttactactctgcca
-tttttactgacatcaTTCTATGAAGCGTCTCTTAAGCTTGATTTTACCTG
-AAAGGCTATCAGTTGAGTTCTTAATTTCTATTACTACTGTATTTTCCATT
-TTTTAAATAGATTTAAGTTTTCTTATAAAATTCTTCAACTTATCATCTAT
-AGTCTTAAACACAAATTTCAGTAATTTTAAAGTTTATATGGAATACATTC
-TGTATTGGAAAATTCTGTGGATCTGTTTCTACTGTTTGCTTTTTCTCTTG
-GCCTTTGTTTCTTTGGTTTTGTAAGCCTTGGCTTTGTATACCAGGCAGAc
-atgcctgatacattttttgttgaacgccaaacattgCATATGAAAATTAT
-ATTGATAATTTGATGGTACTATCTTACTTGAAACAGGATTTACTACTTCA
-TCTGGTAGGCTTTTATGCTGGGGCTAGTTCCAAGCTACGAATTTAATTAT
-TTGAAACTGGGTTTCAGCATTTGTAAATTCTTGTCTAACTTTGGCTTGCT
-TTTACTCTTCTGCAGCTCTTCAGGTTTCCAAATGACAATTTGGATCATCT
-TCTCGGGCTTTTCCTCCTGAAGGGGTCTGGACAAATAATGATGTCTTCTA
-GCCACATAGGAGTTCCAAAATTTCTCTTCAGTTTCTTAGACCCTCAGCTT
-CCCTCCAACACACAGGCAAAACAAAGTCAGTCAAGGCTAGGCTAGATCAG
-CTGAACTTCCCTTAACCCTCACCCAACCTTCTACCCTCTGAGTGAGAAAC
-AAGTAACTTTTGAAGTAGTTTGTTATGCAGAATGATTGTGGGATTGAGGC
-CTGATACAGCACTTTTTTTTCCCCTTAAACATCTCCTATCATCACAGACA
-AGTCTTTTGCCATGAGGCTATCTGGCTGTTCAGCTAGAAGCATGGGTTTA
-TACATCCAATCCAATTTTTTGGCTGGTGAATTTCTAAGTTTTTTCAAGTT
-TCAGCTTCAGAAAAGCTCATCTGGATTCCTTAACCTGTCTCCTGACCCCT
-TATAGCTTTAGTGCACAAATCTTTTAGGACAATTTCACATTGTAATCAAC
-CATCAACTGGAATGCCTCTATGTTGAATATGCAAGCTGATAACTTGTTAT
-CTTAGGATCCCCAGCACTATATCTGGCATTTGTTATTTGCTTAAGGTGTG
-GTTGTAGAATGAAGGATAACAATGCTAATCTGACAGCTGTGTGGCATTTG
-ATAGTAAATGAAATGCTTTTAGGAACATTATTTTATCTTGAGTTTTATGT
-CAAGCTACTGAAGCTCCTTACCATGTCACATAAGGAAGAAATTATTTTTT
-CCACAAGATttttaaccactttataaacaaagaaatgagacctcagtgaa
-gttaagtaactgttctgagattataatgcttttaagtagtagagctagga
-ttagaatccgtgttcttttcattGTGCCATATGGTATCTTGATACAATCT
-GGCTTTCATGCATACACTGATGGGAATTTAAACAAGGCCGTTGGCACCAA
-ATCTGACCATCAGCCAGTGTTGGCATTGCCCATCACTTTCACAGTCAGTG
-CACAGAACTACAAACACCTTTGAAATTCACAATTTGTCCACTGAATAACT
-GAGTTTACAGAAGCTAATACTTGTATTCACTTTAACTGTGAACATTCACA
-AAGTAAAGCAAAGTTACAAGCCGTTTTTCTATGCTTTCATGTAAGAGGAA
-TGCTTGTGTTTGTGCAGAATTATGCCAGGAGGCCGCTGGCAGCTTTTGTC
-AGATGACATAGAAACATCTGTTCCAATAAATATCTTCCTCACAGACTCAT
-TTGCAGGGAACAAGAATCTCTTCTGGCAGTACGAGCACAGACCTGGTAAG
-GTGGCCTTAGATGGAATTTTGTTATTTTCTGTGGCCCCTCAGCTAAGCAC
-TGGGTGTCTAGAACAGTAGGTGACCCATGATCAGGAGGTGGTTCAGAGTG
-GCTGGGAATGCAGGTGCCTTGCTAAGCCTAGGATGGACTGTCCCAAGGTA
-CTCTGCCCTGAAGAGGAGGCAGACAGGTATCTCCAGGTTGAGGATTAGGG
-TGCAGTGTCCAATAGTGCCTGGCCCTTCCACCAAGTCCTGAGATATGGAT
-AGTTTTGGGATTATAGTAAGAAAGGGTCAGAACACAAAAAGTAAAAAGAT
-TCCAGCAACTGGATAAGTCTCAGTGAAAAGCGTTCCCCTTTGCAGCAGGT
-GCAAGGAAGTAGACGATCGGCCCACCTCACCACTCAGGTTGCTGTGAAGC
-CCTGTGCTGCTGATGTGCACTTTAAGAGCCCCACTGCTGGGAAGACTTGG
-TCACTCCCATCACAACTCTTGTGATCCCAGCTCTGAATATTGCACAGCAG
-AATGTCTGTCTCCACGTTGAGCTTCACTGCCTGGCACAGTGCTTTCTTCC
-CCTTCTCTTCCATTTTTGTCATCTGCATTGAACTACCCTTGATGTCATTT
-GTGACAGTGAGAGCAATGGCTAGAAAAGCCAGAAGAATCAATCACTGCCC
-AAGTGCCAAGGATGAGGTCCACATGTTTAGTGTCCACCCAAAGACAGAGG
-ACCATCATCCGGAAAGGAATGCTGTGCTCTCTAGTGCAATGTGCATTGGT
-CATGACCATAGTGTAAGAACAGCCCATTCCCTACTGACTGGGGGTACCAG
-CAATTGGCAAATGTGTGCTGGATTCCTCCCCCTACTAGAGATTCCCTACA
-TCGGGGGAAGAGTCTGGACTCTGAAGTTGTTACGTATCAGGCGTCACTCA
-GGGTGTGCATACACCCCTGAGTTATGATGGTTCAACCTGCAAATCCTTGA
-CACTCAGCATGAAACCCATCATTAAGTCAAAGAGCATCTGAacttacagt
-gttcaactcatgatttttctactttacaatggatttctcaggttattaaa
-tgcattttttacttacaaggtttttatttacaatgagtttattgggaggt
-gaccccattgtaacttgagaaatatctCTGTGTGTGTTTGTGTAAataag
-gaactggttcacataattatggagccagaaaagtcccacaatgtgccacc
-tgtaagccagagacttaggagaactggtgatgtcattcggttccaataca
-taagaaccaggagagctgacagtgtaagttctaatgcaagtcaaggacaa
-gatggctgtcccagcttgaaaactgttgggcagagaatgacagtgacttc
-tcccttacccttcctttagtgtgattcaggtctccaacagattgagtgat
-ggccaccacactggtgaaatcattgctgaaatcattgctttactcagtcc
-accagtttgaatgttaatcccaatccaaaacactctgaaagatacaccca
-gcatgatgtgtggccaaatatatgggcatcccctggcctaattcaagttg
-actgataaatgaaccatcccaGGAGATGACccgcctgggatcaaatccag
-actgcactgtttcccagctatgagatgtgggctgagtttctctgtgcctc
-atgctcaaaatgaggataaagagagtaactaccttgtagggtttacaagg
-taagtaccttgaggttaaaatgaggaaattcctgcaaagggcttggaaca
-CATCTTGCATGTTACACAAAGGTGCCACCAGATCATTCTCATCCCTGCAA
-TCCTCTCTTCAGCCTGTGACTCCAACTCTCCACATCCTCATCATCTTGCA
-GGAGGTACGTGGCCCAGTCCCTTCTTCCCTTCCACGGACTCCCGAGTTGG
-GACAGAAATCATCCTTGGAGAACACAGTTTGAATTAATTAATGAAGTCTC
-CAAAAAAAAAGTTTCATCCTCCTCCCTTGCTATCTATCAAGCAACATCAG
-CCGCAAGAAATGAGAAAACATTTTTCTTCTCTAGAACATTCTACAAACAA
-GCCttaatttaaaaaaaattaaaaagttttaaaGCAGCAAAACTGGAAAC
-ACATAAACCCCCTCCAGAAAGTAGTTAATAGCAACTATTAAACATATAAA
-TGAGTGTCATGATTGATTTTCTTCTGCACAAACCAGAGGGAATTTACAGT
-GGGCTCTGTGCTATTTGGCTTAGGGAGTATCTAGAAAGAAGGGTGAACCT
-CATGGTTTCAGAGATATACAGGCGTTGACCTACATTTCACTGCTATTTTG
-GAAGATTAAGACCACAAATGACATAACAGTTAATTGACTCTATAAATTTT
-ACATATGAAAAGAAACATTTTCTTAATGAGTGTGAGTTTGTAATTTAGCT
-GCATTTTAATAATGGCTTAGAAAATTGAAAAGCCTGACAAACACACGATC
-GTTTCAAAGCTAGATCACATGATGCGATTGCCTTGGCCTTGACGTTGACC
-TTGTCCTCCACTCAGGGAGTGCACCTTACGGAGACACCCCAGGCCAACCT
-TGCTGGAAGAAATTATAAGCTCCCTCCAAATTCAGCGGGCCAGGGATGGA
-GCGGCGGCTCACATCCTAGGTGTTCAGGTCCCCAGGACTCTTTCTGCTTC
-ATTCTTGCGTTTGTCAGCTTTTCCCTTGCATTGAGATGCACACGTGTTCT
-GTAAGGTTTATTCTTCCTTCATGTATTCATATGTGCTGAATACAACATGG
-TAGTCACATTTATTCCTTCCttcatttatttaacaaaggttaattaagcc
-ttatgtcctgtgtactttgctagggactcaggttacagcagtgaggaaga
-cactcactgtctggacctcctgaaggttacttggaagtagaagaggggga
-catgaaacaaagaaaAGCAAGGAAGAAGGAAATAATCTGAGAAAGAACAA
-AGGGTTGAGCACTTTGATAAGAGCCATCAGAACAGGCGAGCTCTCGCAAT
-GTGCTGTGGGTGTACTCAGGGGACCACCCCTGAGCTCGGTTTCCCACTCG
-GCCTCCTCCAACCCAGACCCACAAAACTACCATTCAGAGTTATGTGTCAC
-CCTGGATCCCAACAGCAACCCTGCAAGGTAATCACTGTTTCCTGTTGAAA
-ATGAACTCCACTGGTTTAGGGATGTGGCTCACACGGCCCTGCAGATGTGG
-ATTCAGGAGATTCTCTCTGATTCCTGGCTAGTGCCCAGCCACTCTGAATC
-TCTGTCTCTTGCTGGGGTGGGAGAAGAGGTGGTGATTTCAGCTCTGCAAG
-CTGCTTCAAGGTTGGCCTTGCTCTAGTGTCCCCAGAGCCCCAGGCACAGG
-CTCTGGCTGAGTGGCCTTCATTACTACTCCTTAGACTATATGCACTTTTA
-ATGTATTTCTCAATCAGGCCTCTCATCATGCTGCATATAGTAGGTGCTCA
-ATAATTATCCAAGGAATGAGAGAATCAAATAATAGTAGGTGCTTAATAAT
-TGTCCAAGGAATGAGAGGATCAAATAACTACATCAGCTATTTGCAACACC
-AAACTGATTGAAGATCTTGTCCTCTCCCTTCTTCCTCAACACAGTCCCTA
-AGATAAAACAAAATTCCAGATGCATGCCTGGCATGGAACCAACAACAACA
-ACAAACTTCATCCAAATGATACAGCATGAACCTGCAGCTTCCCCTTGCAG
-AGAACAAGGTGGCCACACGCTTGGTGTGGAGCTGGAGCCGGGCAGGACCT
-GGGCTTCAGCAGGACACAATCCTGCTGGAATCTCAGCTCCACAGGCTGAG
-ACATCCCTGGACGCCTTCGTCTCTTCTCCCGGTCAGAGTGACGCACAGCC
-CATCTTTCTAAAAGCAACAACTTGCTGGGCCTGAAATACTCAGAGTCTGC
-GAGGAGATTAGCAAGACTCCCCTCTACCTCTAAGTCTCTCCTAGATGTCA
-AAATGTTGACTTCGTCCCTGCTAAAATGTGGCTCTGAAAAAAAAAAATCA
-CATCTTTTCAAATTCTCTGCAATCCCTGTGTCATTTGCAGCATATGTTCA
-CGCATAATGATGTTCCTAACTGAAGTGACATTTCAGAGTAATGAGCCTTC
-AGTGACAACGTGTGAGAGCTGTGACAAGTTTTCTCTAATATAAAAAGGAG
-TGTAGACAAACCAAAATCCACAGCCAAGACCTTCCAGCTGCTGGGGCTCC
-AGTGGGGCCTGTGAACCCTGTGCGTGTGCAGCAGGCCTGTGGCCCCGTGG
-GCCGGCCCTCACGGTGAGCACGCTGGGAACTCACGCGCACCCTCCTACCT
-GCTGGTGCCTGTCAAGTCCCACGTGCCGGATGATCCCACAGGGTTGGAGA
-GAGGGAGGGAGGCAAGTGCAAGGCAGGGACCCGGCAGGAGTAGAGCCGCA
-GAGCTGGGCCGAGGCTGCTAGAACCCCAGCCAGCAGACACCTCGGCCAAG
-CGACTTCACTTCTCTGATCTTCTCTTCCAAACGGGACGATAACAGCCGCC
-TCCCAGGAATAAACCAGACAAATTGCTAAAGAAACTCCTCACGGGGCTGG
-CACACAGGGGGTCTGTGTGCCATAAATGGAAACAACTGCTTTTATTTTTA
-AATGTATCCTACTTTTAGCTAAAGCTCAAGGATCCTCTAAGTCAAGGATT
-TGGGCGACAGACACCTTGCCCGCTTTGCCTCCTGAGAGGAGGGCGTTGAT
-GGCCTTCGTCTGACAAGGTAGGAGGTGGATGCTGGGGTTGTCCCAGTGTT
-GCTGCTTGGCAGGGCCTCTTGCTCAAGACCCCCGAGGACCAGCCCAGGGT
-GGTGGGCTCCACCCCATGAGAGCCAAGAGGATGCAGTTCACCTGGGGAGC
-GAGGTGCACAAAATGGCCCTGTGCTCTGCCCCGTGGGAGACCTGGTCTTC
-CTCCTTCCCCAAAGGGGCCAGCCTTTGTCCTGGGGGCAGTGACGCCAGCC
-TGGGCCTCAGGCCTGGGCAGAGGGAAGGCAGTGGGGCCCACACCCTCAGC
-TATGGAACTCTAGGACCGGGTGCGTGTCCTGGAGAGGTAGGGCTACTCTA
-CATCACATCCCAGTGTGCACTAGGGCCCATTAAGAGGGGCTAAAGAAAAT
-TCATCTCCTTCAGCTCTCCCAGCAGATCTGTTTGATTTGGGGCCAATCTG
-CATGGGAGGCTGAGAAGGAGCCTTGCTCAGCTGAATGTTCCCTCATTACA
-TTTTCCCTGGGGATTGGCACCAGGAGCTGGAGTCACCTTCTCCCCTCAAC
-ACAATTTATGTGCCTTCTCGGGGTCATCCCCGGGGTCGGAGACATGAGGC
-CCATCTATCTTTGCTTTACTTCCAAGTCAGAAGCTCCTTGAGTAACAGAA
-TTTGTCTTCGAGGTGAGTGTAGGGACAGGGTCATGAATGTAGGGCTGAGT
-TTAATGCACACATCCTCGCCCTTGAAGAAACAAGTCTCAGAAGAAGCCTG
-TTCCAGTCCAGCTGCAAATGAAAGCCAAGCTGGGTGCCAGCCCCAGAGGT
-GAAGGAGTGGGTGTTGACTTCAGCTTGGTGCAGGTGCAGCTCTCTGGATT
-CCCCCCGCCAAGCTGGGTGCCGACCGCAGAGGTGAAGGAGGTGGCTGTTG
-ACTTCAGCTGGGTGCAGGTGCAGCTCTCTGGATTCCCCCCTGCCAAGCTG
-GGTACCAGCCCCAGAGGTGAAGGAGGCAGGTTTCGACTTCAGCTGGGTGC
-AGGTGCAGCTCTCTGGATTCCCCCCGCCAAGCTGGGTGCTGACCCCAGAG
-GCGAAGGAGGCAGGTTTTGACCTCAGCTGGGTGCAGGTGCAGCTCTCCGG
-GGCCCTACCTGCCCCCAGGTCACTGGTGATCTGCCCTCCTCTGCATGGCT
-TCTGTGCCTGGTCCACGGCCCTATTTAGTTATAGTTTTGTCTATttgaat
-tgtggcccctaaatgatccattcatgaagaaccttggaatgtgggattat
-ttggaataaagtctttgcagaagtcattaagatgaggtcatcctggatca
-gggtgggtcctaaatccaaagagaagtgtccttgtaggagacaaaagaga
-aggcacagggagaagaggtcatgtgaagatggaggcagaggctggagtgc
-tgcgtccgcactacagggaccttgatatcagactccggcctcccatgctg
-ggagagaagaaatgtccattgttttaagctgctaggtttgtggccacgtg
-ttatCACCCCCTCCCCCCCACACCCAGGACACTCACAGGCCAGCCCGCTG
-TGAGCTTCTCATCCGTGTCCTGTGTGCCGACTTCCCCAGGAGACTCCCAT
-CTCTTTGGGAATGCCCGTCCACTAATTAGTCATGTCTTTGTGCTTGGGTG
-CCAGTACACAGTAGGTGTAAAGCTTGTTAAGCCACACAGTTCCGGACACT
-TGAACATGGGGAATCTCTTGGAAGATACTCACTGAGAAAAGAGAAGGCTC
-TATGGCTTCTCATCAAGGAGGAAGAAGGGCTTGGGAGGAAACAATTGAGG
-GGAACAAAGGAAGGGGAATGTGAGGCAGCTTTTAACCGGCATTTCAAAAG
-CAGGAACCCTGGCCAGGGCAGGCTTGTGAGGGAGGAGGGCATGTCCAATT
-AATGAGACTCAAATCACTAAAGCAAGTTCTTCTGATCTTTTAAGGAGCAG
-AATTCAATGCTGAGACACAGACAGTGGGCTGTGATGAGGCTGGGGTGGGG
-ACAGCGATGACCTACCCAGTGGCAGGCGAATGATTAGGGTGGGAAGTGCT
-GTCCCAGGGACAGGCAGGCCTGGGAACCCAGTGACGTCACTCATGTCATG
-TCTAAACCCCTTTCTGCCATCTTGGCACCTCTGCTAGCTGATTAAACACT
-CACGGAGGGCTGCCGGCATCCAGGAGCCACCTCTCCCTATACCTTGTGCA
-AGGACCGTCCCTACCTCCTGTGAACAGAGGTGGGTAACTGAGGCTTCCGT
-GAGTGCTCGCTGAGCTCCTAGCATGTGCTAGGTGCTCTGGGTACTTCACA
-CGCTGCCCCAGGGCTCTCTGGCCCTGCCTGTGCGGTGGTGGCATGCAGTC
-ATATTCagagacgtgctgtatagcacggtgcctgtgtttaatagtccagt
-ctcacacactttaaaatacattagaggagagacctcatgttaagtgttcc
-taccacaTACACACCCTCACACCCCAACACACAGGCACACACCCTCACAC
-CCCCCTCCCCATTcacacacagaagagcagcgggaaatttggcaggtgac
-gcatgtctttagtacttgatggtgaagatggcatctcaggcacacgcctg
-cgcccacactcatcgaaatgtatcctccaaatgtgtgtgatttttgtatg
-ttaattatagctcaataaagttTTAGAggccgggcatggtggctcacgcc
-agtgatcccagtactttgggaggcgaggcgagtggatcacctgaggtcag
-gagttcaagaccagcctggccaacatggcaaaaccttgactttaccaaaa
-aatattaaaaattagctgggcgtggtagcaagcagctgtaatcccagcta
-ctcaggaggctgaggcaggagaatcgcttgaacccaggaggcggaggttg
-tagtgagTGTCTCTATTTTAACAAGCATTTGGACAACATCATCTCCTGGT
-TGTGCTGCTTGAATCTTGGCCTTCCTGAGAACATTGGCCTGGTTCTGGAA
-GAGCCAGGCTCCCGTGTGGTTCCTGGGAGGTGCAGACGAAGGTGAGGACT
-CAGAGTTCCCTGCATGTCTGTGCACAGACAGGTGACTTGTCCTGAGCACC
-AGTACGTGTGGCAGAGCCCAACCCCAGCCCCAGCCCCTGTCCCCCATCAG
-CCTGCCTGTCCTGCACCCCAGGGCTTTCTGTCCAGCATCATGGTGCCTGG
-CCGTGTGCCTCCAGGAGCACTGTGAACTTGCTGGACCATGTTTTGTCTAA
-TTTTAACCTCGTCGAATGAGATGCAATAGTATATGCCCCACAGGGCATCA
-GGGATGAAGCTTCCTGATGCATGATGTGCACCTAATAAGCACAATGTCCA
-CCCCTCCTGTTGAACATGCACTGAGGAGAATGGGTCCCTGTGTCTCAGGT
-CAGGGGCAGCAGCAGCATCACCAAGCTTGGCTGAATCACCCTGGCTCACC
-CTCTGGCAACATGCAAAGACCAAAGCCTCTTGTGCTCCTTCTACCATGGG
-GGCTGCAGTGTCCCATGCAGTGGGCGCTTCCTCAGGTCCACCATGGAAGG
-AGCTCCCTCAAGTCCTGCAGGGATCTGAGCGGCATGGTCAGGGTCTGTGG
-GTTGCAAGCGTGGCCTCTGAATTTGGGAGGCACTCAGGGTCTCCCTCTCT
-GGGTCTCCCCACAGGCACGTCACCAGTTggagtcttactcttgtcaccca
-ggctggagtgcagtcaaaggatcttggctcactacCGTcgcctgtagtcc
-cagctacttgggaggctgaggcaggagaatagcgtgaacccgggaggcgg
-agcttgcaatgagccgagatcttgccacggcactccagcctgggtgaaag
-agcgagactctttcaaaaaataaataaataaataaataaataaataaata
-aatagatgatagataaataaaAATAGAGACACCCACTGATTAAAAGTTGC
-AGAAGCCTCGCTATCCAGATGCATTTACTCTTTGAACATTCCAGGATTTG
-ACTGAGCAAGGAGCAGGATTCAGTCAGATGCTCTCAGGCCAGCTGAAAGC
-TGCTGCTGCCTTGCCCACCCTAAGCATTTTCttttaattttaattgatat
-gataattatacctatctataaagtgtcatgtgacatttctgtgtatgtaa
-acatcatgtaatgatccagggtaattagcaaatccaccacctccaacatt
-tgtcatttctttgtggggagaacattcaaagtcctctcttctggctattt
-tgaaatctacaacaccttactgttcaatggtcacctcactgtgcaatgga
-acactgggatgcatccctcctcctaactgtaccttagcatcctttgacca
-acctctccccatctccactctccccactcctcattccccagactctgtaa
-ccaccattctgctatttctataagattaactttctGTTTTTGAAGGTAGT
-TTTTTTAAAAAAAAAAatttcaataggtttttggggaacaggcggtgttt
-gggaagcagatctttagtggtgatttctgagattctggtacacccatcac
-ctgagcagcagtgtatactataccctctgtgtagtttttttttttttttt
-ttttgaggcagagtctcactctgtctcccaggctggagtgcagtggcctg
-attttggctcactacaacctccacctcccgggttcaagcaattctcctgc
-ctcagccccctgagtagctgggattacaggcgcgcatcaccatgcctggc
-taatttttgtattgttttagtagagacagggtttcaccatgttggtcagg
-ctggtctcaaactcctaacctcgtgatccacctgcctcagcctcccaaag
-tgctgggattacaagagtgagccactgcgcctggcctatgtgtagtcttt
-tatccctcacccacctcccatccttcccctgagtccccaaagtccattgt
-atcattttataagatcaactttttaagataccacatatgattttgattat
-acggtacgtctctttctgtgcctggctgatttcacttaacataatgtcct
-ccaggttcatccacattgctgcaaatgacaggacttggttattttttatg
-gctgagtattattccatcgtgtCTgaggaggcaaagaaaaggagaattta
-tacaccgtttgtgggaatgtaaactagcgcaaccattatggaaaacacta
-tggagatttctcaaaaaattaaaaatagaactatcttgtgatccagcaat
-cccacttccgggtagagcatagattgaagtcaatctgtctctatctaact
-gaaatacctgccctcccaagtcaatttgagcactattcacaatagccaag
-acacggaatgtaccaaagcgtccatccccaaagagtggatccagggaatg
-tggtgcataCGCCATCGGATCTGTTCCTGGTGCTCTGTCTTGCTTGCGAT
-CAGCATCTCCCTGCTGCTGTGGTGCATGTCGGCCGCACAAGCCTGCCTTT
-ATCTAGCCTGTTGAGGATTTAGAGTCTTAGATCCAAATTGTGTGTAAAAT
-TGCATCATCAGGTCCAGAGAGGGAAGGACCAAGAACCCTTTTCTTGGGCA
-ATGCGAATGGAATTTGGGACTTGTACTCTGCGGCTCAGAGCCTATGCATT
-TAACCTCTTCATCTCCCAAGACATCCTGGTGTCTTATCTAAACTTTTGGC
-ACAGAGGAAACCTTTCTGCACTGGCATGTGCTCACGGACCAGGCGGGGAT
-TCCTGAGTGCGGCTGGTGGAAGGGAAGCTCATCCCAGAATTTATATAGCC
-CCTTTCCCCAAGGAGCCCCAAGCCTTACAAATGCCATCATTTTAGCCTTT
-TATATACTCGTTACAGAGGTTTCAGAAACATTTTAAAATTAGACAAGCCT
-TAGCGTAGCTTGTAAAATTAAAAATAAACTGTAACAGCTTTAATGATGTT
-ATATTAAATGCCGGGCCTAATATTACCTCCCATTTCTTTAATAGTTTATG
-GCTTTAAACACACTTTTAAATAACTTCGCATCATGTACAATTTTCAAAAC
-AACGTTGTCTGGCAGCAGGAGGGCTGCCCCGTCTCTCACGCTGGGTGGCT
-GGCAGCTTGAGGCTCGGCTGCTGTGGGACCAAGGATGGATTTCCTGACAG
-AGACCCAAGGTCTGAGTGAAATTCTAGAACCTGCCACCGTTGGTCCCTCC
-TGCCATGACCCCATCCTCAGATCCACACTGTTGACCCCCTGCCACCCTCA
-GATCCCTCGGACCACAGCTCTGGGCCTCCCCTCATCATTAATCCTACCTG
-GAGAGAGGATGGGGTGCTCTCCCTGACTTGGGAGCTCCAGAAGTGCAGGG
-ACTTTGAGTGCTTTCAAGTGCTGTAGCCACTACCCATGGGACAGAATCCC
-ATGGAGATAACCCACACTGGCTACCCTTCAGGGTCTGCTGTGGGCAGCCA
-AGGACAGGCTTCGGGACTATCCCCATCCCTCTTTGTTCCAACCCTTGCCT
-CTCTCCAGCTGCATGACTTTCAGCCTCGCTTCTTCATCTGCAATGTGGTA
-ACAGTGCCAGGCAGTGTCATCATCCATGCAGGTGCTCGGAGAACGTGAGC
-ATTCCTGAACTCCAGCACCTTGCCCATCCCCTCCCAGTTTTAGGCAAGct
-tttcttttcttttcttttcttttcttttttcttttttcttttttttttga
-gacagagtcttgctctgttgcctaggctagagtgctagagtgcagtggtg
-cggtctcggctcactgtgacctctgcctttcggggttcaagcaattctct
-tgcctcagcctcccgagtagcttggactacaggcatgtgccaccatgccc
-ggctaatttttgtatttttagtagagacaggttttcaccatgttgaccag
-gctggtcttgaactcctgacctcgtgatccacctgcctcagcctcccaaa
-gtgctgggattacaggcgtgaaccacttcacctggccTTAGTCAAGTTTT
-TGAGCATTTCATGGGTGATGATTCTCCCAGTCCTCATCCTATGGGAGGTA
-GCCATGGCAACCCACCCGTATCTGCCAAGGACTCATTTTCTCCATGCCCG
-GTGCCTGCTATGCCACAGAGGGGATGGCTGCCTGCCAGTGGGCAGACAGA
-ATCCAGGTGACTTAGAGGGTGTTTAGGAGGGAGGGCTAGGCCACCCTGAG
-CTTGGTGGGAGACAATGGGGCTGACTCAGAGAGCAGCCAAGGTAggacag
-ctccctccccatccctggtcctgatttctcatctatagcctggggagatt
-gacctcagtgagctctgaagccccctaaccctgaaaccccagggttccat
-gCAGGACCAGCTATAAAATTTATGGGTCCTGGTGCAGGAATTTCAAGACC
-ATGGCGAGTGGTCTCAATGCACCTGCAAAGGCTGCTGTGCATGGTGCTGG
-CCTGGGCTTAATGATTGCAAAGTCTTGGAGGAACAGGAGGCAGGGGACCT
-GGAAGGAAGGTGGGCGGCAGAGTAGCAGCCTCAGCAGGACTGAAGAAGAG
-TCGCCCTGGCCACTGGAGCCCCTTCCCTTCCTGGAGAAAGATCCGTGTGC
-AGGAAGATTCCAGAAGTCCTCAAGGGAATTACAGGCCAGCCTCTGCCACG
-GCAGGCCCTGATCGAGGCCTTGCATGCTTCTACTCCTGAGCAACAGAGGA
-CTGTCTTCTCCCTCAGCTCTGGGCATTTTTGCTAACCTTGATCTCCCCAG
-CAACAAGGGGGAGGCAACAGCAGTCATCATGTCTGGGGCCTCCAAGGAGC
-AGATGCTGTGCTTGGCTCTACTGTTGACGGGCGTTATTTCATTTaaatag
-cttttagcatctcagggttatagattgcagagcagagtctcagaaatact
-gagtgacttgcctgggttgccgagaatttggtcgtggtggggccaaaatt
-tgaaaccaggcagctacctccaagagcccaggctcttGACCTCCTCCTGT
-GGACTTAGGTGGGTGATCTTACTGAGAGCCCTGGGCCTCAGAATGACACT
-TCGGATCAGCCACACTTGAATCCATCCTTTATGACTTCAGAAAATTCCCA
-TAGCTTTCCAAAATCTCATCTCTTTCTGCACTGTAGGAAGAGCGTTCAAA
-AGGAGGCTTGTCAAGAAGTCAGGAGAGGCTGAATGCAGTGCTCCAGGCAC
-AAAACCTGCTCAGCGGAGGAGCTCCACCAAGAGCAGGCTGGCTGCTACTG
-TTTTCCTTCCCTTTCCTCCTCTGATCCCTCTCAACCTTATCAGAGATGGA
-ACTGCTCCTCCTGGCATTTTGTCCACTTTTTTCCATTCCTCCTCTTTCCA
-GTGGACCCCACACCAGCTATTTTTTATCCACATATTTCCTCTGGGCACAT
-AAGCTTTTGCTCAAGTCATTCTTGGTATGATGGCTTGAAAATAGCAGAGG
-AGCAGAGTGCAGCGCCCTCCAGCTGCTGAAAGACTCTCCTTTCCCCCCAA
-CTCCGCCCCCACCATCACAGCAGGTGTGCCTCCCAGTGTGATGACCCTGC
-GGGAGTCACGTGGTGTGGTCCACCCAGGCTCTCCGTGTGTATTTTCCTGG
-AGACCAGATTGACATGAGCTGAGAGTTGGGCTCTTCTTTCATGCGCAGGC
-TGTGACCTGGGATTTCTCTTTTCTGCAAGTGTGAGACAACAAAAGAAAGG
-CTCAAGGTATCATCAACAGCCATCTGAGCAGGTCCTGAAGAGGTCGGGCA
-CTCTGACCTCTCTCAGCAAGGATGCAGACATGTTTTCATAACTTTAACTG
-GCCACCCAGTTGCTTCAACGGCCGACCGGCTTTAAGAAAAGGTCTGTAAG
-GAGAAAATCATTTCTCCAGTTCTAGCAAAGTGAAGGCTTATTAGCAACGG
-TGCCGTCAGGTGATTTCCACACTGATATGCTTCAGTAGCAAGGGCACGGT
-CTTTAGGGAAAAAAAGCAGGAAAATTCCTTGAGCCAACGTGTCTACTCTT
-GACCACACTCACCTTGTGTGGAGTTAACAACTGGCCCCTGGGTTTCCTCC
-ACTCCCTGGGACTCACTTCCTGCTCTAGCCTGGTTGGTGGCACAAACCCC
-ATCACCTCTCATTCTTAGTAGGAGCTGGCAGGTGAGTGCTGCCCTCCTCT
-TGTGTACAGGGGGGTCACCAAGGGCCTGGTGGGAGTGAAGGAGCCCGGTT
-GGAGAGGGAGACGAGGTGCCCCTGAAGCCACTGCGTTCAACCCCATAGCT
-GTGCATTTGGACTTAAATTCTCTCCTGCATCAACTCAGGACTCTGAATCC
-AGTACTCAAATAATGCTCACCCTGAGCAGCCGGTGTGTCTCTCCTGCCCA
-CTTCCGTTCATGGGTAGATTCCCAACCTTGCTCCTTGGCACACCTTTCTG
-GTTGTCTTTTCTGACTCCCCACCTTCCATGCATGCCAAAGCACAGGAGAC
-TCTGTTCCAAGCTGCCTGTCCTTAGCAGCCAGCTGGAGTCAGGGGCAGTT
-TGTGCATCTGTGAGCTGGACATAGGGATCCTTTCTGCCAGAGCTTTTGTC
-TCATCTCCCATAAATTCATTTTTGCTTTAATGACATGGCTTCTTGCTCTC
-AACCTATGGCCCTCAGAACAAGTTTCCAATTTCCAATTACTTAGTCTTAT
-GATTTTCAGACTGTGAAAGTTATACAACAGGACCTCATTTTTTAACCAAT
-TACACTGCTAGAGCTGAAGATCATAACTTCATAAACATCTATAGTCATTT
-TAGTATAGCAAGATACTATAATAGATTTTTTAGTATAAAAATAAAATAGG
-CTACTATAATTTGTTTATTTTGAGGATAAACGATTCAATGTAGGGTTTCA
-AAATATCTGTGTAATTATCTGAGCAGTGTTTTAATCCATATCAGAAAATT
-GATTTATTTTAGTTTATTACAAATGCTTAGCAAATGCTGGCTATTTAATA
-ACTCTTTCCACCCAAGATCAATATGATCTTTACAGCATAGGGATAACAGT
-ATCATTTGaaaataaatttaaagtaaaaataattttaCCCCAAGTATTAT
-CAAAGTCTAAGTCAGTGAAATTGAGAATTAACCTTTAAAATAATGTCAAA
-AAGTCTCTGAATTCCCATTTTCTGATGATTGAGAAATATAATGTATTTCC
-TAAAACTATGTACTTGTTACTAATTTTGTTAGATTTGAATGATTTTCTTT
-TCATAGAATAGTTTGTTTCTTACATTTTTCTTGTTTTACTTTTTCCTGGA
-ATAACTTATAACGCtttttttttttttgagacggtgtcaccctctgtcgt
-tcaagctggagtgcaatggtgcaatctcagctcattgcaacctgtgcctc
-ccgggttcaagtgattctcctgcctcagcctcccaagtagctgggattac
-aggtgcacaccaccatgcccagctaatttttgtatttttagtaatgacag
-ggtttcaccatcttggccaggctggtctcgaactcctgacctcaggtgat
-ccaccctgcctcagcctttcaaagtgctgggattacaggtgtgagccacc
-atgcccagctGATAACTCAtttttaaaataaactttttatttagaacatt
-tggaagtttcaaaaatgttgtgaagatggtataaaaagtttccatgtaca
-tgcccagtttcccctattattaaatcacacatagtttagtacatttctga
-aaatgaattggtacattgttacctaaagttcatactttagtcagatctta
-gttcctacctacaggatcccatggaggatctcgcccaggacaccacatga
-catctggctgccgtggctcctgaggctcctctggtctgtgaccgggtctc
-agacttttctcctttttgttggcctcagcagttgtaagccacgcatcctg
-cagaatcctactccgttgggatgtatctgatgcttccattattacactga
-ggttttgagtggggcaagactagacaaagaggtgaggtttcattttcatc
-acatcccatcaagactacattctgtcaacatgacttatcactgaggacat
-tgaccttggtcacctggatgatgtgtgcttgccaggtgtctccactgcgg
-ttcccctttcccaccattctcgtattgtaatcttcagtaggaagtcactg
-tgtgcagcgtgtgcttagggaaaatggagctgcacatgtagacataggtg
-acggagcatctacatgaagtctttgagattcttctgcatgcgagattcac
-ctccgtttccccttgtatttatttattcaatcatctacttatatcagtat
-cgactcacacatatttattttatatgttggattttaatccaatactattt
-aattttgttgctacaaatgtgtcagctttggccatggggagctctttcaa
-aggactcttgaatccctttgatgtatccctatcactgtgtcattgtgtgt
-gtgtgagtgtgtgtttagtgcttccttactttctggcactataagaagct
-ctaagtacatcttctgtatatcagtccgagaatcagacatatttctttga
-gaagtcctggttccttttatggagactggtactggaaaccaagatctaga
-cgctgcgtatcccattgctactagggtgccatcacttctgacagagcaag
-gaaatgtgtgtttataaacatacctataaatattcttatatttaacatcg
-ctatcaatattaagcgaaaagagagttgatattgatcatgccaactccaa
-tctgtttccatgcgggccattctagcctcctccccttgcttacctctaac
-ctcctactccaacagtgaaaaaacccttacttaaatgttcaattacagta
-cacatagacagtggtttcagagttgttatgtcatgttctgtgagaagcaa
-ctgtgtcaactaaagcacagtgctgtgcacagcttcttttgtctctagtg
-tcactgaccactgacttccaaagttacatgcatcagcttctttctctgac
-atcctcttccatgaggctgcattatacattttagtgcagttagattattg
-tgtcacattcttcattccatcccattatttccttgagctccttagggata
-tttttttaaaattatatatatacacataactatatatatattatatataA
-TCCTCAATCTCGcttcctgaatctgtggcaatcactgatatatttactat
-cttcatagttttatctttgcctaaatgccacataattgaagtcacacaat
-atggatcctttttaaactgacttttattcagcaatatgcatctgagatgt
-atatgtctttttgcagcttaagagtccatcttctatgctattgctaataa
-tatggtatcgaatagatgaattgtattttgcccgtcacttcacctattga
-aggccatcttatttgcttccagtttttggtggttgtaaatatggctgcag
-taaacacttgcatgagtatttcttgtttgtttgtttgtagaaataaattt
-tcaaatcagttgggtaaatatcaggagcatatttgctggatcagacggta
-agattgtgtttagttttggaagaaacttccaaactgtcttccaaagtggc
-tcgaagaaacttccaaactgtcttccaaagtggctccatcattttacatt
-gtaactagcacaattactcacattaatgtgtgagtttgtgttactcccat
-ctttgcccgcaatgggtattgtcctttttttaaaattttagccattctga
-tataaatgtgtcgtggttcacattgttgttttagtttgcagctttctaat
-gatagatggtctagggcatctttttctttgcttatttgccgtggcccaat
-ttatttcatgatgtgtctgcttagatgttttaccgatttttgaattgggt
-ttcttgttttcttattgctgagttcgaagcatattttatacaaattttgg
-tacacatcctttatcaaattgtgttttgcaaatattttctcctagtctgt
-ggcttctcttaacattgggtttaataaagtagaagttttccgttttaata
-agatccaacttattatttttttctaaattgtgttttttggtgttgtatct
-aaaaacacatcaccaaacgcaaggtctcatataattttcctaggcccgtt
-tctcctcctcctcctcttccatgtctttctatgtatttttcttcttccta
-tgtctagagttttgaattttacacttagatctatcatccttttttagtta
-atttttgtgaaagttttaaagtctgtgtctaagtttattttattttaata
-tggacttccaattgttacagcacaattagttgaagagatgatcttttcta
-tattaaattgcctttgctcttttgtcaaagatcaattgactatatttctg
-tgaactctttgttctattccattgatcgaggagtctattcttttgccaat
-aaaacacttttttttgattattgtagctttaaagtaagttttgaaatcaa
-gtagaagccctccaactttgttcttcagtattgtattgacgattttatcc
-ctttttcctttccatataaactttatcagtttgtcaacatctacaaaata
-atttcctgggattttgataaggattgtgttgaatctttaggtcaatttga
-gaaaaattgttatcttaacaacattgagtcttgcaatccacgaacacaaa
-gtatttattcctttatttagataattgatttattcatctgtgttatgtag
-tttttctcatacagatcctatatatattttgtgagttatatacttatata
-tttctatttaactatatattgggctattgtaaatgctattattttaaaat
-ttcaaattacagctgtttattgttggtatattggaaagcaactgactttt
-gtgtattagtcttttatcctgtggccttgctataattgcttattagttcc
-aagagtatttttgtttattctttcggattttctacatgaataatgtcatg
-tcatctgtgaataaaggcagttttatgttttcctttcaaatgtatatact
-cactttttatttccttttctcatcttactgcactagctaggattttcagg
-atgatgttgaataagagtgtaaagagaagacattctcttatttttgcctt
-atttccaatcatatggagaaagcattcaatttctcaccactgtgtcatat
-tagccaaaatttttaaaaaatatgttctttattaagttgaggaagttctc
-tctattcctagtttgctgagagtttttgtcatgaaaggatgtgggaattt
-gtcaagtttagcactaataaatatcacatgaattttcttgtatagacagt
-tgatataatcagttgcactgactgatttttaaatgttgacacagtcttgc
-atacctgggataaatcccactcagtcacattgcacaattattttatgcat
-tgttgaatttgccttgctactattttgttaagtagtttggttataagaga
-ttttgctctgcagtttttcttgttacatctttttctggttttgatattac
-tgtaagactggcctcagagaattaattaagagttcttccctctgttctgg
-aagagtaatattttgtagccatattagttcattctcacattgttataaag
-aaataccaagatgggataatttataatttataccaataagaaaataagtt
-taattggctcatggttctgcaggttgtacaggaagcatggcagcatctgc
-ttctcaggagacctcaggaaacttccagtcatggcagaaagcaaagagag
-agcaggcttgtcacatggcaaaagcaggagcaagagaaagcgagaccaga
-tctcatgagaactcactcactcactatcaggaggacagtacctagaggga
-tggtgttaaactattcgtgaaaaatctgcccccatgatccaatcacctcc
-caccaggctccacctccaacactggagattatatttcagtatgagatttg
-ggtggggacatacatcgactatgtcagtagataattggtatcatggcttc
-cttaaaggtttttggtagaattcaccaatgccatcatctgggctttgttt
-cttgtcattgctgttgtcattgttgttgaaaggttgttcattattgattt
-aatttatttattagctatttacctattcaaatgatataattctcattgta
-tgggttttgatggtttgtgtctttcaagaaatcagttcactttatctaaa
-agatcagatgtgtggagttggagttttttatatctgctttgtttccattt
-taatgtccctggattcagtagcgatgaccactatttcttctatgacacct
-gcaatttgtgtcttctcttttcattggttagcctgcttagaagtttatca
-attttacaaaacttttccaagaaccaccttttaattttattgattttctc
-tattgcttttctggttcaatttcattgacttcttgtttaaaatttaaaat
-tatttcttttcttgttcttgctttataggcttcagttgtagtcctttctc
-tagcttcttcacattggagcttagattattgattttagatctttcttaat
-ttctatgatatgtatttaatcctatgcatttccttttaatcactgatttt
-actgtatcccacaagttttgatgttatcttatttttatttagttcaaaat
-tgttttaaagtttgtttataatttctttggcttatgtgttctttagaaga
-gtattatttaatcttcaaatatttcagcatctttcagctatctttctgct
-ggtggtttccagtgtaagccctttgttttctgagaacatattttgtatga
-ttcctagcctttgaggtgtattcatggcctgggatgtggcctatctttcc
-gagtattgaatgtgaacttgaagggaatgtgtattctgccattgttggat
-gaagtgttctataaatgtcaatgagatctagtagattaatagtgctgctc
-aggtcaactctacctttaatgattttctgcttgcttgatctatcaattgc
-tgacagagggttgttgaagtcttccaatgtaatagaggatttgtccattt
-cttcttcccttttctttccctgaagtattttgacactctgtctttaggta
-cacacacttttaagattgttatgtcttcttgaagaattgatgcttttatc
-attatgcaatatttctttatcactgataatttttggttgtttgtttagaa
-gtttgcttttgagattcataaagtgactacagacagctttcttttagtta
-gtattaacatggtatagctttctctatcccttttcttttaagctagctga
-gtctttatgtgtaaagttggtctcttgtaataacatgtacttgggtcttg
-ggtttttttaatccactctgacaatctctgtatttcaattggtatattaa
-gactattcacatttaaagtgatttttatataattttattaatatttacta
-tgtttgtgatgtttgcgttttacttacacttgttctttgtttctttttaa
-agaaatttctctttttgccttctgtgctttgaactgagcattttataaga
-ttctattttaggcttggttcggtgtcttatgcctgtaatcctaacactat
-gggaggccaaagtgggtggattacctgaggtcaggagtttgagaccagcc
-ttgccaacatggtgaaaccctgtctctactaaaaatataaaaaattagct
-ggatgcagtggcacacatctgtaatcccagcaactcaggagactgaggca
-tgagaattgcttgaacccaggaggcgggaggttgtagtgagctgagatcg
-caccgctgcactccagcctgggtgacagagtgagactctgcctcaaaata
-atagtaataataaaaataatccattttatctcctctctcagtttatctat
-tatactcctttaaaaatacattttttttccagtctggctgctctaaagta
-ttcaatacacatttttaactaacccaagtctgccttcaaataacactaca
-ctgcttcttgtgtagtgcaggttcttagaatattctcaattcctcccttc
-catttcttttgccattttactattccatatactataataatctaataaat
-ggttgctgttactttgaacagttatttattgaatcaattaagaataaaaa
-ataaaaattctattttaccttcatttatcccttctccaatgttctttctt
-tctttatggagtctgaatttctggcctatattattttctgtctccatgta
-cttactggcacaaatagggcagcctccagggctccagaggagagctgctc
-atattcatctgacaccatgtggccacagagtagaaactcatccacttttg
-ccttcttccaacccaggtcaaagaggcgaatcttggcattagggaaacct
-tggcagaagtaagaatgggtatggcttcttcttacaatactggtaacact
-gggtggggcggcggcccatggtgacaacaggatctttggtggtgcgtgga
-agggaaagagactagagttgggtctttaaaatgtcaatactttaatattg
-gaaagatttcactccactgtccttccaagtctgctgaattcttattcctg
-ctctcatataggggaggtgctatgcttttttctggcttctttcaagttct
-tctctttgtctttggtttgctgatgtttgaatataatatggatgtgatat
-acctagatgtaattaaaaaaaaatcctacttgctgttcagagagcttcct
-ggatctgtgtttaggagtctgtcattaattttgggaagttctcagccatt
-atgtcttcagatacatattcatttctgctctgttatcttttttccctctt
-ctgatagtccaatcacacatgtatgttactttgctatgtccttaattttg
-gggttaccccgcaaattcacgtgttgaaacctaatcctccaatatgattt
-gatttgaggtaggtcctttggaagatgaggatgaagctcttgtgaatgga
-attcatgaccttatagaagaagcccaagagagctgccttgtcctttttac
-cacgtgaggacacagcaagaaggtgccgtctgtgaaccaggaagcaagtt
-ctcactagatttggaatctgccgatgcctccgtcttggacttcccagcct
-ctgggacagtaagaaatagatttctgttgtttctaagctgcccagttgat
-gatattttgttatagcagccctcacagactaagacacaccttttgaaact
-gtcatgtggttctgggatgttctgttttcctttttgtcttctgactaatt
-ttctctttgcaatttagtggtgggtggtgggggaagtttctgtggacctc
-ccaattcttttctttgtgtgttcactgttggacccaccagaggcattctt
-catttttggtacaagttttttatttcccttttttttttttgagatggagt
-ctcgctctgtcactcaggctggagtgtggtggcataatctcggctcactg
-caacctccgcctcccagattcaagtgattctcctgcctcagcctcccagg
-tagctgggattacaggttcatgccaccatgtccagctaatttttgtattt
-ttagtagagatggggctttgccatgttggccaggctggtctcaaactctt
-gacctcaggtgatccacccgccttggcctcccaaagtgctgggattacag
-gtgtgagtcaccatgcccggcctccttttgattcttaaatttcccatctc
-tctgcttacattacccatctgttaatgcatgtctgtcttttccattagag
-cctttactttacaattatagtcaaatttcttgtcttcgaattccaaaatc
-agtatcctatctgactctgattctgatgcttgatttgtcttcagactgtg
-tttcttgacaataggcaaaatagttttataattgtttgttgaaagtggga
-tgtgctgattgattaataggagctgaatcaataggacttctatctgagct
-tttgtgttgatctgggttggagtttgtctgtatgtaatattcactggaac
-tccaggtgccagagtcttcaaatttttctgctgtctttgtttttctcttc
-ctctagagcagagacttccttacatactctccttcagagacagcctctgt
-cttgaagctctttctgctgtaatgccctgatattatactggagccctgct
-cgtgtagaagagaagcattgtgtaactttacaattaaatctcaggctttt
-agtggatccatttctctggggcgtggcctttctcaaggctggaggaggct
-ggaattggggaatttctttctgctcacatcggagaaggctttgagagtct
-tcctggctggattgcagtcctggtcatggagcatgctctgggcacatttc
-acaagagctcctctctcccatgccatagatgtgtggggacccaccttgga
-tctgcaccccaagaacccggggggctccgtggacgtgatgctcatgaaag
-cgtgcaattcctaagacagtggccctgaggagtctctcattctcacactc
-gtcctcaatctgccttcagcagtttgtcgaaatgtccgttgaggtacccc
-caccagtgtgtagctgctgtggcgtctgttccaagtcagctcgtggtgct
-tttggctcccaggattgagccatcactccagatctcagggaggtggtttg
-ccctgtgacctgcactctccgaggcccctaagaaaagttactcattttca
-gtacggttccgtttttttttcttctcataggggaaggagtgacagcttcc
-aaactgttgatctgtcaGTGCTGAAACCAGCAGGTCCCTTCAGCGAGGGC
-CAAATGAGGTCAGTTCTCTGAAAAGATTTTGGAAATGGTGTACTGGAATG
-AAAGTCAATAATTATGACTTGACTTATTGATTTTTTAATGAAAATGTAAA
-GATGTATCTGTAGTCATCTCTTAACAACATGCAAGATGCACCTCCCATCC
-CTGAAGCACTCCTCTTTTCCATTTCTTCTCAGCGGAACTCTCCAGGATAC
-GTCTGATTTATATGATGCCCTCTCTGGGTCAGCAGCTTCAGTCATGAAAA
-CCTGCAAAACTGAAGCGCCCTTTGGCCAGCTGCTGGTTCTGCGACATCAC
-AGGGAGTCTGGCATCCACACACCAATTCTAGGCAAGGAAGCAAAGGAGCT
-TGCTCTTCAGCTTCTGTGGGCCCATTTGTGAGTTTGAGCGGGTGCAGCCT
-CTCCTTGAAACAGAGGCCAGGTCCATGGCATGAGTCTTTTGTTCAGACCA
-ATGCCCCACTGGAGGGTCTGGGAGCTGCCGAGCCAGATTCCTGGGTGTGC
-CTGGGTGCTGTACCCGAAACTGCAGGGCCTGGGGCACCTGCCCTGCTCTC
-ATTGTTACTAGCTGGTTTATTCTCAGTGGAGGGTTGTAATTTAATTCCTG
-TAGTTCTGCAGTACATGGAGTTGGGAATTATATCCTTCCTCTGTGTTTTC
-ATTACACTGACCTTCCTGCTTCATTGCTCCTGAGACGGGAACCTCACCTG
-CCTGGCCTTTGTCTCCTTCTTCCCCAGAACCTCCCGAGACCTCTCATCTG
-CTGATTTGACATGAAACCCCCTGCCCACCCCAGCTTGGCCCCAGCAGATG
-TCTGGGCAGAGCCGTTACCCAGACCTCTGATTTTTCCCAGGCTGTTTGCC
-CCTGAAGGTTCTTTTTTCTCTACCCACCACCCCGACCCTGGCGGCTGGCT
-CAGGTCAGCCACAGGAACAGCCATATCTTTCCTGCAGCCTCACAACAGCT
-TCAGTGCCTTTCTGGTCCCACAATCTTACCCGTGTCTTATTGCCCCATCC
-TCTCCCACCTTGGCTGCAGCTtgcagaagagagacctggttaggagtcag
-gcaaaccctggctcccagctgcttctgatgtgactttagtgaagtggcta
-gacctctctgaaccctaaattcctaatccccaaatccaagatctctacag
-ttgaggatgatatgacttcacagggctgtcatgaggactagatCCAACGG
-ACGGAAGCCTTGCTGCATGGTCGGTGTGTGCATCGATAAAGGTGGCTCAG
-GCCAGCTCCCTCCCCCACGCCTGGCTCAGCGCATATTTTGCCTCGGAGTG
-TCCAGCCTTTACTCTCTCCTCTCGTGTGAGCTGGAACTGTCCCAGCAAGT
-GATGAGCAAGTTCAGCGCTCTGCCTACCTGTGTGGATTCTGAGTAGCATG
-GCACACCCGCTCCCCACCCACACGTGTGGCTCACTCTGGGCATAGGGAGA
-CTCGGGCAACCTGGTCCCTGGTCTGAGTCCAACCAAGGGTGGTGTGTTTG
-CATCTGATGACATTGCTACAAATCTCCTCTGGCTCAATTGAGGACGTCCT
-CCTCAAATTGCCCTTCCAACTTTATTTCCATAGTTGTCTTCTCCATTTGG
-TTTCCAACATGCATACCTTTCCAGGCTGCCTCACAGGTGCATCAGGTGAG
-AGCCCCGGGAGAGGCCAGCAGAGGAGGCCTGGAAGCACCCACAGCCACGT
-GAGTGTGGAGAATGGAGGGTTAAAGCGAAGAGTTGCTAACAGTCTCAGCC
-ACtttattcttttttgttgTTGTTTGCTTCTTTGTTTGTTTGTTTtgaga
-tgcagtttcgctcttgttgcccagggtggagtgcaatggcgccgtctcag
-ctcacttcgacctctgcctcccgggttcaagcaattctcctgcttcagcc
-tcccgagtagctgggattacaggtgcgcaccatcacacctggctgatttt
-gtatttttagtagagacagagtttccccatgttggccaggctggtctcaa
-ctcctgacctcaggtgatccacctgcctcagccttgcaaagtgctgggat
-tacaggcgtgagtctccgcatccagctCAGCCACTTTATTCTAATACATA
-ACTCCTAGAAAGTCCCATGGGTCTTTGAAGGAAGACATTGTGTATCAGTT
-GCTGAGACACCAGGCTTCCTCTTTCTCTCTTCCCTCACTCTCAGATACCT
-ATATTTTCCCTCCTTCTTAGGTCATTTCGCAGGAATAATGCCTGTGTGGA
-ATCCTCTTTGAAAAACACTGGCTTCAATTCCTGGGATACCATGGCGAAGT
-TCAATGTATACCTACATGCTCCCCAGCCAGGGAGGTTGTGACTCTGCAGG
-GTTGTGAGGCTCAGGCTGGGGCCAGTGCCTGCTCACCTTCCTCTTGGTTC
-CCTAAGAAGCCTCCCGTCAACCTGCAGCCTGATGTGGGAATGGCACTGAC
-CAATGGCTGGATGGGGAGGAAGAAATGGTGGCTGTCCTCATGGAGGACTC
-AGTGTGGAGTTGGAGGTGTCAGGAGAGGGGTCCTCGGCAAGGGATTCCAT
-GACTCCCATGGCACAGCGTCTTCTCCTGCACACGGCTTCTTGTCAGCACA
-CGTCTAATGCCTCCTTGTTTCCAAAGTACCTTGTATAGTGTCTCTTATGG
-TGTAAGCATTTAGCAAATGTTCAATGAAAGAATAGAAATCATATCTTGGA
-ATTTTGAGAAATACTGTCTTGGGAACGATAGTGAGCAGATAGTATAATTA
-AAACCAGATGCCAAGGAGATTTTCTAACTGTCTCAGGGCATGACATTCCC
-ATCATTTATTTGGTAAAAATTACTCTCTGCTCCATCTTGAAGCCAGCTCT
-TTCCTGGCACTGGAAACGCAATCTAAATAGCGTTTAATTCCAGGGAAGCT
-TTTATCAATTCCTGCTCATGTTCCAACTTGACTTCAGGCCAACCTGGATT
-GGCCCAATTTGCTGCAAGTCTGTCTCGGCTCAAGGCAGCCTCGTGGGGCA
-GTTGGGATTCTTGCTGCCTTCACAAGCCACAGCCAGAACATGGAATAGGC
-AACCTCACAGCACCATTTTGATGTGAGCTGCTGGATACCAGACCAGGCTC
-CTTCCCTTGTGTCTGCTTTACCTGTAGGTCTACCTCcaagggtggaggct
-gggaccctacttggaaggcaggaacacctgtccagctgggagaggatgat
-ggtggggccaggctctggcagctgaggtggagagaaggaaactgacttgg
-gatattttcagggaaagagcaccaggacctgctgatattggacatgatgg
-tgaggggagaaggcagagaagGACCAGGACCTGCTGATATTGGAGGTGAT
-GGTAAGAGGAGAAGGCAGAGAAGGTGCAGGCAAGTGAGGAACCACAGATC
-TCTGTTGGGCTGGGCCAGCTGGATAGCCATGGCTGCCGTGCACAGCTTTA
-TCACTGGAACTGCAAGGGAGGAGAGGATCTTTCATAAAAGGGGGCAGCTC
-CCTGGGATATAAAAGGCAAGGCTGCCAGGGTGAGCACAGGAGAGGCAATC
-AGGTGGGTTTGGGGTGAAAAGGGAGGCAGCTGCTGTTTTCTCGGGAAGGG
-TGAGATGTTGCTGGGCTGAGGAGGTCAGGGAGGGTGTGAAATAGCTTTTC
-TGCACAAAGGAGAGGGAAACATTTAACAAATACATTAGGATTGCTGGGGG
-TTTCGCCTGCCTGTTTGAGGACTCGTGAGTCCAGCCAGCGCAGTAGCGTG
-TGTCACTGTGAGCACATTCAGCAGTTGGGGAGGGGCAGGGCAGAAGGAGA
-AAGGGGCTTTAGTGGGTCTGAGGAAATGGGAGGTGGGACAGGGACTCATT
-AGAGGGTTTCTAATGATGGTCCTGGAGTCTAATTGAAGCAAAGGGCGAAG
-CAGGACATAAGGGAGAGACAGGTCTGGAAAAAGTGGTTGATGGTCAATTG
-ATGCCACACCAAAATGAAAAGAGCTTGATTTTGGCCATGAAGATGATGAA
-ATAGGGGCATTACAAGAAGGATGTGGGGAGAGAGGTGGTGAGCTGAGGCT
-GACAGGCTCTTGCAATTCTGAAGACAAGATTGCCCAAGATATGATGTAGG
-AGGGCATGGGGGTAAGGAAGACATGGCAGGTGGGGAGAGGAGAGGCCGGT
-CCTCGGGGATGCTGATGTCAGGGAGGACGATGAAGGCAGACATGAGGCCA
-AGGTGGGAAGGTGGGTTCATGTCTTTAACAAATGCGGGAGGCAACCAGGC
-TCTCAGAGGATGACAGCAGATGACACCACACACAATCAGAGGGGCTGGGG
-TTTTTGAGCTAGGAAGAAAATCGCAAAAGTATCAAGGAACACTGGTCTGA
-ATCCCAGGCCTGTGCTGCAGGCATGTGAGTGAAATTGTCCCAAATGGACA
-GGACACGGGGTGGAGGCGTTCTCAGCTGGATCTCAAAGCAGAAGAAAGTG
-AGACTATCCAGAGAGGAAGTTGCGATACAGGAGGTTTAGACAGGAGGCAG
-TGATTAGGGAGGGCACAGCAGGAGGGATTTTCATGCAGCAGGAGTGTGGG
-AAGCACCCTGCCATCTCAGTTGGGATCTCTAGCTTGCTATATTCTAAGAG
-TAGGGGTGAAACAGATGTAGCCTGAGCCTTACAGAGATGGCAGCTCATTC
-TTTGAACATCTCAGTCCATGTTTGGATTAAAGTGATCTGTTGGCTCCATT
-TATCTAAAAGAGGATACAGAACTCTCCTCAGAGGAAGGCAGTAGCAGCCA
-GAGTCTCAGGAACTTTAATGGGCATtgttcagctttcaacagaaaggaag
-catgcatatgagacagggcaaagggaacaaacagaaatcaaactcagacc
-cacagatgacccagatatcagagatggttgacactgttgttaaaataatt
-gtgattaacacgttaaagTATTATTTGAAGAAATACTTTAAATAAGTATT
-TAAAGTGAAATCCACAAAAAAGAATCCAATGGGATGGTGGGCAAaggcag
-gataacaacttcccaaaggtgcccatgtcctggcactcagaacgtgtgaa
-tgggctatgtcacatggcaagaggtacttaagattgcagatggaagaaaa
-actgctaacaagctgatcacaacttaaggacattatccttaatttaggta
-attacacagttccttaaatgtggaggagggagaaagaagaattactgtca
-gagtgatgtgatataagaaatacttgaacggctattattagctttgaaga
-tagaactggttcatgagccaaataatgcaggcaggctattaaagccaaaa
-aatgcagcaaatccaagtctctcctagagactgtagacacaaacatatcc
-ctgccaataccttgattttagccccgtcagatccactttggacttttctc
-ctcaagtatataagataataaatttgtgttgttttaagctgctaagtttg
-gggaaatttggagtaacagcaattcaaaaaaatacagattttggtacttg
-aaggtgtggttctgccataacaaaggactaaaaatgtgaaatgggtaatc
-ccagcactttgggaggctgaggcgggtggatcacaaggtcaggagattga
-ggccagcctggccaacatggtgaaacgctgtctctactaaaaatacaaaa
-aattagccaggcgtggtggtgggtgactatagtcccagctactcgggagg
-ctgaggcaggagaatctcttgaacccgggaggtggagcttgcagtgagcc
-gagattgcaccacttcactccagcctgggcaagagagccagactccatct
-caaaaaaaaaaaaaaaaaaaaagtgaaatggctctggaattggacagtag
-ggaaaggctggaggaatgttgaggacatgatagaaaaagctgagatttcc
-ttggacagtctgttgtagaaacatggatgctaagggtgaccttagtcaag
-tctcaaaaagaaatgagcatggtagagaaagcccttatcgttctagagga
-gaagaaatcaccatgcataccaagtaggtagaaatatggacattgaaggc
-gtggctggggagaactcacaaggacatgagaaggacattaaggaatataa
-ggaaaggccgcctttgtcaaatagcagcagggagcttagctgaattgtgt
-tctgcaattgtgtggagagcaaaacgttggacaatgaacttagatattta
-actgaagaggtttccaagtaaagtgttgatggtgcagtcgtttttgtttg
-tttttttttcttgctacttacactaaaatgtgaaaggaaaaaggattgat
-tgaagcaagggctgttaagcaaaaaggaaccaagacttgctgttttgcgg
-acttctcaggctactgagattgcaaatcgtgcttaaattaagagattcag
-gaaatgtcagaacagccctctctgccaagagccacaggtgtggctgaata
-aaatttgtgctagtggctttcaggaatcaaaggtcagagtatttggttac
-actggaggctcttcgaagagattaggcatgtgactcccggattcccctca
-gccatctcagccaaagccagaaatagagatgattatctggggaagatctg
-cagaggagcccattgtctaatggagttaatccccatggagagctacaagg
-gccttaaaaatattctactggcaggaaagctgcctgccagcttgtaccaa
-agggtcaaaagaaagaaggctattggaccccagagattccacaggcataa
-aactagctctaagtgctacccggctgcaaacatatgcttccttttgttta
-aaaagaaggatggtttctgagggtgaagctgcatgcccagaggacaaagt
-tgtgagtcacggaaatcattcccatgccgtttgaaactcaaatggagttc
-ttggattgcaaaattgcttgggaccagggacttctgtcttcctttccatt
-tttttttcctttttgaatggaaatatctatagctgtgactctatccttgt
-ctcactattttatttagagcacaagaacatgtttcttgactttcacagat
-caggaataattttgacacaagatgggtgtatgcagaccttcatcttaaat
-gttaaattttttatatgcaaggatttaggacttgtgcactgatgagattt
-agatacaattttgaactttgagttaatgctgtaatgagatgaggctttgg
-tgatcctaagatagaatagacgtgttttcccggtggaacacatgtgaatc
-tttagaggccagagggcagaTTGTGTCAGGCAGGACAGTGCCTCCCTCCT
-GCAAAAGATGCCCACATTCAATCCATGAATATGTGATGTTACATTTAAaa
-aatcatatgataataaatttgtgttgttttaaaccactgagtttgtcgta
-atttattacaacagcaatcggaaactattaAaaatggaaattgttaaatt
-gtagaattaacaactgaaattaagaactcagtaagttagcttaacagcca
-attcttctcagtagaagaaagggttagtgagctggatcatagctcagtag
-aaaatatccagactaaagcacagagagcaagaagaatgaaacatacagaa
-gagcattgctgccagatattaaaaggtaagaaagaagatattattaatta
-ttttataataaaagtgataaattaggtagtatggatacttcttagaaaaa
-tatgaattaccaattaactccagaagaaaccattatagaatttgaaacag
-taatattaaatctctataaagattccttaaggcccaatcagttttagagg
-aacatttcaaccattttagatggagaaaaattaattttttcaacctcttc
-cagattatagggaaataaatatttggtatttcttctgatgagattagtat
-aatggtgttatcaagtcccagaaagagatagtacaagaaataaaatgaca
-tgctaatctcagtgatgcattaaatggagatatcttaaataaaatattcg
-taaacccagtgctgtaacatgtgaaacatgtaaactattatgacaaatga
-gttatttacagggcacaaatttggtgtatggaagtgaaactaaccacatt
-aacagattaaagttgaaaaactataagatcaccaaaattgataacaatga
-aataacttaataaaatcagtatcttttcatgataacaaagaagctgttgg
-caaactaaggataggagagggctgccttacccagctaagtagaatctatt
-ggatgaaaaaaaaccccagcatacattagccatcctatgaaatgatgaaa
-tagtgaaagcattacctttgaagtcgggaagaagataagtgtgcttctgt
-catcactagcattctttgtggggctggaggtcctaaccagtgcagtaagt
-caggagaaaggaataatatgtatagatgaaagaatgattcccaagtaact
-gttcacagggaatagggttatttacacagacatcaccagaaaagtgtatt
-aatgagactttagcaagctggcagaatatataatcaccatacaaaaatca
-cttgtatttctatatcacaaaaaatccacttaggaaaatgcaattaaaag
-catgccaatttataCCACAAGGTACACAGCTTCTCTTTGTTCACTTCTAT
-GTGCAAGAAGCTTGCTGAGGAAACTGCTTAGTTGGAACCActggtcagca
-gctccggctaaccccgacctgcagacagaaccaactctgtagacatgaag
-tgcactatcctggaaccaggtcctccagccccaaggcatgcctactgatg
-ctacatggatgaagacacactgtttcctgaaagctttcaaaattgtaaag
-tcttatacaaaatatgtttttcttttaagacactaagatttgATGCATTT
-ATTCCTCTGTAGTTGGAATTacaaattgaatgaaatgtaggccccagaaa
-tataataatgtaaatgtggatgcttgaactatgacactgatgacgttgta
-tgtccatgggaaagaagaatgaacaggccaacaattgttggggtaattgg
-ttatccgtatgaaaaaaaaatggcatctccttatatcataccctacacaa
-agatctgtccccaccatggaaaacagtgtcatataaatgcagaattcact
-tcacaacttctgaaacaaatagagtccaatggagttaggatgtcagggta
-gagaaggattgcttaaataagaagtgacatcaacacaaaatgagaagttg
-gtgatttcaagaacattaaaatttagaactttacaatatcaacagacaat
-atgaaaaaagtgaaaatataatcacaattaaaagatggtatttagaatgg
-atataactgacaaagttcgttatatattatatagtctacactggttggtt
-agtgattaaactatataaagaattcccccaaatctacaagaaaacaaccc
-aacagaaaatgctaaaaaaaataaatccaaagaaatgaaatgaattaaaa
-aatgaaccaaccaaccaacaaacaaaacaggaatgcgcaataaaattatg
-gcaagatgtatatcttaattagctatcaggaaactgaaaattatgaccac
-aatgagatgtcatttcaaagcatccaagttgacagaaacagaagaatctg
-acaatgccaaatagcagcaaggctgccaagaatgggaacttgacatacgg
-ttggctggagtctaaattgatgcaaggactttgaaaaacatttgtcattc
-tctagcaaatttgaaaacctgcatatcctatgacccagtaattccccctc
-tCATTTCATATACTGTTCATGTATGGTTGAAGAGATGGATGCAATGATAA
-AAATAATGGAGCTGCCTATATGTACATCAATGGGGCTGGGTCTCAGGAAA
-TGCAATGTTGGCTGGCAAACACGTGGAGTGGAGGATGGTGATGACAGAAA
-GTCGTTGCATGgtgctcaccgtgcatcgggctcttttctacccacttgat
-gcgtcaattcacttgatcctcagagcaccccgtgaggtctacactactgt
-cgtcactgttttacaaggagaaagctgaggtgcatgaccttagtaaatgt
-cttgctcacctgccacggaactgcaagtggaagtgttggattcaagccca
-ggtccctgaggaccagagtgcaggctctttacccactaCcaggggtgtcc
-aatcttttgttggccacattggaggaagaaaaattgttttgggccacaca
-taaaaaatacagtaacactaacaatagctggtaagctaaaaagatattgc
-aaaaagacctcatgatgttttaagaaagtttatgagtttgtgttcggctg
-cattcaaagacatcctgggctgtgtgtggcctgtggtctgctggttgaat
-gagcttgCACTACACCATCCAGGCTCATAGCCATGAGTTCTTATTTTGAC
-AGGTTACAAAAACAGGTACAACTAGACTATACTTTTTAAGAACACCTTTA
-ctcatgcctgtaatcccagcactttgggaggctgaggagggtggatcatg
-aggtcaggagttcgagaccagcttgaccaacatggtgaaaccccatctct
-actaaaaatacaaaaattagccaggcgtggtggtgggtgcctgtaattcc
-agctactcgggaggctgaggcaggagaattgcttgaacccaggaggcgga
-ggttgcagtgagccgagatcacgccactgcactgcagcctgggtgacaga
-gtgagactctgtctcaaaaaaaaaaaaaaaaaaaccaaaaaaaCCCCTTT
-ATATTTAATGAACCTATTAAGAGAAGTAAAGGAAGTACTTGCAGAAAACT
-GAAGTTAGCATTACCATTTCTCTCTGAGGGACAATGGGACGTGTAGACTT
-GGGTTTATATAGCCCTGGGTAGGTTACACGCTCATTCCAGGAGTTTTCCC
-TTCTTTTTTCTCTTTTCTTTATTCTATTTGTATTTTTAACCttttttttc
-tacttttattttaggtgcaggggaacatgtgaggtttgttttgtgggtaa
-attgtgtgtcactgaggcttggtgtatgaatgatctcgtcaccaaggtag
-tgagcatagcacctgacaggtagcattccaacccctgAATGTTCCTTTTA
-GTAACTTAAAGCCATCTTTAAACTGAGCATACATTCTtgccatgctctga
-atgtttgaatattagtgtccccctcaaattcatgtattgaaataatcacc
-aaggtgagggtatgaggaggtagggcctttgggaggtgattaggtcataa
-aagcagaactgtcatgaatggaattaatgtccttataaaagaggcccaag
-agagactcctccccttcccaccatctgcggctacagtgagaacctgtgag
-gatctggttctatgagccaggaagccctccccagacacggaatccacctg
-gtcttggaccagaccaggccagaccgtggtctcgagaccagaccgtggtc
-tagagaccatggtctctagaaccctgggaatacgtttctgttgctgaagc
-cctcctgtgtatggtattttggcagaacagcctgaacagactaaggcaAC
-CACATAGACACTCTTTATGTATTTATTTCAAACTTAAATGGAAAGTTTTC
-CTTTTTAAATTTAATTTAAttttattttatttatgctttttgagatggag
-tcttgctctgtcatccagtgcagtggcgcgatctcggctcactgcaacct
-ctcccttctgagttcaagtgattctcctgtctcagtctcccaagtagctg
-gaattacaggcatttgccaccatgcctggttaatttttatatttttagta
-gagatggggtatcaccatgttggccagactggtcttgaactcctggcctc
-agatgatccacctgccttggcctcccaaagtgctgggattacaggcgtga
-gccactgctcctggccAGTTTTACTTTTTTTAAAAAAAGAAAAAGACTAA
-ATGTGGCCCTCTTGCTGGTGATGTAGCCTCTTTTTAGTGACTTCTGAATA
-ATAATTTTCCATTGAGAAATCCTTGCATCCATGATGGAGGGTTTTCACCT
-TCCCTGAAGCATTTATCACAGTTTGATTTTGGtccttgaagatgagaaac
-tcttgtctctccttgtttaatctctccatctgctcagcatctcgggcagg
-gccatacacagagttggcagtgggttatttactgttgcaagaataaatCC
-TTCCCCACCTATGGAACCCCCATGTGCTCTCAGAGTCGGGATTTTAGCTG
-TATGGCACTACCGTTCTGGATGCCAAGTGTGAGTAACAGGATTTAGACTA
-AGAGATGGTTATGATGAAAACCCTGACCAGCTACTCAGAGAAGAACCTAC
-TGATGTCTCAGCTGAAGTGCCAGGTTGGCCACGTTTTTACAGCTGGGGAG
-ATCCTTTCCTAGTTTGGAGTCTGAGAAGGGCCTTAATTTTCCCATTAGGA
-GAAGCTTGGTGTCAATGTAGCTTTGCTAGAGAGCAGACAGCATGTGCAGG
-GCCAGAGAGGCAGGGCACAGAGGGAGTGGAAGGATGACAAATGGAGGAAC
-AGGTCCCAGCAACCTGAGAGAGGAGCCCTCCCAGGAGTGGCGGCCAGATG
-AGACCATGCATTCATTTCTGCATTTAGGTTTCCCCTTGTATGAAAGTGGG
-ATGGTGGTCTCTAATTCATGTGTTGGTTTTTGGGAATTTAGCAATATTTA
-GGTGAAGTGTTGCACCTGATAGTTGACCCAGACTGTTGTTATTATTGtag
-gttgagccatatgaaattgctgacactctggtgtttttgacatacaaaca
-atggaagcttcatatggttcaacttgaTAGTACCTGTCCAGGTGTCTGCA
-GGCTTCTCTTGCAGATGGTGTGTGCTGAGCAACTGTCTACAAAGTGACTG
-AGTACTAAATGACCTGCGAATAAAAACATTCCAATTTAAATATCCTGTat
-tccaagatgcagagtcttttttcacattttaatatttctaaaattatgat
-gtgttttacaacaaggtttacgtgaaatgccatgctccttttttacccag
-aaaatccattatgaaattgatgatgtgtctttacaatctgtgacgtctaa
-aattcaatTTCAGGCTCAACATCATGGTATGAAAATGATGCTGGAGAAGA
-AAAAAATGAGATGATCTGCTAATATTTGTACTTATGTACTCCTCGCCTTA
-ACACCCCCAAACATTTCCTCCAAGGCCCTTTTAGAAAGGATCCCTGAAGG
-CAGGCCTGGCTGGTGTATACACATCTCCTCTCCTCCAGCCTCCAGACACC
-AGCCGCTCCACACCTGAGGGATTGAGGGAATTATTTGCAGAGGAGCAGAA
-TCTAAATCTCTAATATTCCAGCATTTAAAAAGCTGAATACGGGATAATTC
-CTTTTTTTATGAAGTCCACGGAGGTTGCCTTGAAAGAAATAAGGTCTTGT
-GTCTTCGTTGTTCATACAAGATATTCCTTTACATATACCTGGAAAATATA
-TAACTTATTGATGTGACTACATCTAAACTCACTTTCATTGTTAAAGGGAG
-ACAGCAACAGTATTCTGGACAAACTTTGCTTGCAATGGCTGTGCCAGGAC
-ACACCTGGGACAGGTCTGCGGGTGTATTGTTCTGACTTCCAGGTCTGTTC
-GTATTCAGGAGGACCATCTGAAATATCACGAATACGGTGGATTCAGgtct
-cagtgtgcagaagatgtcctaattcatgtctatagtcccaggcttttgtc
-cagaagagtattttgtgtcagatgttttattggtaaggaaaatgttatta
-ttaatagttgtattaagataaaccagatggatttggtacccttccacctt
-gaacttccagcttctgctgtgttcttgtctaatattgtagttaagacTGT
-GATTAggctaggcaaggtggctcacacctgtaatcccagtactttggaag
-gctgaagtaggagattgcttgaacccaggagtttgggaccagcctgggca
-aaaaagtaaaacttagccaggcatgctggtgtacacatatagtctcagcc
-actcaggaggctgaggctggaggatcagctgagctcaggaggacgaggct
-gcagtgagctatgatcacaccactgcactccagcctgggtgacagagtga
-taccctgtctcagaaagaaaagttggtacttattttaagaagtgtgttct
-gaaagatcatgaaaactgatcatgtgtagctgcaaaaataccatctgact
-gtgaaaatcacggctgttcaattcagtcaactgactttttctctaattta
-attttggtggttatctatttcaatttttcttgtgcatctttgaaaagtaa
-agcatagttattaacatgttgggtgaattaccatcaaagaaatttgccga
-tagttaaatagtgcaagttatacatcaatattttaaaatggtaaatcagt
-ccatttattttaaaaatgaggctttatttaatataattaatgaataagaa
-ttttggggaatttattttgttaaaagtattctgactttattgtgaaagca
-ttgtaaattctgttacaaatttagatattgatgagaaaatcattagtttt
-tgtagggaaaattaataaaaatttaatgttgcgtagagttatgaccaaaa
-caattattttactagattaagaaactatagagcttgtaattgattgtggt
-gcatttataactcctaatggcgttcaaattgtgacatcacaccaaccaaa
-gatttaaaaatatttttaggctgggtgaggtggttcatgcctttaatccc
-agcactttgggaggccaaggcgggaggatcacctgaggtcaggagttcaa
-gaccagcctggccaacatggcaaaaccctgtctctactaaaaatacaaaa
-attagctgggtgtggtggtgcacacctgtaatcccagctactcaggagac
-tgaggtgggataattgcttgaacccaggagttggaggttgcagtgagccg
-agatcatgccactgtactccagcctgggtgacagagtgaagccccatctc
-aataaatagataaataaatatttaaaaatatatatattttgtatacatac
-acagtcacaagtcacatacacaagtccactacaacatattctttgtgcgt
-gtcatcaaagtgactttagatacgaaaaatatattcttacttttgttgca
-gcccgtactcaattgggtcttaaaaacgtttgagccctcgtgtactactt
-tgtaaatcaaactatgtgacccacaatcttactgaactttttctaaagga
-gttctctacatttcagttgcattttattaagaagtctttgatttcaaaaa
-tctttaatcaaagaattcttcatatagtttcaaaaataatttgtgatttc
-agagcttttagcaaattgcaattattgaaatgtttatctgttctaacata
-agaaagaaactgatatttaacaatgagatttcatcaagtggtaagattta
-atgttgaaactctgtaattgcattttggaatacagcaacatgtgggaggc
-aacagttgatgaaactcttctttCCTCGGCAttttattatgcaaattctc
-aaatgatacagaaaagttgaaagaattttacagagactacctatacaccc
-acaacatctattgtaccattaacactttattatacatactttctgtatct
-attctcccatttattcattaacccatcttattttttgatacattggaatg
-cgatagacatcagtacattttgtaaatatttcagcatgcatgttatgaaC
-TCAATTTTGTTATGtttcttttcttttttttttttttttttgagatggag
-tcttaccctattgcccaggctggagtgcaatggtgtgatctcagctcacc
-gaaacctccgcctcctgggtaaaggtgattctcttgcctcagcctcccgg
-gtagctgggactacaggcgtgcattaccatgccggactaattttttgtat
-tttagtagagacagggtttcaccacgttggccaggatggtctggatctcc
-tgaccttgtgatctgcctgcctcggcctcccaaagtgTGTTTCTACTTTT
-TCTCagttagaatttgcatattgcaaaatgcacaatttttagggtagtgt
-ttgataggttttagtaaatacactgactaagcaaaaaatacataggacgt
-ttttcaccccccactttcctctggccattccaccttcaccccaagaggca
-actgctgcttcgatttatttcaccggagattagttcagtctgttctagaa
-cttcatatacattgaatcatatgatatagactttctcagtgaaaattttc
-tttcactaggcataatgattttaggattcattcatgtggtcgtgtatcac
-tacacgttttattgaaactattaacttttcattgctgaatatactactgt
-ttgttcatgttatgaatatatcacggtttgtttatcagttgccctcttga
-tggtcacatagggtgtttccagattggggctactatgaataaagctgcta
-ggaaaattcttgggagagtctttctacagacatatgatttcatctcatgg
-gcatatgtttgttttagaagaaaatgcccaatattttccaaagtggttgt
-agcattctaaaatgtcaccaaaaatgtaagagagttctgactgattcaca
-tccttgccaacatttggtgttctcaggagttttagttacagcaattttgt
-tatttgtgggtgaataataccttactgtagtttgaattttcattccctga
-tggctaataaggttaaacgctttcgtatgaacttactgaccacttgtata
-tcttttaaaaaatatttggctggtttttaattagattgtttgtcttttca
-tcattgagccttaagagttctctagacacacttgataaaagtctttgtca
-gatacatattttgcaaatattttcttgcaatctgtggcttgctcgttcat
-tttattaatgctttcttttaatgagaaggcatacatttaattaagacaaa
-ttaattatgtcttattcttttacggtattgctttctgtgtattaagaaaa
-cttttcataccctccattcatgaagacgttcttttgtctgttttcttcta
-gaagctttacagattaaatctttgtgtatattgtgagattgggctgagat
-ttaatttttcctaaatgtatcttgttgttccagcaccatttgttgaagtg
-actttttctttcacattgtattgctttggtgctattcttcaaacattaat
-ggactatgatcagctggatacattaaatatgaaaagaaaaaaggaaaaat
-acagaaaaatattttaaataaaaaattaatagactattaaaacacagggt
-actctattttatttcagtaatctaactgcaacctccagctcccgagttca
-agcgattctcctgcctcagcctcccgagtagctgggactgcaggcgcacg
-ccaccacacccagctaatttttgtatttttagtacagatggggtttcacc
-atgttggccaggatggtctcaatctcttgacctcgtgatccatccacctc
-acccttccaaagtgctgggattacaggcgtgagccaccgtgtccagccct
-caatctttctatttttatatcagtatcttaattactatagctttatagca
-agtttgaagtcagatgttttgttaactttgttattttaaaaatatttatt
-ttaatgttagaggtatttccatttcttataaagttccaaaccaaattatc
-aaattccacaaaaatgccttctggaaatgttttgacaattgtatggaatc
-taaaattcaatttggggaggagcgatagctaaacgaatagagtgaatcct
-cactccacggacaaaggagctctcccctttattatacattttggcctatt
-caggtttcctatttcatcttgagtcaattatgataaattttatttcaata
-aatttacctaacttgtcaagtatattgacgtaaacgcctccacaacattc
-cctcatttccttttaatgtccataggatctgtagtgatgccctccccgca
-atttcactgctgttaactgtaatttgtactctccttttttattaatgaat
-catattaaaagtttatcgattttttcgatcttcaaaaacctaaattttgg
-gctcattaatttttctactgtttttcttttctctatattctagattctag
-ttcttatctttactattttcttattcttacttgttttgggttactgtttt
-ttctgcttctaacttctaaaaatgcaattttatatcattgaatttatacc
-attatcattttcaaatatgagcatttattgtcgtgtgtttcttggaagcc
-tgcttcaactacattttgaagagcttgaattaacaacctgaagtttttaa
-tgtgttttcattaagaatctggtcaaaatattttttctcttgtaatttct
-tttttgatctataattattaaggaatatattatttaatttctgttatttt
-ggggatttccagatactgtgtttttgttgatttttgactcagttttgttc
-tagtcaaagagcatattcaatattcttataatcattttaacttgactgat
-attcattttatggcccggcatatgatttatcttggcgattacaacatgct
-tgtacttgaatggaatatggattttgaagtcatgtgagtagttctctgaa
-agtaccaatttgggtgataatagtgttgttcagctcttccctgccaatat
-tgattttttTGCAGTTGCTGTAGAGATTATTATATATTCTATTCATGTTT
-AAGTATATTTAGTGTTGAAATTGTGCCACCTTATATGTATTATCATGTAA
-AAGCCTTGCAAGCTtgcagctctatttaccttcacctggtattttgtgct
-agagttaatatcatatatatcatgtctacattatcatgtatgccacaatg
-taatactctacgcttagttataaacaattgtatttcaaagaaatataaaa
-acaaattgtatttcaaagaaataagaagaaaatagagtcttttatattta
-tctacatatgttctcttgagtctttgttaaagatttgactttccattcta
-tattactccgctttacctaaagaatttaagtagtgtAtacttgtgaaaat
-ttacaagttgatgtatttaatatttcagtaaaaacttacatatgagaata
-ttcacgtttagcagaaatttatctgagcttaccgggtatttcaggaccta
-cagataaaatattttctcaactaaaaataccaaggtttgaagagaagggt
-catttggatttgtcatcatttaatttatcatattttcaagtgccttattc
-ataaaatttgaccttgaaaaaaattatagtcactattttgaaaatgttca
-aattaaaaccatattaacaatactttttcagcaaaatactagtgatatat
-attttatatggatctggctaagaaatagatcaaaaagtacatagattgtg
-cccaaatttattaaactattgtttaattttaaaatcagtataataggcca
-ggtgcagtgactcacacctctaatcccagcactttgggaggccgaggtgg
-gcagatcacttgagctcaggagttcgaggccagcctgccaacatggcaag
-accccatctctactaaaaatacaaaaatgagctgggcattggggtgtgca
-cctgtagtcccagctactcaggaggctgaggtgggagaattggttgaacc
-cagaacgtggaggttgcaaagagccaagatcacaccattgccctctagcc
-tgggtgacagagtgatactctgtctcaaaataaataaataaataaaatta
-gtatgatattaataactaaagataagactttttaagtcatgctttaatga
-acatgaatagatgctattttttgaaatacattttatttttgcaaattatt
-tttgaatagaattatttaataggcttatcaatagaataaaacaaattgat
-ttgtgtatgaacatgttcataagtatgtacatatataattttttaaaaat
-tatctgtagtgcttctgtgccatttattctcaaatgtatcttagtttcac
-tgataaattgtagggtcatcttaCCTTTAGGGTTTTCAGCAACCATGGAA
-ACTAAAATATTTTCAACAAGTGCTTCCATAGACAAGAGCTCTCATTGTTT
-CCTGGACTTTTGACTAAGATCCAGTGTAGATAAGAGCTATTTATTCCACT
-AAAAAGTGGCAATTCTACATGGGTGTAAGCTGTAGCTCTGGACCAGACAG
-CAGGGCGGGGTGTGGACACTGCCTGATCCCTGGAGGAAGGTCGGTGACGT
-CTCCCACCCGCCAAGCACTAAGATTGGGCCGGGCACTCTGTGAGATTGTT
-ATGCGTGGATAGACTCGGAGTCAGGCCTAACGCTGCAGGGCAAACCTGCT
-AGAGAATGTTTTCCCTCGAACTTGATCTTCCTCTTGCCCAGCCTTAGAGA
-GGACACTTGGAAAAATGCTGCCTTTTCCATTGTGATCTGCCTCTGGTGAG
-CTGGGAGGAAAGCGGCCATGAGTTCAAAAGGACGGACGGAAAATCTCCTT
-AGGGTTGGCAAAGAGCAGCTTTACCACAGAACAGATGGAGTCTTGGTTTC
-TGTGGACTGCTGGTATTTTTATTATTGGTGCTTCTTTTTTGGTAGAGGAG
-GAGATGGAAGGTGGAGAGATGAGGATGGAGGGGGAGGAGGCTTGCCCCCT
-GCTCTCTGTCCTCTGCTAGCCACAGTTCTGCTGCTAAGTTCTTGTATCTC
-TTTTAGAATTTGAAATATCTGTTAATGTTTATTTTTATTTTCAttttaaa
-aaataacaatagattttatttttgtgagccattttaggtttatagacaaa
-ttgagcagaaaatacagagagttcctatacatgtcccgcacaccatttct
-ctgttattgacattttgcattggagtggtacgttgttaaaattgatgagc
-cgatattgatacattggcccaaatctataatttccaccagggtttatgct
-tggtgttctgcattctgtaggtctgggcaaatatgacaggaatccaccat
-tacagtatccagaggagctcccctgccctacaaatcctctgtgctccacc
-tgctcctctctgcctccacccgaacctctggcaaccactgtcttcataat
-tttgcctttttcaggatgtcgtgtagttggaatcacacagtctgtaactt
-tttcaggttggcttctctcacttagccataagcacttaagttttctccat
-gactttccctgacctgatacctcatttctctttttccccgaaGCTCTTGC
-ATCTGTTGCCTGTGTAAGGAAGCTGTATATTGCGCCTGACACCACATCGC
-CCTTCTGACAGCTGTAGTTACCCATAGAATTCTCAGTTCTGCCTGcaacc
-caaggagacgagcattcctgtcttcattttacagagatgacaggataagc
-catgtgccgtaagccacacagctggacccctaaatccaggattccagccc
-ttggcctccctgGGCTACAGGGGCTGcaaggaccagcgacagcagcagca
-ccaggaaccctgttacaaatgcagagtttcaggcccttacccacacctac
-tacatcccgatctgcattttaacaagaaccTGAATGGAGCTTTGTCGTTT
-CCAAGGCAGAGCCAGCCTCTCCATGGGCACACAGAACTGCATACTTCTGT
-GGACTTGGGGCAAATCTGCTTTATCACACTTTTTACAAAATAGTTAGGGT
-TCTCACGGTATTTTGCAAGACTACAAGGTAAGAGCTTATCTTGGGATAGG
-AGGATCCATCTCCATTCTGGAGGTGCAAAGAAAATGGGTCTCAGACTTCA
-AGCTCTGAGCCTCAAATGCTAGACCTCTTCCTCTGCTTTCCTCTCTCCAC
-CACCAGCATTTCATCCCAGACTCTGCTCAACGCAGCTCAGCAACAGAGAA
-ATGAGAAGGGGACTTGGCTTCAGCAAGAGTGAACTTACTTGGATGCTCCA
-GGGAGGCAGGAAGGTGCAGGGGTGGACACTATAGATGTGGAAGGTAGGAA
-TTCTCAGCGTGATTCCCATTCTGGATACCTCCCAGGAACCAGCCTGGAGG
-ATGAGGGCAGGGGCAGTATAGCCCAGGACACAGGTACAGAGGCGGGAAGT
-CACCAGCACAGCAGGATGGTCTGTACCACAAGCCATGGAGGGGTGTGGGT
-GCCACCTTTGGAGAAGGAAAGAGGTAGCATCTATAGGGAGTGTCCTTTAA
-GCTGAGTGTTGACAAATGAGAAGGCAGCTTCAGTTCTGCCTCGCTCCAAT
-GATAGCAATCCTTTTGTTTCTGATTATAATACTGGGTACTTGAACTCTAC
-TGACCTACAATATGCAGTCTCTGTCAACAGTAAGAGCATCTGCCCTTGTA
-GCAGCCCTCATGCGGAACAAGATCTCTGACAGACGGCTAGcacatattac
-tcttaattatcataactgccaacaaggttggtatcattgctcctgttttt
-ggatgggaaatcaaaagtccagagagcataagtgttacttcccaggtcat
-ccagctgcaaatgagaatgtgtttgaactgccaagGGTATTTGTGAATTT
-GAGTGTTGATGTGGGCTCCACAGTCTGTTGATATTTTTTCATGCAACCCT
-CACTTATCACCACTGGCTTGTGTTTACTGGGGCTTGCATATATCCAACAG
-AAGAGGTGGACTAAGTCAGCATGTGAGCTTTTAAAAAAATTAGCATTTAA
-ATAAAGGAAACAGTCATAAAATGTTGTTCACCAGTAGTAACTCAACTCTG
-CTTAGGAAACATCACTTGGGCACTTATTATGAGCAAGGTGGTCTATTAGG
-GGTTAAGGTTGTCAGGTTGAGCAAGGTACCTTTATGACAGAAAACACGTA
-CAAATTCAGATTGAGCATCTGTGATGTGCCTCCTATAGATACAGAAGTGA
-ATGCAGCTAGGACCAGTCAAAATTTTACATTTCGGGGAAAGGCAGTTTGC
-TCAGCTTAGCTGTTGACTAGTCCTAACGTGTTAGGACTGAGTGGCAGCTA
-GATTTCCTCATATAAGTATGTCCTCTTCCCATGTCAGAGAAATGCCATAA
-AGGCCAAAAATCATCTCAGATTTGAAAGCTCTTTGAAATTTATGTAGTGC
-TAAACAATGCAAGCCATGGTTATTTTGCTTGAGATATTTTCCTGTCTGTA
-GTTTACAGCTGAATAATACTCACAGGGTTTTTTTCACCTTTGTGAGTATT
-ATAGGCATAACTTGCAAAACTGCAAATACAAGGCCTTTGAACGTCAATCA
-GTCCACCATGTAGCCTGTGGTGTTGATGGATTATTTCATAGAAAGTTGAC
-TGGGCTCACTTCCTGTTGTGAGGTGAGGCTTTAGGAAGCTGAATAATTCA
-AGGGATGGTTGATCGGCTGAGACCATAAATTCTCAGACAAATTTCAACAG
-AACCTGGAGGCACACTTGTAAATAGATGAGACTGAAAAGGAAACACAGAT
-CCTGTCTTTGACAGACAAATGTCTCTCTCCAAGCTAAGAATGCAAGTGCC
-TTATAGGGGCCTGAACTTAATTTATAGCCTTGAGATAGAGCCCCAGACCT
-CAGAAGAGAAGGAGTTTGGGCCACCTTCTCATCCAAGGTCACGTCCATAC
-CACACGCCCAGCATCCCTAACACATAACCATTCAGCCtgtgtcagttatc
-aactgccgcataacaaatgcccccattccttgtgacttagaacaatacat
-gcacttgcatgattctgagcttggtgtcctggtccctgctggtctcacct
-gagcccactcaggtgacaaccctaagcagccagcttggtggaggaagggg
-catcccggcctactggggtggctctttcttgctccatacagtctctcatg
-ctccaggagactgagaacaagctttgcaatatgatggcagacgtgttctg
-agagagatagcagatgcCATAAAACCCAAGGTCTACCCTACACAGTCAAA
-TTGACAAGTATGAAGAATCTCAAGACATGGAAATAGGCAGATGTAATGCT
-TATGGCCTGTGCCCTTGTaattagactttttatcttgagataattgtaga
-atcacattcacataccattataagatatataatacagaaaaaactcatgt
-accctttactcagtttcccctacaggcaacatcttgcaaaatcatagcac
-attatcataaccaggatattgacattgacaaggtcaagtcacagaaaatt
-tctatcatccagcgatccttggagtctaggagttggaaacaagccaataa
-gccagcgattcccaccagcaagggcatcctcaaatgcccttttgtaacca
-cacccattccttcctgcaccccaccgtcctcaatgcctggcaccactaat
-ctcgtctctatttctagaatgtggtcatttcaaggctattataataatgg
-aattgtggcatatgtaacgttcgagggttgggttttttttttcactcagc
-ataatgctctggaaatttagggaagttgtttgtttctttttactactgag
-tagtagccttaagtatgctgatacttttttttttttttgagacggagtct
-cgctctgtctcccaggctggagtgcaatggcaagatctctgctcactgca
-agctctgcctcccgggttcacgccattctcctgcctcagcctcctgagta
-tctgggactacaggcgcctgccaccatgcccggctaattttttgtatttt
-tagtagagacggggtttcaccatgttagccaggatggtctcgatctcctg
-acctcgtgatccacccgcctcagcctcccaaagtgctgggattacaggat
-actttttttttttttttaacgatttacttgttacaagctatctgggttgt
-tttcagtttggggctattttgaacaacaacaaaaaaaactgttgtaaaca
-tttgtatacaggattttgtgtgaacataaatcttcatttctctgggatac
-atacccaggaatacagttgctgggttccatggttaatttttaagaaattg
-ccaaactgttttccagagtggctctaccatttaacattcccaccagcaat
-gcatgaatgattcaatttctacgtatccttgacagcatttggtgttgtca
-ctttttttgttttagccattttggtagatgtgtaatgaaatccaaatgtg
-gtttAATATTTCTTCATGTCTTCTGAATTCTAGCTGttttttaaatttta
-ttttatttgatttttatagagtcagtgtctctctctcacattcaggccgg
-agtgcagtggtgcaattatagctcactgcagcctcaaactcctggcctca
-agtgatcctcccaccttggcccctcaatgtgctggggttacaggtgtgag
-ccaccatgcctggccatggattttttttaTATGGTTGAGTTTTGAGAGTT
-ctggcaggagtgaggcagtgcccctcttctgctgctgggacagtatcaga
-aaaaaacagataagagcaaagttttaaataagactcaaagtctcagaata
-taatacaaaaatgtccaggtttcagtggaaaatcatccactctactatga
-acagatgaactcaaactaaaggaaaaaaaaatcaatagatgctaacacct
-agaagacggagatgctagaactatctgacaaggatttcaaagcagccaca
-ataaaaatgtttcaatgggcaattacaattacatttaaacaagcgaagac
-acaaaatgcctcaacaaagaaatacaaagtctcagcaaagaaataggaga
-tataaaaagtactaaatgaaaatttgagaactgaaaaatactataaccaa
-cacgaaaagctcagtggatggcttgacagcagaatggaggggattgagga
-gaaaatcattaaagtggaaaatagagcaatagaaattacccaatctgaac
-tagagaaataaaatagaatgaaaaaaatgaatagactctcagggaccagt
-gggactataacagaagatctaatattcttgtgatcagaattctgaaagga
-gagtggaaagaagATACCTtaaagcatataaataaagggttttgggaaaa
-gaaataggacaaaatcttcaggacctacagttaggcaaagagttcataga
-cttgacaccataaacataatacataaatggaaaagctaataactgacttc
-atcaacattaaaaactcaatctgtgaaagaccctgctaagaggctgaaga
-TGTTctagtatctagaatatgtacagaactctcaaaactcaaccacataa
-aaaaaaaatccaCGgccacgtatggtggctcacacctgtaatcccagcac
-attgggaggccaaggtgggaggatgacttaagcctacgagttggaaacaa
-gcctgagcaacagagtgagacctcatctctataaaagaaataaaaaatta
-gcAGATCACgaacagtggtgaaaatccgactcttccctgggcctcctctg
-ttaccctgatgggctgggaggggcgctccattcctcctcaatcggggtgg
-agtctggggtatatgatgccaaaggaaaccccagggactcaccatcctga
-cactccctgggtcctgaggcccctagttggcctgcctttaccagaatctt
-ctcatgcctgctttatgtataacacccagggttttcataatgtctagggg
-gcgtaagaaagaatacatcttcccaaagcagatgtcATTCACAGTGGTCG
-CTTTTACAGTAAACTAAAGTTTTCTTGTGAGGATTGAAGAAATTGTGTGG
-TGTGTGTGTGTGAGAGAGAGAAAGAGAGACAGTGACAGTAACTGACCAAC
-ACAACCACAACCACCAAacacaccacataccacacaacacacatgacacc
-caccacacatacaacacactgcataccacacatacacaccacacagtaca
-catgtaacacacaccacacagcacatacacaccacatggcacatatcaca
-taacacgcacaccacacacacacacacacacacaGAGCATCTGAGAGGCA
-ATGGCAAGCAGGCAGCACTGGAATTCCCCCGGGGTCCATGAGGCCTGGGA
-AGGAACTGGAGTGTCATGTCTGAACCAGGCTCAGGTCGGGGTGGGGCCGG
-CATCCATGCCAGGTAGAGCAGCTGCCAGGCCAAGGAGGCAGGGACACTGT
-GTGGGCTGCCACTCACATCTCCTGAGGCTGCATTCCTCCACCATGTCCAT
-GACCCAAGCATTGTCCTCTGTGCCTGGACCTGGGAGGACTCCTGGGGGTG
-GTTTCCTGCACTGAGACTCTGCGTGAGCAGCAGAAGTGGCCTGTGGTTGG
-TTTCACTGCCGCCGATGCCTTGCCCAGCTGctggcaggaccctggcagga
-ccctggcaggaAGAGTAGCGCCTGGTCCTAGCAGGTGGAGGTGACATCCA
-GAAGCCCCAGGTGGGTGTACGCACATCTTGTGTCCGCCTGCTCTGGCCTT
-TGAGGCATCGACATGCCGCGCTTCCTACCCGCAGGGAGGACCAGGCCGCC
-CGGTTATGGCAGTGAGTAGGTGATGTGTGGCGCAGGTGCTGCCCAGGGCT
-GGGCAGGTAGGGGCTTCTCTGCCTGTGGCCTTGGGGCCCTGCAGCCCCAC
-CTGAGTGCAGAAAATGCCCAGGCCCTACCCTTGCCATCAGCCCATGCCCA
-CCTGGCCCTTACCTGGGGATCTGCCATGTATCAGCTGTGATCATGGGACT
-GTGGCCTGGGCAGCCTCCCTGGCCCTCCAGCTGGAACTGTGGGTGGGAAT
-GGAAGGGGCTGAGGCCTTTCCCAAGGAAGTTCTTAGCCCATTCCCCAAAA
-AGGACCCAGAGAATATTTTGGCTTCTGTTTCAGAACAAACTCCTTCtaaa
-taaataaataaataaataaatacagtcgtgtgttgcttaaagacaggaat
-atgctctgagaaatgcacctgtgggtgattttatggctatgtgaacatca
-cagggtgcactcacacacacctgggcggcacagcctcctacacaccgagg
-ctatgtggtatggccagttgctcctgggccatgcacctgttcagtgtgtg
-actgtatagatcctgcaggagactgcagcacaatggcaagtactgtgcca
-tctaaacaaagaaaaggcacagtgaaggtggagcgtcctaatctcaggag
-acgacctttgtttgtgaggtctattattgagagaaatctcatttaatggc
-acgtgattgTCAGtaggtaggtagataggtaggtagatagacggatagat
-agttgaatagataggcagatagatgatagatagattgatagatagataga
-cggatagatagatagatggatggatacatagactgatagactgacagaca
-gacgatagattgacagacagacggataggtagatggataggcagacagac
-agatagatggatagatagattgacagacagatagatagatagatagatag
-acagacggatagacagatagatggatagatagatggatagatagactgat
-agatagacggatagatagacggataggtagatagatggatagatagacgg
-atagacaggcggatagatagacagacggatagatagatggatagatagat
-ggatagatgatagatagatagatagatagatagatagatagatagataga
-tagaCATTGTTTCTTTTTATTGGCATCAGCAGAGTCTGAAATGAGAACTA
-CAGAAACAATCCCAGCCCCCAGCCCCCAGCCAGAAGGAACCTGAAGTTTC
-AGGGCTAAGGAGCAGATGTGTTGCCAGGAAACTTAACCCCCACACCAGCC
-TCAGCCTCAGATGCAGCCTGTGTTTAGTGGAGCTGGCTTAAAAAAAAACA
-CATAATAAAGCAGGGATGGTAGGGGGTGCTGATTCCTTGAGTATTTGCTG
-GAAGCATGAGTAATCATGGCTCAGTGAAGTGACACTGAAATGCTGTTTTC
-CCTTTATTGTCATTAACGTTGATAGCGGTGACAACCCCCAGTCCTGTGTT
-TCTGTGGCGTGCATGTGTCAGAACTCCCAGAACTTTACCAGCAGCCGCTC
-TTCTGTGCAATGCGCAGAGCAGTGGGTGGGAGAAGGCGTCTCAGGTCCTC
-ATCCCAGggcttggcaggaaaacggggctggatcggattcaggagaccag
-ctccctctacctgtttctgctcccctttacccaggcagccttgggtgaga
-cacaggtcgtcccagaacctcagtgtcatcctctgtaaaatgaagaaatt
-ggatgccacccttaggaaaatctttctggttatgatattctgtgtatgaG
-CCACTAACTGAATAACTGAAGTCAGACAAACTCCCGTTGTCTAAATTATC
-TGAAAAATCTCAGGCTGTGAAGCTGAACAGATGGATGAATTTAATAAATG
-CATCAAGGATCGTTGCTATGGcagtttcgtgatctgtaaaatgggtttca
-tgatgacctttttgggcattctaagattcagagcaatgaaattttcaaag
-ctctcagctcagtgctaggcacatggtagacAGGAAGTCAAACTCAGCTG
-TTGTTCAAGCTGGATTCATGTCCAGACCCTGCCACCAAATCGCCAGGTAG
-TTCCCCCGTGAGAGAAGGTGAATTCTGCTCAGTCTCCCCAGTCCCCAGTC
-CAGCAAGGGTTCTGAGCACAGTGAGGTTGGGGACGCCTGTTCAGGAGCTG
-AGCTCTGGTCTCTGAGCTTCATTCTGGGCTGAGCTGGCTGTGAGACCCCA
-GCTGTGTGTCTTCAACAGTCAAAACACCTGTTTGTCCAATGTCGGCCCTC
-AGGAAGGAGGGTGTTAGGTCTAACCCCAGGGCCTCCCCACCCACCAGCCT
-GCTGTGGGACGATGGTTTCAGTGGTTTATTCACAACCACAGTGATGTCTC
-CACTCACAGCTGCCTTCCCTCTCTGCCTTTCCCCACAGCAGGGAGTGGCA
-GTGACACTGCTCCATGGAACACCTGAAACAttttctttttctttgagaca
-gagcctcactctgttgcccaggctggagtgcagtggtgcgatctcggctc
-cctgcagcctccacctccctggatcaagcgattttcctgcctcagcctcc
-caagtagctgggattacaggcgcctgccaccaaacccatataattttttt
-tttttttttggtatttttagtagagatggggtttcgccatgttggccagg
-ctggtctcgaactcccgacctcaggtgatccacccgcctcggcctcccaa
-agtgctgggattacaggcgtgagccaccgtgtcaggctACCTGAAATATT
-TTCAATCCCCAACTTCTGTTTTTGCGGAATGGCAACCATTCAGTGACCTG
-AGCTTAGATCTCCTGAACCGGCGTCCCAAACCTCACTGTGCTCGGGATGC
-TTGCTATACAGGGAACTGGGACACTGGGCAGAATTCACCTTCTCTCACAG
-GGGAGCAAAGTTGCTCGGCAATTTGGTGGCAGGGCCTGGACGTGAATTCA
-GCTTGAACAGCCACTGACTTTGATTTCCTGTCTACATGTGCCTGGCACTG
-AACTGAGTGCTACGAAGGTCTCATTGCTTTGAATCTTATAAGCCATTTCT
-TCCCATTATAAAAACATATAGAAGTTAGTCTAAGAAACCCATGAATTTGT
-GCTAGGGAGTGGATTCAGAGCCCAGGAGCCCAGAAAGGTGAGCTCCTGGG
-TGACTCCAAGGACCAGGGTCCTCTCCTGGCCTCCGCTCTGCATTTGACAG
-TGAGGAGCTTCCCAGAACTCTTTCTGCCAAAGCCACGTCCACCCCCGGCA
-TGGGATTCTGGGTCTGAGCAGAGGGGACCCTCGGACTTCCTTGAGGCCTG
-TGCCTGGTAGCAGCCTCATAACCAGCTCCAAGGTTTTTCTTTTTGAATGT
-GTACAAGTGATGCTCTCTGACGCCCAAATGCTCTCATCTCGATGCTTGGT
-GTCAGTTTTAAATTTGATTTCCATGACATAGAGCTTTGGACATAGGATGA
-GAGTTACCCCTAAGTGTGGGATGCAGCTCAGGAGATACCATTATTAAAAA
-CATCAGTCCACGCATACACACGGCTTCTCTCTTCATGCTCCTTCCTGACA
-GGAAGCCCGGGCAAGATGTATTCTTATTCTTTCACTATTGTTGCTACTCC
-TGTCTTTCCCTTCCCACACTGAGGTTCAGCGCTGTCTACACTGGGGGGTG
-CCCTCTGCTCCCTGAGCTGGAGGTAAGTCTCATTTCTtgtagtgggttga
-atgatgattcccaaaataccacgtccacattgtagcccctgggacctgtg
-aatctgagcttatttggtgaaaaggtccttgcagatgcaattaagaatct
-tgtgggcgggcacagtggctcgcacctgtaatcccagcattttgggaggc
-tgaggcaggtggaacaactgagtccaggagttcgagaccagcctggccaa
-catggtgaaatcccatctctactaaaaatataaaaattaactggacatgg
-tggtgcatgcctgtaattccagctactcaggaggctgaggcaggagaatc
-tcttaacctgggaggcagaggttgcagttagccgagatcgtgccattaca
-ctccagcctgggcaacagagcaagatcttgtctcacaaaaaaaaaaaaaa
-agagtcttgtgatgagctcatctggattagggtgggtcctaaatccaatg
-acaagcgtccctagaaaagatggggagaagcacaaggggaggccacatga
-agatggagacagagatgggggtggtgcctctacaggcctgaagtacccag
-aagctggaaaggggcctggaatagactttccctcagagcctgcagacgga
-gacaaccctgccgtcacctccatctggggtttctagccttcagaactgtg
-agggagtccatgcctgttgttttaacaccaccttgtttgggttaatttat
-tagggcagctgtaggtaactaacacaTCCTGAATCCACAGCCTGGGAGCT
-TCCCCCTCTTGGAAGTGCCTCTGGGCTTCTCCATGGCTCCGCTGGGCTGG
-AACAGGCTGGGGGAAAGGGTCCCCTCCGTTCAAGGTGGGTACTCAGGGGC
-TGTTGCCTCTGTGCTCAGTCCATGCTAAAGACAAAGCCAGAGGCTGGCTC
-CTGTGCCTGGCCCTGGCCCAGTGATGGTCCTGGATCGCTCTCCTGCCCTG
-CTGGTGGACTCTTCCTTTTGCGGGGCCTACAGCCTTCCTGACTGTGGGGC
-TGAGAACTGCGTCAGCATGAACCGAGCCCACCTTGCATCCTAAGCTGTTA
-GTGAGACGCTCCAACTCCTGATTCCCTCAGCAGTAGATGACATGGTCCTC
-ATGGCCTCCTCACTTGTGCTGAGACCCTGATGTGAGAAGAAATTTAAATC
-TCTTCTGCAAGGTCATGTGTTGGGAGGAGCCGTGCAAGGTTCAGCTGACT
-CACAGAGGCCCATGCTGAAGCCTGAGGCTTCTGCCAGGGCTGGATGCAGG
-CAGGCAGCTCACAGCAGGGTACCTCTGGAGCTTGGCATGCCCATGAGATG
-CAGTGACGCACCTGCAGGCCAGCATGGGCTGCCCAGATCCTGCAGGGAGC
-AAGTGGGAAGGTCCAGACCCCTGGACCAGGAGTGAGAGCCTGCCACAGTG
-TCCCTGCCAATTATGAGAACATTCTCCTTTAATTAATCCCAAATACCTAC
-CTCTGAAAACTCATCATTGCCACTTGGCCAGAAAATATACATCCTTATGA
-TGCTCAGTATGGAGACTTGGGACAGGTTCTGGAGAAAGATGACGAGAGTA
-AAATTAACAAGGGTGCATTTTAGAAACTGTGATATTTAAAAGGCAGTTTG
-TCCTCCATCAGAAAATTTGACATTTAAAAACCACTTTCGATTTTTCTAAA
-AGAAAAAAAAAAAAAAGAAAGGTCTATTCCTGCCCAGAGAGGAAAATGTA
-TAAAACTGTGAGAGATTTGCCTGGAGAAAATCACATTTTCATTTTCTCTC
-TTTGAAAAGTTGAATTGCAAGAGGAAAGGTAAGGTTCTGCCAAGGCTGCA
-GGTGGGAAGAGGGGTGAGGAGGAACCAGCACTGAGGCCTGCTCAAAGGCT
-CACCTTCACTGAAAATTCAGAACAGAGCTGCTGAGTGGCTGGCCCTGGAA
-GTGCTGTTTCCCTGAAATGAGATATTGAACAATCTTAGTGGATTAGAGCC
-CCACAGCTGGAAATTTTCATAAAATGATCTGACTACGAGAGGCTCTGGAG
-TTATGGCGCAGATCTTGTGGCTTCTTTTGCTATTGCTTTCTCTTTGCTTT
-TTTTTTTTTTTTTCCTGCTTTTAGCATCTATGAAGGTCCTGCATAGGAAC
-AGCTCTGAGGTTCCAGGAGCACGCATGGTGCCAAGGCGCTTTGTCTTGTA
-GCTGGAGACAGCTGTGTCCACAGAGCCCAGACATGCAGATTTTAGAAGAG
-CACATGGCAGTGTTTCTTATGATTTTCTGTGGATGAGAGAAGTCCCTTGG
-AGGTCATCACTCCGGGACGTCCAGGGGGCAAGGAGGCACAAGAGTAGGGG
-TGTGGGCTCCGGATTTAGGAGTTAAGCTGCATGACCTGGAGCCTTCCTCA
-GCCCTGCTCATGCACACACCCTCCTCTGAGCAACGTGGAAAATGACACCA
-ACCTGCTGCAGTTTCTTCAGGATTGGAGGGCGTGTGCACATCCCCTGCCA
-CGGCATCCTCAGCAACAAGAAGCTGCCATTTTCAccgggcgtggtggctc
-atgcctgtaatcccagcactttgggatgctgaggcaggtggattacttga
-gatcaggagttcgagaccaccctgggcaacatggcaaaacccatctctac
-taaaaatacaaaaattagccaggtgtggtggcaggctcctgtaatcccag
-ctacttgggaggctgaggcaggagaatcacttgaacccaggaagtggagg
-ttgcagtgagccgagatcgcgccattgcactccagcttgggagacagagc
-aaaactctgtctcaaaagaaaaaaaaaagaaaaaaaaaaGTAGTCTTGTG
-CTTTGATCACATGTGGGTGGGATTGAGACTTGGCTGAGTGCTCACACCTG
-AGGGTAGATAAATGCTGTCGATTTTGAAAGGAGAAACCACTGTGGTCCTC
-CACCGGGCAGTGCTCTTGGGACTCCTACTGACAAATATCTGTTGGGTGTC
-AGGTCTGTGTGCATAGCAGAGGCCCCTGGAGCATTCAGAGTGAAAATCCC
-CAGAGAACATTCCAGGGTGGGCTAGGCTGAAAGCATAGACCACAAGAAAA
-AAGGGGGTGCACACTGACCCCCAGAAACACGGGAGAGAGCAGGTTGAAGA
-AATCGCTCGTttctgttcaacatcgtcatcaaggacttgaagaaaTCACT
-CGTTTCTGTTCAACATCGTCATCAAGCACAGAGGGGACATCTGTAAAATG
-CTCCaatattattcagcctcaaacaagaaggaaattctaccatttgtctc
-aatgtgggtgaatctggaggacattgctaagcgaaatgaaccaggcacag
-aaaggtattaataacaaccatacagtcacactcgtatgtggattccagga
-gagtcaaactcaaaagcagagagtagattggtggttcccagaggctgggg
-tgagggtcagggacgggcagatgctggtcgaaggaatcagcccgatgaaa
-ggaataggttctggagatccatcgcccagaattgtgattacacttcatca
-ttacgtattgtatgttccaaaattgctaaaagagtggatttaaatgttct
-caccacaaagaaataaaaggtatgtgaggtggtggatatatgaatctagc
-ctgactcgaccattccacaatgtatacatatatagaaacattacattgta
-cctcatgcatatatacaattgtttgtcaaatttaaaataagaCATTAAAA
-AAAAAGGCTGCACAGGCCATATCAGAAGCTGCATGGCTGGACCTGGGTTA
-CCAATGCTCTAGCCCAACACTGGACAAGGGCGTGCTCTGGAAGGATGTTT
-GGTGCAGCAGTGGACAGTGTGGCTAAGTGGTCAAAGCACCGACCCAGGCA
-GCCTGGGCCCTTTCCTTACTCTCCTGGCCCCGTGATGGGTGCTCTCATCT
-GGGAATGGGATGCTGTTTGCACCTCCCTCCCAGGGAGGTGCAGAGGAAGA
-AGCCAGGGGGCCCATGTAACATCCTTAGAATGGGGCCTGTTCCACGGCAG
-GGGCTCAACAGCATCGACGTTGAAAGCAAATCTCTGCACTTGGACCCCAA
-ATTGGCCTCAGCATGACTGGAGAGAAATGGGAAGGAAGCCTGCATGGAGG
-GAAGCCTGCtgtgttaagctggtttttgtgttgctataaaggaatacctg
-gccgggtgggtggctcatgcctgtaatcccagcactttaggaggccgagg
-caggtggatcatctgatgtcaggagttcaagaccaacctggctaacatgg
-tgaaactccgtctctactaaaaatacaaaaaaaaaaaaaaaatttgctgg
-gtgtggtgacatgcacttgtaattccagctactcaggaggctgaggcagg
-agaatcacttgaacctgggaggcagaagttgcagggagctgagactgcgc
-cgctgcactccagcatgtgcaacagagtgagactacctctcaaaagaaaa
-aaaggaataccagaggctgagtaatctgtaaaaaaaaaaaaaagagagat
-ttatttgtctcacgattctgcagattgtacaggaaacatggcgcccgcac
-ctgttcctggtgaggcctcaggaagcttccaatcatgatgggagaggaca
-gagagcaggtgtctcacatggggacagaggaagcaagacagtggccgggg
-gagatgccacacccttttaaacaaccagatctcacaggacctcagagcac
-aaactcactcagtacctcaaggatggcaccaagccattcatgagggatcc
-ccctatgacccaaatagttcccaaaaggccccacctccaacattggaggt
-cacatttcaacatgagatttggaggggacaaacatccaagccttatcaCC
-TGCCGTGTTTCCAGGCTGGGGAGAGATGTGGCTGTCTGTGGGGTTCAGTA
-GACCCTGGGGTTGTTGGGGTGAAGGGACGTCCCCTGGGAGGAGGGGTCAT
-TGGCTGCGCCCCGGCCAGGCCAGCCCAGGTTAAGTGACAGACACTATCTG
-ACTCAGCATTTAGAGGGGAGCCAGTAGGCTAGTGAGAGGTGAGGAAACCA
-AGTCAGGCCTGTGAGTGTTGGCGGAGCTGGGGAGAAAAGTCTGGGGACAG
-AACCACTGGGTTCAAAGAACAAGGATGCTCTGGTCCAAAGTCAGGGCCTC
-AGATCACACACTGGGGGCAGCCGTTCAAACTAGAGAAGAGCTTGGGTCCA
-CACTGCCCTGCCATGGAGAGAGTTGCCCCAAAGCTTCATGTTCATGCTGT
-TGGGCCTGGTGCagtggtcaagagtgtggcgtctggaaccagacccccga
-gatgtaatcccactccaccatacagcaccaattagaccttgggtagttta
-gccaaagcctgtgagcctccgtttctcgtctcaaaataaggttgttgtga
-agatttcatgaggtaatccatgcaaggctgttgtcatagtgcccagtcca
-ttttaagcCCAAGTCGGCAATTTTGCATTCAGGTGGAGACTGCCAGTCAC
-CTGCCAGGAAACCTTGGCAGGTGGTTCCTGTAACAGTGTGGGAGAGTCAG
-GCTCCAAGCCCTTCCAGCTCTGATGTTACAAGAAGCTACAGGCCCCAATG
-GCAGCTTCAAAGCATGTTCTCACATTTCCTCTCCTAAAAATGTCAAAAAA
-GAGTCAGTCTGCAGGGTTTTCAGGGGAAATGGACGTGGACCGTGCGGTCT
-TACCTGGTGATAACACATTGTAGATTTGGCCCAAATGGTCCTGTGCCTTG
-CACCCTCTGGACGCACGGTGGTTTCTGGAAGGACTCCCCATCTTGCTTTC
-CCTCCGCTGCATCTGAGTCAGGTGGGACTGTTGCCTGCTGCCCGCTTACA
-TGATGGCACCTGGCTCCTACCTGGGCTCTCGTCGTTTGTTTCTTCAAAGG
-CTTCCAGAAAGATCTTTCCACATCTCAACTCTGATCAAGTCACTCCCTGC
-TCAGCAGCCCTTGCTGGGCCTCTCCCATCTGGGAGTCAAGGCCCATGCGT
-CTGCTCCCGCCTTTTCAGCTTAGCCTGGGAGTGCCTTCCTCGTGCTCCAG
-ACAACACGCTCACTCTCTCCCAATTCCAAAAGTCCAGACACACCCAGAGC
-TTTCCGGACCCCTGGCTTCTACTTACAGAGTTGTCTCCACTCTTGAAGGC
-CCAACATAAGCATCAACTCCCTCACAAACATTTTGGAATCTAAACCTCCC
-TCCCACAATTTACCTCTGAACCTCACTGATCCATACTttgttattattgt
-tattattattattattattattattgagatgtagttttgcacttgttgcc
-caggctggagtgcaatggcgcgatcttggctcactgaaacctccgccttc
-tgggatcaagcgattctcctgcctcagcctccagagtagctgggattaca
-ggcatctgcaaccatgcctggctaattttttgtaattctttttttttttt
-tgtatttttagtagaggtggggtttctccatgttggccaggctggtgtca
-aactcctgacctcaggtgatccacctgcctcaccctcccgaagtgctggg
-attacaggcgtgaaccatcgcgcccagccCTCATTGATCTGTATTTGCAA
-ACCTCAGAGCATTTGTTTCACTTGCCTGGCGTCAGCCTGCGTGTGCAAAG
-CGGTCCCCTGGGATACCCATCTGTCTTCTCTGCATCTCTTCTTGAGCCTG
-AAATATGCCTCTTGCCTGCAAAGATTCAGTACACATTTGCTGGATAGAAT
-CAGGTCATTTCCTTTCCCTCTTGTTAGATGATGAGGGCCCTGACTGCAAG
-AAGTGTGTCTGCTGCTTCTCCTACTTCCCCCAATGTGTTTCTGGGATGAA
-GACAAGTGACAAATCAAAACTAATAACACATAGttaccattatcaggcac
-ccaaaggcttcacatatgctagccccggctattcagccagccagtgggta
-ggtactgtggttcccattttatggctgtggagggtgagtggccacccatt
-tctgctgctttcccctgatcaaagagcccatgaatgtgggttgattcact
-gaggcaaatccagatatgcttggcctcatgtcctgtgttctttccacGAC
-TCGTCATTGGCACTCGCAAGGAAACCAGGCCCCAGCCACTGCCCAGGAGC
-TCTGCTGGGTGCCGAGTGGGGCTTTGCCAgcgagatacacaagacttgtg
-tctacttggttcatagctgtgtccccatggtctggtccaggcttggcacc
-gagtaggtcgttaataaatattttaaaatgaataaatAGGCAGCAGAGAG
-CTCAAGCAGGGATGAGCAAGAATAGCGAGTTAGCATGAAGAATGAAATGA
-AAACCCCATGAGTCTGAAGTGCAGAGGTTTTAAAATGCACAGCCCTCAAT
-GGGAAGCACTGACTCGTCACAGAAGTACAAAAAAAAAAAAAAATCTGGGC
-AATGCCGAGGCAGGAAAAACCATTTAGCATGAAATAGGAAGGGAGGAGGA
-ACTAGCAGCAGGCATTGCACAGAAAGGAAGGAAGGGGTGAATTTATAGGA
-AACCCAACTGCATTATCCTGAAAGAAAGCATGGACAATTTCAGAAACGCC
-CAAGGCACTTCCACTCTGGATATTTACGGAGGAGGCAGGGACGTCCCTCC
-CAGGCAGAGCATCGGGAACAAGCCTGGGGGACTGTGCGGAGAGAGAAGAT
-ACCTGGCTCCAGCCTTTGGCCTCTGTGAACCTTGATTTCATGAGGGCGCC
-CAGAGCCAGCAACTGCTGTAGCCACAAACCCTTACACTAATTCCACAATA
-AGACAGAGATAATTGCCACAAACACACCTGTATCTGTCATTCTCCGCCGT
-GCTCAGGGGTTCCTGAAGCTCTCTGTTGTCATTAAAGACAGCTCAGCGTC
-CAGTTGCTCAGAAATATACACGGGCCCTTCTGAGCGGAGCAGAGTGGAGC
-TGCCGGGCTCCCGGTCCCTGGCCGGCTGGAGACAGCACATCCAGTCTCAC
-TCCATATTTCTGCTTATTTTCTCTCTCTTCCTGTACTCCCTTTCCCAGGA
-CAAGCTCCGCGGCCAGGAGTCTGTCTTGATTGATGGCATTTTACCTGGAC
-CTCTCTTCTGCGGTTTTCTCCCTGATACTAGAAATGTGTGTGTGAGATTG
-TGTATACCTGTGTGGTTGTGTTATGTGGGTGTGTGCAAgtgtgggtgtgt
-gcatgtgtgtgtgtctgtgagtgtatgtgtgagaatgggtgtgcgtgtgt
-gtgcatgtgagagtatgtaaatgtgagtgtgaatgtatgtgtgagtgtat
-gtgaatgtgagtgaaaatgtgtgattatgtgtgtgtatgtgtgtggggtg
-tctatgagtgtgagtgtgtgtgAATGTGAATGCATGCAAgtgtgggtgtg
-tgtgtgtatgtgtgagagagtgggtgtgcatatgagagtatgtaaatgtg
-tgtgtgagaatgtgtgagtgtatgtgtatgtgaatgtgagtgaaaatgtg
-attgtgtgtatatgtgtgtggaggggtgtctgtgtgagagtgagtgtgga
-tgtgtgtgaatgtgtgtgaatgtgagagtatgtgagtgtatatgtgtgtg
-tatgtgtgaatgtgagtgaaaaggtgtgagtgtatgtgtgtgagtgtgtg
-agagtatatgagtgtatgtgtgaatgtgtgtgACTGTCAGAGTATGTAGG
-Ggtgtgtgtgtgaatgtgaaagtatgtatttgtgtgaatgtgagagtatg
-tgagtgtgtgtgtgtgtgaacgtgagtgtgtgtgCATACATGCGCATGTG
-AACAGTCCATGGAGCTTAATCCCCTGGAGGAGGGATTCTACAGCATCACA
-TGTAGAAGGCATTCTGCTCAGAGAATGGCCTCCATTTTTCCGGGAACGCA
-CCTGTTCGTTCCTCTATCAGAGGCACCAGCTACGGCTGCGGCTGCCCCGT
-CCTTGGTGAATGTACAACGACGCTTCTTGGCATGAGATGCAGACAGGCCC
-ACACTTTGGGAAAGGGGCCAGAACCCGAGATGTATGTATGTATTTCCTCG
-CTAAGAAGAAACCGCAGGTCTAACCATGATGTCATTAGAATGATTGTTTA
-GAGGCCTGGAATGAGACCATCTAATTACCAGTCCAACCTGACTCACTGGT
-CCTTTCAAATCCAATAGTGTTTCTTAAAATAAATGCTGAAAATGACTTCA
-TTCAGGGAAAGGCAGGTTGTGGCCATTTAATTATGGCTACAGATTAATGA
-ATGAATAAAATATACTCTGGCTAAATTGTGGGAATATTTTCCAATTTTTC
-CCTAGAAAGTAGTATTCCACTGATCTAACCTGGGACGTGGGATTTTGTCC
-TAAACACGGCTTTGTGAGTGCAGAAGACAAAAGGAAACCAAAGATCTCTC
-TCATTGACACCAGGCCAGGGAAGGGCAGGCACCCACCCTCACCTGTAAAT
-TCAGGTCTGGGGGTCCGGGTGCCTGCTCCGATGCCATGGAGAGGCGTTCT
-GTAAACTACAGCTGTGCtgagagcctcatctacaccaagccttggatcag
-atgcctccatattccatttcattcatttctcgtggcatatttggaatgga
-tagtaatgtcctagctttactgctaaagaaattgaagtgcagaaggactc
-acctaagctcacgtagtttgtgtcagagcccaaatctgaactcaagtcat
-cagactccaaaAGATTCTTCCTAAAATAATGCAGCTCCTTCTCACAGATG
-CAAAACCTTTGCTAGAAAAAAAAAAAGGAGAGAAGGTGATGATGTTAAAt
-cattcatcagacaaagacactcgtgaaggcccactttatgagaatatctg
-aatggtgcagggaacacacagatgaataagactcagctctgccctcacgt
-aagcagcgtctaatggtgaactcagaTGGACACCAATGCATCCCCACGAC
-ATTAAAGGGATCATAAAAAATTAATAGAATTATGTGTCCTGCAAACAGCA
-AGGACAGGGACATTCATATCTAACAGTTGCAGGGAAGTTTTTCCAAAGGA
-TAAGCTGCTCTTGCTGGCTGGGTTATGAAGGAGAATTGAAATTTGACAGA
-TGGAGGTTTGGAAAGCCCTGAAGAGAGAGAGAGAGAAGGAGGTGGCGTGA
-GCAGTGTGGGCGGGCGGTGAGAGAGGAGGGCAGATTTGGGCCTGTGTAAG
-AGCCACACTCAGGCTCAAGCCCACCCCATCCCATGTGACCTCCAGGGAGT
-AAAAGTGGGATGCAGGTCACGTGTGCCAGGATGCTCAGTGACAGATCGAG
-AGATCTGCAAGCGGGCCGCTCCTTCCCCCGACAGGAGTTCCTGAGCACCT
-GCAGGGAACCAGCGCTGGGCCTGACGCGAGGCTCCTTTTCTAGTGAGTCA
-CCTCAAGTGAGGACAGCACAGGCAACGCTGGACACAGGAGGACACCCAGA
-GCGTCTGGGAAGGCACCTGAGCTGGGAGCTCAAGGCAGGAGAGGAAATAG
-GCAGCAAGGGAGAAGGGTGTCTTTCTGGGACAAAAGAGTCGCACCTGCAG
-AGGCACAGAGGTGTGAGAGAGAAAGGACCACGAGCGGCCAAGGGCAGGCG
-GTACACAGAGCTCCGGCAGGAGATGGAGGAGAGGGTGGCAAAGCCACAGT
-TCCTGCAGTGTGGCCCGGGCTGTGCAGTGGCAGGTGCCCCTGACACCACG
-GGAGCTGCTGAGAGGGCAGCTGCGTGGGCAGATGTTTATCCCAGAGAGGG
-CAGCAATACAAGGGTTGGAGGGAGGTGGGGAGATCCGCTTCAGGCTGTGA
-TGTTGGCTTAGGCTGGAGGGGAAAGAGCCCGGAGCTGGGGCAGAACTCGG
-GTTGTCCAGGAGGCGACACTGAATTAGTGTCTGGGGTCAGATCCATAGAG
-GGCAGGAGTCAGTGCCTGCGTGGCTGGCTCGGTGAGGAAGAGAGGGGTGG
-GAGTGATGCATGAACTCTCTGAGGCTCCCACCGCAGCAGCTCCACTCCCA
-AGTATGGGGCTGGCAGGAGTCTCAGGACCAAGGGAGGATGGTGAGTTGGT
-TAGTTAAGTTTGAGCCGGTTGAGTTGAGATGTCTGCGTAGAGTCAGGTTC
-CACCATCACGAGGCATTTGGCAGATGGGCTGTGAGGTGAGGGGATCCAAG
-GCTTGGAAACAAAGTTTTGGGAGCAGTCACTGCCTGGCTGAGAAACTCAC
-CCCAAAACAGCATGTCCCATCCACCCCAGTCCACCCAAAACAAGAAGGAA
-GATGTAGTTAAAGAGATAGAAAAGATCCATGTCATTATCAGATAAGCATC
-AAATGAAAATTGCATGAGCAGACATATGCTTAAGGATTTCTTGGAAAAAT
-ACAGCTGATGGGGTAGGATTCCCAGAGAAACTTAATCAGAGAAAAGCAGA
-GTCCCCAAAACATGTAAACAAAACAAAACAAAAAAAGGCTGTTTTATTTC
-CCCTAAAGAAAGTTACAGAGAAACTACAAGGGGAGAGACAGCCAAGAAAG
-GATCAAGGGGGAAGGAGTGGGAAAGGGTTTGGTGGAGGGGGAGAGCACTG
-TGCAAATGTCAAGGTATAAAAGAACATGTGGACCTAGGGCTCCCTCCTCC
-CAGCCTGGTCCCATTGCTTCTGCAAAGCTGCAGAGATAGTTGCACCCAGG
-TAGAAGCCCCAGGAAGTTCTTTCCAAACAAAGTAAACTTCCCACCTGGAG
-AGAAACTCCAGGGTAAAGATAAGGTTGCGGGGGAGGGCGGGAAGAAGGCC
-AAGTCCAGGCCAGCTTCTGCCCAGCAAAAGCACCAGCAGGGAGCACTCCC
-AAAAGACAGGCAGCAGCTGACTTGGATGAGGCACAGGCTAAATCCACCAG
-GATGGATGCTTCTCTGAGTCTCAGGTACAGGAAGGTCTTAAGGTGGGCTC
-TGTGGCCAGAGGAGCAGGGTAGGGTCCTCATGAACAAGAACCCCCACCCT
-GGGAGGACTCACATCTTCTACACCTGgctactcagagtgtgggctgtgga
-ccagcagcctgacctcccccaggagtgtgttagacctgcatgacctaagc
-ccagcacccACGTTTCAACAATATCTCCTATCCTCTCCAAGCCCTGTGCA
-CAGTGAGGATTGGGAAGCACAGCTGATGCAGAGAAGGACCATGGCCCCGG
-GCGGAGTCAGCTGGAGCAGCTCACACTCCCTTAGGGGAAGCAGCTTTGTA
-GGTCTGGgggcaaaggatatgaacaaacatttcccaaaagaagacattta
-tgcggccaataaacatatgaaaaaaagctcatcatcacaggtcattagag
-aaatgcaaatcaaaaccacaatgagataccatctcatgccagttttaatg
-gcaataattaaaaaatcaggaaacaacagatgctggagaagatgtgaaga
-aataggaacgcttttacacactgttggtgggagtgtaaattagttcaacc
-attgtggaagacagtgtggcgattcctcaaggatctagaactagaaatac
-catttgactcagaaattccattactcggtatatgcccaaaggattataaa
-tcattctattataaaggcacatgcacatgtatgtttattgcagcactatt
-cacaatagcaaagacttgggaaccaacccaaatgcccatcaatgatagac
-tggataaagaaaatgtggcatatatataccatggaatactatgcagccat
-gaaaaaggatttcatttgctttgcagggacatggatgaagctggaaacca
-tcattctcagcaaactaacacaggaacagaaaaccaaacaccgcgtgttc
-tcactcataagtgggagttgaacaatgagaatgcatggacacagggaggg
-gaacatcacacaccggggcctgttggggagttgggggctaggggagggat
-agcattaggaaaaatacctaatgtagatgacaggttggtgggtgcagcaa
-accaccatggcgcgtatatacctatgtaacaaacctgcatgttctgcaca
-tgtaccccagaacttaaagtataataataataaaacaaTAATTTTTATTA
-TTTGCTTAAATGGTATGTAATTTTATATTGAGATACACAAAAAGACATAA
-ATACAAAATATGGAATATTTAAGTCACACAATAAATTTGACATTATTAAA
-AAAAAAAGGAGAAGAAGGTCTGGGGGTCATGTGGCCAGAGCTAAAACCCC
-AATTCTCCTCTCTCAGGTCATGTGAATTCAGGAAAGCCTCATGACCCTTC
-AAAAGGCTGGAGAAGTTGAGGTGGTGAAGCTGCTTTCCTCAGGGGTTGAC
-TGGAGAATTGAGTGAGGCAGCCCCTGCAAAGGCAGCATCCTGGTGGCCAG
-GGCAGCTATGGCCACATGTGCCTTATCAATGGTCACCAGCTATAGACAGC
-ACCCACCTGCCCCCTCACTGCACACCCATGCCTTCCTGGAAACACAAATC
-CACTGGCTCCAGGCACCGCCTTTGGAATAATCCCTCACACGTGAACGGCA
-CTGCCAGATCTCTCTGTGTTCATTCTCACACTCCCTGCAGACCCCCTCGA
-CACCCCCATGGTTTCTCAGGAAGGAGATGAGATTGTTTGTAAGAATATGC
-ACGCACACATTTTCAATCAGCCGGGATTCTTAGCACGTGGGTTTGCATGC
-CTTTTCCAAAACTCTGCCTCTGAACTTGGAGGAGAACCTGCTCAGTTCAC
-AATGGCCTGTGCAGGGGCTGGGGTGACCCTGTGTTTAGCTAGAACATCAA
-GACGTGAGAGTCTTTTGAAGTAGCCACCCCTGGGGGTCAATCACACCGAC
-TGCAACACTAGGCAGACTCCTTAGAAATAGGAAAACGGGGAAAGCTCCAG
-TATCATGACAGGAGGCTCACCTAAGCTTGATACCCAAACTGGTTTCTCGG
-gagcatcttgaaagcagtggcttagtctggatcctcatagtgttctgatg
-cctaaggaatagtttatatgtggaaaatgctcagtatatgcttgctaaat
-gaaATTATGAAAGAGAAGAGAAAGCTACCTAGTATTTATAAAGCCATGTA
-CATGCATATACAGCTATTTCCTGGGTGGAGGAGCCTCTTCCCCTGGCTCT
-ATAGGAGTTATTAGTTCAGATTCTTGGAATGTGGAATTTTCATCCTTTGC
-CTGAAAGCATAGATATATTTCTCCCAACAACAGCCCCAGTCACGATCCAG
-TGGACCAACCTGAAGTGACCCACCCAGCCCACATTGGCAAGTCTGTGAGG
-GCTGTGGACAAGGAGACACGTTGTCTTCCTACATTCTGTAGACAAAGGCA
-GTATTAGGCAAGATTGCCTGGCACTTCTGCTTCAGTAATTGTCATCGTTC
-AGATTTTCCCCACTGTTTAACACACACGTGAAGATACAGTGAGAAGAAAC
-CCTTTCATTTAAAAATGATATAGCATGTACACACACCGTATTACTGTATT
-CTGTGTGTTGAAATACAGCAAATCTTTGTTGGGAACTTTCTATTTTTCCA
-AAACAATGGAATAGCCAGTTTACACTCATTCTGCATGAAGTTTTATCAAC
-TACAAAGGAGGAAAGAATAAAACATCTATGTGTCTCtaacatcccagaaa
-gccagagctgggagggacattaatgattatagagtccaaAAAATGTTTAA
-TGTGCTCAGGAGACTGCTATAAAACGGTGATAAATTAAGCTTGAGACAAT
-GAAAATTATTAGCTTGTAAGAAAGCAGACACTTTGTCATCCTACATTCTG
-TAGACAGAGGCAGCATTAGGCACCGGTGTGTCCGGGCAAGTGTGGGAGGA
-AGCGAGTGGATGGTGAGAATTCTTTTTCTCCCATTGGAAGGAAATGTCAT
-TGCCAGGTTGTGAAAGGCAGAAGCTCCCCCAGGCTGGCATAGCAACAGCA
-TCCCTCAGAAGCTAGACTGAGCATTGTTGACCTGGCTCAAAGCCCTCACT
-ACAGATTAGGAAGCAGCTGGAGAGATGGAGAGCCCCTGTGCAAATGCCCA
-AAGATGGGTTCAGGAAGCAGAATTCCCTTTTCCTTCCTGCAATCTTGCCG
-CTGGTCAATGTCACTTCAGTTCTTTCTTCCTGAGCCCCTGCTGTGTTTCA
-GGTCTTCTCCGGGGACTCACagggtatgtggaaagaagaggaactgctgc
-gttccaggtgggcacactttccattttgctggctgatgtgtttggctccc
-cgaaaatgactgcactaattttatcccactggtagtattggagagtgcat
-tttcacacaccttttccaataatggagacagtgtgaatttctcattttga
-tgggtgaaaatgtgtatacatttgaggtcttaaatttgcacattcttgaG
-GATGGGGGAGGACGAGATTGTTTACAAGAacatgtacacacatgcgcaca
-cacacgcacacacatgcacacacgtgcacacacatatgcacacacatgca
-cacaagcatacacacatgcacacacatgcacacgtgcgcgcacacacaca
-cacatgcacacaagcatacacacatgcacacaaacataagcacacacaca
-tgcacacaagcatacacacatgcgcacacatAAACATGCACACATGCGTC
-CACAttttcttttttttttttgagacggagtctcgctctgtcgcccaggc
-tggagtgcagtggcgcaatctcggctcactgcaagctccgcctcctgggt
-tcacaccattctcctgcctcagcctcccaagtagctgggactacaggcgt
-ccgccatcgcgcccggctaattttttgtatttttagtagagacggggttt
-caccatggtctcgatctcctcacctcgtgatccgcccacctcggcctccc
-aaagtgctgggattacaggcgtgagccactgcgcccggccCACGCGTGCA
-CATTTTCAATCAGCCGGGATTCTTAGCGTGTGGGTTTGCATGCCTTTTCC
-AAAACTCTGCCTCTGAACTTAGAGGAGCACCTGCTTAGCTCACAATGGCC
-TGTGCAGGGGCTGGGGTGACCCTGGGCTTAGTTAGAACATCAACACATGA
-GGGTCTTTTGAAGTAGCCACCACTGAGAGTTAATCACACTGACTGCAACA
-CTATACAGACTCCTTAGAAATCGGAAAGCAGGGAGAGCTCCAGGATCATG
-ACAGGAGGCTGGTGTAAGCTTTATACCCAAACTGGAAAAGGCCAAAATTG
-AACAAATAAATGAAGAGAAAGAAAAATAAATTGCTTTGGGAAGTCTGGCC
-acagattcagtgctttttctatcaaactaccaataacattattcacagaa
-ttagaaaaactatttaaaaattcatatggaaccaaaaaagcacccaagta
-gccaaggcaatcctaagcaaaaagaacaaagctggaggcatcacattacc
-caacttcaaagtctaccacaagtctacagtaaccaaaacagcatggtaca
-aaaacagacacatagtccaacggaacagagtacagagcccccagataaag
-ccacacacctacaaccatctgatctttgacaaagttgacaaaaacaagca
-atggagaaagagctccctattaacaaatggggtgggataactggctggcc
-atatgcagaagactgaaactggatcccttccctaaactacgtacaaatat
-caactcaagatagattaaagacttaaatgtaaaacacaaaactataaaaa
-ccctgaaggatagcctaggGCATGGGACCCTGAGATCTGCCACGGGGACA
-TTCATGGATGGGCCCAAGAGCCTGAAACTCCTGAACTCTTAGGGTTAGCA
-ATGGAAGCCCTTTCCCTTTGGCTGGAGAATGTGCAATGACCTCACCTGAA
-GCAAATGTCTCAGGTGGTTCTGTGCCTCTTCTGGTGCATCCCACCGGCCC
-CTCAATGCCTCTAGGTCAATGACCAGGTCACAATCTCAGGCCAGACAAGG
-AAAAGAAGTCCAGACCCTGCCCTGGCAGGAGCTAGCTGGCATGGCAAAGG
-CATGCAGGGCCTAGTAGATACATACTGTTAGAACCCAGCATGGAGCGTGA
-TAGTGAGTGATGAGTGTGGGGCCCAGGGGAGGCCGAAGGCAAGGTCGGGG
-AAGAAGAACGTGTTGATGTGGGGGTGCTCACCTATGACTTGGAATCTTTG
-CAAGGACAGGGGCCTCTGCAGCTGGTTGTGCCAGTCCGTTGAAGCCGTTT
-TTTTGAAGCCTAGAAGAGGGACAGGCAACAGGAATGAGTGGAGATGGCAG
-AACTCCCTTGTTAATAGAGAGGTCTGGGCCAGAAGGCTAAGGCAAGTGTG
-GATGGGAGGTGGATTTATTCTGAGACGCGTGGGGCACCAGCCTCTCTAAG
-GAGCACAGTGATGTCTGTCCTCGAAGGCCACGGCTGGCAGCCAGAGGCTC
-TGCCATGGTGTGGAAAGGGACAATGGGACCCAGAGCAGCACAAGCTGGGG
-AACAATGACCCTTGGACGCAAGGTGGATACAGCCACCATCATGGGTGCCA
-AGGCCAGCATGGCCATTCATGTATGACCACAGGGACCTCTGGAGCTGGCC
-AATGGGTCACTGTGCTCCTGGGGGTGAGGGAATGACAGCCAGTGAGGACA
-CTGCCTGTCGTACCTCTATCATAATTTTCAAAAACGTAAGAGTTACAAAC
-AACTTGGAAGTAGACTGATGTCAGTTGCCACAGTGAATAACGATGATCCT
-ACCCTAATATCCAGACCTCAGTCAGTTTATAGTCCCCGGAGCTCACTGCT
-GAGTTTTCCAAGGATATGGATGAGGAAGATGTGAAGTTAGAAAGAACAGA
-AAAACAACAGCCCAGAGTTTCAAAATAGTCTGGGGTTGATGAAGAACTGC
-AAGCTGATGAGCGCTGCTGATAACGGATGGTGGCTCCAATGCACGCAACA
-GTTGGAGtgagtgcttaacacagttagtgtccaatcattaaagttaccat
-aaaaggtgggtactattattacccccctttttcagtgagaaagatggaga
-cattgagaggttaaggtgggttgcccaaggtcaAAGCATCCATCTTTACC
-TCAGTTGCTCCTGCCCACCATGCTGTGAAATGGGAGGTGCACATAGTCAG
-GGTCTGGAAAAGGTTGGCTGGATGGATGGTGAGGAAGAGGTCTCACTTCG
-CAGGGAAAAGAGAAAGCCTCGGCCATCATGGCAGACAGTACAAGCTGTCA
-CCAGAGTAGACTGAGTTTGGTGAGGCTTGGAGATGCAGCTCAGATGGGGC
-AAACATCGCTGGAGGAGACAAGAGCTGTCCACAGTGACCGGGAGGGAGAA
-CCCATGTCTGGGCCCCGCGCCTGCTCCGCAGCTTCCAGGGACATGGCTAG
-GCTCTGCTGGAGTCTCCTTGACATTTGGAAATTTCTGGGCCCATTGTGCT
-GTCTTCTGGAATTTTTGGTGCCATCCAATAATTTAGAGAGCTACGAGGTC
-ATCAAGCCTTACAGAATTTCTGAAGAAAAAGAGGGCGTTTGCAAAATGAG
-GGCATTGcccctcttgccgaagagaagagcaaggaacaaataggttaatt
-aatttttcctgaggtcccaccaagagtcaactgcataactggataagaac
-ATTTCACTCTAATGATTTTATGAAGGAGGTACTCTGTGTCCACCTTCACA
-TTTTCCAAGTCACCAGGGCACTCCCGCTGCACCTCGGTCCAGGCCTGCAT
-CCACGCCTCGCACCAACTATTCCACTTGAAGCTGTCAGTGCTGTCTTAAG
-ATTGATGAAATCCCCTCAAACATGCGATTTCATTTGATCCACAGAGGGCT
-GGAGCAGACGGAGGGCAGGAGCACACGGAGGGCAGGAGCACACGGAGGGA
-GAGGAGCACACAGTTGAGGGAATATAGAGGGAAGCTGGGGGAGGCGGAGG
-AGAGGTGGGGCAGGACCAGGCACTGGTTCTCTCTACTGCATAGGAGTCTG
-ATCTCCGCTGCCCGGTGGCTCCTGGCTGTGGGCTCTCAGGTGCTCAGGTG
-CTTACGTGGGTGCTGCTGTGCTCACCCCAGCAAGTCACTCGGGAACCTGG
-CCAACTGCCTGCGGGGCCTGCTGCCCAGCTTCAGATGCCTGGGAGGCAGC
-CACTGAGCCATGAGAAGATGCTTCCTGGACCAGACAAGAAACAGCGGGAG
-GTGGTGGTTGGGGGAAGTGGAGTTCTGAGATATATGGAGGATAGATTATA
-CCCAGTATGCTCACTGCTCCTTGGCACATGGATCTACTGGGGCTCTCAGA
-GGCAAGCACAGGTTTCACCCCCAGTGctgccagaaactgcacctgcctcc
-tcctctcagcctggccaactccaattcagccaggaggtctcctgtttctc
-accactgcctgctgaagtcttcctgtctgtcgaggccCCAGAGGGCTGGT
-GGAAGCCATTCTCCGCGCCGAGACCATGGTGTACTCACTTCTGCACAGTG
-GCTCTCTGTGCTATAATGTACCCATCTGTCTCTGCTGTTTTGGGTGCAGC
-GCAGCCTCTATCCTGCTCGCAAAGTACTCTGATGCCATCCACGTTTCTGG
-GGAGGTGCGTCCCTCAGTGAGTGTCCCCTGAGTGTGGGGATGTTTGAATG
-AGTGAGTGAATGACTGCATTGCCAGCCTGCAGCTCGGGGGTGACGTACAC
-TGGGTGCATAATAAGCGTCCCTTCCATGAGTGTTTGAGGGACTCAGCTGT
-GACTCCAGCCCTTGGCTATGCTTCTTTAGCAAAGGGAGCCCTTCTGTGTC
-TGCCTCGGCAGTGGCTATGACCGTGTGACCAAGGGCCCCTCTAGCCCCCA
-CAGAGggctgaacaagggtcccgaaaggggacctacatcaggtctgaatt
-cctggcccctgtaaatgccaccttatgtggcaaaaaggactctgaagatg
-tgatgacatcgagaagcttgagctggggagatcttcctggattatctaga
-tgcatcctaaggatgacatcacaggcatccttacaagaggggggccgaag
-gagaggtcctacagaagaagagagggcagtatggcggctgaagcgaggtg
-ccatgctggggcttgaagaaggaggaagcggctgtgggccaaggaacttc
-aatccagaagctggagaagcaagaaacaaattatctcctaaagcctccaa
-taggagtcagtcctgccgatgcctcgatttcagctcattgacgtggattt
-cagatttctgacctccaaacctaggggagcgagtgtgcgtggctttaagg
-cagccagcttggggtaatttgtcatggcagcataggTGGGTGTCACACAC
-TCCTGCCTGGCCCCTTCTCCTCATGTGGGAAGAAGTGGCCGGGACACCTG
-TGCCTCCTCTGGGCCATGGACAGGCACCTGGAGCTGCTCTCCTGCTGGGT
-GGGGCCTCCCAGCTTTCCAAGCCCTGCTCGTCCTTCGTAAGTCCATGGGC
-CAAGTCCTCGGCATTGTAAATTAAACTCTAAGGACAGCATTGGCTTCTTC
-CCTGACTCGGAGGCTGTGACTCTCACAAAGCCCAGGGTAGGGGGAGGTGG
-CCCCTGTCCCCAGACCGCATGGCCTCGGTGGATGCCACCCTGTCTCTACC
-ATCACTACCCAACAGCAAAAGCTATGTGTTCCTTTGACAACGATGTCACA
-GTAAGCTTGCTTCTGTGTCTTAGTCATTAACCTTAGGACTGTCTTCTCCT
-TCTGGCCATTAAACTTTCTATTTACCAGATTATTCTCAATCGATGTCATG
-ACGAGCAAAAATCGACGTAGTTAGACATGTGCGCAGATGTGTCCAGGCAC
-TTATTTCTTTTGAATTTGTTGCATGAGTAAAAGGACCACACAGAGCCAGG
-CTTATATTTCTCGAGGTTACCATCATATGTATATTTGCTACCTGCAGAAG
-GAAAGGTCTTAAAAAGCCACAGTCATCTTCATTTCTATTGGAAGTAACCT
-GACTGTTAGTGAAAAGCTGGGTTATCTGTCCACCTATCTGAGCAGTCTGA
-CCCTGCCAGGAACACTGGCTTGGCCCTTCCAAGGCTGCAGCATGGTGGGA
-AGGGAGGCCCTGGTGCCTGAGTGATGAGGGTCATGGCAAATTTCACAAAC
-AACTGTCCCCTAGAATCACACTGAAATATCTGGGTTCCTTCCACCGGGTC
-CTTTACTTCTCCTCCTAGCTGCCAACGCGATCTGTCCACTATTAACAGCT
-CAGCAGATGGTGCATAAAATAGGAAGCCATTTCCAAAACTACATAAACTC
-CCCAACTCTGAGAGGCACATAAAGTCTGATTAATCATCTGGAACAGAAGC
-TTCAACCTCCAGCTCATCGAAAATGTGATTATTTCTGTCCATGTTTGAAT
-ATTTTCTGGAATAGCAAGAACATGCATATCCAGGAGATGACAGCTTCTGG
-CTGGGCGAGAATGGAGAGCGATTCCCCTCCGCTGGCCCATCGTGAGGGCT
-GCCCCTGAATCCTCATTTCTTTCTCACTTCTCTCTTTTTTGTTAACCACC
-TACGAATGCCCCGGCCAAGCTCAGTGTGTGCCTCGTGGAGAGCACACAAC
-ATATAGTTTAGCGCTTGCCAGTCTCCCGAGGCTGCTGTAATAAATTATCA
-TGAGAAATGTATTCTTTCACAGATTTGGAGGCCAGaaggcagtactccct
-ccaaacgctccagggagaatccttcctgccctgcccagcatctggtggct
-tggcgttcctgggcttgtgctagtgccgcatccgtctctcctccgtcttc
-agaaggacttcttctctgtgtcccacctcttcacctctctctctctctct
-tcgcctggtaaggacgcatgtcattgaatctagggctcaccctaatccag
-gacgatctcatcctgagatcctcaacttcattacatccacagagacgtga
-ctgccagataaaatcaccttcacagattcTTTAAGGGGCCACTACTCAGC
-CCCTACAGCATCCAATCTAGTCAGCCTGCTGTTGCTGGCCCAGATGCATT
-TACTTCTTGGAGAAGAAAATTACCATCATGTTTAAAAAAGTGAATATGCA
-CGGCTGTGGGTGAGCATAAGGAGCCCCGAGTTGGATTCTGAGAGGAGGCA
-CCTGGCTGACTCCTGCAGGGGCTGTGTGTTTCACTCTAGCTCCTGGACGT
-TGGCCACCACCACCCGGCGTCAGTGTCCTCATGCAGgactggggtgcctt
-gaacaaccgaactttattctctcaaagtcccagaggctggaagtccaaga
-tcatggtgttggcagggttggtttcttctgtgaacgtaagttatctgaaa
-aggaattcagaggaaagagattttattccagcaaacaatttgcaaacccg
-ggagacacaacattcccttctggagaacaaagggaaggctcaggttttat
-aacagaccaggttccccatcaggtctgcttatgcaaatgaaggattgaaa
-tccactgagttctgattggttgaggcaggtgagctcttgattggttggtt
-caggtgagcactggtgtcccacagctgaatagaggtgggggttttcaagg
-cactcagagtacaagtgtgacctctagtcagcaaagtctgtttggctctg
-ttttaggcccaattagccacttgggatccatcttgaaggactggctcctt
-caggttcacatttgtgcacactttgaaggcctctctcctggcctggtaga
-tgctgtcttctccctaggcctcacatgggcatccctctgtgggtgtctgt
-gtcctcatctcttcttcttagtcctgttgggttaggtcccactgtaaaac
-ctcattttacctatttaattgcttccttaaagcctctagctccaaatatg
-gtcaccatgtgaagtactgggggttgggacttcaacatacacgtttgagg
-ggccataattcagccccaaacaTCCCCTAAAGCAATCCTACAAGTGTGTA
-TCCTTGCTCCAAAATCACCTAACACGCATGAAGCCCCTGCTGGGGGCCTT
-CCTTGTGCTGGGGATGGAAGGCAAGGGAGCGAGGCATTCAGCCTCATTGG
-TGGCCTTAGTGGAGATGCCGTTGAATGATAGAGGCTGAGTGCACCAGCTG
-TCCCATGACCCACCCGTGGGGGTTCAAGGAAGGGAGGACCATCCTTGAGA
-TGCCAGGTGTAGCCATCTGACCTCAGGAGAAGGCAGGGACACACGCAGTG
-GTGCCAGCTGGTTATCTTACAGGCTCTGAGAAGTGCTGCAACGTAGGAAG
-AAAGAAGTTCCCAGATGTCACCTACTCTCCCCCAGACCCAGACCTTATCT
-CACAGTCCAGCTGGCAGCCTAAACAaggactgttagattttaaaaacaag
-gccgggcgcggtgcctcacgcctataatcccagcactttgggaggccaag
-gcgggcagatcacaaggtcaggagattgagaccatcctggctaacacagt
-gaaaccctgtctctactaaaaatacaaaaatttagctgagtgtggtggcg
-ggcgcctgtaatcccagctactcgggagactgaggcaggagaatcacttg
-aacctgagaggtggaggttgcagtgagctgagattgcaccattgcactcc
-agcctgggtgacagagcgagactctgtttcaaaacaaaacaaaacaaaac
-aaaacaaaaacaaacaaaaaaagcacaggatgctgattcaagttcaagtt
-cagataaaaaaaaaagttaccgctttaatagactaagtctgcattagtca
-gcttggttgcaataacaaacaccattggctggatggctttaacaacaggg
-gttgatttctcatagctctggagaccagggagtccaaaatcaaagggctg
-gtaaggtaggttttactctgaggcctcttctgttgctggctggttggtgg
-ctggcagcttgctgcgtgctcacatgacctcttctttgggagagaatgag
-agcgtcctctggtgtcttttcttataggggacaccaatcctagtgcgcca
-gggcccctcttcatgacctcatgtaaccttcattacttctgcagaggccg
-tatctccaagtgtgttctcattgggggttagggttttcaacagatccatt
-ttgaaggaacacaacattcagtgtataaagaatcccaggtattgtatggg
-acaaaattatactgaaaacattcattgtgtacctgaaattttgactctga
-aattaacacatcatcctgtcttttttctggcagccctaACTTAAACGCAA
-CCTTCATGCAAAAGGTCAGGCAGGACCCGGTGGTCAGAGACTCGGGCCCC
-TTAAGGGTTCCCCAAGTCCTGAATGTGGTGTCCGCTCAGCACGCACACCT
-CCCCATCCCCAGGTACTGGATGGCTTTCTGAAGAAGACCTCCTGTGAACA
-CTGCTGGCTCAGCTTGTGTCTGTCTGGCGAGAATGTCCAGGCCTGAAAGC
-AGGTGCCTGCAGTGTGAGTCCCTGGTATGAGTCCCAGCTGCATGTTTTGA
-GAGAATGCACTTTTGAGGGTCTGTAGAGAGTTGCAGATATTATATGTGGA
-TCTACCAACACAAGCATCTGGTCCACCACAAACACCTGCGGATGTAAAGC
-CCCCTCACCCTGCGCAGACCCCTCCTGTGGAGAAGACTGAATGCACCCgc
-gtacccagcaggctgacacagggatggatcgatcgtcttagcagcctttc
-ctctaaattccaaaagtatttttagtcataaccgtgttacaatattgacc
-cactgtttaagttctaaaagaattaacaattttcaaataataaatttcca
-agatatcagaactcaatgaaatacttcatgtgtgagacaaaatttgcatg
-tgccaaataaaatattacaccacgaagtttgcaggctacttctctgtttc
-ggattttaaatgtgggtaaaaacttcaagtggccacacagaaccccggag
-ctgccgtgttccagggcctcttctgtgcagtccccgtgccacggctgctc
-actgcaaatcagctccttggacagaagccagtgcagtgatgcagagcaag
-gccactgatgctctgtaagtcccatacgcatgtgacctttggcttaaaat
-caacccatatggctgagcccacctgcactggggcccactgtataaccaga
-gtttttaaaaaatcaaatttcatgtagaaaataatgtttgttaaaggttg
-aataatacaaataagttaattttaagttgtattagtcaaggttctccaaa
-gaaacagaaccaataggataaacatgtgtgtatgtgcatacacacacatc
-tctctatagatttatatatagagagagagtgagctgggggagagagagag
-aaaggatggggagaggtttattataaggaagtggcagccgggtgcagtga
-ctcacacctgtaatcccagaactttgggaggccaaggcgtgaggatcacc
-tgaggttaggaatttgagataaacctggccagcgtggcaaaaccccatct
-ctactaaaaatacaaaaattagccaggcatagtggtgcacacctatagtc
-ccagctactcaagaggctaaggcaggagaatcacttgaacctgggaggcg
-gaggtttcagcaagccaagatcgcaccactgcactccagcctgtgcaaca
-gagtgagactccatctcaaaaaaaaaaattataaaataaataaataaata
-aaaataaggaagtgtctcatgggattatgaaaactgagaagcctcatgat
-ctgccatcgcaagctggagacccccaagagctggtagtgtaacttccagc
-ctcagtctgaaggcctgagagccggaagagctggcagtgtaaaccgcagt
-tcccaaggcaggagaagaacaagttcctgctcttgctggcagaaggaaac
-aaaagagaggtgaattcctgcatcctcagcctttgttcttctcaggacct
-caagggattggaagatctccacccactctacctcactgaacccacccatt
-cacatgcaaatctcccccaaacaccaccacagagacatctaaaaggaaca
-tttaatctgggcacccagttaagtcgacacatgaaattaactaatacTGA
-GGTACATGTCTATTGACATATATTTGTATATATGCACACGCACGAGTGTA
-CATGCATATGTCTGTGTATGTGAGTatatgtgtgtgattaaaaactcagt
-ggtaaatagagaaaatgcttagaatgtagaccaagaaaggtttttttcac
-aagtaagggatattttattactagtagtgttcaaaattgccaatgaaaag
-tgacaataaaaagcctgctggcttttcctgggttttataatgggtgttaa
-attctctgcagacaatattctcatttaatgtctatgctgaaagctgctgt
-tcccactgccctggccttggGGTGACACCCCTTTCCTACCTGTCCCCGGG
-CAACTCTCCAGATCTTTTGGGTCTTGAGTTGGGAGAGTCACCGATGTTCA
-GGGTGACCCAAAAAGCTAACTCTTCCAATCAGCCTAGGCTCCAGCCCTGC
-CTCAGTCACGGTCTCAGCATGCCAGGGTGGAtccactcatccatccaccc
-acccacccatccacccatctatgcatccgttcttctacccatctacccat
-tcatccattcaaccatccagcaatccgcccatccacccatccatccatcc
-atcaaacaaccatctatccatcagtccaaccatccacccatctatatacc
-cattcactcatccatatatgtatccactcactcattcacccatccattta
-ttcatccatccctccattcatccaAGATTTGCTTAGAACTCTTTGTATTT
-GGCCAGTGAATTTAGGAATACACATTTATCAGTCCTAGCCTTGGAGAAGC
-CATCTAGTGGGAGGTGGGGAAATAGATTAATAAACAGATAGGTATGGCAA
-GACTCCCTGTTTTGTAAACTTTGTAAATGAAAGAGCCAAGCCTGGATTTC
-TTCTCATTGCATTCATTGATAATTATATGTTGAATGAATGAATGAGTGTA
-ATGggagcgtcatagcacagtctaaggagtacaggcttgggtccagatcc
-acctaggttcaacatccagttctatgtagccctgtgtaaatccccacctt
-ccttcttgatcctcagtgttcttatctataaaatgagaatgaaaaatgca
-tacttttcagtgtaatttcaagcattagaatgacatGTGTGAAGAGGCAT
-CTTTACCACTCAATAGTCACTGGTGGTAGTGGCCAATTATCATAACAATA
-AAGGGCACTGTAGGATCTGAAGGATGCGAAGAGATCAATGAACAATCTTG
-GGACCAGTCAGCTCTGGGCAGCGAGTGGAAGGGACAGGGTCCAGTCTGAA
-GGTGGAGCTGAGGGTTGCACTTGAGTCTGGAGCTAAGAGTGTGGAACTAG
-GGGTTTAAACCAGGATGTGAGTAGTTTTAGAGCAGATAACAGGAGGGCTG
-GAAGGCACTTAGGCAAGATCTTGGGACAAAAACCCATGTTTCCATGTGTC
-TGTAGAAACATGCAGGTTCATTCTGCATCCAAGAAGCGAGTACTGGACAA
-GGAGCCAGAAGGCCCCTCAGCTTTGACAACACGTGACCTCCCCATAGCAT
-GGATGGCCAAGACTGATGATGTCCTAAGCCAATTCCAGTGATCTCTCAGA
-GGCTGCCTGGAGTCTCTCCGAGGCTCCAGTGATCACTCCAGGGATCTCTC
-GGAGCCCAAAACAGaggatctgaaatgcaatcagcactcagtgggaaaag
-gcaccgagagtgatcagcaatgtctgccaccagcagaggtggacaaagca
-gtgcacaGAGGTGGACAAACTCATGAGCTGGAGTAGACAAAGTCAAGAGA
-AGAGGTGAATAAAGTCATGCACAGAGGGGGACAAAGCTATGAGCAGAGGT
-GGACAAAGCCAATGAGCAGGGTTGAACAAAGCCATGTGTAGAGGTGAACA
-AAGCGATGAGCCGGGGTGGACAACGTTATGAGCGGGATGGACAAAGCCAT
-GAGAAGAGGGGAATGAAGCTGTGAGGAGGGGTAGTTAAAGTTATGAGCAG
-GGGTGGGCAAAGTCACGAGAAGAGGTGAATGAAGCCATGTGCAGGGGTGG
-ACAAAGCCATGCACAGATGTGAACACAGTCTTGACTGGGGATGGACAAAA
-CCGTGAGCAGAGGTAGATAAAGCCAGGTGCAGAGACGGACAAAAGCATGA
-GAAGAGATGGAGAAAACCACGCACAGGGGCAGACAAAGCCATAAGCAGAG
-GTGGACAAAACCATGTACAGATGTGAACACAGCCATGACTGGGGATGGAC
-AAAGCCATGAGCAGGGGTAGATAAAGCCAGGTGCAGAGACAGACAAAAGC
-CTGAGAAGAGACGGACAAAACCATGCACAGGGGCAGACAAAGTCATGTGC
-AGAGAGGGACAAAGCCATGATGTGTGGGCTCTTTTCCATCCATCAGAACT
-CAAGGCCTTGGCAAATGTATAAATTCAACACCTTGTGATCCCAGAGAATT
-AGCCCCTCATGATCACACTCAGAGTGACAAATCTCACATGGGCTGAAGAA
-AAATAAAATGACAGTTAGCCTGAGGGGCTAAACCACTGCCTTCTCCTACC
-CAAAGCCCCCGCTACGCACACTGAAGTGTAATCACCACAGTCATGCTGAG
-AATGCTGCTGAGAGGCTACAGAATCAGGGCACGGTGGGGAGGGGCACTGT
-Ggtgatggctgatttcatgtgtccacttgcctgggccatagggtgcccag
-acggctggcgagccattatttctgggtgtgtttgtgagggagtttcctca
-agagatgagtatttgaatcaggggacaaggtaaagaagacccttcctccc
-tactgtaggtggacaccatccaatccacttagggcccccatagaataaac
-aggcaggggcagggagaatcctctctctcttcttgagctgggactccacc
-ttctcctgccctaggacatctgttctcctgcttctcaggcctctggactc
-agggactcacacagcactttccgtctcacagttctgaggctttcaggctc
-agactgaattaagccaccagcttccctgcttctccagcttgcagacagca
-cggcgtgggacttagcctccgcatgagccaattcccataataaatctcct
-cttaagtctctacatatcctattggttctgtttccctggagaaccctgac
-taatccaCTTGTATTGGATCACATTTCATGGAGGCTACCACTGGCACGCG
-GAGAGCAAGGCCCAGAAGGAGGGGGCCTCGAGCGGGGGCTCTCACGCCTC
-CGGTTGCATCAAGCAATCAAGCTGGAAACCTGCAACCACCTCTGGCCTCC
-GGACTCAGCCTTCCTCTCTTGGCCCCTGACATCCCACAACACATTTCTTC
-TTAGACCTGTGTGTCCAAGGATCTAAATGCCCTCAAGTTGTGCTTCTGTG
-GACTGAGAACATCTCCCTTCTCCATCGGGAAGCTGGTTCTAGCTACCCTT
-CTCAGGCAACCACTTTTCCTCTTATTTTTAGGTTATTTCTCCCCATCTCT
-GCATTTCATTcacactgcctggtaactgactgttaccatctcttttcctg
-accagactctgaggtcttcaatggcaaaggctgggttttatctgcctctg
-aatttccgggccccacgcaggattcctggccacatggATGGGCTGTGGGC
-TGAGTGCTTCTGTGGCTGATTAACTCGACACAATATAAACACTCCTGGTT
-CACAAGTGAAGCGCCTTGCTCCCAGCTTGCTTCATCTGTTCCTTTGTTCC
-TCTGACAAAAACTGAGCTGCCCGCACAAACACCATGGGAGAAGGTGTGAG
-CTCCCAGGGGAGGAAAAGACATGTCCTTCACCACCACTCAGGTGGTGGGG
-AGTGCAGAGCAGAAATCGCTTCGCTAACGTGTGCTGAGCACCTGGGAGGT
-GTCCTGCACATGAGGTATCTGACCTGGCCTGGAGGTTGGGCAAGTTGGAC
-ATCACCCCGAGGCTTGCTTTCCACCTGAACTCCTCCCTTACCCGCATGTA
-CGTGGTTGGACCCCACTGCTTGGGTCTCCTCCCCAGCAGAGAACAAGAAC
-AGCCAAGGATTTCCTGCTTTAAGAGTGGGAGTTAAAAGCTTGTCATTGTA
-ATATACTACAGAAACAAACTAGTGTTATTGGCAAGAGGTAAGGAGACATT
-TCTAGCCCAGGAATAAGTATATTAGTTTGCATTTATGTGGTGTTGCCTTT
-TATCCCCTCGtgttcaaactgctttgacagtgatgacctcatttgtcctc
-acaacatccccatgggacaggaaaggtctctcaccaggagcaatcaggga
-aaccatagaacagagaggtccagtgcctgcctcacgatcacacagctcat
-taacaacaccaggTCCCCCTCATCACGCCTGTACGTGGCCTCCTGTAAGC
-CTGGCGTCTCTGCAGTGAATATTAACACAGCTTCCTTCTGTGGTGTCTTG
-GAGGCAGCTGGGTTGAAGAGCTCTTAGGAAACATTCATTCCTCCTGTCCC
-ACCACAGGCTGTCCTGTGGGTGGAAGATGACGTTCTCCTGGTCTTTCATC
-TTCTAAAGGGGGCTCTGTTTTGGGTGACAGCCTCACCCAGTTGTATGAAC
-TGCTGCAGGGGCATTAAGGATCATTCCCCTTTGTAAAAAACGTATCCCTG
-ATTTATATACACAGGGGGGCTGGGGAAGAGAGGGGGCTTGAAGTTAGATG
-CACAAATGCTGatgtgtgagcatgtgtgtgcatgtgtgtttgtatgtgtg
-catgtgtgtgtgcgtgtgtttgtgtatgtgcatttgtgtgtgtgcatgtg
-cctgtgtgcatgcatgtgtgtgcaCCTCCCACTCCCCACCCAAAATGAGC
-ACGCCGGGCtgcatgagcttcatgtgtctgttggcacaaagtaccacaaa
-ccaggtggcataaaacgacacaaatgcatcctcacagttctggaggccaa
-aagtccaaaatcaaggtgccagcagggcggggctctccctggagggtcta
-agggaggatccttcctgcttctgcttttccagcttctggtggccccggac
-attcctgatacgtggctgcatcactccagtctctgcctccatcttcttct
-ctgtggcttctcccatagcttttccagtgtgtgtgcgcatgtgtgtgtgt
-gtgtgtgtgtgtatctctgagtctcttttcttcttataaagacaccagtc
-gtattggactcagggtttgtcctagtccaaacaaggtcatattgataggt
-atcggggataggatttgaacacatctctttgggagccacagtttaactat
-aacaTGGAGGACGAGAGGAGAAGGGAAGAAAATCACCCTCTAACAGCAAC
-CTCGTCATGGGCCAGATGCCATCCTGGAGTGTCCACCTGTCCATCAGTGC
-ATCACAGGATGACAATGGTGAGcccagttttcatatgaggagacaaaagc
-ccagagatccactgactctacacagtcactggaatttggaggtagggcca
-ggtctacgagcctagtgtctcgaccacatgacccagtatcttctcttccc
-agAGCAAAGCTCCTTCACTTGGATGTCCCCCCAGGGCCAATGTGATCAGA
-AAGAAAGCCATGGAACCATAGAAGAAATAGTGTTTTCTACCCCACCAGCC
-TCAGTCCATGCCCGGGAGGGAAGGTGCAGGACCCACCTTGACCCCAGGCT
-CGGCCCTGTGTGCTGCTTTGCATTTAGTCCCTGATGTGTTTTCCTTTGTT
-GTGCTTGGAGGGTTTTGTGGGGTCAGTGTGTGATCATCTATGGGAGAGTC
-CTTCTGCCATTGAACTCTGGATGGTACAGCCTTTGCACCATTATCTCGTG
-GTGCAGGAAATGGAGGAAATGAGAGGAGAGACACAAACCTTGCCTGAAGT
-CTCAGGGGAGCAGGTGGCAGAGAAGGCTGGCCCCTAAGAACTACCTGACA
-CCCCAACTCCTGCCTGTTTTGCTTGACGAGGCTTCCTCCCCATCACGATC
-CTCAGGCCACTGGGACGATTCAAGTGGGAGCCAGGGCTTCAGAGAGCACC
-ATGGAGAAGCCAAAGCTCCACCACACCCCAGCTTCTGTTCTTCAGCACGG
-ACCACACACACAGCGAGTAACTGGCAGGCAGGTGCACCTGACTGAAGCCC
-Ctattatgggctggattgtgtccccccaaaacatacgttaaactcctgag
-atgcagtacctgtgaatgtgaccttatttggagataggacctttaaagat
-gtaatcaggcgggtggatcacctgaggtcaggaattcgagaccagcctgg
-cgaaaccctgtctctactaaaaaaacaaaaattagctgggccaggtgttg
-catgcctgtagtcccagctacttggagagactgaggcaggagaattgctt
-gaacctgggaggcagaggttgcggtgagccaagatcgcgccattgcattc
-cagcctgggagacagagtgagattctgtctcaaagaaaaaaaaagaaatc
-atcaagtaaaatgaggtcatcagggtatgccctaacccaaagagtgtgtc
-cttatatgaagagaaaatacctcatgaagacagacttgctgggaggaggc
-cacgtggagacagaggcagagactggagtgatgaagccacaaacaccaca
-gacgccgcagccaccaggagaggaggggagcgagaaggggccgaccctgt
-caacaccccgatttctgacttctggcccccatgaccgtgagggatcaaat
-gcccactgtttcaagccactgagctgggagtcatttgctacagcggctgc
-aagaaacGCATCCACCTGCTCACGAGGAAGGCAACCAAATGCAAGATACT
-CGACGAAACCTTGGGTTTTTAGAGCAAAAGAACAGAAACAGCTGTATGTG
-ATGTTTTGAGGGAGAATGGGGACACTTGCCTCCAGATTGTATCTCGCGGT
-CACTGTGCCCATTTTCAGTGCCCCAGGCGCGGTGACAGCACATCCTTCTG
-TGGAGAACACCTGTGGCTCTGGCAGCTCAGTTCTGAATGTTCCAGCAGAT
-GTAAGAGGGGGTGAAGCAGGGGCAGCCAGACTTTCACAACCTGCGGATCC
-AGGTGAACCCACGGGCTCATTTCACAGTCAGCTTGGCTGAAGATCTGAAT
-TCCTATAAAAAACATTTGGGAATGAGAGTGAAGAGGGAGGTGAAGATCCC
-TCATCCCAGTTGGACCCCAGAACTCCAGTAGCATTCCTGAGGGCAGGATG
-GAGGGGTTCAGGGACCTTCTCCTCAAGGAGGGACCTGACCAAATCTCACC
-AGTGCCCGTGATCACTCAGGCCCCGAAGCCTCCACCAGGCCCAGGCAGGG
-CCACCTCTTACTCATCCCCCCACTCGACTGAACGCCAGCTCCTCGGGGCG
-GTGCTCCACACAGGTCCACGCAGGTGGAAGGGGTAGGTGacacacacgca
-caacacccccacatacaccacacacaccaaacacacaacccacaaccgca
-aacccacatacaccacacacacaccaaacccacaacaacaaacccacata
-caccacacacaccaaacacacaaccgcaaacccacatacaccacacacac
-caaacacacaaccgcaaacccacatacaccacacacaccaaacacacaac
-cgcaaacccacatacaccacacacaccaaacacacaatcataaacccaca
-tacaccacacacaccaaacacacaacacacaACCTCAAACCCAATCAACC
-CCTCCCCCTCCCCCACCACACAACTAAGTGCCGCCTACAGTTGCAGCGGC
-TCTGGGCTCTGGCAATTAAGGCGCACCTGCTGTATGCTGGAGCCCCAGGG
-AACGCAGGCCCCACGGCAGAGGCACCGGGCCCTCCTCCTAGAGGCCTGTT
-CTCTCCTCCCTTCATGCTCCTGTCCCTTTGCAGCATAAGGGCTGAAGCTC
-AGGCTTTGAGAGCACCCTGAGTGTGATGGTTCTCAGGCACGCCTGCGTCT
-CCTGGTTGACACTGCCCGTGCTGCTCTCTGGCCTTTGCCTCCCACCCAAC
-CTTGTCAGAAGTGGCCATAGATGTGTAGGTTTATCCTAGGCGAGTAAACA
-GGTGTGTTTCCCCCAGAGCCACAACGTGGAATGGAAAGATGGAATTGGTG
-AAGAGAAGCCTTGTCCCACGTGAGGCAATAGTCTCCCGAGGTCAGGGTCC
-GGGGAAAGATGCAGGCCTTGGTGTGGCCATCCCGAGCCCCAGGACCCCAA
-GAGAAACCAGCACGGTGCGTCTCAAGGGAGTGCCTATGGGAAGGCAAATG
-TATCTGCCAATGGCACAGATGCCGAGAGGAAACCGAGGCAGCCCAGAGGG
-CCCTGGTCAGGGGCACCATGCAAGGGCATCTACACTGATGTCACCACTGG
-CTCTTCCCGCTCACCTGTCTACCCCTCTCCCCTGCGCCGTGTCCTGGGAG
-GCTGCCTGCATGAGCGTGTCCACGGTTtctccacccctctccctgctccg
-cgtcccgggggaatgcctgcatgagaatgtccacaagctctccacccctt
-tgcttttcagatggcatcagccacacggaggcacaagaaagatcccagaa
-ggaagaaggctgaagcccaagatccactgccagagtccgccccctgggtt
-gtcactacggccatctgtgtccccctacagaagggcacaCCCACACCAGC
-ACCGCTGTCTCCAGGGTCTGGAAGGGCTGCTCCCTTTTCCTCTCCAAGCA
-GGGAGAGGGAAGTTCCTGCGCTGTGGGCCCTGTGTGCTCACCCCTATCAC
-TGCCTTCCCTTAACCCTTTCTTACCTGTATGAGCAGAGGCCGCAAGCACG
-GTGTTTCTTTATCATCATTCCCAACCAGGACTGTGATGAATATCACTTCT
-CAATCACAAACCTCTCATTGGACATTTGTTTAGGAATGGTGCTGACATCC
-ACATGGCTGGGGGATTTTGGCTGTGACATTAAGTGAGCACATTGGCCAAG
-GATTTGGTGACTGCTTGTTCATTTCCAAAGATGGAAAGCCGCCCCTTCCT
-CCCGCAGGGGATGATGATGTTCAGGAGGGGGAAGATTCAGGCCCTTCAAC
-ACATGGGTAATTCTATAATAATAACAGTGATGTCGGTGATGACTGACCAC
-AGCAAGGACCAGTGCTTCTAGGTCCCCCCTGTGTCAGGTGCCTGGGCTGG
-CAGGGCCCTGCAGGCTGGGACCTCTCTCATCATCACAGAGCCTGCATGAA
-GCAGGTTATCCTCCCGCCCTTTAGATAGTGGGAGACTGGGGCAAAGACCA
-TTCAAGTCGAGTCTGCCAAGTGCCAGCTGGTGAGAAAGTGGTAGGTCCCC
-GCTGCTGAGGGCTTGGGTGGCACCCAGTAACCATGTTCACTGTTCGAGGA
-AGCTCCTTGTCCTTCCTTTTCCCAGGGGCAGATAGGCAGCTGGACCTGAG
-AGACCCAAGGCTCTGTGCCCAGCCAGTGTGGACGTGAAAAACTGGGCTGA
-AGTTCCTGTCTGCCTTATTAAGGCCGCTAAAGCCTTTTTCTCTCCCAGGG
-TTCACAGATGATGAAAAATGCATTTAATTCCACCCATGGCTGTGCATTCA
-TTTCCACCATGCCCGAGATGGCCAGTGGAAATTAATGTGCACACGGGCGT
-CTGACCATTTATCAATAAAAGCCCTGGTCTCTGTACCTTTGAACTCCAAT
-AAGAAAATTAACCATTGTCATAAGGACAGTACCTTCTCACGCCTGGATTC
-AGCAAAGTAATCGAACGCCATGCATCCGCTATTGCACAGCTTTAATTAGC
-ACCCAATTCAAGTCCGCACCGCCCAGCAGAGCATTGCAGGGGAACCATGG
-GCCTGCGCGTTTGCTTTTTAATTTCCAGCAATGATCTGGTGATTATGAGA
-GTGTCCACTTTCCATATTTATACTGATTGCTTTTTCATTTACTCTGCTTT
-CCATTATGAAACGCAAATGGAAAGGTGTCCTAGAACCAGCTTAATTGAGT
-TCAAGTCATGTTACTGGACATCAAGTGATGTTAAAAGCACGTTCTATTTC
-AGCTAAGTTATTATTTGGCCCTAAACCAAATGGATCTCAATTTTTTAAAG
-AGAATGCATCAAATAAACATATGCAGGGAAAAATCTCAAAATAAACCATC
-TCCGTCGTGTTGACTCTCCACGCTGAAGTACATGGTGGAAACAAGCATAG
-GAATTAGACACAGCAACTTTCTAATGTAACGCAGAGTAAATTCTAAAATA
-CATCTTAAAATTAGAACACTTCACAACAGGAGTGATCTAACAGGTGTCTA
-ATAGGCCAGACGTTCTGCTCTGTAATGCATGACACGAACACCCCTGGACC
-CTATTTATGATGATTTCCCTTAATTTTACCATCTTTCGGGTCTGAATTAAGATGTGTTGATATTATGGGATATACTGAAATAG
-CACAGCACCTCTCAGGGCGAGCACCAGCGTCTGCACATTCGTGGTGCACG
-GAGGGATGgaggttcaggctggcagaaggacatgtccatttaggtcagca
-cagccggtaggtggctgtgccgagaacctgggtctgaccacagagccagg
-cccttGCACCCTCCTCCCTAGTCTCCACTCCCTTGGGTGCTGACAAATCA
-AGCTGTCCGTCAGTGATTGTCTCCAAAGATACCGACGTTTCACATTTCAA
-TTTGACTAGCATTGAAATGCTGAGAACTCTGACATCGCCTCAAGTCAGGG
-ACTCTATAGCCAAGTTTAGAACTGGAGGAAAGCTCTGAGACTCGACCTCA
-AGGCAAGAATCAACGTTTACTGCATTTGACTCAATGGGAAATGGTCAAAG
-ACTGGACAGAGTTGCCAAGCAGTTTCTCCTCCAATGCAGCTCCGGGAGGC
-CTGGCCACAGCCACAACGAGTCCTGGACTCTGTGTAGGCTCTGCTGACAA
-CCCTCCATCTGTGGGGCAACTCAGTCCAAACTCCAGGAAATAGCCTCAAG
-GTGGCCACAGGTGGCCCTGCCTGCCTCTGCAGACCCTCCAGCCTCAGCCC
-AGGAGCTCCAGCTCAAAGGGCTACCCCTGCATCTGCTGTCCCTCTCTCAC
-TCCAGACCTTGCTTGCTCCCTTCAGCCATCACGTGGAGGGGCTGCCGGGG
-CTCCCAGGGTCCAGGCCCAGGCCTCAGCCTTGCGCCTTGGTGGGAGGAAT
-TACAAGAAGGGAGAGACCAGAACTCGGGGGCAGGTGCTGACCACGGAGGC
-TTGGGGCACTGGATACTGCAGCCTTATCAGACTCAGCCTCGGGCTGGGCA
-GGAAAAGTCACCTCAGAGAAAGGGCTCTTGGGCTGTGGTTAAAGTGGGAA
-GTGAGAAGGGAGGCCTGTGGTAGGAAGAGATCTGAGGCAGATGGAAACCA
-CACACAAATGTCAAGTGGCCGTCAACAACCGGGGCTTGTTTTGGAAAGCA
-AGCTTTGTTTGTCCCGTGATGACTAGATGGAAACTCATTAGGAAGCAGCA
-GGATTCCTAACAAGACCCTTGCATTCTAGGAGGATGAATGACTCTGTCCT
-GAGAGCCGATGGAGCGCAGGATGGTTTTGGAGAGCGACTGGTTGGCTGGG
-CCCCAGGTGCACAATGCAGAGCCCAAGCCTCCTCTCCTCTCTGCTCTCCA
-TTCCACACTCCCCTTCTCCCTTCACAAGGTAGCTGTCCCAGTGTGCTTCG
-TGCCTTCTTTACATGTACAAATTTTTGACAAAACACGTGCTGTTGTCTTC
-AAATCATGAACCTCCAAGCATGCCAACGGGGGGGTTACCTAGCACTCGGG
-GTCCTGGAGAACGTTTCCTGTGGGCCTCTGCGCCCCCACACTGTTGCTTC
-TGAATGCCGCCGTGCCCTGGCTGCTGCAGCTGCAGAGGCTCGACTGGGGA
-GGCCTCCGTGTGTGTGTGAGAGGGTCCCTGTGCGGGAAGATTGCACAGCG
-TAGCAAGGAAGGGGCTCCAATGCAGCCACTGGGAGGACCACACAGTCAGG
-TGCTGAGGGAGGGAGCCAGGAGCCAGGAGCCAGGCACAGAGAAGCCCCCG
-TCTGCAGGGCTCCAAATCCAGGCCACTCCTCTGTGTTCATACAAGTGTGg
-ggctgctggctgggaggggcacatggagcctccggggcactgggaatatt
-ccagaagcttatttagaggagggccttgatcatgtgacatacatagaaat
-ttattgactatatcctaaatatctatggactttactgtaagttactcctc
-aattaaataaAATAAGGGTGCCCTGTAGGGGCTCATGTGGGAGAAGGCCG
-AGGTGCAGGCCTGGAGAAGATTAACCGTACCTGTAGGACCAGCAAGGGAC
-AGCCGCCACCTCAGCTGGGAAGCCATGAGGGCTTAGATCTGggttctcag
-ctcccatgtacatcagaatcactaggggaacttagtaaacacaccccact
-gctcagacaccaccaggaagatggggtcagagtccctggaggtggaggcc
-aagaatgagtattggttgaaaggtatcagggtgattttcaggtacgtcct
-gggctgggCATTCTGGCTTAGAGGGAGCCCAGGGCAGCTGGCATGGAATG
-CCAGAAACGTGAAGAAGGAAACGTGAAGGAGGAAAATCGCCAGGACTCTG
-TACCTGATTGGAGGTGAGGGAAGAGATAAAGGGAGTGGCCTGATATGACC
-CTCAAAGGTTTTATCTGGTGGGAGATTGCAGGGTTGGGGGCATCTGCTGT
-TCTGTGAGAGGGAAATGAGGAGAGAAAAGGGTCTGGAATGGGTAGAGAGG
-GACCTCCTGCTCTCTGCAAAATGTGCTCCCCCAACACTCACCTGAGCAAC
-TGCCTTCTCCAGCCAGCATTTCAGGCTGGAGTCCGTGTCTTCTCTGAGGt
-atgggaaacaaactctcctgtccaaacccaaaaaatggactcagagaccc
-ggagaacagtgaaagtgagacttttaatgatgatcttgtgagatcgggtg
-tctgatgggcaggggcacccagcacagccacaacaaccaacttatcccct
-agtgtgcaggcccctcccccggttcctcataggctgagtactctggggcc
-acaatcttcccagacgtcaactgtctgttgttgggcaggggctttaggtg
-ttttctttagggttgtcttgctgcattttgttgcagccaacactgcattg
-caatcctagttagctcaggggctttttaagtatttgacttatgacctaag
-tagctgggcaggctgataagaacagacagtgagccattttgcaggctgat
-aaaccttcatcttagactaaacttctttggttctgatgagggcaagaaaa
-gtggggtgtaccaataagcaggtgtcagctatccaaccaggagcctagta
-tcttctgttttttttgtgtagtttgctgacctaagctgatttaaggcact
-ttgtcttggaaatggaccactgtatacattatttcctccaGAGGGACTGT
-CCTTCCTCCACCCCAGCCCCAGTACCCAGGCTGTGTGGGTCGTTTGCACC
-TTTGCGCAGCATCAGGGGCCCCTCCCTGTGGGTTTTACTGTGCACTTTAT
-TTTGGAAGGGTTGAATCGTGGAGCTTTCTCCCCACCACATCGTGAGCGTC
-TCGAACGCTTCACTTTTGTTCTCCCAGGGAAACTTCTGTGTCTTAGATTA
-GGTCCCGTGCCTGCATGGGAACAGGGGCTCAAGAGATAAACGTGGAGTTT
-AAAAAGTGCATGGGTAGGGGGTCTCAGGACAGAGGAGGAGGGGTGAGCAG
-AGAGCACTGAGTGGAGTGACTAtgggggtcggggcccgggtcggggcggg
-ggtcggggcccgggtcggggcgggggtcggggcccgggtcggggtggggg
-tcggggcccgggtcgggcgggggtcggggcccgggtcggggtgggggtcg
-gggcccgggtcggggtgggggtgggggCTGCACAGACGCATGGACAGTGG
-TGTGGTGAGTATCCCAGCTCAGACCCATGAACTTCCTGAGTCTGGAGTGA
-TCTGCAATGGTGGGAACCTGGGCTTTCTAAGAGAAGAAACGAAGAAAACA
-AACACTAAGGCGCAGGGAGAGAAAGACCCTCCTGGATGCTGAGAATCCGG
-CTCTCGCTTTCCCAGAAAGGGTGAGGCACCAGGTCCTAGCAACAGCAGAT
-GAGGTCTCAGGAATGATACCGGCCATTTCTTGTATTATTTAAGGcagggg
-ttcgcaagttgccttctgtggacccctgggagtgccagagataatttcag
-ggtgttcttcaggttaaaactatgttcatacgcttgctaagaagtgactt
-gccttttgcactgtgttgacattcgcaagggtgtgcagaattgatggcaa
-caggtaagacttaggatgccttgcaatgaattatagcatgtctccaacat
-gtgccactgtcatcgtctccttcaccacacacgtttgcggtaaggcaggt
-ggacggatgataacgcatggacagacagacagaggtaagatgggaaaaca
-ctgtttcactcatgaatgtccctgacaaagcagcacagaacttcaccttg
-gagcatgcatctttttagtattccatgtgaagagatggaaagtgcactga
-aaacatctctgctgaccatggaaggaaccttgctggcccgaggaaaagca
-ttggtatggctgtttaagttccgggctgagctagctgttctcttcatgaa
-agaacactcctcctcgtagggacgtctgtgctaacacaaactgtggttac
-ttagacgtgggtctttgccaaccattttcctaaaaatgaaacaatgagcc
-tctatcacttcaatacaaacaaatgacagtatttatgaatgacaaattgg
-aaatattaagcaaaaattggaattttgacgaacacatatgtgccattgag
-agactaagagtttcccaatgtttaaaaactctcgtgaagaagtaagtagt
-gatactaaggaatgcaattttatatcaataatatcatgtgttaatatttg
-aaaggtcttcataattcagtgaaccaatattttcaaataaccaatgcatg
-atctcacaagaccatgcctttgtaacagtgctatttgatggctgaccaat
-gtttggctttttttcttgaatgcagctcattgtgaaagataattgatata
-gtttcagattccacatggcaactaactttttaaaaactaccgtttgttaa
-gttttgatgtaacatcaaaaataatcttcataattatctgaaaagtctat
-gaaaatacgcttccattttccacctggatatctatgcaaggccgaattgt
-ctttgcatacttcacccaaaataacatattgcaacagtttgcatgccgaa
-gagaagatgagaacccatctgtcttctgttaaaccaggcactagggagat
-ttgcagaaatataaaacaatgtcactcttctccttaactttggcttcgtc
-ttggaaaacacttaattttaattaaaaacaggttatgtttacacatcatg
-agctgactgcaatttttatattaaaaaatatgcaaacacttaaaacatgt
-ttcagtgttcatttctcacatggtaaatatcgatagttataactcatgtg
-aacccaaggtttttgggccttcagtgattttcaagagtggaaagggttcc
-taagactaaatcatttgagaaccactgACTCTGGTCAGGAGCGCCCTGGC
-CACTCCCTTGTTTGCCTTGCAGTGCCTGCGGGATGGCTCTGGGGGGGTTT
-TGTCCCATTTTTATCCCTTGTGTCAAATTTTTATTGACAAATAAAAATTA
-tgtatattcaaggagtcgaagtaagtatttcaaggagtgattggcacact
-gaacaggctcactgtagcactgctcacaagggccaagatccagaaacaat
-ctccatgtgtgtctatggaagactgcgtactgtaatgtgatgtataccca
-atggaacattattcagccataaagaaggaagtcctgctatttacaacaac
-atggacggacctggaggccgttatgccaagtgaaatgagccaggcccaga
-gagacaagtctggcatggtctcCTTCCAGGCCTCATCTCCTTCCAGGCCT
-TGTCTCCTCAAGGGCGGCATGGCTGGGGCCCAACTTGCCCTGCTCTGTCT
-CTTTCCTCCCTGCAGGAGCCACCCTGGGTCTCCGCCAGATGTCTGAGGAG
-CTGTCATCTGGCTGTGGGACTCCGGCTCTTACCACCAGACTGCTGTCCCC
-AGCATCTGGGCCTGGGAGACAATCCCTTTCCCTCCCACTCCTAGGATTGC
-TGGAAATTGCTTAACTCCCACCTGCAGGGGGAATGGGGGCCCAGAGACAG
-GCACAGCAGGCCTGGCAGAGGGCCTGGGGAAAGGCATCCTGGAGCAGCCA
-GGCTGACGTGGGTTTTGAGGGCTGCATGGAGCCAGCAACTAAGGATGAGG
-GGCTGGTGCCGCAGTCAGAGAGAAGAGTGTGCATGGATGGGGGAACCGGG
-TGCAGAGGCAGGGAGGAGGGATGGGAGGGCAGCAGGGGTGGGAGGCAGGC
-GGGGTGGGGAGAGTGTGCACACCTAGAGGCTCACTGAGCAGGTGGTGCCC
-CCCGCATATCCTGAGAGCATCTGAGCCCCACAAATTCTGCCCTCCCAGCG
-TCTCCGTCCCAGGGAGTGGAATCTCTTGCCAAGAGGCCAGCTTTCTGGGC
-CTGGACTCCTCGTTAGACACCCAGCAGGTCTCCCACCCTCCTTCCTGTCC
-CAGGAACTGTCCTCTGTTACTAATCTGTCCCATCACAAGCCTCCAAGATG
-GCCAGCAAGGCTGAGGTCACCTGACTGCAAGGCTGACTCTCGTGGCCTCT
-TGCCCTAAGCTCACCGTGGCTGCTACATGGCTGTGTCCAGGAATGCCAAG
-GCCACTACACAGCTGTGTCCGGGACCCTTTCAGGGTCAGAGTTGGAACCT
-GCTTTCTGCAGGGTCCTGAGCACGGTCCCCTCTTGAAGGGAAGCTGAGCA
-TGCTGGGCTTGCGGCTCTCAGCGGGAGGACGGGGCCAGGCTGAGGACAGC
-CAGGAGAGCCTGGGCTGCCGCCTCCTTCCTAAGCCCCTAAATCATCTCCG
-AAGACACATAATTAAACCACAAATCAGATAATCTAAGGGCTCGGGTTTGT
-TTTGTTTTGTTTTATCACATGTCAGAAGCTGGAACAGCAAGCCGTTCGTC
-CTCCCACTCCCACAGGGCCAGGATGACTCAGTCCTTCCCCGGCCGGTGGT
-GCCAGCAGCAGGACGCCAGCCAGAGCCCGTTCCGGGTCACACCCCAggcc
-cagggcaaggcacggcacctctcctgcctcagtttcctcttttgtaaaag
-aagaatgagaatggcctcccccttggggctgctAAGCACAGACACGGTAA
-ATGCTCAGTGCCTGTGAGCACTGGGATTTTTCTCTGCACCCACGCAGCAG
-CAGGCTTCTGTTTGTCCACTTGTATGCTTATggagacctagaatggggct
-gcagcttcactgctaagacccaggcctagtctttttatctctctgggctc
-agtcctttcactggtagactgtggacccgatcttccccagggtctctgtt
-ccaTGCCTCCTTGGGCAGGCTATAAGAAAGCGAAAGTCAGCTAAGCCAGG
-AGACTCGCACAGGACGCAGGGAGAAGGGGCTGGGGTGTGCCTCCCACTGC
-TCCCAAAGGGCAGAAAGAGGCAGCATAAAGTGGACAAGGGCCTTTGGGTT
-GTATGGAATACATGGACTTGATCCCAGCTGGTGGGGATGAGAGAGAAAGC
-AGGTTTGCCCTCTAGgaaaggaaaataaatcttggcccctccccgcccca
-ccaaaatcactaagctaaagggaaaagtcaagctgggaactgctcagggc
-aaacctgcctcccactctatttaaagccccccaccctgctcactgagatg
-aatgcacatcttattgcctcatttgcagaggctgatcagaaactcaaaag
-aatgcaaccattcgtctcttgtctacctgtgacctggaagccccctcccc
-acttccatttgtcccgctttcgcctcgagttgtcctgcctttccaagctg
-aactaatgttcatcttgcatatgctgatcaatgtctcatttctccctgaa
-atgtataaaaccaaactgtgccctggccaccttgggcacatgtcatcagg
-gcctcctgaggctgtgtcatgggcgcgtcctcaaccttggcaaaataaac
-tttctaaattaactgagacctgtctcagatattcgggattcacaGGTCCC
-TGATCACAGCAGTGAAGTTACATTGCCACCTTCTCAAGTGTGACACAGCA
-CATCCTGCAAAACCAAAAGGCCCCCCTCCCTCCCCATGCACCTGCCTGCA
-CCCTCCTGGTTTTCTGCCTCAGTCCCAGCCCCGTCCTGAGATCTCACGAG
-GCCTGTTTCTCCAGCTGCTCCCACTGTTCTGCGTTGGAGGTTTCCTTCCT
-GGGGGATTGACTGGGCCTGCCTGGGTAAGATCGGTTTTCCTACCCCTCTT
-CTATTTTGGGGAGCCTGTTTTTCTTATATTGATTTTAATTTATACCTGCT
-TATTTAAAAAGTAAGTTATAAAACTTATTTTATTCTCATGTTTCATCCTT
-CATCTTCACTGGCATTTTTCCCTGCACCAACTGTGGGCATGAGCCATGTG
-GGAGTCCGGAGACCCCAGCCCCACCTGGAAGGGGTTTCCCCGTCTGGTAG
-GACACAGCCAGTGACAGACAGCTGAAGCACCGTGGGCCAGCTCATCTGAT
-GGGATTGGTCTATATAGAAAAAGTAACTTTTCAAATGTTGGGTGTTTCAC
-ATCGGAATTGCATGCCGTTGGACACTTTCTGCATTAGCAAGAGTTATGCC
-TGCTGGATGAAGAAATAAACGCCAAAACCTCAGAGCCATTGTGGAACACA
-GATCATAGTGGATGGCCAGCCAACTCCACTGTGGGCAGACGTTGGTGTGG
-TCCTTGGGCCAAGCCTCCCTTTCTTCTGTGCTGAACTTTGTCGGGAGATT
-CGAGGCAAATGCTTGCCTGCCGTTCTTGAGGAACTGCTGTACCAGAAAAT
-GAACCCAAATGTGACCCCTTCAGACTGAGGGGTTGAAGGTTTTGTTTAAT
-ATTATGGAGGCggccaggcgcagtggctcacgcctgtaatcccagcactt
-tgggatgtcgaggcaggcggatcacgaggtcaggagttccagaccagcct
-ggccaatgtggtataaccctgtctctactaataataacagaaattagcca
-ggcgtggtggtgtgcacctgtaattccagctactcgggaggctgaggcag
-aagaactgtgtgaagccaggaggcagaggtaatagtgagctgagatcaca
-ctactgtactccagcctggaggtcagagtgagacttcgtctcgaaaaaaa
-aaaaaaagaaaaaagaaagaaaGAAAAGAAACAATGAACAGAACAGTGCT
-CTAAAAATATTTCTCTTTTTGTTTAAATGGAAAAATGGAGAAACACATGA
-AACAATAAATCAAAAATGAATTATAATGGTTGCCACtgggggagggaaga
-tacagaaggaagaagagagaaacctctctgaatacaccttgttttatagt
-ttgcttttgaaaccatctacatttaaaaataatccttaaagcttgaatca
-aaaagaaaagaagaccacagaaatttgaaaacaagctgaaataaattgta
-tttcgagttggtggcaagcacacaaagaaaaaaaataattgttataattg
-actttaaattctgaatctcaactgtgtctcccaagagacacaaaaagacc
-gctttcagatgttttattgttagaatcaatattgttattttgaaattagc
-ttatatatatttgtataataaaacaaatattatttacattgatgttgttg
-aagccaagatttccaacatgatagaaaacagatgcaaatgtaacatcgag
-gagttcgggaaaaacccagcagtcctcagtcagaattggaaacatcagca
-taaattaatgatttgtttctctcttaaaaaatttattatctagttcctag
-ctcagtccaacacaaacgcccagaaactttaatagtccacagcaatgagc
-acttaggaacctggattatgttctctaagcatgattttccacaaaaaagc
-atcaaggctttggcctgatgcagtggctcgcacctgtaatccaaggactt
-tgggaggccgaggcaggcagatcaataggtcaggagttcgagaccagcct
-gaccaacaaagtgaaaccctgtctctactaaaaatacaaaaattagccag
-gtgtggtggcaggcacctgtaatcccagctactcaggaggctgaggcagg
-agaatcgcttgaacctggaaggcagaggttgcagtgagccaatattgcgc
-cactgcactccagcctgggtggcagagggagattccatctcaaaaacgta
-aacaaacaaaaaagaatcaaggcttttcaggaaagtggctaagtccagtt
-ctcaggcaggaactatgcatggcaagcctgaggaacttgctaccccagaa
-actgaagaagctaccagaagtcattgtggttgtgtcaacaggacatggag
-cgaaaggagaccatttgagcatcataaggaatctaatgggtgttgattga
-aagtcattcataacttcgtgaggacactcaaaaatcaaactcatcaccgg
-gggtggccaaggtaaccactgacattcctctgaaaacttcaagaacaaag
-ggaggaaaaaaatcaaaatttaccttgctttcctataagatgcatgtttc
-agaattactaaataaattgattactaaatatattactaaatgaatcattg
-atggaaaagattgttatagaaatataccagcttataaattcagaaagagt
-tataaaatttcaagattaccatttggtgaccaccagtgagctgccggatc
-cagaatgccgtcatcaatgCCACCCGTCCCCTGCACCGGGAGAGGAGTTA
-TCGGAGGAGATTATGATGGACCACAGTCCAGGCTGACAGCACCCACCCTC
-TCATCCCAGTCGACATAGCTACCACGGCACAACTGGACTCATGTGCCTCT
-TGAGAGAAAAAAAGGGAAGTGCTCATTCCCaaaacattgaacctgaagct
-tgctgggtcttgacagcaaacacccatttattagaagttggtggattgta
-gaaacatttcgaatagcacaaaaataaactgatcagccaaactgagatat
-tctaaggtcaaatgatacatcaacaacaagtttaataagctcccttcccc
-ccacccccaaaaaagagaggaggggctatcagagattaaatgaaactgga
-gacaaaaccaccgaatacttgtgccagttgctcttgattcaaacaaatca
-aatataaaaaGAAAGTCTTGAGGCAATTAAGAACATGTGGACATGGTCAA
-GTGAACTTAATCAGTTGCATGACggccggcgcggtggctcatgcctgtaa
-tcccagcactttgggaggctgaggtgggtggatcacgaggtcaggagatc
-gagaccatcctggctaacatggtgaaaccccatctctactgaaaaactac
-aacaaaaattagctgggcttcatggtgggcgcatgtagtcccagctactt
-gggaggctgaggcaggagaatggcatgaacccaggaggtggagcttgtag
-tgagccgagatcgcaccactgcactccagcccaggtgacagagtaagact
-ctgtctcaaataaataaataaataaataaataaataaataaataaGTTGC
-ATGATGTCATTTTTGTAGCAAATGACAAAGTCAGGAATCCAACCTGAGAC
-ACCACAGCCCTTGGTGATCATACAAAATCATGACCTTCTCCTAGGGTGTA
-ATGTAACTTTAATATGAAAAAGTATGCTGAAACAGCTGGCATCTGATAAG
-GACAAACATATAGTGGCCTTCAGCAGTGTTTGGAGAGTGGATGAGCCAAT
-GGTTAAACAAATGGGCGGAGGCATGTTTGGCAGGAGAGCCAGTATCACAT
-GCAATTGGTCTCCCATCTTTCTGTGGGATCACCTACCAGGTTCATCTGAA
-GCTTAGGGAGACTCAAAGAGCCCCAGACACCGAGACATCGCTCTAAGATC
-CTGTAGCCATGCAGAGCTGACTTTTCCTCTGGAAACAGTATAATGATCAT
-AATGAGAATGAAGACACAGACCTCATTTCTATGGTTAATTAGAAAGATAT
-CTCCACGACTAGCGGGCATTTTCTGGTTTCTGCTGAAGAGCCTGTTCTGC
-TCTGCATATCTGTGCAATATCCAAGCTGGGGTATGGACCCTGGGAGAGGA
-GAGACCCGGAGAAGATGAAAGGATGAGGGTGGAAACAGAATGGTTTCACC
-TGCAAAGCGCAACTCACATATTTGCTACTGGAACATGCTGAGGGCTGGGG
-AGGTGTGGATGTTTTATGTAAGTCTACACAGCATTACTGTAGTGATTTAG
-GAAAAGGCTCTTTTATGAGAAAATGGCTAAGATATCTGAATTCAGCTCTT
-GCACAAGCAGGATAGAACCCGCAGGCTGCAGTCAAAAGGGACATTTTATT
-TTTCCCATGAAAGCAAACATTTCCTATTCAACAGAAAGACAAGCACACCC
-AGACTCTGCCAGGTGGAAATTTAAGATTGGGTGAGGGTGATTTTCCTCAG
-CCTCCTGCAATGAAGACAGGCTCAGGGCTATTGCAAGTCTCCCACCTAGA
-GCAATTAGCAGCCGCATTAATGTGATGCAGAGGGGCAGCTGCACTTGGAG
-GTAGGAATGGGGAGATACgggtgggatggcgaggtgcaggtgggacaggg
-agatacaggtgggatggagaggtacagatgggaggaggggattcaggtgg
-gttggggagatgcaggtgggatggggagatgcaggtgggatggggaggtg
-caggcgggatggggagatgcaggcgggatggggaggtgcaggcgggatgg
-ggagatgcaggcgggatggggaggtacaggagggttggggaggtgcaggc
-gggatggggaggtgcaggtgggttggggagttgcaggtgcggtggggagg
-tgcaggcggggtggggaggtgcaggcagggtggggaggtgcaggcggggt
-ggggaggtgcaggTGGGATGGACAGGTCCATGTGGGAAGGGGAGATTCAG
-GTGAGATGTGTAGGTACAGGTGGGATTGGGAGGTATAGCTAAGCATCTCC
-TCTGGCATATCAGGCCCTGCCTCATTTGCCGGACTCAGAAGGGGCTTCTG
-GGGTCTGGACTGGACAGAATCCTTTTCCCAGCCCAAAGCCTGTCCTGACC
-AGGGCAAAGAGCCCACTCTGTGGATCAGCCTAGTGAGGAGGATCTGGACT
-CTGTCCTGCAGTGAGCAGCCAGCGTGCTTGGAATTTGGTGCAGGACAGGA
-GACTTCACCAAGGGCAAACTCAGGCCCAAGACTATCCCCCTGGGCAGGAG
-AATAACGCAGCAGCCCTCAGCCAGTGTCTCCTCCTCAGCCAGTGTCTCCC
-AGGTCCATCCGCGCAGCCAGTGTCTCCTCCTCAGCCAGTGTCTCCCAGGT
-CCATCCGCGACTCCAGGGTGTCTGTCTAGGACCAGCTTGCTGCTTGACTG
-TGATATTTCATTTGCTTTTATTTGTTCAGGAAACGGGATGAGAGCTCCAG
-TTCTCTCCTCCCATGCCTGGAAGGATTGGAGAAACCTGTAGCCCCACATC
-CCAGGAGTATGTGGAAGCAGAGGATGCTGTGAGGGTTATCTGGCCAAAGG
-GCTCTCACCCCTGCTGACCTGGCTGCAGCCCGGCCTGCAGGAGCCCCTCC
-TCCCTGCCCCCTGCCATCTGGAGCTGCAGAACAGGCTCTGGGTCCTGCCT
-GAGGCATCTGCTGAGCCCCCCACCTGCCCATCAGGCTGCAACTCAGCCAG
-AGCGAATACCACCCCTGCCCCTCCATGCCTGCAGCCACCTGGCAGCCCCT
-CCTTGCTGCCAGCTTCACGCCAGTTGACCACCCTGCCACTCCTGCTGCCT
-GGATGTACCAGGAAGAATCTGCTTGCTTCTTTCTAGTCTCACTGTCTGTG
-GGGTCCCCTTGCAATGAGGGCCCCAGGGCAGGCATGCCTTAGGCTGGGGT
-AACAGAGACATGGGCGTCTTCCTGACGCATCCCCATTGCCTCGGGGAAAG
-GAACTCCCTTTACCCCCAACAGCCCTCTCTGGCCCTGGGATTCTTTCAAA
-ATCAGACCAAACAGGGCTGCCATTTCCATCCTAAGGCCCCTTCCCTGTCG
-CAGTGCTGGCGTTGGTGCTGGGGGAGTGAAGGTGAGCGGCCGGTATGCTG
-GGGTATAGGTGGGGCTGAGAGTGCTGAAAGGTGCAGGTGACATTCGCCAA
-CAGCTGCAAAGGCTGGGGGTGGCGCTTGCACTCTGGGAAGGTCAGGAGGG
-GCCCCTGGGAGAGGTCACACATGAGCAAGATGGCAAAGCACTATTTGGAG
-CACACAGGAGAAGGCACCGGAGACTCATGGCTTCCAGGCACCCTGAGTTC
-AAATCCTGACAGCCTCTGTGTGGAGGAGCTGGCTCCCATGGGCTCCAGTG
-TGGCCTGCTTCCCTGTTTGTTTAGTGAACGCCTTAACAAAAAAGGTTTTA
-GGGGGTGCCTCACCCTTTAAAATTGACAGGACCACAAATCACCCCACACA
-CAATTGTGTGTGTGTGCGGCCCGCCAGGTGGGGAGGGCAGGGCCTTCCTG
-TGGTCAGGTTCCCAGAGAAGCGCTTCCAGTAGGGGCCACCAGGCATGGCC
-CCTCTGCCCCACCTTGATCATGTTCATGCTTACATCTCAAATGCACGTGT
-CTGCTACATCTTTCATTGTCTTTTAAGTCAATTGGGAAAAAGCAAAACAG
-AACTCCCTAATTCAACCTCAAAGTTAACGCATCCATGTGAACTAAAGAAG
-AAAACGTGAttttcatctatcacaagaataaagaagtgaaacactgatca
-tattaaaaggggtgtgggggaattgggcactctttcatttttggggtgag
-atcattaactggaaaatggttataaagaggaatttgacagcacacatcac
-ctataaacattgtaagatgcttcattttgaaaagtctgttttatagacac
-aaagtgctcagaagttactgcataagcatgttcccagtgatgctgttttt
-aacagaaaaaaatgaaaaaagaaatatggatgatgaaaatggctgaatga
-GGAAGTGGTATTGTGTGAGCAGGAAAGGGGAGCAGGTGCATCTATTTGCA
-GTGACCCACAGACACATCTGGTTTCTGCAGGAAACGAAAGCCAACTGATA
-TGATGGTTTCGTTTTGATGCCACTTTATTTTTTTTAAAGTGTATGTGTTA
-ATATGTGAACAGAAGAAAAGCCACATACCTACGTGTTAACAATAATTACT
-TCCGGGAATGTATATAAAGTGTGAATTTCTGCATTGTTTGCATGTTTTAT
-CAAATGTTACTTCTTTTATAATTAAAAAACAAACCTGAAAAAAACTCCAT
-GCTGAGGTAAACACTGTCTGCTGGTTTGGGTAATCAAGGAAGAGAGTAGT
-TTGTCTTTATCTAATTTGCTTAAAACGTGAACAACTTGAGGaatagctca
-cacttccattgcacattctccgccaggaaatgctgaaagcgctttgcaca
-tattaactcactcaatcctcagagccgctttatgaggtatgtgctgtcat
-gatcctcactttaacaaatgggaaatatgaggtgcagaaagggcaagaaa
-ctttccccaaagctcacgagaagtgcggcacggatttgaaattagggtgt
-cagctcgagacgccaagcttcaacTCCCACCCCACCGGGGCCCTCCCCAG
-AGCCTCCATGTCTCCCTGCCGTTGCCGGGCACCTCGTCCAGGGTGCCTTC
-CTGTTCCCCACTGCTCAACCTCCCCAACCTCCCCAGCCCTTACTGCCAAT
-ATCCTCAGAGGGCTGGGGAGCCCAATAACAGCACCCCCCAGGTGTGATCA
-GAGGACAGCGGGCAGAAAGCACTGGAATGGGCTTAAACACTAAACAAACC
-CCAGTGCCTTTGAAGTACCATGCTCTGGTCACTTGTGTTGGTGAAAGCCG
-TAGTCCTGAGGCCACCTGCCCTCTCCCAGAACTGAAGAGCTGGCACCCAT
-GAAGGGCCAGGCTGACCCCACTCCCCATGCAGCCGCAAGCCAGGACTGCA
-GCAATGCAGAGAGCAGAGACCACCAGGATGGCCCCTGGCTGGGCCCCCAA
-ATGACCTGCGGGCAGGCTGTGCTCACAGGAGGCTGCGTGTCTGCTGGAGT
-CCGCACCTGCCAGCCTGGCTCTGCATCTGGAAGCCTTACAGGAGCACCTC
-AGAGCCGAGCTTCGAGGCCTTGCTGCAGTCAGATGGGGAATACACGGCCC
-ACCTGCTCCCCAAGCAGCCTGCCCTGCCATGCTGCCCTGTGGGTCTGGGG
-TACCACTGGATGAGCTCTGGTGACAACAAGGTGAATCATGCCTTCCTTGG
-AGCAGTGAGAGCCCTTCCAATTATCACGTTTCCAGAGAAAAATGAAAATC
-TAAATTGAAATCCTCTTTCTCTTGCAAGTTTCAGCTCAGCTGCCGACTCC
-GCTCTGGAAGCCCGAGGGGCTCCCGGGGGCTCAGGCTTCCTTCCGCAGCA
-GCCACCCTTGCTGGGGCTGCTTCCTCCCAGAAGGTCACGGCTCTGCGGTG
-TCTTGTTGGTCATCTGTCCTGTGTCCAGCACTGACACTGCTGCAGCTGTG
-AGCCTTCCCCAGGGCTCGGCCAGTTGAACCCAGGAGGAGGCAGATCCATC
-CAGCTGCTCAGAGGCCCAGGGTGGCCTCTTTGGGAAGGAGCTGCTCTGTG
-CAGAGCTGGGCCTCTGAAGATCTGGGATCCTCCAGGCCTGGGGTAATGAA
-AGCCCTTCATTGATGGCCAAACCTTCCCTCCACCAGGGCAATATGCCCCA
-CACATCACTGTCCCTTCCTTGTCACCTTCCTCCCTGGAGCTGACCCAGTT
-ATGGGCTTGAAAATATTAATCTACTTCTTTGGGTGACTCCAATCTGTCTT
-TACTATAAGTCAGGAAACTGAGTGCTGGACCCCAGAGCCTCCTCTGTCTG
-CCGcctcctcctcctcttattttcctcctccccctttacctctccctcct
-cctccttctcttcttccttcttctcatcctcttttttctcttcctcatcc
-ttctcccacttttcccctcccttctgctcctcctcttactttcctcctcc
-tccCTCCTTCCCTGTCCCCCTCCCTGTCCAGCCACTGGGTTTCCTAACAT
-GCTCATTCTGGTTCTGTCCTGCAGGTGAGAGTTTGGGAGTCCAAGGCTCC
-GGGACCCCAGTGCTCTGTTCCCAAGCTCTGTTCATTTTCCCCTGCATGAG
-GGAGGGGTCCCCCTGGAGGTCCCCATGTTCCCTGGGCTCCTGCTGTCACT
-GTCTCTGTGCTTTTCTGCCCAGAGCGTTGCCCCTCCCTGGATCTCCCTGG
-GACTCCTGCCCCACCTTTCTCCCAGCTGTGCTCTGTCTGGGTAGGGACTC
-CCTGCTCCTCCACCCTGAGAAAGAGGCGGGAAGGTCATCGGTGATGGTGA
-AGGTGTTTCATTCAGATCTCAAAACCACGCTCCTTCTTGGTAACCGGTGC
-TGCAGCTCCTCACATCACCTAAGGGCCCCCTCCAGTGGGCTTGCCCCTGC
-AGGGGGTCACCTCAGCCGCCATGTCCTGGTAGAGCCGTCCGTCTCCTCTG
-GCCTGGCCTCGCTGCCCTCTCCAGCCACCCCACACGCGCCTCCGACAGCC
-TGGACTCCTGAACACAGTGCGGGTGGTTCTGTCTCATTTTCCTCTTCATT
-GGGTCTAATCTGGTCCATAAAATGGCAAGTGTTCTCCTTAGGAATATCTC
-CTCTTCTTCCAGCTCAATTCAAGGGTTTTAATTTTTCTTTCACTTTCTCA
-CTATTGGTCCTCAGACAGGAGAGAGGAAACCATCACTCAGGGGATCCTTG
-AGGCAGAAACCACACCTGTGGGAAAGGGATGTgggcggagaaggggagga
-aggggagggagtggaggggaagaaaggagaggggagggaagagctgaggg
-aagggaggggaCATTCTTGACAGGCAAGACACTCTGCCTTCCGGGGGAAG
-AGTGCACAGGTCCCTAGAAGTCTCTCCAGTGCCCTTTGCTCCTCAGGAGA
-ATGGAAGGAGGCCCCTTCTCTCTGGAGCCATGAATCTGAGGACCAAGGCT
-GTGCCTGCACCACTCTCTGCAAACATCCTCCAACCATCTCTCTCCAAAAT
-ACGCTGGGAACTCCTTCAGCCCAGCCTGTGTTTTAGGTTTTTAAATACAT
-CTTTGTTTAGGAAATGGTCTGCCATTTTTTGAATATGTTTAATGAAAAGA
-CGAATGAATGAGCCTTGGACATTTGAGGGTGTCAAATAGAACCCAGGTCA
-ACTGAAAGAATACTCAGTTCTCCAAGGTCAGGCTAGAACTGTCCTCTGGA
-CCCCTCCCCACCAACACCCTTAGTGGGCTTTTGTCCTTCATGGAATGAGA
-CCATCTCACCTTAAATAAATCTCAAAGTCTATGCTGCGGCTCGATCCAGC
-AAGTCAGGGCTGCACCAAGGTGGGGTCCCTGAAGTGAGTTCCTGGGATGC
-CCAGACAAAGGCCGGCCATCCTTCAGCCATAGGGAGGAGCTGACCTGGTC
-CGCATGAGGCTCATAGCTGGCAACTCACTCTATGCTGGGTTGAAGGACAC
-TGGTGCCCACTGATGGGCTCCGGGGCCACACAGGAACCTGGAGCAGCCCC
-ACAGGTCAGCTGGGCCGTCCTGCCCAGGGCTCTGCCCTCACGCACCTCTG
-GACCGGGTCCTGTTCCAGGGTGGGAGATCAGGCCTGAAGGCTTAGGGATT
-GATGCTGAGGGGCCTGTGTCCCTGGTACACATCCAGCCTGTATGAGCTTG
-TGTGGACAGGAATCCGCAGGGCAGGAGGAAGACTTTCATCCACCTCtgta
-ttagtctgttttcacgctgctgataaagacatacctgagactaagcaatt
-tacaaaagaaagaggtttaatggacttacagttccacatggctgggaggt
-ttaatggacttacagttccacttccactcacattcatggtggaaggcaag
-gaagagcaagtcacatcttacgtggatggtaataggcaaagagattgttc
-agggaaactcccatttttaaaattcagtctcctgagactcattcactata
-atgagaacagcacaggaaagacccacccccataattcaatctcctcccac
-cgggttcctcccatggcaagtgggaattgtgggagctacaactcgaggtg
-agatttgggtggggacatggtcaaaccatatcaGGCTCCTGtgagatttg
-ggtggggacacagccaaatcatatcaGCCTCCCAGTGTCACACAGGAACC
-TGAACCTTCACCTTCCAGGGGTATTGGAAGGAATCCTCCACCCTCCCCTC
-TGCCCACCCACTTCTCCCAGGGAAGAGGCGTGGATTCAGTGAACACACTC
-CATGGCGCCCAGGTGGCTCCGAGCTGCTGGGCTCTCCCTGTCTGGCCTCC
-CAGGGCCACAGTGGACCTTGGCCCCGACCCTCTGTGCCTGGCCTAGTGGA
-GCTCATTCTGCCCCTGGAAGGAGCCCCCACCCTGCCATTTTCCAGATGCT
-GCATTTATTTGGGATGAAGCTGTAGCAAGGTCCTCCATCCAACCTGAGTA
-CTGCATGGCTCAGGGCACAGTGCAGATGTTGTGACTCTGGTCTTTCACTT
-TCTACTTCTCGTTTGGATCCTGACTCAGAGAGGGTGAGGTGCTCCATTCC
-CCCCGGCCTCTCCAGGTCCCAACACACACACTTCCTCCATTTCCACGTGT
-CTCACGTAGTTCTCGTCTTGGCCTCAAGAGAAGAGCTCTGAAAGTGGAAT
-TCCACAGACCCTGGAGAGCTAACATGGGCCATTCtgggcatgctccggct
-cttccagcctcagcctttccatctgtaaaatgaaggtttggacgggaggc
-tccgtCTGCATTGGGGGAAGGGGTCCTCTGGAGACGCAACAGATGGCTTa
-gcctctgcccatcattgccagcaacagggctcgctccccaggaggcagct
-catgccacagctaactgctcttgtcagaaaagctgtccttccattcagcc
-aaaaatctgcctcgctgtctctccacccagtggacctGTGTCCCCAGTAC
-ACATCCAGCCTGTTCGAGCTCGTGAGGATGTTTTTCTGCAGGACAGGAGA
-AAGATCTTCATCCACATGGGAGTGTTCTTCTTCCAGAGTCATTAGAAGCC
-TCTTTCCCAGCAGAGGCGCTGAGAGGGTGGAGGACTGCTCTGAGCTTCCA
-ACAGCCTGTCGCCCTCCGTCTGACCTGCACGTTTCCAACACACACTTGGC
-ACTGGTTACTCTGCTCTGGATGTGTTCCTCGTGGTCAGCATCCACTGAAA
-GGGAGTGTAACCCCGGACGCGGTTGCAATCCTGCAATCCTGCAGTGGGTG
-CACTTTGCCCTTTCCCAGGCTGGCCCCTCTGTAGGGGGCTGGGGTCCCTC
-GCGTGCGGGGCAGCCCGTCTGATGATCTGGGCTCAGGGCTGGGGCCAGCA
-ACACCCGCAGGTGTACACGGCATGAATCACAAACCGTTTTGTTTACCtgc
-ggttggtttttgttttaatccagggaacaagcagggcttcacttttaacc
-ctactcaattccatcttgttcacttcagtccattgtttcggcctgtcaag
-aggtcttttctgtctggacaatttcctccaccacattagcctcccctgtg
-agctttgatctgcacatttgacaagcaggtctgttacagctcatccaagt
-cattgatagaaacggaccaggatggggagtggacaggtgccactggagac
-ttccctccaacttgacattgatccattaatcaataTGCTCCACAGCTCTG
-CCACTCCCTGACAGCTACAGCCTCTCTTCCAGGGTTCTCCATGGGGCCCA
-TGGTAACAGAGTGGGGACTCCACACAACTCCCCTGTTGCCTGGGTGGGGA
-GTCTACCAGAAGTCTCAGGGTCCCGAGGAACGTGTATTCCTGGGCTGCAC
-CCTTCTGAAAACCACAGTGGCCTGCCGTCTTCACGGGCACCACGCTGTTG
-TGGGTCCTGGTTACCCTCTGCCCGCTGACATCCTCTATCTATCGCTGTGT
-TGGCTTGGAGCTCTTCAAACCCTTCCAAGCAGCATCCCTGATGCCGCCAG
-CAGAGCCAGGGCTACTTCTCCTTGGCTGCACTTGGCTCATCTGGCGTCCA
-GATGCCCCTTGCTGCAGGCTGCACACCCTATGTGCAGGTGCCCAGGACGC
-CTGGGCGGAGGCTCCATGTCGTACTCATTCTCTGTCTCACCCTCCCCACG
-TCCAGCGTGGAGCCCTTCGTAGACACTCAATAAACATGAGCGTATGGACT
-GACCAAATCTTTCCATTCTCAAATGCATCTCGCAGGGcaggggtcgatac
-agatggcttgtgtggccaaatgtggccctgctgcctgcttttgcagggtc
-tgtgagctaagacgttttaaaaaacatttttaaataggaaaaaatttaaa
-cataccacttcatgatacatggcaatgatatgaaattcaaatttcagtgt
-ctataaataaagtcccactggaacgcagccacgctctgcactgacgtgtc
-acccacggctacccccacactgccgcagctgaatcggggagttgaggccg
-acactgcatggttcacaaacccgaaaataggtgctcacttgccctgtacg
-tacgtttgctgattccCCGCTTGGAGGGAAATGGGTCTGCTTAGGACAGA
-AGAAACATCCACAGGCGAAATGCattcatttattcaagaaatattgattt
-gcagccagcctgcgggaggcgagatgctaggtgggggcaatttggtagga
-atctggagagaaaaggccctgctctcgctgacatcagagtgagttaggag
-aaacaaaaagcaaggaaagaaacaaaAATAATTCCGTATGATGAAAAAAT
-GGTGTAAAATCCCAGGGAGGGGCAGCAGAGCCCCAGGACAGGGGGACAGT
-GGAGAAGACCTCAGAAGGGGGGCAGCCTAGGGGCGGGGGGAGAGGAAAGA
-TGGGGCAGGTGGGCTGGGTGTGAGGTTCTTGGGGCAGGTGCAGCAGGGAG
-AGAGGCCGGGACAGATGGATGAGGCCCTGGCAGGCAAAGGGCTGGGCGTT
-GCTCCAGCGGGACCAGAGGGCTTTAAACAGGGACGCGCCACCATGGGATT
-TGCATCCTGAGAAGAGCTGGGAAGACCCACAGGCAAGCACCAAGCCTTGG
-GTGGTGACACAGGAGAGGGCGACATAGCCTCTGTCTCCAAAGAGCTCTTG
-TGTTTGCAACGTGAGCTCTCGGAAATGTTAGGTCCTGGGGGCCAGAAGCA
-GGGttttttttttttttttttttttttttCATAGAGACAAAAAATAATTT
-GCTGCCTTGCTCATGTGTTCCTCCATCCCCCCGTTTACCCTTCCTTTCTC
-CCTCCCTCCTTTCATCAGACTGTACCCAGCGCTGGGGGTCCAGGGCACAC
-ACACACCCACATCCCTCTGCTCTCCCTGCTTTCAGCCCCTGAGTCTCTGG
-GAGCCTCCCTGTCACCCCGCAAAGTAGCACTGCActtgctcatccctttt
-ctctctttttcaggaaagctcatcatcatactgtttacctatttctgttg
-tttgtttggtctctctctccctacagtttcactaggataaggaatatttc
-tcttttcttcatagctgaatctccagtgcctagaacccagagcaggcgct
-ctggaaagattatgaaataaatTGATGTAACCCTTGATTACAAGAATAGC
-TGAGAGAAAACTGAATGAATGGTGCCTGCAATGTCTCTTCCATGGCTAAC
-ACCTTTCGCCCATGTGGAGTCTGCCCTACTTCAGGAGATTCACAATGGAC
-GGGACGCATTCTGCTTTCAAAGCACAGTACCTGCCCCTGACGTTCAAAGC
-CCGCGTTCTCCAGGTTTCTGATGTCCTGTTCTCCTTCTCTTCATGTGTTT
-GCTTTTCAAGCTGGCTTGGTTGGTGTTTCTCACTGCGGTTAACAGGGAAT
-CCTGTGCAGCCGAGAATCTGCCCTGTCAGGTCCTCAATAGAGGGTGCACA
-TGCCTCATAGATTCCCCCCAAACTCTCAGCACAGCCCCCAGGTCTGGTCC
-TTCGCGGGCTCTGGCCACTCTGCCTCGGCTCTGACATGCCAGCTACAGAG
-GCCAGCTCTCCTACAGCAGCTCATGCCACTTCTGGCTCTAGGCATCCGGC
-CTGTCCTCAGTGCACAGTGTGtgtgtcaggccatcctggcattgctgtaa
-agaaatacctgagcctgggtaatttataagaaaagaggtttccatggctc
-acagttctgcaggctgtacaggaggcatggtgctggcatctgctcagctt
-ctagagaagcttcaggaagtttccaatcatggtggaaggcaaagggggag
-caggcatgtcacatggaggaagcaggagagagagttagggggatgccatg
-cacttttacatgaccagatttcgtgcaaactcagagctcactcatcacta
-agggggtggatggcccaagccattctggagggatccccccatggtccaat
-acctgccactgcccccccccgcaacactgggaaatacatttcaacatgag
-acttgggtggggacaaatatgcatcctatatcaGTGTCCACAGAGTTTCG
-TTCTGCACCTGAAGAGGCTCCTCTCAGATGCTGCCTTCAAAGCGGCAGGC
-GTCCCTTGCCATTTCTTCTGCCCCAGGTCCAGGCCAGCCATAGGCAGGTC
-TTTCTGGGTGTTCCCAGGCAAGAGCCCACCTGAGGCTGTCCATGGTTCCC
-CACACGCTAGCCCAGGATGAGGCTCCCTCACCCAATTCTCAGATGTCCAG
-ATCCCTTTCAAATAAGTCTACTCCCAATTCTCTGCTCTTACAGATCCTGC
-ATCTGGCTTTTGCCTCAGTCCACCAAAGTGAGGACCTCCACATGACCATC
-ATGAGGCATTCTCATGAAGAAGATCCAGGCAAATTCTGGGAGAGACCAAG
-AGACGTAATTAGATCTGCAGAGGAGCGCTTCTGTGTCAgtggggttagga
-cctccaaaaacctacacctccataaaagcaatgagaacactggaaaaatc
-tgccaaaatcaactttgttttcagaactctacacatgaaacaaagcccca
-aagcaacccaagaagcatctttgtgtttttttcagaaaaaaaatggctga
-ctctcagtaataacagggagctctgtggtgttttgactcacactatttcc
-acctccccctctgcatttccaccaacagctttaattgtgaggctttaaaa
-accaacagccTCACATCAAGGtgcattaatcagggttttccagaggaaca
-gaaacaatagAAACAACATTTCCTATTGTTtatgtatgtacataaatata
-tatctcctatttataaatattttatacctataaatatatatctcctatat
-attaacaatctcctatatatctcttatttatttatattataaatgtagat
-taatgtatatctcttatttatatttatatactaaatatataaatatattt
-taaaaaatatatacatatatatttcctatttatatatttatatataattt
-ataatattttataccattaaatatatttatagtattacatacataatatt
-atatgtatattgtacatatgtaacatatatacataAAACAAGAGACTGGC
-taaatatcttaattatataatataacataattattatattattatatatc
-tatatattatatgtatattatacatgtatataACATCCAACATATAGATA
-ATTGATACTGGATTTTTACAAAGTTGGATTTTATTGAGGCTGATGGCTTT
-CACACTATCattattatctattattacatatagatatataatatatacat
-ctttatgtaataataataataatagtttgaaagacatcagccatttgaac
-tggtggactaagtaaggcagacggccctGTCTagtcagatgagaagcact
-ccatcttacccaggctttctgttttactcaggccttcaactgattggatg
-aggctcacccacactggacagccatctgccttacttagtccaccagttca
-aatgctaacgtcatccagagacaccctcgcaggcacagccagaatcatgt
-ttgatcaaatgtctggccaccctgtggccaagacaagctgaaccataaag
-ttaattaacacaTGTCATAAAAATAAGCAGCCTCAGAACCACAGTTGCTG
-TGAAACCCTCATCCTGAAGGACCccagagagaatggaatgagcttggtgt
-tccccagaaagctcccaacctagagaactttcacaatttgtcctgtctga
-cagttacctgcaagtgaccaagggcttgcctttatttgatctaactctgt
-ctggacaaacaagctacattcctggttgtttgtcaaaaacagtcatcagt
-aattttaacattcttgacccactattaccagcataagaaaacaagagact
-ggttaaatatcttaaaaagaaaattggaagaatgagatatccaaaagagg
-ctttgaaaatcttcaaaatattcctggtaacctagaaggctacacacaca
-tcccaggctgtgcacatgcccagggaggacccaacatggactcagcctct
-ctgacctgtgcaagtgggaagtgagggctaaggtggagctgtgactgcct
-gctggagcattggaagtgcaccacagagacccacaggaccctcagcaaag
-gcaaggagacattgggtgaagccatttaaggaaatccacttcctatcata
-agctgacaactaaaccaaccaaggagaggaccacacacaacaaagaatac
-agatattacagaaacggttcaggacagtcactaaaaaaaaagcaggaacg
-ataacaacaaatatctgggaaatgggggaaatctgatttccagagttgtc
-atattttattatttaaaatgtatagtattctggaggctgaggagggtgga
-ttacttgaggtcaggagtttgagaccagccttgccaacatggtgaaatcc
-cgtctctactaaaattacaaaaattagccaggtgcgatggtgcatgcttg
-taatcctagctactcaggaggctgaggcatgagaatcgtttgaacccagg
-aggtggaagttgcagtgagctgagacggctccactgtccagtctgggcga
-cagagtgaaactgtgtctcaaaaaaCTAATACataaaataaaataaaata
-aaatatgtagttttctgcaaaacattatgagacactcaaagaaacaaaaa
-gtatactcaatgcagagacaatagcaactgtccctcaggggcccagatgt
-tgggctcactagtcagagacattttttgttaaatattttcctaagttcta
-tgttctttttaatgctattataccttgacttgttcaaattttgttttcag
-attgtttattgcaagtgtatagaaataatatttatttttgtatacttatc
-atgtaccttcaacattCTTCCAGCCATCATAAATaaaccagatgtggaca
-tcacaaaagaaaagaaaactccttatgaatacaggtgcagatatcctcaa
-ggagatactagcatacctaatccagcaactgagaaaaaggattatatgcc
-atgaccaagagggatttcaatgttggttaaacatctgaaaatcaatgtaa
-taccccatatcaataaagaaaagaacaaacaatatgacatctcagtagat
-aaagaaaaagcatttgacaaatcccaacacattttcatgataaaaacaat
-taagacactatgagtagaatgagacttcctcatcctgatacaaggcatct
-atgaaaatctcacagctaacattatacttaatggtgaaatactgttttcc
-tcttaagattaggaacaagtcaatgatatctgctctcatcacttctattt
-gacattttactggagatgccagtgagagaacagaggcaagaaaaagcaat
-aaacagcttccagattgggatgaaagaagtaaaactatatttcccgataa
-ctcgatcttgcatataggaaaccctatagaacccacaaaatacacacacc
-tgcaaaactattaaaactaataaacaaattcatcaaggtttcaggtacat
-gacaaatacacaagattgtatttctatacacttgcaataaacaatctgaa
-aacgaatttttttcaaaaaaagtcaatttataatagcattgaaaagaaca
-aagtacttagaaaagtatttaccaaaaatctacaaatgtgcatactgaaa
-accacaaatatttttgaaaaattgaagacttaaatagatggaaaaatttc
-ccattatcatggatcagaagatttaatattgataagatggcaatgctccc
-caaattgatgtacaggtttaaaataatccctatcaaaatcccaaatgctt
-ttttgcagaaacttactagatgatcctaaaatccttaggaatattaaagg
-aacctgggatagtaagaacaatcctgaaaagaagaacaaacatttctcaa
-attcaaaacttactataaagctgcaataattgatgtaggtaccagcacaa
-agatagacctatatagatcaatggaatctatagacacctagattcaatag
-aattgggtgtctaaaaatgaccattgtaattatgatcaactgattttggg
-caaccgtgccaagaccattcactaggaaaaaaaaaaaatcctttcaataa
-atggtgatagggccactgctttgtacatgctgaagaatgatgttgggctc
-cctaccatacctcatgtacaaatattaattcaaaagagatcctagaccat
-tactcttgtaggtaagtttattagctctaactagagttaaaactataatc
-ttcttagaagaaaacataagagtaaaactttgtaatcttggtataggtaa
-ttgtttcttagttatttcaccatgttagactttattaaaattaaatactt
-ttgtggttcaaaaggcaacattaagtaagtgacaagacaacccacagaat
-gggagagaacatttgcaaattatatatctgagaaggtacctgtattcaga
-atatatagactactcttaaattgaataataaaaatgaaaataaaacaatt
-ttaaaatgagcgaaatattgaatatttctccacagaagatatgcaaataa
-atggtggataagcccatgaaaagatactcgacatcattagtcattttatc
-agagatacgcaaatccaaaccataatgagataccacttcatacctactag
-gttggcttaaattaaaaaaaaaaaagacaaacaaatagcaagtgttggca
-ataatgtgaagaaacaggaattcttgcacactgcttgtagaattttaaga
-tggtgaagtcacattaggaaagagtctaatatttctcaaaatgttacagg
-tagcgttaccgtatgacctagcaattccactcctgggtaaatacctaaga
-gaagtgaaatacatgtccacacacaaacttgtgtgtaaatgttcatagca
-acattattcgtagcagctaccaagtggaaacaaccaaaagtctgtcaact
-ggataatagataaacaaatgtggtctcttcatataatgccatatttttca
-gccacaagaaaggaatgaaatataacacatgctataacatagatgaatcg
-taaatacattacgttaattgaaagaagctatcataaaagatcccaagtta
-tatgattctattgtcataaaatgtcaagaatagacaaatccatagagaca
-aagtagatgagtgctttccaggagctgagaggagaggcagtagctgccaa
-tggatatggaatttattttcagggtaataaaaatgttctcaaattctatc
-gtggtgactgtgcacccctctatgaatacattcaaaccttttgaattaca
-accttcaaaggagtgatatttatggtgtgtgaattataaacaaattatat
-tataaaTTGCATTATAAAAATGAAATTGGATCTTCATCATGATATAAATT
-ATGTAAATAAAGAGTTGCATGTATGAATGAAGGAAACTTGCAGGAAACTG
-TGACTTTATCAATGGGGCTTATCAGGACCCGCTGCTTTGTTTTCCTCCAT
-AAACCTATCACTGCCTGATGTACTGTGCATAGGAAAACCCAACCACGTTG
-AGATTCGGTACCTCCAGTTGTGTGAACTGCAGGATCACAGTATGTGAAGT
-TAATGGGATAATGGGGGATCCTGTACAGGCAGCTGTCTTGGTGTCTAGGA
-ATCCAGCTGCACAATTCACATTCATTCTGGACCTTGTTAAAGTGTGACAC
-CACTTGTCTATTTTGGCTTAAAGATCTTAAATATCAATGGGGATGATTCA
-GGACCCTGTGGtgtagtagtcagggttctccagagaaacggaagagagag
-agggagaaaggaagagagagaagcagggagggagagatagagagagagag
-aaacttattacaataagatttattgttagaaattggctcacacaattatg
-gagaccggaaagtcccaagatctgcagggtgagtcagcaagtgatctagg
-aggcctgatagtacagtttcagtctaaagctgattccaagacccagtgac
-agccaatgtccccatcccagtctgaaggcagaaaataagaccatgttgtt
-gtttgaaggtggtcaggtaggggaatttcctcctgctcgggggagggtca
-gcctcttttctattcaggtcttcagctgatttgatggactcacccgagtt
-aggcagggcaatctctttatccagtctcctgatttaaatgttaatctcct
-ccaaaaacacctttacaggaacacttagaataatgtttgaccatatatct
-gggcaccccgtggcccagtcaagttgacacataaaattaactatGTGTGG
-TTACCTGGCTGGTGCTTCCAGCGCATGGGTTGTATTCCACGTATATGTTG
-GCATGCGTTTCAGTGACTCAATCTGAGGAGATCAGACCCAAATAATTCTG
-GGGATGCATAGGTACACCTTCTGTTCCCCCTCCTGGGTGGTTTGCCAATC
-ATTTTCCCACCTGGCTCATCCATTTCTCCCTTCTTGTCCATTTCTCCATT
-TTTATGGAAGCTAAGAAATGCAGTCCACATCCATTTAAGAATGGAATCTG
-GGCAGGAAATGACAGCCAATTCCCAACCCCATTTGTTTTGTGCTATTATT
-GGATTTGCTATTGTGGAGTTTTACATATTTACCTGCATATTTGTTTGTAT
-CTCTTTTCTTGCAGCATTTAAGTTCTGTGGGCCATGCTGCCACCCATCCC
-ATGCTGCCCCACCCCCACCTATTATGTTGTTATGTTTCCCTTGCCAGGGG
-TAGCACATGGTACCATTTGTTGCTTAGTAATTTTTGAGTAAATACAATAA
-ACTAAATTATATGTGGATAGTTTATTAATAAACTGCTTAGCTATGGTTAA
-GTTTTTGATTTCTGATGCAATCCATGTACTAGCTATGCCCTTCCTGCCAC
-TACCTATGCTCCGCAGAGCATGCTAATATTGGCTTAAAGCCCAGTTCCAT
-AACTCCAAGGAATCCAAGGCCTCCCCACGATGTCTATCCACTCCAGGGCT
-TGTTCTGTCCTCATTCACTGTCTTCTTGGTTCTTGAATCCAAAAGTGTTA
-TCTGTCTTGACTCTCCCTATCCCTGATTCAACTCTCCCCTGGCACAGAAG
-AACTTCCAAGACTGGGGGCCATAAGGGTAGCACGTCCTGGCCCTGGGCTC
-TGCCTTCCTGCTGATCCATGGAGGGCAGCATCCTGGCTCTCAGCTCTACC
-TTCCTGCTGATCCATCGAGGGCAGCATCCTGGCTCTCAGCTCTACCTTCC
-TGCTGATCCATCGAGGGCAGCATCCTGGCTCTCAGCTCTACCTTCCTGCT
-GATCCATTCTCCTCTCTCCTTCCTACCAGTTCCTCACCTCCTCATTCCTT
-TGTGAACATTCGAATTCTCCCCATTGCCCAGAACCACCCAGCACTTCCAC
-CTACTGTCCCTACCCTTGCACAACACACTCTAGCAAGGTCTTGGCAGAGA
-AAGAGCCCTTTGTTTAACAGGATCCACTTCCATAGGAGATATTTAGGGTT
-ATAACTATTAATATTTTTCCTATCGCACTTTTTTGGGGGTTCATTTATGT
-ATTTCTCAATTTATTCACAATGGAGTCATACCATGTTTATTTAGCAAACC
-ATAGGCACCAAATAAAAAATACAATAAAGTCTTTTTGATACTTAAGAAAT
-GTAGGAAAATAAATTCAAAGGAGGCAGCTGGCTCCACAGCCTGTGGCCTT
-GGCCCCGCAGCACTGAAGCCACCGCACAGACTTTCCCCTCCTGCCAGCCC
-TTCCCACTCGGCTCCTGGCTCCTTCGTGGAGTGGGCATCCTCCCAGTCAG
-CCCCTCATCAGTGCTTGCAGCGACCTCTAATGCTCCCTACAGAGCACGCC
-ACACATCAAACTCATCAACAAATCCCCACCTTAAACATCCAAAGGCCTCT
-CTGTCTCCATCACTGCAGGCTCTAGGTGATGCCTCTTAGACAGGAACATT
-CCTGCTTTGATCTCTGCCCGCCTCCATCTCCCCTGAACATTTCTGCCAAG
-ACCTGTCCTCTCCAAAACCCAAGATTGATCCCTTTGTCTGTGAGCTAAAC
-CCCAAACCCCCACACAGCCCTGAGGCTCTGGATTTGGCCATGCTGCCCGA
-CCCACTTCATCTCTACCGGATCCCTTGGCACAAGTCCATTGAATGTCCAT
-CGAAGTCATGGTGCtcttgtccctgaagaccctggaaatgggggtctctc
-tgcctggaacgcccctgtactactttcccatcccctgaaacattcgccat
-ttttaagaccaagctgaaatgtccagtcttccacaaatatcttccagtct
-tcccaTCTAGAATTAATCCATTTGCATTCTATAATTTATGTCTGGTTAAA
-TGATCCTTGCTTTAGCTCCTGAGTAGCTGTTTCTGGGCCTGTCGCGTGGG
-TTGTCCTGAGAGCACAGTCCCTGTCTGGGCCCCTCGCTATGTCTGGTTCA
-GGGCCTGGCACACACCACTTGGGTGCCTCCAGGGAGGGTGATCAGAGGCT
-GCTTCCCATGGGACAGGCTTACAGATGTGCTGGCTGAGCGGCCCCACACA
-CCCTTCTTTCTTCCCTTGTACCAAAGGGCTCAGTAGCTGTCCTCCCACTT
-CCATAAATGCCAGCCGGCCACCCCTGTGCCTTCACGCAGCTTCCAAAGGC
-CCCTCGCAGGGACCCTCTGAGTCCCCCAGGGCTCTCCCCTCATGCTAGTG
-GGCTCATGTCTGTAAGGTAGAGGGCCCAGTCCTCCTTCTTCCTCatcctc
-cagctctcagtacacttctgggaaccgcgtaggtgcttagtaaatgctgt
-tggataaaAGGGATTAGATAATTTATGACCAAAGATAGAGAATAATTGCC
-AATGAGAATTACATACTAATAACGCAAATAGCTCTGAGTTCATCTTGAAG
-TTTCTTTCTTGACCTGATTCTCAACAAGGGGAACATAAAATCAAAGGTTG
-GCCTATTTAGCTAGATGGTGATGAACCGTGAAACTTCAATTGGCAGCCAG
-GGAAGGCTGATTATATAGATTAGAAATGCATTTATATCAGGCTCTTTTAT
-CTACCAAGAAGCACTGAGAAAGTGGGAGATGGAGTCCATGAACGCTTTGA
-TATTTATGTCTCTTTCCTTCAGTTTTTCTGAGGTCCTTCTATGTTCATAT
-GACATGGCTGAGCTTTCTCTTCACATAGAAGTTCAGTTTCTGTATTCGAA
-AGTGGCCTTTGACCTCTGTGGATGGAGAATCCAGACTTTCTAATGGTGGT
-CTGGGACCCTTTTGATGAGCTGCCTGGAGGCTGGCATCATTTTTTACATG
-ACTATTAAAAGCACATTTCAAActgggcacagtggctcacaaacgtaatc
-ccagcacttttgggaggtcaaggtggatggatcacttgagctcaggaatt
-caagaccaaactggacaatatggcaaactctctctctGTCTCTCACTTTC
-TGtatatatatatatacatgtatatatgtatatatatgtataaatatgta
-tttatacttattttatatttatatgtaaatatatatatacatatatataa
-tatatgtatgtatatatatattttacatgtatataAAATTAGCCGGCAAA
-TAAAAATTAGCTGGTAAATACAAAAATtacttgggggggttgagaggcag
-ggggatcacttgagcatgggaggtcaaggctgcagtgagccatgatcgca
-ctactgcactccagcctgggagacaaagtgagatcctgtctctaaataaa
-taaaTACAGACACATTTCACGCCTTTTACATGTTGTTTGGAAACTGCTCA
-AGGGAGGGTCAAGTGTGTTATTCAGGTCAGGTTCCAAACATATGATGACG
-GAATTGGTGGAAACATAGGTTAACCATGTTCTTTCCCAAGTCATAACTGT
-GCCTTTCTCATCCATTTGCATAAAAATCCCTGAGCACAAGTGCCTGCTCC
-AGTTCCCTTCCTGGGGACGCCCCCCGCATGCTGTGCTTATTAAAGGCACA
-GCCTGGCTGGGATCAGGACGCTCCTGTCTCACTCCTCACATTCTCCAGGC
-CCATTAATTGTGACAATTAGTGACACTTGTGTTTTGTGTCAGTATAATTC
-ATAAATTCATGAATAAACAACAGTATTCTGAGAATTGATCACTCTTTCGC
-AGTGACTGGCAGCTTCTACAGAGCAAGGTCCCTGGGAACCATTTCAACAT
-CCAAAGTACTTTGCATATTGGGGGCATGGTCCATCATCTGGTGAAATTTG
-CCTATggaaggaagaaggagaagggaaatgaaggaggaaagaaaagaggt
-gagagggaaagagggaaagagggaaggagggaaggaaaaaaggaaggaag
-gaagaaaggaagggaggaaggaagaaaggaaggaaggaaggaaggagaga
-gaaggaagggagagaggaaaggaaggaagaaaggaaggagagaagaagga
-agggaaggaggaaaggaagaaaaaaaagaaaggagggaagaagggaggga
-ggaTGAAGGCCAGGAAGGAGAGAAGGAAGAAGAGAGGCAGAGAGATCCCC
-TCCCCTCAACCCCCAAAACACCTTTTGGTACATTTTACCAACACCTGCAT
-TTCAAAATGGTTCTGGAAGTTCTGGTTCTTGGTCTCATGTGTCAAGTTAG
-CTGCACACATATTTGCCGCACATCCCTCTGTGCCACCCTGGGAGTGCAGG
-GCCAGTTCTGAAGAGCCGTGCACTCGTGGCCATGGTCCAGTGGCCGTACA
-ACAGCCTGGTGTCTATAACACAGGGCAATTCGAGTTTGGATCCATTTAAA
-CATGTACTGCCTTTTGTCATTCACAGTTTCATGCATGTCACTCTTGTCTC
-CAGGATAAACTGGAGCAGAAACTGTCTCATTCAACGTGTGTGTTGCTGTA
-ACCCCAGGTTCTACCACTGTCTTGAGCACACAGTAGGGAATTTAAGAAGC
-AGTTTATCTGGGGCTCTGAATGCATGGCTATTTCATACCTCAGCTCCCAA
-CTCCAGGGGCCTACTCACCCTCCATGCAAGTGAAAACCCCCAGATACCTC
-TGCCCACCACTCACAGCCTCATCAACCCTCAGCGTTGGAAGGGCCTCTGG
-GGTGCAGGGTGTTCAGCAAGGTCCTGCAGCCCGCCCACCAGGCACCTCAT
-GTCCCAACACGAACTGTTTACATATGTGATGAGGTTCTGCTCTTAATCCA
-ATTATACCTTCATGTATGCACCCAGATTCTGTTGAGCACTCCCACTGGCA
-TTAATGATATAGCATTGAAAGAAATAAAACCTAACAGAACAAACAGAAAG
-CCAGGGACAGTTAACTAACAGCAACAAGACCCTGTCCTCAAATAGCTGTC
-CTCCCACTGGGTGGACAGAGAGATGGGCATGCAGTGGGGAGGCATGAGTC
-CCTGAGTACAATCATCTGTCACCCTCCACTTGCACAGAGTGAAATCTCCT
-CCCTGAATGCTCAGCACTGGCAGGAAGGACACATGATGTGCTCAACTGGA
-AATTCAAGAAAGAGGGGGCTCCAGGGTCAGGCCCAGGGGAGAGGTCTCCT
-CTCTGCCATGAGGCTTCTTATGGGGACCACATTTTTCATTGGGTTTAATG
-ACAGTGACAGTCCTGGCATCTGCTTAGAGGATGAGGTGGGGAGAGTTTTT
-ATGCTAACTGCAACATGAGGATAAACACAGAGAACAGGCCTTGATCTACT
-CCAGAGGGTTTCCGGACACCCAGCGGGATGCATACACAGATGATGCAGCA
-GCAGGGACAGCCACGAGTCCCCGTTCACCTTGCCCCACCTTCCCTAGAAA
-ACAACATGACCTCTTCTTGGACGACCAGCCTTCCTTTCAGTTCctcatct
-catctcatctcatctgatctcaGCCCTATCCAAGGCTGGCTTCAGGTCTT
-CCCTCTCTGCTAGCTTCCTCTGCTACTGTCAACATGGGAAGGTGCCCTTT
-AAAAACAAACGAACAAACCAAAAGGAAGCAGACCCTAACtggttcccctg
-tccctacccggatactgcaccagctctctgcttccattcaaggtgaagct
-tctagaaagcacagtcgctgctgaatgtcctactcctctcctcctaCCTG
-TGCCCACCACTCACCACTCATGTGGCTCTCATGAGGCAGAGGATTCCCCT
-TTCTTCTCAGGCTTCCAGGGTGCAGAGCGCTCTCACTTCCTTCTCTGGGC
-TTCCAGGTATGGGGTAGGTCTTCCTGGAGTCCTCTGTGGCTACTTCCTCC
-AGCTGCTTTTATAATGTCAACATTGCCTAAAATCCATTCTCAACCTCCTC
-CTCATTTCTATTTGAAGGACCCCTTCCCTGGCTTCAGTTCCCACCACTGA
-CTGATGACCCCTGATTGACACATCCAGCCCCTCCTCCCTGCACTCCAGGG
-CCTTGATACTCCACCTTCCTCCACTGTCTGGGGTTCCCACCTGGGGGTGC
-CACAGCACCTGGAGCTCTGTTGTCTCAAGCTGAATTCATTCCCCTTTCCC
-TCACAGTTCCCCACCACCCTGGAGAGGACATTCCAGGAAAGCAACATCCC
-TGGTTTTCCCATACACGCTCCCATGTATTTCAGATCTGTTTTTGCTGTTT
-CTAATGCCATTTGGTGACTCCCTGTAGTCTACAGGAATCGTTTCTGCTAC
-CAACCGTTCTTGGAACAGCTTCACAATTTCTCCCACATCCCTATCTATAA
-TTGACTTAATATTTTTCTTTAAATCATTGTAAAATCAACTCATATTTTAT
-AATTTCGCCTTGTCTAAGAAACAGACTAGAGAGGTTACTTACTTTTTGTC
-TAATATTTATACAAATAAATTAAAACCTTGTGACGAGCCATTTATATTCC
-ACTGACCTGAATAGCTGTAATGCTCACACTGTGCCCTGGGAGAGGCTGGC
-TGTGGCACCCAGGAGCTGCCCTCTCTACCCAGTCTTGGAGTGAAGATGCT
-GGGGTGTGTCCAGCCACTGGATTGTCATGCAGCTCCCTGAACACACACAG
-CTCCTTCATGCCTGACCACTAAGGGCTCTCAGACCCACCTGCCTGAGTGG
-AGGAGGACTGAAAATGATTCCAGAATGATCTCCTCTATCTCAGAAACCAG
-ATAAAACATCTTTGACGTGGGAGCTGCAGTACTGAGCCCACAGCCCACAC
-TCCCTGCTCATCACCCCAGCTCATCACACCATCACAGtcctcactctgca
-gacagggacactgaggcccaggggtgagtagctcccaggctcacctggct
-ggaacctggaggaggaatgtttcagcaccaggtacgtctgtcttcTCTGC
-TTGCATCTTTCATCATGTGTCTGAATCCCAGCTCCATCTTTTGCTTTCCA
-ACCTCTGTGAATCTGACTATCTTCATCTGTAAACCAGACCTGGCTTTAAC
-GATTATTTCttttttctccttttttttttttttttttgagatggagtttt
-gctgtgttgcgcccaggctggagtgcaatggcacgatcttggctcactgc
-aacctctgcctcctgggttcaagcgattctcctgcctcagcctcctgagt
-agctggaattacaggcatgcaccaccacgcccagctaatttttctatttt
-tagtaaagacagggtttcaccatgttggtcaggctggtctcgagctcctg
-acctcatatatctgcccgcctcagccccccaaagtactgggttacaagca
-tgagccactgcgcctggccTTTAATGACTATTTCTTAGGATTTGGAGCCC
-AGTGAATTAAAATAATGTGTCTGAGGCATGTCCAAGTTGCTAGCAAAGAG
-AATCAGATAGTATCAGAGGCAAAGGCTAGGAGTAACACATATCAACTTGC
-CTTTCTATGTACTAGACCCTGGGCCTCTGAGGTGACTGGCAAAGGCCCTG
-GCGCACAGTGGGTGCTCAGTGAGTTTACTGACTGCATCTGCTGGAatctt
-ccacaccctttctcttgctctctttgcccaaggtgtgttgaccctgagct
-gttcctcaagttgacctcaggaacctggcgtttacagagccctctgccta
-ggacatgttctcctggacatcagtgaggcttgagccctccttccttttaa
-atatgtatggaaaagccaccagctcagggaggccctgcacatgcaacata
-atgcacatggccctggaggcctctcctccattaccctgtattgtttttct
-tcacagcgcctgtcaccacctctcagatcatatatgtctgtagtttattg
-ttatatattgtaattcccccaaaaaatgtaagttctgtggtaactgggac
-ttggtgtagccaccactgtgccccaacactgcctgacacatagtaggcat
-tcaataaatatttctgaatgaaCATATATGAATAACATCATAAATAAATA
-TACACATGAATAAATGATGAGAATGCctgaactcagctccacggagcaga
-ggctgcacctgaatggttctctgttttatcccaggctctagaacaaagcc
-tggcaaacagaagacactctgttttgtggaatgaatgaatGTATAAATGA
-ATGAGTGGATGGATGACTTCCATAATATTTATAATCTATAATATCTCTCT
-TCTGCCATTTATTTTTTAACTGCCATGAATTCCAGATATTTCTAGGCATG
-TCCAGATTTAACATATGTTGGCCTTAGTGACCTCATCTGGTTGTGCTGCC
-ATTTACTGAGCTGACTGTCATGGCTGTCACCGTGGGAGACCCTTGGGGAA
-TGGTTCATCGGTTTAGGACTGAAAACAGACCCTCTGGGAGGCCACACCGC
-AACCACGAAGGGTCCAGGGGGTGGACGTGTGGGGAGATGGACTGATTCCT
-CAGTTTTACACACCATCTGGGAAGGCCAGGCCCTTTATTAAAGAGAATCA
-ATATTTGTACAGTCGGTAGATTGTAAAATTTTATAGTTGTAAAGTGACAG
-GTTTTCCTAACTGGCCCCCAAAGAGATATAAAACCCGACGGCAAAAGTTA
-CCTGATGATCCCACAATAGGTGGCAACTGCAGAACACAGAGAACACGAGG
-GGCCACTTCACGCATGACAGAGAGAGCATGAGGGGCCACCTCACGCATGA
-CACAGAGAACACGAGGGGCCACCTCATGCATGACACAGAGAACACGAGGG
-GCCACCTCATGCATGACACAGAGAGCACACAGGGCCATGTCACGCATGAC
-ACAGAGAGCGCGAGGGGCCGCGTCACACATGACACAGAGAGCACGCGGGG
-CCACTTCACGCATGACCGTCTCAGAGGGCACAGAGGATGCCCAGTGTTAA
-AGATGTAGATGCTGTTAGGGTTTTGGCACAATCTCAGTGTTGGATTTGAG
-ATCTTGCTGATGTTTGTGCCTTATTAGGAAATGACAATGATATGAATTTT
-TAAAAGAAGAAAAAAGAAAAATATAAATTTTTTCTTTTATATGGGAAATT
-TTATGGGAAATTTAAATGACTATGATTGTTggccaggcatggtggctcat
-gcctgtaatcctaataccttgggaggctgaggcaggcaggtcgcttgagg
-tcaggagttcaaaaccagcctggccaacatggtgaaactccatttctaca
-aaaaaacaaaaaattagtggggcatggtggcacatgcctgtagtcccagc
-tacttgggaggctgaggcaggagaatcgctcgaactcgggaggcagatgt
-tgcagtgagctgagattgtgccactgcactccagcctgggtgacaaagca
-agactctgcctcaaaaataaataaataaataaaaGTAATTATGATTGTTG
-GAATTAATcaaatatatcaacaagtacaataaatgtaagtcaattaattc
-tatcaattaaatcccaaagaatatgaactggctaaagagaaaaaatatcc
-atatatgtgttatttacattaacacacataaaatatgagtacaTTTTAGG
-GCTGGCAATAGAGAAAAAGTTTTCCAGATAAATTTGGTGTGACAACATTA
-ATATATAATAAAACAAGCTATAATAAAAATGTGATACTAGGAATGTATTT
-TTACGTAATTTTGGGAGGGTTAAAAGTTCATTAAGaaaactcatgattac
-cttaatagatgcagacaaaggttcaccatcaattcatgttagaGGGTAAA
-AAAAGAAAAGGAAAACAAAACAAAaaaagctattagtaaatctagggata
-gaaggaactttctctgatcaaatagagtatctgcaaaaataacttagcat
-aaacagcacacttaaacactgccactgaaattgaatgagacaaggagttt
-gctaccacgaaatctgatccacattgtaatagtggtcatagccagtgcaa
-tatgccaagaaaaaacataataaaacttgtattgtgaaaaaacctatgat
-ttcagaggacataactgtgtattttgaaatttaaaagactttaaactatt
-acaattaataatgaaacattaaaaatgctggatttaagacaaataataaa
-atttaatatatttttgcactccataaatataaaatgaaatgtttaaaata
-tattttaagatagcatcaaacaaaatcaaatgcccagaaatgaatctaac
-caaagatgttcaaaatctctacaTCAGTGCTACACAAAGCACAGATAATA
-AAGTATTTTTAACAGTTTTAAATGAGATAAACTAGTATAGGTATGTAGAA
-ATTttagtataggtatgtagtataggtattagtataggtatGTAGAAACT
-TTTATGGCTGTTTTGAAATTACCGGAATatttttattttattttaaaaac
-atattcacttagaaattaaaacagaaaaaactggttctctaccacagagg
-atttgagacaaactgTTACATATAACGCCTCTatattttgagaaaaaaaa
-tgaagttttacataaatagagagacacctcctgtttgttaagaggaagac
-tcactaatataaagacgacagcttttcctaaatcaagtgacggatttatt
-gcaattccaaacgaaactccagaaggatatttgtgtgtttgtagaaattc
-acaagttgagtctgacatttacatggaaatgtaataggcaaattgaggga
-aaagaccaaagctgtatcatttgcaacactacctactatatcggatgttc
-cattgtaaaactatagtaaccgagacattgatatggtattgatgcaaaga
-tggccaaatagaccagtggcaccaaatagagagttgagaatcaaacccac
-acatttgtagtcacctgatttctaacaaaaatattctgcaaggtagtagg
-aaaaggatggtctttttaataaatgatgcctggtcaactggatattcata
-aggaagtgagactcgccatggtatctcacaccatttgcaaacatcaaaga
-tgaacttcagcactaaatgtacacaataatattttgcagaaaaacacaag
-agggcatttgtatcaccttggagtaggtaatttttttttttttttttttt
-ttagacagagttttgcttttgttgcccaggctggagtgcaatagcatgat
-ctcagctcactgcaacctccgcctcccgggttcaagcgattttcctgcct
-cagcctcccaagtagctgggattacaggcatacgccatcacgcccagcta
-attttctgtatttagtagagatggggtttcacgttagtcaggctggtctc
-aaactcctgacctcatgtgatccatctgcctcagtctcctaaagtgctgg
-gattacaggcatgcactactgtgcctggccggagtaggtaaaatcttaaa
-cttgatattaaaattgctaagcacaagaaaatggatatatatgatccatt
-tcatcagaagacacattaataatggtaagtcgagaaacagagtgggagaa
-aattattaatgtataacacagaaaacatataacaacacttgaaatacaca
-taacacttaaatacatataataaatggacttgtatctaaaacatattaaa
-atacatataaattataacataaaggcaagcaactcaatgcaaattttccc
-aaagaccagaggagacgtgtatgaaaataaatgttcaaatggtcaataca
-acatgaaaatctcctgcactttattagctatcaggggatgcaaattaaag
-ccataattcaacaccagtgtgtagccaccagaatgcctcaaacacaaaag
-acaggcaatagcaggtcttgagggtgtggagttcaaggcagctcatgcac
-tgctggtgggaatataattggcacaaccactttgggaaaccatgtggaag
-aattcttaacagctcaacaaatccacatcttacgcacagcaatttcattt
-ctaggttcacgtctcacagaaacgcatatgtgagttcttctaaagacatg
-aaaagtttataaaggcactattcattaccacataactaggaatttcccaa
-acgcccatcaataatggaacagacacatcaactttagtatatcatgcagt
-gaaacacttacagcaggaggcttgaacatctacaacaatgccccaaacgg
-tggatgcccttcttatagagtgaaaacagtaaggcacaaatgagcatgtg
-cagtgcaattccatttatacaaaggataaaagcaggcaaaactaacctat
-ggggttagacattgggatcatggcttcccttaagaacagcgttgtaactg
-gccagggaatgaggcaattcagaagccacagccactttctgcttcttgat
-cctggtgctggttacacaagtgtgctcatctcagggcaattcactgagta
-gtacatttatgttttgcttctctttctgcatgcatgttatactttgacaa
-GTTTACTTAAAAATATTAACATCATTTAAGATGAAAAAAATTTCTAAATT
-GAGAATTAACTTGCCATTCTTATCTAAAAAAGAATATTTATTgctgggcg
-cggtggctcacgcctgtaatcccagcactttgggaggctgaggctggcgg
-atcatgaggtcaagagatcgagaccatcctggccaacatggtgaaacctt
-gtctctactaaagatacaaaaattagctgggcgtggtggtgcatgccttt
-agtctcagctactcaagaggctgaggcaggagaattgcttgaacccgtga
-ggcagaggttgcagtaagccaaaatcacatcactgtaccagcctggtgac
-agagcgagactcctgcctcaaaaaaaaaaaaaaaaaaCTTATTAAACCAA
-TAAAAATCCCAGAAACACCTAAAATAATTACTCTAAAAAGTGGTATCTTA
-GAGATAGTCCCTTTAACATCAAAATGAGACCAGTTCTCAAAATACTTCTA
-CTCAACACCCTATTGAAAGTCCttgagacagtctcacctgtcactcaggc
-tggaatgcagtggtgtgaacacggctcacttgatgtcctgggcttgatcc
-tcctacctcagcctcccaagtagctgagattacatgtgtgtgttaccaca
-cccagctaattttttattttttgtggagatgaggtcccactatgttgtcc
-agtctggtcttgaactcttggcctcaagcgatcctcccaccatgacctcc
-caaagtgctaggattacagatgtgagccactgtgcctggACCtatcggaa
-gtcttaatcagcacaaaaataaatgaacaacagtaacagcaaaagaaaga
-cacaggattggaaaagagatacaaaaattattattttcagagcaaatagt
-tgcttacaaaagaatcaatttaatctatggaagaattattggaagtaata
-gagagtttagcaagggacattagataaaaactgaagaaatctgaatctat
-agattttagttaataataatgtatcaatatttgctcattatttgcaacaa
-atgtatcatactaatgtaagatgttaacaataaggaaaactggatatggg
-cacatagtgactctattagcttcactaggtttctttaaatctaaaactgc
-tctcaaatagaGttttttttttttttttaattttaagttctgggatacat
-atgcagaatgcgcaggtttgttacataggtacacatgtgccatggtggtt
-tgctgcacctatcaacctgtcatctaggttttaagcccctacatgcatta
-ggtatttgtcctaatgctctccctcccctgccccccaccccccaaaaggc
-cctggtgtgtgatgttcccctccctgtgtccatgtgttctcattgttcaa
-ctcccacttatgagtgagaacatgcggtgtttggttttctgttcctgtgt
-tagtttgctgagaatgatggtttctagcttcatccgtgtccctgcaaagg
-acatgatctcattcttttttaccatgtttatggataggaagatttgacag
-tgtaaagatgtcaatcatttccaacatgatgtcaggtatagattcaaatt
-actcacaggattcctgaaaagattatgcccagaacttgataagatgattc
-taaaattcatatacaaaaataaaggtacaaggaaatccaggactgaagaa
-gggccgggaggggaaacaggcacctgtttattccccactttctgtagctt
-tacaggaagtgctgatgcccgtaaaggggaagagaaacacaagttgatca
-atgaaacaaaacaacgagcccaggatcacaccaagggtatgaatgaaact
-ttgatttatgataggagaagcatgggagagccaagagaaaagacaggatt
-gtttgatgaagtgatgcaggggaaagatgaactctatctcacactatata
-caaaaatcaactctggatatattatgtaatgatatcaaaaacaaaaattt
-aaaccttctcatagaaagtataagtaaataccttctacgccttggaaaag
-gggattacttattaaatatacatgcattaattaaaaatttaaaatataga
-tgtgagtatgtttaaattaaaaacttgtattcatcaaaacaaaccttagt
-gggagtaaacagtaagttacaaatagggagaagaaactgggaaaagttag
-aaaagagaagcaattcagccaggcgtggtggctcatacctgtaatcccag
-cacgtttggaggcctcaggtggatcacctgaggtcaggagtttgagacca
-gcctgacaacatggcgaaaccccgtctctactaaaaatacaaaaaattag
-ccaggcatggtggtgcatgcctgtaatcccaaatacttgggaggctgagg
-caggagaatcacttgaacccaggaggcagaggttgcggcgagctgagatt
-gcgccattgcactccagcttgggtgacaaagtgtgtctctgtctaaaaat
-aaaaaaaaaaaagaatcaactcatataaagaatgtatacaagaagtcctt
-tatcacaatagtaaaagcaaaacagcccaacataaaagtgacccaaatac
-atgagcagttattgtacacaaaaggaaaaacgtagaggctgtagacagat
-gaagagatgttcagcctcattagtcaatagaaaagtgcaagtgaaggcca
-caatgaggcaccatcctacacatatttgatcaacaacattttttttaagt
-ctaaaataatataattggaagatgtgaatagagagaacattttatataca
-taatgctgctgggagggcatattgctacaatgatttgtgaaaatatttgg
-cgttaccttctgaaggtgaacatttacatgctctctgaccctctaattct
-gcttctacacacccaagcgaagctcttgcacgcctatgggagatgtgcac
-acaaggttcctgcaaatgccattaggacagtgaaaacctggagacagtgt
-aatgcccgtttctaggagcgtaggtgagtaaactgcacatatagtagcac
-aaggaaatgccctgcaaccgtcaaaatgaatgaatttcaggtacGTGAGA
-AATCCTCATCAAGATTGGAAATCTAATAAGTAAGAGGCTCAGACCAGGAT
-GATTACATCATCATGATGCCCTTTTAAATATAATTAAAAACAATGTTAAT
-TGAGCTTTTATACCTACTGGAGCTCTCAAAAAAGAAATGATGCAACTTTT
-TGGCAAATGGAAAACTATCCTAAAATTTTAAAAGTTTGTTTTTTAAAAAA
-ATGGACCACATAGCTTGAAGGCCAAATCAATCATTTCCAGAAAGTGCCTG
-GTCTCATAGCTTGAGCCTCCTTGGCCTCAGTTTGGCCTTAAGAATCCAGG
-AGGAAGGCATCCCTGGCCAGGAGTCACCCTTCAGGACACATTTTCAGACA
-GTTGTGTTAGAGGGGATGAGGGGAAGAAAGAGGGGAAATTTCTAGAGAAA
-TGAGAGTGGGGAGAAGAAAAGCCTGAGAAACAATTGCCCATGCACACAGC
-CTGTCTCATAAGCAAAGCGACTATCACCTGGGAGATTTCCTGTTAGCTTG
-GAACATGGCTCTGACCCTCCTTCAGCCTTCCAAGAAAACACACTTATTAA
-AGATGAGAAATAggccaggtgtggttgctcacgcctgtaatcccagcact
-ttgggaggctgaggtggaaggatcacttgaagccaggagttcaagaacag
-cctggccaatgtacccgagactcagctatacaaaaactaaaaaaataaat
-taggtaagcatggaggtgcacacctgtagtcccagctacttgggaagctg
-aggtgggagaattgcttgagcctaggaattcaaagctgcagtgagctatt
-aatcccaccaccgcactccagcctgggtgacagagtaagaccctgtctca
-agaaaaaaaaaaataaaCatgtatgtgtatatatatatatatatatacac
-acacatacactttatatatacatacacactatatatatatactttatata
-tacacacactaaatatgtatactttatatatatactttatatatataGAG
-AGAGAAATAAAAAAGGAACAAGCATCTGATTTATGTATACATTGAAAAAT
-TAAAGGAGTAAAGAGTAGTGGAAAGAAGCGGTAAGCTATAAATATTTACC
-AAAAAATATTTGCACAAAGAGGTTAAAAATGTTAACTAATCACAACACCA
-CGAACAGAAGAAAAACAACGATAAAGTGATTCCTCTAAAAAACAAACAAA
-CAAAACAGAACACAAAAAGAAAGAGAGCGAGCAAGCTGTTGCACTCAGAG
-ATGCCCTGTTGAGAGACGGAGAAGAAATATGGGCTGTCAAAGCTCAGACG
-CTGAAGaaaaaaaatttaaaaaaattaaGAGCACATTAAAACCTCACCAA
-GGAGGGCAGAGGGTCCTGCATTTCCCTGTTTCTTATGCTTCATCTCCTCC
-CTTTCGTGCCTGGTTGGACTTGGAGTTTAATACCAGAAGGGCTCCCTTGA
-TTAAGCCTCCAACCCTCTGCTCCTCTCTCCCCTTCTTCCCTGTAATGAGG
-AAGCAAACTCACCATCATTGAATCTCACTCTGCCTTCCCCAGGCTGGTGC
-TGGGCAGTTGGACATGCTGATGACAATGAGTGGCTGGGCTGGAGGGTACT
-ACTTAGGTCTACCTTCATGAACCTCGGATTGACAGCCACCCTCCGCAACC
-CCCAGACTCTGGTCCCAGGAAATCTCCACATCAGCTGGAGACTCGGCTCT
-GCCTCGGAGCCAGCCAGCCCAGTCCAGCCACCCCATAGTCTGACAGCCAA
-CCCCTCCATAACTTACTTTTCCTAAAATGCCCAGTATTATCTGAACACCC
-CACCCCATCGTAGggcctcatttcttatttcgaacacacaaaaacaaaaa
-cagaaccaattgtaagagccctcctccccaccaccaggaggtcatgcgcc
-cgcctccctctgcagccccgtgccctgtggtccattttggtaattactct
-gtataactgtctgcatgcccccatctcccttgcacagcaaatcctgaccc
-taatcaccttccaaggactttgtttccatggtgtcatctctctccagcat
-taatagtcttcccttctcctctggatcattttctttctcttttttttttt
-tttttgagatgaagtcttgccctgtcacccaggctagagtgcagtggtac
-aatcttggctcactgcaacctccgcttcccgggttcaagtgattctcctg
-tctcagcctcccgagtagctgggattacaggcatgtgccaccacacctgg
-ctaatttttgtatttttagtagagacagggattcgccatgttggccaggc
-tgctctcgaactcgtgacctcaggtgatctacccacctcagcttcccaga
-gggctgggattacaggcgtgacccaccacgcccagcctctaaatcatttt
-catatgcacaacagtgtattctaaaaccacttatctattaataaaaaaaa
-gtttcctgtctcatcctccctccagttactgacccatttctctgttcccc
-gttagaataaaattctttgaaagcattgtctctctactccctctcctaat
-agattctttcaaactcaccccattcaatcacatttttgaaaggccacaat
-tgctacattcagttgtcaatttagggcctaattctccttgtcctctcaga
-acttgattgtatcctttataccccaaaatgcttcctgttcctgacttcag
-ggtaccacagccctctggtccccctcctgcctcactgccagcttctccat
-ctccttcagcggacccacttcgtcgttccagcctctgactttggtttccc
-ttggattccgtcctcgggcctctcttctctatttttactgtcttcctagg
-tcgtctcaccccttcttacgtccaggcctgagtttatatcactcaatcct
-ttcttgtctttaagcccaggaatcttgtgtgcaaatgatcactccatatc
-ttcacttgtatgaacaataagttttctaaatttagcatgtttaaagccaa
-aacccttgtatctgtcccacttcaaatcccctcttctcccaccgtttctc
-atttcagcaagcttctttcggaatttacccaattgctaaagcaaaaacct
-tCAAATTTCCACGGGCACCACCTCCACTTCTTCAGGTCCGATCCATACCC
-AGCCATTGCCCAGAGAGTAACCAGAAATGTCCTTGGGCTCTGAGCCCTGG
-TGTTCATCTCTTACGGCAATGGCTGTCCGCCTCCCCCTGTGCAACCTCCC
-CTCAGCCATTCTCTATGCGGAGTCAACGCATCCAATTTTCCCCCTGCTTG
-AAACCTCGTCAGGGCTTCCTCATGTTGGGAGCAAGGTCCTGGTCCTGCTG
-TGGCTCGTGGCCCTGCACAGTCTCAACCCGGCAGCCCCCGGAAACCCACT
-TTTCAGTCGCATGCTGTGTCAGTGTTCGAACTGCTTTCGATGAGCTGGAT
-ACCAATGTTTCAATCTTAACAACAACAACCAGGCCTGCAAGTTGAACAAT
-TTATATCTTGAGATCAAGATCAATGACTTAATTCTTCAATGTAGGCAAAG
-AGGTCGAGCAAATGCACCGTGTACGAGTCTAGGTGGGCGCGCCTGTACTT
-GTCACAAGAAGCAACACGAAGCTTTTGTTTAAATGAAGGTTCTTATCATA
-GTTCAAAGGCTTTCTGAAGAAATGAAACACAAACATGACAGAATTGAAAT
-AAATATGGGTGACTGTGCAGAATCTCCATCGATACATGACAGACACAAAG
-AAGATAATGACAAGCTGGAAATATCATGCCATCGATAAACAGAACCTAGT
-CCTTGAAAAAAAAGGACTCGTCAAAATAATCTTGAAATTATAAAATGAGG
-TATGGGATTGTTTGAATGAAGGAGTCAAAAAATGAAAAATTgccaggcgc
-ggtggctcacgcctgtaatcccagcactttgggaggccgaggcgggcgga
-tcacgaggtcaggagatcgagaccatcctggctgacacggtgaaacccca
-tctctactaaaaatacaaaaaaattagctgggcgtgatggcaggtgcctg
-tagtcccagctatcgggaggctgaggcaggagaatggcatgaacccagga
-ggtggagcttgcagtgagccgagatcgcacccactgcactcaagcctggg
-tgacagagcaagactccatctcaaaaaaaaagaaaaaaagagaaTTAACT
-TACAACCATCTCCTTCTTATTATCCTGAGCCAGAAAGAGGTTTTCAACAG
-ATGGAAATATTTGCACAAGAAAATGAGCTCCAAATAAAGACTTACTGGCT
-TTGTTGTTGTTGTTAAGATCGAAACACTGGTATCCCAGCTCATTGAAAAC
-AATTTAATCACTAACACATCGAAAATAATTTTTGTACtaatggatacaaa
-aatacagttagatgaaaggaataagttcaagccttggatagcacagtagg
-gtgactataattaacaaaaacatatggcatatttcaaaatagctggtaga
-taagttctggaatgttcccagcacaaagaaatgataagtgtttgaggtga
-tggctatcctaattacctttatttggtcatcacatattatatgcatacac
-taagcatcttacgtaccccataaacatgtataattattatgtgtcaataa
-aaaaagaaaATGAACTCAAGATTCAATCATGAAACCAATGATAAAAAATA
-ACTTTCAATGATTTTATTTTAAAGAAATACCTTTAAATGAATTTTATTAT
-ATGTAGTGTTCATTTTATTTTAAGTATTTTAATCTCATTTTCTGCTGATC
-ATTAATAGGACAGCATTATGCGATTACCTTCCTATATTTTAAAAAATACT
-TATTTCAGTTGATATCATGTAACATGTTTACCATTCTGGTCTTTGAAACA
-TACCATTTAGTTTAGTTATTGCGTTACTTTGTTTATCATTTAGTTTTTTT
-AGTGCATTTTGAATACTTATATGAAATACCTTCCTTTGGGCCTTCTATAA
-AATAAATACCCACCAGTCTGTGTGTTGCTTCTCGGCAGcctccccaccct
-caccccatcctggcagccctggtccctgaagtggctgggccacctcatgc
-cggtgcattcctgccccagccctgccttggtgcctggcctctgttactcc
-agaatctcggttcccaggtttctgccacatgttatcatctcagagaagct
-ttttgatcatcccttctaaagaggtttcctatcattctctcctcgtgtct
-tgattcacttgtcttaacagaattaatcaaccataatttatataaattta
-cattgttgctcatggactgtccccgtcattaaaaggaatcaccatccaag
-caggggctGCCAGGGTCAGGGTGGCTCACACTCCACCCACCATGATAGAC
-TAGGAGTCGGCACAGAGGAAAATAGGATGTGCACCCACAAATTAAATAAA
-TGTGCAATACCCCAAAaatcaccagggacatggagagaaggaaaaacaaa
-atggaaaaaccaaagagtttagaaacagacagaaaatcacggacgtgaag
-ctccaacatatacataagtggtgttcctcaacaaagaaaatccagataat
-atcctagcaaacatgtttaaagaaataactaaaaatgttattctagacac
-taagggattattttttctatatattgaaagagcacaccatagtccaggaa
-aaatttaaaaaacatattggtatcaaacaactcctcactgaaacatacca
-taataaacagaggtcattgaatttttaaataatcaatttatgaaaatgca
-tgctaaaacattaagccatctataaaggttaagaaatccatttgcctaag
-atttctcaactgtcatattcaacaaaacaaaaacgaatccctcaaagaaa
-gagagcaagactaagaatttaatatccagctaacctctatcaatatagaa
-gcaacagacacatattTGAACCTGCAGGACCtatggctatttgacacaca
-acagagcagattttgcacattactgggtgaaggacacaccagtcaacaaa
-ttgtgctaattcaactcataactataggaaaaaatagaccagatctctac
-ctcagtccaagtacacagatgatttaaacactgaaatgcaaatgaaaaaa
-tgtaaacattttagaagaaaatatcagaaaaCGCTTTGGAAAGGTTTTTG
-AAATAAATAACAGTACAAACCATAAAAGAACTTCTTTTCATCAAAATTCA
-CCACGAAAGTGGCAAATTCAACTAATAAAATATATCTGCAATTCCTGTGG
-CTGATAGAGAATTGAAAATTAAAATATAAAACAAAAATAACGTTTCAATA
-ATTAATAGTTTAAAACACACCCaataggcaacatggttcaaaaccttttc
-acagaagtgaaaattaaaaggccagttaaagtataaataatgcatctgat
-taataatcacgaaaataagaattaaaaataaaatatatatctcaagccaa
-aaagattgacacagtttttaaagatctgtagacaaataggtgaaacactg
-agactgcttaactattgctttttccaaacacttcggtagtaagaaataat
-taggcttcattttataaaagctaaaggtattcatcacctatgacccagca
-aaactctgtctaattatataccccagaacaacagaaaaacaagaaataat
-caaaacacagcaatgtagatggacacagcaggaaccaggcacagaatatt
-cacagcagcattgttggtagcaaaagacttggaaccgacccaaatgtcaa
-caggggagcgagtgagtgggctgtgataaaaagactctgtgactttattc
-catgtcacaaggacactgagcaaagcgcggccacggccatctccatggag
-ggctcttcgaccttcacggctgagtgacaaccgcaaatcagagacaattg
-cagaaacactgctaccatttggataaaactcacaaacaagaaagactaag
-caatccattgctttgggatagacaccaattttgtaaaataataaaggaaa
-tcaagagaacggtaaagcaaaatcagatcaggtggcaccttagtggggtg
-gaaagTGCGCATGAATTGGCACTCCAGCATGTTCTGTTTTCTAAGAGGTG
-AGTGTATGGGCGCTGattttattataaatatttataatGTGTCATTCTGA
-GGAGCCAAAAAATTGTATTTAAACAGTACAGGAAGATAAGATGAAAGAAA
-ATATTCTATGTATGCATTAGGAACATAAAGCTATAAAACTGTGTAAGAAT
-AAACCAAAATAGCAATGTCCAATATTATGTGAAGAAGAATATTGAACAGG
-ACTCAGGAGTTCACCCCAAGATCTCTGAACGAATGGGAAGTCTCACCATG
-GTTCTGGAGAGGCAGCCTGCCCACATCCAGAAGCCAACGCTTCCCTAAGT
-GATGTGTGAATATACATGGGTCTGAATAATGTATAGGATCCCAATTATGA
-GTGTATATTTATTTAAACCTCCAGTGTGTGTGTGAGAGATTCTCAAGCTG
-AACTTCACATGCAAACCAGCAAGAGTATTGTCAACAAAGAGTCAAACTCT
-GTAAAATGtttaaagaggtttattctgagccaaatatgagtgaccatggc
-ccataactcagccctcaggagaccctgagaacatgggccgagggtggtct
-ggatgcagcttgttttttataagttttagggaggcatgagatatccatca
-aatatactcaagatgcacattggcccggtccagaaagatgggacaacttg
-aagcagggggtggggagggggcttccaggtcttaggtagatttaaaaatt
-ttctgattggcaattggttgaaagagttattatctgtagaaaggaatggg
-ttacaataagaggctgtggagaccaaagttctgtcaggcagatgaagcct
-ccaggtattagacttcagagggaatagattgtaagtgtttcttatcagat
-ttgaggtctgtgttgatgttaacgctggagggctgtaatgaggcatgtcc
-cacccccacttcccatcatgggctgagcttgtcttttaggtggaactgta
-gcctgccctggccacgggggaagtccattcagatggctggggggccttag
-aattttatgtttggtttacaGTATCCAAGAGAGAGATGTTATgaaaagag
-tatggaatgggaatttatactacttaccaagtattatcacatacagctat
-gctaatgaaagcagtgtgtattggaatataaactgatccatcgatcagat
-caaatggaagctatggaaacaggcccgagtgcatacaggagcttaacctg
-caataaaagcatcatttcaaaatgggggtgggggagacagaaaattcaat
-aaatgtgttgagagacagtgtagctgtttgtaaaataataatgatattgg
-atttttaccttactactcacaacataaatctcaatggattGATTAACAAT
-AAaaagaaagaaaaaagaaagaaagaaggaaagaaagaaagaaggaaaga
-taaaagaaagcaggaaagaaagaaaggagaaagaaagaaagaaggaaaga
-aagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaa
-gaaagaatgaaTACAGAGGTCCTGAAGCAGAGACTGCTGGTGTCCTGCCC
-GACACCCTTTCCTAGGCTGGGGCATTCCCCGAGAGTTCTCCTTGTCTTCA
-GGGACCCAGAGGCCCTGGCGGGGCCTGTGGCCTGTGGCATATGGAGGCGG
-GAAAGCAGCGTGCCCCTTTGCTGCTGGGCTGCATGGAATTTGGCACCACT
-CACACAACAGGTGCCCTGAGAGCAGACAGAGCCTCCACTTCTCCGGAGAC
-CACACCCCTGCAGCTCCTCCCTGGCCACTCGGCCTCCTCAAGCTCCAGCA
-GCGAGTCACAAATTCACACCTCAATTACTGCACTCCCTTGCCTGGACCTC
-CGGACAAATTCACACCTCAATTACTGCACTCCCTTGCCTGGACCTCCGGG
-TCAAATTCCACTCCTTAGTGATTTGGCCTAATACAAGCAAGAAAAGAAAG
-CAGAGACAATTTTAGAAATAATTGTAGAATAAGGGAGCGTCTCGCAAGAG
-ACTCAAATTAAAAGCAGATTTTAAAACATTAAATTCTACTAAAATTTTAA
-GTAGAATGTCAACAACATAACCTAAAGAAAGCCAATGGAGAAAAATTAAA
-CTCTAAAATACAGGTACACATGATAAATTTCTATATATCAATATTGATAA
-AACACATATGAGGAATAATTTTCTTAAAATGTAAAGACAGTTATCAAATC
-ATTTTAAAAATTTATAGAGTTaaaaaatatacataaaggtttcatgaaaa
-gaggaaatataaatgccacttaaacaaatacaatttctcagttgtgtacc
-aagaatcataaaaattaaaaccccaataacatattgttttaaactagtca
-gattgggaggccaaaaaaaaaaaaaagaaacaaaaactaaaaagcaaaca
-ccacgggcatctcaccaggttgactctgggttggtaaacagttactcttg
-taaattacagaggagaatgtagttttatgaccagtttgaatgacaatttg
-gcaatacgttcaaaattactggtaagtgtctaacctttgactcagcaatt
-ctgattctaggaatgtattccgcaaacattctaatacttgtgtcaaatat
-atgatctgtgatgttcattgcagcacagtttataacagcaaaaattggaa
-aaaaaaatgaatgtctgtacatggtggggagactggttacataaattaca
-atatagctctacaataaaatgctatgtagtcattaatgttttaaaaaaca
-gcaccatatttaccaagaaggaaaaaatcctcaATAAATTCTAACCGCAA
-GAGTGAGGTGCACACCAACGTGTACATGATGAGGCCAGCGTCTGAGTTAC
-AAGGGGAAGCCTGCGTGTGACTGTGTGGTTTTTGAGTTACAAGGGGAAGC
-CTGCGTGGGACAGTCTGGTTTTTGAGTTACAAGGGGAAGGCTGCGTGTGA
-CGGTGTGGTTTTTGAGTTACAAGGGGAAGCCTGTGTGTGATGGCGTGTTT
-GTGCATGCTCACACATGCCAGAAGACCCGGAGAACTGGCAGTGTGCGGTC
-TCCACAGAGAAGAATTTGGAGGCTGGGGCTGAGGCAGGAGGGAGGTTTGA
-ACTGGCTACAGTGATCTCCTCTGCGTGTGAGTGCTGGTTTAAACGGACTG
-TGTTCTTTCTCCTTCTGGATAACAGGTGTCCTCTCCTCTGCCTGGGGTCT
-CAGGGGACCCTCCCTCACAGCTCTCAGTCTGCATGGGTCCCCCAACCCCT
-CTCTTCTCTATGGCTCTCGAGGTCAACGAGGGCTGGAGTCCTGCTGCCCA
-GTTCTCATCTGACGGGGACGATAACTCAcattcgatgaccatttatcgtg
-gccaggctctttaatgtgttttactactgttatcatcaccatctccatta
-aacacaacatcaccaatctcattgcacagataagggaaataaagcctaaa
-gaaattaaccaagtgatccaaagtcaccaagagtaaacgtgtggagcagg
-atgccatctggtcttcctgGAGGTCAGTCTGCGAGGCCACCTAGATGGTC
-CTTCAAACCGCAGGACAGCAGCTCACGCTGTGGGGTGGAGGGGGCTACTC
-TTAAACTTCCAGCCTCCCAGGAACAGGTTTCCGCCCTTCTTGTATTTTGA
-CAGTAATCCCCCTTTTCATGGCTCTAGCCAGCTGGGCCTCCAAGAGCTGA
-CCAGCAAAGGATATGCTCCTTCCTGGAGCAGGCATGAAAGCCAACAGCTC
-AGAGAATAACAGGGACCAGACCATGGAGGCCAGGGTCCGTCACTCATGCA
-GAGCGGGAGAGGCAGCTGATGGCCGGGCCCCAGGACCAGGCAGAGCCGCC
-TCTCAGAGGTGCAGGTTGGCAGTGAATACAGAGTAACAGCTGAGGGTGCG
-GAGGTGTGTGCAGGTCACTATCCTCGCCCCAGCTACCTCTGGCCCTAGAG
-GCCTGGACTAGAAGAAGCCGGAAGGAAGTGGGGCAGTAGTTGAGGCCCCT
-GAAACCTCCCCAGGATCCACATTCATCCTCTGGGCATCTTTGCGGTGAGT
-TAAGGCCCAGGAGCCATGGTTCCTGGTGACCAGGGCACAAAGACATCAGG
-CTGAACAGGTCCTTCATCTGGGGGGCCTGTGGTCCCCGAAATGCATCTTA
-GACACTTTGCACAGGTGTGCGTCTCTATCCTGGCTGCTGTGTGAGCTGAG
-GACAAAATCCTGGCTGCTGTGGGAGCTGAGCCTGTGGGCAGGCTGAGCCA
-GGGGTGGGAGTGAGAGGGAGGGGTGAGAGGGGCCTGAGCACCTACTCAGC
-GCATGCTTCACAGAACTAGCCTGCTCCAGGAAGTTCCGGTGCCCAGTGCC
-ACAATGCACACTCCAGCCCTGTGCCTGCACACCAGACCCCGGGCCCGCTC
-CACATGGGTGCCTTGAGCTGATTCCCTCTGCTGGAGTTGCTGAAGGGTTC
-TGCAGGCCTCAATCTACAGTCAGCCCCCAACCCTGTCATCAGCAGGGGCC
-CCAGCTTACAGCAACGCAGCTGTTTTCACTGCAGGCTAACTCTGCCACAG
-CGTTGCCAACCTGAAACATCCAGCCCAGAGTGAGTTTTTGGGGAGGCGGG
-AGGCTGTCCAAGCATCTTACCTGCTGTGTGGGCAAGAAGCGGCCTGCATC
-TCATCAGAGTTTGGggatccaggacccagatctgctgctccgcagttgtg
-tgaccttgggaaggtcaggtcccaccctgggTGTGCTCTTCTTTCCTGAA
-GATTCAATCCGGCCTGTGTGCTAGGAGTGGAGGGCCTGCTGGAGTCTGAG
-GAAGATGGCAGCTGGGTCGGTAGCAGGGTGAGCAGGGTCTGAGTGGGGCC
-AGGCTTCCCACACTGGACAATGATGTCCACTGTAAAGCCCATGTCCTGGA
-TTTTTGACAAACATCTTAGCAATCGACCTGACACTCCACTATGTCCAAGT
-TGATTTGTTTCCATGCTGGACATGTGTCTACCAGGACGTGCTCTTGGCTG
-CCACTGGCAGGGCCTGGAATGAGGACACTTGTTGTGCACCTTGCTTTGGA
-GCCCCAGACAGGCAAAAAAATATCCATGTGGCTTCACCCAGGTCATCTCT
-TTGCTTGTATGAACCTCAGGCCACCCTTAGAAAGGGTCTCATAGCCCCGG
-TGTCTCACTCTCTGACCTTTGCCAAGTCGTCTTCAGCAGCAGCTGGAACT
-CTTTGAAGTGGCTGCCACAGATGTTGGCAAAGCCCGGCCTGGGATGCCTC
-CACCCTGCACCAGGCACGGGGCTGCCTCTGCTGCATATTCACCTGGAAAT
-CATCCACATGCCAAGCACCGCAGAGGCAAGGGGAGTCTGCCATTGGACTG
-CGTTCAACACGGCTGCAGGGATACAGACAAGCACATTCCCTGGCAGAGGC
-ACGGGCCCGGCTGGCTGGAGCTGCAGCAGCTGTGTGTGGTCACAGAGCTT
-CCAAATGAGGGAGATGGATGGCCTCGCTTCACAGTGTGCCCAGAGCATGT
-CCACGGTGCCTGGGAAGACCAGGGACTCACCATGCCCGGCTCTGGTTTCC
-CTCACAGTGAAGCCTCCTTGCTGGTAGGATCCATGGCCAAGCATGGGGGC
-AGGGGCTGGGGGAGCTCTGTCAGTGACTTCTCGCAGGCAGCAAGGCCTCT
-GGGAGCTGGCCAGGAAAACAGAAACTCCATCCTGGAGCAGGTGCGCAAAC
-CAACAGCTCAGAAATTAACAAGGTTCCCACCAAGGACCATGAGCCACCTG
-TGCTGTCCTGTTTGTTCTGGTACTTGCGCAGGACACGGGGTGGGGGGCGG
-GGGAAGCACATGTCAACAGGGAGCTGGTGGCCGCTCTGAGAGCCAGCTCC
-TTTCTCATAACTTGCTTGAAATCCTTCTCTTTGCAGAAGATGGAACCCAG
-CACATCTCGAGAGCCCACTGCACAGGTCAGGTGCATTTATGTTTACTGTT
-TCTATCAGCAAAAGAGCAAAACCAAAATCAAACAAACGAAGACTCTGGCA
-AGATTGCTTGATCCTGCCTTGAGGTGAGCACACAGCAGCATCGGGAAAGT
-GCGTAACTCATAAAGATGGTGCAGCCTGCAGGTCAGGAGGGGCTGGGGTC
-TGTCGAGGGCAGCTGGGGCTTTGCAGCCTGATCCACAACACTGCACTCAG
-AGCGGGGAGGTGCTGTCTCCAGGCCCACCTGTGACTCCTGAGGTACAGGC
-AGAGGGTCGGGCGTGTATGACACTGCATAGGAGTCCTCTCCGCAGTGTGG
-AACCCACCCACGTCGCCTGCTCCCTCAGTCCCCAAATGCATCTGGGGTCT
-GAGATCAGAAACAGCAGAAGCTCTGGTGGTTAGTGGAATAGTTACCTAAG
-TGGACCCTCATCTCCTGGGCATTCTTTGAGCACCTCCCTGCTAGGCACTG
-TTTCAGGGGCTGGTGACGGGAAGCCCACCTTGCCCATGAGGCTCTTTCGG
-CACAGAGGTGGACACTGAGGGACCGCTGGCTCACACGCATGTTGAAATAT
-GTGCTCAGCTGATGTCTTCCCAAGTGAGCCCTCCTGCAGGACAGGACCAC
-ACAGTGTCCTCAAAAAGCGCCCCAGGTTAGTGTGAGCTGGGCAATGCTGC
-CTGGGACGTCCCTGCTGGAGGCTCCTGGTGTGTGTAGGACCAAAGACGCT
-TGCTTCATTGGATTTAGCCAGCATTTCCCTGGTGTATTTGGCCATAAAAG
-ACCCCCACTCACTTACCCACCACACCTTTAACCCTCtgtggtagacacct
-gtagccgcaaacccattatctattctctcttctttctgggtaaaataacc
-ttgatttttttttttccccaggggcaatatgtatacagcaaaaagtatac
-tttgcaaattctcttgcaggaaggaatggcaaacaacataattctatcta
-atgagatgttcaaagacatcttctggtgcttcttgaaagacttgatttct
-tcacatagatgcaatgtcttccctgtggtttcttcttctatctgctgggg
-acatgggtgtgatccctggagctgcagcagccatttgttaaccctgagga
-aaagactcagaaaaatccaagacCTTGGCTCTACTATCTTTGGGCCATTG
-AACCAGAGGTAGCAAGTCGCATTTCTCCTTAAATGATAATAAAACCCCCC
-CTTGATTTAAGCCACTGTTTTTTGAGACTCTTATTTATTTACAACTAGAT
-GTCATTCCTGACCAGTACTGGAAATAACTTTGTTCAACCTATAGAACATA
-CTTTGGAGACTATATGACACGTGAGCTGGTTTTAGATCCATTCTGTCTCT
-cttgagaagtgagcatgactatctccatctttaaatcaggcgttcacgat
-tagagggattagctctctctcctggggtcgcactgcttgttaatagtaaa
-gccagaattctaacccagtctcatccgactccTGTGTACTTGTAATTGAG
-AACTGAATACAGGGAGTTGAGAATGCAGAAGCAAAACATAAATTTTACAA
-GAGAGTGTAGTGGAGGGCAGGCTTCCTGGAGCTGTGGTTTGCAGTTGGTC
-CGTGTTTGGTTGGCACTGTGATGCTGCCTACCCCAGAGGGACGATGGCTC
-CACACGATCAATAGGTAAATGGTGTTGCTTTTAATGATACCATTGTCAGT
-TCCCCGGGGTGCCCTCCTTATGTGGCTCCATCCTGGTGTAAATGAATACC
-AATGCACAGCCAAGGTTCAACAGGCTGTGTGGGGAATAGCAGCAGAGAAA
-TAAGGAAAAGAGAACCTGAGGACTGCCTGGGAGTGTTCAGGCCCACTCTG
-CGTCCAGCACAGGGCCCTGGTGTGTTACCACCTTTTCAGATGACTTGGAG
-AAAGAATGAGCTGCTGTGATTTCACACACTCCGCATCCACACCGGGGTCA
-CCATGTTTTTGGCAGACCTGGGGCACCTGGCCCTTGGTGGTGGACCTGTT
-CTTGCTGGGGGATGAGCCTCAGCTCCCTGAAGATGGGCTGGTTCCTCCTG
-CTCACAGTGTCCCCTGGCTGTGCTACACGGCCTCGTGCTGGACACAGGGA
-CTGGCTGTGGTGTGAGTGAGGAATGGAGGATTGGCCTTCAGGCGCCATCG
-TTTCTGTTGCTTGAAGGTATTGAGTTCTTTTCAAAACATCCCTGCTTATT
-TGTTCAGATGGGAACACGGAAGGGAGGCAAACTACCTTCTTTTAGCAAAG
-AGACAAGACAGCAGGTGGAAGACACTGAGAACATTGGCGAGACTCCTGGG
-CTACTCCCTGCAGGGAGATGCAGGAGCAGCTTTAAGGGAATGAGAGAAGG
-GAGATGTGGAGGGACCTGCAGGAGGTGGGTAGGGCAGAGAGAGAGGAGCT
-GGGGGTGGAGAAAACCCTCAGGCCCAGGAGCTACATGAGCATGGTCCCTT
-TCTTGTGGGGTCGCCGGCCAGATGGAGACTCTGAGATGGCCATGGATGTT
-GTTTTGGAAGAATGAATCTACTCCCACATTTTCATGCAGTCTCAGGGTAT
-TGAAGACTCAGTCCATGGATGGGCTGGTCAGGAAATCCTGCAACTCGGGG
-TTGCTGTGGCTCCCAGGTATGCCCTCCTCCCCAGGTACAAACTCCTCCCA
-AACAGCAACTCCTGCACCCGCATCTTCTGGGTCAGCTGTGGGTATGGGAT
-CCCCTTCTGCCGAGGCTGAGGGCCCTACCCCTGTCATAGCCCGATGGTCT
-GATTCTACCCCCCCCAGTCACCCAGCCCTGTGGCTTTTCAGCACCCCTGC
-CTGTTCTGGGCACTGAAGGGCACTTTCCGGTGTGTCTGGAGATGTGGCAA
-GTGGCTGGTTGATCAATTTCTGCTTTCTGGGTTAGTCTTAACCTGTTAGG
-GGTTTCAGCTGGATGTGTGTCTCTGGGAGTCGGGGGTGAGAGGCATCCTG
-ATGTGGCCTGAGGGATGGTTCTGTGAGGTACTCAGGGTTTGATTGCACTG
-TGCTGTGGTTTTCCAACATGACAGTCCATGAGCTGGATCGGGAGTTTCGA
-TTCTTTTGTCTCTCAAGAAAGGAGAATAATGCCTCTGTTCCTGGTGAAAA
-TAAGATGACTTAGTATACAGAATGGCCTTGCACAGAGATCGCATGCGGTA
-GGTGGTCATGGTTACTGAAGTCCATTAAGTCACTGGGCAGTGTAGACGCC
-AGGCCCACAGCCAGCCCCTCTGTGTAGTCTCCTGATTCAGTCCCCCAAGC
-CCTTTGCAGTTCCCCAAACTCTGCCAGTCACAGCTGGCTAGCCCAGCCTG
-CGCCCTGCTGCTCCTGGGGCCAAGTGGCTGTCCTCATAAACCTCTGCTGG
-GGAAAGCATCTCAGAGGTCTTCAAACTCAGCCTCCAGCCCAGCTCTGTCC
-AGTACGGATCCCTTCATACTTCTGCCCTATGATCCGCACATCCTCTCTTC
-TGTATCCACAGAACTGACCCTCCTCCATCCCCTAGCAGGTGCCTCAGGGA
-CCCCACAACATCATAAGGACCCATTAGGCATTAGATGCCGAGTCCATGGT
-TCTTTTGCCTGTTTTCTCACTGGGCTGGAGTCTCCAGGCTTGCCCAGCTG
-CTGCCCCTCCTCTGCCACCCCAGGCCCCCAGCCAGTCTTTGGGAGGGTAG
-AGTGGGCTGTGGACAAGCCCTCCAGGCTCAGTGTTCCTCATGGGGCAGAT
-TCTTTCACTTACAACCTTCGTAAAGGCAGCTGCAGGCTTTCCTCCTGTAA
-CTGATCTCCAGGCAATTATAAGAGTAAAAAGTGTGGTTTTACCTTATTAG
-GTTACTTCTATTTTCAGCATGTACCCAAAAATGCACCACGGCACTGTCAG
-GCGTGGGTTGTCCCTGACAAGGAGCCTGTGGGGACCATGAACCTTGGCAG
-AATCTGCCCCCACCCCCTGACGCCCACAGGCACGCCCGGTAAGCTGAGAA
-GGCCGCCTTCCCTTCCTGCCTCCCTCCTGCCTCCTTTCTGTTGCTCACCT
-GAGTGGCTTCCCTGGGATTCTGCAGCCCTGGCTGGTCCCTGAGTCTTGCT
-GGGTTTCCTGCAGCCCCTCAGGGGCCAGCGTTGCATGCGGCGGGGCCTGG
-GAGTCAGCTATCTAGGTctgctctatccaacttagtagcccttgaccagg
-tgggactggttaccttcagattaacagcaactaaacaaagttaacaattc
-agttctcccagtcAAAGTTTAGGATGATGGCTCCTTTACTGGGCAGTGTG
-GACATAAAGCACACCTATCATCACAGGGGCTGTCTAGAGCAGAGGCTGTC
-AGGGAGCCGGTGGAGGTCGGGGGACACCTGAGCACACCTGCACCAGGTGG
-GGTGGCCTCACTCTGGAGGCTCTAAGCCTGAGGCATCCACATGTGCCCCC
-CAGGAACCCCTTCTCTTAATGGAGGCCCCCAGCTGCCTCACCCCTAAGGA
-CAGGATGAGTCCAGTGAGGGGGAGGAGAGGCACTCCGTGCTCCACCGGAG
-GACTTGAGTGCAGGAGGTGCCGTGGAAACCCACAGACTTCCCCGGGGGCA
-GCGCAGCAGATGGCAGGTGGAGAGGCTCCTGTGGCAGAGGGTGCTGGAAA
-GGATGCCTGGAAGTGAGCCAGCTACAGACAGAGGAAGCAGGTCCTGACAG
-GGGACTGCAAGGTTCAAAAGCCCAGCAGTGTCCAGGAGGAGGAGGAGGAT
-CTGGCAGCTGGGAACATGTCCCACTGGCTGTGGGTCGGAGGATGGGAGAT
-GGAGCCGGAAAGTCAGCAGAGACCAGATCTGGAAAGGACATTCTAAGAGC
-ACGCATGGGCCTTACTCTTGAGAACCCCTGGATGCCAGCACCATCCTCCC
-AGCAATTCACCTGCATGTGCCAAATTTCTGACGCCTGTACCCAGCAGGTC
-TCCTCTCAGATTTAAGAATGATCAGATCTGAGAGCACAGCCCACAAAGCC
-AGTGTCTGTGTGCTGAGCATGGCCCACGCCCCCAACCAACCAACGacaca
-cacacacacacacacacacacacacacacacaGCATGTGGTCTGTGTGCA
-GAGCACACGCGGTTAAAGCCAACCTAAGCCTCCTCGCTGCCCCGCCCGTT
-CTGCAGGATGGGGATGACTTTCCCTGCTGCTCCGCCTCCCGAAAAATCCC
-ACTCGCAAACACTCAAGCCCCGGAGCCATCATCATCATTCTGATATTTGA
-TGATCTTTAACTACAAATGCTCAATAAATGTTTTTTGAATAACCAAGTGG
-AGAAATAGAATGATGTTTCCATTTTTATTGCTGAGCATGAGCTCAGCAGG
-TGTAATGATGGAACCTGCTGTCACAACCAAAGGACAGACCCCAGGATCCA
-GCTCAATGGGTCCAGTTAAAAGTCGACTTCTTGTCCAGAGAGGGCTGAGC
-CCCATCAGAACTGCTTGAGGGAGATTGAAAAGTAATCAAAACAGTCCTCC
-CTgcctcacccggagccacaaaatcaaaatgcccaagaacagaggcccag
-acatttgcatttcaaaagtcccccaggtgactttgatgtaATCTGAGCAG
-CCTGGACCCCGGGGTTCAGCCTGCAGGATTTCTGCCCAGGTATCCCAGCT
-CCTTCTCAAGGAGAGAATTGAGAAAAGTTGCTTCTGCCTGTGCCCTGGGA
-GGAAATACAGGGGGATTTGGGTGGGGACTCGGGTGCCTAAGCCCAGCTCC
-ATTCTCTTTTTTCTGAGGTCCTTTAGAATCCAACAGGAGTCCAGTGGTGA
-ACAAAGTGCTAGCCAGTGTCTCGGTGAAGGAAAACTCACCCTCTCCCCTG
-CCCAAGTGCAGGGCTGCCTGGGAAAAGCGGACAGAAGGGTGGCTCTGTCA
-GGGGCCTTGTGCACTGTGAGCCTCCCCGTGCACTTGTGAGGCCAAGGACA
-AGTCCATCTGTCCACCCCAAAGCCACGCAGTCGCCATGAGCATGGAAGCT
-GGAGCCTTATCAAACTCCCAGCAGGGAGAGCGGACAGACAGGGACAGAAA
-CTGGCTCTGTCTGTCTGCTCAGCTGTAGGAAGCAGGGAAAAGAGCTCTCG
-GGGACAAACATGTCCCCGTCGACATCACCCACTCATGAACTGTGGCCCAA
-GGAATCTCAGATCTGACCACTCAGATCATCAGCAGCCTTCTTTCTTGGCA
-AAATAAGCAGGGAAGGGGCTAGAGATAAGGGTGAGGATCCTGCCCTGGAT
-ATGACCTCACACATGTGAAGTGAGGGTGGAATGCCCCATCCTGCCAAGCA
-CAGGCTTCGGGGCTCCAGCCTGAAGGTGGGTCAGGGTGAGGGGAGTGGAC
-AGACGCTGGCCACAGCTCAGCCATTCCTCACTCATCTAtgtaaaattaaa
-ttattccagcttaaaactgttggaacttgaagttattctgcgccttggaa
-ggaacgtggctatgaggcgtgcatcatgtagcatgcacctgcaacttctg
-ctttttcctttcaatgattaggaagggacttgtggcaccaaagagaagac
-cccctctggccatagctgcccctacagcatgggaaagccatcttccttgc
-aatgtagcaggctgaaaccaatcaagtcactaaaacatatgcattgagct
-catggggaggtgatgcaCAtttttttaaagcttgaagttctgggatacgt
-gtgctgaacatgcaggtttgttacataggtatacgtgtgccatggtggtt
-tgctgcacttttcaaccgtcacctatgttttaagctcctcatgcattagg
-tatctgtcctaatgctccccttccccctgccccccactctgcaacaggcc
-ccagtgtatgatgttcccctccctgtgtccgtgtgttcccattgttcaac
-tcccacttatgagtgagaacatgcagtgtttggttttctgttctgtattg
-gtttgctgaggatgacggcttccagcttcatccatgtccctgcaaaggac
-atgatctcattcttttttatggctgcatagtattccatggtgtatatgtg
-ccacattttccttgtccagtttatcattgatgggcatttgggttggttcc
-acaccaaaagcaattgcaacaaaagccaaaattgacaaatgcaacctaat
-taaactaaagagtttctgcacagcaaaagaaactgaacaggcaacataca
-gaataggagaaaatgtttgcaatctacccatctgacaaaggtctaatata
-cagaatctataaggagcttagacaaatttacaagaaaaaaacaaacaact
-ccatcaaaaagtgggcaaaggggccaggcacggtggctcacacctgtaat
-ctgaacactttgggaggccaaggtgggcagatcacaaggtcaggagatcg
-agaccagcctggccaacatgatgaaaccccatctccactaaaaaataaaa
-aataaaaaataaaaattagctgggcgtggtggtgtgcgcctgtaatccca
-gctactcaggaggctgaggcaggagaatcgcttgaacctgggaggcagaa
-gttgcactgagccaagattgtgccactgcactccagcctgggcaacagag
-caagactctgtctcaaaaaaacaaacaaaaaaaaagtgggcaaaggatat
-gaacagacacttctccaaaaacggacatttatacggccaagaaacatatg
-aaaaaaagctcatcaccactgctcattagagaaatgcaaatccaaaccac
-aatgagataccatctcacgccaattagaatggcgattattaaaaagtcag
-gaaacaacagatgctggcaaggccattgagaaataggaatgcttttatac
-tcttggtgggagtgtaaattatttcagccattgtggaagacagtgtggca
-attcctcaaggatctagaaccagaaataccatttgacccagcaatcccat
-tactgggtatatgcccaaaggattataaatcattctactataaagacact
-tgcacacgtatgtttattgcagcactattgacaatagTGTTGCACATGTT
-AActgcctgtaaaggaagctttggcctccccactttggaatgatgtctga
-tgttcttcaagtctgtgtttcccggggggagtattctcagtctctgtact
-caaactctgtacttaatcttattttctgaatctcatgatttaaggctgac
-aTCTAGAACCTGGAACTGCTTTCCTGTGATTCATTTCTTGGTCCTAAATG
-GGTCTGATACAAGTTTCGCCTTAAGGAACGGTCTAGGAAGTTGGGTGCTG
-GTCATTCTAATTTTGACTCTAGGTGCCCCTGACTTGGTGAAGTGGGAAAG
-GGAAGGGACCTTTCTGGTGCACCAGGCCCATTCCCGAACGGGGCTCCTGT
-GGCCAGCATTAGCCAGTGCCCTCCGTCTTTCTCATCTGGTCCAGTGACAC
-TCACATCTGGGGAATGGGCTCTCTCAAGTTCCTCAAGGACTGCTCAGGCG
-GGTGGTGGTCACTGGAGTGATCACGGCACATTCATTGTTGGACACTCTTA
-CGTGTATATCCCTTTTAATATCCCCGATAACACTATGGGGACGGACCAtt
-gtttcttttttgtttgtttttgagataaggtctcactctgtcacccaggc
-tggagtacagtggtgcgatcttggctcactgcagcctccgtctcccagga
-tcaaggaattctcccacctcagcctcccaagtagctgggattacaggggt
-gcagcaccatgcccggttaatttttgcatttttagtagagatgaggtttc
-accatgttggccaggctcatctcgaactcctgacctcaggtgatccaccc
-gcctcggcctcccaaagtgctgggattacaggtgtgagccaccatgcccA
-CCACCAcgccattctaattggcgtgagatggtatctcattgtggtttgga
-tttgcatttctctaatgagcagtggtgatgagctttttttcatatgtttc
-ttggccgtataaatgtccgtttttggagaagtgtctgttcatatcctttg
-cccacttttttttgtttgtttttttgagacagagtcttgctctgttgccc
-aggctggagtgcagtggcacaatcttggctcagtgcaacttccgaagcct
-cccgggttcaagcgattctcctgcctcagcctcctgagtagctgggatta
-caggcgcacATGTTTCTATTTGTCAGATAAAAAAACTACTGCTCgagaag
-acagaaagatgttgattaagaaaacataaagtctgaagtctcagttatgc
-aggctgatgaagtcgtggggctctaataaacaggatggtggtgttaatta
-acaaaactgcattgtatacttgacattcgctaaggaagtcgatctcaagt
-gctccccccaccaacacacacccacaaaaataattacatgaggtgatggc
-catggtaattagcttgatggtggcagtcacttcacaatgtgtacacacat
-caaaacatcacattgcacatcttagaatacatataatttttatttgtcaa
-tcttaactcaagaaagctggGGAGGGAAAGAAGACGGAATTAGATAATGC
-CTCCAACATTGTCTAGCACATACATAGTCAGCGTTCAGTGACATTTCAAT
-GAGCAAcatcatcgtcttcattgtcatcatcatcttcatcaACCTGCTGC
-TCTGGGATGTCTGATGAAATTTCCAAAGTAAGGTTCTCGATCACGAAACA
-TGAGCTTGTTCCTGCCTCTTGGGGAATGACTGCAGGGTGTGTGACTCTGC
-TGGGGTGGTACACGCCCTTGGTGGGTGCGGGTTCGTGGTGCAAGCTGGCA
-GATGCCAGGTGAGACCCACCCCTCGCCCTCAGGTACTGAGCCCCACCTCG
-GTCCTTGTGAGGTCTGCCCTGAGGCTGGTTGCCTCTGCCAAGCATTTATT
-TTTTTCATCCCTAAGGAAAACTCACACTCACCTTTGCTGAGAACTCCATT
-TATTTTTATCTGTTATTTATTCTCCTGACTCATGAAATTGCACCCTTCAG
-GATGCCAGTACAAAATGTTTTAAAAAATTAGTAAAAATGCATGAAGTGGA
-TGAAAGATGTTAGGCTTCTTTTATCTTCCAAAATATAAATTTAAATACTT
-TCACTTTATGATCCCCAGAGGAAGAATTAAATAAAAAGTAAGCACAAAAA
-TTTTTATCAAACTCTTACTCCTTCCAACTTAAATGTTAAAAGTAAAAACA
-AAAACAGAAAGAGGAAGACCTTGGCCCAGCACAGGAGCGTGGTTCTCAAG
-GCGGATGAGACGGGCCCCTGACGACCCATGGAGCTGAGACCTCGTGACCT
-TCAGTCCTCACTCGGTGCCTCCCACATGCAGGTGGCAGCACAGACTGTCT
-GCCCTGGCTGTGGCACTGGACGCGAGGACGGATAAGCATCAGGGCTTGTT
-GGGGTCAAGAGGTGGACAACACCCCCAGCCCAAGCGTCCACACTAGGCTC
-TGTCCAGCGAGGATGTGCTGGCCAAGCGGCTGCCCTCACCGAGAGAGGCA
-GCACAGGAAGACAGCCCCCATGTACCAGAGCCTGCCAGGGAGGCAGATGA
-GCTCATGTGGGTGCCCGTGGCAGCACACAGGGAAGTCCGAGCCAGAAGGT
-GGAAACAGGTTCATGGAAGGCCACTTAGAGCAGGGCCTCCCAGCCACCTG
-GAGCCCCCCACCCCAAGCCCCGTGCCCAGCCCAGGACCCTGCAGGCCTGA
-AACTGGGGCGGGGGTAGGTACCCAGCTTCTCCTGTGGGCTCATTCACTAA
-TAATTCCTAGAGGGGCCAGGGGCTGGCAGGCTGAGGTTTTGTTTCAGAGC
-ATCAAGGGAAAGAAATGGGCTGGAAGAGAAGCAGGAGGGAAAAAGAAGCT
-TTAGATGGGAAAGCCTGGGAACAGGTCAGAGAAGCCAGGCCCCCTTCCCA
-GGGCGAAGGCAGCGATGGAGACCTCATCAGGGCGCTGGTTAGCCCAGGAG
-TCCCTCCTCTCCAGAAACAGCCCTCAGTGCTGCCGTGGCACACAGAGGAT
-GGGAGGATGGGAGAGACGAGGGTCAGGGAGGCCACCAGGGGACGGGGCTG
-GACTCCACGAGTGACAGCCATGGCGGGGGCGAGCCGGGCAGCCTGTCGCA
-GAGCCACAGCTTCTGGGGAAGGCTTCCCTGAGCCTGGTCCCTCATTTGTG
-CTGGTGAAATGTCCCATTTTGCTGAAGAGGAGACGGACATGGAAGCCTTT
-GTCTTTAGTTCACGCTTACAAGTGGCACGGGGACGTGCCGGGGGATGAGT
-CCTGGAGGGGCTCCGGGTGGAGGCTTCCCGGCTGTCCCTGAATTGAAGCA
-CAGGAAGGCGGCAGGGGGtcttgggaggtcagaactagaaagtgccttca
-agatcttcgtcccaactccctgtcccctagacagaaagcctcagagctga
-ggagctacgctgactcatccaaggtcaaaagggagctggtggcaaagccg
-ggGGACCCCTTGGCTTCACAACGTGGTCATCACAGGCCCTGATGGCATCA
-GGGCAGTTCACCCCCAAAGCGACTCGGGACACATATTGTGACGTAGTAGG
-GACTGGGGAAGGGGAAGCGAGTATGGTGGCTCAGATGAAGTAGTTAAAAG
-CAGAAAACGGGTAACTGCAGAAGTGCTGGTTGTGGGGGGATTTACGCTTC
-TTTTTCCTCCAAAGCACCTTGTCCTGGAAGTGCCAGGTGCCCTCTGGGAA
-GGCCCCACTTAGATTGATTTCTCTCTCTTTGGGCACTTTCAAAAGGTCCT
-CTCCAAAGCGCAATCCATCGACTCCGCCAATCTGTCACCAGGCAGCTCTG
-GGAACGGAGCCAGGGACTTGCAGGTGTGGCCTCAGCAAAAAGATGAGCAG
-GGTGGTGCCTCTGCCAGGGAATCGCCTCTGCCAGGGAATCGCCTCCGAGA
-GCTGAGCCCTAAGGCACGCTGGGCCCCGGCCTGATGGCGCAGAGGGAGGC
-TCCCCACCCTCCACTCCCTGGCTTTGTGCTTTGGGGCCAGGCACCTGTGT
-GGGGTGGGCTTCCCAGGACACAAAGGCTAGATTCAGTGAAAGTGATTCCT
-TGGTCAGAGGGAGATTTTCAGAGGAATCAATGGCTGTGCGCTTCACTGTC
-TTAAAGTGGTCTATGCCTCCTGACTACTTTCATGCTAAAGCCCATCTCTC
-AGCCTAAGGTTGAGGCCTGCAAATGAACTGGTCTTATTCTCCTGTGCGGA
-TAAGCCACCTGTCAACCCCCGCTCCCCAAAATACACACCCAGTGCCATCC
-CCTGCTGATACCTCAGCTCAACATGCATTCCCAAGTCCATGCCCGCTGGG
-GAGCCCTATCTGCCCCATAAACCCCCCATCAGCCACGACCTTCACCAGGA
-CAATGCGGGGTGCCGGGTGTCCTCCCCAAGCTTCTCAGATGCAGGTGCTG
-CCTGAGACAGCAGAAGGGAGGATGGTTCTGAAGGAAGCGTAAGCGGGGGC
-ATCAGTCACGAAGCTTGGCCACAAAGAAAGTGAACAGCGGGAACCGAGGC
-TGTGGCTTTCCAGGGACCAGCAGCTGCAGGGGTGGGGCACGCGGCATGGA
-TGGGGGCCACGGACAGATTTGGAAGGCAAAATCTGCTGAAAAGTTTAGAG
-AGGATAAAGCGGGGGGCTCTGATTTAGATTAGCCGTGGCCTGGGGGCACA
-CAGCCCACCCAACTGCTTCTGCACACTGGCTCCTGGAAAGGGAAGCAAGT
-TGGGGCTGGGGAGGGGGCTGGAGGGCCCTGGCTATGACAGCTGGGTCTCC
-TCAGGACACCGAGGGCACATGAGGCAGCTGCAGGGGTTGAGCACCCCCAG
-ACAGGTGGCCCAGACCTTCAGCCTGGGTAGGAGCAGGAGGACACTGTAGC
-ATCCTTGGCCCCCCGCCCCCTTTTCACTCCACCGCCCTACGTGTGGATGA
-AGAGAAAGGACCTGGGAGGAGAACTCCAGGAACCCCAGCTCCTCCTTCAC
-CCTCGGCTAGAGTGGGGACCAAGAAGGGCCTGTGCTGAGGCTGCCACACG
-GCCTGGCCTGGGAGGAGACAGCAGGCTAGATCACAAGGACCACTGCTGGT
-GCATGGCCCCCATAGGCTGTGAGCCACACACAGGTGGGGAGGGCAGGCCA
-GGCCAGGGTTCCTTGAGCACCGACCACGTGCTGGACGCTCTCCTAAGTGT
-CCTCATCTCATTTGAGACCCGCAGGAACCATGTGGGGACCCTGTACTCTG
-ACAGTGTGAGTAAGTCCTGCAGCCAGTGCCTGGTGCAGCCAGAAAGCAAG
-CCGGGGCCATCAGAGCCCCAGGCAGGACACTGAGCAGCTGCCGTGGGAAG
-ATGCCGGATAGAGTTTCAAGATTTACAGCATTAATTAGAACTCCTGTATT
-ATTCAGAATCGATATCGCGGCTGGCCTCCATTTTTTAAGACTTGAAGTCA
-GAGGAATTCTGTATTCTTCTTTCCTAACAGTCAGCCGAAGCCACTCATCT
-CAGGCTGAAGGGGGGTTTTCTTCTTGTCGGGGGGATGTCCCTGGAGGAAG
-ACTTTCCCTCTGGGGTCTCCCAACACAACATAGACAGAGAACCAGCCGAA
-AACAGGAGGCCACCCCTGCAGGCCAGAGGGAAGGCGCCCTGGAGTCTGAG
-CCGAAGCCTCAGGCGCATGGAAGGGCAGCTCAGCCCCAGGCCTCCGATGG
-TGGAAGTGATGTCAATGCTCCAGATAACACTTGTCCCGGTTTAAAAATCA
-CTCAGCCATAGATGCAGGATTGAAAGGTCAACCCTCACTCCCTGCTAAGA
-CTTCCTAAATTTTAGATGAACTGAAATCCATCTTAACAAAGTCTCCCTCA
-AGACAGAAGCATTCTGGACTTTGGATGGAGCAGGGAGCAGCCTGGGCGTG
-GGTGCTCATGATGCTGCTTGGGGCAGGGAGAATGGGGGACCTGGGGGCCT
-CAGGTGGGAGGAATCAGGACAGGCTTGGAATGAGGACCATTTCCAAGACA
-GAAGCACAGACTGCATGCATTGGCCAGAGAGGCTGGGAATCCAGAGAGAC
-CTGGGATCCCCCAGCATcctttctaggccctggtttctgcgtttgtgaag
-tggggaattagttcctggccaggaagttgcagcgaggatgggatgagacc
-ccggcaaagcatgcggcgcttagcaGGCATCCCGTGACATGGGTTCCTTC
-CCTCCCTCTCTCCCTACCCACTGCAGAGTTTCCTCAAGGGAAATTCCTCT
-GGCCAAGTGTTATGTGGGGCCAATGGGTGATGTTGGAGCTGGCGTCTGTT
-GGCACCTTACAGGGCACCATGGTACATTATGAATGTGGCTCCTGGCTGGA
-AGAGCCGGGTTCAGGAAGGGCAACTTCCCAAGACAGAGTTGCCTGCAGCT
-CAAGCCAGGACTTACACCTGGCTCTGCCCAAGTAGAAACCAGGCTCGTTC
-CCACCTGGGTGTTTCAGGGGAACCAGCCAAGGGCCTGACTGGGGACAGGA
-ATGGGCTGTGGGCCACCCCTTGCCACCCATAGCTCATGATGTCACTGGTC
-ACACAATATTAAAGCACTTAAAATAAGTAGTGGGCCCTCAAATACCTTAA
-CTTGTGTTTCTAATTAAAACAGGAAACAAGAGTCAGAGAAGAGAGGTATT
-TAGGGGCATTCGTGATTGAGGTGACTTCCTGGAAGAATGGGCCATAAACC
-TGCCTGTAACAACCCGTAATGCAAGGCCATGTGTCCAGGAAGAGCGGCTG
-CAGGATTCAAGGGCCAGGGAAATCCATGGGAGGACAGCATCCACCCACCT
-GGAGATGGCACCGCCCAGGGCGCCAGGGTCCCCACaatgtttatacccca
-caaattcaggtgttgaagccttagcccccactgtgatggtaattaggagg
-tggagctttggggaggcagttggggttagaagaggtcattagagtgaggc
-ttatgcaatgggattcacgtctttatacagagacataaagagttccccgc
-ctcccctccatgagaggacacacctgtaaactaggaggtggagcggcacc
-aggacccaaccctgccacaccttgatcacagagttcccgccagcagggct
-gtgagaaaataaacgtctgctgtttgggtccagtctgtggcctttggcta
-tggcagccccagctgaggaaggcaCAGTTACAGGGAAGTCTTTTGAGAAG
-AGGGCCCTCCAGCTGGGTCTGGAAGGGTGGAGAGGGCATCTGGAGGCAGA
-GCCACCGTGCAAAGCAGGTGGTTACCAGGGTGGGTGCTGGGGTGTCCTAG
-AGGTCCCCGCTCATGCTGGCAGAGGTTCCAGGAAAGAGACAGAGACTGGC
-TTCTCCTGAGGACTAGGGAGGTGTCCGAGGATGCATTTGGGGGTTCACTG
-GCAGTTGGTCTGATCAGAGAATCGGGAGGGCATTTGGGGAAGGAAGAAAT
-GAGATCTGTACATCACGGTGTATGGTGCCCACCACAAGCGTGGGACGGTG
-AGGTCTGCTGAGGCCAGCAAAGCGGGTTGGGGAAAGATCTTAAATCTTGG
-GAGGTCTTCAATTCCATCATCAGAATTTTATAATTTATAGAGGAAGGGAA
-AGAGGATGAGGCATACCTTTAAGCAGAGAGATACCTCTCCTGAGCCTCAG
-TTTCCACGTGCGCACCATGGTGTCAGACCCACCAGAGCCCACAGAGCTGG
-AGCTTCCATCAATCTTGCACTCTGAGGGTTTGCACTCTGAGGCCGGGAGA
-CCAGAGTAAGGGGGTTGACAGAGACGCCTCTTGCAAAGGTAACTTTCGGG
-GCACAGCCATGAGGGAGGGCGCTGGTGTCTTCAGTCTGAGACTCCACAAA
-GTGACGCTCTTCTGTGAGGGACCTGGGTGCAGGATGGCCAGCGATGGCAA
-GTTCTGGGCCAAAATTCATGTTCTCTGGTGACCGTCCCAGCCCCCAGGTG
-ACAGAGAAATCACTGGACTGAACGTCATTTCCAATGCAGAGTCTAATTAT
-GATTCATGGTGTGTATCTGTGTTCTCGTGAGACTGTTATCAAGTCTCCTG
-AAATGGAGCCACATTCTCAGGGTGAGGAGAGAGGTGTTACCTACATCAAC
-CCCACCCTGCGTCTGTCTCCTCCCCCCAGGCCTGCTGTCTGGTTTGGAGA
-GGGGCCTTGATAACTGGAGTCATTGCAGCCTTAAAAATCTCTGCCCATAT
-TAATTGACTCACCCCAAGTAGAGAGGGGCTGGCAGATAACGCTTTAATAT
-AGAAAGAGGCGCTTCCATTTTAATGAGATCGTAGCAGCCACCTGCGGAGC
-CCAAGGCTGGAGCGCCTCATTAGCAAGAGTAGAGCAGCCTAACTTTGAAC
-TTGAAAATCGTTACAGAACTTGGGCTTCAAGTACTTCCCCAGAGACTTGG
-GGTTTTCTTTGCTGTTCTAATAGGAAATCTTCTTCCAAATGAGTTTTTCT
-ATTTTTAAAATGTCTGGAAGAAACTACAAAGTGCAGGATTCTACTCCTCT
-GCAAGGTGGAGACTGTGAAAATATGTTGTTAATTGTGCAATTATGCACAA
-TCCACTGGGACGGCAACGTGGGACATGGACTTCAGGATCTTTTAAAGAAG
-ATGTGATGTGAGTTTTGTGCCAAATCAGCACAGGACACGTTTCTTTAAAC
-CAGCCAAAGATTCCATCAGCCAAGTCCACGTGAAGAAACCCATCTCAACC
-CATCGAAAACAAAAGGAGGTGCTATCTCTCTGAAAGTGATCCAAGAGGAA
-AGCAAAGCCTCTTTTCAAAGGTGTGGGGAGAAGAACTTTGtgtttgtttg
-tttgtttgtttTTTGGGttttttttaaattttattttactttcagttctg
-ggatgcatgtgctgaacgtgcaggtttgttacataggtatacacgtgcca
-tggtggtttgctggacctatcaacctgtcatctagtttttaagtcccgca
-tgcattaggtgtttgtcctaatgctctccctccccttgccctcctcctct
-tcaacaggccccggtgtgtgatgttcccctccctgtgtccatgtgttctc
-attgttcaacccccacttatgagtgagaacatgccctgtttggttttctg
-ttcttgtgttagtttactgaggatgatggttttcagcttcatccatgtcc
-ctgcaaaggacatgatctcattcttttttatggccgcatagtattccatg
-gtgtgtgtttgccatattttctttattcagtctatcattgatgggcattt
-gggttggttccaggtctttgctattgtaagtagtgctgcaataaacatat
-gtgtctttatagtagcatgtgtctttatagtagaatgatttataatcctt
-tgggtgtatacccagtaatgggattgctgggtcaaatgagattcctCAAG
-GATAAAGAACATTTTTAAATGAACGATTGGGAGGAAGTTTCTAGACTAAA
-TCCATGCACGCTTGGCTTTCCTGGTGACAGGTGAGGCAAGTCCTCGCCTC
-AGCACTCCCCACATGCTCAGTGTCCACTCAGTGTCCAGCAGCTCTCAGAA
-GCTCCCCTGTGTCCTCTGACAGGGGTACAGGCCAGGACCCCACATACCAT
-GCACAGTGAATAAGTAAATGAACGCACAAGGAGGGGGTTGTAATGTGGAG
-CTGTGTTCCTCCATATCTCAAGCCAGAGTGGATTTGATGAATGGTTTTGA
-AAAGATGCAGAATTTCCTGTGTGAGTCGGAAGGCTTATGCTTGAAATATT
-GAGGTTTTCTTGACACattatttgaaaataattatttagataaatattaa
-tCTTGGATGACAAAGAAGCCAAAAAGCACAAAGAACACCAATAAAGAAGG
-AAGGTggccaggcgcagtggctctcacctgtcatcccagcgctttgggag
-gctgaggcaggtggatcacctgaggtcaggagttcgagaccagcctgtcc
-aacatggagaaaccccatctctactaaaaatacaaaaaattagccaggca
-aggtggcatgtgcctataatcccagctaatcaggaggctgaggcaggaga
-atcacttgaacccgggaggcggaggttgcagtgagccgagattgtggcgc
-tgctctcctccatccagcctgggtgacagagtgagactctatctcaaaaa
-aaaaaaaaaaaagaagaagaagaagaaagaagaaggagaagcagaaggag
-aagaagaaggaggaggaggagggggaggaggaggagaagaggaagaagaa
-gaagaggaggaggagggaggagagaaagaagaaggaggaggaggGTGATT
-TTTGTCATGTGCAGACGCTTTGTCGTGTGACTAGACGGATGTATATGGTT
-GCATCTTTGGACAGACAACCTCAATCTCTGTGCCCTACTCTGCCTCATCC
-AGAGGACTGTTGTGACTAAACATTTCACTCATTAAATGTTTCCTGAGCAC
-TGAGGCCACTTTGTTCTTATTATACTGCATTGTGCAGAAAATGCGAAGTC
-AATAAAACACATCTCTGGCCCTCAAGCCCATCGTGGGACACAGAGGGGAT
-GACGGAGGAACTGGAAAGTGATGTGCACAGTGACTGGTGCACTGATAGTC
-CCGGGCATGGGATGCCGTGAGCACCCCATGTGAGGTCACACtatcttagt
-cagctcgggctgctgtaacaaaacaccacaaactgggtgcttgaacaact
-ggaattatttttctcacagtcctgcgggccagaagtccaagatggaggtg
-ttggcagggctggggcctggtgggggctgtccctttgggtggcagacacc
-caccctctcactgtgtgcttgtgtggtctttccttggtgtctgcacctgc
-agagagagagtgagttccccggggtctcttcctggaagggcactaatcct
-atccctaagggattcctaggcccaccccatgactccatttaacctgaact
-aattcatttgagactccatctccacatatgaccacactgacggcgagggc
-ttcaacctaggaattttggaggaaacaaacactgagtcAGGAACAAAAAG
-CCAGGCAGGCTGGAAGAAAGAGGGACACAGAAGGTTTTGCAGAAGATGAC
-AGGTTCTTTTGGGCCAAGGCTACATGCAGAGCCCAGAGTGGTGGAGAGGG
-GGTCAGTGACAGAAGACACAGAGCATAACAtgagtgtgagtgagtgtgtg
-tgcacgaatgcatgtctgcgcttccacatgcgtgtgtgattgcagatgtg
-tgtgtgtgagcatgtatgcacgtgtgtgtTGTAGAAAGAGAGCTGGGCTG
-GAGCCCAATATCAGAGGTAGGAGTTAAGGTTGCAAAGCCCAGAGATAAAG
-AGCCACAGAAACCAGACAAAGGAGCTGGAAGTTGATCTTGAAGGGCGTGG
-TCCCCACTAAAGTGATTTACTAGAGAAGCACTTCAGAGAGATGTCCATTT
-AAGAAAGAGATTCTGTCTGTAGTGTAATGAACTTGGTGGAAGTGGGCAAG
-GCTGAAAGCCAGGAAGGCCAGGCCTTGGGCATCCCGCCAGGGTGTATTTT
-GTGGGATTGTTGTGAGAAGTGCAGGGAATAATCCACATAAAGGGCTGGAG
-ATACCGAACACTCAGCTGGCACAATGATCTTTTTACAGGCCCtttattta
-tttatttatttattttttgaggcggagtctcactctgtcacccgggctgg
-agtgcggtggcgcaaactcagctcactgcaacctccacctcctgggttca
-agggattctcctgcctcagcctccccagtagctggggttacagaggctga
-tttttattattattatttttagtagagatggggtttcaccatattggcca
-ggctgatctcaaactcccaacctgaaaagatccaccctcctcagcctccc
-aaagtgctgggattataggcatgagccaccgcacccagccAGACCCTTCA
-TTTTTAAGGTGGTTCGGGTTCATGGAAGGAAGGGTCGGGTATTTTTTAAT
-CCTGGAAAGTGCTGTTCCCACTAGAGTGTCTGGCACAAGGGATGTCCCAT
-TCAGGTTTACAATGGGGAATTATACCTGTATGGTATTGTACCTCGTGGTG
-TCCCAAAACCTATTGGGGTGATTAATTAGCAGCAATGTAGATCTTTTAGC
-TCCAGAAATAAACAGCTCTTTCTTATTCTCTGTAGTTACTGGTTTTTGGG
-GGGGTTTACTAACATGGCTATCATTTTTTTActcaacactccttttgtat
-cattttccttctctctgaaataaatacattagaaatgtctgtagtggtat
-aaactctatcaggtttaattatccgaaacatcctttaccttcattgctga
-atgatagcatcgcagttgaaaatgctaaggtgcctctttgaagacacaac
-ttctccttcttttggtttccattgtcatgtttaacatgtgcgttgttgtc
-ataagtcatttccttgtaagtaatctgagttcttttatcatcttctttgc
-ctttgaatttcatggtccttcactgatgtagcttgatattaattgattta
-tatttctccaggttggaattaggctctcagtctatgaggattcctaattt
-taattagttctaaaaacttttttggcattatgttcaatactctctgggtt
-ccatttttttttctgtctcttcctCCCTCTCTTTCTTCCGCCCTGtttct
-ccttcattcttttctttttctggaagtcctattgatatgtagacagtctg
-cctcactctaccttccactcctctcaactttcctttcatatttcccgtgt
-ctgagtctctatgtgctgccctttggacaactaactgagacatatcttcc
-actacagttgttctctgtttaggtatatatatacacaaatatatatacat
-aaatatatattatatataatatataattatataatgtataaatatataat
-gtataattatatattatatataatatataaatgtataattatatattata
-tataatgtataattatatataatatataatatataaatgtataattatat
-attatatataatatataaaatataaaaatatataaatataAttttttttt
-tttttagatggagtctctctctgtcacccaggctggagtgcagtggcatg
-atctcggttcactgcaagctctgcctcccgggttcatgccattctcttgc
-ctcagcctcccgagtagctgggactacaggcccccgccaccacgcccggc
-taatttctttatatttttagtagagacagggtttcaccgtgctagccagg
-atggtctcaatctcctgaccttgtgatccactcacctcggcctcccaaag
-tgctgggattacaggtgtgagccaccgcaccGAACCCTGTTCAGATATTT
-TAACACTTGACTTCAGCCGATACATTTGAAAGTAAATGTCATTGATGAGA
-TGTTTCATCTTGAACGTTCTATATGAGATATTCCTTATCTTTTTAATTGT
-CTTATTCTTTTCATATCTTCACTGAAATATTTATTTTCTAAATTTATTAA
-ACACTCCTATTTTGTGTTCTTTCAAAATATAAAGTCATTGAATGTATAAT
-TCTTCCGTTTGTTTGTTTTCCCTAATCCTGTTCACTCTTGCTGCGTCTTA
-TTTGATTTTACGCTTTCTATGATTCAATTGAGAGATTGTGTTCTTTGAAA
-CCCCATGGATGTCCTGGGAGGTAGTTATTGAAGAGGAGGAGTGGGACCAC
-AAGAAAGAGTGTGTATTTGCATCGACAGTGTACTTGGGAGTGATACCAAC
-TGAGACCAACGTCAACAAATGTATTCACCTGGAATACAGCTCCCCATTCT
-CAGTGGTTCCTCCTGTTTTATTACTAGTATCCAGAGCAAAGTCCCTCCTG
-GTATCCTTGAAGGGAAATTGTTTTCCACTCCATTTGTTTTTTCCATGAGG
-AGGTAGCATTCATTTAAGGGACATAGTTACAGATACTCACCTGGAGCCAC
-TCCCGTGATACCCTCATAACTCAAGTCTCCTGGGTCCCTGGGATAGAAAA
-TACCTTCAAGGCAGCACGCACACTAGCATTCGCTTACTGGACTTGTATAA
-GGAGGATTTTCTGTACTTTAGTTTAAGCTCCATGATGCTCTTTAAAGGTA
-AATTTAAAATTTATTTTAGCCTATTTAACTTATAAAGTAGGAGGTTTTCC
-ATGGTAAGTAACCCACCATAGGCCAAAAATGGAAGTTCATCCTTTGGATT
-TCAGGGTCATCTTGGCCATGGTTTCGTTTATATCTGTTTATCCTCTATGT
-TGTCAGCAACTCATGTACAGAGACCACAGCCTTTTTAGCTCCAAGTCTCT
-CCTGCACCCAGCCCAGGGCCTTCTCAGGGTGCTGACTTCAAAACATGAGC
-ATTTACTCATTCATCATGTCTTCACACCTCAGCTGCTTGACATACAAGGT
-GTAGCAGATGTCAccctattttatcctgctgaaaacctgagacttggaga
-tttttaagtgacttacctatgatcacatagctTATGCCTGCCTTGCTGAC
-ATCTTGCATTTTTTTTCATGAGACCCTGATAGCTTTCTGCATGCTCTGTC
-TTCATGTACAAAGCTTTGTCTGTGTCCAGGCAATGTGGTCTATTTATTTT
-ACTACCTAAGATGGGTACAGAGTAAATTGCAGGCGTTAGGTTTACAGCCA
-GAGGAGCTGTTCATTTCTCAGCACTTTTAAAGCAGAGCTGCTACTGCATT
-TTCCTGCAGATGAAAAGTTCTTTGAAACTTCTTGAAAAATTTTTGCAGGC
-TTTGACGGAGGAATAAAATTTGATGAGTAGTGCAGGGGATTTAAAATGGA
-CCATCATCTTCAATGACTCCGACCAGACGATGGGCAATTGCTgcatcctc
-atttcctccaggtctctgctcaatttcaccttatcagttagaccttccct
-gatggtcctgtttgaaatagcaatccagcctcgaccctggcactcctcac
-accatttaccgtgctttgtttttatctatctcttgtaccatcgcctgata
-tgctgtgtattttttttctgccacctgtactggaatgccaatgccacaac
-attagggacattagcgtgatggttctttaatgtatttccaatactgaggc
-taatgcctggaacagagtaggtatttaacacagtttaatgaatgaacgaT
-GATGATATAATTTACAAGTATGTGGCCCATTCTTTTAGCCATGATTTCAA
-TGGAGATTCATACTAACCTTCTGAGGCAAGCAAGGAAGAAATAATTGATG
-GGTGTGTACACTCAGCCAGGAAGCAATAGAGTGAATGGCTGGATCCTGGT
-GCACTCCATGCCTCTCTGATCCCCAGGGAGTAGGGGAGATGATACTCAGA
-GTACATAGTCTTACCAGTCTCTGACTCCGTGTTATTGCTCAGTCAGGAGG
-CTGTCATGGCTCTTAGAGAAACTTTCTGGCTGAGGCATGGATACTTATGC
-AAGCCTTTGTGTGTCAGTGAGCACCAGACCCAACAGCAAAGTGGCACCCA
-TGTTGAACAGCACCAGTTGGCTGTTCCCTGAATGCACCTGTTGTAAGCGT
-CAGGGAGGTCTGTAGTGCAGGAGAGGGGCTGTTGCACATTGAGGAAAgat
-tgcaaccatggttctgcccattgattcttgagtggctttgtgtaatacac
-taagcctctttctacttaacttttcctatctgtCATCTCTCAGCTGGTTT
-CCAGTTCTGAGTTACGGCGAGTGATTAAGGACTTCTTTTCTCATGATGTA
-TTTTTATCAACTCCTGAACATATTTTCCCCTGTGCATGAAGGTGGTCATT
-CTCTTACTTGGGATCACTCTCTTCCAGTCATAATTTGCACCCCACACATT
-ATTCTTTGTCTCTGTGTGGCACTCACATATATACAAAACcacacacatac
-accatacacacacacacacacatgcacacacaATGAGCATACGAAGCCAC
-CTTGGAAGATGCCCCAGAATTCCTCTACCCTCACATGATATGACTAAACT
-taataacaatcgcatattaagggctgactggtcctaggcagtgtattaaa
-cgcttcacattgattttccaagttgagcttcacaagagcattgcaaggtc
-attttattttcattcccattcaaaggatgagaaaacctagtctATTCTTC
-ATGTTGTGAAAAAGCCGTCATTGTGAAGACTCTTTTtttttctttacttt
-ctttctttttttttttttgttaggcggagtcttgctctatcgcccaggct
-ggggtgcagttgcgcgatctcggcttgctgcaagctccgcttcccgggtt
-cacaccattctcctgcctcagcctcccgagtagctgggactacaggcgcc
-tgccaccatgcccagctaatttttttgtatttttagtagagaccgggctt
-caccatgttagccagagtggtcttgaactcttgacctcgtgactccgccc
-gcctcggcctcccaaaatgctgggattacaggtttgagccaccgcgcccg
-gccGTGAATACTCTTTTTAATGTCCAGAGGTTCAGCCTGCTCATCAAATG
-AAGTCCAGTTGCTAATGTCAGTGACACACTGCAGTCAGCTCCACAGCTGA
-GGACAGCTTTTGCTAACCTGAGGGCCTTAACAATGCACTACACAATGTAC
-GACACAAAAGCATTTCTCAGGTTTGTTACTCATTCTGGTCAACGGAACGG
-AATAAACACTTTCACAAGATTTGGTTGTAAGACTACTGTGGGAATTCAAA
-ACTGTCAAAATAATAAGCCAAAATGTATCAGTATTCGTTCTTTGTTCTCA
-TCTTCCAAAATCCACATGTTTAACCTTACAGATTTTCTCACAAGTCATTT
-GAAATTCCCAGCTGGAGAAAGAGCCGAGACACATGTCTAAAAATTAGTCG
-CAAACACATATGCTAACACACCTGTATGcacacatacacgcatacacaca
-cacacgagtgcacaccttcatacatgcacacacacaggtgcacacactca
-tgcacacacatgcacGGGCTCCATTGGATTTTGGTTCAGAGCCCTATGGT
-TTGTGACAATCAGCAACAATTATGAATTGCGATCCGTGAAGGGGGCAGGC
-CATGGTTGCATGAATTTCAGCATTTATTACAAGGATGCTGTTATGGAGAT
-TTCACCACAGGCCCAGCCAGGCCTCACGTTCTCATATTTAAATATCATTT
-GGAAGCTGATGAAACTCTGGAAGTGCTCATCTCCCTGTTGGTTCTAAGAT
-TTAGTCTTCCTGGAACTTTTATTTATGTAGCTAAGTGCTGAAATTGAGTC
-TCAAAGCAGTATTTTATTATATTTCTTGTGGTTGGGGGGCCCGGGTCTGT
-GGGTCTTGTGGAGCTCTCCAAGGTGCTGAAGCATCTGGTTCTGCAAGAAA
-ACGTTAAAACCAGTGGTTTTCAAATATTTCACTCCAAGTGCAGCTTTTAT
-CACCTTCTTTCTATTAACCCTGTGTTCTAAAATAAAATAGGTCTGAGAGA
-ATCTGAATTTAATGAGTGCTATTTGATAATTTCCCCACGATTTCTTGGTC
-TAAGTTGTAATTCCGCGGGCTGGGCCTTATGCCTCCAACATTCAATGTGC
-ACGTCCTTCTCTattttggctcactgcaacttctgcctcccgggttgaat
-taactctcctgtctcagcctcccaagtggcttggattacagatgtgcatc
-accacacctggctgatttttgtatttttagtagagatggggtttcaccat
-attggtcaggctggtctcgaacttacgaccttaggtgatttacctgcctc
-gtcctcccaaactgctgggattacaggtgtgagccactatgcccagctAC
-AGTTCCTAGCTTCTATATGTACTCAAAAATATTTGTTGAACTGGAATCCA
-GCACAGATTAGAATTTAACAAACCTGTGTGATAAGCAGGGTGACCATCTT
-GAGTTGAAAACTTCAGCCACTGAAAATAACATCAACAGTGTGATTAGAAG
-ACACCACTATTTCTTGAGGAAATAAATGCTTGCTGCAAGATACCCTAAAG
-TCCTTAAGACGAGAGTACTTACATCCTTACACCTTTTGCACAGCCTGATG
-TGCCAGTGAGAACTCAATTTGGAAAGCCCACACTCAGGCATTCAGGCCTA
-GGAGGACTCATCGACTCCTGTCACAACCTCTTCCCTGGAGCCTCCCTGTC
-CTTGCAGCCCTTAGAGGTTACAACAAATGCAATCAAATTTCAGATGGGCT
-GGATGAGCTGCATGGTCTCAGTTGTATGTGTGTGTCTCGAAGACTATGTG
-GTAATAAAATTGGAAGAAGAGACCAGAGGTAAGTGTTTTCCAGTTGTCAG
-GGATGCTCAAGGTTTACAACCCTGGGGAGGTCATCCCTAAGCAGTGGATG
-GTGCACAAATCCAGGGCACCATCCATGCACACTAGTGGGAGAGGCAAGAG
-GGCTCAGTCATCCTACCATTGGACAAATATGATGGCCTGACTGCTTTTGG
-GATACTCTTATTTATTGGTTTGTCACTGGAGAAAGGTTTTATCTTCTCGC
-CCAAACCATGCTATCTCACATTTCTGAGTTGCTTTGCCTCAAGTATTAAT
-ATAAGATGCTTTATTCATTCACATAACATTCCTGAGAAAGCATTTTATGG
-CAAATCCTAATCAATATATATTTTGGGGGATGGAGAGGACAGTGTTCCTT
-GGCATCAAAGAAATACAATACTAGTTGGCCACAGAGACCTTTGGGATCTG
-GAGGACTCTGGGGCAGGCACTTGTTCCGGGGATGAACCTGGATTGACAGT
-GGTCCTGGTGGGGCTGGACTTTACTGGCAAGTTGTTGAGAACTGGAAATG
-TGGACTGAAATGGAGGTTGGAGAGACCTGGCAGAAGAGTGGAAGACGGAG
-CAATGCTCTACACCTGCCAGGTATTAAAACGTGTTTGTTTCATTCCATGA
-AGTCCATTGTGCAGAAATAGCCCCAGTATTATATTTCATTAATTGCTTTT
-TGGGAATTCAATATAATGCtgtgtgcatgtgtgtgtgcgtgcgtgtgtgt
-gtgCAGGCATGCACTCCTGTGTCTGCATGGTTGAAATTTCACATTGCTAT
-TCACAGGCACACACACATACACCTGAGGCAAAAACTCATACGGGTCAAAT
-GATTTGTGTTGTTTACCATCGTGTTTACAATGCACAGGATTTATGCCTAA
-GGTCTGTTTGCTCTGCTGCAGCATTGGTCCCTGGGGTTGCTGAAGAAACA
-AGCTTACTCAAAGAAACAGAGACAGGGAGGAAGAAGGAGGAGGGGACAGA
-ATAGATGAAGGGGAGGGGTGAGGACAGAGCCTCAGGCGGGGCTGTGGAAA
-CTTGCGTCTGCAGGTCCAGGCAGTGCCATTTCATCACACCTCCTGGGGCC
-CAGGTCCCATGTCAGGGGAAGCTCAGCACCCCTCCCAGTGCCCAGGGTGT
-TGTCAGTATTCCAGATGATCAAGGAGCAAATGCTGCTGGGTCTGCCTTTG
-TTGAACCACTGAGGGAACAGGAAGGAGATCACATTGGGAATCGAGCCTCT
-CCACCATCCCCTACTTACCCGCTATACCCAGTGTTTCCTATTCTTGTCCA
-GAATACTGGCACACTTGAGAGCTGGTGGTCAGTGCAGCTGTGCAGCCCAC
-AGAAGTGTGGAGGGGGTGTGTTGGGAGAGCTGGGGTCAGCTTGTGAGGGG
-CATCGTTTAATTACTCACTTAGTCACTCAACTGACACTTATTTGGCAGCT
-ACTCTTTACCAAGGAGTCACTGTTACTTATTAGGGTTACTCAAGCAGGTA
-AAGCAACCTCCTGAATCTTGGACTTTGAGGAGAGGTGGGAAAGTGTCCCA
-TCAGGGAGCAGCCCCACTTTCCCTGCTGCAGTGGGGAGCCAGGTTCTCTG
-CTCTGTGTTTTTTCTAAAACTCACTCTGGCATATAATTCACATAAAGCTT
-CACCTAAGTAAGAGGGGACATTCTTTTTTTCTTTATAAAATAAGAAGTGA
-GAACTTATGGGCCTCAGGATCCTCCTCCACATTGAAGACATAGTGACTTC
-ACAGCTCTGTGATCTGCACTTGGAATAATTTCCTCTGTCACTGTCTCCAC
-TGGATGGTGGCAGttcatttgtccctccatctgtccacccatctgtccat
-ccacccaCAGACCTCCCGCTTGCCTTCATCCACCCATCTGTAGTTCCCTC
-CTTTCCTCCCTCTTtccatccattcattcatccgcccacccatccattca
-cccatctgtccattcatcagtccacccaccagtctgtccatttatccatt
-aatccatccatccatccgcccattcactcacccattcatctatccatcca
-tccactcatccatccattcacccatccattcgttaatctatgcattcgcc
-catgtatacatccatttattcactcactcccccatccatccatccatcca
-tccatgcatccatccatctgtccatctgtccatccatcTGTTTATTCACC
-CACTCATCAGTTGATTTATCCATTTATTTCtccacccaaccatccattca
-tccatccatctactcacccacccaaccacccacctgtccatccatccatc
-ttcccacccaccaatccacctgcctacccacctatccttccatccatcta
-tccatccatccatccattaatctatgcattcacccatgtatacatccatt
-tattcattcactcccccatccatccatccatccatccatccatccatcca
-tcTCTCTGCCTGTCCTCCAATCACTCACCCAGGCTTCTATCATCCCTCTC
-TCCTTCTCTTCATTCTTTTTCACACTAAGTTAATCTGTTCTTCTACCTGG
-GTAGGCGCTGGGTTTGGGAGGGGTTGGGGAGAAGCATGTGTCCCTGGCTT
-TCTCCTCTACAAACCAGAAGTTTATTTTGAAGATAAATGTGATTTAATGC
-CAGTGCATCAGATAGAGCCTGGTGCATGGATGCCACTCAGCCCAGTTACA
-GGAGGCCAGGGGTTCAGGGATCTGAAAGCCTGCATTCCTCACCTCATGTA
-ACTCTGAAAAGGATCCATTTCAGAAGGGTCCTTGAGCCATATTAACATGG
-ATGATCAGTAAAGATCAACCTACAGCTGCCTGAAGTTTCCCCAAAATCCA
-AAATGAGAACTTATTTCCTGTGCAGGATACTATCTAGAACATAGAAGCCA
-CCAACGTTCTCCTCATGCCAGCAAATGTCCTGCCCCTCTGGCTGCTGCCT
-CTGCAGTCTtgcagagcaggagctctccgtggtactgtggtggctctgca
-agcacccacacaggccaagctggcaagggcccaaccacagctaacctgcg
-tcaggtgagaaggcctcctgaccctcctggaagagggtgccagcatggtg
-aggagctgcctctaggcatttgccatgcacctcccctccctgtctgccct
-gggggctcgtaggatgcagatcctcctgccctctcgattctggtgatgtg
-tggggcttcctgccttgccctcttgggaatggagccacagatggtagacc
-tgtctggctgcagcctggattcaagtcctcggcagagggcgagccccagc
-tctgttgcactcatggcccttttgcttctgtgtggcccttttgcttcctg
-tgaggcaaggatggcaccttaggctcctcttcctttcagcatctatgtca
-ggaataaatctctggatctaaaagcagcttgtgttttcactggctgaggc
-agtaagaccttggccttgccttttctcctgtgtgcttgTTAGGGACTCTA
-GAATTTTCTACTCCATGTCCTCTTCATTGAGGGCTGTTTCCTTCCATTTC
-TGCAAAGCCTCTTCCCTGACCATGACACCTTTAGTTAATTTCACTCATTC
-TGGTCACTTCAACACTAAATCAATGCTTAATTATTGAGTCAATTATTTAA
-TCTTTCTGGGCTTTAGGAACCATTTAGAGTTGATCCCCTGCCTTTACAAT
-GAAAAGATAACACTCTCTTTCCTCCCTAAACTTCTGTAATAACTTTCTTT
-GATTACTTTATATAGAGATGCCTTATCCAAATATCAATCTCCATTAGGCT
-ATGAGTGATATCTTTTTCTTTTATTTATCTTCCACAAACCTTAGCACAGC
-TTTAGGCAAACAGTAGAGGCTTAAATAGTTGGTTTAATTAGTTTGAGCTC
-TCAGCACCCAATTTTAGTTCTCTGCCCCGGCCCCAGCTATACTTCTTCTT
-GGAGGCTGGAGCCTCATGCTCCTGTAGGCTATGGCCTTGCACCCAGAGCA
-ACTTTATCTGATCATGATACCAGATTCCATCAAAACCCAAGCAGGTTCTT
-ATCATGCTTCAACACGGCAAGCCTAGGGCACCAGACCTCAGCTTTAAGTT
-TTCTCTCCCCAAGCCTTCAAAACCCTCTGCCTGCCAGCCCACCTAGCAAC
-AGGTCCTTTTGATTAAATACCTTTCATCCCTTTATATCCTTCAGATTTTA
-CTCTGACCACAGACACAGTTCCTGCATTAAATGAAAAGAATAACAGGTAT
-AACCTTTCAGAATGTGTCACCAGGTTGTAAATCACAGACATTCAGTGCGC
-TGGGGGAAGTTAGGATCAGGCAGCAGGGTAGGGAGGCCTGTGAGGGTGTG
-CATGCTGGGTGGGACAGGAACAGCCTCAGGAGAGGGGGGGTGGCTCTCAG
-TGTTTGTGGGTGACACCTGCAGATGTCAAAGGGGGCTGTGAGGGTTCGGC
-CATCAACCTTCAATGTTTGTATCATGGACCAAAAATGCCTGCAGTGACCT
-ATGTTGTAAATCATTTTCTGTGTACATGGATCTCAAATTCATATTAAAAA
-GAGATCAAACAGACAAAAGCCAAAAATGCCATAGGATAAGTTGAATAATG
-CTTAGACACCCAGGGTGGACTCACAGAATGTCAGTGGAAGGCCAGGTCAC
-TTCTCAGAACACGTGAGGCTTTGCTGTGTCTGTCCCAAGAAATCCAGACA
-AGAGGCACAAAGCCGGAAGGATGTGGGCATGTCCAGATACGGGTTTCCAG
-GGAAGTGGTGCCAGGATCACAACTTAGTGTCTGGATTTCCAGAGCCCCAG
-GTGCCAAGCTCAATAGTTTCTATCTGATCATGGAGTCATGGGCATCTTCA
-GGTGCACGGTTCAGCTGAAGACTCCTCAGCCCCGCTTGATAACACACGTG
-TGCTCCGTGTCTGCAGAGGCCTCTCCTTCTGACTGGCCGAGGTTTCGCCG
-AGTTCTCGCTTTTTATAGAAGAGCTTCTTTATGTTTCATTTGGAAGCCGG
-CCTCTGCTTACACTGCGACGTCACTCTGTCATTTTAGGAGCTGCCAAAAT
-GTGGTCTCGCCCCTGTGTGTGCTTTAATTCATGTGAATCCAATTGCACTT
-CCCTCAGGAGGTTGCTTAATGTGGTGTCAAAGTTGAATAAATAATAAATA
-GGCCACATCAGGGCTCCCACGTCTGCAGCTTGTGGGGCGGTGCTGGTGGC
-ATCTTTTCCAGGAGCATATGCCGGCTGGAGGGAGAGGGGTGTGATGGCTC
-CAAGTCCAGTCCGCCCTGCCCTGGATGGACTCCCAGATCTGCCAATCCAA
-GGATGGGAGGGGCCCCTTCACTTCAGCACTTCTCTCTGTGTGTTTCAATT
-TAGTGCATGAACCAGCTCTCTTCCCCGCTGCCTGTGTGCACAGGGTCTGC
-AGCCCTCGACTAGTTTATATTTGGGGGCTGCAGGGAGTCGAGGTGATCAC
-CATTTAATCAAAGGATACTGGACTGACACGATTTGGTGGGACAGAAGAAA
-GAGCAAGCCTTCTTGCTGTCTTGAGAGCAGGTGCCCAGAGGACAGAATGA
-CTTAATTGGGCTTTTGCTGCCTCGTCTATCAAAGCAAGAGGCAAACCCCT
-TGGGCTTCTCCTAATTTGTTTGAAAAGGCAGGGCGCAGTCATGGAGTCCT
-ATGAGGCAGCATCTATTAGGGACGTGCACCGTGGGCCCATAATTCTAGGT
-AGTGGAGGAATAAAGGGGCAAGGGGCTGCTGGGGAAGACATTAGAGAAAT
-AGGTGAGAGGACCCCATTTCAGAATATAGATAGGAAGCAGTGGTTCCAAA
-TCCGCTCTTACTGGTGGCTAGAGTCATGCATGATTTTCAAATTTATAATC
-ATAGAAATTAAAAATAACACACACACACACACACAGCCACTTCCTCCTAA
-GTATATGCAGCTGTTTCATAGAGCAGGGCTCTATGTTCTAGATATATCAT
-CAGCATTCTTCCCACACATATGAATCCCTAGGCAGAGCCAGGAATGCTCC
-TGACCCCTGAGCAGTAGCAAAGACCCCTGAGAACTATTCTGAATTTTTAT
-ACTACTTTTTGCTCCAAAGAAGGAGTTCTTAACCTGGGGCCCTACATAAG
-CTTCAGGAGCAGAAGCCATGAGAGCCCCGAATGTCATACAAAACTGTAAG
-CACCTGCACAGGTGTATTTTCCTGGGGAGAGATTCCATGGGTTGTCCTCA
-GATCGTCCAAGGTGTGGATGGGGTCTCCAGAGCTGAACCCAGGCTGCCTC
-CTACACCACTGACAGCCTCTCTGGGGAAGCCCCAGCTGGGTGTGGGAGCT
-GGGTTCTGCACAGGAGCACACCTTCCGCTAGCATTACACTGCGTTGGCAT
-TTCTAGAAGGCAGCGAGAGATGAATTATTCCACAACAATGGGAGTCTGAG
-ACAATTATTGTCTGATTTCTCTAACTGTGGCGTGGCAGCTCCTAAACCCA
-AAAGACGGAAAGCAGCAGCCATAAAAGACACATTAAAAGAATATTAAACC
-ACAGGAGCATGGCTACTTCTTGAACAAGAGGCCGCCTCCTCATGGAGTCA
-GCTCCCGAAAGCAGGGCCAGGGATGATTCACGGGGATCTGAGCTGCTGAG
-GCTGCTCCTGCCTGCTGGGTGCCCTGACACCCCAACATCTTCAGGCTGGG
-AGTGCAGTGGTCAGATGTATGACCACCTGGAGTGGCCATGTGAATAGTGT
-CCAGTACAATCTACTCCAATTCCTTTCCCTTCTCTTCTCTATAAATCAAA
-CCTCTGCAGACCCGGGGATCCCTCCACGTCTGAGCAAATCACCTTGACAC
-CAACACCGAGGACCCTACTGAAAACTGAGTCCCAGAGGCATCCTGGGTTC
-TGCTGCATCCCACCTAACTATAGAAAAAAACAATGGAGGGTCAGAAAGAA
-AGTGGGGGAAGCCAAGGCAAGCATGCACGCACATTCTAAAAAACCAAAGA
-CAAGACTACACAAGAGGTTGAGTAAAGCTAAAGTTGGAGCTTCGCAAAGG
-TAACAATATTAGACAAGAGAAATCAGAAAAAGGCAGAAGCCACCAAAAGC
-AGCATTAGGAATGACCTCAAAAAAGTGGACACTTTCACAGAGAATACCAC
-TGTGTAACAAAGCTGGCTGAAGAGCAAACAAGAAAATAATGGAAGAGATG
-GACAGCCAGAAAATACGTCCAATGAGTAGTTCAAGAATTTTCCTTAAAGA
-CCACTCCTCTGACCCTGAAGTCCATAGACCCAGCTGGACATTTTCCCTAG
-GATGACTCAAGGGTGTGTTGACCTGACCCAAGAACTATTTGGCAATGCCC
-ATGGCCCCAGTCCTCACCCAGCCTGGCACCATCACCATCCATTCCATGTC
-CAAAGCCCAAAACTTCAGTCACTTCTGACCTCTTCTCGCACCCCTCAGAG
-CTTCCCTCTAAAAAGGTCTTGGATAGGGGCCCTTCTCATCACTGTCACTG
-TGCACAGCCTCCTACTTGGGGATGAATGACAGCACTCACCCCACATCCAG
-CCACTTGCCTGCTcttcccaggctcctttgcagttagggtgaggtcatgt
-gactcattttggccaatgatgggacagcataaaggatgagggttgctcta
-gacagaggcagccgaaagccagtgcattcctttgtttctacctccctGGA
-GGACAATGGGGCACCCAGCTCAGCTGCAAAGTGGAGGAAGACCACCTGGC
-ATGCATAGGCCTAGAGTGGGCAAGAAATAAGCCTAGTCTTTTGGAGTTTG
-CTGCTGAAGTGACCCATCTATCCTGCCTTActtgcctggaattacaattg
-tatcttcctcactggtgtctccgcagccactagaaactctctccaattca
-tttttaataatctgctcagagtaaacttttctaaatgcagatctggtcta
-tgttcatgtgcacacatgcatgtgtacatagacacacacacaaacacaca
-cacatgcacactctatggtggcttcccattctccttagaaaatggcatca
-tcctgtccatatcctactaggaaatcaccctacaAACCCCTCAGCCCGCT
-TGCCCTCACCCACTCTGATGTCCCAGCATTCAGCCTGtggtatgacttgg
-ctctgtgtccccacccaaatctaatcttgtagctcctgtaattcctatgt
-gctgtgggaggcacctggtgtgagatgattggattatgggagcaggtctt
-tctcttgctgttctcatgagagtgaatgagtcttaccagatctgatggtt
-ttaaaaacgggagtttccctgcaaaactctctcatttttttgcctgccac
-catccgcgtaaggtgtgacttactcctccttgccttccaccatgattgtg
-aggcctccccaaccaagtggaacctctttcttttgtaaattgcccagtct
-tgggtgtgtctttatcagcagcatgaaaacagactaatacaACTTCTCAG
-CATCCCCGCTACAGCCCTCATGCACCAGGTTCATCCCCTACAAGCAGTAT
-CTAGCCCCACTCCCCGCCAGTCTGTTCTGTGCACCCATGAAGCCTCCAGA
-TGCCAGCTCAAGCGTTCTCTCCACGCAGAACCCTTCCTTGACCTCCCCAC
-ATTACATTTCTTTATTGCACTCTCACTGAACCATGCTTTTACCTTAAAAA
-CTCCTATCTTTGTGTGTCATTCATAATTAATCAACATAATTACTTCTTTG
-ATATCAGACTCCCTTTTAGAGTAGGAACGTGGCTACTTCTGCTCAACTTC
-ATATTTCTTAGTACTCTGCACGTGGTTGAAGCCCAAAAACTCTCTGTGGG
-ATACTGAATACACAAGAACAAAGAGCATAACATGGGGAGTTTCTGAGTCC
-TTCTACCCTGCTTTGCCTCATGCTTTCCATGGCTGAGCCAATTTGGGGAG
-GTTTTGTCATCCTGTAGGAAGGACAGCCACACCTTCCTAGTAATGGGCCA
-GGCCTTCTCCCTAACACAATGCACTGTTTCTAAAATCTGACTCACCTTTT
-GCAATCAATCTGTCGGTGGAGATTCTCATCACTAATTTTGGGCCTTAGTA
-TGTTGAGCCCATGGGCCAATTCTGAGCCCATGTGCTATCCCATGGTAGAG
-TATAGAATCTGAGAAGCTACCCAGATCTGTGGCCCATGCAAGGAAGAGGA
-CAAAGAGGACTCCATCCTGCCTCTGCCAGAAGTCCTCTAAGCATGAGACA
-TTTCCCAGAGGGTTGATGGACTGCAATGGTTACCAGGAACATCCACTGCA
-GAAAGTTGgtcagggtcaggatcctggaattgtgacttaccaagtgaact
-catgttgcacaagttttctatgccttcatccctcaacaacaacatctacc
-ttagaaagtgttctgaagatcaatcaagctaattcacgcatgcaaagtac
-ttagcccagtgcctggcacagcctacttgcttaacaaatgttCGATGTGG
-TTCCTCGCCACAGttgggcagctctgacaatttttcctctttctgaatcc
-acatctgttaccctgtaatttccttccatctgtcttgttccaatccctat
-ggccacgcagaatagacctgttccctttgcacatgtcagcctgtcagagg
-cattgtaagacaggaattgtctccttccaaaccttgtcttcccGTCTTGC
-ACCTGACCCAATTCCCAGGTCAGCTTCACCCCTGTTGAATGCTGCGTCGA
-GCGCCTGGTGTTGTTTTGTGACTGCTCTTAAGGCTGGGGCCCTTTGCTGT
-TACCACTGCTATGACAGATTTGGATCAGCCCTCTGCTTCCATCCTCCCTG
-GAATAGTTATCCTGAGAACTCTCTTTGCATCCCTACAAGATATATTTTTT
-TCCTATTTTGTTTGAGCATCAGATTTTCTAATGAGATGCAAAATTTCTAA
-AATTTTCTTCCTGGGAATAAAGTTGGTTTTATGCAAGAACTCAGAAATTG
-ACCCATTCCACGGAGCATCGTGTTTGGATTGTGGGAGGGAGACATTGTGA
-GAGTTTCCCCCAGAACCAGCACTGAAGAAAATGCCCTTTGCCAGATACGC
-TACCAAAGGAGCTTAGCAAGGACAGGGGCCAGCTAGTGTTCTCTGGACAT
-GGCCTAAGAAAGTGCAAGGTCTCCTGAAGGGTTTACAGACTTTGGTCTTC
-TTTTGGCAACTGCTCTGTGATGGTTGAGCCCCCCTGCCGGTGACTCCTTC
-CCCTGTGGAGGAGACTCTGCATCACCTAATAGTTCCAACGGCGACACGAT
-GAGCCCTGGGGCCTGCACACCCCCAGGGCTTCTCCCTCCATAGGAAGGTC
-CTGCTGTTGAGTGTGCTCCTCCAGCCTCCCCCTTGGTCACAGGACAAGGG
-GTTCCACCCCTGCCTCCATGTCTCGTCTCTGCTGTGTCTAGCAGCTGCTC
-CTCACTCCTCCGCCTTCGCTTCCAGGTGTGAGAGCTGCTGCCCCTTCTCC
-CTCCACAACTCTGCCTGCAGTTTTCACAGGGCAGGACCTTCCTGAGGCTG
-AGGTCATCTCCAGGTGGGCCTCTGGTGGATGTCCCTGAACACAGGTGGTT
-TTCTCCACCCTGCCTTTAAGTAGCGTCACGCTTCTTCCAAACCTTATTAC
-CCATGGCGTCTCACCTGAGGAAGGTTCCCTATGTATCTGTGGGCTTTCCC
-TATGTGGGGAATCTGCACCGTGGCCATGTGATACACAGCTCATTATTTCC
-CAAAAGATCTGGGTAGCTTCTCAGATTCTATACTCTACCATGGGATAACA
-CATGGGCTCAGAATTGGCCCATGGGCTCAACATACCAAGGCCCAAAATTA
-GTGATGAGAATCTCTACCAATGGACTGATTGCAAACGGTGAGTCAGATTT
-TGGGAGTAGTGCACTGTGTTAGAGAGAAGCCTTGGCCCATTGCTAGGAAG
-GTGTGACTGTCCTTCCTACATGATACATGCGATAcacagctcattattct
-cctcttttcggaggaggattctgagacttgcggagttggcagacttgcct
-aaggtcacacgttgagtttgtggcaagatttaaatacaaatctgctggct
-tgaaTTCTAGCAGACCAGGCCACACAAAATCTAACAGACTACAGCACAGT
-CCGATGACACTGCCAAAGTCAATATCCAGAAGCAGTGCCATTGTCCTTCT
-CCATTGCAGACAAGACAAAACAGCTCCAGAGGTGTCAAGATGCAATTTCC
-CAATATCAGACAGCAATGGACAGAGAATTCTAACCTAGCATCTCCAGTTT
-CCAGCTCAAATCAGTCTCCATACACCATAAGCTACAATGCACTGAAAATA
-GAGGTCACCTGATGAGTCCATCAACAAACACACTGGGCTGAGCAACTCCT
-CAGCACCAGGATAGAGAAGGGAAAGGAGCTCCCATCCTTCAAGAAGAGGT
-AGCAAGGCACCACGGGGCTCCTGGCTAGGGAAGGCCATGTCACCGACAGC
-ACAGTCAGGAGAGAAATTAGCATAGTGCCGGGAGAGGGCTTGTCAAAGCT
-CATGGGTAGACTGGATTTATTTATTTTTACTCAGCACACATACagcactc
-actgtcctccaaacactgtaataaatgctttacaaaattcgcacccaaac
-ctcaaagtggcacacaggaggcactcttcttatccctactttgcagatga
-ggaaattgaggcaaattgccggtttcagttcattgttcagggtcattggt
-ggcaaagggcatctgggccagactttccagtctcctCAGAGATGTAGGCC
-ACAGTGCCAGTGCCCAGGGTGGGGGTGGTGGGAGGGGCCCAGCAAACAAG
-TGCATGTGTGCCACGGGACCCTTCAGAGGGACACCCCTTCCCACTCCTCC
-ACTCGCTTCTCGCCACAGTCCTCAGAGGCCCAGACCCTGTTTCTCCAGCG
-TCAGCACTTTCCACGTGGACAGTGAGCACTGAACACAGCCCTGGCACCCA
-CACAGGAGAAGCTTGTAACCATGCCGCCCCCAGGCCCGGGAGCTAGGGAA
-CCAAGGCAGCATTCAGGGCGTGGGTGTAAGTGAGAAACTAGGGAGGACCA
-GCCTAGCACCCCCGGAACCAGGGAAGCCCCCAGCTGAAGAAGAAGGGGGC
-CTCCCTCCCAGACCCTCCTCCCTCGGGCTGCCATGAACACAGCTGGCATG
-GGGGGCAGAATTCAGGCTGTCAACATGAGGGCTTTTGACAAGACTGGTTC
-TGACAGCCTCAGAGAGCCACACACATCCCAGCATCGTAACTATTTCTAAC
-TTTGTGCTTCTTGTCACCCAGAAGCAGGGGAAACAAAGCAAAGCCATTTG
-GTGAAAGGTTTGGGCAGCTGCGATGCGGTGGATGCATCTTTGGGGAGGGG
-CAGGGGGACCATCCATGTGGGCTTCTGGGGCTGTGGCCTCTCCACGGACA
-GGAAGCCAGCTGATGCCCTTGCCCTGGAGCTAGGACAACCCAGGCCTTCC
-TGAGCCTCAGATGCAGGGCAGGGTGCTGAGCTCAAATGAGtcaatgccct
-ggctcacccgtgacatcatctgggaagatcttcaaaatacatatggctga
-atccactcctagagctggggaattgattgctctggggtgtgccctgggaa
-ccaggattttttaaggtccctgagtgattccaataaacagcaaagtgtgt
-caatcactgGATCAGGTGACccacaaacacagtatgtggtttggggcaag
-ctattccttcctctgagactcagtttccctttctgggaaataagcatctc
-agactaaatcatttacaagtttatttctagcttagcttctctatgattTA
-AAATGACACTGTCCTCATGTATGATTCCCCGTATAACTCACAATTTCTGG
-CAACTGCTGCTCAGATAATTATTTTGTTGGCTGGTGAAGAAAATAACAAG
-ACAGGAAAGTCAGCAGCAAGAATTCAGCTTTCTGGCTGGCCAGGCCTTGT
-GGGTCTGGTGGCGATGAGCCCGGCTGCCAGGCAGCACAGCGGCCGCCCGT
-CTTGGTGGGAAGCGCGGCAGCACGCGCGTGTGGAGATGCATTGATGTATT
-AAGTCTGTCTGAAGTATCTCCCACAGTAATCTCATCTGGTGTTTTTTCTG
-TCTGAATTGCCAGCGAGCTACTGATTGTGACATCCACTTCTTCACTCCTT
-CGCGTCCAAAGCAGCTCTCGGAGTCTATTATCCATCATCATTTCTATCCT
-GAGTGAGCCTGCGCTGCCTTTAGAGCACAGAAAAGCTTCATGGGGAGTTA
-GAAGGGCTCTTTCTTGTGATGAGTTTACAGAGAGATCAAAGCCAAACCAA
-AGCACAGGGAGGAGGGCAGGGGAGGGAGAAGCCATTCTCACCTGTCCTGC
-CCTGCCCCAGCCAGCCTAAGACCAGGCCTCCAGAGCCCTGCCTGGCCCCT
-GCAGCTGCCTCCTCCGTGATCTGCCGGCCTCCAGTCCCTTCCTGTTGACG
-CCTTCACTGAAGGCCAACAAGACCTTTCTGGCATTTGAATCTAATCATGG
-TCTTCCTTTCTCTAAAATCCTCAGTGGATTCCCCAAGACCTTCATCAACA
-CCCCTAAAATCTGAACCCCTAATCCATGGCTCAGGGAGAATCTCCAGTTC
-CCCACCTGGGGCCTCCCCCAGGCCCTGGGAGTTTCAGGGATACATAACTC
-CCAGAACTTCCCTACCCTCCCAGCTCCCACCCAGGCCAGGCCTCTTGAAG
-GCCGGTTCCATGTGAGACCTGCAGGCCTCAATGTGAGACATTGAGGAGAC
-ACTGGGTCTGGATTTTAGTAGTGGAGAGTTGTTCTAAGTCCTCCCCCGTG
-TCTTTGCCTGAGGAGGCCCTGCCATTCCCCAAGTCCCAGGTCAGGCCTCA
-TTGACCCTGTGAAACCTCCCACCGCCAGGCCTCTCTCCCTACAGAGCCAA
-GGCCCACTTCTGTAGATCTCTTCTTTCCTTTGAGCCAGCTCCAGAGTAGC
-ACCTGCCGTGGCTCATGGAGCTATTTCTGAGCATGTCTGAGCCAGGACGG
-CAGTTTGCCCATTGCTGTGTGCCCAGTACAGAGCCAGGAGCCCATCTCCT
-GCACTCTGCTCCAGCCCTCTGTGCGTGTCCTGGCAGCTGCCCCAGGATGC
-GTGTGTGCCCATGCTGTAACTCGAGGCCCCCTTTCTGCACTGCCCACCTG
-GATAAACCCTGCTCCATTGTCAAGACTTAGATCAACAGTCACGGCTGTGG
-AAGGtgttacgggttgagctgcgtctcccaaaaagataagctcaagttca
-aagccctagtacctgccatgtgaccttatttaaaaatagggtctgcggag
-atgaagtggagtcaagaaaaggtcctagtggaggaggatgagccctaatc
-cagcgactgacatccttagaagagagaaatttaaacagagaagacgcagg
-aacgacggccaggtgaagccagtggcagagaccggagtgaagcgactatg
-agccaagggttccagagaatgcaggcacccccatgcccaggagctgggga
-gcattttccccgggaaccacgcctttgtgttgaacgtccagcctccaaac
-cgtgagacaatcgctttctggtgcttcaaccactcaatggtggcacttca
-tgacagcGGCTACGGGAAGGTGCTGCAGGCTGCCCGTCCCAAGGCGGGGT
-CCCAGGATCCTCTGTGTCTTCTCTCCCTGTCAGGGTGGCTTTCAGTCAGC
-CCAGAAGCCTCCTCTGTGGCAGGCGAAATCTGAGCAGTGTGGCCTCAAGG
-CCCTGGGAGGGGCAGATCAGATCACATAAGGCGAGCACCGCCCAGCATCC
-ACCCACTGCGCCTGGGTGGCCTCACCGGAGACACCAGTCACCCAGAGATG
-TGTGGAGTGTAGGCCCTGACTTCCAGAAGCTCAGAGGAGGCAGAAACACA
-CAGCAAAGACAAACCAGAGAGGGTCCTCTCTGTAGCAGGGGGGTGCACAG
-TGAAAGGGGTGGTGTCCACGCAGGGCTGGTCAGGAAACCAGGTCCCTCCA
-TGGGAAACTGAGAGGTGACTGGGGACTCACATGGACATTGGGAAGCCGAA
-GGAACATGGCTCAGGAATGTCACCGCAGAGTTCAGGAGAGCTGCGCCCTG
-CAGCCCAAGGGTATGGTGGGTGTTGCCTCAACGCTCCCCTGGAAGTGAAA
-AAAGCAAGGAGAGTGTCCACGTGCCCATGGAGAAACTGTGGGTCCCACAC
-CTGCCTGTATGCAGGGCTGTGGCTCCTCTGAGAGTCACGGTCCTGCTCCT
-CTTCCTCCAGCCTCACAGGCATCCAGATCATCACCAAATCCTCACCCACA
-GGGGAGGTGATTCTGGGAGGCATAGCTCCTGCAGTCTGTTGTCCCTTGGA
-GAGGAAAGACGGTGGTGATGGAGTGACCGTCGGGCGCCTGGCAGTGACCA
-CTACTTGGTCATCTGAGTGCCTGGGCCACCCCTTTGCCTGCCCTGAACAT
-CCAGGTAGAGGGGAGAGCATTTCAAACTTAGGTCCCACAAGACACAGCTG
-AACCTATGACTCCAAATTCACACTCAGTCTCTGAAGAGGGAGACAACAAA
-ACCCACAGTGTCTATCTTTAGGGGAGGTTATTTCTTGGGTTCTGACACAG
-CCCTTCTCTGACATTCTGTAATTAAATCCTGATGTGTAGGGTCAACACCA
-TGACAGTACCTTACATTGGGTGCCAAGAAAGGCGGGAAGCAGGGGAAACA
-AAGCAATGTTTGAATCACAGGTGAGTGGGCGTCTTCTCTTCCACGGCAGG
-GTTCGCTCCTGTGAGccttgtttctgcacctggttatttaacaccgtagg
-ttttcataccttctttcttccattaacccatgtcctctctgccttcacct
-gggtcctcaactagctgtagatctgtgcaaggtgaagggacctaaacctt
-tatctccaaagggcctgggtcgttagtggccttgccccagttggttgtat
-atagttgtccactaacacttccagtggacccagggccccacagtgcgctg
-caggaccctgggcttcgggtacactccttcctgcccccatggcggcctct
-gggcctcctcttggtcaggagcagtcatcccagccagcacaagagccccc
-cactgcctatggggtcagaggcatggaggaaccaaaggcgctggatggcc
-aggctcagcttccaggtcaatgggcctttgctgtctccctggtacacaca
-tcttccttgggagctgaaaccattaagcctacagagcccagaatcaggag
-gacaaaatgcacatgttttgctcatgtatgatctgaggtcatgggaaaag
-aaacctctcccagtcactttcctcatccccaaacccatggatttcttagc
-tatgggagaaatagcatcgtttactggGCATTAGGtggtatgggttgaaa
-tgtgtcccttaaaaacaatatgttgatgtcctaaacttcagtacctgtga
-atgcaacctgatctgcagacatagtcaagttaggatgaggtcgttaggct
-gggccctggtccataggaccagagtcattataaaaaggggaaatttagac
-acgaagacatgcacggagggaagacaacgtgaagagacacagggagaagg
-ccatgtggggattggagtgaagctgccacaagccaagggatgtctggggc
-caccagaagctggaggagggaaggaaggctcctggccctggaggtttcag
-agggagcgtggtcctgccctgccgacactgccatgttggatgtttagcct
-ccagaacttgagggaagacatctcggctgtacgagccattctgttgtggt
-ccattgttcctgcatccctggaaCATGCTGCCGCAGAGGTGATGCCATGT
-GAAAGGCACAGCAGAGGGCGAGGCCCCAGCATGGCTGCagacggaggtct
-ggacagaggcaagaaacgcagagctgtgtccagagaaaatgaccccgcca
-ccaccgaggataaaccgctgctccctctgggatggcagtggtccagccca
-atgccttcccaccagaggagtgcctgggtcaccaaggaacaatgccatgt
-cagTGTCCCCATGGGGGagaggcagacgggagagtcagagccagagatgg
-agacgtgaggctgtaagcagagttcagggatgatgatgggccatgaactg
-tggagtgtgggtgactccaaaaggtggaaaaggcaagaaaacggtttctc
-ccaggagcctccagaaggaaccccagccccacccacgccctgcttgtatc
-ccagtgaggcccactgtggacatttgacctcagaactgtaaagagaatca
-atgtgtgttgtttcaCCGCAGCAACAGGAAACTAACATGcttggtgtttc
-acagttagatttttttaatccccactagggcccagcagcaagccagaagc
-tatttctcaaaaAACAGGAGAGGGCGTGTGTTGCTCTAAAATCTTGAAGT
-TCACCTAGGCctatacagacgccctctcaaccacagaaaccccaagtgcc
-accaatctgcagcctctcagagatccagaggcagggcagcttgcatggag
-cacaagccgttgcagagccttctctttttctgggcaccactcaaaactag
-cagcctttgatttcttggcaaataggccagagcagtgagcccacggtgca
-tggcttgcctccaaaccctgagactccacacccacgatggattgggctcc
-tcatggctacagtgaccagatgcaatagttagcccatctccttggaggga
-atattttggcatatcgcagaccactgaatccctagagacctcacgcacat
-ggcagcttcctgcacctttagagaatgcagttccTGGCATTGGCCCTACT
-CAGGCCATGGTGGAGAAGGACAGGGCCGCCCCTGTGCTTACAACACAGAG
-CATGGCCCCACGAGCCCAGGCAGGAGGGGAGACGTACATGGCTCACATCA
-GGAAAAGAGAGAACCAAAGAGCCTTCAAGACACAGAGAACAACCAGGCCA
-AGTTTGAGACCACCCAACCCATCTCTGGCAACAGGTAACACCTGGGGTGG
-GGGCCGGGGGAACAGTCTCCAGGAACTTTAAAGTTTCCAGCGGAAGGTGA
-GGGGGCAGTTGGAGATTGATTTAGCTACTGGAGTGTTTGTCCCAGTTTTT
-GACTCAGAAAATGTTTGAAACCTCCTCCCTGTCTTTGAAGATTTCCAGAG
-AGGGGAAGACCCACACCTCCTCCGCACGGTGTTTGGCAGCTGGGCCCACT
-AACGGCAGTCCTCTTTCAAGTCCTCACTAACAAGGAGCCTGCTCCCCCTG
-TCACGTTTCTCATTTTACACAAGTAAACATCTTTTAATTGAAACTCCTGG
-GCATTTAACATTATTTATAACTCCTCAAATTAAAAGCCTCATGGAACTCT
-GGTTACATCTCATAACCGGTGATTCCCGGACTGCTCCCTAATTATTTGGG
-AGATGTTGTGTAGCATCAGTAATTATAGGGTTGATTTAAAACCCAGTGAT
-CGGGGTTGCCATTTCAAAGGGAGCCAAAAAGGCAATATGCATTTGGACAT
-CAAAGTCTCTTCTCAAGAGGAGAACCATCCAGGAAGCGTCAGAAGCCAAA
-CTTCTAAGTTTTCACTTAATCGACAACAGTCATCGTGCTGGAATTATCCC
-AGGCCTTGCCTTGTTTTTGAATCTAATATCGTCTCCATCCTTAACCTCAA
-CGGCTTACGTGCATGTGCTTGGACAGCCTTCCTCTACCAAGCAGCACCCT
-CCCTCTATTTGGAATTTGATGAAAGTGGCAGCTCACAGCTTTGCAGTGCT
-TAAGAACCACCTAGGAGCACCTGACAAAACCTTTACGCTGTGGGCACTCA
-CTGGAACCATGGGGTGAGGCCTAGGGAAGCAGCATGGGTGAATCTGATGT
-GTCCTCCCAACCCCAGACTACATCCCCTCCAGGAAAGTCAGGCTTAGATA
-TCCCTTGCTGTGTTTCTGCCTTATCTTTGCTGAGACGATGGGCTCCCCAG
-GCTTCTGGGCACAGCCACTGTGCTGTGGGCATTACCGATGGTCCCCTGGG
-CTTTCAAGATAGGTGGCAGGAGGTGAGATAAATGTTTGAGTCAGAAAGGC
-CTCAGCTTGAGCTGTATGGCTTCAGCCTCATTTTCTCTGCACCGTCTGCA
-GAGGCCTGTCTCCTTGGCAGTGCTATTTTAGTCCTTGTAAACACAGCCAC
-CAGGGAACAAAGGCCATCAGAGCGCTCAGCCTGGCCCCACGGAAACCTCT
-CCAGGAGGCCATTCTGCCTGCTCACTCCAAGGGCTCTGCCTTCAGGTCTG
-CCGCCTGTGCCGCCCCCTGCCCGCTCCTCCTGTGCTTGAAATCTCTGTTC
-ATTGACTTCTGCCCTGTTGAGCACCTTGGAGAGGTGACCCGGGTTTAAGG
-ACGTTGCAGGGCTCTGGCCTCAGCACTCTGTTTCAAACAGGCCATTGGCG
-TTAACTTCCACACTTGACCCACAGCAAGAATAAGTGAGAAACATCCTCTA
-AGAACTAGGACACTGTTCCCCGAGTGGAAGAGGTCGTAACACATCCACCT
-TACTTGGCTGGTTTCAGGgtagaaccgaaaattataaagctttttgaaaa
-acatacgagagaaaatttgggggatctggggctgggcaaagagctcttag
-atgtgagcccgaaagcacaagccctcagaggaaaaatgatccactgaacc
-tcatcaaaattaaaaatgtttgctttatgaacaaaactgttaatggtgat
-aaaacaagctgaagcattggacgaaatatttgcaaatcacatatacaaca
-aaggactggcatcctaaatgtatTTTAGCTGGAGGTGCCCTGTTGACGTC
-CAGCCCACGAGCCAGGTGGGTGTGTATGTCCAGCTTCTGCCTCCCATCCC
-TCAGCATCCCAGCAGAGGCAGAGATGACTCACACTGACTCACTGCGAGTG
-GGTGGGGTGGAAGCTTGGGTCCCCCTGGGCCCCACTGATGGCTTCTCAGC
-TCCCCTAACTCATTGCATCTGAATGGACACCTCTGCCATCAGGGAGGGAG
-TAAGCTGAGGGCCAACTTACCTCTTTCAAAGGAGTTATGTGGGGGAAGTG
-GGGTGTTTCCTAGTTCCAGCCTGTAGCACTTATGCATTCTCATTGATGTC
-GGGTGGGGCTCAGTCCTTCTGACACCATTTCTGCAGGGATTCAGACCGCC
-AGCTGCTTCTGTTCAGCATGGTTGGGGCACAGTGGAATGAAAGATAAACT
-CTCTCTGGGGCCCCACAGAAACTGCAAGTGgtgtgtgtgtgtgtgtatgt
-gtgtgtgcgcgtgtgtggtgagcatgtgtgGTTTCCCTTCCGAAGAGTGT
-TTAtgttaaattttgtcaactgttctcttcaagtaatataaaccagtgat
-ttgtttattagcctggtcatatggcgcagtacattgattttgttaatatc
-aaatacctctcattcccaggacacacttaacttggtcgtggtatattata
-cgtgtttatttatCTCTATGTAAATATAGCTtatatgtatataatacaaa
-tatataacataaatgtatatttatatgtatatatttttatataCAACATT
-CATATATTTGCATtttatatatattgccgggtttatttagttcctatttt
-gtggaatatgtctgtgttcatgcattttgttcctgagggatgttctgtat
-taatgtttgtctgtttttttccactgtctttgcctagtttcagtgtcatg
-gaaatgccaacctcataaaatgagttgggaaatgtttccttttctgtttt
-ctagaatagattgtgcggtgtctcctttaactgtttcagagattttatca
-tgaaaattctttcacctggagatttatttgctaaggggatttaattggga
-atctatactgtattaggtatagcatgtgtttggttacctatttcatattc
-aatgtaacttggtactttgtggttttcaagggaattagacatttcatctg
-cttgtcaagtgtgtgtgtaaagtatttgcagtattctcttgttagccctt
-taatgtctgtgaggtctgtagtgatttctcttattagccttttaatgtct
-gtgaggttggtactttgtatcttctttcttattttctttttctgccttgc
-tatagatttttcaatcctattattcttttttttttttttttgagatggag
-tgtcactctgttgcccaggctggagtgcagtggcacaatctcagctcact
-gcaacctccacctcccagagtcaagcaattctcctgcctcagcctcccga
-gtagctgggactacaggcatgtgccaccatgcccagctaatatttttttg
-catttttagtagagacaggatttcaccgtgtcagccagggtggtcttgat
-ctcctgaacttgtgatccatctgcctcagcctcccaaagtgctgggatta
-caggcatgagccactgcaccccgacaatcttattattctttttaaataaa
-caaattggcttcattgattttatctgttttttgtggttttaattctatca
-atttctacttatcttcattatttcctttcttctactcattttgaatctat
-tccttatttttAGTTAATACtttttaattttagtttaagtttatttttta
-tttttagttattataGTTAGTTAATAAACCACAAAGATAATTTGTGGTTT
-CAAGTTGTTGAAAGTCACAAGACATACCTATATATTATTTTATCAATAAG
-TGACTCTAAAAATTGTTCAAAATCCTTTTTTGTAGTTGAGAAAACTGTTA
-ACTGGTCTGTCCTATTTCTCAGAAGTTCATATGAATGCAGTGAAATCTGA
-GAAGCCAAACCGTAAAATCCAAGGAAGCATGTCTACACAGAGTTCATAGA
-TATGTGTTTACAGGATGTTATATGAAAAAACAATTTTGAACAAAAAATTA
-GTAGTAATAATTTAAAATTATGCTTGTGTGCTGATTTTAATGGTAATAAC
-ATTGCTAATTTTACTTTTCTAAAAtgaggtgaaaacttaaattattgatt
-tttgcccattcttatgtaatgtcagctttcagtgctatacattttactct
-aagccactgctttggctgcttcccacacagttttatgtgttgcattttaa
-ttcatgtgttgcatttaatttttttatgtgttgcattttaattttcattc
-agttcacaatttttttaatttctcaaaagttttcctctgtgactcatggt
-ttctttaataatacgtgctttaatttttatgtgtttgatgagtttcatat
-taccttacgttattcatttctagcctaattccattatggatacagaagat
-gctttgtgataaataaaatctattttgtgataaattaaaaatacatttat
-tttttctgatccaggatttggcttattttgcaccttgtgccctttaaagt
-atgtttattctgccaccagtagtgaagtattctatacataacaattagat
-tcagttggttgatggagtttttacattcttctagagctcacttagcttct
-gtttactagcactatttgccactgacagaagagtattgaagtctccaacg
-gtgtgaatcagtctatttctttcttttttttgtttttttttttgagatgg
-agttttactcttgttgcccaggctggagtgcaatggcaccatctccactc
-attgcaacctctgccttctgggttcaggtgattctcctgcctcagcctcc
-agagtagctgggattacaggcatgcaccaccatgtatggctaattttgta
-tttttagtagagacagggtttctccatgttggtcaggctggtttcgaact
-cccgacctcaggtgatctgcccaccttggcctcctaaagtgctgagatta
-aaggtgtgagtcacagtgcccagccaaatcagtatatttcttatttcatt
-tctgtcagtttttgctttatgcatttttaagacctattattaggtgcatt
-caagtttatgatgttatatattcttggtgggttgatattttattatgttt
-tgttcctctttatctctgggagttttctttgttgtgaagtataatttatc
-tgatattaaaattgccactTAAAGTGGAAAGGGGAAATCTTGTTAATATA
-CAGgtctctttcctctcacccctttatgttgtaatcatcttactattaca
-tctacatacattgaaacccttatcagaaaatggtaccactttgcttttga
-ttgtcaaacctagtttaaataactcagtagaaaaaatagtctattgtatc
-ttgccagttagttatcattttcattgccaatttttcattcctgagtttcc
-aagttttcttctggcattatttttttttctgaagaactttctttataaat
-tcttttaaagtaagtttgcaagaaataaagtctcagttttccttcacctt
-aggatagcttgatttcaccttattcttgaatgatattttcactgtattta
-catttttcataaatagttctcttcttcagcactttaaacatgttgtttca
-cctccctctgcctttcataatttatgaatataaatccacagttaataaaa
-ttgttgttattccaaaagaaatgcatgcatcttctctggatgctatcaat
-atttttctattattcttaaatgttggcatttttatcatcatgtttttggt
-tgtagatgtcttttctttttaatctttttttcctctctttttcacattgg
-ttaatttctattactctattcttggtcatctccagcctcctattgatcct
-acttagtggataacttgggttatcatcgttttaagttataaaattgttat
-ctggttcttctttatatcttctggttctttgttgtggttgcctcttttcc
-atttgtttcaagaatgtttatgcttacttgttggggcatatttataatag
-ctgttttacagcttttgttagatatgtccaacatctgcttcatgatagta
-ttgccatctgttgtttattttcttgtaaattgtgattttcttggttcttt
-ttatactgagtaattttgggctatatcctggatgttctgcatatttcatt
-atgataagctgagttgtgtttaaatcctatttaaacatcaaaaatgttga
-tgtttttgttttcgttagcaattgcctcagctgaattcaggcctgcagtt
-ccaacaggttttggttggttgtggctcaaggatcagtttcattttcaaaa
-attttgcaaagctatttaatgtattccatgtgttcagcacccagtagcaa
-gtctgatatttgaagaatagactattttacagctcagttctcaatatcta
-catataccatttaagatcagatatacataggcacgtcttgagtaggagtc
-caggcattgacaaacagccctgaggtcactttcccaagctcctgcctctc
-cacaagcttcttggtacatttcagctttctctttattcctcagccagtta
-tcccactccaccacccattcctgcaactgctctcacagattaagccaagc
-aggaggagcagacaaagagaagaaaagcaaagagggttttccccaccctc
-ctgagagcacagtttctttcacaggagaggaaggcatccctcctaggtag
-ttttggctcctagggactcctgtggcagctgctgtcttgccaccactgta
-ttgcttgggagcatgggagaacagcgtaaagagaaaaggggaagtgaaca
-atttcatcacccttctgagtttccataagcaccttgtctaactagacggt
-gctcctggggttctctctgtctgtactcaggtggacactttggggttcca
-ggatgtactgagttcagggtgcaggagtccagagtggggaactcaatgcc
-tgcaggtgatattgaattcggtattcagtacttttaatactgacatttat
-tttccaatctgcctgctactgtttacttttctgaatcatcaaatggctgt
-tccatacatcctgcctgtggttttttttttttctttctttcttcagtggg
-agagacagggtggagtgtgcttactccattttacccacaaccagaacTGC
-CACAATTTTTTGTTTTAAATTGCATTGTTGCTCCACAGTAATGTGACACA
-GTCTGTACACAGAGACACACGTGTGTGTGCACAAACACACACTGACTTCA
-AAGTTTCAGGAAAGTCTGCTAAAGATGCTAACGACTAGTAGGAATGATGT
-TAAGGTGAATCCAGAAAGTTGTCTATTTCCCTTGGACAGCTCACATGAAA
-GGTCGAGACAGCCAAAACTCACCTTGAAGCTATTTTTATTTCCTAAAACC
-AAAAACTAAATAATTTTATGGCCATAATTAAAATATAACCCCCCAAATCC
-CTGATTGTAAAGTCTATGGCCAAATCCAGGCAGAGGCAAGCACACAAAAT
-GGTAACGGATTAACTGGAAAGTTATTTTGCTGCAATACAGAGCTGATTGG
-ATTCAAGTCCATGAGTATTATTTTCTTTCTTTACCAATTCAATTCACCAA
-AACGATATTGAATAAAAGAACAGTGTCAGACACTCCTTGAATTGGATGTT
-TTTGACCCGGTAACTTTGAAGAGCCACCTTCCCATGTGTCAAGGCATATC
-TGGGTCGAGAGGTGCCACCCAAGCATTCAGTGTTTAAATGTGAGGACAGA
-AAGCAGGGCAGAGAACAGGGCATCATTTGTGCAGAGCACTCTTTGAAGCC
-ACCTCCAATCAAAGCCTCCTTTGCGTCCCAGGCACCTGCTTTTCATTTCC
-AGGACACTGCTTCTACCTTGGTCTCACGTAGCAAGTTAAAAGAGCCTGTC
-AAAAGAAATCTGGATTTGTTTCCAATCAGTTTACATCATGTTCAGTTGAC
-ATGACAAGTTTTATAATTAAATTTCCTTGACTCCTACCCCGTCAGGTGCA
-CCGTAGACACTTCTCACAGATGTGTTTTCACACACACAGTAGCAATACGG
-TCGTAATGATAACACCTCTTTGGATGAGTGGGTGATGTTTACAAAGGGAA
-TAATCTGATGTTCTAATTTGTCAGGATAGGCTAAATGGGAGAAAAAATAA
-ATAATGCATATTTGTTTCAACCATTTGTCTATCAAGTATCTGCTGAACAT
-CTAAGCGGCCCAAGGCCTCTCCCAGCACTGGAGTCTGTGTGTTACAGAGT
-GATTTTTATCAGCTGAAACTTAGGTGGATCGAAACACAGCTTTTGTCATC
-CTCAAACTAGCCTAGTTTCTACGCGGAGTTCTCACTCCACCACACTGAAA
-TAGAAACTTTAACCTTGCCGATTTAAGGTATACACAATCAAATTAGTATT
-TCTCATTAATTTCAACTGGGAACAAACCCTCTCGTGGATTGTGGCTCACT
-CTTCCTTCTCCTTGGTGATCCCCCATTAAGAATGGGAAGGGACTTAGTGA
-TCCTGTAATTTGAGGGGTGGAGAGAGATATCAAATCTCCAGTTCCCTTCT
-TTTGCCTGCTGGCATCAGTGAATAGTAAGTCAAATCACTGGTGCTGGGTA
-AAAAGCTTCTCTTCCCTCTGCCTGGGCTGACGGTGGCAAATGTCCTCCAT
-GGCCTGCAGCTTGCACGGTACCTGTTTATATCAATAGCATCCTTCTCCAT
-GACCAGAAGGGACCTTTCATTCTTCCCACATTTTCTCACAAGGAAAATAC
-TTAAACACTGCTCTATTCCAGCCTGGATTTGCAGGAGTTGAGACCCTCTC
-TGCCTGAACATGTCTGGTGGTGAAGCACCCATGGCAGCTGCTCAGCCTCT
-TCCACAGGGCCTCTCCTTTGTAAGTCTTGGATTCTGTGCAGGCTTCACCC
-GGAACACTAGGAAAAGTCCTTTCTGTCTCAGATTTCCCCAACATGATTTC
-TATCATTCTCTCTCAGAGGCCCACACCAGTGACTAACTCTGTTGCTTGGC
-AGCCCTACCTCCAGGGTTGCCTGCCTTCAAACACTCTTGCCAGTGACAGT
-TTATAACACACAATTGTGCTCAGATCTTTCCAGCTCTTAGGCTTTTGGGA
-CCCCACTTACCTTTTATTAATTTTAACACTTATCCATTTCTTATCTGTGG
-CACTGGCATTCAAAACtaatatggtttggctctgtttcctgccccccctg
-cccgccaaatttcatctagtggctcccctaattccacgtgttatgggagg
-ggcttggtaggagataattgaatcgtgcgcatgggtttttcccatgttat
-tctcaacgtagtgaaaacgtctcatgagatctgatggttttaaaaatggg
-agtctcagcgggcaggcatggtggctcacgcctgtaatcccagcacttta
-aaaggctgaggcgggtggatcacgaggtcaagagatcgagaccatcctgg
-ccaacatggtgaaacctcgcttctactaaaaatacaaaaattagctagac
-atggtggcacctgcctgtagtcccagctattcgggaggctgaggcaggag
-aattgcttgaacccgggagtcggaggttgcagtgacccgagatcgtgcca
-ctgcactccagcctgacaagagagcgagactccatctcaacaacaacaaa
-aaagggggagtctccctgcagaagctctctctctttttgcctgccaccgt
-ccacataagatatgacttgctcctccttgccttccaccatgattgtgagg
-cctctccagccatgtggaactgtaagtccaattaaacctctttctttggt
-aaattgcccaatctcaggtatgtctttatcagcaggatgaaaatggacca
-atacaAAGACTTATATATATGTTGTGTATTTCAAGACCTTACTATGGGGA
-GAAAAAAGTCAAATATCAGACTCTGTTTCTGCCTACAAGCAACCTCCGAA
-GCAATAGCTGTAGTTATGTAAGGGCCATTGGAATAAATCCATTGTCAAGG
-AAAGTTCCCTTGACAAATATTTCCAGATAAGAAGGAGACAAATCCCTCAA
-GAATATCAGTCCACTGGGCAAGCACATTAATTACGGTAGGCTGAACCATA
-GTAACAATAGACCCGTCTGAATGCCAGTGGCTTAGAGATAAAGTGGGTTT
-TTGAAAATCACTGAAAGTCCTGGGTTTTGCATAATCCGGTGGGAACGATC
-TCCTCTGGGATCCTGGCTGACTGTTGTTCCATGTATTTTGCACAACACAA
-CACCATTAGCCAGAGAGGGGAAAGGGATGGCGTGCACACATGGGGTGTGT
-TCTGGGTCAGAACTattccatgagctatgactccgtcctgcagtccctcc
-taactgcaaagggatctggaaatgcagggccactgtgtgtccgagaagag
-gagtaaatggattttggtgaataTTGCTGTCATGGTTTGACTTTCTGGTC
-ACCAAATATCCATTTGTCAAGTTCATCACATACAGAACACACTCCTCCAC
-tgatatggtttggctgtgtccccacccaaatctcatcttgaattgtagct
-cccatgatccccatgtgtttgggagggacccggtgggagataattgaatc
-atgggggtagtttcccccacactgttctcacggtagtaagtcttacgaga
-tctgatggtttgataagcagtttcccctttcacttggctctcattctgtc
-ttgtctgccgccatgtaagatttgccttttaccttctgccatgactgtga
-ggcctccccagccatgtggaactgcaagtccattaaacctctttttcttt
-ataaattacctggtctcgggtatgtctttatcagcagggtgaaaacgatc
-taaAATACCCACCTTACCAGGAGAGACAACCAAGGTCCCATCCAGCTCAA
-TGTTCAGGATTTCCAGAAGATGCTCAGTCCTCTTTCAGGTCCAAATATGG
-Atccccttggtccagggacctaggacataaaaagagaagcaatgtgtctc
-cccctcaccctgtcccacatacacccaacatggaacactagagccaggca
-aggatatctgTGCACAGCAGGTCCTGGTCCATGCAATGATAGATAAGCCT
-GGAAGGCTGGGCCTAGCTCCCCTGCCCAACGTGGGAAGCTGTTCCATTAG
-GAAGTCCTCTGCCTGTCATTCCTCATGCCCTGACCTTATCTTCTGGAAGG
-TGTTCCATTGTCCACCACCATCTACAGCCACATCTACCCTGGGCACAGTC
-AGTATGTCTCCCATGGGGACTGCACAGCTTGTCCAGCCCACTTCCTACTG
-TGCAAGCTCAGGGAATCCAGAATCATTTTAATGCTCATACCGTAAAAGCC
-TTCTGTAATACAGGTGTATTGTTTCTTTAACTACAAAACTGAGGGGGCTT
-AGTGGAACTGGGGAAAATCATTTCCATGTGCCAATAATCATATCAAAAGA
-TTTTTGCTTTTTTTCCCCCTAGACATAGTAAATATCCATTAGTTTTTAGT
-TTCTCTGTTCCCATACCCTTCTCTCTCTGTGTCAATTTAATGGCAACTTC
-CTTGAGGCTATCAGAGGAAGAAAAAGAGGATTTGGTAAATAGACAGTATC
-CTTAATCTGTTCTTTGCTGCCTGGTTAACTTTTTTTTGTTTAATTGAGAA
-GTCTTAATGGGATTTTGAAGCTCAACGCCTTTTCCATCTTGTTTCCTGCT
-GTTTGGGATCCAGAAGCACTTTTCCAACCTAAATTTTTGGATGATCTGTA
-TTCCCTTTAGTTTTGATTTGCAGACTATTTCATTCTTCCCCAAGCTTGCC
-TCTTTCTTGTAAATGTGGGCTGTGACAAGGAGCAAGCAGTTCACACATTC
-GTAGTTTGGCTCTTCCCTGCACAGCGCAAGCCTCCACTGTGGCTGCCTCC
-GCTGCTTCACCCAGATTCATCTTTCCCGAATGTGGCGTGTGGCATTGTCC
-CGTGCTTATCAGCGAACGCTAAGCCGATGCCGTCTACTTTAGATTTTTGA
-TGCTGCAGATACTGCACTTCAGTATACCACGTTCTGTCATCGCTGTGGTA
-CGCTAGGAAGAGATTacacacagatcttgaaatgttaatgtcttaaaaaa
-taagaaaatgatttccttttcaatgaacacttcttgacttgtgtccaggg
-tagcaagtcaactctcttacacgtggtcctccagggatccaggcagacag
-cggttctgctttctccttgtgcggctttccaggtgccctgcatttgctag
-gggaagacaagatcatgaagaggcatagcggctgtgccatgggtcaggca
-gagccgggcgtgtgccacttccactagtaatccactgcatgggactcagt
-cacatggccacacctgaccacaagggaactgcagaatgcagtcaggggga
-gtggccaggaaaaagcagaaatgttttttcctgaacagttcagtttgtgc
-tacaGAGAGGCTGCTAGGAAAAGATTTCTAAAGCGGCACTGTCCGAAGGC
-ACCTGCACACTGTCATGGAAGCACACCGGCACCAGGGCCAGAGGCACTCG
-GCACTTCCTGGAAACTTTGGAAGGGAAGTGCATCTGTATTTCTGCAGGAG
-AGAGGAGTGTGAGGTTGTGTGGACAGGGAGTGAGGACAGGATTCTGGGCA
-GAGGGAGTGATGTAGGTAGAGGCTGAGCTGCATGAGAGGGGAGTGTGAGA
-TCGTGTGGACAATAGGTGAGGACAGGATTCTGGGCACAGGGAGTGGTGTA
-GGTAGAGGCTGAGTTTGCAAAACCCTGACAGTTGACAAAGGTACAAATAA
-GTTGGGATGGCTGGGACACAGGTAGGTGGATAGAGGAGAATAAAGAGTgg
-gggaggggcctagggaagagagtgggggaggggtggggcctggggaagac
-agtgagggagggtcctggggaagggggtgggggaaggggaggggcctggg
-gaagacagtggaagaggggcctgggggaagagagcaggggaggagCCTGG
-GGGAGCAGCAGGTAATGTAAGTTTTCCAAGACCAGTGGCCAATCAGGCAA
-ATTATGCTGAACCTAGAGAGAAACATGGATACAATTAAACAACATTCCTC
-ATTACCTCAGGCCCCAGTAACTGAAATTCAGATGACACAGGTGGGCTGGC
-ATGGGAGGAAAATGGTCGGTACTATCTAGGTTGCGCCTCTCTGCTTTGAT
-CTAATCCAGTTCCCTGAGGGACACCACCCTGCCCTGCTAACGGGGTTGTG
-TTTGCATGCAGATTTGTCCTTCTATGACCTCAGTTCCCTTAAAAAGGCCA
-GATGTTGTCAGTGAAGAGGGACTTCAGAGTGGAAACAGGACAAACAGTGG
-GCTTTTAAAAATATGATTTTGAAAAACAAAAATAGGATTTACGAAACTGG
-CCCTCTAATTACCAGTGAGACAAAGAGGGGCGCAGACACCTGCAGGTGGA
-GGGTGCCGCTTTCCTTCCCATGGAGTCCATGCTGTCCCTCCAGTTAGGCC
-TGGATCCCTGCCTCCTGCCCAGGCTGGCTTCTCACCTCTCCTGGGCCACC
-TGGAGCTCAGGGCCTCAGAGAATCACAGCCCTCGCCAGGGCAGACACCAA
-GGACTTTTTAAAACATAtttttcttttttgagacagagtctcgctctgtt
-ccccaggctggagtgcagtagcacgatctcggctcactgcaacctctgcc
-tcctgggttccagtgattctcctgcctcagcctcccaggtagctgggatt
-acaggcacatgccactatgcccagctaatttttgtatttttagcagagac
-ggggttttaccatgttgaccaggctggtctcaaattcctgacctcaggtg
-atctgcctgcctcggcttcccaaagtgttaggattacaggtgtgaaccac
-ggcacccagccTAAAAGATATTTTCCTATGCCTGGACTATGAGTTCTGCG
-GCAGGGGTCACCATGAAACTAACACAAGCAAAAGACAGATAAAAGGTGTG
-CCTTGCAAGGTAATTCACCCCTTGGGGAATGATGGTGATTCTATAATTCA
-ATGAAAAGCTTTTCATGTCACAAAGACATCAAGAGTAACCTGATCTATCT
-TTAAAACAATTCAGAAAATAGAACAAAACTGTTTAAAGAGAGATTATGAG
-CCAACAAGAGAAAACAGTGGAAACAGATAAAAACCTTCCAGAACTAAAGG
-CTATGTTAGAGGTAGTACAATTTCGTGGATGGGATGGGGAACTGACTCca
-gtcagaaagatggtagttatgtcatctggacaaagacaaaggaaatacaa
-gatgtaattggtacttttgaagaactgaacaaaaaaaaagtatgtagaca
-tataacaaaagaaagctttcctgaagtaataaaatacttgaatctgcaaa
-tcaaaacaatatgtgatagcctaagagagaaataatagaaaagaatcaac
-actgcacagattcagaagaagacatgaatatccaggaaaatcatatgagg
-atctttaagggaggttgggaggtggaactgaggttggccttagatttcct
-gtcagcaactgtcaagaaaagacaccccaaacacagtagggcaatgttta
-tacaaaggaaagaaggcaaattatcctttcactataaagataagggacgg
-acattcccatatgcaaaaatacagagataataatacccaaaagtccttct
-tgggaagaaaaatccatctcacaaaggggtgagcctaaatgaacacaaat
-ggagaagcagcatccaataactaagaatgaacactgaagccattaaatat
-taaactaaatttaacagtgaaagctgtgggctgggtggattccaagcagg
-aggcatagctattaatacaaacaaaataaaagttatagcataatagaaat
-ggagcaaagtgtaattgtgctaattattcacttttgatgggagaaggtca
-attactactatacaaatttgaaacacatacataaaaatatGCAATGATTC
-Tatttccaaccgagatgccaaaacctttcaatgggaaaagaatagccttt
-catcagctcatgctgaaacaactagatatgccaaagaatgaagttaaact
-gcaaatgcacaacatatataaaaattaactgaaaatcaaccacagatcta
-acgaaagacttaaaactatagaaattttagaagaaaacataggaatgagt
-ctttgtgatcttggcttaagcagtatattcttggatatgacatcaaaagc
-acacgcaacaaaattaaaaatagattgaattttatcaaaattaaaatttt
-gtactttgcataatactgtcaagaaagtaaaagaatctgcagaatgtggg
-aaatatttgcaaataatatatctgataagagacgtgtaaccaaaatatgc
-aaagagctcctacaactgaataataaaagatatttttaaaaactgtattt
-gaaaatgggcaaaggatttgaaaagtcattttccaaagaagatatgcaaa
-taaccgataaatacagggaaagagtctaaacataattaaactttaggaaa
-atgaaagtcaaaaccacaatgagatggcaccaccacccagcaggatgact
-attaccaaaaggacaaaaacaacaagtgttagtgagaatgtggagaggtt
-ggaatcctcatacactgtacatgagaatgcaaaatggtgaagcggctgct
-aaagcaagtttggccattcctcaaaatgtcaaacatagaattatcacgtg
-atctaatgattctcctacaagaggaatggacacatttgcacacacgagct
-tatgcacaaatgtttccagcagcactcttcacaaaaaacaaaaagtgggc
-tgggcacagtggctcacacctgtaatcccagcactttgggaggccaaggt
-gggtggatcacgaggtcaggagattgagaccacggtgaaaccccgtctct
-accaaaaatacaaaaaaaattagcccacgtggttgtgggcgcctgtagtc
-cctgctacctgggaggctgaggcaggagaatggcatgaaccttggaggaa
-gagcttgcagtgagctgagatcgcgccactgcactccagcctgggtgaca
-gagcaagactccgtctcaaaaaaaaaaaaagtggaaatgatacaaatgtc
-tatcaacagatgagtggataaataaaatgtggtgtattcagacaatggaa
-tattgcttggccatgaaaaggaatgaaaccaatataggctatgtggatga
-gcctccaaaatattatgcaaagggaaggaagcccttcacaaaggctgtat
-atgtgtatgattccatttggatgaaatgcccagaataagcaaatctacag
-agacagaaaatagatttgtgcttgccaggggctggggcctggaggaaatg
-gagagtttaggggtgcaggattttttttttgaggtgatagaatattctag
-aatgagatagtggtgatgactgcattatttcatggatatactaaaatcac
-tgaattgtatgctttaaatgagtgattttaagggaagccaattatatctc
-aatagagttgtcatAAAATATACAATAATTCCAACATCTTAATGCATTTT
-ACACTGTGCACACATTTTTGAAACTAGTAACTCTTATGAACAAATCTTTA
-TTTGAAACTTCTTAATTTCATTAACTTCTCTTCATTTAATTTGtatctaa
-tgtttatattctttacgcttgaaactatttgaagcattctatgtttatta
-attcctttacttcccacaactatgaagaatctactattattattatcccc
-attttacagagcaggaaactgagactcgcttaggttaatttgctcatata
-aggctacacagctaatctgcggtagcatcaggatctgagcgtgaacagtc
-ttttctccgagtctctcagcccatactctacGTTGCTTCttcaagtaaaa
-tcacgttgagttcttttattaaaaactagataagttggagcccattttca
-ttttacaagcccattttatctggcttccacatttatctgccagtctgtca
-aggtatccttcaatctttatatatccataaaggtaagtctgaaataacct
-tctctaaatattagctatggttatttctgggttctgagaattgcaaaatc
-tttactttttcttttgtcagctctgagtcacctggctctcttataataag
-cctgtgccctttttataaataataaaaATCATTGTTCTTTTACAATGGAG
-TTACCAATGGCAagatggatagacatataaatagacaaatggatgcatga
-atattttagatagatagataatagagataggtagatCTCTATCATTTAGA
-TTtagatagatagataggtagatagatacacagatggatggatgggtagt
-ttgagagagagagagatacatggatggatagacagataaatagagataga
-tgaatatggatggatagatagacatggaaggatgaatagacagatgatag
-atgatagatagatggatacatagatagatacatagatagatacatagata
-gacagatacatagatagatagatagatacatagatagatagataggtaga
-tagctagatagatgatagatagatagatagatagatacataggtagatag
-atagatagatagatgatagatagatacatagatagatagatagatagata
-catagatagatagatagatacatagatagatacatagatgatagatagat
-agatagatacatagatagatagatacatagatagatagatacatacatag
-atagatagatagatagatacatagatacatagatagatagatagatagat
-agatagatagatagatacatagatagatagatacatagatagatacatag
-atagatagatagatgatagataggtagatagctagatagatggtagatag
-atagatacatagatagatagatagataatagatagatagatagatacata
-gatagatagatacatagatagatagatagatagatagatagatagataga
-tagatagatagagataggtagatggagagagagagagagagaAAGGCAGG
-AGGGAAGCTACAGTTAGATGCAGGTGATGGATTCTGGCTGAGTCACAGAT
-CTGCTGACCAAGAATCTGGGCTGCGAGCTGGGTGTGTGCAGGCTCTCCTG
-AGTGATTCTAATGCAGTGAGTCTGCTGATTGCTATTTGGAAACCTCTGAT
-GTGTGGGATCCTGCTGGAAaccaggtgcctggagacctgggtgttagttt
-tcaatcttccacctggtcctgtctaagaaaagacacttcgcctcaggggg
-cttcagtttcccaaccattatgtgtgctaagaattaggtcccttgtcagt
-ctataagagcCTTTCTTTCTTCAGGGACTGGTGTGACAATTGCAACAGTA
-TGTGACAGCACGTTCTAGGTTGTTAATCTGTGTTCTTCTCTTGCGCATTG
-TTTTTAATGACTCCTTAATTAATACTTTATCTCCCAACTGCCTCAAGCCC
-TTCACCTACATTGCTTCAGCGATGAGTCCATGTTCTTCCATCCAGCCCCC
-CCATCATTTCTATAGCCATCGAATGAAGTATTACCTCTTGTAGTTGTGCA
-AATTCAGTTCTGTTTGCTTTACTTTATAAATCTACACCCCTTTCTCCAAG
-AACACCAGCCTTACCATGAattctttcatttatttactcatccattcatt
-tatccattcaCCACTAATTCCAGGTACATCATGGGCCAGTCATGATTTTA
-AAGGCTGGAGACATGAAGTATCCGCCATAGTTCAGTTCTTGGTTGTCTGC
-AGGAGCACAAACTGCCTGAGAATTGGGAAGAGGGACTGAGCAGCAGCCAC
-GTAAGCCGTGGGTCCATGGGTGACACTCTCATTAATTCAGTGAGTACAGC
-GTCCCACAGAACACACAAGGCTTTCCTAAGAATCTCACAGTGGAGATAAA
-ATTAACAAACCATGGAAGGAAAACAAAACTCCCTGCATTCATTCACTCAT
-CCACTGCTGCATAAGCTGGGCTAGGTGTCAGGTGAGCATGTTCACGGCTC
-TGCGGGAGCTCAGAGGCCACCTTGGGATTGACGTGAAGACAGTCATACAT
-AAATAGAAGGGGAAGGAGGGAGACCTCCACCCAGCGGGGTCAGGAGGGTC
-TGAGTTAGGCTTGGACAGATCATGGGGAGTTCAGTGAGTAATCAGGGGAA
-GGTATTTCATGGTGCAGAAATGGCACGGGTAATAGAGTGGAGGTCTGGAA
-TTTTTGGGCAACCTGGGAATTAGAAATAGTTCAACGAAATGTGGGGTTGG
-CAGGCGAGGGGAGGGCGGGCCTGACGGCTGGGGAGGGCAACAGGGTCAAG
-CTCCAGGTCTGCGTTTCTGCACTGAGGAGCCAGGGGCAGGCAACAGGGCT
-GCGTTTTGCACTGAGGAACCAGGGGCAGGCAACAGGGCTGTGTTTCTGCA
-CTGAGGAGCCAGAGGCAGGCAACAGGGCTGCACTTTGCACTGAGGAGCTG
-TAATGTGCCCAAGGCAATGGCTTCCTGGAGCGGCACCTTGCTCAGAGTAC
-TCATGAGATCAGACCTCCCTGGCCTTAGGAGGGGACACACTGGGGACAAG
-GAGAGCAGTGCAAATGGTGCCTCTGATGGCAAAGTGGGCGAGAACAGTTG
-TCTCTGGATTGGGAAGAGGGGTGGACACAGCCAAGAAAGTAGGAGGTGGA
-CGCTGCAGGCTGCATCTCCTACTGACCTGTGTCAGTTTTCTCATTGGACA
-CAGCAGCTCAGTGAGAAGCAAGTGTCCTGCAGAGCTTTCAGAGGGACCAT
-TTGTGAGGTCAGATGCATGACAGGGATCTGACAGAGCTTTTAGAAGAATA
-TTTGTggctgggagtggtggttcacgcctgtaatcccagcactttgggag
-gcccaggtgggtgcatcacttgaggtcaagagttcaagaccagcctggcc
-aacatggtgaaaccctgtgttcccaaaacacaaaaatcagcctggcatgg
-tggtgtacgcctgtcatcccagctacttgggaggctgaggcaggagaatc
-acttgaacccaggaggcagaggttgcagtgagccgagactgcgccactgt
-actccagcctgggcaacaaagcaagactccatctcaaaagaaaaaaatga
-agaagaaCCATTTGTGAGGTCATATGCATGGTGATTCCACGAACTGAAAT
-GGCAACCAGGAAGCAGAGCAAGGTTTGGGCAGTCTGGGCTGGGATGGAGA
-CAGAAATATCAGGAATGACTTCTGTAAGTGTCAACACAGGGCCAAACATC
-AATGAGCCAGATGCTAACTGCATTGCTAGGAGTGCAAAGGAGGGAGACAT
-CAATGTCAGTTAAAGGGTCAGGGAGTCTCCTGGGGGTGAAGAGACTCTGT
-TGAGTCTTAAAGGCTTTAGAAAATGTAACATGTGTTGAAAATCGAGTGGG
-AGGCTTCAGCACATCTCCCACAACAAGAACCATGGGTGTCAATTTTTGCA
-AAATCATGTTTAAGAGATATTCTCCTAGATTTTGGACTCTGTTGCTTTCT
-TTCTTAATTAACTGTTCCCTCACTAAAAACAAACTACAATGACAAAACCT
-GAAATCAACAGCCTTACTTCATGAATTTGCTGTTAAAATAAATCTCATGA
-ggctgggggcggtggctcacgcctgtaatcccagcactttgggaggctga
-ggtgggtggatcacgaggtcaggagatcgagaccatcctggctaacacgg
-tgaaaccccgtctctactaaaaatacaaaaaattagccaggcatggtggt
-gggcgcctgtagtcccagctacttggaagtctgaggcaggagaatggcgt
-gaacctgggaggtggagcttgcagtgaggcgagattgcgccactgcactc
-gagtctgggcgacagaatgagactccgtctcaaataaataaataaataaa
-taaataaataaataaataaatataaaaataaataaatCTCACAAAAGCAT
-ACATAGAGTGCCTGCACACACAACATGCTCAGTGGTCGGCCCTTCACTCC
-CATCTTGGATCTGCAGGGTAATTACATAGGAAATGCATTTCTGTCCCGAT
-ACCCTGGGTCTCTGTGGTCATCCTGCAGGGACAGGGCCTCCCAAGAGCTG
-CTGCATGCAGCTAGGGCTCTCCATCTCCCCAGTCGGCATCCTGACACCAA
-GCACCCACATTTTATCCCTGCAGTTGAAATGTTACGGCTGAAATAACCAC
-GTCCGTGAGAAAGCACCATGTCCTGCCATAAAGGCAGGTAAAATGAGATG
-AAATGAAACGCTGAGTGCTTGCTTTGGTCTTTAGGGCTGATGGATGGGCC
-CAGCCTCCCTGGCCCTCGCTACCATGTGGGCTGCAATCAATGCCTCTTCT
-CCCAAAGGTGCCCGACCACCTCTGACTCCCTGCTCAGTCACTGGCAATAC
-CCTTGCCATGAACACCTTGAGTTATCACAGAGCTCCCTGTGCACATCTGC
-ACTATATAACTCAACCAGTAAAGACGCCTTCCTCGCAGGGCCAAGTTCAG
-ACTTTTCTTAGATTAAGCAACTACAAGAAAGAGGCATTTTATGATTTGGA
-AACTCCTGTTATTATGGTTCTTCCAGGGCCTCCCTCAATCATGAGCCCAT
-GTCTGGACTCAGAGACCTAGCTCAGCCAAGAGGTCAGGAAAGGCGCCTGC
-CTGCGTCACACCAGCCTCCCAGGGCCAGGGGCTGTGGTCTCCTTCTCCTT
-CACAGAGCAGCAGCTGGGCTCAAAATTAATCAATTGCTCCTTCCTGGATG
-ATCTCCATTCGGTAAAGCCTTTGGGAGGTTTTTCTACTTACTACCTTATT
-TCCACACCTCGAGCCTGGATGGGAGGGTATGCTTTCTGGATGTGATTCCT
-ATAAATAACGGTAGTAATGCCAACAATAaatacagctcacatcccttagc
-aggcactgtgtgcctcccatggactgctttataggagccgcttcatttaa
-ccctacaaatggccctctgtggcatcagcccagccttccagatggaggaa
-gtgacttgctccagcttgcaaagacaggaggagaaggtggtagtggtgga
-ttttgaaccccaggtctctgagtccatacttggcctttctttgttcaact
-tcaaattgacatataacacacacagaaaaatgctcatagcctaggagcat
-gtctctaagaattctcataaatggagaccactcctgtgaacaatattcag
-atcagaaagcaacactttaccagcattggaggagcacagcttaggaggcc
-ttccgggcactgtccacgcagaggcatctgtctacgctcctgacttgtaa
-cttggtatattacctgttttgggactttatacaagtgtgatcattcggtg
-tgagttatatcgcacagttcgcatacttcccctggtgttctgtgtgaaga
-cccatgctgctgcattttttgcgtgactgtagatggtagaattttccctg
-gtgtgtagtattccgttgtatgaccacaacaccgtgtattcattcgttcc
-cttgccagtgagaattggagcgggttccagatgtctgcaactgtgaggag
-ggctgctaAGGAGAGGCAGCTCCGTGTTTTATGTGGAAGCTGCATAGCCT
-TCCCGTGGGTGTCCACGCGGTCGCTGGGAGCGCATCATCtgccttggtcc
-gtttgggctgctaaacaaggtaccatgaactgggCGCCCAGCTGCAGGGG
-AGGCTGCAGCGCCTTCCCCAGGGCATTTCTCCCAATTGTCTCGCCTGCTC
-TCCATTCCGGCCCTTCACGGGCTCCTGAGTTCCAAGAAGTGTGCGGCTTT
-CACTCCCCAGCGGCTAGTTCATCCCCGGCCTGGCCCTCCCGGCTTTCTCT
-CCTGTCTCAGGAACCAGAACAGCCCTGGGCAGGGGAAGGAAGCAGGGTGT
-GGTTAACTGAACAAGCCAGGGCGCTGCAGATAATACGCCTCGCGGCACTC
-CTCCGTCATCCCTTTTCCTCTCTGTGCCTGAATCCGACATTTAAAGGTGG
-CATTCCCCGAGTGGAGGCATGAAAGGAAAACGGACTGGACGGGGCACCGG
-AGAAGCGCCACGTCCATCCTGACACCCGTTGGGTTGACAACTCATTTAAG
-TCCCGTAATGGAGTCGCCAAAACCCAGTAGCCGCAAACAACACACAAAGG
-GGGTTTCTCACAAGCCCGACATCAGCGGATCTTAGAGTGGCTTTTCTGGG
-TGGCCTGCTCTACACGTCCCGCGTGTTCCGTGGGGGACCCCCGCCCAGGG
-TGGGGACCGCTTCTCATGGCGCAGACAGAGGGGCTGGAGCAGGCAGGTCC
-AATCAAAAGCTTTCCCAAGATCTGGGGCACGGCTGTGAACATCCCAATGG
-CAAAGCCATTCCCAGGGACGGGTCCTGGGTGGAGGTTAGCCCTGCCACCA
-TGGGAGGGCGCAGCAAAGTGAGTGCAGGTGGTATAAATACAGGGTGGCAG
-GGGAAGGGTTGGGGCCAATTTCTCAACGTGCCACACAGCCTCAAATGTAG
-GAGCATCAGGAGAACATCTGCTCTTGTTTCCTGACTGAGCTGTGGCAAGG
-AGGCAAATTGCTCACTGAGGAGTGCTAATTAGGGAAATAGAGATTATTAT
-AACGGGGTGAAGCTGACGGTGCCGGGGGGCACCCGGTTGAGTGAGAAAGA
-CCCCATTCACAGTACTCACTGGGAAGAGAGCTTGAGAGCAGGCAGGGGGC
-CAAGAGGTGGCATGTAGGGAGACGGCCATGGCACAGGGCTCGCCTGGCTG
-CAGAAGTCCCCTCTGTAACCCGGGAGGCTGAGCATGTTGAAGAAAACACA
-TTGCCTATTAAAAATCACACACCTTCCTCAATTTGCATTTCTGCAGTGTG
-TTTCATCCCCGGACATCAAAGATCCTGGCTCACCATCTCTCCTGCGGGGT
-TCGAATGGAAAATGTCGTATCACAAGCTTCTTTCACATCTAATTATGGGG
-GCTGAATGCAGGGTTGTCTGGCCTGAAAGCAAAGAGGCCCCTCTCCTCCT
-GCCTGCTCCAGGGGGCACACGTCTGCCGGATGCCTTCGGGCGAATTCAAA
-GGCAAGGGAAGATTTCAGCAAAACATTGACAGAGCATCAGGATCTGCAAA
-GCTCGCTAGGACAGCAGGAATGCAACCGGGGGATGGTGGTCACTTTTTTG
-AGAGGGAAGAAGAGGTGGCTTGTTGTGCCGTGTCATTAGTCCTGGAGCCT
-AGAGACAAGTGAACCGAGAGTAGCCCACAGTGCAGAGCCCAGCTGCACAC
-CCACAGGGGAAAAGGGGAAGGGATAAGGGGGAAGGGGACGTGGCACTGGC
-TGAGCTACCTGCCTCTGCCAGAAGTCAGAGCCTTCATATAAAAGTGAACA
-CCCTTTAGGTCTGGCTTGATCAATCCGGTCACATAGATGCATCACCAGAG
-GCCTGAGATGTTGTTACTTGAAGGAGGAGATGCAGTCCCTCAGTGGTGTA
-GCTGGCTTGGAACCTCAGGTGTGGATCTGTCCTTACAATGGGGCTTTCTC
-CACCATCCCAGACCCAGGAGGCCCCCGTGGGTCCTATGAGCTGACCTGGC
-TGGCACGTGGCATCTGGCTACCACAGGACACTCAGCTGCACTTCCACGTT
-TCCCTGTGGGAGCAAGAGGAGAAGGGCTGAGCCCAGAACAGGGGAGGAGA
-TTACAGTTCTCCGTGATGACCCAATGGGGTCATGTGGGAGGTGCTGGGGA
-GACCCTTGCTGAGCATCTACATGTGATTCTACTGCCTTGGCGTGCCAGGA
-AGGGAGAGCACGTGTCTGACTTGTCTCGGGCTGCAGCTGCTGTGAGGACA
-AGCCATGGTGGCTTTGGTCTCTGTGATCGCAGTGACTGCCCCAGATGCAT
-TCCTGGCATGGCCTTATTCACTGGCTGTGAGCTACAGCCACAGAGAGGAG
-CCAATAGGAGAAAGTTTCTGACCCTACCAAGTTGGGCAAATGCAGAAATT
-CACTGAGCAGGCGGGCTTCTCCTTGTGGTGAACAGGGGGTATGCGAGCCC
-CCACTGTCACTGTGGTCAGGAGTGCTGAGCCTGCCTCCAGCTTATCTGGT
-GGACAGTGTGATGGCCTCACAGCCATACTGTGACCTGAGAGCAGCCAGCA
-TCATCtgtcttagtccatttgggctgctaaacaaggtaccatgaactggg
-tgtcttagaaacaacagaaacatatttcttatggtaattcagctctggag
-gctgtaagtctgagatcagggtgtcagTGTGGGacctcccaggtcccatc
-tcctgacaccatcatgctgggggttagggttacagcctctgaattttggg
-gggacacattcattccatCACTCTGTGCTTCCTGAAGGGGGATTCGAGGG
-CCTCTTGAGGATGTGCTCTGGATGATCCAGTGAAGCCTGGTGTCCACTTT
-GTCTACTACACCACCATTAAAAGGAACGAAAAGCCTCTGGTCTCTGCCGC
-CAAATGAATCCTGGACATGTATCCTCTGTGGTGTCACCTAAGAGCAATGA
-GGAAGGTAAAGGGTCAGGTCATGAGTGCTGGCGTCTCCCTTAAGAGTGGG
-GAAACAGAGAGGGGACCCTGAAGTTGTGGAAGCTGTCAGTGCTGTGGCCA
-CATGGCGGGAGACTGCTGAGTGAACTTTTGAAAATGACTCATTTGCCTTT
-TCCGGGCCAAAAAGCTACCTCGTCATGAGTTAGTGATGTGGCAGTGCACA
-GCTTCTAGCTAAAATGCTTGTGAATGCACAATAGAAAAGCAAAGGTGGGA
-AATCAGCAACACTGAAAACTACGGTGGACATTCACATTCCTGATAGAATC
-AGAGAAGAATTCCCAATAACCAACAGGGACTGGATGTAGGCAACAACTGG
-TGGCCTTTGCTTGCTTTCCCTGGAGATAACGTGACCTCAGCCATATGGGG
-GAGAAAGGAACAAGTGTCCTCAGTCTCATAGGTCTATCTCGTGCTCCAAC
-ACAAGGTCTGCACAACAAACAGTCCTGAAAGTCATCCTTTTCCTCGGTTG
-TGCTTTCTGAGGCAGGCAGGAGGGTAGATCTTGTTCCTATGTCCCCACAC
-TCTGCCATCACTAAAAAACATCCATGGAAGGACTCCAACTCCCAGCAAAT
-CACCCTGTAAGAAGCCTCCACCACAAAGCTCTCCAAGCAGAAGTCTAGAT
-AGGAAGACTACAGAAACCACAGGCTGGCTGCTGGCTACAGATTTTCAGGT
-ATCACAAATGTTTGATGTGTCAGAGAACCAAGCATTGGGCAACGAAAAAT
-CAGATATTAAAACATCCCCCTATCCTTCCATTGAATattcattcattcat
-caatccatccatccatcattcattcatctattatgcatccatccagccat
-catgcattcatccatcatccattcatccattcatccattcatgcatccat
-catccacccatccattcatccattcatctttcattcattcatctgtcatc
-catccatctagccatcatttattcatccatcattcattcatccattcata
-tatccatcatccacccatccattcatccattcattcatccatcattcatt
-catccatcatccatccatccatccatctatctagccatcattcattcatc
-catcatccattaatccattcattcatgcatgcataatctacccatccatt
-catccacccaggcatccatgcattcgtcatccacccacacatccatccat
-ctatacatccattattcattcatccatccatccacccccatccatccatc
-tagccatcattcatgcattcattcatttatccatccaccacctatccacc
-catctaaatgtcatccattcatccatccattcattcatccaccaatcatc
-ggttcttccatccctctgtccatcAactcattcacccagcaaatactctc
-aatggatctcccatgtgacagacactcttcttagcagttgggtggcaaca
-gagaataaacaaacaaaatttctttacttgacatatagaatttgtattac
-agtgtgtaggaataaaataagtaaataaataagtaaatatgaaggatgtt
-agattaaaaacctgcgaggcagtaaaacaaatgtagggagcagagcgtgt
-ccgcagtgaggacactgggattttaatagggcttttagtcagcacagagc
-ttcctcaaaaggggatggaggtgagggagtgagcagcgggaaggacagtc
-caggccgggctgcaagcacagacatctgattctgtgccgggcaagggatg
-gaggagcccagtgtgaccagagtagagtcaggcttgaagcacatctgata
-agaaacaaaagagggcaaagaagacagggtgagggtgtgggatttggagc
-aggcaggtggtatgatctgctgtatgttttcaaagattcctttggccctg
-aatggggacttgtgaggcagagtgaccacgataagaagccatgtttgtct
-tttctgctaccaacaaaatctcacaaagtccctgaccctgtgatgatggg
-cagctctcccgaggagtggatggaatggagcacacagccccccacatctc
-ttgcctgagtcactaatatgccttaaaacacaaacgaccctgctccttgc
-ggtttcctacacaggagataatgcctgacagggttagtgaacatgcctct
-gtagtcgatggccacgtgaactctttcttccacccctaacctggatgtga
-ctcttgatggaactctttcttccaccctaacctgctttcatgtgaagtcc
-aggaagtctgatgtgattctgcacatatggcacctctaccacctggatgt
-aactgtgagctgaaacgctgtttcagggcagttggacagaacctttctga
-aagactcctcccaggctgtggtcctcaggctacagtcctcagtaagaatt
-ctgaataaaactcactttagttctttaagagcttacctttttttctttac
-tcagctgactacagtggggcaattatggagaagaaggagaccagacagaa
-aaaaccgtgataggaggagaatgatggtgcttggaccagcctggggtcag
-gggaggaagaggaattggctggattctgtgctaactttgaagggattacc
-aacctgatttggttccaatcagctactggatgacagggtgaggggagaaa
-gaaagcaatgctcagaagaaccaggcaggctcccacctctgtcccgagca
-cgtggaaggatggagttcccgtctgctgggttggggaagatggtgcagaa
-acaggctggaagtgggatgatggggagtttggtcttggatgtatcaGTCC
-AGCACAGTGCACCAGGCAATGCAGGTCAGCCACGAGATAGTATCCTAGGA
-GTCAAATACACCAATCGGCCCTGATAGCAAGCAAAACATTTACTCAGAGA
-GCACATTTGTAGGTGGGAATAACCCAAAATTTCCATCTAGAAACATACAG
-TATCTACAAAACAAAGGAAAAGGATATTTCCTCAAAGAGAGTGACCAGGG
-TTCTACTTTTGAATGTAATTCACTAAAAGAAAGGATGAACACTGTAGATG
-ATGCTTTTATGAGGAGCAGCCTTGAGAAAATAACACAGCAAGATGGGAAA
-GGCCAGTCACAGAGGGCTCGGGGGGCTTCCGAGATTCTGCCTGCCCCTTC
-ACTCCAGGAAGCTCTGCTTGACCAGTCTATGAAGGGGTGGCGGTGCTGGC
-CTCTCAGATTACAAAGGCAGGAGCAAGGTGAGGGGTGCATCACAAGGCCT
-CATTCCTAACAAGAGCCCCCCATTGCCTGGAGGAAAAAGAGGAATAAAGG
-AGGCCTAGGTTAGTAAAGACATAGCTACATGGCTGAGTAGGTCTCTGGGA
-CGTTGTAAAACAATGAAAATTAACGAACATGTCAAGAGTAATGaaaatac
-ctgacaccaacatcgaagatgggagggagtcaaagttgccgttgtctaac
-actcatggcctttgatgaggagaacagatgtgctacttaacattacactc
-tgctaagcctaaaaatggtgaaaaattaaggataactattaaaacgttaa
-acatgtagcatgtaattttcaaatcataaacaaaaagtaggaaaataaaa
-acaattcagtaaaaccaacacaaagaagaaagaaaataaaacaaacaaat
-gaagaaacatggcaaatagagatgacagaatggacaggtagaaatgaact
-tcaatatttcagtaatctaagattcattgaaaaggattgaactcactagt
-taaaatataaagTCCCACATACCAAAAAAGTAAACAAACAAAAACAAATA
-AAACACCCCAAAATAGACAAGCACGTGTGCTGTTTTGCAAACCCCTGGAA
-GCCACCTAGGATGTGGTgacatgaaaagattggcagcatggggagagaaa
-tcattcataccaggccaataacacaaaataaagctccaaatgagctggtg
-caaatatactgatatatgaaataaaacctaaggcaaaaagcattattatg
-aataaagacagctagtttagaacgattgaaggactaattcatgagaataa
-aacaccaataatgagtaagtatgcacttaataacatgtccttgaaataga
-tgtagcagatccgtatggaatcataagaaaattctgcaacacacacatat
-gcaggcacacacacacgcacacacacacacacacacacacacacacacac
-acacacccctcatggtggactttaatacattgctaagtaactgatgcatc
-aagctgaataaacatcCATATGCACAGGGAACAGAGACTCCTTAACTCct
-gcgtgtttttgtaaataaagttttattggaacacagctgtactcacttgt
-ttatttctttattgcctgtggctgctatttagctacagtggaagagtggc
-gaagctgtcacagagaccacctggcccaaaaagccaaaaataatttacta
-ctgaccctttacagaaaaagtttgccaacccctgACATGGAATCTTTCAA
-AAGCGTAGTGAGTGTTcttgatcaaacaaacataaatagaactacagtca
-tgcctcacaagggggacatgctctgagtaatgtggcgttagccaattttg
-ttgttgtgtggacatgacagtgtacctggactaacctaggttgtccaccc
-tactgcacactggggctatgtggtagggcctgttgctcctgggctacgca
-cctgtgcagcgtgtgactgtactgcatgctgcaggcaatggaaacatgac
-ggtaggtgtctgtgtatctaagcctctctaaatgtagaaaaggtgcacca
-aaaatacagcattataatcttacgggaccacccttgtaatccagtctgtt
-gccgacctagaggtctaggtgacacatgactgcacacccacccaagttaa
-ataaaatatccttctctcaagagcacacagaacctttacaaaacttgacc
-acatttcaaatcacaaagtaagtctcaaaactaccgaaaaaacatcaata
-tcactcagatcatgttctctgactgcaatttgataaaaattcatttctaa
-atgatttgtggttaaaaggagataagaaaatggaaaagagaacagacttg
-aaaccaaaaattaatgaaaatgctacttatcaaaatgcgtgtgatgccgt
-caaggcagtacttaaaataaaatttataccttcaaaacgactacgtttga
-caagggagagagatgataaaaattaatgactgaaacgtcctactcaaaaa
-aaattagaaaaagaacaagataaagctcaagaaagtagaaaggaaaaata
-atttaaataaataagtagacatgagtagaacaCGGGTCTTGGGCATGAGT
-TAGGGCAGGCACAGAAGCCAACGGTGAAAGTTTCCGGGGCGGAGGTCCTC
-AGACCCAGGGGTTTATTCCATCACCTCTGCCCTTTCATCAGGAAGAGTGT
-CTCAGAATAGGAAAGCCTTTTAGGTTTTATGAAGGGGAACTTCCCATTGT
-TTGACAAAGGCCATGACTCTAAACTGGTGGAGAGACTGAGTTCTGCTCGC
-CCTACAAAACCTTACTCTGatgtgttgaattttgtctccaaaaaatggta
-tgttgaagtcctaaccccaagtactgcagaatgtgaccttatttggaaac
-gggatcttttgtagaggaaatgaagttaaaatgagatccttaagatggga
-cttcatccaatgtgacagctgtccttagaaagatgaaacgtaaacacgca
-cagagggatgacggataggagtgatgtctctctacgccaaggaataccag
-aggtgccggcaaaccatcggaaactaggaagaggcaatgaagacccttcc
-ctacaggcttcagagggacagtggtcctgtgggcgcctcgattcttgatt
-cccggcctccagatctgcaaggcaatcagtttgtgttgctctaagccgcc
-gagttagtcatacttggtttcagcagccctgacaaaTGCACCTGCTGAAG
-ATATAACTTCATTTTGTCATTGCCAGGCCTGGGCAGGCAGTGCTAGGTCT
-GCTGTCACCAGGAGGCATCCTCCTTCCTGCTGTTTGCACTCACTCGAAGG
-CCCGGGTAGGAAACTGGCGAGGCAAAATccatcctcacacttgcctctcc
-ctgctttatgtctctgcgttgctcatcactttctaagcaagtgttttact
-gatttccatggtcgagtgtcccactatctcctctcctgcagagtgagcta
-tgggaaagtgggattgcctgtctcactccccagcaaatctgcactgctgc
-caacggagcccgaagctactgagagctccatgtttgttgaatgaataaTA
-AGATGAATGAAATGATACAGTTTTAAACCCACACTTTTATTTTGGCCTAT
-AATACAAGCATCAAGAAGATCACGAAACCCAATaaatgttcaaaattagc
-caagagaacttatcacaaaacctagtgagaaagcactccatataccagat
-acctgccacaaagccactgtcattattaaaaaaatctcaaacggcataaa
-aatagacacagagagatgagcagactagaatagggttcagaaatacaaca
-taatatcttgagggatttaatataaaaccaaggaactcttttaattcagt
-gtgaaaatgatggtttatcatcctaattaaaaaaaaaaagctaaactccc
-acttcacaccatatacaaaaataaattacaatgagaagagaaaattttta
-gaataaaattttgaaaactacagttatacatcttttGTGTTAGGGATACA
-TTTATAAATTAATTTTATGTAATGCCTCTCCCTTCCAAAAAATATTTAAC
-AATGAAATGAATTTTCCTGTGGGTgaaagaaaagaaagagaggaagacag
-acagaaggaaaataaagaaagaaagaaagaaggagagaaagaaagaaagG
-CTTATTGATATGTTATATTGTGTTGGGAGGGTGCACAAAGATAGGAGTGT
-GTGGATTTCCCCATCTCCCAATTCTCCCATTCCTGCTCCAGGATAAAATG
-TTAGGAGTTTCAGAACTCTCTCTCTCTCAGATCGCAGCCCTCAGGATGGG
-CTAAGACTCATCCTCCCAGCAGGGTTGAGTCTTGAGGCATTGTCTGCTTG
-GGTTGCATGTTAACACCAGAGAAGTGGAGCCGGGCATGCTCAACCCACCC
-CTCCCTCTCTTGTCCTTTTGGGATGCCTGTTCTCCATTTGCTCTTGGCCA
-GATGTAAGCTCAGAAATCAGTGCAGGGGAGCACTAGCAGGTCAGGAGGTC
-CCGGCCTCAGCGACGTCTGCAGCCAGCTCTTGGTCTTCTCAGATGCCTGC
-AGACACACGGCTCACTCCTCACCACTCCTTCTCCCCCACAGGACTGTCAC
-ACCAGAGTCAGAGGACGCATCTTTCAGTGGCTTCTTTGAGAAGTGTGAGG
-TTTTATTTATAATTAGCTCAACTCCTCTTTCCTTTTAGAGAGAAAATATT
-GGCGGTTCTACAAATCAATATCTTTTCCTTTCTAGATTGTGTTGACCAGC
-ACCAAATTATCTCAGTTTGGTGACACATAGTTTGATAAAGGACAATTACC
-CCCCAAGCCCCAAGCACGTCAGTATGACCTTAGCTTTGATTTTTCCAATG
-GAAGAAGTTCAGCATCATTCTGTGGAATAAATTTACCGTGTCTAATCCCA
-TAAATTCCTTTACCTTTCTCATCCTGCAGGGAGCTATAGAGCCATGAGCA
-GAATTTTTAAATTATATTAACACAATTAAATGGGTTATTTTTTAATGTCC
-TTGTAATCTTTTCTTTTCACAGTCAAGTTCCCTAAAATAATTTCAGCAAA
-AAATTTTTTCCAACGCATTAAAAAATCACGGTAAATAGTAAAATGCAATC
-CCATGGACTCATTCTCAGATTTCCTTGATGCTATCATTTTGCTGTAATTA
-CTTCAGGTTGGAAAAGAGAATTCTACTAAACACACCCCTCAATCTCCACC
-CACATTGTGACTCATGTCAGAGAAGATGGGATCCAGACAGCTAGAACCAA
-AATGGCAGCTTTATTATCATAAAAGCTGGACTAGAGGACAGTGCTGTAAT
-GGGTGACCACATAAATAGGTTTGTTAATGCTACTGGGATTGATCgtggta
-tatccataaaatagaatatcatttgaccataagaatgaatgacgtgctga
-tacgtgatacacatggataaatcttgaacacattgtactcagtgacagaa
-gccagttacaaaaggctggattctatttgtatgaaatgtccagaatatgc
-aaacctggatagacagaagctagattggttgcccagcccctggttgtttg
-agggtgatgtcagagtgagtgttaatgagtacaaggtttcttttcgaggt
-gatgaaaatgctctaaagttagatagtggaatggttatacaactctgcga
-atatactaatatactaaaatccactggattacatgccttaaagagatgat
-ttttttgttatgtgaattgtgtctctataaagctgttataaaaaGGTTTA
-TGGCTAAATTATTCAAGCTAGCTCATGTGTCATTCAGAAGCAGAAATGTA
-CATATATATGGCAATTAAAATACCCATACAAATAAATACAGATACTTAAA
-GTCAATTCATTCTAGAATAGAAATGGATTATGTTACTTCTAAAttctggg
-aatggtaaaatagcttatactgaactaacctttccatgaatggaattata
-aactccaggtcaattgtaaagacaaatatctaggttattataaagatgac
-tgcctgaaggcactgggatgtgcaagccaaagcaagcagaaattggaTGT
-ATCTGCTGCCAACCAAAAGGAGAAAACATAGTGTGTTACAGGGTGATCAA
-CACATTCaactgcatgaagttaaaatattaatatttttcttttcttgagt
-tctttaaagaaatgtacatttaaagcaaaaataataatcaattttgatat
-ttatatcatatatgaaagaaaaatgtgtaacagcaagagcacaataggca
-gtcagggaaaagagaaggctctgacattgtatgcaaaaggcgtattattt
-actcaagatgaatcatgatgaattagggatgagtattgtggatctcttga
-gcaagcactgaaggaaaaatagaagaggtataggtgaaaagccagctgag
-gttatagaatggaatactaaaaaatacttgactcagccaaaataaagcag
-gaaagaaaagaaaaagaatcaaagtgtgtgggagaatggagaaaacaagt
-agcaaagtggtacacttaatcccaaacatatctacaattacattaaatgt
-aaatggatcaaacacaccaattataaatcacagtttctcaggctagatta
-aaaatgaaagactcaactacatcctgtctatgagagggacgttttaaatg
-gaaagacacagataaggtgaaagtaaaggattaaaaaagatatgacatgc
-aagcaagaagcaaaagaaacttgggtggctatatcagacatagtaaagtt
-ccaggaaaagtgttatacaggtgaagagggccatttcatagtgacaattg
-aaaaaatccatcaagaagttgaaaaacacaaactaaaacttaatgtatat
-aatatctaatgaaggaacttccaaaatacatgaagcaaaaattgacagaa
-ctaacggaagaaaaaactctctaataatatagttggaaactataatacct
-ctctctttgcaattgatagaagaacaagacaaaaaacagtgaagatatga
-aagatctgaagacacaattagccacctggtcctagttgataatcatagaa
-catacacccaacaaatgaagaacacactttcttttccagtatagatgata
-cattcaccagggtagttgcaatgtaagacaataaaacaagtcacaataca
-tttaaacggaatcaaatcatacagagtatttatctgaagcaaacggaatt
-aagttaaaaatATGTAATGATGATTTACCTATAAAAAGTAGCAaatgttg
-aggtgacaactctccctattgacctataaatggagagaaatcgcaatcaa
-aatcccagcaatttttaaaaattgatattgatgaattgaaaccaaaatat
-gtacagaaacataaagatattagtatagctggtgaaattttgaaaaagaa
-aaatttggggtaattataccaccttatttcaaaatttaatacaatgataa
-tgatcaagactgtgtgggacagtctcaagtcaagaccagtggatgaactg
-agcagaagggaaaccagaaatagacacatgtggcctgtgaattgatttct
-gacaaaggtgctattTTAAATTTTTATTTTCATCATTACTTCTAACATAG
-CTGGCATTAATTTTGGTATTTATTGAGAGATAAGATTACAAGATTTTTCC
-CCCAAAGCACAAATCAAATATCCCAGAGCATTTCAGTGCAAAATCCAAAT
-TTTCACAAAAAAAGTATGTATTTAATTGTAATGAATTATTTTTTCTCATT
-AAAGAAATAAATGTTTACATTTAAAACTGTAAGAGAATGATGAAGATACT
-AGCATCGTCTGAATTTGTGAAGTTATATGATAtatcataacacaggcatg
-ttgtccatccatgtcccattgctgtgggttggcagggatggggtggaaag
-ttctcgctccacgaagacactcgaggatccaggtgtctctcttcttgtga
-ctctactatcccagggtcttggtgtcctcatctggctggcaaaagtgggg
-ggaaaagaagtagcataggacctcaagattggacctaaaagcagcacatg
-tcactctgccccagtccactggccagaactcagtcacacactctcctcat
-cgaaggcgaggccaggaaatgcaggctgaccttgggctgggaggacatgg
-aaGGGCCCGGTAGACACATGGCACGCACCCAAGTGCTGGGCATTGTGAGA
-GCTTTCTCTGTGCCGGGCTCTGCTTGTGAACAAGAGCCCTCTGAGACAGT
-GATGGGAACCATCTGCATCACAGAAGCACAAGCTCTGGTGATGATGAAAC
-CAGATCAGCAGTGTGCAGACGGAGGCGGTGAGGTGGACTCAGGAAACATT
-GAGCAGGACTTGGAGATTAACTAGACAGTGAAGGAGAAGAAGGTCCCCTA
-GAGACCTACACTTCTTAATGTTGAAGGCCTGAGCTGCAGGGGAGGCCACA
-GATTGAGCTGGGGCCACATCAGGGAAACACAGGTGGGTGGACTGCTGCCC
-CGAGCAATCGAGGCTGAGCTGAGGGTTTGCCACACTCCCCAGTGCAGCCC
-CTGCCGACTCTCCCACTGCCCCTTCacagtagagaagggcagaaaggtgc
-tcgggctccagagccagacctcgtgggcatcaatacccctgctgctcttg
-gtagctgggggaccgtgccttgggatgttgcataatctctctgcacttca
-gcatcctctcttataaaatggggacagcagtagctcctactgcatgccag
-tgttgggaggctcaatgatttcagtgacacctgtgaaactatgcctgATG
-TGGCCAGTTAGATATCATCCTATTACAAGGTAGTCTCAATCCACACCCAG
-TGGTACTCTACCCCTAGTGCCAGGCTTCCATGCCAGGCTTCCACGACTTT
-ACTCCCTGGGGTCCCACCTTCCTGTGGTGCCCCACCCTCCTCTCACCCCT
-CCTCTTTCTGAGTCATTCCTTGGAATTCTGCAAGGCGCAGCTCAGCTCCA
-GGCTCTCTAGGGTGTCCTGGCTGACTGCTCCCCACCAGGGTTATCCTGGG
-AGCTCCCAAGGCACCCTGATCTTGGGTCTCCACGGTTTCATGAGGAGCTT
-AAGCTAGAAGTGGATGGAGGAGAGGGGGCTGAGGAGAGCTCTCTGGCCTC
-TAGTCTTTTCCCAGCACCCTGACACCTGATGCAGAGACTTCAGCCTCTAG
-CCATGGCTGCCAGCTTCCTGGTCCTGATGCTACCCTTGGGCTGAGAAGAT
-GACAGGGTGGAAAACTACCAGGATGCTGTCCTGCAGCCATGTGACAGGGA
-GCGTTTCCAAGTGTTTCCAAGCACATTTGGCTCGTTTCTCCCTGCGAGAG
-TGAGTTAAATGCTTTAAGACAGGACATGTTGTCCTGAGAGACTGATTTGC
-AATTTATTCGAATGTAAAAATAACTGGACAATAGCAATTTCTCCCTTGAA
-TCTTTCTCATCTGGTAGGAAATAAAATTGTTATGTGTTATAATAAAGATT
-GTATTTTTGTATCTGTGGCTTTTATGAAGTGCTAACACTGCTGTGGGTGA
-ATTCTTTGAGAAAATCAAAAGATAAATCTTGGAAAAAGAGTTAGCAGCTC
-TTAAAACAGACCTTAGATTAAAACGTTGTGAGGTCTGTAAGCGCAGGCTG
-GAAGTGTTGCTTTGCTTTTCTTCCTTTGTTTGTTTACACCTTGCCTTGCT
-TCAAAGAGGACTGAAGGTGGAAAACTGAGTCAGATCAGGAATTTCCACAT
-CCTGTGAGGACGGCCCTCAGCTTTGGGGCTGGGACAGCTTCTGTGGACTC
-CTGGAGAAGACACATGACCAGGACCAGACTGGCCCTGGCGAGATCCAGGC
-AGATTCTCCTAGCTGTGCTGTCAATCCAGGGCAGCAGCCACCTTGGCTCA
-TGGTACTAGTGGGAAGCTACCAGAGATCTCACCTTGTGCCCCCAACCCCA
-CAGGTTAGAGGAGCTCCTGATGGATCACTGAGCGATTCTCCTGCCTTCAG
-AAGATTCCCAACCAAGCCGCCCAAGAACAAGGGTCAGCTCCTTTACAAAA
-CTCAACTTCCTTCTTCTAAAAGAAGATAACTTCCCACTTCCCATAACATG
-ACGTCCGCAGTCACAGACCCCACATCTAAAGCCTCCCGCAAACCAGCCCA
-CCGGGCTCACCCAGCCAACCTCTTTTAGCTCTTGGCTCCAGACGACTCTA
-GGTGATGGAGAGATAGAGAGCTCTTCAGAAGAAAACGTCTGGAGTACATT
-CCAAATGCAAGCAGAGCTAATTGGGCAGCTAAGTTAAGCCACAGTGGCAT
-TTGTAGGAACACTTTCCCACATGGCCACACGAGctgtgagttccagggag
-acagggtccatgccatgtccaccttgttgaacatctcacacactagcatg
-cactcacacactagcatagcagatgcttaaaaagtgctatttaattgCAG
-GCTTTTAGGAAAAACCCAACCTAATGAAAAGCTGCCACttcttttagttt
-ttactttttttattttctgagatggagtctcactctgttgcccaggttgg
-agtgcagtgccgtgatctcggctcactacaacctccacctcccaggttca
-agtgattctcctgcctcagcctcatgagtagctgggattacaggcacacg
-gccccacacctggctaatatttttaaattttatttttgtatgtttagtag
-agatggggttttgccatgctggccagggctggtcttgaactcctgacttc
-aagtgatctgcctgccttggcctcccaaagtgctgggattacaggcatga
-gccaccgcgcctggccTGCCACTTCCTTTAGGTATATAGCATACACACAC
-ATCTACCCCAAGGAAAACTTTTAAAAGACAACAGACCAGATAAACACACG
-TGGCCATCTTGGACCATGGGGCAGCCAACAATGTGAGCACCATCAGCCCA
-GATGGGCCCAGAATGGCAGAACTGCGTAGCCAACACATGTGTCATGAGAA
-ATGTTACATGGCTGTTTTTTTATGATGgagtttctcaacctcggcatttc
-tactagacactgctttgcacagggaggctgccttgtgtgatccaagaagt
-tgaaaacattcctggcctctactgtacagggccagtagccccctccccca
-catcctgacaataaaaatgtctccatacacttccacgagtcttctgggga
-gcaaactgaggtggagaaccTGCTTTAATCCTCTGACTTTAGAGACAAAT
-TGTCATGCGGTCTGTGTGAATGTGGCAAGGGCTAACTCCTGCACAAAGCC
-CAGAAATAGGGTGTTCTCCCTGAGGAATGTGGGAGATGCCCTGTCATCTG
-AAGGCTTCCTTCTGTCCCACGCTGCCATTGCCACTTGCCACGGTGAGGGG
-TGCTGTCCCTGCCTCTGTGAGAGCACCTGAGCTCCCCAGCCACCGAGGCC
-CACCATGGAGACAAGCCTAGGCACCACATCACATTCCCAACCCTAGACAT
-CCTGTCCAACTTCCAGGAGTGCCCCTTGCCCTCCACAGCTGCCCTCCCAT
-GCTCAACTTGACTCTTTCTAGGGATACAAACAAACAGTTAGGACGTGTCT
-ACAATGACCTTAGAACGCAGGATCAACATCTGCATGGAACAGTAAACCTG
-GAATTGAGAAACGTGGCAAGCCCACCCAGCATTGCAGGCGGTAAGCTCAG
-CACTGGGTGCACCATGCCCACTCAGCATTGCAGGCAATAAGCTCAGTGCC
-AGGTGCATCATGCCCACCCAGCATTGCAGGCGGCAAGCTCAGCACCGGGG
-GCACCATGACCACCCAGCATTGCAGGCGGCAAGCTCATCACCGGGTGCAC
-CATGCCCACCCAGCATTGCAGGTGGCAAGCTCAGCAGCGGGTGCACCATG
-CCCACCCAACACTACAGGCGGCAAGCTCAGCACCGGATGTACCATGCCCA
-CCCAGCATTGCAGGCGTTAAGCTCAGCACCGGGGGCACCATGCCCACCCA
-GCATTGCAGGTGGTAAGCTCAGTGCCAGGTGCACCATGCCCACCCAGCAT
-TGCAGGCGGCAAGCTCAGCACCGGGTGCACCATGCCCACCCAGCATTGCA
-GGCAGTAAGCTCAGCGCCAGGTGTACCATGCCCACCCAGCATTGCAGGTG
-GTAAGCCCAGCGCCAGGTGCACCCAGCCTCCAGTCTCTGATCCCTCTGCA
-GGTAGGCACATCCCCTGGGGTCTTCCTCAGCCGACTGTCAACCCCTTTCA
-AATGTGCATTGGGTTGCTGCTGCCGCCACGTTCTTTCTCCCAGGACCTGT
-GCGGCTCTCTGGATCTCACTCTGCTCCGTTTCATGTTGGTCAAAAGTTGG
-ACCGATACATGTCACCGTTACTGGGGAGAAGGTCATCTCATGCCCCGTTC
-CCCTCCCTTGGAGGTCACCAAGCTGCTCACATTTGGATGTTCTGCTCTTA
-TCCACTTACTGCTGATCTAAAAGGCTGCCAGGTTTAATAGGACCCAGTGG
-TGGGCCccatagtgagtcatggaatgcacaacctttaataacaaaagcct
-taaggatggaggaaaaacaaggtgggcgATCTTAAAACTGTTAAACCCCT
-GCCTCCTTCACTGCGCCATCGGCCCAGAGGGGTGCTCTTATTAGGAAGTC
-AGATGGGAAGGCTGGGTCGGGGGCAGCTCTGGAGTCTCTTGCAATCCTGT
-GAAAATGGGGGATGTAAGAGGTGAAATATGAAGGCACTTGGGTGGGGTTT
-GGAGGGACAGGGGCCCCAGTACTGGTCCTCCACAGGCCAAGCCCAGGACA
-CTGGGAAGGGGTGGCTTGAGAGAGGGGAAAATGTCAGGGCAGAGTCTTGG
-GAGTGGGTGCTGCCCGGAGGGGCTCCAGTCCCATTTGTGGATGACAGGAG
-AAGTCACAGGTCACAGGTCTGGGAAAAGTCCTGGCCATGCTCTCCTTTCT
-CCTCCCCTTTTTCCCCTAGGGGAGCCTGCCCCAGGCTAGCCCTCTAGTCA
-CCCTTCCTCCCACCTCTCCACCAAAGCCACCCCTTCTGGGATCTGTCCCA
-GGTGACCAGAAAGCTTTCCCTCTGCCTGGCCCATTGAACTCCTGGAACCC
-CATTGCCTTGACCAAGGACACAATTGCACATGGTGAGACTTCGGCTGCAG
-GCTGAGGCTGGGCTTGGCACTGTCCACTCAGGTCTGCTAATTTCTGGTGT
-CCCTTGCTTCTCTCAGTCACTGTAACCTTTTGGGGTGTTCCACAGCTATG
-GTGCCCcttttcatcctttacctcctgcaaccttcatgagcttcttggaa
-ggagttagcacttcatcgcctgacagaagaggaaattgaggtgcaACATC
-AGGCCTTGAGCCCCGGCCGCAGGTCCTGGGCTGCTGTCCTCAGAAACCCC
-CCACACCACAAAGGGCCAGTATGTCCCTCAAACTCTCTGTTTTCCTTTTT
-TAGGCGCTGACGGAAGCACGATTGTCACTGAATTCATTATTGGAGATGAA
-TGTGACCATGTTGGCCAATTCTCCTGAGTTTTCACGGTTTCTCACTAACA
-ATGAATGCCTCATTATCAACAGCAAAACGGGGCTCTGGGGGTGTGAGCCG
-CACACTCCTCTGGCTGGGCCCATTCAGCAGGCATCCAGCATCCGTCCTGA
-GTGCTGGGCTGTGGGGAGGTCTGAGGAGGTGACCCAGCCATCCTCATCAG
-CATCACCAGCCCCATGGGCTTCAGGAGGGGCTGCCCTGGAGAAGTATCCG
-TGGCTCAGAGGTTTAGGGATTGTTGGCTTGAAGAACCTCCTTTCCTGTTC
-CTCTGCCCATTTTCTGGGCTCTGATAAGTTGGGCTCAGTGTGGGAGCACA
-CGCACCTCTCCACCTCCTCAGGGGCCAGCCCTGGCTCCAGCAGATCCAAT
-TCAGCCTTCCCAGAGCAGGAGCCGGGGATCCGCATCAAGGTGGGTCTGGT
-GAGACTGCAGAGGTGAGGCCCTCTAAGGTGACCCTGGGTCAGCCCCTTAT
-ACTTGGTGGGTGTTCAGTAGCTGTGTAATCAGATAAAGAGACAGGTGGGC
-TTTGTTTTGTTTCCACAGAAAGTGTGGACCAAATTGGGATTCTTTCCAGC
-CACAtgctggaaccagctcatgctggcttgggagagaagacggttaattt
-tccaggaatattgtgaggcaggtgcaaacgtagGTGAAGTGGGTTGAATA
-GTGCTCCCTTCCCCCAAGAAAAGATAGGTCCCACCAGATCTGTTCATGGC
-GAgtgtccttatctggaaaggggtcttggcagatgtaattgagtgaaggc
-ctccgaggtttctgatgggctctaaaccccgtggcagatgtccttattag
-agaaagatgggggctgtgagagtcacacacacaggacagaacgccttggg
-gtgatgaaggcagagattagggcaatctgtccacaagctaagatgcagtt
-ggagccaccagaggctggaagaggcaggaaagatcctccctcaaatcctt
-cagagggagggtggccctgcctacaccttgattgcagacttctggcctcc
-agaaccctgagcagatgaatttctgttgtttaagcccccaagtttgtggt
-aacttgtgatggtagcctgaggaagctaatacaataggcatgattaaaaa
-ttatactatataaatttacaattcaataaaataagggcaatgcatactta
-aaattcagcccttcctaattgtctaattacagttcactaggagttttgct
-tctgaaatctcatttgtgtctatttcttccatatggtggaattgctctgt
-aatgacacgctgccactcaccacttctcagctgaacctccagtgtggtgt
-gaagcttcaagtcaaccctggtgggggtatttacaccacggaaattggca
-aacatgacaagacagtgcttggttcatggttttgttgattatctggaggt
-aaagcggggagaaactgccactgatgtacatctaatgccaaggtgtgctc
-ttgttattgttgttacattttttatagcactgaaaaatgaagaaatattc
-atctagaccttgggaactcatacccaacccagagccgttgtaggggtcat
-tggccaatgagtgaacttccagcatgtgtcttcgttgttttacttttatT
-GTCTGCATTCCCTATAAGTTTTGTGCTTAATGTATGTAAATATGTAAATT
-GTATGCATGACACATACATTTGAGGGTTTTTTtgtaaataaaaataacca
-atgttcacgtagaagctatgcacattcatcaattgcaattatagtttgtc
-agcacatacaagacttcagcaaacactcaatgaaaatattctgtgagaat
-taattgcctagatggaatttacaataaacagtgtggtatatagactatta
-tcatttacaaattatgtaacacacatcctctatgttagtaaaattaacaa
-caaacacataCTCTGAAGGTTGAGGTGTTGGATGAGGTTCTGGCTTGCCT
-TAAAAGGGGTTTTGTTCCTAACCTTCTTTGGGATGAGGTAGGTAGAGTCA
-TTTTAGAACTGAGGCCACTGAGACATAGGAGTGGTTTGACTGTGTCCCTC
-TGACCAGGTGTTCCCACTGTGTCCCCTCGAGGGCCTGGACAACTCTCCCT
-GCACCATTAATTGATAAATAAATTGGAGAGAGAAGCACAGCTCTCCCTGG
-GGTCTTGACCCCCGAGCTCTTTCCATTGGGTCACCTGCCCCAATACGAAC
-CCCTCCACTTCTGCCTTCTGGTCACCCTTACCAGATTAGGTGAATCCTCC
-CTTCTGAAGAACTGAGTCAACGCATGCTTCCACATTTTCCTTAAAACCTC
-AAGGATTCGTGTAACACATAGAGAAACAGGTGCCAGAGGGAGGTTAAAAG
-GACGAGTAGGATCCATGAAACTGCTTTTGCTTGAGATAGGAGCATTGGCC
-TCATCTCGAGGGGAGGCAAAGCACAGAAAAAAGCCAAAGCAGTGTAGGTT
-AACAGTGGAGACCTGATTCAGTCAAGTGGAAGGGACGGAAGTCTGATGAA
-TTTTCAGTGGAGGTGGCACTGAAGCCATTTATTTCATCATTTATTCTTCC
-GGCAGGCACTGgggcaattcctgggcacaagatactgttcccggcactgc
-acatatgttatctcgattagtccttacaacagccttccacagtagctgtt
-accagccccatcttaaagaagatgcaggtgagaaaatgtcagtgtcagac
-caaagttgccatcattagcgaataacactatgatattttcacccagcact
-gatgacaagactctttccacaaacccatgtcatctctGCTCACATTTTAA
-ATATGAAGTATATTggccaggaacggtggctcatgcctgtagtcctagca
-ctttgggaggccgaggtgggtggatcacgaggtcaggagatcgagaccat
-cctgactaacacagtgaaatcccatctctactaaaaatacaaaaaaaatt
-agccaggtgtggtggtaggtgcctgtagtcccagctacttgggaggctga
-ggcaggagaatggtgtgaacccagcaggcagaggttgcagtgagcggaga
-tagtgccactgcactccagcctgggcaacagagtgagactccatctcaaa
-aataataataaataaataaattaaaaaTATGAAACATATTAATAGCAGCT
-TTGAGCAGTGGGTGATCTGAAAAATCCCTCAGACACAAAATCCCCCAGAT
-TCTGGGTAAATTGCAAGATATATAATTTGACATGTTTGAATAGGTTCAAA
-GGAAAATACTGAAGTTACCTGCAGAGAACAAATAAATGAAACCATAAAAG
-TTGGTGCTGCTCTGGAGGAAAAGCCAACATTGAAAACCCAGGATTTGGGG
-GATCAGTTTGGAGAGGTGTCAGGAGACTAGGATTTGGCTCCTTTTTTTAT
-GTAGGAGCTAAGCCAagttctctgtgtaaagccagttttcttgaggagcc
-atatcctcagagaaagggtgggaattaaaaatatctacctactgcgaagg
-gagattacatgaaattgtatctgctactgtcccaggtagaaaaaataaTG
-CCAATAATTATTGTCTGATGTTCCATTTCAGACTGTCTCTGTTGTCACag
-tgtcttcaggttgctaacttcccttggcacctggtagtaacaatattaat
-ttttttagaaaaaaattcaatccaaatccctcaggattcccatagattaa
-attcagcccaacatgtgggtggaacaaaacataatcaaaactaagcatta
-aaactgttaccaaaagcacaaggaaaaagctgccaggagtgagaatcaat
-ttaaaaaggggaacagatttagcagcacttccctcaatagactttagata
-ttcaactgttagtagcaggacacaaaataacacagtatgaaaaaatttaa
-aataaatgtgatgttggcaaaatgagtaagaaggaataaactacataaat
-gaccagatttcttaaggaattaataaaacttctggaaattaaaaatatag
-tgaccaaaatgatgggttaatgaataggttaaatagcaaagtagatacag
-ctaaaaataaaatcaaagaaaaggaagatagattagataaaattaccgta
-atggggcagaaacaaagatgacatgaggcatgtgaaaaggagtgaaaaca
-cacacagtaaaaccagaatgtctcacatccatacatcggagtttcaataa
-aaaagtctagagaatgggaaaaaagaaaaattgaaatgataatggctgat
-gtttcttttcaggactaattaaTCTTTTTTCAGAAGAAAGGCATGAATTT
-ACAGATACAAACACACTGGCAAATAAAATCAGAAGGATACATAAAAGGAT
-ACATCAAAATAACATTTTGATCcatcgcagtaaaattttacaacatacaa
-aagatcttgaaaagccttatagagaagagagagattgctcagaaaagatt
-aacaattagattgacagcagattcctaaacagcaataatggaagccaaaa
-taattgtgtaataacattttcaaagtataaggaaaaatcatggttggctt
-ataattctgtgtccagtaaaagtacaaaggtaaaattgaacattttAGAA
-GAAAATTGTcaacaacttttaccaaaagaacttcctaaagacaagtcaga
-aagaaggaaaatgatccaggataaaaccacgagatgtaagaagaaatgag
-ctaggcatggtagctcacacctgtaatcccagcattttgggaggccgagg
-agggtggatcatttgaggtcaggagttcaagaccagcctggccaacatgg
-caaaatcctgcctctagtgaaaatacaaaaattagcctggtttggtggtg
-catgcctatagtcccagctactcggggggctgaggcaggagaatcgcttg
-aacccaggaggcagaggttgcagtgagccaagatcaggccattgcactcc
-agcctgggtgatagagcaagactctgtctcaaaaaaaaagaaaagaaaga
-aaaagaaaaagaaaaaaagaaaaaaaaaaaagaaatgttggccaaaacat
-tgatgaaaaataaaaaatatgagactatagaataaatgctgaccacattg
-gtaaatgtgggtaaatgtgaataaatattggctagtaatcatagataatt
-tatgaaatttaagaataataatacacagtctaattaaaatactggaaaaa
-caacaggttttagactttgttggggaataaaagctgaggttagtgtgctc
-agatgtctgtgttacccggaaaggattgagttattcattacatttagcat
-tgccaatgaaaagtgagaatggcaaaattttaattataatttaaaaggtg
-taagtggggaaatgatgaaaggagaaaaacccaaaccagtctaaaagaaa
-ctaaaaaaaaaaatgggaaactaagagacaGAAAGTTTGGACCAATGGGA
-AACCCATGATAAGATGGCataacaataaatataaatggagaaaattaaat
-gcttaaaatacatgacaaaatatacaatcacatccaatttacatgcttaa
-aaccagacacacgatgaaaacaaaaagtaacagaactggtgaagatgaaa
-agacagaaaatttatgtatgctcaacaaacacttgctgaaagaaagttgg
-ggcagatcaactattaatagcagaaaaacatacatctgagaatatgtaca
-gaaataaagaaggtcccagtggcacttcttccatcagtaaggaaggtaca
-gtagttctgaacttgcaggcacctaatgaagtagcctcaatatttaggaa
-cactgacagaactgcaaggaggaattgccaaatccaccgtcattgttgga
-gacagcaacacaagtcctgcaggaatgcggtgagtcagcggacagaaagg
-aagtcaagatgcagaagactgaagccaccagataagctcactgcagtcgg
-tggggagacccagaccccacatgagtctgctggacactgcacggcctttt
-tacccacacgtggaaagtttacaaaaatgggccacttgcaagtccataaa
-accgtcactatagatttcCAGTAAGTGTATTATTCTGAGTGTGATGCGGA
-GGAGAGTGGGTCTGGAGAAGAACCCTCAGCTACCTTGATCATTCAGTTCA
-TGCAGATCTTACCTGATATTACAGTTCTCTAGACCACGCATGCCCCTGGT
-CACTTAAAATATATTCCATATTggaaaaataactaatgggcactaggctt
-aatacatcggtgatgaaatactctgtaccacaaacctccgtgacacaagt
-atacctgtataacaaacacatgtacccctgaacttaataaaagttaaaaa
-aaTACTCCatatataaatacataaatacataaataaataaataaaAGTTA
-AAATATATACTCCATATTTTGCTCTCCCTTTCCAGGTCTCTAATGCAtaa
-atgaagttgaatcagtagtttaaatacactaagaaaaagacttgtttaag
-agggaagcactggcaaacttccaaagacaagatgtttacaaacctataca
-catttgtcagacacgaagaaaagaggcaatatctccaactcatcctacaa
-gcctattctaatcttgatactcaaaccggacaaagctagcatgagcaaag
-aaaatgatagagaggcgaggctcctgcataaaattacatggaaaaaaaaa
-tcccaaTCCTGACATTCACATGAAGCCGCCTCTCCCTTCCCtcctttctt
-ttcttttcttttcttttctttcttttttttttttttttttttggtttttt
-tttgaggcagagtctcactcttgttgcccaggctggagtccggtggtgca
-atctcagctcactgcaacctccgcctcctgggttcaagcgattctcccaa
-gcagctgggattgacaggcgcccaccaccacacccgcctatttttttttt
-tttttttttgtatttttaggagagacaaggtttcaccatgttggccaggG
-tcttttctcttcttcattcttccctctctcctccccgcttccattcatta
-tccctcctttttctcctcttccttcctttttctttgattttctcttcttg
-tcctcctatgtcttTCTccaagaccacatacagtttattccaagaattac
-ttgatttaatattttaaattgcatcaatctaatttaccacattaccacgt
-taaaggagaaaacccatgtaattatttaaataaatgcatgcatataaatg
-agttaatataatttgaaatcacccctgatcaaaagtaaaaccaaaaataT
-CTTTTACCAAAGTAAATGTGATTCTAtcaggatcctcagaaaatatagaa
-attatcctaggtatttcaaatgaagggaatttaacacagagaTGATTTAT
-TCATGTATTGGAAGGCATAAAGAAAAATTTTTTTAACAAGGTAATTCGTA
-TGTAATAAATTACGGAAGCAGTTGTCACCACTGGGCTGAAGTTACTGAAA
-TTTTAAAGTGGATTAAAATTTAATGTGTATGGGGAATAGATGCTAACTCA
-CTGCTGGGGGTGGCCCAGAGAGCCTCCCCCCAAACCCACACGCACCGCAA
-ATGATGGGTGCTCAGAGCTCAGGCTGGCGTCCCTGTATGTGTGTGGTGTG
-GTATGTGGCGATTCTCGAGAGATGGCTGATGGTGCCTTGCACGGGTCTTG
-GCACTGGGAGCACGTGGAAGTCGGATGAGGTGATTTGGGCTCCAGCTTCC
-TCTGCTGCAGGACAGGTGCTGACAGTGCCTGCAGCCAGAAAAACGTCTAA
-TGGTCTCTTTTCAGTAAATCAGCaatattgaagacataactattgaaaat
-atttgtaacatcaatgtaaggtacataggaagaaatctaactagatacgt
-gcacaacctcactagaatattatacatttattttgaaaaacagaaatatg
-ttgaaatacattccatatttaaagtgatagagattcagtatagtctccct
-aaattgagtcatagattcagtgaaaatctccatacaggtcTTtgtagaaa
-ttggcgaaatgattctaacagttacatggaagaacaaggaccaacagaaa
-aaagcctctcttctcctcctcctgctttccgtactcccagcagatcctcc
-cactagcagggcccaactggaagccagccagcaaaggagtctgggaaatt
-taatttgcaggagctaagccctggcatccccgagcagggtacagagcggg
-aggctcttagtggagatgaACAGGTAAACACCCAGGTCTCCATCAGGAGC
-CTTCAGGATAGCCCCCACCTAATAACAAAGCAGGGAACCtaaaaaaatta
-taaataaaaaGAAATAAGTCTAATATCATACCTTTTATATGAAAGGTTTA
-GACAGTATGATAAAATAAGGTtatatatacgtaaaagcacatatgatata
-taaatagatatacaatacttccctttacattatatatatatatatataAA
-ATGTAAAAAGGGAAAAATTTCTCTTTACATTTTATATATAATACataata
-tatataatgtaaagggaaatattgtaactatttggaggtataataatcat
-ctacatagaaccccagatgcattctacaaaaaatattaaagttagtatgc
-atttagtatagcactggatataagatcaatacatataaaaactaatggtc
-tcttttctctaaatcagcaatatttaagataacaacaatgtaaggtacat
-aggaagaaatctaacaaaacatgtgcacaacctcactagaaaattataca
-tttattttgaaagacagaaatatattgaaatacattccatatttaaagtg
-agagagattcaatacagaatgatgtcaaatctccctaaattgagtcacag
-attcaatgaaaatctccatacaggtctttgtagaaattggcgaaatgatt
-ctaacagttacacagaagaacaaggaccaacagaggccatgactctccgg
-aggatgacctctaggctctcgaatctagctcaggaaccagggatggtgct
-ggcacaaggacagagaaagagcctgatggaccaaaacagagaacccagag
-aaagaaccaGAACAGGACGGCACCGTGACTTGGCGGGGGAGGAAGATGCA
-TTCAGTGTGTGCTTCAGGACTTCTATTTGTCCACGTGGACAAGTTCTGGG
-ACTGGCAGGTGAGGCGTGGTACAGCAGGGCCACCTAGGGAAGAGTGGGAA
-TGGGCACTGCCACTGAGAGCACCCGGGGGTGTGGGGGTAAGATGTGAAGA
-GGAAGCGGCAAGGTGCCTGGGTGCTGGGAGGCACAGGCGCAGAGCAAACT
-AGGCCTCGCTCCTTCTCAGTACACGGCACCGGAGCTCAGAGCTTCACTCA
-CACCTTGGTGAGGTCACCCCAGACATCCATTCTGTGCCGCTGGTCTAACT
-GTGCAACCTCTTCGCCATGTAACCTTTCCAGCGCCCCCTCCCCAGCGCAG
-GCCTAGCTGCTGCATGATGGATCCATCTACTGGGGAAGCAAGCGGGCCCA
-GGCCACCCCCTACAAATGATCTCGTGATAATTCAGTTCCATTGAGTGCCT
-AATTGCCCTCTCTCCTCCGTTTCTCTTTAACTAGTTTATGAGTCTTCCAA
-ACTGGATTGTGAACTCTTTAAAAGAGAAATGCATTTCCTGCTTGTATTCC
-ATGCACCATTTAGCTTGGGGTCAGGCATGTagtgtgtgcacaaagacaac
-tgagccggaactggagaaagcctttctgattccagcactgcctgtctgta
-gtcgtgtgatcatgacaagccccttcctcctccgttccttacctccatcc
-ttccgtcatgtgcagtgtgaggggagtgggcatgcagcccccgaggaccc
-ctccactctaacactGGGGGCCACACCTTGGTTGGGCCAGGCACCATCTA
-ACTCTGGACACTTCctatccaaggcaaggaccagagccccgcagcgtcag
-ggtcctctgggagctgttacatttgtggcatctcagagcccacccagccc
-cgccaagtcaggctccacatgtgagcagcatcccctgggtcatccacgct
-gaagcttcagaGCCTTGTGTCCCATCCCTGGCACCGTGCCCACTGGGCTC
-CAGAAGAATCACTCAAGGGCCCACAGAGTGGAGGGCTCCAGGCCCTTCGC
-CATGTCAATTCTGCTTCTAGGAAGGGTAtgtatgagttcactagagctgc
-tgtaaggaaacaccacagcctgggtggctttcttgcctcacagttctgga
-ggtggaagccccaaatcaaggtgtccacaaggtcggtttcttctgaagcc
-tgagagggagaatgggttccaggcctctctggagctctctggcttgcaga
-tgccatcatttccttgtgtctcttctcacaggctttcctctgtgcctgtc
-ggtcactgcgtccaaatttcccctttatggggccacttgccctattgtct
-taggggcccactgtacccctatgtgacttccccttaacgaattgtgtctg
-cactgaccctgttccccagcaaggctgcattctgaggcactgggagttag
-gacttgcatatatgaattttagaaggacacaaaacccgtagcCAGACGTC
-TGaatctgtgtttcaataacttccctgtgggattctggagcacagcctgg
-tttggaaacctctgGAGCTGGCAGCTAAGGCTCTCGAGGCCTGAGTGCAG
-TGCACGGCACGTGAGGTACGGGTGGAAAGGGCTGCTGTGCCCAGAAGTTG
-TCCCCAAGGCTCTGATCTGCAGCTCCTTCCACCGGAGAGGGTGGTGTGGG
-TGGCCCCTTGGGGCCAGTGGCCAGCACATATTGTTGATGTGGACAGCTGC
-CACTGGGGGTGCTGAGTGCTTTCTTCCTTTTTCTTCTCTGCTGTTCTGTT
-CCCAGAATGTAGACTTCCCCAGAGGGATTCCTAGGCGGCCTTTTTGCGCG
-GGTGCCTGTGTGGAAAGGCATAGCACCGCGCCCGGGCTCCTCTCAGCTCT
-CAGGGCCTTCCTGTGGTGTTGGTTTGTCCGGTGTGGGTGTGCAGTTGCCC
-TCTCTGTGGTCTGCTTTCTTACTCAGATGCTAATACATTTTTTAAACACC
-GACTTGCCTGGAAGTGTAGCTGACCCTGATGTAAGACGCTATCGCCCCCG
-TCAAGAACAAGCCTCCCCACTGCAGCCGGGCTAGCTGGGGTTGGGAGGCA
-GCAGGAGCCCAGAGGCCATGCACACATCGGCGGCCCGAAGGCATTCACTA
-TGCTCTGTCACTGGGTTCTGGCACTGACAACTGTGGGAGGGGACGTGCCC
-TGTGGAAGGTGGCTTCACTGTCTGTGTGATGACTCTGCAGGAATCTAAGC
-AACCCCCATAAACTTCAAAGCACTCTGAGGAAAACAAGGCCCCTGCCATT
-CCCCTCCTTGGCCAGTTCCTCCTGCAGGGGGGCTTTGTCCCCTAATCTTT
-CAGGCTTCAGACTCAGAATGTGGATTCATTCTTCTCTTAAACTCCCTAAA
-TCCCATCAGGGGCCAAACCCAATCGGTTCTTTGAACCAGAAAATTGTGTC
-AGCCCTAGGCAATACATAGTTCAACAATTCCCAGAGACCTGTGCCTAGCA
-AACCTGCAATCTAACAAGGAGCATCAGGGTAAGACAGAGAGGTTTCCCCA
-CCACATTTGTCTGAACCCTGAGAACTCCAGGCCCTGTGAATGTGGAGGCT
-TCTGGCTCTGAGCTCCTCTCTGCACTGTCTATGCAGAAAAACTCTTCCAA
-GAAAGCGGGTGGCTATGGGCAGAAGAAATGAGGGGAGAGTTCGCTGTCTG
-AGAAACAGGGCTTTAACATCATTCTAAAGAACAAAGAATGACAGGGCCGA
-TTACAAAAGATCCTTATCTAATCACCGCAGCGGCCCTGCAGGACCCTCCT
-TGATAATGGGTTGGCTTTTCATCCATTGCAGAGTGTGTGCTCAGAGGGAA
-TGAGACTTCGTTTCTGGAATAATAGGCCATAATTGAGATCTTCCATTCAG
-GCAGACAGCCTCTGCCTCATTTAGTCCAGAACAGTGGAGTCTGACGGCTC
-CGCCCCGAGCTCCTCTGGAGGAGTATGGACGGTGTGGAGCAGTCAGTGTG
-AAAGGCAGGGGGCTTACATGCTGTGAGAGTCCCCTCCACCATGTCTGAAG
-CACACGGTTTTAATCAGACGGTGAGTGCACACCTCCCAGCCACTTCTTTA
-TCTCTGCAGGAACATCTGGAGGAGCTGGTTGTCAGTGCTTTAGGGTGTGG
-GAGGAGGTAACAAGTCCTCTCCCTTGGCTGACGTGATTTTCCGTAGTTAT
-ATAGGAGTATTTATCAGCCAGGGCTGCTCTTTCTTAGTTCATAGTCAAGA
-TCAAGCCAGGTCTCTTTCTCTAAGCAGCCTACTAATGGCTGTGCACATTG
-GTGAGGTCACATTCTAGGCATCCTAAGCAGAAAGGAATTGAATACAGGAC
-ACATTGTTGGATGGGTTGGAGAAGTGGGGGGCTGAGCCTGGCATTTGGGT
-TTAGAGTGCACCACCACCGCTGCCATCAGAAGCCACCCCAGAGACTCCAC
-TACTGCCCATGACACCCATAAAGCTGGGACTGGATACCAGAAAGCCACTC
-AGACTGTTACGACCACCTCAGACACGTGTATCCCATGATGACTGTTACGA
-CCACCTCAAACACGTGTATCCTATGACCTTGCATGTCAAAAGCAGACAGA
-GGAGGATGGGCTCCATTCTACCCAATGCCGGGTGAGAGAGGCAGTTGGCA
-AAATATTCTTTCCAGCTTTTCAGCTTCTGCTGGGAAAAGGGTGAGAGGGA
-GGCTGAGAACGCCGTGCCATGGTGTCTGTACCGTGCAGTGTGGAAGCCGG
-TGGCTAATCCCAGGCACAAGAGGGTGGGGCATTGGCATATATTCCAGTAT
-ATGATTCTAGTACCACGACATTGATGGCAGCACTCGTGCCCTCACTGAGG
-CCAGGAGGAGTCAGGGCTCCCTCGATGACTGGGGCCCCAGTTATCTCTAC
-TTTCCACATCCTGGCCATTAGGGGCTAATTGTGATATGCTTGTAGGGGTT
-GAACAAAGACCAGCAATTAATTTTACCCCTGAAATTTCAATTCTGTCTCA
-CTTGAATCCATTCCAGTCAGTAAAGGCCTGCTCTTGGAAGGAGATGGGGT
-TCGTGAACTTGGAGATTGAAGGAAATCAAATCTACCCTCTCGGACCATTG
-CCAGAGTAACTGCAAAACACACCCAGGGCAGAGATTTTGTTTGCAGGTGA
-TGTGTATGTTATGGCCCCTTTGTCGAACCTTTCCTTTTTGCAGAACACCC
-AGAGCATGTGGGGGGCACCAAGCAGAGGAAGTCCTCGTGGAGGTAGAGAC
-CCTCGGAGCTCTTGGTGCAGGCCTGAGTAGCCCCTACCAGAATCACTTGA
-GCGACCCGTCTTCCCAGCACAATGACCACCCCCGCAGCCCTGGGACCCGG
-GGCCCTTGTTTGGATCCTCATGGAGCAAGGCGTGGGCCCAGGTTCTGCCA
-CAGGAAGTCAGCGCATCCGCGGGGCCGACTGAATCTCCTGCTGTGGCCTG
-GAGCGCTGTTCAGGCGTGGAAAAATGACACCACGTGTCTGCCCACGTTCA
-GAACAGAATTGAAGAGGAAACCACAAAGAGAGAGTAACATCAAAGTGTGA
-GCGTGCCCCTCATCTCAGACTGTACACCAGGAAGTGTTTCCAATGGATCA
-AAAACACAGATGGAGATCTGAGCTATTCTCACACAAATCAGCTGTTCCAG
-GCTTTGGAAACTAGGGTGTGGCTGTGACCCATGGGAGAGGGGGAACAGCT
-GGGGGAACCCCACATTCTCCTCGCATTCCCAAAGGGGCCCCTGGAAAGGA
-GAGCCCAGATGGGGAGCAGAGGTCTGGAGGTGTGGCTAAAACCCACCTCC
-GCAGCTTTCAGTGAGGACAGCTGTCCATCcagggggtccagtctttcggc
-ttccctgggccaccttggaagaggaattgtctggggccacacataaaatc
-cactaacactaacgatagctgatgagcttgaaaacacacacacacacaca
-caaaaactcatcgtgttttaagaaagtttagggatttttgttgtgccaca
-ttgaaagccgtcctgggctgcttgtggccggcgggcttcgggttggatga
-acttgTTCTGGATAATGCAGGTGGACCTGACTTACTAATTTGAGGACCCT
-AAGAGTAGAGCTGAGGATTCTCTCCCTGAAGAAAGACTTCCACAGCGCTC
-CAGCCTGCCCTCCTGGGGCCCAACCCACCCAGACCTCCAACTTGCCTAGC
-CAGACCCCCCAGGTTGTCTAAGGCCATTCCTGGCACTAAATCTCTTACTA
-TAAATCCCTCCACATGCCCCATCCCCACCCCCACATTCTGTGTCTCTGGT
-TGAACCCGAATGAATAGACACCTGCCTGGAGCACCCACCCTCACCCATGT
-GACCGCAGAAGAGGAGAGTGCCCAGGGGATTGAAGGGTGTGGCCACGCGG
-GCCAATCACTAGCCAGGCCAAGCCATCCATGCTCCGAAAAGCTCAGCCTT
-GACCAAGGCCTCAGAGCATTTGTTCAGTTAACAAATGACAAGGCTTCAGG
-AAGCCTCCTCCACGATGAATAAAGTGATGGTTTTGACCTGCAGGCTCAGA
-GATGTGCTGGCTTCTTCAGAACTATCCCATCGCTCATGGATGTGCTCACC
-TTCAGGACAAGGGCACCAGATGTTTATCCAgccaatgtcaccagccagag
-accccaggggaccccctgcagttgagcaaggtggcttcattgcttgctgg
-agaaaggagactcagggaaactttggggtgcctcagtaagagggtgccaa
-aaagaatgtacaggattcaggcttggattcgagggctgtggaggggtccc
-aggaagcagaagttggctcttggtaacaagtagggatctttcctacgatc
-agacatctttttaaaAATGGAGATACAggctgggcacagtagctcacacc
-tgtaatcccagcactttgggaggctgaggtgggcggatcacctgaggtca
-ggaattcgagaccatcctggccaacatggtgaaaccccatttccactaaa
-aatacaaaaattagctgggtgtggtggcacacacctgtagtcccagctac
-tcgggggtctgaggcaggagaatggcttgaacacaggaggcagagattgc
-agtgagctgagtttgtactagtgcactctagcctgggcgacagagcagga
-ctccgtctcaaaaataaaaaattgagatacaattcacatgccgtaaaatg
-tacctttgtaaaatacaactctgtggctttttgcgtattcatgaagttgt
-gaaaccatcaccactatctaattgcagaagcttttcattaccccagaaag
-gagctctgtgacggtcttcagtccctctctcgatgctcccctccacccat
-ggccaccccaaatctactttctgtctctatagttttgcctgttctcagca
-tcgcatgtaagtggggtcacacacaatgtggtcttgtgtctgcttctttc
-actaagcgccatgttgcaaggttgattcacgttgcagcatgagacgaaat
-cctgttcctcctttggactgaattactgtctcttgcgtggatggaccaca
-ttctgtttctccagtcatctatcgagggacatttgggttgtttccacctt
-tgggttcttgcgaattatgtggccttgaacctttttggacaggttttggt
-gaggaggtgcgttttcaaagcacgtgggcagatgtccaggagggggttgc
-tgggGGTGGGGGCTGGTAATGATTTATTTGTGTTCTCTTTGTGCATCTGT
-CTTGGAAGGCAGCCTGAAATGAGGATGAGGCTGGGAGGATACAGCTGCCA
-Tgtcactgagaggagctgggaagagggcacttggcaccttgtgttttgca
-cagcgaccttgtttttgaccgtaattttggagtcattttgttctgggtct
-ctcttcatcatgatcccagaccaacctcgtccaccccaggacttctgtga
-ggtcacttttatgtccgacagggaggcaccacgaccacgccgtgggCTTG
-CTCCTGGGTGGGGCATTGGGGCAGCTGCCGTCATCCTGGTCCACAGTAAC
-ATCCTGTGTGAGGGGAGGGAGGGTGTGAATGCCTGCGGTGAGTTCCCTGG
-TGTGGCGGATGGGCTGCCTGTCTGCCCTGCCACCCGGCATTGGCCACTGA
-GCAAGTTAGCCGCTCAGAGCGCTCGGAGCAGGCAGAGTCAGCAGGGCCAC
-AGTGGACCCGCCACCCCTTCCACATGCGACCCTCCCCTCTTGTCTAGGCC
-CCCATGCGGCTTTCCTCTCAGTCCGGGACACTCGATGTCCCCCACGCAGC
-CTTCTCTGCCCACTTCACGTTGCATCTTAAGTGGCATTTACCAAGAGCCA
-CCCCCCAGGCTACATCAGGTGCCCCTTCTGTGCTCCCCAAAAGACCCCTA
-ATTTCTCTTCAAGGGGGAATCAGAGGAACAGGGAGCAGGGCGAGGGCCAT
-GCATATTTCCCACGGGAACCGACACGGCCGCTGGCACCCCTGCCTCCAGC
-CGCCGACACTGCCCGGCCAGTCCACAGACAGCTGCTTCTCGCCCAGCCTC
-CCTCCTCTGTCCTTTGCAAAGCAAATATGACCCAGTTCCTCCCAGTCAAC
-AAACTTGCAGAACTCCGTTGTCCACAGAATAAATCCTAACCGATGCCGGG
-ATCTGAGCAACCCGTCTGGCCAGGAGTGTCCGTGCCCTGGGAGGTCCTCA
-GGCTCTTCGAGGGGTGCTGGGCAGCATCACAGTGAACCAGGAGAAGGTGT
-GTTACCTGAGTCAGGTCTGGAGCTTGGGAAACATTTGGTTGTCAGCCTCT
-GTCCCCTCCAGCTAATGTACATAGCATTTAGATTGTGTTACAGCTTGACA
-ACCACTCCGTAATTATATGGGTAGGACAGGAAGGAAGTGGTGTGTGGTCC
-ATGCCCAGCATCACATTCACCAAGACTGCCGTCCACATTCATGAACTTGT
-TTGTTGCTAGAAGATTCCCCAAATGCAGATGTGATTTTGTTAAAATGCTT
-GACAATTCAGAGTAAGTAAGACCTGTCCCCAAATGCTTAGTTTGGGGCAA
-ATTCTGCTCTGCGTTAGATAAAAGGCCTGAAGATTTCTCAGAAGTTAAGA
-ATGATATTTCAGGTGAATTATAAGAAGAGAATGTCCTTTTCTATTTAGAA
-AATGCAATAAACTTCCCCTGCAGCGTGTTTACCTTTTTAAAACTAGACGG
-GAACCACATTCCGGCACAACAAAATATCCCCGACAGTTTCTTCTAGGGCG
-GTGATTATGATGTCTGTCATGAGTGGAAATGCTTAAATATTTCAattcca
-caaatgtttatcatgcacctgctatgagtccaatcatctctgggcacaga
-ggaagatacaaaaaaaaaagAAAAAAAGAAAAAAATggctgggctcagtg
-gctcatgcctgtaatcccagcagtaggaggctgaggcgggcagatcacct
-gaggtcaggagttcgagaccagcctggctaacatgatgaaactctgtttc
-tactaaaaatacgaaaaattagctgggcatggtggtgcatgcctgtaatc
-ctagttactcaggaggctgaggcaggagaatcgcttgaacccaggaggtg
-gaggttgcagtgagccgagatcatgccattgcactgcagcttgggcaaaa
-agagcgaaactccatctcagaaaaaaaaaaaaaGTATATGAAATAATGAC
-AATAAACTAACCAGGACAGACCCATATAAATAAGTGTTGACTTCAAAGTC
-TTCCTCTTGGAGGAAGCGGGGACTCCTTCCACTGGGTCCTTAAGCAGCCA
-CGGCTCACTCTGGCTGCTGCGCTTCATTTTCTGCAAGGTGCCTGGAGCTG
-CTGATCTGCAGATGGATTCTGTGGGTCTTTTCCAGCAAGGAGATTCCTGG
-AGCTCTGTGATTAAGGTGGGCAGCTTCCTCATCTCCTTTCCTTAACCCTG
-GGGCAGATATAACCACCACTCACCACTGTCCAAGTCTTCTTCCCCTCCAG
-ACCCAGGAAAGACCACATCTGTGGCTGATTTCACCTGGAGGTGACAGGTG
-TGCTTATTTCCAAATGCTGTACTCAAAATGCCCTTCCTCACCAAGGCTGA
-AGGGAAGGCTGTGATCCAGATGGTTCTGCCTCAAGAAAGGGGAACctcca
-gcagcctgaggtcctgaaataaggtgtggaacagagccccctgcctatgc
-aggataagtaatatgagcagacagtgatctctatccgtgtgtgtgtgtgt
-gtgtttatgtcactaagattccagggtcattagtgactgtagcacagttt
-agcctgttccggctgctacCTCCTTTCCCACTCCCCACCTACATTTACCA
-AGTGAAAACCCATTCTCTGGCTCTTGTTGCAAGCAGGGAGATCTAAAAAC
-agagagagagagagagagagagagagagggagggaTGAGGGATGATGGAT
-CCAGTGGGTTTGGGTTTGTTTTCAATTGGGTGTCTAAGATGTTGCTCTTA
-TAAAGATACGGAATAAGGTCAACCTACTTGAAGAAACATTCTTGGAGAAA
-GAGAGACACCATGACATGTTGAGAACATATAAAACAGCCTTGTCTTATGT
-CATCCAAACTTGACACTATTGAGTTTTACATTTGATGACTCCAGAGTTAT
-TTTAAACATCTTTTGTAAGAATACAGGTCAGTTACTAAggccgggcgcag
-tggctcacccctgttatcccatcattttgggaggccaaggccagcggatc
-acgaggtcaggagatggagaccatcctgggcaacatggtgaaaccccgtc
-tctactaaaatacaaaaaaattagccagacatggtgtcatgcacctgcaa
-tctcaggaggctgaagcaggggaatcacttgaacctgggaggcagagctt
-gcagtgagccgagatcccgccactgcactccagcctgggcgacagagcaa
-gactgcatctcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-atacaggtcagttactaaaaaaatttgctagtttgtttgatgttcctgat
-gattagattcatttgacaaatttttggccgaatgctgcataaatgatatt
-ttgcctttccagggacccacattccagggactcacacccaggtgtgcacg
-acatctgtttgcccttagtcgatcatgttaattttgagcgcttggttaaa
-gtgtgacctggtttctccactgtatagttactggttttaattttgtgaat
-tagtaaatacttggtagggagattattagattatatacatatcctttttc
-tcaacaaacattctcatatttaggatctaggatgattctagcctgaatta
-gttattactatgatgagggcaagtgatgattttccaacttttggtgtttg
-ttagctggtgttccactctaaggaaaagcccttcctgtccctccatgtat
-tcacttattgatttatctatcatttatttgtatgtatttatgtcagcgta
-gcctcacgcattcttgttttattggatggtaatgatctgtcccttgccac
-ttgctctggtgctcacactgtgtggctttggcccaggtgctccaaggagc
-aggcttcccggtccctcagacctgccccatcgatgttgaggaagctcctc
-attttgggcacagtcagttgtttaaggctctgtttgtgtcctcctgcttg
-aggtcctgaaccagccatttccccgaaggagtgctgctgcctttcagaga
-ggaaAGTCAGGCCAGAGAAGACACGGCAAAACGGAAGAAAGTTTCAGGTC
-ACAGGAGACTAAAGAGAGGATGCCTAAACACAGCACGGGTCACAGGACAC
-TAGAGAGGGGGGACCCCTAAACACAGCGCAGGTCACAGGAGACACAGTGC
-AGGTCACGGGAAACTAGAGATGGGGGATCGCTAAATACAGTGTAAGTCAC
-AGAAGACTGGAGAGGGGACCCCTAAACACAGCATGGGTCACAGGAGACTA
-GAGAGGGGGGACCCCTAAACACGGCACAGGTCACAGGAGACACAGTGAAG
-GTCACAGGAAACTAGAGATGGGGGACCCCTAAACAGAGTGCAGGTCACAA
-GAGACTAGAGAGGGAGGACCCCTAGTCACAATGTAAGTCACAGAAGACTA
-CAGAGGGGACCCCTAAACACAGCATGGGTCACAGGAGACTATAGAAGGGA
-GACCCCTAAACCCAACATAGTTTACAGGAGACTAAAGggtggctcacccc
-tgtgatcccagcactttgggaggctgaggcaggaagatctcttgagccca
-ggagtttgagaccagcctgcgcaacatagtgaaaccccgtctctacaaaa
-agcataaaaattagatgggtgtggtggcatgcctctagtcccagctattt
-gggaggctgaggtgggaggatcacctaagcctggTTAAAATAATCAGGAA
-GAAATCAAGACCAAAGTGAGGtcctttttcccttctcctcttccttcctt
-ccttctttcctccctcccttcctccctccgtctctccctccctccctccc
-tccctccctcccttccttccttccttccttccttccttccttccctcTCT
-TTACTAACTGGGAAGAAATGTGGTTGAAAGGAAATGTCCTGGCATCTGAA
-GTTCTTTGGAAACCAGGCTGGGAGCTTATCAGTGACATAGCTTCTGGTTG
-GTCATCTCAGTTCCCTGGGCCTCAGGATAAGGACACTGAGGACACCTACA
-TGGCACAGCAGGGTGGGAGGTGCGTGGGACTGAGCCCTAGCCTGGCGACC
-GGGACCCCAGCCGTTGTTATTTCCCCTGCGACCCACAGGCTGCGGGTTGG
-GCTGCAAGTGACCTCCAGGAACCCACACCCAGGGCAAGAAGCCCCAGACA
-CCTCGGTGGGAAGGTGAGGAGGCGGGCACTGGACCAAGCCTTCCTGCTGG
-GCAGAGATGGGACTGGCTTTTCATAAGATTGCGCCTTGggccgggcacgg
-tggctcactcctgtaatcccagcactttgggaggccgaggcgggcggatc
-acgaggtcaggagatcgagaccatcccggctataacggtgaatccccgtc
-tctactaaaaatacaaaaaattagccgggcgtagtggcgggcgcctgtag
-tcccagctacttgggaggctgaggcaggagaatggcgtgaacccgggagg
-cggagcttgcagtgagccgagatcccgccactgcactccagcctgggcga
-cagagcgagactccgtctcaaaaaaaaaaaaaacaaaaaaaaaaGATTGC
-GCCTTTCAGCAACATCAACTCTTCCAGGAAATGTGCTTATATTTGCAAAA
-TGTATCAAACAGAATAAAACTATCTAAACAACCATGACTCAAAGGCTTTC
-TTCTGACTTAAGCAAATGGAGTTCAGTTTGCAGTTTGCAAATTCTTCCGT
-GGAGTTAAATTTTTGAGTCACTTTGCACAATCTTGCTCTTTAGAATAGTT
-TTCAAAGAGAGAAAACGCCTAAAGCAAAAATTCTCAATTCCACAGTCGCT
-TCCTTAGCTCACCCACAGCCTGGCTCCCAAGGCGGGAGAGAGGTGAACAT
-TCTACCCACATCCCCCTCTAAACACATCCAGCTGCCTCTGGAGGGGACGG
-CAGAGGCTTCTGGGCTCCTCCTGGGGCTGAAGGAAGCGCTGGGGAGGGTC
-CTGGGCTGCACCATACAAAGATGCAAAAGGCTTACCATGGGCAGGGTCAG
-GGGAAGTGTGTTCATTATTTTAAGTGTGAATGTTTAGTGGCTCCTGGAGA
-AGGTATGGATAGACCCTGAGCCTCAAAGCCACCCTGAGCAGCCAAGTCTG
-GACGCCCTGGGGGTGGCTCAATCCCGCCCATCCCTGCTGCCTCCTGCACC
-ACCTTCCTCAGTCACAGATTCCCCGGGGCAGAGACAGACAGGCACGCTCC
-TCTTGGCACCCTCCCGTATGGGGCCACCAGTCCCTGCCCTGGCCCCAGTG
-AGTGCCCTGAAGGGTGGTTAAAGACTTCAAGAGAACGGAGTCTCTCTGTT
-CTAGAAGCTGCTCCCACCTCAGCTTGGGGCTGACCTCTGCAAGGGACGAG
-GCCCTCCTGCTCCCCAGCGCCCACTGGGTCCCTTTCTCCACATCCACTCT
-CTGACCAGCTCGGCTGCCCCAAGCCCTCCTTCCACCCACGGATGCCTGCT
-CCGCTCTCTGGGGCGTCTGGAAAAGGGAAGGTCCTTCCACTGCAGCACTG
-GGCTTCCGATGTTTGCAGGACCCGGTCACATCTCTCCCGCTTGGTCAAGC
-CTGTGCTCGCGCATTTTCTGAGATAGTGTTTGTTACAGGTTTCCCCAGTG
-CCTGCCTCTGCCCCTAAAGTTGCCAGGAAGCATTGGCACAGTCCCTGCCA
-CTCTCCTGGAGGAAGGCTGGGCAGGTCTCACACCAGCACTGGGAGAGTTC
-TGACAAGGTGGCTGGGCCTGGGTGCCATCCTGGGTTCTGTCCTGCGCCTC
-TCTcagcaaatgacaccatggacccctcactctttcttcaaacactcttt
-cctcctggcttccaggacacctggcttcctgaccctttctcactccctgc
-ccctgcttaggctcctgtctggctcatcctcattttggtgaacttgatac
-cttagtacctgaggctcagaccttcccctcctcttccctgtccatacgca
-atcagtcccctgggcagtatcctcctgtcacctggttttagtaccgtcca
-tctgcagagactctgaaacgtgtagctccaggacatgcatcttccaccac
-tctctccttccttcctccctccctgcttccttctttccttccttccttcc
-tctctccttccttcttccttccttccttctcccttccttctttcctttct
-tccttccttccttccatccatccatccttcctccctctctccttccttct
-ttccctccttccttccctccttcactccttccctccttcattcctttctt
-tcttcctcatacacacagctgaacactccatagaagttgacatttgacag
-acatctcaaatggaacacgcgtgactctaaactcttgatttctcctcaaa
-acatgcttctcccccatttcccaatctctgtaagtgggaaaactgttctt
-tctgtttctgagaccaaagtcctcagcgacgtctcaaatcccctttcatt
-ttcactcctcatcttcaatccatgggactttcaaaaccacaacaagaacc
-ccaccactCAAGCACAGGGCCTCCCCCTCCAGCCCTCAGCCCTGCCACGA
-TGCCCCTACCTACTCTGTTCTCCCTGCCAGTCCTCTGTTCTTCATGGAGC
-TGCCAAGGGGATGCTTACCAATCTGATTTGTGTCTTCCTTGTTGATAATT
-GACACCGGACccctcgtggggatgtgtactccacccaggagggcagagac
-ctgctccatcagcagctgcgtcctccttgcctgggacagtgcctgggcat
-cagcagCCATGTCCTCCTTGCCTGGGACAGCACCTGAGCAGAGACCTGCT
-CCATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCAGAGACC
-CGCTCCATCAGCAGCTGCGTCCTCCTTGCCTGGGACAGTGCCTGAGCAGA
-GACCCGCTCCATCAGCAGCCATGTCCTCTTTGCCTGGGACAGTGCCTGGG
-CAGAGACCCGTTCCATCAGCAGCCATGTCCCCCTTGCCTGGGACAGTGCC
-TGGGCATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCATCA
-GCAGCCATGTCCTCTTTGCCTGAGACAGCACCTGAGCAGAGACCCGCTCC
-ATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCAGAGACCTG
-CTCCATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCAGAGA
-CCCGCTCCATCAGCAGCTGCGTCCTCCTTGCCTGGGACAGTGCCTGAGCA
-GAGACCCGCTCCATCAGCAGCCATGTCCTCTTTGCCTGGGACAGTGCCTG
-GGCAGAGACCCGTTCCATCAGCAGCCATGTCCCCCTTGCCTGGGACAGTG
-CCTGGGCATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCAT
-CAGCAGCCATGTCCTCTTTGCCTGAGACAGCACCTGAGCAGAGACCTGCT
-CCATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCAGAGACC
-TGCTCCATCAGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCATC
-AGCAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCAGAGACCCGCTC
-CATCAGCAGCTGCGTCCTCCTTGCCTGGGACAGTGCCTGAGCAGAGACCC
-GCTCCATCAGCAGCCATGTCCTCTTTTCCTGGGACAGTGCCTGGGCAGAG
-ACCCGCTCCATCAGCAGCCATGTCCCCCTTGCCTGGGACAGTGCCTGGGC
-ATCAGCAGTCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCATCAGCAGC
-CATGTCCTCTTTGCCTGGGACAGCACCTGAGCAGAGACCCGCTCCATCAG
-CAGCCATGTCCTCCTTGCCTGGGACAGTGCCTGAGCAGAGACCCGCTCCA
-TCAGCAGCCATGTCCTCTTTTCCTGGGACAGTGCCTGGGCAGAGACCCGC
-TCCATCAGCAGCCATGTCCCCCTTGCCTGGGACAGTTCCTGGGCATCAGC
-AGTCATGTCCTCCTTGCCTGGGACAGTGCCTGGGCATCAGCAGCCATGTC
-CTCTTTGCCTGGGACAGCACCTGAGCAGAGACCCGCTCCAtcagcagccg
-cgtcctccttgcctgggacagtgcctggcacctggcaggtactcgcttag
-tgtGCTCGGGCAGGTGAAGGAATGCAACGGGCTGCTTTGCTCCATGAACG
-CGCCTGTGCGTGTCTGCCGTGTTCCACGTGTATTTCGTGGAGGCCTACAG
-TGTGCACATATGCCAAGGGTGGGGGGGGGAGCGGAATATGGGGTGAATCA
-AATATAGGCTTGTGGCATCTTTAGGAATATGTATTtatttggtctttgtc
-cccactccctggcacacagctcctaaagcccttgacatctctggagtgat
-gagggtctttgtaggccaaggagatgaagggggccagggccccagggagc
-ttcaggttggggtctggtggccaggaagacaaaggcagaattggggggtg
-ggactttcagcccctttcccaactccagggagggaagaggggctggaggt
-ggagcagtcaccaaggacaggtgacataatcagtcctgcctgcagggtgg
-aagggtctggggggctgctgggctgctgactccatccaggtgttgggagg
-gcggctcgcccagaaagcacgtgcaggatcctcgccctccctccttacac
-tgcagctcttccttgtggccgttcttgaggcggatcttttataataagtt
-gttgagaataagtggtggattttgctgagttttgtgagctgttctagcaa
-attatgaaaggaggggttatgggaagccctgatttctagcctgtcagtca
-gaagtacaggggccacctgggacttggtggctgacatctgggatgggcac
-agttttgtgggactgagcccctcacctgtggggtctgtgctgattaactt
-gtgggtaatttgtgtcaattgtggggcacccagctggtgtctggagagtt
-gaagaattggtcgtttctgtgaataaaaagcaccatgctttggtgtcaga
-gtgttccgagTAAAAACAGTTCCAAAGACCTGGCCTCAAGGGTTTCACCC
-CTATTTGGGGGAGGCTGGCCAGAAGGAGTGAGGGAGGAAGTTTCCTTCCC
-TTAGAATGTCAGTTCCCCAGACGGGATCCTGTGGCTTCATGGCTGCGTTC
-ACACTCAACAGTGCCAGCAAGCAGGAGGCTGCTGTTGAATATGCACAAAG
-AAGGAAGAGGGAGGGAGGAGGAGGACTCCAGAGAAGGGAGGGTCCCCTCG
-ATTGGCCTTTCCGCCTGGTGCCATCCTGCCTCCATGTCAGGACACCCCAG
-TGCGACCATCTGTCTAAGCGTCTGACCTGACCAACCTGGCATTTCAACCT
-TCTTTGGGGAGAAGTGGTACTCGGTGTGCATTTAATTTCATAATTGCAGT
-CTCCGATTTGTCAACTTCTCTACCTTCGGGAAGCACAAGGAACACTTTCA
-GCCAGCGCCTGTGTGATTTCAGAGCGCTGCCCTGAAGTAACCTCTTGTAA
-AAACCCACTGTGTTACTAGCTATTGAAATTTATAGCTCTCGTACCTCTGG
-GAGAGGTGAAAGTGTTTACTGTTCTTTAAATAAATAAGGATGTGTGTTAA
-GCATTATAAGTGAGTCTGGGAGACGGGGGTGAAAAACAGTTTTAGGATTT
-GCAGTTGAGGAATTGTAGATTTTACTCTTTTGGGTTGGAGGCTGGCAGAA
-AGCACTGGTGCACAGCCAGAGGGGCAGGGTAGCCCCCTGCAAATCTCGAA
-GACCTGGGAAAGCCACTCTCTGAGCAAGGTGGGGTGGGTGCATTCATGAA
-CAGCCAGTGAGTCCATTTTCCCTTTGGTTAGAATAAAATAAAACCTACTT
-GCAAATACATCTGCATGAAAACAAATAGACAATAAATAAACACACACATA
-ACAAAATCAGTAAGAATACACATAATAAATAAAACTAATAAACATCAgcc
-ccgcctctcagaagctgtgtgatcagcaaatattttcatttttggagcct
-caatttcttcattggaataatctggaaaatatttcctgcctcctggcttt
-gttggggggatgcagttctgctaatgcagtgagacgtctgctgccggcat
-cgacagaagcCTGGTCTGGACACACAGGGCGCTGCTCTCTCAGGATGACT
-GGGTTTTAGGAAGAGCTGTTGCCTGTTTTAGAGAAGGTCACACAGTCAAA
-CTCTCCATGCAGATACTTTGTCCACTCCCAGATGTGCGGATGGAGACTGA
-AGGGAAAGAGGCGTGGTTGATCCCATCATGGCAGGGCATCCGTGGCCTTC
-CTGGGGGGACCACCTACTGCCCCTTGCCACACGTCCTGAGTGATGGTGTC
-CAGAAGCAGGAGCTAGAGACACGCAGGCCTTTGTCGGCTCTGAAACACAG
-CGCACACTCAGGACCGCATCCTCAAGGCGCTACACCAGCCATTTTGCTGA
-AGGCAAAACATCTTAAAATAAACAAGTCAAggccgggcacggtggctcac
-atctgtaatcccagcacttcaggaggccgaggtgggtggatcgcctgagg
-tcaggagttcaagaccagccaacatggtgaaaccccatctctactaaaaa
-tacaaaaattagccaggcatggtggcaggctcctgtaatctcagctactg
-gggaggctgaggcaggagaatcgcttgaacccgggaggcagaggttgcag
-tgagctgagatcgcgccatcacactctacactggacgacaagagcgagac
-tttgtctcgaaataaataaataaacaaacaaGTCAAATGTGCAAAGAAAT
-ATTGCCGTGGTTCTAACTTCACAGATTTGCTGACTTTCTCTGGGGCTGCA
-AAACTTCACTATGTTTCCAGGCAAAAGGCAGGTGGACGCCAGGGTCTTTG
-CAGGTGCGGGTGGTGAACCCAGTGCAGGGCTGTTTCCCCCCTACCTGCAC
-ATTGCCTGCGTAAACAAAGGCCAGCTCTCTCCTCATTTTCTCCGTGTTGC
-TTTCCAACAGCAGCTGACTGGGGAAACCCAGAGACAAACGGTCCCAGGGG
-CTCCGAGTGACACTGTGCTTTGTCACCACGTCGTTCATCTCAGCCAGCTC
-CTCTGCCGGCCCCCTCTTCACCTTGATGGGGCAGCGCCTTTCTCCGCTGT
-GTCTGTGGCCTTCCCAGGTGGACTTCCCACAGGGGGACAAGGAATTGGCT
-CTCTGGGGATCCAAGAAGCTGCCAGAACACTGCAGAATTCCAGGCAGGGA
-GAAAGGGCAGAGATTTCATCCAAACTCCAGAGTCTTCCTGTGAGGCGGCA
-GCAGGACAAGCCCTGCTCACAGTTAGAAACTGGACAGGTGGCAACACGAC
-CTGAAAAGTGTGAGAGAAAGTCCGGAAGTAAGCCCAGCAGGCAGGGAGAC
-CTTGGCCACGCTGCGTCATCCCTTTCTGACAACTTGGGAGGATGATATTC
-CTCCTAAATCGTGGAGAAGTCCTGTGCTCCTTCAGCAAACATCCCTGGAA
-CATTTCCTACAGGGCAGGTCTTAGGACAACCCTAGGACCAAACATAGTGA
-AAGCATCCACAGTGGGAGGGGAGGGGTGGGCAAAGGAGCATCAGCAGCTG
-GCGGTGAGCACAGAAACCCCTCATCGGACCAGACCTCGGGGAGCCGGACC
-TGGGGAAGCAGCAACCCCTCATGGACCAGACCTCGGGGAACTGGACCTGG
-GGAAGCAGCAACCCCTCATCGGACCAGACCTGGGGGAGCAGCAACCCCTC
-ATGGACCAGACCTGGGGCAGCAGCAACCCCTCATTAGACAAGATCTGGGG
-AAGCCGGACCTGGGGAAGCAGTAACCCCTCATGGACCAGACCTGGGGGAG
-CAGCAATCCCTCATTGGACAAGACCTGGGGAAGCCGGACCTGGGGAAGCA
-GCAACCCCTCATCGGACCAAACCTGGGTGAGCTGGACCCGGGGGAGCAGC
-AACCCCTCATGGACCAGACCTGACAGCcgagggccggggctgtgtctcat
-ccatcactgtctctcctgatctcatcagcacagttgggaacagcagggga
-aaatgtcttgagtgaatggaCTCAATAACTTAGACACTGTTGGAATCCAA
-AAGACGCACCCAGGACAAAGCATCGGTAGAGGAAAGCACATTCCCGACGC
-TGACCCATGAACTTCTCACACTCCAGAGTTCCCCTCACAGGCGGCAGCAG
-GGCCTGTGTTTCCCAGTTGGAACAGGGGTCGTTTTGGCCCATGACCATCA
-AGACAGGCGCTGTTGAATGCCCCTGTCTGGCACAGGGGTTGTAAATTCTG
-AGGAAAATGGGCAGCCAGCATTCCTGCTGGGCATCCATTCCCCATTTCTC
-TCTGATTCTGCTGTTTCTCAAGGAAGCAGAATCTCGCCCATTCCACCTTC
-TCCTGGCCTCCCCGGCACAGCCACTACTCTTGTACAATTACTGCCTTCAG
-AGCCTGTTGTTCCTTCTCTCGAACTGACCTGGAGGAAATAATTACCAACA
-GCATTTAGCACTGCTCTCTTCTTCTTATAGTACGTGGGGATCCTTTGATG
-TATTGTGATATTAAACATCTAAGTAACCCAGATGGGTGTTGTCTGTCGTT
-AGTTAAGGGTTCTCCCAGAACCATTAACGCCCACGCATTCCAAACCCAAC
-ATTGCACAAATCTGACTGGTATTAGAGATGTTGTGTGCTGTCGCCATGGA
-AACTTTCTCCCCACCCCACCCCCACCGCCACTCCCTGGTTTTCAGCTTAA
-TTTTGTAAAAAACATGCAATTCAGCTGGCAGGAGCTTTCAGATTTAAATA
-TAGAGATTGGATTAAATTAGTGTTAAAGTGGAGTTTGAATCCATAGTGCA
-AGAAATGAATAAAACCTGGTCATGTTAAGGGATGTGGTGGAAAGAGCCGA
-GATGGGGCATTAGCACCGCACCAGACGCCTGCCTCAATGTCAGGTGGTGC
-TCCCTTTAGCTGCAGGTTTTGGTGTTTCAGTAGCCTGTGTGCTAAGACAT
-CTTCAAGGGGAAAAATTAGTTTGGGTTTTTTTCTTCAAGTACGTCTCTGG
-GTTGTTTCTGCATAACTCATTTCCTCTTTCTGTTTAGGGTGGGACGCCCA
-AGGCTGCAACTTCTTCTCCACTTCTTCCTCCCTGAAGTTTGGGTTGGTCT
-TGGGACATGTTTTGTTCAATAAACGGAGCAGAAAAGTGtgcgcttaggtc
-tcacaaggctgtgcacactttagcgcctgcaaccgctaccatcagagcaa
-gccccagctagcctgctaggtgatgaggagcacaggggtcagCCACCCCC
-ATCCCTCAAGCCCACAGCTGCACAAGCGGGGCCACCTGCTGCTGGCTAAC
-CCCCgtcacatgcattagagagccactgcccagctgggcccaactcaaat
-tgcgagcccacagaactctgagcaaaatacatgattatcattttaagatg
-ctccattttagggcatttaactgtacaacaaaggcttatttttacaTGAC
-CTAACAATAAAGCATCAGATTAGCCTTGTGGCATGAAAGTAGAAAAACAA
-CTGTTACCTTAGCAGTTTAATGTAGGGCATTGATGATTTCTTGAGAAACA
-GGGATAATTTCTGTTTGTGGAACCCCGTGAATTTCAGATCCTGCAATCTT
-CCATGTACCAGCTGGCTCCCGTCTCTCTCAGCCACACAAGTTGGCAAATG
-GTGCCTGCAAGCCAGGTTGTCCTGGGGCCAAATTACAAGGGGCTCCAAGC
-TGCTGCCCAGATCTTTGGTTGGTCTGAACGTTGAGTGGAAATGAGCCACA
-GATCCGGTTTGGGAACTCAGTCTTCCTTGTAGCAGGAAGCTGTTTAGGTC
-ACTGACATGATGGTCCAAACAGCACTCAGAAAATCATAAAATGGCAAGCA
-AAATGAGCAATTCTGCACGCAGCACGTGACATGGAGTATGAGCTCGCATT
-TGCCGAAGGAGCAAATGACAATGGCCTTGCCTCTGCCACGTGTTCAGTGC
-CCTGTTCAGTGCAGGTGGAAGGAAGCCACCCTAGGATCAAGGCCTTCTGG
-ACTATGGTCTACTTGTTGTGACTACGGGGGTGCTTGTCCCAGCCTTGATT
-TTAGAACACATGTAAAATAGCATCGTAATCTTTGTAGCACTTTCTTCACA
-GAGTCTCTTAGCACTTTATACCTCACTCGGCACCCAACTTGTGAAAGGCA
-TTTTCAAATAACAATGATAGTTATGATTCTTTGGGCAGTTGATTGTTCAC
-ATACAGGACTAGACAATGCCCAGAGATTATAAATAGTCCCATGGCGTGGT
-TTTCACCTGATATGCTAGAATTAGACACAAGACTTGCTCTCTTCCACGCC
-ACATCATATTTTGTCCCTCTCTCATGGAAACAAGACATTTCATGGGCAAG
-AAAGCAGGCAGAGAGCCAGCCTTTGATCCTGTTGTCCGTGCTGCAGAGAA
-GTATTCACACACGTGGCCGGACAATGTGGTTCAATGGCTtttatggtgtt
-tgcatgcggaaggcatcagacatttcatatttgtaatcttaactaatctc
-tctgacaacccttcaaggcagatggcactctcctacggtgaagacgaaga
-tgcaggggctcaggaagaacaaagccctgccagaggcccaaaggcagcac
-gggaggagccgaggtgtaaacccatggagtGAACAGAGACCCCCACCAGC
-ACCCAGGCTTGTCCGTGGGTTTCTTCTGCCCTGTCTCCCTTTGCTGAGAA
-GCCTGTTCTCCGATGTCTTTCCCAAAGTATCCAGGGAACCCTAACCAATA
-GAAAACATATCCTACTGGCATGTTTCTGGAAGAACCATGATTCAGAGTTG
-CACAAGGTACTGGAGTCCAAATGGGCATCTCAGAATGATTTGGTGAAGGG
-CGCTCATGAAAATCCAAAATGCTTTGTCAGGATGGATGCACTGGGCTGCT
-GTTCAGGGGCAGCCATGGACCATCTGCCATAGGGGAGCTCGTGCCAGCGA
-ATATGCTTCACATGACTGTTCATACATCTCAAAATAATCTTATAGCGTTG
-TTTGTACCTTGGCCACTAAAAGGTTGGAATGTGCTTCTCACCAACTTCTA
-GAAGTTGCAGGCTCTCCAAAACATGTTTAATTTACATGGGCAACTCCCAC
-ATTTCAGTTATTTTTATAAGTCTAAGATATTACTACCAAGTGACAGAACA
-GTCGGCACTAATTACTGCTCGGTTGAGTTGCTGGCCTTCGTCATTAAGGC
-AGAAGCAACATCTTGCTAATTCTATGTTTAATTCCAAGAAGCCTCTCGTG
-CACCTGCTCTCTTTCAGGAAGCCCAGCTCCAGGGAAGTGGTGGCCATGTC
-CTCTCATCTCAGTTTCTTAAGGGCAGTGAACCTACTGTGTGTCAGCAATG
-GTAGAATTTCAAACTATTTGACCACAAGCTTCTTCAGCCCATCAGAAATA
-CTTGGCAATTTCTGCATCTTCTCACCTTGTCTGCATTTTCAGAAATGTTT
-TCAGACCCAGTAACATAGAGAGAGTCAACCTGAATTAAGGTGAGACCCTC
-TTCATGTGAGAATTCAGTGCAGTATGACCTCAAAACTGCAGGTTGTCAGT
-ACTGTGTGCAGGACCATCTGCTTAGTGCTGGGTGGCGTGTCAGAAAGCCa
-gtaataacacccatctcacggcagtgttgtgagaatgaagccagttaata
-caggagttgcacttagaatattagcaccttcattaggcatcagtaaaatc
-tagctgtcatcatcatcgtcatcttcatcctcctccttttcatcaccatc
-atcatcatcaccaacctcctcatcatcaccatcatcaccatcctcttcct
-cgttatcatcattaccatcactaccatcgccattatcaccatcatcacca
-tcgccaacctcctcttcatcatcgtcatcttcatcgccaacatcatcatc
-ttcatcaccatcactaccatcaccattaacaccatcatcaccatcaccaa
-cctcctcttcatcatcgtcatcttcatcgccaacatcatcatcttcatca
-ccatcatcgccatcctcctcctcatcaccatcattaccattgtcaccata
-tcatcctcattctcctcatcctcctcatcatcattatcataatcatcatc
-attgtcatcatcattatcatcctctccatcatcaccgtcatcatcatttt
-catcaccatcatcatcatcaccatcattaccatcaccatcctcatcatga
-tcatcaccgtcattaccattaccaccatatcatcctcattctcctcatta
-tcattttcatcatcaccactatcaccatcattctcctcgtcctcctcccc
-atcattatcataatcatcatcatcgtcatcattattatcatcctctccat
-caccaccatcatcttcatcttcatcaccatcatcatcctcatGGTTGTCC
-TCAAGTGTGGAAGACCCTCTCCAAGGCTGTCTGTCCTCTCTTCCTCCCCT
-GCCTGCTGACATGTTCCCAGtcacatcaagggatagaatctgattccctc
-tccttgaagctgggctggccttaatggctcagctgaacaacagggtttag
-aggaaggtaccttctggggatcctgtgcctaggtctcttgggatgccccc
-tggaggacctcagctgccccagcaggagaagccttggctacagagcccca
-agtgaccatgtgaggctactgctccagctgagttcccagctgacagcatc
-cacccccagccacgtgaggagccaccttggatggccagcccagggctctt
-cagccatcttcatccCCAATCTTTTGGCTGCACCTGCATGGGAGTCACTG
-GGGCAGCCCGGAGGACTGTGAGCAGTAAGGATTTAACCAAGCTCTTGGGT
-GGTTTTAGCTGCTgagagctatgaatgtgagctcatgccagagctggatt
-caaggctgttcctgtcactccctggctgtgtcacttctacttcttggacc
-tccatttcctcgcctatgaaaCAGAGCTGTTCAGGGTCTCAGGCTGAAGT
-AGCTGCTGTGAAGCTTTCCTGTAAGCGTGTGGATGGAACAAATGCATGCA
-TGCAGCTATTGCCATGGTTATCATGTTTCAGGAATCAGGCGTGAGGGTAA
-AGGCAGACACAGCCACATCATACTCTTGGAGGATGGAAGGTGGCCTTTTC
-CCAGCATGGGGCTGGGAGAGGTGGTCAGAGAGATTTGCCAGAGGGCCTGG
-CATTACCCATCCTGGGCATTTCAGCCTCTACAGCTAACACAGGATGCAGA
-TTTTTCAAATAGGGATGGATACATAACAAGTAGTGATTGCCTAAAATGTG
-AGAGGCTCCACACAAACACATCAGCGCAGCCACACAGTCACTCCTTCAGT
-CCCTGTTGGTTTTGTTCCATTGAGGCTGAATGGCCTCAGGGCCCCACAGC
-TCCACCGTGGAGGAGCTGAGATTCCAACCCTTCCTGCACACCAAGGGGAG
-GCTGTGTCCTTCCAGGCCCTTGCTGGGCTGTCTCGGGCAGCACGGCTTCC
-AGGTTGGAGGGACACCCCACCCCGGCCTCCTGTAAGGGAAGGCTGCACAA
-AGGTCAGAGCACATCCATCCTTGGAGTGAGCCCAGCAGTGCTGTGAGTGA
-GAGCAGCCCTCCCCATGGCAGGTGGCAGCATGGTCCCGGGCCTTGGACAC
-AGAGCCCTGCAGTATCCCACATGAAAGAAAGGTTGTTGTTGACTGGTTTT
-ATGGTCTAAACCACTAATACAAAATCAAGCAATGGCGGCACCTTGTACCG
-AGCTCACACAGCACACAGTGACTTGAGTTCCACAAAGAGCCTCCATCAGG
-GCAGGTGCCATCAGTCACCATCAACCACCCAGGAAAACTTGATGTCCATG
-GAAGCAGGGCCTTGCTAAGGTCCCCGCCAGAGCTTCCTGGGCTCCCTGAC
-ATCCTTCTCTTGGCTCTTCCAGCAGCATAAACCAAGATGGAATCATTAAC
-TCAGGAACTCTCCTGCTCCCACTCAGCCCCCAAGGCTGTGCTGGGTCCTG
-GTGAGATGGGCATACCAAGAACACTCCCCTGCCCTCAGCTCAGATGGGGC
-AGTTTGGGGGGAGTTACATTCGGGGAAAGTGATTACAACCCCACAGCAGT
-GCTGGGACAGAGTGACTTGGGGTCTCCTGGGCTGTGCAGCTTGGAGGTGG
-GAAGAGCTTTGGGGGCATCAGCTGGGCCGCAGGATGGGCCTTCAGGAAGG
-TGTTCAGCGCCTATACTCATTGCAGAAGACTATTTGAGGAGCCCCCATGG
-GGGCAGCACGAGGGAACAGAGGGGATGGCTGAAGCATTGCAGGCCCGTCA
-GGCCACATGGTCCCACCCTGTGTGAAGGGTGCTCCCTCCGGAGGCTACTC
-ATAGCTGGAGCTTTTACACTTCACCCGCAACTCCATGCATGTTGCCTCTT
-TATTGACTGCTCAGGTGAGACATCAGTGCCTCTGCTCAGCCTCTCCCACC
-CACCCCGATGGGGCATGATGCTCCCAGCAGACCTCCACTTTCACTGTGGA
-TTCAACCCTGAGAACATATCGAGATACTATTGTATCTTTTCCTTTACACT
-GCAGCTCGTAAAGGTGCTCCTTGAAGGAGATGGTAATCGCATTTGGAGGA
-CTGCCTCCCTCCCAGACGCTGGAGAATTGTGTTGCACAAGGGCTGGGGGT
-CCACTGTGGCTGAGGTGGCAGCATCAGAACACAAGTGGGAGGCAAAGGCA
-CCCACCTGCACCAGAACAGCAGGACATCCTCCTGTAGGAACTGGAGTCAC
-ACCCATGCAACCTTTGCAGGCAGAATGAGTGCAAAGGTGTCTCCTCCTCC
-AAGGATGCCTGTGCCTGGCTCTTCTGAGGGAAACTAAAATCAGTCACACT
-CTCCACCCAAAAGCTGAGAGCAGGTGCAGGAGAACATGTGGCCTCAGGGA
-GCCGATGGCAAGGCAAGCCCAGGGCTGCACAGAGCAGTGGCGCGATCAGG
-ATTCTGACACGGGGAGGGAGACACCTGTTCCAACGTCGTAATGTAATAAA
-TGGGTAATTGTTGCTATAATTAAAATGCTTGTAATAAGAGCAGACCTTTA
-TATTTGTCAAAACCTGAAGTACGTTTGAGTATTGCCATAAAATGTGGGAA
-AATAAGGAAAACTTGATTATTCATTAAACCTTAGAATGTTCCAACACCAG
-GATAAGTAATTTTAGGACAAATAAAATCAGCCATCCAACCCACAATATTT
-CCTATGTGCAGAGGAAGTAAAGTgggcaattgggcgaactcaacccgatt
-aaacaattatgcccaaaggcagagatgtctaaatggGGCCCACCCCTGCC
-ATGAAAAGATTCTTATTAATATTGTCAGCAATTTTGCTTCACAAATATTT
-TTGCATAAACAGAGAATTAAATGGATGAAGATCTAATGGCTGGCCCACAA
-GATGCTATGTACTGGGTGCTGATCCAGCGTATGGGAGCGAGATAGGAGGT
-GCGTCATGGCACGGCCAGGTGAGAACAGCAACAACCTCCACAGCAGAGCC
-GTGGGCCGAGCAGAAAGGCTGATATTGAACAGGAAAGGAGGCCGGTTCCA
-GGCTTGAGTCTAAAACAGGAGCGGTAGCACCTGCCTCCAGGGCACCCCAA
-AAGGGACTTCGCCTCTGATTCGCAGCTGTGGCGGCAGGGCCCAGGATGAC
-GCACTGAGTGAGCACAGGGTGTGACCTCATTGTTAGACATGGGcatgcgc
-acacagcacgcactatgcaaacacaaatacaccatacacacaacgcacac
-acaacagaaacactcaAGAACCCCGTTCTGTGAGCTTGGGTGTGCGCGCC
-CCTGCTGCTCTACTCTGAGGGCCTGTGGCCTCCGGGCTCCGGTTCACAGC
-AGGGTCCGGCTGGCGGAAACTGCCCCAGGCGCATCCTTCCTTCTTCTCTC
-ACAGCCCTGGGTGCCTCCTGCTGCCACATCTGGGTGAGCAGGAGCGAGGC
-CGTCTCCGCAGGAAAAACCAGACTCCTCCTCCTGGGTCCAGGCCTGTGGC
-CCCAGCCACATCCACACCCCACGTGGCAAGAGGGAGGGAGGCAGTCACAG
-GTGGAAGCCGGGGCCACTCCTTTTCATGGTGTATTTCAACCAAAGCATGG
-CGTAGCCTTCGCACGGTGTTGACCTGGCACAGGGAGCTCCGCGGAAGGAA
-GAGCCTGCTTCACGGCCCATGTGTTGCCTGAAGGCCCCGGTGCAACGCGT
-GCTCGCCCGGCACGCCAGGCCTGGGGTGTGCCCTGTGCGGTGTCCACCAC
-CGTCTAGGGAGGGGGCCCTGCGACAGCTATCAAGCGGAAGAACGCGctgg
-gacttacaaaagttaggtgatttccccgaagccgcagggctGTGAAACTA
-AACAGTGTGAAATTGCCAATTAGTTAACTATTTTTGTACCTAAACAAATA
-ATGGTTTAAAAGAATTTAAATGAGATGGTAGCAGAGTCAAGACTCGGGCT
-TCCACTTTCTGGATATAGAATTTAAttcttttttttttttttttccctga
-gaacggagtttcgctcttgttgcccaggctggagtgcagtggcgcaatct
-cggctcactgcaacctccgcctcccgggttcaagcgattctcctgcctca
-gccttccgagtagctgggattataggcgcccaccaccacgccggggtagt
-ttttgtatttttagtagagtcggggtttcaccgtgttggccaggctggtc
-tcgaacccctgaactcaggtgagcctcccgccttggcctcccaaagtgct
-gggattacaggtgtgagccactatgccTAATTCTAAATGAGCAAGTTATT
-ATCGCTTTTGAAAAAATTAGGATTTTTAAACTTTCCATCTGTCCCTGAGA
-GGCCTTCGGACGCATTATGATTTTGGAGTCTGACTACACCTCTGAAGTCT
-CCAGGAGTGGGGTGAACACACATGTTCTGAATAGAGACACAGATGCTGGG
-GTGGTAGGTAACCCAGCTGAGGTCCACAGATCACGGACAGGCATGCTGGG
-AGTGGCCACAGGGAGAGGGGAGACCCACCACTCAGCAGCTGTGACTTTTC
-ATGGTTTATGGACCTTGTCTCCTTAAATGTGGTGTGCAAGAGTCCGGGGG
-CACGATATGTTATCCCACAGACAAATGTGAAACTGAGgtccaagaccaca
-cacttagcaaggcaagaagctgagatttctatctatgtctgactgccttg
-aaaagccaacattctccacattgcacacttagcctctcAACTCTCAAGCC
-AGGCGCCCTGAGGAACACAAAATGCACCACCAAGAATGAAGTGAGGATCC
-CCGCAAGCAACAAGTGGGTGCTTCTGGAAGCCCTGGACACAGAAAGTATC
-CCCAGCCAGTTCTGTTCCTCAACCCCAAGTCCTTAGCCAGCTCTGAATGC
-AAATCTATTATGCGCATTTCACCCTCTTTTTATTTTCCCACAAATGCAGT
-CTTCCTTTCAAACAACTCAATGACAAATGTTTTCAGCAATCATTACTAAC
-CTTATTACATCTCAATAATGCCACAGACAAAAGCAGAATTCAATTGCAGT
-GCAGACTGAAATGACCTTCTTGCAAAAGAGAGAAGTGATATTCCCAAGTC
-TGACAAGCAATTTTGAGTGCACTATCTGTTAATACTGTGATCATTATTTG
-TTTGTGCCACCTTGGGAGATGGCAGCCACAGCCCTGGGCAGAGCCAAGCA
-TGGGGGAAGGTGTCTGCAGTAAGTATCCCCCTGGTTATTTGTAATCATTC
-ATAAATAGGCAGAGGACTTCTGGGTGGGAACGGGGAAGGAATCCTGACAG
-TCTTCCCCGTCTCAAAATCTGTAGCTTTGGGGATGATCCGTAAAGAGTCC
-TGCATGAGGTCTGCATGGAGCAAGGTCCCCGAACAGCCCAGTCCCTGCTT
-CATCCCAGACCACTGGCCGGATGCTTCTCACTTGCAGTTCCCTCGATGAG
-CTTGAAGGAGCCTGTCGCCTGGCACACAGTGCTGAGACAGGGCAATCCTG
-GGCATCCTCATCTGGGGTGCCGCTGCTTTCCTTGTTATTCCCTCAGTTAA
-CATGTGTTGAAAGAATGGGTCATTGTCCCCTTGGCATCTCAGACCCAACA
-TAAATGCTCGATTGAAAGTCCTTCGGCCTTTGGTGTACAGAGGGTGTGTC
-TCATCGTGCAGCACGGGGAGCAAGCACACTCTCTGCTTTCCGGTTCCGTG
-CCTGTTGATCTGAAGAAATCCACGAAGAGCACCTGCCTGCCTGCCCCTCA
-GTAAGCCGCCCCTGCCTGCCTGCCCCTCAGTAAGGGGCACCTGCAGAGTC
-CAAGACAAAAGTGCTCCCTGATTTTCCGTGTGTCCTCAGAATGGGACCCT
-ACTCCCTGACTGGACCAAATACATCCATCAAATGTAATAAAGAAAAGGGA
-TGCAGAAGTCTTCCCTGTCTGAGTCTCCTGCAAAAGCAGGTGCTGGTGGG
-AGGAGCCTGGCAGGAGGGATGGAGCAGAGGACGGAGGCTCAGGGGGATTC
-CTGCCATCCTTTTCCTAGAACGGCGTGTCTCAGGGGGAGGGGGCTGCTCA
-GAGCTTTGTAGGGCTGGGCTCACGGGCTCTATGTCAGCGTCTGTGTTGCG
-GGAACTCTTGTGTTCTCACGAAGAGGCAGACACCAGAGTCCCACGGTAGC
-TGACCCTCAGCCTGTCCCCAAGGACACGTGGCCTGTCCATTGCCAGGGTG
-GGATCTGGTACAGCAGGCTCTCCCCAGGGAAAGGTAAGGGGAAGGTCTGC
-ACTCCATGCACCTGCCACCAGCAGGACAGCAAACACCCGGCCATGAGGAA
-GGAGGAGGGTATCCATGGCCAGGAGCTCAGGCTCTGGGAAAATGGCAAAT
-ATACATTTAATTGGTGGGATGGAAAAGGAAGACTCCTCAAGCAAAGAGTG
-GAGACTGAGATCACACTGCAGGCTTTAACCCATGCCATGCCGTTATCATC
-ACTTTAACCCAAATGGATAATAGAAAAAAGAAAAGAATAGAAAAGAAATA
-AAGGCTGCAAGAATACAAACCACAGTTGCTTTATCTACCTGGAGACCTGC
-TCGTCTAGGGAGCCCCGCGCTGCCCTCACTGCCCCAACTCAGCCACAAGT
-TGGGAAATAGCTGCAGGACATCCCAAGGAGGGATCCCTGGCCAGGGTCCA
-CCCACCCAGAACCTTCGTCCCACTCTCGGCAAACCTCACTTGACTCTTTT
-TACAAACTAGGACTGAGCCTGCCTCCCTTTAACAGCACCCCAAGGTCGTC
-ACCTCACCTCGCAGACTGAGCTTCCCTTGCAAATTGGCCCTTGGGGTCCA
-GCGCTTGTGGGGCGGGCCCTGGGGAGCCTGCTTTGCCTCCGCCCCACGGG
-ACAGCCTGGGGCAGCTGAGCCATCCCCAGCCCCCAGAAAGCAGCTTTGTG
-ATTTTTAATTGAATGTTTTCAAATTTTGTACACGAGCCCGGAGGCAATGT
-GCTCTCAGAGGGCACGGTTTTACAAATTGGAGAAGAGGTAAAATGAAATA
-ATTGAAGCCTTTTCACTCTCTCCTCTTCTCATTATACCTGAGGACAGGAC
-GAGGGTGGCTGCACGTGAGCCAGAGGGGCTGTGGACGTCTCACCAGGAGC
-AGCCTCGGAGCAGCCTCGGTGCTCCACCGGAGTCAGTGCACGGGAGGCCC
-GTGCCTGCCTCAAACCTCACGGCCTGCTGGACCAGACCGAACGCTGACCT
-GTGCCTTCCCAGCACAGTCACTTCCGCCAAGGTCCCACCCACCCTTCAGT
-GTGTGTGACTCATGCCCCGGCCACCGACACCGAAAGAAGGAGGGAGGGAG
-GCCCGGTCCCCAGGCCTGGCTACGGCGGGCATCACACCTGCCATGCTATG
-TCCCGCAGTGTTCACGGACATACACCATacacacacacacacaacacacc
-catacctatgcaccacacacatcacaaatgccacacacacaacacaccca
-tacatacacaccacacacatcacaaacaccacacatcataaacacacaca
-ccatatacacaaacacaccatacacattacacccatacatacacgcacac
-acaTCTCAAATACCATAGACACACACACGACACACCCATAAATATGCACC
-ACACACATCACAATCCCCcacacaccgtacacatcacacccatacacacc
-gcacacatcacaaacactacacacaccttacacacacacaccacaccaaa
-ctcatacatatgcagacacacatctcaaacaccatacacacacacaacac
-acacatccaccacatacaccacacCCTACTCCATCTTATACAAAACCCAC
-ACATGTCACACACACCACTGACcacatacacccacacacatgacatatgc
-acactatgcacacatcacacacatatgccacacacacagacacacaGGGA
-CACAATCACTCATTTTGATAAGAGACTCACTGAAGTGACTCTCTGCAGAT
-TGTCCCAGCAAAGCACATCCGGCACCTCACGCAAGGCCGTAAGGTCCCAT
-GGGTGAGTCCAGCCCCCAGCCTGGCCACCAGCCTGCCTCCTCAGCGCTCT
-GCCAAACTGCATTTCAAAGGGTGCTGTTCCTCTTTTCTGGCCATGAGCAC
-GGAGGGGAAGGTTCCTGCTTGCTCACCACCTGCCCTTCAGCCTGGAGAAG
-GCCCGCTGACCTTGGACCTCGGGGGAGAACTATGGACTCCACACAGAAGG
-GCTGAAGTGGGAAAGGAgagatgggagaggggagaggggaggaggagtgg
-gagagggaggggacaggggacggggaggggggcagcggacaaggggtgaa
-gggagaggggagaggggagagacgggagagagaggagagagaggggaagg
-ggcagacggagggagaAGCAGCCCTGGACCCACGCCCTCCTGAGACTGGC
-CCTGCCTCTCCATGGTTTGTAGAAGGCTATGAATCCCCTCTTGGTTTAAC
-CTGCTTTTCTCTTTAAGTGGCCTTTCTCTTACTTTCCACTGAAGAAATCC
-CAGCAAACAGAGGCCCAAGGACTACAGATGGTGAAGAAGGACAGAAGCCA
-GAACAGGTGTAGCCAGCGTCCCCCTGACTCTCCCTCTCTCTGAGTGGCGA
-GGCTTGCAGGTGGGCCCTGGCGAGGTGGGCTTCTTCAAGCCCAATCACAG
-CCCACAGCCTCGCCCATGGAGACCCCGGGAGGACTGTGTTGAATATTTGG
-CCCACATGGTCAGTGACAGACTTCCAGAAATCAGATCCAAGGAATGTCTT
-GGGCTCAAAGGCTTAGCTGCTGGCTTGAATGTGGAGAGGGCTCCACAGGC
-GGGAGTCCAGGATACGCCATCCTCACCCAACTCCTTGGTCACTGATACCT
-GAAGTCCCACCACAAATGTATTACCCTAGAGAAGCCAcaatacatctacc
-aagtgatcttttctaaaacataaatatggccgtgtcacttcctgcctaaa
-agctcacgatgattttctatcctcacccCTTCATTGTTAGTGCCGTGTCC
-ATCTCCCGAACTTCACCCCTCACACTCACCCCTCCAGACACCCCTGCCTC
-CAGGCATCATGAACCACAGGCAAGTCACCAAACTTCCTGCCTGCTCTGCC
-TCCGAGCCTTTGAAGATGATTGTCttggactgctctaacaaaaataccag
-ggtggggcgggttatgaacaacagaaatttattgttctcagccctggagg
-ctggaagtccaaggtcaaggcaccgggagatttggtgtctggtgaggacc
-tgcatcttgattcctacatggcaccttctgactgtgtcctcacatggtgg
-aaggaatgaggaacctctctgggggcctcttttataaggacactaaccca
-tccatggcactccaccctcatgatccaatcacctcccaaagttcccacct
-cctaatatcattacattgttcccacctcctaataccattacattggacgt
-tagggcttcaaaatgtaaatgtcgaggagacacaaacatttaatctacag
-caATGCTAGAcctactacctgatgaactcctattcatcctttaaaaccca
-gtttaaatatgcccaaagcagatgtatcctctctcctctcggccgagttg
-atgggtcttgccttcatgtcctcacattctctatcatttcccaaccacaa
-tgggccccctcccactgaaccacaggctgccccaacactgagatgctgtc
-ttgtttgttgctgcatacccggggtgccaagcccagttccttccccatgc
-caagctcaggagctctttattgaatgaatgTGAGGTCCCCTAGTCCAAGT
-TCCAAGGGAAGGAGTGCAGAGATTGATTAGTCAGGTCTGCCACAGATGAC
-ACATACGGGAATGGAAGTGTTAGGTTGTGGAGGTGGTCTAGGTTAACTCC
-AGACTTTTGAGGGGTGGGGATTGATAAGGTGGAGGAGCGGGAAGGTCCGT
-GGAGGCTGAGAGGCTGCCAGGGAGAGGCCTCTCTAAGTCCTCAAGCCAGT
-GGACTGAGCCTCTCTAGATACCTGTTCAGGAAGGAGTAACCCTTCTACCT
-GGAGCATGAGACCACATTTCTGGACACGGTTTCTACCTGAAACAAGAGCG
-TGTTCTTCTCCAGCCTGTCAGAACTCTGATTACCTATCTTGTTCACCAAA
-AATGATTGATGTGTACCTGCATTTTTTAAGACCCTAGGACTTGAGTGAGG
-TGGGGACTTATGCTCCAGATTCTAGATGTTGTCTTAATTGCAGATGTTAT
-GGGAAAGAATGAGGCAACTTCCTTAAGAGGATCCCAACCCATTTAAGCTA
-TTGGGTGGTGGTACTTATGGCATATCGCTTTAAGCAGTTTGAAAGACAAA
-TTCTGGTCTTGATTTTCTGCACCTCAGTGGTTTTTTTATTTATGTTGGAA
-CCATGTGATGTTTATGTATTTGGTAGTGCCTCTTTCTGCTCCACACAATG
-CTATTGGAGTCTGCTGCTGGCAGGGAGGTGACACCCTATGAATATTTTAT
-CAGCCCACATGTGTGGGTAAGGAAAATGAGGCCCTTGCAGGCTCTGACAA
-AGTGGACTGGATGCTGTATGAAGGAGGGGGCACACAGCACCTTTGTTCTC
-CTGGACAAATAGGAGAGATACTGTGAACCTTATGCTTTATTAGAACACAA
-GAAGGAAATTAGTTCCTTTTCATCTGCCGCAGCGGATGATGGAGTGTCTC
-CTCGGGTCTCCTCTGCAAAGTCCTGCAATGAGTCTGTGCTTCAACCGTGT
-TCTCTGGCAAACATGAAGCAAGGACAAATGGGAACCCAGGCAGCAGGAAA
-TGGGGAGGGTGGGAAATCCACCTGCACGTCGCAGGTCACACCCAAAGAGG
-GATCACAGCCCCGCTGCCACTTCTGGGTGTGTCTCTGGGTTTGAGGCCTT
-TTTATGCATCGTGTGTGAAAAATCTGCAGCTGTGGTGCAGAATTGAACGG
-CTTTGGAGCCGGGAGGGCAGCTAGTAGGTCTGGGATAAAATGCTCTATAT
-CCTCCATCGAACGCACAATCCATGTGACATGGAAATGGTAACTAAacaaa
-actttgtgcgtaaatattcatcgcagcattattcctaatagccagtaggt
-ggaaacagcccagctgtccatcagccgatggctggataaacaatgtgtgg
-tccatctatacaatggaccattcctcagccacatcaagtaaggaagcacc
-ggcacctgctgcaacccagatgaatctagaaaacgtgatgctgagtgaaa
-gtcgccagacacaaaagatgatttatcggatgatcccattgatatgaaaa
-gtccagagtaacaaatctacccagacaagagtagcttagtggtggctggc
-aggagagggaatggagaatgattgctagtggatgtggggtttcttttggg
-gattttgtgaatgtcctggaattagagagtggtcttggttgtgcaagact
-gtgcatgtgctataggtgtcactaattgtaAATGCTACATTTTGTTTTTT
-ACCACAATGAAAATGATAGCTaataatcaatcgtgtaccacttgttgagt
-tcttcatatatgctagacatcatgctaaaggcctgacacgttcaccctta
-cttgctttgtctccatggtgaaatcagcattctcatccttgttttataaa
-tgaagGCCCGAGGTAGGGGAGCAGTCTTCTGATAGGGAGAGGACCTCAGG
-TTTTAGTCTAGCACTGTCTTAGCTGTTGCTCATGACATCATGCTTTTCGG
-TACTGACAACGCAAGGGTCCCATCATCAACTAATTTAGGGAATCATCCTT
-TAGACAGGTCAACCTAATTGACCACAGGGCATTTTAGAGCTTTGGAAATA
-CTAATGAACATTTTGAATCCTCAAGAGTGGGATCTAAGGTGCTGTTTTCT
-CAAATGTATTTAGACAAATAATAATTGTTTCAACCACCTGTTACCATGTG
-AGGGGAGGTTGGCAAACACTGGTCTCAATTAGCTCCCTTTTGCTCAATTG
-CACCATGACATGGAGGGAAGATCCCTTGTTCAGGGTGACAACTAGTGAAA
-AGGAGTAAGCATTGAACCAAAAGGCTGGATATGGGGAAACAGAGACAAAA
-CAAGACTAAGCGGCCACATCAAGTCATCCAAAGTCAGAAAGCCTGGTCGA
-AAATGCAGGAAGGAGACAAACTGCATCACtggaaggcaccttggaggtta
-tccaggccaatcatatctatccatccatccatccatccatgcatccatcc
-ttccattcatccacccacccaccaatctatccatatccatccattcaacc
-acccatctatccattcattcatccttccacctatctatccatccacccat
-ctatccatccacccatcaatccatcaatccatccatccaaccacattcat
-ctatccttcatccatccatccattcatccatccatcTGtttattcagaat
-gcaatttttgaggcccttcagtgtatgcagcagagttagcatgattgagg
-tttcagtagtgaaaaaaagatgtcctttattaggaaagatagacagaagt
-ccataaacaagcaaatgcacagtgtgtcagaggtgtccagggatatgaag
-aaaaataaGAGGCTAGGATTGCCTCTTATTTTTAcatgcccataatccca
-acactttgggaggctgatacaggtggatctcttgagcccaggagttggag
-accagcctgggcaacataggaggagcctgtctctacaaaaaaatgccaaa
-aaaattttagccaggtatggtggcatgaacctgtaatcccatctacttaa
-gagactgaggtgggaagattgcttgagactcggaggagggggttgcagtg
-tactgtaatcacaccactgcactgcagcctggagagcagagtgagaccct
-gtctcaaacaaacagaaaaagaaaaCAGTGTCAGGAACCAGAATGTGACA
-AGGCAACCACAGCTCCAATCAGCTGTTTCCAGTGGAATCAACCATGGAAA
-TGCCTCTTAACCAaaaggtcttccttattggaacccaaacctgccccact
-cttacttttgcccctgatgctagctttgctatagaggatagattctctct
-tacctcatgccgatatcccgtatctgatcgggtcctcgctgagtcttctc
-tAAATGAAGGGCCTCAGGCTCATGGTCCTTGGCCTCCCCTTTTCCTGCAC
-TCACCCAGTTGTCAACATCCATTCACCAGATGACGCCTGTGGGCTGAACC
-CAGTGTGAAGAGCTCACTGAATGAATGTGAGACCAAAACCTCAGCTGGTC
-TTGGTCTTTGGGATGTTCCCTTATCTCTAGGAGGGGGAGAAATTAAGGAC
-AGTGCAAGCGTAATGGGGTGAGGACGTTGGATGTGCTCTGCCCCAGGCCT
-CCttcctgtaggagcctctagttgacttccctgcctctccttggaccctc
-tgcaatcatcctgtccagtgctaggtccagaggggtctttctggaacttg
-aggcaAGAGAACAAAATCACATCAATGGGGTTGGTGGGGGGGCAGGTGTA
-AGCAAATCGTGGCAAGTCCAGTCTGTCATAATTTTTGCATGAGCTATTTC
-ACATTAAAATCATTTTGATAAATTCTGTGTAATAAAACAAAAAGTGCTTT
-TCATGTAATACCGCATGAAAATGTGAACTGGTGAGTTGCGTGGACTGGGG
-CGAGCTGGGGTGAAGTCTCTGCCTGCTTGTGGAGGCAGCTGGGGTATCTT
-GCTGGCCTGGAGGCCTAGGCAGCCAAGCATGATCAACGTCCTGGAGATGC
-TAGAAGGCCGGGGTGCAGATCCGCTTCTTGAGCTAGAAATGAGCTGACGT
-TTCCCCAGAGGTGACACCGTCGCCCGAATCACACTCTGAGTGGAATGGGG
-CAGGGGTGCCATTTATAAACTCACCCAGTAATGGCCAGAGCTGGGCTGGA
-CCTCAGGGCAGATGGGACACCTGGCCCAGGCAGGCTGGAGAGAAGACAAT
-GTACAGTGCCCTGCTGAGATGAGGGGACAGTCATGCCCCTCAGGTCTGAA
-GAGCCATCACCAGGGTGGTTGGCTGTCAACACCCTCACCCCAGGGCCCCC
-ATTCAAGGGCTGGTTCTCCCTGGGAAGGCCGTGGCTCTGCTGAGGAGGAC
-TGAGCCACAAATCCAGGAAGAGAAATCTGAGCCTATTGCTCTAAGCCCCC
-ATCCTCTAGCTCTTTTGTGACACGGATGCAGTTCCCCACCCAATCTAACC
-CAGCCATCGTAAGCCAGGGATGCTGACGGGGCTACGGTCCTGCTAGAGTG
-AGGATTCCCCAGGGAAGGCTGGCCAGCAAGGAGACTGCCTCAGCTGTGCC
-TCCAGATGAAACTGCCTTGTGTTGCTCAGAGATGTGCAGCAAGAACACAC
-ATGTTTACATGTGCACCATGTACACACATGCATTCACATACGTCTATGTA
-CACACACTCTCACATTAAatacatacatactcatacacacacatacataa
-atatacacatgcatgcactagcacactacacaggcacacacatatatgta
-cacgtattctcccagccacacacaaatacatgcagacatatgtacactca
-cacatatatacatacacataaacatgcactcacacatacaCATGAacaca
-cattaacactaggcatacacctctatacacacatgtattcacacacatgc
-atgcacgcatatgccccacactcatatacctgggtacataaacacacgca
-aacacagacTGTACCCCTGGCAGAGGGTCAGGGCCTGGCCTGTGTTGTGG
-GCCTTGGAAGCAGAGCCTGGCATGGAGTTCAGAGATCCCTGATCCCTGAC
-TCACCCAAGCCCCCAGCCTATAAGTTGTAGTCCAGCCCTCTGGGAGCTGC
-AGCGGGTTGCCAGGCGGGGAGGGCACTGTGGCAGGTGGGAAGGCTGAGCC
-AGCCTCTGGTGCTCACACCTGAGCATCAGGGCACCAATTATTACCTGCCT
-GAGCCAGGCAACCAGGCAAAGAGACAACCCGTGACATTTTGCGAGCTGAA
-AATGGAAGTGGGACGAAAGAGCGAGGTAAGACACTTTAATCTGTGCCCTT
-TCATAGTAAGCCTGTTAACTAGAGAAAGTCTAAGAAAGGGATCTAATTTG
-TGAGGCTGCAGGGAGGGGAAAGAGGGGGCAGAGGAGGAGAGGAGGGCACA
-TCTTCCTCTGGTCTGGCCCTGCCCTGCCTCCTCCAGCCCATCCTCCTCCA
-GGGCCCCATCCAGGACTGGTCCCCACCCACTCCCAGCCTGCAGCCTGGGA
-AGCTCCAGCTCCAGCCTGGCCGGGCTGCTGCAGCCACTCCTGACCGCTCG
-CTGCTCTCCTGTAACTGGGACTCAAAGTCCACCTGCTGCGCTCCAGACCC
-TGGCGCCCAACTCTCCGTCAGACAGCTCAGCCAAACGGGAGGCAACCCCC
-TGCTGCCAGCCCCTCTCCTCCCAGACAGACTCCTCTAAAGTCCTCCCACA
-GCAGCTCAGGGCCCTCCCAGGACTATCCAGGAAGCCAGAATCCTGCAGGT
-GCACCTGGACTCCACCCCTTCAGCCTGCCCTGCACGCGGCTCATGGGTCA
-GGCCTGGAGACACCACCCAGGACTCCGAGCTGAGGACACAGAGGGTGTCG
-CAGCTGAGGCCCAGGTCACACCGCACACCCAGAGGCAGAAGAAGGTGGGA
-GAGGCTGGTGCACAAGGCATGTGGCTAATGTGGGTTGTCTGCAGAGGCTT
-CTAACCCATTGTCAGTTTCTCTCGGTTTCTATGTGGATGGTCATGAGGAA
-TGATGCTTCAGACCTCAGCCTGAAAGCGTCCTTGTCGGCCACTTCCCAGG
-GGAGTGAGCTGTGTGCCTCAGTCTCATGAATGAACCTCCAGGTTCCTCCA
-GGGCAAGGTCCAAGCACCAGCCCCTGGTCTGAGACGGGCTCGTTACGCTG
-AGCTAGATGATACAGTACCCTCCCTCCTTGAACAACTCAGAGGACCTAGC
-CCCAGATCTAGGAGGGGCTTGCCAACTTCCCACAGCCGAGGGGCAGCAGA
-ATCGAATCCACAATGAGGCATGAGATCATCTTGGATTCACCCCCAGGTAG
-CCAGCCAGGGAAACAGAAAGTTCTAGAACTGGCAAAGAAATTTCCCTCCT
-GCCACTGGAGGTTGCTGTGCACCGGCTGGTAGCCTGGCCTTGTCCCCTGG
-CCCAGGGGAGGGTGGGGTGGGCGCCCGATTCCCAGGCCAGCCTGGACACT
-GAGCTCCTTCTGCTcgggccccctgcccggggccgggcgcccAGGGATTT
-TCCTGCTTGCAAAAGGCCTCACGGGTGTTGTGGTTTTGGCAATTACTGAA
-AAGAAAGCCTGGTTATTATTCTTGTCACGTGTTGAGAAATCTCTATAAAG
-TTTTACAGCCGCAAATGTAAAAGGGGTTTTTATTAGTTTAACATTCTTCC
-CTATACCCTTCCCCCTCCTCCCACCCAGAATCTCACCCTCCATCTCCCGC
-CTCCTCGGGGCCATAGTCTCAAGACAGCTGCGGCCGGGAGCCTGGAAATA
-CCTGCAGAGAGCAGGAGGCCCCACCGCCTCCCAAGTCCTCCCAGTTCCAC
-TGGAGCCTCCAAGCCTCAGGGTCTTGTCCTCCTTTCAGCTCCGATGCCCA
-GTGACAGAGCTTCCCAGCTTCCttcccttactccacaaatgcattggaag
-gcctgccctgggccagacgctgctgcaggtgctgagacacagacgagggc
-agcacagacattgattttctgcaggaaaagagaaagataaacgagaaaac
-aagtaaacataactacagagcaggttggctccagggCCTGCTGTGGTCAC
-ACAGGGCCCAGCCTTAGGAGGGTCCACCCTCAGGTCCAGGCTGTGCTGGT
-GCCCTCCTGACATTGCAATGCCTCCTGGGGTGCACAGATCAGGTAGGCGG
-TCCTGACAGGGTGAGGCAGCAGGGCAAAGGCAGAGAGAGGCCTGGTCCAG
-GGGGACGGTGGCACCTTTTCCAGAGTGGTCGGGAGGGAAGGGCTCCCTGC
-AGAGGGCCGTGGGAGCAGAGAGCTACACAGATCAGGGATTGAGGAGCACA
-GGCGTTGTTCAGGCAGAGGCCAGCCCAGGGCTGTGTCTGAGAGGTGAGAG
-GCAGGATGGCCATGCTGTTGGAGCAGTGTGTTCCCGCACGTGAGGATACG
-GAAGGAGGACAGCCAGCTAGAAGAGCCAGGAGAGTGGGGCCTCCATGGCT
-GGGGAAGGGGCTTGGGATTTACTGGGGGAATGTGGGAAGCATCATCCAAC
-CTTTTTTCTTAAGGGTGTCCCTTGCTGCTGCTCAGGAAATGCGAGTAGGA
-AGGTGGGAGCTGCAGGGATCCCTGGGCAGAGGTTGCAGCCCTGCAGAGGA
-GGGGCCGGGCTGCTCTGGATGGGGTCAGGGAGTGGGGAGGAGCCCAGGGG
-AGGGGTGAGCATGGGGCTATTCATGGGCTGGCTGCTGGGATCCACCTCAC
-AGCTGCCAGCCCAGCTTCCTCCTGGCGTGCCCACGTGCTATTCACTTGCC
-GACCCAATCTGGCGGACCCGGGAGAGACTTACTTACTTCATCAGCCTCCC
-GTCACACCCATTAGGTCACAGACAGACACGGTGTGGACAGGTCCTGCAGC
-CTTTCATTAGGGCTGACGCCTGGCCCAGGCGGAGGAATCGCTGGGACAGA
-ATCGTACCTAGAGAAAGGTTTAGCACTACATCGTAATCTGCCAGCAGATG
-ACACATTTACTAATTATGTCCCCAGGCAGGCAGTCCTGACTCTGCCATCA
-GGCCAAGAAGAAAGGATGGCAGAAGGCACGTCGCCAACAAGCAACCCCAG
-GCCAGTCCTCAGCCTCTCTCTCTCCGCCTAGCAGAGGGCTGGCATAATTC
-CATTTGCTGCCTTTGAAAATATATTGAGAgacttcaggcttcatctccaa
-cacaaaaagagcttggaggttatcactcctgagctcacaaggaaaacaaa
-aatggagaaaactgaaaatcaacaactttacttagccggatgtggtggct
-catgcctgtaatcccagaattttgtgaggcagagatgggcagattgcttg
-agcccaggaatttaagaccagccttgacaatattgtgagatcccatcttt
-acaaaaaaaaataataataaatatagcccaggtgtggtggtacatgcctg
-cagtcccagctacgtgggaggctgaagtgggagaacagcttgagcctgag
-aaatcgaggctgtggtgaaccgcactccagcccaggtgacagagggaggg
-cctgtctgaaaaaaagaaaagaaagagaggaaagaaagagagaaagagag
-gaaagaaagaaagggaaaaagagaaagaaagaaagagaaagaaagaaagg
-aagaaagaaagaaaagaaaagaaagaaagggaaaaagagaaagaaagaaa
-gagagagaaagaagaaagaaagaaagaaagaaagaaagaaagaaagaaag
-aaagaaagaaagaaagaaagagacagaaagcaagcaagcaagctttactt
-cgatctatcaaagaattgatatcccagggcaaactgtcacccagacaccc
-agagagagggacaggctggtgcagaaagtcacagctgaaatcagcttgct
-ggtgctaagctgctggagccagcaacttgtaggggaacactaaactagta
-attgatgaattgctggaggctgagtgtggactagttggagaggtaaaaac
-cctggtggggtggggggtgggggggcaggattttgtagagtttacctcta
-ggaaccctagggtctcagggtaaagatctgaagatggtactaaaattact
-tcatgcctcaggaaaggaaaggggaaaaatggtcacctgaaaatacgccc
-agagggttctgccctgggaacaaaagtctgccccccatcgccgcccccag
-ggaaacaatttgaccataggcttatctgacctctggctttcctctttcag
-gaagggaagaataaaaaagctacacaacactattgaaggtcatagctcaa
-gaactcaggcccacgaaaaacagtgaaacttaatcatattatatgacact
-tctcctgccccccaacagattacaactgatagagttacaaaatatagact
-ctatttaaggagttcttaggtaaacctcaaaacaacaagagaggagcaaa
-caaacaaacaaggaacctcagcatctggcatcagcaaacacaaaacacaa
-cccagctcgttggcagattaacatgaaatctcactcaaaaggcctggacc
-cttcagctcctattgccagagacagcacttacagctttcagcaaaacatt
-gtaagacatgccaacaggcatggaaaagcgcagtaagaagaaggagagca
-agcaccaaaacccaactcagatatggcacagatgtcggtatcatcagacg
-gtgaatttaaaataactatgattgaaacattacgggctctagcagaggaa
-ggatgcaacacgcgagaacaggtgggtgatgtaagcagagatgaaaattc
-taagaatcaaaaggaaggaaatggtaaaaatccaaacactttaacagaaa
-taaagaaatacctttgatgggctatttaagtagactagacacggtcagag
-aaagctttcacaagcttgaatatgtgtcaataaagacttcacacactgaa
-acacaaagaggaacatgtacaaaaacgtggtacataataaacaagaaccg
-tgagacaattacaaaaggaggtgtgggtgtgtcattggaagaactaaaag
-ataaaaaagagagagaggtgagaaaataagaataagaaatacttgaaatg
-tttctgagaattttccaaaagtaataacagataccaaaccacagatccag
-ggagctcagagaacagtaagcaggataaataccaaagacgtacacctggg
-agtattaaattcaagctgcaggaaacctaagacaaaaagaaaatcttgaa
-ataaattgcagggggtgcaaaacaaataaatggaaacctcacccgagaat
-tacgacagacttctcatcagaaacaatgcaagcaagaagagatttgagtg
-aaatatttaaagtgttggaagcaaaacccaccaactcagatttctgtatt
-tagcaaaaatatccttcaaaagggaaggagaaatatttttccagccagac
-aaaactaagctagtgaacagcagaaatgcccttcagcaaatggtaaaaga
-cattcttaaaagagaaagaaaattacataggtcagaaacacagacttaca
-ttaaaaaataaagcacatcagggaaagaatgaaagtaaaataaaatactc
-cattttcttattcttaatttgtttaatagattacaattaaaagttataat
-agccacaatgtgttgggtgatcatagcacacataaatgaaatgaatgact
-gtgatattacaaggagggagggaagaatttggaatgctatgttataaaga
-aacaatgccttcactactcacaaagtgatacagcattctttgaaagtaga
-cttagattagttgtaaatgtatattttttatggatgcaaattttgtgaaa
-agggaaatcactaatttttttaaaaagaaatataattgatatactaatgc
-aaatcagaaaatgaaataatagaaaatgctcaattaaaactgaaaaaggc
-agagaaagagggtaagattaaaaatagaagcaggctaggcatggtggctc
-ttgcctataatcccagcactttgggaagccaaggaggagggactgcttga
-gaccaggggtttgagaccaggggcttaagaccagtctatgcaacatagca
-agaccctatctctacaaaaagtttttaaattagctgggcatggtggcctg
-catctatagtcccaggtactcatgaggctaaggtgggaggattgacttga
-tcccaggagctggaggctacagtgagctatgatcatgccaGAGACCACAA
-GAAAAGAaggaaggaagggagggagggagggaaggaggagaaagaaatag
-aaaggaaggaaggaaggaagggagggaggcagggagggagggagggaggg
-aAAAAAGAAGGagggagggagggagtgaaataaagaaaggaaaaaagaaa
-ggataagtgtaatgaatagaaaacagtaacaaagatggtggatgttaatg
-cagctatatcaatattcactttaaacgtgaatcgtctgaatatacaaatt
-aaaaaatcagatactggttgttctgcctatggagtaaccattcttttatt
-cctttacttcttaatacatttgcttATAATAAATAAATAAATcagataca
-gtcagagcagatttaagaaaaataagacccaactttatgtgagctacaag
-aaacctattttaaatgtaaaggcacagatatatcacaagtaaaaggatgg
-agaaagatataccacgctgctaaaactgatcaaaagacagcttgagtagc
-tatattaatttggggcaaagcagactttagaacaggaaaaaatttataga
-taaagagagccattacataataataaaggggtttgtcctccaccgataca
-taagaatccttggtgtatatgcagctaacaacagagcatcaaaataggag
-aggcaacactcaaagagctgcaacgagaaacagacaaatccactattaaa
-gttggagacttcaacgccctctctcagtaactgacagatccagcaggcac
-aaaatcataaggacatagttgaactaaacagcactatcaatcaactggat
-ctaattgacatttatagaagacttcacccaacaacagccaaatacacaat
-cttctcaagcacacatgggacattaaccaagatagacattctgggccaca
-aaacacaccttagcaaatttgaaagaatataaatcatagaaagtatgctt
-tctagaccacaatggaactaaactagaaatcaataacaaaagctaggtgg
-aaaatatcaaaatatttggagattcaataacacactgctaaatgacacat
-gggtcaaaggaatctcaagagaaactgtaaagtattttgaggaaaataaa
-agtacgacctatcaaagtttgcaagatgtaatgaaggcaatgcttagagg
-gaaatgtatagcactgaatgcatatattaaaaaagaagatcacaaatcaa
-tattctaagtttccacattaagaagctctaaaaagaagagtaaattaagt
-ttaaaatcagcagaagaaaagactaatacaaattagagcagaaatcaatg
-acatttaaaatggaaatcaatacagaaaaatcaatggcattaaaagctgg
-ttctttgacaagatcaataaaagtgataaacctctagcctgactaaccaa
-gaaataaagaaaggcaaattacttatctcagagatgaaagaaagggcatc
-cctactgatcccatggacattaaaaatataataaagacatgttatgaaca
-actttgtgctcacTACTAGTTGTCAACTCTAGTTCTttaccactgctctt
-aatattatagtggcagtcctggttaatgcaataagacaagaaaaaatgaa
-aggtatacagactgggaaagaagaaataaaatggtgcttgtttacacatg
-acatgattgtctatacagaaaattctaaataaacacacacacacacacac
-acaccccacccacccctctcagaactcatgatcaatcaagcaaagtctca
-agatacaaagtcaacatacaaaaggtggttgctttcctatatatgctatc
-tacgagaacaactggaatttgaaattaaaagcacgtcatttccatttgca
-tcccccaaagtgaaatacttaactataaatctaacaaaatgtgttcaaga
-ttatggaaggaaaagaaacttatgaaataaaagaagaccaaaataaatag
-atgttccattttcatggataaaaggtcctaatattgttaatgacgtagga
-ggcaggactcaactctgggggcagggcttggactctggaccagattgaag
-actggctgaaacaggaaacagggaagaggtgaaagcgcctcttcgtgaga
-cacgcccaccagcaccatgtcagtttgctattgccatggcaacacccaaa
-atgtactgcccttttccatgacaatggcctgacaacctggaaattatcac
-cctttttctagaaatttctgcattgtctgctccttaattttgcatataac
-taaaagggggtataactatgccttcagcactgcctctgagctgctgctct
-gggcacactgcctatggggtagccctgctctgcagggagcaacacctctg
-ctgttgctgtacacgtccacttcaataaaagttgctatttaacaccacca
-gctcacccttgaattctttcctgggcaaagccaaaaccctcccaggctaa
-gccccaattttggggctcacctgccttgcattgttaagatgtcaattttt
-tccatgttgatatacagagtcagtgcaatcccaatcaaaattctagtatg
-ttattttgtggatattgagaaactgagtctaaattttatatagaaagtca
-aagacctaaaagagtcaacacattactgaaaaaggaagaacaaagctggg
-ggactgacattacccaacttcaagacaagctataaagatgcagtaatcaa
-aagagcatggtatgagagaaagaacagaccaatagatccatggaacagaa
-cggagtgctcagaaatagacccacacaaacacggctgacctttggcaaag
-aagcaaaggcaattcaataagaatggctgctcttttcaatgaattgctgg
-agtaattggccatccacatgcaaaaaaaaaaaaaaatgaatttagacaca
-gaccttacatcattcacaaaaattaactcaatatggattgtagatctatg
-tggaaaatacaaaactataaaacttttagaagatatcacaggagaaaatc
-cagggaaccttggacttggagatgacttttaagatacaatgccaaaagta
-tgatttaggaaagaaaaaaattgatatgttgcatttcattgaaatttgaa
-acttctattctgaaaagcactgttaagagaatgaaaagacaagccacaga
-cttggaaaccattgttgcaaagcacatgtcagataaaggacttgtactta
-aaatatacagagaaattatttcactcaatttcccaaagtcgttaaactca
-acaataagcaaacaaacccaattttcaaatgaacagacatctcaccatag
-gagatacacagatggcaagtaagcataaagggagacgctcaatatcatat
-gtcattagggaactgcaaaataaaacaacaatgacacattactacacact
-tattagaatgactaaaacccaaaacactgacaatagccaatgctgctgaa
-gatgtggagtaagaggaactctcattcattgctggtaagatgcaaaatgg
-tacagccactttggaagacagttgagcagctcctcacaaaggtaaacagg
-ccctaaacatactcttaccacacagttaattagtaattgtgtctttagaa
-aaacaaaagcttcacataactatctatagcagttttattcataattgcca
-aaactggaagcagctaagatgtccttcaatagatgaatggatacagcctc
-acattggaatattactcagtgattaaaaacaaatgagctatcaagccatg
-gaaggacatggagaaacgttaaatgcgtattgctaagtgcaataagtcac
-tctgaaaaggctgcatattgtatgatttcaattacataacattccgagaa
-aggcaaagcaatggacatagtaaaagttcagcgctagccagaagtctgag
-ctacggcaaggagtgatgagtaggtggagcacgggggatttttatgtgga
-gcacaagggattttatgtggagcacagagaatttttatgtgaagcacggc
-ggatttttatgtggagcacggcggatttttttgtgatgaaagtgttctga
-agcacagcaatcggcggtaactgccatttgcatttgttaaagcccagaga
-gctttacccacaacacagagtgaaccggaatgtaaactatgggctttagt
-tagttacaatgtatcaatactggttcattaatagtaacaaatgtagcaca
-ctaatgcaagattttaataatggagaaaagtaaaggcacatgtgggaact
-ctgtgctttctgttcgatatgtctgtaaatctaaaaaaataagtctgtta
-atGAAAAACATATATACTGAGAAACTGTGTCAGGTTTACAAAGATGAAAC
-AATTAAACAGTCCCAGCCATTACTTTTAAGGATCCACTGTCTGGTGTAAG
-AGACAGCATCATATGTCAGCTTTCATGGGGAAGTCAGGAAGGACATGAGA
-TGGACAGCGCCCAGGATGAAACACTCAGCTCCTTGCAGGAGAGGGACCAG
-GAGAGGCTTCTGTCAATGCTAAAGTGTCATGAAAATACAAGCCAGTGATT
-ATTATTGGGGTTGCCGTGGCTCCTGCGGTATCTCACGTACAGATTTCAAT
-ATTTACATGACTCAGCTCTGCAGCTTTATTTATCCTCCCTCCCAGAGCTC
-TGGAAAGCaggaactgggattttcttctaggtgttgtggaaaccatcgga
-taattgtcatcaggggagtttgaaatatcattctggctgctgtatggtaa
-agggattgaggagcaagaagggaaggcaactcgaaggccaagtctaaggt
-gaagtaagaataatagtgactggggctaaaatgccagcaacggagacagg
-gggagggaagcagagagattcaagatgtattctgcaggaaaagtcagctt
-cccaggtcaaaaaactgctcaagccatctgaaggacagagaattcagtga
-tcatgcctagatttctggcttaaacaattgcaaaatgatgaggtttatca
-atccgggaagacgagcattgaaaaaataaaagtgcgggttaacaaaagtt
-gaatttctatgttgccagcgttaagcctgaaatgcacattttacatgcac
-atggagatgttatgtcagcttcttgatgcagaattatagatgttgacaaa
-gaactttgaggtactccaacctttaaatatcaattaaaagaggagccagc
-aaagtgggtgcgatgaatagcccagggaagagaaaataaaccaggagaac
-acactgatagaaaatccaaaagaaaaacggcgaaaagaaggaagggtcag
-ctggatccagtgttgccgtgggatcttctgtgataagagcattgactaat
-ggacttggcaatgagaaaaatcgctggagattttctcaagatcaacattg
-tgaggtggaggggacagatggccagagggagagaaaggtggaggacggag
-caatgggaaacggATGAAGGGTGAGTGAAAGAGGAACTAGGTataggtgg
-atcaatggagggagtgatggataattggatagctgggtgaatggatACGC
-AGATAAACTGAGGGAAATGATTAACCGATCGAGTGATCAATTTATAACAG
-AGGAGATGTATTGATTAAAGATGGTGCCCAATAAGGCATGATGAAGGAGA
-ATTAAAGGAACCTGATGTTGTGAAGTGGGTATCATTAGGTCAGATGGAAA
-GGTGGCATTAGGATAGCCATAAATGAGCTGCTTCTGAGTCAGGGAGGACT
-TAGTTCAAAGGTGGGGAAGAAAGAGGACTTTAGAACCACTGATCCTTAGT
-TCACATAGCATGCTTTAAACATTTAtggattattaagggctgtttccctt
-aaggcaacagaaatgcaactcagactcaattaacaaaacagggaatttat
-tgttttgaataactggaacgtctcaaggtcagactgatcttctggcacca
-ctagatccagactcccgggcgtcctcagggcctcctgctctgccttcctc
-ccaactgacttcatttacagAAAAAATGCTaacagggatgacttttccca
-caatggggcaaaattagctcttactgggcaaaaaatcttagctattataa
-tggttttgggaccccacaaaaggccccagtatattaaaatatatatatat
-atatatatatatatatatatatatatatatatatatatatataaaatact
-attaaaacataacaagtgggtagtagtgactgcagtaaaattgtctaaaa
-atcacttcatgggtcaataataagaaaagattgagacacaTCAGTATATG
-GACAGGCTTTCCCACAGGTGACAACAAGATTCTATCCTTCTAGGAGGTCA
-AGTTCAGGTAGAAGGCAACACCCCTTCCTAATGGTCCAGCCAAAAGTCCT
-AGGGCTGCCTCTCAGCCAGCAGGTTTGATCCTGGGCCTAGCACTGTGTCT
-CTGAGTAGCCAGGATTTAGGCATATGATCATGCTGGGGCTTTGGGGAAGG
-CATCAACCTCACCTGCACAAGAGGAGGGAGCATATCACCCCCCAAAAAAC
-TGATGAAGATGGGAAGGGGAAAATGATTTGGAATGGGTAGAGACCAAAAG
-ATGTGTGTCCCAGAACGGTTGCATGCCAGTTAGGTAGGGTGGAAGCCTGT
-TGCTACGATGTGGGGAAGGTTGTCTGCTTCTCAACctgtggccagtgaaa
-tgtatgcagaattgatgtgtatcagctccggacaaacattttcagggcca
-TGATGCTCTATCTCCTGCGGCACTGCTATTGAAAGCACAGGGATAGATTG
-CTCTTCTGTGAACCTGAGTCTCTGAGGCTACAGCAGCCCCTGACTACGTA
-CTCAGTGAGAAGCAAGCTGGGTTCAGTCACTGGCCCAGGGGCATTTTTGT
-TATCACAGCATAACCAGGTCTATACTGACAGCTACACTTGGCAATAACTT
-TAAGGTACTATAGACTAAGAACTTTGCTTTATGGCACATGATCTAATTAA
-ATGAGTTAGCAAACACAAGGAATATAGAAAAATGGAGAAATAACAGTTCC
-TTAAAAGTTTGTCTCTAACACATGATCATTCACTTTGCATTGTCATGCCA
-AGCCATCATTCATGGCTGAATTTTTTTTTTTGATGACCTCACTTAGTGTC
-CCTGGGCATTGCTTGAGTGAGAACCATGTGCTATAGATGCCCTGATTTCA
-TTCCTAGTGTCTGTTCTGAGCACCCTCTGGGTGTCAGATTCTGGGGCAGT
-TACACACCcagtcagtccacaaatctttatcaagacttcttatgggtcag
-gtaatgagctagactctaagaataaagtgtgaaacaaaGACTTATTGAAA
-AAGAAAAGAGCCATATAAATCTGATGACGTGGCTTTTCTTGTAAAACAGC
-AAGCTTATTCTGTATAGTTCATGCATTATTGACTTCAGAATTAACTTAAA
-TGAGTATAGCTGATGAATCAATGACTTGTGACAACTTTGGGCAGTGGGTC
-TCAACGAATTCAGCTTCCTAGGCCTTCAGAATTAACTTAAATGAGTATAG
-CTGATGAATCAATGACTTGTGACAACTTTGGGCAGTGGGTCTCAACGAAT
-TCAGCTTCCTAGGCCTTCAGAATTAACTTAAATGAGTATAGCTGATGAAT
-CAATGACTTGTGACAACTTTGGGCAGTGGGTCTCAACGAATTCAGCTTCC
-TAGGCCTTCAGAATTAACTTAAATGAGTATAGCTGATGAATCAATGACTT
-GTGACAACTTTGGGCAGTGGGTCTCAACGAATTCAGCTTCCTAGGCCTTC
-AGAATTAACTTAAATGAGTATAGCTGATGAATCAATGACTTGTGACAACT
-TTGGGCAGTGGGTCTCAACGAATTCAGCTTCCTAGGCCTTCAGAATTAAC
-TTAAATGAGTATAGCTGATGAATCAATGACTTGTGACAACTTTGGGCAGT
-GGGTCTCAACGAATTCAGCTTCCTAGGCCTTCAGAATTAACTTAAATGAG
-TATAGCTGATGAATCAATGACTTGTGACAACTTTGGGCAGTGGGTTTCAA
-TGaattcagatccctaggccccacccaacacctgctgaatcagaatcagg
-agattgagcctagaaatctggatctttgatcacgtattctgggagactct
-gacacattccaaaatttgaACATCTTTGCTCCAAGTTGTAATTAGTCATT
-GAAACATTAGTGAGAATGGGTGCCAGACCCTCGGTAAGCCAAGTACTGAG
-AATGGTACTGAGGAAGCACGCTTCACTCAAAACTTCTCATGAGCACTCTC
-TTGCAAAATGATCAAAGATTTTTCAAGGAAAATATTAAAAGCTTTGCTCT
-AAAAGTCCTAATGTCTGCAGAGACACTTGGTGTGCGTTATTACGCACCAG
-CTGCTTGGCTATGTCAACGTGGAGCAGCCTGGATCTGCCCTGGGATGGCC
-TTCATCTGAGCACTTGGCCGCCTGTGCCTCACACAAAGCCTCAGGGCTGC
-ACCTCTGGAACAAGAGAGAGACAAGAAATAGAAGATATTTCTAggccggg
-cgcagtggctcacacctgtaatcctagcactttgggaggccgaggagggt
-ggatcacctgaggtcaggagttcaagaccagcctcaacatggagaaaccc
-cgtctttactaaaaatacaaaattagctgggcgtggttgtgcaggcctgt
-aatcccagctactcgggaggctgaggcgggagaatcgcttgaacctggga
-ggcagaggttgtggtgggccaagattgcaccattgcgctccagcctggac
-aacaagaatgaaactccacctcaaaaaaaaaaagactaaaatttacttgg
-aagattatagaacactcctccccaaatattaaccccacaccaacaggttc
-ccatataacagtggaccctctgtaaagagctgcaaggcacagaccctctt
-taagaaggagtttttagggaaacccaaagacagtagggagataaacagac
-attctctgaagaggattacttaggaaagcgccaagtgcagaaggcacaca
-caacaagaaagttagagggaccggaaacctccatcgcctacagccatagc
-aaacaagaaagcgtctcactcagccgtgttaatacactcctaaaattaaa
-ggccaatttacctccattcctatcactcaatacaatctttctgactttca
-acaagaaaaaatctcaaggcctaccaaaaggcaatcaaaaacacagttcg
-aaaaaataaaacaatcatcagaaatagattaatatataataacctacaaa
-aagttagaaatatcagggaggcatttaaataactacaatcagtatctcat
-aggttctagcaggaactaaaaaccatgcaaaaagagatgagcaatgtaag
-cagatagatgggaactaaaaaaactaaaagatatgctggaaataaaaaat
-actgtacagaaataaagaatgtttaatggctcatcgaaaaacttgacaca
-attaagaaaagcatcattgaaattccacataggtcaacggagacttccca
-aagtaatatgtaaaaataaacttatattgagtgagggaaagatgtcaaac
-aactgtgggacagtaggcaaagatgcagcatacacaaaaatggaatatca
-gaaggaagaaagagagaatgaagcagagaaagtatttgaagtaaaaatga
-ccaagaatgattccaaattaatggcagacaccaagctacaggccatgaac
-ttcatatgtttccccagtagttgcatgttaaagccctaaatgtgattata
-tttggagattggggctttacagaggtgattaacttaaaatgaggttactg
-ggggacgctaacccaatctgactggtgtcctcataagaatagatttgggc
-acaatgagaccccaagggtcacgtgcacagagggtcagccaagtgaagag
-ccagcaggcgagaggccacctgcaaacctaggacacccccaggaaaccag
-ctctgctgacacctCTTGAAGAGAAaaactcagtgaacaccaagaaagga
-attgtaaagagaacttacacacaaacaaataacaacaaaaacacctgcag
-aaaagcaaagacaacaagataatcctgaaagcagctccggggcaggaaac
-ttaatcatggagagacaagtcacgaatcacagaaaactttttgtcagaaa
-ccacgcaggcaagataggagtggagtgagttttttaggtgttgaaagaaa
-aaactaagaactctacatccagccaatttatctctcaaatgtgaatgaga
-aatccttctggaacaaacgaaaacggaattcaccactatcagacccaccc
-cgcaagaaagggtcaaagttgtttttcagggaaaaggaaaatgatatgtg
-tgggacacttgtgtctgcattaaaaaaagaaacgatgtcataagaaataa
-atgagagttagtaaaatctttttttattcttaattgatctgaagataact
-gcttgattgaaatgataatagtaacaatatattagatgaatatagtatat
-ggataaattgtcacacatGATGGGAAGGAAAAACTTGGAATAtatccgca
-ccacatgaaacggtatagtgtcattcgaagtcagattttaaatattcaac
-aatgcacaacaatgaaactccagcacaatcactaaaaataatataatatg
-ctaagaaaggagatgaagttatataaaatgctcagttaaaaccaggaaaa
-aaaaaaaacaggaaaagaagggaaacacaaagaaaaaagaataaatgtaa
-taagtagaaataattacaaacatgtcaggtattaatccaactataCAACA
-CAACTACGCAATACAACTATGcaacacaactatacaacacaactacacaa
-cataactacacaatacaactacgcaacacaactatgcaacacaactaaca
-caactatgcaacacaactacacaacacaactacacaacacaactatgcaa
-cacaactaacacaactatgcaacacagctaacacaactatgtgacacaac
-tacacaacacaactacacaacacaactacgcaacacatctatgcaacaca
-actatgcaacacaactatacaatgcaactatgcaacacaactacacacca
-caactatacaacacaactatgcaacacaattatgcaacacaactatacaa
-cacaactatgcaacacatttctacatagcacatgggtcaaagaggaaggc
-tcaggaaaagttaaaaggaactaaattctactttcaataatcactttaaa
-tgggaacattccaaatacagcaattcaaagacagtttcataatggattgc
-aaaaaaaaatccaacttcagcaggtcctcaaataatgtcactttgttcaa
-cattgtttcattacaatgttgatgagaaaaaaattgattcccaaatggag
-ctactgtctgtgtggaacttacgtgttctccccatgtctgcctgggcttt
-ctccagttattccagttttctcccacatcctaaagatgtgggtattcagt
-taatttgcatgtctgaattgtgtgagtgtggaggggggtgtgggtatgct
-ctgaaatgggagggtatcctgtccaggcatggttccacatgtgcccagaa
-ctgccaggcaggctccagccacccatgaccttgaactggaataatcgggt
-aaataaatatcttatttgtttttattgatctttcttaagtgtatgtatag
-ctcacaataatttcaatgtttagtattagtgtttggggattttatttaga
-agtctggtgtttttgtgaacagaaatacgccgtagcaacaaaactcttgt
-ttgtaccaattctcctgtggtagaattggtttcattatatgtcctttcac
-ttaaagtcacaatttctaagaacctgtccacagcgctaagtgagaacgta
-ctgtatgtattgtctacaagaaatcccattttaagtataaagactagaat
-agatcaaaagtaaaaggatggagaaaaatgtaccaaactagcaccaatca
-aaagaaagcttgagtaattatattaatttcagacatagcagacttcagaa
-caagaaaaatgatacgggagaaaaaggggcattacataacgacaaagggt
-tgaccctctaaaatatataacaatccttaatgtgtatgtacccagcgaga
-gacagtcaaaatactcaaggcagaaagtgatagaactgaagagagaaata
-gacaaatccactgtgacagctggaaccttcgacacgcttctgctgctgac
-aggcagatgcagcattcagaggggcgtggttgcactgatcgcctcaatca
-tccaacttgatttaattggcatttgcagaaagttgcacacaataacagaa
-tacactttcttctcgagttcagatgaaacattcaccaagatagaccacat
-tctgggccataaacatacctttaaattttttaaaacatagaaatcagata
-gaccgtgttctcaactaacaataaaattaaactagaagtaaatagcagga
-aaatatctggaaaatcccaagccatgtgcagattcaacaacacactttta
-aatagcacaggggtcggtcgggcttggtggctcgtgcctgtaatccccag
-cactttgggaagccgaggctggtggatcaactgaggtcaggagttcgaga
-ccagcctggccaacatggtgaaaccccatctctacccaaaatacaaaaat
-tagccaggtgtggtggcacatgcctataatctctgctacttgggaggctg
-aggcaggagaatcgcttgaacccgggaggtggaggttgcagtgagctaag
-atggcaccatcgcactccagcctgggaaataagagtgaaagtccatctca
-aaaaaaacaaaaaaatagcacaggggtcaaagaagaaggctcaagaaaag
-tttaaatgaactaaatgaaattaaaatgcaacatatcaaagaggcattct
-ataaaagtcctgatcagtattcttccaaaacagggtcatcaaaaacaagg
-aaaacctaaaaaactggcagagccaagacagcccaaggcaacatgatgac
-taaaagtaatgtgggatcctggaagagaaaaggaatgtccgtgaacaact
-cgaaaatctgaataaggtatggattttagataataatactgtatctatat
-tgattcgtttattataataaatgtgccacatcagtgtaaaatgttaataa
-tacgagaaatatgatgtgggatatatgagaactctgtatctttgcaattt
-tcttttaaacctgaaacagttctaatgtcttaaagtttattttataaaaa
-tataacaatcaaatttgtgggatgcagtgcaagtggtatgtagagggaaa
-tttatagcattgaatgcatgtacatattagaaagaagaaagatctacagt
-caatcatctattcttcatccttaggaagccagagaaagaaaagtaacgga
-agcctagagcaagcagaaaatgaataaataacaaaaaatacagcagaaat
-caatgcattttaaaaattagaaaacaacagagaaaatcaatgaaaccaaa
-aatagatttttaaaaaaaatcaatcaagttgaaaacctctagctagtcca
-accaagaaaataagggagaagatgcaaattactaatatcagaaacgggag
-agctctatctctgcagggtcctgtgagcgttaaaatggaatatgatgaag
-aactgattccacacctgcaaatgtggtaacttaaatacagtggaccaaat
-ccttaagtctacaaactatcaaaattcacacatggagagacagagagctt
-gaatggctttatatccataaatgaaattgaatcagtcattaatagccttc
-cagaaaacgaagcctcaggcccagatgtttcactggtgaatcctatcaac
-cttttaaggaagaaattataccaattcttcacatttctgccagaaactaa
-aagcagacaaaacacttccaaactcattctacaaagtcagcattacacta
-atagcaaaccagttaaagacgttagagaaaggaaaattatacacaaatct
-cactgaaaagcacagatgcaaataaacctaacaagatattagtgaaaagc
-atccagcagtgtgtaaaatgaatgataggccacagtgaagtgggtcttac
-tccaggcatgAATTATATTCCTTTTTCAAAGTTCCTCACCACCTTGTTGA
-CTTTCTGAACCTGTTAATAATTTGTGGTTTCTATTGTACACAGCTGTTGT
-CCCTGTCTTCAGAGGGATTGATGGATCAATTGAGTTGGCCCGCCATAACC
-AGAAgcagactctttggtctgtctttattccactttgaatttcccagcat
-gtggcaaattactgggtactcagcagggattcattaaatattaggtaatt
-gagtaaatAAGTAAGGAGAtgatatggttaggcttcgtggccccacccaa
-atctcatcctgaattgtgattcccgtgatccccacaggtcaaaggagaga
-ccaggtggagggaactgaatcctgggggcggttcccccatgctgttctca
-tgatagtgagttctcaccagatctgatggtttcataaggggctctttccc
-cttcactcgacacttctccttcctgccgcctagtgaagaaggtgcctgct
-tctcctttgctttctgtcatgattgcaagtttcctggggcctccccagcc
-aagctgagctgtgagtcaattactcatttgtcagcagttctttttttttt
-tttcccacgacaaagtctcactctgtcacccaggctggagtgcaatggca
-caatctcgactcactgcaacctctcctcctgggttcaagcgattctcctg
-ccccagcctcccaagtagctgagattacaagtgcacgccaccgcacccag
-ctaatttttgtatttttagtatagatggggtttcaccatgttggtcaggc
-tgatctcgaactcctgacctcgtgatccacccacctcggcctcccaaagt
-gctgggattacaggcgtgagccactgcgcccagctggcagttctttatag
-cagtgtgaaaatggactaatacaGGAGACAATATGTCTTTTTTTATTTGT
-TGTAGTGATTGCAATACATAAATAATGTTTTCTTACTTTTTCTAGTCTCT
-GAGCTTCTGAAATGTGGGAACATTGTTCTTTCTCACACATGTAGCTTAGG
-CTAAGCCTGAAATTTTGTTTGGTGTTGAGATAGCTGGGATGGAGCTACAC
-TGAAGACCGTCTGGTGGCGAAAGGCTTGCATTCTTTTTATGCAAATTGCA
-TGCTTCTGAAGGCAGACAATTGGTTTAAGTTGAGTTGATTGTATTTGGAT
-TAGTGGGAGTCCAGAGGCCAGGGAGGGTGGGGCAGGGGAGAGAAGGGCAT
-TAAATAGCAATGAGCTCTGAGAGTTGAATAGGGGATGGGAAGGTGTATGT
-GCCAAGGCCCTGAGGCAGGCAGCGCAGCCTTCGGAAGTGAAAGTTggccg
-agctggtggctcacgcctgtaatcccagcactttgggaggctgaggtggg
-tggatcacatgaggtcaggagttcaagaccagcctggtcaacatggtgaa
-accctgtctctactaaaaatacaaaaattagccaggcgtggcggctcatg
-cctgtaatcccagaactttgggaggtcgaggcaggcagatcacatgagat
-caggagttcaagaccagcccggccaacatggtgaaaccccgtctctacta
-aaattacaaaaattagccgggcttggtggcgcatgcctgtaatcccagct
-actcagggggctgaggcaggagaattgcttgagcctgggaagcagaggtt
-gtagtgagctgagatcgtgccattgcactccagcctgggtgacagagtga
-gaaaaaaaaaaaaggaagaagaagaagaaGGAGAAGAAGATAGAGAGGCC
-AGGCGGGGGGATGGACTGGGAGAGGGTACCCGTCAGCAGGAGAAGCAGGT
-AGGGCGGATCATGAGGCCACGTGGGGCCTGAAGGCCATGTTTGAAGGGCC
-GGCCTTTAATCTAAGAACAAGGGGAAGTCATAGAAGGAAATTCAGCAGCA
-AGAAAAGCTGGTTTGTCTCTATCTGCAGAGGTTCTGGGAACACCGCatgg
-tggttttgactggagtggtgagagtgaggacaaagggaagacagaggctt
-ttagattcatttaggaaatcaacaagacacggcagataactggatgttgg
-gaagcaggtaaagaggaggatgtgtctggaaaaatgcccaggtttacagc
-cagagtcactgaaaTTCAGGAGACAGTGAGCCAGGTGCGGCTTGGGGCGA
-GATGGTTTTGACAATGAGAAGAGAGAGGCCCCAGGCCAGCAGCAGTGAAG
-GCTCCACCTGGCCAGTGGCGGAGCTGCAACCCTGGAAGCCTGTGCCGGCC
-TCTACGGGCCCCACTGCACCCTCCGTGCCATGAACCTAGTTGCTGACCCC
-CAGGTCACAGCCAGGCAGGAAGGAACAGAAGCCATGGAGGACCTGAGGGT
-GTGGCCAGCAAAGCCCGCGCTGGGATCCATGTTGGAAATGGAGATGGGAT
-GTATGGGACAACAAAGGGCTCCTGGTGCATTGCTGAGGTATCCTGGGCTC
-CCACAGGGGCCACACATGGATTTGGTGTGGAAGTGTCCCCCCAGGCTCCG
-TGTCCCAGGCTCGGGGCAGAGCCAGCGCCAGTGGTTGGGAGGTTCAGGGA
-GCGTTTTCCAACATCAGCAGCTAAACTGTGGAGCCCACCACACCCGGCAT
-GTCCCAGGGGAGGCTGAGGGACTCTGTTAGCGTTCACAGGCGGCACATCC
-CCCAGGGCAGGAGGCAGCCCCTCTGGCCCCACGATGTGTGGGTCTGCAGT
-ACCTGGTCAGCCCTGCATCATGGCTGATACACACTGACGTTCCAGGATGA
-ACCTGTAGGCGACAAGCAAAACCAAAGTGTGGAGCCTCCCTACCCGAAAG
-AAGCACCTGGCAGCGCCAGCCTCAAGCCAGGACCCCCTCGGCACAGCAAC
-ACGACCGGCTCCCACCCGCCAGCCTGCATTTGAGCCTGGCTGAGAGCCGC
-AGATAGCCCGCCTTGGTGCAGGCTCACTGCCATCCGGCAGACGGGGCCTC
-CAGCAGGCCGCCCAGAGCCCTTGTGGGTGGCGTCCGTGGGTGGATGAGGA
-GGCAGGCTCTCCCTCCCAGGCAATCCCTCCCTGTCCTGAGATTGGCTCCG
-GCGACCATCCCCGGTGCAGGCTGATGCCTCTGTGTCTTTGCCCGGCTGCC
-TCTCTTCCTCCTTCAGGATTCCTCCCCAGCAATGCAGAAGGGCCCCATGA
-GGGCCCACACAGGGCATCTGCGGTCTGTTGGGCTCAGCCCAGAGCCAGTA
-GCACCTTGGAAGTCTGTGGTCAAGGTCAGTTCTTCATTCACCTGCTTGGA
-AAAGCAGCACTGAGCACCCTCATGGGGTGCCAGGCCTGGGGCAGCCACTG
-GGGCACCAGGGAAGCAGCGCCCATCCCCAGTCTCTGCTCTGGGTCCCTGT
-AGCAGGTGATTTGGAAAGTGGGATGTATTTGCTAGAGTGAGGGGTCTTTA
-GCTTAAAGGACGCCTTCCGGGCCCCATTGTAGATCCCCATTCCCCTCAGC
-CACCGACCACAGTGCCCAGCTTTTGTATTCCCACTGTTCTCACACACACA
-AGGCTGATCTTGTTCACATGCTTATTTCTGAGCTTATTGTCTGTGGTTGc
-acacacacccacatgcagacacatgcgcagacacacgcgcagacacacgt
-gcagacacacatgcagacacgcacagacacacacaTCGCCAGCTACATTG
-TGCCGTGATGCACCCAGGATAAACCCACTGTCCAGCCCTGCGGTTGTCAT
-TGGACCAACAAATTCCACGTCTGATAAATAACATGAAATGCTGCAGGGTG
-GACGCCCAAGATCTGTACCACAGAATTACTGATGACAGTGAGAATTTAAA
-AAGACCCGAAATAGCCCGCCATGGAGGAATCACTGGCTGCCTTCGGCTGC
-ATCCACATCAAAAACACCTTTGTAAAAAGTTGTGCTCACATCGAAATAAA
-TGACGAAACAGAACACAAAATCTTTATATTCAGAGTATTATTGTAACGAC
-AAATACAGGTGTTTATGACGTTGGCAATGCTGGGCTGGGACCACATGGTG
-CAGCCGTTTGGGGGACATCTCAGGAGTCGGGTCCCTGCAATGCTGTCTCA
-GCTGCACCCCTGACTTGCTGGGGATTTGGGGAGCCAGGTAGCCTCCCAGA
-GCCCCCAGGGTGGTGCATGAAATAGCAGCATCTGCCCCAGGGTTGTCCTA
-GGAGTGAGGAAGACACCAAGTGAGGAAGGCGCCCCACGCAAGGAAATCAG
-AGGGAGGCCTGGCGCACGGCGTGCAGTTGGCTCTTTTATTTTTTAAGACC
-AAAGAAAAAGTCTAGAAGGAAGACTATACCCCAAAAAAGTAGAAATAGTT
-GTTTTGCTTGAGTAACTAAATTAGGTATTATTTCCTTTTAACTTTTTTCT
-GTTTTCTGTAACTTGCATGTTAACACTTTCACAATTGGAGGGAAAAATAC
-ACCTCTGAGAAAGTGAAGTCATTCCAGGACAGGCTCACCGAAGTCCTCCA
-GGGCCAGGCAGCCGCACGGGGAGAAGGCTGGGCTGCATAGGCAGGGCTGC
-GGAGCTGAGTGCTCAGAGCCACTCCGGCCTCCTCTTCAGTCTTGTGAGAA
-CCCTTCAGGCCTGGGGCCCCCGGGAGAAGCAAGCACCCCTCCTCTTCAGG
-TAAATCCACTTCAAGTCACTTTATCCCCCTCTCTCTGAGAGCTGATTGCA
-GCTGAGATCGAGCCCTGAGGACGTGCCAGGATCCTCCAACGCCTTCTAGA
-ACAAACACACCACCCGCTTGGCACTGCCAAACAGCCTCAGAGCCTCAGGG
-AGGCAGTTGGCTCTGTCGCTCCAGCTCTCTGCATTTCTTTTGTCTGTTTA
-AGCCTAAGAAGATCACCTTCCCCAGACACTGTTCTAATCACCACTCTTTG
-GGGCTACTACAGCCCTCCCAGGTGTTGGGCAAACCATTATCTTCTTGGGA
-TCACCCAATGTGCGGCATCCTTCCTCCTGCCATCCTCTATCTTTGTAGAA
-TTGGTGACGGGAGCCTGAAAGCCTCCCGGGTCTTCTAGGAGGCTAGGACT
-GAAGCTCGGTGGCCCATGCTGCCGTGGATGACATTACAAGTGCTGACCTG
-AAACCTCTGGTGGACCACAGGCATCCTGGGCAGACGGGGCTGATATGtat
-ggtttggatggccgtcccctccagatcacatgctgagatgtgatccccag
-tgttggaggtggggcctgctggaaggtgttttggtcatgggggtggacct
-ctcatgaatggcttgtaactgtccttctagtagttagtgggttttcacga
-gatctgcttgtttacagtgtgtggcttttctcccccagctcttgtttctg
-acatgtgatgtccccgctccctctttctttgccttccaccatgattgtga
-gccttccaaggcctccccggaatcagaggccagcaggatgcttcctgtac
-agcctgcagaaccatgagccaattaaacctctttccttacaaattaccca
-gtctcatgtattgctttatagcagggcaagaatggcctaatacaGTGGCA
-CCTTGGGCAAAATGTTTTTAGTGCCTTGTGTTTGCGGTGCAATTTCAGAC
-CAATCACAACATATTTGCATCCCTTGTATGTGCCAGGCTTAGAAACTATG
-CTGGGTGATTTTGCAATGCCCAAGGCCCTTCCTTCCAGGAGCTAGAAATC
-AAATTGTGATGGTTGGGTGGGAGCGTGTCTGAAGAACCCTGCAGGAAGCA
-CGGAAGGTGCCCACAGGCCCAACCAGAGTCTCCTCAGGGCTGAAGTCTGC
-CACACACCTCTGTCAATCCAGAGAACCCGGAGGGTCCCCTCATGCCAGCC
-CGAGCTGCCTCCACCCCGGCTGGTGAAGCATCTTTCCCCATGACCAGGCC
-AGGCTGTGGGCTGCTGAGTGGGGAGGGATGTGGGCCGGTCTATCTCTCTC
-CTCTGTCCACCCCAGAGACAGGAGCAGACAGTGGTGGGCCAGGCCTCCAA
-GAATGACGTCAGAGGAGACATGCGACTTGGCTGAGATGTTGCAGGGGGAG
-CAGGATGTCGGCAGACTGGAATAAGATGGCCAGACCATCCAGGGAGGTGA
-GCAGATTGGCAGCACCCGCCGAGGTGCATCTCCTTCAGGCCTTGGAGCAG
-ACAGTGCAGTGTCCTGGGAGGCCCACACCCAGTTAGAGCCTGCGGAGGCC
-ACAGAGCCACTCTTCAGCCCTCTCGGGATCCGGAAAGAAAAAGTCTCTGG
-ATTCCATGGCATCCCCACCCAGGCACACGCCAGCCTCCGCCTACATTTGC
-TGGCTGCTCCTGTCTGCCTGGACGCCGCCCTTTCTACATGGGCCTTGCAG
-GAGCCTCTCCGCAGGGGAAGAAGCAAGGTCCAGCTTGGCGAGCTGAGTGA
-GAAAAGGTAGCAAAGGGGAATGAGCATCACTGGGAGGGTGACCCTCAAAA
-GCAGAATATGAATTTTTTTTTCCAAGAATAAAGCTAGACATGCACATGGA
-CATGTGACGCCACCCAGGCAACCGTGCCAAGCCCACATTACAGAAATGCA
-CCCGGGACCCACCCAGAAAAGCACAACACAGAGGGAGGCAAAGGCTCCAT
-GAGGCAGGGAGGGGACGGGGGTGGCCGGGCATGGCTCTCCACTTCTGCTT
-GTTTATATTTTTATGCTTAATTAAGTAATTAAttttttgagacaaggtct
-cactctgtcacccaggctggagggcagtggtgtgatcatggctctctgca
-gccttgatttcccaggcttaagcaatcctcctgcctcagctccccaggca
-gctggccctacaggaatgcacgaaaatacccgaacaatttttgtattttg
-tatagagacaaggttgtgccatgttgcccaggctggtctcagcttcctgg
-gctcaagcaatcctcctgcctcagctccccaggtagctggcactacagga
-atgcaccacATAcctgaccaatttttgtattttgtgtagagacaaggttt
-tgctatgttgcccaggctggtctcgccttcctgggctcaagtgatcctcc
-tgccttggcctcccaaagtggtgggattacaggcaccgtacccagccTGT
-TTATATTTTTAAAACCAGGAGCCTGGAGCAAGCGTGACAGAATGTGTATG
-TACGTTAGCCCCAAAAAGCAATGCGTGGGGTGTGTGCTCCTCATCTTTAT
-CGTGTATTTCTTAAACATCCTTTAACTAAAAATGCAAAACCTTGTTGGAA
-GAACAGAGCCTTGGCTGGATGGGAAGGGCTGTGTGCCCTGAGGTCTTCCA
-CCTCCAGCCGACCTTGCACCAGGCCCAGAGTGCACAGGGCAGGCTGTGGA
-GCCCTGATCATTCTGTCACACACTGGCTGGAATGCTGGACAGCTCATGGG
-GCCTTTCCCTTCCTCCGTGACCCCCTCACCCCAGCACGGCACCTCAGGGT
-ATTCTGTGGGGTTTTAACATAGATACTTGCACATGAAAGCACTCACAGAA
-GGAACCAAAGAGCAAAATAGAATTTCAGCTTTGTACCGTGCCCCAGTGCT
-GACATCTCAGCCTCATCCTTAAGCCTCCTCTCCTCCATCCCTGTCCTCTC
-CCTCTACGCTGGGGTAAAGGTCTACCTGGGGTGGGACTTGGGTGCACGTT
-GAACCAAGTCCAAATGCTCCCTCCATCCCCCTTCCCCCATCAAAAGGTGA
-CACCAAAATCATGCACAGCCACAGCCTGCTTCCCTGACACACAACAGGCA
-CTCTGCTCGTGTCCCACCATGAGGGGCTCTTGGCTGAACAAGTGCCAGGG
-ACGTGCCTGTAGAGAACACAGGGCCGCTCCTCTCACCCTGCCTGGGAGCC
-CTTCTGCGGGGAGCTGCAGTGAATGCAGCTGGCCCCGAGGTCACGGTGTT
-TTTTGCCTTGCTCTCCGCATCTCTCTGCTTGCCTCTCCCCTGCCCAGGAT
-TCATTCTCTGGGATGGCAGCAGAGGCTCCAGGCTCCCCACCAACCCCCAC
-CCCGACAGCCTAGCAGCCCTGACGGAGATGCAGCAGGGGGTGGGTTGTCA
-AGGACGTCAACAAGGTCTGCCCCAGACCTTGCGGCATGTCCACAGCCAGG
-AGTCCTCTGGTGGGTCGGTCCTGCGCCCACTGCTGGGGCCAGGGGCAGGG
-GCCACCCACACCTAAACCCAGAGGCAGAACAGACCCAAGAGGAGAATTAG
-CTGATAAAATCCACATGTCCACCTTGGGGGTTCACCTGAGAGGTGCCAGG
-AAGCCCTTTCTTGGGGCTGTAGGAAGTCTGAGTTCAGAGGTGAGAGAGGC
-TGAGTCTGGGCTGCGGGGAGCTACGTGTGTGCATGCGTAGCAGATGAACC
-CAAAGTCTGGGATGTGGAGGAGGCTGAACAAAGGAAGAAAGAGCGGGGAC
-ACCTGAGGGACCAAGACCACTGACTGCCCAGGTCTGGACCCCTGGCTATT
-TCCAGGAAGCAAGGTTGCTGCCTCCTCTGAGGGACGGTGCCACCTTGCTG
-AGCCTCTGGCAGCTCCCAAGTTCCCATGTGGGTGGCCTCCAACAGCAACG
-GGGGAGGACAGTGTCCAGCTCTGCGGAGGGAAGGAAACCATTTTCTTTCA
-GGCTCTCCACCCAGGTGTACCTGGGCTGGCAGGCTGGAGAGACAGGGGCC
-TGGGGGAAACATGGGGAGAGACCAAGGCTGCAGAACCATCCCGTGCCCAG
-ACACAAAATGGAGGTGTCTCTGTTGCAGATACATTCCCAACCCCGGACCC
-ACACAACAGAGTCAGGCCCAAGAGACGGGCTCCGGCCGTCCATGCCTTCT
-CCTGGATTCCTCCAGCAGAGAGCCCTGCAATCTTCATCCTCATATCAGGG
-ATCAGAGAAAGTTCCAGGCACACTGGCTGGCTCCCTGTGAGGAGGCCACA
-CCCTGGCTTAGAAAAGCAGAGGCACAGTGACGCCCAGGGACCCAGGGGGA
-CGCCGCCGTGTCTCCTCCTCAAGGGTCCAGAGGAGGGGAGGCAGGAGCCG
-CATGCGGGTGCACAGAGGAGGTGCATAtagggtggacagaggaggtgtgg
-acaggggaggtgtggacggtgtggacaggtgagatgtggatgggacgggg
-tggacaggggaggtgtggacggggtggacaggggagatgtggatggggtg
-gggcagacaggggagatgtggatggggatggggtACACAGAGGAGGCCGG
-AGGTCTTCGAAGTTTTCCTTCCCTTCAAAGTGGCCTGTCCTAAATTCTCC
-CTCAGAAAGTAGCAAGAAGGTGCGACTTTGGTGGAGCAAAGGGGCAAGTG
-TCCAGGGGACGTGCATCCTAGGAGGTGCCCAGGTCAGCCTCACTTCCCTT
-CCATCAGCCCCTTCTAGGAGTCAGAGCAGCTGGAGGTGACCACCTGCTCC
-CGCCCtcccatggaattttcccagcaggactgggagggaggcatcgtgtc
-tccagttttcacatggggagactgggcccaacgaggCAGATTAGCCATGA
-GCCCTTCTCCCATGTGTCTTGACATCTCAGCCAGGTTGGCTCACCGTGAA
-GGAAGAAGGCCTGGTGTGGGAGGTGAGAGAGGCGTTGTAAGGGGGGCCTG
-CCCACCTGCCCCACTGTTGCAGGACGTGAGGGGGCCTGTAGGAAGTGAGA
-GGGGCTGTAGCGGGGGCCTGCCCAcctggccccactctctgcttgctggg
-ccacccatagacaagtgacttggccactctggcctctcctatctgtcaaa
-tgaggaaatgagcaggggtgatctAGGCTTCCTGTCCCTGGAAGACACAT
-GCAGGACCTGGAGCACAGAAACTGTTCTGTCCTTCCAGATGCCCCAGAGC
-TCCCTGGAACCCTGATCCCGCCACCCTGTGGTCTGTCCTTCCAGATGCCC
-CAGAGCTCCCTGGATCCCCGATCCCGCCACCCTGTGGTCTGCCCTTCTTC
-CGCCTCTGGACATCAGCTTGCTGGAGCCATTCCCTGTGGCTATGCCAGGT
-GCCTCAAGACAGGCTGCAGGCCCCGCTGTGCAGCTCACCCTCTGGGGGAC
-CTTCCACTGTCTGGAAGACCATAAGGTCCCTGGGTCTCAGCTCTGCTGCC
-TCAGATGGGAATGGCAGCCCCACTCTGCTGCCTCCTGGGGCCGTGGAGCC
-TGGATTTCATGTCTCAGGGGACCTCACTTTCAGGGCCTTCCTCCTGCTCT
-GTCTCAGGGCACTCACCTGGTCCCCTGCCCTGTCACTCATGATCACGTGA
-GCCCAGTGTGCAGATGCCGGGAAAGTGCAAAGGTCATGGCATCTGTGCTG
-GGCCCCACCAGGAGGATGGGGGTGAGCCAAGGGCCACAGTTATAACCCCT
-CCAGCATGGCTCCGCCACGTCTGTGGTGCTGCAGGAATGCAGAGCGGAAC
-GAGACGTGGCCCTCGCTTTCTGCCTTGTCACCTGCATCGTACCGGAGCGG
-CGGGCATGAGCTGAGAGCCAGAGCAATGCCAGGGCTGGATGCCCACCGCA
-GAGAGGCCAGCCTTCCTGTGGGGCAGGCTGGCCTCACCCAATTCCAAGCA
-TCCCAGGGCCAGCCTGGCTGACAGTGCTGGCGTTTAGATTCAGGACGTGC
-AGCCTCTGTGCTTTCTCCTGACCCACCCAGGGCTGAGGAGGGACTGCCGG
-CAAGATACTGGGAGCTAATGTTTTAAGTGACAACATAGGAGACATCACAA
-ACGCAGAGGGCTGCATCCAGGCCCCAAAAGGCACAGGGCACTGGGTACTG
-GGCCCAAGAGGAGCAAGATTCGGGAATGGGTGGGCCAGGGCATCACACAA
-CCTCTGCCCACAGGTTCTGAGATACTTCCAGCCAGGCCAGGAAAAAGGAG
-GGCTCTCCTATGCTTTCAAAGGGAGAAAACCCTCTTCCCAGGGTGGCTGC
-CTCTTCTAGAAAGTCACTTAAAGAGAAGCTGTCCTTCCGGGGGCTTTTTA
-CAGCCATGGCTCAGGCAGCCCTTTTGAGGATAAATGGTTAAGAGCTTATT
-TTTCCATAAATTAGCAAGAGAGAAAAACCCATACAATTTGTCAGTAGGCT
-TCAGAATTGTGCTATTTTCAAACAGTACACATCGGGGCGTGCTTAGAACC
-ATATGGTATCTCAGTGCCGCTAACTCAGACAGCCTGTGCCACAGGACGCT
-GAGTGCACAGGGGCTAACGGTCAAGTGTTGACTGCCCTGCCTGGCGCCCT
-GGGGGTTGTGACCCTCATTGTGATAGGAACAGTTAGACTATTAAAGCAGA
-TCTTATGCTGTGAGTATGAAATCTGTGCCAGGCCCTGGGTGAAGGTTAgc
-ccagggaggctaaggaactggacccaggtcacacgtctaagaagtagcag
-tgagatccagccctcagctctcccgCAGACACTGCAGCAGCATTTACTGC
-GAGTCTTGAGGACCCTTCGTCATGCTGGTGTGAGTAGCTGGTGCTGGCTG
-GATATGCCTGGAGTCCAGTGAGGTCAGCAGCTGAGAATATCCCTGAAGAT
-CAGGGGACAGAGACCAGGCAGCTGACAACCACATATCTGCAGCCCCAAGG
-GGCGAGAACATGCCCGTTTCAGGGATGGGTAAACTGAGGCCCATGGGGCG
-GGGACTGGTACTCACTAAGCACCATTTTTGTCCCAGACCATCTGCCAGGG
-GCCTGCTTTCcacagtaagcctccgagattgggagtatcattctcatgtt
-ataattaaggattactgaggctcagagaggttaggacagctgcccagagt
-cacccagcgggcaggtagcagcaaggtggcttcaaagccctgcattccag
-cAGGCCAGCCCGGGGAGCACCGCTCAGACCCTTGGGCCATGGCTTCACCA
-TAGGTCCGTGTGCTCCTGCCTCACAAGAGGGCAAGCTTCCATTCCTGGAT
-GAGCTTCTGCTTTTGCAGAGCGTCCCAAGCTCCTGAACGCAGACTCAGAG
-CAAAGGAACGCAGGGCAGGCGAAGGAAGGGCACCCAGCACGCCTCATGCC
-TGAGGACTATGAGCCGAGCTGACAGCAGGGACTGGTATCTCCCAGCTCCC
-ACTCCAGGTGTGAGAGAGGGAAAGGGAGCAGAGGGGAGGGAGGAGGGATA
-AGGATGGTGGGGGGAGGGACGGCCCTAGGGCTGAGGAGCCATCCTGCAAA
-CTCGGTTCCTATGCCCCTTCCAGAGCCTGGTCAGCCTCTGCAGCTGGCAT
-GTGGAGTCCACCCCAGCCCAGGAATCCACACTGAAGGCATCCTGCCCCTC
-TCCGTGGCACCTCTCCGTGGCACCTTTCTGTAGCCCCTCTCTGTGGCCCC
-CTCCGTGGCACCTCTCTGTAGCCCCTCTCCATGGCACCTCTCCGTGGCAC
-CTCTCTGTAGCCCCTCTCTGTGGCCCCTCTCCGTGGCACCTCTGACATTT
-CTGACATTTCAGCTTCAGGCCATGTGGTGCTGGGACTCCGTCCTCAGGAA
-GGCCTGGAGGAGCCTTTGGTTCCCTCCTGAGCTGGGGCCACGCCAAAACC
-ACCATGTCAAGGCGACCGACGCCCAGGCCGAGGGTGGATGGTGGGTGGGA
-TGGTGCCGGCAGCTTGCAGCGGCTCTGCCACTGGGGGACTCCCGTGGTTC
-TCCCAGGCCTCCTTCCTCCGCCTTACCACTGTCTGGGGTGGCCCTCATCA
-AGATGTGGCATGACCACCTCTCCTCCGTCCAATCAGACCCACGGCCTCCC
-CCTGGCCCTGAAGGCACCCAGCAGGGTGGGTGGGTGGAGAGTCAGGGTGA
-GGGGCAGCTTGGTGCACATCACAGAGCCCTGAGGCCCTGGACCTATGTCT
-GCGGGTGAAATGAGCAAGCCTAGATTAGAACTTGACAGGGAATTGGAAAT
-GATGTTTCCCCTCCAATGAATTCTAAAATAAACACTCTGCAGCCGGCACC
-CATTTCCTGTGCCCTGCTTCTCGGTACAGCCACGATTCACTTATGATCTT
-GTCGGTTATAAATTGCAGCCCGCATTTCTCATATCAAAATGCACAGCCAG
-TGATATTTAACTCTAAAGAAATATATCCCCCGGCAGTGAATACAGTCAGA
-AATTACTCACTGAATTTAACCAAGGAGAGAACGATGCCATATAGATGTAC
-AGCATAAATTCACAAATGTGGGACAATGGCCACCATTTATTAACATTTTA
-TCTCCTCGTGGAAATGTTTGACCTTGCTTCAGCAGTTTTACTGGGAGCAA
-GATCTCTGGAAGCTCCCATTTCCCCTCTTTCCAAAAGCAGCCTGAGCTGT
-TCAAAGTAGTAAATACCTTTCAAGTTGTCATTTTCCTGATGTTTTCTTTA
-ACCCGGGAGAGGAAGAAAAATTGTGGGGAGAAAAGGTTTCCCCCAGAAAA
-GTGCCTTTTGAACTTGTCGTGGAAATTCAGGTCATTGAAACCTGCTCAAG
-TTCATAAAAGGAAATGAAAGCAATTTAACCGTGGGGGGCTGAGGTTTCTG
-ATGAGGGTACTGGACTCAGGAGTATTGCATATTGGAGAGGGAAGTGGGGG
-GCCTGTACCTGGCAGGCGTAACCAAATTAAACCCATTCATTCACTCTGGG
-ATCCAGATCGCACACTGAGCACGCACCCTGCTGTAGGCTTTGGGCAGGAT
-GTAAAACTGTCAAAAATACAAAAGGGACAGAACCAGCTCCTGGCCTCGGG
-CAGCCAGCAGTCTAGGGTCTAGACATCCAGATGAACAGCCAGAAAACTGG
-AAATAAACACAACACTTACAAAGGCTTACGAAGTGCTGCAGGGTCTAGAG
-GAGGGGGCGTGTCTCCCCTCTTAATCCACACCTACCCGGGGCCTTGTCCA
-CGTCTCTCCTCTTAATCCACACCTGCTCGGAGCCCTGTGCATGTCTTTCC
-TTTAATCCACGCCTACCCAGGACCCTGTCAGCTTCTCTGACCTCCCTGCT
-TCACTCTGAGGTCTGGAAGCCACTGACCAGGGTCTGCAGTCAGGACAGGT
-GAGTGCAAGCTGTGCAGAAAGATGGCCAAGGCAGCTAGGGAGGCCAGGGG
-AACACGTGGCTGGGGCCCAATGTCACACCTCATCCTTGAAGCTCGAAGAG
-GTGAAGACAAGGAAACACTTGACCACAATCATCTGTCTCCCATGAGCTGG
-GTAGGAGGCGAGATGCCACACAATTGCAGCCCACGGGCGATTTCTCGAGA
-TGCTCTGGGGTGAAGGGGGTAACCAGCCCTTCCTCTATGCATATTACtgt
-ttttgcaaatacaatgtatgtttatgataaagaataaagctattccaaaa
-gtgcaaagaagaaaacaaatcacccccaactcccaccacccagaaataat
-atcattatgtaaaaaaaaagattctacatctttcttgatagagagacaga
-gagagagggagagagagagaagtggagatagagatggacacacagagaga
-taaataatataaatgattgtgtaaaacaggggtgtctaatattttggctt
-cactgggccacattagaacaagaagaattgtcttgggccacacataaaat
-acacaaacaatgacgatagctgatgagctaaagaaaaaaaatcacaaaaa
-agatctcataatgttttaagaaagtttaagaatttgtgttgggctgcatt
-caaagccatcctgggccacatacagcctacaggtcacaggttggacaagt
-ataaaataagatggtgtcatacgtgatgcttgcagcaaaaactttaattt
-aattttagtcccatttaacaaaatgatttttttaagtgaagtgaaattag
-aggaattgctgtactttaactgtttcttgatcaccaacaatatcattcta
-aaagttctttctgaaactaaggacaattattacattaaaaattaggttga
-tgttttattttttgtatccaatgagccccctcagtggaagatgaatttaa
-tattcttgctgcctgatcccaccctctttccagatttccagactttcttc
-attatatcacttctgtgttcgcattgtcaaggtttatgaaggtacatttt
-gttctgagcaatagttcccacagtggttttcatttatacctaatctttac
-aggactcatattcaccacatgtccttagagccttcagtttttccacaacc
-atgttatttattgtcaatcactcatgaggtattttttgtttgtttcaatt
-ttgtaaaagctcaaaagactgtacttcctgagctcctgcaggctgaagaa
-gatatgttggttgattgtatgccaaaaggtcatttagctaggtataaaat
-ttttggtaaatatagtcttccccctcaaaTTCAAGACCTTTGTTCTTCCT
-GCTTGATATTAAGTGTCATATTGGTCTTCATTTTTTTAACCTATTAATTT
-TCCCAGATTATGTATTTATATGTTTTTCTGAGAATGATGATTTCTGTGAG
-TGATTGATGCCCTGTGTTATTTCATGTGTGAGAATGCTTCTTAAATTAAA
-AATATATATCCCTGCAAGAACTGTAGACATTGTTCTATAGTTTGATCACA
-AAGCTGGGACTAGGGTGAGCCCAGCAAAGTGCATAGATCATAAAATGTGC
-CTCCATCAGCTGTGCCTGGTGCACTCCCCTGGCCCTGTTGGCTGGCATCT
-TGGAGAAGCCTGAGGTCAGCCTGCTAttttatttttattttttatatttt
-gagacagagtcttgctctgtcacccaggctggagtgcaatggcatgtgcc
-tcactgcttagcactcccagagttcctgacagtctcACACACAGTAGGTG
-CTGGATAGTTCTAATGAGATTCTTAGACAAATGTGAAGTGAAAATCTGTA
-AGCTCCCTATGAGTAGGGTGTCTGCAAAGTTCCCTAGTTCATCAGCAGTG
-TGTGGATTGCAGGATCTGCTGCATTAAATGGGTTTAGGAACTATTCCATG
-GACAGGTGAGCAaatagatgaatgaaagaatgaatgaatgaTTGGACCGT
-TTTCTTCTACAGATAAAACAAGAGGAATTTAGTTCCTTTAGCAGCCAGGG
-AGGAGCTCTGGGCAGGAAGAGGTCCTCTCCAGCCAGTGCAAATGGAGCCC
-AGCCCATTGTCCTGGGAGAGGGAGGCCACAGGAGCTCCAGGGCAGGACCC
-TTCTAAGCTGGTACAGTTCACCTGGGAGGGGGTGGGGGTGAGGATCAGCA
-ATAGCTTGCTCCCAAAGATCTGCTGGGCACCCTCCCGCTGCAGCCCACCA
-CCGTGCCCGGCTGGGAACAGCCACTATTCACCACACACGGCCCAGTAATG
-GCTCATGAATCAAACTAAGCAACTCAATGTGAAGCTAACGACAAAATCTG
-GAGGAAAACCCATCTTCCTGGTACCATCTAAGTGGATGCTATGGATGGGA
-GCAGATGGAAGAATGACATATTTGTGGATTCCAACCACCATCTGGTCACA
-ACTGATGGCCCATCTGACAGCAGGTCATTATTGTTTTCCAGCATCATTAA
-AGACGCCCTATTTATCTCTGTGCACCATTTCTGAGTTTGACGCGGAGACC
-TTCAGAGATTCCAACCTCTTCTCTCCAGTGACCTATAACTCACAGCATCC
-TTTGGCCTCCCCTGATGGGTTCCCGAGGTCTCTCAAGCTGACGTGGCTCT
-CAGTTTAGCTGACTGATTAATTAAACTCCCCCTTGCTCTCCCCGGCTCTG
-TGGCCTTGGGTGGTGCCTCCAAAGCGATCGTTCACCATTGGCCCTCTTTT
-GTTATGTTTAACTCTGCAAACTTCCAAAAGACTCCAGCTTTCATGCTGCA
-CCTAACGCTGTTTCTGCCAAGTTAATCCCGTCTTTTTTACTTTAAATTTT
-ATTGAGTGGGAAAGGACAACTTTGGTCTAGTTTACAGATAGCTGGCTCTT
-TGACTCGGACTGTGGTTGGGCCAATGACCCAGATTCTGTTCTGGCTTTAG
-CGACCATATTCTTGGTGGGGGAGGGGGTTTCCAAAAAAGGAGGAGTTTGT
-GTCAAAAAAAAGGGAGAAGGAAGTAATTCAAACCATCTGTTAAAAGGCGT
-AAACACTGGGCTCACGTGAAAAAGGAAAGGGAATGTGTTATTTTTAAGAA
-AACTATTTAAGTGTAAAAAATACATTTTTTCCCTAATTGCAGATAAAAAC
-ACACTTTTAGAGAGAGGGGATTACACATATAAAAATCTCAGTTGCATAAT
-TTTAGTAATAGATATGGTGTTTAGATGTATCGTTGGATGGCTTGTTTTAT
-CATTTATTAGGAGTTCCAGGTCTGAGCAGTGCATGTGAGTTGAAACAGAA
-AGAAATGGCTTAGCTTCAAAGATAGCCCCGGACAAAAGCCAGCTCTGATG
-AATGAAGTGGCCCAGGAAGTGGCCACGTCAACCCCAGCTGAACTCACGGC
-TGGGGTGTCCCGGGATGCATGTTGTTGTTGCTGttttaattgtgataaaa
-atatacataatacataatcgatcattttaaccagttgttaagtgtacaga
-tcaatgacatgaagtatagttacagttttgtgcaaccatcaccatcaact
-acctccagaaatgttcacatcttgcaaaactgaaactctataccctttaa
-acactatgcctccgttcctccttccccagggctctggtaaccaccattct
-actttccctgggtttgactcttctaggaacctcacaggagtacagtcata
-cagcatggtccttttgtgcctggcttatttcactcagcataacgtcttca
-agattcacgcattctgtagaatgtgtcagaatttcctcccttttcagagc
-tgcatcatattccaccgtgtaaatggacacctatcatgtatccactcagg
-cactggtggatacttgactgcttccacttttttggctgttgtgaataatg
-ctgctatgaaaacatgggggtacaaatatatttttgagtcactgttttcc
-acttcttaaactgtatatcccaaattggaatggctggatcatatggtaac
-tccatggccaattgtttgaggaacctccatcattttcttcacagcagctg
-cacagttcagcattcccatcagcaatgcacaagggtttctatttcccTGG
-GGTACGTTATTTTATGACTCAGTTAAGCAAAGCAGAGTCCACTAGGGACA
-CCAGGAGGGACTTGCCAGAGACCGCCCTGCAAAGCCCCTTGGAGCACCAA
-ATAACCAGGTGGGTGGCTGAGAGCCGATCCCAAAGCATCTGTGGAATGGG
-GACTGTGGAAATGGCATTCACATCAGAGCTGAGCCTTGCTCTCTCCAAAC
-CTATGATCTGTGGCCACTCTCTCAACCCCAATTCTGCAAAAGAGGATAGC
-CCTGCCCATTTCACTCACTCAGTCCACAGATCATCTGGGGTTTCTCCTCC
-CACCCTTCCTCTTTGCAGAGTGCCACATCCTTCCCACCTCCAATCCTGTG
-CTCCCCTTTGTGTAGACTTCCCTGCCCTGGAGCCCAGAGAGAGAAAGGAG
-CTGTGTCAGTAGCCGCAGCCTCATCCCCTCGCTCATGCACAAGGACCCTG
-GCATGTGTGCGCCCACCAGTCACCTCGTCTTAGCTGAGCGGTGGCCACAG
-TGAATGCAAGCCCCGCCCAGCCGCCTGGCTGCTAGCACATGGCTCTGCAG
-GGGAGGCACACAGACCTCTCTGCAAATGGTCTGTTGGCCTGGAGTAGGCA
-GGATGCCCACCCGGCTGATTGGGACTTGTTCCTTTTTCCGGTACATCCAG
-CTCCCGCGCCCATGGCCGGAGGCGGCCAGCTTTCCGCAGGTTGTAGTTCA
-TTGACTAATTGGCAGGAGCAGACGGGGCCGGGGTAACGGGGCCTCTGACC
-CGATGAATACCACCTTCTGCTGTCTTCACCGAGCCCTGAAAAGCCCTTGT
-TTCTGGCAGATTCCCTATTGTCTGTGCTCCTGGTCCACATGGCAGAGCAG
-GCAGCCTCTCCCTCTGCACACTGTGGAACAAATGGTTGACACGCACCTCT
-TGGAAGAGGAAGCGGAACAGGTGGCCCGATCATCGGGGGGCAGGCTGTGC
-AGGGTACCCAGGAGGTGGTCCTGGGGTCTTGGCAGGCCCATGCCCTCCTC
-CATGGCAGCATCAGGGAGGCTGGCATCCAGCCCATCAGTAGCAACCTTGG
-CAGACAGACATGCTGAACTGGGGTCCAGGAGGGACAGGCCCAGAGCTTCA
-GGCTGGACCTGCTCTCTGCAGGAGCCTGGATCCAACTTTAATCAGAGATG
-ACTGATAGTCCAAGGTGGGATTTTGCCACCAGTCAGTCAGACAGGACAAG
-GAGGGCTCATGCCCAGCCCGGCTGCAAGGACAGGCCACAGGGAGGTGTGA
-TAGGCTCGGCAGCTCCTGGGCACCAGCTCTGTAGCCACCCATCTGACAGA
-TGCCCTGGAAGGCTGAGCTGCCACCCTAGCTGTGGCCTTACAGCACTGCA
-GCTGCCGGGTGGCTTGGGGGACCCTGGGTCAAGGCCGCTCAGATTGGTCT
-GTGGAAGGCACAGTGGGCCTGCTCCACATCAGACCCGAGGGATGCTCCTT
-GAAGAGCTGGAAGGATGGAGGCCAAAGTCTGAGAAGGAGGCTGTAACCAC
-TGAGAAAGGAAGCAGGTGCAGGCAGCTCTGGTTGGGGCAGGGATATGGGG
-GGAAAGGGCTCGAAGTTAGGCCTTCAGCATGATGCAGGCTCTCTCTGGGG
-CAGGGCGGGGCAGCGGCACAGCATGTAACCACACCATCGGGCCCAGTGAT
-GGCACAGAGTATGTGCACGGACCCCACCCTTCAAGGGCGCCCACAGCCCT
-CCACTCTGCTGAGCCCGGCCTCAGCTCCGGGACCCCTGAGCACACAAAGC
-AGGCACCAGCATAAGTCAATCCGAGTGGGTCATGGTAGTAACCCCATTCC
-CCAGAGGGCTGGCTCTGGGACAGGACAAAATTGGAGCCTGTGGGAGAGAG
-GGTGGCACAACCCGGGCAGGGGCAAGAGCTCCATCAGGTCAGCTGGGGCT
-TCAGCCCAGGCAGGTACAAGGGCTCCACCAGGTCAGCTAGGGTTTCCTCC
-TTGGGGTCGAACACCAAGAGGGATCCACAACAGAGTGTGCAGAGCGGTGG
-CTCCCTGAGCTGCAGGTGCAGGACAAAGCAGGTCCTGCCTGTCCCAAGCA
-CCAAGGACAAAGGCAGGCAGCCAGGCAGGAGGCTGATGGGCTTTGGGGGC
-CCTGAGAAGGGCAGCCTGGACGGGTGCTCCAGACCTtctggcacccagcc
-ctgcttgagctccacacccttctgctgcaagatgctctgcaccccaaatg
-agctgctcggctgctcggtgttttcatttcttcctccgcagagtgaggat
-atatccagcaagattgtcctgaggcttaaaacagataagtaaaagtgctt
-aggaaattgTGAGCTGCCCTCTCTGAATGTCAGACAATATTATTTTTGAA
-TCAGCTTCAAGAGATCACTTGAAGGGAAAGTATTGGAAAATTGATTTTTT
-TTCTCCCATTGGTTTAACAGAATGGCTCCCCTGCCTTGATCTCGCTGTGC
-CGTTGTCCTTGACTTTGGGGGCTGCCTCCCCCTTGGGACTGAGTGGTCTG
-TGTCTGGAGCCCCCACTTGGTCCTAGCAGAGCTGACATTGTAGATAAATG
-GCAGGCGAGTGACAATGAATAGAAGGAGGAAGAAAGCCCAGGGGTAGAAG
-GTGGCAGGTGTGGGAACATTCCAGAAGCCGCTGCCCCCTCTGCATCCATT
-CTCTAACAACCCCCAAGTGCTCCATCAGGCCCAGCTCTTCCTGATTCAGT
-CCCCCAGGTTCCTTGGACAGAGCTGTCTCCCCAGAGCCCCTCTGGCTTCT
-CCAAAAGATGAGGGAACTCTTTGACatcatagaacatcccaggtccaaaa
-gggacctgaaggtcacctaagccaacctcctgcctggcaaggaccccctt
-cCCCTCCTTGGAGTACCCTGGCTGGTGCCTGTACCCCATGGCCCAGGGAC
-TCAGAACCTCTCTAGCCCTACCGATACCCAGAGGGTACCAGGGTTTGGAA
-TCTCCCACCCCTTGGTCCTGACCCATGTTCTGGACTCTCTCAAGACACAC
-GACATTCCAATGAAATGAGGACCACTCTTGCTTCCCCTAAAGGCTTGCTT
-TGCTTGCTTttcattcattcattcatctgttccttccttccttccttcat
-tTTAAATGAAACAGCCACAGTTGCTTTAGCCTTTCCTCCCAGGTCACTTC
-ATTCTTCCttttttaaactgtggtaaaatacatgtaatgtaaaatgtaat
-atcctaagcatttgaagaggacagttcagtggcatgaattatggtcacgt
-tactgtgtgccatcaccaccctccgcctccagaacgtttcatcttcccaa
-aatgaaactgtccccattaaactctcactccccacgccctccccagccct
-cggcacccacctttccactttccatccctgtggactgactattctagcta
-cctcctctaaggggaaatcacaggatttgtccttcttgactgccttattc
-cacttagcacaatgtcctcagggttcagccatgctgtgccatgcagcacc
-cttcttaaggctgggtgatttcccatcgtatggagagacagcagtgttca
-tccgtccatccatctgtcatgggacacctgggtggcctctacatcttggc
-tgttgtggataaggctgctgtgaacaggggtgcacacacgactcttccag
-cccgttctcacttctgtgggtatacacccagcagtggggttgcagggtca
-tgtggGGCCCTTGTTTGCTCTTTTAGCCCGGGCACCCCTGGTCCCAAGAA
-GGCCTCTCTGGCCCCAGGTCAGCCTAGATGTCTCCCCCAGCAGCCCCACG
-CCAGGCTCTGCTCCTCCCTCCCTCCTCCCACTGCACCAGAGCTTCCTGCA
-CTCTGCCTGAGCCCCCAGATCCTCCCTGTCCTCTTCATGCTCATCCCCCA
-GCCAGGCACTGAGCAGGGGTCAGCAACGTCTGTGAAAAAAGCCAGGTGAG
-CCGCGTACCCCCGGCTGTCTCAACCCTTCTCTCCTCTGTACAAGCCCCAG
-CTGCAAAGTGGCCCTCTGCAGCCCACGCCCAGCTCTCCTGCACTGCCTGG
-CGCTGCCTGCACAGACTGTTCCTGCAGGAACCACCTCCACTCCAGCCATT
-CAGCATCCCACCAGCCAGTGGGTCTAACTTCAAGAATGTGAGGCCACCAA
-ATGGGAGGCCAGTGTCCTGGAGGCCCACGTCCAAGCTCTGAGTCAGAGGG
-ACCTGGGTTCAATCTGGTGCACTTCACACAGAGCTCCGCAGCCCAACCCA
-GCCCAATAAAGGGGCCCCCAGGAAAGTCTGGGGGGCCCATGAATCCTGCC
-ACCTTTACCGCCCCCCAGAACCCTGGGAGCAGAGCTGCCTTCCCAAGAGC
-CGGACAACTGAGATCAGGGCCTGCCTTACCCTGGGCTGCGGGGCGGCTCA
-TGTCTGCAGTGCTGGCTGCCAACCCCTTCCCATGGCAGGGTCCCATGTGG
-GGTCCTGACAGGGAGGTCCTGACCCCTGCAGGCTACCCATGAAGCTGAAC
-CCCCATTCTTAGCTCCTCCCATCATGGGCAGGAGCCAGGAGAACCCTCCC
-CATGGGACATGCCCCACCCAGCACCCAGGATAGGAGCCCTCCCCACGGAG
-CTCACTCCCCAGCCTGATAGAGGTGTGGGCAGCTTCCGGGTCTGAGATTC
-AGGTGCCCGCTCTTCTTCACCCTCTCTCCTCCACTGTGGATGGAAGAAGT
-TGCCTTGGATGGCGTCTGAGGGCCCCATGGAGGAAGCAGGCTCTGATGGG
-GCCAATCCCTGACCCTGCAGAGGGGTGCCTGGGCCCGTTCCCACCCCTGA
-CCCTCTCCCTTGGAGCCTCCCCGGGCTGTGTCCACACCCTCAGGGAAGCT
-GGCGGGAGTGGCCAGGCCAGGATGCTCTGGGGTGAGGGAAGCCTTGGCAG
-TGTCATCTCTGTGTTTATCAGACACTCGAAGTCCCACGTTGGGCTGTGCC
-AGGCTGCACTCCTCCCAGTGACAAGGCTGCCATCCATTCGTTCTTAATGT
-GATCATAGTGGGGCTTGACATGAACACAGCCTGGTTATTTATCTTCCCTT
-TTTGGTTCCTGGGCACCATCCACGGGTGCAGGTTGTCCAGGGACGGACGT
-GGGGAACATGATGGACACGTTCAAAGCCAGATGCTCCCAGCCTTCCACCT
-GCCCACTCGCCCTGCCCACCTCAAACCCATCCCAGCTGAGGCAGAGGGCA
-AGACCCTAGCCCGAGCCCAGAGACACGCCCCACTTAcacagcacagcaca
-gcacagtacaacacagctcaacacaacacaacacagcacagcacagcaca
-gcacagtacaacacagctcaacacaacacaacacagcacagcacagcaca
-gcacagcacagcacagtacaacacagctcaacacaacacaacacagcaca
-gcacagcacggcacggggaggcgggagaagttagtgttccatgggtgggg
-agctttggcctggaaagatgagcacatcctggaggggagggcggtgacgg
-ctacacagggtgaatgtgcttagtgtcactcaactgtatacctaatgatt
-aacatggtaagtttcatgattatgcgtattttaccacaataagaaaTATT
-TTTAAAAGCCTGCTATTGACTTCCCAGTGCCACCCTCAGGCCCCAGGCAA
-CTCCAGGCCTTGGGACCCCCTTTTAGCATCAGAAATGCCCACCCCTTCCC
-TCCACTCCTGGAAACTTCCTCCTATCCTCCCAAGCCCAGCCCTGACACCA
-TCTCCTCCGCCAGCCTGCCTGGGACTCCCAGGCAGGACTACATAGACAGC
-CCAGACCGCCAGGGAGCAGAGTCAGGAGGGAAACCCCAGGGGCCCAGGAG
-GATCAGGACAGCTGGCCCAGAGGTGACTCCATTTGCATTCGTATCTGGTG
-CCTACGTGGGTGGGGTGGAGGGCAGAGGAGCCTAACAACCCCTAGGGACC
-ATCCCTGTCCCCCAGATCATGCTGTTTCTGCTCCCCAAACCCAGACTCGG
-AGGCAGGTCCAGGGGGTGCTGGATGGAGGCCGTCGGCACCAGGCAAGCTG
-CATACAAGTCAGCGTGGTGGGCCCCAGAAGATGAAACCGGCGATCCATGA
-AGAACTGCAAAGCCCCCACGCAGGCTCCCGCTGCTTCTAGGAGCCTGGAG
-CCCAGTGTGGGGCTCTGCAAATGTGTTCTCTCCCAGAACGAGTTTTAAAG
-ACCTGAGCCTGAAGCCATCGGGCTTTCTTTCCTCTCCTCCTCCCTAGGGG
-TTCAGCCTGCAGACAGTTCGATGCTGGCGCACTCTCTATTAAACAAACAT
-CATTCCTCACAATGGCTTCTCACAGCTGGGCCACTTCAGGCCACGCAGGG
-GAAGAACTCAGCCTGCAAGTCCTGGAAAGAATGCAAAGCAGTGATTTGTT
-CTTTTTCCGGACCCCACACACAACAAGCTATACATAAATGCAGAAAGTGA
-TGCTCATAAATTCTTTAAGCTATTTACTTAGAGCCTGTGCTTATTAAACT
-GGTTGGCTTCCAAAAACTCCTTGTAGATTTCTCTCTCAAAAAAGTAAGTT
-TTATTTTTCCAACCCACTATGAATTAAAAATGGGTCTTTGATACACTCAG
-CAGATTTTACCCCATCCGTTAGTCTTATGTAAGGAGTAGAAATAGCCGAT
-ATTCAACAGCAGTGCGGACACACACACACACTTTTTGCAATTGTATAAGC
-TGAACAAATTCTTAGGTGGGACTTCTCCATGCTCTCTCTTCTTTTCTTTC
-TTTGCTGTTTCACTCTCTTTGGGATTCTTGCGCACTGGGGTGAGAAGGCA
-GTGAGAGAATCTCTCTTTTATGAAAATGGCTGTCAAGTTCTCCACACCCA
-CTCATACCTGGATTCACACGGCATCTCAACATGCCctggaagagacactg
-aaaatggatagtgccagttctgactttcttggctgggaaaccgagatcca
-gcttgggtcatggcttgcccagttcacagagcccagggcagctgagtctg
-ctcagagctggggtcctgactccaggtctctgcactGAGCTTACAGGATC
-TGGCCCCAAAGGGTGGAGCGTCCTGGGTTGATGGAGACTTAGGTAGGTGG
-GTCCCAGGGTCCAGGTGTCTGGGTGCCCATGAGTCCTAGGGCCTGGGTGT
-CTGGGAGGGTGAGTGAGTCCCAGAGCCTTGGTGTCTGGGTGCCTGTGAGT
-CCTAGGGCCCAGGTATCCGGTGGTGGGGGGCAGCTGTGAGTCCCAGGGCC
-ATGGTGTCTGGGTGTTCATGAGTCCCAGGGCCTGGGTATCTGGGCGCCGG
-CGAGTCCTAGGGCCCAGGTGTCTGGTAGGGGCAGCTGTGAGTCCCAGGGC
-CTGGGTGTCTGGGTGCCTGTGAGTCCCAGGACCTGGGTGTCTGGGTGTTC
-ATGAGTCCCACGGCCTGGGCGTCTGGGTGCCCGTGAGTCCCAGGACCTGG
-GTGTCTGGGTGTTCATGAGTCCCATGGCCTGGGCGTCTGGGTGCCTGTGA
-GTCCTAGGGCCCAGGTGTCTGGGGGGCGGGAGGCTGTGAGTCCCAGGGCC
-ATGGTGTCTGGGTGCCTGTGCTCATGAGCAAAGTACCCAGAACATGCGGT
-ATCATTTCATTGCATTTCTGCTTTTTGTTTCATTTGTGTCTCTATTTTCA
-GTCTGAGCTTCCAGGAATCTTATCTCTAGGGTAATCTTGTAATcagggtc
-agttacagaacttgccagtccagtgaaaaatgcaaatgcagttcccattt
-caaaaaggaaaaaaaaaaaaaaaaagtgctgttggagatcgtaaagtata
-aatcttttccttctaaaatactttgttacttctaaaatataatagagata
-atagtgacatgaaagtaagaaaagaaactttttaattgcaaaataatatt
-ttgaagtcataattgtatgcaagataatgatatgttgttaatataatgtc
-ttgtttgtcataaatttttctgactacaaatttgtttattaagttgtcaa
-aatgcgtgttttcagcaacttcatttttcatcaatataattaaaaacaat
-gtcagtctcttgtggtaaatgcaagattgcaaataatttttgatactttt
-tacttttgagaatcatttcatgctgatgcgtcagttcctggggttcttta
-caatatttatgtgccatgaaaacattgggatacatttatgataaactatt
-tcaaaatataaattttagtgcatttatagctgatcatccctgtggaacac
-tttttctaaaaagatttaactcttcatacaaatcagttttgtgtaatttt
-aaaattaattccaagtataaacttatataaaggcagtttagcattttttc
-tgacatttcttgtaacttgtagagttacacaataaatcagaagtggcttc
-atgttttgtgaataattcaaatgtttgcttctgaattctgattttatatc
-tttactgtgggaaaaatttattttaaaattgtcttctttactaataattg
-gatcttctgaagcatcctgtgaaaatagtgttcttttccaccagaggcag
-tgattttaaaatatgatttatatttctaagcctgtatttactctgcgatg
-ttgcagcagttttcaagactgaagattctaaattctttgatgagtccaga
-caactctctgatatactttattgcaatgtccttgtgtgcattttcgtttt
-gtaataattgactgacaaagctgactgctgagtgccagtaattcctgtgc
-taggttcgagcaggagacttgctacttacgcagacggctccagggatggg
-gattcctgttggcctccatgacaggtctcagtgctggcccatgtagaccc
-cttcatctctcccagggctgtgaccactgccaccacttcttccgcagcta
-ccaccttcacagcagccatcctgctcccagcctagctgtgggtctccagg
-acctcagaagcctggctgcagggagacgtgcacacactcagcatctgccc
-tgcagcctgcagcacccacaggccagagcccgcacagtgcatgctgctat
-gctgcgtatctccatcagacctcacttcagaaccttcaagtcaaaaatga
-aactattgagcacctcCTGTCTGCCAGAGTTGGGACCTGGAATACCATGG
-GTCAAAGTCATATTATCCCTAACGCCCTTAGAACACATGGCCCAGCAAGA
-GGGCCTCCAGAGGTGTTGGGGCTGTGGGGCACAGCGGGGTGCCTAATCCT
-GCCGGGAAAGTCAGAGAGGAGACTGGAAAGCTCTTGGAACTTGGAAAAAC
-ATTTTCCATTTTCATCTATAGTACATCTCCCCCGGGTATCAGAAGAACCA
-TTACTATTTGTTCTAAGTGGCAAGCGAATGTGTCATTTTTCTGTTTCCTG
-ATTTTTTTTTAATTTTCTAAAATATTCTAGCTTTATTACATGAATTAACT
-CCACTTTAGCTTCTTCCACATCCACGTTCATTTTATTACCGTCTTGGGAA
-CACTCAAGGGTGATAAGGGACACTGGGACATTGAGACCAGTATCTGGGAA
-GTGAAATTAAAAGGTAAGCATCTGATTCTGGGAACTAAATGGAGATGACa
-attccatactctgtgacttaccaagtattcgaccttgagcaagtgacATT
-ATGCTTATGGGCTGAAGTCTAGGAAAGAGCTTCTAAACAGAGGTGGCTGG
-AGGCCAGGATTCAATGAAACCATTGAATATCCATATCCAACCATTAAATA
-TCCATATCTAACCATTAAATATCCATATCCAACTGTCGAATATCCATATT
-CAACCATTGATTATGTATGTCCTGGGGACATCCACAACAGCAGTGACCAG
-TTGAATTCTtgccaggtgtcattcatgagaatttcatgttgactttgcaa
-taaggctgtggggtgggtactaatgtctcctttatgtagatgagaccatt
-gactcataaatcaattaagcaactggaccaaaatcaggaggcagatttga
-gacccagccacacccagttctgcctgaccctacagtctgggcttcctcac
-accacaGGATATTTCAATGCAAGGAGCAAGGTGACTGGCCTATAAGGGGT
-CCCCCTAAAAGGCTAGGTCACtgtatgtgtttgctaggactgtcataaga
-aaacaccacagattgggtgacttaccaacaggactttattgtctcacagt
-tctggaggctggacgtccaaggtcagggtgctagcggggctagtttcccg
-aggcctctctccttgccttgtagaaggctgccctctcactgtgtcttcac
-ctgctatttttctgtgcacacacaccccccagtgtctctccctgtttaaa
-caaagatgccagtcatattagctaaggttccacctttatagcctcatttt
-aacttaattaatcctttaaaaaccttatctccaaatagagccacattctg
-aggtactgggagtggggatttcaacatatgaaatttgagggccaccattc
-agcccctaacaGTCACCATCtgtagtgggtagaatggtggcctccagaaa
-gacatgtccagaaaattatatctggaaactgtgaatgtgaccttttttga
-aaaggggctttttgaagatgtaataaggttaaggatctccaaaggggatc
-atcctggattagccaggcgggccctaaatccaatgacaagtgtgtttatg
-agatacacagaggagaaaaacagaaaagagaggagaaaactcagagaata
-tgattatgtgaagacggaggccaaggctggggagatgcagctgtgagcca
-aggactgcaggagccaccaggagctggaagaggcaggaaggaccctcccc
-tgaagactccggagggagcacggccaggccgacaccttgacttcacactt
-ctggcctcccggactgaaagagaatagatgtctgttattcaaagccactc
-cattttttggccatttatcacagaagccacagACCATGAAAAAGCCACCT
-TACCGTGACTCACAAATGTCATATTCTGCAAGGAATCAGACTTGGGGTAA
-GAGGCAGCACACGTTTAAGAAAGCTGATGTTGAAAAGCGTGCCCATtgta
-gtcccagctacacgggaggctgaggcaggagaatggcgtgaacccgggag
-gcggagcttgcagtgagtcgagatcgcgccactgcactccagcctgggcg
-acagagcgaaactccgtctcaaaaaaaaaaaaaaaaaagaaaaGCGTGCC
-CATGTCAAGGAAGGCACAGCCCCTCCATGGGTCTAATGCTGTCTTGAGCA
-TGGCCCTCTTTTTAAACACACCCAGCTCCCACCTTGACCTTCACCTGCCA
-GAGAACGAAGGCAGGTGTTCCGGCTGGACATGTCTCTGAGGGTCAACCTG
-CATCTCCTTACCCACAGATATTCATGCATCTGAGCTCCTGCTTTCCTTGC
-AGGTAACTTTTCTGTCCCTTACTTGATGGGGTTCATCTCTTTTTTTCCTA
-GAGATAAAATAGCTTGGGTTTCTTCTTCAGGATTTGTATTTAGCTACCAA
-GTAATTTTGCAGAAACCTTCTGCCACACTCCTGTGGAGTGACCAAGGTTG
-GGTTTAATATGATGGAGCACTGTCTTTGAGCAGCGAGATTGGATTTGGCA
-TCATTGCCATGTCTGCCAGAGATTTTGAAAACAGATTTCTCCTTGGATCA
-AAGTCCAAATAGATGGTAGGTCATAAGAATTAGGTAGAAATGAGTGGCCA
-GTCCCCAGGTAGAGCCCTTCAAAGGGAAACTGCATGTAGCTCATCCGAGG
-CTAAAGGCACTTAGCTGGAGGGCTGCTAAAACCCAAGAATGGGGCTGCCT
-CTGGTGCTGACAAAGTTTATGCGTTTAAATTTCTGTAAACCAAAGCCAAG
-TAAATACTGCAGTAGCAGCCTCTATTTTGGTGACCTTCACTGTAAATCAT
-TTTGCAAAGCAGATAATGACCTCTCTAATGAaatagcccccgtttgtctg
-cagaaaacaaattccaacacccccagtagatgcctgagaccacagatggt
-aaggaaccctatagacactatatatttttcctgtatatacgcacctatga
-taaagtttaatttatcttattgtactgtccttacctatttgggggccgag
-gttgagcatgggtaactgaaactgcagaaagtgaaaccacagataagaag
-ggaGTGGTGTGGcaggtgcagtggctcacatcgataatcccagcactttg
-ggaggccaaggtgggtggatcacctgagatcaggagttcgatgccagcct
-gaccaacatggcaaaatctcgtctctactaaaaatacaaaaattagccag
-gtgtgatgacacgcctgtaatcccagctactcgggaggctgagacaggag
-aatcgcttgaacccaggaggcagaggatgcagtgaactgagatggcgcca
-ctgcactccagcctggtcaacagagcaagactccatctcagaaaaaaaaa
-aagaaaagaagagaaaagaAAAAAAGAAGGGCAGCGTATCTCTACTTGCA
-AGATTAACATTAGGCTTTCATATTTGGGCTTGGATTTAAATGTGGAAGAC
-GGCTCTGAATGAGGTCTGCAGGGCAGGCAGCGCGTGCCGAGGAACTGCCA
-GGCTTCACTGCGCCGCTCATTTGCGCTCACTGTAACACCGCCGGGAGAAT
-CCTCAGTCAAAATCAAAGCCTCTTTCTCCTCTCACCTGTAAATTACAGAA
-AGTCTCTCTGCTTTTTCCACGTTCAACCCAGTTGCCGCTGAGCATCCATT
-TGGATTGAGTTAGCCTTGGTAATCGTCCTCTAAACAGAAGCTCGGGGTCG
-CCTGGGCCTGCCCACCCTCTCCTCTTCTCCCCAGTAAGGCTGCTCACCCC
-AGAAAGTGGCCTCCCCGACACCGACTCCCGGCCTCGTTCCTGTGACTTTG
-GGCCCCACAGATGAAGCCCCTCCAGATTCTGGCTTCTTGGACTTTTTCTC
-CCCTCTCCTCCTCCACAATTGCCTTCACTCCATCCGACCACAGGTGTACT
-TCCCCAGGTGCAAATATAAATTATAGCCGGATCTCCCCAGCACAGCCTCC
-TGTCTCTCCAGCTTAGTCCCCAGCTGACCCCAGCACTGCCTCAGTTCTCA
-CACCTGCCTCACCAACGCACACCTGGACTGAGGGGCCACCTGCCCACCTG
-CTGCTCACCAGCTGGTCCCTTTCTGGCTTGGAATCCCCCGAACTTCCTCC
-CAGTTGCTAGAAGCAAGTCACTGACATGCAGAGGACCCTCAACTGATCAA
-CCCTCTCTCCCTCTGTCCAACACACCCGGCCAAAGCCCAGTTCCCAGGGA
-GCCTGCCCCAGCTTATTCCCGCAAGACCCAAACTCGTTGCTCTCTCCTGT
-GCACACTTGCCCACTTCTAGAATATTCTTTCACCCCTTTTCCCTTTAGCT
-AATCTTCATGTTCAAATTTTGGCTTAAGTATCACATTCTCAAAAACACCT
-TCAGTGATCACCCCCGCGCATGTATGCATACACTAATGCATGcatacaca
-cacacacacacacatgcatgtacatgtccactcatgcacacacatgcacg
-tattcacatatatattatatatatacacacacacacagtcacacatacaG
-GTGCATACAGGCATGCACACATGTCTGGGGAAACCAGCCCTCCATGTCAC
-TCCTTCAGGGCACTATTGTCTGTTTACTTTGGCGTACCTGATTTCTTGCC
-CATGAATCTGTAAAGTCATGGGAGAGCCTCCTTCTGTCCTGCCCCTGGCT
-CTAGGCACTGGGTGCTCAGCTCATGTTCTGGAGGTGCACAAGATGCCCCc
-cccatgggacagcagtatcttggaagtagatcttccagccccagtcaagc
-catcagatgatagcgccccagtgaacacatgactgcaactccctgagaga
-ttccagatgagaactgctcagccaaactcttccagaatttctggctagca
-gaaaccatggaaaagcaaataattattgttggtttaagctgacaactgtt
-ggttgatttgttatatttgataactggaaGAGCGTCTGTGGTTTCTCAAC
-AAAGAAGATCCCCTAGAAGGATCAAGTGGAAAATGGGAAGGAAACATCTG
-GAGGGGCAATAAGCATTATCCTAACATCCTCTGCTTTTTAGTTCCTCTGA
-ATCTTGCGGGACCACCATTCAGGCTATTGGGAGCCAAAAGTGACCATCAA
-GACATTCTTACCACCACTGTCATAAGTTCACTCCTCTAATCCCAACCTAT
-GTCTTTTGATAGCCCCCTAAAGCTGCTGCTAGACAGTCTGGATTTTGTCC
-CCTAAAAGCCCTGAAATGCCTCAGAAGAGTATTGAATTAAATCCATGCAA
-AACCTACACAAAGCTGAAAATGCAACACATAGATGACTTCCCATCtgtag
-tgggcagcttctgagatgattctcaggaatctatggaattcattctccca
-ccttcatgagttgggctgaacctattggctggattctacccagtagaata
-tgccaaaagtgataggatattgcttctgatattaggctgcaaaaagactg
-cagcttccatcttgggactgtctgttgctctcatctgcttgctctgagct
-gccgtgatctgagccactctatggagaggcccatgtggcaagaaatgagg
-gaaatttagcaaacagttgatgaagaattgaggtccacagttcagctgcc
-caagaggagctcaatcctgccagcagcaacatgtgagcctgacagcacat
-tatttcccgctcaagctttcagatgaaacagcagccacaataggaggctt
-agctgcgacttcatcagggatcacaagctggaggatttagccaagtgcac
-atgaatttctgactcacagagactgagataacaagggcttattgtttaaa
-ctgctaaagtgtgagatgacgtgttattaggctacacatagctaataTCA
-TCCTTTATGTCATCCAATACAACCCATCAGTGGTTCTGCAATGAAATTAA
-AGGTAATATGAAAATATTTTAAGAGTAAAATGGGAAACAGGGAATCATAG
-TAATGCTCCATAATAAAAGGCCAAAAACATAGCAAGGCACTAACTACATG
-GGAATATTAACCCTCCACCATTACCAGCATCCTAGGGGGAGAATTAAATC
-CTGAAGATTAAATCTTGCAAGTAAAAGTTCAAAGACATTGGTGCCCAAAG
-AGATCCAAGTCCCTTTGCTCTTGTTAATAAACAATCAAAAATTCATCATC
-TCCAATGCCTTCTTCTGCTCATTCTCAGCCAGATTGCTTCTTGAGGCCAG
-GGCAGAAGTGGGCTCTGTCCACCACCAGCTTGGGCCTGAGGCCACTTCTC
-ACTCAGAAGTGGCACTGGCTCAGTACAGTGACTCCGCAGCTTAATGTTAA
-AGACTGCTGGGTGTTATGGGGCAGAGAGTAGAACACAACCCTGGCCTAAA
-ACCCACCAGGCTTGGAAAACAAACCAAGCTCTGCTCCTTGAAGCAATGAT
-CCCAGGCACAATGACCTTTCCAGAACCTGAGACTTAGTGTTTCCAAAGTC
-TCTGGACTTGGAAGATCTGGGAGAAGGAAAACTTCTGGGCTTTGGGTAAA
-CTCCTCTGGGCTTGGCTTTCAGGCTCTGTCAGTCAGTCAATGCCTGTGGC
-CCACGTGATGACCTGAGGTCACACACTTAGAGGAAGAACTCCCTGAACAA
-GACGTCCATTCTGAGTACACCATCTATAATGCAAGGTCACACGCCAGCCT
-GCATTATAGTGCCCCATCCTTTCCACGCTGTCTGGCACTGAGCAGATCCT
-CTGTCACAGCATAGCAGCCATTCCGCCTCCCCCTCCCCATCTCTCTGGCT
-GTTTCCATTGCCCCTTGCTGTGGACTTTCTAAGGCCGAAGGACCTGCCTT
-CCAAGCGTGCCTCCTCCTGACTCTATATTAAGCGAACTGGAGACCACGCT
-GTGGGCTTGGGGGAGTAGCCTGTGGAACTCCTTGAATCTAGGACAAGAAT
-CTGCATGACCCCTGGCCCTGTGTGAAAAACAGAGCCTGGAGGGGCTGGCC
-CAGCACTGTCCAACAGGCCTGCACCAAAAGCACACCTGGATTTTCAGCGG
-GTTCTTACACGCACCCCAAACCCAGCTGCTGGGCCCCTGAAAGGGATAAA
-TGCTGTTGTTCTGCATACCCAGGCTGAATAATCCTGGAAAAGCTCTTTCT
-CTACAATTAGATCCTTGCCCCACCTGCCTACCCAGGCTTCTGAAGCCCAC
-CAACATATGGCTGGGACCCTCCTCTGACCCCATGAGCCATGGCCACTACG
-TGTGAGGCTCTACCTCCCCCACGGCCAGGCCCAGGGCTGTCTGCCAGGAC
-CCTGTCTTCCTAAAAGTGAAACAAACCTTGCGCTCTACAGGCAGATGCCC
-ACGTACGGGCCAGGCCAGCTCGGCCGCCTCGACCTGATAGGGTAAAAGCC
-CAAATGCTCAGGTCCTGGCCAGCCAGGCATTACAAGACCATTGCCTCCTG
-CCTTCCCCGTGCCAGAAGCCATAGTAGTCAGTGCTGTGTTATTTTTCTAG
-ACATAATTTCCTAGGAACTAAGTTCCAGGGCACTGGATTTTGGGGTGTCT
-TGGCTCGGATCTGCAGATTTGCAGGCCTCCTGTCCCTTCCAAATGTAGCA
-CATGGCCTGGTAGATGGAGAAGACACGCCCTCTGCTGCTGGTGCGTCTGA
-GGGATGGGAAGAGAGGAGGTGGCTGAGGGCAAGGGGGCACCTTCCTCACC
-TGGAGTCCGGATGGAGTGGACCAGCCTGGTCAGCGGCGGATGCTCTGCAG
-CAGGACACACGGGCAGGGACGTCCCCAGGGGAGCAGTGCCAGGCGAGTCC
-TGAGCTCAGCTCACCTGGGGAGGAGGGAAGAAGCAGAACTGCCAGGCCCC
-CTCCTCCCTTGTCCCCAGCCTCCCTGTACCTGTCTGCCCTGCAGGGAGAC
-GCCATGGAGGGCAGGACCCAGCTGCCCCACACCAAGGGGGACCAGAGGGG
-GAGGCAGTGTTCCCAGATCATAGCAAGGTGGGAAGGAAGACGCAAACCCC
-GCTATCTAACCATGCAGGGACTTGCTACCGCTGATGACATGTGTGCCTGA
-GCCTCTGAAATCTAACCTCCCTCCTGTCTcacacacaccacacaccatag
-accccacccacacacacaccagacaccacatgcacataccacacacacca
-cacacacaccacatacacaccacacacaaccacacagcacacacaacatg
-catcacacacaccaaacacacaccacatatatactacacacaaccacaca
-ccacacaccgcatacacaccacacacacacaccatgcaccacacacatca
-tacaccccccacacaccatacacacacacaccatacacacacatacacca
-cacatgccacacacaccatacacacacaacacacacactattcaccacac
-accacacatgcacaccacacacaccacatatacaccacacacacaaacat
-accacacaccatacactccacacacataccaaataccacacagacacaca
-tacacaccaccaccacacacatgacatacacacaccgctcactccaccat
-acacacacacacCACCTACGCACCACTTTTATTGAGGTTAAAGAGTCCAG
-CATTTCCCACGGAGGAAGCAAATCCTTTCTCCTCCACAGTCACGCGTTCT
-GCACGCGTATCCCACGCTGCCATGTGGACGTCTAAGTGGAGAGACAGAGG
-CTCTTCCCGGCAGCGCTGCCGCTCAAGCGGGAGAGGCCGACCCCGACCCT
-GAAACCCTCGCAGGCGCCTGGTGCTAGCAGAGGCTGGGGTTGTCCTCGTT
-GTACCAAGGGTGCCGGAGAGGGAAGGTGGGTGGGCCAGTGCTGCCTCAGA
-GCCGGGGACAGGGTCTGGTCCTTCCCTGTCACTCCTGTCCCCCTAACCAT
-AGCCCAGCGGCCACCCACGGAGGGCAGAGCAGCCCCAGGGCCTCCAGGCC
-TGGCCAGAGCTTGGCGAGCTCCACTGCATCTGGAGAAGGGGCTGTGGCTT
-GCAGTGGCCCAGACTTAGCCCCTAACGGGCCGGGCGCCATGGGCCCCACC
-TGCCCCCCAGCGCTGGCCTGAACCCACCACCTCCCACCTCCAATGACTCC
-TCCCCATGCGGCTTACCCCAACCCGCCTCCCTCCAGCCTCACTCTGCTTC
-CCCTTTTAGCCTCTCCCCCGCCTCCAGCCATCCTCGCCACGCCCAGGCCT
-CCCATGGGTGACAGGTGACGTGCGTGACGGATGGGAAGCGGCGCACACAC
-CACACCTTAGCTCTGCAGAGGCTCCAGCTCCATCGCTTCCAGTGCATCCA
-CCTGCTCCTGCTGGAATCGCGGCTCTGGGTCTTTCCTGCCTCTGTGGGGC
-AGACACACCTGGGGCTGCTCTGCAAGGGCGCAGGAGCTCGGGCGCAGAGC
-CTCGGGGGTGCTGCGAGGAGACCAGCGTGAGAGGCTGCAGCAGGCGGGAC
-AGGTAGCACTGGGCACCTCCTTCCTGACACCACGGCTCCCTGGTCAAGGT
-TTGGCAGGGCGCTGATTCTCTCATGCACTCCTGGATGCTCACACCCCTCT
-GGGAGGGCAGTGGAGGCTCCCAGGCCTCCCGGGGTGGCCCTTCATGGGAG
-GGGCAGCAGAAAGCGTTCCTTGCGTCAGAATGTCCAAGGGACCAGGACTT
-GATATTCCCAGAGGCAGGTGTAGTGGAGGCTGAACAGAAGCTGGGTCTTA
-GCCTGGAAGAGACAAAGGCAGCCTGGGGTGTCAGGAGAAAAGAGGGCATT
-GGTGGTGGCAGTGCCCAGGGTCGGGGGCAGGCACAGAAACGGGGTCCCAT
-CCACGAGCCGACTCCTCCTCAGCCCCGGGTCTCTCCCAGGATGCCTGTGC
-CTCCCCATCTTCCATGTCTTTTCCACAGCTGGACCAAACCCTTCACCCTT
-TCACGTTCAATTGGGGCCACCGCTCCCAGGGACCCTGGCCCGTCATATGG
-TCCCATCTTTGCTGGGCGCCCAGGGATCCTGCTGTCCGTCCGCACCGGTA
-CCCATGCACCATTGGCTTCTCTTCCTCTCCCTCTGATACATGACCCCCAG
-GGGCCAGGGCAGCAGACAGTCGGTGCTCGTTCTGTACCTGTAGGTGGAAT
-AAATCAACCAAGGAGTGGGTGACGCGTTCCTGGTGCCCCCTTAGGAGGCC
-ACGCCTGGCTCCTCACAGGGATTCGCAGGTACAGGAGAAGTCGGTACAGG
-CCCCACCTCCCGAGGGGCGTGGGCTCCTTTCTCCCGCCCGTGGTCTGACG
-CCCAGCCTGTGGTCTCATCTGTGGCCACCCGGGGAAATGACAGTCCCTCT
-TCGAGCGGGAAAGGGGTTCATTATGTCTCGATCGCTCAGAGAAGGCAACC
-AGGTCTCGGGGGAGGCCTCCTCCAAGGTTATCCACGATGTGGCCGAGTGG
-GTACAAACCGCACCCACCTACCCAGCATTCTGCCCTCGCCTCCCGGGCTG
-GCACCGGCCCTTGCCAGTCCAGCTCTGAGCCTGCCCAGGGCTGAGCCGGG
-CTGGGATGAAATCCAAGGTCCCATCCTGCATTTGGCTCCTCGGCAGGCGT
-GGCTGTGTCCCCGGGGCCCTGACCTCAGGCTCTGTTCTCTCCCTAGAAGT
-CACCCTCACCAAAGATGTCCCCAAAATATCATGGTTGCCCTTGGTAACCA
-ATCACGCATGTGTCACCCATTCATGTATTTAACCCTTTGCTGAAGGTTGC
-CAGATTTTCAGTGGTTGTGCCTTCTGGGGCCACAGTTCCCGACTGTTTGC
-TCATCATAGAGATGGAAGCTCCCTTAGCCCTTCCCACAGGATGCAGGGAT
-GTGGAGACCCCCACCCTCGCCACCCTGTGCCTCTGTGAACTGAAGGAAAG
-AGGAGGCACAGTGTGGCTTTCTGTCCCTGGAGGGGAGCAACTGAGGCTGC
-CTCCCAGGGTGTGGTGCTGGGTTGTGAGGGTCTCCCGGCTGCACTGGTGT
-CCTTTGGAAAGGGTCGTCTGGGAGACCGAACATGTGGTTGGGAGCCCCAG
-CTCCAGGTCCTAGTCCCGCAGTGGAGCATGGGCCTAGAGCAGGCCTTCCC
-TTTCTCCCCTGCAGCTGGAGGCTCCTGTGGGCTCTGGGCGGCCGCCGGCT
-CCCTCTCACCCTTGTGAGTCCCCTGCCCCTGCCCTGAGCTGCAGTGCCCA
-GGCGAAGGGCCTGCGTGTGTGTAGCTCTGAGGCAGGGACTGTGCAAGTTT
-CAAGACAGGCGCATCCCTCCAGAAGCCTGCAGGCTGAGAGGAACCACACG
-GGCGCTTACCAGGAGGCTAACAGATCCCTGCACCCCAAGACCTGGGCCCT
-CCATGCAGGAGGCCCCAGGACAGAATCAACCCCTCCACTCCCAGCTTCTG
-ACATGTTGACACTTGTCTCCCTGGCAGGGCACACACCTCAGCTGGGCCCT
-GTGGCAGGTGAACCCCTGGAGGGAAAGAAACAAGACTCATTCAACACAGA
-CCCAGCCTCAGGCCCAGGAAGACTGTAGGGGTTGGGGAGGTACAAAAGCA
-GCCCCAAGGTCCCTGTGTCCCCACTGTGGGGTGATGCGGCCAGTGGTGAC
-TGGTTCCAATGCTGGCCTGAAGCTCAGCTGGGTAAGGCCTGATCTATACT
-TCCAAGTGCCtgctggggaggtctgagcaaattccacggaccgggtggct
-tcagcaccagaaggcaccatctcatcgtcctggaggccagaggctcaaga
-gccaggtgcctgctggggcagctcctcctggggcctccttcttggcctgc
-agatgccgccttctccctgtcctcacaagcccttcctcttgggtgtctgt
-atcctcttctcctctccttacaaggatatctccatacgagatcagggccc
-ctgtaatgacctcatggaatcttagtcatctgtttgaagactctgtctcc
-aacaacagtcccatgctgaggtcttgggggttggggcttcaacacgtgaa
-tgtgggggcaaaactcacctgtgacaGGTGGGAAGGGCAGCCTCCAAGGA
-CCGAGGACATCTAAGAGGAAATGCCCAGGACAGCTGTCCTCTCCTCACTA
-GAGCTGACAGCTGCAGGTGAGGGGCTACAGGGCCCACCAGGGGGTCTCCT
-GTGTGCATCCCCCCCGGGAGGGCTGATTGTGGGGCAGCCCTTTATGGGTC
-CCCGGGCACAGCCACAGTGGTGCCAAGTCAATCCCTGAGTGGATTTCTTT
-TCTACAAGCCACCTCTGCACATAGCTAAATTAAAAATTAGATCACCCACC
-TAAGCCCAGAGCATTCGAAAACACCTCCCCGACCTGTTTGACTTTGGATG
-GGCAGTAAGGCAGCACTGTGGATGGGCAGGAAGGCAGCATTTTTGGTTTT
-GGTTTTGTTTGTTCCTGTTGACTGAGTTGTTGGTTGGGTGGGGATGGGGT
-GAGGGCTCATGACCAGTAATGGCTTGGAGGAAAATCAGCCCCTTCCCTCG
-GGGAGGGGGCTCCATGGGCCAAGGCTGTGGAGGCAGGGAGACCATTCACA
-GCAGGGCCCAGGGCAGCAGACTCTCAGCAGCCTCTCAGAGTCTCAAAATC
-TGTTGGTGAGCAGGATACTGTTGGGTGGAAGGAGGGCCTGGATATAATCA
-GCTCTGGATAAAGATTCCTCCTCCTTCTCACTTTTCCCCAGCAGGAAAAG
-TGCTCACTCTAGCCACATGGTGCCCATCCCCAGggcctctccgcatggct
-gacttgggcttccacacagcgtggcagttctgagtgagtgtggcttcttc
-cacagaagctgctttctccagagtgagtcccaagggaccccctgtaagtg
-gcaatgccaggaccttgaagccccagggtggcacttctacctcatcctat
-tggtgaaacaagactgaggctagcaggctccatagggaggggaGGAATCG
-GCTTCTCCCCTCCCAGGGGAAACACCAGTGCTTCGGGCTCGGGGTGGGTG
-GGAGGAATCGATGTGGTCCTCTTACAGGCGGTCGCCCCATGAGCTGCTTC
-CGCCttctgtgtggttaatgcgtattaattagggctaaatgtcacagcaa
-ctgagaatgaagttacctttatctctcttatgacagaggaggaaatggag
-ctcatagaagcttggcatccagcccaagaccacccacctgtcaataacct
-tgacacgacaggagccctcgccagtccgacccccaaactccagcccaaga
-ccacCCACCTGTCAATAACCTCGCCACGACAGGAGCCCTCACCAGTCCGA
-CCCCCAAACTCCAGCCCAAGACCACCCACCTGTCAATAACCTCGCCACGA
-CAGGAGCCCTCACCAGTCCGACCCCCAAACCCAAGCGTCTGTACAATCGT
-GTTTCCATTGAGGACAAAGCAGTTGATCTGTTTGGAAGATTTTGATCCCT
-GGCATGGGTTTCTGAGGAAGGGTCTGAGATTCACGTTGGAAGTCTCTGAA
-TGAGCCTGCCATTTTGTCAAGTGATAAGAAATTTCCAGTAGACATTCCTT
-CTGTGCATGTTGAGCTTGTGGACGGAACTGGGTGGCAGGCTGTGGTTTTA
-GGACATGTGGCCAGATTGGCTGAGGGTAGGAGGGTGCAGTATTGACTGCa
-attgtgaaagcgtagaattttctcgtggaaagtggcttggaacatggtcc
-aatcgaacatcatcatcctacaactgaggaatgtgaagtcTGAGTTTCTA
-AGCTCCCAAACCCGTCTGAAATGAGAacacagacacacacacagacatgc
-acacacacacacacacagaccacagacacacacatagacatgcacacaca
-cacacacagaccacagacacacacacagacatgcacacacacacacagac
-cacagacacacacagagacacacaagatgcacacagacatgcacacatgc
-acacacacagacacacaGATGCAATATAGACAGAcacgcacagacacata
-cagacacacacacagacatgcaaagacacacacagatacacacagacatg
-taaaaacacaaagacacacaggctcacacagacacagacacatacagatg
-cacacagacacagacatgcaaaaacgcacaaacacacacagacacagaca
-gacccatgcacacaCTGACACGCAGACACACACACTGACACACAGTCTCA
-GGGAGGCTGAGCCGGGTGCTGGGTTAGCTCACAGACTTGCTTCCACCATG
-GCTTCTGACACATGGGGGTGGCCATGAGGATGGGGGAGGCCGTGGGGACA
-GAAGCACAGCCGGCCTGACCCAGGCGGGCCAGAGCTCACCGGGCTCTGGT
-CCTTCGTTCCCAGGTGGGCGGCTCCAGCCCCTCCATCCCCTCGGGTCTGG
-GCAGGCTCTGTCCCACCGGGCACTGCCTTGGCCCCCCTGGCACCCAGGCA
-ACCCCTAGGCAGGCCTGGCTGGGCACTGGTGTGGGGCCTGGCTCATACCG
-GGGGGTGGGAAGAAGGGTCCTGCCCCGTCTCCCTGCATGTGGGCTCTGTC
-TTCTGCAGAACAACCTCAGGCCTGCAATGGTGTTGGCATCTGTCAGAGCA
-AAGCAGAACCTCCCTCCTCCCAGACTCCAGTGGCTGAGCTGGGCCGTCAG
-GGCAGGGATGGTGAGGGTTCAAATGCCAGGGCAGAGCAGGCCACGGCATC
-CCGTCCACCCACAAATGTCTCCGCAGACCCTGGTGATGGCTGTACTGGGG
-GTGCAGCCCCCAGAACCACTCGAAGCTCACGTAGACTGCTCCCCCAAGCA
-CGGGGGTGGGGGAGGCTGGCCCCCTGAGCAGGGCCCGGCCTCTGCACCAG
-TGCAGCCCCACCTCCCTCCCAGCCCAGGTCCAGGCTGCTGGGGGTGCAGA
-GAGGGCGAGCTGCAAGTGGAGGTGAGAAGGGAGCTCGTGGGACGCAGGCT
-CAGAGAGAAGCCTCCGAGGAACCTCTCTGTTCCCTTCACGAGCGGAGCCT
-TGGGGCAGCTCCGTGTTTCTGCCACAGTTATCTCAGGAGATGATGGCTGT
-GGGCtgtgtttgtgggtgtgtgcatttgtgcacctgtgtgtgtgtgaaga
-gggagagagacagaggggagtgagacagagacctggagaggggatgggag
-agagagattggaaggggaaggaggaggagagaggcaggaaagcagagagg
-gacagggagagtgcggagggacaggACCATTAGGGAAACagggagaggga
-gggagaagagagggagagaggaggtgtgagaaacagcaggagagagaggg
-agggcgcgggagagagagggaTTCCAAGAAGGGGGAACCTCCCTACAGCT
-TTCTCCCACTGTCTCTCAGAGACATCCCTGGGGCCGCCTCTGCAGAGGGG
-GTTGCTGCGAGCTGCTGGAGGGAGTGAGGGTGATGCGTCTCCCGGTGCCC
-CAAAATGAGGCCTCCGCCTGCACTCCAGCAACCCAGACCCAGGGAAAACA
-CCACCAGGACCCCTCAACAGCAAGGGAGGCTCTGTCAGACAGGCCCAAGC
-CTCCAGGAAGCTGGGCCCTGCCCCTGAGCTGGGGGTCTTCAGGCCCCTGC
-CAGAGCCACTTCCTCTTAAGACACCTACAAGCCGGTCCCCAGTAAATTCT
-AAACGCCACGGTTGTTCCCATGGCGTTGCTCTCTCACTTCTCTACCTCTA
-AACTGTAGGATTCCTAATTCTATTCAAAACAGCGGATGTTTCTCTGTTTT
-CTGGGGCACCAGGATGTGTTGTGagtgctgagggcagacgtgggatccgg
-aaggcccagctgggaacccacgctctgcaatgagctgccctgagtccttg
-gacgaggtggaaaattactccagtctcagtttcctGTAAAGACAGATCAG
-CAGTTACACCCCTCCACGGGTTCTTTGTGATGTCACTGAGGCGGTGAAAG
-GAGCACCTGCCTCTAATGGCACCCACCATTAAGTCGGATCTCAGCAACCA
-TCTGCGTGGCAGGAGCTATCACACTGGAGCCTCGCAGTAGCCAAGGAGAG
-ACGCCAATGAGGGAATCATTTTTCCACTTGGTGAAATACATTTTTGCCCC
-GTGAAAGCACGAGGAGGGCCTGTCTTGGATAGGTGGAGTGGTCCTAGGTC
-CTACTAGATGGAAACCTCAGGACTCGGAAGAGGTTCACCTTCGGAGCGAG
-TCCCCCTAAGGGTGAGGTTGCCCCCAGGGAGCACCGTGGGAAGAGTCAGG
-GACCCCTGGTGCTCCTGGAAGCTGGGCTTCACCTGGAGGGCTTGGAGATG
-AGCCCCATGGGGCATCCTGATTGTTGTGTTAATACAAATGCTCCCCCCCA
-GGGCTGGCCAGCCTCACGCCAGCTGCCTTCTTCTCATGACATGTGGTGTC
-CTCACAGCCAGCCGTAGGATCTGCATTGAGTTCAGCAAGCGGAGGCGACT
-TCCCCAGGGCCACACAGCCATGGAGGGCTGCGGCTCAGTTGCTGACTGCT
-CCAGCTCACCCTCACGTCCATGAGGTTTCTGCTCCAAAATGCTATTGCTA
-AGAAAAATGTTCCAAACACGACCCATTGGCTGACCACAGGTCTTCATTAT
-AAAAGCATCTGAAGGAGTTGCTGAAGGGGATGTCCTGTTGGCTGGACCCT
-GTCGTGCTGGTTATATGTAAACTGGCTGAACTACCCAGTTCTTAAACTGT
-CACATGTGAGTCCTTCCTTCCAAGGTCAGAGGCTCCTATCCTTCAAGGGT
-TCAGGGCTCGTGGTGGGCTCAGCGGGATCACAAACATTGGCATGGCCAGC
-CCAGTCTGGGGAAGCTGCAAGGGCCTGGGGGGTTGTGGCCTTGGGCATCA
-CAGCATCAGACTTGGGGAGCCTGGTGACGAGAGCCTGTCTGAGAAATGTG
-ACTTGTTTCCAGGAGCAGTGGGAGCCCCTTCCCTCCCTGATGAAGGGGGA
-GTGGCAGTTCCCTCCCTGATGAAGGGAGAGCGGTGGGCACATGGATGACG
-CTGCCCCAAATCGCTCCCCTAACCTTCCCAAATGACGCCCCAGCCACTGT
-GGCTGCTGCTTTGAGAACGGACAGGAGCCTGGGGAGAAGCAGAAGGAATG
-CAGGTGAGGCAGGAGCTGATTGAAGAGCCCTTCTGCAGGGCAGGAAACTG
-GGCCTGGGTCCCGGCCGGCTGGACGGGGCAGCAGAGGCAGGTGGAGCGGA
-TGGCTGGGAAGCCTGGGATAGGCAGACTCAGCCGCTCTCACCAGGCCTTT
-GCCCCTTCCCTCCCTAACGCCTTCAGAAACCGCCCATGACTTTCTCTTTT
-CCAGATACCGAATTGTACATTTTGTTTCACCGGCTGCCGTCAGCTGCTCG
-GCTTCCTCCCCTCAGGGCAGTGCTATTTAACACTCTCTCTTCGAATCTCG
-CCTTCCTGCCTCCCCCGTCTGCAGCCTCCCCTGCACTGCGCACCCGCTCA
-CTCTCCCCTTCCCCCAGGAGAACACATTCTGGCAGACAGAAGTTCAAATG
-AGAAGTTAAAACGCTTTGAGGCAGCAGGCAGAGTGTCAGCAGAGCCGGTG
-GAAACCGCAGCCTTGGGGGCAACACGTGGACCCTGCTTGGGGATaaagca
-ggacagacagaaggagcaggacagacaggaggagtaggacagacaggagg
-agcaggacggacaggaggagcaggacagacagaaggagcaggatggacag
-aaggagcaggatggacagaaggagcaggatggacagaaggagcaggacgg
-acgggaggagcaggacagacagaaggagcaggaccaacaggaggagcagg
-acagagagaaggagcaggaCAGCCAGACAGGAGGAGCAGCCTTCTGGGAC
-CCAAACAAACAGTCATGCCCCAAATACCCCCAGGGCTCTTGAAAGGGACA
-GCGGAAGGCACAGGCCAGCTTCCTCTCCAAGCAGACCCATGTCCATGAAC
-CCTGCAATCCCAGGCCAGGAGACAATCTTGAAACATGCTGTGACCCTCTC
-TTCCCTGGCGGAAGCCCTCACGGAATGGACTGAAGTGAGTCCGGCAGGAA
-AGCGAAGCCGAGGTTCCCTTGCTTTGCAGCCATGAGGTCTCGGCCCCCTC
-TCATCCAGTCTCTTTGTCTGAAATGTGCAGGCAGCTGAGGCACCCCCGGG
-GGGTTCAGTGAGGATGAGGAGGGAAGGAGGCGGCCGTGGGACTCTGGGCA
-TGCATCTGGCACAGGGCGGAGCCGTCTGAGATGCCAGCCATCCCTCTTCT
-TGCTGGTGTCGACTTCATCTGTCATCGCTGCTCATCCCTTCCACAGCAGT
-TCTGCCTGATGGTTCACCTGCGGCAGCCGTGCCACGTGAAGATCTGGGTT
-GGTTTCCACCCTCTGAAGCTCATGGTCCGCTGGAGGAGTTGAGATCACAG
-ACAATATAACTTGTCCAGCTTCCCTGCAGCTGCCTTCTTGGGGCTTAACT
-TTAGATCCCAGGAATCTCTCTCAGAACCAGCCCTGGCCTGCCTAACCCAC
-CTGCTGTCCTGTCCCTAAGCAACACCTCCATCCTGCCACCCAAGATACAG
-CATTGTCCTCCAGCGTAACAATGTCATCCCCTCACTGAGTGCCCTGATGG
-AATGTAAAATATGCCACCCACCCTGATGTGGAAGGGGAAGTGTCCTCTTC
-ATGGCATACCCATGTGGGCTGTTTTCTCCTGTCCACCCAAGACAGAGAGC
-CCCAAAGGGGCTGGGGCCAAATCTGGGTCATGGCCACATCCACGAACAGT
-GGGACAGACCCTCTGGTGTGCACCATGACCCCCTTCAAGGAAGGATGTGT
-TGCCAGCTTCTCTGTGTGCTGCCTACACACGGCCTTCATCAGCCACCGTT
-TGGGTCCAACTGAGGTAGTCACTGGGCCTTCACCCAGCTCACTCCCcctt
-ctctcccttctacccattgggtcccatgggccctgcacaggcatcctacc
-tgctaacctccacctcacagccggctttttggagaacttgatctgcaaca
-gtgaatgagtgaatgagtgaatgaatgaatgaTGTTGGCAGAgtagggat
-tatcagttttgttgttgtcgttgttgttttttgagatggagttttgctct
-tgtcacccaggctggagtgcggtagtgtgatctcggctcactgcaactcc
-gcctcctgggttcaagcgattcttctgcctcagccccacaagtagctggg
-attacaggcatatgccaccacgcccggctaattttgtctttttagtagag
-atggggtttctccatgttggtcacgctggtcttgaactcccgacctcagg
-tgatctgcccacctcggcctcccaaagttctgggattacagatgtgagcc
-actgcgccctgccgattattactttttttagtgaggaaaatgaggctcag
-aaaggataactatttcggtcaaggcatcacCTTAATGATTACAGGAAGCA
-ACGAGAAGCTGTCCTCCTAATTGCAGGCTGATACCGAAGGACACAGTGAA
-AAATTGGCTAAGATGGGAATGGCTGGAGGACGGTGCTGGAGAAGCCGCTG
-TGGGCTGCCCGCCGGCAGCCGCAGTGCCACAGAAAGCCAGGTCTTCCCTG
-CTGGTTTTTCATGGATTTGGCCAGAACCACCGAGGAGCTGGGGTCGATTG
-TGTTTTTTATTCCTTCGCGCACAGCCTGAGAGCTGCCTCTATAAAGCCCG
-AGTAAGAATCGATGTTTTCTCTCCAGAAAGAAGTCTTCTTTCTTGGAGCC
-ATTTTACCAAAATCATCAGGGTTGACAACAAGCTGGATGTGTTCATGAGC
-ATTCCCGAGTCACAGGCTTCTTCCCCCCAGTGACAGTCCCTCCTGCAAGT
-GCCTAAATCTTGCCTTGGGAGTTTTTTCGCCTCGGTGTTTGTGGCCAGAC
-CTCACCCCCACTGCCTGGCTTCCTTCTTCATGTAATTGAATGCGCAGTTC
-ATTAAGATCTTTGGTGGTGGCGGAAATGTTACAGGGGAAGAAAAAGCTGT
-TGACAATTTTATTTTTAAAAGTAACTAAGAATAGGGTAAACCTTGCAAAA
-ATAGCAAGCCTGCAAGCAGAATTGTGCTCAAGGCCAAGTTCTCCTCCCCA
-AAATCGGAGCATGGCATTTAATAAGAACAGGGCGCAAGGCTCAGGCTCAA
-CTTCCCATGCACTGGCGTGGAGGTCTCAGGAACAAGATCAAAAACAACAG
-CACATGAggccgggtgtggtggctcacacctataatcccagcactttggg
-aggctgagaccagtggatcacctgaggtggggaggtcgagaccaccctgg
-tcaacgtggtgaaaccccgtctctactaaaaatgcaaaaattagccgggt
-gtggtggtgcacacctataatcccagctacttgggaggctgaggcaggag
-aattgcttgaacctgggaggcagaggttgcagtgagccgagatcacgcca
-ctgcactccatcctgggcaacagagcaagactccatctaaataaaaaaaa
-aaaaCCATGTGGAACCCACAGCCACTGGCTGTGAATGTTTGTGCAATGTC
-CAGTGTGCCCTTCCCTTCTCACCAAAGAACACAGATAGACTTACCAGATG
-TATTTGGATTAGATCCACACGTCACCTCATGAAATACAGGAAATCTCTTT
-GGTCATGTTTCGTGTAGTCCCAGAACTTAGAAGAACAAAGGTAGTATGCA
-AAAGTGTCTATGACTTTGAAACTGTTCCATTAAAAATTTTTTTTggccag
-gcatggtggctcacgcctgtaatcccagcactttgggaggccaaggatgg
-cagatcacctgaggtcaggagttcgagaccagcctgactaatacgacgaa
-actccgtctctactaaaaatacaaaaattagccgggtgtggtggcatttg
-cctgtaatcccagctactggggaggctgagacaggagaatcacttgaacc
-caggaggcagaggttgcagtgagctgagatcgtgccattgcactccagcc
-tgggcaacaagagtgaaactctgtctcaaaaaaaaaaaaattcttctttt
-gatatagagatttgatctcactatgttacccaggctggtctcaaactcct
-ggcctcaagtgatcttcctgcctcgtcctcccaaactgcCCTTGTGTAGT
-TTGAAGGAAGTTGGGTATTTCAGTGAAAAAGAAGCATTTGGGAAGAGTGT
-TGTCTTTCTGTTCACCCTCTGAGCCCTGGCCAGAAGGAATGGAAATTTGA
-GGGCCAAAGATCTTttttcttttcttttcttttctttttttttttttttt
-gagacaaagtctcactctgtcgccaggctggaatgcagtggtgtgatctc
-ggctcactgcaacctcagcctcctgggttcacgccattctcctgcctcag
-cctccagaatagctgggactataggcatgcgccaccacacctggctaatt
-tttatatttttagtagagatggggtttcaccatgttagccagaatggttt
-caatttcctgacctcatgatccgcctgccttggcctcccagagtgctggg
-attacaggcatgagccacctcgcccagccAAGGGCCGAAGATCTTAGCCC
-AAGGTTCCCTGAGACAAGAGAGACCGACAGACAGAGAGCAGAGGCCCGAC
-ACCGGAAGTCTCCAGGGCCAGCTGGAGGGGTCTGTAGAAAACCTGCCGAG
-GGAAGAGCTCACACTGACCCCAGGGATCCGAGGGCCACTCTTGTTGGGAG
-CCCCTGTGTCTCCTTGTGTCCTGGGCATCCTGCAATTCAGGAGTTTCACA
-TGGCCGGGGGCTCCACGACTAAGGAACTGAAGACCGAGTCTGTCAGTCAA
-ATCGCCCCACGGCCCTGCGAAGCAACCAGCAGCCCCAAAACACAGTAGAA
-AGTTATGAACGAGCTGTGTGTTTCTTGGAGAATCAGGAAGGCCTGGACAA
-GGTTGTGCCACAGTTGCAGAAGGTGAGGTCGAAGGGTGTCTCAGCCGTGT
-GCTCACATCCTGAAATCTTAGATAAATTGTTCTCAAAGATCCGCCAAAGG
-GAGGTTCCCATGGTGCTGGCCACAAACGCTGCCCAGAATGGGGAGGGGGG
-TGGCATTTATAAAGGATCTGCTCAGCTCTGCTGGCCGCGTGAGCCCCCCA
-GGCCCCCAAGGCAGGCTGCGCCCTCTATGTCTTAAGGAAACACAGTCTCC
-AGGAGGGATACCGAGTGCAAAGCAACTACAGAAAAGTGCACACACTCCAG
-GTGCCGTGGGTGAGCGCCCCTGTAGcattctttccctaagcgtcgaatga
-gcccctactgtataccagggtctgtgctgggttctgaggtccagagagaa
-acCTGCAGGGATGAGGAAGAGAAGGGGTGATGGGTCAGCCAATGGCAACG
-TGGTGCACGCAGGGCTACACCCCAGCAGGCCCGTGTTCTGTGAAGCCATG
-GGGAGACGCTGGCTGGGGGGCTGCACAGTGGAGCAGACAGTCCTGTGACC
-ACAGGACTCACATCTGAGCAGAACTTGAAGCCCCACATTACGAATCAGTG
-CAGCAAGTCCCAGAGGCAGGAGACGACTTTGCTCCAGGTCCTGCCGGCAT
-CCCCAGCATCCGGCCCTGATGGATCCTTTATGGCAGACGATGAATTAGAA
-GCGGAGCACAGACTCTGGAACCAGCCCAGCTCTGAGACGTTTCTCTGCAA
-TGGCAGAAGTAATTAGTCAGATGCGGGTCTTTGAGATCATGCTTCTGATT
-AAGAAGAATAAAAACCAAGACGTTAATTAAACCAAATTCCAGGAAGCAAC
-AAGCATCTTCACACTTCTCGCTCTCTGTCCTTCCAAGGCTGGGCCCCAGC
-TATCTCTCCTGTCAACGTCTCCTCCGTAAGCTTTTCTACAGGACAGACCT
-GAGCGTTCTCTGCTCAGAACCACGGTCTGGGCTTCTGCTCAGTAGGTCCT
-GTGGGACCCCAGCGTCCCCGCTTGTGGCTCCTTCACGCCCCTGGGCCTGC
-CGGGCTGAGTCCCTGCAACCAGCACCTGTGTCTTGCTGTGGGGAGGGTGC
-TTCAGACTGCAGAGTCCACTTCTCACATCTTGCAGGCCAGACAAGAACGC
-CCTGTCCCCCAGCGCTGGGGGCTGACGGGGAAAGGAGGCGTGAAGACTCT
-GGCTCCTGTCCTTGGTAGAGATGATTTCAGGCATGCGTCTTACTCCATTT
-TTCAGAGTTCCCTGAGTCTAGCAGTTTTCTGTGGAGGCTGAACTGACATC
-CCCCTCCTCCTCACCGGCTGCCCCTTCCCTGCCAAACTCCCCCACGCCCT
-CTCTGCCGTATGCCACTCGGAACTCCTGGACCTTAGCCCTAGCCCTCAGG
-GCTTGCTCCTGGAAAATTGCCCACATGAGACTCGAGACCCAAAGTTCTTG
-TCAGGGCATGGCTGTGTTTTCCTGTTTCCCTGCAGGCATGTGGTGTGCAA
-ACACAGGCTCCTTCAGATCCATCTCGGCGAGATGCTCAGGACCACGCCTC
-CCTGCCCACAGCAGGTTTTCTGCACCCCCAGCTAGAGCTTGGCACTCCAG
-AAAGAACATGCACTCAggctgtttcatgtattaattatgggaccttgggc
-aagatgcttaactcctgaaggccaaacccttcgtctttcagatgggaaga
-gccccaccagccttcatgggggttgtcaggactgagtgacatgatatgtg
-tgaagcTTGCCGGCCATGAAATAGTCACCATGAATAACACTTATTACCTT
-CCTCAATTCCTTCTGGTCCTGGTCTACAGGGAATGAAGTTTCCTCAAAGC
-AATTAATATAGCCCTGCATGAATGCAACATTCTCCGTTGCAAAGCTCCTA
-CGTTATTTACTGTTAATAATTTcagctgacccttgaacaacacggatttg
-aacggtgtgggtccacatatacgcggacttttcttccatctctgccaccc
-ctgagtcagcaagaccacaccctcctcctcctcctcctcctcttcagccc
-actcaacacgaagacaatgaagatggagacctttatgatgatccacttcc
-acttaatgaagagtaaatacattttctctttcttaggattttcttaatag
-cattttctgtcctctagcttgtgttgtaagattacagcatataacacaca
-ccacatactaaatatgtttcatcagctatgttatcagtaagacttccagt
-cagcagtgggttattagtagttaggtttttgaggagtcaaaagttataca
-cggacttttgcttgcacgggggttggcacccgtaaccctgtgtcgttctt
-ggctcagctgTTTATGTGAACACTGCTGAAGCACCATCGCGCACAGACCG
-TTTTAGACACGGCACAAATCCAAGGCTTTGGAGCAGTCACTCAGTTATCC
-TCATATTATAAATGAATAGACCGAGGCtggtgcagccattatggggagca
-ctatgacgctttctcagaaaattaaacgtagaagtacccaagacccagga
-atcccttttctgagtatatattcaaaggaaaagaaaccagcaccttacag
-aaacacctgagctcccaggttcattgcagcaccaagagatggaaacaata
-gaaaaacatcctctgtggatggaaatgtgcctaaagaaaatgtgcgatag
-acacggagggaaaggttctgggcctttaaaaaggagacaccgacatttgc
-aataacatgggtgaacctggagcagaatgtattaaatgaagccacacaca
-cactctcacactcacatacactcacacactctcacacactcaccctcaca
-cacactctctcacacacactcatactcacacacttacactctcacagact
-cacactcacacactcacactcccatacactctcacactcacacacactct
-cacacagactcacactcacacacactctcacacagacacgctcacacaca
-ttcacatacttacactctcacacagactcacactcacacatacactgtca
-cacagtcacatgcactcatatacatacttacacacactctctcacacaca
-ctcagccagtcacacacacacccacagagactttcacacacagactcaca
-cacacacagtcacacactcacattcctatacacacactctcacacacttt
-cacatacactcacacataggctttcacatacactcacacataggctttca
-catacactcatattcacacactcatacacatacacatagtcacatacaca
-aacacacatacatgctcacaaaaacatacacactcccacacataccctca
-cacacacacatagtcacactcacacacacactcatacacacacattcaca
-ctcacacactaatatggtttggctctgtgtccgcacccaaatctcatctt
-gaattgcaatccctacatgccaaaagggggtcctggtgggaggtgattgg
-atcatggaggcagacgtcccccttggcaccgtgtcatgatagcgagtgag
-ttctcgcaagatctgatggtttggaagtgtggcatttcccctgtgctctc
-tctctctctctcctgctaccttgtgaagatggtccttgcttcccctttgc
-cttctgccatgattgtaagtttcctgagacctcccaggccatgcagaact
-gtgagccaattaaatctcctttctttataagttacccagtctcaggtagt
-atgtttacagcagtatagtatatacagtgtagtgagaacaaactaataca
-gacacacacacaTGCGTGCACACTcaaacactgcatgccgtctcttacag
-gaagaatcttttttaaaagttgaatccctagaatcagggaaagaacagaa
-ttcacctgcaggcaggatgggggtattgggaagcacgggtcaaagatggc
-aaggttgcactgatatgggacaaggagatctggagccctcatgtacagca
-tgaagactgtggctaataatcttgcattgcatactggacattttctgaga
-gagaagacattaggtgcttttactacaaacagcaggagcagtgtacaatg
-acagatatacgaagctgttacctataatactccactctctgcatatcata
-ccagtatactgtatacctgaaatctatgtaaCAAGCGCatgaggagactg
-aggcacagagaggctggataacgtgcacaaggtcctacagctacatggca
-agcccaggactcgtgcccagacattttgcctctaggggaccagctttcag
-tccccctcctacacCCTCTCAGAGCCCCAGAGACCTGACCAACATGTTTA
-ATAAAGACAAGAGAAACTAGTAACCGGGAGGAATAACTTAATCGCAGCCT
-GAGTTAATTCCTCTATTTGTTAAGAACGCGTCTCAAGCAGAATATTTTTA
-GGCAGTCTGGCATTACAATGTGCTAACACTGAGAATGTATTAAACTCAGC
-CCTACTTACCGAAAATATCCCCTGCGTCCATATTGCCTCTTTCACTTACG
-GGAGGGAGCTGTCAGGAACAACAGGACTCCGGTTCTTGTTAGCAGCGGGA
-GCTGAGCAGGGAGACACTCCTTGGTTGGGTCTCCGTGTAAGGGGTCAGGG
-GTCATCTTGGCCAGCTTGTGCCTGTCATAGGTTGATGCAATTTTCTGAGC
-TCTGGCTTTGAGACGTAATCCTAATCCTTTAGGTACCTAGGAGGGCACTC
-TGGTTAACAAAAAACAAAATAGGATCAACAGAGACAGAGAAGAAAGGATG
-AAAGAAAATAACAGATTCCCTAGTTTTTTTGAACAAAATGAGAAAGTGGC
-ACATGGGAAAACTTGCAAATGAATCAAAACCAACTTTGCTTGGTCTATTC
-CATTTCTTTCTGTACCAAAAAAAAAAAAACCAAATATCAGTAATAATAAT
-AATAAATAACAAACTTAGAGTTCAAGGTCCAGGAAGAGAGAAGAGTTCAA
-GGAAGGAAGGGGCTGAACACCTGTCCAACACCCACATCTGCCCTTGCTAA
-GCACCTGCTTTGTGCCCGACTGTGTCTGCTGTCACCCTGACCTTCCCctt
-catggtgtctctaggaggtgagagagagctggtattgcactttacaggga
-aggaacatgcaagtcagggagacagaataactccccgaggtcacacCTCC
-TGGTCCACGCCATGCTGGAATCCAGCCACACGCAACTCTAAGTCGGGGTC
-TCTCCTACTCTAGGCCGCCTTCCAGGATACGTTCAGCAGGACTGAGGACA
-AGGGAGTCAATACCCAGGCTTCTGAGGGAGTCAGACTCAGCCAGGCAGAG
-GACACTGTGAGGCTAGCACTCTGTCAGCACAGGTCCGGGTCCTAGGTAGC
-TTCGAAGCATCTCCAGGGAACATGGAACTGTGAGAGGAGTGGGCAGAGGA
-GAGGCTGATCAGGTTTGTGCATGATGGTGACTCTGTCCACAGTGGGGGTG
-TGGGGGGATCAGCAAGTAACAGGGAGGAACTCCAGGCTACAGACCAAGTT
-AGAACACGGGAGTACCGTGTGCTGGAGAGAAGCTGGGGCAGGCCTCTCCT
-AGAGGTGGGGTCACAAAGGCCATGCCACCTCTGGGCTCCACCCGGGAAAG
-CCCCCGTGTCTGCCCTGAGGGAGGCAAGGCTCTTCCCCAGGGTGAGGGGT
-CTCTGGACCCTTTGACTTCCTCTCTTTTCAGGCACAGCACGGTCACGATT
-GAAGAGCTTTTCCTGATCTGCTGCCAACAGGGACGAAAGGCTCCTCCTTC
-ATCATGGAGACGGGGCTCTGGGAGCAGGCCAGCCAGGGAACATCTCTGTA
-ACTGGCTATGTCTGCCAGGGGCTCTGGGGAGCAGGCTGGCCAAGGAACAT
-GGTTGTAAATGTGCGTGCCTACCTGTCAAGCTCAGATGACAACCTGCTAG
-GCCAGGGAGCCCTCGCCATGAGAGGGAGGCAGAGATGGTGTCTGGACCTT
-CGGGAACTCTGAGGTCACCCATGTACTCTTTGTTTGACACACAAAAGGAA
-CCAAGGCATCAAACGCAGCTCTTGGTTCTCCTCGAAGCCCAACTCCTCCA
-CAAGCACCAGTACAGGACTGCACAGAGGTGCAGGGTCACCCCTTCCCTGG
-CTGATGGCCAATGGGCCACCAAATGCAGGGGCGAGGCCACCCAGCCCCAC
-CAGCCCACCTGCTGACCTCAGACAAAGAAGCAGTTCCAGCCAACTCCAGC
-CAAGCAGGGACCAGAGCAGCCCAACAGCCAGCCGACCCATGGTCTCGAAA
-CAGCAGGAAACACCTGTGGGTTTAAGGCGCTGACACCAATAGCAGGTGCA
-GTCAATCAATCAACAGGCATTCATTTGACCAGTGATGCCCTGAGCGTGAG
-GCCAGACATGGGACTGCAGAGAATGCCAGGACACGGAACAGAAACCCCAG
-CCCACCTACCATGCATGGCCACCGGCATCTCCCTGTCACCAGGTAATCCA
-CTCCACttccttcctcgggaccttggtagtggctgtgcccgctccctggg
-atgcccggacctgcatcctctgtctgaataactcctgtttatcctctagt
-ctcagcctaaatgtcgcctcctccTCCCCAGTCACTGTGACTCCCAGCTG
-GCTCGAGGTTCTCACCCTGTGCCATGCTTCCTTGCATGGCGCCACCCATC
-TCCAGCTTTGGGCACCCAACCCAAGGCTCGGTGCTTGTGGTTTcttgggg
-ctgggcagccctggctgccagctggggcacctcggttctccatgtgcctc
-ccatccccagaggctggaggtatttcctgccatggtgttctgagggcaga
-agcctcagagagccacagcgaggtgtctccaggcccagcctcgggactca
-caccgtcacttctcccacactctgtggtcggaggaagtcacaggcagccc
-acagtcgggtgagaagtggaccccttttgatgaggacagtgacaaagaag
-ctgtggccgtgttcaTTGTTCCTAGCGTTGATCCTGGCTGTAAGGCATTC
-CATTTTGCAGCttctttgcatgttgttggtgtccaacactgacgttccag
-cgccagaaaggcagggccctggtcctgttcactctgctccccgggcagtg
-cctggcatagaatgggctttagatgggtgtttgtcgaatgaatgaatGGC
-TAGAAGACAAGGTCCAGCCCTGCCCTTGAGGAGCTGCTGCCTCCCCAGCA
-GGGTTCCTGCTCCATACCACACCACCTGAGCCCTGCCTGGATGCATGCCT
-GTGCCCACAAACCCTGCAGCATTGCACTTGCTCCCAAGGGGCACCCCAGC
-CCCTTCTCAGGGAGCAGCTGTCAGCGCAGTCCCCTGGCAGATTTGGCTCC
-GAGGAAGATAGAAGGTGGCGAGCCCAGGTGGTGACTCACTGGACAGAGAC
-agagaaataaaaagaacaagaagcaggaagaagaagaggagtaaagactg
-ggagatggaggaagaaaggaagggagggaggggaggaagCCTGAGTGTGC
-GGGGTTTGGTGGGTGAGGCTCTGGGAGAAAGCCCAGCCCGAGAGAGCACG
-AGGATGGCCAGACCACCCTCCTCTTCCAATCGTGGGTGCAGGAAGGGCTC
-GGGGCCAGCCGGGCCAACTCTCTAAGTGACACATGCCACATGCTGGGGCT
-TCTCCATCCCCACTGCCTCCTGGAGCCACAGTATCCAGACACCAGGGGCC
-TCCAGACAGAAATGTGTCGCTGGGATGCTTCTGTGCTGTGACTCAACAAT
-CCCTGTCCTGGAATCTCAATTCAAGTCACTCCAACAAGTGGGCAAACAGA
-ACTCTGTGCCCTGCAGGGTTAATCACATTATTCATTATTCACAGTCACAG
-AATTCAGGAATCCACTTCACTGCCTGGCAAGAAGGAGATGGTTATGCCAA
-CATTCCATATTCCATAAACCCTGGGGCCATGAACCACTGATGTTTCAGGG
-CATGTGGAAAATCCTGTGAGATAATGCAGGCTGACTGCATTTCTGTTTTT
-TTAATTTGTATGGGCTTACATTGGAATATTTTGCAAAGCAATACACAGCA
-GTACATATACAAGTCTGTGTATGTAGCTTTATACGTACAGCTATTTTGGG
-GTCAATGCTACTTTGAGAAGACCAACCTACCTGTGGGTCTAATGAGCCTG
-TGAAGTCCACACAGGGCCTGGCTACAGGACCTGAGGGTTCACTTCCCCCA
-GGGCAGCCCCCGTCGGAGCTCTGGCCCCTGTCCCATCATATGTGTCAGCT
-CTTCCACACTTATTGCTGTTCTCCTTTCTGCATTTTTTGGATATTAGTCA
-ATGTTTATTCAATTTATGCTACATTTTTCATTCCCGAGGGCTCTATCGAC
-AATGGGAAGAAGGTTTAAATGAAAAATACTCCTTCACTATCTCATGAGCT
-TGATGCTCATCAATGAGCTGCTCAGGACTAGGTTAGGCTGAGGGAGGCAG
-GAGAGCAGGTGGGGAGTGTGCTGTGCATACAGGGGCTTGTCACTCTTGCA
-TATGAGGAAGAGTgtagggaaggtccacagagtgagggacctaggttcac
-atctcaccattgcaccatgaatgacctccattcccgagagtgtgtcaggg
-tcccaaatggttgcatggtgctccagccatcacatctgtgctcccaccgg
-ccaggagacaaaggggagatcaggtacacttccctgtgagaagttgcatg
-cacaacctcatgcattttattagccaaaactttgccaggcagaccatatc
-tagctgtaaaattggttgagaaaatatttatttaatttgggcagctttgt
-gcccagctaaaacttggggatacaggtgttgggagcaatcagccatctct
-ttcacaACTATAATGTGTAACAAGGCCATAAATCCGTCAACTTTGAAGGC
-TCTAAGTATATGGTTCTTTTGTGAATATATTGTTTGAGatagattttatt
-tcttagagcagttgtaggtttacagaaaaattgagcagaaggttaaacag
-ttcccttaccctcctctagccctctccctcacaaacccaccttccctatt
-attgccaccttacattgtatggtgcatttgttattattgatgaaccacga
-ttgatccattattattaaccaaagtccatagttcaccttagggttcattc
-tttctgctatgtgttctatgggttttgccaaatgcataatgatgtggatc
-tgccattacaatactgtacagaatagttccactgccctaaaaccccctgt
-gcagccatattcatccctccctccctcctgccaaacacctggcaaccact
-ggtcctttaccgtctccatcattttgccttttccagaaagtcctttgaat
-ggaataatacggtctgtaaccttttccgactggcttctttcacttagtga
-tatgcatttaaggttcctcctggccctttcacggcctgacagctcatttc
-tttttagtgctgggtaatattccatcgtctggaggtgtcgcagtttactc
-atccattcacctgctgaggggcatcctggttgcttccacggttgtggata
-aagctgcgatcgacatgcacgtgcaggtttttgtgtggacagaagttttc
-agctcatttgggtaaacaccaaggagtataattgctgaaccatatggtaa
-gtgtatgtttagttttataggaaatcaccaaactgtcttccaaagcagct
-ctaccattttgggttccctccagcaatgcatgggagtttctggtgtcctg
-aaccctcgccagcatttcgtggagtcagtgttctgggtcttggtcattct
-gataggtgtgcaggggtgtctcatggttttagtttacaactccctggagc
-catatgcttacctgtgtctatctgtcttcttttgtgaagtgtacattcga
-gtcttttgcctgctttttttcattttttttttattttacattaagttcag
-gcatacatgctcagaacgtgcaggtttgttacatgggtacacacgtgcca
-tggtggtttgctgcatctatcaacctgtcacctaggttttaagccccgca
-cgcattaggagtttgtcctaatgctctccctcccctttctccccaccccc
-cgacaggccccggtattcccctccttgtgtccatgtgttctcattgttca
-actcccacttatgaatgagaacatgcggtgtttggttttctgtccctgtg
-gtgatttgctgagaatgatagcttccagcttcatccactttttaactggg
-ttgctttcctgtagttgagttgtaagggttctttgtatatttgggataca
-agtcctttatcagacatgtgttttgcaaacctttctcccagtcagtggcc
-tgtctttttgttctcttaacagtgtcttccacagagcagcagtttttaat
-tttaatgaagcccaacttaccttttttttttttctttcatgaactgtgct
-ttcagcattgtgtctaaaacctccttgctgaatccaaggtcacctacgtt
-ttctcccatgttatcttctaaaagttttaccattttgcatgttacattta
-ggtctatgatccatttggtgttaatttttgtgaaaggtgtaaggtcagtg
-tctacatttatatatttttttgcatgtggatgcccttgtGAATATCTTTG
-CAATCATTAAATGTTAATTACAAGGACGACAGAGGCTGGAAAATATCAGG
-ATGTAATGTTAAGTGGAAGGCAGTAGGCAGAGCACCATCTCTGCCACAGT
-TTCAGGTGAAGGGGTTTCATCTCGGTCGGTAAAAGGAGCAATGGAGTGGA
-AGGAGAGAAGGGAGGCAGCTCCATGGGGGGGCAGTTGCCTGCAGAGCCCG
-GGACCCACACTTGCATCATGGGAGGGGCTGAGGGAGCCACACCCAGGCAG
-GAGGTGGACTGAGGAGATGCCGGCTAAGTCACTGATGCATGGAGAGGCCC
-AAACAAAGAGATGGGTGAGGAAGGCCTGGGAAGCCCACAGATGCCCCTGC
-TCAGGGGAGGgtattaggccattcttatgttggtataaagaaatacctga
-ggctgggtcatttatgtagaaaagagctttgatttggctcacagttccgc
-aagctgtggcatggcaccgacgtctgctcagttcctggtgaggcctccgg
-gagcctccagtcatgacagaaggtgacgagggagcaggcatcttctgccg
-ccagagtggaagcaagagagagcgggaggaggcgccatgctcttcaacca
-ccagatctcttgtgaactcagagtgacggctcaatcatcaccaaggggat
-ggccaagccatgcagcagggttccagccccgtgatccagtcacctcccac
-caggccccgcctccaacacaggagtcacatttcaacctgagacttagagg
-ggacgaacatccgacccacgtcaGGGTAAGCACTCCTCATGTGGGCAGAG
-CCAGCAGAACCAAAGAAACAGCTAAAAACGGAGGTGCTTGCAGGAGGCCG
-GGCCAGGGAacacagactctctccctaacagctctagccaggctgcactg
-agcctgctatttacctaggctcaccctgggctcctgcctttatgctggca
-gagttcaaagttagcaagaaccctaagttagtttagccagaagccccagt
-ttcgatgtctgagcaccctcaatgcctgaccggattcctcatcccctacc
-ttcctctgggtgatgtcggtcaccctggcctgcctctagccagaatccag
-cctggtcagcttagacagagtgacccaccctcttagccatcttccatcca
-ccaattccacctggagccttgcttctgaatccccacatttccttgtgttt
-gaaatggagcacaatctttctcccctgttgcaaaacctcattgcaggggc
-ccctgtgagtagagactgctttaccgtctggaataagcctcagaagaatt
-ttattcttaacaTGGGAAGTGGACCAGAGGGCAGAGCCCCCAGGGCTCTT
-CTCCTCAGCTGGCAGCCCATAGTCCCACTCTCAGCTCCAGAGGCACAGGC
-TCCCCACTGCCGGGCCAGGAATGGGAACAGCAGGGGCTCCGGAGTGGGCA
-GGGGGCCCTCGGGCAGGAGGTGCACAGAGGGCATGGGTTGGCCACCCCGG
-GCCTGGCAATGGCCACCTGCTCCCTGCACATGATGGCCTCACAGGGCATC
-CTCATGTTCATCATGCTATAAACGATGCCCTAAGGATCTGAACCGGGGGT
-GGAACTGACATCTCTGGACCTCCAAGCTCAGGTGTATCTCAAAACTGTCG
-AGACAGGATGGCTGAGGCCCTAGAACCCTAAGGCGCAACACTATCTATCC
-AGCCCAAGCTGTGGCCCCAAACTCCTACTTGAAAACCCTGGCCCTGTTCA
-TGTGGGTCAGACCATGTTGGGCAGGAGGACTTGGTTTCTGAGGACCCAGC
-TGTCCAGAGTGGCCCAGACCCAAAGCCAAAAGGATGCCTCTCCCACCTCT
-CCCTTGGGCCCTGCCTCCTCCCCAACTCTGGAGTGTGTGGCCAGATGCCA
-GCCAGATGAGGTCCCGCATTTCTGGACAGTCCTTTGATCCCCTTTTCCTT
-CCACCACGAGGCGGCCTTTGTCACTGGGTCCCAGGACAAAGCCTCGGGGC
-AGCCTGGATGGTGTTCTGACCCCAATCCCCCCAGGGGGCTCCTAGTCAAG
-GGTCTTCCCTGCATGGAACCCCCAAAGCCAGTAAGAAATAGAAGCTTCCT
-GAACATTGCTAACGTCCTGAATATCCAGCATCCACGAAACCCAAGCGAAC
-TAGTTAAAAATAAAAACGTGGTGATGATCATTTGCTGTGGGTTTAATCCA
-ATTTGAGGATTTACTTAAAATAAAACCTTGGGGAATGAAAACAGAAGTCA
-GTAGCACACCTCCAGGGCTAGTAGGGAGCACATTTGCCCAGCACCTGAGT
-CCTTGCCAGGTGCCAGACCCTGTTCCTGACAGCTGTGCTGGGCGTGCGCA
-CACAAGCCCCGGGCGGAGGCCAGGGCTGCACTTAGCGCATATGAGATGCT
-ACGTGGGACTGGAAATGCCTCCTGCGCTCCCTTGAGTTACATGAAACTAC
-TGAGAAGTTCTTGATCTGGGGGCCATTAGAGGAACCTGGCCCACCTTGTC
-TGGAACACAGAGGGAAGGCTGGTTACGGGGAAAATCCAGAGGCGGCAACT
-TCGTGCTCTCAACAGACAGCATGAGTCACCATGAGAAGGGGAAAGGGGAC
-TTGGCTTCCAGACACACACCAAGGACTTCAATGTGGACAGTGGCAAGGTG
-CTGTCCCTGACCCTCCACCCGTCGCCCACTCAACCTGGCACCCCAGGGCT
-GTACCGGCCGAGTCAtcaccaaggcccacctctcgcctggtccaggactc
-ccttggagatgagggcagacaagtggatggcaccctctgctccaaggctc
-cggggcctcatgaagcagccgttcctattgaacagctccagcagctgcag
-tgttccttcctgtattcctcagaacctgttgtcctgaagctccgtctgtc
-accactgtgtctattcccttcagtcagtcacacagaacaaatctattccc
-ttgtcctcggaaaaggggtcaggtccttggatgtttgaaaatagctgccc
-tgtcctctctgacccctcccCCGCCACCGCCGCAACCTAAGGCGAGGAGC
-TGCCACTTACAAGGCACCTACTGTTTGTCGAGGGTTTTATTTAGGTCAGG
-ACGCGGttattcccatttagagatgaagaaactggggttcggcgaggtta
-actgcttgcccagggtcacacagggaacaggagacgctggatgtaaactc
-agccccgtctggttctgaaggctgccttctccccggccctgcagagcgcc
-agcctctctTCTATAAGCTGGATGCCCCCGGCCCAACACCCCACAGAGAA
-AAGGCCTCCAATGCCTCCCCTGCCATCAGCGCTTCTCTGCAAAAGAGCAT
-CCTGAATGCCCACGCCAGCCACAGAGGCGCCCCTCCCACCCTCTGGCAGG
-TGGGCTCCTCTCACCTTCCTTTTCTGTATCGATTGGTATGTATTCAGGTC
-AGGTAGCAGAATGCCTGGCCAGCAGTGTCCTGAAGAGACAAAGCTATCTG
-GGACCTCAGGGTAGGTGGTCGGGGCTGGGCAGTGACTCACGACGGCCATT
-AAGAAACCAAGCTCTTTTTGTCTCTGTCCTACCGTCTACAGCAAGTGTGC
-CTGTTGCCTTGAGTTTGCAAGATAGCTGATCCTCTTCCAGTCATGACATC
-CTTCAGGAAGAAGGGGAATGACACAGGCTTCCTCTGAAGGCTGCTCTGTC
-TTCTGACTCCACAAAGGAAGCACTGCCCAGCACATCTCCTCCTGCATCTC
-AGCCAAAACTAGGCCATGCGCCCTCCAAAGACCAATCTCTCTCCAGGAGC
-AATGAAACGCATGTAGCTGTCTTTGATCCGCACGCCTCCTCCCCTGGTGG
-GGGTGGGCCATGTCCCACCTGGATCTCACATCCCTAACTGCAACCTAAAG
-ACAAGAACTCCATCAGCTGGGGGCGAGGGTAGGGTGCTGTGTGCAATGGG
-CTGACTACTAAGGAGGCCATGGAGGGCGGCAGCTTCACCCTCCAAAGTTT
-AATCACCCTGAAGTGCCAATACCTGAAAATATTTTTGGAAGCATTTTATT
-CTAAGAGGGATCAGAAATTTTAGCAAGAAAGAGTAACGATATAATATTGG
-AATTCCAGGCACTATCTGCCAGTAGGTCATAGTGATAGATAACAAGGTAG
-GTGGTGAGAGGTTACCAAAAGGGAGTCCAACAAATACGGATGAATGAAGG
-GAAGGGAGGAGGCATGGTGATAGGTGGGTGAGTGTGTAGAAGGGAggatg
-gtggatggatgcatggatggatggaagctggatggatagatagctggatg
-gatgaatggaggaatggatggatgaatggaaggatggatggatgatgaat
-gaatggatagatggataatgaatgatggatggatagatgatggatggttg
-gatggatggatggatgatgaatgaatggatagatagatgatggatggatg
-aatggttgaatggatgatagattgatgaatgataatggatggaggaatga
-tggatatatgatgatggatggatggatgatgaatgaatggatagatgcat
-aatgaatgatggatgagtagatgatggatggatggatggatggatagatg
-atgaatgaatggatagatagatgatggatagatgatggatggatgaatgg
-ttgaatggatgacagattgatgaatgataatggatggagtaatgacagat
-gtatgatgatggatggatgatgaatgaatggatagatggataatgaatga
-cgggtggatagatgatagatggatggatgaatggatggatgacaaatgaa
-tggatagatggatgatagatggatgaaagagtgaatggatgatagatgga
-caaatgataatggatggaggagtgacagatgtatcatgatggatggatgg
-atggatgatgaataactggatagatggataatgaatgatggatggataga
-tgatggatggatggatggatggatggatgatgaacgaatggatagatgga
-tgatggatggatgaatgggtgaatggatgattgatggatgaatgataatg
-gatggaGGAATGACGGATGTATGATGATGGAGGTATGTATGAACAGGAAT
-GGATGAATGCATGCAGGAAGGCAAACTGTTTCAGCGGACACCTTTGGAAG
-ATGCTTTCTGGTTTTTGAATTCCTACAAAATTTGCTTTGATAACCACCCA
-AGCAGAGTGCTTGCTGTCTTTTAAACTCTCCTCGGCTTATCTGAGCTGTA
-AGCGAGGCACAGCTCCAAGAGCAGAACAAAAGCTGGCAAGCACTGGTCCC
-CATTGTCATGCGGAACCAGTTGGGTGGACAGCAGTACTCTCTGGAGTGGC
-CTTTTCTTCCCGCTGCACTTGCCTTTGACTGGACGGATGAGGTGTTTTCA
-CTTATAACAGAGTTTAGTCAACCCTCTCATACCATCCTCCTTGGCAAGCA
-CCTGACAACATGGCTCAGAGAGAACCCCTGGAGAAGCAGGTCACGTCTGA
-AGGATGGTACTCTGTGTGTTCTAGGAAAAAGCCACACCTGCCTGGGGGTG
-GGGGTCCCCAGCCTGAAGAGAACCTCCTTGGGCACCCTGTGCTCCCCAGG
-GCAGGGGTGTCTCCACCCTGGCTTAGCATTCTTTGCTTGCATCAAAGAAT
-CTGGCATGGATGTGGGGGGGAATCTCTGCTCACCACAGCTGCAGGCATTT
-GGAAAAGTCAAGGAACAGAATGATGAGGAACGGTGAGCACAGGTGGGCTT
-CAAGGCCAGCACAAAGAGGTTCCAAGTTTCTTGCAGCTCTCATGCAGAGG
-GAACAGGCCCCTTTCCTTAAAAAAGGGCCAATGTGTCCATTGGCCCACAA
-AGCCAGGAGCTGTGTGAGGAGGGTGGCAGCTGGGCTGAACTGGGCCCACC
-TGCCCCAGGTCGGGGGATCCAATGGGGTCAGCACAGGGGGCTCCTAGCCC
-TCTGTGTGCTCACAGGGAAACAAGAACCCAGAACTCTGCCATTTAGGAGC
-AGGTCTATTTATGGGCCATTTGTGCTGCTGTGGTTTTCCTTTCTAATTTT
-CCCTCAGATCTGAGCAACGTTCCTTTGGAAAATTCCAGTGCAGCTCAGCT
-GTACTGAGAACACGGGAAGGATCAGAGGCAAACGTTGAAACAGTACCTGG
-TACTCAGAGCGCTGTGTTCTGGGGAGAGGCGGTGGGAAAGGGGGCTTCCC
-TTGAACGAAGTGAAACCTGATCACCCCAGGGAAGGCAGGAGTAGGCTCTT
-CATTAGCCCCTTTTCCTGGGGTTCTTTGAGCTTAAACTTCATAGAGCTCG
-GTGGACAGTTTGCGAATGTGGCTTTGTGTTTAGCAAGGGAGGCTGCATCC
-TAGAGGCTGATAGGAGCCACCCTAGGCCACCGCTGGTCAGAGTGCAGCCA
-GGTCCCCTCCTtatgtcacctgaacaggctccctagcctctgtgagccgc
-tgtccctatctgtgaaatgAACACGCAGAGGCCAACTCTGCAGAGAGCAG
-GAGGGGACCAGATACCACATGGAAGGCCAGCGCCATGTGGGCGTCCACTG
-ATGGGTGGCCAGGATATCGTCCTAATGCAAAGTAAGGAACCAGAGGCTTT
-GAGAGATGACACACTTTGCCCTGGCTCATGTATGCACACTCACATTCACA
-CACACCACACACACGCATGTGTAAttgctcacacacagggcaggttagtg
-acagagctggaactCACAGTCTTCTCCACCCTACCCCCCCATCACAGACT
-GAAGTTGTCATGAACACTCAGGGTGGAAAATCCCAGAATATCAACAAAAT
-AAGAAGAGTATAGCCTCCAACTCCAGTTCCAAGGGCAGGGCAGAAGAGAA
-GGCTCTGGAATCACTGTAGGTCCGAGAAGGGGATTTGCCTCCCCAGTGCA
-GGGTCAGTGAGATGAGCAGGGCCACACATGTCCCAGCTGAGGGAAGTACG
-AGAGAGTGCTGAGTGAAAACGGACCATTCCCTCACAGCACTGGATATGAG
-AAAATTCAACATTTCTAATAAAAGACAGACCAAAACATCTCGGCTCAGGA
-TAAAGTGAAAGAAGCTACTTGTTGATGCATTGTGTAATAATGAATCTGGC
-CAGTCTCTGTCCACCACAcctctcacccattcctgcgaggtaacctctac
-attcttaatatttcttaattgatagaagtgtctttgttactcatagtgtg
-tccttggacaacagctgagtccatgccaagaaagtgactAAGGGAGACCC
-CCTAGAAAACCTGTGCTCAGGAGATGGCACCTGATGGGGCTGGTCCTACC
-AGAAAGAGCACCCATGCAATAGGACAGGTGTGGAGGGGGGAACTGCTTTG
-AGCCATGGCATATCAGCTGGTCTTTCAcctccaggaaggggatggggctg
-gaggttgagttccacttccgggctgttgattcagtcagtcatgcccgtgg
-aatggaaccccaatgaaaactctagacacggaagctctggtgaacatcct
-gatgggcagttccctgtgaatggtcacacacctatgtgccgggagggcaa
-ccggtccctggggctgacggaagctcccaggccttgttgtaggtagctct
-ctctgtagctggctattatttgtctctttatgctataataaaacagtcat
-tataactatagcactttcctgagttttgtgaattgttttagtgatttatt
-gaaactgaagaagttcctggggacccccgactttgtagccagctggtcag
-aagtgacagtgacctggggaccctgaatttgcagctggggtctgaggcga
-tgtctccttgaggaggacagtccccttacccaatggagtgtggctgactc
-caggtagtgtGTGTTCAAAGTCATTGCACAAACAAACAACACTAaacaat
-gttggaatgttaaaattaaagtatcacccaagagctattggacaaaagca
-aactaaaaacagacttgacaatgttaatttctaacattgtgtatttcaat
-ataaatggaattaaatggaataaaatgccaatgtatgttgttaatatctt
-aattctacaatgaagataaagtagaatcccacgtgcgctgaccaaggtaa
-catgaaaatacaagtccaaaacgcctggaaatatatgaagaaaacgaaag
-aaacacattggatgcttaataaacgatttttggatacctcacaatcttat
-gggtatagaaataagaacagtgacaaagcttaaaacaattgaaataattc
-aattactaaataaaataataccagaaagagagaaagtctttatcattttc
-agtaattcataaacattacactctatctgcatctatgctacacaaatctc
-cacaaattttcaaaagcaaaattgcgcagaacacattctctcactgaaac
-ctggatttataataggagcaaacggatatacacacagatatacacacagC
-CTGTGGATCAAGAGATGGGGTATAGGGGCTGCACTGTACCTAGAGGGACC
-AATTCTTTGTCTTTTCATGAGGAAAAAAAAAGAAGAAAAGAAAGAAAGAG
-AAGGAGGGAGGAaagggaggaaaagagggaggaaggaaagaaggaaggaa
-ggaaggaagaaaggaagggaaggagggagggagggagggagggagggagg
-gagggaaggaaggagggaaggaaggaaggagggagggagggagggaggga
-aggaaggagggaaggaaggaaaggaaggagggaaggaaggaaggGTAGAG
-GTAATGAAGGAGAGGACCACATCAGAGTTGTGTGGGAGGGTTGGGCGTTG
-TCCGCAGAGGAGGGGACATTGTGAGTGGTGAAGTCCCAGCCTCCAGCCCT
-GGGCAAGGCCAGTCCCCGTGGGCATGGGTCTGCTGGACAGTGTCCAGGAG
-GCAGCAGGGCAGGCACGGTGTTAGTGGGGATTGAAAACCTGgccagagtg
-cctgggagtgagactgcagcccctttgctccccagctgggaccttgggtg
-cattgcttggcctctcttggcctgttttttcatctgtgaaatggaagtag
-agatactctctacccctgagcattactgtgaggattagctgagttatgac
-atgtgaaaggtttagaacaggctcagcgcactggaagtgctGTGGTGCGT
-CGGCCATTATTATTTGGGGGACGGGCAAGACATATGCCCCTCCCAAGATC
-ATCATTGCATCTGTCAAGCCCACAGGTATGATCCCCAGACTCCTAAGCAA
-CCTTCCAATGATGATCAACTCCCACGTAGGTTGGGAATGAGAGAAGGTTC
-ATGCAGACTCAGTCTCCAAGGCCTGGAACCTTCCAATGATGATCAACTCC
-CGCGTAGGTTGGGAATGAGAGAAGGTTCATGCAGACTCAGTCTCCAAGGC
-CTGGGAAGCTCTCTGCCCAGATCTTCTCCTGCCTGGATCTGTTGCTCACT
-GTGGGTGCGGTTCGGCAGCGCCCCGGAGCATGGCCTTGGGGGTCCCTCAG
-TCTGGCAGAAGCCACACCCATGCTCTTCCCCTGGTTCCTCACACGCAGGA
-CCTAGGCAGCTCTTTATCTTGTTGGGGATGTAGCCTTTCTACCCCGTGGC
-ACAGAGCCCCAGCATGGGCCTTCTCTCTCTGAAACACTGTGTTGGCCATC
-ACAGAGGAAGGCCTCTGTGCATTTTTGTTGGATTAATTGAATACATGAAC
-AAAACCCAGCTTCCTTGCCATTGCAATGCAATTCCTACAGCTTGTATGGA
-AAGCTGGGCACCCATCCTGGGCCATCCTGGTTCCCAGGAAAATGATGACC
-TTTATTTTGAATGCAGGGGTTGCGGTTTTGATTTATGCCTCATTCCCCGG
-GTCTGTCTATGACCTTGCGGGCAGTACAGGGCACAGTTGGCTTTGGAGCC
-TAAGCCTCTGAGGACTGGAGCCAGTGCCACGGTTTTCAGGGCATCTTCTG
-GGCTCCAGGAGCTCCCTGGCCTCGAGTTAGCAGCAGCCAGGCTCTGACAG
-TCCCTGTAAAGCCTTGGCCAGCCCTGCAGACTCACTGCAGGGGCCGGCGG
-CAGCTGCTCCTTCTCAGCCTGCAGCGGCTCCCCCTGTGCAGCTCCATGGC
-CAAGGTGGCCACTGCACCGTCCAGGTTGAGGCCGGGGGAGGGAGACTCAG
-GTCCCATCAGGTCTGCTCTTGCTCTCCCCATTTTAGATCCAGATTTCCTT
-TCTCCCAGGACCCCGCTGACCCCAGCATCTGTGGGCCCAGCAGCAGCCTT
-CCTTGGGtgcctgagtccaaccctgctgctaggacagggcactgggcagc
-tcaggaacaacagacatggacttctcagggttctgaaggctggaagctca
-agatccaggcctcagcagattcggcacccagggaagggcttcctggttca
-cagctggtaccttctcactgtcctcacatggaggaaggaggagggtctct
-ctgaggtctattttttttttttttttgatttggagtctcaatctgtcacc
-caggctggagtgcagtgacacgatctcacctcactgcaacctctgcctcc
-tgggttcaagtgattctcctgcctcagccccttgagtagctgggactaca
-gacatgtgccaccacacccaggtaattttttgtatttttagtggagatgg
-ggttttgccatgttggccgggctggtctcaaactcctgacctcaagtgat
-ccaccctccttggcctcccaaagtgctgggattacaggtgtgagccacct
-tgtccagcctctggggtctattttattagggcactaatcccattcatgag
-ggccctgttcttatgacctaatcatctcccaaaggccccacctccaaata
-ccatccagcccactggggcttgagtttTCCATCTCCCCAGCTCCCCCTGT
-CTTCCACCTAAAATCCCTAATTCTATTAAACACCTTGGACTTTTGTGGGG
-CCCTTCCCAAATCCAGCATCGCCCTCCCGTCCTAAGAGCACACAGGTTCC
-CCTTGGGGAGCACCTTCTCCACTGTGAAGCCACCATGTGCCACCAAGGGG
-CCAGCCCCAGCCCCGTATCCCCGAGGAGTTCTGATCAATTTGGCCAAAGG
-CGCTAATCCCATCACAGGGGCCACGGAGTGTCATTCCATCCTCAGGAGCA
-CGAGTGCTCAGGCCTGGGGTAGGAGTGGGAGAGTGCCTTCCCCTGGAAGA
-TGCTGTGCAGAGGTCCCTTGGGCCAGGCTCCAGCTGTAGGGGAGCCAGGT
-GGGGGTCAGAGCTGACCTTCAAGGGAGAGCAGAGCCCAGCTAGAGAGCTG
-AGCACACCAGGAAGGACACGGCCGCCTCCGGCCTTTTCAGCGGCACGGGC
-CATGCCGCTTCTATTGGTCAGCTCTGTCTGGGGCTTGTTTTGTCCCTCGC
-CACAGCGAGCATTCTAATGAAGTTAGATCAAGGCCAGAaaaaacgaaata
-ttcaaaaaagcaatgagaaacatacactaataagaaacatatggttctta
-actgaaagaaagaataaatcttcattgaaaggaataaaagataatttgaa
-taaatggagcacagtactttttgctgaataaaaagaaaatattgaatatt
-gtttttgctaaattaatttgctatttaatttaattccaatcaagattttc
-atgaagattgttcttaaaatgtggtaaaaatcatccctaagtttatctgg
-gggtagaaaagcatataataatattttaatatgtaagtgaaggataataa
-ggggaatctgtcctaccagataccaaaccgtatcccaaaactatagaaat
-aaagctactaatgccaggacaggaaaacattcctggaacaggaccgatat
-ccctaagaggtcctttgctcagcaagggattgaaattataaaacggccag
-gcgcagtggctcacgcctgtaattccagcactttgggaggccaaggaggg
-cagacaatctaggtcaggagttcaagaccatcctggccaacatggtgaaa
-ccccgtctctactaaaaatacaaaaattagctgggtgtggtggtgggtac
-ctgtaatcccagctactcaggaggctgaggcgggagaatcacttgaaccg
-gggagatgaaggttgcagtgagccaagatcgagccactgcactccagcct
-gagcgacaagagcaaaactccatctcaaaaaaaaaaaaaaaagaaagaaa
-agaaaagaaaaaaaaagaaaaagggatgaaagacaacaagggaggggtgg
-attattccacaaaagggattgggaacatgggccttcacagtaagattcag
-ttagatcctgactcacaccacatgcaaaggtaccttccaaatccattaaa
-gaGTTCAAGGCCTAACACTCATCAACAATGCACCACACACAGGTGAGCAT
-TTAGCCAGGCCTAAGACGAGGAAGTCAGCAATGGCAGGAGTCAGGCGGGG
-AGCACCTCCCTCCCGCACAGGACTAGAGTCAGGACAGAGGGTCCCTGAGC
-ACTGGGACATGTCCGTCCTGGCATGTGGCGTCAGTTAGGGTCTTTCTCTT
-TAAATGTTTTTTTTTGTTGTTTTTTTTTGTTTGTTTGTTTTTAATAAAAG
-GCCATTTCCTCTGCCATTTCCGACGTACCCTGCGTAGTTGGTGCATGACA
-CCCTCAGCCAGCTGGACTTGCCCCACCCCAGATGTGTTGGGAGCTTCTCA
-GACAACGCTGCCTGCGGCTGTCCTTGGCTCCATGTGGGACGTCTTGTAGG
-ATCTACAGAATCTGGGAACATGGGCTTGGGATACAACTGGGGAGACTGGT
-GGAGGTCTCTTCCTCTATCATCCCTTCTCCTGGAGTCATGTGATGTTAGA
-TTTTGGAAAGGGGCAGATTTGAGTTTCACTTTAGACTTTCAACATTACAA
-AAGGGGAAAAAAATGCTCCCAACCCCCAAAAAAAAGGAGAGAGAGAAAGA
-AAATGTCAAATCTGCAAATGTGCCGCATTCTAAATTATCCAAGCACTTGC
-TCTAATTAGTATTCCAAGCTAGACAAGAGCAGAAAGTCAAAATCTCCATT
-TAAATGAAAATCTCCCCAGCCCCTGGCTGGGGCTTCCGTCTGCACCAGGG
-GGTTCCTGGTGCCTCCAGGGACTTAGAATTCAAGGCCCCAGGTGAGCCTC
-GCGGCCGGTCTCCCTCTGCCTCTTGGGAAGGTGGAGGGTGGAAGCCTCAG
-GGTGGGCTTGCTTTCTTTGCTAGCTTAGGTGCTCGGGTGGGAAGGGCACC
-AGGTTGTTCAGGCCACGTGGCTGAGATCATGCCTGCACGTTGGTAACTGT
-GGAATTGATTTTGAATGCAGAGAGTTTGGCATTCATTGAGGATTAGCCAA
-TTGATTGCCATTCGTGTGCAGAAAAGGTTATCTCTTTCTAGGGACTCTGG
-GGCCCTGTGTGTTTACTCTCCCTCTCCATAGGAACGCTGACTATGGACAG
-TCCCTGAGACACACCCATCCTCCCCAGAGCTGTTGCCCTGGAGCCTCTGC
-AAACTTTGCTGATCGTTTACATTGTACTTAAGGCCATGGTGGGTGGTGCT
-GGAGTTTGGTCTACAGCGGCTCACAGACTGCCCAGGCTCATAGATGCCAA
-TGCAGAAGTGCGTCAAAAGCAGCCCGAAGGAATAATTGGTTTGGTAAACA
-TTTGAGCCACACTATCTGGCCCCGGGAGGCTCGAGCTCCAGCCCCACCCA
-CGGAGCCTCCACCTCCGCACAGCCTGGAATCCCTCCAGGACCCACTCAAG
-GCCTCCTCCTGGAAGAGCCTCCAAATCCAGAGGACGTTCCCTCCTTGCAG
-GGAACTTGGCAGGGAGGTCCCTGTGGGGCACCTGCTGAGCGAAGTTCACC
-TCGTTTCTGTTGTCATCTTCCTCCCCCTCCGTGAGTGACAGATGAATGAC
-AAGAGTAGCAATGACAATAGCTGCCCCCACTGCAGGCTTCctatacggag
-gccctgcctgtgtgatctccagtctttccagcttctcagcaagtgggctt
-caggacccccattttccaaaaggaaaagcaaaacagccctggccttcaga
-gcagctgaatgaggaacttgtccagggtcatgcagctcagcccagaaggt
-gtcagagatcagattacaaaaccctggaatttctgctacatcccagaacT
-TCCAAAGCCAGTCTTAGATTTCCTGGAACAGGGAAAACTGTAATAAATAT
-CTGCAATGTAGCCTTTTGCGTGCATGTCGGTCTTGCCCAGGGTGAGTTGC
-GGTTCACTGAGTGATGGTCCCACGTCGGGGTACCATGACCTGTACTGAGC
-ATCTGCCAGTCACTTCATCCTCAGGCAGGGATGAGAAAGAAAACTCCTGC
-Cttaggaatgcagaaactgacttgcagcaagattcagtatcttccccaga
-tgtcacacCCAGTCCTTCCAGAGCCAGCCTCCAGTCTGCCCAAGCCTCTA
-CCTGGGCTCCCAGGGGCTGGGTGTCCACACTAGAACAACACAAGCTACAC
-GGGGTGTCGGGTCTTAGAGCCTGAGCAAGAGCCTGGGGTTCCATCTCCTC
-CATGGAACGTCCCCCCTTTTAGCTACACTGAGCAATATCAGATATGGGAA
-GATATTGGATATTGGGTATACTTTTTTCTTTTCTTTTGTTAATTGGCAAG
-GCTCACACATTTTTCTACTATCCAACTTACCTTTCCTGTATCTCTCCCCA
-GACTCAGTCTCATTTTACCTGCACAGACGCTTCTTCTTTTGCCCAGGCCC
-CATCTCACATGTCGTAACCTCTCACTCACTCATTCATCTGCTCATTCATT
-CCTTCAGCCAGCATGTGTGGGCCACCGCCGAGCACCAGGCTGTTAGCTCC
-TGATGAAGGGCACTGAGATCAGACTGAACATCAAACTGCAGGGCAGCTGC
-GGCCCAGGCTTGAAGGCGTCCCTGCCTGGGCATGCACAATGCACTTGGGA
-TCTAAACTCAGCTTTCTTTGGAAAAGCTGGGAGCAAAGACAGCAAGTTCA
-CAAAATTCTGACTGGCTGCCGCCTCTTTTTCCATCAGCCACTGTTATTTC
-CCCTGCAGGACCCTGGTCCTCAAGCCCACCTGGCCACACAGGGACCCCAC
-TCCTCTTTCTGGAGAGTCTGAGGGTGGACCCAGATCAAGGCTTTTCTATG
-CGTTGTTGGAGGATCCTTAGGTATCATCCTAAATGCTTCCTGACCACTAC
-GCCCACATCCGGGAACAAATCACTGCTAATCATTTGTTTCCACAAGAGAA
-GAGAGTCCATCTTTAAGTTTTTTTCCAAGGCTGGAAGCAGGGCTATTTGT
-GATATAAATAGGAAGTTCTGGGCCTGCAGCAGGGCTGAGTTTGAACTGCT
-CTGATAGGAAACAAAAATCCATTTGGTTAAATATGTTTTCCAGGTCCCCG
-GCGCCTCCGCCTGAAGAAACGGATTAAGAGACAAGACGCTCTTTAGCTCA
-TCTAGAAATTCTCCAAAATATGGCCATTTACTAACAAATGTAGGATTTGG
-GGTTCTACAGGGCCTACAAGGGAGGGTCTCACCTAAGATGCCAGCGTTAT
-GTTTCACTGATGCAACCCTTGGCTCATTATATTTGGAGGGCTTTCGATGC
-AGGAGAGGCCTCCCACCTGGCCCCTCTGTTTTGCACCCATCCAGGCTGCC
-GTTGGCCATCCTGAAGTCCCAGAACAGCGGGATCAGCCTCCCGGGTCCCA
-GAAGCCAAGTGGTGTTGGTGAAGAGCAGCTCTCCAAAGCACACACTCGAA
-AGAGGAGCTGGTAAAAGACTGGGGGTCCCTTGTGAAGGCCTCCGCATTCC
-AGCGTTTAGCATAAAGTCAGTGGCAGCAGCACAGCACTCTGCCTTGAGGA
-TGTAGTGGGGCAGCTTGGCTCTCTTGCCACTTAACTGGAAAGGCCTCCGC
-CCACTGTGGCTTTGGCCCTCTATGTACCTATTAGATCCTACAGGAAGACT
-TCCACTGGCCTTCCAGCCTTGGAGGGCACTGACTGCATGGAATACCAAAT
-GGAGACAAATCTGGAAGGAAGGAAAATAAGGCCGGAATCCAACAGACTCA
-GAGAAGAAGGGGCCCAAGCCCCCGGGAAGTACCACAGATCCAGGACGCTC
-CATAGACCCGGTGTTCACCGCTCCTGGCCTGCGTGTCCCATGGGCTCTGT
-GGTGTGACGGGAGAGGCACAGCCCACCCTTGGAGATGGAAACATTTCTCC
-TACTGACAAGGAGTCTGAGAACCAGGCCGCATCTGTAATTGGAAGGAAAG
-GGACCTCGCCACGAACTGCTTCCCCCAGGAAGAACAGAAGTGTCAGATTC
-TGGATATGCATACTGTTTTTTATTTCTACACATTAATTTCAATTGTTTTG
-AAATAATACACTTTAGTGCCAAATGCTTTAAAAGTACTTATCAGAATTGA
-TGTAACTATGAAGTTGTCATTGTATGTGTCAGTCCCACTGAACAAAAGCA
-TCTCTCTATTTAAACATGGCTGGCATCCAGAAAGCAAGGTGTAAGAGGAG
-CTCTCACTCCTCAAAGGCAGTGCTCCCTACTGAGGTGCTCTTGAGGGGCT
-TCCAAGGTGAGAGGAAGGGGCGTCCAGGCCTGGATGTCCCAAGCAGGGGA
-AGACAGCAAGAAGGAGGGCAGACTTTGGGAGCAGAAAACGGGATTCTTCT
-GATGCAGTCCTGTCTGCTCTAGAGCAGCTCAACTTCTGGAAGAATCCAAT
-GCCAAGGCCAAGGGGAGCTTTGGGTTCAGAGAGGGGCCAAGCAGCCTCTG
-AGGGCCCACAGACTCAGGACACCACAAGCCACATTGCAGTACATtttatt
-tatttatttacttatttatttatGAGCTGAGGGATGTTGTCTTGGgtgta
-actcttgaggccaggacaccagggcatgcacctgctcaccaaatgctctc
-tctcggacagctccttctgggaacccagccacggggctgggaagagccca
-ggccacaggaaggggacctggaagtgctctggtccgcagtcacaactggc
-tctggacttcTTGGCCCCCAGCACCCCCTCCACCCATCACATCCTACCAG
-CAGAGGTCCCAACATCAGGAAGCGGAGGCCATGATGTAAAGTGCAGACCT
-GCAAAATCCAGACACTAATAATAGACAGTGGTGCTTGTTTCATCCCAGTA
-TATTTGCATTGGCTTGTGACATCGAGGTAGGTAACAGGCACGCCACCCGT
-GGATCCGCCAGGTCTCCTCTCCTGCCTCCCCTCTTCTCTGCCTTGTTCCT
-GGGGCTCTGGTGGGAGTCAGGAGTGGGTCACGCACATGATGCTGAGGAGG
-CTGCCTCCACGCTTCCCAGCATCCCCTGCTGGGCCCCCCGGGTGGGCATT
-TGTGATCCCCCACCTGATCTCCTTCTTCCAGGCTTCCTCCTTCCAATCCC
-CTTCCCCACTTCAATGATCAAAGTGATATCACTGCTATCATCGTCACTTT
-TCTAACACTTCACAATGTAAGAAGTACTTTCAAATGTAATAATTCATTAA
-ATAAAGCAAACTTTAGGAGAGAGAATCTTGTTCAATTTTTATAGAAACAC
-CATGGCTCAAAAAGGCAACATGACTTGATGAAAGTCACTTAGTATTCAAA
-AAATAGATAACAAATCTGGCCCCTAGCTCTGGGCTATTTTCTCCACACCA
-TTGCCCAGTGCTCACTGCATTCATTCCAGATCTTTACCATGGCATTCAGG
-CACCCACAGAGTCTGTCCCAAATAAACTTGCATCTCTGTTTCTCTCATAG
-ATCAAGTTCCTTCTGGGAATCAGCAAGGCCACAAACAGAAAGAGAACAtg
-agaaccaggtctgtgttttgcctctgggaaaagcataccatgtgttcatc
-ttgtttcctcttttgtttggtgaccagggaggccagcacagccccagagg
-cagctccatctttttttttttttttttgagacagagtcttgctctgtcac
-ccaggctggagtgcagtggcgccatctcgactcactgcaagctccacctc
-ccaggttcacgccattctcctgcctcagcctcctgagtagctggaactac
-aggcacccactaccatgcccggctaatttttttttttttaatttttagta
-gagacagggtttcactgtgttagctaggatggtcttgatctcctgacttc
-gtgatccgcccgcctaagcctcccaaagtgctgggattacaggcgtgagc
-caccgcgcctggccaaatgcagctccatcttagtaaccatgcaggactcc
-aggctttgctgcctgaacttcactttccctgtgctttgattttttgttct
-ttcaatattatatttccctATCCCAGCATTGTATTCATATGGCACATACC
-TTATGGATTtttgcttattttctctactgataaattcccagagcctagga
-ctacgccagatgcagagtagatagctactgaaagaatgcatgaatGAACA
-GGTGAATTGTTCCTCTTGGTATCGTAAGCACCTATAAAAGCCACATCAAA
-ATAGCTAATTTATTAAATACATTGCTACATAGTGGAATTTAGCCATTTCA
-AAGTGGGAAAACCTGACTCTGAAATGAAGCTATTTTGGCTTCCACTTGGC
-CAGAACCAGGACTGTAGTTGCATCCCAGCCCAGTGGGACCTCCTTCCTGG
-CCTTTTGCTCCAAACCTGGCAGCAGCAGGTCTCATGCTTAGAGCGGCCAC
-TGGTCCCTCCCTCCAGCGCTAGCCTTGGTTTTAGCTCCTGGAAAGGGCTA
-GAGGGGGTGGGGAGAGTGAAATAAGACAGAACTGCCTTGAGGCCCTGTCC
-AAATAAATTTTAAAATCTGAAGTTCTGATATACCTGAAAAGGGAAAACAA
-CATGATTGTCTGCAAAAGTTAGGATGGTCTACTTTAAAACACAGGATATC
-ATTACTAGGAGTAATAATATAATTCAGAACAACATCACTATCCCAAATAA
-GTAACTGTCTTATACACCAAAAAGGACTAGCCGCACAAATCTCCATGCAT
-AACAGCAACaaaagaaataaaatatgcagtcagcaactaacaagatatat
-tcaggacagataccaaagaagagaaatgaagaaagatttgaataaatgga
-aagaaatatcatgttcccagaggggagagctcagctttttaaagatgtca
-aacctcacgaagtgaattgataaaaaattagaattccaatgaaaatctca
-gtagaactttACAAAATGGATGTTTGATTTGAAATTTTTTTCTTAAAAAA
-TAAAATGATAGATAACCAAGAAACGTTGTcttatcaaatagttttacatt
-aataaaatagtatgctacttagagagagagagagattgaaagagatcgat
-ggaatcatagaatagtctagaaataggcccaagaatcatctggaagaatt
-tgtcgtatgataaaaatggtattttgttatctgttggtaacaaatgaatt
-atcctctaaactgtattgagaccactaaagaagtatttataaaatgatgt
-tagttacctatctctacagcaaaatgaattccagacagatttaaaatgta
-cagtttgtacaaaacataaaatattggaagctcaaaaagatatcatttta
-aataacctcaggatggaaaaacagtttactaggcaaagaccaaaaggcag
-aagtcacaaggagaaaatatggatgaatttgacaatttatgttttattaa
-gatatgttcctaaaactcagaagaaaaaaggataaagtccctccacttgg
-agaaaaatggtttaaaaatgccaataagcaaatatcaaaagaaaaatata
-agcacgcaaaaatgttcatcctcattagcactcaaagaaatgcaaattac
-aaAGCCGTGTGAGCCTCTTGTCAGCAAAGGGGAGGAGGGAACCTCTCACG
-GGATTCCTGGGCTGCAGCGCGGCTGGACCAGAGGCTGTGATGTTCTGGCT
-CCAGGAGGGACTCACGGGTGTttgtgggagctaagaacataaagtacatt
-gatttcttcattatggcgagaagatatttaagaatgttagcacagatctt
-tgaataaattttgttcctaagagaagttactatttattcctaattaaacc
-ggggggggggatgtctttgaagaggaacctctgctttattttttacaGGG
-GCATCCTTGCATTATGATGCTGTCTAATTGTATGTTATAGAATTATACGT
-ATCAAATATTAAGGGAAAATTAAATATAATGTTTACTGGCAGGAAAGGCA
-ATCATGAAAGTTCCTACAGCTTGACGCACAGATAAGGACTGTGCCAGCAT
-TGCCAGCCTGAGTGGCCCCTGTCTCCTCTGGGGAGGGCAGGTGCACCATG
-TGGCCACAGACAAGCCACCCAGGACATGGGGTGACAGTGCTCTCAGGTTT
-TGCTGATGGCCATCCCTGGACACATTGGTAATGCTGAACTTCCCCATGTG
-GGAGTCAGGCTGAGGGCAGCCACCCCCAGTCAGTGACGCCTTAGCaagca
-cacggcaccaccaaggacgtgttttgtcaaaagaaaatgggaacttggat
-ctgatgagtgttttggagccatcttccagctcacagaaaatattcaggat
-agaggaacacattaaatgacactcgaaaatagctaatagacaagtgcagc
-ctgtggaaaaccctacaggacaaatgtccaggtttctgcaacaaCACAGT
-GTCTAAAACAAAGGGGATGCCCTGGTGTTGGATTGAGTGGGGCATGTTGG
-ACCTCAGTGAGGACAGTTGGGGAGGCCATGGGGGGTCCTCCCGGGACCAA
-CTGCCTTAGTATGCCTATTGCACTCAGTTATCAGCTGACGCAGACTGTGG
-GGAACCTGTCTTTGGTGTGAATGCAGGGATGAACTTCAGAGCAGGAACAT
-GGCCCTTGACCATGCAGCCCCCAGCAGCCGGGGACCTGAAGGACACTGGC
-TCTCAGGCTCCACAGAATGTGGCTGACAGTCCTTGAATCTGGTGATGGGA
-AATAcaggtcaagtatcccttttctgaagtgcttgggaccagaagggttt
-cagagttctatttttccgttctttttttttttggattttggaatatttgc
-atatacataatgagatatctttgggatgggatccaggtctaaacacaaaa
-ctcatttatgtttcatatacaccttactcacatagcctgaaggtaatttc
-atgtaatatttttaacaattttgtgcattaaaccaagttttgacagcctt
-tgactgcgacccatcacatgaggtgaaattcttcttgtggcatcatgctg
-gcactcaaagcgttttgaattctggagcattctggagtttggatgttcag
-acgacagaaacccaccctgTACCGGAGCAGTTTGCTCTGCTTTTCTGAAT
-GTTGGAAAGCTTTCAGAGCAGCCTGTTAATGTGCACCTACTCTGCTTCAG
-AAATTCCACCTCCTTACATGTGGGAGGAAATCAGACCCTTGATAAAGGTG
-GAAATACACCGTTCACCCCAGAATTGGCCaaagaacaaactctagagcca
-gccgtcctgggtttgcaccctggctctgctcctgaccaggtgtgtgacct
-tgggcaagcggcgtgtgaccttgggcaagttacttcaccatctcgtgctt
-cagtttccttatctgctaagtggggtgattgctcatgttacagataatga
-aaagtcaatcaggggctggcacaacggctcacacctgtaatcccagcact
-ttgggaggccaaggctgatctccaaatccagcctggccgacacagtgaaa
-ccccgtctctactaaaaatacaaaaattagcccagcatggtggcacatgc
-ctgtaatcccagcttctagggaggctgaggcaggagaattgcttgaaccc
-gggaggtggaatttgcagtgagccgagatcgcatcactgcactctagcct
-gggcgacagagcaagactccatctcaaaaaaaaaaaaaaaaaaaaaaagt
-caatcagcatcaggtactcagaacagggcctgctcccaggaagtgctAGG
-AATGGGTAGAAGTACAGCTGGGCAGATCCTGCAGTCCCCACTGCAGCGCC
-AGGCACTCACTTGTGAAGGTAACAGAGGAGGCTCCACCGCCCTGGGACGA
-TGCTCCAGGGGTATTACAAAGTTTAAGGAGACGTCTCCCTAACAGAACAG
-TATGGCTGCACTTTTCTTTAAAATCTGGGCAGGCAGGAggccaggtgcag
-tgtctcatgcctgttgtcccagcactttggaagtccaaggtgggcagatt
-gcttgagtcccgaagttcaagaccagcctgggcaacatagcaagacttca
-tctctacaaaaataagaaataacaaaGATGATATTGcatagctgagactg
-gttaatttataaaggaaagaggtttaatggactcaaagttctacatggct
-ggggaggccgccaatcatTCAAGGTGAGATTTGGTTTGGGGACACGGAGC
-CAAAACCGTGTCAGTATGCACCGTTATCTCTCTGACGGGGTGAGGGTTTC
-CTTTCTGTGTCCCTGCATTTCCTCACTTGTCTACCACGAGCATCTTTTTT
-TCCTGAATCTAAGAAGACATGAAGGATCTAGGTGCCCATGAGGGTTGAGG
-TCTGAAGCCCTTTGATGGCCATCAGACCAGAGCTCCTGCAGGTGCAGCCA
-CGAAGAGCCTGGGCAGTGACCCTCAGTGCCGGAGGAAGCGTGCAGATAAA
-TGGCTCCCACTGGCCTGAGTCCAGGGTGCCCACAGTAATGCTGGCATCTT
-GCCCGGGGCTGGCGACCCTCCGTGCCCCCACCATCGGGCACCATTGTCAA
-GAGCACACCATCGAGACACTTGCTGCTGCTGGGAGCTCCCTCGGTCCACA
-CCAATCCTGAGAATACAGTCAGTGGAGGCCCCTGCGTCCTCTTCCATACA
-TGAGCAGAGGCTTCAGAGACCAGCGGCGGGGGCTTCAGAGGAAGTGGCAG
-AGTGGAAAGGTGGGCAGAGCCAGCTTGCCCCCTCCCGCAGACTGTCTGCG
-CAGTCCCAGAGCCCCAGAGCTGGAGCAGGAACTTGGGGCTAGTCAGAGGC
-TGCATGATAGAAAGGGGCCCAGGCATCCCCTGGGGGCAGAGACCTCATGC
-AGGTGAACCCCTAAGGCCAACAATGATGGCCCAGCAGGAATTGAGTTTGT
-GGGACACACCAGATGCCCATCAGGCAGTGGCAGAGCCAAGGGGTGGCCGT
-GAAGCTGTGCTGATGGAGTGCTTTTCAGTTGGTTTAGAGCAGGAGGTACC
-AGAAGGAGGGTGGGTGGGAGCAAAGCTATTGTGGCATGGTAGGACCTGGC
-TTGGTGAACTTGATCAGAAAGGCTAGAGATCTGCTTCTGACCCTGTGGTC
-CTGTCCACATGGCAGACTAGAAGGGGAAGGGGAGCCCTGTCCTGTAAGCC
-CCTTGCTGGCTCGGAAGCTTCCAGGCCCTGGGAAGGCCTTGACAGGCCCA
-GCCCCTCCCAACGAATGAGAGGAGGAGAGATGACAGAGCAGCCAGGGTGT
-GCGAGGATGCCCACACGCGACGGGAAAGGGGGACCCAGGGTGCGGGAGGC
-ACAGGGCAGGCCCTGGAGTCTGCCTGGGCACCACCGGGAGAAGCTGAACC
-CCCGGCTCTGGGTCTGGCCTGGGCAGGGGCTGGAGCCGCTCTGCCTTTTG
-CAGCCTCTGCTCTGCAGAAGCAGGTGTGGGCTGACTCCTGGGGGCCTTGT
-GCCGCCAATGGGGAGGTCCTCAGGGACACGCGCCTTGGTGTGCTGGGAAA
-GAGTGAGAATGGGACTGTCTCTGTGACATCTCAGGTGCACTGCCACCTTG
-GGATAATGCCCACCTGAGAGGAAAGCTGGAGGCAGCCCCACCTCCAGGCT
-TACAGGCCTGCAGGAGCTGGAAGGGGAGGCCCCAGATGCCCAGGGGTGTG
-GGAGCCTCACCTGCTCTCTGCAGGGCGCAGGCTCAGGTATGAAGAGGGCC
-GGAGTGCACACACATGTGCATGGGCTCAGGCTTGAAGGAACAAGCAAAGT
-AAAAGGAGTTCACTGGAAGCTTAAAAAAGAATGAATCAAAGAAATAAGTC
-TCATTCCCAATCCCCGCACAACTAATAATCAAGGAAATATCACGTTTCTG
-TTGTTGTAGAAACAGTCATTTAACAAAATATTTCATGAGTATTGAAATCA
-CTTGCTGTGCATCTCGGGAATCTAATCATTGTGATTAAGCCTAATGAGCA
-TGAGTCACCTGCACAGAAATAAACGGGGGGGCCGATTTCCGGTGAGAAGT
-GCCTTTGGAACCAAGTCCCTACCTCAGGCTTAGTGCCCCCGTGTTCCCAG
-TGCAAGGCTGTTGGATGGACAGGTGAAATGCAGATGGAAAAACGCAACTC
-TTTTCAAAAATGGAGCGGCCAAGAGTGGACGCAGGCTCTCTCTGACAGGC
-CTTGGTGATGGAAGTCTCACTGTGTAGGGGCTGGAGTTCTCCGAAGACTC
-TTTCAGTTTCACAAGGAAGCCTCAGGAAAGCAGCCTGATCAGGTCATCCC
-ATGACAAAGAGAAACAATAGCTACAGACAGCAGCAACTTCCTGAGACAAC
-TGACCCAGCATACAACAGACCCAAGGTACAACAGACCCAGGAGACAATCA
-ACCCAGGGTACAACAGACCCAGCAGGCAACAGACCCAGGGGACAACCAAC
-CCAGGAGAGGATCGACCCAGGGGACAATCGACCCAGGGGACAATCGACCC
-AGGGTACAGCAGACTCAGGATGCAATAGACCCAGGGTACAACAGACCCAG
-GACACAAGAGACCCAGGGGACAACCAACCCAGGAGACAATCGACCCAGGG
-TACAACAGACTCAGGATGCGATAGACCCAGGGTACAACAGACCCAGGACA
-CAAGAGACCCAGGGGACAACCAACCCAGGAGACAATCGACCCAGGGTACA
-ACACACTCAGGATGCGATAGACCCAGGGTACAACAGACCCAGGACACAAG
-AGACCCAGGGGACAACCAACCCAGGAGACAATCGACCCACGGTACAACAG
-ACTCAGGATGCAATAGACCCAGGGTACAACAGACCCAGGACACAAGAGAC
-CCAGGGGACAACCAACCCAGGAGACAATCAACCCAGGGTACCACAGACCC
-AGGAGACAACAGACCTGGGACACAGCAGAACCAGGATGCAATAGACCCAA
-GGTTCAACAGACCTAGGAGGCCACCAACCCAGGACTCAATTGACCCAGGT
-GTCCTTAGATTTTCAAGGACCCAAAAATACAACCATGTTACATCAAACTG
-TTCTCCAGCCTCAGAGAAACAAGGCATCAACCACAAGTCCAGAAATAGAC
-CAAAGAGCTAAAGCCATTGAATTTGGGTTAAAATCCTGAAGAATGCTGCA
-AGGTGGGCAAACAAGTTATTCATAATGTTGCCTAATCTTCAACATGTGAA
-AGAAGGAGTGAGTCGTAGCCACTGCACTAGCTCCTGAAGTGAGTTATTAT
-CAGTAAACGCACCATCGAGCCCCTGTGTGGAACGGACAAACCCCGCTGGC
-ATTCCAGGACTCTGGTTTGGAATGGTGCTGATGCAGATGGGGTGGGAAAG
-ATGTGAAGGGCAAGGGAGCGGCTCGCAAAACTCCCCTTTCAGCTGCCTGC
-AGGCCCTTCACAGCCCTCAACCTGCGCCGTAAGGGACCCCAGGAATGATC
-CACAGCTGCCGGCGCTGGCAGCCCTTGCAGCCCAACAACGGAGAAGCTGG
-CATGCTTGGCTGGAAAGTCAGTGGGCGCCCTTCTCAGTGCCTCTTGAATG
-TGTTTGAAATAGGAAAGGAATAAATAACTGTCATGTTAGATCCACTCCCA
-TCACAGTGGAAACAATCCATTTCTTACTGGAGCAACCTAATTAGGGGCTG
-ATAAGCTGCACATTCAGGGCGGGTGAACATTTGCTGTAATTCTTTCCAGG
-AGAAGGGACAGAAGCCAGTGCAGCTTTTATTAAGAGACAAAAATACCAGT
-ATCTTCAAGGAGTCGAGACCCCTCCTGCCTGCGCAGGTGTAGTCACCAAA
-CCCAAACCAGGTCCTATTTATGTAACCTGGGAATGTCGTGTGGCTCTCCC
-AGTCTACTCAGGATTCGGGAGCAGACGTGAGTACTCACTGCACAACAGTG
-GAAGTGACTATCAGCCCCTCGCCTTTGGGATGCCATTTGATCATTGATCA
-TTTCCTTTATTTACGAATGTTTTTGTTAATTGAAAACTATGACTGAGCAT
-CCACTGGGACTCATCGCAGGATCtgaggaatacttagccctaaattgagc
-cctgttctggacctgcctaacaaaagcaagaaccaaaaggaataaatagc
-ttccaactaactgaactgaacctcaaacaaatttaagaatatttatagca
-atacaatatatccagaaccttaggagactaatttcacactggatgcagtg
-gcttatgcctgtaatcccagcactttgagaggctgaggcgggcagatcac
-ttgagaccaggagttcaagaccagcctggccaatatggtgaaaccctatc
-tctactaaaaatacaaaaaattggctgggggtggtggtgtgcgcctgtaa
-tcctagctactgggtagactgaggcataagaatcacttgaacacagaagg
-cagaggtttcagtgagctgagatcacgccactgctctccagcctgggcaa
-cagagcaagactccatctcaaaaaataaaaacaaaaacaaaagactaaat
-tcacaatttctggcatccaataaatcaccaggcacccaaagaataaaaaa
-atacaacattgggagataaattcattgaaacgaactcagaactgacccag
-atgttagaacactaaaaagttattatcactgtattgcatatgctcaaaaa
-tttaagtagagacatgcaaaatacatacacacacattcaaatcaaacttc
-tagagatgaaaactgcagtgtgtgagattaaaaataccctggatgggggc
-tgggcacagtggttcacacttgtaatcccagcactttgagaggccgaggc
-gggtggatcacgaggtgaggagatcgaggtcatcctggtcaacgtggtga
-aaccccacctctactaaaaacacaaaaattagctgggcgtggtggcaccc
-gcctgtagtcccagctactggggaggctgaggcaggagaatcccctgaac
-ccaggaagtggaagttgcagtgagccaagatggcaccactgcactccagc
-ctggcaacagagcaagattccgtctcaaaaaaaaaaaaaaaaaaaaaaaa
-tccctggatgggattaatagattagagacattgcagaagaaaaAttcttc
-ataattgctcaaatttggaagcagtaaagatgccctttggtagatgagta
-gataaataaattagtacaattataaataaaataatattccagacaatgga
-atatcatccaagattaaaaagaaatgagctatgaagccatgaaaagacac
-ggaggcaacttaaatgcatattactaagtaaaaaaaaaaaggtcaatctg
-gaaaggctacatacagtctatgtataacatactgtatgacattctggaaa
-aggcaaagttatggaagcagtgaaaatactttttaactgccgagggttag
-tggggatggagggatgaacaggtggagcactgaggacttgagggacaatg
-aagatactctatatgatactataatggtgggtgcatgtccctatgtattt
-gtcaaaacccatataactgcgctacataaagagtgaaacctaaactgtgg
-gctctgggtaatcatggtttgtcaatgtaggctcatcagtggtaacacat
-gtaccattccagtggatgatgttgacagtgggggaggctgtgcatgtgtg
-ggggcagggggtatatggcaaatctctgtcctttcatcttgattttgctg
-tgaacctaaaactgctctgaaaaagtaaagtcttttttaaaaagtcaacc
-tagaattctatagtcaacaaaagtatctttcaaaaataaaggcaaagtac
-tttttccagcactcaaaagctgaaagcactcattacaagcagacctgcag
-tggaaaagtgttcaaggaaatcctttaagaacgaggaaaatgatgccaga
-tataaaaacataaatctacacaaagaagaacaagcagaaatggtaactgc
-acaggtaagtattttaaaatttattcttattgtttaactgtttttaaaga
-taattacttaaacaaaagcatgtaatgcaggggtcataacatgtgtaagc
-aaaatgtatgacaaccataccatcaaggcaggtagtggagaaattcaagt
-atactgttacaaggttttatactatacatgatatggcatattgtttgaaa
-atagactgtggtaagttaatgatatatactataagccctgaagcaaccac
-taatataacaataaaagagctatatataataagccagcaaaggagatagt
-caccaacaatatccacaagttatctttaaaaggtaggaaaaaattaaaaa
-tggaaaaagaaaaaaatgccaacattaaaaacagacagcaaaagcataga
-ctcaacctaacaatataatcacaataaatgtaaatggtctaaacactctc
-attaaaaaacacagattgccagatctatataaaaaggactcaaatataca
-cagatggcaagaaacatactgtaaatatggagacaaaaaaaaaataaaag
-aaaagaaacaagctatgccatttacattaatcagctttggctgccatagc
-aaaatattctagactgagtggctcaaacaacagagatgtattttctgaca
-gttctggacgttagaagtcccagattaaggtcctggacaatttgattcct
-gatgagggttctcttgaagattatctctttcttctgcatcctcacatggc
-ctctcctctatataggtgtggagagagaacattctgatatcttttactct
-ttttacaaggataacagctttatcagattaagacttccacccttattacc
-tcacttaaccttcattacttccttgtagatcttatttccaaatacagtca
-catcatgggttagagcttcaacctataaatttgagggtggaaaaaagaca
-taattaaggccataaaactaccctaacattggacataagaaagctatagt
-ggttatattaatattacacaatgtacattttaaagcaaggaaaattacag
-gaagaaataagactacgccatgaagataaagcagtcaatcaagagaacat
-agcaattctaaacatttatgcacctactaaggaggtgaaaaatctctaca
-aggagaactataaaacactgttgaaggaagtcaaagtcagatttccacaa
-atctgtggaaaaacattccattctcacaaatcggaagaaccaatattatt
-taaatggccatactgcccaaagcaatttacagagtcaatgctatttttat
-catactactaacatcatttttcacaggattatttttaaaactctaaaatt
-tgtatagaaccaaaaaaaaataagcctgaatagccaaagcaatcctaaac
-aaaaagaacaagctggaagcatcacactacctgacttcaaactatactat
-aaggatacagcaaccaagacagcatggcattggtacaacaacagacacat
-aaaccaactgaaaaaaatgtagaactcagaaataaagccacacacctata
-accatctgatctttagcaaagctgacaaaaacaaggagaagggaaagaaa
-tccctattcaataaatggcgctgggataactggctggccatatacagaag
-aatgaaagtgagcccctacctttcaccatatgcaaaaattaactcaaaat
-ggattaaagatttaaatgtaagagactcaaagtgtaaagaaattctagaa
-aacttagaaaatacctttactgacattagccttagcaaagaatttttgcc
-caactcctcaaaagcaattgcaacaaaagcaaaaattaagaagtgggacc
-taattaaactaaatagcttctgcacagcaaataaactattaacagagtaa
-atagacaacctacagaatggggaaaatatttgcaaactatgcatccaaca
-aaagtctaatatacagaatctataaggaacttaaacaagtcaatacacaa
-aaaacacataaccctgttaaaaatgggcaaaggacttgcactcctcaaaa
-gaagatatacaagcagccaacaaacatgaaaaaatgtttatcataacgaa
-tcatcaaagaaatgcaaatcaaaattataatgagataccatctgtcacca
-gtcagaatggctattactaaaaagtcaaataataacagatgctagtgagg
-ctgcagagaaaagggaactcttatacactgttggtgggaaagtaaattag
-ttcagccactgtggaaagcagtttggagatatctcaaagaaatctcaaag
-aacttaaaacagagctaccactcaacccagcaatctcattactggatata
-tacccaaaagaaaataaaatcattttaccaaaaagatgcatgtagtcata
-ggttcattgcagcactattcataatagcaaagacttgaaatcaacctaga
-tgctcatcaacagtggactggataaagaaaatggggtacatgtatgccat
-ggaatactatgcagtcataaaaaagaataaagtcatgtcctttgcagtca
-catggatgaagctggaggctataatcttaagtgaattaacacaggagcag
-aaaaccatggctgggtgcggtgtgctcacacttgcaatcctagcactttg
-ggaggccgaggtgggtggatcacctgaggtcaggagttcaagaccagcct
-ggccaacctcgtctctactggtgaaaccttgtctctactaaaaatatgaa
-aattagctgggcatggtggtgcacaactgtaatcccagctactcgggagg
-ctgaggcaggagaatcacttgaacctggaaggcggaggttgcagtaagct
-gagattgcaccactgcactccagcctgggtgacagaatgagactctttct
-caaaaaaaaaaaaaaaaaagaaagaaagaaagaaagaaagaaaggaagaa
-agaagaaaaccaaatactgcaagtcctcacttataagtgggagctaaact
-ttgagaacacatggacataagtgggaacaatagacaccacagactcctag
-cagggaagggagggagggggacttgggttgaaaaactacctattgagtgc
-tatgctcaccacctgggtgaaaggatctgtaccacaaacctcagcatcac
-acaacatagccatgtaacaaacctgaacatgtacctccatatctagaata
-tctaacgttgaaaTTATACAAAACAGATAAATAATAAAATAAGCAAATTT
-TTATTTTTTGTGAAAATAATAATTGTGAAAAAGTGAAAGAAGAAAGATAA
-aaaatacaagaagcaaaggctcaaagaaccaaaaggaaaaatagaaaaac
-agacaattacagttggagatttcaataccattctctccataactgacaga
-acaaatagacaaaaaattcagtaaggatatagatgtgaacaacaccacga
-gaggaacttgacctggtagatgcttgcagtacattctacccaacaacgag
-agaacacacattcctctcaccagcatttataaggatagaccatattctgg
-gccataaaataggtcttgataaattgaaaagcattcaactcatacaaaat
-ttgtcctctcaccataataaaactaaattagaaatcaacagccaaaagat
-atctggaaaattcaaacatttggaaactgagtaacacattcctaaataac
-ccttaggtcaagaaggaatcaaagtggggaataagaaagtattttgaatt
-gaataaaaatgaaaacccaacatataaacatctgttgggtgcctctaaag
-cagtccttggaaaggcacataaaatactaaatacctatattagagaagaa
-gaaaggtttgaagtgaatgaccttaacttccaccttaagaaactgggagg
-agccgggcgtggtggctcacacctgtaatcctagcactttgggaggccaa
-ggtgggtggatcacttgaagtcaagagttcaagaccagcctgtccaatat
-gatgaaaccccatctctactaaaaataaaaataaaaattagcccagcagg
-ggtggtgcatgcctgtaatcccagctatgcaggaggctgaggcagaagaa
-aggcttgaactcaggaggcggaggttgcagtgagccaatatcacagcact
-gcactccagccttggtgatgcagcgagactctgtctcaaaacaaaaaaaa
-aaaaagcaactgggaagggggaaaaggtaaattaaacccaacatacgcag
-aaggaagtaaataatgagtattacagcctatatcatagaaataggacaca
-ggaaaaatataacaattactgacactaaaagatagtctttgcaaagatga
-ataacatcggtagacctctagggagattgatcaggaaaaacgtagcagcg
-atgccatcaaggaagaaaggcgatgtcactagagactctgcagGAAGACA
-CATTATCCCAGGTGGCACACCGTGCTGATCCCACGCATCTATGCTGTAAA
-GGACAAATGACTCCCTTGACCTGAGGAGCATGGTGTCCCAATGGAGGCtg
-tggcagagtgtcactgtgttcctacctgggtcctctgggtcctcttcctg
-ggcacagaggaaaaccagtcttccttgtagttagacgtgggtcataaact
-gagttctggcccagggaatgcaggcagaagcgaggtaaagcaccacaagc
-cctgatccttacaagcatccttccacggtgccctcgtccctgctctACCG
-TTAGAAGCACGAGATAGAAGGAGGtgtcatgaactgaatgtttgtgcctc
-acaaaagtcccaggttgaaactcccaactcccaatgtgtctgtatttcaa
-gaagtaactaaggctccgtgaggtcgtaagggtagggccccgatcttatg
-gatccctgtaaggagagaccacagggagcttagtgcccatgtcccctctc
-tcctcatcatggaaggaggcagagagaaggtggcatctgccaaccaggaa
-gaggaccctccccaggagctggactgaccggcaccctgatcctggactta
-tcagcctctagaattgtgagaaaatgcgtttttgttctttaagccgccct
-gcctatcgtgtcgtgctatggcagccAGGCCTGACCACTGTGGACAGTGT
-TCATGGTGATTCAGAGAGGAGTGGCTGGGGGCGCACCCAACTGGAAATGG
-ACTTTAacccccatcagacagaactgcactggcctgtggaatgaggagaa
-atcagcctgtttcggtcaagctccagagatgtggggattattgttttggc
-agcgagaggcatttccctgactcatGGAGAAATTGGTACTTACCTTGGGT
-GTTTCCATTAAATAAGGAGGGAGGTGAGATCAGCTTCAAGGTCAGGCTGC
-CGTCTGGTAGGAACCCGAtgtaggagtccattttcacactgctgataaag
-acgtgcctgagactgggtaatttataaagagaaagaggttcaatggactc
-acagttccacatggctggagaagcctcacaatcatggtggaaggtgaaag
-gcacatcttacataggggcaggtgagagagaatgagagctaagggaaagg
-ggaaaccccttataaagccatcagatctcgtgagacttattcactaccac
-gagaacagtatgggggtaacagcctgcatgattcaattatctcccaccag
-gtcccctccacaacgcatagggattatgggagctacaattcaagatgaga
-tttgggtggggacacagccaaaccctatcaCCTGATTATCAGAAACTAAA
-AATATGTTAATGTGAACCAAGCAGAGGACACACATCTTGGAACTGTAACC
-TTCTCTCCACATTCAGTCAGTCCACGTGCCCACTGAGTCCGTATTTCCAG
-AGAAGGAGGTTGGAAAATCATGTGAATGGTGAGTGCTGGCAATTTGGCAG
-CATGTGGCAAGAGGTTGCAAGAAAGAGGTGGCCTCAGGAAAGCAATCAAT
-GAGAAGAGAGAGATCCCTGAAGTTCTGGCATTTGCAGAGTTTGAAAGCTG
-TACTGCCTGCATCTAGAGGTAGAATTTTCAAAACCTGAGCTACAAATATC
-AAGCCAAAGTTATTTTTTTTCCTCCAAAGTAATTAAGTCAGTCAGGGAGA
-GGTGAGAGTAAGTGGCATCCACAAACAAGTATACGAGTGAGATAAAATGA
-CTCAGGCTGAAGATAAGATGAAGGTCGCGGCTTTCTCCCTTGTCATCCCA
-AATACACCATGAGATTCACCATGGAGCGGAGATGGACGGAGTTTGGAAGA
-CCCAGGAGCTGTCTGGAGGACAGCCAAGGAGTCTCCATGCTCCCAGCGGG
-CGAATCTCCTTACTCCTCAGGAGAGAAAGAAACTGTTACTGTTGCTAAGC
-TGCTGGGATTTGGGAATTGTTTGTTAAAGCAACGAGCAAGTGTTACTCTG
-GAAAAGATGGAAGCAGAGGAGGGTGAGAGGCAGAAACAGGGGCCAGGAGT
-AGGCGCAGGATCCGTGCAACAGCGCGGCGGATCGGCCTTGGGTGGCTGAG
-AAAGAGGTTCCCTGGTGAAGAGGAGATGAGGTATAAACGAACACCCAGGG
-ACCACATGCTGTGTGCCAGGAACTGTGTCCCTGGCAACAGTGGATCAACG
-CACTGCAGGGAAGGCCCTGGGGGTGGGTGCGGAGCCCGCTGTGATGGTTT
-CTAAGTGCAGGCTTGCTAGTTGGGATTGAGTAATATAACCCAACTCATCG
-GCTTTCCATTGTACCAAGATAGAAATGATGGGCTGGGTCCACCTTCTCTC
-GTCACTTGAGCAGGTATAATCTGAAACAATAAATAGAAtttttaatatca
-tagattttattttagaatagatttatggaaacattgaaaagatagcacag
-aatgttcccctactccctgcagccgaaatcccctgctgttagcCAGATGA
-GTCCTGAGGGCTCTGGGCAGCTGAGAAGGTGGACAGTGTGGGGCTGTGTT
-TACAGGAGAGCTAGAGAGCAATTGCAGAGAATACTCACACTTAGAGTCAG
-GAGGAGAAGAGGGGAGGGACCAAGGAGACAAGCAGGGAGGGGATCTTAAA
-GTAGAGCCCACAGCCAGAAGTCAGAAAGCTGGAAACACTCGGGCATAAGA
-AACAAAGAGCCAAGGATGAATTTTAGTAGCATTTCGGTTTGTAAATGTGG
-GCAGGAGGAACTAGCATCAGAAGAGGACGCAGGTGCACAGACCTGCTGGG
-CCAGGTTAAGGGGGTGGCCAGGAAAAGAGGGGAGAAGGGACGTTCTGAGG
-GCCGTTTTCCACGTAAAattcattcatcttctcattcattcattcactcG
-GTGTCTATGGGAAACTCGGCTGTTTCACGCACATTCTGGGGTCACCATGT
-TTCTTTCACTTAACAAATATGGGAGGCTTTGCATGTCAGAATGAAGAATC
-CTTGACCTTCGTTTAATTGATAATGGGTCAAATGAAGGTTTCCAGGTAAA
-GGAGTGATAAAGCAGAATAAATCGCCTGGAAAGCAAGCTCCCAGCAACAA
-GGAACAATCACACAGCCTCCGTTCCTATGGTGTCCGCGCATCACGTCTGG
-CCTCGCCATTAGGGAGGatttatttatttatttatttatttatttattta
-tttatttatttattgagacggagtcttgctctgtcgcccaggctggagtg
-cagtggctcaatcccggctaactgcaagctccgcctccATTAGGGAGGAT
-TTAATAAGTACTTGGCCCATCCATGGATTATCCAAGTCTTGGCGTGAAAG
-GGTAGATGCAGGTTGGGAGTGTGGGAAGCGTGGACCAGGCATGAGGAGCC
-CCTCAGGAAGCTGTGAGGTAACCCAGGAGGGCGGAAGATCCGCCTGGAGC
-AGGTGCCCTGAGGATGCAGGAGACGGGACCCCAGCCCAGGCTGCTCCTGT
-CCAGGGCTCTCGGATGTTTCAAGGCTgtgctccccagagacactgatggg
-tggaggagggaggacaggaagaggaggaagccaagcaagggtgcaatttc
-aggagaaatttcacgggatgcaggttcagccgaagccttcgagggatttc
-tggagtacgCCTCAGAGATGTCCTGAGTCAGCTGAGGAGCTGGGAGTTCC
-TGCCCCACCCCAGCTAAGCGCACCCCGGGGGAGGGGCAGGATGCCAACTC
-CCAGACATCTCCAGCCCTTTGTGTGGGCAGACGATGCAGTGCCAGGGGCC
-AGGGCAGTCCCCCGGAGAAGGGCCGAGTGTCCGCCACAGCGAGGGGGAGG
-AAAGAGCACCCGTGTTGGAACAGAAAGGGGCTGGACAGGATCCAGGCAGA
-ACCTGATAGTGTCGGCAACAATATGCATGCGCGGGACTGATGGACCGTGA
-AGGAGAGGCGTGGAAGGCAGAGCCAGGATCTGGAGCCTGGAGGCTGGGAG
-ATGATATTAATGGGCAATGGAAGATGCGGCTGGAGAAAGACGACATTCGG
-GGCAAGATAACAAGTCCGACTTGGGAGAAAACCACCCACCTCTGTCCTAT
-AAATTAGGCATAAACGAGGTATTTATGGAATGCCTACTGGCTCCTGGCAC
-CCAGAAAAACAAttttttttttgagacggagtctcgctctgttgctcaag
-ctagagtgcagtggcatgatctcggttcgctgcaacctccacctcccagg
-ttcaagtgattctcctgcctcagcctcccaagtagctgggactacaggtg
-cacgccacaatgcccggctaatttttttttttttttttttttggtattgt
-tagaggctggtctaggagttccacgctggtctcgaactcctgatctcagg
-tgatctgcctgcctcagcctcccaaagtgctgggattccaggcgtcaccc
-accgtgcctgaccCGGAAaagcgatttctatcacaaccccatttactgtt
-catgtcaaccctattggggaggatgagaaaataggacttgagtttacata
-ttttactcaagttcagaaaaggtagcaaacgatgaggctgagattctaac
-ccaggcccaattaattccgaagcaggagctcctaaacactatgcAGTGTG
-CGTATTTATAGATTTTAAAATCAGTCGGCCCATCTGGCTTCCCCTTTCTG
-GGCCCATGGTCTTCTGCGGCTTCTCTCTGGGTGCACACTTCTTCTTGGCA
-TGGAAGGAGGCTTGGTCTTGACTCAGGGATTGGGAACGACGGACCCCTTT
-TTGTCGAAAAGCCCAGTGCTGCCCTGGCTCCGGCACCAGACACCCATTGG
-CTAGTTTACGATCTATTTTACTGTGATCATTTCCATGGCCAAGTGTCCAA
-AGCCAGAAAGGTTTTTGCGTCATAGTTTTGGAATATAAAATCAAAGAATG
-GCTGGAATATAATCATCAGAGTCCACGGCTAACCCGTTCTCTCTTTCTCA
-GAGGAAGGGTCTCCACTGGGCTCTGTCCTGGGGCAATCGGAAGCTCATCA
-CGGGGCTTCTGGCTCCCATAGCATCCTGGTTTTCTGTTGCTTTTATTCTG
-CTTTTTTTTTCCCAAAAAAAGTGAGTGTCCCCTTTTCAGATAGAATTTCA
-ATAGAGGGATACAGAGGAGGTATTGGAGGGAGCTGGGCAATTCTCTTCTC
-TGTGATCTACCTCCCTGTTTAGCACAAATAATTTTAGCTTGCTGTGAAAA
-CTTGGTCTTCTAACTCAATAAAGAACCTGTTTTCCATATTTAAAGTATTT
-TTATTTTCAGGCTTCAGGCAAAAAAGGTTTCTCTTGGCTATTTGATATTT
-TTCCCACATTTCTGCTTCCACAGGGGCCAGGCCAGCGAAGCCGGCCTCAG
-CGTGGCAGCATCCCACAGAGGCAGGTACAGCCACACCTGATGCTTTCATA
-CACTCCGCACTGTCAGAACTCACATTCCTAATCCCAGAGTTCCGCAGGGC
-CACCAGGATTCCCCTTCCCCCAGCCGGCCAGCCTCCCCTAACCTCCTCCA
-GGCTGCCTTGGTGGAGTCCACTCCTGGCTGTGGGCCTGGCATCTGACTCC
-CGGTGCCAGGCTCTGTGCCCCTGTGGCTCTTTGATTGCAGGCAGCAGGGT
-GTGGCTATGTAGCATCAGCAGGAGGCATCCTGGGCAGCTCAGACCCGGAG
-GGCTGTCCGGAGAGCCAGGTGAGGAGACAGGCAGGGGCCAGGCAGCTCGG
-GAGTCCGGGAAGCAGAAAGTGCCTGATGAAAACCCTCAGCAGCCCCCACA
-TAGGGAGCAAAAAGTGACAGGCACCACTTTGCATCGTCACACTTCTGCAC
-CCAGGATGAAAAGGCCCGAGGCAGCAGCTGCATTTGGAGAGGGCGAAGCA
-TGATGCCACATGCTCCAGAGAAGACAGTGTCCAGGGTAATAAGGAACCGA
-TGTTACCAGGAGGAGAGGGGTCACACAGTGTGTGGCTGAAGAGCCACAGC
-TGTCACGACAGAGCCAGGCCAGGTCCATCTGCCGCGGCTGTGCCCGTGTG
-CGAGCCCGTGACTAGTGGCGGATTCAACCCTGCTGCCCAAGTATACCAGC
-TGCTCTTCTCTCTCTGCTTGCCTTTCCCAGCCCCTGtgcacacacatgca
-cacacatgcgtgcacacacacgcatgcacacacatgcacaGTCCTTGTCC
-CCACACACAGTTTTCCTCACCTGCAAACACTGCGTGTGTGCAATTGTACC
-CCATAAACATTGTATGTGGTTATGTACTTTGCTTTGTAATTATGATTTTG
-AATGCCTCATAATATTCCTTCAAATGAGGAACCGTTCTTCACTAGATCAG
-CTCTCCACAGAGGGGTATTTGATCCAGGTTTTCACCGTGTGAAGAACTCT
-GCATTGAAAACACTGCTTTCTACCTGTGGCCTCGTCCTTCAAGGATGAGC
-TCCTTGGGGCCAATTCCTCAGGCCGGGATTACTTGGCAGTTGGTAGAGCC
-ATGTTTGTGTTCTCTGATGATACTCATAAATATTAAATCCAATAGCCATG
-GTGTGCCAGGGACTTTTCCAACactggctcttccactggaatttcagctc
-ctcagggtaaggctgggtgttctgctcatggctgtgtccccaacccctag
-aacagaacgactctcaggaggcactggaaaggtttgttgaatgaatACCG
-TAATGAATAGCAGCCTGccatttccagctgaggactcaggctcagagagg
-cctgaggggccatctgacatcatgtgactgtaagtgctgcagccaagcct
-ggtccccaaacatctatctTCCCCCTGGGCACACGTCGCCCTGCTTTCTG
-AAGATGTGGGGGGTTAGGTGAGCTCACAGCCTCCCGTACAGCCTGACTGT
-AAGGAGGCCCCCTCTACACCCCCCGACACCTGTGATGGATGCCCATGCCC
-AGGCAGACCTGCATTTGGGGGACATATGGGGAAGAAGGGAGGCCCAGGCG
-AACGTGTGGGGACCTGAGCTCATCCATCACCAGGAAAGTCAAGGGCACGA
-GGCAGCCCCAGTTCCCGCTGGCTGGATCCTGCGGGCTGCAGCTCCATCCC
-AAGGGACCTGGCACGGGGAGAAACAAAGTTCAGGGTGCATTCCAGAAGGA
-TCCACAGGGCTCAGCAGACAGTGCTGGGAGTGGGGAGCAGCCAGATGTAC
-GGACGCCTCCCCTTCCCCACCCCACTCTGGCCGCTGGACGTACAGAACCC
-GGAAAATGCAGCCCCTGTGATGTAGTTATACCAGCCTTCCCTGGCCAGAC
-CCCTGGCTTCCAGCCTGCCCCGGTCACAGCCAAGTTCACCCTTACAGGAG
-ACAGCGGCCGACCCCGGAGCCCTTGGTAAAGCAAAACAAGCCAATGAAAC
-AGACGTCTGGGTTTTCAGGACATCCATGTATCATCAGCGTGTTCTCCCCC
-AGCTCTCAAAGGAAGTGCCGACCACAGCTAATGAGGCCAATGATTGTATT
-CGGAAGGTGGAGTCACGCACAAACGGAGAGAAGCAGAGGCCACCGCTGCA
-GGGCCCGAGGGGTGGCTCCCAGGCCCAGGCAGAGCCGGCAGGAAGCGTGG
-CCCCGTCACCATCACAGCATTCAGGCGAGATTGTGCAATGGTGTGCAATG
-GAACTTGGACTCTGACCGAGAACGGGGCAGGGAATCCACATCTGATCCTG
-GGGGTCACCTTTTTCAGTTGGGATTTGGGGCAGAGGCCACTTTGCTTCCT
-GAGCCTGAGGGAAAAGGAGCCTCCAGCGCTGCTCCTGTCCCCGGTGAGAA
-AGCAGCAGGAAGGGAAGGGCCCCCTGCGCTTGGGTGGTGGGAGCCCAGGG
-CAGGCGGCAAGTCTCACCCTCCCTTTCAGCAAACCTGCCCAACAGCAAGT
-AAGACACCCACCGCGAGCTGGAAGAACCCGCCTGAAGTCACACCATAGGA
-AAGGGCCCTGGTCTCAGACAGAGCTTCTGTTCCTGAGGTCCCCTGCCTGC
-CGGGCGACGCTTGCTGCAGCCCGGGAAGCGCGTCTTCCATTGCTCTGTGC
-TGAGCACAGCCGCGGTGCGGGGCCTGGGTTGGGCCTGTCTGCCACGCCTG
-CTCATACCCCAGCCCTGCGCTGGAGCCAGGGTCCACAGGGAGAAGGGGAA
-GCACAGGGCACCCCAAGCATGTCGCTGGATACTCAGGCTTCAGAGCCCTC
-TAACTTTCTCAGAGACAGGAAATGGGACTCGGAGAAGTCCCAGTGCCACC
-TGTGAGTGACGTGGCCGTGCAGAGCTGGGGTGAGAGCCCCACCAGCTGTT
-TTCTGGGCTCCTGTCTGCACCCGTCACAGCACAGCTCCTGTTGGGATAGG
-AATCTCTGAGGAAAAAGCATGAGACCTGGAACAAATGCTCCAGAAGACAC
-CCCCAAAATTGTGCGGAGTCATTCAGAACCATATCCCTGATCCTGCTGTC
-ACCGGCAACGCCTCCCTCCTTCCTTAAGTTGGCCACCTCCCCGGCAGCTG
-TACAGCTTCTTCGTTCTCCAGTTGGAGAGCACAAGGGCATGCTCAGACAT
-GCACACGTGTACGGGAACACACACCTGCACCCTCGCAGcacacacacatg
-cacactcatatgtacacacatgtgcacacacactcacacaTGCGCACCCT
-CATATGCACCCACAGCTCTGCTCCTGAGCCCCCTGCCTTTCCATGTCACC
-AGCTTGCCTCCCCCTCGGACTGACTTCCATCACACCCGCCACTCCTTGCT
-TGCATGAAGTCTGAGCTCCAACCCAGAGCCTTCTTCTTTCTGCCTCAAGC
-CCTGCATTAGTGGTAGGTCTGGAGCAGCTATGTGAAAGCCCACTACAGAG
-GCACAAACTAGTGgtcccttgactttcttgcctgcagtgacctcctctga
-tctacccttgacccccatgcccaaggtcacagcttagctttgccatCCAT
-CCCCTCAGCTCCACCCCATCGATCTCCCCTATAAAAAATGCCCCACATTG
-CCAATGTCCTTGTTCAATGGTTCCCAGTAAAACTCCTCGTGGGTTTCCTG
-GAGCGCCATGGGGCAGACGGTTAACATAAGAAACCCTGTAGCTTCCCCTC
-GCTGCTCTCACCCCCTCAGTAGCTGAGACTCAAGCTCCCAAGGCTAGTTC
-CATTCTGGACAACCCCTAACTTCCTTCGCTCCTCTGTCTTTCTTCAAGAC
-AAAGACCTGTCCTTGGATTTTCCAGTCGTCATACTGGAGCCAGGCGGCCT
-GATGGACAACATCACAAAAGCACACAATCAGTTCTCATCCTGGCGATGTG
-TCCACTGCCCTGGGCCACACCCCTGCCCCATCCACTCTGGCCTCTTCTGA
-ACCTCCTGCCCACTGCTCAGCCTTGGAGTTCAGCACCTCAGCTCACCCAC
-ACGCCCAGCAGGGGCCTGGCCTTCTCCTTCACAAAACAAAGAGAAGCTTC
-CAGACATGGCTGCTTCTGCGTGCTGGTGTTCCAGACACCAGGCTGCTATT
-CATACCTGCACAATTTGATCCTCAGAGCTGTTATCCCATCTCCTAGATGC
-ATACCTCCATCTAACCTCCTGCAAAGCATCTTTTCagctgggtgtggtgg
-ctcacacatgtaatcccagcactttgggaggccaaggtgggtggatcacg
-aggtcaggagatcgagaccatcctggctaacatggtgaaaacccatctct
-actaaaaatacaaaaaattagccagaggtggtggcatgcacctgtagctc
-agctgttcgggaggctgaggcgggagaatctcttggacctgggaggcgga
-ggtggcagtgagcctagattgcgccactgctctccagcctgggcaataaa
-gcaaaactctgtctcaaaaaaaaaaaaaTTATTCACATTGTATTTTGGAA
-ATGTTCATGTGtgtataaaaagagagagaataggaagatgagcccccact
-aaccgtcacccagatttgttttgttttgttttgttttTTtgtctcagcct
-cccgagtagctgggattacaggcacacgaccacgcctggctaatttttat
-agttttagtagatggggtttctccatgttgatcaggctggtctcaaactc
-ctgacttcaggtgatccacctgcctcggcctcccaaagagctgagattac
-aggtgtgagccaccacgcccggccaccatcacacatatttaacggtttta
-aacacatgatcaatattgtttcagccacagccacactcactaatactcca
-aaatggattgtttaaaaataaatcctagacacacagtaattttatccaga
-agtactttggtgtgtgtacctctagaaaacaaggacttctttttagccca
-gctatgccatctatgccgaacaccttgatcatttccgaaaatcatctaca
-gtcctctccatatttgatagttctaccctctctcacactcgttattttac
-agacagttggttcaccaaacccagatgaggttcacacatttggtttctat
-gcctcttaagttctttcgatctgcagaggacatcttctgtgtgtgtgtgg
-ttttgtttgttttttagtttttgttgaagaaagttcatttgtcctataga
-cattcccacacactctcaagattctgccaaattttacccctgtggtgttt
-ctaacatattcctctgtccctgtattttctttttttgtttggttgttttg
-ttttgagatggagtctcactctgttgcccaggctgaagtgcagtagtgtg
-atcttagctcactgcaacctctgcctcacaggttcaagtgattctcctgc
-ctcagcctccctgctagctgggattacaggcatgagccactgcacctggc
-ttttagtagagacagggtttcaccatgttggtcaggctggtctcaaactc
-ctgacctcaggtgatccacccacctcagcctcctaaagtgctgggattac
-aggcgtgagccaccatgcccggcctctgtgttttctttaaattagtaact
-ggatcatggtcggactccggtttaaattttggcaagaAGCCCTCACCAAA
-GAACCTTTGATGTCCTTTTGACTGTGTCCCATCCATCAGGAAGGGTATCA
-GAAATAACCAGCCGTTGGCCTGATGTGCCTATCACACAGTTCCCTCTGCC
-TCTCACTGGGTCATTTTAGCAGCTGTTGTTGAAAATTGTGTAGATGTGTC
-ATTTCATTAAAGAGAGTGGGTGTGTGTGAGAGTGACAGAGAGAGAGGAGG
-AAGGAAGAGACCGGCTGGGCTCTGTCTTCCCAGCTGGGTCATGGTCTCGT
-TTTTTGGGATATCATCCTCCTTTGCTCAGTGTCCAGAGCCCAATGGTGGC
-TCCATGAACGTCCCCTGAAGAAGGAACAAAGGCGTCTGATAAGGGCTCAA
-AGAAAACCAAACACACAATGAATCCTCTCTAAATCACAAATAGTCACTTA
-AAATGCCATCTGCAGTGTTTTGCCATTTATTTATGAGTATTCAAATTCTG
-CCTCTTGGACGACATTGACAGAAAGCACATTTCATCTTTGTCCAGTGAGG
-AGAAACAGCAGTGAATCTCTTTAAGAATCCAGTGTGAGGAGTAAAAACTG
-GGGGCAGCGAAGGGTGGCATTCAGTGCTTCTGTGTCCTGGAAAAGCACAA
-TTCCACCATTCAAGAGGGGCTGGGGCCTGTGGCCTCCGTAGGTACCTCTG
-AAACCTCAAGCAGAGTTGTCTTCGAGAGCCCCTAGCAGGAATTGATAACA
-TAAACAATTTGCATGAAATTCCCTTGGGATCAGAAAATAACCTCCAggct
-gggcgtggtggctcacgcctgtaatcccagcattttgggaggctgaggtg
-ggtggatcacttgaggtcaggagttcaagaccagcctggccaacacggtg
-aaatcctgtctctactaaaaatacaaattagctgagtgtggtggcgggcg
-cctgtagtcccagctactcaggaggctgaggcaggagaatcacttgaact
-cgggaggtggaggttgcagtgagccaagattgcaccactgcactccagcc
-tgggcgacagagtgagacccagtACaagaaagaaagaagaaagaaagaaa
-gaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaaga
-aagaaagaaagaaagaaagagagagagagagagagagagaaagaaagaaa
-gaaaaaaagaaagaaagaaagaaaggaaggaaggaaggaaggaaggaagg
-aaggaaggaaggaaggaaggaaggaaaagaaagaaagaaaaagaaagaaa
-gaaaggaaagaaagaaagaaggaaagaaagaaagaaaaagaaagaaagaa
-aaagaaagaaagaaagaaagaaaaagaaagaaggaaagaaaggaagaaag
-aaagaaagaaagaaagaaagaaagaaaggaaagaaCCTGCAGATTCACTG
-CCCCTGGGCTTGGTGGGAGAAAGCGGTCAAGGCCCCATGCCTGGATGGTC
-TCAGGAAACTCAGCCCAAGTCCTTGGATTGGGGAACATTTTTCCCTGTGC
-TCCCCATCACTGTGGGGTTCAGACTCCAATTCCACTCACCAGCCCTGCCC
-ATGCGACCTCTGGGTGGCATCTAATTTCACATTTTTAGAAATCCTTAAGA
-CCATTTCTCCTTCTAATAAATGTCTCTCCTAGCTTGAAATATATACAGTC
-CAGGGTTATTGTTTTTTAGCATCTCGTAATTAGCAATTCTTAATGAAATG
-AGTTTCTTAATTATGCCAGCAACATCAATTCTGATGTAAAGTGCAAAATG
-TTGCTTTGATTCACATTCATTGGACTTCCCCCTCCAAAAATAAATAAATC
-AATAAATAAACCCACAGAATTCAATTTTGTCTGGCATGTTTATCTCACTA
-TAACATCCCATTGAAATGATGGGGAAATATCCCAATGAGGTGAATATTAT
-ATAGGACAGAAACTGGCTTTGGAGAGATCCGTGGAGGATGATATAGATCC
-CCAAGTCTCAGCGTCCTCAGGCCTTGGTGTCTGTGCTCAGCCACGTCTCC
-ATTCTTGTCATTTCCAGGACAAGCCGGGCACATGCTCTGGGGAAGCGGGT
-TACCCTAATGACGATTGCCATTTCAAGCTCCAGAAATCTGCTCGCTTCGC
-CCTCCAGGGGAAAGTTGTGTTCTACAAAAACCAAGTCATTGGCTCAAGCA
-AAGGAAAATGGAGAAGGAGGAGTGTATCCCTCATGTCTGCCTGTGTTTCC
-ATCACACTCCGCACGCCCTCGAGATGAGGAGGGCATCTGAATGCGGACCT
-GGGCTCGGTCCTCCGGGAGGGCCACGTTCACAGCCTGTGCTCCAGAGCTG
-GGGCACCGAGGGCAGAGACACGACCCTGGGGTGGGTCTGCAGCCCACACA
-GCCTGACGTGGGCATAAACCAGTCTTTGGAGGGGGGCCTCCCTCTGTCCC
-CGCCCTGGCACTGACTGTATGCAGGCAGCCTTCTGCCGTGAGCCATGACC
-ACGGCCACTCACTGCCCAGGTCTGGGCACTGATGTCCGGAAGGCAGCCTT
-CTGCCGTGAGCCGTGACCACGGCCACTCGCTGCCCAGGTCTGGGCACTGA
-TGTCCAGATGGCAGCCTTCTGCCATGAGCCGTGACCACGGCCACTCGCTG
-CCCAGGTCTGGGCACTGATGTCCGGAACATCTGAGAACAGAGAGCTTCTT
-TTCCTTACTGACCCCACCTGGGTCATTCCCTCAGCCCTGAACACACCTGA
-GGGGCCCTGGGGCACGTGCACCAACTGGACAGGTGTCATCAtctgctccg
-gctgccgtaactgtcacagactgggtggctcaagcagcagaactttaatt
-tttcactgtgctggaggccagaagtctgagatcaagatgtggccagggtt
-ggttcctcctaaggcccctctcttaggcctgcagacaccatcttctccct
-gtgttctccctgccacccttctgggtgtgtccgcatcctcatctcctctt
-cttacgaggacaccagtgggattggatcagggcccactcattatgacctc
-attttcacttaaccacctctttgaagaccctctctccaaacagtcccatg
-ctggggtgccggaggttagggcttcaacataggattgcaggggacaGGAC
-ACAGAATGTGACACCAGGCAGGCAATGTGTGTCCCTCAGGGGGCCTGGGT
-TCCGGGAATCTGCACCCAGATTGCACACCCCATGGAGCAGGAGCACTTCC
-CGACAAGAAACTtggcacaggtccaatggttggggctggtgtcctgccgt
-cctgggtggtaaaggaatttaccgagacggtcccaggtaaagaaaggcag
-gttggttagaggaaaagtgtgttgcaagggcgcagcggacagcacagcag
-ggaagggggtgtttgcaaagaggcaggggctgcaggatttgatggagtca
-tgccggaggggctacctaccgaggaaggtccttgtggcagcgtgctgttt
-gcagttagcgtccctcagaacaatcactgtcccccacctgggtccccctc
-ctcattgttgctaacttttcaggattccacaAAACTTTCAAGAGTTTTTA
-TCAGAATAAGGGTGACTGGACTCCAGGCAGGAGAGATGACAAGGAGGACC
-TGGGCTTTCTGTGTCTAGGCTCCCAGAGCTGAGAGAAGCAGACAGAGGAC
-AACACAGACCCCCGCATGGAGGGAGATGGAGGGTGCTCCTCCCCTAGCCA
-GGCAGAGAGCCAATGGCCCCACACCCACACGCAGCTCCACGGGGCCGCAT
-CAGCCACAAACAGGCAACTCCAGATGGGATCAGATCGGGACTGAGCCAGT
-GCCTCTTGGGAAAGCGGAGCGCCAGGAAGGACTGAGCCCAGCCTTCATCA
-GAATGGTATTCTGACAGCTTACGGAAATAGAACATTCGTGCATGAGACGT
-GAGCTTTGGGGTAGCAAGGCCCAGGTGGGTTCTCTGCTCATCACGTAACA
-GCTGTGTGAGTGGGGGAAGGGGCTCACCTCCCAGGCTTGGAAAGTTGTGC
-CGCTTGTTATGAGTATTATATATTGTAGCTAAatttccagttccagcaat
-ggggtagaataaataaactaaaacaattcttcttaaaacataattcacct
-agaaaagcaagataaaacataataagcacatgcttttaactgaatggctc
-agctcaaaaaagaaaaagTCAATGAAGGGAAAGATGCAGGAGTGAGCGGA
-GCGGGAGAGGAGAGAGTGGGAGAGGTGAGAGCGACCTCTCAGCGTGGGCA
-CCCTTAGCTACTCTGCAGGGCGCTGGGGCCTCTGGTGAACCCAGGAGGGC
-TCTGCCTTCATCTTGGCCAGAAGATGAGCCCCTGTGACATGTGAGAGCTG
-AAGCAACAGAGAGTCAGATCTCCCTGACCCAGGCCCTCCGGGGACACATT
-TTGCCTGCCTGGTGTCACAGGCtgtgtcctattccctgcaatgccatgtt
-gaatccctaacctccagcaccctgggatgggactatgtttggagagaggg
-tctttaaagaggtgattaagtgaaaacaaggccaGGGATTCCGTCAGGCT
-CCAGTGCGGTCCCAGTCCCAGTCCCTTGCACGCCATCCTCAGCCTTTCTC
-CGGACCACGGCAGCCCCACAGCTGCGTGCAGCACTCGGCCAAGGGGGTGC
-AGCTGAGAGGCCCTGGGGGCAAGAGCTCCCCACAGATCTCTCTCCTATTA
-GCTTCCCTTTACGTCCAGCAAGGGGGCTGGACACATGCGTTCCCAGGTCC
-ATGGTCCCCTCCCAGTTCCAGCAATGTccctctcaggcctcaacttccct
-ggctcccttcaccgttgcagaaagttgagtttctatcctgaacctcttcc
-cccataacactcaGGACACTCCTGAGCCTGGGTGGACGTGCTCGGGTGCT
-ATAATGGGAGCAAAAACGGATGCAACAGGCTGAAGAGCAGTTTGGGAGCC
-TCAGGTGAAGATGCTGAGACCCAGGGAGGCAGTTTCccggaaacaaccta
-aatgcccagcagcaggtattcgcagaatgtgtgttatatttgcacgaagc
-aatgccatcaatatttaaaatgaattaactcaatctacatgaatatctat
-gtacaagcataaaacccaacgcgtgttgagcaaaatgggcaagttgcaaa
-agggaagatgacatagttccatttacagtaagtcttaaaacaatgaaaat
-caatagtacatgttgtttattatatacacatacattatagaaatacaaag
-TATGAATGTGAGACACAGAAGTGAATTTTAAGAGGCAGGAAAAGGAGTTA
-TATCAGATAAACAAAAAACGATGGCATTTAACtaaattataatatatttt
-ttatttttaaaaatGCTTTGAAAGAAATAGGAAAGTGTCCCTAGCAGACC
-TGGATGCATGTTGTTATATTATCTTCCCATGCTTGGAATATGCTGCTAAA
-CATTAACTTCGCATGCGTCATTCACAGCGTAATCGCAAATGCCAAGTGCC
-TGGCCCAGAAAAAGCACTGGGCAAGAGTTGTTTCTCATCTCTGTCATTCA
-ATGAGCTAATCAATCACCAACTCAGCCAAATGTCGTTTTGCAATTGCCTC
-TGTTTTTAATTTTCCTCTTGTCATGTAGTAATTTCACATTCTTAATCTTa
-tttatcaattttaagaggcatgaaaggatccctgtcatttgaccccaaac
-aaggaattttgagagggcatcctaagaaattattcaatggaagagaaaaa
-ttatactcacaaagatgttcacagttgcactgtgtgtaatagaaaataat
-tTCTCGGGGGAACACAACTCTGTTGTTGCattttataattttatttaaaa
-aaCAAGCAGTAAGGAAAGTAGTAGGTGAACAAGAACAGTAAAATATCCAA
-CTCTGAAAAATCTGCATCCATGTGACCAAGTCAGGCCAAAAGCCTGGAAA
-TGGAAACCGGCAAGATTTGTCACACGGTGGAGTTATGAGTGTGGAATTAA
-TTTTCCTTTTTCAAAATTGTCATACAACATTTTTTGCCGATATAATAATT
-TTAAAAAGATGTAACAAGAGGTTTTTATCAGTTAAAAATTGTTGCTGTTA
-AAATATGCCAACCCTTTACAAAACATTTTAATACACaatgcactttttat
-tttttaaaaatttccaatttacaaacatgttgcaaagatagttacagaga
-atttccatataccccacacatagttccctctgttattaatcttatagtca
-catgatgcagttgtcacaagaattgatgtaatatttactaaccaacaatg
-agccaatattgattcaatgacccaatcgtgatacaatatgattctttatt
-ttgagacagagtctcgctctgtcatccgagctggagtgcagtggtatgat
-ctcggctcactgcaacctctgcccagtgagttcaagcaatcctcctgcct
-cagcctcctgcgtagctgggattacaggtgtgtgccaccacgcctggcta
-attttttgtatttttagtagagatgaagttttgccatgttggccaggctg
-gtatcgaattcctgacctcaggtgatccacccacctcggcctcccaaagt
-gttgggattacaagtgagccacctcgcccggccgatacaatatgattaac
-taaagttcctactatattcagatttccttatttttttacctaatgttcat
-tttctatgccaggacaccatccgtagtacctcattacatgtactcatcac
-atctccttgggcacatcttgtctccgacagtttctcagattttctttatt
-ttttgacaaacttgacagttgtgagttgtactgatccggtgttttgtaga
-atgtcttccactgggatttgtctgatgttttcctcatggcttgacagggg
-tgatgggtttggagaggaagaccacagaggtgatatgccttcttgtcacc
-tcagatccagcatattaacatcagtaggcgctgtcatcattggtgcggag
-ctagatgatctagctagaagagtgtccatcagatgtctccactatacaac
-tgttccttttccctcctgcccacaccgaactctttggcaagaagtcactg
-tgggaaacccacacttgaggggttggggagctttctctacatctttttga
-gagtggagtttctacataaattatgtggaatcattccgcatgagagattg
-atctctttcaccttacttatttgttagtttgcctgtgtctttatttgttt
-aatcatgtatttctgcccgtatagactcatcgatgtttgctttacgcttg
-gttgtcatacaatactcctttgtttctttcattgttctcattgttctggc
-tttggccattgggagctctttcagttggttcttgtttctctggaacatag
-tcccatccttgttggtttgctatgagcacttccttactttatggcactac
-aagctgctcctggctcatcttgcatatttcctgccccattcttggagtca
-gacatttctcctggttctgtttattagagaaaggcatgagaaaccaaatt
-tcaggcatcaggtgcagtcattgctatgagggtaccatcgtttccaggcc
-tcctcatctgaggagcaagggaatgtacatgtgtgttctgacccgagtat
-gtgcatgaatccataaatattctctatgtaaccatctatgtctataatga
-gctaaacctgagttcttactgatggctccagctctcatccattgccatgt
-ggatcattagagcctcttctccctgcttctctctacacccccactccaac
-atggtaaaacttagcacccattttctgctgctgtttacttggtttctcag
-ttttagtgcacctgtagagtggtattagtattgttaacccatacccttat
-gggacataactttatcagtcagagtgcagtgctatgtacagtgtctttta
-cccttagtctacagactctatccatttccaaagttactcacatagctctt
-tctctatccatttcccaaagttacttaagcagctccttctctatccgttt
-cccaaagttagttaagtagctccctctctatccatttccaaagttaccta
-tgtagctcttctatccatttccaaagttacttttgtagctcattctctat
-ccatttcccaaagttacctatgtagttccttctctatccatttccaaagt
-tacttaagtagctccttctctatccatttccagttgcttaagatagctcc
-ttctttcagtaagcttctttcacacattggtaatacagttgaactcttgt
-tgttgtgctcattccatcctcacatcccttcaccacttaaagttattttt
-aaaaataggctgggcacagtggctcatgcctgtaatcccagcactttggg
-aggccaaggtgggtggataattggaggtcaggagtttgagaccagcctgg
-ccaacatggtgaaaccccatctctactaaaatacaaaaattagcagtgcg
-tggtggtgcatgcctgtaatcccagctacttgggaggctgagacatgaga
-atcactcgcaccaggaggtggaggttgcagtgagccgaggttgcactact
-gcactccagcctgggtgacagggtgagattctttctctcaaaaaataata
-ataataatgatttttattcattaatattcatttcttgttttgtaaagaca
-tgtaggttttgataaaagcatggtgtcatgtatttgctattgcaatatca
-tgcagaacagttcaccatcctaaagatgtacaatacttcatcttttcagt
-acttcctccacggaagctctgacaactcctgatctcttcacccatctgtc
-tagttgcgtcttttccgttagtcatataattgaaatcacgtagtctgtta
-ccacttcagactgacttcttcaactgagcaatatacatttaagtttcttt
-tgtgtgttttttgtggcttgatggctcatttatttttattgctgaataat
-atttcattgtacaatgtaacaggatttgtttatccattcacctaccaaag
-ggtatcttggttgctctcagcttttgatgattatggagaaagctgctata
-aacattcatgtgaagttttttttttttttgcatgtgaacatatgttttga
-aatcaggtaatatctaagaggatgattgccagattgtatgttaagaccat
-atgtaactttttaagaaatagccaacttgtcttttaaagtgactggatca
-ttttgcattcccttcagcaaaacatgagtgtttctgtttctccacatcct
-catcaatatttggtaatgtcagtgtttaggattttagccattctaatagg
-tgtgtgtggtaacttattattgctttaattttaaattatttaataaaaaa
-tgattgcgagcattttatatgattatttcccacctgtatatgttctttaa
-tgagatagctgttcaggacttttgcccatttttttaaattggaaacttag
-ttggcattttacaatttgcattttctcattgttgagttttacaagttatt
-tgtataatttagatacaatttacttatcagatatatgatttgtaaatgtt
-ttcttctatttagtaatttatctttttcattcttttacagagcaaaagca
-tttaattttaatgatccaacttaccaatgttttttcataaatgatgcttt
-tggtgttttatttaaaaatgtatcaccaaagttaaggtcaaatatatttt
-cacctacgttttcttctagaaattttataatttgcattttacatgtttgt
-ctattattcttttgagtcaaattttgtgtaagatgtgaaatttgtacctg
-gattcttttttttcccccattaaattgccttcaatgcctttgtcaaaaat
-cagttgactatatttgtatgggtctacgtatggactctacattctgtcca
-ctgatctattatttttccaaatctgcttttatttccgtagctttataata
-attcttgaaattgggcaatgtgattctgccaacttttttttcttcagtat
-gattttgactattttatgtcttttgcatttctatgtaaattttggaatca
-aatttgttaatttctacaaaatatattgctACTATTGAACTACTACTACG
-TTCTTCGAACACGCTTCTGTCCCACCCTGACTGACGGATACAGATCTTTC
-TGGCCCCTGTCCCCTACTTTCTTCTCCAGTGGCAGACTCCCCAGTCTCTT
-TCCTGGAATCACTGTACCACACTGGTGATGAttctccctgccagggtcag
-acaagaaggctgaacagggctggggtgaggagaaatggctgtcctctgcc
-cagacaaagattcagaattgcctttggcaaagtccttgccccagagcggg
-ccttcattgtggagaaagctctggggaggtatttctccatgatcagtctt
-tccttcccctgttcataatgcaaggggatctttctctgatcctcactgtg
-agaacccaatggggtttctgcagggaaggagggtaaagatgtgggggtcc
-ccaggactgcagctcgtaggagttcctccctctcagccagcccacacctg
-tctccagcaatctgtcaaaattgccattcatgtggtcctactggctgatg
-gcttcagggccataagctcaggtaagcaaatctgagctgtgtctctctga
-tgtctccagctctccagattctgccctgtgatctccattttctgatgagt
-cctgaaaagctgttgatttttagattgttcaggttttCTCATAAGGAGGA
-ATGACAAGTCCCTGCCAGGCTCAGGGGATTCAGAAATGTCAGGATCTATG
-CCCTCATGAAGGTTTCTTCAGAAGGAGAGAGGGTAAGATGGAGAAGGAGC
-ACTCGCTTGTGTAGTGCATTGCTCTAGGCATGAGCTACCCGTGCAGTTCT
-ACTCCACCATGGACAAGAGTTGCCTTAACCTGGGCCTGCCTTGTGGGTGC
-GGAAAGCTTTCTGGTGGGTTCAAGTTTCAGCTGAAGGTTGAGGTCTTGTA
-GGCTAAGGACTCACTTGTCACCCCAACATGTAAAAGCAGGGAGGAAGGAA
-ATTATTCCAAGTGGAGGGGATCATAGTCAGGAACATCTTGTTGGTGCTGT
-GAGATGCTAGAAATGTACACAAAGGCTCTGTTACAGAGAGAGGGGTTCTG
-CAAAGGCAAAAGCAAGTCACTTGGGTGCTTCGGTCTTCCTTCATTTCACA
-AATGTCTTAGGTGCCTTCCACACTGGCCTCGTGGTGGGGGCTCAGCAGTG
-CTTCTCAGAAGCCTAATTGGTCTGCTCTggttgtttggatgaatcttttg
-attcaacagtccctttagggaagtgttttttgtttttgtttttgttttta
-ttttaggcggagtttaactcctgttgcccaggctgcagtgcaatggtgca
-atcttggctcactgcaacctccacctcctggattcaagtgattctcctgc
-cttagtctcctgagtagctgggactacgggcgcccgccaccactcatggc
-taatttttttttttattttttatttttagtggagatggggtttcaccacg
-ttggccaggctggtcttgaactcctgacctcaggcaatccactcgcctcg
-gcctcccaaagtgctggcattacaggcgtgagccaccaagcccggctgtt
-gctttgtattgttttgtttttaattttacaagcaattcattctgtgtatt
-tttaaaattaatttctggtttaatgcattagaataactgttatttttgtg
-gtctaacatataatctctattttgcatatgtttcatagcaacttgaaagg
-ataaaataataattcatgcaatacaatatttgatagagatgctttcatgt
-aacgtttttagttaaactattcaaattcattaggtccttaatgtatacat
-tgtctatttgatcaaagcctgggagaaacataatctcctataaatggatt
-tctgcccacttatatctacatttctaaaagtatttttagtatatttagat
-gttggcatttagcacaaaatgttcgagactgatacagccttgttgaacaa
-tatcctttctttccaaaaaataatgtttctcttttttcgttaaatgatgg
-ttgccttgcatttggcctttgttgtaaatgactatttcaagccttccttt
-cttttcctttgcttTTCTCCACAAGCTTCTCCTGGAGTTTCCTCCTGAAC
-CTCcagctgttgtgtggtggatgcattttgtggtcactaaaaccggggct
-tccattctggctgagctacttcagagactcgtggttggaggaacgtcact
-tcattctccaagcctgtttctttacttataagatgggggcaataattgct
-atacataaggttgaattaaatgagcgaatgaatttagggtccgtctgtga
-acagttactgacTGAGTGATTCAGTGGTGAATAGCACACTCACACACAGT
-CTTCCAGGAATTTGCAACCCCGCAAGCGGGCTGAAAGACTGGCATCAAGC
-ACATAGTTGAAATATTGTATACAATGTCTCAAGCACGTAGTTGCAAATGT
-TGTAATCAATGTCTCATGTGCAAGGTGCCATCTGTAAAAACTAAGAGGTC
-TCAGGAGAGCTTGTGAGAGAAGTCCAATCAGAAAGGCTTTGAGGAggccg
-ggcgcggtggctcatgcccataatccgagcactttgggaggccgagacgg
-gcagatctcgaggtcaggagatagaaaccatcctggctaacacggtgaaa
-ctccgtctctactaaaaataaaaaaaaaaattagcctggcgtggtggcgg
-gcgcctgtagtcccagctactccggaggctgaggcaggagaatggcgtga
-acccaggaggtgaagcttggagtgagccgagatcgcgccactgcactcca
-gcctgggcgacagagcgagactcagtctcaaaaaaaaaaaaaaaagaaag
-aaaGGCTTTGAGGAAACGTACCATGCTTCACACAGTAAATCGTGGTACAT
-GGTAACTTTTTCGTTATCGAAACTATCATTAAAATAGCATTTTGTTTTCT
-GTATGCTTCTTATAAATGGGCCTTATGGTTTACCCTAATCTGCTAATCTT
-TGTCACGGAATAGGAGAGTTTAACTTATTAATGTTTATTGTCATAAAGTA
-ATATTTTTGTCTTTCTTCCGTCATTAAAAGACAAAGGGCATATTGAGAAA
-AACATCAGCAACAACTCTGGCAAAGCCTTAATATCCTCCACGTTTAAGGA
-GCATTTATCCACCACCAGGAGACAAATGGTTTGAATGGGTAAGTCACAGA
-AGTTCTAaacatgtgaaaaacattcagcctcacagagattttaaaatgcg
-aataggagcaattatgaaagttttttcacctttcaaattggcagtttagc
-aagacaatatttgatgttgggaagagtgaagtgaaatggtgatatttttt
-gctgctggtggaaatagaaacctgaattgcctctcaaaaggaatgtggtg
-atctaagagacgagagttaggagtttacactccttaataccatcacgctt
-ccaaaaaccatcctcagagtagctcagagatgcaggcagagatgttcacg
-caaggatgttcaccgcagCTTTCACAAATGAGCTCTCAGCCACCTGAAGG
-AATCTGGCCGGGAGAAACAGCCCAGCACAGCCCAGCCTTTCATAGGGATA
-TTTAGCTAAATATTAGGGACCTCCTTCTTCCTGCCGGACACCAGTTTCTA
-AAAAGTGTATATAGATTTGCAAGTAAAAGATTCGGAATTCTGAGGGAATT
-TGCTCAGGAGATTATAGATACCTGCTTTCTACTGAAGAATGCATTCAGTA
-ATGATCAGATACGAATTATCCCCAGTTTCCTTTTCTAAACCAGTGAACAC
-TTACAGAGGCCCACACGGAGCTGAGGGCTCCCCAGCACCCCCCACCCCCC
-GCCCTTTTTGGGAGAGGAGTTTCTCTAAGGTCAAGAGCTGTGGGCCATGC
-TCTTGGCTCCTGCCCTGGGTGAAATCTTCATCCTTCCCAAAAATGATCAT
-TGATTTCTCCTTTAGGACAATCAGAGGCAGTCCCAGTCCTGCCCTCATGT
-GAGGCCGGCAACTTCAGAGCATCCCCGCTACCCGCCACTGGCCCAAAGTA
-GGGCAGTCCTCCTTCGTGGGCGGGGGTCCCAGTCCTAGCCCATTTCAGCT
-GGGCAGCACACTGATTTCTGCCAGGTGGCCCTCAACATGTTCTCTGCCCA
-CAGCCTTTTCCTTCACTTCCATGAGGTCCCTGGAGGCACAGGACAGACCC
-GCAAACAGGAAGAGCAGTGGGGCAGGCCACAGGCTGGCACCCAGCACCCA
-GCCCAGGTGAGGCTCCTCCACCCCCAGTGGGGCAGGCCACAGGCTGgcac
-ccagcacccagcacccagcacccagTCCAGGTGAGGCTTCTCCACCCTGG
-CCATAGTCCTGGGCAAGGCTTTGTGTgtctgaggattctaaattcaaacc
-tcagcttccaggcggctatggtggcacatccatcaaggttggtgatcaga
-acacaacacgcccagtagattcctagctcagatgttcagacatatacatg
-tgggcctcttttcctcttTGTGGGCCTCTTTTCCTCTTTGTGGGCCTCTT
-TTCCTCTTTGTGGGCCTCTTTTCCTCTTTGTGGGCCTCTTTTCCTCTTTG
-TGGGCCTCTTTTCCTCTTTTTGTCCTTTTTCATCAGGTCCCAAAACTGTC
-ACAGCCAGATCTGCAAGAGCTGCCCCTTAATGTGAGACATGGCATCCAAG
-CATTCTTTATGACATCGTCTAAGATCAAAATATATAACAATTAAAAGTCC
-TCTCCTATGTCTTTTTATAAATACTTTCCAAATTGTCTAAAAGAATATAT
-TGTTTTTCATGCTCTATATTTCAGCAGGCGAGTTCTATTTAAACGAAGAA
-AGAAAGCACATTCCAGATCCTTTTGTTCATCCAGAGACTTCAGGTAAAAA
-TTGAGGCAATTAAATTATGCATCCTGGCGGCTTTCTCTCACCGTCAGCAC
-GAGTCGAGATTTTTTTTTTTTTGAGAAGTAAAACATGAAATTCAAAATGT
-ATCTCGAGTCACAGCACGATGGTTTACCAGATGAGTCAAGAGGAAGACCT
-CCCTCCGTTCTGTCATCAGGGCTGCCTGAGGAGGGCACCAGCCGGTTCTC
-CAGCAGTCAGGTCTGACAGGCTGGCAGCCTTCATGCCATCCCCTCGGCCA
-GAGGCTCAGACGCGTGCAAGAATCACGTGGACAAGGAGGGCCGGTACTGG
-TGGGCCTTGAACGCCAGGCTAAGCCATTTGAATTCAATTTTGTGTCCAAT
-TAGTTGGCTTGCTGTCTCTCAGGAAACTGCAAGGACTTTCACAAAATGCA
-GTTTGATACGCAAATTTATGTTTTTACACGAAGTGGTTTGGTTGCCtaca
-tatatatttatatatacttattatttaatattatatgtattatttatata
-tatatatatatatTGCATTTTAAAAATATCGTCCTTATGTCCCTTAAACT
-GAAAGCGTAGGTTGGGACTCAAGCCAGGGAACCTTCGCAGCTCACCTGGG
-TTTCTCTTCCCACTCTTGTGTTTTCAGGGCAGCGTTTATACAACTATTTG
-CTGAACTGATTAGGTGTGAATTCCAAGCTGATAGCTCTTCATCACTTAGC
-ATTACAAAACTGTATCAAAGCCCCATGTATAAACGTGTTTTTGCACTTTC
-CTTCATCTTTTTTCATACTTTCTTGCCCCAAGAAAAACTTTTTATCACCT
-CCCTAAGGAATTTAATAGCTGTGAATTACAAACCCAACAGCTATCACAAC
-TTTCTTAACATTTACTAAGAAGCCAGAGTTGATTGTTTTTCCTTCTGTAA
-ATTCAACGTCAAATGCTTACAAAGTCGAGCACCAGTAAATATGGAGGCTT
-CAAATGAGAAGCTTCATCCTTAGGAACAGCCAGGATATAGGAGACTTTCA
-TTTTCAAAGTGAGTTCATTGTGTGTGTCTACGGAGGTGTGTCCCAAAACC
-TCTAAAACCCACAATGCAACAATTAAGCTGTGCTCTCTCTCTTCCACCCT
-TCAAAAACACCATTTGACTTACGACTTTGTGTCACCACTACTTGTAGAAC
-TGAGCAAACAGGAAACACAAGCCTTGTCTTCACATACGCTCACACAGTCT
-GCGGCGAGCACACCATACAGAAATTCAGGATTTTATTAGGGAAAGCTGGA
-GACAGGGCAGTTGCTTTGTTTTCTCATCACAGACACGTCTGGATTCCCAG
-TTCATGTCGACTTAAATTCCAGCCTAATGAAGGTGTGGACATCCGAGCCG
-GGCACCCATCCTCTCATTCATCAGACAAACCTCCAGCCAGCACCTCTGAC
-AGGTTTTCAGCAGTGTCTCCGAATAAATGTTGAAAACAACAACTTCCTAA
-CAAGCAGTAAGCCGGTTGGGCTGACTGCATTAATCTATTAGCAATTAGAT
-GATTGCCATCTGCAGTCTGTGCTGTTGTCTGGAGTTGAATAAAGTCAAGG
-CACACGTGTCGACATGGTCAGGGAACTCCCTGCTATTTTCAACATGCTCC
-TTGAAGCCCAGCCTGAGAACTGCTGTCCTTTCCTGTAGCCTGGTATCTGT
-GGACAGTGAACAGTCAACGCGTGAGCTAATAAGCATATCACCAGCCTTGG
-GACACTCAGCAGGATAGTGGCAGAGATGAACTCCTTGAGCTAGGACCAAG
-CAAAGCGCAGCTCCCTTCCCGATGGCTGGGCCAGAGGCAGCTGCTGTGAC
-TCTTGGGAAAAGTTTGAACCACACCCCTGAAGAGCCCTCCACTCAGGACT
-GGGAAGGGCATGCACGAGGGGCTGAAGGGGGCTCCCTGTGGCCATGGCAG
-AGCCCTTGGGCAGCTGAGGCCCGCAGCCTCCCTGGCCTCATCGCCCATAG
-CCCCTCCTGTGGCTTCTGATGGAATCTGCAGGGGAGGGGCGCTGAGGGCG
-GGTGGCCCACTCCATCGAGTTAATGCACACAGCAGCCAGCAAAGGGCCAC
-ATCCATCGTGCAGGCGCAGACACCGAGCAGAGCCCCAGGAATCAATTACC
-AGGAGGCCGCAGAGGCTCACTGGGGGCTGGCTCTGGCCACAGACCATCAT
-GCACCATCCCATTTAATTCTCAGCAGCCAGTGAAGGGTCCATGTGACCCT
-GCCTTTGATGGTCAGCGCCTCCAGGGGTGGGAGGCTGAGCCTCTGCCCAA
-AGCGGCTCAGCTCACCCCGGCAGCTGGAGGTGGGCCCAGTCTCCTGAGGC
-TGAGGCCCATTCCCCCTGCTCTGCTTCCTGCCTCCCCCAAAGAAGACATC
-TCTGCAGGAGGCTTGCAGCCCACCTTCGAGGGCAGAGCCTGGGAGCCCGT
-CCTCCGGGGGACTGGAGCAGGACTCGCTCCGGGCACCCTTCCTCCTGGGC
-TTCTTTCCACCGTGCTATGTTCCCGGCTCACTGAGGCCGGTGGTCCCTGT
-CTCTGAGTTTATCAGTGGCCATGTGCAAATATGGGCCATGGTGACTGGGC
-TTACAAAGCCAAGGTGTTTAACCTGGGCTGGCAAATCGGGAGGGAGAGGG
-GTAAAAGTGTCATTCAGTAAAGAAGGCCAAATAAGGATGGGGGATTTGAG
-CTGATTTCCAACTGCAAATAGGCATCAAATCCAGGGGCGACATAAGGGAG
-AGGAGTTCCAAGACTGAGGTGGTTCTAGGGTGTGGGATCTGTGGCCAGTG
-GTGTGCTACAGAATCAACCGGGCCAACATGTTAAGTCCCCGACATGCCCC
-TAGCACACTAGTTTGGGTATATTCATAGgtgctatttttaaaaaattagt
-acatgatgagttgaacagttaaactgactttttaaattgcagaatgtctt
-ggagctcttgcaatactagtgtgcacagtcatctctaagaaaggggcatt
-gcctgctctgattcacaaacttattaggccaggaacCCTGCTTTCTGGTG
-TCTCCTGTGGGATGCTTCTGGAAGATACCGAATGAGGTCTTATCTCTCCA
-CTATGAAGCGATGCGGTGTCAGGGGAGACTCCTCATTGGACAGTCCCAAG
-TCAAATCCTTTATCCTCACACAACTGACTATATGATCATGAACTCTGGAT
-CAGCAGTTCCTCCTCGGGGGAAAAACCATAGTATCTGTTTGGCAAGCTTG
-AGGTCAGACTTGAGGATGTGCACACAGCACGTCATGAGTCCTCCAGGGAC
-GGCACCGTCCACCTGGGCTCACTGAGCAAGAGATGGAATGGTACAATTAT
-CCATCTGAAGGCAGGGTCCCTCTCCATCCCTAAATTCTGGCTAAACACTT
-TTAACTCAATACCTACTTCTGCTCTTTTTATTCTAAAAGGATTGTGAGCC
-AGGGGAGAAGTAAATTTACCCAGCAGATACTAGGAGTCCGTTAGATGAAA
-TGTCAATTATTTGATAAACCCCTTGAATGAATCTGAGGGCTGCCCTCTGC
-ACTCACCAGCAAGCTCCCTGAGGACTGGGTAACCCCTGTACCAGGCCCCG
-AGGAATCCGGGCTCCAGGCCTCGGTGTTGGGGGAACGGCCTCGCCAGCAG
-GTATCAACACGGAGGAGCAGAGATATTTCCATGGCGCGTCAGAGGATTTT
-TTTTTTTTTTGCAGGAAATAAATCTTCAGAAGTGAGAATTCTAATTGAGC
-CGAGTTCAGGATAGCCAAGTGTAATTTTAGCAACAAAAGTAGAGGGTTCC
-AGAAAAAGCATCTCAGGAACAGTCAAATTAAGCTGCAGGGAGATAATTGG
-ATGGAAGGTTTGGTTAGGCAGCGCTTTGAGTGTTGAAGGGAAAAAAGAAT
-CTTTGGGCAGGAGGAAGTGATGTCTTCTATTGTAAGGATGGGAAGGGATA
-CGGAAGAGGCACATACTGAACGTTTGAGGCTTGGGGAACTTTTATTCGAA
-GTTTTAAGAGTCTCAGCTGAAAATTATCTGTGAAAATGTGATCCACTTAA
-ACCTGCCTAGTGACAAGGTCTGCATCTTAAAAGTTCTCATTTTGACATAA
-CTATTCCTGCTCCCAGCTCAGATCCCAGAACTTGCCTAAGGGACAGGACC
-CCCTCCTTCCCTGCTGAGCAAACTCCCTCCTCCCAACAGCCGTGACCCAG
-GGCCCTGCCATTTGTCCTCAGTCACCTGGATGGCCCTAGGGAGGCCTTGA
-ACTGACCAGAATGACTCCATCCCTTCACCTCATCcccccgtacccaacaa
-agtgcctgacatgcagtaaactctcaagaacatttaataaataaGGGGCA
-TCATTCTCATCACaataatataataaataataataaataataattttgta
-ttaatCAGGTTTTTGTCCAAGGAATTCGAAGAGACATTTTATTTCTCTTT
-ACCTAGTTCTGCTGTTCTTATTTTAAGGTGGGTGGGGTTGGAGGAAGAAG
-AAAATGTACGTACACAGACTGTAAGTCCATTTGGTAAAATGCCTACTATT
-GAATAAACTCCTTGGAAGCAAGCTGGCGTTCTGAACCCAAGGGTTTCGAT
-GTTCTATCTAGAGTCATGTCAACTAAACAAATGCTTGATCCATGGTACat
-tcgcttcctagggctgccattaaaacttaccacgacctgcgtagttccag
-aagccagaagtccaaaatccaggtggcagcacgttggttccatccagaca
-ctctgagaggctgtgttccgggcctctctcccagctttctgtggtagcca
-gcactccgtggcactccttggcttgtagatggtgtcctcttccatctcca
-tgtgacctctggtgtcctcttccatctccatgtgacctccttttctttct
-gtgtcttctcccttctcctcttctgtctctcataaggatgcttgtcactg
-gattcagggcccatttggataatccaggatgacctcacctcaagatcttt
-aatttcttagcatctgcatggacccctttccaaatagggccatatttaca
-ggaggagcaggtggacagattttggggctccaccattcaacccaAACCCA
-TGGCTGAATTGCTCACCAGCTAAACCATGATTCAACAAGACAATCAGAAG
-GAGGGTCCAGGGGAGCCTCATGTCACAGCTCCACACTCATTGTTGAGACG
-ACAGCCCTCAGGGACTAGAAAGCCTGCATTATGGCATTTGACAGAGACAT
-AGGATTTCATTATTTCAAGCTCCCTGGAGTAGATCCAACAAGGCCCAGAG
-ACCGCTCCTCCTGACGTGTGACATGTCATGGTTCATGGTGTCTTTCCATG
-CTGAGAGGGGGTGTCACCACAGCTGCAGAGGAAACCTTTGCCCGTGGACC
-ACAGGGAAGTGCCAGAGGATGTTATCTGCCCTGCGATtcccccagtgaag
-catcactgttgagaagttttcagaactgactgtgaagcaaggattcactt
-ttcttaccatactggtgtgtttctcctagtgtacaggaaggacgtgttac
-tggctgaatttgctttttccagtaagatgcttagtgctggccgggtgtgg
-tggctcatgcctgtaatcccagcactttgggaggccgaggcaggtgatca
-cctgaggtcaggagtttgagaccagcctggacaacatggtgtcagcacat
-tggttccatccagtctctactaaaaatacaaactacaaaaatacaaaaat
-tagctgggcatggtagcacacgcctgtagtcccaactactcgggaggctg
-aggcaggagaatcgcttgaacccagaaggcggaggttgcagtgagccaag
-atcgtgccactgcactccagcctgggtgacagagtgagactccgtctcaa
-aaaaaaaagaaaaaaaaaaaatgcagctcagtgctgtatgtgagtctccc
-atttgatgccgatccaggatccaagtcctaaatattttctttcccatctt
-cccatggtctgacctctaattctgacatttttccagatcctaacacatga
-ttattttgttatactttttcttctaaatgatttcaggtattcttgtggaa
-tgaATGAAAGGTTGGCTGGATGGATCAGTGCAGGATTATGtggatagatg
-gatgggtgaaggattatggtggatagatggttgagtggcttatggttggg
-tagatgggtggatgatggatgtacagatataagggttgatatgggtgaat
-ggattagtggatgagtgggtaggtgggtgaatgaacagataggtaaatgg
-atgtagagatggatagatggatgggtgggttagtggatgggtgaacagat
-tggtgggtgagtaggtaggtggatgaatgagtggatgggtgaacggatgt
-agagatggatagatggatgggtgggttagtggatgggtgaatggattggt
-ggatgagtgggtaggtgggtgaaggagtggatgggtacatggatgtatag
-atggagagatggatgggtgggttagtagatgagtaaatgtgtagaaggag
-gggtgagtgatggaaggagtaaagtggtggtaaggtagatggctggatat
-ttggatgtttggatagttgggtggatggCTAGTTTCCAGAAAGAGGGTAC
-TTTAAAACCATATGGACATCTGATTCCATTTTAATGACTATAAATATTTA
-AAATAGAATTATAACTGTTGGTCAAGATTTATCAAACTGTTCAACTTACC
-ATAATTCTTTGATTTTTTTACATAATTCAAATACGTCATTTTATTTTCAT
-TTTTGTTTTACCGACATTAATTTTGTGGGAATCAATTACTTTGGTTTGAA
-TTTTACAAGTATTCAACAACAATCGGTGTGGTCATACAAATCTTCTGCGA
-TTATACCAATGATAAACACTGTACATTTTCTTTTTAGGTGCATTCTTTCT
-ACACAGTTTAAAATTTCCAAGTTAAATTTTGCATATTTAAAGTTTTCAAA
-AATGATAAGAATACATTTTACTGTGTGAAGCTTATTGCCTGACACATTTA
-TTTTGTGTTACTTCTACCAGCAATATCATCATAAAATAAATGAAATATGC
-CTCTCTTAGttcttttctttttcttttttttttttttctgtgacagagtc
-tcactctgtcacccaggctagagtgcagtggcgcaatcttggctcactgc
-aaactctgtctcctgggctcaaacgattctcctgcctcagcctcccaagt
-agctgggattacaggtgtgcaaccatcacgactgactaatttttgtattt
-tcggaagagacaggggtttcaccatgttggacaggctggtcttgaattcc
-tgacctcaaatgatccatctgccttggcctcccaaagtgttgggattaca
-atcgtgagccaccgtacccggcGTGTCTCTTATTTCAAAAGAAAGTTGTG
-AGAAATTTCTCTCTGATTTCCAGAGTTACTCTTTGGTTCAGGATCTATTT
-ACCTTCCTGCCAGTGTTTGGGTTTTTTTTTTTTTTTTTGCTTACTTGTTT
-GTTGTTGTGTTTGAGGGGGTTTTGGAAGACCAAGAAGGGAACAGAGGAGT
-TAAACAGCAGAGTTGGCACAGCAGGGCCAGGCTGGCTGGGCAAGGGTTCC
-TCTGGAGTGAGTCCCCTGGGGCTCGTCTCTGCAAAGCCCCAGGGCTGACT
-GTGAAGGGAGGAGTGAGGTGCTTAtttcttagagggacagacagcaaacg
-tggtcagcttcgggacaacatggtctttgtcactactactcagctctgcc
-tttgtagctccaaagcagctgtagatagatggggaggggctgtgtgtcaa
-taaaactttatttataaaaccgggcagagggccagactcagcccacaggt
-catgctatgcaggtccctgCTCTAGAGGGTCCTCGAGGGTCACCCGTGGA
-GCTTGTGAAATGAGGTCACATGTCACAGTCACTTTCTGAAGAGGAAAGAA
-AGGGTCGACAGAATACATGCATACATCCACACATGTAGCAGCATGTCTGT
-CTCCAGGGACCATGAGACAGAAGCAAGGACCGCCAGGAAGGCCAGCATGC
-TCCTGCAGCCTCACTGTCTCCTGCCCCGTGCTGCTTGCAGCCTTCATGAT
-TATTAATGCCAAGTGGACAGCCCTCACGGCAGAGACGCCGCCTGGGGCTG
-CAGCCAGGGACAGCAGAGTGCCTGGGCACTTCAGTTGGAGTGGATAATGG
-AACAAGTGAAAAGAATGAAAATGTATCTTCCTCTTATTTTTCAGCCCTGT
-CCGGGATTAAAAAGCACTCTGGTGTGCAGCCTCTGATTCATAGCTTGGCT
-ATTCTTTGGTGGAGTTCCCTAAATATTTTGTAGCCAGCTTTGACTTGGAA
-ATGCAGCCTTTGAAATATCTTTACTTGACCGAGAGGCCCCTAGTGACATT
-AAAATAATGATTATCACATATTTTGCATTTCGTTAAAAAGAGTATTGGAA
-TAATACCACACGCATCGGTCTCACCAATGAAGGTGATTTAGGAGCAGGGC
-TTTGATTTGGAATGGATGGCGGCGGGGCCTCCCTCCACCTCCCATAAAAG
-GCCTGAGAAGAAGGAGGACTTCATCTTTACACACGGCTCTTCTGTCTGGA
-GGGAGCCTTATTTCTCCTTTATGCACTTTCAGGAACTCTGCTGTTTGCTG
-AATTTATGAAGTGGAGAGAAGGGACCTCGCTGTGCCTGCAGCCATGTGAC
-CCTCGGAGCTTCCCTCTGCTGCAGGACCAGGGCACTCGACACTGACACCC
-TCCATTGCCGAGAGTGTCTCCGGATGGGACGTGAAGGCAGGCGACAACTG
-TGATCTTCCTTTATGATTGCAGTCCCCCATCCGCTCACGGACGCTTGACG
-CTTTCTTGAGCACCTGGATGCGGCAGTGACACTTCCAGGCAGGTGCTGTT
-GGAGCAAATAAGCAGGTCCAAATCCCCGCCCGGAGCTGCTGCCCATGCCG
-GGGGAGACACTCAGGACACAGACTGGCAGATAACCTGCGCTGAGGGACTG
-GAGGATGGGAAGGGCTCGCTGGGGGAGGTGTACAGCAAGATGGGCCGGGA
-CCCCGGGGGCAGGAGTGCAGTCGTCAGTAGGACAGCCAAGGCATCCCTAG
-AAGCTGGCACTTGGACCAAGCCAGAAGGGAGTGAGGGGTACAGGCAGGCT
-GACCGCAGGGGCAAGAAAGCAAGCGCCAGGGTCCTGAGGCAGGATAGGGA
-GTGGTGGGTGCCCTGGAGTGGTAAGGATGAGGACAGAGAAGTGGCAGGCC
-CGTGAGCATTGCTGAGACCTCTCAGGTCCTCAGGGAGAGGCAGGGGCCAG
-GGAAGGCCTTGGGGCTGACAAGCACAAGACCCACCTCTCTTGACTCCCTG
-GAGGAGCCCACCAGGAGGAGAGAATCTGAGGCAGCCCCATTCCACCCACA
-CGCCCACCCCCTCCAGCTGACTGCTCTAGCCAGACTGAACTTCTTCCAGC
-TTCCTGAATGTTCTCTCCACCGGGGCCCATGGGCTTCCCTCCTTTCACCC
-AGTGACTTGCTCTTCTAGAGGCCAGAGGAGCCTCACAAGGGATGAGCTTG
-CTGGGCATGGACATCCACCGGCTGCACGCAGCAGGGACAGGTGAGCCGCT
-CTTCCGGGAGCCCAGGCCTCCCTGTGTGCACTCTGCCAGGCCCGGCTGCT
-CCTCCAGGATCGGGGAGCGCAAGATCCACTCTCATGGGCTCAGGACCAAG
-TGGGTCCCCAGGCAGCTCTCAGGGTCACTGAGGCTTCCTCCGATCCCGTC
-ACCGTATCCCCAACACCCCAAACGTGTGCCTCGGGCCAGAGACCTGCTTG
-GACCAGCCCAGCAGGAGAGCAGAGGACGTGGGGCTGACAGCCTGGTTCTG
-GTCCAGTGGGGGACAGCCTGGAGTGCTCGCTGAGGAGGCAGAGATGACCC
-TGAGGGTCCTGGGGAGATGTTGCCATGCCCAGAGGGACCCGGACAGGAGG
-GAGGCACTGGGTGTGTTTCCTCCCGCATCGGCCCCGGGCCGTCAGGGGTT
-CAGAGAGGTCAGCTCCTGGGAAGTGCCCAGGGGGGCTGAGGATGGCCATG
-ATCTGAATGTCCGCTTGGCTCACCAGGTGGCCCAAGAAGCCCTATAGACG
-CTCATCCTTGGAAGCCTGACTCTAGGCTCTGTCCACCCTGAGCCAATGTC
-TCTGACGACCAGCAGAGTAGCCAGAATAGGTTCAGAATGGCTGTTCAAGG
-GAGTGTGTTGGCGTGCAAGTGCAACCTTGAACAGGTGGAAACGTGTTTGT
-CATTGTGCCGGGAGCTCGGCCCGTAGTGGCTGGAGCAGCAGCCAGAGGCC
-TTGGTCCAAGGCAGGGGCGCAGGAAGGACCATCCCTATTTCTCTGAGATT
-CCCGAGTCCTGTCCAGCTGGACTTCAACTGGGTCAGAGCCACCCTTTGGA
-GGAGTCCTCAGTGGTGGTTCACCCCCAGGAAATGCGCCCTTGAGTCATGA
-GGATGGCGTCGGACCGGTGACCAAGGCCGGGCTGTAATAGAGAAAGCTCA
-GCAGAGCCTTGGACCCAGTAATGGAGAAGGCAGAGCACAGACAGGATGCC
-TGACAGGCTCTGTCTCCAGGAACACAGGAAGGGGGACACAGGACATCAGG
-GACCTCCAGGAAGATGGCACATTGGACCCATTCTGGTTGCTCTGCTGGTC
-AGCAGAGACATCGGCTCGGAGGGGGGATAGACTCCACCTTCCTTACACAC
-TTCCTGCTCCCATGGGCTGCCCTCTGCTGTGTATCCTACTGCATGGCAGT
-GAGCACACCTGGGAAGGGCACACCTGAGCAAGCACACCTGGGCAGGGCCT
-CCCTGTCCCAGGTACCCCCGCTGCACAGGGTCGGGATGAGTGCTGCTGCC
-TGCCCCTGGAGTGGGTCTGCAAGTGATTGTGGGCACAGGGGATTCTGCTC
-TGCATATCTAACAATTATTCCTTCCCTGCAGTCCTCCCCAAGATCAAGAG
-TTGGGGGTAAGCAGGGACTCCCCCTCTGCAGCCTCAGAACTCAGCTGCTT
-TCATCAAACCAACTCTTGCTGCAGGACCAGCACGAGGCCATCTGTCCATG
-GTGGGCCCTCTGGCTTCCAGTTCTTGGCAGGCATGCTGTCCAGCCAGAAC
-CCCTCTGAGAAAAAGGTCAGTGTGCCTGAAACCCATCCCACGGCAGAGGG
-AGATGGAGGGACTTCAGTCCCAGTCTCGCATCATCCCACTGCCTACCCTG
-AGGCATCATGGGCAGCCACCAGCGTCTCTGCATGTAGCCCAGGACCCTGT
-GGCCATCTCCAGGGGGTGGGGGTCACAGTGTCGTGCGCGTGTCTGCACCT
-CAATGCTGAGCACTTTCTAGAACTCTCATAACTCTGGATGGATTGCACAT
-GTGACCTTccaggcagtgtcccaaagctctgtgtgtgctgggtcccttaa
-tcttactacaatccagtaagggagggactgtgtgaccccagctgcaaagc
-agaacactgaggcacaggggagtgaagcccccggcccgataacgaagagg
-aggagcaaggatgtgagcagacctgctgaggtctggtgcgcttggccaca
-agccatgctgGAAAAGCGCTTGGGCTGGATGAGCGGATGTGAGCAGCCCG
-CAGGGGGAGGGTGCCCACAGGTCTAGGCCCACCTGGTGAGGAGGCCACTC
-TGCTCGCTGTGGGTGGGCGGGAGGAGGATTTTACATGCTCCACCCTTTCC
-ATGGCGAAACACCCCTTCTTGTCCTCCCTCTCCCTGCCAGGCCCTGCAGT
-GACTGCTTTCTATGCCTGAGACCTGCAGAGAGTGGGTCAATAGGGCTGGG
-AACAAAGGCCCCCACTGATGGGCAGAATGGATTTCTGTCAATCTGCAACC
-AAAACAATGGCTTTGCACGTGGGGTTTCCATGGGCAGGAGCTAGCCTCTG
-TAGAGAGCGTGAAGGGTTTGCAAACACCGGACCTGAGGACCTGGAGCCCA
-AGAGTCACGGGAAGAGCTGGGATCATGGGGTGTCACCTTCTAAGCcagtg
-gctctcagagagggtcctaggaccagccatcagcatgacccaggaacctt
-ctagaaatgcacattctcCTATCCCCAGCCTGGGACCCAACCCACCTCCC
-CATTCCTGAGAGGAGATCAGGGGAAATGAGGAAAGCAGAGAATGCTAAGG
-CCCCAAAAGCCCACCCAGAGATGCCCCTCCTGGTCTGGAGAGAGTCAGTT
-TCTAGTCCATCTGGCCATTTGGAGGCTCAGGGAGGGGAGGACGTGTTGGT
-CTTGTTAAACACGGGACAGTGACCCACGCACCGTGTCACAGCCTGGAGGA
-AGTGAGGCAGCAGTCAGTGTGTCCTGGGGCCGAGGGCTCCCGGCACCCTG
-GACCCAGTGAGCTTCAAGAACACAGAGGGTCTGCAGCCCTCAGTCTGCAC
-TCATGGGCCCGGTGTGCCCTCACCACCTCCAGGGGGCCAGCATGTGTAGC
-AGCGCCGTCTGGGAACTCCGGGTGTGGAATGCAGGTGCCCTTTGGGGTGA
-TGAATCCCAGGCAGGATGCGGGTGCCCTGTGGGGTGTTGAATCCCAGGCA
-GGATGCGGGTGCCCTGTGGGGTGTTGAATCCCAGGCAGGCTTTCCGGCTG
-CATTGCTGGAAAGAGGCACCAGGAAGGCACTAGTGGCCTCGGCAAGGCTG
-CCCTGTGAAGCAGGATGAGCAGCCTGGGGTGTGGTGTGTGGCACGTTGAC
-CGCCCTGTGTGGACAGAGGCAGTGGGCAGCCAGGCCTGTGGGGTCCTGTG
-ATCCCTGTCCCCCTACACCTCTCACCTGTGATTCTGCCAGCCTGCCAGGC
-CCCCTTCCTTCTCACCCAAACCTCCGCCCCTTCCCTGTTCCAGAGAGAAG
-CTGGGCTTTGGAAGGAGCTGCCGAGGAGATGAGACCTTGCAGCTACCTGG
-CCTTCAGCAGCATATTCCCCAGAAAGGAGCATTGGTTGAACTGGAGAAAG
-GCAAATAAGAGAAACAGGCCCAAATCCGTCATGCAGGGTAATGAGTTGGA
-TTTATAGAAAAGGAAACACAATATGATTCCGCGTAATGGCTGTTGACAGA
-GATTTGGGCTGTTTGTTCTAGGATATTAAATTGACAAACAGCGAGGGTTG
-CTGGGCTCCCGTCTCCAATTCGCAGGTGCCTGTCAAAAGGTATGCGTTTC
-TGGGCACCAATCAGAGGTGCAGAGATTTCCAGATAAGGAGAATGTGCAGA
-ACGGCCTAGGAGGCACATGTGTGACCAAGATCTGCATTTCCAACGCCTCC
-CGAGAAACCCCGCGCCACAGATGAGCTAATCTGTGAAGGAAGCAGGGTGG
-AAAAGCTGCCTCTGTTGTTCCCAGAGAGAACAGGCCGCATTTTTAAAAAT
-TTAATTAAGGCCTTAGATCAGGTTTGCGTAATTAAATTGCTGCTGTGAGT
-AAGCAGTGTGATAGATGAACTCCTCTCGGTGACACTCGGTGTGAGGTGAA
-AAAGGGCCCTCTGGCAGCTTCCTGGGTGATCCTCATGCTTTAAATTCCAC
-GCCTGCATCTCAGATGTGAAAAATGCTCTCATTCCATGCAttgttttgtt
-ttgttttgttttTCAATCTCTGAAGAATGTTCTCTTCATGAGTGCAAGGA
-AAGAGGAATAAAACCTGGATAATTTCTGTGATCTCAGGACATGTCTACAC
-AGCCATCTAGCTGCAGATCCCGGCTGTCTACACAGCCATCTAGCTGCGGA
-TCCCGGCTGTCTATACTGTGATGCGGGGACACTTGTCATTTCGGAAGGTT
-GCTAATGAAAAGTCAGAAATTTCCCAGAGACCCCACACAAGCTAGAAAAA
-TGGGCCGTTTGCATGAGAGATCCTCCGTCAGCAATAATAACTTAGCAGGA
-GAGATTCCATACGATGGGAAATGATTGTTTGGATGGTAATTTGCTTAGGG
-AAATCAAAAGGAGGGAGAGACCCTCATGCTGGAGTCAGTTTCCAATGAAA
-ACCAGGAGGATTGCATCTGGTTCTTTAAGGTAGGCATGAAAGTTCTCggg
-agaaagaggagggaggaaggagggctggagagagggaaggatggaggaca
-agagagagTGGCAGGTGGCCTCATCCCCGGGGCTCTTGGGCTGGAGCAGA
-GATCCTGAAAGCCATCGGGTGCCGACGAACCTCTGCTGGGGTCTGAGCCC
-TCATCCCCGGGGCTCTTGGACCAGACCAGAGATCCTGAAAGCCATTGGGT
-GCCGACAAACCTCTGCTGGGGTCTGAGCCCTCATCCCCGGGGCTCTTGGG
-CCATGTGGCTTTGAGAAGTCGATGGACACATTTCTGGGGAACAGGCAGAG
-AACAGGAGAAGCCAGTATGAGCCACCTGAGAGCTGGTGGGCAGAGAGATG
-CCTTCCTGAGGCGCAGAATCAGGAGAGTCCAGCTGGGAAGGGCCGGCCAG
-GGAGCTGTCCAAGTCCCCTTCTGGAGGGCTTCCACTGCCCTTCCAGGCTG
-GGCCTAGCACTCTGCAGTTGTCTGCCCCCAAGAGACGCTCAAGGTAAACT
-GAGGCCTCACTGAGCAGGAAAGACTTTCCTGTTAGGGCCATTCAAATGGG
-GTCAGCTTTTGAATGTATGGAAAGGCTCAGGTACAAAAGCTGTGTGGACC
-CCGTCTGTTGGCAGTGCTGAACGGGAGACCCATAACAGAGGAAACCCAAA
-GGAAAGGATGATTGTTGTCATTCTCTGAACCCCAACAAGATGAGGAGCAG
-TCTCTGAGCGAGAACAGTGTCCCCCACCTCTCGTGGCCCTAATAAACACC
-TGTGGAAAGGAACCGCGTTAACTCTTAGAGACCCTCTCACCAGAAACACC
-AAGGCCAGGCTGCCGGTTCCAAGGCCTCACAATCTCAGGGACGTTGGGAC
-GCTCAAAGTGTGGCTTGTCCAGGTAGCAGTGGGCTATGATCCACCTGTCT
-GTGGGCAAATGGGCCGTTGAAGAGTTTCGGGGAAATTTGCTATTTGGATG
-GATTAAACACTCACTCTGGAATAATACTTATATCAGAAAATCTTAggcca
-ggcacagtggctcacgcctgtaatcccagcactttgggaggccgaggcgg
-gcagatgtcctgaggttgggggttcaagacatgcctagccaacatggaga
-aaccccatctctagtaaaaatacaaaattagctgggcgtggtggtgcatg
-cctgtaatcccagctactcgggaggctgaggcaggagaattgctcgaacc
-tgggaggcagaggttgtggtgagccgagattgcgccattgcactccagcc
-tgggcaacaagagcaaaattccctctcaaaaaagaaaagaaaagaaaaaa
-agaaaaTCTTTACCTACAAAGCACGAGCTGGCATTTTCCACGTCTCAATG
-CACCCCTGGCCGCCCACCTCCCCATCTTCCCTGCTGGGTATCCCTGCCCT
-CCTCCCTCTCTTGCTCAGGCCCTCCCCTGTCCCTTGCACACATAGCCTCT
-GGAGAGCTCTTAGAATCATGCGTTTGACATTTTTTTGGCAGCGGATTCAA
-GTGCACGACTCCACACTTTGGCCACAAATGTCTACCCACCAAATGAACTG
-GTTGGTGGGACACACTATCTGTTTGAATAGACATGGCCCCAACATCCTCA
-AAAACCAGAGACCAGAGCCACCCTCTAAACTGTCACAGTTTGAGGGAATC
-TGCAGCTCGTGCAGAAAACTGGTGGAGAACGCGAACTTGAGCGAAGGGTT
-TCTTCCCGGAGGGTGGGAAGGCTGCCGGGGTCAGCTGACGCTGGAAGTGC
-CCTCCCCATTTCCCAGCGCACCCGGTTCCAGGGTGATTTATGGTTGTATT
-ATTCATAAATCTGTTCAAGATGTAAACAGGGAGATTGTGCCTCCGTAAGA
-TATTAATAACTTAATGAGTCTGTGCTATTTGTTTATGTAATGGATAATAG
-GGTCTCTGCAGGGGCCAGATATAATATTACAATCTGGTAATTCAATGACT
-GCTGTTCAACACACACACACATAGTATAAGTTCGGATCCCTAATGGCATC
-GTTACCAGCACAGGTCTCCTCAGTGGCTCTCAGGAAATGCTTCCTCTGAC
-AACTTCCCCAGTGGAGCAGTGACTCCCAGGGGCAGGCCAGGCCATGGGGA
-GCAGACCTGGCCTTGGGTCTCCCTGCCCATCCTCCCAGGACCTCTGTCTC
-CCAGGACTCTCGGGCCCCCACCAGCCCTCGGTACCACCCCAACCCTGCTG
-TGCTCAGCTGCCATGGACCCTGCCGGGGCCCCCACCCCACCACCGTCATC
-TGGTCATTTCTCCCCTGCCACCAGGCACAGCTGGACCGGCACCTGGCCCA
-CCCCCTCTTTCTCCAAACCCCACTCATCCTCAGACCTTCCTGGCCTGCTC
-CCTGGACCCCACCCTTTGGCTCCACCTCCAACCGTcccccagcattcagg
-cattggagtgaggagccccagtacctgtaactgtgacctggctcggaggg
-agggtcattgaacaggtggttgagttaagatgagtcattagggaggcccc
-ggatagaatagggaggtgtcctataggaagaggtgatttcgacatggata
-aggagcgggagggaatgtgaagactcagggagaaggcaaccatctacaca
-ccaggggagaggcctggggcgtgttctccctcagaaggagccagccccgc
-ccacacctttatctagaactccggcctccagaaccacgaggcagtccctt
-gccgctgtttaagcccccTGCGCGTGCATAGTACACGGCCCTCGGCCCCC
-TGGCCCCCAGTGGTTCACTCTTGGCTCCCTGGGCCCCTCACCCAGGGAGG
-TTACAGGGAGGATACACTTAGAGAGCCCACGCTCTGTGCAGCCCCAACCA
-TGGAGATCAGGCTGGTGTTGGAGCTGGGTACGGGGCCTCCCTTGGCACTG
-AGCCCCTGGGCCTCGATGCGCCCAGCCTGGTGCTGTAGGACTCAGGGCTC
-TCCTTGGGGTCTGGCAATTGCATAAACCCTACTGGGTGGGGTGGGTGGGG
-AACCAGGTGGCCATGGTCCTGGCCCTTCCCAGGAGGAGAAACAGATGAGC
-TGGCGGCTCTGATGTGAGGGGTGAGAGATGGTAAGGATCCCATCAGAGCG
-CTCTGCAGGCTGCCATGAGAATTAAGCAGTTTCACGCCCAAGAAGTTCTG
-TGCCTGTGTGCGGGGTTAAGTGGGGCAGAGGGTGCCTGTCCTGCAGGGGA
-ACAGGCAGGTCCAGTTAAAAGACTCTGGGCCTTTTCCTTTCCCCGAGGGC
-AGAGGGGGTGGTCAGCAGTCTGTCCCCAGCCTTCTGCCCACCCTCCAGCC
-CTCACCAGGCCCTTTTCCTCCCTCTCTGCCACTGAGGGGCCACAGCTCAG
-CTGTGCTCTGCACCCTGCCCCTACCAGCCTCAAGGGCTTGTGTCTATATC
-CAGAGAGAAGGGCGACGGCTTCCTTCAATTACATTCATCTGAAGTGAAGA
-AAAGAAAGGAAAAAAAAATACCCAGTCACCATTACTCAGAATGACAAGGC
-TGCTTGTGATTAAGCTCTGAAGATGCGAGATCCTTTATTGAGAGATTCTT
-TCACTGCTCAGCTGCAGCACACAGCCTGGGAGGGGGCCTTGTCACTTGGG
-GCTGGTGACAGCCTCCTTGAGGCAGCATCCCCCTCCCTGGCACGCTGTGC
-CCTCCTGCCAGGGCACAGagggtttctcatcttggcacttctgacgtttg
-gggctgggccatctgccattttgggcatcctgatgctcagatcatccctg
-cccccgcctactggatgccagtcacccagcagcacagctgccccaagtcc
-taacaccaaaaatgtccccaaaccctggcaggtgttgcttggagcaacat
-ccccccATCTAAGGCGCCCTCCCCACCCCGGGCCTCACCCCGTCTTCCGG
-CATCGTGTCCCTCCGTGCCTCCCTTCTCTGGGCTGAGTCTGACCCCAGCA
-CATACACCCCTcttttcttccccaggctgtttccccatctgtaaaatgag
-ggtgacgacggacaacttgcgggactaaggtggaggtggactgaggtTCT
-GACGGCCCCATCTGGACTGTAAGGCGAGGGTGCTTTGTAGGACTCTGCCC
-TTCTCATTACGAGACTTTGCACAGTGGTCCTACTGGATGCTGGATACACA
-GAGAGGATGGAACGTCTCCGTCCTCAGGAATCTGAAGGCCCTGAAGTGGC
-ATCACTTGCATGGTTATGAGGGTCGTGATTGTCTCCCGATGGGCTGGGAA
-GGACCCAATGGCAGGAAAAGGAACACTGGCCACTGGGGAGAGCCCTGGCT
-AGAGCAGGACGGCCTGGGCTGAGCCGAGGTTGGCTGCTGTGTCTCGGGAA
-TCTCCTGTCCTTCGGTGGCGCCAGGCAGTCATGGGATGGGACCAGGGCTT
-CTGTGAGTCCCCCATGCCCATGGCTCCTCCAGTGCTGCCACCTGAGGACC
-TTCCTCCTGAGCCGACCTCCTTCCGCCTCTTTCCAGGGCTCCTCCTGGCT
-GCCCGTCTGCCTGGTAATGTCGGGGCTCATTTTCTTTGAAGATGGCTGTT
-GGGTTGCCTCTTTCCTGTTTATTTGTGAGCTGCAGTGTGAAATAGCTACT
-AATTCAGATTTTTACTGTGGATAAACAAATACAGAAAATTAACAGATGTG
-TTTTGCCGATGTACTCAGCAAAAATAACATCCATCGTGATGGCAGGCATG
-GAGGAGGACGGAGCCATGAGGAGGCCGAGAGCCCGGACCCAACATCCACA
-GTGCGAAACCCGAGACATCAGAGAGGGTGGCAGAGTGTGATGTGGCCAGG
-TTAGCCTCCTGGACCAGGAAGCAGAACTGGAGAGGGACAGAGGGCAGGAG
-CACATGGACCCCAGAAGGGCAGGGAGGCGGAGCCCCGGGTTGGACCAGGT
-GGCCATGAGTTCATCTGGAATCCAGCATGGCAGAGACCCCAGGCTGGAGG
-CCCGGGAAGACTCCGTAGCAGAGGAAGTTGGACCAGAGCATGTGGATTTC
-AAAGTGCATCAGGAGGCCGAGGGCCTGCAGATATTTGGATCTCAGCAATG
-GAATGGGAACTAGACCCCTAAAGGCAGGACAAAGCCCCCGGGGATGCCCC
-AGCCACAGCAAGGCAGGACGGAGCCCTCGGGGAAGTCCCAGTCATGACAA
-GCCAGGACAGAATCCTTGGAGACACCCCAGCCACAGCTGGTTTCAGTGTC
-TGCATCCCAATTCAAGATGCAGAGAAACCTCCAAGTTTCTCTTGCCACAG
-GAAAGGGGGCGAGGAGAGCAGGTCCCTGGAAAGGACTGTGGAGGAGAACC
-CAGCAGGTGCGCCCCACAGCCCTGGTGCCTTTATCAACCCCTCCTCATAC
-ACTAGAGCTGGTGTGAGGGTGTGAATCTACTTCTGATTCTTGAAGCTTAA
-AGGGCTCTGCCCAGAGCCACTTCCCTGTGATGCTCTGGACAGCAGGGGCC
-TTATTCTGCTCTCTCCCCCAAGCTCTGGCCAGCACCAGGTAGGAGAGGGG
-CCCTGTGCTGGGCTCTTCTGACAGCCAGCCACAGGATGTTGGAGGGGCCC
-GGGCTCAGGCTTGAATGGAGTCCAAGCCCACAAGCTACAGGTGACTCCAC
-AGAGTCACAGGGTTCTCACAGCAAGCGCAGAGCCAGGCCATGCTGCAGAC
-ACAAGCCCGGCTATATTCATAGTTTAGGGTTCTTCTGCTCATTTATTTGG
-TTGTTTGCATACAGACTTTTCATTTCGCTTGTAttctttttttttttttt
-ttttgagtcggagtatcactctgtcatccaggctggagtgcagtggcgcg
-atctcagcttattacaatctccgctgcctgggttcaagcaactctcctgc
-ctcagcctctcgagtagctgggattacaggtgtgtgccaccacacctggc
-taatttttgtatttttagtagagacagagtttcaccatgttgaccgggct
-gaccttgaactcctgatctcaggtgatccacctgcctcaacctcccaaag
-cactgggattacgggcgtgagccaccacTGTATTCTTACTCTATTTAGAA
-ACATTCGCCATAGTCTCCTAATTTTAACAAGTAAGCATGTGGAACTTTTA
-TCTTTCTTTCTTGCTGAAAATTTTTTTAAAAGGCTTTTACCATTAGTTTC
-CCTCCTCTGGGTCATGGTTTCCATAAACGTCAGGTCTCTGTCTTTCCCCC
-AAAATATCTGAACCCCTTTACTCCcacacacaatgcataacacacacaca
-agtatgtacatggacactcacaagcatacacatacgtgtagtcacacaca
-TTCCCTTACGTGTGTGCATTTGCACAGGAATAAacacacatgcaacacac
-actgacacccgtgcacgcagacatactgtcacacacccgtgcacgcagac
-atactatcacacacgcgtgcacgcagacatactgtcacgcacctgtgcac
-gcagacgtactgtcacacacgcgtacacacacacacTAGTTTATCCCCTG
-GAGCCTAGAAAACCGTCGGGCAAGCACTGAAGAAACCATCGATGAATGAA
-TGAAGGACCCTCTTCCTCCGAATGCAGGTCTGGGCTTGGGGAGGAAACAT
-TCTCCACGGAGTGTATTTCTCTCATGTGAAAGGAGACACAGCCTCCTGGG
-AATACTTTAATTTGCCTTTTCTTTGAGAAGGGACTGCCATGCAGACGGAG
-CTTTCTTCTAATCTAATTTTACCCCCAAATAAAATAAGACTCAAAGCATG
-TGAGAACTAGGGAGAAAATGGCTTGGTCCAAGCCTGACATCCAGTGCCTG
-GGGAAACGGAGGGGCAGAGGGGACAGCAGGGATGGGGGATCACGCGCTTC
-AAGGCCTCTGTGCTGGCGGCCCTCACTCTTCCTGCCCATGCAGCCAAGAA
-CGGGAGAGTGGCCAGGAGCAGGCAGCCACGTCCCTGTTTGGGGAGACGCC
-CCTGCTGGGGAGCTCCTCCAAGCCTGCCCCAGCTCCAATGCAGAGTCCCT
-TTATCACAAACACGGGAGTGAATTCCAGCTGCAGCAGTCATCGCCCCTGG
-CTCTCCTCTTGGGTCTTGGGCTGCTGTGCCAAGACCTTGCCTGGGACAGT
-CAGAACCCTGGGCAGGTGATGCCTGCACCTTCTTCGGGCAAAGCTACATC
-CAGCTCTTACCCAACCCGGGCGAAAGCAGTTGCCTGGAGCCTGGGGTTCT
-GGTGGACATCACAGGGGATGTCTCCGCCAGGTCCGCACCAGCCAGGTGGA
-CAGACCCGTGGTGGTGACAGACCCCACGTCATGTGGCTGGGATGTGAGGG
-GTGTGTGTTGCACAACTGTGATTGTGGGGAGAGTGTGCAGGTCTGGATCC
-TCCTATTTTCCTTAACATCATCCTCTGAATATTTGCACTTGGAAATTCTT
-TAAAAACATCATGCTATTAGCTGCTTAAGGATGTATAGAGTACAGGCGAT
-TCTGATTAATGCCTCTTCATTCATCTGATAAAAATTCACTGTTTTCTTCC
-ATGGACATTCGAGGTGGCAAAAGTGAGGGGAAGGTAGATGGAAGAGAAGC
-CCACCCACTCTTCTGGAACATCAATCCCAGAGGGAGGAGATGGATAAACA
-AATGGTCAAATAAGTGCACAAGGTCCTCTTTTGTCCGTGACATGTTACGA
-GAAGATAAGACAGGGTTATGAGGCAGAGATAAACCAGAGGACTTTAGGCC
-AACAGCCATTATCTCCTGCTAAGTATTGATGggttaatactttgtaaaac
-gtctctgagtgcatctcagattatgtcctcaagataacttcctagatgca
-atagtactggcagggaagtatgagtattttatggcttttttgtttgtttg
-tttgtttgttttgaggccgagtcttgctctgtcacccagactggagtgca
-gtggtgcgatctcagctcactgcaacctcctcctcccgggttcaagtgat
-tctcgtacctcagcctcccgaatagctgggattacaagcgcccgccacca
-caccaagctaattttttgtatttttagtagaggtggcatttcaccatgtt
-gaccaggctggtcttgaactcctgacctcaggtgatctgtctgcctcagc
-ctcccaaagtgctggaattatagacatgagctaccatgcccggccATATG
-GTTCTTAACAGACATCGTTCAGGCAACTCTCACACCTGTCCACCCTCCGG
-AGATCACTTCCGGGAAGGCACTAGCTCACCTGAGCATCTACTTTCCTGTT
-CTGACATTGTCCTGTGGATTCCCCTGCACTTTGTTTTACACGTGGACCCA
-AACCTCCCACCGCAGTCTCTGCAACAGGAACGTGACTCCACCCTCTCTGG
-GGACCCTCCGTCCTCCACAGGGTCAGGCAAGCTGGAAATACAGTCAGATG
-TTTCTAAGCTCACATGATCATTTTTCAAATCTCCATCCGTTGATAACACA
-TAAAGGAGGCAGGCACCAACTCTCCATAAAGCTTGATTTTTAATAAAACA
-AAACCCACCTAATCCGGGGGAGCCATGatggcaggtgagccactgtgtcc
-ctcacctgcgccatggcaggcattgctaatcggtcacagcacccCAGTCC
-ACCGTCCTGAACAACAGCAATGTTGGAAATGAGGAAACCATGCAAGGAAC
-CTCATCAAGTAATGGGATGAAAGCAAGAAACCACATTTCTGAAATAACCA
-GCCTGGCAATGCCCAGCAAGGGGAAGATACACAGTGGTGGAAGCCACATA
-ATGGCACGCCCCTGGCAGGCAGGACACCAGCACAACCGCTGGGGAAATTG
-TTTCAGTGGACAGGCCAGTGACAGCGAGGCAATTCCAGATCCGAGAACCG
-CAGGCCATAGAAGAAGACGGGGGAATGCCTGTGGCCCCGCTGTCCATGAC
-GGCAAGGGTGTCGGCAACAACGCAACGCCCATTAGCTGTCACCAGGACAA
-GGTGGCGGTCACACCTGCATGGCTGCATTCTGCACTGGGGCGATGGGCAC
-ACCATGCCACACACATCCAGGAGCACGGACAAGCAGGAAACATCACAGAG
-AGAGGAGAAGACCTCGAGTCACAGAAGAATAGAGTCAAGGCCGTCCCATC
-TAAATAAAGTTTTATAGCATGAATGTGTAACGTTTATAGATAAAAATCAA
-CATGGTGAGACTAAGGAAAAACAAAGGAATGGCAAGGATTCCATTGCCAG
-GATGGGGACTGCCTTTGGTGGGGATGGGAACAGACGGGGTGGCACTCAGG
-ATGGTAGAGATGACACCACGTGCTTGTCCTTAGACTGTATGGAGGGTTGG
-GGGTAGTCACAGCATCAGGACTCCTGACAGCCTACATCTGAGTCTACACA
-TGCTCTTTTTTATCTACGAAATGtttattaaaagtaataaaaaataaaat
-aaGGGGAAAAGAAGTTCTATCTGGGAAGAGTTGCATCATTCTCAGAGGAG
-GGCATGGAAAATCGTTTCTTGGCTTTGAGAGGGATGACAGGAATGAGCCA
-CCGCACCCGGCCACAAAATGACTTCTTATGCAAAGCTGAGACGCTGTCAT
-TTATGGGTTTTGATTATTCATAGAACTAGAAAGCTCCGTCTCATACATTC
-TTGTGGAGGGCATCCCTCCCAACTCCTTTCCACACCAGGATCTGGCCACA
-AGAGTGTGGGGGTCACTGCCTGTCTTCTTGCTCCCATGGCCCCAGCAACA
-GAATGGCCCAGACCACAGTGGACGCTCCCTAAGCCCTGAGCCCGGAGAGC
-AGCGGCGTCTCCTGTGCAGTCACCGTGCCTGCAGCGGGGAGCTGTCACCT
-TTCCATTTTGCAGGAAGGGGAGGATTTGTAGAAAGGTGAGTCAGGCACAC
-AGCGGGTGCGTTAGTCTGCTTGGCCgctgcaaccacggacagtcattgtc
-tcactgctctggaggtcgagataaggggtgggcagggctggttccttctg
-gggcctctctcctctgcttggaaacaccatcttctcctgtgtcctcacag
-ggcagtctctgtgggtgcctgcatccgcagctcctcttattataaggata
-cctgtcctagtagatcaggaccaccgtgtaacttccttttgccaatttaa
-tcactgccctctcccctcccaaaaggctctgtctccaaataagcacatct
-tgaggtcccaggggtcagaacttcagaacatgaaattggggtgggtgcaa
-ttctactcctgacaGCAGTGGACAGAACATACCCAGGGCGTGGCCCAGGG
-CCACCCGCAGAGCCTGTGGCAGAAACAGTCAGGGGCCCTCTTGTGAGGGT
-GGCAAAGACCAGAAGGGAGAGTGGGTGGTAGGGAGGGCTGGCTCAGGAGT
-GTGATCAGAGGTGGCTGAGGAGGCCAAGGGCACCCAGAGGACGGCAGTTA
-CATCGCCCCACAGTGAGACGCTTTCCTCCCTCTTGGAGCTGCTTGCGGGA
-AGAAAGTATTCACCAGGCTGCACCAGCCAGAGGCTCCATGCTCCCAGCTG
-GGTGCTCCCCTCAGTGCTGATGGCCACCGTCGGCTTCTTCACCCACCTGC
-TCCATGACGGGTGCACCGCTTTACCCCAGACTTAGCAACAGTCCCTCCAT
-TTCTGGAATATGCCCTGTGCCCCCCTCCACTCAGAATCCTGGAACAGGTG
-CCTTTCCAGTCCCAGTAGGAGAAAGGAGAATCATTTTGTCAAGAATGACG
-CGTTCTCCTTGCAGGCAATGAATTGGGATCGTGGTGATAGTTTCCCATTT
-TTACAACATGGTAAATGTCCTACCCCTGCGTTTTATCCTCTGCGTGAACG
-GGAACGAACGCAATCCCACCACGGGCAAGATCTCCTGGAGAAGCACCGTG
-TCAGTGTGCCATCCGCAAGCCTGACCCCGGCGGGTGCTGTTCCCTCTGTG
-CCTCAGCCGCGCGGGCTTTATCCGGGCAATTGAAAGGCACTCACAATCCA
-TCGCGCCGTCTTCCGAGGATGGCTTTTAAGGGTAAAACAGATATCGCTTC
-CGTGGAGTCTCAGCCTCCCTGTTTCACCAATGCTCAGAAACCGCAGCTGC
-TGTCTCTTTCCTGGTGTTTAAAGGGGTCCTGTGGCTCACACTGGTCTCCA
-AAGAGCACACACGCATGTAATGAAGCCAGCGCCCTCCATGGCCCTGTCCC
-TGGGTTTGGCTCCTCCATTCTCTTTCTCGTTTCCTGGGACACTTGTGGGA
-CACACATCCTGCGGGGCCTCACTGTGGCCTCCCCGTGCCACCCTTTCTTG
-CTCAGAGGCCTCTTCCTCCCCACGACAGTCCTCCTCCATCACCTTAGCGT
-GCCATCCACCTGAGGCACACACCAGGCTGGTCACAGCCCCTCGTGTCATC
-Aggtgtttacagcacccccaacttctccccactagatgcgggagccccct
-ccagtcttgaggaccccagatgtctccagacattgccgtctgtcccatga
-gacgggtgcagactcatcctctgctgagagccTGACCACCTTTCCCCATG
-GGCCAGCACCCCATCCTGCAGCTGTCTCCTCACTATTCTCACCATGTCTG
-CGTCCTGAGGCCTTCGCCACGGGGCTGGCACCTTGATGGCAGGGCTAAAT
-TGGAGCCGTGACTCCCCAGTGGAACCTTACCCAGGGAATGCCTCCTGACG
-CCCCTGGGGACCCTGTCCCTGCCATTCCCTCCAGGTTCTCCATGCAACAC
-TTCTGTGCACTGCCCAGGACTGCTTGGAGCACTTGGCCTCTGCCCCGTCT
-CTCTCGGGCTGTCCTCCAGGCTCGGCACAGTGCAGTGCCCCTGCTCGCAG
-GTGGGCCTCCTGAAAGCTACCTCCAGTGGCACCTCCTTTCAGGGCTTCCT
-CAAAGCTGCCTCCAGTGGCGCCTCTGTCCCTCCCTCGGTGCCTCCCACAG
-CATTGACTTTGGGACCCAGCTGCGGCGAAGGGTGCAAGTCCATCTCCCAC
-TGCCCTGTGGATGCCCGGAGGGAAGCCTGTCAAATGTAGCTGCAGGATTT
-GGCCTCATCCACCCTTGACTTGTTCCTTCCTGCAAGCTGGCCCTCTGCAG
-GGAGAGGCAGCCGTTCAGGGCTGTGGGTGGCAAGGGGCCACCTGCACCCA
-TGAGAGGTACGAGGCCCCCTGCAGCAGGTCCTCTTCTATCGGCATCTGCC
-TGAAGGTGTGTTGAGGCTCTGGCTCTGCAGGTGAGTTGTTGCACCATGGA
-CTGGGCCAAGAGGAGACCCCGCAGATGCAGCCGGCATGGAGGCCCCAGCC
-CCAGGCCTCTGCCTCTCCATCCCCCACCCCTGCCTGCTCACCTCAGCCAT
-GAGCCTTGTCTGTGGGTCCAAGCCCCCTGCCTGGGGAACGACGGCTCCAC
-AGCCTGACCTGCAGTGTCTCCTGGCTTTGAGAGCCTCCTAGTGTCTGCAC
-AGACTTGTCCTGCTCATGGAGGCCTTTGGGACAGGACTATGTGATCTGGA
-AGTTGGGAAGGGCAGCAGAGGACAAGCCAGGAGACATCCTGGGCCCCTGG
-TGCTTTACATTCTGGGAAACTCCATGATAATATGCAAGCCCTTTGTTACT
-AGGTTCATATGTTTGGATTGTGTGAATGCCGTATCAATATTGAGACCCCG
-GGAGAAAGATGGCAGGGGAGGAGAGCCAGGAGTctgagtcctgagcccta
-atcctgagccctgagccctgaaccctaatcctgtgccctgagccctgagc
-cctaatcctgtgccctgagccctaatcctgaaccctgagccttaatcctg
-agccctgaaccttgaggcctaatcctgagccctgagccctaatcctgagc
-cctgagccctgagccctaaccctgagccctgagtcctcagccccgaaccc
-taagccctgagccctaaccctgagccctgaaccctaaccctgagcgctga
-gccctgagccttaaccctgagccctgagtcctgagccctaatcctgagcc
-ttgagcgctaaccctgagccctgagccctgagccctaaccctgagccctg
-agctctaatcctgagccctgagcccagagccctaaccctgagccctgagc
-TGTGCACCATGAGTCTGAAGCTCCAGTTTTTTTGTGCCTGGCCCACATAG
-ACTTGGCCGGCAAGGCCCTGCAGGGGAAATTGACTAGTTTTACTTGTATA
-AAATCCTTAATAGTTACATTTTCCTCTCTGTCCTTAATTATAATAATCCC
-ATGGTCAGATGCAATGACAGGTGATGTAGCGGGGGATGAACTCAGCGTGG
-CCCCAGGACCTGCTCTGGGCTCTGGCCTAAAAGGAGTGAGGTTCAGGCTC
-CCATCCTTTCTCTGTCCTTCTGCTGTGCCTTGAGCCGAGCCCAACAGGAC
-AGCTGCAGCAGGAGCTCCCGGGGACGGGGCTGTGTCCTGTTTTCGGGTGA
-GTCTCCAACAGTCAGGGTGGCTGTGAGCTCCCAAGATGGCTCCAGGCCAG
-GCTGAGGATGAGGGGAGGGGCATCCCCACTGGTGCCCACTGCACCTGGAG
-CCTGGGGTGGGGCTCGGCTTAGAACGATAAGTCCTGAGTAAATGGGTGAG
-CAAACAGGCTCATCACACATTACAAAAATTAGCTGACTGTGTCTGTACCC
-AACCCAACCTATAGCATCtttgtttgtttgtttgtttgtttgttttgaga
-tggagtttcattcttgttgcccaggctggagtgcaatggcacaatcttgg
-ctcactgcaacttccacctcctgggttcaagcgattctcctgcttcagcc
-tcctaagtagctgggattacaggcccctgctaccacacctggctaatttt
-tagtagagacagggttttgccatgttggtcaagctagtcttgaactcctg
-acctcaggagatctgtccgccttggcctcccaaagtgctgggattacagg
-cgagtcactgcacccagccTACATCTTGATGGAGGAACTGTTAGATTTCT
-CTTTCCTCAGACCCAGAGAAACATCCTATGGGACATTAAGGAAGTAGCCA
-AGTGACTCTTGGAGGGAGAGAAAGTAAAATAgaagggaagggaagggatg
-ggaagggaagggaagggaagggaagggaagggaagggggcagggagggag
-ggagggagggaaagaaggagggaaggaaggaaggaaggaaggaaggaagg
-aaggaaggaaggaaggaaggaaggaaagaaagaaaagggaggaagggaga
-gagggagggaaagaagggaagggagggaaggaaggTGGCATGGGGTTTCT
-GTCCCTTCTCTCAAGGGGCTTCTTGTCTGGCCAAGTGGGAGGGTATCCCT
-GGCTCTCTTCACCCTGCCTTTTTCCCTCCCTCTGGGGACTCCAGAGGCCC
-CTGCATGGACCTGACCCCAGCAACCCCTCCGGTGCCACACTGTAGGGAGC
-AGTGGCTGTTGGTAGTACAGACCTTACTTAAACTTTTTCTATGTAAATAA
-CCGATAGTCATAAAAAGGAAAATTGCATTTGCTTTGAGTGGGCAGAAGAT
-ACATTTTAGTCAAAATGAGGAATATTCTCCAAGCGTGGCTTCAGCTCATG
-AATAACAACACTATATTACCTTTTTTTTTCAGGCTTTCAGCTCGACAGAG
-CTATTTGTCCTTGCGTACCAATGCAACAAATTATATTATTTAATGAAAAA
-TGGGCCAGCCCCAGCTTCTCAGGCAAAGTCTCCCTGTATCAGTGACATTA
-TCATTAATGCATCAGAACCCATGGATCAACCCAGCCTCTGTCTATGGCCA
-CACCAAGAGGGACAGCTCATGGAGCCCAGCGCCCAGGAGATGCCTCACAG
-ATGCCCATGTGCTCACCGATGCAGATCTGGGGCTGCTTAAGAGAAACTTC
-TTGTGGCTGGAGCTGCCCCAGGGCCCCAGGTGACCGACCTGGCATTGTGC
-TGGTAAAAGCAGAAGTGAGGCTTTGATCAAAGCTTCTCTGGGATTTGCGG
-GTGCCTTTCGTTTCAGAGGTCTGCACAGCGGGGCTCTCTCACTTCTTCCC
-ACAGGCTGGTTGGCTCACTCATGCGAGCAACCACATGTCCTCGGCCAGCG
-CATGCCTGCAGCGCTCACACACGCTTACTGATCTTCCGGCTGGAGGACAC
-ATTTGGGAGGGCAGGGCCGGGTCTTGTTCAGCTGCAAAACACAAGGATGC
-GGGCCCACTCCATGCAGGACACTGAGTGCCTGCCGTACACCCTGAACTGG
-CTTGGAGAAGGCACTCAGGGCACAGCCAGGCCAGGAGCCACTGGTCTGAC
-TGCCCACCTGCCTACAGAGTCAGTCCTGCCGCAGCTGGGATGTCAGACAG
-CAGCACCCCGTCTGGAGGAGCTGATGGATTAGCATCTCCAGGAAATTCCA
-GTCCTGTGGCCAGTGCCATGAGAGGCTGCAATGTAGGCCATGTTTCCTGA
-GCACCTGCTCTGTGCTGGGGCGGGGTAAGAGGGAAGGAGGGAGGAGGCAT
-AAGACACACACAGATGGTGGCCACCCATGGAGGCTCTGCCACCCCCAGCA
-GCCCCAAGCCATCCTTCCTGGAATCCTCAAGACCTGGCCGAAATGCAGTT
-GCCTCTTCCAGCGAGCCCTCCAGAACTCCCACTGGCAGTGACATTTTCTC
-TATCGTCTGCTGCTCTGCAAGCAGAAACCTCCTCTGCAAGGAGTAAGTCT
-ATGGCACATTTTAACTCCTGGTTACATGGCAGAGTTTTACTCCCATGAAA
-TAGCTGTGAAAACTGAGACCTGGCAAATTCAAGCCCTCCTTGAAGAGGAC
-CGCTTGCAAACAGCAGAACGGGGCAGGACTGTGCATCTTCTGTCTCCAGG
-CAAGCTGGTTTGAGAGGTCGGTTCACAAGACTTCTCTTTTCACACCTGCG
-TGgctcaggactgaggggtgcccaagatttgggacttccagttttatagc
-caggaaagtccttggaaagccCAGCTTTCTCTCTGTCCTCGTCCAGAATG
-ACTTGAGGTATATGAAGAATCCAGGAGGATGGAAGTTAAATTAAAATACA
-CACAAATAAACAAGCAAACTACCATCAAAAGGCATGCTCACTGCTGCTGG
-AGCGAGGTTCACGGGCACGCCTAGCTCTGCAGCCCCGCTGGTCCCCCAGT
-GCCGAGCACGAAGAGGGCTTCTCAGTCACACTAGCCGGTGAGGAGGAGCT
-GGTCAGGATGAGTCCCGACCTGCAGGCACCAGCTCCCATGGTGAGTGTGA
-GTCACACTTGCCCAGCTTCCCCTCTGCCCAGGAAGGCACCCCACTGTAGC
-CCTGGCAAAAAGCTCGTGTTGGGGCTCGAGAGCGGCAATGTACGTGGACC
-CTCATGGAAACCAAAGTGTGGGGAGAATGTTTCTTCCCCACCACCCCCAA
-CTTTGTGCCACCTTTCTttctttctttctttctttttttttttttttgag
-atggagtctcgttctgtcgcccaggccggagtgaagtggcatgatctcgg
-ctcactgcaagctctgcctcccggcttcacgccattctcctgcctcagcc
-tcccgagtagctgggactacaggagtctgccaccacgcccagctaatttt
-ttgtctttttttttttttttagtagagacggggtttcaccgtgttagcca
-ggatggtctcgatctcctgaccttgtgaaccacccgcctcggtctcccaa
-agtgctggggttacaggcgtgagccaccgcgcccggccTTCCTACAGGAC
-ACTGGCCAACAATAGTTTTAGAAGATGCAGGCGCCGCCCGTCTTCCTGAC
-TTTGATGCCTCATGGAACTCTGCAGCCTGGATAGCTCCTGTTTGAAGTTA
-GGGAGATTTGGAGTCCTTCTCTCCTCCCTGCCAAGTGTGCCCAGGTCAGA
-GTGTGCTGACCAGCGGCCCCAGAGAGCTGGTGGGTGGCTCTAGCTGCAGG
-AGTGACAGGTAGGGAGGTGAGGCTTCTCTCAGACCCCCCAACCCCCTCCA
-GGGATGGAGACCTTCTGGGCCTCTGACAGCCCAATGCTGGCTCCTAAAAA
-TTTACCCTATTCATCATAAATTCCCACAACTATTTTTTTTCCCTTAAATG
-AGCATTGAAATTTATGGGTGATCATGGAAACCTCTCATCACATGTGAGTC
-AGAGCCACGAAAATGATGAAGCAGGAATTCTAATTTTTAATGAAAGAGCT
-GACCCAGGCTGAGTCATAAAAGATCAGACGCTGCCGTGTCTACTTGTCTC
-TGGATACACCCATTCCTTCTTACCCTGGTGAGGAGTGGTCTCGATTCTGT
-GATTCTGCCATCGGCAACTGTGAGCTCTGTGCTTCTCTGTGGAGCCCACC
-ACTGACCCAGCTAAGGCACCAGGACGCACAGAACAAGGGGCCCTGGGTCA
-CTGTCTCGGTGTCCCATGCTGTCCTACCCGATGGAGGGGCTGTAGGAGAC
-CTCGTCACACCTAGGCCTGTCCCTGGAGCACAGTAGGTCTTCAGCCCCCT
-TAACTGAGCAATGTGCCTACACCCCAAGCCCAGAGCACTGCCCACAACAC
-AGAGGACAATGAGAGCCATTCTCTTCTGCCATCCATTCCTTCCTCAGCTC
-GGCCTTCTCTACCCTGTTCCTGCCAGCCATCGAGAAAGTGAGGTCTTCAT
-GGCCAGAGATCTCTGCCAAGCCCCCTACAGCAGAGCTTCCATATCAGACA
-GAGTGGGTACAACACGCACATCGTGAAATGACGTGAGGGCAGGACTTTCT
-CAGCCCTGACTGGAACCCAGCCTCCACACTCACTGTTCCAAGaatccact
-taacctctctacacctatatttcctcactgaaagattggggtcacaaggc
-caacacagggtcacttctgggatttaatgaaacaatatggatcaaggccc
-agcccaTCATCAGTGCTGTCATTAGTAGCTTCCCCCTGAGTGTTCCATCT
-ACCTGCACGTCTGCTAGCCTTGCTTTCCGATGCGAGCAGGGATTTTCTCT
-ATCTGAATAATCCAACCACTGGACCATGGCATACTGATGCTGAGAAAGTC
-AGCGTGTTCCCTAACCTCAGTACCACTGAACAGGAACATAGACGGATATG
-GGGTACTCAGGAAGTGCTTCATGACCATGTAAAGAAATGGGTATGGACAA
-ATCCATGGATTCAGTGAATAATATGGAGCTGAATTAGGTGTACAGCAAAG
-Ccctcattttacagggtattgaaagccaatatctacagagactggatcac
-tcgcccaatatggccaggaagagaatggcagagccagTGCTGGGCTGGCC
-AAGGGAAGTCTCACAGGACTCCCAACATCTGAGACAGCTAAATTATAAAG
-GAAATGCACTTTTAAAGATAATCAAATCAGGGACACTTCATTGAAGATTC
-AGCTCAGGCAGAAGGATTCTTTTTAACCCCAAACTCCATGGTCAGCAAAT
-AAACACCCCATGTATTTGCATCCTCCATTCCCAGCTCTTCTACAGACACC
-ATACAGCCCAGACAACTGTGTTCTGCCCTACAGCCTGACAACAGCCTGCC
-TTCCCATGATGTTCTCTCTACAGCCTGACAACAGCCTGCCTTCCCATGAT
-GTTCTCTCTACAGCCTGACAGCAGCCTCCCTTCCCATGATGCTCTGCTTT
-ACAGCCTGACAGCAGCCTCCCTTCCCGTGATGCTCTGCCCGACAGCCAAC
-AAGTCTATCCTCCCATGATGTTCTGCTCTACAATCTGACAACAGCCCTCT
-CTCTCATGATGCTCTGCTTTACAGTCTGACAACAGTCTTCCTTCCCATGA
-CGTTCTGCCCTACAGGCTAACAAGAGCCTTCCTTCCAATGATGCTCTGCC
-CAACAGCCAACAACAGCCTTACTTTCTTATGCTGCTCTGCCCAACAGCCA
-CCAACAGTCTGCTTCCCATGATGCTTTTCCCTAGAACCAGCAACAGTCGG
-CCGTCCCATGATGCTCTGCCCTAGAACAAACAAGATTCTTCCCTCCCATG
-ATACTCTTCTTTAGAACCAACAGCAGCCTGCCCTCCCATGATGCTCTGCC
-CTAGAACAAACAACATTCTGCCCTCCCATGATACTCTTCTTTAAAACCAA
-CAACAGTCTGCCTTCCCATGATGTTCTGCCCAACAGCCAACAACAGTCTG
-CCCTCCCATGATGCTCTTCCCTAGAACCAACAACAATCTCCCCTCCCATG
-ATGAAGGAAGCATCCCGTGATGCTCTGCTCTACAATCTGATAACAGCCCT
-CTTTCCTGTGATGCTATGCTGTACAGCCTGACAACAGTCTTCCTTCCCAT
-GATGACCTGCCCTACAGCCTGACAAGAGCCTCCCTTCTCATGATGCCCTG
-CCCAACAGCTGACAACAGTTCGCCCTCCCATGATGCTGTTTCCCAGAACC
-AACAACAGTCTGCCCTCCCATGATGCTCTGCCCCACAGCCAACAACAGTC
-TTCCTTCCCATGATGCTCTGCCCTACAACCGACAGCCACACCTCCCTTGG
-CACCAGGATTTGCCTCCAGTCTGACAGCCTTCCTTCCCAGCATGCCTTGC
-CCTGGCCTGGGCAGTGTTGTCCACACCCACATGAGGGTGGTGTCGGTGCT
-GCCCACGTCCCAGCTGTGAGGTCAGCCAGCCACAGAAGCAGCAGCTGTGG
-GGACAAGCttctgtgcgcagctctgtcgttcagcagctgtgtccttcaga
-aagccctggagctctctgggcctcagGTGGCCTTTCGGAGTGTAGACAAC
-GCCAACAGCTCTGACCACAGACAGCCATGGCAGGCAGGTCTGTCAGTGAC
-TAAGGAATATGCCCAGCAGAGACACGGCAAGACCACAAACCATCTTGGGA
-CCCTGAGAAAGAAGACACGGTGGGCGGATTCAACAGTCTTATGGGGTCAC
-AATGCACAGGGCTTGGTGAGTGACTGGGTGCAGAGGGTGACAGAGGAGAC
-AGTGAAGGAGTCTTGGGTCCTAAAGTGGCACCTGTGGGGGTCGCTGTGTT
-CCATCCTGTGCTGCAGACCCAGGGCCCAGCCACAGAACTCGGGAGAGGGG
-TGGGGAGAGGGTGCGGGGAAGAAGAGGGGCCAGGTGCTCTGCCCACACAC
-TGAGTCTGAGGAGCCATCCAGGAGCAGAGGGCTGGAAGGTGCTGGGACCT
-GGGGGGCTCTTGGCTCAGGAGGGGGCTGTGCTGGAGCATCGCCAGCAGAG
-GGAAGCCCTGGGATCGGCAGGCCAAGGAGGAGGCAGGCCTGGGAAAAGCC
-CTCTGCCCTACTCTGACCACATGGCCAGGGAAAGGACCCCAGCATTGCGG
-CTGCCCCCACCAGCGCTGCAGAATCTGCTTCAGAGGACTTCTCGTGGCAC
-ACAGGGAGAGGTGGGAGGAACATGGGAAGAACAGAGAGCCGGCTTCAGAG
-GCCGGGCCCAGGCTCTGGTCGGCGGGTTGCTAACTCCACCCCCGAGAAAG
-ACATCCTGGCCCTCCAGCCCTGGGGACAGAGACACTCAAACAGGTGGCTG
-TGCTGCCATCACATCTGAGTGTCTTCACACATGAGCATGATGGTGGAACT
-CTCTCCCCAAGGCTTTCTGTCATTTCCaaagctcctcttgcttgagtgct
-agtcctgggctgggtgccggggccaagccacgcgtgtgttttcttaatgc
-acacacccaagctctgaggaatgtctcattgttcctgtcccatgtcacag
-atgaatagactgggctGGGGAGCTCCGGTGGGAAGTGGAGAAGCCAGGAT
-TCAGGGTCAGGTACCCTCACTCTCCCAGTGGGCCACTCTGCCTCTTCCTG
-GGGCCTACTCGCCCTTGGGTGTTTAGCGGGGGCCTGTGATGTGCGGAGCC
-TGGAGCCTGGAGCTGGGGAAGCAGAGAGGAAGCCAGACCCTCCCCAGACA
-GGAAAGAGACAGGACTCCACAGGGTGGAGAGGGTTTTCTGGGAATGGGCC
-CAGAAGCAGTCTGGGATGAGGGAGGACTCCTTTTTCCCTGGGGCTGGTGG
-CAGGTGGGCACCCAGAAGCCTGAAATTCAAGGCTGAGAAGATACTCCCCA
-GTGGGGGAGCTTGCCTGGGCCAGTCGGCTTTTCAGGAGCAGAAGTCAGTG
-AGTGCAAAGGAGGAAGCAAGAAATGCCGGGTGCTCTCGGGGAACCACATT
-CACTGCCCTCCCTGTGACCTCCAAAGCAAGGCCCTCCCTCGGGGTGGGTG
-GCGCTGCCCTGAGACTCATGGGAGGGGAGAGGGCTGGGTCGGGCGACCCT
-TCGCAGCAGGTGACCTGGGCAGGGCGGTGAGGCTGACCAGCGGCCCTGCC
-TGCTGCTGCCTGTGATGATTTGCTCAACATTGTGTGATGAAATTTCATTA
-TCTCCCACACTTATTTTTGTCTTCTCTATCTATTCTGGGAAGCAGAGTCT
-TAGATCAGCAATTAGAAATGTCACTTGAGCTTTTGAGAAAGGGGGGGGTA
-ATTTGCGAAGTCTATAATTGAGAATAGTAATCAAATTCGTTGACAACTTC
-AATGATATACTAAAATGGTAATTAATTGTAAATTTTTGATGGAATATATA
-ATATTTATCTATTTTTGAACTTTTTACTGATTAGCAACAAGCTCTGGTAT
-ATTAGTTCTTTTTTAAATCTGATTTCTATAATTAGCATCATCTTTTTGTT
-TTCTTTTATTTTTTTCCACTGAAAGTTTCCTATGAAAGAGAGAATCCACT
-TAAGAATAAACTTCAGggctgggcacggtggctcacacctgtaatcccag
-cactttgggaggctgaggcgtgtggatcacctgaggtcaggagttcgaga
-ccagtctgaccaacatggtgaaactccgtctgtactaaatgcgaagaaaa
-tcatctgggcctggtggcacacgcctgtaatcccagctacttggaaggct
-gaggcaggagaatcacttgaacctgagagacagaggttgcagtgagccga
-gatcacaccactgcactccagcctgggtaacaagagtgaaattccgtctc
-aaaaaaccaaaaacagaagcgaaagaataaACTTCCGGGTCAACTCACCC
-CTTAGTGCCTGCTTAGTGGGAACAGCGGAAACAGGGTCTCCTGGGCCTCG
-GGAGCGCAGGAAGCAGATGTGGGAGGGGAGAGAGGGGAAAGGCCCTCTGC
-AGTGAGACTCACCTGGCACAGCTGCGCAGGAAGCTGAGTAAGGTACAGGG
-CACTCCTGGGAGCGCTGAGCATCTAGGCTTGCTGGTGAGCACCTGGTGTT
-AGCGCTGGAAGGCCTGGACCCTGGACCTGCGTTCAACCTGCTCGGGCTGC
-CCCACGCATGTCATTTATTCAAGGCAGGCCACTGCCAGGATGACAAAACC
-ACATCTGAGATGGAgtatgagtcggcttgggcagtcatgacaaaataaca
-caacctgggaagctttgacaacaggaatttgttctctcccagtcccagag
-gccagaagcccaaggtgaaggtgtcacagggctgctgggtcttccttagc
-ttTCTTCATCACAGAAACGATGTTGCGAAGGGGATAGGAGGAAAGAGGAG
-GATGCCGCCAGCCATCCTTGCTTGTCGGGATGCCGACAACGGCCAGGGCT
-GAGAGGAGGAAGTAGTGGCATCGGAAGCCAAGCTTGTCTTGGGATTTGCC
-ACCGAGGTCACATGGGAGTGGTCCCACGGGCCCCTGCCTGTCACCCCTTC
-TCACAGATGGGAGCCGGGGGTGCTGCTAGTGAGCGGTAGAGGCCATGGTT
-AAATCCAGTCCCCAAGGGCTAATGATTCTTCTTGGGGAACTGGATGAGAT
-TGGACCCACAGCACATGATTCTGATGTGGCTTCAGTGACTATGAATGAGG
-TGCCATTAGGGTCAGCAGTGAGCACTGCCCCCCGGTCTCCTTTCTGCAGA
-AGCCTGGCTTCCAGCACCCACCCGAGCACCATGGGGACTGAGGCTGCAAG
-AGCAGCAATCTCTGCCCCCTCCCAGGGCACCGTCTATGCTAAATCTTATC
-TTCAGCATTGTAAGTTGAGAATGTGCTCTCAATCTACATTTTAATTATAT
-CTTCAGATCTCGTCTTCTGCTTCCCAACAAGTCAATGGCACAAATTTTCT
-CTTTCTACCACGCAGTCCTCAATCTGTTGTATTCATCAGCCCATAGATTA
-CCCACAGAGTCAAACTCTTCCTGCAAAGACACTGACAGAGGAACTGAAAC
-AGAACAGTGAACAAAGTTTAAGAAATTTGGAATAACAGACTTTCTGCTGG
-AAAAAAATAAAATCTATTTGCACTTATCAAGATACGCCATTGCCTCAAGT
-AATGAGAACAACCGTTCACAGCACCAAGCGCTGCCTTCTGGGACTTGGAG
-GATCCTCTCCATTCTGAGGGAAGATTCCAACAGTTACCCAAACCCCAGGA
-CACTGAGAAGGTTCAGCCCTCACCCTCTCCTGGGCCACCTGGGGTCCAGC
-CCCTGGTCCGTGTACACAGAGCTCTGCTTGCAGGGAGCGGACTTCCTCCC
-AGGGGCCACCCTCGTGCACAAGCTGATGAGCCCCAGAGGAGGCATGGGAG
-ATGGCAGGTGTAGCCCCCAGACTGCACCTGAGTCCTGCGGTGAGGGCCTG
-TGCATCGGGGCGGGACAAAGCGGGGACTGAGGAGAGACGGGCTTCCTGGG
-AGCCCAAGAAGCACAGAGTCCAGGCCAGGCTGGCTTTGAATGTCAGTGAA
-TGCAAAGGAGGAAGAAAGAAGGGCCGGGTGGTCTCGGGGAACCACATTCA
-CTGCTCTCCCTGTGACTTCCAAAGCAAGGCCCTCCCTCAGGCTGGGTGGG
-TGGTGCTGTGTGAGACTTATGGGAGGGGAGAGGGTTGAGTGGGACAACTC
-TTCCTAGAGGATGGCCAGAGGAGGGTAGCGAGGCCAAAGCCAAAGCGTCA
-AGTGCGATGAGGACAGAAGCATAGGTGTCTCCTCCGTGTGTTTGCAAAGC
-ACAGAGCTGAGACCAGGCTGGGCACCCCGAGATTGCAGGGCCACAGCTCC
-GGCAGCCCCCAGAGACGAGCTGTGTAGCACAATTCTCAGCATTTAAAACA
-TAGGATGCTGTGGCTGGCTCTCTTGAGGGTGGGACACCCTGGGAGTTCTC
-CCAGAAACACCTAGATAAGATGTGAGAGAACAGGGACTCTGAGAGAGCAG
-ATGGGGCAAGGTCCAGGGACATTTGGGTCCTTCCTGGTAACATGGCCCAT
-CCCCATGTCCATAGGCCAGAGGGAGGTGGTGAGCTGTGCCTGCCAGCAGC
-CAGCACACTTTCCTTCTCCTGCAGCCTAAAGAGCATCTCGCTGGCCTCTG
-ATGAGCTCTCCGGTGCCTCCCACCCCTAGACCCGCACCCTTTATCATGTG
-AAACCGGGGCACCAGCAATAGTTGTCACTACTGACCAAATGCAAGATGGG
-CCCGGCAGAAGGGGTGGTGGATCCAGGCCAGGAAGTCAGGGCCTCATCTT
-GTAGCCAACAGCAGCCCCTGCTACACCCCTGCCTCCCCATGTCTCCCACG
-CAGGAAATGAGGGAGCTGATCCCTTGGCTGTGAGCAGGGTGGGCCATCCA
-ACAGCCATTCCTGCACTGCCACGTCCCTCATCACCACAGTCAGACCTCAC
-GCCCCCACCACCGTGCAACACGTCCTAAATCCAATTGATAAGATGTAAAA
-CATTGCCTCCCCCACCTTCTGTGCACAGTGGGTCAAAAGTAGGTGACGTT
-CATTGCATTACTTGGCATAAACATGATTTTAATAATTACCATGGGCCAGA
-ACCCACGCCTGCTCTTGAATAATGAGCACTGAATTCTATTATAGTTCAGG
-ATTAAATATCTTCCAGCTCAGTTCCTGCAGCAGGCTGGCGAGGCGATGTC
-CGTGGCCCAGAGCATGCCTCCATGGTGTATACGGCCCAAGATGAAAAATC
-CCTGCTGCTATTCTGAGCCCCTAATAACATATCATTTTGCAGCCATATAC
-AGCCACATCTGAATTATAGGCTGTATTTTGTAATCAAGAGGATTTGCTTG
-AATTTGTTATAATTTTAGGTGGTTTTCTTGTTCACTGAAGATAATAATTA
-TTCTCTACCTGAGGACACATACTAGTCTTATGACAACATCTTCACGTTGG
-AAACGGTTTATTTATAGTTCTTATCTGCACCATCAATATCAGGAAGCTTT
-AACATCTGCACGTCTTGGTGAGCTGCGCCCAACATCCCAGCCCcagagca
-gggcaggagctcagagaccactcccacagccaatctcccagaacctcttc
-ctcttgccaacgaggacagtgaggccctgggaggttagttggctcaccga
-aggttacCTGAATAATTTAAGGCCCTTTGGTAACACACATTAACTCTGCA
-TTTCAAACACCTCCCCGCTGCAAGTGTATTTCAGCAGTCAGTTTTCTTCA
-CTAACCCATATATGAGGGAGATAGGAAGAGAAGTGCAGGTGGTAAGTCGC
-AGGTGACCAGACACTTGTGTTAGGAAAATCCAGAGCCCCCCACGCCCCAG
-GAAGCAGCCAACAGAGAATCGCCTCCATGGTGTGGATTTAGAAAGCAGAG
-TTTAGAGATTTTTCCTGAGAAATTGTGTGGAAGCATGGTTATTTGAGATG
-TTCATGAGGTGAAGAACATTCATGGacatgcacacacacacacacacaca
-cacacacacacacacacacacGAGAGAGAGAGAGAAAGGGAAACCCCCTC
-CTATCCGACGTTGCCTCATGATGTTGATGCTACAGTCATAAAACCTTATT
-TTGCAGATTACAAAACAATTTCAATAGAATATCCCATTTGATCCCTCCAA
-AACAAAACCATATGTGGTAGAGAGACAGGTATCATGATTACCATTTTTCA
-AGAAAAACAAAAGAGATGGAGATCCGGGGAGTTGAGAACTCACTCCCCAA
-CACTGGCTGGGGCCTGTGGGGCGTGGGTACATCTCCTGCTCTCGGCTCCA
-TTGTTCTTCCCTTGCTGTCTCACCCTCCACCCCAGGAGGGTTTCCAGGAT
-CATCACTGTCCAGGTGCCTAAAATCCCACCatccagaagcaacctgtatc
-ttgtcatttattcagatgttatagattctacatagaagtctttttttttt
-tttgagatggagtctcactctgtcacccaggctggagtgtagtggcacaa
-tctcggctcactgcaacctccatgtcccgggttcaagtgattctcctgcc
-tcagcctcccaagtagctcggattacaggtgcaccccaccacgcctgact
-aattgtttgtatttttaatagagacagggtttcaccatgttgaccgggct
-ggtctcaaactcctgagtgatctgcccgcctcggcctcccaaagtgctgg
-gattacaggcgtgagccactgtgcccggcctgtctacatataagtcttat
-gctttgctgattaaatgtacctttaggtattttagaaagttaattcgtta
-tgatgaatagattttctgtccatctccacttgaaactggatagttctgaa
-agaattgttattattctgttgtgaattgaccttctgccccagcgacgtca
-ccacattcacgggtggtgttcatggtgtcttcagtcttttggttttctgg
-ggatacaaccatatcctggaccagtgaataaGTCTTTTCAATGTTAATTA
-TGTATCGAATAACATTCCAACCAGATTCCCCATGGATATTTTGGCAGACT
-GGACAAAGCAATCTTCAACTGCACACGGAAGATAGAATGTCCAGGAATTG
-TTATTTGTTTAATTAAGTATAAATACCTCCTTCCATCAAGACAATATGAC
-ATTTCCACACATAGACCAAAACAGATCAATGGAACATAACAAAATGCCCA
-AATTTGTCACTGCCatggccatttttatgtgtcaacttggctgggctgga
-gtagccagttactcagcccaacgcaaacctgcgtgtagctgtggaggtat
-tttgtagatgtggctcacacctcctactgatgggctttaagtaaaggaga
-tgacccttgatcatgtgggtggaactcagccaatcagccgaaggccttca
-gaggaaaaactgagatttcctggagaagaaattctgcctccaaacagcag
-cgctaactctgcctgagtctccagcctgccagcctgtcctacatatttta
-gacttactaaaccctgtgatcacatgagcctgttccttaaaataaacctc
-tctttccacacctcaaattttctgaatcagttctctaatcggattagatt
-tcaaagccctaatgactccattccaggggtgatgcgtctgtaacacaatg
-tggcgatggagacacacacgagcccacaaccggatgctcctcataaaaca
-cgcagaagagccaaggttctgggtggccatgtatttggtgcctcagaaca
-tttttgtcaaactaaagagcataaggagattggctggttctcctaattgt
-gctcggcaaagcagggaaaaaagagagatgagctcagggattagaatttc
-cagcacgagcacccggtaagtgacctagaactgtctgggtctaccccaaa
-ggaagcccttccctcctgttgctgcagagcttagatttctgaaaacgaaa
-tccagagtctcatcctacaagtggctgaattgcaatcaaaattgaatccc
-actttttagggAGGGTGTTGATTGGAGGGCAGACctgaatgccctcagga
-ccacccccccgccacccacctctctttgcttccaggcctgtaactaggct
-caagtcccagaagaagccgagaggtcaggggttcatgcacgagtgtgacc
-tgtgagaaggtgcactataatttttctttttttgagacagagtctttctc
-tgtcgcccaggctggagtgcagtggtgcaaactccgcctcccgggttcaa
-gtgattctcatgcgtcagcctcccaagtagctgggactacaggcgcgcca
-ccctgcccagctaattgtttgtatttttagtagagatggggtttcaccat
-gttggccaggctggtctctaaatcctgacctcaggtgatccgcccgcctc
-agcctcccaaagtgctgggattacaggaatgagccactgcgtccggcctc
-actacaattttaaaaacctacatttttccaatttatagagacagaaatct
-caggactatgtgtggaaatggacattgagaatgtgggataatggtggaag
-gaatataaattcaggctcaatttgttgatataggctcactaagcagaaat
-tcccaattcagtgctgtagctcagaggtggaggggaggcggtggtggggt
-ctctaaccatgtgttgggctggttgcctgaaggctgaaccacagcatgtg
-agctggaaatgcagggctggaattggtttactgcagaagaagtgattcga
-agatctggagaggttggagcatgacagtggacatatcagtaagacccact
-ctcaccctgggagggcctagaggccatgcctttgcctgtggccatgagaa
-atgaacgcatgcaggatcccagctttgttgaagtgccctgtcgttgttcc
-cttctgtaggtcagatattatggtgggaaacgctgccagggaactgagat
-ccaaaaatgtaatgggggtcattggcccctggtgtggcagggtcaggggg
-cagcatttcacagccagagaacaagggggcgtggttgtggtgatggacag
-cagagtcactgcagcaattagaatagtctgacctgcagagacctattgtg
-ttggttggtggactgcggtgtccataaaacagaagtagatgggcaggccg
-ggcatggtggctcatgcctgtaatcccagcactttgggaggccgaggtag
-gtggatcacctgaggtcaggtcaagaccagcctggccaacatgacgaaac
-cccatctctactaaaaatacaaaaatgagctgggcgtgtggcgggcccct
-gtaattccaactacttgagaggctgaggaaggagaatcgcttgaacccag
-gaggcggaggtggcggtgagccgagattgcaccattgcacttcagtctgg
-gcaacaagagtgaaattacatctctaaataaataaataagaagtatatgg
-gcagtctaagtttttacgtgacctatataagtggaaatgttctagaacaa
-gtgaacaaaaatgtaacttgaatcactcagccacagcccctcaatcaatt
-tccagtcttgagccagtttacaaacacaaaatcccttgaataaaggggag
-gcctgttccaccttaggaaggacccagctaggctgccaaaaatttagtca
-acttttctcccaaccttccccaaaggatctgtggccgtttactggggtag
-atgtacattggagaaaagaaactaatcagagctttgggggactgctggac
-actggctctgaactgacattaattccagggaccccagaagtcactatcac
-cctctagtctgagtcggggcttagggaggtcaggtggtcaatggagtttc
-tgctcacgttcatctcacggtgggcccggtgggtccctgaacccatcgtg
-cggttattttcctagttccaagtgcatggttgggatagacgccctcagca
-cctggagggtctccatacaggttccctgacccgtgttgtgaggagtgtta
-cagtggtgggaaaggccagtggaagccactataacagcctctacccagga
-caatagtgaaccaaaaacaatactgcaaccctggaagcactgtagacatt
-ggtgccaccaccaaggacttgtaggatgcaggggtggcgagtcccactgc
-gtcttcactgcattttatttggcctgtgcaaaggacaactagatcctgaa
-gaatgacactgagttctcaagtcacttaaccaagtggggacactccacct
-gtgactgctgtaccagatgtgggggtacaataagacctgggggcaggttt
-tatggcttgagctaatggacacatcctctggtccctggtatactcgccca
-acttcgtggcttgctgggtcagataacaccagttcatgatgggcagctca
-ggtcacacggttactggggggcccctgatgaagtgttccatttgtcctaa
-ggtccagcagcaagccaagagctgtttctcaaaaggagagcaacgacagc
-ggatggtggggctttgctcccaaattctaaaacatcctccgctgtgattt
-acctctggggcctgccaaaggctacacacacagtccctgtctgccactga
-cacctcaaacaacactggatctgctgggtcttatggcccaagtggcagag
-AGtctgacatgtaaatgtcttagcagtaagtcgcgagtaattgctacttc
-ttgctcactaggtctcatcagcataaagtcatccatggaatgaactagtg
-tgagctcttgtgaaagtgaaaggtggttgacatgctaagaactcaattct
-gacaggctggagagctgatggactgctggggcaggaccgtgaaggtgcct
-gactggccttgccagctgaaagcgaactgccttatgatgggaatggagaa
-gaaagcatttgccagatcagtatctgcataccagggctcctgaacaaagc
-gcccgtggtgcctgggatggaggctgtgctttgcctcagaaacagactcc
-cgctcatcaagccccagtggctatggccaccatggattgtccaacctgcc
-agcagcagagaccagcacagggccccaatgtggcaccattccctggggtg
-atcagccagctacctgggggcaggttgattacattggactgcttccaccc
-tggacaaggcagcattttgtccttgctggaacaggcactctgggcgtgga
-tttgtcttccctgcactcaatgctgctgcaaaaaccaccatccctgggct
-cacagctgcctcgtccaccatcgtgctgtccacacggcattgcctctcac
-caaggagctcacgtgacacaaatgaagtgcggcaatgggctcaggctcat
-agaatgccctggtcgcatcctgctttgtgtaatcctgaagcagcagagac
-cagcgctgggccccgatgtggcaccattccctggggtgatcagccagcta
-cACCGCCACCTTGGTGCCAGCatcacctgcttttgaccgctgagaaaacc
-aagacacagaggggctgggacacaccctgtttcttgcaggtgggaagagg
-cagtgccaggaagggaaccgggggctggcatcccccagcctcaatgctcc
-ttcTCAAGTGGAGAGAAGTGCCCTGCGGAGCTGGCAGAGTGTCCCCACCA
-CCTGCGGGCCAGGTCGCCTTTCCCAAGGGCCAGGAGCATGTCCTGGCTCC
-ATCCCAGAGCCAGACCTCAGCCATCCTAAGAAAGCCCTGCCCCGAGAGAC
-TCCTGCTGTGGGAAGGGCCCTGCGGCAGCAAGGACAGGAGGATGTGAGGC
-AGATTTGGGGTGGGGGAGGACTGCGGGAGGCCAGGTGGGGGAGGGGTGTC
-ACCTGCCCCAGGAACCCAAGGGGGGCAGTGCCCAAGACACACACAGGCAC
-CCCCTCCAAAagaatgatggaatagctttttgaagactggctacagcacc
-agtttggagggcacccatcttgcaCAGAGCACGCCAACTCCCCATTGCAG
-CCCCGGGCACTCCCGAAACCTCTGCTCTTGCTTCCTGACCCCTGGTCACT
-TGGGATAAACCTGGAAGGTTCTTCAAGGGCAGGTACAAGACAGAGAAGAA
-AGCGCAGCCCGGAGGAGAGAAGGTGGGGCATCTCCTCCCCACCGAGGCCA
-CCCTGCAGCCCCCCACAGAGAAGTACAGTGAGAAGGTCACTTTGAAGAGA
-GTCTGGAGGGAAGCCCTCAGGCTGCACAGGtttttatttgtttgtttatt
-tgtttttttgagacagagtctcgctctgtcacccaggctggagtgcagtg
-gtgtgatcccagctcattgcaacctccacttccctggtttaagtgattct
-cctgcctccctccagagtagctgggattacaggcacccaccaccacacca
-gctaatttttgtatttttagtagagatggggtttcaccatgttggctaag
-ctgttctcaaactcctgacctctggtgatctagccccctcagcctcccaa
-agtgctgggattacaggcatgagccaccgtgcccagccTAGGCTTTTGAC
-ATCTGGAAGCAACCAGAAGAGCTTTGAGATGTGCTCAGGACCTCCGCAGG
-ACAGGGAAGGATGCGGGCAGAGCTCGGCATCAGTTCATTTACTCTCAGCC
-TTGAGAACAAATGGACCTGCTCTGCCGCCTCCACCAAGGCTGGCTTCTCC
-GCtcctggaataaacttgctagtccatgatggattatccatctaaatata
-ccacaggatttgatttcttatttaaattttattgaagatttttgaatcca
-aatttagaaatgaaattaacatgtaattttttcttcttttattatcatta
-tcaatctttggtgttcagcttTTCATCTTTTTGTGTGTTCTGGAATAGTT
-TAAATATCAGGAATTAAAGAATAACCAGAATACAGTTCGGAAATCATTAA
-CTCAAGGAGTCATTTTTATTAGGTGATTTTTAAAATAGTCCCAAGCTCCA
-CTGTGACCAGAGTCTTCCAGGTAAAATGACAGAACTTACGGTACAAAATC
-AAGGTCAGAAGTGGCTGCATCAAGAAGGGCTGGGAGAGAGGGTTGAGTAG
-ACGCTAGGATGGGGAATTTTCAGTTCTCATTTTATAGACATATCTATGTT
-ATTTTATTAAAGTTATTTCAGATATAAGACAAGACTATAAAGGAGACTAA
-TAAACACCCTCTTGCCCACCACCAAGGTTTAGCAAATCAAAACATGATTT
-ACTTAACAAATTCTCATATCAACTTTTTATTGTGCCATAGAGAACACATC
-TGAAAGGCCCGCCTCCCTGAGTGTTCACACACAGCGTACATCAGATCACG
-AGGCAGGACCTGATCAGCCCCAGGAGTCTCTGGCGCTCTGCCTCACCCGA
-AGGGAGGCTCCAATCTTCCCTGTCATGGCAGGGATGCCTCTTGAGCCTCT
-TAGCCTCCATGTGAATGGAACCAAAGTCTCTTTTTGCTGATGGAatgttt
-gtgggattcctccaggaatgaccctgtgcgtgaccttgtggcccctccac
-tcccgttgtgtgtgattgtattgtgtgaagtgtctggtgtatgtacccat
-tctctggatgagcaggcagcaggctccaactgggcactatcaagagaagt
-gcttccagaatattccaggaagtggtacttggtaaacacatggacccatt
-ctattgggttgatacccaggaagggaactgcatgggcacggaatgtgctg
-gtttttggcttcaggaggtgctgcccaggggcttcccaaagGGACGGTGG
-CAGACACTGCACTGCAGCAGTGAAGAGGTAGatcccagcacatctggagg
-ctgaggcgggtggatcacctgaggtcaggagttcgagaccagcctggcca
-acagggtgaaaccccgtctttactaaaaatacaaaattagccaggtgtga
-tggtgtaatgcctgtgatcctagctactcaggaggctgaagcagaatagc
-ttgaactcgggaggcagaggctgcagtaagccaagatcgcaccatggcac
-tccagcctgggtgagacagagcaagactccgtctcaaaaaaaaaaaaaGG
-TGGAGCTCCTTAGTCCCTCATCCCCAGGCATCTCCCCGGGCTGCTGAATA
-CACAGCGGCAGCTCAGGGAAGCGCACAGGGTGTGAGGGCCATTGGACATG
-CCTTTTTGTGAGGAGGTTGCTGAATACACAGCGGCAGCTCAGGGAAGCAG
-CACAGGGTGCGAGGGCCCCTTGGACATGCCTTTTTTCTGAGGAGTTTAGT
-CAAACATGAGGCCCCACTTTCTGCTGCAttttttttttctgagatggaat
-cacactctgtcacccaggctggaatgcagtggtgcgatctcggctcacag
-caacctccacctcTTATCCTCCATGtgaaccaagcacattccatccccac
-gcggttcccttcctgggtaaaaacccaatagaatgggtttgtgtgtttac
-caacagccactttctggaatattctggaagcacttctcttggtagtgccc
-agttggagcctgctgcctgctcatccagagaatgggtGCATGCACCAGAC
-ACTACGctgggttcaagcgattctcccgcctcagcctcccgagtgaccag
-agttacaggcaccggccaccGTGTTGCATtgtcttgcttccttacccatc
-tgaagttcgttacacacgttagctacgagtcctgtgttgcaaacctgcct
-tgtcagtatccccgcccaccaacagctgtcctctccctctcttaatggca
-tcttctaataaacggaacgtcctcattttaatgtaactcaacgcatccac
-tttcctaggccttgtttacgaaacctgcccccactaagaccacaaagatg
-ccctcctacacttttttctaaaagcgctcctgttttcacatttagaacgg
-taatacatctgaaattgatttttatgtaaggtaaaaggcaggggtcagga
-tgcatcttttcccacacagatattcagctaatccctccccacttattgaa
-gagcctccccttttcttcctggactgcaatcttggctttctttcaaatat
-atatatatatTTTTAATGAAACTCAAGGTTACAGacaagttttcccatta
-atgtcctcattctattccaggatctcatccacagccctacatcagattta
-cttgtcaaaacaatctggttcctctggtctgcaagaggttctacatctct
-ccttgtttgtcatgaccttgacggtcccaagcagtacgggccacgcgtcc
-tgtgaactgtccctgagcctgggtttacctgctgtttcttggaaatcaca
-ccacagaaaggaaatgcctatctcagcacaccgccccgggggtgcgtgat
-ttccacctgccattgctgggggtgccgaccttcatcatgtggttaaggag
-gcatctgccgggattctccactgtgagcttcctgtggttcctttttgagc
-ctattgtttgcaaactagtcattgagtctgaccctgctcccctgtttgga
-gaagagaggagcttattaatctccacctcctggataacgaggagtagcta
-catagaatcagaattctacagcaaagtttagtgtctcctcctctatttgt
-ttatttattcggccatttatttatattcatgtggacttaagacgcatatt
-aattttctacactggCAAATCTTTTCAAACATTCAGTATTGAAGGCAGGG
-TTGTTGtttgcttctgattgagttggagcaaaagggaccaggctcagcct
-ctgaccggaagcaataaagccagagaaaaatacatgaaaaaatcattttc
-caaacactggacaccgggctgggaaggaccggggaccctgagaggaggga
-aaccagtgcagtgacctctgtgattgcttcagccactgccaagagtttcc
-agccacagtaccctgaggggcatccacatggggactggtggacccctgcg
-ttgagtggacagagctcatgagaggggagggcagcaccgggagtgggccc
-cagagttctccaggcccccacaccgcactgttcactgaatattgatcagc
-acatgtatgtgaggaagctacctacaccgcagtgttcactgaatattgat
-cagcacgcgtgtgtgaggaagctacctacgcctcagtgttcactgaatat
-tgatcagcacatgtatgtgaggaagctacatatatgtacttctctggcta
-caaagtcagagcaagaaccacccggaagaatggaaggaaacgatgttcca
-agctcgccaggatgggaatatcgcccgttctcaccaggcgtcgagaagag
-ctcagagttcctggaacattgaggagattcttcagaaggctcatgtctct
-gaataggggaaaattagccctagactaaatgttgctctcattctgcctaa
-tcaatggggaaagcaattcctgaaaggataaaactatttccaagtaacgt
-aattgtatatcagaacagagctcaaaaataatgtaggaatataaaaaatt
-taataccaaagaagataaaattcataacatctggcatccaataaaaaaac
-taccaggtagtgcaaaatgaagagtaaaaaaaaaaatcaactaaaatcaa
-cccatgaccaacacagatgttaaaattggccaaaacagacatgaatatag
-ttatttaaattataaccaaccacaagttcaaacactagagcaaagattgg
-gcatgttaagcagagacttggaggttattaaaaagcaccaaatcaaacat
-gaaaactgcagtgtatgagatgaaaatacactgaatgagattaatggaaa
-cttagacattgtgaaagaaaatatcagtgaacatgaaggcatagcaatag
-aaactatcaaaaatgaaatgtatagagaaaaaactaaaacaacagcatat
-tagtgaatgatagaaacttttttttttccttgagacatagtcttgctctg
-tctcccaggctggagtgcagtggcatgatctcggctcactgcaacctctg
-cctcccaggttgcagcgattctcctgcctcagcctcctgagtagctggga
-atataggtgtctgccaccatgcccagctagttttttgtatttttagtaaa
-atggagtttcaccatgttggggaggctggtctcctactcatgacctcaag
-tgatccacctgcctcggcctcccaaagtgctgggattacaggcatgagcc
-accgcgcccggccgagaaactttttagtagcctaatatatttgtccttgg
-agtccccagagagacaggaaagaaaggaaaacatatttgaagaaataatg
-gctgacattttcgtgaatttctggaaaactctaagcccagaaacacaaga
-tgctcgtgagccccaagattaagaaataagaaaactaccagctgcatcct
-cataaattgttctaaactactgatcaagagaaaactttaaagcagcaaga
-tacaaagttatattacatgcagaagaacacaggtcagcacggcaacagat
-ctatcatcggaaaccatccgagcaagaagtcagtaggacagtgtctttaa
-ggtaaaaaaaaatgtcaactctcagttctatatccagtgaaaatgtcttt
-caaaaatgaagacaaaatactgctttagacatacaaatgctgaaagaatt
-catcaTGGccaagaaatatttcactaaacaagctacttcactagtaaatg
-agttttgcaaagttgcagaatacaagatacatgtacaaaatcagttgtag
-ttctacatattatcaatgagcaattagaaattaaaatttaaaagcaccat
-ttgcaaaggcatcaaaaatataaaatacttatgaCTGACAatgtgcaggt
-tatttatgcaatttctatcaaagtgccagaaggattttttgtatctgatt
-ctaaagtttatacaggaaactaaaggaaccagaatagccaaaaaaaaaaa
-ttttttttgaaaagaagaatgaaattagggaaattgcactacccgatttt
-aagacttaaagccttactctgtagctgcagtcatgaagatagtgctgtgt
-tttataagcatagatcaatacagctatagaacagaatagagtccatggag
-agacttactctatggactgattttatgtcaaaggtgcaaaggagatgaaa
-tggagaaaggatggtctcttATTTAACCCCATAGAATGTAAAACCCtttt
-ttttttttttttttttttttttttgagatggagtctcactctgctgccca
-gactggagtgcagtggcgccatctcagctcactgcaagctccgcctccca
-ggttcacgccattctcctgcctcaacctcccaagtagctggaactacagg
-cgcccgccaccatgcccagctaatttttttttttttttgtatttttagta
-gagacagggtttcaccgtgttagctagggtggtctcgatctcctgacctc
-gtgatccgcccgcctcagtctcccaaagtgttgggattacaggcgtgagc
-cactgtgcctggccTGTAAAACCTTTTTTTGCAGCCCTAAAGATGACAGA
-AACAATGACAAAGCACAAACACTGAAAGGTCAATGTtttgcaatacaaac
-atatgacaaacgaatggctgtccctaatttacaataagcttgtacaaatc
-aaaagcaaaagataaacaacccaaaagaaccccaggccaagaactgaaac
-aggcagttttcaaaaaaagaaagacgaatgtggccgggcgcgatggctca
-cgcctgtaatcccagcactttgggaggccgaggcgggcggatcacgaggt
-caggagatcgagaccatcctggctaacacggtgaaaccccgtctctacta
-aaaatacaaaaaattagccgggcgtggtggtgggcgcctgtagtcccagc
-tactcgggaggctgaggcaggagaatggcgtgaacctggggggcggatgt
-tgcagtgagtcgagatccctctgcactccagcctgggcgacagagcgaga
-ctccatctcaaaaaataaaataaaataaaaagacaaatgtacatcagaca
-catgaaaatgtgttcaatcttaTTTATGATTTATGGAATCAATCTTATTT
-ATGATTACTGGAATTCAAATAAGAACAGCCAAAATTAAACAAACaaacaa
-aaacaaaaacaaaaacaaaaacaCGTGTGTTTTTCTCACCCAGCAGATCA
-CCAGTGGTTTAACAGCTGTGGGCGGAGGAGTATCAAGCACTCCCATATCC
-TCGGGGGAAATGGAAGCTCATGCTGCCTCTGCAGAGGGTGAATGGTCAGC
-ACAGAAGACAGCCACAGATCAAGAAAAACTAGTTGTCAACAAGGCCCACT
-CACTTAGAAACAATCTAAATAAAACCCGGAAGATCAGAGCAGATTATTTT
-AACATTTAATTTGTGTTTTACCCTTAACAATATGTAAAATCCATGAACAA
-AATTTTTGTTCTATACTTTGTGCTATATAAATTTCTTAATGCAACTCATT
-ATCCGAAGACTCAGATGTTGACTCTGGGTTTTCAAGCGTGGTTTTTCCAA
-ATAAACGTTATGATGGTAGAAACCTTTTCCACTATTTCAGGGCAGGAACG
-TAGTTTTATGCAATATTGAATGGCTTCATCAGGTTCCCCAAGGGCCTCTC
-TTGGCCCTGATATCACCACACCTGCCTTGTGTCTGTTGGCAAATTTGTTT
-GTTTTTTCTCCATAGTTAACTCTTTGAAGTCCTTACCTGTCAGTGACTTT
-GTGGAATTCAGGCAATCCTGCAGCATTACTCTCATTGACTTCATCAAAGT
-TCTGACTCCTTTGAGAAACTTGAAACACCAGATCATATTTGGTCAACATC
-CTCAtttctttttttttttttttttgagatggagtcttgctctgttgccc
-aggctggagtgcagtggcatgatctcggctcactgcaacctctgcctccc
-aggtgcaagcgattctactccctcagcctcctgagtagctgagattacag
-gtgcccaccaccacgcctggctaattttttttgtatttttagtagagatg
-gggtttcaccatgttggtcaggctggtctcgaactcctgacctcatgatc
-ttcccacctcggcctcccaaagtgctgagattacaggcgtgagccaccgt
-gtccagccCACTATCCTTATTTCTTTACATCAGTTGCCCGCTTTTCAAAC
-TCTAGTATTTCATCTGTCCATTTGGCTTCTAATTTAAATTATTACAATTT
-TCATTTCTATTGACTTAATTTTCTTCCAACTGAGCTCTCACTTTTAAATT
-AATGTATTTATTTGAATTGATAGTTGTacatattttagatgtacacattt
-tgggggtacatgagataatttgatacattcatataatcgaattagggcaa
-tttgagtatccatcacctgagatattttcttttctgtatgctaggaacat
-ttgagtcattctcttctagcttttttgaaatgtacagtggattaatgcta
-accatagtcaccctactgatctatggaacacccggtcttatcacttttgt
-ctaagcatatatctgtatccattaatcaacctctcttcatcccctgaccg
-acttcccttcccagcctctgataactgccaagctactttctggctttatg
-ggTCAGCTCTCATTTCTAATAGTATCttttttttgagacggagtcttgtt
-ctgttgcccaggctgtagtgcaatgacatgatcttggctcactgcaaact
-gcgacttctgggttcaacaattctcctgtctcagcctcccaagtagctgg
-gattacaggcgcccgccaccatgcccagctaattttgtattttagtagag
-atggggtttcatcatgttggccaggctggtcttgaactcttgacctcaag
-tgatacacccgcctcggcctctgaaagtgctaggattacaggcgtgagcc
-actgcgcccggctGCTAATAGTATCTTGTTCCCTGCGCATGTTTCATATT
-TCCACTTAAACACATGAAATGTGCTTATTGAGAATCTGTATATCCCCACA
-TCTGGAGTCATTGTAGGACAAAGGCAGTGCTGTTTCTGTTTCCCTATCTG
-GTGGTATTCTGTGCTTGtgtgagtttatgggtttccaacggatcattctc
-tggacagattctgaggcctgggttgtgggtgtctaactacataaaatagt
-gcctttccttcagtgagccccgtgaacctgggcctgactgagaaattcat
-ctgctagagtgtttttggaccatgcagaaaattaaagccctaacccttct
-ctggatttttgaggtctgagttttcaaaggaatcaacccccctccctgcc
-ctctacccagagccagagttgagtaacacaaatgtgcttgctatctcttt
-tgcagggaagatttttctctaaattccccttttcctgacggtagctattt
-gagtcttccaaccacacacaatgatccttatttatctcctcaccttgggt
-CTTGCGCCATTGTTAGAAACCCAAACTCCATGTGACTGTGCCTGACAACT
-GCCTTGATGGGCCACCGATGTCTCCAGAGCCTGCTTTTATGCTTTCCTGT
-TACGTTTTATTTCTGAAGATTGTTCTTACTATTTTGGTTTGGTAAAGATT
-CGTGTTTAAAAGCATATATTTTGTACTCTATCCGCCATTCTGAAGTATAT
-TAAAGCAGGATGTTTTGTCCAATATATAACTATCAAAAGAAGCCTCTTTT
-AAATATTGTAAATGTCCCCTTTTAATATTAATTTTCAATATACCCAAATA
-TTatttttaagtataatataaaataatgtttttcatattgattatctata
-taccattattatattgattatataccattttattaaaaaaacttctattt
-ttttctcattgaggttatggcacccctgccatatattgatttcacatatc
-ttgggtgcatcctgggctgtttctttctgtcggttctgtttgtcacagta
-cactctgtaccttgtcttaattctatagctttctagtgtatattgatatt
-tggtaggacatgcctcttttcttcttcttcttcttcacaaataactcagc
-tattatttgcccttctctattatgtgataataaatgtcatgctccatgaa
-aaatactattggaattctgcatggacttacattaaatttatagactaatt
-taaggaaaattgacttgttcatgctactgactttgaatccataaatacac
-cgagtcatccagccagagctatatgcacaatcttccctcagtatccatgg
-ggatgggttccaggacctcccacagacaccaaaatccccagatgctcaca
-tccctggtagaaaatggcataatatttgcgtataacctccacacatcctc
-tgtgcgctttaaatcatctctcgattgcttacaatgcttaataaatgtaa
-atgctatggaaattgttgttaaactgtagtgtttagggaatcatgacaag
-aaaaagggtccatatgtgatcagtacagacacaaccatccactttttgaa
-atatttttgatctgcatccacagatgtggaacccacggatatggagggcc
-aactgcatgtcttttggaattcctaatcctgcttgtaggggcctggtaaa
-tctttggcatctagtagtttgttggaaaggtaaatggaaatttgtttcct
-gttgtattttctatttattttaccatttggaatgctactgacatttttta
-aaagtacatatccagaaactttcttggtagttttgtttctttgatggtcc
-atgtatacaattatatcgtctgcaaataaattgtcttatttttataattt
-ttgaatctattttttcttgccttattacattggcttgagtccagggaaat
-ttgaagaggaacagttggagctgggtcctaagtctcattcctggcttcaa
-aaagaatgtttttaaaatgttacccctaacgacgcgcttgttcatatccc
-tggtagatgtccttcctccggctgagaagccactctccactcctggttgt
-tgagtagtttctatcccgaatggatcttggacttttttcagtatattttt
-ctgACTTTCTTTTAATGAAAGTAGGGCTTAATAAAGTGGGGTCAGTAGTT
-ATCGTGGAAAAATTTAAGACATTAATATGTCTCTTTAAAAATCCTCCTCA
-AAATCCCTCCTTCCCTCCCTGACCTTATATATCCTTGATACTGGCAGTGT
-GCTTCAGAACTCTTGGCTCATTCTCCACCATCAGCTTAAAtttctattta
-tttatttttttgagacagagtctcactctgtcatccaggctggagtgcag
-tggcatgatcccagctccccgcaacctccacctcccgggttcaagcaatt
-ctcctgcctcagcctcctgagtagctgggattacaggcatgcaccaccac
-atccggctaagttttgtattttcagtagagacagggtttcaccatcttgg
-ccaggctggtcacgaactcctgatctcaaatgatctacccacctagccct
-cccaaagtgctgggtttacaggcatgagccaccgtgcccggtcCATCAGC
-TTAAATTTCTAAGTGGTGATCTCACTTTGAAACGTAGAATTTACTATCTT
-TGTATCTATGCTAAAACGAAAATGGGCTCATTTCAGCATCTGGCTGTAAC
-TTCATTGtattttggatgattccctttgaactctcttccaattcactact
-tctcactttgactgcattcaggcaggctagactttcacacatatatggct
-tttttaataaaatgtatttcaatgactcctttttaattcatgtttaagat
-ctccaattagctgcttttcacaaaaacacgtcattgccttttgtctgttt
-tttattattttttgtgcatttgtaaatatgatttcaccttcaattctctc
-ttgaaacaccttcagcttattttgaagcctctgtttgtatgtaaagacat
-gaatgattttacctagagtcaatttatgttccaagagttggttttcttgg
-ttacagttctttatttcttatcatTATATTCATTTATGCCTATCTCAGTT
-TGGACCTCCAAGCCAAATTTGAGTGGGAGAAGTTTGGGGGGGTGTTCCTC
-CCTATGTTTCTGTGCCTCTCTTTTTTCTCCTCCTCCTGCCTCTGTCTAAG
-GACGGTCCCTCCACTGCACCCTCCACGTGATCCTGACCCGGGTTCTCCAT
-AGGATCTGTGTGACTTCCTGCAGGGATACTGCAGTTGTCTCGGGTCCATC
-CACAGTGCCAGGAGGGCTGGGCTCAGATCCCAGTCATGCGGTCTCTCTGT
-GCCTAAGGCTCACCTCTAACTGTATACCCTGGACtttatttacttattta
-tttatttgagatggagttttgcttttgttgcctaggctgaagtgcaatgg
-tgtgatctcggctcactgtaacctccgccttccaggtccaagcgattcac
-ctgcctcagcctccaaagtagctgggactataggcgcctgccaccacatc
-cagctaactttttgtatatttttagtagagatggggtttcaccatgttgg
-ccaagcttgtctcgaactgctgacctcaggccatccacctgcctcggcct
-ctcaaaatgctgggattacaggcgtgagacaccgcacccagccGCTCCTG
-GACTTTAGAGCGAGTTTCCACTCTGATATCATGAGGTCACCTCACCTCTC
-CACTGTAGGCAGGGAGCCTGCCTCTACCCTCCATTCTGATGTTTCCGGTC
-ACCAGCATTGGGCAGGATTCAACCCCGCCCACCTGCACCCGACTCTGGAC
-TAAGGAGACCAGCTATTCTTTGGGTTTTTTTCTGAACGAGGCATCATGAG
-TATGGAGCAAAGGAGGTTATTACAAGGTGGATTCTCTATCCTGTCTTCAT
-AGGAAACCCTTGCAATTGCTTTTAAGTGATAGAATTTTAAGTAACAAATA
-CTCCCATCTTTTATTAAGAAATTCTCAAACAAATATATATCATGAAGAAT
-GCTTATTTTGTAGAATTATGTATTAAAAATAATAGAAAATGAATGTGCAA
-TATGCAAGAATAATACACTCATATGGCAAGCCCCAAAAGAACTTGAAAAA
-TTAAGACACTTAATTTGTAAGTGTTATGGGATTCTGGATACAGTTTTCTT
-TTGACGAAAATGACAATCATCAAGAGTATATAATAGTTTGGTAGACTGAA
-GAGATAGAAGAATGAAGTAATAATTGTATTTAATGATTAAGCGATTTTCT
-TTTTTTGCAAGAAACAGGTCAAGTCTGCAAGCAGTTGGCATGCCAATTAG
-AAAAATCTTAGCAGTTATAATGAAAAATGAAAAAAAAAAGGAAATTAAAA
-ACATTAACATTTGAAAGAGAAAAAAGATTCTTTCTGAATCATGTAGATGA
-AAGCCCAGGAGTTCTCTCAGAGGCCTGGAGGAGTTTGTCCTATGCCGTGG
-GTCAGTCCCAGCTCTGGGCTGTGTGTGGGGGCTATGGAGGACTCAGCCCT
-AGGACCCTGAGGGACCAGGAACCTGGGAGTGAGGGAACCAGGGTGGGGCT
-GCGTAGGAGTCAGTGGGATGCCACCCTGGAAGAAGAAAGACCAGGCTGAG
-TCACAAGGAAAAGCAGAAAAAGCAGGGGGGTCTTCGGACAGTTGAGCCAG
-TTAGGGGACAACTTTACCTTTTACAGTAATAATAATGCATCTTCTGTTTC
-TGCCAATGACCAACAAATCCCAGGTCACAGAAGACCACGGAGGGCACAGA
-GGGAAGGGGTGAACACTGCCTGGATTCCACTATGTACATTTCAGATAATG
-TTCCCCCCGAGGCCAGAGTCACACAGCAAGCTGGGCAGGACAGGCTTCGG
-ACTGGTGGACGTGGCCTCGCCCCCTCTGCCTCCCACAGGCCGGGGGACCT
-GGCCTCGCCCCCTCTGCCTCCCGCAGGCTGGGGGACCCCAGGCCATGCAC
-TCCTGAGGAATTTCCAATAGGCTGCGGCCTGGCACACACCTCTGAGGCTG
-CCAGAGCTCCTGCTCCTCCCTCTGTGTGCCATGGCCTGGGGACAGGGCCT
-CCCATGTTCCCAGAGTGAAGGGAAGCTGGACCCTGGCCTCCCTCCATGTG
-GGCTCTGATCACACATGTGCCCAGGTGCCCTCCACTCTGGGCTGGGGGCT
-GACTGCCGCCTACCCCTCCACACCCTCTGCGGAGAGAGTCAGTGTAGCTC
-CTGGCTCCAGAAGCTTCCACTGGGCTTCTGTGAGTTTCCCCCCTTTACTG
-TAAGTTAGAGTTTCAGCAAAAAGACATCCCATTTATCAATGTCCTCTTCA
-TCCATCAATGCTCTTTGTTGATTGATGTGTTGAAAGCAATTCGTGTTACT
-TTCTTCAAGTGGAATCTTATTTGGGTATCATGGACCCCAAATCCCAAACT
-CTGACATCTGCTAAGGGTGTTCTTTAAAATCTTCTTTCGCCCAACAGTGA
-AGTGCGGATGGCTAAGCAAAGCATGGCAAGCCGATGGAACAATTTCGCTT
-TATCAGAAAGCTGCTGCATCTAGGCCAGCTCCAGGGCTGCCAAGACCCCG
-CGTGCATGCCCTTCCCATCTCATTCCTCTGGCATGCGCCACCCGACACAG
-GCCCAGGGCAGCCCCTGGCTCAGGCCCGACACCCTCCGACCTCCTCCAAA
-CACTCCATACAGGGCGGTTCACTCGCTTCCCAAATGTCTACTGAGAACTG
-CAGGAGGTGCTCATGCTTCGGCAATGCATTTTCACTCTTTACAGCCCTGG
-GTGCAGCCTTCAGTTATGTAGATGAGAGCTCAAGTTGTACCTGGAAAAGT
-GAGGTGATTTGCATGAGTGTCCACAGCTCGTGGTAAAAATTGCTTTGGCT
-GACAACAAACCCCAGGTCACAGAAGACCATGGAGGGCACAGAGGGAAGGG
-GTGGACACTGCCTGGGAAAAGGGACAGCTGAGATGGGAGCTGGGCACAGC
-GCCACACAGGAAGGCGCCAGTGAGCTGTCCGTGTAGGTAACCTCTGGCCT
-CTGCCCTGGCCACAGTCTGGAAAAGACAGATGGAGAAACCTTTCTCGTCA
-GATAAAAGGTGCTGAgtggatggaatggtggcccccaaaagatgtgtctg
-tgtcctgaccccagaatctgtgaatgggaccttacttgatgaaaaggtct
-tcaggttttgtcattaagttaaagatctcaagatggtgtcatcctggact
-cttcagttgggccctaaatccaacgacaggtgtccagctaagagacaaaa
-aaggagaagacacaaagagaagaggagatggccatgtggccacagaggaa
-gagactgaagtgagagatctagaagcccagggtctcctgcagccactgga
-agccggaagaggcagggagaagcctcctgagagcctcccgggagcgtggc
-cctgtggacaccgcacatggatttctggcttctggtctccagagctgtga
-gaggataaatttctgttgctttGTGGTCATCTGTTATGCCGCCTCTCCCA
-GGAGGGTGGGGCTGGGTGCCACAGGCCCCAGGCAGCCATGAGCGCCTGAC
-CCCTCCCCCAGGCAGGATGGAGAAGGACCTGGGGCAGCCAGGGTGTAGCC
-CTATGCAGACCCCACCACTGTGGGTTGGATGGGGCTCACGCCTATGACTC
-AGCTCTGCTAACCTGTATCTGCCACTGGCCCCAGGAGTTGGACTGGGAGG
-AAAGAAAGCAAATTGGCCTCGAAGGTCCTGTTGGCCATGGAATTCTGTGA
-TCAAGGCCCCTGTGGCTTGTGGGAAAATGGTTGAGTCAGATGCCCTGAAT
-TTCTGCTGGTTTCTCCCCACTGTGCCCTGAGTGGAGACTCATGAGGATAG
-GGAGGCCCAGACACAGAGCTCTTGGAGTCCAGGGAGGGCGTGAGCACAGG
-GCACGTGGGGCTCCTGGGTCCCATGAGACTGTGAAAGGGGATGTCTCAGA
-GGGTCCTTTCGTCTGGCCACCTGGTGATGAACAGCAGTGCTGGCCCTTTC
-AAGGGAGGTGGCAGTGGGCAGGTCCATGCCGCCTAGCCATGGTGGCGTGT
-GGGGCCACCCGCAGTGGTGACAGCCAGGGTCATCCCACTCCACACACCCC
-ATCACCAGGACTCTAGGTTGTCAACTATAATTGCGCAGATGGCCTTCTGG
-GGTGTCCTGGGCTGCCTCGCCACGGAGCCGGGTTTGGGCCTGGAAGCAGC
-CACAGGAAATGGGCTTGCGAGGGACCAGATCTGCTTTGACTGTAACAAAA
-TGTGGCAGCCATCTCGggctgcagcaaaggagccaaggacagagactcgg
-ccctggctcctggcccaggcctgcctgcgtctcgctgggtcaccttgaac
-gggctgcactgtttcacttggcctcagccccatctggagagtgaacagga
-cgggctCTTGGTGCACAGCCCCAGGCTCAGCCTCGGAGTTCAGCGGGCCC
-TGGGCGGGCCGCGGCTCCTGAACACAGAGTTACTTGGGACTCCTAAGCCA
-GTGGCCACAGGGTGACCTCAGGCCAGCCCTGGGAGGCCCTGGCATGTTTT
-TCTGGACGAAGTTTGCAAAATTCCTTAAAAAAAAAAAAAAAGACTTGGTT
-AAGAAGCTGCTCTCTGGGGGCATCCTCCAAGGCCCCAATGAAGAATTAAG
-GTGTTTATCCTCATTCACAAAAGAAATGGGTTGTAAGTAGAAGAATTCCC
-TACAATTTATTCACACAACAAAAAAATAATGAGCATTAGAAAATTCCTTT
-TTATTATAAGAGGAGAAAAAAGATGCAAATGGTGATTTAATGAAGGATTT
-TGCTCTCAGTGCTGTTTTCCACCATCACAAAAGGGACGTTCCTTATTATT
-CAGAAAGCACTTGGACTGAGAAGAGAAGGTTCCATAAACAGCCATTAGCA
-TCTTAATTACACGATAATTCAAAAGACAGCTCTCCTGAAAAAACTTCGGC
-CCATAAATCTCTCAGCTTCAATGTCCAAGAAGGGAGACAGATTCTCCCGA
-GAATGTGGCCCAGGAACTCGGGGGTCTTCCTGGTGTGGTGCCCAGGGGTT
-TGTCTGGCCGATGGATGGCCGCCTGATGGGACAGTGTACCCAGCCCTGGA
-GATGTCACTCACCCCAGTGAGAGGCCGCTGAACTGTGTGCAGGCAGGGAT
-GTCACCGCGGCTGGTCAGAGGCCAGTTCACCGCCCTGAGGTCTCTGAGAG
-GCAGCGGGAGGCTCCAGCGGCGGGGAGAGAGGCTGCCTGGTTCACTCCCT
-GTCCTGGACATTTTGCTATGTTCTTGAGCAAATCCTAGACCAATGACCTT
-GTTGTGGCTAGCATCTTTCATTGCTAGTGGGAGACATCACTCAAACCCAC
-TTCTTCGTAAAGGGAAATGTCTATGCACAGTCGTAAAAATGCTGAGAAGC
-AGAAAAAAAGGGGGCATCCTCAAGGGGCAGGACCCAGGGGCCGACTGACG
-TCATCTGTGGTCACTTCCACCTTAGGCTCTGTCCTCAGGCAGGCTCCCTG
-TTCCCAGTGCTTCTGGACAGCTCTGGGCTTGGGTCCCACATGTAGCAGGG
-CCAGTGATGAAACTGTGCTCCTTTTCTAGCAATTTCTGCAAAAGCCCTGG
-AATTGGCTCATACTGGAGCCAGTCACTGGCCAGCCCACGTGAGCCCCTAT
-GAGCTTTGACATCGGGGATGGACTAGCCTCACCCAACACGCATGGGCAAA
-GGAGTGAAGGAGCAGTTCCCCAGGGGAAGAGTACAGCTGGGTCAGAAGTC
-GGGGGCCAGAACTGGACAGCAAGAGGGCAGACATACCCAAGGGACAGGCC
-TCCTCTAGGGACACCCAGAAACCCCGCTGTGAACTTTCCTTCAAGTGAAG
-CCTGATGCCCAAAGCCAACCACTGCAGACTTGGTTGAAGAGTGGGACCCT
-CTGGCCACCAACTCCACCTCTTTTTTCCCCCTTTGGTGGAGGCCAAGCTC
-TTCCCCAGAACCCCTGGGGCGCCACCAAACTGAATGAAAACCAGAAATAC
-TGTCCTGTCCATGAAGACTCAAGCCTTGGAGACCCTCATCCAGGGACGAT
-GTCCAAGAGTGACAGAACAGTCCACCAATCCAGACCCACCCTGAGCCTGC
-AGCCAGGACCCGTGAGCTGAGGATGGGTTCTAAGGTTCCACCGATCCCGA
-CCCGCCCTGAGCCTGCGGCCAGGACCCGTGAGCTGAGGATGGGTTCTAGG
-GTTCCACTGATCCCGACCTGCCCTGAGCCTGCAGCCAGGACCCGTGAGCT
-GAGGATGGGTTCTAGGGTTCCACCGATCCCGACCTGCCCTGAGCCTGCGG
-CCAGGACCTGTGAGCTGAGGATGGGTTCTAGGGTTCCACCGATCCCGACC
-TGCCCTGAGCCTGCGGCCAGGACCTGTGAGCTGAGGATGGGTTCTAGGGT
-TCCACCGATCCCGACCTGCCCTGAGCCTGCGGCCAGGACCCGTGAGCTGA
-GGATGGGTTCTTGGGTGGCTTTTCATCATGTCAGAAAAAGAACCTGGCAG
-GAAATATAATTTCATTGGCAATAAGCCTGCCCAAGTCTTCAGCAATCAGC
-AGGTGTGGTCTTCCCAACGCTGCAGGAACTCAGGGTGTCCTCACGGGTCA
-CTGCCTGCTATCACGGCCGCTTCGTTATGCAGACAGGTGGACAGATGGAA
-AAACGCTATTTTaaaataataaaagtgctggaaaaaaaaaaaagaccctg
-caaggccaggggcgtgtcaagtggacacaagacaccattggaagagctcc
-cgatggtcagagctacaaacatctcagctacaaaataaaaacccagtatg
-aaattataaccctaagtataagtaaatttccaagaatccatactaatttc
-acatactaatttgcatatgaaaatgcaaatgatctagaagcaccaaaaaa
-cctctttacgcagaaaacaatggagtactaacactaactgacttcatgac
-ttactctaaagctctagtaattaagacagtgtgcataaagttagataaat
-agatcagtggtacagaatagagagtccagaaatagacacaagcaaatatt
-ggcaactgattattgacaaagaggcagaagcaattcagtggagaaagaat
-aatatttcaaacaaattatgctaagacaaatgaaaatctatatgcaaaaa
-attaaacttgtgtctatgattcacaacattaaaacatttgctcaaaatga
-gtcacagatctaactgtaaaacctaaaactatgagacttataaaagtaaa
-tataccttaaaattttatgtccttgggctaggtatagattccttaaatat
-gacactaaaagatgcaatccatagaaggagaaattgatacactggaattt
-atcaaaataaaaaacttatgctttttaaatgacattgttaggagaatgac
-atgacaagccatagattgggaaaaatatatttgcaagttatctgtctcgt
-aaagacttgtgtctagaatatataaagaaatctcagaaatcaagaaAATT
-GAAAACTGTGAGTacttcaccatagaagacgcatataaacacatgaaata
-attcttaatatgattagtcattagagaaaagcaaattaatgccatgtgag
-atactacctcttaccccttaggatgactataatcagaaagacccaccatg
-ccaggacgtggccaaaatgcagaggaagtagaatcctcatgtggccgggg
-cacgtgtcaaatggtaccatcacactggaaaggagtttggcagttcagta
-aaaagtgaaatgtatgcctatcatctgatccagccattcaaccccttgcg
-ctttatccacaaaaaaaacaaagtatgtgctcttacaaatacttgtgcat
-gaatgttcacagcagtttatctgtaatagtctaaagagtaaacaggccgg
-gcgcagtggctcacgcctgcaatcccagcactttgggagggcgaggcggg
-cagatcatgaggtcaggagatcgagaccatcctggctaacacggtgaaac
-agcgtctctactaaaaatacagaaaaattagccaggcgtggtggcgggtg
-cctgcagtcccagctgctcgaaaggctggggtaggagaatggcctgaacc
-ttggaggcggagcttgcagtcagccgagatcgcgccactgcactccagcc
-tgggcgacagagtgagactccatctcaaaaaaaaaaaaaaaaaaaaaaga
-gtaaacaacccaaatgtccatcacaggtaagtacatggacccctggtcta
-tccatgcgacggtaagggatcagcaatagaaaggaacgaactatttgtga
-tacatgcagtcacgtggatgaatctcaaaatagttatgctgagtcaccca
-agtcagaaaaaaaaggagtatatactggataattccattttttataatct
-tacagaaaatactaacctatgtataatgatagaatccatagtttcctggg
-atggaggactgacaaggggccaaaggacacctgcaggtgatggcatggat
-gtattcattatcttgatggtggtgatgtttctaccggcgtctgcatatgc
-ccaaacttaccaaattgtccattttaaacatatgcagtttgttgtaggcc
-aattacacctcCtataatggctagtttcatgagtcaacttggctaggcca
-cagtagccagttgttttgtcaaacactagtctagatgttaatgcaaaggt
-atttgttagatgtgcttaacatttaaatcagtaggctttgagtaaagcac
-atgacctgccataatgtgggtgggccttgtctaatcagttgaaggcctta
-agagcaaacagactgagatctcccacaggagagtaaattctgcttataga
-atccttcagacttgatctgcaacatcaactctttcctgggtcttcagcgg
-ttggcctgccctgcaagttccagacctgccggtccccacaattccatgag
-ccagacagtctctctctctctctctctctTTACATATAcagtcatgtgct
-gaatgatgatgtttaggttaacaatgaacctcatatatgatggcggcccc
-ataaaattacaatactggccgggcgcagtggctcacacttgtaatcccag
-cactttgggaggccaaggcgggcagatcacctgaagtcaggagtttgaga
-ccagcctggccaacatggcgaaatcccgtctctaccaaaaaacacaaaaa
-ttatctgggtgtggtggcgggtgcctgtagtcccaactactcgggaggct
-gaggcagggaaaactgcttgaacccgggaggtggaggttgcagtgagccg
-agactgcaccactgtactccagcctgggcgacagggcaagactccatctc
-aaaaaaaaaagattacaataccatatttttctgtacctacctttttctat
-atttagatagataaatattatttgttacaatcacctacagtactcagtac
-acactgtacaggtttgtagctgagaagcaacagcctcaacctaccatatt
-gcctaggtgtgcagtaggttacaccatcttggtttgggtaagtacctacg
-tctatgatgttcacacaacaacgttgcctaacaacacatttctcagaata
-tattcccattgttaagtgatatatcactgcacacacacacacacacacac
-acagcctattggttctgtttctctgaagaacccctgtcaatacaCCTCCA
-CGAAGCTGTTTAAAATATTGAAAGATACAAAAGATGAGAACCTCCTGGCA
-CATTCCCATTGACAACATACTTAAACCTCCAAGAGGAAACATGGTCACGT
-GACACATTCAACAATGACAAATGAAAACAATGATTTGTAATATGATTATA
-ACAATATTGTTATATGATGATATTCTTGTTTCTATTTTTTTCTGTTTGAA
-ATTCCCCCAAAATTAAAGGACTATATCCCACAaataaattgaaagagttc
-ttactaatcaataataaaagacaaacccactaggagaaaatttgaaaaag
-aatataaacagttgatctacaaaagacactaaaatgacatacataaaaat
-tgttaatccttattagaggaatgcaaatggaaacaacagtaaaacttctt
-cctacgggcaaaattgtcgaaggtactggcaccagggatgatatctggtg
-ctgacgcgaacagactgacgtggctcctctcacgcactgtccgtagggat
-gctaattaatattaatatttttggaaattaatttgtcaatgtacagcaag
-gcctcaaaattgtgtccttatttggacctaacaattccagttctgtaatt
-ttttctgtaaataaccataaatatagaaaatgatttcagtaaaagggtgt
-tcatttctgaagtgttttccaaacactagaagttgtctaaatgtccaaaa
-atcaaggttgattgaataaacggcagtatttatgtgttacagaatttcag
-gccgccagaaaacacaatgttctggaagaatatataattccgtgaaataa
-tattcactgtgtactaagaaaactgtgtaaaaaatatttacaggatgaAC
-ATATATGTGAAAAAAGATGTGAAAGATATTAACAAAATGCTAAATGTGGT
-GAACTCAGCGTGGCAGAATTGAGGAACATTCTGTATTCCTTTTGCTTGTC
-TCCCCATTTTGTATTTTTTTAATGAACGAGATTTGGTGATGAGAGGCCGT
-GGgcacagccgtcagggcaggtcctctggagcacaccacctggatcccaa
-cctcagctcccatggctgcctacaaatcccaggacaattgcctgcaggcc
-tccttgccccaggttcaacgtccttaaatccaggtatcgactgcctccta
-gggctgttatgaagattaagtgagtgagtatatgggggaacttggactag
-tgcctggcccttagtatgggatgtatcaatattacttattgtCATTACTA
-CACTGGATCAATAAAATGGATAATTAtcattcaatcgtgcattcatgtca
-tttaccaactgtctgcaaagcactgttttcagggctgagaattcagcacc
-aaagtggcctctgttctcacggggcacacagtctGTGCCTGCTGGGCCTC
-GCCCCTCCTCCCTGTGCGTCTTTTGGCCTTTTGTGCTTCTCTTTCCTGCA
-TGCTGCAGCTCTTCTCTCGGCCTGGAAGCTGCTGAGGAAGTGCCTGAGCT
-CTCTACTGGTCAAGTCCATTCCCAGCAGCTGGAGGGGCCCATCTTAACGG
-CTATCCCTGCTACTTCCCTGATCTGCCTGCCTGCCTTCCTccctcccctc
-ccctcccctcccctccctccttctccttccttctccttccttctccttcc
-ttccttccttcctgacagggtctcctctgtcacccagactggattgcaat
-tatacaatcagagctcactgtagactcgaactcatgggctcaagcgattc
-tcccaccttaacctcTGAAtcccttccctcccctcccctccccttccctc
-ccctcccccactcccctcccctcccccctccctccctccttccctccctt
-ccttccttcctgacagggtctccactatcacccatgccggagtagttata
-cagtcagagctcactgcagcctcgaactcatgggctcaagtgatactccc
-acttcaacctcTGAATCCCTTCccttccctcccctcccctctcctccctc
-cctccctccttctcttccttctccttccttccctccctccttccttcctt
-ccttcTCgacagggtctcctctatcgcccacgccagagtacagttataca
-gtcagagctcactgcagcctcgaactcatgggctcaagcgatccacccac
-ctcagcctcccaagtagctgtgactacaggtgtgtgccaccatgctgcct
-aactttttgattttttgtagagatgggggtcttgctctgttgcccaggct
-ggtcttgaattcctggcctcaagctaccctctcctcttggcctgccaaag
-tgctagaattataggcgggaaccaccacacccagccATGCCCAGGTTCTC
-TAGCCAGAAGCCTGGGGAGTCACTTGGGACATCTCTGCCATGCCCACCAC
-TCCGGAGTCCCCATAGCCTGTCAGTTCTACTTCCTGGATAGCTGCCAAGC
-CCCCCACATCCCTGCCTTGACAGCTGCTCCTGAGAAGCCAGCCACCCCGG
-CTCTCATCTGGATCTTCCCAGCCACTGCCAAGCTGGCTCAATTCTCTCTG
-CCAACCTGGGTCCTCCCCCAGCTGTCAGAGTAACCTCTTGGTAAAATGCA
-CATGGGATATGTGTGTGGAAGGTGAAAGCCTGCAATTGTTTTCAGAGGGA
-GGCACAGATCCCTGGGAGAGCAGGCACAATAGCCCGCTACAGCCCCCACC
-TTTCGCGACCTGCTGTTCAGAGACCTGTGTGCTTCCTTTAGGAGATAGCG
-CTGGCCTTGCATAAAATACATTTTTTCTCCCACTGTATCAGCAGGGACAT
-CCTGACATCTCACCCCGTGAAAACATTCAGCTCCAAATTCAGTATCTCAG
-CAAGCCCTTGGTCAGTTGGGCACCCGCAACCTAATGGCAAATAGAAAACA
-CCCTCACCGCAGGGAGGAGTGGAGAGAGAACAACCCACCCCCGCCGACCA
-CAGCAGAACACAGCGAGCAGTGGGCTCACATCCCCAGGAGGACAGCGAGG
-CTGCCACCTGACTGCAGTACGTGCCTGGGTCCGCACCCTGGTCAGCCGCC
-CCTCCTCTCTGGGTAACGCCCCTTTTTCTATTGCCCTCCTCCGACACCCT
-GGGTGCCCCGCCATGCAGGATGCCCCTTCTATGGGTCAGGCCTCTGAAGC
-AGTCCCAGGACTGGTGGCTTGGTGTGGGGTGAGAGCCGAGGACTCCCTCA
-AGGGTTACACCATTGCCATCCCCTGCGTTTTTGGGTAGGAGTTAAGGTGA
-TGGTGTGATTCCTTAATAGACTTATTTAGGTTTCAAAATCTAAACTCCTG
-TCAGTTCTGGCTAGTAATCAAAACCAGCCCATCAACAACAACAACAAAAT
-CGTCAATCCGTAGCGTGTGTTGCGATCCAGAGCAGAGCTTTCTGTTCCCT
-AGCAACCGAATTCAGGCTGCGCTCACCCCCCATCCTCAATTTCCATCTTG
-GTCTCTCTCTCCAGGCCTCTGGAAACAAGGCCGGGATGGGGCTGGACCAG
-GCACCTGCCCTTGCCTTCGGGCTGCCCGGGGGTGGTGTCTTTGTAATTAC
-CTCAAGGTTGCTGTCCCAGGGAGACCCCATCTCTTCAATCTGATCTCGGA
-CCCCACACCTCCCCCCTGCCTCCCCACTCCTCAGGTCCGTCTACTTGTAA
-CCTGGGGTGGAGAATTCACCTTTTCTAGCGTCACCATTTTCAGACTCTCC
-ACCATTCTAGACTCCAAGTCATAAGCACCAAGGGCTCCCCTTCCATTCCC
-TTTTTCTGGAAATATTCAGCATGTAATGAACCAGGCACTGCTCTCCCATA
-GCCCAAGGTTCCCCGCCATAGCCCTAATGTTGCGAGCACAAAAACCTCAG
-TGTCTGAGTTCCTGGATACAGCAGGCCGGGTACCGCACTGCACCCCTTCT
-CCTCTGCTTGGGAGCCCTCCCCAGCCACCCCATTGTCACCACAGCCCCTG
-TCCTTTGGCAAGAAGCCTCCAATATACCCTCCCAAAGTCAAGGTAGACTG
-CATCTCTCTTCAAACCATATTTTTTAAAGAAAGAAAATTACTATaaacca
-aattattgggagggcaaccagcatttcaaaaatgaattaggatacaatag
-aaaacatcagagtatttttggggtaaatattgcttcggaaagtttcactc
-caagcatgtttgtgcatgcgtgtgtgcatgtgtgttaaagcatgtgtgtg
-catgtatgtgcgtgtgtgtggatgtgtgtgcctgtgtgttcacgtgcgtg
-tgtgtgttcatgtatgtgcatatatgtgtgcatgtgtgtgtgtgtttgtC
-CTAAGGATGGACCAAAAGGGCCTGGAAACCAGTCTCCTGGAAGCCTTCCC
-TGGCACACACCTTGCTGTGTTCTAGAGTGTGATTTTAGGGTAAATGCTCC
-TCTCTTGTGCTCCAAGAgtgctctcctctccctcccatcgtgacgcttgc
-cacactgcactggaattgtttgtttccttgtctgtttctcaaactgactg
-tcactttccagggggacagaaaatctatgtcttgttggcttccccagtcc
-cagtgcctggcccaagtagttgctcaataaacagaggttgaatgaaggaa
-tGTCTGGCACAGGAGTTCGGGATGGACAGGATGAATTGGAATCTGTAACA
-TTTTAAAAGCCACATCCTTTTTAGCAGGAAAAAAGGCTTCAATGAAAGGA
-ATGAAATTGTAAGGGTGGAGACCTGGGCATCAATGGCTGACTCCACAGAA
-TCCCATTGAGGGAGCCCCTCCCTGCCAGGGTCCCAGGCCCACCCTGCACA
-TCCAGAGGCAAGAGGTACGTCCCTCATGGCCACCCCAAAGTTGTCAGGAG
-CCCCAACTTCTGCAGAATCACCTCCCTGCCAGGAAAGAGAGCGGGGAGAA
-GCTGCAGTTGAGAAGATACTAAACAGGAAAGTCAGCGTTTTAATTAAACA
-GGATTCAAAATTGATGGGAGAAAACAAGCATGGACACAATCATATTAACA
-CAAGAATCCCGTCAGAGCCCCTGGCAAGGAAGCTTCAGTGCACAACAACC
-ACTGGGACGGGGGTTAGAGGACTCGCAGTGAGAGGCTGCCTTTCTTTGCT
-CAGTTTCTCCTAAAGTGTtgtgtgtgtgtggatgggagagtgtgtgtgtg
-tgtgtgtgtgtgtgtgtgtgtgAGAGAGAGAGAGAGAGATTCAAGGAAAA
-TATGTGTGTGTGTGGTGCTGTGTGTGCATTGGGGCATGAATGCTTGCATG
-CATGAGTTGTGGGTGAGTGTACGGCTGGGGACAGTCCACATCCCTTCACC
-TCCCTGGACCAGGCCTCAAGATGAAGGGATGATGCTTCTTCTCCCTGGTT
-GCTCAATCTGACTTGCAGGCCCTCTACTGGCTCCTCAGAAAAGGGTCTCC
-AGCGCCAAAAGAATCTCCTGGGGTGCTCAAGCCCCCAGCCCTATGCAGGA
-TGGAGAATATCTTGTGAGTTCCAGAGGAGGGGTTCTATTAGTCGTGTGCA
-CGAACCTGCAGGAAGGCAGAGCTTGGGGTGGTGCTGTGGCAGCTACCGGC
-AGGGGCCAGAGCCTCTCCAGGCAGCAGGGCCATCTGGACATCCTGGACTG
-GGGAGCGTATCTCCTGGGCTGTAGAGGGAGGTGCAGAGGGGACATGACTA
-GGAGGGTTGGAGATGGGGAAAGTGTCCTTGTGTCCTTACAAGGCTCATTT
-TCCCCCCATCCTTTGCTTGTTATAGGAGTGAACCTGTCTTGCAGATGATC
-GTTGACTATGCAGGTAAAATAGATTGCGATCATTGTCATCCTGCTCAGAA
-AACCCACCTGGATAGGACCAGTCCTGGGACTGGGAGCCCGGAGACGCCAC
-TGAGAGCCGGTCCTGCAGGGACTCCAGGGAGATGAACCAGGAGATGGCTC
-AGCAAGGACCAGGCAGTGGCAGAGGTGCCCGAGTAGAGTGATCGTGGGGC
-AGAGGACTGAGGGAAAGTGCGTGCCTGTGCCTGGCAGTGCCGCCCCAGGT
-GGAGGAGGAGCCCTCAGGGTGGTGGGCTTCCGATGAAGGGTGACTCTGCT
-GGGGTCTGAGGCTGTGCTCCCAGTGGACTCAGGGACCCCACTGCACAAGC
-CCGATTTTGGGTAACAGGGCACACCTAGGGAACAGGCCCAGAGCACCCTC
-TCCTTGGAATAAACTCCGGATCCAAGTCCCAGAACCCACCTTAGGAGGCG
-TCTGCCGCCCCCGCCCCCTCCCCAGCCTTCCAGGCCCTGGCTGCGGTGGA
-TGGGGGCGCGGAAGGCCCAAGTGCGCGAACTTCACCTGGCCCGGCCGTCC
-TCCCCGTGGGGGGCCCAGGCTGCGGGCGCGTCAGGCCGTCTCTGTCGCCA
-TCCGGAGGAGCGGCTTGGGCGCCGCGTCCCCTCTGCCAGGCCCGGGTCGG
-CGGGCGGCTGGAGCCCCCAGCGGTGGCGGGCGCGCGCCTCTCTCGCGGAT
-GCCGGGGCGCGCGTAGCCGGGGCGCGCAGTGACGCCCAGAGCGGGGCCGG
-CGTCCCCCTGGCGGGCcggcgcggggtcggcgggcgcgggcgcgagcgcg
-ggcggcgcgggcgcggcgcggggcgcggtgggccggggcccgggcgcggc
-ggcggcggcggcgGAGGATggcgcgcgcggggcccgcacgtggaggccgg
-cgcgggggcgcgggcagggccggcTGCTGAGACGCGCTGCTgccccccgc
-gcgggcgccgcggcTTCAATGGCGCCATCGCCCAGGACCGGCAGCCGGCA
-AGATGCGACCGCCCTGCCCAGCATGTCCTCAACTTTCTGGGCGTTCATGA
-TCCTGGCCAGCCTGCTCATCGCCTACTGCAGTGAGTAccgcgcggccccg
-gccccggcacggccctctgggccccggaccccctcctccggccccggcag
-gcgccccgcgggccTCCCGGAGTCGGCGCGGAGTTACGAGCGCCGGGCGC
-ATGGTCCCCCGAGTCCCGGCCGGTCCAACGCTGCGCTGGGCGGGCGAGAG
-GGTCCACCCGGGTTCCGGGCGCTCGAGCACTTCGGGGTCGGACGCCCCGG
-CCCGAGCCTCCCTTCCCTGACTCCCCGGCAGGGCCCGGGCTCCAGGCCCC
-GGGTGGCGCGGCCCGTCCCTGCCCGGCGGTCGGAGCCCAGCCAGCGGCTT
-CCCGGCCGAGATGCGCGCTCAGGAGGCAGCCGCAGGTCGCGGAGGGCGGG
-CGGCGCTGCCGGGGTGTCTGCGGAGCGCCCTCCCCGTGCCTCAGCCCGGG
-ACAAGGGGGGAGGCGGCGGCCGAGCCCGGAGAGGAGCTCTTCAGGCAGGA
-GCCCAGCCTGGGCTCGGAGGAGCAGCTGGAGCTTCCGCTTTCCCGGGAAA
-CGGGCTCGTCAGGCGCCTTCTGGAAAGAGAAGCGAAGTGAGGGATGGGAT
-GCCCGGAGGGGGCTCGCCGCGGCCGCGGACGTTTCTCGGGTCGTGTCTGG
-GGCCCGAGCTGGTGACCGGCGGGACTGGCGCGGGCGCGGGCTGGGGTGGT
-GCGGGCCAGTGGGCGCCCGGGCGTGAGCTGAGGGCTGGGGTAGGGGGTGA
-CCGCCGCGGGCTCCCTGTTGCCTGGAGTGAAGGGTGGGGGGTGGCCTGTG
-CCCCTGCCGAGGCTCCAGGCGGGTGGAATGAGGGGTGGTTGGAGTCCCGG
-GTGCAGACTCCAGCCTCGGCGCTGGGGAGGGTGCTCAGCATCCCGGGGCA
-CGTTCGCGGCTGGTGGGGTAAGTGGGGGCCGCTCAGCGTCCCGGGCACAG
-GCTCTGGCCCCAGATGGCGCGGGCTGGTCGGCTTCAGCTCCGGGAGCTCC
-GGGCTTCTTGTCTTCAGCGGGAGAATAGGACGGGTGCTGGGGAGCACCTG
-TCATGGAGAATTGCCATGGGCGCGGGAGGTGATGGAAAAATATGGATTCT
-TTACAAAAAAAAAAAAAAAAGGCCAGCACCGAACCTCCCTCCACAGACAC
-CACCTCCTCCAGAGCCCCGGGCCTCCAAGCTCCCAGTCCGATCTGATCCT
-TCCGCTGTCGCCAAAATGAGAGCACAGTGGCCCAGGGAGACCCGGGCAGC
-CGCGGGATCGGCCTCCGGAGTCCTGGGACAGCCCAGCTCGCCAGGATCGC
-AAGGGAAACCCGGGGACCAGAGCAGGAATTTTCCTACTTGCTTCAGCGCG
-GTTATGCATTTCCCTAGAAATGCTGTGGCACCGAGCGGGGAGGGGTCGCC
-AAGCCTGGGGGTCTCAACCCGAGCTGCCCAGGCAGACGAGGCCACCGTGG
-GTGCGCCGGCGCCCCTGGGAACTCACTGGCTGGCCGCCTGCAGGGAGCAG
-GGTCTGGGGGTTTGAGCGACATTTGTGCCTGCCCCCGAGTTTTCCGCGGC
-CGTCACGGGGCCTGCAGGGGTATGTGGGGGGATTCCCTAGAAGATCCCCA
-AGCAAGGCTTCCTAGGAGATGTAGAAAGGGTTAATGGCAGGTAAACTCTG
-TGCGGAAGAGGAGGCATTTGAATGCACTTCCTGGTGGCATCACCCCagag
-gagaggagagagaggagaggagagggagaggGGGCTCATTCAGCAGTGTT
-TGGGGAGGGGCTGTAGTGCCCTGAGCCCACTACAGGCGGCCCATCCCTGG
-CTGGCTGCTAGAACCCAGGACAACACCTCACCCCCAACCCCCAGCAGCTC
-AGCAGGTGTGGAAAAGAACAACTGCTAATTGTTGCGAAGTACTTGACACC
-AGGGCCCTGTGGCTTCAACACCGCACTTCCCGAGCCCGCGAGGAGCGCGG
-TACACACTGTCTCAAGACACGCAGCGTCAGCCCTCTCCCACCCTGCGCTG
-CATCCTGAATCCTAAGGTGTCAGCACGTTGTTCATCCGGACGGGCTCACA
-CCTTCCTGAGACTGTCGCCTGCTCTGCCGAGTGGAGTCCTGGTGTCCCAG
-CACAGACATCTGAGCCTGCTGCTTAGACACGCTGAGGATGGGAGATCTGG
-TTTCCACACTCATCCCTCCTCCTTAGGAGGCCTCCCCAGCGTTCTGGAAA
-CAGCCTTTCGCCAGGACAAGGACAATTGGTAAGAAGGTCTTACCAGAGTA
-GCAGAAATAATTAATAACAGAAGCTTGGGTGAAGCACATTTTTTATGGCT
-GTTTCCATCTCCATGTAATGGAATAATTGACAATAAGAGACACACCCCAT
-TACACCAGAAATGTACTTGGAGAAATTAAAACATTTCACTAAAATACAAA
-ATAGACATAATAATAATTTATAGCTTGGAACTGCAGTCCTAGAGAAAAAA
-AATCCCCCCCCCTTTTTTCAGAACCGATAAAGCAAATTAAATGCAAATTA
-AACAGTTCCTAGGATTTTCATTCTTTCTTCCAATAGATCTGGGATGAAGA
-AGAATAGTTCGTATTCTCGTTTGTAAATTGTTTTTGTCATCAGTAAGGAT
-TTTTATTACTCAAAATGTCTTTGTGTTATGAAGCAGATATATTTGTATCA
-TATTAATTAGGGAAACTGATAAGTATCATACAGCGTTCAATTATCCTGCC
-TATTAAATCTGTGTGTTTCTCTGCAACACATAAGGTGCTGGCTTCCTAGT
-GCAGCTAGGAGGAAACTGGATTCTTTCTTGGCCTGGTTTTCTGTTGGGGG
-GATTCTACTGTTCTTGGCCCAGTGAGAGTCCGGCCTTCTTTCTTTCTCGT
-GTGCTGGGATCCATATAGAAGGAGATGGGCTCCACCGTCTGGCCGGAGAA
-AGACCTGCAGTCCACCAATTAGGCTAGTTGCTATAGTGACACAGCCTTGT
-CATTTTCTCCTCCTGGGGAAGAAGTGCCAGGAGACGCAAACAGGGGAAAG
-GGGCCCTGGATGGCTCACTTTAAAATGCATGCTCGGTGGTCTGCGACCAT
-CACGGTGACAGCAGGCTTGGTTTCCTCCGCGGCCGGTGCTGCCCATGAGG
-GTTGTTGGATGGTTGGTAATAAGTTGACTTGCATGATGATGAGCTTTGAT
-GGGGAAGTTGAAGCTCTTCTCCATTCTGGTCTGAGGAAACCTCTCTGGGT
-GTGGCTTAAAAAGAGTTGATATAGGTTGTTTTCCCCTTAGCGTATTTGGA
-GTAGAGAAGTCTGTCTGCCTAGATGTGGTTCTTGCCTAGATGTGGAATGG
-GACCTCTTGACCCAGCTAGAGCTGGTTGAGGGTGTTCTGTGCCCGCCGCT
-GAAGATGTGATCTTTCCACCCTGGCATCTAGGATAGAACAGCAGCAAGGG
-AGAGAAGCAAATGAGGACCTGGGGCAACTCCCTATGACACCTAAGCACTG
-ACTCGGTCCTTGTGTGCAGCGTTGAAATCAAAGGTGAAGGACACTCTGCA
-CTAGCCTAGATTCCATGTGCCCTATTCAGCACGAGCAGGTGGATGGTGGG
-GACCCAGACTATATTTCAGCGTACCAGGGAGAGTGAGGAAGACAGACAGG
-TTCACTATGTGCTGGACATGGAAATTTCCAAATAAATCCCGTCAATATTG
-AGCTGTACCTTCCAGTTAAATCTCATGTCCTCATCTATAACTATGAGAAG
-AAATTACAAACAACTTTGGAATTGTTTTGAATCCATTAGAATCCTAACTG
-AGCGTAGGCACTGTAGTGTTGCATTTCCTTTATAAATACAATTTATTGCA
-TATTTAGGAGCGATTAGAATATGTTACTTTCCTGCTGTTCAAATTTTGTT
-CTGGAGTTCTCGAAGAGGTAAAATGGAAAACAGTGGAGGCTTAATGAAGT
-GGTGCCGTTCAGAAGTTTATTTCTCATCTTTTTTTGAAAAAATTCTCACT
-GTGTTTTTATTTGATGAATTTGGGGCACAAGAAGATGGGATGTTTGTTTT
-TTTTCAGCTCCATAAATATAAATTATCTGTCTCTGGGATTTCTTTTAGCC
-GACATCCATGCCCTAGGCTCAGTGAGGAAGAGGCAGGTTTGTCCCCTCAC
-AGGATTTTCCCACGCAGGGACCCCTGGGGGAAGGGACTTCCGAAGGGACC
-CCTGGGGGAAGGGACTTCCCAGCGGCTCTAGACAGTGCCCTGGAGAGCCG
-CATTTACTCCTGGTGATCCTGGCGGTGCCCCACTGTCCCCTCCCACCTTC
-CACCCCTGCTCTTTCACTGAGATAGGGCCAGAAGGGGGGTCTCCACTCTT
-CCACTGTCCACACAGGTGTCCCTGCTGGACCTCCCTGAGGCCAGAGGACA
-CTTGAACCCAAGAAGGAGGCTCCACCTGATGGGTCTCTTCCATACCAGGC
-TCCCCAGCTAAGTTCTGCCCCAGAGTTCTGAGCTCAGGATCTGCCACTCG
-ACATGCTCGGAATGAAATATGTAGATCAACTTTTGTGGCATGAAGCATTT
-TCAGGTGACTTTTATGGGCGTAATTATGGGAAAATGTTATGATAATGTGG
-CACTAGAAAAGGGAAGAAAAGCAAAACATTAAAATCCCCATTTCTTTATA
-TAGGCTCGCATCTGCGCCGATTTAGAAGGGCTCCTTTTTGCATTAAAATG
-TGGCGCTCTGGAGTTAATGACCTCTACAGATTGCCACCTGTCACCCGGAG
-CACTGTCAGCGATGGTCCAGCCCCAGCATTCAGGGTGGAGATGGACAAGG
-AGGACCAGAATCTGATCAGGTGGCCGGAGTGAGCACTGGGGTGTGGAAAG
-CCCTGTAGATTGATGACTGTTTGTTAGGAGAACTGTCCTTGAGGCTGTGT
-CAGGGGCCTGTGTTGGTGCAGATGCAGGGGGCCCATAGCGTCTGGTGTGT
-CTCTTCTTAAATGCTGCCTTGCACATGGTCCTGGGGCTTCTCCACTGACA
-AGGGCCCCCTGATCTGCCCCCAGTGTGGATGGTTTCTGTGGAGGCCCTGG
-ATAGGCCTGGAGCCCAGGAACAGCAGCTCCAGCCACCCTGCTCCTCCCTT
-CCGGACTTCTCCGCCCTAGAATGTGCTAAGACTCACGGCAGCAGCACAAG
-CTGCCTCGGTGCTGGGCTTTCCAGAAGCGGGCCTGGCAGCTGGCAGCAGA
-TCTGGGCGACTATTCTCGTCTCTCCTTCACCCCGGCGAATGTGGTAGAGG
-GCTCCCTGAGGCTTTGTAGCGTTTACTTATTTATTAAAATGGCTGGCAGG
-AATCGGGTGTGGAATTACTTTTATCTCCAACTAGGCGAGCGGGACTCCTC
-TGGAATCCCCTGGTCCTCCTGGCTCCAGGGAGGCTGAGTTCCAGCTTTGT
-ATGCCAGCAGCATCCTGCGGGACGGTGGGTCTGGGCCCAGTGGGATGGCA
-GCCCCGCAGTGATTCTCCCTGGAAGAGGCCTCCCTGTCCCTTGGCGTGTC
-ACCTGCCATGGGGTGAGCCTCCGCTTTGGAGGGGCCTGGCTCTGCGGGTC
-TCCTTCCAGCACTGCTCGAAGGAGGCAGGAGTGGTGGAGCTGGCTGCAGG
-CTTGCGGGTGAAGCTGGAGACGTGGCTTCCAGGGTATTCATTTAATTAGT
-CTTGGGTGAGCTCTAGCCATGCGCCAAGCCCCGGGGGCAGAGATGGTCAC
-TCTCCTGGAGCTGACATTCCAGAGGGGAGGGGACAGTCAGTCGGCACAAA
-GCAAAGGCCGAAGATGATGGGGGAGCAGCCTGGGCTAGGCCCCTGTGTTC
-TGGTGGGTTCTTCATGCTACCCTTCTGTGTCCCAACCCAGCCGCCACCTC
-AGAATGTCAGGGACCTCCCAGAGGTGGTGAGAGGCAGCCCAAGATCTAGC
-TCTGGATCTGGTTTCCATCTGGGGAGGCTCCTCCATCCTTGTTCTCCCTT
-CCCTGGGCTCCCTGTGCCCCTGGCCCTGCACCCAGCCGGCATGTCCATTC
-GTTGTCCCAAAGACATCTTGCCCGTCCTCTCTCTGTCTGGGCTGCCGTCA
-CTTGAGACCTCACACCTGCTCTCCCTCCTGAATGTAGCAGCGTCATCCTC
-AGTGGCTTCTCCGCCTCCAGGCCCCTGCCCTGAACCATAACTTCCCTTGG
-AAGAACCTGGCTGCCTTCGACCCTCCTCCCCGGCTCTCACCCTCTCCCCT
-GGCTCACCACACTCAGGGCGCCCAAAGCTGAGCCCTCCGGCCCAGGTGGG
-AGTCTCCATCCCTCTGTCCAGCCCTGGAGTCCAATCCTGAGAGCAGCCTC
-CTGCCTACAGGGCCTTCTAGAAGCTTCCCAGGAAGCTGCTTGTGCTCATT
-CCTCTCCCACATACTCCGGATTGGACATAGGTGCTGTGGTGCTCCTATCG
-CCCGTGAAGGCCCGGCTTACTCCCTAAATGCAGTGGATGCAGGAAGGCAT
-GGTGAGCTAGGCCAGAAAGTGCCCACCTCATGTCTTAGAGGATCCCCTGC
-TTCCTGAGGCATCCCCTGAGCATGCATCCCCATCCCCTCTCCAGTGCTGT
-GCGTGTGTGTTGTGGTGGCCACTGTCGGGGTCACTTTCTTCCTTGTTTTG
-GGCTGTGAGCTTGGGGCATGGCTGCTGGCCTCGGGGGACTGACTGTGGGC
-TCTCTGGACAGATGCTTTTGGTCACGGCATCTGCTGGGCAGTGAGCTGTT
-GGGCTGTGAGCTTGGGGCATGGCTGCTGGCCTCGGGGGACTGACTGTGGG
-CTCTCTGGACAGATGCTTTTGGTCACGGCATCTGCTGGGCAGTGAGCTGT
-ACGGTGAGGCAGCCACAGGGAACCTCCCAGCTCTCAGTGGGCTGAAGCTC
-CAGAAGGTCACGTGGATGTGGAAACCCTTCTATACAATGATGTCAACCCT
-GCAGGCAGAGGAGCCAGGGGAGTCAGGGACGCCTGACCAGCTGTGGGGGA
-CAGAGGAGGGCCCACTTGTGGTAGGCGATGTCTTCTGACGTCACCCACTC
-CACCCAGAGCTGGGCACAGAGGGGTCTGGCTCTACCTCTGCTGGGACTGC
-CTGCTCGTTTAGGGCGCTGTGTGGTCCTGGTTTGCAGGTGCACCGCAGGG
-AGAGTTGTGAAGGGCAGGCGGGGTGGTCCAGCCATCAGGGGCCCTGGTTT
-CCTGGGGGTTAACGGCGTAGGCTGTGCCACCTAAAGGCACATGCAGGAAT
-CTGTCGCCCACAGCATCTTCATGCTTGGTTCAGGATCTCTGAATGAATAT
-AGGAAAGAAAATACAGAGAAAGCAATACCACTAACACAGTAACAGGCTGC
-TGTGCTTGCATTTCACCTTCCAGAAAGAGGCTTGGCGCCCCCTCACCTCC
-CAGCCACCAGGGGAGGAGCTGCTGGACTGGAGGCCCCCTCCTTATGGGGA
-GCGGTGGGGCTGGTCCCGCACAGGGACTGCAGGCCTGCCTGCCTGACTCC
-AGGTCTGGGCTTCCTCCCGGTGCCAGCTCCACTCCCCACGGGCTCGGGGC
-TCCCCAGCAGTGGCCCATCCATGGAAATCAGCCCTGCCAGGGACCATGGC
-CCCGTTCCGCCCCCGCCTGCGGTGTTCCAGGCCGCGCCTCCCTCCTTCCC
-GTATGGGCGGACCTTGCCCTGGGTGGAGGGAGGACGCAGGGAGGAGAAGC
-CGGGGCCTGCGGTCCCACGGGGCCCGGCAGGGTTCTTCCATCTTCAGGGA
-TGCTCCGCAGCCTCGCTGCTGGTTTCTGGGCCAGCCCCTTGCCCCTGTTT
-CTGCACTCGTAGAACAGCTCTAGAAAAGACGGCATTTCCGCCTCAGCGCA
-GCCAAGAAGCTTGAAAGACAAGACTGGAGTGTCCAGTGGCCAGGGGTCAT
-CAGTctgggtttaggcctgggggcggggctgaggcctgggggcggggctg
-agggtcagaggagtagctggaatcctgggggcggggctgaggcctggggg
-cggggctgagggtcagaggagtagctggaatcctgggggcggggctggag
-gcctgggggcggggctgagggtcagaggagtagctggaatcctgggggcg
-gggctgaggcctgggggcggggctgagggTCAGAGGAGTAGCTGGAATCc
-tgggggcggggctggaggcctgggggcggggctgagggtcagaggagtag
-ctggaatcctgggggcggggctgaggcctgggggcggggctgagggtcag
-aggagtagctggaatcctgggggcggggctggaggcctgggggcggggct
-gagggcaggggcaggtttggaggcctggaggcggggctgAAGGGTGGGGT
-GGGGCCCACCTGGAGGCGGGGCTGAAGAGTGGGGTGGGGCCCACCTGGAG
-GCGGGGCTGAAGAGTGGGGTGGGGCCCACCTGGAGGCGGGGCTGAAGAGT
-GGGCTGAGGGTAGGAGAGGCTGCAAGCctaggggtggggctgcaagcctg
-ggggcggggctgaaggggcagggctgggggcctgaaggcggggctgaaga
-gtggggtggggcccacctggaggcggggctgaagagtgggctgagggtag
-gagaggctgcaagcctaggggtggggctgcaagcctgggggcggggctga
-aggggcagggctggggGCCTGAAGGCGGGGCTGAAGAGTGGGGTGGGGCC
-CACCTGGAGGCGGGGCTGAAGAGTGGGCTGAGGGTAGGAGTGGCTGCAAG
-CCTAGGGGTGGGGCTGAAGAGGCAGGGGCTGGAGGGCTGCTGTCCTCTTG
-CAAACTAAGTCTCCTGGATTCCAAAGATATCTTTGGTTCTAACAGTTTGA
-TTAATAATAATAATATGTGGAATACCTGGGAAGAGCTCAGAATTGGTAGG
-TATATTTAGTAGGACTTTTCTCGTTGCTAGAGTGGAAAACTCAAACCCTC
-CTTTTGGCCTCTTTTTCTGGACTTCTGCAGTGACAGCTCCCCAATCTTTG
-TTCTCGTTAAAGTTGCACTTGTTCCAATTTCTCCCAGTTcagggtttctc
-agggcagcactggggtcatttagagctgggccatgctctgtggcaggggt
-ctgcctgtacatggcggggctttgcgagcaccccggccaccccccacttg
-atgccaggggcccctcctcccagttgtgacaaccaaagatgtctctggac
-cttgccgcctgaccctgggacaaTCAGCCCACTGGAAGCCCTGCTCTAGC
-GCACCTATACCTTGTCTGTGGCCCCAGCAAGCACACTTGTGCTGGTATTT
-CCTGGTGTGGACTCAATACCAGCAGGGTGGCAATCTTACAGTTTCTGGGT
-TTCTCCACTTCTGCAGCTGGACGGGCCAGCGTGGGGGTCTGAGGAAGTTC
-AGCCCAAGTCCCCGTCCCGTGCGTGTCCCTTGCCTCCCGTGACTGTTTCT
-CTGTGCAGAGACAGCTCCTGCAGGCTCAGTGCAGCCCCTCCCAGACCGGC
-GGAGCTGCTGGAAAGGCTGTCTGCCGGGAGGGAGGTGTCTCTGCACGTTT
-CCACACACTTCTGTTTCCAGAGCTTGGAATCAGCGCAGGGTTCACCAGTT
-GCTTGCAATCTCTTCTCTGTCTTAATTTCTCCGCATTTCACATGTAACCG
-TGCTGCCGATGGTGATGAAGCCATTTAGAGGCAATCAAACACTCCCGCAC
-CGACGGCGGCGCCCATCAGCCTTTCCCCTCATCTTCCTGCTTGTTTCATT
-ACGCCTGCCTTTCCAGGAGGTGGCTGAGTCCCCAAGTGTGATTTTTGGAG
-ATTTCTGTGGTGTCTACAGCCCGCATTTCCTAAGTGGATTTCTCCCCAGG
-AAGTTCTGCTCTGCTGGTGGGACCCTTGGTTGCCTAGAGTTTGCTTTATG
-TCCATCTCTGCGCCTCCCCCAGCCTAGCACCGACGTGCCCTTCTGTTCTA
-GCCGGCTCCCCTGACTCTGGTCCCTGGTTCCTGGTCCCTGGCTGAGCTCA
-GGCTCAGTAGGGCCCTCCGCAGGGGGGTGGCGCCGGGGTCAGCCGGCCTG
-TGCTGGTAGAACACTCAGCTCCACTCTACACTGGATGCTGCCTCCAGGCA
-GGCTATTCTCATCCTGTGGGCAGCCTCCTGCCTGGGGCGACCTCTGCCAC
-CCCCAACCTTTGTTGCTGAGTCAGGACTTTCCTGTTTCCAGGGCCGTCTT
-CCTCCCCTCTTTTTAGGGCAAGGCGGACCTTCCCTCCCGGGTCCCCTTGT
-CGTGCATGTGGTGGGCTGGGGCGTGGAGTGTGCTTCTGTTATGTGGTGCA
-AATGTGCGTTCCGGGGTGTTAGACAGCACTCCCAACACACACACACCCGT
-GAGTCTGCCTGCAGCTCCAGATCTGGTCAGCTGGAACCGCACCTCCCTTT
-GTATCCTCAGACTCCATGTGTCTTAAACCAAAGCCACCTTCTGTTCCCTT
-CAAATTCAGCAATTCTCAGAGACCCCTTTGCTTGGTAAGATGAGGGGAGG
-TTAAGGCTTTTCCTCTTTGGGCCTCAGTTTTCCAGCCCGAAATTGATGGT
-GCTCATTGTCTTCCAGACCCTCAATTTTAGGATGATAAAAACGGAGGTGA
-CGCGGCAGGGTTGTACAGTTCTGTATCAGCGATCCCAGCCTCAGACTCCA
-AGGCCCCATAATGCAGATGGCAGGCTCGTCTGGGCCCTGACCCCACTCCC
-CTGTCCCTGACCAACAACAGCTTAAAGTGATGCTTGTTTGCTTTTGGCTT
-CAGCTTCACGGGCTAAGGGACTGATGGGATTTTGCTTGTAATTCACACAA
-TGAAGTTGAAACATTGCTCGACAAACACCTCTAGTGTGTTTTCAAATAGG
-GGACGGGTCACTTGGGCCACTGTGGAGCAAAGTGAGCTTGCACAGACGGG
-TGACCAGGTGTCCCTGAGCACACAGTGCGTGCCGGCCTCCTTGGGTAGAG
-CAGCCCCGATGCTGCTGAGGAGGAAGGGGGTGTGGAAGGCGCCGGGCCCG
-CAGGCGGGCTGTGCTGTCCGCCTCTTCTCGGCTGAGCTGGAGAGTAAACC
-CTGTGAAACACGCATACTTAGCAGGCCTGACTTGCGCTTCCCGTGACGAC
-GTGGCTAATTGGGAAGTGAGTCACCAGTATCTAGCTCGTAGTAGCACTGG
-GGGACTGGCTGACATCGCACTGTGTCCCAGAACCCAGCCTGCCGTCGCCG
-CCTCGGGTTCCTGGATGCACACAGACAGGGCTGGGGGACTCAGGAGGTGG
-GGATGGGCCTGGCCCTGCTCGGGTAGGGCTGGTGCTTGGTATGTGTGCTG
-TTTGCCATGGAAGAAGCTAACGGGAGGAGCTGGGGCATGCTTGGGGTCCT
-GTCAGGGACGCATCTTTGAAGGTCAGCCTCAAGGTCATCTCCCGCTGACT
-GCCCAAGGCCCCTTCCATGGGCATGGCCACTGTGTCCCTGTCACCTCCAA
-ACTGGTCAACCAGGCCTTCCCAGGGCTTCTGGCCCTGCCTTCCTTGTCAC
-CCCCACCCTTCCCCCGCCACCAGACATTCTGAGCCACTGCCTTTCTCGGG
-CTGTGAGTGGCTTTGCCTCCACCGTGGTGAGCCCCTCCCTCCGCGCTGCC
-ACAAGACTGGCTCGTGCTCCAAAGCCTTGAGGAGCTGTGGCCTGAATGCA
-TGGATTGATTGGAGTGAGGCCTTCTCTCCCGGGCACCGGGCACCTTGAGT
-CAGCCCCCGAGGCCTTCAGTGTGCCCAGGCCTGACTCCCCAACCTGCTCT
-GAGCAAACCTAAGGCCCGTTGGCCTTTTGGTTTTTGGTGCATTTTCCCGC
-CCTCGCGTCTGGGCGTTCTGTCCTGGAGACAGGCTCCAGCACCCGGGCGG
-TGTGCTGCAGAGGCTGGCGGCGTGAACTCGGGTGACGGCCTCTGCTTCCC
-TCCTGGACGCCTTCCTGGTCCTGGCCCATCTCTCCAAGGGAAGGGGCAGT
-CGGGGGTGCCTGGGGAGAGGTAGTCGGGGGTGCCCGGGGAGAGATAGAGG
-AGGGATGAGGACACAGGTGGGAAGGGCTCGGAAGGCTGAGTTCTGCTGAC
-CTCCCAGGCCTCACGGGCCCCAGGGAATCTGATGGGATGCAGTAATGGGA
-ACTGGGACTGAGACACAGCCCAGGAGTGTACCAGCATCTCCTTTCCTGTC
-CCCTGGAGGCCCCAGGGGTGTGGCGGAGTGAGGGCTGAGCCAGGCCGCTG
-AGTGTGGCCGCTCTTCTCAGCCCCTCTCTGTGCCCCGGAGGGTGCATCTG
-TCCCCACTACACCCAGACCCACTAGCACCCAGGCTTACTGACGTCCCCAG
-AATGGTCTTCTGAAACAGCAGGCAGAATGGAGGAGTTGCAGAGATGGGGT
-GTGCGGTCACTTCAGGGCACCCCATCCATTCCGCCCCATGCCGCCTGCCT
-GGTCTTCAGGTTTTGAACTTAAAGCTGGAGGGGCCGGTGAATACTGTCTG
-TGTGGGTTCTCCCAATGTCATTGCTGCCAGCCTGTGGCCCACCCGCTGTC
-TCTACCATGACGGTTTTCACCTGATGTTTTAGAAAAATAGATACCAGTTT
-TATGACAATGAACATCTCAGAATTTACTTATTTCTTTTTAAAAATCCATT
-GGATAACAAGAAGACTGAGGAGTCTGCCTGTCCTGGTTGACCTGCAAACA
-AATCTGCTTGGAGCTTTGTTGAGGCCGATGGTCTGAGATTAACATACAAT
-GGGATTGGACTGGGAGAGAACCTAATTTGTTGTCATTTCAGTATCTCCTG
-TGTATTTGGTTTTATTACCTGTTGAGGCACATTGTTCTAAAGCATGCCTG
-GGGCCCGATGCCTTGGTGCTGCATTTCTGGGGGAGCTGGGAGTACTTTTG
-TCTTAGGCTTTTGCAGCAGTTACAGTGTTAATGGCTCCAAGACTTCTAAT
-GTTTTGGACTCTGCTGCTCTGACTTGGGAGTGGCCTCTCTTTGGAAtttt
-tttttttttttttttgagatggagtccgactctgtctcccagcctggagt
-gaagtggtgtgatctcggctcactgcagcctccacctcccaggttccagt
-gattctcctgcctcagcctcccgagtagctgagactacaggcgcccgcca
-ccacacctggctaatttttgtatttttagaagagacgtggttttgccatg
-ttggccgggctgatttcaaactcctgacctcaggtgatccgcccccctcg
-gtctcccaaaatgctgagattacaggcatgagccaccaccgcacctggcc
-AAGAGTGGCCTCTATTTCGAAAAGACACTTTTGCTGTGCTTTCAAATGGC
-TTCTCTTCTGTAGCATTCCATTCCCTGATAGCACATCCCAGAATGTAGCT
-AAATACCACCAACGGGTCATATAGGACTCATGTTCATTTATTGGTGCTAA
-TTCATGCTTCTAGGCTCCTGCCCTGCAGAGGTGGAAGGATGTGGGTCCCA
-GATCCACGCGGGACCTTCCCATGCTCTTCCATGCAGTCATCTGTGAGTCT
-TGTTGGCTCATTTTCGGGGTTCTGTGGCTGTGTCGGGAGGCAGCGGGTGG
-CTCCTCTGAGCTGCCTGTGTGAGGAGGTCTGTCCCATTACCAGGGCTCTG
-CCATGTCTGTGAGCTGGAGAAGGCAGGGGCTTCCAGAGAGAAGAGTTCTT
-GCTGCCCCTGGGAAGGACCTCGGGAGCATGGGTGGGGTGTGTGCATTTGC
-TGAACACGTGAGTTGTGAAAAGTCTGGCTGGTGCCAGGTGCATGGGAAGC
-CACTGACTCGTGGGCCCCTGAGGGCAGATACCTTTGGCCTGGTGTCCCTC
-TTGCTTTACGCCAAGCACATTGTGGACGGGCCTTGCCAGAGCAGATGTGG
-ACTCGTGAACTTGGGAAGGTTTCAGAACCCACAGCCTAGAGACGAGGGCT
-CCCCACATGGAGGAAAGAGCAAAACGCATCACCAAAAGTGCCAGGGACAG
-TGGAAGCCGGTAGCCAAAGGCTTCCCAGTCTGTCTCAGCACTTTCTCCTG
-TTTCCAGCCATGGGCTGCCATCCAGCTACAAACGGAATCTTCAAAAAGAC
-TATGCTTTAATCAAAATTAGTGTTTCATTGATGAAAATAGACGTGCATTT
-GCTGAAGGTGGTCATTTTTTGATCTACTTTTGCTTCCATCATTTTGAGGT
-TCTCAGATGAAAAAGAAAGTGTTTTCGAACACGGGAGAAGCTCTAAAAGT
-CCCAAGTGCCATTGTCCCCATGGTGATGTTAGATGACACTCGCACCCCCA
-TCAGCTCCTCAGACGTCAGGTGGCTTTTGTCTGTTACACTCTGGGAAGGA
-GCCCATCCCCACGACACACCAGCACCACAGGACCCCGAGTGTGTGGGGTG
-CCGAGCCAGCTCAGGATTGTCACCCAGGACCACACACTCACACTCAGGTG
-GGCTCCATAAGCCAGGCTGGGACCCTGCTCTCTGTATCATGCCTAACCCA
-GGTTCCACCCCAGAACTCAACACCCAGTTGCTCACTCTTCATTTCTGGTA
-CCAGCGATCGAGTGGGCACTTCTGAGAGACAACAGAGTGAGATTTGGCTC
-CACCGAGCTTTAGGGGTGCGGGCTGGACTGGAGGCCATCCAGGTGACACT
-CCCTCGGCTGGCAGAGTGGGCCAGGCCACCTTATCTTGTGGCTCAGAGAT
-AACCCAGGGTGGCGTCCTGGGGGTTTGTTCTCCCAGCACTTTATCTTAGG
-TGCATGTGTTTCCATGAGATTGGGATAATTCTGTTTAGCAAAGGTCCATT
-CTTAATCCAGCCGTGCTTAGGGAGCCCTCCCCATGGGGGCGCTGCCCTGC
-AGCAGAAAGACTTCCGGGGGCTGGGCAGGGGGGCAGCTGGTCTTGGAGAG
-GGAGTCCTCTGCTCTGGGTGGCTCACACCATCATTTGAAGGAGTCCAATG
-ACATTCTTTTCCTCCTGGGCAGTTGGGCTGGTGAGGCCGTGAGTCCGGGC
-ACCTTGCTGGGGGACGTTTCCCACATGCTGTCAGACTGGCTCAGCTTTAT
-CATTTGGGGGGAAGGACACAGAGCTTCACAGACTCCTGGGGGTGTGCTGA
-GGCCTGGAGAGGGGGCTCCCTGTTTGGGGCTCACCTGCCCCACAGCCAGC
-TCTGGCAGGACATGCATGGAAGGCACAAGGCAGTGTTTGGCAGAAAATGA
-GTCAAGGTTGTTCTGGGAGCTTATCAGAGCAAGTGGCTTTTCCTAGTGTC
-CTGGGATGGCTCGCCGAATCCCAGAGACCCCTGCAGGCGATTGTGTTAGG
-ATCCTTGCCAGCAGCAGCTGCCAGGGCAGGGTGGGGCAGAGGGGCTGCAG
-GGTCCAGCCTTGGGGGGCTCAGGGACCTGCCACACACCCCACCCTGCCCT
-GAGCCTCCTCTGACCTCTGAGGTATGGCTATCCCTGCTCAGGCCCACTGT
-GGATGGGCACTCCTCCCTGCCTGCCAGCCACACTGGAGCCCGGGACACTG
-TCTAGGTGAAGTAGGTCAGTGTCTCCAGGCATTCGGGCACCCATCTCTCA
-GGAGGGACCTGCTGAATGGCCTGTCTACCTGCCACTTGCTGTGGGGCCTC
-CTGGGAGATACTTTGGGGGATTTCTCAGGTCAGAGGAGAAGCTTGCCTTA
-GTCCTGTCTGCTCTTCACATGAAACTCTCACGACTCCATCTCCGTGACAA
-GTCACAACTTCCATCTGTGGAGGGGTCACCCTGCGTGGCCCCACGCTGGC
-TTAGCTGTTGGCCTTTGGTATTGAACCGGGGGCGTCTGGAGTGCCCTGAG
-GCTCAGGGATCCATCATCTACACAAAAGTCCATGGCCACTGCTGGGTGCA
-GGTAGGTATCTGCACCCCAgaggcaggcttcatgggcccccttttacaga
-agaagatacagagggtctcagaggaccacagtggctctgtcttacctgag
-tgtgccaggcctgggatttgaacatgtgatctcctCTGCTCTGAATCTTG
-CCATTAAAAGGCCTACTGCCCCAAGGGGGGCTGTGGAGCTGCATGGCCAG
-CGGGGCACTGCCATCAGCCTACAGCTTTGTCCACCTGTGGACCAGTGGGG
-AGCATCCACCAAGAAGGCATCCCAGGCCACACTTGCAGTCGGCATCTCTG
-TCTGCAGTGAGCGTCACCCGAAGCATGCCCTGTGCATCTCTGTCCCCATC
-CTGGTGGGCCAGCAtccctgagaccaccctcaggcttgaagattttctgg
-aaaaacttacagggctcagaaaagctgttacactcatggttttggctcat
-tactatgaaaggacacagattacaatctgcaaagggaaagggctcctgtg
-gacaagtccataaaccagctggggcataaactGGTCAGGCTGGCACggcg
-tggtccaaggcctcggacctacagagacactctaatgggacaggacattc
-cagggtctcagaactcactcccaggagccagcctagggccagccctgaag
-ataaccctttcttgggagcaggtttgtgcaccccaggccagctgaggtcg
-cccttccctgcacaCCCCACGGGGCTGTCCCTATCTCACTCCCTGTCTCC
-AGGGTGCAGCATGTGCCCCTGGGCTGCTGGCCTCGCCTGGCCCCTCCTCC
-TGCAGCCCCGCACTTGTTCACCCCTGGTCTCCATGACCTTTCATGACTTG
-ACCTTGCATGGAGGGAAGGCCCATGGCTGCTCTTTCAGCACAATCCGTGC
-AGCCTTAGAGAAGAAAACCTTTTCCCAGCCGGGAACATGGGGTCCAGAAC
-CCTTCCTGCAGCCTTGTGCTCCATGGGGGAACATGGGCACCTCCAGAATC
-CTTTCCGAAGGGCCCAGCTTCGGGGAGGAGCTTTGTGTGTGTTTCCTTTG
-GGGTTCTAATGTTCTGCTAGACTAGTGTGACAAAAACGCGGCATGTCCAG
-GGTGTAGGGCTCTTCCCGGCAGTGGATCGTCTATCTGAGACCACAGGGGT
-GACAGGCGGGGCCTTTGGAGGATAGGAGCTGGCTTCGTGTGTCTGTGCCA
-CCGTTCCGTAGCTATGGCCTCAGGCAGGGCCCCCTGCCAGCCTGTCCTCA
-CCTGTGCTACCAGGATGGCCAAGGCTGCCCTGCCGGGTGCTGATGAGAAT
-GAAGAGGGACCTCAGGGCCTGGGACGCCACTGCGCTCAGGGCACACGGCA
-AATGGACCACGGCCTTTCCTTAGCAGTGACCTCTTCCGGCCATGGCAGGC
-GGGGGTCCCCAACCACCAGGATGGTGCAGGAGGCCTCCTGCCACACAGAC
-CTAGGATGACACCAAATTCATCAACATCCCTGGCACACAGGCAGGGCTGG
-GAGGGCTGGACACGTCAGCATGGGACATGCTGCTGGATTTCATTCCACAG
-GTGATTTGGAGCCTGCAGAAGGCATCCCCTCCAGCCCACAGCAGAGGGGG
-GACTGGGCACCGAGTGGCATGGGGAGAACCCCGTGGCTGAGCCTTGCCGA
-GCAAGGGGACAGCCGCCAAGAGCCAGGTGTGCAGTTGGAGAAGGAGATGG
-TCATCAAGGGCCAGGTATGCAGTTGGAGGAGAAGGAGGTGGCCGCCAAGG
-GCCAGGTGTGCAGTAGGAAGAGAAGGAGGTGGCCGCAAAGGGCCAGGTGT
-GTAGTTGGAGAAGGAGACGGCCGCCAAGGGCCAGGTGTGCAGTTGGAGGA
-GAAGGAGACAGTCATCAAGGGCCAGGTGTGCAGTTGGAGGAGAAGGAGAC
-AGTCATCAAGGGCCAGGTGTGCAGTTGGAGGAGTGGCCGGCCGGTCAGGC
-TGGGGCCAAGTCACTGAGGCAGGGGTGGGGCTTGTTGGGAGGGCATGAGT
-TGAAGCCCTGGTCCTTCCAGAGAGGCTCCTGTGAACCCCCAACCCGGAGC
-CCTGGGGGGCTGAGAAGTCCTTGGAAAATCGCCAGACGTGGTGGCGTCTG
-CCTGGGACTTGATTTCTCTGAAGGAGCAGCCCTGAGGAATCTTCTGGAAT
-GTGCTCAGTGGTTTGCCAGCCCCTTTTGCCCAGCACGCCTCCCCAGAGTT
-GCTTCCGTGGCATCCAGGGTTGTCTTTGGCCCCAGAAAGGGCCTGTTTCC
-CCATGGGGCCTCATTCAGAGCCAGGATGTGCGCTTGGCCTGCGGAAGAGA
-GGGTGGACTTTGTCCTAAGGTAGAAGAGGGAGAGCGGGCTGGAAACACTC
-CAGGTGGTCGACCGGGACTGCCCCTAGGGGTCAGTGTGAGGGTGGCCGTG
-TGAGGAGCCCCTGCCTGGGAGCTGTCGGGATGGACAGCGCCCCCTCCCCA
-AGGCCAGCGCTAGGTGTTTGAGGAGCTCCGTGGGCCAGGAAGCTGGGGGT
-TCCCTTTTGGGCATCCCCAGCACGAGGCCCATCTGCAGCCCTGGCCTGGC
-CCACACCAGCTGctgggcctcagtgtcctcatctgtgcagtggggagaac
-catcgcccagcccctagagCCGCCCGCATGCAGGGAGGGGTTGTTGGGCA
-GTGGGGAGAACTGTCACTCGGCCCCTAGAGCCGCCCGCTTGCAGAGAGGG
-GTTGCTGGGTGCTGGTGCAACCCTGAGGCAGAGCCAGTACGTGGACAGCC
-CTGATGCGTGGGCCACTGTTTCTCTCTCAGGGAGGTGACTGTCTGTGTGG
-GGGCTGCACTGTTCAGCTCGAGGCTGCAcctcacagaagccatgggcagc
-cggcagctttatcccagctttgcaggagacaggctgggagaggtaggtgc
-tgacccagggtaggctagagagtaggcgggggtgcagccagtcccctcca
-gggctgccGCCCCCCCAGAGCTGGCCAATGTGGCTACCCCAGGTCACAGC
-TCCCGGCTGTGCCTGCAAAGTGTTGGGAGTTTGGAAGTAAGAAAAGGAAC
-AGGGTGTGCCCAGGTGAGGGGGTTTCCCTCCAGAATGAACGGCGCCATAT
-GAGGAGGAGGAGAGAAGGCGGTGGGCGCCCTGAGGCTGCTGCAGCCACTT
-GGTGTCCCAGAGCCACGTATGGGGCCCTGGAGACAGCCTGAGTGGGGACA
-CCTGGGTGCCTGTTGCATCCTCATGGGTCCCAGGACTCAACCCAAGCGTT
-CCCTGTAACAACCTAACTGCAGTTGCCCCACAGCTGATATTTTTCTCTtt
-ttgtttttagttggcgtaaaataatggtacatatttataggtgcagtgtg
-atatttcaacacatatatacaaacaatgtgtggtgatcaaatcagagtag
-tctgcacacccatcgcctcaacattgatcatttctctgtgttgggaacgc
-tcaagatcctctcttccaggtttcttaacatctgcagtatattactctta
-gctgtggtcgccctactgtgcatagagtgccacagctgatttctcctgtt
-tagctgtaacttggtgtccactagccaacctctccctagcctcctcccct
-ctccagcctctaataaccataattctcctctctatttctatgagctcagt
-attttttagctcttacgtatgaatgagaacaggaggtatttatctttctg
-tgcctaacttgtttcacttaacacaatgccctccggagtcatgcctgcag
-ctgcgaatgacaggatctcatccttctttacggctgaatactactccagt
-gtgtgtgtggcaccttttctctatccaggcgcctgctgatggacacttag
-gctgattctgcgtcgtggctcttgtgagtggtcctgcaggaaacatgagg
-ctgaggctgcccttttcacgtgctgctttcctttcctttggataaatacc
-cagtagtgggattgctagatgagggcgtaggtgctatttttatttttttg
-agacatctccgtactgttgtccacaacggctgtactgatttacattccca
-ccgatagtgtatacggcttcccttttctctgaatccttgccagcatttgt
-ttgtgtgtttgccttttgtcttattgataatcattattctaactgggtga
-gttggtatctcattgtggttttgatttgcatttctctggtgattagtgat
-gtggggccttttaacatccatttggggaaaggacaccctcttcaacaaat
-gatgccagaaaactggacgtccacatgcaaaagaatgaaactagaggccc
-agcgcaatggctcacgcctgtaatcccagcactttgggaggctgaggcgg
-gcggatcacgaggtcagaagatcgagaccatcctggctaacatggtgaaa
-ccccgtctctactaaaagtacaaaaaattagccgggcacagtggcgggcg
-cctgtagtcccagctacttgggaggctgaggcaggagaatggcgtgaacc
-cgggaggcggagcttgcagtgagctgagatcacgccactgcactccagcc
-tgggtgacagagtgagaatctgtctcaaaaaaaaaaaaaaagaaaaagaa
-aaagaaaaaagaaaaaaagaaagactgaaactagagccctgtctctcaca
-ttataaagaaaccactcagaatggattaaagacataaatggaatacccga
-aactatgaaactgctagaagaaaacgtacctgaaatgcttcgggacattg
-gtctgcacaaaggttttatggggaagactcttcaaaagcacagtcaacaa
-aagcaataacagacaattgggattacaccaaactcaaaagcttctgcaca
-gcaaagggaacagtcagcaaggtgaagaagacacctgtggaatgggcgag
-aatatttgcgggttcttcctccaagggactaatatccagaatatattcat
-acaaggaactcaactcaacagcaaaaaaacccccaaataatctcattaaa
-agtagacaaaagatatgaatagatatttctcaaaagaagacatccagatg
-ttcaccaTGGCTCTTTGGTTGATGTTCGGTGTTCATTGTTTTGGAAAACA
-GACTGGCTATTAGTGATTATAGCTGCGAGAAGGAAATGTGAGTGCAAACC
-TTCATTCTGTAATAATAAACTTCAGATTTGAGAGAAAAGAACAGGATGGA
-TGTCCACTGAACTGCTTGTAGGGCAATGCTGTATTCTGGGGTGGGGGAAC
-CTGGCTGTGTCATTGAGCAGAGAGCAGCCCCTGAGAAATTTGGCTTGAAG
-GCCTCCTCCTCCTCCAGGATGCTCCCCTGGCTTCCCTCCCCCATGCTCCC
-TGTGCTCTGAGCTCCCTGGCTTCAGGAACAACATCAAGGAAGAGGTGGAT
-TTGGATGTGTATGGACTCTGAGGCCTGCGTTCCTGCTGTTTCCTGACCTT
-GCCCAGGCAGGCAGCCATGCGCATTGCAGGCATTTGATAGACTTCCTTCC
-CACACTCAAAAGCACTTGAGGACTTAAAGAAATGGGTTTTAGTTGTTTGC
-AAAAGTCCATCTTTGGAAGATTTCTCACCCCTTCCTTGACATGAGGGAGG
-GAGGGGCTGGGCACCCCATGTGCCTGGCCCACATGGATATTGCTGTCATC
-TGTTATGGGGACATGCTCACCTGGTGACTCCAAGCAGTTTTAGGGTCAAC
-CAGGACATTGCATGACCCAGAACTGGTCTCTGCTGGGAAGTGGGGAGACT
-CAGGAAGCAGGGACAGCCCTGGAGGAGGCCGCTGGGGATCCCAGACCCCA
-ATGACTCCCCTGTCGCTTCTTCTTCATGTGTGGACAGGAGAGAGAAGCCC
-AGGCCCTGGTCACCACCTGCCAGCAGAGAAGTCCAACCAGTCTGGAATCC
-CACAGGAAAAGCCACCTTCTCGGGCTGGCCTCTTTTGTCTCCTGCTCCTT
-GGCAAACTGGGTCAGGTGGCTGACGCTTCCCAGAGCTtcctcctcctcct
-cctcctcctcACTGTCTCCTGGGGCTGTGCGTCTGCAGGGAGAAGCGTGA
-TGTGGCTCCCAGGGGGAGGGGAGGCTGCTTATAAGGACAGGAGCACATTC
-CTGTTGTTGGAAAATGTCCTTCAGTCAGCGCCACACTGCAGGTCTGCAGA
-AAGCCATTTCTCAGTTTCCATTGCACAAGAGGCCCTCGCCCAGGTCAAGA
-CAAAACTCTGTGTTTTCTCCAACAGACAGAGGCGTCTGCTGTGCAAAGCC
-GCATTCGTTCTGCAAGGCCCAACCCCTGAGCTCCTAGAAAGGCATTCTCC
-ATTCTCAAGGTTGTCACCCGGCCCGGCACACACAGGCCCTGACGCAGGCC
-CATCTCTCCAGGTATCGGAAATGAAGCATCACCTGTGGAACCTTACAAGA
-CGGTGCTGACAGTTTCTTCCCGCACTGGGAGAGCCACGGGGCAACTGCCC
-GCTTGTGCCTGGTGCGTCCCCCGAAGCCGAGGCTGATGTCTGGTCTTGAG
-CAGTCAGGCGGGCTCCCGGAAAGGGCTACAGATGCGGAACGGGGCTTGCT
-GTGGGGAACGGTGCGCTCACTCACTCCTCACCATTGCTAGGCTGAGGCCG
-GTGGCCAAGGTTGGAGCCCCATGGCACAGAGCTGCAGGGAGGGCCACCAG
-AAGCTGATGGCCACGGTTCAGGCGGGGATTTGGGGAAAGTGTCAAGGGGC
-CCTCGCCACCCGATTCCGTGTGTGCCTGGTCTGGTAGACCAGGCTGCAAG
-GTGACTGAGCCCCTGTGGTGGACCAGGCTGCAAGGGGACTGAGCCCCTGC
-AGGCTGCCTGGTGGGAGGAGGTGGAGGAGATGCCCTGCTGACAGTGGGGC
-TGGCCCCTTCGCTGCCTCTCGCTGCGCGGCCACAGTGCAGAAAGGAAAGG
-ATCATCTTCTGCTCCGCTCAAGGAGAGGTGGAATTTTAAAGAGAATAACT
-ggccgggagcagtggctcacgcctgtaatcccagcactttgggaggcgac
-ggtgggcagatcgcttgaggtcaggagttcgagaccagcctggccaacat
-ggtgaaaccctgtctctactaaaaatacaaaaaattagccgggtgcagtg
-gtgggcacctgtcatcccagctactcgggaggctgaggcaagagagtggc
-ttgaacctgggagacagaggttgcagtgagctgagatcacaccactggct
-gagatcacaccactgcactccagcctgggtgatagagcgagactttgtct
-caaaagagagagaCggccgggcgcggtggctcatgcctgtaatcctagca
-ctttgggaggccgaggcgggtggatcacgaggtcaggagatcgagaccat
-cctggctaacacagtgaagccacgtctctactaaaaatacaaaaaaaaat
-tacccgggggtggtggcgagcgcctttagtcccagctacttgggaggctg
-aggcaggagaatggtgtgaacctgggaggaggagcttgcagtgagccgag
-attgtgccactgcagtccagcctgggcgacagagcgagactctgtctcaa
-aaaaaaaaaaaaaaaaaaaagagagagaGAGAGAGACTAACTGAAAAGAA
-GAGGAAAGTAACAACATTTGAAATAAGGATGGTACCAAACCTAGACTGGT
-TTGTGGTGGGGGGAGTGTGCTGTACACGTGTGATCACTCTGACACAGCCA
-CTCTGGGGTGCGTTTCTTCCCAGGCACAGGCCTGTTTATGTGCAGAGGGT
-TTCCTGGAGGAAGGAAAGGGTTTGGGACCCTCGGTAACCCTAAAGTTGTC
-AACCCACCCTACACCGTCTAcaggaagtcctcactccgcattggtgataa
-gagctggaaactgcaaatttcaggaaaatgacagacagcaggtcctggag
-taacattgcttccttcgactgtgttttcttgtaacatcgaagcgttttgt
-tacaggccgttttgcttcaagcctcagtttccaagaccctcaggtccaca
-tgaagggagggctcaTCGCATGTGCAGAGTTGAGTGCAGCTCCTTCCTGT
-CACTCAGAGGCCTTCTGTCATGGGCGGCTCTAAGAGCCCCCCCAATAGAA
-GGACAGACTGGCGATTCCTGGGTGCCACCCCATGCCGGCTTCTAACTGCA
-GTGTGACCAGACCCATTTCAAGCTCCAGGACCCGGAGGCTTCCCAAGGCT
-GAAGTCAGCCCAGTGCTCTGAGCGAGACATGGCTAAGAGAAGCTGAGCAC
-CTGGGCAGGCCTGTGCGGCCCCAGAGCCCGCGTCTGCCCTGTGGTTCTGA
-CAGGGCCCTGGCCTTGGGCAGTCTGCAGGAGGAGGAGGTGCCGTGCCTTG
-CTCTGCTCCATGGGGGCAGTCCCAGTGAGGGCCACTTTGGTCTCCTCGGT
-GACTCACAGAGACCACCTCATCTGTCTGCCCACTCCCACAGTGCTGGTCC
-CCAGGGCTGAAGTTGGCAGCCCTGTCTGGGCGCTGTGGGGGCCAAGAAGA
-GGGCTTGGCCTGGTGTTCTCAGCTTGGATGAGGGCTCTCAGCTACCCAGC
-AGGGCAGGAGGAAAGGGGGATGATCCAGTCCTCAGAAGACCCTTCCTCCT
-GCCCTTCCCTTTCCTGTCACTTCCCTCTGAGATCTCAGCCTCTGCAGGTC
-TCTCGGGGGTGTAGACTCCCCGTCTTGGGGCCAAGCACTTCGAGGCTGTG
-AGAAAGAAGCTCAGTGCCTGGAAGGAGGTCAAGGCTAGTGTCAGGGCCCT
-TGGCTGCACCCCAGGCCCGGCCGCGGAGTTGCCGCTGCATATATGAGTGG
-GCTCGGGATGAAATGAATGCATGCTTCTCAGAAATTCTAGATGAGAAAAT
-TTCCATCTCAATTAATGTAAAATAAGTTTTGGGAGGTGGTGGTAGGCATT
-GGAAAATTAAATGACACCTTCTTGGCATCTCACGTTGGTGAGAAGGCCAA
-CCGATTATTTTTATATTACAATCCCCAGGCGTTGTCAAATTGATTAATAA
-ATTCATTGAAAACCTGTTCCTTCTTCATAGATTTAATTTTGGTAGCCAGG
-GAATAACTTCGCCATGACTTTTGAGTCTCAGCTCTCTCTGTCTGACAGCC
-AACATGGGGTTAATTGAGGTGGCCGCGGCTCCTGGCCCTCCAGAACTTGG
-GCCACATCTCTGAGGACATGGTCTTTAGTGTCCTGAGGAAACCGAGAACC
-GCCCTGCAGACCCTGCCCAGGGAGCTTATAAGCCGGGCAGCATGGAGAGC
-CTGGGGGTCAGTCCCCCACTCATGCCAGCCAGGTGACTTGTCCCGGTGGA
-GACCCACCGTCCTAGACTACAGGGAACTCTGAAAAttgagcacaaaacat
-agctctgagcttcctggcagagaaggcaaaaagggaaaatccactggtca
-tgtgaccttccttttcTATTCATGTCTGGCAGCATCTGGGAATGTTGACG
-TGGTactaatggggctgttgctctgggctgacaccagggtgggtggcgtt
-tccacaaatcatctctgatctccaaaccatacagggtaagcactgccatc
-tccattttgggggtgaaaacacagaggtccaaagttggacatggcacggg
-cctcccagccagcaagtggctgaacctcatttaggaATCGTTCCATGGAA
-AGGAGCAGAGACTCAGATAAGCAGGTGCAGAGCTGGCGAATGCAGGAGCC
-CAGGCTTGCGCAGGCAGCGTCCTCTCAGCAGTGGGTGAAGAACCTCATTT
-AGGAATCGTTCCATGGAAAGGAGCAGAGACTCAGATAAGCAGGTGCAGAG
-CTGGCGAATGCAGGAGCCCAGGCTTGCACAGGCAGCGTCCTCTCAGCAGT
-GGGTGAAGAACCTCAGTTAGGAATTATTCCCTGGAAAGGAGCAGAGACTC
-AGATAAGCAGGTGCAGAGCTGGCAAATGCTGGAGCCCAGGGCTTGCGCAG
-GCAGCGTCCTCTCAGCAGTGGGCTTCTGCAGGCAGGCGGATCACCTGATC
-GCAGCTGTCTGTCCGCTGTCCTGCCTGACCCCTGACCCCTGCAGGGGACC
-CTTCTCCTGGGTCACCTTCACGGCACCCCTCTCCTTCAGTGCCTTGACCT
-CAGACCACAGGGACCTCAACTCCTCCATCCACCCTGGCCTCCTTTCCCCT
-TCTCCAGTTCCTCTCCTGCCTTCCCATCTGCTCGTCTGCTCTCCCTTGAT
-GCTCCTTTCCTCAGGGACCTCTCTTTTCACAGTGACCCCTGACCTTCTAG
-TTGCCCAATTCCAAGGGCACCCCTGAGGCCTCATTGCACCCGGCCCTGCT
-GCATCCAATGCCCAATGCAAGCGGGAGGCCCCCGGCTCCAGGCGGGACGG
-GGAGTGTGGAGGGCACCGCCCCAGAGGAAGGGACAGTGCGGGGACTTGGG
-GACAGTGGGCAAGGCCGCTGAAGCCACACCTCAGAACAGGAACTGGCATT
-GGCCAGGGGATGGGGGTCTCTGTGGGCTCCTCCTCTCCAGGCCCACTGCT
-GGCTCCCCCAGGGGTCTCCATCAGTCTCGGTGGGCAGGTGTCGTTCCTCC
-AGGTGGGCTGAACTCAGAGACCCCCACCCTACCCAGGGAAAGGCAACCCG
-GGCAGCCACCCTCCCCACCCCAGCCTCACTCCCTGTGCGCCGCCTTCACC
-GCCGCTCAGCACCCGCCGGCCTTGACCTCACCCAATGGCAGGTTGAGGAG
-AAACAGACTTGGTGAAATAAGGCCTCAGCACAGCTTTCTGATTGGCCCGG
-CAACGCACTTGCCATTAACTTTATGACGCGCTACCCAAAGACTAATTAAA
-CCAGATGGCGGCGAAACCCACGTGGAGGCGCCGAGACATTTTTACGTTTA
-AGTTGATCAGAATTAGGTGGAACGGCATATGCTTGTGGAGATTGGGAATT
-TTTTAACTACATATTAACGGCTTTTCTTAATACTCTTCCTGGTGATCTCA
-GCACAATCCACCCCCTTTGTGCCATTTAATTCCTGCGATTCCCATTCCCC
-TGTCACCGAGACCTCGGGGCCGCGTGGTTTTGGTGTAATTTAAGTGAGTG
-GAATATTCAGTGCAGACATCATCACCATCGTCTGTGACATTCGCTGCTGA
-ACGAAATGGGGGCCCGCCCCCAACTCTCGGCAGGAGCTGGTGGGCCTTTT
-CCCTGTTGCAGCCTGGGAACGCCTTGGAGAAGGCCATACCCACGGCAAGG
-TGAGTGCAGCTCTGAACGTTGCAGGGTGAAGCCAGTCTGCACAGGACGTC
-TCTACTGGCCTCTGCTTCATGTCCCATTGTGTCTGGGCTCGGGTCATGTG
-GCTCAGGACAGGGGTGGCCCTTCATGAAATCCCCCAAATTTAGATGGAGG
-AGAAGCCACCGCCACGAAGGCAAGTGCCTTCCAGGAGGTTGGTGGCCGCA
-GCCCCCAGCCAGGCCAGTGCTGACCCACCTCCGGGACACTGCATGTGGCC
-CTCACAGTTGTGCCAGGCAGTGCTTGATGGGGAGGGGCTGTGGGGATGTG
-CACGACCCCATCCAGGTCCTGCTCTCAGAGGGGTCTGGCTGCCCTTACAG
-ACTTTCAAACATCTTATGTATTTAtttttcgcatagttaaaattcacata
-acaaaatcaaccctgttgaagattgcattctgctggcatctagtgcagcc
-accatgctgtacaaccccacagtagccgagttctcgtttccgtcacccca
-caaaaagccccgtgcctatgaagcaatccctccctctgcagccattctcc
-cagccccGGAAGCTCCTGCTCTCCCAGACCTTCAGAAGCAAAGGCTGCAG
-AGGCCTTTCCAGACTGGGCACTCGGACGTCCACCTGAGGTCCTCTCTCTC
-CTGCCCCCAGCAGGGAAGCCAAAGCAACTGCTACAGGGCCCAGCTGGCAC
-AGACTCCAGGCCCAGCCAGCACCAGCAGTTGCTCAGCATGCCCCATTCTC
-CCCAGGTCCCAGGTCCTGGGTCCCTGACTTCAGAGGGTCCTGGCCACTGG
-GACGGCTGGCAGATGCAAGATGGGAAGCAGCCCTGACCCCCACCACCTCC
-TCCTGGGACACGCCCATGCCCTGCCTCTGCTATCCTTCCTCAGCTGCCTG
-AGGGCTGGCTGGTGTGAGCCCAGGCTCCTGTAGGGTATGCCAGGAGCAAG
-CTGTGACCTGGCCCCGGGCTGTGGAGCCCATGCTACTCTCCACTGAGGAT
-CCTGGGCTGCTCTGTCCCGCGTACGGGCATCCGGGTTCTGATAGCCCGCC
-GGGCCCTGGGCCACCAGAGGCCTTGAATTGCGTCCTGGTGACAGTCAGCC
-CCTTGCATGGGGCACGCACAGACCTGGGCCTAGGCTGGGGCACCGAGATC
-CCCACATCCAGCAGCCGCGGTGAGGCTGGCCTGCCTGCTTCCCGGGGCCA
-CCTCTGCCGTGCCGTCTCCTCCCTCTCCCCTGCCCCCTCTGTTGGTTGCT
-CCTCCCCCGCCCTCTCTGGGCAGGCACGGCCGGGTGGGGGTGAGGTTCTG
-GCAAAGCCCCCTCTGTTTTCCAGCCCAGTGGCGCTCACATGTGACGGTGC
-GGGGGCAGCCTCGTGAAAAGCCCCTTTGTGTCTCCTCCCTAATTAAGAAA
-TAGCAGCAGGCTCCGGGGGCCCAGGCCCCACGTCCTCTCTGAACGCTGGC
-CGTGGTCACAGGCGGCTGGATGGGCAGGCCTAGCAGTGGACTTCAAGGAA
-GAATCCCCCAGGCCCACCAGGCAGCCCTGCTGCTTTCCGGGGGCTCCTCT
-CACATTGTCAGGCCACCCGGTAGGTCTGGGAGGCTTTCTCCACCCTCGGG
-TCCCAGGAGCTGAGATGGTACCCGCAGGAGCCCACGTGggatctgggtgt
-ctggacctggggtttcagacctgattctccctcctgttctgtggggcctc
-cctgaggctcagccctcccctctgtgaaatggggagaataaggcgctctg
-ccccccagaatCCACATTCAGAGAGCTAGAAGTCCTTCCAGGCCTGGACA
-AAGAGGTGCCCGTCCTCCCCAAACCAAGGCAGAGGGACATCTGAGAGGGT
-GTCCTGAGTCCACCTCCCCCTGTCCCACCTGGGATGTCCGTCTGTGTCTC
-CTCCGCATAGCTGCCCATGCCCTCAGGAAAACGAGGGCTCTTGTCTCTTT
-TCCAGAACCCCAGATTCTGAGGCAAAGGCTCGGAAAGAACCCACAGTTCT
-CACGGCATTATTGTCACTGAGCGGGTCTTACCCTCCAGCCTGGGAGGCGG
-ACTCTCTCAGAGCAGGGGTGCTCAGCAGGGAGGGCTGACCGAGGGGAGCC
-CTGAGAGACCCCTGACGAGAACAGGGGGCCTGCAGAGGAAACAGGTCCCC
-TAAGGTCACGGTCACGCCCAGTGAGACTCCAGCCCAGCTTTCCGGAGTGC
-TGTGCCCAGGGTCACGCTGGGACAGGCAAGCGGTGTCACCTCTTTTCCTG
-AAGACACTTTACACCCATGTGGAAAAGGAGAACGGTACTTTTCACTCACC
-TGGAGGAGGGACAGAGGCAAGGGCTGCCCCTTCCCCCTTTCTTCCTGGGG
-TGACCAGGCGGCCGGCGGTCCCCCAGCTCACCTGTCCGTCAAGAGCTGTC
-GGACACCCTGGAGGGAGGGCTCACGTCTGCAGTGCAGCAGGGAGGACGCC
-TGGGGTCTCCACCCACCGGCTTTGACCTAGCACAATCAACAGCCTTCAGT
-GGCTGACCCCAGGCCGAGAGCTATAGGGTAGTTTAAATTTGAAAATTAAC
-ATGGAATCAAAAGAGACAGAGTAATTTTTCATTCTGCTTGAAAGGTTATT
-TGCTTTCTCAGCCGATGCTTAGTGTACTGATACATGATGTCAAAAGGTAA
-ATGATTTTAAACCAGATTCAATTTAAATTTCATTACATATTTGTAGGAGA
-TAGAGGCTCCAAGAATCCCGCGTCTTCCCTTTGAGGACCTTTCACTTTTA
-ATAACTCTGGAGCCTAATGCCCTAATCTGTTTATCGCGCAATCGCGTAGT
-CGCAGGGGCCACGCTTCTCAGACTCAGAATCGGAGCGTCCATGAAACAGG
-CTGTGGTCTCCAGGGCGGCCCCTCATGCATCTCGCTGCCACTGACCCTGG
-GTCTTCTCTGCCATCCCAGGCAGCACACGTGTCCTTTTATGTGAAGGGGG
-GGATGCCCTCCTTGAATGCAGACTCGGGGTGTGGGTCCCCTGTGGCTGCT
-GGGCCACGAGAGAGGGATGGGTGGTGGGAGGCGGGGACAGGCGGGAGGCC
-TGGAGTGGGACCAGAAGCAGCTCAGCTGAAACTGGGGGCGGTGGCGGGCA
-AATCGCGTTCTTCTTGGAGCCCTGGGCTCCTCACGGGCAACTAGAGTGTT
-CTGAGCAGCTGAGCCCTTGGGAGTCTCTCTGCAGGAGGGAGGTGAGCCGA
-GCAGGTCCCGTACCtcttgcccatcccagtcatggctgcaccttggacca
-gtcacctaacctctctgtgccATGGAAACAGGGTAATGGCAGGGCCACTG
-TGCAGAGTGGGAAAgtgtcccctcaacattcatgtcccctggaacctcag
-aatgtgactttacttggaaattgtttgttgcagatggaattagttaagat
-gtggtcacacgagagttggataggccctaaatccagtgcccggtgtcctt
-agaagatgcagagagaccctgagaccacccagaggaagacgccctgtgga
-aacggaggtggagatgggggtgacgggcctgctagccgaggagccgctgg
-gtggccagccacgctggaagctggaggccacatgtttcccctggagctcc
-cagaaggaactggccctgccaacactttgtggacttctggcccagaactg
-tgtgaagataattccactgtgtgagatgccgggtttgtgggattttgtta
-tgccgacacaggccactaacacGCCACCCTCGGGGTGTGAGGGTCCCAGT
-ACTGACCCCGGCCCAGGTGACACTGGGCATGTGTTGGCTGCTTCCATCCT
-TCTGTCCATTCCACCGTGCACGGGCTCACCCCGAAGGCCTGGGGCCCAAG
-GCTGTTCCAACACCCACCACTTACCCTTCTCGCTGGTGAAGTGGCCAACT
-GCCATCTGATTCTGCAGGTGGGACACCCTATTGGATGAAGTGTTTCTGGA
-GTGGCCCCTGCACCCAGCAGTGCCTTTGTTGGGGATGGAGAGTCAGAATG
-CCTGCCATCGGGGACTTGAGATTAATTTGGTGGTGGTCCTAGACGGATGT
-GAGGGATTTGGAGAGAGACCAGGTGTGGAGGGGCTTTGGGGCAGAGCCGG
-GGGTGGCCTGACTTGGCTTAATGGGCAGGAAGAGGGGGCATGGAGCTCTC
-AGACCAGGGGAATGGGCAGCCTTCCCTGATGTTGCCAGAAACTGCTTCCA
-TGTCCTCTCATCTGGTTTAGGGGCCCCTAAACAAGGGGATCTGGAAGGTC
-GGGAAAAGCCCACTGTCTTTCAGACCCTGGGCTTCAGCACATCCCTCAGG
-CCAGGGCCAGGGCCAGGGGGGGTCGCAGGGTGGGATGACAGGTTGTGATC
-CAGGCAGGTGAGGACCTGTCCCCACCGTAAGCAGCCAACCCCTGGAAAAG
-CCCAGGTGGCTGAGTTCTGCCTGTGTTCAAAAGATGTCTCTTTGTAGGGG
-ATGTGTGCGTGGGAGGCTGGAATTTGCTTTGGAAATTAATTGCCTGTTGA
-ATTCTTCCCACCACGGCCGTAACCGTGCAGGATCCAGGGCATGTGAGGAG
-GGCTGTGAATGGGCTTCCTCTGGCCCATTTCATCAGTTATTGCCCTATCA
-TCGCTCCTCTGGCTTCATTTACCCAGCAGGACATTGCTTTTACAGGCTCA
-TCTGGGCACTTTTAAAAAATAAAGTCAGTGCATTCCAGGAACCCCTCTTC
-CCGATTTGGGTTTGTTGTATTTTGCAACATCAAACAGTGAGGAGTGGAAG
-GTTCCAGATCACGGCCCAGGGACCCCTGGCGTTCAGTTTGCAGACATTCT
-CTTGCCAGGCAGCCAGCTTTGCTTCCTGTCTGACTTTTGCTCGCCTTTGC
-TTCCACCTCGTGCTCCCATTTTCTCTCCTTTCTGCATTGCTAATGATATT
-GTTTGTTCTCGGTGCCACATAAAAAAAGCACAAGATAATCACCCAGGCAT
-TAGTCATCATTAAGCTGGTGATAAAAACAAAAAAATTCTAAAGTGCTGTT
-TCCAGGATGGGTGTCGTGCCTGCGATGAATGGTGTTTATTACAAATGTGA
-GTTTCGGGGAGCCATCCCAGCCAGCCGCACGGGAGACGGAGGATGCGTGG
-CCACAGATGGACCCGATCCGTTAGGTGTAAAAGGTAAATACGGCGAGAAG
-TTTCCATCACCACCTGGAACTGCCCCAATCTTCGTTGAATTTGTCATTAA
-AGCATCGTGCTCATCTGTGGGTGCTGTTGAGGTTCCTTAGCAGGGCTCTC
-TGCGTTCACCTGGCATCTGTCAACTTGGAGTTGACATCGGGGCCAGGATG
-AGCTTCATGTGGAGGGTGTGGAGGGAGGTGGAGCTGTAGCTCCTGCTCAG
-ACCAAACTCGGGGAGGGGCTTAGACGACAAGGAGGACAGAGGCCGAGCTC
-CCGGCCAGCCAGTGCCCACCCTCCGGATGGGGAGCGCATGGTTACTTCCC
-TTGCGGCCTTATTCCTTAGGATAGGTATTCCAAGAATACTTGTctgcaag
-taacggaacacgtgaccagcattggcttaaacagcaaggacgttgttttg
-tttttgttttttcccacgtagaagctggagatgggcagcccaaggctgAC
-GGTTGCTGTCCAAGACTGGAACCTCCTCCCACCCCTCCCTCTGTCCCCTG
-CGTCTACCTGTGGTCTCGGTGGCAGAGCCTGTGGCAGTTCTGGGCCTTGT
-ATCTGTAGGTGGGAAGGGCGGCAGCTGCCTTGGGGGCTCTGAACAGGTGT
-GAGGCTCCCGGAATTCCGTCTGTGCCCACAGGCTGGGGGGATGCAGACCC
-CCCAGGTCCGGAGGCGGCCACCTCCCATCCACTGGCACCGGCGGCCCCAG
-GGCTTGGCTCTGTCCTTAGAGTCTCCCTCCCTCAGTGGCTGGTGGGGGCT
-GGTGGGCTCCCTGGGGCAGTGGTTGTGACTCTACACTCGCGTCCTCCGCT
-TCTGGAAACTGAGGCTGCCTGGGGTGGGCGCGGGGCCAGGCAAGGTTAGG
-CCCCCAACCTCGAGAGGCAACCTGAAGCCCTCCCCAGGCACAGGGCCTGA
-GTCCTCTCATCCGCCCCTGGGAGGAAGGCCATTCCCTTCACAGCCCAGGC
-CATGGGAGAGACTGCCTGGACATCATCTGGGCCTGCCTGGGGTTTTGTGG
-CCACTCATGGAGGGTCACCTGGGCCTGTGGGTGGAAGTTTAAGGCCAACT
-GTAAGTCGGCCCAAGGAGCCCACATGCCCCCAGGCTGGCCTGTCCCTTGG
-TGACTCTGGCTGGGAGGCCTCCCTACAGGGCCCTCCAGCTCCAGTATATC
-GTGGGTCTGCTGTCCACCACGTCCCTGTCCTGGGGGACTAGAGGGTGGGG
-CTGCTGAGCACAGGGCAAGACACTTCCAATGGGAGGCCAGGAATAGCTGG
-AAGGGGCTGCGGCAGCTGGAGCCCCCCATGGCGGGGCTGTGTCGGTTCCT
-TCCCAGCAGGAGACCCAGAGCCCATGGGTCACGGTGGAGGATGGCCAGGC
-TGGATGGGGGCGGCCAGGGAGCCACTGGTGCCCGTGTCAAGGCTTCCAGC
-TCACGGGCCTCCATCTCCTCCCCTGCCGCTCGTGCCACAAAACCCTGCTG
-CGCCCTGCACGGAGCCTCTGCTGGAGGCGGGCTCGGCTTGGTGGGCACTT
-CGTGGCGCTTGGCTCCTGTGCTCCCTGGCTTTGCCGTGGGACAGGGCTGG
-TGGGCCGGCGGGCAGCCTCCACCAGGGCCAGTTCCACTTAAACACCATCC
-AGGGGACCCTACGGGGTAGGATGAAACCAGCCCCTGAGTCAGCAAACTCC
-CCTGGGCCCTCCTGTGTGGCCGGCTCGCGGCATTCCGCTGGGCTGTGGAG
-GTGAATCACTTATCTCCTGGCTGTTGGCTACTTGAGCAGGAAGGAGGCTT
-GGGATGGAAAACGTTGGGCCTCTGCTTCTGGGAGCCCCGAAGGCTGGCCC
-GGGGCCCCGGCTCTCTGCCTTCACCCACACGGGGCTTGGTGCCACATCCC
-AGGTGCTGCTCCTAGGCCTAGGCTCAGGCCTGCTTGGGCCAGATCAGCCG
-CCTGGACTGACCCCAGCCCCTCTGTGCCCAACTTGGGCCAGGGCTGCATG
-AAGGAGGCATCCCGGGGGCCCAGGAAGGAGCCGCTCCCAGGAACCCCTAT
-TCCTGGGCAGCCCAGACTTACTACCAAGAGGCTTTAGTGGGAAGCCTGAC
-CCCAACAGCTGAAAATAGGCCAGGCAGACACAAGGCCAGTCTGGGTGTGG
-ACGCAGGGTCCTCTCTGCAGAGAGGAGGCTGGCGAGAAGTGTGCCAGGGC
-TCAGGCGGCTGGCGCTGGCCTTTGAAGGCACCACAGGCCGCCCAGGCGAG
-GTGCCCACAGCTGCCACTGCACACCCAGGTGAGGTGCCCACAGCTACCAC
-CGCACGTGGTCCCAACCTGCCCCGGGGCCGGGCTGGCCTGTGATGCCTGT
-CAGAGGGCGGAAGCAGGGTGGGAAGATAGCATGATGCGGTCCCCCATTTT
-TTATTGCCTCTGACCTTATTTTAGTCCATTATGGCTGCTTTTTCGGGATT
-TTCTCTCCTCCCTCCCGTCTGGCCAGTTTTCCTTTGTGCGGCTGGCAGCC
-CACCGCTTCCAACGCTGACCTCAGGGCCTCCATCTCCACGGGCCTCAGGA
-TTCTGTCTCAAAAGCCTGCGTGGCTTTGACAGTGTGGGGGCTGGTGGGAG
-GTTCTGCTGGGCTGCGCCTTTGGCGTTTGGAGTGGAGAGGAAGCTCCTCT
-TTCAGGTGCAGGCTCATGTGAGCTCCATGCAGACCTCAGGGATGGAGACG
-CCCTGCCCTGCATTCCCCAAGGCCACCCTGAGGAGCCCAGCAGTGCCTTG
-GCCTAGGCGCTTGGTCAGGGACGCCCTCCCTGCTGGACACTTGGCAGTCA
-AAACAGGACCTTGGTGGCATCTGGGAAGTTCTGGAACATTCTCAGCCTGA
-GATGCGGAAGAGGCATCAGCCCTCCCCTCCTCCCAAAACACTCGGGATGG
-CTGGAAGCTGGAGCCTCCGTCCACAGCCCACCCCTTTTAGGGGCCCCCAC
-ATTGGGCATGGTTAGTTCTCACACGCAGGATCCGGCACACACGCCATCTC
-GACAAGGATGCCTGGGTGAGTTGCTGCCCTAGCTTGTGGGTGAGACCCTG
-CACCGAGCTTCCCCAGGGCCAGCAGGGGTGGGCGGCCAGACGAGGGGTTT
-ACTCTGCACCAGGAGTGGGGAAGCAGTGACTCCCTGTCCCTGCTGGGAAA
-CGTGGAGTCTTCCTTACACTGGCAGGACCTTCTGCACCCAGGGCGTTCCT
-TCCTGTCCCAGGCTCCTGGGGCATTCTCTGATCCAGGCGCGGGTTTCCTG
-TGGGTAGTTGAGCCAGGTGTATGTGCCTGGCCCTTTCTCCTgcctcttcc
-tccatcttcagagcctgtagagccgcaacttctctccgccctgccctcag
-cttttgttctcacatcttctctccctggctctgaccttcctgcctcccct
-caacttaccagaacccttgtgatgagttggagcccacctggagggtcgag
-ggtcctctcccatcccaagacccttgacttaatcacatctaaaaacgtcc
-ctttgccatgtagggtgacccggtgacccattcacaggctccagagatta
-ggagatgagcttctttggggACATCCCTCGGCCCAGGGGATGCTCCCCAT
-GGGGGGTCCCATCTTAGGCCGATGCCCTTAGGGTCAGGGAGCAGCCTGGA
-GACCTCCACACAGGGACCCTGGGATACGCTGAGGGCTTGGTCCACACCCC
-ACCCTCACCCCGACAGGTGCCCGCTGCCTGCTCCGCCTGCTGGACTCCGA
-TTCCAGTGCTCATTCTTGCCTGCCACCTGCTCCGCCTTCTGGACTCTGCT
-TCCAGTGCTCATTCTCGCAAATGCCCCTTCCCCCTCCCGGCTGAACCTCT
-GCCCAGGTGGAGGCCCTTCCCACTCGGTGGCCCAGGTCCACCCTCTGCCT
-cagcggtccccaggcttgagcatgcatccgaattccctgggggcttgtgg
-accaacagatcgctggactgaacccatggtttctgattcaggggtcaggc
-cggggccccagaagctgcTGCTGCTGCTGGCCTGGTACCCCGCCTAAAGA
-AGCCCTGCCTACCCGAGCCCTCCTGTTCTTCCCTGCCTCCAGGCCCCTGC
-AGAGGCACGGTGGTGTGCACGGCTCATTCTCGCCTTACTCTCCCCATCTG
-TGGACGAGGCATCCTGAGGTCGCCCCTGCAGAGGCGTGGAGATGTGTGTG
-GCTCATTCCCTCCTTACTCTCCCCACCTGTGGACGAGGTGTCCTGAAGTC
-TCCACTCCCGCTGCCCTGCCTCCCAGATCGCTGTCAGGCTGGACAAGGGC
-ACCAAATGGCCCTCAGTGCAGATTTGGAGAATGTGTACTGGGCACCAGCC
-TTGGCAGGTTTCACGGATCTCTGCACTCATCCTTTCCTGGGTGGTCTCAG
-TCACTGCCAGGGGAGCCAGTGGCCTCACCTTACCAATGGAGAAACTAAGG
-GGTGCATGCCCATGGCCCTGCCCGGGTGCTCCCAGCATGAAGGGGCTGTC
-CAGGGCTGGGACTCCGGTCTGGCCTCATTCTCTCTTTGTCTACCCTGCTG
-CCCTCCTCCGTCTGTGTGTGGTGTCCTGAGCTGGGACTATGCCATCTGTG
-TCTTTGGGGAGGTCCCCTGCACCCTGGCCAGGAGCCGAGGGAGCTTTCCA
-CCTGCAGGGATCCTTCACTGTGTACCCTTGGCTGGCTCCAAAATCCTTCT
-CAGGGGAGCAGAGTGGGAGCAGGTGCCCCAGTCAAGTCTTCCAGGAGCTG
-TCGCCCCAGACACATCTGAATACTGGCCACCTGGAGCCCTCAGAGTCCCT
-GGTCCACAAGGGAGAGACGGGCTGGCTTCTGCGTGCCACCTTGCTCACTC
-CTGGTTAACTCTGCGTGCCGGCCTCACAAGGCTGACCATACAGGGCGGCT
-GCTGGCCCCGGAGCTCCTGCGGGTGCATCCTCATTGGTACGTCCTTCCTG
-GTCCTTACAAGAAGAGACAATGTCCCTGAGTGCATTTGCATGTCGATCAC
-GCTGCCATTATGTATCTCGGAGTTTTCATCGTGAGAAGAATGAGTTAATC
-ATGTTGTATATACTGAATAGACTTAGAAAGATTGCAAGACGGCACTTTCA
-TTGGAAGAGGGGAATTAGTTTAAAAATATGCTGTCAAAATATGTTGTTCT
-AAATGCTGAGTTGATGGTTCTTTTGTTTTGCTTTGTTTCTTGAATGTGTC
-ATTAGAAAGAATTAACAATGACATCAACTGTGAGATGGGACTGCATTTCC
-TCTGAAAGGGGGAGGATATTGAGTTGTCCTTGGGATTTTCTTTAAGTGAT
-TCCTTTCCCTTAATATATTATATCTCATGATGAGGCCCACTATAACTTTA
-ATTTTTCCATTTATTGAAAGTCAGATGTGTGCATTTGGAGAACTCAGATG
-TAAGGGGCTTCATTGTAACAGCCCCACCCAGTGCCCCGTGGGCCCTTGCT
-GGCCTCCCCTGGGCCAATTGACCAGGCCATGTGGTTCACCCTCTGGAGGC
-TGTGGCTCTGGGGCAATGCTAGAGTCAGAGGCGACCCCGTGGCACTCCCT
-GTGGCTGGCCGTCACTTCCTCCTCTGTAAATGTCAAGGTCCACTTAGACC
-CCAACTGCAGCCCAGGCCTGGGGGGTCTCTGAGATCTGCACTCAACCAGT
-TCTTACAGCGCAGCTGGTACTCCTGTGTTTCTGAATGGATGAGCAGCTAT
-GGTGTCGCCTGGCACCTGCTTATAGGGCAGGGCAAGGCCAGGGCAGCAGG
-GGTGAGGGGCAACGGGACCGTGGACAGTGAGGCGGACTCCTGAGCTGTTG
-CAGCTGCCCAGAGACAGCCGGCTACTCCCCGTGCACGGCCTCCAGATGGG
-AACGTTCAGGAAGGACATGGTGCACAGTCCTTGGGGCACAGAGACAGGCC
-AGGTTCTGACTTCCAGCTTCCTTCCAGCTCTTGTAAGTCTGCCTGGAAGG
-GAGGTGAGGTCCCACCACAGCACCTGTTGGAAGCCCTGTGGGAAGCCGCA
-TCCCACCCAGGCTGGAAGTGGCAGGAGGATCCGGGGCTCTGTGGGCCTCT
-GCCCTAGCTCAGACCCTTCCTGGGTCAGCCTCTGTCGTGTGGTTGAGGGG
-AGCAGCTGTGGGTCCGGCGATGGTGGCCGGGAGGTCAGAGGGAGGTGCCT
-GAGATGCGCCGGGTGTTTCACGGGTAGATGGAGCCCGGCGCGAGGCTTCA
-GGCCCGTGTTACATGCCAGCAGCCGTAACAGGTGCAATCCCGCCTTCCCA
-GGCGCGCTCTTCTTCAGGCACTTCTGAGATGCACTTTTACTACTTGTTCT
-CCTCTCTGGAATCGGGAATGTCATGTGACCCTTGGTGCAGGGCACCAGAC
-AGGCAGATGAAAGCGGCATAGACAGAGCTGGCTTggccgcctgggccccc
-cggggccccccggTGCCTGTCCTCTCCTCCTCCACAGGCCCCGCGATGGC
-TCTGATGGCGTCGATGATGCTGATTCTCAGTTAAGGACGCTGAAGTTCGG
-AGGTGCCGGAAACCCGTGAATCAGGAGCCTGGTGTGGTCCTGGTACCTGA
-CAAGCTTCGAGCGGAGTGAGATGGGAGTGGGCCTGGGGGCTGCTGCAGAG
-TTGCGGTGAGGACTCCAGTAGGGCCTTGGGGCATGAGTCGGTGCCACCTG
-GGTGCATCGTGTCTCCAGGAAAGGGTTCTGCTCTGGGGGTCCATTCCCCG
-ATGCCTGTGTATAGCCAAGGCCATAGTGAGGAGGCACCCCTGGAAGGGCA
-GCCCCTGCAACCCAGCACCTCTGCACCCTGCACTGGCTGCCTGCAGCCAC
-TGCACCCAGCCCTGCCACACTCCTTCACGGGGCCCAGCTCCCATCAAGGG
-TGGTCTTCACCCCCTAGGAGCCTAGGGTTGATCCCAGGAGTCTGAGCCTG
-TGCACCTGCCCCACCTGTGATGTGGCCTCGGGGACTGTGGTTTGTCAGGT
-GCTTAGGGAGTTTGTGTAATTAACCAATGCTTTGAGTCAACAAAGACATA
-GTGTGAGTATGATTGCAGGTCAGCACTGTGGAAAGAGCCAGGAACACCCT
-GGAAGCGGAGTGGCCTCAAGTGTGCGTGCAGGGCCGGTGGGCGGGGCCCC
-ACTCAGCAGCTGTGCGCTTGCACCAGGAGCACTGGGGGAGAAGCTGGGGG
-TCTGTGGAGCCCCTGACCTGCCTTTGCTTTCCTTGGGGCCCAGAGGCCCT
-GCTCTGGGAGACACAGTCCCATTGTAACCTGGAGAAGGGAGGGGTAGCAG
-GGAGACAATGAGGGGGTACATTTCAGCTGAAGGCCCAGCCTGGGGAAAGG
-CTCAGGCAGGTGGGGTGCATGGGGCACAGGGTAGCTGCCTGATGGGGGCT
-TGCCCTTGAGGGCACTAGAACCCTCTGAGGGGCCCTAGCAGGGCAGTGAC
-TGCTTAAACCACCTTCACATTTGAGAACTCGCTCTGGCGCTGCATGCCTA
-GGACCTGGGTAGAGGCAGAAAAATCAAGGTGGAGGCTGTTGAGGGTGTCC
-AGGCAGGAGATGAGGGTGTCCAGGCAGGAAATGAGGATGTCCAGGCAGGA
-GATGGGGGTGTTCAGGCAGGAGATGGGGGTGTCAGGCAGGAGATGAGGGT
-GTCAGACAGGAGATGGGGGTGTCCAGGCAGGAGATGGGGGTGTCCAGGCA
-GGAGATGAGGGTGTCCAGGCAGGAGATGAGGGTGTCAGGCGGGAGATGGG
-GATGTCAGGCAGGAGATGAGGGTGTCAGGCAGGAGATGGGGATGTCAGGC
-AGGAGATGGGGGTGTCCAGGCAGGAGATGGGGGTGTCCAGGCAGGAGATG
-GGGGTGTCCAGGCAAgagatgggggtgtcaggcaggagatgggggtgtcc
-aggcaggagatgggggtgtccaggcaggagatgggggtgtcaggcaggag
-atgggggtgtccaggcaggagatgggggtgtcaggcaggagatgggggtg
-tccaggcaggagatgagggtgtccaggcaggagatgggggtgtcaggcag
-gagatgggggtgTCCAGGTGGGATTCCAGGGGTCTCCGACCAGGCTGAAC
-TGTGGAAGAATCAGGATTTTCCATAGAGACAGGATGATGGGTTGGGTGTG
-TGGACGGGGAGGGTGTGTGGTCAGGCCCCTTCAGACCTCCATCCTCCCAT
-GGGTGCTCTGGGAGTGGTTGTAGCCCTTGAGTCACAGCGAGCCTGGAAGG
-CACATGTGGAGGAAAACTCTGGAAGAAAGAGCTTCCAGGTGGGAGTTGGG
-GCATCTGGGACAACCCTTCTCCCTTCACAGGGTGTTGGACACCCCCTGAG
-GACTAAGCTCATGGATGCAGGGGCTGTGGGCCCTCTGGACACCCCCTGAG
-GACTGAGCTTGTGGCTGCAGAGGCCGTGGGCCCTCTGCTTTGTGGGGCTG
-GGCTGAGTAGGGTGAGGGAAGCCCTGGCGTCTGCAGACCCTCCTGTACTG
-ATGACCTGTACCACCTGCTCTGTCTCCATGGCGACTCGAGGAGGAGGAGG
-CTGGGCCTGCATCACCTCCATTTTTGCATGCATGAGAACTTGAGTGTAAG
-TCTCCTCTGCTCCCCTCCTGTGACATCCGAGCATGGTCGTCTGACAAATG
-GGGCATCAGGAGTCTTGGTGCTGCCTGTCCCTGAAGTGCCTTTCTGAGAA
-AACACAGAGTGAAGGAACCTCTGGAGGGCACAGGGGCCATCACCTGCTGG
-AGCCCAGAGAAGGAATGCACCGGGCACTGTCGTGGGGCCGGCATTCAACT
-GAAAGGATTGGCTTCGAGTCTTGGCTGACCACTGGATACTCTGGCCaggg
-accttgggatggttcaggggaacctgctgcaggtttacagagagagaagc
-tgaggcccagagtggAAAGCAGGTGGACAGGGCTCCTCCCGTCTCCTCCC
-CTGCTAGAGGGTGGGCAAGAAACCAGCGCTCCCCTGGCTCCCTCCCTTCC
-CATCCCTTCTGCTTGGCGACCCTCCTCCAATGGGCTCCCGTCTTTCCTGT
-CCAACTGTCCATGTCACATGGGACCTGCTGTCTTTGGGCCGGGAGTCATA
-GCCACCTGGTTCACACCTGACCCCCAGGCCCACCCCTTCAGGGGGCCGGT
-GGCAGAGGGAGTTCCCAGGAGTGAGGTTTGGGGCAGGAGAGGCGACCCCA
-GTGCGTGTGGCTATGGGCTTCGACAAAGCAGGGGAGAAATGTCCCTCGGG
-TTCCAAATGAAAGTGGCTGAGATGTCACAGTGACATGACAGACTGAGCTT
-CCACTGTACAGGGACCCCCTGTGCAAAGTGGTGCCCCTGCCCGCCCCGAC
-CCCAGCCTTGTTAGGGGACTGGCCACACTCACAGACATGCCAGCCGGCAA
-GAGCTGGTCATGGGTGTGTGGACCGTCTCAGGGAATCAGTCAGAGGTGGC
-TGGGGTAGCCAGGAGCCACCACACTGCCTGCCGACGTGGCTGGGCCTGTT
-TCAGATCCAGGAAGTGTGGGTCTGCATGGGGAACCTTCTGCTTTTGTGAT
-GAGCTGAGCGGCCCCTGGCCAACCCTTTCGGCCTTGCATGGAGCTCAGAT
-GTGTGGCCGCAGGAGCTGAGCCCCAGTCCCAGGCTTGTCCTGCCCTGGCT
-CTGCCTCTTGGGAGCCTGTCCTGGGCAGGGTGGGGCTGTGATGAAGACTG
-GGCAGGTGAAAGCTCTGGGGCACCGGCCTGCCTGTCCCCTTCCTGGAGCG
-GACAGTGAGAGGGGCTTTCTTGCAGACAACGTGAGTCTTGCGGCCTCTGC
-AGGTGGCTCCTGACACCCGCCCCGGTGCCCTGTGGCCTGGGATCTGGCAG
-ACTTCGAGGTCCCTGAGGCCACAGTGGGTCTTCCCTGCAGGTGCAGTCGA
-CATGTGGGTTACTGACTTGGTTTGGCATTGGCGTCAGGTTGGGGTAGCCG
-GCCTGCACCCCTAAGCTTACCGGCTTTGTGCAGGGGACTCTAGCCTGGAC
-CCTCCCTTCCTCGCCTGCAGGAGAAATGCCTTTAGACCCCCAGCGCGCCC
-TCCTGCTGAGCTGTCAGTCTCGCGCCAGAGACCACATGCCTCTTGGGAAC
-AGAAAGGGGTTTGTACAGGGAGGTTGTCTGGGACTGCCCCCAGGACTGCA
-CTCTCTAATCCTGGGAGGAGAGGCTGGGAGGCTGACCCTGGAGGAAGAGA
-CAGCAGGTGCCTCCCACCCCCCAACTCCCCCGGAAGGACGGACGGGCCTG
-GCAGGGCAGGAGAGGGTGGACGTCCCACAGCCAGGAACAGCCAGGCACAC
-CACGGACAGGACTTCATGCCCAGCACATGCCGGCACAGCTGGTGACGCTT
-CTGGGTCTGATTCTGCAGCTGAGCTCCCGTTTCCTGTCTGCACAGCTGGT
-CACTGTGCATCCAGAGGAAGGTGGGTGGCTCTCTCCCGAGCCCTGCTCCT
-GTGCACCCCGCCTGCCTCCTCCGGACGAGGAACCCCTTGGTGCTTTCTGT
-TCTCTGATGAAGAGGAGGGATCTCCTTGCCTTTTCTTCTTCTCAGAACCA
-TGATAAGCTTGGCTTCCAGGGGTTTTTCTACAGAGATTATGCAAATGTGG
-CCCTCGCCTCCAGGGCTGCCCAGCCAGCACTCTTTAGGAGATTACGGAGG
-CCGCACGTCTAATCTTCACCATATTTGCCTTTTATTTACTCCGCACCTTT
-TCAGGCTGTGGTCAGCCCTGACAGCTCGGATCTTTCCGGTGAGGAGTACA
-TGTTGGAAACACGTATTTCATGTTCTCAAGAGACCATTTCCCTCCTGCTC
-AATCCCAAGGCTGTTCATGTACCCAGCAAGGATTTATTGTGTCTTCAGGA
-TAGTCTCTTTGTGTATTTTGGTCTCAGGTTTTAAAATATTGGGATCAGTC
-AACGATTACGCACTGTCGCTGGTGGGGTTAGTGAGGCAGGTGGGATGGGA
-GACCTCAGGCTGCAGACACTATAGTCACGTCCAGCATCTGCCCTGCTGCA
-GGCATAGGGTGTGGCCCACCCAGTCGCTGGGGGCCTCTAATGCAGCCGCC
-ATCTCACACGTGGCTTCCAGGTCACCATGAAAGGGGAAGAAGAGGAGGAT
-GGCACAGGAGGTCAGGCCTGGAAGGACCCGGGCCACTTCTGCCTGAAATC
-TTTCAGCAAGGAATGGTGCCCCTGCCCCGGCTCCCATCGGGAAGACGGGC
-TGGGAGCATCTGAGGAATGAGTCCTAGGATTTGGAGgacacaggacacac
-actgtctttgcaacagggagatcatatcttctccatgtccagggtgagaa
-agttgaggccaagagacatccagacacttgccaaggtcccaccgcctgtg
-ggtggtagagcttgaagtgagcgcagggtgctgagtccccaggctgttgc
-cctAAATGCTGCCAGGGGACGGGGGTTTGCTGACAGGTGCGGGCGGAGGT
-TCCCCTGTGCAGTGTCCTTCTGGGAGCAGAGGCCCTGGGAGCACCCCCTG
-GGAGGCCTGTGCCTGCTGCCGCCCAGCCTGATGGAGTGGCCGGGGTCTGA
-GGAGGTGGCCCTGAGGAAGGGTGAGGGGACCGGCGGTGATTAGGGTGCAA
-GGAGCAAAGAATAGAAGTCTCATCGATGCCCTGGTCTCCCGTTAGGTGTG
-AGGGGGAGGGGTGCAGCCGTCAAACCTTTGGCTCTCACCTGGGACCCCAG
-AATTGTGGTGTCCAAGCCCTGTGTCTGCAGAAGGCGACCCCAGCACAGCT
-GGCACAGAGGTGGCAGGGGTGGCACAGGGTGAGGACTCCAGGGCAGGCCC
-TGGTGGGGCTCTCTCAGCACGAGGTCTTCAGCGTCTTGGCCTCCAGGCTG
-CAAGTCTGACGTCCAGCTAGGGCCTTGCCCATCAGAGATGTCAGCAGGAT
-GTATTTTGGTCATTTGAGTCAAAGCTGGATCCCACCACATTCTGAAACGC
-CAGGAAGGGGTCACACCCCAAGCAGTGAGGCCCTCGGGAGATGGCTGTAG
-AAAGATCTGGAAGGGAATGGGAGAAGGACACCCTAGGGCCCCTTTCCCAA
-CTCGAGGCCACCCTCTGGGCATCTTGGTCCCTGGCCAGAATGAAATTTCG
-CAGTGAGCTGTTGCCCAGAGAAGGACATTTTCACATTTCCCCAAACCTTT
-TTTTTTCCTTTTCCCACCTGTCCTTTCTTGCTGTACAGAGAAGCCAGTGT
-CCAGAAATATGAGAAAATGGGGAAGCAGCAGCCGTGTGGCTGGATGACAG
-CTGTTTTCACCATGTTTGGTGGAAAGGATGAGCCTGGCACATTGTGGAGG
-GCATGGGCCATGGTTTGTGGGGTCATAGTGGGTCAGCACCCCAAAGTTAG
-CAAGGACCCCTTAGCATCTGCATTTCCTGGAGCTGGGCTGATGACATGGA
-GAAGGAACTCTCCTTTCAGGAGAGCCCACATGGTCTCCTTCCATTGCTAC
-CCTCACAGCAGAGGCAAGAATACaggtgaggcagggccaggcaggtgagg
-ggtgacaggcaggtgagggaggtcaggcaggtgaggggggccaggcaggt
-gaggtgggtcaagcaggtggggaggcaggcaggtgaaatgaataagtcag
-gtgcggtgggtcaggcaggtgaaatgagtaagtcaggtgaggtggatcag
-gcaattgcggtgggtaaggcaggtgaggggagtcaggcagatgagggctg
-ataggtaggtgaggggccaggcagttgaagtaggGCAGGCAGGTGAGATG
-GGGCCGGGCGTTCCTCCGGGGGTCTGCAGAGGACTCCCACGGGGGTAACC
-CTGCATGGCCAGCTCTAGGACTGAGGAGTGTGGAGGCAGAGAGGAGGGGC
-CGTGTCAGCTGAGCAGCAGGTCCAGGACAGCCTGGGTGGGTGGACAGGGC
-AGGCTGGAGGGCAGGGCCTGAGGGAGGCTGCAGTTGAGCCCACAGGGCCC
-TGGAATGTGCCTGTGCCCGGAGCCAAGCAGCTCCTCCTCCAGCTTCACTT
-CCGGGAATATCTCCTCTAGGTGCTTGCTGGGGCCGCCCTGCGGGGGTGTG
-GGGAGGTTGAAGGAGAGGCTGCGCCCCCTCCACTGTCCTTTACCCTGGAA
-CGGGGGGAGGGGGAGGCCCGGCTCTCCGGCGGGCACCGCGGGCGCACCTG
-CACTGAGAAAGCGGGCTCTGCTGCAGGTCAGGGACACGGGGCTGGGAGCC
-GCAGGAGCAGCTGCGCTCAGCGACTGTGGAGGCTTGGCCGTGGAGGGATG
-GAGGTCGGTGCCCATTGTTTGTCTTGGGGGTCCTGGAGGCTGAGCTGCAG
-CCTCAGCACAGACGCCTTAGCTCCTCTGTCCTCTCCTTTTCTTCCTAGTT
-CTACTGGCCACTCGTGGGTCCCCAGCCAGCTCTGTCACCCCAGCCAGCGA
-ACAGGGAACATTCCGGAACATCACCTCTCCCCAGCCTTGGGCAGCCCCTC
-CCCAAGGCTGGGCCCTGGGGCCTCTCACCCTGGGATCCCAGCCCAGCAAC
-CCTTACCTGGGAACGTTCTGCTGTGCACAGGGTGTCTTTCCAGGGGAGGT
-GGAACCTTTATACAGGTTTTTATGCAAATGATCACCCCACCACTGTAGTA
-TGTGTGTGTGACTCTTAAAAGTGTGTCTTTTCATCCACACACACACAGTC
-ACACTCCCACACACTGTGACCTGCACATGAGTGTGCATGTAAGATGCACA
-TTTACAAATAATACCTGCACAGGAGTGCGTCAACAGAGGATGTGATGGCC
-TTAGAAGAAATGTCTGACTTCAGTATTACACGGGTGTGTATATGTCACAG
-ATGAGCATTGAACACAAACATGTACACAGTCTGTGTTGCTATACGCATAT
-GTGTAGGTGTGAGCACACTGCACACGCAATGTACACGTTCACACAGGCAC
-ATGTATGAGCACTCGTGCCTTTGTGTGCGCACAAGCTGTGTGGGTATATG
-CATATGTGTAGATGCAAGCATGCTGCACACACATCACACATGGTCACACC
-GGCACATGTGATGAGCACTCATGCATACATGTGCACACAGGCTGTGTGAG
-TATATGCATATATGTAGGTGCAAGAATGCTGCACACACATCACACACACA
-GTCACACCGGCACATCACACGCACGGTCACACTGGCACATGTATGAGCAC
-TCATGCGTGTGTGCACACAGGCTGTGTGGGTATATGCATATGTGTAGATG
-CAAGCATGCTGCACACACATCACACACGGTCACACCGGCACATGTATGAG
-CACTCGTGTGTGTGCACACAGGCTGTGTGGGTATATGCATATACGTAGGT
-GTGAGCACACTGCACACACATTACACACATTTGCACAGGCACGCGTATGG
-GCACTCATGCATGGCTGCACAGGGGCACACACAGACACACCCCCCCCAGG
-AGTGCCCGTGTTGTCGAGCCCCCGCCACAGAGCTGCACCGCCGCTTGGTG
-CCGCATGCAGCGAGTTCCCGCATGGGTTGGTTTTCGTCTCCTGAAACTAA
-TTTGGCAGAAGCAAGTGTCCATATGTAGGTGTGGGTCTCTGTCTTCATGC
-GTCCCCCATGCCCCGACACACACACACGTTTCCATTAATTAGCAGGGACT
-TGGAAACCTACCGTCCCCGGCTCAAGGCAAATGCCAGCAGTCCCGGGTTT
-TTGTGGGGCAACATAGAGGGAGAATTGTCTATCAGAGGGCTTTCCTCTCG
-GCAAGCCGGGAAACAAGTGGATGTCCTTTGTCCGCCAACAAGTTATATGT
-CCATAAAAGACGAGCCCGGAGAGGCAGGCCGTCCTTTCAGCCCTGACAGC
-GTGTCAGCACCGGGAGCCGGCGCGGGTGGGTAACGAGCGCGCACCGCCCG
-TGGAGGAACATATGGCTCAGGCGTGCGCCGTGGCTGACGAGTTGTCAGGA
-ATTCATGGCAGGGCTTGTTTTGCCAAACATTTCACTATGGAGGAACAAGG
-ACTCCAACCTGGTTATCAAAATTTGACATTTCGAAACCGCCTGAAGAATT
-TTTAACTATTGGGTTTCCATGTCAACAGCATGCCTGTCTTCATCTGCGGC
-CAAGGCTTCCGGCTCCCTGTGCCCTGTGCTGCGGGGAGGACAGAGTGCCT
-TTGTTTGCAGCCACCCATGGGCACAGGCGGCGCGCACACACATGCACACG
-GCAGTGGCTTTCTGTGCTCCAGGAGGGTTTACGCTGGGGAAGGGAGGAGC
-TTCACATCTGTGTGTGGAGGAGTGGCTGGGAGCTGCCCCACAGACCCGAG
-GCAGCCCCCGGACACCCTGGCACTGGCTGGGCGATGGCAGCGGGGCCTGG
-CTGGGCTGCAGCTGGCTGAGTTCTGTCGTCTGCAGAGGAGCAGGACCTGG
-GACGGGGGCTCCCTCTGGACGTGGCTGGCCTGGGTGCCTCTCCTTTAGGA
-GCTCTTAGTGATGGGTGTGGTCAGGAGGAATGCCACCCCAAACAAAAACC
-CCCTCGGCCTCCCGGTCTGGCAGGAATTGGGGAGGTCCCGCTGACTTGAG
-CCAGATGGCTTGGTGCTGGCAGAGGCCCCGATGGAACGGATTGTTCTGTG
-GCTCTCGTTCCTCTGCCTTTGAGACACCCGGGGTGGGGGCAGGGTGGGGC
-AGGGGAGGCCGGTGCTGCCACCACATGGCCCGGCTCCCTGGGGACCTGAG
-GACATGAGGTTCCCGCTCTGTTCTTGGTGCATTTCCAGGCAAGATCGTCA
-TCGTCTGGGAGAGACGGGGTCTGGCCATGGGAGCTCAGGGTGGCGTTCCC
-CACTCCTCCATCCACTCTAGACCAGGGATGCCAGGGACAAAACCCCAGGG
-CAGGCCATGTCTGTGTGCCAGGAGGCATGTGGGCAGAGGATGGggcttgg
-tttcaaatctgggccctgccacttactgactcagcatgcggccctggcca
-gcctggcctctcaatcccagCCCACAGGTCCCACAGTTGGATAAGGCTCC
-TGGGAGGACCCAGAAGCTGGCAGCAAGGAGCTCCCGATGAGTGTCAAACC
-AAATGCCATGGCCTCCTTCTTGTTTCAGGGGGAAGCCCAGCCCAGCAGGC
-ACTGCAGCCAGGGTCCTGCAGCTCTCCCTGGGGCCCTGGAGGCCCCTTTC
-TGCTCCCCTGTCAGAGCGCCCAGCCCAGCAGCCTAGAAGGCCCCACGGTG
-TCCCCAGACTAAGCCAGGCTCCTGCCGGAGTGAAGAGAGCAGGAGAGGCC
-TTGGGCAGACCCTGTACCCCTGGTTTCCTGAGGCCTCTCTGGCTGATGGT
-GGGGATCAGGCTGAGGGTGTAGGGTCAGGGTGAGGGGGTGGCAGGGGCAC
-GATGCCTTCCATTCCCCCGTGGGCCATTTGGCGTGGGGATGCCATGGATC
-CAGGCAGTGCACGGACCTCTCTGTCACCAGCGCACGGTCAGCTCCACGCC
-CCTTCCTGAAGGCAGATTCAGGTGTGGATGCTCCGGGTTTTAGGCCGAGT
-ggcctgcttttatattgccaggaagctaaggatggttttaatcatcttaa
-agggttataacaaaaaaagaaaaatacgtgaaaccaccgagatggcccgg
-ggctgcagagccgaaaatattgactacctggcgctctaccgaaagtcgct
-gccagctcctgGTTTAGGGGCGGGGATGGGAGATGGGACTGAGCAGGTGG
-AGGAGGAGGACAGTCCTGGGCAAGGGGCTGAGGGCCGCTGCCCCGAGCCC
-TGCCCTCAGGCTGGTTGTGAGCCAGGCCATGGGGCGCCCCATCCTCAGGC
-CAGTTTTCTGGCTCTGGCTGATTCGAGGTAGTTGGGTATTGGCTGGCGAG
-CTTTCCCTCCCTTGAGCCCTTCAGGATACAGTATCGTCCATGTGGAACTT
-CGGAGGGCAGAATGAGGACCAGGTGGTGGCCGGAATCAGAGCCAGTCAGC
-TCTCCCTGCACTGGTGCTGCCTGACAAGCAGTCCAGCTTCTGTGGCCCAC
-AGCAGGGAGCATGACTGTGCCTGCTCATGGGTCTGCCGTGCTCTCTGCTC
-CGGGCCGCGGTGGGCTCAGGTCTCTTCCACGCGTCTCTGTGCATTCTTGA
-CTAGCTACTTCCCGGCATGGTCTTGCCGTGGGAAATCGCAGGACACCAAA
-CTCAACCTCCGGAGCTCATTGAGGGctcctcctgggtcacacccacaaac
-atcccactggccaagtaagtcccatggccagtcctaggatcaagggtgca
-gggagctTGTCTCCTTCCACCCTGGAGGTGCGGAATCCAGTCCCCAGGGC
-CCACAGAGCAGGCAGGTGAATCGTGTCATGTTTATATCTGCATTTTACTG
-TGACTTTTCAGTTTGTGTTTTATAAAGTGTGCAATAGACTTAACATTTGG
-AGGCATGAATACGTATTTGTCGGGGGGATACATAGTCGTTTTTGTAAACC
-AATGGGATGTGAGTTCACAGGGGGTGGGAGCCTGTGGGGTGGGCACTGGC
-TCGGTCTTCCAGCTCCGAGCTGCTGGCTGAATCCCGGGGAGAGAAGTATC
-CTGGGGCTTTCTGCTGACCTGCCGAGTAATTGCCATTTTCAGATCTTGGT
-TTCTTGGTAAATAATGACATTTCTCCATCTCACTGAGGATGCTGGCTGTA
-TGGAAATGAAGACAGGACTGGCCCAGCCAGGGCCCTGGAGAGGTGGCCAG
-AAAGACCCTGGCGGACTCCTAAATTGGTTTATTTGCCAGATAATCGGAGG
-CAAAGCCGATACCCTAATAGGACATGGGCTCCTCCAGGCTGTGCGTGGCC
-GGGCGGTGATCACTCTGAAGTGGTTGTTACTGTTTCCCAGGCAGGAAAAG
-CTGTTTTGATTTCCCTCTTGGCATCTGTTCTGAAACAAAGACAATTATTG
-TGTTGACTTTTCTTAAAGACGGAGTTACATTTAGACGGGTGCAGTTTGTC
-ACTGCAACTTTTCTCTTCCCACTTTCTGTATTTTTTTAAGAAGCTAGGAG
-CCCCTCAGGTGGAAATCGGGAAGGACGAGGAAGGTATGCTGTGCTGAGCT
-ACAGCCAGGTCGGTGCCACCCGACAGGGCCTGCCCACGGGAACAGAGCCT
-ATGAGCAAATGAAGAAATATCCAGCAATGTCGCTGGAGTTCCAGGGCCTG
-TCAGAGAATTTCAGGAGAGGGCTTAATAGCCGCAGGAAGGCCACAGGGCT
-CAGCTGACCAGGCAAGGTCACCCCCAGGACGTGATACGTCGGCTGAGAAC
-TGGGTAACAAGGAGCCAGATGGGAAACTTCGAAGTCCCAGAACCTGCCGC
-CACCAGTGCTGAAGGGGGCAGGGGTACAGGCAGAAGGTGGGAGGGGATGG
-GGCCTTGCCAGGGAGAGGAGTTTGGTTCGATTCCAGCACTGGAGAGAAAA
-CCGGGGTCTGGCAGAGCCCATGTCCCATGGATTGGGGGGTTGGGAGTGGA
-ACTGGGGGCCTGGGAAGGGTTAGGAGCAGCCGGGTAAAAGCCGGCAAGCC
-TTGACTGCAGGAGAAGGGCTGGCCCCCTCACCCGCAGTGAACCTGCTGGC
-CACCAGGACTTGTGCCTTCTTGGGTCTAGCCTTGTGTACGGGAGGGTGAG
-TTTGCCCAGGTTAGACCCGTGTAGGTCACAAAGGTGTGTTTGAATTCATT
-TCCCACTGCAGCACCGGTGCAGGTGGGAAATAGAAGGGACCCGTGGGCTG
-AAGCCTGCTCCCCAGGACCAGGGCGGTGGGGGGAGGTGGATCCCCTGGGT
-GGAAGCCTGGAAAACCTCTGGAGGGGTGGGGGAGGCAGATCCTGCCTGGA
-CCCCCAGAGAATCCCTCTCCGAGGCCACTTGTGCCCAGAACTGACACCCG
-CCATGGGAACGATGACCGATTACCCGACCTCTCTGCTCCAGTCCCTGGTC
-CCCTGAGGTCTAATGGGGCACATAAGCCTTTGACTTCTAGGGTGTCCTCC
-GCCCCGGCAAAAAGGACCCAGTCCCACCTCGAGGTAAGAAACGCTGAGCG
-CAGATATGCACAGGAGTTTGCCTTTTTTTTTTTTTGCCTCAAATGCATCT
-TTTGTTTTTCATGAATCCAAGCCTCGCTTCCTTTTCTTTTTGTTCTTTCT
-CAAGTTACTGTACTAAAATAATCTTATAATTTGCCAATTATTTCTTCTTT
-ACAAAATGATGTTATTCAGAATTTAGTCACTAATGTACTGTGAAACTTGG
-CCTCAATTTTAGCTTCAGATGTTTAGAGGAAGATTTTTGTGGCACTCGGT
-GTAATGGGTTTGTTTTTGTGTTTGCCTGTCAGACCATTTTTCATTGACAG
-taaaaaaaaaaaaaaaaaataCAAACAGCAGCCATTTATTAGAAGCCGGC
-CAGGTAACACAGGTCCTGGTAGCAGCTCTCTGTGTGGACGTGAGGCTCCA
-GACCTGGGCCAAACCCTGCAGAGGGGCTCACCAAAGGAAAATGGGGATCC
-TGGGCTGAGGAACCTGTTCAGGGACAGGGGGTGGGGGAGTCAGGGCTGGG
-AGTGAAGCCCCAGGAAGTCCGCCACTGAACGGCAGCACTTCTCAAGACTT
-TGCGCCTCCTGGGTGTGTGCACTGGACCCAGAGACACCAGGACCCTGTCC
-TCCCGGGGCGTTTGTACAGGGCCTTGGAAACCCCAGAAACCTGTACCATT
-TGGGGCACTTGTGCAGGGACCTGGAGACCCCAGGACCCTATACCCCCTGG
-GACCTTTGTGCAGGAACCCAGAGACTCCAAGGAGCCTGTCCCTGCTGGGG
-TGTTTGTGCAGGTACTTGGAGACCCCAGAACCCTGTACCCTTTGGAGCAT
-CGTGCAGGGACTTGGAGACCCTCCCCATTCCCATGCTTTCTGGAGGGCCC
-GTAGGACCCAGACTTTTGCTGAAGGGCATTGTTTCATTCTTTGTGGAGTC
-TGCCTCTCTCAGGGAAGACAACTCACAGTTCAGCCTCGGCCGGCTGCTGT
-TTTCCTTGTCCCAGGTGTGAGGAGCCCAGGCACATTCCCCAGCCCACCTG
-TATGCCACACAGGGCAACAGGTGCCACCCCCCTGTGTCGGTGTTGGGAGG
-GTGGAGGGAGGCCAGGGTGGGAGGCCCCATGCAGACCTGCAGTGAGGACT
-CAGTGCACCTGGCCACAGACACACAGGACCCTCCCCTTGGCTCTGGGCTC
-AAGTCCTTCTTCAAGGTGGGACTGCTGGGAGGCCTTGACCTCAGGGGTGG
-CAAGGTCTGCAGCCCTGCCAGGCTCCGGGTCTTGAGTGCCACCACCCGTG
-CCCTGGGAAGGCCCCAGCAGTGCTGTCTTCCAGCTGGGGGAAGCCGGCTC
-TGGGCTCCCCCGGGGCATGTTGGGGGCCACAGATACCCCAGGGGATCGTG
-TGGGTGCTGAGTGGAAGGAGCTCCAGGACGCCGAGTGCAGGGCCTGGGAG
-GCCAGTGTGCAGGGCCCAGCATCAATCAGCCGCTGTGGTTCTTGTCACCC
-GGGTGTTCAGATTGGAGGGGCCGGGGCgtgtgtgtgtggtgtgtgtgtgc
-gtgtgtgtgtgtgcatgtgtgatgtgtgtgtggtgtgtgtgtgtgtggtg
-tgtgtgatgtgtatgtgtgtgtgtgggtgtggggggtgtgtgtgcatgtg
-tgatgtgtgtgtcgtgtgtatgtgtgtgtgatgtacatgatgtgtggtgt
-gtgtgctgtgtgtgtgtgcatatgtgtgtgtatgtgtgtgtggtgtgtgt
-ggggggtgtgtgtgcatgtgtgatgtgtgtgtagtgtgtatgtgtgtgtg
-atgtgtgtggtgtgtgtgtggtgtgtgtgcatatgtgtgtgtgcgggtgt
-gtggtgtgtgtgtgtggtgtgtgtgtgcgtgtgtggcgtgtgtggtgtgt
-atgtgtgtggtgtgtgtgtggtgtatgtgcgggtgtgtgttgtgtatgtg
-tgtgtggtgtgtgtgtggtgtgtgtgcgtgtgtggcatgtgtgtgtgcat
-gtgtggtgtgtggtgtgtgtgtgatgtgtatgtgtgtgtggtgtgtgtgg
-tgtgtgtgcgggtgtgtggtgtgtatgtgtgtgtggtgtgtgtgtggtgt
-gtgtgggtgtgtgatgtgtgtgtgtggtgtgtgtgtggtgtgtgtgtgat
-gtttgtgtggtgtatgtgtggtgtgtgtgatgtgtgtattagtgtgtgtg
-tggtgtgtatagtgatatgtgtactggtgtactgtggggtgtatgatgtg
-tggtgtatgtcatgtgtggtgtacagtgtgtgatgtgtatggtgtgtgtg
-tgtggtgtgtatgtgtgtgtgatgtgtttgtgtagagtatgtatggtgtg
-tgtgatgtgtgtatttgtgtgtgtggtgtgtatagtgatatgtgtactgg
-tgtactgtctggggtgtatagtctgtggtgtgtgtcgtgtgtggtgtgta
-gtgtgtgatgtgtatggtgtgtagtgtgtggAGAAGTGTCCATGACCACT
-CTACATAGTGGGACCCCGATCTGGCAGTGTGTGACTTGCTGAGGGGCACA
-GAGAGGGGAGAGTGGTCTGGGGTCTGCATCCACCTGGAGCCCTCCACGTC
-CTCCCCTGGCATCTGCGTCTCTGAACATCTCCTGGGGAGCCGGGGGTCGT
-TTGTCTCCTCCAGCCCTGTTGAAAATGAGGATCTCTGACGCTTTGGCCCT
-TATTACCAATCAGCCAGGCCGCTCCCCTCCCCGGGGAAGAGATGGGGCCC
-AAGTCGTTTTTTGCAATAACATTTGTGGAACTTAAAGACAAAATCCTTCA
-TAAAAGGATCGTAAAGTGTAATCACGGCAATGAAGCAGGCCCGAGTGGAG
-GGGAGGTGACCTTTCCGGCCACTCTCTGGAGGAAATGTCACCCAGGAACA
-GCAGGTGGTGGGGGCCTTGCCTCCAAGGAGAGCCTCCCTGCTGGTCTGGC
-CTTGGCGGGGTAGGGGCAACCTCCTACGGGGGGACCCTCGCTGCTGCTCA
-TGGAACCCTCCCGCCATGACAGAGCAGGACACCTCAGGCCCGCTGCTGAC
-CGCAGTCTGGAGAGGAGATATTATCCTTGCTGCAGTGGAGATGGCTGCAC
-CTCACTGGAGGCCTCCCCGCTCTGGCTTGCTGTGTTCTCAACTTCCTGGG
-GGACTGTGTCCCTGCTCGGGCAGAGCCCACTGACTCCAGGCCTGCTCAGT
-GCAGAGGCTGCTCCAGGCTGAGTATCTCTGGGACCTGTGGCATTCAGTTA
-GGCTCTGGACAGGCCAGGTGTCTGCCCCAGCAGGCAGCTTCCCTCCAGGC
-GGGGCATCCGGGCTTCCAAGATAACTCTCCATTTGACCCTCATTCTCCAC
-CTGGAGAGGCATGGGTGATCCCCTTGTGGGGCTCCAGAAGACCCCAGAAA
-ATGATGGCTTTCAGGGCTGGAGTTGGTCTCTGATAAGCCGAGGAGCTCCC
-AGGGGCCTGGGGGGCTCCAGGCAGCCCACACCATGGATGTCTGTCCTTGG
-TCATGTGCCAGTGCCATGGGTACCTGGGTGCTCAGCAGGACAGCAGGGTG
-GGCTGCAGAGACCACCTGCTCCCAAGTGCTCCGTTGGCCAGAGCTGTCAG
-CCAGGGTGTGTCATGGTGTCTGGGGTGTGCACCCTGGGGTGGGGTCTTCC
-CTTCAGGTCCCATGGTTTACATACCATCTCCATGACCCTAACTTCACAGA
-GCCCCACCCAGCTCTGATACCCGCCACACTGGCAGAGTGGGGTCCAGGAC
-CTCTGCAGAGCTGTGGACCTGGGGGGCATCCTCCCCCTGCGTTGTCTGCC
-CCCTCTATGGGAGGAGGCTGCACAGGGCAAGCCAATGCCACTGGCTTGGG
-GGCAGTTCAGGCTCTGTCCCCACTCCACGGCCAGTCTTGGGTTTGCCAGG
-GACTCCGTCAGCCCGTCCCTCGAGGTGACATCTGACAAGGCAGCCGTTTG
-TTGAAATATGCAGACCTCTGCACCACATGCTAATCTGGGCTTTTTTCAAA
-TGAGCTGCAGCACCAGGAGGGTGCAACGGCGCTAACTGCATCAGCACATG
-CCAGCTTCCTCCCAGAGCTGCACAGAGCGGCACAGCTGGCTAGGTGCCTT
-GCATTTCCACCCCCCTTCTTAAGGCCTGATGTGCACTAAGCACTCACTCT
-GGACTTGCTGTGTCCCTGCGTGCCCGCAGATGAGGGTGCATGTTGGTCTC
-AGTCCCCACTCCGGGCTGCGGGGAGGCTGACTTGGAGAAATTGTTGAGTT
-CTGGCTGTTACCACGATCTAGGCGAGGCCTGCAAACAAGGTGTGGCCTGG
-GGTCCCACGCTGCCTCTGAGGTGAGAGAGCCCTGAGGGATCCTGAAGTAA
-GCCAGACTCGGGGCTGAAGTCTGCATCTGTCCCACCTCCTGCCGCAAGGC
-CCTACGGGTGTGAAGGAAGGATGCTGAGCGCACCTGCTTTTCAGTGGGCA
-GCAGCCGCCTCTCCTTTGCTGCGTGGTGGGAGCAGTCCAGCCAGCCCCCA
-GTGGCTCAGTCAACAGGCGGAAGGACTCTCAGGGGAACCATGACTTTCAC
-CATCTCCAGATGGATTCCCGGATCATGAGGTTCTAAGCGAGTCTTCAGGT
-TTGGAGAAAGTGGACTGTATTTGTGGGAGACACTATTCTCTCTCCCTCTT
-GCTCTGCCCTCCCCTCAGTCTTTCCGCCACTCACTGAAGCCTGCCATCCA
-GACCGTGCCATGCTGCCATTTGGCGTAAGGCCTCTGGTCTCGGAATTCCC
-TGGCACAGTGTTCCTGGTGGCCCCTGCCTCAGAGGGGGCTGGATCTGCCC
-CGGGtcacagcactcataggacactgttgtgattgcaattatttggctgc
-tccctgacctgagtgagacacccatgagggcagcaaccctatgtcttgta
-tctcctaatgcctagtggatagcgcagcacacagtaggtgcttaatgaat
-gtttCTGGGTTATGCAGTGATTACTCTGAACCCAGCTGCCACTCACAATC
-TCTTTGGAACTAGGTTGGGTGTTATGGAGCATCCTGTGTTGGTGCTGGGA
-GAGGTGGAGGCTCTGGGGCTGCCGCTGTTTTCAGGACCCCTGCTATTCCT
-GGGCAGACAGGGCCGACACCCAGAAATCATCCAGGAGCAGTACCAGGTGG
-GCTCTAGGGTGTGGAGACAGCTGGGCAGGTCCCTTGGGTGCAGGAGAGAG
-GGAGGGGAAATTGCTGCAGTTACCTAGTGCCCCAAGGAGATTGTCGCCTG
-GGCACCTGAGAGACCCCAGGACACAGTCCCCACGGCCCGTTCCAGTTAGA
-GGCTCTTTGTCAACAGATGCCCCTGGAGTCCGGCAGGGCAGATTAATACA
-TGAATGAGTGGGTGAAGGTGTGAGTGCTGCCTGCTATAACTTGGCTGGGT
-TCTGCCACCCTGGGGAAGGGGAGTGCCAGGATCTGTGAGCCTCAAGCAGG
-TCCCACCCAAGGGAGCTGCTCCGGAGGCTCTGGGTGGCCAGGCCCGTCGC
-TGGGCGGGAGGAGAGCCAGGCACATGCTCGGTTTTGGGGCTGGCCCTCCC
-ATCCCATCACGGGCACAACTTGGGCGGGCAGCCTGGAGGAGCAGGTGGGC
-TCGCTGAGTCGGGAGGAGGAGGGCTCCCCTTCAGCCCGGAAGAAGCGTGC
-CTCCCCATGGGGACTGCGCCTGCACGTGGCCAGCAGGCAGAGTCCACTCC
-TTGGTCAGCACTTCACAGCAAATGCATTCCCAGCAGCTGAGGCTCCCATG
-CCGGCGTGCGCTGACGGCATTGTCAGTCCTCATGTTGTGCCTGCCCGTCC
-CAGGGCAAGGTGGCCTGAGTCCACTGCAAAGTCCttgattaattcagcaa
-acacatgctgtgctgagcactggatggctcttggaggtccccgagtgacc
-atcggacactgccctatcctcttggagcttgtgggggaaaGAATCCCCTT
-TCTCAAACGGGGTGTGTGGACGCCCCTGTTTTTCTCACCTGGCTGGGCAG
-CCCGCGGCTGTGGGATGAGAGATACGGATGATGTGGACTGCTGAGCAAGG
-GATGTGCATCCAGCGAGCTTTGGGGAATCCTAAAAGGATCAAGAGTGCGT
-GAGGGCATGGCCTGGCGAGTCCTCCTCCTACTTCCCATCTGTGAGGGTCC
-GCAGGATGGGGGGCTCACCTCCATTCCTCCAGGTGCCCAGCACTCATGTT
-CCACACTCAAATGCCCCTCTGCAGTTCTGGAAAGGCTCACTAGGCCATCC
-GCTGTTTCAGGAGGGTTGATTCCCGAAGTCACCGGCTCTGGTCACTTCCA
-GGAGGCTCCACCCTCTCGTGCGGGGAGGACGATTGCGGATGGCCACAAGC
-TGTTACTACCGACTGTCTTGACTCCGTTCAGCAAGGATTGAAAATAGCCA
-GTTGGCCAGACTCAATCTTTGTCTTGTTTTAAAAGAGTTTGTTTTTCCAG
-ACTCTGTCCAAGTCTGTTTTAATCCACCCAAAGAGGAGCTAAGTTTGATA
-AATAAAAGAAGATTAAAAATGGTAGAGAAAAATGTGTTTCCCCCCAGCTC
-CCAAGAGAGTACTGCCAAAATTGAAGTGTAGAAACAAAAATAGAAATGAT
-CAAAACGTCTGATGGTATCTATATTTTCAAATGAAAAGGCAGAGGGAGTC
-TTTCAGCCCAACCACTTACGGGAAGATGCGGCGGGCCTGGGAGCTCACCT
-CGGCTCCCCTGCGCCTAGTGGGAGTCAGGACTGGAAGCTCCTCTTCCTCT
-GCTGGTGGGCCTCACGCCGTGGATCGAGGGGGTCCCTGAGTTGTTCATGG
-AGGGGAATGTTGCTTTGGAACAATCAGGGGAGCTCTTGGGGCTTCAGGGG
-CCTCTTGGGATCCAGCCTTTCCCCAGGTGTTTGCATTCCTTTGTAGAAGG
-GGAAGTGAGGATACCTTTGTTTGTGATGTCACATCAGCCCCAAGCCTGGA
-GCCCCCATACTGGGTGAGAGATGGGGGAGACGGGCACCAGCCATGGTTGC
-TGGGCCAGAGCTGAAGCAGCTGGGAGACTCTTCACTGTGCAATAGTGACA
-GTAATGGGGAGAGCCGCTCGTGTTCAGGGGTGCTGCCTTATGTACCGGCC
-CTTGGTTCTCCACTTTAGGGACATTATCTGATTTCATGGCAACCTCGTAA
-GCcagtgactcagagtggggtcccagtggcattggcacagccttgggagc
-gtgttaggaatgtccatctctggccccactcagacctgcggagtccgaga
-ctctggggtgggtctcagtgtctccgtctctctccagaggactctgaGTT
-TGACGACTGCCGCTGCATTTCACACGTGGAGAAGGTTGGAAATGTCACCG
-TTAACTATTGAGCCCAGCATCCCATGGCTAACCGGTGATAGCGCCAGAGT
-GGAAATAGGGCGGTCTTCACTGAGAACCTACCCTCGAGCCCTGGCCCTGT
-CCTCCAGCCCCAGTCCTGCCCTGTTGTGTGATGTGTTCTTCCTGCCTGCG
-TCTTCGGAGGTCCCAGGAGTGAGGAAGGTGACCCTGGGACCTCCCCCGAG
-TGAACATGGCAGCTGGTGCTGCAGGTGCACAGGCCCAGCTTCAGGCGCAG
-GAGGCCCGGGGGTGCCTGATGGGGATCTGGCCCCGTGGGGCTTTGTCCAG
-TTTCTCTGTGGCCAGCTGCACACATGTGGGTGTTGACACCCATTAGGATT
-GCTCTTTCTCTTAAGTGAGTGTAGCGAGGAGGATGGCTGGAAATGCCATG
-TGCAGCTGCAGTCCCGAAGCTGCCCGCCTCTCTGGGTCATCATCTCCCTG
-CCCTCCTGCTCCCTCGCCCCGCCGACTGTGGAGATGACTCGTCCTGCCAT
-GCCTTTTAGCATGAGCTTGTGTTTCCAACCAGTATATATTTTTTGAGATT
-GGGTGCCTGTCTCTGGAACAAACCAGAAACTCGGGCCTCACAGTGCTGTT
-CGGGACCCTGGGTCAGCAGTGGTGGCTTTGACCGTGGGTCTGTGGGTCAG
-CTACAGTGGGGTCAGACTGGACCCCAGGCTCCAGGCTCTGGGGCAGGGGA
-GTGGACTGGGGGAGCTTTGCTGCTCTCGGCAGGCTGGGCTCCAGGTGGTG
-GGTTGGGTTCAGGGCTGCATTTCACAGGGGCAGGCCCAGCCTCAGAACCA
-CATCACTGCCAGCCCCTCCAGGTCATGaaaatcccactggctaaagcagg
-ccacatggccaagcgcagcatcagcgcaggtgagagcgtgcatgagagTT
-TTCCCAACAGTCGCCTAACAACCGAAGTCTCTTATCTCCTGGCCCCTTTA
-ATCCAGTTCCCTatactacctggcatacagcaggtgcttattaaatgctt
-gGCCCACTGCTGGACTAAAGTCATTTGGTTTCACTGAACTCATTGTCTTT
-TTGGGAATTATATCACAAGAAGCCTTCACACCCATGCTGGAAGAGCCTTT
-TGGCCAAAGAGAAGTTCTTTATAGCGATCAGATTGACCTAAAGAAGAGTT
-TTCCCACATAAAATGTGAATTCATTGGCATGAAATGACACAGTTTCATCA
-TACATTGTCTCCTGAGTAGAAATAGGAAGAGTAAACACATACCACACCTT
-TCTCAAAGGGAATGAGCCTCGCTTCCAGCCAAAGGCAGGATTCATGATCC
-CATTTCTCTGCCTTGATTCTCTTTAGACAGTCACCAAAAAATTAATTGCC
-AAGTAGTCTGCAGTGTGTAGACACAGAGGGCTTCCAGCCCAGGCCTGATG
-TTGATACCTGCTCATCAGCGTGTTTGAATTACCTGGACCATCAATAAATG
-CCCGGAACAATATGAGCTTCAGGGACATGGAATCCATTCGCCACCAGGCA
-GCTGGTGGTCAGCACTGAGCAGGGAGATGGGTGGCTAGTACTGGATCCGT
-GCTCTTCTGAACTTTGGTGCAGCAAATGATTCTGCATGCATTCCAGAAAG
-TGGCCCTAATTTGAATTTAAATCTTATTCATGGTATTCATGTGGTGGCAT
-TTGGAGAAGGGGACACCATGACAATACCAAGCAGGATGCAGGGACTCAGC
-AAAAGCAGGCGCAGGTGCCTCCCAAGGGACCACCTGCTCCTGTAAAACTG
-CAGTGGTCCTGCCTATCCTGCTTTTGGAGATGACTGCCCCTGATGGTGTG
-GCAGGGCCAGGGCCAGGCTTTGGGCTTCAGGACCAGGCAGTGCCGGGTTG
-GGCTTCATCTTCCACACCAACTGCTGTGTGGCCTGGAGTGGTTGTCAGAG
-CTGTGGCAACTGTGCACATTGAGGACAAGCACGGGCCCCTGCCCAGGTCT
-GAGGACTAAGTTCGGAGATGGATGAACAGGCAAAGTCCCCCGCTAGCAGT
-GCCAGACGCCCTCGGGAATTGGACTTGTGGTCCTGGGTGttcattgccag
-cttgctctgcaccaggcgaggtccgaatgatttccttgcaatgatgcact
-catccctgaggccaccctgtcaggtactgtcacatccctctccttctcaa
-agagaaaccgagtcacagagtgtttcagtaactgagaacattaagtgact
-cgtatgtggcaaagctggCCTGTATCAGAAGCTGGGAACTTTGGGGTATG
-CTGGGCATGGGTGTAGCAGCCTGTGTGTGTCCACCCGAGGTGGCCCTGCC
-CTGTTTCCACACACAGCCTACCTAGAGCTAGAGAAGGCTCCAGGAGTTGA
-GTGCTTGGCTCCAGGGCCTGGGCAGATGGCGCATCTGGCCGGGATAAGGT
-GTAGGCCTGGGAGAACAGGGTCAGTGCAGGCCACAGGTGAGGCCAGATGC
-AGACAGGAGCGCCATGAGAGGGCAAGGGCTTCCAGGCTGGCACATGGGCC
-TCTCATGCACCTTTCCCACAGACTGGTCGGAGGTGCCCAGCAGGACCCTG
-GATGGCTCTCTGGGAGTAAGCTAAGAGGTCACATCTGGATGGAACCAGAT
-GTGAGGGCTTTGACCCCCACGGAGCCAGGTGCCCCTGGGAAATGCCGGCA
-TTGTGTGAAGGAGTGTCTTGTATCAAAGCAGATATGCCCTGCCCCCTACC
-CTCATCCCACGGTTCCTAGCAGGTTCCATCGCCTTCCGCACTTGATGCTG
-CTGGATCCTCCCAAGGTCCCtttgcaggttggaacctgcggctccaaggt
-gaggtggcttgcctgggaccacacagtggttgggtgtggagtccggacaa
-ggtacatcctgatccagggccccctactctgatccacGGGTGTCTGGGCT
-CCAGAAAGCTTTCTCTGACCTTCTTGTTCTCGGGAAAGAGCGGTGCCTCC
-AGGATTCAGGCCTGAGTCGTGCCCGGGACCATGTGGATCCCTTTCGTTCC
-TGTGTCACCTGGGGGTGAGGCAGACATTCCTAGTCCTGCTTGGGGCATCG
-TAAGATGGGCTGCTGTGGTGTCCCCTCCCCACCAGGGCTGCTCTGAGGGC
-CCTGGTCCTGATTTGGACATCATAAGATGGGCTGCTGTGGTGTCCCCTCT
-CCCCCAGGGCTGCTCTGAGGGCACCCCTGGGGAACATCATGCAAAGTCCT
-CCGTGCCCCTCTGGGGCACGGGGTGAGGTCCCTCCCTGTGGTGTCTCAGT
-GAGCAGGAGGCAGGCACAGCATGAATGTGGCCTCTGACAGCACAGCCATG
-CTGAAGACCCCTCAGCCTGGGCTCCCAGGGCCCCTGACCCTGACCTGGAC
-AAGGCTGGGCCTGCAGCACCCTGGAAGGCAGGGAGCCCCCCAGGTCAGTG
-CGTCTGAGCTCGGGGAGGAAAACACCAGCCGAGGGCTGGGCGGCTCGGCT
-CTGACCCAGACGCCTGGCATAGTCTTGGCAGGTGCCAGCCCCGTCTAGCC
-CCAGTGTCAACAGCAGACCCGTATCCTCTCCTCTCACCTCCTGGGCAAGG
-CCACTGTCCATGAAAAGCTTGCAAGAACTGGAGGAGCTGCATGAGCAGGA
-TGGGACCAGGTGATGGCGGCTCGCTGGTTTTCCAGGCACACACTAAGGGG
-CCCAGCCCATCAAGAATTCCGCTCCAGAACTCCTTGATATTTGGCTTAAA
-GTTCAGCTCTAAATATAGACCTGTTGGGGTCTGTCGCAAGTGTTTTCTTG
-AGGGGCCTGTGACGATGTGCATGGGGTCCTAAGGGGGGCAGGGTTCTGGC
-ACCCACCCTTCTCGTGGTCTGCAGCAGTGATGGAAGCAGGTGCAGGAGGG
-GAGACGGGGGCTAAGGAAACTCTGTGACAAGTGCTGCCTTCTCTCGCCTC
-CCCAAAGACCCTTCTCCAGGAGAGCCGCACCTCTGCCCCGCCCGCTCCCC
-TGGCTGGCCCAGGACCCACCTGCTGCCCCGCGCTTTCCCATGGCAAGTGT
-GGGTGTGGCCGCTGTTGGTAACAGAGGTGTGAGATCAAATGAATAGCCTC
-TGAGCCCCTGGTGGGAGTTGGGAGCCCTGTGGAAAACTGATTGAGAGCAC
-GGGCTCCTGCGGGAAGGCAGTGCTGGCCCCACGCCCTGCGATGGCCGTTC
-AGCTCTGACTGTCCTCCCGGCAGGAAGCGTCCTCCAGTGCTCCCTCTGCT
-GTGCTCTGTCACTGTGGCTGTGTGGCTGCAGCCTGTGCACTGTGAGCCCT
-CCTTGTGTGGGCTCCCGGGGACCACCAGAGAGCCCCTCCCAAGGAGTCAC
-CAGTCACAGCGGACCTCACATGGCTCTTCTGCTGTGGAGAAGGGTCCACA
-CTTGCCTCCTGTGGGCCAGCTGCCTTTGCTTGCTGGTGTCCTGGTGCCTG
-GCTGCTGTCACCCAGGAGTTGGGCTCTGGGCAGGGAGGAGGGCTTCCTGG
-AGGCAGTGGCAGAAGTCTGATGGGCTGAAGCCCTCAGGAAACCTTCTCAG
-GGGGTCCCGTTTAGGAAACAAATCCCTCTGCTGATGTAGCTGCTGGCTGA
-CTCTGTCAGCGCTGCCTGCTGTGGGAAGCCCTTATGAGCGTGTACATCCT
-CTCTCGGGGTCCTGCAGGCCACGAGGTGGGCAGCCTGCTCTCCTTGGGTC
-AGGACATGGAGACTTCACAGCCCGGCGGAACCCACGCCCATGCCCAGCTC
-TGCCTAAATGGATCGATCATCTAGAACCCCCGTCGCAGGGCTCGGAGTTG
-CGGGCAGGGTGGGAGACCCCTTCCAGAGGGGCCCCTGTAGATTAGCTCAG
-CTTACTTGATTCATTGATTTTGTCAAGGGTCCGTTTATCATACTGACAAC
-TGGAAAAACCTTAAATAAACATTTATCATCCTCCGAGGGGCCCGGCCAGG
-CTCCCAGGGAAGAGGAGGGGCAGCTGGGATTGCACCTATATGGGGCTTCC
-AGGGCTCACCCCGAGGGAGGAGGCCCAGAGCCAGCCCTGGGTGCTGAGCC
-CCTGGTTTCCCACTGTTGTGACGGCCCTGTCTGCATTCCCTGCAGAATAC
-CCCAGAGACTCAGACCTGGGGCTGATCTGAGGGGGGCTCGTCCCCAACCA
-CCTGGTCACAGGCAGAGATTGGTCTGCCTACTGCTCATTCATTCATGCAT
-CTTTCACCCCGAGAGCCCACCCCTCATCtcccaccaccacacccagcacg
-ggctcagctcagaccctgctgttgccttcctctggaagcttcctctctag
-acatcctcctgacttgtgtgatcccagcttccctcagatgcccaaatgcc
-gcctcgtcaggggagccctcctggaccaccttgactccacaggccccccg
-ctctgtgcccctcctgcctggctcactatgtctCCGTGGAGGCCCCCATG
-CCCTGGCTCTGTGCGATGGACAGTGGTTCCTGTGCCCTCCATGTGCCCCC
-ACAGACACGGGTCGGTCTCAGCTCTGTTCCTGGCTGCATGCCCAGTACCC
-TGACCAAGGACAGATTGCCCGGAGGCGCCCGGGCCAGAGGGAATAGGATG
-GAGGGAGGGAAGCAGGATGCAGGCTTCCCTGGCCGCATGCACTGGACACC
-CAGGAGGAGGATGGGGTCATGGGGAGACCTGCACCAGGGACAGGATGGTG
-GGAGAGGGTGAGGAGGCGTCCCAGGGATGAGTCCTGGGGCAGGGCTGGGA
-GGGGACAGATCACCAGGCACCACTGTCCTTGACTCTGTCCCCCACCCGGG
-GCCCAGACAGTGTTCTGGAAGGTTCCTACAGTGTCTCTGAGCATACCTCC
-ATGCCTGCCGTGGTGCAGGCCCGTCTGCCTCCCACGGCTCTCTCTCCGGG
-CTGGTGGTGCCCTCCCTGTCTGCCTGACCTGGGGTGCAGCCCTGGCATGC
-CCGGTCCTCGTCTGTTCAGCCTGTGGCCTCTTTTTGCTGGGAGGGCTTGT
-CAAGGCCCCTGGAATCCAACCGAGAACTTGACAGTGGAGGCTGTTTGATG
-CTCATTAGGTGATCACCGTCCACCTGCCCAGCTCTTGGCCTCCGTCCTGG
-CCAAGCGTGGACACTGTGCTTGTCCAGGCCACTGAATGGGAGCATCAAAG
-AAGATACGGAAATTCCCCCAAAGCGACAAATGAGGTACAAACCACAGGCT
-TCCTTTTTATCCTGCTCCCGCTTCCAGAACCCAGGTCCTCGGGCGGCCGC
-TCAGAAGAGCTCAGCTCCCGCCTGGGCTCAGGGAAGAGATGAGGCTGTGG
-AGAGCCTTTGAAGGATCGGGAGGAAGAGGCTGGAGACTTTCTGAAAGGGC
-TCCCGGCAAAAATGTCCCCAGGGAAATGCTCCCGGGTGTCTGGGCTTCGA
-CTTTGAAGGTGCAGAAGTTTGACGGGCTAGTTTAGGCCGTCATTTTTTTT
-CCATTAATAAAAATTAGGATAGGAAGGAAATTATCATAATCCAACATTGA
-CAATGAAGCTTTCCCATTTACTTCTCTTTCTGTAAGGGTTTTTTAAAAAT
-CAAAATGATTTACGATTAATACAGTGCATATTAAAACTTTTAACCTGGTA
-CCTTCATAAAGTAAAAAAATGTTCCCAACATATTACATTTTTAATCACAT
-GAGTTAATTACTCTTTAGGGAGGCTTTGGAAATTCTGGAAAGGAGGGTAT
-TATGGATTTCAAAGAATGAGACTGAAACTGTCATTTTAATGAGAATGCAA
-ATGAGATTGCTGAGGTTCAGCGGAGGTCACAGCAGCTTCATCATCAGGTT
-ATTACAGCCATTTATTGCCAGTAACAAATGAATATTAAAAGCTATTGTTT
-TAACAGATTAGACCTCCAAATTATTATTATTTCAAAATTTCCTGGGTGTC
-TGGAATATAATTTAAAAATTATGAAATGCTAAGATTCTCTGCAGACCTAT
-AATCCTCTCAAGAGCCTGCTGGTTTTTACAAAGATGTGGGTCTCTCTTTC
-CCCGAGTGTCAGAGCTTGCAGGAGTGTCTCTGCAGAGACAGTGGGACACT
-CATGGTCAGGTGCTTCCTCTCCCCATAGTGGTCCTGAGAGGGGGTCCTAC
-GAGCCTCTTCAAGCTGTGTCCTCGGGAGTCCCTGGGCGGGGGCCCAGGGT
-GGCAATGTAGCCCCTGAGGCTGGGGCTCTGAGATCTCCGATGGTGGAGAC
-AAGAGAAGGCTGTTCCAGTGGCTGTCATGGCAGCAGGAGGTCAGACGACT
-CCCACTGCAGGGCCACCCAGTCCTGGACACctgtccctgccccacccacc
-actgtctcttagcaaacagcccagggcctggcacacaggggctccgtgga
-tgccgagtgaagggagggaGGatggatgaatgaatgaaggaatgaatgga
-tACTGGCTGGTGGCATGGGGCTGGCGGTGGGCTCAGCGCTCTTCCTAAGC
-GGCACGACCGGCTTCCCAGGTGCCTGGGCATTCTCCTCCCTCCTCCCTTT
-CGCTCTCAGAGCAATCCCCTGTCTCACCAGCAGAGCAAGCGGAGCTCAGC
-CCTGGTGCTCAGACCGTGTCCTGCGAGGGATTTCCGGGGAGGGCGGCTGC
-TCCCTGATGGAGGACGTGGGCTCCCAGCTCATTCCTGTGGCTTTTCCTGA
-CTCTCACTCTGACAACGTAGGTCTCCAAGCGTGTCTGTGTCTTCAGAAGT
-GCGGATCTTTATGGGAAGAGGGAGAGAGGGAGACAAGGCAAAAACAACAA
-CAAAAATCCGCAAACCCACTGAACACTGAGAAGCTGCTGGAAGTGGCCTG
-GGGTGCACCCCCCACGCCACGGGCACCCCGTGGTCTGTGGCCTCCTGCAG
-CCAGGTGACCCCGTCATCAGCAAGGCCCAGGGAAGAGGGGACCTTGTCCG
-ATCCCCTGAGACAGGAGCCCAGGAAGCTGGTCCAGGAGACCTACCCGAGG
-GCATCGGGCAAGATACGGGGGTGGGGATGGGGGCGCTGTGGCCGCTGGCT
-GGAGGCTGCCAAGCCATCTCTCAAGGAACAGCTGCTTCAAGTACACAGAC
-CTGGGAGGGGCTGGGCCTGGCCTTGGGTGGTGCTTGTGAGGGGTGGAGGC
-CCTGCCACCTGCTCCCCTGCCCCAGCCAGGGCCCTCTTCTTGTTCTAGCT
-CCCTCCCTGGAGGTGTCCTGTCCTGTGGGCAGAGTCTTCTGATGACTTTG
-GGATTCATGGACCAGGCTAAGACCCTAAACGCTGAACCCCACTCCGGGAG
-GGGGATAGTAGGGATTGGTGGTCTCATCAAACTCCTGGGCCACTGATGGG
-AGGTGATGTCACCCGAGACCAATGGCACAGAGGGCATCACAGGCAGAGGA
-GAAGAATTTGTCCTGGGGAGGCTCCCAGGGGACTGTGAGAAGAGGCGGGT
-CCCTCACAGCAAGTGCTCACTGGCCCTGCATCCCCAGAGCCCCCTGTGGT
-CAGCCCCTCCTGCAGAGCAGCCCCTCTGGGGTTTGCCAAGCTCCGGGGAC
-CTAGTGAGGTTGTGGCTGCATCTCCATCCTGCGCACCACAGGGAGAAGCA
-ATTAAATGTAATAGATGCAGAGGCTCCCGGAATTACATTATTTAGGAGCT
-GCAGCTTACACACATATGCACGCGTGCTAAGCTGCACATAATTAATAGAT
-TTATTTAAATCAGCCTCTGCCATCTGTATTCATCTGGAAGAGAAGCTTCT
-TGGCAGGCCCATGTTGGAAGACCTTTGATTTTTGAAAGGAAAGTGGGGTG
-TCCCGAAGAGGCGCTGGGGCAGCAGGGGATTCGTGTCCCTGGGGGCTCTG
-GTCTGCAGGGCACACATCACACAGGTGTGGCGGGGCAGTGACTGCAGCAG
-ACAAGGCCAGGTGGTTCCTGCAGTCCGACCCGAGAGGGAGTGAGGCAGAC
-AGGGATGTGGGGTCCCCTCGAGGCTGTTCTCAGGGACACCCCCCTAGGCA
-GGGTCCCACCTGATCATGGCCTTGCTCAGGGCCCAACCTCCACAGCCCCT
-GAGGCCCCATGCTCACTTCCCTTGGGGGCACTGTCCAGCTCCGGGGATGC
-AGACCCAGGCACCCTGCCGTCCACAGTGGTGTCCTCATGCACTCACTGGG
-CACAGACCCGCCTGCTTGGTCCTGGGAGGAAAAGCAGATGGCACTCATGA
-GAGTTAACCCTCCCAAAGGAGAAGAGGGCTGCAGCCGGGCCTGGCGTGGT
-CACCAGGGGCACCCACCGTTGGGAGGCCCGCAGGGAGCGGGGAGTGCGCC
-CAGGTCTGGGGTTCAGGGCCGGCAGCAGTAACGGCATCAGAACTGTGCTA
-GCGTctgaattgtgtctccccaaaatccgtatgttgatgtcctaacccca
-gctcctcagaacatgactgtacttggagacaggttctttaaagaggtgat
-taaggttaaatggggtcgtaagggtggggccctgatccagtataactggt
-gtccttatagcgagagatgaggacaaggacaggcacagaggggccaccct
-gtgaggacacagagagaagacggcgtccacaggctgaggagggcggcgcc
-gggaggaagcagctctgcccacaccttgaccctggactcccggcctccag
-ggctgcgaggacatgagtttctgCCCTGAGCGATGCTGGGGACAGGGCTG
-ACAGGGATGCACCTGTGCCGTTCTGTTCTGGCCACCCTAGGACACCAGTC
-CCAGGTGGTGGTTAGATTAGAGGTGACCACGGCGGCTCCTTGCAGGAGGC
-TGAGTGGGAGCCTGGTCTCGCCCAAGCATTGCAGGCACTCCACTGAAAGC
-TGGTAGCTAAGGCTCCCTGAAGATGCCAGGCCACAGGCCACTGAGCGCCA
-CGGCCACTCGCAGGTGGGAGGGCACCTCCAGACTCTCGGCAGAGGTCCAG
-CCCCCACAGCACCCCTTCCTGACCTGCCCTTAGCAGGCGGTGATGGGCGA
-TCATTGTTCAGGGAGGGCTCTGGCCATGCCTAGAGCTCCCTCCCCGAGGT
-CAGCTCCCCTAGAATCCACTGGAAGGCAATGTCCCCTGAAAATGGGTCCC
-AGGACCCCTGTCCCTTGAGGTCACAATGAGGACACAACCGGAGGATGTGT
-CTAAGCCGGGGCAGGTGGGACCTTTCCCATGAGACAAGTTGGTGGAGACA
-GATTGGAGCCACGGAGCCCGCTCAGGCAGAGGCCCCAGTCTGAGGGGGGA
-GTGGTCTTGTTTCCCTCCCCTGTCTCCTTTAGATTCTGCACCTCACCAAG
-ATCAGCACAACCTCCAGGGAACAGGGAAGGTGATGGGGACTCCCAGATGG
-AGAGCAAGCCGGGCCTGTGCCAGTTCATTCTTATTCAGTGCCACCGTCGC
-AACATCCCAATCTAGTCATTATTGCGTCTTCGCTCTCCGTGGCTGCATTA
-TAACTGGAGCTTATGTTCAATTTGCTGGGAGCCGGCAAATCATCGTCTGC
-TTTTCCTCGGCACACACTCATTTGCTGTTGGCCCTAGGTGTTTCTTAAAG
-TCTAGCATTTTACACATAGACAAATTAAATCTTGTTTTTGAATGCGTCCC
-TCCCTGGAACTGACATAACGCTCTTTAATGTCTGTCGCACCTCTTGGGTT
-CTTGGGGCTCATAATCATTTGCATTTTCAAGCAGCAGATTCCTTACAGGG
-ACGTATCCTCAAAGCCAATAATGAAGTGATTAAGGAGAGTTGGGCTCCTG
-TGGGTGTTTGCCACGGTCTCTCTCCTGCCATCCATGTGAGCGTGGCCTCA
-GGAGCCGTGGTCTGTGGAGAGGTCTCTTCATTGCTGTGGAATATTCATTT
-GGCCAACCAGGAACACCTCCACAGTATCTTCCGGGCGTGGCCACTGGGAG
-ACTCGAATGCGGAGACATGGTCCAGGGGCTGTAGACCAGCGAGGTCCAGT
-CAGGTTCAAGGGCCAGGATGGGGAGGGGCGTGACACGAGTGTGTGCCACA
-GAGGGCTGGTGGTTCACGAGGTCAGGAGGATACCCTGGGTGCCCACGTGT
-GCCAGGTGCCTGGGCGAACGGCGGGCCCACCTCCTGGGCTTCACTTGCCT
-CCGCCAGCTGCCAGGGAGTGAGAGAATAGGAGCATGGCGGGAAATTCACA
-ATAAGCAGGTGCCAGGCCTGAACTGTGTCCCCCACATTCAAATGGCCTAG
-GCCCAGGGCGATGGCatttggaggtgacaaggtcatacaggggcccttat
-actggggtcaggcccttaggaaagaggcgtgagggaggtgccccctccct
-ctcactgctacatgagggacacagtgccgaggggcccaaggagggagccc
-ataccaggaacccagttgggctgcccttgaccttgTTGAGGCCGCCCGGG
-GCCATGGTGTTTTGTGGTGGCAGCTGGAGCTGACACCAGCGGTGGACGCT
-CCTCCTGGGCCACTGGGCTGCCCCGCAGCAGATTTTGGGACCCATGGCGG
-TCGGGGCTGCTTGGGAAGTGGGCCCCATGGTGGAGGGATGGCTCTGACTC
-TGAGCCCTCAGCCATCACTGCTCTGTGCTCTTTCTAGTCTGGAGGTGGCC
-TTGCTCTCGGGAGCAGGCACTGAGGTCCCAGCTAGAGCCCCTCCCTGAGA
-TGAGCCGGGTAACCTGACAACCCACACTGCGGGGTCCCCTGCCCCACAAC
-CCCTCCTCTGACCCTGGTGGTCCTGGAGCTCTGCTCTGAGAGGCGACATG
-GCTGATGGAGGAAGGTGGGCCCCTTCCCCCCTGGTCTCCACGTCCCCAAG
-GCTTCTCCCTGTCACTGCAGCCGTCACCGAGAGGGCTTTTCTGGGGCAGT
-CAAGCCTTGAAAGTGGGAGAATCAGCGAGACCTAGAGGGGATATGGGGTT
-TGGCTGAGCCTTGAGGAGGAGGAAGGAAGCCAGGAAGGGGCGTGTGGGAT
-GAGGGCACAGCCCGAGCCAGGCAGGAGGGGCGGCGGGGCCTGCCTTTGGG
-GAGCAGAGGGGACAAACCCAGAGGCGGAGCGCGGCGGGGATGGAGGAAGG
-GATGCAGGGGCAGCGCCACAGGCCCGGGTCTTCATCCTCATTACAACCAT
-CGCCAGAGATGCGGTCGCCGTGCACTGAATCTTTGCGGGGGCCGTGGTAG
-AGACGTTTCTATCTCAGCCTGGCACGGGAGGACCTGAGGCCAGAATGCAG
-GGGTCCAGACCCCCGTGGGTGTGAGGGTCTGGGCAGGAGTGACTGCAGGG
-TCTTCTTTCTATGCACACGCCGGCCATCCTCCATCAGGCAGCTGCCCTGG
-CCACCGATGCCTTCGCAGCATAGGATTTGGGGACCTCCACGTGCCGTCCC
-ATGGGAAAGCCGAGTCCTTGTAGGGGAGGAGCGTCACTGCTCTCAGCAGG
-GGACCGTTTCTCTAACGGGAGCCTGTCAGTTTCTGGGCGGGGGTGTGATG
-TGGCTGAGGCGTCTGTCCCTGTCGTGCGCCCAGGCTGGTGCCGTCAGGCT
-CCCGGCATTGGTGCACCCCGGCATTGGTGTGGCCACTGCACTGGTGTGGC
-CCTGGCATTCATATGGCCCCAGCAGGCCCCCCAGCATTTCCATTCTCGGC
-CTCCAATCCCTGGAGACCACACGTGGGATGCCAGGAGCACCAAGGGTGCA
-GGTAGGCCATCAGGGCCTGGGGCCAGCCCGGGCAAGGACAGTGCCAGCAG
-GCGCCCCCAGTGTGAACTAATGTGAGGTGCTTTCATGCTGCAGAAGGCAC
-CTGGGTCCTGACACCCACACTGGGCCATGAAAAACGTTGtattttattat
-tattattattattattatattattattattaattattTAtttatttattt
-ttgagatggagtttcgctcttgttgcccaggcgggagtgcagtggtgcta
-ttcggctcactgcatcctctgcctcccgggttcaagcaattctcccgcct
-cagcttcctgagtagctgggattacaggtgctcaacaccacgcctggata
-attttttgtgtttttagtagagatggggtttcaccgtgttggccagactg
-gtcttgaactcctgacctcaggtgatccacccacctcggcctcccaaagt
-tctgggattacaggtgtgagccaccacgcctggccTCACAGTTGTCTTTA
-AAGTGGCTTTTGTTTGGCTCCTGTGTGTGAGCAGTTCTCATCCTGTGCAG
-TCCTCTACACCTGGGGATGGAGCGGTTCCCTGTGTGGGTGACACTGGGAT
-TTGTCTGGGTCTGGCTGTGGCAGGCTCTGCTCTTCAAGCTGGGAGGTGGG
-TGGGGACTGTGGATGGGAGGTGATGCATCCCACCCTGGGAAGGCGTGTGT
-GATCATAAGGACAGAAAGGCCTCAGGGCCCAGGGAGCAGCTGGGCTGATG
-ACATCCCACATCTCGGATCCACTCTGCTCTGTGGCTCTGGGACCCTTTGC
-TGGTACCTCTATCACCAGCCCAAGGAAAGTCCTTTCTGCTTGAAGGACAG
-AACCCAGAGCCTCTCCCGTCCGCAGGGATAGCCGAGTCCCCTGGCTGCAA
-TGTTTCTGGGGCCCCTTTGCAGGTTTGTGAATTCCTCAGACTGCTCCGTA
-GATGACAAGGCTGTTCCAGGGTGTGCTGGGGCTGCTGGCCTCTGGGGAGG
-AAGGCACATGGTGTCCTCAGCAGGGGCTGTGTTTCCAGCCTCGTTTCGTG
-GATGAAAAATCACCCACACTTCTGGAGCCTGACCTCTCTGTGGAGGCCAC
-ACCTCTCCACGGTTTGAAATGTTTGCCACCCCTGTTTGTATCCGCTCCTA
-ACAGTGGCTTCTGGGTTGGCAGGGCTGGAATGCTTGGCTTTGTGATGATG
-ACGGTGGCCACGGCAACGCCTCAAGCCTTGGACCCCCCAACCCCACTGGA
-GATCCGCGATGCCCATTGGGGGTCATGGGCCACTGGCACAAACAATGCTC
-CCCCAGGTGTCGAAAAATCAATAAACCATTTCTGGTGCTGGGAGCAGACG
-TTGAGTCACTGACCTGGGCTTTGACCTTATTTAGAAGTTTGTGTTTCCGA
-GGCTCAGCACGGCTGCGTGGGGACCAGTCCGGGGCCACACACATTCTGCA
-CAGTGACGCGGGATCAGAGTCCTTTCTGTCCTGGGACTGGGACCGTGGGC
-GGTGGCTCGGCTCATGGCCACTGGTCACCCTGCCCGGCCTCAGGCTCCCT
-GAGTGCTCTCTGCCTCAGGGTCCCTTTCTTAGGGATTCATAGTAGGAACA
-GCCTGGCAGGCGGTGGTGTGGACTAGGTCCTGGCGCAGGGTAAGCACTGA
-TTTGCAGCCATCTCTGCTGCCCTCCTTATCCTAAGCCCCCTCATTTCCCC
-AGAGCCtttcttttttctttttttcttttttgagatggagtctcgctctg
-tcgcccaggttggagtgcagtggcgccatctcagctcactgcaagctctg
-cctcccgggttcacgccattctcctgcctcagcctcctgagtagctggga
-ctacaggcgcccgccactatgcccggctaatttttttgtatttttagtag
-agacggggtttcaccgcattagccaggatggtctcgatctcctgacctcg
-cgatctgcctgcctcggcctcccaaagtgctgggattacaggcgtgagcc
-accgcgcccggccCCGCGGAGCCTTTCTAGAAAATGGGAAGGGGGCACAG
-GAGGGTCACTGAACAGTAGTGTGGACCTTACAAGGCCTGTGACTCAGAGA
-GGCAGCCCCGTATCAGCAGCAAGCCCAGTCCTCCCCACCAGGGTGAGCAT
-CTAGGGAGGGAGGGGGGGAATTTAGCTCCTGTGGGGACCCCCGGGGCCCG
-GTCACAGCCTCCAAGGCCCTCGGGACTCCACTGACACTGCCAGGAAAAGC
-TGCCTTCCACCCCTCCTAGGCCATCATTGACTGGCAGATGGGACAGCCAG
-GCCCCCACGCCCAGTCTCTGGTTAATGGTGGGTCAGGGCGGGTCAGGCCT
-GAGCCCCTGACACGGCTTCTCATGAGAACTCCACCCCCACAGTGAGAGAG
-GACTCACTCGTGAACTTTGGAAAACTCCCCCAAACCACACGGGGCCCCAC
-TTGACAGCTCGGAGACCCTCTTTCCTCTCACAGCCCCGGGACCCCGGGAT
-GCCCGTCTGTGCGGAGGCCCTGGGGGGTGATGGCACTGGAGGCCCTGGCG
-GAGCTGCAGGCTGGTGCCTTGGCATCTCCCACACCAGAGCTGGGCTGGAC
-CGAGCCGCCCGCTTGCTCCTGCACAGCCGCAACTGACCTTCAAGAGCCTC
-GGCCCTTGACCTTCCACCATTTCTCTGACATTTAGCAAACAGTGCCGGCC
-GCCCCTCCTCAGGTACTTGGCCAGGTCTTTGCGTGGCCCCCAAGAGCCCT
-GTGGACAAGTGGCCCCCTCATCCCCTCCAAGAGCCCTGCAGACAAGTGGC
-CCCTCGTCCCGGGTGCTCTTCCTGTTTATTCTCCAGCGGGGACCACCGTG
-GGCGCTTATGTCGGTTTCCAGAGACTTCCATGACTGTACCCACCCCACAC
-TCCTCTAGAGCTGTCCTCCAGTGGGGACCACGGGGGCCGTTTCTCCCAGC
-TTCCGGTGGTCTGTCTGGCCTCACTCACCGGCAGTGTGGAGGCTGGGCCC
-TGAACTCCTCTGGGCACAGGTGGGGCTGGTGTTGGCCGCATATCTGAGTG
-TCTGAAGGCGGGTGGCGTGTGGGGCTCCTCTTGTCTCTATATGGGAAGAG
-GGGCCTGGCTCCCAGAGGGTGCCTGCATCTGCCATCTGAGAAGGGGCTCT
-TGCTGCTGCCGGGCAGGCATGGGTCCTGGAGCTCAGCGCTGCTGGGCTCT
-CTGCCCCTCGGACTCCTCTGCACCCCAACAGGCTGGGGCATGGCCTCCTC
-CCTCTGAGCAGCAATGGTCACGGTGCCTGTTCTGCTACCAGCGAGCTGAG
-CAGGGTATCGGGAGCTCGGGCTCCTGGGAGGACACCAGCTTCCTGACAAA
-GGTCAAGACCCCAAGGACCCACGCCAGGTGGCAGCGTCGACTCCACCCTA
-CTATAAGTAAAGGCCACTCCCTCACTGGCCTGCCTGGCCCAGCCCGCCTC
-CAGGTCCTACCAGGTTCCTCACTGGGCCCAGGTTTTCCTGGAGCCGGGCA
-TCCTTGTCCTTCCTGAAACCGACGATGCTGTAGAAGGAGCAGCTGTTCTC
-TGTACAAAGAGTGCATTGTACAGCCAAGGGTTCctcagcgtggggtcccc
-caaaagcagaccctaagccgaggcctggcgtgcacatgatgtgtgcagga
-agtgaGGACGTGGAGCGGGCGGGGAGTGCGGTCCACAAAGGCGGCTCATC
-CCCTGGTCACGCTGTGGGCAGCTGGACACATGACCACTGTGAAAACGGAG
-GAAGACAACCAATGAGAATGAGCAAAGGCCGTTACTCAGCGCCCGCAGCC
-TGAGGATGGCAGGAAGCTTGTGGCGGAACAGGGACGCTCCAGGTTGCGCG
-GATGGGAGGCCTAGGCCTGGGCAAGCCAGAGCAGCTACCTAAGGGGGCTT
-CAGGgcacgttgggttttctctggttggtcctgagttgggacgaagggac
-acaaaatgaaggaagctggtggttactgaccaagtgctgaccttttgggc
-ctgaaggctgcagaggctgtgggttggcttccaagcttgcagctgcagga
-cagtgggctggaattctgctgtcacatgtggtctggtcattgtccttctg
-gatggccagtcAGcccactgggagctctgaaaaaggtacacaccatgggc
-tggggctccgagtcttcttcccaagggtgaggggttggagcatctatggg
-cccagctctgcaggccttagttgagggccactcctcattggtcccaggga
-ctgcagcctccttctcagttggacagagtgggctccagcggttggagaaa
-gcttccaggcCTGGCACTTGTGTGCTGGTCCTTGGGAGCCACTGAGGGAA
-TGTCCTGGGGGTTCCATCAACTTTTGCAGCGAGGCTCAGCTGACTATAAC
-CAGCATGGAAGCAGGACAGCTACCCCATGGTGGGTGCCTTCGGTGCCACG
-CACAGTCTGAGACACCCGCCCCCCAGTGGCCCTGCAAAAAAGAGGAGGTG
-CAGAAGCTGCAGCTGGGAGAGTTGTAAGCTGGCATCTCCATCCATGAGGG
-GTTAGAAGGGAATTAAAATGCACGGCCCCACACCTGCTGTCTGTGCTCTG
-CACTCTGCCTTCTCATCCCATGGTAAGGTGGGGGCTGGGGAACCTCATGG
-CCGTGGTGGGGCTGAGAGGAGCTTCCCTGGAGGAGACTGGCCATGGTCAC
-GGCAGGCGGGAGCGGACTCCCTGCCATGTGAGGGCATGTGGGCTCCGGCT
-TGAGGCAGGCCCAGGGAACAGGCAAGAACCCCACTGTCACGGCCAAGTGC
-TGGGTGGGGTGTAGACCCTGAGAAGGCACAGTAGGCGGGGCACTCCTCAG
-GCGCTGGCTGCAGGGGATGGGAAGTGGCCCTCCTAGCGGTGGGTAGAGGA
-GTGGGAATGTAAATGTCCCAGATCCAGGCCCTCTGGCTTAATGGACAGCA
-AAGTCCTAGAAGTGGCTGTGGGGTGATGCTCCTGTTTTAGTTTTGCAAAT
-GCATGATGCTCTGTTCCCAGCAATGTGTACATAAATATTCAGTGCACCAG
-GGCCACCAATACCTAACTCTTTTCAACTCTGCTTAGCTCAACCTGCCTGG
-CTGGTGCCAGCCTTGGGCAGAATCTGATGTTTTCCCCCATCCATTGAAGG
-CTTTTAGGGCATCCACAGAGAAACTGTCATTCTCAGGTCTTAGGTTCTGG
-ACATCCACCTACCACGTTAGAGCTCTGCCTCACTGCTGAGAGGATTTCCC
-GGGACTTGCACCCACCGCAGCCCTGTGCTCAGCTCTCAGGAACACACATG
-CTGGCTTCAGCCATGGAGCTTGCCTTATGGGACTAGAATTGCCTTGGAGC
-AGTGGCTTGAGATGGCAGGTCTGGGTTTTATTCTCTCCTGATTGTTCCTT
-GCCTAGACCAAAACCAGggatgggtggacggatggatggactgatggtag
-acaaatggatggatggatgatagatagatagatgaattgataggtagatg
-agtagatggatgatggatgatgaatagatgtgcagctgggtggatgggtg
-gatggatggatggacagatggatgtatgatggatggattgtggctagatg
-gatgacggatagatgatgagctgatgatggatggatgatggatggatgga
-tggatgatggatgaatgataggtggatatggatagatagatgatggatgg
-atggatgatgaatggatgatgggtggacaatgaatggatggtgatgggtg
-gatggatggtggatggatgggtggatggtggatgatgggtggatggtagg
-tagatggatgatgggtggatggtaggtagatggatgatgggtgatgaatg
-tatgatgggtggatgaaagatggatggatgatggatagatggatggatgg
-acgatgggtggatgatgaatggatggtgatgggtggacggatggtggatg
-gatgggtggatggtgaatgatgggtagatggtaggtggatggatgatgaa
-tggtagatgggtgatgaatgattgattgatggagggatggatgttggatg
-ggtggatgacagatggatggatgatgtacagatggacaaatgggtgagtg
-gaAAGATGAAGGGGCCTATGAGGATGTTTGGCCTCTTTAGggaggtagca
-ggggctgcccgggtacacctagctttagcccaacctctccttctgctgcc
-ataggcaggttgctgagctgcctcagccttagtttcctcagcaatacgtt
-ggggggtggggtggaatctttgcctaagaaggttgtgagaactaaacggg
-gtgaggtgtgtaaagggtgtggcCTGTAGAGAACCCAGCCCCTGATCATG
-CTCTCCTCCTTTTGCCTGTGTCCTCCTTGGAAGCATTTTTCAAAGCCCTG
-GGTCCATGCAGCCCTTGTGGTTCTGCAGCTTTTTTGCCGTAGTTTGCTCA
-CCACTGTGGTTTCATGATTTACGCCTGGGGCCGTCAGTGGGTTGGGTTTG
-TCCTTTCTCCTTTGCTCCGCAGCACTGCTGCCTGCGGACTGGCCGCACTG
-GATTCCCCTTTCCCTGCGGAAGGGCACTTGCGTTGTCTCCAGGTTTCGCT
-GTTCCACTTGTGGAGGGGCCTTTCTCCACACGGGCAGGTGCTGCTTCGGG
-GCATTTTCTGAAGAATAGAACTTCCAGATTTCGGGTGGGAACATCTTGAA
-TTCGCTTTCATTTTCCTTAGGATAGTTGAACAGGAAATGATTGTTTTTAA
-ACAAAAACACACACACAAAAATGTGTTTGCTTCCCTGAGGGGCAGGCGGA
-GCCCTCACTTGGGGAGAGCATCCCGCTGTGTGCTGCCCGCCTGGCCTCCG
-GAAGGCTGCTGGGAGGGCCCTCGTGTGTGCCCATCTGTTTCCGAGGACTG
-CGGGTAGCAGGCTCCCGCCCCAGGCTGAGTGCTTTCCTCCCAGCCTTATT
-AGGAAATGCTTTAAAAGGACAATCCCCACTTTGAGTGAATGGGATCTATT
-AAGCCCAGCGAAAGTGTGAGTTAATGTGTGCAGAGAAAAGATAAGAATTT
-CAAAAAGGAGAGCAGGGTGATCGTGGGTGCGGGTCTGGAGATAAGAGTCC
-CTGCGGTTGCTGTGGGCGGGGATTGGTGGGCATGGCTGGCAGGGCTGGCC
-AGCGTGGGCAGGTGGCCTGAGGAGAGGGGGGACAGGCCTGCTCCTCCAAA
-GGTCCCCTCCCAGCCCCCTCCTCCTGTCCACATTCACTCAGAACTCACCA
-GCTGGTCACATATCCTCCAAGCTCCTCCGGGTGAGCTCGGGAACTAAGAG
-CAGCTCTTAGTTCTGGGTACCCTGGGCTGTGGAAGGGGTGGCTGGGGCTG
-CAGGAACAGGTGTGACACCGCTGTCTGCAGGGTGGCCTGGGGAATGAGGT
-CTCACAGGATGATGGTCAAGAAGGGCATCCCTGGCTGAGGCTCAGCCCAT
-GCAAGGTGCTGGGCAGGCCTGGGAACGGGCAGAGGTTTGGCTGCACTGGA
-GTGGCCTGCAGTCCTAGAGCTGGGAGGTGAGACCAGTGAAGAGCATGGAT
-CCACCGTGGGCAGCGTCTGTGCCAGCTGGGGAGCTTCAGTCCCATCTAGG
-GGACAGTGAGTTCACGACCTCTATTTTCTGGGTACGCCAAAGCAGGTCAC
-AAAATAAATGCGAGTAAAACAGCCAAACCCTGGGCCAGCAGGCAGTCTGT
-CTTCGCCCGTGTGACTGAGCCCACAGGGCCTGCCCAGACTGCGGCCTCAG
-CCATCCCAAGGCCCAGCTGGTCAGCGAGAGAAAGCAGCACCTTCCCCCTG
-CCCTGGCCTGCGCCTCCATCTTCTCTTTTTTCCTCTGGAAACTGGTGGCC
-TTTCCTCTTCTGGTTTTCTATCTCTTCTATCACCTGCTCTGCTCACGTCT
-CGTCTGCTCCAGAGAGAGGATGTGCAACTCACTCAGCCTGGGTATGAAGC
-ACTGAGGAGAGGTCAGAGCCAGCCCTGCTGGGGCATCTACCCTTGGTGCA
-GAATCAAAACTTGAGCTCAGATGAAGATTCTCTTCTGGGAGTGACTCCAG
-ACAAGGGCTGGCTGGGACATCTCTCGGAGATCCCCACAACAGTGTGTCCC
-AGAGGTCTCCTTGGGGACAAGATATGGCCTCTTCCACACATGCAGGAGGA
-AAAGGAGGAAAGAAAACATTGATTGAGACCAACCGTGTGCAGTGTTCTCT
-GCCTGCATTTGCTGTAATCCTTGCAGTGGGCGTCAGTGAGGACTCGGGGC
-ACAGGGAGACTAATGACTGGCCAGCGGTCTGGTCACAACGGTGGCTGGAG
-CTGTGACCAGTGGTCCTCCCCCCACGAAGCCCATTGCTTTTTGCCCCATG
-CTGCCCCATGAGCCTGGACTGCCAGCCCAGGCTCCCTTCTCCCCATTGCC
-CTTCTCTAGATCTCCTTCCACTGTCCAGCAGTGCTGAGCACAGCCTCTGG
-GGCTGGGGTGGGGGACGAGGGCAGATGAGGACAGAGCATCCTTTTGTGCT
-CACGGCCAGGGATGAGGGCAGACGAGGGCAGAGCATCCTCTTGTGCTCAC
-GGCCAGGGCTATCAGGCACCCTCCATCCTGAACCCACAGCCAGCTCTGAA
-GGAGGGGCAGGGCCGGGCTGTGAGCAGACTGGTTCAGGCGAACCACAGGA
-ACCCTCACTGGCCGTGGCCTCCTACACAGCCGCCTCCCCTCTCTGGTGCC
-TGGTTTTGGCCTCTGTGGGATGGGGACAGCTGCCTGGGGTGTGCCAAGTA
-CTGCAGGTGGCCGCAGTTACTCAGAAGAGGGCAATCTCCGGGGAGGACGA
-TGGATGCAGGGCCACGGGCCGTGGATACTCAGACTAAAGCTCTAGAGGAG
-TGTGAGGTGGGTGCAGTCATGGAAGTTTCTGGAAACTGAAAAACCTGGCC
-CGGCCCCGACATTTGAAATGACCCTTTGCTTCTCACCATGTGCTTGGCAT
-CGATTCAATAAACCGTGTGTTTGGGGTGTCTCCGGGGGGTCTGGGCGCCT
-TGCTGTTTTGTGACCTCTGGGATGGCTGGTCTGATAGTGGACTTGGAGGC
-TGCCAAGGACATGGGGAGTGTGGCCGCTACAATCAAGGCCCACGGGGTGC
-ATAGCATTCCTGTGAGCACCATGGTCCCTCCTCACCAGAGCAACCTCAGC
-GCTCCCGACCTTGGCTGTGTGCATGGTGCCCGTGGAAGCCACTGTGCGTT
-GCCATGGGCCCAGTCTGCTGTCGTTGCATTGCTGATCCTGGCTGACACGG
-GGGCCGGGCTCGTCAAGTGGTCATGGAAGTGCATGCTGACCTGACCCACG
-TGCATCCCGGGGGGTGGCCTCCCGCAGGCCTTGCTTGGGTTCCGGGTACT
-GGTGAGGCCCATGGCTGCCTTCCAGGCCTGTCCCCAGCATGCGGCTGGCG
-TGCCCTCTCACTGTTTCCCAGGCCCAGAAAGAGGCAGGAACTATGGCCTG
-TCATGCTCTAGTCCTTCTGGGGACTTCTTTGGGCCCTCATGGGCCATGCT
-GGATTTACCCCAATGTCCTGGCCGCCAGTGCCCCCGCACACATAGCCGCG
-GTGCCAGAGGCCTCCCTGAGGCTGTGCTCTTCCTGGCCGACATGCTCACG
-TGCAGATCACCCCTCTTTCTGGCTCAGCCTCACTCCTCTGCTCCCCACAC
-TCCCCTGGCAGGGCCCTCCCATGCTGCATCTGCCCTGCCTTCCGGTCCAC
-ACTGGATGGATTCTGCCTATTGGTCAAGGCCAACATCATGACCTCCTCCC
-TGCCTCGTGGTCTGTGATTGTTAGAGGCACAGGTATGATCATGCCCGCTG
-AAAACATGGCTGAGGCTGCCTTTATCTTTGCCTATACATATACCACTTCT
-TCCTTTTCCTCAGAGTACAAAGCATTACATTATATGAATGTAACACAATT
-TATCTACATTGTTTTTATGAGACAAGGGTATCTCAAATCGCAGAATATAC
-ATGACGCATATGGTAAAAAACAAATTACAATGACAAAGGAAAGTTCCAAA
-TGAGAAGCAGGATTTCACCTCCTTCTTCCTGGCATCCAGGCCTTTCCCCA
-GGGACAAAATGGTTAATAGCTTCTTTCTTACCCAGCCTGGCCCTGATCAC
-GAATACATTTTTAGTTTCAACATGCGTGATGTCAGCAGTGCACACTCAAA
-TTTTACTTCTTAATTCATCACCTCTGGTCAGGACCTCGTCACTTTCCATT
-TTGAACAGTGAAAAACACGGAGGGCCTACTTTCTCCATTAAAACACTGCC
-TTCCTCTTTTCATTCCTCTATTATGTATTTAATGGTCAGGGTTTGAGAAT
-TTACATTTCGCTTTCTACTATTAATTTGTGTACATGTTGGTTTTAAAATT
-TGAATGGAATTAAAGGACATTTATAGTACTATCCCATAAATGTTTATAGC
-AGAAAGAAGATTTCTGACTAGAACTATGGAGAAAGAGATATACCATTGTA
-AAGATTTTACCTGTTGGAGATTCTTTCAAGTATGAAGGCCTAATGTATCT
-TCATACCTATTCTTCACAGTTTTTCTACTTCTAGAGAGTCAAATGTGCTA
-AATTTTCCTTTATCCCATATCTCCAAGTACATTCCCTTGATTCCTTTCTC
-TGGTGGAGTGTAACCTAGATCAGCTTTTTCTATAAGGGATGGGACTAGTA
-AACTGAACTTCTGAATCCCCTCAAATGGTATGCATCGTTgactgtttagc
-tgggtataaaattctaggtcttctatcttttcccatcagaatctgaagtc
-actgctccactgtctttgagaagccagtgtttctaaagcaaaattcagta
-tcagctcatttctttccTCAGAACATTTTTTTGTTGTTGttgtttgcttt
-tttttttttttttttttttgagacaaagtctcgctctgttgccaggctgg
-agtgcagtagaacaatctcggctcactgcaacctctgcctcctgggttca
-agtgattctcctgcctcagcatctggagtacctgggattacaggcaccca
-ctaccacgcccagctaatttttgtatttttagtagagatggggtttcacc
-atgttggccaggatggtctcaatctcctgacctcgtgatctgcctgcctt
-ggcctcccaaagtgctgggattacaggcatgagccactgtgcctggccTG
-ttttttttttttttttttttttttttttttttGCTTTAAAAAAAAATTCT
-GCAAGGTTTTCTTGCATTGGTTGGATCTAGGGGTCTGTCCATTAGATCTA
-ATCAGAATATGGTAAGTCTCTACAATCTGAAGATGTGCATttatttattt
-gactatttcctcctctttgttgccttttattctcctttagaacttctaat
-aaatgaaagttggatgtttaatgtttaggatataccctctaggtctcaaa
-ttttccatactttttcacctttctatgtgctctccactcttataaacata
-tttgattttactttccacagcccagtcttcattcattcccattttaccat
-tcagtgtataccctagaccttaaaatggtccactcacattaatttccagg
-agtttttttccttgttctcttgtttgccttttctcccccttgggagcctg
-gttttctcttattgataccatattatttcaaattttttgagaatgatact
-atttAGAATAATCACAATTACGGTTATGATTATTTTCCCTGAATTATTTC
-TGTCCCCTAAGGTTCAAGTGTAGAGTATGCACAGCTGAGCCTGACTTCTC
-TTTCATGCCTCTAGCTTTCTGCAAACACCTAGTGATCTCTGCCTGCTAGG
-TCCTGTCTGTATAGGAATAAAGGTTGAAGTGTGTGTAGTGACCGGTCAGT
-GTGAATCACCTCTACCCTGTGTAGCCCAACAGGCTTCTCACTTGACCATG
-AGCACTTACTGTATTCCCTGGGAATGAGCAAGGTGTGTAGACAGATGGGC
-CACCCTGGAAGTGGGCATGCAGCCGATGGGCAAACAGGGTCCCCACATTT
-GCTGGTGCTGGCGGCTTGACCCTAGGGACAGGTGTTTTTGTGCATTTCAC
-TCTTGGGAGGAATTGTGCTACCTTTGGACCTGCTGACCCTGCTTCTCATG
-AGTGACCAAAGTCCTTAACTCTGCTCTGCCCTGGTTTTTTCTTAGACCTT
-GAGTTTTTCACTCCAGAAGCAggttcctggctttttttgtgtgccatggg
-cctgtttggaagtctggtgaagcctgtgccacccatctcaggacaaacta
-aaaatacctgatgaagaagatcaattatatccacatgcagttagcaaatg
-gtaaaaagcctatttttgatacagtaatgtgttttctttatgaacacatt
-acatacaaagtctagtagtgggacgaccataatttgaagtaatggtgaaa
-ataagcaatagactgagatagctacaagagctgtaatgtgatatgaaaat
-acctgtgctttttgttggtgacaaagtcatagttatggctgaagtattgt
-gtttactgcctacatgcctaactgaaggcagtgttaaatttcgtttagag
-acatgttaaatgctcactttctccatccaaagtcccacacctcAGGCACT
-GTGGGGACTGTCCCCGGGCAGAAGGCACCCCCTCTGTGGACAGCTTTCCT
-CTGGCCCTGGTCTGAGCTACACTAGCCTTAAAGCAGCAGTTTGCAGGGGT
-TTGGGGGAAGACACACCCACCCGGCACTGTGGAAGTGCAGCTCTTTGGCC
-AAGTGCCCTCCTGCCTGGACACCTGGCCATGCCCCTGGTTTGTTTCACCT
-TCTCGGGAGGATGTGGGCATCCTTCTGTTGGTTCCCACCACAGTTTTTTC
-TCTTCTGTCCAGAGACTGGGCCCAGGACCCCCTCACCCTTTCTGGCTTGC
-TTAGATTTTGATTAGCATTTTGATTCCCAACACAGTAATGGTTTCAGTAT
-TTGTAAAGGGTTTTTCCTGTCATGTCAATGAGAACCCTAGGTGTCTCCTC
-CTGAGATGTGTGTTGGTTTTATCTGGTTCAGGTGTTCACACTGCCATCTG
-GAGCTGACTTCCCAATGGCACCCAGGGCCTCTTTGGTCTGCACTGTTAAC
-TCACTCTTCGGAAGCCCTACACGAGGTTCTTGAGTTTGCAGCTGTGATTG
-CTTTTAAAAGTGTAAGCAATGCCACATGCATTTACTAACAGGAAGCCTTG
-GTGCCCGGAGAAGTGTGATGGTGGTCCCCCAACATTAGGTATGGAGGTCC
-TCCTGTCCCACCTGTTGAAAGTGAATTGGTGGGCCTGCCTCTATTTATGA
-ACTTTCTTTTTTTTCTCCTTTATCCTCTTTAATTCTCTTTACAGAAGGAT
-CTTCCAATTGTAGTTCTTAAATATTCCCTTGGTGAACGTAGCACACTTTT
-CTATTTTCAGAATTTCAAATGATATGCACCTGATTGGGGACACAGTGAGT
-GTCAAGGGCAGGCTCTCTCTCCTGATTGAGGTCCCTTTGGGGGCCAGGGG
-TGAGCACATGTGATAAGCACCCAGAAGACCCCCGAGTCCTCTGACTGGGG
-AGCCCTGTGCCAGGTGAGGGATGAAGGCCAACGACCTTGCTGGAGGTCAG
-GCTCTGCGAGCCAGGCAGGGTGGGTTCCTGAGGAGCTGCTACCTTAGATC
-TTTCCTAGAGAATGTCTAGGGGTGGAGAGCAGGAAACAGTGGGGTGCTTA
-TAGGAAATGGGGTTTTGAAGGGGATTGCCTGAGCAGAGAGAATGGCTAGT
-CCCTCCCAGGGCAGATCCACAGCTGCTTAGTTGCTTGGCTGGTGTGAGGC
-TGGGGCCACTCCTTTAGGTGAGAGGAGTTGGATGGGACATTCTTGTCTCT
-CCTGGATGTTTTCGGGGGCAGGTGGAGGGTGATGAGCCAGAGGTGAAGAA
-CTGCTTCGTGGATGGCCTCTCCCctggccggctgctgggcaccgcgagcc
-aggtcaggcagacagcatcaagcttagtggctggtcctgactctgccctt
-gactttttagttgatgttagaccagtcaccatgcctctataagcctcagt
-ttccccagatgcatactgattgccttgatctatctgacctccaagagccc
-ttcAGGGCCAGGCCTCTTTCCCTTCCTGGCACGTCAATACTGGTGCAAGG
-AGGAGACAGCCTTCATGTGAACCACATGCACCGCGGGCACCAGCACTGCC
-CCCACCCTGCACAGGTCAGGAGAGAGGTTCAGGGTCCCAGGAAGCTTAGG
-CCCCGATTCCTGCCCACTGCTCTTTTCTGGTCATTTGAAATTGAATTTCA
-AATTCAATTCAGGCAAAAATACCTTGAGGCCCACCACACTGGTCTTGGTA
-CTGGGCTCTGGGGCGAACCCCTGACGAGGACACCTGTGCCCCCTGCTCTG
-GGGAGCGGGGTTGGGGAGCAAAAGTGGCCTAAAACAAAGACCCTTTCTTC
-CTAGAGGCGGGAAGGGAGGCAGTGCAGGGAGGCATCCGTTTGTTTCCTCT
-GGAACGGAACGTGGGCATTAACAGTGCGCCCACGCTCTTGGGTGCAGGGC
-AGCTGGCTGGAGGGTGGTACACAGTAGGGGCAGGTGTGAGTGTGTTTGTG
-TGTGTTTCCAGGCAGATGTGCCGTTTTCAGAAGCCGCGGGACCAGCCTCC
-TCCGAGCCCTCCCAGCCGCTGGTCGGGCCCGGCTGGGGCGGTACCTGGGC
-CTGGGGTTTCCCTGTCTCTCCTGGGGCCTTGGGTGCGAGGGAGGCTGGGC
-GCCACTCGAGGCCCCGCGTCCGGTCTCCCGCGCCAGCAGGGCCGGCTCTG
-CAGTGAGGCCCCTGCGCACCTAGGTGGAGCCCGACCCGCAGTTTTCGGCT
-GGGCCGGCCCCACCTGACCCGCCGGCGCGCCAGGCGGGGGCGCTGCAGGG
-CGGGGTCCCCGGGGTCCCTCGCGGCCCAGTGCGCATCCGCGGCTCCGCGG
-CCGGGAGGAGCGCAGAcggcggcgggcgcgggccggagtccgaggctgcg
-cgggcccggccacctgggccggcagcgactgcgccgcgctccccctcccg
-ccgcctcccccgaggagccggcgccgagccgagcgggcgggcgcgcgcct
-ccaggccggagcagcggcgtcccgcgggcggcgaggcgcgcagcgtcgcc
-ggccccACCTGTAGGCGCGGCAGCCACCGGCACCGGCACCGACACCGGCA
-GCGGCGGCCCAGCGTGGGCAGCCCAGGGGCGCGGTGGGCCCGGACCTAGT
-CCCGGCCGCGGCGGCGGAGGCGCGGGCTGCTGGGAGCGCAGAGGCCGGCA
-CCGTCCGGTGGGGACCGGCCCGCCAGCCCCGGGCCGCGCAAGTTCGATcg
-ccgcgggctcggccgggccgcgcggaccccggcggcggcgatggtgcggc
-agccccgcgcccggcgcgcagccccggccccgAGCCTGGCCCGCCgcggc
-ggcggtggcggcggcggcgcggcggcCCCCTGAGCCCCGGGCCGGAGCGA
-GCGCGGGCGGCggaggaggcggcggcggcggaggaagaggaggaggagga
-AGGCGACGCCGAGCAGCGGGCGGTGGGGGCCGACAGGCGGAGGAgggggc
-cggggccgcgccggaccccccccccccccgcgccgcccggccgTTGCGCA
-ATccgcggcccgccgtccgggccctgctggcggtgcggctccgggggcgg
-cggcggggcTGATTCATggggccgcggcggccgccccccggcgccccgcA
-GCCAGCGATGGTGGCCGAGTGGTCGGAGCGGCGGCCGCCGCGGCCCGAGA
-CTTTCTGCTAAcctccccgcccccgcccgccccctccgcggcgcccccct
-ccccccgcccgctcccctcccccctgcccAGAAAGACACAAATCGCCTCC
-CGGAGTGGCGCCTCCAGTCGCGGCGGAGCGCGGCGTTGGCGGCGGATGGA
-GGGCGCGAGCGGGCGGCCGCGGAGGCTGCACCCGGCGGGGCGCTGATGCG
-GCGCCTGGACCTTCGCTGCGCGACTTCGGGGGCGTCGGCCGAGTTGGGAC
-TCCGCGATGCAGCTCCTGAAGGCGCTCTGGGCACTGGCAGGGGCCGCGCT
-CTGCTGCTTCCTCGTCCTAGTGATCCACGCGCAGTTCCTCAAAGAAGGTA
-ATTGTCCCCGGGCGCGCGGACCGGTCCTCCGCGCTCTGCCCGGCTCGCGG
-CGGCTCCGGCGCCCGACCCGGCTTCCAGCACGTTCCGCTGCCGCCGCGCT
-CGGCTGAGGCTCGTGGAGCGCCACTGCGGGCCCGGAGCGGCCGGCGGCGC
-GACCCTACCAGGAGCCCGACCCCCCGCGGATCTCGCTGCCCCGCGCCCAT
-CGGGGCTCACCGGCAGGGCGCGGGGTCGGGGCGCGCTGCGTTCTCGGTGC
-CTCTGGCGCCGCCCCGGATCCCCAGCCCAAGCCGAGGCTGCCGTTCCCAT
-CCCCTGCCCCACTGGGCTCGGTGGCAgcggcgcccgcccgcacgccgccg
-ggcccTCGGTAGATGGCACCAGCGCTCCACGGTGGCCGGCCGGGCTGGGG
-CGGGAGCGGAGCTGGGACCCGCCAGGGTGGGCGCCGGGCTGGGACCCGCG
-GACGTCGGGAAACCGGCCTGCGCACCTGTTCCCCAGGGCCCAAGCCGCCT
-TCCAGAGACCCATAGGTTTGGGAAGCAGGGGCTTGGTCACCGGGGTGCGC
-AGGTCCCCGCGCCAAGTTCTGCCCCTGCTCTCTTGGTCTTTGCTGGACTG
-CAGGGCAGTCTGGGACTATTGAGGCGCCCAGGATAACGGTTGGACCCTCG
-TGGCTGGAGAGGCCCTTTGTACTGGGAAGCATCTTACTGGGGGTTGGGGG
-CAGGGCCACACCTCCCCTGATGGGCGGTCGGTCGGCTCCAGGCACCCCAG
-ACACACTCCTGGAAACTTCCTGGTTTCAGGGCCAGGCTCCCTTTGCAGGG
-CTCCCGGTGCACCCCGGGATCAGCCTGGCCTGTCATATCAGACTGGGGGC
-AACTGAGGCGTTGGCCTCCCCCCGGGCACCCCTGCTCATGGTTACTAGTG
-CTCTGGCACACAGGCTGGGCCAGCTCCGCCTGGTGCTCCCCTTGGTCCGC
-TGGGAAGGCTGAGCACCGGAGGGCGCCTGTGTGGCTGGTAAGGCGCTGGG
-TTCTCATTAGTTCTGGGTTCCTGCAGAGGAAGGGCTTGCAACATTCAGCT
-GCTTTCCTGACTAATTAATGAGCCGCCGGAGGCCTGGGGAAGCAGGTAGG
-TGCAGGAGCCCGGCCCGAGACCCTGTGACCTCCACGGGCCTGGTGTCCAC
-TTCCCTCCCTTGCTTTTGGATGTGGGCACCTAGTACAGAGGAGGGCCAGG
-TCTGAAGGGAGAGTAGGCTACCCCAGGACTCTGCTGCGGGCTTGGCCTGC
-CAGCCCGGGCTTGCGGGGACCCTTCCCCAGGTGGGAGGCCCAACTTCTTC
-CTGCTGCCTTGCTGACCCACTTCAGGAGTGGGTGGTTCTGCCATAGGGCA
-GTAGCACTTGGGGCTGGGGAGGCCATCCTTCCTGCTGAGGAGTCATTGGG
-TCCAGGCAAGCCCGCGAGGGCTGTCCTCTGCTGGTGTCGCGTGTCAGGAC
-TGTGGGAGCCACCCCTGGTGCATTCCAGGTACCTGGCAAAGGGGTCCCTG
-CTCTGCTGGGCCTGTTTGTGTTCGCGCTGCAAGTTCTCTGCCTCTCTGGC
-TGATCTCGAAGTCTCTGGGGGATTGGCTTGCGGAAAGGGCGTGTATGTGA
-AAATTTCAGTGTTTCTCTGAGGTCCAGGTGCCCAGCTGCATCCTGACACT
-CTGTGATGAAGTGAAGTTCCACTGACTTTGAAGCTGTGAGTTAGTAACGG
-GAGAAGCTCCTGGCCATGTGGCCGGCCTGTGACAAGGGCTTCCTTTCTGC
-CTCGCCCTGCGGCGCTGCCCCAGTGCAGGTGCCTCCGGGGGCTCTGCTGT
-CCCCCTGAGGCTCCAGGTCTAAAGGACTCTGTTTTTTGGCCAAGAAGAAA
-GAGTTTCTGTCTCCCAGATGGGAGGGTCTAGGTGTGGAGCAGGCCTCGCT
-TAGTGGAGTACTTTTTGTGGATTTAGCCCTTCACAGAGATCTCCATGTTT
-ACCTTGAAGCAGACACACGTGTGTCGGTGTTGTGGAAGACGGCGCAGTCA
-TAGGAAGGTGGGATGAGGATGGGGTCAGCTGTACGCTGAGGGCACAGGTA
-CCTTTGGAGGAGCGATTGCGGGTCCCAGTGTTTGCGCAGCCCTCCAGGAC
-TCCTGAAGTCCTGTCTCCCTGTCCGGAAGCGGTGGCCTTCACCACCCTGG
-GTTGAGCCCTGCTGCCTGTCTGTCTGGAAGGTCAGGACTTGGGCAGCCTC
-CCTGTCCTTGCTGAGACGGCCTTTTGGCCCCTTGGCATCAGGAGCCCCAG
-GGGAGGCCTGGGGGACCAGCAGTGAGAGGTGCAGGGAGGGGGGTGGCCGA
-CTCTGGTTCCTGGCTGATGGGCTCGGCCTGGGGCCACTCTCCTCCCAGCA
-GCCGCTGTCCAGCAGGAGGGAGGGAACAAGGCAGGCGGGTGGACAATTGT
-GACTTGTTGTCTGGGCCTGAGTGGGAAAGAGCTGTTTAAATAGCCATTTT
-CATGAATCTGTTTTCTTCAGGGGTGAAGAATGGGGGACCCAGGGAGCCGT
-TTTTCCACACTTCTCCTTTTGTGTGGAGATAGAGGCCACCCCGTGGCTAA
-TCCGTCCCCCCCTGGCCACTCTGGTCTTCCAGTGTTTGTGGAGATGAATA
-GGGCTGTGAACCGAGAGAGAGGCAAATTGCGGTCCATAATTGCAGCCTCG
-GTATGTCCCAGCTTTGTGAGAACAGGTCCTGCCCACCGCACCAGGCCTGG
-CTGGGCAGCCACAGGCCCAGGAAGAAAGCAGGGCCGCAGCGTGGGGTCCG
-GCACTGGGGCCTGGGCAGCTGCTCTTCTTGCCTTGTCATCCTTAGGACAC
-GCTGACCCTCCTCTGGGAGGGGAGAGCCGTCCTTTCTTCTGAACTGCCTG
-GTGTGTGCACGTGCTGTGTCTGCATGGGGTGTAGTTAAAGTGGGGGACGA
-GGGCGGGAATCCCAGGACCCTGATGGAAGAGCCGGCCGCTTCCTTAGGGT
-GCAGACGACGTGTGTCACGGAGACGCGAGAGGGAAGCCAGCACTTTATCT
-CCATCATCATGTTTGGCCTCCAAATACGGAGTTAAGGAAACGGCGAGAAG
-TATAAAAATATTTTCCACCTCCCTCTTCCAAAGACTTTACAATATTTTTC
-TGGAAGTCTTGAGTCACTTGGACTCCAGCACTCCAGCACAGATGAGCAGG
-CTTTGGTGTGGAAGCTTAATGTAAACAGAAGGATAGGAAAATACTTCAAA
-GAGGAAGGAATGCGGCAAGCCTGGGCCACCCAGGCAGGCCACAGCGGCAG
-AGAGGTTTCTGGGCTTTGGCACCCAAAGGGACATGAGAAAGCCGGGAAAT
-CATTCGGCCCGATCCTTTCTGAATGGGAGGGAGAACCCAGTGCCTCTTTC
-CTTTAAATGTGGGTTTGAGGTTCAACTCTATCTCGGTAAATCCTTTTGGT
-GGCAGGGGAGTGCATTCGACGGCTTGAACGTGCTGTGCAAAAGCCTCTTT
-TGCAGGTTAATATTGAGAACTTTGCGTCCAGCGGCCGCGGCACGGTGTAC
-CCGGGCCTCGATTCCAGAAGCGCTTTCAGAACCGCTGTGGCGTGCCTGTC
-TTTGAGCAGCTGCTCGGAGGGCAGACTGTTGATTGAGTCAACGGATTCAA
-CTTCCATTGATTTAGTTAGCTGGCTCTTTCGGAAATGAGGCGTCCTCCTG
-CAAACCCATGTGGCCCGTAACAAGGGGCATGCTCAGCTCCGTGAAGGCAA
-TTGATGGTGTATGAATGGTTATGGCTCCGCGCAGTCATCATTAATTGATG
-CTGTCTTTACAAGATTAGCAGCCAATGCAGAGTGTTCGTCTATCTGTTAG
-ATGGATCAGTTTATTTTTTAAGAAATGGATAGAGAACTTCTTAGGAGACA
-CAGCACAGTTCCCGGCCCTAAGACTCCATCAAAAATATTTGCTGAATGCG
-TACAGCCATTCTGTCCCAGAGGCATAGAGCTAGGGCTGTGGATGGTCCAT
-GATGGGTTGGGTGAGGGCTTGGTAGATGCCCTTGAGGTTTCCCAGAGCAG
-CAAGGCTGTTCTTGGTGAGGGCTCGAGGCTGCACCGGGCTCCATTCTGAG
-TGTCTAACGGTGGAGGAGGAACTCACTGCACGCGGTGTGTGTGGAAGGAG
-GAGGGAGTTCGGCAGCTCTGTGTTCTCAATGCTTACGGCCAGCTGTGCCT
-GCACCCCTGCACCCAGTCTTGGCATGGGGCTGCCCCGGCCGCCAGGCTCC
-GAGCTTGGAGCTGGCTGCTCATTTCTCCCTGAGTCTCAGACTGCGTGTGG
-AGGGGTGCTGGGCTTTGTCTAGGGGCCCCAGGGGCTTCCCTAGCCCACTT
-CCTGGGTGCATTGTTTTTATGGCCCTGATGAGGTGTGCAGGCAGACAGAG
-CGCAGGGGCATCGCAGTGCCAGCCCCACATGGCAGGTGTCCCTCAGCCTG
-CCTCTCCCTGACCCTCCAGCAGACGCTGTTTGCAAGGCCAGGTAGGTGTG
-AATGGCTGCTGGGAGGGGTGGAAATGAAAAGGCGTTAAAAATAACCAACT
-CTTTTATCATCATTTACTATCATTTCTTGTGTGACACAGAATCTAAATAA
-AACCCACACTCACCGTAATGGGATTCTCATCTGCTGTGTCTCTGACAACT
-GTAAAAGTTAGAATATAAAAGGACTGGAAATGGAGGTGACTTCCAGACAC
-AAGGTGGCTCATCACAGCCTTGCTGGGCACAGGAGTCCCAGCCTCCCAGG
-CCTCCCTGCAAGGGCCGAGCCAGTCCCTGCCGAGGGCCAGGCTGGCAGTG
-GACGGACGGGGCCAGCTGGGGGTCCCTCCCACTGCACACTCGGGAGGATT
-GGATTGCGGCTGATCTTGCCGCCGGCATCTGTGGAAACTCATCAGTCTCC
-CATGTTGCTGCCGTGCTGAGCACAGTGCGAGAAAGCCGTGCGGAGAATGG
-TTTTATTCCCCACTCGGTGGTCTGGAGGTGGGTGGTTTTTGCCCGTCTCT
-GGGCGCGCGGAGCTGTAGGAGAGGGGCCACTGGCGAGGCCGTGTCCGTGC
-TCAGTAGAGTGCTGGCTGCAGACACAGCCCAAGAGCCCCTGGGCCTGGAG
-AAGGCCGGGTTCGGGGGCAACCTTCTTGGAAGGGTTCACTGCTGACATGT
-GCTGTGTCTCTGACAACTGTAAAAGTTAGAATATAAAAGGACTGGAAATG
-GAGGTGACTTCCAGACACAAGGTGGCTCATCACAGCCTTGCTGGGCACAG
-GAGTCCCAGCCTCCCAGGCCTCCCTGCAAGGGCCGAGCCAGTCCCTGCCG
-AGGGCCAGGCTGGCAGTGGACGGACGGGGCCAGCTGGGGGTCCCTCCCAC
-TGCACACTCGGGAGGATTGGATTGCGGCTGATCTTGCCGCCGGCATCTGT
-GGAAACTCATCAGTCTCCCATGTTGCTGCCGTGCTGAGCACAGTGCGAGA
-AAGCCGTGCGGAGAATGGTTTTATTCCCCACTCGGTGGTCTGGAGGTGGG
-TGGTTTTTGCCCGTCTCTGGGCGCGCGGAGCTGTAGGAGAGGGGCCACTG
-GCGAGGCCGTGTCCGTGCTCAGTAGAGTGCTGGCTGCAGACACAGCCCAA
-GAGCCCCTGGGCCTGGAGAAGGCCGGGTTCGGGGGCAACCTTCTTGGAAG
-GGTTCACTGCTGACATGTTCATGTGTGTGCATATGTGTGTGTGTACACGT
-GCCTGCTTATGCATAACTAAATGCTCATAGGTGTTCATATCATTGTGTGT
-GATCTTCTTAAACATAAACTACAGGATCATGCATTATAAACCTCATTTAA
-AATACAGCCCCTTCGTTAGGGAGCAGCGCACGCAGGCAGTGGTGTTCCTG
-TGTTCCTGGAGAGGGGAGGGAGGCATCCTCACCTTATTTACGCAGAGACA
-CATAGTTTTGTGGCTGCACTGCGATCTGAGCAGACAGAAAACATGGAGCG
-AAGCACGCAGCTGTGGGTCTGCGTGGAACATGGGACTGTTCGCTCACACA
-CGCACCCAGTGAGTGGACAGGGCTCCTTTGAGACCAACCATGGGACCCGG
-TAGCCTTTGTACTGTGGGAGCCCTGACCTGCCTGTCGGGGCAGGCGGCCC
-TTTCCTCGTTCTCCTTTTACCTGGGCTCTGTGTGTGAGCCCACCTCTCCC
-AGAGACACGCACTGCGGTGCCCCCCAacagagacacaccacacactacac
-gatgcacacacccacaccacacaaaatacacaacgcataccatacacccc
-acatactgcacacactacacaccatatgctgcacaccacatacacacccc
-acacgcaaaatacaccacataccacacacaaaatacaccacacacaaaat
-acaccacgtaccacacacaaaatacaccacataccacacacaaaatacac
-cacacacaaaatacaccacataccacacacaaaatacaccacataccaca
-cacaaaatacaccacacacaaaatacaccacacaccacacacaaaataca
-ctacacacaaaatacaccacacacaAAATACACCACATACCACACACAAA
-ATACACCACACACAAAATACGCcacataccacacacaaaatacaccacac
-gccacacacaaaatacaccacacaccacacacaaaatataccacacacac
-cacacacaaaatacaccacacacgaaatacaccacacaccacacacaaaa
-tacaccacacactacactcaaaatacaccacacacaaaatacagtacaca
-ccacacacaaaaaaatacaccacatacaccatacaaactagataccacac
-accactcacaaaaaacatcacactgctcataccacacagcacacaccgca
-gacacacaatacaccacacagataccacacacaACAAAATACACcacaca
-cactagacatcacacacacactatgcattatgcacacacaccacacacac
-cacaaacatacacaacgtatacacagacacagaatataccacacacaaca
-cacacacataacatacaccacatacgcataccaaatacgcataccacaca
-cacaccacacatacCCTGTGAAGGCcacgcacacacaaagcgcagaaaca
-cacccccacacaaacacatgccaagacacacacacacaaacatacaccac
-atgcatgttatacacacacagccaaacatcataaacacacgttacaccca
-tcacaccgcacacacacgataccccaaacaccacacaGTCTGCAGCTCAC
-CCCGTGGGCCCAGCCTGGCGTTCTGGAGGAAGGGAGAGGAGGGTGGACCC
-CAGCTTCGGCCTCTGCCCCTGCAGCCTTGTCCCCATCCTCACCCGGACCC
-TGACCCTGGCCCTCGCTGGCTGGGCCTCTGCAGAGGCTTCCTGAGGAGGA
-AGGTACTGCCCTGACCTTCACAGCTGGGGCAAGTGTGGCCCAGTGAGGTC
-AAGGGAGGGTGCAGATCCCAGAGGATAGCAGGACAGGTGCAGCCACGTGG
-CTCTCTTCTCTCTATGACCCCAGGCAGAGGTGGCGTGGGTGTTGCCTGGG
-CATTGCACACGCACCTCCTGCTGCAGGCTGCATCACCCGTCTTGCAGGTC
-TTGTGCTCCTCCCAAGGGTCACACCCACCTATGCAAATAACCTTTGGGAC
-GAGGAAGCCCCACCTGCAGCATGATACCAGGCTAGTGGCTGGGCTTCTGG
-GACCCTCGGTCTCCTCTTTGCAGGAAGGGAATGATAAAAGGAGTGGAAGC
-CCGAGGACTTCCACGGGGGTCCCCTGACAGATGGCCCCAGCAGTGACCTT
-GTGCAAAACCCAGGAGCCACCCCTGCCAAGTGCTGGGCGTGTCTGTGGAG
-CAGATGAGGCCACAGGCACTGGCCACAGGACTGCGCTGTCTGGAGAGGGA
-TTCGCACACATTTGCAGGGGTGCAGGGCTGGTGTTCTCAGGATTTTGCCT
-GGCTTCTCTGGATCCGGAGGTCCTGGGAAGGTGGCTTGGACCCTGGTGGG
-CGGAGTCTTTGAAGTGCAGTCTGGAATCTTCCATGCACAGTTGGGCGACC
-TGGACAGTGCCCACTGTGTTCTCTAGAGAGTTCCTCAAGGATGCAGCCCC
-TTTGTCCAGACACTGTTGCAGGAGGCAGGGAGGGAGGCCTGCCCCATGTC
-CCCTGGATGGCAGGATGGGCTCCCACCTTGTGTCTGGCTGGGCTGTAGTG
-TGCGGGGCAGCCAAAAGGCACCCTCCGGGTAATCAAGGCCTACCCCACAT
-GGGGACTCTGGTGAGAACCGGGCCTCCACCGACCCCCTGTCCAGGGTGCA
-GGAGCCAGGCCCGTGCTGTCAGCTGTGTCTGTTTGTCTGTGGTTTCCCTG
-TGGCTTCATGGCACATGCAGGTCTCTCTTCATGCTTTGGGTGTGGAAGCC
-GTCGTCAGCTGAGAGTGTTCTGTGGGTGGGTAGCTCTCCTTCCTCCTGAA
-TTTGGGGTGACCTTCTGTGTGGAGGCCCATGACGGTTTCCCATGCATTCC
-GGGGCTCTGGGATGCTGTGGGCACGAGTTCTGGAGGGGTCTGCACACCTA
-GGTTCATCTCACGGGCCTCGGGGTGGGCAGAGGGTCCTGGACTGCAGGGA
-CTTGCCCTTCTTTGCAGCTTTGTGCTTTGGTGGTAAAGAAAGGGCTGTGT
-CCTCAGCCACACTGGGAGCTGCTGCCCTTGCGTGGAACAGGAGCAGCTGT
-TTGTGGGCAGTCCAGGTGTGGGCTGCAGGCGGGTCGGGGTGGGCTGCAGG
-CAGGCATTTAAGGAAGTCACAGCTCCAGGCACCAAGGAGGCAGTGGCTGC
-TGGCCCTGTCCTTTGCTGCATTTCTGTGGACTCCTAGCCCAGGGAATGGA
-GCCCTGGAGGGTCCCAGGGTAGCCGGTGTCACCTGAAGTGTCCCAGGGAC
-ACCTGGTCCTCTGGCTGATGGGGCCGCCCTGTGGGGTAGGCCAGGCCCTG
-GCTCTCTGGCCCTCAGGGCAGGGTGCGGGTTCCCCACTTCCCCGGCCCTC
-ACACACACCCTTCCAGCCACCCGCGTGAGCATGCTCCAAACACGGCCTTC
-TGCCCTTGCCTTTTCTTCTCCTTTTGCGTTTTAAAAATCAAATCAGCGGT
-TCGGAAGGCCTGGAGCTTGGAGGACTCACGCAGAGGCGGCCTTCTGCCTG
-CCCTCAGGGGCTCCTGAACTTCCCAGAAGCAGCCCTCCCTCCCAGGCTGA
-ACTTTCTGTCTCAGTCCCCGCACTTTCCCAGCTAGGCGGGCTCCTTGTTC
-CTGCCCATTTTACTCCAGAAGGGAAGCAGGCAGGCCCGGGTTATCCTGCA
-GGTGCCAGGAGCCCCCTTGGCCAAGCTCCATCTGTGCATAATGGGGGCTC
-CAGTGGTTTGGGGGGTTGGTCCATGGGAGAACTGGATGTTCACCAGGGGT
-CAGCATTGGCCTTGAAGTGTGGAGAAGGGTCATCTTGGCAGAGGTGGCAA
-GGTGGTGAGCCCCTGGGGCTGAGCACAGGTGCGTCTGGTGAGAGGGGCCT
-GGCCATGACCGCAGTGACTGCTCTTCACTGTCACCTCCTTTGCTCCTCAG
-GCCACCTGCGCAGAGGGTGTGATCCTTGCATGACTTTGCCATTGAGGAAA
-TGCAAGGGCAGAAAGTGCAGTCTCGGCGGCCGCCCGAGAACCAGGTGCCC
-TCTCTCCCGACTTTGCTCCCTGGATGGGGCTGCACTGCCCGTCCTGAAAG
-GCTCTGCTGAGGCATTGGGGGAAGGAAGGCATTGCTCGCAGTGGGAGGGG
-TCCTGCAGAGGGTCCCAGGCAGGGTGGGTGCTACCTTCAAAGTTGACAGT
-GGGACTCCTCACCCCGTCCCCTGTGTTGGACTCGAAGTGGGTCCCCATGG
-ATTGAGTCTGGTGGCTGCTGGGTATCGGGGCTGGTTTCTGGGCTATGGTC
-TCTTGCTGTGACAACGGGGACCTGCGGGGATGGGGGCACGATTCGGTGCC
-ACCTCCCTGCCTCTGTGGCCTCCCGGTTGGGGCAGGGCAGGGCCTGGAGG
-TTCTAGAAGGCCCTTGGTTCAGGTGAGCACAGTGCCTTCGGGGATGCTCC
-TGGCAGAAGACTCAGGAATCTGTGGGAAGACCCGTCCCCGAGACCATTCC
-AACTGGACCGCATGGAGCCAACCTGGCCCCCCGTGATCTTCCCTGGGTAT
-ATTTAGAAGAGGTCATGGAGCCTTTACAATACACACTCTTCAAAGTCAGC
-CTCTGCCTCAGAGAAGGTGGATTTTATTAGCCAATTACCTTCCTTCTCCT
-CCGATTACAGAAGCAGCCAAGCAGGCCTTCTGATTCGCTTCACCGATAGA
-AGAATGCAGACCTTGCTTATAAATAACTGTGCTTTGCAGAACCAGAAAAT
-CCATCTTCAGACCCTCCTGTCCCCAGGGAATGCCTGCACAGTGACAACTC
-CCTGCTCCTGCCCGCTGGTTGCCTTGGGGACAACCTTGATAGACATGCTG
-GCCTCAGTTTGGCATGCACGTATTGAGTACCTGCTGTATGCCGGACATGG
-GCTGCTTGCTGGCGGAAGGTGGCCAGGGGGTGACTGGCTGGGGGTTTGGT
-AGGTCTCATGGGATCATTTATGTGAAAAGGCAGAGTGAGGACTTGAGTCT
-CTGCACCTGTGAGAAATGTACACCTGTGGGGTCAGTTGGAGGTCCCCAAA
-GACAGAGCCACCTGGAAACCAGGGTCGGTTGGAGGTCCCCAAAGACAGAG
-CCACCTGGAAACCCAGGGTCGGTTGGAGGTCCCCAAAGAGCCACCTGGAA
-ACCCAGGGTTGGTTGGAGGTCCCCAAAGACAGAGCCACCTGGAAACCCAG
-GGTCGGTTGGAGGTCCCCAAAGACAGAGCCACCTGGAAACCCAGGGTGCT
-CTctcatttggaaaaagggcctttgcagatgtagttaaggtcaggttctc
-aagatgatggtgccttaggttaggatgcacccaaactccaaaggcaagtc
-cttagaagagaagagaagcaaacagagagggggcctcgtgaagatagcgc
-agggtctggagtgatgtggccacacgctgaggagcacccgcagccatcag
-gagctggaagaggcaggaaggatcctccctggagcttttagaggaagcgc
-aggcccaagacaccttgatttccaacttctgccctccagaactgtgagag
-cagaaactcctgtttttaagccacgagtttgtggtggtttgttacagcgg
-ccagaggaaccggatataGCAGGCCAAGCCGAAGATCTTGTCACAGGGGA
-TTGCAGCCGACgtgtgtgtgtgtgtgtgtgtgtgtgtCACGCGCACATGC
-ACGCGTGCTTGGGGGTCTCTGGTCAGCGTGGCTGGCGGATGGGGCCTGGG
-TCTGATTCGGGTCCACCTTGTCTCAAGGAGGACCTGGAGGGGACAGATGC
-TCCGTCAGCATGAAGGGGAAGATCCGGATTCCCATCCCGGAGGTGGAATG
-CCACGGAGGCGAGGGCCCTTGAGTTGGGGGTTAAAGAAGAAGCTGGTTTT
-CCCGAGGAGATCGGGGTTGGGGTGGCCAGCCCAGAAATTCTTAATGCTCC
-TCCTTCCATAAATCCAGCATTGCCCAGAGCAAGGGCACGCACCGCTGTTG
-GCCTGCAAGATGGTTTTATGCGGATGCGGACGGGcatttgttattttaat
-agctgtgtatcagcttttatggctaccttctatttatggcaaaggcgctg
-gctttccattcacgggctgatgggaggtttctttttaGCAGTGAGGTGAT
-ACATGGGTATGGTGCAACCCTGGCGGATTCACAGGTGGCCCAAGCCCGGG
-AGACACTGTTGTGGCTTCTCGAGCATCTCCTAAACACCCAGTGTAGAGAA
-GGGGCTGAGCCTGGGCCGAGCTGACCACGAGGGGCTGCCATACACAGACC
-CAGGACTGTGACTCTGAGAGCCCACCGGCTGGTGTACCTTTGAAAGTGAC
-ATTTTCATTTTTTTTTTAATCCAAAAGAAAATTGTGGAAAAGATCAATGT
-TTGTGCCCAGCCTCCTCCAGGCCATTTCCTATTCCAGTTGGAATCCGTTG
-TGACCAGCTTCACAGTTACCTGGTATGTTATTAAAAATGTGTCTGGTGTT
-TAGTCTTTTTGTTCATGAtttgttctttttttttttttctttttgagatg
-gagtttcactctgtcatccaggctggagtgcaaaggcatgatcttggctc
-actgcaacctccgcctcccaggttcaagcagttctcccgcctcagcctcc
-tgagtagctgggattacaggcgcccatcaccacgcccagctaatttttgt
-atttttagtagagatggggtttcgccatgttggccgggttggtcttgaac
-tcctgacctcaggtgatccgcccgcctcggcctcccaaagtCATGATTTG
-TTCTTAATGCACTAATTTATCTTAGTTGAAACACACATTTCTCTTTTCTC
-TGAAGTTGGTGGCTTGGCCTTGACAGCAACCTGAAGAGTTCTGTGTATTG
-AGTTGGTTTCTTCTTGTCTCTGGGATGGGCTGTGAGCCAGGAAGAGGAGA
-AGCTTCCCGGTTCCTTAGTGAATCTTCTAGAAGGGATCGTGGTTGCCCTT
-GGGTGGAAACTGCCCTCAGAGCCACAGGCAGGAGTGGGTGTTCCCGTCGC
-AAGCCACCCCTCTGGGTCCTGCCCGCTCTCCTCCCACCCCCGTGCGTCTG
-ACCCCCAGGGCTTGCGATGCCTCAGTTGCCTGCAGCCATGGCCTTGCCCT
-GGATGGAGAGCACAGACAGAGGCAGCTGGGAGTTTCTGGGAGTTTCTGAG
-GCCTCGCATTGGACAGAGTCATCCTGCTGGCGCAGGGAGTGGGCACTGAC
-CGGGGGCGGCCCTGAGGGCTCCAGATGACAGGAGAGAGCCTGCTCCAGGG
-CAGCGGGGTCACAGGGTGATGGGGTGACCCAGAGCAGCTGGAAGGTGAAT
-GCCGGAGCCTGGGCCTGACCCTGAGCTGGCCTGAGGGAGGGGCCATGGCC
-AGCTGAGCCCTGAACTGATGTGGGCAGCATGTTCCCCAGTCAGGAGATGG
-TGGCGTGGCAGAGGGAGGAGGCACTGGGCTCGCGGAAGCCCACGTAGCTA
-GGGTCCAGCCCCTCCCGACCTCCCCCACGGAGTCTCCCTCTCAGGGCAGC
-CAGCATCCCGGGCGCCTGGGCCCGGTGTCTGTCTCCCCAGGCAGGTGCCT
-GGGATGCAGTGCCCCAGCCTCACGGCCCTGAGCGCCCTTCAGCCACTGAA
-GTGTGATGGCCGGGGGTGATGCCCACGGCCCCGGGGCACCTCCCCTCCTT
-AGCAGGTCTCTGCCTGGACGGCAGGAGGCGGGGGGTCCCTTGCAGGTCCC
-GAGGCTGGTGGGGCCAGCCTTGGTCGGGCCCCACCCTGAGGCCTGGGCCT
-GAGCCACGGGTGGAGTTGCTGTTGTGGTCAGTGACCCACCCATGGTGCTG
-ACCCTGTGCCAGTGCTGTGCCCAGGGCACTGTGCCAGCCTCCTTTCTTTC
-TATGGGCTGCTGGTCTGTCCCCAACACTGTACAGTGGCCCTGGAGTGAGG
-CTGGCAGAGCCTGCAGCCCCCCAGGGTTGAGCCTTGGCTGTCCCCTTGCT
-GGTGTGTGACCTGGTGGCTGTGTTCCCCATGCCCTGTCTGCTGCCCTGCA
-CGCAGGATAAGCATCAGAGGACCTTGGAGGCTGTGGTGCAGGTGAAGTGG
-GAGCCACTACAGGCAGGGGCTTGGGACGTTGCACTCAGCTCTCTGCTGTC
-CTTGCCTCATGCCCAGCCCTGGGTCCAGGTCTCTTCCCCCTCCTGCTGTC
-CCAGCCTCTGATTTGGGCTGAAGAACCACGAAACGGGTGCTCCGGGCACT
-GTCGTTTCTCTTTTCATCTCTGGGGCGCACTCCTCTGCGCTCTGCCTGTC
-TGGCCGGTATCTGCTGcctccctccctccctccctccctcactccctccT
-CTCAGTGACTAACTCGGTCCTGGGAAGGTTGGTTCTTGCCTGCCCTCCTG
-CTCAGAGGCCTGAGCCAGTCTAGAGCAAGGAAGCCCTGTGCTCCCGAGAA
-ACCGAGCAGAAACACAGTTTTCTGGGGCATTTGTAGGAGATGCAGGTGCG
-GGGAGCATTCCTGGAGCTTCCCTGGAATCCCTCCTGTGTGTTCCGTGGTG
-GTCCCAGGGGTCTCTCAGAAAGACACCTACCTGGGGACAGAGGGCTTGGC
-TGGCTGGATCAGGGTCTTTGTGGTGGACCTGTCTGTGGGGTTTGGTCCTG
-AGTCCTGGACCAGGGCCTCTTCAGAGCTAGCTGAGTGGGGCGGGGGGGTC
-TGTAGGAGGGAGGCGTCCCTGCAGCCGTCGGAACTGAGATGTCCTCCGGG
-AATCCCGACAGGAGCCGCAGCAGACGCGGGATGGGAGGTGCCCAAAGTCA
-CGTCCGCGAACAGTGTCACCTGGGAGACGCCATCACTCTTTCCCAGCTTG
-ACGTCCTGAGGCCGAGGCCAGCCCAGGACCCCACCTGTGTCCCCAGCAGC
-CTGGTGTATAAAGCGGAGCATTGGAGCTGGGAGAGGagggctgcagaggc
-tgagatgcagctggtcgggcccagcccctccattttgcagatggggaaat
-agaggcacggggcaggggagggactggcccaaggccatatggGTCTCAAA
-TTACTGATGGTGACCGATGTGAAGGGGACGTGTCTTTTCAGGCAGGGAGA
-CTGCTGTGGGCCTGGCACCAGGTAGAGGTTCTGAGCTGGCTGTCTGGGCT
-CGGGGGGTGTCTCAGGGCACAGGACTGATGGGGGTGGCTGGGGTCGGGGA
-TTAGGGACTGCTGGGTTGAGGAGGGCTAGTGCCAAGTTGAGAGAAACATC
-CCCTTGGCCCAGCACCCCAGGTGGCTGTGTTGGTACCAATTGCTTAAAAT
-TGCACCTTCATTTTGCAGCTCCTGTTGGGCGCCTTCTCACCGCGCGCTCG
-GGTGCAGTGAACTCTGGGAGCCGTCGCAGCCCAGGGAGTCCCCAAGGAAG
-GCCAGCTGGGGCCATCCCTTAGCACGGcctccccaggcctccacttcccg
-atctgtgaaatgggacagtaagagctcccccgAGGCCAAGTCCTGCCGCC
-CTCCTGCCCTGCTGTGGACCCCAGTGCAACTGTGAGCATCCGAGGTGGTG
-AAGGGGACCTCACAGCACACAGAGTGCACGGCGCTGCAGCCCAAGGAGAC
-CTCATCAGTGTGTCGGCTCTCATTTTCGTTATTTTTCCTATTATTTTCTC
-TATCTTCTGAAGTCCTTATGTAAGGAATTATGGTTTCCGGGGAGACCCAT
-TGTGATAAATGCCAGAAAACAAAAGCTTTTTTCCAGGGCGCTGAGGCCTG
-TGGATCCTCCCAGGCCCTGGTCATGCTCCTGTGCCCACAGAGTGGCCCTG
-TGTTTGCACTCTTTCTCTGGGGATGCACAGGGGCGGTGAGAGGGAAGCAG
-GCGGCTGCTCTTGGCCAGTGGAACTGCCCGGCGTTGGGGTGCAGGCGAGA
-CCCAGCGAGGCTCGAGGACTGCAGACTATGCAGCAGATCCTGGCAGGCTT
-TGGCTGTCTGACCCACTCGGATGGGCGAGGAGAGAAATGGGGGGACCAGT
-GGGACGTTCTGGGGTGCACGCATGTAGGGGAAGCTGTTAGTGCATTCTGA
-GCACCCGGTGCACATAGGTTGACAAGCTCCGAGGCACACACACACGAGTG
-TGCACAGGCAGCCTCTGAGGGCTACGCCCACGGGGATGGGAAGATGGGGC
-TGGGATAGGGAGGGCTGGGCCCCACCCTCTCAGGGACATAGCCTGAAAAC
-AGGGCAGTGCAGGACTCTGATGCCTCACACAGTCCTCAGAGCAGCCCCGG
-TGTGATGATCCCCATAGGCTCATGCTCCCGTCGGCTGCCAGCCATCTCTG
-CATCCTGCCTTTGAGCCTCTGCACAGCCCTCATCTGTGGGTGTCCAGAGC
-CTTCTGCAGAGGCCAGACTGCCACTCAGTGGTCCCCGCATTTCTGTTGTC
-TACCAGGAGCACTGTCTGTATTTTTAAGAGGTGGACAGATAGCAGTGCAG
-ACAGACGGATGGGCGTAAGGACGGGCGCCCTGCCAGGATGCTCCGCTGTC
-TCTCAGCCCCGGAGGCAAGTGCAGCTGGAGCTGAATTTGCCTCCTGAGCA
-CATTTTTTTTTTTTTTTTTGGTGCTCAGAGTAGCCCTTGGGACTGCCCCA
-TGTCCCCAGCACACCTTCGGCTGAGCAGGGTGCCTGTACCCCTGAGGGAA
-TTTGCAGATCAGCTCTCCCTGTCCACACGGGGCACATAGAGCCCCAGCCA
-GGGTGGTTCTAGTTCTAGAAAGGAGTGCTGCCTTGAGCCTGTGACCGGGT
-GGTGGTGGTGAGCCTGAATTTGGCTTTGGAATTAGGCCCCTGAGTGTGGC
-CCTGCTGTGCTCGTACCCCTGAGTTTGCAGCCTGCATGCCCCAATTGGGG
-CCCGCCAGTGGCAAAGCAGTTCCCTTCCCACCTACTCAGGGGATGTGCAG
-CCATGGAGCCTGGGAGGAGGCACCACCACCACCCGTGATCAGCTCCAACC
-TCAAACTTCAGGGAGACATGGTTCCCCAAATGGTTGCCCCTTCCAGGTTC
-TCCTCTTCCCGGCGCGTCAGTGGGGGTGTGGTTGTGCCCCAAGGCTCCAA
-CAGGTGTTAGGGGGAGTGGAGGCAGCTGACAGAGCAGGGGCTGGCGTTAT
-CCTGTGGAAGAGGTCGGGGAAGTGGCCATGTGTGTTAGATCCGCAAGTGC
-TGCCGGTAGCTATGAGGAGCTCCCTGATCAGAAGAGCCCAGGTCTCGTCT
-CTGGATTGAAGCCACTGGGGCTCTGTGGAGGCCACCAAGAGACCCTGCAT
-CCGTTCCGTGGACAAGCCACAATAAGGGAGATGTCACACATCTCCAGACG
-TGCTGCCACACGCAGTGCAGCGGGCAACCTGCCCATCAGGCTGCAGGGGA
-CGGGGTGCCTCTGGGGACTGGCTCCCAGCAGCCCTGGAGGTCCTCTTGCA
-CTGTTTAATTCGTGTCTACACAGGGCCACGCTCACATCAGCGTGCTCTAA
-TCCTTTAAGAACTGAGATTGTCTCCAACTACAGCTGAGTTACAAGCTGCA
-TAAATTAAAACTTCTCATACATGGTATCTTGTAGCCTTATTAAGTGGCAA
-GATTATGCAAAACAATCTGTAAGTATGATAATACAACTTTCGCCATGGTT
-TGTAACAGGACATTTGTTATCTCTCATTCTGCTCTAATTAAGCTCCATTC
-TGGAGGAATTAGTGGTATTACTGTTTAAATCTTAACTTTTGTATTAAGAA
-AGCATGTTCCAAAGCTTTTGAAATGCATCTTGAAAGCAGTGCCTGAATTA
-ACAGGTTTAACAAGGAGCGTAGGAATTTCAAAGCTCGGCTAATCTGTAGA
-AATTATGGTAGCTGTGCCAGATTTATTTTTCATTTAATTAAAACAAAAAG
-TTGTTTTGCTGAAAGTTACCCAGATAAAGTTGTTTCAGCAAAGGCAAGAA
-GCAGTGTTGAAGAGACGCGGCCTTCTGGGGCCCAGGACTGAGCGTTGGTT
-TCTGTTGACCACGCTGTGCCTCCACGGCCCGTGTGTCTGGGTCTGGGTTC
-TGGGCCCTGGGCTCTGGGATGGCATCAGGGCTAAGGGACACCAGCCCCCT
-CCCGGTGTGGTCCTCACTGATTAACGCTCCTCAGCGCAGCACATTCTCAA
-TATTCTGTCAAGGGGCAAGGTTGAGAGTGTGGTTTTATTACTGtttgtga
-aaatcacaggctttatgttttagggcagttgtagggttacagaaaaatgg
-agcagatggcagtttccatctagcctctctcctgcccctcccatccccac
-agggtcccgtgataacagctggcatgagggaggcgcgtgagtgacaagtg
-aggctcgacattgacacgctgttattaaccgaggcccatggttcacacca
-gcgctcactcttggcatggagcattctgtgggtttggacccacgtatcgt
-gacgtgcgtccaccgagatcgtagcatacagaggggcgccactgccctag
-ggctcctctgtgctGGATGCCATCAttttcattttattttattttgtttt
-tgagacagggtctccttctgtcacccaagctggagtgcagtggtgcgacc
-tcagctcactgcagccttcacctcccagctccactgatcctctcgctcaa
-gcctcctgagtagctgggatcacaggtgtgcacccccacgcttgactagt
-ttttgtattttgtagagatgaaggtctcgctgcgatgccctagctggtct
-cgaactcctaggctctggcgatcctcccgtcttggcctccccaaatgctg
-ggattccaggtgtgagtcaccacagccggccAGTTTTTTAAAGAACACCA
-AAAAATAGCATTCATGTAAAGTTATTTGCCTCGTGAACCACCATTGATGG
-TCCCAGAGGGGAGATAGTCAGGGCCTTCCCTGAGCGTGTCCCCAGAGTGT
-CCCCAGGAACACCTGCTGCCCCCTTCACCACGCCACCATGGCCCCCATCA
-CCCGGGCCTCAGTTTCCCTGCTGTTCCCCTCTCTACCGGCTGGCTCATAT
-GCAGAGTGTCCTGGGAGCCACCTGCCACCCTCTTCACCACGCCACCTGGC
-CCGCATCACCTGGGCCTCAGTTTCCCTGCTGTTCCCCTCTGGCTGGCTCA
-CATGCAGAGTGTCCTGGGAGCCACCTGCCACCCTCTTCACCACGCCACCA
-TGGCCTGCATCACCTGGGCCTCAGTTTCCCTGCCGGTCCCCTCTGGCTGG
-TTCATATGCAGAGTGTCCCAGGAGCTACCTGCAGCCCCCTTCACCACGCC
-ACCATGGCCCGCATCACCTGGGCCTCAGTTTCCCTGCCGTTCCCCTCTGG
-CTGGCTCACTTGTGAGGGGAACCCCACCACATGCGGTTATATCTGCACCT
-CAGCTTCCGGTTCTTGGCTGAGTCTGACTTCATCATGCCCTTCATTGTCA
-TCCTTTCAGAAAACTCTTACTGGCACTTCTCAGCCGACTGGCTCCAGACA
-CACGTGGTAGGCACAGGCTGAGCTGCTGCTCTCTGGGTGTGGAGACCCTG
-GTGAGGCTGGAAAGTGCCCCAGAAGGGGGAGTTAAGGGATGGAGAAGGGA
-CAGTCGGGTTGGACCAACGCACGGGCCGATTATGACTTGAGCGTGACGCT
-GATGGCATGAACACAGGAGTCCCGGCCCTCCATGGTGGGGGGAGtgtacc
-tgtcagggttcttcagagaacggaaccaatgggacttcgagagagcgaga
-gggagcgaggtttccctttttaaaaataagcttctgcagtttcagaggct
-gtcagtatgacatctgcagggaagagggcaggctggagacgcagcgagag
-gtgcagctggcgtcgtgaggcctccgctggagaattcttttcttgcttga
-ggaaggtccatctttgtccattgaggccttcacctgcttggatagggccc
-acccacagtatggaaggccatctgctttattcaaaatcaccgattcaggc
-gttactctcatccaaaacactccttcacagaaaaatccagaatcatttga
-ccaaacctgtgggcactgtggctccgtcaagttgacacatgttacccatc
-acTTGGAGGTTATTTCCAGGGGGCAGTGGTGAGGGGCTGGCGCTGTGATC
-GTGCTTAGTGTTTATGGCGTGGGGCTGAGGGAGACCACACAGGAAGGGAC
-GTCTCCTCCTGGTGCCACCTCCTGGGAGAGTGGCCATTTCGTGGGCCCAG
-CAGTGGCTGCATCTTAGGCAGTTGTGTGAGATGACCTCCATGTAGGCTGC
-CATGGTGTCACCGGCTGACCTGGTTTCACTCacacttctgacaccaaatg
-tgtcagtttttcacaccaacaagttctccaactttccagacaccaaatga
-atatctggccatttaattaaattgtcctccaatttaattcggttctcaga
-ctactccccagagttagctgagaccccaccgaggaagggctcggtcccac
-aagactgctcccccttcagataccaagtccaagtgccaccagtggaacca
-agcgccaggtggtacctgtatttccgactgactgaatataagtcaggggg
-tttccaccaccctctcctggcattccgtcatttgcgagaatggcccacaa
-tcctcaggaagccctttgcttaccattccctgcttgttgtaaagggtatg
-acgggctgtgccagctggcagaggtgcatagggccaggggaggggcgtgg
-gtgctgagcccccatgtcctctctgggcaagccgtcctcccagcaccctc
-ctgcgttcactgagctgaaagcttgctaccttccccccatcttttaggag
-tttgatgtttccttgggtacatatgattgattaaatccttgggtattggt
-gattaactcaatctccagcccctttctggagttggggatgataaggcaga
-aagtcccaacccactcaatctgccttggtcttcctggccaccagcgccca
-tcctgagactccctagggccctggccttcagtccgctccgtaacacgcag
-aagacactttccactctggagatggcaagggcttgaagggctGGGACAGA
-GACTGAACGTGTTCGTTACTGCTTCGCATCGTTTGGGCCATTGGGTGCCA
-TGGGCAGGTTGGGCGTCACAGGCCCACAGGATGCTGGTTGTGGGCAGGTG
-GGCTTGAGGCTCCTCAGCAGCCGCTGATCAGACTCAGCATGGCACAGAGA
-GAGCGTGACTGCAGGGCAGAACCAGCATCCCTCACAAGCCAGGGAGTGGA
-CAGGGCCTGATGTGGCAGCCCTGGACCCTGTGCGTGCCAGGAGCGGGATG
-CATTTGCAGGGGCCACCTCCACTTCACAGGCCCTGCCTCCTGGAGGGTTT
-GGGAGCTGCCATGGCTGGCCAGCCACACAGAGACGTGTTGGCTGCCCCTG
-GTTCTGCTGGAGcaggcttgctcatccccagcactgccgatgtttgaggc
-agatcattcttccatgtaggggcaccctgtgctatgtggggggttgagca
-gcatcctgggcctctaccTCCAGTTGAGATGGCCACAGATGCCTCCAGGC
-TGGGCATCTCTGCTTGAGGGGAGCTGTCTTGGCCTAGAACACAGGCTGGG
-GGCCGCTGGTCCAGCAGGAGCCTTCCTGCCTCGATTCCCTCTTGGCCTGC
-GGTGAGTGTTTGCAGCTCTCCCCCCGTCTGTCTCCTGACTTTCCCTGGGC
-TGGGCTGGTCTTGTTGTGTCACCCTGTTTCTGCCAGACCTTGAGATTCCA
-GTCAAAATAAAACAGCGGTGGATAGAGGGGCTGAGTGTGGCCCCCCGAGG
-CCCTGGGACATCTTTTACCATTCGCTGTCACAGCCGAGATCTCCCCTGTG
-TCAGTGATCCTATGCAACATCCCCAGATAACAGTGCAGGGCAGATAAGTG
-AGGATGTGGTGAAGGGAAATGGGGGAGTGGACGAGGGGCGTCCCCGGGGA
-GGATGGCGCCTACCACGGGCAGTAAGGAGGTCTGCGTGAGGGATGCAGGG
-ACACAGGAGGCCAGGGTGGCATCCTGCCTCCTACTTGCGCAGGTCCAGCG
-GGGATCAGAGTGGAGGCCTCGCACCAGCTCTGGGACATGAAGGGGCCCGA
-GGCAGCCCTTGTGGCCACACGGGCCTTGTCATGGTTCGGCCTTTCCACTC
-TGTGTTCCGAACTGTGCAGTGTGTATGTGTAGGCACAGATGTGTGCCCGT
-GCCCATGCCTAGGACTTTGCGTGTGTCTGTACGTGTGATTTCGTGTGTGT
-GTGCATCTTCGTTGGCGACACACGTGTGCAATAGTTCTTCCAtttcattt
-tctctggtttgggttacattcacccaactatgatgttgaaaatattaaat
-ggaaaattccagaaataagcaattcatgagttttaagccgcacgcccttc
-tgcgtagggtggtggtgtcccccatggtcccacgctgttccactcggggc
-atgaatcgtccctttgtccatcagactcaagccatagctgctgcgtaccc
-actggtcacttgggagccagggcggttaccggattgactgtcgcggcgag
-gcttgcggggcttgtgttcgaggtcggtagagcctgacactcggtcacgg
-tgcccacgtcattcccccggctccctctccgcggtcacggtgctcacgtc
-gttcagccggcttcctctcctcacacagagctgatgctatccttggtcat
-ccagaagaagggaggacgtacagtcagatatttacagagagactcacgtg
-tacacggctttaactacagcctgttattagaattgtcctgtttgattact
-agttattgctgttaatttacacactttgtcataggtttgtatgtagagga
-caaaacgtggtgtgtgtaggactcggtattacccctagttccagcatccg
-ctgggggtcttcgatgtatcccttatggagaaggaggCTTCTGTCTCTCT
-CCACATACCCTTGTATATGACGTGTGTATATATCCTTATAtctttttttt
-tatttttttatttttttgagatggaattttcgctcttgttgcccagactg
-gagtgcagtggcaccatcttggctcaccgcaacctctgcctcccaggctc
-aagcgattctcctgcttcagcctccagagtagctgggactacaggcatgc
-accaccatgcccggcgaatttttgcatttttagtagagacagggttttac
-catgttggccaggctggtctcaaactcctgacctcaggcgatcctcccac
-tttggcctcccaaagtgctgggattacaggcgggagccaccacgcccagc
-cCCTTATATCTTTTGAATGGGTCTTTTACATTGTACAGAATTTAAAAGGT
-GCAAAGCAGCATTCTGTGAAGTTTTCCCCAGAACCCAGTTCTCCTCCCTC
-CCCCTCCAGGTATGTGTGTTCTGCCTAACACAAGTGCACGCCTGCATGCA
-CACACACCCCACGCCATCTGTGAGAGTGCGCCCTACGCCTTTCCACGTTT
-CACTCCTTTGGCATATTTCTGGAAGGCCTCCCTAGAGCAGTGTGCGGCGA
-GTGGCCTCGTTCCTCCACACAGTCGCACACCATTCTGTCCAGTGCAGGCT
-TTGATTCGTTGATGGGCTGTCTCATGGCTGGCACATACAGACCGTGCCAG
-TGTGAGCGGCATGCACCTTCCAGTCCCTGTGAGTGGGCACGCTGGTGGGT
-TAAGCCCTCAGAGGTCTGTGGCTGGCACCAGCCTTCATCAAGGGCAACTA
-CAGGACCCTCTGGGTGGTGCGAGAATGTGCCGACTCCCCAGCCTGCATCC
-AGGGCACATGCCCTCCCTCCTCCGCATCTTCCTCAAGCCCCAGGCAGTGA
-AGGGGCCTCTCCTTGTAGTTTGAATTTGCGCCTCATCCTCAGAGACAGTG
-TGCATGGGGGATGGAAATGGGAGGAGATGGCCCAGAGGAATGTACAGGCA
-CCCACCTTTCCGGGGCCACCCCCCCACAAGCACACCAGTTAGCAGGTCCT
-GGACATGGGGGCCTGGCCTGGGCTCCAGGGTCCCTGGGTGACGGCTGTGT
-AGCTTTCTCCAAGTCACTGAGGCATTGTGAGAATGGGGACTGGTGGGGTG
-ACCCCGAGGACCTCACTGGGGCTGTGGATGGAACACGCCCAGGAGGCATC
-CGTGGAGGTGGGTCCATCAGCGTTTCCACCTTGAGTACCTCTCACCCCCT
-TGCAGTTTCTCTTCTTGGCCCATTTTGCAGAGAATGTTTGTGTCCTTGCT
-GTGGACTCCCCGTTTTCTGCGACGTGGGCCCTGTGTCTTTGTTGTAACAT
-ATATCGTATCCTGGACCATGTGGCCTCTGGTACAGAGACGCTTGGCTCGC
-CGCACATGTCTGTTGGACTCTGGCTGTGGCCGTTTCTCAGGGGACTGTGT
-GGCCTTGAAGTGTCCGGGACCTGCTGGTGTCCAGTGAACACCTGGTGAAG
-GAATAAGTCAGTGGGTGCCAAGAGATGGTTTGGCCAGAGGCTTGAGCTTC
-ACAGATGGAACCTGGGCCCTGAGAGGTTATTGGTGTCACATGGGGCCATT
-GAGACGTGCGGGGCTGGAGGAGCCTCTGCCGATCTATGAGGCCGATGCCC
-CTGAGGCCGAGAGGCCCAGACAGGGACCCCGCATCCCCTGCTCTACCAAT
-GCCTCCTGGGCGTGTTCTATCCACAGCCCCAGTGAGGTCCTCGGGGCCAC
-CCCACCGGTCCCCATTCTCACAATGGCTCAGTGACTTGGAGAAAGCTACA
-CAGCCATCACCCAGGGACCCTGGAGCCCAGGCCAGGCCCCCCACGTCCAG
-GACCTGCTGGCTGGTGTGCTTGTAGACAGGGTCGCCCCGGAAAAATGGGT
-GCCCGTGCATTCCTCTGGGCCCTCTCCTCCTGTCTCCATACCCATGCGCA
-CTGCCTGTCCTCAGTTCCGGTAGGGGGAGGGCTTGAGTGCCCGGAGGCTG
-CTCTGCCCACATGGCGTTGCTGGGCCCACCCACTCAGCGATGAGTCATGG
-ACAGATGAGATGCCCACCTGAGGGAGGCGGCCACGCAGTGCGGCCACGGC
-ACCACCACGCTGGGCAGCAAGCACGTGTGGCTGGGGGTGATCACCCTGGG
-GACAGTGGTGCCGGGTGTCTGACGGTCTCCTTGTGCCCCTGCCTGCTGGT
-GGAAGATTAGGGCAGGGCTTATTCTTCCACCCCTGCCCCAAGAGGAGCCA
-CTACAGGGCCCAGGGGATGGCTCAGAGGTGCCAGGGTATCTTCCGGACCT
-GGCCTGCCTCTCCCCAGGAGCATGGTCTCCTGCAAGGCACTGCCCTGGCC
-CTGCGCTGAGCCGAAGGGCAGGCACGCAGATCTTCCCCAACCAGCCCACA
-GAGGTGCAGCTGCCTCTCCCTTCTCCTGGAGGTTTTACATTCTGGAGAGG
-AGGTTTTGCTTCCTAAAAAGTAGCTTTCATCATAACACAGGCACTGCTCC
-CGCCTGCAGTCCTCTCTCTGGCCAGGCAGACTTGGCAAGCAGCAGCAAGT
-GGAGATCCAGTGGGCTGGCAGGCTGGAGGACCCTGGCTCCCAACTCGTGC
-GTCTCAGGGAGTGCACAGAGGGGAAAGTGAATGGGGGGCAGTGGTCAGAA
-CCCCCTGGCCTGGAGGCATATTCCCCATTGCTGACTCTTATTATTTGGGG
-GACCTTGTGGGCCCCGATGACACCCACCCGGGAGTTTAGTTTTGATAATc
-caggtaccccgtggacagcactggactgtgtgtgtctcattcactccaag
-cgacaggcgcgcaagctaccgatggatgaattctccctttgttacaaatg
-aagggattgcagctcagaaaggggcattgacgtgcccagccacacagctc
-aggcagccgctgggccCCTCTTGGCCACAGTACAGGCAACCTTGGACCGA
-GTGTTTACATCTCAGGCACTGCGTTCCTTCGTTTTAGGATAACACTCTGA
-CCCTGTATGTGTGCCTTGAGGACCTTCAGTGCCCTGGAGTCATTTGTGAC
-ATGGGCATGTCACCACTCAGACATGTCCTCTGCATTTTGCTGCAGATTCC
-ACGGTGTTTTCTCATGGTGTTCCAGACTTGTTCTGGGTTTTGAGCCGCCG
-TGGTGGTGGGGACAGCAGGAGATGGCTCCCGCCCAGCAGGGACTTTGTGG
-GAAGACCTGGGCTGGCATCCACTGGATTTGCCCAGGCCCCTGTGGTGCTA
-CAGGGAGTGCTCAAGCTTGGGAGGACTCCTGGGCTCTGGCTCTGATCCCT
-CCACTCACTGGCCTTGGGCCAGGTCCTCTTGCTTTGTTTTCGAAATTTCT
-CCCATGGAAGGTGAGCACATCTGGGAGGTGTGCAAGCCCCCAGCTAGCTT
-GTGGTGCCCTTCTGGTGTAGCTGCAGCCCATAGATTTTTTTTCCATCCTT
-CCACTCTTATAATGTCCTCCAAGGAACAGGAATTTGGGGAGGATTGAGGG
-GCCCAGGGCAGGCTGGGGGCCTCTCTAAGGGTATGAGAGGTATGCTTCTT
-AGCAGTTGGATTTGGGATGGAGAAGTTTTCTGGGCTTGTTGCAGAGTGCA
-TTTTCCTTTTAGATTCTGGGGAGGAGGAGATGGATATTACAGTAGTAATG
-GTGGTGTGGGAGATGATGATACTGTGAATATGATGAGGGTAATGAGGATA
-TAGGTGGTGATGGCAATGAGGAGATCTTGGCggtgttgatggtaatgatg
-gtgatgatgatcgtggtgataatggtggagaggagattatggtgttgctg
-ctagtgatggtgatgatgctgctgatgATAAGGAAGAGGTGGAGGACTGA
-atgatgatggtgatggtgatgatggttatggtggttatgattatgatagt
-gatgatggtggtggtggtaatggtgatgatggtggtgatggtggtgatgg
-tgatggtaatgatggtgatgatggtgatgagggtgatggtgaggatgatg
-gtgatgatgttgttaatggtggtgatggtgatgatggtggtgatggtgat
-gatggtgatgatggtgatggcgatggtgatgatggtggtgatggtgttga
-tggtgatcatggtggtaatggtaatgatggtggtgatggtgaggatggtg
-gtggtggtggtggtggtggtgatggcaatggtgatggtaatgatgatgtt
-ggtggtggcagggatggtgatggtaatggcaacgatggttgtggtggtga
-tagGGCCTACTTTTTTATGTcttactgcatttcatccaccatcttcttta
-atcctaacagcctaactaggatgcaggcaggcattttacctgcgagatat
-ctgaagttttgagaggtcaagaaacttgcccaaggcccaaagcttgtacc
-tgggaggcctctaaatttgaacttcaacttgagcctgattgattctaaaa
-ttggggctttgcccctctcaccCTGTGACATGTACTGAAAATGATTAACA
-TTCACTTAGAGGGCTGTAGGGTCCCTGTGTCTTGTCACAGCCATGCCAAG
-TCCCCACCCACAGTTGGGATGCCTGGTGCTAATCCTGGAGTGTAAGCGTC
-CATGAGGGCAGGTTCCGGGGAGCCCAGAGTCCCTCATGGGTTCACAGCCA
-CTGCAGTGAACAGGGAAGGGCCTGCCCCATGGGGTGGACCCCCAGCTCTG
-TGTGCTGGGTGGCTGGAGGAGGCAGCAGTGGGAGATGACTCAGCCTGGTG
-AGCCTGATGAGTCAGCACAAGGTCTGACCTTGGGAGGCTTCGGAGCCGGG
-CACCTGTCCTGCCACGTGACTGCTGGTGCACCTGCCCCAAGAGCCCCATG
-AGAGTCAGCAGCAGGGCTCCGCTCTCCTCCACCTCCTGGAGGTCATTGAG
-TCCCTGTACCAAACCCTGGGACCCCAAAATCCCACCTCCAGGAATTTGTC
-CTGGGGCACAAGGAGAGACAGAGTGAGAGCTCAAGGCATGCTCCCTCTCG
-AGAATCGCAGTGGCGAACCGTCGGAGACAGCGTGCACTCCAGGTTTCAGA
-CTGAGTGGATCTCAGCCCCCAGGGATACTCCCTTCCACAAGCAGAGAAAA
-TTCGTGATGTTTTGAGAACTGAAAAAAAGTAGGTTTAAGCAGCAGGCAGG
-ATGATTACAGTGTTGCTGTAGGTATTTGTCTGGATATAGATGTATGTATT
-TCTATGAAGACATCCAGAAAGCTGAAATACTGAAATGAGGATTTGGGGAA
-ATGAGGATTTGGAGTGGCTACTAGAGTGGTGGGATTATCTGTGGAACTTA
-CTTTCTTGTCTGATTTTCTTCTTTTTATACAAAAGCCATGTTTACTTTCA
-TATGCAAAAGCCTGTTACTCAAAAGCGGTTTTGCTGCTGCTCTCTTTGCT
-TTGAAACTGGCGTCTGGGATTCAGCCTGGATTAGCGATCGCTGCTTAGGA
-GTGCCGCGTGTTTCCCCTGCCTGGCTCCTTACCTGGAGGCCTGGGTGCAG
-AGGGGAGACACGCTCTTGGTGGGAGGAAAGGGGCCTAGGGCGCTCTGATG
-ATTTAGTGCTGTCAGACGCTGGGGTTCTGAGCCAGGCCCTTGCCCGTGAT
-GGCTGGTGCCAGGCCTGCTTCACGTGACAGTTCACGCTGGCTTGCTTCTG
-TCCAGGTTTCGCTTCCACTCTGTGCCCAGGGCAAGCAGTAACCCATGTCC
-TGCATCACTTTCACTGATGCAGTCACCACATGTACTCAGGATTCTTGGGG
-ACAGATCCAGGCCAGGCTCTGGGGATGTCTGAGGAGGAAGCTGTGTCCCT
-ACACAGTGGGGCCTCACTCAGGCCTGCAGGCAGGGCCCGGTCCCGTTAGC
-CTCGGAGGCAGTGCATGGATCTGGGGCCAGCCTGGAACAGTTCTATCCTG
-GGTTCTGATTAGGGCTGGCCCACCCATCCCAGGTACCTCAGCCTGGAGCA
-GGTCTGTCCCGGGTTCTGATTAGGCCTGGCCCACCCATCCCAGGTACCTC
-AGCCTGGAGCAGATCTGTCCTGGGTTCTGATTAGGGCTGGCCCACCCATC
-CCAGGTACCTCAGCCTGGAGCAGATCTGTCCTGGGTTCTGATTAGGGATG
-GCCCACCCATCCCAGGTACCTCAGCCTGGAGCAGGTCTATCCCGGGTTCT
-GATTAGGGCTGGCCCACCCATCCCAGGTACCTCAGTCTGGAGCAGGTCTG
-TCCCGGGTTCTGATTAGGGCTGGCCCACCCATCCCAGGTACCTCAGCCTG
-GAGCAGGTCTGTCCTGGGTTCTGATTAGGCCTGGCCCACCCATCCCAGGT
-ACCTCAGCCTGGAGCAGATCTGTCCTGGGTTCTGATTAGGGCTGGCCCAC
-CCATCCCAGGTACCTCAGTCTGGAGCAGGTCTGTCCCAGGTTCTGATTAG
-GGCTGGCCCACCCATCCCTGTTGCCTGGGAGATTCTGAGTCAAGTGCAAA
-ATGGGGGTTGGGGAGGCGGGGTTGCCAGAAGGGTCTGCAGCAGGCAGACC
-CAAAGGAGAGTGGTCCAGTTCATTAAAAAAAACAAAAACAAAAAACTCAA
-AACTAAAACTTTCCATTTTTTGCTTGGTCTAAGTCCTGCCCTTTTCTGAC
-CACCCTGGGGGTCCTGAGGAGTGAGGGAGCTATGACTTGTGGGGAGGGTG
-GGGTCGTTTCCCTTTGGAGAAATTCTGCTCCTCCTTGGGAGGTAGGAGGC
-CCCGGGCCCATCCCTCTCCAGGCCTGGGGAACGTGGAGGGAATTCTCACA
-CCACGACAGCTCAGGGCTTGGGGCTGGACAGGCAGAATGAGGCAGTGAGC
-CAGCCCCTCCCACGGCCCCAGGCTGCCAGCCCCTCCCACGGCCCCGGGCT
-GCCAGACCCCTGCTTCTCGGGGGTCTTGGTCTCTTTTCAAGACCCACCAC
-CGACGCTGATTTTGTTTCTCCTCTAAAGTCAGGTAAATGTCTATGATGTG
-TTTAGGAAATACAGAAACACCTCAGGAGACCCTGTCATCCAAGAAGCCTC
-CTGTTTTCTCGCTATCCAGCACCGTAGCCATCAGCCATATTCACGATACC
-TCCTTCCAGTCCTTTTTTCTCTGAACATTTATGCTGGTGAAGTGTGCGCT
-GAAATACGGTTTTGCCTCTGGTTTTTCTCACTCATGAACACGTGATACTG
-TTGGTTTTTTTTTTCCTGGGAGCCTCTCTTACAAAGTTGACTCATCCGTC
-CTCCACTTGGGGCCACGTGGATTGGTGTCCATGTAGGAAGTCATCTTAGT
-GACAGCTACGTCTATTTTTTCCCCAGACATGCTGCGGTTTTCCCAGCATT
-GTATAGCGTTTCCTGAGTTGGTCACATCCTGCTGACCGTGATGGTGGAAG
-CATTTTAGAGAATCCTCTTGGCGCCAATCCTGGTGAGGAAGGGCTGTTTT
-TACCTGTGCGTGCCAGATGTTGGTTGGGGGTGGTGGAGCCATGATTACTT
-GAGGAACTGCAGAGTGCCGTGGAGGGGCTCCCGAAGCCCGCTGGCCTTTG
-TCTGCTTGAAGCCACAGCTCCAGGCCTTCGTTCCAACAGAGGGCAGGCAC
-CCGACGCTCGGGAGCTCTGTGCCCCATGGCAAAGCTTTCTCTGCTAACAC
-CCCAGGTTTGCAGCCCTTGTGCTGTAGCGGAATAGGGCCATGCTTTGCTG
-TCCGCAGTATCTGATGGACCGTCAACTGGACATTGGACATTCCTGAGGAG
-TGGCGTGGGCAGGTGCTTATTCTTACACGTCAAGTGGGTTGGGTTCATTT
-GAGTGGGTTGGGGGAGCGTCAGGAGGCCCCTAGGCTGCAGTTAGCCAGGG
-CACAGTCTGTTACTGTGGAGCGATGGCCCTGGCAGAGGAGAGCACTGCTG
-TCGGATGGATGTGCGTAAACAGGTGGGCGGTGGTGTGTTCTGAGGAGGAA
-CCTCTACTTGGGTGGGAAATGCACGTCTCCCAGCTCAGCAGGTTCCTGGG
-TGAGGCCTGAAGAGGGAGATTGTGTTTTCAGAAATCAAAGACACGTTGGG
-GCAACATCCAGATGCCAAGGAAGGAGCCAAGTTTCTGAGTTAAGAGACCT
-TCGTGGACGCTCGGCCAGGCAGCTGCCTAGTCCGAGACCTGTGGCATCAC
-TGTCCGTGCATTGTCTGTGGTGTGAGACCTGTGGCATCACTGGCCATGCG
-TTGTCTGTGGTGTGAGACCTGTGGCATCACTGGCCATGTGTTGTCTGTGG
-TGTGGACAGGGCGCTGGAGCCAGGAGGAGTGGGGTTGGGCCTTGGACCTc
-gcctctgtccacgcctctgtccacTTCTGCTCACGCACAGCTCCTGAACC
-CAGGACGGGGCCGCCCCCGTTTCTCCTGCAAAAGAACCACCATGATTCTG
-AAGCTCACAGACCTGAGGATGGtgtatgagttccccaaggctgctgtgac
-caaggaccacaggccaggcagcctctacacgactggtgtggagccgcccg
-tgcttctggaggccgggggtctggcatcagggccccgcaggtccgcttcc
-ttctgagggtcttgggggagaagctgctcccggctgctctctggctgccc
-gtggctcaggcagcccttggcttccacctgcctcccgccagcctctgcct
-ccaccacatacagccgtcctccctctgtgtcctaacctcctcttgtagtg
-aggtcaccagtcatattggattgaggcccaccctaatggccctcgcctaa
-cttgattacatctgcaaagaccctgtttccaaagaaggtgacagttacag
-gcctcaggggttagaatctcagcatggttttagggggtcaaaattgaacc
-cataacaACACACAGTGGAGGGGGCTGTTTGGCTTTGGATGGAGCCCCAA
-GAGAACCTAAGGTCGGCTCAGCAGGGTCTGACCAGAGGCGGGGCAGGGAG
-GCCTTCCCGTGGCCCCCGAGAAGGGCCTGGCTGCACTGCTGCAGGCACGT
-TCCTGAGGGTACTGGAGGACAGGCCGGAGGCTGCATCCCAGCGTTTGGCA
-CAGTAATGGGTTCAGTCTTGCCCGTTGCTCGTGATTCTTTCTGTTTATGG
-AGCTGGGTGTCCAGCCTCACCTGTGCTAAGTAAGATTCACCTGCTGTGAA
-GTCACGAGGTCCTCGCCTTGCGCCCTGGCCGGCGTATAAATAAATCACGA
-CGAAAGGTACACTGAGGAAGCGCCCTCAGGCACCCAGTGAACTGCGGACC
-TTCATGCTGGCTCCCGGGGTGGTGAGGGACCACAGAAGGCCCATCCCCAG
-CACGGAGGAGCAGAGGGGCAGGCTCGCAGGCAGCTCGGGACCACCAGGAG
-GGCTTTGTCCCCAGCATGGAGGAGCAGAGGGGCAGGCTCGCAGGCAGCTC
-GGGACCACCTGGAGGGCTTCGGGCCGTGTTGAGCTGTCAGCGTTGGGCCG
-TGTGATTTCTGGGGCTGAGGCTGGGGCTTGGTCCCGTGCTGTGTGTGTTG
-ACTCCGCCTTGCAGAGAATCTCCATTAGCAAGGGCTTCATGAGGATGGGG
-AGGGAAGGATGGTGAATGCAGCCGAGCTGTCCCTGCTGCAGCCCCTTCCC
-TTCGTCTGCTTCCCCCTCCCAGACTGTGGTGGGACACGAGAGGCATCGGG
-GATTTGACTTGTGTCCCTCCCACTCCAGTACATTAATGACTGGCTGGATG
-ACCCTTAGTAAttttttttttttttttgaggtggagtctcgctttattgt
-ccagctggagcacagtggtgcagtctcggctcgctgcaacctccacctcc
-tgggttcaagcgattctcctgcctcagcctccctagtagctgggattaca
-ggtgcgaatcaccacgcccagctaattttttgtatattcagtagagacgg
-ggtttcaccatgttggccaggctggtcttgcactcctgacctcaagcgat
-ccgcccgccttggcctcccaaagtgctgggattacaggcgtgaggcaccg
-cactcagccTATTTTTGATAGCTTTGAAAACACAGCTAGCGGCAGACCGC
-GAAATACAGCCTCTCTGCTCCCTTCCTTCACCTGCTCCCCTTTCGCTGAG
-ATGCTGTCCTGCGTTGCCTTTCGTACACCCAGATTATTCATTTTGTTATT
-TATTAGAACTCACTTATTCAGCATTCGTTACCTGCGGCATGTCAGCCCGG
-ATGGGGCAGCAGACACAGCCACCCCTGGAAATCTCCTTCCTTCTAAACTC
-GGAACTTGATCTTTGGGATCTGTGGCGGGAGCTATGCCTGGCGAGGGCTT
-TTGGGGGCTCGGCCATGTGGATTCTGTGGCCAGGGCTCGTGAGAGTCTGT
-GTTTACCCTCCGTGTCCTGCCACTTTGTGTCCCCTGAGACCTTCAGAGAT
-GTCGCCCCTTTGGTGTTCTGATTGTGTCCACGTGGGCTGGCCTTTCTTGC
-CTCTCCTGGTAGAACTTTCTGGAAACCACCTACCCACCCCTCTTCCTTCC
-ACCTCCTTCCTCCTCCCACCTTTTTCTGACTCACTCTTCAGTAAAGCATG
-TGCAACACCTCCCTTCCCTGGGCAGAAGCTGTTCCAGGCCTCCGGATGGG
-CAGAGGCAGTGCCTGGGGTGTGAGCCTTAACTCCAGATGTGCGGCCCTGA
-GGGCTGCTGAGAGTCAGGAGGGAGGGGCCCACCTCTGGCTGCcagggggc
-tgggtgttggcagctctgctggaatcctgggtccctgtttactgctgtat
-gcctctctgagcctcagtttcctcacctgtaatataatgaaaggttgcct
-ctgcacagggtgggtctcagatccagggcaaggctggaagcagcacaggg
-cgctgtgcctgTGGTCAGGGCCAGAATTCCAGGGTGCGTCTATGCAGGTG
-CAGGAGCCCTGTGCTTCCCACGGACGGGGCTTCCTCCCCTGGGTGGCTCA
-TCCCCTGGCCGCCCACTGGGCCTCATGCTTTTCCATTTGTAATCCTTATA
-GAAACAAAGTCCTTGGCCGCCAGCGTGGGTGACTCCAGTGCACACCCCCG
-CAGCACAGGGCGGCTCACTTGCATGTTCAAGTGTAATCAAGGCGAGCCTG
-TGAGATCACGGCAGGCCACGCGTGTCTCACAGCCTGTGCGCGTCTTGGGA
-GACTGCAAAGGGGTTAAATGGCCCGTGTACCTCCCTGCAACACTGACATT
-TTGAGCGTGTGTCAAGGTGTCCCTATAGCACGCCCACCTGTTGCCTTCCC
-TGGGGCCCTGTCCCTGGGCACAGGTGGCCTCGTCTCTCCTGGACCCTCCA
-GCCCTCCCATCCAGTGGGCTCTTCCGACCCCCAGCAGCCCTCGCCTAATG
-GGAGGTGCCCCCGCCCCACCTGTCTGCTGTTCCCCACGTGTCTCCCGTTC
-CCCGCGTGTCTCCCTTTCCCGGAGTGTCTCCCTTTCCCCGAGTGTCTGCC
-CTCCCACGAGTGCCTTTCTCTGAGCTCCTCCTCTGCTTCCATCCCTGTCT
-CTGAGAAACCCTCCTGGGCAACCCTGCCACCTTCCCATGGGGGTCTCTCC
-TGATGTGCCCAGGGCCCGCTGATGTGTCTCCATGTGTCCCTCTTCTGTGC
-ACAGCAGGGTCCCTTGAGAGGGGGTTTCTGACAGGAGAGCCACGGCCGAC
-TGGTCATCGTGGGGAGCAGTGGGTGGTGCAGGAGGTCACAGTGAGCCGGT
-GGCCTGGTCACCCTCCAGCCTGGCTTGTCTGAGTTTTGAATGTGAGCATG
-TCACAGACCCAGGAGGTGGGGCTCCTCCTCTGGCATCCCTGGCAGGGCGT
-TTGCTGCCTTTTCCTCACTGGCACTCAGGGACCAGCCACTCTTGGCTCTG
-TGGTGCAGCCCGGCCATTTCCAGACGGTTCCTGTGCTCGGGAATATGCTA
-ACATCAATGCTGGAAGATTCTCCTGATGCCTTCACTGAGCTCTAGGGAGC
-ACTCACGGCTGTTCTGAGTCACGCCGTATTCCTCCTTCCTCCCTGGAGTC
-CTCTCTTCAACACAGGTCCTTTCACTGATGATCTGAGGACCTGAGTCTGG
-TCCCTTACGTCTCTCCTGAGCCGTCCCTAGCACAGGCCCCTGGACACTGT
-TTCACCTCCTTGAGCTGATGTCCGTCTCTGTTAATGTGTGCAGAGCCTGC
-ACTGAGCCTCTGTCATCCAGCCCACTGTGGATGCCCCTGCGGGCCCTGCC
-GTCTCTGCCTCCCAGCCTCTCTGGGGTCCATCTCCCCCACTCTGTTTGTC
-CTTCTGACATTCTTCTTTCCTCTCTGTCTCATCTCCTGAGCTTGGGGTTG
-TCTGGACTTGAGACGGACTCCTGGCCCTGTGGTTCGGCCAGGCGCTCATC
-TCGCCTTCCCAGCCTCCTCCGTGAATTAGAAAACACGGATTTCCATCTCC
-ATTGAGTGTTTGGTTCTGGGGCAGGGTTGAGGCTCCAGTCCGCAGTGTGA
-TCTTGGCTCCACCTGCTCTGGCCTTTCCCCGGCTGCCCTTGTGGCTGCGC
-CCCAGCCCGGGGCTCCCAGCCTGAACCTGATGCAAGGCCATGCTGACGTC
-CTTCCGGCCCTTCGTGACTCTGTCGCCATAGAATGTGGCCCCCTCGAGCT
-CCTGGTGGGTCCTGAACAAAAAGAGGATGTATCACAGCTGCACAGAGTCT
-CCAGGCCCCCATGGCTGAAGAGGCTCCTGGGTGCAGTCTGGAGATTGGCC
-GGTGGCCCTCAGCCCGCTTCCCACCACCCCCGGCTCGCGGCCCCTGCGAG
-ATGGGATTCTGTGGAAGGACAAAGCCGCTCGCGAGCATGTGGGAGCCGTC
-AGACGCCCTGGTTTATTTCCACCCTGCACTTGCGAAGCGGTCCTGACCTC
-CCGGCCGACGGGTGTTATCTCAGGACAGCCGGTGTGCTTGGCTACATCAC
-CCCTGTCTGCTGGTGGGCCCCTGTCTGGGGCCCCCAGGCGCCCTCTCCTG
-AAGGGCCTGCGCAGAGCTGGGGGCCCGAACCATTCCTCACCCCAACTCTT
-CATTGTGAAAATTGTCATAGATACAAAACCGTGAAGAGAATCACACTGCA
-GACACCCATCTGCCCCCCACAACTGTTTATGCCGTGTGTGGGTTCCACAG
-CTGCTTAAAAAATTGCTAAATGTTCTTCATTCCTGGATATGTTGATACAC
-AGACGTTTACCCATTCACAGATGCACTGATGCATTCTTAGACACCCTTAT
-ACTTgggagacccacatgtcctggtttgcacgacacttgctggtttcaaa
-gctgaaaatcccgccttgtaccaacccctaagtcccgggcaaggcaggaG
-GACCCCGGGCAGGAGACAAGTGCCCTCCCCCAGGGCTCCTTGCCTCGTGG
-TTAAAGGGATGCAGAGGCCAGACTCACACTGTGCCTGGTGTGTCCACAGA
-GTCATGGCTGGGAAACATGCTGTAGGTGACCTTTGTAAAAGCTCCTCTGA
-GATTCCATGCGTCCTGGGGCATCTGTGGAAACCCTGCTCCTGTCGCAAGC
-AAGTACTGCCAGGGTGCTGCGCGTCCTGTTGACCGAGAGCTTCGTTCACA
-CCTTCTGTGCCGCACACGTCCAGCACTTGTAGTGTGTGAGACAGATGTGg
-gggccggggtaggcactgggggtggcactggggctggccagctggagccg
-gccctggagagaaggccgggcatggggTCAGCAGAGCGGGCCTGGCCTCC
-CAGTCACCGGGGCCAGAAGCCACTGGCTGCTTGGGGAGAAGCCACGCACT
-GTAAGAACTCAGCGCTACCTGGGGGATTCATCCTTTTTCTTTACAATTTC
-AACCTTCTAGTTTATTCAAACAACCACAACCAGATTCTAGGAAGTACTCG
-CTTACAAAGCCTCCGTGTTTCCCAGGACGCCCCTTCAGGAGCCACCATCC
-CCGTCCCTCCTGAACCCAGGCTGCCTGGAGGAGGGTGGACAGGTATGTGT
-CTCTCCAGGTGAGAGAGCTGCGTTGGGGAAGACGGGAACAGTGATAAGAG
-TTCTTAATTAGCACGAATCTGCAGCCCCTGCCTTTGTGCCAGCAGAACTG
-ATGAAAAGCACTCGTATCTGCCCATGGTGGCAGCCGGCGGCTCGGTCCGA
-CGAGCTTGTCCCCAAGCAAAGGGAAGCGGATGGCTTGAGGCTACAGCCAG
-TCTTTCTTCAAGTCCTGGGCAGTGGGGAGGTTGTGGCAGCAGGCGTGGCC
-GAGGACGCTCTGTCCGTGTTCCTCTCGGATGGGCTTCGCCTAGCTGTGGG
-GGCCATGCTCGCCTTCCTGGGGGGCTCCCTGTGCCTGACTTTCAAGGCAG
-TCATTTCCCTTTATGGTTTTCACCCTCTGTGGTCATAAATAAATCCCTTT
-CTATTTACAAGGTGATTCTCCTGCGGTTTATGAGGACATCCCCCACGGGT
-CCTTCTGGCCCCTGTTCCACATGAAGGGCACTCTCTAGACTGTTCCTGGG
-GTTCACAGTCCTGGCCCCCGCCCCCATCCCCCCCTCTCCAGGAGGGGCCC
-TGTGACAAGAAAGGCAATGCCTCTTCCACTGGGGCTTCAGGGGAGGGCCA
-GGTCATTGCGGGGGACCATGGAGGTACAGCTCCTGTCCGCAGAGAACCCC
-CTCCCAGCCAGCCCTCTCTGCATTGCACATCCCTCCTGGGGCTGTCAGCA
-GGCCTTGCCCCTCCAATGGCCTAATGGTTTCCAATCCTCACCCTGGCTTT
-GCCCTAGTTTGTGCAGGGATGGTCAGGTCTGTTTCTACACTGGTGGAGGC
-TGTGAAGAGCTGAACTGGGGCTTCTAGAATACAGCCAGGCACGTCCCTAC
-TGGTTCTGTGGGGTGCAGGGGTCATCCTTTCCTTTGAGAAACACCGGCCT
-GGTGTGCTGATTCTCTGGGACCCTGGAGCTGGGCCTGGGGCTGGGGATCA
-CTCCAACAGAGCTCACCAGCCCCGGGGCTGCTCAGGAGTGGGGTGGGCTC
-TCAGCAGGGAGTGAGGGTCCCATCAGCAGTCAGGCAGAGCTGGGGACAGC
-GCTGCAGGCTTTGAATGGGAAGGTGGAATACATTCATACAGTGTGGCCAA
-TACCGCCGTAACCCCGCCGTGCTGATTTTCTAAAATTCGAGCATTTTCTG
-GTCGAGGCCTGATGAGCCTGAAGGCCCAAGTGATCGTGTCTTCTGCAGTG
-GCCCCGAGGGTGCTGCTGGATGAAGTGCACATCGTGAGGCCTGGGAGCAT
-CCCTAATGCATCACCTAATGCATGGGATCAGGTGCAGTCACCTGGGAGCA
-TCTCTAATGCGTCACCCGCCCATGCACTCGGGATGCTCCTGGAGCCTGGC
-CGCTTGGGACAGGGTCCCAGAGGTCTTCCTCCTGCCTGCAAGTCACAGCA
-CGAGGCAGGAAGGTGGCATTTTGCCTGCGCATGGAAACCAGGGAGTGGCC
-TCGCTGAGGCCGGATGGGCTGCACTTTGTCCCACCAGATGGGCCACTGAA
-GCCCAAAACTTCTTCCTGCCTATCCCACCCTCTGTCTAGGGCTGCAGAAA
-GCCCAGCGAGGTGGGTCAGCAGCGAGATGGTGGGAATAGGGAACAGGGAG
-TTGCCCAGCTCCGAAGGCTGCGTGGCTCTGGGCTCGGCAGACACCCAGCT
-GCTTGCAGGTCCGTGGGGACCCCTAGGGGTTTGGTGGGCACGGCTGGGGT
-GGGAGCGTCTTGTCCGAGAGAGGCCTTCTATGGGTGTCCAGTCTCCTTGG
-TGGGCCGGTGGACATCTGGATCTGGGCTTCATCCATGGTGAGTTCATTGT
-TGGGCGAGAAACAAAACCAGGGCTGGGCTGGGAGCGTGGATACCTGTGGT
-CACTCGGGGGATGCCCTGTGCAGACCCAGCGtgtggttggctgaacaatg
-cactccccaaaagatgtccgggttctaatccctggaacctgcggatgtgt
-catttcgccaggcaagagggtcttgcagatgtgattaaggatcttgagat
-gggggcgtgactgcggcttatccaggtgggtctcacaggcagtcacaggc
-gtcctgggaagaggaggcaaaaggggcatgaggacaaagcagagaggggg
-tgatgtgaggcagggagcccaggggtgtggcggcctctggaatctggaaa
-agcaaagggaacagattctccccagagaccttagaagaaatcagtgacac
-cttgactttagccagtgaagctgggctcagacttctggccctcagagcag
-caagaggataaatgggtgctgtttcggggcctggtttgaggccattcgtt
-actgcagcCGTGTGGAGCTCCTGGAAGCATGCAGGCACTCCCGTCCCTGC
-CTCAGTGGCCCCGGAAGCGCCTCTCGCAGAACCTCGGCACTCACTGTCCT
-CACTGTCGTCACCTCTCAGGCTGAGTGGCCCATGAAAGAAACTGGGGATG
-CAGCAGGAGAGAGAATGGCAGAGTCTGTCTCCGCGTCTATCTCCTGGGAA
-CATAAAGCTGCCCCATGCCTGAGGCGGGGGCTGGATGTTCTGGAGCCTGG
-CTTGGTGCATCCCTGGTGAGATGTCTGCGGTGACACGACCACATGCCTGC
-TGGGCTGTGTGTTCTGAGAAGACGGAGCAGGGCCCTGGGGTTGAGTCCCC
-TCTGTACCACCCCCTGCCTGGAGGTGCACAAGCACATATGGGTCCAGCCT
-GTCCTTACGTGGtgtgccagggtggggtcctgttctgagcactctgttca
-tggtaacctcagttgttactcttaagagccctgccacatgggcgcggttt
-ttatggccattttttacaaagggaaattcaggccactggtaagtggcaca
-ctgggatttgaacccagtaagtgtggcgccaggctctgtgTGGACACGGA
-GGTTAACAGCAGGAAGCACTGGGGTTTCTGATTTTAGAGAGGTTGTTTCT
-GCACTCTTTCAGGATTGTGGGTGCAGTCGAGCCTGGCCAAGCCGTGGATA
-CCTGGATACTGGAGGGTGGGAGTTGGGGCTCTGGAAGTCTCTACACCTGC
-CCCAGTCCCCCACAGGCTTAGCAGCGGCACAGAGCCACTGTCCCAGGCTC
-TCCTGCCTCCCCAGGACCGAACTGCACCGTGGCAGGCCAGGAGCCTGTGC
-ACTGACGCTCGCCTCTGCCAAGCCTTCATATTTACCTTTGTGGGATAGAT
-TGAATTAGAAAAAGGCCATGCGTGCAGTTTTGGAACAAGAGACCTCGTAA
-ATACTTTATTGGAGCAAGCTCAGGATTTACTTGCTCATAAAGTTGCCGGG
-GATGGCTTTGCCTGGTGTTGGGTAACGGATTGGCGTTGTTTCATATTCAT
-CATCTGTAATCAGGTGGCCTCGTCCGCACCCGCAGCTCCGTCTGGGAAGT
-CCTGGAGGCAGCGTGCACAGTGGGCCCTTGCTATCTGTAATCGGGTGGCC
-TTGTCCACGCCCGCAGCTCCGTCTGGGAGGTCCCGGAGGCAGTGTGCACA
-GCGGGCCCTTGCTGCTCTGCTGGGCAGTATAGCCTCTCCTGGGCCCTGTG
-GCCACTGGGAGCAGGCAGGTGGCTTTCGTGGCCCATCTGGGATTGAGGAT
-GGCTGTGCTGGGGGTTGCCTCTGAGGCTCTCCTTTCTTCGTGAGGCTGCT
-TCACACCCATTCTTGTCTCCCCTTGCCTCCTGACACCCTGGGTTCCCCAT
-AGGCCCCCCTCGCCTGCACAGATTTTCACCTAGGCCCTGGGAGGCTGGTG
-GAGTCCTGGGTTCTAGAAGACCTCAGAGACCCAGGGCAGAGTGAATGTCA
-GGGGTTGTTAGAAGCAAGGACTGCCCAAGACCCATTGCTGAGGGAAGAAG
-GAGTGATGAATGAGATGGATAAACACGTCAGCTGTTCGGCTTTCCACATT
-CATGATCTATTTTCAACCTCCATGTCCTGATGTTTAAAATACAGCAGCTA
-AAATATCTAGTGGTCTTTTCTTCCTCTTCTGAGTGCAGCCACGACATGCC
-ACATCTCTGCCCATGGTCAGTGGCCGGGCTGTACAGAGCCTGGCCTTCTT
-GCCTTTGTCTCTAGAGGGTGCCGTCAGGGTTGGATCTGTCCATGCGGGAA
-GGAGCCTGAACCCCAGACTCTTGGACCTCAGACTGGGAGAGGGTGTGGGT
-GAAGGCACATGGACCAGtgattgattaattgattgactgattggttTATa
-gacagagtctcactctgtcgcccaggctggagtgcagtggcatgatctca
-gcttactgcaacctccgcctcccaggttcaagcgattctcctgcctcagc
-ctcccgagtagctgggactacaggtgcccaccaccacacccagctaattt
-ttgtatttttagtagagactgggtcttgccatgttggccaggctagtctc
-gatctcttgacctcatgatctgcccactttggactcccaaagtgctgaga
-ttacaagtgtgagAGTGCAGGGCCAGAGGATGGCAAAGACGGGCTGGCCC
-CAGGATCCTCAACTGTTGGCGTCAGGACCGGACTCAGGGCCTCAGTCTGG
-CAGCATGGGCGTCACGCTGCCTGCCGGGCAGAGCCCTTTGCCCCACCTGA
-AAGCCCTGTGGTCACAGCGTAGAGTCTGGAGCGGCATGCTGGGGTGGGAA
-GCGCTGTCCTCGTTGCTCTGGGCCCTGGCTCAGGAGCCCCTGAGAGCGGC
-TTCTGCTCCCCGAGCTTCCTGCGCTCCCTGAAAGTTGTGCATCCAGTGCT
-GAGTCCCGCGGGCCTGGGGGCGTCGGCCCTCCTCCCTGGCTGTGACATGT
-GGGTTGGAGATTTGCCTGTGTCTTAGTGAAATGCCAGTGGTCAAATTCAA
-CGGGAAAGAGGAAAAGAAAGCATGAGCCTGAGTCCAGGGTGGAGGATGGC
-GGCGTCGAGGAAGGACCCGGGGCCCTGCTTCTCCCACCGTCCCCAGTCCA
-CACCCTTCTGGGATGGGGGCAGGGTGGGGGAACTCTTGCCTCACCTCCTT
-TTCCTCTCCTCGTGCCCACTGCCCCCTTGGTGTCCTCTCTGGTGAACTCC
-AGCCACCTCTCCCTCCACAGGGCCTGCAGCGTCTCCAGGTCCCTGACCCT
-TGGGTGGCATCTCCCGCCTCTTCCTCAGGGCCCTGCAAACCTCTCCTCTT
-ATTTCACCAGGAGCTCCTTTCCTTCCCATATTTGTGTAAATGAATTCACA
-TATTTTGACTTAATTGTCTCAGAATGGCCCAGTTTGGAGTTGGACTTTTC
-TGATGCTCATAAAATTCAGGAGGCGGTTTTTAATCAGTTAGTTCTGCTAC
-GGCTGCCTCCTCAGAGAAGGGAACAGTTTCTTGTTCTTCTATTTTTGTTT
-TTTGATGTTGTTGCTGAGGACAATTTAATTTGATCTCTGAATcatccatg
-tatccatccgtccacccacccccctacccatcctatccacccacccacca
-tcccccatcctatccacccacccaccatccaccatccatccaccaccccc
-acatccatccTATCTACTCACCCCCATACccatcctatccacccacccac
-ccaaccacccatcctattcatccatccatccacccacccagtctatccac
-ccacccacctatcctattcatccatccccccacccaccctatctatccac
-ccatccacctatcctattcatccatccacccacccacccacactatctat
-ccacccatccacccacactatccatccaccctcccacccatccacccacc
-aacctatcctattcatccatccacccacccacccaatctactatccaccc
-acttgcccaccctatctatccacccatccacccacccacccatcctattc
-acccaccccccacccacactatccacccccccacccacactatccaccca
-gccatccacccaatccacccacacaccaattctatccatctacccatcca
-ttctacctatccacccactcaccagccatccatccatttatccatccttc
-catccatgcacccacccatccatcatccatccctgcttccatcatttcat
-ccacacacccacccatccattcatccatTCTTGTGTTGGGTGCTCCATCC
-ATGGCATCAGCAGATATGCCCAGGGCAGCATGGCACAGGAACCCCCATGC
-CCATCATGTAGGTGCTCATGGGCACTTCTGCTCACTCTGGCCGGGGTAGG
-GGCTGTTGGGCCCATGCTTTGTGAGGTCTTCTCAGAGGGCATCGGCGGTT
-GTAGCAGGAGCGAGTAGAAGGGAGCCTGGTGTCCCAGGGTGAAAGCAGGG
-AAGAGCAGCTCCACTGAGTCCGGCTGTGGCCGCAGAGTGGCCCAGCCTGC
-GGCATCAGGAGAGCCCAGGCCCGTGGCCTCGGGGTCTTGCACTTTATGAA
-GGGAGCAAGGCAGGGTGTGACAGTAGCTTCGTCCTGAGACCTTGCAAACA
-TACATGTGACTGGCCTCTCGAGGTGGGGAGTGGTGGCCGAGGCCCTGTGA
-TGCTGAGAGCCCACGAGGTCTCAGTGTCGCTGGGGATGGGGAGAAGCCTC
-AGCCCGGAGCAGGGCTGCATCTGCAGGCCTCTGAGCCTGGCACGGTTTGT
-GCCTCTGGAGGTGGCTGGACCCCTGCCTGTGTTTCTGTTTTCCTAGATGA
-GGAGTTTGGGCTCTCGCTGGCTAGTGAGGCTGAGTAGTGATGGTGTCAGA
-AGCCAGGGCCCAGGTATTTCTTGAACCATCCATTCCAGAACAACTTCTCA
-CGGCAGTGCAACCCCTACAACACACCTTCCCTTCTCCTGCACCCTGAGTG
-GGAGACGCTGAAATCACCCTAGAGCACAGGAGTGCATGAGAACCCAGGGG
-TACCGGGGGCCCACCTTGACACCATGTGGTATTCAGGGTCAGAAGCTCCC
-AAAGTTACCCTGATTGCTCTATCCCCAAAATATTTATGTAGCCACGTTTC
-AGTGACCCGGAGGAGAGGGATACCTAGGACAGGGAGTGGCTGTTTCACAT
-GGGGGGCAGGCCCTGGGCACCTCGGAGGGCCTGGCCGGGCACCTGCCTAT
-GTTGCAGAAAAGCATCTGCCCCAGACGCTTGTTAGAAAACAGCAAGGCAG
-GCTCCATTCCAGACActtgcagtggggagagattgcactcagctccacta
-cagcacggggcgctggggatttctggagtgaaggagtggacagaaactac
-tcaggggaGCTGGGCTTGGTGTCGGGAGGAGGAAGAGGGGCTGGAGCAGA
-CATGGAGGGGATCTCAGCTGGccgaggttgaggctctgccaagaagaggg
-ctcggaggagcctgaccaaagttacaccatggagggagtccttgtcaCCT
-GCCGTGGTACGACACTGTGGATATTTGGAGAATGGCGCAGCTGTAGGAGG
-ATTCCCGGAGGAGGTGGTATCGATGCGGGACAGCCCACGCTGCAGGCTCA
-GCTTGTGTGGCCGCCTCTGCCAGCAGACAGGCCCCTCGCCCTGACTCAGT
-GTGTTGGCTGCCTCTTTGGAGTCCTGTTGACAGGTGTGAACAGGTCCCCT
-GGAGGTCTCGGCTGTGTGGACAGGGCCACCTTCCCACCTGGGACTGCCCG
-TGACAGCCAAGCACACTACTGGGCGGGCAGGGACCCAATGCTCGCTTCCT
-TGTTCTGTGGACACTTCGCTCCATTCACAGCGTGGTTTTCCTCCCCAGAA
-GCTCTTAACTCCAGACGGCCCTCTCCATCTCTCTGTAATTACCCAGAAGA
-GGGCGAGCTCGGCCCTGCAGCAATGTGTTCTGTGGGCTGCAGGGGGTGGC
-GGCGGTGAGCACAAACTCCAGCTGTCACCTTCGACCTTGCAGGATGCCCT
-GACGGCGGTGGGATGGATGAGCATGGTTTCGCCAGCAGCCGCAGCCTGTT
-GCGTGGCCCTGCGCGGTGACCTGTGGGACGGGACGTGCCGCGTGGCCCTG
-CGCGGTGACCTGTGGGACGGGACGTGTCGCGTGGCCCTGCGCGGTGACCT
-GTGGGACGGGACATGTCGCGTGGCCCTGCGTGGTGACCTGTGGGACGGGA
-CGTGTCGCGTGGCCCTGCGCGGTGACCTGTGGGACGGGACGTGTCGCGTG
-GCCCTGCGCGGTGACCTGTGGGACGGGATGTGCTGCGTGGCCCTGCGCGG
-TGACCTGTGGGACGGGACGCAGCCCGTGATGTGTTTGTGACGGGTGTCGG
-TATCACCTTTTGAGCAGGTGTCTTGGCCAGGTCCCTGGCGTGAGTTGGTG
-GAGGAAGGGGGCGGCTCATCGCTGAGTGCCAGGCTGATGTGAACTTCCCG
-GGGCTCAGCATCTTTCTTGGAAAGCCTGCAGACAGGTGTGCAGGAGGAAG
-AGCCAGCAGGCCCAGCACGCCCCATTTAACCGCATCAGAGCCTGGCACGG
-CGGCCCGAGGCCTCTGCTGGGCTCCTCACGGTGCACGTCAGAAAGCCTAT
-TGCCCTTCGTATTTCCTACAGATACTTTAACAGAACTTGGTCCAttttct
-tggggaaaattttagatttatggaaaacttgaaggcagttcagaacgttc
-ccatatactatgcacctacttttcacctaataattattaataggacattt
-taacattcatatacacgtttgttacaattaaagaactggcattggcttgt
-catcttcagctgaagtttttatggtatccagaattccttagttttgtcct
-ttttctttctgagatcccatccaggatcccacgtggtattattagttgtc
-acgtctcctaggacctctcctggccctgacagttgctcagactttccgtg
-ttgttgatgaccctgacagttttgaggagcgaagttgggtattttactaa
-atgaccttcttttggaatctgatgctttccccatgattagaatcgggctg
-tgggtgtttgggaagaagatgccaaagtgaagtgcccttctcatcacatc
-ctatcggggcatccactgtcatgagtgtcacatacttggccttgagcacc
-tgcctggggtcgtgtgggtcaggttcctgccctgtgaggtcgctctttct
-cccatagggtgctccttggaagagcatccctaggtgcagcactcacttat
-ggagtgggggagggacaggccgcctccatgaggacacatccactctactt
-ggattcttcagcgtcggagacatgcgttttctccccatttcgtaatcggt
-tcagtcactctcactgtttatcagtgtggactgatagatgcgtttgtcct
-ttaggctgcgatccagggctgctttatttaccgggttgccaggtatgtta
-gctctggccatgggcgctccccctggcactcgtgggctccgttggcacag
-cccatcagtgactgtgtgttttgagctgttcttcacttcttggcaccacc
-agtgactcctggctcatcctgtctagctcctgtcctagtctcagaaacag
-ccgttaccccagggagtgtgggtttctttcatcacagagtactattagaa
-acctaggtcttggccgggtgtggtggctcacgcctgtcatcgcagcactt
-tgggaggcagaggtgggcggatcacctgagatcaggagttcaagaccggc
-ctggccaacgtggcaaaaccctgtctctactaacaatacaaaaacaaaca
-aacaaaaaaacatcagggtgtggtggcgggcacctgtaatcccagccacc
-tgagaggctgaggcaggagaattgcttgaacccaggaggcagaggtagtg
-gtgagtcaagattgcttcactgcactccagcctgggaaatagagtgagac
-cctgtcttgaaaaaaaaaaaagagagagagagagaaacaaaaaccttggt
-cttggtgtccagcatccttgttgctaatggagtgtcattcattgtttctc
-agccttcttggccgacagagggaggagatgcatgaatgtgtatgacccac
-cagtctattcacagccatgaatacaccgtgtgtaaccaccatatctatgt
-tgaggttaaaggggagttcactcgggcgtctccaactctgatcaccaccc
-cgtggattattctagccccctcccgttgcctgtcggtaaactcccactgc
-aacagtgaggaactggcccccactggccatgcagctcactgttcagttca
-agtatccgcgtatagcactatcgcaatcatgagtctgtcctacgggaagc
-acctttatcaactcatgcacagtgcttacgatcaggtccttttgctttca
-gtcttacagacctcacccctttccagaatcacaccggggagctccttttc
-tccccagctccctcagggaggttatttcacacatttacaacacagatgct
-cctaacgccagataaaagtcctgcctggaatgcccaacctagtaaatgat
-attttagatttgcatagattgaagttcactctttagtggaattgtggggg
-ttttggcaaatgcatgacgctgtgtgttcaccatcacagcatcctacaga
-atagtttctctgccctaaaaataccctgggtccaactattcattcctctt
-tccccgccagaaaccccagcaaccattgatcctttgactttctctgtagt
-tttatcttttccagagtgtcatggagtcggattcatagtgcatgcagccg
-tctcagactgaccttttgccctcagcagtaagcgtttaaggtttccatgt
-gtctcttgtggcttggcagcatcttgttatccccgagtaagattccactt
-atatgaacgtgaccaccttttgtttatccattcacctgttgaaaagtttc
-ttggttgcttccagtttggggtgattttgaataaggcagctataaacatt
-cacacgcagctttctgtgtgggcagaagttttcaaatcgattggctaagt
-acctaggagtgtgattttgggatcgtatggtaagagtatgttctgccttg
-taagacgctgccaagctgtcttccaaagtggctgcattatatcggacccc
-cgccggccgtgaaggagcgttcctgttgtgccatatccttgccagcatta
-ggtattttttgatttttggaattgagccattctgggaggtgtatggccgt
-tacctccttatttcaatttgaagtgtcctgatggcagatgatgttgagca
-acttttcatatgcatatttgccatttttttggtgaagtgttcattcagat
-cctttgcccatgttttaattgggtcgtctgtgctcgtattgttcagctta
-aaggtttccttgtgtgccctccagataacaattcttcatcgcatttgtgt
-ttgcaaataacatctctctgtctgcggtttgtcttttcatcctcttcaca
-gtgtctttgcagagcagatgtttgtaatgttagtaaaatctaatttatca
-aatggttttctttcatagagtatgcatttgatgcttatctaaaagctcat
-cacccaattcaaggctccatagatttttctcctgtgtttatttctacaag
-tttcatattattgtgtttcgtctttaggtctcaggtccactttgaagtgg
-tttttgtgaaagtgtgaggttggcgtttagataccatttttcctttttgc
-ctgtggaccttccagctgctccagccccgtgctgagacctcctgtcctcc
-gtgggattgccGGTCTTGTGGGTTTGTGTGGGCTCCGTGGATGTTGGAAG
-GATGGCCGCGGGGCCCCTTTCCTTCACTGTGGCAGCAGCCCCTCCTGGTG
-ATCCTGCAGCTTCCTCTGTTTCCTGTAATCTGCCGGGATACACACCAAGG
-CCAGAAGACATGATTTCCACTCGGCTTGGCATTGGCACCACGTATGTGTG
-TCTAAAGAAGGTTAAGCAGAAGAAACCTGATAATAGTTGAATTTTTCTGG
-AAGTTCAGTCTTTTCTGTACCATCCTGGACCTCCCAAGTTGGCTCCTCCC
-AAGACAGGAAAGTCTGCAGTAAGAGTCTTGGTACAGTGAAGGATGTGTTG
-TCTCCGTCACTGTCCCCGGAGCCAGCACGTGCCCGGCAGCTGCAGGTCTG
-GGGGTGGCGGGGGAGGCAGCCCCACAGGCGCCGAGGATGGAGAAATGCGT
-CAGCACCCAGAGGGCGCCGCGTGCAGGCTGGGCCAGTGCCAGGGGTCGCG
-ACAGCGCACGCAAAGAGTGCCTGTGATGCTGCTGGTGGTTTTTGTAAATT
-GTGACACAGCCCTGCCCCCCCAGGTAGTTCCATCCCGCTGTGCTTGGAGA
-GCAGGCAGCTGCAGAGAGGCTGAGCAGCTTTCTTAATGGGGGCGAGTAGC
-AGGATGGAAACTGCAGCCTCTGTCGTGGGAGGCCCACGCTGTTGGACCCA
-GCAGCCTCCTTTCTTGGCTCATCCAAAATGAGACACTCACACCCTAGGTG
-CAGCTGAGGCAGGACCCTCTGTGTCTGTCCCTGACCCACGCCTGGGCTGA
-TGTGGAGGCTGCAGGGAGTAAGGGCCTCAGGGCCATGGCCAGGACGAGGG
-GGAGGGAGGCACAGGCCTGGCCTGGGCACTGAGGCTGCCCGTGGAGTCCG
-TGTTAGGCTGACCTCAGCAACACATGCCAGCAAGGACGGGGGGTTGCATA
-TTCTCCAGATGCTCCCAGGTGACCCGGCAGGCAGGTGTGTGCACTTACCT
-TACTCCCACCATCCAGGCGGGGAAATGGAGGCTCAGTGTGGGGGAACCTT
-GCCCGGAGCGGAGGATGCGATCCTGGTCAGGCTGGGACCTGCTGTCTCTG
-CAAGCCAGGCTGGGGTGGGCACAGGACGTGACTCTGCCGGCTCTGTGAGG
-TCTGGCCTGAGGCTCTGGTGGGTCCTTGGGGTTGAGGTGGACTTGGGAGG
-TGACGCAGCTGGCAGGAGGGCTGTTTCAGGGCATTTGGCAGCACAGGCTA
-CCATGTTCCACTTCTCCACAGGCCCAGGCCAGGCGCGTGGGGACATGGGG
-AGGCTGGCTGCTGCCCCACGGGACCCAGCTTGTGGGGGTGTCAGAGGAGC
-CCCTGCCTTGGCACACCCTCCGTGCCAGTCCCAGCCCCTCCTGCTTCCTG
-GTCATCGCCCCCTTTGCCTCTGGAGTGTGGCCTTCTGCCCTCCCCTGCTG
-GGGTCCTGCAGGTTCCAGGCCCAGAAGATCTCTCCTGTTCAGATCATGTC
-GCCGATCACAGCTTCCTCTGCAGGTACCCAGGTGCCCTGTGCCTGGCTTT
-TCTCCCAGGTGGGATGCCAGGTCTGCTAAGGAGGGCATAGACGGGTTTGC
-TCCCTGTGCAGCCCCAGGGGCCTTCGCCACCCCCTCCAGGAGAGGCGATG
-CTTGGACCTGGTGAGCTCCCAGATGTGCTGTTGAGCTGGACGAGCTTGGA
-GAAGCAGAGCTGCCATGCTCTGTGTCCCTCTGGAGCCAGAGACAGGGCAT
-GGCTGCCCCCGGGAGGATTTTAGGCCCCTTCGTAGGGTGTTTCTCCTTAA
-GACAAATAGCCACTGCTGCAAACAGCTCCGCGGCCACCAACAGTTATGGG
-AAGTATCAGACACATCGGCGTGTTTGCCAATCCTTACGTGTGCCAGCCTC
-CTGCAAGGTGGAAGGTGTCAAGTTAATTAGGAGATGGCACCTGGGGCTGT
-GGGTGGGGGCTGGGAGCTCAGGCGTGCAGTGTGACCAAGAAGTGCAGAGC
-CGGGCGCCGTTTCCCTTAGACCTGAGTAAAGAGGAGAGGAGTAAAGAGGA
-GTGTGAGGGCCACAGCACACTCGCAGCTGCCGGGCAGAGGGGAAGCCCTG
-GCCCCTCCGCAGGCCCTGCCGGCGGCCTCCTGAAGGAAGGGACCCACCAG
-ACGGGTGCTCTGGGGCCCCAGCGGCTCCCCTCGAGGTGGACTCCACTTCA
-GCAATGCTTGCTTGAGGGCTGGGCCTGCTGGGGTTCTCTGCTTCAGCCCC
-ATCTAGGCCCTCCCACCCTCAGGGCCTGGCCCTGGGCTGACTCTCCCCTG
-CTTGCTCAGCTCACACGCCCTCTCCCAGGCCTCCCATCCTCCGGCTCAGG
-AAGGACAGAGGCGGAACAACCCAGCGGCCCCTCCTCGTCCTGGCCTCGGC
-ACCCCGGGGCTTTGGGAATGAGGCACTGTGGAGCACAGCTGAGCCCGTAG
-CTCTGCCTCCAGGCCCCCCTCCGGATGCCCCACAGTCCACAGCTCCCTGG
-GCCCCAACCCTCGCTGCTGCTGGCTTTGCTAAGTCCACCTCCTTCCTGTG
-TCCCCTGTGCCTAGAAACGGTCTGAAAGGCACATGCATCCTCTTAAGATT
-GGGGTGGGCACATGTTTTAAATACTGGGGAGTCACAGGTTGGGTCACACT
-GCATGGtctccactagagatggttttgcccctcaggggacatttgatgat
-gtctggggacagctgtggttgttccaacgtgggATGCATGGGACAGTCCC
-CAGCACAGAGACCCAACTCTATGTCCACATCACCACTGCAGGAAACCCTG
-GGATGCTTGGGACGGTCCCTAGCACAGAGTCCCAGCTCTGTGTCCACATC
-GCCTCTGCAGGAAACCCTGGATCACAGCCCCCTGGATGGGAGAGGGCAGA
-TGCCACCCGGCAACGCCGAGTGTCCTCCCGGCAGAGGAGTGCGGGCACCT
-GGGAAATTGGAGCTGAGCTGGGGTCACGTGCTTTAAAACCTCTTGGGCTC
-CAGTGTTGGCTGGGGAGCCCCAGATGTCCAGGGATCCCTGGGTCACCCTG
-TAAGCTGCATAGAGAGCCAGCCCAGAGAAGCCAATCCCAGCCTGGGAGGA
-ACTGACCTGACTGGGGTCGGGGCGGGGGACGAGCAGGTGGAGTGGGAGGC
-TGCGAATTCTAGATTCTCTAAATAGGGTGCTCTGCTTGCAGAACGGGGGC
-GGGGGATGAGCAGGTGGAGTGGGAGGCTGCAAATTCCAGATTCTCTAAAT
-AGGGGGCTCTGCTTGCAGAACGCTGCTGGGCATCTCTGGTTGGAGGCGAG
-CTCGCTGAATGACGTGTCCCCTGTTTGCCCCAAGTTACTCCCTGACCCTG
-GCACTGACCAGCACATGATGCCTTGTGGGTGGGGTGGGGAAATTCTGAGA
-GGGGCAGGCGCCCAGAGCTGGTGACAGGCACAGAGAAAAGGAGGCTTGCT
-CCACTGCTGCCTCGGCCCTGGCTTTGGGGCGTGCGTGGCCTTTATTCATT
-GCCTTTGTTGAGTCGTCAGCGGCGTGTGATGACCAGGTGTGCGCTGTTGT
-GTCCACAACTTTCCAGCCTCGCTCGGGCCCAGGGCAGGTGGCCACGCCTT
-CTTACTACACAGGTTCACGGGATAATTGGTGGGGCCAGGTGGACCCAGTG
-AGGCGCTAATGATGGAAGTCTGTGCAGTGAGTGCCGCTTCCAGAACAATG
-ACAGCGTCCACGTCTTCACCGCCCTCCATCAGGGGCCGCCTAGAAGCCAC
-ACAGGCTGCAGGGCTGGCTACCGGGGCCCTGAATCACGGGGGCGATGAGC
-CCCAGGCTCCAGGCGCTGGGGAAGGAAGCTGGGCACTCGGCTGTGGGGCT
-TTTGTTTCTACCTGAAACCAGCCAGCCAGGCCCCCCGAGGAAAAGCAAAG
-TGAGCCCAAATCTGCCCCCTATACCCAGATACCCAGTGTCCCAGGGGCAC
-CTGCATGGGGGGAGCCCGGCGTGCGTGCTGGCTCTGGGATGCAAGGCCCA
-GGGTCACCGAGGACAGGGGAACTCGGCGTGTCCTGCAGCCAGGGGCCGGC
-GCTCTGGAATGCAGCGTGGAGTCCCTGCAGGAACGTTCTGGAGGGGGTGT
-GGCTCCCCGCCCTGTCCTTTCTAAGGACGGACCTCCTGGGCCAGGCAGAG
-GCAGAGCTCCTTCGGCTCACCCACTCGGGACGGTCAGGGGACCGGGGCTG
-GGATGACCTGCCATCTGCTGGGAGAGGCAGGGGGCCCTTGGTGTGCTCCG
-GGGTCTTGGCCCCTCTGCCAGGCCAGGCCAGGGTGAAGTGGGCAACCTCA
-GGCTCCCCTGGCAGGAGCTGCAGCCCACCCAGGTGAGCGGTCCCTGGTGG
-GCAGCCCCACCCAGCCACATGCCTTCCATGAGGGCCACGCTGGACACACG
-CCTGCCCGGCCTTTCCAGCAGGGACTGACGTAGACAGGCCTCTGCCTGGA
-AGGGTTCCCTTGGTGTCCTGGTGCCCCGGCACCGGTGCGGCCCATGCAGG
-CGCTGAGTGGCTCGCGTGGATATTCCCTGCCAGGCGGCAGCATCCTCACG
-ACTGCTGTGAGTGTCCCCAGGTCTCCAGCTGTGCAGTGTGAGGGAGCTCT
-TGGACCAGAGCCCCTGCTGCCTCATTACCCAGATGCACAGCCCCGGCGTC
-ACACCGGCCTCCCGAGCCCCGTGTTAACTGCAGAAGAAATTAGCCAGACT
-CAGGCGCTGGGAGCAGGTAATTAGTTGCTCTTGCCCGACCACAGCTTCGT
-GGCTGGATCTCACGTTGAGAGGACTTAGGGGGAAATCTGACGCCCTCCAG
-GTTTCCTGACATTTGCTAGACATCGCGGAATGTAAAGGGTCTGCGTGGCC
-GTGTGGGAAGGACAGCAGGGGGCCTAGGGGGCAGCTGGGATGCGGCCTGG
-TCTAAAGGCAACTTCTCAGCTCCTGGCTGTGAACGGGCGATGGGACCCCT
-GAGCCCCAGCCCCTGTAAAATGCAGACATGCGTGCCCACCTCCCAGGCAG
-TACGGGTGGCAGGGGTCCAGCCAGACACACGGCTCGGTACAGGGCCTGCA
-ATCCTGTGTTCCTTCATCACGTTGTCACTGAGTGTCATGTGAAAACCAGG
-AATCCACATTCTCCAGGGCCTAGGCCGGACGTGGTCTTCCTAAAGGTCAT
-CTCCTACCTGGGAGTTGGGAGCGGCTGGGGTGCAGGTGTTTCCTGTGGGC
-CCAGGGAGACCCCACACATGCAGCTTCCCGGCCACCGTCCTCAACCCTTA
-CCGCCACGGGCCCTGCCTGCCTCCCACCTACCATGGGCCTGCCTGGTGTG
-GGTTGAGGCTTTTCTGATCCAGTCCAGAGACGGACGGGTGTTAATCCCGC
-GGGGTGATTTTACACAGTGAGAAACCCAGTCCAGAGGCAGATGGGTGTTA
-ATCCCACAGGGCAGTCTTATAGAGTAAGAAACCAAGGCCACTGTCCTTGC
-TTTGCCCCGACCCCTTTGGTGCCAAGTTTTGGGGTGGGGTCCAGAGTTAC
-ACCCTGAGGTCCACCCTGAAGCCCACTGCGCTGCTGCCTGGCCAGGCTGG
-GACCTGGATCTCTGAGCTCGGTGCCTGCCACCCTTGCGGGGATACTAGGG
-TGAAACAAGACGCACAGAACGTGCCGGGCCCTGGAGAGGCTGTGAGCACC
-CTGGGTGTTGAAGGGTCCCCTTGGCTGGGGAAGCCCCCTCTGGAGGCCGT
-TCTCTGTGTTGGGCATTGAAGGGCCCTGGCCCTGGGAGGTTTTTCAGTCA
-TGGATGCCTTGGGACCTGGCTGCGGAGGCCCTGACCCCTCCTGACGGGGA
-GCAGCAGAGGCTGGAGGCCTCCTCGTCATCCCTGCAGAGAGAATTGAAGG
-CTCCAGGGCGGAGTCTCTGCAGCCCCAGGCGGAGGCTGGGCTGGAGTGAG
-GTCACTGCTTGGCCTGCAGAGTTGGTGGCAGGCATAGACTACAACACTAG
-AGACCCCATGGGCCTGCAGCATCCTCAGTTCCACTAGACGGCTGCAGGCG
-TGCACTTCCTGGGGCTGAGAATGGTGCTCACAGCCGTCCTCAGTCCTGGC
-CCCTGGCGCCCTGTGGGACAGGAGTTTGGCGAGGATGAGTGAGGGTGGGG
-CCAGGCCCCATGGAGGCAATTCCCAGGGGCTCCCAGGGGCTGGACCACAG
-GGTCTCCCAGCAGCCCGAAGAGCCAGGCCGCCCCCACTGGGCAGCAAGGA
-GGAGGCTGGGCCTCCTGGAGGACTCCAGAGCCGACCTGAACCCCACGACC
-TTTGCGGGGAATGAACCAGTGAAGGGATGAGGAGGGCACGAATGTCATCT
-GCCCACCACGGCAGGGAGAGTGTTCCAGCATGGCTGTGGCCTGGGAGACT
-GGGCAGGTGGTCGTTGCACAGATATTCCTGAATGTTGGAGAGAGGGGGCC
-AGCGGGCAGGAGCATGGGTGTGTTTGTGGAATGTTCTTGAAACAATACAG
-CTTATCTTCAGCGGGGCTCACCACCCACGTGCAGGGGCTCTTCTCTCTTC
-CCCACCTCCCTCTCTCTCGAGCTCCCTGCTTTGCTCTGtgtctgtctgtc
-tgtctgtctgtctgtctgtctgtctgtctgtctctccctctctctctctc
-tctctccatctctccatgctttgctctgtatctctctcttttccctctct
-ctGCATCTTTCTTGGTGCAAATTCCTCCTGAACGGAGCCAAGAAGGGAGG
-CTTCTCTAGGGAGGGATTGGTGGGGGCGGCTGGGGGTGGCAGTGGGTCCT
-GGTGCTTCTGTTGTCGTGACCATGTGAGTGCGTTTGTTTAAATGACTTGT
-GGAAAGTTACATATTAAGTCATCTTTAGTTAAAGTGAAGATGAGGATATG
-GGAGGAAGCCAGAACGTGGAAACGGTGAAATACTGAGAAATTGAATGTTC
-ATTTATAGTGTTGATTTGATTTCTCAGGGATGTGTGTGCCACTGTGTTTA
-TTTCTCACAATCGTGGGTGAGAAACAGCTCCCTAGGGCCTGGGCGAGGCC
-CCCACGCTTTCCAGGGGGCAGCTTGTCACTCAGAGGGCCTGGGGTCACAG
-GGCCTGTTGACGGTGCACTGCCCCCACTGCCCTCAGCTGCCCGGTGCACA
-GACTCAGCAGGCGAGAAGTCATGGCCAGAGGAGAGTCTCTGTCCCTTTCC
-TTGACGTtcactcactcgctcactcactcactcactcactcatttattca
-ctcacttattcaatcatttactcattcacccactcatcactcacccatca
-ctcactcattgactaactcacttattcactcattcactcacttattcaat
-catttactcattcactcatcactcactcatcactcattcgttaactcact
-tattcactcatttattcactcacttattcaatcattcactcattcaccca
-ctcatcactcattcattaactcacttattcagtcacgcactcatttattc
-actcattcactcctttactcattcactcactcattcattaactcatttag
-tcactcactcattcactcaatcactcaatcactccttgactcctttactc
-atttactcattcactcattcacttattcacacattcaatcattcactcag
-tcattcactgatttactcagtcactgattcacccactcagtcactgattc
-acccactcacccactcattgacacactcggtcatttactcagtcattcac
-tcactcactcactcactgagtcactcagtcaatcactcagtcagtcattc
-attcattcaccctctcattcatctactcattcactctctcactcattcat
-tcactcagtcactcagccactcatttagtcactcactcattcactgtctc
-atgcactcacGCAATCCTTCCTTCATCTGCCTTTTGCCAGTCATTCATGA
-AGTGCAGCCCTTGTTGGGCTTGGGGACAGGAAGGAGCCAGCCCATGGGGC
-ATCTGGGAGGAGCTTGCTGCACTCTTTGGTTTGTGTCCACACCAAAGAGG
-AAAAGCAAGTCTGGCCCAAAGCAGGGTCCCAGGGAGCCATTTTCCTGAGG
-TAGGGGGGATCCTCTGTCCTGGTCAGGGAGGTGCCCGGGCAGCAGCCCCT
-ACTCCACCATCCTGCCCGGGCTGTTCTGGGCCTGGGGCCTGGGGACGGAG
-AACGCAGAGCACAGCCGGCCTTGTTCCCGTTGTGGCCTGTTGCATGCAAA
-CAGAGCTCCGTCCACCTAGCACCAGCTGGGGCCAGAGAGCAGGGCCAGCC
-TGTCCCAAGCCAGCCAGGGCTGGGTCTGAGAGGTTGACGTGTGCTCGGGC
-AGCACAGTGGGCAGGCGTAGCTGGTGGAGGGCACAGCTGCGAGAAGCAGA
-GGCCAGGGGCCTGGGGGCAGGCAGCCCCTGAGGCTGGTAGAGGCCTGGGA
-GGAGCTAGGGCTTCCCAGTCTTCTTCAGGGCAAGCACAGGCTGACCTCCA
-GCCACTCTGCCTTCCTGGCCGCCTCTAGCAACCGTCTCCCAGTCCCTACC
-CAGGGGGCCCAGAACCTTCCAGCAGCAGCTCCTCCTCCGTGAGGGTGTCT
-GTCTTCCCAGGCGTCACTGCGCAGCGCATTTCAGGGGCTCTTGAGCAGCC
-CCTGCGTGTCTGTCTGGAGCCCTCCATCCCAGCTAAGGGGGGCAGAGTCC
-CACCAGCACTCCCCCTTTCCTGGGCATTGCACCCATGCTCAGTCCTGGCC
-TGGTTCCTCCTGTGTCTGCAGGACATATTCCCAGGCCTCTGCAGGTGCAG
-CCTGGGGACCTGCGAGAGAAGGAAGGGGTTTCTGGGGGTGGCACTGGGCG
-TTTTTGATTCAGTGTCCCTGAGGAGCCAGTGCAGGGAGCTGAACCACAGA
-CGCTCTGGCTTGGGTCCTGGGGGCTGAGCAGCCCCAGTCATTGTTGTAAT
-CGCAGCCATTGTTGCTTTTTTATTTGTAGTGTCATCTTCTCCACCTGCTT
-CTGTCGGATTTCACAGGTGGCTCTTGGCACACTTGGCCCAGGCAGAGCTT
-GGGAGGAGCTGTGGGTCCAGGGCGCCTTCCTCCTCCCTCCCAGCCACCCA
-CACACTTCCTGTGGGCCCTGCCCACGTTTGCAGGTGCACAGGCAGTGGCC
-AGACGGCCAGGCCGCAGGCAGTTGCTCCCGGCAGTGGTGGGAGCCAGCTG
-AAGATTCCAGAAGGGCCATGGGAGGGGCTGGCCAGTGGGGACACAGGGAG
-GTGTTGCCGTCAGCTGGCCAGGTCGCTTCAGTTGATGTTTTCCTGAGATC
-GTTGACTTTGCTAGCAACACCAACATTATATTTCACAACTATGTGAGTGA
-GGGCAGCCTGGGCCCGACGCTGGCTGTTCCGTGGGGGAACCGGGCTTCCA
-TGATCTCCTCGCACACATATAATTGCTTCTGTTGAAGTCAGACTGTGATG
-GAGGAGTTGATTCTGGGATTTAATAACAAACTTGATTTCACTGTAACTTA
-AATATTGAGACTATGATACTCCATCAGATCTTAAAGAATGCATTTTCTGT
-GTTTTTAATCCTCATACTAAGTGTCTGTACAATCAGCGATAAGACTAAAC
-ATTAGGCACTTAACTTATGAGTCAGAGCAGAGCTACCTGTGTGGGTCGCT
-CCGAGTGGAGGTGAGGTCTTCTGTTGTGGGCCTGTGTGGATCGCTCCGAG
-TGGAGGTGAGGCCTTCTGTTGTGGGGAGACGCTCCCTGGAAATTGCTGTT
-CTGTCCTTGATGGTGCCCCCACTTGTGGCAGGTCCCTGCTGCCTCCGAAC
-CCCAGGAGCCCCCAGGGCTGCTGCTGTGAAGCCTGGAGATGGCTGGGCCT
-GAGGCCTGCAGCTTGGGGCAGAGCTAGTGTGGGTGTGGGCTGGTGCCCTG
-GCTGAGCAGGAGTCTGGCATCTTATTCCAGGAGTGACAGGATGGGGCAGC
-TGTGCCCAAGGAGGACAGCCTCAGTGTAGGGCAGAGTGTAGTCCAGCTGG
-ACGGGACAGGCGCGGGGCCCTGGGAGGCTGAGGCCAGGGCTCTGGACCCT
-CCTGGCCCCTGCCCCAAGGTATGGGCAGTAGGGGCCCAAGTGAGCAAAGC
-CGGGCTTGCCAGATGATGTGCCTGGCCAGCTGCAGGGGCCCTGGCTCGGG
-GCTTCTGGGAGAGTGGAAGGGAGGTGTCTGCAGGTGAGCAGCCTTTCCGA
-GTCACTGGCTCTGCCCCAACACCTGCTTTGTCAGGGTACAGACACCTGTA
-TGGTGGGCAGGGCTGGGGATGCCTGTGGGGGCCTCTTGAACAGGGCCGTG
-GCTCCTGGTGCGTGCCTGTGTGTAAGGATCTGTGTGCATGCGTGTACCTC
-ACTAAATGAGTGTGGCGTAGGGGTGCATGTGTGCCTGTGAGGAGTGTGAG
-CTCATGGTGGcatgtgcacacatgtgcacacatgtgcCCATGGCAGGAAG
-CCTGGTGTGGCTGGTCTCCGCCCCGGAGCTCTGATGTCTCAGTTCGAAAG
-CGGTTCCTGCTAACGCCTCCTCGCCTGTCTGCCCTTCTCACCTTGTCTCT
-TGGCCTCGGTCCACACTGGCTGGCTAGTTTCACCCAAAATAAAAGCGGTA
-ATAATAGTAACATCCTAATTGATGTGCGGAGCCAGCGTTATCGGCAGCAA
-AGTGCCTTTACCCCTGTGGTCATGAGGCGGCCTTGCCAGCCTGAGCTCTG
-CCGTTATCCCTGCTGGTCTCGTATCTGTAATGAAATCCCGCACCCTCGCT
-CAGGTGTGTGGTTTGTGTGTTTCGGGTGTGCGCATCTGTGTGTGCACGTG
-TGGGGCATGTGGTGTGTCTGGGACGAGGCAGAGTAGAACTCACAGCCTCT
-GTCCAGCCCAAACCATCGACGTCCCCAACACTTTCACAGCCACTCCCGCC
-CACCGAGCACAGCCGAGCCATTTCCCACACCCGCAGAAACTCTCCTTGAG
-GCCTTTCTCCTTCCGGTTTATGAATAGGTCTTCTCCTGTGTAAAGCCTTG
-AAAACAGAGCCGAGCACAGATTTGGGACCTGGGATCCTGAGGCTGTCCTG
-CCCGGGGGTCACTGCAGAGGGAGTCTTGTCCTTCTAAACTGACAAGACAG
-TCGCTGAGGACATAGTGCAAGGGGCGGCCAGGGTATTAGAAACCACACAC
-CTTGAGATTCTCAGTGGCGAAGAGCACTCACCTGCGGGTATCGGGGGCTC
-AGGGAACACACAGGTGTGTCCTGTCACCACGTCCTGGCAGTGCCAGTCCA
-GTTGCTGGCGTTGCTCACAACTTCGTCCTTGAGAGCCACTCCTACAAGGC
-AAATGACTGGTCACAGGGTACACGTGTCTTAGACCCCCGACACTAAGCCC
-TGGGTCACCACACACAGGCAATACCCCTCCCCTGACACTAAGCCACACAT
-AGGCAACAACCCCCCCCACACACTAAGCCCTGGGCCACACACAGGCAATA
-CCACCCCCCCCCCGACACTAAGCCCTGGGACACCGCACACAGGGGGGACC
-CCGACACTAAGCCCTGGGACACCGCACACAGGCAGCACCCCTCCCCCGAC
-ACTAAGCCCTGGGTCACCGCACACAGGGGGGACCCCAACACTAAGCCCTG
-GGACACCACACACAGGGGGGACCCCAACACTAAGCCCTGGGACACCACAC
-ACAGGCGGGACCCCGACACTAAGCCCTGGGTCACCACACACAGGCAATAC
-CCCTCCCCTGACACTAAGCCACACATAGGCAACAACCCCCCCCACACACT
-AAGCCCTGGGCCACACACAGGCAATACCACCCCCCTGGACACTAAGCCCT
-GGGACACTGCACACAGGGGGGACCCCGACACTAAGCCCTGGGACACCACA
-CACAGGCGGGACCCCCCCCATCCCCCGACACTAAGCCCTGGGTCACCGCA
-CACAGGGGGGACCCCGACACTAAGCCCTGGGACACCGCACACAGGCGGGA
-CCCCGACACTAAGCCCTGGGACACCGCACACAGGCGGGACCCCCCCCCAT
-CCCCCGACACTAAGCCCTGGGTCACCGCACACGGGGGGACCCCGACACTA
-AGCCCTGGGACACCACACACAGGGGGGACCCCGACACTAAGCCCTGGGAC
-ACCGCACACAGGCGGGACCCCGACACTAAGCCCAGCTCTTCTTCTGGCCT
-CACTTCCTCCCAGGCCCCAGCTCAGAGATGGTGCCCATGCAGGTGGGCAG
-GACAGGCTGAGGACACCCCATTGCCCCACCCGTCACTTGGACACAGGCTG
-GTGTGTGAGCACTCCCTACGGGAACTCTGGGCGGCCCCACGGCGCCTCCT
-TTTCTCCCCGTTGGGGACCTGCCCCCGGGCCCCACCTTCCCAGTGGCACT
-GTGGGTCACCTCGGGCCGCCCCCTGCCCTCAGGCCTGCGGGGCCCCTCAG
-CTGCACCTTGtttttggtctgaccaagcacagagctgacattcgtgaatg
-gtaaatgccaccctcttggtctgtgcctgtcaaagtcattttggatattc
-atcctgtcatccgtcacatcagacatcctcccagatctgtgtcaCAGCCT
-GGCAGGATCACACGGTTTGTGGGTCTGCGCCCCACGGGTGGCAGGAGCTG
-CTCCAGAGGGCCCAGGCTGAGCTCCAGACACCCTGAGGGCCTGTTTCCCG
-CCAGGGAGGCCCCAGCCCTGGCCCCTGAGTGGCTCCCTTTGTCACACCTC
-CTGGAGCCTGGGCCTGATCTATGCCCACCTGAAGCCACATGCAGGTGCCC
-CCACTGCCCCACCAGCCCCCGCCTAGCACCTGGAAGAAGGGGGTACCGCT
-TGTCTCCCTGGGTCCAGCCATCTCCCCTGTCAAAACTTGGCTCACTTATA
-AAAACAGAGTGGCTGGACTTGGACCTGTACCCACCTCTACTCAGTCCACA
-GCATCCTTCCTGCCATCACCTGCCGGGGTCCTGGAGAGCCAGCAGTCCCC
-AGGGTCTGGGCAGGGCTCTGGGAATTTTGCCGGATGCTTTCTCCATTGCT
-CTCCCCCTCATCCACAGGCCCCAAATCGTGACCGCACCCCCCCAACCCCG
-CCGCCCAAGGCCTGTGGCATCAGCTCTGTGAGCTGTTTCTGTAAAGTTTG
-TAGGAACCCAGGTGATGATGGTGCTAGCCTGGGTGGGTTGTGGAGGGCGT
-GCTGCAGCCCCTGAACCCAGTCCAGCCCCTGCCTCGCTGTGCCAGTGCAG
-CAGATGGGGCCGGCGCCAGGCTCTTCGGCTCTTTGGCTCTGCAGGCCTTA
-GGCTCCTGGAGGCCACCAGACCACTCCTCAGTTCCTGTCCTGGGACGGTG
-GAGGCTAGATCTGGCCCTCAGCAGGGCTCCCAGGCAGGTCTACCATGCAG
-CTCTGCTGGAGGGTGGAGGGTCCCACGCTGCGTGGGAGCTCAGAGCTGGC
-GTCTGAGTGGGCATGGGGGCATGCCAGCACCCACCGCCCCCTGCATGCCG
-ATGAGGGACATGAATGGGCCCACGGCCTGCGGAAGCTCCTCCAGCCTGTG
-CGCCCAGTGCAGACACAGCCTGGGCTCCCTTGGCAACCAAGGCTGGCTTA
-TCTCAGCTGTCACGGGGAGTGTGCTTCTAAGGGGGGGCTTCCCCTGGGAC
-GTGGTCTCCCTTTTTGGCTTAGACACAGCCAgctgggtgggcagggcagg
-gcagggctgggctgggctgTGGGTGATGAGAGGCGTTTACCCCGGGGCCA
-TTTCTTGCAGAGGCTGGGCGGGGGCTCCTAAGTGTGCAAGCTCCCCCAGC
-CACATGGCGCACAGATGGTGCCCGGCTCACACCTGGCTCTGCCTGTCAGG
-GGTCTTCTCTGTATGGCAAGGAGCTAGGCTGCGTCCCTGTTTCAGAGGCC
-AGGGGACTCTGAATTAGGAAGTGAGTGGTCTGCCCAGGCTCCCCAGTTGG
-GGAGGTGTTGGTGGGGGTCTGCCCTATGGGACAACTTCTGTCTGAAGCTG
-AGACCGTGGGGGCACCGTGGCCCTTGTTGGGGCAGTGAGAACAGTGGGGG
-GCTGTTGGTGGGGGTCTGCCCTACGGGACAGCTTCTGTCTGAAGCTGAGA
-CCGTGGGGGCACCGTGGCCCTTGTTGGGGCAGTGAGAACAGTGGGGGGCT
-GTTGGTGGGGGTCTGCCCTACGGGACAGCTTCTGCCTGAAGCTGAGACCG
-TGGGGGCACCGTGGCCCTTGTTGGGGCAGTGAGAACAGTGGGGGGCTGTT
-GGTGGGGGTCTGCCCTATGGGACAGCTTCTGCCTGAAGCTGAGACCGTGG
-GGGCACCGTGGCCCCCCTGCCAGGGCAGTGGGAACAGTGGTCCGTGGTCT
-CTGGTGGTTCCCTGCTGCCTTAGAATGTGCCAGGTGGCCACATTCTTTCC
-ACAGAAGGGGGTCTCTGTGAAATGATGCGTGACAAACACCACCTATGGAA
-AGGAGGTTTCATATGATCAACCCATATGCAGCCCGACAGAAAGTCAAATT
-TGGGGATGTGTTCCGGGAGGGGCTGGTCCTGGGGGCTGGAGGGGTGGATT
-CTTTATTTTTTAAAATCTCTCTCTCTGACTTCCGATTTTTGCCACACGAT
-GATGTCACTGCCTTTCTAAGAAAACTCCCCCAAAGGCAGCTTTGTTCTTT
-TCCATTCTGATGGTGGCTGcccctccccactgcactccctcccctcgcac
-acgatgccctccccttccccctgcacgccctcccctccaccccacacgcc
-ctccgctcgcacacaacaccctcccttcccccccgcacaccctcccctcA
-CACACGATGCCGTCCCCTCGCACACGCGTGTGCACACGGCCTCGCTAACT
-GGGAGCCCTCGGAGGCCCCCGGTCCAGGCCAACCCAGCGGAAAGTCGGTG
-GGGGGACCTGCAAGGTCCCATGTCCTCTCAGCAGAGGCCACTCCCCAAGC
-ACTCGGCCTGGGCTTTGTGGGAGTTGGCACTGGAGAAGGAATTGTGATTA
-CTTGCTTTATTTTTGAATGTTTTTCCTTCTGGTCTTAAAAGCAATGCAAA
-CTCCTTATTTAAAAACAAAAAAAGATGAGAGAAAAGACAGAAACACCATC
-CCCTATCTCCAAGAAAAGGCCGGCGCCGTGGGTAGACCAGCAGCACGCTG
-AGGGGGGCAGCCTGCTGGCATCGTGGGTGGACCAGCAGCATGCTGAGGGG
-GGCAGCCTGGTGGAGGGGCCTGCACTTTTCTGAGGGGGGCAGCCTGGTGA
-AGGGGCCTGTGCTTTGCTGAGTGGGGCAGCCCTGTGAAGGGGCCTGTGCT
-TTGCTGCGTGGGGCAGCCTGGTGGAGCGGCCTGCGCTTTGCTGAGGGTGC
-CAAGCCCTGTGGGGAGGCCTCGCCACTGTCCCAGCCCTGCCAGAGCCCCA
-GGGGACCCCAGAACCTCCCAAATGGCCTCCTTCCAGAAGTTGGGCAGGTG
-CAAAGGGGCGGCCCAGGGGTCCGGGTCTACCCTGTACCTCCAGACAGCAG
-GGACACCTCCAGGCTATCATGCCCCACAGGCAGCCCTGGTGCGGCCTCCA
-CAGCTCCTGACTCCTGGTGGGCCCGCCCTCCCTTCTGAACCCCCCTTTCT
-GAGAATGAGGCGATTTTGGAGCTCGTGAGCAGAGGGGCGGTCAGCACTGG
-ATGGCAGCCAAGCATCACCCAGCACTCGGAGCCGGACCACTGAGGACCCT
-GTCCCTGCAGCCTGGAGACCAGGCCGGCCTGGACCCCTCCCCAAAGGCCT
-CACAGTGGGCAGAGATTGGGgtgtgtgggagtgtacatgccgtgtgtgtg
-actgtgtggtctgtgtgtgtggagtatgtggtgtgtgGCCTGCGTGGTCT
-TTCTGTGTGATATATGCTGACCCAtgtgtgtgggttgtgtgtgggcacgt
-gtttggtcagtgtgtggtatgtacattcacatgtggggggtgtgtttggt
-ctgtgtgtgcacgtgtgtggtgtgtgtgcatgcacacgtgtgtgtgagtc
-ctgtgtgGTACACAGGGGGAACAGCTGTGGGAGAGCCAGGGAGCTCCACT
-CTAGAGCTCCACACACCCTGGCTCTTGGCTGCCCTGGCCCTGTCAGTAGT
-CCCAGAAGGAGGTTTTGGGGCCACTCAGGTATTGGGCTAAGTGTTCTCAT
-TTGGGGAATGGGACCCTGGGGTTGGGGTGAGTCCTGGGCCAGCCCCTGGC
-CTGGCAGAGCCCATCCCTGCCTTTGCATCTGCTGCAGGCTCCAGGCATCC
-ACCTGCTGGGGCTGAGCTGGGGGTCGCGACAGCCCAGAAAGACTGAGAGG
-CACTGCAACCCGGCTGCCATGTGGATCTCAGATGCACGGCCTCCAGCGCC
-ATGGGATAAGAACGTGTACCGTTCAGGCTGCCCGGTGCGTGGCTCGCTGT
-GGCGATCTGTTACGCAGGAAGCTCCTGCAAGGCCCTGATGCCTCCTCTGG
-GAAGCTTCCCAGTGGCCGCAGGGCAGAGGTGTAGGGGTGGCCTTGTTTCA
-GGGCTCAGCACCGTCTCGTCCATGGAGTTTGGTTCGAATTGTGTCCCTGA
-GGGCTGAGAGTGTTCGGTTGGCCGTGGCTGGTTTGGGGACCGCCTGGGTG
-AGGGTGACCTGGGATTGGAGACCCTCCAGTGTGCACTTTGGTGTGGCCCT
-GCCCAGTGCGTGGCACCTGTGCCCCTTACAGAGGAGGAGTCCAGCTAGGA
-GGGACAACAGCTTGCCCAGGGGCTGGCCATGCCAAAGCCCTGGCCGGTCG
-GGTAGCACCTGAGGGGTGTGCTGTGTGGTTGGCGGCTTAGTGACTAGGCT
-CAGCAGCAGGGCTAGCAGGCTTTCTCAGGCTCAGCAGTACCCCAGCACTG
-CTGTGGCCATCTCCCCATGGCACCAGCTACTGTAGGTGGATGACTCCAGA
-GCTGCCCCATTTTGGGCCCTGCCCCAAGGAGGCAGCTGGCCCTGGGGTGG
-CCTGGACACCATGAGTCTCTGCTGGGGCTGATGTCAGAGGGAAGGGTCTG
-GGGTCAAGGTGGCGGCAACGCAGCCTGGAATAGTGGAGTGGCCCAGAGCC
-AACCTGCAGAGCTTAACACAGCAGCTGGGGACCATCCTCAGATCACAGTG
-ACTTTCCTTCTGCGTAAATCACAACGTAAGAACGTGTGCTCGGGACCCGT
-CCAGATGCGTGTTGCCCCACAGCATGGCTTTGACGCAGTAACCGCTGTTA
-TCCAGAGAGAAGCAGCACCTCATCCTCCCGGATGCTCTTTCCTCGTGGTA
-TTTATTCATCCACTTCTTCTCTTGCTCATTTGGTGTCGCCCTTTTCTGGG
-AGCAGTGTGTAATTTTGTGTGCAATTTGGTAGTGGAAGTCCAAGTTCCCG
-CCCCACAGCCTTCGGGGAGGGGGCCCCGAGCGGGGGACCAGGGTTTTGCT
-CATCGTGGGAGGGGCTTGCTGGTGGGGTTGGTTCATAGTCCCAGGGGAGG
-CCCCTGCTGCCCCAGCATCCTTCCTGTGAACTTATGCCACCCCCTCCCCG
-CAGCCACGCACCAGCCATGACTCAGCAGGCCCTTATGCACTGGGCTCTGC
-AGCCTGGCCTGGGGCACCTTGGACAGCTCCATGCCCTGCACCATGGGCAG
-AAGGAGCTGGGGCAGGCCGGTCTGGTGCCCACTAGAGTCATCCAGTGCCT
-CCTGGTCACAATCAGACACGGGCACTCCCCAGGGTTGAGGACAGTCTGAG
-CCGTGTTGGGTGTTGGGATGAGAGAGCTGGGCGGCCTCTCCAAGTTCCTC
-CAAGCCGCACCCTGCCAGCACATGTGATGTCTGCCCTGGCCAGGGTGCTG
-GGCTGGGGGACCCAGAGGTGACAGGTGACAAGGCAGGTGCCAGAGGAGGG
-GCCGTCTAAGGTTATCATAGGAGAAAAAGTGGGATGGATAAGGAAGGGCA
-CCCAGGCTGTAGaaacggctgctggagagcacccgggcattgcctgcagg
-ttcctctctgcaagggtgggatggccacccttcGTCCCTCACGCACCCAC
-CACGGCTTTCCTCGGAGTCACCTCCCTGCCATCCTGTTGTCCTGAGCCCC
-CCAGGCAGCCCGCAGACTCTCTGCTGATCCCCACAGGCTGGGAGCCCTGA
-GTCCGTGCATCTCTGATGCTGCGGCCATCTCCCCCAGCTGGAAGGGGCCC
-CTGGGGAGGACACCAAATTCTTTTCTAACCGCCGTGGCCCCAGGGCCCTG
-CACAGAGGAGGGCTTGCAGCAGGCACTCATTACCTACTCAGATGAAGGAG
-TGAGGCAGCGAGTAAGTAGACATCCAGGTGGTTCCAGGGAGCAGGTGCCC
-ATGTGGAGCTGGATGGCAGGGGACCTGGCACTCACCGTTCAGGGCAGATT
-TGGGCAGCACTGGCTGAGGGACAAGCTCCATCCTGCCCTGGGGATGCTGG
-GTTTTCATCTTCACCTGGAGCACGGGCACTGTCTTTATTTGTCAGTGTTA
-ATATTTGGCTGTGATTGGTGGTGGCCATGCTGCGTTTTACCAGCAGAGTG
-GTATCTTAAATTCCATGGGTTTATTTGCAGGGTAGAACTTCCTGGCTGTT
-CATCTTCCCGCACCTGAGATGCCTGGGCTGTCGGGCCCTTGCAGAGACAG
-CCTTCTCCTTGGAATTTAGGGGATGCGGAGGGGGCAGTGAGGAAAGCCAG
-GGAAATTATTTATGTTGGCACCTTTGGAAGAAATGTGTCCCTTCTCTGTA
-CCACAGGTAATCCCAGAGCCTGACTCTGCCCCCGGGGTCCTTCCTGCTTC
-CCTCGTGCCCTGTGGGGTATCTGTAATGTGGGGAGCAGAGGTGGTGTGAC
-AAGGGAGATGGGGATGCAGGGTGCTCCTGTGGGAGCCTGTCCACGACACC
-CATGGGTGGTGGGTGTCTGCAGAGCACATCCATGAAGCTTGTGTGTACCT
-GTGTCTGCATGGGCACGTGCACCCCTGGGGAGCATGTCCTCATGTGCTGC
-TGGTGAGCCTGAGACCCCTGGCCTTAGTGTGCTCACACCTGGGTGCCACC
-CGTGTAAACCTGCGTGCCTGTGGCTCACTCCAGGGGTGTGTTGCGTGCAC
-ATCTGTGCCTTGTGTGCGGTCATGTGTGCCTGTTTGCACACACGTACATG
-CACATATGTGTGTGTGGGCGTGCACCGCGCTGTGGGAGGGCGGAGGAAAT
-CCTGAACCCTTTGGCATCGATGCACACAGTGGTGCCCGCCTGCTCGTTCC
-TCTGTACCCAGGCAGGCATGGCAGTTCCTCCCTGGCAGCGTGGCTGGTTC
-CACACAACTTTTGACAAGCCTGAGCGGGGGTCTGACCTATTTTCCGGCTC
-CAAAGTGCCACACCCTGGGGCCAGTGTGCTGGCACTTGGGGATGGAGACC
-AAGCACTGTGCCTCGTACAGCCCGGCTTCTCTCCAGCAGGTGCCTGATTG
-TGTGCAGGGGAGCCAGCTCCCTCCTTGTGATCCGAACCTTTCATTTCCGG
-GCGTGATAAAGATGGGGCTGTGTTTAATTTCCTGTCTGCCAAGGCAGCAC
-CACCGCCTGAACACCAGGCTGCACACAGGGTGGAGTTCGCCGACTTGACC
-CAGCTCTGGCTTCCATCGAGCGCTCCTTGCTGGCAGCCTTCGAGGTGCTT
-TCGGACGCTCCCTCTGAGTGAAGCGGTCTCCCTGCCCTGTGGCCTGGCTG
-CTGGGGGCCCCTCTGtgggtgggctctgggtgggctctggCTGTGGGGTG
-TCTGTAACGTGTGGCCGCTCAGTCGCTTCTGCTCCTCTCTGCAGGTCAGC
-TGGCCGCCGGCACCTGTGAGATTGTGACCTTGGACCGGGACAGCAGCCAG
-CCTCGGAGGACGATCGCCCGGCAGACCGCCCGCTGTGCGTGTAGAAAGGG
-GCAGATCGCCGGCACCACGAGAGCCCGGCCCGCCTGTGTGGACGGTAAGC
-ACCCGTGGCCCCAGGACCCCTCCGGGTGCTGAGCGCGGCGTCACCAAAGG
-TGCCTCTTCCCTGACGCGGCCCCTTACCTGAAGGTCCCCCTAGGCCTCAG
-CGCATCCTCGGGTCAGGCCCCTGGCTGTTGGCACAGCTGTTCCCATGGAT
-GGTGTGAGCTTGTGGCTTGGGGACTGGCTGGGGTGCAGTCTCCAGTTCCT
-GGGGGAGTGGTCGGGGAGATGCCGGTGCCCTGCCTTACTTGCCTATGTTT
-GGGGCTCTCTGGCCCAAGGCTGTGGTTCTCTGATGTTGCCTCTGGGAGAG
-GAGAAGGACAGCAGAGGGGTCATCTGCAGGATGGCAAGGTCCCCTGGGTG
-CCGTTCCATCGTCTGCGTGTGGTCTGGCCGAGGCTGCCAGCGGGACCTGG
-CTCCTTGTCTCTGGGTCTGGCCAGTTCAAGACACTCTCATGCCTAGACTC
-GGGAGGCCGCAGCTCCGGCCCCCATGGGCTCTGAGCACATGCAGATGAGT
-GCCTGCTGGCAGCTGGCAGTGACCCCCGGCCCCTAGAAGTCAAGCTTCTG
-ACAAGCTGGGCCGTGGCTGAGGGATGATAGTGTTGCTGAGTGAACACTTG
-GAAAGGGCACCTGCTATGAGGTGACATGGGGCGGGAGGGGCTGTCCCGGC
-GTCTGGTGGGAGCCTGTCATCTGGTAGGGAACTCTGCTGTGTCTATGCTG
-TGCCTGACCATGGGGAGAGAGTGGGCTTGACTAAGACCACTGGTGACCAG
-CTAAGTTCAGGGGACAGCATGAGACCTGGGAACCCCACAGCCGGGACCTC
-CCCAAGGCCCAGTGTGTCCCGGGAAGGCATCTGGTGTCAACACCAGCCAA
-AGGTCACAGGTGGGCATGTAGGCCCGGCATTAAATCCAGGCTGCCTCCCT
-CCCTTGTGACCAGAGTGGGTAGGGAGACCCCTCCCTGGGGCAGACATGGG
-GGCTGCCATGGGCCTAGCCAGCAGCAGCCATGTGCCAGTCCAGGCAGCCT
-TGGGGTGAAGGACCCCACGCAGGGGTATTGGATGCCTTGGTTCTAGGCGC
-AGCAGCTTGACCACAGCCCAGGAGAGAGTGCAGGGAGGGAGGGTCCCCCG
-TGGGTGAGATGCGGAGTCCCCTATGTGGGGTCCCTGACGCCACTTCTTGG
-GGTGGAGAGAAACCAGCATCCCTGAGTGACAGGCGTAGACTTGGGGTTGC
-CCTCGAGCTGCGGCCCGGTAGGGGCAGAGGCCCTGCAAAGCCAGAAGAAG
-ATAGGGACAGGGGCTGGGCAGGTGGAGTAGGGCCGAGGATATGTAGGGGT
-GTCGCTGGCCAGTGGCCCCTCCAGTCCTTGGTGGACTTCAGGGCAGCTAT
-ATCCGTGGCATCCTGCACTGAAACATGGTTGCGAGCATCTCAGGCCTGGC
-GCAGTGCTCACTGGCCTTCTGGGGACGCGGTGCAGGGACCTGTGGAGATG
-TGTCCCATGCTCAGCTGGCCCACCCCATGGATGGCAGGCCCCTGCCAGGC
-CTCCCAGGGCTGGATTTGGAGTCTGAGTTTCCTGACTCTGGTCAAGGGTC
-CTTTCCTCCCCCACTCCCCCTGTGGGGGCTCCGGATGCCCAACTTCGGAT
-CCCACCGCCTCTGCCCAGGAGCCTGACGTGGGCAGCCTTGCCCGTGTGCT
-GTGATTGAGAACACGGGGTCAGGGATAGAGCCTGCTGCTACGTGGGTGCT
-GGTGAAGGTCCATGGAGAAGGGATGGGGCGTACAGAGACAGGGCCAAGGC
-ATCCTGAGCACTCCACAGAGGGAGGCGGCTGCACTAGGAAAAAGAATGCC
-CGTATCagccaggcgcagtagctcacgcctgcaatcccagtactatggga
-ggctgaggcaggtggatcacgaggtcaggagttcaggaccagcctggtca
-agatggtgaaaccctgtctctactaaaaatacaaaattacccgggcgtgg
-tggtgtgcaccagctactcgggaggctgaggcagagaattgtttgaaccc
-gggaggcggaggttgcagtgagccgagatcacgccactgcactccagcct
-gggtggcagagcaagactctgtctcaaaaaaacaaacaaaaaaagaaTGC
-TGGTATCACCGGGAGAAAGGTGTTCTAATAGGCCGAGCCCTTGATCCTCC
-AAAGCCAGATAGACCCCTCTAGGGGTTCTCAGCAGAGTCAGGGCATGGTC
-AGGAGGAGGAGGGCTGACGGAATCACTGAGCTCCCTCTGGGTGTCTCATT
-GATGAGCGTGTCCTAAGACTGTGCAGGAACAGGCCAGGCAGTGAGTCTGC
-CCCAGGGCCCACTACCTGGACCCCTAACCCCTGAGGCCTTTATAGGAAGG
-GAAGAAGGGGAAGGGGCCGCGGGCTCTTGGCTGAAGGGAGCATGCCTTGC
-CCAGGTCTCAGTCCGTGCAGCTCTCCTGGTCACAGATGCCCTGTGCACCT
-GGGGGTTGCGTGCACTGCTCAGGTGGGATACCCAGGAAGAACCGTGGGCC
-AGGTGGCCTTCCAGCTGAGCCACCTGTCTATCTTCCCTAGACCTAGCAGC
-CGTATGCCACTGGCCCTCCGGCCACCAGCCCTGAGGGTTTCTGGGAAGCT
-CTTTGGCACTTGGGAGGGAGAGTGTGGCGCGAGAGGCTGAGCTTGCTGGA
-GTGGGCTGGAGGAGAGGGGAGCCATCAGAGGCTTCTGGTGCATTTTGAGG
-ACCTGGGGCAGGGAGGAGTGGGCCGCTGGAGCCTTGTTTTTGTCCTTATT
-AAAAACATCTATCAATTTGCATCTGTAGAAGGCATCTGATTAAACACCAG
-GTACGCAGGGCCTCAGGGCTGCTCAGTGGCTCTCAGGCCTCGGTTCTACA
-GAGCTGGATCCTGGGGCGAGCTGGGGCAGAGGCGTGGCGGTCTTCTTCCC
-AGGGAAGGGGACTGCTTCTCCCACAGCCACAGCCCTCCTGGCTGCCTGTA
-TCTGGAGCCACTGGAACACATGGTGGCCGGGGCGCCTTCTCGGGGACACT
-GATGCGTCTCAAGACTGGGAGGGGGAGAGCGGTGCCCTGCACGGCCAAGG
-AGTTCACAGCCAGGCCGTCCTTTCTTCTCATTACTTCCGCCCGCCTATCG
-GCAGAGTTGGGGTCAAAATTGATTACTAATTGAATCTGGGTCTGCTCATC
-TGAAACCACATTCACTTTCCTCTCACCAGGAGCCTCCTGGTGCCTCAGGA
-GCCGGGTCCCAGAGACCCAAATTAAAACCGTACTGTTTTCAAGGGAGGCC
-AAACAAATTAGTTAGCTTAGTTAGCTTTGCTTCTTTTTGCACAGTGGGCA
-TTTTCCAGGCTGCCATCTAATTTAATTTTTGCTTTTCTATTTTCTTGCTC
-TGCGTGCATAATAAGTTTCCTCGCATGTGAATTGCATTTGCTGAAGAGAA
-AACTTGTGCTGTGTTGGGTCGGTGTTGGAATTGAATGTGAGTAGGGTTGA
-AATCGGGGAGGCACTTGCTGCCCCTACCGCGTTCCGTGACCACAGGCGCT
-CGGAATGCCGGAGCAAGCCTGACTGTGCTCACTTGTCCATTGGTCGGTTT
-CTTAATTATTCATACATTTGCTCACTCACTCATCTGTTGAAAGAAGATGG
-ATACCCATGGCAGCAGAAGAGGTGCATGGGGAAGTCAACTCAAAACACCC
-AATACAGAGAGCCATGCAGTGCTGCAGGTGCGGGAATTCAGACTGGGGCC
-CCAGAGTGCCATCACTTTTTCCCGCTGGGACCTCAGCAAGGATGCATCCA
-TGAGGGGGCATTTGAATAGGGTATTGAGGGATGATGAGGAGCTCACCAGA
-AATGCTTCTCTTTGTGAAAAGAGGGGGCCAGTGGTTAGAGAGGAATTCTA
-GCCTCCAGCCTCCCCGGCCTTGTCTCTGAGCTAAAGCATTTCTGGGTGAA
-CCATGTCCCTGCCTGTACAGGGCAGGGCTGTGAGCCTGTGCACCTGCATG
-CGAGATCCAACTTACGGAACCATCAGTGAAAGATTCAAACACAAACCAGC
-CACGCACTGTGGCGCTTTCCATCCTTACACACAGTATCAGCCACCGAGCC
-TCCCCTCCCCCAGGGCTGCCCTCTGAGGCAGGCACCCAGGTGCGTGATGC
-CCTGGCGGGCTGGCCAGGCCCTGCTTCTGCTCCTTTCTAGCTGTTTATGC
-AGACGCGCCAGGTTCCCTTTTCCATCAGCACACACGTGCTGGGTCCCGCA
-GCCACCACAGCACGGCACTGAGGACTGAGACCCTGTGTCCGAGTCCAGCG
-CTCACCCAGCCCTTGCCAGGCATGCAGTACCTGGCTGTACCTGGCCAGCC
-CGCCTCGCTGAAGCAAGGTCTTCCTTTATGAAGAGAGGTGCTGTCTCCCA
-CAAGTTGAGTTCTCCTGAAACTCCTTTCCCAGGAAATCAAAGACTGCAGC
-CCAGTAGCGGGGGCAGCAGAGGGTGGTGGTTTGTGAGCGGAACTGCCCCA
-GAGCTGAGCCAGAGGGGTGAAGGGTGGTAGCCTCAAGTCTCGGTCGTGGG
-CGGGGGCAGTTTTCCCTGGGAGCTTTTGGAGGATGGTAAACTGCAGTCAT
-GGCACAGCGCAGACCCATTGTCAGGGCCGCAGTGGCCACTGGGAGGTGCA
-GGACAGGCCGGGCTGACTGCCAGGTCTGGGGAGGCTGTGCCCAGGAAGGG
-GCAGGGCCAGAGGGCCTGGAGGTGGGTGTTGGGTGGAGCCTTATATTCTC
-CAGGCATGAGGCCTTGCGAGCCACCTGGGTCCTGGGCTGGGAAAAGAGGC
-AGAAAACAGGCAGGTGGGCACTGCCGGGTTCTGGGCAGAGGTATGGTGGC
-CAGAGTCTTTGCTTCTCTGTGGTTGGGAGTTTGAGGCAGGCGTGGGACAG
-CAGAGGCCTTGCCCGCTCTCAGGCAGTGTGGATGGTTGGCAGTAGACGCG
-CAGCCTTAGGCGGGTGGACGCTGAGGCCGTGGGTTTGGCATCTGTGCTTC
-ACGTGTGGTTTAGAGTCCAGGTGTGAAGAAGAAGGGGCACCACGAGGGGG
-ATCTGTGGTCAGCGTCACCTTCCACCCCACGTCCACAGCCCTGTCCTCAT
-CCTCCAGCAGCAGGTCGGTGCGGGAGGGTGGAGGGTGCCCTGGCCACGTA
-CAGGAGTCTGGAGATGGTCCTGTCCTTGCTGTGGGGATGGGGACCACACT
-GATGGCAGGGCCATTGGACCCTGGGCTGTGGGTCCTGGCAGTGACTGCAG
-GAGCCAGGGTAGGAGGGAAGTCACTTCTTCTCTTGCCTTTCCCCGTTGTT
-GACCGTCATCATGCCTAGCTGCTCATGATGCCCTAGCAATGTGGGGTTTA
-ATTACAGGAGTGCAGGAGCAAAAGCCTTTCGGTTCTGAGAGGCTGGGCAC
-AGCGCGTCATCTCCACCTCGAGGCGCCAACGGGGCCCCCAGGGCCAGCTG
-AAGGCATGTTGTGGCTGGGACTAGGGTGACGGGAATTTTCCACCAGGAGC
-GACGTGAATCACCTGCTCTATTGTACGCAAGAGACTGGGAGTGCGCCAAG
-GTCCCTAAGATGCGGTGTCTGTGGCCGAGTCAGCCTGCATCTACCAGTTG
-GTGCTCAGCCTGGCCAGGGGTTGGCCCCAGGGTGGCAGCTGGAGAGGCTG
-TGGCTGGCCCTGCCTGCCCCGTTCATCCCTTCGGCAAGTGGTGGTTGGGA
-TAAGGAAGGCCCTGCTTCCCTACAGTTGTTCATACAACATGGGGACATCT
-GTTTGACCACAGAGCTCACAGGAGACCGCCTGCTGGCAGTTGGCTGTTCA
-TGGGCAGCCCTTCCTGCGTTGAGCCCTGACCACCCTTGGCAGCCTGGCAC
-CCCGCACTGGCCACCCAGCGCCATCCAGGAGGGGGTCTGGGCCCTCACCA
-AATCATCGAGGCCCTGATCTGAGGAAGGATAATGAAGCTGTTTTTCAGAG
-GGGCCCAGACCCCCACGTGGAGCACCGGCTTTGCTCTGGGCTGTTTACTG
-GGCACCCGCTCCCCTAACAACCTTCCTGAGAAAAGGACTCATGTTCCAGG
-TACCTTCCAGTACGCGACGGAGACCAGCTGGGTACCTGCCTGCCTCAGGA
-GGCACCCTCTCCACTGCTTAGGGGCATGGACATGTCGGCTTCCTTCTGGG
-GGCTCAGGGAGATCCCAGCATTTCTGGAGGCTTCCCGAGGCCATGGGCGA
-CTGGGTGTACAGCCACATCCTCAGCCAGGTTGTGGGTCCTGGCCACCCTG
-GACCCCTCATGGCTTGGGGTCCGTGCTTTGTGGCACAGAAGCTGTGGGTG
-CTGGTGTGGCCCTCTGCTTGGCAGGCATTGCCAGCCACTGCATCACGCGA
-CCGTGGTGGGGCTGTCAGGACACATACATCTCCGCGCAGACTGCTGCCAC
-CCGCGGCCTTTTTGTTATGGAACCACTGCTGGGAGAGGGTGGCGTGTTAT
-AAACGCTTGGCAAGCGGAGAGGCGCCTGGGGGCTGTTGGCGACACTTTCT
-TCCCCAGCACACCCCTCCGTTCCATTCTGCCTGGATCCAGATGGGGTTGG
-AGATGCCCTGGGATGCGGGCACCATGTCCCTCAGTTCTGAGCATGATTGG
-TTTGTGAGGAAGATGGTGGGAAGAGACCCTGCCCCCGGTTCCCTAGGACG
-TGGATGTGAATTGCTTCAGTCCAGAGGATGCAGCCACTTCAGGCCCAGCA
-GGTGGGCAGGGCAGGGCAGGTGTGTCTGCTGTTGGAGCCACAACTCACAG
-TGCCCTGGCCAGGGCCACTGTGGTGAAGTTGTTTCAGGGAGGAGCTGACT
-GCCCGGCCCGACCCATGGCTGTGGCGTGAGGGTACAATGGCAACTGTGCT
-AAAGGCCAAGCACTTTGCTTCATCAGAGCCCAGTTTTACCAGAAGGGAGC
-AAGCCAGTCCTTCTCCAGCAAGTTACCCAGCAGTTCCTTCCAGATCTCGG
-TGCGTTTAATTGTTGGAAAACCACACAGTAGCTGCATGGCTCTCTGACGC
-CTCTGTAGAGAGATGAGACGGTTGGAGCCAGGGTGTTCTGCTGCTGAGAA
-CATGAAGTTCCTTGAATGTCCCCCTCTGTGAAGCGCCCCCACTCCCAGCT
-CCAGGGAGCACAGCTCAGGGTGAAGGAGAGGAGACCCCAGCATTCACGGG
-CACTACGTGAGCGTCACCAGATGGCAGCTGGGGTTGGTAGATAAGTTGCT
-GATTTTTGAGGTGCTGTGGGGAGTCTCAGGTTGGGAGCACACTGGGAGGT
-GGCTGAGCAAACATGGGTGCCCGAGCCTCTCCGTGTCCCGTCACGTAGGC
-ACGGCGGCTCTGGAGGGAAGGGGGTGGTCTCCTTGCTCTAGCCTCTCCAT
-GTCCCGTCACGTCGGCACGGTGGCTCTGCAGGGAGGGTCCTGTCCCGTCA
-CGTTGGCGCCGCGGCTCTGGAGGGAAGAGGGCGGTCACCTGGCTCTGCTC
-CCTCCCTTTCATAAGGGAGGCTCTTTCCCAGGGCTGTGGACACAGGGCCC
-CTGTGCTGCCAACCAGGAGAGCCAAGAGGAGGAGGAGGAGGAGGCCAGAC
-ACCTGGGCTGGGCCTGACCCTGGGCAGACCACCACCCTCCCCTGGGGCTG
-GGGCGCTGGTGTCCTGGCCCCCTCGAACTCTTGAAGCCTGCCCGTGGAAG
-GCCCACTGCACGTGGGATGCATCGTCCACGGGCCTACAGGGTTTGGAAGG
-AGCACGCCTGCTCCACTCGTGCTCCTGCCTTGAACCCACCGTCACTCCTT
-CCCATGAGGATGGGGACAGCTTATGCCTGCTCCACAAGGCCCCCACTCCG
-TGTGATTCGGGGACAGAGAGCTGCAGGGTCCTGGGCAATGGGACCCCAGG
-CTGTGCTGCCCAGGCACGTCCCATCCCTCGTCCTGTTGGGCCCCTCTGCC
-AAGTGCAGGCCTCCCGGCACTGACTTTCCCATCCGAATCACTCCCAACAA
-ACTTGGGTGGGGTTTTAATTTTTTTTCGAATTCTGTCATTTTTGAGCCGA
-ATGACTCAAATGACTAATAACTGTCTGGCGTGGAGGAAAAGGAAGGGGAG
-GGCTGGGAGGAGCTCCTGTGTGAATTTGACCTTGATCCAGCACCCACTCT
-GCAGCCTCCCAGGCAGAAGGCCCCTGATGGAAGCTGGGACAGATGTGGGG
-AGAGCAGGGGCAAGCAGGGAGCAACCTCCTTATCCCCACAGTCATTTCAG
-GAGCACTGAGGGCTGGGAGGAGGGGCCGTGGTGGGGCAGCCTAGGCCTAT
-GGGGTCTGCGGGCCCAGAGCTGAGTCAGGCAGCGTGTGGTGGATCTGGTA
-GTAGCTGGATGCATCAGTGTGGCAATCCAGGAAGGCTTCCTGGAGGAAAT
-GGGCACTGTGTTTAAAGGGGAGGCCACACCCATCTGTCATTGTGTACTGG
-GCATGGTTGTCATCCAGGATGCCCCAGGGTCCTTCAGCAGCAGGCATGAG
-TGGGGGTCCACTCCACATCCAGCCCTGCCCAGACCCCCTGGCTGCTCCTG
-GAGCAAACCGTGTCTGAAGGGGCTGGCAGGATGCAGAGTGGACAGCAGCC
-CTCACTCTTCTGCGGGAAAAGCTTTTGTGTGCTTCAGTCATTAGAAAAGT
-GAATGTAAGTCCTTAAGTACTTGGATATTTCtgtcttggtccactttgtg
-atgttgagactgggtaatttgtaaagaaaagaaatttattttacactgtt
-ctgggggctgggaagtccaaaatcaaggcactagcgtgttcagttgtgtg
-gtgagggctgcattctccagagaggcagaacgctccatcctcacgtggtg
-gaaggtggaagggcagaagggggccaggctcccgcagtcaagtcctttta
-cagcattatctctccaggatggtggagctttcatgacctgaacatcggtc
-aaagtgcccatctcccaacactgctgcattgggggttaagtttccaacac
-gtgaatttagggaacacttttagaccacggcaATTTAGAAATACGTGAAT
-GTTCTTAACGCAGCTGTGGCCTCAAGCAGGTCCCCTGAGCGCTCTGAGCT
-GTGGGCAGAGAAGCAGAGGAGGGACAGTGTGGTTGAAGGCACGGTCCTGC
-CTGGCTTCCTGAAGCCAAACACTGAttctttttttttttttttttttttt
-tttttgagacagagtctcgctctgttacccaggctggagtgcagtggcgc
-gatctcagctcactgcaacctccgcctcccaggttcaagcaattctctgc
-ctcagcctcccgagtagcagggattacaggcgcctgccactacacccggc
-taattttttttttgtatttttagtagagatggggtttcatcatgttggcc
-aggctggtgttgaactcctgacctcctgatccatctgcctcggtctccca
-aagagctgcaattacaggtgtgagccaccacgcccggccGACGCTGATTC
-TTTTTCAGGGTGTTGCTTGCTCTCTAGAGTCTGCTAGAACCACCCTTgtg
-gtatactggaactggcttgcaccagattgcgagaaccatgggttaaattt
-tcaggaaatgtgtgaattgacttgtaatactcccattattaaaaacgaaa
-ttaccatcctggccaacatggtgaagccccgtctctactaaaaaatacaa
-aaaatgagctggctgtggtggcaggtgcctgtagtcttagctacttggga
-ggctgaggcaggagaattgcttgaacccgggaggcggaggttgcagtgag
-ccgagatcgcgtcactgaactccagcctggtgacagagcgagactccatc
-tcaaaaaaaaaagaaacaatgaaattatataaactgacctgtagataaat
-tatactgaaaccaaaaatatccacgtgaacacactaaaaaaagaagagta
-aacaatatctacatcaagtggaagaaagacaataataaagatcaaaatgg
-gaataaagtagaatatagaaaaataatgaaaattaccaaaagttcttttt
-ttttttttttttgagatggagtctcatttttttttcttttgagatggagt
-ctcttttttttttttttttttttttttttgaagatggagtctcactctgt
-tgcccaggctagagtgcagtggtgtgatctcagctctctgcaacctctgc
-cctcccgggttcaagcagttctcttgcctcagcctcccaaatagctggga
-ttacaggcttgcactgccatgcccagctattttttttcttctatttatag
-tagagatggggtttcactgtgttggtgagtctggtctcaaactcatggcc
-tcaagtgatctgcctgccttggcctcccaaagttctgggattacaggtgt
-gagccactgcccacccagcaggttagttctttcaaagataaatgaaattg
-acaaatctctagctaggctgatatgagggagtagagagggatagagaaga
-aggaaagtgaaggaaggctgaaattaccacatcataaataaaaggggaca
-ttagtacccaccatatgaaataaaaaggttaaagggatactatgaacaat
-tgtatgccaatacagtagatagtttagatgaaataaacgcattcctagaa
-agacacaaacttccagaactaactctagaggaaacaaacagtttgaatag
-acctatgttaagtaaaaacaaggaatgagttatcaaaacttcccaacaag
-aaaagcccaggaccagatggcttcactggtgaattggtccaaacgcttaa
-agaaaaattaacactggatcttctaaagctcttccaaaaaatagaagaat
-aggggccacttcttaactcactctatgaggttggtattgccctaatacca
-aagtatcagacatcacaagaaaactacagatctatggatacggacataga
-tgTCACTTTGGGTTTCGTGCATTCCCACAGTACGCCTCATCCCTGAGGCA
-CGTGTCTCTCCTGCAGCACCACCGTGATGGGGACAGTGACATCCATGCCT
-GCATCTCCAGCACAGACCTGTGCCCTGAGTATGTAAAGGCGCTCTGTGAA
-TGTCAGTGGGTCCTGATGCCTCCAAATGCCTGGTTGAAGCAGGTTTTCAG
-GGAGACCCGATGATGAACAAAGCCAGTGAACCAGCAGGCCTGAGCTGGGA
-GCAGAGAGGGAAGGATGGGGGACGCTGCCGCTCTTGAACCTGAGTGATGC
-CTTCCAGGTTCTTGATGGTGTTTAAAGTGTCCACTACACCCTGCTAATAA
-TGCCGCTTGCCTCATCTTACATATGTTAATCAGCATCTGAGAATAATCAG
-CGTCTACAAGAAGAAATATCTTTGAAAAATCTTTGAGGAAATTCTCTCCA
-GGAAGCCGAGAGCTGAGGGGGCCCAGCATGTGGTGCTGGCGCGGGCCCTG
-ATTGCGGCCATTAGCAGGGACATTCGTGACGTTTCAGGGAAGGGTGCATG
-GGGTCTGCCTGATGCCAGAGGACCTTGAGCTGCTCCCGTCCACTTCCACC
-TCCGAAACTCAGCCCCACAAACACTCCTGAGGGCAGGGTGGGTGGGGGAG
-CAGCGAGGTCTTACGACTGCTGCGTTCCTATTATGGCCCATCTGGGGATT
-CCGGGGCTCTTCTGAGGAGGACAGAGGCAGGTCCCTTGTCCCGAGCCTGC
-AGCGTTGCTTGTCCATGGCAGACGCCAGATGGATGTGCACAGCCCATGGG
-CGCTCAGTTCCGCAGCTCCCTGCCTCTCTGGGTGGAGTCTAAATATGGGT
-TATTTTTCAGCATCCTGAAAGCCACGCTGCATCTTGCGTGAGTGACGGAG
-CACCGTGACAGTTGATGCGGCCGGCAGGTTCAGGGCTGGCCtgtcccagc
-tccttcctgaaggttatatggatcaccccattcattgtacaaacacccac
-ccagggcagtactgctgtcacctcctgttaaaagcagggaagctgagccc
-cacaaagggtggagctggccccaagcccacagctggagagtgggggcact
-gggTCTTCAGTGCTGCAGAGAACGTCTCTCTTCTGTCCTGGAAATGCCCC
-TGCTGGCCCAGACCTAGGGCGTCGACGTGTAGAGAGAGAAAGGACCAGGC
-CTGTGGCCACAGTGTGGCCTCTTGGGCTCCCAGGCAGTCATGGAATAAGG
-GTTCAGATGGACAGTGCCCTGTGCTGAGGGGTGTGGAGGGAGCAGTGACA
-AGAGCCTAGAGGAAGGAACCATGGCCTCAGACTGCAGCGTCCAAAGAGGT
-CGTGTAAGAGGAGGTGACGCCTTTGCCCGTCATTGTCAGGAGCAGGTGCG
-ATTACCGGGCAGGACACCCGGGGACCTTGATGGTCTCTGGGCAGCAGAGT
-CCGGGGCAAGTCTCCGAGGGCCCTGCTGAGGGCGCAGCGCCTTCTGGACC
-CCGCGGCGGAGGATCCAGCATTCTTCCTGGCCTGTTGGCTGCAGAGGCGG
-GACACAGGCAGAGACCCTGCCTCACTCTGGGCCCTCGTCCACCCACAAAG
-GGACCCAGAATCATAGCCGCAGCCTTGTTGCTCGCTGGGCTTTGAGCAAG
-TGGAGAATTTTGCTTCAGCCACCATGGTCTGGCCATGGAGCCAGGAGGTC
-TACGGGGACCGTCTTGTGGAGGGAGGGAGACATTCACAGCCCAGCCCACC
-GTCCACAGACCAGCCAGGAGGCTGAGTCCAAGACAGGAGGCAGAGAGGCT
-GGACCTCATGGTCACATTCTCCTCAGGGGGTCCAGATTCTGCCTTCTCAG
-GGGAACCCAGATTCAGTGGCACAGAGGGACTCAGGCACCACCACAGCAGC
-TGGGCTGGACGGTGGATGTGGGTGGAGGAGGCTCCAAGTCAGGGAGCCCT
-TCCGGGAGGAGGCGGTGGCCAAGCTGGGGGTGGGGCATTCTTTGCCCTTG
-TCCTGCTTTTCTCCCTGTCATCACCCACTTGTTCTCGCCCTGTCCTGGTT
-TGATGAGGGACCCAGCTGCTGTCCTCTCTGAGCTGTGCTGGGGGTGGCAG
-CAGGGGCCGGTGCTGGGAAGGCCTCCGTCCCTGGCCTTTTTGGTGGGGCT
-TGGCCTTTTTGGTGGGGAACAAGGACCAGCAGCCCCACAGCTGGCGCCCT
-CCACCTCCCTTAGCGCAGGCCCTGCTTTGATGAACATACAGTCCCCATGC
-TGTCTTTGATGTGATTTGAGATTTCAAACTAAATTAAATAACATAATGAA
-AAAGCCAGGGACATTTTGAAAGAAAATTTTATTTTGATCTTGGAGATGCT
-TTGATCATGTGACTTGGAGGGGGGTGAGTGGGGTTGCCTCCCTGTTCCTC
-CCCTGCTCCGGGTGTGGGGCGGGGACGGCTCTGGGCCATGTTTGGGGCCT
-GTCTGGATGCCGAGTCATCTTCAGGTTCCCAGACTCCAGTTCACCCTTCT
-AGGGGGCTGGGTATTCTCTCAAGGGCTGTCCCCCCAAAAAAACCCCAGGC
-TCCCATATTGCAAATCCTCTAAACTCATTGTCTTCGGACACGCTGTGCCC
-TCACTGTCCCATCTCCCAGTGCCTGGCAAGGAAGTTGTTGTTTGCTGACG
-ATGGTTGGATGGGGCCTGGACTCTGGAGCAGAAGTGGCGCTTGAGCACAG
-TTGCTGTTTGCTGACGGTGGCTGGATGTGGCTCGGACTCTTTGGAGCAGA
-AGTGGCGCTTGCGCACATCTCGAGTATGTTTGTGGTGTGAACATTTTCTT
-TATTTCATTTTTTTATGGGGCTGTGTTGCCATCAAGAGGTCCAGACCCTT
-CTAGAAATCTTGGACAGGTTGTAAGAATGAACTTAAAAACTCTTTACACA
-GAATTTTCCCCTAGAGACAATTCTTTCCAGCCGATAAAATGCCCGGCAGC
-CCCCTTAGCCGCAAAATGCTGTGGCGTTGGAGCTGATGTTCCTGTTTTCA
-GGAGAACAGCTGCATGTCCCAGGCGAATTCATCTCAGCACCTCGTGGAGG
-CAGATGACTGGAGCTGCGGAGGGTGTGCTGGGATCGCCCCACTGGGCTCC
-GCCCTGGCTCTGCACCTTACCAGCTGTGCAACGACACAGCGCGTGGCCCT
-CTCCCAGGCCGGGGTCTCTCTTCTGTCAGCAGAAGTGAGGAGGCTCCTCA
-CCTTCTGGGTGGGTTTTGGGGGTCAGGAGGTGAAGGGAGCAGACACTCTC
-AGAGCTCCTGGCCCTGGGAGCACCCCGATCCGTGCCTACAGCTGCTCTTA
-CAGTCTCGGAGACCCAGGGCCGGCTGCTGGAATCTCAGAGTTAGGGTCGT
-GTCTCTTCGGGGGAAACTCTGACGCAGGAGCAGGCACAGTGAATACAGTC
-AGAGCTCATTCATTCCAGCTCCACTATTATGGAGCCCAGGACAGTGTGGG
-GTCTCCAGGCCCCAGGTGACCTTTGTAGGAACAAAGGTTTGCTGAGCAAA
-TCATGAGAGCACGTACGGGGTGTGTGTCCAAATCGTCTGGACCCCTGTGT
-AGTCCACACTGCAGTTGGGGTCACTGGCGTACTGCTGGCCCTACGGTCAG
-GGTCTGTGGCCACCTGGCACAGTGTCCCACCAGAGCGCAGAGAGGGACAT
-TCCCCATGCCCCACCCTCGGCCCCGAGCCGCCTCGGGCACGTCTTGCCTG
-CTGGAACCTTGCCCCAGCCCTCTCTCCTTGTGCCCTTCCCACGTTTACAG
-AAGAAGGCTGGGCTGAATGGTGTGCAGGCCTCGAACCCCGGCCGCAGAAC
-TCGCCCCGATGAGGGGAAACTGGAGGCTCTTTCCTCCTGACCATGCATGA
-TGAGCCGGTGCCCCGAGGGTTTGTCTGCGTCTTTCCAAAGACACCTTATG
-GCGTGTTTCCAGTCAGTAGTCAGACATTCTGCTCATCTCCCTGGGTTCAG
-AGCCTGCTGGACACTGATCAGTGCCCAGGCCTGGTCCCGCCCTATGGGGA
-CAGTGCAGCAGGGAACAGAGAGGGGGCAGCGTATGGCAGTGGGTGCCAGA
-TTTGGAGGAGATGCCGGGGGCTCGTTCCCCCACCCTCCTGGACAGCGTCC
-TCCTCCCTGCACATCCTTGTGAGTAATGCTCTGGGAACCTCCGGGCTCTG
-GAGACACAGTGGGATGGAAAAGGCCAATAAAAGACAAATACACAAGTCTG
-CAGAAATGAACTGGGGGCCTGGGAGCCTGGGAGCCTGCAGAGACATCCAC
-AGGGGTGATGGTGACTGGGGGCTCATTGGGGTGCCCACTTTGGGGAGATG
-GTGACTGGGGGGCTCATTGGGGTGCCCACTTTGGGGAGATGGTGACTGGG
-GGCTCATTGGGGTGCCCACTTTGGGGAGATGGTGACTGGGGGCTCATTGG
-GGTGCCTACTTTGGGGAGATGGTGACTGGGGGCTCATTGGGGTGCCCACT
-TTGGGAAGCTGGTGTTGTGGCTGATACCTGCAAATCCAGAAGGCTCTGGC
-CTTGTGAATACCTGGAAGCCAGCTCCAGGTGGACGTGGGGCTGGGGCTCG
-GCCTGGGTGGTGAGGATGTGCCTGGTGCCTGTGGGGACAGCGGGAGGAGC
-TCACAGGAACATGGCGGGAGCACAAGGCTTGGAGGTTGGCATGGTGCAGG
-GAGTCAAGGCTGGTCCCTGGGCAGGGGCTCTGCAGGCCAGAGGACATGGT
-TGATTCAAACCTGCCGGGAGCCTCGGGGGTGCCAGGAAGGTGACGGATCA
-CTCTGATGGCCTTCTACAAAAATCTCTCTGCTGCTCTCTGGACCATAAGT
-TCAGGGCAGCAAGAGGAGTCTGCAGAGGTCAGGCTGGGCAGAAAGTGGCA
-GTGACTGTGGTCGCGTGGGGAAGTGTGTGATGGGGGTGATTCAAGGGCCC
-AGGCGGTGGGGCTCCAGTAGAGGTGTGAGACCGTGTGGAGGGCAGAGCTG
-AACCCAGGCCTGGGTGTATGTGCAGCGATGCTCTGTGTCCACCCCAGGAG
-GCCCCAGGCACACGTGGAGCATCTGTTCTGCCCCCCGGCTGGTGCGAGCT
-CACCGGAGCAGGTGTCCAGCAGGCACGGAGTGAGAGACACAGGCTGGGAG
-CAGGTCAGACTGGCAAGCCTGCTTGGGTGTGGGAGTGTTGAGGTCACCAG
-GGAAACTGAGGCGGCAGCTGAGGACACAGGGCCCTAGGCGATGGGCACCC
-ACTAGCCCACAGAGGGGCCATCCTGGCCTACCCGCTGTCGCAGCTGCAAT
-GGTGGCCTCCCCCAATCCTTGCCCTCCCTATGAGGCTGCCTGTGGAAGGA
-AGCAGACCTCCCACGCAGGGAGCCCGAGAGGTGAATAAAGGTCTCCTTTA
-ATCATTCAGACCACTCGGCAGATCTGGCAGCTCATGCCTCCCACAGGAGC
-AGAGCCTGACTGATGGGAGCGGGAGCTGCAGGAGGGACGTGGGGATGCTT
-GGGATGCTCCGGGACGCAGGGTGGCTGGATGAGCAGGGTGCTGGGCCCCT
-GGGTGTCTTAGCTGCGGTTTTCTTTGGCTTTAACTTTTTGTCATTTTTAA
-GTGTCTCTGGCTCATTTTAGAGCCAGGTGACTTAACAAAGGTTTCATTTA
-CCATTGGGAAGGGAAGGATATTTCTAATCTGAGTTATGGACATGTCAACG
-GGGTGCTGCTTCTCAAGGTCAAGCCAGACCCTGCAGTTGGGGGCACTAGA
-GTGGGCTGAGGGGCCACATTGGGGTTAAGTGGCCTGCATCTTTATAGGTC
-CTGTGCCTCACTGCCAAAGTCACCTTGGACCAGTCACCTTCCCACTGGTG
-ACGAGGGGAGACGCAACTGTAGGCAAAGGGCAAAGTGCAGCAGCCGGCAC
-ACGGTGACTTAGGGCCTTTGCAAGCATGATTTTACCCAGCTGACTCTGTC
-TCTATCACCACCTGGTGGCAGGAAACTAAAATTGCAGGCATACTTGTTCA
-GAGGTAAGCACACAGCAttgctttctgtggtttcagttacccatggtcaa
-aggtagtccaaaaatattaaatagaaatttccagaaataagtaatttgta
-agttttaaattgcacgtcattctgagtagcatgacaaaaattttgcgcca
-ttccactttgtcccatccggtccatgaaccctcccttttcctggcatatt
-cacactgtccaagtcagctgcctattagtcactaagtagccgtcttggtt
-atcagacggactgtcgtggcatcatagtacttgtgttcaagacaccctta
-tttttcttaataatggccccaaagtgcaagagcacgggtgatgctggcaa
-ttcagatatgccagaaagaagccgtgaagtgcttcctttaagtgaaaaga
-tgagaattctcaacttcataaggaaaggaaaaaaatcacatgctgaggtt
-gctaagatctacagtaaaaaatcttctatccatgaaggaaacagacctca
-tgctggctttgctgttgcaccccagactgcaaaagttatggccacggtgt
-ataaaaagtgcatagttaagatggaaaaggcgttcagtttgtggatggaa
-tacatgaacagaaatggattttgattgatggcagctgggtttggtactct
-ctgccgttccagtcagccactggtggtctgggggtgtatcacttgtgaat
-aatggggggctgctgCATCTCCTTTGAATGTTGCCTCTGATGCCTGAATG
-ATGTAAGGAAAGTCCCCCAGACCTTGGCTCAGTAAATGTAGTCGTGTCTC
-GTGAAATGATCTTCCCTCATCATCAGGCCATCTTTGATGACCCTTGTGAA
-ACGACGTCTGTACAATTCTATTGGTTTACAAAATATGCGTGTAGACATAT
-TCTGAAGAGATTGCTTGATCTTAAATTGGGCTTAGAAGCCCAAAATAGGT
-GACTATTCTTTTTTAAAGTGTAACTTAAAAAAATATTTCATTGACACATC
-TATACAGGCAAATTGGAAATTGTAAGTGCAAACCTTGATCTCACCCCTCC
-TGGCCCGATCTCACccctccccttggctcaccagagccctaacttctgtc
-actgcaggtttgcctgtttcagaacctcccatcaacggaagcagggagta
-ggcctcatttttggacttggatcctttccctcgttacgtctgtgagagcc
-gcccgtgctgtcatgtgtggtgacaatctgatactctcattgctgtataa
-aatgtccctgtaccgccatctatctgtctgtgccaaggacggtagacgta
-caggctcttttgaatttttagtcattctgcgtgatgctgctgtgaacata
-cttggtgcacgtctccgagtggctgtgtccactgacttatctccagcatt
-cgccttggagtggcagggctgtgacctagccacggtaggccctgcagagt
-gtttctcaaagcgattgtatcatgtcacgtgccatcagcagtccatgaat
-gttctgtgtgcgtcatggtccctccagcaccggcgatggtcagtgtgttt
-aatttcagccattttgctgagcctacggtgtttcgtggacttggtttttt
-ctgctgcgtcaagatcctgggcatgactctacagccgtctggagtggccc
-aatagctgctttttatgaagtgttcatttgcgtcttccactcatgtttat
-tgagttgctggtccttttgttaaataatttgcaggagctcttcctatatg
-ctccattcaagCCTGTGTTTattctgtggctggccttcttatttgcttaa
-tggtacattttgatgagcagaaattcttaatgttagctaagtcgaattga
-ttcatcttttcccttccaggtcgtgtgttttgcattctgtgtgggaaacg
-tcatcttaccccaaagccgtgagacgttctctcgcgttcttgtcccagct
-ttccagccttacatcacacagttgggtctaccagccgtttctgattaagt
-tccatgtggtatgagatggatctcaaggcacattttttttctctgcacat
-ggagacccgacagatccaacatcatttattgaaaagttctagcctttcAC
-TCATAATGGTTTTATGTAAAGTTCTGAAACACTTTAGAGAGACAGAATGG
-AAGACTGGGTCTCATCCCTGAATATATTATATCTAATTAGCTAATTATCT
-TTTATGTCTCATCCGCTGAAAGCCGGAGCTGAGATCACACGCAGATTCCT
-ATCTAGCGGCAGGCGCCCTCCCGAGAACGCTAACGAACCAGGGCCCTCTC
-TGTTTTCCTTTTCCCTGGGCCGCCTGCTTGAACATCGCAGGGTGGGATTC
-GCAGTGGGGAGGTAGATAGCTGCTCCCCACCTGCCCCCAACGCCCCCATC
-GCCCCCACCCTGCATCCAGCCTAGCCCTGGCCTCCTACCCCTCCCATGGG
-AACGAGGGGCCTGGCCTGGCTCCAGGAGGGTGGGGACTGGGAGAGGTCCC
-CGGCCTGGTGGTCTTTCTAATGGCCTGACTGGCAGAAGAGGGGCCTGGTG
-TGATACTCAGCATTGCAGAGGCCACTGTGTGCCCTGGGTCCCCAGAGGGG
-AGCTGAGCTGACCCTGCAGATGGTCGGGGAGGTTCAAATATGATCGCAGC
-CAGGAGTAGTTCTGGGGCCATGTCTTCCCCTCTGCACTCAGAGGGGAAAT
-GCCAGCTATTATCCCAGCCGAGAAATGAGCCATGGGGCTTGTTCTACAGT
-GTCTGATGGCCATGGAGGTGTTTTTGTCTGTGACTTCTTaagttcgtaca
-ctttactttttttatagaaggtttaggtttacagaaagagagcaggaagc
-agagggtgtccacagctccctcccaccacaggacaccatcactggactct
-cttattggcaaggtccactggttacaattgatgagccaatactgaGGCCC
-ATGACCAGGCGTTACTGAGGCCCGTGACCAGGCAATACTGAGACCCGTGA
-CCAGTCAGTACGGAGGCCCGTGACCTGGTGATACTGAGTGACCAGCCAGC
-Atccacagtgtacactgccattccctcttggtgtggacatgtcatgggct
-ttggtaaatatgcagtgccaggaatccccgtgacagcgtcacaccggcta
-gttccactgccctgaaaccccttgtCGGAGCGGGTTTCACATGCCCCAGC
-TCCTGGGGATGGTGACATCAGCAGGCCTCCCTCCAGCCTGCTGGGAGACA
-CAGGCACCGCATGTCTGCTGTGTGGGCTGTGGGGAGCATTCCATCCGGAG
-CCCAGGAGGTAGAGGGTGGCCGACTGTCTCAGCCTCCTTCATCCCCATGG
-TGCTGAGTGGTTGGAGGGAGGAGGAGGGACTGAGGGAGTGGGCGTCCAGA
-GAGTCACCCAAGCACCCCAGCTGCATAGGTGATTTCCAGAGAAATGTCAC
-CCAGTCCTGTCTGGGGAAGCCCAAACAGGGACAGCCTGGGATTGAGGGGG
-AGGAGGGCAAGTCGGGTGAGATCCCTACTTGGAGAGGTAGCACCCCGACC
-CTCACCCCTCCCAGCATGCAGCAGGCCCGTTTCTGCCTGGAGCTTTTCCA
-GGGGCAGCACAGGGCAGCAGGGATGAGGTCTGCCCATCCGAGCGGCCTGC
-AGGAGGAGCCTGGAGCCCGCCCGCCCTCCCCAGCCAGCCCCGCACTGCAT
-CTAAGAGCCACGCGCTCCTGGCTTGGGTACCACCTAACGGTGTGATGATT
-TACCTGTCTGTTCCCTTTCACCCAGGAGAACAGAGCATATTTCAGGGCAG
-GAATCAGGAGGCAGACCAGGAGGAAGGGAGGAAAGATTGGAAAACTTCTA
-ATAAAATTCCATTTCCTGAAATAGCCGTAACTGTGATATCAATATATCAA
-TATTTGCAGTCTTATCGGTTCTGACATGGGTATTGCGTGTTAGTGAACGT
-CTTCCACGTGAGTGCCCCTCCCGCCTTCCGTGCCACACTCCCCTGTTGAT
-ATTTATTTATCTCGCGGGCTTCGCTGGAATCTTGAGGGTCCTTGAGACTC
-CGCACTGCGTTATAACTCCTGCCTGGTTAATTCAATTTCTCTTATATTCT
-GACTCCCCTGGCAAAAATAATCGGCTTCTGGCCACCAGGGCCACAGACTT
-TCTGTCATGAGCATGGGTCTTCACCGGGAGCGTTAATCCCCCAGCACTCA
-GGGCCGCGTCTTCACTGGGAGCTGTAATCCCCCAGCACTCAGGACCGCGT
-CTTCACCGGGAGCGTTAATCCCCCAGCACTCAGGGCCGCGTCTTCACTGG
-GAGCTGTAATCCCCCAGCACTCAGGACCGCGTCTTCACTGGGAGCTGTAG
-TCCCCCAGCACTCAGGACCGCGTCTTCACTGGGAGCTGTAATCCCCCAGC
-ACTCAGGACCGCGTCTTCACTGGGAACTGTAATCCCCCAGCACTCAGGGC
-CGCGTCTTCACTGGGAGCTGTAATCCCCCAGCACTCAGGACCGCGTCTTC
-ACCGGGAGCGTTAATCCCCCAGCACTCAGGGCCGCGTCTTCACTGGGAGC
-TGTAATCCCCCAGCACTCAGGACCGCGTCTTCACTGGGAGCTGTAGTCCC
-CCAGCACTCAGGACCGCGTCTTCACTGGGAGCTGTAATCCCCCAGCACTC
-AGGACCGCGTCTTCACTGGGAACTGTAATCCCCCAGCACTCAGGGCCGCG
-TCTTCACTGGGAGCTGTAATCCCCCAGCACTCAGGACCGCGTCTTCACTG
-GGAGTGTTAATCCCCCAGCACTCAGGGCCGCATCTTCACTGGGAGCTGTA
-GTCCCCCAGCACTCAGGGCCGCGTCTTCACTGGGAGCTGTAATCCCCCAG
-CACTCGGGGCCGCGTTTTCACTGGGAGCTGTAATCCCCCAGCACTCAGGG
-CCGCATCTTCACTGGGAGTGTTAATCCCCCAGCACTCAGGGCCGCGTCTT
-CACTGGGAGCTGTAGTCCCCCAGCACTCAGGGCCGCATCTTCACTGGGAG
-TGTTAATCCCCCAGCACTCAGGGCCGCGTCTTCACTGGGAGCTGTAGTCC
-CCCAGCACTCAGGGCCGCATCTTCACTGGGAGTGTTAATCCCCCAGCACT
-CAGGGCCGCGTCTTCACCGGGAGCTGTAATCCCCCAGCACTCGGGGCCGC
-GTTTTCACTGGAAACTGTAGTCCCCCAGCACTCGGGGCCGCGTCTTCACT
-GGGAGCTGTAGTCCCCCAGCACTCAGGGCCACAGGCCGCGATCTTGGGAG
-GACACCACCTGGCTGGCACCAGGATTAACTTCCCTCCTGGTGGAGGCTGC
-TGCGGGGGGTCTCAGCGTCAGCTCTGGTGGATTAATGAAGATGAAAGGGC
-AGGACCAAGCTGTCTGAACGGGCATtgccatggtcccagtgctggcgacc
-tccccagattcatgtgttgaaatcctcaccctcgaggtgatggtatttgg
-gaggtgagtagctggtgagaggggagccctcaggaatgggattaatgtcc
-ttagaagagagaccctccccacttccccgacgtgaggacacaaccaggag
-gcaccgtctgtgaaccaggaagcccccgccagacaccgaatctgctgatg
-ccttgatctcagactttccagtccctggaactgggagagagaaacccatt
-gtgtctaagccccccagcgtgtggtctgttgtcttggcagcctgcgtaca
-ctaaggcaGGCATTGCTTCATCTCCAAACTCTGAAAAAGGAGAAGGTGGC
-TGCAGGCCCCAGCCCATGAGCTTCGCCTGCAGGGAAACCCAGAAACCTAT
-CAGGCAAAAGGAGCCCTTGGCCCCGGGGTAGCCCCCTTTCAAGCCCAGCC
-CACTGCGCCCATGCAGTCCGTGAGGACCCACTTCTAGAAGGTCAGGTGCC
-CATGTCTCCGCCTCAGTAGGGCTGCATCCCAGGCAGATTTGCCAGCCTCG
-CCATGGTGAATGAGTGACCCTGAAGTGCCCCACATGACCAGGGAGCACCC
-TGCCTTTGAGTTTCCAAAATTGGATGCAGCAGGGTCCTTGGAATAATGAC
-GAGAGGATGCCTTCTCCATCTGTCCCAGGTGTGAGTTGGTGGCATAGCCT
-TTCCTCCCTGAGCCAGGGGGTCTTAAATGACCGAGTCAGGCTCCTGGGGG
-CAAAGGGGCCATGGGAGGAGCCCCTGTGTCAGGTAAGACGTTTGTCACCA
-GGCCCACCTGCTTCCCAGCCCCATGTTGCCCACTTGCCTGCAGGAATGAA
-CCATAGCCCAGAGACGTCAGTGCTTTCTGGCCCTCGCATATGAAGGCTAT
-TGCAAAGCTGAGATTGTGATTCCACGTTTCACCAGCCCTAAGGCTGTGCT
-GCCTCCCGCCTGAGCTGGCTTCTCCATTCAGTTAGCTGGAAATTGAAAAT
-TAAACAAACTGTGACCTCTCCGGGTCCCCAGTCCTGGCTGTTACTGCCCC
-TCAACTCCCAAGCAGCTTGTCTCAGCCATCCAAGCCTGCGAATCCCTCCT
-GCGGAAAGAGGAAGGATGATGTCCCAGAGCCAGATGTTCAGCCCTGGCCT
-CATGTTAGGCGCTTAGATCCTCTCAGAGGACAGCTCTCCGGGCTGTGCGT
-GTGCTTAGGGGCTGGCCCACACTGCCCCTCATTCTGTAATCGGCTGCTAA
-TGGCCCTGTGCGCCTTGGGAGTCAGCCCTCCTTAATGGTGGTTTTTATGG
-TAAATAATTGCAGTATTGGATACCATTCCTTTATCTAGGCCACGATTCCT
-CTGAAGAAGTCATTATGAATTGGCTTACAGGGTTTGGAACGTTCTTTTTA
-ATGAAGGCTCTTGCTGGACCAAGGCGCGGAGGACAGAATGCTTAAGCACA
-CGCTGGAAGGCCAGGCCTGGTGGGCACTGGGTAAACACACCCATGCCAGC
-CTTTTAGAGGCTAAGCCCATGGCGGGCTGTCAGCTCAGACTCAGGAGAGC
-TGCCGGCTGGGCTCAGCCCCACTCCCGGCCCCGCACTGAGGCTCTAGAGA
-GTGAAAATGGGGGCAATCCATCGGTGGAGGTGGGGGAAGCAGGAGCAGTA
-GCCGCGTGGCCTGGGCAGGGTCGAACCCAAGGTCAAAGCTCCTTGCAGCA
-GAGACAGGATTTAGGAGCGGCTGGTTAATGACCCGGCAATTTTGCCGTCT
-CATCAGGATGTAGGAAAATGCTGGGTTGAGGCATTTTGTCATGGCCTGAA
-GGCGAGAAAGCACCTCCTCAGTTGTGTGAGGGCAATTTTACATGATGGAG
-ACCATCAGGAGCCGTGGCTTACTTTGAGGCAGCTTTATGGGCCTCTGGTG
-ACTCTCTGTACAATAAATAAGGCAGGGAAACACCGTTCCCAAAGCCTGGG
-ACAGTTGGTGCTAACTTATCTGTTTGAATGGAAATCTTAAACCTTGTTAA
-GTCAAACTGCCATTGCTCATTACCCATAAATTTGGAGGCCAGAGGGAAGC
-GTCACCCACAGGAATTTATTAGAAAATGCTAGAGGATCTTTTGTATCCCA
-GGGACACACCAAGATGGGAGGAATAGACTGTGCCGTATGCTCACACTCTT
-AAATCATGCCTTGGATGTTCAGGTTGCACAGACATGCAGGAAACCTGTGC
-CCTCCGTGTCCTTAGCTTCCGGCTGAGTTCTCACCCTGCTAAGCTTCCCC
-AGGAGCTCGAGCCATTCGGGGAAACAGCCAGGAGGACCAGAATGAGCAGG
-TCTGAGCCGTGAGTCCTCCTCAATGTGCAGGGAGCACCGAACGGAGCCAA
-GTTGCCCCTGGCCTGGAAGCCCCACCAGCCCTTTCACCTGTCTTTCTCTG
-CTCAGGGCATTTCTGACATCTGGGGTGCTCTGTTGAGAATCACAGAAATT
-CTCAGCCGAAAGTGGTGCTGGCTTGCTGAGGCAGGCAGCCTGGGGTACGT
-TCCACTCTCTGTGGAAAAGTCAGAGTGCTCCCTGCTTTCTTCATCGGTGC
-TCATCCCAACCAAGCCATCCAGAGTGGTGGTTCCTTCAGAGGCTTGTGTT
-CTGGGAGCATGACTGTTGGGATGGAACAGTGTCTGGAGAGGAACCTGCCA
-TCCCAGTCAGCGAGCCTGAGTTTAAACCAGACATGAACAGACACATTTAT
-CAGAGAATCCCCTGGCCTCCCAGGGCCTAATGAGACCTTCAGGGCACCTC
-CAGTCCTGGAAACACAAGCAAACAGTGGCCCCTCTCTGAAAACAGCTCCC
-TTCTGTGGCTGTCCCTGGTGCCTGTCCCTGGAGAGTCTCTCAACTGTGAC
-TCAGAAATCAGCTCCCTGATGTGTGACCAGGCCCAGGATTGCAGGCAAAG
-AGAGAAGGTGCATGTTTCCGAGACCCAAacaatatctgatgagtggggag
-taagcccgggctgtgaaactgcatccttggggtccagatcttgggtcttg
-tacatagtagctatgtgtctttgaagcaatccctgaacctctccaagtct
-cagttttctggtttgtaaagggtgtttgtaacactgcttcagggatcaga
-gatgatttctgtaagtgattgagataatttcattatatttaccaagctca
-gCTGATATTGAGAGATTTTCATCTCGAAGTTTCCTTCTCTGAACTCTGAG
-TGTCAACAGCCTTTGTTCTTGGCTTGGTTTTTGGACTCCTGATTGTTAAG
-CCTTAGCCGATGGACTCTGGGGAAGTTGGTTTGTGGGAATCATCATACTT
-CTGCTGCTTGCATCTGCGTGCAATACAACAGTCCACTTCAATTATCTTCA
-CAACTAGCATCCAACATTTAatgtttatggtagagaatttggacagtaga
-gaaaattgtagcctaaagaagaaaatggaaatagttcttttattgcccta
-aggaaacttctattagctttttTGAACGTATCCattttccttacatttat
-caggggaaaaaaaatgggtgagattgaagaagttgccgcatatcagataa
-gcatttcctcaAAGCATGATTTGTTGTGTGtgataccgtggctgggtata
-gaattacagcacaaacagattttcttttggagctttgaagacatcacttc
-cttgccttctCCCAGCCTACATGATGGCTGTGTGATACCTCACTCCTTTG
-CTCATCACCCCTCAGGAACCCATGCACCATCCTTTTGACCTTTTGATTCT
-GATGCATCATTGCATGACATCTAGGTATGTTGACACCTTTGGGCACTTTG
-CATGGGAAGTTCAGATTTAGCTCAGGGAATTTTATGTATCTGTGATTATT
-TCTTTTCCTCCATTGTCTTTATTTCCCTTGGGACTCTGATCAGAGCAATT
-ATTCTCCATTGGAAATAGAACCTCAACACCCAGACACGTGCTGGTGGTTT
-TCATCACTATAAAGACCACGGTCCTAATGGCATTTGGTGCTCAGAGCCCT
-GGATGCCGAGTCCTGAGTATGTCCAGGACAGTGTGGAACAGACAAAAACC
-CTGACCCCAAGGCTGATGGCACACCCCGCTAAGGAATGCTGCACCAGTGC
-CTCCAAATCTCCAGCTTCTTCTTTTACATACTTGTCTCCTTTTCATCTGG
-GGCACTGTGCTCTAGAAGATATCGGTCTCGTTGTTCAAGTTCTGAGGAAG
-GTCCCCTCCATCACCGTCATCTTCTCCTCCAGCAACCCCACTTTGAACTT
-TGGGGGAACTCTTGCTTTCTGAAGCAGTCTGCTCTGGTTTGATGTGGCAC
-CATCCTTGTGGATCTCTGCAGATGTTTTTTGAAAAAGATTAAACAGAGTT
-TCTGCCTCTGTGTGTCTCTGCTTCCTCTGGGGTCAGTTTTCAGCTCGCTC
-CTCTCTGTGCCTCTGCTTCCTGCTGTCAGTTTCCCTCCCAGGCAGTCCTG
-CCTGTCTCGTCGCTTTCTGGACAACAGAGGATTAGGCCTGTAAGCCTGGG
-AGGGTGGCTGGGACCCTCTGCCTCTGCAGCAGGCTTCTCTCCTAAGTTGG
-GGGAATGGCTGTTGGGCTCTGCTGGCCAGGAAGAGGCCGGCCTTCTTCTG
-AGGGTGGGATGGCTGGTGCCCTGTCGCTGCTGGACTGAGAGGCTCTGGGT
-GTTCCAGGGTGGACTGCCTGGCTGTGTACTGTGTGTAGGGCTTGGATGTC
-AAATGGATCATTTGAGGCTTGGAATAAAACAGAGCACAGGCTGACCTCAG
-CCCCGGGTATGTAGGAGGTGAGGGAGGGTGGAAGGTGAAGGTGCATGGGG
-CCAGGTTATTTTTGGCTCTGATGTCCACTCTGTGGAGCTGTGGTCCACAC
-AGAGACACCGCCTGCTGACCTGTCCTGCCAACCCACAGGTTCTTTACAGG
-CCCTTCCCCTAACTCTGCCTGGGAAATGCATCATAGCTGGGTATAGCTCT
-GTAGATACTAGGGGTGGGAGGGCTGGCCCCGGCTCTGGGGTCGGGTGTCT
-AGTGAGGGCCCGTTCTGCCCCAGCCCTTTGCCCACCTCACATCTGGACTT
-TTTGCCCGCCTCACATCTGGACTCCTCTTCGCCCGCCTCACATCTGGACT
-CCTCTGCCCGCCTCACATCTGGACTCCTCTTCGCCCATCTCACATCTAGA
-CTCTGTGGGATGTTGCAGGAATTGCCCTCCGCCCTTCCTCCTGCTTGGGC
-CGGGCGGTGCAGATGTAGGTCCCGGTTTCATCTTCTCTCATTTCTTGGGA
-CTTTGCTCCCGGCTGCAGGCACCCTTCTAGCAGTTAGTTACAGTGAGACG
-GTATGTCACATTTGGGCCTCCGGCATTGCTCGCCCCCACCTGCCCCAGCC
-AGAACTCGGGGCTCCCCAGGGCAGGGCTTTTGTTCCGCCAGCGGTTCCTT
-TCTGGCACCCGTCCATGCCTGTCCATGGTTTGGCTGTGTGGACTGTTGTG
-TTCACACATCCCAGGATCTGCTCTTCCTGCCTCTGGAACGGGCTTTATCT
-GAGTGACCTTTCAGGTACGTCCCTCCTCAGCCTTCGAGTTACAGTTTGCA
-CAACGGTGATCTCGGTGTTATTGATTGAATCGCGTCATTTGCAAACCACG
-CTTTTGTTTGGGCGTCGACATTGGGGCTGATCCATGTTAGTGCAGTTAGA
-CGCTGCATCTGGGCCCTAGTGACTGCCTGTCCCGGAACAACACGTCACAA
-AGGCAGGGACAGTGGGAGGTCCACACCCCCCACAGAAGGAGCCCTCGTTC
-AGGGAGACGCCGTGGGGAGGGGGGCCACCTTAGCTTGCCCGTTGGGTCTG
-CAGTGTGATGGGAGATTTGCAGCATTAGCAGTACCTATAAGAACAAGCCT
-GGCCCGATGCACagttttatcgggacactgtcacactattctttcggtgt
-tgctgtggctgctttgtgtcacagtgacagagacgaggctgagatagaga
-ctgcgtagccacagaggccaaacgatttgctgtctggccagttttttttt
-ttttttgagatggagtctcgctctgtcacccaggcttggagtgcagtggc
-gcgatctcggctcactgcaccctccgcctcctgggttcaagagattctcc
-tgccttagcctcccgagtagctgggattacaggtgcccatcaccacacac
-ggctaatttttgtatttttagtagagatggggtttcaccctgttggccag
-gctggtctcgaactcctgacgtcaggtgatccacccacctcggcctccga
-agctctgtggccttttaagaaaaagtttgccaaTGACCTGCCATCAGAGT
-TCATTTTGTTTACGTAAAGATCAACATGGGTATTGCCAAGTGGCAGAGAT
-GCAGGACTCAGGAGGCTTCCTGTGGCGGGGCCCCCGTCCAAAACTCTGGG
-CCTCAGAGGTTGCAGCGGGAGACAGAGCAGGGGATGCAGAGCAGCCTTCA
-GGGATCAGCCTGGAAAGGGCATCTCTGCTGCCCTCAGCAAAGCAGCCCGG
-CCCATACACCCACTTGTGGGATCCTGGGAGGCATATTCCTGTTATCAGGG
-CAGCAAAAGGGGAAATAGGCTGGAGAAGCTTTGCCCAGACAAGTGGACCC
-CCCACCAGCTGGGCATCTCAGCAGGACAGTCCTGGTGGCGGCCGTTTTCA
-ACACCAAGCTTGGAGAAGACCTAGGAGGCATGTGCCGAGGTTGCTCTGAC
-ACCACTGGGTGCAAAAGCCCGGCTTCCCTCTGCAGTCTCCAAGCATCTGT
-CCTGGCTCTTCCTTCACAGCTGCCGGGGAGCCCCGCCTGCTGGCTGAGGC
-CTGAGGCCTCCTGCTCTCTTATTCTTCAAGACCCACCCTGTCCTCCCCAG
-TCTCCAGGTCAGCATTGTACCATTGCACACAGGAGTGCAGCCCTGAAGCC
-TGAAGGCCCTGCAGGTGGCTCATCCCAGACCCACTGCCCTGTGCATCACA
-GCGCACCCTGACGCCCAGGCACAGGTGCCTCATTTGCCCTCATTCAGGAG
-CAGAGAGTTGGCGCCCACCACTGGCAAGCAGGTGCTGCCTCCAGAAGGCT
-GCTGAGGCAGCTGGCGGTGGGGCAGGCAGTGGGCCTTGGCTGGACCATTT
-GAGGCTTGGAATAAAACACAGAGCACAGGCTGATCTCAGCCCCCAGAGGG
-CTCACAGGCAGCCTCCCTGGGCCACAGCAGCCAGCCTCAAAGATCCAGCC
-GTGTCCCCAGCCTGCCCAGTCAAAGGAACCAGAGTGTTCTGGGAGGGCAG
-AGAGCCTGGACAGCGTCCACCTCATGGTCTTGGCCTGTCCCTCCCACCTG
-GGGTCCAGGTTCCATCTGGAATTTGGGAGTGGCCACAGGTGGGAGGACAC
-CTTCTGGGTCTGGGCCAGGTGAGCCTTTGAGGGAGGGTGGACGTTGTCCC
-GGGAGAAAGGGGCCAGCAGACATGCCTCTTAGGGTGTGGGGCAGGCAAGC
-AAAGGAGGCATTGGAGGGAGGCGGGCCTCATCCCTGCTTTGTCTTTCCTG
-TGGCTCCCGCTCAGAGGCGCAGGGGGAACAGCCATCACCACTGTGGGTGA
-TTCTCCCAGGTATGCCTGGTGGTCGTTCAGGAGTCTACACGGCTCCCACT
-CTCCAAGCCTGTGTGATGTCCAGTTCTTTTGTCCCAGCCATGCCTGCAAA
-TGGCCCCCCACGAGGAAGGACACAGGACTGCAACCCAGTTCTGCAGGCTG
-AGATAGCTGGAGCCACCCTCTCCCCAGCCAGTGTGGACTAGCCAGTGTGG
-ACTCTGCGGCCggggagcgggtatgcactgctcatggcttggactctgat
-acaacaagccctgctcaagtcctggtttctccactcccaagccattgacc
-ttgaggaggtcaactgatttctctaagtttcttcctggaagtgggatgct
-ccttggactaacctccctggacattgcaagtgtgaagtgaTTAGAGGGTT
-CCCAGGATGGTCTGGTTAGGGTGGGGGTCACCTTTTTGAGCTGTCATTAC
-CACTGGGCTCCCAGGGGCAGCCCTGGGTAGGCCTCTGCCCTGCAGAAGAC
-TCTGCTCTCTCGTGGAGGACGCCCCTGCCTGGCATTCGGCTGGAAGCCAC
-TTCTGACCACCCCAGAGCCACCCATATAAATCTGTATTAAGACACAATTA
-TCTTGGACATTCTCTCCTGCCCACTGGACAGAAAGCTGTTTCCGGCACAG
-GCCAGCTGCTGTGAATACAGCTGCCTTCTGAGTGCCCGTCGGGGATGCTG
-ATGGGCTGAAACAATTTTATTTTCCTGCTGTCAGGGCAGGATCTGCTCGT
-GGCTCCCCCATAGGCCTGGGGAGCAGGACCCTGCCCGCCCGCTGTGCTCC
-CGACACCTTTGGTCATCACGCCTTGGCTCGGACGTCGGTTTCAGATGTGC
-AGTTCTGGGGATGGGGATGCCGGGGTCGGTGGAGGCAGCTCAGGGTGGCC
-GGGCCACGCGATTGCAGAAGGGACATGTATCCAGGCTGTAGTGACCTTCC
-CGTGTTCTTGAGGGACTGCTCCCCGGCAAGTCTTCATCTCCAGCAAGACT
-GACCAGAGGGGCCAATCAGCTGGCCAGGAATAGACCCAGCAGCAACGTGG
-GACAGCCCAGACCTGGCTTTCTGCCTGCTGCCTCCCTCCTGGGCCCATCT
-GCCTGAGTTTGGAGTCCAGGCTGGGTCTTCTCCTCCCCGAGGCCTCCCAC
-CCCTGAGCGCCAAGGCCCAGAGGAAGCAGCTCCTGGTTGGAAGTTTGCAG
-GAGGAACTTGAGGAAGAAACTGAAGAAAAAGTGAGTCTCCCTCACAAGGA
-GAGTCAGGTCGGGCGGGCGTGGCGTCCCCCTCCTGGATGACAGGCCACCC
-AAGCACAGCTACAGGCAGCTGTCCTGGCCCCTGGGGAGGGATAGAGGAGT
-CCTGCAGTGGCCCTGCCATGTTGCTCCAACACTGTGGAGGTCCAAGCTGG
-AGGCAGCCCTGCCTGATCTGGCATCCTCACCCCCAGACCTTCCAGTCCCC
-CAGGCCTCCCTAGACCCCGAGAGCTCACTCCCCAGAGCTCCCCATTCCTG
-CATCCCAAACCTTCCAGGCCCCTGGGGCTCCCTATCCCCGCCCCCGTTGC
-TCTGTCTGATGTCAGCAGCTCCCTGACTCTGACCCTTGCCATTCCAGTTC
-CCTGGTCCTCCTGAGCCGCCTCCCTCAAACCTCTTTCCTGAATTCTCTTT
-CCTGGGGCGGCTGCTCTGGGCCCCATGTTCCCTCTGCTGAGGGCTTCTGA
-GGCTTCTCTTTCCTGTTCCCTTAAGCTGGGCTATAAGGGCCCCCAGGGAG
-GGGCTCTCTCCCGCCGGCTCTGTGCAGCTGATGTTCTGGGGATCCTGCTG
-TGCCCCGGGCTCCACACCTGGATGCAGTGGTACAGGCAGCCAGCCGAGCC
-ACCCTCGGAGAACTGACCCTATGCGGGGCAAAGACACAGGCCTCAAATCC
-ATCCATGTGTCTCAGGGCCCTGTGCAGAGGAACCAGGAAGAGGTCGGGCA
-CCAGGCGAGAATGCTGAGGCCTGTGGTCCAGGGAAGGGCTTCAAACAGGT
-CCTTGGAGGGACATGAGTTCTGGATGAGCCTGGAGAGCTGGAGCAGGAAG
-AGGTCGGGGAGCCGCGTGTGTGACCTAAGCAGGGCTGCGGCAGGCGGGGC
-CAGGGCTGCAGGTGGTGCGGCCTCTGTCCCACACGTGGAAAAGTGTCCTC
-AGCCCACCCACAGGACGGAAGCCCTGCGCTCAAGGAAGGATGCTGGAGAT
-AGACGTCACAGGAAAACGCATGATGGAAACTTCTAAAAAGAAAACGGAAA
-AACAAAGTTAAAAAAAAAAAATGCTGGTGTGTACATTTGTGTATTTCAAA
-GACCTCAGGGTGTAAGGACAGAAGAAACTTCTCACATGTTGGAAGCCTGT
-CTCTGAGTTCCGGTGCCAGGGCACCGTCCCGGctccctgtccatccctct
-cccggctccccggctccccagctccccgtccatccgtctcccagctctgc
-gtccatccctctcccgtctccccgtccatccctctcccggctccccgtcc
-atccctctcccggctccgcgtccatccctctcctggttccccAGCtcccc
-ctccatccctctcccgtctccctgtccatccctctcctggtccctgtcca
-tccctctcctggctccccagctcaccgtccatccctctcccgtctctctg
-tccatccctctcccggctccccgtccatccctctcccggctccctgtcca
-tccctctcccggctccctgtccatccctctcccGGCTCGGCGTCCATccc
-tctcccggctccctgtccatccctctcccggctccccgtccatccctctc
-ctggctccccagctccccgtccatccctctcccggctccccatccatccc
-tcttccggctccccgtccatccctctccgggctccccgtccatccctctc
-ccggctccccgtccatccctctccgggctccccgtccatccctctccGGG
-CTCCCCGTCCAtccctctcccggctccccgtccatccctctccgggctcc
-ccgtccatccctctccgggctccccgtccatccctctcccggctccccgt
-ccatccctctccgggctccccgtccatccctctcccggctccccgtccat
-ccctctccgggctccccgtccatccctctcccggctccccgtccatccct
-ctccgggctccccgtccatccctctccgggctccccgtccatccctctcc
-cggctccccgtccatccctctccgggctccccgtccatccctctcccgtc
-tccccgtccatccctctcccgtctccccgtccatccctctcccggctccc
-cgtccatccctctcctggctccccagctccccgtccatccctctcccggc
-tccctgtccatccctctcCTGGTGTGGCTGAAGATGTGTTGTTCCATGAA
-GCGCCGCCCTCACCGTGTGGACCGGCCCTGCCCAAGCACTCTCAGGGTTC
-TGCACAGGCCAGGCAGCTTAGCCCAGTGGTGACCAAGTCCACCCCCAGCT
-CTGTCCCTTCCTTTAGGATGGCCTAGGGCGGACCCCATGAACCTCAGTTT
-TCCCACTTGTAAATGTTATCCCAGCATCACCCCCAGGAGTCACAGAGGCC
-TCGTGAGGCTGCAGAGGGCCCGGTTCAACCGGCACCCACCCGTGGTCTCA
-CTGCAGCTGCTGCAGCCCCGGTGGGTGTGGATGGGTGGCCATGGTCCCCC
-CACCCTGTGTGCAAGGAGGATATCATGTCTGAGGCTGAAACCACCTGCTC
-ACCCCAGACCCCAGGCCCTGGCTCCGGCCTGTCTTCTTTGCTGGAAGCAG
-AGTTATAAATAACTTCCAATTTGGGGCTCTGTGGGGCTGGCAGGAGCGTG
-TGCGTCCCACGACCCAGGTTGCTGCCAGCTTTTGCTGGGTTCTCAGAACA
-AAAGATGGAAGATCTCGAGGAGACTTTAGTGCACAGCCTCCTGCTGTACC
-CGCCATGCAGTTGCCTGCCCAGTCCCTGCTGCCGGGGCCCTGTGGCATTT
-AGTCTCCATTCAAGTCCAGGTAGCCCCACAGCAGGAGAGAAGGGCGAGGG
-GGCTAAGAGGTGACGGCAGCACACTGAGAGGGGCCACCAAGAAAGGGAAG
-TGGGCACCCACAAACACAGAGGATGGGGAGGCAGGAGGAGCTGAGGGACC
-CCAGCACTGCTGCTGCCCCTGGACAGGGCAGCCTCCCAAAATTTGCCCAC
-CACGACTGGGCACTGACAGCCAGTGTGCCAGGCCCCTTGTGCATGCCAGG
-TCTCTAGGGCAGAGGAGGACTGAGGATGTGGTCCTCACCGTGGGAGGTCC
-TGGTCCAGTGAAAGAGGATCCAGATGTCCTGGCTCTTCCCACTGCAGCCG
-CCTTGGGAGCACAGTGCTGCAGACACCTGCACCTGTGCCTGCTTCACTCC
-CACTGTGCCACCGTCCAGTGCTGGGCCGGGCACACCAAGCTGTGTCGGCT
-CTCATCTTAGGGCGCCCGGGTGGCAAGAACTGGGGAGCATGGAGAAAAGG
-GCCCCCAGGCCCAACCTGCGCTCCCACCACGGCTTCTGGAAGGATCCTAA
-TCTGGCTCAGGCTCGCTGGAAACCTCAGACATGTTGCCTAAATTCTGAGC
-ATCCATTTTGTTCTCCGGGGCCCTACCTGTCAGATTCAGTGGATTGCTCA
-GAATATTAGTGGATCCTGGAAGACATCGTGGTGCAGCATGCAGCACTCGG
-AGGCAGGGCCTGAGCCACGCTTATCCCTGAGCACATCATGCTCAGAGTTG
-TAGGGAGAGGCAGCCCCTGCCCATCGCAGCTGTAACCAAGGAAAGCACAT
-CCAAATGCCTGGAACCGAGTTTCCCCCCAATTAGGAGAAGCACAGAAAAT
-GAGGGGCTCCAACCCGTGAGGACACGCACAGCTCAGCAGTAGAGACGCTC
-TCCTCATTTCAAATTGTTTAAAAACCAGAGATGAggccgggtgcggtggc
-tcacacctgtaatcctagcactttgggaggctgaggcgggtggattgcct
-gagctcaggagttcaggaccagcctggggaacacggtgaaaccctgtctc
-tactaaaaaaatacaaaaaaaaaaaaaaattaggcgtgggggtaggtgcc
-tgtaatcccagctacttgggaggctgaggcaggagaattgcttgaacctg
-ggaggtggaggttgcagtgagccgagattgtgccactgcactccagcctg
-ggtgacagagcaagactccatctccaaaaaaaaaaaaaaagaaaagaaaa
-aagaAAAAAACAGAGGCAAGAAGTTTCCAAGAGAGGCGCTTTCCCTGATT
-CTCAGACAGAACACACGTGTAGTTATTTAGTTGAGTTAGAAGATGGGGTC
-TGTCCTTCTTGCACACACTCCGGATCCTGGGGTGTTGTCCACATGTAGAC
-TCTCCCACTCCTGCTTGATCAAACACCAGCACCCCGTCGTTGGGGGCTGG
-ACATTGAGGGGAAATGGCCTTAGGTTCTCGCACAGATCCGTCCACTGTCC
-TAGGAGCTGTGGAGTCTTTGCGAGGGTACGGGAGCTCCCCGTCAAGCAGA
-CGTTGTTGTGGACTCACTGGAGACTCGGGGCCTCCCAGGGCCTGAGGCTG
-CGGCTCCCCAAGGCCGTCCTCAGCTTCCCATCGATCCCATTCGTGGAGCA
-CAGTGGGTGTTTGATGACAAATCACAACTTCTGCACCCCTGTGGATGTGT
-TCAGAGGATCCAGAACTCTGTCCTCCTGCTCCAGGTTGTGGCCAGCAGTC
-TGGGCTCCCTAGACCAGCAGCTGGCAGGAATGCCAGCCCTGCCACTCTCC
-AGCCTCAGGAATGACCTGACCTTAGAACCCAGGGCTTCTCCAGGTGTCCC
-CTAGAGCCGTGATGATGAGGGGATGAAATGGCAGATGGCACCTGGGTGAG
-ACCCCCACACCCAAGGGGCTGCAGATGAAGGGGTTGGGGCAGAAGGGGTA
-CAGGTGGCTTTGGGAACATCTGCCCCTCCACCCAGAGCCCCCTGAAGTTG
-CTAGTGATGTTGATACATATCATCGTGAGCTTCTGTCCCCTGGTGACCCC
-ACGTCCCACAGGACCAGGCTGAGGCTGAAAAGAGGTCTTCTTGACATCCT
-TACCAGCGGTTGGTCAACTGTCCCACAAGTTGGTGAAAGCAGAAGACCCT
-GACGTCATTTGCATATAACCCAGAAGCACAGTCATTGTCACTGTATTGAC
-AAAACCCTGACAGCATTTGCATATTACCCAGAAGCACAGTCATTGTCGCT
-GTATTGACAAAAGCCTGACGGCATTTGCATATTACCCAGAAGCACAGTCA
-TTGTCGCTGAATTGACGTGTGTCTGGATGAGGCCTTTGCTTTGCGGGTGA
-TCTGTGGCTTGGTGCTTTCGTCGGTTTTTTTTTGTGCGTGTGTTTATTTC
-TAAAGCCAGGCTCCTAGTTATACTTGATGATTTCAAGGTTGTGTTTCATT
-ACAGTGTGGCAGGAAGGCTTGACACGCGTGGAGTCCCCTGGCAGTTTTTG
-ACTTTTGATTTCCGTCTCTCCCCTTGTCTTGACCACACCTAAATTCACAG
-CAGATTGTTTTTTAGAAATGTACTCTATTGCATCTTTCGGTAATATTCAG
-CTAGTGTTCATGGAAACAGCTCCTTGCTTGCTTTCCACACTTACCTTCCG
-TTGACTTATTTAATTCTACTTAAGTTATACAGTCCCGGTGGCAATACCAG
-CTACAGGGTCACAGCCAGGTTTCGGAATAGACACGGCTCTCTTGGTAAac
-gcacacacacagacacacacacacTCGGGGCACAGTGATGCAGGAGTGAC
-CTCGGACAGGCCCGGATGTTCCTCCCACGTAATAAAGACTTTCTTCAAAG
-GCATTACACACAGACGAGAGTGCTGGTTAATAGCTTAACGCCATAAGCTA
-ATTAGCTGGGGGCCGGTGGTGAGAGAGCGCCAGGTACGGCACTTGCTGGG
-CACTGTGCCCTTTCATCAGCCTAACAGCCCAGTGCTCAGTTGCCACTCCT
-CTCACCTATTTTGCTTTTAGAAGGTGCTGTTTGCACCCTTCTCTTCAGAT
-GAGGCCAAGAGGCTCTCTTGGCCAAAGTGAGTTTACCTGAAGGGACGGGC
-TGAGGCCAGAGCCAGGTCGTTGGGCCACAGACCGTGCACTCGCTGGTTCC
-TCCACGGCTCAGGAACAGCCTCCCACTGCCAGGACAGCCTAGGAGGCTGG
-GCCAGCACCTTCATTCAGTTCAACGCTTTCTATCACAGAACTGTTTTGAA
-AAAATTGCAAACTTTCAAACTTGTCATTGGCAatacggtttggctctgtg
-ttcacacccaaatctcatgttgaattgtaatccccacatgtcgagggaga
-gagctggcaggaggtgattggatcatgggcgcggttttccccatgctgtt
-ctcatgacagtgagtgagttctcacgagatctgatggcttaaaagtgtag
-cccctcccccgttgccggctctccctcctgcctccatgtgagacgtgcct
-gcttcccctttgccttctgccatgattgtaagtttcctctgtggcctccc
-cagccatgaggaactgtgagtcagttaaacttttttttctttataaatta
-cccagtctcaggtagttattcatagcagtttgaaaactgaccagtgcaAT
-CAGTTTTATGATTTTCCCAAGGCCCCGAGTCTCCTTACCATGGAGTGAGC
-CGTTACCTGAATTCCAGGCAATGGTATTTTCTTGGGAGGGGAGTGAGCGT
-TCGGAAGCAGAAGTGCGTGGGGATGGCTTGGCTCTGCCGTCCCTCAGCCC
-TTCCTGTCTCCTGTGGGATCAGGGGTTTGCTCACAGGACGGTGATCTTTG
-GAGGCTTTGTGGGGTAGAGGGAGGGCACTGTGTTGAGAGGCACTTGGAAG
-TAGGCAGAATTGAGCCCAGGAGGAGAGGAGGCAGCCGTGAAGCGTGATTG
-GCCTTCCCAGGGAAGGGCGATGGAGTGACTCAGAACTCCCAGCAGCTGTC
-CCATAAAGCCTCCACATCTCATGATGTGACCTAACCATGGTCTAGAAGTA
-CAGTGACCCTTCCCGTTCACGAGGCTGGACACCCAGGACTCAGGTAGGAA
-CAAGGTTGATGCTGCCTCCAGAGCAGACCAGCCGCAATTCAGTCACTGTG
-TGCACTGTGTCACCCTGGTAAGCACCTTGGCCCCTTTCAGATTCTCCAGG
-CCTCCCCACACTCCTGCCCGCTTCCCAGGATCTTTGAGGTTGTCAGCTGG
-GACAGGCAAGTGCCCAAGGCACTAAACAAAGACTGAGGCTGTGTCTGGGT
-AAAATCCCCCAAGAGCGGCTGAGAACTCCAATTCCTTGGAAATACAAAGG
-TTTCCATGTTTCATGGTGACCCCAGGGCCCGACCTGCTCACACGCTGTGC
-CCGGCACTTACCTCTCGGGGTGCGGCTCCCAGAGGAGCTTCCCAGAGCTT
-CCCTGCTGATAGGCTGtgttgaccaagaagccaaactctgtaaaatattt
-aaggaggtttattctccgccagtgaccatggccttgggtgatagtctcag
-gaagaccacgtgtgcctgagttgggttatagttggttttatacattttag
-ggacacagaagttacaggcaaaggcataagtcagtgcacttaagatgtac
-gttggtttggcctgggaaaggggagatctccaaggtgggggcttccaggt
-cataggtggattcagagatttcctgattggcaattggttgaaagagttaa
-gctttgtctaaagacttcagaagtcagtaaaaaggaatgctggagttaaa
-atgggaggttatggaagccacagttcttattatgtagatgaatcctgtaa
-gcagcaggcttcagagagaatgaatgtctctcctaggaccttaaaaggtg
-tcagactcttagtgaaatctctcttggatccaggaaagacctagaaaaag
-gagatgcaaattttcctcacaagagacggctttgcagagccatttcaaaa
-tatgtcagagaaatgttctttggggtaaaatattttgatttcctttagag
-cctgctatgtgtcatgtgatgctgcaccagagtcaggttggaatttggta
-tcttattgccacaaattatccatgttgtcagtcttatgatctctctttta
-atgatactgctggtcagtggggcctaaactccaaaagggagggggcgtat
-tgaggggtgtctaatctcccatcccatcatggttgggaattcagtttgtc
-agatttctctgggctctccttggcctatgggggtgtctgttcagttggct
-ggggggcttagggtttcattttgggtttacaGCTCTCTGCCAGTTAGAAA
-ACACCCCATTCAGAGTCCTTTGCATGTACACCTGTTGCCGGCTGCATCCA
-TCACCACTGGTCATCCTTCCTTGTGGTTCCAGAAGCTAAGAGGAGGGCAG
-GGCCTGGAAATGCAGATGCCTTCCCTTAGTACACACAGGCCCCACGTGCG
-CCCCGGGAGTACACACAGGCCCCACGTGCGCCCCGGGAGTACACGCAGGC
-CCCACGTGCGCCCCGGGAGTACACGCAGGCCCCACGTGTGCCCCGGGAGT
-ACATGCAGGCCCCACGTGTGCCCCGGGAGTTGGAAGGGGTGCTGAGTGGG
-GTCAGCACAGGTGGCCAAGGTCACTCCCACTTCTTTCAAAGCTCCTTCCA
-GCGGGCAGGTGGAGGAGTTCCTTGAACTGTGGGCAGCAGGCAGTATGGCG
-TCTGAGGCCGCCAGGGGTCTCTGCCCAGGAGGGGAAAGGAGACAAGCCTA
-GGTTTCACTGtgcctttgtctgctatggctgctataatggagtgcataga
-cagaaatttgtttctcacagctctggaggctggaaatctacgatcatggt
-gccagtagggtcgggttctggtgagcactctcttctggtttgcagacaac
-tgtcttctggctgtgtcctcacatactggaaaggatgaggggcctctctc
-aggtcctttttgtaagggcactaatttcactcatgagggctccactctta
-tggcctaatcactgcccaaaggccccacttcctaataccatcacttgggg
-tttagatctaaacatcataattgcaggggggcacagaagttcaaaccata
-gAACGTGATGCTCAGGTGTTtggatgtttgggtgagtggatgggagaaag
-aatggatggatggatggacaggtggattgatggatggtgggtagatgaat
-ggatagattgatagaaagtggataggttgatggatgcttgaatggatgga
-tggatggtgaatcgatttttgaatggatagatgggtaggggatggatgga
-tggatggatggtagacaagtggatggatggatggattggaggaaggatgg
-actgattgatggatggatggatggactaatggatggatggatagatggag
-atgatggatggattgatggttgaatggatggatggatggatggatggatg
-gatggatggatggattggtggagggtgggtgatgaatgagtgaattgatg
-gatgggaggatagatgatggatggttggatggtggacaagtggatggatg
-gatggattgatggaggatggatagatggatgaatggattgatgaatgggt
-ggatggatggatggatagatggtgatggtggatggatgtttgaatggata
-ggtggatagataggtggatggatggattggtggagggtgggtgatggatg
-agtggattgatggatgggaggatgggtgggtggtgtatggtggatggatt
-gagtggatagatagatggataggtggatggatgggtgggtggatgaatgg
-atggtggacggatggatgggtggatgggtgggtggatgaatggatggtgg
-acaggtggatggatggattagtgggtgatggatggatggtggatgatgca
-tggatggtaatggatgtttgaatggatagatagatgggtgggtagataga
-tggatggatTGGTGGCAGGGGTGGGGGGGCATCTGTGGATGGGTGGATGG
-GGGATGGCTAAATATTTCCTGAACCTAACTATGAAGCCTTCTGTGAGCCT
-TGATGGATCCAGGTCCTAGTGAGGGCACCAGGTTCCCTGAGAAGGCAGTC
-AGAGTTCTCAGCCTCCGTGTTAATTTTGCCATGGCGAGTGCCTCCCCTTG
-AGGCAGTGACATTCCACTTGTAAACAGGACCATCCCTGGGAACTCTCCCC
-TCCTCACTCTCCCAGTGACAGATCCACAACCAACAGCACCCAGCTCCATA
-CACACCCTGCTGGCCTCAGGTCACCTCCCTAAGTGCCCCACCTCTGAGGG
-GGGAACATGTAGCTGCCCCCACATACCACGACCCACCTTCCCTGGGCTGC
-CCCAGGCTCCCTGAGTGCGGCTCCACCAGCACTTAGCGCCTGGGACCTCC
-TGGAACCAGACAGGAGACACTTTCCTTTTTGGACATTAAAATTAAAAACT
-GCGGCTGCCTCTCCTGTCTTCTCTCTTAAATAGCTTCTGTCAGTTCGTAG
-GAATTTGCCTGAGGAACATGATTAGAGGGTTTTTTTTTTTCTTCCACTTA
-CATGTCTTAATGAAATAATGAAACAGGTAGCTTATTACAGTTGGGGTTTT
-TTATTGTTTTTTTGTGTGTTTTGGGGTTTTTTTTTCCCTCTCTCTCATCT
-AATTTGATGACCCAGACTTGGAGGGTTTTGCACTGGCGCACCCTTCATAA
-AGGGAGGCGTTTCCATTCTTGAGCGTGATGGGGACAGTTCCTGGAGCTAA
-TGAATCACTCTAATCAGAGAGCCATCTTGAAAATTAATACATTCTACTGT
-AACTATTTAAAGAAAAAATAATTATCAAGACTGTTCCCACTAAATTATGC
-TGTCTAGAAGTTGTAGAAAGAAAATTTTATCTAATTTTAAGATGTAATCT
-GGGTTTTGCAGATTTTTCTTTTTTGAGTGATTAACAGATCAGCACTGAAT
-AGCAAGGACCAGAGCACGCTGCCCTTTTCTCAGTGTTCTCCTGGAGTCTT
-GTCTTGTGTCAGCCTCATGCACCCCAAGGCCTTGGCCCTGTCTTGGCTCC
-TGCCCCCTGAGGGCCAGATCTTCAGGCCTCTTAACTCCCCCTGGCTGCTC
-GGGGGACGGTGGCTTTCCCTGGCCGGCTCCTCCCTGGGTTCATTTCTAAG
-TAAGCTCCTTGCTTAGCTGAAAGGAGAGTCTTGACTTCCCAGTTTCTGAG
-AAACAGTGTGTCCTGATTTAACAAAAAAAGAGggctgggcacagtggctc
-atgcctataatctcagcactttgggaggccaaggctggcggatcacctga
-ggtcaggagttcgagatcagcctgaccaacattgtgaaaccccatctcta
-ctaaaaatataaaaaactagccaggtgtggtggcgcatgcctgtaatcct
-agctacttgggagcctgaggcaggagaatcacttgaacctgggaggtgga
-ggttgcagtgagccaaaatcgcaccactgcactccagcctgggtgacaga
-gcaagacttgtctcggaaaaaaaaaaaaaaaaaaagagagagaaAACCTT
-TGTTGATGTGCTGCAGTTTAACTGCTAAGCACAACATGAAATGGCCTATG
-TATGTCCTTGGTGTGGGTCCCTCCAGCCTCTGCACCTGCCTCCCAGGAGG
-ACCCCGTACTCACAGAAGTCTTCAGCTGCAAATGTGCAAGATGGCTAGAG
-CAGTTAGGGAGGCGCGGTTTTCAAAAACGCGTGGAACCCTTCCTCTGGTC
-TGCACGCCGTATGCAGCGGGGAGTGTGGAGCAGATGGACGTAGACACGTT
-ACCGGGTCTGACCCCCACCCCAGAGATGGGGCGCCTCTCACCCACCTGCA
-AACCCCACATCTCGGGTCCACATCTGGAGCACCCCCGTCTGCCTTGTCCT
-CAGGCTCTGAGTTCTGAGAGGGATTTAGCGATTCCCTGACTTGGGACACG
-TTCACCCCAGAAAAGGCCAGCCTGTACCCTCAGACCCAGGGCCAGAAGCA
-CAGGGTCGGGTTCTGACGCCTGAGGAACCTGCGCAGACTTGAGAGCAAGT
-CCTCTGGGTGGAGACAAAGTGGTGACGTGAGATGTTGCTCAATCTTGAGG
-CCCTGCTGCTTTACCGAGTCTGAGCCGATGTTATTCACTGGCTCTCAGTT
-TGGGGTCCTAGGTCACCCGTGTAGCCCCTCGGGCGGACAGACTGGCCTGT
-CCCCCACCCACTCACCCCAGCTCCCTGGGCCAGCCCAGCTGTGCTTTCAT
-GGGGCTGGGGCCAGACTGTGCAGGAAAGAGCAGGTTGATGGGCTGGTATC
-ATTGGCATAACAGGTGAGGGGGGCCACAGCCTTGGGCCTTCCTTGCACCA
-CCCTCTTTCCTGTCCCCGGTTGGTGTAAGTGTCTCTGAGCCTGGCTGGGT
-GCTTCCCTCAGTCACTAGCAAGGTCCTTGCTGCCCCCAGGAGCCAGTCCC
-TCCAGGATGAGGGATACGGCAAGGGAGCGCTCCCTGTACACCGCTCTGCC
-TTGCAACCTCTTCCCTGGTGGCCTGGCGTCCATCACAGGTGGCCTCACAG
-CACTGGGGGAGGTGGGCTTGGCTGGGGTCAGTGGATGTGGAGATGTCCAC
-CCTGCCCTGTGGCATCAGCTGGAGGCCAGGGGCCTGTGCTCCCCCCACCC
-CTCCTGCATGGAAAGATGCTCATAACTGCATTTGTCCTCAGCCTGCCAGG
-CAAGGGGACGGGGCTCCCAGCGGGTTCCTGGATGTGACCCTTCTCCCACC
-CCATCTCCTTGTGTTCACACAATGACCCCTTGGCCCAGGTGGTAACTGTG
-TGCTGGAGACCCACAGAGAACCACCTTGAGTGGACTCCACATTCCAGAAA
-GTGGGTCTGGGTGTGATAGGCAGGTGTGAGGGCCGGGGCTATGGAGGACT
-GTGGCTCTTTGGGACGTGTATCAGCCACACAGCCGTACCAGGGCCTGTGT
-GCCCAGTGTGCAGCCTCCACCCTACTGGCCTCTCCAGCCCCTCCATGCTT
-GTAGCGAGATCCCAGGTGCTGGCCCTCCCACAGGCTTACAGTGATGACCA
-GCCCATCGCCAGGGCCAGGGCCCCTGCATCCTCCTGCAGGCCCTTCCTGC
-CTGCTGTGCTGTCACCCTCTTATCTTTGTGGGCAATTCACCCTTTAAACC
-TCATCTCTTCTAGGGAGCCCTCCTGGCTGCCCTGTGGACTCCCTCTCTGT
-AGTGTAGCATCTTGGACTGATGTAATCAGAGCTCTTGGGGACAGGCCTGT
-GTCCCTCAAGCTGGACGTGACCTGAGGCACACGGAAAGTACAGCCCCAAT
-GAGTGGCCTTGGCCTCTGCCCAGGAGGCTGTGGGCTGACCTATGTCAGCC
-CAGGCTTGGGGGGCCGTGCTGCCCCCGCCCCCTGTCTTCTATGATGAGTT
-GATCCAGGCACAGAGCTGCCTGTCGTGGAGGGAGGACGCCTCGCCTCCTG
-AGCTTACCCCACATCTGGATGGGGTCCAGAGAGCGCCCACAGCATCTGCC
-TGGAAGCAGCTAGGTGAGCATCAGGAAGATGCTTGACCCTCCTGAGCGCC
-GTCAATCTCCAGTGGTCAAGGAGACCCGCCGTAAAGCAGGAAGCACGAAG
-CCAGTCCCTGAGGCCGCAGCGGCCGGTGAAGTCCCTCCATACCTGAGGCT
-CCCAGGCAAGCCTCAGGGCGGCCCGGGGACCATTGGTGGTCAGGGGCTGT
-GGGCTTCCTAAGCTCAAGCTGGCTCGGGTGCGAGGTGCAGGGGCCACTTC
-TGGGCCCCTTCCCTTGTTTGCCAAGTAGGGAGCCGCCTCCTCTCGTGGCT
-GTAAGGGTCTGATGGAAGGATGGGCGGGGCCGTCTTTCCAAAGCCCTGGG
-ACTGCTGCTGATGCAGATTTTACTTCACGTTTGACATTTTTGGTATCGTC
-ATCCTCCCGGTCTTTACTGAGTAACAAAACCAGCAAGGCCTAAGAGGGAA
-GATGGAGACGTGGCCAGGACAGGGTCGCCTTGTGTCGGGCACCAGGACCG
-CAGGTGAGGAGGCAAACTGGGTTCGCCTGTGTGCTGAGCACCCAGGGCAG
-ATGCAGCCTCGCGAGGAACGCAGCCTGGAGAGGCTCACAGTCGCAGTGGC
-ATGGCTGGGCAACGGAGGACGCGCCAGGAGCAGGCTCTTCTTCTGCCCCT
-GCTGCAGGCGCTCAGTCCTGCCATAATCTGGGAGGTGACCTCTGCTTTTC
-CCCACCTGTGGACCCTACGGGGCGCCTGCCCCTTGGCAGGTCTGCTCAGG
-AGGAAGGCCAGGTGTCTGGCTCTCTGTGCTGGGCACATCCGGGGAGGGCC
-CCAGGCGGCTGACGTTGAGTCTCGTGGGATGGCGAGGTGCTGCCTGTGGA
-GACTCGGGCCCCAACTGTCTGGGCCCTCCCAGGTGTGCTTGTTGGCTCCC
-AACTGCTTCCAGGAGGTCCCTGTCACGGGATCCATCCTGAGACAGCCCCC
-CTTGGATGGACTGAGCTGACACTAGGTGCCCTGGAGGGCTGAGTCGTCCT
-CCAAAGGGGCCTGTGCCACCAGCTCCTAGGGCAGGAACACTGGGTGCCTC
-CTTCCTGTCCCCAATCAGAGAGGCCCTGGTTTACTCCTCCCTGAACCTGG
-GATGGGGCAGTGTGCCAGGGGGAGGAGGCTAGGGTCTTCCTGGGAAGACA
-CCGAGACCTGAGCCCTGGCCCACCCAGGAGACCCTCCCTTCCTTCAGCAA
-TGGCCTGTGGCCTGAGAGCTGCCTCCAGCCTGCAGGATGTCAGACAGTGA
-GACCCTCAGAGTGCAGGGAGGGCTGCAGTAGGTCAGCAAATGGGGCTGCT
-GAGAGTCAGGGGTCCGCTGCAGCCCTGGGCCCCTCCCTCCTTGCTGTCAG
-GCTTAATCAAGGCAGCTGGGACTGTGCTCATGGGAAAGGCAAGAAGCATA
-TTTTGGGACCATTAGAGGCAATTTTGTTTACCTGATTTATTTTAATTTAC
-TTAATTGAtttaattttttaagagactgagtctcgccgtgttgcccaggc
-tggtctcaaactcttgggttcaagtgatcctcctgcctggacctccccaa
-ttgctgggatcacaggcctgagccaccatgcctgcccTTACCTGGTTTTT
-GAAAGAGGATTCAGTCATAGCCTGACAGTCTGATGAAGGTTAAGGATATG
-AAATGAATCCCATAAATGATGATGGCAGTGGCAGCAGGGCACAGCAGTGC
-TGTAGGATGGGGAACTCCGCAGAGCTCTCCAGCATGTGGAGTAGTATTTA
-AAACGCATACGTATCTAGACAGCCTCGTGACGGTGTGCAGGTGGCCATAC
-GAGGGGCGTGTTCCCAGGAAGGTCAGAATGGGAAGCAGCCGTGTGTCCTC
-AGTCACCGACCTCAGGCCCCGTTGGGCCCAGGCCAGGAACAGCCCAGAGC
-TTGCTTGGGACCTCAGGAGCCCCTCCCAGGCCACCTCAGGGATGGGGCAC
-CGTTGAGGCAGGAAGGGCATCGGCGGCGCCTTGGGCCCCGTCATCTTGAG
-AACAGTGTAAGAACTCCGCGAGCCCGTGCTCACTATTCACAGAACTCAGC
-AGAACTCAGCAGCGTGTTTGTCAAGGGCACTTACTCAGGCCCAAGGCCGT
-TGGAACGCTGCCCTTCGACCCTGTCCGCCCACTCGGATTCCCAGTAGCTG
-AGCGCAGGACGTGACCTCGAGTCGAAGCCTCTGCTGGAAAATACGTCCTT
-GTCTGCCTGGAGGGGCCTCAGTGACGGGGCCTCACTCGTCCTCAGAGCAG
-CCTGGCAGGATGAGTCCAGAGCCATGAAAATGCTCAGACCTTTTCATCCC
-ATAATTCTGCTCCCAGAAATTTGCCCTAAGAGAGTAATTGAAAGGAAGAG
-GGAAAAACCAGGAAAGCACAAACACCCGAAATGTACCACCACCGGGAATG
-GCCAGGTGAGTCGGAGATCCGTGCGCGTCATAGTGCAGCCCGTGCAGGCA
-GTAAAGGAGGGACTGCGACTCTTGCAGATGGCTGTGACTCAACCATGGGT
-AGATGAGGAAGCATAGCCTGAGGTCCCAGAGGAGACCAGCAGGTGAGGCC
-CGCAGGAGGGGCGGCTGGGCCTGGAGCTCAGGGAACTCTGTTCCCACCCC
-TGGTCCGGCTCTGGGCCTTGGTCCTGTTTTCTGCCTTCGTCCCGTCCTGC
-CCCGGGCCTTATTCCTGCTCTCTCTCTGTCTCAGTCCCGCACCACACCGG
-GCTTTGGTCCTGCTCCAGGCCTCATTCCTACTCTCTCTCAGTCCTGCTCC
-GGGCCTTGGTTTCTGAGGGCCTCCCCCAACCCTCCAGCCTACCCTGGGCT
-TTGCATCTTCCAGGCCACAATCCTGACCCAGCTGTGGGGTGTGGTCAGCC
-ATGGCCACCTATACCCATCTTACTGACTATGCCATCTCAGATGGACGCAG
-CTGACAGATGGTGCCCCGGGTGTTTCCGCCGGGTGGGGAAACTGTGGGGT
-CCCCTGCTCCAGAATGCCACCCTCCTGTCTTCTGTAGACGATTCAGCATC
-TCCACTGGGCTGTCGGCTTCTCCTCTTTCTTCAGGAAGCCCGTGGGCCCC
-TCTGAGGTCCCTGCCCACAGGCCACGCGGaggctgactgcatccatgttc
-cagcatcaccgcttgtaagccgtgtgaccttgggcagacttcttgagctc
-tctgagcttctgtgtcctcttctgtaatgtgaagatgaagctaattgatt
-ccccataggTAGAAATCAATAATAAAATTCCAGTAATAAATGAGCATACC
-AGTCCCTGGGAGGACCAGCAGGGCGGCCCTGACAGTCGGCAGCTGTCCAA
-GGGCCCCAACGCTCAGAAAGCTGGGGAAAGGGGTGGTCAACATTAATACA
-CACAAATACGTAGAAATGACTGTGTGGCATAGCCCCAGGGAAGGCTGGCA
-CTGCTGGGACACCCTGCGCGTTTCCTGGTGTGTCTGGGCTCTGACGTTTC
-GAGTGGGGCCCTTCCGGAGTGCAGGAGGCTCTTCTGGAGGTGTGGGACAG
-AGACTCCTCCCAGAAACACGGGCGCTTCCCAGCCAGTGCTCTGGGCCTGT
-TTGCCTTTTCCTGAGCCCTGAGCCCAGGAAGCCCGGCTGTGTCCGCTCAC
-CCCAAAAGCCTCCTCCCTGCCCCATGTGCTGGTCACAAGTCACCAAGCCT
-GTGGGTATCTGGTACTGCTCCCGGGCAGTGCCTCATCTGATGTTCTCTGT
-GTCCCCGGGCCACAGTGCCCTGGCAAGGGCTGACCTACAGGGGGAGGCTG
-CCTGTGAGCAGCTCCAAGACCACCAAGGGctgcccaccgctcagacctcc
-tcccccaccccccaccgctccagacctccgcccccacccgccgccgctcc
-gacctccgcccccaccccccgccgctccagacttccacccccaccTGCCT
-GTGAGCCTTCCTGCCCCAGGCTGGGACCACTGGGGAGGTCAGGCCTCAAA
-GTGCTGCCTCCCATCGGGCAGAAACGGGAGCCCTGAGCCCTCCTGTGAGC
-TTCAAACGTGCCCTGCAGAGATGGTTTCACAGTGACCGTCCTCAGTGCCT
-GTGTCAGGACTTACTGCCTGTGGGTTCTTCTGTGGTACCTCTGAGATACC
-CCATTTCCATTTGACTTCGTGAGGCCAGGTGgtgtgtgtgtctttgtgtg
-tctgcattgagtgcttgtgcatttgtgtatgtgtgcacattgtgtgtgtg
-tgtgtgATTTGTATGTATTTGTCTGTATTAACGTTGCCCACTCCTTTTCC
-CATGCTGTTGATTGAATCCTCCATCACCAGCCAGATCTGGGAGACTCGAG
-GGACACTCTTCTGGGTGAGACACTGCCAGGGAGAGCAGCCTCCCCAGCTC
-AGACAGCTGAGATGTGTTTCTGACGATATCTGAGTAAATGCCCAAAGATT
-TCTCCTGGAATCTCACTGGTTTTGTTCTGGATGATTCATTTTTCCAAGCT
-GTTGAGTACAGCAAGCAACTCTGTGTTAATGGAAATGAGGAAAGTTTATT
-GCCAAGGGAAGCCTGCCGTTCATGAGCACCTCGGGGCTTGGGTGTTGAGC
-TGAGTAATGTTATGGCCACGGTCTCAGGCAAAGGAGCACCACTTGTGCCT
-GTCTGTCTGTTCCCCTGGAGTAGCCAGCATGTTCCTCCCTGTGACGTCAG
-ACCAAGGAACAGTCCTATGGACAATTGGCTTCTCTTCATGGGTTTCATGG
-GTTGTGTGGTTCTCAGGTTTGGGGGTGGGCAAGGGCACCTGGCCAGGGTG
-TGGGCAGCAGGGGCACCTTCCTGAGCTGCCGACTCTTTGAGAGATTGGCT
-GGGGCTTCCTGGTGCTGGAAAAAAATAGGCGGGCCCTCTGGCGTCACCAG
-AGTCCTGGCGAGGGGAGTCAGCGTGGCTGGCTTCAAGTTCTGCATACAGC
-ATCACTCAGTCCCTAGTGTAGGGCTTTCAAGCACCACAGGGCCACACAGC
-CATCCTGCTGACCACCACACAGACAGGACGCAGAGGGTCAGCACTCGAGA
-GCATATAGGCTGTTTGGGACTTCGATGAGCTGGGTCAACTGGGGTCCACT
-CAGACCCTCAACCCCACCTGCCCCGGACCCCTGGTCCGTAGAATTCAGAG
-GCATGTGAAATCAGAGCTGTACATCCCAGTCTCGGGGTTCGATGGGCGGG
-TGCCATGGGAGAAGTGGCGCAGGCTGCCCACCCTCAGACCCCTGCACACC
-CACACTGAGGCTGGGGAGGAAGGAGACTGTGCCAGCCACCCGGGCCTGAG
-CTCTGCAGACGCTGTGGCTTTGCGCATTTCTCAGCACTCTGCGTTTATGA
-CCTTTCCGGCCAGATGTAGCATAGCAGGTGCCTTCCTGtcccttcctatc
-ctccctccactcttccctcttttctcactccttccttccatccttccctc
-ttctcctcactccttccctccatccttccctcctttcctccctccctcct
-ttcctcAGGAACTTTGAGGGGCCCCTGAGTGCCCTGCCCAGGGACAGGAG
-GTGAAGGTGAAGGTCTGGGGCTTCAGATGCCAGCACTTCCTCTTTGACCT
-GCAGGGGGGTCCCGGAGTGAATGGGTGGCAGCCACCTGGGCTCCCATTGG
-AGGGCGGAGCTCCCCCCAACTGCAGAGCTAGGTTCCGGAGAGGGGAAACC
-CTGAAGGATCCCTGCAGGTGTCCAGGCAGCTGATGGCTGGGGTCTGACAC
-CCCTTCACCCCCATACCACTGTTGCTGTCCTTGCTGCCTTCAAAATCTCT
-CAGCCAGGAAATGAGGGTGGAATGAGGTTTGCGCCTGCAGAGCCACCTCT
-GAGCCCaaaccctgtgctacatgagacgcaggttgtgtgtgcaaggcctg
-gcctgcatcattccagcttctaaccagcacagcacaGTCGCGCAAAGGCC
-CTAGGATACGAGGAGGGAGCTCCCGTCTCAGGGAGACCGAAAACCTCCCT
-GGAAATCCAAGACTCCTTATTGGAGCCCCAATGGTAGCATGCTAGCTCCC
-CTGCTGCTTGGGTTAGATGAGAAACCAGGGGCAAAAGGGCTTCCTTGAAG
-GGATGGGGAAGATGGCGTGCCAGGCACATGTTCCCTGGGCACAGGGATGG
-AAGTTCTGAGCTGTAATCTACTGGGGAGGATCCAAGAAGAGAGGAACCTG
-GACTGGAAAGAAGACAGGCCACTGGGGTGCAGTTAGGGCTTGCTTTATTA
-TCCCTCTCTGAACCCCAGCATCCTCATACCTGAAATGAGCTAAGGATGAG
-AGCCTTCACCTAGAATTGCCATAGGAATGAGGGCAGCCATGTGTATGGCA
-CAGGAGGGAGGGAGTCACTCCAGGTAGCTGCTGACGATGGAGATGGTGGT
-TATGGTGACAGtggtgatgatgatgatgatgataatgatgacgatgatga
-tggtggttgtcatgatgtgattagggtgatggtgatgatgacaaggatga
-ggaagatgatgatgaggatcaggatggtggtggtatttatgatgatggtg
-atgttggtgatggtgataatgaaggttatgataatgaCATtgatggtgat
-ggtgacaacaatgataatcatggtggtgatggtggtggtagtatgacggt
-gataatgactgtgatgttgaggatggtggtggtgatgatggtgatgaaga
-cagtatggtagtgttggtgatgatggtaatggtgatagtgctaatggtga
-taatgtgatggtgatgattacaattgatgatgatgttggtgatggtgatg
-atcatggtagtggttatgataatgtgatgatagtaatgacagtgatAAAa
-tgatgatggtgatgatgatggtgatgatgatgagatggtagtggtggtga
-tgttggtgatagtgaggataccggtggtggttatgatgatgatggtgatg
-gtaataattgtcatgatgatggtggtgatgacaatatgatgatggtggtg
-gtggtgatgatgtgtgatggtgaggatgatgatggtgatgatggtCCTGT
-TGATAGgatggtgaggatggtgagcatgatggtgcgacgatgatggtgaa
-gataatggtggcgatggtggtggttaggatgatgTCATAAtgatggtgat
-ggtgatggtggtgataatggtggtggtggtggtggtgatgatagcgatgg
-tggtggttatgattatgtgatggtgatgatgatagtgatagtagtgatga
-tggtggtgatgatgatggtgacaataatgatggtgatgataatggcagtg
-gtgatgatgatggcccaggcaagtggatcacctgaggtcaggagttcgag
-accagcctggccaacatggtgaaaccccatctctactaaaaatacaaaaa
-ttagctgggtgtggtggtgcatcccagctactcaggaggccaagggaagg
-gaatcagttgatgatggtgatggtggtgatggtgataatgatggtggttg
-tgatggtggtggtggtgatggtgatgatgatgatggtaatggtAGTGAAG
-GTGATGATAGGGAGAGCTGACTGAGCTGAGCTGGGAGAGAGGAAGCTGAA
-GCACAGGGTTCTACCCATGATGGGAGGGATGCCAGTGCCATGCAGGGAGG
-CTGACCTGAGTGGGGCACATTCCTCAGGTGTCGTCTTGAACAGAGGCTCC
-CACCTGTTCATAGGAGCATCCCAGGAGCTGAGCAaggtgatcgactagcc
-tgggcctcccaaagtgctgggattacaggcgtgagccaccgtgccctgct
-GACAACGCCTTTTAAGGGAAAGACCCACCCTACTGTTGACCTTCATTGTT
-CTGATTACAATGTTGCAGGACTATGAACGCACACAAAGCTGGGAGCCCTT
-ACCAGGCGGTAAAACTGGAATAAACCAAATAAACTGAGGCCTATTTAAAA
-GCAAACACAAAACAGCGAAACCAATAACATTTAAAGTTGCAGCACGCGTT
-TTGCAGGGCAGATGCTTCTCGGTGACAGGGCACTGGCAGTGAGCTCCAGG
-GTGGAGAGATGTACCTGCTGGCTCTCCGTGTGTATACATTTCCCCGCGTT
-CCGTTCAGTGAGCTCTGCTCTTACATACTTAAGGACGTGTCGCATGAAGG
-CGTCTTAATAATCACGTGGCTTTGTTTGTTGTCATCACGCCTTATATTTA
-ACCCAGAGCTCTCCTGGAAGGCACTTTTATGAGCGGGTTCCTGATAACTT
-GCCTAAGATGTCTCTTTCGGGTGAAGACAAGCTTTGCCTTGCAGCGTGAG
-TAAGCGGAGCTTTAAACGGGAATAATCCAATTATTGCAGCGACTGCGAAC
-AGAAGAAATGTTCATTGCATATTTACTGCTGCACTTACTCCTGATGAACT
-GCTCTGAGACGGGGAGAGGGAAGGCGGGAAGCACACACAGTGTGGCCCTG
-GGTGCACCACCCACAGCCCCAGAGAGCAGCTCGCACACCCCACTGACACA
-TTGAGCTCCTGCCTCTTCTTCCTGTTGGAATTTACACGGGGTATTGGGAG
-TGGATGGGCCTTTGCTGGATGTGATGTCTGCATGAATGTGCACGAGTaca
-cgcacacaccatatacacacacacacaccccacctcacacacaTGGGCCC
-CTGGGACAGCATTTGGAAATAAGTGTCCCTCCAGATCACACTTAAGACTG
-TGCTGGATTTGGTCACAGGGCTGCTGGATCCCGAAACCCTTCTTTCATCG
-AATCAGTCAATGTTCCAGAACAAGTAACTCGTGTCCCAGACAGCTGCCCC
-TAGGAACATAGGAGGGGGCTGGGGACAGCAGAGGTCGCCTTCCAGCTTCA
-GGGCAGGGGTGCAAGGAAAGGAGCTGGAAGCTAGCAGGTGGGGTGGGGTA
-GGCATCGGCCTTTCCACACACACTAGGCCGTGAGAGCCTGACCTCGCCGG
-GGAGAGTGTACCCAGGTACGACTAGAGCTCCCGGGGCAGAGCAGGCCGGC
-AGGGGCTGGGGGAGAGATCCTGAAAAAGAACGGTCTCAGGATCCAGCAGC
-CCTTTGACCAAAGCCAGTAGAGTCTTAAGGAGACTGGGGTCTGGGGGTGC
-CCCTTGGGTAGGAAAGGAGGGGAGCGGAAGCGGGCCTGGGTTTCTTCTCC
-CTCGGGAGTGGGGGTGCCACTGTGACCTGCTTCTTGGTACACGTGAGTGT
-GCACGTGGATGTGCATGTTTGCCTGTGGGCACCTGTGTGCACGCACTCCA
-GGGGCAGGGCTCGTCCTGTCTGCAGGCCGGATGAGAGCTTGTCTGGCAGC
-TCTGAGATCATCACAGGTTCTCAGGACACTCAGTAGCAAGAGCCGTCCCA
-CTTCAGCAGTTCAGATGTTCGATCCTGTTATAGCAAACAAGTTCAGATGT
-CTGATCCTGTATGGCAAACAAGTTCAAATGTCCGATCCCACGTAACAGAC
-ACACCCTGCTGGATTTTGACGGTACAGCTCCTCCCATGCCATCTGCCCAG
-CCCTACTTCAGGCTGAGAACCCCACTCAGCTGTCTGCTTCTCGTCCCCCA
-AGTTCAGGCTGGGGAGGAGAGGATGGGAAGAGCCCTCTGGCTGTTACTAG
-AAGCACTGCCAGCTGTGGAGAGGCCCGCAGCCCTTCATCCCTAGGGCCTG
-GTACAATGGATGTGTATTTGTCCCACTTCAGTGGGTGCCCGAGGCGGCAC
-ACAGCTCGAGTGGGTGTCTCAGGACCGGCTCCTTCCATCCAGTAGAGGAC
-ATGGGGCAGAGGGTAGAGGCCCCTGTCTGCAGAGATGACCTTTGCAGCCG
-GACCTAGAGGTGGCTTCCACCCTCCCTCCACCCTGCATGCGTGTCCTCCA
-GCTGTGTCTAGAGCTGTAGATGCAGGCGTGGTGAGAGGAAGCTGGGTGGC
-AGCTCCCAGGGAGGGCTCTCCTCTAAGGCACTGGTGTGTGTCCCCACACT
-GAGGACGTGGCACACCCTCTCCTGCACGGGTCCACCCAGGTGCTGTGGGC
-CGCCCTCCTGGGACCCTGCCTGCCCGCTGGGAGTCGGCGCAACCCTCAGC
-TGCCTTTCCTAGGGTAAACTTTCCTCCCAGGCCTTTGTGTAGATGGGGTT
-TTTGAAGTCCCCTTTAACTCGGTCCCTGTCACCCAAACAGCCACACTGTT
-CTGTCCTCAACTCCATTCAAGGGTCGCCCAACCGTTTTTGGCAAGTTGGA
-CTTTCGGCAAATTGATTGGGAGCCTGAACAAGGCTGTGCGGAGGACCTGT
-GGCCAGCCAGGCCCCGCCCACATCTCAGCCCTTTCTTCCCCATGCTGTTT
-GCAGGGTCACCAGGCCTGCTCCTCTCGGAGACTTCAAGGAGAGCCCGGCT
-CCTGCCCTCCCCTGGCTGCCTCCCTCCCCTGAAACACAGTCCCAGCCCGC
-ACTGGGCAGCGTCCTCTGCGCTCTGCCCTCCTGGAGCCCAAGGTTTTTAT
-GCTGCCACTGACGAGGGTCTAGGTGCAGCGGCTGCGTCATCCCGGGGACT
-GGGGGGCCTTGGAGCGGGAGCTGGCCTCTGTCTGGGGAGGCAGCTTGAAT
-GTACACACAGAGGGGACCTGGGGTGGTGGAAGGAGCCAAGCCCTTCTGTA
-GACCTGGGGACTCATTGCCAGGGAGCCAGGTGGCCCCGGGGATGATACGC
-ATGTGTGGTTAGTCTGCAAGAGGGCACACAGTGGACTtgtgtgtgagtgt
-gtgtgtgtgcgtgtgtgcgtttgtgtgtggacatgtggctgagtgtggta
-tgtatgtgtgtgcctgtgtCTACATATGTGAATGGCATATATGTACGTGA
-TGGAGAGCATGGTGTGGGATGGAAGATGGGGCTGACTGGCACCTTAGAGA
-AGTGTTTCCAGGCAGAGAAAGAGCACTGCTGGCCCAGGGCCTGGCTGGGC
-TGGGACTCGGGGGCTGTGGGGTCCTACAGAGGCTTGAGATCGGTGAGACT
-CTAGATCCAGTCTGGACAAACCCACTCTGAGACGCACTCCTATGCCCCCT
-TTCTATCCTAGGCAGGGGCTCCCTGGCTCCCTTCTCCAGCCACGTCCTAA
-GCACCTGCTCCTACCGGCCCGGGGACAGGCACTGCAGACATAAATACGCA
-TGAGACCCTGTGCCCTTTACGCCCCGTGCCCTTTACCTGTCGTGTGCTCA
-GGACCCCCCAGGTTAGCCCCTGTGGATGGGTAATGACGTTTGTCTGCCCA
-GAGCCCACGTTTCAGTCACCGTCACTCACGCTACCTCAGGAAGCTCTGTC
-AGCCCCTGGGCACGCCGCTTCCCTTCCCTGAGAGCTATTGCAACATTGCG
-ACCAGAGGGGAGGCCTCCTCACCCGAGCCCGGGGAAAGGGAGTTGTGAAA
-TGTATGCTTGAAAGGCCCCTTTGTCCCCGGGACATGGTGGCCCGGCGCTG
-TGCCTCTGACCGTCTCCAGCAGGAAGTGGGCTGGGGTGGGTGAGCCCAGC
-TCCTGCCGTCAAACAAAAGGTGTTGTGTGCTCAGGGCCGGCCCGCTGGTG
-CCCTCGGGAGGGCCAGGCCCAGGGACGGGGCAGGCCTGCTGCCTGCTTGT
-CCCTTTGTTCTGCAAATGCTGAGAGCAGGCGAGAGTGTACATGTGGGTGC
-ATGTGCAGATACATATCtgtgtgtgtgcatgcatgtgtgtgcgtgaacgt
-gtgtgcatgtgtgcgtgtgtgCTGCACCTATAGATACGTGTTTGTGAGCA
-TGCATGTAAATGGGCAtgtgtgtgcctgtgtgtgtgcctgcatgcctttg
-cgtgtggtgtgtggtgtatacatgtgtgtgatgtgtacgtgtgtgtgttg
-tgtacatgtgtgtgtggtgtgtgGCCAGGCATGGCAGCTACAGCATAGGC
-AGGGCTGGAGCCACCTTCACCAGCCTAAGTCCCCCCGGACCCCGCCGTCC
-TTCCTTCTTCTCCTTCAGGTGACCCTGAGCACCACCGTGCATAGTACCAC
-ATCATGTCTGGCAGGGATGAGGGTCCTTTCCGTAGACAGCCAGTGGGCTG
-GGCCCTGGCACTGGAGAGGGTGTGTGTCCAAGATGCTGAAAGCTGGCACA
-TCACCCCAGATCCCTCCCCCATCCTCAGCCCCACAGTCCCAGTGAGCTCT
-GGTGGCTTGCATCCTAGCCTGACCGAGAGGGCCCCAACAACACAGCCTGT
-AGGTTCTGGCCAGCCGAGCCTTGTGCTGGGTAGTGCGCTGTGGCCTGCGC
-CGTATCCACCCTCAGCGTCCTTCTCCCGGGATTTCCCAGCCCAGAGCATG
-AGCTTCGTGGTGGGCATGAGGTCCCAGCTGAGCTCGGTAGTGAAGGATTT
-GGGCCCAGGCCACCTCCTGTCCACCCTCTCACAGCCTGCCCTGCAGGCAG
-GTCAGGACCTGCCCTCGGACACCACCCACACTGCCCGGGTTTTCTGGTCT
-GTGCCAACCCCACTCCTGCTGGCCCAGGCCCTGCCCTGTGCTGCAGAGAG
-TGCCAGAACTGGCCCGGGCAGATGCAGAAACATCTCCCTGTTGCAGTTGA
-AGGGCTCACTTCACCTGAGACAGCCCAGTCCCTGCTTCTGGCTGTTAGGG
-CAGAACAGGACAGGCACTGGGGACCCCAGGGGGTTTCTGAGGCCCCGTTC
-AGCTCAAGATGAGAGCAGGAGCCACATTGCACTAAAGACTACCTTGGGCG
-CCATGGTACGGGGTGGATGGGAGCCCACGTGGGGATTTCTTTTAAGCCAC
-ACTGGAGCCTCTTCCTTTCATGTCCTTCAGTGTTGGTGCTAGAGAAACAC
-ACCCTCAacacacacgcgcacacacacacacacacacacacGATGCTTTC
-TGTAATTTGTCCAGCTCTTTTCTCAGGCATTGCAAGGGGATTTCTGCTAC
-TGGGGCATGTGTGTTTCATCCTGTAGCTTCCTCGTGGGTTTAAGGTTCGT
-GTTTGTGGGTGTCTGAGATTTTCTACCATATTTACTGTTACCCAACACGA
-TGCATCAGGGATGGGAGACACAGCTGCTGGTGGCTTTCTGCAGGAATAGA
-ACAGACAAGAAAAGGGGCCCCGGGAAGACGCATGACAGATTCCGGCCATC
-CCCACTCATGGCGCCATCCCCTCTCTCAGCGCTGTCCCTCGGGGTTGGTG
-GACGTGCAGCAGGTGGCTGGGACCCTCTGAGGGCCTGGGAGCTGCAGCCT
-GGGTGGCTTGTTCTTCCTGGAGTCGCCCTGGGAAGCCGGGGGGTTCCCTA
-TCCCCACGTGCCATGTTAGTGGCAAGGAGCACAGTTGCTTTTTCTCGGAG
-GGAGACACTGATTCTCAGCTGGAGTTTCCTCACCTGACTCTTCAGGTGAA
-CGAGGGATGTTCCCATGTCTCCTGGTCTCCTGGCtgtctcagccggctca
-ggctgccgtagcaaaactccgcatactgaggggcttaaacaacacacgtt
-tattttctcacggttctggaggctggacattcaggatcatggtgctgata
-ggtttggttcctggtgaggatctgattcctggcttctaggcagcatctgc
-ttgctgtgtcctgagatggtgcagggggctggggagGGgagagagagaga
-gacagagaaagagagaCAGCGAGCACACATGCTTgaactctctggagtct
-cttaaggacaggaatcctggcagatcagggccccacactcatggcctcat
-ctaaccttcttcaccttctgaaggccccatctccaaatCCAGGGGTGAGG
-CTGCACTGAGAGGATATTGCATCCCTAGCACTGACCTGGAAAGGGATTGG
-GGGTAGCCATGCCCGGCTGGTGGACGCCTGCCTCCCTGGCTGTGGGTGTG
-AAGGTGCCGGGGGTGGGGTGGGGCAGGACTGGCTGGGACACAGCACCCCA
-CAGCGTCCTCTGCCGTGGGTGCTGTGGCAGGCATGACCAGCCCATCTCAG
-ACTCCTCTCCACTGCAGTCATGCAGGCTTCAGGCAGCTCCTCCCCCCTTG
-TCGGAACTGAGGACGAGAACCCATTCATTCTGCCTGGGATGCTGTCCCTT
-TGTCTGTCTTCCAGAGGGCCCCTGACCTCCCAGACCTGCCTCCCCTGCGA
-TGACCCCAGGGCCTGTGCCCTCGTGGGGTGAGGAGTGAGCTGTTCCCCAG
-GACCCTGTCCTCTGCTGCCCACTGCTCCTATAGGAACAGCCACTGCCTGT
-ggtccagcggcatgattggctgaccctgtgcaaaatgaaatgcaaggccc
-ttgttaaaaattattcagaatttcaagacttgggaactgcagagcgttgt
-ccaagcggtggccctcctatacctggagccgtgtgcagcagcctgtttgc
-atagccatgaagccagcccGCTGCCCGTCTGGAGGACGGTATGTTAGCAC
-ACATGTGTGCACACACGTGCATTTGCACAACTGTTTATGTAGTTGTCATA
-TCCTTCCTATGGCGAGGAATCTTGGAAATTTTTTCAGGTTTTCAAGTAAA
-CAGGTATCCTGGGGAACTACAGTTCTGGTTTATGCACATTGAGAGTTGTG
-TTCTTTATTTAAAAAAAGGAAAAGAGGTGACATGGAATAGAAAACCCAGG
-AGAGAGGAGGAAGCCAAGGGCTCTGGAGCTTCGTGAAAGGGACCGGGGCT
-GCAGACGGGAGGTGGGGGCTGGGGGCCATGGGGGCCACTCTTGCCCTGGG
-CCTGGGTGTCTGTGCAGCCTGGGCCTGGTGTGGGTGACAGAGAGGCCTTC
-CCTACTCTGCAGGGCTGGCAACTGAGGCAGCCCAGACACTGGGTTCTCTG
-CATCCTGGGGCCAGTGGACCCATCAAACATTGAGCCCCAGGAAGGAGGGA
-CCCAAAGGAAAACAGGAAGGGGCTTCATGCGTGCATTGCCCACATCCAAC
-AAGATGAGTTCCAAGCCTCTATTCGGAACAGTGAGGACCCCGAGGAACTC
-GGAACAGTGAGGACCCCGAGGAACTGTGAGTGGGCGAGGAAGGGGAGGAA
-AAGGCCCACCCTGGCCCTCCCAGCACTGGCATGAAGCGAGCCACATGCAG
-TCCATCCACTTGGCACGTAGAGTGGGGTGCCTGGCTCTCACCAGCGAGTG
-CAGTGGGGATATGTGACTTCATCCGTTCTCCTAGAGCCTCGGACCCAAAC
-TTTCAAACTTCTTTTTCATGTAAGATGCAAAGTTCTCCCTAATCTCCCGC
-CATAGGGTTGAAGTCGGTGGTAGAATCCTGTGTATATAAGTGTGCATGTT
-TATAACTTAACCTTGAACTAAAATACTGCCGGGCAGGTGTTTGGTATCTG
-ATCTGAATGCCTACGTTTTTCAACTGGATGGCAACCCCTGTTTGTAGGTC
-CAATTTTTATAAAAGTAATTATGTGTGCATTAGGAAGGACATATTTTTTC
-CCAGTTTGAGAAATGACTAATCGTTCTTTTGAGATTCCCGCAGCGAAGGT
-TATGTTAATACAATCAGCTTTTACTCCGCCATGAAGTCCTTCTCGTGCTT
-TCTGGTGGAGAGTAATCTCCAGTCTGCCTAACACCTACAGCCACAAAATA
-GGGTGGGCCTCCAGGGAAGAGAGAAAATGCAATTCTCTCTGGCATGGGAG
-GAGTTAATGTGGGCTTCAGAGTCCTTGTGCTGGTGGGGAGCCAGTGCCCC
-CATCCACCTGGCCCTGCCCTGCCCCCTGCCCTGTCCAAGGGCCATCACAA
-GGACTCACATCCTTTAATCTTGGAGGCTTGACATGGCTGGTGCTGGGCCG
-GCCCCAGGGGTCAGCCGGGCATCTGCAGATGAGACGAGGCGGGAGTAGGA
-TGGGGGCCAGGGGTGGTTGTAAAATCCTCCAGTCAAGGATGGGAAATCGA
-CTCCCCATCTCCAGCCTGGCCTCACTCTGAGCTCCAAGCCTGGGCCCCCT
-TGTTCCCCTTTGGTTACCTCCCTGTGCACAGGCTGCCCTCGCTGTATCTG
-AGGATGTCCTGACTGGGAACCCCCTCCTCCTGCCTTCTTCTGGCTCTCAA
-GTGGATTCCAGACAAGAGACAGTGAGGCAGCCACACTGCAGGAGGGGCCA
-TGGCTCTGCTTCACAGACATGTCTCTAGCTCCCTCGATCATTGCTTGCTG
-CTCCACGACTGGCCGATGGCAGAGCGGGACTTGGGGAGCAAGCACTAAAC
-CAGGAGACCAGGAAGCTGGCAAAGCCCCTGGGCCCAGTGTCCCTGTGTGA
-GGGTCCCTGGGTGGAGCCACGCCGGGCATTGCCTGAGGGCCCCCCCAGCC
-AGTGCCAGGACCCAGGTGCCCTCAGCAACACCCTCACGATCCATGAGAGT
-AGCACGCTGATTGCCTCTCTCTTTTCTCCCACAGCAAGAATCATCAAGAC
-CAAGCAGTGGTGTGACATGCTTCCGTGTCTGGAGGGGGAAGGCTGCGACT
-TGTTAATCAACCGGTCAGGCTGGACGTGCACGCAGCCCGGCGGGAGGATA
-AAGACCACCACGGTATGTGGCCCTCGGCTTTCTCGTGGGTGTGCTGGGGA
-GGGGGTATGTGTGTGCGGGCCTCCGACGCCACCCGGGCTCCGCGGGGACA
-GGTGGCAGCTGCTCACTCCATCCTCATGCAGAGAGGCCAGGGCCCTGTCT
-CCTCCCCCACCTCCCTCTCTGGTGCTAAATTCCTGACCATCTGTCCTGGG
-GCAGACGGTCTGTGAGTACATGGGGGCTGAGAGCTGGATGCAGAACCAGC
-TGCAAGGCTGGTCAGCCCAGAAGTCAGATCACTGACCAGGTCTCGAAACC
-CCCTGGTTAGAGCCGTCTTGTTTCCGGGACTGATGTGCCCGTGATTTTGC
-AGGCTGGAGGAGGCATCCGCCCCTCCTGAAGATGAACTTCTGATAACTCC
-CCCAGGGCACGGCGGGGGTTCTGTGGAGACAGGGCCAGGTTCAGGTTCCG
-TCCAGGTGTGCTCCTTCCGTCCCTGGGCCTGGCCTGGTGGCTGCTCACAC
-CAGAGACCCGGAGGGCCCTTCAGCTCCTCTCTGTCCCCCTGAGTGGGGCA
-TGCAGTGCACCCCGCCCTCCCAAAGCCACGGCTGACCTGGGTCTCTAGAG
-CTGCTCTTCCCAAGGGCGGGAGCTTGGGGAACGCCGGGTGGACATGGGCC
-TTTTCTGAAGGCGGCGCCTCCAGGCATGCCACGGATGCTGAGGCGGTTTC
-CCCTGCAGAGGGGCAGAGGAGGGGAGCCCACGCCCACGTGCATGGGGCTC
-GGGGCATTCCCATGAGGTGGCCTCAACTCCTCACTAGCGAGTGGCACCCC
-CTCATCCTGGCTGCTCCTCCTTTGAGGTTGGCATTGGAAGCTGAGGACGT
-GAGTGGGTGAGCGTTTCCCTAACACGGATCCGGGCTCCACGCTCTGGGAA
-TAGGTCAGGGAGATCTGTGGCTGGGCAGAAGGATCTGGAAAGCCCCCTGG
-CATCCGAGCCTCCTCCCAGGATTGCACAGGGAGAGGGGGCTGCAGCTCCT
-CACACTGGGCTGCAGGGAAATCCTTCCCCTTGCTGCCTGAGCAGCCTCCA
-AGAGAGGGCTCGGCTGGGCTGTTCCGGCACTTGGTTCAAGAGGCCAATTT
-GGTGGAGTTGCTGCAAGGAGAACCACGGATCCCTGGGGTTCTAACGTAAT
-TCGGGGCTCTCAGGGTCGTCTTCTGAGAGTCGCACGGCTTTCTGCTGCAG
-CCAGGATGTCAGTGAGATGGGCAAGGCGGCACTCCAAGCCCCCCATGGGT
-TTCTCAGGGACCTCTTGCATTTGTGGAAGTTCATGCAGACTCAGCCTCGC
-TGGCAGCCCAGGGCCTCCCCAGGTGTGGGCCTGCAGGAGGAGTGTGAGGC
-CAGGCAACGGCGCCACCCCGAGGCATGCGGACAGGACAGGAGATGAGGGA
-CGTGGGTTGCTCTAAGCTGAGGTCCTGGGCTTTGCCTGGTCAGGGTTTGT
-TTATCTGGCATTAAGTGCAGAAGCAAATGATTCCGTCCTGCACCCAGGAA
-ATGCACAGTGCTCTACCATGTCCTTACTGCTACCTGTCTGCAGAGGGGGT
-CTAGGCTCTCCTCTGTCCCTGCTGGTTGGGGTTCCCAGGCCTGCGTTACC
-GCCCTGAGTCTCCAGCAACACAAACAGCAGGTGCATTCCATCCACCTGTG
-GACCCCAGTCAGGCGCAGCCTTTCGTTTCCCTCATAGAAGCTTCAACATA
-AGCGGCCACCTCGCCCTGAATTTGGGAGGGATGGGTGTGAAAGCCACTCT
-GGGTCCCAGCTTCCAGTGACCCATCACTTCTCAGTCGCCCTTTGATGAGC
-CCCTCCTCCTCGTGATTTGAGGCCCACGAGGCGCCCAGGCCAGCGTTCAG
-GCTGCACCCCTTCAGGAACGAACTCGGATGCACCTCTGTGAGAGGACTGC
-TCAGTTCACCGGGGTGGGAAGTCAGGGAGTCCACAGACCCTGTGAGAGCT
-GGCGGTGGATAAGCAGGTCATCACTTGGATGCAGGCAGCCCTGCTGAGCC
-AGTGACAGGGCCAGGACTGGCCCAGCCCCTCCAAAGGCATCGAGGTGCTT
-GTCAGGAACAGGATTGGGTCCTTACCTGGAGGCTGCTGGCATCATCACAT
-TTTGGTTTTTGGTAATTTattgggctgaaattcacataacatcaagttgt
-cgattttaaagcgagcagctcagtggcattgggcacactcacagtgctgt
-gccaccaccccctctaccttgcttcagggcatttgcatccccctggaggg
-atgcccttcacccaccaggcaCCATCGGGGTCTTCAGATCTGCATGAAGG
-CTTCTCCTGTGCAGCTCTGCAGCCGCTCCTGCCCAGGGTTACCGTGGCAG
-ACCTTTTGGCCCCACTAAGGGCAACGCTAATTAAAGTGACCAGTGAAGCC
-CCCCGTATGCAGGGCGCACACTGGTAAGTGGGGGACACAGATGTGGCCTG
-TCCCCAACCTGTCAGGCTGCCTGGATAATGCCTTGTCAGACAGCTTCATG
-GTGTTTTCCTTCACTGTTGGCCCAAACCCTGGACCCAGCCCTCCCTGCCT
-CCTGCGTTCACCCAGAACGCCTGTCTTCTCCTCTCTCCTCCCCTGTAGTT
-CTTCAGCACCTGAGTCATTCTCATGAAATCTCATCAGGGACCCCTTCACC
-CACCCCAGAGCCAGACCAGGGCCACCCAACCAGCCTCCCGCATCCGTCCA
-GGGCCGCCCAAGCAGCCTGCCGCGTCCGTCCAGGTCTGCCTGGCCAGCAT
-GGCTTCTGTGTGTGCAGAGACAGAGAACCGAGGTGCTCACCGTGTCAGCT
-CAGTCCAAGCCCACAGggcccaccacgggaggcagtgagccccccttatt
-ctggggcatttgaggcagaggctgaccaggcacctgggatattccagagg
-ggTTCGAGCCTTCCTGGCTTTGGGAACAATAGCTGCACCTGTCCGGTGCT
-TGGTGTGCTCAGAGAGCCTGGGGGAGATGGCTGCAGACTCCCTTTCCCTT
-GGGCCTCACGGGCTTGGGAGCTCAGTTTCACAGGCTTGAATACTGCGGCT
-GGGTGAGCTGGAGTGACTGCTGGTGGCCAGGTGTACAGAAGTCCAGGGAG
-GTGGGATTGATTCTGCTTGTTCTGCTCAACACAAAGGCCAGACCTGGCTT
-GGTGTGAGACCCCAAGTGGCTTTCAGCTCGGGAGACTCAGATACTCTGAT
-CTTCCCATCATTAGGACACTGCAGGGGACCCCCCAAGCCTCTGCTGGTGG
-AGGCTTAGAGGGCACCTGCAGGGACCAGGGACATGGGCAGGTGGGAGTCT
-GACTGTAGCAGGACACTCCGTCATCCAGCAGAGGAAGGACGGCTGTCCAC
-TTCCAGGCTAGTGACTCTCAGGCACCCTGATTCTTCTAGAGAGTGAGGTC
-TCATAGGTGGAGGGGACGGCTCTGCTTTCCTGGGGGAGAGTGTGTGTCGG
-GGGCTTGAAGACCTGTCTCTCAGCCTGTGCCTCATGTTGCTATGGCGGGG
-GCACCTTGTATACATGGGCCGCGGATGCCTGGGCCGGTAGATCTCGGTGA
-GTGACCGTGTGCTCACTCCAGGGGACCGGGGTGGGCCCTGTAATCTTCCC
-AGGTATCTCGGGAGAAGTCTCTGGGAACAGCAGGAGAGCCGGCTCCTAAT
-GGAATCACTGGCCTGTGGTGACCTGTGTTCAAAGCTTTCTGAAAAGGTTA
-GTTGAGCTCTTGAACCAAACACCATAGAATTGGAAGCTACAATCCCAGTT
-GTGCGATTGCATCTGAGTTCTCTCCTAGATGGTAAATTAGCGCTACATGA
-GATTTCACACTTTACCATAAATTGGTTTTCTGCGAGATGATGGCGTTCTC
-ATAACTTGGCTTTTAGAGACTCAGCGGATACTGAGTTGCTGCTAATTCCA
-TCCTAATGGCCACGTTCTCAGATTAGAGCTGGCCTCCAGCCCAGGCCTGA
-TGCAGGCAGCCACCCGCTCCCAGCCTGCCCAGCTGCGCGCCACCATCGCG
-CCGATCCCCCGTCACTCCTCAACCCCTTCCGGTGTGGGCCGTTGCCGTTT
-ACTTCTCTGTGTGGCGCCACCAGAGTGTGGGTCGCCTAGCACGGGCGCTG
-GGCCTAAGGGTGCTGCTGCCCCGTCCCCTTGCAATGCCTGCGCCTCTCTG
-TGTGACACGTGGATTCACGATTCATGGATTAACCGAGTGTGGACCCCAGG
-CACATGCTGATGCTTGTGTTTCCAGGATCACTGCttttttggggatggag
-tttcgctcttgtcacccaggctggagtgcaagggcacaatcttggctcac
-tgcaacctccacctcccgagttcaagtgattctcctgcctcagcttcccg
-agtagctggaattacaggcacccaccatcacacccagctagtttttgtag
-ttttagtagaggcagggtttcaccatgttggccaggctcgtctcaaactc
-ctgacctcaggtgatccatccgcctcggcctcccaaagtgctgggattac
-aggcgtgagccaccgtgccggccCAAGATcactgcttttgaaagtgcagg
-ccgtcaccccattagtgggttgtgaaattaatttaatagatcatgaccag
-catttaaaaggaggaaggaatagagtgaaaatgtgagagaacatcTGTGT
-CAGGAGGGTGAGCGCCCGGTGACAAAGCACGCGCCTGGGCACACAGGCTC
-ACATGGGAGAAGCCTTTCTCCTAGGTTGCTATGAAAGGCTGGAAATCCGC
-ATCCTGTGGGGACTGGAGAGAAACTGACCTCTGCGGTGCTTTTCCAGGTG
-CTGCCTCTCTGCTGGCTCTACCTTGTGGACGTCCACCTGCCCCAGGCGAG
-GGGACCCTGGGTGGGTGTTTCAGGTTCTCCCGAGGTGTGAGCAACGCTCC
-TTCTTGGCCCGCCACTCTGGCTCCTGCTCCCTGGGGACAGGCCTAGAGCT
-GCTGTCCGCCCTCCTTCCCATTCCTGTGCTCTGCCTCTGCCTTCCTCTGT
-CCTTGAGTTGGGCTCTCAGAGCTGGAGGAGGAGGGACAGGCAGGGCTGGT
-GGGGCCGAGGGGAGCAGGCCAGGCCCACACACAAGCAGGTCTTCTCTCCA
-CAGACGTTCCTTGGCTGGGGCTGCAAACCACACATGCAACTGGCTTTTGG
-AAATATTCTCATCAGTGTTTGCTCAGCCACGTTTTTGTAGTGTTTATGTA
-TTGCAAGATACTTGTCAGTGAGCTGTGCCATCTCCTACATCAGAATCAGC
-CAGCTAGATGGAAATCCTGTTTGCACATTCGCTATTGAGTACCACCTTCT
-AATTCTGTGCTGCATGAAATCACAGTTGTGGGGGTGAAGAAAATTCAGCG
-GGGTTTCTGTATGGTTCTATTCGGGAACTCGTATTTCATGGCAACTCATT
-ACACTAAAAGCCCATTTGCCCAACGTGAGAGATTCTGAGGACGTGCAGAC
-GGCAGCTGCCGCTGATCTCGTGGGGGCTCGGATGTCTAAATTCCACCCCG
-GCCAGGCATCCCAGGAGTGTGGTGTAGTCAGGCCATTCCAGGGCCTCCGT
-TGGATATGGACAAGAGGACACTGAGGTCTCCTTGGGGCCTGGTGGCCCGG
-CCAGCAGCCTGCCAAAATGCTGTCTCTTCTCTCGTCTTGCCATAAACTGC
-TGCTGACTTGGGCTGGGCAGCTTGTGCTGTCAGCCTGCCGGCGAGTTCTG
-GAGGTCAGACTCACCACCGATGGATGATTCACGCCACCTACAAGCCCCTC
-TGGGAAAGGTTCTGTGGTCATCTCGTGGTTCGAGAGCTCTCCCGTTGGCA
-TCTCCAGCAGTGCTGAGCGTCGTCCACGGGGGCCTTGTTTGGGATTTAGG
-AGCCAGCTTGCTACGGGGAGGAGCCTTCTGGCTGCACAGCCCCTGTCCCA
-GTGGATGGCTTGCCTTGTCCAGGCCACCAGGATCCTTGCCCCTGAGCTTC
-CTGCAAGCTCGGAGCCTGGAGGAGGGGCCCATCCCAGGAAAGGCATCTGT
-GCGGTAGCAAGCTCAAACCGTGAGGTCTCTTCGTTCTCGGATTCTGAGGG
-CTTAGCATGTGTCAACGTGGCCCCACTAACAGATCCATGGGAAGAACAGG
-CTAGGACCTACCCTGCCTCAGAGCACCCCCAGCGTGAAGAAGGAGGTGTC
-AACACCGGGGTCCCAGCCCAGTCCTCCCGTGTCTGTGCCAATCCGCCAGG
-CAGCTGGGGCACAAGAGTGCGTTCCCGTGCCAGGCCCTCGCCCAGGGCGG
-CCCTGCAGAAGGACAGAGTGTCCGTGGCCCGCACACTGAGCCCTGATTCT
-TGGAGGAGCCATCCATGGGAGACAGCAGACGCTTTTGCACCAGGGTCCCA
-GTTAAAGAGGACGAGACACTCACACTTCCTTTATGTGCCTTCTGGAACCC
-CCTGTAGGGTGACAGGGACACGAAAGGGGGAAAATGGCCTCCTGCTTTGA
-GTGCAAACTCAGCAAGACAGGTCTGGAAGGATGGGAGCGGGTGGACGGAG
-CTGACAAGCAGAGCTGAGCCCCAGGAGAGCAGTGTGTGGGCTCTGCCTCC
-ATTCTGATGCAGGGCAGTGCTGACGGCCTCCTCCCAGCGCTGTAGAGGTG
-GGCCCAGTTGACAGGCTGCATAAGAGACCCCTGGTCCTTCCCACCCACCA
-CCTGGGCCTCAGCTCCCTGCAGAATCCAAAGAAAACTGGACTCACAGAGG
-CTCATGCTAGAGAGGGAGAGACCTGGGCGGCGTTGGACCCTGCAGCGGAA
-ACACAGCCAAGCATGGCAGGAACTTCTGGAAACCAGGCGATTAGGTGAAA
-ATCGACGTTCTGAGGTGAGTCCCCACTCAGCTCCCTGAGGGCTCAGTCAA
-GAGACAGGAGGCTTCTTTCTGGATACACTTCCTGCCTGTgtgtcctgcgg
-ccaccataaccaatgaccacgttctgagtggctgaaaatggcagaaacat
-attatctcaaggtcctgaaggccaggaggtccaagatcaagtggtcaggg
-ccctgctgtcttgggaggctctcgaggaggcccctcttttgcctctcata
-gcttctggtgaccccaggtgttccttggctcgtggccacagcagtccatt
-ctctgcatccgtcttcatggggcctgctctgtttgccaaatttccttctc
-ccttttcttataaacactccagctattggctttagagtccattgtaaatc
-taggatgatttcatctgaagatctttcactaatcatgcctggaaagaacc
-tatttccaaatcaagtcagattttgaggttccccagtggacatgaacttt
-gggggccccccattccacccaCTGAACTCACCCGGCCCAGATCAGAACCC
-ATGGGTGCCATGAGTTGGGGGCCACAGGGCCCTTCTGTGAAGCCCACCTG
-CCACCAGCCGGCTGTTCAGTGCTGTGCTCCGAAACATGGTGGAAAGCAAA
-GGTCACTCTGGGAGAGAAACAAAACCAGAAGAAGCCAAAGGAAGAGGAGC
-GAGGAACGTAGAGGCCGCAAGGAGTCATCGAGACAGCAGAGGAAGGGCCA
-GCACACCAACTAAACCACAGCTCAGCCTCAGAGACAGCGGACATGCATCC
-AGACACAGGATGGGGCAGGGAGGCGAGGAGGCTGGGGGTGGGGCGGGGCA
-GGGAGGTGAGGAGGCCAGGGCCTCCATCTTCCTCCTCTTGGGTGCTCTGC
-TTCCTCTCCCTGGCTCTCAGCCTTAGGGACATGTTTGGCAGGTGGAAGGG
-TGTGGTTGTGACCCCATGTGCTGCCTGGAACACTGGCTCTGACCCCTGAG
-CCCTGTAGGTGTCATTACCCCAAGCCTGTCCTGCTGGAGAGAAGAGGGGA
-GCCCAGGACTGGGTGAGTGGTGGGGCCTGCTGGCCCGACCCAGGCGCCTC
-AAGAGACAGAGGTGAGCCTGGCCAGCAAGCCTGCCCCAGCCACAGATGTC
-ACCACTGAGTTTGGACAGTGAGTCTGGATGCTGTTGATGGCCTGGCAGTA
-GACAAGTGGGATGGGGAGCTCATTAAAGGAGTGTCGAGAAGCCTGGAgat
-tttacatttaagtctttaatccgtcttgagttaatttttgtataaggtgt
-aaggaaggggtccagtttcagttttctgcatatggctagccagttttccc
-agcaccatttataaaacagggaatcctttcccattgcttgttttgtcagg
-cttgtcgaagatcagatggttgtagatgtgtagtgttatttctgaggcct
-ctgttctgtttcattggtctatatatctgtttcggtaccagtaccatgct
-gttttggttactgtagccttgtagtatagtttgaagtcaggtaacatgat
-gcctccagctttgttctttctgcctaggatccacacatatgtatattgca
-gcactatttacaatagcaaagatgtggaaccaacccaaatgcccatcaat
-gatagactggataaagaaaatgtggcatatacacaccgtggaatactatg
-cagccataaaaaagaatgagttcatgccctttgcagggacatggatgaag
-ttggaaaccatcatcctcagcaaactaacacaggaacagaaaaccgaaca
-ccacgtgttctcactcataagtgggagttgaacaatgagaacacatggac
-accaggaggggaacatcacacaccagggcctgttgggaggtggggggcca
-ggggagggaaagcattaggacaaatacctaatgcatgtggggcttaaaac
-ctagatgacaggttgataggtgcagcaaaccaccgtggcacatgtgtacc
-tatgtaacaaacctgcacgttctgcacatgtatcccagaactgaaagtaa
-aatTTTAATAAGAGCCTGGAGAGCGCTTTGGGAAACTGTACACATACACA
-CACGTATATGTCTACATGGCAGAGATGTGTGCATACATGTACATATGGTA
-TGCCTATAGGTACTGTATGCCTGTGTGTGTGTAGCagcagagtgtattac
-aaacccagtagaatgttggagacataaaactgaggcaatctctcagaaag
-cagagagtggaattttctaaaagaaatgggaactaggaaaggaaaacaat
-aatcagaaaattgattcaggagttctgaacgatataacctcctgaaatag
-cagaaaatgaagaagaaattatcaaagaaatgctttctaaaaatctctcc
-agaactgatgtcagtttccccgtgagagtactcatcaagcccagaaaatg
-aatgaatacagtcgcatcctaaagcatgccagcatgaaatttcagaccac
-gggagatgaaaaacatccccaaaactcagagggaaaaaccaggtcatggg
-caaagacgcccacagcagcgtcgtcgggttctcagcagatcgccgaagcc
-gggaaacagtgttgccaggtcttGCAGAGCGCAGGCTGCGACTCCTGACC
-TGGAACTCCATCACTGCTGGAACGGGCCGTCAAGGGTGCAGGAAGAACAG
-GCTCCAGCCCTGGACATCCCAGGAGGAGCCCTGCACATCCCAGGAGGAGC
-CCTGCACGTACCTGTGCTTCGGAAGATGAGGGGAAGGGGTCAGGGGACAA
-GAGGTGTCTCCCAGGGAGAGGGCAATGAAGAAGCACCCAATGTTTCTAGC
-AGGAATTCGCAAATGAATTCCAAATATGCAGGCATTCAGGGAGGGAAAAA
-ACGAAGATTTTTCTAGGAAAACAAGCACAAATGCCCTGAGGCTCCAGCGT
-GGGAACGTTGGAGAGCTGTGGCCGAGCCAGCACTGCCTCAGCCAGATCCA
-TTGCCCACGTATTCATCAGGCCCCGTTCTCTGTCGGGCACTGCAGGTGCC
-ATTGGAGAGTTCCAGTGCTTCCCAGGGACCACAGAGCAGGCATGGCCTCT
-GCCCTCCAGGAGCCACACGGGGGTGATCATCATTGGGCACAGCTTCTGAG
-GGGGGTGATGGCCCAGTTGAATTGGTCAGGGCATAGGCAAGGGAAGAGGG
-TCCACCCAGGTCCTCTGGGCCAGCACCCTGGAGAGCCAGGCTTAGGCATC
-CAGAGGGACCAGGTTGTCACCAGAAGTGAATAAGGCCCCAGGCTGGGCAG
-GGCCAGTCTGCAAGGCCCGGGAGCCGTCTGTCCTGCGTGTGGTGGGGGAG
-GACACAGAGCCACTTCATCTGGGAGTGAGATAGAGCTGCCTTCACGAGCC
-CAGGTGGGCTGTGGAGCTCGTGGCCTTGCATGGCCAGGGCAGGGCTGCTG
-CGGACAGCAGGCCACGGGCTGAGCAGAAGCGGAGGGCCCGGGAGGGTCTG
-CAATGCCCTCTCCCAGAGACAGGCAGGCGAGAGCCGAGGTGGTATCAGGG
-TGCACCCAGGCGTCCTCACCCGGCCTCTCCCTGGGATGCCCATGGCCACT
-TCCTGGCCCCCTGCACAGCAGACACTGGGCCCCGCTGTGGCCGTCATTAG
-TCAGCAAAGGCCGGGGCTGCTGGAGGAAGAAGGGGGATGCTGTAGCTGAA
-CACTGAGCCTCTGTGGGGGCAGCGGGGAGGCCCCCAAGCAGGAAGGTGGT
-GGCTGTGGTTGTGGAGGGAAGTCAAGAGGTGTCTTGAGGGAGGATCCACA
-GTTACCAGGCAGCCAACCACACGCAAGCAGGGAGGGAGGACATGGGCCTG
-GCAGACCTGTGTGGGCGCCATCCTCCCGTGCGACCTGTGTCTGCCCTGTC
-CGACCCCCATTAGGAGCCTGCGGTTCATCTCCCAGAGCACTCCCCAGAGT
-ACCAGAGCATCTCTGGTACTCCCCAGAGCACAGCCAAGCCGGGGCCTTGG
-GGCCCCCTCCCCGCACAAGGACCCTGGTCCCAGCCAGGCTTCCCCCGGCC
-CCGTGAGGTCAACCAGGAATTCACGCAGCCCTTTCGGATTCTGGAAGTTT
-CTTAAGTGACTGGGAGTTCCACCCCCGCCCCCCAACCTTCCAGTCCTCCG
-TGTGAGCCTCTTCCCTCTCTGTTGCTGGGAGCATTCATAGTCCCCATCCT
-GCACCAGGCTTGCCCTGCAGAGACAGGGTGCAGCTTGTCACTTCCTCCCT
-TCATGTGACAAGGTGGCCCCTGCCCCCGGCTCACTGTCACCATGGCTGAG
-GGCCCACCCTGCCCTCCACCATCTGTCTGTCCCCATGTCCTCCTAGCTGA
-GCAATCCTCTTTGCCCGGCCGGGTCAGCTCCGCCTTGAGGACTGGGGAGC
-ATAGCTGTTCTCAACGTGGAAGAAACGCAGTTTTAATCCATTTTATGGGC
-CCAGGGGGATTTTCAACTTTTTCTTTTGAATCCCGTGTGGGGAGGTGTGC
-AGACATTCCTCTCGCCAGGGGCCCTGGCCTGCACACACCCGCAGGGGCTC
-TGCTTCCCAAGGCCGGCTCACCTTCCCCGTCCTTCTGGAACTAATGCCAG
-GTGGACGCAGAGCCGGCAGGACTGAAGAGAACCGCCCCTCGGGTGAGGTG
-GCACGTCCCGTTCCCCTCGGAGCCCTCCAGCCAGCAGCTCAGCCCTGGCT
-GCCTGGGCCAGAGCCCAGAGGCTCCAAGTCCGTCTGGAGTGTGATCAGAT
-GGCGTTCATGGAGACTGACTCAGGGAACTGGAGGGAGAGGGAGGCTGAGC
-TCAGGAAGAGGTGGCTGCGATGGCCAGGGGAGAGGAAAACTGCCCAGAAG
-GATCGTGAAGGAAGAGGAGAGAGAAGGACATTCCCTACCCTCTCACCAGC
-CCAAGAGAGCAGGGTGGTGGTGGGCCGAGGTGGCCTCAGGACTGCCCCCC
-CTGCATTCTCTCCCAAGGACAAAGAAGGCTGAGGCTTAAACAGGTCTGAG
-AGACGGCGCAGGGGTGGGTACTTGGCCAGAAGTGGCCGGGGACCCGCACC
-TAACTAATCTTTTTTCTGCACAAACAATGAAAAATACTAAGTCATTACTC
-TGCTCCCTGTCTGCAATCCATTTTGCGTTCTTTTGAATCACCGCTATTCA
-TCACCACGATAATGGCTGGACATTTTAATAGATTCTGTGTGTAAACAAAA
-ACGTATATGGCCGGCGCCACATCAGCTAGTATTGTAAGCAGTGACACTCT
-TCATTTTCTCAGCAGAAATGAGCCCAGAAACAAAAAAAAATTGGTTTGAC
-CAAACCCACATTATTTCTGTCTGCACTTTGGGCCACTTTTGTAATGGGAG
-ACGTGACACGCTGGGCGCCATTTACAGTAATTGTCCTGCATTAGGCTCGA
-TCTTCCTTAAAGAATTTGTTCTTTGAATCGTTTTAAATACATAAATGGCA
-AATGGCTGAAATGTGAGGACGCTCGCCCGGTGCAGAAGGGTGGACGGGGT
-CTGTCGCGAAACCCAGTGGGTGTGGCGGGGCTGGGGATTTCCTGGTGCCC
-CCTACTGGTCAGAAAGTTACGTTACGTTGGGTCAGGGTGAGGATCAGGCT
-TAGGGTTTGTCTGAGTGACATGATCAGTGCCTCCTTCTCCTTTTCCCTGC
-CCTTGCTTCCCTGTCTTCTCCCCACCGTTCCCATCCCTCTGACACTGTTT
-TGGTGCCAAGTCAGAGACTGGAATGCAGAGATGAGACACGTGACCCAACA
-TCTCAGGGACACCCCTCGAGAATCGCTGGAGGGGTCACTTTTTGGTGCCA
-AATGGGCCTGCTTGGTTGGCCTCTGAGTCTGGCACATCACTGGGAAGAGA
-GGTGGGAAAGGCTTGCTGAGTAAATGGCAGACAGCACTCTGTTTACCTGG
-CGGGGACTGCGGCAAGGTGCTCACATCCCACCGTGCATAGCCAGGACAGA
-GGGGTCCTGGGGACCATCCTCCGGCTATGCAGGTGCGGGGAGCCTGGTCT
-CCAAGACATGGGGAGACACCCTGTCTTGTTGCTGACAGGGCAGCTTCCCA
-GAAGTTCTCATTATGTTCACAATGGAAATGCAATGCCTTGGTCCCCACCA
-CGCTGGCACCTGGGCACGGAGCCTCCACAGGGTTCCCTGTGCTCGAGACG
-TATTTCTGAGCAGCACCTTCCAGGGCCTGGCTGTGGTCTAGAGGAACTCT
-GCTCACAGTGCAGACCACGGAATGCCCTGGAAGGGCTCCACGTCCTGCCC
-AGACCCCTGGGGACCCTTTCTGGGTGGATCCCAGAATAGGCACTTCTTGT
-TCCTGCCTCAGGCCCCCTCATGCACAGTGAAGTCACACCCACGTGAAGAC
-CCCGGATGAGGAACCCGAGTGGCCCCCTCTCCTGAGGGCGCTAAGGCCAC
-TGTCCCCTGCTGGGCCAGGCTCCCTGACAGCCCCACTGTGTGGTTGCCCA
-AGCAGGAAGGTGGACGTGAGCTCCATCTCGATGGGTGAGGCTTTGGGATG
-CTGGACTTTCAAATGGCCCTGGAATCTACACAATCCTAGGGGAAGGATAG
-AGTCCCGCCTTAGACACTGGAGTCTTCCCCATAGAGGGTTGCCCCTGTGA
-GGGACAACCTCCCTGGCCATTCTAGAGCAGCCTGGGCCACTGCCCCCGTG
-CCACCATTTCAGCCCGCCCACTGCCTTCATGCCACCCACTGCCTTCGTCC
-CGCCCGCTGCGTGTGACCTCAGATCCTCACCAGAGCACTGCCTCCGTGCT
-GCTGTTTCAAGCCCGTCCACTGTGTGTGATCTCAGGTCCTCACCAGAGCC
-GTTGGAACCGGTGCCACTGTCTGATTCCAAGTCTCATGAACTGATTGGCA
-GAAGGTGCTGGCCAAGTGCTGGAAAACCTGTTTTTCTCCTATTGGTTGGC
-AGAAGGTGCTGGCCAAGTGCTGGAAAACCTGTTTTTCTCCTATTGGTTTA
-TAATCCTTATAATCTTACAGATGACATCACTTTGAGATTAATTTCTTTGT
-AAAGGACAAAGATGAACTTATTCCTTCCTGACTGTACTGTGGAAAGTAAG
-ATCAGGGTGgggcacagtggctcacgcctgtaatcccagcactttgggag
-gccaagcaggcagatcacttgaagtcaggggttcgaaaccagcccggcca
-acatggtgaaaccccgcctctactaaaaatacaaaaatgtgccaagcgtg
-gtggcacgcacctgtgatcctagctacttgggaggctgaggcaggagaat
-cgcttgatcgcttgaacctaggaggcggaggctgcagtgaaccgaaatca
-caccactgcactccagcccaggcgacagagcaaaactctgtctgaaaaaa
-aaaaaTTTaataaacatacgtgtgtgtgtgtctttatagtagaatgattt
-ataatccttggggtacatacccagttatgggattgctgggtcaaatagta
-tttctagttctagatccttgaggaatcgccacactgtcttccacaatagt
-tgaactaatttacactcccaccaacagtgtaaaagcgttcctatttctcc
-acctcctctccagcatctgttgtttcctgactttttaatgaccgccattc
-taattggcgtgaggtggtatctcattgtttattgcggcaccgttcacgat
-agcaaagacttggaaagtgaacccaagtgttcatcaatgatagactggat
-aaagcaaatgtggcacatatacaccatagaatactatgcagtcataaaaa
-aggatgagttaatgtcctttgcagggacatagatgaaactggaaaccatc
-attctcagcaaactaacaacaggaacagaaaaccaaacaccgcgtgttct
-cactcataagtgggagttgaacaatgagaacacatggacacagggagggg
-aacatcacacactggggcctgtcggggtggggggctaggggagggatagc
-atcaggagaaatacctaatgtaagtgacaggttgatgggtgcagcaaacc
-accacggcacatgtatacctatgtaccaaaactgcacgttctgccatgta
-ccccagaacttaaagtatataaaaacaaaaATTGAAAAAGAAAGTAAGAT
-CAACATGCAAGGTGGGTGCACGCCACAGGGGCAGTCATGGCCGGGGGTAC
-ATCCTAACAGTGAGGTGCTGTCTCCAATCAGCTGGGCTGCACGCCACAGG
-GCAGTCATGTCTAGGGTCCATCCTAACAGTGAGCATATGTAGAACTGGAC
-GCTGGGCAGAGGCTGTGCAAGGAGTGAGTGTGTGGCTGCATTAATCCAGA
-AAGCCACGGAGGCTTCTATGGACTTGCAGGGGAGCCCGTCTTCTCCTCTC
-TCCTCCAAACGCTGGAGAAGCTCGTTCTAGCTGTCTCTAGCCCCAAGGCC
-GCCCTCTACCTGTGCCCAGCCTGTCCCCTGAGCCCCAGGTTCCCATCATG
-ACAGACCGGTCCCTTTGTCACAGCACCTGTGTGTGCCGTCTTCTTGGCTG
-GTGTGTCCAGATGTGCCTCATTCTCAGCCCAGCTCTTCAGACCCAGATAG
-CAGCACACAGGATACCGGGGCTCTGCCAGCCACCCCCTTCCAAATGGCTT
-CTGCATGCCACAGTGGGAATGAAATACGACGTGTGGCATGGGCGCTTGTT
-AAAGATCAGTCTTTAAAAATGAAATAGAAGGATTTGTGTCTGCATCCAAA
-TTACTTTAAATGTCAGCTCCCCGTTAAACCCAAGATATGGCGGGTGGCAC
-AGGTCCTTGGATGACACCTCTACCCCGTCGTGTTCATCAGTGCCGGCGTC
-TTCGTCACTGCGGCTCTGTCCCTGGGTCCCTTCGCATATCACCTCTTCCT
-GAACTGGAATATAAATCTCAGGCTCCATAGGCTTTGGGCATGATTGAACC
-ACTGTGTGCCTCCCAGACTGACAAGCCCCTTCCAGGGATGCGGCCATTGT
-ACCAAAAAGACTTACTGGGTCAGATCCCACCATCCTCCCCctgcctggaa
-gagtgactgctcttctgcgtgctagggtgggagaccttgtggaagtcagt
-ttatctttagagtttcagtttccttatctgtagaagggggtaagaatgcc
-cccagggttgacccttcaggttcATGGGATGATAAGAAAGGAAAATGGTG
-GACGAGAAAGGTTTCTGAGGCTCTGCTGTGCTCCTGGCCCTCTTGCTTGC
-TTCTGCCCTACCTAAGGCACAGACAAGTTCTCTGTGTAGGAAAAGGATTC
-TTGTTTTCCACATGTGGTATCTTCCAGAGTATCCTGGAATGTCTACATGC
-CCGATTAGAATCCAGCATTAGAATGAAGTCAGACTCTCAGCCTCTTCTTT
-GGGAAACCCCTGCCCATCTGGTCATTGGTGCTGTGCAACAGGAAAGACTC
-GGGGTGCTGGTTGCATTGCTGCAGCAGGAGAGACTCGGGGTTCTGGTTGC
-ATTGCTGCAGCAGGAGAGACTCAGGGTTCTCGTTGCATTGCTGCAGTAGG
-AGAGACTTGGGGTTCTCGTTGCATTGCTGCAAGCAGGAGAGACTCGGGGT
-TCTCGTTGCATTGCTGCAGCAGGAGAGACTCAGGGTACTGCTTGCATTGC
-TGCATCTCTCAAAAGCTTTGTTTTGTTGTTGGTTAGATTTGGCACTGTGT
-AGTCATGGCCATGTGGCTTCAGGTTCTCACAGGACACAGGGACATGTGAC
-TGATGAGGTTTCAAGAGAGGAGGATTGGATGAGTGGGGGATTGCAGCTTC
-CCTCCTCCCGACACCTGGGACCCTCCACTCACAGAGAGAATGAGCTTCTC
-CAGCGTTTGGAGGAGAGAGGAGAAGATGGGCTCCCCTGCAAGTCCATAGA
-AGCCTCCGTGGCTTTCTGGATTAATGCAGCCACACACTCACTCCTTGCAC
-AGCCTCTGCCCAGTGTCCAGTTTTACATATGCTTTGGAAATAAGAACAAC
-TGTCAATAACACCATGACCTAAAGAAAGAAACAAGTAAGCGCTGAAAAGC
-ACTGGGGAAAGCCCCCTGGGGCTCAAAGGAGTGGAAGCCCGTGCCTTATC
-CTCTGAGCCCCAGCTATGACAGTGACCTCCTGTAATGCACAAAAAGCCCT
-GGACTTCCTTCTCAGGCCTGGGTCTAACCGTAGGACTTAGAAACTAGTGA
-TCAGAGGGTTCACAGGCAGGCAGAGGTGGAATCCTACCCACCCAGGGGGC
-ATCCCCTGCTCGGTCCTGCAGAGACTCAGCTCCCAGCCTGCGGCATGGCA
-GGGAGGAAAGGCAGTGGGTGGAGGTAAGTTTCACAGAAGAGGCACAGAGA
-TGGCAGAAGAGCCTCTTAGCTAGAGTAGGAGTAAGCAAGAGGGCCAGGGG
-CGCACCAGGAACTGTGTTCTTCCGTTCAGCTCTCATTCCCAAAGGAGCAG
-AAAACTCTGCAGCTTAGACAGAAGTCTGACCTCCCAAAAGGGAGCAGAGC
-CCAGCCCTGAGGAGCCGCCTCCAGCTGGCGGGAAGCCTGTCGGGCATCCT
-GTGAAGATGAAGGCCTGCTGCACATCGCCCGGACCTTTCAGGCCATCCCG
-GAGTGGGCAGGGCTTCCCACACCTGCAGGAACCAGAGCGAGACTGGAGAC
-GAGCTCCCCGCCATGCCCCATGGCTCATTCTAGACCAGGATTGATTGACC
-TCTGCCGGTTTAAAAGGGCATTTTTTTTTTAAGCCTCAAAGTCAAAACTC
-AAGTATGAGCCCGTAAAAAAGTAATAATAATAATAAGCACTATCTATGGA
-AAGCAATCCTGTCCTAAAGATTTTAGGGCAGAGGTAGCTCTGAAAATAGA
-TCTCTGCAGTAAACAGACAATACTTTTATAGAAAGTGTCTGCTTGTTGGT
-GTCACAGAGATGGACTGCATGGCCGTGACCCAGGAGCCAGGAACCCAAGG
-TGAGGCAGGACCTGGAACGAAGGCAGACATCCAAGGGTTTTCTGAATGAA
-ATAGAAGATGGATACGGAGACACCAAAGATGTAAAAGTAGAGTTTAGTTG
-TGTATTGGGAGCTgcaaataacataaatataactgcagaaaatcaaaaca
-gtgataaggagactaatcttaaaaccaagagataattcacagaaaaaaaa
-aaaaaaaagcaaggaaatggaacaaaacagataaagagaagttggtagat
-ctggaggacagaggatgaatatctaactgaagagtcgtggatgctcctga
-gggggaacctcaatggctccagcagaaggaagaatcacattagagtgaaa
-accatagtgttggaaagaaagttactcgagctggaggaaactgccaacga
-aaaaccaaacaaaaacaccctggatctagccattttatggtgatatcttt
-gaatttcaagaacaaaggaaacccttgtgataaccatccagggaatatta
-agaaaatagaaagacaagagaacaagaatccccacaaacacacatgcaag
-ctgtcccctgaactcagtgagacttagaaccaggagacaagagggagact
-tatgtaaatatatgattgaaacatcgttttacttatgaatttgttctcat
-ttctatttgttttgttgtttttgggcaaagtaaataaataagacagcttt
-agatttgcaaggatttagaaaGCTTACCAgttatgccgaacccttactgt
-cttcagtgcggatggcatcaggttcaagaggttgaagaagagacccagag
-ccagcaaatgagacctggaggtggggggcacttacatacagggtagagag
-gctagtggtggtgggctggacaggtgaactacctcacatacagaaacaat
-ccagtcgtggtagtctggacgggagaatcacTGgtccagtggtggtgggc
-tggacaggtgaactaccttacatacagaaataatccagtcgtggtagtct
-gtacaggagaatcactggtccagtggtggtgggctggacaggtgaactac
-cttacatacagaaataatccagtcgtggtagtctggacgggagaatcacT
-GgtccagtggtggtgggctggacaggtgaactacTTTACATACAGAAACA
-ATCCAGTCGTGGTAGTCTatacgggagaatcactggtccagtggtggtgg
-gctggacaggaaaatcacaaccacatgcaaaaagcttgcagtttatatgg
-cattttcaaatagcaccttcccccaagcaggctccacctggcactcttca
-ttcaaccccggatctggagcctcaatcccctgtgtaggccacgttccata
-ggacgggctgggggctcagatgttcctcatagacaaggagtgtatctcca
-ggttggccactcctggattccctagctcagagcacacattcaggtgtatc
-ttccgtacggggtcactctcagggtatgcttaaattattgctatcaggta
-catttatcatacCACCTACATACCTTTCCTGAACAAGTGAGGAAAAGATG
-CACTCAAGTCAATCAGGAAAGAAAGAAACATCAGGAGCTGAACATTGAAA
-AGGTCACATGTAAGATGATTAATGGTGACCATTGATATCAGTTGAATACA
-TGGGGCTGGATATAAATGATTCCTCTAACTATGGCTATAAAATTGAACAT
-AAGATTCACAGCACTATTATTTAATATACTCTGTATATTATGAAAAACAA
-TTGGTGCATGAAAATAACGTGGTCTGTAACCTCTAGTAAAACTAACAGAG
-GCTGTGGGGAGCAGGCAGTGGCAGGCTGGAGTCACTCATGGGATAGAAGG
-AGCCATGATGATTTAAGTCGTTAGAGAAATGATGTAGTCATTAAGAGTGC
-ATTTGCTTAACATAAAAGCTATCACAAATAGAGACAAAATATAATTTCAA
-CTAAACCACTGAGAGTAAAAAGCAAGTGACACTTGTGCATGTATGTAAAG
-ACAAGACCAATCATGAAAGGAACATATCCAGAAATCAACTTGGATCATAG
-TGTTCGGATAGAATGTCACtatcagtgaagacaataaatgtaaatggatt
-agtctcctctattaaaaagcaaagactatcaaatcaagtgttgaaaatag
-ccaaacgtgttgtcttctaagggcattcctacaaaataataaggttaaaa
-gcaaaaaataaataaagataaatcaggcaaatgCATTTGAAAGGAAATTG
-AGAGGTAAAACATTAAATTGGAACAATATTGTCATATATTGATACATTTA
-CTTATTGACACGTTTATGCCTTACAGTTCAGACTGTAATGAAAGTGTCAC
-ATTTAGAAATCATTATGCACTGATTAGCATACATAAGAATAGATTATGTA
-AACACAATTACAAATAAATTATATGATCAGAAACAATTTTTAGCTGAGAT
-TTAAATAACTTAATCTATATTAAGGTCAAGTAAACACCACCAATAACAAC
-AACAAAAAGCAGCAGTGCATAGATCTTTTGAATACTACAATTAACTAAAA
-TTGAATTTGAGCCACATATCTAAATTATAGTATACAAACAAGGCTGCTTC
-CAATTTTCAATCATTGTTGAAATCTCTACAAAAAGAGCCATAAACCAAGT
-CATGAATTAAATCACACTAGGAGAAGAAATGCACCAGCCCTCTTTTCCAG
-TGAGAATACACTGTATTTAAAATTGAGACTTACACCAAAAAATAAAAGCC
-TTATTAACCAGGACTTTCTTATAATTTATTGATTGAAAGTTTTAATAAAA
-GAAGAAGCCACACTCACAGAAGGTCACATGCAATGtctgaagtccatctg
-ctggtgtccaatgctggatggagcaactgccagatggttaacttggagca
-aacttccctttctatgcctcagtttctacatttataatatggacaaaata
-ccacttcctagggcttttgtaagcattggatgaattcgtatattaaagtg
-atttgagcagggctagcactactgaacaatattatatatgcatttgagtt
-attGATATCCCATTTAGAATGTCATAGAAATAACACACGGTATTTTTGCA
-GATCCAGTGAAAGAGCTACTCATCAGTGTATGTATGTCTTTAAATGCCTT
-TATCTTCAAATCAGAAAGAATGAACACAACTTAAGCGGGAGGAAAAGCCA
-CCCTTCCCCTCAAAGAGGAGAAAACAGCTGGTAAAGCTGAAAAGAAATAT
-TAATGAATTTTAAAAAGAAAGGCATGGAGTGTGTCATTGCACCTTTAACA
-AACCTATAAAAATGTGGTTTTACTTCTTTACATAAAttattttatatcag
-aaaatagagctgaaaggaggaagcagattactaggctgagataggctgaa
-agctacacctgttgcaccagtcagccaagttgtagagcaaaggaaaaatt
-attCACAAGTGTATGCATAGCTAGTGTATCGATCGCTAAATCTGGAAATT
-TTTATTAAATGTATATTTTTTCTAGGGGAAAAACTACCATACATAACTGA
-AGGAATAGATAAATGTTAATATTCTTCAGTAAAATTTTCAGAGAGAAATA
-CTTTAATAGGCACGCTGCTTAAAATATTAAGTGTTCAGGTTTCTTTTCCC
-AAATATTGGAAAATATGGAaaatcatccagtttatcttaggaactaaaat
-attttatatttatttataaatatataataattttatatttatttataaat
-atataataattttatatttatttataaatatataatatttttatatttat
-ttgtaaatatatatttttatattagtatataataatttataaatatatgt
-aaatatataatagtcataaatatatttatattataaattcgtataaaata
-taaattcATAAACATAAATCTGTATAAAATATAAATTCACAAATATAAAT
-CTGAAAAGAGGAATCAGATTACTaggctaagacaggctgaaagctgtgcc
-tcttacaccagtcagtcaagttgtagagcaaaggaaaaattattCACAAG
-TGTATGTGGTATGTGTAGCTAGTGTATTGATCACTAAATCTGGAAATTTT
-GTTTATGtaatttttaattatataaaatataaataaatataaatttataa
-gtttatatttaaatttattttaaatatataaatataaatttaaatataaa
-acataaatataaatttaaatatgaaatatataaatttaaatataaatata
-taaatatatatttaGGAACTGAAATATTTTAGAAAGTGTCCCAAAAGATA
-AAAAAGTTCCAATTAtcatctccttccacaaagacttttgagtctgtgat
-gtgggccaggcaccgtgtcaggcacGCAATTCCTTCAGCAAGCAGCCTAG
-CAGCTGCATACACCCACCCAGCATTGTCCCGAGGGCAGCAGCCGCCTCTG
-GGGATCCGTGTCCCTGGAATGTGCATCCTCTGGTGTTAGTACTGCATGGC
-ACACACATTGCTCACACCTACATAAAATAACAGCACACTGAATTCTGAGT
-CCTTTAAAAGAAAAAAAAGAggctgggcacggtggcttacgcctgtaatc
-ccagcactttgggaggccgaggtgggcgaatcatgaggtcaggagattga
-gaccatcctggccaacctggtgaaacttcatctctactaaaatacaaaaa
-aattagctgggcatggtggcacgtgcctatagtcccagctactttcagga
-ggctgaggcaggggaatcgcttgaacccgggaggtggaggttacagtgag
-ccgagatcacgccactgcactccagcctgggcgacagagcaagactgtgt
-ctcaaaaaaaaaagaaagaaagaaaaGGCCACATGCAGTGCGGTGGAGCC
-AACATGAGCAACAAAAGTGCGTCTTGCTAcaggcccaccttgttttattg
-tactctgctttattgcactttgcaaatattgccgttttcacaaattgaag
-gtttgtggcagccctgccttgaaccagtctgacagcaccatgttttcaac
-agcgtatgctcactttgtgtctctgtgtcacgttttagtaatttcccctg
-tatttcaaactttattactatatctgttacggtgatctgtgatcattgag
-gtttgatgtgactatggcagttgtcttggggcaccacaaaccatgcccgt
-gtaagatggcacacttcacagatggatgttttctgcattctgacagctcc
-actgaccggccagtcccgtctctcctctccacgggcctccctgttctctg
-aatcaacaatattgaaattaggctaattaataaccctacagtggcctcta
-agtgttcaagtgaaaggaagaggcgtccgtctctcaccttaaatcaaaag
-ctagaagtgatcgagcttcgtgaggaaggcgtgtcgaaagctgagacagg
-ctgaatgctaggcctctcgcaccagtcagccaagttgtagagcaaaggat
-aaattattgaagataaatgcaagtactactccagtgaatatacgaatgat
-aagaaagggatagaaagttttaatggtctggagacaagatccaaccagcc
-acaatattctcttaagccaaagcctaatccagagcaagccccaactctct
-cgaattctgtgaaggctgagagaagggaggaggctgcagaagaaaagttg
-gagccagcagacgttgactcatgagtgttaaggaaagaagctgtctccac
-tacataaaagtgcaaggtgaagcagcaactgctgttggagaagctgcagt
-aagttctccagaaaatccagccaggaccattgatgaaggtggctccatta
-gacaatagattttcaatgtagatgaaagagccttctattgcaagaagacg
-cccactgtgggatttcccactagagagaagtcagtgcctggtttcgaagc
-accagaggacaggctgactctcttgttagaggctaatgcagctggtgact
-tgaagttgaagctggagttcattttccattctgaaaaccccaggtccttg
-aagaattaaacaaacctactccgcctgtgctccatacaacgtacaacacg
-gcctggatggcagcacatctgtgtatggcatggttgactgaatcctttaa
-gcccaccgatgagacctactgctcagaacaaaagattcaagatattgctg
-ctcattgacaatgcacttgatcacccaagatctcggatggagatgttcca
-ggagatgaatgctgtgttcatgctgctaacacaacatccattctgcagcc
-catggatcaaggagtaattttgaaattaaagtcttcttctttaagaaata
-catttgataaggctatagctgtcatagatcatgattcctctgatggacct
-gggcaaagtcaaatgcaaaccttgtggagaggattcaccattctagacgt
-cattaagagcatttgtgattcatgggaggaggtcaaaatcatcaaaatta
-acacctgtttggaataagttgaatccaaccctcatgcatggctttgagag
-agtttaagatttcagtggcggaaatcactgcagatgtgatggaagtagga
-agagaactcgatttggaagtggagtctgaagaggggactggactgctgca
-atctcaggatagaacttgaacggatggggaggtacttcttggggataagc
-aatgaaagtgggtttttttgttgttttgtttttctgagacggagtcttgc
-tcttgtcacccaggctggagtgcagtggcgcaatttcggctcactggaac
-tgcaagctccgcctcccgggttcacgccattctcctgcctcagcctcccg
-agtaggtgggtctacaggcgcccgccaccacgcccagctaattttttgta
-tttttagtagagacggggtttcaccgtgttagccaggatggtctcgatct
-cctaacctcataatccacccgcctcagcctcccaaagtgctggattacag
-gcgtgagccaccacgcctggccagaaagtgtttttttgacatggaatctg
-cccctggtgaagatgctgtgaacattgtggaaatgatgacataggatttc
-gaatattccataggcctagttgacagtgcagcggcaggtgtgagagaatt
-gattccgattttgaaagaagttcttctctagttaaaatgctctcaaacag
-catcgcatgctacagagaactctttcatgaaaggagagtcaatcgataca
-gcaaacgttagtgttgtcttaagaaattgtcacatcctcctcaaccttca
-gcaaccaccgccctgatcagtcagcagccatcagcatcgcggcaagaccc
-tccaccagcaaagagatgacgactcccggaaggctcagatgatccttagc
-atttttagcactaacttatttttaaggtatgtactttttttagacatgat
-gtgtttgcacactgagtagactgcagtataatataaacatagcttttata
-tgcactgggaaaccaaaaatttgtgtcactctcttgatcgtgatatttac
-tttattgcggtggtctggaactgaacccaccatatctctgaggtatgcct
-gTATTTCAAAATCAGGTAGAATGACTATATCACCAGACTGAATATTTTAA
-AAAGTCTTCTAATTCAATAGATGCTGGGAAAGTCACTAGGGGGACACAGT
-CTTACTCATTACAAAACAAATCAAATGAGCAAAAGCACCAAAGCCACAGA
-CCTCCAGTCAGCCTGGAGGGTAGGGCAGGCCCACCCAGGGCCCAGCGTCC
-ATCTGAAACCCAAGCCAGCATGTGCTTCAGCCTCCAGCTCTGAGATTTTG
-GGACACAGAACCCAGTTGCCCTATGTCTTTTCAAATGGAACCCTCACAGG
-CAAGTTGCCCTATGTCTCTTCAAATGGAACCTTCAGGGGAGTCCTGCATG
-GTGACTTTTTGGACGTTCCGGCAAATGCAATCACATCAGTGTGTGATATG
-AGAAAATAACGATCCTTGTTACTTGCAGGTGAGGTAAGCAGGTGCTTCAG
-AAACTCTAGAGATTGGCTGAAATGCCTTGGAAACTAATAAGATTTCAGTA
-AACTGGACCGAGTATGAGTATAGAAAGTTCTCTGCTTGTATCCAATGTTA
-AAGTTTTCACAGACCCAGTCTGTGGTGTAGATCTGTGTTCAGCAAACTCC
-AGCCTGCAGGCCAAATCAGGCCCATCCGTTCGTGTGttcattcgcacatt
-gtctacagatgggtgggagccacagcagcagagttcagcagtggcaaaac
-agaacctatggccccagagctgcaaatgcatatactgtctgactctttgc
-agcacaagtttgccaacccctgGACCAGACTAATAAAAGTTCTTCAGCCC
-CACCTGCCAAGAGCTGGAATGGGCAGCCGCCTGCACAGTGTTGGTCAGGA
-TGGGAAAGTGGTGAATTTGCTGGTCACCTTTAGGAGAAGTCCACTCTGCA
-TATGCAAAAAAGGGAGCTACCGTACACAAAAACCGTTGCTGCTGACTTCC
-AAGCACATGTGTTTCAAACTAATGatttaattacaataaatgcatgaaat
-aaatgagaggggaaaactattgatcacagcagaaaacagaaagtaacttg
-aaagaacatgagtaagaaatggttggcacctgtgtaaaatgtaaagactt
-cccgtgagaaatgagaaaagtctggaacaaatgaaagatgccatagacgc
-tgacatggggagtggagggcgaaatatcgtgaggccagctgttctttcaa
-aagttaatctttacatttagtaagatttgaatccagtttcccatgggttt
-tcagaatttcacaagatgattttacgttttatcctagagtgtaaTTCAGT
-CTCGGGCGTCAAAGACTTTGGAACGGAAGACTCACCCAGGTGTCCTCGTC
-CTGCTGGTGTAGACACGTGTGTGAACAGCAGGAGAGGAGCCGTCTGGGCT
-CTGGGCAGTGTGTGAGCGGCTCTGGGCTTTGGGGCGGCCTGCCTGGCCCA
-AGCCTGGGCCCCACCACTGTGACCTGCCTCAGGAGTTAACACAAGGACCA
-TGTTTGGCAAAGTCCCAGCACATAAGTAAATGCTAAAATGTTAGCTCTTC
-TGACTGCTGTTTTCTGATCCACAGAAGAGGCCAAGTGAACAGCCCCgtcc
-tgaaatgaacccaggtgttcctgagaggtgatacggatgtcgtgagcatc
-tcaaatcagtgaggatgggacagggtcaccagcagcaggtgctgggaaaa
-tcagctttggatttggggaaaaacccaagttggactcttacctcacacca
-tgttcaaaactaaattcccctggtattgcagagtaaaggataaaggaaac
-tctgagatgaccaggaggaagtggaggggaaTATTGATCTGCATGTGGCG
-TGAGGAAGAACGCTGCGATTGTAAACTCAATCGGAGAAATCCATGATGAC
-AGCAAACgcctgaccctgtgcacctaggcactcaggtagattaactcatt
-cattccgacagctgcccatgggctgcagactgttctcatcccgttttaca
-gatgaggaaacggaggcacggaggtgctaagtaacgtcctgaagaccacc
-cacgagccacagagctgggatcctaccaaggagctgggagctggagcccc
-tgatctcctctagccacCCCGACTGACCTCAGAACCTCAAACGTAGGACA
-GTCCAGTCACATGCATGACGCTAGGAGACAGATCACAGCGTGGGGAGCAG
-GAGGTGGATCACAGCTGGCCAGCGTGTCTCATAACCTTGTGATAGACGCA
-CAGTCCACAGGAAGATGGGCAAAGTCCGCAAATAGAGAATTCCCAAAATA
-CGAAATGGAAGCAGCCAGAAAAAATGACAGAGACAGTCACTGTCAAGAAG
-GGCGACCAAAACACCCACACAGAGGCCACTCAGGTTCATTTGTTTTCTTT
-TTATCTGATCTCCTTTTGAGCTGACTTAAAGGATGCTAATAGGAATGAAG
-ATCCGCCAGTCTCTCTGGAAAGCAGAAAGCAGTTAGGCACTCTGtggaga
-gaatctgaaatttgtactcatgatgctttggaagacagtttggcagtggc
-tgaaaatgatggagttaccaagggaggcagcaatcgccctcctagAGTCC
-ACAGAGTCCATCCCCCGAGGAGGAATGAGAATCACACTCCTAGAGTCCAT
-CCCCCGCAGGAGGAATGAGAATCACACTCCTAGAGTCCAGAGTCCATCCC
-CCCAGGAGGAATGAGAATCGCACTCCTAGAGTCCATCCCCCGCAGGAGGA
-ATGAGAATCACACTCCTAGAGTCCAGAGTCCATCCCCCCAGGAGGAATGA
-GAATCGCACTCCTAGAGTCCAGAGTCCATCCCCCCAGGAGGAATGAGAAT
-CGCACTCCTGGAGTCCAGAGTCCATCCCCCCAGGAGGAATGAGAATCGCA
-CTCCTAGGGTCCCTCCCCCCAGGAGGAATGAGAATCGCACTCCTAGAGTC
-CATCCCCCCAGGAGGAATGAGAATCGCACTCCTAGAGTCCATCCCCCCAG
-GAGGAATGAGAATCGCACTCCTAGAGTCCAGAGTCCATACCCCCCAGGAG
-GAATGAGAATCACACTCCTGGAGTCCAGAGTCCATCCCCCCAGGAGGAAT
-GAGAATCGCACTCCTAGGGTCCCTCCCCGCAGGAGGAATGAGAATCGCAC
-TCCTAGAGTCCATCCCCCCAGGAGGAATGAGAATCGCACTCCTAGAGTCC
-ATCCCCCCAGGAGGAATGAGAATCGCACTCCTAGAGTCCATCCCCCCAGG
-AGGAGTGAGAATCGCACTCCTAGAGTCCATCCCCCCAGGAGGAATGAGAA
-TCGCACTCCTAGGGTCCATCCCCCCAGGAGGAATGAGAACCGcactccta
-gggtccatccccccaggaggaatgagaacatgtccacacacaaacctgta
-cacgcctgttcttagcagcaccgttcccaacagccagaaagtggaaagag
-cccaagtgtccgtcagcggtcccacggaaaaacaaccttcatatacagcc
-atgactggaatattattcagccttaaaaaggaatggcattctgatgaacc
-ggcaacacggatgaacctcggaaacatgacgccgagtgaaggaagccagt
-caccgaagtctgccctgttggagcccagtgatgtgaaacttccggaacag
-gcaaggtcacagaggccgaatgaaggcccgtggccgccagggtccaggac
-ggagatggggagtggttgctgacgggtatggcgttgctttcgaggagatg
-aaggtgtcctaaagttggctgtggtgatggtcgcccaacctgggaattga
-tgctttaagtggcaaattttattgtatgtgaatcatatctcaataaaact
-GCAGCACACAGGTACTTAGGCATAGCCTGGTATTTGAGGCAGAGAGGCCC
-TGACCCGTCTCTCCCCTGGTCCCCAGGGGCTCTGCTCTGACAGCACAGCA
-GCTGCAGGTGGGGGCTGCCCTGGCAAGACCACCATGCCCCTCTCCTGACC
-TCTGTTGATGTGAGGACTCTGCCCCGTGTCGAGCTCAGAGGCCAGACACC
-TGGCCACACAGAGAGGCCTGTCCCACCCCAAATGGCCATTTGTCCTGAAC
-GTGGACACAGGACAAAGACCATGAGACAGGGAACCTGAGAACGTGGCTGG
-GCTTTGACCTTGAGCTTCAGAAGCTACTTGGCCCCCACAGCTCGAGGGCA
-GCGCCTGGCCTTAGGGACCCCGAGCTGCCCTAGTGGGAGGTGCTTCTGAC
-GCTGCCTTTGAGGAGCGCCCCTGAGCCTGCCCTGCTGTCCCTGGTCCCCT
-CAATGCTGTCCACCCATGAACTCGCAACTGAATGAGGCTGTGGAGCTGCA
-GTCGCCGAGATGCTGTGGTCGCCCCTGATGCCAGCCGGGGTCTTCTCCTG
-GGGCTGGGAGAGGGCACCGCACACTGTGCTGGGTGAGCCTGGGCACAGGG
-ACAGAGCTTCAGAGCTGCACCATGGCACAGCACGGAAGGGGAAGGTTGGA
-AGTGGCAGAGCCACGTCCTTCACACGCCCTTCGATGTTGCCCGAGAGGTG
-GGCAGTTCCCAAGGCCAGTGCAGCCTCAGGGATGGAGATGCCAGCCCTGC
-TCCCTAGCGCTGGATGTGACTGTGGCTCCAGGTGTGAACACTGGCCCCAG
-GGCCTCCGCAGGGCAAATGGGCAGCCTTGTGGCCAGGGAGGGCGGCTTCC
-ACCTCCCAGGGAGCTGCAGCCTCTGAGGTCAGAGGTGGGGTTGAGCTGGA
-CCGAGCGTGAGATGCTGAGTGATGAGTGAGGGCCGCGGTCACTGTGCAGC
-CCTGTTGTGCCTCCTGCGGTTGCCTGTGTGGGGGCCTTCCCTGGGGGATG
-CTGTTGGGGGGGCTCTGGCCTCCTTTGGAGGACATGAGGGAGATCCTGGG
-TCCTCTCATTTAGAATTCAGTGAGGCTGAGTCCAGGAACCCACCTTTGGA
-GTGGACGGAATGGGTGGCCTGCTGCAGTGAGCCTGGCTGCCGGGGCCAAG
-TGTGAAATTTCCTTCTTGAGCAGGGCAGTGCCTGCAGAACTGGGAGCCGA
-GCACGGGGAGCCCAGCATGGGGAGGGCCTTATTGTCACTGGAGGAAAGGA
-GGGAAGCCCCCGGAATGTCTATATTGtttttaaaattgagatatagctct
-cagcagtgaaacacacacatcttaaaggtaccactgcgtggattgtgatg
-tcaccaaacccacatgggggcccccaggtcagacacagaatgtcccctgc
-agcccagcgggtgtcccagtcagcactcctcccgggcagccactCCTGGG
-CCTCTGGGCGCACAGCAAGGGAAGGTCGAAGGCCACGCCTGTGCTCCTGA
-GTCTCATCTCGCTGCCTCTGGCCTCTCCTGACTCCTTGTACAGAGCCCCC
-CAGCTCAGTCCCTCCAGGACCCTCTACTCACCCCAGTGAGGAGTGATTGC
-ACCACAGCCTCCTCACCTGAGACCATCTGCGCCAATAATCACATTATTAA
-GTGAGGGAGGCCATGATGTGCACACTCCTAAACGGGTTATTTTAATTTAA
-GAGGTATAAAAAGCCAACATTCCCCGGGCAGGGTGTGTTAGTTTCCATGA
-TGCATAACCAGGCAGCCGCTGGGTCAGCCCTCAGGAGCTCCGTGTTTTTT
-GCCACTTGTGGCTCTGTCTTCAGTCCTGAGAGTTAATCGGCCGTCGCAGG
-CAGCCCGACATGGCACCTTGACCTTGCTGCTGCTCAGAATTCAGGGCCAA
-GATGGGACGCTGCCTTCATGGCCCAAATGCATTGTCACCGGCTCCTCCTT
-TCACCACTGGATTATAAACCAAGCCACCCCTCGTATGAGCATCTCACCTG
-GATCCTGGTATTCGTGATTCAAAACAATGAACCTTAATGCTTTGCTCCCT
-TCTCCAAAAAGGAAAAATCGTGGTCTATCTGCAAAAGCAGCAGCTCCATA
-GAAATAGCAAACTGCAGCCCACCACTACCCCAGCACTGCTGAGAACCCTC
-CCCCGCACCAGGGCCCAGTTTCTGGAAGCTTCTAGGAACTTCTCAAAGAC
-CCAAAGATAGCTATGAGGCAAAGAGAGGAAATATACCATTGGAAAGACAG
-AAATATAATTTTCCCatatttaaattaaatatttttttttCCCAGAGAAG
-TATGCTAGACTATTTAACCAACCAAGAAATATGTGTTCTTACAGCTTAGC
-AACTTGCAGAAAATGTTGAGACTGCGGTCTGGTTCTGTCAAAGCTAAGCG
-AAAGAATACACGCCTTCCTTTCCAGGGCCCTGGCACTGCCCATTCTGCTT
-CCTTCCCCAGCTCTCCACCTCATGGCACAGAAGGGCTGCATAGCGAATGC
-CTGTGCACACTAATCCCAGCCTTGGTTAGGGCGGTCTCCTGCCTTCAGCC
-CGAGGACACCTGCATGCAGGTGCTGTGTCCTCTGGGGTGGGTGAGTGGCC
-GGCACTGTAATTGCTGACACAAGGTTAGACATCTGTTGCAGCCCAGATGT
-GTCCAGAGGTGATAACTGATCTTCGAGCTCGCTGCTCAGGTTAACAATGA
-CCAATAAAGGATGAAGTGTTGAGCAGATCTGGGGAGGAGCATGTGATGGC
-TCCGCCTGCCTCTCTGTGTTTGTCGTGGGCTTGCTTTCATTGCTTGTGGA
-CTGGTTCTCCTGGTGCCATCCTTCCCTCTCAGAGCTGACAGCGCCTCCCC
-GTGCATTTGCCGTGCACAGCTCCCTTTATTCCCCGGCGCGAGGCACGATT
-ACTCCATGGTCTATGGCAGCAATCTGGCCGTCAGGACGTTGAGTCAGCAG
-AAGCTCTGGGGGCCCTGCACCCTCAACTGTCCAGGACTGCAGGTCGGCTT
-TCTAAGTGGGAGTCTGATCGGTGTCCGGATGTGCTGATTCCTTAGAACCC
-ACCAAGTGCCCATCCTCCTGGACACTGCTGCCCATGCCCATCCCAGCTGG
-CTTGTCCTTAATTAGCACAGGGAGGAGCTCACGCTGCAGGCCCCTCTCCT
-CCAACCCTGGAGAGGGTGAATGGATGCTCGAGGCTTTTCCTAACAGGACC
-CAACAGTGACTTTGCTAACTAGGAGCCCCAAGGAGAAGCCTATACCCCAC
-CCTGCTGGGTGTGGCCTCCCTGGCTGGGAGGACGGCAGGGCAGGAGGTGG
-CTGCAGGAGCGGGGGCCCTGGGGCAGACGAGCTGGTCGCAGAGCCAGCCT
-CCCCGCATTGGCTGCGTGGCTCTGAGGACTCACAGAGCCTCCAGACTCCG
-GCCCCTCCCTGTGTGTTTGCAGATAAGACACAGCAATAGCCTTCACTCTC
-TGGTTGCAAGGAATAGTAACCATTTCCCACTGCTTAGTGAGCAAAAGTGG
-GCTTACCAGGGGGGCAGGGATGGAGCTGTGCCCCGGCCTCAGTTGGCGGA
-TCTGCCTCGTACTGTCTCCTTCCTAACGTGGAAGCACGTGGCAGCGTCGT
-GGCTTCAGAACCGTCTCAGCGAAGGTCCAGCACCGTCACTGGCCCACACT
-CTCAGCCAGGGACAGATTCCAGAGAGAGCAGATGGGCTCAGCATGTCACG
-TGTCCACCCCTGATGGAGATTCACACACGAGAGCCCAGCCCTGGTGTTGG
-GGGCAGTTCACAGAGATGTGGTGGCTGCGATGTGGCCTCGCAGGGTCTGC
-AGGCACCGTGCTGAGGACATGCCCCCGGCAGGCCTCACAATTGCCCTGTT
-CTCAGGGGAGCTCAGTGACCCCCCGCCCTCACCCCTGAGAACCCTGGGAC
-TGTGCCAGGTAAACAGCCTTAGAAATGGCAGCAGTGATGAGAACATGGCC
-GCAGGTCCCATCTGCCTCCTCGCAGGGCCCCGAGTCAGCGCTCAGGGAGG
-CTGCGTCATCCCTGTAGGAAGTGGAGACCCAACGTCCCCGAGGATGTAGG
-AAGTGGAGACCCAGCGTCCCCGAGGTGCGCTCACAGCGCTGTTGTGTTGG
-ACTCTGGGTGTTCCCACCACCCTGGCTGTGGTCCTTATCCGCACAGATGG
-AGAAAATGAGGCTCTGGGAAGTGAGGAGTCCGTGATTCCACCCCAGCCCC
-TTGGTGAGCTGCCCAGCCCAGATCCTGCCCCCCGTTCCCACACTGCGAAG
-CCGGAGTCGTCCTCACCGCTGGGTCCCACCCTGCGAAGGTGGAGCCGTCC
-TCACCCCTGGGTCCCTCCCTGCAAAGCTGGAACCGTCCTCACCGCTGGGT
-CCCATCTGGGCACCTTGGGAGTCACCCGGCATGTTCCCCAGCACCTCCTG
-CGTCGGGCGTGGAGGGGAAGGTGGCGGGACTCTAGGCATTTTCTGCATGT
-GAACTTCAGAGAGAGTCCTCAAGTCCCTGAGTCCACAGGTCAGCCCCTCA
-GCAGCTCttttggactgaacggcatcccccaaatctatacatttaagcac
-tgacccccagtctgaatgtatttggagatagggccttaaaggagagaagc
-ttaagtgggatccttggggtccagggtcctgattcaagagaaccctgtct
-ttctaagaagaggaggtgaggacacagacacacacagggctgagcctgtg
-cagactcagagatgccatctgcacgccgaggagaggggcctcagaagcca
-gccttgccgcacctgtggatcccagacgtccagcctcctgggctgcagac
-agcgaatgtcctttgttcaagccatccagtctggggtacctggttacagc
-agctccagcaataacacGGCAGCCTTCTGGATGAACGCTTGTAGAAGCTG
-ATGAGGAAGGTCGCTGTGGCTTTTCTTCTTTATTCTGAGTTATACTCTGC
-AATAGAAAAAGTGCCCTGCATTCTCTCTTAGGCTGAACTCTTGAAATTAA
-ACAGTTTTTTGTTaagaaccccatggttgggggtaaacactgttcctatc
-ccgtgttacagacggggaaactggggctcccagaggctCCAGCTGGGAGG
-CTGTGGGAGGTCGGGGCACCTGCCAGGCTCTGGAGGGGTCTGGCTGCACC
-GGCTCCCCTGCCCAACCCCACAGGCCCCCTCATCCTTCACCAGGCACAGC
-CCTGCCCCACCCCACAGGCCCCTCATCCTTCACCAGGCACAGCCCTGCCC
-CACCCCACAGGCCCCTCATCCTTCACCAGGCACAGGTGCACGGGGCCCCT
-GCCAGGTTCGGGAAAAGAACTGACCCCCACGAGGATGGTCCTGGTGTTGA
-GAAACCTGCTTCACAGCGGAGGACACAGACAGCAGAGTCAAGCACAGTTT
-TAGTCAGAGCCCACATTAACACAGCAAGAGCCCAGCCAGAGCAGGTGGGG
-CAGGAGACGGGTGGAGCGGGTGGTGCTGTGTGGCGGAGCTGGCGGCGCAG
-TGGAGCGGGCGTTGTGGTGGACCCGGTGGCGTGGCAGACCAGGCGACGTG
-GTGGACCCGGCCGCATGGTGGACCAGGCAACGTGGTAGACTGGGCAGCGT
-GATGGACCAGGCGACATGGTGGACCGGGCCGCATGGTGGACCAGGCAACG
-TGGTAGACCGGGCCGCATGGTGGACCAGGCAACGTGGTAGACCGGGCAGT
-GTGATGGACCAGGCGACGTGGTGGGCCGGGTGGTGTGGTGAAGCCGGCAG
-CACAGTGGAGCAGGCATTATGGTGGACTGGGCAGCATGGTGTATTAGAAG
-AGGAGAGATGGCCTGGGGTGCTCAGCGGGGCTGAGTCCCCAGCTGGGAGC
-TCAGGTGCGATGAAGCCCAAGGGACTGACGGTGTGAGGAGGGCCCTCTGC
-TGCCTCCATGCAGCCCACACGCGGGGCCCCCACAGTGCGGACATGTTGGG
-GCAATGCTGCCTGGCCCCGCCCTCAGCCCAGCCCTGGGACGCAGGCTCAG
-CAGCCCCCGGATTCCAGTCAACATCCCCAGGACTCACTCGGGTCAGGCAC
-AGTGTCCAAGCtgtgtgagtctccgggagccgctggaacaaaatgccaca
-cacccggtggcttcaaaccatgaaacccgttctcactgttctgggtccag
-acgtctgtggtcacagtgtctgctgggccgTGCTCCCGCAGGAGGCAGCA
-GCAGAGGGTCCTCCCTGCCTCCTCCTGCCATTCTTCCGGTTCGGGGGTCC
-AGACGTCTGTGGTCACGGTGTCTGCTGGGCCGTGCTCCCTTGGGAGGCTC
-CAGCAGAGGGTCCTCCCTGCCTCTTGCAGCCGCtgtggctgcgtggctcc
-cgcctctgtctctgtctgcatggggcctgctgctctgtgtgtttgccctg
-agtccagatttccttctccctgtaagggagtggtatccaccctaatctga
-tacgaccccattctaactcgatcacatctgctagaacctgctgccaagta
-agaccccatgcacaggtatggggtcaggatcttcatgtctgttactgtag
-aacacagttcagccTCAACAGAGGACTAAGTCTAGTACAGCACAGTCTTC
-ATTCCTGAGCTCATGGAGGAGGGGGAGGGCTGCCAGGTGCGTCCTCATTC
-CGGCGTACCACGGCCAGGAGCGGACTGTGGGGGAGCTGGGCCCCGCCGTG
-GGCAGCCGAGGCGCTGACGTCTCTGATGTCCAATCTGCCAGCCCAGCTGT
-GTTGGGGGAGCTCCTCTACCCTGAGGGAAAGAACCCTGCCTGCATTCGTC
-TTTGCCGCCCTCCTGAGTCAGGTGCCTTGTTTATGGCAGATGGATAAATG
-TTTGACAGATAAACAGATGATCCGTCCGCACATTCCTCAGCCGATGCCCC
-CACCTGCCCTACAGCAGCCGAGTGTTGCTTGGTGGCCTGGGGCACTGTGT
-CTGGCTTCAGTGATCACACCAGTCGTGATGAGTTTGGGGGATTTTACTTG
-TTAATTTTTCTGCGTAGTTTCAGTCCTAGGGCTGGGTTTGCCGTCGGGGA
-AGCTCCGAGTTGCGCCTGCCAAGGCTGTTCTGTCGAGATGGAGTCATCCC
-TGAACCCTGCACTTGTGCAGCCCCACGGCACGGGGGTGGCCTCGTTCCCA
-GAATGTGTGTCTTCGGCCGTGAGGAAGGGGCTGGCCCTAAGGACGATGCT
-GGCTCCATGATGGCCCTTAGTCCCTGACATTTCTTGGTGGGATCAAGGAG
-ACCGAGGGGAGCTCTGGGCCCTGTGCGTTGAGCATCGCTCTGTAGAGGGT
-GGCTGACTCAGGCTCCAAGGTGGGGGCCACAGACTGTGGTTCTCTGGTGA
-CCCCAGATGAGGGCCACCCTTGGGCAGCTTCACCTCCTGAAAAGGAGATG
-TTTTTGGAGTCTCGTGAGATGAAGGCTGGAGCGGTGTGGCGAGCAGGGAA
-GGCCTGGAGGCATCGATACCTGGTGGCCCTCCCCAGGCCATGACCCGTGT
-GGTTCGTGGGATTGGAGCCGGGTCCCAGTCAAGTTGTAGAGCCCCCACTG
-ATTCCCTCAGCCCTGCAGCCTTGGGGAAATGGGCTTTGCAGGGCACTCGG
-CAAAGTCGCTCTGCAGACACAGCCTCCTCGTTAGAGAGCGGTGCTAAACC
-TGTGTGCTCTTCCGGCGACACGGTCCTAACTTGGGTGGTTTCTTACATTT
-CCAGAGCACCTTTACGAACATCTTTTTCTCTGTGCTTCCGCAGCCCTGGG
-AGGCAGGGGGCGGGttcctttttttcttttctttattttttttgagacag
-agttttcactcttgttgcccaggctggagtgcagtggcacgatctcggct
-cactgcaacctctgcctaccaggttcaagcgattctcctgcctcagcctc
-ccgagtagctgagattacagacatgcaccaccatggcctgcttttgtact
-tttagtagagacggggtttcaccgtgttagtcaggatggtctcgaactcc
-tgacctcaggtgatccacctgccttggcctcccaaagtgctgggattacg
-ggcgtgagccactgcgcccggcAGGAGTGGGTTCTGTCTCATCCCTGGGA
-CCATTAGCCTGTGAGGGTGTCTCAGCAGCCCTGAGCCCTGAACCCGAGTC
-TGCTACCCAGTCCTGGCTCTTTGGTGGAGCAGGCTCATTGCACAGGGCAC
-AGCTTTGTCATCGGCAGCTGGCCTGTCCAGGGTTCACCCTGAGCATTGGC
-ACACACGGCTTTGTCGGCGGCGGCTGGCCTGTCCGGGGTTCACCCTGAGC
-ATTGGCACACAACAGCTTTGTCGTCGGCGGCTGGCCTGTCCAGGGTTCAC
-CCTGAGCATGGGCACACAACGGCTTTGTCGTCGGCGGCTGGCCTGCCCGG
-GGTTCACCCTGAGCATGGGCACACACGGCTTTGTCGTCGGCGGCTGGCCT
-GCCCGGGGTTCACCCTGAGCATGGGCACACACGGCTTTGTCGTTGGCGGC
-TGGCCTGTCCGGGGTTCACCCTGAGCATGGGCACACACGGCTTTGTCGTC
-GGCAGCTGGCCTGTCCGGGGTTCACCCTGAGCACACACATGACATAGTGT
-TCAATGGCTCAGCCCTGTATTTTGGCGTTACAGGAGTTACCTGAGGTCCT
-AGAATTCACTCCGTCTTCAGTCTCAGCTGATGACTGTTCATCTGGGGCAG
-CAGCGGTGCCTCCTGTCAGATGCCTCTTCTGTCCACTGTGGTCCACGTGG
-GTACTTGGAGGGGGCCCGGGAGGTGTCAGCACCGGCCCAAAGATTTCATA
-TAAACCGTGGCTCTTCTGCCCCTGGTCCCACAGGCTGGAGCTTGGTGTCA
-GGCACCTCTCCTGGCAGCACCACGGGAAGGAAGGTCCTGAGAGGCCTCGC
-TTCACCACACACGCGTCAGAGGAGGGCGGGCCGGTGAGCTGAGCTCCTGC
-GTGAGAGCGGGAGCTGCCACCTGTGAGACCCGCAGGGGCACACTGTCCCG
-GGGAGAGAGGTGTGTGAGCTGCACACACAGGATGCAGCCTCCAGGAGACA
-GCGATGGGCTGGGGTCCTTGTGTCCCTCACTGGGGCACATTCAGCGTCCA
-TTCAAGGAAAGGGCGTGTGTCCCCAGGATCCGCCTGGGCTGAGTAGCTTG
-GTCGCCTCCGGCCCCTGTCCTTGTGGTTTCTGGCTGGCACTGGGCCTGGC
-CCTTCTCGGTGTTGTCTTTCTGCTCTCAGTGAAGTCGTCCAGGGCATTCT
-GGGCTTTCAGGCTGGCCTCCACCCCGTGCCGTTCAGGAAGCACCCCACTC
-GTCAGGCAGGCAGACACCCCAGTCACCCGTCACTCTCATTTTCAACATAA
-GAGACATTGACatcagctggacatggtggcacgtgcctgtggtcccagtt
-gctcaggaggctgaggtgggaggatggcttgagcccaggagttcaaggct
-gcagtgagctgcaatcgcaccactgcactccagcctgggtgacaaggcca
-gaccccgtcttgttaaagaaaaaaaagagagaTGCTCACGTGGTGCTGGC
-TCTATTAGATCTCTTCAAGCCATAGCACTAACTCAGGAAGTGGGTGTGTG
-tttacacatggagaaactgaggcacagggggacgctcagagagtaagtgg
-atgttcagatagtaattgctgctgcagcattcggacccgggaggtgtgcc
-CCGCCCTGGGAAGAGGGGTTCTAGCTTGGCCTCCTACCAGGTGGCAGCCT
-AGTCCAGCCTTGTTACAGGACAGAAGCCGGAGGGGCCTCGTCACCTGTCA
-TCAGGGTGGATTGGGATGGCAGCCTGCTTCCTCAGCAGAGGGTCAGCCTG
-CTCCGCACCCCTGGGGCCTGGTGCCTGCTGAGCTCCCCGTCCCACCCCGG
-CAGCCATCCTCAGGCAGCTCACCAGCCTGATGGGTACCGGACCCCCATGT
-CCTCAGGAGGCTGGTGGCCAGCACCTCCCTTCCAGTAGGACCCTCGCCCA
-TACCCTACAGAGTGGGCTCAACGCCCTGGAGCCCAGGAAGGAGTGGTTCA
-CAGGCTAGGAGGGCGGAGGGCAGGGGAGTGGACACCATGAGCCAACAGGA
-CTGGAGGCCACCATGGTGTCACCATTCCCGCCCGGCCCTGCCCTGCCCTA
-ATGCACTTTGCTGCTCAGCCTAAGAACTAAGGGGCCCTGGGACTGGAGAA
-GGTTCCCTGTGAAGATGACCTGCTGCAGCTCAGGACGCCTGCTGGGATTG
-CTAGAATGAATGCCCTGTAGCCTGAGTCCCTGATGTTCTGCATGGTGATT
-TGAACAGCAGCAACCAACCACAGCCGCTCCAGCCCTTCTCGTGGACCTGG
-CCTTGGGGTGCAGGAAGCGTTGGGGCCTTGGTTGTGACCTGGCTCTGCAC
-CTTCAGGGAGCAGCCCCAGGAAAGAAGCCAAAGGCTTCCTGAACATGGCT
-GGGATTCGGTATGTATTTCCAGAGTGGCCTCCCTGATTCCACTTGGGTTT
-TTCCCAAGATACAGTGTCCCTCGTCCCAGGGGTCCGTGGAGGTGGCACCA
-TGGTCTTCACGCTGTCTTGCTGCTTTCTTCTTACTGTTTACTGGAACCTT
-TAGTATGGGCTCCATTCAGGACAGCGTGTTCTggccaggcacagtggctc
-atgcctgtaatcccagcactttgagaggccaaggtgagcggatcacctga
-ggtcaggagtttgagaccagcccagccaacatggtgaaagtccatctcta
-ctaaaaatataaaaattagcccggcatggaggcgcatgcctgtagtccca
-gcttctcaggaggctgaggcaggaggatcacttgaacgggggaggcagag
-gttgcggtgagccgagatcgcaccactgtacttcagcctgggtagcagag
-caagactctgtctaaaaaaaaaaaaaaaaaaaaagaaTAGCGTGTTCCTT
-CATACAGCAGGCTCCTCCTGACCTTAACGTCAGATGGAAACTTCTAGTGA
-GGAAGAGAAAGTATCATTTACCTGGATGAATGGAGCTGGGAGGTTTGGTT
-CTGTTGTTTGTGTCTGAGCACAGGGTAAACCTCTTATGTAAGCTGAACAC
-GCGCTCCACAGGCTCAGGACCACGCCCTCCGGTCACTCCTGATGGAAAGG
-CTTGTGTGGGCCAAGCATCAGGTGCCCGCAGGTGAAGCAGGCAGCTAGGG
-ACCACACCGTTCATGCCAGCTTGTTGGGCATCCACAGCCCGGTGTGATGG
-CAAGCTCACTCTGGGGCCAATTCTGAGCCCTCTGGGGACTGGGTTCTGGA
-ACAACGGCTGCAGACTGCAGGACACAGGCCTTGGCCTTGGACTGTGGATG
-ACCGAGCGCCCGTGGACCCAGCAGAGGGGAGCTCAGAGCCAGCTTCCTTT
-CCAGGCCCCAGGGGTGCAGTGAGGAGACACACCAGCTGTGACCCAGGCCA
-CAAGTGTCCACAGGCAGAGAGGGCTGGCTGGGCCACAGGCAGAACGGCCG
-TGGTGGCAGCTCCAGGAAGCCAGGTTGGGAAGGCGTCTGAGGCTCCCTGT
-CTCAAAGGTGTGCCATGGGGCTGTTCTGTCCCCGGGGCAGGTCCCCTCAC
-CCCTGAGCCTCAGGTCCTGTTGAGTGTGGGTTCTAATCCCACAGCCCCGT
-TGGGTAGACGAGGCTATGACAAGGTGACGGCAAGGTCGTTCCCAGAGCAG
-TGACTGGCGCCCAGGAGCTCAGGAACCGCAGCTGGCCAGGGTGCTGGAGA
-TGACCCCTGGCCCTGACGGAACCTGGGATTTGGGGAGGCCCTGCAGTTGC
-GAGACCCTCATCATCACCGCCCCTGGCTGAGTAAGGAATTTAACACAAGG
-CAGATGAGGCCTAACCCAGGTGGGCAGGTGCCTGGAGGTGCCCGCCCAGG
-AGACAGCATCAGGGTGGGCTCAGAACTTTCAGCAGGGCCAGGGTCCCATG
-ATGAGTTTCCTGGCCAAGGTCGGTTCAAGGGCAGATTCTCAGGGCTGCCT
-GGGGCCCAGGGAAAGGGTGAGTGTCAGGGGGAAGCTGAGCCCCAGGGCCT
-CTGCCTCCTGTTGAAGAGAATACTCCCGGGGCCAGATGGGACAGGGTCTG
-TGTCGacatggggaccgtgtgaggatggaggcagagatcaggacgatgcg
-tctcccgggcaaggagcactgaggattgcttggagcaccagaaaccccta
-gggggcctggagtggaccctccctcagatcctccagcaggaacaggccct
-gtccacaccttgagtctgggCAAGAAGAACTAACTGCTCTTTCAGATCCC
-CATCCCCCAGTATGTGGTCATTTGATTGGGCAGCCACGGGAATGGCACAC
-AGACCTGTAGAGGCCCGGCGTGGATGGCCAGGGGAGGGTGGCTCCGTGGT
-GGGGGTGCGGCCAGGTCCCCCAGCCTGCAGCGACCATTCTGGGTGAGCTC
-TGCAGTCTGTGGCCTCAGAGGCCCAGGAAGCTGGGAGGGGTTTGAATTGG
-ATACAGGGAATAGGGAGCCACAGATGGTTCTTGAGCTGTGGAGTGGCAAA
-GTGATATGGCTGCATAGAGGAAGGAAGCCGGCAAGTGGGGTGGGAAGGCC
-TCTGGCCGAGGCTGACAGCCCCTCCAGGTCGTGCACAGAGGGCGCCCCAC
-TCTCCCGAGACACAAGGAAGGGTGGGGATTTGGGGGCACTGTCTGGTGGC
-CTGGATGTCCCTCACAGCACTGAGGATGAGCTCTTCGTTTCAGGCCCTCC
-AGGAGGCCGGCTGGCAGGAGCCGGGGAGGGAAGAGGAGCCTGTGTTCCCT
-GTGGCCCTGGGCAGCGTCTGCAGGAGGCTCACCCTCTCTCTCTCTTTGCT
-CCTCAGGTCTCCTGACAAACACAGCCCCTGAGGGGCCCCGGGAGTGGCCT
-TGGCTCCCTGGAGAGCCCACGTCTCAGCCACAGTTCTCCACTCGCCTCGG
-ACTTCACCCGTTCTCTGCCGCCCGCCCACTCCGTTTCCCTGTGGTCCGTG
-AAGGACGGCCTCAGGCCTTGGCATCCTGAGCTTCGGTCTGTCCAGCCGAC
-CCGAGGAGGCCGGACTCAGACACATAGGCGGGGGGCGGCACCTGGCATCA
-GCAATACGCAGTCTGTGGGAGCCCGGCCGCGCCCAGCCCCCGCCGACCGT
-GGCGTTGGCCCTGCTGTCCTCAGAGGAGGAGGAGGAGGAGGCAGCTCCGG
-CAGCCACAGAAGGCTGCAGCCCAGCCCGCCTGAGACACGACGCCTGCCCC
-AGGGGACTGTCAGGCACAGAAGCGGCCTCCTCCCGTGCCCCAGACTGTCC
-GAATTGCTTTTATTTTCTTATACTTTCAGTATACTCCATAGACCAAAGAG
-CAAAATCTATCTGAACCTGGACGCACCCTCACTGTCAGGGTCCCTGGGGT
-CGCTTGTGCGGGCGGGAGGGCAATGGTGGCAGAGACATGCTGGTGGCCCC
-GGCGGAGCGGAGAGGGCGGCCGTGGTGGAGGCCTCCACCCCAGGAGCACC
-CCGCGCACCCTCGGAGGACGGGCTTCGGCTGCGCGGAGGCCGTGGCACAC
-CTGCGGGAGGCAGCGACGGCCCCCACGCAGACGCCGGGAACGCAGGCCGC
-TTTATTCCTCTGTACTTAGATCAACTTGACCGTACTAAAATCCCTTTCTG
-TTTTAACCAGTTAAACATGCCTCTTCTACAGCTCCATTTTTGATAGTTGG
-ATAATCCAGTATCTGCCAAGAGCATGTTGGGTCTCCCGTGACTGCTGCCT
-CATCGATACCCCATTTAGCTCCAGAAAGCAAAGAAAACTCGAGTAACACT
-TGTTTGAAAGAGATCATTAAATGTATTTTGCAAAGCCTAAAGTTATATAT
-TTAACAGTTTTTATATGTTGTATATTTGTAGAAAATCCTATTTAACAATT
-AACGTGGCAGTCCCGGCCGTCCTGAGAGTCGGGCCGAGCCCCGTGTGTTT
-CTGAAGACTCTGGGGGTGGGACACGGCGGGGAGGTGGTGCCCCGCGGACC
-CCGGGGTGCCAGGCACGGAAGGCGGGACTCTGGGAGAAGCGTGCGGAGGA
-CCGTGGCGTCGGCGTCCCGGATGTGTCGGTCGTGCCCGGGGAGGCCGGGT
-TCCCCTCGCTGCGGGCCAGGCTTGGCTCCTGATTCCCTCTCTGGTCCCTG
-TATTGGTCAACACTTGAGCGTACAATATCTTGAACATGCTTCTTCCAATG
-GGTTTTGTTTCCCATTTCCTGCCCCTTTCGCCACTCACGGACCTTGAGGC
-CAGTTGACGGCCCTTCTCCCCACGCCTGTGTCCCCGCGTTCTGAGAAGTC
-CTCTGTCTTCGTGTCACTAGGTCCAGAAAGTCGCGCCGGGCAGAGGCGCA
-GGCGGGGCCGGCAGGGCCGAGGAATAAGCGACAATTCTGGTTTTTCTCCC
-CTGGCCGTCGTTCGCCAGCCTCCTTCATTTTCCTGAGTTCCCGCTGAAGT
-ATATACTACCTATGAGTCCAATTAACATGAGTATTATGCTAGTTCTATCC
-TACTAAAAAAAACGTAAAAAAATAACTATATAGAAGCTGTTCCAGCAACC
-ATAGACTGAAGATACGAAAGAAAATCCATTTATTTAAGACCTGTTCCGGT
-ATCCATGAGGACATAATTTACCTTTCAGTCACCACAAATTTATAGGCATT
-TGTATCCTGGACTAAAAGAAGGGGCTGAGGTTGGGTTTGTCATCACAGAG
-GGGGTGGGCCTGGAAAGGGTCCTTCCCAAGCTGCCCCGGCTCCGGCGGCC
-CGGGCCGGCAGCCTCTGCCAGCCAGCGTCCTCACGGCCTCCCCCTCGCCT
-GTTTCTTTTGAAAGCAAGTGTAGACACCTTCGAGGGCAGAGATCGGGAGA
-TTTAAGATGTTACAGCATATTTTTTTTTCTTGTTTTACAGTATTCAATTT
-TGTGTTGATTCAGCTAAATTATGAAAAATAAAGAAAAACTCCTTTGATAA
-GCATGGCTTTTGTTCCCTGGGCGTGGTGTCCTGGGAGAGGGGCTGTGGCT
-GGTGAGGCTGGTGGGGATGACAGGTTGGGGCCAGCACAGGGACCCCCAGG
-GTCAGAGCAGACAGTGCCTGCAGCCCTCACGGCATAGCCGGTGCCGCCTG
-TGAGCCCCTGGGTTCTTCTGCACCCACAAGGATGGCCTCTGAAGCCCAGC
-CCCAGACGAGTGGGCAGTGCCTGGCTGCAGCCCTCTGGGGGGCTGTCATC
-CCTGCCTGAATATCGCTGCCCCACACAGACACTGCGCCCTGAGTCCCTCC
-ACGGATCTGACGTGCGGCCGCCTGAGTGTGGCAGGCATCGGCTCTCCTTC
-ATTCCTCCCCTGGCCGGTGGGGAAGCCCAGGCTGTCAGTAGGGAGGCTGG
-CCCCAGGTTCTCGTGAGCTGGCCCCACACAGGTGCCATACACAGAGCTCC
-CCAAGGAGGCCCAGGTCTGAAGCACCCCCTTTGCAGAGACATCCACTTAG
-AGCAGGTTGGAGCCCAGAGCCTCCTTGCTGCCCACACCTGAGGCCACCTG
-GGTGGGACCACCAGGTACCCCCCAGCTGCTCTTCCATAGGGCATCTCGGA
-CTGGGCAGCTGGGCTGGGGGGCTGCGCCACGGGCTGCCTGGCCGTCTGTG
-CTTCCTTCCAAGGAGACGTCACTGGTCTTTGGAGCCATCAAGGTGGACAG
-ACAAGGCCTCAGCTTTTCCCATAAGGGGCTGGGTTTCTCCTGGGAGGGAG
-GGCAGGAGGCGGAGCTACAGTGGCTGCAGGAGCACCTGGGCTGGCCTCTT
-CCCCATCGGGTGCCCTGGTGCCTGGGCTGGAGGGTCCTCCGTTCCCTCCC
-ACAGAGGAGAGGCACGGCATGAAGTATGTATTCTGTGGCTTTGTGGTCAG
-CACAGTGAGACAGGATGGGGCAGCCTGGCCAGGAGAGGGGCCTCCAGCCC
-GTTCCTGTATCACAGTGAGAGCTGGGAGGAGAGGCGTCAGTGTGCTGGGA
-GGAAAGCAGCCCCCACCATTGATACCTGAGGAGCAGCCCCATACCCAGAG
-GCTGAGCAGAAGGGCCTGAACCCTGGCCTGTCCTCCTGCTATGAGCCCCA
-TGCGGGCTCCTGGGGGTGTTCCTCCCAGGAAGCTCCCTGCTGCCTGGGTC
-AGGAGGCACCGGGAACCTCAGCGCTGGCTGCCCAAGCTCCCTCTGCTCCC
-CATGCACTGAGGGAAGGAGGTCGCTGCCTCGCCTAACTCAGGCTGCTGGG
-AGCAGTACCTGCCCCGTCCAAGGAGAGAACCGGTTCCGTCCCCAAGGTGA
-AGGGTCCGGGGAGAGCCCTTTGCAGGTGTGGATGTCCACAGATGGGCCCC
-ATCCATTAGTGTTCTAGGGGTGGTCACAGCCTCCTGTGCGCCTGAGAGCC
-GCCTTCCCAGGGCCCTGGGCCAGCTGAGCCACCAGTGGAGTCTGCAAATG
-AGACACTCAGAGATAGTCCTCAGCCTCCCAGGACCCTCTGCCCAGGGCCC
-CCACTGGCCACCCTGTGCAGCCCCAGCAGGACAACAAGAGCAGGCAGAGG
-CCACACCCCAAGGGCACGACCTTGGTTAGGGGCAGTCCTGGCCACTGCTA
-CCTAAGGGGCAGGGCCAAGTGTCTCCATCCTCTCTGTCCCAGGCAGTAGA
-GCAGTGTCACGAAGGCCTGGCTGGAAGCCACACTGCGCGGCGTTCCACAC
-AACggcctgaggccggccatgcttcctctccgagcctcagtttccccatt
-gatagaataaagagaacctcgccaagctcacgaggAGTCAGGAGGTGGAG
-GGTGACCAGCACTCGAGGCAAAGGTGCTCGTGGTCCTGATCGAAGCCTTG
-CACTTCCTTCCCAGGCCCCGTGTCACCCTTGAGGGGTGACCCTGGGCACT
-GGTGCTCGCCCGCCACTCCCACATCATGGAACCTGTCCCAGCTCCCCgtt
-cagtgctggccttcagagatgctgtctgggccaagctctgtctctccctc
-ttagtgaggtctgtgacctgggacacatcgcttctctgagcctcagctgc
-tagatcacaaagtggagaccccgcaagcctctgccctcctgaggCCCTGG
-GGCCAGGGTAGGCACCTCCTATGTGGGTCTTCCTTCTGCCGTCCCTGTCT
-CAGCCGTGAGGTGCCCCTCCAGACTGGCCAGTTCAGACTGTGGATGGGAT
-CCACTTCCCAGGGGCATGGATCCACATGGGGGCACGTGTGGGTAAGAACA
-GGGCAGGAGGCAGTGGGCTGGCATGGGTAGGGATGACCCAGCAGCAGCAG
-GGAGCAGGCCGAAGGGCCCTGTCGGAGAGCGAgtgtgtgcgtgtgaatgt
-gtgtgtgcctgtggtgtgtttgtgtgGTTTATGTGCAtgtgcagtgtgtg
-tgcatatgggtgtgtatgtgtgtacacatgtgtgcatgtgtgtacacgtg
-tgtgcatgtacggatgtgtgtgcacgtgtgtgcatgtgtgtacacgtgtg
-tgcatgtgcggatgtgcatatgtgtgtgcacgtgtgtgcatatgtgtgtg
-catgtgtgtgcgcacgtgtgtgtgtgCGCGCATCTGTGTGCTTATTTTCA
-CCAGCACCCTCATGTACTGAGCACTTTCTGAGTCAAGGGTCCAGGGAGGA
-ACCCTGAAGGATTCCTGAGTTTAAGGAGCCCTCAGGAATGGGGAGTGGTC
-CCCAAGGTCAAGGAACCCCCAAGGTCAAGCAGCCCTCAAGGTCATGCCCA
-GAGCGCCTGTCGGAAGGCAGCTGAGGCAGGCTGTCCTGGGACCGTTGGAG
-CCCACCCAGTGTCCCCAGGTCCTGCACTGCCCCTGTCCCCCCTTGGGTTC
-TGCACTGCCCGTGTTCCCCCCGCCCGGGTCCTGCACTGCCCACATCCCCC
-CTCAGGTCCTCCTTCACTTCCTGAGGTCCCCCCCAGGGTCCTGTACTGCC
-CATGTCCCCACCCCAGGGTCCTGCACTGCCCGCATCCCCACTCAGGTCCT
-CCTTCTCTGCCCGAGGTCCCCCCAGGGTCCTTCACTGCCCGAGGTCCCCC
-CAGGGTCCCACACTGCCCATGTTCCCCACCCCAGGGTCCTGCATTGCCTG
-CGTCCTCCCCTGCCTAGTGTTTTAGATGCCACAGTGACCCGTGGCCTTGG
-CATCCAGGGCATGACCACTCTGCTGTTCTGGTCCTGAGCTGAAGTCAGCT
-TGAGATGTCAGTGCCCCCACAGAATGTAAGGAAACAAAATCCCAGAGACC
-CTGGCACACCTCTCAGCAGGCGGAAGTGGGGCCTCTGTTCTTGCTCCCGG
-GCAGGGAAACACTAGGCAGAAACTGGGCAGAGGCCTCCAGCAGCCCCCAG
-CCCCAGCCTAGACTCTCCCCTGGGAGCCTGAAAGAGGCCCATGGGCCACT
-GCCCTGCTGCCTTAGAGGGCCCAGGCGAGCCTGTCCCAGGAGAAGCCACA
-CTGGGCTGGAGGAGGGTCCAGGGGAGGTGTCCCATGTGTGAGTCTTGCCG
-GGATGAGGAATGGGGCTGGGTGGGCACCAGGCTGATCAGGGGGAGCCAGG
-ATTTCAGGGCAGCAGGGACAGCAAGGACAGCAGCCTTCCCTGCACCCTGG
-GTGCCAGCGCCCTCATTTGAGCATCTGTCCCAGCCGCTGTTTCCACCAGC
-ATCTGTCCCAACCGCCCAGGGCTGCCTCCCTGTCCCCCCGCTCCTGGGAG
-GCTGCGTGCCCCGTGGAGATGGGGGACAGGGATGTGGGAGCGTGGCCAGG
-CCTGGCACCTCCTGCACAGCCTGGGTCTGGCCCACTGCAGATGCTGCCTG
-CATTGGTGGCCTCTCCGGGTTATCAGTGAGCTCTGGGCAAGGTGGGCACT
-CCGAGCCCTGGGCCTGCTTCCAGAAGTCTAGGTCCTTCGGTGTCTCAGCC
-ACCCCAGGCCTCAGGTGCAGCCTCTGACCAGGCAGCACGGGCCTTGCCGG
-AACACCGCATCCCCTACTCCAGCAGGTCCCTAGCTTGAGGGGGTCACCCC
-TTCCGCAGCACTGCTCTGCTCAGCCCTCACACTGGGGGACCTCTTAGTTC
-CCAAGGGCTGTCCTCTGCTCCTTCCGCGCACTGGCCTGTCTTGCGCTGTG
-GCCGCGTTTGCCTTCTCCATTGGGCTGTTGGCTTCCTTAGAGGACATCCT
-GCATCTTAAATACCGTATTTCTTCCCTCTGCGCCCAGAGTCATAGAATTA
-CTCTGAAATAATAGCCACATTTATTTTCTCCTTTTACGAATGTCACCTCA
-TTTGTTCCTCCTGCCAATGCTGCAGGGAGGGGATTAGTGTCTTTCTCGGG
-TGGGTGGTGAGGTGGCCAGGCCGGCACCACGTGGGTCAGCGTGGGATGCG
-GCCCCTCCTCCTCCGTGGACACTCACTCAGAGGGCTTCCTTCTGGGGTGA
-AGGGAGGGGGAACCTGGTTCCTGCAGGCCAGTGCCACTCAGTCCTGTCTC
-GAAGCGGGAAGACAAAGGCTGAGGAAGGAGCATCTGATCCCACCCATGGA
-AGGGCgctgaggaaaaggccattttgacacctgtgaaatcggcaaggagg
-acctcatcaacaccgctaccacaggggccaggactgaggacgtggcgtga
-gatgggctcagctccaaCCCACTGGCCTCGGCGGGAGCTCTGCTGCACAC
-TGGGGCTGCGTGGATGGGAAGTGACTAAGCAGAGGCACGGGGACCCAGAG
-ACACAGAGACCTGGAGACGCAGAGACCTGGAGACGCAGGGATGCAGAGAT
-GCAGGGGCCAGCCCGGAGGCTTAGTGGGctggcgggattctcaaggaggg
-caggcagaagacgcagacatagaaggtgggagaggagggacctgcccagc
-tacaagggtggtcgcctccctacgctgacccagcagtagttttgctaacg
-ctggactcggcaaggacgggcagaagccccaggctgtggcctcgtggaga
-caaaggctcagaggggcccggccaaggcctggtcaggagagccttggtcC
-TGAGCCTCCCGACCAAACCAGTGCCCTGCAGTCAGCCACCTCTCCCAGGA
-GAGCAGCAATGGGCCCGGCTCTGCAGCAACAGAAAAGGAGAAAGAAACTC
-CCAGGGAGGTAGCATGCCTCTTGCTTTGTGAGGAAATCAGAAGGCCCTGG
-TACAGGCCTGGCTGGGTGTGGTCACAACAGGACTTGGAGGACTCTTTGGA
-GAGAGGCAaggaggaggaggagggaggaggagggatagaggatgggaagg
-aggaggagaagggaggaggagggatagaggatgggaaggaggaggagaag
-ggaggaggagggatagaggatgggaaggaggaggaggagggaggagaagg
-gatagaggatgggaaggaggaagaggaaagaggagggatagaggatggga
-aggaggaggagggatagaggatgggaaggaggaggaggagggaggagaag
-ggatagaggatgggaaggaggaggaggaggaaggagaagggatagaggat
-gggaaggaggaggaggaggaggggaggaggaCTGCTGAAAGCTGCTTCCA
-ATACCACAAACCTGCTTCATCTGTCCATAAACGTCTGAGTGCCCCTTTCT
-GGGAGACAGAAAGTGCCGTCCTTGGGGTTTGCCAGGGGCTGACCTTGGGG
-CTGGCCCAGCAGTCACCAGAGCCTGTTACACACGCACAGACCCAGCCTTT
-GGCTCCAGAGCCAGCCTCACATCATGACCGTGCCTCGTTCCTTCACTCCC
-TGTGTCCACAGATGTTGAACTCTGGAAGAGAGAACAGTTGTGAGTCGGCT
-TTGTGGCTGCTGGTGGGCACTGGCCAGGGCTGGTGGAGGACAGGATGGGC
-AGGTTCCCTGGGACTGGGGTCTCTGGGGGAGTGGACGGCCCTGGGGCAGC
-CAGTCACTGGGGTCTGTGTGTAGGGCATGCGATGGCTGTAGAGGGGGCTC
-CGCTGGCTTCAGGAGCCTGACCCCAGCCCCACTGGGCAAGTCTTGGCCTC
-TGTCTGTTGCTGTGCCATCTGTGGGCCTTTCTTCCTTTGAAGCATTGAGG
-TGTTCGTCACAAGCGTCCTCACACTACTCGGCACATTGTCCACCTTACCG
-GGCATAAATTATGATGCTGGAGTGGCAGCTCGCCATGCACACAGCAGCAC
-CCAGGATGGTGCCCAGACCTCCTGTTCCAGCTGGCAGCTCCGGCCATGGC
-TGCCTGTCATCCCCACTGGGTATCTCCCCTTTCATTTTTACATGTTGTTG
-GAACAAAATTATGCCACTATCAAGGGACGCACAGTGGAAGAAAATACCCA
-CTGCCTCCACACCCCGGCATGGCACACACATGCATGTTTGTGTGCTTGTA
-ACTGGAACTAGCCTTTCCACCTGCTCTTTCTCCTGGCCACGCCCCCTCTT
-GTTGCCTGTCAGTCACCTGTGCAGCCTGGAAGTCTGAGTCATGTTCCATC
-CATGGATCGAGCCATCCATCATGCTCCCGTGTTGGGAGGACAGTGGTTTA
-CGGTCATCAAGACCCGGCGCTCTCATCCCGGCCCTGTTGGCCTGGACCTt
-ggccttcggacttgcttgagcagtgcaggatgagcggcagtgatttcaag
-ggcctctgagcagaagtttttacagccatcaagctctactgctgtcttgt
-attttttcttttcccattgccaccaaacaggcatgtactaaacaggggct
-gcttggccaaagccagagcatgcgtggcagggcccaggtgcccacctgcc
-acagacggaaatgagggaaagagcagaccatttttgttgaaacctctagg
-attcgggtgtcaccactgccacagcataacttatcctaatccaactgTGG
-CAGACCATAGCCTGGAGTCGTCTGCTTAGGACATGTTGGAGGTAGAATTT
-TGAGCTCTTGTTTGCTTTCCTGTCCTGTTGAGCTTTTTGGAAATCCTGTC
-TACATCTGCATTCTCATTCTGTGTGGATCTCTGTGTGGCCACCAGCATCT
-CTGCCCACAGGCCGCTGCAGCAGTGTCACTAGGGCCCAGGGTCCAGCTCC
-CAGGGGAATCTCAGGTGTGGGTTCCCGTGGCTGTGCTCCAGGGCCCAGGC
-CCTGTGGACACTGCCTCCCTTCCCTCCAGGCCACAGGCGGGACACACAAC
-AGGTGGATCAAGACCCACATATGCAAGGAGCAACTCAGAGTGTGTGGGCA
-TCTGTCAAAGATGGCTGGAGACAGCCCAAGGTGATTTGGCAGAAAGAGGA
-GGACCATTCATGTCACCTCCTGGACTCTGTTCAATCATTTCCTGGCTCTA
-CAAACCAAAGGCTAACCTGCCTGAAATGAGAGAAATTCAAAGGGAAGTCC
-TCTCTCCTACCTCCGGAGAGACAGGCCCGAACCAGATCACGGGCCAGGTG
-GCAGGTGAGAATAGTGCATGGCTCTGCAAGGGTCACAGTGACCACAGACC
-CCGGAGGGCCCCGGGCCGAGGACCTACCTTCTGAGGAAGATGTGTGGCAT
-AGACGGGTCCGTGTGAGTCAACCTGTGTCCTGTCCATTCCAAGCctagaa
-gtctgatgtacagcaggaggaccaaccgagttaacaacattgtcctgcat
-atggaaaatgggctgagatagtcaattttaggtcctcttaccacacacat
-acacacacacacacacagacgcacacacacacaggtgcacacaaacacac
-agacgcacacacacagacgcacacacacagacgcacacacacacagatgc
-acacacacacagacgcacacacacagagatgcacacacacagacgcgcac
-acacacagacgcacatgcgcacacacacacacaGGTGCACAGGAAGCgtg
-actgtggaggtcatgagtatgttaattcctatgtagtaatcatttctctg
-tttctgtatatcaaaacaaacaccatattgtacaagttaaatatataaaa
-tAAAAATAAATCTTTAAAAAATTGCAAAAGAGCCTTTAAGAACAAGAACC
-TGGGGGAGCTCCCAGAGAGCAAGAGAGCCGCGAAATGCAACCCCAGCACA
-GCAGGAGGAAGACTCGGGCCCAACACCGGATCCAATGAATGTCAGCTTCC
-TTTATACCCATCTTCCCTCGAACGTCTCAGATTAATTCCCTCCTACTTCA
-TCTCTCTTCAGACGCTCCCTGGACGTTACAACCTTCCCTATCTCATGGTC
-TAAATTCAACCCGATTTCTTGGTGTAAATTCCATTTTTGGCTTTTCAGGG
-AAAGGCTCTTGCTCCAGCCTCTTGAATGTTGATGCCATGAGGATTCTCTT
-CCCCTTCCTCGTCTCTGTCTGTCCAGCTTCATAGAGACACTATGTCCTCA
-AGTCTTTCTTCTTCACCAGGAGATAAGGGTCTTGCAAGAAGGTGCTACGG
-CGGCTTTCTTTGTCTTTCCAGAGCCTGGTGTCGATTTGTTAAGGGAATGC
-TCAAATGTTTATTGGAATAAACTTTCAATAGGCAAGGATTTAGGTGTTGT
-GCTTTGTGCACGATGGGTGGGGTGCTAGGTTTTCATGAAGGTTCCATTTG
-AAGAGCTATAGGACAGCTGGGTTCTGTGTCCCAAAATCTCAGAGCTGAGC
-TCCCTGGAGGGGTTACAGCAGCCCACTGACAGGGCTCTGGGTGAAGGAGG
-GTCAGCTGTGTGTGCAACATGATGAGCTCCTCTGCAATCAGATGGTCTCC
-TGCCTGCCCAGAGTGTGGGATCCGGGAGGTTCCATGGGTGCATGTACCGT
-GGGGCAGATTGGCATGAGTTATGGAGCCGTGTAGCATGGCTGCACCACCC
-TGGACCCTTGCAGACAAACAATGAGCCAGGCGTATGAGGAGACAAGGTGG
-GACTACAGACCAGAGGGTGATGGCCTAATTGGAGGAGTGTTTGGAAATGT
-GAGTGGTTGGCGCCAAGTGTTCCATGGCAGAATGTCGTTGTGACAGCCGC
-TTTGGCTCACATCTCCCagtgtcgtcccacaccgcttctgagcttgcgtg
-gcttcctcggtccaatcaaacaatagcaaatgggatgcaggcagacattt
-ttacagtcctggctcattagagtgtcctcctgctggatggcctcaggccc
-tgccacgcagtgaaccagcctgggtgaggctgcatgaggaaggaacacag
-gaaggggccagccaccccagccctcccagtggagctgtcaaaaaccagcc
-agttcccggcccagccaccagtagacggccatcagcgagctccccaggat
-cagccaaagaaactcccagtcaagctcagtccaaattgcagactcaggga
-aCAAACGCTAAGCACAGGAGTGTTTCCAGATGACCGATGGGcactgagag
-ccagacagcagcagagcagctgggaagttccgggtagaaaaaaatcaaca
-tttttgagttaaaacttcacctctgcaaagatatacttttaaaacgaggg
-taaaataaagatacgtacttgcagaaaaatgaaaatggacagaaaaagat
-tccaaaaagggtcttactcaaggaaatactgaaaaatgagacagaaaaaa
-aataaaatcctaggtggactcttggaggttcaggaaggaatTAGCAGGGG
-AAGGTGAGGACGATGGGGCAGGAGATCCACTCAGGGCCaacaacagtaac
-atccaaacacgatgatccaaagcaaccatttggaagcactggaacatgaa
-caagggcaggaagaaactgagaagtgattttggaagggatgcatccgcgt
-caggtaaggacgcccggtttgtggcttcttgctggaggtggctcctaaaa
-ccccacctgtagtgataggaaaaccaccggctctgcagcttcagggggcg
-gacgacacagagcagctggaagtgcacggagaagatctgtaagcaagaaa
-gcgcagatgggctgagacctcaagtcggagtcaaactttgcccaaatccc
-tggctgactcctaaacAGGAAATGAGCACGGGGGACCTGGAGGAATGAGG
-CGGAAATTAGACGGAAAAGGCTTCTGATGATATTCAGAAGAATTCTGTAC
-CCTTGGCAGAGTTCATTCCCCAGCCTACACTGGTCCCTGTTACTGAAAGA
-GGAAGCTGTTCTACCTTAAAGCAGGAagaaactggggatggcagagcaac
-taagaattaaggggtagtttcagcagcaaggctcttagagagggggtgag
-cccccaaatctgagtacgtacactgcccgaatacatagctgatcgctaaa
-ccacacaGTTGTAGGATTAATACATGGGACCAGGATAAAAAATAAACAGC
-CACACGCTCCCTCTCTCTCACAAAACAGCAACAACGAAGACAAGCAGAGG
-CCACCTTCTGCATTTTTTAGGGAAGACAGCtttgaaagcaggcggattag
-ctgcctagggtaacacagaaacaacgcttagacatttcagagcgtctaca
-aaatattacttccattggcaagcctccctccaacgtgtactagacatgca
-gagaaacagtcaaatgtgaaaaaaaatcaggcatggaaacccactctgag
-acagcttttatgttggattttgcaaagacatcaaaggagctaatataaat
-gtgtataaatcattaaagaaatgtgtggtattaatgagttaataggtaga
-ctatttcaacagagaaatgaaaactgttttttaaattgtagttttagagg
-tgaaaaatacaatatcagaaaataaattgaaaaacgtaccagatggattc
-aatgagcagatcagaaacagcagaagaaagaatcagtgaacctgaagata
-gatccataaaaattgtccaatctgagaaacagacagaaactgattgagaa
-gacatttaaaagcttcggcgaccttgagaacaatatcggggagtccaaca
-tgggtgaaataaaagccccagaaagagaaaagagaaaatacagtagacaa
-tttaaaaaaaattgaggaaataaggccaacacttcccaaaccggtgagaa
-tatttatagaactattcacatcaacaaaccaaagtaggataaacataaga
-aaccacaactagattatatgatagtcaaatctctgaaacacaaagtgagg
-agaggagaaattcttgaaagcagcaagagaaaaatggtccatttcataga
-gaggaacaatgacatgattaatggctgacttttcatccaaaacagtggag
-gccagagatgttgaggagacatgaaagtgtggaggaagggaaatatccgt
-catccaaagattctatatctagaaaaactattcttcaaagatgaaggtga
-aatacagacaaaataaaagtgagaaaaattacttattattaataggattt
-tactgcaagaaatgctgaagTATGATATAAAGATAGATACATGTGTGCGT
-AATCTTATAATTTCTATAGAACACACATGGCTATttaaaataaagattat
-aacactatcgtagggttaaaattgacagaggtttaatatatctctgtatt
-acactgtatagcccaaaggataggtggtacaatagaacatagtcccttga
-aagtgtcctcatttgttcagaaatcatttaatattaattaactttaaggt
-gattgtgctgacatgatatgatccttagcagaaccactagaaaatactgc
-aaagaaattttacctagaaatggaattgaatggtttgcttaaaacatttg
-atggccacaagcaaagacataaaaggaataatataggaaggaaaatgaga
-aaatagaaaagaaatagcaaagtggcacttaagtccaaacatatcgatag
-ttaaattaaaaatatttctactaaaaatataaaaaattagccaggcgtgg
-tggtgggcgccggtagtcccagctactcgggatgctgaggcaggagaatg
-gtgtgaacccaggaggcggagcttgcagtgagccgagatcgtgccactgc
-accccagcctgggcgacagtgtgagactctgtctcaaacaataaataaat
-aaataaataaataaataaataaataaataaataaaaatagataaacattc
-caataaaaactcaagaaatgactgatggaataaaataaaaagaagaaaat
-atgtgctttaaacagaaaaactttactacagagacacagataggttgaaa
-gtaaaagggtagccaggcacggtggctcacacctgtaatcccagcacttt
-gggaggctgaggcaggccaatcacctgacgtcgggagttcgagaccagcc
-tgaccaatatggagaaatcccatctctactaaaaatacaaaattagctag
-tcctggtggcacatgcctgtaatcccagctactcaggaggctgaggcagg
-agaatcacttgaacccgggaggtggaggttgcggtgagccgagatcttgc
-cattgcactccatcctgggcaacaagagcgacactccgtttcaaaaaaaa
-gaaagtaaaaggatggaaaagacatatcatgaaaacagtaagcataagaa
-atctggagtgcatttgttgatattaaatgcagtatacctttagacaaaga
-atattactatagacaaaaagaacatttaacaataataaagcgtcaatata
-gcaggaaaaaaatcataaatgcatatgtgcctgataataaagttccaaaa
-tacatgaagcaaaagctgacagaactgagaggaaaaatcaacaatttaac
-catgataaatggagattttatttcttctttgttagtaatcaataggacaa
-acagatagaaaatcgtcaagtatgtagaagacttggacaacatcagtcag
-tatgtaatcaacactcgcagaaacagcaaatagagcacccctaggaatgg
-gacagctgaatcatatatgggtgtgcttatatgttttaaaattgccaaac
-tgtattcaaaagtggttgtaatatatctgatcagtgttcattaattttag
-ccatcttaatagatgtaaggtgttaactctacacaaaatctttccaagac
-atactgaagatgaatcaaaatagaccaaatattagacaatcaagcaaatc
-tttaaaaaaatccagactgaaaatcaaacagtatatgttctctgatcacg
-atagaattaaattggcaatcaataagaatatctgaaaaattctgaaattt
-ggaaataccagacttggttagaataaccaaaccacaggttaagaaaaaaa
-gggaaatttaaattgtatatatttaattgaaaacatttaaatatttttat
-ttgaatgataacaaaaggacaatttatgaaaatctctgcaatgttgctaa
-tgaaatgcttaaagaaaatgtatagctttagaagcttctattagaaagga
-ggaaaaagtctagaatgtaagcttccaccttaaggagctagaaaatgaag
-agcagaatgaatccaaataacaaagagcagacaccaataagagagaaaat
-aaataagtaataaagaaaatcaatgaaaccaaaagctcactaaaaaaatc
-aaAAGGTGgctttttaggggtatggttagcatgtaactgactgcacacat
-ttaaagcgtaccacgtggtaagtctgatatatatacccccttgaaacaat
-cactatcttgatttgcttgagctgtaataaaatacctgactggatgattt
-aaacaacaggaattcatttctcatagttctggaggctgggaagtccaaga
-tcaaggtgctggccaacttggttcctgatgagggctctctcgctggctcg
-cagatggcagcctctttgctgcgtgctcacatggctgtccttgatgtgtg
-cacacagcatgagagcaagtgctgtaatatctcttcttataaaggcacta
-atcccatcaaaccagggccccaccctcatgacctcgtctaaccctaatta
-cctcccaaagtcccatttccaaacacaatcacactgggggtttgggcttc
-tatatatgaattgtggggggcacataaacatttcatccataatagcggca
-atcaatataatgaacatatctgccattcctcaatgtatccttCTATCCCT
-CCTCACCCCACACCtgtctcttttctatttcattgatctatgttcttacc
-tttattattttcttctttctgtaatactttgggtttactctacccttttt
-ctagcttattaagatgaaaacttttgtgtttcatttttcttttcttattt
-tttcaataAAACTCAACTTTTTAATCTGGAGatacatataatatatgtaa
-attatatataatatatagaatacatactatataattgttatatagtatat
-attatcataatattattaataatatattataatatatattgtatataatt
-tcatatatttatgtagctattaaatataatgatatatatTTCCAGATTAA
-AGTTGAGTTTTATTTAAAAAAAGAATAAATAGAGTAATAAGCAAATAGAA
-TAAACACTCCAATAAAAACTTAGGAATTGACCAGTATCAATCAATATCAA
-ACAATATTATTTGAGGCCCTGGTGTGTGTGTATACATACACGCAAATAAT
-ATTGTTTCATTTTAATGTTTCTTTTTGTGTTATTTTATTTAtttatttat
-ttttaacttgtaagttcagggatgcatgtgcaggatgtgcaggtttgcta
-cacagtttgttgtaccaattatttcgtcacccagacattaagcctagtat
-ccattaatatcagcatttaaagctgtaagtttcactctaaagcattggtt
-tttctgcatcgcacaattttgatctgttgtattttcattattgttcagtt
-aatctaatttccttggttatttctttttgacccatgaattgtcctaattt
-ctaaatatttctgtattttctaaatgtgtagtgttattaatctctaaatt
-aattccattgcaatcagagaaagtattctgtataattttaatacttttaa
-atttattgaagctaaaagttttatggccaattacatttcccatcatggtg
-aatcataaatgcattatactaactggaaatagatatgccttttataaatg
-ttgggtataatgttttataaatatcaaataggggaaagtagttgataatg
-ctgttcaaatattccttactgaatttttgtcaagttttttaatgaattgc
-tgaaaattgttaaaatctattataatgtgaaattctccatttttatttta
-attctgaaaattttttcttaatgcttctaaatatcaattagttgaaaatg
-tttggtatgcgtgttcaaatcctgcctatcttccctgttctttgtttaat
-tcctttaggattctgaaagacggtgttaaagtctcctacttcgaattgta
-tattcttccctttaattttattaatgtttgcttcatgtatttaaaggctc
-tgttgtaattagcctacagttttgtcattcttttcttttcctgagaaatt
-aacccttttatcctcatgaaatgtccctcttaactgtggtaaaataatac
-tgaagtgtattttatctgatactcatatagtcagcccagttatcttatgc
-ttactcgttacatgctatatattttttttctatccatttactttccacct
-gtctgtgtctttagatttaaaatatatttcttataggcataatatagtta
-catactgatttttaaaatctggtgatctctgttttttaaatgggagtttt
-tgaccattatcatgtaatgtaatgattgataatatacctatatatttaag
-tctaccatttaattgttttttgttttttgtaccctcttttcatttcttct
-tctgctccagcattcttttatattaaaaaatattttttataattttattt
-caactatcctttagcatctaaccattcatctttgtcttatttctttttag
-aggttgctgtatggattagagtatacatgtttaatatctcacaatctact
-ccaagtcaatgttggaccacttcacataaaatctaggcaccttgcagcca
-tatggattcccttttctcatccgctacattcatttactttatagctgact
-tatgtgttacatcttcaaacattacaaaccccttcagacattgtactaat
-tttggctttatatagttatacaaattcatttaacagaaaaatgatctttt
-aaatatttacccagatatttatcatttcaaatgatcttcattcatccctg
-gaaaaatctaaatttccctctgatatcatttcacattagcccaagatctc
-cctttagcatttcttataacgaaagtctaatggcaacaaattaccttcgt
-ttcctttagctgaagatgctgctatgttaccttcattactgaaggatatt
-ttcggaggccatggatttctaagttgataatttttttttcttttctctca
-ctctaagcactttaatgatgttgatacgtgattttctggcctccactttc
-ctgatgagaaatgcatagtctcttgaattgtttttatccagtatccgatg
-catcatttttctctcagccacttaaaaaatttccctaaaagcaattttat
-ttactatgtctaaacatagttttatttggatttattctagttggagtttg
-ctgagattcttgaatcagtaaattcatgtctttcaccaattttgggatgt
-ttttggccattgaatcttaaaatactattttctgaccaaatttatctctg
-ttctctttctggaactccaaggatatgtatattagatgttttgatattat
-tttcaagtttctgaggctctgttaattttataaaaatcttttatatatct
-cttcttagtttctgctgatttaaccaatttcctctgtcatcttctgtctg
-ctacagagctcagtccagtgatttatttatttcatatattgtatttttct
-gccctaaattttacacttgtttcttttttatattttctgtgtctctgcta
-agatttactatcttttgatttatttcaaatatatttttctttacttttaa
-gtgtagatataatagtaggtttcaagttattttctgataattcagacatc
-tcgtttatctcagggcattagactgttgattttactgtcccttgataatt
-tgtcacatttttctattttgttttgcatatatgtcaatttgttttggatt
-tcattctgtacactttgttcattctgcattctgatatattcctctgaaga
-gtgttgatttttttaagctattaatccagtaagattcagactcttagccc
-tgaaccaccttttgaagatggaggtttacatttcagttgaattttctaaa
-attttagtgtgctgctttaatcctgtcctctgcctgcctggtctaatggt
-ctacctgagacatgtgtgggactcatacatggaaatagaggctctccctc
-tctgactctctttcctccagttttacctgcttactgttcaccagtggaaa
-tctcccagaactccttccctccatttcaggccagacagagttccagctgt
-ttgctgtgcacctttccttgactgtggtccacactcggtaaagccaccaa
-caaggagaaactcactccctagtcaattgcttctccaagttttggtgcca
-ctccacagtctgccttcttttggtgtattcattagtttacttaggtagtt
-ggattttgcactctgtctattgtttatagttattattagcaataggacgg
-ttctgtggaggctcacactgctataccggaagAGTAAAcccacaaagttg
-tgatatgtagtgtctatattgtaaatcagttatggatccttttacatttt
-aattcttttaattattttgaacccaggagttgtttagtaatggtgtttca
-atttctaaatatgtgggtgatttttaacttgtctttttgttttaaaagct
-tgattgcatggtggtcagagatcttgttctgcaCACGCACACACACAGAC
-ACACAAAGagatgctcttcaacttaagatggagttatgtctcaataagcc
-cattaaaaattgaaaatattgtaagtcaaaaatacatttaatagtacaca
-cacttaatttactcaacattgtagcttagcctagcctaccttaaatatgg
-tcagaatacttacattagcctacagttgtgctaaatcatctaaaagaaag
-cccattttgtaataaagtattatatgtcttgtacactttattaaatgctg
-tactgaaagtgaaaatggaatcgtttttgcaccatcataaagtcaacaaa
-atcgttagatggaagcatggtaagtcagggagggtctgTATTTAGACATA
-CACAGAGACTCTCTTTATGACCTCATGCACAATCGATTTTTGTATATTTT
-TATATGTATACTTGGAAAAAATATTCTTTATCTGTTGGTTGCCTAACTCT
-AATTATTTCCCTGTAAGTTACCCTTGCAGATTCTTCCTCTGCTTGACCTA
-TACATAGAATGTGTTGAAATATCCCACTAGAATACTATTGTTTACATCTA
-ATTTATGGATTAGAGTATAGATATTGGATTACtttttccctgtaagtcta
-tttatttctttctgtatatgtttggaggctattttgctaagagtaggcat
-ggtaaatattgctatatcttaatgtgaaattaaaatatttatatctgtgt
-cataaccctctttatgaaaaataatattttggtcttaaggtttattgaat
-gttattaaggtagtcataccaagtttcttttggtgagcatttttctgaaa
-ggtcatttttccatccttccacttctagtctttgcaggtctgtaagtttg
-aggaatgactcttctaattagcacatattgaacatatacattttaatttc
-agtttgtctagttccataaaaagtcttgtaagaattttgatgagaattgc
-attgaatttatgaattaaagtgggacaactgacattttaaagatgttgaa
-cataatagatcttcgccttcatttatgccttcacataaatgaacataata
-gatctttgcctttatttgggtcttctcgctgtccttcagcaacactttat
-tattttctctttaacagacttttgtgccttaaatttttgtttcttttgtt
-tttacacacagagactttgggaaacttttattaatttgaataatatgtcc
-gttgatgcaatgaaactggcattaatgtcattttttttcctttttatacc
-ttttatttatttctcttgttttactctactgtattcaagtatccttggat
-tgttccagattttaaagacaaggtgtctggaggttgtatcctgaagtact
-gcatttgctgtgaatttttgtagataacctatatcaagttttaaaagttc
-tttcccctttatagctttctcagagcttttattaaaaattgagttaaatt
-tttgaaatgtactttttgtatctatttcaatagttgcatgatttttatgt
-agtgaattatagcatgtggtgttaatgtattcttttactcctaacaaaat
-ccaatttggtcatgagtgattttttttagtgggttaccacatttgaattg
-ttaatattttgaatgatttttaaaaatctatgctcgtaaattatatcgac
-ctacaattttccctttttatactgtccttccctggcttcgaatcaaaatt
-aaactcacctcataaaatgagttctttcattttttattgtgtggaaaatt
-ctttatgaaattggaatgatctattcattgactggctggtagaagtcacc
-cataaaaccacgcatgcctctttttaaaatcgaacatgtactatgggtgg
-gctttaaaatacggatccagtttcctcaatgttataggtctatttatgct
-tgctatctctttttgggtcatcttttgacgttatattttttccaggaatg
-ttttcagtttaactaagtcttcacatttatcggtcttcacatgtttattt
-gtaaagttctcttatgtttgatgtctttaCtatgaaatttatcatgcatt
-cagaattgtatatgaactgtttaaacaacagcaaaaatgaaacactctct
-cttccaacacctgtgttaagaatcaaatcccgaccaacactttcgaagcc
-cccatgtcctcagcccacccatctcttctaattttatgtccccagagtta
-ccgttgttctgaatatgtacaagtatgttcttatatttctttgtGCATCT
-GTAAACATTATATTATTTAGTTTAAAACGTGAGTATTAAGGACAAAACTA
-GCTTCCTAAGGAAAGAGTCATATTACAGCTGTTTAGATGAAGGCACTGGA
-GGAAGGCAAGCTAAGGGAGCTGGTAGGCAAAAGCACAGTCTCAGCCTCTT
-GGAGAGTTTACCGGAGCCTCCTGTGGAATTCCGTGGAACCTGAGGACCTC
-TGCAGCTGGCGAGGGAGGGGGGCAGGGGTGGGGATGGGGGCCATGTCCTG
-ACTCAGGGCTGTATGTCCCAGAGGAACGCAGGCAGGGAAATGTGTCTCTG
-GCTAGCCGAGTCCTCCGGCTCTCAGGATTCGGTCAAAGCAGAACAACAGT
-GCAGGTTAGGACGCAGGCCCTCCGCTGGCCCAAAATTCAGGTCATGCAGA
-GGAGAGTGAAAAACTCATTGGCACACGGCCAAGGGAAGCCCACAGCAAAG
-AGTCTATGGCACAACGGCGATGAGGCTGGGGTTCACCTGAAGTTGCTGTT
-TCTAGGGGTAtgctcccatctgggcgggtgaactcctgcatgtggtgaag
-agctgttcctgtccctgccgacatctctcaccatcctgcatcaggccagg
-tgtccactgggtcctggggcagcctccccacgggttactctccattcagt
-ggggcgcttcctctggagtttcgagaagagttcaaaggaggcaagcgttt
-gggatcccgcccatccaaagtgggtttcatgttcctcagatacatactga
-tgggtctggccaggtaaaggatttgtgtttggaagctaccttccttccac
-cttctgaacgtggtgctccattgggtcaatgactcccgtgttgctattga
-gaagccctaagtctttttgattcccagtccctttatccaactcttgtcta
-tatacaagattgtagaatacagtctgtgctctggtttgaaatttcaccac
-aatgaatcttggtgtgggtctattttcattcatgtgctggcttctttttt
-tttttttttttaaacagggtctcactctgttgcccaggctggagtgcagt
-ggtgcaatcctaggtcactgtagccttgacctgggctagtcaagcaatcc
-tcccacctcagcctcccaagtagctgatgtaccaccacgcctgactaatc
-ttttttattttttgtagagacagggtctcactatgtcactcaggctggtc
-tcaaactcctgggctcaagtgatctgaccaccttgacctaccaacctgct
-ggaattataggcgtgagccagtgtgtgggacccacatgctggattcttat
-tgagctctctctcttttttttttttttttttttttgagagggagcctcat
-tctgtcacccaggctagagtgcaatggcacgatcttggctcatggcaacc
-tccacctcctgggttcaagtgattctcctgcctcagcctcctgagtagct
-gggattacaggcatgagccaccacgcctggctcatttttgtatttttagt
-agagacacggtttccccatgttgaccaggctggtctcgaactcctgacat
-cagatgatctacctgccttgcccttccaaagtactgggattacaggcctg
-tgccactgcgcccagcccttattgagccttcttgatctatcatctcatgt
-cctttcttagcattctcccctgtcacttttcttatttggatgtttggcct
-tctaaactggtgtaatttcatttgttagtttttcatctttgtctctttat
-ctctgctaacctttagtaagattgtgaaatagcctcagctttatcttcca
-gaccttcctatcgagttttcatttgggctgctatgtttttaatttccatc
-agctattttgctcttgttctctcaatgttcctcgtgtgtagatagcttct
-tgctctccttttattattgcaatatttttcttatttctctggagtattgg
-atgctttctggaaagtttcttcactctgttaagtccccgttttctcccag
-tgagtctgctttgattctgggctgtggcctccatcttcatgttgcaggcc
-ttccttacacttgaccatcctgactggttgagagcagtggtcctcaaagc
-tgtttggaagctctttgtgtgtgggcaaaatgcattgacttttgatttta
-ctgccaggtggtttgcaggagcccttggctgggaaatccccagcttgtca
-gtttttgtaTAACtttgttttctttttttggagatggaggcttgctctgt
-tgcccaggctggagtgcagtggtatgatctcggatcactgcaaacctctg
-cctcctgggttcaagcaactctcctgcctcaggctcccaagtagctggga
-ctagaggcgcacaccgtcacgcctggctaattttttttttttttgtattt
-tagtagagacagggtttcaccatgttgcccaggctggtctcaaactcctg
-agctcaggcaatctgcccacctcagcctcccaaagtgctaggattacagg
-tgtgagccaatgcgcccggcGTTTTTATAGAGCTTTCATCTGCAGTTTTG
-TCTGATTATCTAAATATAAGTATCATACAGCTCCCACTTCTGTGCATTCT
-TTAAACCAAAGTTAATTTTCAAGTTTTAATGTAGAGAAtttttagttgaa
-atttctattaagataattgtagattcacatgcggttgtaggaaattatac
-agagagagcccatgtacactcccccaccccgtccccagtacaaatgttat
-gtaaaactctagtacagtagcacaacccagtgacagaagccactgagctg
-attaaggtttcctcagttttacctgtgctcatttgtgtgtgcgtgtgtgt
-gtgtgtgtgtgtgcgcgatgagttctatacaattttatcctctttgtagg
-ttcatgtacccaacaccaccatcaagatacctaacagttccaaccccaca
-gacatcccatcgattaccttcctctgtcatagctactctcttcccattcc
-tcctcccgtgcaacctgggcaacctctattctcttctccatttctaaatc
-tctgtcatttaaaaaattgtatataagtgcaatcatccacgatgtaacct
-ttagagattgactttctgtgtgtcacacaattgcccggagattcacccag
-actgttgcctgtattaacagcatgtttctttatattgctgagtggcgttc
-catggtatggacataccacagtctgtttaaccattTCATTAATAACTGTG
-Tgttacctgtgtgtcattagcttacaatgtagttatgttcataaaatata
-ctctgtttaatggtaatactttatttggaactatgttgagatttgactta
-tgttctaatacaggtaaattttcatgagtgttctgtgtatacatataaag
-aatatcctgcaattttgaggtacaggattctatagtttatattttcatct
-gatctatttgttaattgtgttgtttccatttttatatgcttataaatagt
-tttgctgtcttgatttactgagaaagctgtatgaaaatcttccagtatgg
-ggatggatttatctacttctccttgcagttctattaactttggcattata
-aaatttgggactacaccatgtgcatgcaaagtgttctcctgatggatttg
-acttttttattgtaaaatagccttcctcacccctagaactttcattttgc
-tttgaatatagctacaccaaggcagctttgattttcatttgcttccaagg
-ctctgtcctctttactttcaatatttttttgttatattttaggtatgtTA
-CATACTTAGTATATGACCATTTTTTAAAAATGAAATCtttacacttgcta
-taactagttatatttgaatattatctatgtatacacaactttatgatatt
-ttttctgccttatctgagtttctttgctttctccacctcctttcttgctt
-tttatcaaaagcaagttttctctctctctgtcttcctctctctctgtttC
-TCTCTCTGTCTGTGTGAATTTAATGTAGGAAGAGCCAGCACTTAGGCCAA
-ATGACTACTAggacagaggggttactggaacctggaaaataaaagtgatg
-gataaagcagccaccttgagaggggcagtggccttctgtcaatggacaca
-gcagctctgggacattaagggagtgaacctggggagtgaactccctcacc
-ccactctcttccatctctttgatctgtcattgggtctcccccttggccaa
-gtcttgctacaaaccagggggctggagagcctgGGGTCAGCATGCACTGT
-GTGGTACTGCTGGCTCCATCATGATCCTCACATACTTTACTGGCCATCTT
-TATGTTCTTATACAATACAATCATCCATCTTTTATATGATTTGTGCGCTT
-TACACCACAACTGCTGACCTCCTGTACTAAGAATGATGATGAAATCTGCT
-TATTCAGcctctagcttgcctttttcatccacccactgcttagttatgta
-atttctatattactagggcttagaacagttatcactccataaccatcatt
-ttcacagtcttagctttagtattaacttacaagtcttcatacaaacctca
-ctaccaatttattttccatagactatttcttaagctcttagctggatgac
-ttttgtctgttagcaatgtcttcaataaagtttatgggacttcttgcata
-tatatatatctttatactggaataatagtttagcaaggtataaaattatt
-gaatgacttttttttaatgaagtctttacggaaactgcttcacacacttc
-tgaaatctcctatggaaaagtcCTTTGACAGCTTTAGGGGGTGTGAATTC
-CCTCAGTATTATTTCTGTATCTTTCAAGACCAGTAATTTCATTTCCTCTT
-CTTCAGGGCTAACCGTTATATATATTTTGGAAATCTTCCTTGTCTTTTAT
-TGCTATTGTATTTTTCTTATATTTAAAAACTAAAATTATTTCATTTGCTC
-AAGTTTTTTAAGCCTATTTTCCCCTGGGTATGGCTGTTCCAGCCTTATGA
-TGCTTCAAATATAGCCTTCTCTGTGATGGCTTTCTTGATCTTTGTCATTT
-CCTCCCAAGGTCTGCCAAATTATTTTTATACTTTTCTTCTGTTTTATTAT
-TGCCTCCATGAGCTCTTGTGTCTCTGCTTTTAAGGCTTTTATTTCCTGAC
-TTATTATAACTTAAAAAAAAAACCATCATCTTTAAATCCATGTGATGCTA
-TTTTTTCTTCATAATATTTTTCAGTCCTCTCCCTGACCAAATTTTTCTGT
-AATATATTTTTAGTTTCCTCCTCTACATTATTCCTATTTTTTCTTGTTAT
-TTTTACTTGTGTTTGAATGAGGAGAGCTATTTTCAGGCCAGGTATCTGCA
-GAAAGACCGTGCGGAGAAGGGGCCAAAGTATGTACGTGGTCGGCACATCC
-ACATCTTCTCTCTGGCTGCCAGTTAAGCACTGAGTGATACAGGGTGTGCG
-TCTGTGTCTGTGTGGACAGACATGTTGTGTTCCATATGACATCGGTCTGG
-TCTTAGCCTCCACATGTTGTATCAGTAGTTCAAAGCTGCTTCCTGTCCAC
-ATGAATCCTTGTTTCCATCACATATGGGACCCACTGTCTCCTGTAAAGAT
-GGCAGGTCATGCATTCTTTGCTCCCTGCCAGCTTCGTGGCGCTTCGTGGT
-GTCACTGGTTTTCGGGAGTCCCCTGTAGCCTGTGCACACACCTCTTTCTG
-TTTTTTCACACGTACAGCTGTTGGTTCCGGTTCCCAGGGTGAGCCAGCTG
-CTTTGGAAACCAAGTGAGTGTGGCTGATTCTCTTGAGGCCTGTGGAAGTG
-ACCCTGGCTTCTCTGCCCCTATCTAATTGTGACCCCTTAGCATTTTGATT
-TTACAAGTATATTAAAGTCCAGAGTAAGAAATGCCCCTCACTGCGGGTGG
-CTGCTGTTCCCAGCTTTTTATTCTCCTGGTTTTCACTGGCATCAGGAGAG
-GAGAGACAGCACACTGTCACGGTGGTTCACGGCGCAGCAAATTTCTAACA
-AGCTCTTCTGCGTCCCAGGGAGGTGAAGCTACCCGAGCAGGGTCTCACGG
-AGCTCGGGATTCGGGAGGTGAGAACCCAGAGCTGCCCTTCCCGTGCCTGT
-TATGGGTACCAAGGATGTAGCACTCATTACACAGACCCAAACAAGCCCTT
-TCCTGAAGTTACCGTGtaaactatgttagacgcaagaggcaccatgggga
-aaagtgaaacgggccaggaggggtgtcagggtggagtgctgggtttgggg
-gtgctggatcaaggattctgtttccagtgggaggccagggaaggccacac
-aggttatgggtgtttaagcaaagacctgaaggaggcgaggaagagccctg
-agtgcagctggggaaggaggtggccgcagcccgtgcagctggggaaggag
-gtggccgcagctgcagaggcctcggcagtgggccttcttcatgctccagg
-cacaggaggagagggaagtggagggatgcagggccctagggaggagtggc
-aggaggtagggtcagagagcgatgggagtggagactctggagggttcagg
-ccctgagggactctgctgttcttccaggagcagggccactgcacggtctg
-agcagagaaggacatgctgtgacccagaagatgcagctcccctggctgct
-gtggggtcgtcggcctttggggaggcgagggcagaagtggggaggcAGGC
-AGAGCTGGGACCGGCATGGCGGCAGGGCGTGGGGCTAACACGTGCTTGTT
-GAATGTCCTGGAAGCCTGGTCCCTGAGACATTGCCAGGGACACCAGCCCA
-CCAGGGACGCAAAGCCCATGAAAGACAGATAAAGGGAGCCGCTCCCTGAG
-CCAGGAACCTACACACGGGAGATTAATCCATCCATTTCCGCGGCGAGGTG
-CCTGCTTCCCACGTGTGAGTAACTGATGTAAAATCATAAAATGGACCATT
-TGCCTTTATTTTCGTGTGACCTTGGACTTTGCAAAACTCTGAGCAACTTA
-CTTGAAATTTAACCAAACGTCAGCAGAGAGCCTGGCTCCATAGTTCCCAC
-TGATCCCGCGAGTCCGGGCTGGCCCCATTCAGCCCTTGCTGTCGAGCCCT
-GCAAGACGCACAGCCGGGGCCACGGTACCCACCGCCTTCCCTTCTCGCCT
-CTAAGGCAACAGAGGAGATCCCGTCCTGCCTGCCTGGCCCTGCTGGCACG
-CACAGCGTGGCTGGACTTGTTGCtcatttcacttaaaccctatgacaccc
-ttccaagcaggcctccctcagatccctgtgtttgagaaggagaaacaggt
-ttcgagaggtGCCCTGGTCTCACGGAGCCCTGCAGCGGCGCGGAGCACCG
-GCGGTTCTGCAGCCAGGCTGCCCGGACTGTGCGGGGACTGGGTCTTTACA
-CCCCAGAGCTTTCACGTAGCCGGTGCAGCTCACACCTTCACCCGAGGGGA
-CAGGGGCTGGTGGCAAAGCCCCACATTGGCCTGAGTGACCGAGTAGCTGC
-AGGGACCCACTGGGATTTGAGGAGCAAAAGAAAGAAGAAAATAGGAAAAA
-AATCAACCTTTTTGAGCCAAAGCAGAATGAGTTTACTGAGAGTTAGACTG
-AGCTTGAAGGAGACGCAGTGCAGGTTTGCGGGCCGGCCCAGACTCCTGAa
-acaaagcatcacaacccacaccggcggcaaacacaacagacattggttct
-cgcaggctctgcaggctggaagttccagatcgaggtgtgtggccagggcc
-ggttcctcctgaggcctctcctcgggtttaaggtggcgtcttctccctga
-gtcctctcttgggcgtccctctgtgcctgtctgcgttctcttctcttcta
-taatgactcttcttcccgggtcctgttggattagggcctgcccgataact
-tccttttaacctcgtcacttctataaaggccttctctctgaatacagcct
-ctttctgaggcattggaggttagggcttccacacgtggactttaggggtg
-cagttcagcccCAACAGTGGGTTTGTGAAAGAGGGGCCACAGTCGCCAAC
-GTTGCTGCCATGGAGATGGCGGGGACCCAGGAGCACGGGCTCTTCACTGA
-GTCCTGAGCTGAAACTGGGTCCCAGTCTTCACAGTTGGTTTCTGACACGT
-GGACCTGGCTGGGACGATGTGGCTTGAGCAGCTTAATTCACTGGGTGGCT
-TCTGTCCTAGGCTGGCTCTGGGTCACTGAGATGAGAGGGCACAGTTCTCT
-CTTAAGAGGCTGGCCCCGTGCAGGCAGAATTCACACACACTGGGGGTTGG
-GACAGAGCAAGACACACAGTTCTGGAGCCCAAGGCGGTGGCTCCGACGTG
-CGCCACTGTGCTGGGGAAAAGGTGCATGCCTGGGACCCTATGCAGAACGT
-GGAGCCCTGTGTACAGGCCTCTGTCCATCCGCCCTTTGTCGTGGCTTTAA
-TATTTTTCCCAAATGAAAGTGGTTTTGTTTTGATAACAACAGCAATCATA
-GCAAGCCTGCACCCAGTACTGAACTCACACCAGGCCCGGCTGAGCCCTGT
-AATGGAAGCGGTTCATTGAATCCCCGGTGAGGACCCCAGGCCCAGAGTCC
-TGCAGGGACGGGACGGTGGCTGTCTGCCTGGATGCCAGGCCCAAGCTTTC
-CAACACGAGACCACGCTGCTGTCTCTCTCCCACTGGCTTACACCATTCCA
-AAATAATCTAATTATTTAAACAATACATGTTCGAATGTGTAAGCGTTCTA
-TAAAGTGCAGAGGGGAAAATTGAGTTAAGCCCGATGCAGCCCCATTGGGA
-ACCAGTCTGACCTTTTCTAGGGAGGAGAGGGCTGTGCTCATGGTGCGGAT
-GGGACCCCCCCGACCTGGGGTGCACCCCAGCATCTCACCCCCATCCTGCG
-GGACCCACAGCACAGCGGCCTCAGCAGCAGGTCTCATTTCAGCCCCCAAT
-GGGAGCAAGCCAAAGCCACTTCAGCAGCAAAACGAATcaatggactgtcg
-taagttcagtgacaggaaggaaggaaccccagatctacgaaaagcaggat
-gaatccccaaacctgtgatgctgagtggaggaaggcaggcagcaaaaggg
-taatgaaatatgcttccatttgtataaagttcacagagactaaactgtgc
-tttgcttttcagggatgtagacgtggcagtgaaactgaaaagaaaaacaa
-ggaatttatggccagaaaatgacagagatcggttatctctaggagcagta
-aggggccatgcttggggaggggGAGGAGAGATGCATGGTGGGGATGGGGG
-CATCCTCACCTCCAAATCGCACCCTCCCGAAGCCACACAGCAGCCTGAGG
-ATGTCTTCAGGGCCGCTCTGAGCTCTGGGGTCCCCGGGGACTGGGGGTTA
-GGACCCCGACCCACCTGCCCACTGTGGGCCCCAGCGTTGGGTGAGTCCTG
-GAACCTCCCGTCTGTGAAGTGGGGCTGCAGTGCTGCGTTGCTCATGGGTT
-TGCTCTGGAGGCTAAAGGGATTTTCCGCATGCAGGGCTGGGTGCGTAGCA
-GGACGGCTTTTACCCATAATGACCGTCGAGtgtgggttaaattccatccc
-ccaaaagatacgtccaagtcctgacccccagtgcctgtgaatgggacctt
-ctttggaaatagagcatttgcagatgtgatgaagtgaagatgcattcatt
-ctggattagggtggttcctaaatccaaggactggtgtcgttacacgaaga
-ggaaaatttggaaaatcagcctcctagaaggaggcgtgatgacggagaca
-gagattggagtggtgcagccacatgccaagaaaggcctgcagccaccagg
-agctgtgagaggAAGAAAGATCCTGCCCACAGCCTTCAGCGAGAGCAAGG
-CCCTGCCCGTCGCCGGACACAGGACCTCTGGTGTCAGGTCTTCCGGTCTG
-TGGTAACGTGTTACGGTGGCCGCTGGAGATTAATACATTGTCTTTCTGTA
-CTTGCTTCTTGTGGGCAAAAAGCTTAGTTGGCTTATGTCTGCTGGAAGCT
-TCAGCACCTATAATTTTTTAGGCACATAGCAGTCACCCCGCTCACACTTG
-TATGAATTGGGAGTTCTATGTAGAGGGCTCTGGACCCTGCTCTCTTCCTG
-AATCCTGTAGTACTAAGCCATTGTTCCATGTCGATAATAGCAATGTGCCC
-TGTTCTTTAGGGTATGTCAGAGTCGGAGGCCCTCCAAGAATGGCGTGTCC
-TCCTCTTGCTCACATTTATGGGCCCCCttcttgttgtgatgactgatgct
-gcgatttctccagcgtatcacccttgccatctcactgaatcatttcttta
-tgataaaccctcggcagcggcgttgttaggtgaagaggcataaaaagtct
-ctgcattttagcatgtgctgcaggttgctaaatccccctccaggaaagcg
-gaagcttttgacaagcccaccagctggagaggagagtgcccaactattcc
-cacactggtacccaaatcagggattatcgttctttttaatctttgccaat
-ttgctaaacagagaaaggtatcaatctctgttgctttaatttgcatgtct
-ttgattactattgagtttgaacatcttttcatatgtttattggccattta
-tgtaaatacagtcttcACAGTTATGCAGCCATTTAAAATGCCAGGCACTG
-AGAACAGAGGGCAGGGGTGGGAGGAAGAGAGAGGCTCCAGCCCAGGGCTG
-TGGCCAGGATGCCTCCGGCCTCTGGGTTCCCCACTTCCTCTGCGCTCTCA
-GACAGGCCTCCCTCTGGGGTACACAGTCCTCAGGATGCAGGATGGCGGCT
-CGGCAAGATCTCAGCTCCAGGAAATTTGCATTTCAAAAGGGAACTCTGCT
-CCAGATCAAATAATTAAAGACTGCAACCTGAACAGCTGGGAGCTCAGCGC
-CGGAGCCTTTAAAGCTAAGCCAACCATCAACAAATACGGTGGCCAACAGC
-TTGGTCGACTCTTTCGAATATGTCTCCACCCACTCTCTTCCACTAGAGGG
-CACACTTTTGGGGTGGAAGCACGGAGACTCTGCCCATCCCTGGAATTCCC
-TCCTGGGTGGGACAGCTGTGCACATTTGACAACGGGATGGACCCATAAGT
-GAAACCCCCAAGGTGCCTATGGCCTGTCACCTCCTGCCCCACTCTTGGAG
-GCTGCAGGGCTGCGGGTACTGGCCAGCTCCCGGCCAGCAGGACCACGCCT
-TCCAGGTGTCCACCTCTGGACATGCCCCACTGCTCCTGGCCGGCCACCTT
-TTGCCCTCCCCAAAGCTTCCCTCGCCCCAAACCATCTCCAAGGTCAACTC
-CAGGAAAACCTAGCCCATCTAAGTTTAATGTGCTACTCTTTTTCTTCATT
-TCTCATTTTACAGGCTAAATCATTCTACTTTATACGTTTTATTTTCTGAT
-TAGTCACACAGAGCTCATTAAATGGAAGACAGAGCTTTTCATAAAATATG
-TAGAGGAATCTTGGATTCttaatttcaaaattaaaaaaataataatCCCG
-GCAATGAAATGCACTGTCTGTTCATAAAACTCGCCAAGTGTCCAAGGATG
-AAAGGTTTGAAACAGAGGGGACCCAGAGGACAAGTCTCTCTGGAACTGAC
-AGCGGCCGTCTTGCTGAGCCCTTGGGCCGTCCTGGGGCTGGGGCGTGGCC
-GGCTTGTGGACCTTGCTCCAGATAAGGGAACTTGAAGGTTCCAGGTACAA
-GTCAGGCCCTGCTAGCTCCATTAAGATACTTCCAGGGACATCGGTCATGA
-GCACAGTTCACAACACCCTGGTTAAACCAACATCAAGCTTCAGACCAAAG
-TGCAGGCGAAGCcggtggttctcaaaattccctgcgctggagaatcaaca
-ggaagtctcataaaacaccgagccgggggccctgaccccagaacctcccg
-ttccctgagcctgcgggggcctggaactctgcatctgcaaggggcctcca
-ggCCGTGACCATGAGGGTGGCCCGTCTGTGGCCTGGATTTTTGGAAAAGA
-TGGGGTGGGGAATGTAAATGATTAATACAATTTTTTGATGTTGTGAAAAT
-ATCTAGAAATCGCAAATAATCAAGCAGATAACAGCCAGGAAGGGACAGCA
-GCCCAGGGCCTGGGTCCCAGTCGGGCCATGGCATCGTCTTCCTGGCCTCC
-TTTGGGGCGTGGCGTGGCTCCACCATGGACCACAGGTCAGAAGAGAGCCC
-GGGGCCATGTGGGACGTCCCAAGGTGCTAACTGTGCCTTGGTTAAGAGAC
-AGGATTTCCTGATTTTTGGAAATTTTTATCTTCACACTGGGAAGAATTTA
-AGGGTGGTTCACTCTTGGATCAGGAAACAGTGTGTGTGTACACGAGAGAG
-AGGGACAGAGAGAGGGGGGACATGTGGAGTGCACTGGAACCACCATAACC
-CCCAtgaaggcggcaccggagttattggcattatttgtgcaactcttctt
-catgcttgacgtcgtttcaaaataaagaGTGAGCTGAGCAAATCAACTCG
-GCAGGGCACATTTTGTGCTGGGAAGATATGGGACGTGGGGTGGCCATACA
-GCTTAGCTCCCAGGTCCCTCCCAATACAGGGCTGATGGTCCCCTTGACCC
-CCTGAACTCTCCCCAAACTTCCCCCTGGGTGGTCTGCAGGAGGACCCTCC
-TCAGCGGACATCTGCAGCCCCCTCCTGCCCTCTGCAGCCtgctatggact
-gaattatgtggcccaaattcataggttgaagccctagcccccagtgtgac
-cgtatttggagatggggcctgtgaggaggtgattagggttaaatgaggtt
-gtaggagggagggcctgatcccacaggactggtggcctcatgagaagagg
-ccacagagggctccgtctctgctgtgtgaagacaccgtgagaaggtggcc
-acatgccctccaggaagaggcctccccaggcaccagccctgccgacacct
-tactctcggactcccagcctccagggctgtgCAGACTCAGGGCCGTTGTG
-TCAGCCGTGCGGGCTGTGGGTTCCGTTAAGGCTGAGTGTGGCCGAGCTAA
-TGGCGACGGTGCCCATGACCCCCCGCCCCCGGGATTTAGTCCTGGGTTCC
-TTTCCCTTCTCACTCTGCTCCCCAACTTCTCACCCTGGAGCATGGACAGC
-AGGAGCATGAAGGGCCTTTGGGGGCtgcggtggtttgaaggagtccccgc
-aaaagcctgagttggaaacccgacccccaatgtggcagtcctgtgaggtg
-gggcttTcgtgacctaatacatttctgtttattaaaaattggctgggcgc
-ggtggctcacacctggaatcccagcactttgggaggccgaggcgggtgga
-tcacctgaagtcaggagttggagaccagcctggccaacatggcgaaaccc
-cgtctctactaaaaatacaaaaattagcccggcgtggtggtgggcacctg
-taatctcagctgctcgggaggctgaggcagaagaatcgcttgaacccagg
-aggcggaggttgcgccactgcactccagcctcagcaacagagcaagactc
-tgcctcaaaaaaatgaataaaataaaaataaataaataaataaaaattac
-ccggtctgtgatattttattgtagcagtacaaacagacaggccaagGATC
-CCCTGAAAGTGTAAACAAAATGGGGGTGTCATGGGGTGGGGCTGACAGCG
-TTTGCTACATTCTTCAGGCCCCTTCACCACACACCCGAGGGCCAACCTCT
-CTCCTTCTCGGGGATGTCACTCTCCTGCTGCAAACATCACAGACCCAAGG
-GAGCCTCAACTCAGTTCCAGGGAATCCCAAACAGCTCCCCGCTTACCCCA
-CACCTGCCCTGCCATCTGCGACCCCATGTCCCAGGCTGGGTGCTGGAGCC
-ACCGTGAGCCTTTTTGGAGCTTATCAGCACCCAGCGTGTGCCCTCCCTGA
-GATGTTCCCGAGAGATGGGGCTCAGCCCAGCCTTCTTTCCTCTCTGCTGT
-CTGCTGAGGGATCCCTGTGTCTGGGTCACCATGTGACGTCCACTCAGCGC
-CTGTCCTATCCTCACAGAGCCACCCTCTGGGGGGACACAGTTATAGTGAG
-GGCTGGTCTGCAGGGAGGGCAGGGCCGCCTAGCAGATGAGGGAGGGAGGC
-CTCTGGAAGGAAGTCTCTCCCAGGCAAAGGCTCAAAAACAGCAGCCCACT
-GGCAAGGAGGGGACAGTGAGCCAGGCAGGGGATGGGGGTGCAGGAGCCGC
-CACTTGTGAGCCAGGCTGAGGCCCCAGGGGTCTGGCTGGTTGAGAGCAAG
-GTCCCAGGAGGGAGGAGGGGCTCACTGACCACAGGTCCTAAGCCCTGTCC
-CTGAAGCAGCACCTGCTCCTGCCTCACTACGGACAAGGGATTTGAGTTTC
-CTCCAGACTCACAGCCTTGGGGCTGGCAAGGTCCTTTCCACCTGTGGCTT
-TTCTGGCTGGTCACTCAGCAAGGCTTACATGCAAGGGCAGGTGGCCTGGG
-TAGTCATGGGGTTTCAGTTGTTCTGGGCACCACTGAGTGAGACCAGGGAC
-CCTGTGGGTTTCCCGCTCCCAGGCTCCCCAGCCCTGGCCCCTCTGGGCAG
-CCCTCTGTGGGGTCCACCCTGTGGTGGGATGTCCCTGAATGTGCCCCATC
-TCCCTTTATCTGAAACTCCTGGAGGGCAGGGCTGAGCCTGCATCCTCTGG
-GCCCAGGTTCCCAGGTCCGGCTTGGGGTTCTGCATGTGCCGGAGATTCAg
-agaggcatatatttatttgacatgctgatttcaactccttcggatacaca
-ctaaaagtaagattgctggatcataccgtagttctatttttaggtttttg
-aggaagctccatacagtcgtccataagagctgtgctaatttacattccca
-ccaactgtgtagttattacagtttagtacagggccccctctactgcatgg
-cctcgccaacactcagcgtccttcatccttttgataatagtgtcattctg
-acaggtgtgagtggatatctcattgtgattttaagttacttttcctaaat
-gattagtgatattgagcatgttttcatatatgtgttggccattggtatgt
-tggcttttaagaaatgtctattggatcccaagccagtttttaaaattggt
-tcatttattttcttgctattgagttgtttgagtcccttatacattttggg
-tattaaccccgtatttagatgtacagcttgcaaatattttctccctatcc
-acaggttgtcttttgactgttaattgtttctgtggctgtgcagaagcctt
-atagtttgatataatcccatttgtctatttttgttgttgttatgttttgt
-tttggcagcattatttacaatagacaagttatggagtcaacctaagagtt
-tctcaatgaatgaatggattaagaaacgttttatatatatatatacacac
-acacacacatatatatacacataaagattatttatatatacacacatata
-tacagacatacacacatatatattatatatacacatatatattatataca
-tatattatatatacacatatatattatatatacatatattatatatacat
-atatattatatatacatatatatacacatatacacacatatattatatat
-aacacatatataatatatacacacatatatattatatatacacacatatt
-ttatatatacacacatacacacatatatacacacatatatacacacatat
-ataatatatacacacatatatacacacatataatatatagacacacacac
-atatatacacatagagattatatatacacacatatatacacacacatata
-tatattatatatacacatatatacatatatatacacatatatattatata
-tacatatattatatatacacatatatattatatatacatatattatatat
-acacatatattatatatacatatatatacacatatacacataTTTTATAT
-AACACatatataatatatacacacatatatatacacacatattttatata
-tacacacatatttatatatacacacatacacacatatataatatatacac
-acatattatatatacacacatataatatatagacacacatatatagacac
-acacacatatattttatatatataCACACACAGacacataaaatagaata
-ctattaagccttaaaagagaagtgttctgtattttgtgacaacatggatt
-gatctggaagacattaggctaaatgaaaaaagccaggcacagaaggacaa
-ataccacattttctcacttattttttatttttttatttttttgaggcaga
-gtctcgctctgtcacccaggctggagtgcagtggtgcaatctcagctcac
-tgcaagctccgcctcctgggttcacgccattcttctgcctcagcctccca
-agtagctgggactacaggtgtccgccaccacgcctggctaattttttgta
-tttttagtagagatggggtttcaccacgttagccaggatggtcttgatct
-cctgtccttgtgatctgtccaccttggcctcccaaagtgctgtgattaca
-ggcgtgagccaccactcccagccacattttctcacttataagtggaatct
-aaaacaatccattccacttaaaagtggaatcaaaaagtggcctttatagg
-ccactttacaaaataaaataggcaataatcacatacgtatttttgcaagc
-ataaacactcagtaaactaaggacagacacatggccataacagttataag
-aagatgagcTggccgggtatggtggctcatgcctgtcattccagcacttt
-gggaggccgaggagggtggatcacaaagtcaggagttcaagaccagcttg
-gccaacatggcaaaacctgtctctactaaaaatacaaaaaaattagccgg
-gcgtggtggcgggtgcctgtagtcccaactactcgggaggctgaggcagg
-acaatggtgtgaacccaggaagtggagcttgcagtgagccaagattgcac
-cactgcactccagcctgggagacagagcaagactccccttcaaaaataaa
-gaaagaaaaGATGAGCTGTGTCTGTGATGGAAACAGGACAggtggctcac
-acctgccatccagccactcgggaagctgaggcaggaggatccattgagct
-aggatcacgccactgcactccagcctgagtgacagagtgaaacctcatct
-ttaaaaaaaaggaaagaaaagaaaCTggtggaaaagggaaatgtataaac
-acataccacaatggctggtaattgttagcacccagctcactaactgcagt
-catctgagatactgcaaggaacaacctaagtattttgagaagttctgtca
-aaaaccgtgacgggtcaccatgatggtgaccaaagagccgagatcccaag
-aaatttcatttttcatacatgcggatgtacaaaaaagacatctctccatt
-tactgaggaagtttcaaagtttgtacgtacgtgggcaatacttatagaaa
-atgtcaatattatgataatgtgcttttgtagagtcaaatttgcaaaaaaa
-aaaaaggcataaaataattagaactgtaaagtctcagcacaatttacacc
-tccagtattggaaatgatgcggaaatgataaaattcatagcacaggaaat
-tgtaagaaaaaaaatctgaccacttaaaatagtaaaaacaaactaaataa
-gttaaaataaaactaaaaacaaaatttgacgtatgaaacgtatattacag
-ggatggattacaggcaattgcacgaaggtgtccataagagctggcccttg
-ttcacgaccattaactatattttggagtcttgcatgataaatgaaaagct
-gctttttttccctctcaggatatgactctctctgccaagaaagttcacat
-tcttttttttttttttattctgagacagagtctcattctgtccaccaggt
-tggaatgcagtgacttgatcttggctcactgcaacctccacctctcgggt
-tcaagcgattcttctcctgactcagcctcccgagtagctgggattacagg
-cgccaccaccacacctgactaatttttgtatttttagtagagacggggtt
-tcaccatgtttggccaggctggtcttgaactcctgagctcaagcgatcca
-cccgcctcggcctcccacagtgttgagatcacaggcatgagccactgtgc
-ccggcctacgttaattttctatatggtattgctgctcctcttttgaaatt
-gttctgtgacctgataaacagtgacttgagtgttccctattaaattttcc
-caactttcgtttagagattttgatcttttgggatttcaacattcaagatt
-atggagtttgggattgcatcttttgggaattatgatccaaaccTgttata
-acaaatgcacagtgtcatatgctcccccatgacagcatcatgcagaatag
-tttcactgccctaagagtccttgctgtttcattgtccagccctcctccct
-ccccttccaatctctggtgaccgctggtctttttactatctctatagttt
-tgccttttctcacatgcttgaaaatattgttatcacagagtgtgagtagc
-catttttggactgacttttttcacatgaaaaatatgcactcaaggtgcaa
-gcattggtgattccttcctctctctgcatggcttggtagctcatctctgt
-cactaattatgttccgttgtgtgaaaggaccgtcatttgtttatctagtt
-accttttgaatgacattttggttgctttcagtttttggagattatggata
-aaatggctataaatatttgcatgtaggtttttgtgtagacataagtattc
-aaatcagttggataaatatgtgggagtgtgattggtggatcatatggtga
-gactatatttaacttcccaagaaactgtcaagctctcttcctgaatggct
-gtgccattttgctagtgctccagcaatggaccagaggtcgcctggctctg
-ccttcttgcctgcattgggtgttgtcagggtttcagctgtgaaccattct
-aataggtgtgcagtgggatcacattactgtttaaattggcaatatcttaa
-tgaccactgatcctgaggattcctttgtgtgcttatttgccctctgtata
-tattcttccgtgaggcatgtcttcagttctttggcccactttttaactgg
-gttgttcccttattgttgaatttcaagaattctttgtatattttggtaca
-agctctttaccagagatgtgttttgcaaatgtttcctcccagcgtgcagc
-ttgtcttcagcatcctcccagcatcgttcacagagcagaggtttcatctg
-aataaagtctaaggcttttttgccttcaaggtctgtgttttcagtgtcat
-atctaaaaactcatcaccaagcacaaagccatcttgatttcctcctgttt
-ctttctagaagctttgcgatgtttttcattttacctgcaggtTAGATTTT
-TGAGAGGTATCGTAAACAAGAGGTGGACCGTGTGGAGAGTGGAGTGAGGT
-AGGTTTGAGGAGCTTTTGGGGCCTCTGATTATTTTGTGTGAAAATATTTA
-ACCCAAGAATAACGCAGTCAATGGAATGACCCATTCCTAGGCCTTGATAA
-TAGGTCCTGGCCGgatgaatttctgggaggaaacacacccatgtaacggc
-tgaatgggagtgaccatttccagcccccaatggctcgtcttcctccttcc
-cagatggcacctcccatgtaggtcagcagtgtcctgatctcgaacgccta
-gtttagttctgcctcctcctaaatgttgtttacgtgcaattataaagcag
-cttctctttcatgtctgtctcctgctcaacgctatgtgaagttcatctgt
-gtgtgtaaggaacagctctaatcgtgttccttacaaggtaacatttcatg
-gcatactgaagttttcattcattctgttgagattgtgttgaaatcagtgc
-tgctatgcatgatcctggatgaattctttgtttgtttgtttgtttgtttg
-tttgtttgtttgttttgagacgaagtctcgttctgtcgcccaggctggag
-tgcagtggcgcaatctcagctcactgcaagctccgcctcctgggttcacg
-ccattctcctgcctcagcctcctgagtagctgggactacaggcatccgcc
-acctcgcctggctaattttttgtatttttagtagaaatggggtttcaccg
-tgttagccaggatggtctcgatctcctgacctcatgatccgcccaccttg
-gcctcccaaagtgctgggattacaggcgtgatggatgaattcttttgtca
-tcacttcatgcatttcttttgcatctgtttctaggagttcgattgccggg
-CTGCGTGCTCTGCACAAAGCTTTGGTGGACAGGACgtttcctagggctgc
-agtaatgaatcacccgacggattaaaacaacagaaatcgattctctctgt
-tttggaaggcagatgtcctgaatcaagttgtcagcagggccaagcaccct
-ctgaagcctccagggtgggaacactccttgcctcttccaacttctcgcgg
-cccccagcattccttggctggtgggagcatcgcttcgcctctgcctctgg
-tcatctcccctctatgtgttctgtgtcTTTACACAGTGCCTTCCATGTGT
-GTCTGCATCTGTGTCTCCCAGTGTCCCCTCCCAATCTTAAAATGCTGCTG
-TCGTACTCGCTTTGAGCCTGCAGTGATCCTGTACACACCCAGTGCCCGtg
-taaatagaatcatttaacattttcattatttctcatttttttgctggtag
-gtagtaatagaattattcacattgaacatagatttacttaatagttcctc
-tagtttatctacagattctttttcatattccacatatataataatgttta
-tagtgaaaaaataaaatgttacttatcctttctaatcgcatatgtaaaat
-acacatttatactcacacacagggggtacagctgccctggctggggagct
-ccagggcaacattgaacagaatgcagagagggggtgtccttgtctctttg
-aagatacatattgatgtatttctcttcaaatttattgtctttcctctagt
-tttttatttgtccattctgattttttttctttttttcccatttttggctt
-ctttttgattaattaataattgtatttcctatttctctcctatcagtctc
-aattttacatctttaagtattcttttagttaccccagagattaaaaatta
-cctttgctacatttcgtgtctacatttatttcttttaccatttccaagtt
-agtgcaaggattttaaaacacttcttcgatatttactctcttccttcacc
-ctttctgatagtcttgttaaatttaccaaaaatttaacccagctacacat
-tattactattattttgaaaaaaaatgacgtttatttagatagactcatat
-attctcacttccctgtgcagtgttcctcccatatcaccgtgcgtctagca
-atacctggatggcttcttacaggatgcctctgcttgcagtgaatccatct
-tctcagtttttatcaaaaattttttttcgcttttattacagatattttAC
-tatggagttccaagttggcaattttctctcagcattctaaagacaccgtt
-ctactgtcttccatcttTTTATCGTTTTTTGTTTCCTTTTAAAGTAAGCT
-GTGTTTCCCTGTTGATTCCTTATAgtgtgtgtgcgtgtgtgtgcgcgtgt
-gcgtgcgtgtgtgtccgtgtgcgtgtgtgcgtgggcgtgagtgtgcgcgt
-gtatgtgcgtgtgtgcgcgtgtgtccttgtgtgcgtgtgcgcgtgcgtgg
-gtgcgtgcctgcgtgtgcgcgtgcgtgtgcgtgtgtgcgtgtgcgtgcgt
-gtgtgtgcgtgcatgtctgggcgtgtatgtgcgtgtgtgcgtgtgtgtgt
-gcgtgcgtgtgcgtgtgcgCATGCActttttacatttctagctgctctta
-gaattttttgctttgtcttctcagtccttgggggagcttttcacatttgc
-tttgcttggaatctgcagacatgtttgaatctataacttgattccaaagt
-ttccacacttctaaaaaaatgaactggcctttctttttttccaagactgc
-ttctgtgcccgttattctctgcccttgtatgggtgcaattacacatTCAC
-CGTCACCCCACGTATCTCCCCCATTCTTTCCTGCCTTTCTATCCTTTTAC
-CTGCCGTGTGTTCATCTAGACAGGCtctactgccttctctcccatttcaa
-tgttctctcttctgctctacgtcatctgctgctaagcccatagagtgaat
-atttaattttaattatttcactttaaaattttgcagtttccgtttgacaa
-ttttggttcatttccagttctctcagaaagttttcatttttcagctattt
-TCTGGTCTGTATTATTAGTAGTTATTTTAACTAAGATATTGAAAGACTCC
-AAACTCTGAATCACTCCTAAGTCAGTTTTTGTTTTGCTCGTAGTTTCTGC
-TCATTTGGTCCTGTCTCCGAGAATGCCTGGTAATTATTTTATTGACAGTT
-GAACATGTTGCATGAGAGACTTCAGAGGCTTCCTTGAGGACCCTCTTCCT
-GGGAAAGGATGGAATCCACGCCCACCCAGCACGGGAGTCAGATAGGAGCA
-GATACCTTGGAGGCAACTGCAGGACTGACCCATTTCTTCCCTATGCCCAG
-TCTTGGGGCTCAGCCTCACCAGAGCTCTGCTAGCGGCCTGGTTTGTTTGC
-GGGGGCCCCCCTCTGTAAGGTGCAGGAACTCTAGTCTTCTTTTCCTTAGC
-CTTGCAGGGCAGCTGACACCGCCACTCAACTTTCCAGCCTCCTTCACTGT
-TGACTCCGTTTGCTTTCTTAGCCTTGAATCCAGGTGCATCTAAGTTCGAG
-ATCAGGACCCTTGAGGGGATGCTGTGTGTGGAATGCCAGGCCTACTTCCT
-CCAGTTCTTACTTCGCTGGGATTTTTATTTTATTTATGtttatttatttt
-caacttttattttagattcaggggctacatgtgcaggtttattatctggg
-tatactgtgtgatgctgaggttagggatgaatgatcctgtcacacactta
-ctgagcacagtatgcaacagttcgcttttcaacccctgccccttcctcct
-tcTACCAAAAAGCAACATGCATCTGCATGAACACTGCAGCAGTATTCCTG
-GCATTTTTAAAACCCCAACCCTGGCATCCTGAGAGCCCTGAGTTCCAACT
-TTCTCGTCCCAGCCCAGGGAGACTCTGGCAAGGCCTTGGGCTGCACTCTC
-TCATCTTCCTGCCCTTGTGGGTGGGACAGAAGCTGCCCCAAGGAGAAAAA
-GCAGTGGCCAGTGTCGGGGAGGGGCTGCCTCCCAAGCTGTGCCCATTTCT
-GGGAAGGTTCTGGATTGGCTCTGGGGAGGTTCTGGGCAGGCTCTTAACTT
-CTCAGATCCTGGCTGCCTGGGCTGCTCTCTGATGTCTTCAAGCTGTGTTT
-TGTTTTTTTTTCTTTTTGAAATTTCATCAAGCTATCACAGTTGTTCTTGG
-CAGGACGGTGAGTCTGACATAAGCTGCCTCAACATAGACAGATGTGTGAG
-CTCAGGTTTCTgaattgtgtgtctcttgttcatggtatccccagctccta
-gaacagtgcctgcaaatagcaggaactctgcaaatatttcttTAGGAACG
-GGTCTGTGGGTGGATGAATTTGAGGCCATGATACCACGACCAGGCCAGGA
-GTTGAAACGCCGAACACAGGAGGCCTGCTTTGTGAGCAGAAGCTGATTTT
-TTTTCCTCCCACCTGTGGGATGTGAGCGACCATGACACAAcaggtggaga
-cgccaagcaagtaattaaaaacttttctcaggagctcgggagagagctct
-gagctgTCCTTAGTTGAGTGGGGGTTGGAAAAGCCTATGCCAGAAATATG
-CCACATCCCCCTAATTGCGTGGAATCCAGAGCCCCTCCGTCCCGGTGCAC
-CTGGACAATGGAGTGTGAACGTCCATCTGCCTTCTCTTCATGCCTGGAGA
-GGGCCATGCCAGAGACACAGGGTGGGTGTTGCGTGGGAGTGACTCAAGCT
-GATTCATCCTGCTGGGGAGGGAGCTGGAGTGGAGCCTCCCATGAGATCTG
-GACCCTGAAACTAAGGCCATGTGAATTCACTCACTGCAATGAGGGCTGTG
-AGCAGGGCTATTGCCTTGTTCATTTGTTGCAAAGACTCCCCCAGAAACTT
-ACTCTCATGGAAACATACTTGGATAGAGAAATGCATTCCTCAGAATGATG
-CAACCGCACCTGAGAACAAAGCCTCAACAGGGGACAAGCCTGCGGCAGAC
-AGGGTGAAGCTCTCCCATTCCACGGGGGCCTTCTCGTTTCTTGGTTGTTA
-CTGTCAGGAACCACCtgggtctctgaatggtgcctcccagcccagcggcc
-tcagaatcacctgggctcttacaaataaatacaaacacctggtctgcatt
-ccaggcgcaggggatcagggccttggagttggagcAGGGACGGGAGTGGA
-CTGAGCGTCTATGGGATGAGAGCTTTGGAGGAGACAGGGGTGCTCAGGTC
-AATCGGCTGATGGAGTTTGCATGCCTTGGGAATTGCACGTTACATCAAGG
-TATCttatttattttatctatttttattatctattttatttatttacctg
-tttatttTAATGGTTGCTCCCTCCCTCCCTTCCTTggagtctcactctgt
-cacccaggctagagtgcagtggcacgatctcggctgacagcaaactcctc
-ctcccaggttcaagcgattctcctgcttcagcctcccgagtagctgggac
-tacaggcgcatgccaccacgcccggctaatttttgtatttttagtagaga
-ctgggttgtgccatgttggccatgctggtcttgaactcctgacctcaggt
-gatccatccatctcggcctcccaaagtgctgggattacaggcatgagcca
-ctgcacctggccTAATGGTTGCTCTTTCTTTCATGTTGGCCCCAGTTCCC
-GAGCCCTGGCACTGAGGGGCTGCTGGCTCTAGGACACTCTTAACAGTGAG
-CCAAGAGGAGCACAGCTGCCTGGCAGGCACGGGCGGTTGTGTGTTCCGGA
-CTCACCTGCATGGTGTGCTGAGGCCTTGCAGTAGGAGTTCAGAGAGCTTC
-ATAGGGAGCAGATGCTTTACACTTCCAGTGGGTTGGTTCCTTCAAGGACG
-GCACTCTCACACAGCCATGTGCTCCTCCCAGGATGAGACACACTTGGGCA
-CTTCTCTGTTATCTGGAGAAAAGTTTGGTCCAGCAGTGTctataaaaaaa
-taccacaggctggacagtttcaacaacaggaattgattacctcatagttc
-caggttctgagatcgaggtgttggcagggcggggtcctcctgcagcggtg
-aggggacatctgtgccaggcctctctccagcttctggggtttgctggtga
-tctctgaggccccttgcctgtagaagcatcacccccatctctgtctccat
-cttcacgcggcctttcccgtatgggtacatctgtatgtgctcaaatgtcc
-cctttgtgtgaggacaccactcacattgaattagcgccaccctcctctgg
-gatcttaaccagttacatctgcaagtactctacttccgaataaagaccac
-attctTACCTCATAGGTGCTTTTTCACATTTGTTCTGCTTGGAATCTGCA
-GAGACTCTTGAATCTATAACTTGATTCCAAAGTTTCCACACTTCCAGAAC
-AATTAATTGGCCTTTATTTTTGTTCCAGTGTTGCTTCTGTGTCACTGTGG
-TGGttccgaatgtggcccctgttctgaggttctaggggctaggagtttca
-tgtgatttttgggaggggacgtaactcaacccaCCAATTTGGAATCAGAG
-TGAGACCCCAGCAGGAGTTACCTAGTCCCAGCAGGCATGAGAGGGACGCT
-CTGCTTCTGTGGGGCCCCGGGGCTGAAGGGGAGGCCCCAAAGCCAGCGCG
-CCCCAGAGCTGCCTAACGTTGGGGTTCATCCCATGAGGAGCGGGTCTGAT
-GCCCCGGGAGCTGCCTAACGTTGGGGTTCATCCCATGAGGGGCAGGTCTG
-ACGTCATGCAAGGGAGGACCATGTATTCTCCAAGGAGGGCCTCAATAAGG
-CAACGGTGCACCCCCGTCCAAGGGTCAAGGCCTTCCCCTCTTGGACACCA
-GACCCCAGGAAGTCAGCCTGTAGGACGATCGTGGATCTTAAAGGGAGGGA
-GGGAGCTCTCCCTGAAGGAGCTTCGGGGCCAGGATGCAGGCCTCGGGGGC
-CAGGGACCCTGTGTGGGGCTGCATCCCGAGGGGGCAGGTCCATGAGTGGG
-ACGTGGAGTTGGAGACAGAGCTTGTCCACATGGAGGCACAAGTCCATGTG
-CAGGGTTGACGGGGGTCAGGACTCCTGGAAACAGGGCTGATGTGGCCAGA
-ATGAACCTGGGACcccatgctcagctgtttctcctgctactccgcgtaat
-ttcatgcccggtgactttgtctcttggctgcactcccgtctctgtggggc
-agctcctccgtggagcatctgtgtttgtcaaatgtcacaggcgctgatcg
-ctggggtcagggaggtgacagtgcaacaggcttggctgccagtgtgagaa
-ccgacctagaggtgcctgggcatggatcacaggccggcgttgaaagcagc
-gctgtgattggtccccatgatggtgcccacaagacacctgtgttgtgatt
-tgttgagggagattgggcggcacagtctgtgctctgtgccattatcaggg
-ttgatagccctggtacctgcaatcccacccatgctgttggagaccgacgt
-tgtttaacaaaaccgtgcagtaggaactgtgtgcacatcCTAAGTGGATG
-ACCATGAGTCACCACCGTTCCTCTCATGCGTAGAATACACGGGTCCGGGG
-CCCCAGGCGTGGCTAGGATTCCCACTTGTGATCCTGCTCAGTGGTCTGCT
-TGGGTGATTTTGCTTTCTGTTCCCACAAATACATGCTTGGCAGGTTGGAG
-GTCCTGTTTCTAAGAATAAACAGTTCCGCACATATCCCAATCGACTTTCA
-CCCGTGTCTTTAGGCGCCCTGCTCCCAGGGCCCAGCAGGCAAGGATAAGA
-GTTTGGCTCATGGCAGGGGTGGCTGACCCTGCTCCTGGAGGAGGTGGGTG
-CTGGAGACCCTGGCCTCCGGGAAGAACAGGCTGGGCGCGgtcttagcctc
-tccgggctgctataacaagataacacaaactgggggcttgtaaacaacag
-aaagttgcttctggaagttctgcaggctgggaagttcaggtcaaggtgct
-ggccagggctcattcctcagagacggtgccgcctccctgtgtcctcatat
-gttaggggggactgcagctctctggggtctcatgtgttagggcactaatc
-tcttggcctcatcacctctcaaaggccccatctccaaataccatcctact
-ggggattaggtgacaagggaagagttttgaggggtcacaaacattccatt
-tgtagcaGGGTCCCAGGTCACCCACCCGAGTCTGTCTGACTCCTTCCTCC
-CTTCCAGTTTTGATGCCACATGGGGAGCTGCCCCAGACCCGTCAATTGCA
-ACAGGAGACCCTGAGAAGCCCTGTGGGTGgagggtgcacgcccagggact
-cccgtggggagggagacccttctttcctgcagcagccgggagcggcggtg
-gtgacggctcccagccgagctgctctttgggaattgccctcctgggaaga
-gatggttgccacatccaggggtgtgccctctcccagggcagcccacgcat
-ccagtggctggttgatctgggtaacggccataccttcgtgcctcagggtg
-ggccagctctgccggggatgcagttccagcactccctgtgggactcacag
-cttccctggctcctgaatcacagctgagtgcccccctcagcccaggcctc
-cctcctgtgcttccccacaggcaagaccccaaaggcaagccccacaaact
-cctcgaatgcaaatctgtctcctggggaacccacctgAGGCAGGCAGGCT
-CAGGACGCTCCTGGTGTCTGGTGCTGAGCAACGGGGTGTTCCCATCTCCC
-CTGCACCTTCACTTTGCAGACCCCTCAGAGTTCCAACCCAGGTGGAGCGA
-GGTGAGCCGTGTGGCCACGGCACCTGCCTAGAACTGGCATGACAGAGATG
-CCTCATGGTGGTCAGTGCCAGCAGACACAGGTGGCTGGAGGACGGCGTCT
-TGGCTGAACAGGGAGGGTGGGGTGCCCAGCCTCAGAAGGGTGAGAGGAGC
-CCCTCTGGCAGAGAACCCCTGAGCCCAGGCATGGAGGTGAAGGAGGCTCC
-ACGTGGCACTGGCCCCACTCAGGGGAGTGGGCTGGGGCCGTCCCATCCTA
-GCGCCCATTTTGAGGAGGGTCTCAGTTGGGGCTGAGGGTTCCAGACCAGG
-ACATGCAAATAGAGCAAGAAGCAAAGGAAGCGGGAACAGTGCAGGGAAGG
-AGCGGGGAGGGTGGTGTGGGTCTGGGTGTCCTTCAGCCGGGTCATGGGAT
-GGAGCCGGAACGTCCCTCCACAGCAGAGTTGGGCCAGGGACTGAGGAGGG
-GGCCAGGACCTGAGGCACAGTCTCCTGGAGCAGTGGACCCTGACACGCAT
-GTGCATGCCTCATATCATCCCCACcacacacatgcatacaagcccatgtg
-cacacacatatgcacacacacacacaGTTATGTAACCCCATGTGACACCA
-CATGCCCCAACTCcacacccacactcatacacaccacacttccacacatc
-acacagacacacatacatacacacatgcacacaggcacacaGGCATGTAG
-CCCCATGCGACACCACAGCCCCCAACTCCACGCCCATATCACCAACACAT
-ATACATACCACGCTTCCACATATCACACTTGAAAGCcacagacacacaca
-catacatacatgcacacatgcacaTAATGCATGTAGCTCCACGTGACACC
-ATACCCCCAACTCTACCCCATGTcacaaacacacatacacaccacgcttc
-cacacatcacataaaccacacagacacacatgtatacacacaggcacaca
-cgcacGTAGCCCCACGCTACACCCTACCCCtgtgaaaggaaaatacatct
-tgggcccccccaaatcactaagctaaagggaaaagtcaagctgagaactg
-ctcagggcaaagctgcctcccattctatgtaaagtcaccgcctgctccta
-tctgattgcttcctttggagaggctcaccagaaactcaaaataatgcaac
-cgattgtctctcacttacctgtggcctaggaccccctccctgcttccagt
-tgtcccgccttcacctcgagttgtcccacctttccaggctgaaccaatgt
-tcatcttgcatatggtgattgatggctcatatctccctaaaatgcataaa
-accaaactgtgctctgagcaccctgggcaccaggacctcctgagtctgtg
-tcgagggtatgcgtcctcaaccttggcaaaataaactttctacattaact
-gagacctgtcttagattttcagggttcataCTCCCCAACTCTAACCCTGC
-ATTacacacacacacagagacacacacaacacaattccacatgtcgcact
-cacaaaccacacagacagaccggcatacatcacacataccaagcacacac
-cacacaaaaaccacaaaccagtcatcacacatcactcaccacacaccact
-ccacatacaACTTGTCACACCCcacacaccccacacagtcaccacacata
-ccacactacacacacacacacacacacacacacaAACCCTATAATGGTTC
-ATGCTGAAGCAGAGGCCTCCCCCAGAGCACAGAACTGGGCTCACCCCTCC
-ATGTCAGGCCCCACTGCGGAAAGCTGTGGCAGTGTGGAGAGGGGCCCATC
-TCTAGGGTGGACACCTGGGCTTGCGGCCTTGGCCATCACTGGGCTGCTCT
-GGGCCTTGGTTTACTCTCTGGTTGAAGGATGGCACTAGGGGATTTGGGGT
-TTCATCAGCAGAGCCCTTGATTGTCCCTCCCTCCCCCATCGGGCAGTCAC
-TGCGTGCTCCCTCTGTGCCCACACGCGTCACGTTTCGAGGCAGCCTCCAT
-AATCACGATGATTACCTGAGCTCCTCTCATTCTCACCGCAGCCGGCCTTG
-CAGGGGAGGAGGATGGAGGAGCCCAGTGATGGGTCTGCCTGACTTGCTCG
-TCTGTGGCTGCCCCACCCCGTCCCATGCCAGAGCCTGGACTCAGGTCTGC
-CTGACTTGCCCACGGCAGCCATGCCACCCTGCCCCACGCCGGGACCCTCT
-GTGGGGCTTCAGGACTGCAGGTGCCTGTGGGAGAGCGAGGCTGCAGGCTC
-CCGACGGCCACTCGAGCTCAGCGGTCATGGTCCCCTCATGCTCTGCTCCT
-AGACGGGGTCTCTGTTCTCCTGGCTGGAGACAGGAAGCTGGTGCTGAGTG
-CCACTGCCTGGGGAGACGCCCTCCCTCCCTGAGCCTGCAGTCACCCCCTC
-AGCTCACTGGCCTTCATCAATCATTCTGTATTTGCTCCCTGAAACATTCA
-TGTTGAGAGGAAGTGAATGTAATGGCACTTTAAGGAGAAGTCCCATTGAA
-GGAAGCCATGGGATCGTGGATAAGGGAGGGGTGGCTTGGGGATCCGCCAG
-CCCCTGACAGTCTGGGCTGCAGCAGGACTTCCACCCATCGCTGCTTTCAG
-CCTCACGGGGATAGTGGCTGCAGAGACCCCCTTTATCACAGTTGTGGATG
-TGTGTGGGTGGCGGGGACACAGCTTCCTCGTTCCCTTTATCCTGGCTGTG
-CGTGGTCAAGAAGTAGGCAGCTGAGTCCCCGGCTCCCTCCAGGCATCCAA
-AGGCTGGTGGAGTTCTCTAAGCAGGGCCTGAGCTGTGGGGCCCGGGCCGT
-GCTTCAGGGCTTTCTTTCCTTCTGTGGATCAGGGATGCAGAAAGCACCTT
-GAAACTGCTGAGGTGCTGCCCGAGAAGGGACAGGTGGACCCTTGGGATCA
-GAGGGTCTCCTTTAAACAAATCCTGCAGGGTCTCAGGTGTGCAGCCCCAG
-GAGATCCTCACTGCTCAGGGCCAGGGGCCTCCTCAGGTGGGAGGCTGTTT
-GAGGAGGGCAGCTGGGAAGATGGTGGAGGGAGGTGATTCTGCACACTTGA
-GGCAGTCCTGGGAGAGCGGGTCCTGACCAGCACACTGGCCGCTGGCCGGG
-AAATGTCCAGGCACAGGCCGGGTCTGAGCTGAGGCTCGAATGCTAAGCTC
-CACAGCTCTGGGGCCAGCCTGGGACACCCTGGCCAAGCCTGACTGTGTGG
-GAGGGCACGTCCTGATCCTTCAACGCAAGGCACATGGGGACCAGCTGGAG
-ATCCTGAGTCCTCCTTGCGGGGCTGTCTGTGCTCCTGTGTTTCTTTTCCT
-CTCGATGCCTCTTTTCTGCCTTGCTAGAGCCTCCCCAGGGAAGGCTGGGC
-TGTCCCCAGGGATGGGACGCCACAGATAGCAGGAGGCCTTCCCCAAGGTA
-CGGGTGCAGGGCTGTGGACCACAGCACAGGCCCTTCCTTCTCGCCGCCCG
-CCCTGCTGGCCCAGTTCTCCTGGGTGATGTCACCTCTGCCGCCACCACGC
-CACTCCAGCACCGCCCAAACCTCTTGCTCTCTTCAAGCGCACCTGTCCCA
-AGTAGAACTGCCACACAGGTGGCCCCTTTCTCCTCCCAGGGCCCTGGGGA
-CTATGTCTGAGGATGCTGGGGCTCAGGAAATGGAGACTCCTGTATTCCCC
-GGCCTCACCACAGTGTCCAGCAGGCCTCTGGCCCGGAGTGACTCACAGCG
-CCATGAGGACAACACAGCCCCCTGTCAGCCGGCGCCTCAGCAACACAAGA
-GCTCGGCATGATGACCTTGGCACGGCACAGGCCAGGGGCCTCCTGTGCCC
-TTTGGGAGCATCCGGAGGACCCAAGGAGGTTGGGTGACTTTTCCAAAGCT
-GCTCAGCCATGAAGCCATGCAGAGGGACTGTGGCCGCATCCTCGGGGCCT
-GTCCCCTTCCCAGGACAGGGCCGGCCTCTGCTGCCTCACACCCACCTGTC
-TGGCCACCAGGGCGATAGTCCCCCCTTTGGCCTAGGCTGACGATTGTCCT
-GGAGGACCACAGGCTGGGGCAGCCAAGCACAGGCCCGACTCTGGGACATG
-GCAGATGTCCCCTTCCTGGTGACAAGAAAGCATGACTGCCAGTCAGACCA
-CATTGTTCCTAGACAACTAGATCCTCAAAACACTCCGGGCACCTTCAGGA
-AGGCTGTCGTCTGCAGTGAGTGGGGGGGCCTGCACAGCCTCGTCCCATCC
-GCCTTGACCAGCCTGCAAAGTGACCCCCAGACAATCAGGGCCTGGCTGGC
-TCTCATCCGGGCCGGAACAGGCCCATTCAGTCGGGCAGGTGAACAATGCC
-GGCCCCCGTGACAAATGGGCTCATTAAGGAGATGGATGGCCGCGGCCCAC
-CGCGCTGGCCTGCTTCCTGGGCAGGGCGGGCGGGCTGGCGTCTTCTCCTG
-GGCGAAGGCCAAGTACATGCAGCTCTCCAGCCAGTGGATGTGGCAAGAAG
-GGGTCTCCGGGCCTCCTGGACCACGGTGCTGGCCTCTCAGGGAGGGGCAG
-CCTGTGTCCCAGGCCTGTGGGCACCCAGCCCCCATGAGGGCAGTGATGGC
-CGGCAGCGCCTGGACGCTCAGGACAGCCATGCCCGAGGCAGGTTAGCAAG
-GAGAAAACGGGGGCTCAGAGACAAGGGGAGGGGCCTAAGGTCACATAGCA
-GCCAGCATTTCTGGGCTGGAAACGTTCGTGAGCAGAGTTGGGTGACAAGA
-GTGAGCAACAGAGCAAactccagcctggcgacagagagagactctgtctc
-aaaaaaacaaaaaaaaacaaAAACAAAAACAGCAGCATGTCttccgaaac
-agagagaggacctgaaacctacacactcgtggaaacagtaaatactcggg
-tgccgcagaccctcgataccctgactccatcatgacacagtccagacatg
-cagcaagaggacacaagcaccccataaatatgtacaaataCAGCACATCA
-GCCGTTTAAAACATTCCGACAAAAATGTTTAGATCTGCCATTTTATGTTA
-AGTTAGGAAAAAAAAATGCAGTGGTTTCAAGCCTCAGCCCGCGCTGCTGT
-CCCTGGAGTCACACTCTTGTTTGGTGTCTGCGAGGCTGGTCTCCCTCACC
-AACCAGCCCGGGGCCCCCCGGAGCAGTCACCACATCAGTCATCCTGGTGT
-TCTGGGCTCCCCTCAATGGGCAAACTCGCAGCTGCCCGGTGAACAAAGGG
-ACACatggtatattctgaaataacctgaagagtgtagttgggttgctttt
-aactcaaagccccccattctccacgatgtgcttagttcatgttgcatccc
-tgtatcaaaacgtctcctgtaccccatacttagatacgcctactatgtat
-tcacaaaaaAGTGGATGCATGAACCCCCCAGTGACCTGAAAGAGGAGGGG
-TGGGAGAGAGCCCAGGAGGTCATCTGGGAGACAGGACCCCGAGAGCCCCT
-TCCCAGAGGCAGGACTGATGGAGGGTGCTGGTCTGGGGAGTTCAGGGCCC
-ACAGAAAGCTCTTGGTCCTCACCCCTCAGCTCTGGCACCCTCCTTTGGGG
-CACCCACTCTCAGCCCCACTGCCCGTCTCAAAGCCTCCCTGGCCTGTGCT
-CAGTCGCTCCTTCCTCACTTGGTCCTACCGGGAACTCCAAGCCACCTCCC
-TGACTCCAGGGCGCACCATCCTGCTGGAAGTAAACAATGAAGGGGCCCCT
-GGGGCTGGGGTGGGTGTGAGCCTCACCATGGACTAGTGGGGGTTGGTGAG
-ACGCCCAGTCCTGGTCTGAGCCACTGCCGGACCCCAGGGATTCCTGCCAG
-GACAGCCAGGGGCAGAGGGACAGGCTGGCCTCATCTTGTGGAGGTCTCAC
-AGCTCCCTGTGTTGTGCAGTGTAGCGCTCAGATGTCTGCTCTGGCCCCTC
-GCCAGTGACTATCGTGCTCCAACCAACCTCGCTGCTGGCGGGAGACACTG
-CAGGCAAGGACAGGTCCAGTTCTGACCCCTGCTCCCGGGCTCCGGGCCCT
-GCCTGACTGGGGCAGGTGGTGGTGACAAGCAGGATACCGGGTAGAAAAGA
-GGCAGGCCCCAGTTTGAATGCCTGCTCGCTGAACTGACTGAAACTCATTT
-CCCTGTTCACACAGTCGGGAGAGAGTCCGGACTTCTTGGGAGGGGCCCCT
-CGCAGCCTCGGCTGGTGGGACCCTGCCATGGGGCACAGTGGTCCTGGTCA
-GTTATCCTCTGTCAGACCTGGGCTCTTGGTGTCTGGATTTCTTGCTTTTC
-TGCAGAGGAACTTTTCTGCCCCGGACCCACAATTCTTTCCTCCACTCCAG
-CTGGGACACACTGAGGCCCACCAGGACCCTGAGAGCCACCTCGGGCTGCA
-GGCTCCGTACCCCGAGAGTCAAGCCTGTCCTGTCCTCGCCTCCAAAGAGC
-CAGATTTAGGCCTGCAGGGCCTCCCTCCAGAGCCCACCGCAAAACCACGT
-AATCAGACATCCTTCTAAACGGAGGATAAGCAGGGATTTGACTCCTCAGG
-TGTATTAATAAAGAGCGGTTCCCGTGGAGGCCTCTTGGAAAACATTAAAA
-GATTATCCACTCCTCGAGATGCCCATTAACATCCATCAGGGCTCCCGGCT
-GCAGCCTTGAGCCAGGAAACAACGGCGCTTGTGGAATCACAAGTGGGAAA
-ATAAAGGGCTCTGACGCACCGCATTGTCTGGAGAGTGCCTCAGTGGCCGC
-CAAGAACAGAGCACACAGGCCTTGAAGCCAGACACACACCCCCCCGCGCC
-GTGCTGGCTTATCCTCACAGGCCGCTTTCACGTAGCCCGGTGTGGCCCGG
-GGGTCTGCCTGGCTCCCTGTCCTTCAGCCCACACTCAGCCTAGCGTAGAC
-GGGCCTCTGGGTTCCACCTGGAGTAGAGGGATGGGTCAAGGGGCCATGTT
-CTTGCTGGAATACAAGCCCTGGTACACCTTTCCAGGGCCCTCTTTCAGGG
-ATAGACTCGGAGGTGGGTTTAGATGTTTGGGCCAAATGCAGGGACCCGGG
-AAGGCTGGGGTGAAGCTGGCCCCTGCACACAGGGGTGAGTTAGGTGAGGG
-ACCACAGGGTGTGCTGAAGATCTATGGGGGGCACAGACACAAGGTGTGTG
-CATGAGCCTGCCACTGGGAAGGGCTGCCAATGGCTGTGGCTTCTGCTCTT
-AGCAAAATTAGGAAGCTGACCCAGACTCATCTCACAAATTCAGTCCCCGG
-CTGTTGACCAGGCACCAGCTGTGCTGCAGAACTGCTCTGCCTGCTCTGTG
-CAGGGAGGAATGTTCTAGAAGCTGGTGCTGTACTCTTGGGGACGAGGGCC
-AGGCTATCGGGAGGATCCAGGCAGTGCCACAAGAGCAGAACAGAGGAGGT
-TTTAGACCCGGCCACACAGACGTGGCTTCCGTGACTCCAGCTAGGGTCTC
-AGCAGCATGGTAGGTCCAATGGGGGTTCATCCTCCTTAGAGCAGAGGAAA
-AGCAGGGGGCTGGCTGTAGCAGAACACTCTAGAATCTAGAGCCCCAATGG
-AGGAAGCAGGCCTTCAATTTTGTGCCTCTGGCTCTGGAGGTGGTTTGTCA
-AAGACTCCAGTGAGGACACCTTGGCCATTGCTCAATGAAGCTGCAGAAGC
-CACGGAGATGGCTGGGCATTGGCCCAGACCTGCCAGGAGGCACCAGCTGG
-GCTCGGGCCTCCTGGAGGTTCACAGAACAGCAGGAGTCTCTGGTCTGGAC
-AGACAGCTTGATCCATGAACCCCACCTTTTCCCTCTCTCCTCTGGGAATT
-CTTTGTTCGTGCACTCCGGGAGTGGGGAGAGGGAGGGTGGGCTGGGGATG
-GGAAAGAAGAGGTTGCTGAACCTCTGCCTCAAATGGGGTGAGGGTGCACA
-TATGCTCTCCCAGTGGCCTCTCCCCAACACGTGGGCCAGGGAGACATGGG
-ATGGCAGGGCTTCCATCCTCTTCCAGGCCCAGGGGGGTGGGAAAGCCCCA
-GCTGGGAAGCCCAAGAGGACAGCGGAGGCAGGGCCCATACACCAGCCTTG
-CAGCCTCCTTGGCCAGAACCCCAGTGTGTTCTCCTCAGCTAGGTCTCTGG
-CCAGGGCTTCTCTGGAGCCATCTGGGACTGCTTTCATCTGTCATTGCTCT
-TGTCTTTGTCTTTTTTCCTCTGAATGATGAAGGTTGGATCATCATTCTTA
-TTCTTTCCCCGACTGTGCAATCACCCAGCCACCCCATACCCTGGTCCCCC
-TCTGGGCAGAGTGAGCTTTTCTGCCTCttgccacagggcttgggcctgtg
-gctcacttgggacaatgagatgataggaaacatgatgtgagcagaTGTGG
-AGGTGTTTGTGTGGCTGGGCTGGGCTTCCCGAGGTTCTGCCCTCAGCATC
-AGGAGAACATACCTGGGTGGCTATTTCTGCTCCTGCCGGTGCCACAGAAC
-AAGTCAGGCAGGACGGGGTCATGCCAGCTGACCTGCTGATCAGACCTGCA
-ACCTGAAGCACACCCACCCTAGTTAACTTTCAGACGCTTGAATAACAAAA
-ACATTTTTGTTGCTATAAATGATTGCAATTTTTGGTTGTCTGTTACACAG
-CAAAAGCTGACAGTTTTCTCGCCTCTGAAGTTCTTTTATATTATTAACTG
-Ctttttactggtggttgatttgtttgagcaacgtggtgatttatcgtgtc
-caatgcctcacattccagcattggctgatgtctttcttgcggtgatgttt
-tgcatgttcttctgttccctgtaGGTAGATCTAGAAGTATACTGATGTTT
-GAGTTCATTGCATCCTCAGATACACAATGTCTCATCCCACATTTAATAat
-aataagacactttgctcttcaaccatttggtcactctgaaatcgagagtt
-tgcagaaaaggcagcaaaattatttggattctttcatttatcaattttta
-gaagcaatgagttgataccctggcaacctccaaaatgaccatgggctttg
-ttatttttaagtaatgtcatgaactcatgggttttacatatttgatgtat
-gtcaatctatggcagtcactattctgttgatgtccaaattatgtcatgtc
-aggttggtggaaaccctttaagttgactcctgtgtctttttttttttttt
-ctttgaaacagagtctcactctgtctcccaggctggagtgcagtggtgtg
-atcttggctcactgcaacctccacctcctgggttcaagtgattctcctgc
-cccagcctcctgaatagctaggattacaggcacacacaaccatgcccggc
-taattttgtatttttagtagagatggagtttcaccatgttggtctggatg
-gtcttgaactcccgacctcaggtgatctgcccacctcagccttccaaagt
-gctgggattacaggcacgagccatcatgcctggcctgactcctgcgtctt
-ttgatgccatctcattaagctttaatagctgccttgctttctgaccttcc
-actgtccattttcccctagagttagccattcctctatggagtcctgtttc
-tttcagaaggaaatggtgtttagagagaagtgtctgggcatcaggatgcc
-tgtcgatgctggactTTCAGAAGGTAAAACCATCATGCTGAGACTTCCAA
-CTTAAATGCATGGTTATATCTGCCTCTTTTCACTGCTTAGGTTGAATATA
-TTTGCTTTTTGCTACAACACATATATAATAGTTCAAAATCCCAGTACCCA
-TTGCACTGCTCAGCACACTGACTCTAAAGGCTGTTGGTGGTGGCTCCACC
-TGGCATCCTTTGCCGTTTCCATTAGGAATGTGTGGTCAAAACCTTGTGTT
-TTGAATTTATGTGAAACTGATCTAATTTATATGGGTATGCCACCTACTTG
-TCATACAGCATCATTTTTTTTCCAGCTTGCTTCCAAATGATTGGAGACAT
-TTTCCTCTTTTGCTTTAATATTGTCTGTTATTATATAGAATATTTATCTG
-GTTCTGTAGTCAAAACAAAGAATGAGGCACAATCAGAGttcccccttcca
-ttctgttctcttctaccctgacacctccctttctcttaggtaactccttt
-acaattagcttttactttattattgcattgcttcttttcgaaaatataag
-caaatgtgtacgtagatttgtattatctttttagttgcacaataattaac
-atttcataaatactgttctgagccttgctttactaacttaaaaatatatT
-TAATATATTGTAggccggggtggtggctcatgcccgtaatcccagcactt
-tagaacgctgaggtgggcagaccacttaaacccaggagtttgaaactagc
-ctgggcaacatggcaagaccccttctctacagaaaaatataaaatttagc
-tgggcatgatggtgtgcacctggggtcccagctactctagaggctgaggc
-aggagggtagtttaagcctgggaggttgaggttgcagtgagccaagatca
-tgccactgcactccagcACTCTCTCACCCATTCTCTTGTCTAGCATGGGT
-GAGAGAGTGAGACTCTGTCTTAAatatatatatatgtacgtgtatatata
-tgtgtgtatatatatatgtatgtgtatatatatataATCACTCTGTAGTA
-AAATATTAATAATTTCCTCATTTCCACACTTTGTTTTACCATAGTGGAca
-gtggtgagtgctagtaaatgtttagaactggcgctctggaaaaatgtGAT
-TAGATTTTtatctatctatcatctctctctctctctctatcgtctattta
-tctatgtatctaatctatgtatctatgtatctatctatgtgtgtatataa
-ctatctatgtatctatgtatctatctatgtatctatctgtgtctctatgt
-atctatgtatgtatgtatgtatgtatgtatgtatctatctatctatctat
-ctatctatctatctatctatctaCCTACCTACCTGCGTAGCTACCTATCT
-CGCTTTCTAGCTAtctaatgatataaaggatggtaagcatagtttacaaa
-caataatgaaatgtgcaatagtctttattgttaattccacgtgaacaatt
-ctcatagaatgtttctgttgattttggccaaactctagaacctgtagccc
-atatatggttgcaattTAACCCTAAGTTGACAAAATCAGTCTATGAATCA
-ATGTTTGTTGTTACCCAATAGAGCAAAGAAGCCATCTCTGTCCCtggcaa
-atgagcgtagttctgagagggatggcggttgatgtttccatttgccttaa
-tgggaaccatgaaagtgtaataatgagatgtgtgGCACGTCTTCACCTGC
-TCCTGGAAATGAATATCTTGCTCTCAGGTGCTGGGAGGAGCCTGCTGCAC
-ACACCAGTGCACCTGCCCTACGCCGTTGTGTGCGTTCTCATCTCTTCCTC
-CGCTCCCTGCTGCTGGAGAGTCAGTGCCCCATACTGAGTTTTACTGTGAA
-AAGTGCTGACATGATGAATCAGTGCGTGCACATGCCATTTCATGTGTTGA
-CAGGTGCGTCTTTGGAATAGATCCTTAAAGGTGGGCATGCTGACCTGCTA
-CTTTTTTATATTCTATGATTTTTTTGTCATAGTTTCCACTTattcttttg
-tgcttactaaacatgcaatcataccacctgcaaactgagatagcttatct
-ctctttttggttattaatccttgaatcgaattctcttgtctagctgcatt
-agctgttacttccactacaatgtcaagcactagtgggaagagtggtcatc
-atagtcttgtttgtgcatttagtggaaacgcctgtgccatttctccatta
-agtaaatgctggcttttgaattaaagtatatgacatttatcaggttaaaa
-aatccatcaattattattttactaaatattattttgtatacggaatgagt
-gttgaattttgttaaatgaccttttactttttataaatatgactggatga
-ctttttcatctagaccaattaatatgatgaatgtattatattaatgtttt
-tcttaatattgaattatccctgcattcctggaatgaaccccagttgtcat
-gttatatttaatttttaatgtgattaggattttgtttacaaattatctac
-tctattatttgaaaatttctaaatatcatatttgacattttgcattaatg
-ttcgtgatattaatctgtatttttattgtgcttgaaaaagattcagatga
-atgcctttcttgcttcacaaataggatttggaaattgtccccctttatct
-atgcttctaaatattccaaatagcagtaagatttttgatatttgctaaaa
-ttcccttgtgaaatcactttggctttttttggcttgtttcatggaaaata
-actatagtttcgcttcttgtagaaaattggcctttttagattccttacgg
-ggacttgagccatttttcagtaaacttttttttcttggaagttgtcaatt
-tcaattaggtcttcaatttatttgcaaagaaatgtacacaatTTTTAAAT
-TAAAAATTCTTTCATTTTGACAGCTATTTACTCCTTGTCATTTCCTACTT
-TGTACATTTGTGCTTTTTGCTTTTTAAAAAATGAAGTTGGTTATTGGGAT
-CCAGTTGCCAATTCCCAGGACAAGGGACAGAGGGACCAGTTGAATGAACT
-GCATGGCCCAAGTTTTTCAACCGTTTAGCTGTAAGGAAAAGAATGGAGTG
-GAGGGAACCTGTAGAGTAAAAGTAATGGGAAAAGCATCCTGTTTAAACGT
-GACCAAAACAAGTGGGTCAGGGGTTTGCCTTTTCCAAAGGCACCAGCTTG
-ATTAATGTAGTCATAACGCAGAGATTTTCTGCATTATGTCATTCTTGTCT
-TTTTTTTTCTTTTCTCATTATGAATTACTTCCTTCTATTTCTTTCCAGGC
-ACTATATGGATATTTCTCCCATTTTTAAATTCAGTATTTATCTTGTTCAT
-TTTTACGAAAATACTTATTATGAATTTTCCAAAGCTCAGCTATAGATGCA
-TTTCTCATAGATCTGGGATTCATTTTTTTTAATTATTGTAATTTGCCAAA
-GTCAGGCAcaccttgttttattacactttgcagaaattgcattttctgca
-aattgaaggtttgtggcaaccttgcgttgaggaagtctattggcgctatt
-tttccaacagcgagtgctcactttgtgtctctgtgccacatttggataat
-tttcacaatattccaatttctttcattattattatatttgttttggtgat
-ctgtgatctttgatgttaccattgtaattgttttggggacaccacagact
-gcacccatataagatggcaaacttaatagacaaatgtgtgtgttctgatt
-gcttcactgaccatctattccccatctctctccctctcctctggccttcc
-tattccctgagacgcaacagcattgaaattaggccagttaataactctac
-gatggcctctaactgttcaagtgaagagaagagtcacaagtctcttgatt
-tacatcagaagctagaagtggtggggcttggtcgggaaggcaggtccaat
-gccaagatgggaagaaagcgaggccacttgtggcaaatggtcagctgcgg
-tgtgagtgaaaaggaacagttcttgaaggtaattaaaagtgctactccag
-cgaacacatgaatggtgagaaaggaaacaggcttcttgctgatatggaga
-aagtttgagtggtctggatagaagatcaaaccagccacaacattccctta
-agccaaagcctaatccagaggaagaccctaactctcttcaattctgtgaa
-gggttgagagaagagagaaagctgcagaagaaaagtggaagctagcagag
-gtttgttcatgaagtttgaggaaagaattcgtctccataaaagtacaagg
-tgaagcagcaagtgctgatggagaagctgcagcaagttctccagaagatc
-tagctaagatcattgatgaaggtggctactctaaacagattttcaatgaa
-gataaaacagccttctactggaagaagatgccatctaggactttcatagc
-tagagaggagaagtcaattcctgacttcaaggacaggctctcttgtgagg
-ggctagtgcagctggtgactttaagtgtaagccaatactcattgatcatt
-cagaaaatcctagggcccttaaggattatgcaaaatctactctgcccgtg
-actctgtaagtggaacaacaaagcgtggatgaaagcccacctgtttatgg
-catggtttactgaatatttaagcccactgtcgagacctactgctcagaaa
-aaagattcctttcactatattactgctcattgataaggtatctcatcacc
-caagagctgtgattgctcattgataaggtatctcgtcacccaagagctgt
-gatggagatgttcaagggaatgaatgctgtgttcatgctgctaacacaac
-atccattccacagcccatggatcaaggagtaatttcaatgttaatgtctt
-attctttaagaaatacatttgataaggctatggctgccatagattgtgat
-tcctctgatggacctgggcaaagtcaattgcaaaccgtgtggagaggatt
-caccattctagatttcattaagagcatttgtgattcatgagaggaggtca
-aaatatcaacattgatagaagtttaggagaagttggttccagccctcagg
-aatggctttgaggagctgaaggtttcagtggagggagtcactgcagatgg
-gtggaaacagcaagagaactagaattagaggtggcatctctatgattgaa
-ttgctgcaatctcatgataaagcttgaacgaatgaagggctgcttcttag
-ggatgatcaaagaaagtagtttattgaaatggaaacttctggtgaagacg
-atgcgaacattgttggaaacacagcaaaggatttggaatatttattattt
-acagttagtcgataaagcagcagcagggtttgggtggattgagtccaatt
-ttgaaagaagttctgggagtaaaatgttatcaaacagagttgcatgctac
-agaaacatcttttgtggaaggaagagtccattgatgtggcagacttcact
-gttgtgttattttacaaaattgccacagccacccccaccttcagcaacca
-ccactctaatcagtcatcagccaccaacatccaggcaaggccctccacca
-acaaaaagattatggcttgctgaaggcttggaggattgttactatttttt
-agcactaaagtattttaaaataagggatgcgtattatatttttagacata
-atgctatttcatacttaatagactacaatatagtgtaaacctaagttata
-tatgtagtaggaaactaaaatatgtgtggaactcaccttattgtgatatt
-gactttatcgcagtggcctggagctgaacccacaatatctctgaggtgta
-cctgTATTCTATCATTTTGTTTTAAACTTCCTCTTTGATTCACGATGATA
-CCATGTTCAGAATACTAATTGTTTTTATTTTGGCCTAATAATATGGTCAG
-TGTTTATAGATACATCCTATGCACTTAAAAAAGTAGTTCACAGTTTAAAA
-ATCAGAATCTGTAGGTGGCACCTACGTGTCGTTCAGGCCTAACTGTAACC
-TGATGCTTTGTCCATTTGATCTATTTTTCTACCATTAGGTGTATTTTACT
-GTTTTTAGCAGTGTCTGTCAAAATTTTGTATTTTGTATTCATCAGAATTT
-GTTATATTTCATAGTTTCTCTTTATCAAACTTTTGTTTGTTATTGAATGC
-ACCAAAATAAAAAAAAAAAATTGATAcagttggcacttaaacaacatggg
-tttgaactgcatgggtcatttttacgtgaattttcttctgccaccgccac
-ccctgagagagcaagaccagcccctcctcctcctcctcttcctcctcctc
-agcccactcaacaggaaggccacgaagatggaaacctttacgatgatcca
-cttccactttatgaatagtaaacacattttctccgccttacgattttctt
-aataaccttttcttttctctagcttaccttgttttaagaatatggcatat
-aatacagacaacataaaaatatgtgttagttgattttttatgttatcaat
-aaggcttccagtcaacagcaggctactagtagtagtgaagtttttgggga
-gtcaaaattgatatgcagatctttaactgcacaggggggtagcagcccct
-aaccccatgtggttcaagggtcaattCTACTTTTGCCATGAATTccatct
-ccaccctgttgattgctttggtctgaacccttcttgccagagatcaatca
-cacggaccctgcttcctttctaatcgtgctttcttagcatttctttgctc
-atgttgttatttttatctttgtgaatctcttcgtctcacacagatctcat
-gcatgtatcacagaggcaggtcttttttgctcacatagctctgactgggg
-gagttaagcctttgtacgtgcgccgatacagcctgtatgtctggcctcgg
-cacgctcatgtgtggcttatgattTTTTAAAATTCTTGGCTTTTTTGGCT
-GTATCTGGTGTTTGGGAATATTTGCATGTTTGTTCTGATACAGTTATCCT
-TGCATTTTTTTTAAATCTCTGCTCTTCTCATGCGTGGCTGCTCTGCATTC
-GTTTCCATAATGAGCAGTTGTGAAATGAGCCAGCAACCTCTTCTCCCTTC
-CCACCCTTTTCTTCAGCATTTACACAAAGTCATGTCTTGCTGCTCTCAGT
-CAAGATCTAGGAGGCAATCGGAGAGTTCTCCCACCTTCCACATATCCTGG
-TTTTCCTGCAAATTAGTTGTAATTGTGTTTTCTCAGCGTACGACAACCCC
-ACACTGTTGTGTGtgctcagcccgggccttatgctgaggcttctgccgta
-atctctggctttgtctgcaggcccttctggagctggttcccaggaaggac
-ccataggggttgcagggcttgagttcttatttgttcataactgtctgtgg
-tctatacctgaaggtcagttaggtaggatacaaaacccttgacttggccg
-ggcacggtggatcacgtctgtaatctcagcactttgggaggccgagtcag
-gcagatcacttgaggtcaggagttcaagaccagcctggccaacatggtga
-aaccccatctctactaaaaatacaaatattagccgggtttggtggcgtgc
-acctgtaatccagctacttgggaggctgaggcatgagaatcgcttgaatc
-cgggaggcagaggttgcagtgagccgagattgcaccactgcactccagcc
-tgggtgactgagcaagattccatctcaaaaaaaaacaaaaacaaaaacaa
-aaaaacaaaaaacaaaccaaccttgacttgctttttgcttcttaaatgtt
-tccccattgttttctggtacaaagttttgctgttgagaaatcgaacgaca
-atctcattacttttctcttACACGCACAgtggctgtgtgtccctgtttgc
-ccaaaacagttccggtttatggctgttgtccatgcgatagagcagatgca
-aacatgcttccttttagctcagaaattcccgattggctgagagattctag
-cgtcaccTGCTGATTTCCTCACATTGCCCAGCAGAAGCCttctctatctt
-taaagcccagtgttttattagaatattgttcagcgttgaccattctgggt
-GCTTTAGGGTCCTGGGTACAAGAATGCACTCCTTGGACACATCTTCCTCG
-AGTTCAGCAATGATGGCTTTCAGGACGTGGCGAGCCTGGCGTCTCTTCCA
-TTGTCTTCCTCTCCACTTTTGGCCATTTCTGTTCACCTGTATCCAGACCT
-TCTTTGCTTCTATCCCATAACTGTGAGTTTTTTCTATCATCTTTACTTTG
-AGATTCCATCCCCCCGATGCCCATTTCTCCTTTCTACCTCTCACTGATTT
-GACTGTGATCTCTTGGTGTCTGTTCACTCTTACGTTTGTACTGTTTCAAT
-TCTTGTTTCTAAAATGTGCCTTTTTCTTTCAAAAAATTTTTCTGCACTCT
-TTCCGTCTTTTGACTTCCCCTCCTTGTTTAGCCAGCGTATTTCTGAGATT
-TTCTATTTTAATTTCTTGTGTTCTTTCATGCATCTGTCATTTCCCTAATT
-TTGCTCAGTTCATCTATTGCATTGAGCTGGGTTGCATCTGCTTGGAGGCT
-GCATGATCTTAACTAGCTCATAATTCAGTTCCCGTTTACTTTTTATTCTC
-ACAAAGGTGTCTTTGTGTGGAATTTTTCACAGCCCTTTTCTCTTGCTTAC
-TTTTGAATAAGATTGATGCTCCTGTATGTTAGAGGGTGTCCGTGTGCAGG
-TGGAGAGGCATGGGCCAAGGTGTTTTTCTTACCCTCACAACCAAGGATTC
-TTCCTCTGTTACATCAAAAGTGTTGAAGCCACAGCCTCTTGGTACAGCCG
-CCTCTATGACACTGAGGGCCGTTGGCCAGCGCCTGGCCCAGGACCTGAGC
-CACACCCTCTTTTCCAACCGTATCCCACCCTTCACAATTTGGAATCTACA
-CCAGAAGGTTTCTCAGGGTGGGGCCTGTCCTTCTGAAGGGTGACTCTGTT
-GGGGATTTGCTGCATCCTTGAAGGCCTCGGCTGCCCCAGCATTCCCTCAT
-CCTCCCATGGTCCCCCACAGTCTTTTGTGGCCGCCTCAGAACGGGGCCGC
-GCAGCCCTCTCTGGGTGTCATGGTTCTTCTTGAGGAGACACCTGCTCGGA
-ATGTGCGGCTCTGCTTGGGGGAGCCTCTTATTGGGTTCCTATGTCGGGGG
-CTCTTAGCAGAGGCGAGCGCTCACATCCCTCCACCCCGAGGCGTGCCCAC
-ATGGTCCCACTGCAATCTGTGTTCCCAGATGAGCAGGGTTGCCGGGGAAA
-GGAGAGTTCCTAACGATGCTGTTCGGGGACTTTGGGGACTCCGTCAGCAC
-CTGTTCTGGTTTTATCCCAGTAtttttttttgttttttttttttgagatg
-gagtctcactctgtcacccaggctggagtgcaggagcaccatctcggctc
-actgcaacctccacctcctgggttcaagtgattctcctgcctcagcctcc
-taagtagctgggactgcaggtgcctgccaccaagcccagctaatttGTCT
-CTGTTGTTTGTCTGCATCCACGGGGAATTTGGGAGATGGATAAACAGCAC
-GGCCACTTGATCTTGCCTGAGCAGTACTGTTGTTACTGTCACTGCTGCTG
-TGATTGCTGCACTCTGCCCGTGTTTCCAGGGGCCTGCAGCAGAGAATCTT
-CAGGTTATTGCATTTTGTCATATTCATGAAAATGGAAGTTCTTGTCTTTT
-TCTGTCACTTGCTGCCTTTCTGCAACATATCAGGAATTCTGTCTCTTTAT
-GTTACTgaggaagcagcttaagccagtggctgagcgtgcgggtgctcagt
-cattccgcctgcatccgtctctgcactgccgctcgttagccgtggagcac
-ggggcagggaaagtaaactctgtgagtccacggccccctccacaaccttg
-ggctgaacctggcgcattttccatagcaggattgtgagtatttgataatt
-cccccaatagtggaccgtgtcaggcacgccgcaagtgttcagcaaatagc
-aatttatcatGGAGTCCACCTGCTTTCTAAGCTTTAATTCTAATTGCGCC
-AACTCACACCTTTTTGAGACTTTGCGGTGATGTTTGCTTTCCTTCAATCT
-CAGTAATTTTTCACTAGCTCCGTGTTGATAAGCGTCTGCATAGTTGCAAG
-TGGGAGACACCTGTTCATTGTCACGCTTTGCCTACGGGCCCTGCATGTGC
-ATGTGTGTCGTGGTGCAGGTGAAAGCCACCATCCGCTTACAGAGGGAGGG
-TGGACTCCTGTGGGTGAGTGGGTGGGAAAGGACAGTCCTGGAGTTTCACT
-GCCAGATGTGGCTGCGCTGTGGGCTGCCTGCACCACGGTGGGGGGTTTCA
-GCCACTCTCTCGGCACCACACCTGCAGCCTGGCTCCGTGACATGGCTGAG
-CCGCCTGTGGGTTGAGGACCCCGGGGATAACTGAGATGTGGGAGGAGCAC
-AGAAAGTGCAGGGGGGCGCCCGCTCGTCTGCAGAGCCACTGCCCATCCCA
-ACACCAGCCTTGAGCCTCTGCACCCCCAGACGTGCCCACTCAGACCTGCT
-TGCCTGCCAAGACCCATCTCCATGCTCAGGTCATCCTGGTTCTCCCTGAC
-GATGCCCTCCTGGAAGCTCCTCGGCACTGGGCGTTGATCCCTGGAGTTCT
-GGCTACAAGGTGTTGgcaacagtgacaatggacatggaggtccgtgggcc
-acaggggtctgccttcccatcctggctccacacatgcagggctggctgtg
-tgcccttgatggtcacttccttccgagtctctacttcctcctctgtaaat
-ggagtcgacacccccttctgaaggtctgtgaggattcggtgagaggatgG
-AAGCCACATCCCAGTGAGCGGTGGGCCAGGTGGGACCGGCAAGCCCAGTA
-CCCCCCGCCCTTGGTCCCTAGGGTCTCTGTGGCTCCCTGGAAGACGCAGC
-TTCTGCGAGAAGGGGATGCAGGGCTTGGCTATCTTCAGCCGCTCCAAAAG
-GCTGGCTTTGATGGTGCTTAGACCATGGTGGGTATTGAGCCGTAAGAACT
-TGTTAGAGACATGTAGGGCTGAGAGCTCAGTCCTTGGTGGGAGGAGTCCA
-GTCCCGGGGTGGAGCCCTCTGCATTCAAGGGTCTGGGCTGTCGGGTCTGC
-GCGCTCTGAGGTCCCAGCCCTGGCTTTTCCCTACTGTGGGGGAGGGGCTG
-CCCAAAGAGCCCCTGGGGGGCGGGGGGTCGCCTCTCTCCCCTGGCCAGCC
-CCAGCCGGCAGCTCTGCCACTGGACCTCAGCCTCGCTCTAGGACACCCCA
-AACCTTTCTCAAACCAATCATCTCATGTTGATGGACGAAATTAGTCTCTG
-AATTCTAATGAGACTGTGCACTCGGGAGACAGACAGCTCATCTGAACATT
-AAATGAGAAAAATTGCCACTTTTGCTGGTTCCTTTAGAAACTCATTTGCA
-TTCTGTCAGCTTTCATTATGAAAGGGAACTGCAGATATGGTGGGATGTGG
-GCGGGGGGGTCCCTCTGGCCTGGCCTGGGGCTGGTGCAGTGTGTGGCAGG
-GAGGCCGGGCCCTCCTAGCTCCCTCGGGGCCTCTGCTGCTGGCCCCACGG
-AGGCACTGGGGCTTCCCTCCTGACCTGCACATTGCCCCCCCCATCCTCCT
-GGGGTGGTGGGGGTTGAGATATACCTTCCTCCTCTCCCTTCCTCGCCGCC
-CTGGAGCGAAATCCAGAAGCTCAGCGTCTTCCCTGCTTAAACTTCCCTGT
-GCAGGGGTCTGAGCAGGCGCAAAGCCCCTGGTACGGGCACAGACACAGTC
-ATGGGCAGGTGGCCGCCCTCCtgcactattttctttggctgggtgaaaaa
-tcaccctcagactttgtggcttaagacaacagtggtccctcctcaccacc
-ctacatcctgactgggctGTTTTTCTGTTGAGCTGAACTCCCGAGCCTCA
-CCTACAGGACCCACCCATGGGATCCACACAAGGGACCCACCCAGTGGACC
-CACCAACAAGACTCACCCATGGGACCCACCCACGGGACTCACCAGAGGac
-ccacccacgggattcacccaccggcctcacccacaggcccacccatggga
-cccaccagaggacctactcacgggattcacccacgtgactcaccagagga
-cccacccacgggattcacccaccggcctcacccacaggcccacccatggg
-actcacccacaggacccacccaGGGAACTCATTTATGGGACCCACCCATG
-GGACTCACCATCCATGAAGACCCACCCTTGAGGAACGGGAAGGCTGGGAC
-ATGGGTGGCCACCATCTTCAAAGACCAAGTGTCGGTCCACATGGGGCCAC
-AGGGAGCCAGGGCCCTTCTCACCTGTCGAAGTGGCTGGTGAGATGTTTCC
-CCTTCACCCAAGACCCCAAATACTCCTTCCATTGCAGGAACAGCTTCAGG
-TCCAGCTGTGGCTTCTCCTGACCTGGGGATGGCAACACCAGCCATGCGGT
-GAGGACAGGAGGACGGCCCTGTGACGGGTGTTTCAGCCaggacaggagga
-cccggaagtgggtgggcagagcagtgctgacatccagctgggcacacaca
-ccgcccccagactcaaggccaggaaatagctcttgacccacgcccagtgc
-tctcctcttgggaccgttccttaatccTTAATccaaatctggcccactgc
-ttgctttgtaaataaagttttattggaacacgacaatgccgattcattta
-tgtgctgtctagggttgtttctgtgccccagtggcagtgtctatacctcc
-agagaccccaggactggtaaggcctgggcaatttgttgtctgggccttca
-gagaaagcctgcccatccctgCTGTCCtccctggctgtcctcagcttgag
-gctctgccctctgggctctgggctccacccatggagatgtctccctttct
-cagaagtggcctgtgtgtctgggggcattgcctcctcagctgtcacctgc
-cctcaagaattcagaggcttattggctgctcctgactctgaactgtctcc
-cttctagtccaagctagtgacacttgctctgaaacaattctcttcaactg
-tgagttttctaaaaagtgactctcacaggggttccccccatgggctcaaa
-gccacatcctcctttcctcctgaggcagagctctccctgctctgaacagg
-tcaggctgcttcaggaaaagtcaccgttcttaggatgcgccctcttctct
-cctagctcagaggCTGTAATGcagggctgtccaatctttgggcttccctg
-ggccacactggaagaagaagaattgttttgagccacacataaaatataca
-ctaacactagcaatagcaaaaaaaaaaaaaaaaaatcataagaaaacaca
-ctgtttaaagaaagttttacaaatttgtgttgggctgcattcaaagccat
-cctgggcgtcatgcagccgatgggccaggtgggttggacaagcttgTGGT
-AACTCTGTGTGTTTAACAAGAAGCCTTAGAGGCTTGTAAAGACAGCCAAC
-CACATGCAGCATCTGGAAAGCCTCGAAGTTCTCAGGGTCTGCGGCTTCCA
-GCAGCCTTTGAGGGGCTACGCATGGACTTCGTTTCTGGATTTTTGGGAAG
-GTTGCGGCTTGCTGACGTCCTCTGGCTTTCCCAGTGCTGGGCTGGAAAGG
-CCATGAGCTGGTCACGGCTTCAGCCCAGGGTGACTTGAGGGTCTTTGGGG
-GTTTGGCCCAACTCCGCACAAAGCTGTTCTAGGCCCAGGCCAAGACGAGG
-CGCTCTCTGCAGAGAAGGGCGGGCTCTCAGCTCCTTGAAGACAGACGGGT
-GCACAGCAGTCCAAGGCAGGGGAGACCTGTGGAGGACAGAGCCTCCTTGG
-TGCCAAGCAGGTGCTCAACTCAGGCCTGAGCTGAGCCACCCAGGTCTCGA
-GACAGAAGCATCTGCATCAGGTGTGTGAGCTCCAAGGCCCGTGTGTTTCA
-AGTTATTTCACTTAACGTCCAAATCACTGTTTGCCCCCGGTGATCTCTGC
-CTTAGAATCTCACGTCGGAGGCATAACACAGGCAGATCATTAAGTCAGTC
-ACCAAAGCTAACAGCTGACATTTGCAGTAATTGTAATTAAAAATTAGCAT
-AGAAATGTGCTTTTAGGAGATTAAAATTATTGGTAGGTCCTGACCTGTGT
-GCATCACCCTAAGTGATGGGCAACAAACGAACGTCACATTAAATAAAGTA
-CATCTAATGCGCTTTTGAGGGAGAAAAGATGCAAATTCATTGATTTTCCT
-TTCTCCTTGATTTACAAATACGCTTTCTGCATAGACAAACACCACGCGCA
-ATGGGACCGTTGGCACGTCCGCTCTTTTCGGGGCTTCTGGAGGCTGCGTC
-TTCATCAATTCCGTACAGGTCCATGACCTCTAATAACAGCTTTGTATCGT
-AAGCACTTTCTATACTCTGGAAATTGCATTACATATTAGAAATATTATCT
-CCATGCAGCAAACTATCAGTTAATGATTAGTTGAGTGGTAAAACGCATGT
-CAGGGAGAGAATGCAGATTTCACGGAGCAATTACAGCCTGGCGTTGTGTT
-TGCATTCGGAGCGGTATTTATGTCGTGGGCATGGGATCCGGGGAGCTGCT
-GGCAAAGACAAAGTGAGAGGAAGGCAGAGGTGTCACTGGGGCCCTCGGCA
-GCCGTGATTGCAGGGTTTCTCGCCTCTTTCCTCCCAGGGTTCTCAGGTGG
-GGCAGGGGCTCAGGGCCTGAGGTCTCCCTGGAGACATGGAGGGCAGTGGC
-CGGCTCCAGTTTGCTGGCACAATGATGAGATGTGCCCTGTGTGGCTCCAT
-GCCAGCACTCTGTGGGGGCTCAGTTCACTCATTCAACAGTCACGCAGGCA
-GCGCCTCTGACAGGCTCCCCAGAGAAGGGAGTGAGAGGCAGGGCCTGGAC
-TCTCACAGCATCTGGGGGTGAGGGGGAGGTCGGAACCAGCAAGGGAGGGA
-CAAATAAAGGCCAGAATGAAGCTTCAtgctataaaaaacacaaagcagat
-ggggatcaggcacagccgggcagctggcctaattgctgcaatcatgggag
-gcctctctgaggaggtgacagttgagaaaagtccagaaggaaacggtgga
-gtgagtcatgtggagtgggtgagaggagaTAATTGAGGGAGTCACGTGGG
-GTGGGTGAGAGGAGAGAATCAAGCGAGTCACGCGGGGTGGGTGGGAGGAG
-AGAATCCTGAACAGAAAAGACTTTAGGCATTGAGCCTGAGGCTTTGGAGG
-GCTTGCTGTTTTTAGAGGGGTGCGAGAAGCCCAGCCCGGCTGGAAGGGAG
-CAGGCAGGGAGGAGGGTCCTGGGACTGcactgcacagatgctgggcctct
-ctcttggtgagatgaaggcactggagagtcctgagtgggggaggtcacgc
-ttggccccaggtttCCTCCCAGTTTCTGTGCAGAAAATTCAGAGACCGAT
-GCAGAAAATGGGCACTAGACAGCAGCCAGGAGGACAGCACTTTGAGAAGC
-GCTGGATTCCAGGCATGTCTGGAAGTTTGGTCAAGTGGGCAGCTTTTCCG
-TAGGCTGGCGACAGGTCGCAGGAGAGAGGGAACTCCATGGTGCCGCCACA
-CTGGGTCCAGCTGCTGGGCATGCAAAGGCGCCTGACGTGAGATGGGAAAG
-CTGGCCAGGGCAGCACCAGCGGGAAGATCACGCGCAGGTGAGTTGAGATC
-CAGCTGCCTTTAGGTGTCCAGGTGGAGCTGATGGGGTTGAATCCCCCAGC
-CTCTCCCGGCTCTGGTGGTCTTTCGGCCGTTGCTTTTGCTTTTGGATTCC
-AGGGCCCTCATGATTCATCAGAGATGTTTCCACCTAACCGAGCTGTGCAA
-CATCAGGTCTGCAGAGCTCAGCCCCCACCAGGCTAAGGCCAGAGTCCTGT
-GACCTAGGCCTGTCCCTGCCATGCCCTTGCTGTCCCTCCGGGCTCCCTGC
-GTCCTCCCCGTCTCCTCTGCTTGCTCCTCCCCCCGGGGGACGCCAGGCTT
-CGCTGTCGGGGCTCTCCTCTCCAAGCTCTGGCGCTGATGACCCCACACTC
-CTGCCTCCAGACCTGACCTTCCCGGAAGTCCCAGGAGCCTCCCACCAACA
-GCTCGTGCTGTCCTTCCCTTCTCTCCATCACAGGCCTCCTTCCATGCTGA
-GGTCCTGACTCACTGTCCTAGGCCCCTTGTCTCCCTGGCCCTTGCAGAAG
-GTGCTCTCTGTCCCCATAGCCTATGCAGTGTGCGCTCTCCAGGACAAGGG
-CAGCGGCTCCTCCCAGGAGGCCGCCTGGCTCCTGAGCGACCGAGACCAAC
-CAGGGCCTGGGTCTGGCTGCGCCATGACTGTCCCATTGATCAGGTGCCCC
-TGCAGGCAGCAGCTCTGCCCACCTGGCTTCCCAGCACCTGGCACAGCCAG
-TGTTCAGCGAGCTTTTGTTGCAGGAAGGACAGAGTCTGGGTTTGGAACTG
-CAGAACCTGCCATCAGGCTGACCCACATCCTGAGATGGGAGGTTGGACCC
-GAAAGCTGGGTCCCAGGCTGGCTGGGACACCTGTTCCTCACCCACTAAGG
-AGGAGCCCCggctaggtgcagtggctcacacctataatcccagcactttg
-agaggccgaggtgagcagattgcctgagctcaggagttcaagaccagctt
-gggcaacacagtgaaaccccgtctgtactaaaatacaaaaaattagccag
-gcgtggtggtgcccgcctgtaatcccagctactcgggaggccgaggcagg
-agagttgcttgaacccgggaggcagaggttgcagtgagctgagattgcgc
-cacagcactccagcctggacgacagagtgagactctgtctcaaaaaaaaa
-aaaaaggaaGCCCAGCTCTAGGACCACCAAGACCCCTTGAACTCAAAATT
-CTATGTGCTTAGGAGTCTGTTAGTGAATCACGGCGTAATTCATGATTATT
-TTAAAGCTGACCGCCCTTGCAATCCCTGGGTTTCCGGCTTCTCCGCCTGC
-ACCTGCGGTTTCTACCCAGCGAGAACCAGGCTGGCTCTGAGCCCAAACTC
-CCAGTGATTAATGGATAAACAATCATATTCCCTAGAATTGGGTCTTGAAG
-TTAAACAAAGGGATGGGGATGGGGTCGCTGGGGAAAGGTTTGTGCAGGCA
-GGTTTATTAACCCCTTGATGACCTCAGAAATTTCTTCTTCTGAATGGCTG
-CCCCTGCGAGCCTGCAGGCCATGGAAACTGGCAGTGTTTATGGAGACGGT
-GGAGGCAGGGGATCCTGAGAAGGAACAAAGGGTCTCTGGCCCGCTTGCCT
-TCGCCGCGGTGATTTCACTCGTTCTTTTTTGGTGGTTGGAAGAACATTGA
-CTGTTGTTTTTCGGAGTCTGAGTGAATTATTTACTGCGGAGTGAAAAACT
-GCCCTCTGAGTGCCTCTAAGAACACGAAGGAATTAGAAGGGTAGATTTGT
-TTTCCTTAATAGCTGTCTTTGTTTTTCCTGGAGGTGTCCTGGGAGAGCCA
-GATCTTGGCACCATGCAGCTTCAGGTGGAGGCGGGTGTGGGGTTTGCCTT
-CTCCTTCACCTGCTCTCTGCTCCGTCAAAAGCCCCCGCCCGTGGGAGGTG
-GCTTAACCTGTGCGGCCTTGCTCAGCCCGAGGGGTTGTCTGACCCTGCAC
-TGACCTCAGGCCTCCCTTCTGGGGACCTCAGCCCTCGTCCCATCAGCCCA
-CCACCCGTCACGGCCTGTCACCGCCGGTCTTGGCTGCTTTCCTCTTCCCT
-CTGGACTCGCCAGCAGACATCGGAGTTGGGAGGAGGTCCCTGGCAGGCGG
-GGTGGCGGCTCCTTCTGTCCTTTGCAGCCTCTCCCTGCCCCTGCACTGGC
-TGTGGCCTGGCCCTGACACTCAGACACCCCTGGGGTTGGGGTCTCTGCCC
-TGGGGAGAGCACTGGGGACTCGGCTCCAAGAGGGAACGGGTCTCACCAGC
-TGAGTTCAGCCAAGGGGGGCACCTCATAGAAGGGTATGAGGTGAGCTGTT
-GGCTGGAGTCCAAGCCCCGTTGCATCCCAGCCTCCATGAAGTGAGGATCC
-CCAGGACATAGGTGGCCTGGATAAGGTGCCTGGCACCCCATTGGGCACAC
-AGGGTAAGGAATGAGAGCTTTGGGAGTTGAGGACAGAATCCTGAGGTCAG
-GGGGCATTGCCAGAGGATGATGTCATCATCTCAAATGAAAGGCCCTGGAG
-GGAAGTGGTCCCCACTGGAACCCACCTGGAAACCTAATGCCCTCCTCTGT
-GGGTGATTGCGGCTCCGAGCATGCATTCTGGAAGGGTCAGGGTGCCCATG
-GCCCAGCCAGGCCTCGGGGATCCATACCAGGCCCCAGACAGGTTTCCTTA
-TATACTCACCTCATCCCCAGGCCCCAGGCCCCTCAGAGCAATGCGCCATA
-CTTCTGAAATGCAACCTGCTTGTCTTCAGCTGGACTCTGTGGGGGTGCGT
-GAAAGCACCAGGTTACCTGGTGGAACTGAAGAGTGGCCCAGCCCCAGGCC
-CCGGGTGGGGAGGCAGCTGTGGGGATGGGGCCCACTCTGGGCTCTTGTGG
-TGTCTGTGATGGTGCCCATGTGGAGTGATGGGGCCTCATGCCACACTGTA
-TCAGGACCCCACGCTGGAGGCATGAGGGAGGTCAGAGTTGGGATGTCAGG
-GATGAAGGTCACTCAGTCCCAAGACATCCTTGCTTTAAAAGTCACCACTG
-GACTTGCCAAACTCAGTGactcattcatcaaattatgaaaccctggcttt
-atggagggtactgagttgggtgctaaaaatacagacatgaataaaataca
-gtctcacacactggggatgtgaattccagtgtctcatacagtagacagac
-ccagaaacaagcagttgaagaccatgggatgaatgtttgaactgggaagc
-aatgataggcattatggaagGACTCACTGCCGTTGAACACAGAACATGCT
-TTGTTTATTCACACTCTTGGCTTCTCAGTTCTTTGTTGTCATTATGGCAT
-CCAGTAGGTGCTCAGCAGCTGTGTCTCCTTCAGATGATAGAACTCCATGT
-GGGTGATTCACTCCCCCGTCCACACCCTCCTCTCCAGGGACTATCCTGGT
-AATGGAACCTCTGCTGGGAGGAAGCGTGGCCAGCCGTGGGCTCGAAGGGA
-TCATGGGAAGCTTCCATTCATGGCAATGGAATTAGATATACTATCCATCA
-aaaacacttagaaaagatgaagacattaaatattttgtaaaatgcacagc
-ttacctccaagtgaagtaaaagaaatccccaagaaccaaatgaagaggaa
-cctggaagcagaagttctggggcttccatgggagctgggatggcttgaga
-gctgcctgccagtctcagtcaccaaggggcctggttttcaaatacttcaa
-ggaaacaggaggaaaggGTtagtgcatggcatggtggggtagggggttag
-tgtgtggcatggttggggtagggggttagtgcatggcatggtggggtagg
-gggttattgtgtggcatggttgaggtagggggttagtgtgtggcatggtg
-gggtagggggttagtgtgtggcatggttggggtaggTGTCCCTTTATACA
-GACTCCTGCATAAATAAATAAGGTGTGTTGTCAGGGGGCCCCCACCCCTG
-GGAGTGTCTGAGTGTCGAGGCCATGGCCAAAGCCAGTGCAAGGGCCAGAA
-GAGGCTTCAAGGGACAGATGGAGCTGTCACCTCCGCTTGCCCGGGGGCCT
-GTTCCCAACTCTGAAGTCAGCAGGCAAGTCCAGAGGGAACAGGAAAGAAG
-CCAAGATGGGTGATGGGCTGATGGGATGAGGGCTGAGGTCCTGGGAAGGG
-AGGCCCGAGGGCAGTACAGGGTCAGACAACACCTTGGGCTGAGCAAGGCG
-GTCAAGTTAAGCCACCTACCGGGGGCCATCCCAATGGAGGAGAAGACAAA
-CTCGGCACCCACCTCTGCCTTAAGCTGCATGGAGCCGAGATCTGTCTCTC
-CCAGGACACCTCCAGGTGCCCCTCAAAGGGGCATTGCATGAGTGAGAGAC
-TCAAAGGGAAAAACATCACCCAAGGGCAGAgggaaatgatggccacaggc
-acgtaccatcatcttctgagctttaaatgcacactacttgcagattttgt
-gaaaccaaaatgacaaggaattaggttaaagtgcttcagattcttaaggc
-tctgggccaccccacagaaacaaagacaagagcccccagcaggacagagc
-ctcatcccagggccggtggattctcacagcccaatccccgctgaacatga
-gctcacaatctcaaatcacaaaactcacaaggacacatgccatcctgagc
-accaggaggaagaacagacagcagaagctgaccaccaagacgctgaacac
-atgaagtgtgaaaggctgaatataaaatgttttcaatatttagtaaaata
-aaagaggatatggaaacataaccacatatcaataaaaaatttttttaaaa
-tcccacaagaatgtctgaaaaataaagacatgaaatcttaagaagtggaa
-aaataatcatacattttttttttctttttggaacagaatctcagtgtcac
-ctaggctggagtgtattggcccaatcttgactcactgcagcctccgcctt
-ttgggctcaaacaatcctcccacctcagcttcccagttagctgacactac
-aggtgcacaccactacacctgtctaactttttgtgttttttgtagagagg
-gtgtcttgctatgttgtccaggcttgtctcaagctcctgggctcaagtga
-tcctcctgcttcagcctcccaaagtgctgggattacaagttcaagccacc
-ttacctggccctatttatttctaaagaaagagaattgtcaaaaatggaag
-ctagagcagagtaaatttcctggtagaagcaggagaaaacatgaagaaca
-aatccaacagtgcaccacagttcaattgtagtttcagaacaagagatggg
-agaagattgggcacaggcaatggccatgagataagtgctagaaatgttct
-aaaattggtgaaagacacaaatcctcatattcagaaagtgttataagtac
-cagggtataagagctccatactgagatacataatagaaaaccaatctgaa
-ggacaccaaagtcaaacaaaagaactttaaaagtagccagagaaaaaaga
-catattgcctgcaaaggaaggccaagtattttgattacagaatccttagc
-agaagaatagacaacagaaccacagctccgaaggactgaagaaagaaatt
-ggtcacctcatgattttatagctagtaatcaaaatataaggaagaataca
-aatattttcagtcaaaagCAGCACATTTATTATTAAAATTTCTGGTAAAT
-GATTTTCTGAAGcagagattaacaaactttttctataaaaaacggagtaa
-acacctttaggctttgcaggccacatacagtctttgtcaccaatgacttg
-ttgttattgatacacccttttaaaaatgaaaaagctgaacaacagagatg
-taaaattcattttttgcccagagaccataaaaaataatgctgtagcctgg
-gcgcagtggctcatgcctgtaatcccagcactttgggaggctgaggcagg
-tggatcacttgaggtcaggagttcgagatcagcctggccaacatgttgaa
-accctttctctattgtctacgaaaaatactaaaattagctgggcatgatg
-gcagctacttgggagtcccagctacttgggaggctgagacaggagaataa
-cttgaacccaggaggcggaggttgcagtgagctgagatcgcaccactgta
-ttccagcctgggtgatggagcaatgctccatcttaaaaaacaaaaacaac
-aacaaaaaaaacaaccacactgcaaatcggatttggcccatgggctgaag
-ttttttgacctctgTCAGAAACAGTGATCTTCAAATAAACAAACAAAAAA
-ATGCAAAATAGTGTTGATTTGCAGGAagaaagataatcgccaaggactgg
-ataacaactacttttgcaaattcaggtgagtttccattcaacaaaactCA
-GTGTCACAAAAACTATTAAAATCTGAAATCACATTAGCAACaatttatat
-ttagtaatttaatcataaatcaattttaatttttaaatCATAGTCATCTA
-GAAGGATATAATAATGATTCGATAATAAATAAAATCATGATTATTGATCC
-CTAATGTGTTTTTTGGTATGATCTGGCCATGGACTGTCATGTGACAAAAC
-ACCTGAGCACTTGGTGGTTTCAGACACCCACAGTCATTTTGTGATTTCCC
-GTAGGTGACAGGGCTCAGCTGTGCGGTTGTTACACAGGCTgtgactcaga
-tggggatggggctgatgtcaccttggaggcttcctcatcacacatctgat
-gatggatgttggtcactggggctgtcagccacacccctccctgtggcttt
-ctctgtgacctgggcttctgcacagtgaagtcactggattctagtaacaa
-gtgcctcaaaaACAAATGACCCCTACAAACACATACATCGCAGTTACTTT
-GTGTGGGTTTTTTTGTTTTTGCTTTCTCAATTTTACTGAAAATTTTGTAA
-Attcaattgcagtaaaatacacatagcctaagatttaccatgtcagccat
-tatgtaaaagtgtctagtttggtagtgtttggtatattcacactgttgtg
-caatgaatcataaggaatgcttcagctttccagagagaaactctgttccc
-atgaaacccccgacccccagcctctaacacccgccattcaccattccact
-tactgtttctatgaatttgactactccacagacctcatgtaagtggagtc
-atgcagtatttgtccttctgtgcccggcttacgttctttagcataacatc
-tgtgttcatctgtgtttagcataacatctgtgttcatccgtgttcagcat
-gtgccagaatttccttcctcttgaagactgaatgatattccgtcctatat
-acagaccatattttgcttatccattcatctgcccagggacagttgggtgg
-tttctgtgttttagtcattgtgaataatgtgctctgaacatggtgtgtaa
-gtgtctcttcaagaccctgcatttaatcctttgcaggatatacacaaaac
-tgggatccccagatcatagggtaattgcatgttcatttttttgaagaacg
-tgccatactgttttccacacagctgtgctctttcacactcccgccagcaa
-tgcacaagacttttaatttctccacattctcagtaatactttttctttct
-gtttatctttttttaaatatgagccattcaaaagaatgtgagatggaatc
-tcgctgtggtAtgtatcactttttgtgtcctagccttggaaatcgcgtag
-catcacctctgctgaggccacagccctgccaggatcccatcccagggcag
-ggagtgcaggctccatctgtcaagggaaTGTCACCATCTCATTGAAGAAT
-CGCACATCGGTGGGGCACTGTGCTCAGCACAcacagtgtgttccctggca
-gagaactcattacaatttcaacaaactgatgtatatctaatttaggagtt
-cccttcacactcatctcatttatatgaacattttctcaggtttttagatg
-aaaaaatacaaactaaaattaataacatttaagctgaatgccatctcgtt
-ctagcaatgacttgaatgtgaggagaagccccattcatcatatcagagga
-tgcagttaaaaaataacttcttatgtttacaaattatttgtcaacatgta
-caacacattcatgtgattttaatctagtgttgctaataataattgtaata
-ataacccaaactagaagaattggttttagtatttaaagatcaatggcacc
-tggaaattaacaaaatcaatttatagacatatatgtatatttctgaatat
-tgttatagggattataataggactatcaataacaactttgaaacataaaa
-tctattagggtacaattttgtggaggactggcatagaaatatgagtgtaa
-ggtaataaaaagggctttagtttcagtttcaaccataaaacaggaactta
-ctcagttctttaaaacatagatgacacctggtattgatggctgtatattt
-agattccatggcaaatatATCAGAACATCTGCAAAGCTATGTCCGTCCTC
-CCCAAAGGCCATATCTGCACAGCGGTAAACACTGCCCGGAGAGGAAActc
-acacacagctccacggaggaggcatcaactgcttcctctacctttaagga
-gggcagtttctcaagctctataagaagcctttaaatgggtgtgacgtgac
-ctagaaatttcatttctaggattttgtcctaaaaaatatataaagatata
-tgcaaagaattagctataaatatgtccatctctgccttatttgaaatagt
-aaaaacttgcaagcaaacaacatttcaaacacttgaccatcctttaaata
-tatGAAGGGGCTCTCGATAACATAAATCCACTGTAGTCATTGAGGGTCAT
-TTCTGCAATAATGGACACAAGATTGTCAATTAAAAAAAGGGATAATTTCT
-TCAACGTGGTAATGGTGACAGAAAAGTCACATTTAGAATGGGGAGCGAgg
-ctaggtgcagtggctcatgcctgtaatcccagcactctgggaggccgtgg
-caggtgcatcacctgaggtcaggagttcaaggccaacctggtcaacatgg
-tgaaacactgtctttactaaaaaaatataaaaattagccaggcatggtgg
-agggtgcctatagtcccagctactcaggaggccgaggcaggacaatcgct
-tgaacccgggaggtggatgttgcagtgagccaagatcgcgccactgcact
-ccagcctgggcgacagagcgagactacatctgaaagaaaaaattaaaaat
-taaaaaTTAGAATGGAGAGAGATGGTGCATTTGCAGGAGAGCcatgtggt
-ggagaattatgcagccacaaagaggaatgaagcctgacccagctgtgatg
-tggttgaacctcaagacacggtgcggaggggaagaggccagtaccaaagg
-tagcaagctgtgttgccccattcatacgaaagatccagaacagatcgatc
-cacaggtaggcacagatcggcggctgccTATGCATGGGGTGTTGGCGCTG
-GATGGAAATGTTTCAGAAACAGAGATAGACGCCAAGGTCATGTGCCGAGA
-GCTGCTAAACGCTGCACTTTAACATGATTTATTTTAGGTTTGCCTGCAGC
-ACCTGTAATCTGTCTCCTCGTGGATGGTGAGACCCCCGGTGTCGCCCCTG
-TGAGCTCTGGGAGCTGTGCGGGACCCTGCCCACTAGATGGAGGTTTGCCT
-GACTGTTAATTGACTTGCTCATGGTCAGCCCCCAGGTCAGGGCCAGGCCA
-GCACCACCACCCATCCGGCTCCTTCCAGGACTCGCTGGGCGGGCTCTGGC
-TTAGTTCTCCTACTTGCATTGGTCAAAGCCCCTAGGAGACAGTCGGCCTC
-TTGCCAGCCCATCCTCTGCCCAGCACAGCGTGTTCTCAAGGTTGGAGCAG
-GCTGCAGGTGCCACGCCGAGGCATCCCAACGGGGATTCCAGGCTCCTCCA
-GCCTGCCTGTTGTCCTGATCGCTCCCTGCAGCCGCTGCTGCCTGCCAGCG
-TGGGGGGACCTGTGGGGCAAGAGTGGGGGGCCCTGCTTATGAAGCCCGAT
-CCCATCCAGCGTCAGCCGCGTTCTCGGTGCCCGTGACGGTCTGAAGCTGA
-CGCCTGATTCTGCTTTCTGTCTTGGAGTGCACAGTGGCATTCACGGTCGT
-CGCCACAGCCATCAGGTCTGTGGAGCCACGCGCAGGTGCGCGCTCCTGGG
-AGTGGGCTCCAAACCTCAGGTGGGAGAGCAGAGGCTGCAGGGCAGGTAAT
-GTGCTCCCCTCTGTGACTGGGGCAGAAGCCTGCACACCCACCCTGCCTGC
-GGGCACTGAGCACTCACCCAGACCCGTGGCCGTGCTCTCCACGTTTGTCA
-TCGAGGCCCAGCTCCCCCTGCCTGTCTAGTCTCAAACCAGAGCCCTAGCC
-TGGTCCCAGATCGTGGGGTGCTGCCCTGGGGTCCCCCATCAACACAGGGT
-GATGACACCAGTGCCAAGCACCCCTGAGCAATCTCCCCCGAGCAATCTGC
-TCTATTGCTCTTTCAATGAATGACTCAGAGCCCTGTTCCAGATGCCCAGG
-CACCTGCCAGCTTCATTGCTGGAGTGAAAGGAGGGGTGATGGGGCTGCCA
-TAAAAGATGACACTGGGACCATGTTAAGGTCACCTCCCGTTTCTTCTTCA
-GGTCTCCATGACTGAACTCACAGGGCCGCCCTAGGACCACTGCAGCCGGG
-AGTGCAGAGTGTGGGGGTGGGAGGTGCCTCTGCTTTGAGGTCTGGGGCGG
-CAGGTGGGAAGGGCGGGGGAAGGCGCCGTTTTGTCGGAGTCTCCTGCTGG
-GTTGGGGGTCGGTAATTCCTGGGGTTTTGGGAGGAAATCCTGTTTCTGGA
-GGAAAATGGCAGCTCCTGTGGGGGAAGCTTGTCTGAGCCTTGGGGCAGCC
-TGGGacacacgtgtgcgtgcacatatgtacatgcatgtgcacacaggcac
-acactggcatgcacatgtccccacacatgtggacacacatgcacactcac
-aagtgtcctcacacgcatccacatgcacacacgtcatagcacacatgtac
-atatatgtcctcacacacatgcacacacgtgtcctctcacacacacactc
-acatgtgtccttacacgcacctgcacgcacacacatgtcctctcacacat
-gcacacacgtgtcctctcacaaatgcactcacacgtccttacacacacgc
-acatgcatgcacacacgtgtcctcacacaagtacacacgtgtcctcacac
-atgcacacacacgtgtcctcacacattcacacacgtgtcctctcacacac
-tcactcacgtgtccttactcacatgtgtcctcacatacatgcctacacat
-acaGAAGTGTCCTcagacacatgcacacacgtgtcctcagacactcacat
-gtgtcctcacacacatgcacacacgtgtccacacacatgcacacacgtcc
-tcatgcacacacatgcacactcccacgtgtcctcacacacatgcacacgt
-gtcctcccatgcacacacgtgcgcacacacaGGCTACGAGGTGGGGCTGT
-CCCCAGGGCTGTGCCTTTTCTTGGCCATCCTGTCCCACCGCGTCCTGGCC
-ACACTCCCAGCAAGGACTTACCTGACTCAGctgtttctggacttcctacc
-tgtgcctccgtcctgtctgccatgactgtactccaggatcacagctgatt
-agtcatggattactaatatctgctagagctagccactccctccttcccct
-catttctcctatttttgaatcatttttccatttgaagttaaaatcccttg
-actaatcccagagaaagcaacacattagtattttgatggcgattgcattc
-aatttgcaaattaacttggaagaatagacatcactgtcatactaactttt
-cctgaccatgtgaatttccatttttgtttttttcatgaatgttgtgaagt
-tgtcctcacacaggtctcgcccatttcttgttaaatttattcataggtat
-tttatctcttttgttgctgtcgtaaacggggccttggcttccattgtgtc
-ttctagctggtggttgtGCATTATCGCATTTTGTCTCGTAGCCTGCGTTC
-CTCTGCGTATGCCTCATTCGGGCTTCAAGATTGGATTCCTTTAAAAGACA
-AAGACTGTAGCTTCTTTCTCTTCAAATCCTCCTAGTGTCTGGCTGAAAGT
-CTTGCCCTTAGTATGGGAAAATGGCTTTTGGAAGTGGATTAGGAAATGAG
-AGCACGGATCTCGGACAACGGGCTCAGATCTGCAGGCTCAGTTTCATAAT
-CCGTCAGCTAAGGTTGCAGCACCTGTACCCACAGCACATATGCTGCTCGC
-AGATTCGGATACACGTGTGGGTGTGCGCTGTGTGGACGGCGGTGGGGTCC
-ATGTACCTCAGGGGCGGTGCTGCCCCTGGAAATCTCGGGGCTGGCAGGGA
-CTGTCACTACGAGCTGAGACCCAGGTGTAGACTGGTTCCCAGGTGTGGTC
-AGAGTCAGCATCCACCAGACTGGAGCGCCCTGGGGTGAAGGCAAGTCCCC
-AAAGTCAATGTGATGCCCACGTGCACGTTCTGCCTCTGGAGACAGAAGAG
-TCTGAGAGGTGGGAGGGGGCCTTGCCAGACCCCTGCCTGGGTCCCTGGCT
-AACTATGAGGGTTTTGCTTTGGGGAGTGGCTGAGACTCACACACCTCTGA
-GCTGGGAGAAGGAGGTGGGAATGAGAAAAGGGAAAGAGGGGGCCGGAAGG
-AGGCGCAAAACGTCCCTGATGCAGCGCCGTCCCAGGATGCCTGCAGCACA
-GGCACGGGGCTCTTGCAGGCTCCTGCGTCCCCAGGGTGGAGCATATGCAG
-CCTCCGTCACCTAAGACAGCAAACACCACGAGAGTGGCAGCCTCACAGTC
-ACCTTGTGTCATCTCCTAGCACAGCAGGTGCACTCCTGGTCTCTGGGCAG
-CCTGAGAGGCAGGTCTTGCTGGGTTTACACTAGAGATGAGGAGACAGGAG
-AGAAACAAAGGAGTTACCCCATGGTCAGGCTCTGGTGGAGGTGTGTTCCT
-CCTGGTACTTCCCCTCACGCACCTGCATGACCCCCAGCAGCATCTGTGGC
-AAGCAGGCCCTGTGCTTGTCCCTGCCAGGCCCCTTCCCCACAGTGTTGGC
-CCCTCCCGGGCCCTCCGCTGGCCTCAGCTGCCAGCTGCCCCTGAGAAtga
-gctccctgagggcagggcttggctccctgtaccgtgtactcccttcaccc
-taactgtggagggcacagagcaggcgctgggcacatgtgcattcagtgaa
-tgagtGGATGGATGGAAGGGGCTGCCTACCTCCCTGGCTTCTCTTCTCGG
-ACAGGTTGCAAGGACTTGGGCCATAGCACTGGTCCGCATCCAAGATGTGA
-GGTCCCACTCAACACTGTCTGTCCATCTCTCCCCCTGCCAGTCCCCGCCC
-TCGGCCACCAAGCTCAGCCACCAAGCTCAGCCACTAAGCTCAGCCCTGCC
-ATTTCTGAAGGGGGTGCTCAGAGCCAGAGCTGTGAGGGGCAGCTGTCCAC
-TCCGTGGGGGCACATGGGAGCTACCTTGTCCAGGGCTTTGTGCTGGAAGA
-TCTGAGCAGAGCTGGGAGAGTAGGCTGGACACGTGAAGAACAGGTCAAGG
-GTGGCCTTAGGCACTGGGGGAGCTTCGTTGTTCTCTGTCACCAGCATAAT
-CTCTCTGAGGGCTCCCACCTTCCACATAGCGGGGGGCGATTTTAGTCATT
-CATTGCTGGTATTGCAGTACTTCCTTCCAAGCTATCTCTCTTGGGCGATG
-CAACTTCTTTTGCATAAATTCCTGGACTTTTAGTTTTTTTTCCCTAATTC
-CCTGCTCCTCACATGGTGGAGGCCAGGTGCCTGGGGATAACCCACGATGA
-CTGCCCTGTGCAGATGCTGGGGTCTTAGGGTCTCAGGGCCTCAGCCATCA
-CCAGCCTTGGCCTTGGATCAGCTCCAGCAGATGGGCCTCGGCAGGCAGGA
-CCCCTCCTTTTGGCTGTTTGGCAGTGCTCGCATCTGGGGACCGTCACTAA
-CCTGCCCCCACCCATGCTGCTGCCCTGAGTGCCCACCCCCAATCCCAGGT
-TCTCCAAGGGTTCCCCATGGCCCCTGGTTAGGTTTCCCACAGGGTTCCCC
-ACGGCCCCTCCCATGTACTAGAGGGTGTCTGGGCATCCTGGCCATGCCTG
-GGCAGAAAGCATTGGCAGTACCCCTCCCACATCTACATCTAGAAACTTCT
-CCGCTGAAGCAGAGCTGCCCCTCCCACCCATGCACAGAGGACGCAGGACG
-CCCCTGAGACATGGCAGCCAGGGGCATCCCAGGACCTGAGACGTGGAGCT
-TCTCATACCCTCTCAGGGGTCTTCCCAGAGCCCATACCCCCACATGGGGC
-CCAAGAGCTGGGAGAAGAGAGAGTCTGGCCTCCACTCCTCATCTACCTTG
-GCGCCCTCCTCCCTCTACACCCCACTGGGTAGCATTTCCTCTTTTTCCCC
-TTCACCATCTAGAAGGGGTTTCCCTGTGAAATAACCTTGGCCTCTGGGCT
-TCAGCCAGGGACCGGGCCTAGGTGCTGACCGGGCAGTCAGGGACCCGCGG
-AATCGGCCCATCTCCCTGGAAGAAACAGAGCAGGCTCTGAGCAGGGAAAT
-GGGGCCTGGCTCCCCCAGGCTGGACTGTGTTGAGTGAATGAAGAAATGCA
-GCCGTgtgggtgagtgagtgagtcagtgagtgagtgagtgGCAAGGGGAC
-AAAGCCAGGTCTAGGGGAGTGACACATTTGTCCTCCGGCCCCCAAGACTG
-AATCTCCATGTGCTCCTCCCGGAGCCCAGTGCTCCCTGCAGAGCTGCAGG
-GCCTGTGAGTGGAGATGGATGGGACAGATCCCTCCTGCCCTGGCCTCCCC
-GTGGTCTCCTAGACCCATGAGCCTCGCCTCCCTTTGGCACTtgtattagt
-ccctttcatactgctataaagaaccgcccaagactgaataatttataaag
-gaaagaggtttaatgaacccacagttcagcaaggctggggaggcctcagg
-aaacttccaatcatggtggaaggcgagggggaagcaagcaccttcttcac
-aaggatgcaggaaggagaagtgctaagtgaagggggaagagccccttacg
-aaaccatcagatctcatgagaactcactcactatcatgagaacagcatgg
-gggaaaccgtccctaggattcagttccctccacctggtctctcccttgac
-acgtggagattacggggattgcagttcaatatgagatttgggtgagatag
-gaaaccaaccatatcaGAGACTTGGCTGCCCAAGTCTCTGGCTAAAGTCA
-CGGGAACTCCTTGGGCTTCAGGGGTGCATGGATGGGAGGACGACTCCTGC
-TTTCAGTGAACTCATCTGAGGAAGCGGCTGGCCAGCAGGATCTAGAGTTG
-CTTGGACAGGAGTGGGAGAGGAAGGGGTATTTTTAAATATGAGGGATGCG
-TTGAAGGACCACAAACCCACACTCCAGGAACACCAGGGCCCCTCAACTTC
-CTTCTTAGCAATGCTCGAATTCCAGCCAGGCTGTTCCAAGTCCCAGGACC
-CCCTGAGTGGCCTCTATCCCTCCCGCTGTATCCTGGGGGCTCTGGTCTTC
-AGCTTCTTGGGCTGTGCTAGGGGAGGATCTGCAGATGGAGCTGGGGGATG
-GTTCCAGGGAGGAAAGGGGATCCTCTGGCCTTCCACAGTGAGGGTTTGTC
-TTATTCCTCAAAGCTCCCTCAAAGGATGGTTCAAGTCACTTGCCTGGCAG
-ACAAGAGGGATTCAGTCCCAGGTGGGGGATAGGGTGTGGCTTTTCCATCT
-CTCTCTCTCCATGCTGTTCCTGCGCCCGTCTCCACGTGAGACCCCACATC
-ACATTCTCACTCCCGCCACCACACACAGAAGGGGCTGTGTTGCTGGAGCA
-CCTCCCCTAACTTGTACCTGCATCAGAGCTGCCCTGCGGGGGCTGGCATG
-GGGTGCTCCACGCTGCAGGATGGCACCTTTCATTCCACAGACCTCGCTCC
-TGGTTCCAGCTCCATCCACTCCTCTGAACAGAACCCAAGCTTCCGCTAAT
-GGTGCCTGTTTAGTGCTTACCAGAGGATTATGCTAAAATACGTTTTTTTT
-TTCTTAAATAGAAGTAGATAATCTCCAAACCCGTGTTTTCTTGCCTTTCC
-CTGTCTTGTCTTTGCACAGGAGGGTCTTGAGGAAAATGCCCTGGTGCGGG
-CTGCGCCCTCTGCTGTCACCTGCGGGCATGGGGGTGGCTTCCAACGGGCT
-TGGGAGCTGGGCCCAGGTGGCACCGTGTGGGCCTGAGCCACGCGTCCTCC
-ATCCCCGCCAGGCTTTGAAAGCGTGCGCCCCACTGCGTGTGGAGGGCCCC
-ACAGGTTGCCCAATGTAAGCCGCTCTTAATACTTGACAGACAGGACACCT
-GTAGCTGGGAATGACACAGAAAGTTAGTATTTGCAGGAAGGATAGAAAGG
-TGGAAATGCTCACGTTGTGGTTTTCCTGTCCGCGCTGCCGTTTCCCCACC
-TGGCCAGAAGGAAGCTGAGGTTCAGGTGCATCTGGCCGCCACGCCCCCAT
-CTCCCACAGGGGCCCGACACCTGCAGTCCCCAACTGCCCCACCTCTCTGC
-TCTCAAACACCCCAGCCCAAGGCAAAAGGCCCGTCGCCCCTTCGTTCCAC
-GGGCACGTGCTCCCCCACCTCCCTGGAAGCTCCCGGGCCCTGGCTTCCCA
-GCCTCGCGTTTCCCTTTTCTTACTCTGATCTCCGTGTGTGACAAGCATGT
-TCGGCTCTCAGAGTGTCTTGAGTCTCACCTGCAGCCTCAAATGCTGTGGA
-CAGCAAGAGCGCCGGCTACTGAGGTCCACCCCCATTCCAGCTTCCATTTT
-GCCTTCCTGCAGTCCTGGAATCCTTTATTGGATGCCAACTGTATGCACTT
-CCATTAAAGAGAAAGTGTGAGCCCACTGGCTGGCTGCATGGTGGGGATTC
-CTGGACAGTGACGTGGTCCTGCCTTTGAGGAGCCGGAGGAAGGAGGGATA
-GGCAGGCTGCTGGGGCATTCTAACACAGGAGGTGGGGCTGAGATAAAAGC
-GAGCCCCAGCCAGGGGATAGGAGATCCTGGAGGCTTCCCCAGAGGGTGGC
-TCAGGGGCTGAATCCCAGGAGATGAGAGGTATGGGGTTTGGGGGGCAggg
-tgtggggtgggggtttggggtgcaggatgtggagtgcaggatgtggagtg
-tggggtgcagaatgtggggggcagggtgtgcggtgtgaggtgtgggatgt
-ggggtgtgaggtttggggtgCAGAATGTGGGATTTGGGGTTTTGGGTACA
-GAATGTGGGGTGCAGGGTGTGGGGTGTGGAATGTGGGGTGTGGTGTTGGG
-GGTACAGAACGTGGGGTTTGGGTTTTGGGTACAGAATGTCGGGGGCAGGG
-TGTGGGGTGTGGAGTGCGGGATGTGGGGCATGGCGTTTGGGGTACAGAAT
-GTGGGATTTGGGTTTTGGGTACAGAATGCAGGGTGTGGGGTGCAGGGTGT
-GGGATGTGGGTGTGGAGCGGGTACAGCAGCGGGTCCTCCTGTGGGCTGGT
-GGCCTTGAGGCCAGGTAGGAGGAAGTGGCCGACACCTGGAGCAGGCACTG
-CCTCGGCTCCTTCACCATCCAGGCCTGAGCCCTCGGGGCAGCTGCTGGCA
-GGGGGCACCTTTGTGCAGGGACAGGAATGTGTGCCATGGAGCCGCCTGGG
-GCCTCACATTGAGGACACACAGCCTCTTCTGAGGGCAGAGGCCCAGCCCA
-CAGCCCTGCACCCCACAGTGCCTCAACACACCCCACCTCCAGGTGAACTG
-GGCGTGTCAGACAGGACGCACTTGTCAGCGGGTTTGAGTAAAAGTGACAT
-TCCTGAGGAGAATATTTTTAACAGATTATTCATTTGCTGAAAACCAGCAG
-CTGATAAATATTGAATTGCACTTCTTCACAAATACACCAATTATCTCCCC
-AAAAGCAGGAATTAGTGCTGCATAGCGTTGCATTAATAAATGTCATTCAG
-CTAATTGAATTTCTTGATTGACTAAAATATTCCCTGTTCTGAAATTCAGT
-CAGACAACAGGGAGGTTTCCATGGCGACAGCTCTTCCCGGGTGGCGAGGT
-GGGGAGCAGTCACCCTCCCTCCTGCCGGGAGAACCCCGAGAGGTTCGAGG
-GTTCCCCTCCAGTGAGCAGGGTGAAGGCAGGGCAGCCCCGCTGGTGGGTG
-CTTCATCGGGGTGGACGTTAGCGCTGGGGAGCCCGGACCCCTTGGACACC
-TGGCCTCACTGTCCTCAGTCTATTGCTTCTGCCTCTTCTCCTTAGAGATA
-TGGAGCGGCCTTCCCCATCCCGTCTTCCTATCCCATCGCCCAGTGTGGAG
-ACCTCCAGGGCTCCCGCGTGCTAGGAGGAGGAGCTCGCACCCTAGGCCTC
-CATGCCCCTGGCCCTGCTGTCCTGCGGCCTGGGTTCCCTGACCCACCCTT
-GTCGTTGGAAAGTCCCACTCACTCTTCATACTTGGGGCCTCCAACTCGCC
-AAAGGCTGAGGGGGGCTGCTGAGGCAGGAGTCACTTCCTTCCCCAGCACC
-CAGCGCCAAAAAccttcctccctccagcctctctcttcctttcctccttc
-ccctctccctccctctctgtcctccttctgtccACAAGTATTTGGGAACC
-CACTGTACCACGATGTCCTCTTACACACTGGCCACCCACCCACACATGGC
-TGGGGCTCCGTCTTCTCCTGGCATCCAGCACCTGCCCTTGCATGTGGAAT
-AGGGTGTTAAAACCTGTCCTGCCTGGGGACCACTCTTCTGGATCCTGCAC
-TTGGCAATCTGTCCCTGTCCTATTTTCTGGGATCTCATTTCTCCAGTTTT
-CCCTCTTCTCTGTCTTCAAACGTTTCCATCTCCTGGTCCACTCTGCCAAG
-CTGCTAAATGGGTTCACGTGTCCTCCACCTTAAAACCAATCACAAAAGCA
-AACAGGAGCCTTCTTACTTCTACATCTCTGACCTGCCAGGCCCTCTCTCA
-TCCTTCCTAGCCAACCCCTGTGGGAAAGCCGTCTTCCTGTCCAATGCCCT
-CTCCATCGGCCACCAGACCACCCAGCCTCAGCCCTAGACCACCCAAGCTG
-GAATCTGTTCTTGCCAAGGCCACTGCAAGACTCTTCTGATCCTCCAGTGA
-CCGCTACTGAGTCTGGTCTTCAGGCCGAGGAACAGCTGCTTCTCTTCCTG
-CCTCCCTCGGTGCCCTCGTCGTAGGCAGTGCCTCCTTGTCCAATCTTCCC
-CACCCCAAGTAGAGAGGCCCTGCGAGGGGCCGGGGTCGGGCCATTAGCTG
-CTTTTACCCACTAGAAACTGCAGGGCAAAGGCAGACGGAAGTGAGGAGGT
-CAGAATATCTGTTTGCCACGTGAGACCGTGTGCTCCGTTCCTGAGAATCA
-CGCCCATGTTCACTCTCGGCCGTGTCCAGCCGTCCCTGGAACAGACCGAT
-TTGGCCGCATTCGCGTGTCAGGGGTTTTTGAGCACCTGGGGCGTTCAGTG
-CTGGGGGTCAGAGACACTGCCTCCCTCCCTCCTGCGAGGACAGACACAGA
-GGCCCCAGCGTCGGGGACGGGTTGGCAGCCTGCCCCATCCCCATGCTCCT
-GGGGCTGCGCGCCCACCCTGCCAACAGCCTTTGCAGCCTGGAGTCCGATC
-CAGGTGAGGAGAATCGTGCAGCGTTGTCATCTGTTTTTATGAAGGGCTGG
-AGAAGTGCCATGAGCCATTAGCTCCAGGCAGGTGGGGCAGCCACAGGTGA
-GCTCAATCCTACACTCTGCACACAGGAGGTTCCAAGCACATGCTGATGAT
-TTCCCTGGGGATCCGAACAGGCTGCTCTTCCCCCCTGGCTCTCATAAAAC
-GGGAACTGTCCGTACAATGTTCACAAAGTGCTGAGAGATTTGACCCCGAC
-ACTGGAGCCACTAGGCCTTGTCTAGACCACGGCGGGTCCCAGTCCTTGGG
-AAGGAGGGGGTATGGTGCTCTCCTCTCTGGCCCAGTGCTGGGAAGGAAAG
-TGAGGGACTGGGACCACACAAGTCCCTCCCTGCACTTTGTGgggattttg
-aagcccccaaatgtaacagtggatccatcactctctccctggagttctac
-agtttttgtctcacagaattggatgctctgttattggatgcatccatgtt
-atagtttgtcatgtcttcctcggtcattgacttgttatgtcttcctcggt
-cattgacttgttatgtcttccttggtcattgacttgttatgtcttcctgg
-gtcattgaccctttatcactaagtcatggccctctccctccctgatggtg
-ttccagatgatggtcttctgcagtctgtctgagataatgtcagctgctcc
-tgctttctttcgattagtgctagcgcgatatgtcttcacctctctacttt
-tcacctgtgtgtgcctttatttatttatttatttttgagatggagtctca
-cactgtcacccaggctggagtgcaatgggatgatcttggcttactgcgac
-ctccacctcccgggttcaattgattctcctgcttccacctccctagtagc
-tgggactacaggcgcatgccaccacatctggctaactttgtttctttttt
-ttgtttgttttttgtttgttttattttattttttttttgtacttttagta
-gagactgggtttcgccatgttggccaggctggtcttgaactcctgacctc
-aagtgatccacttggcctcccaaagtgctgggattacaggtgtgagccac
-cacgcccggcctgtgtgcctttatttttaaagtgggttcttgtagacgcc
-atGAGCAGCAGCTCCACTTGATCTAAGGTTTTGTTTCCACACTTTCGGGT
-ATTGATggtttcacttatccgaggccaaccatggtccaaaaatattaaat
-ggaacatttcagaaataaaaactcataaattgaaatggcgtgccattctg
-catagcacgatgggattttgtaccatcccactccgtcctgcccaggacgt
-gacttacccctctgtcctgggtttccagtctctgcacactacccgcccac
-tagtacctgagtagccatctcagctatcagatACATaaaaaaaaaaaaaa
-aaaaaaaaaCCACATAATAAGTAAGTCCTCCCttattgtaaaatagaaat
-ttgtaaagtctatgacaatcacacaaatgcatgacgataaagattataat
-aggaagcgctcagcaagctgccttacctgtgacggtttgtGAGCAACCAT
-GAAGCTCATAAACCTATCAGGTgatagcttcttggaaactgtgactttaa
-cccaaacaaagcaaagcaaaaccaattttatggcttgattttaaaaagag
-ctaagttccagtggtgtatttctggtcacaaaacatcattaaacttctaa
-atgaagatccagaatacttctggtattaaacattaaaataaatttaagcc
-atatatagatttaagaaagattaatgaaaacaagcaagatgactatctac
-ctaattgttggggagttggtgagtggcggtggtcacgtgctggtgggtta
-aaccaaagaacaaatgtttgcaaagggaaaattgtaagaagcacctcctg
-cccccgcacagctcagaaaccagcacagagatggtggctcgccgagcgct
-ttcctaccacatcctttactgtcacacatttgtgtaattatcgtagactt
-tacaaatttttattttacaataatttgtattaattcattcattcattcct
-tcattttccagcatgcttattccagctgagagcacaggcaggaaccagcc
-ctgaacaggacgccctcctcaccaggcgacccccacacaccctcactcac
-tcacaccgggaccgtgtagacgcaccaactcattgaatgtgcacacctgt
-gggaggcacacctgtgggaggtgggagaaagccggagcacctggaaaaaa
-ccctcgcagacaagaggagaacatgcgagttccacacacacacagaggag
-atgacagggaatcaatgttctttttctcatcaacattataacgagacagc
-gttggacaaaatgatgttgtttgaggatctgctgTGCatgacatgctgga
-aaaggcataactatggggccagtacggaaatcaatagttactaagggctg
-gtgaggagggagggatgaagaggggcagctcggagggtctgggggccctg
-gatgaggctgcagtgctggattcagtccacgcaccttgtcaaagcccaca
-tcaccgcgacagtgagccctactgtgacactcaggcagagagtgagccct
-actgtgagccaggtgcgttgggccataatgatgcgtggatgtttgctcat
-cagttctaccaaatacaccttctcatgggacgtgtcgataatgggggagt
-ctatgcatttgcggggccaggggctgcatggaatatctctgtacctttgc
-tcagttttgctgttctgaacctaaaactgttctaaaaggtagaCTTggcc
-aggcacggtggctcatgcctgtaattccagcactttgggaggctgagatg
-ggccaatcacctgaggtcaggagttcgagaccggcctggccaacacggtg
-aaaccctgtctctactaaaaatacaaaaattagctgggcatggtggtggg
-tgcctgtgatctcagctactcaggaggtggaggcaggagaattgctggaa
-cccggaaggcggcggaggttgcagtgagctgagatcgtgccattgcactc
-cagcctgggcaacaacagcgagactccatctcaaaaaaaaaaaaaaaaaa
-aaaaaaGGTAGACTTAAAATAAGATAGACTTAAAATAAACAAACAGACAA
-ACACACCAGGGAGCTGACCAGCTAATCCAGTCCATGAGCCTCTAATGAAC
-TCACGGGGGCTGGAGGCAGCGGGGAAGGCCTCTGCATGCTGACTCCGCCC
-TTGGATGCCACTGCTCACGGCCATCTCTGGGAGGTGGCAGGTCCCTCGCA
-GGAGCAGGCCTGTGCAGGCATTTCTGTATTTTTTTCCAGGGAGTTTTGTT
-TCAAGGCTGACATTAGCAGGCTGTGGTATATGCACTGATTCCATTGGTGG
-CAGACCTGAGTGACCGGTGGGCTCCACTCCCTTCCAGAAATGCATGCCCT
-TGGCAGAGCTGCTGGCCTCCCTCAGTCCCTGGGAAGTGCTGGCTGTGAAA
-CCTGGGCCTCCAGGCTGTCCGGGGCTGGGCTGAGCAGCTGTCCCCATGAG
-GCAGATTGATGAGTCTGGATTTTGTGCCCAGAGCAACAGTGCAATGAGGT
-GACATGCAGTTGCTTTCAGTGAGAATGTGTCTAGGACCTCAGAGTGGTTA
-CGATGACACTCGCGTCTAAAAGTCCTGAGGAGTGTGCagagagagggagc
-tgggagggcagatgggtgtgtgcgagaggagtggggaccggagagcggag
-agtgctcagtggggtggggacagagtgaaagggagatggggagagagagg
-gagaaagttgggagagaggaagaaagggcagagagagaaagaaagggaca
-gagggagacagagatggagaaagcaggtggagagggagaaagggcagagg
-gaaatggatacagggagagagggagagagccagagaaaaagaggtgggga
-cagaaagggagaaaggggagagaaggagagagagaaatagagagataaag
-ggagagagGAAGACAGTGGGGAGGGAGAGAGAGGATAGAGAAGAGGAAAC
-AGTGGCCTTGGGGTGAGCCTGAGGAGGGACACtggctcctggtcagtagc
-aggagcagctgtgggtggcagtgccattactgggacagggaagatggatg
-aagggaaaatcagaggtgggagatgagaggagctgtagccacggcgacag
-caccttcagagcagacagtcctgccagctgcctgggctctggggagggtg
-tggactccacaggcacctctgggagtcaggggcatgagtggtgcttaaag
-ccacagggaagctcaaagccactcagggagtcgtgggcagggaaaggcgc
-ctcagagagcccagctgtgtgcaaaggagggaggtgaggaggagccgcag
-aggagactggccaggagcacccgaggaggagggaggGGAGGAAGGCGGTG
-Gggaggagggaggtgaggaggagggaggtgaagaggagggaggtgaggag
-gagggaggtgaggaggagggaggtgaggaggagggaggtgaggaggagCT
-GCAGAGGAGACTCGCGGGGAGCACCCGAGGAGCCAGGGGGCGGGGGCCAT
-CGCAGGCACCATAGGGCCTCCCCTGTCCAGGCAGACCTGCCACACAGGAG
-CTGTCCCCACAGGGGATCCTCATCTGCCTCCAGAGCTCCACCCTGGGCGA
-GAGGCACCTGAGAGGCCCACCTGGGAGGGAAGGGGCAGGGGGTCCCAGAG
-CCCCCTTGGGGTTTCTACATCCATCCCGTTCTTTCTTCTCTTTAGATGGA
-AAAGGGAGGAGAGAGGGTGTTCTGGGCTCTGTGCACCAGGTGACTGATTG
-GTCGTTTTTCCTGCTTTCTCTCTAGTCACCCTCCAAACCTCCCAAGAGGG
-CACCGCCAGGAATCCCCAGCTGCAGACAGAGGGCTGGCGGCTCCCTGGGC
-TCCAGAGATCTTCGCACATCCCTGCTCTGCCAGGGCTCCCACCTTGCAGA
-CAGGAGAAGGTGGCTGAGGCCCAGCCAGAGCCCCCCACAGCCTCGCAGCG
-GATAGCTAAAGAGGAAGCCTGGCTCAGCTACGCCTGGAGTCCGCCAAGAA
-GGGACAGCGCTCAATGGTAGAATGACACATGGGTGCTCTAACAGATTCCC
-GTTTTGTGAAGATGGACAAGCTCTAAGCAGGAGGACTTACAGGAGGTCAG
-CGGCTGGTGGCCCTGGCAGGGCTATCATGGACCTGTTCCATGAAGAAAGA
-GACACAGATCTCTCTGTGGAAAGGTGCAGGCTCTGCTGCAGGAGGAAAAT
-GGCAACAAGAAGCCCAGTTGGTGAGTTGATGGGACTCCGTGCAGCCATCT
-CGCGTGGCCACCGTGAAGTATGGACCAGCCCAGGTGAGTGTTTAATTGAT
-GGGACTCTGTGCAGCCATCTCGCGTGGCCACCGTGAAGTATGGACCAGCC
-CAGGTGAGTGTTTAGTTGATGGGACTCTGTGCAGCCATCTCGCGTGGCCA
-CCGTGAAGTATGGACCAGCCCAGGTGAGTGTTTAATTGATGGGACTCTGT
-GCAGCCATCTCGCGTGGCCACCGTGAAGTATGGACAAGCCCAGGGGAGGG
-TTTAGTTGATGGGACTCCATGCAGCTCTCATGCGTGGCCACCGTGAAGTA
-TGGACCAGCCCAGGTGAGTGTTTAGTTGATGGGACTCTGTGCAGCCATCT
-CGCGTAGCCACCGTGAAGTATGGACCAGCCCAGGGGAGGGTTTCAGGTCC
-GGAGATCTCAGTTGAGAGCATCACTGCTCCAGAAAATGACCACAGTGTCA
-TTCTGAGCTCACCGAGGTATCTGTGGACACCAGGCCCCATGGGCGTGCTA
-GAAAATGGGTTCTGGAGCCCAGGTGGACACCGTTTCCATCTCAGATCTTT
-GGTCCTCAGCACCTGTCTGCTCCGACGTGGAGGTATCAGCTCCCTGCATC
-TTACTGAGACACAGGAGCCAGAAGGGTCCCGAGGTTGTCATCATGGTGCT
-CTCCCCAAGTGCCTCCCAGCTTTGTGTGAGATTGTGGGGGCACATGGCTT
-CAGGAGGTGGGAAATGGAACAGACACCTGCAGAGTCTGACGGGGCGCTGA
-GCTCCTTCCCTGCTCTGCTGAGACAGGCTCGGGCCTCATCTGTTATTGGC
-CAAGGGAAGCAAGGAACCAGGGCAGGTGTGAGGTGTGCACCAGAGGCACC
-CCTTGAGTTAGGGACGAAAGTCTGGCAGGGCCTGGAGCTACTGCGTGTTT
-AATCTCGGTGCATGGGTGTCTGCAGGAGCAGAGGGCCCGTCCCAGCGCCG
-GATCTGTGGTCTGTCCCTGGCTTTCTCCTGGGCATCCTGGAGACGCACAG
-CTCCCGGCTGTGGCTGTGGTCTTCTCCCTCTGTCCTTGGGTCCCTCCGCA
-GCTGCAGACTGGGTTAACCTTGAGAATGGACAGTGGTGGCCTGGCCGCTG
-AGTGACAGCCAGGAAAGAGCAAATATTGACTCCTCACCTCAGGAAAGGGG
-CTGACGTTCCTTCCGCAGGCGCACACTGACCTTGCTTCCACGGGAATCGA
-TAGAAACCTCTCGAGTCGATAAATCTTAATGTTCCTTTCAACAGAAATCC
-ATGCACCTCACTATTGTTACTTTTCTGGAATGGCGGGCAGGAGCAGGCCT
-GGGCCTGCGCCAGTGATCAGAGGGTGGTTTAGCCTCAAAGCTTCATCAGA
-CCCTCCTGACTGAGACGACTAAAGACCCGTCCCCTCAGAGGGTGCTGATA
-GCCCCCCTGCAACTATTCACAGCCCACTGGGCCCACCCCTAACCCACCTC
-CTGCCTACAGGAACAGCATGGGGAGAGAGAGATGGAAAAGCCACACCCTG
-TCCCCTGCCTGGGGCAGAATCCCTCTTGTCTGCCAGGCAGGTGACTTGAC
-GCATCCTTTGAGGGAGCTTTGAGGAATAGGACAAACCCTCACTGTGGAAG
-GCCAGAGGGTCCCCTCTCCTCCCTGGAACGATCCCCCAGCTCCATCTGCA
-GATCCTCCCCTAGCACAGCCCAGAAGCTGAGAACTGGAGCCCCCAGGATA
-CAGTGGGAGGGATAGGGGTCCTGGGGCTCAAGAGGTCCTGGGACTCAGAA
-CAGGCTGGCAGGAATTCAAGCATCTCTAAGAAGGAAGTTGAGGAGGCCTG
-GCGTTCCTGGAATGTGGGTTTGTGGTCCTTAAACGCATCCTTCATATTTA
-AAAATACCCCTTCCTCTCCCACCCCTGTCCGAGCAGCTCTAGATCCTGCT
-GGCCAGCCACTTCCTCAGATGAGTTCACTGAAAGCAGGAGTCGTCCTCCC
-ATCCATGCACCTCTGAAGCCCAAGGACTTTCAGTGACTTTAGCCAGAGAC
-TTGGGCAGCCACAACTCCTCTAGTGCtgatatggttaggtttcctatctc
-acccaaatctcatattgaactgcaatccccgtaatctctacgtgtcaagg
-gagagaccaggtggagggaactgaatcctagggacggtttcccccatgct
-cttctcatgatagtgagggagttctcatgagatctgatggtttcgtaagg
-ggctcttcccccttcacttagcacttctccttcctgcatccttgtgaaga
-aggtgcttgcttccccttcgccttccaccatgattgtaagtttcctgagg
-cctccccagccttgctgaactgtggatccattaaacctctttcctttata
-aattattcagtcttgggcggttctttatagcagtatgaaagggactaata
-caAGGGCCAAAGGGAGGCAAGGCTCATTGGTTTGGGTCTCATCACGCCCC
-CGTGTTCTCACCCCTGCTGTGTGAGCACGGAGGAGTCTGTCTTCCAGCTT
-GAGCTGGGCCTGCTGGGGATGGGCATGGGGCCCACATAACCCAGGACCTG
-GATCTGCTCTGAAAGAAAGGGGACAGGTTGCTCAGAGTGACTCTGCCCAG
-CTGTTAACTAGCCAGTACAGACATATGACACAGCCCAGTAGCGGGGAACA
-TGGACAGCTGCCCATCGGGACCATAGCCCAGTCACCCCACTGTGCTGGCC
-TCTCCTCCTCTGATAGCACACGGCCCCTCTGGGCAACAAGAAGACAGAGG
-TGGCTCAAGCCTGGCCAGCTGGACCCCTTCCTAGAGAGTGAGGCTCCCTG
-GCCTCTCCCTGGCCAGAGACTGGAAAGCATGAATATGGTCTCATGGAGAA
-AAGCAGGTGCAGTGGAGAAAAGTGAATCCCCGAACAGAGACACAGACATG
-AGAGTGCATGGAGGGAGGGACACAGAGGCTGAGCTGAGCTGGCAGGGCTG
-TGTGGGCTGGCAGTCCCCTTTTTACTCCAACAGAATCATGGACTGCTTTG
-GGTCTCCCTCACTACCAAAGTGGGGGTAGGATTTTGCCACTTGGGGGTGG
-GGAGGGTGGTGGAGAGCAGGAGACTGGGGCTGCCCTCTGCCATGGCAGGT
-TCAGCCACAGCACCTGCAGGAGCAGAGGCAAGAGGAGCTTGAGGTGAGGA
-GCCACCAAGGAGCAGAAGGGATCAGGGAGCACTTGGCACATCCCTCTATC
-ACTTCCAAGAACTGGTTCTGCTGCCCTGGTCACCAGGAGCCCCTCTTGCC
-ACAGCAAAGGTTGCAAGAGCCATCTCAGGACCAAACGTGTTTGTGCATAC
-CTTTGAGCCTGTGCATGTTAGGTTTCTAAATTGTGCCTTTCCACTCACAT
-TGCTTAATCTGGGAGCTGAAGGATGGATAGGCATCAGGTGAAGAGGAAGG
-GAAATGCATTCAAGAGGGAGGAACCACCAAGAACCCAGGGACCACCAGCA
-ATGGCAGCAAAGGGGGAGCAGCAGGAGGTGAGATGAGTCAGAAAGGAAGC
-ATCAGCTCATTCAAAGCTTTGAGGCTTTGCATGGAGGGTGAGCTTGGTTG
-GTTGTGAGTCAGAGCCTGAGAAGTGGTCTGTGGGGGAGTGAAATGAGAAG
-CAGGTCTTCATGAAAGACCACTCTGGTGAGTGGGAAACTTGGAGATCAAA
-TGTGGAAGGGGGAACAATGTGGGAGTGGACTTGGCTGGGGCAAAGGCCCC
-ATATTCTGCTCCCTACAAGATCCTCCGGGGGAAAGATGCCATAGTTCTCT
-GCACAAAGGAGAACCAGCTatccatccatccatccatccatctactcatc
-catctacacatccattcactcatccatccatccatccacttatccgccca
-tccatccatccacccacccacccatccatccatccatctacccactcatc
-ctctactcagctattcatccatccatgcattcacccatcatccatccatg
-cattcacccatccattcatccatctatccattattcatccacccatccat
-ccatccatcatctacccacccaacaacccaccagtctacctatccattca
-tccatcaacccatccttccatccatcccctcatctgtccatgtactcaat
-catccatctgtccatccatccatccatccatccatccatccatttatcca
-tccatccatcattcatctacccatccatccaagcatccacttatccactc
-atttcttccttccttccTCAACTCTGTTCTATGCCACACTCTGGAACCGG
-tgtttcagaggctatagatgctgcaggtatcaaagaagaaagggtcttgc
-cctctgggacctttattctgttggagaaacaaaataataaataagtaagc
-acattaaAAAACAACAACACTTCCCTATGTGGTTGTTGTATGAAGCTGAA
-AATGGAGTGGCCTGAGGCCTATTGGCTGGAGGGCCTTGCAGGGTCCACTG
-TGGGCTGAGGGTGTGAGACACCATGAGAGGTGATGGGCAGGGACCCAGCC
-TCACAGACATGGCCATGAGCCACCCCATTCACATGTCTCATGACGAGGGC
-AGGGTTTCCGTGGGATTGGGAGCCTGTCCGCTTTATTTGTAAGAGAAGTC
-AGGCATGCCCATTCCTCTTCTGTGGCTGGAGTCAGCAGGGACAGTCTGAG
-GACTTGGGCCATGAGCTGCCACTGCCTGGAAAGGCTTGAGTAGATGAGGG
-CTTCCTGGCCCATGGCAGATGGGTGGGGATGTCCTATAGACAGGTGATGG
-CTGGCCCCAGAAGAGCAAAGCTGCTGTCCAACCGAGGGGACTGCTCACAG
-GGAGCCACCCTGGACCAGGCCTCAGTCACTGTGTGCCGGAACCCTCTCTC
-CTTGATATTTCATCCAGGGGGCCTTCGTGGGGCCTTTGTGAGCCCCTCGG
-CGTTCTGACACAGTGCTGAGATTAATGCCATAAACTGGTGACAAGGAGAA
-GAGAACAGGGCCTGGACTTCACTGCAAAGGGCCCTGTGCCCTAGCGTGTG
-TGTCTATGTGCAGGGAGTGCATGCATATATTACAAGACACTGCCACACCC
-CCACCCTGTGTTACCTGTCCATCTGGCACACAGGCACAAGGGCTGAGTGA
-CCCCACAGCTTCCTCTTTAGCTGCTGCCCAGGTGGGAAGAGGCCCGCGCC
-AGCTGGGACCCTGAGAAGGATGTGGCTCTTCTGGTCTAGCAGGGCAGAAC
-CTCCCCTCTATGGAGCCCTGCTTGCAGCAGACGGACAGTGGCCTCGTGCA
-GCAGGGACAGCTTGGCCTTGCACACCACGCCTGTGGGAGTGCACACTTAC
-GGGCGCTTGCTGCTCAAGTGGGAAATTCAAGCTGGAGGGTGACGCAGGTG
-GCCCAGCAGGAGCCCTGGTAGGGAGCCCACCCCACCATAGTCTTGACAGG
-AGCAGGCGTTTGTCTGGGGGACTCCGGTTGGAGAGATGGCCTCAGGCCCT
-GGACAGGGCTGCCTGTCCCCTGAGTGCATGAGGAAGAATTTAATATTGGC
-TGGGACACAAATGATGGCCCCAGTGATTAGGATGCCATCCATCTCAATAT
-AGCAACCATTATATCAGTGATTACCATCATCGTTATAAGTTCATGATTTA
-TGGAGTTTGTGATGATTATTTTTGTAATGTTAAGTTAGAAGAATTTTTGG
-CAATAGATCAATTTGAAAGAAACTGAAATACAGTTTTTAAGTGAGGAGCT
-TGGCTGAATTAAACAACAAAGTGTGTGTGAGCGTTTTTGCGAGTATGTGT
-GTGCCTGGGCATGTCCCTCGTCCTGAGCCTGACCAAGAACCAGCTCCATG
-AAAGTGGACTTAGAGGCTTAGGGTAGGGCTGGGGTGTCATTTGACTCCCA
-AACTCTTGGAGAGAATTGACTAACATCAGATTGAGGTTCAGATATTGGGT
-CCCAAAAATGTCCCCAAGGACTGTGAGGTCCTGGCACTGCCCCACAGGAA
-ATTATGGGCACAGGACAGAACTCTGCTCCTAGGGCTATGGCTGCCTCTAG
-ACCAGGAGCTCTACAGGAGGGACAGTGACAAGGTCCCATGAATGTGGTTT
-GCAAGATGGCCTCAGGCCTGCTGTGTGAGTGTGTCTGAGAACAGCAGTGA
-CTGAGCATTCCGTCCTTCCTGCCTCTTCCTACAGTGGTGAGTTTTCCTCT
-CTCCTCCCTCTGGCCAGGCTTTCCATGCCCGCGCTGCCTTCCGCCTCCGC
-TGCCTGGCCTTTGACACCCAGTGGCCATGTTGGGCTGTCCTCCTCCTCTC
-TAGCTGTGCCTTCTGTCCTGTGGGCTCATCCTCTGTCTGGCCACAGGGTG
-ATGGGTCTGCTCAAGGACAAGGTGCCCTCTTTCTTTATGCCACCCCCATG
-CCCCATCTGCGTGGTGCCATTTGTACCTGTGGCCTTTTGGGACCCGTGTA
-GATAGCTCCGACCTTCCCACCCTGGCTCCTACCCATCCCTGAGCTCCATA
-CTCAGCTCCGACCTTCCCACCCCAGCAACTACCCATCCCTGAGCTCCATG
-CTCAGCTCCGACCTTCCCACCCCGGCTCCTACCCATCCCTGAGCTCCATG
-CTCAGCTCCGAGCTTCCCGCCCCAGCTGCTACCCATCCCTGAGCTCCATA
-CTCAGCTCCGACCTTCCCACCCCGGCTCCTACCCATCCCTGAGCTCCATG
-TTCAGCTCCAAGCTTCCCACCCCAGCTGCTACCCATCCCTGAGCTCCATA
-CTCAGCTCCGACCTTCCCACCCCGGCTCCTACCCATCCCTGAGCTCCACG
-CTCAGCTCCGAGCTTCCCACCCCAGCTGCTACCCATCCCTGAGCTCCACG
-CTCAGCTCCGACCTTCCCACCCCGGCTCCTACCCATCCCTGAGCTCCATG
-CTCAGCTCCGACCTTCCCACCCCGGCTCCTACCCATCCCTGAGCTCCATG
-CTCAGCTCCGACCTTCCCACCCCGGCTCCTACCCATCCCTGAGCTCCATG
-CTCTCTCTCTGTCCATCCACCTGTCACAGCACCCGGCCCTGGCTCCACCT
-CACCCAGCTCAGACCCTCTGCTCTATCTGGGAACGGCACCACCACCATCC
-TGCAGATGATGCCAGAAACCCCAGGCCATCCCTGGCCCTTCCCAAATCCT
-TCCCCTCTCCAAAGTCAGTCTAGCACCAAGGTTGACCAGTTCCGTGCCCG
-GGGCCATCTTTCTGAAGATTGAGTCACCTGCCACCAGCACCTTGCTCTGT
-CCACTCCAGCCCCCGGGTCCGCATCCAACAGGACTCTGAGGAAACCCGTC
-CTGAACCACCAATGTTTTCACATCCCCTCTTTGTTCACACAGCCTTCAGC
-TTTTAAAGTCACCTTGTCACAGAAGCCTTTTCTGGTGTCTCAGATGAGGT
-CAGGCAGGGGTCATGCAGGTGATAGCTAGGGGTCAAATGCTCAGGTAGGG
-AGCCTCATACAACCGAGTTTCTCTCCTGAACAAAGCATGCTACAGTTGCA
-ATTTCACACTTGTTCttatgtatttgaataattccagtttatcccaccat
-agtgtatactccgtgaggttggagattacataagttttcaaacattgctg
-ttttctcattgcttaacatacggcctgcccataagtgtctctccatctat
-ctgtCCCTCccatcctccatcatccatccaaccatccttccctcccaccc
-tccatcattcatccatctgtccttcctaccctccatcatccattcatcca
-ttcatccctcctgccctccatcatctatccatccatccctcccacttttc
-atcagccatccatccatctctcccaccatccatccatccatccatccatc
-tttccttcctacccccaatcatccattcatccatccatctgtacctcccg
-ccctctatcatctatccgtccatccatccctcccacctttcatcatccat
-tcatcaatccatctgtctctcccaccatccatccatccatccatccatcc
-atccatccctccctccctcccatcctccatccatccatccctcccacctt
-tcatcatccatctatctgtctctcccagcatccatccatccaatgtccct
-cccaccctccatcatccatccatccattcatccatccaccccttctaccc
-tccatccatccacctgtccctcccaccctccatccattcatctatccatc
-cattcacccgtccatATACTCACCTGTTGTCCCCTCCCCCATCCATCCAC
-GAATTCACCTATCCTTGcaaaagttattgagtgctgcatgccctgtatgg
-ttgttctcatagattaactgggttgatactcccaataaacttatggggaa
-gtaatgactcttgttattaaacacatgttatagaaaaaaaacccctgagg
-cttatgaaaggtaagaacttgatcaaCAAGTGAACATCAGAGCCCCAAAT
-CTGGATGAATCAGCTCCATGCCCACATCTCTACCCATGAAGCCCTCTCTG
-CACAGAGACACCGGCACCGACTCTTCCACCATCTCCAAATGAAGGTCTAT
-GTTCCCCAAGCCTGTCCTGACAAGAAGCTGTACAGAGGATTCTCTGCAGA
-TGAGAATCTCCATCCTGGCTCTTATCTTAGACCCAGTGGAGGAGCCTGGC
-TATACAGTGGCATCACTGTCATATTAGAAATGCACGGGCATCATAACCCT
-CCTGGTATTATCTGAGTGACTTTCTGTGTCTTAGCTGGTGTCTCTGAGCC
-TTGGTTGCTTGTGGTTGGAATGGGGGCTGGAAGCCTGTACATCCTGTGCA
-AGGAGGGCCTGGGAGACAGCCTGTGAATGGTGGCTCTAGTGTCCTCTTTG
-TCTCCTGAAGATCATAGCTTCAGGTGTGGTGCTTGGGGCAAGCCACTGTC
-CCCTCCATCCTTCAGGGAGTTTAGTGGAATGGAAGCAGATGGATAAACTG
-GGGGTGGGGGAGTGGGTACTCAAACCTGCCCAGGCAAGGGGGTGGATGGA
-GAGATGGTGCAAACTCCGTGCATGGAAAACACGTGATCATGATGGGGAAG
-GGGCAGGACGCCTTCGTAGACTTGGGTAGCATGAGGACAGGATTCTGTAC
-TCTCTTCTCACCTACCCCTGCCGGGTGTTTAAAGACTATTGTGTCATTTA
-TTCCTCCCAAGTGTTCTGCCTGGAAGGTGCTCTGCAGAtgagtaaattga
-ccaaggacacagccagtaattgctggagtcagtatcctgaaccccagcct
-cccCACCCTCTGGGCAGCTTCTCCACCCTCTGGGCAGCTTCTCCACACTC
-TGGGCAGCCTCTCCAACCTCCGGGCAGTCTTTTCACCACATCACACTGCA
-CTGCACAGTGGGATGAACACAATTCCTGGCAACAAAAAAGGGAAAACTTA
-AATACATTGGCATGGAAGTGCCAGGCACTTACAACTTAATTTTAGGGCTG
-GAGTGGGAGAAGTGGTTGTTGCTGATTTAAAGGACCTGGATGTCTGGCTA
-AAGAATTTGAACTTCAGCTTGAAGGCAAGGGGAAGCAGGGAGTGTCTTAG
-CGGCGGGACGGTGAGCAAAGCTCCTCTGGGGAAGGCGCTCGGATGATGGG
-ACGGAGAGGGGCAGCTGGAGGGAGACGCAGCAGCATTCTGCACCTTCACC
-TCACTCAGTTCTCACAAAGATTTAGGCATGGATATGAGAGTTTCAAACTG
-TTTCAAAAATGAAACAGTGAAGTGTTGGGTGTAATTTAAATAGATGTGTA
-TTTTTTAATGTATTAAAAAATCTAGCAACTCCACAAGATAAAAGAGGGCA
-CACAAAGTCATCATATGAACTCGGAAAATCATTGCCGCTCCTGAAAAGAA
-ACACATTCAGATTCCCCAAGGGCTTTTCCATCTTGCTCCACCGAGTGGAA
-GGGGTTCCAGGAAAAGAAGGAGCATCAGCTCCAGGAAAAGAAGGATATCC
-TTGGGAAGTATATCCCAAGACTTCCCCACATGTGGAGAGACGTGACCTGG
-AAGTGAATGGTCAACCAGAGGAAAAGTTAAGACAAAAAATTATTATGAAG
-AAAAACCCTGGCCCACCACTGTAGGATTGCTGCAGAGGAAGAAGGGATAT
-TGAGGACCTACCCTGTGCCAAGCTTCCAGGCTGAATTAAAGGAAGGCCGG
-ggccgggcgtggtggctcacgcctgtaatcccagcacttttgggaggcag
-aggcgggtggatcatttgagatcaggagttcaagaccagtctagccaacg
-tggtgaaaccctgtctctattaaaaatacaaaaattagccgggcgtggtg
-gcgggcacctgtaatcccagctactcgggaggctgaagcaggagaattgc
-ttgaacccaggaggcagagattgcagtgagctgagatcacaccactgcac
-tccagcctgggcaacagagtgagaccctgtctcaaataataataaaaata
-ataataaataaaaATAAAGGAAGGTCTGGTTAAAAAGACAGAATAAGTGG
-TGATTAGGTGGAGGAGTCAGACCTGAATAGGTCACTTAGAAATCTCTTAG
-CAGGAGTCAGTGCCTAGGTCCCTCACGGAAGCATCTATGACCGCGGAGGC
-CACCTCTCCATGTGCCACTGCGTTACTGATGTTGAACAAAATGAACATCA
-AGAGCCACAAACCCACAGGGactccctgccctgccacagcccagagggca
-gagaaaatgggttttggatgacggagagcccaggaaagccattccagcct
-gcatcagagcaaacaggatggccagagagaccagcgcttgcaggaagatc
-acatggagagagaaagggtcttgcggtggagccaacgctggcacagaagg
-aaatggaggagagagagaaggaaagggacagcggcaaaaaagaaagaaaa
-acaagtgaacgttaaacaacaaactgaagaaaacatcccctataaCAATT
-GTCAGTGAATTCGTCAAAGGCTTAATTAGAACAGCGAAGTGATGAACAAA
-GGTCTGGTAAAAATGCCAACTGCATCCATCATGTGCACTAATACACATTT
-AAATGCCAACTGCATCCATCGTGTGCACTAATACACACCTAAATGCCAAC
-TGCATGCATCGTGTGCACTAATACACACCTAAATGCCAACTGCATGCATC
-GTGTGCACTAATACACACCTAAATGCCAACTGCATGCATCGTGTGCACTA
-ATACACACCTAAATGCCAACTGCATCCATCGTGTGCACTAATACACACCT
-AAATGCCAACTGCATCCATCGTGTGCACTAATACACACCTGAATGCCAAC
-TGCATCCATCGTGTGCACTAATACACAACTGAATGCCAACTGCATGGATC
-GTGTGCACTAATACACACCTGAATGCCAACTGCATCCATCGTGTGCACTA
-ATACACACCTGAATGCCAACTGCATGGATCGTGTGCACTAATACACACCT
-GAATGCCAACTGCATGCATCGTGTGCACTAATACACACCTAAATGCCAAC
-TGCATCCATCGTGTGCACTAATACACACCTAAATGCCAACTGCATCCATC
-GTGTGCACTAATACACACCTGAATGCCAACTGCATCCATCATGTGCACTA
-ATACACAACTGAATGCCAACTGCATCCATCGTGTGCACTAATACACACCT
-GAATGCCAACTGCATGGATCGTGTGCACTAATACACACCTGAATGCCAAC
-TGCATGGATCGTGTGCACTAATACACACCTAAATGCCAACTGCATCCATC
-GTGTGCACTAATACACACCTAAATGCCAACTGCATCCATCGTGTGCACTA
-ATACACACCTAAATGCCAACTGCATCCATCGTGTGCACTAATACACACCT
-AAATGCCAACTGCATCCATCGTGTGCACTAATACACACCTAAATGCCAAC
-TGCATGCATCGGGTGCACTGACTAGTACAcacctaaatgtagaatgaaga
-tgaaacaaccttggcaatgacagaccttaaaaaacagtacaaataaaaat
-aatataactaacataatccgaaagaagcactgacgtgtgagaggaaggga
-aaaccggctggtttcttcctcattcacagcaaattcagtgaatagacagc
-aaataaaatgtgaacacatggccaggcatggtggctcatgcctggaatac
-gagcacattgggaggccgaggtgggtagatcatgtgaggtcaggagttcg
-agaccagcctggccaacatggtgaaacccgtctctactaaaaatacaaaa
-attaggcaggtgtggtggtgtgcacctgtaatcccagctacttgggaggc
-tgaggcagcagaatcgcttgaacctgggaggcaaaggttgcagtgagccg
-agattgtgccactgcactccagcctgggcaacagagtgagactgtctcaa
-aataaaacaaaaataaaaataaaaataaaaataaaataaaataaaacaaa
-ataagaacacaggcacactcacactcactcatacaccctcattatcaaac
-tctcaatgtttctatttttttctcttaaaaagatctttagaaatgaacat
-ttccatggtaaagaaatgaagatcgaccattccctttgttttactttatt
-tttcatattaaatataatttaaaataaatcatctaattaaaagcatgagt
-agaaggacttcccaccctccctgctgttcctcccactgacctcccacctg
-gctggtggaggccgtctggggttgtttccttgtatgaaggcaagttcctg
-ttgggggatgagattggggtgataatgttgctttctgtactaaaaaaaaa
-tttcctaatgcacatgtgtaattttcacaaaaaaataaaaTAATTGAAAT
-TACTAAAGAGAACAAGCAGACGGGTTTTCACCATGGCCTGGGCATGAATA
-CCTCTCTTGACCTTGTTCTAAGGCACATGGGGACTGCTGGGTGGAGCATG
-GATCTGGATAGCAGGCTGAGGTGGAGCCTCCCAGCAATCGGCTTCCAGGA
-GGGAATGGTGTGCAGGCCAGCACCGCCTCCTCTCCATGGACCACTCAAGG
-CTGAGGCTCCAGAGCAGATGCCTGCGCTATTCCTGACTATTCCTGAAGAG
-ATTGGCACCTGCGGGGCCTGAGTGTTTCCCTGCACAGAGGAGAGCAGGGA
-CTTTGGCGACCCTGGACGCAGCTGGGGACACTGGGCTCGGTTGAGTGCTG
-TATGAGAGGCCAGTCCTGGTCACAGTAGAATCTGGGGCACATGAAGCTGG
-GGATTAAGGCAAAGACAGCACATCCAGCCTGGCCACATTGTGGTTTCTAT
-ATAAGTTCCTGATGGGCAGGCCTGTCTCTGATGGGCCAGCAGCTGCCCCC
-ATGCCCCGGCACCCACGCCAGTCATCCAAGGTCTCAGAAGGAAACATCTG
-AGACACTCCTCCAGCTTTGGAATCATGAACTCAGCTCTTCCTGAAAGTAT
-Cgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtacccttgtacgtgtg
-catgcgtgtgtgtgcctgtgtgtTTAGTGCTTGGGGGGTGTGTGTTTGTG
-GCTTATTGAAACTATGAATTTTACTGAATCAGTAGAGCCGATCATTCTTT
-CTGCACAAACCTGGTCCCACCTCGGTCATGCCTCTGTCTGACATCTATCA
-GTCAATTTATCCATCAATGGTAGAATAAAGTCAATTATCAAAGCTGGCAG
-TGCGGCCGGCTGCTTTCTTGAAAGTAACAATCAGTCGGGGAGCATGTCTT
-GCTAATTCCATCCTGAATCTGCCTTCTTCCCTCTTGGGACAGGTGCCTGC
-GTCCGCACCCCTTTCCTCTGCCAATGGGGAGACCACAGGCTTCCCTCCCT
-GCTTGCGTGGGCTGGACCCCTCCCCACCTCGGCATGGCTTGTATCAGGGG
-CAGGAAGGTAGCCAGGAGCATCACGGATGTGAAGCAGTAACTATTTTAGT
-ACATCCAAGGGAGGGAGCTGCTTCCTGCTTTACACACAGGTCCAACAACA
-TGAAGACGGGAATCTCAAGAAAAACAAAGTTATAAATCACAAATCAAGAT
-CATAAAATAAAATCAGTATTGAAATAATGGCAGTAAATGGGTGCTTTTGA
-TGTGGTCTGCGTTGTAAGACACAGGGAGAAAATGCCTCTGTAAAACTCTA
-ATAAATCGCTTTGTTTAATCACTAGAATATAAATGGAATTTAAAGGGTCA
-TCTGAGAGTCATCCTTTAAAATAACACATTAGCTTTTCTTCTATGACAGT
-TTGGGGGAAAGATGCCATTATTTAGAGCTTGTGTACTTCATTTATTTTTA
-AATTAATAGTTTTTTAGTTTTCTATCTTCAAAAATTTCCTTAAAGCATTC
-ATCTACTTTCTCTATTTCCTTTTCCCTAATTTCAGAGAAGAGTTTGTGTC
-TTTATTTTCCTGTCGTGGATGCAGAGAGCTCCTGCGGGTGTTTACAAAAG
-GTCCCTTGGTGTCATTCTGCTTCTTGGCCCTCCATCACTCATGGAATCAC
-AGCTGATGCCTGGGCTCACAGTTCTCCGAGAAATCACTGGTGCCAGGGAA
-AAGTGTTCTCTGATTGATATAGCACACTTGCTATGTTTCACAGTTCAGCC
-CAAGCTCTAGCTGCTATTTCTTAAGCAAATGTGTGCTGTCTTCGTGGAGG
-TGGCAGTGGAGAAAGGAAAATATCAGCTCTCAGTGATATCACTAACAACA
-CCCAGGGCAACAATTACGCTGGCACGTCCTTTACTCTGGGACCTGCCTGG
-CCCTGAGGCCGTGTGGGCTTTGCTGGTCGGGTCCTCCcagccctaagagg
-ggcaggtctcaggatcccattttgcagaccgggaagtggggtcaccagac
-aaggactgcacactgtcccacaacaaggagttgttggatcccagtcccaa
-acccaacgtgtgtgacttcagaactggtgctctGAGGAGCTTCTCAGTCA
-CCATCACTGTGCACTCCCTTAGCAGGGATGGATGTGGAAACTCACTCCTG
-AATTGGACAACTATTGCTGTTTTCCGTGGAGCTGCCAGAGGGATCATTGT
-AGAGCAACGGTCACCAGAGCACCACTCAGCTGTAAACACTCACTGCAACG
-AAGCTAAACCCAGACGACAGATCTGGCATGGCCTGGCCTCCGCTGCTCCC
-CAGCCTGGAGGACTCTGGCCATGCCTCGGGGACATTTCTAGGCTGGAGCA
-TAGACGAGCCAGTGCACGGACCTCCAGTTCTGAGTCCTGCCCTAACACCT
-GGGAGGAACGTGTGAGTTGTTGATGAGCCGCGATCTGTAGCCATGCTGGA
-GGAGTTGGCATGAATGGGAAATCCACCTTTCTTGCAAACTCCGACATGCC
-ACTGAGAATTCAGAGTGAtaagcttagcctaaagctgcctcctcacataa
-gttcagcctaaatggcatgaacccaggaggcggagcttgcagtgagccaa
-gatcacgccactgcactccagcctgggtgacagagcgagactctttctga
-aaaaaaaaaaaaaagtctttctgtacacagtgaactgtaccaaactggac
-gtgtaaatagtctgtaacctactcttgtgccagtcatcgagttttccctg
-atcaagtaagacagaccctaagctggagccaagtggctgcttctggactg
-cgctctgtcttccgtaagtcaccctactttttctgttcataaatcttctt
-tggtcccacggcagtgccggaatctccctgaatctcttctggttcgggag
-gctgactgattcccgaaccattctttgctcagttaaactctgttagattt
-aatttgtgtaaagtttttcttttaacGAGAGTTAGCTTCTTCCTCCTCCC
-TGGCCTCGCCTGTCCTTGCTGATGCGGAAACAGGTTCCAAGAGAGGTGCC
-TGAGCGCGGTCAGGAAACCTCCAGACGTGGCAGAGCCACGGTGACAAGGA
-GATCCTGTCTCAGGCTGGGGATGTGGGACCCAGGTGTGCAGGCAAAAGAG
-CTGGGGAAACTGAGGCCTGCAACGGCACAGGGGGAAGCACGAGCACTGTG
-ATCAAAGGCTCAACCCTGCGGTCCATTCCCTGCCCACTGTGGGGCCCAGA
-GCTGTGAGCTTGGATGCCGGTGTCATGAAGTTAAAGCACAAAGCTTCTGA
-GTCCCCGTCTGGAGGACAGCTGCCCCGGCATGCTGCCCAGCTGGCTCTGA
-CAGTGTGAGGATAGACTCTCACTGACCCTGCGCTTGAGCTGGACAAGCCT
-GTGACTCCCTTCCAGCAACAGAATGTGGCCCCCATGCTGCGTAGTACAGA
-ATCTTCCAGGCCTCTGTCCTGGCACCCCTGCTGCCTGAAGCACCTTCCCC
-GAGGAAGAAGCCACCGGTTTGGAGCGGAAGAGGCCAGCCAAGGGGCCGGG
-GCCTGGGAACGGTGGGTGGCTGTGCTGAAAACCATCTGAATCAATTCAAG
-TTGAACTTGAACTGCATTTTATTCCACTGACATCAGAATTGGATCTCCTC
-TGGGGTTGTGGGAAGGattcaatatttagagacattaattacttcagcac
-cacattctgcctactgtacggtacacatgggggacaggactcaaattaaa
-ctggtccctgctcctggggaagccacattcaaagaggagacaattgtgaa
-tgaagctgcctggaacataatggggccgtctgcaggggaaggcaggacta
-gctcaaccctaggtaattaaaggtctctgtgagatgggtcttgagggttg
-agtaggagcttaaaaagcagtttgaagggatgagtctttccaggaagcag
-gaatgacctgtgcgaccctgagggggtgcaaaggacagagtgtgctggag
-aagggaaggagTGCTTTGTCCTTCGTCCTGCCTGGTGGGGCAGGGCCTCC
-GGGGTACAGACCCCACCACTCGCGTGCACCAGGGGTGACAGCCAGCTCCA
-TGCAGATGGCCTCCAAAGCGGTCGCTCCTGGGCTTAGCTTCCCTGAAATT
-AGAAGCAGACGCCTGTGCACGTGTATTATCAGCTTTCGAACATTGAAGGA
-AACAGCTCTTTTGCAATAACTGGATTCATCATGATACAGATTTTCCCTGT
-GACCTCTTTATTACTTTTACGCACCACCTTGTATTAAAAAAAAAAAAAAG
-AAAAAGTCTCAGCCTTCTACTCCCTGCAGCCTGGTTGACTCAGATTTCTT
-TCACTGTTTCTCCTGTACAAACAGGCAAGGGAATGAACCTCCCCTGCCAC
-GGTTTCCAAGCATATTAAAATATGGTCACCCCTGCAGAACTCCTAATGTT
-CTTGTTTAATGTGTCAGAAAAGCAAATGGAATTTTATTTTGCTTTGGCAC
-CAGTGGAGAAGAATAATCGTGTCCTCATCAGGAGGGCTGGAAGCAGTGTC
-CATTTGCAAGTCCTGCAGATGGGGGGTCAGGGAGGCTTTGCCTGAGGCTA
-AAATGCCCTCAGAATCCTCTGCCAGTTCCTGGCCCGGAGGCCTGGTGTTA
-GTTAGCTCTACAGCTACAGAGAGAAATCCTGGAAGATGGCTTCAGGCCCG
-CAGCTTCCCAGGAAAGGAGGTCAGATGACATCTCCAAAGTGGTCCTTCCT
-GGAAGGTTTCAGAGATGATCAACCCCTAAGCAGGGCCCGTGCCTGGTGAC
-TCTCGGGTCCAGGGATGGCTGGCATATTCCTGGCACCGTCCCTGGGTGGG
-AGCAAGGGCACCATTTGGTTTTGCCTGGAAATTGGACCTTGGCTCCTTGT
-TCCAAACCGAATGTGGCTGAGGAGCACTCAAATAGTTTCAGGAAACACCC
-TTCAAATTCAGTttgctgggttcagcaagtcaaaatacaggaggattagt
-tacatttgaattatagataaacaaggcacttatttttagtctaagcatgt
-cctaggcaatattggggctaaacttataacaaaatttatttgttgttgac
-ctgaaattcatatgggacttaggtactgaaatttacctggcaatcTACCT
-CCAGTGCAGCTGACGTTACAAAGGGACTCTGGGTCGTGGAGCTGCCCGGC
-GTCCTGGCTGTGGGATGGGTACAGGCCTGTAGGCATGCAATGCACGGGCC
-CACAAAGGGCCCATGGCAGTGCCCAGGTGATCAGGACCAGACGAGACTGT
-GGGGCCAAAGGGAGGCTGTCACACCTGCGGGGCCCTGGGGAGGGAGCTGT
-CAGAATTGGGAGGTGGCTTGGATACGGTTGGGGAGCTGGTTGTCCTGGAA
-AACCGGTGGGTTGGGACATTATTTCCCAGGTTAGGAGGGAGCGGGGAAGG
-GAACGGGCTTTGCCAAGACATTCTTTTGTCTAATTATTTGGACTGGCACA
-GCATTTGGGCCCGATAGCACTCAGTATATCTGTGCGCAAATACCTGGCTT
-GACTGCCCTGTGTCCACCTTCCACCCTGGCCCCCAGGGCTCCAGGCTGAC
-AGTCAGACCTGACCACTTTACCTTCATGCTCAAAAGCCTGTGCTGCCTGC
-TCCTAATAAACTTGAAACTGGCTTGTCTTCTAAGCTGGGCCTTTGGTGGC
-CATGATAATTTGGCCTCCTGACAGtagctgctccagcatcattttttcct
-tcctttttagagagccatgatcttactcaggatggccacacactcatcta
-gaagaggccatctccaggcctattctgcagtcagatcagtccagaccact
-aggttctggccaaggcgaggtcagcagaagtattgcggtattctgggagg
-gccccttcttccaggatagcacacgtgatggttggtgcacacgcagccat
-cttggaccctgaggcaaattcagtaaggatccaagcatagtaagagaagg
-ggcctgagccctggaggattccattccccttctctctgccctgtccaccc
-cccgatttgtgcaggagagagaagtgatctttcacattggttaggccatt
-gttCCTTCTTTTTTTTTCTTTCCTAACTTTTCATTCTCCTCTTTTACTAT
-TTCTTGCCTGTTACTCCTTGAAAAGGCACTGCACCATCTTGCTTTGGTCC
-TCCCCCTGCCTCCTGCCAGGGAGACTTCTCTCTTTTATTTTTTCTCCACC
-TTACAAGCATCTGCTCAGTCCCCACCCTCAGCTCTCCCATCATCCTCCCG
-GGTAGATTCCGCAGTGCGCTCCATCCTGCTTCCCCCAGGCAGCCTTGGTG
-TGGTCTGTGTGCCCCTGGGGTGGGTGCCTGTCCTCCTCTGCTAAGCTCCC
-AGGGAACATGAACTACGTCTCCTGCCTGATTTCGCCATCATTCTTGATCC
-CTCTAAAACACAGCGTTTGCCAGACTCTCATGCTGTCAAATGCTCTTTTG
-CCCTACGCCCTGCTCATCTCATGGGCCTGAAGCTCTACGGAGGGGCAGAC
-GGTTTAACTTGTCATGGAAATCAAGGCTGCGCTGTGAAGGCACACCTGGC
-TGTTGCTGAGGATGCAAAAGAGAACCGAACACACCCTGGGCCCCCCTGTG
-GGGGCCGGGGGAGAAACGTCAGGGCCAAGGGCTGTGCCAGGGGCTGGGAC
-TCTAGGCTGAGGCACCTGAGGCAGGCCCTGAAGGTCGGCTCCTCCTCGCC
-TGAGCAGCTGGAGCCACCAAGCGGCACATTTTCCTTCAGGGGAAATTTGC
-CAATGTGTTTTGAATGACCGTCCAAAATGTGCGCCCAGAAGCCAGTTGAC
-ATAATGAAAACGCTCTTTTGTTGGAAGTCATTTTTCCATGCAGGTATGCA
-TATAAAATCGAATGTGTACTTGAGATGGAAAAACAGATGGTTTAACTGTC
-TCTAATATTGTAGAGGGGTCACCTATTACCATCATTTCAGCCAAAATTTC
-CATCATAATGGCGTGCCCCCGGAATCAGGGGGCCGTGGCACCTCCACATC
-GCCCGTGTGTCTGCATGATCTTCCTCCAGCAGCAGCGGGAGCACACACCC
-TGTGCCGGGGGCTTCCTGCTGGTGTGGATTAAACGGCTCTCAAGGGTCCA
-TGCACTGGTGTTGTTTTGTCAAGATGTGGCTTTTATTTTTAAAGATGCAG
-TCTCACCCTGGGTTCTTAGTGTGAGGGGGCGAGCTGGTGCCCTCCCGGGG
-CCGAGCCAGTCTGCAGCCCCCAGCTGTCTCTCTAGGGACCTGAGATCCAT
-CTGGGGGTGTCCTATTCTGAGCAGCGTGCGAGCTTCTCCCTGGCAGCACA
-TCCTCTGGCTCTGCAGCTGGGAGCAGGGCTCCAGGGAAGCACGAGGTGCT
-CAGAAGGGAGGGCCAGGTTGAACACTGGAGTCTGAGGAGTGATGGAGGTG
-GTGAACTGATGCCCGCCCCGCTGTTCATTTTCTTATTTGGCACACATTTA
-CCAAAACTCTAAGAGGTGGCCATCCCCCTGCCTCCCCATCTGGGCATCCA
-CCCCAACACCCCAGGAAGCAGCTCTGGTCTGGTTCCCCGCTGGGTCTCTA
-CACACCCCCAGCCAGCCTCCCCACTGCGAGTCCTGTCCCTCTTGGGCTCC
-TGTGAGGCCGAGTCCTCCTGTCCCCCACCCACCACCCTGCTGCCCCTCCC
-AGCTTCCTCCCTGGATGCTACTGGGAAGGCCAGAGTTCACCCTCCTCTGC
-CTCTCTGGCCCTACGTGGCTTCCTCACCCCTGTATGTGCACATGCACCTG
-CTCCCTGGGGGCCTCAGGCTCTTCCTGGTCTGAAGAGCCCTGGAGGTCCC
-CACAGCAGAAACATAACACACAACAAAGGCTCCAAAGCCACAGCTTCAGC
-CTCTATAGAGCTCAGGACCTGATAAAGTCCAGGAGGCTAGGCTGGTCCGG
-CCCCTCCCCTGGCTCCGAGAAGCAGCCGCGGGGCTTCTGTGGTCTCGTCC
-CTGGCTTTGCCCAGGTCCACCTTGTTCGTCTCACTGAGGAACATGGCTGT
-TCTTGTAGGGCACTGGGGAAATTAACATGAGCCTCCAGGCATCTGAGACA
-GTGTGTGCCACCACGGCCATGGGGCACAAGTCAGGCCCCTGTCCCTCCTG
-CCTCCCCATGACAGGGACACCTGGAGCTCAGTCCCAGGTGCTCTGAGATC
-TGGAACCTAATGCTCCACCCCCATCACTTCCTCCCTCCTGCCTTCCATGG
-CAGGGATACCCAGAGCTCAGTCCTGGGTGCTCTGAGATCTGGAACCTGAT
-GCTCCATCCCCATCCCCCCCATCGCTTCCTCCTCCAGCAACGCAGGGTAA
-ACATTCCCTGAGCCCCTTCACTGATGGAGCCCTAGAGACCCTCCCCGCAA
-AGGGCTCACATCCAGAGCAGGGCAAAAGCCAGGTTCATCCAGCGGGGAGG
-AAGGGGGAAGGGAAACACCAGGTGGGCAGTAGACAGAGCAGCCTCCAGCC
-CAGCGGGTTTAGCATGTGCTTCCTACCCAAATATACACGTGataatttac
-ttatttcttgtttgtcttgcttgtcttctgctagaatattagctcaatga
-aggtagggatttccttccttccttccttccttccttccttccttccttcc
-ttccttccttccttccttccttccttctattacattccaagcatcttgta
-cagtgcctggcatatgatgtgttttcaagacttaagcaaatgaatgaatC
-GACACACGTGTTGGTCAGTTGCCAAAGGCTTCTTCTCTCTCCGCTGAATC
-AGGCATCCCACTATCAGTGCGCAGGACCTGCTTCCAAATGTGTGCCTTTT
-CCGTGAGATTTCCAGACTCATGCTCAGGAACCTCTGGGTGTCCTGCAAAG
-TGAGGCTGCTACAGCAGGGGCTGACGGCCGGGACACCTTCCCTGGGGCGG
-CTGCTGGCCATCCTGTCTGATGGGCCAGATGTCTCCACCTGCTTGGATTC
-AGAAATCCCCCCGACTCCAAAACGAACCTTTAAGTGTGGCGCAACTTTCG
-GAATGAGCAAGCGTCAAACCCAGCAGCTGCCTCTTCTTGGGGACCACGGC
-CCGGTGGCTGAGGAGCTGCAAGTGCTGTCCCTGAGACTCTGTCATGCCTG
-AGGCTGCCCTTGCTCCCACGGACTGCATGGGAATTATCATCGCTGCCACA
-TGTCACAGAAATTTTTCTGTGAAATGCAAATCGCATTAATTTCCCCATTC
-CCTAATCCAGAACATTGAATTTTATGCTAATAATGCCAGCAGAATCTCAT
-ATGAAAACCAGAGAGGAATCACTGGGTCCTTCCCTTCCCCAGGGACTGTC
-TCAGCTTTGGAAATGTCACATGCACAAAGAGAGGGGCTGTTCCCCAAACA
-GGCCATTATCACAGCTACATAGTGAAGGGAGTGCTTTTCCTTTTAAAATC
-ATTGTATTGAGACATGATATCAATACAATAAATGCAATTCTTTTCAGTAC
-AGTGTAATGAGTATTGACTATTTTATACCTATGCAACCATCAAcctccaa
-tttgttctttttcaaaattattctcattattctagatcctttgcgttgtc
-ctataaatgttagaatcacttacatatttctatttagaaaaaaaaatcct
-gctgggatttgtattgggatggcattgattgtataagtcttgtcgggcag
-aattgttgtgctaaaaatattgtttcttctacttcacgaatttcctctat
-cattccatttatttagggctttcgtttcatatttttcttagtagtatttt
-atgattctaagtatacagatcttacactatttcaaaaaattatccctaag
-tatttcatgcttttttcatgctactgtaaatattgataattaaatttccc
-attggttcattgttagtatttagaaatacagttacctttgtggtcttgct
-gagatcattcagattccgtaggatattctgctcatgtcaccttcacataa
-aaatgttattccttcttcaatctgcattttcaggtttgtttctgtcagtg
-aataatgaatattgtcagatgcctgtgtcgaatttattgactttcttcta
-tattctgttaatatagggtgttacattgatcaattttctaaatccacctg
-acattcctgggaatgaatatacacacgtgcacacacagatatacacagac
-atgtatatatatatatatatatatatatatatatatatatatatatatgt
-ataggcatgtgtctatgtctttgtatacatatgtatctagattcaatttg
-ctaataatttataaacattggcatctatattcatgatatttttaaaagtt
-aacgttgtgtgattttcccctcatcataatcgtggtgatgctggacacat
-agaataagatggaaggtttttcttttctgttttctggaagagctcacttg
-ggactggtgctgtttcttccttagtgtttgacagaatccatcactgaatg
-catccaggtctggagttttctttgaggagagactataaattatgcattta
-atgactattcagatttggtactcctttcttcaatattgataatttgtgcc
-tttcaaggatgattttcattttgtctatgttgtccaatttattgcataaa
-tttactcatgtttcttttcatcctttgaatttatactgtgcctgtaatga
-gtcccttccttcattcacgatattggtatttatgtcttatctcgtttctC
-TCACtttctccttttttttttttttttagaggcagggtctcactgtgtcg
-cccaggctagagagcagtggcgaccatagcttactgtagccttgaactgc
-cgggctgaagccatcttctcgcctcagcctcccgagtagctggggccaca
-ggcaggcaccaTGTCTTTCctgaacaaactgaaagcaacccttctcagat
-ttatcagagagtttaggacacaaggtaagacactgcctccacagctgcag
-agaaatgcatgtgggtctagagaattacaccttcccaggaacagacgccc
-aggagcagaggctggcagccagactcaggactggtagaagcaccgcggag
-gctcagtgtggacaggcctgaatgtcaaacactcgggaggggaccccagt
-cttaggaggtcccacactgcccggacctcacagtgaatatcagagaaaac
-tcccctctgcttctagcaggggtgggaaaagctctggagctctgctctta
-ataggggctgctctcaagagaaaaagtgttaccagatcttaacctcctgg
-ggttttatcagtgcctaatgacccagggaggagacacacccaactccagc
-ccctctagctttcctgtcttgtttaagggagaggaaatcaaaacaaagct
-gagcagcacttgtgaaggtcacagtccaggggacacaggctccctaaaaa
-ctgagactaatcagggaccagaggataccccttccacacctcagcacctt
-atttaagaaggggagacccagggacagtagggaagaccaaagcaagagcc
-tcagaggagctttgaacctccaatacctatagctaattctcagccagaga
-aacttcaaactgacaagaaaggcttctttgtctcaatttcttttacccac
-tacaatatgtttacctctcagcaaaaaatgtagagccgggcgcagtggct
-catgcctgtaatcctagcactttgggaggcccaggcaggtggatcacctg
-aggccaggagttcgagaccagcctgaccaacatggtgaaaccccgtctct
-actaaaaatacaaaaaaattagccacgcgtggtggttcaggcttgtaatc
-ccaggtacttgtgaggctgaagcaggagaattgcttgaaccccagaggtg
-gaggttgcagtgagccaagatagcaccactgcactgcagcctgggtgaca
-gagcgacactccatctcaaagaaaaaaaaatgttgcaaggcatatcacaa
-aacaaaaacataatttgaatagaaagagccagcatgaataccagactcag
-atatggcagaatttttgggattatcaaaccagaagtaaaaaataattata
-attactttattaagggctataatgaaaaaaatggacaacatgcaaggaca
-gatgaataatgtcagcagagaaatggaaattctaagaaagagtccggagg
-aaaggctggaaataaaaaacactgtaacaaaaaggaagaatgccttcaat
-gggctcatctgtagactggacgaggctgagaaagagtcagtaggcttgga
-gacgtcaatagaaacttccaaaaccgatgaaaaaagaaaagaaccagaat
-atccaagagctctgagacaattacaaaaggggtaacatactcatcatggg
-aaaagaaaaggacaatataaagagaaaagaacacagtacatatttgaagg
-gatcatagctcataattttccaaaattaatgatagacaccaaaccacaga
-tccaggaaattcagagcatccaacaggataaacaccaaaaaatctacacc
-taggcatatcatgttcagactgcagagaatcaaacacaaagggacaatgt
-tgaaagaaccagcttttggttctattgatcttttccattgtttgaggttt
-ttcaattttattgatttctattcttatctttaatatgccctaccttttaa
-ttttaagtttcatttgcttgatttttcttttcttgttgtgtaatattaga
-tcattaatttcaaaacacttttcatttttcatgtgaacctataaaactac
-aaatttcattctatgcactgcttaactaaaggccactaaattttcattca
-gtttataatgttttataatttttcatgtgatatcctctttgacccatggg
-gtatttagaaaagtaatttaaaaattcaaaatatttagggattttccaga
-cgggctttactacttggtttataatttaattccactttagtcagagaaca
-tgctatctatgcttttagtccttttaaatgtactggaacttAATACATAT
-TAATTTCCTGTCTGGTTCAGATTTTACAACAGTGCAATTTTCCAAATCTG
-CAACCTGTCTTTAATTTGGGTTAGAGTGTTTTTCACTTTCTCTGTCTCTc
-ctctcctccccttcctccttcctctctccctctccctctcTGGTAGAATA
-TAATGagttttaacacacgcacagaatcctacaaccactgtcacagaagg
-tagagagtccttatacccgccgcagagctcccccatgctgccctctgtat
-tgaaaccccaccacatcctaacctctagtaatcgttgaacttttctccac
-caatataagtttgattctcaagaatgtcagctttcgagaggcttattttt
-cccttagcataatgccttagagatgcatccaactggtgcacatcaatagc
-ttatttccctttatgactaaatgaatcccaccgtatggatacctattatt
-ctatgcatgctaccgttgtaggacaggtgcgacgtttccagttaatgaac
-agaatagatagagctgctacaaacatccatatgcagttttgggtgtaaac
-acaagttttcatttctttggggtaaacacctacaaataaaattcctgtca
-tctggtaagtgtgtttaacttcattaaaaacagccaattttagagtgtct
-gtatacttcttatgtctgctagccatgacacaagagatgttcagctgctc
-acctttctcactagtacacactgttgcctgtatatgtatatattctccat
-tctagcaggtgtgcagtgatctctccttgtggttttgattcctatttcct
-taatgcctaatgatgttgagcaccctttcatccacttctttggtaattta
-tttggtgaagtgtctgctccaattatcttcccatttttaaaatgagtttg
-ttttttttttactgatgaatcatgagagttttacatatgtgcgtatttca
-tcaggtatgtgatttgtaaatattttctagcattcaataacattatcagg
-ttctttctcagtgtaaagcaaacttaaagccttaatttatctttgtttaa
-acggaatgtgcttatggttttgtcagtattctttccctaatcaagggcca
-tacatattcttcctatatttcttctaaaatactacagcctggctgggtgc
-ggtggctcacgcctgtaatcccagcactttgggaggacgaggtgggagga
-tcacttaaggtcaggagttcgagaccagcctggccaacatggtgaaaccc
-cgtctctactaaaagtacaaaagcaggccatggtggtgcatgtctgtaat
-ctcagctactcgggaggctgaggcaggagaatcacttgaacccgggaggc
-agaggttgcagtgaaccgagatcgtgccactgcactccagcctggacaca
-gagtgagactccatctcaaataaataaataaataaataaataaataaata
-aataaataaataaataatatttactgccttacattacagctatgagtcat
-tttaaggtaatttttatataagctgtgaggtttaggttgagttgcatttt
-tcttttagcatatggatgttcaatttaatgaaaatactatcttttttcca
-ttgaattgcctttgtaacatgtcaaaaatcatttggccatatttgtgtgc
-cttattttgaactctttgttctcttttattgacttaggtgtttatccctt
-tacccatgtcacactatcttgactactatagctttacagtcagttttttg
-agacagagtctcgctctgtcacccaggctggagtgcagtggcgtgatctc
-ggctcactgtaacctccgcctcctgggttccagtgattctcctgcctcag
-cctcctgagcagctgggactacaggcATtcttaaaatcaggaggtgtaag
-ttctccagctttgttttctttctcgaaattgttttaattgttttagcccc
-ttagactttccatatacattttatgatccccttgtctgtatctacagaaa
-tttttgccaggattttgacagaaattATCTAATTAAAGCCCTTCTGAGAG
-ATACAAGGAGGTAACATTTTCAAACTTTTCCTTGTtttaagcttgtcatt
-ttcagtttaagtattttatctagattttccaattcattaatactgaactg
-tctgaggaaacatccttttgtctcatctgtgtcttctttgatcactttca
-gtcttaagaatttcattgccattgtctctctttcttgtcttgactaagtt
-tactattttgcaagcattttcagacagtcatctcttttttgtcattaatt
-atcctgaattttactgcttagaagatttacaagaccttgtttttttctcg
-taaatatattttgaactcataaattcctcatagtgctttactatgtctca
-ccaatgaatatattttcattttcattctactctaaggtattcataagttt
-tatgatttttcccaaggcatattgagttgtctgttatttaggttcctatg
-agattttttttaacaatactcctcagtgaatagctcctaattttattata
-cattggcctggaagataatcagtatgatgttgattctttggaattgggag
-aatacttctgtaattttgctcatggttaatttctgagcacatgttgttcg
-cagtatgtttacacagaacgtgcattttctgattgttggtgtaagataat
-ctatcttctactgtgagctctttaattaggttatCTAAATttgctgattt
-tttcctacttgttctgtcaattacttgtagcgaagtgttaaaatcttctg
-cagtgttgctcgcgtattcctactctgcaggtggctcgctggctgttgat
-gtattttgaggctgtgttgttctgctcctacgtgctcgtggtcattacgt
-ctcctccatcacctgctcccttgaccaatacataactggcttctgtatcc
-ttccagttttgcccttgaactccagtgtgtctcacatAATGGTTCATCTT
-GGCTCTCatatatatatatatatatatatatatatatatatatatatata
-tacacacacatacacacacacacacatatatacacacacacatatacaca
-tacatatacatatatacatacgtatgtgtatatatacatacgtgcatata
-tgtgtatacatacgtacgtatatgtgtgtatacatacgtacatatataca
-catatatacatatatatgcatatatgtgtgtgtgtatatgcacatatata
-tatTTTTGCTGGTGTATCATTTTCATCACTCTATTTGTATTttttcacat
-tgaaaacatttcagaaagtgagaagttacaacagtgcaatgcataacccc
-atgccctgtgccggatccgccatggctgcaatgtcatcctgcccgtttta
-tctctgttgtaacggcagtggttgttgttgatgcgccattggaaggtaac
-tttcagaatcgtgacttcctgcctcaaacgcatcatccgtatcttctaag
-agcattcacatacctcgagtctcttactaaaatctctcactgacacaacc
-ctacagtgccgtgtggagtccatacccacatttcactccctcttcaaata
-atgtccttgttagcaactatgattgttcttagtcaatggctcaggattcc
-agcaggatcatgcattgcatttagttgtcacgtgttcatctcccttattc
-tgggataatttctcatccttctttcacaacattgataatcttgaggatca
-cagcctgactgttctgtagaatgtgctttcacttgtctttctggaatgtt
-tcctcgtgctcctctttttggcgggaaaacccatgaagtgaagcagagtc
-ctcctgatggacaatttgaggactgccctgctgttggtgctgtggctgcc
-atggcgcggtgagggtgctgaccacgagggcttctccaccgtggattctc
-caccttctccctcacaatcagtaaatcacctttggggCCGTCTTTTGGGC
-TGCATACTCATCTTTTTTTTTGAgacgcgatctcagctcactgcaagctc
-cacctcccgggttcacgccattctcctgcctcagcctcccgagtagctgg
-gactacaggcgccccccaccatgcccggctaatttttttctatttttttt
-tagtagagacggggtttcaccgtgttagccaggatggtctcgatctcctg
-acctcgtgatccgcccgccttggcctcccaaagtgctgggattacaggct
-tgagccaccgggcccggccTGCGCCCTCCTTTTTTAGACCAGAGCTCCGG
-CCAGGGAATTCGTCCTGAATCCATCATGTCCTGGTGGCTGTGGGTGGTGG
-CGTTCCTCCGACTCCCAGACCACCCCCGCCGGGATCTGCTGGGAAACGCC
-CAGAGCCCCACTCCTGCTCGTCCGCTCATCCTGGGCCTCGCCTCTTTTTA
-GGGTGAGTGTGGCCTCCTGGGGCCGCCTGTGGCTCCGTGTGCCCTTCCGA
-CCAGGCTGCGTGTCTCATGTGCCGCTGCCCAGGCCCAGCTCCTCCTCCTG
-CCTcacgcaccacacaacccacatgcagacacacacaccacacaacctgg
-gcacgacccataggcaccacacacatgcacacatatccacatcacacacc
-accacatacacaacacacaacccatgtgcaagcacaaccaccacacacac
-cacatatgaaggacacacaccacacaagctacacaccacacacaaataca
-cacaccacacacgaggacacacaccacacactacacacacacacaccaca
-caccacacatgcaggacacacaccgcacacactacacaccacatacaaat
-acacacaccacatgcacaggacacacaccacacacacacaccacacatgc
-aggacacaccacacatccacacacaacccacatgcaccacacaccacaca
-cacaggacacacaccaaacacatgcacacatacccagatcacacaccacc
-acgtacacaacacacaaccaatgtgaaaacgtacacaccacacacacagg
-acacacaccacacacactacacaccacacggaaacacacaccacacacGC
-AGGATATGCACCACACAACCCACGTGCAGACACACTCCACCCACCACACA
-CGTAGGacacacaccacacaacccatgcacaaacacacaccacatgcaca
-cacggtaaaccacgcaatacaccacacacacaccacacgtggacacacaa
-cacacatacacacaacacatacacaTGTGCGCATACCCTAAACCACTCTA
-Ccacacacacacgacacgcaccacacaacccatgtacaaacacatataca
-ccacacacaccacacaaacaccacacacacatgcacacacacaccacaca
-cacacaacctacacatatacacatcacacacagcagacaccccacacata
-tcacacacgtacacaaaccccaaaccacacaccactgcacagacaccaca
-cataccccatacccacaaacacaggatacacagcacacacatcacacaca
-ggtacacatcaccacatgcaggacacatgacacacatcacacCCTATACT
-AACACCGTGCACTGCAGACCCAGCCTGGGGGAGGCAGGATGGTGGCCCCG
-TCATGTCCCAGGGAAGCCGAGCCAGCCATGTCCTCAGCCCCTCCTGGGGC
-TGACCTGGTAGGCCTCAGCTCTGCCCTGCACCCGGGGTCTCCTCCTTAGC
-GGGAGGCAGCAGGACTGGAAATACCCCCACTGTTTATCTTCCCTCACACA
-GCTGGGAGAGCACACAACATCCGTGACTCTGCCCAGCCTGAACGCCCGGC
-CCACTCCCAGCCCACCGGGGGCAGCCCTGCCCCTCATCCATCCATCCCTT
-CTGAGCAGGCGGGGGTCTGAGGGACATGCCCGAGGAGAAGGGGCCCTGAG
-CCTGCCGTCCCCACTCCCGTCCCGGCCAAGCCTGTCCCTGAGGATAGTCA
-GGCAGGAGGAGATGCTGCCGTGACCCACTGCCCAGCATCAGACCTGGGAC
-ACTTAGAGCTGCCTTCCTTGGTTCAAACGTTTCATTTGGAAAGAACTCGG
-TCTTTAATTATGTCAGATTAAAGGTGCACGCTTTGGAGATTTATGGAGTC
-ATTAGGGATGCTGTAGAAACCATTCTCGGAGCTAAGCCCACACTGGCGTT
-TTCCACATGGAAATTTATATACAAATAGCCGAGGGCTTCGTTAAACAGCT
-CAGCTTGAAAATTTAACGGGTGGTCTTCTGTGCTGCTGGCGCTCGGCTGG
-CGGTGGGAGACAGGAGCCCAACGCTTGCCCGGCTCCAGGCCTCCCAACTT
-GGCCAGTGTCCACCATGGAGCCTCTCTCTGCTTGGACCCGTGTTCATCCT
-TCCATGCCTTCATGGATTCCCAGCATCTTGGAGCCCAGGGATTGGGTGAG
-ACTCACCTGCTTCTTCAGGGATGCTTCAAGAGCAAGTCCCAGGGCCTGGG
-AAGGAGAGGGAGTAGGGGACCCAGGAAGGAGAGGAAGTGGCCATTCTTAT
-CCCATTTCACCCACATCACCGGGCGACATTAGCTCCCAGGAACGTGAGTA
-CACTGAGCTCCTAGCAGGGTGTCTGTGCTCACAGCTCAGCCCCTGGGCCA
-GTGCTGGTCTAAGCCCAGCTCCGTCACTGGGCAGTGGACAAATCATGGAC
-CAGCTTTGCCTCAGTGCCTTGTTTGCACGTGACAACACACTTAGTCAGCT
-GGCCAGACCGCAATGCAGGTTCAGTGAGGCAATGGTTGGCATGGGCTTGG
-GGAGCCCACtgaggcaggagaatagggtctggaggcagggaacctaaggc
-cgattcacgctgacttcctagaactgaatcaaaagaaaacccccacctct
-ccatgcccaagtaacaaacgggtcagaggctacccctttacaatgccccc
-cctttccacggcatggcagatgaaaaatggaaagcacctctgactggctg
-cctcccacaaccaatcagactagttgcaggccaagttctcatttacatag
-ggtgtaaccaagtaaccaatgataaacctctagagggtatttaaactcta
-gaaaattctgtaaccagagctctagagccgcttactcaagcctgctccca
-ctctgtggagtatgctttcatttcaatcaatctatgcttttgttactttg
-ttccttattgctttgcctgtgcattttgtccaattctttgttcaaaatgc
-caagaacctggatgactcctagttgaaaccctccactggtaacaCGCTGA
-GTGATGGGTCCATTGTCCCTGGACGGCACGTGTGTCAGGCAGGGCAAAGT
-GAGGGCTGCACGCAGGCCAGTGTCTGACCAGGACCCAAGCTGGGCCCCCA
-GTCTCTGCTTCCGTCACAGGGATGGGAATGCATGCGGGAGGGTGTAGTGG
-AGGTAGGTGCCCGCGTGGAGGTTAGAGGACGTGTGTGGGCAACGCCGGGA
-TGGGATTGGGGTGTTCTGAATTCCTGGGGTGGGGGAAGCCAAGGGATAGG
-AGACCCAGGGCTTTCTGCAAATGGCTTTTGAAAATACACGTTTTTAGGAA
-TGCTAAATTCTGAAGGTGTCTAGCCAAAGTAAACAAGCACATAGGAAAAT
-TTTAAAAATGCATAAATAAAAACTCACTGTCCTTTAGTGACAATTACTTT
-ACTTCCAAGGGCTTTGATATAAAACCAGCACCAGTGAGGGGCCCCGGCGA
-TGGCGCCTGTGGGAAGAATGGGGTTGAGCCGATCCACCCCGGCCTGGCCT
-GGCCCAGTCTCCCCACAGGCGAAGCAGTGGTGATGACCCAGCTCCTCCTC
-CCCTGTGAGTTGGGACCTGGAGCCAGGGCCCCGGTCCCCTGCGCCAGTGG
-GTCTGGGCTTTCCTCTGAGGCACCACAGTTCCCTGGAGCCTTGGCCGACA
-AAGCACCTCCCTCCCAAGGTGAGAAACTGCAAGACCCCGAGCCACCGAGA
-GGGAGACCTAACAGGAGCCCCGAGAAGGGTTTGTCCAGCGCGTGCGGGAA
-ACTCGCCTTTGGATGCAGCTCCCTGCAGACCTGTCCTCACTGGAGTCTGG
-GGAAACGTGAAAAAAATACCCTCAAATCTCTGCAATCACCTGCCTCTTCC
-CCGCCCCCCACTAGAGCAATCAATACCTCTCCAGGTTTCTGGGGGGAGTG
-GGCCCTGAGGGGACGGGATTCTCTCCCCAAACGTCTCCCAACAGACAATT
-CCCGGTGcctgcctccctcctcccgtcctcccacactctccaatgccccg
-cgcctgcctccctcctcccctcgtccggcactctccaacgccccgtgcct
-gcctccctcctcccctcgtcccgccctctcCTTTAGTTGCCCCCAGGAGC
-ACTGACTGAGCACCTAGTGGGTGCCCGACACCACGGCTGGGCCTGACCCT
-GGGGCAACAGGGAGGTGGCCAGGTCCTGCCCAGGGGGACAAGGCCGGGAG
-TCCCAGCCCCTGGGTCCCAGCCCAGGAGGAAGCTCTGTCCACTATGGCCG
-CCCTGTGGTGGGGGCCTCTCTCTGCCAGGACAGCAGGTGGGGGTGAGAAG
-GGAAGGCTGACCTTGGGTCCTGGGCAGGCCTAGGGTCTTGTGAGCATGTC
-CCTGGTAAAGGGAAGTTCAGGCTGTGGAGCATGGTGCCTACATCAGATTC
-TGGGGGTTGGCAGCCCAGGACCTGCTGCTCCCTGGAGCTCCACCCACCTG
-GGGCTCCACCCACCTGACTTGGTGGCACCTTGGAACTGGGCCCTGAGCCC
-AAGTCAGCCTTGTGTCCGCATCTGCCGTGTCACCTCTGTTCCTGCCCCTC
-ACCCCTCCCTCCTGGTCTTCTGAGCCAGCACCATCTCCAAATAGCCTATT
-CCTTCCTGCAAATCACACACACATGCGGGCCACACATACCTGCTGCCCTG
-GAGATGGGGAAGTAGGAGAGATGAATAGAGGCCCATACATTGTACAGAAG
-GAGGGGCAGGTGCAGATAAAAGCAGCAGACCCAGCGGCAGCTGAGGTGCA
-TGGAGCACGGTCGGGGCCAGCATTGGGCTGAGCACCTGACGGGCCTCATC
-TCGTGAATCCTCGAGGCAGCGCCACAGCAGAGGAGTTAGTGGCACCTGGG
-CCGAGCAGAGCAGGAGACTGAGGGTCAGAGTGGAGGCTAAGCTGCCCTGG
-AACTCCTCAATCTGCCTGCCCCCTAGTATGAAGCCCCCTCCCTGCCCCTA
-CAATTCCTGAACTCCTTTTTTATTGACCAGCATTCCCCAGTGAGCAAAAG
-GACCTGATATTTATTCACACAATAATGTGGttaacaagtgtttatggagc
-atctattatgcggctgttctgggcacgaaggaagttatgatgctcagaaa
-atccagcccttgctctcctggagcctgacttcaaattgaggtcaggggaa
-gacagatgagaaacaaatattaaacgtatgaagcacacatatgacgcagc
-aagtgaggaaatgcggggcagggacatgaagattcagggggcagggaggg
-caggggcgaggcgagctctacttacagggggtcgggagaagcctcagtcg
-ccaggagctagtgcagcaggagccggaacaaggagctggagtcccgcagg
-cgggcactggggaagagcgtcccgggcagGACACCTGTTCAGCTAGTGGC
-CACTTCCCAGGTGCTGGGGACACCGAGGTCCAGAGGCGTGCATCCTGTAG
-CAGGCTAGGTCCCATTCGGGTGACCTCCTCCACACCAGGCTGTGGCCTTC
-CAACATCAAGGGATCTGTCTCGATCACCGTGAAGCCCTGGAAGAACAGCT
-GGTCGGGGGTTGGGGAGCTCAGCCCACCTGCCAACCTGCCCACCTATCTA
-TCTGCCCACCTGTTTGTTTCACAAGCAGGCCCCCTGCGTCGCTGGCACCT
-GCCTGGCACAGAGCCCTTGCTGTCTGTTTGATGAGGATCACTTGTCCTGC
-AGCCAGAGACAGTGGGGTTTGGGTCCAGCCCTGCCACCTCCTGGCAACCT
-AATTTGTGAGAGCCGTTGAGGGGGAGAATGTGGAGATTCCTGCGGGATGC
-TCCCGGCCATGTCTACAGGAAGTGCTTAGTAAGTGTCAATCACTGTATCT
-CCTCATCCCTCCGCAATCCAGCTTATGGGGCTGAGTCACACTCTGCCTCA
-GTAAACCATCTTCTTTCTAAGTTCCAACAGGTCAGGGAGGCTGTCTCACA
-ATTCTACGCAGTCTTCAGCACAAAATCTGTCTGTCATGTGTTTTCCATTC
-CCCATTATTcatccatccatccccatctatccatccattcatccaccatc
-catgcatccacccacatatgtactcatctatccatcatctatccaccttc
-taaccacccacctattcaccaacaaatccacccactcatccaccatccat
-ccatccacccacccattcatccatccatccccacccatctatccattcaa
-ccaccatccaggcatccacccgcccacatatgtactcatctatccatcat
-cttaccacccacctattcaccaaccaatccatccactaatccaacatcca
-cccacccatccaccatccatccattcatccacacaccatctatctattca
-ctcatccatccatccatccactcatctaccacccatccatccacccaccc
-attcatccattattaatccatccatccccacccatctatccatgtatcca
-ccatccatTAATCTACTCACATATGTACACATCTATCCGTCATCTATCCA
-TAATCTAACCACCCACCTACTCACCAACCAatccatccacccatccatcc
-acttatccaccatccattatccatccatccatcattcatccatccatccc
-catccatccattcatccaccatccattcatccacccacatacgtactcat
-ctatccatcatctatccaccatctaaccatccacctactcaccaaccaat
-ctatccatccacccactcatccaccatccatccattatccatccatcccc
-catccatccatccacacaccacatatctattcactcatccattcatccac
-catccatccctccatccatccactcacccacccattcctccattcatgat
-ccattgatctacccatttctccacccatctatccatccatccatctatcc
-atccatccatccaAACATTTATCTAAAATTTCATTATCCCTTCTGCCAAC
-TCACCACTTACTTTTTAAACACTTCCTGAGCTGAGGAGATGCTTGACTCT
-CTGGGTATCCTCCGTGTTCAACAGATAAACTCACTCCGTGTGCAGGGCCT
-TTGCTTCCATCTTTCAGGCATGAATTCTAATGAAGATGTGAGTCTTCAGT
-GTCTCTGGTATGACCTTGCCAGACCTCTAGTTAGGATGgtggttctcagc
-agtggctgttcatgaagccacttggaagtcattggaagaatgctggaacc
-caggcccctacgtgacatttggatttcactggtttggcatgtggcctcga
-cgttagagtttcttgaatccctcaggtgattatcttgtggagtcagggCA
-GAAGCCCTTACTGGATCAGGGATGCCGTCCTGATTGCAGCTGTGGAAACA
-AAGGCAGCAAGGCTTGGTCTCTGCCTCCTGAATCCCAGAGTCTGTGGGGT
-GACACAGCACTCAAAAGGTTTCACTTCTTATTCCCAGGCTGCTTGGATTT
-AAGGTCTGTGTTTGTGTTTGAGAGAGGTGGGTCACTATTTGCTGGGTGAA
-TGTGAGATGAGTGTATTTTCTCCCTGGAGGTGCCCTGCCTAGCTCCCTGG
-GGTGTGTTGTCCGTGATACAATTAATGGTGTTGTCAATGCCGTAGAAAAG
-ATCGGCGTCGGCCCCACGGGAGCCGGAAAGCTCATCCTGCCACTGAAGTC
-AGGAGAACCACAACTCCTGGGCCAGGGCTGCTGCCCGGAAAGGTGACCGG
-AGTCTGCTGCCAAATTGCCAGCCTGGAGGCCTCATTTCCATGCCATAATC
-CCATAAGCAAATAGCGTGATTGTATTAGTTGAGGGTAATTTTTCACACTT
-CACAGTAGCTGCTCAGTTTGCCTCCCGATTCTGCTGACTCTACTAGGAAT
-TTGCACAATAAAATAATGGAAAAACTACAATAACCAGTGAAGCCAAACCA
-AAAATCTCATTCAATCAAACTCTCAGAGCAGAGAGCACTCACCGGCCGCG
-GTCAACCCTCTCCCCTCCAGTGCCCCCGTCTGCAGGTTTCCTCCCTCATC
-CAGGCCTGGCAGGGCAACAGTTCAGCTTGCTCTGCGGGCATCTAGGGCAC
-CGCGCTGGGTTTACCTTGCCTTCCTCCTATTTTACTTGATTTCACCGGAT
-TTTCATACCACACACGTTTCTGAGCCACAAAGCCAGGTCCATGCATGGAG
-TGGGCTCCTGGTGTAGAACAGAGGTGGAGGCCTGGAAGAGACACCTCCTA
-GAGGCAGGACAAGGTCCTCAGTCCCGGGGCTGGAAATGCTCCCTGGCAGG
-CATGGCCAACTGGGGGCTTGGGAGTAGGAGAGAAGGCACCGTGGTCTTTG
-CAGGCTTCTCTCGGGCAAGGGGCAATTTGAGCTGGCAGGAGAGAGAAAGG
-GGTGAGTGTACTTCTTGCAAACTGAAGGCTGGGGATAGCTCTGCTTGTCA
-ACGCTGACACCTGTTAACTGCAGTGAGCTGGGGCTGCTGGccccagaaga
-tctgtccacgtcctaacccctgaacctgtgggtttggattcatttggaaa
-aagggcttttgcagatgtggttaagttaatgatttcaagatgagaaggtc
-accctgatgggcccaggtgggcccccaagtccaatgccaggtctcctctt
-cagggaatggaaagggagattcgggactcagacacatggaggggacggag
-cctgggactggagccgtgaggccgcaggaatgtgggagccaccagaggct
-ggaaggagcctagagcctcaggaggcagcacaaaggctggaaggagccta
-gagcctcaggagatggcacaggcccgaagacactttgagtttggatttct
-ggccccagactgtgagaggatgaacacaacttgctttatgcccccaagct
-cgtggtggctccttccagcagcCCCTGGGGCCTCGCACACGGGGCTCTCT
-CTCTAGCAGACCTCGCGTCCCATCTCACCCTTTCACAGGCCCTGTGAGCT
-CAGCCCCAGCCTGTTCCCATGCCCCAGAGCTAAGCAGTGGAGACTTAGAA
-CTGTCCGAGCCAAGCCACACGCTCAGGAAGGGAGTGAGTCGGAGTTGCCT
-TTCTACAGAATTTTCCTCGTCGAGCTGGCAGGCCGGGTGGGGGCTGTTTT
-TGTGGACGGGGGTCTGAGAGATTTGCCCAGTGTCGCAGGGCGTCCCAGGC
-TCTCTCCTTACCTGCAGTCAGCAGGATGGACAAGCAGGGGCTCCACACGA
-GGCCAGGGGCTGCGAGGTGGCCACGGCAGGCAGAGCATGAGAAGGAGGCA
-GAAGAGGAGGAGGAGGCCTTGGGGCTCCAGCCTGGGGCAGCAGCTGTGGA
-GGAGGCAGGCAGGGGAGGGAAGATGGAGGTGGGGCAGCATTCCCAGCCTC
-TGTTGTCTCTCACGTGGGGGGTGTCTTGGCCTCCTGATGGGATGGTGGGT
-CACTGGCGGACAGGAGAGGGGTACAGGCTGTGGGCCAGTCACATTCACAT
-TCAAGTTCTTTACCAGGGCAGAACCAGATGGAGGAACAAGGGGCTGCTGA
-CCGTGTGGGGGTCTCAATGAGCATTTTACATGTGTGTCCAACATTTACCC
-ACTGGGTACTAGGAACAACCACTAACCTAATAACAAACGTAGACTTTTTC
-ACTTTTTGTTCAAAGTTGGGGATTTTAAAAAATGTCCACAGCCAAGCGTG
-CCACCCTGCCCACCGCTCCGCTCCTCTGTGATGTCACCCTATTTCCACGG
-CCCCCAGCGTGGGTATCATCAGCCCCTCTCTGATGGAGATGTCTATGAGC
-CTCTGTGGAAACTTGCTTGTATCTAAATGCTGTGTCTTCTTGCCTAGTTT
-TCCTATCAGCAAATCGTCTCTCACTTTGGTGTAAATTAACTGTCCTCCTT
-CAGTTTTCTTTTCTGGTTTTCTAGACCAAGCAGCATCTTAGGAGACACAT
-TAATGGTTTTATATTGAAGTAGAGTAGGTCACTTTCTCCCAGTAGAATCA
-TGAGGCCCTACAAAGCTCCCCAAATATCCATGTTTTCCCCACCATCCCCA
-GTTTCCAGGGAGGGGCACATGGCTGATTTTCCTGAGTGAAAGGTGAGCGA
-AGCAGTGTGGGGCCCAAGATCACTGTGACCCGGTGCCTCACTCCCTCCTT
-CTTCCATTCCCGAGCTGGGCTGGAAGTTAAGGGCTGAGATGGGGGAGCTG
-CAAACGGAAGAGGGTGGGTTCCCCCATCACCACCCAGAGGAACCTGTGCC
-AGAGAGGCATGTGGCTGCCCTTGGGGCTGGAGTGTTGGTGGTGCCAGTCC
-CATTTCTTGGGATCTCTGAGGAAGAAGAGCAGTGGGACAAGTGGTTTTGC
-ATTTCCACCTCTGGGTGCTGTCCACATCATACTTATTGTAAAAGGTCAGA
-GTGGAAGCCTGGGGCAGTTCCCAGCTTGTCTCTGATCAGTCACTGCTCTT
-ATGATGTAGGGCACCATTTAACACAGGGTAACAAAGCCTCCGTTTATCAG
-TCCAAAGGCAGGGAGTGCTTGGCTGGCAGGgtgactctgctacctcatta
-aatggcttcaaactctgagctcaggatagctgctctagctcctgccatca
-catctgcatcccagctagctggaaggaagaatgggccaaagagagtgcat
-gcccgttactttgaagaacatttcccagaaatggggcccattccttgtgc
-ctaggtcccatgggacagacctaatcacacagccacaccacgctgcaaga
-aagtccagaaaagcttgcctctatctgggcagagccatgtgctcagttgc
-actcgagggtatctcagagtttaagaggaagtgagtgactggaggttggc
-agagagctggcagccAAGCCTGGGCTTCTCCTCCTGGTGGGTCTGAGGCC
-AGCTGGCATGAGGTCTGGTCGAGAACTGCCATCCTGACCCAGAAGGCAGG
-AGGTGAGGCTGAAGACTTGGTGGAATTTACTGGAAAGAGGTGTTTCCAGA
-GTTCACTGGTCTGTGTTTTTCTCAACATGGGCACTGCTTCCTTCAGCACA
-GCAGGTAACCTGCTGGGAGGAACTGGAGCCAGGAGCAGCTTGGTCACTTT
-CTGGTCGTCCATGTCACACTTGTCACGGATAAAGTCTGCAGGTTTCAAAG
-TGTGTGGTTCCCCTCACTGTATCCCAGGAGAGCTACATGCTGGGGGTGGA
-GGTCTGCAGCAAACCTCCAACCACACAGACGCTGGTTGCGAGTGTTCTGA
-CCACAGCACGGGCAAGCAGGGGTCACTCGGAACTCATTTTGCTAGATGGT
-GTTGGATAATTCCTGTTCCCTTTTTTCCCAACTGTTCAATGGCATGCTTT
-GTTTTGGATAGAATCGGACTCCCTCCCCAGCAGAGAGCGGGAGGCAGGCA
-TTGTGATCCCTGTGCACTACAGTAGCTGGTGTTCTAAAGATGCCCTGCGT
-GGCATGGCCTCATATTCTGGAGCCAAACAGACTTCTGGGGGGATGGTGTC
-TCCGTTTCCCCAACCCCAGGGGCCCAGCTGGGAGGAGACAGCAGGCAAGG
-GTGTCCCCTGCTGATCTTTCCACAAGACCTGCACTCAGTCCCCACATCAA
-TGGGCACTGCCCACCCAGACAGCACCTACTCCTGTGGGCAGCACCCAGAA
-CCGGTGCTCACGATGGGGAAGTCAGGACTTTGGAGAAGCGGGAAACTGGA
-GCCCGAGGGCAGGGTGCTCAGGAGAGACCCATCCAGACAGCAATGCTCAA
-GGCCAAGTGAGACCAACGACCTGGAATCCAGGGAGAAAACAGTGCCAGGT
-ACTGACCACACATGGGACGAGGGTGCTGACCAGAGGGATGAGGGCACTGA
-CCACAAACAGGGACGAGGAAACTGACCACACACAGGGTGAGGGTGCTGAC
-CACACACAGGACGAGGGCACTGAGCATGTACACAGGATCAGGTATCATAG
-GAGGGAGTGAAGAACTCCCAGCAAAATCCAGGAAGGAGCACGGCAGAGAG
-ACCTGGGTGTGGACGGAGAGACCCGGGTGTGGACAGAGCACTGCAGAGAG
-ACCCAGGTGTGGACAGAGAGACCCGGGTGTGGACAGAGAGACCCGGGTGT
-GGACAGAGACCTGGGTGTGGACATGTTCTTCTGTCATGgggaggaagaga
-agggagagcaagaaggcagaggagaggaaacaggagggagcgagggaggg
-cgagagggagaACACCCCTCTGTAGTAAGAGATGCATCTCGGGCAAGCTG
-CGTCCTTCCTCTGCTGGAGGCCCCCATTGCTCTACTGTGCTGGGTGGTGT
-CGGCAGGGTGGCAGATAGAGGGGTCTCCTGGGCCAGCCCATGTGTCCCAG
-GAGTGAGGTCCACTCCCGCTGGGCCAGCCCATGTGTCCCAGGAGTGAGGT
-CCACCCCCGCTGGGCCAGCCCATGTGTCCCAGGAGTGAGGTCCACCCCCG
-CTGGGCCAGCCCATGTGTCCCAGGAGTGAGGTCCACTCCTGCTGGCGACA
-TGAGCAGTGCTTTCTCTAGAGGGTATGGGGAGGCAGAGGAAGCCCCTGCT
-CTTCCAAGCAGCAAGGAAGGGTGATAGCCTGCACCCTTCAGGCCTTCACC
-ATGGCTGCACTCTCTTCTGAGTGTAAGAAGCTTCTACTGTAACAGACCCT
-GGCAAGCAGGAGCTGCGATGGGGCAGCCCAGACCCAAGGCACAGGGAGCT
-GAGCCCGGGGCAGGCCAGGGCTGGGACCCTGCAGGGGCCGATGTAGGGCT
-GTAGTCATTACAGGTGCTCGGTGGCCTCCCTACGAGGGCAGAGCCCATCC
-TCAGGAACGGTCACCACCGGCCTGGCCTCCGCTTCTTCCCTGGGCAGTGT
-CTCCCTCACACCATCTCTGAGCCTCAGCCCTGTCTGTTCAGTGAGGGGCT
-GAACCGCTGCTCCCAGAGGCCCCTCTGCCTGGGCAGCGTCCGGCCTCAGG
-CCCTGACTGCAGGACGTTTGCAGGACGATGCCTCCTGCCTCCCTCCGGGG
-ACAATCTCTCACATCCTCCCTGTTCCTTTCCATGTGGCCTCTGGCCGCCT
-CGCATCTGAACTGCTGAAGTCCTGTTTCTCTGGGCCTCATCCTCTCCTCC
-ATCAAAATGAGGAACCGTGGACTGCAGGAGCATTGAGGAAGCCACGTGGA
-GTCCCCGCTCTGTGTTGAGCCCCGTAGGGTGCCCTTCCTGTGGGCGGCCA
-TTCTGGGCGTGGCGCCCCCTGTCTGAAATCAGCAGCACACCAGCTCCCTG
-TGCTCCGTGTGACAAGCTGCCAGGGACAAAGGTAGCACCCGGACAAGCAC
-CCAGGCTTTTCTTCCTCATTCTAAACCCCATTGGAGCCGCAATCTCCAGG
-TATAATAGCAGCTTGTTAACAAATCCTGTTTGTGTTGCATTTGCTGACAG
-AGAGACTCCCCTGGGACCACAGCAGTAGGCACGGCATTCCTGTGACAGAA
-ATCAATGCCACAGATCGAGGGATGGAGCCACCGGCTCCCCAGGCTGAGTC
-CCCTTCCGGTAACACGGCCACACTCCTTCCTCCCTCCAAGAAGATCCCAG
-GGAGGGCGATCCCGCCTGGATGCGTTCCTCACTCCCTTTCAGGTGGCCCC
-AGACGCTGGGCATTGGGAGGTGGCCACATGGGGACATGGACATGAAGGCT
-GGGTAAGTGTGGGGACCAGGCGAGCTGGCTGCTGGACACCCACCCACCCT
-GTGAGCTGCACCAGACCCTACTCTCTGTGCTCTGGACCCCAGGAAGCAGT
-CAGGATTGGGGGGGTCCCACTCACAGGCCCCGGCGCCTTCCACCTGGGCA
-GCTGCCATGTGCACCCTCAGGCTTCAGACTCCTGGCCACGGGGGCGGTGG
-TGTGGACCCCAGGCCGTGTGTGCAGATGCAGCAAGGTGACATCAGCCATA
-CATTCACTGCGTCACTCCTCACCCAGCTCCTTCTCAGAGCCTCACTCGGA
-ACAGCACATCTCCCATCTCAGCTGCCCTGGCCACTTCTGTGTAGGAGGCA
-GGAGGGATACTCCCACCACCCCGACCCTTACAGATAACAGGCTCAGAAAG
-GCACCTGACCCCACAGCCCTTCAGTTGGGTTTGAACCTGGGTTGCTTGGT
-TTCAAAGCACAGGGGTTTGTCCTGCCCAGTCACACCCCTCAAAGTGTGGA
-TGTGGGAAACACCGCTGAGGAGCCTGGACATCCAGGAGGGCTCAGGAGAC
-CCTTCCTGACTGCACCCCGGACAGGCCCACGACAGGCAGATGGGACACAG
-GTCAGGATGTGGCAGGCACACGGCCTGGCTTCTAGACACTTCTCAGACCT
-GGGAGAGGAGAGAGGGACAGGTGGTGTGGGCGTGCTGGAGGCGGGAAGGG
-GATAAGAGTGTTGGTTATCACGGGCAATGTGGACACACGGCCAGGACAGG
-GGTCCACAGTATTTCAGGAACCTCCCACAAGACGAAACTTCTAGACAGAC
-TTCCCTCCCTGTGAGATACCTTAGGCTGTAGTGGAGAGGTCGCTGAAAGA
-ATCGATATTTCTAGAAATTAGCTTTGGGATCAGTTTGCGAAGCTGCATCT
-ATGCTGACAAGTGAATGAAGCCCGTGGGCAGGGAATACACTGAGGCCTTA
-GGCCTGCAGAAGAGCACAGGTGCACCTGCGCCACATGGGCCAGAATCAAC
-CCAGGTGAATTCCAGCCCATGCCATTGATGCCAACCATGGACGAGGAATC
-CAGCTGGGGCTGAAGTTCCGCTACGCTGTCAGTTCCACTGGGGATGTGTG
-TTGCTCCTTCAGCCTCTGCCAGACACACAGGCCCGGTTCCAGCACCCGGG
-TGTTTGAGGGTGAGTGTGTGGGAGTGAGGCTCAGGAGGAACTGTGGGATC
-CAAAGTCAGTGAAAACGGTGAGGGTGAGGGAGGAGGGAggatggtggagg
-gcaggggtgagtgaagggcagaaaggggcgatggggtgaagggcagagag
-gggtgatggggtgaagggcagtgggcaatggggtggagggcagagtgggg
-atggggcggagggcagggggtgatgggtcgaggacagaggggggatgggg
-tcgagggcgggggggatggggtggagagcagagggcatgaggcagtgggc
-agggggtggagggcatgtggggacagggcaggggtgggaggtgatggggt
-ggagggcaaggggggacatggcaggagcagagggggtcggggcagagcga
-gggggaatgggacACCATTATTGGAGACAgtggcagatataagcactgga
-gaaaagcaggtaaaggatgtgcggggcaggggattggaggggacgcttga
-gcagacactgaaataatccgttatgggaagcgttatgggagaatgggagc
-caggaactgaaattgcagggggtgagCGTGGTGGGAACTCTGAGGGGCGA
-AGGGTGAGGCCGGCATCCTGGTGTTCTCACACAGGGCAACCTCTCATTTC
-ATTTCCGTTGTAGCCAGTGTGTGAGTCAGCCAGGGAGCCTCAGCCTTTCC
-CACTGGCTTCAAAAAGATGTGGAGGCTGATGGGGAGGAGGAAGGTTCCCC
-AGAGCAGGAGGCCATCTGATGTAATGAACATGCCTTCCTAAGACGCTGCC
-TGGGCCGCAGCCAAGTGTGGTCGCTCTCTGAGCAATCGATGCTGCCACAA
-AAGGTCCTGGCAGCAGCGGCACGACCCCTGCACCCCGCCTGCTGCATCCA
-GGACAGCGCCGGCCTCCCACGGCGGCTCCCGGGAGAAGAGGAGACGCCAC
-TTTGGCTGCTGTCCCGGGGAGAGGGGGGACAGTCCTTCGACTTCATGCAG
-GGGCTTGTCAACCCCAAAGCTTCCTCCGCCGCCATCTGGGTCTGACGCTC
-TCCGCTGGAAGGTGTTCAGGAGCTGGCACCCCACGTCCACCAGCGCTGGC
-TTCAAATCAAACAATAAACAGCATTTAAAAAAAATTAGTCCCACAGGTGA
-AGCCAGAGTCCCCTGCAGATGCCTGTTCCTTCACACTCCGCGCCTTCCAC
-TGCCTTCCAGTGGTTGCACTCTCAGGCCTGTGGACGCACCTCGGCCAGAG
-CAAACCTGTAGCCTCTTCCCCAGCACGAAAGGCAGAAGGTGAAAATCACC
-Aggtccctgtaccatcaggaaggacctgaacagcctctgtcaccgtgtat
-aacaagtctcactgaCTCCTTCTCCGGAGCAGGGCTCCCGGGTCTGAGGC
-AAGGCTTCAGGATGCTTTCCCGGCTCAGCCGTGGCCCTCCATTACCTGCC
-CTGCCCGGCTTCTGCCCCACAGGGCTGCCTGGGGTCCTGGCCACTTTGGG
-TGAGGAGAGGATGGCTCCAGCCTCCTGACCTTGGAGGCTCCACAGACAGA
-AGACGCCGCCCCGGGACATGAGGGCCCTGCCTGGCTTTGACCCTCCTCTG
-ATAACAGGGGACAGCCGATGCCCTGCTGGGCCCACGGGGAACAGAAGCCA
-GTCTGGGCTGGGCCATCCCCTGCAAGTGGTCCACTCCCCCCACCGGCTGA
-TGGTGGAGTCTAGGCTGGCCTGGTGACATGTGGGCCTCCAGAGGTGACAG
-AAGGGATATTCAAACTTCCAAGGCCCCAGAGGCCTCCACCCCTGCCCAAG
-CACAGTTCAAACCTTCAAGCTCTTGGGGGTACTTTTGTGATGGCTGGGTT
-GGGGCTGGTGCTTCATCTTCTCTTCCAGTCAGTGGAGTGAAACAGCAGGT
-CCATCTTGCATGTCTGTGTCTGCAGACGGATGGTCCAGGGCCATCCCTAC
-ACCCTCCTGTGCTGGGCCCGCAGGGAAGCCAGTTCTACCAGCAGTCTGCA
-GGTAACAGGGTCCCAGGCCAGGCGCTCCCCTTGACCCCCTGTGGGTTTGT
-TCCTGCCACCCGCTCTGCCCCTCCCTGGGTGCCCCCCACCCCCAGATCTC
-CTGCAAGATGGACGTCAGGGTCCTGGGAGAAAACAGTTCTGTGCTGGGGC
-CGCTTTGACTCCCAAGGACCCCGTGTCCAGAAGAACGGCAGCTTGTAACC
-CCATCCCTGTAATGAGAATGAAAATTAATTCAATTTGTATCATTTCCTAT
-AATGCACCATCCTCGGCCTGAGATGGAAATTGTGAGATGTTATTTTCTAC
-TGGAGGCGCGTGGTTTTTTACAGGCAGTGTTAGAATTTTAATCCTTCATG
-TTCTGAAAAGCATTAGAATCAGTTAGCCTTCCACAGTGCACCGTCTCCCC
-TCGCGATGAAGCCTGTTCCTTCTGAGGGGCTCCCGTTGGAGGACAGCAAA
-GGGCCCCACAGTGGAAGGGGTCTTGGCTCTCAGAGCAGCACCAGGTGGCC
-CAGACAGGACCCAGACATCGTCAACGCCTGCACCTCCAGGGGCCAGGCGC
-CATGTGTGAATGGCCAAGCTCTCAGAAACAGGGATCATCGGATGAGAGTC
-CCCCCGGGTGCCTAGGGAGCTTCCGGGGTCTCTCCTACTCTGGTAGGCTC
-TGGGTACAGGGTCCACGATGGCACACAGCTCCAGAGGCTGCACAGCCCTG
-TGCTGCCCCGAAGCTGGGCTCCTCTGGTTGGGGCTCCCCTGGTTGGGGCT
-CCCCTGATCTGGGACATGAATTTCTCTCCCAAGTCCTTGCCACTGCCTGG
-GGACATCCACCCTCCACCTGTGCGGAATCATCAACACACCCAAGCACAGC
-CTGGCCGCCTTCTCGTCCTGTGGCCCCGCCTACAGCCACCTTGTGAAAGG
-GGCCCTCAGTGTTGAGCGTGCCCAGagtgctttccggggatggacctcac
-ctcattgcctcccgaaggaaccctgtagcagcagctggaccaccctccgt
-gcttgacaaacaaggaacctggggcttagagaagctggatgacctgccca
-gggccacTGACATCCTGGGTGGGCACCTGCTCCCGGCCACTGTCTGTGGG
-CTCCTGGGTTATGGGGGGCACCAGTGCTGGAGTTTTACTTTCTGGGAAAC
-GTTCCCATCTTGATACATGGAGATggtgcagtgtggcactgggggacaca
-gacagtgactctgcactggaagcttgaatcttgtcccctgttccatgctt
-gtgtctctgtgggtgagtggctttatcttcccgtgcctctgtttccctaa
-ctgtaaaagaaaaataatttcctccctaccctacagggtcatcagggtgt
-ccagcattaaatCACCCAGTGGTAGCTCCCGGCATGAGTGAGTGGTGTGT
-GACGAGGCTGTGGCTGCAGCCTTGAACCTCAGGATAACCCTGTACTCCTC
-GTACGCTAAGGGGAAACTGAGGTACATGCCCACTTGCTCACGGTCACGGG
-GCAGAGGCCGACGAACCCATGGCACCTCTCAGGCCCCGGATCTGCGCTGG
-CTCCCGTCCACTGCCTTGCTGTGGGCATGAGGAATGGAAACGCTTCCAGA
-GCAGGGCCTGCCTCTCGGGGTCTCCTCCCGGCCAGGTGCCCTGCCCAGGA
-GTGGCGGCTCCATCCGTCCAGTGTCTTCCACCTGGACATGCACCCCGTCC
-TGGCCACCTGAGCGATTGTTATTCTGCACACGGAACACCCAGAGGCCTTC
-TCGAGTGGAGCCGTATTAATAAGTGTGCACAAGGGCCTACCGGGTATGGA
-AATTCACAGTGAAGTTAATGATGTCATTAATATTGTGCCCGGCTCCGCAG
-AGGCCTAAGTGGACCACCCATTCCTCGGTGGCCATTTTTCAAGCTGCAAT
-CTCGTGCTGTTCCTGGAAGAGCTGAGTGCCCTGCCACTAACTAGTCCTCC
-ACAGAAGACCTTTACGCCGATAATGCTCTCCTTTCCCGATGAACTCGCCT
-CTGCTTCCCCGAAAAGTGCTCCTCCATGCTGGCACGAAGCAAGCGTCCAG
-TTAATAAAGTGCGTCGTAGGGAGACGCGTTCCTCCACCAGTTCTCTCTGC
-TGGCCCCGCCGAGCCCTCTCTGTGCTATCGAGAGAACCACCCGGCTGCTG
-CCCACACCGGGGAGGGCACTGGCCCCAGACCAGAGGGGCGTCACCTGCCC
-TGGAGGACAGCACACTTGCCACCTGTTTTCCTAATTCAGTGGCATAAGTC
-AAATACTTGCTACCATACAAGCTGAAGGTGTCTGCTGTGGCGAACCCACA
-TCACACAAGGTGTGACCTGAGGCAAACCAGTGGGGATGTTTACTCTtctg
-ggtgaaactgggcctgtattcgaggccaccttccactaagtagcagctgt
-gggaccttggaggaggcactgcttttcctgatgcagtttctgtcaatgtc
-tgtggggatattgatacccacgccacaggCCACACAGACCCCATGGGCAC
-CCATGCTACACACCAGGTAGACACAGTGGGGTGGTTGTCTCTACTCACAG
-GCTCCATTTTAAAAACCAAAAGCAGAACTAACAAACAGAAAAACCCACAC
-AGCCTCCGTGAATTATTTAGTAATGATTAACTTCAATTTTTGTCTACTGA
-GGAGATGTACCTAGCTCCGAGCCGCACCCTCTGCAGAGTCCGACAAACCT
-GGTGCAGCAGCGCTGAGCTGATGGAATTCCCCCAAAACACCCAGCCCTGA
-GCCGATAGAATCCCCCCAAAACACCCAGCCCTGAGCTGATAGAATCCCCC
-CAAAACACCCAGCTCCGAGCCGACAGAATCCCCCCAAAACACCCAGCCCT
-GAGCCGATAGAATCCCCCCAAAACACCCAGCCCTGAGCTGATAGAATCCC
-CCCAAAACACCCAGCTCTGAGCCGACAGAATCCCCCCAAAACACCCAGCC
-CTGAGCTGACGGAATTCCATGCAAACCACCCAGCGCTGGAGCTGATAGAA
-TCCCCCCAAAACACCCAGCCCTGAGCTGATAGAATCCCCCCAAAACACCC
-AGCCCTGAGCTGATAGAATCCCCCCAAAACACCCAGCCCTGAGCAATAGA
-ATCCCATGCAAACCGCCCAGCGCTGGTGCCTGTGCCCTCTGCTCGTGGCC
-AAAGCTTCGGTTTCCAAGTGCTCTTGTAGGTTGTGGGAGGAGACTGTGGA
-GACCCACGGCCTACTTTCCTGGGCTCCCCAGGATCCCCAATCTCCAGATA
-AAAAACCACTGATCCAGGTCTCCTTTCCCTCAGGAAGAAGGAGGACCCAG
-AGGACATTCCTCACCCATTATCCCAGGTGGGGATTCCGTCTGGTAGCCTT
-GGTGGGCACTGCCCCGGTGCCTTGGGTTGGGGGTGATACGGCTCAGGGCT
-GCAGGCCAGGCCCTGGAAGCAGGGAGGAGGCTTGGTGGGAGCGTTTAGGA
-GCGCTGTTATCTCACGTGCTCGGCAGACCTTTGGAGGATGAGAGGCTGTC
-CCACCGTTGGGGGGAAGGCACTTCGTGGGTGGTCCTTTTCAGTGCGTGGC
-TCTCCGTGTGGCACCACTCTGCAGACCCTCCAGAAAGCACCTGCCCAGCG
-GGAGGCTCCGCAGAAGGTGCCTCTGCTGTGAGGAGGCCAGAAACTCCCAG
-CACCGCGGTAGGGACGTCGTTGAATTGAACCTTTCTAGATGAGGCTGGTC
-CCTCAGCAAAAAGATCCCATTTCAGCACAATAGGTTTCCTTTTCCCATTT
-GGAAGCCTGAGATCAGAGGACTTGTGACAGAATAATTCCTGTGATGGAAA
-GTAGCATCTTCCTGACAGTGGGTCTGCCGGCACGGACGGGGCCCCCAGGA
-CCGGGACTTCTGAAAAGTGAAGGCGGCCGGACAATACGGGCAGTGGCCAC
-AGTGCAAGGACACTGTGCTGCGTGCTTTCAAGACGCTGTGAAGGCCAGTG
-CGAGAGAGGCCTTGAGCCACGGTGCCGGCGATGGGCGTGGACCCAGGGTG
-CACCCAGGCAGCAGGCCTGACCCGCAGCTCCGTGTCACACCTGGAAACGC
-CGTGAAGGGGCCAGAGGAGCCTGCCCGTGGCCCAAGCCCATGTGGATGGA
-GTGCAGAATACACGGGAGGAAGAGGCCCAGCTCCTGTTTGGGCTTGGTGG
-GCGGAGGTGCCCTGGGACTGCCAGGAGGAGGTCTCAGGGCTGGTTGGGGA
-ACGTTGCTGGGGAGTGGCAGGCTGTGTGGACAGGAACATTGCTGGGGAGT
-GGCAGGGGAGCCTTTTGACTGATCCCACTGATGGGCCATGAGGAGCAGGA
-CCTGTGTCACTTTCTGGCTGGAGTATACAAGGCAAGAGCGGATTTTGTGT
-GTCCTGCTGTGGAGAGCTGGGGTGAATGCCAGGGTCTCGGGAGGGGAGGA
-GGTGGAAATGGAGGGAAACTGAGAGCCCACAAGGGCTTGGGCCACAGACA
-GCCTCCTCTGGCCCCTTCACGGCGTTTCCAGGTGTGACACGGAGCTGCGG
-GTCAGGCCTGCTGCCTGGGTGCACCCTGGGTCCATGCCCATCGCTGGCAC
-CGTGGCTCAGGGCCTCTCTCGCACTGCACTTCACTGCGTCTTGAAAGCAC
-GCAGCACAGTGTCCGTGCACTGTGGCCACTGCCCGTATTGTCCGGCCGCC
-TTCACTTTTCAGAAGTCCCGGTCCTGGGGGCCCCGTCCGTGCCGGCAGAC
-CCACTGTCAGGAAGATGCTACTTTCCATCACAGGAATTATTCTGTCACAA
-GTCCTCTGATCTCAGGCTTCCAAATGGGAAAAGGAAACCTACTGTGCTGA
-AATGGGACCTTTTTGCTGAGGGACCAGCCTCATCTAGAAAGGTTCAATTC
-AACGACGTCCCTACCGCGGTGCTGGGAGTTTCTGGCCTCCTCACAGCAGA
-GGCACCTTCTGCGGAGCCTCCCGCTGGGCAGGTGCTTTCTGGAGGGTCTG
-CAGAGTGGCGCCACACGGAGAGCCACGCACTGAAAAGGACCACCCACGAA
-GTGCCTTCCCCCCAACGATGGGACAGCCTCTCATCCTCCAAAAGTCTGCC
-GAGCACGTGAGATAACAGCGCTCCTAAACGCTCCCACCAAGCCTCCTCCC
-TGCTTCCGGGGCCTGGCCTGCAGCCCTGAGCCGTGTCACCCCCAAATTTC
-TGTGGTGCTGAAATCCTAACCTCCAGTGTAAACGGGATTAGCGCCCTCAG
-CAAAGGGACTCCAGAAAGAACTCTTGCTCATTTTCACAATGCAACAACCA
-AAGGTGAAATCAGCTGTGTGCAACCAAAAGAGGACTTTCACCTGAACCCA
-CGCGCTGGCTTTGATGGCTGAAAATCATCTGCGTGCAACCAAAAGAGGAC
-TTTCACCTGAACCCACGTGCTGGTtgtgatgatcacttttgtgtgtcaac
-ctggcttagccacggggtgcccagacagctggtaagacattatttctggg
-tgtatctgtgaggctgtttctggaaacgattagcagttaaatccatagac
-tgggtgaagacccaccttcccccgtgtaggcaggtaccctccaaggctct
-gagggccccagtagaacacaaaggtagaggcagggagaatcctcctctct
-gtcttctgctcagcattggcgctcctggcccacgccttttctgattctcc
-aacttgcagaggtcagactctgcataattgtgtgagccaattccttatga
-taaatctccttctatacatctctatacacgccccactggccctggttctc
-tgaagaactgtgatacgctggcaccctgatcttggacttctgaggctcca
-gaacggtaagaaataaatgtttatcacttaagttccccagcccgggatat
-gttgttataatcgcccgaaccgactgagacaggcatgaatcccacgcgtg
-ggggacccaccctcacgacctgtcacctcccaaaggcccagctccctata
-ccatgtcctcggtgggtagggtttcaacatttaaatgtgggggacactca
-gtccataacaGAcccagctccctattccatgccttggtggatagggtttc
-aacatgtgaatttgggggacgcactcagtccataataGAAGCAGAGAGGT
-AGCCTCCTCAGGCTTCGACACCCATCCCCTGGGTACAACCGAGGGACCCT
-GGGGGAAGACGTTACCTTGTGTTTGTTGTTTTAAATACATTTTGCTTTTG
-TAATATAAAGTGAGTATAGAAAATACTATATATATTTAAGTCTATGGAAC
-AGTTTATGAATACATTGTACTGCTAGAAATGCAGGTCACATTCCGTTACT
-AATAAACAAGATGATTCTGCTGACCTCCTGCCTTTAGTCGTGGGAGGCCA
-AGGCCGCATCCATCCCTGCAGGTCATGAAGCCTTCCACTGCATTTTCGCC
-GTTCTCTGATCTGGGGTTTTTCAGCCTATAGAACTGCCTCTCCCAGACAA
-GAGTGAAGATGGCGAAGGGGTGTTTTAGTTTGTTTTTCTCTCTCTGCTCT
-CTGTTGCCTCACTCCCATCATGATGGAAAACTCGTAAGTGAATCATAAGT
-GAATACCACCCACCCTGTGAGACAAAGCCCCTCCCGTGGCCCCGCACACC
-CCCTTTAGCTCCAGGTTCTCTGTCCCCACTCACAGCGGCGCTCCAAGCCC
-CACTGTCTTCACTGTCTTTGCTTTCTTTCCTTACATTCCGTGttttaaat
-aaacttttgatttgggacaatttagtgggaaaagctgcacacagagtccc
-cgcatcctcctcaccctctcagttcctctgatgtgggcacctcccatGGT
-GTGGCACGTGAGACCTGCACCCCTCTCACCCTCTCCGTTCCCCTGATGTG
-GGCACCTCCCATGGCATGGCACATGAGACCCGCATCCCTCTCACCCTCTC
-CGTTCCCCTGATGTGGGCACCTCCCATGGCATGGCACATGAGACCCGCAT
-CCCTCTCACCCTCTCGGTTCCCCTGATGTGGGCATCTCCCATGGTGTGGC
-ACATGAGACCCGCATCCCTCTCACCCTCTCGGTTCCCCTGATGTGGGCAT
-CTCCCATGGTGTGGCACATGAGACCTGCATCCCTCCCACTTTCTCGGTTC
-CCCTGATGTGGGCACCTCCCATGGCGTGGCACCTGGTGGGGCACAGGAGA
-AGCCCACCCTGGTGCATGCCCGCCGTGCACTCGCTCCAGCTGGGTCTGGC
-CAGGGTATCTGGCCGGTAGCCAAGAGAGGTGGGTGATGAGGGTGAATCCA
-GGCAGTGCCAGGCCCTGTCTAAGCAGCCCCACTCTGCCCCTTGAGTAGGT
-GGTCCTGGCCAGGAGACACTGCAGGGTGGACACTGTCCCCACCCCGTTCA
-GGTGTCCCTCCCACTCCTGGTCCCAGTCATCCACACAAACCTGATGCTGA
-CTTGTGTCTCCTCCCTCGGGGGCCCCCAAGGATGAGTGTCCCATGGTGTC
-CACGCCTGTGAGGACCACAGCCAGGCATCCTGACGTGAGCCTGGGAGAAG
-CATCACTCTTATTTCTTTTGGATGACAAAAGGCGTTGCTTGCACCTTTTC
-CCCCGCAGTGGTCTTTCCTCAAACAGTGGTCTCCTGGCCAGCCTGCTCCT
-GGCCTCCTGGGCGGGTCTGCAACAGGCAGGACCACACGCTGGTGGGCTCC
-TGTGGCTGGAACCAGCCTCCTCTCTCCGAGGCAGCCACTGGTGGATGCGC
-AGGGTCCTGGGCCCAGTATCTCTTTCCCATCACCCCATTAAGGTGTTCTA
-AAGACAATCATGCCTCCTCTGCTGACCCTGAGGCCCTGCAGAATAAGCAA
-AGAGCCGCCCCCAGAGCTGCTGCCCATCCCTGAGACTGGCAATTTCCATG
-GGTGAGGGGGAAGCTGATGGGGACAATGATGTCAAAGAAAATAGAAAATA
-GCATTTCTGGGGAGTCATCCACCTGCAGGGGAAGGGCCCACGCTTCTCCC
-ATCCCTTGTCACTTGCCTGACGTGCCCTCCCAACTCCAGTTGACTTCTGG
-CTGATAGGAATATATTGCCATTAAAAGTAACGGCACAACCCAGCAAAGCT
-AGGGTGGTCCTGCTGGCTCCTCCGATTAGCAGGAAATAAGGTTGGGAGAA
-GGACACAAGTTCATATGGAAATGAAATCAAACCCAGCACCACGTGGCGGC
-AGAGGGATCTCTTTCTTAACCCCGTCCCCGGCGCTGTTTCAATATTACAT
-TTTTTCCTTGGGTTCTGGAAAATGAAACACCTTCTGCCCATTATGCTCTG
-AAATCGAGCACATTTGGGGACAGCAGGCTGCGGGGATGAGAGCAGGCATG
-GCAGCTGTGCGGTGTTGCTTCCCCCAGCCTTCCCCGCAAGGCCAGTGCCC
-CTAATTTTCAGTGCAGGAGGAAGCAGAGCCTATCTTCACATTTACCTTCC
-CTCTGAAAGTGCGTTTGTGTCAGTGCCCTGATTACAGGGCCTCTGATGTG
-TGAGGACACTGGGTTCGGAGGTGTCCCTGGGCCTGGGGGGACATGAGCGC
-ATAAAGCCGTCGGTGGGATGCTGACTGTGTGGGAGGTGCTCGCATGAACA
-TAGATTATCTCTAAACCTCACAGGAGGCTTAGACATCATCTATGCttcca
-gaagctccagttgacagaggccggagtgtgggagttcgcaacatgcataa
-tcacatcagccagttctcaggataaatactctgttttctctgtgtctatt
-tatcTCTTTATCTACCTCCCCATACctctatctctatgtcgctgtctctt
-tctatccttattcctgtccttttctctagctccatcattgtctccctccc
-attcctatccttacctccatctctatccctaaccctattcctagtgctat
-ccctgtctGTCTAATGCCCACTTCCCTGGCCTGGGTGATGGCGCAGGTGG
-TATCCACCGTGGTGACAGCAGCTACACCTAAGCCAAGAGGTGTAGGCAGA
-GTCACTGCCCTGTTTTTAAGGGTTGGTAGGAATCGAGTTTTAGCATTAAT
-GCATAATTTTTCAGTTAGTTGTATTAGTTACGTaactgagggctcgtttc
-tcatagtgacgagcacagttcttaaaagtccaatccagtgagttttgaca
-caactgaacctcagtagcacacgtcacaaccaaaatcaggaagatgtcac
-ctccctgaaagcttccttgtgccacctcctgcggtacccattgccctgct
-gcccatctccattgactggcctcgcctgtccagaaactttatagaaatgg
-aacagggttagggtgtgtgcttgatttcagtagctgcttttactcggtgt
-aatgcttctgagacgcctctgtgtgatcaggtctaagtggctggatttgt
-attgctgagtgatattcccgtggatgaagagtccacagtttgtttataaa
-acaaagtcacctgttgagtgtttaaattgtttccagtctgagactcttat
-gaaaaagctgctatgaatatttttatgccgatgtttctgtgaacctgctt
-tcattttatccaaatacatacctaggtgtagggtccagccctacggggct
-tagtgggtgttctccccgtgtgcggagacgagagactgtaataaagacac
-aagacaaagagataaagagaaaacagctgggccccgggggaccactacca
-tcaagacgcggagactggtagtggccccaaagggctgggcgcgttgatat
-ttattgcatacaagacaagggggcagggtaagaagggtgaatcttctgag
-tgattgacaaggtgaagcaagtcacgtgattacaggatagggggcccttc
-ctttttaggtagccgaagcagagagagaaggcagcatacgtcagcgtttt
-cttctatgcacttataagaaagatcaaagactttaagactttcactattt
-cttctactgctatctactacgaacttcaaagaggaaccaggagtacggga
-ggagcatgaaagtggacaaggagcgtgaccattgaagcaccacggggagg
-gggttaggcctccggatgactgcgggcaggcctggataatatccagcctt
-ccacaagaagctggtggagcagagtgttccctgactccttcaaagaaagg
-agactgcctttcgcagtctgctaagtaaagggtggcttcccaggcactga
-gttactgcttgaccaaggagccctcaagcggcccttatgcgggcgtgaca
-gaaggctcacctcttgccttctaggtcacttctcacaatgtcccttcagc
-acctgaccctatacccgccggttattcctaggttatattagtgatgcaac
-aaagagtaatattaaaagctaatgattaataatgtttataatgattgata
-attcttcatggtcatctctatatctaatttgtattatgactattcttatt
-ctaattattttctttattatactgaaacagtttgtgcctcagtctcttgc
-cttggcacctaggtaatcctccgcccacacctaggagtagaatttgagaa
-tcatgaagtagagacgtgtgttacactgtgagaaacaacaaaacatcttc
-caaagtgattgcgccaggaaccacgcaggggtgcctgttccagctcctcg
-gtaattttgcccacgctgcacgctgccagtcttttcaatttcaaccatcc
-tagtgggaaacacctggcatgtgtgtgtccccccgtgattaatgacgcca
-gcaacttggcatgtgccttttggctatttgtgtattttcttttgtgaagt
-gtttctatacatttttgtcaatttgtttggactgttttcttcttctggaa
-ttgtaggagctatttttttcctatctattttggatctgtgtcctttgtca
-gatatgtgcactgtgaatattttcttcccatgtcttgctttttcattttc
-ttagaggtgtcttttgtcgagcagatgctttaattatgataaagaccaat
-tttatcagttttctgtggttaggctttctgcgtctcatctaagaaacata
-tgcctatctcaagatgatgaattattcttctatgttctcttctagaagtt
-taatggttttgctgcttatgcataagtctgtgatgaatcttgaattactt
-tttgtgtatagtgtgaggcaggcataagatatttctaatgataactcacc
-tgctccagcaccatctcccttccccactgaatttcaccaggatctttgtt
-tcacatctattgaccaagaagttctgtatccatttctggacatcttattc
-tgcccgttggcttttctttctgcacactgacactgcgctgtctcgattcc
-tggtgatttatagtaagcctggactaaggtactgaagtcctgcaacttct
-gtctttctttgaaagtttgctttggctgttctaagtcatttccatttttt
-tatgaatctgcttgtaaattcctccaaagagattctgcttggacttctgt
-tgagattgattttaagctataaatctatttggggggaactaacatcttat
-aaacatcgagtcttccaatatgaacatgatgtattttccttttatttgtg
-tcttctttcactgttaataatgttgtcattttgattgtagaggtcttgca
-tatctctctttaaatgtattctgaagcatgttacgttttcaaatgtaaat
-aatatttttaaattttcatttattctttttcctaatgtatagaagtacga
-ttgaatgtgtttataaatgtaactcgtaaggctgctaaatttgcttacag
-ttgtgattgtgttgattgatttttaagttcttagttatgacgtattattc
-ttataaatattggaatatctaatttgctagtatttttgttaagcattttc
-taatctatgttcattagggatgctgctccaacttcatttccttataatat
-cttcaccaggtttaggtaccaggattgtgctggccttatagattaagtgt
-gtaatcttaaatctatgaggaagtgtgtaattgttcattctttgaaaaga
-tttcttttttcttttttctttttttttttagaggaagtctcactctgtcg
-cccaggctggagtccagtggcacgatcttggctcactccagcctccgcct
-tccgggttcaagcgattctcctgcctcggcctcctgagtagctgggattg
-cagggatgtgccaccatgcctggctaatttttgtatttttttttagtaga
-gatggggtttcaccatgttggtcaggccggtcttcaactcctgacctcgt
-gatccgcccgtctcagcctcccaaattgctgggattatgattggtatttt
-tttccttaaatctgtgaccaaattcccaaaaaagtataactttctgaaat
-ctttcattgtggTTGAAGTCTCCCCCCGCTACCCAGGTTCTGAAATCTTT
-CATTGTGATTGAAGTCTCCCCCTTCACCCGCCCCAGATTCTGAAATCTTC
-CATTGTGGTTGAAGTTTCCCCCCAGATTCTGAAATCTTTCACTGTGGTTG
-AAGTCTCTCCCTGAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCC
-CTGAGATTCTGAAATCTTTCATTGTGTTTGAAGTCTCCCCCTGAGATTCT
-GAAATCTTTCATTGTGGTTGAAGTCTCCCCCCAGATTCTGAAATCTTTCA
-TTGTGGTTGAAGTCTCCCCTCCCGACCCAGATTCTGAAATCTTTCATTGT
-GGTTGAAGTCTCCCCCCCCCACACCCAGGTTCTGAAATTTTTCATTGTGG
-TTGAAGTCTCCCCCCAGATTCTGAAATCTTTCACTGTGATTGAAGTCTCC
-CCATGAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCTGAGATT
-CTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCTGAGATTCTGAAATCTT
-TCATTGTGGTTGAAGTCTCCCCCCACCACACCGAGGTTCTGAAATCTTTC
-ATTGTGGTTGAAGACTCCCCCCGCTACCCAGGTTCTGAAATCTTTCATTG
-TGGTTGAAGTCTCCCACCCAAGATTCTGAAATCTTTCATTCTGGTTGAAG
-TCTCCCCCCGCTACCCAGGTTCTGAAATCTTTCAAGGTGGTTGAAGTCTC
-CCCGCCCACACCCAGGTTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCC
-CTGAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCACTCCCCCGC
-CCAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCATGCAAGATTCT
-GAAATCTTTCATTGTGGTTGAAGTCTCCCCCCCCACACCCAGGTTCTGAA
-ATTTTTCATTGTGGTTGAAGTCTCCCCCCAGATTCTGAAATCTTTCACTG
-TGATTGAAGTCTCCCCCTGAGATTCTGAAATCTTTCATTGTGGTTGAAGT
-CTCCCCCTGAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCTGA
-GATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCCACCACACCGAGG
-TTCTGAAATCTTTCATTGTGGTTGAAGACTCCCCCCGCTACCCAGGTTCT
-GAAATCTTTCATTGTGGTTGAAGTCTCCCACCCAAGATTCTGAAATCTTT
-CATTCTGGTTGAAGTCTCCCCCCGCTACCCAGGTTCTGAAATCTTTCATG
-GTGGTTGAAGTCTCCCCGCCCACACCCAGGTTCTGAAATCTTTCATTGTG
-GTTGAAGTTTCCCCCTGAGATTCTGAAATCTTTCATTGTGGTTGAAGTCT
-CCCCACTCCCCCGCCCAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTC
-CCATGCAAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCCGCTA
-CCCAGGTTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCCAGATTCTG
-AAATCTTTCATTGTGGCTGAAGTCTCCCCCTCAAGATTCTGAAATCTTTC
-TTTGTGATTGAAGTCTCCCCCCAGATTCTGAAATCTTTCATTGTGGTTGA
-AGTCTCCCCCTGAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCC
-CGCCACCCAGGTTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCCAGA
-TTCGGAAATCTTTCATTGTGGTTGAAGTCTCCCCCTGAGATTCTGAAGTC
-TTTCATTGTGATTGAAGTCTCCCCCCCTCACACCCAGGTTCTGAAATCTT
-TCATTGTGATTAAAGTCTCCCCCCGCTACCCAGGTTCTGAAATCTTTCAT
-TGTGGTTGAAGTCTCCCCCTGAGATTCTGAAATCTTTCACTGTGGTTGAA
-GTCTCCCCCCCCCACACCCAGGTTCTGAAATCTTTCATTGTCTTTGAAGT
-CTCCCCCTGCTACCCAGGTTCTGAAATCTTTCATTCTGGTTGAAGTCTCC
-CCCCATATTCTGAAATCTTTCATTGAGGTTGAAGTCTCCCCCCAGATTCT
-GAAATCTTTCACTGTGGTTGAAGTCTCCCCCCTCCCCCGCCCTTGATTCT
-GAAATGTTTCATTGTGGTTGAAGTCTCCCCCCTCCCCCCAGATTCTGAAA
-TCTTTAATTGTGGTTGAAGTCTCCCCCCAGATTCTGAAATCTTTCACTGT
-GGTTGAAGTCTCCCCCTGAGATTCTGAAATCTTTCATTGTGGTTGAAATC
-TCCCCCCCCCGCCACACCGAGGTTCTGAAATCTTTCTTTGTGGTTGAAGT
-CTCCCCCCGCTACCCAGGTTCTCAAATCTTTCATTGTGGTTGAAGTCTCC
-CCACCCAGATTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCACCCAGA
-TTCTGAAATCTTTCACTGTGGTTGAAGTCTCCCCCCTCCCCCGCCCCAGA
-TTCTGAAATCTTTCATTGTGGTTGAAGTCTCCCCCCAGGTTCTGAAATCT
-TTCACTGTGGTTGAAGTCTCCCCCGAGATTCTGAAATCTTTCATTGTGGT
-TGAAGTCTTCCCCCcagatttttcatttcttcttttgtgaattttgctaa
-gttaggctttttatgtatttttccactttagctaagttgtgagattattg
-atatgaagttgtttctattatttgttatccttttaatgtatggctgagtc
-cctttgttcctgataatttgttttttctttgtttgttatctattgatcta
-gttagaagtttatcacatgtaataatcttttcaaataatcaccttctgaa
-tatttatattcttctattttctcttttatctatttctcctgaaatcttta
-ttcttttctttttAATTCAGTAATTCATTTGTTCATTAGTAAACAATGCT
-TTTGCACATCTAGGTCCACGTTGACAGTAGTCAAATGTGGGGATGTTTTA
-CAGAATATATAATCGCAGCCTTTACATTCTGCTATTGCAAAGATTGACCT
-TATTGGGTCCAGCAATATTCCCCAACCATTGGGCTAAAAACTGATTAGCT
-TACCTACTAGTTACCTACCAGATTATTTTTGATGCCTTTGATAGGAGTTC
-TGTATGCAGTTTTAATACATTTTGCtttatttttattttcatttttattt
-tcatttttttctacttcccctggtttaattcgctttaccacataactcct
-taaggcagaattatatatgactgaaatcatgaatctcttattttttaaac
-ttaaaatataaatctataaatttccttctaagctactgttatctgtatct
-tctacaattttatatgtctggtattcattatcatttttttttcctaataa
-tccttgtggttcccctctctaacccatgaattacatagaagtgagttatt
-taattttcaaatatatgagtgttttatgtaacaatttttttattgatttc
-tatttcaattcccttgtgattagaaaatataatttgtacaatttcagtct
-tttgaacttcactgagacatgtttcaaggctcagcttatggtgaatttgg
-aagtttatcctgtgagcgcttaaaatcgtgcgtatcccacagtttgggtt
-tgcagtgttccacaagtgccaattagtcgaagtgggttgacagagctagt
-cacatcttctttacctcactcatttttctactgttattttcatatttttg
-atctattaatttccaagagaggactattaaaacctccctctgtaattgtg
-gatctattttctttcttaattctgttgtttttttgcttcgggtatttaaa
-gcactttttctctctctctgcgtgcactttaaaaactactgtttttgaat
-gaatttatttttcattttaaaatgttcctccttttatctgatactacttc
-ttgtcttaaagtccgctttgaatgcagccactcgtgttttcattgtgcat
-cttcgactcgtttttactttttattaatttatctggctctttgtatttaa
-attgtatgtcttataaacagaatacaattacgtctttcttttcatccatc
-ctgtcgccgacttaattagagcacttagaccatttatacataaagttata
-cttgatttgatttgcctactatctttttgttttcaatgtatcccatatgt
-tcttggttctatctttgtcgctttattcttgattgattatattttactgc
-tcttttccttcttccactgacttatttttgttgtttgattccattggttg
-cCCAATTTCACTGGCAAACCAAAAATAACCATTTATTTTAGTTTCATTAC
-attacaatatgtttaatatgcaataaatgcatcatttcaaggtatataaa
-tctataaattttgttaccatcacaatcaggacatgtgacatttgtaacag
-ctccaaaagttactcttgccttccagtaacttcacaccccctccacagca
-cccatcacgcagttctccttttgctctctagctttgacccttctagaatt
-ctttcatttggtattggttttgtgtctgacttccttcacttaacataatg
-atacagagatttatccatgctgtagtgtggcattggtaaatattgttact
-ctgttttattgcagactagtattccttagtacagatataccacaacgtgt
-gtatgtatgcatcagttgaagagcattttttacagctattttgaataaag
-ctgcatgaatattcatgtgcaagcctttatgtgggtgtacgttttcactt
-ttcttagataaataccgaagatggaaattattaagtcatgtgacaacgtg
-tcctgagctttacaaaaaactgctgaacccttttccaaattgcctgtctc
-actttgcatttctgctagcaacgtatgaaaattctaatttcttcacatcc
-ttagtaatacttggtatcttcagtcttttaaatttcaaccattctaatgg
-gcatgaagtggtatctcattgtagttttaatttgcattcttctaaagttg
-aatgaagttgagcatcttttcatatgcttattaaccccatgtttaccttc
-ttcagtatagcatctgttcacatgttttgcccatttcttaaatgttttgt
-ttgacatcttattactgagtgtgagagttctgcaaatattctggatacaa
-ggcttttatatttgctttttcaactattttgtgaaaaaccagtctgtggt
-ttgccttttcagtttcttgggtggtttgaagagcaaacattttaattttg
-atgaaatctcacttattgttttttaaaaattctgtagttcaagtttctaa
-tagcttattaataaatacttgcttaaaatgcttctatattcaaaatattg
-gtggttttaacgtttggttctattatctatttcaagttaatttgtgcata
-ttgtgtgaagtcagggttgtagttcaccatgttgcatacgaatatacatt
-atttgcagcactatttgttcaaaatattgtgctttcctattaaattatcg
-acacctttgtcaaaaatcaattgaccatatttcttagggtcagtttctgg
-acttctattGGAAGTCCTTTAGCCTTATCTCAACTGGCTGGAACAAGTTG
-GAGCCATCTTGGAATATGCACATTCAAACCTTTGACCAGGGGATGATACG
-CTTTTTATGGATTTAGGAAATTTGGAAGAACTTCTCTATTCCCCACACCC
-TGCGTACCTAGATCCACTGCGTACCTAGATCCCTGCGTACTTAGAGCCCT
-GCGTACCTAGATCCCTGTGAACCTAGATCCACTGTGTATCTAGATCCCTG
-CGTGCCTAGATCCCTGCGTACCTAGATCCCTGCGTACCTAGATCCCTGCG
-TACCTAGATCCCTGCATACTTAGAGCCCTGCATACCTAGATCCCTGTGAA
-CCTAGACCCACTGTGTATCTAGATCCCTGCATACCTAGATCCACTGCATA
-CCTAGATCCCTATATACCTAGGTTCACTGTGTACCTAGATCCCTGTGTGC
-CTAGATCCCTGCATACCTAGATCCCTGAGTACCTAGATCCCTGCGTACTT
-AGAGCCCTGCGTACCTAGATCCCTGTGAACCTAGATCCACTGTGTATCTA
-GATCCCTGTGtacctagatccctgcatacctagatccctgcgtacctaga
-tccctgcatacttagatccctgcgtacctagatccctgtgaacctagacc
-cactgtgtatctagatccctgcgtacctagatccctgcgtacctagatcc
-ctgcgtacctagatccctgcatacttagagccctgcgtacctaGATCCCT
-GTGAACCTAGATCCACTGTGTATCTAGATCCCTGTGTACCTAGATCCCTG
-CGTACCTAGATCCCTGCATACCTAGATCCCTGCGTACCTAGATCCCTGCA
-TACTTAGAGCCCTGTGTACCTAGATCCCTGTGAACCTAGACCCACTGTGT
-ATCTAGATCCCTGCGTACCTATATCCACTGCATACCTAGATCCCTACATA
-CCTAGGTTCACTGCGTACCTAGATCCCCGTGTACCTAGATCCACTGCGTA
-CCTAGATCCCTACATACCTAGATCCACTGCGTACCTAGATCCCTACGTAC
-CTAGATCCGCTGCATTGGAATGATGCCCTGTCTACAGACAAACGTCCTGT
-CTTCCCCCTTGGTGTTGAATTGCGTGTTGATCTGCTTgtgtttgaagagc
-atttctggagccagtgccctggcctcaccactggatattctatcttgggc
-agctgttgcctctttaaacaccagtttcctcacttctaaaatagggtaaa
-atgataatacctactttgttatgccactggaaagattaaaggagagaatg
-tatgtGTCATTTACATAAGATAAATACTCAGTAGACACCCactcattcac
-ttagtaaatgtttattgcaggtcatcatgtgccgagcgctggaagtactc
-tgaaaaacgtgtccttactcatgtgacactttccttttaattgggacgaa
-agccaggaaacatgtgagtcttttaatgatgagatgtgaaaaaaaaaaat
-aaagcCTCATATCTGGAAAGGTGGCACTGGCAATAGCAGCATAGTTTTAG
-CATTTTCCCCACATCCTACACAAAATTAGAGTAATTAGATTTTTTTTTTT
-AATGGAAGGAGGCTTCGAATATTGAAGAAGGCACATCTGGGAGCAGAGAC
-CCAGGGACAGCCTGGCCCGGGCCTGGGCACCCCACCAGCACTGAATTCTT
-AAAGAGAACTTGGAAAACTCTAAGGTAGGCACACCCCAAAGCCAGCCTTG
-CCTGCCGAGATCTGAGGGTTGAACAGgcctagaacctcctgacagcccag
-agagtgaggaagccatcaaagactcaggagccaactcgaagggaccccac
-tggccgatgatgatgtgatttatgccccaaccaggatgaggactgcagtt
-gattgaaacccatCATGTCTGCTTGAATCATTCAAATCATGGCATTAGAA
-CAAAATGCACAGAGCACCTGGTGGATACAGAAAAAGATTCATTATCTTAA
-AAATTAGATACCTCAAGTGAATCATCCAGCACTGATCTGCAGAGAACCAA
-CTCTGTGGCCTGTATCACAGAATAACTGCATGTGGCTGCAAGGAAGAGTC
-TCCTTATAAAACTTTTTCGggccggacatggtggcttatgcctgtaatgc
-tagcactttgggaggccaaggtaggtgagttgcttgagcccatgaggttg
-agaccagagtgggcaacatggcaaaaccctgtctctatcaaaaataaaaa
-aaattagggccgggcacggtggctcacgcctgtaatcccagcactctgag
-gctgaggtgggcagatcacgagatcaggagatcgagaccatcctggctaa
-ctcggtgaaatcccgtctctactggggaaaaaaaaaaaaaaaaaaaaaaa
-aaattagccgggcgtgttggcaggcgcctgtaatccagcctgggcaacaa
-agtgagactctgtctcaaaaacaaaaaTGTATTGAGCTGTTAAAGGAAAA
-TAAAACAGTAGTATTAGGATACTTTCCAGTGAATTGTAACATCTCGGTGT
-GGAACGTCCATAACTGCTAGAATGAAAACAGCACCTCTTCGTGGGAGAGA
-CACCCAGGGTTGTGCCCAAGAGGTGGACTCTGAGCCAGGGGAAGCCTCCA
-GGTCTGGCTGCTGATGGCCCATCCTCCACCATGAGCAACATCCAGGCGGT
-GGCAAACCCTCCAGCTCAAACAACCTGGTGTTTACAAAAGATAAACCTGG
-TGTTTACAAAAGGAAAAGAAGAGGCTCTGAGGGTAAGCTGCTGATTGAAA
-GAGGCTTAAGGGGTCTATCAAGCAAAACAACAAAACTGGTTAAGACTAAG
-CTATTGTGTCTTGGAATAAGCACTTGGCTAATAAATCCATAAAGAAATTT
-GAGGCAGTGGTGGCTCTACGAGTCAGGACAGCTGGGGGAGCTGTGCTGGT
-GCCCAGATGGGAAATGCTGGGAAGGACATTTAGGGGTAAAATGAGCCTGT
-GGCTTTGAGTATGACATTGAGGGGTCTGGATACTGACATGAGGATGCTGG
-GCTCAGCCTGATTCTGAGGAAACTGTGAGGCAGAAACTTCCTGGGGGCCG
-CGGCCAGGCTTTTGAGGACTTGCATCCCTCGGAGgtgcatgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtgtgACTCCCAGGCATCTCCCGGCTGCCAGCTC
-CCACTGCGGAAGAGTGATCCTCCTGACGAGGGTGCAGCGGGGAGCCCCTC
-GCAGCTGGGGGTAAGAAGCCAGCCTTGGGCGGGCTGCCATTCAGAGCACG
-GTGGGGCCCGCGACAGGAGCCTCCACCACAGATGCAAGGACAATGGCCTG
-GGTTTCCATGGCTTCAGGACCAGCTGCCCTCGTCCGACCAAGGCGGCAGG
-AATCTCCCAGCTGCAGGTCAGCGGCTTCCCTGGTCCAAAGACTCATCTCT
-AAAGCGGCGGTTCACGCGAGCTGCAGAGTGGCTGGGGCATGTAGAGGCCT
-GTTCATCCCTTCATGAGCCTGGCAGCTGCtttttttttttttttgagatg
-gagtctcactctgttgccaggctggagtgcagtggcatgatctcggctca
-ctgcaacctccgactccctggttcaagtgattctcctgcctcagcctccc
-aggtggctgcgattacaggcacgcaccaccccggccagctaatttttgAG
-AAATACGTTATCTTAACACAGTGGAATTTAAGTCACCATAAACCTCCTTT
-TCAAGATGGATCAGGTTTCAGAAGTGTCCTGCGTCCTGGAGCCAGGTCCT
-GCCCCCTGACCCTGCTCATGCGAGGTCCTGACAGACCCTGGACATCGAGT
-GCCCCTGGCTCACAGATTCGGGGGACACACAAGTGGTTTCACTCCAGGCA
-GCGATATGGGTCCTCACACTTGAGGTCGGTGAGTTTCTGTAATGAAGCCC
-CTTTGGATGCAGGGCAGGCTGGACATCGAGGCCCTCCAGGCTCGGGCACC
-TTCCCACAGAGGAAGCACCTCTCTGGCCACGGGGCACTGGGGCCACACGA
-TTGCCCTCTATTGCCGTTCATAGGGCCTGCCCTCTCTCACCCCTAGGAAA
-TGTGCTCCTCCTGGTTAGGAACGGCTCTGGTAGCTCTCCACCCCCCCGGG
-GCAAGCCACCTCCTGGCTTGGTTACACTCCTGCTTGCTTCTGGTCCCCTC
-GGAGGGGCAGGGACCCAGGGTCTCTGGTGCTGTGCTGGCACAGTGACAGC
-CAGGCACACAGCAGGCACTCACTCTGTGAACAGGTGGTCAGGGGGTCACA
-GGGACACGCACAGCCTGAGGTTCTGGGGCAGGGTCTGCGCTCAGCTCCGG
-AGCTCCTCATCCAAGGAGGGGCAAGGGCAGGCTGGGTGCCTGGGCCCAGG
-GGCACTTGGGACCCATCTCAGTGGAGAGGCACTGAGGTTGAGGAGTTTCC
-TAAGAGAGAACTGGGTTGTGTATTTGTGTGTGTGTCCAGGAGAAAGAGAG
-AGAGACAGAGAGGGTTCCACTAAAACTCTCTGCTCTGAAGGGCTGCCCTG
-TGGAAGGAAGAGTGCAGGGGAAGGGGGAGTCCAGAGGAAAACTTGAGAGT
-GGACTTTTCAAGGAAAAAGATGTCCCGGAAAGAAAGACTTTGCTCTCAGC
-TCTGCCTGCACATACAACAGTTCTCCGGGAGTGGGAAGTGGGGAGGGTCC
-CTTCACTGTGGGTAGAAGAGGCAGCAAATCTGAAGCCAGTGCCAGGAGGG
-GGCATGGGCTGGGGGCCTTCTGAGTACTCCTGGTGGCTACAGTCATGGCG
-CTGCAGCTGGCCCAGAGCCCTGGGGTGCACGTGGGTGATGACATGGGGCC
-GGCAGGAAGGAGACATTTATTGACCCACCTGCTGCTTACTGGACATTAAA
-CAAGCGGCTGAAATGTGTCTCATCCCAGATTGGCTGGCTTTACGGCCGTT
-CTGACACAGAGCAGATGGGGGCGTGTAGACGAGGCCTGCCAGATCCTGGA
-GGGCTCTGCACTCAGTTTCTTCTCCAAGCCATGCTGCTGGCCGGGGCCTG
-CTGGTCACCCACCCGTGGGAATGAAGGGGGACCACGGAGCCCCAGCTCGG
-GACAGGTAGGCTCTTCCAGTGGGCCTGCGAGCCCTCCTACAATCAGTGCC
-AGAACAAATTCAGGATGAGGACCAGTCTCCTGAACGCAGTGTGGAAGCCA
-CCTCCTATGACTCTCTTTGTGGATTGGCTCGCATTTTATTTTGTAACAAA
-TTCACCATCACTTTGCTCTCCCAAGGTTCTGGGTCACACAGAAATAAAAG
-AATAAAAGCCCATTTAACATTGTTCATAACAGCCTTTGTGATTAGGAAAA
-TGACAGGCATTCATTCCTGCTCAATCCGCAGCTCCTAAGTCAAATTTCAC
-AAAGGCGTTGTTGATGAATTCTGTGAATGGGGGGCTGGTGTGCCGGCTTT
-GCTTTCCCCATGATAAATATTCATGTGGAGACCAGAGACAAAGACATTGA
-GGTTCAAATCCAGGGCACGCTTGTATGCAGCCCTGAACACGCTGGATTCT
-GCAGAAATGCCCCGTGTGTCATAAGACATGTGAGAGCCACCGCCTCCCCT
-GGACTCAGTGACGAGGGCTGTGCATCAGGCACCTTGCAGGCAATACTCAG
-ACCTGACTGCCCGCAGCCGTGGGCCTTATTGGAGGCTACAGGTGAGCTTT
-GAGAAGCTGGGAGAAGAAAAGACCTCTCGGTTGCTATGTGGCAGTCGCTG
-GGTTGTGGAGAAGGGACGCTGGTCTACAGGATGCTGGGCTCATTGCAGAA
-GCCCCAAACTTGAAGAATGTCAGATGCACCAGAGTCGACTACAGTCCCCT
-CCTCACGGGAGCCCCGAAGGAGGAGTTCCAGGTTTAGCTTtgccatgtaa
-atagttcagaagtcatcacttccatcctgccaacacgaaaaaggctgaac
-aaactgaaaatcaatgactttccttgcaccgtctgagaattaaggaggca
-ggacaaactgcctccctgcaatctggaaagacagatggatgtgcagaatc
-acagctgaggcccgatcacctgggcggaagccactgcagcctcacacgag
-cgggaacgcacacacgctcgttttgatgacttgtgaaggccaagcgtgga
-ttggctggagagagagaaactcctggggactacaggttaagggggactcc
-acacttgtgtgggatctacctccaggaaccccaccaggttcctgtagtga
-agagcacaggaagcctttctaatgtctgggcaggaggagggccacagagc
-ctttctgaaacctgcccagtgttctccataacagatgcctacttagcagt
-caggaaggaaagcaccgaagcctgtgcacttgggggcagggtgcgggctc
-actccagctccccctgggttcttgtctcactgaagaggggaagaaaggta
-ggaaacgcttgtagaggacaagccaaagacacagacccactaaggaagtg
-aaacttaatcataggattatcaaaagcttcacctccccgcaattcactgc
-tccgctgatggggcttccagacattggtagaggattacagcagaaaagat
-gcaagctacaccctctcactctggaggtgaagcccaggcaactggtagtg
-agaggacagaccaaagcaaagaatgttcccggagcctgcagccccagcac
-tcactgaacatatctactagccagattagcacaaaacctcatgctaaaga
-ccgacttactccagtccctattaacaggtacatcacatatggcttttttg
-ttgttgttgcttgtttttttgagatggagtctcgctctgtcacccaggct
-ggagtgcagtggcgcaatctcggctcactgcaagctccgcctcccgggtt
-cacgccattctcctgcctcagcctcccgagtagctgggattacaggtgcc
-cgccaccacgcctggctaattttttgtatttttagtagagatggggtttc
-accgtgttagccaggatggtctcgatctcctgacctcgtgatccgcccgc
-cttggcctcccaaagtgctgggattacaggtgtgagccaccgcgcctggc
-cACATCTGGCTTTTTTAAAAGTACCAGTTTtattagctagggttctccag
-cggaaacaattatatatacatatattcctttatccgcagaaaggagttgg
-ctcacacaactccaaagcctgggaagtcctggcatcggccgtctgaggct
-agacgcccagcaaagctggtgctgtggctccaagacctgggaaccaggag
-ccccaatgtccaaggggaggagaaggtggacgccccggctcacacaggca
-gacagagcaaacacaaccttcccccactgctgcgttctcatcaggctgac
-agtggcttagttgatgcccactgtgatggttaattttatatcaacttgac
-tgggctaagagatgcccaggcagctggtaaaatgtgatttctgggtgtgt
-ctgggacggtgtttctggaagacattggcacttgaatcagtgaacggagt
-caagcagatggcctccccagtctggttggacctcatccaatccattgagg
-gcttgagtagaatggaaaggtggagggagggagtttgccctttctctgcg
-taagctgggcctttcatctcctgccctgggacttcagtgtcgctgggtct
-caggcctctgggcttggagtgaaatgacacctccagttttcctgggcctc
-cagcttgcacacagcagattgtgggatatgtcagccctcataatggtgtg
-agcaaatctctcataataaatctctttctatgtatctataaatagaccct
-gtttattctgtttctctggagaaacataactaatacGgatttgggtacca
-agagtggttttagagggtcagaacgctgaggacggattttctgatttggg
-ctggggtttctggaatgggctgtctaatctgatcagatgtcaagacaccg
-ctgactcctgatgcagtaacaaagagaacactggcagagcgtggcatgaa
-caatttacagagacatgcaaagcatctgcagcagatgcttacagaagtaa
-gaagccaagggactctgtgcatgatactttcaaacacttgtggaaaatta
-agatatatagtcacactggctggtagcccctactattgctggccaacgtc
-cccggagtgtgaagctgggaagcccgctcagtccttgctcggtctgtgta
-agcaactgggggccgggcaaagtggactaaagcctaacctcaattgggaa
-acagattcccagctcctcagtcacatctgtcccagactagagccagttac
-agacccagcactcctgaaggagtgggaggctgggtcactgcaaggaagga
-ttccagcacactcccaaaaatgtgtaTatttgcattagaagtggtggact
-gagcgaagcaggtgcaggtggccctccccagggtgggtgggtctGTTAgt
-actagtcagggttttccagagaaagagaatgctatggttaggctttgtgt
-ccccacccacacctcatctttaattgtaatccccataattccctgtgtca
-agggagagaccaggtggaggtgattggatcgtgggggcagttcccccatg
-ctgttctcatgataatgagtgagttctcatgagatctgatggttttataa
-ggggctcttccccctctttgcttggaacttctccttcctgctgccttgtg
-aagaaggtgccttacttccccttcaccttctcacatggttgtaagtttcc
-taaggcctccttagccatgctgaactatgattcaattaaatgtattttct
-ttataaagtacccagtcttgggccgttctttatagcagtatgaaaacgga
-ctaatacagagggccaaggggagatataaatatatataTGtatgtatgta
-tacacacacacacacacacacatatatatgtatgtatgtatacacacaca
-cacatatatatgtatgtatgtatacacacacatgtatatgtatgtatgta
-tacacacacacacattatatatatatattcacatatatatatGattgtac
-tggaggttcagcctgctacctggccactttgaactcctcatgtgtaccag
-tccattctcacgctgctataaagaactgcttgagactgggtaaattataa
-tgaaaagaggtttaattgacgcacagtcccacagggatggggaggcctca
-ggaaacttagagtcatggcagaagcagaagcaaacatgtccttcttcaca
-tggtgCAGGAagagagagagagagagagagagagagagaggagagagaga
-ggagagagaAGGTaggtgttggctcaataaatattgaggttgagaagtcc
-cgggatctgctgtctgcaagctggaggcccaggagcactagtggtctaat
-tcTCATCTTCATTTCTGTGACTGTCCCCGTGGttctcctgttgatggaca
-tagtcgtggcctccatcacttgctgtaactagtgatgctgtgtgatagtc
-ctgtgcatgtcaccatgagtgcatagtgagcgttgccctggcatgggcat
-tcggaggatgagtggccaggacatgcatcacaggtgattcaaactttgct
-aattattgtgcagtcttggggagaaaggtacagctgtgccaatttcccct
-cccattgggaatgtgtggtttcttatcttttctttactccttactcaggt
-ttggtattgccttttcaatttttataaatctgattgatgtgtgataaaaa
-tgtgataataaggttatcttattattttaagtataaatgagattaaattc
-ttcttatgtgtttttgggcatttaagtttccaggtttttgaattgcatat
-tgatatctcttatgtagtgtctttttccttttcttactgatttgcagaaa
-ttgtatattctacatgaaagtcattattggttttatcagataaaatagct
-tccactttattatttatggtggctttgctatatagaattttaaattttga
-ggtaatgaaatatatcattcatttcctttaggttttgtgcttgagtgttt
-tatttaagaagtgagaataagaatgtcaaaagacattttcctctaagatt
-ttaaagtttgtcttcttaaagaacattgagctcttgctgccatctggaat
-tcatttttgtgtgtggtttgtgaaagggataaagttttatcttcccatat
-ggctatccagttgtccctgcgtcgctgatggaatagcccaccctcctcca
-cttgttggtaatgacacctgcatctgtgccaagccgtgtttggaaatgtt
-catggaccctctctcctatcccatggtggattcatttgctcctgcaccaa
-caccaTGAAAAGATATATAATACTTCATGCTGTGCCTATATCTTTATGTG
-GGCAGGTATAAGCTGGCCACAAGCATGTCTTTGTTTTGcctgcctgcctg
-ccttcctccctcccctcccctcccctcccctcccctccccacctacctcc
-ctccctccctcccttccttccttccttccttccttccttccttcctccTA
-TGAACAGAAGACTCTCCTAACTCCCGAGGCTGGGTCACATGCTCCCAGGT
-AGTTCAGCCACAGAAGCATTTTCACAGATTCCCTCATCAGTGTCCAGCAC
-TGGGTTCTATATTCTGGACGGGCGGGATCCCTGACTGTCCTGCCTGTCCC
-TGTCTAGCTAGGGTGTGGCCGGATGTGCGACGTGTCAGACCCGTGTAACA
-GTTATTTATCAAATGCGTGTCACCTGGTGGGATGATGAGGCCGTTCCCAT
-CTTCCTACAGTGTACCAGACACTCTGCTGTGGAGCTGGAATAAGGGGATA
-GGTGCTTCGTGGAGCTTCCTCTCTAGGGGAAGATCAGACCTGGACCCGGC
-AAATGTTAATAACAAGAACAAAAATAATGTGAAAACAGCTGCCCCtgaac
-tatgactacaagccagacactgtcccgagcatctgaaatgtattaacttg
-atccttgcacaatcttaggaggccaggtgctttttaattttctcattttc
-gagatgagaacactcaagcacagagggataagcaacctacgtcagagggc
-acagctggggtctgaacccaggggctggagttggcacttctaacccccaA
-TCCCCACTCCCAGTAACACCGTCAtgtgtatgtgtgtgtcgacgtacata
-tgtgtgcatgtatgtgtgtaatatttctctgcgtgtttctatatgtaAAT
-TACCCTTTAAAAGGCACTCGCAgtagcattatatacaccgtgtttagcat
-tttgcttttctcatttagcaatatattttggagatataattctaatccat
-tgtttttcttgatagctccatgatgttccataaattatttactcattccc
-ataatgagagatacttagattggttctaggcacttgtaattataacaaaa
-tggaaatctttataatacacatttgctcttaggaggcatgtatttgtgca
-gagtcagattttacatgtagagtgctgagacaaacagtaaggacatttta
-aaacgtgacagatgctctcaaatcgcactccaaagaggttacagagagtc
-tcacggtcagtaaaggtgcgtaaggtgctcgctcctgctcctcctcacca
-gcCCAGCGCGCCGTGGGTCGGCCGCACGGAGGCAGAGAGAATCATCGGCC
-TGGTAACGTGCATTTATTTAACTTCATGTGGTTTGAACACTTTGTATTCT
-ATTTATTGGGACTTGTGTTTCCTTTGCTGAGAACCACCTTCTTCATTGAT
-TTTTCCACAAGGGTCAGTTGTTGGTGTTTTGGATATTTTTATACAGTTTT
-ATCAAGAATGTATTTTAAATCATTAAAAATTGCTGTTTTCACACTTACAG
-GTATAATTTGttaattacattccaaatattgaatcatttctggttccttg
-aaagaaccacacttagcatagtgtattttttcatgaacttttgagcctat
-ttgttaatatattctgtagaatttttgcacctgtattcaaaaatgagata
-cattTTTATGTGTGTGTATGTAATATTTTGCTTACACTTGGTGAAAACTT
-GAAAGAGAAAAATTTCTGAAAGTTTAAATAACTTCCATATTATTTATTTT
-TTGAAGCTTTGCTAGAATTCAGTAAAGAATTTGCCATTTGTATGGCAATA
-GTGACTTAGAAGTAACCAATGGGCAACTTTCTCAGTTCTGTATATGGCAA
-TTGGTTGACTTAGATTTTCAATCGCATCCAAATAAAATTTGGGTCTCCTT
-CTGGATCTGTACATATATGTGTGTAGGCATATATATACACACACACATCT
-ACACATATACgtttatattcttacataatcagctatttcttctagctttt
-cagagcatttatatagtgctgagaaaaatatatttaatctgtctgtattt
-tttatttccttctcttaattcctcattttgtgtttgtatatttctcctat
-gtgtctgcctcgtgtaattaactttgatactgtatatttcataggatttt
-tgtaaagaagcatctctggaaattattaactaacatgactttttaatctt
-ttacatgtcattagtttatactttccctccttctgctttccacatcttta
-ttttgttttcatttttctgctttttaaTTTCATAATTAATTTACTTACTG
-ACTATTTTTGTTGAGAATTTGTGACACTGATGGTGGATAATTTTGCTCTG
-AGCCTTGTGCTGATAGTATGCTGTGGCTAGAAGAGCGCCACACTTTTGCT
-TCTGTTCTCTTTCCTCCGGGACTTCTGCAGTCTCAGGTGACCTCCTGAGA
-ACACCTTGAGCTGTGTTTTGTGTCTAAGCCCACGGTCATTTTCTGTAGGT
-AATTCACAGGGTGCGAGAAGAAGCTGTGTTTCTTGTTTTCAGGGTGGAGT
-TGGGCTATGCAGCTGCACATCCTCCTGAGAACGTGTCACTCTGTCCTCCA
-CAGGCTCACATGCTTCTGCTCACTTGGCCTCCTGGGTGAGAAGAGACAGG
-GAGATTCCCCTTTAAAGCAGGTGTCTCCGGGTGCCTGCAGCCACACTCCT
-GCCTCTGCCCTCCTGCCTGAGGCGTTCTCCAAAACCCTGGCAAGCAGGAG
-TGGGGAGCAACCCTCCAGCCCTGGAAAATGGGGTTGGACGCCAATGCTGC
-AGCCTCCCACCTCAAAGGCACAACTTCAGTGCTGGAGAGGCTGAGCAGCG
-ATGCCACACAGGTGGCCCACTCAACAGCTCACTGCAGGTGGCCACTTACC
-CCTCCCGTTCCCTGCCTCCCAGGCTCTCCTGTCCCACACCTTGCTCCTGG
-CCCTGCTGCAGGGGAGTCCAGTTTAGACTCAGGTGCATGGGTCTAGTTGC
-TGCATTATTTCCTTAGGTTTTGGACATGGGGAAGTCTCCATTTTTGGTGC
-TTAAGTGGCAGAGCTTTGCCTGGGCTCAGATCCTGTCTCCTCCTTACGTG
-GCTCCTCGTCGTCTTCGGGGCTTCTTCGTCTGGGTCACAGCCTCTCCAAC
-ACTCACGTTGCCATCCCAGCTCCCTCTTGCTTGCCTTTGTCTGGATGGCT
-TTGCCACATGTTCCTGGATTAGTTGATTATACATTTCCGAATGTCCTGTA
-AATATCACCTGATCATACATGTGCGCTTTAGTTGTTTTACTCTTACTCTG
-AGAATCTTGTTTTAACTGGTGGATGTTTCTTACCTGCACTTGCTGCTGTG
-ATCCACGTCTGACCCTAGTCCCTTGACGTCCTCCTGTGTCATATCACCAC
-TTCCAAACTCCCATTGCTTTCGGCCTTCTGCTCCTTGGTCTGCTTTTTCT
-TTGGGAATGGTTTTCCTTTGGGAAATTTGGAAAGTTAATTCTTCTGCTTA
-TTTTTTGTGGTTGCCATCTTTATAGCTTTTAGTAACATTTTCAGAGTCTA
-TTTCCACATTTATCAACTCTTAACAATTAACCCCTGCTATGTAGAAGGAG
-AAAATCAATTCATTTCAGTGTTTCCCAAATATTGTCACCATTTTCTGATT
-TTTCAGGTCATTTGTTTGCACAGAACTTATAACGGTTACCTTTATACCTG
-TGAAAATCTAAAATGTGGCCTTCTATACTTAAGCACTATTGAAAGTCTCC
-TAGCTGTAAGTTAAATGTGTCAGGGCAGTTACATTTGTTTCTACCTCTTG
-CCCTCTGTGATATGTATATGTATGTAACTTTGTGAAAGTTTTCATATGCG
-TCGTCTATTATATTCATCAGTATATCTAAATATAACATTGACACTGCTTA
-GGGCTGGGTTTGCACTGGCCTGGCCTTAAGATTCATGTTAGTGGCCTCCT
-CGCTCACAGCCAGGCCTTCCTCTCTCCCTGTGCTTCCTGGTTCCAAAGCC
-CTCGGTTCTGCTGCATCTGCACCAGGGTGTGCCAGCTACCTCGCCAGGGC
-CTTCTGCCCTAGTCTCCTTTCAAAGCAGCCCCTCCATTAAAAAaaaaaaa
-taactttattgagatgtgattcacgtgctgtacactttacccttttcagg
-tatacaattcgggggcttgtagtatattcatggagctttgcaaagatcac
-aactatctaatttgagaacattgtcatcatctggaaggaaatcccatgtc
-catttgcagtcactccctgtggtcccctcccgctggaacccactgatctg
-cattcggtctctgaatgtgtctgctctgggtgtgatggagtcatgtgata
-caggtacctttgtgactggcggccctcacttagcatccatttttctttct
-ttcttttctttctttctttctttctttctctttctttctttctttctttc
-tttccttccttccttccttccttccttcctttctttctttctttctcttt
-cttctttctttcttcctttctttcttcctttctccttccttcctttcttt
-cttttctttctttttcttcttctttttcttttttttttggacagagtctc
-tctctgtcacccaggctgcagtgcaatggcacagtctcagctcactggtt
-caagcaattatcctgcctcagcctcctgagtagctgggattacagctgcg
-tgccaccacatccagctaatttttttgtattttttagtagagatggggtt
-tcaccatgttggccaggctggtctcgaactcctgaactcaagtgatccac
-ccaccttggcctgtgctgagattgcaggcatgagccactgctcctggcca
-gcatcacatttttgagttcatccatagcagagcctgtcagtacttTTGTG
-agtcaaggttgtccagagaagcagaacaaataggaaaagtgtgtttgttt
-gtttgtgtgtgacttatcatgaagtagtaactcatgcaattgtgaaagct
-gagaagtcccaccatctgctgcttccaagctgtagacccaggagagcacc
-acagggccatttggaggtggctggaaagctgatggcgcagattccactcc
-aagtctgaggaccaaagaaccagcagtgccgagggcagaagatcaatgcc
-tcagctcagggggtcaggcagagctacctcaaccgcccctccctgttttg
-ctctgacagaccctcgacagattggatggcacccacacggaggggatcca
-tctgccttacccagtgcaccagttcaaacgctaatctctcctgcaaatgc
-cctcacagacatgcttagaaatactgtttAtttatctatttttttaactt
-tttttcttttgagagtctcattttgtctccaggctggagtccagtggcgc
-gatctcggttcactgcaacctctgtctctcaggttcaagcaatcctcctg
-cctcagcctcctgagtagctgggactataggcgcatgccaccatgcccag
-ctaatttttgtatttttagtagagacagggttttgccatgttggccatgg
-ctgtcttgaacacttgacctcgtgatcgacccacctcagcctcccaaagt
-gctgggattacaggcgtgagccactgcacccggccTAtctttttaacttt
-taagttcagaaggacaagtccaggtttgttacgtaggtaaacttgtgtca
-tgggggtttgttgtacagattatttcatcactccagcactaagcctagta
-cccattagtgacttttcctgatcctctccctcctcctaccctcccccctc
-caacaggccccaatatctgttgttccctctgtgtgtccatgtgttctcat
-cattcagctcccacttgtaagtgagaacagaaacatggcttaacctgaca
-cctgggcatccctcggcccactcagcttgaaacacagaattggccaccac
-Cgtactgtattcattttttattgccgaatactattccatcgtggggatag
-gcctcactattttcacgtgatgggtatccgggttgtctctgctttttggc
-tactatgaataaagctgctagaaacattcacgaacaaaggtttgtgtaga
-cgtaggttttcatttctcttgagcatctcccgaggagaggaaccaccagg
-ctatggtaactctgtgttagaaaactgccaaactgtattccagaaggtca
-gtaccattttatattccaaacaataacacattcaagttccagttccttca
-tgtttgtatcaacactcattattgtctctgtttttattttaaccatccta
-tcgggtctgaaataataccttattacgtttcgacttgtcgtcctctaatt
-attaagattttcagtagcttttcatgtgcttatttaccatttttatatct
-tctttggataaattaattgaaatccctgcttatttgtgttatctgtctta
-ttgtgttgagttataagaattctttattccgaatgtaagtcttttatcac
-acatatgaatttcaaatattttctctgatgctgtggattatctccacatt
-ttttatactgttcttggaagcacaaaagttgttaattttaatgatgtcca
-atttatctattggtttttttctctttggaggcttgggtgaggtttctatg
-aaccaactgtgcaacccaaagtcacaaagccttacttctatattttcttc
-taagagttctacaatgtaagttttagtacttaagtttaggtctataattt
-atttatttattttttactttttatttttttttagatggagtctcactctg
-ttgcccaggctggagtgcagtggcctgatctcagctcactgcaacctcca
-ccttctgggttcagttgattcttatgcctcagcctcctgagtagctggta
-ctataggtgcacactaccatgcctagctaattttttttatttttagtaga
-gtcagggtttcaccatgttggccaggctggtcttgaactcctgacctctt
-gtgatccacctgccttggtctcccaaagtgctgggattacaggcatgagt
-caccacgcccgaccataggtctagaatttattttgagttaatgtttgtat
-atggtgtgtgaggtagggattcagcttcattcttttgcatgtggatatcc
-agttgacccagaaaaatttgttgaaaagattaatcatttcacattgacta
-tccttggcaactttgttgaaaatcaattgaccaaaaatgtaagaatttat
-ttttatactgtcaagtttatttaatttatctacagacaacgtcctcatgc
-cagcacctcactgtcttgattactgtagctttatagtaagttttaaaatt
-ggagaagttatgctctattctcaaaaatgttttggctatcttgggtcaca
-cacatgtcaatataaaatttacaatcagcttctcacataaaattcccttc
-aataatttcttccaataatgttttctggttttagtgttgaagtcttatag
-ttcttttgtaagctttacttatttttgatgcttttataaatgtaattgct
-ttcttcactttatttttggtttgtttattgctaatatttaaacatataat
-tgttttgtatattaatcttatatcctgcaacttgctgaactcccttataa
-attgtaataggtgtttagtagattatttataatttttacataaaaaatta
-caccatcttcaaacagagatatgtttacctctcttttcaaatttggatat
-catttatttcttattcttgcctagtttctctggatagatcttccagtaca
-acactgaacacatgcaaagagagtggacgtctttgttgttctgttgctta
-tcatataaagaaaacatccactcattcaccattaagtatgatgttaactg
-tggttttctcatagaagccttttatctaaggttgagggaacttccttcca
-gtccttgcttgtggagcctttatttctccttcatttctgaagaatagctt
-tgctcaatatagaatccttgattgacagtctttttctttcagccttatga
-atatgttgtgtcactgcctctggcctccattgcttctgatgagaagtcag
-ctgtacatcttagacggcttcctcaaacacaatgactcattcttctcttg
-ctgctttcaaagttctctttttgtctctttcaaccatttgactatgatgt
-gtctagctgtggatttctttgagtttatcctacttagagttcattgagct
-tttgaatgcatagacaaatctttttcaaatttggggagttttggcagcta
-ttattttaaacatttttctgttctactctctgctcctttgctacgaagct
-tatcatgcatacaccagtatgtctgatgttgttgcataggtgtctgaggc
-tctgttcatttttgtccactcccattttttcctgtttctcaggttaagta
-ataaaaacgacctatctgtaagttcacttactcttttttctgttaactca
-aacccacagttaagcccctctagtaaatgttttctctgagttattgtact
-ttcaattacaaattcttatctctcttttataaattatttccctttattga
-tattatctattgagtgaaacattgtcctcataatttacttctttagacac
-agttttgtttagttcatcgaagatatttgaattgtcttatttaaagtcat
-tgcctaataaattcaacatctggattcctcagggacagtttctagttaat
-gcttttattattgcagagaagcatctttttctgtttctttgcatatctca
-agttattgttgaaagatgggcattttaaaaaatattatttggcatgtctg
-gaaatcagattccaactctttcctagagtttgttattattatttgttgtt
-attttcagtggtgctccttgttgagtaattttctggactaattttgaaaa
-ctctgtattctctgttgtttgtagccacttaagtttctgttcaattcatt
-tagaattcagttactgaggccagcacagtggctcacacctgtaatcccag
-cactttgggaggccaaggtgggcagatcatttgaggtcaggagttcaaaa
-ccagcctggccaatatggtgaaaccccgtttctactaaaaatgcaacaat
-taaccgggtgtggtggtgggtgcctgtaatcccagctacttgggcggctg
-aggcaggagaattgctagagcctgggagatggaggttgcagtgagcagag
-acggcaccattgcactccagcctggcagacaaagcaagactccgtctcag
-aaaaaaaaaaaaaaaatcagttactgagtggacagtctaaccttaaaaat
-cttaacccttttcccatttagaaaacaaatgtgcagctctctgccagtgc
-tcatttaattttacataaacacgctctttgaggctgaagtaaatctgact
-gatttgcaatgtgaaaataaaatataaaaaccgttcttggagttatttct
-aaacagaactaccatcagaattatctgagtcatcagaatcctctattttg
-aaaaaaaaatcagatgcatcaaatgactcttctgtgaacaactgtttgag
-aacgatactaatgtcacacataggaatactacattttctaggatttgaca
-ttttcagtgatcgagaattactacattttgtaaatgaaaataccactact
-aaaaacagaatgatatacatagaatgatgtcttttgtttccaaagtcgat
-atactacagcaatgcagaaacaatcatgaaagcaacattattttgtggca
-aagttgtcttaaggtaaacactgcagccacaagcaccactggtgagtatt
-ctcagtgcagacaggaaagagttaaagcaataggtcttccaggctttgct
-gagcagctctctgtggaatgggatatgacttcaatacctgttcaggcagt
-tacaactctgccttagccttcgcttcttgcttttggcctgaatctcTCTC
-CTTTGTGACTCTGCTCAGCTGTGACAAAGGGATGTGGCCACTGCACACCC
-CACTGTGACCCACCTGCACAGGTGCATGTCTGTGCCGTTTGCCTGGGTGG
-CCTTCACTCTGATCCAGAGCAGCATGCAAGGACATTGTCCTGGCCAAGAG
-GTCATGGGCGAGACTTCTCTGAGCTCTTGGAGAGTTTGGTCTCTTTGCTG
-AGATCCATAACATTTTGCAGGTATTTCTCACCGCCTTTCACACTTTGCCC
-AGATACCATTGTGTTGGACACTTTTCATCACAATCCAAGGTTTATGGTTA
-CGGTTGTCTCTGGTCTCATTGGATGTGCTTTTTTTCCTCTTTATGTTTTA
-TTCCTTTTGTTGTTTGTATTTGGCTTTACTTGGAAATGGAATAGAAATCT
-CTCTGATCCATTGTGTTACAGCAGAAATGTACTCTGATCACTATTTTAAA
-AGAAGAAGAATTTTCCAATGATAACCATGGCTGGCTTGGGGTGGagaaga
-acaggatacagaagaaaaagagttagtctgaagtcaggaaaatgggttcc
-acgtttttgttctgtgctgacttagccaagtactgtgtggacagcatact
-tagcatctttatacttgagtttcaactccaagaaagtaaggataaaaaaa
-gtatcaggtttcaatgagaaaacacaagccactagtacaatgcttgtcat
-gcTGGGGCCCCTGGGTAAACTATGTCCCTTATGTTTAGCAACAATAAAAG
-ACATACATCACCAACAAAGCACACAGAAAGCACCACTCACTGGAGGACCG
-AGGGAGAGACACGCAACACCCACGGGCTCCAGGCAGTCCTAGAATCCTGC
-CGGGTGGACTGCCACAGCTCCCGACCTGGGTGAGCAGCTCTGAGAGGAGC
-CCCGTCCTGCTGTGTGACCGGAGCCGCCCTGTGGGTGATTGCTGCACCCT
-GCTTCACTCCTGGGAATTTCCTCTTCTTACCTTGTCCTCTCATACACACT
-CAGAGTCCCGGGACTGGAAAGTCTTCACACACTCCTCAGTGCAAGGTTGG
-AAGCCAAGGGTTGCTGATGTTTAACGaatgcctctaagacacacctgcag
-gcccgtatgcatcgctgtgctattaaaaataatacacgtggaaacagcct
-aagtgtctgctgacaggtggacttaaaaactgtgttatagatgcacagtg
-gagtacttttcagtcttaaaaatagaaggaaaggccaggcacagtggctc
-acgcaagtaatcccagcactttggaaggctgagatgggtggatcacctga
-ggtcaggagttgaagatcagcctgaccaacatggtgaaaccctgtctcta
-ctaaaaatacaaaaattagccaagcgcagtggctcacgcctgtaatccca
-gcactttgagaggctgaagcaggcggatcacctgaggtcaggagtttgag
-accagcctggacaacatggtgaaaccccgtctctactaaaaatacaaaaa
-tgagctgggtgtggtggcaggtgcctgtaatcccaactactcaggaggct
-gaggcaggagaatcacttgaacctcggaggcggaggttgaagtaagctga
-gatcatgccactgcattccagcctgggtgacaaagtaaaacgctataaaa
-aaaaaaaaaagaggaaagaaagagaaaaaaagagaaaagaaggaaaatct
-gctatttgcaacaacataaatgaacctgggggacattatgctgagtgaaa
-taagcagatgcagaaagacaaacactgcacagactctctttaggtggaat
-ctcaaaTGCATAGATGGAGGCAGagatgcaggcgatgcggccaggagccc
-aggaatggtagcaggcacagagactgtgagatgtgaggcacagatcctcc
-tggaggctccggaaggagccagcactgccgatgcctggatttcagcccca
-taggactaattttgggtttctctcttccagaactgtaagagaatacattt
-tctgaggttttaagccaccacatctggagtaatttgttgtaacagccaga
-aactgaCCTCCAGGGCATCAGGGCGCTGTCTGGCCTCTCCTTCCTCCTTC
-CCTCACTTCTCCTGCCAAAGTCAATGCCGTATGTATTTGTTTTGTTGTTG
-CTTTTCTGTTTTTCTTTATTTGCACAGCAGCCCTGAACTTCAAGGTCATA
-ATCTCTATAATCAGAGTAAGCACCCGGATCCATCAGCCAGCCCCAGATTT
-CAAGAGCTTTAACAAAGCACAGGCTTCTGACCATGTTGGATCACTGCAGG
-GGCAGTGTCGTCCACCCCTGGTTGGTCATCCCGAGGGCCAACCTCCTTCC
-CATGCAGCCCGGGCTCCTCGCCATccctggagttctcggggctcagccag
-cagatggaaagagacggagctgaaagctcctggtgagacttaggggtcag
-ggttggggatggcactgactccttgttcgcattcaccagccaagtaagat
-ctgcaaagcaagctggaaaaagtcagtccactaaggcccaggaggaaaaa
-ggaagggCCAGTGGCTGAGGCCACCAAAAGGTTTGAGCAGGCTGAGTGAC
-CAGGGCCTGGGCTTTGACCCCCAGCTCACAGCTCTGTGAACTCATCTATT
-TCTGTTATTATCATGTATATTCATAACTAATACTTTAGTTCTGCACCTAA
-TTTACAAAGGTCTTCCTTCGGTATCTCATATATTAATACAACTAATAAAA
-ATTAAATGTCGGTAAGGGCTTTGCAGGTTACAGAGCAACTGCACCTCCGG
-GATCTCCTCTAAGTGTTCCTTTATCTATCTGGCCTTATTAATTCCAGCCT
-ttatgaactgggggactttggagagtcactttccgcctctgagctgtgtt
-ttctattagcaaatggggatcgatacctgccagcctctcccagggcggtg
-atgagTTTCCCGCTGCCTGGGATGGGATACCTGAGAGAATTCAGACAACA
-GCGTGCCCTCCTCGGAGCTCCCCTCCGCTCCAGGGATGGCAGAGGTACCC
-CATGCGGCAGGGGCCCAGCGGAAGGCAGGGACCAGCCTGGCCCCAGCAGG
-AGTAGCTCAGCCCCCACAGGCCGGGCCTCCAGAGGCCCAGCCAGCGGGAC
-ACCCTGCCCTGGGAGGCTCAGATGCCTTGGCGGGAGTAGGCCTGGCCTGT
-GAGCTCTCACCGTGTGTGTCTCAGCCTAGTGGGCGCCCCCGCCCCCCGAG
-GCCGGGTTTTCCCTGCCTGGCCACAGGTGCGGGGGAGACTGAGCAGCCAC
-GGGCAGCTCTCATTCAGACTCAGGGGGAGGCGGCCGGAGAGTGAAACATT
-TCCCCAAAATGTAAATTGTATTAAAAAAAATCCATACCTCTAGAAGGACT
-TTGTAATAAGAAGGCAATAAATCAAGTTGGGAAGCAGCACTCTGAGTGGG
-AGCGAACGTCTTATTTACTGGGGAGGGAAGGAATGCGGCGCAGTGTTCGG
-GGTGGGGCAGCCTCTCCCAGCCCCCGCCCTGGCCCTGGAGGTCCCTGTCC
-AGAAGGCGCCCGCAAGGCACCGTCCCCAGGGCTCAGCGTGCCTCTCTAGA
-GGCCGTCCCACTCATCCCCCTGCTCATTCATTCACTCCCAGGTTACCTAG
-AGCTTATTACCAACTGTGCACAGCACTCACTGCTGAGCATACAGTGACCA
-GCAAATAAGGGTTCACCTGTCAAAAGTTCACGGAAGGGAGGCACGCAGTG
-AGTGAGGGTTCGGTCCAGGACAAAGCATTGAGCTGCGCAGGAGAAGACGG
-CCTCTGTGTGctgctctaagggagccactgtctggtgggggaggcaggca
-gaagccaggcagtgacatccaggaagccccgaggcccaggaagcacagcc
-tgaggcagggtggtcagggaagcctgcctggaggaggtggcagcctagct
-gagGATGAGTCCCTCCAGGGAAGAACTGGGGGAAGCAGACACACAGAGGG
-GGCCCTGCCATGAGAAGGGCTCCCTGCCACAACTCTCCTGGTGCTCAGGC
-ACATGGTTGGAGTCCTTCAGAGGGTCCAGCTCACCAGAGGACGCCCAGAG
-TCCCAGAGTAGGTCAGGCCTCTTACCGCCAGTAGCGCCTCCGCTGTGCCA
-TGCTGGTCTAAGTAATTTCGGGCTTACTGTGTAGGTGGCACTAAGATTGG
-ATCCCAAGTCAGAGATCCCCATGGTGCAGTTTTTCAGGGAAGATGAGAAA
-ACTAGAGCACCATGCGCGTGTCATGAGACTTCCTCACTCTGGCTGGCACA
-CTCTGGTTTGCAAGACCCTCGTCTATCTGTGGACTCCCAGTCCCGTGGCG
-TGTCCCTGTTACGTGTTTGACGGGTGGGGGAAGGGAAATGTACGGGGCAG
-AAATGGCCCACCTGGTCTGCCAGAGCCAGCTGTGCAACTCGGGTCAGGTA
-CTCAGCCCTCTGGGCACCAGCTTCAGGCTCACACTCTGCAGACCGAGGCC
-TGAGTCAGGGCTCACAGTAGGAGCCAGGGAGAAAACCGTGCTGGGCCCAG
-GCTCCGATGCCAGCCACACTGGAGGGGTGCTCTGGGTGTCCTGCGGTATG
-GGCATGACCCTGTCACCCTTCCCAGGACCTGGACTCACTGCATGGTGCTC
-CCAGGTAGAAGTGGCACAGGGTCCTGCCTGCCTCATATCCCACAGGTATC
-TCTACATCTTGAAAGAGGGGCTCAGGTCCTGCAGCCGTGCCCTGGATCTT
-GGTCTCTCTTCTTTGCTCCTGGGGGCAGTGGGTGGGGGGCGGGGGGTTTG
-TAGGAATGACGGGGCTTTCTGGGCGTGTACTCACCCACCCGGGAGCCTCA
-GATGTGGGAGAGGCCTGGGGAATCCATGCGGATCCATGCAGCGGCACTAA
-TTCCTGGGATCTGGGGTTGAACAGGTGGCTGGCCCTTCTTTAAAGCAGGT
-GCAGCATTCCTGCCACCGCCCACCACAGGCAACGGCCTCGCGGGGGACTT
-GCTGTCCTTTGGGGCTGGGATCTTATTTTTCTCCGAACTATCATCAGGAG
-GGTTGGTCATCCTGCACCGATGCTTTCCAATTTGGGAAGAGGGAGAAGGA
-AGTGCTCGGTGAGGCCTTTAAAAGTTGGGTTGGGAGGTTCCTCAGATGGA
-TTTTCTCCTCCCTGGAACACCACTGGCTCATCCTGGGCACTGCAGGCTGG
-GCTGACTACTGGGGTCAGGATCCTGTCCTGACTGTGGGGTGAGGGCCATC
-GTGCAGGTGGCTTTGGGGGGCTGTTTGCGGCCATTCCGAGGGGCGCCTTA
-CGCCCTCCCAGGTCCCCATCCCTGTAAATCAGCAGCTTCTAGGGAAGTTC
-CCTTTACGGGGACAGGACCCAGGAGGGTGTACAGTGCCTCTCAGGATGGC
-CTCTCTCTGCCTCCAGAGCTGATATCAGCGGTGAGAGGCATCAGTTCTCC
-AAGGCCTCCCGGGAAAGTCAGTTTGGAGCCGGAGTTCTCTGTTTCTAGCC
-GGAGAGCACCAGCCTGGGGCGGCAGGGTGAAAGGCCACAGGAGACAGAAA
-GAGGCTCCCAGAGGAGCAGGTGGGAGGAACAGGTGCTGGGCTTGGAGTTT
-TACGGGAGACAGCTGGACTGCAGTGGGCAATGTGGGGCCGACGCCGACAT
-CAGGCACCACAGAGCTGACCTGGGCAGCCTCAGAGAGACCCTGTCATGGC
-CCGGCCCACCCCAACTCAGACCCCACCCTCAGGACACTGCAGCACTCCCC
-AGGCCACACCTCCTCCCACAAGGCCCAGCTTCCAGACTCTGCAGATCCCA
-GGGGGTTTGGCAGGGCCCTGCTCTGCCTTCTCTGAATTGCTGGGCAAGCC
-AGGCCTGGCTGCAGACAGGAGGCCCCAGACCTAACATGAAAAGCCACTGG
-AAGTGGAGGGCCTGGGCCTGGGGCCTGGATCACTGCTGTGGGTGCACTTT
-GCCCTCTACATGCACACAGCTCTACGTCTGAGATTTCAGAAAGAGGGGGC
-TCTCGTCTACATCCAAAGCAGGGGCAGCTGTCCCCCCAATCTGATCTCAG
-GGCTCACTCACTAGAAAGTGAAACTCCATCCAGCCTCCAGCCCTGCCTGT
-TGGGGCTAGATCATCACCCTCGCCACAGAGATTTCTGAAGAGAGTGCAGG
-AGAGTCAGCATCCTGTTGAATAGGTGCTGCCTATAAACACAGGGGGCCGT
-CCTGCAGGCTTGGAGGGCCTCCCCTCCATCCCTCCTGGTCCTCATCACCA
-GGTCCCTCCCCTTAGCTTAGTCCAATTCCTGCCTCTTCCATCCTCCTGGT
-TCAGTAATTAATTGCTAGAATGCCGGGTGGTGCACAGTGATGAGGAGAGC
-TGGGCGCAGAGTCAGCACCCAGGACAGCAGTTGCTTGCCCACGTTTATGG
-TCACAGGGCACTGGGCTCTGGACACGAAGACACACATGCCGATGTCGGCC
-TTCGAAGAGCAGAGACTGGGGCCCCTGGAAATGGGTCTGGGGCCCGGGAG
-GTGTGTTCTGGAATGTTCTGTGAGGATCCAGCCCTGCCTATGCCATGTGT
-GAAAGTGATTGCTTCCTCCTTCAGGCCTTGCTCAGGGCTCCAGCGTGGGC
-GGCCTTCTGTTCCCGTCCAGCTGAGCTCTCACACAGCCTGCCTGGCTCTG
-CCCCACCCTCGGACTCGAAGCTGTGAGTCAAGGCCCTTTCTCTTGGGGCC
-ATGGGCACCGTGATGGAGGCGCTTCACCAGCCTGGCACCACAGCATCCCC
-CATGCACAGCCTGGTGCTAACACAGAGTAAGCCCTCGTCGATATTTGTGA
-TTGGACACAAGGATGACTGAGTGACTATCTGTGATTGGACACAAGGATGA
-ATGAGTGAGTATCTGTGATTGGACACAAGGATGAATGTAAATGAGTGAAT
-AACAAGAGATGGTCGAGGTGATGCCCGATAACGCTCCCAGCTTAGAAACT
-CAGTGGCTCCTAATCTTGCCAACTTGTGTCCAGGCATCTAAAGCCCAGCC
-TGGTTTTCCTCACAGGTCAGAGAGATGATTTGAGAGGCTGTAGCAGAGCC
-ACACACTCCAGAATGTGTCCCTTGTATGTGAACTGCTGCACCTGAAATCA
-CACCATTACTCACACAGCTCACCCTAAAAATGCACCGATCTCTGGAAGCA
-GCATTACTTAGAGCTGAGAGCAGTGTGCATTCTGGGACAAGCAGAGTTTT
-CTGGGATCAAAACTGAGCGTGGAATGAAGCCAGTTCAAGGTCCAGCCAGA
-CAAAGCTCTCAGTAAACGTCCGTCACAGGGGCCAGACAAAGCTCTCGGCA
-AACATCCGTCATGGGGTAACCAGCACAGGGAAGTGAGGGGAGTGGACCAG
-TCCGTTACGGCACAGAGGGTGCTGGCACCTGCGTTTTCACTGGTCATCCT
-CTGGGCAGGGAGAGAAGCATCCGCTGCTTCCCTACACACTGTCCAGCAGG
-CGGGGCCCGTGAGCCTCCCCGGCTCAGCTGAGCAGCCTGGGGCTCCCCTC
-CACCAGGCCAGGAAACCCTCCTTCCACAGGCTGTGGCCTGGTGGGAGGGC
-CCTGTTGGAGACTGAACTGTGTtgctgaagttctcatccctggaacctca
-ggctgagcttatttggaaataaggtcttcgtaggtgaagtagttaagatg
-cagtcacactggaatccagtgggccctaagcgtgaaacgcctggtgtcct
-cagaagaggagagagacagaggcagatgccctgggagggccacactgcaa
-ccacgatggaggcagagacgagggaccccaaggatggcggcctccagggg
-tggacggcagcctggatggactctcccgcagagccctccggaggaaccca
-ccctgccgacaccttttccccgagttccagcctccagaactgtaagacaa
-cacctttctgctgttttaagccactgagtttgtgttaactttcccagcag
-ccacgggaggctgaCCCCGGGCTGTTTCCTCCCCCGGAATCCCACGGCTC
-TTCCTAAAGTGTACATTTTTGGCACTGCAGCCACCCAGATGCCTGTGGGA
-AGTTTCTCCAAGGGCCCTAATTGCACCCTGGGTGTGCCCTGTCCCCTTTG
-CCATCAGCCTGGGATGCTGCAGACGCCCTTGCTAGAGGCCAGCTGGGCCC
-TGGCTGGAGGGACCCACTCAGAAGGAAACCCCATTCTCTGCTTTCAGAGC
-TGGGTCCCTCCCAAGCATCTGGCCCAATCCGTCTTCCCACTTCCCTCCTC
-CAGTCCCGTTTTAAATAGAATCCATCAGCAATCAGAGCGTGAGGCCATCA
-GCCCAGCTCAGAAGCACAGCCCGGCTCCACGGACGCCAACGGAGGGTGTC
-TCCCGCCGGAGTGAACGGCTGCCCGGCTGCTCCAAACAGCTCGGCTCCCC
-CTATACTGTCCCCCTTCTTAATGGCCATGGGTGTCCCCAGAGCCGAGAAA
-CTGGGGCAAGGAGTTGTCGTGCAGCAGAAAGATGGGTTGCCAGGCTCTGA
-GGGGCAGAATACGCTTCCCGCGTCTTGAGCAGGTTCTACTGGAGGGCCAG
-AGCAGGAGGCACGGCAGGAGCTGAGAGGGAGGGTTCGTGTCCAGCGGGCA
-CCACTGCAGCTCAGGCAGGCAGGACCCAGCTGGCGGCTGGGAGGCCTCAC
-ACACGCGCCTCCATGCACCCATCTGTGCCTGCCTCGTGCGGACATTGTGA
-GGATCACAGGGAGCAGGGGTGGAAGGACCCAGGACAGCACCAGGTACATC
-AGCCCAGGCGGCTTTGTCTTCAAGGGTGCCATTGCGGCTCAGACAGGTGG
-GACCCAGCTGGCGGCTGACCACGGAGCCCCAGCAGACTGAGGCAGCGGCC
-CAGGGCTCCGTCTGGAGGGGGCAGGTCTGAGCAGGTGGAGCAGGGACAGG
-AGGCCGAGGGCTGCATCAGAATCTCCGGGAGCGTGGGGGCTTCCACTGCT
-CTTTCCGGTCCTGGGGGCTTGGATGGGGCCCAGAGCTGGGTCCTTCTCTG
-ACTTCCCCGGTGACGCTGCCTCATAACCAGTGCCGCTGCCAGAGGCTCCT
-GACCTGTGTCTGGATGCTCCTTCTGCCCTGTCTGCCCCGTATGAGGGATG
-GTTGTCCCTAAGATCCTCCTGACAGCCCTCGGGCCGTGAGTGTGCGTGAT
-GTACCTGGTGCTGGCCTAAGTCCTTCCATCCACGCTCCCTGTGATCCTCA
-CAACATCTGCACGAGGCAGGCACAGATGGGCACGTGGAGGTGTGTGTGTG
-AGGCCTCCCAGCGGTGGGGATGGTGCTGGTCCTGGCCCGGACAGGCTGAC
-CCCAAGCCCATGTGCCCAGCACTGAGCATCTCTGCCTCTGAACCTTGCCC
-CACACTGAGGCCGGCCCAGGATAGCTGGCCCTGCCCAAACAGACCTGTCT
-GGCTCTGAACTTTGGGCTGTGCTGCCCCAGTGCTGGAGGAGGCGTGGTCT
-CCAGGTATTCCCTGTGGGAGTCTCTGGGCACCCTTGGTGTGGCAGCTCCG
-AGTCTCTGGGTGGGCTCAGGCAAGATTCTATAGCCCAGGTTCTGTGTATC
-CTGAGCTTCACCCCCAGACCAGACCTGGCTGCCATGAGGTGGGGTGGGGT
-TCTTGCAGCAGGGCATACGGAGGGAGGGAGGCTTGAGCATAAGGATCAAT
-GATATCACAGGAGAGAACAGGACAGGAGACAAGACGGACCCACAGAGCTT
-GGGGCCTGGGGAGAGGACATCACTGTTTCAGGGAAAAGTGGATGTCCGGT
-CCCTCTTCAGGCTCTCTTGGAAGTGTGGGCACCAGGATGTGCAGAGGCCC
-CACCAACTCCTTGCCCTCGTGGTGCAAACCTCCGCTGTGGGGGCTTgggc
-tggcggcacaggcgtggaatctgtccaatcctcagaagcccccgcgcttg
-gtctgaggctcgctgtccttgacctgcaattcggtttttttgagacagag
-tctcgctctgtcacccaggctggagtgcaatggcatgatctcagctcact
-gcaacctccacctcctgggttcaagcaattctcctgcctcagcctcctga
-gtagctgggattacaggtgcccgccaccacgcccagctaatttttgtatt
-tttagtagagacagggttttgcctgacctcaggtgatccacccgccttgg
-cctcccaaagtgctgggattacaggcatgagccactgtgcccagcctgtc
-ctgcaattcttaataattaacaatattgaggtccaatgggacaaaggagt
-gagcagaggagatccatgaaatacacacgcccaggcccctcagtgcttca
-tttgcagacagaatttgtgatgcctcaggagcgcagacgtctcataggcc
-cacaatgggtgggtgttccgtgaggctgcacatcaatggaacaccaactc
-attagggccattgaaggccacgctttacaatcaaaccagaagccacttcg
-aactcagaacagaaagaagcccgtgttccaacaagcataaatggcacagg
-gacccgattgcacctgttttttactcctgatattGTGTTCATGATACTaa
-gtgaaataaaaatagttgtttgttttgtgcgaggtctccagtgctttgct
-gagagcaaaacgcacacacatgcacgtgccacgaaacatgaattgtagaa
-ctgcagtgattccgcccaagaatgaagtggtcttacctctgcgagtgcaa
-ctggtgtgtgtgctgggggaacgatggtcaaattcacactattaaAGGTT
-TTTggctgggcccagtggctcaagcctgtaatcccagcactttgggaggc
-aggcggatcacctgaggtcaggagttcaagaccagcctggccaacatggg
-gaaaaactccgtctctactaaaaataataaaatagccaggcttggtggtg
-ggcacttgtaatcccagctacttgggaggctgaggcaggagaatcgcttg
-aacccgggaggcagaggttgcagtgagctgagatcgtgccattgcactcc
-agcatgggcaacaatagcgaaactctatcttaaaaaaatatatatatatt
-atatatatatatatatgtatatTCCAACAGAATTCCTAACAGGTGAAGAG
-GAAGAGCTGAGAGGAGGACAAAGGACTTGCCCAGGAGCATATTTCAGCTG
-AACTGTGGAGAGTTCTGACCCCTGCACTTCTCTCCTAGGAGTCAGCACCC
-CCATCCTAAGGGAGAAACCAAAGCCACTCATCCTGTTCCTTGTGTAGCCC
-CCTCACCAGGCTCCCCACCATGGCCATCTCCCTCAAAGGGGAAAAGTCTG
-GAGGTGGGTAGACCAGATGAACAAGTGTTGGCAAAGGCCTGGGAAGAGAT
-GGTGTCCCCAGATTATGACCAGAACCTCCAGGGTGAGGACGGAGATATTG
-TGCCCCTCTGAATGAGGGGCACGCTCATTCAGAGAGTTTAGAAACTGTCC
-TCTGCTCCGCTCTGTCACCCGGAGAGGACGCTGGGTTACATTAACACTTT
-ATTGCTGAAGACTTTGCTTTCAGCAGATGTATAAAAAGGAAGAGAAAGGT
-CTTTAGCAGCCATGGAAGGTGTGATTGGCCAATGCAGGAAAATATCAATA
-TCCCAACAATATTGAGCTCCTGTTTCTCAAACTGTAAGTGACATAATGGG
-CAGAAATGAGGAGCATTATCGGGCATCTCCAGTGGGCACGCTGGTGCACA
-CAGCATCAATCCACAATGCCCATGGATGTCCCCTGGCAGGGAGATTACAT
-AATGCTGAGTGACAGCTGACACACTTATTGCCTGGAGGGAGCCCACCTTC
-CAAAGGCAGGAATTTAAAGTCTCCAGCTGGGGGATGAGCCGATTCGTAGC
-CCATTGCTCAGGGCTTTGACACACAACTTTGCACCTGCTATTCTGCTGAG
-GGATGGCACTCAAATCCTGAGAGCATGTCTCCCCAGAGAGAACCTTACAT
-GTCTTGGCAAAATTAAGATGACTTTGATAGGGACACATAGCAAATGCTTA
-ATGACTTTTTAACCTTTTATGACTTTAGTGGGTGGAACTGCCAGACAATT
-GATCATTGCACTGACCTGCAGAGATGAGGAGGAGGGGAGAGCTGCTGGGT
-ACAAGTTGATCTCCTTCGCCCCTCAACAGCTCCAAATAATACCTGGAGCC
-TCAGCACAGATCCCAAGCCTGGGCCTCATGATGCCGGTGTTAGATACCCA
-GGTCCCTGTTGCCACTTGTGGAACCCGCCACAAAGAGTGGACCCTGAATC
-ACAATGAATGCAAGGGGCAACGGCACCTGACGCTGCACCCAGCTAGGATG
-TTTGTcccccactccagcctcactccctcctccagcctcacctccctctc
-cagcctccccccactccagcctcactcccactccagcctcccctccagac
-tcactccctcctccagcctcacctccccactccaacctcactcccactcc
-agccttccccctactcgactcactcccactccAGCCTCCCCTCCACTCCA
-GActcactccctcctccagcctcacctccctctccagcctcacttccctc
-tccagcctcactcccactccagcctccccctactccagcctcccccccca
-ttccagcctcactccctcctccagcctcaactcccactccagcatccccc
-cctcctccagcctcactccctcctccaACCTCACTACCTCCTCCAGCCTC
-ACCCATCCTTCAAcctcatcccctcctccagcctcactccctcctccagc
-ctcactccctcctccagcctcactccctcctccaacctcaccctctcttc
-cagcctcactcctcctccagcctcacccctcctctaccctcacaccttcc
-tccagcctcaccccctcctccagcctcaccTCTTTTCCAACCTCCAGGCT
-ATTGAGAGCGAGACATGGGCGTGAGTGACctggggctgccataacaaaac
-cgcaccgtccaggcagcttaaacagcggaaattttttctcttggttctgg
-aggctggaaatccaagatcacagcgtgggccgggctgcttccttataggc
-tgtgagtgacaatctgttctctgcaccttttcagcctctggtggccttgg
-gtgctccttggcttgtagatggttgtcttctccctgtgtctcttctcatc
-actgttcctccatgcacgtctgtctgttttgccaaagttttaatgaggat
-aacagtaactggcttaggacccacctgctgacctcgtccaaacctgatca
-tctgcagagacgctcctcccaaatgaggtcacactcacaggccctggggt
-tctgcctttagcatctttggggagacacaatgaaaaccacaacaCAGGAG
-GTTTTCTCCATGGGGCCTCCCCCAGGGACCTCTTCCTCTTGAGGTTTTTT
-GGCATCTTGGTCATGAAAGCCGTCCCCAGCACTGGAAAGAAGCTTCCAGA
-TTGCATTCCTCTATGTGTTGGCACCAAACTCACCACTTTGAGGGAATTGT
-AGGTTTTGTTCCCGACACCCAGCATTTACAGACTGTAGATGCAACAGACC
-TCAGAAACGCAGACGCCCACGTCGTACTAAAGTGATGGTAGAGGACCCCG
-CTCCTGCTTCGACTAATTAGTCAACTCTAGGGTGGGGGGTGGGAGCAGAG
-GCACCTCCTGGGGGCACATAGGACAGTGGAGAGCTGAGTCATGATTTCCG
-TTCCCTGGCCTGGGGCTGAAATAGGTCCCCCAAGGCCTCGTGCAGTTCTG
-GGCACTGAGCTCCCCTGACCACGGCTCCCTTGAGACTCAAAAGACAGGCT
-GTGCAGTGATGCAGCACTGTGGTCAAAGCTCCGCCTCCCGAGTCTGCGCT
-GACCTCCCGTCCGTGGGTCCCATCGTCACTGCTCTGCCCGGCTCCACACT
-GCAGAGTCCCTGGGAGGGGCCTCTCCAGGCAGATGCCCTACCGGGAGCCT
-TGGCCTGTCCCCGGGAGACACTGTCAGGCCAGTGTTGCAAGAGCAGAGAC
-TGTGGGGTGAAGTGTCGCCTGTAAAGAAGTCTCAACCAGGACCCCAGCAA
-TTCTTATACCCATAACCTTTGCTGAGGAGGTGGGCAATTGCCAGCCTAAG
-CCTCTCCCCTGAGCCCAGAGCAGGGGTGATGCCCGTGAGGAGCAGATGTG
-AAGGCTGCGGGTGTCAATGAGCTGCCTCCGGGACGGGCATCGTCTGCGGC
-CTCTGCGACCTGTGCTGGCTCCTCCGCGACCATCCGCGGAGAGTCTTGCC
-CTCCCCTGCAGGTGCCTTTCTGGCCATTTGTCAGTGTGGCCATCAGTGAC
-CATCTGCAATGCGAGAGTTAAATCACCACTGATGGCCACAGTGGCCGTTG
-CAGAGGCATTTAGACTACACTTACGGGCTTGTTTTAGGAAATGGTTCATT
-GGAAAAATATTTTCTGCTCAGCTGAAAGTTTTACTGCAGGGAACACAGCA
-CATGAATTTGAAACACAAATTCAGGGTATTCGTGTGTAAAGTCTGACCTT
-TCCTTGAAATGCATTTCACAGAACATCCTGTAACTGGTCCTCCCAGGGAG
-CGTCAAGAGCAGGTTCTCAGGGAGACACTGCTAATGTTGGGGCCATTCCT
-CCATGCCGGCTGCCTATGCCCATGACCGTTGCCTgaaaatttgctggaaa
-atttcctggaaaatttgctggaaTTCTGCATtgcagtgggtggaataatg
-tccccccaaattcacgcacacctggaacctgtgaatgggaccccagctgg
-aaatactgcctttgccaatgtctctgaaggaccttgagatcattctgaac
-ttaggataggccctaaatgcaatgacaggtgtccttatgagacagaagga
-ggccaggtacagtggctcatgcctgtcatcccagcattttgggaggctga
-ggctggaggatcacttgagcccagggcttcaagaccagcctgggcaacat
-agagagacccggtctctacaaaaaaattacaaaaaaaaaaaaacaaatgt
-agccaggcacagtgatgcatgcctctggtcccagctactcgggaggctga
-ggtgggaggttcaaccactagggcccaaaaggttgaggctttagtgagcc
-atgattgcaccactgcactctagccgcagcaacagggcaagaccttgtca
-aaaaaaaaaaaaaaaaaagaaaggaaggaagaatgaaagaagaaaaggag
-agacacagaaaaggtcacaccaagacaaaggcagagattggagttggagg
-gatggggccacaagccaaccaataccgggcatcaccagaagctggaagag
-gcaggaaggatcctcccttagagACACTGTAGGAGAGCTGCTCCGGTGGG
-CTGATGGCAGGTGGCTCGTGCAGTGAGGTGTCCTCTGGAAGGACTGGCAA
-AGGGACACCTGTGAAAAGATCAGCTGTCCAGCAGCAACTGAAGGCTCCTG
-CTGGGTGCTGGGCTCTGCCTTGGTGGCAGGGCACGGCCTCCCCGAGCTGG
-CTTGTTCCTGCATTTCTGGTACCCCTTCTCTATCTGAGGGCTGAGTCTGC
-AGATGAGCTATACGGGGCTCCTCTTGGGGCTGAGGCTTTGAGGAGCTATA
-TGGAATCGACCTTATGGGATGTAGAGGTCATGTGGAACAGGGGAGGGAGA
-GACATGGTATGGGTCCTGGGGTGGGGTGAGCTGCCCCTCAGAGCAGCTCT
-TGACTTCTGTGCCATGAGCAGCAGCTATGAGGAGCCCAGCCTTCTGCTGC
-CTGCCCAGTACATGGGATGCACTTAATACCAGACTTCAGGGAGCTGCAAG
-GGCCTAGGAGGACAGCCCGGTGCTAACCCCAGCTTCACTTCATCTTGAAG
-ACGAAGCTGTGCCCAATGGCATGGTCTGGTACAGCCCGGGATGAGGCCAC
-ACTGGCCGAGAGGTGCACAGGATGAGATGAGAGGGCACCTGGCCCAGCCC
-CCACTCGGGAAGCAGGCAGAAGAGCACCTGCCAGCCGCTCCCGATGGCCT
-GCAGGATAGGAGGCACAGGGAGACAGAGGCATCATGACCCAGGCACTCGG
-CTTGGGTGGGGGCTCTGAAGCTCAGGTTCAAATACCCAGGGGCAGCCTCT
-GCTCATGCCAGTGGGAAGTGTGTCACTCCAAGCCGGGTTTCCTCTTCTGC
-AGAGGAGCCCATGGAAAGGGTGGACCTCCCTCTCCCACGAGGAACGGCAT
-CTCACGGATGGTGGATCGGAAGCACTTCTCATGATACAGATGGAATTTGT
-GGGGCAGAGTGGAGCTTTAAGCAGCCAAACTGAGTGAAACACCAGCCAAC
-AGACACAGAAGCAAGCACCACGTCAGACCCCACAACCAGGCTCAGAATAC
-CAAGGGCCACCTGCTGTAGCTAACGGAGGGGCCTTGCAGGGCCAAGGCTT
-CCCCAGCCCTGGACCCCCTTGCACTGGACACACGGCTGCCGTGACCCACA
-GCAGCTCCTAGGGCTGCTGCAGATCAAGTCTCAAGGACAGAAAGGTTATG
-CTGGGGAGCCGGGACCCCTTCTCCTCCCCTTCTGCTCAGGCGTTGCCCCC
-AACCTCTCAAGGGGCCTCCAGGGCCATTTAGTGTGGTGGCCGTGAAGCCA
-CGTGGCTGCGTTGTTTAATGTGGGGTGGAGGGTTCTGCTCCTGCGTGGCA
-GAGCACTTGGGCCAGGGCCCCGAAGGTTGGGTGTTGAGTTCCTTGCTCTG
-CCATCTGTAAATAAACTTGGACAGAATTTTCATTGATCTCATCTGCGAAA
-TGGGCATGATAAATAACAGCAGCACCCTCTCCACCTCCGTCAAAAGACAA
-AAGGGGAACTTTGTAAACTCTCAATTTGTGGACAGATGATGGTCAGCATT
-CCTTCCTCCTCCCTTTCTTGGCCCAGCCTGTTCCACAGAGGAGCACTTCC
-GCCCCATAATAATGCAGTGAGGGGCACATGTCCATGAGAACATCCAGCAG
-CAGCCCAGGCTGAGCTCAGCGGCAGCGTCACACCCAGGCTTCagcagttt
-gtactcacaacctcttatgatcagcgcaagaatcttagaacagagctagc
-atttcccccatgttacagaggaggaaactgaggcccagagagtttcagca
-actCCTGTAAGATGGGACACTGTCATTCCCAAGCCTAAATCTGTGACCCC
-TCCATGGGCAGCAGCTCCACAGGGAGAGGGAGCCAACATCCTCATCCCTG
-GGCGCAACATGCTTTCCTTCCATTATGTTCAAAATTTCACAGCGAATAGA
-TGAGATTTTCTAAGCAGTACGATGCCCCTGAGAAGACCATTTTGTTGTCT
-ATGATAAGAAATCATTTTGGATAAAAAGTGACTGCTTCAGATCTACAAGC
-CACAAATCGAATTAGACGTTTTGCTTTTGGGTCTGAACCTCTGCAAATAA
-GACACGTCATCTGAAGACAGAGGGGCGCTGGGGTCATCAGCCATCCAGAT
-AGGAATAAGCCAGGTTTCCTCCAGGGGTGCCCAGCGGAGCAGGTACCAGT
-CAACAGGGCTCTGTGCCGCCAGCGAGGTCCCAGCACGCAAGCGGACACAT
-TTCCGAACGGAGCTTCTCAGAATCCTGTTTGGGTTACTTTACTCTATTTT
-TGCTTCTAAGTGATTAGATAAACAGATGGACCCCCCCCCCCCATGCCCAG
-AGCATTTCCAGAGAGGATCAGCTTCATATTTCCAATCaattaaaaaaaaa
-aaaaaaaaaGACGAAGGCTGCTGTCGTGGAAAGATTACTAGCTGTGTTTT
-AAGAAAAGATAGCTCCggctgggggcggagctcacacttgtaatgtcagc
-actttgggaggccgaggcgggcggatcacgaggtcaggagatcaagacca
-tcctggctaacacggtgaaaccccgtctctactaaaaatagaaaaaaatt
-agctgggcatggtggcaggtgcctgtagtcccagctactcaggaggctga
-ggcaggagaatggcgtgaactcgggaggtggagcttgcagtgagcggaga
-ttgcaccactgcaccccagcctgggcgacaagagcaagactgtctcaaaa
-ataataaaaataaaaaataaaaaaaaGAAAAGATAGCGTTGGAGCTATCT
-CTGCCCCCACGTTCCCTAAGGAACTTCTGTGACGCTATGGCTTCCAGAGT
-GTGAGGTGCTTTCTCATCCTTCCATGAACATGCGGCGGGAAGGTGACACC
-TTCGTTAGGGAGCCCCCTTTGGGCTACACTGGCACGTCTTTCTCCTTGTG
-CACACGTGGCTCAGAGGGGCCGCCGTCCAGACACGCAGCCAGCCCTGGAG
-GCTGGGGCTTCCCCTAACTCCTCACAGCCATCTGCTTCCCTCCCACCATG
-CTGGCCCCATCAGGTCCCCCTGCCCCTGGGGCCTCCTGTCCTCATCCCCC
-AAGCTGGGCCCTGGCCAGAGCAGCTTGAGGAAGATGGAATTTTGACTCAC
-AAGGTCTGTTCTTTGCTGCTTGGCAAAATGGAAGAATAAAGTACCTGTGA
-GAACCGCGTGGTGGCCTCCGGGGGGCCAGGGCTCCCTGTTTCCTTAACAA
-TCCCAGAGACCTGGAGACTGGCCAAGCCCACATGTGGACAAACCCAAGCA
-GGACTTTCCCGTCTTCTTCGGCTCCTCTCGGCTGACTTTTAAGCCGGCCC
-CGTGGGGTGTGGCGTTCCTTGTCACAAGCCGCAGAATTCAGGGTTTCCCC
-ACTGCTGCCACAGCCTAATACTTGTCTTGTTATTTTCTTGGGCTAAGGGT
-TCTGACCAGCACGCATCTTTGAAACGAGTGAGAATGATGTTCCAATTTAA
-TCTCGCAGCATCGGGAGGGCTCCAGGCTCCAGGTGGGTCTCCTGGGACCA
-TTTAAAACGATTATATATGAGCACAGTGCTGAGAGAAGAGCCCCAGAAAC
-ACTTACTCATCAAGACACACAGCCACCAGGGCTCGGGAAATGACCTGGCT
-TCATAAAAGCAGCCACACTCATTCATTCACGCGCTCACGGAGGAGGCCGC
-GGCGCCGAGCCCTCCCAGGAGTTTCTTTCACTCTGTCGCTTTAGGTTTTG
-AACACAGTGCACTGCACCTACGGTTTTAAGATCTGCGAAAATGGAGGCTT
-CTCCTCCGTCCTCACGCAGGGAAGCAGCACTGGAAGCATGTGCGGGCCGT
-GTGTGTGAGCATCTGCCGATGTCTCGGGCTGGAGGCTGGGACACTCATCC
-CGGCTGGAGCTGAGCAAAGGCTGCTCATGGACAAGGAGACAGGACTGTGT
-GACCACCTGCCCCGCTGTGCCCCACGACGGCACCTCTCAGTGGGATGCCT
-GGGGCCTTTAGCGCCAGGAGTGTGCAGGCCAAGGCCGGCGGGCCTATGGT
-CACATTCCTGGTGACTTGGTACTTCTCACCTTGGTGAGACTGCAGAGTCA
-GTGCTGCCCAGGGACACGCAGAAGGAAACCCACAGGTGAGGCTCCGGGCC
-ACCTGCAGAGATTCCTGGGAGCATCCTTGTGGCCTTCCCTTGAGGTGCCC
-TCACTGCTCACCTGCCCGCAGAGGCCAAGCTGAGGTTCGGGGGGCCAGCT
-CCTGCTTCCATTCCTACGATGATGCCTTCCTAACTCCAGTACAGCTGTCC
-CCGCGGCTCGCCCCTCACCTGTGTGCAGCTCTGCACCTGTGGACACAGCC
-CAGCCCCAGGCCCTGATGAGAACGAAAAGGGGAGAGACAGGCAGCTGTGC
-ACCACCCACGATCCTGGGAGCCAGGCGTCCACCCCAGAGGCTCCTCCCAG
-ACAGGGTCAGCCTAACCCAGCTCCCAGAAGGCCCAGATGTTGCAGGGGCC
-CGACcacacacacatgcacaccacacacacacatcccacaccataatcat
-acacacacatcacacacatacacacacatcacacacatacacaccacacc
-acaaccatacacaccacaccacaaccatacacacaccacaaccatacaca
-ccacacacacacatccaccacacacatcacatacacttaccacacacaca
-aagtcacatcgcaaccacacacacacatacacacatcacatacacaacac
-aaccacacacagcatacacagacacacactacaccataaacatacacaca
-cgccacaaccacattcacaccacacccacacacaacaaccaccacatacc
-acacacacacagcatacacagacacaaactacagcataaacatacacaca
-caccacaaccacattcacaccacacccacacacaacaaccaccacatacc
-acacacagcacacacctctcacaacacaccacaaaccacgcaccacacac
-cacacacaccaccaaccaaaaccacacaacccccccacacacacaccaca
-cacacacaccacacaacccatcccaacaccacatacccccacacacatca
-cacacacatgcacacaccctacaaccacacacaaaccacacaccacacac
-atacaccaaacaccctacagccacataccacatacacacacacaccacaa
-ccaTGTACCATAAACCACACACATACCATACCACACACCACTCACTACAC
-CCACCCACACTCAGGCATGTAGCTCACcacacacaggcaccacactcaca
-cacaggcacacacacactcacacacacaccgacacacacaggcatcaaaa
-catacacactcacatacacacaggcacacacagccatcacaacacacaca
-caGCACCCCCCAACACACTCCTTCCTTTGACTGCTGTCTACACAGCCTCC
-AACACGAGTGCAGGCCAACCTGGGCGTCCCGAGGACACACATCCTTCAGT
-GTTGGGCCCCAGGCCACTGTGAGGGTCAGTGTGGAGGGAGTGCCTTGCCC
-CGCCGCCAGACCCTTGGCAGAGAAGGCCTTGGTGGAAGGCCCTGCTCCTG
-GCTCTTGAGTGACGGCATCCGAGGCTCACCTCCAGCCAGCCCCGTGCGAG
-GAGCATCCCCCACGGTGCCTGGCCGCCTCCTGAACCTCAGGAGTTCCCAA
-CACAAGGTCCGCAAGAAGCAGCCGTGCCATGAGATCCAGAAAGCGGGAGC
-CGCAGGGACAGGCCTGGGCAGAGACCCCTGACTCCAGGCAGAGGCCATCT
-GTCCTCCTCCCACTCCCGGGACCTGGCTGAGGTGCTCCAGCCCTCCTGGG
-CCCACAGCAGCCTTCAGACCCGACTCAGCTGTGTACTCTCCTTGCACCAC
-GGTGACTGTGTCTCGGTCTCTCCTCCATGATCCCCGACACACACCCAGCA
-CTGCAGCCACCACATTCACCCCATGTGCACACCTGGGGCCCAAAAAGACT
-GCAGGTTTCTCAAAGATGCCTTGCAGAAGTCATCGGGGAACCTCCAGCTC
-TGACAGGGCCTGGCCCAGACTGGGTTCTAGAGAGGCACCGCTGAGCTGGC
-TCCTGCCCTGCATGCATTCTGCCACGTAAGATGACATTGGGGCCTGTGCT
-TTACATCCTCTGCCAGAAAGAAAAAACATTCAGGGCCAGAACTTGGCCCT
-CCAAGTCCAAGGCTGGCCTTAGCACCGGGAGGGATGGGGCAGATGGCCCT
-GGGGAACCACAGCCTGACCCTCCCTGTTGGGACCCCACAGAACTCGAGGT
-CATTCCCACTGCTCTCCACTCCCACCACCACCCCCAACGATCTCTTTCCA
-CCCCACAGTTGAGCACTTTTAGACACTAGCTGCAAAGGGAGAGATGATTG
-ATTCATTATTAATCTCTTCCAACCTTTGTCTATGGCGGGAACGTGCTACC
-TGTGACCTTTGGGGAGTGAGAAGCCTTGCTGTTTGTGTGCCGGGTGTCCT
-TGTTAGACCGAGAGGGACCTGTGCAATGAGACATGGGTTTCAGTTTTGGG
-CACACAAGCGTCAGTAATCCACAATTGAATGATGCTGCCATTCACAAAGA
-TGAACTAAGGTCATTATCTACCCTATTAAGGTATTTACAACACGTGCCTT
-CCAAGGAGAATGTGGCTCCTCCCACTGTCCCATTGTCCAGGCCAGGGTGA
-TCTGAGTGTTGGAATCCCAGGGTTGAGGGGAGTCCAGGACTGGCCTCCCT
-CCTCTGGCTGCTGGGCAGGCTGATGGATCCAGGCTGATTCGCAGAAGATT
-TGGAAAAGATGAGAGCTCTTAGCTGCTTTCTGGTCTTTGCAGCAAAAACC
-TGACCTGCAGGCTTTCTTCAGGCTTCTCCAGACCGACCAGGAGGAGGTCA
-TGCATGGTCAAGGTCATGTCTCAGAAGAAGCCTCTTAAAAGAAAGTTGGA
-AGGGTGGGTTTTCATAAATATCTTTTGGTGAAGGCAGATGCTACAAGTCT
-CTTTGAAAATGAAGACTTCTTTTCCTGAGAATTATAAGAAAAGATATGAA
-AGATATTAGTAGATTAACTTACAATATAGAAGCCCGGAAAAGCCATTGAA
-ATCCACGGGTACAGGCACAAGGAAGTATAGGACAATGAGGTGAAATGAGC
-TGAGATGATATAACAACTATAAGAGGGAGAAAAGAAAATCCCAGCCTGCT
-ATCAGCGCTGCTATTACTAGTTTTGACAAGAGAAATATGCTTTCATGATG
-GGATATTGTGTTTTCAGTGAGTCTAGTAATGAAATTTTTAAAAACCCAGT
-GACGATCCAAATTTTAGCTAGGAAGCCTATTATTAAAATTGATAACACCA
-GCCTAATGTATTCTAAGTTATGGGTACAGGAGATGATAAATATTGAGCAT
-TTGCATTGTATAAAAATGTTTTAGTAGATGGTTTTGTAGTCAGGAAGATT
-AGCTGACTCTTTGATTGGCTGCTACAGAGCAGGAGAATAAAGATAAATGC
-TGTAAAACGCGTATGTACCTCAAGGGAAGTGTTTGAAATGATAAACGGCT
-TCCTTGTACTCCTCAAAAGCATTTACTTCTAATCATTGCATCCCATTTCT
-TATTTGGACCTGAAGTACCTGCAGGAGAGCAGAAGGCAGGCCCAGGAGCG
-CAGCCATGGGCACGTCTCTCTCACCATCTCCTCTGGCCACAGGAGACAGG
-GTTGAGGGTGAGGGCCGGTGGAGTGTTTCCATCCCGGGATAATTTCATAG
-TCCATACTTGGGATGTTCATGTCCCTGAGCCCACTCACCTGTCTCTTATT
-GAACCTCCTGTCCCTGGGGCCTGGAGTCCAGAGCCCCTCCCTGCAGACCT
-GATTTGGGATGTTCACGTCCTTAAGCCCACTCACCTCTCTCTTCTCGGAC
-CTGGTGTCCCTGGAGCCTGGGGCCTGGAGTCGGGAGCCTCTCCCTGCAGG
-CCTGATTTGGGATGTTCATGTCCCCGAGCCCACTCACCTGTCTCTTCTCA
-GACCTCCTGTCCCTGCGGTCTGGAGTCTGGAGCCCCTCCCTGCAGACCTG
-ATTTGGGATGTTCACGTCCCCAAGCCCACTCACCTGTCTCATCTTGGACC
-TCCTGTCCCTGGGGCCTGGAGTCCGGAGCCCCTCCCTGCAGACCTGATTT
-GGGATGTTCACGTCCCCGAGCCCACTCACCTGTCTCTTCTCGGAACTCCT
-GTCCCTGGGGCCAGGAGTCCGCAGCCCCTCCCTGCAGACCTGATTTGGGA
-TGTTCACGTCCCCGAGCCCACTCACCTGTCTCTTCTCGGACCTCCTGTCC
-CTGGGGCCTGGAGTCCGGAGCCCCTCCCTGCAGACCTGATTTGGGATGTT
-CACGTCCTTGAGCCCACGCACGTGTCTCTGCTCGGACCTCCTGTCCCTGG
-GGTCTGGAGTCCGGAGCCCCTCCCTGCAGACCTGATTTGGGATGTTCACG
-TCCTTAAGCCCACTCACCTGTCCCATCTCAGACCTCCTGTCCCTGTGGTC
-TGGAGTCCGGAGCCCCTGACTGCAGACCTGATTTGGGATGTTCACATCCC
-CGAGCCCACTCACCTGTCTCTTCTCGGACCTCCTGTCCCTGGGGCCTGGA
-GTCCGGAGCCCCTCCCTGCAGACCTGATTTCGGATGTTCACGACCTTGAG
-CCCACTCACCTGTCTCTTCTTAGACCTCCTGTCCCTGCGCCAGGAGTCCA
-GAGCCCCTCCCTGCAGACCTGATTTGGGTTGTTCACGTCCCCGAGCCCAC
-TCACCTGTGTCTTCTCGGACCTACTGTCCCTGGAGCCTGGAGTCCGGAGC
-CCCTCCCTGCAGACCTGATTTGGGATGTTCACGTCCTTGAGCCCACTCAG
-CTGTCTCATCTTGGACCTCCTGTCCCTGCGCCTGGAGTCCGGAGCCCCTC
-CCTGCAGACCTGATTTGGGATGTTCACGTCCCCGAGCTCACTCACCTGTC
-TCTTCTCGGACCTCCTGTCCCTGGGGCCTGGAGTCCGGAGCCCCTCCCTG
-CAGACCTGATTGCTGTGCGTGCCATTCTGCTGGCTATGATGTAAGTGAAA
-AGCCCGGTAGTCCCCACTTCCTTAAGTGGTTACAGTTTCTCCCCCTCAAC
-AGACTTTGTTTTCATTGTCGTCCTTGTTGTTTCCTCCAGTCATTGTCACT
-GGGCCATAAATGTGGATGACATGGCACTCAATGACTATTGTCTGAAACGT
-GAAGATGAAAGCCTGGGGTGAGAAGGGAGTCTCCGTTTGTCCAGGTCACA
-GGCAGTGCTGGGCATAGAGGTAAGGGAGGCACCTAGAGGCAAAGCTGTAA
-GGGTATCCTCACTCTCAGTTTACACCCTGGAGGATGGGCACCTGCATGCA
-CTCTGCCCCTTGGGCACCTCCCCCGCCTCCCTTTAGCCTTGGCAAAGGAT
-TGCAGGGGATCCCTGTCTTGCTGGCGTCAGCCGGGCTGGGAGGCACTCAT
-TTCCTATCCTGGCAGCCAGTGCTCACACACTTCTGGGGTTCACCTTTTAC
-AATCTCATTTAATTATGCAGTGTTCAGTGGAAAGTTGTTCAATCTCTCTT
-TCCCAGCCCCCAACTCAGTCGTGAATTCCTAGTAGCACAGTATCTTTTCT
-TATGCTGTGACCTCAGCACGCAGCTCAGAGGCTGAGCTCAGCgagttggg
-agtgactaagaagtgaggcatttctttctcagtgtgaaaaaaatattctg
-gaattaatgataatggtcacacaatactgtgaatatactgaaaactgttg
-aattgtatatttttaaatgtgaattttatgctatgtacattatatctcaa
-CTTCAATAAAAGAACGTtgtattagtttgttctcacactgctaaagatat
-acctgagactaggtaatttataaagaaaagaggtttaattggctcatagg
-tgtgtgggccatacagccttctgcttctggggaggcctcaggaaacttac
-aatcatcacagaaagcgaaggggaagtaggcatatattcacatggccagc
-aggagagagagagagggaagggggaaacgctacatactttcaaacaacca
-gatctcatgagatctctatcaggagaccagcatgggggaggtccactccc
-atgattcaattacctcccaccaggcccctcctccaacactgggaattaca
-attcaacatgagatttgggtggggacacagagccaagccatatcaTCTGT
-GGagacatctgctccagaccagatgggatagccccaattctccctgctct
-ttcttctttgctaagcatagctataaattccagaaatcacgcaagagaca
-aataagacaaccctggaagatggtaagaagaggcaagctggtttggcgct
-ccaaggctgaaggaacagcacagcatcagggtctctcatgttccccctaa
-ccaagagaaggaaaccaagacccagagattccataaccctcacttagcaa
-cacagggtggccaacctaggccctttcctcctttggactctgcagaagta
-cctctgacaacaccaggcaaggctgacaccacctgtaaggggattgattt
-tggtccctgaaggaaacaagcagcagggtggatgggggaggcccttcctt
-tccttgctgggcctgagatcccttattccactgaaagacagagattaatc
-agcaaagctggcagaggagacccagctgcaaggaaagccctagcctggga
-agtttctttcttcccacattcccaagactcccctccccacactgagacta
-aggcaagagcagtaccagtgggggtgcctcaccataactttcccacaggt
-agacacccaggggccaagggaaactccttcttgcctctaaggtgacagca
-gcaagaaccaatgtgagcctcaatggaaccagataaaccaagaacaccaa
-aacaacacggcaggtactctggacagttcacctgcgattggaatcacagc
-acaaggaagtctgccagggtctgcacaggaaacataaacagatgactgcc
-tgctaacgtaaacgatttaagtggaacccagagtgtcctctcattacaga
-caaaatgtcaggaatacaatggaaaatcacccatcctactaatcaccaac
-acaatctcaatttgaatgagagaagacagtcaactgatagcaattccaag
-ataaatcagatgttggagttgtctgacaaggactttaaagcaggcataaa
-aaaaatgcttcaaccttctatcacaaatgctcttgaaagaataaagaaaa
-atatcagcaaagaaatagaagtttaagaaagaaacaagaaatattaaact
-gaaaatacagaaaacaaaaatacgtgctggatgggcttaataatagagta
-atagaatagagataacagagaacaaaaccaacgatctggaggacataaca
-atagaattcccctaatctgaacaagagagaaaatagactgaaaacagaag
-tggacacagcctctgtgatctgtggtaaagtaagcaacagagccaggttg
-atatcatcacaatcccagagaaaaggagaaaaagagtggggctagaagag
-catttgaagaaattatggttgagagcttccaaaatttggcaaaagataca
-aacatatagatccaagaatgtgagtcaaagcagaaacagactaaaccaaa
-ataaattcataccaagagacatcataagtaagattctgaaaactaaagaa
-aaaaatttaaatcagccagtgagaagtgacacatcaccataggagaacac
-caatttgaatgacaatttgctcatctgtcaccatggagaccagaagaaaa
-tggcacaacacttttcaattgctgaaataattgttaaactgtgaattctg
-tatctggcaaaactatccttcaggaacgaagtacaaatggaaatgttatc
-aaataaagaaaagctaaaagaatctgtcactaactagatctaccctcaaa
-gcttggccaagtaagtacttcagacagaaaggaaaagataaatgaaggaa
-acgtaggcatcaggaaggactaaggaacaagggaaagagcaaaaatatgg
-gtagaggcattttcctgattaatttcacaaaccacatttgatgattaaaa
-caaaaataataccctctactacccaagataatgatattttaaaatgagga
-agacaaaaggaactaaatagaagaaagcttttcacactttacttgacatg
-gtaaaatgctgaaaccagtagactgttactagtcactgatatatattaga
-atacccagagcaactactactaaaacaataccaaaggatatactaaaagc
-actatatgtaagtcaagacaaaatcctcaaatatgataaagtaactcaga
-ggaaggaaagaaaagggaaataaaaatctgacaaaaagaaataaatagaa
-aacaagatggaaggcaagtaccaacctatcaataatcaactgaaatgtag
-atggtttaaatacataaatgcaacaagcaatcacacagggatttgcagag
-tgaatgtggacacacacacacacacacacacaatccaattatatgctgct
-tacaagaaactcattttataatcaatcgtataatcaactgaaaataaaag
-gatagaaaaagatatgccatacactatacagtcattaatacaaaattaaa
-aagtaatggctatgttaatatctgataaaatacactcaatgccaagagaa
-ttactagagacagtgagagaccttatataatgataaaggatcaatctctt
-ataagacatgctaatcctaaatgtgtgcacaaccaacaataaagcctcaa
-aatacataaaacaaaaactgatggagcttaaaagagaaaagatcaattca
-taaatatagttggggggctttactattgtcctctcagcaactgagagagc
-tgtatgaaaatcaacaaggttatagaaaagctgaaatatataatcaaaat
-gcaggatctaattaacatacacagaacactatacaatgactacagaacat
-gcattatttttcaagtactcaaggaacatgcaccaagatagggcatatct
-tgggtcataaacctcaaaaaatttagaagtattaatatcatacagactgt
-gttctctgaccatgaaggtgtcaaactagaaataacaaaaatacctagaa
-ataaaaaaaataataaaaacactgtaaacacatggaaattaaacaacata
-tttttaaatagatcataggttaaagaggaagtttcaaATGTTTTAtatac
-atatacatacatatacacatatacgtatatgtatatacgtatacatatct
-gtgtatatgtatatatacatatatacatgtgtatacacagatatacagat
-atgtatatatacatgtgtatatacagatatacagatatgtatatatacat
-gtatatacatatatatttatatatacacatatataaatatctatgtgtat
-acgtgtatatatatatatagagagagagagagagagagagagTTtgtttt
-gtatcatttcaaaacaaaatacaataccaaaatttgtgggatgctattga
-attagtgctgagaatgatatttataatactaaatgcttacataagaaatg
-ataaaagctctcaaatcagtaatctaagttttcacctcaaggacctaggg
-aaaataaagagcaaaataaacccaaaacaagcagaaggaaagaaataatc
-aagtaaagagcaaacatccattaaattgaaaatggaaaaacatcagacaa
-aatctataaaacaaaaagttgtttcttttaaaaagtcaatcaattgataa
-tgttctactagaattgacaaaaaaggagtgaagaaaatattactaatatc
-ataagtgcaatgagcatatcaccacagatcctgtagcttttaaaaatgta
-attcagaaatactacaaacaatttaattctcatacaatggacaatgtaga
-agactaagttttaaaaactttaaactaccagaattcaatcagatgaaata
-gtcaaactagtcctataataattaaataaattgaatttgtaatagaaaat
-cttcaaaaacaaaatattcaggcttaaacagtttcacaggagaattttac
-caaggacttgaaaaattaatgctaattttacacaatatcttccagaaaat
-agccaaaaagggtatacttcccaaaacaacatgaggtcaggattaccttc
-ttaccttccccctccaaaaaagaaaaaaagaaaaagaaaaccatggggca
-acatatcttataaacatagatgtaaaatactcaacaaaacagcaaattga
-atttaaaaacatataaatatagttttacattatgaccaagtataatttat
-tccgggtatgagacatctgaaaatcaattgatataatccaacatattaac
-aagctattgaaaaagatcacatgattaaatcaattgatgcagttaaagca
-tttggcaaaatacaatacccatttataagaaaaactcagcaagttaggaa
-tagtgagagagattacttcttgataaagagcatgtacaaaaagctgatag
-ctagtattgtattcaatgacgaaagatgggatctgttttctctaagatgg
-agaacaaagcaaagatgcccactctcactactttttctttttgaggtgga
-gtcttgctctattgcccaggctggagtgcagtggcccaatcttggctcac
-tgcaacctctgcctcccaggtttaagcaactcttctgcctcagcctccca
-agtatctggcactctcaccacttctattcaacatagtattgaaagttcta
-accactgaaataaggcaagaaaaaagaaagaaaacaaatacagattggaa
-ataaaagtatatctacttacagatgacacgattgcctctaaatagaaaat
-cccaagaaattctcacataaattcctagaactaatgagtttgtcaaagtg
-gtaggatacaagatcaacacaaaaagtatctgcaaatctatatactaaca
-aagagcatgagcaaactgaaatctaaaaaccacaatgccatttgtaatca
-ctcaaaagaaaatgaaatattacactttgatatacaccaaacaggatcta
-tatgctgaaaattctataaagtgctgatgaaagtattcaaagaaggccta
-aataaatgaagagatatactatatgcatgaattggaatacttcctctagt
-aaatatgttaattcccatgagcccccaattgatctttaggtttaattcaa
-tttctatcaaaattccataaagtgtcttttgtacatagacattttcatat
-aaattgaaattcttcaatttatatggaaaggctcaggccctagaatagct
-aagacaatattgacaaagactaatagaagcaatattgtggcttactatat
-agcttcagtaaataaaactatatcatattagcaacatacagatcaacaga
-ataaaaaaggagcgaagaaagagacccatacgagtatgctgggatgattt
-ttgaccaaggcgcaagagaaattcagttgaggtaggacagcgtttccacc
-aacggttcttgagcaaatgcacatcatatgcaaaaataacaaatctccac
-ttaaaactcaaaccttccaaaattaactcaaaatggattagaggtttaag
-tgtaaatgatcaaagtataactcttctagaaaatttgaaaaaaaaaaaaa
-ggtagaaaatcttcaggatctatatctaggcaattcctcagactcgacat
-taaaacgcactatctacaaagaaacaattggtaaattggacctcatgaga
-attaaagtttttcctccttgagaatctatgtgaaggagatgaaaagatga
-gctatgaactacaagctacatgcagaaaatatttgcgagctacctatgtg
-aaaaaaccctagtatctacaatatataaggaactctcaaaatctaacata
-agcaacagatgattccattagaaaatgggcacaagacatgaacaaaagtt
-tcactgaaaagcacttacaaatggcaaataagcattgatgaaaagatgtt
-caatatcattagccatgaaggaaatacaaattacaaccacagtgagatat
-cacttgacgcctaccagaatagctcaattaacaaagtcctgacaccacag
-gcgggcgatcgctcgtgtatggctggcgtggtgatttcttaaacactaaa
-tatgcaatgaccaaacactccagcaattagacctataagcatgtggcatg
-tagaaatgtacactcaataggcatggccgctttatttataacaaccaaac
-agtgggcacaacccaggcgcccttcagtgggggtaatgattaaaccaact
-gcagtacatccatgtcatgaaaaaacactcagcaataaaaagaaattgtg
-tccacatgggttgaggaataccttttccctgcactctggggcggggggcc
-catataaccgacttgccagtccaacacaggtggtatgggacctggtgtgg
-agggaacctttctaggtcacagtcatgaacaggtctcagttctgaatgct
-gccagaacacctgcagagacaggtatacccgtgccttgacaatggcccac
-ctcacgactggcccccagtggccactcttaggatgtgtacccatatgaca
-gcctcctccaaagggcgtgggtaaactgctggaacctgactaaagtcgtc
-tgcctcctgacttcccagaggcaacttggagctgtgtgcatcccagagat
-gccctgtaaggcaggcatccttctcttgtaacctgatgtggacttcctgc
-cacctggacattcccaaaggggcctgctccaaacgtgcccactgtctatg
-gtcccttggttgatccacatggaaaaggctcaactacctgtagaagaggc
-tggtggccagggctcgtgggtgacacacatccaaactgcccgaagctcag
-ccatagactgcactgtcctgatccccatcctatccgtatggtgttggtgt
-ctagttgcaccgcagttgctgagtattagggttgggtgcttttgctagac
-ccaccagtgtaaggtcctagcagtatcagcagggtcccctcatatatggt
-ggctggcttagtaagtggttccactgccatgtcggccccctcctcttgtt
-caaagtggatgggtctgagcacctctcgtagtggcagacaaagcactagt
-ggacaagacacccctctgttgttgacaaatgtgtgccatcactctagggt
-gtgtgattgtgccaccatgaaggtaagcttggccaggaggcctcctgccc
-actcttttatgggtaggcagtcttcacagtgatggtagctttctggagac
-agcctccaatttgctgcagtacctgatacatggccagtacctgtttctcc
-aggatgtggtcatgggattctgcccctatccataattgagactgaaaccc
-tgcaggtaccattcgggttggtggctttgatcataaaccccagctcatcc
-ccataacatctctagtggcttctaatacaaaagggtgctatggccgtggg
-gccctgagtgcctgggctcatctcacaaacattcttgatttgtcaggcgc
-ctctcagaccatgtgtgctcatgcccattttttttttccttattagggtg
-tataatgggtagagggtttgggccatgtgaagaatcagtattctccagca
-gcccagtaagcctagggaaacctggagttgctttgttgtctggggaatag
-gccactgtgctagcttactgataagagctctgggtctgttttgcacctta
-cccgaccaggtaactctcagaagtttgacggctatgccaggcccctgtat
-ctttttgggattgattttccgtctcctgtcctttaggccatccaagacgg
-tttctagggtagtctccaaattggtaagatactctgaggttagcatgtta
-tcatttatctggtgaaaccaggagacttaggcaggccaagagtttagaca
-ggtcctgtgcaaccagacggtgactgatggggctgtgcaggttccttgtg
-gtagcacctggaaggtcctcctgagtgaaggcaaactggtcctttgcatc
-ttctgctaaaggatactggaggatgcaatagccaagtcaatcacagcagg
-gacacctcccagattaaagagctcttgtcccagcagttgaggatattggg
-cacagctgcatgtaaggtggtgtcaccttgttcagcacatggtagtccac
-attcattctccaggagccatctggcttctttgcaggccacacagggctgt
-tgtgggggctgtgggaggcctatttgtacttcatgtaattcctgaattgt
-ttgggtagtttcagagtgtcccccagcaggagtattgtctcacattcact
-gtctgcctgggctggggcaagtgtacagccacccatgtggcccatcctct
-ttttgttccttgattactttctggacctggtccttgctttcatccagctc
-actgaggtctgccaaagattccagacacattataacccttcttaaattgg
-aaatgacccagacattcaatgagtacctgaaataattttaagattttaag
-ctataTaatcagacaagagaaagaaataaagggcgaccaaatcagaaaag
-gggaagtcaaactgtcattatgattatatacctaaaaaatcctaaagact
-catccaaaaagctcctagaactggcaagtgaattcagtaaagttgcagga
-tacaaaactaacgtacacagatcagtagcactgctatacaccaacagcaa
-caagctgataatcaagtcaagaactcaactgcttttataacaactgcaaa
-aaaataaaatatataggaatatacctaactaaggaggtgaaagacctctg
-taaggaaaactacaaaacactattgaaagaaatcacagatgatacagaca
-aatcccatgctcatggataggtagaatcaatattgtgaaaatgaccatac
-tgccaaaagcagtctacaaattcaatgcaattcccattaaaataccatga
-tcattcttcacagagctagaaaaaacaatcttaaaattcatatggaacca
-aaaaagagcacacatagccaaagcaagactaagcaaaaagaacaaatctg
-gagtcatcacattagctgacttcaaactatattataaggctatggtcacc
-taagcagcatggtactggtatgaaaataggcacatagacaaatggaacag
-aatagagaacccagaaataaagccaaatacttacagccaattgatctttg
-acaaagcaaacaaaaacacaaagtggggaaagtacaccttgttcaacaaa
-tggtgctgggataattggcaagccacatatagaagaatgaaattagatcc
-tcatctctcaccttatacaaaaatcaactcaagatggatcaaacacttaa
-atctaagaccagaaactgtaaaaatcctagaggataacatcagaaaaact
-cttttagaattggcttagacaaagacttcatgaccaagaacccaaaagca
-aatgcaacaaaaacagagatacatagatgggacttaattaaactaaaaag
-cttctgcacagcaaaagaaataatcaacagggtaaatagacaacccacag
-agtgggagaaaatcttctcatactgttcatccaacaaagaactaatatcc
-cgaatctacaagaaactcaaaccaatcagcacgaaaaaaaacaatctcat
-caaaaagtgggctaaggacgtgaatagacaattctcaaaagaagatacac
-aaatggcaaacatgaaaaaatgctcaacatcactaattatcagggaaata
-caaatcaaaaccacaatgtaataccaccttactcctgaaagaatggccat
-aatcaaaacatcaaaaagcaaaagagatgttggcatggatgtggtgaaag
-aggaaaacttttacactgctggtggggatgtaaactagcacaatcactgt
-ggaaaacagtgtggagattcctttaaaaactaaaagtagatctacccttt
-gattcagcaatcccactactgggcatttacccaaaggataagaagtcata
-cttgccccacatgtttatagcaacacaattcacaattgcaaaaatatgga
-accagcccaaatgcccatccatcaacaagtgtataaagaaaatgtggtat
-atatattacatattatatatattacattttattatatctaatatatagta
-tatattagatctaatatatagtatatattagatattagatctaatatata
-ttatatattatatattagatctaatatctaatatctaatatatatattat
-atattatatattagatctaatatatattagatatgtattatatataatat
-atataatacataatatatattatacataatatacatattatatatattat
-ataaaatatatattattatatatgtgtgtgtatatatatgtgtatatata
-CACACACACACACACACCATGGTGTAtatacacataccatgacatgctac
-tcagccataaaaaggaatgaattaacggcattctcagcaacctgcaggga
-attggaggctattattctaagtgaagtaactcaagaatggaaaaatcaaa
-catcataaattctcactcataagtgggagctaagctattaggacacaaag
-gcctaagaatgatacaatggactttggggactcgagggaaagggtgggag
-cggggtgagggataaaacactacacattgagtacagcgtccactgcctgg
-gtgatacgtggaccagaatctcagaaaccaccactaaaggacacatccaa
-gtaaccaaacaccacttgttccccctaaaacttatcaaaataaaaaTCAA
-TTTTAAAAAATCAGCAGAAaatattttaagctacacagatgttttaccta
-caaacatttgtttcacttatgtttactcaatttattcttttgttgcagtt
-tatctagattactcataagaacatggcaataggcaaagccaaccatcatt
-ccaagttgttttcctgttaaccatttttatagcctgtgaatatccagtgt
-tcaccaaagcaagaacattaaagttaaatgtatgcgtatttttactgata
-accgagaagattcttgttttgattaaaccagcagtatcaCCTGCCCCCTC
-ACAGGCCATGGCATCTCCTCCAGCTTGTCTGTCTTTGTGGGGAAAGCCCG
-GACAGGACCTACCACCCCTGAAAGCCTTGCGAGACCAGTAGCCACTGAGC
-AGGTGGGTGTGGGATTCCTGGCCTGGTGAGCCTCCCCTGTCCCTGCCCCA
-GGTGCCTGACTCGAACCTGGATCTCATGGGGCTGGCCAGGGAGATGGGTA
-CCTGGGCAAGGGAGGCAGTGGGATGCCACAGGACAATTGTGCCCAGGGAA
-CAGAACATCTCACAGGACTTATGACCTTCGAAGCACCTTCCCGGGGGCTG
-TGTGGCCAGGACAAGCCCCAGGAACAGAACATCTCACAGGACTTATGACC
-TCTGAAGCACCTGCCCGGGGGCTGTGCGGCCAGGACAAGCCCCAGGAACA
-GAACATCTCACAGGACTTACTACCTTCGAAGCACCTGCCCGGGGGCTGGC
-GCTTGGTTTCAACTCACTTTCCAACACTCTGGGGTCTTGCTGCCTCCTGG
-GCTGATGGTCTCATTGCTGAACCCATCTTTGCGTGGCAGGAGATTCTATT
-CAGATGCAAGTTTCTCTCTGTTCTTAGCTAAAAGGTGTTCAGTGGCTCAC
-AGAGGCCCTCTCTCTAGCTGTGCTGGGTCCTATCCACAGTTGGCAGCTGG
-TGTATTGGAAGCCTCTGTGGACAGACCTCTGCAGCCTCTCTTGGCCGTCC
-CATCGACTTGCACCCCCGGGGCAGACATGCTGAGGGGGCTCTCCCAGCAC
-CAGGGCCTCCCCAGGAGCTGAGTCGTGCCCAGCAGGAGCAGAGTGGGGAC
-GGCTTTACCAAAGGGAGTGGGATACCTTCCCTGCTCTTCCTCACCCTCCC
-TCCTACTGCTCTTCCAGCAGTTGGCACGTGGGTCCTGGAGCAGCTCCACA
-TCTCCAGCATCCAGCAATCTTGTGGATCCCGCTGTGCCTCCACTCTCCTG
-CCCTCCACCCCGGCCCTGCAGCTCCTGAGCTGGGATGCTCCTTTCTGCCT
-AAAACATTTGGAAGACATTTGCAGCTGTAAACGTGCTGCAAGGAAAATCA
-TGTACTCATTGCACACAAACAACCACGGGATTCTCCCCCACAGAAAAGTA
-AATTAAAACTTGACAGTCAAATAATTCTCATCTCAAGGAAAAAAAACCAC
-CCCGAGGAGCACACGGGTGAGCTGCCCACCTGGCTGGGAGGAAGACGCGG
-TTTTAGGGGAGTTGCTTCCACCAAGTTCGCAGGGAGGCTTGGGTGACCTG
-CCTCTGAACGCAGGAGTTCCTTTGAGCTGTTTTGGGCTCCACAGTTTTAT
-TTTACTGTTCACCGCATGCTGTGGAGGTTGTTGATTTGCTGGGGATGACA
-GTGTTACCTGACGATCCAGGTGCCTCTGCTCCTTCACTAACTCCTTCTTG
-AAACCAATAGAAGCGTCTCTGAGGCAGCTCATGCTCTAGGTCTGGAAGCC
-AGGGAGGACATGTGGGGAGCCAGCTGTGGGCAAATGACAGCCACCAGGAG
-AGTGCAGCCCAGGGAGGGGAGGACAGACAGGTGAGGGGGCTCAGGGAGGA
-GAGGACAGACAGGTGAGGGGACACTGTCCAGGTCAGGGTGCAGGCCCCAC
-GTTGCAGGCCTCCTGCCCAGAACCCTGCCCTCATTCCACTCCTCCAGGGC
-TGGGAGCCTGACCCTGAGTCGGCTTCACCCCCATCACCTTGACCCCTGAC
-CCAGCGTTCTCTGGGTCCCTCCTGACCCTTCTGGCTGAGGCCCCTGCCCA
-GGGCTGCGCTCCTCCCAACAGCTCCTTCACAGAGTTGTGGGTCTCAGAAT
-GATCCTCATTGTATACACAGGGCCAGGGCCTCTTTTTGTCTTTTTGCATA
-ATTCCTCCTGCAGGGGCCCCACCCCAGCAGGGCCTCAGCCCAAGGCTCCA
-GTGGCTGAGCGGCCCCCTTCCAGCTTCCCTGGTCAGGAAACACCCCCTCT
-TGCGGCTGCCCAGAGACAAAGGGTCCCCTGGGTGTGGCACTTGCTGTCAG
-GCATATTCTAAGCCCCAGGCAAGCATCCTGAATGTGTGGCCAGTGGTTGG
-TGACAAAGGCTCAAGATAAGGGTTCACGCCCTGAACAAAAAATGTCCCAG
-GCCACCTGCAGCCCATGAGGGGCCTACCAAGAGAGGCCCTGGCACCTTGG
-TCCAGCCAGGGGCTGTGCAGAAGCTGCTGGAACCCCCTTGCTCTGTCGCT
-GGTGGCTGGTGCAGAGACTGGTCACCCTCTGCCGACCTATGGTCTGAGGA
-GCCCCCCGGGTGGAAGGCTGCGAGCGATAATGTCAGGCAGCCTCTGTGAT
-CTGGGTCCCACCCCCTCGCCACGTGTCCCCCCAGCTTCCAGGCTCCACGT
-CTGTGCCAAGGTCGGCTCCTCAGTCCATCTTGCCCAAGCCATGCTCACAG
-GGATAGCCCTATTGCCAAGGCAACACTGCCCCTCCTGGAATGCACCCCCG
-GCCATGCAGGCAGCCTGCAGCACTCACTTCCTCCTTCTCATCTTCAAGTG
-AGAAACTCTTCCTCTGCCCCACTCAGACCATCCGTCTCTCTCTCTGGGCA
-ACATCAGAGCCTGCCCGGGATCCCCACAGAGGCTGTGCGAGTCTGTGTCC
-CCAGCCCGGGATCCAGGCCCGGACTCCTCTTTTGAACGTTCCCTCCGCCT
-CCAGCAAGGTGTGGCCCCCACGAGCTGAGCCCCCAGGTGAGGAGCATCTA
-AGGCCTCGGGACCTGGGCTGTGGTAGCTTTTCGTCCCAAGCTGCTCAGTG
-AACTTGATGGCAAGTAATTTACCCTTAATATCCTACCAGCTAAATCTCAT
-TATTGTCTTTACAAGAGCCAATATGTACACATTGATAGCCAGGCCTATTA
-CATCTTAGCGTTCAGACTAAATGTCTGAAACATATTTTGAGAGAAAGCAT
-AAAATTGCTTATTTTATTGAGCAAACCAATTAGAACAAGTCAGACCCTTT
-TATGAAGACACAGCACTGAGGGGCTCCATCAAACCTTCCTCTCATCCCCA
-GAGGTCCTCACGCTCACAAAATTGGCAGATTGTCAGCATTTGAGATGCTT
-CTTCAGGAAATTCAAATTTCATTTTCCCCAGTAGGTTAATTTCCCATGAT
-TAGAAAAGAGTGAGGACTATTATTTTAAGTACTTCCCCCTGCCCTTCCAC
-GGGGACAGTAGGAAGAACATATGCTCAAAGCACATGGATATTTTCCCTCC
-CTAAATATTaaaaaaagaagaagaagaagaaagagaaacaggaaaagaCT
-GGATTTCCTGCCATTTTAGCAAGACTGCAATTTCATTCTTAACCCCTCTG
-AGAATTCACATTCAGGCTGCAACCTTGAGAGTTGAGGGCCTCCACGTGCC
-TCAACCCAGGAAAACCAGGCACACTTGTAAACTCTCTTGGGAACCTCCCA
-AAAGCTGGTTTTTATAATTAGGAAAATAATTAGGACAATTTGGAAAAAAG
-AGTACACAACATGATGAGTTAGAAGCTGCTGCAGGGAGACCGTATATGTT
-GGGGTTACACCCGCTTGTTCCTGGGGAGAGGGGCAGCTCTGGGAGAGGCT
-AGGGGAGAAGCCCCCGTTTCCCTGCTCACCCCACATCAGGCTTCTCCAGA
-AAAGTCCCAACCAGAGCAGGTGGTAGGAGTTTAGCTGGGAGATCCAGCAC
-AGATGCCTGGGACGAGGCTCTGGAAGTGAGAATCCCAGCGGCAGTGAGGT
-CCTCTCCTGGGTCCGATGGGTGAGGGGAGTCCGTGGGAAGATGGCTGAGG
-GAGATCTGGAGGAGGCAGAGCTGAAGGGGAAATCCAAGGCAGTAAAGTGG
-GACCCCGGAGTCTGGTGGGGCATTGGAGGTCTGTCGCTGGGGATCCCGAC
-TGTCGGGTGGCTCGGATGGCACTGGACAGGGCCAGCCTCTCTGGTGGGTG
-GCCTCATCCAGCCCCTTCGTTTCACCTCCTGCCAGGGGCAGGCGTCACTG
-TGTCCTACAGATGCTGAAACCCTGGCCTGTGAGGACTAAGTGGCCTTGTT
-CAAGCACATACACCCAGGGCAGGGAAGAAGCTGACACTCCAGCCTGTGAC
-AAGGCCTTCTTTCAGGCAGCAGGTCAGGTGTGTTTCTCTGCTCCATGATC
-TGTGTGCCCTGTTCCCTCCAGCAGGGAGTGTTGACACAGTGGCAGCCCGG
-GAGCCTCCCACATGCTCCGGAGCTGCCTCCCCTGTGTGGTGATGGAGTCT
-TCCTCTCCAGCCACAGGCCATCCTCTCTTGGTGCAGCAATGTTCACCCTC
-TGCTAAATCACATCTACGAGTGGGACACTGTGGCGCCTGCCAGAGCACCG
-GGCAGCCCCCAGGGACCCTTGAAGGTGGGCGCAGGTCACAGCCACCTGTC
-CAAGCCTCTGCTTCAGCACTGGAAGTGGGTGCGCTGAGAATGTGTTCTGG
-TGCTGGAGAGACCTCGGGTCCAACATGGGATGCAGACCCAGGACTCAGAG
-AAAGGGGGAGTCAGGGAGGTGGGAGGCAGCCCCTGCCCTTCCACCATGGA
-CACCGGCGTCTGTTCCCtcctgtttttctttaatgcaggcatttacaagg
-aagagcttagtgaagcttcgctcacgttttcaaatcaagcaaggctgagg
-tcactcatgaggtctgcctggctttgtccactcaggcttcctcaggcctg
-tccccattttaatccattttaataGCTCTCGACACCCGTGATGCCCAGTG
-GGAAAATGCAGCAGAGAAACCCCCTTTCCTGTGGCAAGGATCTGTTAGCT
-CCCCACGCAAGATATGAAAGAAGATACGCGACATCCTTTTTGGGAAAAAG
-AAAGTACAAACCACCACTGAAGGATGACGAGAAGCCTTAAGGACAGGAAG
-CATGAAAGTGAAGCCATGACACATAAAATAATCAAGCAGGAGAGGGGCAC
-ATCCCAGAGCCCAGGGGAAGAACGGGCCGGGCTGcagtaaatggtgctgg
-gaccattggtttttcaaatagaaaaacaCTCAGAttgatctctaacttac
-accaaataggaaggtaaatcccaagtgagttgaagactagttttttaaaa
-gtaaaattttaaggcactttgaataaaatatgggattatatctttatgac
-cttgagttagaaaagatgtcttcagcaagacccaaaagcccaggtcataa
-aggaaatgattgattaattcaaccacattaaattttaaatttctgtgaaa
-taaaagccatcataaaggctgaaaagacgagctgaagacctgcagaagat
-cttgcaatgcatggatggataatgctgtgatattccgggtatattttaaa
-acccctacaaggaagtataataaagacaagcaacttaacaaaagtctaca
-caaaagatatgaacaaacatttcacagaaaggggCAAAAGTCATGACCAA
-TGACAGGTTAACAATTCTGAACATAATAGTAATCAGGAAAAATAAACATT
-CAGGCAATATCATATACAATCACATGCATCCAGTTATCAAAATCTTAAAC
-AGCTGAGCACAGCAAGGCTGGTGAGGATGGACACCGTGGGGACACAAGAG
-ACACAGGGGATCGCCATGGGGATCACTGCTGGGGGACAGGGACCAGGAAG
-TCAGCCATTCACAAGAGCTCCTGCAAATAAAGGCATGTGTCCTGTGACCT
-AGGAATCTTTCTCCTAGCCTTAAACGAAGGTTTTGGCCAGGCACAGAAAG
-AAAAAGCCGGAAAGAATGTCAAACGAAGCATGGCTTTTAATGACACAGAA
-GGTTTTGAAATGACCTAAATGTTCATCAGTATGAGTTGAGAATATTACTA
-GTGAAAATGAATTAGGAAGAGCTGAGTCTATTAACACGGGTAAGCTTCGA
-AAGCCATGTTGAACGAGAAGGCACAGAATGATTTGTCCTACAAAACACGA
-CTTTATAAAGTGTAAAATGTGAAGGATGGTATTAAGTGCTGTGCAGGGAC
-ATATGTCCACATGGAAGGCTGATATGAAAGGTGGGAAAGTTTGATGGGAA
-CCTGATTTGGGAGAGTGGCCACTGCCGTTAGGAGTAGCCTCAATGGCATG
-GCACAGAAGAAGCTTATGTAAAAGCAAGTAAAACAAAACGGCAAATGACT
-TTGTTCTCATAAAATTATGAGGTCTAggccaggtgtggtggctcatgcct
-gtaatcctagcactttgggaggctgaggtgggtggatcacctgaggtcag
-gagtttgagaccagcctggccaatgtggcaaaaccctgtctctactaaaa
-atacaaaaattagccaggcatggtggcacttgcctgtaatcccagctact
-ggggaggctgcggcatggagaattgcttgaacccaggaggtggaggttgc
-agcgagctgagatcgctgcactccagtgtgggcaacaagagtaaaaatca
-gtctcaaaaaaaaaaaTGAGGTCTAAACCTGGGCTGGTGTGTGGCTCTGT
-GGCGATGTGAGAACTGTGAGCTTCCCCCCTTTCTGCTGCTTTCCCATGCT
-GCATCCTTTCTGAACAACTGCTGTTCTCACGGTTacctcatgttccaggg
-tggctgctggcattcctgcaatctcagctctattccaggccaatagctga
-aggaagtgaaagaggatgaaaggatgctcgtttcgctttcaggagcattc
-cccaaaatccccacagggtggcttacatctccatctctcaaggccaaacc
-tggctgcaagggtgactgagccaatgctctgtgagtggagagtgcttttg
-ctcagagtaaactccaggttttgttgctgaagaggaaggggTAATGGCTT
-GGGCAGAAGCCAGGCCCTGCCCCATGGTTACCTATGGGGAGGGGAGCATC
-TGAAATGCTGGAGGGGCGGGAGGGTTTTCACTTGTACGGAAGTTTATTTT
-TCAAAAAGAAATCAGAAACAAGTATGGACAATTTTGAAATTTTATTAAAA
-AATAGTAAGTGAAGAGTGTACACTGTTCTCTATTTTTTATGTTTGAAATA
-GTTTACAAGAAGAAAGAAGAATGAAATAGAAAATGCATATACATTGATTT
-TATTAATGATATGCAATGATCCATCAATTTATAACAATATAAAATACCAA
-ATAAATGTTAAAATTCACTCACCCTGGAAAAAAATCAAGACTTCTTTTTC
-TGAAAAGATGGAAACCCTCCCAGCTCTACAATGTGTTGAACAATTTGTTT
-AGCTTCATTCTCAGCCCAATGTGTCTTTCCTTCTTTCTCCTGGTTTCTTA
-CAACTCTTTTCTTGTGCTTTTCCCAATGGAAAGTGACTTTCTCCTGTTCT
-GTTCATCAGACAATATAACCTTCAATCTCAGGTTGTCCACGGACCTCTAG
-ATACAGGCTCACTGGCTCTTTGCAGCTGTGCCTGCTTGGCACCTGCTAAC
-CATTAAACAGCAGGACTAGCTTTTATGTCCCTGCTGCCAGGGGTCCACCT
-GAGCACCTGGGACCTGGCACCCTTGCCCTTTAAGCTGCAGTCATCTCTGG
-TCACAAGCGTTGTTTGCCCTTCCCACACCAGTCCAACCCAGGCCAATCAC
-GGAGCGGGTCTTCGTCAGACCTGGTTAAGACCTGAGGCTCACGCTGGAGC
-ACATGTCTCGGCCGGAGAGAGTATGACACGGGTGTAGCATAAATCACGGG
-AATGTAAGGAGCGTGTCTCCACGGAGCTTGTAGAGTGAAGAAGAGACAAT
-CAACCCATGGTAAACGTGTTAACGTTTTGATGTGATGATCACTGGAAACT
-ATTTAGTGGCACGAAAACATAAACACGCCTCCGCTCCTCGTCCTGCCCTA
-CCTCCCGGTACTCGCATCTATTTCATCTCTCACTGTTCATCCATTATTTG
-TCTCTTTATCGACCATATTTCCTCCAGATCTGCTGACTGGCCGTTCATTG
-TGCATTTCTGCCAAAGAGGCTCTTGATTTCTGACTCTTCAAATCATTTCC
-AAATGTGTTACTGAGAACCAACTGCCTGAAGCCTGAGCGTCTGCAAGGAG
-GAGTTTATTTCGGGCAGAGGGAGGGTGTGGGGGTGGCCCCGACTGGTCCT
-GACTCCCACCCATGCCATCTGGGAGGCTGGTGGCCAAGCTACGTGCACTC
-TGGCCCCAACTCTGCCCCATCGCCCCACGTACCTGGTACGCTTTGCAGGA
-GTGGAGGTGCCTCCCTGGGGCCGTGAGTGCTATGCAAAAAAGAACCAACT
-GTTCCCTAGGTTTCTGCACTAAGGCAGGGAAGGGGAGGGCAGAACAATCT
-TGAGCTGACTGTCCCTGACTGCCACTTCACGGCTTGTCATCCTGGCCTAG
-TCTCAGGAAAGGGATCCCACAGCCGAGAATTTAGGAAATCAGCAGCTGGC
-TGTAAATAAGCTGATGATAAACAAGGCGACCTGCTGAATTAAAATGCAAA
-GCATTTCTCCCAGCTCCCTGATAACCACTGAAAGGTAAAATCGCCAGTCT
-TTCCATGAAAGAAATTAGCATTAATAAGATGAAACCGTATTTGGGATAAC
-TGACAATTTGATGAATGTGCTGAGAGGATTGGACGTGATGCATTTGATGG
-ATAATATTTTGGGTTGCCTCGGGTTGCATTTAATTGTTCCTTCTTCGTTC
-TCAGCTTTAGTTAAGTGAAATAGAAAACCCCAGTGATGCTGGAATTTATC
-TTTCAGGAGGCAGATGCACGGCTTAATTATCAATCCCGGCTGATAGCCTC
-TCCGTCTGTGCACAGGGCAGTGGGGGACGTGGACTGAGCTCTCTGCGTCT
-CATTTTTCTCCGCCCCTCTGAACCGCATGTGCTGCCTGAAGGCGGATGTG
-CTGTCTCCCAGTTGGGCCTCCCTTCCCTTGGCCTGGTGCTGAGGTCGGTT
-GAGGCCTCCACAGAGATGGAGAGACGAGGTCCCAGGTCCACGTGCACCTG
-CTCACTCTCAGCGGGTGTCCGATTTCCCTTCACAGGAAAAGCCCGCAGGT
-CAGCTGGCAGAGAGGACCCCTGAGTTGAGATTCCAGAACTCTGTCCTCAG
-ATATGATTTGGGGTCAAGCTGGTAGTCTAAATCCTTTTCCAGATGTCTTC
-TGAGGCTGGTTTCTTCTTTCCCTGTGGGGATGCAAATGCCCCCACAGGTG
-GACTACACCAGGCTGTACCCTGCAGGAGCAGTATCCTCCACCTGATTAAC
-CCTTCCAAACCCTCTTTCCCCTGATGTTCTCACAGGGAGGTTTCTGGAAC
-CCTCCTCTCCATGCTCTTGGGACCACCTATAGCTGCCTCTGACTCACAGC
-CCTCCTGGTCTGTTTCCTTGTCTTTGCCTCCAGGCTGAGATCACTGACTG
-CGTGGCTGTGCCCAGACACAGCTCACCGTGCTCAGTAGAACAACGTCACT
-CACTTCTGTCCCCAGTGCCCCGGCGAGGCCCGACCTGTAGAAGTGACTTC
-ATAAATGTGCATTAAATGCAGTGGAAGCATCCATTTCTTCATCTTTGTCC
-CTGCCTGAATGTTCAACTATTTGAAGGAAAGGACCTGTCTACCACCTCTT
-TGCCCCCAGCACTGGGCACAGGCCTAGCCCAGCCTCACGGTTCCGTGGGG
-ACTTGAAAGAGAGGGGTGAGGGCTGCTTGGGCAAATGAGCCAAGTCTCCC
-ATGGGCAGGCTCTGCCAGGAATAAGGGTCACCTCAAGGGAAAGGCTGGCC
-TGTGCCAAGACAGATGCCAGGCCAAGGGGCACCGTGGCACCTGCCTTGCC
-CTGTAAACACGGCACAGGAATGAGCCCTCACTGGAGAGAAGAGGGCCTGG
-GAGCTGGAGGCAGGCCTGGGGACTGAGCCTGCAAAAAATCCATTGAAGAG
-TCATGAAATGCTGGAAGGTGGAAATCAAGATCTGAATGTTTGCAAAGGAA
-TATTTGGATCTTGGATGGAAAGACAAAATAAAAGTAACAGCAAAACTACA
-GTTACTTTTGCACAACCTATGAAAACATATCAATTCTCCACAAATTAACA
-GCAAACTCTGAAGTAATTCCAAATGGAATTCCAACGTCTATGCATGTATG
-TGTGTTTGATTTAGCTAAAATTATCTTAAATTCATGTAACAAAATATATG
-TCTAAAGTAATCAAGAAATCTATGAAAAAGAAAATTGAGATGGATCTTGC
-CCTAGAGAAATTCCAGCTGTTGTAATCAAAACGATTGCAGAGGAATGGAT
-GGAACTGCCCTAAACGGAGAGGCCAGAAGAGACCCAGCAGGCATGGAAAC
-TGAGTATATGAAAACCAAGGTGCTTTGACTCTGGGAAAAAACATGCTTTT
-CATAGTCATCTCTGCTGACCGTAGCACCTAGACAGGTAGAAGCAAAGAAA
-ATGGGACTTCTGggccgggcgcggtggctcacgcctataatcccagcact
-ttgggaggccgaggcgggcgaatcacaaggtcaggagttcaggaccaccc
-agccaacatagtgaaaccccatctctactaaaaatacaaaaaattagctg
-ggtgtagtggcaggtgcctgtaatcccagctgctcaggaggctgaggcag
-gagaatcactggaacccgggaggtggaagttgcggtgagccgagatcgcg
-ccattgtactccagcccaggtgacagagcaagactctgtctcaaaaaaaa
-aaaagaagaaagaaaggaaggaaggcagggagggagggaggaaggaagga
-gagagagagagagagagaaagaaagaaaaagaaagagagagagagagaga
-gaaagaaagaaagaaaaagaaagaaagaaagaaagaaagaatgaaagaaa
-gaaagaaagaaagaaagaaaagaaaaagaaagaaagaaagaaagaaaaag
-aaagaaagaaaATGGGATTTCTGGTCATGTCATACTCAGAATAAATAGAT
-ACATCAAATGTTAATTATCACAAGGTAGGAAAAGAACAAAATCTTAGAAG
-AAAATGAATATGCATATAGCCTGTGGTTTGCACAAATGTTTTAAATCAAT
-ATTAGCTACTAGGAAGCTATTAATTAAACATACATACACAGAGAAGCATA
-TGTAACTACTTTTAAACTAACATCCAGCAAAAAAGGCCAGAAGCAGAGTC
-AAAAGTAAAAATGATAGGAAAGCATTTCACAACGTAGGGTGCAATTACAG
-GGttaacagccacactgtacaaggagcttatacaaattgattttttagag
-agacaaataacttgaaaattaggcaaaacatacggataggcacttactag
-aaaattaccaaatggccaaaaattgtataaaatttacatgtagacagaaa
-atgcaaattattttaataaggagataccaattttcacctctcagacagag
-aaatataaaggtaacaccttttcccagagatacgaaggaaagaacattct
-tttattattgctggaaatgtgaattataactgctttttggaaagccattt
-ggaAAGAGAGATTTGAATTAAAATGcagtcatcctttggtatccatgggg
-gccctggtttcaggacccctgctattgccaaaatccaaggatgcccaagt
-ggccgttatagaatggtgtggtatttgcatgtcacccagccacatcctcc
-tgtgagcttcgagtcatctccagcttactcacaggacctgataggacata
-aatgctatggaaattgttgttagacgttattgttaaaacttgtgttactt
-tttttgccgtattattaatttttattgattttttcctgactattttttat
-ccgaggttggttgaatcacggacgcagaagccagagactcagagggTGAA
-CAGTACCCAGCACACTGGCCCCGCCTTCCCATCCTGAGTCTCCATCCCTC
-AGAAATCAGCGCAGCCCTGCAGGAGGCCGGGGCAGGAGGACCATTGTGGA
-GGCACAGTTCGCAGAGGCAGGAAACGTCCCCGGCCCAGAGCGTCCCCCAG
-CCATGGGGAGAGGATGTCAGGGCTCTTGTGGCCACCTGGGAGCAAGCGGG
-GTTACACTGTCTGTTGGGTAAGAAGAGAGAGACTCAGAAAAGTGCACGCA
-GGACTCTAACTTTATTACACAATTATAAACAGACCCAAACCATAGTATGT
-ACTTACAACGAAAACATTGCACAATTATGCACAATAAAGTCTAGGCTGTG
-GGATATTATCCCATTCAGTGCgtgtctgtggtgtatgtgatggtgtgtgt
-ttgtggtgtgtgtgtgtgatgtggggtgtgtgtgtgtatgtatggtgtgg
-tgtgtgtgtatggtgtattttgtgtgtgatgtgtgtgtgatgtgcggtgt
-gtgtgtgttttgggggtagtgtgatgtgtgtgatgtgtatgtgatgtgtg
-gtttgtgtgttttatgtgtggtgtggtgtgtgtagtatattttgtgtgtg
-atgtgtggtgtatgtgttttgtgtgtgctgtgtggtgtatgtgtgtgctg
-tgtggtgtatgtgtgtggtgtattttgtgtgtggtgtggtgtgCGGGGTG
-CAGTTTGTGTGCAATATACGGTGTGTGAGTTTTATGTGTTATTTGTGGTG
-TGTGTCGTGTGTGATGTGGGGCGTGTTTTGTTTGTGATCTgtgtggtgta
-ttttgtgtgtggtgtgtgtgatgtgtgcgtggtgtggcacgtgtgatatg
-tgtgtgatgtgtggtgtgtgtggtgttgtgtTGCGTGCTTTGTATTTTGT
-GTGTGATGTACTGTGTGTGCGGTGATGTGTGTGCtttctttctttttttt
-ttttttttttttAAGTTGAAAGTCTTTtttttttttttttattatactct
-aagttttagggtacatgtgcacattgtgcaggttagttacatatgtatac
-atgtgccatgctggtgcgctgcacccactaatgtgtcatctagcattagg
-tatatctcccaatgctatccctcccccctcccccgaccccaccacagtcc
-ccagagtgtgatattccccttcctgtgtccatgtgatctcattgttcaat
-tcccacctatgagtgagaatatgcggtgtttggttttttgttcttgcgat
-agtttactgagaatgatggtttccaatttcatccatgtccctacaaagga
-tatgaactcatcattttttatggctgcatagtattccatggtgtatatgt
-gccacattttcttaatccagtctatcattgttggacatttgggttggttc
-caagtctttgctattgtgaatagtgctgcaataaacatacgtgtggatgt
-gtctttatagcagcatgatttatactcatttgggtatatacccagtaatg
-ggatggctgggtcaaatggtatttctagttctagatccctgaggaatcgc
-cacactgacttccacaatggttgaactagtttacagtcccaccaacagtg
-taaaagtgttcctatttctccgcatcctctccagcacctgttgtttcctg
-actttttaatgattgccattctaactggtgtgagatgatatctcatagtg
-gttttgatttgcatttctctgatggccagtgatgatgagcatttcttcat
-gtgttttttggctgcataaatgtcttcttttgagaagtgtctgttcatgt
-ccttcgcccactttttgatggggttgtttgtttttttcttgtaaatttgt
-ttgagttcattgtagattctggatattagccctttgtcagatgagtaggt
-tgcgaaaattttctcccatgttgtaggttgcctgttcactctgatggtag
-tttcttttgctgtgcagaaactctttagtttaattagatcccatttgtca
-attttgtcttttgttgccattgcttttggtgttttggacatgaagtcctt
-gcccacgcctatgtcctgaatggtaatgcctaggttttcttctagggttt
-ttatggttttaggtttaacgtttaaatctttaatccatcttgaattgatt
-tttgtataaggtgtaaggaagggatccagtttcagctttctacatatggc
-tagccagttttcccagcaccatttattaaatagggaatcctttccccatt
-gcttgtttttctcaggtttgtcaaagatcagatagttgtagatatgcggc
-attatttctgagggctctgttctgttccattgatctatatctctgttttg
-gtaccagtaccatgctgttttggttactgtagctaggtagtatagtttga
-agtcaggtagtgtgatgcctccagctttgttcttttggcttaggattgac
-ttggcaatgcgggctcttttttggttccatatgaactttaaagtagtttt
-ttccaattctgtgaagaaagtcattggtagcttgatggggatggcattga
-atctgtaaattaccttgggcagtatggccattttcacgatattgattctt
-cctacccatgagcatggaatgttcttccatttgtttgtatcctcctttat
-ttcgttgagcagtggtttgtagttctccttgaagaggtccttcacatccc
-ttgtaagttggattcctaggtattttattctctttgaagcaattgtgaat
-gggagttcacccatgatttggctctctgtttgtctgttgttggtgtataa
-gaatgcttgtgatttttgtacattgattttgtatcctgagactttgctga
-agttgcttatcagcttaaggagattttgggctgagacgatggggttttct
-agataaacaatcatgtcgtctgcaaacagggacaatttgacttcctcttt
-tcctaattgaataccctttatttccttctcctgcctgattgccctggcca
-gaacttccaacactatgttgaataggagcggtgagagagggcatccctgt
-cttgtgccagttttcaaagggaatgcttccagtttttgcccattcagtat
-gatattggctgtgggtttgtcatagatagctcttattattttgaaatacg
-tcccatcaatacctaatttattgagagtttttagcatgaagggttgttga
-attttgtcaaaggctttttctgcatctattgagataatcatgtggttttt
-gtctttggctctgtttatatgctggattacatttattgatttgcgtatat
-tgaaccagccttgcatcccagggatgaagcccacttgatcatggtggata
-agctttttgatgtgctgctggattcggtttgccagtattttattgaggat
-ttttgcatcaatgttcatcaaggatattggtctaaaattctcttttttgg
-ttgtgtctctgcccggctttggtatcagaatgatgctggcctcataaaat
-gagttagggaggattccctctttttctattgattggaatagtttcagaag
-gaatggtaccagttcctccttgtacctctggtagaattcggctgtgaatc
-catctggtcctggactctttttggttggtaaactattgattattgccaca
-atttcagagcctgttattggtctattcagagattcaacttcttcctggtt
-tagtcttgggagagtgcatgtgtcgaggaatgtatccatttcttctagat
-tttctagtttatttgcgtagaggtgtttgtagtattctctgatggtagtt
-tgtatttctgtggcatcggtggtgatatcccctttatcattttttattgt
-gtctatttgattcttctctctttttttctttattagtcttgctagcggtc
-tatcaattttgttgattctttcaaaaaaccagctcctggattcattgatt
-ttttgaagggttttttgtgtctctatttccttcagttctgctctgatttt
-agttatttcttgccttctgctagcttttgaatgtgtttgctcttgctttt
-ctagttcttttaattgtgatgttagggtgtcaattttggatctttcctgc
-tttctcttgtgggcatttagtgctataaatttccctctacacactgcttt
-gaatgcatcccagagattctggtatgtggtgtctttgttctcgttggttt
-caaagaacatctttatttctgccttcatttcgttatgtacccagtagtca
-ttcaggagcaggttgttcagtttccatgtagttgagcggctttgagtgag
-attcttaatcctgagttctagtttgattgcactgtggtctgagagatagt
-ttgttataatttctgttcttttacatttgctgaggagagctttacttcca
-actatgtggtcaattttggaataggtgtggtgtggtgctgaaaaaaatgt
-atattctgttgatttggggtggagagttctgtagatgtctattaggtctg
-cttggtgcagagctgagttcaattcctgggtatccttgttgactttctgt
-ctcgttgatctgtctaatgttgacagtggggtgttaaagtctcccattat
-taatgtgtgggagtctaagtctctttgtaggtcactgaggacttgcttta
-tgaatctgggtgctcctgtattgggtgcataaatatttaggatcgttagc
-tcctcttgttgaattgatccctttaccattatgtaatggccttctttgtc
-tcttttgatctttgttggtttaaagtctgttttatcagagactaggattg
-caacccctgcctttttttgttttccattggcttggtagatcttcctccat
-ccttttattttgagactatgtgtgtctctgcacgtgagatgggtttcctg
-aatacagcacactgatgggtcttgactctttatccaacttgccagtctgt
-gtcttttaattgcagaatttagtccatttatatttaaagttaatattgtt
-atgtgtgaatttgatcctgtcattatgatgttagctggtgattttgctca
-ttagttgatgcagtttcttcctagtctcgatggtctttacattttggcat
-gattttgcagcggctggtaccggttgttcctttccatgtttagcgcttcc
-ttcaggagctcttttagggcaggcctggtggtgacaaaatctctcagcat
-ttgcttgtctataaagtattttatttctccttcacttatgaagcttagtt
-tggctggatatgaaattctgggttgaaaattcttttctttaagaatgttg
-aatattggcccccactctcttctggcttgtagggtttctgccgagagatc
-cgctgttagtctgatgggctttcctttgagggtaacccgacctttctctc
-tggctgcccttaacattttttccttcatttcaactttggtgaatctgaca
-attatgtgtcttggagttgctcttctcgaggagtatctttgtggcgttct
-ctgtatttcctgaatctgaacgttggcctgccttgctagattggggaagt
-tctcctggataatatcctgcagagtgttttccaacttggttccattctcc
-acatcactttcaggtacaccaatcagacgtagatttggtcttttcacata
-gtcccatatttcttggaggctttgctcatttctttttattcttttttctc
-taaacttcccttctcgcttcatttcattcatttcatcttccattgctgat
-accctttcttccagttgatcgcatcggctcctgaggcttctgcattcttc
-acgtagttctcgagtcttggttttcagctccatcagctcttttaagcact
-tctctgtattggttattctagttatacattcttctaaatttttttcaaag
-ttttcaacttctttgcctttggtttgaatgtcctcccgtagctcagagta
-atttgatcgtctgaagccttcttctctcagctcgtcaaaatcattctcca
-tccagctttgttctgttgctggtgaggaactgcgttcctttggaggagga
-gaggcgctctgcgttttagagtttccagtttttctgttctgttttttccc
-catctttgtggttttatctacttttggtctttgatgatggtgatgtacag
-atgggttttcggtgtagatgtcctttctggttgttagttttccttctaac
-agacaggaccctcagctgcaggtctgttggaataccctgccgtgtgaggt
-gtcagtgtgcccctgctggggggtgcctcccagttaggctgctcgggggt
-caggggtcagggacccacttgaggaggcagtctgcccgtctcagatctcc
-agctgcgtgctgggagaaccactgctctcttcaaagctgtcagacaggga
-cacttaagtctgcagaggttactgctgtctttttgtttgtctgtgccctg
-cccccagaggtagagcctacagaggcaggcaggcctccttgagctgtggt
-gggctccacccagttcgagcttcccggctgctttgtttacctaagcaagc
-ctgggcaatggcgggcgcccctcccccagcctcgttgccgccttgcaatt
-tgatctcagactgctgtgctagcaatcagcgagattccgtgggcgtagga
-ccctctgagccaggtgtgggatatagtctcgtggtgcgccgtttcttaag
-cctgtctgaaaagcgcaatattcgggtgggagtgacccgattttccaggt
-gcgtccgtcacgcctttctttgactcggaaagggaactccctgacccctt
-gcgcttcccaggtgaggcaatgcctcgccctgcttcggctcgcgcacggt
-gcgcgcacacactggcctgcgcccactgtctggcactccctagtgagatg
-aacccggtacctcagatggaaatgcagaaatcacccgtcttctgcgtcgc
-tcacgctgggagctgtagaccggagctgttcctattcggccatcttggct
-cctcccccCAACGgctcttctttctccacagccactccagcattcattat
-ttttgtctttctgatcatctcggttccaatcgaggtgagatggtgcctca
-tgatggtggttctgatttgcatttccctggtgatcagtgatgctgagcac
-tctttcatgtacattcccatgatatctgaaacattattcacagtagcagg
-acatggaatcaacgtaagtatccatcaatggacaaatggataaagaaaat
-ggtgatagatagataatagatagataaatagatagatagatgatagatag
-atagatagatgacaatagatgataaatagatatataaatgacagatagat
-agatgatagatacatgatagatagatgatggatagatagatacatggtag
-atagatgatagatagatagatgatagatgatagatgatagataaatagat
-agatacatgatagatagatgatagatagatagatgatagaagatagacaa
-atagatgatagatgataggtgaaaggtagatgatagacatatagatgaca
-gatagatgatagatagataggtaatgatagatagatagatgatatataga
-tgacagatagatgatagagagataggtgatgatagatagatgacagatag
-atagatgatagatagatacatgatagatgatagatagatacatagataga
-tagatagacagacagaggaatattactcagcaataaacaaagaatagaat
-cctgtcatttgtggcagtatgtatggaactggaggtcataatgttaagtg
-aaataagccaggcacagaaaggcaaatatcaaatgttctcacacatatgc
-gggagctaaaaaagctgatctcgtagaagtagagagaagaatggtggtta
-tcagaggctgggaaagggaggggcggggaggttgtcaatgggcacaaagt
-cacagtcaggagggataaatcctgccattctgtagcaaggtaaggcgacc
-gcagtgaaaaatattgcagtgtttactggaaaatactcactaggagagac
-gaatctgcatgttctcatcacaaatacatgataagtattgaaggtgatgg
-atttgccaagtgccctgatttgatccgtatacaaggtatgcatcaaaaca
-tctccctgtaccccatagagatgtacagtctttatctctctattaaaaac
-acaaTTTTAAATGATTTTTTTTAAAGGCAGAGAGAATGAAAACACCAGCA
-TTCTTGGTGAAAGTCATTTCCTCCCTGCTCTTTCTGCCCATGGAGTCCCC
-TCTCTATTTCCGTTTTTCATCTCCTCCCTGCCCCATCCTCTGCAtccccc
-tcctcctctccttcttcccctccctcctccccctcctcttcccaggataa
-ccttctcatctcccctccctgttctctcctcctgctcctccttcttctac
-ttcaacctatccttTATATCTCCACACCAGTTACGATTTTTCCCCTACTT
-CTTCACTCCATCCACTTTGTATTTTTTAAAATATGAGTAAAACCTCAAGC
-AATCCCAAATATAGCCTGAAAAGTGAAACCCACCCCCGCCTTGCACACTC
-TGCTCCCTTGTCCCAGAGGGAAGCAGACACTCGGATGTGGACGCGTGTGC
-TGCAGCCCTGTGTGCATGTGGGTGGAACACGCACAGGTGGACGGATATAG
-GAACCAAGTGACATCAGCCTGCCTTCATGTTTCCGTCGTTCTGTTGATTC
-CCCACTGATGAATGCTGAAGTGTTTCCCGTCACTTTCGGCACACAAGTGT
-GGGTCTCCCTCCTTTTTCCAAAGGGATAACTGGAGCACAGACAACGTAAG
-TTTCAAGTTGGGAGCAGTCTGGTCACACTGGTCTCCACGGTGGCCCCTGG
-CACCTGACTCCCCGCACCACACCAACACCAGGCAACACCAGGCTTGTCTT
-TCTGCTGCTCAGTTCAGCCGAGTGCACTTGCTCCACAtcttcattcccat
-ttttctggttccccgtggggtaattggcttctctttattggccattttgt
-ttgtttgttttatgagttacctattcatgctctttccctttttcctacgg
-ttgcctttctctttgttgttgagtgtatctccttaaacactgtgaaaact
-gaactttgtacacatcctgcaaatattttttttgaactttgtACACATCC
-TGCAAATATTTTTTCAACTGTCTCTATTCACATTGCCTATGTTGCCATTT
-TTACCAGATATTTTAACTTCCAGGCTAACAAATCTGTCTGTCTTCACAAC
-ACCTAAATTCTGTATGTTGTTTAGAAGGTGAATGTGTTTTCTTATGTCTT
-GCACTGGTCATCTGTCTTTATTTTCCCCGATAGACTGTAATGCTctcaaa
-acaatttattaaaactatcatctaagtgtcatttggcagcacaatcttta
-gcacatgccaaattcccagatattcttgggtctgtagctattgttcattt
-ttctattaatctttctatttaccctgtgccaatacttactttttgattac
-attattacacagtttttcttgggatctcgttggaagcctctctctattgt
-tctttatctaaattttcatggttaggtttgccagttttctacttcaaata
-ggctttaatattaaattttgcaaatataaaattgagattttgattgaaat
-tgcattgaatttatagagtaatttgtgaagaatttgtatccttacagggt
-taaatcttccacacaaaagcatggtatttcttgccatttagatagtcatc
-ctttatatcttttccataatctttattactttcttatattaaatatacac
-attgcatttcttatatacttttttcagcttatgagttttccactgccaat
-atgatgtaatagatatattaaattttccacctcgttattgtaggctatag
-gttgatacagctataggttgaagtattttggtctgcacctagccaccttt
-tgtacccttgaaatagttctaatagtttccatgtcattccatcagctttt
-tcagatgcaatcattccatcggtaaataattatatctatttgcaaagctt
-ctccctttcaatacctgtatttcatttgtcttgtgctattgcactAAAAA
-CCCCTCCATATGTAAGTAGCAGTGACTATGAATCTTGTTTTCTGttcatt
-cattccacaactacttaaggagcacggattgtctgcctgtttgcattcca
-gatgctggggagatcatgtaaacaaaGTCACTCCATACTTAGATTCTGAG
-GGTGACAGATCATAAAGAGATGGACAATATGCCCACTGTGGTGATAACCC
-TCAAAATGTTATGATTTTTTTTAAAGCAGCGTAAGAAGAGATTAACAGGA
-AGTTATCTATTTTAGACACTGGAAATACTATTAATTTTCAATATTAATTA
-GGGTGTTTACTTCAGGTTTGTGGTAGCAAGCCAAAGAAGATTCTTTGGAT
-TATTGGTTTATTGAAAGTTTTTAAAATTAggcctggtgcagtggctcacg
-cctataatcctaccactttgggaggctgaggcgggtggatcacctgaggt
-caggggttcgagaccagcctggccaacatgatgaaacccagtctctacca
-aaaatacaaaaaaaatagccaggtgtggtggtagatgcctgtaatcccag
-ctactagggagactgaggcaggagaatcacttgaagccaggaggtgaagg
-ttgcagtgagccgagatcacggcactgcactccagcctgggctacaagag
-tgaaattcTATcacacacacacacacacacacaaacaTATAAAATTAGAA
-ATGGACATTCAATCTATAGAATGCATTTTGCATTTGTCAATGATATGAGG
-TTTTATTTCCTCTGTAATCAGCTGATGCATGTGAATAGATTTCCTAACAT
-TGAGATATTATTGTGCTTTTGATATAAGGTCTTTTTTGGTTGTGATGTAC
-TAATTTTTTAAGTACTTTGTTGAAACAACTTTCCATCTTTTATGGACGTT
-CTAGAAGGTTTTGTCTGTGAAATGAGAGGTTTGTTAGAACATGCTTGTGT
-GCCATCTGGCTCTGGCGCTATGCAAGGTTGATCGTTGATGGCTTTTATTT
-TTTCTTTGGAAATCATCCCTTATGGTTACTGTTACTCTCCTTCAGACAAC
-TTTTCTCATTTTCATTTTCTGAAGTACATGTTGTTCATTTAGTTTTTAAA
-CCTTACCATTATATATTTTGTATTTTTGATAAAGATTATTCTCTCTCTTT
-TATATTGAACAAGTTTGTTATTAGCATTTCAAAGACGGAGCTTTGGTTTT
-TTATCAAGCCAACTTTTAATTTAtttttacaactttagtgaaatacaatt
-gatgtacaataaactgctgtatttaaattatatagtttgaggaattttga
-catatgcataaacctgtgtgcccgtcaccaccatcaagAAGTCAACATCC
-Accaggcactgtggctcatgcgtgtaatcccagaactttgggaggccaag
-gcaggaggatcacttgtgctcaggagttccaggctacactgagccgtaat
-agcaccactgcactttgacctggatagcagagtgagaccctgtctcgaag
-aagaagagaaaaagaagaagaagaagaagaagaagaagaagaagaagaag
-aagaagaagaagaagaagaagaagaagaagaagaagaggaagaagaagaa
-gaagaaggaggaggaggaggaggaggaggaggaggaggaggagaagggaa
-taagatgagaggaagaaggaagaagaacaagaggaagaagaagaaggagg
-aaaaggaggaagaggaggaggaggaaaataaggagaaggaggaAGTTATC
-AACAAGTCaacatccatcagcacttgaagtctcctcatgcccctgtgtac
-cccaccctttcctgccatgtttacccccagaaaataatctgctttttgtc
-actataggtttgtatgctaagtctgtagccatatataaatgaaatcatag
-attattttcttcctttattcagcatgattgctttgatgcatctgtgttgt
-agagtgcatggatagtttgtttcttttctttgctaaaaagtatttcattc
-gatggatataccatgattagcttatccattcattgaggaagggcattcgc
-aatgtttctggttttgcctctctcatgtaaagctgctatgaacatttata
-tataagtctttgtgtgagcatgtccttcaatttaccttgggtaaatatct
-aggagtaatatggctgcatcatatagtaggtatataattaactttccaag
-aaactgacatactattttccaatgtagttgtaccattttgcattcccacc
-agtggtggatgaatgtaccagttgttccatatccttgccaacacttgata
-tggtcagccttgtaaatgttaatctttctagtgggtgggtagcagtatgt
-catggttgttttaatttgcatttctttattgactaatgatgtttagcctc
-ttttcaagtgcataattaccatttgtatatcttctttagtaaaatgctaa
-ttatttcattcatttattttagttgtgttgtttgcattattgagttgtag
-aagtcctttgtatataattcaaatcctttgttacctacataaatttcaaa
-tattttttctcagtctgtggcttgccttttcattttcatagtattgttat
-tcaaagagcaaactaaactattgatggcatcaaatttactgctattttat
-ttaaaaatgtgtcttattgtattgaatttaataaatacttgactacaaag
-ttataaagatttgtcttcaaaaagttgtatagtttttataccttcacact
-tagatctattatgggagataagggtgggtgcctatttcttgtgcgtgcgt
-ggccagttgtgcatcaatttttgatgactcttcttaacctaaagacctgc
-cttgggccgggcacggtggcttacgcctgtaatcccggcaatttgggagg
-ccgaggcgggcagatcgcgaagtcaggagatcgagatcatcctggctaac
-atggtgaaaccccatctctactaaaaatacaaaaaatcagccaggtgtgg
-tggcgggcgcctgtagtcccagctactcaggaggctgaggtaggagaatg
-gtgtgaacccggaaggcagagcttacagtgagcagagatcgcgccactgc
-actccagcctgggagagagagcaagactccatctcaaaaaaaaaaaaaaa
-aaaaaaaaaaaagacctgccttgacacctgtgccgaaaatgagctgggcc
-caagtgggtctgtttctggactctcgtgtgcctttgatttttattctgaa
-ctttgttccagtacaccattctctggaatactgcagcttcatggtcagtc
-ctgaaattaggtagtaaaaatcctctaacttttttttctttttcaaaatt
-atcttgactatttccttgcgtttccgtataaacttcagaatcagccaggc
-aatttctcaaactatggtgatgtttcctgagatggtatagactgggtaga
-tgcatttggtggatagctgtcttaacaatactgagtcttctgaggcttgg
-acacaatgtatctatttgtaacttctgaaagttcagcacactttgtaatt
-tccatgtacattgcgcacatcatttatcaaatgtatccttagtacttaat
-atgtttaatgctattttaaatgtgattgtttttccatgttaatttttgag
-tgtccattgttaacatacagagacacatttgatacaacatacaatgatgt
-gattgttaatgtacagaaatgcaatacattggcatttgatccagcaattt
-gttaaatccacttggtaattctcatgtttttatagattctttaggaattt
-cccatgtaggttatcatgtagtctgagaataacatcgcttatttattctt
-ttccaatctgcatgccttttattcccttttctcgccagactgaactggct
-agaacttcaagtacaactttaaaaagaggtggtgaaaccagatgtctttg
-cttgctccaaatcacagggggaaaacattttggtatttcatcattaaatg
-agatgttagcgggctttttctgtgtatgccctttttaaatttggagacgt
-ttcatactatttctagtttgtttagagtcttttttttaatgaattttgga
-ttttgttaagtgtgtttactgcatcttctgaaatgatcatattttccctt
-attttttagccagctaatatgatgaattatagtgattgcttttcaaaggt
-taaggtaatcttgtagtcttgaggtaagttctactAAAGTTGTAGGTTAT
-TCTTTCTCTGCTCTCTCAACTATATTTCTTTCTTCTCTATAAGAAAATGT
-cacacacacacacacacacacacacacaaacaAAACAAAACAAAAAAAAC
-CATGGtgtatttgtctgttttcatgctgctgataaagacatacctgagac
-atgctgctgataaagacatacctgggtagtttcataaagaaaaagaggtt
-taatggactcacagttccacgtggctggggaggcctcacagccatggcgg
-aaggtgaacggcacaccttacacggcagcaggcaagagagtcaatgagaa
-ccaggaaaaagggaaaccccttatgaaaccatcagatcttgtgacactta
-tctactaccatgaaaacagtatgggggaaactgccccatgattcaatgat
-ctcccacagggtccctcccacaacacttgggaattatgggagctacattt
-gggtggtgacacagtcaaaccatatcaCTTGGTTTTTCTTTCCATTTTAA
-AAAtgtgagtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtAGccattttc
-tctttctgatattggtaatttatatttttttctttggtagtctggctgga
-aatataaattttatcgaaattttccaagaaccaAGATACCATGTAAGTTA
-TGTATTTCACAGActatggtttggtttgtccccaccagaactcacgttga
-aatttatttatcaatgtggcactattgggaggtagaacttagcaggaggt
-gtttgagtcctagggtgcatccctcacaaacagattaatgccctcctgtg
-agaatgagtgagctctgctctcttgggactgaattggttcctgagagagt
-gggttgttaagaggagtctggattccttggttttgctctctggcttcctc
-tcttgcatggggtcctttgcacacattgactcaccttctgctttctgcca
-gagtggaagcagcgtgagcatctccccagatgccgacgcccaaccttgaa
-ctttatagccactggaatcatgaaccaaataaacctcttttctttataaa
-ctacccagtcacaggtattctgttataacaacactaaatggatgaataca
-Ccactcctaagaacttaccccaaataaactaaagcgtatgtctaaagaca
-cgtacacaaaggttcgtagcaactttatctgttatagccaaatctagaaa
-gagcccagatttcttcaatacatgaatgtttaagcaaactgaactgtagt
-acatctcataccatgaagtctgctcagtaattaaaaatgaacaaccactg
-atacatgtaacaacgtgaacaaatcaccagaaaattatccagagtggaaa
-aaaaatctaatcatacaagattgcatactgtgtggttacatttacatatc
-agttttgaaaagacagtgggaaggaagtgaagagcacatttgtggttgcc
-aatagctagagagagagttggggagagagggaagtggactttcctatggc
-aggccaatatgaggaatctttataatgatggaaatattctgcatctgaac
-tgtatcaaagtcattatccaggttgtgataacatactcttgctttgcaaa
-atgttaccatagggggaaacttcctaaagactaaatgggacctctattat
-ttcacacaactgcatgtgaatctacaattatttcaaataaaaagttcaat
-ttaaaaTGTCATTCAACTTCACTTTACCTCCATAATATTTTATGGCTGCT
-TATCCAGATAAACTTTATATTCAACTCTTTTAACTCTAGCAACAACAACA
-ACAACAAAATGTGGCTAGAAAACCAGTCATTTAAATTATTATTCCTCTTT
-ATAAAATACATTATTTCTCTCTGCCTACatatgagatatttttggtcttg
-tcatattatcccacaagttctttgggtttgcctatattttccaatctttt
-tatctttctgatgttcagaataaataatttccattgatctatttttaagt
-caatttctctttctagtctcacctccattgtagtgtggactccatgctat
-gaactttttctaaaaattggttattgaagaccttagttctaaaatttatg
-tttgattcttctttagatattctacttctttgctgatacgtaaactttct
-atttgtttccagagtgttcatcttacttcttaaagcatgattatagaggc
-tgctttgaagtctttgtgttataattccaacagctggttcttgggcttag
-tttctgatcatttttttccttgttaggtaagttggtttgttttgtttccc
-tggtgctttgtatgctacagcatttttggattctattacggacgttttca
-acattcccttttgagactctgggtattttatggcctaaggagaatggtga
-tttttgttcatttgttttttaacaagaagccaaccagattatgttcaagc
-cttaagtttcaatctgccttccatggattgtagttctaacgtcagtttag
-tttttgagtttctgtatgctgttcagatcaatcccacatgcatgtccatt
-atggggcctgggcagtggttggcctcactcatcactctgttctcaaaggc
-tacggtttgcttctcaggtcagatctccacatacacagcttagaagtgag
-gctcagatttcatgcacaattttatgtgctcaccctctcactctgccttt
-tctcatcatctcactaacaccttccagctctctgcagcttcccttcctgg
-tcctggacagaaagtcaggactttagcatcctggccctgccacacacttg
-ctgtgactacttctttgtctgcacccaagcaccaggaggatggaaaagga
-acaaaatagtggggagtcagcacatgctcatggttgagggtctcagctcc
-tccaaccagagagaaaagcccaaagtcctctctcggggtcacaggtgcct
-gatggactgccttccatccccatgctgccatggtctcctctgctgtatgg
-cccaacggctgagcattaagataaggaagaaagacaaagagtggggtttc
-ctcccacacagtctgatactcagatgtcccctttcccactcctcagaaca
-gaacgtgacagctccttttggagtttcttctctttgttatcagtgtgcat
-ttacagtcatgggccccctttgccttgaggccaggtgatactagaagaaa
-aaaaaatgataaactctctagcagtctggtagaacatttaattctagact
-ttttcaccagtccacatgctactgtctacttttcagaccctctgatgcta
-ttctgagcactcaagatgtgcagttgtgtgagacgcacagggtgcagcat
-gttctctccatcttgcctggaaccaCGTCCAGAGAGgtacaggttgaatt
-tccatttctgttctcatgagaatggttgaacattatttctcattattagt
-ggttatttgcatttatcttctgtgttcatagctccagctcatttatctga
-gggtattcaatctttttcttcattatttaaaaataatttctgcatattaa
-ggataACTAATCATAATCTATAATAAACCATACATACGCCCAGTTTGTTA
-TGCATCATTTTACTTTACTTATGGTATTTTTGCCCTGCAAAGGTGTTTTC
-ATTTTATATATAGTCAAGATAATCCTCCAGGTTTCAGCCAAACTCATCAT
-ATTTTTCCAGTACTTACTGTTTGGgttttttttacatttatcaaattgga
-atttatccttatatatggtgtgggaagtggccccgatattatcttttcat
-atcattaccgagttactgagtactgctcatcaaatatttcttctgctgtt
-agaaatgttgtcctttactgcatactaaactttcacatgtaattgtgtct
-atttctggattttctattttctgccattagtctctcttttcatgcactga
-caccttactgttataattatagaggacttatgtgatttttaaatatctga
-caagttaaccttccactcattgcacctttatttaaagcttttctctggct
-atctttgcttgtttttctgccgaactttgtaaacagtttgcctgcctcta
-taaataaCAACAACAAGAACACGAAAGACAAAAGCAGATATAATTTTATG
-GGAACTTAAGAAAAAAATATATGTAATTGAGATTTTTTTTAATCCCAAGG
-TAATATATCTTTTTTTAGTTTATTTTGGGGatttttaaattattttaaaa
-ttataattCATGTTAAATTAACTGATTTAGTCTAGCTTACAGTGGTAGTG
-GCTGGAGAAACAAGATAGCCCAGCCCCTGGTGAGATACTTCTTGCTCTTA
-GCAGAGAagtggcaaaacacacagaccctggtgtcacgcagaccttcttt
-gaatctctggtttgctgccccccagctgtgctgcgctgggcaagtttctt
-aagctctctgtgccccgaggccctcatctagagagtggggctcatatgcc
-tCATCCTCTTCCCAGCTGGTTTTCCTCGCTGGGTGAGTCGCAGGATCTAA
-GCTCTCTCTAGTCGTTTTCATTGTCATGCTCCAGTTGTGAGCCTTTTAAA
-GTTCCATTTTCAAAGCAGATACACATTTTGGGAAGAACAGTCAAGAGGTA
-GAGTTCTTTTCCTTCACAGCACAAAATTTATTCTACCTCCACACCAAAAG
-TTAGAAAGAATAGACACAATTTTAAGTTGGAATTTGATGTTCTATTATTT
-AGAGGCTTATTTCTGAAGGAGAAAGTGCATGCATTTACATAATTGGATTC
-TTATCTGGAGGAAAAGGAACCTTCCAAAACTTTTGAGGTTTGCTTACCAT
-TAATAAACCACTTTCCTTTCCCAGTATTTCCAGTAATGACTTCACCAAAG
-TATGGCCCAGAAAGATATTACAACCTATTTCTCCTGTCATTTCCATCCGT
-TCATTCCCAGATGGTTCCCCTACGTGCAGTTCAGGATGGAAAAGTACCGA
-AATAATTCTGGGCTTTATTTAGAATACTATTAAAATATTTTCATTAACGA
-TAACTTAATGGAAAACCCTTTACATTTTCATCTGGTGAGTATTTATCAAT
-CGCCAACATGGCATGTATTCCTGGGCTAGGTGCTGGGGAGGGGGTCCTTG
-TCTTAAAGTGAATGCAAAGTCTTCTTGCTGGCCTCCGGATGCTCACATTT
-TGGTGATTAAGACAGAGCTGTTTCATAACCACGTGGCCCGGTCACTCGTC
-TGCCTGTTATTTTTTTCAATCATTCACTTCCTATTCTTTCATCGTGTCAT
-TTGTTAGCTGCACACATCTGTGGGAGGCCATCCTAGCCAGGGCACCTGTG
-CCCAGCATTCAGAGTCGGCTGTTTTTAAGACGGTCACCTTCGCAGGCGTT
-CACAGCAGATCTGTGAGCAGAGATGATAACGCCATGCTGAGGGCTCCGTG
-GGGCTCGCCTGGGGGAGCGGGCGAGGTGAAGCGAGGCTGTGAGCGTGAGG
-AGGGCCGCATTAAACAGCTGACATGCGGGCCTCAGGGCCAGCTCTGCTGG
-GCTGCACTTGATCTGTCTTCCGCATCTACTAACTCATCGCCGACAAACAT
-CTACAGGGGGTACCTTGTCCCAGTCCTCATGCAGACCTGAGGAAGGGCAG
-GACACCAGTACCCCATGCACTTGATGACAAGGGACAAGGGTCACGCCGTC
-AGGTGTTGATCTGCAGGAGCTCGGTGGAGGCAGGACGCTCTGGCAGATGG
-GTGGACAGGGTGGCAGACAGGGGAACCTTGGCCCCTCCGGCTTTGCCCCT
-CCTGGCCTTTGATGTCTGGCAGAGCATCCAGCTGAGATGAACTCCCACTT
-CATCAACATTTCAGCCAGAATATGGAGAGATACATTTGGACTTGCATCAG
-GCAGGTGCGCCTTGGGCACGTGGGCACAGACACCTGCCACTGCAGCAGCT
-CTTCTGCTCTCATATCCATCACGGAGGGCGTTGTGGCCTCGGGGAAGGCA
-GTGGCTCTGCCACCCAGTGGGCCTGGGGTTGGGTGCCAGCTCCACTCCTT
-CCCTGCAAATGACCAGACCTCACAGCCCATGTCCTAGTTAAGAAAAAGGC
-CAAAGGTCAATCATAGCCCAGGTCCTTGAGTTGTGAAAATTCAGTGAACA
-GATATGAGAAGAGCAGAACACTTGCAGAGGAGACGTCCTTAAAGACACCA
-CCGCCGGCTCTGTTGAAAGCTGTCAATCAACCAGCCTCCAGCTCTGTTTG
-ACACCATCAGGGAACTCTGACGCTTGAGACTGAAGAAGGCTGTGAGGTGT
-GTGTGAATGGGCAGTGTGCATGTATGTTCGTTCCTGCAtgtgtgcatgtg
-tgtttgtacctgcatgtgtgcatgtatgttcatgtgtgtgtgtgtgtgtg
-tgtgctcgtgtgaatgggcagtatgcatgtgtgttcatgcctgcatgtgt
-gttcgtacctgcatgtgtgcatgtatgttcatgcgcgcgtgtgtgtgtgt
-gtgCTTGCATGCAAGGGCAgtgtgcatgtgttcatgcctgcatgtgtgtg
-tgctcatgcatgtgtgttgcaagtgtgtgtctgtgtgtgcctgtacacat
-gtgctcgcttgtgcatgtgtgtgtAGTTACGGTGCTGGGTGGGTGGGGGC
-AGGCAGAATATTCTTTTGATGTCTTTAAGCTCAGAGGTGATGGGATTTGA
-GACCTGGCTCTCCCTCAGCCCCAGGAGCCCACTCAGCCTACATGCATCCA
-TCAGGCCCCCTGGGCATCTGCTGTGGTTCTGACATGGCCTCGTCAGGCAC
-TTTACCTGATGTCAAAACTCAGAAATGTCACTTCTCATTGTTGGAAAATG
-AAGATCAGCTCAGAAGAAGCTCTCCAGCCTATGGAATACTCTGGGGAGGA
-TGGGCCAACAGCATCTTTAACTGGCATAATGGAATCTGGAGCTCTTTGGA
-AAGAAATGGGAAGAAGTGAGGGTCATTTGCTGAGTGTAACTGCATCTCCA
-GGTCCCAGGATATCCTGGCTGCAGCTAATAGCAGAACATGTCTGCAACTA
-GAAATACCAGATCAGAAGTGCAGGTGAGAGGAGAGCAGCAGACGCCTGTC
-CTGGAACAACTTCCAGCAGACGTGGTGCAGTTTCCTAGCTGGAGGCAAgt
-gtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtttgcatgaatgtgtgcat
-gtgtgcatgtgattatgtgcatgtgtgtgcgtgggtgtgtgtgattgtgt
-gtgcatgtgtgcatgtgtgagtgtatgcatgtgattgtgtgtgagtgtat
-gtgtgCATACATGATTTTGTGTGAGTGAGTGTGTGTGCGGGGGGGGGGGG
-CTTGCTATGTTTTCCTTTTGTCTCATTGAGGTGCAGATCCTGGCCTATGA
-ATCCTCTGCAGACCCACCAGTTGGATTTGAAGTTCCACAGGCAGGTGTCC
-TCTGCGCTGCCTGAGCTGGGGGCTGTGCTCACCCACTTGAGTTATAACAG
-AGAAGGGCCCATGACCCCTGTGCCCATGTCAACCCTGCTCCAGGGCTTGG
-GGCCGGCGCTGGCTGCATGGTGCCTGCCCCTCTGGGAGGCTATTCTCTTG
-CTGGGAGAAGATCTGAGTGCAAACACAACCAGCCCCAGCCGCCATGCCCT
-CCAGACACTCGCTGGCCTCTGTTCTAGTTCCCAATTGTGCTGGAGGGACA
-GAGAGCTGCCTTTCTGTGAAAATGGCCCATGGCCACCTGCAGGGTCCTGG
-CTCTTTCTGTGGTGGTTGGAAGGGACATGGCCACGGCTCATCCTGCAGGA
-AGTCGTTCAGCACCATCCATCCCTGCAGTGGAGAAGCCAGGCCAGGCAGG
-CGGGGTTCCAGGAGTCCAGCAGCCCAGGAGGCCACACTGGGGTCAAGTGC
-AGCTTGGCCACTGGGCAGCGTGGGGAGCCAGGCAGGCCCTTCCTGTCCAC
-CTCTGTCATCTGCAAAGCAGACAGCCGTGGGGCAGGGATGACCCCTGTAC
-ATCAGCCATGAGGGGACTGTGAGTGCAGCGTGAATGTCCTCAAATCCTAG
-AACCCTAGATAGAGCAGATGGGGTGTGGGCAGCTCTCATCCTTCTCTTAG
-GAGTTTCCCAGCAAAACCTCGGAGGACCTCTGGCCAACACATCCCCTCTG
-ACTCCTCCCTCTCAGTAAGGAGGACTGGGAGGGGAGCAAGCAGCCCCCGC
-AGGGGAGAGAGGCCTTGCAGCCCAGAGGACAGCTGCTCCTTCCTCGGGGC
-CTCTGTGGCCCGGCCAGCCTCAGCCTCAGCCTCAGGACGCAGTGTCCTCT
-CTGCTGCTCTGGGTGGTCTCAGCAACTATATTCAGGGTCAGGATTTCCGC
-AGAGCTCCCACATTCCTGGATGTGAGAGGCCGGCAGATGtgctagggaag
-caggagcccaggagagccagagcggcaccattttaaaatcagctgcacct
-taaaactagcagggcacattccttgccagtcactacgcatggtcctaaga
-tgtttacagcgaaggaagcagcttgctgacggtggtaaggacaaactact
-ccaacaacagaaagtccagatgtctaatacccataacaatatatgctttc
-aagatatagttatgctttgatgtactcacacactagaatgtcaaggaaag
-ttttctttaaatcaatagaataatacatcttgtcatgctgtctcccgttg
-tgcacatacacacagcttagtttagtctttacattgacaagacccctagg
-taaaaaaaaaaataaaaaataaaaaataagccttagaacagagatggggc
-attcttccactggctgtctcagcacgccctcctccgaagtggagcagctt
-tcagtaaaccctctcctctcactgcactctgcaacttgccttgaatttct
-tcagatccaagaccctctcttggggcctggatcaagatcccttttCTGCC
-AGCAGGTGCCACTTGACCTGTGCGTAGCATAAACCCCGCAAATGGCAGCT
-GCAAGTTTAAATAAATGCCTCCTGCTGTCTGGAAATGCCTCCTCCTTCTG
-GGACTGTGGTCCTCTCTGGTGCTTTTACGGCAGAgtccccaaccattttg
-gctctagggattggtttcctggaagacgatatttccacggacggaagtag
-gggggatgatggttctgggatgaagctgttccacctcagactcagaacgt
-cagatacgcaaaaggagtgcacaacttagatcctttttactttattcatt
-ctttttgagatggagttttgcttttgtggtccaggctggagtgcaaaggt
-gcggtctcagcccgctgcaaactctgcctcccaggttcaagcgattcttt
-tgcctcagtcccctgagtagctgggattacaggcatgcaccaccatgcct
-ggctaacttttgtatttttagtagagacgaggtttcaccatgtcagccag
-gctggtctcaaaccaggctgatccacccacttcagcctcccaaagtgctg
-ggattacaggcgtgagccaccgcacccggccggatcctttgcatgtgcag
-gtcacaatagggtttgcgctcctataagaatctagtgccacggctgatct
-gataggaggcggagctcgggcagtaatatttcctgccactcacctcccgc
-agtacggctggtaccgaccgtggcccagggattgggaacccccgGTTTGT
-AGGATGCAGGAGAAGGGAGGCTCCCAGGAGAAGGAAGCTTCAGCCATGGG
-CGGATGACCTGGAACCTGGGTTGGGGGACAGGCTGCCAGGCCCAGTGTCT
-GCAGCGGTCAGCCCCTTCTGCTCTGTAGGATGCACCTGGCAGAGAAGATG
-GATGACCTTGGACAGGACCCAGGTTATGCTGTGCCCatgagtttcccggg
-gatgccacgaccaagtacaacaaactggggtgggcacaggcaggagtgaa
-atccattctctccctgtcctggggcctgaagcctgagaccaaggtgggct
-gcactccctgcaggggctctagggaggacctttcctgccccctcgctctt
-ctggcggtggccgtgacccttggtgccaacctctctacctccatcttcac
-tgtccctcgctgccttcttctctgtgtccacaggtcttctaaagacacca
-gtcattggacttagggcacatctgattaatccaggatgacctcatctcaa
-gatccgtaacttgattacatttgcaaagacccttgttccaagaaaggcac
-agtcccaggttcacagtgagcctgttgtgggggcccccattcagcccatt
-acaCAGCTTGTGGGCTGTGCTAAGAGTGAATCAGGCCTGCCTTCCCAGTC
-TCCCCTGCTTCCTTCTCTGGAAATTGGCATGAACCGTGTGCCAGGCCGGC
-TTGTAGGCTTGCAGGGAGGGTGGGTGGATTCGCGCCTGGTTGCCAGCAGC
-CCCCGGCAAGGGACTGGTGAATTCTTGAACTGTGGGTCATTCCCAGAGGC
-TTTTGTACTCCATCCTGTGTACCCCATCCTGCTTGGAATGTCCCTTGTCC
-CCAGCAAGATTTGGGGTTCGGTTAGGAGGGACATTTGTGCTAGGAGTGGT
-GCTGGCTCCTCAGGATCCTGGGCATAAAAAGGGGAGCTCTGCCAGCTGGG
-ATGCCTTGCTCCCCATCACAGAGAGTCAGCTGGGCCTGGCACCTGGAAGG
-GGGACTTTGAACAAGTGTGTGTGCCCCGAGACATGCCTAAGTTGAGATAC
-CGAATTGGCTTCTCCCTCCCAGGACTCAGAGTGAGGCCCTTTCAGGCCAT
-TCCTGAAAGAATAGTCACCCCCGTGACCCATGTCCACTGCCCGTCCACGC
-TATGGGTTAGATTGAAAAGAAGTGAGGAAGAAATTACTCAAACTAAGGAT
-GCAACATTAGCATAAGATGCTTTGCATATTTTACAATCTTGTTTTCAAAG
-AATGATTTCAAGCGCGTCTCTCATTTACTGTCTGAAAGCGTCGCGAGCGC
-AGCCCGCCAGCTCTGGCCCCAGAACGTTTTATTGCTTCTTGCGCTCGCTG
-CTGTCCTGGGATTCCTACAATTTCATTATGTACCAAGAATGTCGTTTCTG
-CACCGGTAAGCTTATCGCTCTTTTCTGACCGGGGTGGTCTGGAGGTTTGA
-GAGCTCCCAGCCCAGGCTGAGGAGGATCTAGTGGCTCAGGGTAGAGAGGG
-GACCAGAGCTCAAGATCCCAGCCTGGCACAGGCCTCAGTGCACTGTGCAC
-AGGGACCTCCTTGTTGGATTGTGGACTTAGAAAGGCTCTCCCTCCCTGAA
-TGCTCAGACCAGCATCTCATAAACTGGGTTAGCATGAAGTCAGGGGAATG
-GGAGATCATTTTCAGTCTCTCCTCAAAGACACAAAGGAGACCGTACTCAC
-CTGAGGGCACACCCTGGCATAACGGTCTTGGCGCGACCCCATCCGGAGTC
-GGGAGTCTGGGCCTGCCACCAGGGCAGGAGGCAGTGGGGGCTACTCACTC
-ACCTGGGGTCCCGGGACCCTGAGGCTGGGCTGCTTTTCCCAGACTTTGGG
-AGTCATTTACCCTTGCGGAGGGGCTTCTAGATTCCGAAGGCTTTGGCGAA
-TGCCATCTTCCTGTGGCTGCTTCTGCGACTGAGCTTAGAAATTGTTAGGG
-AGGCTTTTTAGAATCTTCCAGGGAATTCTGCAGGCTCCAAAGGGCAGCCT
-TCAGCACGAGGGCGTCTGCTGGCAGACGGTGGGGTGCAGGCGATGTGCAG
-GGAAGAGCTGAGCCCTCCCAGATTGGGGGTGCTGGAGTTGCCCAGACAGG
-GAGAGGCCGGTGGGGCTGCTGCTGTTTTCCACCTTGCCCCGAGGGCTGAA
-CAAAGGAGATTTTCTACGATGGTGAGGGTGCTCCATAGGGACTCGGCACA
-GGGGGGACGTGTTGTGCCAATCCCGGCCGACTGTCGGCACCAGCTCAGCT
-GTGTCCTGCCAGGTCGCTGAGGCTTTTACTTGTGTCTTTCTCTGAGCTCC
-ACAGAGGATGGGGAAGTACACGGGGCTCAGAGACCCAGACACAGCTGGGG
-ACATTGGCTTTCCCAGGGTGCCCTTCCTCCAACCTGGGGTGCAATGTGTC
-CCCTCTGGGGCCTGCCACGGTGGAGCACAGGCAGGTGCTCCCACTGCCTC
-TCGCTGGACAGTCACAGAAAAGCCCTTTGCTGTGGAACCACCAGCCTATT
-AGCTGTACACACTGCAGACCCAGAGCATGTAGTGTGTGCACACAAACGTG
-CACACTTACACACTTACACATGATTCAAGAGGGAAAGGGTCCAAAGCGGG
-TTGTCCAGAATGCGGGCGGATGTTCACGGAAGAGCAAACACGCAGCCCCA
-CACATGCTGGGCCCTAATTGCCTAAGAGAGGGCGGGTGCCGGCCCCGGGG
-AGCCTGTGGCTCAGCAGAGCATGCAGCTGGGGAGGAGGGTGAACTGGCCA
-GCATGCTGGCCTCTGCTGGCTTCTCCTTGACCTCACCGGGGTTAATGTGG
-ACCTTAGGCCTGGGTGCGTCCCTTCCACACTTGACCCTGGAGTCCCCAGC
-AACTTAGTGAGTGATCCTGGAACAAAGAAGCCAGACCCATTGTCTTCCTG
-CTACTCAAGGCCTAGCACCTTCCTCCCAAGAGAAACCTACCCGTTCCCAC
-CCAGGCAGCCTCCTCTCCCCATCCCTCCCGTCCTCCTGCAGCCCCAGGCA
-TCTCTCCACCCAGGCAGGCCCCTCTCCCATCCCTCCCATCCTCCCGCAGC
-CCCAGGCATCTCCAACCAGGCAGCCTCCTCTCCCCGTGCCTCCCATCCTC
-CTGCAGCCCCAGGCATCTCTGGTCCTCAATGTGCCTTCTGGCCTTTGAGC
-TTGCTGTTCTTTCCCGGGTTCCTTCTCCGCTTGGCTCTAGGGCTCCCTCC
-TTCTTCCCCATGTCTTATGGAATGCTGCTATCCACAGTTCAACCTCACTC
-CTTCCTTACTTCCCGCCCCGCCTGGCCTGGTTTTTTGCTTCTCTCCTTGC
-CTTACCCACTCATCATGACGCTCATTTTGAGGTGAAGCTTGTTTATGTCC
-ATCCAATGCAAGCCCCTGGGGGCAGGGCTTGTGTCTCTCTTTGTTCCGTG
-CTGCATTCCCAGGAGGCAGCCACCGTCAGGATGGTCTGGTGTCTGCCTTG
-GAAGGAGGGAACAAGAGGACTGGATGTCCTGGTGCTCAGACGCCAGTGCC
-CCAGAGGCTGGCTGCCTGTTGACAGTGTGGGTGCCCCAGAGGCTGGCTGC
-CTGTTGACAGCGTGGGTGCCCCAGAGGCTGGCTGCCTGTTGACAGCGTGG
-ATGCTTGGTACCAGTGCCTCTGGGTCTGCAGCCTTGGCCTTGGCCTTCCC
-TGACACAAAGCCCAGCCTGGCCCACCGTGGACACACGCAGAGACCCAGGC
-ATCTCTCTCAGCCCAGAGCCTGGGAGGGGGCAGCACAGGGAGCAGTCCCT
-GGACACCCAGAGTGACTTCAAGGAGCTGAATCTTATTAAAGAACAGACAG
-CATTGAAAAACAATTTGATGTCGATGAATGTTCACCCCCGCCCCCTCCCC
-GCCACGCATTTTAACAGCCACTGACACTGCACCTTCCAAATCCGTTTTAT
-TCTGGTTTGAACAGCTCTACTCCATGGAAATGGCTTAATCGGATTCCTCT
-GTTCCTTCCAGGCAGGCAATCCAGGGTGCTGTGTTTACTTTCCAGACTTG
-CTAGACTGTATGAAAACAGACAGCTTGTACCTGTGCCAGTGTGGCGTCTG
-TATTTTGGGCAGGGATCGAACATAAATAGACTATTTTGAGGGTGCCTGGC
-CAGACTTTTCTTCCTTCCCCAAACCCCATGTGCCAAATCTTTCTGCATGC
-AGCTAATTCTATAGTTAGTACTTGCCTCTCTCCTATGATGCTATTATTTA
-AAGCTTGATTTCTTTGGAGAAAAGGATGCTTAAAAATGCTGCCCGGCTGG
-GTTGGGAACCTGCCCCATGTGCCAGACATCATATGACCTATTTTCTAGGT
-GGGATTGGTTGCTGGGAACTGTGGCCCCACGGAGGAGCGCTATCATTTCA
-GGAGGCCTGGAATGAATATTTGTACTCGTTGACTCGCTAATGCCAGAAAC
-TTGAGAAGTAACTTTTTAAAAACAGATGTGAAAACTGCAATTTCAGTGAA
-GCAAATGGCCCACATGGAAATGGCTGTCAAAGAGAATTTCAGTCTGCCTC
-CTCTGTTTCCCCAGGACTCAAGTCTCACCCATTTAACTACGTTGTCTCCG
-AGAAGCAGATGTGGGCTCTATACTGAACATTTGGTTTGCAATTCTGTTTA
-AGTGATGCCTTGCTTGCTTACTTCTGAATATGAAAATAAattattattat
-tattattattttgagatggagtctcactctgtcgcccaggctggagtgca
-gtggtgcaatctcggctcactgcaacctccgcctcccaggttcaagcaat
-tcccctgcctcagactcccaagtagctgggactacaggtgcgcacaacca
-cgcccagctaatttttgtatttttagtagagatagggtttcaccatgttg
-gccgggatggtctcatctcttgacccagtgatccatctgcctcggcctcc
-caaagtgcttggtcaaggtgtgagccaccgcccttgaccAATAATAAGTT
-ATTAATTGATGCACGGAATGTCAGGTTGTCAGCCACCCTGAGGGTTCCCT
-TCTCCATCGCTGCTGTGAAGAGCCGTGGGTGGTTTGCAGGAGGGAACAGC
-CATGTGCAGGTGACAGCATCGGCTCCACTGCACAGGCTGCCCAGGGCGCT
-CAGAAAGGACAGGCCCGCGGTGCTAGTAGCAGACGGTGACTGTGCTTAGG
-AGGCCGGAGCCATGTCTGCCACAGAGAAAGCTGAGTATGAACATGGACCC
-TGATGGGAGGTATCACCTCCAGCAGTGGCCCTAATGCTAAATCTGAGTCT
-CCTTCAGACGTAAGaaatacagttttgttggaacatacccacgcccatgt
-gtttaatgattggggctttgcacccagcacagcagcagctgacgagtaac
-aggccacgtgtccctaacggctaaattatttccaatctTTTCCCGGTTAT
-AGACAGATCTGACCTTCACAGAATATCTGTTACTATCCCCTACCATTTAC
-CCCGCTGTAAAACAAGTTCACTGACTCCTGGTCTCCACGGCAACTCCAGG
-AATTCCACATTGGCCTGTCTTGGGTCCTCAGCTATGGAGGCCGCCCCTGG
-CCAGCAGTCATTGAGTGGAAGTCAAGTTGAACACATGAGTTAAGGAATGA
-AAGAGTAGAACACATTTTTATGTGGGAAACGGCCTGTTTCCCTTGCACTG
-GAAGCAATAATATACTTCCAGAAGGTTCTGTCTGGCCCCAGGCAATGCTG
-CTGACCCCAGCAGGCGTAGGGCAGGGTGCTCCTCCACGTTGAGCCAAGAT
-AAGCACAGAGCCTGACTTCTGAGCCTGCCAGGAAGGCCCGTCTGGCCCCC
-TCTGAGGGTCGGCTGTCCTCTGGCACCTCCCCACCCCTCCATGCTCCTCC
-CAGAGCTCCCAGCACAGAAGGTGCAGGGGCTGCCCAGGGAGTGTGTTTGG
-AAGACACCCGGCCAGGCAGCCAGAAGGAGGGAGCCCTGTCTGCTTCGGCA
-CCTCCAGAGCCAACTCCGGTGCCTGGGCCAGTGCCAGGGTCACCATATGA
-GGCCAGCCCCAGGGTCACCATCTGAGGCCAGCCCCAGCCGTCCTCTCCTC
-ACGGACTGTTGGCCCAGTTTCCACCATCTGCTGCCATCACGGCATGCACT
-TTCCCACTCCTGAAGTAAAGAGCTGGCACTGAACGCCCATCCCAAGTCTG
-CGGAGTGAAGGAATGTGGGGCCTCGGTGAACACAGGTCCACCCACTGAGG
-AGCCTCGCCTGGGAGCAGGTGGTCACACAAAGAGCCTGggctgggcgcag
-tggctcatgcttttaatcccagcactttgggaggccgaggctggcagatc
-acctgaggtcaggagttcgagaccagtctggccgacatatagtgaaaccc
-cgtctgtactaaaaaatgcaaaaattagctgggtgtggtggtgcatgcct
-gtagtcccagctacttgggaagctgaggcaggagaatcgcttgaacctgg
-gaggcagaggttgcagtgagccaagatcgcgccattgcactccagccatg
-gtgacagagtgagactccatctctcaaaacaaaacaaaacaaacaaataa
-acaaaAACCAAAAAAGCAAATCAGAGGCCGGCAGGGAGAGGGAGACCACC
-TGGATAGTGCCGGCAGTGTGCTCAGCACCCGGTAGCTACCCCGGGCACTG
-CACAGAGGCGAGACTTCACCAAAGAGGCCCCCGAGGACCCTAGGTTCACT
-GCCAAGGTGCCAGCCCAGCACAGGGACCATCTGTCTCCAGGCCCTGGCCA
-TCCCTCACCACCAACCTGGCTTTGCTGCTGATAGGTGGGCCTGGGGCTCT
-GCTCTGCCAGCTGGGACTCAGGTTCAAAGCGGAAAATGACCGGCACTCCC
-AGGTTGCCTGTGCGGGCCTCGCATGTACTCAGCAAGTCTCTCAGTGACAG
-GGCCGACACTTGGTCTCCATCTGCCACCAGGAGCCTCGAGCTTTGGCCTG
-GGGCAGCGAATTCTGCCACACCCTTATTTATTTTTAAACCCCTCTTTGAA
-CTGGACTTTCAGGAACATTCAGGACGGGACTTAGACATCTCTGTTGTTTA
-ATTACTTGATTTTGTTTGATTTTATTCACAAAATAATTAGCCTACTAAGG
-ATCTAATTATTGCTAAGGCATGCATTACGGAGATCAGCCCCAGGCAGCTG
-CGGGAGATGAGCAAACACGTTGCCTCTGGCCTCAGTCTCCGGCTGCAATA
-ACATTTTGAAATCAGTTATTTTCTTTTAATAAAGCAGCCTCTGGTTCGCC
-CATGTCTGCAGTGGGCCAGGCATTGTTTGTGCTTTGCTACATTTTCAGGG
-CTCTGGTTTTCTTTGAAAGACGACAATGTTTCCAATTGAAAGTTGACTCA
-GAAAACAATGACTCCCAACTCAAGGTCAAAGCTCTTCTCTAATCCAAAGT
-AAACCGAGTAATTCTTTTATCTCAGGCTGGGGGAGATGAAGGCAGCATCA
-TTCCCTTCCCATTTATTAAAGGTGCGGGATCCGTGTGTCGTGGCAGATAC
-AAGGTCTCACGGAAGTCTAATTAGAGAGATGAACCGATAAATGGAATGGT
-TTATAATTTATCTAATCATGAAGGCAACTTTGCTCCGGGCGCAGTGTTCA
-CAGGGAGAGATTTCTATCTAGAATGTGTCCGAGGATCCAGGAAACGAAGC
-CGCCCTTGGCACACTTTTCTTGGCGGATTGCTTCAGGAAGTTTCTGTGGC
-CAAGAGGGCCGGGCGGGCCTCAGTGAGACCATTCCTGCTTCCACCAAGGC
-CTGGAGGTGCACTCTGGGCAAATGACCTCCCCGGGCCCCATTTTCACACA
-AGAGGGGTTCTCCCAAAGCCCTTCATGCCAGCCCTGCTCGGCCTCTTTCC
-GGACACCCCCACTGTTGCCTGCTGACATCGGGGGGAAACCCTGGGCTCGG
-GCCCACATCTCCAGGGCAGGAGCAGCAAGGATAGGAGCCCATATCCTGGA
-AAAAGCCCTTGGTTAACAGAGTGCTGCTGTGGGCTCTGGGTCAAAGCACG
-GTCACCCTATtgaaatggggaaagtccccttgtccccttcgcaggacgtg
-tgatgggggagtggctcgattcttcatgccctgctgctcaaacttctagg
-ggagcagacagacgagcaggctatggggctcctgactccactgccgtgtc
-taggggtggatgtttccagctcctgaagccccagtgcgcgtgtgttccag
-ggtgctctgttagttttgccgtctataggcttgtgttaacccctccacca
-tgtcacaaggacagagggctttctgtatccccggttcttgccttggtgta
-ccggaagaatcggatcacacctaggcttggagaatgggtgaaaggtttga
-ttgagtggaaggagctctcaacagatgggggagccagaaggggatggagc
-aggaaggttttcccctggagtcgggctgctcagcaccccgggctctcttc
-tgacagccctggccaaactctgcctcattccgccagttggtggcctcctg
-gtgcctgtcgtgttcctcttgatgtctggccacctgtgtgtccacctgct
-agggtctcaaggtttttataggcacaggatgggggcgtagcaggccaggg
-tggtcttgggaaatgcaatatttcggcaggaaaacaaaaatgtgtgtact
-catctaggtccctgggcacaggccctggggtggagccctagccagggacc
-acgcccttcccCCTTCCATATTATTCAAAGGGACTGCGCCCTTCCCCCTT
-CCATATTATTCAAAGGGACCGCGCCCTTCCCCCTTCCATATTATTCAAAG
-GGACCGCGCCCTTCCCCCTTCCATATTATTTGAAGGGACCGCGCCGTTCC
-CTTCCCAGCACTTCTGTCTCACGATGTCCCCGGCTCACCCAGTCCCTCCT
-CCCAGCGACATCACGTCCACAGGCTCTGGGATGCATTTGTTTTTAATGAG
-GACGTGCTGTCCAGAGCTACAGGATCTTCAGAGAGAAAGCGCAAGGGCCT
-CAGAATTGTCCCAGTGTCATCCTGGAAGGAGACCCCTTGGGTCTCTGAGT
-CCCTGAGCCTGGACCCTGAATGTGTGCTCAGCTGTGCCCAGCTGCAGTGC
-TCTGGGACAGCCCTTTAGCTCCCCATGGGAAGTGCAGGCCCTGGGCCGGC
-CCAAGCCCCACCAGAGGAGGGTGTCGGGGCAGGGAGAGGTCAGTGTCTGC
-AAGGAGACCATGccccacccccatgccccacccccatgccccaggcctcc
-ctccacccccTGGATAGCCTTGGTTGGGGTCCTGCCCCCAGCTGCCTTGG
-GACAACTAACTACAACTTGAGTTCCTGGATTTGGAGGCTGGCTTTGGGGG
-AGAGGGAACGTTCACTCTGTCCTGGAAGAGGATAAACAACCCCGGTCCCG
-TGCATGGTGAGCACAGCTGTGCACCTGTTGATGGTGGGAAGGTCTTTCCC
-CTTGAGAAGAAAAATTACTTTGATAGACCTATTTTTATAATCTGTCAATT
-GCATAAAATCCTTTGCATTTTGTGGGTAAAAAAGCCAGAGCTGCTGAAAA
-ATCTATCAGGGGAGGAGGTCTGTGGAAGGAGGAGCTGTCGAGGGTCACCT
-TTCTGGAGCACTAGGGTGGGGGTCGCAGGGCAGCAGAGGGACACACTGAC
-CACCGACCGGAATCCTTGGTGTCCACAGGCTCAAGGTGTAGCTCTCATTC
-AAGGCCCAGAGGCCTGAGAGGCAGCAACAGGTGCAATTTAGGAGCTGATT
-TGTGTGCGGGGTTCTGAGGGAGGCTGTCAGTGGGGTTAGAGGTAGTGACT
-TTTATCAGGATGGGAAAACACCGGCCCAGGGCTGCCCTGCGGACGTGTGT
-GTTGGGGCATGAACGAGTCCCCCTCCCTGTGCTGATGGACTCTGAGCCGT
-CCTCAGTGGGGTTGGCTTTATCCCTGAGCCTCACGGTGGTGTCAGGCATA
-GAGTGATGTTCGGTGGTGGACGTGCACAGCCACGCCGCTCCCTTCCCTGA
-TGACACCCAGGCTGTTATGCACAAAAGCAGCACCCAGGGTGAGAGCACAG
-ACCCCAAAGGCCCACTGccctgagcaagctgaaactcccggtgcctcaat
-ttcccctatgtgataatcctggaatctgctccatggtttggccttgagga
-ttaaatgagccagtgtctgCTGCACTGGGAGAGGCTGAGAGGTGCCACTA
-AATGTGCCTGTGTCGATAGTAACACGCTTTGCATGGCCATTTGGGCTGCA
-TGTGTACAGAGATGTATTGGTATTTATGTGCATATACGTaaagatgtggc
-aatttcagcatcaaagagaataactacaattaattaaagcacattagata
-tgttaagaatgggagttcataatggccttccaaaaacataggtcagttta
-agaaaaactaaagaatcaactgattcttcagaaaactagtaagaggaaag
-gattacacaggtatcagcatttcctgtgcaggacgcaccagggcacccag
-atggctggtggagggaatgtcttcttcataggatatgatagctaaggaat
-caagaaaagatggcagaaccagaatgtcagcatttccaatccctaatgaa
-aaagcaaatgactcaggctgtgaccaacaaGACCTAAGAGGGTGCTTTAG
-ATAGAAGAATCTGGTGAGCCGCTGACCAATGTCTTTATTTATATTCCTTA
-CATATGCATTATGAAATGTGCATATGCatatataataagataataatata
-tagtgttaatatatttatatattCTATAAACTTGAAAATAATGCTAACTA
-TTTATCTGAGTTTAAACCATTACTGGGTTGCCCTAACTCCCACTGCTTTA
-CAGAAAGTTTTGAAATTGAGGTCACTGATGGGTCTTATCACTAAAGCATT
-CTGCCTTCCTGTCATGCTGTGGTTCAGGAGGAAAGCCCGGCCTAGGAAGC
-ATTCTTGACCATAAAGCGGGACCCTCATCCACCCACCCCCTCGGACAGCA
-GGTCCCTGGGGACAGACGGGAACCCCAAGCCACAGATGTGGAGCAGGGAC
-AGGGCTGGGCCCAGTACCAGTGCCTTTCGGGCCCCATGCTGGGCCTCTCT
-TTGGCTCCACTAATTGTCCTCTTTTTCTTCATGGCTAAAATGCATCAGCT
-GTGTATTGTTACCCAATTGTGTGGCCTCCTCTTAGGTCCCCTTCCTGGAA
-GCAAACCCTGAGGTTAGGAACGGGGGTGCAGCACCCTCACCCTTCTTCCT
-CACCCACACACATGCCCCTGGGACCACCCTCCCTTCACAGAGGACACCAG
-GCTCTGCATGTGGTTCTGGGCCTCGAGGTGTTCATGGAACAAAACCCAAC
-AGATGTCCCTTCTAGGCAGGATGTGCAGCTCACACCCATTAAACAAGAGC
-TGCCTGACACGTCCCAGACAATACTGAGATTCTTACACCCAGCAGTTAAG
-GGAAAGCGGCCTTTTTTCAGAGTGAGCATGCACAAGTTACTGTTTAAAAT
-TCACTTAAAATAGTTCCTCTGTATGAAGTTAAACTACCAGAATCAGGCAT
-ATTGTGATCCCTATGTTTCCTTTTGCTTCCCATGTTTAGTGTTTGTTACA
-ATGTTGCACAGCACAAGCACGGGTCTCATACCCTCAGCACTTTGCACTGC
-AATGGCTGGCTCGCTGTTCACTACAACACGCATGTACCCTAGGTGCTTTA
-AAAAGGTACTGTAAATTggccgggtgcaatggctcccgcctgtaatccca
-gcactttggggggccgaggtgggtggatcacttgaggtcaggagttcaag
-accagcctggtagacatagcaaaaccctgtctccactaaaaataaaataa
-aataaattaaaattatctgggtgtgcacctgtaatcccagctacttggag
-gctgaggcataagactcacttgaatccgtaaagtgaaggttgcagcgaga
-ctccggcgagattccatcccaaaaatatatatatatatatatatataAAA
-AACTGTAaattgacaaatagtagttatctgcatttgtgggttataaaatg
-atgttatgatttatgaatacaatgtggaataattaaatcaagctaattaa
-catagccatcactttaaatgcttgtcattgttttgtCATTTTTATCATTG
-CGAGGCTCTCTCTACTCCAACCTCCCTGCTCTGCCTGGCCAGGGGCACAG
-AACAGGCACATGCCTTGTGCACAGCGGCAGCCGTGAGGAACCTTCTCCTT
-CCCACTTGCCACTGCTAGCATGGAGCACAGGGCCCCCCACAGCCCGCTGC
-TCTCTGCCCCCTCTGCAGGGCCACCATGGAGGCGAGGTCTCTGTGAAGCT
-GGTCACTGCATTGCAGGTCCCCGGCAGCCACACAACGAACATCGGCTGGA
-GCCTGGACGTGAGAATGGCGGGGCCTCTCCTGCTAGAAATGGAAACTCTG
-TCCCCGTGGCTGCCAGTTGCCCTTCTCCTGCTGGGAGGACCTCCATGGCC
-TCTGCTGTCTGCATGGTGTGGCCTGAAGAGCCCTCCACCCCAGGAGTTGC
-CACTGGCCCTTCGGGAAGTGAGACTGGGACTGGGCACAGCGCTAGGTGAT
-GAGGCAGGTCACGCTGGTGAGAAAGGGGTTTTGCTACTCTGGACTGTGCC
-CTGCGGTCAGCGGCAGAGCAAACGCATCTGCAGAGACCGGCTCAAATTCC
-TGGGGTCTCCGGAGAACTCCATCACTCAGTTGCCTCCGCCGGTAGCCCTG
-GGCTTGCCCACTAATCCACTGGCTGTAATCTCCACCCAGGGAAGGGAGTC
-CCTCTGCTCTGTGGACCCGTTTCCAGGGCAACCAGGAGTATGACCTCCCA
-CAGCAGGGGACAGGTGCCGCCAGGCGTGCTGGCCTGACTGCCAGAGCACC
-GGGGAGAAGACCTGGGGTACACGCGGCGTCTTGGTCCTACTGGCTCTGGC
-CACCTGGTGACAGCCCCTGCCTGGGACTCGGTGTGTCCTCCTGTTGGTGG
-ATGCAGTGGGGGCTCCAGTTCCTTGGATCCTTAGAGAATCGTCAACCCCT
-TGGGGAGGTTGGCTGGGCCCCGTCAGGGCAGCTGTGAGCAAGGAAGACTC
-ACAGGGCATCCTGCCTCCGAGGTCCTTCCTCAGTGCCGCATGGTGGAAGC
-TGTGGCACCAACCAAATATTTCCTGCGGCCTGTGCTTGAAGAGACCTACA
-CCAACTCCCTCCGAGTGACTGACACCTCCCCGGAGGCGCAAAATGGAGAC
-ATCCTCTTTTTTCTGTGTGTGCAAACAGAAAGAAGGCCGGGCGTGCAGAC
-GACTCGGGAGAACAGATGCCCCGCTTGGCACCTCGCTTGGCAGCCTGTGT
-TCTCCCAGGCTCTGAGCCTGTCCAGGCTGTGGGGAGCGCAGAGAGTGGAA
-GCCAGGAGGGGCCTCCCAAAGACCTCACCCCTAGGGATTCTCTGTCTCTG
-CCAGCAGTGCCGTGCACAGGGTTGGCAGAACATTCAGGCCAGAGGAAGAG
-GCACCTGGGGTTGGCACCATGGGGTTGGCAGAACATTCAGGCCAGAGGAA
-GAGGCCCCGGCTCCCGACCCCCACGGCAGTGGCAGAGGCCCTGCCCTACT
-CCACACTCGTGCTGCACAGCTGAGAAGGGTTCAAACACGTTGACATGACC
-CAGCCTGGAGTGGGAAGGCTGTGCAGGTGCTCCTGGAATCCTTGCAGGGA
-GCCAGGATCTGCTGCTCTCGGCCAGGCCCTGGCTTTGCCGCTCTCTGTTC
-CTGTGTAACAGATCCAGCAAACCCTCCTGAGTGTGGCCTCTGGATGGGGC
-AAGGCATAGAGGGAAACACAGGGGAGGGCCTTGGCCTGGTTCCCCCCAGC
-CACAGCCTTGGTGTGGAGAAAGAGGAGGGGGAGGAGAGGAGCCCCTGAGG
-GCCAGAGCCTGCACCGGGCAGAGTGGCCACCATGGGCTCTGTTCTGGTAA
-GAGATCCACTGCAGGGTGGCCAGGGAAGAGCTGAGCTAGGTCCCAGGTGA
-AAGGTTCCTGGGGTGGCTGCAGTTGTGGCTGCCACAAGCCCTTGTTGGAC
-TCTCCAAGAGGAAGAGAAGAGGACAGAAGTGCTCTCCTGGGCCGTGTCCA
-CCTTTGGGTGCTTCTCTCACGGTTCCACCTGCAGGTCAGCCTCTCCTCAT
-CAGTAGGTGATGGGACCCTCTAATGTTACTGATGAGTGGGGAGGCGGCCC
-CTGAGGACTGCTGTTTCCACAGGCTCACACACAGACCCCACTGCACCCCA
-AGCCCGGGCAGCCCTTGTTTCCTACCCTCCCCACCCGTCAGTGTGGAACG
-GCAGGTGAGGAGAGCCGGCTGTGAGGGCTGAAGCAGCCTCTGAATCACTG
-TGGAAGTCTCCAGGTGTGTGCAGCTCTCCTGCTCCGTGGGCGGGTGCTGC
-GGAGAAGTGTGAGGACAGGGTAGACAGGAGGGGAGAGGTTTGGAAGGAAA
-GGGGCCCGGCCGCCTGCCAGCTCTCCTGGTGAGTCTCTGCTGTGTAAGGA
-TTTTATGCCCCCAGTTGTTAGGGGAGCACCCTCCAGCTCTACCTGTGGCC
-ACAGCCCCCTCTGCCATGGGCTGGGTTtgccatgtgccatgtgccatgtg
-ccaGAAGCAGAGGCAGCCGACCCGAGTGGAGCCCTCTCAAGGGACAGGAG
-GCAGCACCCAGGAGAGGACAGCAGGTGAGCAGCCTCCCAGAGCTCAGCTC
-AGGTTCTCACTGAAAATCCCACCAAATCCTTTTGCAGGAGCCTGGAGGCG
-ATGTGCTGGTGGGAAGGGCTGTGGCGCCGGGAAACACGGGGTGGAAATGG
-AACCGGAACGAGCAAGGAGAGTCCAGGCACCACCTGGGCGACAGCCAGGG
-AGAGGAATCCTGGATCCCGGGTCTGAGCCGGAAGTTGCTCCTCTGCCTGA
-TTCCAAATGAGCTCAAGGCTGGACCCAGCACCCCAGCTGGCATGTGTGAA
-TCTCGGCTGGTCACCACCCGCAGGGCCGGCCTTAACTGATGAGCAGTGTC
-TGAGTGCATTTCCGAGTGTGGACCTGGATGTCCTTTGATTGTCTCCTCAA
-GTCCTAGTTAAAGAATCCCACTGGTGCTGGTCAGAGCCAGCTTCCTAGAC
-ACGTGGGTCCCGGCAGGCAGCCCTGTCGTGGGGCTCAGGTAGCCGGGTGG
-ATCTTTCTGGCCAACAGATCACCTGCGTGGGGCCTGCATCTGTGGCCGGC
-CACACGCTCCAGGCTTCAATGCATGCAGGTAAATTTGGGAGTCTGTTCCT
-GCCCGTTAGTGATATCGGAGTTCAAATTACTTGAAATAGCACAATTGAAA
-CAGACTCCCGGCGCATTGCTCTGGTGGGGCTCAGGAAGCTCGCAGGAAGC
-AGAAAGCGTGGCTGCACCGTCACCACGCCACCACGAATCTTGCCTCTTTA
-TGCATGTGAACCAGGTAACGGGTTTCGTGACGTTTTCATACGCCCTGCGG
-GACCTGCGTTCTGCCCTGTGCTCAGACCGTGGGTCAGAGGCGCCTGCTGG
-GGCTTTTGCACCGGGACAGCTGGAAGGTGCCCTGGCCACGTCCACCGTGG
-TGTGCAGTTGCTCTGTGGTCAGGGCAGGGGACTTTCCACTTCTCCTTCCC
-CGCAAGGCAAGAGCAAAGGGGAGCCCGGGCAGAAGCGGTGCCCTCGGGTG
-CCCTGGGGTGGGCTCCATGCCAGCATCTCCTGGCCAGACCCTTGCGACCA
-GTTGGATCAGCCCCTGAGGTCCCATGGCTCTTGCCTGCAGTGCAGGCTCC
-TTCCGGTGGCCAAGGTGCTTTTCCAGGGAGAGCACCAGGGTGCATGCCCG
-TGGTGCAGCGTCGGAGCTGGTGGATGAGAGAAACCTGCTGTTATGGGCGG
-GGCCCCAGGTTGGGGCAGAGCAGGGATGTGTGGAGCCTACTCTGTGGCTG
-AGGCCCAGGCACTTTAGGAAACTTTCCACGGCGCCAGAGCACGAGCCCAG
-ACCCCAAGGGGACCCACATGGAGCAGAGGAGCTGAAGCTCCTGCGTCCTG
-GGCTCAGGTGACCACCACATCCAGGTGTGCCTGCGGCCTTCCCAACATCC
-TGGGGACGCTTTAGTCCTGGCAAGCGGGGCGGTGAGTCACCCTGTGCAGG
-GTTCAGGGAGGCCCCAATCCCCAAGAGACCGCTCCCTCCCTGGCTGAGCC
-CTGGCTCTTCCACAGGGGAAGGCATTGGGTTGCACCTCGCTGGAATTCAG
-CCCTACTCAGCAGGAAGGAGGAGCTCAGGGGTTCCCCAGAGGTAGTGCCG
-GTGGGGTGCCTCCCTGCTGTTGCTGTGATGTGGGTGACAGACAAGCTGGG
-AGCTCAGCAGCCCACAGCAGAACACGTGCACCGCTGGGCAACTGGGGGGC
-AGCCCGGGAGTGGGGAGGGTTGGGCAGCCAATGGGGGCAGTGGGGTAAGC
-AAGGCTGCTCTTCGCATCCTGTCTGGGCCCGTCTCCCCCAAACCCTGAGG
-CCAGCTGGTTTCACCTCAGTGCTGAGTGTCTCTCATCCTCCAAGAGCCCA
-GGCCCAGGACAGGGCAAGAGGAAAATGATGGTCAGACACACGGTTGCAGT
-CCCCTCACCGTCTGATGGAGACACTCTGGAGTCACACGAAACAAGGGTCC
-CACGTTTGGCACAGGTGAGGGGTTGGAGCCACACAGGAAAAGGGGGCCTG
-CCTTTCTGAGGCCGGAACTGCAGAGCAGGACAGACCTCTTGGCAAAGATA
-AGCAACATCGTCACAAAGACACAGGCCAGCCCTTCCCCTGGGGGATGGAT
-GTGTGGGGAGCCTGGTGGGGCTGAGGCGGGAACGCCCCCGGCTCCCATCC
-TTCTGGGATAAAGCTCCACCCTGGAAAACAGTGGAGCTCATCTTGGGGGG
-GGGGACCCATGGGATAAGGACACCTACCTGAGTGGGGCCACTGGAGGCAG
-GGCCATGGTGCGGGGGAGCTGGGAGGGGATACTTGGGTGGGGACACCTCT
-AGGGGATACCTGCCTGGGGTGGGTGGGACACCTGGGCAGGGACACCTGAG
-TGGGGATACCTGGGGCGGAACACCTTCGGGGGGGTACCTGGGGCAGGTGG
-GAATACCTGGGGAGGACACCTGAGGGGGGTGCCTGGGACGGGACACATGC
-AGGGACACCTGAGTGGAGCCCCTGGATGGGGTCAGCTGGGTGGGGTCCCT
-GGGGGGTCACCTGGGCGGGGCCCGCGACAGGGAAGTCTCTGGCAGGGGCT
-ATGTTCCCCCACCCTGGCATTAGCGGCAGGTGCCCGCCCTCTTCCTCCTG
-ACTGGAAAGGGTTCCCTTAATGCTACTTTCACTGTTATTTACATATGTTG
-TGAAGGATGAGGACTTGATCTGTGTTGCTAAGCGAGGATGGTGTTGCTCT
-GGCACAGAAGGAAGTCTTCAATAAAAGTGTGACCATAAAGGAAGCGAAGG
-TTCTTTCTCTAATGTATTCGGAATGCCTGCGCCTGGCACGCAGGCCCGCG
-GCACTCCTCAGCATCTCGCTGCCTGTCTAGCATCAGTACATGTGTGATAT
-TGATTTTTTTTCCCCAGCAAGTGTAAGAAATACACATTTTATTTACCTTT
-TAAATTCCCAGCACCCATTGGCTGCTGGTTTACAGGCTGCAAAGTGCTCA
-GCAGTAGAAGGCTCAGGCAAGTCCAGGGGAGAAGCAACCCCAGATAGCGA
-GACTGCAGCTTCCCCGCTGCCCCTGCTTGAGCTGCGAACTGAAGACCAGC
-CAGGCAGCTGCTGCCCGCTCCCATCTGACTGAGGAGCCAACTGCAGCTCG
-GTTGGGGGTTCTCTGAGGGCAGCAAGGACTGGGGCAGCTCTTCTCCTGGG
-TGGTGATTTCTGGTGGTGGTTCTTGGGAAGCACACTGGATGCCCTGTATC
-TGTTTTCACAGCTAAGAAGACTCTCATGTCACTGAAGTTTCCTGGGAAGC
-CACCCCATGGGGCACATCCTCCTGACTGCAGGTTTGCCTCTTGCAGGAGC
-AGCTCAGCCTGCCTGAAGGGGAGGACTCTGTGAGGTCCACAGGGCACCTC
-ATGCACCCACCTCATCTCCAGGGCAAATGTCTGCTGAGTGCCCCAGCAGT
-GGCGTGCTTCCACCCCCTAGAGGTCGACCTGGCTTGCCAGTGGCTTGCGG
-GGCTGGAGACAAGGGCAGATGGTTCTGGGCACCAGCCCAGACGTCTCCTG
-CACACAGACATGAGTTGCAGACATTTGGGTCTGAGCCCCCAGGCTCTATG
-GGCCCTGCCTGTGAATGTCAATCAAATGTCCTGCCTCAAAGCTCTCCCCA
-TTTTGAGAGACATCAAACAATGTGAAATGTAACACGCAAACACTTCAAAA
-CCAAATCAGAGTAAGACAGCACTGCTCTCATTCTCTGCACTGCTCTTTAG
-GCGACAGACACTCTGCCATCTGCCTCCCTCTCTCCTCCTCCCTTCCCCAC
-TTCCCCAGGGCCTGGAAAGCCACCCTGTGCTGCTTGCTTCCACTCCTCGG
-CAGCCCTCACAGCCTGGTCTCTGCATCCACCTTGCCAGTAAAACTCTCCA
-GCCACTGGCCATCCTGGGCGACAGAGAGCCAAGCTCCGGGCCCCGTCTCC
-CATCCCCTGCATCCCCTGACCTCACTGGCTGCTGGACACCATCTCGTCGT
-CTCACTGCACTCTTGCCCCCTTGCTTCCTCAGGACTGCTCCTCCCTCCTC
-ACTGCCCCTTCACTGTCCTGCCGGGTGTCTCCTCTTCCTCTGCCCTGGCA
-CTCCAGTGGCCAATGTCCTGGAACAGTGGCCGCACATCTGCGCCTCCCCC
-ATCCATCCAGGGCTCCCCTCGCCTCCTCTGCACTGTGTGTTTGGTGGAAG
-ACACAGACCACAAAGGCAAGATGGCTCCGAGGGTGACGAGAGCATGCGTA
-TTGACCACGGTCCTGCTGCAGCCACCAGTGCACACCctcctctaacatgc
-agagcaatcccacgtaagagggttatcaccgatcccgtgttctagatgaa
-gaaccagagacgcagagatgtcaTCCTGACAGCCactgatagtgactgag
-cacctgctgccgctggccctgttcacgtggtttccacttctactatttaa
-acctcctggtcaccctataagacaggtcctctactgttttacagaagcag
-aaatgaatcaataactttcctattgccccagctgctagaacccttgatgg
-gtcatggagcccagagtcaaacccagTGCTGTGCCACGGTCTCCTTCCCC
-TCAATTCATggaggtacagaaggaaggagggaggaaggggagggaaggga
-tggaggCCTTTGTGCTCTGCACACCAGCTGAGCAGGAGAAGGAGCAGGAG
-GGGTGTGTCTACACTCGCCCTACCTCACGTGTCCTCACCCTGCTGCCCAC
-CCTCACCCTACCTCACATATCCCCACCCTGCCGCCCACCTCTCATGTCCT
-CACCCTGCCTGGAGGAGTCCAGAGGGGCAGAGTTGGCAGAGCCAGAGTGG
-ACAAGGCCGTGCTGTCAGGGAAGCAAATTTCTGGAAAGCGGCAGCAGCTC
-CCCCGGTCAGTGCTGGGTCTGCTCCTGGCTGGATGGACTCTGTGTCCCAG
-CACTGTCTGGGTTGGGACCCATCGAGGCAGGGCTTGTGGTGGTCAAAACA
-CTTTTTATGTGCTCAGTGGGAGGCACCATCCTCTGCCCTGGAAGGTGCAG
-ATCTGGAACTTCACAGAGGACAGAGCAGGGGTGAGAAGGGAAGCCTCAAG
-CCTGTGCGGTGTGGGGTCTCCTCGCAAAACCCTGTGTGACCCGGGCTGTC
-TGGGGGGCAGGCACCTGGCTCACTGCTTCCTCTTTATAAGACCTtccatt
-ttcatgcctgagtcccccctgctagaatgtaagctccctgagggcacagg
-ctttatgttttCAGACATGTTACTCAGTACACACTTGGTCCATAAAGATT
-GAAGCTCAGCCAGCTGGCAGCTGTGGAGGAActtgttttctttcttttct
-ttttctttctctttcttcttctcctcctGCAGCATTAGCTGAGATCCAGG
-TCATCGGTTTCACGACTGCTCAGAGctgcactatcctatgcagtggccac
-acatgacatgtggctgtttaaaatcattgaaatgaagtgaaataaaaact
-ctgcaccagctacacatcaggtgttcagtaaccacacgtggctcatggct
-cctgagctggacgaggcagAGACTGTCCAGAGACGCCTGCAGACATCCTC
-ACCGCGGGCTCTTGTGGAGGAAGGAGCAACTTTGAAATGCAAGAATTATG
-ACTAAAGTGTATTTTAAATAGGGATTGCCAGATGACTTCCAAAGAAAGCT
-GTTGCAATTCTAAATTTCACCAAGTCAGGAGCGCCTGTCACCCTGCAGTT
-GCCTTCCGACAGTTCTTTGTGTTACCAGCCAAACAGATGAAAGATAGTAA
-GGCCATCTGTAATATAATTGTTAATAAAAGAAACATGAGTTTGAATATAT
-ATTAACATTTCCTCTTCTTTAAATTACCTATTCAAACCCTTTGTTAATTG
-TATATTTTGGTGTTAGGATGTTTCGTGTTCAATGGTAGAAATGCCTTGTC
-CATTATGAAGACTAACTTTTCGTGGTTAAAAGAGGaaaatatatataaat
-tatatataaatatataaaataaaaaGATACATTACAGGTGTATGTTATGT
-TTTAGAATTTTTAGAATGTTTATAGAATTTTTGACACCCACTCTTTTTTA
-AAGCTTTGTGTAGTCAAATGTATCTATATTCTCAAATATGGCTTCTTGAT
-TTTCTGTTATAAGAAAACTCCTTGCTCAAAAGCTAGACAAATGTTATTCT
-AAATtttctttcttttctttctttctttctttctttttttttttgagaca
-gagtcctgtgagtcttgctttatcacccaggctggggagcagtggtgtga
-tcatactcgatttagcctggaactcctaggttcaagggatcttcctgcct
-cagccttctgtgtagctgggaacatagacatgcactactgcacccagcta
-attcttttttgtttcttcgtggagacaggatttcaccaagttgccaaggc
-tgagctcCATctacattttcttctaagactttttaatgttttactttcat
-agatagttgatcagcgttgaactcattataattaggcatgaggaagaaac
-atttttttaattccaagtggtcagttaggttaataccaataaaataaatt
-atcctttctccataagattaagaaaccacaattagctgagtttccataac
-aaaatggacctagattttctcttagacggggtcttgctttgtctctcagg
-ctggagcagtgtggtgcagtgatggctcactgtagcctcaacctcccagg
-ctcaagagatcctctcacctcagcctcctgagtagctgggactacaggta
-cacaccaccacacccggataatttaactttttgtggagacagggtttctc
-catgttgcccaggctggtctgaaactcctgggctcaagtgatcctcctgc
-cttggcctcccaaagtgctagaggtgtgagccaccacacccagctagata
-tttctatgacttgttctaggcatctagtcattgatccctgggccaaagct
-gctctgtattgagctttttatctaataaggtgagtgccccctcactgtta
-gctctttaaaaaaatattttcagataaagagctggctgttcctttaggtg
-aattttaacattatctgtaccatatcaaagaaaactccgctccgattcta
-tttgggattgctttcttttcatagttagattaagtaataaaatactgaag
-agaaatcatatttttatagtgtcaagttttcctagtaatcccaaatttct
-ttctattcattcaggtctttctcttaggctatcagcaccatttcatattt
-ttcttcttatgagatctgtgcctttttcatttagttccctgcagtgtgta
-tggcttatgctgccatttttgaatgggagattattatccagttccatgtc
-taactgtttgctgctagtgtagaaaaaaaaatggtttctttttggtcgtt
-ttatatccagtcatcctaagagtcacactttgctagtgtaatatgcttac
-tctgtGCCGTTACTAAAAGCATGAGAAGATGAAAATTCAGAAGCCAGCTG
-AGAAGAGACCTCTCAAGTGTGTTTGTAACTGTGATCTTCACAGATGCCAA
-CCCTTCCCGGAAATGCTGGCCCAGGCTCTCTGAAATTCACATCCTAGACA
-TCAAGGCATTCAATGCCTTTGGTGTGTGCACATACATGTATGTGTGTGCA
-CATGGGTGTGTATGAATGTCACACACACCCCAGGGAATACAGTCATCACA
-GGCGGTAGACAGGCAATCAAGGTCCGAGCACCCCACAACTTCACAGGTGT
-TGAAAGTGAGGCTGGTCTGGCTCTTGCTGAAGGAAGGGCCCGGGAGCAAG
-TTCAGAAACCCCAAAGTCAAATGTCCACCATAGGCAAGGCATGCACAGAA
-ACAAACAGGACACGTTCTAACAGCAAAATGCAAAATTAATGAGGGGTGTA
-AATAGGCAATTTAAAGAAGAGGAACTGTTGATAGAAGTTCAAACTCATTT
-TTATGAATAATTATGTGTCTGATTGACTTGCTGTCTTTCACATATTTGAT
-TGGCAATGCTTaaaataattgtcaggggaaatacaaggcaacaagagctc
-ctgacattgatggtgacaattagatttgcagcctttctttggaaataaat
-ggaaaatgtctattaatattaaacagacacattcccttggactcagaagc
-cccaGAGGGGTGGCCATCTGGGGGATGAGTGGGGTCAGGGTGCCCCTCAC
-CCAATTCTAAAGCCATGTTTCTCCTTCCCCCTCCAGCTGTCAGCATGGAT
-GCCCAGCCCTTCCCACCGTCATGCCCTCCACTTTTCCTTCCTCCCTGTCT
-TCCCTCTACCTTTCTCCCCATCAACTCTTCCCCATTCACCAAGGTGTATC
-CAAATACCCCCTCCTCCATGAAGCCTTCCCTGCTCCAGCCCTCGAGGCCC
-CAGTCACCCCCTGCCCTGGTGTCCATGCAGCCATCCGAGGGGGTAGGTCT
-GCCTGCTGCCTTGATGCCTGATGCCTCGGGGGCCTCTTCCCTCAATGAAG
-GCTTAGGGCCCTGGACAGGGACTCTGCCTCTTCTCCATGGACCCCTTGGC
-AGTGCCCATCAGAGGGGTGGGCACATGGGCCTCCATGCCACACATAGGCA
-GTGGATTCAGCTTGATCCCTAGGCAGATGCTTCCCTGGGCTTGCATATGG
-GAGCCGGGGTGGGTGTGGAGCAGAGCAGTAGCCTCCATGGGAGAAGATGC
-CTGGGGCCTGCAGGCGGGTGGGAGCAGTTCTGAAGGAGGAGGGAAAGCAG
-GGCCACCTTGGAGACTTCACTGGGGTCTCTGCCCTGGACCTGAGCCAGGG
-AGGGTGCGTAGGAGCCCCCTGGAGAGCCGGGCATGGAGGGAAGTGAGTCC
-AGGCCGGAGGGTGCTGGGACCACCAGCAGCGTGTTAGCAGGGGCAGGGAG
-GCCGGGGACGCCCCGTAGCAAGTGAGCAGGCAGATGGAGCAGGCTGCCGG
-GCTCCTGGTACGCACAGCTGGGCCACCCCTGCCAGCAGAGCAGGAGAATC
-CTGCGTCCCCCCACAGCACTGCAGAGCAGGGAGTTTAGAAAATGCCCGGA
-ATCTCAGTAAACTCTCCCTGCCTCCTCATCCCATGATCCTCAGCCAGCAG
-TTTGGAGCCGTGAGTTTGCATTTTTCAGAAGGCTCAATCCCTGCTGTGGG
-CATGAATTATACGGATGCTCCGGATGCCGAGGACAGCCTTTGTCTTCTTG
-GTGCACTGCAAAGGTGAGCGTCCCTGTGACCTTTTGCTAACAAAAGACTC
-TTCTCCCAAGTCCTCTCCCGGACATCAGACACCCCGGGCCGGCAGAGGAC
-ACAGACTTGCCATTGCCGGGCGGACCCACTGAGCGGTGTGACCTGCCCCA
-GGGGCCTCAGAGGAAGACGGCTGGTGTGTCCCTGAGACAGGAGAGACGCA
-TTGCCACAGGCTCCCCAGAAACAAGGTCCCCAAATGCCACTGTCGGCTGC
-TGAGGTACAGGGAAGTGCTTGGTGGAGACCACGCTCGCCAGGCTGCCCTG
-CAGCCAAAAGGCAGAGGCTGAGCAGGAACGCAGCCTCCGCTGAGGGCCAC
-GTGGTGAAATCAAGTATCTGGGCCTGGGAAAGACATTTCTGGGGAGTCTG
-TGTGCTGCGGTCTGGCAGCACCGAGTCCGCTGTGTGCGGGGGGCTGGTAG
-GACTGGCCTCCTGAAAGGAGGGGAGAGATCAGCGTGCTTGGAGGGAGACC
-AACTCCCAAAAGGAACAAGGTTGGAGGGGGCAAGGCAGCTTCAGAGCCTG
-GCTCCAgccctggagacagaaagaccagtttaaattcccacccggcccgc
-accctctggggggccgtgggactttggggagcctctttggtccttagttt
-tatcttctgtggaacagacgcaataatccgtatttagttgggGGTAATTA
-GTCGACGTATGTGGATAGGTGGACACGCAGTACACTTGGTGATGGTGGCC
-GTCTTCACCCCTCTCTCCCTGGTTTCCCTAAGAGAGGCATCTCTTTCCGC
-CCTTCTCCCCTGAAACTTGGGGTGTGAAGTGTAAGATGCTGGATCTCACA
-GACAGGAGCCCACCACCGACCCAGAGACATCGTGGCCAGTTTTGAAATCT
-TCAGTCTCAGAGGACACTCATGGGCTCTGCGATGCTGGGTGGGTCGTGTG
-CCCACCCTGAGCTCCTTCCTTTGCTCCTAAAGACAGGAGTGATGCTTCCT
-GCCTCCGCGTTACACAGGCATCGTGAGGCTGCACATGACAGCAGCTGCCC
-AGCTCCAGGTCAGTGGTGGCATGGAAGAGCTCCAGCTCCAAGCTGCACAC
-ACCCTACTTGAGACGCCGTTGTTCTGAGTCCACCGTGCCAGGTGGAGTCC
-TTCCGTCCCCAACCCTTGCCCTAGGGCCCTCAGTGCTGGTGGCTCCATGA
-GGTACTTCTTTCTGTAGTGGGTGTGAGATTCATGAGTGAGATGCCCCCAG
-CCCTGCTCCAGGGCAGCCTTGCCAGTTTCTGGAATGTTCTCCATTTCCAG
-TCTGCAGCTTCCTTCTGCCCAGGAGTGGCTTCCCTGTCTGGCTGTCATTC
-AGCTCAATTCTGTACTTAACTTCAAAATGTGCATAAAATCCTAAAATGGG
-ACGTTTCTCAGTTGACGTCCTCCACCTCCAGCTCCTCTCACATGGAAGCA
-GGTGGGGGCCTCACGGTGTTCTAGAGTTTGCAGGGGGCAGAGAGCAGCAT
-CCTCACCGCAGATATCCTGTTACAGGACTATGGGATTAAGAGCTTGAAGT
-TTCATTTAAATCACAATGAAAACAACTATggcctggtgcggtggctcatg
-cctgtaatcctagcactttgggaggcaaaggaaggcagatcgtgaggtca
-agagatcgagaccatcctggccaacatggtgaaaccccatctctactaaa
-aatacaaaactcagctgtgcatgtgacatgcacctgtagtcccagctact
-caggaggctgaggcaggagaaccacttgaacctgggaggcagaggttgta
-gtgagccaagattgggccactgcactccagcctgggcaatagagcgagtc
-tcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaCAATTACAA
-GCCCCAATTCAGCGTGCTCCCAGGAGACTGTCTGACTTGGGGCTCTGGAG
-TTTCTGAGGCCCACAGGGTGAGCAGGGAACCCGGCCAATCTCTCCCTCCT
-GGGTCCCTCTCAGGCAGGCCATGGTGACCTGGCCCCAGGCAGACGCTGGC
-AGCTCAGAGGCGTGTGGGACCTGCAGACCTCAGGGGTTGCTGGACAGTCC
-TGAGATAGGCCTTGCTTTTGGCCAAGGCACCTGAAGAGTGAAAACACTCT
-GTGCATAGAGGAACAGGATGGGGAGAGCATGGCAGGCCCTTCTCCAGTTC
-AGGGCCATCCCCTCCAGATCCAGAGCAAGCTCGGGAGGGGAGGAGTCGAT
-GTCCCAGGATTTGTGACTCGGACATCGGGGTTGGGGGATGTGGGTGATGT
-TCACCTGCCGTGGAAGAACCCGGAGGATTAGGGTGGCAGGCGGCAGGGCC
-CTGAGTCAGGCTTGAAGACGTCGGGTTTAGAGGCAGCGGGCAACTTGGAT
-GGAAATGGTACAGACAGACGCTGGGGTGCCGAGATCAGCACCCCACTCGG
-CCCCCCACACCTCCATGACTAATCAAAAGGTTCACTTCTCCCAATCTTCC
-AGAAGAAGTCCCGGCCCCTGGGAGGCTCCTGGTATGGACCCAGCTATGGG
-ACTCACCTTCTGGCGGGCACAAGGGCTGTGTCCCAGCAGGCAGGACCCTA
-GTTCAACTCCTTCCTAGTCACAGGGGGCCTGGGGTGGCCAGATCAGGGTC
-TTCTCCTCCCCACGCCTGCCCTCCTCAGCAGCCCGCTGCCCCATGGCCTT
-TCCCTGCTCCTGAGTGGATGCCACGCCCTCTCCTAGGTGGTTCTACCTGG
-ACAGTGACTTCTAACGTCAGATATTGCGAAGGCCGCCTGCAGGGAGGATG
-GAGCCAACAGTCCTGGCGGTCTGTCCGCCCAGCTCCCTCGAAGGCCTCCT
-CCTGGCTTCCTGGGTGAGGCTTGCTGGGGAGCAACGTGACATAGAGGCCA
-CTCTTTGGGGACTGCTGCTTGGGGGCCTGGCTCCTGGGTACGGGTGGGAG
-GCAGTGACCTCACAGAGAGGACGCTTTCTTGCGGGATCCTGGGAGAGTCT
-CACTGTGGGCACAGGGCCACTGTCATCGCTCGGTCTGCAGCTCAGAGACC
-TTTAGGGGTAGCCCTTGTCTCCAGGCTAAAATGCCACCTCCGTGTGTGAC
-ATTCCTGCCTGTCCTTCCTGGATTTTAGTCTATGCAAATTCTGTCCCCTC
-CCCTCGGCTGCCCCACATAAGTGTGACCTTCACACGCATCCCCACGGGCC
-AGCATGGAGCCCCCTCAGGCCGCCAGCCTTCCTGGGCTAAGGGTCTCTGC
-ACTCTGGGGGGCTCCGTCCCAGTCCTCACACAGGGCCAGGCTCAGGCTCG
-GACCCATCTCCTCCTTGAAGCCTTCCTGAAGCTGCAGCCAGGCCCGGCGT
-GTGCAGGCTGAGTGGCAAAGGCCAGACCTTTGATGTACGGGGTGTCCCAT
-CAAGGTTGCCACGTCACAAACAAGGGAACTGAGACCCGTGGAGTTTCCTG
-ATGGCCTGAATTCCAGCCCTCCCCTGCAGTCCTGCCTGCCTCACAGGCCT
-GCTGGCCATGGTACCCCTGCTGGACAGTAACCAGGCGGAGGCGCCTGCTG
-CCGGCGAGGCCCCAGGGTTGGAGAGCTTTGTCTGGCAGGCTCCGGGACCA
-GGGCACAGACCCCATCGATATGGTCCGGAGTCTCTCTGATTTCCCCGCCC
-GCCCAGGGCCTCTCTCCTATGGCTCCCACTATCAGGGAGGCCAAGGGGAC
-GCGTTTCCTGTGCTCTCCTGCCAGACAGAGAATTGCCTGGATTACGAATA
-TCAGTTCGGGGGTGACAGGTGACAGACGTCACCAACCTTCAGCTCCAGAC
-TGAAATAACATGGTATTGACCTTGCTCAGAAAGGCTACCAAAATAGAATG
-TTCAATACTCTCTATTTTAACTGACAGTTAAAAATTCAATACACCTTCCT
-CCTGCCAGACACCTGTATGCAATCAAGCTAAATAAATGCCCTCGGGTTCT
-TGCAAGAGGCGTAGCTGTTTGTGTATAAAGCTATCGGCCCTGGCTGGAAG
-GGACTGATTTTCCACAGTCTAGAGAATGGCCCTTTTGAAAAGTAAACAAT
-GCCTCCACAATCCCAGGCTATTTTGACAAAAGCAAGAAGCGAAGCAGAAG
-TGGGAGATAAAGGCACGCTCCGTCTCTCCTCGGACCCAACACGGACTCCA
-CAGACATTGTTCCGTCACGGAAATCAATACCAAAAAATAAAGGTCAGATA
-CgtgtgtgtgtgtgtgtgtgtgtgtatgAGCTATAGACACAGAACGTGAG
-TATCCAGAGGAGATCAGCTGTGGGAGGTACAACCGTTATACCAAGAAAAG
-ACCCAAAGAAAACTGGAATAGTATAAAAAATAAATATGTAACAGGAAAAT
-AAGAAATAATATTAAAGACAAGAAATAAAAAGTATCAACACAACAAAAAC
-TTGAGTCATCACAAAAGAAATGATGCAAAAAAAGGTTTGCAAGACTGGAG
-CAAGGAAGGATGGGGTGGGAGAGAGGATGCTgggagtgggaggggccaga
-gggtgggagagaggatgctgggagtgaggatgctgggagtgggaggggcc
-agagggtgggagagaggatgctgggagtgggaggggccagagggtgggag
-agaggatgctgggagtgaggatgctgggagtgggaggggccagagggtgg
-gagagaggatgctgggagtgggaggggccagagggtgggagagaggatgc
-tgggagtgaggatgctgggagtgggaggggtcagagggtgggagagagga
-tgctgggagtgggaggggccagagggtgggagagaggatgctgggagcgg
-gaggggccagggggtgggacggggcggggagagggagaagaggggTTCTG
-GGTGGGAAGGATTGGGGAGCGGGAGGAGGGGAATCCTGCAGCGGGAGAGG
-CCGCAGCTGTGCGCAAGGTGAGCACTTCCCAGGCAGCTCTCTGAAGGCCA
-AAGGGCAAGCCCCGAAGTACCCTGGATGTCTCCGGAATGGCCAGGAGAGC
-CCAGAGCCAACACGTGTGGTGTGACAGGACCTCCTCCAACCACAATCACA
-TCTGAACTTTCCTCTATCAGGACTGAAGAAGGCAAACACTTTGCAGAGAC
-TCCTGGCCCCAGGTCTCCTCCCGCCTCCACTTCCAGCTGCAGGGAAGCTG
-CCAGGATGCTGGTAGTTCTCTGAGACTCATTCAGGAAGAATCTGTTCTCT
-GGGCTTCTCGAAGTGAACCGGCCACCTCTGAGCCACCCAAGGGTGGGTCA
-GAGCTCAGCAGGCCCAGGAGCTGAGGATGCCGCTAATGCCTCGGGTCCTC
-GCCTGCCGCCAGGCAGCTCCCAAATGCTGACCCTGAAGGCCGCTGTCCCG
-TTTCCTCTGTCTTTCTACAGGAAAACGGGGGTGGACATGAAATGTTAGGG
-CCGGTGGGCACTGGCCTTTCAGCATCTCCCAAAGATGAGAAGGGCCCTCT
-GTCTCTGCCCCACCAGGCCCCACAGTGATGAGGCTGATTATGACCGCTTC
-TGTGACATGTAAGGCACCAAAATTAGCATGTGAGGTCGGACACGAGAGAA
-AGCAAGGGCACTGGACTGTCTGGAGGATGTTTTAAGGTGTTTTCTTATAA
-TGTACCGGAGTTGCTTTTTTTTTTCTTATTTAATTTCCCTTTCTTTCTTC
-TTtttattttttattattatactttaagttctgaggtacacgtgcagaac
-gtgcaggtttgttacataggtatacatgtgccacgttggtttgctgcacc
-catcaacccgtcatttacattagatatttgtcctaatgctctcccccagc
-cccccgcctccggacaggccccggtgtgtgacgttccgctccctgtgtcc
-atgtgttctcattgctccactcccacttaggagtgagaccatgccgtttg
-gttttctctccttgcgtcactttgcggagaatCTTTATTTGGGAATTGCA
-TTTCTTTAATCTGATCATGTTTTGCTTTACGTGTGTGTCACTGCAATTTC
-TCCACATGTTGCTCTTGCTTTCCCTGGACActggctggaaggcggagccg
-gagggactggctagagccctggttttagttctggccccgcacctgagcca
-ctcgatgactttggaaaagtgactcagcgctcgcctctcaggtttctgac
-tgaaaaataaAATGGGCCGTTGCTGGACTCACAGGCGATCGGCAGGATGA
-AAACGCGCCGTGATCGCCGCATGGTGGCTGCGATGTTAACAAGAATTTGA
-CACCTGGTGAGGATGTGGAGGACCCCAAACCTGAGACTGTTTGGAAGGAG
-ATGAGAGAGCTGAGGTGTGTGGTCCCACCCCTGAGCCCTGCAGCCACCTG
-GACTCCTCAGCCCAGCGCCATGTCGCAGAGGCCCCTCTGTAGTCATCAGG
-CCAGCAATGGAGGTGTCACCTGCACGCTTTGCCCCTGGGGGAGCTCAGCC
-TCACTCTGTGATCTCGCTGATCCAGCCAGCAGACCTGGGGCTTTGATTGG
-AGGCCCCTGTGGAATTTAAGACCTATTCATCCCACCTACAGAGGTGCTGG
-TTGCTCTCTGTATTTCTCTACTGATGGTGGCCATGGGGGCTCCCCGCTGC
-TCTCCAGACCCTGGTCCCATTTGGGACTCTCCATTGTCCCTCCCACGGGT
-CTCCACTTTCTCACACCCAGCTCCTCCTCCTCTCCTGCTTCCTTTATCAT
-CTTCACTTGCGGTCCTGGCATCCTCAGGATACCAACCCTCAGCTCTACAG
-ACCAGACAAAAGGGCAGTTGTGGCCTAGGAGAGCTTCTTAATCTGAATTC
-CATAAAGATTCATTTTTATTCAGTGGTGCATGTGcacacacacacacacg
-cacacacacaATGAATCTTTGAAAAGTCTCCAGGCTAGAAGATAGCTGCT
-CTTGGTGTGTTGAGGGCAAGAGCTGTACAGGGCGGTACAAGGTTTCTCTC
-CCAAACCCACCATTGTCACAGCCACTCCAGTGCAAAACCATGTAGACTAT
-TCCGGCAGGCACTGCATTCCAGGAGCCAGTCTTCCCCTTAGTGAGAGGCC
-GAAGTCCATAGCTGGAAGCAACCTCTGCTCCTGGTGCTGGCACAGTTAGA
-GTGGCGTGGGCCACATTTGCTTTGGGGAGGGAAACAGCTTCTGGAGCCTG
-CGTCTCTGGTACCCAGGTGACAGCAGACCCGGCCATGTCGCTGCAGCCAG
-GCCATGCTTGGCAGCTTTAGGGAAGCAAATTAGCAGAAGACTGCAGGGTC
-CAGGGACTTAGCAAGCTGCCTCCAGGGCAGAGGAATCAAAAGACAGATTT
-GTTTGTTTATTTATTACTTTTCTGGCCCTGGCTTCAATTCCCATACACAG
-AACTTGGCTGTGGGATTCTTTACAAAATCATTCTATTCTTGGATTTTAAG
-CCATTATTGAAATTCTATTGTAATTTTTTTCATCTGTTTATCATTGACTC
-ATCAATCCGTTCAACAGGAATCCTGGCCAAGTGCTGGTCACGGTGAGGGA
-CTTGGAGTTTAAAGTCACCCGGTGCAGAGGGAGAGAGAGACAGTGTGCTG
-GGAGTGGGTACAGAGCCAGCATCCCCAGCGCCACCGGAAAGCCTCACACA
-CGCCTTGGCAGGTGGAGACAGCGGAGCCCTGGGCAGTGGAATATTCTACA
-GAGGCACGGGGAGCTGAAGGGGAGCTGTGGACCCAGGAGAGCTGGGGAGC
-AAGGCCCAGGGAAAGACAGTAGAGATAGACCAGCAAGTTGGAGGAAGTAC
-TTtttatacattcattcatttgttcacacgttcattcattTCtccactta
-ttcacaaatattctttgggaaacaactgagagccatgtgaccttccaagc
-tcagggacagaccaaatgcctgcctgagtggctcctgttctggtagtgga
-ctgaggtattgaacaaatggagccaataaacgcaagtcggggtgaccgat
-ggtcattaaaaaaatagagccaagtccagaaagaggatgcatgaggtgct
-gtgggagaaagggtcctgggggaggtcctttgagtggggcattggattga
-ggtccaatcaacagtgaaagttgtgggtgtcaggggagggctgggggcag
-atggagaagccctcgcaggtgctctgCTGCCTAAGGCTGCTCACTGGGCA
-CCTGAAGGAGCGGAGGCTGAAGGCCGGTGGAAGTCGTCCTGCCCTCTGTG
-CTCCTAGGTCCCTTCCCCAGGGTGCTCCCTGGATCAAGTCCGACTAGGAG
-ATCCTCCACCATTCCTATGCCATGGCAGACGTGAAACACGGTCATGCTTG
-TGTTGCATGCTGGGAGGAATGGTGGACAGGTGGAAACTTCCAGTACCCAG
-AGCCGAGCCCTGGCCCAGTTCTGCTGCCCAGAGGGCTGCAAGGAGGCACT
-TGGTGTCCTGAGCAGGACTCTGAGAGACAACATGACACTGGAGGAACACT
-CAGGGGAGGACACACGCAGAAGACAGAAAGAGCCGCCATCTGAGCACTGC
-CCCCGACTCCAGGCAGATCAGCCCTGGCGAGGATGGGCGGGAGGAGCGGC
-CAGCCCACCTGTGCAGGGAAACACGCAGGCAAGGCGTGGAAAGGAGCTGA
-TGCTCAGCGTCTTCAAAACCAGACGCAAATCTCACCCCAGAGCCAGTGGG
-CTCCTCGGAAGTTTTGGTCAGGGAGAAGGAATACGCTCTGAGCTAGGAAT
-CAGGAGACATCTCTGGAGCCAGCAGTGGGGTTTCTGTCCACAGTCAGTGG
-AAGCAGGGCGACTCCCTAGGGCTTTTCAGCAGAGAGAAGCCCAGAACGCC
-CAGCCTGACTTGATTTTCTCCCCATGCCTAGGTCACAGGCTTAGGATGTT
-AAAGACTCAAGATGACATTATTCCTACCTCAAAATAACAACAGCTTCTAC
-CTTGCACACCCACTGGCTACCAACCTTCCATTAACATGCAAGTAAGAGCA
-ATTCCCGAGAGAGAAGCACAGCGTCaggttgtttttctcacctactaaga
-tggtcaagggcgaagcagtccagggtggcccattggctctagggtgccat
-cagggacatggcctcctcaaatctttctgctcagtcattcctaggctgcc
-tcaaagacacaagacaacagctgcacctccagcattgcatctgcattctc
-cacagaggacagaaaagggcaaaggtaagggctggccaaacgtgttccca
-cgaaagggcctttctcagggttcacagaggcactttcattggcaccccct
-ggcaaggactgggtcatgtgaccacgcagcgataagagaactgggaCGAG
-GCACCGTTTTTCACCCCATTTCTTTTATTTTGCTTGTTTTTGTGGTGAAA
-TCTGGGcatatagtttccacagcaacctctatgaagtaaatactgtatct
-tccctgtgaagacactgaggctcagggaggctacagaccttccccaaatt
-acctgacactctggcagcttcgaatccaagcaggtgattcctcaggtgtc
-ctcctgagtcctttgccatTCAGCCTTTCCGAGGTGCTTCCAGCTCCCCA
-GCCATCCCGGCAGGGCCACAGATCCCATGTGGTTGTGGTTAGGACTGATG
-GTGTCTGAATTAGAACTTATCTATGTGCTCAAAGCAAACGCGTAATTTTG
-CATTAACCTGACACGTGGTGCTTGATTATGTTAGTGTTTGTGGTAATTGT
-TTTTGAATTTTTTTTAAGATAAAGGGGGCAGAGAGTGCATGGCAGCAGAA
-CGCCATTGACAGGAAGTGCTTATTATGTAATTATGGACTTTTTAATATGC
-ATATTTTTCTCTGTGGTTGGTAGCAACTAGATACATAATTACTGAATTTT
-AAAGAAGAATATTAACTACAAAGCCTTCTGGCTGCTGAAAAGTAGGAAAG
-ATTCTTGCCTGGTTTGTGGCTAAATTCTCTTAACGATTCAAGGCCTGCAG
-AGGTGAGGGTGGCCTCTGAGAGAGTGATGAGAACCGGTGCCATGGGTGTG
-AAGTTGGTGCCACTGAGGGTGCTTTTAAGGAGCAAACGCACCTTCTGATT
-CTCCAGCTAGCATGGGAATGgtttcagtctgcctgggctgctgtaacaaa
-ataccctggaaattcatatcacataaaccatggaaattcatttctcacgg
-tcctggaggccaggaagtcaaggtgccagcaaagtcagcgttggctgagg
-ccagtgccccatagaagcgggtgctgtgcgtgtcctcctgcagagaaagg
-ggcaagggagctctctgggcctcttccttaagggcactaatccttttcat
-gagggctctgtcccctggcctcatcaccccccagaggccccacctcctaa
-taccatcaccttgggggcgaggattcgacagacacgttttgaggggacag
-aaaccttcagaccacagcaGGAATGATGGAAAGCGGAATGATGTCCAGAG
-AGGGGCTGGGCTTGGAGGTGTCCTGGTGGTAACTTCCAGGAGGGAAAGAA
-CAGTCATTGGGTGGAGATAAAAGCGAGGGTAAGAAAGATGTCAGGCGGAA
-GGGCGGCTGCCGGAGGGCTGGATTCCAGAGGCCAGCGTGGCTGAGGCAAC
-AGGGAGACCAAAGCAGAGCAAGGCGGAATCTGGCAGAATCACACAGACTC
-ACACAAGAGCACAGGGCCCAGAAGCAAAGCTAGTGGCATCCCAGAAGAGG
-CTCCCTCTGCTCCCCTCTGTGGGAGATGCCAGGGGCCTCACGCCAGGCCT
-GGGAGCTGCTTCCCACTCCAGGTCCCCGCACACGTGGCTTCCACACTCAA
-AGCCTGACGTCCGTTCCTGTGCTTTCAGGTGAGCAGGGGCCTGACCAGGC
-AGTGGGGTGAGGGGCCCAAACCCAAGCATCTGCCGGCGGCCACCAGATCT
-GCCCGGCCACCTCTCAGGAGCCCTCCCCCAGGTTCCTGTGGGCACCCAGG
-CGCTGGGGCTTGCCCTGCCCCTCCGTGTGAACAAGGGTTCCAGGATGCAG
-AGGAGCTGGGGCTGGGCAATCTGAAGGGTCGGCTGGGCGGCTGCCCCCTC
-CCCTTCCTGTCTTCCTTTAGGAGTGGTGGGGCAACCCTGGGCAGGTCtga
-tgtggggcaggcagacccgaaaacgggggcttagcccaggtctgttactg
-gttttgcccaggaaagaattcaaaggtgagcaggtgctgttagcagcttt
-tattgcagcggcagcagaggggctgccccaggacagcagagtgcacagaa
-gagcagctcagaggcagctccgcatcataattacacccacttttaactac
-atgctaattaggggttggtttatgcagaaatttctagaaaaggagcagaa
-acctcagggtcattgggattttaccgtgggaagtggcagtaacttctggg
-tcttgccgtggcaatggtaaactaacaaggctcaccggctggcacgtctc
-acaggcggctgctgccaccggccctgtttcagctgctcctccacgtggtc
-tggtgtctgtgccctgcctcgaagtcaagcccacctcctccctcaGGTCC
-TTGGCACTGCCTGTTGGCTTTGCCCTGGCAGGTGCACTGGGGGACGCAGG
-GGCAGCAAGGCTGCTGCTGGCGCAGGCATCCCCGTCCCTAAGATGCATAT
-GGAAGGCGAGTGGGCCTGGGTCTGACCTTTCTCACGTGGTTGCCCCGTGT
-CTGCAGCCAGCGTGTGCTCCTCAGGCAGAGCAAACCCTGTGTATCTCGAG
-TGGTGACCAGGCGGTGCAGCTTCACACTGCTACTCTCCGCATTCCATCTG
-TTCTCCTCCCCCATTCGTCACCACCCAGGTGACACTTGCTGAGGAAATGT
-CCAATGTGACCTGAGGCCCATGTGGGGGCTCCACCCACCTTCCACCTTTG
-TCCTGCTCCTGGTCACTACCCTCCATGGGATGCCCGCCATGGCTGTGTTT
-CTTTCTGGACCCACAGGGATCCTGCAGCTTTAAAAGGAAATCCCTCCCCT
-CTCAAACCTCTGAGCCCTCTGACCAGGCAGGGGAACTTGATTACAGCAGA
-ACCTTCTCTGTACCCTCAGGTCACCCTGCTCCTCTCCTGTCCATGGTGCT
-AGAGTCACTGGAGACCTGGCGGCTCTTCAGGTGGCAAATTAGGCCAAGCG
-GCCACTGCGGTGCTGAGCGGTCCATCCTCCGGGCGGTGCTGACCAGTCCA
-TCCTCTGGGCGGTGCCCGTCCATCTGCTGAGATCAACTCCCACTGCAGGG
-CTGTGCTGGTGTCTGGGCCGGGCACTGGCCCCTCACCCCAGCCCTGAGGG
-TTCACGAGGACTCAGCCTTCCTGGACTGGGTCGCACCTTCTCTTCCTGAC
-CTCAGCTGCCTGCCTCCAGCTCCATGGGCTTTTGAAGACAAGGGACAAGA
-GATTGCTGACTTCTGGAAGACCAGCTGTTGTTGGCGAGGGAATCAGGCAG
-ACCCTCTTCCTTTTTCTTGTCGAGGATCCAGCCTGAGGGAACCTCCTTCA
-GCCTCTCTGGCAGGTTGTCCTGCCTCCTGGGTCCCACTGTCAAGAAGAGA
-CGGGTTTGCTTTTGACTCTGACTTCACGCAGCTCATATGGTGCCTTCCAC
-AGCAAGGATTCCTCAGCTCCTCTGGGTCCTTCTCCCCGTCCCCGTGGTCA
-CGGCCACCCTGCCGTCCAGGCAGTTTCCTTAGCAGCTTCCTGGGCCCCCG
-GCTGTATGAATTCCCTCCAGTGGGCTCTGAAGCCCTTGATCTTTCTTTTC
-TCAGCATTTATCATGGAGGGTGGAAGTGAACCATCTGCCAACAGTCCTCT
-GCTCAGGCACAGCACGGGGCCAGGCTGGGCGTGTGATGGTCACGGGCCTG
-TGTAGTGTCCCTGAATAGGTAGCAAATAAAAGAGTGTTCATTCAAGGTGT
-GCTGAATGAACGAATACATGAAAAAACGCTTGGGGGTGGGGAGTGAATGG
-ATTTCAAATTCTCAGGCTGCACTTTCCAAATCCGACACAGTCACATTCAG
-CCGCTTGTCAAGACTGTTTGACAGCCACCCCTTTCCCGCATTCCCGGCCC
-CCTGAGCAGCCACGGCTGCTGTCACATCTGCCTCTTGATGTTGCTGGGCC
-TGGAGAGTTACCCATGCACACTGAACATCAAGGTCAGTATTTTTAGACGC
-AATTCTTTAATTTTTGAAAATGCTCCAAAGAGATTTTAGTGATGGGAACA
-TATTTGACAAATATAAATAAATGTAAGAGCTATAGAAATAAACTTCCCTA
-AAACCTCTCCGTTCTATTAACCATCTCCTGGAGGCCTGTGCACGTGTTCT
-GTGGAGAGGATGGGGTACCCCACAGCCCCTGAGGCTTGGGGAGGGAAGCC
-CTGGGGAGACCAGTGACAGAGTCGATGCAGGAAGTGCCATGTCCCTCCTG
-GGGCCTAGAGCCTGTACTACGTCATCAGGCTAAGACCTGAGACCGTGCCC
-TGCCCTGGACTCAGGGTTCCGAGGAGCTGGCAGAGCCCCCAGGGGTGGGG
-CAGAGCCAGGAGAGCAAGAATCTCCCTGACAGGTGGGAAGCATGTGCCTG
-TTCACCCCTATGTCCGGCACAATGCTTGGCCCTGCAGGTCAACAGGAAGG
-TGAGTGCAAGGGCGCTGCCCTCTGTGAGCTCACAAGCCAGAGGTCAAGAC
-CCTCAGACAGTGACATTTTGAGGGGTAACGCTGGGAGGCATTTGCAGAGC
-CCAGAATTGGGGTTCCCCGTTGGGACCCTGACCCTGGAAGGGGCCTTTGA
-CCTGAGGGCAGAGCTATGAGCAGGTGTGTGGGGCTAGGACAGGAGCCTGC
-TCCCACAGGGAGACAGCACGCACACATGGCCTGGGCCGGGAGCCTGTGAA
-CCGTCTGGGAGCTGGAAGCGTGGATTCAGAACGCCCAGCCATGGAGATTA
-GGTGGGGAACAGGGGAGCTACTTAGTGGAGCACGGACCAGGGACACCCAG
-GAGCCTCAAGTGCTCTGTGCTCCGGGCTTCCTCCAGAGGGCGGTGGGGAG
-CCACTGATGCATACCCCCTGTAACAGAGCTTGCAGAGGGAGGCTCCTCCT
-CCTCCCTCCCACCCTGTGGCCTCAGCACCCTCAGAGCATCACCATCTGCC
-TAGTGGCCGAGGTAAGAAGCCAGGACTGTTCCCAGTGCCTTCCTCTGGGA
-CCCTCCTCTGACACTGTGCCTGCTGGACCTTCCTTTCTTGGCCGACGGCA
-CCCTGGCTGGCATCCCTGCGTCTGTCCTCTCTACGTGGCACTGGCTCACA
-CTCTCGCTCCCTTCACCAAAGCCCCCACCTGCGGCCCTGTCTCTGGCCTT
-TCCCAAGGCCACAGAGGGATCTGAATCAGTGGGGTCAGACCCAGCCTGGC
-TTCTCAGCTCCTGGATGGCTTCCCATGCTCTCAGGCTGAGCTCTCAGCTT
-GGGGGGCTCACTCTCGCCCCAGCCTGACTTTCTCTGTGTGGGCCTTTCTT
-GTGCTGACTGGCACCCAAATCTCTCTCCAGCTCCTTTATGTTCCCATCGC
-TGTAGTCCAACACCACCTCCTCCAGGGAGCCCTCCCAGATCCCTCAACCC
-AAGGTGGACTTTCCCAATAGCCCCTCAGGCCACTCTGCACCCTTCCTGCA
-CAGCTACCATGAGGAACCTAAAACAACAACTTATTCAACGGGCAACAAGT
-GCTCAGTAAATATTTAAGGAGACAGTGAATGAATGAATATATTTCTACCC
-CCTCAGCTCTCTGAGTCACACAGTGGACAGTCCATAGGACATGAATAATG
-TATACATTTTTAATGGAATTAAAGTACACTCCAAGCATTTTTATCCTGAA
-CACTCATGCATACACTTAAATTAAATATTGAAATAACCACATGCACAAAA
-TCTTCTGTGGTCATGGTTCTCATCCTGCATGAATCACTTCTGTCCAGAAG
-CGGGCATCCCTGTGTAACAGCCTTTGGAGGGCGTGGGAACGGACAGAGTT
-CATGCTCTACAAACATCTGAAAGTGGCGTTGACTTCCCTGCCTGCCTGAA
-TGAGTGTGCAATGTAGATAAATCCTCTTTTGACTAACAGGTCTATGCTGG
-CCCATTAGGATCCACAGGAATGAACAGGAATCCCTTCGGGAATTTTTCAA
-GGCTTACAGGGTATATTTCCCATTGCTTCCGTAAAAATGTAAAGCTGTTC
-TTTCTGCAGTCTTTTGCCCGAAGCTATCGGTCTTTTGGGGTTTAGCAACC
-ACCCTGAAAACCTGGACACTCATTTGAATTGTTGCATCTTCACCTTGTGA
-ATATTCTGCGCCTCTCCCTGCAGGTTCAGGAGAAGAGGTCCAAAGGCACC
-ACCTCTACTTGATCGCAGTGAAACTTCCCACCACAGCCCCTCCAGGGAGC
-CACAGCGTTCATTGCTCACTCACAAATAGTACACAGCACACACGAGAAAA
-GTTAATTTACTGGTTTACCTACTTCTTTTTCTTCTCCCGCTTTGCCCTGT
-TTGATTCCATTTAAAAATGTTTCTACTTCATCCATCAGTGAGCTCCCTGT
-GTCGGCTAGAAAGTCTCTTTAGAAGCGTGTTTAGCATCTTTCAATACCGA
-TATCTATTTCAGAGACTCTTTGCTCCTCCAATATCTGCCTTATCTCCTTT
-ACTATTTTTCATTATTTGTCCCAGCTATCTGCCTCATCACTGTCTGCATT
-TTTAATATCCTCTTTGTCTCCTCCACTTCTGTATATTCTTGTTTGCTCAG
-TAAGCCTTATTCAATATTTCATTGTATGTGTTAACTGTTAACTCAGCCCT
-AATTAATCTCACTTTTCAACTTGGTTCAGTTTAAGGTTCTAGACATGTCA
-ATATGAAGGGTGTATCTGGGGGGAGCGAGAAGTTCAGCAGCAAGGGTATT
-TACAGTGCCACATGCAGTCTCATTTTCTCGCAGAAATCCAAATTGCTTTG
-CCTTTTCCTTCAGAGAGCATTTTCCTTTGTTTCCGACTTGCCCATTGGGC
-GCAGCACACCTGTGTGGACACACTGTCGGCACACACGCTGGCCGGTCCTC
-CACCGAGGGTCAGGAGCACTGAGGAGGCATCTCCCTGGCCACGGGCAGTG
-CCACAGGAGCTGCACTCAGGCTCCCAACCTTCACAGGTGCGTAAGGTGCA
-CTGGGGCATGCTCAGAGCCCCCTGTCATCTGTCCACGCGGGTGAGGACAT
-GCTGGGTGGTCTGGTGGCTCAGTATGAGGCAGACCACTTGACTGGGATGG
-TGTCTTCAGGAAATCCTGGAAACAAGACAGAGGTTTGAAAACCTCACTGC
-AAAGACACAATAAGCTACGTATACATAGTGGTATACATATGCACGCACAT
-ACATGCACGTCCACAATCCATGTTCCTATGCACCTGTTCCTGCCCATGCA
-GGTTCATGCACACATATTCCCTGcaaatgtttgtcaggcacctgccaggt
-gcctcatgctgttccaggtgctgggattgagccatgaacacctgatacag
-acaatgtccctattcttacagatctcgtattctaggtgtccctgttctta
-cagatctcatattctagagactagagatggagagatggtgacaaatgagc
-aaacacatgtatactacattaggagaatgtgtgagtccattctcacactg
-ctaataaagacatacccgagactgggtaatttatggaggaaagacgtttg
-attgactcacagttcagcatggctggaggggtctcaggaaacttccaatc
-atggcagaaggggaagcaaacacatccttcttcatgtggcggcagcgagg
-agaagtgccgagaaaaagggggaaaagccccttataaaaccatcagatct
-cacgagaactcactaacacgagaaccgcagcatctgggtaaccaccccca
-tgattcaattatctcccacggggtacctcgaacaatacgtggggatttat
-gggaactacaattcaagatgagatttgggtggggacgccagcaaaccata
-tcagagggctaagtgctgagaaggagggagggaggagagcagatgtgggc
-atacagatgtgagaggcataccttaaccaagtgtcaagagaaggcctgcc
-gcatcagagctttcagtcagagccctccagtaggagagtgaattctgtgc
-acagctaggaaacatctcagcggcagagacagggagcacggggtcctgTC
-CAGATGTCCACACTGCACGGATGCGCACACACGGTGAACAAGGGTCTGTG
-CATGCTCACACAGCGAACCAGCACATCTACCCAGATGCGCACATCTGTGC
-ATGTACACTGGGCACAGGACTCTGCATCCAGATACAAGCGTGTGCACAGA
-GACGCACAGGAGGCAGATGCACGTGCAGAGGATGAGAACCTGAGCCCACG
-GACCAGGCCAGCCCAGCCTCCGTGTTGGGCAGCAGCCCCCACGTCCTCAG
-GCGCTGCTGGGCAGTAACAGAGGCACCAGGTAAATCTTTATCTGGTGGAA
-AGGCAGCATCTCATTTGACCTTTGAAAAAACGAAACATTCCAAGCCCAGG
-GAAAAGTGAATAATCTATAAAACAGTGACTCCCTACCACTCAGATTTAGT
-CATTTTTGAAATATTTGCTTTAAATATTTTCCTAAGAAATAAAACCTTGC
-AAATGTAGTTGAAGGACTCACCTCATATCCCTGAAGGCTGCCATGGTCTC
-CACCTGGTGCCCCAGACCCTCTGAGATTTTCCAAAAGTTCACGTGTAGCC
-GGCCtccctccctttccttttcccaaattctaacacatgtgtgtgttcgt
-aagccaggcggagttagattttctgtgttttactaaacagacaaatcatg
-ttgcaggtttcattgtacaccttgctttaacaaatgtgtctttgatattg
-atccaaattgttacacagagatgcagcccattcattttaacttctttgta
-actttccatcggagggataagctacatccattctGGGTTTCTGTTTTCTT
-TATGACAACCAATTCTTCTTTCGGCACTTGGCTTGATACACGTGAGTGag
-atgttgtcaactcttctccaaaatgtccttgcacatttacaatctcatct
-cctgcaggctcctgcggtttccctgctccgtcaacaacgggtattgtgga
-actttgtacttttagaaatcccatggatacaatgcggcatctcattacag
-ttttaattttcttgattaacagtgtgggggaacatattttctgtgcttGT
-TAACTAGCTCTTCAAGCTCCCTGGTTTATAATGATCTGTCCTTGTCCTTC
-ACTCAGGCTCCTGTAGAGGAGACGAAATCAtttttcttaatgattcatag
-caatgctgtgtatgttttgaatatgagtttttgtttttcatatgtgtcac
-aaatatcttctggatctgtggctttcattttcctcagaacatgctctgtg
-atacaggagatttatttttcatgtggtcgttttaaaattgatttttggcc
-cagcacggtggctcacgcctgtaatcccagcactttgggagaccgaggca
-ggcggatcacctgaggtcaggggttcaagaccagcctggtcaacacggtg
-aaactgcgtctctactaaaaatataaaaattagccagtcgtggtggcggg
-cgcctataatcccagctactcgggagactgaggcaggagaatcgcttgaa
-cccgggaggcggaggttgcaatgagccgagatcaagccattgcactctaa
-cctggacgacagagtgggattccatctcaatcaatcaatcaatcaatttt
-tacttttcggattgtgtataagaaactctttCTGTTCTTAGGTCGTAAAG
-ACCGTCTCCATCGCTTCTTCCGTTCGTGCGGTGGCCTCTCCTCTCACCAT
-GGTGGCCTGGAGGCACCCAGATTTCTCTGGCCACGCGGCGCTCCAAGTCA
-GGAGTCAGCGCACAAGCCACGCGCGGACACCAGAACAGCCTGGAGGAAAA
-GCAGCCTCGTTCTGTTACCTTCTGCTGGTTACCCAGAGCCCGGTCCCTGC
-AGCCTGTGGGGAGAGACACAGACCCCCACTCTGCATCCGGGCGGAGTCAC
-CCAGCGTTTACCCGCGTGTATTTCAAACTGCCGCAAGGACTACGTTTACT
-TTTCTCGCCCTGCTTCCGTGTTCTGCCATTTTTGAGGTCTCCACCACGGT
-CCCCTGGCCCCGGCCTAGACCCGGGCCTTTCCCCAGGGGTCCTGCTCCTC
-CGTGGCCCTGGACCGCTTGGCCCCTGTGCTCCTCTTTCCCTGGCTCCAGG
-ATGCAGCCAGCTTCTCTTCAAGAAACTCAACCCCGGCTTGTGTTACCCCG
-AGGGTGTTTCCAGGCGTGCGAGGGGTGTGAGGGGTGGGACTGCACAGCGC
-GTCCCAGCCTCGGTCCCGGGCCCGGCCCCGGCAGACTCTGGAGAAGCCCA
-GGAGCGCGTGTCCCCGCCGGCCCCGCTCAGCCTGACCTGCTTTTCCCCAC
-AGAGGTGCCGGGGTTCGGTGCAGTCTGGCCGTGTCCTCCTCTTCTCGCGG
-TTTCAGATTCTTCTTGCGTGACATTTTATCACACAAGACCGTGTTCGGGG
-ATGGGGTGTTCTGAGCACGCCCTTACCGAGCCAGGCTCACCCAGTTCCCC
-ATCTAGAGCTCCCTGCTGGCATCTCTCACCTGGGACCCCAGCCTGCAAGA
-CTCCGACACCCACGCCCTTAGGGTGATGTGGCCGCGCCCAGCCTGCGCTC
-AGCACCACGGGAGGGAGGGCGGCAGGCGGAAGCCCCGGCCATCTTGGGAA
-GGGCCTTTTGGGACCGTGTGTTCCGCTGAGAACCACAGACCCATGCTTCA
-GACGCTACAGATTTCTCTCTCAAATGCCTGGATTCAAAATATAAAAGTGT
-GTTTGAGCAAACAGCAAAATATTTGGGAAATTCTCCCAGCGAGGCTTCTA
-ATGACCCCGTAGGAAAAGCCAGGCTGCTCCCTGCTGCGCCTCCAGCGAAC
-TTCCCACCGGGCAGGACTCTGGGAAGAAGAGCAAAGGGTTCTATTTTGCG
-TAGAATTTAAATAAAATTGCTTCACAGACGGGAAACGTCAAGCAAGCAGC
-ACTCTGAGCCCATGCGTGCTTTTAATGCCTGAATGACATCGCAATTCAGT
-CTGAGTTCCCGCCTGGGCTCAGGGCCTTCTGAACTGCCGGGGGCTGTGAA
-ATGGTTTATAATCAGAAGAGAAGCAGTGAGAGTTTAGATCCAAGATCCAA
-GGAAGTGTTTTCAGACTCAGTGTTAGCACATTTGTGTCTATACCAGTCCA
-GGcaggaggctgaggcagaagaatcgcttgaacccagaaggcagaggttg
-cagtgagccgagatcgtgccactgcactccagcctgggcaacagagcgag
-actccatctcaaaaaaaaaaaaaaaaaaaaaaaaaCCaccatcagatctc
-gtgagaaagtactgtcagaatagcctgggggaaaaccacccccatgattt
-agttacctcccactggctccctcccatgacacatggggattatgggagct
-acaattcaagatgagatttgggtgaggacacggccaaaccatatcaggct
-tccaccctcataaacagattaatgtcattatcgagagagtgggtttgtta
-cctcaagagtggggtttctaaagtgagcctggcctctcctgctcggactc
-aggccctggctcctgccctccatccttctcccatgggatgacctttgcca
-gatgccagcaccattgtcctggactttgtagtctccagaactgcgaatga
-aataaatctcatttctttataaattacccagccggtggcatttcattaca
-gcagcagaaaacagaataagacaGTGGTCCTCTCTGTTATTTCTTGGTGT
-CTGTTTTTATGAATTTAAGGACATAATTATAGATTTTCTATTCATTAGCT
-TCTTTAGGTTTATTCTGTTATTCTCTGATGTTTTAAGTCAAGCTTTATTT
-TAAAGTTTTTCTTACTTCCTACATATGTTAAAGGTGACACATTTTCATGT
-AAATGAGGGATTTCTGCTAACCGTAGCttacgggaacagagccacacctc
-ttcattttcatactgcctgtgttcgctttctgaccaatccagcagagaag
-aggagatgcaacagagactatcccacaaagccaaatatatttTTATTTTT
-GTTTGTAAAAAATATTAGTAATAAtatttttaaatgggaaatgatcatca
-tctgcacttgtgaaatgccatgtggtatttggatgtatgtgcaaaacatg
-gagtgattaattaaagccaattaatatatccattgattctcttagttatt
-ttgaaatatacaacacattattgttaaccagagtcacctgctttgcagta
-ggtctcAAGCATGCTACTACCTGCCCCTCCACAAGACAGTTTTGCTAGTC
-ACCTGCTTTGCAATAGGCCTCAAGCACACTACTACCTGCCCCTCCACAGA
-GACAGTTTGCTGACCCTTCCTAGGTGaagcattctctgcattcactccag
-aagtctcaatatgcagcatttatgtggtcattgtgtttcaaatattttca
-aattttgattgtaatcttccttgatttacgattccttcagaaataggttt
-ttatggttccatatttatggggctgtttttctcattatttctaatttcga
-tatgtggagttcagagaatgtagtccataaatacttatttttttagtaat
-tgttggaatttTTCTAAATGTCTCATGAATGCTTGATTCTTAGGTTCACA
-GATTTGAAGCAGCTATTATAGAAAACTTATTAATTATCTTGACAAGAATC
-CTTCGCtactaattttgggtctgtgtagccactttaggattgatagttgt
-gtcgaacactctcatcatgattttgtattcgtgtttttctccttgagttt
-ttatccattgcatccatttgaaattatgttaatatactaagtttcacaat
-tatgctatgaccctgataaataatttcgtttctcgtgatgcagtggctct
-ctttattcttgataatgtggtttgatttaatatctatttgtctggtataa
-tcgggcgattccagccttgcttgggttagtgtttttctcatactttctgt
-atcttgctttcattctttccatgttatgttctttttgatatgtctcttgt
-caacaatgcatgttttacatatgtgtagacacctggggaggtagatttcc
-tatattttctctaataaatttctttacttgcatttcttttagttaacaat
-gtattaaattcagttatgcaaccttacttagggctttgtactACCCGTAC
-TTCTAAGACGTCGCTCTCTTGAGctttttactggtttaggtagtatacat
-catttctattctttaagcaattacacctaaatttcataatatctacacta
-aacctatcaacatctaaatgtacctagtaactttaactccctctacaact
-atacaaaacctacacaacatgttaactccaacaatctccttcccatttta
-caAGGTTTCTCTGTTGAGGTTTCATAGAGGGCCAATGAAAAACTCCATTC
-TGACCCGTGCTCAAGCTGAGCCAATTTAAAAATAAGACAAAATTAATGCT
-TATTAAAAGAAAGCTTGAAGGTAATTCCTGGAGAACTTGTGACACGTTTG
-GAAAAGGTTGAAGGACTGGAGCTGGGTGGGCTGGTGGCTTTCAGAAAAGA
-TGTGGGACACGTAAAGTGAGACAGGGCCAGGGACAGGAGAGGAGTCTCCT
-GCTTCTCTGAAAGTCCTTCTCCGTTTCATCCATGTTGAGtaagtgccatc
-atgtctgggcactcaggacacaatggtgaatgagagtgccccggccctgt
-ctcctggaagctGGGGTTGATGGGGACCTCCCAACTGCAGGCCAGCGGTG
-CCCTGCCCTCTACTGAGCATAGGGACACGGGGTTCTGGTCTCCTTAGCAC
-CCAGGCTGACCCCTCTACAGGAGCCTCTGTGATGAGGACCAGGGACGGCA
-CCTGCATCACTCTCAAAGGGAAATTCATctcactccctccatccctccct
-tctctctccttcccaccctccctctcttccttcctctctctctctcttcc
-tccctctctctctctcttcctccctcttccttcctcccttcctctgcccc
-ctccaccctaccctccctccctccctTTCTTTCTCTCCATCtattatgga
-ctgaatgattgtgaatccccagatccctctgttgaagccctaatcgcagt
-gtaacgctatttgtggatggggcctttggaaggtgatgaggtcatgaacc
-ctcacgaataggattagtgaccttggaataagagacacaagataaatgat
-tcccttctgccactgaggacacaacgagaaggcgccatctccaagccagg
-aagggggccctcagcagacaccgagtcagcaccgtgatgatcctgggctt
-cccagacaccacacctgagagaaataaatgcctagtgtttcagcccccag
-tctatggtaattagtgattgcagctcaaactaagacaCCCTTCGCCTTGA
-CATAACCATAGCGACACTTTGGATAAAACTTCCTTCATTTTGGATGTGAC
-TCTGGACACTTCCTGGTCTTCGTACACTGCAGACATGAAGTGTCATCCAG
-CGGCATGTGCTGGACTGGGGCACCCTTGGTGTTGCCTTCATACACTGCAG
-ACATGAAGTGTCATCCAGCTGCATGTGCTGGGCTGGGGCACCCTTGGTGT
-TGTCTTCATACACTGCAGACATGAAGTGTCATCCAGCTGCATGTGCTGGG
-CTGGGGCACCCTTGGTGTTGTCTGCTGTCACACTGGGAGCCTGGACCCTG
-CGGGCAGGGCTCACAGAGGTTGCAGGGCCATCCTCTCGTGGAAAATGTCT
-CTAGACTGCTTTACTTTTTTGATCCTTAATAAAATAAAATACACTTTCTT
-AGCTCCCTATTCTTGCATACTTTTTCCTGGGGAACCCAAGGACCCAGCAG
-GTTAGAAACACAGGGTGGTCAGCTTGATGCTCCAGGAGGCAGCCTCCAGG
-GGGGCTGCTGTGGGCAGTTCCTCCACAGCTCACACTCTGCAGAAGCCGGG
-TGAGTGTCCCTCCTAAATACTCCGGAGCAGGGTGCTCCTGGCCCTGACCA
-TGGCATCATGGCCCTAGGATTGGGTGAGTGCTCCTCGTCAACGCTCCAGA
-ATAGGGCGCTCCTGCCCCTGACTATGGCATCATGGCCCTAGGATCAGCCT
-TTCACTCAATCTTGGACAACGAGTTTTTCTTCCAATGTGGTTTAGCCTTG
-GTGGTGAATGTTGTTGCTCCAGCAGCCAAAACTGAAGGTGCAAATGCAGG
-AACAGTCAGCCCCACCCTGCTGTGTGTGAGGATGATGCTGCCCTGTGCAG
-TGAAGAAAGCAGGGTGCTGCTGGAAGCCAAGGCTGAAGGTGGCTTTGTGT
-CTGGATCCAGCTGTTCCTGAAGCTGCCTGTATTCCTCTCTTCCCAAGAGC
-CTTGCTCTTCTTACTCTGCCCTGGCACATGCAGTCTTTACGCAGAGACCT
-TCAACATTTCTTTAGATCACATAGAAGCTCTTTGGAAGTTTTAAAACAGC
-AACCTATAggccgggtgctgtggctcacacctgtaatcccagcactttgg
-gaggccgaggcgggtggatcatgaggtcaggagttcaagaccagcctggc
-caacatggtgaaaccccatctctactaaaaatacaaaaattagccaggta
-tggtggtgtgtgcctataatcccagctacttgggaggctgaggtaggaga
-atcacttgaactctggaggcggaggttgcagtgagcggatatcgcaccat
-tgcgctgcagcctgggcaacagagcaagactctgtctcaaacaaacaaac
-aaacaaaACAACAACAACCTATAAATACGAGAGATCCAACACAGGTCTCA
-CGAGCAGATGCTGCTCTTCTGAAGCCTCCACCAGCAGGAGGCCACTTGAT
-GCCTTTCAGGGGACCAGGGGAAAGGCTTCCTCTCTGCACTAGGGATGGTG
-ATTGCAGCTGCCAGGGGAAATTCACTTCCTCATTGTTGAGTTGAATTGGA
-TTGAATGTTAAATGATTTCTGAATCCTTACCTCCTGTTTTAAAGGAGAAT
-TTTCTCATTACCAAAGAGCATTTGTTGAGCATATAAAACACTTGGAATGG
-ACTGAAGCTGGGGTGTAAATGTGGAGCTCTGAGCCTGCTTCCCCTTCCTG
-TATCTCAAAGAAATAAGCCCCGGATGGCTCGCAGCTCCTGTGTTTGGGAC
-CAATGTGTCTTCTTCAAGTCAAATCTTTCATCAACATCATCCTCTATGGA
-TGTCTCCCCCTGGTCTTCACCCCGCCTGGCCCACGGCCGGTGCTTCTCGC
-CTGGGCTTGCTCTCATTCAGGCCACTGGAAATGCCTGTGGCTCAAGCACC
-AGGTATTTTTGAAAGATTTTGAAGACGGGGTTATCTAACTTGGCATAAGA
-AACATGAGAAATGAATATGAAAAAACCTTAACATTAACAAAAAATGCATG
-CTTACAGGGTGGTGGGCTCCCTTGCAGAGGAAGCAGGGTGGCCGTCCTGG
-GAGCCGGCCACCGTCCTGTGAGTCATCTGAGGACAGCCGTTTCTTTCCAC
-TCCATATTTCTCAGGACCTGGCCAAGGGCAGTGAGTGGAAAACAGGGAAA
-TGCCACATTGGTCGAATGAGTGATATGGGAATAAGTCCTTCTTTGGGTAA
-AGTCGCCAACGTCACAATCCTGCACATAGGGGAAGTTACCGAGGACTCCT
-GCTTATGTACATCTGTGCAAGGGTTCAAGATGGTTTCTGTTAGAGCCTGG
-GCTTGAACATTCCTCTGTCTCCCTTGAGTGCCGATGTGGGCCCCTCTGAC
-CCTATGCACCCCATCCATGAGCtgctgcaggactggaagaaccagtcctt
-ggggtcaggaaggcaggagttcgagcctggctttggtcagctactgagac
-accatgctgcaaagctcgtcaagactcagtctccacatctgtaaagtcgg
-cataaGTTTCCAGTGCTGGAGCCTCTGATGGGATTCCATAACTGACATCC
-CTCTTCCCTGGCCAAGATCAGAACACCTTGGAAAATGAGACAAAGCTCTA
-AAGAATGGTACAAACCCAGCCTCTGAGGTCCTGAGGGACCCACTCGCATC
-CCCAGGGGCTGCCCAGGAATCCCACCACCCAGACCTGGGGCCTCCCAGGG
-AAGTCTGCAGAGAATGAGGACTCAGAAAGGGTTTTAATCAACATATATAT
-AACTAATAATAGAATTTATTCTTGGACCTTTTTCTTTTGGTATTGAGAGC
-TTAACTTGAAAAGGTTTTAGTTTCTCCCCAAGACTTTGATAATGGggctg
-ggcactgtaactcacacctataatcccagcactttgggagaccaaggtgg
-gtggattacttcaggtcagaggttcgagaccagcctggccaacatggtga
-aaccctgtctctactaaaaatacaaaaattagccaggtgtggtggtgcac
-acctgtaatcccagctactcagaagattgaggcaggagaatcgcttgaac
-ccgggcagcagaggttgcactgagctgagatcgtaccactgcactccagc
-ttgagagacagagcaagactccgtcaaaaaaaccaaaacaaacaaaaaaa
-TCCACAAGACTTTCATAATGGGAGTGGGCTTATGAAGGTGGACCCTGGTA
-CAGAGTTAGCATTTTCTTATTTGATGGCTTTATGCATTCACACTGATGCT
-GTCATTTCATCCCAGTGCAAATCCTCTGCTGGGTTGCAGGGACTCCAGAG
-ATTGATACGGTAAGGAAGGAAAGAGAGAAGGGAACACGTTTTCAGCTTTG
-GCTACAGAGTGTCCACTTGAGTGGACAGCTCTCTGCTTCCCAATGCTTTG
-CAGAGTTCACGAGGACAGAGACCACTTACAGAGTCATTTTACACCTCGCG
-TAGCAGGTAAAATCCCTCTGTGAGGCACTGTGGACTCAGCCAACATCCTC
-CTTGCTGGGGCTCATGTCTCAGTTCACTTCCTCCATTTTTTTGGGTTGTC
-CCCCATCATATGTTTAGCAAAAGGTGCTGATAAGAGAATTTCCAAGAGAT
-GTCACTGGAGGAAAAGAATATGCATCAAGTCTGTCCTCTCGTTCCACGTG
-GGCATAAAGGATCCTGGCTTCATGGGGCGTGGCGGAGAAGGGAGGAGATT
-TCCTTTGCAGGGGACTTGGCTGGTGGTATGATGCTGTCACCTGCCAAGCG
-TCTAATGCTTCATAGTGATTTTAATTCCAGCAGCATGGGATGGGAACAGA
-GCACAGGGCAGTGAGTTTATCTCCCTCAGAGACAGATGACACCCAACCCT
-TCTTCATTTCTGAGGACAGCGTGGTTGGCAGAGGAGCACCCAGAAGGGCA
-CAGCTGGTATTTTCAGAGGGTTTCCTCTGGACTTGGTCTGTCTTCTGCAG
-TGGGGAACCATGAAGGCGCCTACCTGTAAGTGGCCTCCGTTTCTCTCCTC
-TCACTCCATAGTCGGGCTTTTCTCCTTCCACCCTCCAGCCCTCCTGCCCC
-AGAGGAGAGCGGCACAGTTCGCCCTCTGTCCAGGTGAGCCCTCTTCCCTG
-CTCTGAAGTAAGCCAAGACTGTCATAGTTCACGTGGATAAAATTTCAGAT
-GTTTGGTTTGTGTGTGTTTGCGTGGGTAGACACATAGATAGTTTCACATA
-AAAATGTCGATTACATTTTGGGCACAATCTCATAGATCATTTTCCTTTTT
-ACTTGCTGTATGAGACACATGTTCCGATATCAATGAATGGGTGCTCCGCC
-ATTGCCAAGAGCCACATGGCACTGGATTATGTGGGTGCACCATCATCTGT
-GTGACCGCTGCACTGTTGCTGGACACATGCTTGCTTGCTAACTTTTTTGT
-GTGTGGGGGGGTGCGGGgacggggttttgctcttgtcgcccaggctggag
-tgcagtggcgcgatcttggctcactgcaaactccacctcccgggttcaag
-ccattctcctgcctcagcctcctgagtagctgggattataggcgcccacc
-aacatgccgggctaatttttgttttttcagtagagacggggtttccccat
-gttggccaggctgatctcgaactcccgatctcaggtgatccacctgcctc
-ggcctcccaaagtgctgggatgacaggagtgagcGTGGCCCTTGCTTGCT
-AACTTTTCAATGAGAAAGCACTGCAGACACACCCCTTCATACTTTTCTGA
-CCACTTCCTTGGGGCAAGTCCATGGGAGTGGCCTCTCACTTTTAAGCACT
-GTGTCTGCAATGCCAGTGGTACCTGCAATCTGCCTGCCCAGTTTGCAAAC
-CAGCCAGCACCTGTGGGAACTAGGGAGGCTGGATTCCTGCACACACGGGT
-TGGGTGGGAGCCATGGATGCTTTGTAATCTTTGACAACCTCACATACGTG
-GCCAGAAGTCTTTCGTATGCTGCCCTGACACAAGGACGTAATTGATGTGC
-TTGTTTTCACTTTTATTTCTTATTTGGTAAATGCCGATTTATTTTATTTA
-AGGATATTCTTGGTAGCCCTTTTTGAGAGCAAAGGCAGTTTGTCCTTAAC
-ACTTGCATCTGGCAACAATAGACATAATAATAATAATAATGTGTATCTGG
-CACATAGTAGAGTCTCACTGAAGGTTTACTAAGTCTATCCATTAGCACAG
-CTAGGAGTTTCACTACAGGCTTAGTTTTGGGCTAAGACGTTAACTGTGTG
-GTTTAACAATGATTTCTATGAATTAAGCTATAAATTTTCTGAACCTAAGC
-TCTGGGGCAATTTGGAAATGCCTCCTATCCTCAGATAAAGCCAGCGTGCA
-TTGACCTTGAATTTCAGTAAAGCTGAAGGGACAGGAGGACTGATTTCCCT
-CCAAATGACAATCGCTAAGAGGCAGAATCAGGCTCGATAACCATTAGGAG
-GTAACGACTGTGAACTTGGTGATTTTAATGATTTCAAATAAATTACTCCA
-GGAAAAAGAAAATCTTTACTACATTTTACTTTGGGAGTACTCCCCCCACC
-CTGAAATGGATCACAGACATCCAAATAGCAGCAAAATTAAAAGGAGGTGG
-ATGTGGTGTGTTGCCTTCTTTAACTTGTATTTAAAGTCGTTATAATGATG
-GACTCTAAGACCTTATATGCTCTTTATGCTTTAAAGACTCTAAGACTTTA
-TATGCTCAGTGTGTGCACTGAAGAAAAGTTGACTTACAAACAGTATTTTT
-AAAAAACAATGAGGAATTTTATCATTAATTCCTTTAAATTTGTGAACAGA
-AAACCCCTGCGCTCCTGAGTCTCAATGCCTACATGGGTCTGGACACCAGG
-GATGGGAGCAGACGTGTGTGTGCTCCGCAGCCAGCCCAGCTGGCAACTGG
-GGAAGAAATGGAACCGTCATGAGGTCATTTTGAGCCATGAGGCAGCCCCT
-CAGGGGACCAGATGGGTGGAGAAGCCCACCTTCCCCTCCTCCCCTGGCTC
-TGCCGAGGTGGCCTCCCTCTTCCATGAGGCCCATTGCCTGGAGCCCACAT
-CTCAGGGAGGGTGGCACAGGCAGAGAGACCGGGGCCCAAGGCCCCCTTGC
-AGAGTTCCTACATAGAAATGCAGGTTCTGTGGAGCTGACGGTGCCGTAAA
-CAGCGGCAGGTGCAGAGTGACCACAGAATTCCGCAACACAGATGGTGACG
-GGGTGAGGGCCATGGAGAACCAGCTCATGGGAGCTCGTCTTTCAGTGACC
-TCTGCAGGCAATGGGAAGTGGGAAAAGGGCTCCGCCTTCCACCTGGCCCC
-AGGTGCAGATGGCAGCTGTGGTTCTCCAGCACCCAGGTATAAATGGGAGA
-GGCGGATCCCCCTTCCACCTGGCCCCAGGTGCAGATGGCAGCTGTGGTTC
-TCCAGCACCCAGATATAGACGGGAGAGGCGGAGCCACCGTGGAAGGTCCT
-GGAAATGCCACCTTCTGACGGACGCTGGTGGGAGGAGGCCAGGGCCTGGC
-AAGGCCCTTCCCTTGGTCCCCAGCAGACATGAGAGGAAACAGCTCCCACA
-ACACGGGCACAGATTCTTCTCATGGTGAAGCAGAGTCATGAGAGCAGAAA
-ACAGACTCAGAAAACAAAACAAAAGAGTTATTTACATATGAATCAGAAAA
-CACTGTGTGCAGATGTCGGGTCTGGCCCTGGGGGAAAGGGAATGACCAGA
-TGCAGGTTCCTGTTGAGTCCGGGAGACAGAGCAGTAGAGGAAATGGGATC
-AACCACGTGCATGGGCTCCACACCAGCAGGCGGAGGGCACACAGGAGAGG
-CCCTTCGGGGCTCCCGGTGGGAGGCAGCTCTGCAGGGGGCTCAGAAGCCT
-CAGGCACCAGGAGGCCAGAGCAGGTGGTGGCTTCTGTCACACCCAAAAGG
-CCACAGGGAGACACCATGGGGAGGTGCTTTCCCAGGGAGGCCTGAAGAGG
-TAGAGCTGGAAACGAGGGTGTCTTGGTCCCATGCTGTCTCCTTTCTCACC
-ACGTTGGGCACCTTTGGGTAAACTTGGTGTCCCAGGGGAGCACACTTGGG
-ATAGAAGTCCCCAGGCTGGATACAACACCACTCACTCTGCAGGGACGGCC
-TCCAGAATCATCCTGGGTGTTAGTATTGGAGATTAACATATCCAAGCCAG
-CTGTGGAGGGAGAATCCTTCCTGGAAATAATAAAATGCAGCCAGATCTGA
-TTCCCCAGCCCAACATTAAGGCTCCAGCGAGGAAGCACTACCAAGAAATC
-CGGGGGGAAACTCTGGGCTCTGGACACTTCTCCTTCCAGGGTACCTGAAA
-AGGCTGCTCTCAGGGAAGGGTGTGCAGAGCCCCTGGGGTGGGGAACTGCT
-GTCAGGGAGGGGAGTTCAGAGCACCTGGGGAGGGAGCTGCTCTCAGGCCA
-GGGTGTGCAGAGCCCCTGGGGAGGGAGCTGCTCTCAGGGCGGGGTGTGCA
-GAGCCCCTGGGGAGGGAGCTGCTCTCAGGGAGGGGTGTGCAGAGCCCGTG
-GGGAGGGAGCTGCTCTCAGGGAGGGGTGTGCCGGGCACCTGGGGAGGAGA
-GCTGGGATGCAATCCTGCATCTCGTAACATGACCAACACTGAGACACAGG
-ACCAAGGAAGGGAAAGGTGGAGGAAAGAACCAGGGGGGAGCATTGCTGAT
-ATTTTTCTGTGTTCATTTGTAACTTTTCTTCTGTTGGATTTATTTGTCTC
-TGATAGTAACGCCCAGGAGGGGTGCAGACAGGGTGGACTCTGTCCAGAGG
-GGCTCCCAGGCCAAGGCACCTCCTCTGTCCCAGGTAAACCACCAAGGAAT
-GCGATGTCTGATCATAAATCAGAGTGTACATCTATGAGACATAAGACGCA
-ACAACTGTGCCATGTGCTTGGGCAGTTTAATGCAAATAAAACATTTAAAA
-AAGAGAGCCTTAACATTAAATAAATCAATCCCAGGTATAGTTAATAATGA
-GAGAAGCGTGTGAGTAATACAAAACTCAAAATTCCTTAACTTACCTAGGG
-ATGTTACAATAAATACCACCTTATTTGTGAATTTACAAAGGGAAACATTA
-CCTGCAGATTCCAGAACCATAAATGTGGCCCCAAACAGAAATTTTAAATT
-GATTGTAAATAATCAAAATCATTGCAGTAGATTAAAATAAAACTTTTTAT
-GTATAAAATGGAGAAAACAAAAGAAGAAAGTCAAAAGCCATAAAAACGTA
-AGAGCAGTTGTCAGCAGGAGTGTGAAAGACAGCAGTTATGCCCAAAATAT
-AATGCTCCAACCACACCCCTCCCACTGAGAAATATTGATGCTGACAGATT
-TTTTTAAAGAAAGCCTTTTTGGAGTAGAGTTTAGAAAAGATAACATTAAG
-CAAATGACCCAGTTTGAACATAGAGATGGGCAGTTATAACTCGCACATTC
-AGGGTGATTATCTTGTATGAAACAAAATCACTAGGCCTGGGTAATGAAGA
-GTTCACCAGGTGGAAGACACCAGGCATTCATTTTCGATGCTGAAATCCAC
-ACAGGGGGCAACTCCCTTGAATCCCACAGCAAGCCTCAACTTCCATTTCA
-AATACTTATGGACATGGTCAGAGAAGGTGCTAAGATTCTTTTGACTAACA
-GTTTATGTGAGATTCTGTAGATCAACATGGAGTGAGGCTATCCAGGGCTA
-CAGGATTCCTGGTGTGGGGGCAGGACTTGTCGACTGCAACACTCATGGCA
-TCTGGCCGGAATAATTACTTGTCACGGTTTCTCtttggaaacacctcggc
-ctccacccactgggtaagacagcatcctcctggatgggacagtccaaacg
-ttcccagtctttgtcaaagctgccctgaggggAACCAGGGAAAGAAGCAG
-TAGATGGCATCAAGCTTGGTACTGACGAGGACTTTTCCACAAgtgcacag
-taaatgcttggtaaatattcgttaaaggaatgaatTCCTGCATTTTTTCC
-CAGTGTTGAAAAATGTTTTTAAAaaatcaccaagaaaacttcagctaatt
-caagaaatagaaatcacacaaacaacattcaccaagatacaataaaattt
-caatcacacactggagctagggctagaaggaaacactcctataataataa
-taataatttttagtaatgaaagtgaaccgtgtataaccagtgatagcgga
-tgtggacaaaatgaaaatgaatagcacgatgaaactccagcagatgtggc
-caaagctgtacctagaggttaattacttttctcatgtaacagaaaggaaa
-aaaaaaaaaaaacaactaactaaacagccaacataggaaattggaaaatg
-aaaataaaccttaatttctaaggcgattagaataaattcattttttgagg
-aagaaaataagtaaatgaaTTTCTTGCAAATCCAAGTCCCTTTCAGGCAA
-AATCCAGGAACTGGGGAGGGAGAATAACACAGAAATTTTCAAGCAAGGAG
-AGAAAACTCCCCACATCCAAGATTACAGCGGGGTCTCCCGTGAAACGGCT
-GGTTTCTTCGGTGTCTCCTGTCTCTTTATTTCCTTCCTTCTCCTTTCTCT
-TTCTTTCTCTCTGCATGCCGGTGGGCCCCAGCACACATACAAGGATAGAT
-GGAAAATCACCCCAGATTAAATATTGTGACCACAAGGAGGACATGGAGGA
-CGCAATCATGGCATTTTCCCCTTAAAAGCACGAGGACCCTATTGAGTCTT
-TACGAAAAATTAAGCTGCAAATTATTTTCATGTACTTAAGAGCAAACACA
-Tcaggggtgtccaaccttctggcttccctgggccacactggaagaataag
-aattgtcttgggccacacataaaatactctaacactaatgatagctgatg
-agctaaataaaaattttcaaaaaattctcatcacgttttaaggaagttta
-cacatttgcattgagctgtattcaaagccatcctgggccacatggggccc
-acaggctgtgggctgaacaagcttgTGTTATACATAGTGATCAGAAGAAT
-GGATAGGCGCACAGAATTTCCACTTACTggccaggcgcgatggctcacgc
-ctgtcatcccagcactttgggaggccaaggagggtggatcacctgaggtc
-aggagttcaagaccagccgggcaaacatgacaaaaccccatctctactaa
-aaaaaaaaaaaaattagccggaggtggtggtgcatgcctgtaatcccagc
-tactcgggaggctgaggcaggagaatcacttgaacccaggaggtggaggt
-tgcagtgagccgagatcgtgccactgtactccagcctgggtgacagagtg
-agactccttctcaaaaacaaacaaacaaaaaaatttccacttgctttcat
-gaactcaacacaaccatgattccaaattcagacaaggagaataaaattaa
-aataattgagaagaaacagatcacctcgtttgcgaactcagacgtgaaca
-tttcacatgaagtaatggaaaatcagattcggctgcattaagaaCATTCT
-ACTACTGCCAAATATACCTCAGTCTTGTGAAGAATATTCCACTGGGGCCA
-GATAAAGCTTTCTCTTGTAACAGAAAAGTCTCGAGATCTAAAAACATGTG
-CACTGGGACACCGATAAGGTGATGAATAACAGATGGTCTTCTTGATGAAC
-GCTGAAATCGCGtttttttttttttttttttttGGCCAAATGTGTCTGTT
-TTTTGTATGTGTATTTTTATTTTTTTCTATTTATTTGTTCTGCTTATTAT
-AATAGTCTTCCACACTGCCCCCCAAGATTCTAGAAATTTTTGCCTACACA
-TACTTCTAGGACTTCTGGGCCTTTCTTTTTAACCCAGAGGAAGTTTGCAT
-TGAGGTAAGCTGTGAGTTGATGATCTAAATCATTTGCCAATTAGCTCAAG
-ACAACGTATTGAATTCCTTTTTCTCCTGGAGTAGAAAGCCCTGTGGCAGC
-CCGTGTGAGTTATGGGTAGATTTCTGTATTTGTTTCTGTTTTCCTTTTAT
-ATTTGGGGTTTGATGGTTTGGGAGGTTCTAAGCACATTCTAAAAGCCTCT
-CTTCTCAATCCATTCCAGGACCCCGAACTTGCTCCGGCCTGCCGATGAAG
-GCATTTAATTACCAAGGATCTTCAGTCTTGCTTTGTTACTCACTTTTTCT
-CCAAAATATCCTTCCACACAAATTCTCCCAAATAATCCTTACAATCATTT
-TTATTTAGTTTTTTTCTTTAGCTTTTCTGTGTTTCCCATAAGatatatat
-atatattattttttGTAAAGAGGAAAATTTAATGAAACCTGGTTGTAAAC
-AAGATAGAAAACACAATTCCAATTTTAGGGGGACATGATATATTGTTATG
-GAAAGAAGTCTCTAAGAATATATGCCAGTTGTTAAGAAAGACTGCGGAAT
-TACTGCTGAGTAATGTCTATTTTGTGTACAATTCTGCACTTTCAAGCTTT
-CCTGGAATACGTATGTTTCCTTCAATTAGGACACCACCTATTTCTTTAAA
-ATGAAAGTGCAAAGTTCTGTGTATGAGGATGTATCGTGTGAACATGCCAT
-CTGCACAGGTCAGCCAACGGTTCAATGGGAGTAATTGTGTGTGGCTCAGC
-ACACAAGTGTGGGTCAAGTTAAGCTAGACGCTCATCACTCAGTATCTTGC
-TCTTCACAGTGAGTCCTGTGTGAGTCTTCGGAGCCTCCATATAAATGGCG
-CTGGCTCTGAAACATAGACGGCTACCACCTGGAAGTCCCAGAGGCCTCCA
-CAGCTCGGGAGTCTGGGTGGGGACCTCCCTGCCCTCTGGGTAACCAGGGC
-TGATTTTTCAACATTCCTATAAAACATATATTCCTGGAAGGAGAAGGCAG
-GTGAACTGGAGTTCTAAGGAGGTTGTGTCCCTGAGGCCAACTCTGGCCCG
-TCTGTGCAGAGCCCATGGGGTCAGTGGTTGCTGGAGGATGGAGTCCAGAT
-ACAACAGATACACAAGAGCTCACAGACGTGAACAACCGCAAGGATGCAGG
-TCATGGTAAGATGCACTGCAAAGGCAGGAACTGGTGGGATGGGATGACTG
-CATTTAAACTTAATAtgtgtatatgtgtatgtgtgtgtgtgtgtgtgtgt
-gtATACCATATATTTTCTATCTAGCTTTGTGGGTATACAAAATACTTGTA
-TGTGTGTGTATATATATATCACATTCAATGTATTACataatgccaaaaaa
-tatttaatgaggaaatccagtcatgctatattaggaagagaaaaacagca
-ggttacagaaaagcaaatatagtaattttttggtataattacttaagtac
-aacacattatatatgatatatagtcatataaatatataattttaaaagta
-atattacatataataaaatatacaataatATATAATGCAAATTTTGTCAT
-TTAATTTATAATTCAGTGGCATTCAATACATTCCTAATGTGTGTGTGTGC
-TTCCGTCCTGCCTCTGTGAATTCCCTGCGGcagcccctgcacctaccact
-ctccgtcctggctctgtgaattggcctctccttcctgtgagcctcatgaa
-ggtggaatcctgccacagctgcccttacgtgttgggcctttttgctccac
-atgtggagtggaaaaggtttatccctgctgtcacctgctgtctcgtgcct
-gaatacttccatgttgtgtgctgaccacatgctgtttatccattcaccca
-ctggtggacccccgggctctctccaccttttggttatcgtggcgaatgct
-gctgtgaacatggggatacctttttgagtccctgggctcgattcttttgg
-acatgtgccaaggaaggagtgggatggccgggtcgacagatgactctgcc
-tgtcttctgcagaggctgccgttttccatcttcaccagcaaagcgcgatg
-gctccaatgtctccccgtcctcaccaatgcgtgcaattgtctgttttgct
-gatgaacatcatcctggtaggtgcgaagtggtatttctttgagactgtga
-tttgcataacaactactgaggcagaacatcttttcaGTATAGTCATGAAA
-GTCATGTAagtcatgtcacttaatgaaagggacacattgtgacaaatgcg
-tcctcaagggattttctccttgtctgaacatcacagtccttgtctggact
-tacacaaacctgcatggcacaacctactccatacctaagcaatgtggcac
-agcctggtgctcccagggtacacacctgtgcagcgtggactgtactgaat
-gctgcaggcaattcagacacaagggtaaggatttgttatctaaacctgga
-aaaggtgcagtgaaaacagtatcctaatttgtttttttttcttttttttt
-tttgagacagagtctcgctctgttgcccaggctgcagtgcagtggtggga
-tctcggctcactgcaagctccgcttcctgggtttacgccgttctcctgcc
-tcagcctcccaagtagctgggactacaggcgcccgccaccacgcccggct
-aattttttgtatttttagtacagacggggtttcaccatgttagccaggat
-ggtctcggtctcctgacctcgtgatccacccgcctcggcctcccaaagtg
-ctgggattgcaggcgtgagccaccgcgcctggcccagtattctaattttg
-tgggaccactgccgtctattcagtccacggttggcagaaacatggtcatg
-tgatgcCCACCTGcatttacccaccctctatctgtagatctgctttggag
-aaatgtctgttcaagttcttggcccgttttgttactgggttgtttggctt
-ttgttgatgatgagttgtagaagttctttataaactcCattagccttgtt
-tttagtataatttatttcattgtaagcttatgtgatttaatgggctaaat
-tcagcaatcagctcacagcattcctggaaattctgccactgctctcatgg
-tccatgtgacccagttccagcacGGTGCTGTCTCTCCCTGCCCCGACTGT
-GGCCCGGATTAAGAAGACAATGTTCATGGCAGGGCTTTGAAAAGTCTAAA
-GTGTTTTCCTAATCTGAGGACATACCACTATTATCATTTATGGCCGTTTT
-TTGACTCAACACGTAGGCCCAAGAAATGCATTTGTATTAAGGTCTCTTTC
-TTGTGAGTGGAACTGTGGTGGGGAGAGGAGGCTGGAGCCACAGAGTGAGA
-TGACACCTCGAGCAATCTGTGAGCTGCCCCCCTCCTGCCCCCTGATACCC
-CAACAGCTGATAAATAAGAAAGGCAAAACGGGCTCCCCTCCCACAGCCTT
-TGAAGAGTCTCAGGGCATTTTCAGCCCTTGAAAAGCACTTAGCTGATAAA
-AACACATCCTAATGAGGAAGAGACAGGCTCTTTTCAGCTGCGCAGCCCAT
-TTTGACAGTGACAGGCGAGAGCCCTTTCGCTCAGAGCCCCGGGAGTCTTG
-TTCCTGGGCAGATGGCCATCAGGAGGACTGTGCTCAGCACTCCTGCTTGC
-AGGCCACTTCCCTGGGGCTGTGGGTCTTTAGCTTCTGTCTCTTGTTCTTG
-CTCTGAGTGAGAGACCAAAGAGGAATTCACGGCAAAACAGAAGGTCTGCT
-GAAAACCTGATAAACGGAGGCCACCCTCACACTGCCTGCTGATGAGGGCA
-GTCCTATCCCTGCTCCAGCCAGTCTTTGTCTTGTTGTATTATTTTATCCG
-AAGTTTttccttccttcccttccttccttccttcccttccttcgttcctt
-cgttccttccttcctttcttccttccttccttccttcccttccttcgttc
-cttccttccttcctttcttccttccttccttccttccttcccttccttcg
-ttccttcgttccttccttccttcctttcttccttccttccttccttcctt
-ccttcccttccttcgttccttccttccttccttcccttccttccttccat
-tccttccttcatccctccctcctttcccttccctttccttccttccttcc
-ttcttccttcctctcttccttGTTTCTCCCTCTCTTTCTCTCTTGCTCTC
-TTATTTTGcttttttctttcttccctttctccctcttctctccttcactc
-ttcccacctcccttccttccttctttccttccttcctccctctgtccctc
-cctccctcttttcttctttcctgcctttctttctCTTTTTGGTGCATCTC
-AAGTACAAAGAACAGGATCCATCATTCTGCAGTAATCTAAGAAGAGCCCA
-TAAACACACTTCCCTAAGTCCCTGCTAGGGTCTTGATCATGACATCTGTC
-TAAGAACATGGTCCTGTCTAACCCACCCCCTGATTTCTCCATTCCCCCAA
-GGGCAAACTCTGCCTGAGTGCAGTGTTCATTCTTCCCTCGTATGTACTTT
-TATTCCATTTATGTGTATTTCTAAATATGTATTCATGTGTTATACTGTTG
-GATTGGTGCAGTTTTTAACTTTCGGAAAGAGTAACATGTAGTGAGCAATT
-GTACTTTTTCACTAAATATTTGATTGCTGACATTCATCACATGGCTGCTC
-TTCATTTGTTTTGACCATTGTTTTCCATACGTCGCAggccgacatgtgac
-agcttgagggacaaacctggctgcctcctgtctttgtaaacacagttgtc
-ttggagcacagtcttgcatgcattatctctggctgcttgtgcattgcaga
-gcagagttgagaggttgtgagagagccaacacgacctgcaaaaccagaaa
-tattttcaatctgatcctttttagaaaatgtttgcaggtgcctgAGTGGT
-TGATCCTGTTTTTGCTACTATGAAGAACAGGGggctgggagcagtggttg
-acgcctataatcccagcactttgggaggctgcggcgggtggatctcttga
-ggtcaggaattcgagaccaacctggccaacatggtgaaatgccgtctcta
-ctaataatacaaaagtcagttgggcatggcggtgagtgcctgtaatctca
-gctactcaggaggatgaggcaggagaattgctggaatctgggaggcagaa
-gttgctgtgagccaagatcacactgctgtattccagcctgggtgacagag
-tgagactccacctcaaaaaaaaaaaaaaaaaaaagaagaagaagaagaag
-aaaagaaagaaaaaagaaaaaaaaaaGGACAGGGgaaggttcttgtacac
-atcccctagttcacgttcaagagtctactttgcctagaaatgcaattggc
-agtcatgtggcagggaatgctcacctttggggaatgatgcttaagagttt
-cccaaagctttgtgccagtttatgattctaccagtaaaatcagagaccct
-gggaacgttcattgtctccaccacccactattgtcagtctgtttatttta
-ctgacaatTATAGACACGTTTTCCTGGGGAGCCATGGAGGACATTTTATC
-TGGGGGCTAACACCATGGGTCTCCTGTAAAATGTGGGTTCTCCTAGGAAA
-CTGAATGGGAAATCTGTTCATTCTGGCTTTACGGGTGTGTAGCAGCTCCT
-AAGAAGGCGTTTCTGACATGATTTCTGGGAGGCTTGGTGGGCTCGGGGGT
-GGGGGTTCCTTATGGTGAAGCAGGGCAGGCAAATAGTTACCTACCACCTG
-TGCTGGGCGAACAGCCCTGGATCTGCTGGAGTGTCAGGTCAGCTTTACAG
-GCATTGGGCTTCCTCAGCAGTGTCCCTGAGCATATGGAAGGTGTGTGTTT
-GTGGGTAGACTTCAATATGGATCCCTTTTTGTTCAGAGGGGAAGAACATT
-GAGGCCTCAAGCTCTGCAAGCTGTTACCTTTTGGGGGTCTTCAGAGGGCC
-CTAAGCAGCCGGCCAGCCCCGTAACATGGGGATGTCATGGCTCTGCTGCT
-GCTCAGCTCTAGGGGAGCCTTGAGCGAAGACTGGCCTCAAAGTCCAAACC
-ATTACCCATGCCACATGGTCACTCCACAGTGGTCTTGCCGTGGATAGGAC
-CATCACAGCTGGGCCAGGGAGGCCATATGTGCCTAAGCCCTGGCCTGCCC
-ACACCTGCCCTGGGGCCTCACCTGTTCTACCCGATCTCCTCTGACCAACt
-gaatgaatgaatgaatgaatgTGAGAAGGAGCTTGGAGTGAAGCTTGCTC
-TGAGAAGGGCGACCAATGTAGTGGCAGGACCAGGCCACCCAGGGCTAGTG
-GGGACAGTGGGACACAGGGATGTGGGGACCAGGGGAGCTTCAGGTGGGTG
-AAGATCACCACTGTGAACCTCAGAAGAGCTGCCGAGGGGAAGAGGGCCCA
-GTCTGTGCCTTGTGTTCTTATGTGGGAGAATGTGTCCACCTGGGGCATGC
-TACGGGAAGGGATTCGATGTGGTGTAAGAAGGACTTGATGAAGATTGAGC
-TGTCTATGGCTATTAAAGGCTGGCTCAGTACTATTACTGCTATACTatca
-ttaccatcatcatcaccatcatcatcgtcattaccaccaccgtcattacc
-atcaccgtgattactaacaccaccatcaccatgctcaccatcaccatcac
-cattatcatcaccatccctaccataatcaccaccatcatcaccatgatta
-ccattatcatcgccatcattaccatcaccattatcaccatatcattacca
-tcaccatcatcaccattgccatcattaccatcaccattatcaccatcaac
-accaccatcaacaccgtgatcaccattatcatcaccaccatcatcaccgt
-tatcactatcaacatcaacatcaacatgatctccatcatcatcaccatca
-tcatcatcaccaccactatcatcattaccgtcaccatgattactatcacc
-accaccatcatcaccatgattaccattaccatcaccattatcatcaccat
-catcatccttaccatgatcatcaccatcatcaccgtgatcaccatcatca
-tcaccatcaccatcaccatgatcactatcactatcaccatcatcattacc
-accatcagcagcagcaccatcatcaccatgatcaccatcattatcactat
-aatcaccgtcatcattaccatcaccatcacctttatcactgtcaccacca
-ccatcatcaccatcaccatcaacaccaacaacatcatTATTGTCTTTCAA
-CTAGGTAGCAgtgaccattaattttatgtgtcaacttgactgggccctgg
-agtgctcagatgactggtgaaacatcatttctgggtgtgtctgtgagcgg
-gtttctgatgagattaatgtttgattagatggacttagtaaagcaatggc
-agtccccagtgtggggaggcatcgcctaatactttgggggcctgaataga
-atacaaagcataggaggagagattttgctcctctgcctgactgcttgacc
-tgggacatcagtctcttcctgccctcagactagaactcacaccaccagct
-ccccttgttctcaagctttcagtctcaccctgaattacgccagggctttc
-ctgggtcttcagcttgtggacagcacgtggtgagcctgctaagccttcat
-aattgtataagccaattccttgtaaaaaatttccttctggtcaggtgcag
-tggctcacacctgtaatcccagcactttgggaggctgaggcgaggggatc
-acgaggttaggagattgagaccatcctggctaacacggtgcaaccctgtc
-gctactaaaaaaactacaaaaaattagccaggcgtggtggcaggtgcctg
-taatcccagctacttgggaggctgaggtgggagaatggtgtgaacccggg
-aggcggagcttgcagtgagccgagattgcaccactgcactctagcctggg
-tgacagagtgagactccatctcaaaaaaaaaaaatctccttctatatgta
-catcctattggttcagtttccctgaagaaccctaatacaGTGACTGAGGC
-ACACTTTGGCTAAACCCACTGAGCAGAATCAGGGTCCTGGGAAAACACCA
-GGCTGTGGTCAAGGGTCTCAGGCTTCAGCCCCAGTCCAGCCACGGGCCAG
-TGGGGAGGCCGGGAGTCAAGCATCATACTGGCTGCTTCTCCCTGACTCTA
-TGCTCCTTTCTGGCGCTAGGCTAGCATCCAGTGAGCCTTACCCATCCTGG
-TATTTTGCTCACAAAGGTGAGCAAGTCCAAAGGCACCGAGTCCACGTGAG
-CCCTAGGTTCCTACAGACTCAGGAGTTTCTCCTGGGGAAAGTTGTCAGAA
-GGAGGCAACCACACTTCTGAGAGCTGCCTAGCAATTCTGAACTCCCTGTG
-ACCCTCAATCAGAGCGATTTGTTGAGCAAACAATAGCAGGTGATTAATAA
-AAGATGTAAGAGAAGGACCTGTCTTCTCGTGGTTAATTGCCTCTCACCTT
-TCCAAGACAATCCAGCACATTCTCTGTTGTGTCCCCTGAGAAACGGGGCT
-CCTTCCCAGAGAGGCAGGTGTGAAACCCAGGGCTCCAAGTGTGTTTCCAG
-CAATGTTAAAATGTTCTAGCCACTCCTTGGTGTTGGTTGGCATGAAAAGG
-TGCCCTCTCAGATGGTGAGAGCATGTCTGTGTGCATGTGTGAGGCACACA
-GATAGCTGTGGCGTGTCTTATTTCTTCAAATCCTCCCTAATTCTTTTCAT
-GTCAAAGCCCATTCAGGTAGTGCTAGAGGCAGCAGAAGCCACTGTGTGGT
-TGGAACAAGGAGTGGCTCCAGTCACTGCAGGGAGTGGGCAGGTGTTATGT
-CCCAGCTGTGGCCGCAGCAGCATCACGAAGGGGCCGCCTTCCAAGTCAAA
-CCAGAGATGGGTCTCTGAGAACAGCTGTGACAGCCACCTTCCCTCATGTC
-TTCACCCATCCCCAGCCATACCTTGTTATTTTTTACATTCATCTCTCCAT
-GTATTCACAGTTTTACAAAGGAGCACACGGAACCCAACCCAGTCTGGGAA
-ATAGGCGTGATGCCCCGCAGGAGGTGGTGAGGGAAGGTGGGGCCAGGTGC
-TCCAGGTTAGAGTGGCTGGGGATGGTAAGCGTGGGAGGCAGAGGGGGAGG
-CACCAGGAGCCTTTCACTTAGAGATGACGAAGGGAGAAGGAAAAGACCCA
-TCCAGAATCCAATTATGTTAACTCATCTCTGCTATTGATCCTACATTCCA
-GGCCTGGGAAAAAACCCCAAAACCTAATTACTGCACCGCTAATGACTGAG
-ATGACAAATCGAGGAGCCTCCAGGCTGCTGATGGTAAGAATTTAAGGCTC
-TGAGTCTCTGTGGGGGAGGGTGCCCTGGGCTCTGTCACTTAAGGAGGGCT
-TCTCTCCTGGCTTTGCGGATCACTCAGCACACACCAAATGCCTCTGGGCA
-CCTGAAAGCCCACGCACGATTCCTACCGCGTTGGTTTTCTTCATTTCCAC
-CTGTAGATGTTGGAGCCAGTTGATTCCAGAGGTTCTCGTTCTGAGGAAGG
-GTATTTGCTGGCCTCTTCTCCCAAGCCCAGAGAAAGACAGCAGGCTTTCC
-ATGGAAAAGACGCCAATGAAATCAGTTAGGGCCCCTGTCTTCCGGAAGCC
-TTGGGAGGTGGTGCTGGCCATCTGCGGCTGTTGTCCTGAGCACCTCTGGA
-GAGGCAGCTGGAGTGACAGCCATATCGCCGCTGCGATCTGCTGATATAAT
-TACATAGAGAATGCATTTAATGCTTCAGTGGGCAAGTTGGTATAACAGTT
-TAATTTTTCACTGAAATCTAAATTTGCTCCCAGACTGTATATTTTTCTAT
-CATATTAGATAATCAATCAGAGCAGAAATCCAATTTTAACTCCATCAACA
-CCCCTCTGGAGAAAGTTACACAGTGAGCGCCCTCTGGTCTAGGCTGCTCG
-AGGCTGGCGTGTGAGCCCACACTGGGATGTGCAGATGAGGAGTGGTCCCT
-TGGCTCACCGAGGCCTCCCCAGGAAGAGACTGGCTGTGGTTCCCCAGGAG
-CTGAGGCCACTGGCTGGGTGCAGGGTGGGGGCTGCCAGCTGTCCACGGTG
-CTGGGGGTTCCCCCCTGTCCCCTCATGGCCATAAGGAAGAGGCCAGGCTG
-CAGAGAAGTGGCCAGACAAAGCAGTGACCTCAGGGTCTTCCAGAGACCTT
-CCTGCTGCTTCTTGGGCATTGGACGATTCTAGTGTTTTTCATGCGAAGCA
-GACGGGGCCTTTGGACCTTCTGTGGACAGGGGTTCTGGAAAACCCCTGCC
-CACATGTAGACAGACTTGTGTCCCCAAACCACGTTCTGATCTTGGCCCTG
-CTTCTTCCCCATGGAGTCAGTGAGAGGCTGGGACTTCAATTCTTCTCTCC
-TGCCTTCCCTGCGGCACAGGGCAGCCTGCTTCATGGCCACAGGCCTGTGG
-TTGGTGACTGAAGAGGCAGAAGACAGGGCGTGGGTGGGTGGTCTCTGCCT
-GGTGGCATGCAGGTTGGTGGGAAGGCCATGTCACTCGGGTGGGCTGGGGG
-CAGCTGGTCCAGCTGTCTCAGGCAGGGCCACCACTCTGGGCAGGCTGTGT
-TCCTGAGGGGCCAGCTCACCGCCATCGTCACCTGCAGACACCAGACAGCA
-TGTGGGAGTCTCCGTCTGCTTCAGAACGAGCCCCTGACAGACGGCAGGGA
-CAAGCCCCCCGGGGTGGGGGCACCCACAAGCACACACAGTCCCCAGCCTC
-GCACCAGCCTGGACTTTACTGGAACAGGGCAGCCACGTTTGGAGGCCCCA
-GGTCTGCACCCTCCTAAGGCTGGGACCGCAATTGCCATACCCAGAAATCA
-CAGACTCCAAAGAGGCATTCCATCCATGAATGGGGGTTTTTATTCTATAA
-ACAGGAAGGACTCACTAACTGGGCCACATGAGAGAGAGCCTGCTGGGATT
-GGGATTTGCAAAAAAATTTGTTTTTTTGGACAACTGAAAAGCAACCCGTT
-GTTATCACAGGCGGCGTGGGCAGGGCCTGGAGGGCATCAGGGGTCTCCTT
-GCTCAGGAGGTCCTGAGTGGGCGAGTGGACCTTGCCGTCCATCACCCGCA
-CATCCACCTCACAGCGGGGAGGGTGTCAGAAAGAGGACGACGCCAGCGTT
-CGTGCCTTTAGGATTTCCAGGCCACGGTTGTCTGTGGAAGGGTCTAGAAT
-GGCGTCTTCTCTGAGGGGTGCACATGTTAGCAGGCGTCTCTCTTGCCTTC
-CCGGCCAGCAGGCTCTCTGAGGTCACCACCGCAGCTGCACGCCTTGGCAT
-CCTGACCTCGGGCTTCTCTGTGACTTGAGCAGCTCGGCCTCTGCAGATGC
-ACGGGATGAAGGGGAGGTACGCAGCCCGGCCCCCGCCAGCACTGTCCTCC
-CTACATCTATTTCAGAGGACAATGTGCTCAGCTGTGTGCCAGGTTCAGAC
-CCATGCCTGGGTGGCAGGAGGGGGAGACACAGCCCCCTTGGCCTTAGCCA
-GGAAGCGAGGTGATCGCCGTTAGGGCTGCAGAAGGAGACCAGAGGAGAGG
-CCCTCCCCTGGTGAGgtattaaccatgtttccttgtttctgtgtatgatg
-catggacctggggggatgggggctgctgatcagggagggactgggcactc
-cagcccaggttagcctgtcccagagctggcaaaggactctcctgttatgc
-aaaccccccaacccagagcccacagtccacctgcctcctgtagcagagcc
-tacaccaggtccctgccctcatcaccagggccaggtaccaactaggggca
-gcccccatgctctggagccagctggaatcattcaaactccccagctctga
-acccattcagcctgctgcccggcctggtgcttcttcccaggaagccacag
-gaaaggttctgccgcagctcccccagctccctctgcccgtggccaccccg
-gagcctcccgacgtggccctgcctggtgtgggtgcctcattctctggatc
-tgtgagtaataagtgatcttttcagtgacagccatctcctgacctgtcgg
-cctcaccatacctggatacaaatgtaacctgcagcctaaagcTGCTGCGT
-GGAGGGCGGTCCACTCTGTACCTGGCAGCCGGCTGTGCGAGTGCTGATGG
-GGTGGGGCAGGAGGTTGGCACCAGGGTTCTTTCCATCCTGTCCTCCGCAG
-ATGTGCGGGCTTCACTCTTGGCACTCACGGTCCCACTCAGGGCTCTGTAG
-GACGAGGCTTCCCTGGACTGCTCACCTCTGGTTCCAGCGTGGTGGATATT
-ACATGGGGGCTCAGGCCCAGATGTGCGGTGATGCTGGCACTGCCAGGGGA
-CACAGGGATGTCCCTGCCCCTCCAGGCTTCACCTCCAGGCAGCGTTCTTC
-TTGGCTGTGGCCCAGACACCCCCCACCCCGCCCCTGAGCTGAGGTGGGCC
-AGGCTGTGGTGGGGACTTGCCTGGCGGGGCCTCCAGGCAGGGGTTGGGCT
-GAAGCAGGCCGTAATGAAGGCCGGTGAGGCTGGTTCATGACCATTAGGGG
-CCGGCCAGAGGCTCCCCTAGGCAGGCTCCAAGAGGAAGCCCCCCTCTGTG
-ATTTTTGCAGATTTTGATTGACATGGCCAGGTTAGGAGGCAGATGGATTT
-GTTTCTCTTCTTGCCCTGAAATCTGTCCACATTAGCCCCTCGCCTCGGCT
-GAGTGGCGCCGGCATGCACCTGGGCCCGGCTTCCAACCAAGGTCTCCCTG
-GCTTCTCGGGAGGCTGGGTTGGGGAGGGGAGGAGGGGACATCTGTCAGAT
-GCATGGAGGGCTCCTCCCAGACCTCGGACCTGCAGCACGTGGGGGCAGAA
-ACCTGGACAGGCCAGAAGCTCAGGGTTATAACAGGCTGCAGACCTGGCCA
-TCACTGAGGGGCTGGCCCTGGTCACAGAGACCTCTGTGGACCTCAGTGTT
-CCCCTCCAGCAAAGGGTCATGGTGCAAGGGGGCCTTCCATTCATGGTCCT
-TCCCCAGCCCCAGGCCATCCCGAGGTTCACGGGCAGGAGAAGGGCTGGCA
-GGGCTCCCTGCAGCTCCCCCAGGAATGAGAAGATCCACTGAGCAGTGCCC
-GCCCTGTGTGCCCGCCCAGGCCCCAGATAGGGAGGGGCTGAGTTCCAGCT
-GCTCTCATCCCTGGTCGCCTCCCAGGAAGCCTGCCCAGGCCTAGTGCCTG
-TGGGGAGGCCTCCTCACATCCCACAGCCCCTTGCATTTCAGCCGTGTGCT
-CTGCGGACAGGAGTGTGTGCCCTGAAGCAGGGGACATCAGAATGGCAGGT
-TAGGTTCCTGTTGGTGCTTGTGGGTTCAGAGTCTCCAGCCCCCTGGGCCT
-GTGGCCTGCTCCATGAGATGAGGGAGACCCCCTTCCATCCTTCCTTCTGC
-CAAGTGCCCTGAGTGTAAAGCTGCAAGCAGACGTCAAAGAGACTCAGAGG
-CAGAAGCTGGAACCCCCAGCTCACTGTGCTCAGGAGGCACCTACTAAGCC
-CAGCCTGGCTGCTGCTCCCCAAGAGCCAAGGGAACCCACGGCCACCCCAG
-CTGCAGGAACACTGCCTCTGTCTTCCAGTGGGAAGCCTGGCGGTCTAAGA
-ACAGGGTCCGCTGTGGCCGAACATCGCCAAGTGTCCAAACTACCCGTGGG
-ACTCACCCGGACACTGCCTGGCTCAGGTCCACACGTGGCTCCCTGTGCTC
-CGTCCTTGGGCAGCAAAGCCTGGACAACCGACGCAGAACAGTTCGACTGC
-CTGATCATGCCACGGGCCTCCATTTCCCCAGCAGCGGACATGACCACCTC
-TGCTCAGTATTTCTCTGAGAAGGGGAAACTGAAGCCAAAACCTGTGTTCA
-TGGACAGATGCACTATGGCTGGGATGCTGCAGGAGGGGGTCTCCCTTGGG
-CCCCGTGTGCCCACATGCCAGGGCTGGGCCCTCTGTGTTGAGTCTGTGCA
-CCAAGAATGAACCCTGGCACCTTCCTGAACTGAAAGGATGGCAGGGAGGA
-GAGGGCACAGCCTGGGGAACCTGCTTTTCTCTGCTACCTCCTCCCCCAGT
-GGACACTGGAGACAGGCCCTCTGTGGCTGTGGCCCCCGCCCTGGCTAGGA
-GACAGAGCCAGGAAGGATGGAGCCGTGACCAGGCAGGGCTGGGACTCACA
-CCCTGGAGGCATCCCATCTGCCCTGTAAGTGGGGACCAGGACCTCCCTCT
-GGCCAAGCACGCCTAGGAGAGTTGCGGGATCCAGCCACGCATGAAGGGGT
-GGGTGCCCGGGTGGATGTGAAGGAACTGGACACAGCGAGGCCGTCAGCCG
-TGGAGCTGCGGGTGTGGATGATGGTGGTGGGACAGCAGCTCTGCTGAGAC
-CATCTCAGGCCACACAAAGAAGGGGAGAGCCAGAGCCGGTCTCAGGGGCT
-GGGACTGTGTGGGGGGCAGGGTGACCTCAATGCTCTGGACCAGTGAGAGG
-TCCCCTTCCGGAGCCAGGGCTACAGTGGATGGATGTCCCTGTGCTCAGGG
-GATCCGGGAGGTGCAGCCCCCATGCCCTCAGCCCCACCTCAGTTTGCAGA
-AGTCAGTGACACAGACTTCTCTGCTCTAGGCTTTCCATTTGCTTCTGATG
-AGTCCATCTAAATGGTTTGGGAAAATAAGAAAAAAGGGGGGtttgttctg
-ttttgttttgttttTGAgagacggagtcttactctgtcgtccaggctgga
-gtacaatggtgggatctcggctcactgaaacctccacctcccagattcaa
-gtaattctcctccctcagtttcccaagtagctggcactacaggcacacac
-caccacgcccagctaaattttgcattttttagtagagatgaggtttcact
-gtatgttggccaggatgatcttgaactcctgaccccaggtgatccctgcg
-cctcggcctcccaaagtgctgagattataggcatgagccaccgcgcccag
-ccAAAAAAAAAGGGTTTTGTGAGCCACTGTCTCCTCATCCATACAGGAGG
-AAGACCCTCCCTACCTCCCACCCGAGGCTGCGTGAGATAAAGTCAGACAT
-CACCCAAACGGAGCTCAGAGACATGAACGCTCTAAAAGGAACATGAACAA
-AGCGAACAGTCATTGGAAGATGTTGAGGAGACTCTCTCATAAGTGTGGAG
-TGCGTTAGGTTTTCTAAATCAAAACTTTAAACCCGGATGTCACAAGCAAC
-ATTCAGTTATGTAAAAAGTTTCAACAGTGTTATTAAAaaaagccaccgta
-aacgaagcagatgacagttacatgcaggagaaaatattgcagcatataaa
-acaggaacgagattaacactcagaataaataaagaacgcctataaatcaa
-tgagagaagagagacaaataggcaatgtgcacggctgatttacagaagaa
-gctgcacacacatggccgtgaacatctgaaGGATACGCGTCTTCCGGAGA
-ATCGGCAGCTCAAAATGCAACAAGGCTCTGTCGTTACGCCGTCGCACATT
-GGCAGTCATTTCTAACCAGGGATAATTTAATTTCAGGGGAGTTTCCAGGG
-GAACAGGAGCACCAGGAGACATTTGGTATGAGGCTAGATTGGTGAAGTCA
-TTTTGGAAACAATTGCTTGTTGATATAAAAAGTGACAGCACATGAGCTGA
-GCGATTCTACTTTGAGAAATGGAAATGAAGAGACAGAACGGGGGCTGCAA
-ACCCGCCGCACCAAGCTACCTGTGCAGGTGCATAGAAATGTCCAGGAAGC
-AACGCTCAGCACGATGATGCTTAGGACGCAAATCtttttttttttttttt
-ttttttttttttttttttgagatggagtctcgctctgtcgcccaggctgg
-agtgcagtggcgtgatctcggctcactgcaagctccacctcccgggttca
-caccattctcctgcctcagtctcccgagtagctgggactataggcgccca
-ccaccacgcctggctaattttttgtatttttagtagagacagggtttcac
-tgtgttagccaggatggtctcgatctcctgacctcatgatccgcccacct
-cggcctcccaaagtgctgggattacaggtgtgagtcaccgcgGACGGACG
-CAAATCTTAATGCCTACCAGCAAGAAGACGCTAAATTATTATACATTCTT
-GCTATGGATTTCCAGGCTCATGTTGAAAATAAAGAGAGGGAGAGATTTCT
-TGTGATGGAAGGATAACCCTAATGACATTCCTGAGTCCTAAAGAGCCTAT
-GGCAGAGCCCAGCAGAGAGTTGTCCTGATCAGTTAATTGAAGAGGAAGGG
-AGTGTGCATCGGCCtgtgtgtgtgtgtgtgttgtgtgtgtgtgAAGATGA
-AAGATCCTATCAAGCAAGTCTCGTGCAGTGTGGGAATGTGAAGGATGACC
-TGAGACCGGCTTTGGAAAAGGCCAAGGTTCCAATGAGCAGATCCCAAGAC
-AGAGGAGAGAGTGTGGAGAAGAGGAGTCAGTGGCAGTGCTCCAGGACTGT
-GAGGAGTCCCCTGGATGATCGGGAGAGGACCCTCGGTGTGGATTTGGGGG
-TGTCGTGATAAAGATGCCATAGGTGCCGATGGAGAGAGAAGCAGGTAATC
-CTTCAGATGGACCGGGGATCCCAGGCATCACACCGCCTTCCCTGGATGCA
-GGAGGTGCTGGGGGCTCTGAGGGAAGGACCAGCAGCTGCACGTGCCATCT
-CACTTTGTGCTCTCCCCTCTCCTGACATTGCTGTTGGGTTGTTTAATAAA
-TAGCTGAGCGAATGAATGAAGGAAGGAACAATGCCTGTCACTGGATTTCC
-TCCACACTCTGGGAGGACTTCCTGCCCTTTATCACCTGATGACATCTCAG
-ACCCTGAGGGTTACAAAGACCAAGACCTCTCCCTCTTTGATTTGCTGGAA
-GGCCTCGACCCATCCTTAGCATACCCCTTAGCAGCTCAGAGAGCAGGCAG
-CTGGGCGGCCCAGGAACCTCTGAACTGAGCGGGGGCAAAGGCGGCCCCCC
-ACAGGGGCAGCCTCTTCTCCATCCCCCAGGCAGGGTCTCTTTCTGGACTC
-AGTATGCAGAGCCCAGCTCTCCTGGAAGACCATTTACAAAGAGCTTTGTA
-TGGACATGGAAACCAAATGAGAATTCCAGAGCCAGGCTCTCCCTAGCCGA
-ATTCTTCCCTCCAGGCCTGTCCTGGGGCTATCGGGCTTGCCTCCTCTCCG
-CAGTATAGACAGCTGGTTCCGTGCTGCTCACACCTGCTGGGCCCTCCTTG
-GTGGTGGCTCTCTGCACCTGCTGAGTCATCCTTGGCGGTGGCTCTCTGCA
-CCTGCTGAGTCATCCTTCATGGTGGCGCTCTGCACCTGCGGAGTCATCCT
-TGGTAGTGGCTCTCTGCTCCTACTGGGTCCTCCTTGGTGGTGCCTGTCTG
-CACCAACGGCATGGCTTCAGTCATGCCAGCTCTGCCTTTCTTCAAGTGCT
-AGAGACACATTGAAAAGTTTTATGCAAAGCAATTTCTATCCTTCTATTGA
-TAGGTCCATTATTTTCTGATACTGGATCAGTATCCAGTATCACCACCACA
-CCCCGCACTCCCCCACCACAGCTTCATCTTCAAGGaatatataaatttta
-aataaatatttGCACCCACAGGACAGCTGCCTTTGAAGGAAATCTATGAG
-TGCCCTCTTGAAGATACAGATTTTCTTGCTTCTTTACAAGTTGAATAATG
-TCCCCTACATGTATCTGCTTTGTTGATCCAGATTTTCATATATCATGTTT
-TCCTGTATGGCTTTAAGATAAGTAGTGTTCCTTATTCCTCCTTGAAGATA
-ATGTTCTCAGAAGGAAATACATCTTTGGAAGAAGTGGAATAATTTACAAC
-CAGTTGGACGAGGACTTCAGTGCCTCATCCTTTTATGACCTAGACATGGG
-CTGAGAAAGAGGGTCTTACTGAGGACACAGTGTGCCTCGGTGGGGATCCC
-TGCTCTGGAGAGCAAGGGACATTCAACAGCAAGCACAATAATTATTCACA
-TCTCCTTTATTTTTTAAAGGCTATGCCTCATAGGTAACCCTGCCAAGCAA
-AACACTTGTCACCTCATTCAACCTGTCACCTCATTCAACAGACACATGGA
-GAGGCCCCACAATGTCCCCCAACTGCCACTTGCTGGAGACCAGACCCTCA
-GCCTCCCTGCTTCTGCTGGGCATCCCTCTGCTCAGGGGAGCATCTTGAGG
-CTATACAGGTCTCAGGTGCAGCTGGCAGCAAAGAGACATAGGAGGAGGTG
-GTTGAACCCACCCTGCAATGTCCAAGGTCCAGGTTAAACCCTGAGAGTGG
-GTGAGTGTGTCTGGTCctgtgactcagtttccctacctgtaaaacagagc
-ttcaacgagatgaACGATAGTCCTGAGCATAACAGTCCACAGGGGCCCAC
-GAGCCGCTTCTGCGTCCCAAGCCCTCGTTTCTGCATCCTGTCTTCACTCT
-GCTCACCTCTGAATGAACCCCATGGTCCCCTGGAGGACCTAGGTGAAGAA
-ATACCCTAAACACCTCCCCAGGCATCGAGCTCATGCCTCCAGCACAAGGC
-CTGGGGCTGTAACGCAGGGAGCTGGGCTCCAGCTTGAATGCTGTTCTTTC
-TTTCTTTCTTTTtttttaaaaggggtgaaatccacataacacaaagtgaa
-ccactttaaagtgaacactttcatggcgtgtggtacattcacaGATTCAT
-GGATGCTCGTCTTCTATACCTGAGCTATATCCTGCCTGTCACAATTCCAT
-AGGAAGTAAAAGCCAGCCACTTTCTGTAAATGGGATCTTAAGCAGAACTC
-TAACACTGTGCACAGAAAGTGTGACTGTGCTGGGTTCGAGGGAgacaggg
-tctggtctgtgtccccagccgaatctcatgacaaattgtaattcccagcg
-tgaagggagggacctggtgggaagtgatgggatcatggggaaggattttc
-ccctcgctgttctcatgatagggagtgcgttctcgtgagatctggtggtt
-taaaattgtgtagtgcttcccctcctttctctgtctctctcccgctcgac
-cgtgtgagggccttgcccactcccccttcacctgcgtcatgattgtaagt
-ttcctgaggcctccccagccacgcctcctgcaaagcctgtgaacctttga
-gccaattaaacctcttttctttataaactacgcagtctcaactaaagaaa
-ggcagttctttatagcaatgtgagaagggactaatacGGAGAAGGGCCAC
-CTGTCCTTTCAAAGGCCCCGCCCAGGACCCTGGCCACCTTTGAAACCAGA
-GCGTCCAGGTGCCCTCTCGGATGTTTTCTCATCTCGGGAGTCCTGTGGTT
-TTAACGTTCTTTTACGATCACACCTCTAGAGAGTGCTGATTCCCTGGATA
-CCACAGGACCTCCCTGAGGCGTCCAGGACAGAGCAAGCTTAGATATTAGG
-CAGAGGTTCTAGGAGCTGTGCACCCCTGCACCCCTGGACCAGAGAGTCTG
-GGTGAGGAAGTGGGGGCGGGATGTGGGGCCTGATCTCTGGGCTGCTGACC
-ACAGAAAGGGCTCACACCGGGAAGTGGACTTGGGCCTGTCCAGGGCAGTT
-CCGGGGCAGAAATGGGAGCTGGAGATGTTTGTGGCTGTTCCCGTGAGGAT
-GCTCCAGCCCCAGGAGGCCGTCGGGGAGAGGCCGGTGCTGTGTGGAACCA
-CACATGTGTGAGCCAGTCAGGAGACTGCTGTGTCAGTCAGGAAAGGCCAA
-CACAGTGCACTGTCCTCACACTGGGAGGACCGGCTTCCCACCCCACTCCA
-GGGCTTTGTGGTAAGCCTGACGCACCCCACTCGAGGGCTGCCTGGTAAGC
-CTGATGCCTTCGTCAGTCTGGGGAGAGGGGAAGATTTCTCCTCAATGGTG
-ACTGAAGATGAGTGTCTTTGCTACGGTTTGTGATGTTTTTTGCCATCCCT
-AGGTCCTCAGCAATGGTGAGTCTACTCTCAGGCCAGACACCATTGTCCCC
-CCACCCCACAAACcacacaggcacacacacacacaccagcacatgcacat
-acacacaagagcacacgctcacacatgcacacaatgcacacatgcacaca
-tgtgaccaaacgctcacagatgcacacacacacaggcaggcgtccacaca
-catgcacacacacgcacatgcacacacacacGCCTGGCCCTCAGTCTTGG
-ATCAGGGCTGGCTGCCTGCGTGCTTGTCTTATGAGGACACGGCCCTCTCA
-TTGCTTCCCCTTCACTAATCATTTCCACTCCAGGCCTGCGTATCTTGTTC
-CTAGTGTCTGAAAATCCTATTTACTTCCACAACCCCTGGCCGTATTCCAG
-GCCCCCATGAAGCATTTACTTCGCTCTGTTCCATGACCTGGATTACACTA
-GTTTCCAGCACAGAGCTTCAGGGCTGGGGACTCATTTCTGAGTAGGTGCA
-AGAATCCACATACACTGAGGTGAGGGGGGCAGAGGCAAAGTCCCCTGAAT
-CTCAGGTCACACACCTACCTAGCCGGGGAGACCCTCCTGGACCTTAGAGC
-CAGACTCACCCTGGGTAAGGAGCCCCAGGCTCTGCCTCAGTGTGGTCATA
-TCTGCTTATGCTCTATCCATGATGCCACGAGGAGCCTGTTGCTATGAGCC
-TGGGAAGCCTGAAGGTTCAGAGGGGATGGCCCAGGCCAGCATGGGGACAT
-CATCTCATCCTGGAGGACCGCCAGGACAGTGCAAAGGGGCCTTGCAGCGC
-CCATCCCAGGAGGGCCAGGTCGGTGGGCACAGCGAGCTCACCCTCACGCG
-GGGCCCGGGGCGGCTGGTTCTCCCTGCAGCAGGCTTGTGTGTGTGACCGC
-AGAATCCTCCACATGGACCCATTTGACATTGGGCAGCTTGCGCTGGAAGG
-ATTTCTTTCCAGGAAGAAACAGAGCACTGCCCTGCCCTCCTCTGCTTCCC
-AAAGACAGATGGGAGCCCTGGAAAGGGAGCCGGCATCGCCCCCAACCCTA
-GGGCTGGCGCAGGGGCCAGCAGCCAGCAGAAGAGCTTGATTGCTGTTCCC
-TGGATCTAAAAATGGATAAACAACCGTGAATGCCAGCGAGGTCCAAGCCA
-TATTCATCACCATTACAGAGAGTAATTCGGCGTGTGCTTGTTAATCAATC
-ACTGCTCTCCCTGGGTCTCCAGCCGGGCTGGGCCCCGAGAGTGGACGGCC
-ATCACCAGCCCACGGGCCGCAGTCCAAGCATGATGGATGGCAGCTGCTGC
-AGGCTCCAATCTGGAGCTGAGTGCTGGGGCTCAGGCTGGCTGCACACGGG
-CAGCCCTGCAAATGAGAGGGGGGAAACTGAGGCGGGCTCCTGGCAGGGCG
-TGAGGCATGCCCTCCCTCATGTGCTCTGTGTGTGACAGGGCAGGGGGTTG
-GGCAGTGCCACTGGGAGACCCACCTGCTTGGGGGCAGGGGAGGTGAGTGC
-TGGGAGGCACAGTGTGTGGGCCTCAGCGGCCTCATTCCACGACGTGTTCT
-TAATTAAAATAATCATGTGCTCCATGGACACAGCAGTGTTTCAACAGGGG
-GTCACACCCATATGAGAGGTTGGAATTTGCTCAGCAGAGCAGGAGGAGAG
-GCGAAGAGAGCCAGGCCCAGCAGGTTAAGGAACGTGTCATTTTGGAAAGT
-GAGCACGTGAGCCTGTGGCAGGGGCGGCGTGGCCAGGTCACGTCTGGTTC
-CCATCTCAAATCCCCTCTGCCCCGTGGCACCTGTGCCATAGACTTCTCGC
-TTTTCCTCTCCACCCTGAGGGCAGAGGTGCTGGGCACCTGCACGAACAGT
-GGCAGTGAACTCTCCCCTCCTGGTCCTCACGGCCAGGCTGGCCCTTGGTG
-ACCATCACTGGTGCCCCTTGATGACCATCACACACTGCTGTCCCCACGGC
-CAGGCTGACCCTTGGTGACCATCAGTGCTGCCCCTCGGTGACCATCACGC
-ACTGCTGTCCCCACGGCCAGGCTGCCCCTCGGTAACCATCACACACTGCT
-GTCCCCACGGCCAGGCTGCCCCTCGGTGACCACCACACACTGCTGTCCCC
-ACGGCCAGGCTGACCCTCGGTGACCATCAGTGCTGCCCCTCAGTGACCAT
-CACACGCTGCCATCCCCATCATCACTCCGTCCACTCCAGGGTCTGCCCCA
-GCAGAGGCTCCTATGATGTCACACTCCTGGGTCTGGCACCAAGGCCTCCA
-CACCCTCGACCCCACCTGTCTGTGCAAAGAGAGCCCCTGTGCCTCTGCCC
-AGGCCCCGGACTCCCCCAGGGTGGGCCCAGCACAGCCCTCTGTGACCACC
-ATGCTGCTGTGAAGGGGCCTCCTTGGGCTGCATCACGTCTGGCCTGGATA
-AGGTGCAGCCTGGGACGTGGGCTTGCTCGGAGCCTCCCTGCGCGGCACCC
-CCAGGGTGCTAACCACAGGTCTTCCCCTCCTGTCAGCCGGTTGTCAGGAG
-GGCTGGCCCGCCCCTCCCCTGGGGTGCGTTTTCAGTCGGGGGCAGAATTG
-CTGCCGGTGTGAGGCTTCGGGCCCCATCTGCCGTCTGGAGGGCGGGAAGA
-GAGCACTGCATATAgagttttgcttttcttgcttgtcagctgagaccctg
-gtaagccacttacagtgactgctcctcagtttcgccctctgaaaattggg
-gatggggtgacagcaaccctaccaggtggccgagagaatccgatacaaat
-gtggaggcggctggcacgcaggaggtgctGACGAGAATAAGGACAATTCA
-GAAGTCCCCGGCTGTACCCACAGAGCAAATCATTTGGTGCCCAAGACTGG
-CCTAAAACTCAGCAGAGAGCAGGGGCTTGGAGGGGCAGGTTTCACATGGG
-AAAGTTGATGTGCAACTTTCAACTTTCAAGTTCTATGTAGAACTTGAAGA
-GAGGGAACATGAGAGACTGCTGGGGTTGGAACTCAGGCAGATCCGGGGGG
-CAGGAGCTGAGCCGGGAAGGGGTCGGAGTCCAAATGCCGGGCCGAAGCCC
-CCAGGGTGGCCAGCCTTAATTCTGTACATGCCGCAGGGAGACAGCGCTCA
-CAGGACCCCAGCCAGCAGCTGTGCTCCCTGGAAGCCCAGCCCCTGTCCCA
-CCATGAGGATGGAGCAGCAGCCAGTGTCCTACCCTGGTCTTCTCTGCAGC
-CATCGTGAAAGTGTCCACACTGGCACAACCGCTCCAGCTCCTGCATCCAG
-TGTGGGCTGCTGCGCAGGACACGGCCGTAGCCCCAGGACAGAGCAGGCTG
-CTCCCAGGTCCATCTCCAGCAGTGCGATTTTCAGTGTGGAGTGCAGCGTG
-GAAAGTGCTATTTGGTGGGATGGGGCCATTAGCATTTCCCTTGGAAGCCC
-CTATCAGGACCCTGGGCTGGACCTGGACGCAGCAGAGCTGCCGTCTTTAC
-TAAGGTGGCCAAGTCCACTGGGCACTGGGCATCTCTGCATGAAGGTGCTG
-CAGAGTGAGGCTGGGGATGAAGGTGCTGCAGAATGAGGCTGGCTGCATGA
-GGTGCTGCAGAGTGAGGCTGGGGTGCCCGAGAGCAGACCAGCCTGGGGTG
-CTGGGGCTCAGGGCACCCGGCGGTCACCAGCCCCTCTCTTTGCAGCTCCC
-ACTGCTGTAGCTGTCTCCCCTGATGTGGTTGTCACCTTGGCGTCCTCCAG
-CCTGGCAGAGCCCAGCTCATCAGGGTGGCTTCTGCTGGAACCACGGCCGG
-TCCAAAAGGCTCTTTAATCACCACTTTATTCATTCACGGAACATCTGCTG
-AGCCGGGCCTGTCCAGCATCTGCAGGTGACACTGGGAACGGAGGAAAGCG
-GTCTGCCCTGGTGCTGCCCAGCAGACAGGTGCAGGCGGCCTGCGCTCCCC
-CCTCCACTCATATACACACCACACACACAAGCTCGGATGCATGCACACAT
-TCGctctctctctctctgtctctctctctctgtctctctctctctctctc
-tctctcATTGCCCAGGTGAAGTCCTTCCTGCAGAATCCCCACTGCTTGCA
-ATTGTGTTTATTTGCTCATTGATTTGCTATTGTCCAGATCTCCAACTGGA
-ACATGTGCCCCAGGAAACAAGAGAaggatccccaaataaaatatagaacc
-ctggaatttcagataaacaacccatcgttgtcggcgtaagtatgtcccag
-gcattgcaattattggctgggctatacttgtctagaaacctgtcccttgt
-tcatctgaagcccacattcacctggggaccctctgttcatatttgttaac
-cctgatgaccgtaGCCCAGGAGGCAAAGGCAGTGGCTGCCTGAGTGCAGC
-AGGTCCCAGGGCCCCCATGCCTAATGCTGGCCGCCACCTCGTGGGGCGTG
-GCCTGAGCACCTGGCGTGTCATGCTGGGCCCCAAAAGCGACGCCAGGGGC
-GTGTTTCTGGTGTTTCCGAACTGGGGGCTTTATTGAGGTAACTGCAGATT
-CACACGCACCTAGAGGGACCACGCAGGGAGTGCTGCTTCCCTCTGTCCAC
-TCGGACGATGCCTCGCAGGGCCGCAGCCCCCGCCACCCGGATGCTGGCCT
-GGTGAGGTGGTCCCCAGGACTCACACTCACTGGTGCAGATCAATGCTGAG
-CCATATCAGCGCATGTGTGCGTTCGTTGACTACCTtgatgcagggcagat
-gagcccccaaattggggtttagtcagggagggttcttggcttcacccaga
-aaagaattccagagcaagctggtggtgttagacaactttattcaagcggc
-tgcagagatgtgttccttgaagagcagggccccccataagcaatgtgccc
-agagcagcagcGAGATTCTGTCTCAAAAAAAAAAAAAAAAAAACGGAAAT
-TGCCACACCAGAGCAGAGGGTGGAGTTGGGCAGCCCAGAGACTCCTGGGG
-ccaccagaggctggaagaggcaggaagggtcctcccccagacctggggat
-ggggcgtggccctgggacacctccgtgtcaggctcctggcctttggaact
-gtggcagcaggcatctctgttgctttaggtccccagtttgtggaatttCC
-TGGAGTCCTGGAGGCTCGCACAGGCAGTGAGTGAGGAGGCGCTTGGGAAG
-CTGGGGACCTGGTGACGTGGGGGTGGAGGGGTGGGCAGAAGGCCCAGCGA
-GGCTAGGCTCCTGAGGCTCTGTGGTGTGCCAGGAAGGCCAGGAGGTTGGC
-CAGGCCACGGGGGCCCTGAGTCCAGTGACGAATATgttgagtggtggtga
-actcataggttactggggctggacaaggctgagtctgagtcaggtttaaa
-gctagatctcggtgggacctggtgaggcacgtgacctcactgagccttag
-ttttctggcctgtaaaaggggTGGAGGCCACCTGTGTTAAAGGCAGTGGG
-CACCACACCTGGCACCCAGGAGCCCCCAGGCTGTTGGGAGTTTTGTGTGG
-ATCCAGCCCACTCTGGGTTGTGGGTAGCTGCGACCCCAACGTAGGCTGGG
-TTTCAGCATCCTCTGACCTTCCCCTCTTCCCGCCCACAGCCATCAGCGAG
-AGCTTCCTCCCCACCTCTGTGAGTTTAATTTCTAGGAGGCTTCATGGGAA
-GTGGAGGAGCGTGTACTGTCACCCACGTGCTCCACCTCTGGGCATTTGTT
-AATGTGAGCGAGAGATAATTCCAAGTCTGTCTGAGCCTGCTCTCTAGGGT
-GACGCCCGGGGTGGAGATATCAGCTGCATGAGGAGTCTGTCCGAGCCTGG
-TCTCTGGGGTGACGCCTGGGTGGGGGTATCGGCTGCTTGGGGAGGGGCGA
-GGCAGGTGCCGATCTGCCTGTTCCTCAGTTCCCAGGGGCTACTCCAACGG
-CTGAAGGGTGCCAAGGAGCCCATGCTTTATTTCCACTGAGGATTAGCCCC
-GGCACGGAGGCTGCCATTCCTCCATGACGGCAATCACGAAATGACAGGAC
-TTGTGGGAAACTGCCTTTTTATTGCATTTCAGGCGGAGAAGACATCAGGT
-CATATACCAAGCAGAAGGCTGAGAGACGGGAACATAACGGGAATTACTCC
-AGAAGAAAATAATTCCTCCCTCAAAGTCCTGTACAAATGTCGTGTCCCTC
-CCACCTGCCTTGTCACCCAGGTGCCCTGTGGGAGAAGCTTCTGGGTGCTT
-CTGGAGACGGAGATCCAGGGTCCTCGAGGGCCCAGCTTTGCAGGAGAAGT
-AGACAGGCCCCCACCGGTCCCCACGCCTGGAGACCGTGCCAAATTCCATG
-CACATTAAACTCAGCCCAGGGCGTCAGAGGCCCCCCTTCAGCGGCCTCCT
-CAGAACCTCCCAGACCCGCTGTGGCTGCAGGCCTGGCCCTGGTGTCCTGG
-ATGGAGGAGCAGAGGCCTGGAGAGCTGACTCTGTGGACAGCCCCCGGCCT
-CACTGCACACCAAGGACAACTTCACACTAACAGCATCCGTGCAGGGCCGC
-CCACAGGCCCGGGCAGGGGTGTCACAGTTTCCAGAAGCCCCTGCTTGTGT
-CTTGCCTTTTTCACGCAGACGACTGCACACATCCCGGCGCCGGCCTCGCT
-CTGAGGACCAGATGGGCTGTGGCACCCACATGCACTTCGTGTTGGGCACC
-CCCACCCCCCACCCCCAGCACCCTGCCTGGAGACACCTGTGAGCCAGTCA
-GAGGCCCTCCTGGGCACACACACCTGTCACTTGGAGCCCGCAGGCAGCGG
-CTCCCACAGCATGAGCTCACAGACGCAGGGGTGTTTGGGTCATAGCAACC
-CACGAAGCTCAATTCAGCCCCGGGAGAGCATTTTTATTTTTGTTGAAAAT
-ATCCACACCCTTAGTATTTGGGTTCCCAGTGTCTACAACATGAGGTCTCC
-TGGAAGAAAAGTCAACAAGAATTTAAAAAGaggaaggaaggaaggaagga
-aggaaggaaggaaggaaggaaggaattaggaagggagagagggaaataga
-gagaggaaggatggaagggaggGGTATGGACGGTGTGCCCCAGGTACCTC
-CTTAGCTCTGTCACCCACAGAGGACACATCACATCCGGGCACGCTCTGGG
-CTGCCAGGGACCTGCAGGTGGCCTCAGGGTGGTTCCTCCTTTTCTGCCTG
-GGGGCTCCGGGGAGGGGGCACTGAGCCTGGGCCTGAGGCTCGGCCTGGCA
-GCTGCTCTGGGTAAATGGCTGCTGTGAACAGTTCTTTCTTCTGGGCCTGA
-TTGACattaattaaatattttaatatttGTATCAGAGAAAACGTATTCGG
-GCACACCTCAGTCATTTCTGATTAAATTGCCAAAGGAGGGCCGCTGTGTG
-GCTCCTATAAATGAATACATTTTCGACATTTTTTTTTTTTCTGTTGAAGG
-TAATTTTCATGGCTGGTTTAACTTGTAGGGATGATAGAAAATATTAATAA
-AACATTTGATGTCTAAGTTTGGGTGGAAGTTTAATAAATTAGATGGGCAA
-ATTTTACTTTTGATCACGTGGCTGAAAATGTTTTAAAAGGGATTTTTTTT
-TTTTTTTTAAAGAAAGGAGCTTCTGGTGAAGTCTCTGCTCTCTGGGGGTT
-CTGGAGTCCTTCGGTGTTGGGCTGGGGCCCCCTTCACAGGTGTGGTCTCG
-GGTTCACGATGATGGGATGAGAGGAGTCTCTGGCTGCGTTCTCAGGAGGG
-GCCTGGGTGAGAGCCCTCGTTGACACCTTCACATAGACGGAGAAACCCAG
-GCTCAGCCAGGTGGGTGACGCTTCCCAGGTCCCCACGCTGTGTGTCCCAG
-ATGGGGCAGGATCCTTGCTTCCTGTTCCTGTCTGCTGACTTTTCCCCGAA
-GCTCCGTGTCACCACGGGACCAGAGGGGCGCATGTGGGCGAATTCAGCCG
-GCCTGTGGTGGTGGGCACCCAGCCCCGAGGTGAGGCATTCCTCCCCAGCG
-GGCAGAGGGGctcccaaatccactcccaaatctgctcccaaacccactcc
-cGGCGTTGTTGTGAGGCTCTCTGAACCCGAGGAGTGACCAGAAATCCTGG
-CGAGATCTCTGGGAAGCAGGCTGTGAGAAATATGTTGTTAAAATCCGTTT
-TTTCAAACAAGGTACCGGCTTTCCCAGAACAGGGAGGCACAGCAGGGTCG
-GTGGGAGGCCACAGAAAGGAGACAGACCCCGTCCGCGAGCATTCGGAACA
-GCCATACAGCCCCGGGGCTCCTCCAGCAGGAGGGACGCTTCTCCCCGGGG
-AAGGGCAGGGCAGGCACCTCGGGAGGAACGGCTGGGTCCCTTACGCCACC
-AGCACAGCCCAGCAGCTCACAGGCCTTCCCAGCCTGGGTGCAGGCTGGAG
-CCCCCGCTGAGGTCGGCCTGGCTGGGGCGAGGGTCTGCCTCAGGTGTCAC
-AGGGATGGAAGCCGTGGAACCAGGCCTGGAGAGCGGGTGCTTCCTCCACC
-TGTGAAGGACTGGCCGGGGCTGAAGGAGCTCAGCAAGCAGCAGGGCCCCA
-CCTGGAAGCAAGGCCGGGTGAGGTGGGGTCAAGACGGGACCCAGCAGGGC
-CACTGACAAGTCATTCCAGAAGTGCACACCCTCATCCCAAGTGCTCCCCA
-ACACACATGCACACACGGCACACTCAGGCATCCAGAAAGacacacacaca
-agcatgtgcacactcacacacacatgaatgcacttacatacacgcacata
-cacaaaggcgcacacacaggtatgcacacacacagccacacacacgcagg
-tgcacactcacacagacgcgtgaacgcactcacatacacaaaagcacaca
-caggcatgcacgcatacatgcatacattcacacacacgcaggtgcacact
-cacacacacatgaacacactcacatacacaaaggcacacacacaggtatg
-caaacacacacagccacacacacgcaggtgcacactcacacagacacgtg
-aacgcactcacatacacaaaagcacacacaggcatgcacgcataagtgca
-tacattcacacacatgcaggtgcacactcacacagacatgtgaacacacc
-cacatacacaaaggcacacataggcatgcacacatacatacgtacattca
-cacacacacacacgcaggtgcacacacacacacacatgaacacacacaaa
-agcacacacaggcatgcatgcatacatgcatacgttcacacacacatgca
-ggtgcacacacacacacaTATGAACACACTCACATATAGTCACATACACA
-CTGGCCTGcacacacaaatctacacacacacacacacacacacacaGGCA
-TAAGCACAAGATTGTACAGTTTCATTGGTGTTTAGTCCAACACGCCAAAA
-CCCAGTACCTTGGGCCCTGATGGAATGAGGGCATCTGTGGTACCCTCGGG
-CAGATTCTCAGCAGCCCTGTGGGGCCATTCCAGCTTTGCTGGGCCCGCCT
-TCGTAGCTGGTCAACTGATTCCTCCtgcagtgtacagggccccgcactag
-aaggacccacacctgggttaatgcgttgctgtcactgacctgaaatgctt
-catccttcgagcgaggggtccccacgttttcagtttcactggcctcaaac
-aatatTTGAGGCCTTGTTATTCCTGCTGCTGTGGAAAGGTAAATATTTAT
-AGGAAATTTCCATTTCCTTTTGCTCATCTGACAGAAACTTGAAAATTCAC
-AGCCCTTCCTTGGCCATTCTGCCATCTGCTCCCAGGTTGGAAAGAGTCCC
-CAGGTCCCTCTGGGCAAGTGCAATGTGCACGTATTGAAAACATGTTATCG
-TGAGGTGTGGAAGGAACGCACTTCTCAGCCTGGGCTTTCTCCAGATAGAT
-GATGATAGTGTAACAGCAACTTAGTGATGTGTGGCTCTCACATAATGAAT
-TGATTTTATAAAACGTTTTCATTCATTTGAAAACTGTCTGGCCGTCTATT
-GAATGGGAATTACAGTGACAATTAGACTCAATATTTAAATAATCAGTTTT
-CACTGGGCAGTATTGGGATGTCACAATTTACAAAGCACTTTTAATTATTT
-TATGTGCTGGTTAGTGTGTTTTTGCAATTAAAATAATATCTACATGTAAG
-TGTTGCAGGAATGCGGATACGAGCACTTAAGGGGGCCGGCTGCTCCGTCT
-GCCTCTCCATGCCGTGGACTCAGCACCAAGTTCCAGGAACAAAACGCACC
-ACAGCAGGAACAGGCAGGCTCCGCTGCTGAATTTTGTCCTTTTTCCTAAA
-TCGTCTGTTGTCTTCTAACGTGTTAATGGGTTCATGAGGTTCCCGCCACG
-CTTAATTTCTTCTTTCTCCAACCAGGCCATGGCCCTGCTATTCCCTTCAG
-GTAGGAAATGGCCTCCATGAGAGCGTTCAGGTCTGAGCGCCCCGTTGTGT
-TCAGGAGCCTGCCGGCTGGATGCAGCCCATCACAGAAGCCTGTGAGGTCA
-TGTCCATGGGTCCTGGGAGCTGAGCAGAAAGAGCTCTCTGCCTGAGGACG
-CTGTGTGTGTGGGAGCGTGAGCTGAAGTCCAGGGCAGCTTCACTGGGAGT
-GCCGCCGTCTCTGGACTTGGAGGACGCCTTttccacaggacattgctcct
-ggtcaaggcactcacttcacagccaaagagcagccatgggtccctccctg
-ctcatggaattccctgctcttaccatgctccagcctggagcagtgggctg
-gatagagccagggaatggccttttgatggtgatggtacctccgggggctg
-ggagaggtctcctgggctgcgcatgttctgaatcagtgtccagcatgtgc
-tgctgtctctcccgtagccaggactcacgggtccaggaaccaaggggtgg
-aaatggaagcgcgccactcgccatcacccctagtgacctactagcaaatt
-tttttgctttctgttcccatgactttatactctgctggcctagaagtctt
-actccagagggagaagtgcttccaccaggagacacaacaatgatattatt
-gtcctggaagttcagcctgctgcctggccgcattggactcctcatgtctc
-tgagtcaacaggctaagaagggaatttccatcctggctgcgggtatcagt
-ccagattatcaaggggaaattgaccgctgctccatggggacgtaagaaag
-agtgtgtctacaaacaggagatcccgcagggtgtctcctaatactgccat
-gggaaattacaacaacccaatccagacaggactacgaatggcccagaccc
-ttcaggaatgaaggtttgggtctccccaccagataaagaagcaggaccaa
-ctgacgtgactgccgaggggaaagggagcattgtatgggagagaagaagg
-cggctgtgagctccaggggtgccctccgggcccatcacagaagcaaggac
-tgtaattgtcatcatggtaaattataaatattcttatttattattaatgt
-gtttttgtgtatgaatacataaccacacacacaaagcaaatctgttcttc
-cctctcttctccccttatggtgttacataagatgtattgacttcagagcg
-tagtttctaagcattgttactttatatcacagcatttgtgctgcaggatg
-tcatggagaagaggaaacaccacccagagctcttctgggaaagggttagt
-gtgttttcaggagcacacagaatgcttttatgatgttaggggatcgtctt
-tgtttgggaattagatactttttttattttttatttatttattttttgag
-atggagtctcgctctgtcacccaggctggagtacagtggtgctatctcag
-ctcactgcaagctccgcctaccgggttcacaccattctcctgcctcagcc
-tcccaagtagctggaactacacgcccggcaaatttttttgtattttttta
-gtagagacggggtttcactgtgttagccaggatgatctccatttcctgac
-cttgtgatccacccacctcagcctcccaaagtactgggattacaggtgtg
-aaccaccgcacccggccagaattaggtatgttttagggagacgtatatag
-aggtgcatggtgtcgggctgacaggcggtggacCCAGGTGGCGAGTCTCA
-CGTCCACCTCGCTGGGCTGTGGTGTCCGGCATCCTGGGACgctgctgtga
-aggtattttgtagattgctcaacacccacaatcagttgcctttccgtaaa
-ggagatcacccctgagcagttgggtgagccttatcacatcatgaaggctt
-taagaggaaaactgaagAGGAACATCCACCTGAACCTTGAGTTTCTGGCC
-TGCCCCAGAGCCTTCCCTCCTGGATGTCTGAGGCTCCTCCAGGAAGGGGC
-ATGGGTGAGGCTGAGCACCTGCAGCTCCTCGGGCAGCGGACATGCTGGGC
-CACTCTCGCGTACCCTGCGGTGACTCACACTCAGGCAGCGGACATGCTGG
-GCCACTCTCGCGTGCCCTGCGGTGACTCACACTCGCTGCTGTTCCCAGCA
-TCCCTGTCCAACTGGGTGGTGCATATTTGCTCTCTGGCATTTCCCCCATA
-TTAGCCTGTGGTGGCTAATGGGGGGGAAAACACATTAATCCTTTGTCATC
-TGCAAGGCTAGGGTGAGTCCAGTCCTCCTGGAGGCTGTGGGAGTGTGGAG
-GTTCAGGAACAGAGGGATGCAGGGACAGCATGGTGGCCCATGCAAGCCCT
-CGAGGTGTGCCTTGGCCACAGCTCTAAACGGCAGAGCTGCTGAGCGAGGC
-ACACAGGTCACCAGGCAGGTTGTGAGGAGCCACCAGTGAGGCTGCAGAGA
-CCCGAATTCTCCCTGGAAGGGTGTCAGATTCTCCAGACCCTGCTGTGATT
-CTTCTGTGTTTATAGAAGTAGCAAGAAGAAACGTTAGCCTATCTTAAATA
-AATCCTTAGATTCTGACACAATGGAATCTACATTAGCAACACTTGGATGG
-TAAAGAGCCTGGAAGTAATGTTGTGGTATTTGGCTCCCTTGAGTGAGCTG
-GgagtgaagaaatgagtgactgaatgactgaatgaatgaatgaaCTCATC
-AGGGGTCTGCCGTGCTGAGCATGGTGCTGGGCATGGTCACTCTCAGGAGA
-TCCTATCTGTGGTCAGGGAAGCTGAGGCTAGAGGAATCATCTGGGTCTGC
-CTCTGCGTCCCTGTTCCCCCTGTTTCTTGCGGGTCACCCAGTAAGTCCCC
-ACTGAGCTGCGTCCATGGGACTGCAGGCATCTGAGCCCTCACACTGCCCT
-GAGAGCAGACAATCCACGGCCAGGGAGGCCGGAACCCAGCTGCAAGCCTG
-AGTGACTGGGAACAGGCGGCCTGAACTCCAGGCTGCCTGCCTGTAACACG
-GGAGGGCACTGGGTAAGTTCCCGAGAACTGGGACCAGTCTCCTCCCGGAC
-AAGGGGGCAGATTGGACCCAACCACTTAATGCTGGAATGGGAGTTGCCCC
-ATGTCCTGTGGGAGGTGCCTAGACAGGCAGCAGCCCCCAATGCACCTGTA
-TCCCCTCCTTTTCTGGACACCCCTGCAGAAGGGGAGCAGGTGCTGAGGGG
-CTCAGGAGGCCCTCATATGTCTGTGTTAAACCGTTTTTCATCCCCCAGAG
-AGCCCCGGTGTCTGAAGGCCTCCGCGTACCGGGGCTGTGGTTAAGCTGGG
-ACCAGCAGGAAACTCACAAGCTGAGGCGCCAATGCACGAAGGAGGAGGTG
-CGGGAGCCAGGGACCCCCAGTTGCAGCACACACCTTCTCAGCAGAAGCAC
-CCGGCAAGGAAGGAGTGGGTTGGCATCCTACTCAGGGCAGTGGAGCCAAG
-AGCAGCCCCAGACCGCGTCCCGCCCTGGAAACAATTCCTTTCGCTCAAAC
-CCTGCCAGTCTCTAAGCTAAGGGCGTGACTAGGACGGGACGGCTTTTGTT
-TTACTCAGCTGATTATTTTTGCATTTAATTCATACATTAGTTCGACTTAG
-TGGCTGCAGAAAAGCTATAAACCGAAGGGATTTAAGCCTAACAAATGGTG
-TTCTAATGAGAATTATTGAGGCCAACACTAGGATTCTGCAAGAATTATGT
-TTCCTTTGAGGGAGGTCTGCCTCTGAGGGACCCCAGGCTGCAGGGGGTCT
-GTAGAGGTTGACCGTTTTCCAGGTGGTCGGGGAAGGTGATGTGCTTTGGG
-CCTCTCCACTGGGGTAACTGGAAGGCTGGGGTGGGCTCCGTCCCCCTGCA
-GGTCTAACCCCAGGGGAGTCCCCGTCTTGTTCACAGGCTGTCTTCTCCTC
-CCCAGGGAACACGCGGTTGGTGGGGACCCCACAGGCAGGAGGTGCAGGAG
-GAAGCCCCCCCAGGCAGAGACCCAGGAATCACAGCTTCCGCACCCTCTTC
-ACTCCCCTAGAGGCTCGGGGAGCTGAGCCCCAACACTCCCCAAGACTTGG
-GGGCATTAATTTAAAACAACTGATTGCCAGCAAAAGGCCTCATCAAAGAT
-TAAATGAGCATAATTTAACTGAGGGAATGATAATAGATTTAGTTAAGAAG
-AGAAAAAAAGGAAAATTGAATTGGAATGCATATTTGAGGGAAAATTGGAG
-TTTAATGTAATTACACTTAGAGATGAGACAGATTACAATTACCGTGTTTC
-AGAGGTGGAATTTTTAATTGCATCATTTAAAATCAAGCCTAGGTCTCTGC
-CTTCAGCAGGTCAGGAAAAGGGTTTTCAGGCAGTGGGGATGGCTTCTGTC
-CTGCTAGCTTCCTCCCTGACCCAAGGGAAGCAGCAGCCATTTCTGCCCAC
-CTGAGGGGGCCAGGCAGATGCTGCAGGTTCCGAACCACAGTGTCCTGCTG
-CCCTGCGCCCACCAGGCCAGTCCACACCCTCTGGGCTGAGGGCCTCACCC
-TGCAGAGGAGACAGGCACAGGGGCCCTGTTATTCCTGAGACCTTGAGGAG
-CCCGCAGCCCTGGCAGCAAGGCGGAGGGCCTGGCTGACACACACCTTCCC
-GGATTTGATTATCCTCACGGCTGATCCAATCACTTGGGCAGTCAGGAACC
-ACGATCATAGCCAAAAACCTCAATTCCACCAAAAATCGAGTTTCCCAGAT
-GGCATTTTCACTCTTTAGTCCTGAACCACTCACCTTCACAGGTGCTAACT
-GTGTTTGCCTCTGGAGTGATGGGACCAACCAGAAGGCATCTGGGATAGAA
-AGGGCACTCAGAGGAGCATGAGGCCCTCGATGAAGGGGTCTGGGATAGAA
-AGGGCACTCAGAGGAGCGTGAGGCCCTCGATGAAGGCGTCTGGGATAGAA
-AGGGCACTCAGAGGAGCGTGAGGCCCTCGATGAAGGCGTCTGGATCTCCA
-AGGCCGGGAGATAAGCCCGCTAACCGGCACCTTAGTGCTCCAGGACGCTG
-GGCTGGCATGCTGTCCGTGTCGGCAAATAGTGCCAGCGCCTGTGGGCACG
-GACTCCTCCCACCCGGGACTCCTCCCACCCGGGACTCCTCCCACCTGGGA
-TTATGGTCTTGGTCACCGTCATggttgagttatgttccctcaaattcaaa
-tgttggagtaataacccccagcaccgcagaacgtgaccttattcaaagat
-agaatctttaccgaggaggccaagtaaaaatgaggtcaCagccaggcgcg
-gtggctcatgcctgtaatcccagcactttgggaggccgaggcaggcagat
-cacctgaggtcgagagtgtgagaccagcctgaccaacatggagaaaacct
-gtctctactaCACAGCTCTCAGTCATTGGCTCTGCCACCGCTTCTCCGTC
-ATCCCTCCCATGATCTTCTCCTCCAGTTCTCTCAGCACTATTTTCTTTAC
-TATTTCAATGCCCTCTTAGGGGAAAGCATCCATTGAATCTCTCGATTCAC
-TATTTTACTTGTGGGACCATATGGGACTATGCTTATCTGACCTGTGGAAC
-TTCACATTCCTGTCTATATTCCTTTTCTAACATTTCCTAATTGAAACTTT
-TTCATAAAATTCCTATTTCGTTTGTCATTTTTAAGTGGAAGTTATGCATT
-CATTCATCTCTTTAAACATCGCCAATGCACTTATTTGAAATATCTGTCAA
-AAACGTTCAGCTACAGTCTATTAATGGGTTGATTTTTTATTCTTTGTTTA
-TCGTCTTTCTCAAAATTAGTTTTCTTTGTGTATTTTAGAATTTGGAGACA
-AAACCACATTTTGAGTGGAAAGCGTTGTTTTGTTTTGCTCCCTTCTTCCT
-TTCTGTGCTGTCATGCACCCTCTAAGTCCCTGATTGAGACGTAGGCCTCC
-AAGGCAGGTGTAGAAGCCCAGACGCTCGGAGGTTCAGAGGACGAGATGGA
-GCAGGCTCGGGGCAGTGAGCGCCGGGCTCTGCACCTGCTCCAGGTGGCAT
-CGGCAGCAGATGTTGAGCAGATGAGCAGTGAGGGAGCTCAGCCCCTCCCC
-ACATCCTGTATTGCACTGGTAGGGGGTAAACCTAAGGTGCTAAAGTCTCG
-TCTATTCGGAACATTAGGAAATCTATAAAAGGGCGTTTTCAGAAGGCTGG
-TAGGAGTTGATGTTCTAATGcagggatccacagactttttctaagaagag
-tcagatggtaaatacgttctgctgctcagtccatgagggtttccatagca
-actcctcctcctctgtcgctcaaggcaaccagagccatacagaagcagat
-gtgtggggctgtgtcccaggaaaacagcccttacaaggcagccatggctg
-gatgtggtctgagagctagagtttgccaacccctCTTCTAATGCAAATGA
-ACAGAAATGCCAACTTGAATTTGAGTACAGATCCAGGAATTCCTTTTACA
-TATGGAATACATACTGTTCAGAAAAAAACTTCAATAAGTATTTTCCAGTC
-ACCTGGAATGTCTCAAAGAACAGAGACTTTTGTTTGGTTACTTTTGTACA
-ACGTCATGCAGAAATAAATGAGTAAAAGCTACAATGCAAATCTTTCtata
-tatattttatgtaaaatataaatataaacataaaatatatgtatatgtgt
-atatatatatatgtatCTTTATACTTCAAAGGACCTATTGAAATTACTTT
-TGGAAGAATTCCAAGGGAAATTTATAAGGCAATGGGTTCATCAGGATCAC
-GGTTCTGGGTGTGAGGACCAACAttttttaattaaatgtttcattttgag
-gtaatagtagatcaacaggtatttgtgatcagtaatgcagatagatccca
-ggggctccccctctttccctcagtggtcgtaatatagcagcctcacatcc
-aggatgtcagtattgacaaaatccactgatcttaaccagatttccccaga
-ttcgcttgcacttgtgaaagcgtggatgagtgtgtgtatgtgtgtgtgtg
-tgtgcatggatgtgcgtgcatgtgcctgagtgtgtgtgcgtgtgtgtgtg
-tgcatgtctgtatgcctgtgtgagtgcgtgactgtgtgtatatgtgtgtg
-aatgtgtgtgtgttcatgtgtgtgattgagtgtgggtgtgtgcatgtgag
-tgtgagtgtgtgtgGTTATTTAGTTCTACGCAAAGCTCTGTTTTTAAAGT
-GATACAATGTTGGAATGATGTCCAGGGACCCAGAAGAAGGAGTGTCTGGG
-GAAAGCCTGGTTATAACAGAATGGGTCCCAGCTAACATCATATCTCTTTT
-ATCTGCATTGATATCACTAGGACACAATTATTAAGAAATACAACTCACTT
-AACCTGGATGAATGACAGCAGGAAAATTGCTACAAATCTGGATTAATGGA
-AGTCAAATGGTAGTGAGCCGGATGGTAATTAAGCTGAGGTTAAAAGCTTT
-GAAGCCAGCCTTTCGGGAGCGGACTTTTTCAAACACCTCAGGGACCTAAA
-CAAACTCCTGATATTTATTCAGGCTGAAATTCTGACTCGCATTTAGACTG
-CTAAATTAATAAGCTTGGAGACCTCTCCCCTTCCCTGAGTAGACACTGCC
-TTTCATTTATGCCATAGAGGTGCATTAACGCTCCGTAATGCCATCTATTA
-TTTGGGATTATTAATTCATCAGTTACTCAATTGAAAAATCTGAGGAGTCA
-ATACAGCAAGTCGTTGGGAAAGTGTGGGACCCTAGTGAAAAATCAGCAGA
-TTGTTGAGGAAATAATGTTAAAGAAACACTGAGTAACAAAAGACATTCTT
-TATTAAAATATCAAAGAGGATAAATATCTCCTTAAGAAGCTCTGGGGTCC
-TAAGTAAACTCCCAAGGGGTGGGGGTCCTGACAGCAGGACATGGTGGTCT
-CACAGTTTAACCTTTGCACGAAGCCACCGGTCTTCGGCTTTCTGGGCACA
-GGACTCGGTGCAGCACCCTGGGAGGAACTGTTGGGACCACAGGAAAGGGG
-AATGGTCGAAGGAAGGGGAGGGGAGCTGTCATCAGGCATTGCTCACCTTG
-AAGGCACAAGTTCAGGAGACCACTGAGCTCACGTCCTCCTCTGCCCTTGC
-AGCCTGGGGTGGGAGAGGGAAGTACAGGTGACACCTCCCATGCCCATGTA
-CAAAGAGCACAGTGGGGAAGGGAGGCAGGAAACTTGGTCCCCAGTAAGCT
-TCCCTCATCTGCCTCCCCTAGGAGCATCAGTCAGGCATCTCTTAAGTTTA
-GAGAAAGCTCATTGTAAATACATATTAACTCTCACCATGATGAGAAGGCT
-GATGACAGATTCTGCTCACCTTAATGGTGGGGCAGGGCCTTGGTCATCTT
-TTTAACCCGGTGATTAGTGGGATGTCTGCAGAGAGACACTTAATTAAGGC
-TTGTTAAATTGCACTGAACAATGTCCCTGATATTTACACACCTGCACCTG
-GCACTTTCTGAGCTTTTGCATCTACTGTCGGGCAATGAACCAGGTTGGTA
-GAGCTTCCGTCCTGAGCAGGGGCTGCTGATTGCCCTCCTTCCTCCCAGCA
-CCAGCAGTCAGCCTACCCAGACACTCTTCTTCCCTGATTTCCAGAGAGGA
-GCGGCCTCTGTTTAATGTCCTGAGTGCAGGACAGGGACCTTGGAAGGCGC
-CGAGCTCTGAGCCCTGAGTCGCTGTAAGCCTGAGTCTAGGCCATCAAGCT
-CTCTGGACCCTGACATTCCTTCCCAGGCATCTGCTGCTACTGCTGAGAAG
-TGAGGAGCCTTCAGCACAGGCAGGGAGCCGTGGCGGATGCTCATTAACTC
-TGCCAGGGCCTGCATGGCCGGGCTCTTCAGGCCAGCTCCCTGGGGCTACA
-TTCTCAGAACCAAACTGTGTTCCTCTTACCATGGACCTCTGGAGGAAGCC
-CAGGCTTTCTGTCCGGCTCTTTGTTTGCCAAATGCCAAGGGGTTAAAGCC
-TGAGAGCTGAACTACATCAGTAGGTCAACACACCTCACCCTGGGGCTTGG
-CATGACTTGGGAGGCAACCCGGCAGACCCACGGTATTTGGCCAGGTTTGT
-CCATGGCCAAAGGGCCAAGCCCTTGAGCCAGCTGCAGTCCCTGGTGGGAG
-GATGGTGGGCTGGGGCAGGAGGTGCTAGAGCTGATGAGTCCCATGAGGGA
-TCCTGCTGGGCTGGGAGAGCTCGAGCCCCTGGAAGATTTTCAGGATCCTC
-CTGAAGTCTTCTGTGACAGTCATTTTCTTCTTAAAGGGGCAAGTTCCAAA
-CTTGGCGCTACAGGGGTCCCAGTAGATCAGGCCTCTCCCCTCCGCAGGTG
-GCCTGTGTAGCTTTGCCCTGGGCCTGCCTCCCACCCTTTCTCCCTCACAT
-GCCTCTGGGACGGGTCAGGCAGCTGCAGAGGTTCCAGGATGGCAGCCCTG
-GGCCCTGAAGAGGGGAATCCCCTACAGAACGAGGGAGCCCTTGGGACCCT
-CCTGGAGACACTGGGCTCCTGTTCAGCCTGGAAACAGCCACTGAGCCTTC
-TTTCTCAAGCAGCCTTTCCATGGAGTCAGGGTGGCGAGGCCCTGTTTAGT
-GCTGGGCATGTTAGGGAACGTCTGTCTGGGCTGGCCCAGGGTTTAAGATA
-AGAAAATTCATCCATCTTCCCAAGAAACCAGGTCACTGAGAACTCCTAGG
-TGCAAGAATTAGATCCAACAAGAACATTTCCTGGAGTGACTGTCATTGCT
-TGGATACCTCACCAGCTGTTTTTTTTTCTCAATTCAGAATGTTATTACAC
-ATGCCCTTTCTGCTTCTAATGATCCTGAGCGTAACAGCCTTGAAGTATCT
-TAACTGTGTAGACACACGTGCATCCTTCAACAAACAAATCTTGATTTTTT
-AGACAAAGAAATGCAGCTTGACTCTCTGGAACACTGTTTATCCGGTCTGA
-ATTCTGCCCTAAACCCCGTGGGTTAAAGCCACCTCCATCCTCCAAGCCCT
-GCCCCCTGTCCAGGCTCAGTCTCCGAATTTTTGCTCCACTTTCTCTCTTT
-CCCACCTCACCCGCACTCCTCCAGTAATTCCTGTCAAGTTCAGCCTCTAC
-CCCTCATTGCAGCCCCCGATGTCCCTCTCCTGGACAGGCCAGGTGCACCC
-ACCCCAGCCTGCCTGCCTCGAGGAGTCCTCCCTCCCCAACAGGGGAGAGG
-GATTGTTCTAAAACACAAGTGAGGTCCCAGCTCCCTGTCCCCCACCCCCG
-AGGGTGCCTCATAGGTCCCAGAATAAAATCCATGGCCTCTCTGGGTTCTG
-TGCCCTTCTGCCTCGGTCTTCCTCTGACACAGCTTCCTCCCGCACCTGCC
-AGGCCTCTGCTCATGCTGGAGGCTGCCTGCATCCTCACTCGGCTTGTCCT
-GGGCTCTATTCTTTTCCACAATGCAGGGGTCGCCACTGGACACATGCTGC
-AGGGATGCGCATCTTACATCCTttctccattgggatgaagctcccctggt
-aagggtcttggctgctctgtccctgctgcagcccctatgcccagagcCTA
-GGATGCCCTGTGCAATGCAGCACCCAAGTGGTGCCAGCCCTGCCTTGGCA
-GGTGTTGGTGGAAGCCACCTCGGGGCCCTGCACAGTTCCTTGTGCCTCTG
-CCTGTGGGCCTCTTTCCAGTCATCCCACGGAGCCCGTGTACGAGAGCTGT
-TGCCTCAATTGCAGGGTGTGAGGGTCCTGCCCTGCAACCCTCACCCACAA
-GCAAGTATGACGCACCTGATTCCTGGAGCTCACACGAGGGGCGTGGAACG
-AGGCCAGTCGCCTCCATGGGCAATGGCTCCTCCTCCCTCAGCAGAGCTGG
-GGGCTGCGCAACCTCCTTTGACTGACAGGCGAGGCGTCAGCACCGGCTCA
-GCCAAGACTCACCATCCTCACTCCCCAGATCCAGTCTCTCACAGGCCTAA
-GGAGGATGAAGAACCGAATTGTCTCATTCAGCTTCAGCGCCTCTCCATGC
-AGATCACCTGTGTGCAGATGGAGGGGGGCGAGGGCCACGTCACCCTCACG
-CTGGCTGGGACCCCAACCCGGCCCCCACAGTCCTTCTCTCGCACCCACTG
-CCAGCCTCTGTCTTTCCGCATTGCAGGTGGTGCTGGCGTGGCCTCCTTTC
-TCTCACTTGCACCTGTGCCTCCCACCAAAGGACCTCCCTTTGCTTCTGGA
-GAGTCTGTACAGTGGTTATCTGCAGCTGCCCCTGTGCCTCTGTGCTGTCC
-ATGTGGGTCTGTTGGAGGATCTGTTGGGATTTTCAGGCAGAGATCATATT
-TTTCCTTTGCCCTCAGGCACTGCCCAGGCATGGCAAGGCGTGGCGCTGTT
-ACCACTGGGCAGAGATGGAGGGAATGCAGCAGAGGTAGACAGGACACCTG
-GGCAGGGCGAACTCAAGCTGGACATGCTGTCGGGATGCCTGGGTGGGAAC
-ACTGTGCTCCCAGACTCAGGTCAGCGTCAGAGGCCGGCCAGGAGCTGGAC
-GGGAGAGCCAGTCAGGGCAACACCAGCGTTTCAGGCTTTCAGCGCCATCG
-GGGCTCCAGCGGCAGAGCGGGTCCCCCATGGGGATCGGCTGCAGTGGGTG
-GGCTCAGCCAAGGCCTGTTTGATCCATTCACCCAGGCTTTTAGAACCTGC
-TAGGTGAGGGACCCATCCCATCACGTCCGAGCGCCCCGGAGCCCTGTGCT
-GTGCTCTGAGTCCGTTTGCTGGACAGTGAAGGATGAGGTGGTTCAGCCAA
-GGTCACTGTGGACAAATCCGCCAGGCAGGTGGCAAGTTGGGGGAGGTTAT
-TTGCAAAATCTGGAATAAATACACAATCCATAGCTAGAGAAAGAAAAAGA
-AAACTTATAAAAATAGGAGCTTAAATGGAGAAAGGGGGGAAGCGATGTAA
-AAAGGCTTTGTAAGGGAGAGGAAGCCAACACCAGATGCATGTTCATTACG
-GGAGAAATGGGAGTGATGTCTCCAGGGACTTCTCCAGGGTCCCACTCACC
-TGGCAGGTGCCATAGAGCTAGGTGATGTGGGTGGTGCTGAGGACAGAGGT
-GGGAGGACACTTGGACTGCTGGCAGGAATGGACTCTGTGGTCCTGGGAGC
-TGTGGCATCCCTTCCCCACCCCTGTAGCCCCGGAGCACCTGGACCACCTC
-TCCCTGCAGAGCGGACAGGCACTTCCTCAGATATCTTGCAGGGGAAAGGT
-CTTACAGGACTTAATGGAGCACACAGATCTCAAAGGCAGTGTTGCAAGCA
-TGAGCTTTAGATAAGCTGATTATTACAAATATAAAATACACATACGGAAA
-ACAACAACACATATTTTAGCAAGAGCCCTTAAATAAACTAAAGATGTGTG
-TTAAAACAGTAACATGGTTTCCTGACACTGGGTGGCGAGGATGGAGGGCA
-ATGCAGAACAAGTAAGTAAATAAAAACAGACTGTGTGGAACAAGATGCTT
-GTGTGCCCACACCTGTGTGTAATCTGTATAGTACCCTCCCTTTAAGTACA
-TTTTAATAAAGATTAGTTCCCTTGAGGTGGTGCAGACAAAATTTGACTGA
-CCAATTTTTAAAAACTACATAGAAACCATGACATGTGAAACATTTCAGGA
-ACTCATCACTGGGGTAAAGGGAACCTTTAATCACtagagttggttccatt
-catcaagtgcagtgcaccagatgtcactgagaaattcacaccacctcctc
-cgtaactgttgtaccaaagctgcaaagcaggtttcatttccaagtttaag
-atgggactgctgtggttcaaagagggaaaacgactctcctgggattatca
-gtgtacctgttagggctcctgactcctcaagtctcctgGGATTATCAGTG
-TACCTGTTAGCGCTCCTGACTCCTCAAGTCTCCCAGGATTATCAGTGTAC
-CTGTTAGGGCTCCTGACTCTTCAATTCTCCCAGGATTATCAGTGTACCTG
-TTAGGGCTCCTGATTTCAATTTACTAAAATCTTGAAAAAAACCTGACAAT
-CTGGGAATGTATTATCTTCAATAAGTAAAATATGCAGGCAGGATAAACAA
-CTTCAGGACTGGTTTGATCCAGCAGCTCAACTTTCATAAAGTTTCGTCTG
-CTATCTTTCTCTCTCCCAGAAACTCCCAGGGCTATGTAATAGTTCTTCAC
-CCAAACCCAGTTACACAGATTTGGGCCAACCAGGGCTCTGTGATACCTGG
-ATGAACACGGCCAATTTCACCTACACAGCTTGTTGGGCTCCCAGTGGGGA
-GGGAGACTGTAGGATCCCCCACATGTCCGCTACAGGCCTTGGTTCGAGCC
-CAGGTCCGGGTGACTCACCTTTTACAACTCTGAGTTTTACACGTGGGTGT
-TGCTCCTTCCTCACTGGTCTCTGGACTCAGTTCAGGCTGCATTTATCTCT
-CTTATTCCTTCCTCCCTCTCCCCTCCGCAGTGCCCAGGCGCGCAGGTATC
-CCTCATGCATCAGACCTACACAAGCAGAGCCTGGTGACTAAATAAATCAT
-AAAATGAATCGTCGAGGAGTTTTGATGAGGCAATTAGGAAATGTTGAAAG
-TGGAGAGAGGGGATCGATGAGCAGATAGACTTCAATAGCACATCGAAGAC
-TATAGAAGAGAAAATAATTGGAAGCACCATTTTGAACCTGGCGATTTTGG
-CATCCTGTTATGTCTCAGAGAGGGTAAGAAAGACACCAGGGGCCCCGTGC
-GTTCAGGTCCTCTGCAAGTCACTAGCTGACAAAGTCAATGGTTTGGAACC
-CGGCACGACAGCCAGTCCTTCAAAGACTCAGGCCTGGCTCACACCCCGCG
-CAGCGTGTTTGACAGGGAACCAAAGTGAATTTTAAAGCAAACAGGCCCGA
-GTCGCAAACAATCTCCCCTTGTTTTCGGCACAATTGATGTCCACTAATTT
-CAGGCTTGTTTGGAAGTGTCGGCTCACGCAGAGATTAACTGCCTTTTGAA
-AGGTTGGGGAGGATGGTGCCTGAGTGCTTCTTCATTCTTCCCTTCTTGAC
-ACGAGGGTTAATGCTGGCATAATTAAAGTCCGCTGCCACAGTCAAAGGGA
-ATAAACACCAAACACCTCCAGAGAGAAATTATCCAGTCCAGAGCCATTCT
-TGTCACCCTGGTCCGAGGTAGCTCTCAAAAGAGACTAACAACAggccagc
-cacagtggctcacacctgtaattccagcactttgggaaaccaaggtgggc
-agatcacctgaggtcaggagttcgagaccatcctggccaacatggtgaaa
-ccccatctctacaaaaatacaaaaatttgctaggcgtgatggtgggtgac
-tgtaatcccagctactcagaaggctggggcaggagaattgcttgaaccca
-ggaggcagaggttgcagtgagccaagatcgcaccatcgcactccggcctg
-ggtgacacagggacgcaagactccatctcaaaaaaaaaaaagaaaaaaga
-CACTAACAACAACAtttttctctttctagaaacagaggcttactgttgtc
-caggctggagtgcagtggctgttcccaggtgtgatcacagcgcgctacag
-cctccaaatcctggactccagagaccctcccgccccaggctcctgagtag
-ctgggactacaggtatgcgccgctgccctcagcTTCATAGCAAACTTTTT
-AGATGGAGGTTGTTTTTGTTTTTGTTTTAGAAATATGGAAGACACTGAAA
-TCTTTAAAGAGAAGAAAATGCTCTTCAGGTGCTGGGGATTGAGTTATTTA
-CGTCAAGGCACATGACTATACCCGGCCACGGGAGGAGGATGGCGAGTCGC
-GCTTGCAAATGTTTGCTCACCCGGCACGTGTCACgagtgtgcgctccgcg
-cccatcacctttccaggcgctgaggatccggtcgtgaacaaacccacaac
-aatccctgcccttaaggagcttggattctggtggaaacagacaggacata
-tgtccaacaagcatttgataaagtgacacaccaaacagctgatggtcata
-aggttctcaggagaacagagcaggctgagctggagtctttgatggggttg
-gggggagcgattgaaaaggtgcatttggcctaaaactgaagaggatgaga
-agggagctcgaaccttgaaggagggagtgccgggtggggccggggacact
-gagaaggctgctcagctggggagggggattgggaaggaaggaggaggagg
-aggactgagaggaccaaggtgagggagctccagcaagcagggctgagcag
-ggtcaaggggagggctggcgcttctgctccgccctgggagcagtgagaaa
-cggaggcctgggagggtgctgagcagaggagggtgtggctggtttctgaa
-ggggccgcagcagggtggaacccactgcagccatacagtccggagccccg
-agggggcttgagccagggcagggcagtggggcggggagaagggtcagacc
-ctgggtgcatttcacaggcaggtctgcaagcactgatgagagtgtggtgt
-ggccagaagaggaggtgagatggctggaaggttctggtccctggagagga
-agaacacaggtgttattctagacgtagtgctgcaggtgttgtggttctgt
-ggggtcaggggctggtttgggcactcctgcttacgcctcctggtgaacat
-ctaggtggaggtggcagtgggaaggtgggacatcctcagggaagatgttt
-gggtatgaaatTTCTGGGTCCAGGGAACCAGCAGAATGTTCTAGAAGAGG
-GACAGAACTGGTCCAAAATGGTGTTGGGCCACATGGGCCTTCAAGCCAGC
-CCCGTGCTTTGTGCGTGCGCTGGGGGAATCCGCCTGTCACCAGGCTTCTG
-CCCAAATGGACTGGGCCCAGTGGTTGGGGTCTGTGTCTCTCTGGCCCCAG
-CTGTAGGTCTCCTGGGCTGGACTGGTCACATTTGCCTCTGTGGTCACATT
-TGCCCTGTCCCTGCCCTCCACAGAACCACAGGGGCCTCAGCTACCCAGGC
-CTGGGGCGAGTGGCTCACACTAGGGCTGGCACTGGTGATGTCTCAGCAGC
-CACCTGGCACGGGGTCCCTTCAGCAGAGAAGGGTGCTGGGTGGCCACCCT
-CCTGCTGCTGTGTGTATACTTTACACATGCTTGCTCcacacactcacaca
-cacacacagggaacacacatgtacctcacagcgctcacatatgctaacgc
-acattcacacgcaatcacacccacacatgctctcacatgcaaacacaggc
-tacagcccacacactcacgctcacacacacaccagtgcacacacacacac
-acacCTGCTGAAGAGTTTGCGACAGGGCTGACTCTGTTCTTCCTGACAAC
-TGGCAGTGACCGGCCCTTACTCTCTGTCCGCTCCTGACCCACGTGTCTGT
-CCAGATGCTATTCTTCTCCATGTGTCTGCGTCCCACGGCCCCTTCAAGGT
-GAAGCCAGCGCGGCAGTAGCCTGCTGTCCACTAGATAAAGACACCAGATT
-GTCCCACCAGCTTTGTCTGGCCAACCCCGCCCCAGGCTCCATCCAGGGAA
-ATGCCCAAGGCCCTGGCACACACCCTGAGATGCAGGCGGGACTCCAGGGA
-CAGGGACCACTCTAGGACAGGCTGCAGCTCGATGCTCACACCTGCAGGCT
-GACGCCAAACCCCAGGATGAAAAATTAGCCTTCAGTGGTGATTTCAGCAG
-ATTGAGTGTGCCACATTTAGGACTCCCTTTATCCCTAAACCTCCTCATTC
-TCCAGTCAGGAGCCACTGCCCCACAAGCTGCCCCCTGGAACTCACAGCAG
-GGGACCCAGCGATGGATGGGAGCATTAGGGAAAGGCCAGGTAGCAGCATT
-TCATTTGAGACTCTTCCTGTAATTCCGCGGTTTTTAAAttttatttattt
-ttcttaccttgttgcacttgtcacagcttctaggataacgtggtgaggaa
-aaaccagctcgcctccttcccagtctcggggggaagcgagaagttcccat
-gtttctcactgtgttcgctgtaggatttttacaggtgcactttgtcaagt
-caattcccctgtattcctaacctgacaaaagctttcatcataaacgcggc
-tgttgcatcttatcgggtgctttctctgcatcggtgggtgtccttgcggg
-atgtctcttcagtttgctgatgtggtggccccactgatttatttttgaac
-attggaccacccttgcacacctggaagaaattttgcttagcctcggtgcg
-taattctatatgtcgttggattcaatttgctaatgttttgttgaagattt
-tcacatcgaagttcatgagagatatcagccctcagttctttccttttatg
-cactgacatggtctgactttgctatcaaatcatgctaatttttacttaaa
-ataaatGAGTGTAggccaggcgcagtggctcatgcctgtaatcccaacac
-tttgggaggctgaggcgggtggatcacgaggtcaggagttcaagaccagc
-ctggccaacgtagtgaaaccccgtctctaataaaaatacaaaaaaaaaaa
-attcgccaggcgtggtggtgggcccctgtaatcccagctactccagaggc
-tgaggcaggagaatcacttgaacctgggaggtggaggttgcagtgagccg
-agatcgcgccattgcactcaagtctgggtgacagtgagagactccatctc
-aggaaaaaaaaaatcaaaaTACATGAGTGTAAATCACAGTTGAGTGTGTC
-TGAGTTTCAACAAGAAAGGCAAGGCCAGCTTTAATAATGCTTTAATGGGC
-AAGAAGCCATGGGCAAATGCGTACATCTTCCAACCAGTGACATCGGGACC
-TGCAGAAATGATGTCATCACCATCACTGTCATCACTGTCATCGTTGTCAA
-CACTGATGATCATCCTAGCTCTGGGGCAGCGTATGAGCCAGAACTCTGCA
-CACGTGAATACCTGTTTTCCCGTCTGTACTGGTGTTGTCTTGAATGTCTG
-GTGAATCCTTGCTATGCCAGGATTTAAATCCGAATCTGTCCAAGGTGTTA
-ATACCTGTCTTTTGCTGCAACAAGTCTGCCAGTTACAGGTGAGGAGTTAG
-TCACCTGTAAACCTCTAAGAAGCTTGGAATAAACCCTTCTGCATAACTAA
-TTCTCAGCCCTAGCCAGACAGCCCTGCTTTAATTTCATGAATGCAAAGTC
-AGTACACCACAGTCGTTTCCAAGTCATAAACTCCTCGGAAAGGCCAGGCG
-GAGATCGGTTAATATGCCAGGCAAGGGGTGAGATATTCCCCCTCGATCGA
-AGGCCCCAGGAGCGAGCCAGCCTCACGGAGTTCACGTGCTTCGTGGGTGG
-TGGAATCCTGTTGTACAGCTGTCCCCGAGGGAGTGAGCAACGTCTTCTGT
-CCGCTAAGAAAGAGCTTCACCTTTAGAGTCATCCTGTTACTGGGAAACAG
-CAGCTTTTCTTAGAGGGAAAAGCAAAGTCCTGCAATTTGGTTTCTCTCTG
-GTGTTGGGTCTCACTGGCCAAGGAAGGAGGCCAAGGCCCAGCCCGATAGA
-TGGTGTCTCAGTGGGCGGCCTGGCCAGTGGTGTTAGATCGCTGACAGTCA
-TTCACATTTCAGAAGAGCAACTGGAGGCGGCACGGCACATATGTGCGTGG
-ACTCAGCAAATTTCCCCTCCCGTGTGCGTGCCCTGCTGTGTAGGCTGCGG
-GCGGCCCGGTCAGGACACGGGAAGTAGCTGTGTCTCCAAACTGTTGTCTG
-CAGGAGGACAGGACCAATGCCTCAGGCCGCTCCTCTCGGGCCTGGTTTTA
-TTCATAAAATGAGAAGGCTGGGCAAATCCTGTTTCCCAAAGCATGGCTGC
-TGAACGCGAGGGTCACCGGCCTCCTCTCGCTCCTCTCACTGCCTGCCGCG
-GGACTGCCCCTTGCTAATGTGTTTCTGTAAACGACCTTACCTCGATGCAC
-GTTTTAAATTCAGGTGTCTTAAGCACCCATGGCCCTGGCATGATGTTTGG
-CGTCCTATTTAGATTTACGCAACACAGATTAAAGTTATAGGGACACAAAA
-CTTAAGACCAAACAACCCAGGGAAGAAGAAGGTTCTGAGCGTCAGCCACT
-CCTCTCATGGTCGCTGGGGCCGGCACAGGGGGGCTAGGCCCTGGAGATGC
-TATTTCCTGTGGTCCCCGGGGCCGACACACGGGGGCTAGGCCCTCCAGAT
-GCTATTTCTTGCCCCCACAGCTACGGACAGGGGCTCTTGCCCACTTTGCT
-CATGGGACTGTGGAAGAGGACTTGAGAAGGGGACCAGGGGCCCCTCCATG
-TGCTGGGAGGGGGAGGAGCCCGCCAGCTCCGTGCCTTGTGGAGCAGGAGG
-CCAGTGACGATGCGTGGAAATATGGGCCCATGTCCCCTGGATCATTCAGG
-CTCTGCGCTCGGGCCACGGAAACCACAAGTGGAGGTGGCAGGTCCGAGCA
-TTCGGCCCCCGGCATCCACAGAGGAAGGCAGCTCCTTCCTTCTGGGTTGG
-TGGAGATGCTCAGGGTCCCTACAGACAGAGGGTTCCCAAGTATGTGCTGA
-AGTGGGGAAGCCTAAGAAAAGCTTTTTGAAAATGCCTGCAGGCCTGTAGG
-GTGTTCGCATCTGAGAGGCCCTTTGGAAGCTAATGACCTTGTGCAggcag
-gggcaggggcaggggcaggggcaggggcagggccaggggtaggggcaggg
-gctggggctggagcaggtgttggggcaggggcaggggtcggggctgggga
-aaagccaggggcaggggcaggggtcggggctgaggcaggggctggggctg
-gAGGCCTTCACCTTATCCCTGCCCAGACATCCTCAGGGAGAAAGCTCACT
-TCCTCTTACCTTCAAGGCCGTGTGAGGTCTGTATTCCACTCTGAAACATG
-AGCTTATGATAAAATGACTTCTGACCTTATTTACCTGTTCCTGGATGCTG
-GCCTCAGGGGGTTGTGCAGCCTACCTGGGCCCTGGCACTGCAGCCACATG
-TCCCTAAGAGCCTGCCCAGTCCCCAGGGTTCTTCAGTGTCCGTCTGAcat
-caccagcattacctctgggcactgcctgacccaagcgccctccccagacc
-tttggaattggagtctccaggggcagggcctaggtgttgtatttttctga
-gctccTGGGCAGGGCTCTGGTCGGTAAATGGAAAAACAGCTGCCTGATGG
-GGCCAGGGGCTCTCCCTGGAGTCTCTTTGGCTGCCTCGCCTGGTCTGATC
-CCATAATTAACAATGCCCTGTGTGCCAACCCCTCCAGCAGGTCGCCAGCC
-CCTCTGGGCACCCACAGGGAATGCATCCCCGGGAAGATGGGAAAGAGGAG
-GCCCCCGGTGAAGACTCCAAATAACAAAAACACACACAGGGTGACAAGGC
-CGAGTAATTATCACACAGCCTCACCAGGCGCTTTGATCTCCTAATCAATT
-CTTCTGAGCGTCCCACATGGCTCTCTCTGCGTTTCataatataatttaat
-ttttatGTAGAGATTTTCCTGAAGGGCATAAATGCATTTTCACTTTCTGC
-CCCAGTAATTCAGTTTTAAACCAAGCATAAAAACTCAATAAACAGCAAAG
-AGCTAACTGCATATGCCAGGCCCGTGACCTTTCACTGTTACTGTTGAATA
-AGTAAGAAAGCGGGTAGAAATCACATATGAAGTCCACCGAAGATTTTCCA
-TTGTCTGTTAGAAAATCAGCCGGAATTGACAATAATTTGATAGTTCATGC
-TTGAGAGAGCTCCCGATTGGGAATGTGGGGCCCGGAGATTGGTTGGCAGC
-GGCAATCATTGGAGATCGGGCTCTCCCTGACCTTGAAACCGTCCTCCTCG
-CCGAGACTCCGTAATAAATGCAGAGAGGCTCTGCGCCCCGAGTCCTCACC
-TCCGATAAGCAGGGGTGAAAATGAAAATTCACGGAGATGCCGTGTACGTA
-GGTTTTTCAATTAGTTTCTCAAATATTGCCTAAGCTGGGGGACCCTGGCG
-CTGGAGTTGTGCACAGCCCGTGAGATGCCCCAGAAGAACAAAGGACAATT
-ACTGCAGGGATCTGAGCAAAACCAGCCTCGTTCGTGGGCCTATGGTATGA
-TCTCTTGTGGGTGATTTGAGCTGGAATTCCCTTGATCCCTGGCACAGAGG
-ACGGGCACCTTCGGTTTGAATCGGACTCAGAAGTCTCAAGTCCTTTCCCC
-ACACAGAGCCCCCAACTGGAGGCTTTGCTGAGCTTCTGTGTGTCCCGTGG
-GAGGTGCTCACCTTTGCAGCTGCGGCCCCAGGTGTGCACACACTGAACAT
-TGGGAAGGGCTTCTTCTACGGAGCCAAAGATGCTCGCTCCCCACCATTTC
-CTGGGGCTCACAGAAGCACATCTGCCTAGGTATGCAGTGGGCCATGTCTT
-AGGGCCTAGGTGTGCAGTGGGCCATGTCTTAGGGCCTAGGTGTGCGGTGG
-GCCATGTCATACGGCCTAGGTGTGCGGTGGGCCGTGTCATACGGCCTAGG
-TGTGGGGTGGGCCGTGTCTTACGGCCTAGGTGTGCGGTGGGCCGTGTCTT
-ATGGCCTAGGTGTGCGGTGGGGTGTGTCATACGGCCTAGGTGTGTGGTGG
-GCTGTGTCATACGGCCTAGGTGTACAGTGGGGTGTGTCATACAGCCTAGG
-TGTGCGGTGGGCTGTGTCTTATGGCCTAGGTGTGCGGTGGGCTGTGTCTT
-ACGGCCTAGGTGTGCGGTGGGCTGTGTCTTACGGCCTAGGTGTGCAGTGG
-GCTGTGTCTTATGGCCTAGGTGTGCGGTGGGCTGCtctctgggctgctgg
-cttcttaggctcccagcctggttacctgagacaggaagaagccacagggg
-gctcccacccagtcagtccagctcctgagacactcagccaggctgccttt
-ccctttccaccttttggggtcttcccaagtttgctttgttaaaatgccca
-ggggttttcattgtgctcagcaggaaaggagagtgaaaagcagtctaTCT
-TTTGTCATTGACAATTTTAAACAAGAGATGAAATGAGAAACTCAGCCAAG
-CCCGCTTTCAGCGGCCTGCGGTGCACTGGAAATTGCTGTGTGTCTCTTTG
-CTCCCTGGAGGCCTGGGCTGCAGCCCTGGAATTCCTTAGTCCTGGAGAGC
-ATCTGCCTGCGGGGGCCACGCTCAGGAACTGCGTCTGCTTTCCCAGGGGA
-AGGAGCCTGTCCTGAGAACCAAGCCCCGCGGGTTGCGACACACCGTCCTG
-TGTTGCTCAGAGAATCTAGGTCTGACAGGGAGCGTGTCCTAATCTGTCCC
-ATGAGCAGATTCCTGGAGCAATCACTGGAGAGAAGGCGTGGGTTTCTTCC
-AGGAATCACACTGGCTTCAGTGCCAGGCAGCTCCCTGGTGTGCACAGCGT
-GAGAGGAACTGCCTGGGCTCTGTAGAGCTGCTGGAGAAACATTCCAGGAA
-GGAGGGCGAGGAGGCACAACAGCCACTTTGTGTGtttgtcactttgatgc
-ctgtgcaggggtgtcgtattgggtgtcctttgtctttcctggtgactgat
-gaacccctgtccatgtgtctacggacatttgggttccctccttcagaaag
-cacctgttcaagtccttgccccatttgtctatcaggttacgtggcattta
-ccaatgtgtaagatgttgatttaaaaaatatagatcctggttaggaggcc
-tttgttggatatttgtatcacagacatctttgctctgtgggtatcctttt
-atttgtaggtgatgcacaggcgttatttgtctttacatagttcaatatct
-tctcatatgtggctcaagcctttgtattccctgtaaggaatcgtcaccta
-gttcaattcatggacatgttttttcttctgcatttcttctggaagtgatt
-tttgttcatggtgtgagagagcttactttcagtatgaatagtcaattgcc
-tctgcatccagattccctgttgcaatgcattgtcaccctgggcatgggtc
-tgatcctacagacgtggacctgctccAAGCTTTCCACCTATTAGGGCATC
-AACATGTCCTTCCTGCCTTACCTCAGCACGCCCTTTCTTCCATACCACAC
-TTTCCTTGTAGGCCTGGATATCAGAGAAGGTGGTTAGAACAGtgtggatt
-cagaatatctgagacaagtctcagttaatttagaaagtttattttgccaa
-ggtggagggtgcgtgcccatgacacagactcaggaggtcctgacaacaca
-tgcccaaggtggtcagggcacagcttggttttatacattttaaggagaca
-tgagacatcagtcaatatatgcaagaagtgcattggtcccacccagaaag
-gtggggacaactccacgcagagagggggcttccacgtcacaggtaggtga
-cagacagatggctgcattcttttgagtttctactaagcctctcccgagga
-ggcaatcagaatatgcatctatctcagtgagcagaaggatgcttggaata
-gaatgggaggcaggattgtcaagttctcagcttgacttttcccttagcat
-agtaattttggggccccaagattttccttttacaATAGCCAATCTGCTTT
-ACTTAGTTCTGGGTTAATCTTCACAGCCTTACTGATAACTCTCATTCATA
-CTCCAAGAATTAAAATTCTGGAATGTTCTCAGTCAAGATGGACTCGGCTG
-TCAGACTATCTAATATAAACATTAAGACTTATGTTGTGCACAGGGCCTGG
-GCTGGGGTTGGAACCACAGCCAGCCTTGAAGTTTCATGATGGGGCCCTTG
-AAGACCTCTGGGTCCCACTGCTGCAGGGGTTTCCTGGGATGGAGGCATCT
-CACACGGGCGCCTGTGGTTCTCAGCTGCGGGGAAAAGCGTGGCCCTGGCT
-GAGGGAGGGCTGAGAAACCTGCCCAGGGTCTCTCTAGCTTCCGCCCAAGC
-CTGTCATTTTCCTGCAGTTCCTGTTACTGGACTCCTGTCCAGTTCCTGAC
-tcctgttactggagtcaacctttaccatgatttatgttgagctggcttag
-tccttccagcaaatcaccagaccaggaggtggtcacagagccttcaaaca
-cctgcctcttctatgttgctttggctgctcttggcttttgcatatccaca
-taagttttagaatgagtttgctcagtttccacacagacatgttgcctgaa
-ttctgacagggatgagttgactatgagccatggactaatgaagggaagaa
-gttgcgttttcccaacatttgatcttccaatccatgaacatgtcatactt
-ctccatttacttaaatctttcttaatttctttcacagtattttgtactgt
-ttagtgtaaacgtcttacatatttttgttagatactcctTGTAGGAAATT
-ATGAAATACATGACAAGTTTGGATTTCACCTTGGAAACTGTGAGGTTTCA
-TCACTTTCCAAAGCTCTTTTGGGAAAAGAAAAACAAGATACTTAAAGGCT
-ACTAACCTAAAACACTCTCCTAAGGACACACATGCAAGAATATTTATTCT
-TGTTTACAAAAAAATTCCTGTTTACAAAAATGATGGTGATTTAAAAACTG
-AGAAAGAAAACCTAAGAGAATGGGTAAATTAAAGACTGTATACTGATATA
-ATGGGATGCTGTGTATCACTATTTCataggatttggctcagtgtccccac
-ccaaatctcatctagaattgtaatccgcagggttggaggagggactgggt
-ggaagttgactggatcataggggctgacttctcccttgctgttcttatga
-tagcgagtgagttctcacaaggtctggttgtttgaaagtgtgtagcactt
-cccccttgtctctctctctctctctctctctgtctctctctcctgtcacc
-atgtgaagatgtgcttgcttcccctttgccttctgccatgattgtaagtt
-tcctgaggctccccagccatgctccctgtacagcctgtggaactgtgagt
-tcattaaacctcttttctttataaattacctagcctcaggtctttcttta
-tagcagtgcaagaacagactcatacaCTATTAAAATAAATGATTAAATAA
-ACACCTATAATGTTGAATGAAAAAACAAAGTTCCGAGGAGGTTATGACTG
-ATTTTTGAAATGTAAAGCACTATAATATACTATAAATTGTTATAGACATG
-TAGCACAGTATAAAACTCAAGAGTTGGTGAATGCAAGCCAACTTTGCCAT
-AGTTACTCACTCTTTAAAAAGAGCTTTCCTAGGAAGATTTGGATACAAAT
-ATGACTAAATGTTGGCATGTTGAATGTAGTGGTGGACATGGAAGTACTTG
-TTATTTTTTTCTTGGTACTCTTTTACATGTTTGAAATATGTCATCATTTT
-TTTTTTGAAAAACCTGACCAATGCTGCAAACAGAACCATTAATTCAATTT
-CTAGAGGTTTCCACTCTTGCTTTCTCTCGTCGTCTTCTCTTTTATCATCT
-CAGGCCAAGTGTCAAGGCTGTCATCTTTATCCTGATCTATTCTGAAATTG
-CTTTTCTGGAAGTACTAAGCTCTACATCCTGAATGGATACATGGAGGCCG
-TGAAGTAAGCAGGCAGAATCGCCTATTTGTGGGGGCAAATGGAAGGAAAG
-TGGACTGAGTTCAGAGAGGACTTTCTCAAGAGGGTTTATTAAATAATATT
-CACCAAAGGCAACTGTGGTCAGGCTCAGCTTGGCACAGGGACAGGGGATG
-AGGCGGTAACACCCAGGCTTTGTCTTCCAGACACTCTCAGTCAAGGTAAG
-TGTCACCTGCCAGCTTCCACTCCAAAAACCAGCCTCCATCTGGCTGCCCA
-TGGTATTTTCAGTGCCTTCTTCCTTTCAGTGACCATGGCTCAACATCCAC
-CAGCAGGTGCAGtgatgaaaattctttgcttcccccattgttagccatgc
-tcctgaaccttctcctaggcctatgtgggcatttctttacgaaatccagg
-tttagcaagagccctgctcaatgagtgtatcccccaccttcaatatccgt
-tcaccctctgtatctgctcaggttcctcatcatccaGGGTAAGGCTCCAG
-TGCCATCCATGCTGTCCAcactccagttccatccatcccgtccacacccc
-agttccatccatcccatccacaccccagtgcaatccatcctgtccacact
-ccagttccatccattcgtccacattccagttccatccatcccatctgcac
-tccagttccatccattccgtccacactccagtgcaatccatcccttccac
-aatccagttctgtccattccgtccacaccccagtgcaatccatcccgccc
-acactccagttccatcccttcgtccacattccagttccatccttctcgtc
-cacactccagttccatccatctcgtccacactccagttccatccatccca
-tccacaccccagtgcaatccatcccgtccacaccccagttccatccatcc
-catacacaccccagtgccatccatcccgtccATACTACAGTACCAGGCAT
-CCTGTCCACCCTTCAGTGCCATCCATTCCATCCCCGTGCCTCCCCTGGCC
-ACAGATGAGGGCTTTTCCCAGCACTTTTTCCCTCCATGGTCACAAGCTGC
-TGCTTTTTTCCTGAAAGAAAAacaatcctaaattttgggttaatcatctc
-ctttttttttttttacacaaaattgtttgacacctgtaactcctatccct
-aaataatatattatttacatttggcttgttttgaacttcatataaatgaa
-atcatactgagtgtatttttctatgacttgtttttcccccaaataacact
-aacacatttttgagaatcatcaatgtttgatatttgtagctaaaatacat
-taaattttacttcaatattatattttatGGAGGTGCTATACATGACTCtg
-tagagaccaagggaaaacttatcctttgtcctctgaaaggaccctgaaaa
-tcaactggcaaaatgcagagtagtaggaaaaaacacctacgaaatttatt
-gtaatgtccatagcacaggggaattgcaggagaatgattactcaGAAGGT
-GATGCACCTTCCTCCATAGATGAAAGAGagagggaagatagatgattttt
-agggagattcaatgggcttggagagcatacaccggtcttgaacaaagtct
-gttgggccccagatcaggtgtgttgacaaaagtcagtctttctgtaacat
-gagtcaaggtcatgaacactcaggctgttgtgtttccctttggcaggtcc
-tgtttgtaggtagataagggaacttcaggcaacagcctcatcctgtgctt
-caggagagacagaagatcctgggagtcgggaggaaagtcagagagacctt
-gaggctgcttcatgtcagagcaagcgccgtgtttccgggAAACAacttat
-tctttctgctgttgctgggtgtggacattgatttcagcttttttggtccc
-atgaaacacactgctgtgtacattcttgtacatgtctctagttgcacata
-cgagatcttctagagtatagactaacaggtggaaatgctggattatagga
-cacgaatgtgtccagttgcaccagctaatgccCGAATGAcatttttgtac
-tgaactttcttttctttttctttctggtatgtggaatgtttgcactttct
-tggtacaaatctactgtcaatcatgtgttttgcaattattctgtccccct
-ttgcaacatacttttttcagtttccccacggttgcagaacagtgtttctc
-aattttaatgtagttaaaatcatcagtgtattgtgtcctagtttgtactt
-cttgtgtcttgtttaagaaatctctccccatcccacaggcattaaaatat
-tttcctgtattgacttacaaaacttgtgactttatctttcacatcttagc
-ctttaatccaagttgaattaatttttgtatatggtggaaattgggatcaa
-atttcattttttacactgagaataaccagcaccatttattcaaaCATCTA
-AGTGACAATTCTACTTCTTTCTTTTATTAAGCTATGGTACACAATTCTGT
-TTCCAGTCTCAATCTGTCCtattttattttattttattttattttatttt
-attttattttatattttatttttgagacagagtctccctctgtcacctag
-gctggagtgcagtggtgcgatcttggctcactgcagcctctgcctcccag
-gttcaagcgattctcctgcctcagccttctgagtagctgggattacaggc
-atgcaccaccactcccagctaatttttgtatttttagtagagacagggtt
-tctccatgttggccaggctggtctcgaactcctgacctgaggtgatccag
-ctgccttggcctcccaaagtgctgggattacaggcgtgagctaccacgcc
-tgactTCTGTCCCATTTTAAATGCAGTAGTTAGTTCAATGCTTCTTATCa
-aaaaagaaaaattaaaaataaaggaagaagaaaaaaaggaccaaaggaaa
-ggaggaaaggagagagggagagaaaaacaaagaaaaagaaaaGATGGGAT
-TTTTACTAGAATTGAATTAATTTCCCtctattagaattttactgattttc
-tcatttatcttgaagggagtcaatgtctttaaaaaaattatatatatata
-tatatatatatatatatatatatatatatatatggccaggcgcagcggct
-cacgcctgtaatcccagcattttgggaggctgaggcagtcagatcacctg
-aggtcaggggtttgagaccagcctggccaacacagtgaaaccccatctct
-actaaaaacacaatcaggcagacgtggtggtgggcacctgtaatcccagc
-tactcgggaagctgaggcaggagagttgcttgaagccaggaggcagaggt
-tgcagtgagctgagatcatgccattgcactccagcctgggaaacagagca
-agactccgtctcaaaataaaataaaataaaataaaaataaatgtgcagtt
-cacacatagactacatctctacaaaatgtcaggccttatttaattttgtc
-tgagacttttgtgattttccacaaaaatgtgttctatactttgtctttga
-ttgattacttgcactttacgttttttgaccttattgtaaatattatATCt
-tttattattcaaatgttgaatgttatcaggtaatttaagtgaatccattc
-gggaaatcatatgattttgctcctttaatttcttactatggagaaataca
-taaactgatttctattgttaagccgccctctcattcctggggtaaactca
-actcggtggcaagagagatttctttctccatgttgttgcaatccttttgc
-tattactgagatctgtgtgtctgtatttatggatgagattgtccctttta
-tacctttttcataatgGAAGTGTCTTCTTTGACATTAATGCTATTCTACT
-ATtgtatcagtctgttttcacactgctgaaaaagacatacccgagactgg
-gtaatttataaacaaaaagaggtttcacatgttctcactcataagtggga
-gttgaacagtgagaacatagggacacagggaggggggaacatcacacact
-ggggcctgttgggggacaaggggagggagagcattaggagaaatacgtaa
-tacatgtggggcttaaaacctagatgatgggctgatgggtacagcaaacc
-accatggcacgtgtatgcctatgtaacaaacctgcacattctgcacatgt
-atcccaggacttaaagtaccataaaaaataataaaataaaacaaaaagaa
-aaagggatttaatggactcgcagttccatgcggctagggaggcctcacaa
-tcatgcagaaggtgaaaggcacatcttacatggtggcaggcaagacagaa
-tgagaagcaagtgaaagggctttccccttataaaaccatcagacctcatg
-aaacttactcaatgagaacagcatgggggaaatggcccctatgattcaat
-tatctcccaccaggtccctcccacaacacgtggaaactgtgggactacaa
-ttcaacatgagatgtgggtgaggacacagccaaaccagatcaACTCTCTA
-GGTGCCTTAGTCCCTTAAAATGAGCTGGGAACAGTCACTGTGCATAGGAT
-GACACGTgtgtcttttgttccataaatgtttggtcaaacttgccttttaa
-aaagctgagtcttgtgctttctttatgaaaagaatttttatctctgattc
-aatttcatcaatggagaattgacccattactattatttttttcacctctg
-cttcagtcagatctgttgtctttcctgtgatttatctattcaacctaatt
-ttaaatgttattcatgtgaaatgattcacattattgtgttatctttttaa
-ttttggctgcttctaaagctatgacccttttcattcctaaaaatgtgtac
-tgtgggctgggcgtggtggctcacacctataatcccagcactttgggagg
-ctgaagcgggtggatcacctgaggacaggagttcgagaccagccttgcca
-acatggcaaaaccccatctctattaaaaatacaaaaaaaaataattagcc
-aggcgtggtggtgggcgtctgtaataatcccagctactccagaggctgag
-gcagcagaattgcttgaacctgggaggcagaggttgcagtgatctgagat
-cgcaccactgcacaccagcctgggcaacagagcgagactcaaaaaaaaaa
-atagtctgtactgtggtttagccttgtttccttgcccagtcttcatggga
-atttgtaattccatcgctcttctcaaagagccaccacgcaactcagttgg
-tcttcatttgcaagttcattgatttctatcttattttcttcatattactt
-tgattttcattcaattctatttctttatttatacactacttttttGGtta
-ttaatattttaagtaaatatcaacttatttaattatatgatattaaatta
-ttCTGTAGAAAAACATGCTCTTTCTTTCCATTTATTCCGACCATTGTTAT
-TTTATAAAGTTTGTTGGCTGGTACTTTTATGTATTTTTGAAttaaaatgc
-agtagaatggattttagaacatgtatgtacggttatgagtcttaagcaac
-cagaccatcaggatgcagggaagcccttccgtcgccacgaacgtctccct
-gacatcacccttcatagttacgccctcctcgctccctaatccattctcgc
-caccatcatcatccttctcaagagtgtcatacaaagagaagtttaggata
-tgtaagctttcaaggctggtttctttcactcagcataattcttttgaatt
-attccaagtcgttgtctgtatcgatatcgcacctgtcattccagctgagt
-ggcatgcattgcatgatgccagtgtgtgggttccaccgcgttccatcagg
-gtatccctgagtatggattacagttcatcaattcccttggtgacaggcat
-ttggattgttgccggtatcgggctatggatagagcttccataagcattat
-gcacatttttatatgaatatgcatttcatctcttttggataaacactcga
-aagaggtatcgaggggcacatgtctgtttaactttctaagaaactgcaaa
-ctgatttttaCtaggttggtgaaaaagtaattgtggtttttgcattaaaa
-gtacttttaatggcaaCATTTCattttataaaataaaaataatCTGAACA
-Aaaagaaaggaagaaagaaagaaagaaagaaagaagaaaaagaaagaaag
-aaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaa
-agaaagaaagagggagggaggaaggaaggaaggaaggaaagaaggCtttt
-ttttttttttttttttttttttttttttttttttttgagacagagactcg
-ccctgtcgcccaggctggagtgctacggcgcaatcttggctcactgcaac
-ctccgcttcccgggttcaagcaattctctgcctcagcctcccaagtagct
-gggattacaggtgcccaccaccatgcctagctagtttttgtatttttagt
-agagatggggtttcaccaacttggccaggctggtcttgaactcctgacct
-tgtgatctgcccacctcagcctcccaaagtgctagattacaggtgtgagc
-caccgcacccTGTGGAAGGAAGGacctttaatggcaaaaaccgcaattac
-ttttgcacagcctaaCCACAtggctatcccatgtcgccctctcagcagcc
-ccacatggtgattctaggcatatccttgagcactgagaaccagtggtttc
-catgttagccgtgcgcaccacgcgctgtggtacctcaacctggcttaact
-agcacttacctaatgcccaattatgtcgaacgtcttgtcaggtgcttttg
-tgccacctgcatacctgctttgctgaagtttctggtcaagtgttttgccc
-atttttaaattgtgttgtttgttttcttactgttgagcttccagcttttt
-ttatgtattctggacacaagtatttgtcagatatgtggtttgcaaatatc
-ttctcccggtctgtaacttgtcttttcacccacttaactgcatctttgaa
-aaagcaatagctattaatattgataattttccattttttcttatttttat
-ttgtatttattatacatatatatttgagacagagtctcgctctgtcacca
-tgttggagtgcagtggcatgatcttggctcactgtaacttctgcatcccg
-ggttcaagtgattctcctgcctcagccttacgagtagctgggattacagt
-tgagtgccaccacgcccggctaattcttgtatttttagtagagacggggt
-ttcaccatgttgtccaggatggtctcaatctcttgaccttgggatctgcc
-cgtctcagcctcccaaagtcctgggattacaggcgtgagccacaacacct
-ggcctccattgttcatttattgacttttaggaatcacgcttttggtgccg
-agtctaagtactttttgtttaacctggtcacaaaacttttctcccatatt
-ttattttaaaaatgttagttttacttttcacatttaggtctacggtgtat
-ttggggttaacttaggcagaaggtgtgaagcttagatcagagtttacttt
-ttggtaaatgaacatccaattgtcccaacatcttttgttgaaagactatt
-attttccatcgaatgcctttgtgccattgttatcgattggtcacatctct
-gtcgatctatttctgggctctctattctgttccattgatctacatgttta
-tctcttcaccaatatgacacaatcttcatgactgaagcccaaagcaagtc
-ttaataataaggtcgtaccattcctcctaattcatttttttgttcaaaat
-tgtttagcctattctacttgggttttttttttcctatgtaaattttagaa
-ccagcttccctatgtctacaaaaaaaatttttgctggaattttaatgact
-taatttatatctgtggataagttaaggggaaactgacattttcttatact
-gaatttttcaacttattaacacagtatatctcttcatttatgaggtcttc
-tttgattatttttatctgtattttctaattcttaccacaaagattctgta
-tgtttcattagattgattcctaagaatctccttttgagctattgtaaatg
-gcattgtttcattaatttcagacttcagttgttcattgctggtatataga
-aacataacttactcttattcttgttattttccttccacttgattttggtt
-tgttttctctcatctgtttctcatttcttaaagttaaagcttgtgtcatt
-gattttagacccttttccttcctaccgtgagtgaagaacactttacatag
-agaaaacatactctatgttccttcctggcaccactttagctatgttctat
-acatttggatatcacaaattttcatttttttttaggtcaggattttgttt
-tgttttgtttttttgagatggagtctcgctctgtcacccaggctggagtg
-cagtggtgcaatctcagctctctgcaacctccacctcccaggctcaaacg
-actctcctgcctcagcctcctgagtagctgggattacaggcacccaccac
-cacgcctggctaatttttttttgtatttttagcagagatggggtttcgct
-atgttgtccaggctggtcttgaactcctgacctccagtaatcctcccgcc
-tcggcctcccaaagtgctgggattacgtgtgtgagccacctcgcccagcc
-aggtcagaatatatgttaattcccattgaggctgtgtccgtgactcatgg
-attcctgaaagatgggttccttaatttccaaatgtttggatgttttcctg
-tcaactttctgttattgtcagtttaattacattacaaccggtataaagtc
-acactttttatgaattctgttttttaaagtttgttaaggtttgttttata
-atccaggatatggcctctcaggaatgcaccaggtgcacctgaaaagcaca
-tgtgtttgctcttgctgggcggcacgtcccgtaagtgctggttagggcca
-cttagccgatggtgttatcgggcctcttttggtctttccaacgttctgtc
-tcctggctctaccagtctctggaagggaaatgttgatgtgtccaattcta
-tctgtgaatttgtctgtttcctcttttagttctgtttattttgaagcgat
-gttatcaggcacatactcactgagcatcgttatgtcttcctggtgaacta
-acccccttatcactgtgcaatgtccctcttcatgcccagaactgttgttt
-acgctgaggtctcccttgtttgatgttgatataaccactctagctgtctt
-ttgatttacagtgagtttcttatagatgatgaccagctgggccaagcttc
-tttatctattctgacactgtccatcatttaattggtgtgtttaagccgtt
-tgcatttaacataactattgatgtgtttagttttaggtccaccatcttac
-tatttctttttcgtttttgtttgttccaactgttttcctttcctcttttt
-ctcttttccattcttttcctgGACTTTCCttttttttttttttttttttt
-ttttttgatggaatctcgcactgtcacccaggctgaagtgcaatggtgcc
-acctcagttcactgcaacctccgcctcctgggctcaagggattctcctgc
-ctcagcctcccaaatagctgggactacaggagcctgccaccacacctggc
-taatttttgtatttttagtagagatggggtttcaccatgttggccaggct
-ggtctcaaactcctgacctcagatgatcctcccacctcagcctcccaaag
-ttctgggattacaggcatgagccaGCTCTTTGtattcttatattgtatag
-tgtgtattagactgctttctgaattagcaaaatgtcttttggggatctgt
-tcatatcattttatttttcctctgatttatccatggaatgaattagattg
-ttgaatatcctgatattaaatcccatttatgtttctggaaaaaatactac
-gttgttcaattgttctattcctctgttatacttccatattctatttgcca
-tcccgatacgtagaattcctgacattcatgtcaacactggggctacaatg
-taatttactcttttgtacgatgttacagttacacttgctttgtccagtta
-cgcttgcttccaaaagtgagatcaggcaccgtttaccttttcctgtgaca
-cagtgtttgttcaccggcactgtaatgtccttgcctctgaagtcaagtgt
-aactcatctgtgaaaccgtttgTCATGATGCCTTATTGAAAGTGATGTTC
-TCGGACCAACTTTGTCATCCCCCTGCTTCCCCTTGGGCTGATGCTGGTGA
-TTTATAGTTGGCTGGGCAGTTGCTTCCTCTGTGGTCCAAATTTTATTTCC
-ATAAACATGCCGTTCTCATCGCGTAGTGCCTCAATTCACAGGCTCTGCCT
-TCCTCCAGCCTCCCGTGTGAGGCAAAGTGGTCTCAGGTCAAGGAATGTGA
-CCTGGGTGGCTGTAGCTCCTCCTTCCCTCCAGCCTGCTCTCCAGGGCCCC
-AGGGGTCCTCCAGCAAGTCTCCTGCTTCTGTGGCCTCCATGGTCTCATGG
-GTCCCCTCTCTGCAGGCTGGACTAGGATGCTGTGTGCACAGCCTGGGAAA
-GCTGCtgaaaacgcctttgcaaaaactataattgagaaaattatgttagt
-gaaatagattagacctaactgacttcattttccttttaactttttttttt
-tttcttttttgagacagagtcttgctctgtcacccaggctggagtgcagt
-ggtgcaatcccagctactgcaacctccgactccctggttcaagtgattct
-cctgcctcagcctccccagtagctgggattacaggtgcctgccaccacgc
-ccagctaagttttgtatttttagtagaaacgaggtttaaccatgttggcc
-aggatggtctcgatatctgtccacctcggcctctcaaagtgctaggatta
-caagcgtgagccaccacgtccggcctccttttaacttttaaactgtcttt
-gtttattcctgggtgtaggcAGCGGGCAAGGTGAACCCACTGGGCATTAA
-CACTGCAAGGGCAGAGGGCGGCCATTGCCCGGGAAGAGGGGCTGCTCCAG
-GGCCCCCTAAACACACTtggcacagggcgctgagagccccaacaatccag
-cttcgaccctgttcctctgggttgtgagggagggggctctggttgaggcg
-tgaggatacaaatgtcttttcatggttagtgagcttgatttacccctgta
-agatacttcaccatataatacgtgggccttcacttacatcatgcATTTCA
-AGCCAGGGCaacagatcgtacacatcacaggggcctggggcactgcggag
-accctcatgcatgaatcagatactgcatatttgtggtttcaaaacttaat
-tagtaaaggagatcacgattaggaaaaagagcctaaaacactccttaggg
-tgacagtaattatgagaaacactgTCAGGGACAGGCCAGTTGCAGATTGC
-ATGAAACTCCGGCTTCACCATTTAATTGCGTGTGTCTGTCATTTTAGTTA
-CGTTCTCATCTGCACGCCtgattttctttttctttttgtccttcatcagg
-ttcagcaggattcctgtattcatgcatctgttcaaagaaacaattattgg
-gtttatgcatgttttctaagactgtttttgtcttgaaattaattaacttt
-catcttgtgaatctcccttttgtcttttatttggtgttttactgcctttc
-tttATTATTAAATACCTAAGTGTATGGTTTTCCACTTTAACCAGGGCGAC
-ACTCCATCTTCCTCCAGCACCTGTGACGTTCTCCTCTGAGCTGTCGGGCG
-AGTAAGCGCTTTGCTTCCTCACTTTGTGGTGAGTTTGAAACTTCTGGCAT
-GTCTTGGGTTCTGGGCCAAGTGATGTCCACAAATCAATTCTTCTTTTCTA
-TGGGGCTGACAATTTTGCTCACCATTTTATTATCTATTTTTAATTGTATC
-GGGGGTTAGAATTGGAGAAAAAGGCCTGTAAAAATCACAACCGAGTTTTA
-TACTTACGGTATTCGTTGTCAAATACATGATTGGTTTTGAAGACAATCCC
-CAAACATGAAATAAAACAACCAGATAGCCTCTGATTAAGGTTCAATCTGT
-GTTAATTGCTGAATTGAGTGTATTTATTTCACAATTCAATTCTTTTGTCT
-GTTTTAGTTTTTATCTCAGACATATATTTGATTCCGAAACAGACAGAATT
-TCTCGCTGACGCTCCTTTGATCCAGATCTTGTATTTGTGATCCTCTTGGC
-TTTATTCATTCAGCTGCTGTATATTTTGGTGCATGCACGAAGTTTTGTGA
-CTGTTAAAATTTCTTTGGAAGCCGTGCTTCTTATAATCATGCAATGTTAT
-ATGTTCGTGCCAGTTTACTACTTTTCACCTAAAATTCTAAAATTCTAGAA
-GGGTGTTAATATGCCTGTCTGTTTTGTTTTTGTTTTGCTTTGTTTTTAGC
-ATTTGCATTTTCCTAAACAGAAACTCCAGGCCCCACACCCCCAGTCACTG
-AGGTTCTTGAGGTGCCTTTATTTTTCTTGTGGCTTCTTCTCTATCCAAGA
-GATGCAAATGAGGTGGCCTCTTTCCTTTCTCACTGAGTTTTGGCCTTAGA
-AAAATGTAAAGTGACTTAAAATTATTGCTAAACATTACAACCTCATTGTG
-GAAACTGACTTAGAAACTATAGATAAATGGAAAGAAACTGACTTAGAAAC
-TATAGATACATGGAAAGAAACGGACTTGGAAACTATAGATAAATGGAAAA
-AAACTACAGATAAACGAAGTGTAATGTCACCGTCCAGGAGGAAACATCAC
-GGCTGCCTATGGCTGCTCGGACTCCCTGGGACGAGACGCTGGGCAGGGTT
-TAGGGAGCAGGCTGCGTGTCTAGGAGTAACATGGGCCCAGCTGTGGCTCA
-TGGGGGTGGCCACGCAGGGGTGACAGAGGGAGGGGAGCCCAGTGCACCCC
-GAGCTGAGGGAAAAACTGCAGTCACAGTCCAGTGCTTCAGTCCAACACTT
-CATGCAGGTTCTCAACCGCCACGCATGCATTCCGTCTTCTCTTGCCGGTG
-ACTGTAAATTTTAAAACCAAGACATGGACGTGGACTTCCTGGGTCTTGCA
-TGTGTTTCCAGTTTGTCCTGGATCCGTAGGAGGCTGGGATTACAGAGTGA
-GATGTGCGAGGCTTACAGGAAGCCAAGAGGAAGTGTTGAGTTGACGGCCT
-GGTAGACCGTCCCAGAATCCAGGGGGGCGTGTGGGCTGTACGTGGGCAAT
-GGACAGTCAGCCCGTGCCAGCTGCCAGGGTTTCTGGGGGATGCTCCAGAG
-GAGTGGGCAGGAGAGCAGAGGAGGGTCCCTGCCAAGAGGGTCCTTGGGAA
-GAGGCGGGGACCTGCCCTGAAGCCTGAGGTGAAGGAGAGGAGAGCGGGGG
-CACCTCACAGAAGCCACAGGAGGGAGGCCTGTTGGGAGGATGGAAACCTG
-CTGAGTTTGAGGGTGAAGGACCGAGGAGGATGCCTGTTGGGAGGATGGAA
-ACCTGCTGAGTTTGAGGGTGAAGGACCGAGGAGGATGCCTGCATGGTCTC
-CTCTAGAGAGAGCAGAGGGAGTAGAGACAGAGCATCTCTGCGGTTGTGAC
-TGAAAGTGGGAGCTACTGTGGCACCCAGGTCCAAGAGGGAGCTGCATCCT
-TTGCTTGCGTTTAGACACAGCACATTTGTGTAGCCCTGACGGCCACCCCA
-TGGCCCCCGCTGCCAGCCCCCTTCTAACCTGTGGCCTCCTTCAGTTCAGA
-AGACGATTAGGGGACAAGCCGTTGACTTGGTTACTGAGAGAGGCTGGGCT
-GGAAGAAAAGGCGCGGATGTGTTTGACAAGCAGCCCAGGGAAGAGTGAGT
-CCCAGCCCTCAGCAGTCTCCCCAGGACTGAAACAGCCTAGGCCCTGCACC
-CAGGGAACAGTGAGTCCCAGCCCTCAGCAGGCTCCCTGGGAATGAAACTG
-CCTGGGGCCTGCAGTCCCACGTGGTGGTAAAGAGCCTGTCCCTGGAAAAG
-CTGTGGGGGCCCTGCAGTGGCTGAGCCCAGAGGGAGAAAGGAAGGGGCAG
-GCCACATGCTTGGTTGTGCACCTGCTCTCCTGCTCTGGCCAGACCAGCTG
-TTCTCCCCTGTGCAGGCGGTGCAGTGGGTGTCAGAAGGAGGGCGGCCTTT
-GCAGGCATCACTCTGGAGGAGGAACATCAGCCTCGGGAATACCCCTCCTC
-TAACAGGGGTACATGGGATGCCCCCACTGGCTCTCATCACTTCCTCTGTT
-GCCAAGGGGACTGGCCAGGCCTCCATGGGCCTCCACTGTGGGTCTCCACA
-TTGGGATTGATGGTGATGCATTTGAGCCAGCACATCCTCTGCGGTGGATG
-TCCAGTCCTCCTCATAGCAGTGGTGAGATGCTGAGGGCCCAGGCATGTGT
-GGGAGGCATGTGAGCCCCGGACACACACCAATGGCCGATGGCCaccctgc
-tcagctcactcctggccttgctggacctgtctctcatctgtaaaatgaaa
-agattgaagcaattattccaattgctctgagggcctttgattctaagctt
-TATTTCTGGAGAAAAAATATGTTTATGTTGAGGTCATTTTAGCAAATTGT
-TTCCCAGAGTAAATTTTATTTTAAAGGCAACTGTAACTCACTTGTTTTCT
-TCCTATTGTCCAAATCTTTACACTGAAAATGCTGGTGTGTCTTTCTCAGT
-GTCTAATTCAAGCAGCTCAGATTCCTCAGGACAAGGAGGAGCAGGGGCCC
-CTTGAGGAAGCCAGGACAAAATTCTGGTGGGCGCAGAGCACAGGCAGCTC
-TGTTGGTTCTCACTCAAACCCTCTCAACAAAGGGGGGCAACAATGGCAAA
-CTCCATAATACCTGTTCCCATCCATCGTCCACCCATCCATCAACTCATCT
-ATTatccacccatccatcaacccatccatccacccattcatccaccatcc
-acccatccattcatccatccatcatctactcatccatcaatccatgcagc
-tagccatgcataatccacccatctatcaatccattcatcatccacccatc
-catcaatccatccatccatccatcatccagtcaaccattaatccatcatc
-cccactccatatatctatcttccactcatccatccatcattcactcatca
-atcaatccatccattcacccatccatcaatccatctctccctcatccatc
-aattcatcatccaccctttcacccatccctccatccatccatccatccat
-gcatccctccatccatctattcatccacctatccattcatccatcatcta
-cccatccatcaatccatttatcagtccatccaTGAAGCCATCCTCTTCCA
-TCCATCCCTTCACCATTTGCCCACCTGCCCATCCCtccatcccttcaccc
-atccatcattcacgcatccaccaatccatctatctattcatcccttcacc
-tacccatccatccctccatccctatacccatccatccatccatccatcca
-tttgtcctctacccacccacccatctgtcatccacccacctatccatctt
-ttcatccatccaTTCATTATCCACACACACACCTGTCTGTcatccaccta
-cccattcatcttttcatccatccatccattgatctattcatccatccatc
-caAGGGGGATTTATGGAGCTCCTGCTTCCTGATTGCTCTGTTGTGTACCT
-GAGGCCCTGCCTCTACAGCTCAGCAGTCTTGTCCTGTATCATGTGATCAT
-AAAGGTAAGGGGGCAGAGGAAAGAAGGCAAGCATGGTTAGGGGATCGAGG
-GTGGAGTGAGAAACTAAAACCTAGAAAGCTCAGGGGACCCCCACTTGTCA
-CACCAGCTCTGGCCACTCTCATTTTCAGTTATAGCAGATTAAGCTGCACA
-CACCGgatagacagatacacagccagatacagactgacataaagatggag
-gtagatggatccacagataatagacagatagatacagagatcagtgagta
-acagatagataagagataaatatagatgataaaaagatgatagatggatg
-aatgataaagggttagacaggtggataTGCAAACTTTTATACCTACAATT
-CAGACACAACATTGCATCTGTGTGTGTGTGTGTGCGTGTGGGCACTTgtg
-ccagacacatggcagattttcaatgagcatttgctgcttgaatgTCTAAG
-GGGCATCAACTGGTTTTCCTAGAATCCCTAGAGGGGTCTGCCAGGGAAGG
-AGTCTCCGGCAAGATTTCTCAGAATTGGTGTAGAACGTGCAGAATTCTGA
-ACCTCACATGAGTGGTGGGATTTGGGGCTTCTCAGGACAGGGCCCAGGAG
-ACACTGTGTAGGCTGCATCTGGGGAGCACAGGCCTGCAGGAGGCTGCACA
-GCAGCCTGGTCCTACAAGCAGAGGCCGTGCTGGCCCTGAGGCTTTGCAGT
-TCTGTCCAACTGATCCCCCCTCACAAGGGAGACATCGAGGTTGGGGTGGG
-AGTGGTGACGGCCCCAGCACCGGGGAGTCCTGACACAGGGACCTCCACCC
-TCCACACGGGGCTCAGCCCACAGAGGCTGCCGCACCCCGAAGCTGCACCC
-TGCAGCCCTCACACTGGCCTGTGTCTCCCCATTCCGACACCAATCAATAG
-CCATCTGCTAAGAAGGGAAAGTGCAGACAGGTGTGCTGGGCGCATAATGG
-TGCTGTGGCCGTCCCTCCCATATGGGCACCTCCTGGGGTGTCCGATTTCC
-TCACTCAGTTGCCCGGCTGcctcccccaggaagtccccctggatgccctt
-gcccagggcgagtgagtttccctcccttggggcccctcactctggacatg
-tgtcgatccacccctgacagtggccctcagctttcatgtcccacccacag
-ggactcgggatccctgaagacagaggccacattcaattcatctcagtccc
-aacaccaagcacaatgtctgcagaaagcagtgactcaatacattttttgt
-ttaatTTGCCCAATTTGGTCAATAAAAAAAAGAACTATTATCCTGCACTA
-GAATTCCCAGCTGAATTTGCTGCCTGAAATCTGCTCTAGAAGGAAAAATA
-GACGTTAGCTCCGAGTCTCTGCAGACTGCACAGCTCTAGGTTGATGTAAT
-TAACTTCTCTGGCCTCCAAGGTAGTTTGATGTTAGTTCAATTTTATTATA
-TTTCAGAATTTTCTCTCAGGTTTTTCTTCAATTCCTCAGCTTCATTCAAA
-AATAGTACCTAGACGAAGTCTTGACAGAGAAAGAGATGTTATTTGTGTCT
-CTGTTGCATCTTAAATTATATTGAATTGTTTTCTTGACGCAAGCGCCCCA
-CCCTCAAAGTCCCCACTGCAGCAAATGCAGCCCGGCTGGGGGCAGCTGGG
-GCAAGGATGGGCCAGGCATTGTTCATCGCAGTGCTGGTCCACTCTGCAAG
-GGCTGTAACGGAGGGGGCAGCCTCTCCCTGAGTAAAGCTGAGGGCTTCCC
-ATGCCTGCTCCAGGTCCTTCTGCCCTCTTGAAAACATTGTTTGAAGAAAT
-ACCTCGGGGAAGAAGAAGTGCAACTCTGTGGCTGATGGAGGAGCATGGGC
-GTGCTTTGCAATCAATAGGAAGCCACTCGGCGGCTTGAGAGCTGTCCTAG
-GAGGCCGGCGGCATTTCCTTTGGAATCCCAGACAGCAAATGCAGAGGACG
-GGTGGGGACTTGCAGAGCGGTGGTTTCAGCGGATACCTGAGTGCCTCCGG
-GAATGAGCTCAGGAGGCGTCAGAGGCCTGGATGGTGTCTGCGGCAGAAAT
-GGGCCTCTGGTCAGCCCTAGGGGGTCAGGGCTGAGGGGTGGACGGTCCCT
-CCATCACAGTCTTGGCGAAGCTCAGGACCCGCCCCCAGCTGCGAAACCCT
-CCCTGAGGTGGCTCCCTGCCTGCTGTGAGGTGAGGGAGGACACAGGGGTA
-GGTCTGTGGCTGTCctcctcctccgtaactcagcccagcaacctggcagt
-gcttccaactcgggtcgcctttattcctgtcccctgatatcccaaacatc
-cgtaagtcttgtctatttcacatcctggatgtctccgaaaggcactaatt
-tctctccatctggaccactggcactggcccaagccactagtgtctGGAGC
-CCGGGCAGGTGGAAAGCTCCATCCATCAGACCCGTGCCCCCTGCCCACCC
-CTGAGGCCTTCCCTGGTCTCTGTCACAATGCTACCTTCACGTCACGTCTA
-CCTTCCTCTGCCCTTTAAGTCCATCTTGCATGGAAATAGGTTCCCCTAAG
-CCTGTCCCCTTGTAGTGCCACTTTGGTGGATAAAACCCTAAACCCCTGTC
-TCTGCGATGATCCCACCAGAAGCCTGGGCATCAGGCCAACTTCCTCTGTC
-CCCAAGTGCTGCTAATTTTACTTCCCAAGTACTTCTCAAATGCACCCCTC
-ATTCCTAACATTTGTAATTCCCAAGGGCTTCCCCTGTGCTCAGCTTCCAG
-AGGGTCTCCTTACCTGCAGTCTGGCCTGGATGACTCTCTGACATCCAAGT
-ATGTGTTGCACTCTCCTTGGGAGACCTGCCCTGCTCCGACTGGATGCATC
-TCTCACCAGTGCCACGCTGGTCGCAGACAGCCGGTACACGGCAGGCTCCT
-GGCCTCTGCACTGCGGCTCTAGCTGCTGCCTCCACCTGCACTGCTCAGCT
-CTCCTTCTCTGGAAGCCTTTCTCCCTTGCGCTCGACCCTCTAGACTTGGC
-GGCAACGTCCCTGCCTGCAGGAAAACATCCTTGAGCTGAGCTTCCTCACC
-TAGAATTGCTGAACATCTCCACGTGACATTAAAATTATCTGTTTTGTTCC
-TGCCACTAAGATTACACATGATCAAGGAAATAGTACGTAAAAATGTGGTC
-AGAATGCACAAAAATGTAAAACTCAGTGTATACGTAACATGCAGATAACC
-AATCCTAGAAGGCAAAAAAAAAAAAAAAAAAGCTAAAGTTGCATGCATGG
-CAAACCTGGCAAAAGGTCGACAATCACCATGGATGAGAACGACACACACC
-AATGGTGGCTATGGCCAGATTACGCACAGCACGAAGGCGCAAAGGCAGCG
-CGTGGAACCACATGGGACAGCCAGGCGGATGGAAACCAAAGACGGCGAAG
-CACAGGAGGGTTTGCGGTGGTCTCCGGGCTTGTCTCCGGGTCTGTGAGTG
-CAGGAATGTCATACGCTTGGATACCTCCAATTCTAGACAGCTCCTTCTGT
-CCATTCTAGACAGCTCTTTCTGTGCCGCTTGTGGGGAGGATGGGAGTGAA
-TTTCTAAAATACTTATTCATTTTGCCTTGGTATTGGCATTCTAATGACAA
-ATATTGAGGTTATAATTCTAAGTAAAATAAAACTTTTATCCAAAGCTCTA
-TGAACAGCTCAACAAGTGAAATAATCTAAATGTCCAAAAATATGGAAAGA
-TGATATAAACTGTGATGTAGCCATTTGATCAGTATTTCTGAGCTACTGGG
-TACACCTATACGtgtatatgtatatgtgcatgtatatgAATGGGTATGCA
-TACATATATTTTTTTAAATGTGGCCCCCGCCCTAGGATCTGTAACCCTAA
-ATGGGTTAGGGGACTCTGGCCTCTTTGCATAAGTCTTGGGAGGAActctc
-ttatgtagaggtcagagccccagttttccagccctccttgcagagagaaa
-atgggccgtggcccaggtcctgccagtcaatgctcccagcagggccgagc
-aaccaggggctggcaaagaccctgggaggctggctttgcccagagcagca
-gcagcgcccagcatccatggtgccggcacaggaaggcaagctccgggatg
-agtccggcggcacaggggttctgtctttctgtggttctgtctgtctcagg
-ggttctgatcctgggcagcagccctgagttcgtggccaccacgcctggtt
-tctcagcccttccagaagggctgcaagcgatgcaagaggaatatatttct
-tttcctttttctttttctttttgctcaaatggctggactggacttgcttt
-ctgtcgcttgcacgtgagaaggccgtctgaGTATTCTGGTTTGGCCTCTC
-AAAGTTTATGGGGAAATTCTTATGATATAGTGCTTAGTAAAAAttagtac
-taaacagctaatcaataaattataatagtaaacaaaactaaaattgactg
-aaaaacatagcacaaaaattctacaatctatatgagcaaatcacaaccag
-agatatgtaaaaaggggtaatatgtcttggccaagtagaatttacccaaa
-aaatataaaattggttcaagattaagaaaaaatatcaatggatgaaatct
-actaccttattagaataaaggggggagctatcatatttcaggaaaaaatg
-tcaataaaattcaaaatcaatttaagataactcatagtaaacttgaatag
-aaaaaatgtccttaattctgtaaggggcatctatgaataaaacctactgc
-aagcattacagttaatgtcaaagtactgcagctctccACCtgtgatggtt
-aacttcctgtgtctattcggctaggttacagtgctcaatcatttggtcaa
-acagcagtcaaggtgttaccatgaaggtattttttggtgtgattaacatt
-taaattagtagactttgagtaaagcagttgaccctccacaatgccggtgg
-gccttgtctaatcagttgaaagcttaagaatcaagactgtttcctgatga
-agaaggaattgtaaccccagatggcaacatggaaactctgccagagtttc
-cagcctgccagcctaccctacaaatttcagacttgcaagcctgtggaatt
-gtgtgagccggtttccttaatatgtctatctatctatctatctatctatc
-tatctatctatctgtctgtctgtctgtctgtctagctatctatcatctat
-ctatctatccacctatctatccatctatcatctatcatctatctgtctcc
-atctggaccattagctctgtttttctggagaactccaacACAgacttggg
-gacagagactggttctagagaaaccaaatcttaagacggagttttctgaa
-tttgttctaaggtttctggaatttagttctctaaactgattaggtttaaa
-ccatgaatgaatgattctatttccaatagtgaggagaccactaatagtct
-gtggtgtTGAGTAaaaaaattataccagacatttgtttaaacatggcacg
-aatgaatgtattaaacatggctgcaatggaggagagaaattgaatcaact
-ctgactacagaaaagacagctggagacttgaaccagcaggcatggtgagg
-agatcatcggatggaaaagtagcaagaggaagttgatgaggtagcaagta
-tgggaggattcttgctaaactgactcaacaggacgcttcgtaaggcaggg
-agaggtcctcagacatcaagagcgaggggtggggccagaatttggtaatg
-gaggggggattcttgttaaattatctttacgggattctttgctaaaactg
-agctgggaaggggagcaggctcaggccaaggcctcattgggaagaggact
-ctcaggagcctgactgaagtttggtcgaggagggagtccttgtcTATgca
-tgaagtggcaagagagaaatgcagaatatcaccatgggatgctcctaatc
-caatactcgtaagagtcgaggttctgggggactgtgtatactatactttt
-gagcattattgtccaaataatgagtatattgagatttactggtttcgcct
-aatgttgatggacaaagtggggaaagaaaaggatgagctcagggactaga
-attcccaactcaatcactacacgaataacctgaaagcttctctgtctgcc
-ctgaaagaaacccttccctcctgtagctgcagggctgagagtgaaaccca
-aacccagagtctcattctgtgtgtggctgaattacaactgcaagttgacc
-tcccagcctcacagggctgttttctgttaaagtgagtgcattcattccta
-aaatcaggaatgagccactcacattcaacatcatactggaggtccttggc
-agtgctatgttgagaaaaatgaaaagagataaaaaaatagaaagagaaaa
-agaagtaatatctttgtagatgacatgattatgtgtgaagaaaattcaag
-gtaatctacaagcaagtcgttagatttaattagtgaatttatcaaggcca
-atataaaaactaaatattatttccatatgcttgtaacaaacaattaaaca
-gttactttaaaaagtactacctacaatagcattgaaaattaaatatctac
-tgacatatgtgcaagaaatctatattaaagaaaaataaatattgctgaga
-gaaactaagagggtctaaataaatgtagagatgtaccatcttcatggatt
-ggaagacaccgtatcaacatgtcagttcctcccacactgagctacagatt
-catataatttcatttaaaactccatcatatttcttttgtagaaacaccta
-aggtgattttaaagtgaataaggaaagtcaagtgacacagaagagacaag
-acaaccactggaagaaataactcattggaagaccaaccaccaaactccaa
-gactctccgtaaagccaaagcaatgtagacaccatggtattagcatgaag
-ttagataaatgaatcaatggaacataatgtgaaggcctgaaatagaccta
-cacatatgccaaagattcaccggagaaaggaagggtgcctcagtaaattg
-ccttagtcaatccccatggaaaaaggaatcttcatttctacctcatgcca
-ttgatttgaagtgatcattgtcctaaatgtaaaagcaaaaataaaaagca
-tttagagaaaaacaAAATAGGACAGCAAGACCACatctctctgaccctca
-ccttctttcaaggggctcacctgattaggccaggcttacctagacaatcc
-cttttgattaactcaaagcaaatggattagtagctaatcactggagtggt
-ttctcatcatattcccagccccggcttcccacacacactggtggggaggc
-gcttattcagagggtgtactctggtgcaggaatcttggaggtcaccttag
-aattctgtctagcacaGACATTGTGTCCAAAACATGCTGATTTCTCAAAT
-ATATGTCTATTGAGTGTGAAAGCTTCTGCTAAATACCTGAAGTTAAAACT
-AATGAGCGTGGAGTAATTGCAATAGACAGTGGCCTGCTGTGTTTCTTGCA
-GGAGTGGAGCTCAGAATTCAGGACCCCTCGCTCATCTGCAGGTGTGTGGG
-GTAAGCCAGGGTCCACTCAGGACTGGGCTGTTGTGAGCTGGCCTGGGGGC
-CAGAGGTGCTGGGACGGCCTCCAGGATGTGAGCGTCCACCTTGGGACCCG
-TGGAGGGAGCTGCCTGGTGTTTTGAGCAGGAGAGGTTGAGCTTTCTCCCC
-TTTCCTTATTCACTTCACTGGAGGAATGCTGTGCCCACCAAGGGTCTCTG
-CTCCAGCCTGTCTGGGTGGAGAGGGCCAGTGATGGATAACGGTGGAGGGG
-AGTGGCCAGAGGGGGCCCACAGTGCTAACATCTGTGTTGCGGGGGTGCAG
-AGGGGCAAGTCCTGGAGTGGTGGGCTTGGAGCCAAGAGGACCCGGGCAGA
-AAGGAAGCCCCCACAGTGCTGACCACCCACGTGGGAGGAGGAATAAGAGC
-TCTTCCAGCTTCCGCAGGTGTTGGGTCGGGACTCACGGGGGCTCCATTAA
-AGGAAAGGCAGGCTGAGGGGCCAGCTGTGCACTCTGGGTTCATGACTGAC
-CCATGGAACAGACGGGCGCAGGGGCCAGGCAGACAGAAGCCAGGACAGAC
-CTGTCCTCCAGGGGAAGGTGATGTGTGAGGTCTGAACTCCAGTGTGGGAG
-AGAGGGGCCTATGTTCCTGACCCCACCTCTCCCTTCCCCTGCTTCTGGGT
-CGAGGAGAGGACCTTTCAGTGTGAGTGGGGAGGGGCTGAGACACAGGCTC
-CCCCGGCCCGGGGCTCTGCGGCCACCGTGCTGACCCTGCACAGACCTTCC
-AGGTCCTGAGCAGCCCTCGGCCAGAAGCAAATCCGTGTGGACAGGAGCTC
-ATGGTGAGATTGAGACTTTATTTAGAAATCAAAAAGAAAAAAAAGAAAAA
-AAAAGCCCTCAACAAGCAAGAGAACATGACAAATTCTTGCTACCATAGTA
-ACTAAGACGGTTGGAAGGATGAGCTGGGGGAAGAGCCTGGAGGACCAGTG
-CAATCGTCCGCGGCCTCATCTCCCGAGACCCCAGATGCCTTCTGCGGCCG
-CTTTCTCCCAAATTCCCAACCTGGCAGTGGGGAGGAGGCTGGCTTGTAAA
-ATATGGTTTTGAGCCCGACCTCCATGCTCCGTGCCCACCACAAAGCAGCC
-TCCCACAAGCCAGCCCCCCAACAAAGCAACTCCAAAGTCCCTGCCCAGCT
-CGGGGCCTTCCCCAAGACCCTTCCTTTGCTGTCCTGCCGCCCTGGTTTTC
-TGCTTAAAGCCATATCACATATGAGCTTTCTGTTGTGGCCCATCATGCAG
-GAGCACGCTGGGCCTGCAGGCTTGCCTCCTTCTCCATTCAGAGATCTCAC
-TCCTCAGAACGCCGGCTGCCGGTCCTTGCTCCTCCTCCCCTGCTGTGAGG
-ACAGTGGCCTACGTTTCCTGGGGGCTGGGCCCATAAGAGCCAGACACCAG
-GGTCTCTGTGAGGAGATGGGGTCAGTGGGTCCTGAAGGCACAGTGCTGTG
-TCCAGTTGGGGGACAGAGGAGGTGAAATCAGAGAGAAAGAGGCTGCGTGT
-CAGGGCTTCAGGGACCCCAGACCATGAGGAAGGACCCCAGGCCAGGAGGA
-AGGGAGTTGTTTTCAATTCAGTGATGAGGACATGGGCGATCAGATAAGGA
-GTTGTGAGCTGAGGTGGAGGGTGCACACGGCCACAGCCCAGCAGTCCCGG
-GAAGGCTGGCAGGGAAGCTGTGAATCCTGAAAGGTAGAACAGAGTCAGCC
-AGGGACCAACCAGGAAGAGCCTTCCCCACAGAGAACCCCACACCACCAGA
-GAGACCAGTGCAGATGGAGGGAGACCCAGTAGAGAGACCTTCCCCACAGA
-GAACCCCACACCACCTAAGAGACTAATGCAGGCAGAATGAGATCCAGTGG
-AGAACTTCCCCACAGAGAACCACACATCACCAGAGAGACCAGTGCAGATG
-GAGGGAGAACCTGGCAGAGACCTTCCCCGCAGAGAACCCCTCACCACCTA
-AGAGACTAATGCAGGCAGAATGAGATCCAGTGGAGAACTTCCCCACAGAG
-AACCACACATCACCAGAGAGACCAGTGCAGATGGAGGGAGAACCTGGCAG
-AGACCTTCCCCGCAGAGAACCCCTCACCACCAGAGAGATCAATGCAGGCA
-GAATGAGACCCAGCAGAGACCTTCCCCACACCGAACCCCTCACCACCTAA
-GAGACAAGTGCAGATGGATCGAGAGCCCAGCGGAGACCTTCCCCACAGAG
-AACCCCTCACCACGAGAGAGATCAATGCAGGCAGAATGAGAGCCCAGCAG
-AGACCTTCCCCACAGAGAACCCCTCACCACCTAAGAGACCAGTGCAGATG
-GAGCGAGAGCCCAGTGGAGACCTTCCCCACAGAGCATCCCCGCATCACCA
-GAGAGACCAGTGCAGGCAGAGAGAGAACCCGGCAGAGAGGGGCCTGCACA
-TCAGTCACCAGGAACCCCTTCATAAAGCGGCAGCAAGACCCCTTGGCACA
-GCCACCTGGATGCTACAGGAAAGGTAGTGAGTCGAGCTCTGACTCTGAGC
-TCTGCTGGGTGCTGGTGAGTCGGGAGCCCTGACTCAGCTCTGCTGATCAG
-CAGGTGGCGGTGCCCGcaccttagagggtttttggtgttacctgctttct
-ttaaacatacgcatatggtttcctcagaagacctagtcttagggtcgtgc
-ccaaagaaatgcccaccaaaaacagacacaagaatgttcacagtagcctg
-cctattgccaaaaaacagaaccacctcaaatgtatactcaaaatgagGTT
-TCAAAAAGGGTAATTGAAggccaggcacggtggctcacacctataattcc
-agcacttttgcagggccaggaggaaggatcacttgcagttcaaggccaga
-gtggcaacatacggagaccccaaagaaagaaagaaagagggaggaaggag
-gaaaggaaggaaggaaggaagggagggagtgagggagggagggagggaAT
-GGGAAGGTGAATAAGATCTTGTGGCTTCAGGGCTCAAAGGGAAATTGAGT
-TTGCTCAGGTCCTCCTGTCCGCAGGGGAAAGGAGTGgggaggtgagggag
-ggagggaggggagaaaaggagcagggaaagggagggagggagatgggggc
-ggggaggggacagagagaagcaggggagggaggaaggcagaggagggaag
-ggaaggaggctggggaggggagggaggACCCTGGAGGGAGGTTCACTAGC
-CAGCAGTGAGGGGTAGCACCTTGAGGGAACACAGGGCAGGGGCAGCTGGG
-TTGGGAAGGAGGACGTCCTTCGGCTGCCTGGAGGGCCCCACGGGTTACCT
-GGGCACCTGCCACCACCCACATCCTGGAGGAGGAGAGCTCCTCACATCCT
-GACTGTGTCTGGCAGGCTGAGTCCCAGGCCTATATACAGGGCCAGACAGG
-CCTGCAGGGCTATGAGTGACCAACATCAGCTTCCCGTCCAGGGCCCGGCC
-AGGTGCCTTTGGCTGGGACCTGGCTGTGCGGCCACGGAGCAGAGGAGCCT
-GGCCAGAGAGACCAGGGGAGGCGAACGGGACCCCACTGGGCTCCAGAACC
-CACCCTGCTCCCTCCACACAGCTGGGCCTGGGCAGGTCAGCCACTCTGGC
-TGGAGTCTGGGGGCGGAAGCGAGTCAGGGCTCAAGGCTCCTCCTGCTCTG
-TTCACTCCTGGGTCCCCTTGAGTGTCTGGTTCCTGCCGGTTTTCCCAGGA
-GACCCCAGGCCAGCTGCAGGAGGCCGGGGTTGGACCTTCCATCCAGCTGA
-GTCCACTCACCTCCAAGAGCTCTGATCAGGGCCCTCTGGGTGCTGCTGTC
-CACACAAGGCCGGCTCTGTCTCTGCCTCCCTGCCCCACTCGGGGAGGGTT
-GGGTCATGGTAGGGAGGCCCTGGGGTGCTCAGAGCGTCTGGGCAGCAGGA
-GTACATCGCTTCCAAGAAGGATCAGTTTCCCAACGCTGAGGCCAACACTG
-TCTGGAGCCCTGAGGAGGGCCCCAGGTGGCAGATACCAGGACGGGTGCAG
-CCTCTGCCACCCTCACCTCCCCAAAGCATCCGGTCTCAGGCACAGGGAAT
-TGTAGCCGAGGGCCAGGGTCCCAGGAGGATCAAAGGTGGGACCTTCCAGG
-GTGGTCTCCTGTGACCGTCACTGCTTTCAAACCACCAGGGGCAGCGCGTC
-TGCCCCCACAGCCTGTGCCACCAGGAGAGACCAGGCCATCCATCTGGGTT
-TAATTTGGAAATTAGGCAGTGTTCAAGTTCCATTATGTGGCAGAATTAGC
-CGCAGAAGCCAAGGCAGCGTCACGCGTGGAGAATGAGCTATGGCTTCGTT
-AATCAGGGGAGACAGCGCTGGGAACCAGGAGGCCGGCGAGGTCACCAGAG
-GAAGGAGGGGCTGCAGCCGCCGTGGGGTGCCAGACACCTGGGCCCCACCT
-CGCCGCCATCTGCCCTCATAAACCCGGGTCTGGTGGGCTCCCAGCTCTGG
-CCGGCCCATTCCAGGCCAGACACCTGCCTCACTGCCAGCTGCCCCGAGAA
-ACCCTAATGTGGTGGGCTCCCAGCTCCAGTTCCCAGCTCCAGCCGGTCCG
-TCTCCGGGACACTCCCGGGTATGGGTGTTTGTTCTCTACCCTGCTCCTCT
-GCCCGAAGCCGGTCTCCCTCCTCAGACCTGACTCCATTCCAGGAACCCCC
-ATGAAAGGGGCAGGTGGGCCATTTGACGGGGAGGTTGGGATCTGTGCTGG
-GTGATAGGGGCTTAAACCACCATCTGTGGCAACGCTGGGAGGACAGGACA
-AGACTCAGCGTGTCCGGGGGAAGCCGGTGCAGCCCGGCCCTGAGGGCCTC
-AGAGCGCAGTGCCAGGGGAATCTAAGCCTGAGGAAGGACAGTGACAGGAG
-CGGGGAGAAGAGACAGAATGTGGCAAGGGCAGGAAGTGACAGGGAGCCGT
-CGCGTCCTCCTGTGCCTCCTCCCGGGGGTCAGCCTCGAGGGAGGGGCCTC
-TCCAAGCCTCCCAGAGGCAAGACTTGTCCCCATGCTGGGCCTGTGTGTCC
-CACTGGAGGCAGGACTTGTCCCCACGCTGGGCCCCTGTGTCCCGGCCAGA
-CTGCTGATTCTGACCTGGCGTGGGCAGCCCCTGAGTACTGAGAGATCCTC
-ATCCACAGGGCCCCTGCTGAGGTGGCTTCCCCGGTGCCTGGAGGGTGACC
-AGAGGGTGACAGTTGCCTCTGTGCTGTGCCCCTCTCTGGAGAGGCCACAT
-GGCCAGCTCCTCCTGCCTGCTGGGTCTGGGTACCATTGGCAAGCTGTGCC
-AGGGCCACCCACCCCAGGGCCTGCGGAGGGGCCTGAAGTTCTCAGTCACT
-GGGGCTCCCCGTCCTGCAACCTGCTGTGAGGGTGGAGCTGCTCTGACAGG
-GGAGGGGAGGGTGTCGGATTGGGGTGGCCTGGGACAGCCACAGCGGGGAC
-ACGGGCACACAGCGGGGAGACAGGCACTCAGCAGGGACATGAGCACACTG
-AGGGGAGATGTCCGCTGTTGgaagacagagatagcttggagggaggcagc
-cacaggccacggagcaccaggagccaccagcattgggaagggccctgcag
-tccccgggggcacagcccgtccttgccttgatctcaggtttctccctgtg
-aactgtgagaggagggatctgttttcagccacctggcctgtgctgcttCC
-TGAAGGCTCTCTGTGGTGGCTGCTCTGCCCCAGGCTGACCTTTGATCTGC
-CCCAGGAAGAAGGAAGAAGAAGCCTGTCTTGGGGGCGGGGTCTCTGCAGC
-CCCCAGGCCAGCCCCTCTCAGCAGCAGGCCTGCTGCACTGGGACATCTTC
-TGCTCCCTGAAGAGAGGTCTCTGCCGGGGGGAGGCAGGAAGACCCCCTGA
-CCGGGCCGAGGCTGGTGGTTGGGAGTGGAGTGGACTCAGCCCAGAAAGCC
-CCCCAAACCCCCTGCCAGTCCTCTAAGGGGAAAGCCAGCCCCTGCGCATG
-GCCCGGCACTCCACCAGTCTCCAGGTGTGCACCCCCGCCGCTGTGCCCGC
-AGGGAGGAGGGCTCTGTGTGCCTGCCACCCCCTCCTCCCTCCCCCACAGG
-CCCTCCAGGGCTTCAGAGGGGTTATCTCCTCTTTATGTATGTGGATCTTG
-CCATCTGGCTGCAGCTCCCAGAGGAACTCCTCCCAATTCTCCCCTTTAGG
-AGACCTCTCCCCTCCCTGTCACCCCCTCCCAGGGCCTTGCCTCACTATGG
-CTTTGCTTCTGTATCTTAGGGTGCAAAGATGCCACCCAGTAGCTGTGCTA
-AGTGAGTTTTCCTCCCCGAGGCCCACTGGCTGGGGGGATGGGGGCCCCTA
-GGGTTCCAAGGACCAGGAGAGGACAGTGTCAAAGATCAAGCTGCAGGCTG
-CCTCAGGGCCCCAGGACCCCGCCTTGTGCTCATACCTCCCAGAAGCTGGT
-GCCCCCACCCCTGTCTTGGCCACTCCCCACCACTCCCTGAGCGGGTGCTT
-TTCCCAGCACCTGGAGCTCCGGGTGGGGTTCAGGCTGGACGGGGAGCAGA
-ACCCTATGCGTGGGTGGGCTGCACCGCATAAGAGCCGGCAGGCGGTGTGG
-ACACTTTACCTCTGCTGCAGTTCTCTAACTTGTTGGGGGCCGAGGAGTGA
-CAGTCTTACCAGCCAGTGGGCCCGGGGAAGCCTCTCCTCCCATTCCAGGC
-TCCCCCTGGGCTGGGCTAAGGGCTGAGTACAGGAGTTGGGTCTGGGAGTG
-GAGCAGATGTGACGCTTGCAGCCTGGCACAGGTGTGGACTTTGGTGTCCC
-CTCCTGAGCCCCTGCCATCGTCATCACAGAGCTGCCCCGGGACCTGTAAG
-ACCAGGAAGCTCCCGGTGCCCAGAAGACCTGCGGGCTGCTCCCATCAGGT
-TCCCCGCACACACCTGCACTGATGCGATGCTTAGCGGGGTCCCTACCAAG
-AACCCCAGGCCAGGGCTGCAGGGACAGCGAGCCATGAGGCTGTCCAGTGC
-CCAAGAGAGAAGACAGTGGTGACTTAGTGGTGGGGAGCAGCAGAGACCCC
-CTCACTGGACCCTCCCGGCAACCTCCTTCCACTGGTGCAGGCCAAGGGAT
-CAATTGCAATGGTCTGGGGCCCACAGGTGCTTGCTGGGACCACCTGCTCA
-CAATGCTCCTGCCCACGGAACACACGAACAATTGTGGGCTCAAACCCTTC
-ACCGTCTCCCATCCTCACCTCTGAAGTGCAAGTAATAAAAGAACCCTGGG
-CAAGGGTTCTGGTTTGTTTTGCTTTTCATTTTGGGGCTCAATGAGACTCT
-AGGAAAAGCTTTGCAGGGTGTGGGTAAGGTGGGCGGAGGGGCTACCCGCA
-GGTCTTTAGTCAGTGCCATCCCCAGGGCTCGGCGCCCTGTGCACGGCCAA
-AGTATGTCATGAGGACACAGACTCCCAGAGCTGGAGACACCAGTGGGGGC
-TTCCTTCCCCGACTTAGCAGTCACTGCGGGGACCCTAAACAAGGGGCAGG
-GAGGTGGGTGCCCCTGAGCATCAGCCTTGCGGGGGTCCTTCTTGGCCAGC
-CTCCTCCCCGCTGCAGGGGAGACCTCAGGGCCCCGGAGACCCAGTAAGGC
-CAGGGCCTGGGGAGGGTGGGGGTCTTTCCTGGGTGGGGGCTCCCCAGGGG
-GCCTGGGGAGGGTGAAGAGGGTGGGGTCCTTCCCGGGTGGGGGCTCCCCA
-GGAAAGCGCCAAGGGGAGAGGAGACATGCTGCATCCACACGTTCCCTTCT
-CTTTTTTCCTTTCAGAACCTGCTTTAGGGCAGTGGGGCCAGGACACCCCC
-TTCTTGGGTGGTCTCACGTCCTCAGGAGACTTTGCTCTGGGGGGAGGCGG
-GGTCTCAGGTGCAGGAGAGGAGCTGGTGGCGGTTCAGGACTGAAGAGACT
-CATGGTACCTGCTGGTTTTCCAGGACAAGAAGGACATCCCGGGAAGAACA
-CATGGGGTACGAAACGCAGGACAAGGACTTCCGGGGGAGAGCATGCGGGG
-CCCCACACGCCATGGGCAGCTCACCAGGATGGGTTGGGGCGTGCAGGCCT
-GGCGGGGAGGGGTCTTGGCAGCGGCGGGGGGCGGCCCAGGCTTCAGGGGT
-TCTCCCTGCTCCTTTGAGGACACGTTGACCATGGTGGGGGGCAAAGAGAA
-CTGCCCCGGAGGCACCGTCCCAGCCGGAGCCCCTTCCTGTGCTCAGGAGC
-CTCACAGTCCAATATAGAAGACGTCGTGTTCAATTATTCTGCGACAAAAG
-CCAGGGGTTTTCACAATTCCACACCCCATTAGCCGATAATTCAGCACAGT
-CTCTCATCTAATGTGACTATATTTTATACAAATTATTTCGGACAAGAATT
-CAGTCCTTAATAACATTGATCTTCATAAAATTGTCACCCAGCATCTTGTC
-TGGGGCCCCTGAACTTCAGTTTGATGTTACAAATCAAAGTGGGAGACAGC
-TACGGACGACCTCGTGGTCCGGAGCCCATAGCGGACGCGTCGCAGGCCTG
-GAATTCTGAGGCCACCGTCTGCAGAGCTCCTGGGACAGGGTGGAACCCAA
-GCCCACAAACCCTGCAGCCCCCACCCCCAAGTCCCCTCGGGGACAGGCAA
-ATGCCTTGTCCCTGCCACTAGCCCCTGTGGGTCCACTCAGCGCCTCCCAC
-CCTCCTCCGCACAGTTTGGGGACCTGCTGTTTCCCGCACACTTTGAGAAG
-GGACTGACAGGTTCCTGGGTGGCCAGGGGCCTCGTGAGTGCCCGCCGACC
-CCGTGACAGGCACCTGCAGGCACCTGGAGGAAGATTCATCGTGTGGCTCT
-GCGACACAGCAGGGCCATTGCCCTAATACGTTATCAGGCTTGTTGAAATA
-TCAATTTTGCACATGGCTTCACACGGCTGCCTGCGGCCCTGCTCAAGCCT
-ATTACTTAATTCTTCTCTCATTAAGAAATCCAATCTCTGATTCCAGTGGC
-ATTGGAGGGGGTGAGGGGAGGCACTGGCTAATAGACCTCAAACCATCTGC
-TAATTGCAGTTCCTCAAACCCCAAGTGAAGATGAAAGGGAATGAGGGAGG
-TAATGGAAAATCACCAAGGTGCCCGGACAAGGCCCAGACGTTCTCAGGCA
-GTCCAGGCGCTGTTCCTTCCAGCACCCACCGGCTCCCCTTCTAACCCCAG
-ACACTGAAGTGGGGCTCTGCATACAAGATTTCCAGAGTTCCTCACAGCTC
-TGCATGCAAGATTTCCACAGCCCCTCCCGCTCTGCACACACAATTTATAC
-AACCCCTCCCGCTCTGCACACACGATTTATACAACCCCTCCCGCTCTGCA
-CACACAATTTCCACAGCCCCTCCCGCTCTGCACGCGCAATTTCCACAGCC
-CCTCCCGCTCTGCACACGCGATTTCCAGAGCCCCTCCTGCTCTGCACACA
-CAGTTTATACAACCCCTCCCACAGTGCACACACAATTTCCACAGCCCCTC
-CCGCTCTGCATACATGATATCCAAAGCCCCTCCCACTCTGCATACATGAT
-ATCCACAGCCCCTCCCACTCTGCACACACAATTTATACAACCCCTCCCGC
-TCTGCACACACAATTTCCACAGCCCCTCCCGCTCTGCACACGCAATTTCC
-ACAGCCCCTCCCGCTCTGCACACGCGATTTCCAGAGCCCCTCCTGCTCTG
-CACACACAGTTTATACAACCCCTCCCACAGTGCACACACAATTTCCACAG
-CCCCTCCCGCTCTGCATACGTGATATCCAAAGCCCCTCCCACTCTGCATA
-CATGATATCCACAGCCCCTCCTACTCTGCACACAATTCACACAGCCCCTC
-CCACTCTGCACACATGATTTTCTTAGCCCCTCCCCACTTCCTGGGGCATT
-CTGTCCAAACTGCTTAGGCCCTAGTATCCTGCCAGAGGATCCAACAGCAG
-CTCCACCAGGGAGAGACCAGAGGATGCTGACACCCCTTTCTGATGGGTGG
-CTGTGCCTCCTGAACCCTCAGCAGCCTCAACTCAGAGGGGTGGGCGTTCA
-TTCCAATGCCCCTGCCCCAGATCCGAGACAGCTCCCCTCCTCTCCTCTCT
-CCAGGAGGCCCTTGGGGCAGTCGATGACTTTGTGCAGCTCCGAcccctcg
-tcctcctcctccagagggaggcctgtcgacagcagttttccatatctcaa
-gcccctttataattgaggacattaatttatctctccatcctgtcggctcc
-atggtaagcaggccccagtccttaccctaagattcttgtgttcgccaacc
-attaatcatttccatctctcttctgagcgctttccaaCAAAGGGCTTCAT
-GTTGGTGCACCTTGACGAAGTTGTCCACAATCTCATCAACATGTAATCAG
-AGCCAAATGAAACAAGGGCAGATTTTATAAGAATAATTCCCAACGTAAAT
-GACCATAAACAACTAATTTTCTCTGTGATTCAACACACGGCTCCCTCCTC
-ATCCGTTACAGGGACTGTGGCCTTAGCTGTGTAAATACAAGCGCTTGGCT
-CCCAGCTGTTGCTCATAAGCAGTCTGGCTCGCGTCCAAGCCTGGGTACCT
-GTTTTGGCTCCAACCTAATACTCCCGTGTGTATTATTGGTGGCTTTCAAA
-TAAAGGAGCGGAAGATAGTGAGCTGAGTCTGCCTCCCTGCTCCGAGGAAG
-AGCGGAGTGCAGGACAGATGGACGGATAGATGAGGGCCAGCCCCACCCCT
-CTATCAGGCAGTGGGGGCAGCCCCCCTTCTCTCCTGCACTGTGCCCTGCC
-CTCAAGTGCTTCTTGTCCTACAACCTGCCTTTAGAGCTTCAGTAGCCCAA
-ACCTTGGCAGCTCCACAGCATCCGCCCAGGCGCACTTGGAAGTGGGCACT
-GGCTTGGAATCCTTCTTCCAGCTGTGGAGACGGTCGGGTGTCCCGGTCCT
-AGCCCTTCAGTGTTAGAGGCTCAGCAGGCTACGTGCACCGCCTAAGGCAC
-GTGATTCTTTGCAGAATCAAAAAGTCCAGGGAAAGCAATGAAAAAGACTC
-TGCTCAATGAGAGATTTTCATTGAGTATTATTTTTTTAGACAAGAACATT
-GGAGAGAATGTTTTGAAAAACACATTTAACTTTGGTTATGGGGAAGATAT
-AACAGGATACTAAAAAGTCCATATGGGAAAGGTGGGCCTTCATTAATGTC
-TCTTTAATTAGCCTTCATTAATTTCCCCTTAATTAGCCTTTGTTAATTTT
-GTCATTAGTAAATCTGCCCATCCATTTATTCACTCATTCACCTGCTGCCT
-TCCGAGGGCCAGGCTTCTGCAGGCTGTGGACAGCCACCCCAGGGCTGTGG
-CCGGGTGTGTTGTGGGTCTCCAGCTTCTCCCAGACCTCACGACTCTGGAA
-GCTGAGGTGAGCCCTGAAGAGGCAACAGCAGAAGCCCACAGCAGAGGAGA
-CGGCAGCTTGGGCCAGGACGGTGGCCCTGGGCACGGAGGAGGGATGGACA
-TAGGGAGCTTGCAGATGCAGGATGCAGGAAGGGCAGAAGGAACAGAGCCA
-AGGTGACGTGTGGGCACCAGGTGTGGGAGAACGGTGAGTGTCGGTGCCTC
-TTGTCTGGATGGTGGAGAGAGAGCAGCCGGTTTAACAGAGAGCAGCCGGT
-TTAACGTGGAAGGTGGTTGGTTTTcactggactgtgagttcttgagggca
-aaggccacgtccaccttgtttcccgtgtattcTGATGCTGGCATGAATGG
-CAAGAGATGAAATGGAAAATAGGGAATGCTGCTGTGCTTGTGCTGAGTCT
-GGGGCCTGAGAAGCTCCCAGCTGCCGTGTCTGTGTGTGGCCATGGCTCCC
-ATCTGCGGCCGCTCTGTGAGGAGCTGGTGCTGCGTGGCAGGGGCCACAGC
-AAATGCCTGGCACCTTTCGGGAGGTCAATCACCTGCCGGTTTCTGAGAGA
-GATGTGTCCCTTTTCTTTGGAATACCCCAGAATCAAAATCCATCCTCTCC
-ACCTATGAGGGGGTTCCACCAAGCCATCGGGTGGTAGAAGGCGCAGGCTC
-TGGGGCCACATAATAcagacggtccctgattgacgatggcttcacatgga
-actttccaacttttccatggtgtggacatgatacacattcagttgaaact
-gtgctttgaggacagaaattctaacttttgctttctgtacagtattccat
-gaattacatgagatagtccacacttcagtataaaacgggctttgtattag
-atgattttgcccaaccgtaggctgacgtaagtgtttggagcatgtttaag
-gcagggatggctaagctatgacacctggcgggttctgtgtgcccacagca
-ttttcagtttatgacattttccactcacaagggctccttcaggcatgccc
-cctcataagtcaaggggcatctCGGCTCCCACCCTGGACTCCTCACCTAG
-TGCCATGAGACGGGGTTGGCTGCCAAGGTCTACAGAGCCTCAGTTTCTGT
-ATCTGAGGCTCGGGAAGAATCGGCTGTCCTGAAAGGTCACTGCAAGGCTG
-GTGCCTGTCACCTGCTGGCACCTTGTCATCTGCTGGCACCCTGTGGTGTG
-GCTGAGCCGGGACTTGGAGCGCTGGAGCCGTCATTGTCATTGGGAAATGG
-GTCTCATGGAACCTCCCCACTGCAACCCCAGCCTGAGGCAGCAGAGACCT
-CGTGCTGCCCTTCCTTCCTCCCCTGACGCCTGAGTCTCCTGCATGAGGCT
-CCCAGGCCGGAAGGCCCAGGAGGAGGTGCTGGCAACAGACTTGTTCACCA
-GGGCAGCAGCTCCAGCATGCAAGGCTGGTGATTGTGGCTTCCTGACAGAC
-GGGGACCAGCTCAGGATCTCGGGGGCATCTGTGGGTCTGCCCCGGCCCGG
-GGCCCAGACGGGGAGCAGCTCAGGATCTCAGGGGTGCCTGTGGGTCTGCC
-CCAGCCTGGGGCCCAGCAGATGTATGTCAGTCTTTCCACAATCACCATGT
-GGGGGAGCAGAGGCTCTAGGGGGCCAAGGCATGGGGCGGGCTGTGTGGCT
-GGTTAGCAACTGGGGAAATGGAGCTGGCACCTGCTCCCCTCGTTGCTCCA
-TTTGGTCACTGTCTCAATAAAGTGCCTTAGTCATCTGGCTGAAGAGGTTG
-CCCCCTCCACAGACGAGGAGCCTGGGGTCACACTGCCTGTGTGTTCTCAC
-CAGATTGTCCATCAGGGCGGGATGGAACTGGGAGCCGAAGCCAGGACTGT
-GGGACCCCTGAGCCCAGGCTTATCTAGGAAGGTCCAGGGCTCGCCAGCAT
-TCCCTTAGGCAGGGACTTCCACCTCAACAGTGTCCTGGGAAGGTGGGCAT
-CCCGGAGCAGTCTGAGAAAGGTCCTTCTTCTGCCCCTGCAGAACACTCAC
-TAACCATGCCCTCACCTGCATTCACCTGGGGCTCTGTGGCTGGCAGGTGC
-GCAGGTGTGACTGCAGCTCAGACGTTTCACCTCTCAACTTAGGATCCACC
-TCCCCATCCTTCCTGCTTCACCATCAAAGGACACCTGCCCCTGTTTGTGG
-AGACCATGGGGATGACCCCTGCGTCCCTTTCACAGGTGGACCTTTGGGCT
-TGTCAGGAATTTCAAATGCGATCTGAGCCAGGGCGGGTCGGCCATGCCAG
-GGTTCAGAGGCATGAGGCTGTATTTCTCCAAGAGACGAAAAGGCTTCTGA
-ATAATAGAGCACAGCCCCGTGTTCTGTGTGTAATTCATGGGCCACGTGGG
-GGAAAGGGCTGGAGGGTGGGGCTGCCAGGGCCCCTGACATGCCAGAGCAG
-AGGTCTCATCAGATATGTACGTTGAATAATTTCTCTGTATTAGTTCAGTC
-TGCAGCCTAATTCAATTAGCTTGTTTCATCTATATTCTTTGACCttttta
-ttttaaaaaaaaatgaaaaaaaGAAACCTTGTTTCTTTCCCCGCTGGTTT
-TATTTTAGCCATGATGTAATCTTTCCATCACTTTCTGGCTTTACGCTCGC
-TCTCTGGGCACGAGGACCTTGGAGTAGCTCCCCGCAGGCAGAGGCTGCAC
-CAGGTGCCAGGGGCCAGAGAATGGGCCAGGGGCCAAGTGTGTGGCACCAC
-AGACCCACCCCTCCCCTGACACCCATCAAGGCAGCCACCCACACACCCCG
-TCTCTCCAGGCGTGGCCGTGTGGCAGGTGACCTGAGCACCCCCAACTCCA
-GGCGTGACCCTGTAGCAGGTGACCTGAGCCCCCCTCTCTCCAGGTGTGAC
-CCTGTGGCAGGTGACCTGCCCCCCCGCTCCAGGTGTGACCCTGTGGCAGG
-TGACCTGCCTCCCCCCGCCAGGCGTGGCTCTGTGGCAGGTGACCTGAGCC
-CCCCCTCTCTCCAGACATGACCCTGTGGCAGGTGACCTGAGCCCCCCTCT
-CTCCAGGCTTGACCCTGTGGCAGGTGACCTGCCCCCCCCGCTCCAGGTGT
-GACCCTGTGGCAGGTGACCTGAGCCTCCGCCTTTTTCTGCTTGTGTGGCT
-TGGAACGCCCAAAGGCTGCGGGTGGAGGGGCTGCCTTGCCAGGTCCAGCC
-CAGCTGACTTACAGGACTGAGGGCCACAGGACGGTGCCCATGGACAGGAT
-ATTGCATCCCCACCGGGCCCCAAGACATTCCCCAGGCCACCAATGTGTCC
-AGGCTTGCATTCTCTGAGACTTGGACCCTCCAGGAAGCATGATAAGGTGA
-TAAGGACACTGTGATCTGCCCTCAAGTCCCCCAAATTGTAGAAACAGGGA
-CCTGGGATCGTGCACAGGGCATAGAATAAAACCCCGGGAACCCACACTTG
-AGCTTCCAAAGCCCAGGGCCCAGCTCTTGTCGGCCCAGAGACCTTCCCTG
-CTGGCCCTGACATCCCAGCTCAGAGCCCCGGCCCCTCCGGCTCCCTCTGC
-CCCGACCATGGGCTGCTCCTGATGGATCCTGCCCTCTCCCTGCATGGCCT
-CCCCTCTTCGGAGGGGTCTTCCTGCACCACCCCCTGCAACACCTGTGGCC
-CCCAGTCACTGACGGACTCACCCACCTTCTGTCCTTCTTCACTTTCAGAT
-CTTTCCGGTTTTGAACACGGTTTTGCATGCTGTGTTTTGCTCACTGCCTA
-TTTCTACCTCCCACCTCCCCTGAGGCAGAGGCCCCCTCTCATGCGTTCCT
-TGTACCCCCCAGTTTTCCTTCAGGGGAGCGCCATGGACCTTGGAGCCCTG
-AACTCGAAGCGCATCCTCTGGCCGGGTCATGCCAAGGCTTGTGATGCAGC
-CCAAGGGGCTGTTCCGAGAATCAGGGAGCATCGGTGCACAATTCCAGGTG
-CAGGGTAAGCGTATGGCCTCCTCGGGAGCTGGGGATGGTCCCCAACcttt
-ccaaagagcaccgtgtgggagggggagggaaagtgactctgcagaggaga
-cacctgagggacatacctgagccaggcgacgagggtcaagcccattgtgc
-tgggccctgcggatggtctgggccctcgcacagtgtggtgagaacagcct
-cacctctgatgtcctgctgctgagaatacctaaccccaggctactcatga
-gaaaaccatcgcactagttttaatatagggacaacctactcaacccctgg
-ccagcacgccgctacactgcccagcgtccaggtcatcaaaaacaaggaaa
-ccctgagaaactgtcccagccaaatgccatgtgggaaccttggcgggatc
-ctggggcaggaaagaaaatgacatctgggaggcactgaaggtgccaaaaa
-ggccgggcacggtggctcccgcctgtaataccaacactttgggagacgga
-ggcaggtggatcaattgaggccaggaattccagaccagcctggccaacat
-ggtgaaaacctgtctttaccaaaaatacaaaaattagctgggcgaggtgg
-cgggcacctatagtcccagctactcgggaggctgaggcaggagaattgct
-tgaatccaggaggcagaggttgcagtgagctgagatcacaccactgcact
-ccagcctgggtaacagagcaagactctgtcaaaaaaaaaaaaaaaaaaaa
-aagccccgaaaatagtatgaatttctcttgatcaatatagttgaactttc
-gtatgaatattggttaattaactatatccaatgtgtaccactaatgcaag
-atgttaataacagggaaaactgggtgtggggagatggaaactctatacta
-ccttcacaaccacgcctatgcatcccaaaccatcctaaaataagactttc
-atttaaaaGGTGTATGCACAGACGTGTTTATTGAAACGTCACTTATGAGC
-AAAGGGGATGGCCTCGTGTCATGCGAGGCCTTGTGCAGCAAGGGACTGCG
-TGACCCTCGAACTCCCAGCAGTTCACCTGCATCCAAATTACATTACACTT
-TGGCTGGAAGATACAATCTGTAGATTCTGTAAGGAGATCATCACAACTCT
-ATAAATATGCGACGTCTGGGAAAACGGATGGAAAGAAACGCACTGGCATG
-TGCCCTGTGCTATTTCCCAGGGCTTCTGAGCAAGTGTTAATTAGTTGGCT
-GAGAGATGAGTGCACACCTGGGCAGGTGCAGCCCAGGGCAGGCAGCAGGA
-AGGGCGACTGCAGGCGGGCTTCCCCGGCGGAGGCTCGTGGTGGCAGGAGC
-ATGGGGCGGGCGTACCATCCTAGAGCAGAGCTACGGGGAGTCCGCATTCA
-GTTGCACGCCATCCAGGGCTGTAAATCCATTGGCCTAATTTTGCTAAATA
-AGCAGTGGCCTTGCAAAATCTGAGCTTCCGAGCTGAGTGTGAACATCCAG
-GCCCTGAGATGAGGTTCGGTTTTGACACCATCCCAGGAGCTGCCGGCTCT
-TTGGAGCTGGTGCTAGGAGAAGGCAGCGGAGCCACGCCATGGCCACCAAT
-GGGCTACTGCTGCACCCATCCTATTAGCAGGCACCAGCCTTCTCTGCTCG
-GAAGATTAAAAATTTTGGGAGTAAATCCAGGTCTTGTCTGACATGACATT
-TTGGAAGCAAAAGCTCAGAAACTTTTGTGCTCCCTGTTAATAGGATAACA
-TGCTACAGTAGTTACAGTAATTGCCCCGCGCTCCCCTCTGCCTGCTGGAC
-GCTCCCTCTGCTGCTGGATGCAGGCTTGGAGCTGCTGCCTACACCGGAAA
-TGAGCCCCAATGAGCAGCAGGCGGGATCGGGGCAGACGGGTGGCTGGGAG
-CCGCCATCATTCAAGGCGGGCATCATTTAGGAGACGAAATGCCGACTGGC
-CTCTGTTGCCTCACTGAGCTCCCCCCAAAACCTGGATCTGGGGCCTGAAG
-CTTCATCATGAAAACCACCCCATCCTAGCACCCGCCAAGGGGAAGATCAT
-GGGGAGAGGAGGCAGGAAGGAGCTTCATGTTTCCCAGGCCTGTGGCTGGA
-CAAAGGCCTCCTCACACCTGGGCACTGGAGTTCTTGGGTTCTTGTCTGGG
-GGCTGCTGGCAGCAGGTGGGTTTGTCCACAAGGTCGCTGTACCAGGAGAT
-GGGCTTGAGGGATCCCGGTGATGCATAAAGCCCCCAGCACGGGGGCCGTT
-GCCTCCCTGTGACGCCCCGTGGAGCGCACTTCAGGTCCACAGCATGGTCA
-TGTGGATTTCGAATGCAGATATTACAAGGGGGCATCTGAGTCCAGGCTGT
-CCTGATGGGTTCAGAGCCCAGGACAGCCCAGGGGAAGGGCAGGAAGGGCA
-GGTGCATGTCCAGGGCCACGTGTGATCACCAGACCCCTGTGTCCCGTGGT
-GCACACCCCTCTTGCCTCTTGGCCACGGGGTCCACTCTGTGACCAGCGAG
-GATACTTGGGACCTTCTTGCTTTGACGCAATGGGCCGAGTGACCGGGCGG
-CTGTGGGACCCCAGTAAGTACCACCTGCCATCTCCCCTCGGGCAGGAAAG
-ATGGCACCAGAGACTTGTGATCAGAAGCTTGGAAGCTTCCGGAAGACAGT
-GAGGGGAAGCCGAAGTGGAAGACCTGGTCAGGGTGTAGCAGAGAAAGGCA
-CAGTGGAGGCGAAGAACGTGGCTACGAAGCTCCCAGGCTGCTGGGAGCCC
-TGGAGACGTGCAGGCTGAGGCACCCCAGGCCGCTGGGAGCCCTGGAGACG
-TGCAGGCTGAGGCACCCCGGGCCGCTGGGAGCCCTGGGGACGTGCAGGCT
-GAGGCACCCCAGTCCCCACACAGTTGTCTGGCTCCGTTTCCGACACCTCC
-TGTCTGTCTCCTGTGTGGTGGAGGCTTCAGCCCCCAACAGGTGGACGGGG
-TGCCGGCCAGGGTGCCCACTGCACTGTGGCTTTCAGCTAACGGCTTGGTC
-ATTTCCACCTCAACAGCTCCCCTTTCCTCCCTAATCAGCAAGTCCTGTAG
-GTTTGTGTTCTATTCTCAAAAATCCCAAACTCCTGCTCCTCTGTccaccc
-cacagccccacttacagccccacccacagcccccacccacagccccaccc
-acggcccccacctacagccccacccacagccccacccacagcccccaccc
-acagcccTCCCCCAGTCCAAGACCCGACCCCTCTCCCCAGATGCCCCAGC
-TGCAGGCTCTGCTCGGACCTCACTCCAACGTCAACTATTGCACCTGAGAA
-ATGCCCTCGGGACTTTGCAAATTCCATTTCCTCTCTGTCTGGATCCCCCT
-CCCAACCCCGCCAGCCAAATCCCCTGCCTGCCACCCCTACACCCCACCAG
-ACGGACTCCAGCTCGGCCCCCGGCTCTGCCCTCACTGCCCAGGCTTTGGG
-AGCCCACCCAGGACCAGGCTGAACCCGTCTGCAATTTGTTTCCAGGGCCA
-CCTGCAGCCAGGTGTGTGCCAGTCACCGTCTTGGGCTTGCAGTGATCAGG
-CCAACAACCGCAGTGAGGGTGGCTGCTGTCCCAGGACAGAGACTGTGCCT
-CCCCTACTCCCATCCCCACCGCCACACAGCCTGGGATGGAAGCCGGTGCT
-CCTGGGAGGAGACTGCAGGGCACTTTCCTTGTCAATCCAGTAGTTCAGGG
-GCCAGGGAGAGTGATGCAGAGAGGGGAGAATGGGACATCATTCTTCAGCG
-GGCAGGGAACACACAGGGATTTCTGGTCAACCCAGGAAAAGGCCCCTGGC
-GAGCGCCCCTGTGCCTGCGAAGGGGAGCCCAAGGAAGGCCCTACCTGTAG
-CTCCGCTGGCCGGCAGGCAGGAGCTCCTGTGAGCGGCTCTTCCCCACCGC
-AGCAAAACCTTTGCAGTCGGCATCGCACTGGTCATTCTTAAAACCTTCAT
-CTGCTCAAGAAACTTCCATGGCAGCTGCTGACCCCTTGGGAAGAAAGTCC
-AAACTTCACAGCCAGACCCTCCGTGTTGCAGTGTCCATCCTCACGCCCTG
-GCTATGATGTCCAGGCCCCTGCGTCCTCCCTGAAGTGTTAGGCCAGGATG
-TCCTTCTGAGCCTACCAGCCATGGTAAAGTGCCCTGTGCTGTTGATGGGA
-GGATGGATACGAAGAGAGATGATGATAGATCTAGGCACAGATACACAGAT
-ACCTGGATGATAGACACGATGGATAGGTGCCTCTCTCTGTATAGAGATGA
-TAGATCTAGGCACAGATAGACAGACACCTCGATGATAGACAGATGATGGA
-TAGGTGCCTCTCTCTGTATAGAGATGATGATAGATCCAGGCTGAGATACA
-CAGATACCTCGATGGTAGACAGATGATGGATACACACCTCTCTCTCtata
-tatatatatgtgtatatatatatatatatatatgtatatatatatatatg
-tgtatatatatatatatatgtgtatatatatatatatgtatatatatata
-tatatatgtacatgaatatatataaatcgtatatatatataATAAATATG
-TGGGGACTATGAGTAAATATTTGTACTTCTCATTGCTAAGTCTTTCAAAG
-TTTGCTTTGGATTAAAAGAACAAAAAGAGTTGTCCAGGAGCAAATGATGA
-GACAGCACAGCCCTGCGTCCCTCCCAGCCTCAGGCTGATCACAGGACACC
-TGTCAGGGTGAAAGTACACAGGACGTGCCGCAGGTGAGCCGAGCCAGCAC
-CGCCCACCGAGCCTCCACAGAAGATCCTCCACGGTTCCAGGATGGACAGT
-CCCTACAAAATCAGCCCTGAGAATCACTGAACTTCACAAATTGTCCAAGG
-ACGAGGCACGTCGACTTCGGCAGATGAAGTTTCTTTCCCGAAGTTGTTTT
-TCAACACAGCGAGCAGTTCTCAGAAACACTTTGGGTGGCTTATCTGGGAA
-GTTATATCTGCTCACTTGGCAGCCCTTTCCACATCTTACAGTGGAGCACA
-GCCGGTCACAGCATCGATACTGTGCACAGTTTAAAACCATCTGAATGTTG
-TCTTCTTGGAACATTTCAGAAACCTGCAAAATTAGTTGATAGGAAGGCAT
-GAAGGCAGTGCCTCTAGCTCCATCGTGCTGCACATCTCCATGAGAAAATT
-GAAGCTCATCCTTCCAAGCTGCTGGTGACCCTCAGGATGGGTGAGCATGC
-GCTTGGCCTAAGAATCCCAGCCAACCTCAGCCGAGGGGAGCCCCTTCCTG
-CTCCCCCCACGACCTGCTGCTTTGCTGTTCGCCACCAAAACTCCCCGTGC
-GTGCCGGAAAGAGGTGAGGGTGACGATACTGGGCTGACTCCAGCAACGGT
-GCAGCCCTCACATGGCCTTCGATGTGGGAGGGCCATGCTTGTGTTTGTGG
-GGAGCCCCTTAGAGGACAGcctccctccctccctccctccctccttccct
-ccttcccttccttcctccctctcttccttcttccctccctccaccccttt
-cttcctccctccctccctccctcccttcctcccttccttccttccttcct
-tctttcctttcttccttccttccttccctcctctttccttcctCTTCCCC
-caaaggcctattaatcactggctgtgtgtgggcatctgggccctggacat
-aggtcaatgaacaaaacgacatccctctactctcctaggtttgtgtccca
-gggtgacaacaGCAGCACCACTGATGCCTTCCATGAGCCTCCAAGCTTGG
-TGCATCTCAGCACAGCTGGGCCTAGCCCAGGCTGGTTCCTCTGGCCCTAG
-ACCCCCTCCCACCTTTCACACCCTCTGGGCCTTTCAGCAGGTGCTGCCTG
-GACTCCTGTGTCTCGGACACTTTTCAGAACTGCATGGAGAGTGCACTGCA
-GGTGGGGTCTATCTGTACAAAGACCGTGAAGGCACCATCCAGGTGCAGAG
-ACAGGAGCTTGGCGAGGTAACGGGGGCGGGGAGGGGGTGTGGAGGGGTAA
-CGGGAGTGCAGAGGGGGTGTGGAGGGGTAATGGGGGCAGGGACGGGGTGT
-GGAGAGGTAATGGGGgcaggaaggccttggccaaggcaatcatggccatc
-catgcttcctgtacagcctgcagaaccatgagctaattaaacctcttttc
-tttataaattacccagcctcaggtgtttccttatagcagtgccagaacag
-actaacacaCAGCCCTACACATTCTGAATATCTTCTTGGGGCTGGGCACC
-TGTATGTCTGGGTGTGGGACTCGGGCTCTGGAATGGAATGAAGGGTGTGA
-TCATGCTCCAGGCGAGAACCTGGGTGCCACCTGTGTTGGGCCTGCCTCTT
-CCCACACACCACCCCTCACTGCCCTGCTAAGGAGCAAGAGCCAAGTGGGC
-TGAGAAATCCCACTGCTACCCCAGTGAGCAGAAGATGGACTGGAGAAGAC
-AAACCGAGCTACACGAAGCAGGTGTGGGATCTGCCCGCGTGCTCTGAACC
-ACGGCATGGAGATCCGCCCGTGTCTCTGAACCATGGCGTGGAGATCCACC
-TGTGTCTCTGAACCACTGCGTGGAGATCCGCCTGCGTGCTCTGAACCACG
-GCGTGGAGATCCACCCGTGTCTCTGAACCGCAGCGTGGAGATCCACCCGT
-CTCTGAACCGCAGCGTGGAGATCCACCCGTCTCTGAACCGCAGCGTGGAG
-ATCCACCCCTGTCTCTGAACCGCAGCGTGGAGATCCACCCGTGTCTCTGA
-ACCGCAGCGTGGAGATCCACCCATGTCTCTGAACCACAGCATGGAGATCC
-GCCCGTGTACTCTGAACCATGGCGTGGAGATCCACCCGTGTCTCTGAACC
-ATGGCGTGGAGATCCACCCGCATGCTCTGAACCACGGCATGGAGATCCAC
-CCGTGTCTCTGAACCATGGCATGGAGATCCACCCGTGTACTCTGAACCAC
-GGGCGTGGAGGCAAGAACAGCCGGTGTCCAAGGGCTCCGAGTCCACTCAC
-CGCCAGCCCCATCCCGAATTCCTGCCTTGCCACAAAGAGTCACCTTTAAG
-TGTTGATCCTAAGGAAACAGAGTAAACAGATGTGGAAGTGAATTGTCAAG
-AATAATCACAGAAAATAAAACAGCACAGGGTTTCCTTTAAAAGCATCACT
-GTGGACCGaattcatatgttaaagcccaaccccaatgagacagtatttgg
-agatagggccataattaagattaatgaggtctttaggatggggccctaag
-ccaattggactggtgtccttagaagaagaagaggctctggggtgcaggtg
-cacagagaaaggatccatgaaaacacagcaaggaggtggccgtctgctag
-gcagggagaggcctcgccagggaccaaccgaacccatgccgccatcctgt
-acttctagcctcctagacggtgaaaaagtaaatcagtgctgtttaatcca
-tccagtctgtggtattttgtcatgtcagccagtgcagactaaGGCGGCAC
-AGGAATACCCTCCACCCACGTGGCCCAGCCTGTATCCCAGGCTCTGACTC
-ACATTAGCACACCTTTCACCTTGGGGAAAGCAGAACCAGAGGCCGCTGGG
-CGGTGGAGCTCGCTTCTTCTTGAGCACAGTGGATCCTTGGAAGAAGGGAG
-GGTGGTGAGAAATGGGCAGAGGCCAATCTTCAATGGGAGGGCTGGATCCT
-GTCTCCAGGCCCAGGGATGGGTGAGTTTTAAATCAAGAGTACTTGGCCAC
-ACCAGAGGGCCAGCTGCCAGGGTGATCTGGCCCCCGAGGGCTTGTCTTGT
-CTAAGAAATATCACAGGAGTGCGGTCCTCTGCACGCATAAGGTCGTCTGA
-GGGGTGACCTTACTCACTGCCCATCCATCCTGCACCAGGCTGGCCCCGGC
-CACGAGGCTTTGCAATCAAGGATTCCCAGCGCCACTAGGACTTGTTGCCT
-GCCCAGAGTTTCTCATGTCCATGCTAAGAAAATCCGTCTCCACTCCGGGT
-GCCTCTGCAGGCATATCTGTGACCCCCGGAGACAGGGATCCACTACCAAG
-AGTGGCTCTGTCAGGCCTGAGATGAGCTGTGGCTTTGCAGGCTGGCTTCC
-TCCCTCTGTATGATGCTTTCCGAACAAGCTTAGAGGAAAATGTCACAGCT
-CTTTCACCTGCACAGGAAGGCAACCCTCAGCCCCCAGCCACACGAGTGGG
-AGCCAGGAGGAGCACTGTAGCCTGCACTCTCATCTCAGGGACAGCCAGCA
-CTTCACATCTGCAGAAGCAATAAGGACATTACAATTGCATATCAGTAAGA
-TATTGCCAGGATGATGCTATGTAGCAACCATCCCCAATCTCAGTGGCTGG
-TCAGTAACCTGTCTATTACTGCTCTCAAGTCTAAAACTCAGCTAAGCAGT
-TCTGGTCTCAAATGGGTTGATTCCTGAGTCTGTAGACAGCTCTGCTCACC
-TTGACTGGGTTCTCTTATATGTTTGGGGTGAGCTGGTCACTACTGCCTTA
-GGATGGCCTTGATCGCCTCCTTGTGTCTCCCATGTGTATCCCTCCATTGG
-GCCAGCCCCGGCGTGTTCTCATAATGAGACAGATGGGTGCAGTGAGCAAA
-CCCCACTGTGTAGGGCAGTAAAGGAGTTGGGGTGCATGATCCAAACCTCT
-GCCTGACCCACTTGTGCTAACATCCTGCAGGCAAAGCCCATGCTACAGCC
-AGAGCCTGGGTCAGTGAGGGAGAGGCCTGCATGATTACTCCACTGAGGAC
-ATAGACACAGCACATCCACCGAGGACACTGGATACTGTGGTCAGTTCTGG
-CTTGCCCGTAAGTCAGAgagctgccaaacgggggatagccctctagggtt
-cttgtatttgcccaggaaagaattcaagggcaagctggtggttgggtaga
-atagaagagctttatgaaagccacagtgtcacaggtccatggctgctcct
-gtccagcagggccaccccacaggcagtgtgctgagctgagaggagcggct
-cagggtggttctccagtcatatttctacacacttttaattacatgcagat
-taaggagtggtttaggcagaaatttctagggaaggggtagtacatttcgg
-gtcattgagtcattgccatagaaaggggcagtaacgcctggctgttgcca
-tggcaatggtagattgacagggcacgctggtgggtgtatgctatggaaaa
-ctgcttccaccccagccctgttttagctaatcctcaatacagtcccttgt
-cggagccctgcctctggagttgagtcccgtctcctgcatcaAGAAGCCAA
-GGAGATATTTTGGATCAAATTTAAGCAAAAAAACGCATGGATAAAAGAAA
-ACTTATTAAAGAATAGTCCACATTCAGGAGAATGCACATCTCACAAACGT
-GGAACTCTGGATTTTCACGAACTGCAGACAGTTGAGTCAGCAGCACTTGC
-AGGAGCAAATGGAAAATCACCAGCTCTCAGAACCTCCGTCCTGCTGGCTC
-CAGTCACCTCAGCCCCCTGGGGGCAACATCACAATGGCTTCTAAACCCCT
-AGATGAGTTCCATCCACCTCTGCATATCCTATGAGGTGTGCAGGCCTCCA
-CAGTTAGCCTCGTTCACTCACtatattaatctgttctcacgctgctgata
-aagacatccccatgactggacactttacaaaaaaaaagaggtttattgga
-cttatggttccatgtggctggggaggcctcacaatcatggtggaaggtga
-aaggcatgtctcacatggtggcagacaagagaagagagcttgtgcaggga
-aactccccttttaaaaccatcagatctcatgagactcattcgctatcatg
-agaacagcacaggagagacctgccccacgattcaattacctcccaccagg
-tccctcccacaatatgtgataattcaggatgagatttgggtggggacaaa
-gccaaaccatatcattcagcccctggcccctcccaaatctcatgtcctca
-catttcaaaaccaattatgccttcccaacagtcccccaaagtcttaactc
-atctcagcattaattcaaaactccacatttccaaaagccttccaaactgt
-tacaacctctgcctgtttcccagttccaaagtcacttccatgtttttggg
-tatcttttcagcaacgccccactctaccggtaccagttgactgtattagt
-ctgttctcatgtggctgataaagacatacccaagactgggcaatttacaa
-aagaaagaggtttaatagactcacagttccacgtggctggggaagcctca
-caatcatggcagaaggtgaaaggcaggtctcacacggtggcagacaagag
-aagagagcttgtgcaaggagggtcccatttttaaaaccatcagatctcgt
-gagacttattcactatcacaagaacagacccaccctcatgactcaattac
-ctcccaccaggtccctcccacaatatgtgggaattcaagatgagatttgg
-gtggggacacagacaaaccatatcactcaccattttgcccatgagatttg
-cccacatggtctccgcagctgcagaccgcacgtcctcacggccgtagaag
-tgccgtcagtgagatgatgtgccctggcttatgtgttcaaggggcattcg
-gactctttccagtttgaggttattatgggataggaggtgctgctgtgtac
-atgttggctgtcatttgggtacatacctgagaatcaaactgctggtcttg
-gagtaggcttggctttattagatgctgtcaaagtctaagcgacccttcac
-atttcgcattcccccgagtagtgttcagggtttacttggtgcacacttgg
-ccaacacgggatgtccttctatttctagccactctggtgagtcatcagtg
-gtgcacaccatggtttcaagttcatttgcactttctcagtgtctataaaa
-attgagcaactagcagtacctttattcacatctccttgtctgtgaaagat
-ccactcaaatattctgctggttctgcggaatgatctgctttttctcagtg
-atttgtgggaatcttgcgtgttatggatttcggtcctttgctgggcatat
-gtgctgagaatatggcctctcccccatggactggtttttccttctcctaa
-tggcatcttgttatgagtagacattcatcttggctcactccaaggttaca
-aaagtgctttcctggctgggcacagtggcttatacctgtgatctcagcac
-tttgggaggccaaggtgggaggatgaatagaatccaggagttggagacca
-gcctgggcaacagtatgaaactctgtctttacaaaaaaatataaaacttt
-agccaggcatggtgtcatatacctgtggtcccagctactcaggaggctga
-aacaggaggatcacttgagcccaagaagtcaaggctgcagtgagccaaga
-tcacactgccaccactgcgttgcagcctggacaacagagaaagtccctgt
-cttacaaaaaaaaaaagaaaaaaagaagaatattttcctccacaattttt
-attgtcttgtctttcatatttaaacctgaaatttatcttaaactgatgtt
-cgatacgctatgatgtagaacttgaagttaattttttcccatatggtctt
-tgattcctcaagcccccattactgaaaagaacaccctttcctaccgtggc
-accaccccacctctgtcataaatgagtggatggcatctgagtctgtctct
-ggacttttcttatttcagtggccagcatgcttatctttgctctctttaat
-cctgtagatttgcagtcatatgggggtggacgtgatatctgaccaggtcc
-atcctcaactttgtgcttcctcaagactgcaatcttcttgtctctttgag
-ctgttgcatggaatttagaatcaacttgtcaaagaccgggggaaaagact
-gccaagattttaattgatattacattggaatgttttgattatttcaggga
-gaattagtatctttacagtaccgaatgctgtcatccctcaatgtgttatt
-tccattcatttatgccagatttctttaagctctctcagcaatgttttgta
-gttttactatcgatgtcattcacatcttccattttaattcataggcattt
-gatgttttaatgctattgtcagtgacatttaaaaatgtgttccatttgtt
-gctgttccaaagaaatatgattgattttttatgttggccttgaatctagt
-gaccttggtaaaatcacttgcaaaatctaacagtttgtctgtagactttc
-tggattttctatatacacattcacgtcatctgtgagtaatagcactttca
-tctcttcctttccaatccttatactttaaatttctctttgctgtgggctg
-cagagatgggacctccaggacaatattcagtagaggtgtggtgaccatgg
-ctgtccttttagtgcagactccagggacatttttgcaatatttcaccact
-catgatgtttgttttggaattttctgtagatgttttttaccagattaaag
-aatttcttttttgttccaagtgtgtttattttgtaaagtcatgaataagg
-gttgaattttatcagtatttgtttctgcttccatcaagataatcatgaga
-tttttcttcacaccttctgttactatgatgtattactttgattttttttt
-gaatgttaactcacacttccttccctggaataaactccagttggtcataa
-tataatatatgctttacattgttaaattgaacttatcaaggtctcactaa
-cacggaatgaaatgcaccaattttaactgtacacttcagtgagttttgtc
-aaagttcgttccccaggtaatgtccacccaattaaaacacagaacatttc
-cttctcccttagaaattccctcttgctacctcccagtcaagtcttgtccc
-cactccacataagcactgatgcaatttctatcaccttatgctaaatgtac
-ttattccagttaaataaaaatgcaatatttgacctctttatgtctgatgg
-cttctgctaagcatgatatacttgtgaaaagcaaccgctttttcatacat
-ctccaggattccttttaaaatataaaatggactttaaagtaatttcagat
-gtatagaaaagttgtaaagatagtacagacagtttctgaatacctttacc
-cactatcccacgctaatgctttacataatcatggggtacatttgtcataa
-ttgaaaaaatttacattggtaaattgctgtcaaagaaaccccatgcctta
-ctgtgatatcagcagtttttgcacgaatgcgtggtttcctgttccaggac
-cccatgcgggagactggatcacttttatttgtcgccttagcttcttcagg
-ctgtaattgcttctttctaaaatttttttttagtaagttaacaatcgtga
-ggaatactgtagctccaaaatgtctctccgctggggcgcctgtttttcct
-gcaactgtactggtgttgagtgtttggggggacagacaccagagttaaag
-tgcccggctcatcctgctgcctccccgcctctcaaaacaggagacgtgac
-gttcgcccctggtgaaggcatctccacggtagttattttttcctggatta
-tgctatatttgttaaatgattctctatttgttggattatgctctatttgt
-tggaagtaactcaggaagtccagctcacacatagagaagagaagctaagc
-ttcatttcctggagCAGAGAGAAGCTCCATATATTATTTCAAATTtgctg
-tggactgaacgtttttgtgtctccccaaaatttctacttagaaatactca
-tcccaaggtggtggtattaggaggtggggcctttgggaggtgatttagtc
-atgagagggagcctcactggtgggattactgccattatgaaagagaccag
-agagaccccttcccctttcacctcatgaggacacagccagaaggaggctg
-tctccagatgatgaatctgccagcaaccgggtcttggatgtctcaacctt
-caaaactgtgaaacataaatatctgttgtttataagccactcggtctatg
-gtattttgtcacagtcacccaaacagaccaagaGAgaaattggtatcgag
-agagggatgctgctccaataggtacctaaaaatgtggatgtggctttaga
-actgggtgacgggtagaggcggaagagtctggaagtgcatgtaataaaaa
-gcctatgttggcctgaatgaactttcaaacgccatcctgatgagggctca
-gaaagaagaaaggagggcttggaggaagccccctccttcctagagagcat
-ctaagtaaccctgaggagaatggctgcagaaatggggatcataaagacca
-ctctggcaaggtgccagtgggagtgagaaacacattaccagacagtggaa
-ggacggctgtccttgttacacgatggcaaagaacttggctgaactgtgtt
-tgtgtcctagtgttttgtggaaggtggaacttgtgaacaataaaatttga
-tatttggctgaggcaatctgtaggcatggtgttgaaggagtggcttggtt
-tgtcttgacAAAGGAATACAGTGTAGAAATGGTCAAGTCAATGGGCTATC
-CATTGATCCAATGTATCAATACAGACTCAAGTACGGGGCATTGATTTGAT
-CCAATACAAGAATTGGATGCATAAATTGATGGGGAGACAGAACACATCTT
-CCTTACAGAAGGTCTCTTCcttagttcgtttgggcagttacaccaaaggg
-ccctagactggaggctcataaacaacagaaattaatgactcccagttccg
-gaggctgcaagtccaagataaaggccatggcagattgggtgcctggtgag
-ggcccaagatctggttcatggactgtgccttctgtccttgtcctcacatg
-ctggaaggagtaTTCAAAATTCAGGCTACCCCTGAGTCTCTGAAAATACA
-TTTTATGAATGAAGTGAATACTTTCTTTCATGATACAATTGAACCTTAAG
-GAAGATGAGCCCGTGTGCCTTGCTCTGAAAGTTCATCAGACTCATCCTCC
-TTCCAAAATGCACTTCCGCTTGACTGTGAAACTAGCCCAGTGTGTCAGGA
-AGTGGAGAAACTCAAGCCCTGCCCGTGTGCGTGTGAACACGGGTGTGGCC
-TAGACGCTCCAAACTCTGCCTGGAATGACAGCCAGCTGAACCAGCAAAGC
-CATCAAATGACTTCCACCGTTGAGTTGATCGGTCTTCTAAGTGTAAGAGC
-GTTTATTACCAGAGCCCGCAAAGTGAGGACTATTATGGCAGGAGATTTCC
-AAGCACTCTCGTCCCCCCACAAACACACACATGCAGCAGGGGTGGGAAGA
-GCCCCTCCTGTTTTTCAGCCCTTTCATGAACATCACACACACATCAGCAT
-GGTATGAAGGCCACGGTGGGGGGCTTGGGGCTGGCACAAGAAGGGCCCCA
-GCTGCAGCCATGGCTGAGGGAGGTGGGGACCTGCTCTGTGCCCTCAGTGA
-TGGACTGGACACTGCTGTCTCATAACAGTCCTGTGCACCTCTGCGGGGCT
-CACCAGAGTTGCCCCTTCCTTCTTCAAAAACATTTACGTGTTTGGTACAC
-CTGTTTAATCAGTCTGACTTTCTCCACTGTTGGAGTGGTGTGCTTACTTC
-TCTTACAAATGAATAGAATCATTGAATGTAAAAGAGATGGAAAAATAAAG
-CTTCTACCTCAGCGTCTTGGGCGATGAGTTTCGATGGGTGAGGAAACGTT
-TCCGCGAGATAGAGAAGGGGCGCCATTGAGTGAACAATCTCATCTTTCAC
-CTCCAAGATTCATGCACTAGCAGCCCCAAGCCCCACCAAATGAAGGGGTC
-TGGGTGGTGTAGGCACTGCCTGGTCATTAAGGAATTCACCAAGAGAGCAC
-AGGTAGATTTTCCACCAAGGCCAGAGTGAATGGTGTTTAATGAACGTGGC
-TTTATCATACCATGGTGAAGGGATTGCCACCGTCAGAGAGGAGTGAAGCT
-CCCCAAGGTCGTGAATTGAGGCTGCCCTGGAGAACTGGAAGCCACTAGAG
-CTGGACGGGGTGGGAGAAAACGCACCTACACCCACCATGCCTGGTGCACA
-GGCTGAATGGCCGGGACGGCCTGGCCCTCCCTGATTCTGAGGTGTCGAGT
-TCCCTGGGGATGCCAAGGAACCGGCAAACATCAACCAACTCAGAATCCCA
-GCCCCGTGCAGATACTATGGGACATCACTCAGAATCCCAGCCCTATGCTG
-ATGCTGTGTGACATCACGTGGAGTCCGTGGCCTGTGTGTCAGGAAGCCGA
-CAAAGCCAGGACCCCACAGTGAGGCCAGTGTGAGCTCCATCCAGGCCCAG
-ATGGGTGCAGAGGCTCTTGCCCATGGTGCCCATGGCTGAGTTCTCCCCTC
-TCAGCCCCATGTGGACTCTCCACAGCCTGCTGGGGTGCTGTAGCCTCCAT
-GAGATGCTTATCCGAGCTCAGTCTCTGCACCGTTGAATCAGGAGCCCTCG
-GAGAGCAACAGCCCCTTCCTTCATGCACCGACTTCTCTGGGATGATCCCA
-AGCCCTGGACATCACGGCATGGACGACGTCCATCTCAACCTGACCACTGG
-AGAAGCTGGTCAGCATCCACAGAACCGACATGGGGGAGCTGGGGGGGCCC
-CACCCGCTCAGCCAGGGACACAGACAGCCTTCATCCTGCACTACCTGGCC
-TCCAGGACTCACGGATGAGGACCGGCCCTCAGGACGGTGGACACTCACCT
-GTCAAGCCCAGAAAGAGTCCGGCTCTCTGGAACCCAGCCTCAGGAGGGCC
-CCTGGGGACTAATCCTCAGAGTTAACTCCTCAGTCCTGCTGAGTTTTCCC
-ATAGCTGACCGATATCTGCTCAGGGGTCAGGGGGACCCAGCTCCCCGCTG
-GGCCCAGGGCTTCTGAGAACTCACCCTGGCTAACATCCTCCAAGCTCCTT
-TGGCAGACTGGCCCCTGAATCCTCTGTGGGCCCGAGACACTGGCTGGCTC
-CCTAGTCATCGAGCAGCTCCTGCTGGACTCCCCACAGGGGATGGAGCAGG
-CCGCGTGGTGAGGCCACACAGGGACAGCGTCGGAACGGCTCATGGTGGGA
-GCAGCCACAGCGCACCTGCCTAGAACGCCTGGTCTCCTGCCTCTGTGCAG
-TGTGGGCGAGGGGGTGGCTGCCTGCTAAGGGCTAATGAGAAGACAGGACC
-TGAGCGGTCACTGCCAAGCGGGGCGCCCCTCTGCAGGTGCTGGATGTGGC
-CACATTATGAAAAGGACGCCTCATCCCTCAGCTGTTTCGTAAATTATCTA
-AAAATCAACCTTCCGTTCCAAAAGTGACCTAAAATGATAAGCTCCGTGGC
-GGGAAATGTTGCCAAATGTTTTCTTATGAAAACCATGATGTCAGAAAAAA
-GGCGTAATGTCTTTATAGAGGGCTGGAGCGGCCGGATGGGGCCTCTGGGG
-CAATCACCTTAAAAGCTTTCCAATATTTTTAGACTTGTATTTGCTATTTG
-TTCGAGTCACTTTGGAAGCTCAGCACAGCTTTTGTTTTGGGGGTTTTACG
-AGTTTGTTTAATGCCCACGGTCCAAGTGTTTCCATCCATTAGCTCGGCTG
-CGTCAGCGCCACCGCGATCTATTAACTCCTCCCGCCAGGCCCTCGGCGGC
-CCCGTGGCCACGGCAGGCGCTACCCACCCTGGCTCCCTGCCTGTGGCTTC
-AGAATTTGTGGAGGTGAGCCCTGCACAGCCCGGCTTCCCACTCTCTCCGG
-GAAGCCACCATCCCTGGCAATTCTGTCCCCCCGGAGGTCGGGCCCTCATC
-AGCTGCACTGTGTGGCCTCCTGTCTCTGGGACTCCTGTCCTTGACCCTGT
-TATGAACGAGGGAAGCATCCTGTGATCCTCTTTGTGGTCTTTGCTGCTGG
-TCGAAGCATTTTTTGGGGCTCAGGGATGGGAACTGTGTCCTGGACCACGT
-CCAGCCTCGGGGCAGGGCAGAGATACACTGCCTGGGAGCCTCTGTGGTTC
-CAGCAAAGCCGCCCAGGCTCCAGCCCTGCCCCACGTTTCCTGGAGGGCAC
-AGGCAGTGCCTGTCCTAACCCTGAGAGGTCTGCTCACGGGGTCACCCCAC
-TGTGGTCCTCATTCCTGATATCGAGCCTGAGTCCCTGAGTCATGGAGATG
-CAATTGGAGATGCTGTGGACCCTCTAAGAGGAATTTCCGTCCCAGCTGTG
-TCCCTGGGGGTGCCCTGGCCCCGCCTGTGTTGCCCCTGGGCTGCAGAGTT
-GTCCTCCTGACCCATGACCAGCCCCTGAGTGTAGTGGAGGCCGCCGTCCC
-CCCGTACCCCCTGCTGGTTTTGAGGGAGCTGTCTTCTTCCTCATACCAGC
-TTTCTGCCAATGCCTGCCCCAGCCAAGAAGCAGATCCACCTCTGGAATGG
-GAGGCTGGGTGAGCCATCAGGAGCTGGTGCCAGCTGCACACAGGAGGTGT
-GTGAGACAGCCAGTGACGTGCAGTGGCAGGAAGACCTGAGTGTGGTCCTG
-GGCTCCCCCCACGGCTCACCACCCTAAAGGTCCTATGCATGGGGCCACGG
-GGTCGTGCCTGCAGCAAGACCTAGGGGAGTGCTCAGCACATCCCAAAACC
-CCAGGCTCCCTCTGCACATGTGGGATTACCTGGAGCCTAGCTGGGGTTGA
-CCCGAGTAGGGGGATGGCCCAGCCACAGCACACAGGACCCCCAGTTCTTC
-CAGCTCCAAGAATGGCCTCTCCTCAGACATGCGTCCATCAAACAGGCACA
-GTGGCTGAGCTCCTTCCAGTCACCTCCTGGACCTCCGGCTGGGCGAAGCC
-GCCTCTGCCCGCCCACTGCTCACAAAACCCCTGGACTGTCCCAGGTCCTC
-CAGCCCCTGTGgatcccacttccgtctcaacccacctccctgctcctgtt
-tccccaccacgttaaaatgcccagaaaggggcctgtagtcggtagccttt
-tcccgtctccaccttctcctgactcacactgcccggccggcatctctcta
-tggaaacggggctcgccaaggccttcagtgatgtctgtgctgcaaatgta
-gttgttggttctctgccctcaccgggtttaacctCCCTCCTGACCCCACA
-CACCACTTCCCTGATTTATTTACTTTTGTCCAAAGTCCTTGTGTTTATCA
-GGGTTCTCCAGACAGTCAGATacacacacacacatactcacacgtgtaca
-cacacatgcacacaccgatatacaaatatacatatatgtatacaatgtac
-aaataggctttacacacacacacactcacacatgtacacacacacccatg
-cacaGGTATACAATTATACATATATATGTGTAAGATGTACAAATAGGCTT
-tacatatatatgtaaatgctacatgtctgtaaatgtatacatgtatgtaa
-atgtatgcatatatgtgaatgtatgcatatatgtatggatatatgtaaat
-gtatacatatgtacatagatatatgtatTTACATATAGATATAAAGCCTA
-TTAGTACATCTTATACATATATATATGATAATTTCCGGGAGCAAGGGGCT
-GTCTCCCTCTCTGCGTATATCCAtatatggagagaaagagagattttaag
-aaattgactcatgtgacagggggtactggcaagtccacagcctgcaggcc
-aagctggcaggatggataaagggttgatgctgctgcccaagtctgaggcc
-acccggaaccagtgttccctcctccgggggcaccccagccttttgtctta
-agcacctcaacggattggtggcagctcacccatgtcatggggactgaact
-gctccactcaaagtcggctgatttaaatgtttgtccaagaaacaccctca
-ctgcggcctctgcactggtgttgaaccaggaatctgggtcccacggccca
-gcgagtggacacaggacactgcccatTGCTGACCAGGCCTCGCCACTCCC
-TCGTCCACGCTGCAGCTGCTGTGCTAGCTTTTTCGTGGCTGGCCCCATCC
-CGCTGCCACACAGCTCCCTGAGGGTGGCGTTCCTGTCTTGTCAGCTCTGG
-CACCCCAGGCTTTCTGGCCATTTCTGGACTGCATGAATGAAGGCCGAGGC
-AGAAGCACCACCTGAGACGCAGGCTCAGGGATCAGGAGGGACCGTTGCCC
-ACAGGACTGGTCTGGGAAGCTGGACTCCCGGCAGCTCTTCCCCACTAGCA
-TGCAGGCCCAGGGGTAAGCATGTGCGATTACAACTCCAACAGGACCCTGT
-GCACACAGGATGTCCGGGCGGCTTGGACTTCCCACACTACTTAATGTGGG
-CAGGAAGCCATGGCCCCTCTGCCGATGGCTTCTTCATCATTGGGGAATCT
-TCTCCGTAGCTCCAGCAGCCGGCGCACGGGCCCAGGAACTGGTCAACAGC
-GATCAATGACTTGGCAGTGGCTTTCATCAGGGTCAGCAGGACACAGACGA
-GGTGAATGCCATTTCTGCCCTGGGGTTAGGACTTCACAAGTTGTCAATAC
-CTTGGAATCACCCATGCAGCTCCACCCTCATCCGGGCGAACTCACAAGCC
-CCACGCAGGCCATGCATCTGCCAGGGATGAGGCCCAGGAAGACGCCTCGG
-CCAAACCCTGAGGATCACACAGGGGCAACATCGTTACCGGATGGATTCGA
-ATCCAGAGCAGTCTGGGGCAAAGCAAGCCTAATTCTGTTTTCCCCCGTCA
-TCTGCGCCAACCTCCTCCCACATCCCTGTGAGGCAGAGCCAGGAGTGCAG
-CAGAGAACAGGGGTGAGGATGCCAAGGCCCACGCTCGGCGCTCCTACCGG
-CCCTGCCACTGGCTTTGATCCCCTGGATGTGGAAGGAGCCCCTGAACCGT
-CTTCCTTCACGTTCCCGTCTGACTGCCTCTGACTCACCTGTGAACTCTCC
-GCACAGCACCCACCCTGAGCTTGAGCTCGCAATTGAGAGCCCCTCGGCGC
-CACGTGCTCCCCCTTGCTAACCACGTCGCCCTGGGGACAGGGCAGGCGAC
-CGAGAGGGTTCTCCATGTGCAAGTCCAGGCCCCACCCTCACAGCTGCGGG
-ACGCTCATCCATATATCCCTCacttattcattcaacaaacagcaactaag
-tgccctcttagggccggcaagggctgaggagctgggcagccctcaagaag
-gacacagccGGGTCTCCTGACACCAAGGGGCGTGCCTCTGAGCAGAGGCC
-GTAAGAGCCATGTCGGCACATCTGTGTTTCAAAGAATTTTCGACAGCAAG
-GACTGCAGAGGCACAGAACAAACTGAGGGGTGGGAGGCGGAGGAAGCAGA
-GGACGCTGGTTATGGCAGTTGGGGAAAGATTCCTCAAAGGAGGGCAGTGG
-CCATAAGGGGTTCCCAGGGGCCAAGCGAAGACCCCGGCAAGAGCTCTAGT
-TCGTTTGGCTTTTGCTTTCCTATCCGCAAAGCGTAGGCGACGACTCCCAC
-CCAGCGGATTATTGCAAGGAGTGAGCAGGGTGGATAGAGAAGTCGTGCCA
-GGAGGGTCTCCCGTCAAGTATAAAGGAGAAGACGGTGATTGTTTTGGGTA
-ATGGAGCCATTTTTCTCAGCACTGCTCCATCTGCCAGCTGACAGGCCACA
-AATGGGGACTGGCCCGCGGCGTCACTGGGGTCCCACCCACCGCACGACAC
-ACACAGAAAGCGGAGGAGGCCCCGGAGGACGGCAGGCGTGCAAGTGGCAG
-CTGTAGACCCAGCAGCATCCTAcagggcagtgaaggggccttggcccaac
-cttgtctgacccacgtggacgccgaagtctaggaggggaagggacacact
-cagtgctcagagcagcccagcagcaaagcaggacaatggctctgctctcc
-caacccccaggccagcatttgtcacctcagtgacccAGAGGAGAGCGTCA
-GCCATCAGGGACGTCCTGGAGCTCCCGTTGGCCCTGGGGGCCGCCCCTCC
-CATGGAAAGCTCGGGGCTGATTTGTGCACAGGGCTGGGAAACACAGCAGC
-AAGTACAGGGGGGCCCCATGGGGGAGGTGCAGAGGACTTTTGGGGGCAGG
-CGGGTGGGAAGGGGCCTTGAGGGGTGCAGAGGAGCCCACTGGTCTGAGGA
-CTCCGGGGGCAGGACGGGGCTGAGGACACCTTGGCCCTGTGAAAGCCGAG
-TGTCACAGTTCCGCTTGCTCCACGGCGGCGCGACTCCACGCTGTATGCGT
-GGTACGAGGCGAGGGTGGTAAGGCAGGAAGTGGGCAGAGGCTTTGTGATG
-AGTTAACCGGCTGGGCGTTACCCTATGGAGCGGGAGAGCCATGGTGCATC
-CAGGCAGCCAGAAGCATCCTCCGGCGCCTGCCGCAGAAGGAACTGGAATT
-GCGAGAGGACAGGGGTGGACGCTGCCGCGTGGGAGGCGTGCTGTGGGGAT
-GACGCACCATCCTGTTTGTTTGCACCAAGTCATTTATCTCGTGCACCCCA
-GGGGGCCGTGGTCCCTGCCGGGCCATCATGTCTGCTTCCCTTATTTGGGT
-TTTCTGCCCCCTCACTTCATTTCTCACTTCGCTTTTCCTCCTTATCCCTT
-TGCAGTCTTGCTTTTGGGGGCATTGCTCAGCCAGTAATTTGAGGGACACC
-TCGTGGAGCCCTAGTGTGGAGCCGTCAGAGCCTGGGTAGGATTCTCCGTG
-GTGAGGTGCTCAGGGAGACACAGGAGCATTCCGGCGCCTGTTCCTTGTGC
-ACATCCGCAAGTGTCTGCAGTGAGAGGCATGGGTCCCATCTTGAATGCCA
-ACAATGTGGCACCCACACCCCACTTGATGGGGCCGAGCCACAGCTGGCCA
-GGTTGACCACCATGGACGTGCCAGAGGCATCCGAGACCCAGCTCTTGCCC
-AGCTGTTCCACTGCCAACTCCAGCGTTAGCAAAGCAGCTCTCCCTTGCTT
-TGTCTTCTACAGCAGAGAACAGATTAAAAGAAGAGAAGCTGCAGGCAGAG
-AAATGCCTCTTGGAGCCAATGCCCCAAAGGATCTCTTTGAACAAAGGGTT
-GCTCAGGTCAGCGTTAGTTCCTGGCATCAAGCAACAAAATCAGAGATGCT
-AACAGTTCTCAGATTCACTCCAAGTGAAGACTCAAAGCTGGATTTATAAA
-TCCCCACAGAGCCGCTGTGCAGAGGTAGAGGGCCGGTTTCAGGATGAGGA
-AGCCCTCTTGGAAGCACCGTCCTCCGCTAACAGCCTCCAACCTCTGTCCC
-CAGGGAGAGGCGCGTCCCCAGCGAGTCGCATCAGACACGTCCCACCGTGG
-ACGTGTTTGCCCCTAGTCACCTCATTTCTCTGCTCACAGCGCACAGTGCT
-TTCGTTGCATTCTTCGTTAGAACACCCAGGGGAATCCCAGCTTTTCCTCA
-AACGGAGAGGCAGGACACCCAGAGACAGCTCTGATTAAGGTGGGTTCTTC
-CCAGAGGAGCAGAGGGAGGGGAGCAGCCTCTAGGCTCTAGGACTTCCTTG
-TCACCAGAAAACTCGGACGGCTTCTGCACTGAACAAAGCCTCTTTGAAtg
-ctatggactgaattctgtctccccaaattcacttgttgaagccgaacccc
-agtgtgtttgtatccacagatggtgcctctgggaggcacccatcaaccca
-tccattcatccatccatccatttatttcccatccacctttccaccattcg
-tccacccaccattaatctatccacgatccacccatccacccattcaccat
-ccatccatccatccatccatccatctatctaccattcatctatccatcca
-tccattcatcTACCTATTAATCCATCATTTTACTCACTcacccatccatc
-cactcatcatcagtccactcagccttccatccatccaccatccaccattc
-catctattcatctatctaccatttatccatccattcatcctttcactctc
-cacccacccatccatccTTCTCTTCTCTAAGCTTCTCTGTGTAGCCGTGC
-TTGCTGGGCTCCAGGGACTCTTAGTTCAGTGTGGGGAGTGGTCAGGAAAA
-CAATGAACAGCATTGCTGAGCACTGTGAGACACATAGTAAACAAGTCCTG
-GAGGACCCTTGGACTCTCTGAAGCAGACAGCAGAGCTCTCCCAGAGGCAA
-AGGCAGGTCCGGGATTCTGCAGTGAGCAAAGTGTGGCCACACACAAAGTC
-ATGAGCTGGGAGCAGCTGATTCCCCAAGGCTGGAGGATACAAGGTTGGGC
-CAGGGTTGAGGGATCACATGGTGGTCCTAGTCCAGCCTCTGCCCTGGCCA
-GGTGGTTTGTGAGTGTCTCTGTGCTGTGCTTTGTGTGTCTACACCTCTTT
-AGCAGGGGAGGCTTCCATGGTATTCTAACAGTTGTCGAGGGTGAGGAAGA
-GCCTGGGTCACTCAGGGCTGAGTAGAAAGTAACCATCTTTGAGCCTTGTT
-TGGAAACATGTCCACTGGTCCTGGGTTCCCTTCTTTGACTTAAGGAGTTG
-AATTTTTATGACCATGACCCAGTGTTTCTGTGACATTCCCTGGGAGCCTT
-CTTCTCACAGAGGTGAGATTGtgtgttattgagggttccccagagaagca
-gaatcaacaacatgtgtgcaaggttgtgtgtgtgtgcatttgtgtgtgtg
-catttgtgtgtgtgcgcatgtgcactcacatgtgtgggggagagagattt
-gttcacatggaaacccagggagacacacagttggggtcccaaggccttgc
-tggcagaattccttctttctcagggaggtctgtcttttcctctgaaatcc
-ttcaactgattgggcaaggcccacccacattaaggaggtcatctgcttta
-cccagtccatggatttaagagttaaccatatacaacaagccttcacagaa
-atatccaaagtaatgtttgactgaatacatgggccctgtggccAGCACTG
-TCTGGTATGGGTTGTCAGTGGAGCTCAGGTGGTTGGAAGGTGACTCTCAT
-GACATGGGGTGCAAAGGACAGGTTCTTGGAAGCCTCAGGGCTGAGCAGTG
-GAGTCAGCCATCCCTGGCTGTGGGTGGAGGAGGGAAGAGCCCAGGGTAAC
-TGGGAGGCTGGTTCTGGCTTGGCCTCTCACACACGGCAGCTCCTCCAGCC
-TCAGCCATGACCCCAGCCACACCCTCCGACATGGCCCCAGGCCAGTCACA
-GGACTTCTGTGTGTCCTCATGTGCAGTCAGTGAGGATGACACCAGCCACG
-CGGGAGGGTTTGGAAAGGGCAGCCGTCACGCTCACTCTGGCCATCATGTG
-ATGATCACGATGACTGCTATGAATGGCATCACCGCTGCAGTGTAATCATC
-ATGATCACGGCTGCCACTGTCAGATGCCACCTGGCCAGCCTAAAGCAGAC
-CCATTCAGAATTGCAGGACATGTCCTCATTCCCTTGTGGGGGATTGGTTGACAATGTCGTCTTGTCATCACTAGGAT
-GCTGTCACTGCAGCTGTGACTATCAGTGCTGCTACTGCGACTGCAACTCt
-gtacagagtgggtgtgtggacatacatgcgtgtacacatgcacgggaata
-ctattcagtcttaaaacagaaggaaaccctggcatttgtgagaacatgaa
-taatctggaggatgttaagataaagcaaaataagccagacacagaaagaa
-aaatgttgcatgatttcacttattgtggaattaataaaagtcaggttcct
-agaagcagagaagagaatggctgttcccaggggctggaggtgggaaaaag
-ggaaatatggtttgaagggtgcaacattttggttattcagcatgaacaca
-atatggggttctaagggacagcagggtggccgtagctgataataatgtat
-tggacacttgaaatgtgccaagcatagatccccggaatcccccacacagc
-tgtgaaagaaagctctggaggtgatgagagtgtgactcagcctggtggtg
-gcagtcactacacaatgtgtgcatataccaaaaatcacattgtatacctt
-aaatatacattttttatttgtctattataATCAAGTGGAGAGCAAATTAA
-AAATGATGATACACCCtgtattagtctgttctcatgccactaataaagac
-atacctgagaccgagtaatttatgaaggaaagaggtttcatggactcaca
-gttccacatgtctgggggggcctcacaatcatggcagaaggcgaaggagg
-agcaaaggcacgtcttacatggtggcaggcaagagagccgtgcaggggaa
-ctgccctttataaaaccatcagatctcgtgagacttatccactatcacaa
-gaacagcacgggaaaacctgttcctgtgattcactcacctccctccaggt
-ccctccAAACCCCTTCCCGTGATTCACTCACCTCCTTCCAGGTCCCTCCA
-AACCCCTTCCCGTGATTCACTCACGTCCCTCCAGGTCCCTCCAAACCCCT
-TCCCGTGattcactcacctcccactcagtccctccaaacccattcccgtg
-attcactcacctcccactcagtccctccaaacccattcccgtggttcact
-cacctcccactcagtccctccaaacccattccagtgattcactcacctcc
-cactcagtccctcCAAACCGATTCCCGTGATTCACTCACCTCCCTCCAGG
-TCCCCCCAAACCCCTTCCTGTGATTCACTCACCTCCCACTCCGTCCCTCC
-AAACCTGTTCCCATGATTCACTCACCTCCCACTCAGTCCCTCCAAACCCA
-TTCCTGTGATTCACTCACCTCCCACTCAGTCCCTCCAAACCTGTTCCCGT
-GATTCACTCACCTCCCACTGGGTCCCTCCaaacccgttcccatgattcac
-tcacctcccaccgggccactcccacaacacgtggggattatgggagctac
-aacccaagatgagatttgggtggggacacagccacaccatatcaTACCTC
-TTTGAGTTCTGAGATTCTGTGCATTGACCTCAGACCGAAGCTTCTCCCTG
-CATGACAGGTACCTGCAACCACAGCTGCCCGGAGACCTGGGTTCTTCCCA
-TGCAGCCTCACATGTGAGATTCTCCAGCTCCCAGCCCTTTGTTTAACCGT
-GGGATATTGGCTCAGGGCTGAACATCATGGGGAATGGCCAGCACGTGGAT
-GATGGAGCAAGCCCTCTGTTTTCTGCTGCTCTGGATGCACTCCTCAGACA
-CTCAGTGGCTCCTTCCAGCCACGCAAAGCCATGCGTCCTGCAGAACCCAT
-CAAGGGACGAGGTTCTAAGGATGCTGACGGGGCTGCCGTGGCCTGTGGAC
-AGGACTTACCAAGGACAGATGTGAGTCATGGAGATAAAGAGTTGCGTCCT
-TCAGTAGAAATCAGAACTTCTACCCAGTGGCATTTATCAGAAATCAAAGA
-CATCTAGGTTGACTCGGCACAGCGTAATGTGCTGGAGTCAGAGAGGGGAA
-AACATAAGAAGCTGTCAGGGCCTACAGGGCTGGGCAGAAAGCAAAGAGAC
-AGTCTCAATTAAATTCTTCAAATTAGGTCACTACCTGGTTCTCACATTAA
-CAAGAACAAAGGTGGGCGCCTCAAACCATCAAAGTTACGTCATCCTTGGG
-ATGGCACGGATTCGGAGGGAATGCAGTTGCAGTACCAGGTGTGTCTCCTG
-GAAGAATCTTCCAATCTGGTTATCAATCAAAACAGAATGATGCTGCCCTC
-ATTCATCAGTCCATGGATTTCTGATTGTCCAGCCACTGGGTCTCGAGCTT
-GGACTCTGGGAAGAGCAGATGGAGGCAGTGGGAGCCGGGCCTGGTGCTAT
-GGCGGAGCTCTCCCATTCACAGGCTTGTTTAAGGCTTGGTTTGGGGCGTC
-CAGGTGGGGCCTCTGATGCCTGTGTGACTCAAGGGTACACATTCCCCAGA
-AGGCCTGTCCTCTACGAAGTCATTTCTGTGTGCCCTCCCTCCATCGGAGC
-TCACCGGTGCCTCTGCGGTCTGTGTTACAGGAGGGAGTTGCGAACAAAAC
-ATGGTCAAAGTGATATGAAAAGGATAAAAACGAGGGTATCCCTGTGCTTG
-GATAAAGTGACATTTCCAGACAACCATAAGTTAGAGGATCCCACCTCATC
-TTCAAGATACCGTGAACTACAGAGGCCTCCCTGAGGGCAGAGATAAGGCC
-CCATCTCAGCAGGGGCTGGGGGAGAGTGAAGTTTTCAGTGAGAAGCAGTC
-TGTGTCTTGGAAGCCCTTGAGTAAATGCTGCTCTGGAGTGAAGAAGTTaa
-ggaagactgtggtgggttggattgaagttggagatcttggagttgagctt
-tttacaaaatacattttcctatctgtccagcgaaagggtctaaagcaggc
-aggcagagcagaagcagtgagtgccaggatcgcagccgatcgatgccagt
-cctgctcactgcggcgagggctccttggagaagcagctgagtccagggct
-taggccagaagaagagcaaggtgagccgaagcgctcggctcccgaaggca
-gagaagtgtccaaggacaagtgggccctgtcccacggcacaggagccggc
-ccgagggaggtgctcactggccaaatttggcccattttgaacaaaaaaat
-atgacagcaatgggttagatcacatgagaataTACCCAAGAACGTAGTGT
-AATAAAAATGGGAACttttttttttgagacagactgtcgctctgtcacca
-ggctggagtgcaatggcacgatctcagctcactgcaacctctgccctccg
-agttcaagcgattctcctgcctcagcctcctgagcagctgggattacagg
-agcccgacaccacacctggctaatttttgtaattttagtagagactgggt
-ttcaccatgttggccagggtggtctcgaactcctgacctcaagtaatccg
-cctgcctcggcctcccaaagtgctgggattacaggcgtgagccaccatgc
-ccggccAAACTGGGAACATTTTTAAAAGGAAAGAAAGCAATAAGAGAGGA
-AAATAGAAAAGAaggaaggaagggagagagggagggaggcagagaaggat
-gaagggagcgaggcagagaaggagACAGGAAgggagaaaagggtcttccc
-ttcagaagaacaccagctaattcatgcaggacgcagtggcactgcagtca
-cacatgtgagcctctgagggagagtccagctgtgcagagatcatcagggg
-ctgctgcagaccccaggtgaaaagtggcagaaaggaggtcattcccctgg
-actctggtgtcaccctacagatgagtcataattacgaagggaaaagagac
-ctctccagggagaagacatcgcggtcactgctgggcctgaggctctgctg
-cttccctgtgctgtgggacaacctgtccggacggccgcagatgccaggaa
-gtcagaagtgaacacaccactctgcagaattcctaccaggagctgctcaa
-ccacatcgacccattcagaactaatcagacaattcctgagtgaggcccgt
-cctatagaCCACTGATGGGGGACCCTACAGAGACGTGAGAACCTACGGCC
-ACCCGTGGCTGCCCTTGGCCACCCACGAGCTTTGATGAATCCTGGGTTAG
-AAGGGAAATGATCCACCATCAGCTACACTCCTGGGACCACAGGGTAATCT
-GGGTATGGACCTCAGACTCTGCAGACGCGGGAGGGGCCGGACCTATGAGC
-TCGCGGAGCAGGCTGGCAGAGCCCCCACTCTGGGACCCCCCAACTCTTCA
-GTCCCTTGAATATGTCAGTGGATTGTGCATTTCCCGGAAGTTTGCATCAA
-CACATAACAAGTCCCAGCTCCGTCTCGGAAGGAGGAGAGGACGCCGAACT
-CAGGGAGAAGGAAAAGCCGGGCTTCCTCCCTCCGAGCAGCGCGGTATCCA
-CCCCGAGAGGAAGAGAGTGAGGTCAGGTGGAGACGGGATTGGAGGGCTCC
-CTCCAAGCAGCGCGGCATCCACCCTGACAGGGACAGTGAAGTCAGGGGGG
-GAGGGATTACTGTTTCTGTGGCAGGACCCTGGGTGGTCTCGTTCCCCCGT
-GGTGACAGCATAGCCTTCTGTGTCCACTCGCCCTGCTCAAGTCCCAGGGT
-CCCTGCTGCCCTGGCGGCTGAAGGAGGCCTCACTAACATAGATGGCCCAG
-AGGCACGAGGGCTCCACCCAGGTTCTGGGTGTGAGGCCTCCCGGCGGAAT
-CCCCCACGTCCCACCTCACAGGAAGGGCAGGGAGAAGCCCTGGAGCCCCA
-GCCTCCCGTCACCTCTTGCTGACATTCCCTCCATGAAGTATGTCAAGAGC
-TGAAGAGCTTGGCCATGAGGTCCACATGACAAGCCTTCTCCATTTCACGT
-TGACTCAATTCCAAGTGCAGGAAAGCCAGGGAACCTTCCTTTATCCACCA
-GTATGTGGGCCCCTCTTGGATAGTCTGGCCTTACCAACACCGGCTCAGTC
-AGCGTGGGAACAGGGGTACCCACGACTCGGGGTTCACCACCCATTGCCAG
-GAACACCTGGGTCTGATGACGATCATGATTTGATAGGAGACCACTCTCCC
-CAGCTCCAGGTCCCTCTCTGGTGGTCTGGTGGCTCCTGCTTCTGTCAATG
-AATGACGAAAGAGGCCCTGCCTGCAGCTGCCTTGCCTGTGGTTGCAGCGG
-CCAACCCAGGTGCAAGGGGAGACACATGGGTCCCCTGATGGGGCGTAACA
-GCCGAGTTATCCACAGTCATTCATCCTGCAGGATGTTGGGTGCCTTCCGT
-GAGCCCGGAGCTGCAGGTCAAACGTGCAGTGACTGCCCAGCTGCTTCCGG
-GAATTCACTTGGAGCAGTGCTGGGGCTGTCCAGGCCCGTCCTTTATCCTG
-CCCTGGGCTCAGGCTCCGTAGGAACCTCGTGACCTGAGCTAGGACTTGTC
-TTTGCGTTGAGTGGAGGGAAAGCCGCAGGAGCCCGGCTCCCCTGAGCACG
-CCTCCCTGTTGTTCAGGGAAACAGGTGTGCATGGCCACAGATGTTCTGCT
-TCTCTGGGGCTCAAAGTGTGAGCCAGGCCCCTCTCCTGGAGGAGGCCCCA
-GCTGGCTGGGGAGATAAGAGGCACGCGGAGGCATGGCAGAGGCAGATTGT
-AAGCGCCAATGGTGCCACCGATCGGCACGGTGGGGGCTGAGGGCATCGCG
-TGTGGCCGACTCCCCAGACAGTCCAGAACGATTCTGACTTGAAGAAAGTA
-CAAAGTCTTTTTCTTCTCAAACCTGGGCTCTAATATGCTGAGATTGGTTC
-TTTTATTTTTTCTTTTCAACCCTGGCAGTAGAACAAGCTTCTCATCTGCA
-TGTAGCAGATTAAAGGAGAGCTCTGAGCCGTGGCCTCGCCCAGGCTGTGG
-ACAGGTTCTCCAGGAGGGGCTCGATGTCAGCCCCACATAGGCAGAGCACG
-CTGTGGTTAGAGGTGGGCCATGGTCCTCCCTGGGAGACACCAGCAAGCAT
-GCACAGGGGCAGGTGCTGGGAAGAGCAGGCTGCTCACCTTCAAGTGTGGA
-CGGATGGATGGTGCCTGCCCTATGGTCCTGGAGATAAGGACAGACGACCC
-AGAATACAGGCATCTTCTTTTGCCTTTATTGAAAAAGGAATAGAATCAAA
-CCAAACTGTCAAGCCGCGCCAGCAGACCTTGCAGCTATCACCGATGCACC
-CAGGTCTAACTTGCAAATGAAGCCGGAATGCTGCTTACACACAGGCGCAC
-ACAGAGAGAGCATGGACAAAGAAGAGCAGAGGCTGTGTGTTCTCCATGCT
-GGCGGTCCCGTGCTACCCACTGCTTATCTTGCTGTATTCGGTCCAGGCGT
-CCCCTGGCACATACCTTCGGTCCAGGCGTCCCCTGGCTCATAGCTTGGTA
-ATGATACGGCATTATAAATAGTACATTAACTCGACACCATGTCTTGCAAC
-TGTGGACAGCAAAGAGGTGTCAGGGCAGAGTCCAACCCAGAGGCCATCTG
-TCCGGTCGCAGGTACTGGTGCCATCTCTGCAGCCAACCCCCTCCCTGCCC
-AGGCTGGAAATTAGGCAGCTGCACCTGTTGCCTTGTGAACACGTCCCCCA
-AGAACCCTGCCGTCCGAGCCAGAGAGGCCAGACCTTGGGAAACGCAGCTT
-CCCCCAAGCATCCTTCCTGACAGTATTAGTAGGGTGCACTCCACAGATAG
-CACTTGCCCAGCCTCTCTGTAAATTTACACTTTTTCCTATTGTATCAATG
-CAAAATGTTTTTTCCCAGGACACATTCCCCTGGGGATAGAAGAAGAGACT
-TAGAGCAGGTGGACTTTCCAGGACTGTAGGCACTCCAGCCCTGTAGCCTC
-CTCCTCTTCCCCAGCTGTTGGACTATCTGCTAGAGAGGCTGGGGTTCCTC
-CATGTGCAGGACTCCCCTTGGCTGGCACTGGGGCTGCCTCTTTCTCTGCT
-GGGTTCTGTCTCCCTGGGATGGGGCTCAGGCTTCCCCGGCGAGGGCTGTG
-GTGGCACCTCCTTTGCACTGTGCACAAGCCCTGAGAAGGAGGCATAGGAA
-GGATGGACAGAGTGGCTGGTCCAGAGCCGCCCACCTCCTCCGGGGGATCC
-CAGCGGCCATCCTGGGTGTCTGGATGCTCGTCCTTGTGTGCCTGGTCCGT
-CTCCTCCCAGCGGCCATTCTGAGTGTCTGGATGCTCGTCCTGTGTGCCTG
-GCCCCTCTCCTCTAACCTCCATCCAGGTCTGCAGTGCAGTGATACAGAGG
-TGGCACCCGTGAGCCCAGTCCCGACAAACTAGAAGGTGGAACAGGACGAA
-AGAGAAGGGCCCTCTGGTCACTTCTGTCCCCTGAAGCACCTGCTGCCACT
-GCCCTGTGAGCAGAGCTGTGGATGCTGAGCAGATGTGGGGCGGGGATGGA
-TGGAGCTGTTACATTCTAAACACGGGCACTCCACAGAGGTCACAGGAGCC
-CAGGCCTGCCCACACCCACACAGGAAGTGCCCCAAAGGGTTTGTAACTCA
-AGGTTCCAAGAAATGGAGACAGggccgggcgcggtggctcacacctgtaa
-tcccagcactttgggaggccgaggtgggcagatcacaaggtcaggagatc
-gagaccttcctggctaatatggtgaaaccccgtctctactaaaaatacaa
-aaaaattagccgggcatggtggcgggcacctgtagtcccagctacttggg
-aggctgaggcaggagaatggcggaagcccaggaggcagagcttgcagtga
-gctgagatcttgccactgcactccagcccgggtgacaaagcaagactccg
-tctcaaaaagaaaaaaaaattaaaaaaaaaaaaCCAGACAGATCCAGGCC
-TGGGTCCCTTCATTGAAATAAATAAAACACACGGAGAGGAGCGCGCAGGA
-GCCAGAGACAGGTCTGTGAGAATGAGGCGAGGGTGACGGGCGAGGGGGCT
-TGTCCTCCCGGCTCCGCCTCTCGCTGGAGGGTGAGGGTGAAATTCAGGCA
-CTCACTCAGCCAACAGCCTCCAAAAAGAGCCTCCCTCACCTTGCTTGTTC
-TAAAGGAAATCCCATGAATTCAGTCCCCAAAGGACCTTTGACTTTTATAG
-GGAGGGAGGGCAGGGTACGGAGAGACCCCTCCTTCCTCTCGGCCTCCCAG
-CCTTCCTGAGGTTCCCTCCATTCCTTCAACCCAGATTTTCATTTGTGCTT
-GACTTCTTGCTTTGTGCTGTGTTTCTGAAACTCTTCTAAGCCCATCCTCC
-CGCTCACTCCTCTAAAGTTAATGTCCCAGCCAAGAAGCCTCAAAGCAGGG
-TGTCCTGGTGTGGAGTGGACATGGCCAAGGTTGGACCCCAGGGGAAAAGA
-AGCCGACCTTGAGCGGCAAAGACACAGGGTGGGCGGGGGCCTCATGAGCA
-TGCAGGGGATAGATCAGGGTGGGCGGGGACCTCACGTGCAGGCAGGGGAT
-AGATCCAACCGTCCGTGTTCCACCATGGGGACAGAGGATCAAGAGCCGGG
-GGCCTCAGTCTCAGCAGAGCCCGGGTGGCAGAGAGGGACTAAGGCCTGGA
-GGAGGCCCTGCCGCTCTGCGTGGAAGGCAAGAGTGAGCCATGGGATATGA
-TGGGGAGCAGGGTTGTGACTGGAGAGTGTTGCTGGGACATCATGCTGCTG
-CAGGCGGGGTCAGAGCTGAAACTCTGAAGTGGATGAGGGTGGGGTGGCCT
-TGGGAAGGTGCTCAGAGAGAAGGGAGGGCCCAGCCGGGAACCGTGAGCCA
-TGGTGGCATCCGGGCAACCTCCCTTGTCTGGGGGTGGCTATGGGGCTTTG
-GCTGCGCCGAGTCCTTTGGTGAGTGCTGCCCCGCTCACTCCTCCCGAGAC
-TGAGCCTCCGACCGCCCTGCCAGCGTGGTCTCTGTGTGAGGAGAAGGGTC
-CCAGGGGAGAACAACAGCCAGAGTGCTGGATCCCGCAGCCCCCGATGTGA
-GGTCACACAGGAGGTCAGGCTGGGCCATGCTGATGGAGCTTCTGACGGGT
-GAGAAGGACACACACCCAAAGCCACGCTCTGGAAACCGGTGCTCCAGTCA
-CCATCAGCAAACAGGCTGCAGGCCTGGCGTCTGGGGCACGTAATTAAGGT
-TGTGGCTCTGGAGCAGCCTTGCTGGGTGCAACCTCGGTCACGAAGCCACC
-TCCCCTGACTGTGGTTTGTGTCCCGCTGGGCACACCGGCCCCAGCTCTCC
-CAGGCCCCTGGGCAGCGATGTCCACCCCACTTGGAGATTGGGAGGAGGCC
-CCTGGACCAGGTCTATGTGAGAATCTCATCTCAGGAGGACTGCTGGGCTT
-CAGGAGACAGAAAGCAGTCACTCAGAAAGACTGGCAGAGCCCTGGGGGAG
-GATGCGTGGAGCCGGGGGTCCTGCAAGGCACAGAGCTGAAGGAGCAGTGA
-GCGAGGACCCTGATGGCTCCACAGAGGAGGGTGTAGCTGGGGCCTGGTGA
-CTGAGGGGACCAGAGAGGACCCTGCCAGCTCCACAGAGGAGGGCATAGCT
-GGGGCCCAGTGACTGAGGGGACCAGAGAGGACCCTGCCGGCTCCACAGAG
-GAGGGCGTAGCTGGGGCCCAGTGATCGAggggaccagagcagcacagcgt
-ccaggacctgagacccaactggctgtgtcctgacaaggaaggaaggggct
-ggagagttttgagtagagggggccacatcattgctttatataaaggattc
-ctgcccagcacagtggctcacacctgtaatcccagtgctttgggaggccg
-agttgggaggatggcttgagcccaggagtttgagactggcctgggcaaca
-tagcaagtctctgtctctacaaagaataaaataaaaattagccaagggtg
-gtggtgcacgtctgtggtcccagatacttgggaggctgaggtgggaggat
-cccttgggcctaggaggtggaggctgcagtgatccacagttgtgccactg
-cactctagcctgggcaacagagtaagactgtgtctcaatgaacaaacaaa
-caaataaataaaGGCTCACTGTGGCTTCCACAGGACACAGGGAGACAGTG
-AAGAGGCTCTGGATGCTCATGGTGAGGACTGGCGATGGGGCCTCCCCACC
-CTGGAGTAGAGAACTGGGGAGGACCCGGTGGCCTGAAGCTTCACAGTGAG
-TGGAAATTACCTGCAGGTTAGAAATGCATTAACTTTACACTCAGCGACTT
-TTACTATGCAAATCGAGAAACCTAGTTTTATTTACCTTTTTCTCCGAGGG
-CAACAGTAAAGAGCATCCCACTCGCCCTGGAGAACTGGGGGAATGTCAGC
-CACGCTGATCCCCCCCCAGAAACCCTCAGCCTCAGTCCACACGCCTGTGG
-CTTGGCAGCTTCGCCATCACTGTGCCCAAGCAAAGTCGGCGTCCAGCTTT
-TCACTCGTTCAGTCTCGAGCACTGCCTGTGTGGCCACACAGCCCTTCAAC
-TGCTCCTCTGCCATGCCTGAAGAATAATTATTCGGGAAGCCTCCAGAAGT
-TCACCACTTCGAAACAGAAACCCCAGCACTGCCAGGACTCCCTGTGATTG
-GTGGCGGTGCTGAGTGCGGACAGCAGGATGCAGCAAGAGTGCTCGGGTGA
-TTAGGGGAAGTGAGCAGGTTCTCGTTCCAACAGGATCCCCAAGAAGGCGC
-TGGGAACCGGCAGGCTACTTTCAGGAGTGTGGGGAGATGCGCCAGCGGGA
-AGCCGGCCCAGCTCCAGCTCTTCCTAACAAGACTGCCTCCCTGCCGCCTG
-CCTCGCGATTCCCCAGTACAACATTAATCACCCGGCTCCCAGCCGTGTTT
-CTGCAGAAGGAGCTCTTTCTAATTCAGCTGCTCCAGCCAGGAGGAGCCAT
-AAGTAGAACAGGTGGAAGTGCGTGCTGACTCTGCTATTCCCTTCTCCATC
-CTGTATTAGACCAGTTTCCCTTATCATTAAATAAAAACACGAAACAAAGA
-CAAATGAGGGAAGGTGGTCTCTCATTTATCACCCAGACCCAGCCTCCCTG
-TGTCAGCCCTCCCCGGGTGGAAGTGCTCCTGGAAAAGCTGCAATAGAGAT
-AACAAATTGGGAAAATCCGCCTTCACATCACGTCAGGGGCAAGCGGCATC
-GCACCTGGGAGGTGGCACTAGGTGAGGGAGGGGAGTACGGGGGCTGCGTC
-TCTGCTCTTTGGGGAGGCAGCATTCACCGTTTAGCGGGCAGCCAGCCACA
-GGGCCGTCCTCACTCCACAGGCAGATGTGGGGCAAACAAAGCAGTGCTAA
-TGTCTTTCTATCGTGGCTGAGTGAATTTTAGGCTGGTCTTCTCATGAGTG
-ATCAAGATGGGAGAAGATGAAAAGACCCCAACCCCTAAAGCTTGAAGGCA
-CAAAAATGCATCCATCAACCCAGGAGGTGGAATCAAATAGCCCTCCAGTG
-AGGTGGACTAGAGAACGCCCAGCTGGAAGGGAGGCGCTTCCGTGACCATC
-TGCTGTGTGGGGCCCACACTGGCCGCCTCCCTGGAATCCACCCCACAGGT
-AATGAGCAATCAGGTGTGTGCATCAAGCCACGTATAGGCTTCTCTAAGAA
-AGCTTGAACGCCAACAATGCTTTGCTCGGTATCAGGAAAGTCATAAAAAG
-AATCCCGCAATTCCAACTGAGCCCCTAGTCTGTGCCTTTCTGGACATGGT
-GAAGCACTTTTTGGGAGACCCCGATTGAAAGTCATAGAACATCAGATCTG
-GAAGTCGCCAAACTCCCCACCTGCTGAGTGGGGGCTCCAGACCCCACCCA
-GGGCTGAGGTCCCAAGAACATGATCTACTTGACGGACTGTCGGGGCTGAC
-CTTGGACCAGGGCCAGGGTGGAAGGAGGTGTATTCACTCATTCATTCAAC
-AGTAGGTGAATGCTTGGATAAATGGGACAGCCTGGGATGAAACCTTGAAA
-ACTACACAGTCATTTGCCTCCGTGTAGCTCACCATTTTATTTTTTAGGGA
-AACAATTAACTAATAATTATAAAAATGCAATGGGTGGAGATGCAAATGTA
-GCATCGTGAATGGTGCAGATTTACATGGGAGCCCAAAGAGACAGGTCCCC
-TTGAGAGAAGGGAAGCTGAAAACAGAAAGAGGCCCTGGAAATGAGTCCCC
-TCTGCAACTCAGGGTAGACGAGGTCCCCGCAGACTGGGCGTGGAGTCACG
-TGGAGCTTGGGGAGAACTTTAGGGTCAGGTCAGACCCCTGCCCTGAGGAG
-GCTTCCCTGAGGGCTCTCTGCCTCCCCCTCCCCAGCTACTTCCTGTTCTC
-TCACCTCCAGTCCCTCCCACCCATAACACCACTCCTTGCAGAACTGATCA
-ATTCCTGGTCGCCACGATGCCTTCTGGGGTCAAGCAAAGCTCTCAGCCTC
-GACAGTGAAGGTCCAAGGCATTTTTTTCCTCTCTAATTCTGGCTGCTGCT
-CAGAGAGGAGAGTTGGGCTGGTGCAGTGCAGCAGGGTGAGCTCTGTTCCA
-CGCAGCGGGGAAGGGGCTCCTAACCTGAGCTGTGACTGGCTGCCCACACA
-AATCCATCCACTGTGAAGATTTTTCTAAACATTGTCCCTTCTGCCAACCA
-TGACTCATCCATCCACTTACCCAACTCATTCAACAGAGAGGTGTTGGACC
-TTCACCACGAGCCGGGCAATGGCTTACCCTAGACATGCACAGCCCTCCTG
-CTAACAATTTTAACATGGCATTTTCTCTACTTTCTCAACAAAGTATCTCT
-AGGCAGTCAGCTCTGAACCTAACTCTCTTCCCCTTTGCCCTGGGAGTCGG
-GCAGAGGGAGCCCTGTGGGAATTCCATTTCCTGGAACCCATTTGATCATT
-TCTGTTTTTGGAAATAGCATACATGTATCGAACTTTTTTCCTAATTTATT
-AGAATATGCTGACAGTTGTATACAGCTTAAATGTATACATTTCACCCTCA
-TCTATGTGATTATCATGTTTTATTTCGCTTTATGATTTGAGTTCCTAGGA
-AATTCAGATTTTTATTTTTTAAAGTACACAGCACAATCAATGTTTATAAA
-TTCAGttgttccctaatttattaatttcttctttcatccttattattccc
-ttcctcctgatttattcagtattttccattatttccctaagtttctcaat
-tgacaggatattaatatactgttttcttttcatcttaaggctgtgaatgt
-accttaaagtatacctttggccaattatcacattttatatgttgtTAGAA
-TAAATATCCAGAAATGCTCTATTAGCCGTATACACACAATCATGACAGAA
-AAAATAGTACTTCCCTGACCAGTTATTTGAACTAATGTTACTGAAGTTTT
-TACCCTTCCCATGGAAAACAAACTTTGAGATTGTGTTACTAAACTCCTCA
-TTAATTTTACTGTTAGATACATTGATCAATGTGTTTTGATAATTTCTTGA
-CATTTTCTTTATGGCCTAGTATCACCTTTTGTGAGCTTCCCATCCATGTT
-TGACTAGTCATTTTCTTCAAATATATAGTATAAAACTCTATATTTAGATA
-CATTTATCAACGTATGTTTTGATAATTTCTTGACATTTTCTTTATGGCCT
-AGTATCAACTTTTGTGAGCTTCCCATCAATGTTTGACAAGTCATTTTATT
-CAGATATATAGTATAAAACTCTATCTGTATGCGAATATTGATGTGTAGGT
-ATTTACTTACGTGTTTGGTCCCATATATTATAGAATGATCCATGTAATGT
-GTTATCATCATTTACTTTCATTTTTATTGAGTCATCATTGCATGCCAAGA
-GTTTTTACTGTGATTTACATTTGTTTTTTCAAGTGTTTTTTACAGCTCTT
-CTGTGTGTTTAGATATTTTATGATGTGACATGGAAATGTTTCTTTTTTAA
-AACATAGATTCTGTCTTCTATCCATGAGAAATAATCATCGCTTTTCTTTT
-TACAGCTCTGCTTTCTCTATTTTGTCCTGTATTAATGTTGCCACACAACA
-TATCACAAATAACCTTCAAAATACAGATAGCAAATGACATCATTGTACTT
-TCTACATTCTGGGACTGTCCTAAGTCCTTCGCCGATGGAGGTGCTTTCAA
-ATGTTCCTCGGGGTTAAATGGCCACGGAGCATTCGGAGGCTGCGCGAGCC
-CGTCCATTCCTGCGACTCCCTACACATGCGGGTGACGGTCACACGCTGCC
-ACTGCTAGCCCTCCCGCCCTGGGACCCTTCTGTGCCTGCCCCTTTCATGG
-GTGGCCACATCTCCCTGGGTCAGAAAACCTGCACATTCATATAACACTGC
-TGGGTTTTAACCTGCTGCCACCATGCCTGGCCTGCTCCAAATTTATTAGC
-CTTGCTAATACCAGAGGTTTCCTCTTTTTAATGTCCTAAGCCATGCACAG
-GTGTGTGTGAAAGAGAGCTGAGCATCTGCACGTGTGTGGCTGAAGCTGCA
-TTATTGCTGGAAGCTGAAGATGCATAGGCATCTGAGGAGGCCTCATGGAT
-GCCGCCACCCCCACCTCCCCCCTTGTGGGATTGAAAACGCTTTGTGCACC
-GTCTTTAGCTCCAATACGTTTTCCCACCTGTCCAAGTACTAGTGTCTGAG
-AGGCTGGATTCCCTGGGTGTACAGACCTGGCTCAGTCTCTGTAGGAGATG
-ATCTCACCTGGGATTCTGCACAAGAAGAGGAAGCCCCACCACAGAGTGAC
-CGTGAGCCCTGTGCAAGGAAGTCAACCACAGACATCCAAGCCTGCCCCAG
-CCACTCCAGCCCCACCACAGAGTGACCGTGAGCCCTGTGCAAGGAAGTCA
-ACCATGGACATCCAACCCTGCCCCAGCCAGTCCAGGCCTGGGGAAGACTC
-CTGCTCCAGCTCCAGGTGCCTCCTGATTCGGCTGTCTCTACGTTGCTTCT
-GCACTCACTCAGGGTTTGGTCTGCTTCTCTTTCCCTTGTTCAGTGCTAAT
-GAAGGACACACAGACAACTCTCAGCTCTCCGTCTATGTTTGCACCAAGTT
-TTTTTAAAttttttattatttttatatatttatttttgagacagggtctc
-actctgtcacccaggctggagtgcagtggcaggatctcagctcgctgcag
-ccttcacctccagacctcaagcgattctcccacttcagcctcccaattag
-ctgggactacagtcacgccaccacaccctgcttttttttttgtattctgg
-ggagagatggggtttcaccatgtttcccaggctattcttgaactcctgga
-cttgagcaacctgcccgtctcagccttccaaagagctggggttaccagtg
-tgagccaccatgcccggccTGCTCCAAGTTTTATCACTGAAGTATGAAAT
-CCCCTTCTCACAGGATAGACCCTGTCAGCTGCAGGTCTCACCACCTCTGC
-TCAGGCCCAGCTGTGCATTCCGTGGACCCTGCGGAATGTCTTGCTGTAGA
-GCAACGTCTGTGCAGCCATGGAGCGGAGGGAGGGCCTTAAAGACACACCT
-Aggctggacgaggtggctcacgcctgtaatccaagcactttgggaggccc
-aggcaggcagatcacaaggtcagaagattgagaccagcctggccaacatg
-gtgaaaccccgtctctactaaaaatacaaaaattagctgggcgtggtggc
-gcgtgccagtaatcgcaactacttgtgaggctgaggcaggagaatatttt
-gaaccagggagctggaggttgcagtgagccgagatcacgccactgcactc
-cagcctggcgacagagcgagaccccgtctgaaaaaaaaaaaaaaTCCCAG
-CCTCAGCCTTAGGCAGAGAAAGAGATGGTGAAGGGCGCCTCTGGGCTGTG
-TGGTTAGAGAGCCTGCAGCTACCTCCACACTCCCTGTCCCCATCACCTGA
-CAACAGTGCAGAGAAGGAAAAGCTGTTTCTCGCTGCCTTCCTGGATTTTG
-TTTTGTTTCCTATGTATCTACATCGTTTGTTCTTTACTAAATCTGCACGA
-TCTCTATATTAATCACCTAAAGACTTAAGGAGAGACAAGCGTGGGATGCC
-CCACTCCCCAGGTCAGGGGCACCGTGCCACGTGGGAGCCGGTGGAGAGTG
-AGTCAAAAGCGCTTGGTGACTGCGCGGGGCAGGCCTCCACCTGAGCCCCG
-CCGTCCACACTGCCAGCCTGGAGCCTCCATCTCTCTGCGCCCTCAGGCAC
-CGGGTGGGCTCCCAGCCTGAGGCCCTGAAGCTGCCTTTTCTATGGATGGC
-CCCTTTCTTGCTGGAGGCCTGGAACGCCATCGCGGCTGCGGGGGAGCTGT
-AGAACCGCGCCACGCGTTTCCATGCAACGAGGCTCCTCAAGATGCAGAGG
-AAGGAAGGGGGTTTCATCTAAGATGATAAATCGTCTGTGCTGCAGGTTCT
-ACAAGGCTCGGTCGGTTGTCACTGCGATAAAATCTGATCAAACAGTGTCA
-TCCAGCAGGGAAAGGAGCCGGCAGTTCCCAGGAGGCGGGACCCACTGGCG
-CTCTGCAGCCTGCTTCGGCCGCCAGGAAAATCGGCTCAGTTTAGACTCCA
-AAGGGGCGCCTCCTGGTTCGCCTTTTATTTACACCAGGCCATCCTCCTGC
-CGGCGCGGGGGCTGGAGAATCCCTTCCCTGCTCCAACCTGCCCTCTCTCT
-GCCTCCTTCATTTTTCCAGACCACTTTCATTTCACAAGAGCACAATTTGA
-ATCATTATCAGCTTCCGACAGTTGCTTCAGCCTCTGCTATCTTCCCCGAA
-CAAAAGCGACAATATTCAATTCAACCTGCGTGTGTGTCAAAGGGAAATGC
-AGCTGATTAAGCTCTGGAGGCCTCATCTCATAGGGATTAAACGCACAGGC
-CCACACTATGTCTCATTTTGGACACACCCAGCTCTGCGCAACGCCGGTTG
-GCTTCAGAAAGTTGACAGTGAGAAGCCTGAATTCTTTAGAGCACCACAAT
-GATACTCAAAGGGCAGCTGCCCAGGGCAGATTGCATGATAAACCCAGAGT
-ATTTGCGAATGGAAAACACACTTCCATGCAACGCTTCACGTCGTGGGGAT
-TCTGTGGCTGCTTTTCCCTGCGGTCAGCCTCAGGGCTCCTGGCCTCCCTC
-CTGTGGGAGGTGAAGGCCACTCTGTGTGAGTCTGTCTTGGGCTGGACCTC
-AGGTGCAGCTGGGAATCTTATCAAGTCGTAAGTCAATCTCTCAACAAATA
-TGTGCAATAGCAACGGTCCCCCCGGGCTTCCCAAGCACCCGGAGTCGGGG
-CTAATGGGAGGAAAGACAGAGAAATGCTCATTGTGTTCAAGGGGCATCTG
-CCgcgaagtgagccctgcccgggaatcggatggaggctgctctcagctcc
-tcggccccagtgccgggtgaccttggcccacctgcttcccttcaccggga
-ctcaatttcctcagccgttcaatgaaggggttgggctgggtgaccccgga
-ggctccttccctctctactttatgatcacgattGTGCGGTATTGACCGTG
-GCGGGGCAGGTCGTTTCAGCTCCGCGTGCAGCGCGGCTCTGTGCATTGAT
-CTCAGCACCACTTCTCCAGTTATCCAAAGCTGACGTCCCAATGTGACTTT
-CGCTGGGCATAAAACAAGCAGCGCGATATTGTTTTCAGTAATTTTAACTT
-CATAATTATGTTTACGGTGGTGCAATAGCATTACCAGGATTTGAAAGGGC
-TTCGGGGTGTGAAGGAGCCGCCCGCAGCCCCTGCCAGTGCCCGTTTTCCC
-TGCGACCCACTCCCATCCTGGCCTTCGTGATCCACGCGTGTCAGGACACT
-CAGGGTGTTTCACCGTCCTGCGCTTTCCCAGATGCTTTTCTCTCTCCCAC
-ATCTCTCTCCAGTCTGTCCAGCTCACTGGATTTCTCAATCGCTGCCCTAA
-TCCAGGTCGCCTCTATGGGCCCCCAGGTGACCCCAGCGGCCTCCTATCTG
-GGCACCCTCCTCCCCTTCTGCACTGCCCTGTGGCTGGGACACTCAGGCGG
-GCCTCAGCTGGGCAGCAGGGTCCACACTGACCCCTGAAGGCAGTGGAGTA
-ATGGGGGGCTCTGGCAGGGGCTGGCAGCATCATGTCTGCTCTGCAGAGAT
-ATCACCCAGCTCTGGTGGTGAGGTCTGGAGGTTCATCTGGGACTAACGCT
-TTGCCAGGCCAGCATGTGAAAGGGGAGGAAGATGGCATGGAGGGCATTTG
-CTGGGATCCAGAGCAGAGAAAGGAGGAGAGGGAAGCAGAGAAACCAAAGG
-AGCTGGCAGGGGGTGGTACTAGGGGTACAGGGAAGGACCAAGACAAGGCC
-CATAATTCCAGAGGGACCCAGGGAACCAAGGTGGGGATAAGGCTGTTTCT
-GACATTGGCAGGTCCTGTCATTGTCCCTTGAGAACTGAGGCAGGATAGAG
-GGAGGGTCGCTGGGTAGGAGGCATGGAGGAGCCAGGAGGTCAGGGTGCAC
-GTGGCTCATCCTCTATGCTGGGAGGGCAGGGTGCATGAGGTCCATCCTCC
-ATGCTGGGAGGGTAGGGTGGACGTGGCCTGACCTCCATACTGAGAGGGCA
-GAGTGCACGTGGCCTGACCTTCATGCTGGGAAGGCAGGGTAGAGGCAGTC
-CAACCTCCATGCTGGGAGGGCAAGGTGCATGTGGTCCAACCTCCATGCTG
-GGAGGTCAGAGTGCACCTGATACGACCTCCATGCTGGGAGGGCAGAGTGC
-ACGTGATCCATCCTCCATGATGGGAGGGCAGGGTGCACATGATCCATCCT
-CCAGGCTGGGAGGAAGGGGTGGACGTGGCTCATTCTCCAGGCTGGTGGGG
-CCACTCTGATAATGACAAAGCAGGCAGTAGGGACTCCTGCAACCCAGTGT
-GAGGTTGTGGGTGAgggttggaattgcccccacattcatgtattgagatc
-taaacccccagctcctcagaatgtgactgtatgtggaggctgggtcttta
-aagaggtaattaagttaaactgaggtcatttgggtgagtcctaacacaat
-atgactagtgtcctcataagaaggggagatgagggcacagaacaggcaca
-gagggacatctgtgtgaggacacaaggaggggaaaacgtctacaagccaa
-ggagaggccttgggaggaacgagccccacccacaccttaatcttggactt
-ccagcctccaggatagtgagaggataaatctgtgttgtttaagccaacca
-TTGGTCATGGCACCCTCCAGACGCTGATCCATCCTCCCGATGCTGATCCG
-TGAAACCTCAAAGGTTCTGTCTCATTTACCTTTGAGTCCCCCACCTCCTG
-CCAGACACTTGCTCTGTACATAGACAGTGCTGACTTACATCTGTTACTCA
-GTGTGACGTCAGCTGTCCCTCAGCAGCCATGAAGATATCCTTCAAGTTCA
-ACAAGAACTTGTCATCCCCCAGTGAAAGCGTGCAATGCCTCCTCCACCTA
-CTAACACAGCAGCGCACAGAGCTGCCTCCCGCTGCCTCCAGCCACCCTCC
-CTCTGCCTGCCTCGCTCTCGCTAAGTGTCTGTGAGGTGTGAAGTGTGCTG
-CGTGCGCTACCAGGACTGCATCCCTTCATGGGCTCCCCCGTGCTAACCCA
-CACCCTCCGTGGACATGCCTATCTCTACGTGGAAATCTCCAACTCGCTAC
-TGGACTCATGGTTCAGTAATCACTGTCCTAAAGGAAAAACACACCTGCCA
-CCATCTCAAAGTTAGCATGGGAGCGTCTTATGAAAAACAGACAACCCCTT
-CTAAATGTTTTCCATAGTGAGGGTGCTGCTGTGTATTCGTGAAAACCTGA
-ATGCTTTTTCACCTCCTTCGCCTCCCTGTCTTCTCTCCAGAAGGAATTTA
-TCAGGAGCCATAAAAGAATTCCCAAGGACAGACACCGAAAATGGGTCAGC
-CGTGGTGACAAATCACTGAAGGTGTTCCCAGCATTGTCCTGGCTGTTTGG
-AAATGGCCTCAGGATGCTCCATTATTTAGGTAGGAGGGGGCCCAGAAGAG
-CCCTTGAATGGCTATTTTCTTACAGGGAAACCAGGGGGCCTGGAGAGGGG
-GCAGGTGTCACGCCCTCCCAGGAAGACTTTGCTCAACTCTCCTTCAGGTG
-CAGGAGGTGTGGATGCCCACACTCCATGGACTCCCATGTGTAAGGTCACA
-GGCGGGACTATGGCTGCAGGGCCCCCTGCTCATCACCCAGATGTCTCCAA
-ACCAGTTCTCTGTGGCTCCTCAGATGGGGCCTTGGAGTCCAGCTTTGTCC
-AGAGGCCCAGCAAGCCCGACCCTCAGCCCTGCAAGGCACCAGGAGTCCTG
-GAAAGCCACTCATCCCCAAATCATGGCAGCCACAGCCATGAGAGCCGTGG
-GTTTCCCTGGTCTTGAAGAGACAATGCCCCTCCAGGTAGGTGATCCTTTC
-TTCCCGAGAGAGTGAGAGGGAGGGGGAAGGAACCAGAAGAGGTTAAATCC
-ACAGGCTCTGGCTCACAAGCCACAGTCAGAGGAGGAGCCCATGGATTTCA
-CGACATCCGGCTCCCCGGGCCTCATGTCCACCACCACCGACACTGAATGG
-CAGATGGCGTCCATGGAAGCTCAGCCACAGGACCCAACTGGCGACAGCTG
-GACTCTGGTGTGAGGGTCTCCCATCCTCTTCTCTGGGGGCTTCTCCCTTT
-GAGTTGTATCTTGGGGTCCTGCCTAACTCAGGGTGCCTGCGTTCTTTGCA
-GAGCAGCTCTTTGGGGTTTAATCAGCTTGTGCTGGTGTGGGGAAGCCGCG
-TTATGATCTGATAAATGTATCATGTGTGGCATTGCACTTGTTGGTTATGA
-AAAATCAGCTGTTGCCTGGTAACCAAAATTGTCAGCTCCCAAACCTCGAA
-GGCCACGGAGCCAGGCCTGATGGCTTCTAAGGAGCCATAGCCAAGGCTGA
-GGAACAAAACCTGATGAGCCTGGGACATGGGGGCCAGAGACACCCTCAGT
-TCTCATTCAAAGTTTTCCCACAAAGAAAACAAATCAGGGAACCTCAGGGC
-TGTGGTTTGTAGCTGCATCCAGCTTTCAGAGAGAAGTGGGGAGGAAGCTC
-TTCCAGGCTCCTTGTGGTCCCAGCAGCCACACAGGGACAGGTATCATGTG
-TGGGAGTAGCAGCTGCCATTCGTGCCGGGTCTTGGGGGGACCCTGAGCTC
-ATTCCCAGTGTCTGGGCAGCCCACCCCCCACAGGCAGTGCCCACATTGTG
-CCTGGGCTCAGGAGTGGCCCTAGATGGCCCTAGACATCACAGTCCAGTGA
-GCTTGGCAGGGGGGCATCTGCTTCCAAGACTTTCTCTGGGTGCCTCTCCC
-CCAGTGGCCTGGCCCCTCTGTGGGGTCCATCAGCCACCCCAAAGGCCACA
-GACCTCAACTCAGGCATGATAATTGAGGGAGGAATGTAAAAATTCCCCTG
-GGAACGAGAGCCAGACCATGACCCTAGGCTGCATTCTCTGTCCCTTTCCC
-CTCCCAGGCACCTCATCATTGAGGCCTAGACCTGTCTCCGTGTCCCAGCC
-TCAGGGTCCTCCTCCCCTTCTCCACATATACCCCACCCCTCATGGACAGA
-TCACAGCGAGCTGGAATCACACGTGTACCACCTCCCTCGCTTTTGCCCAG
-CAAGTGTGGAACACTGGGTTTTACTGTGTTGCCTTTATAGTAAATAGCTC
-ATGTAAAAAGACTTATGGCCTAAAATTATGTTAATAAACTCATGTGTGAA
-ATCATCTGTCGAGAGAGGAAACGTCACTGGCCTCTTGGGATTGTGAGAAT
-TGAACTAAAGGCTGTGGAGGCTTGTTGTGAAAAGGAATAGAAACCTGAGT
-CTTCTCTGCCCCAGGCTCGGTGCCTTTGAACCCTCAGGGGTGGCAGGAGC
-TGTCCCAGGTGCTGAAGATGTCAGGGAAGCAAGGGAGCGGCGGGGTAGGG
-AACCCCCGCTGCAGAGCCGCGAAGCATTTGTTGGGCAGGGTGACCTCCTT
-CGTTAACTCGGTAGGCTGCCCCAGATTCATATTCTGCTCACCCGTGCATC
-AGGcattcattttttcactcattcattcattcaCATGCCGGGTCTTGGCC
-ATCAGTGTCACCTTCTTACTACACTCCATGCCTTGCTTGACCTCACCTCC
-ACCAGGCTGGCAGAGGGGGCGGCACACACACCTGCCGCACTCACTGTTGG
-CCCTCTCTGGAGCCGTTTGCAGGGGCTTTCTCCGTGTCTTTCcagtagac
-acagcatggaccctgtagccagacgtgtgagttcatctgggctccaccac
-ttccagctgtgagaccctgggacagtcacgtagaccttggagacctcgta
-agatggttatgataatTAAGTTGATTCATAGACTCAACCCCTTGGAAACG
-GCGCTCTCCATATAAGTGTGATGTGCTGCCTGCCCTTATTCTTACCAGGT
-CCCTGACGGCCTTGTGACAGGGCCCTGGGCTCATTTGCCGTTTAACCCCC
-ACACCTATGGACACTGTGCACACCCCTGCCACCACATGAGGCCTTCTGCA
-CCTCTGCACCCCAGCCTCTCATCCTGAGGCTTAGTTTGTGATTCTGTAAT
-GACATATTCTCCACCTACCTCCGCCCGCTAAAGTGCAAATCCCACCAGGC
-CTGGGCCTTGGTCATTGTCTCCCCAGGGAGCTCCAGGCCCCAGGACAGTG
-ACCCATGCACAGCAGACACTCCCTCCATGGCTGCGGAATGGCTGTGTGGC
-TTCTGCAGAGATGTCTCCCACTTCAGGCTGACCTGCCTGGAGAAAGACAA
-GCCGCTTCTCTTCCATTATGCTTTAATTTCTAGAAGTTTCCTTGTTTGGG
-GGCAGGATTGCTACTTCCTTAGAATAATTTCCTTTCCTATTTTCAGCTTA
-TAAACTTTGGAAGCAAACAAGCTCTCCTCCTGTAGAACGCACCCCGACAG
-GAAAGCTGCCCACGCTGTGCTGCGCTGTCATTAATGAATTACCAGGATGG
-TGCAATGCTGTAAGCGCTCATCTGCTCCAAGCCGTTCCCAGGGAGCGCAG
-CTTTTCTGGGCTGGATGCCAGGACAGCCGGGCAGCCCCTGGAGGGGTGGG
-GGAGGGGAGCTACAGCCCAGGGGCCCTGCTTCAGTGTCGGGAATGTGTGT
-GCTTCCTCCTGCTCAATCGCTTTCATCCCAAATCTTTTGTATTTCCCATT
-GATCCATGTCTAGAATGGACAGAGCAGCAGGAACATTCAAGCCACTTCCC
-TGTAGGACGATTAGATCTTGACAATTGGATGCCataaattatatatatat
-atatatattgagatggagccttgctctgtcgcccaggctggagtgcagtg
-gcgcaatctcggctcactgcaacctccatctcccaggttcaggggattct
-gctgcctcagcctcccgagtagctgggattacaggtgtctgccaccacgc
-tcaactaatttttttgtatttttagtagagatggggtttcaccgtgttgg
-ccatgatggtctcgatctcctgacctcgtggcccacccacctcggcctcc
-caaagtgctgggattgcaggcgtgagccaccatgcccggccataattttt
-aatGCAGTAGAATACTGTCTACATTTTCTTAGCACTTAGACAACTCATGG
-TTTCCAAGAGGACTCACGAGGATGAACATCCGCATCTCTGGGACCATTAC
-TCTCACTCTGAACTGATGTTGGCAGAAGGGGAGTTCCTGCTTCTCTGGGG
-GACTGTGACCTCACAAGGGTGCCTGGTCTTGGTCATCATCATTAGATTCC
-TCAAACAGAGCCTGGGGCGAGGTTGGCCCAGCGTTGAACATGGCCCAGTG
-AAGATCAGGCGTGAAGTAGACGCAGGGGCCTGGCTTGGCCTTACAGCTGT
-GTCAGTCAATACTTGAGCTTCATTTTTAGTTTAACATGGACCTTGAGAGG
-AAATCATAATGTATCTCAACAAACACATGGAAAGAAGAACTTTTTACAAT
-TTTTAAATGAAGTGAGACAAAAGCACCATGTGTGGTTCTCTAACACGGTG
-TCAGGGTGTTCCCTTTTCATAACAGTGGCCTTTAATAATCAGAGACTCAC
-AACATTCAGCCCATGGCGGGCAAcactgtgggcttcactcgtgttaactc
-aggcagccctgacaaaaactctaagaaacaggtacaagtatgaccacagc
-ttatagttgaggaaaccaaggtatggagaggttgggtgacttgtcccagg
-caaagagccagcaagaggcagaggtgggatttgaaccccaaccatccagc
-cccagaatggacgttcttagcccctctgaggccatgctgAATGTCCAGAA
-GCCAAGCGGGTCTGGAGGCCAAAAGTCACTCACATGCCTGTCTAACTGCG
-AGTTAGACTCCATTCTGAAGCATCAGAGCTGCGGGCTACAGACGGGAGGC
-AGATATTCCAAGGCCTGGCACTTCCAGCTCCCAGGGCAGGTCAGGGCCAT
-GAGAGAGGTTGGCTCTGCTCATCAGAGCCTGGAGGGGGCTGGCAGCCAGT
-CTGGATGGAGAGAGTGGCCTCACTGAGGGTTCACTGACAATTTTGGGACA
-CTATCAAGTGGGCAGAAGGCTGATTTTAGGCTGTCCTTGACTCTCACCAT
-GAAAAATAGTAACAGTGCTTGGATCCTGTTGGTGCAGGGTTATGGGTAGA
-AACTGTGCTAAACATCAATCTCTGGGGGAAAATGTAACTTTCAGATGAAT
-ATTAAGGGTGAGACCAAAAGAGATCCGGGCTCCATCTGGCCAGGACAGGG
-GGGTGTCAGTGAGTATTGTGGGGGTGCTTGGGGTGGCAAAAGGCTGGAGA
-AAGTCACCTCCGCCTGTGTACACCGAAGGCTGTCTGGCATCACCAAGGAG
-ATCCTGTGATCAGAATTTATGTTCCTGCTTTTTCTGACAACCATCCCTTG
-ATATCCTTCACTGAAGCATCTTCTCCTGCACCCAAAATGTGTCACCGTTT
-CTCATTTCTCCATGACCCCTGGGTCCCTCATGGTTGTATTGTCACCCACA
-CAACAGCACATAGGATCCTGTATCCATCTGCAGAGACTCCCTCAGCAGGC
-CCCACGGGTCTCATTCATCCACAATTGGTAACTGGCCTCCTTgactctgt
-ggccaaagatgtaggtcttggattccttgacccaccacttgttcgttgtg
-aaagctggggccggtggaggggcctcactgactatagaaggcaatgatgt
-tactgcccagctcacaggatgagtgtgaggactgaccagtatccatcagg
-agctttggaaacagcacctgccatgcagCTGATGCTGGTGCTTCCATTCT
-GTGGATGGAGCCGTGTGGGTGCCCCAATAAGGCTGAGATTTTGCCCATCA
-CCCTTGTACATTATTTGCGTGTTTTGCTCCTCTCCTGGGGAGGTCAATTA
-CAAAATGTCCTATGGTTTTTTAAGTCACAAAGCATCATCTCAATCAGTTG
-TTGAAACAAGCAGTCCTCCTCTCCCCTACAGCTGCCACAGCTCTGGACTC
-CATTCACGTTTGCGGTTTTCCATCCCACATTGCAGGTTTGGGGCTGTGGG
-CAGGACTGCAGTTGGGCCGGGCGAGAAGTTGTCACCTTCCCTCCTTCCTG
-GCTCAGTGCCTGGTCCTCCCAGCCAGGACAGACACCCTCCAGGACTCCCG
-ATGGTGGGGAAGGGGTGGCGGGGACAGACGAGGCAGCGGGAGGCATCCTG
-CTGGGCTGGCACCATGGCGGCCGGGACACACTGCCCCTTGGGGTGCAGCC
-GCTGTCTTAAGTTGACTCTTCCCATGGCTGGGATCTCCCCCTTGTCATTC
-CCTCATATGCCCTAAGGTAGAGGGGTGTGttttttgtttttgattttttt
-ttttgagacggagtctcactctgtcgcccaggttggactgtagtggtgtg
-atcttggctctttgcaacctccacctgctgagttcaagcgattcactatt
-ctcctgcctcagcctcccaagtagctgggattacaggcacctgccaccat
-cccctgctaatttttgtatttttagtagaggcagagcttcaccatggtgg
-ccagtctggcctcaaactcctgacctcaggtgatctgccctactcgacct
-cccaaattgctgggattacgagcgtgagccaccatgcccagccATCCTAA
-GGTTTCTCTATTTGGGATGGCTGCGTTCAACACTTCCCTCCAGCTTCTGG
-AAGCCCATCTCTTTCAGAACATCCTCTTGCCCCACCTGGGTGAATCTAGA
-GCAACCCCAAGCACTCTTGGGGGTGCCTGTATCTAGTTCAGGGGTAATCC
-TCACACATATTGAACTACCTCAATCAGACTTTCACCCTGAGATCTCTCAG
-AGATGGCTCAGATGCAATTCCCATCGCCCCCAGATTATCCAGGGCTCTGT
-ATTAACCCTTGTGGAGGGTATTATCAAAGCCTCTCTTCTTTGCCAAGAGG
-TAAAGGGGATTTGTCCTGTAGCCTTTCTTCAGGCAGAACTTACGACACCC
-TCAGATCTCTCGATCATCACCTTTGACGGTGTCCCTGAGTCCACTGTACT
-TAGTCTCAGGAGGTGTCACATCCCCACCTCTCCCCTAGATGGGACTCACC
-GCGCAGATCTCCAGAGAAATCTTCTACAAAAACCCTCATGGGTCATCTGC
-TCCAGCCCCTCTCACTGCTCTCAGGGTTGGGAGATAGAACCATGTGGTAG
-GTGGAATTGACAGCACAGCTCTCTCCAAAGAAATGGAACGCGCCTTACAG
-TTACACCCTCCACTGAGGAATGACAAAACGCTCTAAACATCTTGTTTTGT
-TTCTCAGCCAGCTGTGCTTTACTGACAATGCACCACTCAGGCCTTGACCG
-TGTACTTCCTCAGCAGGGACAGGCGCTCCTTCCTCCTTCCTCAGCGGGGA
-CAGCCACTCCTTCCACTGCTGCTTCTTGCCCTTCAGGTTCTCCTCGTGCT
-TGTTGAGACAGTGGCTCATGGCGCATGTCTTCTTAGGCTGCAGGTCCACG
-GGCTGGTACTTCTTGCCCTTGTAGAATTTCCTGAGGTTTTCTCTGGTTAA
-TAACCATGAGAACACAGGCAATGGATTTGCGGACGACTCGGATCTTAGAC
-AGCCTGGAGGCTGCACCGCCTGTCACTTTAGTGACACGCAGCTGGGACAG
-CTCCACCTTCAGGTTGTCCAGCTGTTTCAGCAGTTCCTCTTCTTCCCTCG
-AGGGTCTCAGGCCTTGATCTTGGCCATTGCTGCACAGGCGGCCACCGCCC
-GCTCCTGCTCTAAACATTTTTATGTCTTTTACCTTAAAAATATCTTCCTG
-CTAGTCTAACACTTTGCATTGGAATACACAGTGATCTAGAATTTCCATTT
-CAACACCCTGTCTAATTATTGTTTTCACCCAGCGTTTCTGCTAAACCTGG
-GAACTGATGGAGCTGTTTGACTGCTCCCAACTGCCACATTCATTGGCACA
-TTAATTTATTTACTGTAATCCACACCTCTAACCCTGAACAAGGTGTTGGG
-AAAGGTGTGTAAATGTGTGTCAACAACACGCTCTAATTAAGCGTtgtttc
-tcaactgggggcacttgtaccccccagaggtcatcaggcaatgtctgaag
-acattaatgcttgtcataacccttgtgtttgtgaaagggttgctgttgca
-tgcagtaggcagaggccagaaattcttctaaacaccccacagtgcaggga
-cagccctgtcagccctacagagagtgaccagccccaaagttaggcgtgcc
-atggtCAGAATGTTTGCCATAGGGAGCCCCCAGGCCACTAATCCAAGAAG
-ACCAGCATCATCAGCCCCACTGCCCTCCGCACTTTGGGCTTCTGAGAACA
-CCAGCTTCACAGTGGAGGTAACCCTGAGTCATCAGCTCCATGGGTTGGTG
-AAAAGATGCATCTCCCAGAGGAAGCTGAACATACACTCAGTGCTGGGCAT
-CTTTTAGAGCTCCCTTCCCTGCCTCAAGCACTCAGCTGACTTGGAAAGAG
-CCACACGCGCTGGGACTGGAAGGAACGCCTCCTTTCCTGGATGCCCGTGC
-CGCGGTGCCCACTCCACTCACCATCCCTCCTTGTCGTCTTCTGGTCACCG
-TGTCTTCGGCAGGGCGTGAGTACCTCACCTGCGGGCTGTGGACGGGTGCT
-CTTGTGTTTCTGCCTGGGAGGAGGGTTTGGCACTGCTGCGGATGCAGCCT
-CCCGTCTGTTGGACTCCTCTACCTGCTCTGCTGGAGCACCCCTTGGCTGC
-AGCGAGGCTGGCCCTGGAGTTCGCTCTCCTCTGGGGTCATCCTGCCCACA
-GCTGGGGCCCTCTCTGGCTTAGGTGTATGGATAAGAACAGCCTTTTCTTG
-AAGAGATGAGGAGTCCCTTAGAGGAACGCCAATAGCGATGAAACCAGATT
-CTTCTTACCTGGTCTATAATGAAGCCAGCCAGGCAGAGCCGGAGCTCCCA
-GCATCCCTGAGACCTGACACCTTTTCCTCTCGGCCACATGGCCCTCCTGA
-GTCCAGTCAGGACTCAAGGCTGTGAAACTCTGCATGTCTGGTTCCCCctt
-cttccttctcatttttttctttttccttttctctttctttcttttttcct
-tttttggagatgaagtcttgctgttgcccaggctgtagtgcaatggcatg
-atctctgctcactgcaacctcctcctcctgagctcaaacattctcctgcc
-tcagcctcccaagtaactgggattacaggcatgcaccaccatgcccaact
-attttagtatttttagtagaggcagggtttcaccatgttggccagtctgg
-tctcgaactcctgacctcacgtggtccatctgcctcgacccctccaagtg
-ctgggattacaggcatgaaccaccatgcccagcctctttttttctttctt
-cctttactccttcGTGATCCTATGAGTCTCACACCGGAGCCTGGCACTAT
-GATCTATGCAGAAAACTGAGCATCTCCTTTGACCTTCCACGCAGGCTTGC
-CCAGCTGTCATTCATGTCGGGACTGGCATTCCATTCCAGGCCTGGGGAGC
-TGCATAGTGTTTCTATTCTTGACTCTCACGGATGACAGGAGTTAGGATAC
-TGTGGCCCTCCCCTCCATTGGACCACAGTGTACGCTGTGATTTATGCTCT
-AAAACCTTGGAGGCGTGTTCCCCAGCCTGCTCACCTCCCACTGGCAATGC
-TATAGGGAATTGTAGGGTATCAAGTTGAGCTTCTGGCCTTCTAGAACCTT
-CTCCCTGATTAATCTATATCCTCAGGAGTTCTCATGCTCTGGGTCATATA
-ACCACTTCATTTTTGTTCTCTATCCCCTCCCCATAAGGAATACTTGGAAT
-TATTTATTATTAATGAGAGGAGCATGAAGAAACCTTTAAGAcacttctag
-aatggtaatttccaagaatccatttcccagcaaaacaaccaaaactggta
-aaaaattcttttaaaaaacaataatatctctacaaattattttaagggga
-ttaagcaaatgaagttacattcattcacaatttcaacaaaatcttaagag
-cagtgagagtctgtgacacatgaggccctaaatggtcccatgacctcctc
-tcccctggtcagcttcacagagctccatttccattggcaggaagacgggg
-ccttctgtctccttggctgtcagtccgcattgactgtatgaggaagggca
-ggtagccagcatttcccaaccccaccgcctccgaggtgcagaagctgagt
-ccttgttgaggggaagtaacaaatagtttgagacttccctcttacaccca
-gcccccactcagagggcagtggctctgccccaggcatgccaggctgagaa
-tatgagggccccaggtcaggctcacatagttgaatttccaaacttgaaga
-gaaaagagaagaagatcagaagctacTtcagagactttgctcgggggaaa
-tttagtccacaagaatgcagactgccaaagctctcccccagtagaattaa
-cttcaaaacacagtgttcaaaatagtgtgttcaaaccaaaagaatctctt
-gaaaataaggaagattgtggtggtgggaaatcaaagggcccatgctccat
-cagaacaagctaaacataagctagctagtttaccagacagaaccaggaaa
-agagacagctaagagagccctcttggggttcaaatgaaccttaaatactg
-gcttaaaactttcccttcctgaatttaattttatcaaattatggagcaac
-ttatgtaccagggaatagggggtgaaaaaacaaaaacatacccagcaatg
-agtaaagtctaacagctgggtgcaataccaaagagaaagaattctgcata
-gagatgtcagggacagagacagagacagccccgctaatccaccatcaccc
-cagggagactgcccttgtccattgctgcctgtggagttgacatcggaaac
-ctcacactgtgtggaaatagagttcattaaaatagtccagcaaagtcact
-aaaaaaaaacaaacaacaaaacaagcctcagaaatagtgctaggagatta
-gtgtctagagttggtataatatcttacctaaaatgttcagttttttaaaa
-aattataagacaagaaaagaagcaggtaagtgtgaccctgaggcatggaa
-aaaagtgagccacagtacttgcctgtgagaggccctgatgttggatttag
-tagacaaatactgcaaagcagccattgtaaatatgttcaaagaactagag
-gaaaatatgcttaaggaggtaaaggaatctattatggtaatagctcattg
-agtagagaatatcaattttagtaaaactaaatggacgttctgaacaagga
-aagtatgctaattaatacaaatatgtaccaaagagctcaacagatttgag
-ttggcagaacagtctgcaaacataaaaatagatttacagaggttcagcaa
-tctgagaaacggaaagaatagcaaatgaaaaaaaggaagaaaacctcaga
-ggcatgaagaaccattcagagcaccagtatatgtgtcctgagaatacaag
-aaaaaagagataaagcagaaaaatgactggaaaaaccatgaaacttcccc
-aaatttatgaaaaattgttatctacacatatctatctagctccatgagct
-aggataaaggcaaagacattggcaaacagacattggcaaacacgtcatca
-ttaaaatgctttttaaaaggacaaagaccaatcctgaaagcaacaaagag
-aaagatcagttgtcacacaaagggattccaggtgagatgaacacatgact
-tctcatcagaagcaatgcgggtccgaagacagtgggacggcagagtcgaG
-TGGGACGGCAAAGTCGAGTGGGACGGCAGAGTCGAGTGGGACGGCAAAGT
-CGAGTGGCAACAGGAAAAATCAGAAACCAAGACTATCAGATGCACAGAAA
-CTGCTTTTTAAAAATTAAGGTGAGttccagtttcacatgtaaggaacacg
-gaagtcaccactctgacctaacaagtaaaaagcgaaacagattaaaaact
-ccagaagtatttttgattctgtaagtggatgagcacacagtgccagccac
-tccccctgaaattgaagagacagttgtgtggaagccgggaggcacagctt
-gctagaggagagatttgggatgagaaaccgctgtgggaaacagtgtcaga
-gtagaagaaactgaactccaactcatggattgctagaggcccagagtgga
-tgagtctgagagttataaataactccaaagggacccagtaccaggaggcc
-cacctcactcttgtgagttttacctgtgagagctaaccaggttccccaag
-aaaatactgcagaaaaaaactgttatgcttccagcaaggggaggaaaaaa
-ggaactattctgaaatctaccagatcactcagttctcaaaaaggcctgtc
-ctcaggagaaaacatccaaccagagcataaaataccggggttttattgga
-gtttaacttacctgagggaagagaaatatccaactttagcctgccctagc
-tttccATGTAGGAGAAGgaaaatactcaatccagatcctaaaatgttgga
-gttttatcacagtccagcttgcttgagggaagagaactacccaatttcag
-cttgtcctggctttccatgtacgaggaggaaaatgctcacctccagccca
-ctctcgctatcctgccccatgtaaattagcaggaactgagaagcacttgt
-gaggttaacagtccagagacgcagggtcgctaaacagctgggaccgaatt
-gcaggattctataacactttgcctccccctacaccgtagcaccgcattcc
-taaagacctgctaaaaccagttcctctcattgagcacacaaagcctgcct
-atgaaaaacattataaggtgtacttaaaaacacacatacagtttcaagaa
-atagagctagcatcagaaccagacatggcagtaatattggaattatcaga
-ctaaggatttaagactataagcgcaaatatgctacaggctctaatagagg
-aagcagacagcaagaacaccaggtgtgcaatgggagcagagacagaatcc
-taagaaagaaccaacagtaaatgctagagatggaaaacactgcaacagaa
-ctgaagaatgtctttgatgggtgtattggtaaactggacgcccctgagga
-aaggatatctgagatgaaggatgtatcaatggtaacttcccaaactgaaa
-agcaaatacaataaaggctgaaaaaaacagaacaatattcaagaagtatg
-gggtgactacaaaagatgaaacatgcttgtagtgggaataccagaaggag
-aaaaagaacagaagaactgaggggagagaaagagaggaagaaagagaaga
-gaagagaagagaagagaagagaagagaagagaagagaagagaagagaaga
-gaagagaagaaagaaagaaagaaggaaggaaggaaggaaggaaagagaga
-aacagagaaagagagagaaagaaagaaaagaaagaaaagaaagaaagaaa
-gaaagaaagaaagaaagaaagaaagaaagaaagaaagaaaaagaaagaaa
-gaaagaaagaaagacagaaagaagaaagaaagaaaatacttgaaacaata
-atgactggaaatgtcctacaaattaataccagacacaaagcctcagttct
-aggaatttcagagttcaccaagtaggataaatgcaaaataataataataa
-tgaaaaatctatgcattttattttccaacaacagaaatttgaacattttt
-taaaaatctggaatgaagccagggagagatgaggagaaagaccataccta
-taaaccaacaaataaagaattacatctgactttttaagcagaaattaaac
-aagcaagaggagagtaaggtaaaatatttagtgctaagggaaaaagacca
-ccaacctacaattctgaccctgcaaaattatcttttttttttctttttga
-gagagtttcactctgttgcacaggctggagtgcagtggcacaatctcagc
-ttactgtaacttctgcctgctgggttcaagttattttcgtgcctcagctt
-cctgagaatttgggattacaggcacccaccaccacacctggctaattttt
-gtatttttagtagacacagggtttcaccatgttggccgggctggtctcaa
-actccggacctcaagtgatctgcccacctcagcctcccaaagcgcttgga
-ttacaggcgtgagccgccatgcccggccaaaattatctttcaaaggcgaa
-ggagaaataaatcaaaacaataaaaaatggagataatttattatcagtca
-atctgcctagtaaaagatgttacaaaagttctttaaagagaaggcataga
-ctcagatcacacagaaaagatgagtcatgaagaaagaataagttaacata
-aagtaaaaacttatttttcttgtttttaactgatctggaagataatagtt
-tgtggcaaataacagcagcaagatcttcaattaagtatgcttatgatata
-tcttatgtgtgtgtaatagcagcaaggtcttcaattaagtatgcttatga
-tatatcttatgtgtgtctacatatgtatgcatgtacacataagctatacg
-catgcacgtgtacacttacgtgtgcctatatataagtgaaatgaatgaca
-gatataatggaatgaatgcaagggaggaacgagggatcttatatcacact
-acatgtgaagtggtataatgttctttgaaagtaggattcgattccttgta
-aatgtgtattgcaaactctagggcaatcacgttgaaaggtttaaaagcgg
-gggttactgatatgctaagaaaggtgagaaaacagaatcatataacattc
-tcagctataactacagaaggcagaacaaagagtgaaagacaaaaatagaa
-acaagagcaagtgcaagatatagaaaacaggtaccaatatgatagatatt
-aatctacctgtatcaataatcattttgaaagtcaatagtttaaatgcacc
-aattaaaagatggagatagtcacagtggatcaaaaaataagacacaaata
-catgtaatctacaagaagccaactttaaatatttaaaaatgttgattaaa
-agtaaacggatgggaacgatgtcatgctaacactaatccaaataaagcaa
-aagtagctacattaatttcaaacaaagcagatttcaaagcaaggaaagtc
-atcagggataaagaagagaattacataatgataaagtggccaattctccc
-aggagacatggcaatctttaacagatatgcacccaaaaacacagtgtcaa
-aatacaaggcaaaagctgatacaactgcaaagagaaacagatgaattcac
-tctcacagttgaagacttcagcgccccttctatcagaaatggacagatcc
-agcagacagaacatcggcaaggacataattaagaatacatgttcttccca
-actcacagggaacattcacgaaaacaaagcacattctgagccataaaaca
-caccctaacaaattaaaaatcatataaatcatacagtgtcagctcttagg
-ccacagtagaattaaactagaaataaataacagaaagataactggaaaat
-cacaaaatatatggagattaaacaagacattaaaataatacatgagtcaa
-aaagaaatctcaaaaaattttttttaaatttcttgaactaaattcaaata
-agaaacaacaacaacaacaaactcctggaactaatataaataattaacta
-cagcaagattaaaggatatacggttaataggcaaaagtaaattgctttcc
-caaatgctagcaatgaacaagtgaaatttgaaattaaaaacaaaataaca
-tttacactaccaccttaaaaactgaaacacttcgatataagtccaacaaa
-atatgtacaagatctgcagctctgttgaaagaaatcaaagaagaactaaa
-taaagggagaaatactccatgttcatggccaggatgactcaatattttca
-aaatgtcagttcttcccgatttaatctctagattcaatgtaattcaagtc
-aaaatcccagaaacttattttgtggagatttaaaaattgattataaagtt
-tatatggagaggcaaaagactcagagaagactacgtaatattgaaagaga
-agaacaaagttgaaggagtattactacccagctttaagactgtaatgctg
-caataatcaagacagtgagatactggtgaaaaatacacccatagtctgta
-tatttttaacaacaacccttaatcagatatgtctttactgcatatctgat
-tgtctactgcaataaacccattggcaagtagatcaatggagcagaataga
-gagcccagaaagagacccatataaatgcagccagttgatctttgacaaac
-aaacaaagacaacgcaatggagtaaagataaccctttcaacaaacggttc
-tgaaataactggaaatccacatgcaaaaaacatgaatctaaacacacacc
-ttacactcatcataaaaactaactcaaaatagatcacagacctaaacgta
-agatgcaaaagtataaaattcctaggctataacataagagaaaaatatag
-atgatctcaggtatgatgatgtgtttttagatgaaacaccaaaggcatga
-tccatgaaagaatgaattaattggactttgttaaaatgaagaacttattt
-tctgcaaaagacaatttcaagagaatgagaagacaagacacagactgaga
-gaaaatatttgcaaaagacatgcctgataaagaactgttattaaaaatac
-acaaagaactcttaaacagactgcgagaaaatatttgcaaaagacatacc
-tgataacgaactgttattgaaaatacacaaagaactcttgaactcaacaa
-taagaaaacaagccagttaaaaaatatgccaaagaccttaacaggcacca
-aaccaaagaagatacacagatggcagataagcatataaaaaagtgcttca
-tatTGTATGTCatgtaagacctaaaactataaaactcttggaagaaaaca
-tagggggaaagcttcataacaataagtttggcaatgatttcttgattatc
-acaccacagacacagaaaacaaaagttaaaatagacaaatgggactacat
-caaaattataaacttctatgcatcaaaggatgtaatcaacagaatgaaaa
-ggcaacatacagaatgggagaaaatatttacaaatcaaataactgataag
-gggttaatgtcgaaaatctataaaaaactcctacaaaataactacaaaag
-gaacaaattaaaaatgagcaaaagacttgaatagatatttctccaaagaa
-atacaaataaccaacaagcacctgaaaagatgcccagtgtttctaattat
-tagaaaaatgtaaattgaaacaatgatataccacctcacacccattagaa
-tggctactaataaaacaatagaatacaaaagaaacaaagaaaatactaga
-aagaaaagtgttggccaggatatggagaaattcaaacacttgtacgttgt
-tggtgggaatatgaaatgaggcagctgctgcggaaaactgtatggctctt
-cctcaaaaaattagacattaagctaccatgtgatccaacaattccacttt
-tggttatatgcatgaaagaatcaaaagcaggatctcgaagagacatttga
-acacccaagttcatgggagcctgttccacaatagccaagaggtggaagca
-acccaagtctccatggatggatggatggatggatggatggatggatggat
-ggatggatgcatgggcggatggatgactggctggctggctggatggatgg
-atggatggatagattgttggatggatggatgcatgcatggatggatagat
-cgttggatggatggatggatggatggatggatggatggatggttggatgg
-atggatggatgcatggatagatggatggatggatgaacatgtttttgtcc
-atccatacaatggtacgttattcagccttaaaaagggaagaaatgctaac
-atatgctacaacatagatgaaccttgaagacatgatgctaagtgaaatca
-gcccatcacaaaataacaaattctatataattccacttatacgaagtatt
-tagaggagtcaaatccatagagatggaaagcagaatggtggatgtcaggg
-gctgaggatacagggaaggggaaaatattgtttaattggtattgagtttc
-agttttgctagatgaagagttctggagatttgttttatgacaaggtgagt
-attctcaacactactgaactctacacttaaaataattaggtggtaaattt
-atgttacatgtattttactacaacaaaaaaTTTTTATAGAAaatgaaaaa
-aatacacagaaagaaataccgagaactggaagacttcaccgatgaattct
-actaaatacttagaaaagaatttgtacaaattattcacatattttctcaa
-aagtcaaagaaaaggggtcatttcccatgacatttcataggacctgtatt
-gccttgttatccaaaccagaaaggcatcacaagaaaatacaaccacagac
-ccacattctccatgaacatacatgcaaaaatcctcaaaaaatatgaacaa
-gctaagtccagtgacatagaaacaggattctatacggtggcaaaattggg
-cttatcccaggaatgcaaggttgctttaacatccaaaaatcagttaattt
-attataccctatcaacagaacaaataataaaaccacatgataatttccag
-atatacagaaaaagcatataacagaactcaacatcacctcataacaaaaa
-gaaagaaagtcacaacaaactaggaatagaagaaagtttcactctgataa
-aatgcatctattaaaaacctccatggctaacatcatatttaatggtgaaa
-gattggttgctatccacctaagatcaggagcaagacccaagaggtccact
-ctcaccttcttctttattaatatactagaggtcccgcccagggcaattag
-cctagaaaaataaaaaaatacctctagagtggaaaagaagattaaactat
-ctcagtttgcagatgtcatgatctcatatacaaaaattcctaaacaatcc
-acaaaataactattagaagtaacaaattcagcaagttttgggaaacacac
-tcattatgaaaaataactgtatttctatactcttataataaagaatccaa
-aactgaaatttagaaaaacaatttcatttgcaataccgtcaaaaagaata
-gcatatttaggaataaatttaacaaaagatgtataaactgatactctgaa
-aactacaaaatattgcttaaaaattcaaaacgatctaaatgaatgtaaag
-ctttcctatatttatggataagaattaaaacttaaaattggttagatggc
-aataatccccacactgaggtatagattgaatgtgatacctaacaaaagcc
-aagctgacttctttgcagaaattcataaactgatcctaaactttaagtgg
-aaaaatcaagggatctaaaatagccaagataatcttgaaaaagaagagca
-aaattagggggctcacagttccccacttcgaaacttgtgccaaagctaca
-gtattcaagacaatgtggcgcagacataaggagaaacacccagatcagcg
-agataaaattggaaatgttgaaataaacccagacgttcacggtcaattga
-attttgatgctgatgccaagacaattcaatgtgggaaatcagagtctttt
-ccacaaatggtacaaaagaattcatctgaacccccacctcacatgataca
-caaagttaactcaaaatggaacaaatagttaaatgtagagacaacatgat
-aaaactctcagaagaaacagccgtaagttgttacgaccttgattaggtag
-tcatttctgagatgtgacacaccaaaatcataagcaataacaaaaaaaga
-gtagatgaatttgacatcttcaaacttcaaacctttgtgctccagaaaac
-accatcgagaaagtgtcttttgaagcactaaatggcattttattgccatt
-ccatgaattaaaaaggtgagccagagattggcagataagttttgaaaagt
-tacatatctggtagtgaacttctgtctagaatattaaaaggacccttgca
-actcaagaataaaaaagacaacacaaattaaaaatgggcaagtgattcga
-atagaaacttcttcacagaagatgtgcaaatgtccaatgacacgagacga
-tgctcaacatcttttgccaccagagaaatgcaaattaaggccagaataag
-caagtgcatcatttccatgaggatggctgacataataaacactgatgtta
-atacctcttggtgaggatgtagagaaatgggaaccctcggacactgttgg
-tgaggtgtaaaagggtgaagccactttggaaaacaatcctgcaagtcttc
-aaaatgttaaacatagcattaaaatgtgaccagcaattccactcctaggt
-gtataccaggagaaatgaaaggggacacaaatgttcatcgtttatggcag
-gattattcataatagccgcaaagaggaaacagcctgaacatccatccatt
-aatgaataggtaaataaaatgtagtgaacattatttggctatgaataaat
-gaagtactgatgcatgatacaatacggatcaatcttgaaaatactgttct
-gagtgaaggaagccagctacacaagaccaggcattgtatgactcaaatga
-tgtgaaatttccagaataagcagaatgtcaggctgtggttgtctagggtt
-gggggtgtaggcaaaatgggtagtgactgctagtgggtataaggtttctt
-ttggggtgacagaaatgctataaaattgattgtggtgttggttacgtatc
-tatgtgaatacactacaaaactttgaattgtgtagttaaagagggtgaat
-tgtctggtatgtgagttttatatcaatagagctgctgtttttaaaaATAG
-ATGATTAAAATTAATACTTTTCTCCTCTGGAGGATATTCTCTTTCTTTCT
-CTTTTATTTGTATAAATTTATGGGCATGGAGTGAAATGATAGGCAGTGAA
-CACTTGGCACGTATCCATTCTCTAACACAGAAGTAGAGCAGTTATCAAAG
-GCGTGAAGCTAGGGCTAAACTTCCAGGATTGTAGTTGCAATCTGGAGAAT
-GTTTTCTGGGCACAGGTCCACCCTTGGCATTGAAAGAAATGCATCATCTG
-AAAAAAGATGTTTCTTCTGCATCAACCGAGATCTGGCTGACTCCCAGGAA
-GAGAGAAGCTGGCAGGCTGGAAGCTGACACTGTCCTAGCAGTGAGCACCT
-TCTCCGTGGTCTGAGAGAAGGCCAGGCGCTTGGTCCTCATGCTTCATTTC
-CCTCTTATCCTACTTAGAAAGTCTCCATTTctctcgcctgtaatcccagc
-actttgggaggccgaggcgggcggatcacaaggtcaggagattgagacca
-tcctggccaacacagtgaaaccccatctccactaaaaatacaaaaattag
-ctgggcgtggcagtgtgctgcctgtagtcccagatgctggggaggctgag
-ggaggagaatggtgtgaacccaggaggcggagcttgcagtgagccgagat
-cgcgccaatgcactccagcctgggcgacagagcgagactctgtctcaaaa
-aaaaaaaaaaaaaaaaaaaaGTCTCCATTCGTCCTCTCATGTGATAGGAC
-AATCTTTATTTATTTGCTATTTTttgatgtaccaaaagctgtacataatt
-aatgtacagaactcaatgagtttggGATAAGGTGGTCTAACTGCCTCTGA
-ACTCCCCTGAAGGATTCTGAGAAGCTGGCTAAGGCAGCGAACATAGTGAG
-AGAGAAGCCTTCTGACCAGACTGGAGGGGCTGCTAACCTCAGGAGAAAGG
-GTGGCCATTCAGACCCTCTGAGTGGGAGGGGCTCCCAGGACCTGCAGGCC
-TAGTATGGCTTCTGCAACAAGCTGCCCTGCCTCATGGAGGATCGGTTCTC
-AAACTCTTATTTGCATAGCATTCAGCTTGGACAAGGGCCAGGGAATGGGG
-AGATTTTCTTTTAAATTCAGATCCCCAGGCTTATTGTCTCTAGGACCTGA
-TTCAATCAGCTCAGGTACCTGCATATTGATGTTACCCAAAGGTCTCTGGG
-GCAGGTGGTCTGGACAGCATCGCTACATATACAATGGCAGTGGAATGGCA
-AGACCTACCAAAGGCTTTGGGATCGGGGTCAGAAAACCTCACTCTCGGTC
-CTGGGTTATGTGCCTGCTGGTGGTGTGAGCAGGAGTCGGCACCTTCTGAC
-CACTCCTAGCCCTGcccttggaaacccaacccatctcagagcttgagatg
-ctgtctgtatactgataaaccccaaatgtatagctccagcctcaggcatt
-ccctcaaatcccagtggtttactacagggcatatttgacatctctgccca
-cacatcacaaaggcctcttcaggttaacatgttgaaaagtaaatacctgc
-atgcctatctgccatcaagctgccccatcagatctaactgatgtctgtgc
-tgaaagctccatccttccaggctcttaggcaagaagacctggagttccct
-tcaggcctctgtcgttctcccaccctcacacttgatccagcagccaacct
-acttggctctgcctgagacacacatctggaatccaatcacttcccaacac
-cccctctcacaaacaccctgaccaaggcaccattgtctcttcctggaccc
-acgaacttgcctcctaacagagccccctgctccctcgtcatgcacctgct
-gcctgctctcaactcaacacctacacctgtcatttaagccaagtccttgg
-ctctgaacctccagaggctctcatctcagttggtggaaaagatgcaggct
-gtgctcaaccctccagggccctacgttctctgctgctcacacgcacagaa
-tgcagctctccggtctcttctcccctgccctccccgtgccatacacacta
-acctctttgcagaatgttccaggcaagctctgccatgcatctgagcatct
-gtgccttcccccgacctccttcccccATCTCCCTTAGGCCTCCACTCAGT
-TGCCCACTGCCATCCCCGACCACTGGTCCAGAAGAAGACGCTGCTTTACT
-TTCTCAGCAGAACTTCCTGCCTTCTGATGACATTCTCAGTTTGGTGACCT
-CATCCCTCCTGTTCGTTGCTTTGTTCAACAGCCAGGCAGCACCTGGCATG
-CAGTAGGAGGAGTTAAGAGAGCAGCATCTTTGAGTGAGGAGGATGGATGT
-GTGAGTGAGACCCCAGGGCCACGGGAGCAAGGACCATAGGACCCTCTTGT
-CCAGGTTCTGGTATAGGTCCCCTATCCTGGCAAGACACCTTGGAAGGCTG
-GATGGGGCAAAGAGAGGACACCCTTAGCCCAGGCAAGAGTTGGCCCAAAG
-AGCTTTCTGGAAGCCTATAGCTGCGTCCCAGCACTCACAGTGCCAGGGTG
-AGAAAGGGCCAGGGTGCCAGCAAGCCAGTCAGTCACAGTGGAAGGGACAA
-TGCATGGAGCTTGGGCCACCTTTCCTAGAACCCAGCGTCCCCCTGCCCAC
-TCAGGTCTCCAAGGAGGACCAAGGCATGACCCTCTGACCCTGTGGGCCAC
-AGGATGGCAGGGTGGGGGTGTCCAATGAGAGTGAGGGGTGGCCAAAGTGG
-TGCAGCAATGCTCCACCTCGGGGAAGCCAGGGCAGGATTCCAGGAAGGGG
-CTCTAGGCAGAAGGCAGCCCTGGCCCATTACATTCACCTCTTCAGCACCC
-TGGCCTTGGACAGCTCCCGAGATGAACAGGAATCCCTCTCTTCCTAGGAG
-GAGGTGAAGGAGGGTCCTAGGATGGGAATCTGCCTCTGTCCTGCCCCAGA
-GGCCAGGAGTTGGCTCTCGGAAAATCTTGGCTGAGTCCTCCCCTTGTACC
-TTCtttttttttttttttttttttttttttttttttgagacggagtttcg
-ctctgtcacccaggctggagtgcagtggcgtgatctcgactcactgcaag
-ctccgcctcccgggttcacgccattctcctgcctcagcctcccgtgtagc
-tgggactacaggcgcccgccaccatgcctggctaatttttgtatttttag
-tagagacggggtttcaccgtgttagccaggatggtctcgatctcctgacc
-tcgtgatccgcccgtctcggcctcccaaagtgctgggattacaggcgtga
-gccaccgcgcccggccCCCCTTGTACCTTCTTAAAAAATACTGCTATTTT
-CGCTGCTCATGGGTTAACTTGTTGTTTCATTTGAAGCCCCAATTTCCATG
-CTAAAGCGAAGCATCATAAGTAGCAGTAGAATCAGCTCATCCTGCATTTG
-TTTTTCCCCAGCGAGGAGCAATCAATTACCTGAGAGATGTCCGTGGCTGT
-GGCTAAACGGTGACCCAACAAGGTGCAATTGGCAAAGTGTCACTTTTATT
-CATGGCCTCAAATCCGAGAATGGGCTCCCCTGCATTTTAATTATCGGAAA
-GCACTTTCCACCCTTGCTTTAATGAATTATATAAAATTTAAACACATGCa
-attatatattttataaataaaaaGCTGTGGGATTGCCTTGAGGATGCTGC
-GGCCACCAGCAGAGCTGTATTTACTTTTGTCGCCCCATCCTCTGTCCCTG
-CCAGGGTCTCCTGGCCTCCTTCCTTGACCTGCCTGCATCCCTCATTTCAT
-ATGGCCTGGCTCTTCCTCTGTCTCCTTTGAGCTGTGAATATTTAATCATG
-AGGTGGAGACTCACCCTTTCCTCTGCCTTATCCCGGAGGAGAGTAGGGTG
-CTGTGGTTTGGGAGAGAACCCAGCAGCATGCTTCACTCTCTGCCGGACAA
-CTTTCTCTGCAAGGCTGAGGTGCTCCTGATAAGGGCCAGCCCTAAAGCCC
-CTCCAGCACTCTCTTCCTCCACACACATCACTCGGAGACCGGCTTTGTCC
-TCTGGGTCCACAGAGCACCCAGCCACACCATTCTGTTGGGCATTTGTCAC
-CTGGGAGTCAAAAGAGGCTGTGAATAGCTCCTTTCACCTTCCTCTCTCCT
-AGAACCCAAGGCCACCACACAGATCCTTACAGGGGCTCCTGGGTGTCACC
-CACACATTTTTAGATGAACAAATATGATTCTGTGAATGATGGTTTTGTTT
-GCTAAGAACCAAGACCTGAGGAGGTGTGTTTATCACAATGCATAGGCTCA
-TCACCTTTTTGTCTACAGAAAACTTTGTAAATCCATCACCAAAGCATGAT
-ACCTCTGCTGAAGCCCAGGGCCAAGTTTCTCCTGGACAGGTGTTCAACAA
-GGAGGGAACAAAGCCAGGCCCCAGTGTAGGGTCTAGGCTGGGAGTGGAAG
-AGACCCCAGTGGCAGGTGGCGTGGGCAGCGTGGGAACGGTATGCGTGGTG
-GAAAAATTGCAGGGGGCCTGAGATTATCTTGGCCACACTCTCTAGGCAGC
-CCAGTGCAGATTCCCAGTCCCCTCTCAGACCTGACATCCACTGTTTCTGC
-AGATACAATTTTGCAAGCGGTCATGGGAGGCACAGAGGGGTCTGGGCCCC
-AAGAAAACCAGCATTGCTTCATTTTTCCCCTGGAATTATGACTCTGCAGG
-CAGAAGGTTGGGGACAGAGTGACGCAGGCCCACGAGGGCCCTTCTGTGGC
-TTTCTCTATGCAGAAACTTAACAGGGCTTTATTTCCCCATTGTTTATAAG
-CCTTTCCAAAGTCACATTCCACAGCCCCCGAGCCATGCCCTGATTCACCC
-GCTGACCCGCTGCTTTCCCGGGTCGTGGAGGAAGAGAAGTCCCTCAGGTC
-CTACCTCATGCTCCAGCCCTGCGCTTGCTGGGGAGAGATGTCCTGCAGCC
-TCAGGTCCCTGAACACAGCTTGTTCTGCTTATACAGGGAAACCCTGGCAT
-CGCATGCCTGCTAATGTGAGTGAAAGTAATTTCTTCAAAATCACGATAAA
-TAAAAGGTGAAACAATGTTTAAGTCAGAGAGTGGTTAATTGTCTCTCTCT
-AACGAGCAACTGACCTCCAGGGCTCAGCCGCTCCGGGAACTCATTACCCA
-CCACGCTCTGGCAGCGGTGCCGAGCACAGGGGTGAGCCGATGAGGAGAAG
-GTTGTCCTGGCCAAGAGTCCAGCGTGGGAGGGACCCTGCTTCCTGCTCCT
-CCTGGGAAGGTTTCCGGGAGGGGCCGGCTGCTTCCCATTCCTGGGTGTAG
-ATGCTGTGCTGGGGGCACAGGCTGGGGCAGGAGGTGCAGGGAGCAGACGG
-CGCGGGTGTGAATTGGAATGAATGACCAACTCTCCAGCAGACTTTTGGTG
-GCTGCCCTGTTGAGAAAAGCTGTCCCAGTGGCTGCAGGCTGGTGCCCAAC
-ACTGTCTGGTGCTGGTGTCCCTCCCAATCCCTATAGCTGGTATTGAGAGC
-GTATTTATTAAGCACCAGGCACGGGGCTAATACACAGCCCACAAATAAAG
-CTAAAGACAGAAGGAGGTTCCCGTGGCTGTTTGAATGCTCAGCCGCTCCC
-CTGTCATCCAATTTATGAAATGCAAAATCAGCACCACGCTGGCGTCAGTG
-TGCTGCGCAGACAGTGTGTGCCGCAGTCATCCCACCCTAGACCATTAGGT
-TTCCATTTTTCCTCGTATACTATTATTGCTTATCATTTATTAATATGAAC
-CCAAGCGGAATAAAATGATATTACAGCAAGATCTCCATTTCTTGCTATAT
-TCCAACTAGGTACGTGGTCAGTAAACAAAGTCTCTCTCATTAAGCATTAC
-TGCACTTAGGAGCTATTACCAGTGAGGCACACAGACCCCGCTCCCCCGAC
-ACTGGATTTCATGGTTTCTCGTTTACAGGTGGCCTCTGATGTGGCCTGGA
-ACACCCAGGCCACAGGTCTGTTGAGGGGTTAACAGAAGTGTAGCTCTTGG
-GACCTCTGTAGGCTTCCCAGTGGGGAGGAGGGTGATTTTCAAAGCTCCTC
-TGAGCAGAGGGAGGTGGGGGATGGAGACACAGGGTCACCTTGTTTGCATA
-GACTGCTCCCCGAGGGAGCCCAGACCTGTCCCCGATCTAGGCACCTGCCT
-CGGCTATCTGGAAAGTGTAATGCTCTGCAATGTTGGATGTTGAGTGATCG
-ATAGGGTGATGAGAAATGAGCAAGGGCACAGTGAGAAAAATGCCAGGAGC
-GGCAGCTGCTCCAGGCTGCGTGGCCCACACAGTGAGCACCGCTGGAGGCC
-TGCTCACGGCTGGTGAGGGGCTGACAGGGATCCTCAGGGACACGCAGTGG
-GAGGCCGGCTTTGGCCAAAGTGTCTGACTTCGAAAGTTGTAACAGACAAG
-AATGTTCTGCCTCCTGCTCTTGGCAGAAATGGGGATCCATTGACGGGTTT
-GCTTACTGCACTCTGCGTGCCTATCTGTGACCCCACGTGCCACCCACTCA
-TTTGCTGTTCCCTGGTGGCCCTCATTCACTACACTCCATCCAGCCTGTTT
-CTTCAGTGCTGCCCAAGGCCTTATTGGGTAAGGTGGAAGCAAATAATGTC
-CCCACCACGAGGATGGCACATGGAGTCCCAGCCACTCAGGCAGCTCACCT
-GCTGACCCTTCTGGAGGAGTTGCTCCCATTTACAAGGTTCTTCGTGTAAA
-ACATAAGCTCAAATATACACAGGACCCCAAAATAGCCACTCCCCAGATTG
-AGTGGCATGACTCCCAAGTTTCTTCTCTTGGGGGAAGAGGCCCGGAGACA
-ACTGGAGTTGACCGTCCTTGAGGCTGTGACATGGCCTCACTCACTGCGAA
-GAACCAGAAGGAGAGGCAGTCTGCTGTGCTTCCTCCTGCACCAGAGCACA
-GGTGCTTGGTTTGTCTTACTTACGTACCTGTCTGAGTGGGGTCTGAGGAT
-GCTCACTTTCTCTGCCCTGTTCCCTCCCTCAGGCCTGGGGAGCAGGCAGC
-AAGGAAGCTGGGACCAGCTGGGTGGCAAACAGCCCATACCTTAGGCTCCT
-CCCTGGAGCCCAGGGTGGCGTCCTAGGATGCTCCAGGCCTTGGACTCTGG
-GATCCTTCCTTCTGATGCCCACATCACAGAGAGGTGGCCCAGCAGCCTGA
-GGCCAGCAGAGGCTGACACTGCCCAGCCCAAGAGGACCTCTTCACCCCAG
-GCACTACAGGTCAGAGCCAGCTACACCCAAAGATGGGCCCTAGAAAGCCC
-TCCTGTGACTCTTCTCCAAGACTTGCAATGCTCTGCTGATGAGCACTGAA
-AAGTGGGTGCAAATTCTGAATACCTGCATGCATTCTAAACCCTGTTACGG
-ACCAGGTTCTCTGCGTTCTTCTGACAGTATGACCGAGACAAAACCACCTG
-TATGCTTCTCTGATTAAATATCCAGTTGGTGTCTGAGAAGAGGAGAGCCC
-AGCAGATTTTGATGCCTGCTGCCCATTAGCTGTTAAACTAAGATATTGTT
-TTTATTAGACCTTATCTGAAGAACCAGCCAAGCACGGGTTTTAATGAGAA
-GCAAAGAGTGAATGAGGCAGCTATAGGACTGTGCATATGAAAATGTAGGA
-GTGTCTGATGAAAGGCATGGAAATCTCATGCCCGAAGGATCAACAGTGGC
-AGGTCACCAGGAAACCGCACGGTTCTGTGCATAGGCTTAATTTTTCCCCC
-TCATCTCAGCCTGCGGTAATATTTTAAGTAGAACCCAATGATACATGAAT
-TCATGTATTTATGCTTTTTTTGCCCATTTGCTAGCCTGTGTTCTTTTTTG
-GGCTTTTGTATTTTTCTCCTAAATTCAAAGCTGCATCCTCCACACCCCCA
-CAAGCTTTGGGGAGTGGTTGGTTAGCCATCCTGGCAAGGGTCTTTCTGTC
-GGTCTTACCTTCTGACCTGGAACCTGGCTCCCTGGGCTCCCCTTTCCCAG
-GCCCCTTGCGGGTCTCACCAGTTTGCCTTGAAGGAAGGCAGGTGTGGCAG
-CAGCTTCCCCTGGGGTGCCTGCCTCCTACCAGGAGGTATTGCTGGCTCGC
-CGGAGGCAGCCCCGCGGGGGAGGCTGGGTGTGCAGATGTGCTTCTCCTTT
-CTCTCCTACATGGATACCAGCCTTCCAATCCCCTCTTTCAAACCCACCAG
-GAGCTGTGCAGGCTTTGGGTTCGGCCTTGTCATTGGCTCTGTGCTCCTGC
-TCACTGCTTCTGTATGTGGACTCGACTTCCTGGGTGACAGGATCCCATCC
-TCCCCGCAGATGGGTCATGGAGCTGCACGCAGGGCCCCAGGACCACACCA
-TCTGCACATCTGCAGTGGCACCTGGGCCTTCCCCAGAGCAGGGGGAGCTT
-CGTCCAGCATGGGGACCCTTCAAATCAGAGACTCTATTGAGAATAAAGCA
-GGCCCTGGCTCCTTGAGAAGGGCAGGTGGGTGGAGTCTCCAGGGACAGCA
-GGAAGGGGAGCCATGTGACATCCTTGCAATGTCCCTTTTATTGGCTGACT
-CCAAGGTGGTGTTTACACATTGTCtttgctcagctgccacaacaatgcac
-tgcagacaggaggcttcaagaacagacacttatttcctcacagtgctgga
-ggctgggagtccaaggtccaggtgttggttccttccgaggcctctctcct
-cagcgtgtagacagcattctctctgtgtcctcatgtgggagtccttctgt
-gtgtatctgcatcctcgtctcctcttcctattcagacactagtcagatgg
-aagcagagcccaccccaaggatctcatcttaatttaatttcctctttaaa
-gatcccgtctccaaatacagttccattccggggcgctggaggtcaggaca
-tcaacataggaacttagggagcacaattcactccataataCACATATAAT
-TATTTCCTGAATAATTTTGAGATCGATGCATTCACAGAGTCCTGATTGGG
-AGACCAGGAGGTCTGTGGCCCGACACCCACTCACAGGGCACACAGCGAGT
-GCTGCCACCTGGGTAGAACCAAGAGATCCAGGTGTGGATGCTCCTGCAGC
-CACCTGGCCCTCGGGCCTCTGCTGTCTTCTTTTCCTCTTGTGCTCCCCAG
-CCTCCAATCCTCGGTTCCTACCTGCCCTCACCATTTGCCTCCCCGGACCC
-CAGGACACAGGGTTGAGGGCCCACGCCATCTCTGTCCATTGAGTCTGTCT
-GTGGGACTTGGCTTCAGGTTTAGCACTGGGTCCAGCTCGTGCTTTCGTGA
-GGGTGCACCATGGCGTCCCAGCTCCAGGATCACTGGGGCCACATCCCACC
-CCCTAGAGATTTCCAGTTCCCCAAATCTCAGGGCTCACGGGTGCTCCCAG
-GACCCCTCCAAAGCAGCTGTGGGCTGTCTTGTGGGATAGTCAGGGGCCAT
-AGCTGAGACCCCCAGAGGCAGTCACCACAGGGCCCAGCAGAGATTCCAGC
-CAGCCTCCCTGCACAGGGCCCAGCAGAGACTCCGGCCGGCCTCCCTGCAC
-AAAAAGCGAGGCAGGTATATTTTTATCTGATAGGTTTTAGGAACATTTTT
-GATAATTTCTAAAGTTAAGGCAGAGAGCCAGGAACACTGGGCAAATGGGA
-CTAGTGGGGCCGGCCCTGTCAGGCGTTCACAGGGCGCCTCCCAGGCTGGC
-TCTTCTACTTTGTAAACTGCAAGGAGAAGACGCTGTGAGGAACAAGTCAG
-CTGGTGTGTGAATGTGGGCGGCAGTCACTAAAGCAGACTACTGGTCCTTG
-ACACTAACAGTAACCAGGACAGTTTCATGCCAGGGGAGGGGCCACTTAGC
-CCCATCCATTTTGTAGGACTGGCAATTATGCTGATACACAAAGAAGATTT
-TCACACACCAACATCCATCAGTTAAGAGAATGTGGGAAACAGTATTCGCt
-gaatgaatgaatgaatgaatgaatgaatgaaGTGTCTTAGTCCACATTGG
-TGAATGCAGGCTCCCTGGGGGAGACTGGGCTCTGTATCCTTAGTATTCAT
-TCTAAAGTTTTGTGCCTGAGTTTCAGATCCTctccctcccctccctccct
-ctctccctccctccctccctcccAGCAACCATCCTCACTGCTTCTAGAAT
-CCGCCTGCTCTGTCTTCTTCACCAGCCAGCCTCCTGCCCTCTATGGAGAG
-GTTTCTGAGGGAGGAGGCAGCAAGGTATTCTTAACAGCCTCAGGGGAAGG
-GATTGACTGCAATGTGGAGGGGGGTCCCAGGGCCCCCACGGTCCAGCAGC
-CCCCACCGTTTTCCTGACCTGGTCTTGGAGCCCCTGGCACCTCACCAAGG
-AGCCCGAAGACCATAAGTGGAGCTCGTGGCTGAGTTGGGGCTGTGCTCCG
-ACTCGAGGCTAGTTTTTGAGGATATTTTTCTTAGAGACCCAAATGTCAGA
-ACTCTGTGTAACTGGCCTGGACTTCCTGAAACTGAAGAGGGTGTGGGCCC
-TGGAGGGCTCTAAGCATCATTTTATTAGAAAGGGGGATTGTCACCTTCAA
-ATGGATAAAGGCCATAGGGAGCTTATGCCCACACAAGACTCAAATTCACT
-TCCTACACGGCAGGTGCCTGGGAGCTGCTCTGCCCAGCCTTCCAGCTGTG
-GGTTCTAGGAAGGTCCTGGCCCATCCTCCCACCAGGGGACACATTCTGTG
-TGCCTCACAGGAGCCCCCCTGAGTCCCAGAGTGGTCCCCTAAAGGCCAGG
-AGAGTCAGGAGAACTGTCCCTCACGTCTCCCAGGTGAGGAAACTGAGGCT
-CCACGAAATGGGACGTGGAGGAGCTGAAGGTGCTTCTCAGGGCGTTGCAG
-CCCAGGCCACGCTCTTCAGACGCTTTCTGCTTTTGGCTCCCAGAAAGAGG
-CACACAAAGGAGAACAGGGCGTTCCTGCCACCAAGGATTGGCCAGGCTTT
-CTGGGGAGATGACATGGAGACCCAGCCATGGGGCCAGACCAAGTGTCCCT
-CAGAGAGGCCTAAGAACCATCCAGGCACCAGACCACAGTTCGTGCCAAAG
-CCCACTGCAGAGCTTCAAGTGCCCAGTTCTCCCTTCAGTAAGAAGATCAC
-ACTCCAGTCCCCACAGGGCATGCCTGGGGGCAGGCAACAAAGAGGGAGGT
-GACATTAGCAACTTGGGAGTTGGGCAGCTCCTGGTGCTGTGGACCCTGGA
-AGTTGACACAGTGCTCCAGGAGAGGAACAGTTTCCACGCCCAAACAACAG
-GGCCTGGCGCCTTCGCCCCTTTGCTGGACAGAGCCCATCCATGAATCACA
-GAAACAGAGGCTGCCTGCCACGCCTGCGCCTCCGAGAACCGTCCAACTCC
-CCACCGCTCCAAACGCCCCGGCTCCCTTGACTCCCAGAGCAACTCCCAGG
-CCTGTGATGAATCACCCGCGTTCTGAGCCACGCACGGGGTTCACAAATGG
-CTAATGGGAAACACCATGCATTCCTTAAAATGCAATCACTGGTCAGCTTG
-ACCGTGCGCCATGAGGCCAGACGGGGTGGGAAGGAGCCCAGAGCCTTTCC
-CAGCACCATTTCCAGGTTGGGGGTCTGAGGCTGCAACAGGGGGATGAGGA
-GGTACCACCGGGGGCCACGGACGGGAACGGTGAGGCTCAGGGGGCTGTGG
-TGCTTCCAGGGGACTCTGGAAACCTCATTTTGTCTGTGAGGGGTGGGGGA
-GTACAGGCCGGCCCTGACCTTGCCCTCCTTGCTGTGGATCAGACACTCAC
-GCCttatctcacagtctgcagggcagcaatcgggcaggcccagctgggtt
-ctcaacttacagcctcacaaaccccaatccaggtgtgggccgggctgagc
-ccttgccgggagggtctgcaggaaaccgctccatgctcactcggggtgtg
-gtggacccaggtcctggcagccgtgggtcccaggtcccatttccctggtg
-gctgtcggccccaggccatgctttgcccctgaaggcagccgggattcctg
-gccacagggtcccctccctccctgaagcccatggtggtgagtcaggtccc
-tctcatgctgtgaggttctgacttcatcttcttccaccaacttgagaagg
-cgctctctgctttcgaaggcccatgcttagcaaggggcctccctgaGAGA
-CCCCTGAAGACAGTGCAGAAAAACACACCAAAGAAATGCAGAGAAAAGAA
-CACGCAGGGCCCACCTGCACCCTCCAGGGTCCCTGGGCTACAGGCTCtga
-tggttcctttcccgtgtccactggactgggccacagggtgcccaggcatc
-tggttaagtgagattctgggcattcctgcgaggctgtctgtggatggagt
-taacatttgaactgggggactgagtatggccgatggccctgcccagcgtg
-gggagacctccagcctgggaccctgctcttctccggccttcagactggaa
-accaagcaccagctcttcccgggtttctgctgcctgcctccaTGGCAGCA
-GGAGCCTATTTCCTGTAATACATCTCTACTCACATGTGTGCCTGCACACA
-TTTCACACAGATATGTGCCTTAACGTCTCAGACACGGATGGCTTTGCTGC
-CTCTCCCAGCTCCCTGGAGACAGTGGAGAGAGATAAGCCTGGTCGAGAGC
-ACAGCCGGCCTCTCGGGACCGTCATGAGCCGCTGGCACCAGGAGCTTGGA
-GCCCACAACATTCCCTTCCCCTGCAGCAGTGCAAAGGATGAGATTCTCAT
-CAGCTTGGGAAACCGAGATAAAGCAGGGAGCTCTGGGGAGCAATGCCAGG
-GGCTTCAGTGTCATTTTGAGCCTATCTCGCCTTCAGCATGGGCAGGAGCT
-GCCTGTGAGAGTCCCAGCCCACTGGTCTGTCTCTGCCCCCCAGGGCCTGC
-ACTCGGAAGGGGCTCAGGAAAGCTTGAGGAATTGATGGGACCCATGTGAG
-CAGCATCCTTGGGTGGCCAAACCACCCAGGAGGGACCCAACTGGGGACAC
-GGACCCGAAGGTGTGGCCCCTTCATGGCACCCCAACTCCCGGGCCCAGCC
-TCACGTCTCCACAAAGAACAGGAATGGTGGAGGCTCAGCCCTCCCTCTGC
-CTCCACAGCCAGCCCAGGGGGAGACAGTGCCGGTGGGAGCTGTGGTTCTT
-TAACAGGACAAGTGCACAGCCTCCTGGGCACAGCAGCCGCCCCGGGCTGC
-ACCGTGATGTCTCCCGGCCATGACACCCCGTTTTATTCACTTCTACTTTG
-CAGCTCCGTGTTCAGCCCTGTGCAGGTGGCACTGATAGGACTAACAGCAC
-TGGAAGATTTAGCTCACAGATCAGTGTCATTGCGTTCCATCATCTCTCCA
-TGTTGTTCACTTTCCTACAACGCTCTTTCCAGCTGATATCATTCTATAGC
-TTACGGATTGAGAATTCTTATACTCTTACTTTAGACAACGGGATACTATG
-TTGTCCAGGAGAAATTCCGGTGAAAATGCAGAGAGTTCCAGGCAAAAGGG
-ATTTTGTGGTTTTTGTTTGTTTGTTTTGGGGTTTTCTTGGCCAAAACCAT
-TATGGACTAATTAAAGGAAATGCGCTTTTATGGTGTGGGAACTCTCTTTT
-CTGTAACGGTCGCAATTCTTCCCTTTTCTTTTAGGTGATGGAGGCCCTGA
-AAGGCCTGGTTTTGGGAGAGAAATGTGAGTTTTTCTTTTTATTTTCTCCT
-CGGACTTGATCACATTGAAGCATAATGCTTGGGTGGTGCCGGCCCCTTCC
-CAGGAAGTCACTGAGCTCCTCGCAACTCCGTCCCCACCCCTGGAGGTTAC
-TGAGCTTTGCACGACACCAGCCCCTTCCCAGGAGGTGACCAGAGCTTCTC
-GCAACACCGGCCCCTTCCCAGGAGGTCACTGAGCTTTGCACGATGCTGGC
-CCCTTCCCAGGAGGTCACTGAGCTTCTCGCGACTCCAGCTCCTTCCGAGG
-AGGTCACTGAGCTTTGCACGATGCCGGCTCCTTCTCAGGAGGTCACCAGA
-GCTTCTCGTGACTCCAGCCCCTTCCCAGGAGGTCACTGAGCTTCACACGA
-CGCTAGCTCTGTCCAAGTCGGGGTCCCTGTGCCCCTAGGTTTCCGGTCAC
-CGGGAGAGCTGTCTGTCGCGCCATAAGCTGGAGGTGCGCAGGAGGATAGA
-AATAGAAACTCCTCATCCAGCCGGGCCAGGGCACTGACAGCCACAGCGAT
-GTCCACGGTGTAATGGTCACGGACTCCGTCCCCAAATTAGCCCATTTTTT
-ACAAAGACGATAATGGGGGGCGGTTCTCTGTGAAATGGAGCCCTCCATTT
-CGGCCGCTCCCGCGTCAGGCCCAAAATAGGTGCCTGCTGGTCATCACTTC
-TGCGATCATGCTTTCATCTCCACTCAATTACGTCGCCTCCGCGTACTTCT
-GGGCTGCTGGTTTATCATGTAAGAATATAATTTAAAAGTGATCCGCCCCT
-CACTTTCCATATTTAGAAAAAAATTAAGTAAAAAGTAATGAATGCCACCC
-ATCTCTCGACAATCACACGTAAAAACCTTTCAATTCTTCATGGAAGACGC
-AGAGATGAGCCTGGAAGTCAGGGCGGCTGTAGCTGACATCAGGTCTGTAC
-TCACATTAGCCAGCAAACCCACCGTCAGGAGGCCAGCTCGGCTTGTTAAG
-TGGAGCTGGGGTGATATTGCCCTGATCCACGATAATGAATTCATATTTTA
-AATGCATTTTCAATTTAGGATGTATTTTAAAGCAATTTGCAATTTGTAGA
-CAACTGTAAATCAGAGCATTAAATTAATCACGTAATGAATATGGTGGAGC
-CATTTTTGTAAGGCAAAGCAGTTTATCTACCTTTGTCTTTATGGGGTGAG
-CAGACCCTGCACTTTGGAAATGAATAAAAAGCTCTGTATTTAAAACACAG
-TAGCTCCGAGTCAGACTCCACTGACCTGTCCATTTATAATTCACATCGAA
-GGCATCTCTCCCCAGGGAAGAAGGAAACTGTAGCTACACAGCTGCTAGTT
-CCGCACCCACTGGGTTTAGGTCTCCATCGGTTGTGGGGGCAGTCATAGCc
-caggaaggcatgactcagctgccagcccaagccaagttactttgtatgaa
-ggtctctttcatgtcaagctgtgtcctcacttttggttacacagcatcag
-tgggagtccatctcccctgggctgtgaggtgccagaaacaggggctctct
-gtcctccactctctctccactgtctccacagtgactCTCCACTGTCACTG
-TGGCCTGGCACATGACTGGGCCAATGGCATTAAatgaatggatggatgga
-tggatggatggatggatggatggatggatgagcaggtgtgtagatggatg
-gatggatggatggatggatggatggatggatggatggatggatgggcggg
-tgtgtagatggatggatggatggatggatggatggatggatggatggata
-gatggatggatggataaatggatggaaggaaggaaggatggatggatgga
-tggatggatggatggatggatggatggatggatggatggatggatggatg
-gatggatggatggatggatggatggatggatggacacatggatggatgga
-cggatggatggatggatggatggatggatggatggatggatggatgggtg
-ggtgtgtagatgaatggatggatgagtgggtgtgtagatgaatggatgga
-cgaatgaatgaatggatggatagatagatggatggagggataaatggatg
-gaaggaaggatggatggatggatggacagatggatggatggacggatgga
-tggatggatggacagatggatggttggatggatggatggatggatggata
-aataaatgaatggatgAATACTTGAGTAGCCACATAAACGCAGCACTCAG
-TGCCCCAGCCCATGCTGTTCACTgtgtcttgagtacacctcgctcaggcc
-tggtccagagctgctgtccctgagtgcagtgttcatgattcaacaacata
-ttttccaatgaggtgtctacagcagaagcacacaaaaccaggccatgggc
-tggtttattgatgcaaatgcgaccagaggctctaaggaacctccggtcca
-tgccccctgggagttcagcattcacccactcagtgtctgcagccacttca
-gaacagctcctgcaaatgatgagcatggactgTGCTGGTCACAGTGATTT
-TCTCTTCCTCAGACCCCTCCCTGCCATTCGTGTCTATGCCCAGACTGCCC
-AGACCAACGAGAACAAAGAGCTCTGTCCTTGCACACACCCAGAGTCCCAA
-GTGGTCCTGAGCCCTGTGCACCTACCAGGTGGGCACCAGGGGGTGGCTGG
-GCTGGATAGACAGGGCCCAAGTCAGGGTCCTGCTGGAGACCAACCCCTCG
-CTCCCCAGTCCTGGCCTCAGGACTACTGCTTATGCTAGGGAAGAGAGCCA
-TAGGAAGCTTGCTGCACCATCCACCAAAATCTTCCTGAAAACCCACAGCC
-CCATCCACAGTGACCCAACCCTGGGCCTGGGTCAAACAGGGACAAACCGG
-CCAGCCCCCAGAGGCCAGGCTTCCCCCAGGCCTCTGACCACTCCCCTGTG
-ATGCATTGGGCTTTAAGACCCGATGAGCAGAGCCAGCCGGAGCCTGGGCC
-CCGAGCAGGACCCTGCACAGGGTTCTTCTTGCAGGTCTCTGGGCTGCCTC
-AGTGGGGGTCAGCACCTTCGGAACCCCCCACTGTGCATGGAGTGTTTGTT
-TGCTGCAGACGGAAGCCATGAAACCACCCTCCCTGGGCAGGAGCTGCGCC
-TCGAGGGAGAGCAGAGCCCAGGAGGACTGAGGTGTGCTTCATTATGAATC
-TTGTTTAATGGATATTCATTATTTTCATTTATCTCCTCATCCTGCAGCTA
-TGTAAATAAATGCAGTGTGACACTAGCCCTACAGCAGAATGAATTAGGAA
-CTAATTTCCCAAGGAGTGAACATAGCATCCTGAGGTGGCCACTGGCCAAA
-GGGGTCCCAGGACTGGCACTGACCCAAGATTGATAGAGCCTCAGACCCCT
-CGGTCCTCCAGCAGGGCCTGGGGGCAGTGACTGGAGCAGGGCAGGAGGCG
-TGTCCCCATCCCAGAGCTGCCACACCCAGGACACTGAGGGGCACCTCTCT
-GCACCCTTCGCCAGGTGGTAATGGCTGGGAGAGAGCAGCAAAGGTGAGAA
-GCCCTGTCCTGTGAGAATTCATGATTCCTGAGAACCCAGTCAGACTGCAG
-GGCCCCTCAGCCTCCAAATTACGCCTGCCTGCGGACTGTCTTATGGCTGC
-CTTTTGTGTGCCTCACACCTGGGCTCACCTGGCTGGGCTCTCCTGTAGAC
-AGCTGTGGTTTCCTGGGATCAGAAGCTGTTATGTGTTGCTGGGATTTCGG
-CGTCTAATGCAGGATGTGCCACATCGTGTGGATTTTGAGTTGGATTTGGT
-AACCGGAAGCACTTGCTGCAGGGTTGGGGTTGATGGAGGGGGGATTCCTT
-GGCTTCCTGTCTTGTGGGGAAAGACCCCATAGTTGCTCAAGGTCACAGAC
-ACAGGGAGCAGCCAATGATGATGGTGCGCCCCAGAGGAGGTGGCCGGCAC
-CCCAGCCCCGCACACCTTGCTCCCTTCGTTCATAATCTATGGGTGCATCT
-GGCATTGGCTCTGTGAGCCGGGCATCAGCCAGGCCCAGGAGACCAGCTCA
-GCCCCCATCTCAGGGGAACAAGGGCTCCCATGAGGATGCTCAGATGAAAA
-CCTACACACAGCATGGGAGAATGCGGGTGACCTGAATGTCCACTCGCTGC
-Ccaggttaccttccactcacctcagtagtcttacctgtgaaaggggatga
-taataataaaccctaccccacaggcatgctgtgaagatcaaacaacatgt
-cccatgtaaaccactttgcataAGACAACCCCTGTGCATTACCAGTGCAG
-AGCATGGTGCACCATGTTTAAAGTAAATATCATCCAGCCCCTCACCATGt
-tagcctgcctgggctgccataacaaaagctcaacagactgggaggcctaa
-acaacaggaattaatttcctcacgttctggaggccagaagtccgagatca
-aagtgtcagcagggtgggtacctggtgagggctctccatttggtttgcag
-acggccaccttctggctgtgtcctcacatggtggatagagggggagctct
-cttgtgtctcttgttgggacactaatcctgttaaatcagggctttgccgt
-tacaatctcatttaacctaaatacatgtttgaaggccccttctccaaata
-cagtcaaactggggattaggctttaacatgtgaactttgggcagtaacaa
-catttcgtccataacaCCCACCAGGAATATCAAACATCCTGAAGCTCTGT
-GATAGAGCACATGAACATATGAACTTGGGGGAGTGATGTTGTTACTCCCC
-TAAGTTCACACGTGAAAGCCTTTGAACAGAAAGGCAGGAGGATACTGTAC
-AAGTTCAGAGACAGAGAGAGGATGGTAGGTGGTCAGTAGCAAGTGATGAA
-TTCATGAAAATGAGAATCTGCCTCTAGGAGGAGAGTTTAAAAGGAATACC
-AAATTCATGAAAATGAGACTCTATCTCCAGGAGAGGAGTTTCAAAGTAAT
-ACCAAGTGGCCAAAGAGCCTCAGCAGAGATATGAACGTGACCGTGTGCCA
-GAAGAAGGAAGGGCCCAGCTGGCCAGATGTTACGTCCAATCCATGCCAAG
-TTGTGAGCTGCAGAGAATGGCTCCAGCATCAGGGCTGTACTGGCTGGATG
-GGAATGGCCTGGAAGAAAAATATTTCATTTTCATCCACTGTGAGTTTTTT
-CTTGGAGAGCCTTCTAATGGCAGCAAGCTCTGGTGGCACAAAGCTATTCC
-CCGCTGACATTGGCAGTTGAGTCACATCCCAGATGAGCTGACAAAAGGTT
-TCCTTCCCATTTCTGGGCAGCCACCAATGCTTGGGGTTTGTTATAATTTT
-ATGGGTAATAGATCATATCACACATGAGAAGAATTCATAATATGGAGATT
-AAGAAAAACAATTTATTAATGTTAATAAATCCTCCAATAAAACTTCCAGG
-AGGACCTATAGTGATAAATTGAATAATTATGAGTATAATTATGACTAACT
-AGAAGTATAATTTCATGCTAATGCAATAATAATGACACAAAAGTGTAGAT
-CATGAATTTTAACTGCTTAGTTATTTCACATTTCCACAAGTATGGACAAA
-AAAAAAAACCCTCTCTGAAATCTGATCAAATTATGGTTGACTGAGAAAGA
-GAAAGTGTTCTTGGTTTAAACAGACATCGTTTTGATTATCTTTACTGAAC
-TGCAAAAAGTCTTATGTTAATTAGGAACTTGAAGATACTAAATTCAAGAA
-ATAGATACTCAGGAGTGCAACGTTTTTCTGAGTCAAAAAACCCCCATGAA
-CTCATCGTTTTATCACCTTTGAGCACCATGTGAAAGAGAGGATGGAAGAT
-AATTTGCATTTAAGTTTGCGTTTTATGTTGATAAATGTTTCAAGAAGGGA
-TAAACTAGTGCAGACAGATGTGATTGCCTCAACTCAACAAAGCATTTTAT
-GCATTGAGATGAGCCCGAATTAACTGCCTCTGAAAAGGAGTTTGCTGGGG
-AATAGGAAAGATGGTTCCTGGAGGCGTTTCCTTCACTCTGGACTCAGTTC
-CCAGGTGACAAGGCTTCAGACTCTGGAGGGTTTTCCTAGAGCATCTCATT
-CCACAGGATTCGTGTAGGCTGTGAGATTGTCCTTGGGCCATGAGAGAGCC
-CCACCAGGTGGGCATATTTCTCAAGTCAGAGTTACACAGGAAAAAGTGCA
-ACACCAGAGTTGACCAAAAGGGCTCCAGGAGGCCAGGTTGGGGGACAGCC
-CCCTCCTGTGCTCTCCGGCCACTTGGTGTTATTGTTGCGAATATCTTCCC
-GTGGATGCCCAAGGATCCAACTGAACTTTGTTGACGAACTCTTTTCCGCT
-CATGTCGAGCCTGGAAGAAGAGAGTTGCTCCTAATACAAGAGGATTTCAG
-TAGATGCTTTGGGATTATAGACTCCATTAACCTATTTTGAGAAATGGCCA
-CACAGTACTGTAACGGGGTTCCACTCCGCCAGGGCTCCACTCCTTCCGGC
-TGCCCCCGTTCCTGGATATGGGTGGGCGccgtctttctcagccgttctga
-ttgaggtgtagtggtatctcgtgtggtttaatctgcattgccctcgtggc
-caatgatgttgaacatcttttcatgcacttatttgctatccatgtgtgtt
-ttacggtgcatggtttatttaaatattttgcccattttttaatgggttgt
-tattttcttactgagctttgtgagagttccttttaaattctggatacaat
-ttcttcatcaaatttatgcttgaaaaatactttctttctatctacgactt
-gtcttttcactctattaataatcttttgaaccagaagtttttaattttaa
-tgaagttcaatttatgaattttttctttgatggattttactttttggtag
-cgtatctatgaattacttgcttaaaccaaggtcacaaaaattttttttcc
-tatgtaagcttccagaagtttgagaatttagattttctatttaggactat
-gacccattttgaattaaattttgcatatagtgagtgatatggatcgaagt
-tcatttttttttgcatatgtatatccaaatgttccagcaccatatgttga
-aagactatcttttttttttctgaattgcttttgcaactttgtcaaaatca
-gctgttcatacaagtatggatctatttctggaccttctattccatcccat
-tcatgtatttgtccgtttccaaaccaaatcaccctgtctcgattgctgta
-tcttatcagtcatgaagcaggtagtgtaagtcttccaactttgttctttt
-gttcaaagctgtatgagttattctaggtcctttgtatttttatataaatt
-ttagaatcagcttgtcagttgcaacaaaaatgcacgtgattttcattgag
-attgtcttgaatctatagatcaatttaggaaatttgacatcctcagttgt
-gagttgtctgatccacaaactcattctcttccttccgttcttctatttct
-ccgagcaacactttatagttttcagtgtattggtcttatacatctgctgt
-caatttttcccatgatacttcattatttgatactattgtaaacagtattt
-tttcatattttctggatttttgttgcaattacataaaaatataattgatc
-tttgtatattaatcttgtgtcggcaataatgctaaacttgctattacttc
-cagcgagttttatgtaggttttaatggatttttaaaatagactatcatgt
-cctctgaataatgatggtgttacttctttttttcaaatctagatagatcc
-tgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtactcttg
-ccttattgtagtggttgggaccaccaggtcaatgttgatgataaatgatg
-agagcagcattcttgtctcgtttttaggagaaaatcattcagtctttccc
-cccactgagtttgatgtgaattttaaggttgtcatagataccctttatta
-gtctgaggaagttccaatctatttctggtttgttttttatcatggagata
-ggtttaattttgtcaatggcttttttgtgcgtcaattgagatgattgtac
-actttgaatcttctagattgctaatatggtcaattatattaattgatttt
-cagatgttaaacaaaccttgtgctcctgggataaatcctagttggcaata
-ctattacttcatttgttacactttgttgaattctatttattgaagtttta
-tttagaatttttgcctctatattgataagaggaataggctagctgttgtt
-ttttcttgaatgtctctcttttgtttttgtttttctatcacagtaatgct
-ggccttaaagaatgagaagagaagtatccccctccctccagctcagagat
-agagtgtgtggacttggtgctctcacctccataaatgtttggtggaattc
-accagtgaagcatctagacctggagttttctttatgggagattaatcatt
-tttaaaaatcttctcaaaaaaataaattttggctttgttgatttttttct
-attgtttgtttcaccttttattgccttctgctcctagtttatgatttgtt
-ttctcctgctttctttaggtttaattctgtcttcttcttatagatcccta
-gtggtcattgattaaggtttttcttcttttctaatagagacattcattgc
-tgtaagtttccccttcaagactgctttggcagcatgatgcaaattttgat
-ccgcagtgctttaattttgtttcagttcaaaatgtattttaaatttcctt
-tttgattttttctttgacctataagttattttgaaatgtgttacttggtt
-tccaaatatttcagaatttttcaaggttctttctcatattggtttctact
-ataattctactgcatccagaaacagcctttgtttgacttaaatcttttaa
-atttattaaattttttaaaaaattgtgatgggtgcatagcaggcacatat
-gtttatgggttgaatgtgatattttgatacaggcatataatgtgtaataa
-tcacatcaggataaataggacatccatcccctcaagacttttaaatttat
-tgtgactttttcatgacccataacacggtgtatgtcttggtaagtgtttc
-ctgtgcactggaaagtaatgtaagttttgctgttgtcaggtggagtgttt
-tataaacatcaatgatatcaagtttagatttccatatcattacttctttt
-ctgtctacttactctatcaattattgagagagcagttttgaaatctcagg
-ctataaacgtagattttctttaacttatctttatcgtatcagtttttgcc
-ttatatactttgaagctttcttattagagatacagaagtttagatggtta
-tgagatcttggtgaatgtacccatttaccattataaaatgtacggtaata
-ctctttgctctaaggtgtactttctatgatattaacatagtcactaattt
-aacattagtgctagcatagaatatatgtatttaatacttttatttaaatc
-tatgtgtctttttatttaacatgtgtttattgtagacagcatatatttga
-gtcttgctttcttgactaatctgacatctcttcatcttaattggggcatt
-taaataatttatagttaatgtgaatattgctattctttatatccaccatc
-ttgcaaatttgtcttatgtgttttttgttccctttttactctttttctga
-cttgtttttgattaattatttttgtaattccatattttctcctttgttgg
-tttacttaagtcattattgttgtagttcccatggctgtttcaggtgtcag
-agtaaatatctttaactcctcacagtgtgccttccaatgagactacacca
-actcccaaagggtagaagagatccgcagtatatctccacttattccttgt
-gctaaggttataaaatatacctttatttattctataaacAGACAAAAGGT
-AATGTGATGAGCATCTCTATGCCAATAAACAAATTGAAATTAACACCTTC
-ATTGAAATGGACAAATTATCACTTTCTGTTTCTCCTTAGACAATCTTGGT
-TGGATTGAAAAGTCAGGAGAGTCCTATATTTGTTGAATTTCATGTCATAC
-CCATCAAGAGTATTCTCCATGTGCCTTACAAAGAACTTGGCACACGTCCT
-CTGACCGGACACAGGCATGAGGGAGCCAAGTGCCTATGGCAGGAGGACAG
-CAGGGCCTGACTCAGATACAGCCTCACTCCTGGTCTTTGTCAGGGCAGGA
-CTGTGGGTGTGGTCCCCACGGAGCAGACAGACATGGGGAGGAGGAGGAGC
-GGCTGTGAGGTCATCCTGAGGACCACCTGGAAAGATGCTCTGCTCAGGGT
-CCTGGAACCGCAGAGGATTCTCTCAGCCTGCCCATGTGGGAGGAACCACA
-AAAACGTCCATGAGAAGAGAGCAAGATACATACATCTGTAAGGCTGGAAG
-AATGAGAGCAGTTTCTAGGCATCCTGACCATGTAAGACCCTCTTGCCTAC
-ACCTCCCCCCATTCCAACATTGGTGGGTCAGACACTGGCTGGCAAACTGG
-AGATAGAGACTGGGGGAGAAAAGTATAAGACAAGTAAACAGGGACTATCC
-AATCACACCCATCTTTCTCTCTGTAGACCTCTAGCCTAAAGGAGTGTGAG
-CTGAGGGAAGGAGGAAAATGTGACATAAAATCAGGTTTGGGGAATGAACA
-TTCCATTTTCTGACCAAAGACTGTATTTGCAGCTGAAAGTGACCAAATCA
-CTTTCCGTTATCCAAGAGTCAGGAAAACCCTCTGGACCCACCGGGGTTTC
-ATCTATGGCTAGGGAAAGAATCAGCCTGCTGCAGATTTATGAGGAGGCAG
-TGAGAAAAATCAATCCCTGCAATACCCAGTATCCAACCATATCATGGGTC
-AGCCTTCTTCACCCTACCATAAACACGCCTTGAATTCACAGAAAACAAGG
-GGCAAGTGCTCTGCATCTTGGTACACTTCAAATCACTCTACTTTTTCATC
-CTTTATATGTTTTCCTATTCTCTACTCCATACCATTTTTGCAGTTTCTAG
-ATCATGCATATCACCCAAGTATCCAGAGCTCTTCAATGTAGGTTGCTCAA
-AAACAAGAGAGAAAAAGAAAGTCATACATCTCATAGTGCTTGTTAACATA
-AAGACATGATACATGCAGTGTAATGTTAAGGCATAATCAAGTGTCAAAAC
-AGGTATTATCATGCAAATGCATGATTTCTATCCAATGAGTCAGTCACAAT
-GAGACTTCAAGATGAGTGAATTGAGCAGACTATAGCAACAGCTACCTGCC
-ACAAAGGCCAGTTTTTGCCACACTGCATTGAGGGATGAAGGCAGCTGACT
-GCCCGATGTGCCATTAGCAATGGACTGAAACCAAAGTGTTGATGAGTAAG
-GAGAGTAGGGGCAGGATGGAGTCCAGAGATTGGCCTCTCTACTTGCCTGC
-ATTTTTGAGATAGTCCATAATAAAGAATGTAGAAAGGGAGCGAGGGAAAG
-ACAGAGCATGCACGCCCAGAAGACACTGAGTTCTCTGCAGGCTTTTGCCA
-CAGCTGTGCCTCTGCAGCCCACACTCGGACCCACTCGGGGTCACATGGAG
-GGCAGCAAGACACATGAGCATCTGGCCATGTTTCCAATGAGCAGGACAAA
-GTCTAATTCTGCTGGGATGTGTTAAAATGTAAACATGCCTTTTTCCCTAG
-CATCTCCTTCACTAAACACCTGCCAGGAACAGTTATCAACTCATCCCTGT
-CTCCTCAGTGATCAGTTAGGAATAAGCAAGACTAGACCAGGAAGACCTCC
-AGGCCCTGTGACACGAGGCTCCCACTCCAGAGTGGGCATTGCTACTCATG
-GATCCACAATCAGGGAGGAAATAGTTGCATATTCCTCCATGGCAGTGGCC
-ctggagaggagctaagaatcactggtttacgatcttatcccagggatgag
-ttaactgggacccaaagagatgaagtgaccattccaaggtcagacagtag
-attagctgaagaagaggaattTATTCAACTGGAAAGTAACCATTCTTCtt
-cctcttcttcttttttcttatttttttaagatggagtatcactctgtcac
-ccaggctggagtgcagtggtgtgatctcagctcactgcaacctccacttc
-ccaggttcaaggcattctcctgcctcagcctcctgagtagctgggattac
-aggcacacacaccaccacacaccaccatgcctggctaatttttttttttt
-ttttttagtagagatgaagtttcaccatgtttgtcaggctggtctcaaac
-tcctgacctcaggtgatccactgtctcagcttcccaaagtgttgggatta
-caggcatgagccaccacgcccagcAGAATGTAACCATTCCTATGCAGCTC
-CTCTTCCCAGGCACTGAACCTGAGAAGAACAGCCACAGCTTCCAGTGATC
-TTGGCCCTCGGCACAGATGAGGGAGCAGGAAACTGCAGGAAAGTGCAGTG
-GGACCCCTCCCTCACACCaaagactaacatcagaaatgtgctggtaaatc
-gtgaagccactggaatgtccgtacactgctggtggggcgtaaaTGCAAAT
-GGTGAGGGGTCTCTGGCGGCACCCATTCCAACTGCCCTTGTGCTCCCAGT
-GGCCAGCACTCCCACCAAGGCAGTGTGAACATTCACCAATGACATGCAGG
-GGAAGGGTGTCCCAGATGCTCTTTCTGGTGTGAGAGCCAGAAACTAGAAA
-TGACCAgtgatgattaatgttacgtttcacttgtcctggccagggggtgc
-ccagatagctgattagaccttatttctgtgtgtgtctgtgaggctgtttc
-ctggcatggttagcgtgtgaatgggtgtgctgtgtaaagcaatggccctc
-cccagtgtgcgtgggcctcacccaacaccgccagagctcaaataggacaa
-aaagatgaggtgatggagaattcactctttctacctgactccatgagctg
-ggacatccatctgccccaatctcagactgagactcacaatgtctgctttt
-ctgggtctccagcttgcagacagcagactacaggacttctcagcctctac
-aatcacatggaccaattccttagaataaatctctctgtgtatataTGGAG
-GATacacacacacacacacacacacacacacacacaTAAAGGACCTCCTG
-CTACTGTGCATCCACACAGGGTTCTCACAGTCACAAAGATGAGCAAAGCT
-CCCTGGACAGCCACAGACTGAAGGCACTAAATGACCATTCGAAGGACATC
-TGAGAACAAACAGAAGTAACCCTTCGTGACTCAGGTCAGAGTTCTGGTAA
-CGTTGGGGGTCACTGTTGGGGGCAGGAGGCAGTGAGGGCAGGGCTGGAAC
-TGTCCCATCAGATCTGCCTGCTGGTCACTCTGGCAGAAGCACATCTGAAT
-CGCTGTCCCCCAGAGTCCTGCCCTTAGAGTAGCAAGACTTGCATACATGA
-CCCTGCCTAGCTGTGCCTTTACCATGAAAAGGTAAAAGCCAATTAGCAAA
-CAGTGGGGAAAAAAAAAAGCCAAAAACACACAGTACGGTGCCCCCTTGGC
-TGGGGGTGTGACATGCGTAAGAGGAGGTGGCCACAACCTGGGGAGGGACG
-AGGATGGGCCTGCGATCTTCCAGGCCCACGGAGCACCGCTCACACCGCCA
-CAGCACAAAACAGTCCACAGAGAAGAAATCACTAACGTTCAACCTACACT
-TGTGGACTTAAGTGGCCTCTCTGTAACACATGATTATAGGATTTAAAGGA
-AGAAAACGGCGGCACACACAGCTTTGCTTTGCTCTAATAGTACTTTGCCC
-AGCGATGGCTCAACTCAACTCATACTTTTCCTCCGTACTTGATGGGAATG
-TCTCCGTCCTCTTTTCAAACCACAGTGGCAGGCGTGCCCTGCGTCCCGCT
-CCATCCCCTTGGGCCCTTCCTGCTCTGCCAGCTGGAGGGACCGCTCTATG
-GGGTGCTCCTATCACAGCCCCTCTTATACCCAGCCAGGCTCAGCCTCGGG
-GGGGCAGTAGGGAAGTGAGTGTGGGAAGAGAGAGCCCCGGGGGCCCCTCC
-CTGCCCTGGGCTGACCACTGTGCTGTTCTCCGGCAGCAGACCCCCAGCGA
-AGCCCCTCCAGGTCTAGTGGACACCACTGGGAGCCTCCACCTCCCTTGTC
-AGATGCCCCCACCCTGTGGGCCCCCAGCAAGCAGGCCCTTTGTGGAGCCC
-CAAAACCATAGTCTCCTGTAGGCTGCCCCGCCACCCGCTCCTGCCTGAGC
-CTCCCCTTGAAACTGTTGGCAGGTGGATTTTGGACCTCAGGGTTCTTCTG
-TGGGGACTTTTCTTTCTTTTTTTCCCCATCTTTCTTAATAAGCCCTGCAG
-TCCACTCGTATCAACAGCCGCATCTCCATAGTCCTGTGAGAAATCTCTTT
-GCCTGCACCCCCGGGAGGATTCACGGATGATTCCCATTAACACAGCCTGT
-GAGTGGGATTCGCCACAGTCACAGAGAGAAGCTCAGGGCCGCCTGCTGAA
-GAGGAGTGGGTAAAACTCAGCCCGATTTGCCGGCGCCTCCTCAATCCCAC
-AAAGGATGTGTTCTCAAGGCACCTGGAGGAAGCCATTGGCATGAGTAGGA
-CGTGGACCCTGCTCTCAGGCTCGGCGGTGCCCACCACCCATGGCCACTGC
-TGTCACCTAGGGGACCTCCTTCTGAGGACCTTTAATCAGAAAAGAAGATG
-GGGAGATTGAAGACGCTGACCCCTTCCTGTTCCGCACGCAGGGGCCTCCC
-AGGCTATGGGCAGATTAACCATCTCACACACCTCTGACGTCATCATAGAA
-CCATCCCCATGAGGCAGAGGAGGATCTGAGATATGGGGCTGTGTAGTCTC
-AGCCTAGTAATGGTGATGGCAGTGGGGTGGAGACCAGGATGCAGAGGCTG
-TACCCTTGAGCTGCACGGCCAACGCAGACAGGCACACAAAGACATGAGCA
-GGCACGagggagagaatggtcactgcgtggaaacaatatgttagctgtgc
-agaaaattcaagagaaaatttgaagaattactagaaatgatcagagaatt
-cagcaattggactgaatcaacataggtaatcaaagctccctgtaaggaaa
-gcaaaaaacacgttagaacatgtaatgtagtgattttcattgatggtagt
-cacaggaaggttaagtgtagatcaataagttgaataagaagttactaaga
-gttatataaagaagaggataaaTGggccaggcatggtgactcacgcctgt
-aatcccagcactgtgggaggccgaggtgggcggatcatctgaggtcagga
-gttcaagatcagcctggccaatatggtaaaaccccatctctactaaaaaa
-tacaaaattatccaggtgtggtggcacacgcctgtactcccagctactcg
-ggaggctgaggcaggagaatcgcttgaactcgggaggcagaggttgtggt
-gagccgagatcctgccactgcactctaacctgggcaacaagagcaaaact
-ccatctcaaaaaaaaaaaaaaaagaagaagaagaagaGGATAAACGTCAC
-AGAAGGGGAAGTCAAGGAAAGGAGTGGGGGGCATAAATGGCTTCCGGAGA
-TAAGGAGTGTTGGTGCTGGAACCCTCCCACCAGATGCCAGCACAGCTGGG
-CCACTGATTCTGTGTCTCCTGAGTTCCCAGGACCTAGGATGGTAGTGACA
-GCTGAGAAGTCTACCTTCAGCAAAGCAGGGCAGGAGCTGCCCCTTGACCC
-AGTTCTCAAAAGGAATTTTCCTGGAACTCGACATGTTCATTTGAAACTTA
-CCTAGAAGGAAAAAGAAAGTCTCACCATGAAAGTATTATAACAAGGAGAA
-TTTTACCCTaaaagattaaaactaatgaaataaaactattacaacaaaat
-aaaataatacaattattttcatttatattattatattaataatatattat
-ctaaaatatattatattaataatatattatctaaaatatattatattaat
-aatatattatcataaatacattattaataatatattgtcataaaatatat
-tatattttaatactatagtattaaatatagtattacatatgctatattaa
-aatacattaaatatagtattaaatatattattgtacatattataaaatat
-aatatatattataatatattTATCTGTTTAACAAAAATAACAACAAAAGT
-GCAGAGGTCACTGTTTTAGACAACATGATGCTGTCACAGGCAAGACGCTG
-CAGACCCACCGGCTAGACCAGGGTTCCCATCCGTGTGTGCCTGGCCTGCG
-AGCCTGCATCCCGCCTGCCATGGGCGTAACTGCCTGGGGGCAGCCCCAGG
-ACCGGTCCgtggaagccctaaccccctatgtcactgtgtctggagacatg
-gcctacagcgaagtgactcaggttaaatgaggtcctgaggtaagcctgaa
-tcccctaagcctggcattctgataagaagcagaagagaccccagaactgt
-ctctccctgcatgtggggatggtggccgtctgtgaaccaggaagcgggcc
-ctggccaggaatggaactggctggcaccttgatcatggattcccaggctc
-cagaacggtgagaaatcaatgtctggtgtttcagccgcccagcctgtgct
-attttgtgatagcagcctggccgcactgatataCCAGTGCTGTTCAAGGT
-ACGGTGTTCCAGCAATTTGTTATCTATTTTGGGGGAAAAGAGTCCATTAA
-AAGTAATGCCCTAAAACCCCTCCAAAAATGTTCAATAGGTTTTAATTAAA
-AATGCAGAAATTTCTGTGTTGTGCTTTCCTTTGTTCACAAAATTCAAAAA
-GATGTTGATGGGGGTATCTGAAGAAAGGCGGTGGTCTCAGAAGTGCCTGC
-CCCGGGCTGGCTCAGGCCGGGACTCTGGGTCAGGTGCAGCCTCATGGAAA
-GACCTCTACAGGAGGGCCCTGCCTGCTTCCCACCCGGCCACAGCCCCCAG
-TGGGAGGGTCTCCCTCCCCGGCCGGGGTGCCCATAACACATAACACGTAA
-CACGTCTGCTGCTTTTAGCTCTCAACAGGGCTGGTTGTTTCATTTCCTGA
-GTCCTCACAGGTATTCTGCCAGATCCTATTTTAAACTGAAAGTCCTCGTT
-GAATTCACACTCAATCCCAACATTCTGCTTCCTCCTCGAAGGTGTCAGAC
-ACATTGGCTCCGCTTCTGCACACCACAAACATATTTCCATAACTGACTGC
-TTTGCGCGTGAAGCCGTGCCATCCTTTCTGAGTAAGGATTCACATGTTTT
-CAAGGATTTCTGACAGGTTTCGAGAAAAGAGCCGTCGTCTCCTTTTCCGT
-TAGCCATCTCAGCGTTGCGCGCTGTTCCGAAGCACCACCTTCCTGGCACA
-GGTCACTCGTGGCTTCCAGATGGCACAGTTAAGGAAGAGGAGGCAGCAGG
-GAGCACATAAATCCTGACACTCACTAATAGACTTTATTAATAGTTCACGC
-ATGGTGATCGGCCGGCCCCAAACACGCTCCCCGTAGTTACGGATGACCCG
-CTTCTATATTCTGGCACTGCTGGAAAAGACTTCATCGGACTCATTTTAAT
-TATTTTCCAGAAGTGATCCATTTTCCATGAAAATGCATGTAGGGTTTATC
-TCATTCCTGGAAGTCATTACTTTGTCATGAAAAATTCCAAGTATCCTGGA
-GCAGGATTAGCCTCGACTTTAATCATAGAGCAGAGGGTAATTTTACCTAC
-ATTCTTGGACACAGTCATTTGAGCGATTGGCCTATGAAGAGCTATTGTCT
-AATTCTCCCTAAGGATGAGATCTCAGAGTCGGGGGTCTGCTTTGAGAAAT
-TTGGGGCACAGCTGGCTGCTCTCTGAAAGACTTAAGACTCCAGAGAGTGC
-TGAGGAACTGGCTGCGTGTCAGGCTTCCAGGCAATGATGCTTTGAGAGAA
-TCCTCCCAGGcagttgagctgcatgatgcccagacacaaggagagactca
-ggagttcgagcaccaggcttcgagtcctgattctgcagcttgttctgtgC
-ATGAGGTGATCTTTATttcaggtgatatttttccagcatatgtcaggtgc
-taggcaccatgctgtgtgacgcagatacaacaaagaccaagacaggcatg
-gtttctgttctcttgCTCGGTACCAACATCCTATGAATATTTTACATGTC
-ACTAAAAAATCTGTAATTTTTTTCTATTTTCCTAAATAGATCCTACCAGT
-TAATCATGCACAATTCCACATCTCTCTATAATGCAATTTAAGTATCCATA
-ATTACCAAGAGGGCCTCAGATTTTCTATTGCATGTTAACGCTCTTGAAGA
-CCCTGGAAGCAGAGGGCTCGTCCTAACAAGGGCACTTCTCCCAAGTCATC
-TCGTGGGATGCAAAAAAGAATCATTGTGAAAAGAGTTTTTCACTTCTTAA
-CAACTCACTCTATAAAGACAATGTCAGGCTTAATCAGAGCTGGAGATGCG
-GGGTGTTAAACGGAATGAATAGGAAACCTCCCTGAATCCCCAAGTGCCAC
-TCTGAGAACAACAATGCTGGTTCCAGGAAAAAGAAAATGGCAAGAAAAGC
-CCAGGCACAAAGTGACATTTACAAGAATTGATGACAGACCTCGGAGACAC
-CCAATTTCAATTACCCAGCACTGGTTACACACATGGGGCCCGAGAAGCCT
-CCAGGCCCAGCCTCCCCACCTGACTCGCTGCTTGCCAGCAACCCCTGCTG
-TGACTTTGCGGGGGACAGATGGGAGCTACTTGGAAGCCGATGGTCTCACC
-ACCAGCACATCAGACTCGGGGGGCAGCATAACAGAGGGCACTGAGGGCTG
-GAGTcatccacctatccacccatccatccatccattcacccatgcatcca
-cccatccatccattcacccattcatccacccatccatctatccattcatc
-catctatctatccattcatttatccatccatccatccattcatccaaaca
-tccatccatccatccattcatccattcatccaaacatccatccatccatc
-tattaacccgtccatccatccatccattcatccatccatccgtccattca
-ccaatccatccatcatccatccattcatccatccatctatccatttatcc
-atccatccatccatcatccattcatccatccatccatctatccatccatc
-cattcactcactcactccatactcatggtgccaacacatctccagctttc
-ttctatgggcagaggttgcaggaaacaaaccaaacaaaaccaatgttcac
-cttcgttggaccagcagtctttgctggggaggggataataaaccaaactg
-catggaccatgtcagatggtaacgaggacactgaagggaggcagggtggc
-tgctgagagcagcagtgcacagcgatgggtgggtggagctgttcacacct
-ggcagccaggaggaccctttggaggcggtgccagtgcacagagataggaa
-ggtggAGCCCGTTCACGCCTGACGGCCAGGAGGACTCCTCAGAGGTGGTG
-GCAGTGCACACAGATAGGAAGGTGGAGCCCATTCACACCTGGTGGCCGGG
-AGGACCCCTCAAAGGTGGCGGCAGTGCACAGAGATAGGAGGGTGGAGACT
-GTTCACACCTGACAGCCAGGAGGAACCCTCAGAGGTGGCAGCAGTGCACA
-GAGATGGGAGGGTGGAGACTGTTCACACTTGGTGGCCAGGAGGGCCCTTG
-GTTGTGTCACAGTGCAGCAGAGGCCACAGTGAAATAGAAGCAGACTCCAT
-GATGTACAGAGATGGCAGAGGGGACATCAGGAGGGCCTCAGAGAGGGAAC
-CCCCTCGAGGGCAGAGGACGCAGGAGTGCCTGCTATGGGTAAACAGCCCC
-CAAAGCTGCTCCAGTGAGCATAGGTGTTAGGGGCATGGTGATGGGCGTGG
-AAGCCCAGCTAGGAGGCGGGTGACTGGGCTTGAGTACAGgtggagctgat
-aagaagggttcagagtctgggtgtttcaagggtggacccccccaggtttc
-ccaacccactgaatgtgagccctgagaaagaggggccacaaggaccccag
-ttttgtgcctTTGCCGGGGATGGTCAGGAGCCCTTTAGACGTCCAGGAGT
-CACACCAGAAGCACGTGAGGCCTGGAAGCCACCATGCAGGAAGAAATGTC
-ATTTAGGAAGGGGGAGCAGGGCAGGTGCGGGAGGACGGCTTTACTTAGAG
-AAGACAAAAGAGCCGAGGACTGGACAAATTCCTCAAAAGAGGCCTGCTGG
-GCATCGTGGTAGAGAACCAGCAGACATGGGCCCAGAGTCAGGGGAGTTGG
-GGCTCAGGAGACAACCTGAGGGACCTCCGGTAGGGTACCCCCACGGGCTT
-CAGCTTCCCCTTTTGTGAAGCTGGGCTGAGGAGCCTCCCTTGCCAAGAGG
-TTCTGCTTATCCCAGCCTGGACTGACAGGATGGGAAAGTCAAGGAGACAG
-ACGCGAACCTCGCAGGCGCACGAGGCCCAGGGGAAGCGCCGGGAACCCTC
-TCGGTTTGTGCAGGAGCCACCCTGTGACTTTGCCAGGACTACCTGTCGGG
-CGCCAGGCAGCTGAGCCAGACGAACCGCCGGGCCACACTCACACCGACCT
-CAGCTTGTTTCAGGAACAAGCTTAGGCATGCAAGTAGGAATTAGCTTGTG
-CTAAACAGCAGGACAATGCAGTTATTCTCATGATTGTAATTTAAATTTGA
-ATTCTACACTTTTTAATCCCCGTTATTTACTAGAGAATGAGGACGTCTAC
-TCTGCGTGGACTTCTGACACCGCTCTCTCTGGCCGTCTGTTCTCCTGTGT
-GCTCCGGTACAGGCTGGAGGAAGCGCCACATAAGTGTAACCATCATTAGT
-ATTTCGGCCTCCACCATCTCCTCTCTGCCTCACATGGTGGCCTTGGCCCT
-GAGGACACAGAACAGCTCAAGTAAGGGACTATGAACCCCCGACAGCGGCC
-CTGGGGACATCGCTTTCATTCACTTCTTCCCTCCCCCTGGGTACCGCAGG
-GGCCCTGGCCTCTGGATGAGAGCTGCTCCTGCAGGGGACCCCAAAGCCCT
-GTGATGGAACAATCTGGAAACCTTGCTCCTCACACTGGGCCATCTCTGGA
-GGCAATTTCCCGGCTTCCTCCTGTGAGGTCCAGGTCGAGGGATCAGGCTG
-CCTACGATGCTGCCACTGAGGGCCGTTGCTTCCTACGTGATGGACTTCTC
-ACCTCTTCCTTCTCTTGTTGAGCCTTAACAATGAGAGTAAGAAAAAGTAg
-gctgggtgcagtggctcatgcctgtaatcccagcactttgggaggccaag
-gtgggtggatcacgaggtcaggagatcaagaccaacctggctaacatggt
-gaaaccccatctctactaaaaatacaaaaaaatagctggacatggtggcg
-tgcacctgtaatcccagctactcaggaggctgaggcaggagaatcgcttg
-aacctgggaggcagaggttgcagtgaggtgaggctgcaccactgcactcc
-agcctcgtgatacagcgagactccatctcaaaaaaaaaaaaaaaaaggga
-aaaaGTAAGAGTATTCTTCAATCACTCTGCCAGAGTCTGCTCTGTGTCAC
-GGAGGAGGAGACTGAGGTCTGGATCAGGGGTGCCACTGACTCACAAGAAC
-AAAGCAATGTGGGGCCACAGCAGGAATAAGACCCAGTGATTCCAGATCCT
-GCCAGATTATTCCAGATCATTGTCATCAGCCTCTTCCATGGAAGAATTCT
-CTCTGGTCCACACGGCATTTCCCAACGCCATCTGGGAGGCCTCCAAGGCC
-TGGGATATGGCGGCTTGAGATGCTCCAAGAGGGATCGTCTCGGTCACTGC
-TCTGCAGCTGCTCATTGATTTGAGtacacgtcttagtttgaggtcattgt
-agagccctgtgtgggtataagaaatgacacagagggatcctgttcacgct
-gcgtccggtttcgcccaggggtggcatcttgtaggacaatagcacgatgt
-aacctccaggatgtcaacagtgatgcagtcaagaccctggatgcccatca
-tgcagggtcctctcctggtccccccagagccgcaccgccgccctcccacc
-ccgtcccctccaccacccctggcaacctctcatctctcctccatttccaa
-aatgtcatcattCTCATGTCTCTATCAAGGACCTGGGAAAAATGGGGGGA
-GTGTAAGTGAAGCTCAGGGCGTAACTGCCTGGAGGTACTGCCCTGCACAG
-ACATGTCTTCCAGGCAGGACCCCCAGGGCAACAGTCAAGGACGGGAAGGG
-AGGACACGTGAGCAGTTGATGTGAAACCTGGACGTCCTACGCACTGTGTT
-CACTCTGAGGAAGGCTCTGACATAGAAACAGAAGCCCTCAGAACTACCAG
-CAATTCACGAGGTTTACTGTCCATAGTCGTAGCTAATTTCCTCATTGATC
-TGGTGAAACGTATGCTTGGCCCTGGTTTTTTGTTTTTTTTCTTTTCTTTT
-CTTTTtgagatggagtctcactgttgtcagccagggctggagtgcaatgg
-cgcgatctcagctcactgcaacctctgcctcccgggttccagcaattctc
-ctgtctcagcctcctgagtagctgagattacaggtgcccaccactgtgcc
-tggctaatttttgtatttttagtagagatggagttttgccatgttggcca
-ggctgttcttgaactcctgacctcaggtgatccacccacctcggcctccc
-aaagtgctgggattacaggcgtgagccccagcacccggccTGTGTGGCCC
-TGGCTTTTCACtgagacactattttgtccagcatccctcctgctaagagt
-ttccatcgtgtcccgtggaaggcggtggctgggaagtggctgcctggcta
-ttggatctgcagggctgtggccttattttggattgtttcttcgtctttct
-ccctcaaccctccctcaccaaattctctcaaaatattctgctgagtgatg
-tagttcaaccacagagttcccttcctgttctaatttctggttttaaatta
-gatcgactgtttcaggtttcattttattaacagaatgaggtaaaagagtc
-accttgtttaagtctttaatttgtgggaaaatgtgttcacgtctacccca
-aaaatctcagatggttgctgcttttctatttgtgtaactgaatcatggct
-taattgattgttactggaaacgttttgggttatgacttttatgtgtcttt
-gtcctgcatttgggttttttatcgtgtgtgtgttgttttggctgttgaca
-ctctggtttattgtgggaagaggatcctaggaatcgttttctggctcagt
-ccagtctacgtttgctctccaggatctgaaggaggttctgaccattgcat
-gtacaagtccatacaagtcgggaaagcctgtgctgcgtgcaaccccccaa
-aatctgcactatgggcagctgctggccttgcctgggcttggagacattct
-tcactatagctgtccactcaggtccaggattcgagttccacgattgcctg
-cgtcctggctcacgggaggagtgggtcttaggggcacctggcatctgggg
-tcccaggtgagtcacggcaaaagggaagtgtccggcaatggggaagagga
-aggaggagtggagagaggcacggggacagtggggagctgggtgggggagg
-ggacatggagcccctgaggacccaggaggagggtcccagtgaagagtcca
-ccctgctgttgctgaagtttgtccaactgctgattagttttggccagata
-atttttttctagtgaatcaagattttaaatcagatttcctttggaggcct
-ccgaataccaatcaaaaatggctgtcccctgggcctGATCAACCCTATTC
-CCTTGGTAAAGTTAGGGCGTTTAGAAAGACAGGTGCAAGAATTAGGATTG
-TAAGGAAAGTGCCTCTGAGAAGAAGGGGTGTTTCCCATTGGAGGAGAGTG
-GGGAGGCCGAGAGCTTCCCGGTGGAGGAGAGGAGGGAGGCCCAGAGCTTC
-CCGGTGGAGGAGAGGAGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGCGG
-GGAGGCCCAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCC
-CGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGCGGG
-GAGGCCCAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCC
-GGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGGGGG
-AGGCCCAGAGCTTCCCGGTGGAGGAGAGGAGGGAGGCCCAGAGCTTCCCG
-GTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGAGGGA
-GGCCCAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGG
-TGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGGGGGAG
-GCCCAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGT
-GGAGGAGAGGGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGGGGGAGG
-CCCAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTG
-GAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGAGGGAGGC
-CCAGAGCTTCCCGGTGGAGGAGAGGGGGGAGGCCCAGAGCTTCCCGGTGG
-AGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGGGGGAGGCC
-CAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGA
-GGAGAGGGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCC
-AGAGCTTCCCGGTGGAGGAGAGGGGGGAGGCCCAGAGCTTCCCGGTGGAG
-GAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGGAGAGGGGGGAGGCCCA
-GAGCTTCCCGGTGGAGGAGAGCGGGGAGGCCCAGAGCTTCCCGGTGGAGG
-AGAGGGGGGAGGCCAAGCCCACCTAGTGAGGCCTCTGCTCCTCCTGTcct
-gatggtcgcaggctccaaatacagaccctcactctgtgaccccagcaggc
-ggaaaaccagaggagacgctctccctggatcacagccaagctctcaggac
-gcgaaattgagacagaaggagacgctcaaccactcccatctgtgacccca
-acgtggagagtccgcgtgcgcgcccgcggtgagcactgcagacgcgctgt
-gtgtgagaccaggacgagcaggtgtggagggcaggagcctgtgtatctca
-gcctctcctgcggcaaacagcactttcaggcagcacaacacaaaacgctt
-gccacagacgacaagcaccaggggaacagaaggaggggcctgaatcggca
-gaggacgccaaacaagcgggacccaagctcagaacccagcctcaaaccag
-gactgaacagcggagggccccaggcagcctgagtcctgacctggtgcgga
-ctcTGCCCCAGCTCAGACACCCGGGTGCAGGGGCCTTTGCGGGCTCAGGG
-CGAGCCAAGTGGCTGGGTCTGCCGGGAGGGGCAGCACAGTCGCTGTCCAG
-CAAGACCTCCCTGGGGACAGAGaaacgaagcccacccacaagagaacaag
-cagaggcgtttactcagtgcttcctacagcagggagtcctccatcgtccc
-tctgccccgctgaggcctaacgacaggcagcggaggggacgcttcaccat
-gggacagggacggctcccggctcccctgatcagaggtcaaggcctgggga
-agctggggcactccctagaagggggcatcctacgcgatcggccaggggcc
-acattgggggttctctggctggctctgagttgaaagtggagacagaggtt
-aaggaagctgGGGGTCTCTGGACCCGCGGGCAGGTAGCAGCAGAGGCTGT
-GGTCGCCCTCCCGGGCTGCGGTGTGCAGTGTGGTTTGTGCGTCAGCGTCC
-GGCCATCACGTGCGGGCATCGTCCGTTCCTGTCTCCTGTCCCTGTTCCCC
-GGACTTCACCCTCCACTTTCTCCCTCCTCCCTAGTAACGATTTAAAACGT
-TGCTGTAATTTCAAGCAGAAACTTTATTGCCCTCATTAGCTCTATTTATt
-atatattgttttgtaaattgttttccgtctttatgagtgtgcatactttc
-cattttatgggacatccttccgcaacatcatttttatagaggcacaatat
-tccattttatgaatatggggtttatgaatgagtcagatataatacttagg
-ttgtttctaatttccattattataaacaacactgcaatgaacattcgtat
-aactgtatctttgcataatccattagcggatctatcaatattccctcaga
-ataaagtttcttgagcataatataatgaaaactgctaatggtttgagact
-ttttaaggctttcattgcatattttcaaatctcctcctggaaaAAAAAAT
-TGGAAATCTCAGCCGCACTACATGACTCTGCCACTTTTCTAAGAGCCATA
-CTAGTATCGGGTTTAAAAGAAAGTGGAAGAAAAAGAGTGGGCATTGCTGT
-TTACTGCTCACCAGGACTGGCGAAATCCAGTCCCTCCCTGCTGTCTCTGA
-TCCCTTCCGTCCATAACGCAGCAGCGAAGGAGGACGAGCCCTTCTGAGGC
-TTCTCAGCCAAGCACAGTAAACCCACATGCTCCTTCCGTGCCCCAGGCCC
-TGTGTGCCGCCCACCCACCCCTGCCTGGCTCTCCTCTCTTCCCCCAGCAT
-CTTGTTCATTCTGTCCCAGCCTCATTGGCTGCTACTGGACAGCCCAAGCT
-CAGCCCTGGTTCTTTACACTGAGTCCTGGTGCCCTGGAGTCTCTCCCCAC
-CTCCCCTGCCCTCCTCCCTCCCTTCATCTGCCCAAATGTGAGGTCTGCAT
-GAGCACAGGTCTGGCAGAGAACTCTGCTCACTCGCCACCCAGTATTTTGG
-TTCACTTTTTCTTTCTTAGCATCTTCCACCAACAAATTATTGTTGGATTA
-GTTTATTTCCGCGTCTGTTGTCTGACTCTCTCCCAGCCTGCATGGAACGT
-CAGCTCCATGGAGCAGCGCAGTGTCCATCTGGCATCTGGAGCCATGCTGG
-GCTGGAGGAGGTACCAGGTCCAAGACTCGGAAGatgagtgaaggaatgaa
-tgaatgaatgaatgaatgaacgaaGGGGActtttgcccattgttctatta
-gagtgttttccctttcttttgattttaagggccctctacttcaataataa
-actttttctggctgtgtgtcagagtcttttcttgtctgttatttgtcatg
-ttattttggtaatTTTTATTTGTTATGCCAGAGTCAAGTTCACCAGAAAT
-ATTTGCTGTTTTCTGCCTTTGATTTAATTCCTAACACAAAGTGACCACAA
-CAGGTGCATGTCACTCATCATATCATTTTTTCTGATTCCTTTGTTTGTAA
-TGAAAATCACGATTCCTTCTCCCTAGGACTACAGAGTGAGGGTGCACTCG
-GCCTTCTGTGGTTTAATTTTATCTGATATTAATGTACCTGATGTGTCTCT
-GGGTCTCTCCTGTGCACTTGCTGGAGCAAAGCAGATTCTATCCACAAATA
-CCCCTGGGGCCCCATCTCATCTCCCTCCCGGGGAAGGTCCTCTGGCTTCT
-CCTGTCTTCAGCTCCCACTCCCTCTCCTGAGGCAGGTGCCTCCGCATGTC
-CAGGGCTGCTATCTGTGACCCCATCCTGTGTCTGCAGGTGGCAGCCCCCT
-CTTTTTTTTTAATTAATTTATtttttttagtattgttatactttaagttt
-tagggtacatgtgcacaatgtgcaggttagttacatatgtatacatgtgc
-catgctggtgcgctgcacccactaactcgtcatctagcattaggtatatc
-tcccagtgctatccctcccccctgccccaccccacaacagtccccagagt
-gtgatgttccccttcctgtgtccatgtgttctcattgttcaattcccacc
-tatgagtgagaataAGGCATCCTGTGTCTCCCCGGTGCCTGCATCATTCT
-GGAGACCCAAAGCCACAGCTCCCTGGCTGCCCCCCGTAGAGCTCTTTCCT
-CTTAATTTACAAATCAAACAGTCAACTTAAAACACAATAGCTGACCTGAA
-GCCAAAGAATCTGCCCACCCCAACGACAGGAGCTCTCAGAGCGATCCTGT
-CCCACCTCACCTCCCACCATCCCCCACCCCCGCTCCCCCCCAACATCAGG
-CTCAAACACTCTCGGGGCCACAGACATGGCTGATTTCTATTTTCCAGGCC
-CTGCTTGACTCTTTTCTCATGTCCGTGACAACTCTTCATCCCTTTCAAAG
-ATGTCCCAGCCGCTCTGCTCTGTTTAATTAAACATCTTGAAATTAAGTGT
-TAGCATTTTCAACACAAACTACGTGGTGGTTTCCATGCAAACTCCGCACC
-GCTTTCCCGGGGAAGCTTCCAGGGGGATCTCCCACAGACAGGTTGTCCAA
-GAGCTCCATTTAGCTTTGCACATGGCCAAGGGTGAATGCGTGCTGCAGGG
-TCACAGGGCCTGGCTGTGCTGGGTCAGTGAGTGCATGTGGCGGTGGGGGG
-ACGCAGGGGTGTGGGGGCTGGGCTCACAGCTGTGCTGGGGTCAGAGAGTG
-CACGGGGTGGGGCGCAGGAGTGCAGGGGTGTTGGGGCTGGGCTGGGCTCA
-CAGCTGTGCTGAGGTCCACGAGTGCACGGAGTGAGGTGCAGGGTGTCGGG
-GCTGGCCTCACAGCTGTGCTGGGGTTGGGAAGTGCACGGGGGTGGGTGGT
-GGGCGCAGGGCTGCCAGGGCTGGGCTCACAGCTGTGCTGGGGTCAGCAAG
-TGCATGGGGGGGGCGGGGGGGTGCACAGTGGGGGGTGCAGGAGTGCAGGA
-GTGTCGGGGCTGGGCTCACTGGAACACACGAGATGCTTGCTGGTGAACAA
-AAGCTGCAGAGTCACAGCCCCAATCAAGGCTTCATCCCCTAATTTCTCCT
-GGCCAAGCTTTCTGTGAACCCCGTGATGGAATCCCTTGCAGGAAGCTCCT
-CAAATGCTTTTGACAAGGCTTCTTAGGAAGGGCGGAAGGACAGCCTTGGC
-CCCGTCTACAAGACCGGTTCGTTTTCCATAAAAAGGAACTCAGAGATAAT
-GCTAAATATTTCCAAACAGGCAAATTTGGGGGCATTCTTCATCCATCTGT
-CCAACAAATTAATGAACAAATGACTCCCATTTGAAGCATTTTGTGTGTCT
-TCAAGTGAAATTACTAGAACACTCTAAGTCAGAAATGCTCACCAACAGCA
-TGCGTCACCCAGCTCCCGCCCAGGTTTAACCAAATATGGCAGCGTGAGCC
-TAGTCAATGGCAACAGATCTCAGTCAGTAACGAACTTGCTGGATGACAGA
-GAAGGTAAGAGGAATAGAAGTCACAACCAACTCCCTGCAACAGCACGGAC
-ACCCCAGCACCAGAGATGCCGGCGCCTGTCTGGGTGCTTGGAGCAGCAGC
-CGACACCATCCAAGGGcccaggacccaggacccaggacccagACAGCACG
-CTGTGGCTCTCGTTCTGCATGTGGTCACTAATTGTGATGATTTCTCACAT
-CTCACAAAGCGATGACCTACGTAAGGAACTCTTGAGCCTACATTAAATGA
-AGTCCTTCACAGACCAGCCAACAGCAGGCAAGATTTGGAGTCCAAGTTTG
-GGAGTCAGGCCAAGGCTCTCACCCTATGGGGCCTGGAAGACTTGCAGAGA
-CCCAACGATGGGGTGTGCAGGCACCTGGAAAGGGGGTTCAGTGTCCCGTC
-ATCAAGGGTTCCCACGCAGGGCGCAGGGTCCAGGTTCACCCCCAATCGGG
-TCCCCTTCCTGCAGAAGAAAGACCCTCACCTGGCTCTGCTGCCCCCAGGA
-GAGGCACTTCCTGTTCTGTGGATGTGAAGAAGTTGGCTTGGGCAAAGCCA
-CTGGCTTTTTGAACTGCCCCAAGTTTCAGCATCAGGACCATGAGCTTGAG
-GGAGGTGTGAGGTTGGTTGAGGTTCCACCCTGCAGAGCAGAGAGGCATGT
-TCATGTCCCATTCACAACTGCACCCTCAAAGGGAGCACAGACTCAGCAGG
-TGAGTCTCCAGGGACCCAGAGTCCTGAAAGCAAGAGTCAAGACTTGAAGG
-TTGCTTGTTGCTGCAGCAAAGCTGAGTGGTGTCAACATtaaccctaacct
-ccaaccccaaccctaaccagaacccctaatcctaacctctaaccccagcc
-ctaaccctaaccctaatcctaacctctaaccctaacttttaccctaaccc
-ctgatcctaacctgtaatcctagccctaaccctaacccctaatcctaacc
-ccaacacttaccctaacccctaatcctaacctctaaccccaacttgtacc
-ctaaccactaatcctaacctctaaccccagccctaaccctaacccctaat
-cctaacctctaaccccagccataaccctaatccaaaccccaaGGTCAAGT
-CTGTGGTGGAGCCAGCGTCCCCGGGGAGGGGACAAGCCAAGTACCTCCCA
-TGCCTTCAGCAGGGACAGAAGACTTCAGGAAAGTCCCCGGGCAAACAGGG
-GCCCCACAGGCACCTTTGTCACATGGCCAGCTGGGTGTCCTTGGAACTGG
-CCTCTTGTGTGCACCATGCAGGGCAGGTGTGCGGCTCATTCAGGCTTCTT
-CAGCGACTATAGACAGGTCTCAGACCCCCACTACTAGCTTTGAAAACCTG
-TAAGAAAAACGGTAGACCAAGACAGAAACTACCAGGCTAGATGCAATTTA
-GCTTTCCTTCTTGCTCTAAAATTCTGTCTTTACAAAGAAAAGTACCTACA
-TTCATGGTTTCCACTCTTAAGTTTCTTATTTTCTTCCAGCGCTTTCTGAG
-GTCTCAGGTGAATATATTCTAACAAATGCATTATTTGAGGAGATCACAGT
-GAAGTCCACCTATATAACGTTTATTTTAAATTCAATAAATGTTGGATCTT
-GGGTAAACTTTTTACTTGTGCACAGCTTCCACATTCTCGTCATGGTTCTG
-ACGAGGCCAACGTGTAATCCATCAGTCCAGTGTTACTACGATGGAGCTGG
-GGAAAACACTATCCCCAGGCCCGCTAGTTTTCTATGAGGAGTGTTCATTC
-TCACTCTCACAAACCTGCAGGGCGGCTGCAGTTCTGCTCCTCCAGCTCTG
-GGCTTTTCTGGGCAGCTCGGTTGCAAAGCTGAAAGCTGAACTGGAGTCTG
-GACTGTGAGGTGTGATGGGAAGTCCAGGCTGAAGGGCGGCAGCTGTCCAG
-GCCAGATCATGGCGCGTGTGTCCAGATCCAGGATCTACGGGGCTACGGCT
-CACACCACGCCCTCTAGCACTCGACTAGCAGATGCATGACCAGACCCAGA
-TTTCCCAAGAGGGAAAATGTATCCCATGCAGCAGAAGGAGGAGGGGCTCG
-ATACTTGCTGAGTGACAATTACATCTACTGTTTGGATCACGCATCTACAC
-ACCAAAGAATCAGGTCCAAAAACACCTGCCATGGAAGCTAATGTGAAGGA
-AGCCGTCGGCTGCTGGGAACCCACCCTACATCAAACCCCACCTGTGCCTA
-ATGGTACCTGACTCTCCATGGAGGTGAAGGCACCGACGTTTTAGAACTTG
-CCCAAATGTGTGGACGTCACCAGGAGTTAACCCACACCAAAGCTGTGATG
-CTTTGTCACAGACACAGGGTTATTAAAAATAAAATGTCTATGAAAATTGA
-AAAATCCATAAAAATATTAAACTTAAAAAATTTTGGGTTAGAAGTAAAAT
-ATACATATGTGATTTACCATCTAAAAATGTGAAACTTTTATCATTGTCAG
-TGATAATCAAATACTTCCATTTTCCACCATGCATAGTAATTTTGAGATCG
-TTATTAAAAATTGTTTAAGTTTggccaggcgcagtggctcacacctgtaa
-tcccagcactttgggaagccaaggcgggctgatcacctaaggtcaggagt
-tcgagaccagcctggccaacatggcgaaacccccatgtctactaaaaata
-caaaaattagccaggcgtggtggcacatgcctataatcctagctactcag
-gaggctgagacagaagaatcacttgaacccaggaggcaggggttgcagtg
-agccaagatcatgccactgcactccagcctgggcaatagagggagactcc
-gtctcaaaaaaataataataaaaataaaaaCTGTTTAAGTTCTATTGGTA
-GTGTCACTATGATGTTTTAAATTTATAAATTTCATTGCAAATTATAGGGT
-AAATGAACTCTAAACAGGATTACAGTTTACATTACCGGAAAAAAATCAGC
-TCAAAATCCGTCATCATGCATGAAAATGTTCAGGCAAAAATAAAAAGTGT
-GCAAATGTCTCCTTGATATTCAGCAAATGCCATGGCCGACATTAAACTTT
-CAGGCCCTCGTTACTGTGTCATTGGAAATGCCTCTGCAGTTCTAAAGTGG
-ctgatacagtaattaaaccgaagactacattgccttatacgctgacggct
-tggttttattgtcactaactaggatcgtctcagaaatcagctgatctgct
-gtctaatggctgtcagaaatgaaggtctgagttcaattattctaaaacaa
-acacagacacttttggtgtgaatccttcaatatttaattggactatatct
-ggcaaccctacacagaaggtcaactcaattagccaccagggACACCTGTC
-CCCGCTGCTCACCACAGAGCCACGCAGCCACGTCTGCCTGGTCTCCTCTT
-ACCTTCGTGCACTTAAACTTACATTTTTCCTCTCAGTCGACCCATTTCTT
-GTCTTACTTTTATTTTGAAGACAACTTTATATCACTGTGAAATTACAGGC
-TTGACGCCCTAGTTATATTCCTGGTAATACCTTTTAAAATAAAATCGTTA
-ACCTATTAAGATAAGAAACAACTGCCCCATGCCCCAAAACCACCCTTCCA
-TGCCACCCTGTGCCCTCCTCGTTGGAGTCTCCAAGACACACCCTAGGAAC
-AGAAATCCTGCCTTAAGCACACCTCCTACGTCCGTTTCTACAGACGACGT
-CGTCCTTGGATTCAGCCACACCATCAGCAGGCTTTCTATCCAGGGAGCAA
-CGTTTTGATCTCTCAAATAATTGCTTCTGCCTTGGTGTGGGGCCCCTGTC
-ATGGGCTTCAGCCCAAAGATTGGGGTCAGGGGAAGGGGGGACTCTGCTCT
-GGGACCCGCAGCAAGACCCAGGTGCTCAGCCCTCCCCAAGCACCTGCCAG
-GCTACAGAGAGGTGGGGACACTTCTACAAGGCACTGGTGATAGGGAAGCA
-GCAATTCCAAAACAACCAGCCAGGTCTCCCCCAGGAAGCTCTAGAGGGGT
-GTGTGTTTCTCTCTGCCATGTGCTGAAGTGCACTGGCCTGTGTGTAGGAT
-TTGGAAGGTTGGCACGGACGCTCTGGAGGGGTGTGTGTTTCTCTCCGCCA
-TGTGCTGAAGTGCACTGGCCTGTGTGTAGGATTCAGAAGGTTTGTGTGGA
-TGTGCATTTTCAGCTACAAGAGGATTCTGTGCTGCTTTCCTCCTGTTCCT
-CTGGAACCGTCCCGGGACAGGCAATGCCTGGTCAGCGGCCACAGGGCCTC
-TTCACTCCGCTCGGTGTCCGGGGGGCCAGCCCACCAGAGGGTGGTGCCAC
-GCGGCTCTGAGTTCACTAGGCCCCCACCTCCCTGCGTTCCCCACCCACTC
-CACGGCTCACTGGGACCACTCTGAAGTTGGCTGACGTTCAACTTTTCCCT
-GGGGTGGGTCTTGGAGACTCCAAAGAGGAGGGCACGGGGTGGCATGGGAG
-GGGGTTTTGGGGCACACGGCAGTTGTTTATTATCTTAATAGTTTAATGAT
-TTTATTTTAAAAGGTATTACAAGGAATATAACTAGGTCCTCAAACCTGTA
-ATTTGGCTTCTCATCTCTGCAGTGGTGGTGGCAGCGACGAGGATGTGTTT
-TGTATTTCACTGATTTCAAATGAGCCTGGGaagccttttcccagcttccc
-attgggctttctgtctttttctttctgaagtaggaatcgcctctctagtc
-acgacattagttcttCATTGACGTTCTGCTTTCTTTCAGCTGATCATTGG
-GCCATAGCGTCGTGTACTGGAGACAACCACTCCGTGTTGATGGAGAAGTC
-GCCCAGGTCTTGCCTGGTGGTGTCCCATGttccctgtgctcaggcctcaa
-ggatattcgtcctcatggtctcctgtcagcttaacgttatgccttgtgca
-ttcaggcctgaatccacctgggatccatgttaacgtgttggatcaggtat
-ggatccaggtgtcctctcctccaGAGTGAGCCGGGATCACCCACAGTACC
-TACTGGGGGGTCCTCTTTGCCTCAGtgtacgagtcagggttctctagagg
-gacagaactaataggatagaagtatataaaaaggggagcttattaagtat
-taactcacatgctcacaaggtcccaccatgagccatctgcaagctgagga
-gcaaggagagccagtccgagtcccaaaactgaagaactgggagtccgatg
-tttgaggacaagaagtatccagcacgggagaaggatgtaggctgggaggc
-taggccagtctcgccttttcacgttgttctacctgctttatatcctagct
-gcactggcagattgagagtgggtctgcctctcccagcccactgactcaaa
-tgttaatctcccttggcaacaccctcacagacacacccaggatcaatact
-ttgcatccttccatccaatcaagttgacattcagcattacccatcacaAC
-TATTGATTTGTGTTGCCACCCACAGGTCCTCAGTGTTTAGGGTTACGCCA
-TTGTttacgccactactatcattctcatcatcattattgtgattttggaa
-aactcttaacatctggtaaagcaagcattccttcttggttctcctgcttt
-ccaagttggcttTTACACCCATCCCCCAGCCCCAGCTGAAGTGTGTGCAT
-CAGATCCCTGGGAAAGCCTGGCTGGACTGGGCTCAGAGCGGCACTGAGCC
-GGGGGGACTGCAGACGGGGCTGGCGCCCTGCACACATTATATCCACCCAT
-CCAGGGTCTTCCTTCAGGTCCCAGGATATATATGTGCTGCTGCCGTCTCG
-GGACCACCCCCATCCTGCCTGGCATCACCCCTGTGTGCCTGTGCCCATGG
-CCTGAGCCGAGACCGGGATTCACAGCCTGACTTCCTGGAGTCCACGTCCC
-TCCTGGATTTCCTGGAGGGCCAGGTGTTGGCCCTTGTAGCCTGTATGCTG
-CCTGGCCCAGGTTCAGCGTCATTGCTGGAAAGACACAGCGGACCACATTC
-TGCCTGACCTTGGATGTGGTCACAAGGTGGGGAGGGCACATCTACCTTCC
-TTCCTTGGAGCCAGCCTCTCAGGATCTTCTGAAGCTGGGGAGCAGTTGGA
-GTACAAGCTGAACCCAGAGTGTTCAGGAAACCGAGGGGAATTCCAAGCAG
-CCGTGACCCTCCAGCCCAGGCTCCTCTGTGTGAGCAGGACCTTTCACAGT
-GAGTGGACAAGGTGGGGAGTGATTTCTGCTGGGTCAGCGTGGACCTGCCA
-ACTTCAGAAGTGTGTCCTGATCCATCCTGGGGCGGTGAAATTGCATTGAT
-GTGGACACACAGCCCCCGAGGATAAGGAACGCATTTTTATTTTATTTTAT
-TTTAGgttctgggatacatgtgcagaaggtacaggtttgttacacaggta
-aatgtgtgccatggtggtatactgcacctatcaacccgtcgtcacctagg
-tatattaagccctgcatgcattagctatttGAAGAACGGCAtttttttgt
-ttttgtttttgttttgagacagagtctcattcggtcacccaggcgggact
-gcaaaggcacgatctcagctcactgcgtcttccaccttccgggttcaagc
-gtttctcctgactcagcctcccaagtagctgggattacaggctcacgcca
-ccatggccagctaatttttgtatttttactagagacagggtttcaccata
-ttggccaggctggtctcaaactcctgacctcaagtgatcctcttgcctcg
-acctcccaagtgctgggattacaggcgggagccactggcacctggccAGA
-CAGCATTTTTTAATGTGGCCTGTTTGATAAGTCCTTGGTAATATTGATAG
-AGTGTTTGCCAGTTAAGAAGTAGAAACCAGTGACGGTGGGCCATGAAAAT
-GATCACATATTGGCCCTTTCATTTCGTGAAATTGCACCGACACTTCCCCT
-GTGGCAGGATGGCACGCCCACATTTCATAGGAAGGCTTTGCTCTCTGCCG
-TGTGCTCCTCTGCGTGGACAGAAAGGAGCAAAGAGGAAGAGGACCACAGC
-ATGAAGTGGGGACGCAGGTGCCTGCGGAGGACACTTGTGTCTCTTGGGAA
-CACTTGTGtatattttaatttttttttaattCCAGAGAACTCCTTGTCCT
-GGCAATCCTGTGTTGATTTATTTATGGTTCTGAAATTGTTGCCAGGCTGG
-ACACCTGCCTGGGGCAGGCCAGTGGCCCACACTGTCCCTCGTGCTGGTTT
-CTAAGGCCCAGCCTCTCCAATAACATTTTAAATGGCTTCTAAATTGCTTC
-ATTTATTAAATATTCACTGTGAGAACAAAAAAGAGGATAATTCATTTTGG
-TGGAAGGGTTTCCTTTCCCCCTAAAAACTTTGTAGAAAAACAGCCCGTAA
-TAATGGCAGACTTCGTAGGTGTCCGGTGGGAGAACAGGGCAGTCTGTTCA
-AGGCATAAATGAAACGATCTCCCAACTCACTTGGACAAACGGGGAGTCAA
-GGAGGTGTAAGACTTCATGAGCAAGCTGTGTCCTTGGCTGCCACCTGCGC
-TGGGAACCCCGGAAACCTGGGAGCGTGTACCGCTGCCCCTTCCATGGGGC
-CCTGAGCTGCCGCAGGGTTCGAGTTAAACAGCCACAATCCATCACTGTTT
-ATGAGGTCAGCACAAGGGGCCACTTAGCTGTTGGCTGACCAGAGACACAA
-TTCCTGCTGATGGGGGAGGTGGACATCTGCTGTGTGCAGGGGTTGCCTGG
-GGGTCCCAGGTGTCCTTTCCGGGCTGCGAATGCAAATAGAGTGGCCAGGG
-CTAATTGCTGCTGTCAAGCCTGGGAAATCAGATTTATTATCCATGTATCT
-CAAAGCCTTCATTAAGAGTTCGGGGAGAAAAAAATGTCTGTGTTCTCCAT
-CTCCTACCAAGATTAATGAGTCAAAGAGCAGATATTTTTATAACCATGCT
-ATCTGACTTTAATTTTAAATTCAAAAACATGCACTGGGCCCAGCTGATGT
-TGTACAGATTTAAAGAGGTGAGGAGCCACACACCTGGTTAGCAGATTGGA
-CAGGGACATTTGGGCGTCTTGCAGGAGGCTGTTTCTTGTGGGTGTTTCTG
-TTATGCAGACAGCATGGATGTTTTCCACTATAAGACCATTCCACTTGCAG
-CACTGTCTGCAATGCCAGTATGTTTCCACACCAAGACACGCACTCGCCAG
-AGATGTTAAAGTGACTCGTTGTAAGGAGGCTCAATCTTCGCATGCACAAC
-CATGATACTGCTCACATGTGAAGACATCAGCAATATTGACGGGCTTGAGT
-TTCTCCAATacataattcagataccataaaattcaccctgtttaaaaaag
-tgtgcagttcagtgattctcggtgttcatgactgtagctctgcagggagt
-tttgaatctgggaagtctgaaccctccagctttgtttttccttgtcaaga
-ttgattgggctagtctagatcacttgaaatttctttttcttctcttctcc
-ttcttcttccccttctccttcttcttcctcttcctcttcttcttcttctt
-ctttttttttttttttgagatggagtcttgctctgacacccaggctggag
-tacaatgttgtgatctcggctcactgcaacctctgcctactgggttcaag
-aaattctcctgcctcagccttctgagtagctgggattacaggtgcccacc
-aaaatgcctgtctaatttttgtatttttagtagagacagagtttcaccat
-gttagccaggctggtctcgaactcctgacctcaggtgatccacctgcctt
-ggcctcccaaagtgctgggattacaggcgtgagccactgcgcccagcata
-gatcacttgaaatttcatcccattgccttctgctctccatggtttctgat
-gagaaatgaacagttaatcttaccaaggatccattacacaagagtcacat
-ctctcctactgtcttcaagattctctcttgaattttgatagtttgagtat
-aacgtgtctatgtgtctcagagtttgtccaacttggaactgtctaagctt
-cttaattctatagactaatgttttcttcgccaaatttgaaaagttttcag
-gaattatttttaaaccttttttcctaatcatttatatctttctcttctcc
-tttgggacctcttatcgtgcatgtgtgggtatatttaatgacatgccaca
-ggtctctgagtctctgttcatttttttattcttttttttctctcttctca
-gattgaatagtctcaattgtcccaccttcaagtttgtaaggtctttctcc
-tgcctattccaacccactgttgagttcctctagtgaattttcacttgagg
-cattgtatttttcaactccagaaatttatttttttatagcttctatgtct
-ttactgatattgcctcactggtgagacatggttctcatacttttctttag
-tttttagacatggtttccttttgttaaatcaccatatttaaaattaggtg
-attttaagtctttgtcctctaagtccaatgcctgggctttctcagggata
-gttttaactgactgcttctcttatatgtataaaaccataactttctgttg
-ctttatatgccaccgatattttgttgaaaactggacattttaaatactat
-gatgtggcatctctggaaatcagattcctaccctcagattccaaatcaga
-ttccaaaccggggtttgttgctcttgctttttgtttttgcttttgttgtc
-atcgttgtttggtgactcttgttaactagttctgtaaagtatgtcttctc
-tgtcatgtttggccactaacatctctgcttgattagctctgtggccagcc
-agtgattggatggagacgtcttaaacacctgcaatctgtccgtcccccag
-actgtttggaagggatattctgtgtgcatgaggggtgtgcccgccacact
-cagcaagtgtacaattctgcatagctttacttcctgtgtgtgcataagct
-caaagtcatctagggtggaagctcaggaacaacttctcagatctttcctg
-agcattcacatagctctatgcacacaggtagctttctagattcccaagaa
-tatgtcagagattttccgaactgcagaggatatctcattccccagatttt
-cctttgaaatattttgtgagcctaatgtttgtgtcaactctcatccacca
-cctcaggtaggtgcaaagttcaacaatttcctccagtaattttcaacaaa
-cacctccagggagaaggctttttgtattgtgcgagttctgagtcaggtca
-aataaaaacaccctcgcaagtgaggtcctccagaaactgccagacaggtc
-aagtcatgacagtcttctgcaaatgaggcttggaaggagccccagccctg
-tgctcctcttccctgtgagtgctgggctgctgggctcacagagatggcag
-gctgttgatcttcaagtcaaccacagagctgcagaaaggggcgtgagaag
-agggcaggttaaaacactgcagagttcactgGCTTTGTGCATTAGACCTG
-AGGGAGCTGAGCACTGGAGTCTCATGGGGTGGGGCTTCTGaggtcctggg
-gccagagtgggcttggtggtctgagggacaaggaagggcactgtaaggat
-ggaacagattgagtaaggggaggcaatgaggctgagtgtagagaaggaac
-tggccacctaggagcctcatattcattgtaaagaaacttatttcactctg
-aaagaaattcagagccaagcagggtctggtaagaggagtgatgagtcaga
-actactcgaaaggttttaccccgcagctctgcagagaggaccctaaaagc
-ggagcaggagtggaagcagagagacagtttagaaagtcattgacaataac
-ctgattgcagaggacagtgactgggccagggtggtggccagacagacggt
-gagaagggttcagatctaggtagattctgaaggtcaagccctccggattt
-gcagatggactgtgcatgcgctgtgagaggaaaccttgctttgtagacac
-ctggagggagggagttagcatatgaacaaaggtggtggaggtttgtgggg
-aagagaatgtccagtgtccactctcaggtgctgatgagttaagggtgaga
-tgcccaaaagacccctaaggaggtcgagcaggaggcagccggatggagga
-gcctgaagggctcggggctggaggcagagatgactcaggggaggccagtg
-tctggacggagttcaaagccatgagacagcaggaaagaacgccgataaga
-gagagagagagaagcagtgggctgagtcccgaggatcccatttctacagg
-tctgagaaacaggaagaaataacaGCCAACACGATAccagctccctggct
-gttattccaacattcaattctagctgtgtgatttcagaaaatccatttac
-cctctctgggccttggttttctcatctgtagattgggcgtaatgaGTTTc
-ctgcctcccctgcagggtttggacctgccagccctcaccatgaccaaagc
-aaattccttgaatttatttcccttttatataaatgtgcaactgggtctgc
-tcctctgcagaaaccggaTATGTCGGGATAATGAATTCTGCCGTGGCTGC
-ATCTTTCACAGCTGTGTTGGGTCCAGGCAGGGATGGAGGTGGAAGTCTTG
-AACAAGCAAGAAGGGAGGTTCATTTTCCAATCTGAGCTTGGCTGTTTTCT
-GTCCTCACTGTAACTCCGGTTCTCACTGGTCTGGTCCTCAAGCAAGAGGC
-AAGCGTCTTCGAGTCCCTGACTGACCCATGGTCCATCACTCCCCACCCAG
-GTCCCTGTGCCTGGACCCGGGTTCCCCAGGAGACACAGAGGCCCTGCCCC
-AGCCGCCGGCTGATCCCGTGTGACCTTGGTCATGAGAACACGCATCAGCC
-GTGTCCATCATGAATCAGCCGGCGTGCTCATTACAACAGGAGCTTCAATC
-TCATCTTCTTAATAGCTTGATCTGACCAAATAATTGAGAATCACATCCTG
-CCACACCCTGCCAGCAGTGGCTGGCCTTCCAGAGGTAGGTGGGCGTACTG
-TGGAACCAGGGATGAAATGTCACCTGACTTTTTACTTAGCAGATACTCTC
-CAGGAGGCTGTGCTGTGTTTGAACTAGGGGTGTGGGGGGACAGGGGAAGT
-GAACCAGCCAGTGTCGGCCCCCAAAGGAATGTACAGGTCACTAGGGCGGG
-AAGAGGCAGGAACAGGAGGGAGGGCACAGGGCTGTGAGGAGACGCTCCTG
-GTGGGCAGAGGAGGCCAGGCTGGACACCTCCTCCATCCCAGGTCTTGCTC
-TATCTTCCCACCAACCTGAAGATTCCACTTTTAAATGACAGAAAATAAGT
-CCCAGGATAAACACCAAGCAGGCACCAGATCAAAGCGGCAGCAAATCCAT
-CCAGGGAGGACCTCTGCTCGGCGATCGGTGCAGGGGCAGCAAGAAAATCA
-GGTCCCTGTGGGCCCCGCTGCCCAGAGCCAACATAAGGAGCTCTGCAACA
-TAAAGGATGTGTGTGTTCACGGGAAAATCAAATGGGAGCCCTGGCTGGAG
-CAGAACACTCTATGATTTGAAGATAATCATGAGGCATTTCTGCTTCTAGA
-AGACTCTGTGTGTACATGCATCCCTGGGCCGGAAGTACGGAACTCtgtgt
-catgacggaaatgcacattaaaatgatgacgagcccgcactacacgccta
-ttagaacaccccaaatctaaagcgctgaccccaaatgctgcagacacgga
-gctagaaaccttcgttcattgctggtaggagtgcagaatggtgcagcagc
-tttggaagacagtttacaaaactcaatagactcttaacatcggatccagg
-aatcacactccttggcatttacccgaagggactgaaaacctgtacccaca
-tgtaaacccacacaggcatgtttatagcagccttattcataatcaccaaa
-actcggaagcaaccaggatgcccctcagtaggagaatgaaatgaaccggt
-gccttcagacaatggcgcatcatcccagtgccgaaaacctgtgctatgaa
-gccctgaaaagacacggagggagcttaaatgcatattactgagtgaaaga
-agccggtctaaaaaggctccacactgtacgattccaaccatatgacattc
-tggaaacagaaaaccatggtgataataaaaagatcaggggtttccaggaa
-tgaggagggaggaagggatgtttagggcaggggaaactctatgatagtct
-aatgggggatgcctgtcattacggctttgtccaagcccacagattgcaca
-tctcccctgcggacgataacgatgctcagtgtcatccgctcagggatcct
-gtcaaatgcacacacagtggggaacggccctacgggggagcctgggtagg
-cagggaggctgcagaaactccccgtgccttgcattcaatttcacatgaac
-ctgcaactgctctaaaaaataaactctgtttTATTAAGTGGAAGAGGGAG
-GCAGAAGGGGAGATCAGAGTGCTGTGATGTGGAAGCACTGGACCCACCTT
-TCTGAGACTCAGGAAGCTCCCAGAGCTCAGAGAGCgggaaaggcacgggg
-tgggggccacctgcggagtgtgcaggaaaagacccggccccacccatacg
-acgtcagccagggagacccacgccaggcttctgaccacagaaccctcaga
-gaatgcgtttgcattgttttaagccgcggcgttggtggtgcatttaggcg
-gcagccatagATTCTTATGCGACTTTACATCAATGGCTGCCACGACCCTG
-CTATGTGACACGCTAATTTTTCTTTCACTTCACAGTGTATCTTATGGATG
-ATTCCTTATCTCATTCTTTTTCGAGGTTGCGTGGAATCACCGTACGTAAT
-TTATAGACCCAATTCTGCTACGTGGACATGTAGACACTTCGCAGGAGCTT
-TTGCTTTTTGTTTGTTTGCTTTTATTGTGGATGATCTGAGCTAACGTTGG
-GTGATCCAGGGGCTATTTTGCCCTCTCCATCATGTTCTGTCTCAGGCTGC
-GAGGCTGGCTCCGGGCTTCCTCTCCCAGAGCTCGGGGCAGGGTGAATTCC
-CCACCTGTAACTCTTAGACATCGCTAATTCTGCAAGACTCCATCAGGACA
-TTGCAGATATTAGGGCAGGGGCGGACGAGGCGCCTCCCCGGTGCCAGGGT
-CACACTGCCGAACTCAGGTGCTGTGACCTCTGCCCTCCACAGGCTCCTCC
-GAAATCCAACCGGATGCCCAGGACCAGAGTTTGAGGCATGCGTCTGCAGG
-AGAGCAATTCAATTCCGGAAGAAAAACACGTTTTCTCTCTGTCTCCACCG
-ATTTAGAAAGTGGAGAAAGTTGATTTCAAGGGGGTCTTTGGGAAATAAGA
-GGAAACAGGCTTTGGAATAACTGTGGAGAGAGATGCGAGGGCGTTCTCAG
-AAGGAGAGAGAGATGCGGAGAGGCGGGGCATAGATTCAAACGGCCCAGGG
-ATGGTCGGGGTATGGGGAGGGGATCTCGGGAGGGGACGCAGACTGTATTC
-CAGAGCCCAGTAATGCCAGCTACATGCCCTCCTTCTCTCTGCAGGAGCAG
-ACAGGCTCAGGCCCAGGGGCACAGGGCATCATCATTATGGGTGGATTCGG
-GCTGCCTCTCTGGGCTCTTCTGTGGCCGAGGGTGGACCACCCTGCCTGGC
-TGCTCCAGTGGAGCCTGGGTCTCCAAGGTGGTAGTTAGGCTGGTCTGGGC
-AGGTGGGGGCGGGAAGAGGTGCGGGAGAGGCACAGCTGACCCACCTTGGA
-CGATGCTCGGAGGTTCTGGGCTCTGGGAATCTGGTTCTCCATGTTCACCC
-GCTCCCAGCGCCTCTCCCACGCAGCCTCACTGCCAGCAGGACCCACTGCT
-CTTCACGGCCtgtcttgtcagcttgagctacagtaaaacatcactggcca
-gtttaatcagaaatgttaattctttacatcctgaggctggaaggctaaga
-tcaaggcacaggcagatgcggagtctggcgggagctggcttcctggctcc
-tagaagacgccacctcactgtgccctcatggggcagagagtgtgaagctg
-ctctcaccccactccataaagggcgctaaccccaccctgggggccacctt
-catggcctcgttggccctaattaccctccaaggtcctaataccatcgctt
-tgggagttagggcttcaatatacaaaccggggggtagggcagaaacattt
-tgtctaCCACAGGACCCAGTTACACTGGCCCCACCCCACCCCCAGCTGAC
-TCCCTGTTCCAGGAGCCCCTGGAGGGCCGGGGGAGTGTGAGTCTCCGACT
-cagtggttctcagacttccccatccatgagaaccacctgcaggttggagc
-acaggtcactgggcctaatccatcacttccgattcactgcatctagggaa
-ggtcggagcatctgcatctcatacaagcactcagtgctgtgtgtgtgatg
-ggctccgagaacGGGGATGGGCTCGTCCACCCGGCTCCAGAGCGGGCTGT
-TCTGTGTGAGAAGCAGCTCTTGTGGGTCGCTTTGAACAGAGGAGATGGAA
-AGAGGATGTCTAGGCACACACTGGGTGAAGCATGCAGCCTCCCCCACAGA
-CCACCAGGCCCTGACAGGAGGCACTCAGTGCAGCCCCTCAACATCACCCA
-CCTGAACACTCAGCAGCCGAGATGACGGCACAGCCCAAAGTTGGGTCACA
-GGCTCAGGAGTGTCAAGCTGTGGCACCGCTGCCTGTACATCAGCTCCTCT
-TTGACTCCAGCCTCCGACAGATTCAGTGATGGAAACGTCAGCTTTACTCA
-TTCCTGGTCTTCTCTCAGGGACCGGGCCAAGCTTCCGGAGCCTTAGGGAG
-CACTGAGGCACGAGGGAGGGGCTGCGGCCACTGTGGCTGCTGTCCACAGG
-CGTGTTTTCCTTAGAGAGGGAGCAaaaggaaaaagcagggtgtcaggacc
-ccaaattcactgtgctgaagggaaagtgaagcttgcgaactgagtcatga
-ggaaaacaacctgccttccttctgttcccagagagctgtcacttcacagg
-tttacttgggcttatgtgcaaagtagattcactgagcacttaccaaagcc
-tcagaggagtgtagctgcttgcctcactgcctgtctaccccacccctttt
-tttcctttcttcctttcccttctgctcacttcttcccctttaaatattga
-agttccggcccggcgctgtgactcacacctgtaatcccagcactttggga
-ggctgaggcgggcggatcacctgagctcaggagtttgagaccagcctggg
-taacatggtgaaaccccgtctctaccaaaaataaaaaaattagccgggcg
-tggtggcaggcactgtaatcccagctactttggaggctgaggcaggagaa
-tcgctggaacccaggaggcggaggttgcagtgagctgagatcactccact
-gcactccagcctgggtgacaagagcaaaactccatcttaaaagaaaaaaa
-aagaagttcccaaaaccctctctggcaaaaggatagccacagatcttacc
-gtaacttgtgtttctttttcctgggcatgtctttgaccttggcaaaaata
-aacctctagattggctgagatctgcacttcttggttACCAAGGGTtgtgt
-gtgagtacatgtgcatgcatgtgtgtgcatgtggcacgtgtgtgtttgtg
-tgtgtgtgtCAGCGAGCTCTTGGGCATTTTATGGAAGAATTCTGATTGCT
-TAGAAACCAAACGGCCTGAGCTGCAGTATATTTTACCAACGAGCTCCTTC
-TTTAAAGAGCTGAACACCGTCAGAAATAAGCCCAGGTAGGCAGTGGGGGC
-CATCAGAGAAATATACCTCTTATTACCACCTGGAAATTACCACCCTGGAT
-TTACCGCAGCAAAACCCCTGCTTGTGTAATTTTCACCATAGCACACCAGG
-TCAACAAGTACGCTTCTTATAAAGACAAAATCAGATCAGATTTAACACAT
-TTTGGTCACGGTCCATTTTCTTTTAGCTGGGGAGAGTCCCCCATTTCTTC
-AAACAGAAATCCCAGATGTTTTTGGCAGATTTCCATCCACTTTATTTTCT
-TATAAAACGGCACTAAGCACCTTACAGCTCTAGAGTGATTTAGTGCAAAA
-TGCAAACATGTCCAGGAATAAGGCACCGAGCCTGGGGCCTCCCTGAATGC
-CTGATGCTCCGAGGACTTGTCTGCACCCAGCTGTTGTGCTTCCTTCATTA
-TCACAGAGGTGAGCACATGTTACATGCAAAACGCTACGAAAAATTATTGT
-GATGTGCCAATTACAATTTTCCCTATTCAAATTTGGAGCATCGAGTAGAA
-GAATGTCCTTAAAAAAATTCTTCCCAAATCCCAAATGATTAGTTTATTCA
-TTTTGCCATCATGTACCTGTTATTTAAATTCAAAAGTAGTGAtgttagcg
-ttgttgttcacaggggtgtgggttaacagttctgaggccatttttgtctg
-ctgctgagtcagaacaaatgcgtatgatgggtggtggatgggggagctgg
-atttcttgctgtcagagtgagagttaaatatcaataacagcatgaggcta
-aatgacccatgaggtcacgggttagggctggagacaccagcaagaactca
-tgttgggcttactagagatccatacagttacatgcagagctatttataga
-tacatgtatatacacagtatgtgcacacatacttccaagctctgtccctt
-gaaaaacactaaacacatcagcaccccagtatccatgagcacccccagca
-cccaggccttggtttctaacaccattccctggaggattcaaggttccttg
-gaaaaacagcagattcaaaaactggggcaggaaatcgagaagcatgagcc
-agcagcaccacgtggtgccaaaaagtaaggaaacctcaagaagcaaaacg
-attgaggtatgtcaaagggacatggaagcccttgaaaaacagccaatgac
-caaagctggaagaatctgaaccaagaagggtaataatattgtagtattag
-atgagctctgggctcagctagtgcttggatggagatttcttaaatacccg
-gaatctgtccatctcccagtgttttcaagggcatttccctgccccttgag
-gtgggctccacttagtgattttctttcaaagagtagagtataaataaggg
-caaagaaagagactctttaccatggaggagcccggcagacacttccgcca
-ggcggccaaggtcaatgccaacagtgaggagccatcttgtacccttgaaa
-agatgtgatggaaatagcccttcacctcccgataacccacaacttccatc
-tagaaaaacagacagatcacaatggagagacattctgcaaaacacctgag
-cagtcctcctccagactgtcaaggtcatcataactgtcaaggtcatcata
-actgtcaaggtcatcataactgtcaaggtcatcaaaactgtcaaggttgt
-caaaaccaaggaaagtctgagaaactgttatggccaagaggagcctcagg
-aagcgtgatgactaaatgtcacgtgggattctggatgggatcctgagaca
-gaaaagggacaacaggtgaagacgaaggacatatgcattaaccatggact
-tcagtgaataatcacacatcaccctcggtctattgattctagcaactgta
-ccacagtcgtagaagacggtgatggtggagactgtgtataggaactctct
-gtactttctttacttttctgtaaacccaaactattttaaaattaaaaatt
-tctttgaaaaaaAAATTAAAAGTGAGTAAGGTCCCCCAGTCTGGTAGTGG
-CCCAGATCACTCCTGAGCAGCCTTCAGTCCTGACTTTCTGCCACTCAGGA
-TGCTGGATGACGGGCAGGAGGCTGCGCTGCACTCTCCAGCCTGAATGTCA
-GGCTGCATGGAAGGGTGTGAAGCTCTAGATGACCCTCCTCGTGGATTACA
-CTTGCCGTCCTGGGTGGTGGCACCCAAGCAAACTATTTTTCTTCGAGTCA
-AATTGGTTTCTCTGATCAAACTGTTGCTGCCTGCTCGCTGCCCGAAGGGC
-ccagaaagtgacctatttttctaacaaagctgagctgattgcacactgca
-gtgaagagggtgccagcggaatagtctcctaacatctcagcaaaggaggg
-gggtttgtaaaggctgggggccgccccagcagcgcctttcagagtgtgag
-tgtctggtggggaggggtaactggaatgggtcagagttcgcatgataata
-atttaggatttgtggacaccaagggggaggctttcaaacaagctttgagc
-aatgagcagctgttCGACAAGGCCAGCTGAGAGATGCGACCGACTGTTCT
-GAGATGGGGCCATTTGCTCCGAGGAGGGTCCGCTTAGCAGtctattgctg
-agataaatggattttcagccagtccctggaatgaagaataaagtcatttg
-gaactccgtcttcctgggcgagctgtccttggaacagtgacatcgtgctC
-ACTAGAGGGGAGGTGGGCGGCTGTGGCTGGGCTCAGCTCTCACTGTGAGG
-GGCGGGTGGTCTCTCTCCTGCATGACCCTGCCAAAACCGGTTGGTATTAA
-ACGGACCTGCTTTTCTCTGGCCCTATAACGAAGATTCTGCTTCCAGGCAG
-AGGCTGTTTTCCTTTGCATTTTAGGTCTGTTTATTTCTAAAATCGGGCTT
-GAACTTGGACATGCAGGTATCCTGCTGTTGGTTTTCCTCCTCCTTATTCA
-CTCCCTGATATTATCTGGGGCAGAGGAGCTCAGGGCCTCTTCTTGGTGGT
-GCCTCCCTGCCTCAGAGCTTAACTGGCCTCCCCGACCCCCTGGGGCACTG
-CATCTCTGGGAAGTCCCAGAATCCCAGCCCTGACCCCCAGGGCCCCTGAG
-TGCACCACGGAGCCAGGGGCAGTGTCGGGGAGCAGGAGGCAGACCCTGCG
-CTCGGGAGAACCTCAGACTCCTTTCCTCCATCTGCCTTTTCAGGGATGTT
-CCCTACTCTTACTTTTATTTTCATTATAGGCTTATTTTTCCCTCCTTACT
-CTACCCTTAGCAGAAATCCTTGAGGCTTGGCTGGCTTCCTTCTCCCGGGA
-CAAGGATGAGGAGATACAGGGAGCAAAAACAGAAGGAGTTACCCAGCCCA
-GAAGCAAAGCACTGCACGTGAGCACAGCCCACTCCTCTCTTCGGTGAGAG
-CCGTCTGCTCCCGAACATGCTCTGAATCTGTTGGTTCATTCCGCACAGCT
-GGACTGGAGACCTCGGCATTGCCTGGTTTGGGCTCACAGAGGCGGTGGGG
-GGCAACGCACAGTGCAGGGACAGGACCAGAGGACGAGGGCTGCCCAGGCA
-TGTCCAGGAGAGAGCAGTGCTTTGCACTCCAGCACCTCCCCTGCCATGCT
-TTGGCCTGGATTATCCCCCGCCCCTGCCTCTGAAACTTGCACACTTGGCC
-TGTGCAGGGGAGGAGGGCAAAGCTGCTCAGCTTCCACCGGAATCTTCGCT
-TCTCTTTCAAGATCCTTCCCTCCtgtgtgagtttcctgcggctgctggaa
-caaaacaccacggactgggcgtcacaacaactgaaatttattttcatggt
-tctgggggccagaggctaatcttgtcgataaagccttgttttccctgaag
-gctctaagggaggatccttcctgccccacccactaccccccaccccacag
-cttctgggagctccaggcatcccctggcctgtggctgcatcgctccagtc
-tctgtctccatccccacacagccttcttcctggtgttggtgtcttctcct
-ctgtgtgtctgtaatgaggacacttgtcattggatttagggcccacttgg
-ataatgcaggatgatctcatctcaagattcttaccttaatccatccgcaa
-agaccctgtttccaaaaaggccaccttccctggttccaggggttaggatg
-tggacatatCACTTGGGCACTGACATCAAGCTTACTGCACCTCCTCTGGG
-CCCAGGGTGGCTAGGAAGGACCCACCTTTGACGTTGCTGTTACATTCGGC
-CTCCTACGGGGTCTTGCTCAGAAATGGCATCCACGGGCCCTTTCTCCACA
-CTCTCAGGTACATGCAGCTGCATTACACAGCCCAGGTGCTTACCTGTCTA
-GGGTATCTGTGGCCCAGGCTTGCACACATAAGAGGCAGATGGTCCCTGAG
-CTCCCGGATACATCCCCATACATTTCAACATCGCCTGGTCTCGGTTCTGA
-CCTTTGAGTACCACTTCCTCTCCTGCAGAGAAAACAGGGCACAAAGTCAT
-CCAGGGCTATAGGCCATGGAGCAGTCTCCGTGCCTTCGCAGACCACTTTG
-TCTTGCGAGCTTAGACAGCACCTGGTGGCTGGAGTTAACAACAGAGACAG
-AGTTTGATGTCCACTTTTGCTCCTAGGAGCTCACTCAGCCATGGCTGTGC
-AAGGTCTGCTCTGGGTTCTGGACTCACATACTGAGAATTCATCCCTCCTA
-GTTTCAACCTGACCCTCAAGAAGATGACCATGGTGGGCCTCATTAATTCC
-TCTTGAAAAAATTCTGTTTCTCTCAGCCTCCTTGTCCTCACAGTCTCATG
-TATTAAACTGGTTCCAGCTTCCTACACAGAAAGGTGGTGGAATAAGGTGT
-TAATAAAATAACACCAACATGAACAGCTGTGCTGATGGCTATCCCCACTC
-TGCAGGGCATTGGCCATCACAGCAACCATGGCCTTTTCTGCCACTTCCCT
-GGTAGAGGTATTGCCAAAGGCAGCTTCTGTGTCAGACTTCTGGAATGGGG
-GATACCTGGAAAGAAAATCCACTGTGTTACAGCACCAGGAGGAGCAGAAA
-TCCAGTTTAATCATCATGTCATGGAGACTGAATATGAAACTTGATGAAAA
-TCAGTCCTGGGGAGTGGTGGTCTCCTCTAATACAGAGAGGGGAAAACACT
-CCAGGGGAAAAAGCCTGCTGTGACGAGAGGCTTCCCCTGCATGCAAGACA
-GTGCATGAGAAACCATCAAAGGTCACCCATTCGAAGGCATATCTGAATGA
-GCAGCCAGCTGAGAAAAGCCAGCGTGGTAGAGACGTGCCTTCTCATGAGG
-AAACTCATACCAGAAGAAGCCCAGTGCAGAGCACCTAGACACAGAGGAAC
-CCAGACTGACAAGCAGATGGTTAGAGACAAACCTGGAGGAAACAGCTGGA
-TCAAGGAGATGCTGGCCCCTGGGGGCTCGTGAGTTTGTGGTAAATCCAGA
-GTCAATGCAAGAGGTTCCACCCCATGTCCTGTCCTCCCCATCAGGCCTGT
-TCTACAGAAGGAGGGCCTTCTGTATGCTGCTTCACAGGCAAAGGTGACAC
-CACCTCCCTGGGAATCGCCCTCTCTGCCTTGGCAGGTTATGGATACAGAT
-AGCTTCTTGAGATGGGTTCCAGACAGTTGTGCTGGATTTTTTCAAGAGGA
-ATTAGTGAGGCCCACCATGGCCATCTTCTTGAGGGTCAAGTTGAAACTAG
-GAGAGATTAATAAaatgaatgaaatgaaaaattcaatagagagcttcatc
-agcatatttgatcatgcaagaggaagaagtagaagaagaggaggaggagg
-aggagaaggaatctgcacattcaaagactcgttatttcaaattatccaat
-cagaggagaaaaaggttttttaaaagattgaaaaagcatgacaaaaccct
-aagggatttatgaagaaaaccaatacacacattaatgaagttccaaaagg
-agaagagaaaaagaaagaagctaaaaatttatttaaataatactagctgg
-aaatttcacaaatcttgggaggaaaatgggcatccagatttacaaaactc
-agaagtttctaaattggatcaaaccaaagaagacacacctggactcacta
-caatcaaattgtcacaaagagagaatttaaaggcagtaagagaaaagtga
-ttcctcacattaggagaacccccttaagacctccagaaaatttcttagca
-gaaactttaaaagccaagagaaagtgtgatgatatattaaaagtattgaa
-agaattcaaaaaccctgccaactaagaaaacgatactcagcaacattgcc
-ttttagttcttttttaatggagagataaagactttctgagaccaaacaaa
-caaacaagactgaagcagattatcaccactaagcatgccttacacaaagt
-gtttaagtaagttcttcaaactgaaataaaaatacactaaatggcaatgt
-gaacacatataaaagcataaatctcactggtcaaagtaactatacataca
-aacacagaataatgtagcactctaatgATGGTACATAAATGTTTTTTAAC
-CCTAACATAAAAGTTTAAAAATACAAATATGGTGTGAGGGTGATGGCATG
-GGACCACCTGAGCATCCTCGCTTGGTTACTCAGTGGTGTCCTATCCGTAA
-AGTCCTTGGATCCAACCCCCAAGATATAAGACCCAGAATGCCTGTGTTGG
-GCTCCTTCTGGGGACAGGAAAGTGGCCTCTGTGAACGAGGTCTGAACAGG
-TAGGGCAGTGTACTCCAGGGTGAGTTGTTCTCAGCCATGATGATGTTTTT
-CCAAAGAAAAGAACTTGAAGAGTCAATGTCGTTTGGCAAACATGGCTGAA
-TCAATGTACAGGGGCTGGCTTTGTCTGAACTCCAAGTGGATGAGCATCAC
-TCACCCTTCTCCATGTCCACTTGGTTCCCAGCTCCCTTTGTGGCAGGACA
-CCCTTGCCTACGCTGGGGGAAGCACACAGGAAGCAGAACCAATCCATGGG
-ACTTCGATGAAGGCAGAGCTGCAGGCTCAAGCCCTCTTGCCCCCAAAGTG
-AAACTTGGAGCTGTGGACCCTGGGAGTGCATGGGGGGAAGGCCTTGGTGC
-AGACAGAGGCGAGAGGCAGGGAGCAGGGCTGGGACTGCGGCTGCAGGGTG
-GAAACAGGTAGAGACGCTAAAGTCCAGGTTCCAAAGAACCAGAAAGAAGC
-CCAGGATATGAGCAAGGGTGGAACAGTGGGGCTAGCTCCCTGGGTCAGGC
-CTGAACACATCCAAGAACAGGTAGCCGGGGCCCCAAGGCAAGGGTGGGCC
-AGCCAGGTGGAAGGGCCTCTCTAGCGTCAGCATTCTAAATTTCTAAGCAT
-GGTCTCTACCATTGGCAAGTGAATCCAATTACATGACAAATATTAACACG
-CTCCAGGTGCCAGCCAGCTCCGGGGGGCCCTGGAACCCTCGGTGGGTCCC
-TGGGCTTCCCTGAACCTGAGCTCTCACCAATCTGATGGGCGTAGATCAGC
-ACGGAGCTATGTCTGCTGATTCACCTGCGGGCACCTGCAATTCACTCGAG
-CTGTGCCTGGCAGGGAAAGAGCACTCTGTGAACAGCCCTCAGGCTCTCTG
-CCTCCACCTTGCCCAGCTCTAGGGCTGTGGAGTCAGGTGGGCATTCTCCT
-CCAGCCAGGTTCCCTCCCTGAATGACGTCAGCAAGCCCCAGCACGCTCCT
-CTTCCAATTCCCACTGAGCCGCACCCCTCCCCATGTCTCCAGCTGGCATC
-TCCCATGGGATCCGACTCAGGTGCCTGCCCGCCTCCCACCATCTCTCCCT
-AGATGCCCAGGCAACAGCTCACAACACTGCATAGCACTCAATgttctcca
-gagaaacagagccaacaggaaacatagatgatgtagatttaggtctataa
-gcaatttattagaaggaattggctcctgaaattatgaaggctgagaagtc
-cccagatccgcaataggcaagctagggacccaggagagctgatggggcgg
-cgcaagccggagtccaagccagaggcaggagaAGGCTGAACAGGAACAGT
-GACTGCCTGGCGCAGATGGCACCATGGGGCAGCTGTGCCCGGAATGTCAG
-GGGGAAGGCCGGGAGGTGTCCTGGCACCCAGCCAGCTGGGCTAAGGGGCA
-AGGCAATGAGGACATTCCAGACAGAAGCAAGGATGGAGGAGAGGCAAGAA
-GACACAGCCTCATGGACACACAGGGAGCGTCCAGTGGTTCCGGCTGCTGG
-TCTGCAAGAAGGCAAGATGGAGAGGGGAGATGGGGGAGCAGGCGGGCTGC
-GCTGCGACGACCTTGGCTGCTGGCCAGGAGGAAGGCATCAAGTCTGTGGC
-TGGGGGAGCCCCTGAGACCTTTAACTGCAGAAGTGACTTCAGCAGGACAA
-CCAGGATCTCAGCTCAGCGCCAGCAGGGTCTTTCGCGTTGCTGCCCATCC
-TGAGCCGCCCCACAAGCTTGCCCTGAAGGTGGAGCGGCCGACCAAGGCAT
-CCTGGCTGGACCGTCCTGGGATGGGCCCTGCACAGCACAGCAGCCAGGGT
-GCAGGGAGTCTCTGTCCTCCCAGGCACCCTCCTAGCAGCCACAGTTCCAC
-GGCGCAGGCTGTGTGAGACCCCAAGAGGAAGGCCACATGCCCAGGGCTCT
-GGTGGTCCTTCTGCACCCAGAGGGCAGGGTCTCCATGGTAGACCAAAGTC
-CCCTTAAACATGCTCTCTTGGGGCTTTTGTAAGGAATTTTAGTGCTTCCT
-TAACAGCTCCACTGACTTATTTCTATGAATTTTTCAGGTATTTCATTAAT
-TGATTAATTATAAAACACAAATGTCATCTCCCCAGCACATGCCAGGGACT
-CCATAAGGCACTAAGATGAACGCGGGCGAGTGTGTCCTAGCTCCAGGCAT
-CACGCGGGGTGACGGGAGGGGTGGGGTCTGTCATGGACAGCAGGACAGCC
-CAGAGGGCCTGGGGACCAGCAGGTGTGGCCTGCTCCAGACGGACGGCCGG
-GCTCTCACGGTCCCAGCCAGCCCCTGTCCTCTCCTCTGACTGCTGGGTCT
-GGCCTGAAGCTCATTAAATTTTGAAGCCTCCTGGTCCACCTAGAGCCTTG
-TCTCTTCTATTTTTAATGTCGTCAGCCTATCAAACCCTCATAAGCCAGCG
-CGCCCACGGTTAGAGGTCTCTGTCCTCCAGCAATTTGTAACTTTTTCCTG
-TTAATTTCACAGCACTAGATGGAGAAGGAACATAAATTGGTTGAAATAAA
-TGAAGTTCCAAATTACACGGCTCTATGTGTTAGGAGAGGAGACGTGGACT
-CAGGAGGGATTTTGCTAAGAGAGCTTCTCCCAGCAGATTCCCTGTTAGGG
-GCTAAAGATGGAGTGAGATCCTATAGAAAGAGGCCTTTAATCCGGTCCTC
-CAAGGCACTAGGCTGTGCCCTCTGCCCAGTTCCCTCCCTGGCCCTGGCAT
-CGGTGGGGACTCTCATTACGGGCGGTATCCTTGCTTGCTGGGCTTGGCGT
-CCAATAGTGTGAGTGCGGAACACCAGCTCATCCAGGCCTTTCCGGAGCAA
-CGTGAGCTTCTGACGGGGTCACCCTCCCCTGAAAGCCACATGGGAGACCC
-CAAGGGTGACGAGGGCGAGGCGGGGGAGCCTGAGGCTCTGCAGCTCCTCA
-CAGGCTGGGCTCCTTTCTGCCCAGGAATCCTCAAGCCTGGTGTGGAACCA
-AGTGCAGAAGCCGTGAGGGTGGAGCAGCTGACCGAGGCGTCCCTGGTCCC
-CCAGAGCCTCCCAGGCACCCCCTGCAGAGAAGGCAAAGCAGCCTGGGAGC
-CGCAGAGGCCGAGAAACCAACCCAATCCCAGAACGCCGAAGACACCAGGC
-TCCCCGGACGGGCTTCCAGGGAGCCACTTCTAGCTTCACAACGTGAACTG
-TTTTCTCAACACATGACTTCGCAAGAGTAAAAGTCCGTATTCTCCCTAAG
-GCCTCCTGCGAACGCTGTGTCCAGGCCCCGCTGGGGGATCCAGGCTCTGA
-GATGCCCCGGCCCCATGCCAGGCTGTGGATGGGGAGTGACCGTGCACTCA
-CCGTGGTGGCAACGCCTGTATGCGGCCTGTAGATGAACGGGGCTCAGCAG
-GCATTCCAGTTCAGAGCCTGGAAGAACAAGCTGGCTGCAGAGCCAGGCGG
-GACCCTGTGCAAGTCTGGGGGGCTCCCCACGGTGGGTGCGTGGGGCCGGC
-ATTCTGGGCTAAGGACACGACTACACAGACACTGGGAGCTCCAGGAAGAG
-CGTAGCCTGCCGTGGGAGGGGCCAGGTCAGAGGGTGTCTGGGGAGAGGGA
-AGGATGGCCGTGAGGAGGCGGGAGTTGGGAGCCTTTCTTGAAGAGAGGCA
-GATGCGGTGAGGAAATGCTGGAAGCAGAGGAGAGATGGGGCCCGTTTTGT
-GGGCGGGTGGAGGCTGCGGCGGGGGCagtcaaggttctcccgagaaacag
-aaccaagagcaacgcacagagaatgacgtgacgaggaagctgtttataag
-tcagggagccggagaagttctatcctccgccgtccgcgagctggagaccc
-gggagagctgggggtgtccttcagaggcctgaaagccggggtcagtggtg
-tggattccagtccaactctgaaggcctgagcaccagaaacatgcaggcag
-gagaagacagacggcccagctgagaggtagacagagtgggaacccaccca
-gcccccacgttCGTGCCACTCACCGGGGAAGGTGTCGGCTTCACCCTGTC
-cactccacaggcaagcctggaagtaatattttgctggtcacctgggcacc
-gtgtggctctgtcacagtgatggcgaagtcacagaattcaccatcTCGGG
-GACACACCTGGGGCAGGAAGGCTCTCCGCTGGCTCCTCAGGCAGTGCTCG
-CCCACCGAGTGCAGCTCCATAAATCCACATTCACCTCACCTGCCTCAGTG
-TCATGTCTAGGTCTGGTTCCGTTCAATTCCATTAGTTCTATTTCTGCAGC
-TGGTCTTAGTCCTTCTGATGCCCTAACCACTCACTCCCCGTTCCAGGCTG
-CCTTGCAGAACCCGCTGCAGCAGCTTCTCCACCACCCACAGCAGCTTCTC
-CACCACCCACAGCAGCTTCTCCACCGCCCGCAGCAGCTTCTCCACCCGCA
-GCAGCTTCTCCACCGCCCGCAGCAGCTTCTCCACCCGCAGCAGCTTATCC
-ACCGCCCGCAGCAGCTTCTCCACCACCCGCAGCAGCTTCTCCACCGCCCG
-CAGCTCCTCACGCAGGCCTCCAGGGCATTCCGAGGCCTCTGCAGGAGGTA
-GAGAGAGGCCTCTCTGGGCCTGGGCGGTGAAGTCAGGACAGCTCAGCCCT
-GAGGGATCTAAAGTACAGGGTTCAGGGTCGAGCTCCTCCTGACCAGGGCC
-AAGCGGGGTGCCCAGCACAGCTTCTCAGGGGGACCCTTGAGTTGGCGTCC
-TTGGGAGAAGCAGGTCCCATCCTAGAACTTCCCAGGTCCGTGTAGAGCAA
-GATGAGGGAATGAGGCTGCCAGGCCGCCTGGTGCTGTCTGAGCCGGGAGC
-CTGCTCCGAGCTCCAAGCTCTGGTTCTCCATCACAATTTCCAACAGAAAA
-ATGCGTGGCTGAAAGGAAGGAAACGCTAAGGACGCTCATGACCCTCTGCC
-CAGGAGGTGGCCTCTGGAGTTCGGCCCGGCCAGTCCCCATAGGGTGCCCT
-CTGGAGCTCACCCCTCTCTTGGGTTTGTATCGGGACGCCATGGCCGTGGG
-CGTGGGGCATCAGCACAGCACAGCCATCAACTCCAGATCCTGGCCTGGGG
-CACTCCCTCCCCTGCCCTCCCCTCCCCAGACACCACCCACATCCTGCCGC
-AAACACCATGCCCATCTACCATTGTCCACGTGTTCCTTCCCAGCACATGA
-GCTGTGGACTGATAATGACTGAAGGCCCAGCTTCCTCCAGGGACAGTGGA
-ATTTCGAGAAGGGATTTCTGCAGCACCTTACAGGGCAGCACAGGAGTGAA
-GCGGGCAACTCTGACGGAGGAGGGAAGGAGGCAGGTGCAGCGGGGATGCC
-CGGCCCCTAAGGCCTCATGGCCCTTCAGGCAGGCAGACCCTTCTGGAACA
-CCCCTGACCCCGGGCGGAGTGGGATGCAGAAGTTTCTTCTGAGACAAATT
-AATTGTCCAATGAGATGCCAGTAGGATTTGTCATCTGGCTGTGGGACCCA
-CCCCACGATTGAGAGGTGTTTGAAGTGAGTTGCCCGTCAGTTGAAGGAGG
-CTCCCCCGGGTGTGGGAAGCACCACGGGCCATTGACTCCCCTCCAGCACG
-GCGCTTTCATCTGAAGCACATGGCTGTGTGGCCATTTACTGCAACATCAG
-AGAGTCCCAGAGGGGGCAAGGCGGGGCTTCTGAGCTCACCACTGGATGAA
-ATGAAGTCTCATTCCTACCCAGGCAAGGCAAAGAGCATCCGGAGTGAAGG
-CCAACCCCAGCTTTCCACGCACCTCCTCCAACCTTCAGGATTTTCTCAAA
-GAGGAAATGTGGGAGGCGGCAGGAGGGCACCACGCTTTGTGGCTTCTCTA
-AGCCAAAGGCCACGCCATCCGTCTGTGGGCGCCATGCACACCCCCAAGCC
-GCTGGAGGGGGCAGAGGGCTCTGCTGAGGTCACACAGCCCCCGAGAGAAG
-GGCTGGAAGGAGCCAAGCCTTGTGACTGGAGCAGGCTGGGGACCACAGCG
-GGCAAGTGATGGAGCAGACAGTTTCTTCCAGGAAAGCCCCTGCGTCCACC
-AAAACAGAAACAAAATACCCCtgtgtgcatgagtgtgtgtgtgtgtgtgt
-gtgtgtgtgtgagtgtgtgtgtgtgtgtcaggtgttctatgtgtggatgt
-gggtgctcattgtgttagctgtgtatgtgctgtgtgtgtgcgtgtgtgct
-gagtgtgtgcatgtgtgctgtgtgtggatgtatgctgtgtgtgtgctgtg
-tgtgtgctAACTGTGTGTGTACGTTGTCAATAGGGCAGTGACCTGACTGC
-ATCATACTGATAAACCCACACAGGAAGACGCCTCTTCCCAAAACAGGAGT
-TTCTTTGTATCTTGTTGTGAGAACCTGCACCAGAGGAGCCCACGTGGAGG
-CGATTACACAAGGCTTGTGCAGAGCCCACAGAAGAGGGAAAGATTCGGAA
-AAACCCCTCCCTGAATATCACGGTGACGGTGACCTCACAGAAGAGGGCAA
-TGGTTGGTGCCCACCGTGTCCACAGAAACCCCAGAAGGCCGTCCCGTCCC
-CCCACCTACAGCCCGAGGGGTGACTCCCAGATGACTGAGGGGGCTGGGGA
-GGGCAGGGCAGGCAGCGTGGGCCGGGAGGGAGGGCCCAGGCCTGCGGTCT
-TGCTTTGCCCACTGTGGTGCTCGCCTGTACCCCCTAGTTCCGCCTGACCC
-GTGGGATGCATTGACTGAACCCTGGTTTCTCCTTCTTCACCTTGGGACCG
-TCTCCTCAAAGTCCCTGTGACAATCCTGGGGTGTGAAAGAAGTGGGGTAG
-CTCTGATTGAGGCAGGGAGGGCCCAGAGCCCTGTGTGTGATACCCTCGAA
-CCCCCAGTTCAGGTGTGATGTGGCCAGCCAGGTACCCAAACGCCCACCCA
-GGCTCAGACCTGCCCAGGTATGCAAAGAGAGCGCAGATCCCCTCGGTGAG
-GCTGCAGGCAGGCTCTTCCCGAAGCTGCTTCTGTTCACACATGTGCTTCC
-AAACTCTCCCACTTCTCAGGAAACTCCCCTAATTGTGCCTGTGGGTCCAG
-GACACTGTCCCATGAGGGGGCCATGGCAGGGTCTCCCCGGACGGTATGAC
-TCCAGGAGCCTCCTCCACCGTCCTCACCAGCCACGCTGCACACGGCCCGG
-CCTGACCAGGTCGGCCAACAGGTCCTCCCCGTGGGGCTGCCTAATGTCCA
-TGGAAAGGGACAGGCCAGGCAGGCGTCGCTGGGGAAGTGAAAAGGCCCTC
-GAGGCTCAGACTGGGCCCCCGGCATCTCCACGGGCTTCCATGAGAGCCCA
-CATCATACAAGGGACGCGTGGGTGCGGGCAAAGTACACATGAATTCTCCC
-CGTGGCGGGGCCGGCGGGCGTTGCAGACAGAGACCCCACTGGCAAGGCCC
-GGAGGTGGGAAAGACTTCAGCTCAGGACACCAGCGCGGGGTCACCTCTGG
-AGGAGGGGGCGGCGCCTGCAGCTTTGCCTTAGCAGCGAGCAGCAGGGCTC
-CGAGAACCCCTGGGCCAGGTGTACCTTGCAGAGGGCGGCCTCTGCCCCGC
-TGTGGGGAGACAACCCCTGCCCAGGAGGTGGCTGGTGCTGAGGCCCAGAA
-AGCGCCCCGTCATCACGGCTGCCCCAGGCTGCAGCACTGCAAGGGCAAGG
-GGAGGTTTGGGGCCGGAGTCTGCAGGCTCGTCCTCATGGCGAGCGCTGAG
-CTGGGCCTCTCCGCGCTTTGGCTGGAAGCGCACGAACACCCTCCAGGGTC
-TTCAGAAGTCCGTCAGCTGGGAGGAGCGGGCAGCTCCAAGGCCTCAGATT
-CAGAGACCCTGGGCTGGGTCTTTCGTCTTCCTCTTTcctgggaaaccatc
-tgccttccctgggctcctgcttatcacctgcaaagtgaagataatgtctt
-tctcctgaggttgttttgagaataaaaccaggaagcatggaagcatctgt
-ccagcacacagGACACCCATGCGTGTTTATCATCCGGCACACGGGAGACC
-CACGCGTGTTTACTGTCGGGCACAGGGGAGACCCACGCGTGTTTACTGTT
-CGGCACACGAGAGACCCACGCGTGTTTACCGTTTGGCACAGGGAGACCCA
-CGCGTGTTTACTGTCCGGCACAGGGGAGACCCACGCGTGTTTACTGTCCG
-GCACAGGGAGACCCACGCGTGTTTACTGTCCGGCACAGGGGAGACCCACG
-TGTGTTTACTGTCCGGCACAGGGAAGACCCACGTGTGTTTACTGTCCGGC
-ACACAGGAGACCCACACGGGGCCTGTTTACCATCCGGCACACAGGAGGCC
-CATGCATCTTTACCGTCAGGCACACGGGAAACCCACGCGTGTTTACCGTC
-CGGCACAGGGAAGACCCACATGTGTTTACTGTCCAGCACATGGGAGACCC
-ACGCGTGTTTCCTGTAAGGACCGTGAAGCAGGGAGCACTTTGCCCCCACA
-GACAGAGGTAAAAGCTGCCACAGACCAGCTCATGCGAAACATGTAATTGT
-AAAACCCCAGGAAAGGAAGCCCAGCTTGGAAGGCAGAGCGGGCTGGGATT
-TGTGATCCCCGCGCATCTGAGAGGTCTGTTTCTGGAGGGAAACGCAGTGA
-ATGAAGAGTGACTATCTGTAGATTGGAGGCCATTTGCTCTCTCCTGGAGG
-ATGGTGGAAATGGGCAGGCGGGGCTTGCCGGGCCTGGGGGCTGCAGGGTG
-GCGGCCTCGTTAGGTGCTGTCTGTCCACAGCGGGAATGGACGTGAAGGGA
-ATGAGATGACTGAGCCACCGACCCTGGGGAGGGCCTCCCAGAGGCACAGA
-AGTCCCCTGGGAAGCTCATCACTCCTCCAGGCAATTAGGGAAGAGTCAGG
-CTGGGTGGAACAAGCAATTAATTACCTCCACCTTTGGGAGAAATGGAAGT
-CTGAGGGTCTAGCCAGGCCAGATGCAACGGCTTCACTGAAAAATGCAGCG
-CAAGAAGCTGCTGGACTGAAGTGGGCAGGAGACAGGGTCCACGGGAGGTG
-GGGTGAGCGTGGGTGGCGGTGCCGGGAGGTGGCAGTGAGGAAGGGGAGGG
-CTCAGCCCTGACCTCAGGCTCTCCAGTACATGGGGCACCGTGGGGAGCAG
-CTGTTCCCCTGCTCCAGGGTCTGCTGGAGAGACCTGAGTTGTGTGCCAGG
-ACCTGGGGCAGAGAGGGAGGAGATGGGAAGAGGGGCCCAGGGCAGAGGCA
-TGGGTGCAGCTTCATGAGGCCTGGAATCCACCAGGAAGGAGAGGAGAATG
-TGcacagccacgcacacaggtgcacacagtcacgcacacaggcaagcaca
-caggtgcacacaggcacacacGGTCCCAGACACCCAAGGGAGAGGCAATG
-GCCTCTCCCTGCAGCCCATGTGTCCTCCTGCCCGCCAGGCCCAGGCTGGC
-CCCAAGAAGGGTCAACGCTGCCACGGTGAGTGTCCTCCCACGGCTTTGTG
-CCAGGCTGCGGACGGCTGTCTGTGGAGGGCGGGGATGCGGTGCACCCTGG
-GGTACACAGGGTGTGGCACAGAGGTCACTGTGCTGTGTGGACAGGACAGG
-GGCCGAAGATGGGCCTGAACATCACTGTTGCAGCCCTAGGTGAAGTGGGC
-TGAGGGAATGCAGGCCTGGACAGGGACAGGGAGAGACCCCGACCTGGCCA
-TGCCACAGGAGGGTGGAGGGACGCTGGGCTCTGCCAATCCACCCATCTCG
-GGGGCAGGGGTTAGGACCTGGAGGGACGGAGACAACACCAACTAGGGGCT
-GTGGGAGATGCGGCTTGGGTGGACGAAGGGCTGTGCGAGACAGCATGAAG
-CCAAGATGCCCAAGGAAAAGTGGACGGTGTTGGGGGAAACGAGGCCCAGC
-AGGGTGGAGCTCCCAGCAAAGCACAGGCTGGAGGGGCAGAGCTAGGAGAG
-GAGACCCCAGAGCCCAGCCCTGCCTCCCGGCCACAGGCAGCACTTCAACC
-CAATCACCACACTGTGCAGATTCATTGTAGGGAAACCAGAAAATTCTGCT
-TAGTATAGAAGGAAAAGCAGAACCCCCACCCCCATCACAGGCCCTCAGCG
-GTGGAGGGGACATTGCTCCAGGCCATCAGCGGTGGAGGGGAACATTGCTA
-CCCAAGTGGAAACAGTAAGCCCATCCTGGGCACAGACAGCACAGTGCCCA
-CCCCGAGCAACCTCCCTGGGCTGTGGCTGCAGAATGACCCGAGGCCCAGG
-CAGTGCAGCCCAGTCTCACCTCTGCACGCAGCTCCCAAGGGACCCCAAGA
-AGGCCGGTTCCATAAAACCAGCACAGGtgtaatcccagctacttaggagg
-ctgaggcaggagaatggtgtgaacccgggaggcggagcttgcagtgagcc
-gaaatagcgccactgcagtccggcctgggcgaaagaccaagactccgtct
-caaaaaaaaaGCAGCACAGGGCAGGGCAGGGGACCTCATCACGCAGCTGC
-CCATCCTGGGCTTGCTGAGGCGTTGCAGCAAGGCCTGGTGTCCAGCTCTC
-ATGTCTTCTGCCCCTCGGACAGCAGGGCTCTCGGCACCCAGGTCCCCACT
-GCAGGAGCCCGGGAGGTGCCTCCAGGCCCTGTTTGCAGAAGACAGCAGGA
-CCTGGGGAGGGCCTGAGAATCCGGGTGAGCCTGCCGGCCAGCCAGCCCCC
-TGACACCGTTTGCAGCCCAGAGAGCCCCAGCCCAGTGCGATTCTGGAAGC
-TCCTCACTCCTTGGCCCCTCTGCCCCCTCAGCCAGGGGCTGCAGCCGCTC
-TCAGCAAATGAACCCCATGGAGCTGGTCCGGCCACTCCGAAGCTGCCAGC
-TCAGCCAGCGCTGGCCAACAGTGCCCCCTGGTGGCTGCTGCCGCCTCTGC
-CGCCGGGGTCCCACCCTGGGTCTGGCCTGGGGTGGACACGGGCAGTGGAC
-TCAAGGGATCCCAGGGCCCACCTGCAGGAGCTGAGGAGGCCGGGTCTGCA
-TCCGCATGCCcgtgggcccgtcgtgggcccgtcgtgggcccgtGGCCACC
-CCTGCATCCTGTGTCCCACCCCAGGGCTGCAGCAGCTTCTCTGAGTCTCA
-GGCACAGATGGAGTTGGGCCCCAATAGATGGGCCTAGGGAAGGCTTCCTG
-GAGGAGGTGACGCCCAGCTGAGGCTGTGAGGCATTGATGGTGCTGGACAA
-CCCCAGGTGAGGTGGGGGAGGACCTGGCTGCCTCTGATGGAGGAATCGGG
-ACCTGTCAGTCCAGAGGAGGGCTCAGCACCAGTGGAAAGGGAAGTGGTGG
-CTGAGAAAGGGGCAGGATCAGAAAGAGGGAGCCCAGGCTCTGAGCTGGAC
-CCTCTTGTTACCACGTGACCTGGCAAGTTGTGTGACCACTCTGGGACTTG
-ATAAGAAGATGCAGAGCCCCCTGGCTCTGCCACAGGGGCTGTGTGAAATA
-CACAGCACCTTCCTGGGGATACTGCCAGGTGTACAGACAGCGCTCAATAA
-AGAGTGACCCTTGGAGCTGATGGACTTCATTCCTAATGAAGGAGCCACCG
-TGGTGGAGTTAGCAAGGCATGGGCAGCTTTTGCAGAGCAGCCCTGGTGCC
-ACTGGGAGTGGGTTTTGGGAGGTCACAGGCTTAGCAGATGCAGAGGCCAG
-GAAGACGGACAAGGCCACGAGGCCTCAGGGGCAGGAGGCACAGGAGGGTC
-AGAATGAGGCAGCAGGGGCGGCAGGAGGCACAGGAGGGTCAGAATGAGGC
-AGCAGGGGCGGCAGGAGGCACAGGAGGGTCAGAATGAGGCAGCAGGGGTG
-GCAGGACCCACAGCCCCTCTGGGGATTAGGCAGGAGGGAGGCGGGGTGAT
-GTCCAGCGCTCGCTCCCAGGTGGTGGCTCCCGGGCACCAGCGGGTCTGTA
-CCTACATCGAGGGGTTTTAAACTTCACTTTCTTTTTGAAAGTCTCTCTAT
-AGAGCATGAGTGGAAGTGCCTGTGAAACCCAACGCCTGGAATTCCGCTCC
-TGTGATGCCCACATCCCTGTTCTGGTTTGCCGACTGTCCAGCGGTGAAAG
-gtgagacgtgagcatcggggaagctgcctgagggctgcggggactctgca
-aactttctgtaaatctaaaattattccaagagaaaaagcctatttaaaaa
-AAAAAAAAATCACCCACACTGACCCAGCAGCCTTCGGTGTGCCTGGGTGC
-ACCTGTGCCTCCCCGGAGCACCCACAGCTGGGCCGGCCCCACCCCCCACA
-TGCCAAGACCCCTGTGGTTTCTCCTTCCATCCTCACTGCCAAGCCAGAAC
-CCCGACCCTGCAGCGTCTCCCGCCCTCCACTCTTGCCTCTCCCTCTGCTC
-GGGGCCCCCGAAGCCCCTCTTTCTGCCCACCCCCGGCAGACTCGAACCCC
-TGCAGACGTGAGGCCAGGGCTGCTGTGAGCCCCTGTGAGGAGGAGCCCCG
-GGCACAGCCTGCACTGCCTGGGCCTGGCTCATCCCGCATCACTGCTCTCC
-CCGGCTCCAGCTCTGCACAGAGTATTTAATAAATGTTTAATAGCAACAAT
-AAAAGATCAACTTGGCACAACTGAAGATTTTTGTTCAGGGACTTGGGGCT
-GTGCTCTGGGTCAGAAATAAAATGCGTCCTGGCAGAGCGGCAGTGAGGCC
-AGGGCCAAGGGGGCCGTTTCAAGCGCCTTGTTAGCTCAGGGAAGGGACCG
-GGAATTGGAACGACCCCAACTGGCCCCTTCGTCCCTCCTGGAGCAGCGCT
-CCCTGCATAGCACCACGAGGACCCTGGCTCCGGGCAGCCCTGGGCTGGGG
-CAGAGCCGGCCCCTCCCTGACTCAGCTAGGGCCCCACATAGCAGGGGACG
-ATGATGTGACACAGCGGCAAGGCAGGGAGAGGAGGGCTCAGCCCTGTGTC
-CACCAGGACACCAGGCTCAGCAGAGGGGGCTGGGCGGGAGCACGCTGAGA
-GCACCGGCCTCTGTGCCGTCTGGGGTCTCCCCTGGCTTCTGGGGAGCAGG
-GAGTTGCTGGGCCTGGTGAGCTTTGGGTCCAGAGAGGGCTCAGGTCCTGG
-GCACCCCTGCAAGGTGGGCTGAGGTGGGACTCTGAAGGCAGCCCTCAGAC
-CAGGAGGTAGCTGAGGGTGCCAGGGCCCTGTGGCCCCCAAGGGTGCAGCC
-TACACCAGACCTGGGACTGTGTCTTGACATCTGGCCCCCAGAAGCCCCAG
-GGAAGGGGCAGGAGGGGAGGTCACGTGCCATCTGAGGCTGAGGGTGAAGA
-TGGGGAGGGGAGGAGGCCCCCAGGGGACAGACCTGCCACCCACCCGATGA
-GCAAGAGGAAACCCCAGACAAGAGGCATGAAAGAAACACACCAGCCACAG
-TGGGAAGAGAAAACAAAACCAGACAGGGCTCCTGAGGGCAGTGAGGGGGC
-ACCTGGAAAGAACCTTCTCAGGGGAAATGACTTTCAAAGTCAACACATAT
-CAAAATGAAAACTCTGTGTGTAAAGGTGAGGACGTGCCGGGCCTGGCTGT
-GCACACCTGGAGGCAGAGGCCGACGAAGCAGGAGTCACAGGAGTGGGGTG
-GAAGAGGACGGACGTGGAAGAGGATGGACGTGGAAGGGAAGACAGGGAGC
-TCAAGCATCGCGGCCACCGGATCCCCCAAGGAGAAGGCGGAAGAGAGGCA
-GCCACAGAATCGGTAGCAGAAGCTGATACTTGGAGCTGCAGCGGGCAAGG
-CGCAGAAGGTCTCAGGACAGCCCTGGATGCTGAGGGGCTGGGGAGGGGCG
-GGTCTTACGCTTTCCCCCAGGAATTCCTAAATAATATGGGTATAACAAGG
-AGTGCACACTTTGGGATGGGGAAAAAAAAAAAACACAGGTAAGGGGGGCA
-GAAAGGAAAAATGGACCAgcacagtggctcacgcctgtaatcccagcact
-tttggaggccgaggcgggaggatcacttgagcccaggatcccaggagttc
-cagaccagccgagcaacaaagtaagacccggtttctagcaaaaatacaat
-aattaggtgggcgtggtggtgcgtgcatgtagtttcagctacttgggagg
-ctgaagcaggaggatcacctgagcctgaaaggccaacgctgcagtgagct
-gtgattgtgccactccactccagcctgggcgacagtgagaccccgtctca
-ataaaggaaaaaaacaaaagaaTCACACATTTGCCACCCTTCTCATGGTC
-CGCAGCAGAAGTCAGAGGCCATAAGGTAACGAGTCCCACCCACGGGGAGA
-TGGGGACCATGTCCAGGAACCGGAAATCCAGCCCCAGAGCCCCACATCAG
-CACAAAAGGCAGCATTCACAGATAAGCAAGTTTCAGAGCAGGGACCACCT
-GCTCACCTCATCGGAAGAAAATGCTGAAGAAAGGGCAAGAAGCACTGTCT
-CCTCCCCACAGAGGCACAGAATCCAGTTCATTTCTCGCCTGTCTTTCCCG
-AAGCACACACAAAGTCACGTGCATATATAAAGCCAGGTGCCCCCTTTTCA
-CAAATGAAAAACaacagtgacatattacatacaatatgctgtgctttgct
-ctttttacttaacattcaacacaaagacatttatatagcagtgtatgaaa
-agctttctagctatgttctacagctgtgtggagttcagtagcttgaaagc
-accataatttatataatcagtcccctattggtggacatttgggttgtttc
-tagtaattaacttttactaatcatgctgcagtgaacatccttttttctat
-gttatttcttatatgtgagtagatctgtaagctaaataaatacaaatgca
-attgctCACCAAAATGGAAATTATCATAATGATCTAGATAGAAGATATGT
-TAAACAAACTCAGCAACATCTAGAAGGTTGAGGGCAGGAGGAAGGAAGAA
-GTAAAAAAGTGTCTGAAAGGTCTCATTAGTGGGAGGAGGAGAGTCGTGGA
-GGGAAACACAAGCACGTAAATGTCCCACCCCACAGGGACAAGGGGACAAG
-GACATACTGGAGAGGCGAAAGTTAGCAACGTGCTTCCAATCAATAGCAAA
-AAACAATAACAAAATCCCCTGAAAGGGAACATAAATTCTAAGGGAAGAAA
-TGGCAATTGAGTTTTCAAGTAAAAATGTAACTATTGGGAAAATTATAGTA
-GACAGACAATAATTTGATCAAACCTGCAAAAACAAGTCAGTAAAATGAAT
-AATAAGGGTAACAAATGCAGAAAACAATAGAATCAAAGATGTCAGTCATC
-GCAGTAATGCGAATGGACAGTCTTCTCCTGGGACCGAGCACGACTCGCAG
-TTTTGATGAGAAGCTACATGGAGCACTGGAGACACAGAAGCAAAGCAAGC
-TTATGAGAAAGTGCAGAAAACAAAGGAAGGGAACGGGCTTAGAAAATGAA
-AAGAGAAAGTATCAGCAGCAATAGAACACATCGGAGAAGTTTGCTGATGG
-AAATGCTGGTAggctgggcacggtggctcaggcctataatcccagcaatt
-tgggaggccgaggtaggcagatctcctgaggtcaggagttcgagaccagc
-ctggccaacatggtgaaactgtctctactaaagatacaaaaattagctgg
-gcatggtggcgtgtgcctgtaatcccagctactcgggaggctgtcaggag
-aatcacataaactcgggaggtggttgcagtgagctgagatcacgccattg
-cacggaaggaaggaaggaaggaaggaaggaaggaaggaaggaaggaagga
-aggaaggaaggggaaaaaaaagaaagaaagaaagagaaagaaaggaaagg
-aaagagagagaagggagggaagggagggaagggaaggaagggaggaaAAA
-TGAAACACTGGTAAATTAGAAATAAACAGAACATAGTTAATATGCAAAAC
-TTACTAAACAAAAGCTATAAGAGAGCAAGACGGTGCATAATACTAGAAGG
-TCCGTGTCATGATGAGGTGATGACCTCCACACTCTGCATCCAAAGCTCCG
-CTGTTGGCACCATGATGACCAACGAAGGGTCCAGACCTGCACGGCCTCTC
-TGTGGACCAGCTCCAGCAGGAGCAGAGTCTCCCTGGAAGCCGGGGAGTCA
-CCAACAGGTCCCTGCATGAACCTCTTTGTCTGCGTCCCTCTAACAGCGGC
-AGTTCCCCGCCATGGGCTTCTATAAGGATCTCACGAGCCACTCTGTAAGG
-CACATAGCGCAGGACACTTGTGAGCTATGAGAAATGCAAGGGGCCTTTCT
-AAAACTCCTATTGCAGGGAGACTTCCCTGTACCCACTTTATTGTCCTGCT
-GATCTGGTGCATGATGAAAACGACAGTAATAGAGACACAGATAAGTCTCA
-TTAAACAACCTCTAACCTTGATCAAATAGATTTAGGAGACAGGAACAGGC
-TTCACACTAACACGCTAAGTGGTTTGCACCTTAACATCCTTCAAAAAGAA
-ACAGCAAGTCTATTTGCAAAAACTATCGACAAAAATTGGTTATGTGCTTG
-CCTGCGAATAAAATCTTTTAAAACAATTAAAAATCAGACTTGAAACTTTG
-CTGGTCATGTTATCTGATCACAAaacaacaaaagtagaaataataatgag
-atgactgaagcgtctgacaaatcagaaattcactttataaatcatccttg
-gatcacagagttaataaagaaacaattgataaagtatctggaaagctttg
-aaaaggagagtattttgtgtccaaatgaattgcatacggaaaaagctcta
-ttaaagaaaatgcattaatttaaggtggcttcattattttagaaagaaaa
-caaagataaaggaatttagtactctgctaaacattaggaaaatgacaaaa
-tgaattcaaaaacattagaaggaatgaatttaataaacatgaaagctgaa
-aacaataaaattgaaagcaaaataagtagaaagcatggtttatttcaaat
-ttgattctttgaagttaaacctttgtaagttaattatggggaggggagaa
-tgaggaatgagaatgggaaacaattacatataagggaaaaataaagataa
-ttataagctaattatatatctaactatggcaacatatttggtatttagaa
-tgaaaggacatttcttagaagtatttttttaagtttaaaaaatatatcat
-aaaagaagtgaaaaacttgaataggtcattcccataagaaatattagaaa
-tctgattcaagatctaccactagaaaaaaaaatcaccataattcggtgca
-ttcagactgaattttatcttttatgttaaggtaaaaacaagttaatctgt
-cacttaaaatattccagaacatagaaagttttttataaaaacagctctct
-tttgaatattatatagttagtatagctttagaagcaaaattgaataaaga
-caaaaaaatgattaaaactaccaatacttacgagtttaaatgtaaaactc
-TATTTGAAATGTATGTCcccagcattttgggaggccgaggcgagcggatc
-acgaggtcaggagtttgagaccagcctgaccaacatggtgaaaccccatg
-tctactaaaaatacaaaaattagcccagtgtgggggcaggcgcctgtaat
-cccagctacttgggaggctgaggcaggagaatggcgtgaacccgggaggc
-agagcttgcagtgagccaagatcacgccactacactccagcctgggcgac
-agagcgagactccgtctcaaaaaaaaaaaaaaaaagaTTGGAGTCAAGGG
-TGGAAACCAGAGAAAGACTGCTTCATGATGCATTCTGGGAGAGAAACAGA
-AGCTACTGCAGGAAAGGCACAAGACCCTTCCAGAATTATTAGCCTCTGGT
-TTCTCCATGTTACAAAAGCCTGGCCACCTGCAAGCAATGATCCATCATAG
-CTTGGGGAAGATGATAAAACATACTTTATCCCCCAAGAAAAGAACAAGGA
-AACATCCAGGGCACAGATTATTAGAGACCTCTCATTGCTGGATGAGAGGT
-AGGATCATGAAAAGCCGACATTGAAGGTGGAACAAGAACTTTTCCTCAAA
-GAACTGATGAGAAGGTTGATGACAGATGGCTGCATTTTTGAGACCCGTAT
-GTTGTCCTGTGGTTGATGGGAGGAGATGATCCCATAAAAGTGGACTATTT
-AAAATTGTCACAATGGTGGGGCCATAGAACAGCACAATAAAGGTGATGGC
-CCTTAATGATTGGTAGTAAGTGATGTCACCCCAAGCATCAGTAGCAAAGC
-CAAAATGGCAATCTGCTTACCACTGGGGATCACTAATAAGCCACAGTCTT
-CCTAGGAATGACAGAGATGGGCTGTCTGCTTGTTGCTCAATTTATGTGAC
-ACACACAAATTGAGATCTCACGAGCAGACAGATAATGTTGGCCTCTGTAA
-TGGGAAATAATGATCCTTCACTGACAGTCTAAATCAGTTTTTTTAGGAAA
-AGTTCTTGTTCCACCCTCAATGTTGGCTTTTCATTCCTGTGTATTCGGGG
-TGAGGGGTGGGGGCTGTATTGCTTGCCTTGCAAGAGAGAGCAATTAGGAG
-ACAagcaatccagcccccaccttcaccctgaatacacaggaatgctagaa
-gtattcgaaacctgagtttacttagggtaaccacagcaatgacatagctg
-aaccccaactcaactgaactcatgactaaatggactcaaacatgacacta
-aaaacttagcaaaataagaggcagaccgtctcctaatgtatcattcactc
-agtcctcttctatactacacaaaacttctgcctttcaacaaaaaggtgag
-acagatgaaaagccatgaagaataaatatacacaccgtcaaaaaacaagg
-aaatcagcagaactgagatgatccagaagatagaactattggacacaaag
-tgtaaataaacaaggatcagtatgttaaaggctttagcagaaaaggtgaa
-aaacatgtatgagcaaatgtttgatttttgcagagacacaaataccgtaa
-gaaagaatttactgtaaatctaaaaatgaaaacacataccagagagaagg
-gatgtctttgagaggttaattggtaaattcaaaaaagtccaggaaacaat
-tagtgaacttggagataggtcagtagaaattattcaaattaaaatcaaga
-gtaataaaaccaaaacagagcattcaagaactctggaacaatatcaaatg
-aagtattattacaataacatacacataattggaatcccagaaagagaaga
-gaaaataacaacatagaagaaatatttgaaggcatgatggataaaaaatt
-tgcaaaattaataaaagacacaaccacaaatccaaaaagctcgccaaact
-ttaagaaggataaatactcaaataaaaaatgtacatatctaaacacctca
-tattcaaactttcagaaccaaatataaacttttgaagccagccagaaaga
-agaaaaagatacactctatacagagaaacaaatataagagtttcaacaga
-tttcttatcagaaaatatgggccacaagaaaattgaatagcatctcaaaa
-ttcaacaggaaaaaaaaacacaaccaaattctatatccagtaaatttacc
-tttgaaaaatgaagaaatacgtatttcccagaataaaagaaaagctgaga
-gaattgctaacaaacctacactacaagaaatgttaaaggaatgtcttcaa
-gcagaatcaatatgttattaggcagatacttctatacaaagaaatgaaag
-tgctggaagtgacaataatgaaaataaatataaatttcttcttttaatca
-ctctaaaaaacaatttactctctaaaacacaaatagtagtaatttattgt
-ttattcatgtaaaagtgaaatgtatggccaccatagcagaaagaaatgag
-aagagcaaatctggatatacacagtaaggttcttaactacatgtgaagag
-gtataattttatttgaaggtggactgtggttaactaaagacatatattgt
-aaataatacaatcactaatgttgtctatagatataaatactaagccaata
-gtagagttaaaattttataataaaaacagtctctcaagagaaggcagaaa
-aaattttaaaaagaataaccaaagatgaaacaagtaaaaagcaactaaca
-aagctgttgatttaataccatgataggaatacatgtattaaatataagca
-atgcagacataccaattaaaagacagagactgtcaagttggatcagaaag
-catgatacaattctatgtttcttacaacaaaaaataaaatttgaaaacat
-agatagatctcaatatgccttttcctgatgatcaatgatatgaaatgtct
-ttctgagtgcctattggccttttgtatgccttccttcgtgaaatgtgtgc
-tcagatccttAACTaatgtctattccactgtcttctggccatcagtgttt
-tctattaaataatcaattctactatttctgctttttgtaaattattacgt
-cttttctgaataccattaatgttttgtttctttgtatggtgtgtctgacg
-gtgtactgaattttactatgatgtgtctaggtggatttttttcatttatt
-gtatctttttgtggcttcatataatttcttaaattttgggctttatttct
-tttatggctttggagtattcttagcctatatgtcatcaaagaatctgtcc
-aaatattttctcttctgtccttctgaaaaaccagttatgcataaataaga
-cttttcattgttccccacgtctcttactttctttctattaattttacatc
-atttttactctgtgatttaatctcaaggttttaaaaatttttaaaactca
-aagctatgttgagtctattaattttttccgtattgtttaatatactatta
-aactactgaattcttagttttctttttttttatttctcagtagtagaatt
-ttcattttgttcttatccatttcagtactctggtaaaattattttaATCT
-AAGAAACTTTAAATATCTAAACCTTTTAATCTAAGAAAACTTAAATATAT
-GAATCCCGGTTGTTAAGTATAAACTCAGTAACTCCAGTATCTTCACCATC
-CCATACACGTGCTCCTGTGTCTTCACTGAGATTTTGCTCACCTGGTGTTA
-GTTTCTTGATGCTTGAACATTTTTTATTGAATTCTACTCATTGTGTATAA
-AATTTACAGAGACTATGTTATCTTATTATTATTTCAGTTTCACTTTATTT
-TTAATCTAGCAGATCTATAAGAATTATTTTTCATCTAGCAGTTAGATAGA
-GCACAGGAAAATGCCCCTGATTCAGTTACCTGAAACAGGTTGGTTCGTTT
-TCAGTTGGCCCTTATCCTAGATGGGCAGCCTTTTTAGAGAGTCTTCAATA
-AAAGCTTGAGACATTTGCCAGATCATTTCCTGCTTGGTGGGCTCTGAAGA
-GAAGGACAGCATAGACTTTAGCTTGTTAGCCATTGTTTTCTGCTTGCTTT
-ATTACTGTGTCACCGCACACATACACAGCTTAGAATTCAGAAAATGAATG
-AAAGGAAGAAAATGTATACAGAACGTTTGACTGTCTTCCTTGTTCCAttt
-tttgttttgttttgtatgtttgaaataggttcttactccattgcccaggc
-tagagtgcagtggtgcaatcctggctcactacagcctcaacctccggggc
-tcaagtgatctttccacctcagcctcctgagtagcagaaactgcaggtag
-gtgccatcatgcccagTCCTTGTTCCATTTATCTGGGTCTCAATCCTTTC
-GATTCCTAACTGCCTAAAAGCCAAGGCAATTATTGTTCCAAATGTTAATA
-TTAAACCATTTTCACtttttaacaacattattgagatataactaaaatat
-cataaaatccaccattgtgcaagtcagtggttttgtgttttcagaattgt
-gcgctcatcacaatcaattttagaacactttcatcacccaaaaagaaaca
-ccatacccgttaacaattatgcctcctgtctactcaaacctttctccaca
-acagtaaacaaccatgaaaatctactttctgtcactatggatttgcatac
-tctggatttgcatattcatggaaacatacaacatgtggtcttttgtaatt
-ggcttctttcacttaaagtaatgttttcaaggttcacccatgatgtagca
-tgtatcagtacttcattgttttattgccaaataacagttcagtctatgga
-tatgccacattttatttattcattcatcacttggtgggcatttgggttgt
-ctccactttggggctattatgaataatgctgccatgaacatttgtgtgca
-agtttttgcatagactttttttttgtttgtgtgtttttgttttgttttgt
-ttgctttggggtaaataccttagcgtggaattgctggggtactatgctta
-accttttgagaaactgcccacctgttttccaaagcagttgcactatttta
-aacttccaccagcactatgagggttctaatttctcgacatccttggctta
-tctgtctttctgattacaacaatcataatgattgtgaggtggtatctcat
-agagggtttgctttacacttttcttgtggctagcaatgtgagcatctttt
-tatgtgtacatcggccattgatataccttcatttgaatgaatgtctattt
-atatccttttcccagttttaattgaattatgtctctgtttaattattgaa
-ttctgtattctttatatattctagacacaagtcccttctcagagatatga
-ctggaaaacattttctcccattgtgtacgtgtcttttcacttacttggtg
-acatcctttagagcacagttttaaattgtgatgaagttcaattaattttt
-gttttgttttgtgcttgtgccttaggtgtcatatctaaaaacatccttgg
-tcagagaaatttacatctatgctttctcctaagaggtttagaatttttgc
-tcttgtattttgttttattatattttagctaattttaatatgatgggagg
-tttgtattcaaatttattttttccatgtggatatacagttgacagcgcca
-tctattgaaaagattattctttttcgccattgaactatcttggcactgtt
-gttgaaaatcattcgatcaccaatatcagtggctatttttaggctcttat
-ttcgttccattgatctttatatctatcttatgccagtaccaagcagaagt
-gattaccggaggtttgtagtaagttttgaaattgcaaagtgtgtgtcctt
-taactttattctttttcaaaatagttttggttattctgggtactttgagt
-agccatacaaattttaggatgagtttgtcatttctgcaaaaaattcagct
-gggatttttgaagcaattgcattgaatctttagatcaaattgaaaggaat
-cgccatcataaaaggagtaaatcttctgatccatgaacatatggaatctt
-tccatttatttaggtgaaaaattactttcaacatgtctttttatttttcc
-tgggtataagctgggtattttcttttttttaaatttatttgtaagtattt
-tatttttgatgctgttgtaaatgaaataattacttaatttcatttttgga
-ttgttcattacaagtatatagaaatttaactgagttttgtatattgatct
-tgtaccctgcaatcttgctaagctcatttcttaatttgaatagtttttta
-atggattccttagaattttctctatacaaaataatgtcatctgcacatag
-aaatagtattcttttaactttccaatctggatgccttttatttcattttt
-attgtcttattttcctggctagaattccaggacaatattaaatagaaatg
-gtgagagtagacgtgcttgtcttgttcctgatcttagggtgaacacgttc
-agtttctcgccattaagtatgatgttagctgtgatttctttgtagaagca
-ctttatcagattgaggaagttctctgctattatgactttgtggcatgttt
-taaccatgcaggggtattgaattctgttaactcaatctgataaatggatg
-ccttttcctgcgtctattgaggtgattgtgtgaatttttttctttttttt
-tttttattgacacgacacattattgcattaattggtttttaaatgttaaa
-ccaactgtgaattgctgggacaaataatgctaggtcttgtcataaaatcc
-ttttttatatattgctggatttgtcttgatagtattttattgtggagttt
-tatatctatattcacaaaagatgttgctccgtagttttcttgtgatgtct
-ggttttggtatcagggtaatactggcctcaaaacgattcgggaagtatct
-tctcacctattttgtggaagggtttgtgaagaattgccattaatttttct
-taaagtgtttggtagaattcaccagtgaaaccatctgggtctaggctttt
-ctgtgtagatagtttttagattactaacacaatttcttcacttgttatag
-gtctattcatattttcttttctttcttcttaagtcagtcaggagtttgtg
-tcttgctctaaatttttccagttcaactaactttactcatttgttgacat
-actgtgtttgtagtattccattatactcctttttatttctgtagggttag
-cagtgatgtcccttctttcagtcctaattttagtaatttgagtcttcttt
-cttttttgcttcatcaatttaacaaacgattagtcaattctgttgctttt
-ttcaaagaaccaacttttggtttcattaattttctcgatttttctattct
-ccgtttcattactttccgctctaatcttcattgtttccttctttctgctt
-gcactggagtaatctgctcttctttttccagtgttttaaaggggggagtt
-tactttattgaggtaagatttttctttcccttgttttaatgcaggctttc
-acagccatggatttccctctaagcactgcttttgcagctcccatgagtct
-ggaatctgcacatgcctttccattcatctccacatctaatttcctttgtg
-atttcttctttgattcactggttattttgagtgtgtaaatatttttcaca
-catgtatggatttccccaatatcttctgttattgttttctaattccactc
-cattatggtaagagaaaatactttgtatagtgctcatcatcttacatagc
-ttatcttaatggcctggtacatagtccatcctgctggtcattccatgtgc
-acatgagaataacgtctcttctaatgtcattgggtggaggttttcctaaa
-ggtctggtaggtctagtggtttgcagtgttttttcaagtctgctatttct
-ttgttgatcatctgcctagttgtcctatacagtattaaaagtcaggtttt
-gaattctccagtgatgattgtttaattatctaactttcctttcaactctg
-tctggttttgcttcaggtattttgggaatctattatgggttttttatatg
-tttataattattatatcttcttgttagattgaccttttgttattataaaa
-tatttctttatctagtaacatttgggggacatctaaagcctattttgact
-aatattaatataaccattactattttcttatggttactctttgcatgata
-atttttttccattcttatactttcatcctatttgtgtatttagatctaaa
-gtctgtcttctgtagacagcataaaattaaatcttctttactaatctagt
-cttgtaatacgtcttttgattgcattgttaatccattcacatttgatgag
-attattgatgcacttggatttacatcttccgttttgcattttgttttctg
-tatgtctgatgttttggattcttctcttccttcttttctgttttctttca
-cactaagtgaatattttctagtttaatgttttaatggtttttcactgtat
-ttttgagttatttcatttatggttactctagtgcttattataaacttcat
-aatttatgtgagtctactttagatttatattaacttaattacattgagct
-atagaaatgttacttctttttagttccattctctcttccccccttcctgt
-gctattatttttgttataAGTTGTGGACCCAACAatctattatacgtatt
-gcttagttttatgtcttttttaaaaagttgaaagaagaaagaagagtaga
-tattgatttatagagtttgttacagaaatcctcttatttaatatttttgc
-attttttcgtttacttggggatgcgagttaccatctagtgtcatttcctg
-ggttcaatacgcatcccccagctctgctccGTGGTTTGGCTCCGCAGGGC
-CTGTCATGCTGGACAAGCCTCTGCTTCTCTGGGTGAGATTTCCTCCTGTG
-CCTCACTCTTTTGAACCATGAGTGGCCGTGAGGTTTGGCCGAACGTCAGG
-TCCACCGAGCTCCTCCTGTGGGATGGGGCGCGTTCCCATCCTGCCTGCAT
-CCCACGCTGCCTCTGACCCTCCTGTGGGATGGGGCGCGTTCCCATCCTGC
-CTGCATCCCACGCTGCCTCTGTCCCTCCTGTGGGATGGGGCGCGTTCCCA
-TCCTGCCTGCATCCCACGCTGCCTCTGTCCCTCCTGTGGGATGGGGCGCG
-TTCCCATCCTGCCTGCATCCCACGCTGCCTCTGTCCCTCCTGTGGGATGG
-GGCGTGTTCCCATCCTGCCCGGACGCTGCCTCTGTCCCAGTGCCATGCTC
-TTCTTCACCCACCAGGGACACAGCACACCCACCCTGGGGCCTGTGGGGAT
-AAAACCCATTGCTTCCCACCATCCACTCAAGCACGGAGCCCGCTCGGTTT
-CTGAGGAGGAGTCTGCCTTTCTGTGTGTTCTCTGGGAAATCCTTTTCAAG
-ATAATTGAACTCTGCCTTTGAAACTCATCCTCTAACGTAGATAGCGGGGC
-AGGGCTGATTACAGAGGACGGAAGCCCAGGAGCCCCAGGGCCTGGCATCA
-GCTGCACCCTCGGCCTCCCCAGGCCCCAGGAAGCCACCCTGCACCTCTGT
-CCCTGTCCTCGGGATGACTGACACCGATACCCCGAGTGGCTCCGGGCAGC
-AGCGCTGGCAGACAAGGCCCGCCTTCCTGCTGTGCTGTGCTGATCATTCC
-ACGACAAGCCCGGTTTCTGCACTTCGGTGTGCTCGCTGGGGATTCGGCGG
-TGGAGGTGTTCCAGGAAGCTGTCCCTCCCGTGGCAAATACTGAGTTATTA
-TCAGCCTTCCATCTGCTGTGGGAAACGGTGGGGCTCCACTCACGGCATTT
-GCATCTCGTCTAAAACGGGAGCATCGCCTGGGAGGCCGGCCCCGCCTGCT
-CCTGAGCTCTGAGGCTGTCTCGTTCGGAGGCGCCAGCTTGGGCTGTGCCA
-CTTCTACCTGGTACCCGTCAGGGAGATGGATGGAGGCGGCCGAGAGTCTC
-CGGGAGCCGGATGGATCGCTGCCCGTGTGTGCATGTGTCCTACTAATTTA
-CAGAGACGCAACTGCCCAAGTTTGCTGCTCAGAAGGTGTCCCTGGTCCAA
-AACACAGCTGTTCTCAGGTCCTGCTTGAAAACAAGAAATAGGACATGTAA
-ATCGGAAGGCTCCGAGTTCTGTCATTTGCATGGAAGAAACATGAGTTAAC
-GTTAGTATTTTGCTTCCAGAAATATACAATAACAGTGATAAACTATCTCC
-TGGGTATGTGATACTTTCGAGGGCAAACCTGGTGACAGGGACAAGAGGCA
-TCAGAAACGTAAACAGGCTCTGGGTCTTTTCTCCTCCCCTCCGGAGCAGA
-GCTCAGCACACGGGAGACACCGAGGGATCTTCCTGTAAGTGGACGAATGA
-GCTCTGCCACTTCCATCCCCAGGGCTGCGTGCAGGTGCAGGTGCAGGGGG
-CAGGGATGGGGGCAGCCCCCGTAGCTAAAGCTGTAGGGACAATCCAGGGG
-CTGCCCTGCCCAGCAGGGCGAAGAGATGAGACGGGACAGTGGCTGGGGGC
-AAATCAGGCGCTGGACCCCCAGCCTCGGGGGCCTGGACTCCATCCGGCAC
-TCACTGAGGGTGGTTGATAGGAAGCAGGGAGTAAAGGGGAAGTTGAGGAC
-AATCATTCTGATATAAATTCTATGCCCGGAGAATGACGCACAGTGCCTGC
-ACAATGCCGTGTAACGTAAAAAGCCCAGAGCACTTTTCAATTCAAATTAA
-GGAGAATCTCCTAACTCCGAGCTCTGCAGATGCCAGTGAGAGGCTGAAGG
-GATCCCAGCCTTGAAGACATGGGCCTGGGGGCTGTTGGTGTCTCTTCTTC
-TCCAGCCTCATGACCTGAATAGGATGCTGATGGCCAGGGAAAGCACCCAA
-GAGAGTTTGGGGAGGGGGATGAGCTCGGGGCCATGGGGCTGTGGGTGAAC
-TGGAAGGGACGGCACAGCCCAGTCCAGGTCAAGGAGGAAGATGTGAGGGA
-GAAGAATCACAGGAACAAGCCTCCTCCGAGACGGGGAGCTCTGCGGGCCA
-CGGGGCCCTCCCTGTGGGCTGGGTGCGGCTGAGCTGGAGTCTGAGGGTCA
-GAGTGTGGGATTCAGGACACTTTTTCTCCCTCGACCTAAGAGAAGGAGCC
-CCAGGGCAGAGGGCAGTGAGCCAGGACTGATGCCCAGGAGACCCCAGCCA
-GCCTGGGGTCCCCACCTCACACCTTGAGATCCGGAGACCCGGGTGGATGT
-GGCATACCCACTTCATGGCTGCAGGATCTGGAGACCTGTGGGGTCAGGCT
-TAACAGGAAGGGAAAAGAGCACAGTCAACCTTGAACCTCCATAAGGAGCA
-TGAATGTGTGAAGTGTGCATGgtgtgtggtgtgtgtgtgatgtgtaatgt
-gtgtgtataagagtggtgtgtgtgtggtatgcgatgtgtgtgtgttgtgt
-gtttttctgtgtgtgtgtgatgtgtggtgtatgtataatgtggtgtgtat
-ataggagtgatgtgtgtggtatgtgatgtgagcatggtgtgtgtagtgta
-tgtgtttctgtgtgtgtgACATGGGGTGTGTGTACAGGAGTGgtgtgtgt
-ggtatgtgatgtgtgtggtgtgtttctgtgtgtgtgacatgtagtgtgta
-caggagtagtgtgtgtggtatgtgatgtgcgcatggtgtgtgtgtgGCAT
-GTGGTCTGCGTGTTTCTCTGTGTGTGGTAGGTGATGTGCGTGGTCAGTGT
-AGAGATCAGTAATCCTCAGCAGCAGCAAACTCAGGCATTCATTCCCCTTG
-CCCTGTGCAGCCCCTAAAGCCTGCAGCCTCGGACAGACTCCCTGGACTCC
-CACGCATTGACTCGCCATTGTCCCTGCCACCCTCCCTCCCCAGTGCAGCT
-GTGAGTGCATCCTGTGGGCCGCCAGCTTTGGCTGTACCCCTTGGGAGACA
-GAATGGAGCACCTGAGGTCACGCACGCAGGCGTTGCCCACGCCGGGAAAG
-GCGTTTCAGGAGAGCATGCCGGCCTCCTGGTGCACAGAACTGCCGTCAGG
-ACATTCCCTGGAGAAGGGAACAGAGGGAGACTTACAGAGGAGCACCCACC
-TCCCATGGCCTGGGCTCTGCCACCCCCTAATTGCTGCCACCAACAGCCAT
-GAAGAACGGTCTGAAGGGCTGACACGGGTTCTGTCCTTGACTCGACTGGA
-CCCACCTGGGGCTCCTGTTCAGCCTGGTGCCAAGCTTGAAGGCGGCCTGT
-CCCTCCAGCAAATGCAGAACAGTGTCTCACCTTGGCAGCTGCTCACGTGC
-TCTCAGGCATCAGCTGTGCACCCCACCTGGCCCTCAGCTCAGTAGGCAGG
-ACTGCCACTGTTCCTCTTCCACACGTGAAAGACTCACAACTCCCCGAGAT
-GAAACAGCTCAGCTTCAGTCCCATGACGGGGACTCCAGGCCCTGCACAAC
-CACCCACGTCCCCACTCTGCTTCCAGGCAGCCTGAGTGCTCCAGAACCTT
-CTGGGTGCTGGGTCCTCCCTCTGAGCTAAGTGGAAAACCAAATCCATTTG
-TCTAAAGAGGTAATTGCAAATTACACTATAAAATGTCAACAGAAAACATA
-TTTGTGTTGGTTTTGTGAACCCTAAAAGGCTGTGACTATTGTTTTTCTAC
-AACCTCACAAACTGCCCCCTCTTGCTGCTCTCTTGAGTGAGGGCCGTATG
-AGGTTTCCGTGGCCCCCTCAGCCCTGAGCAGCTGGGAGACCTGCATGGGT
-GAGCGGTAAAGACCTTCTTGGCAGGTGCCGCACCCAACCTACCTCATACG
-TATCCCACCGATCAGCAACAACCCCATTTCCCTGCACAGACTGAGGTTAG
-ATGAGCCGACAAGTCTGCTCAGCATTTCGGACTCCCAGCACCATCCCAAC
-TCCCCAGCCCCCTGCACAGACAGTGAGGTTAGATGAGCCGACAAGGGTAC
-TCAGCGTTTCGGGCTCCCAGCGCCATGCCGACTCCCCAGCCGCCACTCTC
-TCAAGGCAGTTGTTGTCTGCCAAGTTCGCGGATGTTAACAAAGCTCACAT
-GGTTTGTGGGTAGCCAGGGAAGTGGTCAGGACACCTCAGAGAGTCCCAGC
-AAACTCCCCAGCCTGACTGCACGGCTGCAGCACAGAGCACGTGTGGAGAA
-AGCTCCTGTGTTCCACTCCCATCCTCGGCTGGTCCTCAGGAGCCAGGCCT
-GGCAGGATGGGTCTTCACACCTACTCGCAGAGGAGGGGGCTCACAGATCA
-GGGGCCAGGGCCACATCCCATGCCCACCGCTGGGAGGAATTGCCCGTGAG
-ACTTTCCGAGCACAGGCACCTGCTTCCTGCCACGGTGAACGCCTTGTGGT
-GGGTGGGGCTGTCCTGGCTCTCTGGCgacagaaaggccctacctgcccag
-atttcagccaggctctggaacatcccctgggcctatctgggctcatccct
-ataaaacctgggtttagcaagaacgcgactgagtcagttcagcaagagcc
-cctgccctcgacaccacatcaccctcatgatctgttcaggctcctcattg
-tccaccacacccaggtaatgcctgtcgccctggcccatcctcagcgaaac
-cctgttgggtcagtgtagccagaattcccctgccccgatgtctcctctat
-gtgacttgctgtgccctgcccccaccctgctcccgggctataaactccaa
-cttcccatgctatatttggtgttgagtccaatcttcccccacgtctatcg
-tgatggccctgaataaaatcttcctcattgtgcttcagcaggttctgttg
-cagtattttttctttaaAGCCAGAGCCACCAGGAGACACAGACGTGGTGC
-AGGGGGCCTGCCGTGCTGGCGGTGTGAGCCCAGAAGAGCCCGCTCTGCCA
-CGGGCTCCGCAGTCGGAGAAGAAGCACACACATGTGAAGACAGGTGGGAA
-GCAGGCGGCCCTCCTGGGCAGAAAGGCACAGAATTCAGAAATAAAACACG
-TGCTCTGGAAACTTCTAGAAGACCTATTGGGTCAGCAAGGCCCTCGGGCA
-GCCACTAGTGCCCGGCAGTGAGGCTCTGAGGGGATCAGACCTGAGCCCAG
-ACAGCATCTGATGCTGGACAGTGTTTCTGCTGATGGCCGGATGGCGGACC
-TCAGAAGGAGAGCCTGGAAGATCCCCTGTGCTGAGGCGATGCAGAGAATA
-CGACTCCCAGGCCCTTCTCTCCTCAACTGCCAGCGCCCCACAGGTCACGA
-AGGTTTCCTGGCCTCACAGTGGGTGCTGCAGCCACGTCGCCTGGAAGGTG
-AGGATGCAGTCACCAATCCTGTTATTGCCCCTCTGTGGGAGCTGAGCTGC
-TCACCTGAGACCCTGGATGGGGCTGTAAATCCCAGCTCCTCACACAATAA
-GATTTAATATTTGATGTCAGATTATTAGACTATAATGAATTTGCTGCTTT
-AATATTGATGAATAATCGGTCCTATTAAGGCTATGGGATGAGAATTTTGT
-GCAAAGAGAAAAATCAATTGCTAAATCAATCACACGTAGCCCTGAGTGAG
-GCAGCCGGGTGGCACCGCTGTGGGCCCGAGGGCTCAGCATCCCTCCAGAA
-AGACTGATCTACATGTTCACCTTGGGCCATGAAGTGTGACTTCCTCCTGA
-AGAGAGCTGGAAAAGTGAGGATGCAGCCTAGACACTCGCATGCAGGCACG
-GAGAAACAAGAACCGAACtgcgttcccccaaattcctatggtgaaaccct
-caccccaatgtgatgttgtaggaagtgggcctgcaaggaggaggttcaga
-ccaactgaggtcttgagggcggggccctgatgcaacagggctggtgtctc
-tggaagatgagtaccagggctctcttctctctctctccctctctctccca
-gcctctgtctctgtctctctctctctctctgtccctctctctctctctgc
-catgtgaggacacagtgaaaaagtgctgtctgcaagacaagaagagccct
-caccaggcatcaaacttaagggcacctcgatcttagatttccaggctcca
-gacttgcaagaaaataaatttctgttgtttaagctgcccagcctgtagca
-tttgttatgcagtccaagatgactggtgcaATCATGATAAATCCCTGTGA
-AGTCTGACTCTCACATGATCTTTGGGTTTGGGTTCAAAAGAGGTTTCTGC
-TCCACCAACCCCAATACAGGCTAAGCAAATGCATGAGTTTGAGAAACTTG
-CAAATTAAAATAAGAGAACCCCACATGCAAAAGGAGACAAAGGATGTGAC
-TGTGTCATGACAGAAATCAAAGAAGAGAAAGCAAGAACATTGGGTTCCCT
-CACCTTCCAACGCAGTGACCATGAGGAAGGCATGGACTTGGCCTGAGCCT
-GTTTCCCCAGGTACAAAATCAGAGTGTGTGCAGACATCCTTTCTTCAGAG
-TGTTCATACAACACTGGAATACAATAGCGATGGGAGTGATTTGGTTTGAA
-ATTAAATCTGAAAATTGAAGTCCTGGCCAAATGTCCGGAGGTCTGTCAAG
-CCTGTGACCATTGGGCAGGATGCTCAGGACATTCCTGATGCTTAGAGAAA
-AGCCGCCCAGGCAAGGGTCAGCTCAAAGCTCACTCCCCAGGGGAGGCTGG
-AGGGAAAGGAGGGCACAGGCTATGtgttacaagaaaaacgtggggctgta
-acataccctcaagctgggagggagctgaggggccaaagaatgcctgggac
-aagccctacttggtaaggagatgagttttttaggactcacacaggaggca
-ctcccaggcagtatcaggacagctccagggatctgccccaccactatctc
-taagcggcttttaagctaattttctggctgtttgcctactgtgtacaatg
-agactctttttcttggtaggttcccagaaatgcttcgggatgtttgggtt
-ctcggggacatctgttcctcagctggactgcatggccttggctcactgcc
-tagccttcaaggttcaaggagcaaacatgcactcctaaggaacccagtgg
-ggacccctcaccccacaCCACAGGCTATGATGCTCTTAAGGGTTTTGGGT
-CTGGAGACCTCTATTTCCGTGGCACCTGCATGGGACGTCAGCCCTGTGTG
-ACCCTATTTTCTGTTTCTGAATCTCATCTCAGTGGCCACCACAGACTCCA
-AGGAGCCCCAGGGACACACACGGCCAACCCTGATGACGCAAGGGGCTCCA
-CCTTCTCCCCTCCTCTCAGAGCTCCTCCAGTGTTCAGCTGCAGGAGGAAC
-TCCCAGCCATGTGGGTCAGCACTTGTTGGGCCCTCCACACATCCCTCCTG
-CACATCGCCCTGACCACCAGGGGTTGATGGTGGAGGGGACCCACAGTTGG
-GGGCATCAGAGTGGGGTCACAGGGCCCCCAGCACGGCCCCATCTGTCTTA
-GTGCGTGCATCCCAGGGATGCTTCAAGAGTGTCAGTGGAGCAAATTGGGA
-ACGAGTGCATTCAGGGAGAAGAGGATCTGGTTCTCATTGGACGGCATTCA
-AATCTCATTTCATGTGTGGTTCCTATAAGCCTGTAGACCTTTCTAGAAAG
-TCCATCTCCTGCTCACCCAAGGGTGTGTGGGCCCTGGGGCTCAGGACTAC
-CAGCACGTGGTACATGGTGGGTGTCGAAggttgaaatatgtcccccaaaa
-agagatgctaagtcctagccccaaacacctatgaacatccttcttaggaa
-cgcagtctttgcaggtggttaaggtgaggtgcactgcaggagggcgggcc
-taggccctgaccagtgtccttacaagaagaggagaattcggacacaacac
-ctgaggagaaggccacaggacaatggaggcaagaatggagcgacgtgacc
-acagccatggaaagcctggagcctccagaggctggaaggtcaagggagga
-tctccccagagcctccagagggagcaggatcctgccaacatcttgatttc
-agatttctggcctctggctgagaTAGCCACATAATCTGTGGTGCTTTCTC
-AGGGCAGGCCAGGCCACACCTGCAGTAGTTACCCAGTCATTATCAAGTGA
-ACAATGACCTCTGTGTTCAGAATAATGTAACATGCTTGTTGTCTGTTTTG
-GTAAATTTGAGCTGAGATAGGTGTCTGCTGAGGTGCAAGCCTCCAGGCCT
-TTGGACATGTCTCACTCCCCAATCAATGTCTCACAGGAGTGACAAGACAT
-GAGAAGGCAGCTAAGCTAAtttgcccccaggagacacttggcaatgtcta
-gaggcatttctggtcatcataattgaggaggagttgctgctggatctcag
-ggaggtctcaatgcccctcagcagccccacgtgcacagggcagccctctg
-caTGCAAGAAACAGTGGTCCGTCCTCCTCTAAGAAGGTTGAAAATCACTT
-CTTCAGCTTAACCGGCTCTAACACTTCAAATATGCAAACTCAAGCAAAGC
-AGAAAAGACACACTTGAGTTTCTCGAAAGCACTTAGATGAGTCTTATCCA
-TCAACGCAGGAATGAAGACTGGTTGGACTGATGGGATTGGAGGTGAATGT
-GTCATTAAACACATCTGTTTTAGAGGGACCAGCCTCTCCACTTTTACATG
-ACATAAACCAAGCAGGAGCAAGGCAGAGACGGCTAAAACCACCACAAATA
-CTCCTTTTTCTCCCTCAAACTCTGGCCAACTTCATGCCTGAGCCCCTGAG
-CAGGACTGTGGCCGCATGACCCAAGTCCAGCCAGTGGATCCAGGGCAGAG
-ACGACATGCACCTCTCTGGGGATGGCTCCTGTTGGAGACAGGCAGGAGGA
-CCCAGGCCCTGGGAAGTGCCCCTTTTACACTAGGAAGAGAGACAGAAATG
-CAGTCCTACAGGAAGGCTGGGGCTCCAGCTTTTCTATGAGGGCCTCAGGT
-GCCCATGCGATGCCATCTTCCCCTCCCAGATTACgtcaaattaaacaaat
-ccaaatggaaaaggagaaactttatgccaaaaggctgaacactcagaatc
-tgcaagcatctcaaaatcatacagaaaaggcctgttcccctataggcagg
-ggtgagcagggcttagcagacacccttagggcagattgggtgagcaaggt
-tcatgcgcagacagcaagaccggtgcagctggacagcaagtgttctttct
-gaggctgactggttctctgctggttctccttggctgcagtggactgaatg
-tttgtgtccccccagaatgtctgtgttgaaaccccagcccccagatgatg
-gttttacaaggcgggcctttggatggtgatgaagccatggagcagaagtt
-tcattaatggagttagtgctgccataaaggaggcctcggagagcttctgc
-cacctgaggacacagcaggaaggcacttctctaaaccaggaagcaggtcc
-tcaccagcaccggggctgccgacgccttgatcttggacttccatccctta
-gaactgtgagaaataaactcctgccatttgtaagttactcagtccatggg
-actttgttccagcagccccagctgactgagaccctgggaaaagcagacat
-tggacactctgcactttagtgcttgctcaggctcaggcatgagccagcat
-ctaggtgcctctgtggaggagagaagccAGGTCAGAGGGGAAGGCATGGA
-CCGTGGGTAACACTTGGCCAGTCTGGTCAGGTATGTCTCCTGCTGCAAGA
-CCAAGGCCATCCCGAGACCAGCAGGCACCCTGGGGGAAGGGCAGTGTGGG
-ATCTGGCTCAGGATCCCCTGGGCATGGACAAGACTTGGGGACTCCTAGGG
-GCAGCGATCTGGAGCCATGAACAGCCTGCCCTGGCCATGAGCCCTTGACT
-CAACTAAAGAAAGATGGATTTACATACTTGACTTAAACCAAGTAAAACTA
-CTTGGGAGAAAAAACAACATCTAAAGGGAAGAGAATGAGGACCCCTGGCC
-TCATTTACACAGTCTGTGTGTCAGACGCGTCGCTGTGTATTCCGGTCAGA
-ACAGCCTTTAGGTCAGGCTTTACGGAGACCATGGACACGCGGCCTCACGC
-ATTGGAGATCTTCTGGGGTCACAGCTGGGTCATTCCACAGGACAATCTCG
-GTGTCCTGAGAAGCATCGCTGCTGTCAAGCAGCCAGAGACGTAAACAAAG
-CTATTTCCACCCATCGTGGGAACGAGTTATCCGTTCTAATCAGAGTCGCC
-AATTTTGAGGTTACCCTTCACTGTCCACTGGTCACCTAACGGCTGTCAGC
-CCTTGGGCCTCACTGGGTTGGTCCTAATTACCCGGCTCAGCTTCCTGAAG
-AAACAGCGGTGACTGGCGGCGGGCGGGGTGGACGAGTCTTCATTCTAGGA
-GTCGGCTGATTTGACCACTAATACATTGAAACACCAATCTAATCAGAGAG
-CCAATTAGTCAGCCTGGAGGAAGTGTGGCAGCTAAAATCAACACGTTTGC
-TGTAACTTGCTGGTGTAATGACCTGAAAGCAGCCAGTTATTGCTACTGAG
-TAGAATGCATGGACATCTGGTCTCCTGTGTTTAGAGAGGCCTGAACCTCA
-CCCCAAAACCAAACCCAGGTCAAACATCAGGACCTCACATCTGCAAAGCC
-TTGTTGCTGAGTCAGCAGGTCTCCAACAAATGTGCTTGAATGCAGTCCTT
-TCCAACttctctgtccaggtttggataatgaatatttcgtattttgtgtt
-tttaggccatatggttcctaccaaaatgactccactctgctgtggcagAG
-TGCACGagtttcctattgtctcacacactgccacgaagttagtggtttac
-tacacacgcactcatggcctcacagcttctgtgggttggatccaggcatg
-gctccactgcaatcgaggtgctgcctgcggctgtgttctcatctggacac
-ttgaccgaggaaggacctgcctctcagctccctcccgtgctggaataatt
-catttctctgtggccacaggactgaggacccgggtcctgctgtcctgctg
-ctccaagtcacacacagctcctggaggccatctgcatttcccagccatgc
-agcctgtgcacggcagccactgtcttccatggcagcaagggcgaccgcag
-aggagacgtcctatccaatggaaaaggcacaagagtgatgtcctcacctg
-ctccacattctgtggctgagagggaagtcccaggtcccacaggaaaggag
-acagcacatgggggcaggagaaccgaaggtggggtgcatggagcccTCAA
-aacacaaagacagccacagatggcacagacacaatagagcacagctgtgt
-tccagcaaacattcattttcacaagcgggctatgggtggagtctggtgcc
-caggctgtagctggctgacccctgATATGGATCTTATCTTTACAAATAGA
-ACTAACAATTACGAGAATCAGCTCATTTTATTTTATGTTTCACAAAATGT
-GGGTTATGATGATAGCCATAAGCTTGTGTCATTATTAGACTAGACGAAGA
-AAAAATCAAATGTTAAGTCCTGTTCTTAACCAATTGTAAGAAAGACCATA
-AGATTCCCTGGCTGTCCCCTGCAATGTTTTTGATCCTGTCACAAAGTCTT
-CTCTGCAAACATGTCTTCCAGGGCCAAAGCCCATCCTGTGAAGCTGGGGT
-TGCTCTGCCCAGCCCCAGCACCGCCATGCGAGACTCTGCTGTCCCTGGAG
-GCCTCCTGGACCTACGACAGGGCCTCGTATCACTCCTTCAACTTCATGGG
-ATCCTCTTTCCACAATCTGCAATTTCACATTTCACAGATGCCAGTCCGCG
-CCTCATTGTCAAGCCGGATGTTCACAACTCACCATAATTCCAGAGGCTGA
-GGGACAGAGAAGAGGCTGCAGCAGGTGGGATCCAGGCACTCCCACCAAGG
-AAGGGCCAGCGCTGGAGAGGAGCCTACATGAGGAAGGAACTGATGGTCCA
-TCAGAGAGACGCTCATGGTACGAGGAGCTTTGATTTCCTGAGCAACCTCA
-GAGCTGGGGGCAAGGGAGGAGGCAGGATTTCAATAAGGAATATTTGGtgt
-cttagtctaaccaggctcctggaacaaagcaccatacgctgggggattat
-aaaccacagacatttattcctcacagtcctgaaggctggaagtccaggat
-caagtcgccagcggCCGCTCTGTAGCAATAATTCATCGCTTGGGTCCAGC
-GTTAGAAGCAGGTCTCGGCTCTGGTGCTCAGAAGGGACAGCGTGTGCGGG
-AAGCTTTGCTGCCCTGGACGCGGCGCCACCACCCAACCCCGGCCCCTGCG
-GTCCCAGAGTATCAGCCACGACTTGGTGCCTCCTGCCTGGGTTTCTCTGT
-GCACTTTCAGGCATGTTGAAGTCAGACCATTCACAGTTTTGCCGCAGGTC
-GACACGGAGTGCCCCGTGGCTTAGCAGGTGTGAGCTCTCTCTGGGGCTGG
-CCCGCTGGAGACACAGGCTGCGATGGAGAAGAAATGAAGTCCCAACCCCT
-GGCCTGCGTCAGGTTGAGAACCTCCCACTTTCTCCGGCCGTTCTCCCTCC
-CTAGCAGCCTCCTAAGGGGACCGCACTTGCTCAGGTATCTCCCGGGGCCG
-TTTTCCTGTTCATCTCAGACTTGTCAAAATGTTCACGCAGCTTCCAAAGC
-CTTTTACAGGCTGTCAAATATGTAACTGGATTTGAGTCCCACTGTTTAGC
-TAATGGCTCCTCAGCCTCTCCCATTCCCTGGGGATCTTTTTTATTTAACT
-TCTGAAATAATAGGTGGAATTTGAATCCTTTCAAGTGACACGTTGTATTT
-TCTCCTCTAATTATCCTGGAGGAAAGTGAAGTGGTTTTTGGGAGCCCGGA
-TGGGGGCATGGGCAGGAGGGACCCCGCCTGGAGGTGAGTGCCGGCCCCAG
-AGCCTCACGTGGCTCTGAACGATGGAATCGCAGTCACTGAGTCCAGGTGC
-TGTGACCGTGCACGTCGGTGCCAGACACACGAGAGGCATCTCGGGAGGGG
-CTGTCGTGCAACTGTTCACGATGGTTGCATCCttttttttttttttgaga
-cggagtctcgttctgtcgcccaggctggagtgcagtggcgcgacctcggc
-tcactgcaagctctgcctcccgggttcaagccattctcctgcctcagcct
-cccgagtggctgggactacaggcatccCTAATAGAAGCGGAAACCTCTCC
-AGACCAACTTTGCATGCAGACAAGTGCTCTCTGACCAGAGCTGGTTTATC
-AAAAGGGACTTCCTCCCTCACTCAGGAAAGGGGGCTTTGGCTGGGAAGGG
-GTTTTGTTCAGAGAACTGCTAGGCTGTGCTCATGCCATGGAAGAGCCTCC
-TCCCCGGCCGAGGAAACCCCAGGCCCAGACCCTGTGCCCCCGCCCCCCGC
-CCTCCGCCACCTCACCTGCGGAGCAGGCTCAGGACCCCTGAGATCTGGAG
-CGAGGTGGGGCTGCAGAATGGCAGGTCCCTGGCCTGCCTTTCTAGGACAA
-AGGTTGCCATGGAAACTCTACAGGTTTCATGGAGGATTCCCCAGCTGTTT
-AGTTTTAAGCTGGGAATCACCAGTAGATACCGAAGTAAAATAACCTTCTA
-CTTAAAAAGGGCTCTGCTGCCATTCACAACTCAGGGAACATTCTTTGAAA
-GGCATGCCTTGGGGAAAAGCTGAGACGGGAACCCTTCAACGTGTTAATTC
-AGTCTGAGAGTGAGACCTTGGGGAAGGAAGCAGTGAGTCTCCCGTGGAGA
-AGCTGCTGTGTCTACATTCAGAGCTGAGCAGACAAGGCCAGCACTTTCCC
-CAGGATCCTCCCGTGCAGGCCCCCACAGCCCCCACCACCGGAACGTGTGC
-TGCAGCCTTTGGGGGTGCTCGGGTGACCACCCGGCTTCTGTGCCACAAAT
-GCCCATGCCAGGAAAATTCGCTGAAACGTGAGACTTCACACTGACCACAG
-CAACTTTGTATCCAACAAGGTCTGTGACGATTCATTTACTCTTCTGCCAA
-AGATTTGCTGAGGACCAGGAATGGCAGGAACTCGAAGAGGCCCTGCGGGA
-CACACACTCCCTGCTGGAATCATGGTAGGGGGATCGGGGGAGGGTGCCCA
-GTGCCCACCACCAATCTAGAAGGCCCAGGAAGTGGGGATGGGAGAGCAGG
-TTCCATGAAGGTGTGGGGTCCAGGATGCAGGAGTGAGGTGTGGCCCACGG
-TGAGTCCCGAATGTCCTGTGGGGACCGATGGGAGCAGGGGCCTCGGCCAG
-ATGAGATGACCTTCGGTCAGTTTGCCAGGGCAGCCTCAGTGGTCATCTAT
-TGCCTTGTTCTCAGAAGTGGCCTAGTTTagctgggtgcggtggctcatgc
-ctgtaatcccagcactttgggaggctgaggtgggcggatcatctgaggtc
-aggagtttgagagcagcctggacaacatggtgaaaccccgtctctactaa
-aaatataaaaaaattagccaggtgcatgtaatcccagctacttagaagtc
-tgaggcaggagaatcgctcgaacccaggaggcggaggttgcagtgagccg
-agatcacaccactgccctccagcctgggcaagagaggaaaaaaaaaaaga
-agaagaagaagaagaaGTGGTCTAGTTTGGATAAGGAAGTATGCCATCGC
-CTTGGTCATAGGGAATGAGTGCTGGCAGTCTATAATTATCCAGATAATTC
-ATTCTTCCAAAAGAATGAATTATTTACATACAAATAATAACAGAATTTAA
-CAATTTAAAGCTGGATTTTTTTTTCACCTTAATAGTGGCCGGAGCCAAAT
-TTTAACAGTAGAATTCTAAGATGAAATAGGCTTTTTATTCAACCACTACC
-CCATGTTTTTTTACAtttctaagccagctttacttaggtgaggtggacat
-gcaataacatatatttaaagcatacactttcctaagcactgacgtatatg
-cagacctgagacaccatccccataatccagagaatgaatctacccattgc
-ccccaaaagctcctgtgctccctcctcccagactgcctgctcctcccacg
-tcccagctgctctccatcactgcacgttagtgtacgtttaccagaatctt
-atataaatggaatcgtgcaacatatcatctcttttgtggggatgcttcca
-cacggctttgttatcttgggattcacccatgttgttacattatcaatgta
-atgatcaattatcaaaaaattatcaatgctccattcattatcctgctgaa
-tagtcatccattatgtggattgactaaagtttatgtagccattcatctgt
-tgatggcctttaggttgtttgcagtttgagctacgacaataaaactatta
-tgtctattcatattcaagtcttttcatggagctatgatgtcaggcttttg
-tttgtttgtttgttttttgagatagagtctcactctgttgtctaggatgg
-agtgcagtggcacgatctcagctcactgcaaactccgcctcctggattca
-agtgattctccctgcctcagcctgcctagtagctgggattacagatgccc
-gccaccatgcctggctgatttttgtatttttagtagagacaggatttcac
-tatgttgaccaggctggtctcgaactcatgacctcaagtgatccacccac
-cccagcctcccaaagtgctggactacaggcataagccaccgtttccggct
-gatgtcgtttcttgtaagtaattccctaggaaccgagtatctggacccta
-gagtaggtatgcatttaacttgtaagtaatggccagttgtccagtcgatg
-tacatttatcaatcttatatcctgccaccctttgaaactcacttatcact
-ttactcattcgttctagaagcttttttgtacattctgtcagattttctac
-ttagatgatcatgttgtctgtgaatgaagacagtttgcttccttttaaca
-aatcacatgccttttgtttctttttcttttattattacgctggctgaaat
-ctttaatacaaagttcagtcaaagtggtgagaacagaaaccctctgtttt
-tcctcatcttgggggaaagggactcactccttcaccttgcgccttggtgt
-tagatgtcggcatttcaaggcaggcccatcgggttgagcgtgttcctctc
-ggcagctgcctcactgaggcttcgtatcagaaaatggtcttgggtttcat
-cgagtatctctctgcatctgttgagatgatcctacggttttaattttttg
-gtttggcaatgtggtgaattatattgattgattttGAGATgccatctcag
-ctcactgcaacctccgcctcctgggttcataccattctcctgcctcagcc
-tcctgagtagagtagctgggactacaggcacccgccaccacgcccggcta
-atgtttttgtatttttagtagagacggggtttcaccgtgttagccaggat
-ggtctcgatctcctaacctcgtgacccgcccaccttggcctcccaaagtg
-ctgggattacaggtgtgagccaccacgcctggccttacttcttttttaaa
-tgtttggaaggattggagaattcaccagcaaagccatttgggccttgggt
-tttctttgtgggaaagtttaaagtttggtttttgtttttgtttttgtttt
-ccttatctgaaatgtctttactagctatagggatattcatattacctatg
-tcttctcgagtgagttttggtatgttgtgtttgtgaagaatttttcaatt
-tcctctgagttgttgaatttattgccataaagttgttcatgatattgcct
-cattatccctttcatatttggagcacctgcaatgattcctcttccaactc
-tcatagcagtaatttatatcttttctctttttttcctgagctgtgtggct
-agaggcttatcaattgcatttgccttcacaaagaatgaactttttgtttc
-agttattttctcaactgtttttctgttttcatctatttcagtgatttcca
-ctctgatctttattgttttttttcccctctttactttttctaattttgga
-aggtggaaatgaagatcgttgatttgagatttttttttctaatattggcc
-tttagagatataaattctcccctaattacccttttgataacatctcatac
-atgatgatatattttaatgtttgtattttagttctttttttttgtatttc
-atattcagtccaaaatacttcttaagatatcttttgatttattctttgat
-ccatgggtcatttagaaatgttacttagtttccaaacattgggagattgt
-ctaaagatcattctgttattaatttctaatttaactccattgtggtaaga
-acacatactttataagacttgaaatccttttaaacttattgagacttgtt
-ttataaccaaaaatatggtcttccttggttaatattccatgtggacttaa
-aagtcatgtgtattctgctgttatttggtggagcattccataaatttcca
-ttaggtcaagttggttgatagtgttgcttaaattttctgtatctttactg
-attttctgtcgactttttctatatattattgaaacaggcatatttaaatc
-tctaattacaactgcggatttttctgttcctcccagcagttctatcagtc
-tttgcttcatgaattttgaagctcagttctgttgttacgtgcataaatgt
-ttaaaagtgttatgtcctcttgatgcaataacccttttctcattacaaaa
-tggccttttaatatcctttactgggagtccaaaattgtgccttttcagga
-taatttcagttgattgatttttctcctcattatggatcctgttttcctgc
-atgcctggtaattttttactggatgccagatattgtaaattgtaccttgt
-tgggtgatggatattttcatgctcctaaatatattgagctttgggccgag
-cacagtggctcatgcctgtaatcccagcactttgggaggctgaggtggat
-ggatcacctgaggtcaggagttcaagaccagtctggccaccatagccaaa
-ccccatctctactaaaaatacaaaaaaaaaaattagccaggtgtggtggg
-cgcctgtaatcccagctatttaggaggctgaggcatgagaatcacttgaa
-cccaggaggtggaggttgcagtgagccaagattgtgcctttgcactccag
-cctgggcaacagagtgagactctgtatatatagatatatacacacacacc
-catatatgtatgtatatatttgagctttgttttgggatgtagttaagtta
-cacagaaacaggttcatcttcttggagcttgcttttaggatttgttcagc
-agaaccgaagcaatgctcagtctatttccatgacaggggcgggcccttct
-gtgcaccctgctggatgcccacaagtcctagttttgttggttggttggtc
-tgtctgtggggagcaggcatcattcatagctcggtgtgagcacagacgtg
-tcctgcccagcagttttcttcctggcttcaggcactttcctcacgtgcct
-atgctgataaacactcaggaatatttgagggagaccctctgcagacccgt
-gtcattctttctctcggaaggcctcccctccatcgcaccccaagctttga
-acgctgtctgctttgatctccctaaactctcagtaatgtctcctccactc
-cggatgtccactggccctgtctgtgtactgcctctaggtaataatcagga
-cagtccctgggttcacctaccctgctttcccctgctcaggaatcactgtc
-ttttgttatcttaataacagtctcagaataacacattgtttcatatagtt
-tgcccattttgggttgggttttatatattttacccatttgggtttgtttc
-ctgtggagagtatatctgggctcttttactccattttttatgaaagcaga
-aatcCTTCTCCAGACACCTTTAGTGGCTCTCCATGGCTTATCAGAGCTAc
-tttttctccttccttttcttctccttcttcttcttctttttttttttttt
-ttttttttttgactgagtctcactctgtcgcccaggctggagtgcagtgg
-cacgatctcagctcactgcaatctcagcctcccgagttcaagtgattctc
-ctgcctcagcctcccaagtagctgggattacaggtgcccacaaccatgcc
-cagctaatttttgtatttctagtagagatggagttttgccatattggcag
-ggcgggctggtctcgaactcttgacctcaggtggtctgcccacctcagcc
-tcccaacgtgctgggattacaggcatgtaatcccagcctccttctttttc
-ttcttcttcttctcttcctcctccctcttcttcatattcttcttctAGCA
-TTAAGATAGAGTCCTGTTCTTATCTTCTTTGTGTGTAACTTATTTAACGG
-CTCTTCCCAATCCTGAGTGGTTCTTCCTCCTGGCTTCTGTCTGTTATTTT
-CACTGGGAGGCCGGCCTGTGCCTTGTCCAACCTTCTTGCCAGGGTGAGGT
-CACGTCCTGTCTCCTCCGCGTGTCTCCCAGTGCCAATGCCCATCACACAG
-AGTCCTCCCCTGGCTCCCCAGCCTGAGCATGGCAGAGCACACCCAGGGCC
-CCTGAGCTGtgccgtgtcctattgagctccactctactgtgctttgcagt
-tgttgcctatttgacaaattgaaggttggtgggaaccctgtgtcgagcaa
-gcctattggtgccagttttccaccagcacgtactcactttgcatctctgt
-cccattctggtgattatcccaacacagggtctcactctgttcctcaggct
-ggagtgtagtgggtgcaatcacgctcgctgcagcctcagtctcccagacc
-caagcgatcctcccacctcagcctcccaaggagctaagattacaggggcc
-accatcacacccagttaattttttaaaaaatttgtagaaatgagatctct
-attgcctaaattggtctcaaactcttgggctcaagtgatcctcctgtctt
-agcctcccaaagtgctgggattacaggcatgaaccaccacatctggtctt
-attattacattttttatcgcagtcagtgatcttggatattattagtgtaa
-ctgttttgggacaccatgtactatgaccacataagacggtgaacttaatt
-gataaatgtgtgtgttttgactgctccacagaccagccattcccacacct
-ctctccctgtcctcttctcttccctgagatgcagcagtattggtgtgagg
-cccatgaataaccccaccatggcctctaagtgttcaagtgaaaggaagag
-tcacacatctctcactttaaatcaaaagctagaaatgattaagctgagtg
-aggaaggaacgttgaaagccagggtagaccaaaaactcttatgccaaacg
-gttatccacattgtgaatgtgaagggaaacttcttgaaatacgcctccct
-gaactcacgaatgataagaaagcaaaacagcgttattgtttgagtggtct
-ggagagaagatcaaaccaaccacaacattccctgaagccaaagcctaatc
-cagagcaagactctgattctcttcaattccatgaaggctgagagagggag
-aaagctgtcgaagaaaagttggaagtgaccagaggtttgtttgtgaggtt
-taaggaaagaatccatctccagagcataagtgcaaggtgaagcagcaggt
-gctgatggagaagctgcagcaagttccccagaagatccagccaagatcct
-tgatgaaggtgactccactgaacaaaagatttttattgcaggtgtaacag
-cctcctactggaagaagaggccgcctgagactttcacagcaagagagaaa
-aagtcatgcctcgcctcaaagcttcaaaggacaggctggctctcttgtta
-ggggctaatgcagctggtgattttaaggtgaagccgatgttcacctacca
-ttctgaaaatcctaggtcctaagaattatgcagtagctgctcttcctgtg
-ctctatggatggaagaacaaagccagaatggcagcatgtctgtttacagc
-atgatttatggaatattttaaacccacagttgagatctactgctcagaaa
-aaggtttctttaaaactgtactgctcaagccgggcacggtggctcaagcc
-tgtaatctcaacactttgggaggccgaggcaagtggatcacctgaggtca
-ggagtttgagaccagcctggcacgcatctgtagtcccagctactcaggaa
-gatgaggcaggagaatcgcttgaacctaggaggtggaggttgcagtgagc
-tgagattgcaccactgcactccagcctgggcagcagactgagactctgtc
-tcaaaaaaaaaCACCCCAAAACTAAAAACTGtactgctcatggacaatgc
-gcctggccacccaggagctctgatggagacgtacaaggagatgaatgttt
-tcatgcctgttgacacaacatccattctgcagcccatagatgaaggagta
-attttgactttcaagccctattatttaagaaatacatgttgtaaagttat
-aggtgccatagaaagtgattcctctgatggatctgggcaaagtccattga
-aaaacttctgcgtagggttcaccattctagatgccattaagaacatttgt
-gattcgggggcagaagtcaaaatatcaacatgaacattagtttggaagaa
-gttgattccaaccctcagggatagctttgaggggttcaagacttccgtgg
-aggacgtcactgcagacatggtggaaacagcaagagaactagaattggaa
-gtggagcctgaagagggactgaattgctgcagtctcaggataatccttga
-atgaatgagaagttgttttttatggatgagcagagaaagtggtctcttga
-gttggaatccactcctggtgaagacgatgtaaacatcgttgaaatgacag
-caaaggatttagagtatttcacaaacccagctgacaacgcagctacagaa
-atcgacaggactgacttcagttttgaaagaagttccactgcgggtaaaag
-gctatcaaacagcattgcccaccacagagaactctttcatgaaaggaaca
-atccatcgatgcagcaaacttcattgttgtcttattttaagaaactactg
-gccaggcgcagtggctcatgcctgtaatcccagcactttgggcatctgag
-gcgggcggatcacctgaggtcaggagttcgagaccagcctgaccaatatg
-atgaaaccccgtttctactaaaaatacaaaaattagctgggtgtgctggc
-atgcacctgtaatcccagctactcaggaggctgaggcaggagaatcactt
-gaacctgggaggccgaggttgcaaggttgcagtgagccgagatcgcacca
-ttgcactccagcctgggcaacaagagcaaaccttcatctcagaaaaaaaa
-aaaaaagaggaaagaagaaagaaagaaagaagaaagaaagaaagaaagaa
-agaaagaaagaaagaaagaaagaaagaaagagaaagaaactgccacagcc
-accccaactttagcaaccaccaccctgatcagtcagcagccatcagcatc
-gaggtaagaccctccaccagcaaaaagatgacgaagcaccaaaggctcaa
-atgatcattagcatattttagcaacaaagtatttttagttaagatattta
-cattatattttaacacaatgttattgcacaattaatagactgcaggatag
-tgcagacataacttttatccctgctgtgaaaccaaaaagttcttgtgact
-tgctttatggcaatattagcttaataaaccaaacctataatatctctaga
-accaaagctgcaatatctctaaggtatgcctATATTTAGTTGATTGAGTG
-TGTTTAAAAAAAAAAAAAGACATCAATACAGTAATGCATTCAACTAATCA
-CTGGCTAATGCTTACGGCTGCGGGCATAAGACGAGCTGGTGTGTGAGTGT
-GTGTGTGTGGTCCAGGGGGTGGTGGGGCAATGCCCATGAGGAATCTCTGC
-CTTTAAGGAACTCCTGGCCTGTCCTGAGAATTAAATACTCAACACACAGT
-AGTCAGTGTTAAGTGCAATGCAAATAACCCCAACAGTAATTTTCAAGCTA
-ATCTGCCTGGAAGAAAAGCCATCAGTGTTCATGCTTTGAAATCTCTCATT
-TTCTTCTTTGGGGACATTCCAAGAGCATTGCAAAGTGCAGTGTTAAGATT
-TTGATCCATGTGTATTTCTGAGGCAAATTTGCATCTGCCGTTGGCTGGGG
-CTTGGGCTGCCCGGGGGGGCACCTCTCTCTGACCCTTTTATTCATCATAT
-AACTGCCCCACCATTACTGCCTAGCCAGCCTTGGCTCGACAGAGACATTC
-CAGCAAGAGTAAGCGGCTTCTATGGCAAAACAAAGAATGTGTTGGGAGAC
-TCCATCCCCGCTGGCTGGAAGCATCGCATTTTTTTCTTTCTTCAATTCTC
-CACTAAGGGCTAACTTCACAACTTTTATTATAATATGCTTTATGTACAAC
-AGTGAAACTTTACTGCAACATATGCCTATTTTATATATTCATGCATAAAG
-CATATTTTTAAAATCCTTCGTCAGAGGCTCATAGTACAATATTAAACCCG
-CACCATATTTTCCCCATGCATTCATAAAAAAGCACTCAGTCCTTTGGAAA
-ATGTTATTAAGAACTTTGACTCTGGGGTGTAGGATGTTTCAGCCTGTGTG
-AGTGTTTTGCTGGAACAGAAGCGGGAGGAGGGACTGCGCCTGCTGCGCCT
-AACGGGTAACAGGCCTCTGCAGACCTGGAGGAAGGAGAGAGGGTGCTGAA
-ATCCGAGCAGAGCTGTCTGTGTGGGATATTTTTTTCCTCCACTGGGCAGC
-AGGAGCTGCAAGACATGGATTGAGGGAGTGCATCCTGCTTCTGTTTGGGA
-AATGAGATGTCACATCAGAAATTATATTCAGTTATTTATCATCAACAGGA
-GATTTCCAGCCGGACTGGAAGAAATTGAAACAATACCTCTAAGTAATTCC
-AGCCTTTTTTGGATTAGTGTCTGGTCTCAGGAAAGCCCTATAAACTAGGT
-GATTCTGACTATTACACATTGTGATGTTTTTGTCCTGGGTCTAAACCCAG
-CAGATTAATTTTGAGATTGTATTTGAGATTTTGCATTCTATTTGTCACCG
-AGTGACCTGCACGACAAGAAATAAAACCTCCCTTTCCTCCCAGACCCATT
-GCCTTGTTCCCAAGACACCTGGAGCCGTACCCGGCGGGTGTGGCACCCAG
-GACACCTTTGTCTTCTAAGTGAGTACTTTCTTTAATTATCAGTCTTCTTA
-CATGttttttaattttattaaaaatGCATTAATTggccaggtgcggtggt
-tcatgcctgtaatcccaacgttttgggaggccgaggtaggcggatcactt
-gaggtcagaagtttgagaccagcctggccaacatgatgaaaccctttctc
-tactaaaaatacaaaaaaaaaaaaaaaaaataagctgggtgtggtggaat
-gtacctgtagttccagctacttgggaggctgaggaaggagaatcacttga
-acccgggagacggaagttgcagtgagttgagatcatgtcattgcactcca
-gcctgggtgacagagccagactccatctcaaaaaaaaaaaaaaaaaagaa
-aaagaaaaaGAGAGAAAGAAAGATATTCATTAACTGATATTCAAAAGTGG
-CTCATTCTTATAGTCTGAGATAACGCCAGCCCTGTTTTGTGCAATGACCC
-TAGAGAGGGCCACTGATGCTGCATCCCTGCTGGGACCGCTGTCCTGGGGG
-AGGAGGTTGTGGTGAGCACGTGTCCCATGTGGCACGCAGGACCCATGGAC
-ACCCGGAAAGGGCCTCGCCTGCCCACATCATCAGCCTACACCATCCTGAC
-CTATATGACGTCATTGCTTTAAACAACTGCCCGTCGGCGTGGCTTGCTCT
-GTGGCTAAAGCTAACAGGTGCCAGCTCCCACCATGAGCTACACAACCCTT
-CCAGCCCCTAAAAAGGCAGAAATGAACAAAACGGAAAGAAAATACCTGCA
-TGGAGGAGCCTACCCGCAAGGGGCGTCCGTGTCAGCCTGCCTCACCCGCA
-TCCGCGGCTGTGTGACATCACCTTGCACAGGTGTGACCCTGTAATGACAC
-AGAAGACCTGTTTGCAGTCGAGGGAGCTTTCGTCTATTTCCAGGCTTTGG
-TTTTGTTTCGATAAACAGCATCTTACCACAATCACAGGACACTACTCAGG
-GTGCATGTCTGTTCGTAGAATTGCTGTCCACGCATATCTCCAACTTCAGA
-AGATACGGAAGCATTGCCTGGGCTCAGGTGGCCACACAGAGGCAGGAGGA
-AGATGGACGATGGTGACAAGATGAATAAGAGCAGGTCGGTGAAGGTGCTG
-CTGTTGCAGAGGTGGGAGGAGACGGTGCAGCTCCTTGGCAGATGGACAAG
-GCAGCCCTGAGGACCGAGCTGGGAAGGGTTCAAGAGGTGGAGTTTCCTGG
-TTGATTGTTGATGTCTGCCAGGGGGCAGCCCTGAGGACCCAACTGGGAAG
-GGTTCCAGAGGTGGAGTTTCCCGATTGTTGATGTCTGCCAGGGAAGGGGC
-AGGAGAGAACAGGCAGGAAAGAGAGCATCCCGTCTCCTGGAGACTTGGTC
-CAGGTGAAAGGTGCAATTATGAAGAATCGAGAGGACACGGATGATATTTG
-AAGTGTTTAGAAATGAAATTCACAGGAATTAAAAGAGGAAATTCTGAGAT
-ACGCCTGGCAGTCCCAGACAGCTGGGAGGATGGCCGCAGGTCACTGAGAT
-GGGAAGGTAGGTAAGGATAAAGGAAACGTGTTGCCAGGGCATCGCGGCAC
-GGCTTTGGACATCACAACAGAAAttctttttattattattattatttgag
-atggactcttgctgtgtcacccaggctggagtgcagtggtgcgatcttgg
-ctcactgcaacctccacctccctggttcaagcaattctcctccctcagcc
-tcccgagtagctgggaccacaggtgcccgtcaccatgccaggctaatttt
-tgtatttttagtagacacagggtttcaccatgttgatcaggctggtctcg
-gactcctgacctcaggtgatccacctgcctcagcctcccaatgtgctggg
-attacaggtgtgagccaccacgcctggccCAGAACAGAAATCCTGAAAGA
-CGTTTCTGGGAGCCGTGGTCAGAGAGTTGAGAATGCAGCTCTGGGTGGGG
-GCCCACAGGCGGGGGTGGCTGGTGGGGCCTGGCTGGCAGAGGGAGGAGGA
-GCCCAGGCCTCCAGTTCAAGAGAGGTGGGTGGGGCTGGAGCTGGGGATGA
-GCTGATGAAGGTGAGGGGGGTGGACAAGTTGAACAAGACCAGGGGCTACA
-AGCAGCAACGCAGGGAGGGGTGGCTGTCAGGAATGATAAAGGGTTTCAGC
-AATGCGTCCCCTCGAGTCCTCTCCAGACCACATGCTGAGCGACACTCTGG
-AGAGTTGGAGCCCAGACATCACATGCAGGATTTCGGCTTCAACCCAGGAA
-CCAGGCCGCGGGGCCCATGCCAACAACAAAAGACTGGCCCCTGGCTCTTG
-TCAGCATGAACCGGAGGGACAGAGGCCAACACAGAGACAGCAAATGACCC
-CACTGCTCACTGGTACAGAACCACATGGATTCAGTCCCCTGGTTTTCCTG
-GTATGATGAAAGCTCACAGGGCCCTCTCTGGGTCCTGGAGGCATCAGAAT
-AATGGAGGAGCTCACAGGGCCTCTCTGCACCCTGGAGGCATTGGTATTAT
-GGAGGAAATTGCAGGGCCCTCTCTGGGCCCTGGAGGCATCAGTATAATGG
-AGAAGCTCCAGGGCCTTCTCTGCATCCTGGAGGCATTGGTGTAATGGAGG
-ATCTCACAGAGCCCTCTCTGCACCCTGGAGGCATTGGTATCATAGAGGAG
-CTCACAGGGAACCTGTCTGCATCCGGTATAATGGAGGATCTCACAGGGCT
-CTCTCTGCACCCTGGAGGCATTGGTGTAATGGAGGATCTCACAGAGCCCT
-CTCTGTACCCTGGAGGCATTGGTATCATAGAGGATCTCACAGGGCCCTCT
-CTGCACCCTGGAGGCATCGGTATAATGGAGGAGCTCGCAGGGCCTTCTCT
-GTACCCTGGAGGCATTGATATAATGGAGGATCTCACAGGGCGCTCTCTGC
-ACCCTGGAGGCATTGGTATAATGGAGGAGCTTGCAGGGCGCTCTCTGTAC
-CCTGGAGGCATCAGTATAATGGAGGAGTTCACAGGGCCCTCTCTGAACCC
-TGGAGGCATCGGTATAATGGAGGAGCTCACAGGGCCCTCTCTGCACCCTG
-GAGGCATCTGCTGACCCTGAGTCTCCCTCTCCTGTCCCCTTTGCCTGCTC
-AGCCCACTTTTCCAGCACTGCTGACATTGTCACTCAAGGCTAAGAACAAT
-TCCAGGAAACGCTGGTGTAGGATGCTGTCTACCTGAACTGTCTGGTTCTG
-AGAAAGGAAGACAGGACGGTTCCGTCTCTCACACACCTGGGAACAAGCTG
-CCCCTCCTGAGCCCCCTGCAGCCACCATGCAGGGGAGAGAGGGAAACCAG
-AGTGGGCTTGGCAAGAGCCAAGACAGGCTTCCAAGCAAGGCCCTGAGCAG
-CAACGGCCAAGCTCCCAGGACCCTGGCTGCCTCCGAGGAGCCGGCTACTC
-CATTCAGCCCTGCAAACCACGCCACCAGACTTCCTGAGCTATGGCCTTTT
-TGGAAAAGCAGTGAGAAGCTCCCAGCCACACCCTCTCCTTCCCTGGTCCC
-CACCGACCTCACAGACCCACCCACACGGTCACCACAAAGGCCTTCCTCGG
-TGCCCGCACCTCCGCCACTTCCTGGCGTTTTCTCTCTCCTTCTTCAGGCT
-GCTGACCTGGGGAGGTCAAAACACCGGGAGCTGACCTTGACCTTGGCACC
-CACGAAGCAGTCCGGCGACATTCCAGGCCAAACCCGACTTGGGGAGAAAA
-ATGTCATTTCCCAGGATTTTATATCCAGCAATCTTCCCATCCCCGGTCCC
-TACCAACCTATTCTAACTCCCTCCCAGGTTTCCTCAAAAACCACCCAGAG
-GACCGACATTCTGGTGTTGGGTGTATGGAGGGTTGGCAGATGGCAGTGGC
-CAGCGCATAGCAGGGGACACCCGTGCCGTCCTCGGAAACTGGATATGGGC
-TCGGCACGTCGGCCCACATGGCAGAGCGCCCTCAGTGTTCTGTGGTGGCC
-TCGGGGGGACGACACCTCTCCTTGCCCCTTCCTGACCTTGCTGGTTGGGG
-CCGTGGCTGGATTCCAGGCCTGGAGGTTTGGTTGCTGACCTGCGTGTGAA
-GCTAAGGAACTGGGAGAAGAAGGCACGAGAGGTGGCTGTGAGGCGAGGCC
-TGGTCAGCAAAACAGCCCTCCACACAGCCCTGCGAGAGAGGAGAGCAGGC
-CAGTGGCTTCTGCCTGGGTTTTCTTCCAAATCCATTTCAATTCCAGAGCT
-TCATGTGGAGCTTAGTGTCATATCTCAATTCAATTAGCAACAAAGCGAGT
-AAGGGCAGGTGGATGCTGGATTGCAGCCACCCAGGAGCAGAAAGACAATT
-GGCGACAGGCACTCACATCTCTGCAGAAAGGTGGAAGGAAGGGCCTGGTT
-TGGGGAGTAAGGGCCAGAGGACAATGGCTTATGTCCTGAGGGGCAATGGG
-ACAGGGCTCTTGCTGCCTGGGAGGGCATGGCCCCTTGGTCAGCCACCACT
-GCCAGGGTAGCTCCAGCGATGGGGCCCCCTGCCAGCCACCACTCCCAGAG
-TAGCTCCAGCGATGGGTCCCCCGCCTGCCCTGGGCCTCTCAGAGCCCCTC
-CCTTCACAGGCCTGTGAGGAGCAGAGCCACAGGCTTTGAGGGACAGAGCA
-TGCGTAGGAAATGCAaggtcaggcagagccagcagggcaggaaacacctg
-ctttgggaagagagtttgcccctcagatccccagaagaggggcacccgtg
-ccacgccaggccacgcaggggcaccagggtcatcacacgcagagaagggg
-aagcgtgggcaaagcctttactgtggctccatggaaggaacgggcagggt
-ggggcagcgggcttaggactgcccagtgtggacacccctgtgggagctgg
-gcaggggctgtccctggctgccggccacctggcccggggcgatgagggct
-ggaggatgggacccagggtgtgagagcccagggaggagggagaggtgggg
-cctccaatctgagtggtttgtattgaaaggtgtgctcagaggcaagtcac
-ccaccatctctagggattagagctcgggggagcagtccctccagggtcag
-cgaggacctgaaggtcaaagcTTGGAAACAAAAGTCAGAGTTAGCACCTC
-TGCTGTTGGAGGCACCTGCCAAGACTCCATGGAGCTTCTGTCCCTGACCG
-GGAGAAACTCCGGGCTGGCCGTGCTCTCCCTGACCGCAGGCGCTGCCAGT
-GCCTCTGATGCGGCCCCTCCACATCCTCCAGGGCACCCTGCGGCACCTGC
-TCTCTGCAGCCCGGCCTCCCTGCCTCCCTAAGACCTGGGGACCAACCAGA
-TCATGCCACCTGTTTTGCGAAACTGCAAGATAAAGTGGGGTTTGCACATC
-TCACTCTTCTAGCAATTATGATTCTTaagcagagattcaaagagaccatt
-gcacacccctgctggtagaagccttcttcacaacggccagagggtggaag
-cagcccaggggcccatctgtcgacagctggagggataaaagcagtaaggc
-aatgcggtcctcacacacagagggcagcttcggccccgaaaaggaaggaa
-agtcggacacatggtccatcacggatgaaccttaagggcattgtgccaag
-tgaaacaaaccattcacaaaaatgacaaacactgtatgatttcacttcta
-ggagagccctagagcatcaaatttacagagacagaaagaagaatggggga
-tgccagggctggcggagggtgggaggaagttggtgtttaatgggcctgga
-gttttgttttgtcacccaggctgcagtgcagtggtgcgatgtcagctcac
-tgcaacctccacctcccgggttcaggcgattctcctgtctcagcctcttg
-agtagctggaattataggcatgtgccaccacccctggctaatttttgtat
-tttctttcataaagaaagggtttcaccatgtttgtcaggctggtcttgaa
-ctcctgacttcaggtcatccgcccaccttggcctcccgaagtgccgggat
-tacaggcgtgagccacagctcctggctggagtttcagtttgggaagatga
-agaagttgtggagatggggggtggttatggctgtaggaccctgtgaatgt
-gctcactgccacggaacagttcactcaccagtggtaaagaaggtaaatgt
-tatgtatatcttaccacaattaaaaCATTACAAAGAAAAAACAGTTCCTG
-TTGATGCTTACTTTGCAGAACATATTGCAATCCCCCCAGCATTAATGCTA
-AGAGTGATTCAAATTTCCCTTAAGGAACTTCTCACCCCCACACCTCCGGG
-CTGTGACACGGGATGTCCCCTGAGACACCACGGCCTTACACCTGCCCAGA
-ACGGCTCCACTGGCTCGGCTGTGGGCGTCTGCAGCTGTGGGTGTCTGCAG
-CACGGGGGTCCTCTCTTCCACTTTCAGAGGCAGATCTCGGCCCCACGGCT
-CCTGACCTTCTCCCTGTTTAACAACCCATTTCCTGCCTCACCGCCTTTGG
-GACCAGGTTGCCGCTGGGCCCCAGATGGCGGGACGCTGAAGGTCTGCATC
-TCCGGATCTCCAGTTCATCAGTCACCGGCTGAGATGGAGTCGGCACTCCG
-TGGCTGCACGGTGCCCGCCTGAGCTCCAGCTGACTTCAAATAGTTCCTGA
-AGATGGCTCGTGTCTATGTTCCCGCAGTGGCCTGGTTTTAAGCAGAAAGC
-TTGTCTGCGACCGCCGGCTGCCAAGACTGTCTCTCTGTTCATTCTCAACC
-CTGCCTCCCTGCCCTCGGCAGCCCCTCACTCTCTGATGTGTGACTAAGGC
-TCTGTTTATGCTCTCATTAAGGCAGACAGAGTGCAATGCCGTTTGCAAGT
-GAGCTACAGAATTATTCACCAAAACAGCGTCTAGAGGTTCATCCTTAAGG
-AACAGTCACAGGAAAATTGGTTTCTGTACCACACATGGAAAATAGAGACA
-AATGGTTGAGCTCTAAGTTCCATGATTCGTTCTCCATGGCCAGGAGAACC
-ACTTAAAGGATTCCACGCAGATGGGCAGTGGCCGAGGCAGTTTCCTCATC
-CAGGAAGTTCTTGTCCTGGTAGAAACTAAACGATAGAAAGGCCAGCTCCG
-ACGCCACAGCGGCCTCCACAGAGGGGCTTACGGTCACGGCACAAGCGGCT
-GATTTCCAGATAAAGGGAGCAAGTCATAACTGGGATGAGTGTTCCTAGGG
-CCAGAGGGATGGAGGCAGTACCCCAGGTGAGGAAGGGCTACGGGAGGGTC
-ACGGCAGTGTCTGGGAAAGCGTGGGTCTGCCTGCAGTTAGAGTTACAAGC
-ATCAGAGTCTGCACTCCTACCCGGATGATGGCAGAGTGACGCACGCAGTA
-AGGGAACAGCCAGGCTGATCCCCCGGCATCGCGTCCCAGGCAGGCCAACC
-CTGTGACAAGCCCTCCAGCCGGGGCCGCCCTCTGAGGCTGGAGTCATGGG
-GAATGGACAAGGCTGGCTGGAGCCAAGTGACCAAGGGGACAAGCCGGCAG
-AGCAGGTGACAACGCCACCTCCAAAGCTCAGTGGGGTGCTGCCCAGGCCC
-TGGCCTCTGCCGCGGCTCTGCCAGGCATCTCCAGCCCCATGGCTTCTGTT
-GAGACCCCTCTGCCTTGTTGAAACCGAGGCCATCCTGATGATGTCTGAAT
-GCCTTTGGGGTGCTTCTCTTGGAGGACAGAGGGGAGCCGCATCAAACCCG
-CGGGGAGAGGGGTCACGTCAGATGTGGCAGGGCCCGGCAGGGAACTGAGG
-GGTTTCGGCCTCACTCCTTCCTCTTCTCTGTGGTTAAATTGAGGTGGTGC
-TTGATTTTTTTTTCCTCGTGTTTTTCTCCTGGTTTCCTGCACTGGGCAGG
-GAAAGGGTGCTGGTGTCCGTGAACATGGCCGTTTCACGCCTCCTGGTGCC
-GATGGAGTGGCGCTTTCTACACCACAACTTGCTTCCTTCCTTCCTCAGTA
-CTTCCCGGTGCCTTTCTGCCACTGAGGTCGGCCTCGTTTCATGGAACTGA
-TGTACGTGAATCTGCGACatggatgcatcatcatttacataaccggtttc
-caacccgtgaacgttgacgtcgtctgcaaatgttcattctcgggagcagg
-gctgcaggatcctcctgggggccactttctgcacatgcacagacttccgc
-agagattttcaaacctaaaactgctgcataaaagaaaatgcacatttaaa
-atgtgatagatgccgccaatttgcccctGAAACGTATCCATTTTCTCTGG
-TTTATTTTCATGATTTCTCCTTAGAATTTTTCACTGTCTGCAGCTAATCC
-ATGTTCTGACCATCGATCGGCCTGGCTGTGTTTCCATCAGCTGTGGACAC
-CCTGTGGACAGACACGGGGCTCCTATCATCTCCCCTTGCCTTTCCAGGCC
-TGGGAACGTTTACTGAATGAATGAATCCAAGGACTGAGCCACAGTTCAGG
-AGGACACACATTtccccagcccctaccaatcctgaatgttgagaatccct
-ccaatttagccaatttgagagaggtatcattgtttttatactagtgaggt
-tgattgattgtattttatgtttatttgccatttatacatatttctttaat
-ttgcttgttcatataattttttccattctttaattgttttagttgtattt
-ttcttgttgaagtgtgagatatatatttatctatatattatatacgcaca
-tatatatatCATCTTAATTCAAGGAAGCTTAAAGATTTTAGCAATTTAGT
-TCAGTACCAGTGAATTTCATCAATCTTTTTTTCAATCAACAAGCACAGAA
-TGGATTCATAAGCGATAATTTAGACTGTACTTTGTAACATTGATTATATC
-ATTGTCTTCACATTTTCATTTGGATTTACTGTATGGGATAATAGTAATAT
-GCAAAGCAATGAGCATTAAATATGTGTAAATATTTAAACATTCCAGAGTC
-AGTCAGAAATTCTCCATTGTGTTAAAAGACAGTGAAATTTTAAAAAATAT
-GCTCATAAACAGATTTTAAACATTTGTTTTCTAACAATTCTATAGATGGT
-AAGTACAGACGGTGGATATCATCAGAGAGGAAACAGGATGGTGCCCGCTG
-AAAGGTCCCCTGACGTGGCGGATCTCTCTCACGTCCTAGAGAGCTAACCC
-TAACAGAATTGAGTTTCCTTCCTCCTCTTGAGGGTGGAGACAGAGTTTCA
-CTGACTGCTGGTCACAGGAGGCTTCCTCAAGGCGCTCATGGCTGGGTGCC
-GGCAGGTGGTCCCCAGAACAGGACACTCTGGAGCATCAGGCACTGGCCAG
-CGTCCTCAGGGGTCTGAGCACACCCAGGCTGGCTGCAAGCCTGTCTCCAA
-GCCATCCTCAGCAAATCCGTCAAGCTGAGCAAAGTCACGATGCCCTGAAT
-CTCATTCACCCTGTCACAGCATGGATTAAACCCTGAAGGATGCTTGTAAA
-GGGTCCGACTGGGGTGACCACAGAGCGTGTGATTAAACCCTGAAGGATCC
-CTGTAAAGGGTCCAACTGGGGTGACCACACAGTGCGTGATTAAACCCTGA
-AGGATCCCTGTAAAGGGTCCGATTGGGGTGAACACAGAGCTTTCATTTCA
-AAATAGAGTGGGAGAGGGTCATGCATTTCCTGGTTAATTGGTACATTCCA
-GATGGGTTCATTAGAAGTTTGGAAACATTCCCTGGAGATGAAATAACTTC
-TATTATCACAGTATCTGTCGGGTGGAAATTCCAAAGATGTTTTCAGGGAT
-TGAGAAAACAGGGAAATAACAAGGAGGCTCATTAGGATTTCAGCATGTGA
-TGCTGGCAGTGGGGAGTGCAGACACCCAGCCTCTAATTCTGCCACCAACC
-CCAACTgtcctcctcacaggcaaaacacattcattccatcccaacagccc
-ccacagccataactcaccccagctgctgtgagggttaaaacccagagcct
-gccttaacatcgcctaaatcaaaagtgagggaggccgaggccagagccat
-gccgaggcagcattcctctccagccatgcctctgcaaacccaatgcgacg
-tgcttccaaaacacaatgtcatgacagccactgaacaggcgctccctccc
-gcagggaggaatggaaggaggaaaggatgacaagtcccaagcgggtccaa
-atcccagcgaggcagtttccatgagaatttcctctttggcttgaaagtct
-gcctgccgggcccactatggtggcaacgccacctccaaagctcagtgggg
-tgctgcccaggccctgacccctgccgcggctctgccaggcattgccagcc
-ccgtggcttctgttggaagccctccgcctcattgaaatctaggccatcct
-gacgatgtctgaataacctttggggcgcttctccccttttcttggaggac
-agaacactgcacggtcccccttcattctgcccacatcctctgcttcccag
-aatccctctgcagagcttccactgccctgaccccatctcagccctggttt
-ctgcggagatgacggagaaggtctgtgctcacacccacaccaatcgcctt
-atcaggtcgtcaagtcaccacaaccttggtgttcttcgctgaagatgttt
-tattttttgtaacatggaattttccaattgtttaatttctggttccttgg
-taattccatctctgttcatttttctcttcaggagaaaccaagctgctcct
-tcaacattttgcttagagatcctcagctaaatatcgaatgtgatcactga
-caagctctgcttgtcttgaaatgatagaacacaaacacagttccgctacc
-ttctttgcctcttgatgacaagcacggcttttcctgcagtttccaatcat
-atgttccccctttccatctgagacctcagcagaggagctcttaacgcccc
-tgcttccaccaatgttcagtacatagtgaagtacgtattctctaagaaga
-tgagaactttctctatagctctttttcctttctgggccctcgtcacaatc
-accttgcaaagtccattggcagcaatgtcagaattttttcctatgcactt
-tgaagctgcatccacatttttaggtgattgtgacagcagcaccccgttct
-cagtaccaaCTCCtatcctggtcaattcaggcttctgaaacagaacacca
-aagacggggtgatgtaaacagcagcaattcactcctcacagttctgaagt
-ccaagaagtctgagatcaaggtgctggcaggtccatgggtgggagcccat
-ttctggtggacagatagccatcttcctcctgtttccatgcctggaagaca
-gcagagagagaaagagcaagtgctctcatatatttgtatgcgggctcaaa
-tcctgttttttattagctccatcctcatgacctaattccttcccaaagat
-cccatctccaaatgctatcctattaggggttagggtcacaacatgtgaac
-ggggtgggggaccgcaaacattcGTTCCAGGAATAAGCTGATAGTATTTT
-TATGTGAATCACAAATACGAATGCCTACAATTGCCCGAAGTCTGGTTTGT
-GCTGTGAAATCCAAGATGCATCAAGTTTGAGCTTATTTACAAAAACACAG
-GCTCTTGAGTCCAGTTAGGCTTATGTTTAACACTCAATAAATGCTTCCAA
-ATTGATTAGTCTGGAGCAGCTACCTTTGATTTAATTGAAAGGGAAGGACC
-ACAGCTCAAGCTAATAGACGACCTAAACCCATCAGGCAGGGCAGGTGCAA
-CGGCGAGCAATGGAATCATGAGCTGTCCTCTCTGTTCATATCCAGTGGCC
-CTCGCTTAATCTTTAGACGCAATTCAAGAGGCACATGGTTCAGTTCTAAA
-GAATTTTATGAATGCCTAGACTCTTTTGGATTTTGTTGGTAAGGATACAT
-CTTTTTATTTTTATTTATTTATTTATTTATTTtttgagacttggtctatc
-accaaggctggagtgcagtggtacaatctctgctcactgcaacctctgcc
-tactgggttcaagcaatactcctgcctcagcctccagagtagctgggatt
-acaaacacctgccaccatgcccACCACACTTCCTCCAGTAAATCCTTGGC
-CAAACGtaaaaattaaaactgtcattatgatttatcaagaaagtaattca
-tttgagaactttaaaaatgaggccaaatcgccactcagttaaatttcatt
-acttttataactatttccattttaaaagaaacaataaaaataaataaaat
-gagcattaaatctaagaaattagaacgagaccaaccaaagaccaaaggaa
-gccaggaagaacttaattaactcaaaagcagaaagtaatgacttgtgagc
-ggtaattcagcagaataattaaggctgagaatcttttttttttttttttg
-gaaagaccaatcaaatagagacacccctgtcaactctaattaagaacaac
-gagtcaggaaaaagaattcagatgccgcgaagccactgcatgacaaggac
-gccgtctacagagcgatacactcaaatccagaccgtgtagttgaaaagga
-tcattctggggagaaacaccaattgccaaaattatccaaaggaaaacaga
-tGCCAGCAACTGGGTAACGACCAGGGAGCAGGTTCTTCATGAGCTGCGTC
-CAAGGATCACATGGGAAGGAGTGGTGCTTTCACGGGAGAGCACAGGCCCC
-ACGGCAGTGGCAGCAGCAGCATCTTCCAAAGAGGGCAGGGAGCAGACCCC
-CAACTCCCCCGGGCCACCTGAGAGAGGCAGGGATTCCAAGAGCCACCAGG
-ACCACCAGCTCCTCTGCAAACACAACTGCACCCACAGAGCTCTGAGGGGC
-TTGGGAGCCCAGAGGCTGCCTGTGGCGGGAGAAGGACCCGCCAGGAAAGG
-GGGCGGCTGGAAGCAGCAGTGGGGAGAAGGCTGAGCGCAGCTTTGTGTGG
-ATTATATTTTGTCTCTCAGATTCCCTTCTAGAGCGTCACTCCTGTTCCGA
-ACCTCAGTGCAAACCAGAAAGGGGCCCCCCAGCAGCCTcctgtcaaacct
-gaatgctatgagtcctttcaatgttgccaatttgacagaggtctttattg
-tttttattataaatttttggtttttttgagacggagtctccctgtgtcgc
-ccaggctggagtgcgatggtgtgatcttaactcactgcaacctccgcctc
-ccaggttcaaacgattctcctgcctcagcctccggagtagctgggattac
-tggtgcgcaccaccacacctggccaatttttgtatttttagtaaagacag
-ggtttcgccacgttggccaggctggtcttgaactcctgacctcaggtgat
-ccacccacctcggcctcccagagtgctgggattacaggcatgagccaccg
-cacctggcctgtttttattagaatttttaaatgtctagtgaggtcgatca
-tattttaggtttatttgtcatttatacaactttatttaaattgtttgtgt
-cctttgcccactctttaaatgtgttagtcgcaggttcttctctttgattt
-gaaggacacacacacacacacacacacacacacacacacagacactcatg
-taatataaattttgTTTATTTGAAGGAGATATAGACATAAACACACATCT
-AGATAGATATAGATATATGCTTAAGCCTCAAGAATTAGCAATTCAGTACA
-GTCTAATACCAATATATTCTCCCAAGGCACTTTCATTCGGGCAGAGGCAG
-CTGTGTCAGTGCTCTCAGCTTCTCATCCAGGTCTGAGGATAGCCCTGCTC
-AAGAAAGGGGCACGTCTGAAGCCTGCTGCAGAGGAGCTAATGAAAGCAGG
-TGCGGACTGACCCAGCGGCAAGCAAGTGAAATCAGCCGTGGTGACTGCCT
-GAGAAGACATCTCCTCTCTTCTGTTTAAATGGCAGGGACTGGTGTAGAAA
-ATGTCTTACCCTCTGATCTGGTGTAGAAAATGTCTTACCCTCTGATCCTT
-CCCCAGCTGGGAGCGACCGAGAAGCTCACATTCCCACAGGCTAAGACACC
-TGGAAAACCAAGAAAACTGCTATGAACAAGGGTAGAAAGACTTAAAATAA
-GGATGGCCAAATACATGCCAAAATATAAGGCAAGAAAATGAGACagccgg
-gcatggtggctcccgcctgtgatcccagcactttgggaggccaaggcagg
-cagatcacgaggtcaggagatcgagattatcctggctaacatggtgaaac
-tttatctctactaaaaaatacaacaaattagccgggcatggtggcaggtg
-cctgtagtcccagctacttgggaggctgagggaggagaatggtgtgaacc
-cgggaggcagagtttgcagtgagccgagatctccccactgcactccagcc
-tgcgtgacagagtgagattctgtctccaaaaaaaagaaaaaaaaaaTGAG
-ACAAGGAAAACTCACTGaaaacaaagtaattggaaatattaggcatgaaa
-atgcaatatttgaaatgcaaaacaaacacaataaatagtagaatggacat
-aaccgaaaaaaaaatcatgagactgaagatCACAGTGAGGAACTTTTTCT
-AATtagacacattatagcaaaattccagaacgccaaaaacaaagagaaaC
-TGATCAAAGCCTGTAGAGGAAGGAGCAGCTTGCTCACAATAACAGCAGTA
-AGACTCATGCCAGATTTCTCCGGATGCAATCGATGTAAGTATTAAAAGAA
-AATAAGTTTGAGTTTAGAAATGTATTATCTAGTCATGTTGTCTTTTATGT
-GTAAAAAAACAAGTAACCAAGCAACAACACAAAAAAAATTCTTGAATTTT
-TCAAGTAAAATCAGCAAATCTAGAGATGTTACAAGCAAGATGGAGAATAA
-GAGTGATCTAATATTTATGTGCCATTATCTTAAAATTTAAGAAAATAAGC
-TAAGCCAAAGAGGTAAAAGAAAGAATATTCATGACAACTCAGAAAGGAAC
-ATGagcgtgctaaactaattgtcttcttagaaaaacaacataaaaatcta
-tatggtaaaaaatcaatagtggtaaataaatatgagtatggtcttaaggg
-taaccactagtaaaataaaataggttatgcaacttggcaaacagaagaaa
-atacagagaatgcaatgaaagtaaaccaaataaataaaaggataaatgac
-aaatggaaaaatgaaataaaatagtagaggtaagttctaccaaataaaca
-tttaaaataaagttaagacaaaacttttcaggttgaatgaaaaataaaaa
-agagccaacagcatgtgatctgtaggagacgtaacagaagaatgtggaat
-gatggacaagaaacagatggaaaggatatgctatctaaatatgaatccaa
-gtaaggctagatagcaaccacaacgttggagaaaatcacaggcaactaca
-tcataccctgaagatcaaggcaggatgcgatggaggagtaagaggacagc
-taaactgacacatagctatcatcaacatgcaagcgtcaaatcacacagct
-gaaaagcacatcagcaagatctaaaaaaagctgctggaagagacagctaa
-gtcaaatgttgtggttggctattttaactactctgaggatatttttagat
-caagcaaccaaacacagaaagaaaggagaggtaaagactgaatcaataat
-ttcaagatctaggaagtatttataAGCATAGACATATAaagtttcaatca
-ttctcagtctaaatagtatacagaaaaagatctcccaactataatacaat
-caatattgaaattaatttcaaaaatgtatctaaattgtcaaagtgtttgg
-aaacgaagaaatgttttcttatgtaaactttgggttatgaagaagaatag
-aaaactaatttaagtatttagaactaaatgaagataaaaatattacatgt
-aaaatgtgcagacacagcaaaagcagtcaggaaggaaaatcttcagggag
-aaaatgtatagctttccttgtgttaaccaggaaaccagtaagattagaaa
-caataaactaatttttcaaatcaagaagtttggaaaacacatcagaacaa
-cccaaagaaaccagaaatatagaaacgagaaacaagaggatgaaaatcat
-tgaaatagTTCATTCGCCTCATGTTCTCCAAGTCCATCTGTGTTGCTTAT
-AGGGATTAggtacaaagtttttcaagcagaagaaaagggttttgagatcc
-actgcacagcacggtgactattgtcaagaataagtaatgtattaaacatt
-tcactttgcttcaggagactttaaatgttctctctatgaaaaaaaggtgg
-gtaagtgaggtgataatataatttaaaagtttatataacaaaatgttaat
-tagcttgatttaatcattcccccaatgcatacacatgtcaaaataccatg
-ttgtataccataaatatatacatctattatttgtcaattaaaaataTATT
-TTAAATCTATTTcaaaaatcagtgaaatagaaaaggtgattggaccacaa
-aggaaaccaaaatctgattctttacagagattatagaataggctttccac
-aaatcagagtaagaaccatgcagggagaggagagaaagacaaatcacaga
-gagagggaagagggcaaccgtgatgcaggggaattaaagggacgcagaga
-tgaaaacacgctaaaattttgtccactcttctacccctatgcatttgaaa
-aatgattaaatggataaacagacaaaatgcaaaaacaggctgaaaaataa
-gtagggaatttaaatagaccaatacttattaaagaaattaaaattatagc
-caaagactcccgtgtccaacaaaacctggaaaaggttgtcatgaaaaggg
-aatctatcacactttggaggagcagataatccctgaagcaagctgttccg
-gaCTGTGTTTGCAGACACATGCAGCGTCCTGTGTTTTCTCAGCTGCTGCC
-TCAGAAACTAAGACTTCAAAAGCACAAAGCATTtgtattaattttctgta
-gctgctgtaaccaatgaccacaaacttggtggccggacacaacactaatt
-tattcatttacaggtccagacatcagaattccagcacgagtctccgcagg
-cagggcctcctggaggctctaggggagaaacaacactcatttattcattt
-acaggtccagagatcagaagtccagcatgagtcttggcaggcagggcctc
-ctggaggctccgggggagaatccctttccttgactgtttcagcttctaga
-accaccagattctgcagctcagggcctcctctgtcttcacagctagcaac
-ggagggtggagtccttctcccatcgtatcgctccgcttccctcttccacc
-tttaagcggaagacaggacccacctggataatccaaggtcgcttccctta
-ctccaagttccacctgcaaccctagcgcccccgtaacaggtaccagccag
-gtaacaggttcacaggtttcagggatcaggacacaggtgtctttaggagg
-gctttagtcttcctactatgatatgatatgattatttttatttttatttt
-tattttttttgagatggagtctcactcagtcacccaggctggagtgcagt
-ggcacgatgtcggctcactgcaagctccatctcccaggttcacgccgttc
-tcctgcttcagcctcctgagtagctgggactacaggctcccgcccccacg
-cccgggtaatttttttatatttttagtagagatggggtttcaccgtgtta
-gcccggatggtctcgatctcctgaccttgtgatccacctgcctcggcctc
-ccaaagtgctgggattacaggtgtgaaccgctgtgcctggccctgatatg
-atttatgatgtgatatgatatATAATGTGACATGTGATATGTGCTGTGAC
-ATGATATTTAAATGCATATAATTTCTCTGTATATTTATATTTGGATACTA
-TCTTAAAGAGTACACACCAATATTTTTAAGTGTTTTCCTCCCCAAAGGAG
-GATGATTTAACTCTTTCTCATACGCCCTTCTCTGGTGTAGTCACAGTGAC
-TATGTGTGTTATTTCCCCACATATGTGTTTGAGTGTCCACAACAGAAGGT
-TTAACTGCAACCTTATAATAATAAATGGTGCATTATACATCAGGGGTCAG
-CTGTGAGTTTAACTCAGAACACGCCAACCACCAGGGGCCCCACGGAACAT
-CGGCTCCCACTCCCGACACCTCCTGCTCCAGCGCAGGCAGAGCCAACAAA
-CAGCCCCACGGGGTCCTTGGAGAAGAGCTTGCCTTCCTCTGCTGTGTGTC
-TTCTGGCTCAGTGAGGAGAGTTGCGGGGAGGGCGTCCTCTTAGAAGCACT
-CTTATTTCATTCTTAACACAGGGAAGGCAGCCTCCCCCCGGATACCTCTG
-GCTGCGAGTACCAGCTTGCTCCTCTTTGTCACCCGGTAAATCAGATGTCT
-GCACCATGGCAATGCGTGGAGCAAATGATTAAACTGTCCACGAAGGCCGC
-GGAGGTCTTCATCGAGGTTAACTGCTTGTGAATTTGCAGCTCAGGGAGGG
-TCTGTGGGAGCCCACGAGACGTTCTTGTATCAACCGACGGCCTTCCTCGC
-CTGTTGGTGTCACACAGGGTGGCCTCACCTTCCCGAAGAGGCCTCAGCCC
-GTGAACGGGGACCTGTGAGTCGTGGGCAGGACTCAAGTGCCAAAGCCTGA
-AGGTTTTGGGGGGAGCAGAGTCCACACGCACCTTGGTGCTTTCCACAACC
-TGTTCCTCAAAGGGATGGTTTGGGGACCTTAGGAAGGAGATGTTGTCAGG
-CGTTTACCTGATCTGGTCTTCACATCCTCTTGGATCCTTCCAACTTTGCC
-ACTTGCTCCTGTCCCCGCCATTGCTCTAACAAATTATCACCAAGCTCCGT
-GAACTCCTGGCTGGACTCAGGTGGAAATTCTGCATCCTTGGCTCGTGGTG
-TGACCCGCTGACAATGCTCTGTTCCGACCCTCTCCTCCCTCCCCTTCCTG
-GCTCTCGGACCCTCCTGGCCACGTCATCAGACCCTCTCCTCCCTCCCCTT
-CCTGGCACTCGGACCCTCCTGGCCACGTTATTGCTGCCTCTTTGGCCTGT
-TTCCCGTGGAAGCAGAGAGACACCAGCAAGAGAAAAACTCGGCcgatggc
-gctggctttggagatggaggaggggccgcaagccaaaggaggaaaacgcc
-tctaaaagctggaaagacagatcctcccttggagcccctgggggatgcag
-ccctgcccacacctcaatattagccccatgagacccaggctggacggctg
-acctctgacctcgagagctgcggggtgatgcacccgctctgtgctgttac
-atcactcggtcaaaggtgattttttaatggcagcagtaaaaaataaacac
-aGTACAGGATCAATGTTTACTATTGACACAATTACATTATTGGGCTtttt
-attttattttattttatttgttttgagacaggatcttgctctgtcaccca
-ggcgagagtacagtggtgtgatcacagctcactgcagtctccacctcccc
-aggctcaagggctcctcccgcctcagcctcccgagttgctgggactacag
-gcatgcaccaccacgcccagctaatttttgtatttttagtagagacaggg
-cttagctgtgttgcccagactggtcttgaactcctggcctcaagcagtcc
-atccaccttggcttcccaaagtgctgagaatacagatgtgaaccactgct
-cccggccTTACTGACTGTTTTGTGTACGCCAGACACCATGCAAGGTAAAA
-AGTAAAGCACAGCGTGGGGCGAGGAGCAGGGGCTGAGGCCAGGTTGCTGT
-GAGCCTCGGTGACCTCACCTGTGAAGCCGGCGCAGACCCACCAGCGATGT
-ATCTGGTGCAGCATCTGCCACATCCTCAGCAGAGCATAAAGACCCCCTGC
-TGCTCCCCCTCCCACCATCCTCCTGCTCCTCCAGGGAAAATGCAGGGAGG
-CTCATAGTAGCACCATGGTGTTAGTCATGGAGGGCCTGAGCCCAGTCTGA
-AAAGTACTTAGGAACAGAATTGGTGAGACTTGCCTGGAACAGAATGGATG
-TAGGGATGTAGAAGGGGCTGGGTAGGGAGCGGTGCCCAGCGGTGCAGCCT
-GGAGGGCTGGTGGACGGCTGGGGTGGGAGACAGAGGGCTGGGCTGCCCGT
-TTAAGGAGAGTCCTGCGGGGCTGCTTGCAGAGGTGTTTTGGAGCATGCTG
-GCACCTGAGGGACATTCGGGCAGAGATTTCCAGGAGGTTGAGTGATGTCC
-AGGGTTGTATCTCTGGGAAGATGCCCAGTCAGTTCAGACGGATTTGCGAT
-GCATTGACATAGATGCATAGATTGAGGCCGTGCTATAGGGTGAACTCGCC
-CCAGCTCGGCACACACAGTGAGGAGGGCGGCTGAGCACACACAGTGAGGA
-GGACAGCTGAGCACACACAGTGAGGAGGGCGGCTGAGCACACACAGTGAG
-GAGGGCGGCCGAGCACCACCCAGGGGTCCTCGGCACACACAGTGAAGAGG
-GCGGCTGAGCACACACAGTGAGGAGGACAGCTGAGCACACACAGTGAGGA
-GGGCGCCTGAGCACCACCCAGGGGTCCATGCATGTTTTACTGATGGGTCA
-GAGGGGCGCCGTGGGGGCTGTGGAGAAACCGCCTAAGGTGAAGAAGAGGA
-AGGAGAATGTGCATCCACAAAGCTGGGGTGCAGGGAACCCCAGGAAGGGA
-GGGAGGGTCAGCGGAGATCAATGCAGGTGGACTAGAACATGCCCGGTTCA
-CGGCCCCGTTTCCCTCTCCTACACGcattctgcaaagattttttgtgcac
-ctactgtgtgccaggcaGGACCATCATGAGAGTGTGCAGAGCGGTGCCGG
-GAGCAGGAGCTGGGTGGGGGCACTCAGGGGCCGAGCATCTCCATGTCCTG
-CCTTCTGGAAATACAGAGAGAGTCACGAGAGAGTCAGGGTTTGCTTGGGG
-GAGCAGGTCCCGGAAATGAATTTTGCAGTGGGTGGGAGTTGAGCTTGTTT
-ATTGACAGAAGAGAGGAGCGTCTGCAGAGTCAGGGGCAGAAGCTCCTGGA
-AAAAGGAACCATGAGGCAGGTGCCACGGTGGGTCCAGGGCCCGGAGGATG
-AGGAGTTGGGCCAGGAGGGAGGCCTTCCGATGCCAGAAGGCAGTGGAGCA
-TGTGTGGTGGGAAAGAATTTAAGGAGACCTCGTGGGGTCTCCACACGGAG
-GCTCCAAGATGACCACCCACATTCAGTGTGTATCCGCAGGGAACCGGGCC
-GTGGAAGACTGCCTCTGTTTGCATTTGACcacacacacacacacacacac
-acacacacacacacCTTAGTGTGtatatatatatatatatatgtatgtat
-ataGttttgttttgttttgtgtttgagacggagtctcactctatcaccta
-ggctagagtgcaatggcgtgatctcagctcaccacaacctctgcctccca
-ggttccagcaattctgcctcagcctcccaagtagctaggactacaggtgc
-gtgccaccacacccggctcattttttgtatttttagtagagatgggtttt
-tcccatgttgaccaggctggtcttgaactcctgacatcaggtgatccacc
-cgcctcagcctctcaaattgctgggattacaggcgtgagccaccgagccc
-ggACTTGACCACATAGTTATGTTTGTGAACATACTGAAGGCCCTCTATCC
-TTCCTGCCCCTGCACTGCAGGGTTGGTGACTAAGTAGAATAATATTCTAA
-ATTGAATAATGTTCTTTGGCTTTTTATCCATGGCCCTGAAGTTTCATGCT
-TTTGAGCAACATAAATATTTCAGATGGTTTTATTTTAATGCAAGCATTAC
-ACCCACCCAGCAAGCCTGAGCTTCCCTGTGCTTCAGTGGGGACCTGCCAT
-TGCAGCCCCTGCATCTGGTTTCAGCACGGAATTGGCTGGACAGGGACCCA
-CAGGCACCAGAGGCGTGGCTCAGCCCTGGGATCTGGCCCACCTGCCCACA
-GCACAGAGGGCAATTTCCCTGGGAGATTGGCGTGATTGAGTGCACCACCC
-CCATGAGAGCAGAGGGAGGGGCTGTATGCTCCCCGCCATCTTCTGAGCCA
-TAATGAGAAGAAAGTTCCTAAAATCACAGTTCAAAAGAAAATGAAATATG
-GCTTAAGCATGACTAAGCCCACTCTCTGGAatttatatgtatatatttac
-agattcactatgcatgtatatatgtgtatatatattttaagatggagtct
-cactctgtcacccaggctggagcgcaatggcgtgatctcagctcactgca
-acctccgcctcctgggttcaagtgattctcctgcctcagtcacccaagta
-gctgggattacaggcgcctgccaccatgcccggctaaatttttttgtatg
-tttagtagagatggggtttcactgtgttggccaggctggtctcgagctcc
-tggcctcaagtaatccactggcctcggcctcccacagtgtagggattaca
-ggtgtgagccactgtagtcggccacatgtatatatCTTATTGTGGTAAAA
-AAACAGCATAAAATTTACCAGGAGTGACAGTTGGTTCCTTCTGAGCACTT
-CGTTGGGCAGACCCCACGATCCTTACATGAAACATTTTGAACTTCCTCTT
-CCTTCCCACACACCGGGTGTACGGAAGAACATCTCCATCCATCCTCCAGG
-TGCCCAAACAGAAGCTCAGCTCTGTACCCCTCTTGCTCCAAGATCTTCAC
-ATCCAAACACCCCTGGGTCTCGCTCAGATTCTCCCACTTCCAGAACCCGC
-TTCTGAGCACGGCCACCTCTTCCTGCATCTGCAGTCCCACCGCCCTGCGT
-GACCCACTGCCTTGCACGACCCACCGCCCTGCAGGCACCAGCTTCTGGCA
-TCTGATCTGATGGCCCCACAACGCTCACTGCAGAGCAACCTTCCTAAGAC
-ACAAATCTGACCATGATTCTCCCTGATTTAGAATCATCCTTGGCTCCCTG
-TTGCCATCAGCAGAGAATCCGGAGTCCTCAGCACATAGGCGATGCTCGGG
-GGGCCTGGCCTCTGCGTCTCCCCAAAGGCTCCAGGAATGTAGACACCAAG
-TGCGGCCCCCCAGCGCTGGCCTCCCCACTCCTGCACAGCCCCCAGgagta
-gagggcaggtaaagcattgggaccctcctgccagaggctctgggttcaaa
-tcccagctccaccactcaccacctgcatcactgcaagctaacccctgagc
-tgctcaggccccagggtccccGCTCACCACTGGCATATCTGGCATGTTAA
-GGCAGCAAAGCACCCCCAGCCATGCCCAGCACTGTGCCTTTAAGAGCCAA
-GGCGCTGGCCGTGAGCGCAGCCCCACAAATGATGGCTGCTGGTTTTGTTA
-CTGTCACAACAATCATCCACGGAGACCCAGTGGGCTCCGATGTTCTCGGG
-TGACACTGGCTGCCAGGAGCCCGGGAACAGCCAAGCCTCGTCCGACTCCT
-GCTCTCCCAGGAGCGTCCCCATGGCTCTCAGCTCTGCCTCCAGGAGCCAC
-GCCCTCGTCGCGTCCGCTGCCCACTCTCTCCTCCGTGGTATTTCCTGTGT
-GACCCCACGTGGCTCCTGGACAGCACCGCATGGAGCCTCTGCTACTGTGT
-GAGAGGAAGCCACGTTCCCTCGCCCTTCCTCCCGTGCCCGCCGGTCCTCA
-GCTGAGAATCGCCACACAGCCAGGCTGTGGCCACAGAACTGCTGTCTGCA
-GATCGCTTCCGTCCCCGCGTCCCCAGCCTTGACGGACTCCGTCCAATGAC
-GACAGTCCACGCCCACGTCGGCGACGCCCTTCCCCTTCACAGGCAGTGTC
-ACGTTCCTGCTCTCAGCTCACTGTCCCCATGGGTGGGAGGGCCCCTGAGG
-GGACTTCAAGGAGACCCTGGGCTCGTGGAGCCTCACGGGGGAAAGCCTGA
-CTCTGAGTCACCACTGGAAAGTGCTGCAGGCAGCTGTGAAGATGAAACGG
-GCAACGCCAGCTGCTCCTCCCCCTCGGACTCGGCAGCCTTGCCCCCACGT
-TCCTGCAAAGAGCACGACCCCCCAAGGGAGCTCAGGTTCTACCCACCCTC
-AGGGCCCTCACCTCACCAGAGAGGTTCCTGCAAGCAGCACGGCTGAGAAG
-CTGCTCCAAAATAGGACCCCACTTCAGCCTGGGTGAGGCAGGGGCCTGCA
-CTGGTGCCTCAGGAGCCAGTCGTGGTGGGGGCCTGGCTGGCAAACCTGAA
-GGGGCAGCCCAGGCCTGCAGCCCGAGCCCACATGGAGACACCGGGACTCG
-AGATGGGCCTGAGGGGAAATCACCTCCCTTCCTTTCCCACAGCACACTTC
-GGGGGAGGGAAGGAGGAATAAAGGGGAGGCCGGACCTGAGGAGCGCTCTG
-GGGGGCTTCAGGAGCACCAGGGTGTGCATGGCGGTGTGGGGAGGGTGCCC
-AGGGCTGCAGAAGTTGGAGACGGCTCCAGAGGCAAGTAGAGCCTGGCAGG
-CAGGGGAGAGCGCACAGGCCTCTGACGCCAGGAGCAACCGGCATCTGGGA
-AGACCCTGTGCACACCGCGAGCTGGTGGCGACCGCATGGCCAGGGTGAGG
-AAGGACAGGCCCCTGGGATGAGAGGCCCTGGGGAAGCAGCTTGCATTTTA
-GCCTGGAAGGGCTGAGGTGATTCTGGCTACAGGGGACCCTAGCAGGGAGG
-ATGTTCACTGCACAGAAGCAGTGAGGAAGACCCGAGAGGAAAGAGCAGGA
-CTGCCATCGCTGGCTCTGGGCTCCAACAAGGAGAGGGAAATGAAGGACCC
-CCTAAGCCTCACACTGGCTGGGCACAGAGCAGAGACAGGGCTGCAGGCGG
-ACTCTGTCTGGCAAGAGTGCCTCGATGAAGCTCTGTGGCTTCCCCCAGGC
-TGTGCTGCCGAGGTCTCCCGGCTGACAGTGGAAACAGCACAGGAGAAATC
-CCTGTGGACTGCCTGGAGGAGACCCAGGGACTGGGCTTTTGGGTTCTCTG
-CTCTGTGAGGTCTGAGAGGTGCGCTGAGTGGGCTCACTTAAGGCATTAGT
-CACAGGCTCTTTGTCCATGGCTGCCCCAAGGTATCATAATTCATTTGAAC
-TGGACGTCCACATCCCTCCAAACCCAAGTTCAATAGCATTTCATTACTGC
-AAGGGCAGACGGAGCGCTTTCTTCTGTGTTCCAAGTTTATTTCAGCCTAA
-ATTATTAAGCAGCTTGTTTAATAATGCAAGCCTTTGCATTGTCGATGGAA
-GAGCAGGCGCCTTGTTTCAAAGCACATTGTCTCTGGAAAGCTGCGGGAGA
-CCGGCTGTCTCTCTGATCTTGCGCTTAGGGTCATCTGTTCATCGCGAGGA
-GGAGGTTTTTACTTGTTGATAAATGAGGTGCGGCCAGCTCTGCGTGCCCT
-GACGGGCTACCGACAGCCCGCTCTTTCCAAACGATGCCTGCCTCCTTATT
-GCATGTGGTGAGCTTCCTGGGATGCAGGCCGACCATTCCGGTGGTTTTCA
-GAGAGAAGCAGGTGCTGCCTAAGCCAAGCTCCTTCCCGGCGCACCTCGCA
-TGACACACGCACACGGACGAATGGTGCATTCTTAAAACACTCGGGAGAGG
-CGTCGTTTCCTGGGCTAATGCTCCTCACTCCATTGAGACCCCTCCAAGCC
-CACACCCTTTGTGCTCAGCTGAGAAGCTCATGCAGGCCACCCCCAGCCTG
-CCGGGGCTCGTGACAGCCCAAATGTCAGGGAGGAGCAAGTGGAGATGGGA
-ACTTGCTTCACGTGTGAATCAAGACTCCATGTTAATTAACCATAAGCTCC
-ACCAGGAGCCCTCTCCAAAGCCATGGAACACCAGGCCCAGGTCTCCGCAC
-TGAGACTTGGTGGCCTCTGCCCTGAGACATGGTGGCCTCTGCAGCGTCCT
-TGTCACCTCCAGGCCAGTGACGGCCCTCCCTGTCCTTCAGTCCCTCCCTG
-CCACCACGAAGATGGGAACCGGTACAGCACCCTGTTCGCAAGCTTCGTAA
-AGCAAGTCCACCCAGCCCTGCCCTGGGATTTTAGAGTCCCGGGTGGGTGT
-TTCCAGCCATGTCTGAAACGGCAAAGAATCCTTGAAAATCTCCCCAGGAG
-GAGACGGATCCAGAGATGGACGTGCTTTCTCCTTCAGCCTGGGCACACTC
-GAGGGTGAAAGGGGCATGGGGCGTAGTTGCACAGGACGGCAGGACAGCAG
-ACGGGCACCAGGCTGTCGCCAGGTCCACCCGGCTCACGTGGTCCCCCAGC
-CTGAAAGCTCCTCTGGACACCTGGTCCAAGCCTTGGGGGCGCTGGGATGC
-CCAGGCTCATTCGGGCTCCACTTTCTACAGAACCCTTTTCACAGTCTAAG
-TCTGTCTGAAAAGCCCCAAAGGGACTCTCTGGACCCTGTGGGCTCATTGA
-GTCTCCTAAGTGTGTCCCCACCAGGAGAGCTGTGTGCTGGGCCCCCCATG
-CCCGCAGCCCGTGCCCCCCCCCACACCCCGGCCCCCCATGCCCAGCAGCA
-CGTGCATTTCCACTGTGGTCTGTGCCTTCAGCTGTGACCCCACAGAAGAC
-ACGGCCCGGGGACAGGGTGATCCCAGGCTTTCCGCATGCAGAGCGGGTTA
-CTGACCCCCACAGATTTGCTTCAGGCCTCTGGGCTGGCAGATGGGTGCTG
-TGGGGTGGGAGTCAGGTGGTCGGAGTCCCAGGCCGGGGAACGTCCAGGTG
-CTGCAGGGAAATCAGGACGGCGCCCGAGGGAAGTGCGTGAGCCAGGGAGT
-CGTGGTGAAGGAGCCTGGGTGCCTTGAGTGATTCTTCCTCTCTTGCCTGC
-TTTAGCTAGGCGCCTGCTTAAACGAAGCCCTTGGAACTCAGTGAAAGCAG
-CGGCATCCTCAGAAGAAAGAGAAACCGCTCACCACTGTCAGCACCACGGC
-CCCGTTCCCTGCACCCCCAGCCTTCATGGGGAGGACACATCCTTTCACTG
-AATTGGGAGAAAAACAGCATCACCCCCACCCCGCCCCCAGGTTTCCTGAG
-CCTCAGCACCAGGGAGAGTGCTCAGAATGGGCCCTGGACTCTGGGGCCTG
-GAGCAGGTCTGAAGGCTCCCGCAGCTGCAGTCTCTGCCGTCTGCACTGGG
-GACGGCTCTTGGGTTGGGTCCTTCTTCCCTGCGCACTCCGAGGTCCTCCC
-TGCAGCCTTCCAGTCAGCAGGACCTGGCTGGGGGGACAGCATCAGGGGCA
-CTGGCTGAGGGAGGTGAATGAGCCTCTCCCTGGTATGCAGGAAGGGCCTG
-GTGGGAAGAACAATGACTCAGCCTGGAGATGGCAGCAGCTCAGCCCTCAT
-GGGACTGTCTGACTCAGTCCCCACCCTCTCTGTCCCCAGGAATGACCAGC
-CATTGGGTGGCCCTGCTGGAGGCCGCCCCCGCCTATGACCAGACAGCCTC
-TGCTCTGGAGGGCTCCTGTCCTGAGTGCCGACTGCCAGGCCGTCCTCGGG
-CTGGAAAGGGCAGAGCTGTGGGGAGGTGAGCAGAAGCCCAGGGAAGCACC
-GGGTGCTGGGCAGGCCAGCCAGCTGCAGGCATCGCTTTCAGGGTGCAGAA
-GAGCCAGACCCAGCCCAAGGAGGGAGGCCCAGAGTGCCTCAGTGATGACC
-ACGTGGGCATAGCCAGGAGGAACACCCAGGGCGGCGGTAGGTCCCTGGAA
-GAGGGACACGGTGGGCATTGCCTGGGGTTGGGAAGCCTCCGTCTCTGCAG
-GTCACTCGCACCTGGGAGTATGGCCACGGTCAGCCCCAGAGTCCGGAAGG
-AAAGCAGGGCCCGGGAGGCCTCAGGACCAGAAACAAACAGAGAAGATGCC
-AGAGGCATCCACAAGGCAAAGTCAGCAAAACAGGGGATAAAGGAGCTGTT
-TCAGAGGAAGAAAAGTCCCGGTCCTGCAGGAGGGGCCAACTCCCAGCCTC
-ATGCTGCTGCCACAGGGGGCCTGTGGGGCTGGTTCCAGCTGGGGAAGCAC
-AGGGAGACGTCCACCCAGGAAACTGCTCCAAAGCCAGGACAAGTGTGACT
-GGAGTTGGGAAGAGCAGAGACGATGGCTCAGCAGTGAACAGCCAGGGGCA
-GCCCAGGAGGCGAAGCTGGCCCTGCTCACCCTGTCCACATCCTGATGCAA
-GAAGAACATGGCGTGGAGCTCCGTAATGAGGCAGCATCCACTGCACAAAC
-AAGCCCAGAAAAAGGGAGACACACAGGTGACCCAGAGTGGAGTCAGGAAG
-CCCCGAGAAAGGACGCGGGCTGTGGCTGCTGCAGAACTTGGAGCTCCAAA
-ATAACAAAGGAAATGACCTATGCACAGCCACGAGGAGAGAGAGACGGGGT
-CCCAGCATTGCTGGGAGAGGCCATGATGCTCAGTGGGCACCCACCATGAG
-ATGCCCGGGTCCTGAGCCAGGAGGCGGAGCCACTCCCCACGCACTCTGTC
-CTGACTTTGGTGACAGGAGCAGCCACTGAATGCCATCATCTGCCAAGGTG
-ACCTCCAAGCACTGGGCAGGCAGAGGCCGCTCCTGTTTTCCAGGAAGCTG
-GCAAGTGGGCTCTGGAGACGGCAGTTTTATCTGCAGGCAGAGGGAGCGAC
-CAGGTGCCCGAAGCCCCTCCACCCCGGGACTGCAGCGTCCTGGGACCCTC
-AAGACAGGATCCCACGAGGAGGGTTACCAGCTCCCCGGCCGAGGCGTTCT
-CTTTCCCTACGGCCTGCCTTTTTCATAAGATCAATGCCGTGGAATCCTAC
-GGTGGGAGGTCTtttgtccatttcctcaatataaaactaacaggcaaaaa
-gttactcttaatatcctctttgtgccctgttaatatctattgacctttaa
-tgaatattcctattttattgctaacagtcataacttgtgttttctttctg
-gttttttaaaatattattcctaggaaatgaattattagctaatacttcca
-aagaacgaacctgtcaaaggtaaatctgctttctatttcattgatttttg
-gtcttatctttattttccttcttcagtttttgggggttttatatactgtt
-cttttcatagttccttgaattgaaagtttacatcattgattttcaaattt
-tgttctttttaacataggcatttaaagctataatctccctctaagttttg
-ctttggctgtttcccacaagtttagatctgttctatatatgtcacatatt
-atatgttatatacatatatatatatatatatatatatatatatatatata
-tatatacacacatacacatctagttcttattttattcagtttaaatattt
-tctaattttgctatgatttcttcttcaattcatgggaaatctaaaatgtg
-tttcacaatttctaaatatttggggcttttttcataatctttttgtaact
-gacttccagtttaattacattatgataagaatatataatgtgcatgattc
-caataatttgaaatgtattaagccttgttttttggcctagcatatggtct
-attttcataaatcttgcactaaaacttaaaaacttggaaagcatgtgtgt
-tctgtaggttttagatgtggttgcaggtagcgttagtgagggaagtatgg
-aggaatatcaactcgacatagacttgggagcttctctcccagtctgccga
-gtttcccttcatctaactgaagctgtgtcattaggtgcatgtacatttaa
-gattgttatctccccctgtggaatcggccctttgtcattgttaaaaatcc
-ttctttatttctggcagcacgtcttgctttacattctgtttgtttgaaat
-tgaaatgggtatagcttcgtatagtctcaaactttctttctttctttctt
-tttcttttcttttctttttttttttttttttttgagacagggtctcactc
-tgtagcccaggctggagtgcagtggtatgatcttggctcactgcaacctc
-tgcctccagggctcaagtgattctcccacctcagtctgcagagtagctgg
-ggctaggggcacatgctaccaggcctggctaaattttttttgtattttta
-gtagagacggtgtttcaccttgttggccaggatgatctcaaacccctgag
-ctcaagcaatccccctgcctcagccttccaaagtgctgggttacaggcgt
-gagccaccatgcctggcctcaaactttcttttggtttgtgtttgcatggt
-gtgtatttttccatcctttaccttacaatcaatgtgttcaatgtgtttcc
-ttctatttaaagcatttatattacaaatagcacatagctgggtgtattta
-aaataacattcaaacaaatgctccttggattttaatcagaatgtctggcc
-catttccatgtcatggaaccgatgatataactgcatgaagtctgccatct
-tgctaggagtgctgcattcaacccgtctactctttgttccttcctctttt
-cttgccttatttccagtgatcaagtatttttattattttatatcctttat
-attatcagttatgcatgttagtgttattttcttcctgaacgcatgaaggt
-ttaaatgtgtatccttaatttacagtttatcttACTTATCCttacagttt
-atcttacttatccttacagtttatcttaaattaattttttatcacttatt
-aaagaatgcaagaatctatcattatttaagtatatttacttctcatctgt
-cctttggcggttgccaccatctactttagaaatgcaaaggatacggttat
-tattgttactctaagcaACAAACAGTACATTTTCCTTTTCTGATTCTGTT
-CATTCTTTTCTGCAGTTCCATGTTTCCAACTGAACCCATGTTCCtccact
-aatacttggattttcttccaccacggccgttcctgagacagcaagaccag
-ttcctcctccttctgctcctcctcagcccacttgacgtgaagacgacgag
-gatggagaccttgatcgtgccccactcccacctaatgaatagtctgtaga
-ttttctcttccttaggactttcttcataacattttcctttctctatctta
-ctttattataaaaatacagtatataacacagatgcaaattatgtgttaat
-tgagtttttatgttatctgtaaggcttccagtcaacagttggccctcagg
-agctaagttttgggggagtccaaagttgtatgagtatttttcactgtgta
-ggggatcagtgcccataaacctcaggttatttaagggtctactgTATAAA
-GTAAATATTGGACTCATAATAACAATAGCAGCTATAACATCTTTGTAGCA
-CTTAGCCTTGGTACAGGTGCCTTCAATATGCTAACTAATTTAACTTTTAA
-CCAAGCCAGTTCTTTATGTAAAAAAAACGATTCATCATAATTTAATATCT
-TATACATGTTCCATTCAATTTTCTAAATTTGGCTAATATAAAATAAGGTT
-TAATATTACCATGATTTGATCAACATTTCAAAATTACATATATTTCTCTT
-ACAAATTCATTGTTATTGACATCAAATTTATAACCACGTTATTGGCATTG
-TTTAACCACACAGTAAAATAAGTGTAATCAGTGAAAAAAATAGAATAAAA
-TCTATATAGTGGAGACCTTGAAATATATGTGCGAGAGTGCAAGAGTTTAT
-TCACTGTTGGGATGAAATGCTATTTAACAGTTTTTCTTTCCCAAGGGATG
-GAATTATGTGGGATTCTTGTCTCCATCTGAGATCTATCCCAGGGCATCAT
-CTCCGGAGAAGTTTCCGTCTTCTGCGGTGAGTGCGTGGGAGTGTTTCTGT
-GAAAGGTGCACACGATGAGCTATTTTAGATCCAGATGTGCAAAGTCAGGT
-CGAAGCGAAGAACTCTCCCCTTATTCCCTCTACTCTCCACAAAGAAAACA
-GAGAATGGCCAACAGCTCCAACCGTGTAGAGAGCTCAAAAGACAGTCCTT
-AAATGCAGCCTCTGGGCCTTGCAACAGGAGGTTGACTTCGCCACGGGAGC
-TTCCAGTGGATGGGACGGGGGTAGATGTTAGTCGGCTCTGGGACTTGAGG
-AAAGTTGACCTGGCTCTGGGACTTGAGGAAAGTTGACCTGGCAACAGGAG
-TTTCCAGCGGACGGGGATGAGGGTAGATGTCAGTAGCCGGCTGGATTCGG
-GGCTCTGGGGATTGAGGAAACTGAGTCCCACTCTTTCAAGACACATGAGG
-GGGCGGGAGGAGGACACATGGAGGGTTCCGTTGGAACCAAAGCTTTCTtt
-catctatttatttattttttacttatttatttCATCTTTACTTTTTACTA
-AGATAGGAAAAACTTAAGGACGTTTGAATTTGCCAGGGAAAGAAAAAGTG
-CAGCGGCAAATCCGGGAGAGAGGAATCTCTGTCTAAGGGAATTTATGAAA
-GGAACGGGGCCAAGATGATGGGATGCGTTTCTGGGGACAATGTCCTGAGG
-TAGGAATGGAAAGAGAGTAAGGACTGTGGGCGCGAAAGATGCCCTCAGGA
-CAGCAAATGACGGGGGAAGGGGATGACAGTCAGGGAGAAGCTTCTGTGCC
-CCATCCCAGAGACATGGGGAGGAGGAAGACCAGGGCTGGGACCTGGTGGA
-ATGGAGACCATGGCTATCAATTAGTCATGTCATCAGACTGGACAATTCTA
-CAGTTTTCTCTAACAGTTTCAGCAGATAAAGCAATGATATCCAAAAATAA
-GGTTCGGCAGGGTGGGTACACCCCACCCCCTCAGCTCAGGAGAAAGAAAA
-TCGGAGCAAGCACTGGGGTTCTGGACTCTGCTGGGAGGCAGGAGAGCTCG
-TGGAGTGGACAGAGGCCATCAGGAGGCGGTTTGTTTGCAGTATGTGCAAG
-TAATATTCTGGGAATgatggagagattgctaaagccaggaggcagtggtc
-agagagttggttatttaaattttagatAGTTATTATATTATTTAAACTTC
-AGATAGTTAAAATCTTCTGTGGGGGGATTGGATGTTCTTGGTAGTTCCAG
-CTGACACATGGAATCCGGGGAGAGACGGTATCTGACCATGAGGATGATGA
-CCTGAGACGGGACTGGCGGGAGTTGCCTGTGTCAGGTGTAGGGTGTGGGT
-AGGGGTGGTGTCAGATCGGTGAATTCCAGAGACAGTCCAGGCTGGAGACG
-CCACCTCTAACATATCAGCACCAAGGCAGATGTCAAAGCCAGCTTGTGGG
-CAGCCCTGGATTAAGAGGTCATGACAATTCCCAACACCCCTCATGCGCTC
-CCTCCCTCCAGAAGTGGAAACCCCCGTGCCTTCCTTCCCGATGCTTTGGA
-ATTAAACTGCAGGGCTTGAGTGAAAAACAATTCCTCCGAGTCGAACTTCC
-TCCCGCTTGCACCTACCCCCAGGTGCTTTTCCCAGAGCAGGGCGAATAAA
-GAAACGAGATCAGAATGGACCCTTGAAGACCAGTGGCGCGCAGGAGATGG
-ACAGAGTAAATTCAGTAAAACAAATGTTCTGaaggacaatgggaagcgtg
-attggagagataaaagaagaagtgctataaagtcattttacagaattaat
-gaggagagagttaagccagagggagcgatcaacagtgtcaaataggaaaa
-gaactcactgtgccccttggatttgacaatatggaaccaggtagttaatt
-tttccagtgcagacttggtgaaataacatgacccggttacaggaggttaa
-agacagaattgatggtgaTGGAGCAGACGTTTGGATAGGAAGAAGAGGAC
-AAAGGCAGTTTCTTATCATCTTTAGTGTGGGTGCCCGTTTGAGCGAGCCT
-AAGAGTCATTTAATATCAGCTAAATTTCAGGAAAAACTAGATTTTGAGAA
-ATATCACCCTCCTTATGTCTTTTTTCTCATCAGCAAAGTGTTGAATGGGT
-TCATTCTGCTTCCAAAAGAAAGTGAAAATCTGTGTGCAGCAGTGCAGTGG
-CTAAAAACAAAAAAACAAAAGTGGGGACTCCCACTTGCTTCCTGGAGGGT
-GTGTCCCCTCCCTCTGCTGCCTGCATTAACAGGAGGGTATTCAGGGCCAT
-GGGGTGTGAAGTTGGGGAATAACGCACCTGCCCCCTTTCTCACACATTTG
-GTTTGCCAGTCTGTGCCACCTTGGGGAATGGGATCTCAGTGGGAGATTTT
-TTAGCCCAACTTGTCTTATGAGTTACTGCGCTGGGTCATTAGTCTTTACC
-GACCACTAACATGTAAGTCTTGCAGTTTGCTTCTCCTCTGTTTACCCATC
-TCAGAATGAAAGGCCATGAAATATTTAAAAGCATCGATTCTGCATTCCCC
-CGACATTATTAACAGGGAACAAAAAGTTATTTCATACCCTCATTTTGTCA
-GTTGCCTAAAGAACTCGAGGGACATGGAGAATTTCATAGCAGGCACCCGC
-AATATAACAGATTGCAAATCCTTTCAACACTTTCAGCTAAAAAGTCTGCT
-GAATAATTGAGCACACAGAATTGCAACCCACTTAGAAGTCTTCTCCCTAG
-CCAAAGGCGCAGAGGCCACCCTTGTCAACGTGGTCCCACCAAAGGTTCCA
-CACTGCATGTGGTCAGTTCCCTGATGGAGCACTTGAGTGGTACTTCTGTG
-ACCCAAATTGCAAAGGGTGGCTGGAAACAAAGGAGTCAGTCAGGTGGGAG
-AAAACAGAAGATTCTCCCAGGAAGGGGATGGTCATTACTTAGATTTCACC
-AAAGACCAGAACCTGTGGGGCTTAGAGGCTGAAGGGTGAATTAAAACAGC
-AGGATGCAGGCTTAGATCACAAATCCGAAAGGAGAGAGGCCACATCGAGG
-CCCCACTGTCCTGGATTAATCTCTACTTGGATGGAGTGTGTGACAAAGGC
-CTCAATGTGGCATATCCAAGCTCAAGGTGACTGCCTTTCTCCCCAAATGC
-CGTGCTTCTCCTGGCTCCCCAGCCTCGTAAAAGGGACTAAAAACTGCAGT
-TCTCAGGTTAGACATGAAATCAATGCATCGCCTTGTAAGGGATCCGATGA
-GCTCCACTCCTGCATCTGCACACCTCCCCTCAGTATGCAAATATCCCTGC
-AAGCAACACACACAGGATGCACCTGACCTTCTCCACTCAGTATGCAAAGA
-TCCCTGCAAGCGACATGCACAGGATGCACCTGACCTTCTCCATTCGGTAT
-GCAAAGATCCCTGCAAGCGACATGCACAGGATGCACCTGACCTTCTCCAT
-TCGGTATGCAAAGATCCCTGCAAGCAACACACACAGGATGCACCTGACCT
-TCTCCACTCAGTATGCAAAGATTCTTGCAAGCAACACGCACAGGATGCAC
-CTGGCCTTTGCCTCCTCAGAGAGCCTTGGCGTGTCTTCCCCATCCCTGGA
-AAGCTCCCTGCACCTGGTGAAATCTGAGTCACCTTTGACACCCCCACCTT
-CAACCTCACTTTATCCAACCTGGAGTCAGAGCAAGATCTGCAGCCACTTC
-AGGAAGCCCAATCATCTGGACACTTGGGGAGTGGATGGTGATGATCTGCA
-AGGTGTTGACTCGCCAGGCAGGCTGAGGGCAGTCCTCAGTCAACACCAAA
-TGCAGCAGGCTCCAAGGTCTGAGCTTGGTTATGGTTCTGCTCTGTAATTA
-AAAGATCATGTGTCCTACTTAGCACACAAAATTCTATAAAAATTGCATGA
-AACAGAGCCACTCAGTCTAGAAAGCAGCTGATAGTGGCCGGCCTCAGCAC
-ACCACCATCCCCCACAGGGGTGGCCTTCAACACAGCTGCTCGTCAACTCA
-TCCTTTCCCAAGGCTTCCAGGGCTTTCCGTGATGGAGTTCGGGTGTCCGC
-TCTCCCCATCCAGGTGTGTGTTCTACGAATCCACACTCCTCTCAATATCA
-CTCCCCAGACACTTTCAGTCAGCCTTTCCTTTTCCTCCAACTCCGCTCCA
-ACCAATCTTCAAGTGTGGTGATTTCGAGTAGAAAACATTTCTCCAGTCTA
-TGAGGCCTCCATCTCTGGGCGATCACTCTGGTCCGAGTGGCCACCCATCT
-TTCTCCTGGTTCTGAAAGCACACTGTCTCTAAACCATGAATCTCACTGGG
-TCACACTCTTGGTTACCAGACCTCAGCTGCTTTCCACTGCCATTGGGTCG
-AAAATTATGACCCCACCTGCGATGTCCCACCTGCCTGGCTCTGCTTCCTC
-TGCATCCCTTCTAGTATGCACTCCTGTCCTGGAGGGCTGGCTGTCCTCCT
-GTCCTCATTCCCTAACCCTGCCCCACTGTTCCCCAGCTCAGGGCTCAGGG
-CTCGGGTGCTGTGCGTGCCTCCTAGGAAGCCCCGCCTTCCCGCCCTCCTT
-CTCCTGTTAACTCTTACTCCCTCCGGCTCCAGTTTACTCAGGATTCCTCT
-GACCACTCCATTCCAGGAAGCAGTGGGGCTCTGGACTGGCACTCTCCTTG
-TACCTCACATGTAATTAAATACATCCCTGAAAGCCCCTGCTGTACTGGTC
-GCCTTCCGTGCACAGTCTGGGGGAACAGGGCCACGCCCACCTTGCTCATG
-GCCTTGACTCAGAGCCTGGCCCAGCACCGGGTACCTCTGTCAGAAAGAGC
-TTCTCCTGACCTGGCTCCTGCGGCTTCCGTCTCAGCAGGAGAAACGTCCC
-CCACTCCTCTCCTCATGCAGTGTCCCCCAGCTTCCCGGTGTCTGTTCATG
-GCCACCTGCTTCTATGGTCTCTGTACATTTTACACAAACCAAAATGGTTC
-CATGTAAACAAACTAAGTAAAATAACTTTAGTTTGCATGAAATGCTGCAG
-AGACAAAAAGCAGGTGGCCATGAGGATAAGCGGGGAGGTTCCTGAGTTAG
-GAGGGAAGTGGGGAAGGCGGTTCTGAGAAAACCAGGCTCACATTTGGGGG
-AATAAAGGAGCAAGTGCTGTCAGCTCTGCAAATCCTTCCTCCACCCTCGC
-TTCTCTCCCAGTGCCAAGGCCGGGAGCTGTGTCAGAGCCCCCGGGATGTG
-TCCTCAGCTGAGCCTCATGGCCTCTCCTCTGCCCCTCACAGCCTCAGATG
-GAAGCTCAGTCAGACCCCTCTGGTGCGGGTCCAGCCTCACGCCTGCTGTG
-TGGGTCCAGCCTGACCCTGCCTTGTGGGTCCAGCCTGACTCCTGCCCTGT
-GGGTCCAGCCTGATCCCTGCCCTGTGGGTCCAGCCTGATCCCTGCCCTGT
-GGGTCCAGCCTGACCCTGCCGTGTGGGTCCAGCCTGACCCCTGCGGTGTG
-GAGCTCGAGTTCCCTTGGACTGCctttcctttctctcgatgacgctttct
-gctcagaggtcacgcacacttttcatagatttatttatttttgatactat
-ttatagaacagtttttaaaattccatttttaattgttgatttttatataa
-aaacaaacatgatatttaccttgttccaggaaccaagatacatgcaactt
-attaattctcataattattctgtgacctttttgaagtgttacctagtcaa
-ttctgttgtacccaaataactttgattttttatattctggtcctcatgct
-tgagttattcccctccccttaatgatctgcctaaaatctgcagttcaata
-tgaaaattgagggaggatgggagcatccctgtcgcaccatcatgtcatca
-gctgcctggcattatcagattaaggaaactccattctcttcccagtttgt
-caaatattttatcaataatgaatattggaccgagagcggcggctcacacc
-tgtaatcccagcactttgggaggcccaggcgggtggatcacgaggtcagg
-agttcgacaccatcctgaccaacatggtgaaaccccatctctactaaaaa
-tacaaaaattagctggatgcagtggtgggcgcctgtaatctcagctattc
-gggaggttgaggcaggaaaatcgcttgaacctgggaggtggaggttgcag
-tgagccgagatcgtgccactgcactctagcctgggcgacagaggaagact
-tcatcttaaaaaaaaaaaaaaaaaaaaaaaagaatattgatgtttttcaa
-aagactttttgtgcctaagattatcattttctcctggtttattctattaa
-tgtggggaattgctgtagtgttttgtttgaatatatcatgaacatacaaa
-aatacaaagaccttcaatgttcagtttgataaactttagcaattgtataa
-attgtgtcccagcacccacagcaagacacaaaccatctctgtcccgccag
-gaagctccCTTGTCTCTTCACACACTTTCTGCTctgtttttagacttttt
-ggttattttcagtttggggcgattacggataacagagctataaacattct
-tatgaagttgcttatggtgacaggcagcacccctacccccaggtaaatgc
-ctgcgagtgaaattgctaagtcaCGAGACAGAGGTGGACCCGTGATCACC
-TCGCTAGTGTAATTCATCACGTCTAAGAGATTTTCTATGTGCACAGTCAT
-ACTGACTCACATCTAAGAGACTTTCTGTGTGCACAGTCATACTGACTCAC
-GTCTAAGAGATTTTCTATGTCCAGTCATACTGACTCATATCTAAGAGATT
-TTCTGTGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTTTCTATGT
-ACACAGTCATACTGACTCATGTCTAAGAGATTTTCTATGTCCAGTCATAC
-TGACTCATATCTAAGAGATTTTCTATGTGCACAGTCATACTGACTCACGT
-CTAAGAGATTTTCTATGTCCAGTCATACTGACTCATATCTGAGATTTTCT
-GTGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAG
-TCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTGAC
-TCACATCTAAGAGATTTTTTCTATGTGCAGAGTCATACTAACTCACGTCT
-AAGAGATTTTCTATGTGCACAGTCATACTGACTCATGTCTAAGAGATTTT
-CTGTGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCAC
-AGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTG
-ACTCACATCTAAGAGATTTTTTCTATGTGCACAGTCATACTGACTCACAT
-CTAAGATATTTTTTCTCTGTGTACAGTCATACTGACTCACGTCTAAGAGA
-TTTTTTCTATGTGCACAGTCATACTGACTCACATCTAAGAGATTTTCTAT
-GTGCAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGTCAT
-ACTGACTCACGTCTAAGAGATTTTTTCTATGTGCACAGTCATACTGACTT
-ACGTCTAAGAGATTTTTTCTGTGTGCACAGTCATACTGACTCACGTCTAA
-GAGATTTTTTCTATGTACACAGTCATACTGACTCATGTCTAAGAGATTTT
-CTGTGTGCACAGTCATACTGATTCACATCTAAGAGATTTTCTGTGTGCAC
-AGTCATACTGATTCACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTG
-ATTCACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTGATTCATGTCT
-AAGAGATTTTCTGTGTGCAGAGTCATATTGACTCACGTCTAAGAGATTTT
-CTGTGTGCACAGTCATACTGACTCACATCTAAGAGATTTTTTCTATGTGC
-ACAGTCATACTGACTTACGTCTAAGAGATTTTTTTCTGTGTGCACAGTCA
-TACTGACTCACGTCTAAGAGATTTTTTCTATGTGCAGAGTCATACTGACT
-CACGTCTAAGAGATTTTCTATGTCCAGTCATACTGACTCATATCTAAGAG
-ATTTTCTGTGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTTTTCT
-ATGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTCCAGTC
-ATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTGACTC
-ACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTGACTCACATCTAAGA
-GATTTTCTGTGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGT
-GTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGTC
-ATACTGACTCATATCTAAGAGATTTTCTGTGTGCACAGTCATACTGACTC
-ACGTCTAAGAGATTTTTTTCTATGTGCACAGTCATACTGACTCACGTCTA
-AGAGATTTTCTGTGTCCAGTCATACTGACTCACGTCTAAGAGATTTTCTG
-TGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGT
-CATACTGACTCACATCTAAGAGATTTTCTGTGTGCACAGTCATACTGACT
-CACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTGACTCACGTCTAAG
-AGATTTTCTGTGTGCACAGTCATACTGACTCATATCTAAGAGATTTTCTG
-TGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTTTTCTATGTGCAC
-AGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAGTCATACTG
-ACTCATATCTAAGAGATTTTCTGTGTGCACAGTCATACTGACTCACGTCT
-AAGAGATTTTCTGTGTCCAGTCATACTGACTCACGTCTAAGAGATTTTCT
-GTGTGCACAGTCATACTGACTCACGTCTAAGAGATTTTCTGTGTGCACAG
-TCATACTGACTCACGTCTAAGAgattttctatgtgcagagtcatactgac
-tctgcagctaaaaatgcttggacttcatcttttccaattcatattgtttt
-tatttctttgtttttcctaagttactggcaagaatctccagtacaatttt
-gatagaagtggaaggagtggacgtcttggcctgcttcctcttcctcagga
-agaaatgttcagtattttaacatcaattaaggtgttagctgtaagttttt
-cataaatgtccttcatcagattttccacgttgactcctgttttggcgagg
-gtttttgctatgaagaggtgctgaatttatcatgcacttttgccacatct
-attaagataattacgtttgttttttcctcttttatcctcctgatgtgcat
-taccttgattttttaatgttaaaccaaccttgccttctggagttaaaacc
-caccttgtcccaatgcttgatttaaatagaaaaatttcattaagtctttc
-tgaatctttgtggaggaatgatactggtctgcaactaccctcttcataat
-ctctttgatggtgtttgagtcgatcccacccttcttataaaagaatttgt
-tggccaggtgcagtggctcatgcctgtaatcccagcactttgggaggcca
-aggtgggtggatcatttgagatgaggagatccataccagcctgaccaaca
-tggtgaaaccccgcctctactaaaaatacaaaaattagctgggcatggtt
-gtgggtgcctgtagtcccagctacttgggaggctgaggcaggagaatggc
-acgaacccgggaggtagaggttgccgtgagccgagatggcgccactgcac
-tccagcctggaggacagagcaagattgtctcaaaaaaaaaaaaaaaaaaa
-agaattttttaaagattggggttcgttctttcttaaatgtttgaaagaat
-tgtctggtaaagccatctgaatatggagttttcttgttgggaatgttttt
-gagtatgaattcagtttctgtaatagatttaagtttacttagattttcta
-tttgttcctgtgtctgattggttacttcttatttttcaaggaatttgttt
-ttccatcaagttgttgagattgtttacataaaagaattgctaattttccc
-ttgctagacttccaatttatgtaatattaattcctgatagtggtgatttg
-tgtttttcttcttttatttttcttgatcagtgttgttagaggtttactaa
-tattattaatcttttgaaagaaccacctttggcttcagtggattattttc
-tgttttctattttattactttctgatctgagctgagttctgattattatt
-tttttttactttagtaagtccacctttcccttactagcttcttaaggtgg
-gatcatggtttatgtatatccgttttttaaatgcatacatatataaagct
-gtaaatttccccctaaattccattttaactgcctaccacaattctaatac
-tttaggttttcattccgattcaattcaaaataccatctcattccctttgt
-aatgtcttctttcatgcacggaatatttagaagtatgttgtttaacttgc
-aaaaaattgtggattatttaagtgtcttattgctacttatttctacttta
-aagctgttatgattagagaacctattctgtataattttaatcatttaata
-tataagaccatttttataatccgtcttaaggaaaatgtcatgtgcatttg
-aaaagaatgcatactctgtagttgtgggttgtaatgctctttgaatatta
-agtaatccaagttggttgacagtacttttcttattcgataagcttaaaga
-ttttttggctattctaccaaggaattactagatcagtgatacaggtggct
-gaccgtggctacctgtttctctctatgtctgtccattttgctttaggtaa
-tctaacgacaatctctgctgttaggttaatatatgttgaaaatattgtgc
-ctctttaataaatttgtcgtgataaaattccctttttcggtgtctcataa
-cactcgtcctcttcagctccacactgtctgatgccagcacagccccgcca
-gctctcgcacactcagaagagctcccgggcccgtctcaccctctcacctt
-cctcctccccacgtcgttgcagctaaacctgcttcttccaggaagaatgt
-tcctgttttgttttgattcagtctcataatatttacctttcattttgagc
-acttagtgtgtttagatttgatataattattgctatgatgggtttaagtc
-tctcatTTTGAAGTTTGTTAAAAACTAATTCAGTGAGTTCTTTGTTCTGC
-TTGATTGTGAGTAAACTGTATATTTTTAGTATTCTATGTGACGTCTGTAA
-TTGACTTTGTAGCCTTTCTCTGTATTATGTTTATATATTAGCCTAGGAAT
-TAAGTACACATCGCTCAGTCATTATATTCACAGGACATCTTTCTATTTCA
-GAACCCTGAGAAAGCCTCAGAACCGCAGTTCCGCGCGGCATCCTTACGTC
-CTGCGTGGTCTCCTGTTGTATTTCTAGCTATGCTACAAAGTACACTGCGA
-ATAATTTTGCTTCAAATACTGTTATTTAAatatttaattatcattaatta
-atatgctaaataagattattttaaatatatgtaatatgttttattttaca
-ttaaacatttattttatattgcaattttgtattaatatattatattgtat
-GCtaaatatatctttaatgtattttaaattaatataaCAAATGAGATTAT
-TTGAGTTATAGGGTCCTTGCTACTTTATGCTCAGATTCACAGTTTCTCAG
-CCACTGTCTTTGAATCCACAAATGCCTTCAGAGAAAAAGCTTCAGCATTC
-ACACCCAGCCATGGCCGTTCACGTCCCACTCAGCACGTCTAAGCCAGTCT
-GTGCTGCTCCCTGGCCCAGACCTGTTTTTCCTCTGTCACCCTCTCCTCTG
-AAAGGGGCTCCAGGCTCCCTCAACTCAGCCCATCAGATATGAAGCTGGGG
-TCCTCCTGACCCCACACTCTCTTCCATCGGGGGTGATCTCTGCCTCACTG
-TCCTCACGCAGCCCCAGCTCCGGCATTGCACTCGAGGCCACCCGGAGCCC
-CATCTCACTCTCTCTGCACTCTGCCAGGCACTGCGAGAGGCATGGCTTTC
-AGCGGCACCCCCGAGAGAGGCCTCCCTAGCCAGGGTTTGCCCGCGGACGC
-CGCCCAGCCCTCCCTCCACGGTGCCCTGCACACTCTACCGGGAAGCAGCA
-GGGGCTCATGAGGGCGTCACGCCTTGCTCGGCTGTGAGTCTTGTCCATGG
-GGGTGATCTCAGGACCTGCGCCTGATGCACTCAGGAAACACTCGCCAAGA
-CACACATGGGCCCTCACACCACAAGAAACAGCCCAGGCAGTGTGAAGAGC
-AGTCATCGCCATTCTTGTCTATGTTCACTCAGAATGACCCACAAAAATAC
-ACCTGCCCACGTGCCAGAGCGACCCTCCCTGGCCAGGCCGGGCATGAATG
-GAAGGCATGAGCATTTGAGACACTAAATTGAGATTACAGGATCAACCCCT
-GTAAAGCTAGGAGGCAGAAGCCAATGTGGAAATTGGAATTACTTTTGTGT
-GGGTGCCAGCATGTCTCCTCCGGGCAGAGACAAACCAGGGCTGGCGATGG
-TTAATTCACACGGAGTGTGTTGATTCCCACCCAGGGGATGCGGGCCCACC
-CCCCTCCCCATCATGTCTCTCCACCACACAGAACAGTGGCCCCATGACTC
-TTGTTCAAGCAGACGTACCTGAATTTCACTTAACCAGGGCACCACAGCTG
-TTCAGGTGCAATTCTGTGCTCCTTAGCCAAGTGCCTGGCACTCAGAATGT
-TTCCCATGTGTTGGTTCTCAGAGGGGGAGTTGCGGAAACTACCATCATAC
-TTCAGAGGGAATTGGGAGGAATCAGCAGCAGCCAAACCAGGACCGTAGGC
-CCCATCTCTCAGGAGCAGCCCAGGCCAGCGCCGTGGCTCACCTGGCCAGC
-ACCAATTTGCTGGAAGAAGCCCAATTTGCTCATTAAATGCGGGTCCTAGA
-GTTATCCTGGGAGGTAAACAAGAGGTGATTCCATCCTGTATGACTCAGGA
-GGCACAGAAAGTCCTGAAAAATGCATCTTTCCTCCCCATGTGCTCCAGAT
-TCCAGAGCATGATCTTCCCACAAGAAAGCTGTTTTCTATTTTTTCTTGCT
-TTGAGTTGGTCCTCTTGCCAACACCCACTCACCCTCTGAAGGGACCCCTG
-AAACTCTAACTTCTCCAGCTCCCAGTTGGACTTAGCCAAATATGTGTATA
-ATTAAATGGTGGCAGAAGAAAGTGAAGatatgtccagctcttaaccccca
-gtgcctgtgaaggggaccttatttggaaatggggtctttgcagatggaat
-tagttaaggatctcgaaatgaggtcatcctggattcggggcgggctgtga
-atctactgactggtgtcccacaagaagatacggagagctgcagggagaag
-tcatgcaaagacagacacagaggctggagggaagcagccacggccagggg
-agtcctagagccacagaagctgggagaggcaggagtgtcttcccctggag
-ccttccaaggggagtgctgcccaccaacaccttgactttggacctgtggc
-ctccaggctatgcgagatcatgtttgcagctttgggccccccagcttgtg
-gcaatttgttgtggtgaccctaggagaTGAGGACACATCACCATCATTCA
-GGACATTGTTAAAGGAAATCTGCCATGCACGCCACAGCGGGGACCAGAAT
-TAAAGGAAGTTGCTGAGGGCCAGTGAGAAGCCATCCCCAAGAAAGCTAGA
-GCCCAGAGAAGCCAGCAGGAGCTGTGTGACTCTGCCGGTCTGAGAGGTGA
-GGCCCTGGGGCAACACGGGGCTGTCTCCACACGAAATCTCTTTCACCAAC
-AAGAGTCAGTGGGCTTCAGAGGGGCTTAGCAGAGGGGCTAGCGTGGGATC
-CCAGAGACTATGAGTTTTCCTGCCAAGCATAGCTCACCTAAAAGAATAGA
-CATGGGACAGAGGAGAAATGTGGAATGGCATTCGGAGAGGAGGCCCAGCA
-AACCAAAGGAGACAAGCATCCCAGCGTTTAGCAAAGAGGCCTCGCCGGAA
-GCAAAGGGAGGCCACGGAGAGACGGAGTTCCCCTGGGCAGGAGGGCATGG
-CTTTGGCTTCCTCCCAGGCCACTGGGCAGATCACTGACTGACAGAGGTTG
-GGGTCACCTTGGACAGCACCCTCCAAGCACCCGCCTGTTTTATGTGATAG
-AAATAACCCActcagcaccaacctgggagctggacctgacatcacctcca
-cttttggatgaggaaagagaggggaaaggaaagtgccccaaatcccacct
-gtagttagtgaaggagccagggtcagaaaggacctgccccacccccatgc
-cGCATCCCGAGGGGCATGGCATGTGGAGACTATACCTGCATTCCCATAGG
-GTAGGGCTGGGCAGAGCAGCTATGCCCACCTACCTGCACAGCAGGGGCGG
-AAAATGTaaaaaaaaaaaaaaaaaaaaaaCTCAAAGGGAAAATGTAGTAA
-AAAGCAGAAGTGGTACTGCAGAGAATCAACTTGGTCCATGGAGGATAAAT
-GAGTGACATGTTCAACATCCCCAGGAAAAGGAAGCAGGAAAGAATGGAGA
-GATGGAGAAAGTGAGTCAGAGAGAGAGAGAGATTTGTCCAGGATCAGAGA
-TGTGCCTCAGCCACTCACCACAGGCTCCCGAGCAGACTGTGGCAGGTGAC
-TCACCCTCTCTGGGCCTCGGGTTTTCCGCCTGAAGGTGCTGTGCACTGGT
-AGTGAGTGCTCCTCTCTCTGCATGACTTCCCTGTAGAGCCTGAGCTACAG
-ACCCACTGAGGGGAGGCGCTCATGAGCAGGGAAGTGACAGAATGGTGGGG
-AAAGAGGAGGGAGGACAGGATCCAGGACCACAAACTGCAACCTCCAGATG
-AGACAGTCCCGGGTCAGTGGGGAGCCATTCTGCAGAGGAGGGGGAGCTGT
-GAACATCAAGCTGCATCAGCCTCTGAGCTGAGGTGGATGTGTTGGCCCAG
-AGGTGCATCTTAAGAGGCACCAACCACACCCGCTACAGGGACCTGTGGTC
-CTCTCACTGAGAATATCTAAGCATAGAATTCATGCTATGCCAGTTGGAAA
-ATGAATTCAAAGCCAACGCAATTGTCACAACTCATTCTGAAACAAAAGCC
-AaataataataataataataataaccaataatCCAGACTTAAAGGGATCA
-CACGTGAACACTAGATATTTATCCACCTTGCCCGGCAAGCAGGAGGAAGC
-ATGAAGAGTGCCCCAAGCCATTGTACGtgatatggttcggctgtgtcccc
-acccaaatctcatcttgaattgcagttcccaaaatccccatgtgtcatgg
-gagggaccctgtgggaggtaattgaatcatgggggtgatttcataatggt
-gagtaagttctcacaagatctgatggttttataagggactttccccttca
-cacggctttcttctctctcctgccaccttgtgaagaaggacgtgtttgct
-tccccttctgccatgattgtaagtttcctgaggcctcctcagccatgctg
-aactgtgagtcaattaaacctctttcctttataaattacccagtctcggg
-tatgcctttagtagcagcatgagaacagattgatacaGCACAGGAAGGCA
-GTGGAGCGGGCCAGCATTGCGTTTGTGTTGGTCATTCAGGCACACAGGTG
-CAGGTCAGCTTTTTTAATGAAGGGTAACCAGTAGAAGAATTAAAAAATAG
-GACACATTCTTTCTAGATAAACACTGAATTCTAACTCAAATAAGGTATAG
-CACTTACGGCCAAAGATTGAAAACCCATTGTACAGCAAGGATGCAAGAAA
-GAAAAAGACAGAAAGGAACATTTTTAATTCAAAAAAATCAAAGCAGAAAC
-CATGAGGAGATCAAAAGAACCCCCAGCACAGCCAGCACAGTGGTGAATGC
-AGGTGCAGGGGCACCGCAGTCACAGAGATGGGTGAATTCCAGCACTGCCA
-ACCCCAACCTTCCTAAGCACTTAGGACGATTTGGACTCAAAATGAAGGAG
-GCTGGAACCAGCCCCTCGTGTGTGATGTGGGGGTCTAGCACTCAGCTGCT
-CCCTGACTGTGGCCATGATGCAGCCCCCCTCCGTCCCCCTCCTCTCCTAC
-AAAGGGGAGTGTCTGGGTCTGCTTGCTGCTGCGATTGCATcataaatgca
-gctcccacagctctgcaggctggaagtccaagactgaggcacgggcaggc
-tctgcgtctggtgagggctgccctctctgcttccacgatgcaccatgcag
-tgtgtcctctacagggcagtaggcagggagctgccagccacacctgctaa
-agccgctgtcctgagggcctcaattccatcaagagaggaggcttcagaac
-ctaatcaccctcacaggccccacatcttcaccccatcacactgggtgctg
-tttcaacacctgaattttggaggggccgcattcatgccacagcaGGGAGT
-GTGACCTTGTTTCCCTGGAAGCTGGGGTGAGGAGGAGAGGTAAGGCCATG
-AGGAGACCCTGTGGTCACTGGCTGGTTTTGCTTTTTTGAACAAATAGGAA
-AAGCAAAGAAAAGAATGAATTGATCAAAGCAGAATTATATTCACATCACA
-TCGAGAGACTTTATTTTATGAAATGTAAAAACCAGATGAAACTGTTAACT
-AAATATCGAAACATAGAAGGAAGGACCACAGGGAGATGCCAATCCCACAG
-ACTCTGCCTGAAATAATCCAGGATTCATGTCACTTTTTCCTTTAAGTGCT
-TCAGTGCTGCAGGGACGAAAGGAAGGTAACAGGTGCCCCGAGCAGCTCCT
-TCCAGGCTGACAGGGGCACCCAGGCGGTTTCCTTATGGGACCCAGATGGA
-GCTCCCATGGCTACTGTAGCCCCTGCCACGCCCAGGGAGGAAGCCACAAA
-GGTGACCTGTTTGCGGGACCTGTCTCAGTGCCCTCTGCAGGGGGCAGGAA
-CAGAAGCTTCAAGAACTCACCTGGCCCTGGTGCAGGTCTCAACCCCTGTG
-TGTTTCCCGAGCAACTCCTCGGGGATGCCTGCTCAGGCTTTATCCTGCCG
-TGTGCACGATCCCAATGTCACCATCCAGGAATCAACAGGTAAATATTACA
-TAGCTTAAAAATCATGTTGCAACATGATATTCAATGTTCGCATCACCAAA
-TAGCATCACGAACATTTTAATTCACTTTACTGATGTATAAATAATGTGCC
-ATCAAAAGTGTCCAATTGGAAGAGTCATGGCAAACATATACGCCGGTGTC
-CCCATCACTGTGGCTGCGATGACAAACATCCTACAGTCAGCAGCAGGCAC
-CAGGGGGCCAGGCGACCCCCATCTTGACATTGCATTGTTGTGAGGTCAGC
-CCCTGAGTAACTTCACCCTGCCTGGGTGCTGTGGTCAAATTCTTCAGCTG
-ACACATCTTGGCAGCCGTTGTCTGGCAATGCATATGCTCACTTCATCGAA
-TCTGTTAAATCTTTGAAATATTTAACAACCTGAGACATGAATGGAACGTG
-GGACTCTCACTTGCCGGTTGTCAGGGTCTAAGACGACTGTGTCCTCAAAT
-TTATGCGGGCGAATAGCAATGCCCTTCTAGTTCCTGTTTGGGACGATGTG
-GCCTGAATCAGGCACTGTTGGAAATTCTCATTTTGTGCAATTTCAGGCAT
-ATATTGTGACATTTATCAGCTCAACTATCCCTTAAATTCAAGAGTACATT
-CTTTGTAATTCTTTGAGCAAAGCAGAAAATTGAACGGTTTGACTGATTTA
-TGTAAGCATTTATAGCTGAGGAAACACAGGAGAAATTCACCCAGAATATT
-CAATGTCAGAGTAAAAGCGTCTGCAGCTAAAATGGAGACAGTTTCCTTGA
-AGTCCATCCCCGAAGTCTCACACTTTCGTTATATTTTTAATAAGCTGTGG
-TCTGATTAAAAATAAATTTCAAagccaggggcagcggctcacgcctgtaa
-tcccagcgctttgggaggccgaggcgggcagatcacctgaggtcaggagt
-tgagaccagcctggccaacgtggtgaaatcctgtctctactaaaaatata
-aaaactggccggttgtaatggcgggcacctgtaatctcagctacttggga
-ggctgaggcaggagaattgcttgaatctgggaggcggaggttgcagtgag
-ccgagatcgtgccactgcactccagcctgggcaacaagagcgaaactctg
-tctcaaaataaataaatacatacatacatacatacatacatacatacata
-catacatTTCAATAGACGAAGAAAGGAAAGTGGCTGGTCATCCTTGGCAA
-ACTTCATTCCATACTCCGAGTGAAAGGAAGGCAGCCATAGTGAGGTTGAG
-GCAGGGGACATCTGCAGGGGGCAAGACCAGACCTGAGTGGGGCCCCCATC
-CTCCTCCATTTGCAATAACAGGACCCATAATGTAAACCGAAGCCACAGCC
-AAGCTCCAAACCACCACTGGGAGGCCCCCCGGGTGCCAGGAGTACGGAGG
-GACAGAGAGAGGGATGAACAGAGAGAGAAGCCCGTGGGGTGGAGCTCATG
-GCAGCCCCGGGACAGGGCTTGCAGAGGACACTAGCCAAAAGCTCTGCCGC
-CCGCTGCATACCCCCTGGCCggcttctctcctcctgacggggccctgggc
-tttggctcacccaaagctgaagcaagcactCCACACCACCCGTGCCCCTG
-TGCAACTCACTCGAGCATCGGCCGCTAGTGCCCGGGGCCAGCACTGtgat
-gccggctgtggacgcgaggcctcagctcctcccctgtgacatcgctgtca
-tcctgccctgtcctcagaatgtggcaccaccttcctccagggggagttat
-tggaggggacacaaagcaggagtcagagcccccctggcctcagaagtTGa
-gcattaacagagacctggagcggcagagattctgacgccctgtggatggg
-aagagaagtggatatggccactgtggaaaagaatttggcataattgagct
-gtgtcacatatgtgcacagccctcagatttattcttaggcacgtgatcta
-gagaaacacacacacaggtacccagaaACAGCTCAAGGTGTGTGGCCTGC
-CCACAACCAATGCTCGTCAGCCCCAGAGCAACTGGACCAGGGGATATTCG
-CTCACCAGAGGGCGGCACGTCGGTGAAAACTCGTGCATTTCCCCCGCACA
-GGCCAGATGGGTGTCCCTCAGGGAGAGGCGTCAAGTCCCAGAATCAAATA
-CATGTCTGACTCCATCCGCTTGGCGCTCAAAGGCACCTACAACTCCAAAA
-CATTGTTTGGCGcagccgttctaaaaggttttggtctaggggcaccttta
-tacacccaaaggttgttcatggcaccggagagttttgtgatgtgggttgt
-gtctgtcaatacccattgtattcaaagctaacataggaagtttaaaaaca
-ttttcattaattcctttcaaagtagcagtcatacacccattaccagttga
-tgtaaatacatattttaatggacaatgactctattttccaaaacaaaaaa
-catttagtgataagtgaggcaccccttcctacagctgcaaatctctcaga
-tgcccagattcatagacggcttctggaggctcaggctcatccttgcttcc
-acgttcaagccgctgtgagatcgcacgtcatgtgacttctggaaaCTcac
-agacacacacatcacagcacactgaacacacacacagacacatgcactcc
-acacaccacactctacacacacaccacacgccacatatgctacaacatac
-tcacacacacacagacacccactccacacaccacacaccatatatactac
-accacacacacacacacagacacattcactccacacacatgtactacacc
-acacaaacacacagagacacgctctccaaacaccacactctacacacgca
-ccacacaccacatatactacaaaatacacacacacacagacacccactcc
-atgcaccgcactctacaacacaccacacaccacatataccacaacagaca
-cacactcccaacactacacaccatatatactacaccccacacacacacac
-acagaggcacacactccacacaccacacTCCACACCACACTCCACACACT
-ATACCACACATACATCCACATTCCACACACCGCATATGCTACACcataca
-cacacatacacacacactacactctacacacacaccacacaccatatata
-ctacacacacacacagagatacacacttcacacacacaccacacaccaca
-gatgctacaccacacacacatacacacacactccacacaccacactctac
-acacacaccacacacCATATGTACTACACCATGTGCACACACACACACGC
-ACACACTTAAATGCATGCAGACTGGGATAATTGCTTTAGGAAAAGTGTAG
-ACAACACGATATCCAAGCAGAGAAGAAGGAAAGAGAAGTTTTCTCTGGAA
-AGAGGTTTGCTTCTGGGAGGAAGGTTTTGCTGTGTCTACCATGAGAGTGT
-GTTCGGGTTGGGGAAGTGGAGATGTGTTAGAATCAGGTCCGGGAGGGCTG
-GAGGCAGGAGGGGTCATGTACACCCGTGCAGGCTAGGGAGGCCGACGGCG
-ACCTCTGCACACAGGCTGTGCATGGGGCCCCCAAGCTTGGGACCGGCACT
-GCAGGAGTTTGGCTTCCCCGGCCTGGGCCTGGGGGAGCCCAGAACAGGCC
-TGCATAGCCTGAAGGAGGCAGTGGGGCAGATCCACCTAGGGATGGCCGCC
-TCGCAGAGCCTCCGCCCCGGGGACGGGCAGCACCCGTGCACCGGAGTCCC
-AGCAGAGTCCCAGAGACTCAACGTTTCTTTCCTCAGTTAACAAGGTTTGT
-CCAGAGCAGTGTGTTTTCTACAGAAACTCAGATGTTGCTCTAAATGGAGT
-TTCCTGGAGTTCCATGCTGGCCATAAGCCTCCTGTGAATAATGCAGAGAA
-AAAGGAGATCGCAGTTCGAGCCGATTCCCTCTGCCCGCCGACTCTAGAAA
-CAACCTCTTCCCTCCTTCTCACGAATCAAGATTCCACGCCACAGGTTAGC
-ATTGCATATGGCCAAGTCAGCAGCCTCTGAACTAAATTTTTGATGAATTC
-AACTGTAAAATATTCACAACCTGGAAATTCATAACGTGATTCATGTTTTT
-ATCATTTTTTTTCTATGTGATCTCATAAATGCAACAGAAAATATTAGTCA
-TGAGGCAACATGAGGTTGGGACCCACATGAAGAAACAGCTCCCCCGAGGA
-AAATAAAATGAACCTCCTCCCAGGACCCAGACCTCCCTAGAGGAGCCACG
-GTGTTTTCGTTTTAAAAGATAGTCAAAATAAATAAAGATATGTGGATGCA
-GAGCCAGCAGTGGCGGCCGCTCCCTCCTCCGGTTTCATTTCGCAGTGGGG
-ATGCTCCTAAATGAACCTGCTCCAGAAACTGAAGTTTGAAATGGAGCTCC
-TAACTCATTTTGTCACGCAGCTGAGAAATGCCCCTTTTAATGGAAAGAAA
-CAGAAAAGGACAATTCCATCTTTGATTGATGGACTGCATTACGGGGTATA
-AATAAAAGGAAGTGTGATAACCTCACTGTGGCACAGGCCAACCGCAGAGT
-CCCTAACTGGGGTGGCTGTGTCTACATGGGACTACCAGAGGTGGCCATGC
-ATGGCCTGGTGGTCAGGGCAGGGAGCATCGATGGAGAGCTTGCACCCCGT
-GAGTGGGACTGCCAGAGGGCCCCCAAGACATCCCCAACGTGAGCGTTtca
-cttttcaggtggggaaactgaggcccaCCATGGTCTGTCCCACCAGAGGT
-TGTCTCGTGACAAACCCAGGCACAGGAATTCCCACCCAGGTCTTCTTAGG
-AGCTAGAACATTCTGCCCACTTCTTCACCATTTGTCGTCTCCTGGAAATT
-ATTGGAAATTAAAGTGGATTTGTCAACACTCGACTGAGCAATGTCTTTGA
-TGTTGCAGAGGAAATTTGGTCTTTGAATTCGAGTGGGAGCCCCACTGTCC
-ACCAAGCCCCAGTGGTGTGTCTGGGGCCCTCTCCTGCAGAGCACAGGGCA
-TGGGACGCACTGTGCCGTCATTCCTGCAGGCTGCTTCCCGGGCCTGGGGT
-CGCCAGTCTTTTTTGACCACGGGGGATGCACATGGGGAGGCTCTAGGTAG
-CAGCCGGTGTCCTCGGAATGTCAGAAGCTTCCTGAAGCGTAAAGCGCGAG
-GAATTTCTGTTCATCCCAAGCCTTGACGAAAGGTGGCTCAAACCAAGCCG
-CCTCTTCCTGAGGTGCAGTGTGAATCCTCGGGTGCTGACGGCCTGAGTGT
-CAATATGCCCTGTCTTCAACACACACGAGTTTCTGCGAGCAAAACAAGCC
-TGGATTGTATTTTGAAGTCACATATTAAAAGTGACTTTTCAATCATTTAG
-AACATAACAATCATTCTTGCATTGCACATGGACAGTGTTCCAAGCTTCTG
-TTTCTGTGGGTGTCCCTGGGCTCCATCTGGGTGACAGCGATGACCTTGGA
-CCTCCCCGGGGGTGGGAAGGACTGGCCAGCGGCCATCCCCCTCCAGCAGG
-GCCAGTGTCTGGGGCACTTCCCTCACTCCCCTCCCCACAGGGAGTCCACG
-AGATGTTCAcaaagtctagctagctgcttcccaagcacattccttcctcc
-tcctccaggtaatgtccgagtgttcctggcagttgagtgtggccacttcg
-ctgaggagcagtctgtggactgtcgtagaaatgaggccaagatctccagg
-cctggcgagaaaagctccacacgttaccggtgagaggaactcgtgttgag
-tctgcagcaacctcatttcttgcctcctcagaggaaagaattcgaacaag
-gggcatcaggcagaagaagaaaatactgagacaaggtttagagcaggagt
-gaatgtttattaaaaagctttagatctgggtgtggtggctcacgcctgta
-atcccagcactttgggaggctgaggcgggtggatcacgaggtcaggagat
-tgagaccatcctggctaacatggtgaaaccccgtctctactaaaaatata
-aaaaaattagccaagcgtggtggcaggtgcctgtagacccagctacttgg
-gaggctgaggcaggagaatagcatgaacctgggaggcggagtttgcggtg
-aggcaagatggtgtcactgcactccagcttgggtgacagagcaagacttt
-gtctcaaaaaaaaaaacaaaaaaaaaacctttagagcaggaaagaaagca
-cacttggaagagggccgggcaggtgacttgagcgacccagtgcccagctc
-gacctcttgactcggggtttatatgctgacatatttccaggcacctgtgt
-tccttctccccatgcctgagatctcatcaggaagctgctgatcatgagtt
-tcaggtgttttctatctagtaggagactgccttatcctggtgccagctga
-gaccattttagagaaacctttaaaaaccgcctgaccgacacctgatggtt
-gcctgacactcctggtgtgtggtgaggggtagccccctcctgccctgctc
-atacctagctagctacccaccatagcaCAGGCACCCCCTTCAGACTCTCT
-CTCTGGAAGCCTTCAGGCAGGTGGGCTCAGAGTCCTCAGGCATCGCAGGT
-CAGAGATGGGGAGATTGTGGGATGCGAGGGCCTGAGGCCCTGAGTCGCCG
-GCTGGAGCAGAGCAGACAATTGGTCAAGAGCATGGTGGGTGAACTTGACT
-TCAGTGTTGCTAAGACACTGGGATGTCAGAGTTCATCTACCATAGCCTCT
-GGCATTGCCTTACACAATAGAGTAACTTTGAATAAGAAagaaaaaaactc
-tttaagagttgagaatgatggccctgagaagtggaattaggagagggtaa
-gatgagactgagtagagactggaatttttcattataagcctcatagagtt
-attcgacttttaaaaccctatatgtgtataacctggaccaaaaataTTAA
-AATTTCAGAAAAATGTAAAGGCTGATGACAAATGGAGTCATGGTGTATGG
-GTGAGATTTTGGCTTCAAACAGCAGCAAATAAAGGGAATTCTAACAGTAG
-GGATGTGTTGTTGGTTTAAGAGATGTAAATGTCCTATTCATTTGTTTGAG
-TACAGACAGTTCTAGCTcacgtttctaagctaacggaagttatttcgcag
-agaggcatgtgctaaaaataagaaaaagaaggaagataagcaagcacgtg
-aaacccttaagacttaacatggctggaatccaggattcagagcctggata
-gaggtgggacctccctgtgttgtaacaggaggaagagagagatgctgtag
-atgtggggaggtttgcagatttggtagcagaaagcgtttaaaaagctcct
-agatgacagcagccaacctctctgtggaacaccaggtggagtgataagtc
-agaaaacaggggcggTGTGGGGCGGGGAAGGGCCAGCGCTGAGGGAGGGG
-TAAACCTGTATGCGCAGCGTGGACAGCCCGCCAGCCAGGAGGACACCGGG
-GCCTCCAGAGCATGGGGGCCCTTGTCTGAGGTCGGCCATGGCAACTTCAC
-CATGACCCCAGCCTCCAGACTCTGCAGTTTTCTCTGGAGGCCTCAGCGGC
-ATGAGGTCAGGTGCACAAAGGCAGGTGGTGAGATTCTTCCAAAGCTGGGT
-TCTTTGGGCAAAAATCCTAAGTCCAAGGAGGAACTGCTGAATTCAAGCTG
-GAAAAGGTGGAGAATTAAGAATGAAGGGGCTTGGGTGGAGGGAGGGTGGT
-GAGCTCTGTAATAGTAATAGCGACGAGTGTTCACGTCAcactaattatgt
-ctggcaggcagtgttccttctcctgtagatggttcacagatttacacctg
-tgacattcctctggaccccattgttatccccaccttacaggtgagaacac
-tgacacacaggatggtcccgctgcttgcctgtggtcacagtatccggagc
-atggctgcagctgggaaccacctccaggcGACAAAGCAACCCAGCACGGG
-TGGGTACGGAGGGGCCGTTCGTCTCGCTCACAGTCTGGGGGTGGCCTCAT
-GGTGCTGCTCATCACAGCGGGCATGTTGGCTGGGGCTGACTGTGAGAACC
-CAGCTCTGCCCCAGAGGCCTGGCCTTGGCTGGTTCTCACAGGGAGGAAGA
-GAGCCCAGAGCAGTAAGCACAGCCCGTCAGAGAGCGGGCAGAGACGCACT
-GCGCTTCCTGAGACCGCGGCTCACCGCTCCCCTGCATTCTGCTCTTCAAA
-GACACATGCAGAACCTTCAGGGTGTTGAAAGGGGCCGCAAAGATCACAGC
-TCTCAGCGGGGGCGCGGTCAGTCGGCCACAGCGGTGGAGATGGCGTTGAA
-AGCCGGGGATGATGACTGCTGCGCTGGGATGACTGACGGCTGAGCCAGGC
-CCTGCTGCTGTGCTTGTTGTGTAAGCCGAGCTCCCAGGGCTGTGCTTGAT
-CAGGGCAGGATGTGTCCATCCAGTATGTTGGAGGTCAGATGAAGAAATGC
-ATGGAGTTAAAAAAAAAAAAAAAAGAAGAAGAAGCTTAAAATGTTTCCTT
-TATTAATTTTAAGTGTAAGAATGGAAATTTTCATGTATCTTATGCCCTCA
-AAGATGTAAAGTATGTGAGTGACAAATAAAGGGATGGAAGTCGCTGATGC
-AACATTTAGTGATGGTTTATCCCAGGGTGCAACCACAGAGGCTGGCAGCT
-TGTTCCTTCTATTTGTATAAATGTTCGAATTGTTCTAAAATAAGAATGCA
-CTAATTATGTCTCAAAAAAGATGATTTAAGGAAAGCTAACAGTGTTTGCC
-TTCTGAATGTGGCTATACATTGATTGTAAATAACCTAAAAGAGGCATCTT
-CGGGATAGGTGCCTCAGGTTGTGTGTGGCTCCCAGGCCACCACAGGGAAG
-CCTGGTTTTGGACTCTGGGCCTTGGGGTGGGGATGGGGGTGGGAGGGTCT
-TCATTCAAGGGGCCTGGGTCTTTAGTATCAATTTCATCATAGTTTCCTCT
-CAGGctatgggtggacccaagtatataagcgtcacagccccacctgtgtg
-ctgggttcgggtaggagagtcacagccccacctgtgtgctgggtcagggt
-aggagagtcacagccccacctgtgtgctgggtccaggtaggagagccaca
-gcctgacttgtTTTTATTAAGAAGAAAGAAGATATATTATATAGAATAAA
-AATGACATGCTACTTTACAAATAAAAATAGCTGTGATAATCTAATTTACA
-TGGATGATACAGGAGCCTCTCCCATGCCTCAGCTACTGTCTAATTTATAT
-GAATAATACAGGAGCCTCCCCCATGCCTCAGCTACTGTGCTGGGCATTTT
-CATACAGCGTCCTGTTCTGGGTGCTACCACCTCACCCCAGTGTGCAGTCA
-ATCGTCATAGCAGCCGCTACTTCTCCCATTGCGGTCCTCACACGCCACGT
-GCTCTCTGGGAAAccttacaggttttaactcactgaatcctcacagcccc
-cacggagggagactccccagttccttctactttactgatgagaaaatcga
-agctctgagcctggctgtcttgctcaagggcacacagttggtgaggtttt
-gagctgaattccaaacTATAATGTATTCTTTAACCCTGTCCAATCTATGA
-GCCTGTTCAGAGGTGACGAGTTCCAAATCTATGCACGGCCACAGTGTGAA
-CAGGGAAGAGGGAATCAAACAGAGCGTGGACTTAAAACAACGGGGCTTTC
-AGGGAGACTGAACGCAGTGAGGGCCGTGCTGGGAACACTGGCTGCTGGGG
-AAACATTATAATTTTTTTTCtgccaggcaagtgttctttgcactttatgt
-tattcacatacttaagcctcattgccatcctTTTGAATGGTAAGGCAAAG
-CATGAGAAGGTACAtctgagacaaagaagaagacatttggaaaacaccag
-aaagagtgtaggagtgtggggagcaccttgcgtgtcagcagagccgtaga
-aggaggggaggcaaagaatgaagcagaagcaatatctgaagaactcacac
-ccaggaattctccaaaccaagtggaaggttctcaagccaaacatttaaaa
-cactctgggaacttgaagcaggaGCCCCCCTACCCCGGGGTAAAGGCTGG
-GGGTGTCAGGGAAGGCATCTCTCCCGAGGGGCATCGGACACCCAGAGCAG
-GCTGTGGTCCTCGGGGTGGGAGAGATGGTGGCAACAGCGGGCATGGAAGA
-GCGGGACCTGCCCTGAGCCAGGAGAGGAGGTGCTGTGGGTTCCTCCTGGG
-AAGGGCAAGAGGGGAGGGAGGCTGCGAGGGAAGGCTGGGCTGGGTCCCAG
-GGGCATTGAAGGTCATAGGAAGGCATGTGTGTTTCATCCCAAGAATACGA
-AGAGGTCCCTGAGGCTCGCAGCACCATCCCATGTGTGTTTATGAGCATCA
-GCAGAGAGTGGGCATGTGGCGTGGAGTCGGGGTTCACAGGAGGCTTCCCT
-AGTGCCCCACAGGAGACCAGATGGAGCCTTGGACCAGTCTGTGGGCCTCA
-GGGTTCACGGGAGGCTTCCCTAGTGCCCCAGAGGAGACTGGACAGAGCCT
-TGGACCAGGCTGCGGGCATCAGCCTTCACGGCAGTCTTCCCTAGTGCCCC
-AGAGGAAACCAGATGGAGCCTTGGACCAGGCTGCCGGCATCAGCGTTCAC
-AGGAGGCTTCCCTAGTGCCCCAGAGACTGGACGGAGACTTAGACCAGCCT
-GTGGGCATCAGGGTTCACGGGAGGCTTCCCTAGTGCCCCAGAGACTGGAC
-GGAGCCTTAGACCAGGCTGTGGGCATCAGGGTTCACAGGAGGCTTCCCCA
-GTGCCTCAGAGACTGGACGGAGACTTAGACCAGCCTGTGGGCATCAGGGT
-TCACGGGAGGCTTCCCTAGTGCCCCAGAGACTGGACAAAGCCTTAGACCA
-GGCTGCGGGTGTCAGGGTTCATGGGAGTCTTTCCTAGTGCCCCAGAGGAG
-ATGGTACAGAGCCTTAAGCAAGGCTGCAGGCATCAGGGTTCACGGGAGGC
-TTCCCTAGTGCCCCAGAGACTGGACGGAGCCTTAGACCAGGCTGTGGGCA
-TCAGGGTTCACGGGAGGCTTCCCTAGTGCCCCAGAGACTGGACGGAGCCT
-TAGACCAGGCTGCGGGTGTCAGGGTTCATGGGAGTCTTTCCTAGTGCCCC
-AGAGGAGACGGTACAGAGCCTTAAACAAGGCTGTGGGCATCAGGGTTCAC
-GGGAGGCTTCCCTAGTGCCCCAGAGGAGACGATACCAAGCCTTAGACCAG
-GCTGTGGGCATCAGGGGCTCATCCAAGTGAGTGGACCACATTGTTCACTT
-GGAGAGAGAATCAGCAACCCCTGCTTCCAGTTTAATATGCAGAAAAGTAG
-ACAGTTCTTAAAATAGTTCTCCCTAAAATAGAACATACACAGTGAAGAGG
-GCAGCCACATATGCCAATCACTGAAAACCATGACAGGAGCGGGCATGGTG
-GGGCAGAGAGAGACACAGAGAGAGAGACGGAGATGGGAGAGTCCTGGGGT
-CACTGAGCAGGGCCTGATCTGGATGATCAACTGCAGAGCTGCTTCTGCAC
-TTCCTGGGAGTGGAAGTTTGTGGGGCGGGGTGAGGGGAGAGGGGAGGGGA
-ACATTTTTGTGAAGCATCCTCACACCTCTCAACAGCTTGGCGGGAAGTAG
-AGGCataggttgaattttcaccaccatttaaaatactagaactactttgt
-cacttcctttgtgaattcccctgtgacccaagagctgtataagagatcac
-tgcatattttccaagctctgcggaggttttataactttctgctgctgatt
-tcccctgtaattaccctggggtcagaggatgcgttctgacttctgtcctt
-tgaccttgttgagacttgcttcatgatgaggcacaggcgccccatgagaa
-cagaacagaaatgcgtagtctgcattctttggtataatgtctccatatct
-ctgttaggtgacatgtattaattatgtggttcagctcttcagtatcctcc
-ccaatttttttctctttccaacagttacagagagagtagcatgaaaatct
-atacatatgatagtagatttgcccatttctcttgaacaatttacaaatta
-gtaaatgtttgcaaatggatagctgtcatacaccccattgatttggcatt
-tttatcattatgaaattttttatttctggttttgtttttttttttttgga
-gacggagtctcgctctgttgcccaggctggagtgcagtggcctgatctca
-gctcactgcagactccgcctcctgggttcacgccattctcccgcctcagc
-ctcccaagtagctgggactacagacgcccaccaccatgcccagctaattt
-tttttttttttttgtatttttagtagacacggggtttcactgtgttagcc
-aggatggtctcgatctcttgacctcgtgatccacctgcctcagcctccca
-aagtgctgggattacaggtgaaatgttttatttctaatatatatttttgt
-tgcctcaaagtctactttgtctgatagttgtaaacccattctagttttcc
-agttggactctcatgtgcttagctgtgggtttctttgtatttatcttgct
-taggtgtcatagagatttttgaatctttagtttgactctttcatcccttt
-ggaaaattcccggggatcatttctcacatgctgcctctgctccactctct
-gcctcctctccttctaggattctattcacatacacattacatgttcacca
-ctccccgtatgtctccagcactcttccaatgttcttcacgttttctcctt
-tgtttagataaggatagtttttcatgccttgctttcagctcactaatccc
-ttgttctatATATGTACATTTCCTTTTTACCTTCTGCTATGACCTGGTCT
-CTGATGCTGACCTCCACCTTCCTCTCTAGTTTCTGCacatattattggta
-gttcaactccctgcctaataactccaatatcaaagtcaccagtttctact
-gtttcattccttcctcttgattttcagttattcagttatatactttttaa
-tgtactaagtcttgtaatttttgattggatgctaaacattgtgggcaaaa
-AGTTAAACAGGTACAGAATCGAGCTAGCTTCCACCAAAAATAATTGATGT
-GTATGTAAGCTATATCATTTAGGGCACATGGGcgggaattctttgacaaa
-gatttgcaactttcttgtaagcctgaaattgttttaaaataaaaaGTTAA
-AAATAATGAAGTAAAAAATCCTCCCTCTAAATTTGGCATCCATTGACAGC
-GTGCATCCCCATTCTTACTGAAGCCAGTTACTTCTGGTGATTGCAAAATG
-CCCTATTCCTCGGTCAGCAGCTACTCTACGGAAGAGCCTTCCTAGTAGCC
-ACCAAGCCCATTCACGGATCAGttgctcagtgatccataattcatttctg
-tcctcaattattttgacgtttaagtggtcctggatttggccaggggctcc
-tgtgttctcaggacagttctccaccatttggggggcagtttctcactcct
-tggcacagcagtgcaccttccccaccacagccctggagttggccatttca
-ccaTGAAAGATGTTTTGATGCAAATATTTTAATCAGAATCACACCAAATC
-TGATGAGCATCCATTCAGTTGAAATtatatatacattttatatatatata
-gtttatatgtaaaatatgttttaaatatattttatatatataCttttttg
-ggagtctcactctgttgctcaggctggagcacagtggtgtgatcttggct
-tgctgcaaactctgcctcccagtttcaagcaattctcctgcctcagcctg
-ctgagtagctgggattacaggcatgcaccaccacacccagctaatgtttg
-tatttttactaaagacagggtttcaccatgttggccaggctgatcttgaa
-ctcctcacctcaagcaatccacccacctcagcttcccaaagtgctgggat
-tacaggtgtgagccactgcacctggccAGAAATTTTTCATATTCTATTAA
-TCCAATTCAATTATTGAATCAAATTTAAATACATGGGCAGATAAAGCAAT
-ATTCCCAATATTTTGTTCCCATTTCCATTAAATTGACATATTTTCATTTG
-GATCACACTTTTCACATTTTTATTTTTCAAAAAGATATGACTAGTAGTTC
-TTTCAGCCATGTCAATCTTCCTGATGATAGTTTTTGCCTTTAGGGATTTT
-TAGAGCAATTGTACCAATAAAGTTCAATTTGAGGGTATTAAATTATACAT
-ATCTAATTTATTTTTCAAGCACAATTCATTCATTCATCAATCTTGAATCA
-ATGCTCAGTTTTAGCCACTGTTAGTTTTACTTAGGTTTGGCTACTTCTAA
-CTATAATCTTTATTATTGACAATATAAAACTGGCAGGTGGCACTAATGTC
-TCAGCTCACCTGTTCCTGAACCCCCCCCCCCACTGCCACTGCTGTCCCCC
-CAGCCCTGCTAAATGTCCCCAACGTCTGGACCCAGCCCTGTCCTCTCCTG
-CCCCTGGACCTTCTCCTGCCGTGAAGCCCTCGCCCACCCTCTGCCCTGAC
-CCTTCTTGGTCTTTGCATTTCCTCTGTGCCTCAGCTTCCCAGATGCCCTG
-GAGCATCTCCATTGTCCCTCCATGTGCTCACCTCACTCTTCTTTCCAGAC
-CGGTGACTCAGGATCATAAACCTGCAATGCCTCGAGTTTATCGCTGCCTC
-CCCCAAGCCAGGTCTCAGCTCCTCTTGTGATGTTGCTTTTAACCTTCACA
-GGCATCCTTTGAGTCAGATACTAATTTTTTTTTCACTCATTTTGCAGGaa
-tatatataattaatataaatattcacatgtattatttatataattataaa
-tGCAGAATAGTTGTATTTATTTTTTACCTGTtatatattttatataatat
-attttatatatttatatatctaatatacaatattttcaagtatgtgatgt
-catatattatattcctatagatactatatacctaacaaatactataaata
-cttatataattattgaataaaatcctatatattatacagttgacccttga
-acaatgttagggttaggaacaaagaccccctcaacccctgcacagtcgaa
-aatccccatgtgactttgaccccccctaaaaccttaactactcatcacct
-actgctcaacagaagccttaccagtaacagccaattaatgcatactttgt
-gttatatgctgtattcatacaataaagtaagtgaaaattgtattaagaac
-atggtgaggaagagaagatgcctttactgtttattaactggaagtggatc
-ataatcaaggtccccatcctcatcttcacgtggagggagtggaggaggag
-gagggcgggggccggtcttgctgtctcaggggtggcagaggtggtagaaa
-atccacatataagtgacccatgaactttaaaccatgtactgttcaagggt
-caaccgtatatattgcatatatatTATATGTTTTGCATTATGTATATTTA
-ATATTAATGTAAAACTAGAAAAGACCCATCGGGCACGTGGGTGGCACAGA
-ATGTCGTGGGTGGCACAGAATGCCGTGGGCCCACGTGAGCCCCGAACTCC
-CGAGGGGCCTCTTTGCTTCCCCATGGGACAGAAGGCTCCGAACGCAGACC
-CTGGTCACCAATGTCTTGGCTGACCCGAGAGCAGCTACTGCTTTTGTTTT
-TTTTCCAAATAAATAACGAATAAAATAGGACTTGCCCTGTCGAAATTAAA
-AGGGCATTATTTTGAAACATAGTCTTAAAAATGGATTATTCGTTAAGTGG
-CACCAGCCAACCAGTTAAGCATTTGGGGAAAAATAATTTCTCATTAATAC
-AAATTAAATTACCAAAGGTTAATAACTTGACATAAAAAAGAACCAAAATA
-AAATATAGAGTATATTTTATTGTTTTTATAAGGAAAGTCCTTTTTTATTT
-AGAAGTTTTAATCCAgaccataaaaaagaaagaattgggtgtataaaagt
-gttaaggcagagcaaagaaggcaaatacataaattgcaagctgtaaaaaa
-cttttgcattccatatgccaaaaaattcacatccataaaacatgaaattt
-ccttaaagtcaacacgaacaccgcgactgagaaaacaaatgggccaaatc
-tataaacaggcaaatcacaggagaagggaaaaatcagaaaataaccaaga
-aaaaggattcaaccttaAAGGAACAAAACAAAGACAACGTGAAGTCGCAG
-TAAGGGATTATTTGTCCAGGAACTTGGCCAGGACGAAACAACGGGAAGCC
-CCAGTGCTGGCCAGGCATGGGGGGCCCACAACCCACCCAGGGGGTGCAGC
-TGGCAGGACTGCCCTCGAGACCAGTGGGTCAGAATTGACCAAAATTCAGT
-TGCAGGTTGGTTTTAAGGGGGCATCTCCTCTTCCAAGCACCCCCTGCTGT
-GACGTGCTGGGAGCCCCCGGGGGCAGGAGAAACTCCCCCATCCACAAGGT
-GCATTTGCAAGAATATTCCTCAAAACCAGAAGCTCCCCAATGACCATTTG
-TTGTGAATGAGTGAGGAATTACAGAAGGCCGTAAGTTGGAGAGATAGGCC
-TGTTTCTGCACCCAGAAGGAAGGAGCCACAAGCTCTTGTGGAGCAAGAGC
-GGGACCCGGGATGCGAGTGTAGACGGGTGCTGGAAGGAAGCTCAGACCCT
-TCCTCTCCCCACCAGATTACAGGAGAATGGAATCCCAGCCTGGTGGCACC
-TACCAGCTCCAGTGCTTTATCAGATACACCCATAGTGGTTTCAAAAACCT
-ACAGGAATATTCCTTTGGGAAAGGAACCCGTGAGGTTGCTCCCTGGGCCG
-GCTCTGTGTTCTCACTGCCCCAGCTTGCACCTGAGCCCCGCTGCCCCTGG
-GGCCGTTGGCCTGCTAAGATGCTTTGGGTTTCTCTGCATCCTCCTTTGTA
-TAGTGGAGTGCATCGTGCtgctcaggctttgtaacagagcaccgcaggcg
-ggtggcgtgcactgcagacgttacctcctcagggtcctggaggctgaaaa
-ttcaagatccagatgtgggaaaggctgattcctccagaggcctctctcct
-cagctggtggacggcatcctcccttggtctttctgctgtgtgggagcagc
-cctgctgggctctgggtgtcctaatctcctcttcttatagggactctgat
-catattggattggggccatcaccatggcctcattgtaacaatcacctctg
-taaaggccctgtctccaaatacagtgacgttctgagagtcactggaggac
-agggctttaccctgtgaatctggggggacacaatcagcccataacaAGGA
-GCGATAATGGTGGGGTCTGTTGTACAGGTAGGTGGCTGAGGCCACCAAGC
-AAGTTAGTGCTTGTCAGCCCTGTCAAACACACAAGAAGCATCTTGGTACC
-CTGAACCCTGCTGCAGCCAGGATGCACAGCCATAGCTGCAACTCACACTG
-GCCTCCTGAAGCCCCTGAGCCTGGCTGGATTACGTTCTATTCATTATGGG
-ATGTCTAATAATAATAGCAACCTGCTCCAGTGTTAGTAGCAGGACTCAAC
-CCTAGATCGCCTGGCTCATAACCCTCTCTCTGAACCACCTTCCAAACAGA
-AATGGCACACAATTGTGAAGAACATATTTCATAACAGTCTCACttttatt
-ttaagagacagggtctcactctgttgcccaggctggagtgcagaggggcg
-ttcatggctcacagcagccttgatctcctgggctcaagtgatcctcctgc
-ctcagcctcccaagcagctgggaccacagtgcatactaccacacccagct
-aatttttgaaatgtttttgtagagatggggttctcactatactgcccagg
-ctggtctagaactggagatcaagtgattctcctgcctcagatttccaaag
-cattagaactacaggcatgagccaccatgcccagccCAGTCTCGTATCAA
-TATTTAAAAGGAAAAAATGTTGGTGCTTAAAGGTGGGAGGGATGGGGGAT
-AAGCAACATGGTTTCCAACAAACAAGGCCAAGGTTTGTCTGCACTTTTGG
-CAGAGCCATCTGTGGCATCCTCCTGGTGAGCGTCACCAGTTGGGAGCTCA
-GCAAAGACAGTCACCAGGTCCTCACAGCTTTGTCATCCTTCTTGCCACAC
-GGACATCCTCTCTCCCCACCTTCTGGGAGCAGGTCAGTTGGAGAGGGCTC
-CTTTAGATTGTCACTTTATTAGTAACTAAGAAAATCAAGTTCCCTTGGCT
-GGAAATCCTCATAGTTTCACTCTCGTGCATCAAGAAATAAAGTTCATAGA
-ATTGCTAACAGACTTTGCAAGGAGCTCTCTTCCCCCCGGCTCCCCACCAC
-CCATTTTTTTTGGTTACAGTAATTGCCGTCTGAGCCTCAAAGGCTAGAAA
-TCGTTTTTCATCTCATGCATGGAGAATTTCCATCTGATTGATGACAGCCA
-CAGAGCCTTTCCTTACCCACGGAGCTGCACTAATTTGCAAGCTAAAACAA
-TATTAGCAAATTGTTAATGGCCCATGAAACTGCAGGAGCAGCGTTAAGTG
-TTGTGCTCAGGCCTCCCCGGCAACTACAGCTGCTCACCTAAATACCCACG
-GTGGCAGCAAGAGGAGGAGGCTTCTAAACTCTATCATGGAGGGAGAAAGG
-GGCTGTCTCGCTGCAGCAAAGTCCTCTGCGGGATTGGCATGGCAGGCATG
-CCCTCGGTCCCCACTGCTGTGGTGCAGACACAGCGGGTCTGGGTAGCAGT
-TGGGATTGAATTTTCTTGTAGCAGGAAAGCTGGCACCAACTCCCCATCCA
-AGCGGATGCCGTGATCTCCTTTTACAGCTGAGCCAATAGCCTGTGTTTGC
-CTTTTACAGCTGAGCCAATAGCCTGTGTTTCTTCTTCAAGGGAGAAGCAG
-TTCTGCATGGGCCATGGTTCCCACTCGGTCCCACTGCAGCCTCGTAGGAC
-TCAGCAGATCCCACGGCGTTCCTGCCACGGCTGCCCCAGGTGCGCCCAGA
-GCTTGGGATGCTGTACAGGCAGCTCAGGCTTGGAGGAGATGGCCGGTCCT
-GTGCCAGTGGGGAATGAGCAGTGGTGTCATGTCAGGATGTCTGTGCCAGG
-CGAGTTGGCAGCAGGTTCCTTGGAGGAAGGTCTTGCAGCTGTAAAAATAC
-AATATCTAGgtgtctgtgtagaaagaagtagacataggagactccatttt
-gttctgtactaagaaaaattcttctgccttgggatgctgttgctctatga
-ccttacccccaacccggtgctctctgaaacatgtgctgtgtccactcagg
-gttaaatggattaagggcggtgcaagacgtgctttgttaaacagatgctc
-gaaggcagcatgctcgttaagagtcatcaccactccctaatctcaagtac
-ccagggacacaaacactgcggaaggccgcagggtcctctgcctaggaaaa
-ccagagacctttgttcacttgtttatctgctgaccttccctccactgttg
-tcccatgaccctgccaaatccccctatgcgagaaacacccaagaatgatc
-aataaaaaataaataaataaaaataaataaataCAATATTTAGGGCCCAT
-GACGGCAGGATTCAGGTTACAAGAAGGCTGATTATTTCAGGACAGATAGG
-TCAAGAAATGCACAAGACGTGGCTGTAAAGTCCAGGCACTGTCACTTAAC
-TGACACACTAAACAGGATTGGAGAAAAGCGTGGCTGCCTCCCAAGGAGTT
-CTGTGGGCCGTGGGGCTTTTCGTGCCGATGCCGATGCTGCTCCAAGAATA
-TCTGGAGTTCTGTCTAGCATCATCTTTAAATGGCTGGGCTGGAAAATTAA
-AGGCCGTCCTGTCACTTTGTAGGCAAACAGCCATCCGTCCAACAGTGACA
-GTCTACACACGGCTTACCTTCCTGAGCTACCTGGCTGGGCCGGGATGACA
-GCTCATTCCGAGATCTAAACCCATTCCAAGCGGATCATGAATTCTCAACC
-TGGAGATACTCCAAGGAATATGCCACAGGTTCTGAAAAGAAATATCAAAA
-GGGTATCATAAATATGTGTTGCATGTTTGAGAGTATGTTAAATCCTCCAG
-AGATTCCAGTCTGAAAGAATAACCATTTTGGTTTTTTGTTTTGTTTTGTT
-TTAATTGTCTTGTGAGTTGGATGTGTGGAAGCAAGACGATGAGGGGAAAG
-AAGGGAGGAGGAGCAAGGCTGGTTTTCATCCAAGCCTGGGCAACTCCATT
-CACTGTGTTCAGTTCCCATTGAGAAACCTGGAATCCTAGACTCCCCCCCA
-GGGGGctcaacattggaaaggacctccctccggagatcttccatctctag
-atggagaaattccatctctaaactctgataaatgggcttcctggaagttc
-cctggaattagatccctgctgcctggcagggcccgctgctctgttcagga
-cgccctaattgtcagcgagttcttctctgcagtctgcctgcctccagctt
-cTGATGCACCTCATTCTGGAACTTCACATTTTCTCCTAAAGGATCGATCC
-AGGCCAAAGCCAGCTCAATGCCAGCTCTACCCAAAATACAGCAGCAAAGG
-TGATGGGCACTGCAGGCAGAAGAAGGCCAAAGCCCCTTCATCCCCATCCC
-CAGCCCCAGATGCCTGAGAGCCCCCACACTCCCTTCCCAAAGCCCCCACA
-TGGCTCCCTCAGCCGGTGCCTCTGGGGTCTTGGCTGTTGGCACTTGACTG
-ACACGACtgtcttagtccattcaagctgctatcacaaaaatacagtggac
-tgggtggccgaagacacagacatttattattcagcgttctggaggctgga
-agtccaagatcaaggtgctgggagactcggtgtctggtgagggcttcggt
-ccccagacggtgcctcttcactgtgttatcctacaggggagtggggaggg
-tctttctgcgccctttcataaggaccctcaccccatccccgagggttgca
-accgtgtctcataataccacagaggtgaggatttccacaaacaaatgttg
-gggggacacccatgttcagcccttaccaGTGGCCAGCCTGCAAATGTCCC
-TGAAGCAGAGCGGGGAGCAGCACCAGGAAGACGGAGCCTGCTGGGCTGGG
-GCCAGTCCTTCCCACACCCCACACGTGCACCCGCGCGGCCCCAGGAGGGG
-TGGAATTTTTGTCATCATCGTCATGACTTTCCCATCCACACTGGATTCAT
-AGTAAGCTCTAAACAGCTGTGTCTGTGCAACCCATCCACATCCAATAAAG
-ATGGTCGTCTATCCATCGCGGCTCACACCTAGAAACTTCATCACACTGTG
-GGCATTTTTCTACTTAATCCTTTACAGGCAAGTGGGAGATTCCCACGTGC
-CTGTCTCTATCTTGCTGCTGAAGAAGTGGAAGGCCAGAGAGGAGGAAGCC
-ACGCGCCCGAGGCCGTCTGGCTGTTGAGAAGACCAGAGGAGAGCCTGAGG
-AGGCCAGGTTCGAGCTCGTGTGTCTCAGCCCAGAGCCTGCAGAATTTTGT
-GTCTGTCGCGACGGGGTCTGAAAACCTATTCTGGCCGGGCAGGCTGGAAC
-CCGGGCTTGTTGTGGGCCGCAGACCAGCTCAGTGCAGCTCGCAGCCCTGC
-CAGACGGAAAGGGGGAACTAGGCGCGCAGAAAGGGTACGTGCGGAAAAAA
-CTCTTGCCTCTGCGCTAGAACGTCCGGCAGGGCCCTTCTGTGAACAAGCG
-GCAGCACCTGCGCCAGGGGCAGGTGCCACTGACAGACGCCTGCCGGGCCC
-GCTCGATCCTGACCAGCTCACTTCTCAGGGATGCGCTGCACCTGCTGGGC
-CTCCTGGAACCAGCGCTCGGCTTCGCTCGGGGAGCACGGCGGTGCGGGGC
-AGCGCATCAGAGCCCGGACTCGGGGGAGGGTCCTGGGACTGCAGTGACAA
-TGTACCTTCACAGTGGGAGCAGGAGGATTAACACGGCAGGGATTGACGCC
-CTCtctgagaccaaggtgtcagcaggaccacactccttctggaggctcta
-ggggaggatccttgctgcctcttccagcttccggtggtttcaggccttcc
-ttggtttgtagacacgcgtcaccctgtcactccaccctctgaccctgtct
-tcagggaaccttcttctcagtgtctgtgtcacgtgccctcttattataag
-gatgccagtattggactaggacctcctcctcgccgaacccagcaggacct
-catcctaacttgatgacatctacgaaggccctattgccaaataaggtcac
-gttcacaggcactggggcctgggattttcccttacgttttggaggatgca
-attcaatcACAGCACTAAACAAAGACACGGCTTTGGAGGATGGGAGCTAG
-ACTGCTGGAAATAATATGGACACGTGTTATTAAATCGAGAGAGGGGAGAT
-CGTTAACATGTGACATCATCCGGCTCTTATTAAAAAGCCTGATCGCTGCA
-TTGTAATAAGTTTTCCAAAAGGAAGGTCAGCAAGAATCAGTTTCAACTTC
-AATAATCTCAGAATTACATGTAAGTCAGATAGAAGTTTAATTCTCCTAAT
-TGGGAATTTAGTTAATTTAGACACTGGCTGAGCTGTTTCCTTCTGATGTA
-TAAAGACATAATATACATTTATGTGTAAGATAAACACAGAAGCAGAAGTT
-GGCCAAAACCACAAATATCATCTTTGCTGATAGTCAATGCCACTTACAGA
-TCACTATGGTTTATCGTCTCCTAAAGACCCTCCTGGGCAGCCCTTCAGCG
-GCAGTGttcattcactcactcactcattcatttattcaGTCTAACTTCAC
-TGGATGTTTTGACTATCTAGAGTACATAAGGTTTGGGAAAGGATGGGACA
-CAGTGCCCAGCAGCCTCAGGTGACCTCGCGTCTGAGGAGGAGGAGAGCAG
-CATTGTTGGGTGGCAGCAGAACCATCTCCACCAGGGTCCTTGGCGTTGCA
-GCAATATCAACACAAggccgggtgcagtgtctcacacctgtcatcccagc
-actgtgggaggccaaggaggagaatcacctgaggtcaggagttcaagacc
-agcctggccaagatagggaaaccccatctctaccaaaaatacaaaaatta
-gccaggtgtggtggcaggcacatgtaatcacagctactctggaggctgag
-gcaggagaattgcctgaacccaggaggcagaggttgcagagagccaagat
-catgccactgcactccaccctgggtgacagagcgagacactatctctaaa
-aaaacaaacaaacaaaattaaaaagaaCAAAAATTATGGTTTGTTCCAGA
-ATTTTCTTGCTTTACTGATATCTTACCTCAAAATCAACTCACATTTTCCC
-CAAGAAACTAAAAATCAAATACATTCACTCTAGGGAATAAGATTACCAAG
-TGCTAAGGGAAATTACAATTAAAAGATGATTTGGggctgtgcgaagtggc
-tcacgcctgtcatcccagcactttgggaggccgaggcaggtggatcacct
-gaggtctgatgatgaaacccatctctacaaaaattagctgggagtggtgg
-tgcatgcctataatcccagctatttgggaggctgaggcaggagaagcact
-tgaacccaggaggcggaggttgcagtgagccgagatcgccacacggcact
-ccagcctgggtgacagagggagactctgtctcaaaaaaaaaaaaaaaaaa
-aaaaaaaaaaaaaaaaTCAACACAAGACGCTTTCAGGAAAGCAGGCGTTA
-TTAGATCCCACAGAGAGCATTCTTGTTTTTAAGGACTCAGGAAGTCATGG
-AAATTGCCAAGGAAGCGGGATCAGAAGATCTGGGCTGAAGCAGCTTGGAG
-GTGGCGCTCACAGGTGGAGGGGCTGCCCCGGGGCGGCCCTATGGTGGGGA
-GAGCAGTGTAGGTCACGCGGGGCCTCCTGACGAGCAGAGTAATGGTCCTG
-ACAAAAAGCCACGCAACCCTCTCTGGAGAAAGGACAAGTGCCGCAGtgaa
-gagagaccaccaataagcaggaggtgcatccgaacgaatttcctaaaatg
-catcaagcagagagaatgagatggaaaatctgaaagcagaaagcataaga
-gCTTGCCAGGTGGAGCGCACATCTGTTCAGACCATGCCACAGACGACGAA
-GAATAGAAGGTGGCGTGCCAGGTACAAAGCAAATCCCAGCAAGTGGCCAA
-GAATGCCCATGTttaaacccacattcccaaatagcccatgattcaaagaa
-ggaattataagaagaatgaacaatgcttggaggtgaacgatagtgaatac
-atcacttacgaggtatgtgaaatcaggaagagcTTTGagaaaacagcata
-gactataaaaccagaatatggaaaacaaaaggcattaaatataagaaaag
-ctgaaaacaaatcaactaaagactttagagaaaaaaacatagaaaaatat
-ataacaaagtaggtgttgtgaaaagactgatcaaataaatagtgtcttgt
-gagattaataaagaggaaagaagataagaaactattggattttattaata
-aggcaattgagagaccagctggtaatgtagcagatgttggaaagatagaa
-ggaaaaaactttgaacaactttataagatatacttgaaagcctaaataaa
-ataaaccatttcaaaaaatcaaaactgacttaagaaaaaatagaaattct
-gacagtcctataaatactcaatacatttagtatatacttataaacaccag
-atccagatggttttagaggtgaattctgtcaactttccaggaatagacca
-tcctctacttataggaactcttacaaagactagaagaggaataaatttgg
-tctccaaatccttaaattagctgactataactttggtaacaaaatcaaat
-acacatgctaaaactctatgcaaaaatattcatagaataatccagtaatc
-aattaaaaattatgtttgttttatccaaggaatgcaagagtggaatacat
-aagaaaaatatataattttcactcaccaaattcacttattaaatgagaaa
-aatcttacaattaacatatgcaaaaaagtatttcataaaatctaatgttt
-atccattattttaaaaacttgtaaaatataaataggataataccttctta
-acccaataaatttaatctaccagaaacatgtagcaaacagaatccttaaa
-gatgaaatgaaatttaatccgtaccacacattatatgcaaaaataagttt
-cagatgggttaaatgtgaaaggcaaaccttaaaattctgagaataccgta
-acataaaaccatctcatggtagagaacaattccgttaagcaaccaagtac
-gcaagcacataaaaacattaaccataaaattagaaactgattgtttatgt
-taaaatgtaaaatacctgttcagcaagatgccattaGCTTGTGACAAAGT
-CATAAACTGTATAAAGTTAGAAACGTACAACTAACAAAAGAAGCTATTGA
-TCTGAAACAAAAAAAAATCAATAGAAAACAGGTAAGTCACTGAACAATAC
-AAAAGGATAACACTCCTGGGGTTTGGCTAGAAGCTCGTTTCACAGGTTTT
-TCTTTTTACCATAATGCCTTGTAGCTTTCACCCATATGACATATATGATT
-GTCTATGTGTCCAACATAGAGGAGGTTTATTAACCCGTAGGAATTAAATT
-CCAGAGTCCATGTGATGCAAAGCTGACTCACATCACCCAAGATTCCCTTT
-CTTGGGGATTGTTTACCGTGCCTTCCATTGGGCAGTCTTCAACCTGAGTC
-TGTCTTCCTTCTCGGCCACaagaagattatctgtcttctctgtcacagct
-cctgtgagactcacctctgactcccttgttgacctatggccagaccagac
-acagacctttccccttaatggacctgctgacaagactggacaggggccct
-tccccttccacccctaaccaactcctcaatgtctgcctcatgagtgactc
-actaggaacagaactttgtgaccccaaagccagctgggcacagagacaaa
-catgtcctatGTTTGTCTGAGTGAGAGAGGGTTTTCCTGCTTAGGAAGCC
-TCCTGGCTGTGATGTGATATCTGCAGGCCTGGGTGCTCTTGGCCTGAAGC
-AAATCCATCCTCTCACTTGTTCGTGTTTTGCCTTTGACATTTCTAGCCTG
-ACTTGAGTGCTTACCAATTTGGAAAAGTTTGGGGCAACAATGTAAGAATG
-AAAGGGTGATAACCATTCTGAATTGCTGTGGAGGCTAGAGCACCGTTGAT
-CCACCCCGTCAGCACAGCTTTCGAAACAGAAAGTGCTTCCAGGGCGTCAG
-GCACAGAGGCAGGTGCACGCCCCGTGGGTATCCCTGTCTCCATCCCCGAG
-GCCCCCACACCTGCAGCAACCCTGACGAGCGGCCATGTGCACGTGTGTGT
-GTGTTGGGTGAAGGCAGAGGGCATCGCTCTTGAGTCTTACCTACCCCATT
-GTGTGTTGGGTGAAGGCAGAGGGCGTCACTCTTGAGTCCTACCCACCCCG
-TGATGCAGCACTGGTTCAACAGTTCGCAGAGGAGCTTGCACCAAAAGTCA
-GGAGAGTGTCTCTGTGTGTGGCCGGGGCTGGAAATCCCATCCTGGACCCA
-TCTTCCCGCACTACATCAGGAAGGGAGGGGGAGGAGGTCACCAGCGCCTA
-GAGGCTGCCATCTCTGTCTCCATCATGCCCGGGGCTGCTGGTTGGCTGTG
-GGCAAGATGAATTTTCATTCAAAGATGTCTACTGTGGAATTCATTGATAC
-TTTTGTTTTTTTAGGTAATAAGTATTTTACAATGGGCCCTATCGTGGAAT
-CTTCATGATGAGCAAATAAAGAGAATATGGGGGCTCAGGGAAGCCCCACG
-TTCAGGGGTCACCTGGACATTGTTCAGCGCATCTGTGCCTGTCCCCAGGA
-CTGAGTGTCCGAAGGACTGCCGTCCAACTTAGAATAAAGGGAAAAACGCG
-GATGCTGGTTTGCAATGGCTGAGACTTCATACTATCAAAATAATTGTAGA
-AATGCACAATTTTGCAGGAAGAAAATAATGTTTTTAGAACTAGAGATTTT
-CAACCTGACTTCCCTGAATCTTCTCTTTCCCCTTGAATCGGTGTGAGCAC
-ACACGTCTCCCATGAGCTCCAGTTCTGGGACACTGGCACAGCTTTAGTTA
-ATTAACAGGAGTGAGTCAGCGAGGTTGAAAATATGTATTGCAAATCGATG
-TGAGGAAGAGCTCCAGCTGTCTGAAGGATCGTGGGGCTGTGGATTTTAAA
-AATGCACCTCTTCATTTGGCTCCTATTCCAGTCCAACCTCTTGCAAACTT
-GAAAACTCGTAAACATGTCATAGAAAGGGTTATTGCAACTGCTAACATAG
-AGAGACGCCTTCTTCCTGTCGACTGTCACAGCTGCCAGCCCCTCCCCAAG
-ACAGGGAGCTCTAGAATGAAAGTCTTCCAACACTTCTCCAAGCTGAGCTT
-CTCAGGGGCGTCTGTGGCTTCCACATAGGGTAGGAAGGCTGAGCTTAACG
-GATAAAGCCTTTCATGATCCGTCCCTGCATCATTTTCTCTCCCGATTCTT
-CACCAACCATCACCTTCTCTGGAGACTTCTGCTAGAATTCCCACCAGGAT
-GCTCCATAGGCTCCCGGCTTCAGCACTGCCCGCCTTCTCCAGCCGCCTAG
-GCATTGGGTATCTCTACCTCCTCCTCCTTGAGACCTCCACCCCCACcaca
-cacacacacacacacacacacacacacacacacacacacacacacaAAAC
-TGTTGCTTCCTCCCTGATCCCCAGCTGCTCAGCACACAGGTCCCTCTCCA
-AGCTCCCGCTCAGGGCTGTGTGGAGCCCTGGTATCTCAGAGGAGGTGCAC
-TGAATCCTGCCCGCAAAATTGAACAAAGTGCCAACGAGGAATCAAACATA
-CCTGCAACGTTATCCCAGCGAAAGTCAGAGTTCAAACTTCAATGCTGTGC
-CAGGCTTTCTCTATGTCTGTGTACCTTAAAATGCTAAAATGGGACCACGG
-CGCACCTCCTGGTTTTCAGCTGGGACCCGCCTCACTTGGACCTGGTGACA
-GAGTGAACTAACTGCTGGGGCTCAGTCTCCTGACCTCTCCTTGGCTGCCT
-CAGTTACCCTGCTGCTGATGAGGACGGCAACTTTCTGCTATCACCTGCGG
-CTCTCTCATGcaacggtccccaactttttggcaccagggactggtttttt
-ggaagacaattttcccacggatggaagtggggtggagaacgatttcagga
-tgattcatttgctgggcactttatttccattattattctactgtaatata
-tgatagaataattacacaactcaccatcatgtagaatcagtggcagccct
-gagcttgttttccttcaaccagaggatcccatctgagggtgatgggagac
-agggacagaccatcaggcattggagcctcctgcgcagttcacaatagggt
-tcgccttcctacgagaatctgatgctgctgttgatccggcagaaggtgga
-gctaggacggtcatgctctctcgcccgtcactcacctcccactacagggc
-cccgttcctaactggccaccgaccggtatgcgtggggttggggacccgtg
-CTCTGACTCATACCTGGCATCACGCACTGTTACAGACCCTTGGAGGGCTG
-TGGGTGGGGGCTCAACATCTGAAGTGGAAAAGCCGATTCTCACAGCTCAC
-TGCTTaagtgtattatttttaacttttgattcactttgttaaactggcct
-ttaaaattttgttccagttgacattcctacccactatgtataaaaatatc
-tttttcccacagacttgcgaacattaagaaaatcatgtttAGCGCCTAAC
-GTAGAAGGAAGAAGAAAAACATATGAAATGTAGCTTTTCAATTAGTGACA
-CCTTGATCATTTAAATTGCTTACTAGAAATATTTCTTTCATCTTTCTGAG
-TTTGAAACTTTGTGTAGTTTGACTCTTTCCCTGATCTTCTCAAGAAAAAG
-TTAAAATAAATCATGAGAAACATTGAAAGAACTCCTTCTGGGACTTTGGA
-AGTAAGAATTTCCAGCTTTCTCTGCTGATGGAAACTGCCTGAGATGAATT
-CTGTATCCTGAGGACAATCTAATTTTCCAGCAGAAAGCAAGAGTGTTCAT
-TTCTCTATTCTTCTTCTTAGAAAAAAAAAAATCATTCTAAGCTTTTATTT
-TAATTCCCTCCAGGAAAACAAAGTGAAAAAAAAACATTGCTTCTGGGCCG
-TCTGTGTTCCTCCTGCACCCCCCGCCTCCCGGCTTGGATTGGCAAAGCTA
-CTGAGGCATGAAAATTCGCCCAGCGCCTGCAGAAGTGGCTTCAGCACCAA
-CCCTTGTTAGACGCAGGTGGCTGAGTTTTAACTTTTAAAATATTCTCTCT
-GCTTTTTCAAGCATCACATTTTCTCCCAATCACCCACATTGATACGAATT
-TGCACCTGAGGCTGAGTCTATGTGTTATATGCCCAGGCTTCCCAGAAAGT
-CGTCCTCAAATTCTCTATAGATGCAGGTTTGCCTGGGCTGGAAATTGGTG
-GTCCCATCTTGAGTATGTGTGGTAGGCATGTATGCAGATCgtgtgtgtgt
-gtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtatttattttaag
-aaactggcttatgcagttatggaggctgacaaggttgaaatctgtagggc
-aggccagtgggctggagatttgggcagagcatctgtgttagtctcgaggc
-agaattccatctcctccaggaaatctgttttgctctcaaggccactagct
-gaccaggtgaggtcccccacatgctcaagggccacccacttaaggtcagc
-tgttgtggctgtgaagcatatctacacaacaccttcagagcactgtccaa
-actggtgtttgtgcaaacaactgggcaccacagcgtagccaagcggacac
-ataaaatcagcAGTCTTATATGGACgtgtgtccgtgtgtatgtgtgtgtg
-catgtgtgtctgtgtgtgcatgtgttcatccatgtatgtgtgtgcatgtg
-tgtatgcatgtatgtaatgtgtccatgtgtgtgtgtgcgtatgtgtgcat
-gtgtccatgtatgtgtgCACGTGCGTCTCTGCACATCTGTGTGCATTTCT
-ATAtgtgtaggtgtgtgtgtgcgtgcatgcatgtgtatgcatatgtgtgt
-gtccatgtgtgtatgCATGCATTCATGCATGTGTGCATCTGTGGGTGCAC
-ATATACAAGTGTATATAATTCTGCCCCAGGTTGGCTGACCTGGCATTTTC
-CCTTCATGGTGACTGCAACCTTGTTAGCCATGACTCAGTTCCTTCTGTGA
-AGAGTGAGAGCTTCATGGCATGAGGCCTGGGACAGGTGTCCCTGGCTATT
-CTGCATCCAGTCCATCTTTCTGAAAAACAACATCATGGCAGCGTTGGTCC
-CGTTCAGGGGCTCACCAGAAGCCTCACTCCAGCTGGGCCACGAGTGTCAG
-GACAGGAGGTCCCCATCCAAGCCCCACACTCACCACTGGCCCAGCCTTCT
-GCAGTGGGTCTGGGGTTGTGGCTCCCAGCCCTGGGGACATCAGGAGCATG
-GAGTTCAGCTTCACCAATTCATGCTGGATCTTCTGACTGGGTGTCCACCA
-TTTTCCCTTAGACCCCCCCCACCTACCTGCCGGTACCCCCTACTTGGGCC
-CACACCACAGACTCTGTGTAAATCTGTGCCTCTCTTCCTACCGGGGTGGG
-GGATCCTTCACCTGACCCACTGCATTGGCCTGAGTAGAATCTAAGCTCCT
-GAGCTGTACCCTGTGAAGGCATGCTAGCATCCTCGCCTCAGCCCAAAAAC
-TATCTTCTCAACCAATGAGGAGCCCCTCCCAGCCCCTGGCTCCTCACAGT
-TGGTCCTCACCTGGGGCCACCCTCCACATCTCAGAAGCTCCCCGACCCTT
-CAGTCCAAGCTCTTTCTGTCTCTCAACTTTAACCTCTCACACTAAGGGAT
-GGTCCCATCAGGAATAGGGTTTCTTTTGTACCATCCTCTTTAAGATCGAT
-GTAAAAAGAAGGCGTGGAACTTCCAGAAACCCGGGCTGCCTGCTGGCCCC
-ACCTGCTCCTCTTTGCCACCTCCCTTCACCACTGGCTCAGGGAAGCGTGG
-AGCCGCTGCTGGACCGCTGTGGCTGAGCTTGTCACATGCCATGCCTGGTT
-TCATCACGGAATTCTCAGATAGACATGCGGAGGCTCCATGTTCACTTGCA
-AATCAGGAAGCTGAGGCTCAGGGTGTATTCAAATGGGGCAATATTTTTAT
-AACATACAGGATCATTTATGATCAACATTCCtttttgttattttttcttg
-agacggagtgtcattcttatcacccaggctagagtgcagtggcacaatct
-cagctcactgcaacctctgcctccccggttcaagcaattctcctgcctca
-gcctctcaagtagctgggattacagacgcgggccaccacgcccagctaat
-ttttgtatttttagtagagacagggtgtcaccatattggtcaggctggtc
-tcgaactcctgacctcaggtgatccagccaccttggcctcccaaagtgct
-gggattacaggcatgagccaccacacctggctTTTTTTTGGGGGGTGGGG
-GGTGCtttttcagacagagtcttcctctgtttcccaggctggagtgcggt
-ggtgcgatcttggctcactgcaacctccacttcccgggttcaagtgattc
-tcctgcttcagcttcccaagtagctgggattacaagtgtagaccatcgtg
-cctggctaatttttgtattttttagtagagacaggatttcaccatatatt
-gtccaggctggtcttgaactcatgacctcaggtgatttgcccacctcggc
-ctcccaaagtgctgggattacaggcgttgagccatcgcgcctggccTATG
-ATCAACACTAACAAGCAATTATGGTAATAGGGACattctaaaattatagg
-aattaaggcagtggggtatgaacttagagacaaagagatcctaacagaag
-cctcaaaaatagatccacacatgtatggaaacAACATTAGTGGTGTTATA
-GAAATATTATGGCTGAGACAATTGACTGAAAAATTTAAAATAAAGAAACA
-GGTGAATGCAAAACCGTTCATCAGGTCCTGAGGAAGAAACGCTGTGTGTT
-TGTCACAGCTCCcctgctgggacacagggagactgcatttcccagctctc
-cttccctccaactgggggccacgtggctgagtttttggctcctggagcgt
-aggtggaaatgCTTCCCATTCTAACCCTGAGAACGCCTGTTCCACCTCCA
-GCCTCAGCTCTGGTGACTGTCCTTCGGAGGAACATATTTAAGATGGCAGC
-ATGGGGGCCCAGGAGCAGCCTGAATCCCCGAGTCACCACCTGTCTGCAGA
-GCTCTGAGGGCAGCCCCCAGCCCACACCAGGGTGTGAGACTCCTGGGAGG
-TAACATCTCTGCCACTGAGATTCCTGCTGTCCTTTTACTTTCCCCCAGCA
-ACACAGAATATCCTGCCCTGATTAATCGTACCCCTGCCTCACCATCCACA
-GGAAGCACTTCCAGGTACGTTATGTCCTGGAGTGAAAAAGGAGAACTTGT
-AAGAATGTAGTAAAAAATACAGTTATgctaacactgtgaaaccccatttt
-tattaaaaaatacaacaaaattagctaggcgtggtggcgggcgcctttag
-tcccagctaattgggaggctgaggcaggagaatggcatgaacccgggagg
-cagaggttgcagtgagccaagattgcaccactgcaatccagcctgggcga
-cagagcaagactccgtctcaaaaaaaaaaaaTACAGTTATACATCCAAAT
-GACACAGGTTAGAGAAAgttctcctttttcaaaattgtttcgctactcta
-gatccttgacatcaccgtaaatgttttaataccagctttttaatttctat
-tttgtgttttggggtttttttagacagagttttgctcttgttgcccagac
-tggagtgcagtggcgttatctcagctcactgcaacctccgcctcccaggt
-tcaagtgattctcctgcctcagcctcctgagtagctgggattacaggcgc
-ccgccaccatgcccagctaatttttgtatttttagtagagacggggtttc
-accatgttggccaggctggtctcgaactcctgacctcaggtgatctactg
-ccctggcctcccaaagtgctgggactacaggcatgagccactgcaccccg
-gcctctatttcgtttttaaaaagactatcaggataagtaaatttggaaag
-aagagttatcttgcaaatatttactctcccaacccatacatgtgccatac
-atctattcccatacctttagctcttatttaatttcactcagcagagtttt
-ttagctttcagtgtaaacagctgggatagctttcacacaattgattccta
-aatacatttttcctgctattgtaaatggattttttatttcactttccagt
-tgttcattgttcttttacacaattatgacaatttttgcatgttgaccttg
-ttactatgcttataatttttctgtagatttgttagaattttctgcataca
-caatcatgtcacctgcaaacagagaaaatgttacttcttctcttgctata
-taaatgcattttaattattgttcttgcctcgatgctctctctagaacctc
-cagtgcactgctaaataggtgtgagtgaacattcttcactttttcctgat
-cttgagacaaaacaattaatgtcacaatatttggtgtggtgtcacttgta
-taatatagatacatgattatctatatacactatacatctatacatagaga
-tgattttcatcaggaggaaattttgttctatcttatttggctgagttttg
-tcatgaataagtgttaaattttgtcaaattattattcttcatctattaat
-aacatgttatggttttctcctgtattctgttaataagtaaatggcagtga
-ttagtttttgaatgttgaatccacctcgcagggcctcccttggtcccagt
-ctgtttttttattgttataatctttttttaaaaattatactttaagttct
-ggggtacatgtgcagaacatgcaggtttgtaacataggtatacaagtgcc
-gtggtggtttgctgcacccatcaatcgtcatctacagtaagtagtcttta
-ttatggctttgtagactgccaggttctgtttgctaatgttttgcagagca
-ttcttccacacatatccacggagaacatttgtcattttctcttctcgtta
-tgactttcttgagtgtggtgtcatggtgttgctaacctcataaaaagaac
-tgactggccaggcacggtggctcacgcctgtaatcccagcactttgggag
-gctgaggagggcagagcacaagatcaggagatcaagaccatcatgatcaa
-cacgggaaaccctgtctctactaaaaatacaaaaattagccaggcgtggt
-ggcagtcacatgcagtcccagctacttgggagactgaggcaggagaatgg
-cttgaacccgagaagtggaggttgcagtgagccaagatagcaccactgca
-ctccagcctgggtgacagagcgggactccatctcaaaaaaaaaaaaaaaa
-atctgggaagtgttacttcctcttccatttgggggaagtgttgtgtagaa
-ctggtgtgattttttcctgacttcttgtttttcagaattcacaagtaaaa
-acctgtgtctctgtggtttccctttggagaaggtttacaatttatttctt
-taatagataatcaagctctccagaacttatgtttattcttCAGCCATGTC
-TTACAttgttagacatttatacaatttattaatactgtcacagaaatttt
-tctattgttgttttattgtattttttctattagtttttttacaccatcaa
-cttatagctcatattttatcattgatttttttcactcctttaagttgctt
-ttctatctgcttatgttcaaaagtcagattaccaatcttaaattttcttc
-ttttctaatataagcaattaaagctataagatttcctccaagcccgattt
-atctgcatccccaaaatgttacatatgctCAAGAGATTAAAAGAAAAGAC
-ATCGGAATAATTAGAGAAACCATGGCCTTGAGGAGGACGTGCATGGAGAG
-GTTCCACAAAGGAAAGCAAACAGCAAAAAACGATCGACTGGACTCTTAGA
-TTCTAGCGCCCTGATCCCACCTGGACCTCAGCTTGACCGCCGCCCTTGGC
-AACTCCTGGGGAGGAGACAGCACCTCCTGTGCTCCCCTCGGCTCCACCCT
-TCGGAGGCAGCGACATCCACACAAGTGGAGAAATGGCTCCTTGGGAACCA
-CTTGGCACTGGCAGGAAATTGCATGTTTAGAATAAATGCTATATATTAAA
-GTTACTTAGAAAGTTGTCAGGAGAACGGAGGCCTGAGAGGGGGGTGTTCT
-GGGGCAGGTGTGCTGTCGCTGGGGCTTGCTATTTCTTTGTTCCTTGTTTG
-CCTTTGAGCCCATGTGAAATTCCCGGCGGGGGAAGAGAGGCTGAGCTCCC
-CGCCTGCCCCTGCCTCAGCACTGGCCCTGGGCTGGCCTCCTCCAGGTCCC
-ATCCCCAGCCTGCAGCCTACACACTCTGTCTGGGTCCCTCTTCACAAAGC
-AACCCTGGAAAGGCGGGCACTAGGGAACTCAGCCTCCCAACGGCCCCAGG
-GGCGTGAAGCTGCCTCCATGTGCCTTTAACGTCCATGTCCCAGCCTGACA
-GACACAGATGCGTACTCCCATTTGTTCTCTAGGTCATAACTATAATCACC
-ACTGCTTTGCTAATTAATGCAAATTGCAAGCGTTCCTATTGGAAACAAGC
-GTTCTGGCTTTTTTCAGTGGCCATCCATCTTCCAGGTTTGCCTCTGTGAC
-CTCCCAGGGCTGCGGACAATTCTCCCAGGGGGTAGCAGCCATCCATCCGC
-CCTCTCCCTGCCCGGGAGCTGAGGCAGCGACCATCCATCTGCCCTCTCCC
-TGCCGGGGAGAGGGAGTTGGGGCAGCGGCTGTCCATCCACCCTCTCCCTG
-TCTGGGAAGGTCACCAGTACTGCCCCATCATGAGAAATGCCGGGGAGCTG
-AGGCAGTGGCCATCCATCCGCCCTCTCCCTGCCGGGAAGCTGAGGCAGTG
-GCTGTCCATCCACCCTCTCCCTGCTGGGGAAGGTCACCAGTACTACTCCA
-TCATGAGAAATGCCAGGGAGCTGAGGCAGCAGCTGTCCATCCACCCTCTC
-CCTGCTGGGGAAGGTCACCAGTACTGCCCCATCATGAGAAATGCCGGGGA
-GCTGAGCAGTGGCCGTCCATCCGCCCTCTCCCTGCCGGGAAGCAGAGGCA
-GTGGCTGTCCATCCACCCTCTCCCTGCTGGGGAAGGTCACCAGTACTGCC
-CCACCATGAGAAATGCCGGGGAGCTGAGGCAGCGGCCGTCCATCCGCCCT
-CTCCCTGCCGGGAAGCAGAGGCAGTGGCTGTCCATCCGCCCTCTCCCTGC
-TGGGGAAGGTCACCAGTACTGCCCCATCATGAGAAATGCCGGGGAGTTGA
-GAGGGTGAAAGCCAATGGGATGGACTTGGGTGGCCTCTCCACAGGTGTCC
-CGCACCTGGGGTCTTGGATCTAAGCGGGGGCACCAGGCCTTCCTCAGTTT
-CTGTGGATTGGCGCTGCACACAGGGGCTGACATCTCCAAGGGCTCAGGGC
-CAGTAGAGGGTGGTGGTTGGTCAGCCACCGTGGGGGAGGACGGAAGACGA
-AGGCTGGACGAGAATCGTTTTGCAGCTCAGCATCAGGGAAGAGCTGGCTC
-CTGCTCGCCCAACCCCCTGCTAGCCTCCTGGCCGTGGGTACGTCCTCAGT
-CCTCAGCACCGGCCAGGAGTGAGCCGGCGGCACTGCTGGAGGGCTCAGGG
-CACAGCTGAGTCCGTGTCATTCTCATCCTCAGAGGTCCTCAGATGAGCCG
-TTCTCCACGTCTGTGACCATCCTCACGGGGCAGATGAGGAAGCTGAGACG
-CAGACCCCAGGACGGATGAGAAAGAATCCAGTTCTTGGCTTTGTGGCTGG
-CGCACTGGTGTCCTCCAGGCACTTCAGGAAGCCGGAGAACAAATCACAAA
-TCCACCTCCCACCTGGATCTGTCCCGGCAACCCTGGTCCTCAGACAGGCT
-GAGGCGGGCAGAGCTCGCCCGAGGCAGCCTCAGGAAGAGGGAAACTGGGC
-ACATCCTCCCCAGCCCCGCTCTCTAGGGCAGTGTGGCCGCCAGGTGGCAC
-AACCGGCTGAAGCTGTCCTCGTCACAGGAGCTTGGAGCCCCATCCCACAG
-CCTCCTCACACGTCCCCCATGGGAGCTGCTCCTGTCCTAATAACCTGCAC
-CAATAACCAAGCGAGAACAAGGAGAAGTGACACCTGCAGAGTGTGCTGAG
-GGCATCGCACTGGGATGGTCGTCGCCCTTCCGTGAAGTCCCATGGAGGTT
-CCCATGAGGCGAGCCTGGCGGGTTTGGGATGGTCCCAGAGTGGAAGGGCT
-TCTGTGTTTGGGTTTTGTTGGGCTTTGACTGATGACTACAATTCACTCGT
-TAAAGGCTGAATCTAGAGAAGGGATTCCGGCAAAGCCCACGTGCGTTTGG
-CAGGGCAGCGGGTGGGTCAGTGAAGCCCAGAGGGGCAATGGGTCAGAGGC
-CTCCACAGCTCTGTGATGTGCTTTTATTTCAGCAACTGTGTTTTTGTTCC
-CATGATCTTTCATTGGCTTTTTTCAAAGTTACTTGTTCTTGTTTCGTGGA
-TGGAGTGCAATTATAGTGaccacatttcaggcactattctaagtgctgtg
-cagataactatcaactcactcgaccctcaggaaaccatgcattagaatcc
-attaCCAGAACTTggctgggcacagtggctcatgcctgtaatcccagcag
-tttgggaggccgaggcaggcagatcacctgaggtcaggagtttgagacca
-gcctggccaacatgccaaaaccccatttcaaccagaaatacaaaaaatta
-gccaggcgtggtggcggtcgcctgtaatcccagctacttgagaagccgag
-gcaggagaatcgcttgaacccgggaggcagaagttgcagtgagctgatat
-cgcgccattgcactccagctagggcaacaagtgaaactccatctcaaaaa
-aaaaaaaaaaaaaagaaTCCATTACCAGAACTTTAGACTCAAGGAAACAG
-ACACAGGCGAGTGAACTGGATTTTCTGAGTCAGGAGAGGCCTTTCCTCCT
-CGTTCTGGGGGCACCGATTACAATTCCCTTAAGATGCTTCAGCAGAAATG
-TCCCGCCTTAAACAGAGGTGCCCAGGGGTATAAATTCCCTTTTTAATTTG
-ATGTGTGCAATTTATCATCGCAGGATTTCTCACAAAACCCTCGGTCTGTC
-AAGAACCCCCTTCTTTGCTGTAAGCACAGTCATGTATACGCACCTTACAG
-GCTTCCGAGAGCTGCCTGTCATGTCAGGAATACAGACATGGGAGGGAAAG
-CCTGCAGCGCCCACATGGACTCAAGTCAGGTGACATCAATTCCTTTAGCG
-GAGTGTCTGCAGGAATTGGCCCCACTGGACACCCTGTGAGCCCATCTCGC
-TGAGGCCCAAGCTGACACCGCGTTCAGCATGCCTGGCTTCCAGCAGGTGG
-ACGCCCTGTGATCCGTGCTGACTGTGTGACCCGTGCTGTGTGATCCATGC
-TGGCCATGTGACCCATGCTGGCCGTGTGACCCATGCTGGCCGTGTGACCC
-ATGCTGGTGCTTCGCTTCCCTTGGATAGAAACCATTTCTCCACAGACTGT
-CCTCACCAAGCAAGTCCTGCTTGTTGCCTAAGTTGGCTGCCATGCCCCTG
-CTGGTTTCTGTGTCCATAACTCGCCTTCCTCACCCATGCCCGTACCTCCA
-CCATCAGGGAGACCGACCGCACCCTGAGCCCCTGCCTCGCCTTGTTGCTG
-CTCACAGGACCTCAAGCAACGAATTCTTCTCTGTGTAAAATATGACTCTT
-CACACACATTCGTTTTTAAATTATCATTCAAAATTATACCAAGCTTTGTA
-AAGAAAACAAACGGTGTGCATGTGGAGAGACCTGTAGGTCCCTAGAGCCA
-CACAGCAGTGCCCATCCGCCGTGACCCCTGCCCAGTGCTCCCAGGAGCCT
-GCAGATGAAGCCGCTCTCGGCCACTCTCTCCCATGGACTAAGCCACTCTC
-AGCCACTCTCTCCCGTGGACTGGGTCATCCCAACAACACTGTGTCATCTT
-GACCTCACCCCAGTCCAGCCGTCATTCTCTGTCAAAGAAAGAAATTAGTC
-GGGTTTCACGAGGCTTAGGTCTGGGAATTTACTACTCTGCTTTAGAAAAA
-AGCTTCTTTTACAAGCACAATAAAAATGCAAATTAAAGTATAAATGAATC
-AGAAAAAAAGATCTCCATCTTTCCAAAGCATAACCCCAGTTACATTTCCC
-ATGAACGCCTCCAAAGACCTCCTCTGAACATGTTATTAGAGCCATGAAGT
-TCCAGACAATTGATGGGTTTTCCTTCCGCATTAAGCTAAATAACAGCATC
-TTATGGGTCAACAAAAAGACGTCTGTGCCTTTTGGCTACAATTAAGATCG
-AGGTTGGATTTGCACTTCTCTTTAATTACTAATAGATTAATCCAAGTCTA
-AAAGACCATCCATAATTAGCATTTTGTTGATTGATTTGTTGCAAAGAAAT
-GACCCTGATTATGTTCTTAGTAATCAGTTTATAGCTAATTGGCTTTCTTT
-CATTAAAATATAAAGAGCCATCCATAAAAAGTGGTCAAGGTGTGTGGGGA
-TCGTAAATGGCACAGAAATGCTGTCACTCGTCAGAGGTGGCTCTCTTTGA
-TTTTTATGGAAATCTAATTATTCAGTGAATTAAGGGATCTGACCTCCACA
-GGAAGGCAGTGGGTGACTTCCAGACATTGGTCACCCAAGGGGAAGGCCAA
-GGTTGTGTAAGATGCTGAGCAAAGATGGCACCGTTTGCAGCCACAGCGAG
-GAGGACTGATTTATTGTTAACAAAAATGGCAGAGTCAGTAGACAGTAATT
-AAAGATTTGCCGCACAGCTCAATAATCCAAAATATTCAGAGATTGCAATT
-AATTTCTTGGCAGTGACAATGCCTAATTAGATGTAATCCTTCTTACTCTA
-GATAAAAACAAAACAAAAAAATTCCCGGAGAAGCAAAGACCAGAACGGGA
-GAATTCATATTCTAAGCAAAGGCCAGATACACCTCTTGCTTCCCACATCT
-GTTTGGCTGTAAGAGTCTCCACTAAAAAATAACCTCTGTTATTATCACCT
-ATGTGCTTTTCGATTGCGACCTGAGCGGGACCGAGTCAGGAAGTCTGATC
-GCATCTAAAGGAGGATGCTTGCTGGGGAGGAGTCCGTGCTGCCCTCCCTC
-TCTTCCCCTCAGAGGAGAAGCCACCAGGACCCCGTCCCAGTCACGACGCC
-AGAGCCCAGAGCTGCACGAGGATCCCAAATCCACCTGCTCGGGCACAGCT
-GCCAGCAGCGTGGCCCATTCCTCACGTCCAGGTGACTGTGGGCACCTTCA
-CCGTGTCTCCCCGTTTTTTCTCACTGTTTTCATTTCCTGCCATTTTTAGT
-AAAGATTACCTACTGCTGCACCTCGGTGTTTCTGCTTTCCAGCGCCTGGG
-GTGAGAGTAGCGACACGGTCTTCTCGTACGCGTGAGGAGCCAGTGGAGGA
-ACTCAGATGGCCAACCCCACACCTGCAGCAGGTGCGGAGGTGGAAGGCAG
-GAAAGAAAAGGACTCCCGCAGCCCTCCATTCCTCCCCAGAGAAATTGGCA
-GTTAGGAATGAATGAATGAATGAGTAGGAAAAGCAACCCAGCCCAGCTTC
-CTTCCTCCCACCTTTCACTATGGAAAAGCCCTCAGAGCTGCGATCCTCTG
-TGGCCATGGTGGCCGTGGGCTGGCCTAGTGGAGCTGGGGTGTCCCAGACA
-AGCAGCGTCTGCCAGGCAGACAGAGGCAGCAGACGCCCGCAGGCTCCTGG
-TCAGAGGCCACATAGGGCAGAAAGCATGTCCACACGGGTCCAGGACACTG
-GGCTCCCATGTGGGTCCTAGCGCCACTGAGGACCTCCGTCCGCACAGAGC
-GGGAGGCTTTCAGGGAAGCGCCTCAGCGCCCGGCTCAAATCACCCTGGAC
-AGCAGCCTCAGAAAGGAGTTGGCCCCATTTTTCTTCTTAGTCTTTGCATT
-GTCTGGAATTTGGAGCCGGTGACATACGCTGAAGTCTCTCTAGCCTCCCA
-GAGCGCAGAGGCCGAATCCAGCAGCATTGCTGCGTTTGTGCTGTTTTTAT
-TATGCAGTGACCTCGCGTTTATATCCAGGGATTCTTGGTTTCAGTGCTTG
-ATGGGGAATAACAACATTTCCCATTAAGACAAATGACTTCGACTCATGAA
-GTGCGTGGATTTCAATGACACAAGGGGGTCCTGTCATGGGGTGTCCCTCC
-ATGGGAGGGGAGAGGAAGGAGGAGCTGGCCTGAGGCAGAGGGTCACCAGA
-AGCCCCCTCTGAGACATTGACAGCCCAGTGGAGGGAGGAGGGGGTTGGCG
-GTATAGGAGGATGGCGGCTCCCTCTTGAGCCTCCCTGAGGCCGGCCCTAA
-ATGGGCCTCCCTCGCCCTTCATCTTCTGTGATTCCATTTTCATTTCTATG
-ATAAGAACATTCTTGCAGGTTTTAAAAGGTAAATACCACTTaatacaatt
-ctttcttgctgaaaccactgtcacgtggggatgtctgtgattcacagctg
-ggcctCACGCAGGGCCGTGCAggaatctaattggaactgccgaaaattta
-catgtgcatttaggagaagtgacagttttaaatttgtgtatccttacccc
-aaaacacgtgagatgtttcattttgtagatattctcttggcatttagtaa
-tgtcctgtacttctcttcacgtgtgctgtgtctttctggagaaatactgt
-cctatgtttctgcctgtgtgtgtgcaagagagtatatttctagttctgtt
-tctagcactgattgctagaagggagaaaacttttttttttttgagacaaa
-gtttcgcactgttgcccaggctggagtgcagtggcatgatctcggctcac
-tgcaacctcagcctcctgggttcaagcgattctcctgcctcagcctcccg
-agtagctgggattacaggcatgtgccaccatacccggctaattttgtact
-tttagtagagatggagtttcaccatgttgggcaggctggtctagatactc
-ccgacctcaggtgatccaccctcctcggtctcccaaagttctgggattac
-aagcatgagccaccatgcccggcctatgtttcctttgtatccagccacgt
-tgctgaattTTCCCCTCTGAGCTCCCTCAGTTCCAGGGCACCTCCGCCTG
-CCCATAAGCTTCCGCAACCACCACCGCTGGAGACTAGATGGGGACCAGGA
-GGGATCctcagagcatctcctgggaggcgggcacctctcctccccttgca
-cgccattggccaaagcaagtcacatggccTGGCTTGTCTTTCCTGAAACA
-CAGGACGCATGGAAGAACCAGAGATACGAGTGAGCACCAGCTATGTCCAG
-AATGTGGCCATTTAAATAATTTACCTTAAATGTGATTGACTTATGATCAA
-AGAGTGGGGTGGATCCTATCAGCATTATGGGGTTTGTTCAGGTCCATGTG
-TGTGTTTGTATGTGTGTGCCCACATGTGTGAAGGATTTTTGCAAATTTTT
-CTGTCTATATAAAAATGCACATTCTCTGCTTGAGGCATGTAAGTCTCCCT
-ATCTAACCTCAACACATTTGTGGGTTTTTCACACAATTCTCATAAGCATT
-TGGTTACTTGTCTCTACAACTTTAAAATTCTAAGAggccaggcacggtgg
-ctcacacctataaatccaacactttgggaggccgaggcgggcagatcacc
-tgaggtcaggagttcgagaccagcacggtcaacataatgaaaccccatct
-ctactaaaaatacaaaaattagccgggcatggtggcacatgcctgtaatc
-ccagctactcgaacctgggaggcggaggttgcggtaacctgagattgcac
-cactgtactccagcccgggtgacagagcaagactccacctcaaaaaataa
-aaaataaaaTTCTAAGATAGATGCATTGAAATGGCACGTTGGATTTTTCT
-CCGGACCTTCTTCTCGTGCGTACAACAGTTCTCACTTCATGCACTTCCCT
-GCCAGCCTTTTGACCACAGTCACCAGGTTTATGTTTTATTGATATACAAG
-CAGCCATTCTATTCAATGGAATTATTTTAACCTTAGATTCTACATTGTCT
-AACGATAATTTTCACTTCTTACTTGTTGGGTGTGTATTTCTCTGGCTGTA
-TCCTTGCAGATCCTTTTATTATTTCTCCGAGTCAATTACTAATGATGTAT
-gtctgacatattcacaaaacggtgcctgcaaggtacagctcagtgaactt
-tcacccagcaggacgcacgtgtcaccagattaataaagagaacattaccg
-agtcctgaagtccttcctgtcctcTGCACACGCCCAGAGATAACTGCAAT
-CTTAGCTTTTATCAACGCATTCgtttttgcacattacataaatagaatcg
-taaagtactttgtattttctagttagttccttttgcacattttctttgcg
-aggttcatctgcattgttgagagtagttgcagagggttcatttgggttgc
-cagataacatttcatcctgaatacttacccgtttccaagttatcgatctt
-ttttaccatagacgggtattgcggccgtttcccttttccgtcgtgaggaa
-gagcagagccgtgacatccctgtgagcatctttcagggagtgtgcaggcc
-tttctgtgggctgtgctccccatgattgggcggaatcgtagagcacgtat
-gtcaacgtcgctgggtaacttccacaggttttccaccgtgctagtaccgt
-ctccttctcccaccagcaccgcgtctgcgctccttcctcccacgtcctgt
-ccggcgctggacgttgtcTCTGTAAGGCTTGTCTCTCCTTCCGTGCTGTC
-TCCGACCCGTGGCACCTGCCAGGGACAAAGCCTCTGCTGAATCGGTCCTC
-CCTATGCCATTTATAACCAACGGTTGAAGTggaggaaaacagaataatga
-aaagtacttgttcatccaaaagactgcaagacgaggagaggaaaagtaag
-ataaatgatgtagggaagcagaaaataaaGAATCCATTGACAATTAGaac
-acaaatattttagaaatgaaattaaatgttcagttaaagattgttagttg
-aaaataaatacataaaacatgcataaaatttatacaattttgttatagga
-acacagaaaaattaaaatactatatgaaaatagaaaaaatgcatatcata
-taaacactaaccaagagaacgccggtatagcccaattaatgtcagacaaa
-ataggttttaaggcaagaaacattaatgagaaaagaaacatgttgtatta
-ataacaaaacgttattaataaaaacaaaaatattagtctaccagaaatat
-ataacagaactccaaatgctgacatctaaccaaagattatcaaaattcat
-aaataaaaaatgatgaaactaaaaggagaaccaatgaatcaataattata
-gtgagaatacttaacaagctgctctcagtaattgaaataaaaataattca
-tgatatagtccagggatcagcaaaccaagacccatgggtcaaactgcctt
-ccctctatttttgtaaataaatctgtattgaaacccagcaatatccattc
-acttgtgtgttttctatggccgattttgcatagcagccaccatatttatt
-atttggctctttacagaaagtttgccgaccttgataaagacctaaacaca
-caaacaacgaactgcccctattgatccctgttggtgacagacatggcgct
-atgcccggcagcagagtcgtgggtgtaattgttgctgttgttggtgttgg
-tgttgttttgagacagggttttgctctgtcacccgggctggagtacaatg
-gcgccatcttggctcgcttcaacctccagctccctggttcaagcaattct
-cctgcctcagcctcctgagtagctgggactacaggcacgcaccaccacgc
-ccagctaatttttgtatttgtagtagagacggggtttcaccatattggcc
-aagatggtctcaatctcctgacctcgtgatctgctccctgtggcctccca
-aaatgttgagattacaggcgtgagccaccgtgcatggccaagtcgtgttc
-ttgtcaaagcatagtaaatatttactcaatatttaccaaaattgactaca
-tgttgtaccattaaaaagtctcttccaattcaaaagatttaaatcattct
-aagtatgttttctgaccacagcagaattcatccagaaagccatatgttaa
-agataactataaaactttaaagtgtttggaaattaaacactacactacta
-agtcacacatagttcaaggaagaaatcatcaagaaattagaaaatatttt
-aaattaatgataaaattctccatgaaaaacttgtgggtgcagccggaacc
-ccgattagagggaattcgatcctgaagtactacgttaccaaagattgaag
-gctacaaggcagttatccagctttgtatctcaaatagtagaaaaTATTAG
-TTCAATCCTGAAGTACTACGTCACCAAAGATTGAAGGCTACAAGGCAGTT
-ATCCAGCTTTGTATCTCAAATAGTAGAAAATATTAGTTCAATcctgaagt
-actatgttaccaaagattgaaggctacaaggcagttatccagctttgtat
-ctcaaatagtagaaaatattagcaaattatacctaaaagaatggagtggg
-aagggagtaagaaagatgtgagtagttctcaatactttagaaaacgatca
-cacagcagggaaaaccaacctagccaaacactagctccccgagaagcctc
-cttcaaagtatcaccccctaccaagaccgacaggaatacaaagacaacag
-gtaccagttaccaaacccagaaatgaagagtgggcaaccacacagcctaa
-agacataaaaTCAgtttttttttgttttgttttttgttttttgttttgtt
-ttgttttgttttttttttgagacggagtctcgctctgtcgcccaggccgg
-actgcggactgcagtggcgcaatctcggctcactgcaagctccgcttccc
-gggttcacgccattctcctgcctcagcctcccgagtagctgggactacag
-gcgccggccaccacacccggctaattttttgtatttttagtagagacggg
-gtttcaccttgttagccaggatggtctcgatctcctgacctcatgatcca
-cccgcctcggcctcccaaagtgctgggattacaggtgtgagccaccgcgc
-ccggccAAAATCAGTTTTTAAaaaaggaaattatgagcaggtttatgcca
-gtcaatttaacaactggatgaaataggtggataaaaagtgcagccctgca
-aagcccaccaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacctga
-aagctttaatctctggaaaataaatttaatctgaaataaaaaacctctcc
-acaaaaaatcttcaggcctagagagctctgttagcaaattcatccaaatt
-tgcttaaatatggataacaacattccacagtgtctttcagaaattggaaa
-aggggcaaaatatcccagagtcacagggggctgggcatcccagacaccaa
-agcctggcaactgacttacgggcaggaatgccacacccccatcttcctcc
-ggagcacgtcggtttaaatcctaaaccaaatacaagtaaattgaattcag
-caatttgcaaaccataggattcatcatgatcgaacgtatttaatcccacc
-aatgcagtggtaatttaacattaaaggaattaattaatgcacttaactcc
-ttgacagcaaaggagaaaatgtatatgatcgtttgaatagaagatgcgaa
-aactgcttggtaaaattcaacatctattcatgttaaaagaccttagacag
-ctaggcgttgaaggtaacttattacaaagccctagtaatccaggcagtgt
-gatatttctggaagcagagcaggtggactcagtgaccagggtgaagagtt
-ttgcagaatcacctcacatgcacgtggtctctgaactcaggacgagggtg
-acattgcgaggcacaggcagatgagatcttcttactaaattctgtttgat
-ccatttgaggaaaagaaagtgaatccttgctgctacgttatattgccctg
-aataattaattctgagtgaaccacagacctgaatgtgaaagacaaaacaa
-aaaaagctcacagaggaacgtgtgggagaacgctcctcctgaccttgcgt
-tggacagagaactttgacttggccccagaaagcacctgccacatgtagaa
-tgtagacattggtagacactcagcttaagaacttctgtcctcgaaaacac
-agctctaagagtggacaggtaagccccaaggagaagaagacatcacagga
-cttctctcaacctcggacttgcagccaacacacagaagagacatacaaac
-cagtgagacaaagaaagacgggtcgactgaaaactgtgaaatctgaaata
-ggcacttcacagaaagggtgtctgatgtgcaccgagcacagaagagatct
-tcagccccactagtcttcacggtcatgggagtgaaaaccgtgtcgcactc
-cccagagaggccagcgtgtgagagcagacggtgcccggtgctgcggagga
-gcgggaagaggaactgcggtcctcacacctgctcgtgtgaatgttggtgg
-cttcagcctccttggaaaactgtatttcagtatctaccacaggtaaaaac
-accccgactgtatggcccagTGTATGAGTCAATTTTCATAGGagtccatt
-ttcatttcttctgctatgaagaaatacttaagactggataatttataaag
-aaaaagaggttcgtaatcccagcactttgggtggccgaggcaggtagatc
-acgaggtcaggagttcgagaccagcctggccaagataatgaaaccctgtc
-tctaaaaatacaaaaattaactgggcaaggtggcgggctcctgtaatccc
-agctacttgggaggctgaggcaggagaattgcttgaacccaggagggaga
-ggttgcagtgagccgagatcacaccactgtactccagcctaggtgacaga
-gcaagactctgtctcaacaaaaaaagaaagaaaagaaagaaagacggaaa
-gaagaaagaaagaatgaaagacagaaagaaagagaaagaaggaaggaagg
-aaggaaagaagaaagaagaaagaaagaaagagagaaagaaagaaagaaag
-aaagaaagaaagaaagaaagaaagaaagaaagaaagaaaggaaggtaggt
-aggttggtttaatggactcacagtcccacatggctggggagacctcacaa
-tcatggcagaaagtgaaggagaagcaaaggcatgtcttatggcagcaggc
-aagagggcgtgtgcaagggaactccctttataaaaccatcagatctcagg
-agacttattcactatcacgagaacagcaggggaaaacccgcccccatgat
-tcaattacctccagtgggtctcttccaagacccatggggaagatgggagc
-tacaattcaagataaggtttgactgaggacacagccaaaccatatcaCCC
-AGCAAGTCCACTACTGAGTTTATACCCAATAGATGCAACATGCCTAACAG
-CTAAACCTAAAAATGTTCCCACTGAAATGGGCAGCAGTGGTAGGAAAGGT
-GGATCGAGTATAGCGTCTTCACAGCTGTGTATCATCCTGAGCTACAAACA
-GCTGCCGTGCACAGCAGCAGGCATTCACCCTCCACACCCAGTATCAAAAC
-ACAGCAGACAATCCAAAGGTGCAAACTGCAAAATTCCGTTTACTTCTTTT
-TCAAAAGCAGGCAAAGCTGAGGACTGGTGATGGCAGCCCAGATACTCAAT
-GGGGCTGACTCTAGAGGTTCCCCAAGGGGCTGGGAATGCCAGGTCTCTCT
-CTCCAGCTGGTGGCTGGCTCTCAGGCCCTTCCGTCCGGCTAGTGGCTGGC
-TCTCGGGCCTCTGCGTCCAGCTGGCAGCTGGTTCTCGGGCTGCCCTCAGC
-AGGCCCTCCCTCTCCAGCTCCGCAGGGGGAAGACCACGTCTCTTCCCTGG
-CTCCACTGACTCCCCTTTTTTAACAAAAATTGGCACTACTAAAAGCAAAC
-AAAAATTTGCTTTCTATCCACTGATAGGAACAAGGTCATGTTTGCTTTCC
-CCCGACAGGAGGCCCCTGCGGGAAGTAACAGACACACGCTCACTCTCCGT
-TTCTCATCCTCTATCGAAAGGCGTCGGCAAATCTGGAAGGGGCGGTCTGC
-AGCTGAGCTCTGCTGATTCCTTAATCAGCACCCCTTTGTAGGACCCCCTG
-GGTTACATCCATCTTCTCCCATCATAAGCGACGTGTGTGTCAACAATGCT
-TGCCTGTTTGAAGATTACGACTCAAGTAGAAAAGCTGGTGTCTAATGTTA
-TCTATCCGGGTGCTCCCAGGAGGATGATGAAAGCCAACCCTGTGGGCCCT
-GAGTCAGGGGGAGCCCCTTCCACCCTCCGCCCAGGGCTGGTTCGAGTCAG
-GAGGAGCCCTTTCCCCTCTCCGCCCAGAGCCCTGAGTCAGGGGGAGCCCC
-TTCCACCCCCAACCCAGGGCCCTGAGTCAGGGGGAGCCCCTTCCACCCCC
-AACAAGGGCCCTGAGTCAGGGGGAGCCCCTTCCACCCCCAACCCAGAGCC
-CTGAGTCAGGGGGAGCCCCTTCCACCCCCAACCCAGGGCCCTGAGTCAGG
-GGGAGCCCCTTCCACCCCCAACCCAGGGCCCTGAGTCAGGGGGAGCCCCT
-TCCACCCCCAACCCAGGGCCCTGAGTCACGGGGAGCCCCTTCCACCCCCA
-GCCAGGGCTGGTTTGAGCATAGACACCAGGGTGCTGTTCCGCCAACGCGT
-CCTCCACTATCGGTGGGTGGAAGGCCTGAGTGTTTCCTGGTCTGCTGAGG
-GCTCGTTTGTGAATATCCCTTTCCGAATTGCCAGACGGTTCCCTGTGCCC
-ATTTTTAAGTATTTTTCATCACTTCCTTATGGATTTGTAGAAGCACTTTC
-TACATAGGGAACGTTCACTCTTTATCACATAAATCCGAAGTATTACCCCA
-GTTGGCAGCTTTTTAATTATATTTTGGCATAGAGAAGTCATAAATATTTA
-TTTGTGCAAGCATCGAAAATGTTCATATATGGCTTTCGCCATCGTTGTGG
-GCTTCTGGAATGACTTCCCCACACAGTTATTGTGTAAGACTCAGCATCAT
-CACACAAGAAAATGGCCATTTACTTTCTTCATGAGAATTCCAGAAATATC
-GTTTTCGTGTGTTAAATGCAGAATATCCTGTCACAGCTGTCTGACCAGCC
-TACTAGCTTTACGTGGCCCAGCCTCAGATCTCAGCTGTGCTTTTATGTGT
-GTCTGGGAGACACTGCATCTGAACAGGGTTAGTGGGGGGTCCTGAGTTTT
-GGAGTCTGCTGTGTCTGCTCCTCAAGGCCATCAGTGAACTTGAACTTGAT
-CTCTCCTCTCTTTTCAGAGAGATCGGCATGATCCGGCCCACCCTACAAGT
-GCAGGCAGTCGGAACAATGCTCCCACAAAGCCCCCAGCCCAGCGAGGAGG
-CAGCACCCCATTCCTGTGGGGCCACGGGGAGAAAGCCCCCTGCTGTGATG
-GGCCGTGCTAGAGAGGCTGGAGGGCGCGGACCAGGCAGGGGTTGCGGACA
-GGGCAGGGGGCGCGGGGCACCTTCCATCCTCCCTGGCTCAGCAGGGCTGT
-GTGTGGCCGGCCACCTTGGGCTCTTTCCCTGTCCATGATACCATGTAGTC
-AGGAACAGGGTGAGCTGTGAATGAGTTCCCTTGACTGAGGTGCTGGTGGG
-ATGGAGAGGAGAGCGAGGGTGAAGTCTGAGAGCCCTGGGGTGGGGCACTC
-GGGGCTTCAGGTCCCCCTGGGCCCTGAGGACACTCAACTTCAGCTTTCCT
-GCCACTTCCCAGCACACCGGCTGCCATGGCCTCCCCGATGAAATCAATTA
-TCCCATTGCTACAGTCAGTTAAAAGTGAAATTAAATGAATTCTGAACATT
-AATAACAGGCTGTAATAAGACAAACTACCTCTTAATGATGCATAGAACCC
-TGATGAAAATAAATTTCCTTGTGGGGTGTGTGTGAGTGTGTGCGAGTCAG
-GTGGGGAACTCAAGGGGGAGTCTTATCCGCGGAATTAAAATGAATATTGA
-TTACACAGCTGATAATTAATGATAGCAATTTTTGATTAAAAATGAGTTCA
-TTTAGCAAACAAGTGGAGTGTGGTAACATTACATCTAAAAATAGAATCTA
-GAAGAAAGGGCCCTTGTTACACAGGCAGGAGTACAGTGAGCTCTTTGATC
-CTGAGGCCGACGCCTCTGGATTCGAAATGAGCTTCTCACTCAGCAGCCCC
-CGGAACACACAGGCCTCCCGGGAGACGACCGCCTCCGTCTCCCCAGCGGG
-AAGGCAACACGGTGCCGCGGAGGCCCAGCCTCCAGCCTTCCACAAGATCC
-AGGGGCTCAGGGAGAAGCGATTGGGCCTTCAGGTGCTTCTCTCCAAAATC
-CCATGGCTTAGACAGATTCAGCAAAAATGGGATAAAACGGGGCAGTAACC
-CTGGAAGTGCTGCTGCGCTGGGAAGGACTCCTCCACCCCGGGCAGGTTTG
-TTCTGTCTCCCTGTcacatacacacacacacgtatacacacatatacata
-cacacagacacacgcatacagacacacacgtacacacacagacacacaca
-aacatacacatacacacagaaacacatacacacacagacacacacacaga
-cacatgcatacacccagacacacagacacacgcatacacatacacagaca
-cagacacacacatacacacatatacatacacatacacacacgtacacaca
-gacacacatgtacacacacagacacagacacacatatacacacaaacaca
-cacactcatacacaaatatacacacatatacactacacacatacacatgc
-atacacacatacacgcatacacacacacatacacacatacacacatacgc
-acacacacacatacacatatacacatacacacatgcatacacgcatacac
-acatacacaAGGAAATGTTTATGTGGCTGAATTCAGAAAAAGCACCTGCG
-AAGCCCTTCTGACTCAGAGCAGCCGAAACGCCGGGTAAGATGTGGAAGCC
-TGTGGCTGCGCTGGTAATAAGGACAGAAACGCCGCCAGCCATGGGGGCTG
-CCCTCAGGAGAGCGGGACGGGCAGGAGGGCACCACAGGTGGCTCAGTCCT
-GGGCCTGAAGCTAGTTGCTGTGGGCAGCGTGCGGGGGCAGGAGCAGGGGC
-AGGACCCTAAAAGCGGGAGAATTCGGAATCCAGACATCCATAAAGCCAGG
-ACACCCCAAACGGCCACAATTTGGAGCATGAGCTGGAAAAGGGATCCTGG
-TCTCTCTTCCCATGACTTCACGGGAGAGGGTCCCCCTGCCTGGCTCTGGC
-AAAGCAGAGGAAACAGAAGAGAGCCCATCCGTCCACCTCTCGCCCAGCGC
-CTCCACCCTCACCGACGTGTGCCCACCCGTCCACCTCTCGCCCAGCGCCT
-CCACCCTCACCGACGTGTGCCCACCCGTCCACCTCTCGCCCAGCGCCTCC
-ACCCTCACCGACGTGTGCAGCCCCCGCCTCCCCCCACAGGAAAGGCCAGC
-GATTTCACGGGGCCGACACGCCGTCCACGCGCAGTTCTCAGTGACAGACG
-CAGCGCTCGGCCAGGGCTGTGCTTCCCCACACCTGCAGGCAGCACGGGGT
-TGCATTAAACAGACATCACAGCCTCGCCAAGGAAAAGCCACCTCACCCAT
-GAGTCAAGGGAAGCAGAGAAATGCAGGATCAGGGCGGAGGTCTGGCAGGA
-CTGGGAGGCTGCAGCTCAGAATTCACACAGCAGAGCTGAGTCCAGGGGAG
-GCGGGGCGCGGGGTGGGGGAACGTGGGGGAGGAACAAGGACTCTCAGAAT
-TAAAATGGAGCATCGTGAAAGATACACAAACAGATGGATGGAATTTAAAA
-CCAACTGCCAGTCAGACACAACTCAAGAAAATGGAAAGACGTCGTCGAAG
-TTTCCCGGTGAAGCAGAAGGACAAAAAGACCAAAAATGTGAATGAAAAGG
-GTTAAGAAACTCAAAGGATTGAGGCCCAGTGTGTCCCTGAGTGTCGCAGG
-AGGAAAAAGAGAAGAGATGGTGAGCAGGTGTTTACTGGGGAATAGGAGAG
-GGCTCACAGGATGGCACCTGGGACAGGCATGGGCGCCGCGCCCCGAAAGG
-TTCCCTGACTCCCTAAACACACACATCTAAACACCTCCTGCTGAAAATGC
-AAATCACCAAGTCaacagctgcagagaaaagaaggccccctgctcagggg
-gaggggactccacccagcaggcgattcctcagcagccctggaagctggaa
-gacagtcggataagatcttcaaagccctggaagaaaataactgccgaact
-taaatggcaaactcgcaaaaatatttttgataaggagagagataggaagg
-tattttcagaggaacaaaacccagagtttgcaatcagcagacaatcactc
-atgaatttcaaagcagtgtatttcggaaagaaagagaattccagaaggaa
-aatGTTTTAGCTACTAGCCAGCATTTGCCTTCTTTCAGCTGACAACATGG
-GCTGAGAGTCAGTGACTTCTTTAGGCAGAACGTCACCACGCTGAGGTCAC
-TGCCCCCTTTGCCCGTCCCTGGACATCCCCAAAGCTCACACCCTCCTTGT
-ACCCAAGAGTGATGAATGTCGTCTCAGCAGAGGAGATGCCGTCCACTGTC
-CGTGGCTGGCCAGTCCCCAGCCACCTTGTTCTCTATATGGTGCTCGCCAT
-CCCCAGAGTCAATGCGTGGTGTGTCCAGTGTCTGCCTCTGGCCACCGGGG
-CATGGATGTCACCACTCCAGGAATTTTTCCCTGTCCACGGCCGTCCCCCA
-TTGTTGAGGTCAGGGCCTGGTATACTTGAGAGCTTGGTAAACCTTACTGA
-GTGAGGGAATTATTTCATTATGTCTTCCAAAGGATTCATGTCAAAATATT
-CAGATACTAATTCTCAACATGAGAAAACTGAAACCCGGAAAGGATGTGGC
-CACTTCCTTAGGACTGAAAAAAATACATGAGGACCCTTGATTTGAACCTA
-CCAGAGTGTGAGCCCCAACAGCCAGCATGGAGCGGATGACCCTGGAGTGG
-AGCCAACTGGAGTCTCAGACCCACGTGGGCAAAATAAAGAAGCTGGAACA
-GGGGGCCACTGAGATAGAGCAGCCAGGCCCCTCCTGGGCAGGACCCACAC
-TGGCCCCTACCACCTGCCCTGCCTGAACCACACTCACACCCACCCCTCCA
-GCCCTGCCCAAAACACGCTCACACCTTCCCCTCCATCGCCTTCCCCTTCA
-GCCCTGCCCAAAGCACGCTCACACCTTCCCCTTCAGCCCTACCCAAAGCA
-CGCTCACACCTTCCCCTTCAGCCTTGCCCAAAGCACGCTCACACCTTCCC
-CTTCAGCCCTACCCAAAGCACGCTCACACCCTCCCCTTCAGCCTTGCCCA
-AAGCACGCTCACACCCTCCCCTTCAGCCTTGGCTTCTCATGGTGCTCTGT
-TGTTCCCCAGTTGTTCCTTTGTCCAGGCTGCCTCTCCTGACCAAAGCCCT
-CCCTCTAGGATTGTGCTCACATAGAGCCTCCCCAAAGCCTTCCATAAACA
-CTTCAGGTCTAAAATAACAGCCACCACCACATGAagagctaacgaccatg
-agcttgaatgtgggccaggcattgtgttaagtccacatctccagtctaat
-ttaattttcccaacagctctgggaagaaggtgctatcatttccatgattt
-tgcatggaatcaaaaacacaaagaatgaaataacttgtgcacaaacccac
-agcttgtatgtcacagagactgagttcaaacccagatAGCACCCATGACC
-CTCAGAGCTGAACGTTGAGATTAATGGGtggatggatggaagcaaggaaa
-gatggatggatggatggatggatggatggatggatggatggatggatgtg
-tggatggatgtgtgggtgggtaaatggatggatagatggatgtgtgggtg
-ggtggatggatggatggatgcgcaggtggatggatggtggaaggatggaa
-ggatgggtgagtaaatagatgtgtgggtgggcagatggataggtacatga
-gtgaatggatgtgtgaatggatggatgatggtgggtggatggatggatga
-atggatggatgggtgggtggtggatggaaggatggatcatgaatgagtgg
-gtggatgatgtgtggatgggtggagagatgatggatgggtggtggataat
-caatgaatggatgtgtggatgggtgtatggatgatggatggatggatgga
-tgcatgggtagatgagtgagtcgatggatggtggaaggatgaatagatgg
-atcatgaatgggtgggtggatggatgtgtgggtaggtagaggaacaggtg
-cctgtatggattgatgatgtgaatgtgtggatgggtggtggatggatgga
-ttggatgtgtggatgggtggatggatgggtggctgaatggatgttggtgg
-aagaatggatggctggattgtagatgagtgggtggatgggtgtgtggatg
-aaaggatgggtgCCCTGTGAGACCTGCAGAGAGTAAatagatgtgtgggt
-gggtagatggatagttgcatgaatgaatggaggtgtggatgggcagatgg
-atgatgggtgggtgCCTGAATGTATGTATGACGTGGATGTGtggatgggt
-ggatggatgggtggatgaatggatgtgggtggaagaatggatagctggat
-tgtagatgagtgggtggatggatgtgtagatgaaaggatgggtgagtaaa
-tggatgtgtgggtgggtagatggatagttgcatgaatgaatggaggtgtg
-gatgggcagatggatgATGGGTGGGTGCCTGAATATATGTATGACatgga
-tgtgtggatgggtggtggatggataaatggatatgtgaatgagtgaatgg
-atgatggatggatgtgtgagtggaaggatggatggatggagcatggatgg
-gtgggtcaatggatgtgtgggtgggtagatggatgggtggatggatgaat
-ggatgATGCTTTTGATTTTATTGGACTGGGCTGATAATAAGGCCCTAAAG
-TCCTCTGGAAGTGATGTTACTCTCTGCAGGTCTCACAGGGCACCTTGACT
-GTGGTTAGGCCATAGAGTGTGAAGGACATTCAGCCCCATTGGCATTGCCC
-ATTGAGACCCTCCATGGCCTTCCCAGTACTGTGCCTCCTCTCCCTTTATC
-TCATTTTCCTGCTTCCTCTTTGCTTCCATCTCTGACACCTGGTAGCTCCT
-GCGGCCTTTGTCCTTCCTCCCACAGATCTTCTTGTCTCGCTTCTCATTAA
-GCACGGCAGTGGACGCTCTGAAGAAGCTTTGGGGCTGTGCCAATTTGCTC
-TGTGACAATGTCAAAGAGCTCAAACGCTCCTCTTTAAGCCAGGACTGTCA
-GTCAGCAGCTGCCTTGTGAGGAGGCAGAGCTCCTCTGCTGGTAAAGAAGG
-AGCAGGGAGGGAAGGGCGTCTGTGCAATTAACCTGGACACCGCCGGGACA
-CACACACGCTCTGATCCCCTCCGTGCTCGGTGTTGGCCCAGTCTCTTGCG
-GGCTCACCTTCCAGTGGGCGCCTTTGCCCTTGCGTGGCTGGGATGCAGCA
-TGCTCACCAGATGTGTTCACGTGTGCAAATGTGCTTTTTAAACATCTCCC
-TTTCTATTGTTCACCAAGCAATTCAACTGCTTTCACATGGAAGAAAGGGA
-AAGCGACGTCTGAAGGTGCATAATTAGTAACATATAAAAGAAATAGTAAT
-GAGTGCACATAAGGTGAAAATGCAAATGGAACAGGTGCCTTTGTAGATGA
-AGGGCTTTGAGTCAACTTCGGGTCCTCTGGGCTTCCATTAGCATGCTGGC
-AGGAGCCAATTATTCAGTAGGTACTTAAGAAATACTCATGGTGAGTTTGT
-GCATCTTGTACGTGCGTTCCCATTGCCTGTGATGGAAGCAGCTCTCAGAT
-GTCCAGGGAGATTTTCTACTAAAAAACTTGAGATTTAAAGTTTATGGATA
-ATTGAGAAGATCTACTTTTTGCATATATCTCAGATAGAGAGCTTGTATTA
-CCAATTCTCTCTCTCTCTGTTCCAAGTCTGGGACAGCTTACGCACCTTAG
-ACAGGGCCACCCACAGGATCTCTCAGCCAAAATCCTCCACACAAAAGAAT
-CCTAAGGCTTGGAATGGGGAGAAGAGGCCAGGGAGGGAGGTGAGGATGAC
-TCCCAGCCCCCTGCTTAAGAGATGGTTCTGCAGAGATAGTCAACAAGGAG
-GAAGGCCTCCCAGCTGCTGCCCGGGCGGAACAGGGGCAGCTGCCATGCAA
-GGACTGTGTGACTGACCACTTCTACCCCTGGGCCACCTGGTGAGGTCACA
-GATGGGAAGCCTTTTGGGGAAAGGCCATCAGGGCTACCCTGGGGGCCAAA
-AATCCCCACTGCCCGCACCAAGTGTAGGCGTTAGCACGAGGGCATGCTGT
-GGAGTCAGTGCAGGGAACACTCCTGTTCAACGTTCAAGTACATTTAGTAA
-CAGAGACCAGGGTCTGCTTTAGCAACCAGATAAGAACATTTGGAATTAGT
-GTCTTAACCGTTCCTGGTTTCCTGAGGATGCCACTTTTGTTATTTCCACT
-CATCACATCAATTTATATGTGAATCATGAGCCATCGTATAATTAACACCA
-AGCGCTAGGCTTTCTGGGGGACACAGGACAGGGCACTCCCTGCAAACGCA
-GAGCTCATGAGGGAGGGGTCATTCACTGTGTTCCCCCCACCCCACATCTG
-GCATCCAGTCGCTAAGAGCTTCCGGGGGAGTGGCTAAAAGTGAGTGGTCA
-CGGACGCATTGAGAGTGGCAAGATTCACGTAAGAGGCACAAGAGGAGGGC
-AGCGTGGCCGCTGaacacctactgattaagccccactgcctgcaagccac
-tgttctaagtggtggggacaccacgggggagaaactgtgggaactctgtg
-tcctcctggaatctaggtggggggacagacggcagatcaagtacataaGA
-AAAACGCTCATCACGTGAGACAGCCAGCGCTTTATGCAAAGCGTGAGGCA
-GGGGAGGGTGGGGAGTTCTGTGTTTGTGTGCATCTGTGTGCACGCACATG
-CGTGTGAATGTCTGCACACATGTGAGCACGTATACATGTGTGCACGTCTG
-TATACACACATTTGTTTGTGGCACATGTGCACGTCTgtgtgcgttcacat
-ggggtggctagggagggttgcatgaagaaggtgattcttggcagagcctt
-gcaggaagggagggagggattcacgcggacacgtggcgaagctctgcaga
-gggagaacagccagGCAGCCGAGCAGGTGTCTTAGAGAGCCAAGTGCTGT
-CTGGGAGGGGCTGGGAGGGGAAAGGAGACCCCACCAGCAGCACCCAGAGG
-AGCAGCTTGCAAAGGAGCAGATGTGAATGAGCAGGACCTAAAAGAGAAAA
-TTTGACATTCTGTTGAGGAATGTAAAATAAAAATCCACATCTGTCCCGAA
-CAGGAAGACTTGAGGCCATCAGGATCCAACATCCAACAATGCGCTGAGCC
-CAGTCCCTGCTTCAGGTTCTAGGGACACAGATTCTAGGGACACAGGTTCT
-GGGGACACAGCCAGAGCGGCCAACGCCTCTCCTTCCCGGAAGTCGTGAGG
-TGCCTtccagacagcgatgcttcctgattcactcacacactcactaagac
-cccaaataaaatactagcaggatgtttggaaatgctgtaaaataattcta
-aagtttatctggaaaaataaacgtatgaccaaggaaaccagggcTGGGAA
-GGGCTGCACCTCCCTGGTGTGATAATGTAAtttttttttttttgagacgg
-agttttgctcttgttgcccaggctggagtgcaagggcgcgatctcggctc
-accgcaacctctgcctcccaggttcaagcgattctcctgcctcagcctcc
-tgagtagctgggattacaggcacgtgccactccgcctggctaattttgta
-ttatagtagagacagggtttcaccatgttggtcaggctggtctcgaactc
-ctgaccttaggtgaaccacccaccttggcctcccaaagtgctgggattac
-aggcatgagccaccgcgcccggccAATAACGTAATTTAAACCGGATGATG
-AAGGTGCTTCTAGACTTCTGCAGGCACAGATAGGCAGACAAACCCAGCAG
-GGTTTTCACAATCCAAACAGGTCCCAAACACGGGTGGGATTTAGCACAGG
-GCAAAGGATTTAGCTCCAGAGCTGAGGTGCTTCCTTGGTAACCACTGCAG
-GGCCCTAAGCAGCCAGAAGAAAAAAGTTGGAGTATTTATCACTTTAAATA
-TAAAGTCACACAcaattccagatggaaccagggctgaaaatgaaaccatg
-aagaaaatacggaggaaaaagaagaaaataccaaaaaagaaagctttcaa
-ggcattatacacaacctgtgagctataaaagaaaaaatttgagaagcttc
-aggcaatttaaaaatatcataaagatttaaaggcaaaggtacaaaatgga
-aatacattgtcacacatatcacagaaaaggttaataatgtcattaataca
-caaagatcgcttacaagttgtaaaaaggtaaacaatccaagagaagagca
-aagcagccgaggacatgagctgaggcagcccacagaaATCGGGGATTCAT
-GGGGCAGGAACACAGGGGAGGGGTCGTCGGCTGGCCGGGGGTTCAGCAAC
-GCCCTCATCAGCAGACGAGCAGCCCTTGTTCAGACAGGACTTGGAAAGGC
-TCGTGACTGAGCAGCCCccggggttgggcggacgtgggagaccagacgtc
-gccgtacactgctgtggaacttaggaaggcaccaaccatccggagacaat
-tgacaacttctttgcaacttaaaatgcaggtaccttggacacatacgtcc
-acttctaggggttatttcaaaatagacatatttgcataaggacacaaaca
-tttgtgaaaaagaatgttgattgtgacatctcagaaaccaggaaaaaatt
-ggaaagccttaattgtctaccaccaaaggacatgttaataaatcatggtc
-tctgcacccaacagtgtcatatGTCAAATCCACACGGGTGGTCATGGTAA
-GGGGTTCAAATATTTTCAAATAAATTATCTATTATTAGATGCTAAAAATC
-AATGTCTAAAATATTAAACCCATTTGGGTAAAAATGTGTCTTTTGCACAC
-ATGTGACTGTAAAGATGTATCTATTTTATATAATAGAGAATAGGTATAAA
-AACCACTAACAGAGATAGCACTATGCTCTACTAAAAGCCATCAGTGACGG
-GGGCACCTTGGCTAAGAAGCCCTGGAGGACATGGCTTGAGGACACAGAAC
-CCTGAGCCCCTCCTCTGAGCCTAGGATCCCCTGCCCCTCATGCTGTCCTG
-ACCAGACAGCTGCCCGGGTGGAGACAGAGATGGGCAGAGAGGCTGGTGGG
-CTTCCGTTAACCCTGCAGGACAGGCACAGCCCCGGAGCTTGGGAACCACC
-CACGGCTGTGCGTCCCTTAACAAAGGAAAACAGTCTCCCGACCACTGGCC
-ACATCTGCTTGGCCCTTGGTAATCGCCGAGGCCTGGCCAGGATGGGGGCC
-ACAGGGCACAAGGCAGAAGGGGGCAGGTGCAGGAGAGTCAGCGTCgtgag
-tgcgagtgatgtgtgtctgtgtggcgtgtgtcagcagggtgtgtaagtgt
-cagtgttgtttgcataagcccgctggtgtgtgtccatgttgtgtgtgtat
-cagtgctgtgtatgtccacactgtgtgtgggtcagtgttgtatgtgtgag
-tccttgtgtgagtgtggtgtgtgtgttgtgcctgtgttgtgtctcagtgc
-tctgtgtgtttacgttgtgtgtgggtcactgttgtatgtgtgtgtccctg
-ttgtgtgagtgtgacatgtgttagtgttgtgtctgtgttgtgtgtgtctc
-agtgctgtgtgtgtCCACATTATGTGTGTGAGTCAGTGTTGCTtgcatgt
-gtccctgttgtgtgtgatgtgtgttagtgttgtgtgactgtggtgtgtgt
-tagtattgtgtgtctgtattgcctgtgtgtcagcattgtgtgtccatatt
-gtgtctccatgtttggtatgtctcagttttgtctgtgtgagtcttgtgtg
-tgtgtatttgGTGTCTCCATGCTTTGTGACTCAGTGTTGAGTATGTGAAC
-CCCCAGCCCCTGCGGGGTGTCCATCCCGCCCTTACAAATGGACGGACCAA
-CCCGGGCGCTGACATCACTCTGCATTTGAGGGATGCAGGTGCAGCGTGGG
-GCACGGGACGACCCTGGCCAGGGCACCTGGTCAGCCCTACACTCCCTGAC
-CCCAGGCTGACTGTCCGCGGTGGGAGAGCACTTGAACGCTCCTTCCACCC
-TGGCTTTGTGTGCTCACGTGCCAGCTGTTCAGGACAGGTAACGCCGTGTT
-TCTGGACGGCATGAAGTTCTTGCCTTTCTGTGAAACAGCCCTTCTGGAGG
-GACGATTTGGAGTCAAGTCAGAGTCCAGGATTCACAGTCAAATGTCAGTT
-CCCTGAGATGACAATGGCAGGTGGATTTTAGAATCACAGACAGTCTGGGA
-ATGGGACGCAGAGGTCAATGAACAGCTGGCCAAGGGTCGTTTCTCTCCAA
-CATCACTGACCAGTCTGACTTGGGCAGGAGCCTCGTGAGGAGCAGGTGCC
-GTGTCTCCTGGCCCTGCACCATGAGTTATGCCGTGTGCAGGGGGTTACAT
-TGTCTTTTTGAAATGGCTCCTCCAGCCTCTGGGTCTGATGCATTGGACCG
-AGGGCTGCAGATGGATGGCTTCGTTGCCATGTTGGCATCTTCGTCTTGGA
-GAGCTTCTCTGCCCTCATTGTGGATGTGCACCAGCCTTCCTCACTGGCCA
-TCCGGTGAAGCCTTGCCCGGCAGTGAGACTTCACACACTGCAGCGTGGGG
-ACCTGCACTTTTCATTTTTCCTCCTTCAACATCATGTATCCCATAAACTA
-GCATTTGTGGATGTTAATACCTGTAATAAATTCCCTCTCTCTATATATAC
-ACCTTGCCAGGACACGGTCTGTGTGACGTCTCCCTGTGTGGCTATGGAAA
-GATGGAAGGGATTCGAGAGGGAAGAAGGGACAGAGAGAGGGAGGGGAGAG
-CAGAACCCTATTCTCACTTCTCAGGAGGTGCCAGCTTCTCAATGTGTCCA
-CCAATGTCTGTATGTGATTTGTGTTCACTTCACAGGAAATGATGCTTTGG
-GTGACTTCTGATTGAATCAGGATATCATAAGATGCCTCTATTGAAGAGAC
-AAAAAATAAATATAATCAATTttcattaaaatgtgcactagatggttctt
-gagaacctattatgtgcctggcagtgcataaggctcaggggaCCCCCTGG
-AGACAGGAACCCTGCCTCAGGACGCAAGGTGGTTGAGGCACCAGTTTGGG
-CTCTGCAGGCTGACAGCAGAGTGGAGGTCTGCCCCACACTTGCAGGTAGC
-TTGGGACAGGCTGTTAGCCTCTCTAAGCCTTGCCTCTAACACGGCAAGAG
-CAAGAATATTTGTGGAACAGTTTTGCTGTGATGATGCTGTCAGCAATGGT
-AGCTGTATTTAGCTTTCACCTAATGGTGAAGTGGATTCTTCCCCCCAGTA
-ATCACATTCCAACATAAGCCAGCATCTAAAAGAATCCTCACCCCAGTCAT
-CTGTTTTCTGAGCTCTGAGCTTTCTAAGAAGCTCCAGGGCATCTTCCTCC
-CCTGCGTCCTCCCCTGTGTGGGGGAATCTTGTCCTGGGTGATGGGAGAAG
-GCGGGCTCCTTCTCAGGCCTTGGAGGAAGGCACATCCCACTGATAGAATG
-CCCTTCCGTGCACCTCCAGTCCGAAAATTTTCCACTCAAGTCATGGTGCT
-TCTCAAGAGAACTCAGAGTTTTTGGAAATAGATGGAAGATGCACATTTTG
-ATTGCTGTAGATGAAATTTACTGGTATATGCAGATTTCATGGCTAAGTGC
-CTCTTTTTAAAAAGCTTCCATCCCACAATTCCTTCCCCATTGACGGGCTG
-TTCCAGATTATCTATTGTAATTAGATTTAGACTTTCAGCCAACCTTCTGC
-ATCACTTCAGCTATTTCAGAAAAATGAAGGAAGCTTTCCAAATGTTTTCC
-ACAGCGTAACGCTGTGCCCGGGGAATGTCGTGGTGCTGGGCTCGGAGATC
-CCTCCTGCTGCTGTTCTATTTCCTTGCGCTCCCAGATAGGGACGCCCCTT
-CCACAGCCCCGAGTCCAGGGACACCTTCCCCCTGCCTGGAGCAGGCTGAC
-CCCTCGCCTCCATGCCCACCGCACCCAGCTCATCCTCACTTGTCTCTACA
-AGGGCAATCCTGTTTTTATTTCAACCCTTCTGAATTCTAACCGTGCTACC
-AAAACAAGGAGGGAGAGGGGAGAGAGGAAGAAAGAAAAAATAACCTCTCT
-CTAAGTAAATGAGGCTGTTGGGCTTTGGAAACCTGCCAAGCCCTTTCTAT
-GAGGAGCTGTTATATCAGATTTCTCAGCAAGAAAGAAACAAGAAAATTAG
-TGTGCGGTTGAATTGGAGACTAAAATTAGCCATCTTGAAAAACAAATCTC
-CAATAAATACAACGAGGATTTATGGCTAAAATTACAGGCGGCACAGATGG
-CATCTGATGGCATTTTATCTCAAGGGGAAAATATTCCTTTTACATCAGAG
-CATCAGCATTATGGGTTCAGGGATGATTGTGTAGGGTCTTGCACCATTTT
-CAACACACAACAGCAAGTGGCTCGGCTTCATCAGCTCTTCGGGAGATGTT
-AGAGGCACAAGGCCAGCGTCCTGAAAGGTCACTTTGGCCAATCCACTGCC
-TGTGGGCTGATTCTTAGTTCCCCTGGCATAAGCAGGGAAGGAATCTCTTC
-TGATTTCGAAGGCCGCTTGTGAAGGAGACCCCACACCGGTGACTCCCCAC
-TCCGTGTTTAGAACCTTCGCCTCCAGGTCAGGGTTTTATTGGTTTGTTGG
-TCATCCCTCGTCCACGTCTCCCCCTCTGCATATTCCAAGTGTCCTCCTGG
-GCCTCCTCGGCTGAGATTTTAGGGTGGAGGAGGCAGCGACGCAGAAGCAC
-GGCTATCTGACAAACTGGGGGGACACTGGGCCCCAAAGCAGACATTGCCC
-CGATACGGATTTGGTTCCCTTTAATGACTCTCCGGAATAAAATAAAGGTG
-TAGACTACGGCTCTTCAGAAGAACGAGGCTCGTGTCTCTGGGGTGGTGCC
-TCCAGGTGGGCGGTGCGCAGGAGCGTGTGGCGGCGGCCGAGACCCAGAGG
-TGTTTGTCGGTGACATGGCCAGAGCTGTCACAGGGAAAGGCAGACACACA
-GAAGGGGACCCACCAGGTGGACAGCATTGCCGGAGGCTTCCAGCCTGGAA
-ATCCATCCCCCACACGTGGGTTCCCTCAGCTATGGTGGCCATGTACTATA
-GGGTAAGGCTCCAGGGAACCCAGACGGGCCTGGCCTGGGTGACCCCTGAG
-CCCACAGATGGAGCCCAGGTGGGACAGAGGCTGTGGCCTGGAGAGGTGCA
-GCCGGTGTATCAGGGACTTTAGAGCCCGGGGTCCACAGCAGCTCGGCTTT
-GAGGGGGTTTGTCCTTCAGTCACGCTTCATTCCCCACCACACTCAGGAAG
-GCCCCAAGAGTGTCCCCGACGCTTCATCGGCTGGACTTTTTCATGTTGTT
-TTTCTTGTAGCTCATTAATGCTGCAAATATAGATCACTGAAATAGAGGCT
-TGGAAGTATTACTTGTTTTGctttgtgtcttgaaataattttagatttac
-agaagagctgaagagacgccacagcgagcgtccacatgcctgtcacccgc
-tccccctctgctaacgcagctcacattgatgtgcttattaagtcgtctgt
-ggctctgagaaattcacggtgataccatgtgacgagctgaatgaaaggct
-tgattcggacttgggtttccctcagcgtcctccttctgtcccaggatatc
-acactgcgtgtggtcaccgggtctcctcaccgcatcctccaaactctgac
-aACTGGAGGTGATTATTTTAATAGAAAGACTGAAAAGTTGGCCAAAAAAG
-AAAATAAAAAGATGGAGAAATTTTCAATAAAGTAAAAGAATGAGAAATTG
-TCAAGATTGGATTCTGGTCACGGATTTTATAAAACCTTGTACTCTCTAAT
-GCTTTCTCCTGGTGAGACCAACATGGTGGGTTTGGGGGAAGAGCTCCCCG
-GAGGGGCGGTGGGCTCCGTCTCCCGTCACGCAGCGGCTGCACGTCACTAC
-ACGCGTGCCGGGTGCACCAGCTCTGTCCCTGGCCGGGGTGCTGTCTGCCT
-CCCCTGCCTGGAGCAGGCTGACCCCCACCCCACCCGGCTCATCGCCCAGC
-TCTCTGCTGCACGGACTGTTTTGCTCCTTCCTGCTCCGTTGttagaagca
-agtcacgagtccaacccacactccaggggaggagagttaggccccacctc
-cggaaggaaggggcatgagacagtttgtggatatatggtacaacggccaG
-AGTCACGAGTGCAGGCtttgggtgacacactctgaggccatgcgaatgcc
-ctgtttctcctccaaggcccctgcccttcgggtcattcctgcagcaatta
-agactgtggtgttcttggggtggttctctccctccctccgtccttttcct
-tttattattcaaaattattattggttttgtttttttattttttttgagac
-agagcttcactctcgttgcccaggctggagggcaatagcacgatctcggc
-tcattgcaacatccgcctcccaggttcaagtgattctcctgcctcagcct
-cccaagtagctgagattacaggcatctgccaccatggccggctttttttt
-tttttttttgtatttttagtagagacggggtttcacgatgttggtcaagc
-tggtctcgaactcccgacctcaggtgatccgcccacctcagcctctcaaa
-gtgctgggattacaggcgtgaaccaccgcgcccggctattattcaaaatt
-cttatagatggaatgttggtggactctccactattcgtttacttatgaaa
-tcatgtgttgacatcagtgtagacgcatgTGCACCCTCtttatggcattt
-cctggttttgtggtgctgtacgatgccctgggctcatcttgtagttctcc
-tgccccgtccctagagtcacccactcacccaggtagctttggttccctgt
-attaggaaatggttagaaaccaaggtcagaactttcccatattagggaag
-tgttagaaaccaaggtggggactcaagacctgttcattctcgcaggatgt
-cactgcttctcaaccatctcagggactgagctggggcgtgtttgtcattc
-acatttatatatgtgtgtgtgcgtgtgtgtctgtgtgtgtgtgtgtgtgt
-gcactacgtgcctgcatgcatgtgtgttatttttctgaggtctctgaata
-aaatacagccccagagtccattcacacattgcctttgcttaggtgcaact
-tttcctctgacagtgagaaatctgacccctgccttctactgtttattcat
-tggtttattccacctgagtatacatgtgaagtggttacatagttgctcgg
-ctgcacccctgagagagacaaacttaccgcctggagccagcactcagacc
-agttccttttgtcttgagtcaaaaacctctttgcggaaattgctcaggtg
-agccccactccccaccctgcccccagcaaggtgtgccgtgcctctttaat
-gccgtcagattcagctgttagtttgcctttcctcccaggaccccgcaccg
-gctggtggatcattcccattttcataaagttcactttattccatgggctt
-tgaccgaagcacagaatctgcagtcaccgccacagtgtcacaggggccac
-tccgccaccctcagatgtaccttctgtgccccctttttgccaatcccacc
-cccaaccctaaaccccagtgattacggatctgttttctgttccacagttg
-tgccttttccagaagggcatggaaatgggatcccacaatacggagccttg
-gggcctggctttgtcaattagcaaaatgccttcagggccaggcgcggtgg
-ctcacacctgtaatcccagcactttgggaggctgaggcgagcggatcaca
-aggtcaggagttcaagaccagcctggccaacatagtgaaaccccatctct
-actaaaaatacaaaaaaaattagccaggcgtggtggtgggtgcctgtaat
-cccagctactcgggaggctgaggcaggagaatcacttgaacccgggaggc
-ggaggttgcagtgagctgagatcacgccattgcactccagcctgggagat
-agagcgagattccatctcaaaaaaacaaaaaatgcctttgggacccgtct
-gtccacgtgaatcctcgtctggccgcgtgaatcctgcttcgtctgtgtct
-cttcccactgggtcagggtcctctctacgaatgctgacagcttgtttctc
-ctgctcctgctaaagaacatcttggttgtctggtttggggcaattataga
-tacagcagctctaaagccccacacacaggtttctgggtgaacatcggtct
-tcagctcacttgggtaaatgcccaccaggggtggctgcctggacagggag
-tgtccatttacctttacgaggagatggccgacccgtcttccccagggcgg
-ccccacttcacaccccttccagccatgagcgaggggccagttgctcctca
-tcctcctcagcttctgacactgttggggtttcctttgtttttCCTCCAAC
-CCCATCTAGAACATCTAGAATTTAATTTTGACCTGGTCTGAAGGAACGAG
-TTCTGTTTCTTTTTCAAGAGTTCACCAATTCTCCAAAACCCATTCTCCAG
-CCAGCCTCCCCTTCACACCCCTCACCGAGGGACTCAGCGGGTGCAGGGCG
-GCTGCCGTGCCCACTGGTCTGTGTATCTGCTTCTGTGCCGCACCTCTGTG
-TCAACTGACATGAAATCAGTGGATTACATTATTTCATTATGTAAGAAATC
-AAACTAAATCATTGGTTTTCCTTTTTTCTAACTGCCATGTGTATGGGAAA
-GAGAGAAGGGATGACCCTTTACATCTGGCTTAAACAAAGCAAGCTCCTAA
-GTCTGTCTATCGTCAGAAGACAAACAGGAGCTTAAGGGCCACTGCCAGGG
-CATACATATTTTATATATAGATATATAGatactttaagttctagggtaca
-tgtacacaacatgcaggtttgttacatatgtatacatgtgccatgttggt
-ttgctgcacccattaactcatcatttacattaggtatttctcctaatgtt
-atccctcccccagccccgcaccccacgacaggccccggtgtgtgatgttc
-cccttcctgtgtccaagtgttctcattgttcaattcccacctatgagtga
-gaacacgcagtgtttgcttttctgtccttgtgatagtttactgagaatga
-tggtttccagcttcatccatgtccctgcaaaggacatgagctcatccctt
-tttatggctgcatagtattccatggtgtatatgtgccacattttcttaat
-ccagtctatcattgatggacatttgggttagttccaagtctttgctattA
-GGCACACATATTTTTAAGGCAGCTGTAGAGGTCGGCCTTTGCCAAGCTCA
-CTTCTCCTTTTCGTGGGCCTTCCTAACTACAGAGGCCGGGGTGCCAGGAA
-TCGCACATGTGTTCTCTGCACTGGATGTGGCACTCCACCCCTGCTCCTCC
-GTGTGCTGGGGTGGGTGGGAGTTCTCTGCACCTGGGCATGACGCTCCCAC
-CTTACTCCGTGTGCTGCGGCAGTGAGAGGTGGAAGGAGCCCCGGCTTCTC
-CTGGCCAGCATTCTTGCTGTGGCCTCAGCAGTTCCCATATCAGCCTCTGG
-CTTTGGGCGTGTCCAGGGCCAGGGCTCGGCCCACCATGTCCTGGCTGGTC
-TGGGTCTTCCCTGGCGCAGTGAGGGGATGGAGCTTGCAGCTGTGGTCAGT
-AGCCTCGCCTCAGAGCCTCTGCTCCCCGAACCAGTGAAGGCAACGTGGCT
-TCTGCAGCCAGCAAATTCACAAGGGGCTTCCAGTGTGCCACGCTTCCTGA
-CTGGTGGGCCACTCTGGATTGTTCTGGAAATCACTGGCAGAGGGCTTGGA
-GCCCCCTCTTCCAGCCCCTGTGCTTTTGTCATCCTTGGACACTCTGTTTT
-ACGTTCTGTCCCCATGGAAATAACAAGTGGTTTCTGTTGCCTGTGGCTGA
-ATCCTGGCTGATACAGTCACGGGTGGAACTACGGGCTCCAGAGTTTAATG
-TCCTCGGTTGTGGGGCGGTTTCACAAGACAGAACAGCCTCTGCTTTTCTG
-CAGCTTAGCAGAAGCTCAGCAGAAAGCCTGCTTTTGCCAGCAGGCAGAGG
-GGCCTACAGTTTCAAAGCTGTATTCTGTTATTTCGTGATTAACTCATGCG
-GAAATGAAAGCAGCCCTGTGAATATCAAAAGTTACAATAGAAGAAGGAAG
-GGACATAGGGAGAGCCTCTGCAAACGGAGCTCAGGCATCCACAGCCCACC
-ACGGTTACTATCTCATCACAGTGGTACAACCTCATACCTGGCAGGCAAGC
-CCCTGCCACCCTCCTGAATGGGGCAGTTCCGTGACCCCCTGATCCCTGAG
-CCCAGCACCGCCCCAGCTCCAGCCCTTGCTCTCTCATGTGTGATATGATG
-AGCTTTGCGACGGAACCACAGAGGCGTGCCCAGAATGCAAAGCACCCCAG
-CCTCCTGCATCACTGGTGGGTGTGGGGTGAGGGAGTGGGGTCAGGAAAGG
-CTCTGGGAAGAGAGAAGGCAGAGCTGAGAAAGAGGCCTGCCTGGAACGGG
-GCGTTCTGGGTGGAAGGAGCGGCCTGCAGGAAGGCATGAGAAAACACCAG
-TTCAGTGAATGGTGGCACAGAACCAGTGATGCCTCAGTGTGAGGACAGAA
-TCCTGGACAGGTGAGCAGCCCTGAGCTCAAAGGGTCCCAGTTACCATCCC
-CCATCAGGAAGGGGACCGCTGAGTGACATCAGCATATCTCCAAGTTCTCC
-AGCCAGCTTGCTGTCCCTGGGACATTATAGCCAACTTAGGGCCACTGTCT
-CCCCGAGCTAACCTCCAGGTGTTGGCACACTCCTTCTCCGACCCTGAATA
-CCACCTTCCTCGACTTCCCCTGCCAAGAAAGCATTCCTCCTGGAGAGACA
-AACAGCTTATGGCCAACTCCCTGAAAAATAGGGTCACATAGAACAAGCCC
-TGGCCCATCAGCCCTCCATGGTCAATCGGGAAAATGAGCTTGACCATTGG
-CTTGAACTTTGCTCTTCCCCTAACTGTGGTGCGATTGCTCCAGTGAGCTT
-AGAGGCTTCGTCGAAGGGACTGGGGGGCCTTGGTTTGCATTCCCTTAATC
-ATTGGTGACAAATGTAAATCCTCCGGTTCCTGCCAGTCTCTCCCAGAGAG
-AGGAGAGGAACCCTGGCTTCGTTCACACGTGTGCTGGGCGCAGTGGGGGA
-AAGAGATCTCCACAGGGGAAGCACTGCTGAAAACACACAATCTCTTCACT
-GCAACATCTTGGACCTCCAAGGCCGTACGTCTTCATTTTCTTCCTTTTGA
-GAGTAAAAGCCATCATCTCTCCACTGGCTGGAGTGTTTTCTCCTCGTGCT
-TCTCCGTGGGGATGTGCGGGTCAGTGGAGGGAAAAGGAGGAGGAACCCGA
-ACCCGTAGATGGCCAGAGGCCACACTCTCTAGACAGGGAGAAGAGTCTCC
-AAATATTGGAGTGATTAAAAGAAAAACCAGTCCAAGAGATTTAAACCGAC
-AAGCACCCTGGGTTTAGAAAGATTTGAGGAAAACCTTTCCTGGCATAATT
-TGCTGGGTATGTTTAAGCCTCTGATGCAACAACCTTTAAAATAAATGCAA
-TTCACACACGGATCTAGATAAATTATTTCCAATCTTATCTTCAGATGAAT
-CTATGAATAATAAGTCATCTCAGCATTGTAACAGAGGCTGCTGCAGGCTG
-GCAGCCTTGATTGTGATTGCGTTGATTTTGACACATGGCAATGTATTCCG
-AATAGACACCCAGGAAAGAAGAGAAATATTTTTTCAAATTGCAGAACTTC
-ATAAATATGCAAATCTCCAAACTCCAAATGCAACATAGTGTTTCTATTTT
-ATTTTTCATTGTTTTTAACATTTTGTTTCTAAGGCAACTTCCCGATCATC
-TGTGTAATTCCACCTATAAACCACATGAGTCATGCCCTAGGTTTATTTGT
-AAGATGTGCTTGGTACTTGAAAGACGTTTTCCTCTGGAAACAGTGTGATA
-AACGGTAGCCCCACAATGCAACAAAGGCTGGCAGTGCAGGGGAGGGTCCA
-AATGAGCCTGAGGAATGCGGCAGTCAGAAAGCCCTGCTTATGAAGGACAG
-AAATCACACCGTCTCCCCTCCAACATGAGAAGCAGCTGGATAACACAAAA
-CGTAGACAAGAAGGGGCTATGCCTTGGGAAAGCCGGAATAGTGGACTTGA
-TCGTGGCAGGATGGCAGGCATCCCCGTTGTATTTCAATTTCTCTCCTACA
-GGCTGGGTTCTAGTCTCCCTGTGTTTCTAGGAGATGAAAGACCAGGGATT
-CGCCAACTCCAGGTTCCATTCCCAGAACTTCATCTGAGATGTGGGACCAG
-GTATTCACCAAGCCCAGGTTCCAATCCCAGAACTTCATCTGAGACGTGGG
-ACCAGGTATTCACCAAGCCCAGGTTCCAATCGCAGAACTTCATCTGAGAC
-GTGGGACCAGGTATTCACCAAGCCCGGGCTCCTGTCCCAAAAATTCATCT
-AAGACATGGGACCCGGGTGTTCACCAACTCCAGGTTCCAATCCCAGAACT
-TCATCTGAAACATGCGACCAGGTGTCGCCAACCCCAGGCTTCTCTCCTAG
-ATCTTCCAGAATAAGAGCGAAGAGGTGGCCTCCATCTGGGTTAAAATCTG
-CAGCATTTCAGGAGATTTCTGTGGTTGCCTGGCTCTTTCCATGAGACCAT
-AAGAAACAGCCCCTGGTCAGGGGACAGCCGGTGATCAGCCACCCCCAGAG
-ATGTGGAGAATCAGGGTGGGCACACCACGCTTGGCTTGGGTCGTTCAAAA
-TCTCACCACGAAAGAGGCCCAACTCCAGGCCACGGCTGACATGGCCCAGA
-AGCCTCCATGGTAAAGACCCTGGGGGAGGAGCTGGGGTGGAAAGGGCAAT
-TATGGAGACCCTCGGGTGGTGGCGAAGAGGGAGGGGGGCAGGGTCACTCC
-CAGGCGAAGAAAAGCAAGGGAAGCCCCCGGCTATTTTCAGTGGTTGAAGC
-GCTCATGTCCAATCACAGGGGTGACCGGGGGGACGAGGTTTACAATCAGG
-GCTTCTGAGTCTCTAGGACACAGGAAAGTTCTCGAATCCCCTCGGGGCCA
-GTCAGAGACACAGAAACCAGGCCCTGTGTTGCCACAGGGGACCTTTTGTC
-TCAGAGGGAGCAGTAAACACTCAGAGGAAACGGCCAAGAAGGGTCCTGCA
-GGACTTGGCAAGGAAGGAGACCGCGAGGTGGCCCCATGTCCAGGAGCCAG
-CGGACCTGCGTGCccctgtccagaggagcggctgcagctcagcttcagcc
-ctgtgtccctgtgagaatgtgggtggaagatggccaagtcctcctgctta
-ttcaggagaagccggTTGTGAAATGTTTCAAGGTAGTAGCAAACAGAACA
-TAAACCGAGCAGCTTCCATGGGCCTCTCAGTTCTATGTGTCTCCGGCTGA
-GATTCAAAAGAGAAGGTGGACGAAGAGGAAATGCAGGTGACGCCGAGGAA
-AGGCGCCCAGGACACCAGAGGGAAATGTGTGCACGTGCTCGCCTGCAAAC
-CTGCCACGCGGGAGAGGCTTCCAAACAGCAGGAACCCCACAGGCCCCAAC
-TGCGGAAGGAGGACGGAGCCAGTTCCCCTCGGGCGGTCATCATTGGTCTT
-GGTGACAAGCCAGTGCAGCAGGTGTAAGGAATGAACAGACGTCAGGGGAA
-GGCGGGAATTCCAAACACCTTTCCTCTGACTTCACCCACGGGAACCAAAG
-GAGAGGGAGGTGCCTGGCGGGATGGTGGAGGCCGAGCCCAGGTCCCACCC
-CGTCCATCACGGGTGTCCGCGCCGTTTCCTGGGCTGCTGTGGCTGGATGG
-CTCTGTTGTTTGTTTTGCCGCcacacacacacacacacacacacaaacac
-acacacacaaacacacacacacacacacacacaaacacaaacacacacac
-acaaacacacacacaaatacacacacacacacacatacGTGCTTCCAGAA
-ACATCCACATACATCACATGTGGTTTCCTATTGGCACTTTATTCCTATGT
-GGTGGATTCCCAAGGTGTGACTGCAGCGTGACTGGTGGAAACATATGTTT
-GCGTTACCACTCCCCTGCCAGCCACAAATACACACAAAAGAGACTGGGAT
-GGTGGCACCAAAGAGCTTCAGAGGGCACGGGCGTCATTTCCACATCGCTT
-TCCAAAATGCCCTAACAACTTAAATTTACATGAATATTAAAAACAGTGCC
-ATTTTCCCTGCCAACAAGAGATGTTATGTTTCCCTTTATTTTCTTTAGTC
-TGAGGGTGATAAAACATATGGTTTCTTTCACTGGCAAATCTCTACGCAGC
-TGTGTGTTGGGACATCTCTTTCAGACATTTGTTAGTTTGTTGCTTTTATT
-CTTTGCCAGCTTTCTAATAATATATGTTTCTGGGATATTACAAATAATAA
-TGTCACACATGTAATGTCATTTACATTAAAAAATATTTTACTAATAGATT
-ACTTTTATATTGGCTTGACATAAAGTATCGTTTTTGCCATGAAAATACTT
-TTATCACTATCTGAGCACAAATGACTTTCTTTTATGGCTTCTAAATTCCT
-TATTAAAAATCATTTCCTggttgggcatggtggctcacacctgtaacccc
-agcactttgggaggctgaggcgggcagattacctgaggtcaggagttcga
-gaccagcctggccaacatgacaaaatcccatctctactaaaaatacaaaa
-attagccgggcatggtggtgggcacttgtaatcccagctacttgggaggc
-tgaggcaggagaattgcttgaacctgggaggtggaggttgcagtgagcca
-agatcacgccactgaactccaggctgggtgacagagtgagattctgtctc
-aaaaaaaaaaaaaaaaaaaGTCATTTCCTCAGTTGCAGATTCCTCAGTTG
-CAGAACCTAGAAGTTTCTGGATGTAAATATCATTATTGTTATTAttatta
-ttattatctttattgtttaagcctttgattcccctggcatttgtgtctgt
-cactggtttgatgttgaggactgagtcatttccatcctgatgggcatctc
-tgtgcaggacacactcacgaggggaaccggtcccttcccccgaattggac
-accattcttatcacaaatcagacctcatagactaggttctggttctcagt
-gccctgattcccccattcgcttttccattcctgggccagtaccatattga
-tttgatttaagcgccttggaaacaagttatcattttcacatcaggcaatt
-ttacaattaccgttcttttttagggtttgcttgactattcttgggaattt
-attcttccctatgaactttcagttcgtgaaataagacgcctggtaatctc
-actggaatcacattaaacttttacattaagattggaagaactgctgtctt
-gagagattaggcatttccctataaggacgagctatctctccgcgacttca
-gatcttgttttatgtcccttaataagactttccatatagtattattctat
-ataagactataatataatatattatatatattGTACAAGGTTAGTCTAAC
-CCTAGCCTtatatcatcttgcacctttattttcaagatagattcctgagc
-attttatagtttctgccaatgctgtgcgcaacatatttgtcctcatttcc
-attcctagatacttatttctagcataagaaaaactattgatttttgtaag
-ctcatctcctgcccggctatctcaccaaCATGGAGTAAACatttctttct
-gagtcaatattggtgatttatgttttcctagactatgagccatttcatcc
-agatttcaaatttgttactatacagttgtacagagaattccattttaaaa
-tatattttcattaatcctacaaatgtttattgagtacccactttatgtag
-ttataatcccctcttaaaatccataaaatgtgtatggtcacattcttatt
-tttttcttgattagatttgctagacatttatctattttattagtctttta
-aaagaaatagttatttaatttatttataaagccacttaatacatctcttg
-taatctattattttcttctttactcaggaatcccaatttctttactttta
-ctttgttattctatttctagcttatgaattgaatacttggttcacctaat
-ttcgtcttccatcttAAACGCTGAAGTGCGGAAAGTTTGGTATCTCCCCC
-TAAGTGCAGGTTCGCCTACAATGTGTGGGAGCTGGAACCTCATGCTCCCC
-TCACCGTCGGTGGCAAATGCTCCTTGGCCTGAACTCCTGTCACTGTGAAT
-GTCTGAGGCCTGACGGGCCAGGGTGGTTGACAATGGGGCCCCCTCAGTCG
-GTCCCCAGACAGGGGGAGACAGGAACGGGCTTATCTCCAGAGGTCAGCAG
-AGGGACCGTCTTGCAACCGGAGCTGGTTTGGGGCAGGAGTGGGTGTGGAG
-GAGAGCAGCTCCTGCCCTTCACTGGAGCCAGGAGGACTCGGCTTTGGGGA
-CTCTGCTGGTTCTGCTCCTCCCCCAGGGAGAAAAGCCTGGGAGGGAGTTG
-GTGCAGGGCCGAGTTGAGCTGAGAAGTGAGTGGGCCAAGTCCCCTGCCGG
-GCCCTGCACCTGCCCTTCCTGTGCCCACCAACCAAACGTCTCTGCAGCTG
-GCGAGGATGTCACGTTGTCTTCAGGATTTTTCTttttctttccttttttt
-tttttttttttttgagatggagtctggctctgtcccccatgctggagtgc
-agtggcgcgatcttggctcactgcaagctccgcctctcgggttcacacca
-ttctcctgcctcagcctcccgagtagctgggactacaggcgcccgccaac
-acacccggctaattttgtttttgtatttttagtagagatggggtttcacc
-gtgttagccaggatggtctcgatctcttgacctcatgatccacccacctc
-ggcctcccaaagtgctgggattacaggcatgaggcaccgtgcccggccCA
-GGATTTTTCTAAGATAGACTATAATTTAGAATTTTTGCTTTCTTTCTTCA
-ATTTGACCAGTAAAAAATGAAGTACACTTTTCAGGAAAACAGCCTTTTCT
-CCCCAACATTTATTTTTTCTATTAACATCAAACTTTATTCCATAGGGGTT
-ACAGTTCAATCCATAAAATGTCTGCCTGGTGGAATTGAGACTTTCTTTGA
-GCCTTTTTAGTATTCATTTTCCCATGTTTCATCCGGCCAGGGAGATGTAA
-AGCATTGTTTCCTTAGGAGGGAAAATTTGTGTGTAACTTCCATtattgtt
-tcatttgcttacttttgtctgtctttcccacctgcactgtagtgagtatc
-atgaacacaggagataggacctgatttattcactgttacagccgcggttc
-ctaacagagcacctcatataaaatgaacatgctgtaaacacttgtggaaa
-gagtgaCTCCACGAAGCAAGCGTACGAATACAAGCTCACATGCCAGTCTT
-TTGAATTGTTTGTCTACTTTATATATCCATGATTTTAAAAGACGTTGCAA
-TCTCCCATGATAACTTATTTACATTTCCTTTTGAATTTCTATCTGATATC
-ATCTTGATATGTTTTATGCTAAGTAATCCCAACACAAACCTTGACAAGAC
-TCCGTGTTTCACTGAGACAATATCAATGGTGccagactttccctcctacc
-ataaaagacttggaaactagaaaaacacatgaaacaattgatttcagata
-ttgactagcaggtaacccaagaatggaaggaatccctgagggaagagaat
-taatacgatgaggctaccattgcccagccttccgcctggaggctgacccc
-actacacagagggatgtcgggcagaatgcaagtctcaccgagttgagggt
-acagagacccgtgttctgggatgctgaggtggctaaaaattggaaggaag
-aacaacatcaataaaggatctatgcagagagagggctccagaaatcggca
-cgggtctccctgagtttgtggctcaatgtggaagtaggtagacagaaggc
-aaaattccatcaggccattctcggatatcctaggatccataggttcaaca
-attcgaggaatccaaacagggctgggactcactcgtgtttccatccaccc
-acgtagagagaacctgatgaatacacagtgtgctcagcgtaaaccggaga
-gtctgcggctaaaccagcctcccaggagagaacgtcccagacctgtgctc
-ttgagtcttaagataaagctcaggagagacaagcatagcctgaaggtaac
-ataaatgtcaccgaatcaaaactcaaaactctttaaagaagacaataaaa
-cacaaaaactcatcaccaaaacaatcagtgtcaggcatccagttaggaat
-tagtcaccatgttcgcaggagaaaaatatgacctgtaaccccaataaagg
-cagtcaatagaaaaatacccagaaatgacagagatgttggaattttcaga
-caaggatgttaaaagagctattataaatgtgtttaaggatttaaaagaac
-acatgatcacgatgaagagagaaaaaggaactgttaagaagaaataaaaa
-atatccacagtgactaatacgcttaccggacttatgagcagataaaacac
-agcagaagcaaataaaatcaagcttgaaaatatagcaatgggaattatcc
-aaagcaaagcatagacagaaaagaaagaacaaaaataattaacagagcct
-cagttacacatagtacaatatcaatctaacttgcccataactgaagttcc
-agaaaaaaaagatacagaaaaatatttgaagacatggtagacttattttt
-tttttctaaatttgatgcaaactttaaactctcaTGTAAAGAAAAGTGTT
-CTCACCAGCCTGGTGTAGAACAAAAAGAAAATCAGAAAGaatgataactg
-caatagattgaaacacatcaaacgcataaaacccatatgtgcacctgatg
-ctcataaagtctccccttgttggtcaaaatgggaggatgatagaaccaac
-tcttggctctgaaatgaaagagggttcaaatgcttatctttcttttttta
-gctaaaaatggatgaaagaaaatttttattgagagaaaatttccagcatt
-actcaaaagtgaagttagaattagaaagtcactgttttgcagctcttaat
-gacataactgatctattcaataatcacaaacggctgctTTCCACATTCAT
-TAAGTAAAATGGTGGTTGGAGGCGGGGAGCAGGGTAAGTCTGACCCTGCC
-AATCTtaatgtcattaagacctaatgggcctcctgctgtgaagcaaacac
-tggtgccacctgcaaggaattcttgctaaaaaaaactgaactagaatcaa
-atcgagcgtcagatcaagcgagcagtttatatgacacagaagtcaaatga
-caccagtttctccaataaatgaaccactggtatataaacaaaaGTGAGCT
-GTTGTCAAAAATAAAAACCTGAAAATACATAGCCACCAAACTCAAAGAAT
-AAATTAATTTTTAAAAGACTGCTTTGAGACAATAATATTTTGAATATGAA
-TTTTGAATTTCCATTGGAAATTATAAAATAACAATGAATTACTATAACCT
-TTGATAGATGTGATAATAGCATGGTGTGCTTTGCAACCAGtgggtggatg
-gatgatgactggatggtggatggatgaatggatgctggatggaaggcgga
-tgcatggatgaaaggatggttggatggaggatggatggatggtaggtgga
-tggatggatggatggtggatggatggatggatggatggatgatggatgga
-tggatggatggtggatggatggatggatggtgggtggatggatggtggat
-ggaaggtggatggatggatagatagatggtggatggatggatgatggatg
-aatgatggatggatggtggatggatgagtggatgatggatggatgaatag
-atggatggtaaatggtggatggatggatgatggatggatgatggatggtg
-gatggatgatggatggaaggtggatggatggatggatggatggtggatgg
-atggatggtgaatggatggatggatgaatggtggatggatggatggatgg
-atggatggtggatgggtggtggatggatggtggatggatggatggatggg
-tggtggatggatggatggtggatggatgatggatggatggatagatggat
-ggatggatagatgggtggtatacagtggatggatgttggatggatggatg
-acagatggatggtggatggatgatggatggaaggtggatggatggatgga
-tggtggatggaaggtggatggatggatggtggatggatggaggatggatg
-gtggatggatggatggatggatggatggtggatggatggatggatggtgg
-gtggatggtggatggatggatggttggatggatggatggtggatggatgg
-tggatggatggatggttggatggatggatggtggatggaaggtggatgga
-tggatggatggtggatggatgatggatggtggatggatggatggatggat
-gatggatggatggatggtggatggatggatggatggtgggtggatggtgg
-atggatggtggatggtggatggtggatggatggtggatggatggtgggtg
-gatggtggatggatggtggatggatggatggatggatggtggatggatgg
-atggatggatggtggatggatggatggatggatggtggatggatggatgg
-atggtgggtggatggtggatgcatggtggatggatggatggttgggtgga
-tggatggtggatgaatggatggatAGGCATCTAGATGGATAGAAAGATAC
-ATATAGATATTGTGTTTTGTATTATTTTAAGtaaagatgcatactcaagt
-atttataggtgaaatgacatgatgtccagaataagctttaaaatatttga
-aaaaaaaaactgtaaaaataggtgaagaaacattggcACATTGTTGATTT
-TTTTTTGAGCTTTGaaattttttataataaaaagttaaaatattttGTTG
-AGTAAAACAATCAATTAATGAATGTGCCACAAGGCTGTGCTGAGATGTCT
-ACCTTGAATATGAAGAATTCGGAGTCAGTGAACTTAGTCATTAAAATTAT
-GCTATTTGATAAAAAATAATTTAATGGAGAGAAGATGGCTACAGCAACAA
-TAAAATTATTGCACAgaatgaatgagtgagtgaatgaatgaatgaaGAAG
-CTCATGccttggccccctgttctcactcctgtaaaatgggggcacagggt
-cagatggagtctaaagttcctcttagttccagtcatgcttctctgatttc
-acctggaaaagaacgtaaaagagcttcaaggatgcatctctaggctttaa
-atcattaaacgaagtgtattagtccatctcacactgctgtaaaaaactac
-ctgagactgggtaacttataaagaaaagaggcttaattggctcacagttc
-cgcaggctgtacaggaagcatgactgcagaggcctccgaaaaccttcaat
-catggcggacagtgaaggggaagcaggcaaggccttcatggggccagagc
-aggaggaagagaggggagggggcgtcacacacttttaaacaaccagatct
-tgcgagaactcactcccctatcatgagaacagcaagatgaaagtctgccc
-catgatctaatcaccttccaccaggcctctcgtccaacactggcgattac
-aattctacatgagatttgggtggggacacaaatccaagccatatcatgaa
-gaaatctttcaaagaaCCAAAAAACTCCATCTAAGAACTTTGCATTggcc
-aggcacagtgagtcacgcctgtaatcccagcactttgggagccaaggtgg
-gaggatcacctgaggtcaggagttcgagaccagcctggccaacatggtga
-aaccacgtctctactaaaaatacaaaaaaaaaaaaaaaatagctgggctt
-ggtggcaggcagctactcggaaggctgagggaggagaatcacttgaacct
-ggtaggtggaggttgcagtgagcccagatcgcaccatcgcattccagcct
-gggtgaaaagagcaaaactctgtctcggaaaaaataaataaataaataaa
-aggaaaAAGAAAAAGAACTTTGCATTggccgggtgcagtggctcacgcct
-gtaatcccagcactttgagaggctgaggcgggtggatcatctgaggtcag
-gagttcaagaccagcctggccaacatggcaaaaccccatctctactaaaa
-atacaaaaaaaaagttagctggccgtggtggcagacacctgtaattccag
-ctactcaggaggctgaggcaggagaattgcttgaacctgggcagtggagg
-tttcagtgagcccagagagcaccatcgcattccagcctgggtgacaagag
-cgaaactccgtctcaaaaaaaagaaaaagaaaagaaaaggaaaaGAACTT
-TGCATTAAAGTCCATGTGATGTGACGTAGAAGCACGTAGGTAAGTCTGGG
-CTGTATAATGAAAGTACAAAACTCAGAGTGTGAGATCCTGTGGTCTGCAG
-GGTCCCTGACGCAGTGTTTAAGACTTCTGTCTGTCCAGGGCCCCCGCTCC
-AGGAGGACATGGCAGGAGCACTGGGCAGGAGGCATTTGCTGGGACGCAGC
-ACCCACACAGGACAGGGACTCGTGACGTGTTCACCAATGTTTCTTCGGCT
-GTGGCAGGTGCTCCATGGTGTTTGCTGAAGCTGGGTCGATGTTAGAgtga
-cagagtctgggacccttgaatctatggatgggcctgggtttgccctgctc
-agaaaaggtgaagaggatgcatgaaagagtccttcaaatattggaggaaa
-tttcaagtagaagaaagaGAGAGAGAAGGAGAGAGAGAGAATGTGTTTGT
-GTGTGTGTGTTCTCTCCAGGGGCCAACCTGAAATCCAGAAGGGTCAGGAA
-GTGAGAGAAAGATTACAGCTGAACGTATGGATGGCATTTCTCTGTGTTTA
-ACTTGTGCCGTTAGAGGTTTTTCCTCATCATCTTATCCTGCAATGACACC
-GTAAGCTGCTTCTGTTTGGAGACTGACCTCACTGGAGGCACCGGAGCAAT
-GGCAGAATCAACTCCAGCAAAGAATTTTCTAGAGGAGATTCAGGGACAGG
-TGAGCATCTCCAGGTTGAGATTCTGAGATTCTCCCCCAGAAAGCGGGAGA
-TGATCAGGTACAGGGgtgtgtgtgtgtctgtgtgcgtgcgggcgtgcatg
-tgtgtgtgAAGGACACACagagaaggggagattgagagggactgagagga
-agggaggggaagatggggagggaAGTCTCGCACTGCCCTTCTTCTGGTCT
-TAGGCCCGGGCGGGTTAAAATAATCTCTTTATTAACATGAAAAGAGGGAT
-GAGAGGAGATGTATCACGTGAGCGTAGCTTCAGGGAAGCATCAATAGACA
-CAGACAAAAACCAGGATGTTTGTTTCTTAAGACCCTTTTGACACAAAACC
-CAAAGAAACAGTGTCCCCTTGAGAAGCTGCACATATTTTACTTTTCTGCA
-CAGAAACCAGGTACTCTAGGGCAGTATTCTTCTCTACTGTTTTTGGATGG
-TAAATGCTGCTTGTATTGTCATTTCTTGCCTGTGTTTTTAATAAATAATT
-GAATACATATGCTGACTGCAATACTCGAGCCCCTAATGCTAAGGAAAATA
-AAATAAATGATGCTACATAAAGATTCATTATTAATTGGCAGCGACCATCT
-CAGTAATGTTCTGACAAGCACTAAAGTGCAATGAATTAATCTCGCATAAA
-TTTTTTGTTCTTCAATTTTTCAAGATCTCTTCAGCGGTGTCCTCAGTGGC
-ATCTCCCTGCAAGTGGGGACCAAGTTCTGAAAACAGCAGACTCagctgcg
-tgcggcacctcacgcctggaatccagcactgtgggaggccgaggcgggca
-gatcacctgatgtcaggagttcgagaccagcctggccaatatggcgaaac
-ctcgtctctactgaaaataaaaaaattagctgggcatggtggtaggtgcc
-tgtaatcccagctactcaggaggctgaggcaggagaattgcttgaacctg
-ggaggcggaggttcagtgagccaagatcgtgccactgcactccagactgg
-atgacagagcgagactcagtctctaaaaaagaaagaaagaaaagaaaaag
-aaaATAGCAGACTCATATCTGTGCCTTCCCCTGGATCTGGGACGTGGCCA
-GAGAGAGGGAGCCCTCCCACGCAGGCTATGACTCCAGCCCCCGCCTGACC
-TCGGGGTGATGTGGGGCTGGGCTGCCTCAACTCGCAGAGCTGCAGAGCGT
-GCTCAGGACGTGGGGGCATTTTAAAGGAGATGTGGACACACCCTTCCAGG
-GGACAGGCAAGCAGAGCAGCCTGTGTTCTCCTCACTGTCAGGGCGTCTTC
-TTGGGGTTTGCTTGTGTGGGCACTTTGCTACACCCTTGTCTCGTCTGGCG
-CACACCCAGCTGGGTTTCCCCAGCAGGGTGCGGAGGTGGCAGCTTTAGGG
-ACAAGGGAGGTGTCAGTTTAGCTGATTGCAGCCGCGTGAGAATTAAGCTC
-TTGGTGATGAGCAGAGCAGGACGGATTCTGTCCGTCGGGAAGTCAGGGAT
-AGGAGCTGCCTGAGCTGAGGGGCTGGCATGGAGCCTTCAGTGGGAGACAA
-GATTGAACGGGCCCCTTGCCTCACCCTAATTTGCATTTCCTCCCTGAATT
-TAAGGCTGAGCACTTGGAAAACCGACCCTGGGTAGGAGACGTGTCTCCCA
-CGGCAGGAAACGGAGAGGAGGAGCAAAGGAGGAGCCCAGAAGGGCCTCCG
-CTGTGGGCAGGACAGAGTTGCGGGGAGAATTGCCAGGTCCTAAGAAGCCC
-GAACGGGCGTCGGCATCACAGTCAGCTCCCTCCTTCCAGCTTCTGAAACC
-TGTGCTTACAGGCAGCTTCTGGGCAGGGCGAAAAGGAGACGGAGGCCGGT
-TTCTGCACGCATGTAACACTATATCTCCCACCCGAGGCTGCACGCAGCCC
-ACCTCCATTCCACTGGGATCCTCCTCCCTGGGCGTCCGCAGCCATTACAC
-AAGTGATTACTTAGAATTCCTTCCTGGCTGTCGAGGTGAGAAGCACCACC
-CGGCCGCCTCCCTTCACACACGCGTGTCCACCTGCCGGCAGGACCCCCGC
-CTGTCGGGAGGGAGCTCGCGGCCATTTGTAGAAGGAAACTTAATCCCTGA
-GATGGAGAAAAGTTGGCCAAGACTTTCCACGGGCTTTTTCATTTCATTCA
-CACTGAAGTTTTTATTAATTTAGTAGGGCTTCTTAATTAAAGGCTCAATG
-AATAATTGAAATGTAGTTTTGATTATGCTGAAGTTGGTGCCATTTTGAGT
-TGTAATTGTAACTAATAAATTAATTAAATAGGTGAGATGATGAAATCCTG
-TCTCAAGGGGGGGCACTCTTTCAAGAATTTATCTACATGTCATTCAGAGG
-ATTTATGCAGGAAAAAATAGACGATCAGAAGAAAACCCTGAGTCTTATTA
-ATCAGCTACCTCCTCCCTGTAAGTGCGGGAGCCCGCTAATAATTCACAGT
-CACCCCAGTGTGAGAGGAAGGAGGGCAGCACCTGCTCCTCCCTAGAACTC
-TGTCTGACTTCTCCCTCAAGTCAGAAGAACTGGAGACGGGAAGGGGTGTG
-GCTGTCACTGTTTATCCCATGAGGGTTTACTGGGGTCCCCCCTCTGGATG
-CCTGGATTCAGCCGTGGATGAAACAACCATTGGTCCCACTCGCTGGGAAA
-GGGCAGACCCTGAGCGAAGCTGCGGCCGCACTTCCACAGTTTACGCCGAC
-GGTCAGGGTCATGAGCAAAATTAAGGCAGGAGGGAAGAGTGAGCGGGGCC
-GGAGCTGGTAACAGGGGAGGAGAATATTTGAGCAGCCACCAGAAAGAGCT
-TCGGACACATGTGGTGGAGGTGTCACCTTCCAAAGGGGTCCTTGTGCCTG
-GAGGCCCACCCCTTCCTCCCGCCACAGGTCTAGGTCAGCTGCAGGTGTGA
-GCCACCCCTTCCCTGGCACAAATGAGCCGGGAGCCTGTGTGAGAAGAGGC
-CACTGCACATCAGATGAGGCCCTGGAAGGAATCCTGGACTCCATGGCTTA
-ATAAGCCCATTACAGTCAGAGCAAAGCAACAAATGAATTATTCACCCTGG
-TAGGCAGTTACTTGCAAAATAAATCTAGGCCAGTGAGAAGGCCCTTTGCC
-TCCGGATTCCTGGGGTGATAAGCACCCCTCACCTGGCAGGGGCATTACCA
-GAGCTGCCCTGTTCCCCTAGCGATGAGCCAAGATGGCATTCGCACCTCTG
-GATGCAGGCCTCCGCGGGGACCTACAGTGTACACATGTGGGGTTTTGCCA
-TTCCTGTCTGTTAGAGCCCATCCCATTCCCCATGAGCCTCTGAGGAAGGT
-GCAAAGTCTGCGCTAGTCTTGATTCCCTGAAGCAGCCGGCTGTCATAATA
-ACAGAGATAGTAGAAAGGTACTATTAGCACTATTATCAATAAAACAGGAC
-CTCCTCCGCGGTGTGTGGCGAGGGCCCCGCATGCAGCAGCCGGAAGCCTG
-CATCCCGTGACCCACCGGTTCTTTGATCATCTCGGTTTTGCCCGCTGGTA
-GTCCAAAAGCCTGTGCGACAGAACCACTCAACCTGCTCATTAACACACAG
-CTCCCCAGACTTGACCCCAGATGGGATCCAGGCCCAGGAACCTGCAATTG
-GTGAGGAGCCTGTGGCTTTTAAACACAGGATGTCCTAAAACCATGGACCT
-GTGCTTTCCTCTCCTGCTACACTGGGGGTTGTTTGGGGGTGTGGCTGATC
-CCTTCAGTTTACACACAGTATAGCACCATGCAGGGTTAATGCTGTGTTCC
-TTTGCCCGCCCCCCACCATGGCGTAAAGCTCATAGCAGGTGGAATCGCCT
-CCCAGGTTCAGGTGAGTCTCCTCCCAGCAAGTACATCCTGGATGACAGTG
-CAGATTCCCCACAACCTCACCCAGGCATCCCCCAAAGGTGACAGACACAC
-CTCTGCAGGTGACACCATGcccatcccccggaggtgacagacatgcctct
-tttctttagacattgcacagtcttgggtatttctttatagcaccacaaac
-ggactgagacaACCGCTGAttccttttatgattttcttggcattctgaga
-ctctgccgtatggactggaagatcatcctatccactcctcacaatcagtc
-tatagggactttcatcctgaatctcactgaacttttattttagtttagga
-gaattgactttgtttttttctatgaagcctttctctccaaggacatggga
-tCACTGCTGTAATTAattaaatgttttgtgcccccagaattcgcatgttg
-aagccctgatccccactgtgaaggcatttggaggtgaggccttggggagg
-tgattagggtcagaggaggtcaggaaagtgggtcccatgatggaattagt
-gcctttgtcaaaaggtagaaaagccaggaggtctctctgtgcaccaccaa
-ggaaaggtcatgtgaaTCCATAACTAAAAAGGGCCCTCACCAAGAAACCT
-TCCATCATGGAGAAACCTTCCATCACCGAGAAACCTGCCATCACCGAGAA
-ACCTGCCACCACCGAGAAACCTTCCATCACCGAGAAACCTGCCACCACCG
-AGAAACCTGCCACCACCGAGAAACCTGCCACCACCGAGAAACCTTCCATC
-ACCGAGAAACCTGCCATCACCGAGAAACCTTCCATCACCGAGAAACCTTC
-CATCACCGAGAAACCTTCCATCACCGAGAAACCTGCCATCACCGAGAAAC
-CCGCCCTCACCGAGAAACCTGCCCTGACCGAGAAACCTGCCCTCACGGAG
-AAACCCACCATCATGGAGAAACatgccatgccctgaccttggacttccag
-ctccaagaactgtgagaaataaatgtttgctgtttgagcggcccagccgt
-gtttcccttacagcaaccaagctgagacaGCATCCCATCGCTCCACGGTT
-ATTTTTCACAGCAAACCCATGCCTAAACAtttttccgattttaattttcc
-actccgtattgctaatataaaggaaatctattggttttgaaaattcatct
-tatacccagcaattttttcaaatttttgaaattaattatagtagggggtt
-tgttgttgttgtttggtttattttttgttttgctttttcttttgtaaaaa
-tatctctttggtttcttagctgcacaatcagcccattggctaaaaggatg
-ccttttttctgattccccaatatttatactaactattatttgctttcttg
-tgttagctggagcctccaaagtggtgctgaataacggtgtttagtggCCC
-CAGTTTTAAAGGAAGTGCCTTAGTGTTTTCAGTCGTCTCTATCATTTCCT
-AATTTCCTGTCTAAGCACATATTTGCTTTGGATTTTtgtgttaggttttt
-attgcttcatgacattaccataaatgtagtggcttaaaacaacataaatt
-ttattatattaaaggtttatggacgaagaattggcagggtctagtttacc
-tggTGCAGtgggctgaactgtgtcccctgacaattcatcgattgaggttc
-tgacccccagtgtggctgtatttggaggcaggtccgttaaggaagtaatt
-aaggttcaatgtggacattagggtgaggccctgatccaacaggactggtg
-tccctacatgaagaggcacattccctctctgtctgtctctgccatgtgag
-gacatagcaagagggtgggcagctgcaaaccaggtatcaggccctcacca
-aaggtcaaccctgagggcacctcgatctcagacttccagcctccaaaatt
-gagaagtaaacatctgtcatttgagcatccaggttgtggtattttattaG
-ACACTGGGGCTGACTGAGACagctgggtcctccgccgagggtcccatcgg
-gctgaaactgtccactggcagcatcctcactggggggctggactgggggt
-gcttcctgggatggctggcagaatgcatttccttgttgctgtacgactga
-ggccccaccttctaactagctcttggtgaagggccactctcggcagctga
-aggccaccccaggtcctgccacctggctctaggcaggactcaacatggct
-gctcttcatagccagtggtagcatgggccttggataggtcgacatccagc
-ctgagaaaatgctgcttgtaaagggatcacctgattaggagaggcccacc
-cagATAGCTCATAGGTTCCAGCAACAAGCAAGGGAGGGGATGATACAGAC
-CCTGTGCACCCAGACCACCGCGGAACTCTGTTTACCACAGGTTTTATTAA
-GAATACCTTCCAAATATTATTACACGTGGAATCCCAGCACAAATTTAATA
-ATATTTagcacaaattagggaggccgaggcagtggatcacctgaggtcag
-gagttagagacgaccctgagcaacatggataaaccccatctctactaaaa
-atacaaaattagctgggcgtggtggcgggcgcctgtcatcccagctactc
-aggaggctgaggcaggagaatcgcttgaacccgggagtgggaggttgtgg
-tgagcccagatcgcaccgctgcaatccagcctgggcgagagagcgaaact
-ctgtcaaaacaacaaacaaacaaacaaaTTCTTTATTTTCTCTCTACATC
-TGTTGATATATTGCATGATGTTAGAttttttggtttcttttttttttttt
-ttttgcgatggagtctcgctgtttcacccaggctggactgcggtggcgcg
-atcttggctcactgcaagctccacctcccgggttcacgccattctcctgc
-ctcagcctcccgagtagctagactacaggtgcccgccaccatgcccggct
-aattttttgtatttttagtagacatggggtttcaccatgttagccaagat
-ggtcttgatctcctgacctcgtgatccgcccgcctcggcctcccaaagtg
-ctgggattacaggcgtgagccacagcgcccagccAgattttttggtttct
-aaccatttttgcatctcaacttactggattataaacagagtttttacaat
-ttgtgagattcttcctttttaaatttgttaaggttgacttggtggctaaa
-ggcaatctattttttggaatattcaactgataggacaaaacatgattttt
-tttcttgttgaagaacataaattatgttgtattgtttattgtttgtcctc
-tatattcttttttatgtattttctgcttggggttccaagagatgtatgca
-gacaccccactctgcttctgtttttgttcacactattctggattttctgg
-tagtttttgctccatacatttagtgggtgtcctgtttgttacttagcagt
-ttttgtcaatttaattaaatttcttaccaactggacaatttttcattatg
-taatcatctactttccccttgactgcttttaagtctatattCTTCCTTGA
-ACGAAGTTAAAATTGCCACTAATTTATATTTGACCTTCCTCTGCTACTTA
-GTTTCAGGTGTTTCCTATAAGCCATGGAGCTGACTTTTGTCTTCTAAATG
-AATCAGTGATTCTTTCACTGAAAGGGGAATTTATTCTGTTCTCATTAAGA
-CCTCGTCCATATTCTTGATTTTCTTTTCTCTTATTTGTTTTAAACTCTAC
-TTTTTTGGTACCATCTTTTTTCCTCTCCTCTTTTCTGATGCTTTGCCAAG
-TTCCTGTGTGCTGTGTCTGTTTCTTTCAAATGTGGGAGTCCTACTGAGTT
-CTTACAGCTCACTGGAAGTTCCTATACTTTCCTGACCCGCAGGCACGGCA
-GGGGACATCAGCATTCCTGTATGATTCCTCATCCTCTCCTAGTGAGCATA
-CCTGGGCTGGCCTGCTGAACCGGCTCACCTCGGCCACCCAGCCCAGGCCA
-ACCCAGTTCTGTCGACTCTCAGCCGACCCAGACGAATGACAGAGCCCGGC
-TTAGGGCAGGGAACTGCCAGCCAACCCCTGCCAAAATCGCAGACCCACAG
-CCCTGAGCTGAGCCCAGTGTCCACTATGTCTTGTCCCTGAGGTGTTGGGG
-TCTTTGTCATGTGCCGAGTTCATGGTGACCAATGACAGATACACCGTCTG
-CTCAGGTCACCACGCGCCAAACCCCCAACACAACAGCCCCCATGTTCCTC
-AGACATTTCCCCCAGACATCAAAGAACTTACTGGAAAAATAAGTTTTATA
-GTTTTGTTCATAAAAGAAATCAGAGAGAAATGCTTTATTTCTAGTCTGCA
-CACAGAAAATTAAATGAAATATAAATTCTTAATCACATGCCCAGTAAAGA
-GAAAGAACCTTCGCTGTAGGCACTAAATCGGCTTTGACATTTACAACTTC
-ATTAAACAATGAAACAAAGTCACAGCTTTTGTAACTTGTAAAATATGACA
-GCAGTGGGATCCAGCCCCAAATTTAAGCGATATTTAGACATTGCAAGAAT
-ATGAGATTGAGGCTTAAGGGGCTTAAGGGGCTTATCTCAGACCCAGAAAG
-TTGGCAAACTTTTATATTTATTGAATATTCATTTGAATGAATGATGACAC
-TTTATTTTAGGCATGACAAGGAAGATTTCAGATAAAGATTATGCCGGACG
-CGAAGTTCCCCCATGGGGCCACATGACTGTCTGCTTTCCAGAAAAGACAT
-TAGTGCTCCTTGGAGGTTAAAATGGGTGCAAGTTTATCAACCTTCAAACA
-ACAGCTTCTAAACCACATGCCCTCTGCAGGCTCACAGACGATTCTCCAAG
-AAAATTGCCTGGCAGTTGACCGCGGCATCGGTGGTGACCGTTCAGGTGTG
-CCAAGGACAGGCTGGTTTGTCCTCGTCGTCCTGAGCACTCTGGCCAGGGT
-CATGAACAGGCAGGTTCCACAGATCCCCAGGCCCAGCCAAAGCAGCACCC
-TGGTCTGCAGGTGGCACCTCTGCCTCAGGCCAGGCTCCAGAAAGCCAGAT
-GGAATTCAGGGCTGCTTAGACACACACCCCATGCCTGGAGACAGAGAACC
-GGAAGGGGCCCCCCGACCTGCTTATCAGGAAAAGAAGCAGAATCTATGGA
-CACCTGTGGGCCTCACTGGGGGGACTGGCGGGGAGCAAGTGTGATATCTG
-CGCCGTGGGTCCAGACGCCCTCCCACCGTGATATCTGCACCATGGATACA
-GACACCCTCCTACCATGATATCCGCGCCGTGGGTACAGACGCCCTCCCAC
-CGTGATATCTGCGCCGTGGGTACAGACGCCCTCCCACTCTGATATCTGCG
-CCGTGGGTACAGACGCCCTCCCACCGTGATATCTGCGCCGTGGGTACAGA
-CGCCCTCCCACCGTGATATCTGCGCCATGGGTACAGACGCCCTCCCACTC
-TGATATCTGCGCCGTGGGTACAGACGCCCTCCCACTGTGATATCTGCGCC
-GTGGGTACAGACGCCCTCCCACTGTGATATCTGCGCTGTGTGGGTACAGA
-TGCCCTCTCACCGTCGTATCTGCGCCGTGGGTACAGACGCCCTCCCACCA
-TGATATCTGCACTGTGGGTACAGACGCCCTCCCACCATGATATCTGCACT
-GTGGGTACAGATGCCCTCCCACTGTGATATCCGCACCTTGGGTACAGACA
-CCCTCTGGCTCTGCTGGTGACTGGCAGCAGCCATTGCTTCCTTAAGGAAC
-CCCGGGCCTGGTCTCATCGCTTCCCCAGGCCCATGGAGCCCTCCAAGGTC
-CTCGTTAGCTCACCCACTGCCTGGGCGTGACTCCCCACCTGCTGCCAAGC
-CAGAGGCCTGGGCCACCTCCACCTGACTCTGGGGTATCCTCAGCCTCATC
-CAGGGTCCAGCAGACCCCAGGCTTCAACCCCGGCTGCCACGGCCCCACTC
-CAGGTAGCTCAGCCTCTCTGCCCAGGTGGTCTTGTTGAACCAGCCTCATG
-TCACTATCTCTGTGCTGAAATGGGGTACTGGTCACACTCACCTGGAACAA
-GAGGCCCACCTCATAACTGCCTAACAGGGTCTTGCATCCTGAGGCTGCTG
-CGAGGCTGTGGAAAGGAAAGGGGATTGGTCTAGGTGGGCACTGCAGGCGG
-ACTGGCCAGGCAGGAGAGCAGGCAGACCCCACTCGCCTGTCAGCGGGAGC
-TTCTGCTGGGGCCCTGACCTTCTCCCAGCCTTGCCCCGCTCCCGTCTCCC
-CCAGGCCCCCTTCCCTTCTTTATCTTCCCACAGCTGCATCCTGGACCCCA
-GCCAGGTCCGCCCTATATCTTGCGCTTCTTCTGGTACTTCCCTAAAGAGA
-GCAGCCCGGTCTTCTCCCAATTCCCATCCCCAGATCGCGGAAGAATCTAT
-GATAACGACACCATGAAGGCCTCATTAACATGGAAATGAACAGCCAGACA
-CCTACGCCCTCTGCACAGCAGCTTCTTCACTGGGGGCCTGGAGGAGGCCC
-TGGAAGGTGGGGAGAAGCCAGAACCGCAGGCCCTGCTGGAAAGGCTGAGT
-GTGGGGGCTGCAGGGACCTCAGGGCAGGCAGCCGTACCCTGGTGCTGGAC
-GTGGTTGGAGCAGCCCAGCCTGGCTCAGCCCCAAGCGCTGGGTCTTTGGA
-TCCCAAACCAAGAGTCCTATCCCCCTTTCCCCCTCTCCCAGACATCCATG
-GCCTGGGTCCCAACCCACAGACCGCCTGGACCCATGTGAACGGCGAGCCC
-GACGCCCATAGCGCAACTAAAACCTCAAGGAGGAGCCCGGCAGGCCCAGC
-CGCGGAGACCTCGAGCAAATCTGTCACTGCAGGTTTGAAAGGTGGATGCA
-GTGTTTGCTGCCGGCAGGATGAGCCCAGTTCCCAGGCCAGCACCAGAAGA
-AGGCAGCGCATGGGAGCTCACGGACAAGGCCCAGGACCGGTGTCCTGAGG
-GGCAGGGCCTGGGTAGGACAGGAGCGCCCTAACACCTCCCTGCCCGTTCC
-TTTGTGCCCCAGGAAACAGGGAAAGGAGGCCAGCACCATCCTGTCCAGCG
-CAGGCCAGAGGTGCCTGCAGGGATGTTTGGTTTTGCGTCCTCCATCAAGT
-CAGGGGTTGTGTTCCAGGCCCAGCTCCTCCAGGCTGCAACCAGGCCCTCC
-CACGAGCCAGGGGTCCTCCTTGCAGCTGCCTCTTCCCAGGCCTGGCCTCA
-CCATCCTCTCTGCCGCCCGGGACTGGCTGCCCCTCTGGCCCCAGCTGGAT
-GCCAGGAATGTGGTCCAGGTCTGCTTCCCATGGCTCTGGGATATCCAAGA
-AAGGGATCCCACCCAGGAAAGCCACTCAGTCCACCGGCCACTCCATCCCA
-CACAGGAACACTCCTCTCCAGTCCCTCCTGTCCGGGGCCTCTGAGACCAG
-GCAGCTCAGACGGGGGTTTGTGTCCAAAGTGAGCCGGGAGCCCCTTCTCT
-GTAGCAGCCCCAAGTGCTCCTGGCGCCCCTTGGAAGTGCTGGGGCCTGAT
-GTGGCTCTCATGGCCTCCTGGGGCCATCCACACTCCAATCCCTCCCTCCC
-CTGAAGCCCTCCAGGGCCATCCACACTCCAATCCCTCCCTCCCCTGAAGC
-CCTCCAGGGCCATCCACACTCCAATCCCTCCCTCCCCTGAAGCCCTCCCC
-GGCCATCTGCACTCCCATCCCTTCCTCCTCTGAAGCCCTTGGTGTTTTGG
-CCTTCACTCCCGGCTGTGCGGGTCCTCGCAGGGGCGTGAGCTGTGGTTTG
-GGGATGCTGCCCACAACCAAGCAGTCTTCCAGCTTCCGTCCCCTCCTTCC
-CGCCGTGAAGCAGCCAAGTCAGGCACTGGGCCCCGGCTTACTTTGAGGGC
-TGCGCCCCCTCCAAGTGCGTTCTGCAAGTGCCGTGAAGGTGTAGCGCCGG
-GGTTCACATCAGGGGCTCACCTGGCCTGGACCCCAGGAGGCCCCCAAAGT
-ACACTCAGACGGTTCTCCCCCAGGCTGAGGTCAGCCCCAGGTCCCCAGCC
-CTCCTGTGCCTGGCCCCATCTCTAAAACGCCTTGCTCAGGCCCCCAGGTG
-GGCACAGCCCGCCCTCCTCCTACCTCCCCAGCTGCTCTTCCTCCATCTTT
-ACTGTTTCTTGACCGCCCCAGCCTCAGGGCCTTCAAGGAGCTGTCACCTT
-TCCCTGGAAATTCCCATGGTCAACTTCATAACCCTTTCAAGCCTTTACTC
-AAAGCCCGTGGCCCCCCAGCTGTACCCAGTGGCCCCTCCAGGCTCTGTTC
-CAAGGCGCCAACGAAATCTCCTAACCTGACTCCTGTGCGGGTTTCCTCTT
-CTGCGCGGCCAGCTGCCCGGGAAGGAAGGTGGCCCACTGTGCACCTGGTG
-GCACCTGTCGCTTCCGGACTCCAGCAGGGTCCACAGGCTGGTTGGGAACT
-TGCCCGTGGATCCTCCGACTCGTGTGTATTTGGTTCCTGTCCAGGGCTCA
-TCGGAGAGGCTGAGACCTCCACATGGTTTCCTGTGCCTGCACCGTCACCC
-ACGCTCACCCACAGCCCTCGGAGATAACATCAAACTCTTAAACCGGGAAG
-GTTTGTGCAAACAGCAGTGACCTCCAGAAGCCACTGTCAGTAACTAAGTG
-CCCACCTTTCCTGAGAGGCCGTCTCCTCGCGTAACGTGCCAGTGCAGTCC
-CGAGCTATTTTTAAGTCCGCCGGCAGAGGCCGAGGGATTGAATGTGTTAT
-TATCCAATGATGGCTGGTGATCATCAATTACTTAACCGAGAGAATCAAAG
-TACAAATTGCCGGGTTCACTCAATTACTGCTAAAATGGTATAAAAGCATT
-TTAATTGTAATCAGAACGTACTGTCTCCAGTGTAGATATTAAAGGGAATA
-GTGAGTCATAAATACAGTGACCCATTTATCTCCTTATCTGCTTACCAAAC
-AGAAACATTACACCCAGCAAATGGATTCAAAAACCAGAACCAAGTTAATT
-AGGTTTACTGAATTAGTGGAACATCTAAATTGGATTCCATTCCGCTGTTT
-AGTTGAAGTTTATCTTAGCTTGGAGCTGATTTTCCAGCTGAAGAAGGAGT
-GTCAAGTAAAGTAATGAACCTACTACAAAATTATTTTCTTAAAAAAATTA
-TAGTAAAAGACCCATCCATCAGACTTATTTATCTTTTTTTTTCTTTTGTA
-GAGATGGTTTGAGAACGTCACTGATAATTTTTCCCTCAAGAGCCACACCT
-TATTCTCTTGTTACATCAGGGTCCTTTCTTCCCGCAGGGGCAGGAGGAAG
-GGGCTTGTCACTTGAGATCAGGGTTTTAGATTTAGTACAGGATGGGTGTC
-CCTGTTCCCAGGCCTGGGCTGCTGCCCTGGGAGGCCCGGGTTGGTGGGCT
-CCCtttctttgtttttttgagactgcgtcttgctctgttgcccaggaggg
-aatgcaatgatgcaatctcggctcactgcaacctccgtctcccgggttca
-agcgattctcctgcctcagcctcctgaatagctggcattacaggcacctg
-ccaccatgcctggctaatttttgtatttttagtagagatggggtttcacc
-atgttggccaggctggtctctaactcctgacatcaggtcatccacccgcc
-tcggcctcccaaagtgctgggattacaggcctgagctaccacacccggtc
-TCAGTAGGTTCCTTTATTTCAGTTGTCTGAGGACTGTTTCTGGTTTTGCT
-CCTCAATATAGGGATCACAAGAGAGTCTACGCTGAGGACGTGGAGCACTA
-GTGAGAGCTAGTGGAGAGCAGGGCCAGGGACACCAGTGGCTTCCATGGTT
-ATTGTTTGAGTTTGGCTGAACAGCCTGTGAGTATGGGCTGAGCTCCCTGG
-GCAGGGATGGACACAGCGGAGGCCCGAGCCTTCTCACTGCAGCTCAGCCA
-GCCCTGTAGGCTGGGGGGCCATGCTCCCACCCCCACTTCCACTGCAGTTG
-GAGCAGAGAGCAGAGGGCAGGCACTCTGACCTGAGACCTAGAAGCCAGAG
-ACACCTTGACCTGTGTGCTTGGTTTCCATAGGCATGGAGGCCTGTGGAAG
-CAGCTGTCCCGGGCCCAGGGCAGATGCAGAGAGGCAGAGCCGAAGGACCC
-AGCCCTGCCCTGGGGTGGTGCCATGGGAGAGGCAGGTAGGCAGGCAGCAA
-GGGCAGAGGCACAGGTGCAGTGGAAGGGCTGGGCAGGGGTGTCCGGGGCC
-GTGTGGAAGGGCTGGGCAGGGGTGTCCGGGGCCGTGTGGAAGGGCTGGGC
-AGGGGTGTCCGGGGCCGTGTGGAAGGGCTGGGCAGGGGTGTCCGGGGCCC
-TGTGGAAGAGCTGGGCAGGGGTGTCCGGGGCCGTGTGGAAGGGCTGGGCA
-GGGGTGTCCGGGGACGTGTGGAAGGGCTGGGCAGGGGTGTCCGGGGCCGT
-GTGGAAGGGCTGGGCAGGGGTGTCCGGGGCCGTGTGCAGCCTTGCTTCAC
-CCGCAGGAGCACCTAGGATACAGATGATGGGCAGATACCCAGGGGTCTCC
-AGGCGGTGGGAGCGCACCCCAGCAGGCTGCAGGCCTGGGGCGCGGACAGG
-CCTGACCTGGAGACTCTGGGCCATGGGAAGCCCCCATCCACATGGGCAGG
-GGGAATCTGTCATTCTGAACAGTGAAACAAAGCACGGAGAGCCCACTCAA
-GTTCTCACTTCTAGAGAAGAGGCAGCCTCGCCTGTGTTCCCAGCTTCAGC
-CAGATATGCATGCGCTTGCAGAGGCTGGCACGCTCTGAGAGCCAAAGCCA
-GAGACGGGAAGTGGGAATCACTCCAAGGCTGGAGGGACACACAGACCCAT
-GAGGATGGCCAGAGGAGGACGGAGATCATACAGGGAGGTCCTGTTCTAAG
-AGGTCATGGGTAGGAACCTTCCGCGAATGCGGGAGGAAAACCCTCTCCTG
-GGCCATCTAGGGCAGCCAGACACATCACACACAGAGGAATTCTACACTTC
-CCACAGGTCAAAGGCAGGCCATCTACAGGGCAGCATCCTGGAACTGACTG
-CAGGTGCTCACCAGCAACAGGGTGCTCACCCACAACAGGATGCAGAGACA
-ACGCAGCCTTCACACCGGAGGAACCAACAGGGCGAGCCCCAAATTCTACA
-CTGCTGGTAACACAGAGACACATTCGTGCAACAAATCAAGGCTCAGCAAA
-CAAATGGTGAAGGCTCATCATAAATATCAAAAGGCATTGGTGATAAATAA
-GAACAAAAAATAACAACATCTGACAAAATAATTGATGAGAGAATCGTGGG
-TGCTGTGGGGACGGGTGAGTGTGGACAGAAGTTAAATCACGCTAATTTCC
-GTCTCATCCAGGAGGAGGATAGATACACTGAATGCTTTTGGATTTATTTT
-AAAAGATATGCTTAAAATGTAAGGGTAATAAATATGTCTTGTGTGTTCAT
-ACACAAATGTACACACATAGAATGCACCAAACTGACAGAGGGAAATAAAC
-TGAAAATAACAAGGGTTAGCAATTATATAGTTCTCTgcagttttatatga
-cacttaacagacattaatttatttactcttcacccaaatgctatggtaag
-aagttattattatatctgtcaaaattggagtcatatcaacttaggaaaaa
-ttttaaagtctattgtcaaacaattagagaaggcacagctcacaatccga
-gaaactttaaaccaagtgtaaaaagcatgtcttatggcagtcacagcaca
-gttaataaagcataaaaaggaactaatccaactttttcatgattaactag
-catacttcaacttttttttttttaaaaggagtcttgctctgttgcccagg
-ctggagtgcagtggcaccatctcagctcactgcaacctccgcctcccagg
-ttcaagtgattctcctgcctcagcctcctgagtagctgggattacaggcc
-tgtgccaccacacctggctaatttttgtatttttagtagagacggggttt
-caccatgtaggacgggctggtctcgaactcctcacctcaggtgatccacc
-cacctggacctcccaaagtgctgggattacaggcatgagccaccatgccc
-ggcccactttaacttttttttttttttttttagcacaagtagagctgttt
-gagctgttttgtcgaaggttgattcgtttactttcactgaatcacgacgg
-taagaatgtgaagcttacgttttgtgtttcatttacgactagagctagaa
-ttttgaggaaatcaggatgatttgttttggctgtgaggttatgggtggct
-ggttatgaggtatgtctaaagtgtggcctccatctttatttttctttaac
-atccacatttcctgaatggagaatctgagccactcagaggtgaagtaact
-tgtccaaggacactcagcagataagtgactgagctaaaattcaaaactag
-gccagagtccgtgcccttaaccactatTAAATACGGCCTCtgaagaaaat
-tgaatcaatcacaataatgtcaagaaaagtggcgggggagaaaaaacaaa
-gacagggattgatatgtacaaagcacaaaataagtggacagaaattagtc
-caactgtatgaaaaatccaacaaatataagtgtgttaaatatacttttta
-aaatacagagactctcaaacaaattaggttaaaaataattcaagctacgt
-ggtgtttataaaaaacatgccattaaatgctgagcccaatggctcatgcc
-tgtaaccccagcactttggggaggccgaggtgggcagatcatttgaggcc
-aggagtttgagaccagcctgaccaacatggtgaaaccccatctctaccaa
-aaacacaaaatcagctgggcgtggtggtgcacgtctataatcccagctac
-ttgggaggctgaggcaggagaattgcttgaacccgggaggcagagtttgc
-agtgagccgagattcgtgccactgcactccagcctgggcaacgagagcaa
-aattccgcctcaaaaaaaaaagaaagaaaagtaaagaaacatgccatttt
-aaaaggagacacagagaaagagagagaattatactcaaggcatatgcttg
-cgaaaataacataaggcaacaaaaagaataattCCAATTTTTAAAAAGGG
-CCAATGGAAaattgatcaaggagacacaggaatgtgaacattaaatacaa
-ataataacataatttcaaaaatatttttaagaactgaaaggattacaggg
-aaaatttggaagattcacaatcaccatgggagggtctttgtagcacagtt
-ctgtcaggaaatacaatcatatattgcgtaacaataggaagagggaggga
-gaaatgtgtcattaggtgattctgtcattgtttgctcatcgtagagtata
-ctgactcaaacctagatggcatagtctcctgtaggcccaggctgtgtggc
-agatcctattgttcctaacctacacacctgtacagcatgtacaggtacta
-taagggatactgtaagcaactgtaacacaatggtaagtgtctgtatatct
-aaacatttctaaacatagaaaaagtacagtcaaaatacggtattataatc
-ttatgggaccaccgtcacgtatgtagtccctcttgcatcaaaaggttgtt
-atgtgctgcatgactctaatagaatgagtaagaagaggccgggcctggga
-ttacacgcctgtaatcccagcactttgggaggccaaggcgggctgatcac
-ctgaggtcaggagtttgagaccagcctggcccacatgatgaaaccccttc
-tctactaaaaacacaaaaattagtagggcgtggtggcacatgcctgtaat
-cccagctacttgggaggctgaggcaggagaattgcttgaacccgggagtt
-ggagcttgcagtgagcccagatcatgccattcattgcactccagcctggg
-caacagagctagactctgtctcaaaaaaaaaaaaaaaaaaaaagaatgag
-tgagaagatgatatgtaagcatttagaagactgaataacataattaacag
-gcttACGATTACCTGTGCAACGCTGAGTGCCTCTCCTCGAACCCAACAGG
-GCGCATATTTGTCCTATGGAAGTGCACAACCTACATTTATTAACACTGAA
-GAGGCGCAAACATTCCAGTGGATTTTCCATCACAAGTCGTTTGGCAGGAA
-CTGGCCGGTGCCTTTTAAGGTTCTTCTGACCTTCATTCACACTGTGGCCG
-AAGTCCTTGCTGCCTCTCAGAACCCCTTGATCTTTTTCCCCACTCCTCCT
-CACCTGAAGCTGGCCCAACCTTCCAATTCAGCACACATTTGCTTTAGGAG
-ATGCCTGTCAGCTGGCTTCCCAGAAAACATGACTCTCTCCTTTCTCTGAA
-CTTTGAGCGCACCTGTGATATGAAATACGACAGCTCGCTCATCACATACT
-CTTtttattcattgccagaatataatattcctagagtccccactctgtgc
-cagtacccttccagccactggggagagggttgtgagtaaaatagtttctg
-ctcctcatggaacttacatgctagtggggagcaccacttgacttgtgctg
-ggaagaacacgaagcgagagaatggctcccggcagggacgaggagggtca
-tattttaaacagggcagccagggaagtccttggtggCCAATCAGACTGGA
-ACGGAGGGAACGGAGGTGTAAACAAACGAGCAAGAATGAGTATCCATAGC
-CAGATTTGTTAGTGCCTCACATCTAGGAATACCCTTTTGTTTGCCTTGGT
-TCTTAAAAATAACTGTGTTGAAAACTCTCTCACCAATTGCCGTCCAAAGC
-CTTGGATTACACACGATTAATTCTCCCAAAACAGCCTGCATCTTCTCCTA
-TAAATATCTAAGGATTCTCTggctgggggtggtggcgcacacctgtaatc
-ccagcactctgggagaccaaggcaggtggattacttgaggccaggagctc
-aagaccagcctggctaacatagtgaaacctcatctctagaaaaaaataca
-aaaattagccgggtgtggtgacgcacacctgtaatcccagctactaggta
-ggttgaagcacaagaattgcttgaacccgggaggtagaggttgctgtgag
-ctgagattgcaccactgcactccagcctgggcaacagagtgaaactctgt
-ctctaaaaaatagatagatagatagatagatagatagatagatagataga
-tagatagaGCGATACAGATAGAGATGGATTCTCTGTACAGAAACACTGGT
-ACTGACTGTTTTTAAGTATGTCTTATGGACTCCTAGAGTAAGAAAGGAAC
-ATGTCTCATATTTAGATGAATTCCAGGAAATGAAAGAATTGGAGATACTG
-AGAAAATTGCTTAAGTCTCTTTCCTAGTCAAACTGAGTCAAGGCACTGGG
-ACCCCTGCTATGGTTTCCAGGAGGTGTCTCCTCCCCCAGCAGCCCCAACC
-TGCCCATAGCACTCTCTTGATGTGGTCTCATGGGAGACAGCATTACTGTC
-ACCCAACTGTCATTCATGAGTTTATGTAAATGTATATAACCAAAAGTTAG
-GCTTAGCACTGAACGAAAGGACCATAAAGTTTTCACTACCAGACATGGCA
-GATATGTCTGCTCTTAGCCATGTTGAAGAGACTATGAAGTGCATTTGCAG
-AAGGAAACAGTAAAAGGCAACAGAGCTGAGACTGAAATGATGAGCAGACA
-ATTCCACACATACCCAGAGTGACACTGTAattagccagggttctccagag
-aaacagaaccagtaggggatagatggattagatagggagagaGAGAGAGA
-GAGACAGAGAGACAGagataatagataagatagatagatgatagatagat
-tagatagcataaattagacatatagatgatagattagatagatacatgat
-agaagagatacatgatagcttagataggtagataagacagatgatagatg
-atagatagatacatagataagatggcatagactagacagatgatagatta
-gatagatagataacagatagatagtagatagattagacacataggtgata
-gatttgataggtagataaagatagataatacatacatacatagatggtag
-atttgataaagacaatagattagatagataatagattagatagatgatac
-atatattagatagatagtagatagattagatagatgatagatttgataga
-tagattggatagataatagataggatagattagatagatggatagattag
-ataggatagattagacagataggatagatgatagatagatagatagataa
-ttagattgatagattaaatagatgatagatgatagatagatagataatag
-ataaatagataattatcaggaattggctccttctcatggaggctgagaag
-tctcacagtatgtggtctgcaagttggagacccaggaaagccagtagtat
-aatttagtctgaTCTAAATCAGACTAAatcaccatcaccataataatcac
-caccatcatcatcaccatcaccttaatcaccatcaccatcatcatcacca
-tcatcactctcattatcactaccatcaccattatcattattccctcatta
-tcatcaacaccatcaccattgttatcaccatcatcatcactatcatcact
-accatcactatcactatcactatcaccatgatcactatcatcatcaccat
-catcacccatcatcactattatcaccatcactatcaccaaaaccatgatc
-atcaccaccatcatgaccatcaccaccatcatcttcaccattaccaccat
-catcatcaccatcatcactctcattatcactaccatcaccattattatcc
-ccatcaccatcatcaccaccatcgccagtgttatcaccatcatcatcatc
-actatcatcactagtatcatcactctcaccatcatcactatcatcatcac
-caccatcactatcatcaccatcactatcaccatcaccatgattatcacca
-tcactatcaccataaccacaatgaaccaccatcaccatgaccatcaccat
-aatcatatcaccatcatcatcaccattatcaccatcaccatcatcaccat
-cattatcactatcatcaccattatcatcatcaccttcattatcatcatca
-ctgttatcatcactaccatcacgatcaccattatcattatccccatcatc
-atcaccaccatcaccattgttatcatcatcactatcactataattatcac
-tatcaccatcatcatcatcaccatcaccatgactatcatcactgtcatga
-tcatcaccatcatctatcatcactatcatcaGATAATGAATTATCTTTTA
-CTGTCTGTGGACAATTATCATAGGAcaagatttctctatcttggcactat
-tgacatctgaggtctggataattctttgttgtgggaagttgccctgtgcg
-ctgtaggacatttactaacatccctggcctccacccactagatgccagta
-gcaactgccacccctagttgtgacagcctgtaatatttccagacatttcc
-gtatatcccctggggtcagagtagcccctgtttgagacccactgCTCAAG
-AACCATTTGCTCTTGCTCTGAAAGCAGGATCCTATGCTCATAGACTCACG
-TTCCAATGCAAAAAATGAGCATGCCTGTGTCTGCCTGTGGAGGAGCATAT
-GGGGAAAGGCAGGATTGAATTTAGATTCTTATGCGGCCTACCAGGGATAT
-CATACGGCAGAGAATATCACATTGATTATTTTTTCATGTACACTGAAATT
-GGAAAATGTAAATCTGGATGACACCTTGTGAAAACCCAGATAGAGTCACC
-AATGTGAACCTGCTGGAAGGACGGAGAGTCAGGATGACTTGTCTCTGTTG
-TCAGGACTTTAAGTTACAGATGGAAAGATTCCTTTTACCCAAATGCCAAA
-CACCAATTTTGAAAACACACTCAAACATCTGCCTTCCCCTCAGTCATATT
-CAGACACCCTCTGTTCTTTGATGTCACTGCTGAATTCCAAAAATGCCCAA
-TTTTACTTGGGACTCATCTTCCCTGATGTGATGGTTGGAAGTTGGGAATT
-AATCAGCTTCACCTCCCCCAGCTGGGAGGAGATTCGAAGAGTGGTGGTAT
-TGGAAGGGATGGTGACTCACTGAAAAGACATCACGGAAATGGTGCAAAGG
-GCAACTGAAAAGCCGCAAACAGCAGAAACCGCCGAGACGCCTGCAAGAGC
-TTCAGATCCTTAATCTTCATTTTCCACTTCTTTGATCTGCACTTTGATTA
-GCTTCTCACTTTCTCCATCTGCTTGAATTTGTCGCTATTAATTTACAATA
-GATTTCCTTGTGCCCTTATGCCAACTGTTTCTCTCGAGTCAGTGGAGTTC
-TGACAATCAGAGGAGAGGGGCAGGTGAGCGTGGAACAGCGTGTCCACATC
-AGCACAGATATCCAAGAGCAGGGTTCGGGGGTTACAGAGTGAAGACACAG
-CTCCCTCCTCACACCAGGTACATCCCATGCTGTGTGACATCTTCTGGCCT
-CACTCTCACAATCGTTGGGATGCCTCAAATAGAGCTGCCTTCTCGGAAAC
-TCTGCCAGCTTCCCATCTGGGAGGCTAGGATGATGATAGACTCTTGATGT
-CTAACAGAGACCAATTTTTGTTGAATACTTGATGCGGCCCCCAGGGGTAG
-GCAAAGGAGTGACTGTGGAGGTAAGAGGGGGAATTGAGGCACAGGAAGAC
-GCCCATAGTGGAGCATATCCTTTTAATTTACACCACGCCTTCCAAATTCT
-TTCTCCTTTAGCTCCAGGAAAATCTCACACTCTTGAAGGTCACTGCCTCC
-CATGGCACCACTGGGTTCTGTCCTCAATGCTGAAATCTGCCACCTAAGGC
-CACATCTCTGGGCTCTCATTCCCTCCCCTCTCACAGTGACATCTTGGAGA
-CCTGCACCCCCCATCACTCTTTCCACCTCCATGTGTGAACTCACCTGGGC
-CAATTTCAAAATTCAAGAAGACGGCCTCATGGCCTTATGTGCACAGATCT
-TACAAGTGCTTACTAGGATAAAATTGTGCCTAACTCCTGGAGGACCAACT
-GTACCACACACCCCAGTTCACCTAAGTTTCGATTTGGCCAAGATGTATTT
-TTCGCCTATACAACTTCCAAGAAAAAAAAATTCAAGAAGTGCTCAGCTCT
-GGCTGAGCTACACCAATTTAAACAATTTAATTTTTTTTATGTTGTCAAGT
-AGAACATGTCAAGTAACTCCTTGGTTAAATTATCATGTAAGGCCAGTCCT
-GCTAATTTTCTTGAAACCAAGTTATAATCAGCCTCAATGTGGTTTGGCTG
-GGTCTGTCTCTTGAGGTTGAAAGCCATTTGCACATTATAAATAACAGCTT
-TCACTTCTCATCAAGATTTTTAAAGTCTTGAAATCAGGTTGCAACCCCAG
-CAAAATGTTAAATGCAGACAACACTCAGAGGCCTGGAGTAACTTACTCGG
-AGTCTCTCAACTGATAAAGGCCCCACTCTCTGGTTCTCTAGCAGAGGTCT
-CTTTGGCCTCAGAGCCCTCTGGCCACTCCTCCAAACTTGACCTCTCTCTC
-TGTGACCCTCCAACTCTACAGCCCACCTCCCACACTCACTCCTTTCTTTA
-TGCCTCCGAAGCGAGACACTCTGGCACAGCCATCTGGAGCAAGCAACTTT
-CATGAGACCAACTTGATGCAGGAACATTCAGACATGGCTTAACAAAACCC
-ACGTTATTATAGTTTCAAGCATTTTTATGGGTTTTACAACAGTCACAACA
-AAACCTGAAGCAACCCTGCCTAACTTGAGCTGAGGCATGGGCTAGAGCTC
-TCCATGCCGCCCTATGCCCAATTCTCTCATCCCTTTGGGCTCAAGGGGCC
-CTCGTGCCTGCCACTGCCTTGCAGCTGGTGGGACCATGTGACTAGCTCTG
-TGATGGTCCTGAGCAGTTGCAGGACAAGCCATTTGGGGCCAGAGCCCTCA
-CTCGCTGGTGTGATTCCCCCAGTGCTTTGCTGCCTGGCCACCGCAATCCT
-AGATTGAAATGGAGGGTGCTTAGGGTCAGAGCAGCCTGAGGAATTCTGAG
-TCAAGTCATGGGGGATGATTACCTGAGAGACAGAGGGACTGGCctggatt
-tgcatgagtcagaaataagcttttgacatgtcaacccacagagatctgag
-gtttctgattactgcaacaaaccaagatcatccccactgatCTTACCctt
-actgtgtcacagatgcctgctccagctgcctcatctcctcttgtgttcac
-aacagacctagaaaccagtgtctcccagcatggtgactttccagatgggg
-aaaccgagtcttggagaagtatgatgaacattctaaggtaacacagcaga
-gcttggacccctacctgggcttgtctgaatccatagctctcaggcgctct
-GCTACCCACCAGCCCTTACGGATGCCCAGCCTTCCACAGCATGGGCCTAC
-TCACTCTTCCCTGAATACTATTCCATTAAGCTGAGCTTAACTGAACCCTG
-AGTGGCCCATTCCTCATCCCACCCTTTCCCACTTCAGGTCAGCCCCAACA
-CTATCCTCGTTCACCCTGGTTGATTCCAGGCCATCAATATCTCATGTGTT
-AAGACCCTACTAGTTTTTCAGAAACCTTATAGTCCAACACCTGACTAAAA
-GTTCAATCGCCAATGGCCAAGGTCCAAATGTTAAATTCATTGTTCTTGCT
-GATTCAACAGCTCTGTAATTTCTAGTTTCCAAATGGTCCACATTTGGCAA
-AACGCAATTCAATTTAGAAAACAGTAAATGTGTGTTTGCTACCTGTAGAA
-TCCTGTGGACACAAGTCAATATCAGATTTCCCATAAGTATATCATGGCTC
-AAAACTTTGATACCAAGAAAGGAAAATGATTCTAACAtgatgatggtaat
-gatagtgatgagaatggtaacaataatggtggcatttatggcagtggtga
-tgACATAGGTGTTAATAATAAAgatgatatgatgataatgatgatgataa
-tgataactataacaataatggtggtggtgatcatggtggtgatggtagaa
-atgatggtaatggtgatgataatgatgattgtggtgatgattacagtgat
-aataatgatgggggtgatggtgatgacaatggtgatgatgatgatggtca
-tgattataacgataatggtaatgatggtgatggtggtgatggtgacggta
-atgatttagggtggtggttatgataatgggatgatgctgatgataatgat
-gatgataaaatgatgacagtggtgatgatgatgatgatagtggtgatgGT
-GGTGATGGAGATGATCACAGTTGTTATGATAATGtgatgatcatgatgat
-aataacagttatgacaaaaatgatgatggtggtggtgatgatgatgaggg
-tgatggtgacaacagtggtgatgatggtggtgatgatggtggtgatggtg
-atgatggtcatggtgatggtggtgatgatgatcgtgatgatgatgatgat
-aacaatggtgatgGTGATAGTTAAATccatgtactgggaactctacttaa
-tactcattatcacatttaatatgacaattatactatttactcttcctaac
-acatccatgggaaaagtgaagcacatgaggttacgtcatctggttgaagt
-tacacagtatgagcaaggaatcaaaactcaatcccaggtattctgacttc
-acagcctgtgctttagacaccactgcaTGAGCAGACCTGGAAACGTGATC
-AGCCAGAAATACCAAATCCAATCGATTCATGTATTAAAAATGCATGGATC
-CCCCTCCGCATGAGGCACCTCTGGGGACAATGTCCGGAGTCAGACATTCT
-GAGCTCTCCAGATACAGACTATCCGCAGAGAAGCTCTAGAAGTCCTTCTT
-CCATTTCCCCACGGTGAGATCTCCTCACCTTCAGTGGGGGACTGACCCCA
-GCTCCCTGTGAAACCGTCCCTGATCCCTCGGCACTGAGCACCTGCCCCTC
-ACTCCTCTGTGCTTCATGGCAGCAGTACTCAGCACCTCTAACCCAAAGGG
-GGGCCACCATGCTGCTTCTTCCACTGGGGGCTGGAGGGAGGGCCATACCA
-TTCATGTTTCTGTGTTTCTAGCTCGGGCCCTGGTATCCACCCTTTTCCAT
-GGTAAACCTGCTGAGCTGGGTAAAGGGGCCCATCACAAGAAGCTCTGTTC
-TCTGGAGCTCCCACTAGTCTGGAAAACAATGATCTAATAATAACAGCGCT
-TTCTCTCTGTGATGAATGCCGCCAGGGGAAGCTGTAGCTTGCAACAAGAA
-CTTGAAATAAGCGacctaacatagtcaagggtgatcagaaggttctctag
-ggagggcacatctaggctcagccctagaaaatgtgctggagtcaaccaAA
-AAGATCATGGAGCTAGTACAAAAAACATTTTGAAGGAAGGAAGGGAGGGG
-AGGCAGGACTTTGAGAGTGTGGCCTAAACTCTTTAAAAAGTACTCTGggc
-caggaatggtggctcacacctgtaatcccagcactttgggaggccgaggc
-aggtggatcacttgaggtcaggagttcaagaccagcctggccaacatggt
-gaaaccctgtatctactaaaaataaaaataaaataaaaaattaaaaatag
-ccaggtgtggtgggaggcacctgtaatcccagctactcatgaggctaagg
-caggagaatcacttgaacccagaaggcggggtttgcagtgagctgagatt
-gcaccattgcactccagcctggacaacaagagcaaaactctgtctcataa
-aaaggaagaaggagaagaagaggaaggagaaggggaggagaaggaggagg
-agaagaaggagaagaagaagaagggggaggaggaggaggaggaggaaggg
-aggggaaggagaaagggaagaagaagaggaagaagaagaaggagaagaag
-aagaagaacaacaacaacaacaacaacaacTCTGAGCCATCCCAACCTCA
-AATCTAGGTGATTTCTAGGAGAAAATGGGTTGATCtggggtagtgatatt
-gatcacataatctcgagtccacccaacacaggttctaatctcagatgcct
-cctttaaccacgtgatcttgagcattataatgaacccctgcacctgtcag
-tttcttccctgtaaaatgggaataataatgaccccatccatggagattaa
-atgaagaaacgcatgtaaaaagcatgccaagtacctgccaaatagtgaaa
-cttcaaATAATAAGAAGTGGGCATGGTGACCCCTTTGCTGTCACAGGCCT
-AAGCTGTGGCTAGCCCTGCTGGATAGGGGGATGGGGGCAGCAGCCCTGCC
-TCATCAggtggtggtgatgatggtcatgatgatgacgatgGACAAGACAT
-TGAACCAGGGCATATCAGACTCACTGCCATGCCGATGACCCACAGTATTT
-CTCTCCTCGTTCCTGTGGCTTCTGTCTTTACGGCATTTCATGTTATTTCT
-CAAAATCACCAACAAGAAGAGCCCAGAGGGGGTGAGTGAGTCAACAAATG
-GGTGCGGGTGGAGGGGGCTTTGCTGGTCACAGCCAGCACCGCAGACGGAT
-CCACGGTGACCCTTTTGGCAACCGGCCACGTAGGGCCAGATGGGCGGCAC
-AGGGAGGTGTGTTGTGCCGTTTAACTCTCCATTCCTTACACATGGAGTCT
-CATGATGTTCGCTTTTGTTGGATTCAAAATGGAAATGACCTGACTTTCTG
-GCCGATGAGAACTGGCTTGAAACGCAGGCTCCATCCCACGCAGGTTTGAT
-GGGTTTTGTTCTTCTCTATACTCATCTAATTATTCCACAGAAGCTTACTG
-AGCATGTGCTCCATGCCAGCCCTGTTCCCACCCGTGTGCACGATAGAAAC
-GGGCCAGCCCTCATGAGCTTCTAGCCTGGGGAGCGCCCATATGGTAACCC
-ATCATAAATAACAGTGAAATGCACACAGCATGCGGTAAGAAGGTATAATC
-GTGGTGTGAACCCTGTCCGCTCATAATGAAAAATCTGACATTGGTTGGAT
-AGGTAGAAGCTGAAGAAGATATGGGGGGATGGAAGATGGTGGAGACGTCA
-CAGCTGCACAGAACAGTAGGACCCACTGGGCCCATTGAACAGAAGAGGGG
-GACCGGGGATGACAAAGAACAATTAATTCCACGGAATAGGGTCACAtttc
-tttttatttttttttcttttttgaaatggagtctcacactgtctcccagg
-ctggagtgcagtggcgcaatctcagctcattgcagtctctgcctccgggg
-ttcaagcgattctcctgcctcgacctccctagtagctgggattacaggca
-tgcatcaccacactgggctTtaaaaaaaaatagaactctctggaggtctc
-tgcacaagttatacctccagtattggaaatgacatggagatgaaataaac
-agtggtgccatgtgtgaagaggcaggagtcctacaccactgaacggtttg
-gcagaagagatgcctcacatttgttgccagccttttggctcctgtgatct
-tcaagacacttgccgcatgtgtgtctgcgcagtggctgtggtctgcaaat
-tgtgtaagtgtttgctgttcattcaaaagcccagttattcctcagtcgtt
-gcaattaggcaattttctgcttttgaggcaccgataataattagcttcta
-aacgtttatcttccactgttgagtagcatcgtccacttaagtgaccgcag
-cctttttgcgagggaacaattttgcaggtcccttctactaggttgtaagg
-aatacagtaagaaaaacgaatattcagcttctccgatatcaaatctgtat
-gattcagggtgctctagaaagacagaccaataagatacgaatacctatat
-atgagagagaatttattaggggaattggctcacacaattatggtggttgg
-taagtcccacaacaggccgtctgcaagctggataccctgagaagccggca
-gtgtggcccagcccaagtcaaaaggcctcagaaccaggggagctgctggt
-aactctcagtttgaggccaaaagcctcaggacctggggcctaagctataa
-gtcctggagtccaagccagcacgcctggagttctgatgtccagggcagga
-gaagaaaaatctgtcccagctctcggagagagaccagttcaccttccaca
-tcaccttccacacgtgttctctgcaggccctggccaatgggatggtgctc
-accgacgtggagggcaaatcttccgtgcgcagtccacccagatgcacaca
-cccatctcccctggaaaaaccctcacagacacacccaccacatttctagg
-tattccttagtccagagaggttgacatctaaaattaaggctgtaagtcca
-ctccttgtccactcagcactcatatgtgtctctttaaaccatattgattt
-tcagataatgacagtagcaaggtagtagttctccctgattaacacaatgc
-aacgaccctacatacaaccgaaaacacaccaatcccttccccagaatgtg
-gctttcaggattgcagccatttgggattttaaccttttgggattgtgact
-ttgggactATGATTTGCACTAGTGGGTGTGTGTGTGAGAGAGAGAGAGAA
-ACAATTAGCTGAAGGGAAATAAGAAGATTTCTGTTTATTGTTTGGTTTCC
-ATTTCTCTTTGGTTTGTTTCCATTAAGTTGAAGACACTCGTGTACAAAAA
-CTAACAGGAATGATCTAGTTGAAGCCTTGTctcggaaaaattatttgcct
-tcacttagtttcaaattccatgtgggtaaaattaaaataatcatacttaa
-ctcaaggagctttactagaaattaaacacgtgtatatcactcacagatct
-taggagcagacattcagttaatggtgcaattattattCAGATCATTCTTA
-GTATGTCTTACCTACCAGACTGAAAACAATACAAGCGCAGGGATGTGGCT
-CATAGatattttattaattttaactttttattatcatatagtaaaatggg
-ctgttttggggtatacttcaatgagttttagtatgtatggattcatttga
-ccaccaccacaatcagaacacaggacaagtccatcacccccaaaattctc
-atgttgtgtctcttcacagtcatagctctttaaaccttaaccctgacaac
-tagtgatcagctctccattgctgtaggtttgtcttatttggaacatcaca
-caaatggaatcacacataatacgtaactatttaatactggcttctttcac
-tcggcagaatgtctctgagattcgcccaggtggtatgtacatcagtcatt
-cattccttttcaatgctaagtagtattccattccacagccgaagtttgtt
-taaccatgcacctgttcaagggtatttagttagtttgctcccatatatcc
-tgtttggtgaactgttttaggttttgaacaatgatgaatcgatataaaaa
-catttatctagagatctatatgtggacaaaaaattctcagtccacttggg
-taaatacctaggactggaatcaataggtcatgtggcaagtgaatgttcag
-ctttagaaggggctgtgaaactattttctagagtggtcctcaccatctca
-catcctaccagcaatgtctgaaagttctattttctctacatccttgtcag
-cacttagtactgtcagtattctttattttagccattctaataactatgta
-ctgctgcctcaagatgttttaatgcagatttcccaaatcaaatgctaatg
-atatccaagaacatactttgtttaacttctttccaacttattaaggtttg
-ttttctgactcagggcacagtctatgttagggaattttccacgtgtacta
-gaaaataatgagtattctgctgatattggAAGATTACAAAAATcatacaa
-taaaaagttactagacaagaaaagaggcaagaaactatgatgggtgatca
-ggagaaaaaacatatatgatagaagtagacccacatgagatccttatact
-ggagttaacagacaagattttaaaataattgtcattacccatgtttaaga
-acatagagaaaatggatgaaaaaaatgGAGACCCAAAATTCAttagtgtt
-cccccaaaattcatttgttgaaatcctcaccccccaggcggtagtgttag
-gaggtggggcctttgggaagtgatgagatcatgagggtggggcccccatg
-aacggtattagtgccctagaaaagggaccctggagggctcccttgcccct
-tccactatatgaggacacagagagaaggcaccatctatgaaccaggaagc
-gggtcctcaccagacactgatctatgaaccgggaagcagatcttcaccag
-atactgatctatgaagcaggaagcagatcctcaccagacactgatctgtg
-aaccaggaagtgggtcctcaccagacactgatcagtgaaccaggaagtgg
-gtcctcaccagacactgaTCTATGAAGAGGAAGTGGGTCCTCATGagaca
-ctgatctgtgaaccaggaagtgggtcctcaccagacactgatcagtgaac
-caggaagtgggtcctcaccagacactgaTCTATGAAGAGGAAGTGGGTCC
-TCATGagacactgatctgtgaaccaggaagtgggtcctcaccagacactg
-atcagtgaaccaggaagtgggtcctcaccagacactgaTCAGTGAACCAG
-GAAGTGGGTCCTCACCagacactgatcagtgaaccaggaaatgggtcctc
-accagacactgatctgtcagccaggaagtgggtcctcatgagacactgat
-ctgtcaactaggaaacaggtcctcaccagacaccatatctgctgcagcct
-tgccttggacctccagcttccgtaattgtgggaaataaacttccgttgca
-tataagcccccagcctatggtattttttacagcagcattaaacaaaccaa
-tacaGTGGCCATCCCCTTTATAACTGTATATTTTGTGCTGCAACTAAATT
-GTGATTTTACTGACTGTAAAAAGAGTGTAAAGACTTCATGCAATTCCTAA
-AGTAAAAAAAAATCCAGGCCACTTTAGCATTCCCTGGCGGCTTTGCAATG
-AATCCCATCTTTTGCTCAGCGCACCAGCGATTCAGCAAAGGGTTGAAGTT
-GTCTCTTGCCTTCTCATCTCTAAATCTATGCCAGATCAAATGGGCACAAT
-AAATACCAGCACTTTTGAGCCAGAGACTCAGAGTAATTGCATTACAGGCC
-TGGCCAGCCCAAATGTTTGGGGATCTGGGATAAATAAAAAAGAAATAGCT
-TGCGAAGTGATCTCCAGTGTTCCATTCCTGGACTGTGCAGAACCCTGCTA
-TTCTATTTGCATGATTTAGCGAAAGGAGGTTTCATTGATATGTAAATAGT
-AATGCAAGTAGTTTACATTGGAAAACAAAAGCCGGGAGCACTGCCTATTA
-TATTTTATAGCCGTTTGACTACAGCCTTTGTTGCTGCCAGAAAACACAAC
-AGCAATTATGCTGGACCTACAATTTAAATAACTCTGGCTCACACAAGTGT
-TTCAGGAATAACATTTAACAATGGAATTACTTTGCCATTTGCATATGGTG
-TTCTTGTTTGAAGGTGTATTCTGAATTTATTGGGCATTTTTATTAGCCCG
-CAGTGTTGAGTTGGTATGCGGATCTTGTAGAGAGAAAAAGGTCTTCGGCA
-GAGAAGACTCTGAGTGCATGAAGATAAATGGCACCCGCTGTTTCAGAAGG
-TGGCTTAGAAGGACGGCTCTGAGTGCACATGTTTCATTATTATGGGATAG
-AGAGGACATCCGTGGCATATTCAGACCTCTGTGAGGGTGTCCAGATGACC
-CCCGTACTTCTTAGACTCTACTCCTCGAAGAGCGCCACTGGTCTGAGCTG
-CAAGTAAGGATCTGTGGAGGACAGGCTTGTGGGTATTAGACACTTGTATT
-CATGACCCAGAGTCCTGTGCCAGCTGCACGAAGCAGGtgaaatcaccttt
-gcagaaattttatcagtgtgaaaattatgacagtgaaagagatcgatgtc
-acccaccccactcttgcctttagctctcaagctgccttaattagtcctgg
-gcttagacctaactaactttggaagacctttaggttatagtttaaatgat
-aataggctttccccaaagttcagtagcttttgcctttgtaaagctaatga
-gagagcctcccgctaggtgaaggagaggcacctgagtcctgctaagacgc
-aggcataaaggattaccagccattatgctagaggtcacagaatatccgac
-ttcaccaattactcccgcagataacaccactagagtagaacctaagatgg
-gtcttttgagatatcttttcaggttttttttgcatgtctgacctacatgg
-tttccacctggaactgccaaccactcctgtggccccacccacaggcaact
-caactctagaggacagttcccacccactacgatttcatctccaccccagc
-caatgagcagcaagcacccattttccagctacctcagcttccaccccctg
-tgattttaccccagccaatcagcagcaagcacccatttcccagctacccc
-aactcccattccctattatttcatctccatcccagcaaatcagcagcaag
-cacccatttcccagctagcccagctccttcccccaaactacctttgaaaa
-acccctaatccaggagcctcagtgagatcaatttgagtaataactctgtc
-ttccacatggtgtggctggccttgcctcaattaaactctttccttacagc
-aatgctgtagtctttatttgcacagtgggcagaaagTGTCCCGGGACAAC
-TCTCATCCCCACCTAGGGAGGTGGGGTGTCCCCTTATCTTTGAGGTTCTT
-TCCTTTAAACATGCATGCATTTTTCCCTACTCGAAGCCATGTCGATTCTA
-GAGAAATAGGACACTGCAGAAACAAAGGCGAACGTGGCCCAGGCTCCCTC
-CTGACGAGCCTCGGCTTTCCCGGGTCCCTGCCTCATGTGAAGACCTAGAA
-CTGTTCTCGTCCTGCCCCTTCCTTTTCATGTGTTTTTCCAACTCCATCTT
-CTCCTCATGTCCACCAGCTCCTGGGTTCTCCAGAATGTGTGCAGTGTGCA
-TGCGGCGAGGGACCCCGTTTGGCATCCAGCACCCCCACTGCTGGAAAAAG
-CAGCATCCCCCTTCTTGGGGGCCCCATGCTCCCTGCCCACCCTGTTCGGA
-AGCAGCTGCCAGTTCAGGACTCACACTTCCTCTCCACACGCCAGGAGGAC
-ATCATGACACTCAGGGGAGCTGGTGAGGAAAATGCTTCTCTGCAAACAAG
-CCCATATTGGACATGGCAAGACAGTCACTTTGCAGGGGACGATGGGAGAA
-TGGGATCATGGCAGCCCTTCCAGCAAGCTCCGCCTTATCTTAGAGAGAAT
-GCCCCTCCCCTGCCCCCAGTCCAAACAGTGTCTGCGCTCTGGAACACGGA
-ACCACTGCACCAGGGCAGCCCTAAATGGCTTGATTTCCGTCCTTTAAAAA
-CCTTCTCAGCTGAGCCCAGTTAATTACAAAACTAGTTCACACTCTGTTAT
-TTTGATTTGCCTCCGCCTTCCAGGCTGAGTGATTAGGCAGAGACTTTCAG
-GAGCAGCAGAGCGTGGCCTGAGGTCCCTGTCTGCCTCATCGCTTTCAAAA
-GGAGTACCAGCAGCAGGCGGGCTCCATCCAGGCCGGCAGCCAGGATCAGC
-TCGCCAGGCCCACCACATTCATGCCTGGAAACTGTTACATAGACATAGCC
-CCACACATTAATTAGCAATTAAAAACTTTATTTATAAAATCAATTCATGG
-ATACACATCTTGTTAAAATGCAAACTATTATTTCCAGATGACTTTTAAAT
-AAGAAACAAACAGAAATGATATAGCCTGACAGTGCAGGGTGCCAAGAACA
-TCTTCAACAACAATTTGCTGAATATTAATGAACTGAAAATGTCATTTCTG
-GTCCAACTACTAGAAGTAATTAGTTTTTTTTAATTACGGAGGAAGTGGAA
-TTTTAATAAGGTCAATTTTACAATTACAGTTTTAGAAATACTAATTGTAT
-TGTCATCATATCTTATATAATAAATGACATTAACTTGCTAACATCTGTTG
-ATTTTAATGTAAATAAAGCAAAAAAATCATTGCATTGAGTTCTTTAGGGA
-GTGACATTTTATTAATAATGAGAGCAAGATTGTGGACAGCATCGGAGACA
-GGTTGGACCATGCGGGATCCCCCAAGAGGGCGTGAAGGTAACACAGAAGG
-CCTGCTGGCAATGCTTTCTGAATTTCCTCATCAGCAGCCATGGAGGGAGG
-AATTGTGCAATACTTTTTCTGACATGCCATGAACATAAGCCTCTACAAAT
-ACCAGCTTCAAATTCAAACTTGAGCCTGAGCTGAAGGACAATAGCAAGAT
-CCCACTCTGACGTTCGTTCTGTCTCCCCCTGCAGGAAGCGACTCCTGAAC
-ATCTGGCATACACGTACACTGGTTTCCTATCCCTCACCAAGCACATAAAT
-GAATCCCGCCTCTCCTCCTCACGAGCTCAAAGTGACAAGGCAGAGGTGCC
-TCTCCTCCTCCGATCGCCACAGCCTGTCTTTCTCAGTCACAAAACTGCAG
-GGATGCTAAATCCTGAAGTCCCTAAATACCTCCCCATCCAACTGATGCCA
-ACCCACTGACTCTCCCCAGCAGTGCTCTGTTCAGTCAAGTTAAATCATCT
-TTGCCCTGAAATTGATATTCCAATGGCTTAAGCTAACCCCTCCTCCATAG
-TTCCACCCTTCCTAATGTTAATTCTTTTGATTCCATGGAATAAAAAGCAT
-AAAATCTCACTCAGGTAGCCCACAAAGCTCATCAGCCTCCAAGGCAGAGA
-CCTATGCACGAATGTGTCCCATACAGTGCTGTATGCTACAGGCTCATCAG
-GGCCACATGGCACCCCTCAGGGAAGTCATAGTTCCAGTATAGATGGTCCT
-GTTCAATGCTAGCATTAATGCTAATTATAAAGGACTATACATTATTAATA
-ACACTCATGTCTTATCTAATAACAACAATAAAAGTAACTTGCCACTTACC
-GAACATCTATTATATGCCAAGACATAGGCATTTTAATAGGCATTTTATTT
-ATTCTTCAAGACCCTTGGATGTTTCAATAAAGGATTTACATAAATGTACT
-GATACTGAAGTAAACTCAATTCTTCTCAGTTCTGTTCAATAAGTAAAATA
-ATATAGAGTTTTAAGTAAAAAGCCATagaagtgaaagatatttggacccc
-accatccagttccttcattttacagatgagggagcaaggacccaaagaga
-tgaaACTGTCCCCACATTTCCTGTGCTGCGACTTTGGACTAAGAGTAGAT
-CTGTTTTGAGTGAAGAGGGGAATGGGAGGGAGAGAGGGAGGAGGGATGGG
-TCTTGACCTCCGGATTCTATGCCTGATCCAGCCCTTCCTGTTTTTTCCTG
-CCCCACCCTTCCCTAAAAAGCCCCTTTCCATTTTACTCAGGGACAGTCAT
-CTGGGGTTACTGCCCTCCCGTCCCCTCCTAAGAGTGGCATTGTGATGACG
-GCTGCAGACGCTCAGCCCCTCGCGTGGCTCACAGTGTCTCGCACCCCAGT
-CCATTTCTGAATCCAATAGCTGGGAGAGGTGGGTACCGCAACAATTCTCA
-ACTCTGCTGAATAATTTTGTGCCCCTTGGCCCTGGCCACCGCATCTCATT
-AGGCATCAGGCTCCAGGCCTTACCGAGAGCTCTCACTGCTCCCAACTCCT
-CTTAGAGCCCCCGGCTCTGTGGGAAGCCCAGGAAACCACAGGCAGCAGGT
-TCACCTCTGGCTGGAGGCCCAAACCCTGCTGACCCACAGGGTTCAGATTC
-TAGTCCAGGTGGGCTCCCCATGCAGGTGTGAGGCACCATCCCATCTCAGC
-CACACCTGAGCCAGACCGAAGACAGGAAGGGAGGCACACCTGCCCTGGGG
-CAGCTCTGCTTCCTTTGATCCCTCGGTCCCCAAGAAGCACAGACCACTGC
-CCCATAGCCTCTCTGCTCCTGCCACAGCACTGGCACAGGACGACCCTGAA
-GGACTTCCACACCCAGTCCATGGAGTAAGGGACAGGACCAGACGCCATCT
-GAGGGACAAAGTCCCCGAGCCCCGATGCCTGGGCGCAGAGCTGGAGACTC
-GGCTTCTTCTTCGACCTCCCCGGCCACTTCCCAACACCACAtcacctcaa
-cgcaggtataaggcacgtcccgtcattgcccccgttttagagctgagaaa
-catgaggaccagagaatcaagGCTGTCTGAGCCAGAGGGCGCCTCGCTGG
-CCCCTACCCCAAAACAGCACCCGCCCTGCCCTGGTCATTACTGCCCCCCA
-ACCTTAACCACCCTCCCCACTGCCCTACAGAAGACCCTTAGAAGGGGGCT
-GACTGATGGACCATGGTGAAGGCCAGCCTGGCCTCCTTCAGCCACAGTGT
-GAAGCGCAGTTCACCAAAACTGGAAACTGCCATGCATCCCGGTGTCATCA
-AACACCACAGCAAAAGAGCCAGGTGAACGCACGGAACATCAAGCCGCAAC
-CCTCCACACCTCTCTGTATAACCTTCGCGGCCACTGCCCCCGTGCCTGCA
-GAGCGGGTTTGCAGGAGACGTCATCCGAATGGATAAATGTCCGTCGGAGC
-TGGGGATCATCCTCCCAGAGTTTCAGCAGCTCAGAGAAGGCCAGCAACTC
-ACCGAGCCATGCCACAGCGTGCAAGCACAGCGGCCCGGCCCTCCTGCATT
-CTGTCATGCACTGCGTGTCATCTTATTAAAGGATCCAACGCAGGCTCATA
-AAATACTTAATGAAAACATGCCACCAGGTGCACGTCCTGGAAGAGCCTGA
-AGACACTTTTTGCGCCCGAGGTCCTCCCCACCGTGCCACACCCCCAGGCG
-AGGACACATACCTTCAGGGGGACAGCTTGCAGTCGTTAAAACAGCTTATG
-GGTGTTTGTTACATCCTTGGGGATGTCTTGTTGAATTTTAATTACCTAGA
-TTAAGATCTATTGATATAATTATTGAGATATATAAAAGTTTTATTTAAAC
-GTGGATAGGCCAGAAATGAATGCTCCAGGGACAATAAGTGACTTTACTAC
-CTGGCTCTCAGAGGTGCCTGTAGGACGGGGCGGGGAACACCACAGCCCAA
-GGACGCCCCTGGAGCGTGACCTCCCCTGGACCCAGAGTTCCCGGGAAGCC
-CCTCTGGGCGGAAGCATGTGGGGCGTAGGGCACAAGCCACAGAAACAGTC
-CACACGGCAGCCCCCCACCGCCCCCCCGCACCAGGCTCCCCGGGGGAAAA
-CCTCACATCCTCACAGTCCTCTTAGCTAACGGCCTTCGCCGTACACACCC
-CGAAGGTAAGAACGCCTCATGTGCAGAGAAGCTTGCCCCAGCAGCCCAGC
-AGCGCATCTGGAAAGCGGTGGGGCTGGGATTTCAGCCCCCGCAGGTTCCC
-GGCCCCCGTAGGATTTGCTTATCTGTGGCACTGCCTTTCTCCCCGATGAG
-GGCCCTGCCTTTCTCTCACCTCACTGATGTCTCCGTGCAGGGCAGTGCTG
-AGGGCCTTCTCTTAATGGTCAATCACTCACCCCTCACAAACAGAGTTAAC
-ACAGCTGATGCACATGCAGCCCAGTGGAACGAAGGACTGTTTCAGTTTTT
-TTAACTAAAAATTTTATGCAGAAATTTTAGAAATTTCCAGAAATTGGAAG
-AGTGATGACCAAATAAGCAGGAGGATccacctctagcatagcacaaaatt
-caggtgcgttggagatttcagggaagaaaccaacacggaggagcatttag
-caagaaacgcgggaacaatacgtgtgactcggggtgaggcgaggtttctc
-cacctcagggccacacaaaacttaaggcatgaaggaaatattgataacca
-atcagtgcgatagcacaaaatcaagatgtcctgtttgacaaaagacaaat
-gaagtaaaaagataagctacagaataagagaagatattttccatctgtgt
-caatacaaaaggaatagtctccagaatggaccaaaaaatccttgcacatt
-gctcagaaaaagacaagtagcttcgcagaaaaatgggtaaagaatgtgaa
-gagacgattcacaaagagaaaagctgagtttcgagcagcactgaaaagac
-gcgtgaactccatcaCAGTCTGACCGGCAGCCCAGAAGATTCACAGCTGG
-AAGCGGCCGATGACCCCAAGTGCCGGCTGCCAACTGCGTGCACTGGTTTC
-CGACCCgtaaatcagtgaagccctttccaaacaaacctcggtactaaatt
-ctggagttgaacatgtgttttccctacaactcagcaatttatttctagat
-acgtcctctgtggaaatcctcccttgtgtatacagaggttcatacaagaa
-tcttcattagttccttgtgataaaaaaaaaaaaaaactttaaaataaccc
-agtatccacggcagagaatgaatcagcaagttaactcgtagtggaagatg
-aaccggagtacaggagtgagaactaatgccgtagatacacgtgtccatgt
-gggtaaacctacagaacagactcttgagtgaaaaccatacagaaactatg
-aaatgtattaaacgtatataaacagtcccaaaaacgtttacaaaatgcaa
-aataatttttaaaattctagagattcttctaagaaaaatgtaaagagggg
-ccgggtgtggtggctcacacctgtaatcccagcactttgggaggttgagg
-cggatggatcacttgaggtcaggagttcaagaccagcctggccaacatgg
-tgaaaccccatctctactaaaagtacaaaaaatagctggctgtggtggtg
-ggtgcctgtaatcccagctactcgggaggctgaggcaggaaaattgcttg
-aacctgggaggcggatgttgtagtgagccaagatcgcaccactgcactcc
-agcctgggcaacagaacaagactctgtcttaaaaaaaaaaaaaaaaaaga
-ggaattattggctattaccttaaagacaatggcttcctctggagagaaaa
-gaggagaactatgacattgccaggtatattattgtctattgttgtgtaac
-aaactgcagccaccttgcagctggaacaactcctctatgtttattccctc
-acagcctctgtgggtcaggagtccaagtgtggctcacctgggccctcagc
-tcagcatctcacacggctgcaatcatatgtcatccgggctgtggcctcat
-ctggaggcttggctggggaggaatccctttcccagtccacatggattact
-ggaagaattcacattatttgtaggattgagcgccatactttattgctgac
-tgttggctggaggtggctctccactctccagcttccttcaccccctggag
-gattccagcagcccccagagcccacccacagtcccctgtcctgtggactt
-tcttgatgtagccccgtgccccataagggtagcaaggggcatctctagag
-caaggcaggcagcaaggcagagtcttgttcacgtaacgtgaagcagtgcc
-atcacctcaccttcaccatgtgctgcaggcaaagtacaggtcccacccgc
-actcaaggagagggaccacatgggcatgagcaccaagaggtgggtcgtga
-gggacacgctaaggtctgcctgccacggggaggacatcaggggctttgtg
-tgtttgtgatattttacttTGCCAACAAATGTGAAACCTCCATGATTCAG
-GGTTAGGACTGTATGTAGATGATCGTGCCTATGTGGGTAACTGCTAGACT
-GCCTCGTCTATGGTTTTTATTATGAATCACTCCATGATAACCAGGATTGC
-CGTCCCTCCACTGCGATGCGGGGAAAGCCCTGAAGGAGAGTGGGCATGCA
-TGGGGCACCCACAGACCCAGCCTTGTGAGGACTGGGGAGCCCACCCTGGT
-GCGTGTGGTGTAGGCCTGCACAGCTCCTCCTCACAGAAGGGTTTACAGGG
-CAGCTTCCCACACGGGCATGCAGTCACCCAGGGCTGCCAATGATCGGGTG
-AAGAGAGCTTTTCAATTATGGGGACAGTGTCAGCCACCCCATGTGGCTGC
-ACACATCGGCCACAGCAGAGGAATCATATTTGCAAAACAGCTTCCTGGAT
-GTAGATTCCACATACATGACAGGGTCTATGAGGGCTCTTGACATATTCTG
-GATACTAGGCCCTATCGAtgtgtggttgtgaatgggcacgccgccaatgc
-ccagcagttcccagtgtggcctcatccctcactttctgcatgcgctgggc
-tgcaagtcagccaaggagagagaagagccttctcgggcctcttctggaca
-tgggcacggccctcagtgccccttaagatccccaggaaaacgccagagtg
-cttcaaagtgtcgtgtggacatctcattcccctgcttttcctgctaaagc
-gcttgttcgcttcttgtctgtccaactaggagtcccatctcaggcagctg
-ccgtgttcagcaatcaccactcaccatcgtcagcacaggccctggggaca
-acgagctctgagcagatggagtcaggacaggccctgccagcaaggccctc
-ccacagagctgctggacatgtcacgctgtgacagttctctggagatgggg
-cttttgggttctgaatcccagtctctcccctcccacgcggccaggcagct
-ggttttcccagctccatgactgcaaggagatgggctttcaatgagatgag
-ggaaccagggggaggaagatggggacaggatattaaaatgccatgaaact
-cactgttcttaccaagattcagctgtttttcctgaatactccctgaacag
-ctgcaagcctttggtgagcctccaatgttctgaaaaagctggcttgggca
-tattttgtcaatgttctcattgcttttgtggagagttttctcaggccttt
-gcttcaccattCAGGATGTTCTGCTCTTCAGAACAGCCACGTGGATCTCT
-GCCTGTAGATGTGTTACAAATATGATGCCTCTGCTGTGGCCGATGTGTGC
-AGCCACATAAGGTGGCTGACACTGTCCCCATAATTGAAGTCTCTGCAGCC
-CAAGCTGACACCGATGGGAGAGCAGGGGTGTCCCCCTAGATCCCCTTTCC
-TCACCAGCTGCACCTACCTAGAAAGAATCCTTGCTGGAGATCTACAGGCA
-TAAGAGAGTGCAGCCACCAGACCTCCAGCAAAGTGGAATCCACAAGGCCT
-CCAGGACAGGTGTGCGTGACAACCAGTGCAATATAAATGTAAATACCCAG
-ACACAGACCCCCACACACACGCATGCAGAGAAGAGGCTgagggagattta
-cagactgagctcatgcaatcatggaggctggcatgtctgacacctgcaga
-caagcagcagctgaagaccagggcaggttactgttgtgtctggaggacaa
-gtctttcttgtctctgctctctagcccttcaactgatcagacaaggccca
-cccacatcacggttcatccaagtctactggctgtaaatgtgcatcacgcc
-tgcagataccttcacggcagcatctggttggtgtttgaccacacctctgg
-gcatcgtagccgagccagctgactcagagatttcaccacctcaGGGAAGC
-TCAGTTCCAGGGTTCAGTCATCCACTGTGCTTTGCTGAGTGACTGAACTG
-GGGACCAGGAGACCCAGGCCAGCACAGCTGAAGGCCGTCCTGGGGTGGGG
-CACAGGAGCTCATGGCTGCGAAGGAGCTTGCATTAGGGGGTCAGCAGGAG
-GCCACACTGGCTGTAATACTGACAGAATATCAGGGTGAGAAGGGTCCTGC
-TGGGTGAGATGCAGGGTCTCAAAGGTGACAGTCATGCCAAGGGTGTGGAG
-GGAGGGGATTGGGTGCAGGTGGTGTAGGACAGAAGGTTCTATTCCAAAGG
-ACAGAGCCAACTGCACAGCTCTAGCCTGGAGGAAAGCCCACGGCCCCTTG
-GCCCAGGCTCTGGCCATGCAACATGCAGCTCAGGGACCCAGACTTTGTAT
-CCCCTGGAGCTTCGTAGAAACATGAGCCTCAGAGCCCATTCCAGGCCTGC
-CTGCCACAACAGAAACCGATGCTAACAAGCTCCCTGGGGTTCTGAGAGCA
-CCGCCGTGTTTCTGTCGAGTGAGCCCTGGGACCCTTCCTGGCTCTTCCCA
-GGCTGCCAGCCCATCCTCCTGCACAGTCCTCCTGCACTGTCCTCCTGGGC
-TTGCCTTGGTTCTCTGTGCGGAGCACTGACATCCATAGAGAGCACTGCCA
-TCAACTCCCTCTGGGTCTGTGCTTTCCTCCCATTTCCCCCAAGCCAAGAT
-ACAGAAGGTGCACGACACGGGCCCTGGGCAGGAGGACTTGAAAGCAACTT
-CCATGGCTCACCCCTCACCAGGCTCTGAGCTGATATCTGACCACAGAGGG
-GAATGTGGTGGGCGTGTGCTCTGCTGCGCACACGTGGTGCCCCTGCCCTG
-GAGGCTCAAGATCCTGGAGCCAGGCAGGTCCGGGAGGTACCACGGGGGTG
-CTGTGGGCTCTCCCTGCCTTGGTCTCCTGCTCCAGGCCCAGCACCGGCAG
-CAGCGCAGCCTCAGAGTTTCCTGGAGGCTCCTTCAGGGAGGTCCCCGGGG
-TGGGGGGTGGGGGGCATGAGCTTACTTAGGGGCCAAGATGCTAGGAGACA
-GCACAAGCTCCACAGCAGCACAAGACGCCGGAGCTTCTCATTCTTATTCT
-GTTTTCTCTTCTGGTTCAAGGAGAGAGGCCACCTTTGTTGACAAACTGGT
-GTTTTATACGGAGGCATCATCCGGCTGGAATGGAGCTGTCCCCATAACGG
-TGAGAGTACATGTTGTGATTTGAGGGAGGCTGAGCTTAACAAGGTGACAG
-CATGCTCCCACCTGCACCCCGGCATAAAAGCATTTCCATTTCGCTTGTAC
-ACCTCAATTCATCTTGTAGACCGAGTTTAAAGACAGACATCACTGGAGGC
-CTAAACGCTGTGGTCATTCACATAAATAAATCGTTTTGTTTTAGCTCCAT
-GGAGCAGCGCCCAGTGGAGCAGGAGGCCTGGTAATGCATGAGGTTCTGTT
-AAGCCTCATACACAGTAGATTAACATTTTCACAATGAATGAAAAAGGGAG
-GAGGGAGTTCAGTTCCGTTTTTATTTACTTTTTCTAAAATCACTTCCGAC
-TAAAGAAAAGAGCTTCAGGGTTGACTGGGCTGAGTGCCAAGGCCCTGACC
-CTGGAACACACAAGTGCACATGGGCATTGcacacacgcacacacatgcac
-tcacacaagtgcacacacatgcattcacacatgtacacacaggcattcac
-acaagtgcacacacatacacatacctcacacatgtgcacacacGACCCTG
-TCCCCATCTTCCTCTCCCTGGTTCCCCCGTGCATGCACACTGACACAGTT
-GCACACATGCATGATTGTGcatacacacacgtatccacaggcacacatcc
-atacacacctacaagcacagaagcatgcacacaccacatgcatgcatact
-cacacaaaagtgcacgcatgcatataccacttatatacacaggcacacac
-ccgtacacacccacatgcacacatgctcgtacacaagtgcacacaTGCAT
-ATGCCATACAATTGTGCGTGcacacacacacacatatatacaaatatccc
-atgcatccacatgcacacatgggtacgcacatgcatgcacacaccacaca
-cacgtacacagacaaacacacaATCTGTCAGAACACACCACACTCTGCTT
-TAAAATACACAGCTGCTGACCACgtgcagtggctcacgcctgtaatccca
-acactttcagattacactttgggaggtgggcgaatcacttgaggtcagga
-gttcgagactggcctggccaacatggtgaaaccccacctctgctaaaaat
-ccaaaaagaaaaatacaaaaatacaaaaatggtggcacgtccctgtaatc
-ccagctactcgggaagctgaagcaggagaatcacttgaacccggaggcag
-aagttgcagtgagctgagatcgcatcactgcactccaacctaggcaacag
-agactccgtctcaaaaaaataaaaataaataaaTTATACAGCTGCTGACT
-GCATACCATGTGCTGGGGAGGCAGCTGCTGCATACCAGAGCTCTGCATTT
-CGCACGTGCTGCCCCGGATAGGCCTGTCCAAGGAGCTCTCTATGTACCTA
-TCCATCCTCTTGTCCTCACTCCCACTCTGCTCCCAGCTCTCTGGGATGAA
-GGGGACCACCTCCCTGTTAGGAAACTGCATCTGCTTCTCCCGCTGCTCAG
-GTTCAGGCAGTGACCAGGATGCCCCATGGTCCTCAGAAGGGGTGACTGGG
-GGCACAGCACACCACGGCCTCACTTGCATTTTACCCCAAATTCGGAGATC
-CCGACTGACCACGCCTCttcaccctccacaaatatttgttggctgcctaa
-cgtgcctagcacaaggctgaccctggggacagtaatgggagctggaacag
-gacagccttggggagctcacattccactaaaggagccagTCCAGGCGCTG
-CTGGACAAAGGGTGGTGGCTGGAATCACAGCCAAGTGCACAGTGTGCCCA
-GAGCCTCTCGTGGACACCACGTGGCCGCAGTCCCGTGCTCACCCCTCATC
-TGCCGCATCTCATTCAGGGCTGACCACAAATGGGAGGTCAGTTCCACTgt
-tacgtgacttgctgacagttacaaaacccacaagcagcaaggccagaatt
-tgactcctggtctgtctcactccaaagcccCCAACATGCCTGAAGGTACA
-ACCCCATATGAAATTTGCAGTTAAGATTCTGTTATCTGGCAGGGGCAGGA
-AGGCTTTTGAATGAGGCTTGGACAAATTGTGTAAGTATCGGGGCGGGGGT
-GGGGGCATGTGCTGTGAGCTTGGGCTGGGTGTAGGTCTGGGTGTGCAGTG
-TGTAGCCGTGTGGGCATGGGGGCATGCATCTGAGTTTGTGTGAGAGGTGT
-GTGTGTGCACCTGTGTGTGCAGGCACCAAGCTCTGTGTACACTCACGATG
-CGTGACATAGGCTGCTGTTGTCTGCTGTGGTTTTACAGCAGGCTGGCATT
-CGTTATTTTTGGGAAACGGTTTCTAAATCAATCAAGCAGAAATGGCATTC
-CAGATTTGGACTTGTCATATGAGACACACAAATAAGTAACAATTGATGAG
-AAAAATTTAACCAATTCTTCTCATTTTTCTAGTTCTAATTGGCATTTCCT
-GCCGTAATGAATGCAACCATATCTGCTCACACACCTAAAACCCACCTAAT
-GGTTTTCTTTCCACCCTGACACTGGAGACACCCTGCACAGCTCACAAAAT
-GTCACACGCTGTTTGTTGTAATGAACCAAATAATTTATAAATGTCAAAAG
-TAAGGCTGTTTGTATTTATCACCTCTTAAAGGATTGATCAGGTATCAGAT
-TTACACTTCTTTGGATATGCACTTTTTTCCTTTCCTGAATTTCTTGGTAT
-AAATTAAATAACAGCAATTGACATTAAAATTCAATGATGATTCCTCAGTA
-TTTCTTAGGGTCAAGACATGTAGAGGACAAAGAGTCAGGGAATGAGATGG
-TTCCAGGGGCATCTGGACCTACGTTGTGATAGACACAGAAGTGTTTGCAA
-AGACTAAGGTGCACGTGTTCCTTAGGATCTCAGTGTCAGCAGCTTCACCC
-AGGAGCCCATGTGGCTGAGGAGACCTGGACACTTATGTGcacgcacaaac
-acacaaacatgcacacagacgcacaaacatgcacagacacgcaaacatga
-agacacacaaatatgcacacagatgcacaaccatgcacagatgcacaaac
-atgcagacgtacaaatatgcacagatgcacaaacatgcccacagatgcac
-aaacatgcacagacacacaaacatgcacacagatgcacaaacatgcacac
-acaaacatgcacagatgcacaaacatgcacacagatgcacaaacatgcac
-agacacacaaacatgcacacagacgcacaaacatgcacagaagcacaaac
-atgcagatgcacaaacatgcagatacacaaacatgcacacagatgcacaa
-acaagcagatagatgcacaaacatgcagatacacaaacatgcacacagac
-acacaaacatgcacagagacacaaacatgcacaggcgcacaaacatggac
-acagacgcacaaacatgcacacagacgcacaaacatgcacagagacacaa
-acatgcacaggtgcacaaacatggacacagatgcacaaacatgcacaggc
-gcagaaacatggacacagacgcacaaacatgcacacagatgcacaaacat
-gcagacgcacaaacatgcacagagacataaacataaacatgcacacagac
-gcacaaacatgcacacagacataagcctgcgcatgggcacacgcacacac
-atgcacagacacgtgcacacaTGCAGCTGTATGCATGCATCTGTGCACAT
-GAACAGACACACAGAGTGAGGTACACGTGGGCCTGCAAGGATGCTGACCT
-GTGCATATACGAGCACAGACGTGCAGATCTGTAAACAAGCAAGGCCACTG
-CCTGACATAGTGTCACTCCCAAACCTCAGTGGGAGCAGTCTGTGGTCTTG
-TGGTCTGCATGTCCACATTTACTCGAGAAATTGCTGCAGAGCCATTCCAC
-CTCCACGAGATTGGCCCTCCTTTTGCGAGAACGAAGTGATCCTTGAAGCT
-GGAGCAAGATGACCCCAGACAAGCTGCGCAGCCCAGTCTGCCCTCCACAG
-TGAGAATTTCTTACCTGAGATTGTGGCTGCCCCACAGGTGGTATGCAAGG
-AGCAGGGAGTTTGACGATGGCTTTGCCTGCCATGAAAGGGAGAATCTCAG
-ACTACAAAGGAAAACCAGCGCCTCTGGAAGTAGGGCCTGGCTCCAGCCTC
-TGAGAGGGGCAGGCCACCCTCCCCAGAACACAGCAGCTGAAATGCCATAC
-CCTCCTTTGATGCCTGGGGTGGGATCAATACCACCCTTCCCCTCCCCTCT
-CCCAGCCACCTCTCTCCAAGGGAGCGGCATGGTGGCCTACAGATCTCCTG
-CTGCTCAGCCTCCCCCTCCACCTGGGCAGGTGAGTCCGGGGCAGGGGGAG
-TAGGAGGCCCTGTGAGACTTGAGCAGGTGAGTCGGGGGGGTGGTGTAGGA
-GGCCCTGTGACACCTGGGCAGGTGAGTCCGGGGCAGGGGGAATAGGAGGC
-ACTGTGACACCTGAGCAGGTGAGTCTGGGCGGGGGGAGTAGGAGGCACTG
-TGACACCTGGGCAGGTGAGTCTGGGCGGGGAGAGTAGGAGGCCTTGTGAC
-ACCTGAGCAGGTGAGTCTGGGAAGGGGGAGTAGGAGGCCCTGTGACACCT
-GAGCAGGTGAGTCTGTGCGGGGGGCATGTAGGAGGCACTGTGACACCTGG
-ACAGGTGAGTCTGTGGGGGGGCATGTAGGAGGCACTGTGATACCTGGACA
-GGTGAGTCCGGAGCGGGGAGTAGGATGCAGTGTGACACCTGGGCAGGTGA
-GTCTGGAGGGGGGTGTAGGAGGCAGTGTGACACCTGAGCAGGTGAGTCCG
-GAGGGGGATGTAGGAGGCCCTGTGACACCTGGGCAGGTGAGTCTGGAGGG
-GGGTGTAGGAGGCAGTGTGACACCTGGGCAGGTGAGTCCGGAGGGGGGTG
-TAGGAGGCACTGTGACACCTGGGCAGGTGAGTCTGGAGGGGGGTGTATGA
-GGCAGTGTGACACCTGGGCAGGTGAGTCCGGAGGCAGGTGTAGGAGGCAC
-TGTGACACCTGGGCAGGTGAGTCCGGAGGGGGGTGTAGGAAGCCCTGTGA
-CACCTGGGCAGGTGAGTCCGGAGGGGGGTGTAGGAGACAGTGTGACACCT
-GGGCAGGTGAGTCTGGAGGGGGGTGTAGGAGGCAGTGTGACACCTGGGCA
-GGTGAGTCTGGAGGGGAGTGTAGGAGGCCCTGTGACACCTGGGCAGGTGA
-GTCCGGAGGGGGGTGTAGGAGGCAGTGTGACACCTGGGTAGGTGAGTCTG
-GAGGGGGGTGTAGGAGGCCCTGTGACACCTGGGCAGGTGAGTCCGGAGGG
-GGCTGTAGGAGGCCCTGTGACACCTGGGCAGGTGAGTCCAGACCAGGTGG
-GGAAGGCCCTGGGCCTTGGGCCACAGCTCACTCTGACCTTTCTTTGTTAG
-GAAGGGAGTTGCCACTGTGATCTCTCATGGCCCGTGCTTGGGGGTGGGCA
-CAGGGCTGGCATGCCCCCCCTCCTCAGTACCAACAGCTGAACTCTGCAGA
-TTTCACCAGGACACCACAGGCTCCTTAGAACCCACATGCGGGGCCTCTGC
-GGGACAGAGGCTGGCCTGCTTCCTCACTAAGCAACTCAGAGAAAGTTAAA
-GCAAAGGCCATCCTCACATTAAGTATcttatcctagtgctcatgcgtgct
-tgggtttgaatcccatcctcatcgccaAATATGTACATTTAAAAATtata
-aatttagaaagcagactttgcttttcataaagagtatcatctgtgaggtg
-gcttttttgacaggctgagaagcgtagcctctggctgaagtcagagttgg
-tgcttcgaaggaggggagggtgaaacagggctttatgttgaatggttggt
-caaggatacgtatgtaacaggttacaggagttatgaatattcatgatggg
-ggagtcacacacatgcgtggtaagcaaacatgcatattccacgcatccct
-tgtcatttgcaggtggagaagtaacatttaaatacattatattaggccct
-gtaggtcaaaaggcaagcgggacacgatggccctcagggtgcagcctctg
-taaactggccagatccagtcatgtctgcgtctcctaccagaagaaagtta
-ctgcaatcagcctcttgaccagtcaaagctgtagccatggctggcagagc
-aggggagtccatcactgtctgatggttcatgagctggaattgtttgatat
-tgtgtaagtcctgtgattgttgagctgttagagaaaaaggaaaaaataaa
-accttgtggcagttgaaacacagtttgttttttcagcttaggggtacatg
-acctaacccttgtctgacctggccttagactctgttcatagcttggtatc
-ctatggccacaaggctccgttctgctggttgtctgatctctattttaaca
-caaatgctgctccgctgctgtctataccatgaggcatgtctgacctcttg
-tctcattatggctgggaactcagtttttgaggttcctctgggatcccctt
-ggtcaagtcagggcctgttcagtctgttgggggacttaggattttatttt
-tagttCTCAATGTGAAGACATTTTATCCTAATTTTTCATGTCCAGTGCTT
-TAATGAAATAAAGGGCCACAAGGAAGGCGGCTGTGCCCATGCACCTGCAG
-ACACATCCACCAGATGCCCCTGGCAGTTCCTGGAGGAGCCCATGCTTGGC
-GACATTGGGTCTGTGTCAGCCCAGCACGGCCGTCCCTAGCTGGCGCATGG
-AGCAGGCCCACTCTGCATCTGGGCACAGAGGCCATCAGTCCTGACCCACA
-ATTATCTTGATTTCATATTGATGAGGAAGGAGGGCGAAGGCCAGTGGTAT
-ATGAGCAAGAGACGGCACAACAGGCAAACACAGAAAGTCGGTCTGTCCCA
-GGTCCCACTTCCTCCTCCCAGGCTCACTGCATTGGCCTGACCCTGGCTGA
-GCCTGCAAGCCCTGCACCCACCCCTGCCTGTGGATGGAGGGCGTCTGGAT
-AGGCCCGTGTAGTCAGGTCCCCATGGTTGAACTGCACCCAGAGCAGGAGG
-AGGCCAAGTGCACCTGTTACTCTCCACGAGCGGCTGATAGAAGAAAACAC
-CCTGCTTCCCGTCCTGTCTCTGGAGGACCTGCCAGAAACTCGTTAGGAAA
-GCATCGTGCATCAGATGAGCGTGAGTCCATGGGGAGCAGGGCACCGCGGA
-GGAAGCGCAGGCTGGCCACAGCATGGCCCGCGTGAAGAATCAGGAGCTGG
-CAAAGTTCCTAGTGAAGGCAGCCAGAGGGGAGCAGCAGCCACACACATCT
-GGTATTAGACCTTCTCCTCTGGGCCTTTCTCCCCTGCATGGGGAACACGA
-CTCTCTGCTATAAAGAAGACATTTTGTGCTCGTGTTCTGCACCAGCTCAA
-ACTCTGAAGGAGAAAATACTGGGGGAAAGCAAGCCAGCAACCGAAACTCT
-AACAGATTTCAGGAGACAGACGAGTACGGGTGCTCCAGGCAGGGGCAGCC
-CTGGCTGTCTGTTTCTAATCCATGCCAACTTTCAGGCCCTGCCAGCCGCA
-CAGCCTCCGAGCTGGCAACAATCAGCCCTCCCTGCCTCCACCTCCCGCCC
-TACCCAACCCCGGCACACTCTGCTCTTCCTCCAACAGGGAACTGAAGCCC
-CACATCTTTCCAGAGCTTCCCAGACTTGGACACACATCCTGGCCCTCCTC
-TGAAGCCCTGCAAGATGTATCGAGCCTGCCAGCCAAAGATGACCACAGAG
-AGCCTCTCCGTGGGTGtacagactgaatcgtgcctccaaaagatgttaaa
-gtccctacccccagtactgcgactgtggcctgacttggaagtagggtctc
-ctcttcgaagatgatagtgttaaggtggagttatcagggtgggcccccac
-ccatcactggaaatcccatccaaggggagatgtggtcacaggcaggacac
-acacagaggggaggccatgtgacagcccttggccgtccacaagccaagga
-gggaagccccaagagaaagccacctccagaacagcgagaaaatcagtctc
-cgttgtttaagccatgcggtctgtggcctcttgttgtggccaccccggga
-agccaatgcaGCTGGAGTTCAGCATGAGTGAAGTTCACGTGTCCCCATCT
-CTGCGCCTCTCTCCCCCACCCAGGCGCGTCCCCATCTCTGCGCCTCTCTC
-CCCCACCCAGGCGCGTCCCCATCTCTGCGCCTCTCTCCCCCACCCAGGCG
-TGTCCCCATCTCTGTGCCTTTCTCCCCCACCCAGGTGTGTCTCTATCTCT
-GTGCCTCTCTCCCTTACTCGGGCTTAAGTTCCTTGCAGGTAGCAAACCTG
-TGACATTCATGTGTGATTGATCACTTCTGTGTCTAGTACCAGACCCAAGC
-ATGCAGACTCTGATTTCACGGTTTACCTATGGATCATGTAACCCATAATC
-AAGGCTGTGTTCACCGACACGGGCTCATAAGTACCACTCCCCACAGTGGG
-ACTCTTGAGCAAACTCATGGTCTGCCCCCCCACGCCCATGACTCTGGGCC
-TGGATGAGATCATGGGTCACGGAACCAAGGGGGTTTTAGTCTTTGTGGGG
-TGGAGCACCCCGACCGCCCAAAGTGAAGGTGTGACCTGTCTTTAAAATTC
-TGCCTAAAGATTACACAAATTCTACGTAATTAGCAAAAACAGAAGACGGA
-AACATGTAGCCACCACCAGGAACTCTGCTCCTGCAACAGATGAAGTTTCC
-ACGTTCACCTGGGATCTCCCCGCCCCCAGCTCAGGTGAAAATTCACACTC
-TGTAGCCACAGTCACAGCAAAGGAGCAAATATTTTCTGGTTTGGCGTTTG
-TTTTGCATGAGTCCTGTTTTATTTGTCATTAAGCAATGGTTGCCAGTGAC
-AGAGTCCAGCTGACACCAGCTTCAGCCTTGAAGAGACAGGTGTGGGCTCT
-GAAGCAAAGTGCAGCAGATGAAGCTGGGCTCCAGGCCAACTGCCCAGGGT
-CCCTCGCCCTGCTGTGAAGTGGGTCCCACCCCGGCCCCTTCTCCACACAG
-CCGTAACGGTGGCCAGCATCCTCCAGGCCATCTGTCACCGACTCTAACAC
-AGGCAGGGGCCCAAGAGGACTGCATCTCCCTGCAGGTAGCCAGGGAGGGC
-TTCCCTGGAAAGCAGACCCTTGAGAGTGGACAAGGGCCGGTCACAGGTGG
-GAGAAGAGGATGGCACCGTAGGCACGCTGACCATGGAAGCATCCTGGAGG
-GAGCAGGAGGCAGAACCCATGGGATTTGGAAGTCAAATGAGTGGGGAGAG
-AGACGGGTGGACTAAGGCATGTGGTCCGGTATTGATCACAGTGAGCCCGA
-GACACCCTGGAACACCCAGGAGGGCTCCTGCACGTGCCGTCTCCAGATTC
-TGGAGCTGTGGAGGGTGTTGGAGCAGCCGAAGGACCAGGAGGACTCACGG
-AGGACGCGCTGCCCCACCCGCTCCCACTGCCCACTTCTCTTAAGCCCTTC
-AACTGATACAGATGCTGGCCCTTTAACACGCTTTGCAAAACCTTCACCCA
-GCCCATTTGTGCCATTATTTTAGGTGTGAGAGTTGTCTTTGGCCCAAAGG
-TTGAAATGTTTATATAGTTAAATGAATCTTTTCTTCATTACTTGGAAGCT
-TAAAAATGTGTCCATCCTACATAGACACAAAACCTGCAGCATCTTGGAGA
-TTTGTTTTCCAGAACATCGTACACATTATAACCTCACGTCTCGCTAGTTC
-ATTCCCGTAGCACGCGGCGACACctcactccacctcgggtcctgcctctt
-ccagagccttggagtcctctgtgggaccctctgccccggccagcagagcg
-gaggaccaagcggagggagttgggggaGTGAGGCTGAAGGGGGTGAGTGT
-CCCCTACACCCAGACCCCATGGCCTGGGGCTAACAGTAAAAAGTTGGCGA
-CACCATGCTCCCAGCCACCACATCTGCACCCGAGGGAGCGAAGGCCCTGA
-GCCGCAGGGACCATGGAGCAGCCATCTGGCTCTGTGTCTGACCCTAAGGT
-GCACGTGGCCACACCCACAGGTCCCACGGCCCTCACGCTGATGACTCTGG
-AGCTGTTTTGCCGCCGTCACCCCCTGCGCCTCCCTCTTTTGTTAAGTCCT
-CTTATTTGAGATTTAGTCTTAGGAAGCAACATCTTACATTTCTCTATACT
-CGCCTCAGCAGCAAACATGTTTTGGCCTCTGTTGTTACCTTATTTCTGAT
-AACTTAATTTTCTTGACAAGCTTAATAGTATTTGTAAGAAGACACCCCAC
-CCAACCTTCCCAGGCACTGGGAACACACAGAGGAGCTGGAACGCGGTGTT
-CTCTGTCTTCACGATATTCTCCGTCCTTGGCAGCATCTTCATTAGCCTGC
-CTGTGGCCGCACCAAGCGCCAGCACAGCTGGCCTGTCCCCACAGGAGTCC
-CCGTGTGACTGCACAACCCCATCTGCCCGGTCACCGTCGCACCCCGCTCA
-GCGTGACATTTAACGAGGTATGTAGGGTCAGGCAGGTTAAACGTGAGAAA
-ACTAATTTGTATAACGGCAAGCAGCAACTATAGGCACACACGTGCTTAAA
-AGATGTCTTCTACTGTATTAAGTTAACAGATTTTCATAATCACATAGAGT
-GGAGCAAGATGATTGAGTTAAGGGATTTACTTAGGAGCCTGGAAGGGATG
-TTAGTACATCTCTGTGATAATTAAGAGACTGCTAATCTCTTAACCTCTGC
-AATAAGATATGCTTCATTATTCTTTAAATTGTAGCTGACACATAGTATAC
-CTGAAGCACCAATTTAATTCCTTTCTTCCTCTTTTTTTAATTTGGTCTCT
-CCCCCCAGCCATGAGGTACCCACGCAAGCAGGAGCAGTGATTTACCTGCC
-AGCCTTTCGCTGGTGCGAAGAACATTTCATTTTGCTAACGATATTTGCTG
-TTTGATAGAGCTCCTCAAGGTAAACTTCTCAAAACACCAAGTCCTTATAA
-TCCTCAACTTATCTTCCAGACAGAAGCCAGGGGTAATTGTCTGGCTTCGT
-GGCAGTTTTCCAGCCCTGTGTATTGCTGTTACCAAATTACAGGAACCAAA
-TGGACTTCTAAAGAAAATGGTGATGACGGCCCCCAGTGCACAGCAACATC
-AACCCGGCGCTGGGCGTTCGCGGCATCAATGGAGCTGCACAGCCCTGAGG
-AGCTGCCAGACAGGGCCGGGGCCACAGGGACTGCAGGGCAAAAGCTTTGC
-AGGCTCAATCTTCCTTTGGTTTAAATTTTCGTCCTCATTTTTTGCTGTCA
-TGATTTGATATGCACCTTCCAAAGGACCAAAGAATGCCTGTGCCAAAGTG
-AGGGGAAGTGGGATAGGACACTCAGGCCTGCATGTGAGGTTTTCCCAGTG
-TTTGTAAAGAATGGAATTGAGGTCTGGCCCTTTAAGGAAAAGACCCTGAG
-GGGGATTTTGAGCAGAGACCAGCTCAGACACAGGTGGCCAGGGAGCCCCA
-GGAGGGTGGGCAGAGGCTGAGGGAGCCCCAGGAGGGTAGGCAGGTGCCGT
-TGGAGCCCCGGAAGTGTGGACAGGGGCAAAGGGCGCCCCCGGGAGGGTAG
-GCAGGGGCTGAGGGTAGGCAGGGGCCGAGGGAGCCCCCGGGAGGATGGGC
-AAGGGGCTGAGGGAATCCCCAGAGGTTGAGCAGGGGCCTTGGGAACCCCA
-GAAAGGTGGGCAGGGGGCTGAGGGAATCCCCGGAGGTTGAGCAGGGCCCA
-TGGGGGCCCCGGGAGGCTGGGCAGGGGCCAAGGGAGCCCCGAGAGTAGGG
-ACGGGACCGAGCGAGCCCCAGGAGAGGGACAAGGGCCATGGCAGCAGGAG
-CATCCTTCAGGTTGGGAACAAGACCGCAGCCTCAGGAAGCCAGGCCGGGG
-CAGTGAACAACTGCGTGATTGGGAGTTTGAGCCTAATTACAGAACTGGAG
-ACGGGAGAAGGCTACAAGGAGGCTAAGGGGTTTTCCTGTTAGGTTTCTAC
-AAATCCAAAAAAAGTCATCTTAGCATAAAGATTCCTGAGTTTACAGATTA
-AGTCAGAGGAAGAACAGGACTGGGTCATCATGAGACTCTTGGATTAGTTT
-GCAGGAAACTGTATCTGCTTGCAAATGGGCAAACAAAATACAAGAACAAA
-AATCATACTGTACTAACCTAAGAATCTGGACACATCTACCACAGACTCCA
-TATTTCTGAGAATCTAGTAAAAGAAAAGTTTCTTTATAGAAAGATGGTCA
-CTACGTCTTTTTAATGCCTGGCGGAAGCCCTCAGTGCCCCCTGCGGACGC
-AAGGAGGAAACCCCAGGCCATCCCTTTGTGAGTGAGAAAGTGGTTAAAAC
-ATGGCCTGGAAGACCAGGCTATAGGGAGACgtcaaagaaaaccagagctg
-ggcagtagtcgaagcagtaaaagcagattttactcagtccttcctgaata
-gggggagagagaccggattcagctctgaagacagcaggaataaggggatc
-acagccaaggagcagcgtgggggcaggggacgggaaattaccaagacaaa
-acaccgcgctcagagggttctggtgaaaccaacctaacaggattcttgct
-gaagtgagggtatcacccggggacggcggCGTCTCCTGACCAGTTATCTA
-GGTGGgggttcttgccaaaagcggacaaggcagagacaaccacagaagtc
-caaaagttgaggtctcattgaaaagttcaggggggctgcgtggagtttct
-caaggagagaatctctgtcaGGAATCAAATCCCTGGACTCACAGTTAGCA
-AGTGTTTCTACAGCAGGCTCCACGAGCGGGGCCTCCTCTTCACTGCAGAG
-TCCCCGCCGTGATGGCCTTTATGCTCCTGCTAGCAAGGACATTAACAGGG
-TGGGAGGCGAGGGGAGACCTCAGTGCTGGTTTCCATGCGGAGGCAGAGGC
-AGCTCCTTGGTGACAGGATGTTAAGTAAAGACATTCCTGAAGAAGACTTC
-TAACAGAGTAAACACTGGGGCAGATGAGAGAGAAGTGTGAGTTTAATGTC
-TGGTTCTCATGTAAGATATTTTTAAAATCCCTTTGATCTAAACTTTTAAA
-AGATACTTTTCCCTGGATCTACAGGGCCATCGGTTTCTTCTTTCAGTTCT
-ATGGCGTTTCCTTTAATAAGCATTTATTACCTTTTAAATAAAAACAATCA
-GTTATATACTTTAGGTCAGACCAAAATGTTTACATGCCATAATTCGTATC
-ATTTCACAATTAAATAGGATTAAAAATGGCCCAATTATCAGATTCTGACC
-AGATGATCCTTCCCCCTGCGGCCCCAGCCTATCATTTCATAATAGGATTA
-AAAATGACCCAATTagcagggcacagtggctcacgtctgtaatatcagca
-ctttgggaggccgaggcgggtggatcacttgaggtcaggagttcgagacc
-agcctgaccaatatggagaagccccatctctactaaaaatacaaaatgag
-ctgggcatggtggtgcactcctgtaatcccagctactcaggaggctgagg
-caggagaatcgcttgaacccgggaggaggaggttgcggtgagcagagatt
-gcgccgttgcactccagcccggccaacaagagcaaaactccgtctcaaaa
-aaataaaaataaataaaaaataaaaTAAAATGAAAATGAGATTCTGACAG
-ATGACCCCTTCCCCCCCTGCCCCATCAGTCAGAAGGTCTGGGGAGAGGAA
-ACAGAATAGAGGGTGGTATGAAAAGAGAACAGCCAAGCACGTGAGAAAAG
-GAatgaaatatatcagcccacagatttaagaaattcagtcaatctcaaac
-tcgattaacatacagaaaactaatgtttatttccatcataataaaactgc
-tgaaaacaaaaggaaatcagtacaatcttaaaaacagaaaaagaaccagc
-ttgggcaatgtagtgagaccctgtctctcctgaaaaaaaaaatttttttt
-aattagccaggcatggtggcgcacgcctgtgatcccagctactcgtggaa
-gaggaatcacttgagcctggaaagtcaagaccacagtgacccatggtggc
-gccatggcactccagcctgcctgacacagctgagaccctgtctcaaaaca
-caagcaaacaaacaaTACGGTTCACAAAGGCGACAAAAAGGCTTCTCAAA
-AACTTACCAGGTGAATATAAAGTTGATCAATTCTTATTTATATTCACTTA
-TAAGGTGAATACAAATTTGACCAATTCTTATCTGAAATATTAAAATGAGA
-CAGAAATATCCTTAGACCAGCTAAAAATTTGTGATATTATCAAAAACAAG
-CAAACACAGAAGACAACTGAATCGACGTGGAACCTCTGACGGAGCCGGAA
-TTGCTCTGTCATGTGAGCAATGTAAATTTGATAAATATAGATTTTAGTTA
-AATATACCATTAGGCAAATTGATAATTAAGCCAATTAGTTTTAGGTGATT
-TGACAGTTAGTGATTTGGCTCCAAGTGATCTGGCTTAATCCCAGCAGGAG
-GAGATCCAGAAAGACAGGCTGGGAGGTTATGGAAGACAAAGGTGAGGAGG
-GCCCTTCTCAGGGGGTTCTGACAGTTGCACCCCCACGGGGCTGAGGAGAA
-GAGTTGGGGCCTTTCTCCAGGTGACTGTGGTATTGAGATCCTGCAGTCAG
-GCAGCACAGAGTCTGGACAAGCAACAGAGAATGCAGAGGACTTGCCATTC
-CTCCTGCCCCCTACCCTCCATCATGATGTGATAGCTGGACCCACCAAATG
-GAGCCCCAGCACTGCCAGCTCTTCAGAACTCCAACACCATGGGACCCCTA
-CAAGCCACCCTGGGTATGGTGCCGCCCTCTCATGACTGGCTAAGCCAGCT
-TTCTCCCAGGGCAGCAAAACGAGGACACTATCCCCACCCTGCTCAATTCT
-GTGTTTAAGTCCTTGGACAATTGAGGGTTGACGGAGACACATCCCAGTTC
-ATCTTCTCTTCGTCTCCATCATTAGCTTCGgtatgtgcctgccgggactc
-cagtgacaaagcaccacaggccgggtggcttaacagcagccattcatttt
-cttacagttttggaggccagaaatccaagatgaaggtgttggcagggctg
-gtttctcccgaggcctctctccttggcttctcactgtgtcttcactctgc
-cttttccccagacaagagccccactggtgtctcttcctcttcatgtaaag
-acatcagtcccatcagatcagagcccagccctagtgaccttatttaacct
-caattatctcctacagagcccaaccttagtgacattatttatgcttagtg
-accttaatatgcttcagcatattaacctgggaaggaacacaattcaccct
-ctagcaACTTCCCACACCTGCTGTCCTTCCAGTCTCTGCAGAGGAAATCT
-CCATCCTTTCACCAGGTAGTCCCAGCCTCCAATCCTGGCACACCCACAAA
-ATGAAGAAGAGACCTGCCAAGGGAGAAACTTAGAAATGGAAAAGAAAACA
-GAACTGGACTGTATAAAATTCAGTGGTGTGTGTACCTCTTAATAGCACTC
-TGGCTAGCAATTTTCAACTATGTTTCCTAAGATTAAAACCATCATTTGGA
-ATGGATCCCATTCCCAATCTAATGTAAAACAAATACCGATAAAACGCCTG
-GTGAGATAAAGTAGATTATCTTGATTCCAACGGCAACTGCAACTGCTTAT
-GGTCCTTTCAAACACACTCCCCTCGCGAACACACATTATCTCTCTGACCT
-TCATCCTCTTGTTTACTGATGGCAGTTGGAAGATGACCAGTTGGAGTTAA
-TTTTCCATTTTTAATTTGCTTGTCAAGTTTTATGCCATTCTGTCAGTAAA
-ATACTCCAATATTGCTAAAATAAAACCTACTGAAACTGTGATTGCCTAAA
-TCAGACACTAAAGTAAGGCCTTCGGGTTTTACGATACAGTAAAATGCAAA
-TTGGGACTCGTTTATGCAATGAAGTGAATGTTTCCCTACTCTTCCTCTGG
-AAGAAAGAGCCGGCCCCCATCTGCGGGCTGCCCTCAGCCTGGCATCCTGA
-CCTCCAGCCACCTCAAGCATAGCAGAACTACCGTCTGTATTTTAGGATGT
-TGGTGGTGGGCTGCTGTCTACCCCAGCCCAGCGGTGAGAAAGCGCAGGAG
-GACCACAGAGCCACGCTGGATAAACAAAGATGTTCCTCTGGGTCTCCCGG
-GTGCCTTCCTTCCTGCTGCTTTCCCTCCTGCATCAGAGAGGAGCTCAATG
-CTAAATGTTTATGGGCTTCTCACACTTCATTTGATGGAACTAGGAACTTC
-ATGATGGGCCTCTGATGGGCCAAGGGAATTCTAGCTTATTTGAGTTTGGG
-GCTTATATAAGCCATTATGTAAGTCACCAGCTCATGTCCTGTAGAAACTG
-CACGTTTTCCCCAGGCTGCCTTCAGCTTCACAGACAAAGTCAGGGTAGAA
-ACAGGGTCTGAGGGAAATTCACGAAAAGCCACGATAGTGGTCTGCTGGGT
-GAGGAGTCAGACGCGGAGTAATGGGGCCATCACAGGAGCGTCAGAGTTTC
-CTGTTTGCTCCCCACTCCTGGTGGAAGCCGGCTCCAGTGGAGGATCAACG
-GCACCTGCAGCTGCAGGTTCTTGGAGAGCACTCTTAGGTGGCACCGGGTC
-TCACATCTGCCCTCGCACGTGTGCAGACGCTCTGCCTGGGCCAGGAATGG
-CCTGGGCCGGCCCCTCCAGGCCAGCTGCCTCTCCACTCATTCAGAGTGTC
-TTCCCTCCTGATGGAAGTCATGCATTTACTGTTACAGCAGATTTAGCAGT
-CAGAACAGTCCACCACGCCGCCCTTCATCCCACTCCTCCGAGATGACCTC
-CGTATAGGGTCAGGAGCCCGGCCGCTTCCTCCCGGCTCCTTAGCCCCGAA
-CCCGGCCTCGCTCCTCAGCTGCGCACTTGGGGAGCGAATGCGCAGTCCCT
-GGGCGGCTGCAGTCCACCCAGGTCACAGGCTGACGCGCGATTCTTAGGGG
-TGAGAAGGGGGTGACTGGGGCAGCGGAGAAAGCGGAGACAGAGACAGGGT
-GTGCCCAGGGCGCGGGCACCGGGAGGTCCAGCCTGCGAGGCACGTGGCCT
-GCCCAGCTGCGGACGGGCGCGGCCCCACCACAGCCCACAGCCAAGTCCGC
-CTCACCTGCAGCTCCCGCGCGGAGCAGCCAGATCCATGGCGGCCCTGGGG
-GTGTGGAGTGGAGAGCAGGCCGCTGCCTCCCGAGGGCCCCGGGCGGTGAG
-TACGCACCCACGGAGCCCTCGGGGGCAATCACCGCAGCCTCCTCCTTGTC
-CTCTCCGCGGGCTCCCGGCCCAGCCCCTAAGGCCGCCAAGCCTGAGGCCT
-GGCTGCCCAGCGAGGGGAGGGCGGCTCCTGGGCACCTTCTTCCCGTCGTC
-CCTCGCGGCTGCACGCGACGACTCTAGCCCCACCCCCTTCCCACCATCTT
-TTCTGCTCGCGCTGGGACTTCCGCTCAGGGCCTCAGACGCCGGGACCTGC
-TGTTCACGCCGGGGCGGGCCGCTGGCTGTGTCCGCCTGAGCTGAGGTCTA
-TGGCCCAGAGGGTTGCTGACCCCGCCATCCTCCCTGTGTCCAGCCCACTG
-TCTGCTGCCCTGTGTCCCCACCCGTCCTGACCCCTAGGCTGCCAGGTGGG
-GACATGGCCATGGTGTCATTGCATCCCCCTGCTGACCCCGCCTGGGCCCT
-GACCTTGACCCTGACCTCCTAGAGGCAGTCACAGGGAGAGGGCTGCAGGG
-CTGGTGGTAGTGGTGCCATCCTGGCCCCCTTCATGACCCTGCCTGGCCGC
-TAATGCTGACCCTGACCCCCGCCCCCCAGGCTGCTGGGCTCACGGTCCTC
-ACGTCATCAGCTTCTGTCACGGCCCACCTGCCCCACCACCCTCTCCCCAT
-GACTGCCACCAGGAGGCCACCCTCATGGGGCCATCAGCCCCTCCAGCAGC
-TCAGTCCCCGAAGCCTGCCCCAGGCACCCGATTGCTTTCCTGCTGGCCTC
-TCTCTAGCTTTAGGCCCCAAGAGGCCCAGGCCAAGCGCGGTTTATTACAA
-AATCCCTGGCAGTGTAGCTGGTACGATTTTATTTATTGATTGGAGGAATG
-AATGAGCTGGTGAATCCAGCACTGTTTATAAAAACGAGGTGTAGGGAAAA
-GCTTAAGTGTCTAACCATCAAAGAGTGAAACAGAATGCGATGGAGTCTTT
-AAAAAGTTACATTGAAAGTTTTTTTAATAGTTGTGGAAAATGCTCATTAT
-AAAATGTTAGGTTTAAATGTCATGTAGTCTATGACAAACATGTCTCAGGT
-TTCATGCAACAGAAACAGCTCTGGGCAGCACTGTCATGAAAGACCAGAGG
-GTACTGTTCTGTGACCTTTGCAGAGAACGGTGCCCAGCACTCTGTGCCCA
-GTCAATGTTGGGTTTATTTTAGCACTAATTATAAAAATGGAGGACTTTTT
-TCTATACATATGCTTTGACATTTTTCTCCAGAATTCTCTTCATTTGTTTT
-ACTTAACAGtataaaatatttttattaaaaataatttttttaaGGATCTC
-GCCGGATCTTAAGAACATAAACCCAGGCCTTAGTAAACGTATCTCTCACA
-CTCTGCAAGGTTTGGGGTCCCCTGTGGTAGCCTCCTTGTCATAAGACCTT
-GAGTAGGTCCCGTGAGCTCACCCTCAGGAAAGAGGTCACAGAGGAGATGA
-AAAGGCTAGGGGGAAGCAAGCCCTGGCTGCTCTGCAGAAGGAAACACGAG
-GTTCACTCTATGATGCTTAGGTGAGCAGGCAAACTCATGGGCATGACACG
-GAGGGCTCTACTCAATACGCACCAGCATTTTCAAAAGAGAAAGGGATGTA
-GTTTAGCAATGACAGCCTGCTCTGAAGAGACATCAGCAAAGTGGCAGCAA
-CCGGATTCTGTAGATGAAAACCCTGCCTTGGGTTGGAGCCTGAGCTGGAC
-AATTGTCCCCTAttaggatgcttctaccaatgaggaacaaacaatgcaga
-ctcataatggcctgaacaataaggaaagtgtgtccattagattttattgt
-gtaacaaaccatcccaaaacttagtggcttaaaataaccacaatttatca
-tttctcgtgaatccaggtttcctaggtgaatcttcttgcctgggctcagg
-tatgtggctgtgtttagctggcaggttggctgggaactgttctttgagga
-tgaaagacccatggagaggaaggttctcagccagcagaaccttctcctca
-atgggtctttcatcctcagagaagctagataagacttctttatggaagca
-tctaagacagcaggagtaggggccttttaaggccaaggctcagaaccata
-cagtgttattcccaccacattctaggagtcaaagcaagtcgccagctgag
-atttgagggtggggagaagaccccaattcttgataggaggagcagcaaag
-aatatatgaccgtatttaatctaccacaGaaagtcagcatctcaaaagac
-aggaaattcagaagtaaggtgtaaggtggatttccggtggctgatcaagc
-agtgcaaggatgcgaaccaaggtccaggtcctctcctgtcctctgcatct
-tccatgtgggtttcatcctcaggctgggagaaagatagccttaacagttc
-caggcatcacatccagatgcaaaacattcagaaattcaggaaggactgtc
-tcttcttgtagatatctcctaggagtgacgaaacttctctgaatccctag
-agtggagctcctgccatatctcaccagtcagagctaggtcacatgcccgt
-ttctccccattggcaaggggaactagagtcacttggatcattgcacccca
-tcgctgcaccgagctgcgaggttggcttcccctgaggcactggctgtgtg
-gatagctaaacaaagtcaggatccgttggaaaggagggtgcgggaatgga
-aactcagtgggagggtaaccagcagcgtccaccTGTATGAACCTTTATTG
-GGAGCTTTTGTTTAATCCCACGTGAGCAAAATCACACCATTGGCTCAGGC
-TCTCGACCTTACAGGCAGAAGATAAGATCTGTAGGGATAGTTCAAATCAG
-ATGGACATTGTAATCTTCCAAATAAACGCCACACGTATCTGAGAGCGAAA
-AGTTCTGATTTTCCTGCTCAGATCCCCATTTAGCTTCAAGAGTTGTAAAA
-CGTGATTTAATCTGACAGCCTCTACCATCTCCAGCTCTGAGAATGCCCCA
-GGGCGCTGGCCTGCCTTCCAACATTATCTGTGATTGATGCTGAGATAATT
-GTCTCCCCAGTCACATTTCGGCAACAGAGTGAAATGATTTGCAGTGTGGA
-GGCCAAGGTTCTTTTGGCTCAAATTGTGGCATGTTGGAGACCCGTCATCA
-ACATGGCTGTAGCTATGAGTGTGAACGTGGAGCTCGGTCACCACACAGTC
-ACCTTCACGTTAGCAAGAAAGCAGGTTTCAATCATGGAACCAACAAGAGG
-TATTTTCAagttttgtggttcataaacctcagggtagagcacaatggatg
-cagatcaaccaagatacggtgcccaaaagaactggaaacacgtccacaca
-aaactggcacgccaatgttcctagcagcacccttcacaacaaacagctaa
-cagatggaaacaactcaggtacacatccaaggatggatggacagcaaaat
-gtcacaaattcatacagtagcatcttatcagcagtaaaaaggaatgaatt
-ggtgaggcaatgcacaccacacatgaacctcaaaaaattatgcgaaataa
-aagaagccagtcaccaaaggtcacatactctgtgattccattcatatgaa
-atgtccagaacaaagacatttatggagacagaaagtagcttactgttttc
-ctagagctgagactgggaacctggggtgaggtagagtagggagagtgatt
-gctaaagggcatggggcttctttccagagtgatgaacataccctaaagtt
-tacctgtggtgagagttgcacgtatccgtgaataaactgaaaatgattga
-ttcatatactttaaaatgttgaattatatggtgtgtgaactacatctcaa
-taaagcttataaaaTAGCAAGGATAggccgggcacagtggctcacgcctg
-taatcccagcactttgggaggccaaggcaggtggattacaaggtcaggag
-atagagaccatcctggctaacacggtgaaaccccgtctctactaaaaaaa
-aatacaaaaaattagccgggcatggtggcaggcgcctgtaatcccagcta
-cttgggaggctgaggcaggagaatggcatgaacccgggagatggagcttg
-cagtgagccgagattacgccactgcactccaacgtggacgacagagcaag
-actctgtctcaaaaaaaaaaaaaaaaTAGCAAGGCTACATCACATCTCAC
-TCCTAGTTACCACTGGATAGATACCCTGTGTCTACCGTGTCAGTTGTGGA
-ATTGTAGGTTCCTTTGGTCCCCCGAAACTCAGGGAGAGATGGTAGGGTCA
-CACTTGGGCACCCAAGTCAGCCTGTCTCCACAGGCAGGGACCCTGGGTCT
-CCACACCCCCCGTAGTGTCAGCTGCAGGGGCCAGCATGGCTGTTCCTGCA
-TGTGTTCTCCACACCCCCCGTAGTGTCAGCTGCAGGGGCCAGCGTGGCTC
-TTCCTGCCTGTGTCCTGCAGGCTCCTCTGCTGGCCCCTCTTTACGGTCTC
-CCTGAGGCCCAGACTGTTGCCAGGGAGGAATCATCCTGGAGATGGACGAG
-CGCTGAGGCCTTGCTGCTTGCATTTAAGCAGCCTTTACTTTTGTAGACAT
-TGAAAGACCAAAGAGAGGAGGCTTAGGGAGGAATGTTGCCAGAAGCAGCC
-CCTCAGGTTTGTTCCACTTTAATCGGACAGCATCCCTTGGCTGTCCAGAC
-TGACAGTGTTTTATTAGGAAGCGTCTCAGCTTCTCtgtagtagacagact
-ccagggtcacccccatctcctgccccctggccatacccttgtgtacccct
-ccccttcagtgtgggcagcacctggggccaacttctaaggggagcccaca
-gtcaaggtcacgaccccttgtgtatggttatgtgactatgttacatggaa
-ttgagcttccatctttatctctccccttcttctccacctcccacacacat
-acttctttttctggctttaggaaagcaagtcagccaggcaccgtggctca
-tgcctgtaatcccagcactttgggaggctgaggtgggcagctcacttaac
-gtcaggagttccaggccagactgaccaacatggtgaaaccccgcctctac
-taaatacaaaaaattagcccggtgtggtgatgcacacctgtaatcccagc
-tattcaggaggctgaggcaggaaaatcacttgagcctgggaggcggaggt
-tgcagtgagtcaagattgcgcgactacactccagcttgggcaacaagacc
-gaaaactccatctccaaaaaaaaaaaagaaagaaagaaagaatagaaaga
-aagtcatcacgttggagaactcggtactctaagaaacagggtggcctgtg
-agacccaagggcagcctggggctggcagccagcgagaaactgcagccctc
-agtcctacaaccctaaggaaccaaaatttgccagtgacttgagtcagcag
-agaatcagattcctcccagccctgtctctgatgaggccacagctcaggct
-gacatcttgacagcagccttgtcagaccctgagcggggcccagcttaggc
-acccggactcctgatcacagagaatgtgagacggccgggtgtgttgcttg
-aagccactaacttcggggaaacttgtcacgcagcaatagctaacttatCA
-AACTctcattcaggtttgttccaatctcacctttttagtgaagcccgatc
-tcatcgcccatgtgcctctgccatgatccctccttctgatctttacctac
-caagcctgggttgccctctcttcactgtgttcaagcacacgtccccttct
-cagtgaccagggaatgtgggtattgggtctgttcattcctcctcgcagtg
-ctagtctgtgagctccaggagggcgagcaccttctcatttgacgctaacg
-taccccaggtgcctggcagtgcTCCAGGAGAGCGAGAACCTTCTCATTTG
-ATGCTCATGTACCCCAGGTGCCTGCCAGTGCTCCAGGAGGGCTAGGACCT
-TCTCATTTGATGCTCATGTACCCCAGGTGCCTGGCAGTGCTCCAGGAGGG
-CAAGAACCTTCTCATTTGATGCTCATGTACCCCAGGTGCCTGCCAGTGCT
-CCAGGAGGGCGAGAACCTTCTCATTTGATGCTCATGTACCCCAGGTGCCT
-GCCAGTGCTCCAGGAGGGCTAGGACCTTCTCATTTGATGCTCATGTACCC
-CAGGTGCCTGCCAGTGCTCCAGGAGGGCTAGGACCTTCTCATTTGATGCT
-CATATACCCCAGGTGCCTGCCAGTGCTCCAGGAGGGCGAGAACCTTCTCA
-TTTGATGCTCATGTACCCCAGGTGCCTGGCAGTgctccaggagggctagg
-accttctcatttgatgctcatgtaccccaggtgcctgccagtgctggccc
-atcatagatgctcagtcatcagtcgttaagtgaCGCTTGAGTCAACCAGC
-CAGGCCATCGTTTGCCAGAGGAAATCCAGTCCCTGAGATGAAGGTGAGTC
-GTGGCAGAGTGGAAGGCCTCATCCACATTCCTAGTTTCTCCTGTGTTCAC
-ATCCGGCCCCCTGTTCTGGCGGGGGCCCTGCCCTGTGCTCAGAGCAACGC
-GGCCGCCTCCCTCCAGGGTCCCACACCTGCCGCATCACCTCCCCTGGGGT
-GGCACGGGCACACCTGGCTCTGCTCCCACCCTGCTCTGGCCCCCATTCCC
-AGACAAGTCCCGCCGCTGTCAGCGCACCTCTGCATTGGGCACTCCCTTCT
-GTCGGCAGAGTCGTGCTCTGTGGTGCATCTGAAGGTGTCCCGTTTAATTT
-TTTATTTTAACTGCACCTGTCTTGAATGCGTATCTTTCAAAAAAGGGGAA
-AAGGAGCTAGAATTGTagctatcatttctgagcacgccctgggctcccag
-agccctgcacgtttttcttttgttgaaacccccattgccgttctctggag
-tgggcttgtaatctccatttcttaggtgggaaatggagggtgagagggaa
-agtgacacggtttcagagctgcagcatagcagggtggggtcgaatcctgt
-ttaacttcattccaaataccaagctttcaaccactgcCTTCAATATGTGC
-TTTGTAGGCAGCAGCTTCTATTTACTTACGGCCCCACAGCTGCTCTGCAC
-CCTGACCCAGGATATCCCTGCAACCTATGCAAACTGAGTTCCAGCCCTGC
-TGCCAAACCCTCCGTGGCCCTGGGAATGAACCCTCATCCTGGCTGCTCTC
-ACCGTGGCCTGTCCAGATGCAGGAGCTCCTCTCTGAATCTGGGGCTACTG
-GCAGGTGAGTTTCTGCAGGGACCTGCCCCCTGGGCTCTACTGCAGGGGCA
-CAGAGGCACAGCGCCCCCTTCAAGGCACCAAGGTGGCCATTTCTCCCACC
-CACTACAGGGTCCGCTCCCCGGAGGTCTGGGTGGAGGAGGGAGGAGCAGC
-GGCTCTCTGCTGCTTTCTCTGTCTACACACCTTGGGCCTCTCAGTGGGAC
-CGTCCACACAGCCCAGGTGGCTCTGAAAGGGAGGTGGGCACGTCCTCTCT
-CTCCCTCTTCCATCTGTCTCTGTCTCTAGCGCCCTCTACCTGAGCCCTTT
-GCTTTGTGGGTAGTTAAGAGATCGGGAAATCTCAGAGGAGGAGAGGTCGG
-GAGGGGACTCACTCTCTGGACCCCCTGTCTGAGTGCTGGTGGCTGGAGCA
-CAGTCCCCTCTGTTGACGTTGCACTGAGGAGCCCTGAGCACTTTCCCCCT
-TCCCTGCCAGGTGTGCCTTCTCCTCATCTCACCTGGAAAGCACAGAGTTG
-ACGCAGGACTCCGACTGCCCCCTTACAACTCTGCAGGCCACGTGCAGACA
-GCACAGCCATTGGTGAGGGCCGTGTGTCTGAAGATGGAGAGGAGGGGTCT
-TGAGGACGGAGCTCTGGGGGCCAATGGGGCCCTTGCTCTTCCTCCTGAGT
-GGTCCATGGTGCGCAAAGCACCCGATGGACATCATTGCATTGATGCTGAT
-GTTGGAGATGGTGACAGACAAGGCCTCGCATAGGCAGAGGTGGCTTCACA
-GCAGCGGGCAAGTGGGGGACCCTGCCTGATGCAGAGTCGGGGGCGGCTTC
-CTGCAGACCGGGCTTCCTTGGCCCATTCCCCCTCTCCCTTTTTCAAATCT
-CAGAACTCCAGAGCGGTGCTCTCCTCCAAAAAGAGGGCTGCTCCCCTTAA
-GGCACTCGCTCTGACTTTGCCATCCTCCAGCTGACCTGAGTGAGCTCAGC
-AGCCGGAGTTCGTGTGGCTCTGTCACCAGCCAGCATGTCTGAAATCACTG
-CAGAGATGCTGCTGAGGGAACACGGACAGCGTTCTGAGCCGATAGTTTCC
-AAAATGCTGGATTCCGGCCAGTTCTTCTGTTTAATATGCAGCACCTTATA
-ATTAAAGCCATAGACTGCCAGACTGAGTGCCAGCCAGGAAGGGGAAGAGA
-GACACAGTGGGCTTCACCATTTCCCCAGTAGACGTCAGCATGGAGGAAGT
-AGGGGATGCCTCAGGACCCACTTTGGTTGAACCCTGCACTGGGAACTGCT
-AGCCTCCTCTGAGCCTTCCTGGGGCACCTGTTCCACGGCAGGGAGTGAGC
-TGAGGATGGGATTGAGACTCACAGAACAGTGGAGGCCATGGCAGCCTACC
-CAGAAAGCACAAGGCAGGGCTCCAGGTGACGAGAGAGGGAAGGAGAGGCC
-ACTATGGGCCCAGGTCCTGGATGCTTCTGACCCTGGGCCAGAAAGGGCTG
-CTGCGGAGAAGTAGAACTAAAGCCAGATCCTGCAGGGTAAATAGGAGTGG
-CCCAGATCAAGGGCAGAGGGCAGGGTGTGTGCAGAGCGCCAGGCATGGAG
-CCCATGGCCATGGCCGCCTTTTGCCCTTGGATGGTCTGGTCTTCCTCAGG
-TCCTCCTCATCAGCTCTGGGCCCCACCTGCTCCTCCTGTGCCTGGCCAGG
-CCTCTGCCTCTTCTTATCCCCATCTGTGCTTGTCCTAGACAGTTCCTTCA
-TTTGTGATTctaaatattcctcttgagcttctgacactcacaacttctta
-atccacacatgcacttgaatatttaaaggatatctccaatttagatgacc
-aagccacaaacaaagtcccctgcccttgcctgacacgctctccccaagct
-ttctgcgtctccctcagcagccccgtcctctcccagtgctcagcccacag
-tgcatccctctgtcctcacctcacactccacctccaGGCTCAGTCTTTCT
-GAGTCCTTCCACACTTGCTTTTCTGTCTGGTTGGAACTTTCTGTCTCCTA
-CCCCAGTACCATCACACGAGTTTGTCCTCCACATCCTGCAGATCTGGACC
-CTGCATCATCGTCTCCTCAGCAGCACCCTCACTGTCACCCTGGCCAGAGC
-AGCCCCTACGGCGTGCTCTCCCGGGACTTCATCATCCttagcggctgctg
-cacagctcaccatcccaaaactaagaggcttcatgcaacagctcacagtt
-atgtgggccaacaccgaggctgagttcagccgggcggttcttctggcctt
-tgctgtggttcACACGGACTTGCACCCCCAGCTGGTTATCCCCATACACA
-AGGCAGAGAGAAGCAGAGGGATGAGACCTCCAATGTgcaccctgtccttc
-ctctttgctgttggccaaagtggccacaggcccccagtcccaaggggtag
-ggagagtgactccccctgctggcagaggctgcagtatcacctcacggggt
-gcaggctctgggaggggatgaccatcatcactttgcaagcaattgacTGC
-TGAATTCCTAATGTTATCTGGTTTGGCtatttatgtgtctcctctctgtc
-tcttccccagtggatcataagctccatgagggcaaagactacatctCAGT
-CATCGCCCTTGCCTCAGGGAAGATGCTAAAATAATAATAGTTGTCATTAG
-CTGCCTGGGGGCGCTTCAGTTCCGCTCTTCCAGGCTGCCCCAGCTGGGCT
-GGTGCGCAGAAGGGGTTCCCATGGTGCAGGGACCACCCATGTGGATCCAG
-CTCTCAGGGCAAAGAAGCAGGGACCCTCCCTCCTTGCCAGTGCCCAGGCC
-CCAGGGAGCCTCCCTGACGACAGCTTCAGCACAGGCCCTCGGGGATGACT
-CCTGAGCCTCACAGGGTGCCTGCTGTGCTGCCATGAAGCTGCCGCAGTGG
-CCTTCCTCTGCTCACGTCAGGTTTTCGGGAGGAGAAGGCAGAGCTGGCAG
-GCTTGGGTGATCACAGCAATGACAGAGGCCAGGGATGGGCTGTGGCCACC
-CAGCGCCTGCGAGCAGGGTCACCGCTTCCCTTATCCTGCGTCTGAATCTC
-TGATAGGATGGAAAGCTGGGTGCTGAGCCTTCCCTCTGCCTCAGAGGGTC
-CCAGGACACCATGCAGGGATGCACCATGCTCAGTAATGGTGCTCACTGCT
-CTGAAACCTGTGAACAGACCCACATCCAGGATGCACAGCATGGGGGAGCA
-CTGGGTCTCCCCAGGCCACTCTCCCCCTCATAAGCCCTGCTCGTCTGAGT
-GGGACTCTGTGCAGACTTGGGGCTCAGGGTCTCCCAGAAGACAGCCTCAG
-CCGGGCACCAGGCCCCGGGATGCCCGGGAAGAGCACCTGCCATGCATCCT
-GACAGCTGGGGCTCTCACAGCCACCCAGAGGACACCAGCTTGGAGGGCAC
-ATTTGCAACTCTCGGGGGCTCATTCCGTTTCACATAATTTAGTTTACATT
-CAAAATATAAAGTCTCCTTTTGTGTGTATTAAGGGACAGATCTCTGCTTG
-CGCTCACTTGGAGTGAGGACAGAGGCCCTGCTGTGCCCAGCCCCTTCCGC
-CCGAGCTCACTGAGGAGCATGGCCAGACTCACTGGCTGCTGCAATTGCCT
-GCACCACGCAGGCCCCGTCTCCACCTCCCCCGTGAATGTCACAAAGTAAT
-TAGCTTGTGAAGCTATTTCCCTATGACATTATGGATCAAAAGAAAGTGAC
-AGGTAACCAGATGTGCTGACGGGGAGGCCCCTGCCCCGGGGAACTCCTGC
-CTGTCTGCTTCCAGGAGAGGGTAACACAGGAGCCCGGCAGGAGGCTCTGC
-AGACAGGATGGCACCCCACAAGGATACTTTAATTGTGTGCAGCTTGGGGG
-ATGCCAGGGAAACACAGCACACCCACCTTCTTTCATTTATTTTTCTGCCC
-AAGAACCAGTAAACACGGAGTTACTCCTGTACTGAGCTGAGTAAAATAAT
-CTGACTGAGAGGATGCGCTGACCTCAGTTTCGACAACTGCGTTTGGTACC
-AAGCCCTGCAAGGGCTCCACGGAGCAGCTTTGGGGGAGACCTGCCTGCAG
-GAACATGTACCCCACGGAGCAGCTTTGGGGGAGACCTGCCTGCAGGAACA
-TGTACCCCACGGAGCAGCTTTGGGGGAGACCTGCCTGCAGGAACATGTAC
-CCCACGGAGCAGCTTTGGGGGAGACCTGCCTGCAGGAACATGTACCCCAC
-GGAGCAGCTTTGGGGGAGACCTGCCTGCAGGAACATGTACCTCACGGAGC
-AGCTTTGGGGGAGACCTGCCTGCAGGAACATGTACCCCACGGAGCAGCTT
-TGGGGGAGACCTGCCTGCAGGAACATGTACCCCACCCGACACGTCCTGGG
-AGCCTCGTCTGAGGTACAAACAACAGGAAAGCACTGATGCATTTTTCAAA
-ATCCAGCAGGAGGGAACGGTGGGCTGTGGATGCTGGCTGGGAAAGCTCCT
-CGGGCACAGCCCTGTGGGCAGGGAGGGGAGGAGGGCTCAGCCCCCACACA
-GGCCGCCTGGCACCAGGAGTCACAGGCCTCAGCCGTGGGATGTCCCCAGA
-GTTCCAACCGCCACTCTTGCAGAAGCAGCCCAGCAGGGTGAGGGTGGGGC
-CACATGGGGCTCAGCTGCAGGAGGGACGccaggtcctgcacttctcaccc
-gcagtgaccttgggcagggcattcattccttgggagaaatttcctcgttg
-gtgaaatgAAATCACTGCTTGGCTTCAGCCACATAATGTTAGGCACGCTA
-ACTGCAGCCTAGGCAACCTCAGACCCTCAGGAAATCAACAGAGGGGTGCC
-AGCTCCCTGCACAGGTCCCGGCCTAACTCGGGATGCCACTCAGGGCCCTC
-GTCTTCCCATCCTGTGGCTCTGTCTTCACAAGGCCCCAGAGGTGCTCTTG
-TCCCTTCCCTTTCAGTCCCTCAGCCAGTGGGCAGCACACGGCCACCCAAA
-CACAAGAGGCCAGGACCATGGACAGCAGGGAGCACAGAGCCCAGGCCTCC
-GTGATCCTAGGAACACGCAGCATCCGGGAACACGGAAAGTAAAGATGGAG
-ACATGGGGCGGGAGGAAGCTAAGCAGGGACACAGTACCCCCTTGCATCAC
-GGAAATGCCTGGCCAGAGCGACCTGCCGCAAGAAGCCAGCCCAGCTGCTC
-CTGTCCCTGAAATGTCCGGAGAGAGGGCCAGCAGGGAGGCTGGCGCCTGG
-GCCAAGAGAGGGGCTACTCAGTTCTTCCAGAACATTCCAGTGTGGCCCAT
-GGACACCGGCCTTCTGATGTCCAGAGAGGGGCTACTCAGTTCCTCCAGAA
-CATTCCAGTGTGGCCCATGGACGCCGGCCTTCTGGGGTCCATTCTGTCCT
-GTGTCACTTCAGTTGATGAGCTGCTTGAGACCAGAACTGCCCAAATCCAG
-AACCGCCCACTACCTTCTGTGAGGCTGTGGCCAGAAAGCAAGCCAGACTT
-CTGAAGCTGCCTGGGCCTGTCGGGACCCAGGAGAATCTGGCCGTGAAGGA
-GAATAAAGGAGGAAGCCAGGCCTGGCACAGGGACAGGGTGGGGACCCAGT
-GAGATCTCCAAGGAGGAAGCCAGGGCTCCTACACTGGGGCTGCTGTTCTC
-CCGGAGGAACTCCACCCAAGGAGAGTCTGGGATTATCATGAGAGACAGGA
-CCGCATCTGTGCACAGTGCAGTACGTCAGGTGCTGGCCAGGGGCCGGGGG
-CCTCAGGGAGGAGAGTCACCCACCAGGCCAACTAGGACAGACGAAACGTG
-AGTGCCCCTACGGGAGAAAGCAAAGCTGAGACAGCATCGCGAGCTGAGGG
-AGAAACTGACAGACGGCAGTTCACCAAAACCCAAAAACTGGTCATTCTCT
-GGCCTTTAACAAACCAAAGTATATTTCTCCCTCTGAAATAAGAAACACAG
-GACAATTATTAAGTTCCAAAAGTACGTTTCATTTTGGAGGCATGTTGTTG
-GTCCCCTTTGGAATCATGAACCCCTGTGAGCGAAACACCTCCCACCATTG
-ATTCTGACAGGGTACGGCGGGCAGTTCCCGGCCCAGGTAGAGGCAGACAG
-GTGCAGAGCCACAGGGCCACCACTGCAGAGTCTGGCCTTCTCTCCAGCCC
-CGGGTGCACCCACGGTTATCAGGGACCCAGCACTGCCTCCCTGCACGCAC
-ATGGCTCTCCAGGCCACCACTGCAGAGTCCGGCCTTCTCTCCAGCCCCGG
-GTGCACCCACGGTGATCAGGGACCCGGTGCTGCCTCCCTGCACCCACCCG
-GCTCTCCACAGCAGCAAACGGGGTACATTAGGGTGGACGGGATGTGGGGC
-CAGGGCCCTGCTAGGGCTGGGGTGGACTGCGGAGGGCCGGCACCAAGCAG
-TTCCAGGTGTGGAGGGCGGCCCTATGTCAGCTGTTAGACACGCAGGGGAG
-GCACCTCAGATGgctacaggtttgattgtgtccccacaaaaatccatatg
-ttgaagtcctaacccccaacactgccgaagatgaccttatttggaaatag
-agtcatcaaagacatcattggctacattaagataaggttatactagagta
-gggggacacctagcttattatgactggtgtccttataaaaagaaggaaac
-tggacacataaagggagaatgccataggaggacggaggcggagatcgggg
-tgaagcttctctaagccacggagagcggcctagaaccgacccttccctca
-cagccctcagaggacagcctggaaccgacccttccctcacagccctcgga
-ggACGGCCTGGAATCCACTCTTCCCTCACAGCCCTCGGAGGGCAGCCTGG
-AACCGACCCTTCCCTCACAGCCCTCGGAGGGCGGCCTGGAACCGACCCTT
-CCCTCACAGCCctcggagtgcgacctggaaccaacccttccctcacagct
-cttggagggaacccaccctgcccacaccttgacctcggacaggtggcctc
-tagagacctgtgcagtgagttcctgctcccagcctgtggtccttccatgt
-ggaagcaaagcaaactCCTCCAGGCACATTCACCGCCATTGGCATGGGCC
-TCCGACACTGACCAGGGCCTCCCGTCACCTCTGCCCCTGCCCACCACTCC
-CCAGCCCAGGTACCATGCTGTAAAAACAGCCTCAAAAAGAACATGAGGTC
-CACAGCTCCTCCAGGAGACTGGGCCAGCCCCAAGCACATCCAGAGAGGTG
-GCTCCTCTGACTGGAGGCTCACGCCAAAGCCACACAGAGACAGCTGCCAT
-TCTCGCTCGCTCATGCTTCCCCCGAGCCTAAACCCTGACCAGCCAGCTCt
-atacatttacatctttttctggcctcacacactgtctagaatgtccagtc
-gaatgttgagaagtcgtggtcaaagcagaaagcccagctttatccccagt
-cttagtgggtacgtgtttgctgtttcacgttaagatactggctggcagtg
-gggcacagtgactcacgcctgtaatcccagcactttgggaggccaaggtg
-ggtggatcacaaggtcaaaggattgagaccgtcctggccaacatggtgaa
-accccatctctactaaaaatacagaaattagctgcgtgtggtggcggaca
-cctgtagtcccagctactcgggaggctgagaccggagaatcgcttgaacg
-tgggagcagaggttgcagtgagccgagatcgcaccattgcactccagcct
-gggtgacagaacgagactctatctcaaaaaaaaaaaaaaaaaaaaagata
-ctggctggagatttttcacagatgcctctcatcggatccggaaagtttcc
-tactattcccagctttctgatgttttttaaaatcacaaatgggtgtcaac
-atgtgtcaagtcctttttctgcctctattgaggtcatcataagggggtta
-ttttctcctttactttgttactatggagagtgacactgattgattttgaa
-ggttaaaccgagcttactttcctgagagaaaccccacttggtcataatgt
-aataatgtgtagatattactagaattggatctcattggttaatattttat
-taagcatttctgcctctgagttcataagggatattggtctgaagtttgct
-tttcttataatgtgcttctcagttttggtgttaatgttgtactggcctca
-tagagttgggaagtggtcccttcattttctgaaagaggttttataccctg
-gacgttatttcttccttaaatatttgatagaatttacggcaaagtcatct
-gagaccgtacgtttccttatgggtagctttgtgtttgttttttgtaagtc
-caatatttttcgttggtacagggctatttcagttttatgttttttcttgt
-gacagttttgataattgtgtttttcaaagcgtctgtccttcacatctaag
-ttgcaggattaatgaggatagacttgtctgtgacatttcttttaatgcag
-agatgccgtttattcttgttattggaatttttgtttcctcttttatctcc
-ttggtccgtcttaccagtaatttatttaccagatcaatctttaaaaaaac
-aaaaaaaactctcaacattgtcaatttcctttttgtctgatttttatttt
-attgatctcttcttcatcatcttcttttttctactttagtgtaattcctc
-ttctttgtctagctttttaagatggaagtttagatcacttaatttacgcc
-cttcttctcttctaaaacaggcattttagagccatcaattttcctccagc
-cactattttagttgcataccacaaacattgatatgtcctgttttatgaga
-gttcaaaatactttctgattctaccttgatccacaggttatttacaaata
-tgttcattaatttgaaaatgtttggtgattttcttattatagtttattat
-tagcaataattaatttgatgttattgtgctttgaaacttattcagattta
-tttaacagcccatgatacgctcttagtaaatgttctgtatgcacttgaaa
-aacaatgtgtcccccatagttcctggctgtaatgttctcctaacatcaat
-tatactgttgttcaaatcttggatatACGTCCCCCATAGTTCCTGGCTGT
-AATGTTCTCCTAACATCAATTATACTGTTGTTCAAATCTTGGATATACGT
-CCCCCATAGTTCCTGGCTGTAATGTTCTCGTAACATCAATTATACTGTTA
-TTCAAATCTTGGATATACGTCCCCCAGAGTTCCTGGCTGTACTAACATCA
-ATTATACTGTTGTTCAAATCTTGGATATACGTCCCCCATAGTTCCTGGCT
-GTAATGTTCTCCTAACATCAATTATACTGTTGTTCAAATCTTGGATATAC
-GTCCCCCATAGTTCCTGGCTGTAATGTTCTCCTAACATCAATTATACTGT
-TATTCAAATCTTGGATATACGTCCCCCATAGTTCCTGGCTGTAATGTTCT
-CCTAACATCAATTATACTGTTGTTCAAATCTTGGATATACGTCCCCCATA
-GTTCCTGGCTGTAATGTTCTCGTAACATCAATTATACTGTTATTCAAATC
-TTGGATATACGTCCCCCATAGTTCCTGGCTGTACTAACATCAATTATACT
-GTTGTTCAAATCTTGGATATACGTCCCCCATagttcctggctgtaatgtt
-ctcctaatatcaattatactgttgttcaaatcttggatatacttactaag
-ttgtatatcagtatgttctattaattagtaagacaaggtgcagaaatcaa
-ccataattgtagatttgtctatttctacccttagttctgccaatttttgc
-ttcatgtattttaaagttctgttatgaggtacctacacatttagagctat
-tttgtcttgctgatgaattgaccatttatcattatgaaatattactcttt
-atctctggtaatgttccttgtcttaaaggctactttggtattaatgtagt
-ggttccagctttctcatccttaatatttgcatgctgtgtctttggctatc
-cctttacttccaactgttggcatcttcagagttaaaatgcagatcctgag
-aaaatcagacaattgggtcttgttttgttttatagtctgataatctttgc
-cttttgtgtgtaatatttagtccatttatatctactgtgattatttttgg
-ggttggttttaaaagtgtcatcttggcatttgttttctatttgtcttatt
-tggttattttgctctttgcttttcttttcttgcctttttgggattaagta
-catttaatatcccatattatttcctctgttgactttatagccatgcctct
-ttgtgttattattttagttcttcacttagagtCGCTATTCCCAATAAACT
-TTCTCTGATAATTGGGCTATTCAATACAGCCACTTAATAGtgaaatgtga
-ctagtgcaactgaagaattgagctttgaatatttaattttaacttaatat
-ttaattttaatttaattttaacttagctattggctagtcactaccctaCA
-AAgtttcagagattacagcacttttatctgataaaaatctaccttcaaat
-gattttatactacttcataacacaaaatccttgcaacagtaaaattccat
-tttatccctcccaagcttttatgttcatgtaattatatattttaattcta
-caaatgtcataaatctttcaatgcattattgctttttctataaactgtca
-aatattgtttaaaaaaagtgtggcaggacggagagacagaactttaaggg
-agtctttgcatttatttataacttactctttattttgctcttcattcatc
-catgaacattcaaaagcttccatgtgagatcattttccttcagcttaaaa
-aaTGTGCAGATCTGTGGAAATTACACAGAGACCCAGGCAGAAAATGTAGG
-ACTTTTGGAATGACAAAGACATCACATTAAGAAAAGGAGCACTAGCTGTG
-ATCAAAAAGATGTTTTTAAAATTTCctgacactgtaaattgaaaatattt
-actccctttcaggcaaaattaataaataagaccaatatttaggcataaat
-ggttggcttattttattccaagaatataaagaatattttaatctcacaga
-caaaacaaacatgttatttccagagaaagaaaaatctcaaggttatgaat
-taatttctctatggcaattgacaaggcagctacagctaccaagtttgagg
-ATGATATCTGTGGTCTCTGAATTCTTAACCTCACAAAAGTGAATCACCCA
-TGAATGAAATACAGGTGTATGAGCATGCAGACGCCATCTACTCACATACC
-CTCTTAGAAAAATATACTCAAAGACATTTCTATTGATTTCAGACCTCAAG
-TATCTTTGCAAACACTGATGTTAAAAGCGGAATTGGCTTACAGATTATTC
-AAAGTTATAACTATGCGAACGTCAAATACTCTAATCATAAAATATAACAT
-TAAAACCGTAAGTATATAGTAAACCAATATAACCCCGAAATAAGTCCAGA
-ATGTTCAGAATTGACAAAGCATAGTTTGAGTTCTCTAATGTAGTATCAGA
-AGTACCCACGGAGCAGCTCATGTGCATGGTCCAATGAATAGAGTGTAGCG
-TGGTTAACAGGAAAGAAGCGGTGACCAGGAGAGAATCCACAAATTTGTAT
-CCAACCGAGTTACAGAGCATTCCCTCAATACCCAGCACAGTACTAGGTGT
-CATGGAGGTCACAAGAGTCTCAGGGTTTGTGGGTCCAGGGTGTAGAGAGA
-TCCACAGAAAATGTGAATCAGGAAAGTCATTGCAAAGATCcactcaatga
-acaaatgtgtatgaattaaccatgtgtcagggacattgctagccctgggA
-TGCTGGGGCTCtgctgtggtttgaatgctttcttcccacagttcaggggt
-tgaagtgtaatagccagtgtgatggtattacgaagcgagacctttaagag
-ttgattagaccatgaggacttttccctcatgaatgatattaagaccttta
-ttcaagaggcttcgcctgtaatccgagcactttgggaggatgaggtgggc
-agatcacctgaggtcgggagttcaagaccagactgaccaacatggagaaa
-cacctctctactgaaaatacaaaaattagccaggcgtggtggtgcatgcc
-tgtaatcccagctactcggggggctgaggcaggagaattgcttgaagcca
-ggaggtggaggttgcggtgagccaagatcacgccattgcactccagccta
-ggcaacaatagtgaaactccatctcaaaaaaaaaaaaaaaaatgcttcat
-gcagcattcatcccttttgttcttccacccactgccaagtgaggacatag
-catttgtcctctctggaggacacagcaacaagctatcaccttggagacca
-agagagtggccctcaccagacaagtacacctgctggctccttgatcttgg
-acttcccaacctccagaactgtgagaaataaaaccctgttcattgtaaat
-tacccagtctcaggtatttcgttatagcagaacaaaacagactaagacGG
-CTTGATATTCTTACGTGGAAGACAGATTTCTAAGTCAAGTAAACAAAATA
-AAGGTAACCAGTTAGATCTTACtaaggcgatagctgagacagacagacaa
-tatagacgggagggctgctgtgtgtctggtacctagggaaggcttcttgg
-aggtgatgatgtgcacactgagacccaaCAAGAAAACTGCATGAAAAGCC
-CAGGAGAAGATAGTGCAGGAGAGGGCAGGAGGGGCTGAAAGAAGCCAGTG
-TGACTGGAGCACAGCAAGCCAGAGGGAAGACTGCACCCGGTGACATCAGA
-GGTCACGGCAAGAGACAGAGTGTGCCCAGATCATGAAGTGGGAGAGACAG
-GAACAGGGGGTGAGGGCTGTAAAGGAAACACTTCTGAAAGGATGAAATTA
-GCATTTGACACACTTAAGAATTTCTTAACTTAGACAACACCAAATTTGGG
-GACAGAAAAACTTGCAGTTGTTGAAAATGCCTACCTTGATATTAATTCTC
-CATTTACAACTTAAACCTAAAGATGTGAGTTGAAAGGCTATAATATTATT
-AGCTGCTGGGCTGACATCTTGATCCATGATATTTTAGCCCAGAGCAGAAA
-TTTCACTGCTGCATTATAAAGTCTTTAAAAATCGTGTTTCTCATAGATGT
-ACTTGACAGTAGCTGCAAAATTTCCACAAGCATAATTATACTGCCAAGAC
-TCATGGTGAGGGCATTTTAAAGCCAGGAAGTAGTTATTTTCTATGTTGCT
-ATTTTCAATTCTCTTTAAATAAATGTTTACATGTCTCATAAAACCAGCTT
-CCATGCAAATGTTCATGCTTTTAGCTGCAGAAGATATACCACCAGCGACA
-AGGATTCCGGCAGTGGGCGCCAGGTCTCCGCTAGGTCAAAGCCGGGGTGA
-TCTAGTCCACGGTTGAACTCTTACCCTGTTTGCTGTCAGCATCAGTTGTG
-GTCTTGGTAGTGCTTCTGTGCCCAGGAAGTCCAGATATCTGGGGTGGTAT
-GTCCATAATGAGGAAGTGAGTTGCTCAAATGTGTGTCTGGACCAATGAGG
-GGAACTAAAATTCTCCCTCAACATCCTACAAGAGTTGGAAATGTCTTTAA
-TCTGATCTTAAATGGAATTGAAATTTATTGGGTCTCATTCATGTGGAATT
-GGGAGCCCATTATTTTGAAGTTTGGGGAAGTATTTATGTCTCTCCTCTGT
-GGCCCCTACAGATCTCCAGTTTCCTCAAAGAAATCTGTTTCCTACTGTCC
-ATAATATCATTTCTGGCATCATCACTGTCATCTCCATCACTTTGATTATG
-GTGCcactatcaccatcatcatcatcatcatcatcatcatttctatcata
-atcatcatcatagctcactgccatcaccatcaccaccaccatcaccatta
-tctccaccatcaccgtcatctccactattattccatcatctctatcatca
-ctatgattatcaccacagttgccaccatcatcatcaccatcaccatTATC
-TCCACTATCACCATCATTTCCACTGTTGTTtcatctccatcatcactatg
-attatcaccagttttcaccatcaccatcatcatcatcaccatgtctgcca
-taatcatcatcatcatagttactaccatcaccatcatctccactgttatt
-ccatcatctccatcatcactatgattgtcaccacagttgccatcatcatc
-atcaccatGTCTACCATAATCATCATCATAGTTaccaccatcaccatcac
-caccaccatcaccattatctccaccatcaccatcatctccaccgtttttc
-catcatctccatcatcaccgtatcaccacagttgccatcatcaccaccat
-catcatctccgtcatgcctatcatcatcatcatccccaccatcactgtca
-tcatcaccaccatcactatattatcattaccaccatctctatcattatta
-ccattatcgccatctctatcatgcctatcatcgtcatagtcaccaccact
-accaccatcatcaccccaatcaagattatcatcaccatcaccctcatttc
-caccatcatcatcgccatctccattatcatcactatcaATGCCCTCATAG
-CCTTCCTCTTTCTCACCATTGTATGATGATAATAATAGTAATAATGGCTC
-CTCTTATTAGAGATCTTGCTGGGAGCTTTCTCACATGATATCATTTAACC
-TGCACACAGGGCACAGTTGGGATGCTGGAGAATGAGGATTAGTAGGtgtg
-ttagttcattcttgcattgctataaatatctgagactgggtaatttataa
-gaaaagagatttaattggctcacagtttctacaggctgtacaggaagcat
-agcagtatctgcttgtggggaggcctcagggagctttgactcgtggaaga
-aggtgaagtaggagcaggtgcctcacatggcgaaagcagaaacaaggaag
-agagggggaggagggaggggccacacactttgaaacgaccacacctcata
-tgaacacagagcaaggactcactcagcagcaaggggatggtgctgagcca
-tttgtgagggatccgcccccatgatccaaatgtctcccaccaggcctcac
-ctctccaacactggggattacagttcaacgtgagatttgggcaggggcag
-atatccaaactctatcCGTCGGATAACACGTATGAGGTACCTGGGACACA
-GTAGCCTCAGCTATAAATGCTTTTGTTATAAGTCCCTCAGCCTGGGGAGA
-CTTGGAAGCTAAAATTATGAAGGAAATCAAGCATGCCTTCTGCCAGTTTC
-TCCCTCATTTAAAGCACACACCATTCCCTTGGCTGTCCACTAATTTATTC
-ACTAGTCACGGGCTAGCAGTTACTAAGCGCTAGACACAGTTCTGCCGGAC
-ACTCCTGCCCACCCCCGTTTTGTATGTTTGCTCCCCCAGCAAGAAGCTTC
-AAGCTGGAGGGCATCTTAAAGTTCAGCTCTCCCAACTCAGTTTTGCCAAA
-GCTGAAAAATGTGGGGACACGGGAACATGAGCCATCTCTGGCAGAGACAG
-CCCAGCACACAAGACTGCTCACCAACCCCCAGCTGTGTGTGGTCTCCCCC
-TGGCTCCAGAGTCCCACCTCCATGGAGGTCCCTCAGGGTCTCAGTCATCA
-TCTGGCTTCTCTTCAGTTCAACCCCACAGATTGATCGGGCACCGTTGAGA
-GCAACATGCATGCCAAGTTCCGTCAGAGGTAGAGGGTAAGAGATGCAAGG
-TACGGTCCTGCCCTGAGGACTTTTATAATTTGGTTGGTGAAACAAGACAT
-CCCTGCATGAAAATTTAACCACCACAAGAGAACCACAGGAGAAGCCACAG
-GGCAGGCTGTGAATTTGTGCTGGGCGGTGGCAGCATCCACAGCCACCATG
-TGACAGTGACCCTGGGTAAATTGTCATTTATCCTGGCCCCGATTCAGGAG
-CCCACCAACTCACTTCCTAGCAAGCCCCCCTCGCCCTGTCACTGCCCCTA
-CATGCGGGCCACACACCGCTCTCCTTTCTTGTTTCACTCGGGGACCCGAG
-ATTCTTAACGCCAGGCTCCGTCTTCACCATGGAAGTGCACACGGCGAGGA
-AGTGAGAGAAGATGGTGGCACTCGGAGGGGCTGGGCAGGCGCGATCCTCC
-CAGGCCCTGTCCCTCAGCATCATCCATGGGACCACCTCCCCTGTTTCTCC
-TGCTGCCTGCCCAGAGTGGTGAAGACCCCATGTGAACAAGGAGCAAGTCG
-GATGAGGACACACTGGTGGGGGGCGGGGACAGTGGCCCCGGGAAGTCCTA
-ACCCCACAGTGGCCTATGTGTGCGAGAGGACAGCACCATAGCCCAGCAGC
-ATCCAGGCCCCTGTACAATGCATGGCCCAACTGTGGAAGCCTGTGGTGAG
-GTCGGGAGGGCATGGCCACCTCTGCACCAGGGCTCCATTTCTCCCAGGTC
-CCCCATGCGCCTGTGTCCCAGCCACCATCAGTGCTGGGATCCCCCTAGGA
-GAGCCCAGGATCCAGGTCCTGCAGCCTGTGGCACGTCCCCTCCAGAGGGA
-AAGCAGGGGCCACAATGGACAAGGTGCCCGGCGCAGAGGCCCGGTCGACG
-CAGCAACTGAGAGTGGCTCTGTGAGCTGTAGGTGGTCTGCAGCGGAGGGT
-CCCTGGGCTGAGAAGCGTCTCTGAGCTGATGCACATGCTGGCAGGGGGAG
-CAAAGCCAGTCCAGTAGGGAACAGGCATACTCTTCACTGCTTCTCGGAGT
-GGGatccatcagacacttattaggcaccaactgtgtatccagtgctactc
-taggcactgaggaCTTGGAGCTGCCCAGGCAGGAACCCCAGCGTTCACAT
-GGGGACAGGCAGGTGACGCTGGTCTCCCTGGGGTAGAGGTAACAGGGCGA
-GGCCCAAGGCCCTCCCTTCCTCCTCTACAGAGGGGTCCTGGGGAGGAGAG
-GTCGGGACCACACAAAGGCCATAACTGCAGATCTGCCCCAGGACAGAAAA
-GCACAAATGCTGGGCAGGAAAATCATTCCTGGTCACAGTGGGGATACCAG
-CCGCCAAGCCACCTCCAAGACAGCCTTCTCATGAGGCCTTGAGGCCACCA
-GGAGCGTCGGAAAAGAGCGTTGAGGTCACTGTGACCAACATGAGCTGATA
-AATGTTCTTCTTCCTTAAATTTTATGGACTACATTCTCCTTTAAGCTCTG
-AGAAATTATTTAAAGTTTCAATAAAAAAATAAGCTCCTGAGGTCAAAAGT
-GAAGCATGGCAAGCTAATAAATTGGGATTGTAAAACTGCCCTGGATCCCC
-AGTGCCGCAGAGAGACATGGCGAGCAGGTGGCGCGGCCAGAACTCATTAT
-GAATGAAACCCTCCACGGAGGAGCCGGGAGTGTGCTGCTGGCTAGCACTT
-CACCCTTATGGCCCTCAGCCCCTACTGAGGCACCTGCTGTGTTGTGGGCA
-CGAAGGCTAGTGAGGCTGCCCGGCTGAGGCAGGGGACCAAGTTCAGAGGA
-GCCCCCAGTGCCTCCCGACCAGCAGCACATGCAGAAGTCACTCACAGGGG
-CCCTGGGTGCACAGCCACACCTGCACGCAGGCATGTGGATGCACTACAGG
-CAAAGGCCTCCCTGTGTCTTTTTTCCTTTGGTGCAAACCCAGCCCTGTAA
-GGAGCTCCCAGGACCCCACATCCCACTGCTGCACGGTGACCCCCGAGTCA
-CCGTGTGCAGCGTCAAGACACACCCCACGCAGATGGCCGCCACCCCTCCC
-TGAGCACTCCAGCCAGTTGTTTGGGGGATAGACGGAGCAATAAAGCAGTT
-TTTGCACAAATAAAAATATACGTCGGCACCTGTGTGTTTTCAAACTCAGA
-CAACCTAGTTTTGGAGGCCTGGGGGAGTGGCTGGCACCACCCACATCCCA
-CGAGCAGTGTGGCCCAGGGGCTGGTCATGAGGGATAACAGACGTGGGGAG
-AAGCCCTGAGCACAGGGTCGCTGGTGCTAATGCCCCAGGCTGGTCATAGT
-CCCGCCCTCTGCAGTGGCAAAGCGTGGGCAGGTGGGTCTGTTGCTCAAGG
-TCCCCGTCTCCTTATCGGTAAACTGCAGGCAATAATGGTAAGCCCTGCTT
-TCCGGGGCTGCAGCCCACACAAGGCATATAAAGCCCGAGCCAGCGCCCAT
-CAGGGGCTGAATGCATGCCAGTTCCCAGGCTCTATTACCAGGAATAAACA
-GCCTAGGAGCCAGTGCCCCTCCAGCAGCTCACGGTGGAGTAGGAGCCGGG
-AAACGCATGTGTGTGATGTGTTCATGTCATTCCATTTTTCTCTGTCCTTA
-TTCTTCCCAAAGAAAAGTAACTGTGCAGCCACAGGCGCCCCTCACCAGTG
-AACTCGCAGGCTCAGTCTCTGAGCCTCGTATGCCTGGCACCATGTTCCCG
-GAGCTTTGCTGGACTCTACTCACCTCCCAAGCCCCTGTGCCTTTGGAGGC
-AGCAGGTGTCAACCATTCAACACTCACGCTCATTTCCAGGCATGCAGAGC
-CTTTGCGGGCCACCTGTTTGGAGTTGGCTAAAAAGGATTCGTGACAAttt
-tttttgttgttttttttaagatagagtctcgctctattgcccaggctgga
-gtccagtggtgcaatctcagctcactgcaacctccacctcccaggttcaa
-gctattctcctgcctcagcctcccaagtagctgggactacaggcatgcac
-caggtaatttttttgcatttttagtagagacagggtttcaccatgttggt
-caggctggtctcgaactcgtgacctcaaatgatccacctgcctcggtctc
-ctaaaatgctgggattataggcgtgagccatcgcacccggccAACAATTT
-GTAATAGTAAATTTTAAAATGTATTTCAATGTGTCATAAGAGTAGCAGCC
-CACAGCACCCTTAGCTGGTTTTACCTTTCCCCAAAGGATGCCTGCAGCTG
-GTTGGACACTGAGCAATTTGAACCGTAGGTAGGATTTTACGGGATTTTCT
-TTTCTATTTCTACTAAACTAGACAAGCCCACTGCAGTGTTTCGGTCCTCA
-GGACGGGGAGGCTGTGTACTGGAGAGCTCTGTCAGATCACGGACACAGTG
-ACAGCGAAATCATGGACACCGACAGCCAGTGTCACTCCACGCCTGATCCT
-TGTCCGGTGCCCAAGGATGGACAAAGACTGTGGCCGTGGAAAGCTGAAGG
-GCTCGGCACAGAGCTGCCTGTTTCCGCCATGGGACCCAAAGCTCACGAGC
-CATCTTCCCACGCCCCTTGCTCTGTCAGCCACATCTCACCAGCCACCAGG
-TTCTGATGCATCTCCCTCTCCCACGCTCAGGCCACTTCCTCCCCGTCCAG
-GCAGCAGCCTGGTTGATGTCACCACTGCGTCCTGGGTTGTGCTGGCAGCC
-TTCTGACCCATCAGGATGGTGATGGGCTGCTTCCCTGGCCTGCCTATGGT
-CCTCATGCTAGTCAGCTTGCACACACCCACCTCTGAGTCTGCACCCTCCT
-GTCTGTTCCCCTCAATGGCTGGAGGCCCCCTCCTTCCCCAGCAGAATGAG
-CCCAGCACTCCCTGCAGCAGTGGGGCCGTACGGCGCCATCCAACTCTGAT
-CCGTGTTCAGATTCCAACAGCCTCAGCCGCAAAGCACACAGAAGCCTGTC
-CTGGGCCCAGGGCAGACTCCCAGTGGACAGGAGAGTTCTGGGCCCCGTGT
-CCCCTTAACCCTGTCCCAGGCCCAGGGCCAACTCCCAGTGGACAGGAGAG
-TTCTGGGCCCTGTGTCCCCCTTAACCCTGTCCCAGGCCCAGGGCCGACTC
-CCAGCGGACAGGAGAGTTCTGGGCCCCGTGTCCCCTTAACCCTGTCCCAG
-GCCCAGGGCCAACTCCCGGCAGACAGGAGAGCTCTGGGCACCACGTCCCC
-TCAACCCTGTGCCTCTGCCCTTCTCGAGGGTTTTGTGCCACAGGCATCGG
-AGTCCTTCCCAGGGCCCAGCTGTCGACTCCATCTGCTTCCGTGCCAGCCT
-GCCGGGGGTCCAGTCATCCACATCAGCGCTCTCTGCAGGATGCGACAACT
-CCCTGCAGCCGCTTCCCTCTGTGTGGCCTTGCAGAGAGGTCACTGCATGG
-GCCACGGCCAAAGAATTTCTCCTCTGTGCAGAGGACATTTGTCTCATGCT
-GAGGGTGCTTCAGACTCTTCTGGGCTTCAAAGAAGCAACGTCCAGGAGCC
-ACAGCTTCCGGCCCTCACCTTCAGCCTGCCTCCCCCTAGAGAACAGCATC
-CTGAGGCCCCGGCTCCTCCTGCACCTCAGCTCTAACTCAGGCCGTGGTGG
-ACCAGGAGAGTTCAGCTTTCCATGCCCGTGAGCACAGCCTTCTGTGCTCA
-AAACCAATCACGTCTCAGCCAAAGCCTGAACTCCTGGGAGACACTGACTC
-TTAGAGCCTATGGGACCTGGTTCCTGGCCAGCTCCCCATGCCAACCCTGC
-AGGCCCCTCCACCCACTGCCCTCTGAACGCCCCATGGGTCCTGAGTCTCT
-CCGGCCCAAACGCTCCCATCCTCCCCTGGAGTGTAAGTTAGTTTTGCTTC
-CAGGTTTTCCTCCCTGAAGTTTTCTGTGACCCCCGACATGTAGGGCTCAG
-GCCGACTTGGCTGGTGTGGTAGACGCAGGCCGGCAGATGCTCACCTGCAC
-AGATGGTTGCCGGGGGACCGTGCAggtctcgccaggctgaaatccaggtg
-ttggccagggctggggctgcatctaaagcttggggtcccctcggaagctc
-gctcggagcactggcggaatttggttccctgtggctacaggaccaaggcc
-ctggcttccggaggccctccctccccacggcatggctgtcGGCCTCTTCC
-AGGCTGGCAGGGGAAGGAAGCGTCTCCAGGGCACTCCCTGCTCATAAGTG
-TTTtcacctgatggggtcaggcccacccaggacgatctgccAGGACTGCA
-GGCTGGAGGTTTCTGACGCGCGGGAACAGCGTGAACGCAAACGCGTGCTG
-TGCACCTGGCCCAGCGGCCCCGCTcagaacaggcagagcaggcagagcag
-gcagGGGGCCAGGAATCAGCCTTGCAGGCCCGAGTGCCCGGGGTCCTGGA
-AAGACGGCAAGAGGGCCTCAGACTCCATCCGCAGGGAGCAGCAGAAACGC
-GTTTGGTGTAGGAAGCGGCATCACAGCCGCAGCGAGGCATCCCTCCAGGG
-CTGCTCTGCAGGGGACGAGGCACCCAGCCCTGCCCCTTAGCCCCCAGGTC
-CCCCATGCAGCCGCTCAGGGCTCCCCACACCACCACGTTTCCGGGAGATG
-CTGTTTGAAAACCTCCTCTGTGGCTACACCCCAACGCCGATCGTGCAATT
-TTCCAAGGGGAGTCAGGGACATCAGGTGCTTACTGAGCACACCTGAGGGC
-CACATCCCCTGCATTTCCTAAGCTCCCACAAGGGACCCCTCACTCGTGCA
-GCCTCTCCGAGCACCCCTGACTCTGGGGAGCAGCGCAGGGTGACCCTCTC
-TCCTGGTGGCTGCTGAAAACTGGGCTTGGCTCAGTGTAACCATGAGGCCC
-AGAGCAGAGGCAGGACAGCCAAACCTCTCTCTGCAAGGGTACGTGGGCCG
-AGATGTTCTGTCTCCCTGCTGCTCGGAGAGCTTCCTCCAAATGCACATGT
-CAGCCGCCTTTGGGAAGCCCCAGCATGGTGGAGTTGCAGGCCTTGGAATG
-ACATCTTGAAATGGGGAATAAGGTCACTAAGGCAGGAATTCCAAGTTCTG
-CTTGGCCTGACTGGCCCCCACACCCCCATGGCCACCACCCCCCCCACCAG
-CCTCTGGCTTCCTGCAAGCACTTGAGCCCTGTGACCAGGAGGACTTCCCG
-CAGCAGAGACCCTCATCCCCTCACACCTCACAGGCCACCCTCCTACCTGC
-CTGCCTCACCCAAGCGTCTATGGAAGCCGCAAAGAGCCGGCCCCTTCCCT
-CCATGTCCCGCAGGCACCCATGCTGAATGCAGTGACATCTGCAGTTCACT
-GACAGTTACCATGATGACGGTGATTTCAAAACCCGCTACTTGAGCTTGTT
-AACCCTTTCCAACAGACCCAGGGAGCTGAGCAGCGAACACGGACGTGGGT
-TCTCAAATCTGAACGGTCAGGACTGCTCTTTCTTCAGTTGCTGGTGGCAA
-AGGAAAAGTGACTCGGGACTTCACACACCCCGGGCTCTGGCCCAAGACCC
-GCCGTGGAGCCACTAGTTCCCAGAACGCCTCCTCGATGCGAAAGCAGGGT
-TTTCACCTCTACAtttttttttttttttgagacggagtcttgctctgtca
-cccaggctggagtgcagtggcacaatctcggctcacggcaagctccacct
-cccgggttcaagccattctcctgcctcagcctccccagtagctgggacta
-caggcgcccaccaccatacctaattttttttttttttttgtatttttagt
-agagacagggtttcaccgtgttagccaggatggtctcaatctcctgacct
-cgtgatccgcctgcctcggcctcccaaagtgctatgattacaggcgtgag
-ccaccgcgcctggctGAAAGCAGGGTTTTTAAAAAGCAGGAGGGTGGATG
-GTGCAGACCCTGACAGGAAGGGACTTAGAAACGCAAACTGCAGGCCCTGG
-AGTGTGCCCGACGCGCAGGCAGCTTGTTTTCACAGGTGCAAAGGTTCACA
-ATCTGCCTCCCACGTAAGCCTAACCCTGCGGGCAAGCGCTGGGCTCCACT
-GGGGACCCCAAGGCAGGTGGCTGAGGTCAGGGGAACAGGGAAGCCCGTGT
-GAATCAGAGGCGCCAGGCCTTCCGATGGAGGCCAGTTTCACGATTGATCC
-AGAGCTGTAGCCCCAGTGGCTCTTCTTGGAGACCCAGGAGAGCATTCTGG
-AACCTCCCTGGGTCATCCCAGATGAAACTCAGGCCAGGAGAATCAAAGAC
-ATTTAAGGCCTGTTCCCCACCGCCGGCCCTTCCTGCCCTCGATACTGCTG
-TCATGTGGGGATGAGTGCCCAGAGGTGAGTGGGGCGGGACTCAGGCCGCA
-AGCTGAGCGCAGTCACACAGGAGGGACACAGTCTGTGTCCCAGGGGCATC
-TTTGAGCCCTCAACCAATGCTGGGACCACCCATCCCCTAAAATCCCACCA
-TGAAGACAATACATACCCTAGTGGCACAAACCACTGAAAATCAGACTCCA
-CCAGCTACAGCCGAAAGCATGTGCTGATTTTCTGCAATTCTTCACTTTTT
-CTTTAGTGTACAGCCTTACTTGGGGGGTGGGGAATGGAAGtaatttttaa
-ttcttaatttataaaatgtatttattaaataatGTTGTGcccatgaaaac
-tgggaaagcaatatgaataggcaacaaagtaaaaaagaaatacaagtggc
-tgataaggtacagaaagattcaaccctacccataactaaagaactaaaca
-tttaaactatgcattctacttaatccattttattggttaagaaaaaaatt
-tcatgaacaaaccctcattttaaaagacatgttacatcaggacatctGTA
-GACACAGGAGGGGCTGTCTCTGGAGAGGGACATTTACTTCCTGTTGAGCT
-ATCCCAGCCCAGGACCCCAGGTCACCAGCTCACAGGGAAGAGCTTTTCCT
-TCCCTTCCCTGGCACCAGCATtgtgatgggtaattgtgtcaacttggctg
-ggccacagtgcccagatatttggtcaagcactaattctggttctcatgtt
-tctgggagggtgctttttggctgagagtaacatttcaatcagtggacttt
-ggggaagcaggtggctctccaaaatgcaggtgggcctcattcaatcagtt
-gaaggtcttaagaaaaccaagatggacctccccaagcaagaaggaattct
-gctagcagaggccctgggactccaactgcagctctccttaggtctccagg
-ctgccacctgccttgcagatttcagactccacaattgtatgaggaaattc
-cttaaaatacatAAATATACatagatggatggaaagatggatggatggat
-ggttgattgggtgggtgggtggatggatggatggatgggtggatggatgg
-gtgggtgaatgggtgggtggatggatggatggttgaatgggtgggtgggt
-ggatggatggatggatggatggttgggtgaatgggtgggtgaatgggtgg
-gtggatgggtggatggatggatggatggatggatggacagatgggtgaat
-gggtggctgggtgggtggatggatggatggatggatgaatggatggattg
-gatggatggatgcatggatgcatggatggatggatggatggatggatgga
-tggatggatggatggatggatagatgAATAAATGATGGTTATCCCTTCCT
-TTGCTGGCTTTCGAGCCTCCGGGAGGGAGCAGTTGGGTGTCTGAGGGGCC
-CAGGTCCTGAGGCAGGAGGCAGAGCAAGCAGACACTGCACCCAGCGTGCT
-GTCGCCTGGCGGTGTGGACCCCTGTGCACTGGTGTGTGCATGGATCACGG
-GGCAGCTCTCTCTGGAGCCCGGTGGGAGGAGCAGGGGCAGGATGTGCTGG
-GCCTTCTGCTGAGAAGGGTGGGTGGTGTTGAGGCAGAAGGAAGAGCTCTG
-TGCCGCTAGCTTGGGACCTGCTAGTGTGTGATTCTGAAAGCCGGAGAGAG
-AGGCCAGGCTCACCTGGGACATGGAGGCAAGGCCCAGGTGTCAGCAAGGC
-CCAGAGTGGGCAGGGAGAGAGCCTCTGCCCATCCATGCAGAGAGTGGGGT
-GGGTGGGCCAGGCCTCCTCGGGAGAGCCCTGTAAGGTGGAGGAGCCCCAG
-GAGCTGGGAGGGGACCCAGGGCCTGGGTAGGGGGGGGCAGCATGTCCAAA
-GGTTACTTTAGAAAGTGGCTCTTgacctggcgtgatggctcacacctata
-atcctagcactttaggaggccgaggcgggcagattgcttgagaccagaag
-ttctagaccagcctgggcaacatagggagacctcatctctacaaacaaaa
-aaaaaattagccgggcgtggtctcacatgcctgtaatcccagctactcag
-gaggctgaggcagaagaatcacttgaacctgggaggtggaggttgcagtg
-agctaagatcatgccactgcactccagcctgggcgacaaaacgaaactcc
-atccaaacgaacaaaaaaaCCCAAAAGTGGCTCTTGGCTTCAGAAGAAGA
-GAGACACCCACAGATTGTCCTGAGCCTTGTCTTTTCCAGGAGTGAAGTGA
-AGGGGACAGAAAACGTCCAAGCATTTTGGGCAGATAAAAAAAAGTCTCTT
-TCTAAGCTCAGCCACAACATCATCATGGACCTTTGCAGAGAAAACTGGAG
-AGTGATGGCTCCCGGAGCACCCGAGACGCTCCCCAGACGCCGGAGCACCC
-ACGGCCAGCGGGTGGACACGGTGTCCACATGGTGCACACTCTTGCCCTTG
-AGCCTGTGGGAGGGAAGCCAGGAAGATATGGACGGAGCAAGGGGAGCACG
-GGAGCCTCGGGGCCTGCGGGGGGCCAGGCAGCAGCTGCCCTCACAGTTGC
-ACGGTACAGTTTGCAGAACACACCCTCCTGCCCTGTGGAAGCTTCCAGGC
-TCCCGGGCAGGTCGCTGAAGGATCCTCTTCCTGGCCCCTGGAGTCCACAG
-GTGCGACATCCCGTCCCGACATGGGTGCCTGCCCCAGCCACTCAGTCGTC
-ACCTGTGAGCACCTGAAAACCAGGCCACAGCCCAGACTCACAAGGAGCCA
-CGGGCCTGGGAGATTTATTAAACATTCGCACGTAATTTTCCATTAACATT
-TCCTATTTTGGCATCTTAAAGAGTGAAAGTTGATTTCGGTTCAACATCCT
-GTGGGGAAATTAGTTCATTTTGCTAACGCATCTTAATAATTACAGTGACA
-TCAAGGTTAATTGCTTAATCTGGATTGCCACAGTGCAGGCCGCCGAATTC
-CCCACGCAATCTGTGCTATAATTAGTACCGGGGCATCCAGATTTAGAAGG
-CTCTTTCACCGGAACAGCGGAATCAGGCAAGGTGATCGATGGATGTGACC
-AAGAGGACACTTCGCGCACAGGTCTGGGGTCGGGCTCTGTGAGGCCATCA
-GCCAGGGAATGTGTGGGGTGAGTGTGTCTCCCCAGACCACAGGAAGTGGC
-CAGCCTGCCCCGTGGGTCTGCTGCCCACGCAGGGTGACCAGTGCAAATGA
-AACTCTCCCAAACTTTCTGCTGCGGGCTCATCTCCCCGCAGCCAGGACAG
-CAATGGCCCGTGCCAGGGGTCCAGGACACCCAGCTGACCACGGCTGCAGC
-CTGCGTGGCAGGGCCCAAGATTGCTGTGAAATGGAGCCTCAGGCAGTGCC
-TCGGAGTCACGTCAAGGACTGTCATGGGATCAGGGCAGAAGGGAGTGCCC
-TGGGAGGGAGTTGGCCAGTGATGGGGATGAACAGCTGCCAGGGGCACCAA
-GACTCCGCTCAGCCAGGCTGTGGTGTAAAGGGGGACTCGGACTCACCTTC
-AGAGGCAAAGGCCTGGATGAAGGTGAACAGAGCAGATTCTGGGGACACGC
-TCATCCCAGAGGCCTGGAAGGTCGTTCTGGGAAGAGCCGGGAGGCGCCTC
-CCCTTGTTCCCGGAAGGTCATCCTGGGAAGAGCCGGGAGGCGCCTCCCCT
-TATTCCCGGAAGGTCGTCCTGGGAAGAGCCTGGAGGCGCCTCCCCTTGTT
-CCCGGAAGGTCATCCTGGGAAGAGCCGGGAGGCGCCTCCCCTTGTGCCCG
-GAAGGTCATCCTGGGAAGAGCCAGGAGGCGCCTCCCCTTGTGCCCAGGGC
-AGGCAACAGATCCGGTTCTCAGGCTGCACACTTGGTGGCCCAAGGAAAAG
-GAAACTCCTGAAATGTTGGCTTAGTCGTTTCCGGGCTAACTCGCTCATCT
-CCGGGTTCAAACAATCCACGTCTGGGGTGAGACGCAGCCTTCAGGTTTGT
-TGCTCATCCCTTCTCCCTCCTGTCACGGGGAAGCATCCCCGGCCCCGCTC
-CTGTCCAGGCAGCAAGGACTGTGCTGAGGGCTGCGCTCTTTCCCCAGGAC
-CAGGCCTGTTGGGGACTCGCCCCCGGGACATCCCGAGGACAGGCAGCACA
-GTGAGGACCCTGAAGCCTCCGGCCACAGCCTCCCTCCATCCCGCCCCACG
-CAGCGCCACGTGCCCCGGGAGCACAGCTAGGGTCGCATTGGGGTTGTTTT
-GGTAAAATGTAACTGTACTTTTAGGTCTGTAATTTCCTTAGAGCTTGAAA
-CAAAAGGAACATTTGGAGTCGGTTTCATTGCCGCGTGCTATTGGTGTCAC
-CCCGCTGCGCATGGCAGAAACGCAGCTGTTCACATGTGCCATCAAAGATC
-TCTGCTCCACTTCATCAGACCCTACCTGGGTCTCATCTTTTCTATCCAAA
-GGCTCCAGAAAGCATGTCTTTCCCCTGCATGAGGAGGGCACAGGATCACA
-CTCACGGCACAGCCCCAGGTTGAGGGGCCACCTGTGGGAGCCCCAGGGGG
-GAGCAGGACAGAGGCCCTTCAAAGAATGATCTTGATACAACTGTGACGAG
-TGGAGACTCGCACAGGCGGCTCCCCCACAGCCTGCCTCCACGTCTCCGAA
-GCCCCTCTCCCCGTCCTCTGACAGGCACCCTCACTCCCACCCACGTTAAC
-CCCAAACCAGAGCTGCAGGGCATCACCCAGCACACGTGTGCGTACCCCAA
-GCCGTTGACTTCAGGTGTCTGAGTCTGTGAATGCCGTCTAAACCATGTGC
-ACACTGCACACTCCTCTCTCCACCCAGCCACAAGTCCCTGAGCCCCGGCC
-ACGTCTGTCTACACAGCCGAGTTTACTCAGTGCCATTGCGTGGTGTGGCC
-ACACAATGATCTCATGCTTATTTTCTGGTCACAGGACACCAAGGCTGTGT
-CCAGCATCTGCTGTCACGAATGGTGCTGCCAAGACCAGCCCCGCACACAC
-CTTCCCGCTCAGACCTCCAAGTCGCCAAACGCACATCTCCAGGACTCGGG
-GGGTCTTCGGACCCCTCATTTCACCAGCTGATGACAACGTGTTTCCCCCT
-GTGGCTGCAGCCACTCCTGTCCCATGGGCAGCGCAGAGCTGTCCTCCTTG
-CTGAGTGTCCGCCGGGCCTACAGTGGGACGATGTTTCCTCGCAGGCTGAC
-CCCGCACTGCCCTGGTCAACTCAGGAGCTGAGGGTCTGCTCGCACGTCCC
-CCCAGGACCCTGGTTCCTGCTCACACGCACCCCCAGGAGCCCAGGCATGG
-TTCCTGTTCTGTCAAACTCCCCGTCGCTCCTTTTCTGCCGGTTTTTCTGC
-TGGTCTGCTTGTCTTTTTCTCTTATGTTTAGGATCCTAAATGTTTTGCAG
-ACTGTGACCCTGGCcctggtgtccaactccctatgggacagctggtcaca
-gcccacttgactcactcctcacccctacacccacggagcctgcacagacg
-tcacagtgacccctcagtcccagcgtgcccccacggagcctgcacagaca
-tcacagtgacccctcagtcccagcgtgcccccacggagcctgtgcctgcc
-tgctccaaaggcaccagatagaactcctggcaggaacctgcctggataac
-gccccaggccccagcaaaggccttggcccacagtccctctctccccacag
-cctgggtaacgccccaggccccagcaaaggccttggcccacagttcctct
-ctccccgcgccctggctgaatgggtcccaacggctctgacggctccccac
-acccctgccctgtgggccatgctgccctctcctctctggctctgtgagtc
-acgcacggcctctgtgattccacgtgctgttctatgctgcgccggctccc
-acgtgcctcacctgactgacaccactgaaccctcctcccagccagcgctc
-tcccagggagtggctgtctagtcttgtgggaataaactggacacaggtcc
-aacaggagcccccagggcatctgcaggataaacaagtgtcctgagagagg
-gacatctggtcacaggttgggcacttgagtatcaggccttctgctaccaa
-agataaagaagaatcccctgagagacagcccgtagacacccactgccccc
-caccctgggccccaccagggcaggactagagtttatagccgctctccaga
-gaggggcctcaagaccaacttgggaacaaatacaGTCAACACGAACCtct
-cgagctgatttttgtaggggtgcaaggtatggatccaggttctttttttt
-gcctacggaattcagtgccatcagcatcactgcagaaaacgccgtccttt
-tttccttgaattgctcttgtacctttgcataaaacaattgaccatccatg
-tatgggcctatatatggactctctgctctaatcaatcgatctgtgtctct
-attcttttaccaataccactacatttcttattgtagttttagagtaagtc
-cgaaaacaggtgatttgactctcccagtagctctccttcacaaaattgac
-tgttggagttctcacgcctttacgtttacatttacattatattacattgt
-tacattacatttgttacgttgtaacattacgttacaatccactcactgat
-ttctacaataactgaaattttaactgggattgtgttaaacgacagataag
-tttcaggaggccaacattttcacaggatcgatcttctaactcattaacat
-ggctcacttcttcacatactgatgtcttcttaattttttcaccagtgttt
-gatagttttcaccttacagatcctacatgtattttgtgagatttagacat
-acgtacccctcttttagtttattgtaaatagtcgtgtatttttacatttt
-tgacttgcaattatgcattgctggtatacagatgtacaagtcatttttat
-aaactgactttgtattttgcaatctttcttaatgaacttatttgtctaag
-accagttatttctgagaatagagataattttgttccttcctttccaaaat
-atagatctttttatttctttccattacatttttcactgctaaaatttcca
-gcaggatgtaggatacttgtggtAtatactagttcattctcacactgctg
-taaagaactacctgagaaatcatggcagaggcaaagagaagtgagcacat
-cttcatttgttggcaagagagaaatatcgaagcagggagagcctcaaacg
-tttaaatcatcagatctcatgagaactcactcactgtcacgagaacagaa
-gggggaaatccgcccccatgatccaatcacctcccacccagtccctcccc
-cagcattggagattccaattcaacatgagatttgggtggggacactgagc
-caagccctatcTGGTacatccttgcctcgttttctatctctaagataagc
-atttattctctcaccgttgtagaccatgataaccaaagattttttataaa
-tcctgttacaggctgaattatgtccccccaaaatccacatattgaaaccc
-taaccctgaatattactgtattaaggttacatgaggttgtaagggtgggg
-ccctgatctaataggactggcgtccttataagaagagggagaggcaaaaa
-agactttctctctctctctctttctacacacacacacacacacacacaca
-cacacacacacacacaaaggaaagaacacgtgaagacacatgaagaagac
-agccacttggccaggcgcagtggtgcacacctgtaaccccagcactttgg
-gaggccaagactggtggatcacgaggtcaggagtttgagaccagcctggc
-caacatggtgaaactccatctgtactaaaaaacacaaaaattagccaagc
-atagtggtgcgtgcctgtagtcccagctacttgggaggctgaggcaggag
-aatcgcttgaacctgggaggcagaggttgcagtgagccaagattgcacca
-ctgcactccagcctggtgatagagcgagactctttctcaaaaaaaaaaaa
-aaaaaaaaaaagaagaagaagaagaagaagaagaagacagccacctacaa
-gccaggaggagggccctcagcagaaaccagccttgtactggagccttgat
-cttggcttacagcctccagaattgtgagaaaatttctgttgtttaatcca
-cccaatctgtggcttctgtcagtctgagcagactaacaccacggccttta
-ttagtttaaggaagtttccttctattcctatttttctgagtgtttggggt
-ttttttttaattataaatgaatatcaaattttctcgaatgcattttcttt
-atgaattgagatgatcatatgcttttcggtatggtaagttacactggtca
-attaatcaatgttgaaccagccttgaattcctgttaaatcctccttagct
-acaatatgtcagcctttATGTTTTTCCCTAGATAGTCAAGCCTAACTGGG
-AGATTacaaacacatcacacaacacattcataccacacatacaccatacc
-cacaccacacacccacacacacaccccacaccacatactcaaacaccaca
-cacaccacatacacatacaccctacacagcacacacacacacacacaaca
-cactcctaccataaacacaccacacacctcctctcacacaccccacacca
-tatactcaaacaccacacacttatcacatacacatacaccatacacagca
-cacacacacacaacacactcctatcatacacacaccacacccccacacac
-acacacaccatatactcaaacaccacacacatcacacatacaccacacac
-atacacaacactcataccacacaaacagcatacacatcacacacacccca
-acacaccacacacCCCACCATGTCCTTGAacaccacacacacatcacact
-cataccacacacaccacacataccacactcccctcccacacacactacac
-catatacacaaacaccacatacacaccatacacacacaacacactcatac
-cacacacatagcatacagaccacactcccccacacataccacaccataca
-ctcaaagaccacacacacatcgcacatacaccatatagcacacacacacc
-atacacacaacacgcaccacatcatatactcaaacaccacacacatcaca
-catacacacaacatgcacacacacatacaggcacacacacacaGGCGCTC
-AGCCAGGCATAAGTTGTGCTGGGCACTTTCCAGGATGCTCACCAGCACCC
-AGTCCTCTCCCGTCTGATGACTCTCCCTTTTCCGAAAATTCCATGGGCTT
-GCCTGGGAGGATAAGGAGGATCGAGAAGCTATTCTTACATTGTAAGCAAA
-CTTTTGGATAACTTAAAAAGAAATTATCTCCTTCCAATGATTGGCCTTGG
-CAAATCAAAAGCACTATGGATTTCAGACTGCTGTACCTGCTTTGACTAAA
-AAATCTTACTTTTGAAAGTCAATGCTGACTTATGGGATGAAGGCTGGCTC
-TGCCTTCCTCTTCCTTACTAGGGGATAGTGTCTGCACAGCAAGCAACATG
-CAACACAGAAATACACTTTAGGATTGGCATGGGGGCAAGATGGAATTCCA
-AGAGAAAACTCACTGCAGGCAGAGGGGGAGATCTCAGTATATGCTTTGGT
-TTTCCAGCCCAAAACTATGTGGGTCATCCACCAATTTATCCACCCATCCA
-TCAATTCACTATTcatccaaccacccacccatccatccatccacctatcc
-atccatacatacatacattcatccacccactcatctattcatccacccac
-ccaactatccatccattcatccacccactcatccctccatcctttaatct
-ctccatccacccatctacccatccatttattcacccatccatcctttcct
-ccatctacccatctacccatccatccgtccacctactcatccctccatcc
-cttaatctctccatccacccatctactcatccatttattcacccatccat
-cctttcctccatctacccatctacccatccatccatacacccattcaccc
-atccgtccttccttcattcatcactccatctatccatgaatccattattc
-atctgtccatccatccacccattcatccatccacccattcatttatccat
-cctttcatacacccataaacccatccctccatctatccatcctccaccca
-cccatccatctacccattcatccagtcatccagtcatccatccaACAGAC
-ACATGCAGAATTACATGCAGACAAAGTACGGCAGTAGGAGAAGGTAGGTA
-CTTATTCATGGAGCCCCTTCTAGGCCTCATTCCTGGGTAGATTCAGTGTA
-AGCCGGATGACTGTCCAGATTCTCACCTGGGTTGAGCCCCCCAGGCAGAC
-ACACCCCCAGGTTTCCTTTGTTTAGAAGGGCAGAGGAAGATGCTGCTGCC
-CTAGGAAAACCGTGTCCTGGCAGCAAGCCCCCAGCTGGGAGTTTTCAGCA
-GCTATTTTGTGAATGGAGATGGACACATAGCCCTGGGGTAGTTGGAGCTT
-TTCCTGGCAGTATCCATGGCAACAGGAAGCACAAACAGAAGCATCATTCT
-ACAGCCAACAAAGAGTTCGTTTTAAAAATCACCATTATCTTTTCAGAGTG
-CTTCTGGAGTCTCCAAAGCAGAAATGACCGCATACATTTCAACAACATCT
-TTGCAATCCTCCCTTTACATGAAGAAAGCAACTGAGAACCTAAAATGACT
-TGCGCATGGAAATTCAAACCTAAATATATCAAGAGTGTTCTTTGCCGAGG
-CCATGGCCTTGTAGAGTTACTGCAACACCGAGATAAAGTAGCCAGTGAGC
-ACCCTACTTCCAGGGCATAGTCTGAAAAGATCTGTTTCAGACTGGAAAAA
-GCCGTGCACCTTCCTCTCTTCGATATGAAAATACGTGACGCGCCCGTGTT
-GCCTCCACTGACATACACCAAGCTCCATGTGGCTGGCAAGATATTACCCA
-CCCGCTACTCCCTGACTGACCCGTGAACACACCTCCACATGCTGCGGCTG
-AATCCCCCTGGTGTGGTTCACCCTTTAGGGAGAAAGGGCCCTGCAGATGG
-GGAGCCAGCCACTCTCTCCTCCAGGACCACTGGGCAGAGGCAGAGCCCCC
-CGCAGAGCACAGCCTCGGCACAGGGTCTTGGCTGCAAGTTTCTTACCTCC
-AGGCAGCATCTAAGGAGAAAGCCTTGGGGGAGCTGATAGAGAAGAAGCTG
-TTGGAGAATGGGAGGCAGGAATGCAAGTGGCCGCCCTGGTCCCGGGCGAT
-GGAAGTGAAAAGCAAGAAGAGCAGGTGAGTGGGGTTGGCCTGGTGGGGCT
-CACGGTGGCCTCTTGACCTGAGGTTCTCGAAGCTCCAGGGACGAAGGACC
-CTGGGACAATACCCCGGCCTTCTGTCTGCAGCCATGCAAACAGCAGGCAC
-CTGCCCATGCCCTGCCGTGCATTGCATCCCCTCTCTCCTGCCCCAAGCAG
-CACAGCCTTAAAAAGCAAATAACCCACACTCGGGGCAGTTTCACCAGGTT
-TCAGGTTCTTTTAGAAAGTGGAATTGCTCCACAGGGCTCTAGTTTTAGGC
-ATAAGCTGGCGCAGCCCCTGTGGCGGCGGACACGGCCCCTCCCCTCCTGG
-GCGGTTCCTGACCATGTCCAGACCCTGGGCCCCACCTTGGCCCTCGCTTG
-GCGCTGGGCATCTGTCTGCTGTAGCCCACAGAGGGCTGCATGCTTCCCAT
-TGGTCATGGATGTTTGCAGCGCACATGTATTTTCTGTTCTCACTTTCTTC
-ACGTCATCTTGCATCCTAACTGTTTGGAGCAGAGAACACTCTCAAAGCCA
-GCAGGGCTCACAGCACCGTCTTGAATACAAGTTAGTTTTTAGTTGAATGT
-AACAAGCAGTGGAGTGTCCAGACTGTTTAAAGGTGACAAGCAGCACAGCC
-GAGACTCCCGGGGACTGTCCCAAAAGAAAGAGAAGAAATGGGAGACAGTA
-AATAGAAAACAAAATAGGGCGAGACCCAAACCATGCACTTCTATTACCAA
-AATACAACTAAAAGGCACACTCTCCCACTTAGAGAGAAAAGATGAACCCA
-CTGAGTGAAATCAGACAGAAAATGTCACCGATGCCATGGGCGAGGGGACG
-TGCCAGGTGGAGGCTCCGGGCAGCTGCGTCAGGGCCccacatggccgctt
-tgccctggggaagtcacctgttctctgtgcctcgatttccacataaggaa
-aacaggagtcacagtaatGACGATCATGTTTATCCATATCATATCACAAC
-TCAGAGGAACCGCAGGGGTGTCACGCGTTAATGTGGGTGAGGTTCCTGGT
-CTGGGGCCTGGAGCCGGCTCTGGAGGCACCTGTGCTGTCGGTGGGGTTCG
-GCCCCTGCGCTGTGGGTGTCAATCACGCCGATATCCTGAGCTGCTGCAGA
-GGCAGCCAGAGCCCAAACCACAGAGGAAACCTGAGGGGCAGAGAGCAAGC
-GGCGGCAACTCAGCGCGGCAGAAACCGACGCGCAGAAAAGCCGGAGCCAC
-CTGGTGTGATGTCAAATGACACCCACGGCAAACTGTGCCAAATGGGGAAA
-GAGACTCTTAGGGTGACATGAGGATCCATTCAAACCAAGGTACAACCACT
-GCAGGTCTTTGTAGGCTGAGACACAACGTGGAGAATCCACAATTAAACCT
-TCAGGAAGTGTGAGGAGCCATGAGGAACCGGCTCTCAGGAGGGAGGGACG
-TAAGGTGTCCCCTCAGCCTGGCAGCTGGAACAAGCTAAAAGTGAACAAGG
-AGAAAATCAAAACACGGGGAAACCGCTCACCTGCGGCACGGAGGAGACGC
-ACTAGAACCTTCCAGTGCAAAAGCCCGGTGTCTGCATCGATTTGCAGTAT
-CCTTAGGACACATAAAACCATGTATCCTACCCATAAAATGAGGAAATGTC
-AATCAATACCTCCGATAAACATCTACAAACGTGAAACCCTATTGGCAGCT
-TTCTCCGAGCAGGATTTAGCAACACACAAAATTGTACCACCTTAGAGCTT
-CTCTCTGGAGCTTCTTAAAATGCAAGGATGCTCATAGTGTTTGCCAAGCA
-CCCCAGAGGGTGCAGGGAGAGCCCCTGCCATCCCCAAGGGGAGGAAGAGG
-CCACAGCTGTCATGCTTTGTGGTCAGACCTGAATTCAAGCCCTAACAGTG
-ACCCTAATGAGCTGGGGAACCAGCTAGCTAGTCCCTCATCCGAAAATGGG
-GTGGCAGCAGTTAGCTAGTCCCTCATCTGAAAATGGGGTGGCAGCAGTTA
-GCTAGTCCCTCATCTGAAAATGGGGTGGCACCAGCTAGCTAGTCCCTCAT
-CCGAAAATGGGGTGGCACCAGCTAGCTAttccctcatccgaaaatggggt
-ggcactggtgcctcccttgcaaaatggtgcaagcgaaatgagattgtgca
-tctgcttcagtgccggccgctgctcgctatcaataaatAAATCATTCACT
-CTGAGTAAATTGTGAGCCCCGGAAGGAAGGTGGTCTCGTCTCCCTCTGAA
-TGTGTGAGCAGCGCACAGTCAGTGCATCCTGAACATGTGGGTCAGCGCCT
-GAGTTCTGGAAATGAATTAAGCCCCTCACTGATAATAGGGCGGTCCCGGC
-CATTCCTGGTTTAAGAttgtttgtttgtttgtttgtttCCACTTAAATTT
-GAAACCAAGTTCCTCTCTCATCCATTTTTAATCTCTTTGGCTGTGAAGAA
-AACCATGTTAACGGTTCCTCATTTAATAAGAAAGGTGTAACAGCTGTTCC
-TTCCACCTGCGTTTCCTTCCATTTCAGCTCCAACTCACACATCACAGACA
-CCTGGCAGAAACTTGGAGAGCTGAAGTTGGATTAATATTTCTGCTGCATC
-TAATTGAAGCCGTTCTTCTCCCGGCAGGGAAGAGGAAGGGCTGTGGGACT
-CGGTGCATGGACCCAGATGCGGGTGGGGCAGACCTCAGGGCCCAGGGGTG
-AGAGGGAGCAGCAGGAGATGCAAACACCCTTGAGAGGGGAAACCAGGGCC
-CAGGGGCGCTTTCTCTCAGCCTGGGTCCTGGCTGCAGCCCGGACAGTCAC
-ACGGTCAGTCTAGGGTGACCCCATCCCTGGGCCGGGGCTGACCGGTCATC
-AGCGAAAGCACCCTCCGTGCTGTGAGTCCCAGGGGTGCTGGCGGGCACTG
-GAGAGAAAAGAAACCTCGCTGGACTGGAGACAAAGAACCTTCCCTGCGCC
-TCCCTGGGCTGCTTTCTTCTCCAGCCGCCCTGAAATTCTTTCCTCCGAAA
-ACAGAGCTCAGAGACCTTCCCACCCACTGCACAGAGGCCTGGGGAGACGG
-CCCAGGCGCTGCCTGTGTCCCCACCACAGACCCCTTGTCGATGCTGGCAG
-GGAGATTCAGGAGAATAAACAAACGCGCCGAGCATCTCCTGTTCTCCTTG
-GTACCACCAGCCTCCAAGACGTCTTCCAGCCAGGGCAGGCTCAGGCCCAG
-CCAAGCAAGAGGAACCCTGACTTGTCAACCTCGGAGCCAGGAAAGGCGGG
-GACCACAGGCCTCCCGAGGAGGGCCTCTCCAGGCAGCTCGAAGGACCTCA
-GATGACGCAGGCTCTCGTGTCAGGGCGCACAGCCATGTGATGACTCCACA
-TTCACTCAGTGCTCAGCACAGAGTCACTGCGAGGCGGCGTGAGTCTGTGT
-GACATCAGCGTGTTTAGTGCATGACATCAGCATGTTTAGCACAGAGTCAC
-TGGGAGACAGTGTGAGTCTGTGTGACATCAGCGTGCTTAGTGTATGACAT
-CAGCGTGTTTAGTGCATGACATCAGCGTGCTTGGCACAGAGTCACTGGAA
-GGTGGCATGAGTCTGCGTGACGTCAGCATGTTTGCACTCAGAAAGGTTCT
-CTCGGTGTTTGTGCTGCTCTGTGTGATCTGCTGATTGGTTAATGTGAACA
-GGATGTGCCTGAATGCTGCAGGGGCAGCAAGGTGAGCCCTGGGCTCTGTC
-CTCTCTGCTAATGGGAGACCTGAGGAGGAAGCACCCACTCCAGCCAGAGG
-CAACACTCACTGGCCCGGGGACGCGGGCAGGGCCAGAAATGCAGGTGCAC
-CCACTGCTCTCGTGGGCCCCAGGTTGAACTGTCTGGTGGGAAGGCCGGAG
-TTTGGGGTGGTGATGCAGGGGGTTGTGGCCCAGCTGTTGGGGCACGGCCA
-TGGGCCAAGCCTCAGTGGTGTGAGGATCAGGAGGGCGTGCGACAAGCCTG
-GGACTGGCCTCCAGATGGCGCCTGGGTGGTCCCACGCCTCGGCGACAACA
-AGGACCTGCCTTTGATGAAGAGCAGAGGGAGGTGAAGAGCACAGAAGCTG
-GCAAGCCAGGGAGCAGTGGTGGCAGGGGCACCTCCCCTCTCCAGACACTG
-GGCCACCCAGCCACTGAGAGGATAGCGATCACCCCGGCCACCCTTCCCGA
-GGTGGGGCGGGAAGAACACAGGAGGGGAAGCGAGGTCCATGATTTTTTCT
-TTCAGGTCAGTGATTTAGCACCAACTGTGTGCAGGCCTCAGATGAGGCAC
-GAGGGGCACCCAGAGGAGGAGGCCTGTTCTCTGCCATCCCGGGGCACCCA
-GCCCAGCTTCTCTGCCATCCCAGGGCTCTCAGCCCAGCCAGCCCCTCACC
-TCCCGTGCCCACCCCTCCAGGCCCGCCCTCCCCAGCCCAGGCCAGCAGGT
-GGGCACCTCCATCTCTGGATTTCTGCAGAGGGAGGCATGGCTCCTGTATC
-CATGGGGCCCCGAATCCCCTGGCTCCCACCCCTGACTGAGAAGCAGAAGG
-ACTGGGCGGCGTTGGTCGGTTTCCGCAAACACCGGTTCCAGAGCTTCCGC
-TGTGCGGATTCTGTTCCTGGGTCGGGTGAGACGGAGAATCTTCCACAGCA
-GCTGCCACCAACCCATGTCCATCAGGTCTGGGAACCCACCCAGGGCCCCA
-TGCTCCACATAGTGACAAACTTTTGACAAACTGGGCCTAATTGGTTGTTG
-TTGTTTTTCCATTTTTTTTAAAAGGAACCAAGGGTCTGTAAAGAGAACTC
-CCATAGGGTAGATTTTAAAGTGGCTTCAGTTGAGAAATGCAAAATAAAGT
-GTTTTGTCTCTTTTTTGCTTACATTTGGAACATGATCAAGGCTGTCCGAG
-GCTGTCTGACCTCGCCTTAAAGCCGAGGGAGGAAAGCCAGCACCTGGATG
-CCACTGGCCCCGCCTGTGGGAGCTGGAGCCTCGTCGGGGGTGAATGAGGC
-CAGGGAGGTGGACACAGAAAGACTCTGCCTAGCCAGGTCTCTGGGATTCT
-GGGTGCCTGGACTTTGGAGCTCCGGGGAGCCAGCTTGCAGCTCCTCTGGT
-ACCAAAAACAGAGGTGGCTGGAGGGACCCCTGGGAACCCACGTTTCTGCA
-TGGCTGGGGTCCTTCCCAGCAAAGACCCTGCCCCCAGCCCCACCCTGGAC
-CCTCTGCCCAGATGGTCGCCCTGGCCTTCCTCGCCCTCAGAGGACGACGG
-TTGCCTGTCAGGAGGTCTTCAGAGATGCAACACGCTTCCCCCGTTTAGCT
-TCCTGGGAGACATATTAGCAAAAAAATGTCTATGAGACAAGTTACAAACA
-ATCTGTCTTTCTAAGAAGAATAATTAATCGAATACCAAATAGGAAGCACC
-AGAGTTCTGAATAAATGGAGAGACAGTTAGAAGAGCAAAACATTATCATT
-TGTCCAGCATAATTATTTTCTGGGAAACAGTCGGTGATTAATAAGGTGCA
-TTATAAATACGCTTTTGTGGTCACGTTTCCTCTCTCCCGTCTAATTAACA
-TGCTGGGGAATTGCTCTTTCGGTGGGGAAAGACATTTAAAATATATATTT
-CATGAAATCTGAGTTATCTGTCATAAGCTCCAAGAGGAACAAATAAAATA
-TGGAGAATTCTACAGTCGTTTAAATACTTTATTACATGGCTGTGTGTCAA
-ATAAATTAGTTCTTGTGGTTCTGCAGGTGACAACAGAAAATTGTGGGCTG
-CAGGACCCCGAGGGTGGTGGGACACGCTCTGCCAGTCCCTGGACCCAGCA
-TCTGCTTCCTTCGCAACCCATGGGTTCAGTCCAAGCAACACACACAGCCG
-ACAAGACCCGGTTCCCGTGTGCGGACAGAACTCCTCCAAGACCAAGTCCC
-TCCCCGGGTCAACACGCCCGCCCCATAGAGCCTGGGGAAATGCCACCACC
-TGTCCCCCACGGGTGGGGAAACTGAGTCAGAGCTGTGCTTTATCACTCCC
-ACACAGAGAGGAAAGAGGGATTGGAAAAATAGATGGTGAGTGGCCCGTCT
-GCAAGAGATGCACAGCGATGCTTCTGCAGATAAGCCAGGCCAGGGAAGGA
-TGTGGTTCAACACCATGGAAAGATCGGGGATTTGGGGGACACCTCAGGTT
-TAACTACAGGGGAACTACTGTTTAATTGACTTAGGTGAAGGAATTTTACC
-TATTTGAGTGATTCGAAATCGGGGAGGGCCCCTCTGTGAGCTCCCCCTCG
-TCGGGGCTCAGTGGCAGAGCCCCGGTTTCTGCCGCAAACACCTCTCACTG
-CCCTCCACACAACACATAGCTCCCTCCTCCTCCTCACAGAGTGCCTCACA
-CAGGGCCTACCCAGCGGAGGAAAGAGAGTCTCAGCTGCCCCGGAGCCCGT
-TCCTCACCAAGACCCGTGCAGGTCTGCGTAGTGACTCCAGCAACAAGATG
-TGTGTAGGATCCGGCCACCCCAGTGCAGTTCCTCAAGGATCTTAAGagaa
-acccaagaagaacatgccctggctgatcctcctgcctttggatattttaa
-tgggatatgagccccggggctgctgcagccaccttgagcacacgaggggT
-TTGGCCGTGGGAGAGGCTGCTGTGCTGGGGGCAGGAGATGGGTGCCCTGG
-AGACACCTGTGTGAGGGAGGGTGGCCATGTGGGGCCTGGGGCCAGCGGGG
-cctccttgcctctttaccccctccctttgtccctccctccatggccatcc
-ttcttctcttcccactctcACGCGTCCCGTGGATCCGGCCCCTCTTTGTC
-CCCAAACTCACCCCCATGACCTGGCAGTCCAGCGGGACACAGGCCCAGGC
-AAGCCCAAGCTCAGCCATGCCTCCCAGCAGCCTGAGGCCCGAGCAGGGTC
-TGTGATGAGCAGAGGCCGCAGACGGCAGTGCTGGGGCCGGGAATTCTCCC
-TGTGGGCTCTGCCCTCCGGCGTGACCAGTGCATGTGTCTGTGCTGGAGGT
-CGGGGCCCTTGAGATGAGACACTGAATGCTCCCTGCTCTGCCCGGCTCCC
-GGCGGCAGGTGGAGCGTCCAGCGCACACAGGGTCTGCACAGCCAGGCGTT
-TCTTCCCCACCTCGCATCTCTCCTGGGGCAGTGTTCCATGTTATTTTGTC
-TGAAACAGGGTTCTTAGGCTCCCTAAAAAACACCCAGAGAAGACCTCATC
-ACTTCACAACCTCAGATCCAAAAAATTCCCATAGCTTTGGTTCTGTTCTG
-ATGGAAAACCCTGATGCTGACCTCCACCAGAACCTTCACAAAATGGGATG
-GAACCAAGAGATTTACTTCTGTCCACGTTGTTAAGCGGTTCCTCGCAGGG
-AGGGCTCTGATGGGAGATTAGTCTGTTGCAAACATCAGAACAGCTTTGAA
-GGTGCAGTGGGGCGGGGGAGGCTGCAGGGCGAGGCTGGGGAGGCTGCAGG
-TGGGCAGTCGTGCTCGGGGTAGGGAAGGAGCCTGGCGGCCTTGCAGCCTC
-CGCGCTCTCAGGAAGCAGCCCCCACCCTGGGACCTTCACCCCGGAGATGG
-CAGACTGAATCCGCACCTCATTTGTTGGCGGTTAGCAGATTTCCCAGAAA
-GTTCTCGTGGGAAAAGCCAAACCGCCGCTTCTGTTCCATAGCTGCACCAA
-GTCAGCCCCTCTCTATTCACAAGAAAGCGTTTCAAAGGCTTCAGAGCAAA
-TTCGTGTCGCAAAACAGAAAGTGCCTCTGGGAAGAGCTCAGGGCTGCTCT
-GAGGGTTCCTGCAGCAATGGCCCTTCATCAAGCCACAGAGCTTTCCGCTC
-CCTAAAAGGCATCCCCGGGCCATTCCTCAAGGAGGGTCCCACGCCACGTG
-CTCCTGGCTGGCCTGGAAGTGGAGCCAGGCCCCTGCCTGCAGGTAAGGGA
-TGCCCCAGACCTGCTCCCTGCACGTGGTGCCTGGACGTGGACCTGGGGGG
-GTCTCTCCATCGGTCTAGAGTGGGGCATCCAGACCCCGGCGTGGACTCAA
-GCTCTGCTGGAAGGAGGCTCATTGTCTTTCAGGATCCTGCGGCCGGAGGC
-CAGGGCTGCCCACAGCAGAGATCCAGAGAGCACTGAGTCCACACACGGGA
-GGAGACTGGGAGGGGAGGGATGGGCAAAGCCTCACAGGCCCATGAGATGC
-ACAGCTGCAGGATGACATGCGTGGCTGTGGGGAGATGCACGGCTGCAGGA
-CAATGTGCACGGCTGCCAAACGAGGCCACATAGCGTCCACCTGACCAGCC
-CCCACCACCTACTGAGGAAGACAGAGAAGCTGCAAGAAGGGAATGAATGT
-TTCCAATGCCCCTGCTAGAAAGATCCTCTCATGCCCTAATCTGAAAAGTC
-AGGGAGAACTGTTCCTAGCTTTATTTTATTGTCAAAATGTATTCTCCAAG
-GTTGCTTTCACAAGTAGCCATTTCCTGGGGACACAGTGGGGGATGTGGAA
-CCAGAAGGAGATGGCATGGGAAGGTGATCCCAGCACACCTGCgtaaacca
-gaaataaaatcctaagatcccaaccaaccgaatggatccctcctctcagc
-caaggggattccaaagtaagcctgaaacactagttcaggccatgcctcat
-tctaccctcctccctttggaaagtcaggcacaggtggccggcattcacat
-tgaaacgaggaccttaagactgaaaaaacagactcttttagcaatgaggt
-accaattccaacctaactaacatgatcacgtgacagacagcaggccctga
-aaaaactcaaagtattttaccccaaaatatatttctttgacatatttgga
-aatggccccacaaagtggtctctcatggggaaaatctgtgttctgtaaag
-aatccccttccctttccagaaagatcccctcccgtcatctaattttcctg
-atggaggagagattaaccaagtctgacaccttttttaggtctgataagag
-acatttgccctctattccctttgaagcctgttccctggagacttcatcga
-cataataagaaccttggtctccacaaccccttatctttacccagacattc
-ctttctttctattgattccagatctttacataataactccttcaaccaac
-tgccaatcagaaaatctctgagtccacctatgacctggaagcttctactt
-caagctgtcctgcctttccagagctaaccaatgtacaccttgcatgcatt
-gattgatgtctgcctgtaacttctgtcccctaaaatacatgaaaccaacc
-tgtgacccagccacattgggcacatgacctcagggcctcttgagactgtg
-cctcaggccctggtcacacgtacttggctcagaataaatcccttcaaata
-ttttagagtttgtctcttttTCACTGACACAGGGCACGGGATTGTCGTCT
-AATTACAAGTTCCTTGATCCATGTCCTAAAAATGAGCCCATGAATTTTTC
-CCTCCTTCATTCTGAAATCCATCATCACTCAATGCAAAGAAGTGGGAAGT
-GTCATCCCATAGAATGTGAAGGCCTTTTCCTTCCCGTACAGGTCAGGACC
-AAAGCCACTACGACCAGTATGTATCTATAGACCAGCAGAAAGCTTCCCAT
-TTCCACCTAAGTGTCTGACCAATAGCTATGAGTGGCTTTTGAAACTCTAT
-CCTTAAAATAAATAATAATAATCCCATCTAGCTGACGAGGAAGTTCTCCC
-AAACCCCTGCTTCCCACTCCAAGTGTCTTTAGAGGGAGCATCTCCTCCAT
-CATAGTGTCTGCTGCTCACTCACAggtgggtctggccttcccagctgtga
-tgcatttgaatcagtggatggctcaaacagagggccctccctggcgtggg
-tgggtcccgtccaatctttagaagaggcctccccagaacaaaagggagga
-gtaagggagaattcactctcccagcctgactgttctcaggctgggacttc
-agccttctcctgccctcggacTGGACCTTATTCCATTGTTCTTCTGGGAC
-TTCCTCTTGCCACTGGCCGGTCTGCTCCTCTGGAGAGCCTTGATTCCTAC
-AGGGAACTTGCAGCTGAAACTGCCCTCTAAAGACAAACATACATCACAGC
-TTCAGTGAGTCTGAGTCACTTGTACATGGTGTTTAAAACCTGTTTCCTGT
-CCAGAAGCGTCTGACCTCATACCCTGTGTCTCCGTCCACAGGAGAGGACA
-CCCAGTGTCCAGGCAGACGCCCGGGGGCAGCTCTCATTCTGAGAATGACT
-TCCACCAGGAAGGATCGGTGAACCGGCCTCTAGGGGACACAGGGCCGTCT
-TGTGGGAATAGAATGTACCAGTGAGATGTAACTGCACCTTCCCATTGTAA
-GGGCCTGGGGAGGCCCAGCCCACAGATGTTGCCATGTCTGTGCCATTTGT
-CTTTGGGTAAGAGCTTCTCTCCCTGCTGGCATCTCAGAAGGGAACCCAAG
-GGCACCCCTTCAAGTGGCAGAAACTTCCGGGAGTAAAATGAAAGCACAGA
-GCACCTTCCAGCCACTGCACCCTTCACCTGTGTCAATCTCCACCTCACCC
-TGGACAGGAAACGTAGTTCCAGAGCGGGGGAGCGGTCTCTGAGACACACA
-TGGATGGCCCAATGGCTCTTCCCAGGCCTGCGAGGGGCATCTTCCCATGT
-GAAGGTGCCTGGCCTAGCTTCCCCACTGAAGGCACAATGCATCTTCAGGA
-GGAAATCCACGGCCCCCTTGAAGCCAAGAGGAGCTCACCGCTCCAGGCAG
-CAGAAGTCAGAGACTGCAGGAGGCCTCCCCTACAGATGTCCCTCAGGGCA
-GAGAATTTGGAGACCAAAAGAGAATTTGTTCAATCCAGGAGAGAAACAGG
-TTTCTGAGTGAGTCCTTGGCACGTCTGAATCCCTGGTCTGTGACAGGGCT
-CCCCACATCCCAAGAAAGCTTTCCCAAATAGAACTCAGCAGAGTCTTCTC
-CTCAGACCACCTACCGCCTGCAAGAGAGGCCGAGTTCTCAGCATGGTACC
-TGGACCCGGACCCAGACCTTCCTTCTCTGTCCCCAGCTGACCTGACCTCG
-TCTGCCCTGCTCCCTACACACATCCCTGCCCGATCACCCATCCTGCCAGC
-CCCAAGCCTTACTCTGCCTGTGGAAGCTCCTCTTGCTGACTGCAGACAGT
-GGTGATAACAGCCACCACACACAGGGCCCTGTCCACACAAGGCTACTATG
-CATGCAACTCCTACCATTCATGGGAGACCCTATGACCAGGTAGCAATCGC
-CAGGACAGCCGAGTGGCCCTGGCCCCCCAGCTCCCTCAGGGCCAGCCTTT
-CCTGCtgaagggtgttggaatttgccactccataatgcaccactttggcc
-caggtattcttttgagctgaaagcagttgagaagaagcagatataagaaa
-agctctctaccctccttaatttgcaggatataaatgacaaagGattttga
-agatgaaaactgaggaggacattgccttaccagaaattaaaggctacaat
-aaagctctaactgtcaaaacagtgtggcattggcacatggacaggcaaaA
-CATAAGCAAAAATCAGGGTGACAAGCAGTCAGTTCAAAGACATTCCTGAA
-TTTACATATATATCAGGCAAACATCCAGAAATGAATTGGCAAGAGAATGG
-CTATTTCCTATTCTGGTTCCATATTTGACTCTCCACGTGGGAGAAAAAAA
-GAACAAAACTAGTATTTTATTAAAAAGCAAACTAGAGATAGACTAAAATC
-TGAAAGTAATAAATAATCTCACCATATTACCCCAAAACTTAAGAGAATGT
-TTATATACACTTCTTCAAGAAGGAAACTCAAATGCTGTCAGGGACACGTG
-GATCTATTTAAAGCTGTCTTTAATGACCTGGGGAGAAGAAGCATATGTCA
-AAAGCCAAGCCGTAGACTGGGGAAATGTGGGAGGCAACTGGGCAGAAGAC
-GGCCTCTGTCGCGAAGAAACATGGTGAAAAGGGAAAAGAGAGCCCATCCA
-GTAGTTTAAGTGAGAACAAGCTAGACAAGGTGATCCACACAGCCAGCAGC
-ATGAGAAGACACACGGGACTCAGTATGGTCACAGAAACACAGGATAACAG
-ATGATGAAATGCGCTTTTCTTCCATCCTCAAGCTGGCAGCTGTGTAAAGC
-GCATCCGCATCTGgtcctggcaggatgcaaagaaaccaactccttattgc
-aggtggaagtagaaatggctccaaacactttggaaaatcaccaggccata
-cacactggaatctaaaatgcattcccagtgcaaggaacctcttcctgaga
-catcacagcatcagaccatgaggacatgtgttcaccTGGTGATGAAGGCA
-Ttgatggtggtggtgatggtgatgatggcaaagatggcaatggctatggt
-ggttgatggtagtgatgatagtgatgatgatgatggtgatgatggtgatg
-gtgatgatggtggtgatgggatgatgacggtgatggtggtaatgatggtg
-acgatgatggtgatggtgatggtgatgatggtggtgatgatgatggtgat
-ggcagtgatgatgatgatgatggtgatgatggtggtgatatggtgatggt
-gatgatggtgatggtgatggtgatgatgatgatggtgatggtgattatgg
-tgatgatgatgatgatgatgatggtgatggtagtgatgatgatgatgatg
-gtagcaatgatgatgatgatggtgatggtgattatggtgttaatgacgtg
-gtggtgatgataatgattatgatgatgatggtgatagtgatggtagtgat
-gacgatgatggtgatggtgatgatgctgatggtggtgatggtgatgatgc
-tgatgatgatggtgacgatgatgatgacgatgatgatgatatggtgatga
-tggtgatggtgatagtgatggtgaagatgatagtgatggtgatgatggtg
-ataatgatggtggtgaggtgatcctgatgatgttggtgatagtgaCAGAG
-CAACTGCACATACTTGAAGGATGCTCAGGAGTCACATGAGGTGGACTTGG
-ACCAGGGAGGCCTGCCCACCACAAAGAGAAGGCAGCTCATAGGCAGGCAG
-AACCTTGCTGGGATTCTCGTGACTGCAGTAGAGTACATCCTGCTCTCTTA
-CTCTCAATGATCTTCCACCCATACACACATACTAGTGCTATGAGAGTGGC
-AAGGAGATGCAAACCCAACTGCTTGTCCTCTACATGCAAACATCAGATGC
-TTGTAATCCAAACTCAAATTTATTTGTTCCTGCAACATCATGTTGCCACC
-TTTGATATCAACTCTAACTACTGATGCAGTAGCTTCAGACCTCATCTCTC
-TAGCTTGACCTCATTTGTCCCTGCCTGCCCCCAAGGACAGAGAGTGTTTT
-CTTTCTGCATAGCAATAAGAGTGGCATTTTGGAGCACACACGAGGTACTG
-ACTCTGTGCAAGCGCTCTCCCCACTGGCATAATCCCCCCCAGCATCTTGG
-TGACAGATGTTGTTATTAATTGGAAGTCAGCACAGCTGGGAAGGGAGAAG
-ACTCACTGGAGGCCAGATCTACCTGACTCCCAGCTACTCTCAGGATTCAT
-TCAGCATTCTTCACCTTGTATCTTACACAGGCAGAAACCAGCAATATATA
-CATACAAAAAAAAAAAGGTGCTGTCATTTGGAGGCTCATAGCTGTTGTGA
-CTGCACTATTTTGAACTCCTTGGATGTCAACTTATACCTCACCCAGCAGG
-ACAAACTCGCTGACCCTGGAGAACCCCAGTGCTGTAAGTTAACCAAATTC
-CTCCAGGAAGCAGGAAAATATCACTCAGAACCCAAGATGCAGAGACAATG
-AAATAAAACTAGTTTTTTAAAATGTTGTGTGTCTCCCAACATTTTTTTTC
-TTAAACTTACTGCCTATTATTTCTTATGCACTAGGGAGCATTAACAGATG
-ATTAAGCAAATGGAAAATTAGTAAAGAAATATTAATGGCAAGAAAAATGG
-GGAAAAGCTGTGCTCTACTCACATATGTTCAGTTTTAAAACACTCCTTAA
-CTAGATCAGAGCAACAGAACAACTTTTTTGATAATAGTAatggtgatgag
-tgtggtgatgacggtagtaatggtgttagtgatggtggtggtgatgatgg
-tgatggtggtaataatggtgatagtggtgatggtggtgataatggtgatg
-gtgatggtagtggttatgatggggatgatggtgataatggtgatggtggt
-gttggtgataatggtaatggtggtgatggtgatggtggtgatgatgatgg
-ggatgatggtgatggtggtgatggtagtggggatgatggtgatggtggtg
-atggtagtggggatgatggtgatggtggtgatggtggtggtgatgatggg
-gatgatggtgatgatggtggtgatggtgatgatgatggtggtgatgatgg
-tggtgatggtgatgatagtaatttgatggcagtgttgatagcagtggtga
-ttgtggtgatgatggtggtgttggtgatggtgatgatgatggcaatggtg
-atcatggtgatgatgatggcagtgatggtggtgatggtgatgatggtgat
-tatgatgatgatagtgatggtgatggtggtgaagatgataatggctatgg
-tgatgatgatgatgatgataatgatggtgatgaCAATGGTGGTTATAATC
-ACAATAATGCTGAAAACGCTGCACACAACACTTACAAGGCATTGTGCAAA
-TATCTGACATCATTTGCTATTTTCCCTTTCCCCATCCCCCCCATCCTCCA
-ACCCCACCCTCTATACTCCCTTTATCCTCTCATCTTTCATCCTCCATGCC
-CCTTCCCCCATCCCCAATTCCCTCATTCCTTCTGTCCTCcatttattcat
-tcattcatccgtttagtcattcattTGCCACCTACTAGGTACCAGGATCA
-CTGGGTTTTACTGTAGGCTGAAAGCTTTGTGAGTTACTAGAATATTGGGA
-AGTTCCTTTTGCCCATCTTCCTGCCTCTAGGTAGAGTTAGTGCATCTTTA
-CCCTCAGGGAAAAGATTAACGCAGACATTGCTGGATTCCATCTCTGGAGC
-ACAAGGAAGAACCAGCTCAGCCTCCTGACTAGTTCTCTGATCCTGGAGAA
-CCCCAGTGCTTTAAGTTAAGTGTGTGTGGATGGAAGATCGTTGAGAAGAA
-GACAGCAGGATATACTCTATCCCAGCCTGGCAGAGACACACTGCCCACCT
-GGCGAGTGGGTTTCTTTTGGGGCACATTGGGGTTGCTCAGTGCAGCGTGG
-GGGGACAGGGACAGCTGGGGCACTGGGTGCCTAAGGGTTGCTCAGTGCAG
-TGTGGGGAGACAGGGACAGCTGGGTCACTGGGCGAAAGGTGGGAACCCTC
-GGCGCTGCATCTTTCACTTGCTCTAGAAAACACCCAGCCATGGCCCCGCA
-GGCTCCCCATGTCACTGGGTCCCACATGGAATGCAGATTCGAGGCCCAGG
-AAGCACTCTGTCTGCCCCCGCACAAATCTTCCTGGCATCTGCTGCCCCCA
-GCTCCACAGGGGGCCTCAAAATCAGCCAGCGTGGGAGGTGATGGCACCTG
-TAGGGGAGCATTGCAGCCCAGGCCCCTCTAGCACTTTAGTGCACTTGTTC
-CAAAGACACACACAGACACACACGCCGGAGGAGTGATTTCTGGAATATGG
-CGCAGTAATTAGCCCCACTCAGGTCCTAGGGTAAGAGCTGCACCCCTAAG
-GGGCACCTGGCAGGTCCATGAGGCCAAAGGGCACCACCCTCTGGTACCCC
-ACTCTGCAATGTCACTGAGCAGGCAGGGGGTGCAGCGGCAGGGCAGGGTG
-AGCTGAGGCCCCAGAGGGAGACCCCAGGCCAGCTTCAAGCTCTCCACAGA
-GGGTCCCTCACCTCCTACCAGCTGTGCGATCCAGGATAGTCGCCTTAAAT
-CCTGAGTCCCGACCTTGGAACAGCATGAGTAATGACGACGGCCCCTCCAC
-GGCCGATCTGGCGCAGTGCTGAGCTGTGAGTGGGGCCCTTGTTAGTGGCA
-ACTGTGGACAGGTGTCTGGCAAGCGCACTGAGCCAGGAGAGAAAGGGTCA
-CCgggagctcccaggacggggctggctgcagggggaccgactgtgagaca
-gaaggaccagagtgctcagccccaccctgacttccagggagtggtgaaag
-ctggagatggagtgaactgccaacggccaaggatgaaatcagccacaccc
-atgtgatgaaatctccgtaacaacccgaaactaggctctgagagcttccg
-gctggagcgctgggagggcagccaccccaactgcatggagaaggaggaac
-ctgctcttgggatccctccagacctcacccctgtacctgttcatctgccc
-attcatctgcacccgtcccctatcacaaaccctcgactgtaagcaaagca
-tgtccctgagctctgtgagctgcttcagcaaactatcaaacccaggagag
-gtgtgggaaccccgactgttcaagtcagacagaagtgtggatgtcctggg
-agccactgcttgaaatgggcgtctaaagtgggagcactcttatgggactg
-agcccttaacctgcggggtctgtgctagttccagtaaggtggtgtgagaa
-ttgaactgagttacaggatgcccagctggtgtctggagagcaggaggact
-gctcggtgtggaggaccccccatgcgtggtgccagaggccctgtgagtGA
-AGAAAGGGCCCTCCCCTTACACACGTGCCTGGGAGGGCCGGCAGGAGGCC
-TGCTTCACAGACGGATGTTACACGCGTGCCTGGGAGGGCCGGCAGGAGGC
-CTCCTTCAGAGACGGATGGGAATCCAGGCCTGTGGCTCCAAATACGTCCA
-CTCACCCCCGCCCAGTGGCACTCGGACCCCAGGCAAGGCCTCCAGGTCCA
-CTTGCTGAGACACACTCCCCCTAGGCAGAAAAATTACGCAAAGCCACCGG
-AGCCCTTACCACTCCCAGCCCCCGGGCAGCATGTCAGGGCATAGGCTCAG
-CCCCTTCCCCATGGGGTGCAAGGGAAACCTGAGGCTGAACCCCATCAGGG
-CTACAGAGGCCCCTGACGTTCCTTTGTGTGTGGTTCACTCCTCCACCTGC
-CCTCCCTCCACCACGCGCTCGCCCAAGATGTTAGATGGAGACGGAGGTGC
-GAGGCTGGCCTCCCGGAACCCACGCACCAATGCAGGAATGCCCAGAGGGA
-GACTCAGCCCCATCTGGCTCCCAAAGtgggtgacagagcgagaccctgtc
-tcaaaaaacagaaaaaaaaaGTCAAAAGAACTATATGTGAGTATCATGGC
-TAAATATTAAATACACGAAGCCATGTCCAAGGACTGAAATGAAGGCCACC
-TTCAACCTCCTTTATCAGCACAGATTCTGAGAGGAGCGGTGGGGATTCCG
-AGGCTCCGAGGGAAGGACACGAGGCCCCAGCCAGGCTGTTGTGTTGGGGT
-GAAGAGCGGGCGGCCTCACACAGGCCCTGGGGCCGCAGCGTCCACAGCCC
-CGCTGCGAAGGCGGGGAAAGGACCCTCAGCAGGGAACGCAGCCCAGCAGC
-GGGGCCCTCGGGATGAAGAGCTCGGCAAGGAGCCTGGGAGCAAGGAACAC
-ATGACTCACAAACCTCTGGAAAATGCCCGGGAATGGAAGGAACCGAGTTC
-CAGTAGACAGGAGGCAGGAGGAGGGAAGAACCGGCCGGAAGGTCTTTATC
-TTTCTAGGTTTCCATTCGACAGACGCCCCACCAGTGACGCCTGACCACAT
-CAACGCTGTGCAACAAAGATCCCCAACTCCATGCTGAGAGGGACCCCACC
-GCCACGACGTGTCACCGGGGCCTGTGCATCGCAGGGCCCAGCTCCTCATG
-GGAGCTCCTTGAGGAGTCTGTGGGCCGTGGGGGCTCTGGGAGCTGCCTGG
-GTAACGATACAGGAGTGAGTCTGGGTAGCCCCGGGCTCCTGGAAGACACT
-GCCTTAACCCACCTGCCTCCACAGCTTCCTGTGAGCTGGGCAGAGACTGC
-AGCACTTACTACTGAAGCCACTTCCTGTTCAGCAACCTGCAGAGTGAGTG
-CTCCTGTCCCCACAGACCGGGAGGCTGAGGCAGGAGAGGCTGAGGAGCAA
-GGCCAAGGCCAGGGGGCTCAGGGGTCTGGGGGCAGCAGAGCCGGGTCTGT
-GCCCAGACACAGACTTGCAGGCTGCCCTGCCAGTGCCAAGCTCAGCTGCC
-CAGAACAGCTTCCAGGTGCAGGCCCCAGACCCCAGGAACGGCCCCCAGGG
-CCCGAGCTCTGCAGGCAGGGCCCTGCTGCACAAGCGTCACTCACAGCCGG
-GACGGCGTTTGGAATTATGAATTTTAAAACCCTCTAAAACTCACATTTTA
-ATGCAGCCTCCATTTAGAGAGTAAGAAGGTTTCTTGACAATATTCCCTAT
-GGGAAATTAATTTGGCCTTGGGACTCTATCATTTCCAGATGCATCTAAGA
-TCCTACTCCTCCCATTTTTCCAACAGAAATGGGCCTCTTGGGCCCTGTAC
-AAACCCAAGCACTGTGTTCATCAATGCCAGCTCACCGGCATGAGAAATGC
-ACCCGTGGCCCACAGAGAAGACACAACAACATCCACAGTGGCCGCTGGGA
-GGACTCTGGAGGCCAGCGTGGGGACGGCCGAGCCGTCGTTCTCCTCGTCT
-GCACCTCCTCTTCCAGCCTGGATCTCTGAAGCAAGCCTGGTGTGGGTCTC
-CTCGCCCTCCCCCGGCCCCCCGCAGCCCTGACAGGCCCCACTTTGGGCCC
-ATGACTGCCTTGTAGATCTTCTACCCTGAACAGCTGTTGGTGGATCTTCC
-CTGCTGCCTGGAATTCCCGGAGGGCAGGGGCAGTGGGGGAAAGCACATGG
-GCTTCCAAGGCTGTCCCAGGTGGCTCAGGTGAGACGCCCAGGTGTGTAGC
-CCCTCCCTGCCTGGGAAGCCCCACCCAGCGAGGCGGAGCCGCAGAGCCAC
-TCACCTGTGCTCCTCCTGGCACTGCCCTCGTCTGCCCTTTGTTTCTGATG
-CGTGAAATTCCACCAGCTATGGGGATTCATGAACAGGCATGGCCACGGGA
-GCCTCCTCCCCACGCTCTAGAGCTGTGCTTGGTGCTCCCATCCACAGAGC
-GTGATGCCCTAAGCCGCCCTGGCGTTTATTCTTTCTTAAAACCAAATACC
-AGGAGCTGCAGATCTGATGTCCCTTTCCCTCGACTGAGTCAAGGGGCCAG
-CTTCCGGGCaggcagacaccagcaccgctgtagcgaggccctggatgcca
-ccaagatactggcaggcggacaccagcaccacgcagtgaggcccaggatg
-ccaccaagatactgggaggcggacaccagcactgctgcagtgacgccccg
-gatacaaccaagatactgggaggcagataccagcactgctgcagtaaggc
-cccggatacaaccaagataccggcaggcggacaccagcaccgctgcagtg
-aggttcaggatgccaccaagatactgggaggcggacaccagcacctctgc
-agcgaggcccaggatgccaccaagatactggcaggcggacaccagcaaag
-cgcagcgagacccaagatgccaccaagatactgacaagcagacaccagca
-ccgctgcagcgaggcccaggatgccaccaagatactggcaggtggacacc
-agcacctctgcagcaaggcccaggatgccACCAAGATACTGACTGCTCCC
-AGGTCACCTATGTTTCAGAATACATTTCCTGGTTGAGTTAATAAATGATG
-CAATGGCACAGAACCTGCTTGATCAAAGAAGCCATAGACAGATTTCTTTG
-CTGTGAGGCAGCTGTGAAACCTCAGAAATTAAACGCAAAATTTGTGTATA
-AACTTAAATGTGCTTTTCTAGGAAGGGGAGTTCTAATTATATGTGATTCT
-TGGTTTATTGTCGTCCATTTTCACCCGGCCGTGCAATGTGCACTTTGCCA
-CCTGATTTGTGCTGTAAACGTTCTCTCCATGTGTGAAATGTGCACTTGGC
-GGGGAGGAGGCTGAGGACCCTGCCCCAGACCTTCCTGGGCGACCTGAAGG
-ACAAAGCACCACATCTGCTGCAGAGAGTTTGCCTGGAGAGTCTCCACAGG
-AAATACCCCAGGCCCTGGCGAGGCCACTCTGGTGCGGGCTTCAGAATGGT
-CTGCGGGTGGTGATCACTTTTGATGTCATCTGCATTTGGAGAGAGGCCGT
-GCAGAGAGCCAGGCAGGCCTCACCCAGGTCTTCAGCAGCTGTTTCAGTGG
-CATGGCTGGCTCAGCCACCAGAGGCGCAGCTATTACTTTTCTCACCCTGT
-TGCTGCCACTACAAATGTTCCAGAATCCGTGGTGTTGGGGGCCAGGAACC
-TCCAGCCCCCACGTCCCAGAGGCTGCCTCTCCACTCTCATTTTGCTTTGT
-TATCTCAGGCCTTGGGAGGAGGAGAGCATGGCAGAAAGGCAGTGCTGGGG
-TCCCCCAACGTGTGAGTAAGCTGTTCCTACTAAAGACACTGAAGTCTCAC
-TGCCTCTTCCCATGATCCAGCCCACATGATAACACAGGCGTAGGCACACA
-GATGAGGTATGAACATGTGAAAGGGAGTAAAGAAGGAACAgtacggtggc
-tcatgcctgtggtcccagggctttgggaagctaaggtgggaggatcgctt
-gaggccagttcaaggctgcagtgagatatgatggtgccactccatgcctg
-cttaggcaacagggcaagaccctgtctcaggagaaaaaaaaaggagttaa
-gaaaTACTGTTATTCATAATTCATGCCATTGTCACCTAAGAGAATCAGCT
-GCAGTCCTGTTAGAACAGAGCCAGTGCTCCTCAAACGCTGATGACATCAG
-AATTCATCCCCACCTGCAGACCATTTACACCCACTGACAGAACACAGTCA
-CTCGttagaaaaaggcataaaaaagccccactcatgatttcaacaaaata
-tcaaataccaaggagtaaacttcagggtaaatattcaagacctacaatgt
-cagaaaaggcacaatttcatcaaaggacatagcaacccatgagttatcct
-gtggattgatggagcgacctacccagttcctacccaaaaagacttaatat
-tatgattctttgctggtttatctataaattacatgcaatttctatgatat
-tggcagtggaagtttgaggggactctcacaaaatgattgccattttcact
-ggtgagaataaaaaagaaaaaagttaaaaaataagattagtgagtaagga
-caattttactacaacatttacaaattataaaactaggataattttgaaat
-gttggttctaggaaggaataaaaagaacgaaaagtctggtgtcgggggac
-atatgtcaaaccattcattgtgtgaaaatgtggggattctcatcagggga
-gaaagaacagcccccaccctgccaggtcctccctgcttaaaaactgaggc
-aagaaaacatgcatttagatgctcacctcacacctgcaccaaaataaaat
-cctaatggatgggcaaatgttaaagatgaaaAAGTTAAATGAAAAGAAAC
-ACTTGGCCTCATATCCTGCTGAGAGTGATGCTCCCCTTTCAGGTAGAGAC
-AGATACAATGAAGCAAAGAAGATGATGGAAATTTTGAAAAAATGCCACTC
-ATTTCTCCAAAACAAAATGAAAAGGCAAAAGAAAAACCTGGAGGAAATAT
-TTAcaacctatttgacagcaaaattctcaatactcttcatcaacagaaat
-gggcaaattgcatgaacaggcagttaacaaaaaagaacgatgagggccca
-atatcgataggaaaaaaaagcatcactgattatcggaggaatagcaatta
-aaaccaTTAGGCTTTATGACACTTACAGtataaactgaaggataatttaa
-aaccacagttgtccagaacatggcaaatcagcaccatcatgtggtaagaa
-aacaaatagattcaagatcatgtggtgcaaatttgactgggtatattcaa
-accttaaaaagtgttggtatatttagcatgtcacttgatttctgaaaact
-tgttttaagcaaataatgaaatgcaaagattgccatataaagatgtgtgt
-atcaacatcatgaaaaaagtgaaaaaaactgaaaCCACAAAGGAGTAAGA
-ATTCAGCCAGTGAATACAATTGGGTTTGTATCTGTTATCAAACACTGGGT
-TCCTTATAAAAGGACAAGTTTAGCCTCTCTTGCATAtctctctctcctct
-ctttcttttctctctgtttgtctctctttgtttccctccctttctcttcc
-tctgtctctctctttctctcttccactctctgtctctccctctctctcct
-tctctctcttcctcaactccaatctctcctctcttctttcctctctctct
-ctctctctctcCCCCCCCACCACACACAccttttactttatctccccacc
-ctctcccctctcaccttccaccatgggctgacacagcaataaggccctgg
-ccagatgctggccccttggacttccaagtcaaatgcacagcaacagaaac
-ttgttaaataaattctttatacatccacatgatagaataagatgcaatta
-tttttatgtatataagaggaaaacatttaataaacataaaatgaccacgt
-atattattaaaggaaaaaactgtatgaaatagtacatttctcataattct
-cattttgtaaaaataaagtacttatctatggacataatgagaaaatgact
-caaggtaccaagagtttagccattagctataccagtggattataagcaaa
-ttctgttacgtgcatgcactcacctacgcatgttcatgtattcatacata
-cgtacataattttttaaattttcttttatagacaagcaatagctttataa
-tcTCTATAATCAGTAAAAATAAGTAAGTggctggacgcagtggctcacac
-ctgtaatctcagcactttgggaggctgaggagggcagattatgaggtcag
-aagatcaagaccatcctggctaacacagtgaaaccccatctctactaaaa
-atacaaaaaattagccacgcgtggtggcacgcgcctgtagtcccagctac
-tggggaggctgaggcaggaaaatcgcttgaacccgggaggcagaggttgc
-ggtgagccaagattgcaccactgcactccagcctgggcaacagagcaaga
-ttccatctaaaaaaaaaaaaaattaaacaacaacaaaaaaaGTGAGCACA
-TCATTTGTGGCGTCCAGGCACTACATCAGTGAACACAGTTGGTTTTGTGT
-CTGCCATGGCACTGTTAGTTCCATGGTGCGGGTTAGCAAGGTGCCTGTCC
-ATGCCTAGTCTGAGATGAGTTCTGGCTAAGGTGCCACCAGACACTGTTTG
-GATGCTGCAATACTGCCTTCTGTTTGCAGGCCTTCTATGTCCCAAAATCT
-CAGGCCTGGGGAACTAAGCCTCCAACCTCCCGCTGCCCTTACAACTGGCT
-TTCGGAGAAGCCCCCCAAGAAAATAGAGACAAGGCAAGGTCTGGAGAGTT
-GGGTCCCATGGTGGGCAGATTCCCAGCACCCTGCTGTGTCTTGGGGAGCA
-CGGGGATTCCCCACTTGAAACACAGAGCCCTGCCCTCCACCCCAGCAGCC
-GCCAGCCAGGTTGGAAGCCCCTAAATCCTGACCCCACGTGCAGAGTCTCA
-CTACCGGGCACCCGCATGTGTAAAGACGTGAAGGGTGGAGAATCTTTGGA
-GGGAACACTGCTTCTCAGGGAGACACAATCTGGAATTCAAAGTTTCTAAA
-TTGCAttttcctttttaaggaagtagcagataatatttgtagaaaatgta
-ctgcactgaggaaagtatacaggagaacgtggaattcatctgtgttctcc
-aagcctgctgtcaccaatgtaaatattttggtgtgtttccttccaatctc
-ttttctTTACGTGCTTTTAAGTTAAATGCGAATCATACTGTAAAAACGCC
-TGGCGTTCTGCTTCTTCACTGCTGGTGCGTCCTCATCTTCCACACgctac
-agtctgaatgtgtttctccaaaagcgtgtgctggagacggaatccccaaa
-gcaacagcgtggggaggtgggggctctaggaggtgatgaggcctccgccc
-tcaggaatgggtcaatgccattatggcaggagtgggttcctcactaaagg
-accagctcaaccctctcttgggtactccctttcctccccctgcctgctgc
-cctccaccctgggccatgggatgacacagcaagagggtcccaccccatgc
-ttcccctcagccttggactttccagcctccagaactgtgggcccgtaaat
-ttcgttcattatcaattaccccgtctgtggtattctaagatagcagcaca
-aaatagactaaaataCATCCCGTGAACATGAGAATCCCTCAGCCAGGACT
-CCCAAGGCCACAGAGAGCCCTGTCATGCTGGTAAGCCGCTCTCCGCAGAC
-AGCCCTGATGTGCTGGTAAGCCGCCCTCACCCAAGTCCCACTTCTGTCGT
-AGACACTTGGGTGTTGCCAAATTCCCTATTAAAAATATGTTAGGGACATC
-CTCATCCATGGATCTTTGTGCAGCTCTCCAAGGAGGTCTTTCTGTTTGGG
-AGACTTGACAAGTTTCCAAGGAAGAAAGAAGTTCGGCCCGTGGTGAGGTG
-CACAGGCTTGGGAGCAagctttccagagccttgctgcttcatccacaaac
-cgggacaggaagctgacgtctcccccaagggctggcatgaggacccattg
-attgtgttcacgcagactgcttgtaacagtgtctgctgtacaggagacat
-gatcgtgattattgttACCATGATTAATGTCgtgcgcaggcctctcctgg
-gtgccggggattcagctgcgatgaacaggacaaagtccagatctcatggg
-accggcatGGGGGTGATCTCAGGGAGGACAACAGAGAAAATGGAAGCCAA
-GAACCGGGAACAGGGATTCCGACAGATCTGGGTTTCTGATCTTGTGGTTT
-GGGAGCCTTCACATGGATACTCGCAGGAGTGGGAAGGCCGGGGCTGGGAC
-AGGTGGTGGGGATCTAGCTGCAGAGGCTCCCTCCAGGAGCACAGCTGTGC
-TGTGTTCATCCCAGCGGTGGGGCCACCAAGACTCACAGCTCCAGAGGGCT
-GAGACATGTGGTCTGATTTGGCCCAAGCAGAGTGGACACCTGAGGCGGGG
-GTCGGGGGGGCTCCCTCTCAGCCCCCGCCCAGATCCATGGACACAGGAAA
-GATGCTCCATCCTCAGGGCCATTTGGGGCCACGGCCAGGGCAGGGACTGT
-GTTTGGCAAGAGGGGCAAGAGCCCCTGAAAACAGGGCTGGGTGTGCCGAT
-GTGAGCAACCAGAGGTCAGGGAGAGGAAAGGTGACTCACGCAGCTTCCAG
-GTCCTGCCACTGGAATGGCTGGATCCTGGTGCAAATTTCTGGATGCCAAA
-GTGCATTCCAGAAAAATCTGTCCCAGCAGTGCCCAAAAGTGCTTGTTTCA
-CGGCCATCCACTCGTCATGAATTTTCAGGAAAAGACAAAAGCAAAGCAAG
-TATGGCAAGAAAGTTGTCAAGTTAAGGCAAAAATGCGTCTTTGTCTCTCT
-CCAAATTCCACTTGGACCTTAAGTGACCAGGCGTCCAGATGGAGCCGAGG
-GTGCTGGTCTGCCCGGCGCCCACACATGCTCCAGTTAGAGGACAAGGCGC
-AAGCTCCCCCGATGACACGGGAAGCTGGAGACATTCTCGTGTTCACGGTC
-ACAGCTCTGCTCCTTTGAGAAATAAGCGGCACGATGTTTTTCTAGTGGGT
-TTGCCTTTTTCTCAGTGATGGTAAAAGTGCTGTGTATGTTAAGGTGAGTG
-ACTCAGGACCAAGGTGAGTCTTGACTCCTCTTGGCTTTGCGCTGAGAGCA
-CCTGGGAGAGTCAAGGGAGCACACAGGACAGTCCCTGCTTCGGCTCCCCA
-GGAACACGCGGCCAAGTGCACGCAGCCGGTGTCCTCGGGAGCCGGTGGTG
-GGGCTCCCTGAAGGTCCTAGAAATCCGGCGGCACAGGGACGTGCAGGCGG
-ATGAGCTGGAGGGAGATTCTGCTTTTCTCAGTTCCTAGTGAGAAGTCAGA
-GCCCCTCTGAAAGACAGACAGTCATCTAGGTCCCATCTCAGGAGAAAGTG
-GAACCGCCCGGGCCGTGCCTGCTAGAATCAAGTGCAGTTTTCACAAGACC
-TTGCTGGAAACTGGGAAGATGGACCCCGCGCCTTTCCTGGGAAGAGAAGA
-GTGTGTTTTACACACGTGCTCCCGCCAGGGGAGAGCAGAGGGGAGGCAAG
-CCAGGCACAAAGCTGGCACGTGGGATGAGTGAATCAGACACAGCTGCATT
-TGTGTTCTCGGTTCCTCCAAACACGAGACGCTTGGAACAGGGTCTCTGAG
-GGGTGGACACAAAACAGGGACCGCAGTCTGTGCCTCCTCAGAGTAATGGC
-ACCTGGAGGACTTCAGCGTGACGCGTCCACGGGGCGGGAGGCCTGGAGCT
-GCTGGAGGCCACACTGCGTTCCTGCATCTGGAATATGGGAACTGTGAGTC
-CCTGCTCAAGCCCCCACCCCAGGCCAGGGAATGGCTGGTCAAGGGGCCTA
-AAGGCTGGAGGGCAGGAAGGTCCCACAACTGCGGTGGCAACAGCAATCAG
-TATCCACGCCCATCCAAATGGACAGTTTTCCCTTCATGCTCTAAGTAAAC
-CTGTATAATACGTAACTGTATATTTATTCCCTTTATTACatatatatatg
-tctgtattctctttattacgtatgtgtgcatatttgtgtctgtttatgta
-cctatatgtatgtatcccctttgttacacacatgttgtatgtatgtatgt
-gctacacactgaatgtgtcccccaaaaatgtctatgttgaaacccaaccc
-acagcatcatggggttaggaggtggggcctttatgaggtgatgaggtcac
-cagggcagagccccataaatgagaatagcacccctacaaagagacccgag
-agaaacgcccatcccttccaccacaggaggagacagcaagaagacagccg
-cctgtgaaccaggaagagagccctcaccagaatgggccattcagcatccc
-cacctcagacttccagccatcagaatgctaggaaatccttgtctgctgtg
-tataagcccacaggcgacggtattctgctgtagcagccggagcTAAAATG
-gtatgtgtgcccatgtgtgtatattgtgggtgtgtctgtacatacatgtg
-tgcctatgtgtgtatattgtgggtgtgtctgtacaggcatatgtgtgccc
-atgtgtgcatattatgggtgtgtctgcacatgcatgtgtgtgcccgtgca
-tgtatattatgggtgtgcctgtatatgcatgtgtgtgcctgtgtgtgcac
-attatgggtgtgtctgtacatgcatgtgtgtgcccatgtgtgtatattat
-gggtgtgtctgtacatgtgtgtccatgtgtgtatattatgggtgtgtctg
-tacatgtgtgtgtgcccatgtgtgtatattatgggtgtgtctgtacatgc
-atgtgtctgcccatgtgtgtatattatgggtgtctgtacatgtgtgcccg
-tgtatgtatattatgggtgtgtctgtacgtgtgtgtccatgtatattatg
-ggtgtgtctgtacatgcatgtgtgtgcccatttgtgtatattacgggtgt
-gtCTCTACATGCATATGTGTCCCTGTGTGTATATTATGGgtgtgtctgta
-cgtgcatatgtgtccatgtgtgtatattatgggtgtgtctgtacatgcat
-gtgtccatgtgtgtatattatgggtgtgtctgtacatgcatgtgtgtgcc
-catgtgtgtatattatgggtgtgtctatacatgcatgtgtgcccatgtgt
-gtatgtgtgtgtCTATACATGCATGTGTATGCATGTCACATTCCTGGCAA
-TTATGTGTATCCTAACAAATGCCATGTGCTGCGGCACCGTCAGCTCATCT
-AATTATTTCCAAATCATTTTAAATCCACTttcaggtataatttgtataaa
-ataaatacactcatgagttttgccaaatgggtgcaatgtgtacccagcac
-cacaatcaagatatagaacatttccttcatcccaaggcttacctgagccc
-caacccacccagcccccagacccagctctaggcaagcatccactggcttt
-ccatcactaccagttagtttacagtttcttgagtttagtttaagtagaat
-cacacagcatgtcctctgtgtttggctccctccacttggcgtgtttgtgg
-ccatctatgctcttgtgtgtatcaatagttcattccttgttatatccaag
-tggtttcctgctgtatagagcacattatatacacagtatctgagcatatc
-atctataaaaccatatatggatgcattcccaagttaatagcaatgtggat
-tgtttgcagcttttagctctttgaatgaagctgcaatgagcatttatgta
-caagtctttgtggggcacgtgtcttctcttttcttgagtaaatatctaga
-aatgtaactgttggatcatataatgagtgtatgtttaactttattaaaaa
-aaaaaaaataccaggccgggtgcagtggctcatgcctgtaaacccagcac
-tttgggaggccaaggcagttggaccacctgaggtcaggagtttaccctgt
-ctctactaaacatacaaaaaattagccaggcatggtggcgggtgcctgta
-atcccagctacttgggaggctgaggcaggagaatcacttgaacccaggag
-gcagaggttgcagttagctgaggtcatgctattgcactccagctgggcga
-tacagcgagactctgtctcaagaaaaaaaaaaaaataccgaactattttg
-caaaaacatgaatcagtccacaatcctaccaaaatgtataatagttcaca
-tgtatgatgtatgacagtgactattcattcttatcaatatttggtttagc
-caaactttttagaactatagtcattcttatgggtgtgtagtggtgtctca
-ttacagagttaatttgttttttctgattaataatgatgttgaacattttc
-atatgcttaaatatctctatttttaagtgtctgttcaaaCAGTGaatttt
-gatcaaataccacttattgattttattttatggtttttgtttttcatgtc
-ttacataagacatttttgccttccaaggtaacacaggtttttttccacat
-gtttccagtttttccatttaaatctaggatctatttttagtcaatgtttg
-tatatggtatgaggtaagggttgaaattcactttgtttccatacagatat
-caatttttagccctatttttagattctcggttttgttccactgaactgtc
-tttatgccactatcacactgtctttattgtagtcttatagtaaatcttaa
-aatcaggtaggataagtcttccaactttattttttgtttccaaaattatt
-tttcttattttcaattttttgcatttatacataaattttaaaatcagttt
-gccatttctacaaaacatctttggggattacattgaatctacagaccagt
-tgggtagaattgaaatcaacagtgttgagtcttatgatccatgaacattg
-tatatccttccatctatttagttctttgttaaatttctctcatgaatgca
-ctatatttgtcagtgtgtgtgtgttgcacatttgtttattcttaagtatt
-tcttgtctcggatgctattataaatgattttgttGGTGGTGTTGTTTAAA
-ATTGTTCATAGTATCTTTGATGTGGCCATTGCTAGCTACATGATGACCCT
-GTCTGGGTCACATTTTGACACAGGGAACGGCACTGGACTTTTCCAATGAC
-TTTCCCATGGAATGGGCAGTCGTAAGTCCTGGTGCCAGCGGGAGCACAGC
-TGGACATGCTTTGAATCATAATGGCCAGGTACACACCCACATGACATGGA
-CCTGGGTGCCTGCACTCCTCCTGACCCCTCAACACCCACTGGGTACTGCC
-TGCTCCCTGCTCTCCCACCCCAGCCTTTGCTCACCCCTCCTCAAGTGCAG
-ACACACCCACCTCCACCTGCTCCACCTCTGTCCACTCGGTGACCACCGCA
-TCAGCCATCAGGGCTCCAAGCCCATCTCCTGTGGACCACGTCCTTAGGTA
-ACTTACAGGGGAGAATGTATGTTTGCATCAAAAATACTGTTTGCAGTGCA
-AATCCTCTTTCAGCTTCCCCTGAACTAACAGCAGTTATATCCCCAATTTG
-TCTGGACCTTATAATGCTACTAAAGAATTCTACGTATTTAATAATTCTAC
-TATTGACTAAAACCACACCATTAGAGACCCATTTACCAAGGGTAATTGTG
-GCACTTAGGACAACTGGCTCAAACGAGTGCAGTTACGTTAGGATTTTCGT
-TACTAATTAACGCCACTACTCATTCCAGCTACTACTGCGCTATTTGCCAA
-CTGGCACTGGAGTTTTTCAATATCTTAACAAGAAGCATAGCCACACAGGC
-ATGGGTCGCCTGGAAATCAGCCAGGAGCAGGCAGCAGAAGCAGCGATTCT
-CTGCTGGGCATGTGTTTTTTTGGATGATGGATGGGAGGTAACAAAAAAAA
-AAAAAAAAAGCCAAGGAGAATATGGGTTGGGGCTGCCTCTGTCAAGCCAG
-CTCGAGTGTCTGAGCCCCCAGCCCAGGTGGGAGCGTTCTCACCCCATACG
-CTGGGAAAACCTAGCTGAGTCCAGCAGCTGACCCTGAAATTAGACTCACA
-GCTCCTGCACGGCACACCCAGACCCGTGCTGGGATGCCCCCAAGAACATG
-TGGCGGGCTGGCTCCTGGTGGGTGGCCCCGAGTGAAGGAAGGACCCGGGA
-GGGGTCTTGGAATGACTTTAGCCAGGCCTCTCTCATTCCCAGCTGCTGCC
-CCTGTCACACAGCAAGCTGGGCCCTGCCTGAAATAATTCACCCATCTTTT
-CCTAGAGGCTTCTCAGCCAGCACACCTGGATCCCCACGAAACTGCAGAAA
-CTGTGACTCAGACCCGGCAGCTCCTTACCAAGCCCCTCCCTGGAGCCGCC
-TCACCTCCCAAAGGGCTCCTCTCTCTTGCTCTTCAAAAGTTAGCCCCAAC
-GACCTGCGGCACACGGCACACGAGACTGGCTTCGCATTTTGCGTTAATTG
-GAAAGCAAAGCAAGCGTGGGAGGGAGTTGTTTGTATTCACGGCATCAATA
-ATTTAACATGAAAAGAGAGAAAATAAGAGAATATGCAATCCACACATGCA
-AATCTGGCTGAAATTTATTACTTACTATAATAAAAAAAGATTTTAATAAG
-GCATCAACTATGCTATTTTAAGAAAGGAAGGGGGCACGGGATGTGATTCC
-TGTGTTCCCTACATGACAATCTTAAAAAGATAGAACTTTAggaatgaaat
-atatccaaaaaaattaacaggagttgcctctggataaccaagttatggat
-tatttatttgaattttcttttttatttcattgtattccaatatttccctc
-tatgatgggcattttttagttctataatAGAGACATGTTTTAAAGTAAGA
-GATGACTGGAAACGGAAGACTATTCATTAAAACATCCTATGCCTAGCGAA
-GACTGCTAACGTCATTATGTGCAACTTCTCAACAGAACTTTCAAAGGCAG
-AAGGAATAGCTCCACCAGGGGCCTCGTGTGCTCATCCAAATTTGAATTCA
-ACTTTGCTCCTAAAATGAACGCACTGCCTCTGACCCAGCAGAGACTGAGG
-AGCTCCGAGTCTGAGGTCTGGCTCCAGTGGGAACCGTGGGGGGACTCCAT
-GCAGTTTCTCTGGGACGGAGACACCGCACCTGGACATGAAGGGACGGTGG
-GGATGCAGGCCCCCTCCGGCGCTGCGCTCCACAATTTGAACATAATCCAG
-GCTGATGGAGGTGGTTTAAGACAGGAAACCACACCCCAGGGCTGCGGGAT
-GCAGGCGAGAACGGGAGCCCCTTCCCCACAGGCTGCGTCCTGCAAGGTCC
-ACGGAGCTCTTTCCTCTCCCCCCTGCAGTGACCTATACACAGAGACACCA
-TCTTCATGGACACGGACATGACACGCGCTCTGGGCAGCCTGGCTAGAGCT
-CTGCCCACGGCACGTCAGCCCCTCCACTTCCGTCTGAAAGGTGCCGGCCG
-CGTGTGTCACGCGAGACCAGTCCTGCACGTGGATCTGGACGGGGCAACTG
-CGCGAAGGGTCATGAATCCCGCCGGCCAGGGAGGATCGTCTCCTGTGCAG
-AATGAGGTGCGGTCAGAACACGGCAGAAGCTGGGAGCTCCCACCCGGCTG
-CCCGAGACACCTCCCCTCAAGATTCACCAAACACCACGACGTGCAAAGAA
-GAAAGTCCACGCCTCCGCGGAAAACACTGCGGCTCGGCAGGTCAATCCAA
-ACCTGGAAACACCTCGGCGCGGCCTGTCAGTCTGAACCCGGAAACACCTC
-GACGCGGCCGGTCAATCTGAATCCCCAGAAAACACCGCGGCGCGGCAGGT
-CAGTCCGAACCCGGAAACACCGCGGCGCGGCCTGTCAATCTGAACCCGGA
-AACACCGCAGCGTGGCCTGTCAGTCTGAACCCGGAAACACCTCGACGCGG
-CCGGTCAATCTGAATCCCCGGAAAACACTGCGGCGCGGCAGGTCAATCCA
-AACCCGGGACATCATTGCTACCAGGGCGGAGGAGAATACACGCAAAATAT
-ACCAGGGCGGAGGGGAATACACGGAAAATATACCAGGGCGGAGGGGAATA
-CACGGAAAATATACCAGGGCGGAGGGGAATACACGCAAAATATACCAGGG
-CGGAGGGGAATACACGGAAAATATACCAGGGCAGAGGGGGAATACAGGCA
-AAATATTTCAGGGCTGAAGAGAATACAGGCAAAATAAAGTGCATCTCCTA
-GAATTCCCGCAATCCAACAGCGTAGCCCGATTCCATTTCCAAATAGACAC
-CACTTTCTAAAAACGTCACGGAGGAAGATGCTTCCTAACGACTCAGGGGT
-CTGTCCATAAACTTGGCATCATGTGGTCCAAAGTCTCTGGAGCGTGGAGG
-GCGATCTTCTCTAATCCCGGGGTCGTGCTTTCTGGGACAGAAATGAGAGA
-CCCCAGAAAGTCCCTGGATGCTACCCAGGGGACTGAGGGGTGGTCCACAG
-CACCATGTGTTCTGAGAGGGGGTCTCCCTAAAGGTGGGGAGCAGGGAGGC
-CGGGCACGGCCCCCACTGGCTTCAGAGCTCCTCGCAGCCTGCGCCAGCGC
-AGAGCAGGACGGGAAACAGCCCCGGGAGCAGAAGGTCCCAGCAGCGGAAT
-TCCCCTCCACTTGGACCAGGCCTGCGGGAGATCCGGGCACTGACAGGCGG
-GGACATTTTAGAATCTTTTCAAGAAAAGATAAAGAAAGAAACAAGAGTAA
-CAGGAGGCCAGAAGCAAGGGCATCTACTGCAGACAGCGGTGCCGCGGGGC
-TGGAGCTGAAGCTACCCAAGGAGCCCCAGGCTCGGGAGCCTCCAGGCACA
-GGCGCCGTCGGGAGCCTCCAGGCACAGGCAGCGTCGGGAGCCACCAGGCA
-GAGGCAGTGTTGGGAGCCTCCAGGCACAGGCGGCGTCGGGAGCCTCCAGG
-CAGAGACAGCGTCGGGTGGCAGGGAGCCCCTCAGACTGTCCCTGTCCCAG
-TGGTCTCCAGCCCCCGACTGCACTCGACTCTGCGGTTCTCACCCCTCTGC
-CATCCCAGAGGAAGGGGCATCCCTGCGACTTTCCATCCACTACCCTGGCC
-TGGACCACTCAACTCCAGGGACTTCCTCCACCACCCAGACGCCTCCCTGA
-GCCCAACCCGGTTGTCCCTACCCATAACTGACATCAGGGCACCTTCCAGG
-CCCCGAAGTTGTCTCTGAGGCCCCAGCTTCAACACGTCGCTGGCTGGTGT
-GGGCTGTGGTCCCCACGGAGAAGGAGCAGACAGGGCAGGAGGCACGGCTG
-AGGACGCTGACCAGGCTGCCCCAGGCTGCTCCAGGTGCCAGCCAGGCCCT
-TGTATCTACTTCGTGTCCTCGTGTTGACAGTCTGAGAAGTCCAGCTGCCT
-CCCAGGGGCATGTGTGCCCCCAAGAGAATGTCACAGTGGGAAGGACTCAC
-CCCTCGCCAGCCTCCTTCCCTCCTTCTCTACCCACCAGCCTCAGCATCCC
-CTTGATGAGGGGTGAGCAGATGCAGCTGGCTCTGAGCAAAGAGCTGGCAC
-TCCCCCATCAGGAGGCTGTGCCCCGGTGGCTCTGGGTCCTCCTGGGCCTC
-TGGGGACAGTGCGGCCCCCTCCAGGTCCACTCCCAGTTCTTCATCCACCC
-CAAACTACATCCAGCGCTCTGTCCAGCATGGCTTACTGAGGCTCTGCAGT
-GAAACCATCCAATAAAGACACAGGAAGCACTCCTATGATGAATGACAAGA
-GACGTCCCCTGTTTGAATGCAGGCGTTCTCTCCCCTTACAAAAATTTTAA
-GGAGAAATTAAGGTTTAAATGCTAAGTTCCCTTGCAATTTAAAGTTCAGA
-AACATTAAAGTCCAGAGGAATTAAAATCAGGTCTGTCACCTTTGCGAGCC
-CTTTCCTTCCCGGTTTGTCATTCTGCTAGGCTTCCACTGTGGGACCCTTG
-ATGCCTGGGGGGTTTCAGGGTCTTTCTTCCAGGCTCACTTGGAAGCGGGG
-GGCTTTACTCCAGTCCTCAAAGACTGCAACAGCCACACCAGGCCTCAGTG
-CACAGTCCAGGTGTCTGAGACACACAGGCCATCCCCACAGCAGCCCCCAC
-CACTGCAGGAAGCCAAGAAGCCAGTTCCTGGAGCAGCTCCCCCGGGATGC
-TGCCTGCCCCCTGCCTTCCCGGACAGCAGAAGCATCACACGTACCATGTC
-CTCCACCACAACGGCCCAAGCCCTACCCACCAGGAGGATGCGGAGCCCCT
-TCTCAGCCCACACATCCCTGAACATCCCGAGAATAACGTGCGTGCCTGCA
-GGTCTGATGAACATGCCCTCTCGACCAGCCATGCTGGCTTGAAGGTGCAG
-GGGAGCCGCCTCATGCAGAGTCCTGAGAGCCTAAAATCCCCACAGCTCTT
-CCTCTCCTGCCCACCTGCCACCCCCAGCGCAAGCCCCGGGCCCCCAGCCC
-ACAGCATCCCTGTTCTCACCACTGTCTCCTTCTCAACCCACATCCAGGGC
-TGAGTGCGGCGCCTGGGGGAGCAGTCTCAGGGGTCCCAAGAGCTTTCACA
-AGGAGCTCGAAGCTCCACCCAAAGAATGCAGAGGCTGCAGCTTCTTGCTT
-CAGAGCCAGGAGGAAACTCAGGCACCAGGCGTCTGGTGCATGCGGGGCTC
-TGCCAGCCACGATGCAGGGAACCTGTGACATCATGAGGCTGTTCCACGGG
-AATTCCACAGCTCCCATCCTGGAGCACGGCTCACGGACAGGAGAAAGGGA
-AAGGCTGTGACAAATACAAACGACCAGTCACCTCCTGCCCCAACTCCAGG
-CCTGGGTGACGGATGGGCCGGATGTCATCGGGGCACAGGTGATTGTGGCC
-ACATCCTGGTTATGCGGCACCATCAGAGCAAGGCTCGGCTCAGGCAGGTG
-TGGAGCACTCACTGGGGCTGTAGATGCGGGGAGGGGGAGGACAACAGAGT
-GACCAGTGCAGGCAGCACAGAGTCACCAATACAGGAAAAACACAGTGACC
-AGTGCAGAGAGGACACAGTGACCAGCCGTCGGAGGAGGGAGGAAGACAGT
-GACCAGCCATCAGAGAATAGAAGGTGACGGAGTGACCAGCCGTCAGAAGA
-GGAAGACAGCGACCAGCCATCGGAGAATGGAAGGTGACAGAGTGACCAGC
-CATCAGAGGAAGGAGGAAGACAGTGACCAGCCATCGGAGAATAGAAGGTG
-ACGGAGTGACCAGCCGTCAGAAGAGGGAGGACTTGACATGACCAGCCTCT
-CATGTCTACTCGAAGGCATCTTATGCCCCATACCCCAGGACAGAGGGAAC
-CTGAGGTTTTCTCAGAACCTGGGCATTGGCGTGGGCTTTCTGGGGGCTTT
-TGAGTTAGGCGGCCACGTGCAGTCCACATGCCGTGTGCTCGGTGGACAGA
-GCCACTTTGAACGCAGCTTCTCAAGCAGGATTTCCTGGGTAGTTTCTACT
-CCTCAGGCACTGACCCAGGCAGCTGAGACAGCACATGTGCACATGACGGA
-AGGCGCCTGGCTGCAGGCAGCCTCGACTCAGCCTGGGCCCTGGACGAGGG
-ACAAAGGCCCAGAGAACGCAGGGGTGCACGGAGCACCAGGCCCAGGGGTG
-GCCTCACAGGGCAATAGGAGGGCCCAGACCCAGGGCAGGTCCAGGGGCCG
-CCCCTGCATCTGCACCCGCTTCCCAGGAAGGATCAAGGCAGCGAGCTCCT
-CACGGGGCGGGGGCAGGCTCCACTCTGTCTTTTTCTTTCttttcctttat
-tatcatgtatttgacaagtaaaaatatgtattcgaggtgcatgacccagt
-gaatatgccgacatacacgtgctttgtggaagggtcaccacaatcaagct
-aattagcgcagcctcacctccgccagtcacctttCGAGTGACTTTGCAGG
-AGAAAGCAAAGAAACAGCAAAAGAACTCAGGACCTGACTTTGTTTTTGTG
-TAAGGGGCCTTCACCCATTCCTGCACGGAGCCTAGGATCTTCTAGAGGAC
-GGAGAAAATACACAGAGGCAGTCGTGATGCAGGTTTTGAAACTCACTCCG
-GGATGAAAGGGGAAGCTGTGAACAGCtgttctgctgtggattcacaggtg
-ctcgtgacctgaccaaggacgaaggcatcgccagcctcctcggaccctcg
-ctggcacccacatgtgtgcggtcacctgtcacctcttgatcccaaccccc
-tccccgtccccctgcccttaacataaaagagcctggaattcgtgcagact
-tgagatggtctctgtgacactctcagtctgccgtctccaaaggctgctga
-ctcGAACCCGCTTTTCCTCCTGCCAGCTCTCCTCTGCCGCGTGTGGCTTT
-CCAGCAGGGAGCACCTGGGTTCTGTGGCAAGAGCACTTGAGGTCAGGTCA
-Cagcaaatccatgtacccaacacgttctccttcaccacggccaccctgct
-gtcccaagcttgtcacctcccaagtgagccttggtgccattcgaccaacc
-tctccccagttcccccctgcccagcccttccccaccctctgcctctatga
-actcaactattttagctcccatgcacaaattagaacgtggtatttgtctt
-tctgtgtctggcttttgtcacgagcgcaatcgcctccaggctgtggcaaa
-tctcaggacgtcctcctcttccgagctgggcaggatgcaggtcgcctgtc
-cattcgacattttcttcgccccttcctctgtggacacGCCTGCTGGCATC
-ATGGAGATTTTCCTGGTGCCCAGAACATGACAGAGCTTCACTCAGTTTGA
-ATGCATGAAAGTGTGGCTTCTCTCTGCCTCCCAGGCTGTGCTTGGGAGCT
-GAGAACATCTCCAGGAAGCCCACGGGCTTCCGAGTGGAGGAGGCAGGTCG
-CAGACGCGTGAGGCCCTGAGACTGAAGGAGCTGGAAAGGAGAAGTTCACG
-GGGGGCCGTTGCTCACATTGGGAGCTGTGGCCGGAGGGGCACAAATGCTG
-CTTACCTGGGACTTCTCCCAAACAACAAGAGAAACACCTTGACAACAAGT
-CAGGTTCCGGCCCCTAGTGCCGCAGAACTGAGCCTTGACAGAGCTCACAC
-CAAACGTGGCTCAAACTCACTGACCCCAGCACCTGCTCCCTGTTCAGCAG
-GAATTGTCTCCTTGGTAGAGATCCTGTCAAGAACTTTCCCACTGTTCCCA
-TTAATCCCAGAGGCAAGCTCCCCCCGCTTTCCAGGCATGTTTTTATGTAA
-ACAAAGTGGTTAATTAGACAATTCGCTAAGCTGTTTAAAATGCATTTTGC
-TTTAAAAGAACAAGTAATCACAATATAAAAATCACAGCATTTCTAATATG
-TCAACTAATTCCTCCATCATATTTTTAGAAACAAATGGATTCACATAATT
-TATTAATATGCCTCTTCTAATTTCATTCATAAATAAGTAATTGCATCTTA
-ACTCCCATTTGATAGATGGGAAAGATTGCAGAGCTGGGAAAACAGGAATT
-GTTGCACCCTTTGGGGGAAAATCAGGGAGGAAAGAGCCAGGTCGGGGCTG
-TGGGCCCTCGGGGGATTCTGGGGAAGCTGCTGTCTGTGTGTGTTCCCCAT
-GGCCCGGTCACAGAGCTATCCTCACGGGCGTGGTTCTAGTCTGTGAACAT
-GACCCGTATTTTTGATCAATTCTAATTATAAATATTAATCAAAAAGGAGA
-AGGAAGGCGAACTCCAGGCATTTGAGGCAATAGGCATCTGGCTGAAGTTG
-TCATTAGCTGGGTCACTGACAGCCCCACAGCGGCCGGCCGACCACACAGG
-TCAGCCACGGTGGATGCCAGGTTCCCCAGACCAAGGGCTGCCAGGAGCGG
-AGGCACTCATTTGCAGCCGAATCCTCAGGAAATGCCCTCAGCGAAAACCA
-GCCACCTCCACCAAGGTCAGGTCGACCCCGAAATGCTGGATGAATGTGCA
-CACTCGCTGGGGCACCCTCCTCTTCCTCCCCTGCACAAAGAGCACTGCAG
-CCGAACCCCAGCCTCAGGCCACGGCCAGCACCGCAGAGCCACAGGGCAGA
-CGCCGTGCACACCAGACCTGCTGGGCCACAGCCAGGCCCGGGTGGTGAAG
-GACGGGGACCCAGGCCTCAGGATGGGGAAGGTGGTGGAGGCCCTGCTCTG
-AGCCTTCTAAGCTGGAGGCCCCGGCTTAGGGGCCATGCATGGTCCCACCT
-TTCGGGTAACACCTCCCCACCCCAGGGCCTGCCCCCAGCTGCTCCTGAAC
-ATGCCTGTCCCTGGAAGTGCACCACATGGAATCTTCCAGAAGGTACCTGC
-TGAGAGAGGGAAGGGACGTCCATGGTCCTGCAGGGCTGAGAGCCGTCAAG
-GGAGACAGGCACAGCACATAAGCAATGCCAGTGACGCAGGAGAGCGAGAG
-CCCAGCTCAGCCCACGCCGGGGACCAAAGGCCCTGAGAAGTGACCGTGCT
-GGTAGGCGTGGTGTAAGGCTGGACACTGCCGGCTGACCTGCTCCCGGGGG
-CCCAGGAGACCCTGCACTGGCCACTGGGAAGAGTGGGCAGCAGCAGCCTC
-CCTGGAAGCTGGGGTGGCCGGGCGGTGTGGGCAGGGCTGGCGGCCAGACA
-CCATCACAGAGCCGGGCCCCTGATGGCAGAAGGGGGCCTGACTGTCAGAA
-GGAAGGCAGGGCCGTTGTGGGGCTGAGCAGCAGACTGAGTGGTGTACCGG
-GGCCTGCCCCACAGAGGTGGGAGTGAAAGCCGGTAGCACCCAAGCCCCGG
-GGGCAGGAGAGGTGGGCAGCAGCTCCACCCACCCCACTAAGGCAGTCAAG
-ACGGAGGCTGGGGCCACAGGCAGCTGCCCAGCAAACCCAGCATCCCACGC
-AGCCTCCCCCCTGGGGCAGGTTCCAGATGCAGAATCCAGACAGGAGAGGG
-GAAGAAAGAACCCTAAATGCACAGAAGCCTTGGGCAAGGGTCCCCCTGGC
-CCTCCCAAGGGGCGCTGGGGAGGAAGGGTCTGTCCAAACGGTCAGGGCAG
-TGGGCTGGGGACAGAGCAGACGCCAGCATCAGGGAACTGCAGCCCCGCCG
-CGCCCCCATAGAGCAGAGCAGGGAACGGGAAATGAATGGGGACCTTCCAG
-ACGGAGCTCACGGAACTCCCAGAGGTCATTTCCCAGATCCCCAATACGTC
-ACTGGAATAGCCCAGTTGTCCTGACCTGTAGGGAAGACCATGTGGAACCT
-TCCAGAATGTCCCTTTCCCACCCAGCTGAGCAAGGgagacagtgggagag
-acagaaacctagacacagtgagataaagacagacatagagacagtgacac
-agagagacagtgaATCAAATGCATTGTCACGCCCCAGGTGGACGGCAGAG
-GCCGGCCCCCACATAAATCCTGAGGGGTGCAGAGGGGCCTGGTCCTCCCC
-CAGTCAGTTCCCAAGTCTGGCCTCTGCAAATCCAGCAGGCCCTGGATGGG
-GCAGTGGCTATGGCTGACGGACCTGCCAGTAACCCAGGGGCCCTGTGCCC
-CGTGACGGCTGCATAGGATGCAAGCTCTGGacttgggcaatctctgagga
-gccaccccagccccagagcccccgctgggcaggtgaggcctctgctgtgC
-CCCGTCCTGGCCTTCTCCCCACAGCTGCCAGCCAGGCCACTCCCCAACAG
-ACAAACCTGCCACATCTGTATTGGACCCACGTGCTGCAGAGCTCAGGGAC
-ATCTGTGGTGACCTGGTCAAGTGTGTCAAGCCAGGTGGCTGTAGGCAAAC
-TGCCCACTGTTGCTCTAAATCATCTCCCACCACCTCAAAGCTGCCCCCGG
-TCACTGGTGCCACTGGAGGAAGGTTCTGGGAGGTCCCACGTTGGGTGAGG
-GACACAGGGTCACAGACACTGGCCTTGTGGGCGCTTTGCCCCCTCTCCCC
-TTGGCCTGAGAGCAAGCTGGTCCCATGCCTGGGGGCCGCAACCGAGAGCC
-AGGCCCCCTACAGATGTAGCGCCCCTTCCGAGGACTCCTGGCACCTTGAG
-CTTCCCAGGGCCTGGGGATGCCGCTCTCCCGCCCATGAGTCCACCTCGCA
-GAAACCCTCAAGTGCCACCCAGACCCTACTCAAGTCCGGGCCCCTCGCTT
-ACGACTCTCCCTCCCATCCTCCACTCTCCTGGCCTCTCCCCAGGGCCCTG
-CTCGGGGCTGCTGACCTTTGGGAGGGAGGCACAGTGATGCTCTGGGTGCT
-GACCTTTGTGGGGAGGGCACAGTGATGCTCGGGGTGCTGACCTTTGTGGG
-GAGGGCACAGTGATGCTCGGCGTGCTTACCTTTGTGGGGAGGGCACAGTG
-ATGCTCGGGGTGCTGACCTTTGTGGGGAGGGCACAGTGATGCTCCGGGTG
-CTGACCTTTGGGAGGGAGGGCACAGTGATGCTCGGGGTGCTGACCTTTGT
-GGGGAGGGCACAGTGATGCTCGGGGTGCTGACCTTTGTGGGGAGGGCACA
-GTGATGCTCGGGGCCGCTGACCTTTGAGGGGAGGGCACAGTGATGCTCGG
-GGCTGCTGACCTTTGTGGGGAGAGCACAGTGATGCTCGGGGTGCTGACCT
-TTGGGAGGAGGCACAGTGCCTGGAGGATGGGCATCTCCTCACTGGCCCTT
-CTATCCAGGCCCCTTGCCAAGCACAGGGGATGTGCACAGCGTGCGTTTAT
-GAACTGAGAGCAGAAGCAACAGCAGCCACAGGCTCCCGCATCCCCCTTGT
-GCCCTGAAAGCACCTCGGTCCAGGGGTCAGGCTGGGTCCACAGCTCCCGT
-TGGTGGCCTGGGCTCAGCGGCCCCCAGCTTTTCCTGGAAGACGCAGCACA
-AAAAACTGATGAGGCCGGCCAGGCTCCCTCCAGAGCCCTCAGGGACGCAG
-GAGGCCACCAAGACCAGAGGAACATAAATCTCATGGCCTTGGACACTGCC
-CAGTTGTAAATATATTTTTCGCCCCTCCATTTATCACAGCTGCCTCTGAT
-GACACCCACCTGGTGTGGGGCCAGTTGTCGTAGCTGCCCTCCTCAGCACC
-TCCCCGCAGGATTGTCCCCAATCCATCTCTGACAGCGTCTGCAGACAGGA
-GCACAAAGCTGCCACCAGCCCCCAAACGGCCACCCTGACGCCGGGCTGAC
-GGCGCCATCCTGGGACAATCTCTGCCTGGGCACCAGGCCTCACTCCAGGA
-ACCTTCTGCTGTGAGGTCTTTGGGCACCCTCTCCCTGTTAGCCCACTTCC
-CATCCCTGCTTCCACCTTTGGGACCTTCTCCCTGTTAGCCCACTTCCCAT
-CCCTGCTCCCACATTTAGGACCCTCTCCCTGTTGGCCCACTTCCCATCCT
-GTTCCCACCAGAGGAAGTGCCTTCTGGGGCGACATTTCTGAGCCACCGAT
-GCTACACATTTAGTACTAACCCAAGCCATAAACCGTTTGTATCCatttaa
-agtgttgaaaggataaaaccaacaacctataattctgtacccaattaaat
-tatcttcttaaagtcaaggagaaataaCGGataaatggagaaataaatgg
-agaaatGGAGAAGTGGATAATAGTAACCACATATTTGGCGATTATCgctt
-atggataagtaaaatgaatgacaccaaagttgtaagggattggaacactc
-tgccatgaggcaactgcactgcctgtgacgtggcaccacactatttaaag
-tgaacctctctgttcactgtaaatgtatattgcaaactctatgacaacca
-acaaaaaaagtagaaagaaaacaagaagtgtaactgatttgctaagagag
-gagagaaaatgaaatcatacaaaattctcaatcaaaaccagagaaggcag
-aaaaagaatggaagacaaaaaaagaaacagagaccgagcaacagcaaaca
-gtaaccaatgtggccaacaggaatccagctatgtggatggtcgcttcaga
-agtcaggggttgacgtgcatccatcaaaagagagagactgggccaggtgc
-ggtggctcacgactgtaatcccagcattttgggaggctgaggttggagga
-tcacgaggtcaggagcttgagaccggcctggccaagatggtgaaacccca
-tctctactaaaagtacaaaaaaaaaaaattagccaggtggggtggcgggt
-gcctgtagtcccagctacttgggaggctgaggcaggagaatcgcttgaac
-cagggaggtggaggttgcagtgagctgagatggcaccactgcactccagc
-ctgggtgacagaaagagactcctcgaaaaaaaaaaaaaaagaaaaaaaaa
-cctgactctatgtcatccacaagaagctccctccaaatataaagacacac
-atagatgaaaagaaagggttggagaatgatacaccacgctaacactaacg
-gaaaacacaggagttgtgattaatcccagccaggaccagtatcagggata
-aaaggggcactgcgtggtgatcaggggtcagtcccctggagggagactag
-caatcctgaatgggtgttgcctgacagcagggcCCCCAACCCCACCCCAC
-CCTGGGGGGTCTCCCCAGCCCCTGTTGTCTCCTGCCCCTGTCCCAAGACC
-TCTGGACCCACCCCCGGCACCCCCCTTGGCTGCACAGGGGACATTGCGGT
-TGTTAAACATGGTTGCAGTGGTGGCCCAGGCCCATCCCAGGGAGACACTG
-GGCTTCCCTGCCACAGAGCCGTGGGCCTGAAAGCACCATCTGGAGGGGTC
-TGCTCCTGCCTGTGCAGCATGGTGGGAGCTGACCCCACAGTGCAGTGCGG
-CTCCAGGTCCAGCCTCTAAGGAGGGGAGGGGCTTGGATGTGCCTGACCCA
-CCCACTGAGGCGCAGGGTGGGGAGACCAGGGTGTGGTCATGTCAGGCTGG
-GGGGCCAGCTCCTCCTGAGCAGAGTGGGATCACCTGTGACCCATCCACAG
-CAAGGTCGGAGAGGTGGGCATGGCGAGGCTGCCTCCCAGCTCACCAGAGA
-GAGTTTCACCAACATCATCAAAGCCTTCCACGTCCACTGTGCACATAAGC
-CTCTCTCAGAACGATCGGGAGCTCAGTCGGTCAGTGGCACCGTTCTCAGC
-CAAGGACTTCGTGGAGCCCGGCCCATTTACATAGGTAACAAGAAGGTAAA
-TTTTCATCTGATGCCTACACTTTGACACAGGCTCCTTCTCAAACATCTCC
-TGCGGACGGAAGGCAAGTGTCAGGCAGCACCACTCAGCCCGGCCACACCA
-AGGAGACAGGAGGGAGTTCCTCCCACCAGGAGGGCAGGGGTGGGGGACGA
-GGACACCCAGCCAGGCCATCCACAGCGAGGATGAGGTGGGACCCACCCAC
-AGGCCCATGCTCCGTGCACAGGGGATCCATCCACAGACCCATGCTCCATG
-CAGGGGGGGATCCACCCGGGGGCCCACGCTCCGTGCAGGGGGGGATCCAC
-CCGGGGGGCCCACGCTCCGTGCAGAGGGGGATCCACCCAGGGGCCCATGC
-TCCATGCAGGGGGCTCCATCCACAGGCTCCACTCCAAACTGTACGTTTTG
-GATGTAAACGGTTTCCTTTCCAGTTTTTCCCAGGCAGGTAGGAATTCAGG
-CGAACATACAGGATCCCTGGGGGACTGTTGGACGAGGGTCCCGCCCGCCG
-CTGGAATCTCAGAAAGAATGAGTCAGGGCTCGGGACCCCCACAAAGGCAG
-GGCAGGGGTGCCCCCCCAGGGGCTGGAGAGGAAAAGCTGAGAGTCAGAGA
-ATGGGCAACAGGGCACGAGACAGGGCAGCTGGAGACAGGAGGGATGGTCG
-GGTCAACCCCGGGCACCGCCCAGGAACATGGGTCATCCCTGCCAGGGAAC
-TCAGGGGCAGGTGGCTGAGGAGGCCTTCCAGGTTCTCTCAGTGGGGGATG
-AAGCCCTCACGCCAACCAGGCTCACAGATCCCAGAGGAGGCAGAGGCAGG
-AAGCTCGGCTTGAGCTGCCCAGGTCTCTGGGAGGCTCCTGTCCTGTTTCA
-GGCTCCTCAGCCCAGCAATGTCACCACACTGCCCTCACAGGGAAGGGACA
-GGGAAATGGCACATGCAGCTGTTTGGGTACAAAAGCCCAGGCAGAGCCCA
-AGATGCAGAATGAATGAATGGGAGTGAGGCGGGGGGGCCCTCACGGTCGG
-CCCACCCATGACTCCAGGCCCCAGGCAGGGCCCAGGATGCACAATGGATG
-GGAGCGAGGCAGGGGGGCCCCTTGTAGTCGGCCCACCCATGACTCCAGGA
-CCGCGGCTCCCGGCTCTGGGACCGGCTGGGACAAAGGGAACACCGCCCAC
-TCTGACACTCATGGAAAGGATTCGGATCAGCCCACAGACCTCCTACAGGC
-AGGGACCCCCACATCTGCCACCCGACAGAGAATCGGCCGCTTAAGTCTCC
-AGGATGAGAGGCAGCTGGGTCGTAAATTGGCTTCTCACTTTTGGGGACCC
-TAAGTGTAGCATTTCCTTTAACTTGAGCCAAACCCTTTGTCCCAGAATAT
-CTTTGCTCCTATTTCCCCGGCCCCCTGACTGCACCGGACACCCCCTGAAA
-CGAGAGCATTGCCTCAAGCACTGCAGGTGGCACTGAGTCCTTCTCAGTCC
-TCCAGACCTCGCCCTCTGTGGGAACACCCCCCATCACTGCCTTCCAGGGC
-GGCCACTGTCGTCTGCGCTCGTGGCTCCCATGCTCATCCTCACTCAGCAA
-ATTGCAATCAGCTCCGACAATGGCCTAGTTAAGGGCACCCACCCAATGAC
-GCCCCGGCTGTGCATACAGGAAGCGTCGTTGCCAACCGGACACATTGCTG
-CCAGAAACAACTGAGTGTGTTTTGGAGACGCCTCCTAATTGAACTGATGC
-ACTCAGGAATCTGGGTGGTGGAGGCCAGCTCCCTGCAGGGAAGGCCACCC
-CGCCTTCCAGGCCTCCTAATTAGGACTGAATGCTTCATTTTCTCTGCAGG
-CAGGCAGGGGTCATGGGTCAAGCGCTGAGACTTACTCCGTAATTCGAGTT
-AATGAAGGATTCCCAGGGGCAGCTCTGTGCATGCATCCAGGAGGCGCGCG
-GCCTCTGGCGGAGCCTGACAGCTGTGGGTGGACGGCAGCAAGCACACCTT
-TAATTGCTGCCAAATTTTAGTCCTAGGTCTTAATGACAGCAGCCCTGGCT
-CCAGAGCGTGAGGCTCTCTGGGAGAGTCAGGGGCTCCATGTGGGGGGCTC
-CGCTGTGTGAGTGGGAGGAGCACAGAGCAAGATGATGGGCAGCGGCTGGA
-GGTCACAGAGCAAGATGATGGGCAGCGGCTGGAGGTCCCAGAGCCCCACC
-CAGAGCCAGCAATGCCTCCTGGGCTGGACTGGAGGCTGCTGTGTGGGTCC
-CTGTTCACTGAGCCTGCAGGAGGCAGAGAATGGGGAGAGTCCGTGCTCCT
-CTCAGACCCTGTCACAGAACAAACAGCActgggctggagcagggaggctg
-gggtgcacggcggggctggagcagcgaggttcgggtgcaaggctgggctg
-gagcagcgaggctggggtgcaaggctgggctggagcagcgaggctgggat
-gcaaggctgggctggagcagcgaggctgggatgcaaggctgggctggaac
-aggaaggctgaggtgcagggctaggctggAGCAGGGAAGCTGGGGTACAG
-GGCCGGGTTGGAGCAGGGAGTCTAGGGTGCAGGATTCTAGGGTGCAGGAT
-Tgggctggagcagacaggctggggtgcagggctcggctggagcagggagg
-ctggggtgcagggctgggttggaacagggaggctggggttcagggctggg
-ttcaaacagggaggctggggtgcagggctgggttggaacagggaggctgg
-ggttcagggctgggttcaaacagggaggctggggtgcagggctgggttgg
-aacaggaaggctggggtgcagggctgggttggaacagggaggctggggtg
-cagggctgggttggAACAGGGAGGCTGGGGTGCAGGGCTGGCCAGCCTCA
-GAACATGTGTGAGCCTCCACCCTGGCAGGTGGAGGCGTGGGCTCCCTGCT
-GGGCCACTCAGATGGATCTACTGTTTTCTCATGAGCTCATCCCTTCCGGC
-CTGTGAGGCCCACGGGCAGGGCTTTAATCCCCTATGTGCTGTTTCCAGAG
-CCTTCTCCCTGGCCCAGCTCCAGGCAGCCTCTCCAACCCCTTAGATTCTG
-CTGGACACACATATGGCCCTTGAGCCACAGAGGGTGGTAATGCCCGCGGC
-CCCTGTGCGTCCACAGGGCAGGTGCTGGCCAGGCCTCCTCCCTGCTTCAG
-TCCCCAGAGGAGACCTCGAGCCACAGACCAGTCCCTGTCCCTTCAGGGTG
-GGGTTAGTTCTGCAATCCCCCTGCCCACAGCCCCACCCCACAGAAACGTC
-CACCACGAGCCTTGGTAGTCACGCCCGGAGCCCGATGGAGACCAGCGGCT
-CTGAGCTCCCGGGAAAGTGGCCGGGGCCTGGGCCCTGTTCCCAGGAAGCT
-CAGCAAGGCTCCGTGCCCCACAACCTGGAGGGGTGGGAGGGGAGTCTGGG
-TTGGGATGGCTGCACCCTTGGCCCTTGGGGAGGAGCCCCCCACTACCACC
-CCCGGCAAGACCAGAAAGAAGCCTGGGTGTTGGGGGGAGGAGTTCAGGGA
-ACCAAGCTCTGCGCAGACTCAGCGGGAGGATTTGGAATCGGAGCTGGAGT
-GTGGGGACGCCGGACAGATACCAGGGTATCTACGCACCCGGGAGAAGGGC
-CCAGAACGAGCGGGTGCTGGGACAGTCAGGAGCAGCCCTGGGAGGCGAGG
-TCACAGACGGGGTAACAATGAGGGCCCTGAGCACTCTGCTCTTCCCTGGA
-TGGGGTCTGGGTTCCACGAAGCTGCCTATCCCAGGCCTCTGCAGCAGCTG
-CACGGGCAGAGCTGCCTCCCTCCAGCAAGGAGTAGGCGGGCACCACGTGG
-GCCCTGGGCACCCTCCGCAGGGGCTCCAGCTCCCACAAGGGGCTGCCCCA
-TGGGCTCTGAGGAGCTACAGGCTCCTTCCCAGAAAGAAGCCCAGGAGTCA
-GCAGCTAATCCTCCCTCTTCCTCTGGAGCCCCCAGGGAAGGCAGGAGCCA
-GTGTGCCCCTCCATGACCCCATGCCCTATAGGGACTCCTGTGGGGAAGGA
-ATCTGGCCTCATCTACAGCTCCACAAGCCCCAGGGTGCATCTGAGCTGGG
-ACCAGCCCCTCTGAGGGGCTCACCCTGAGCACCTTCCTTGGCAAGGCAAG
-TGTTTGGGACGCATCCTTCTGGGGAAACAGTGCTATGCTCTTCTCTGTTT
-CTCTGAAGATTTGAACTGAGGCCGGTTGCTCTGCCTGTGGGTATGATGCT
-TCGGACAGCACCTGGCTCTGAGGACAGAGGCCCTGGACCCAAGCCACGCG
-GGCCCACCTTCTCCTGAAGATCTGGGCTAACTGGGAAGCAAAAATAATTA
-CTCTTGTGCCAAAATGTCCTTGTAATTAGCAGTTCTGGAAGATAAATTGA
-AATATGTGATTTTTCAGGGTCCAGCCGGCCTCGGGACTGAACCCCAGTGT
-GTGTGTGTTTCAGGGCACAAGCATGTGTGTTTCAGGACACGCGGGGTGCA
-AGTGTTTCGGGGCATACGCGTGTGTTTCAGGGCACACCGGGTGCAGGTGT
-TTCGGGGCACACGTGTTTCAGGACACACGGAATGCAGGTATTTCGGGGCA
-CATGTGTGTGCTTCAGGGCACACCGGGTGCAGGTGTTTTGGGGCACACGT
-GTATTTCAGGACACACAGTGTGCAGGTGTTTTGGGGCACACGCGTGTTTC
-AGGGCACGCCGGGTGCAGGTGTTTCAGGGCACACATGTGTTTCAGGACAC
-ACGGAGTGCAGGTATTTCAGGGCACACACGTGTGTTTCAGGGCACGCCGG
-GTGCAGGTGTTTCGGGGCACACGTATTTCAGGACACACAGCGTGCAGGTG
-TTTTGGGGCACACGCGTTTCAGGGCACGCCGGGTGCAGGTGTTTTGGGGC
-ACACATGTGTTTCAGGACACACGGAATGCAGGTATTTCGGGGCACACGCG
-TGTGTTTCAGGGCACGCCGGGTGCAGGTGTTTTGGGGCACACACGTATTT
-CAGGACACACAGCGTGCAGGTGTTTTGGGGCACACGCATGTTTCGGGGCA
-CGCCGGGTGCAGGTGTTTCGGGGCACACGTGTTTCAGGACACACGGAGTG
-CAGGTATTTCAGGGCACACGCGTGTTTCAGGGCACGCCAGGTGCAGGTGT
-TTTGGGGCACACGCGTGTTTCGGGGCACACCAGGATGCAGATCTCTTACT
-GGGTGCAAAGCCCCCAACTCCTTCCCCGAGCCACCAGAGTACGGCTCCCA
-GATCGGAGCAGCCCCTCCTCGGGCCAGGCAGGGTGTGGACCCTGCCCTGA
-ATGCACTCAGCTTCCAGCCGATTCTGCCCCTCCCTCCATTCACTGCACAG
-GCAGGCGCTGCAGGCCGTAGGGAGGGCGTGCGTCTCGGTCCTCCCGCTCC
-GTGTCCAGTCTGGGAAGTGTCTCAAGACCACCCTGGGAGAGGCCTGGGCT
-GCGGCGCCTTCGTCCCTCTGCTCCGCGCAAGGCCGGGGATCCTGCTCTCC
-CGGAGCGAGGGTGTCCGGCAGGCACCAGCGGCCAGCAGCAGCCGGGGCCG
-GGCCTCACCCGAGGACCGAGGTGCCGATGAACGCTCATGTTCGGAAGACA
-CTGGCTCCCTGGTTTATGTATTTACTTAATTTTAAGTTAGGCTCCCCAGA
-TCCCTAAATCAACAGTGGATTCTGTAAATTGTTGCGTCAGAGGAAAATCT
-AAGCGAGCCCGATCGCGGGAAGCACCGTCGCCATGAAAGGCGGTGGCTCA
-GCGCCACCTGCCGGGACGCGGCAGCCAAGGGAGCCGGTGTCGGGGGAGGC
-CTGAGGCCTCGGGTCCTCGGGAGGAAACAGAGCTGTTTGCAGGAACAAAG
-GAGGAAAGGAGGGCCACGGCTGTTCGAAGAATTCTTACACGAAAGGCATG
-AAATTAGTTGGAATCATTTCAAGGAAAAAATCTTCCTCCAAATAGGCGCT
-CCTGCGTTTAGCAGAAGTGGGTTTCATTGCCATTGAGCACGGCCTGGGGT
-CTGCGGGGCTGTTTTCAGAACCGGAGGGAAGCAATCCAGCTGCACACAAG
-AGGTCCTGGGGAGAGGAATCCTCCAGGGCCTGGAGTCCCCGCTCGAGCTG
-CGTCACACCTGCTGGGTTGGAAGCCTCCACTCAGCGGGAGAAACACAATC
-CCTGGCTCTGGTGTTTGTGGCAGTAAAATCCCCATCCCTGCAAAGCCACT
-GGGCGGAGGCCAGGCCTTGCAAGAGGCCTCCCTTTGCTGGAGGAAGCCCT
-GGGCCCTCGGGGACCCCGCAGGAGGCAGACGCTGGGGACAGGGTCCGGCC
-CACGGGCAGCTGCGTCCCTCCCCAGTCCTGGCCTCCCTGCCTCCTCTGCT
-CTTTCTGATCCCCCCACCGGCTCCCACTGCCCACAGGGCGCTGAGCCAGC
-AGCAGAAACTGAGGTGGAGACAGCCTTCGGCCCTCAAAATCTGTGAAGGA
-GTCTGGACCCTGGGAAGGCACCGAGGACTGCCCAGGATCTCAGAAAAGGA
-TGACAGCCAGGTCCCTTCCTTCCTTCCTTCGTTTTTCAAGTTGTTGGGTT
-TTTTGGGGGGGGGGGGttttgttgctgttttgagacagagtctcgctctg
-tctcccaggctggcgtgcagtggtgcgatctcggctcactgcaacctcca
-tctcctagtttcaagcgatcctcctgcctcagcctcctgagtagctggga
-ttacaggcgcccgccatcacgcctggctaatttttgtattttcagtagat
-tcaggtttcaccatgttggccagtctggtctcaaactcctgacctcaagt
-gacccacccacctcagcctcccaaagtgctgggattacaggcatgagcca
-ctgcgcccCACCGTGTTTTTCAAATGTTGATGGCAGCTCAGTTGCCCCCC
-ATTTCAATAAATGCCCCCCGAATCATGTGTGAAGTCACTCAGGTTTAAGG
-CAAGAGGCCCCTGGTCTGAGGGAGCAAATTCTCTTTCATTTTTCCAGATA
-GCTCCATTTATTACATACTGAGAATTTATTTGAATTTCTAGTAGCTCAAA
-ACTTTTTTCATTTTCCTGTTTATTAAGAAACTCAATTCCCAACCAGAGCA
-GCTCAAAGCTAACAGTCAGGCCGAGAGCACATTTTCTCTATAATTCACCA
-CCAGGCCCGCAGGAGTGGGAGGTGCCCGCTCAGGGAGGGCCGACGGCCCT
-TCACTCTCCTCCTCGCTGGGGACGGGGCCTGGGGTGGGGTTGGGGCACAT
-CTGGGGCCTCCCCTCCTCCAGCACTTCCACCTCCAAGTGAGCTGCCAACC
-CAGAGCTGTCCAAGCACCTGGGCCACTCCAACCTGCCCCCAAGGCTCCTG
-GTGGGGTCTGTGCAAGCTCCTGGCAGGGTCTGCGGGGTCCATGGATGTGT
-CTCCACCCATCAGCCCTGAGTCTTTTCCATGAGCTGAGCTGCTTGCACCt
-ctaatcctcatcacagctctgccagccgggcaccatcaccaccatcccac
-cttacagctaacgccagtggagcccagagaggtttggcatcttgcccaag
-gccacacagctctttggcaacattgtggctccagagccACTCTCTGGGTG
-TGCAGCCGAGGGGCCGGCTCAGACTGGGTGGCAGCCTATGCTGAGAACCA
-ACCCAAGGATCTGGCTCAGGGCGTGGGTGTCAGGACAGCGCCCGGGGCCA
-CCGTGGAGACCCAGGAGGAGCCAACGGGCCTCTGCCGACCACTGGAAGTC
-GTGACGGGGGCTGAAGAACAAGTCGCCAAGAGCAAAGGTGACCCGGGGTG
-GCACAAGTGTCTGGGATGTGCAACATAGAGGGTGTAGCTTCCTGGGTGGC
-TGGGGACACCGGAATTCCACCCAGGGATGGAGAGAGAATCCTGCCTGGGG
-ACAGAGAGAGAATCCCATTCATGGGCACAGAATCCCACTCAGAGTCACAG
-AATCCTGCCTGGGGACACAGAATCACACCTGGGGACAGAGAGTCCCACCA
-GGGGACAGAGAGAGAATCCCACTCAGAGACACAGAATCCCACCTGGGGAC
-AGAGAGAGAATCCCACTCAGAGACAAAGAATCCCACCAGGGGACACAGAA
-TCACACCTGAGGACAGAGAGAGAATCCCACTCGTGGACACAGAATCCCAC
-TCAGGGACACAGAATCCCACCTGGGGACACAGAATCCCACCTGGGGACAC
-AGAATTGCACCTGAGGACACAGAATCCCACCTGGGGACAGAGAGAGAATC
-CCACTCAGGGACACAGAATCCCACTCAGGGACACAGAATCTCACCTGGGG
-ACACAGAGTCCCACCTGGGGACAGAGTCCCACCAGGGGATAGAGAGAGAA
-TCCCACTCAGGGACACAGAATCCCACTGGGGGACAGAGAATCCCACCTGG
-GGACAGAGAGAATCCCACTCAGGGACACAGAATCCCATCGGGGGACAGAG
-AATCCCACCCAGGAGCACGCTGACTTTGAGCCACCCAGGGCTCAGCCCAG
-ACTCGCGCAGAACACGAGGAGTCAGGGTTTTAATAAATTGAAAATAAAAC
-TTTAAAGCTTCAGCCCCACTGGGTAAAGTTTTCCTTGGAATTAATTTCTA
-AGATAAATTGTTTTGGAATTGTTTGGTCCATCTCTTCTAAGCCCCCAATG
-TTTTTCTGATTAGACATTTTCATCTAAACAGGACTGACGTCTGAATGGCA
-CCTCAATCCCGACAGTATTGACATCTGCCAGCCCAGAGGTTTATGGGGAA
-AGTATGGATTCCTGGCCGGTGGCTTTACTCAAATTGAGCTGCATTCTCGC
-TGAAATGAGATGCTGGCACAGCTGCCGGCTTACCTCCATGGCTTCTGTCC
-ACCGCGGGGCTGGGGTGCTGCAGGGGTGAGGGGTGCAGGGTGGGACTGCA
-CCTTCCGGAGGGAGCCTGGGGACGGGAGGGTCCAGGACGAGGGAAGGGGA
-GGTCCTGTAGCCGGGTGGGGGTGGGGCTGGACCTTCTGGAGGGAGCCTGG
-GGAGGGGAGGGTCCAGGACGACAGAAGGGGAGGTCCCGTAGCCAGGTGGG
-GGCGCAGGGCAATGGGGTTAGGGTCCACACGCACCTGCCCAGAAGCTTAA
-GGCAGGCCATGGAGGTCCTGTCCACAGAAGGTGGGCGAGGCACCAGCGAG
-CCCACCACCTGCTTCTGCACTGGGACCATTTTCTTTAAGGGCACATATCC
-TTGGTAGAAGAAAAACCAACCAGCTGAAAAGGCAGTGAGTGTGAACAAAA
-GGTGGATCCAGGGCATCCCAGCCATGCAGATGGATGGAGGGCGAGGAGAC
-CCCCACCCAGGGTGGGCCGCCCTGGGGAGGGGGCTCCCTGCAGAGCCTCA
-GCCTCCTCCTCTGCACCCCAGGGAGTGAGGAGCTGACCACCATGCAAGGT
-CCCATGAAGCCGAGGTCACAAAAGAAACGCAAGGTCACAAAGAAGCGCAG
-CAATGTGGGGAATGCCTCGCCAACAACACAGGACCCTGCAAAGGCGACGG
-GGGAGGGAGGCCCCCAGCCTCCCCCAGGGTCCGGAGCAGCCAAGCCCCAT
-GAGGCCTCCTTCCTCGGGAAAGCATGGGTCAGAAAATCTGGACAGTGCTT
-TTCCCTACTTGGATTCAGACTCACATTCACAACCTAAAGACCCTAATAAG
-GTCCTCAGGCAAAAATTAAGGGGGGGTGGGGCTTGTGTGTCCAGGGGAGG
-AACCAGCCCAGGTCCCCACCCATAGGAGTGCCCGGGCCTGGGCAGCACCC
-TCGGCCTACTGCTGAGTGCATCCTGGCGGCAGCTGTGATACAAACCAAGC
-CCGTGATGATCACAGGCACCTCTGACGCTGCCCAGAAGCTTCCAGAATCC
-TGCCCTCGGTGACCGCCCTCTCGCCCCACCCGCCCCTCGGTGTTGACACA
-GACGCAGGTCCACAGGGCTCTGTCTGGATGTCCGGCTGTGAAGCTGGCCC
-CGGGCTCACCCGCCTCCCACTCCTGCCTCACCTGAGGCCCAGCCACATCC
-CTCCAGCCGCATGCCAGGGGCCTGGGCTCAGGGGATTCCTCAGAGCTGGA
-CCCCCTGGTATCTCACTGGGCCCGGGACCCAGGACGACCACTCTTGACTT
-CTCCAAAGCTGCTGTTCAGAAGGCCTCCCAGCAAGCAGAGGGTCAGTCAT
-TAAAACCCACTGGACACAAACCAGATAAAGCCACAAACCAATGCCTTGCT
-CGTAGCACACGGGAATTCTGCAGAGACAGCTGGACCACCCGTCTCTTTCC
-AATCTGAGGCAGGACGGGGGAGCGGTAGTGCAGACACAGGCCCACTCGCA
-CAGCATCGACCTGGACGCCTGCACCCTCAGAACCAGGAGCAGCTCGGGAG
-CATCCTTCGCTGCACCCTCCTCCGGGAGGGCCACTAAGAGGGCCCCACCG
-CCACTGCTGCCAGCACAGGAGCACACGGGAGCTAACCCACCCCACGACAC
-CCCAGGAGTGTAGCCCAGGGACACGGCGGCAAGCCCACCCACTCAGCCTC
-CTCCCAGGGATACACACAGCCTGGCTTCCCTTCCCTGAGCACCCGCCCTG
-CCCCGGGTGAGGCCAGGCCTGGACGCCTTCTCGCTGCAGGccctcggaga
-tgtttcccagcactgacggtgctgaggacagaacgctggaggccgggcca
-cactcaggggagacgcgaggcagctccggggcctgggaggagtgcgctct
-gtgtggccgcaggacggggaggcagcgctgctctaacgcctcccgctgca
-ggtcccacagggaacgaagtggtttagtgctcaaggttctaggggtttaa
-attacactattgacttcactactttttccttatacattataaccaatagc
-aagacaatgttcgatgttttgatgaaatgttttaaagataacTTTGCACG
-GCCCCACTTGCCCAGCCATGGTCATGTTTTAACGCCAAGAAGCAGAGCGT
-GGATGGGCTCCACGACGGCGCCTCCtgcccggactcttgttaaggtccca
-caggagtgtccccagtggagcctcgaagccaccctgggagggatcttcag
-tgtccccaatttacagacgaagaaacggaggcccacgggagtcaggaaca
-agccccaggtcgcacaagaaatgcaaaggaagccacatggctccagagtc
-caggctccgagacccacccgctgcctgctgggcAGCTGCCCCGGGAACCC
-TGTCTGGGCACCTGGATTTTCCAGCCACGGATTTTCCCCGCTGACAGCTC
-TCGCCGTTTCCTGGGTCTCGAGTTTATCCTCTGTGAGGGCCGCCCCTTGT
-GGCTGGGCCATCAGCTCCCTGAATGATCAGCCCAGCCTCATCCAACACCA
-CCCAACAGGACAGGTCCCCGCGGCCTCTGAGACCTCCCCGGGTGCCCCCA
-AAACACAGGCCACAGAACAGCCAGAGAAACCGCTTGCTGATTCAGTGTTT
-AGACTCTTGGATCGAATTCTCAGTTCTTCCAGATGTGATTTAGCCTGCTG
-CATTATTTAGCTAACTTTCTGTGTCAAAATCATAACTTCTTAGAAATTTT
-TCAAGGTACTCAAAACTGATTTCACAGTCGATTTGGGGAGTCACCGCAAG
-AATCAGTCAGAGAGGAGGCTCTGTGAGAAGGGAAACTGAGGCTCAGCAGC
-CTGTGACGAGCCCCAAGGCGTATCCACAACACATCCTAGGATCACAGAGC
-CTGCTCCAGCCGGCGGAGTGGTTCTCTCGGCTCTGTGGATAACTGAAAGC
-TCAGAAACATCAAAAGTTAATTAAAATAAGAATATGTTACTCTGAAATAA
-TGCATTAAAAACGTCCAAAGGTGAGCCTGCTCCACTTCATTCCCCTCCGC
-ATCTCCCGAGCACGGCTCTTCGGGCGGACGGAGCCCCCAGCAGCCCCTGT
-TGTCATTCTCTGAGCGTGGAGAACCCCCATTTCTATCAGCCGGTAATCCC
-ATCCATTGATTTGAATTGTTCAATGTCAGGCTTGAAAAGGCGGATCAAGT
-GTCCTTTGGTCCTGGCAAAGAATGAATCATTTGGCACCAGCCCAGGCCAC
-AGGCCGGATAAAGCCCGCTTCATCTGCAGTCTGGCCTTGCCTGGAACGCC
-AGTGGCCGCCAGCGCCCCTGACCCGGGCGGTCGCACCACGATTATTCAAA
-TCAGCTCTCTCCATAGATCTCAGAATAAGCAATCAATTCATTTGATAGGG
-TTTAAAGACAAAGAGCAGAGCTCATTAAATCAAGCTAAGCCTCTGCCATC
-AAAGACTGGCAGGGACTGAGGCTGAGTCCGGCCTTCCCTGCAGCCACACA
-GAGGCTCCTGGGGAGGGAGGGGCAGGGACCCAGCACAGGTGGACCTCAGG
-AGTCCCAGGGCCCCGTGCCCATCCCCCTGCCCTCACGCCCCCTCTCTACC
-CCTGTCATTTCCTACCCCACCCACACCCCAGGACCCCGACCCCAGAACAC
-CTCGGACCCCGCCCTGCCTCCCAGCCTGTCATGGGTGGGTCTGTCTTTCC
-AGAACTCCCTGCCTGGTGTCTCTCATCTGCCAAACAACCTCAAACCCAGG
-TGGCCTGTCATATCCTAACATTTTCCTGGAGCCCCCAGGCAGGACCCACA
-GCCCCTCTGCACCTCCTCTGCCCGTTCAGAGTCACAACACCACATGGGAA
-TTGTGTGGCTTCCGTGGCACCCTGACATGCATCTGGCTTCCAGACACAGA
-GGCCCTGGTCGGACTTCAAATCTGCTTCCCAAGTGCAGGGCCTAGGATGA
-GGTCCTTGGTGGCTGGTGCCCATGCCACAGGCAGCCAGAAGTAACCGGAA
-TGTCAGCAGGTCAGCAGGGAAGTCATGTGGGGGAGGCCGTGTCCCAGAAC
-AGATAGGGTCTGCTTACCCCCAGTCTGTAAAGGCCCCCAGGAGGGCAGCC
-CCTCCAGGCCTAGGTCTGGGGCCAGCTGGGTCCAGGGGGAATCAAGCTTT
-TCCCAGGGAGCCAGCTGCCCTCACAGTGTGGGCAGCTCCCACCCCACCTG
-CCTTCTAGGGTCCTTACCCAGAGTGAGCCACGTGCAGGGCCCCCAGCCCC
-CAGAGTCAGGATGAGCATCCGGCCTACGGCAACTAAAGGGAGGAGGCAGA
-GGCCAGCCGGGAAAGGGATGGTGCTGCCATGGGGACGGGTAGGGAGAGGG
-GTGGGGCTGCCCTGGGGACGGGTCGGGAGAGGGGTGGGGCTGCCGTGGGG
-ACAGGTTGGGAGAGGGGTGGGGCTGCCATGCGACAGGTCGACCTGGTCCA
-CTGGCCCCAGCCTAGCTTCCAGGAGGCCAAGGTTCTGGGCCCTGCAGTGG
-GCCCCTCTCTCCTCAGATCTTGCAGAGGCACCTTTGCCAGTGTCGTGTAA
-TAAGGACCAGAGCTGACATGTGGCTGGGTGCCGTGGCTGGGACACCATAG
-AAGAGGCACAGGCAGCCCCCATGGCACTGAGGCCCCCAGAGGGTGCGGGT
-CTCGGGAGGGGGCTCCCTCAGGCCTGCGTGTCACCACTGGGCTGCCACCC
-CATCCAGCCCACCCTCTAGGACACAGCGTGGAGACTGCCACTGAGCCAAC
-ACAGGAGCCCTGTGGCCACAGCACGGAGGTCAAGGGCCTGCCGTGCCGAC
-CCCTCCAGAGCCCACACCTCCCCACTGCTGAGCACACTGGAGCTGCTCAC
-CGGCTGATGCCGCAGGCCAGGCCAGGACGCTCGGGTCACACCTGTGTCTG
-AGAGTTTCTCCCACAGCCACCGGCTCCAGGCTGCCAGGGTCCCATGGCAG
-TGTCGGGAGCCTGGCAGGGGATGTGGGCCAGCCAAGGCCTCCAGTTCTGC
-CAACTCTGGCCAGCAGGTGTGGAGCTCCTGCCCAGCAAAGCTGGGAGTGC
-GAAGACACCCGCCATCGACTTGGCAGGATGCGGAGTGGTCCCAACACGCA
-CAAGGCACTGGAGCAGCATCGCAAGCTCCTCCAGCCCCACCGCGGATGAG
-GACATCTCACGGTTGGATGAGAGAGCCAAGGCCAGGCCACAGGCTGCAGG
-AGGAGCCAAAGGCACCCAGGCCCACCCCCAGCCTCCACAGGCTGGCACCT
-CCCTGCCCGGCCCGTATCTTGGTCAGAGGAAGATGCATCCTAGATTGGTC
-AATCAATTGGCATTGGCGGTTGCACCTGACCATGGGCCTGCAAGACGCCT
-GCCCACAGAAGCCCCCATCAGCACCTGCTGATCCAGGACAGAGCCCACAC
-CCTCCTGTTTCTAGACCCTGTGCTCGGGAGCAGGACGGTGCAGACGTGTG
-TGGGAGCTGCAGCTGGGGCCTGCCCACAGACACCCCAGGGACAAGGGCAC
-TGTCATCATGTCTGCTCCGGTGTCCCCAGGAAATCCCACCTGAAATGCAA
-ACAACCGCCTTTCAGAAGAGAGTTCGTCTGCCCCGGAGACGAGCATCCAG
-ATTCCTCCATCATGGCCAGAGACTCTAGTAGGGACCTCCTGGGGCCCCCA
-GAGGGCCCTGGCCCCACAGTCGGCAAGCAGAAAAGGTGCACCCATGCTGT
-CCCTCTGTGACGTTCCTAAACACAGGACTGGCTGGGCGACAGTAAAAGCC
-AGATGGAGCCTCTCTTCCTCTCCTCTGCTCAGTGGGACTGGAAGGGCTTA
-TTACCCTAATTTTGAAAATGTATTTTGCTCCATGTCTGATCTATCCACAC
-AGGGTCCCCAGGCATTCCTGCAACTACACTACAGCGAGAAGCCCCATCGC
-AGGCCCGGGAATCCAATCAGGTAAAATAATCAGTGTAGATGTTGCGGGGA
-GGACACGCTCATCCCTCCTGGGCTCACCCTCACCCAGGCAATGGTGCACA
-CCTGGAATGTGAGCCTCAAATCCAGTTTCTTGAAATGACCTGGCATGCTG
-GGGGAAGGGAGGCGATCAGACAGGACAGTGCCATCTGAGCCGTGAGGATG
-GTGGCGTTTTAAACACATACATAAGGATGGTCACGTTTTAAGCTCATACT
-TGCTCAAGGCCAGCACCTTGCTCTCAGTCCCTTGGTGCGATTGTGTTACC
-TGGCAGGGGTCCACCTGCCACCTGGAAACTTCCCCTAGGCGAGTAGGATC
-CAGCTCCCCTGGGCCCAGCTGAGACTCAGCCCAGGCGCGTAGGCTCAAGG
-GCCTCAGGAGGGGTTGGGCAGCCCACCACTGTCTGTGGGTCCAGGGGGGA
-TCCAGGGCCAGCACTCAGCCCCCATCACAGGACAGCCTACTGGACACAGG
-CCTGAAGTCCGGCCTCGAGAGTCGCCTGGCACCTTCCCCCCAGATAGGCA
-GGCTCCTGGACAGCACAGGTGGCCCTGTGTGTGGGGGGTGTCACCTGCAC
-AAGAGGCAGGGACAGGAGGGAAGGGCCCAAGGAGTAAACAGGACCCCGTT
-TTTAGGGGAGGTTGATGGTTTCAGTAGATCTGCCCAGTGGTGTGAACACC
-TCAGTGTGGAGTTCTGAGACTCACTGCCCTCCAGCCTCCTATAGGGCCAG
-TCCAGCTGGATCTCAGCACCCCCTTGTCTGGTGTCTGGAACCTGAGCTCC
-CAGGGAAGCCAGGGCTGGGCATCTAGTGGCGCCCGAGTTCCCTCGCAGTG
-CTGACAGTACATGAGGATGTGCCGCCTGCCCCTGGGCCAAGCGTGAGTGA
-CTGACTCAGGGTATTTACAGAAAGTGCTGGCAGGTGGCCATCCCCTGAGC
-CTGGGCTCCGCATTTACACTGTGTCAGGGCTGAACTGAGGGGTCCCCTCT
-GCCAACTCCTCCATCACCCCAGCACAGGCTCATCTGTCTGTCTCCATCAG
-TCCCCACACACCCATGACCAGCGACTCCCAGGTACCAGGACATcaggaga
-ggaaactgaggcacatagagcttgagcaccctgctcaaggGCCTGAGCTG
-CTAGGCCTCTGATCCTCATGAAAGCATCACCAATGCTTACCTACCAGGGA
-GTTTGGAGCAGCCCCACCCACCCCTCAGCTGTGGTTCTGAACCCAGCTGG
-CCGCGCCCCTCCCACGGGGACAGTGTCCTCAGGAGAGGTCAGCAAACCCT
-GTGGCCGGGCCTGGACAGAGAGCCCTGGGTCCCGCCTCCCACAGGCAATG
-GTCCCTCCTGCCTGCAGATCCAGACTTCCCTGAGAGGCGCCCCAAGCCTC
-CTAGAGGCTCGAGCCACAAAGGGCAGGCCCTCTCACTCAGTGCCAAAGAG
-CCTGAGTGGACGCCAGCTGGGGAGCAGACCACCATCTCTCAGGGCCTCGT
-TTTCCCTACCCAAACAGCAGAGGGGTGGCCCATAGTGGCCCTGCCCCAGT
-TCCCAGGTTCTGGAGCTCCACAGGAAGAAGACAGTACCCCCTGGACACAC
-AGTTTGACCCAGGTGTGAGTTCCTTCCCCCGGCAGCACTGGGCACCCACA
-TGCCCCCCCAGGGGCTTGCCCAGCCCAACGTCAATGCCCCCTTGTTCTCA
-GACTCATCTCTGATTTCCTGCTGCTGGAATTCTAAATCAAATCCTTGCAC
-AGCTGAAATGGGGAGGCAGGCAGCCATATTTGGTTGGGGAGCAAAGCATT
-TGAGAAATGACCGAAGCCAAGAGCCAGGCCCAGTTCCCTTCCAGGCCGTT
-CACACAGCTCAGGCTGGTGCGGAAGCTCCCAGCTGGGTAGCTGGGGTGAG
-CAGGGGTCCCTGTGACCCAGCCAAAGGCGTGGGCAGCACTGCCAGTCACT
-CAACTGGCTGCTGACACAAGTCCCAGGCCATCTCTCCTTCCGGGCTGTGT
-CCACGCCGCGTGAGGCATCCAGCAGGGCCAGTCACTCACCTGGCTGCGGA
-CGCGTCCCAGGCCATCTGTCCTTCCAGGCTGCCTCCGCGCTGTGCAGGGC
-ATCCAGCAGGGCCAGTGTCCCAGCCAGGCCCTCGGCTTCTCCCACTGCAT
-CTGTAGCTCTGGGTAATTCGCTCTGGAACTGGGTTTGACCAGCAATGCCG
-CCGCCCATTTGATTTACAGGAACCCGGGTCCTATTTCCACCTGCTGCAGC
-CCACACACCTGCCCCCACCCCATCCTAAGGCCCAGAGCTTCCAGAAGACT
-CCAGAAACGGCCTTGCCTGGTGGGATGCCCCACAGCCTTCAGGCTCACCT
-CCCTCCACCCATGGAACCCCCACAGAGGCCACCAGACCTGGCCCCTGGGC
-ACCTACTGGGTCCCCAACAAGCTCCGCCCTCCAGGGCCAAAGTGCATCCC
-CTGCTCACCCTGACCCCCAGCATTGACCCCTCTGCCCACCCAGCTCAGCT
-GGATGCCTGGACAAGCATACAGACTGTGGGTCTGGAGATGGGGGTGGGTC
-AGTGGGTGTGGGGACGGAGGATGGTGACCACCATGGGGGCCAGGCGGGCC
-ATGTGGACAGAGAGCGAGCCAGGCATTCTGTGGGGTTTTAGGCTTTTCTG
-ACTCTGCCCACTCCAGTCAACCTCAGCCACCCGAGGCCCTGGTCATCGAA
-GAGACCTCATCATGGGCAGTCCCTGCACCCACAGCCCAGCCCTGAGCTCA
-CAGCCCTCCTGCCCTTCTGCCgatggatggtagatggtagataggtagat
-agaatgacaggtggataggtggatagtggatggtggatgggtagatggaa
-tgatggggtgaatgatggggtggatggtggatgggtagatggaatgacgg
-gtggatggtggatgggtagatggaatgatgggtggatggtggatgggtgg
-atggaatgatgggtggatggtggatgggtggatggaatgatgggtggata
-ggtagatggaatgatgggtggatggtggatgggtagatggaatgaggggt
-ggatggtggatgggtggatggaatgatgggtggatgggtggatggaatga
-tgggtggatggaatgatgggtggatggaatgatgggtggatggaatgatg
-ggtggatggtggataggtagatggaatgatgggtggatggtggatgggta
-gatggaatgaggggtggatggtggatgggtggatggtggataggtagatg
-gaatgatgggtggatggtggatgggtagatggaatgaggggtggatggtg
-gatgggtggatggaatgatgggtggatggaatgatgggtggatgggtgga
-tggtggataggtagatggaatgatgggtggatggtggatgggtagatgga
-atgaggggtggatggaatgatgggtggatgggtggatggaatgatgggtg
-gatggaatgatgggtggatggtggatgggtagatggaatgatgggtggat
-ggtggatgggtggatggaatgatgggtggatgggtggatggaatgatggg
-tggatggtgggtgggtggatggaatgatgggtggatggtggatgggtgaa
-tggaatgatgggtgtatagtggatggtggatgggtagatggaatgatggg
-tggatggtggatgggtggatggatggatggaattatgggtagaagggtgg
-atagtggatggtggattggtaaatggaatgatgggtggatggtagatggt
-ggatggCGGTTGGGTAGGTGTTATGACGAGTGATAGtggatggtgtatgg
-tggatgggtgcatagtggatgggggatggtggatggaatgatgagtgggt
-gagtggatagtggatgatggatgggtagatggaATGACAGGTGGGTAGTG
-GATGGTCCATGGGCAATGAGGGATGGAGGACAGTTGGGGGATGTGGTGCT
-ATCAGGGCTAGTAGAGGATGAAGTGACATAGTGCTTGCAAACCCAGAGAG
-CAGCGTGTGGCAGAGGAGCGGCCCGAGGGCAGCTGGTCTCTAATATTGCT
-GTTAAACCTCTCCATTAACCTAGAAGATCAAGGAATTTCTAGAACGGAGA
-AACACCTAGCCTTGATGCCTAGAACCTCTCCTCCCAAAAGAAAAGGGGAA
-GAGTGACAGTGCTTCAAAAATGTGCTAGGGGAGAGAGAGGGCAGCCCAAT
-ATTCTCCTGGTTATTTTTCAAATCTGCAATGCCACCCGCTGTGGACAGCC
-CCGCCAGGGCACCCTGGAAAGAGCAAATGGCCCCCATCTGCAGCACCATG
-AATCAGGCCCTGGTCATGGAAGCAGGGTCCACAAACAAAAATAAACCAGC
-GGTCCACAGGAAATAAACCAGCGGTGCCAGGATGTCATGGTGAGGGATGC
-TGGAAGGGACACGGTGGTAATGAACCCTGCTCCGCACCTGCTCAAGTGTC
-AGGTAGGAATACATTAGGAATATTTATTATCAGATGGATGAAGCAAGCAC
-AGACCACACTTTCTCAACCTAATGCGTGGAATAAATATGTGTTTGGAATA
-ACAGCATTTCTGGGACAATCCATTCGGTCTGGGGTGGAGGGAACATGAGA
-GCCTCGCCCCCAGGACCACGATGGCAGAAGAGTTGGTAACATGGGGCTGA
-TGGCCAGGTCCACTGACCTTACTGGAGCTGCCCAAGCTTGATGGGAAGTA
-CAGGAGTCCCGCGCCAGCCCAGCACAGCATGGAACCCACAAGTGCCCACC
-GTGGCCTGGGGAAGCCATTGCTCTTGTCCTAGGTCCCATGTCAAAGCCAC
-ACCCAGAGTCTCCTGTCCTGGATGAGGGTTGAATCCAGGTCCATGGACTC
-TTAACCCCCTGCCATTCCCCACCCCTGCATGCCCCAGGTCCTGTAGCTGG
-GTACGGTGGTCACACTGTGTTTGTGAGGCCAGTTCTAGCTGTCCTGTCCC
-CTCCAGGTGGTGTCTTGGGGGCTTAGGGGATGGGATCACCGTCCCGTGTG
-CACAGATGAGGCCGACCCCATGCCCTCACACCCCAGCCACATGGCCCTAG
-GAGGTAAGTCCAACAGCATCTGCCAGCCAGGTGTGTGCCCATATCCAACA
-TGGAACTAAGAACTCGGATCATCTTCCAAACAACAGAGAGGACTGAATCG
-AGGGTGCTTCGAGGAATTTTACAGAACAAAAGAAAGAAAgagagagggag
-ggagggagggagggagggagACAGACTGTAACTTCTGCATCTTGACCTCC
-CATTGCCAAGTGGCTCTACAAACTGAGTCATCCTGAATTCAGAGAATGAG
-CCCCGGGGCAGGGAGACGAGAGCCTCACCCCTGTGACACCAGGCCCCCCA
-GGTGTGGGAGGGACAGGGGAGCCAGTCCTCCATGGAGTTTCCAGTTGAGG
-CAGGCCCCACCCCCAAGTCCCCGTGAGTGGGGCAGACAGGTGCTGGACTG
-GACCATGCACAACCTCAGGGAGAGGGCCCAGAGGGAGCAGAGGAGGCTGG
-GGCCCAGGGGCATAGGGCACATTCACAGAGCACCTCCTGTGCCATCCTCC
-CACCTGCATGCCCTATAGGGGGTAGTACAGGGGCCCTGGAAGCTCTAAGG
-TAGAAAGAGAGATAACCCAGAGAGCTGAAAGGAGGCAGAGGCAGGATTCA
-AGCCCAGATCTCTCATTGTAGGAATGAGAGGCGGCTTCCAGGAGCCTTGG
-GATGTGAGCTGGGGCCGGGAGACAGAGGGCGTGGGAGCTGGGTTGGGAAG
-GGGACAAGAGGTGACAGAGCCCCACCTTGGACCATGTTGGAGTGAGTGTA
-TGCAGCAACCCGACCTCCACCCCTCCACTCGGAGCCACACCCACTCTGCG
-TGTCCTCCCAGCCTGCAGTGTAACCAGACCCTGAAGGGGCTGCTGTGCCC
-CAGGGACTTGCACTAAGGACGGAGTAAGAAGTATACGTCAGAGGGTCTCT
-CATCCAGGAAAACCAGGTTGTATATCTCACCAGCTACACACACTGCAGGC
-CCTATAGAAGGAAGTGGCAGGAGAGGGGACAGGTCTCCTCCCTCCCCAAC
-ACAGGGGGATCCCAACCCAGAGGGCCCAGGGGAGGTGGGAGGCATCACCA
-ACTCCCAGTCCACACAGCTGCCTCCTGAGACAGGCGAGTCTGCATCCGCA
-AATAAAAAGGGCTGAGAAACATACCTTGCTTTCCCTGCAGCCAACCCCAG
-GGCTCCCCCAGGCGGCAGGGCAGGCAGATGCAATGGGCCCATGAGGACAC
-CTTTCCAGGACAGTTGGTCACTTTCAGCCTTTCCCTTGCCTGCCCCTTTC
-AGATTAAGGATGGTGCCCACCTACTTTGCTGAGCCAGAGGGGCCCATTTG
-ATAGAGAGAGGTAGATGGTAGTGTTGGCGAACAAACCTTTCCGCAAGGCC
-TTGGGGCCCCCACAGCCCCTGGGAGGGCGGCCCATCTATGCGGCCCGAGC
-CCGCCCAACTTCTGTGAGGGCCCCACGGTGAACCCATGAGTAACCCGCCC
-AGCCTGCACCTACCTCCCTGGAGCCTCCCCAACTCCTGTGAGGGCCCCAT
-GAGTAACCGGCCCACAAGCCAGGGCCGCTCAGGGGTGCCTGCCCAGCCCC
-CAGACCCTCCAGTCAGTGTTCAGGGACGTTGTCTGGCACTTTGCTCCTCC
-CGCGTTGGCTCAGCTACAGAAACACTGTTACCGTGGCCGAGCCGCAGCCT
-GGATGCAGCTCATCCTGAAAAGAACCCCTTGCTGACGGCTTCGTTAAGAG
-GAGACTGGACACCCTTCTGAGCCAGGCATGGCCACAGAGGTGTAGGAAGC
-CAAGGCCATCTTACAGGCTGGATAACTGGGGGCTCCAAGAGGGACCCACA
-TGGAGGGGAGCTCCCACCCTGATCCTCTCCAGATCTGCAGAGGCCTCAGA
-CTTCAGGGTCATGGAAGACCCCCAAAGTGTTGTCTGAAACAGGCTCAGTG
-CCCTGAGTTTCCAAGGGATACGCCTGCGGTAGGATGAGGGGTATCTGTAG
-GATGCTGTTCCCCCTTGGGGTGGGGGGGCTTCTCCAACGAGCACTCAGCC
-CCAGTACAGAAACAGGGACACAGTGTGTCCATCAGCTCCTTGGAGTCTGC
-ATTTCCCGCCCCTGGGAGTCCGCGTGTCCCACCCCCCAGGGAGTCCGCAT
-TTTCCCATGCCCCCGGGGAGTCTGCATTTCCCATGCCCCCAGGAGTCTGC
-GTTTCCCGCCCCCCCCCCCCCGGGAGTCTGCATTTCCTGCCCCTGGACAT
-CATGGGCTGTGTCCAGAACATCCCTCTCAGAACTTagccaggtacagcgg
-ctcacacctgtcatcccagcactttgggaggctgaggcgggtggatcacc
-tgaggtcaggagttcgagaccagcctggccaacacagtaaaaccccattt
-ctactaaaaatacaaaaaattagctgggcatggtagtgggcacctgtaat
-ctcagctgcttgggaggctgagacagaagaatagcttgaacctgggaggc
-agaggttgcagtgagccgagatcacaccattgcactccagcctgggcgac
-agagcaagactgtctcaaaaataaataaataactaaataaaaCTCTCCCA
-GCAGCTGGGGACACCCAAGACTGCACTGAGCCCCTTGGCCACGGCCCCTC
-CAGTCCCTGAAAACTTCCCCGTCTTCATCCACTGCAAGTAGACAGCACGC
-ACGCCTCCCGGCCACCCCATCCACGACACGCTGACCCATGGAGTCCCCAA
-CATCTGCTCCTTGGGTTGGAGGGCACGGCAGCAAAGCAGCAGGTTTAATT
-AATCACACTGAACTCAGCCGCTGGTGACCCCAGGCACAGCCAGGGAGGGC
-ACTGGGGGACAGGCAGCCGAGAGAGTCACCTGCCACCTTCTTCTCTCCCC
-ATCATGGGAGACAGGAGCTGATTAAAATGCACATGATTTATTGGGATTTA
-TTGGAAAGGGGCCTGTCATCTATTAATTTACCATCTTAGTTTCCATCAGG
-GACACTTTTTCTACTTCTGCAGATAATCAGGGAGAAGATTTCTTGCAAAG
-GGTGGTCTTGACCCCTGCAAGACACGGTTTCCCAGGCGAACATCCTAAAT
-GGGGTAATTAGAGCTGAGAATCGCAAATATCCATCCTCTAAACTGAATAA
-AAATGGAAATACGGCACTGAGGCATCATTATGTGCTCATCGAGTGAAATC
-CGGTTCCCCGCATCCATTAACCCTTTGTTGTGTGGCCCTCCCGCGCGGCA
-CGGAGGCCAGCGCTGGGTACGTCTGTCGCCGAGTGATGAATGAGCTGTCC
-ATCCAGCCGCCTGACGGTTTGACCTTTATTCAGCTAAAAGCACGGGGGCT
-CCTGGTGTTAAGTGGATGCCACTCCAGGATGAAATTGATCCAGAGTAAGC
-ATCTTTGTAGTTGTCTTAGATAACTTGATGGGAAATGTACTCTCAGCTCA
-AGGGTAAGTTAACAAAGCCCAATGCAAATACCAACAGTCTTTTCCCCCAA
-CTGATTTGCTTTAACGCAGAGCTACACTGTCTACCTCACTAAAAAAACTC
-AGGCTCTTGGACACACCAAGGCCTTCCACCGGACTAAAGGGAAAGACCAC
-GAACCATCACACAAGCAGTGCTCTGGAGGCGCTCAGGCGGACTCGAACAC
-CTTCGTGTTAATGCAGTTCCACACAACAGTGAATTTGAACCTCGAAAAAA
-TACACTGAAGTTGTTAAGAATGCTTTGGAAAAAATGAATGGGGAAGGACC
-TTGTCCCACAGAAACTAAACACAGTGCTGGGACTACTCCAGATAAGGGAA
-GGCAAGTGAGACGCACGCACGGCCCTTTCCTTGACCAACAATCCTAGAAA
-GGGGATTAAACAGACTGAACGACGCCGGGGGCTCCCAGTGCACAAAGGTG
-GCCAGAGGAGTCCATTCGGATGAGCGTCCGCTGGAAAGAGGGTGCCACCA
-GCTCTGCGGCTCTGTGTGTGGAGAAGGGTGGAGGAAAACCACAACCTTTC
-TGGGTGAAAGAGTCAGAGGTGAGCATTCAGGGTGCAGGAGCATGGTGAGG
-AATACCTAGGGAGCCGCAGAGTGAGATCCAAATTCTGGGCATAAACCCAG
-CCCGACCCACAGCTGCACTGTACGGAAGACACCTGGGGCCGGCGGCAACG
-CAGGCGAGGCCAGGAGAAGCTCACTCCTGGGAGGAGAGCCTCACAGGCCA
-GACCCGCGAGTCAGCTGCTGTGTTGAACCAAGCACATCCCCTGGCTGAGA
-CGCTGAGAGAGCAGAAACCACAGGCATGAAGAATCCAGTGGGAAGGCTAG
-GCCCATGTCTGCCCAGTTTCACAGGCAGCGGGGAGAGCATCAGGAGCCGG
-GCTAAAGAGAAGGGCAGCCCCAAGGCGCCACCAAGGCCGAGCGGGGACGA
-AACGGCCCCCTGGAGccaggaacaccaagtctgcagagtgaatccggaac
-agctcaccacctaccaagcaaaacgaaaaaccacccccaggaaaacacaa
-ggaaattcagtcactagaacgcattccctacagcgtcagctttttacccc
-agaattgtcagacaacaggaagtgttgacccacagtcaggaaaaaaggca
-gctgatagacattgacttcaagtggacccaaatggtgaatttagcaaaag
-aagccatcaaagcaactgttataaatacgttcttaaaaaactaaaataag
-gtgactggcgtggtggctcacgcctgtaatccagcactttgggaggttga
-ggtgggtggatccgttgaccagcctggccaacatggcgaaaccctctcta
-ctaaaaatacaaaaattagctgggcatggtggcgggcacctgtaatccca
-gctacttgggaggctgagacacaagaatctctcaatcccgggaggcaggg
-gtttcagtaagctgacatcgcgccattgccctccagcccgggtgacagag
-aaaaactatcttaaaaaaataaaaataaaaaataaagtatatccaaataa
-taaaacatgtataagtacaggaaaatattatatcaatgaataaatgggaa
-atctcaacagagaaatgaaaactagagaaaatggatggcaattctagaag
-tggaaactgcaataaatgaagcagaaatttactagacagccttgacatca
-ctttggaggtggccaaggaaaataaacttgagaacacagcaatagaattt
-gctggattcaaaatgaagagaaagctggacacagtggctcgcgcctgtca
-tcctagcactttgggagaccaaggcaggcagatcgcttgagcccaggagc
-tggagaccagccagggcaacatagtgagaccccacctctacaaaaagtac
-aaaaaaaaatggctgggcgtgaaggtgcacacttgtagtaccagctactt
-gggaagctgaggtagaaggattgcttcagcctgagaggtcgaagctgcag
-tgagccgtgatcacaacactgcactccagcctgggtgacagagtgagacc
-ctgtctcaaaaaaaaaaaaaaaagcaaaatgcagaggttgaagaaaaatg
-agccaagcctcagagacctgagggccaagagccagtgaccctgcgtgtgg
-acaatggccgtcacaggagtggagagggaagggcgtgcattggccaggtc
-catacaatggccaaaaacttccagaatttggtggaaaatgttaacttaca
-gacacaaaaagttcaacaaaccccaagcaggataaacaggggaaagaaac
-agtcctggatacatcttgccaacttctaaaaatcaaagataaaaagacca
-ttttgaggccgggcacggtggcccccacttcctataatcccagcactctg
-ggaagccaaggcaggtggatcacgaggtcaagagttcgagaccatcctgg
-ccaacatagtgaaaccctgtctctactaaaaatataaaaattagctgggc
-gtgatggtgtgcacctgtagtcccagctactagggaggctgaggcaagag
-aatctcttgaacctgggaggcagaggttgtggtgagctgagatggcgcca
-ctgtactccagcctggctatagagcgagattccaaaaaaaaaaaaaaaaa
-agccattttgagagaaagagaagaaaacagcatgtgaaatacaaaacaac
-aacaatgaagaGAAGAGAATCACAGGAGATTCTCACCGAATGAAGGAGAC
-CCAAAGTGGGAAAAATACTAAGTCAATTGTTAGCAAATGGAATTATTTAA
-AAATCTggccaggtgtggtggctcacacctgtaattaaagcactttggga
-ggccgaagcaggtggattacctgaggtcaagagttcgagaccagcctggg
-caacatggcgaaaccccatctctaccaaaaatataaaaattagcgaggcg
-tggtggtgcacgcctataatcccagctactcaggaggctgaggcaggaga
-actgcttgaacccaggaggtggaggttgcagtgagccaagattgcgccat
-tgcactccagcctgggtgacagagcaagactctgtctcaaaagaaattaa
-aaaataaattaattaaataaataaataaatCAGAAGGCTTTGCCCCTGTG
-TCAGAAAACCTATAGGAATATTCCACTACAGTAGCAGATGAAAGAGACTG
-TCTGTCCAAGTGTTTTCAGCTGCACGAggcccggctgcttgttatcgagg
-tccgataatgagatgcagacactggggaaggagggagtttatttcagcag
-ccaggtacaaggaggaggtcggagtagctcaccagaccaactccaagtga
-caagtttctctccagagcttgtatacactctgagatccatgctgtgtgtg
-gggttgcacctgccagcaggactgttctttcaatctctatctcatcttta
-gcaagggtctggggtctggaaagctttctctagagccttggaaagtttct
-cagtcttaagtgggctctggtAGGAGGTGTATGTGTAAGGATGCCTTCCC
-GCCCCCGCCCCCAACCCCgagatagagtcttgctgtcacccaggctggac
-tgcaatggcgcgatctcggctcactgcgacctctgccttctgggttcaag
-tgattctcccgcctcagcctcccaagttgggattacaggtgcacaccacc
-gtgcccagctaatttttgtattcttagtagagacgggatttcaccctgtt
-ggccaggctggtctcgatctcttgacttggtgatctgcctgcctctgcct
-cccaaagtgctgggattacaggtgtgagccaccacgcccggccCAACGAT
-GCTTTTATTGTTGGATCAGACTTCAGGGTCTGAGAAAACCCAGGCAGGGT
-CTTAACGGGTTTGTTGTGGCATTGCAGCCCCCCCTCAGGCGCCAGCTTCT
-CCAGTTCCTTAATGTTCAGCTTATGCGTTTGTCAGAATTATAGTAAAGGG
-TTAGTGGAAACTGGCTGTCTGGTTGCTAATGGAAACCCGGCCTGCCCCAC
-AAGCTCAACAGATTGGAAGAAAAAAAAAAGGGGGCATAAACAATGTttcc
-acaaccactaattaggaaaacctcttagcaagctagaaacagaaagaaat
-tgcctaaatggacacagaagaactaccaaaacctagaggaaactgcttgc
-ttgctagagaaattttgtaagaatttccataaaaatcagaatcacgataa
-gattctctctctctctatcctataacgtttgctgggtgccatagccaaga
-cagttagaaaagcaaagtaactgagaggtataagaattaaaaaaaaaaaa
-aaaaaaagaaatgctttcaggtgctgtaatgatctgtataaacaatccaa
-attaccagaactacttgaacaattagcagaactaaCCACCTTTGGTCAGG
-TGCTAGGAATGAAAGAGCCCAGAGGCAGCTCAGCACTCATCTGAGAGGCA
-GACGTGATGGCGTCGGGCTCAGGGGATGGGGTGCTGAGGCTCCGCAAACA
-GCAAAGTTAAAAAGCAgatctctgcctcctcctgtacacagaattaaatt
-ctgcgtatcaaaaaaatctttaagactagtaaataaatctttaagactag
-taagagaatatcttaaatcatgggatagggagggatttcttcaaacaaaa
-caaataaaatatcctagagaaaaagattccatacctctaactctacattt
-gaagttttttctgacaaacaaccacaccatttgttctaaaaaacgagcca
-ttgactgggagaaattttgcaatacacacaacataaacaggactaatatc
-cagatatatgtggaattcctgcaaagaaataagtgaaagaaaaacaaccc
-taaaatctggccagatgaacaggcaaactgcagaagaggagaccccaata
-gctaaaataaaaatcataagcggctcagtctgtctattcatctgaaaatc
-caaaattaaaccgcagagagatgcAAATTAAGAAAACTTTCACAGCGTGA
-CATAGGAGTGATGGGAGGATTCACAGAGCCAGGAACCCGCACACAACTGG
-CTTGAGCGTCCACTGGGGCGATGACCTCCAAGATCCTGGCCAGCACCCGA
-GCAGTGTTTGCTGGGAGCACGCACACCTCCAGCCCAGGAACTTTCCTCCC
-AGATGTACCCCCTGGAGCTCTGCTGGGTAAAGTGTGGCCCAGGGACCAGT
-GTCGGAATCTGCATATCAACAGGGTCTGCGGTCGCTCGCGAGGGTGACAC
-CTGGGGAGGCCGCCCAGAGATCCTGCCCCCGAGCTCCGTGAGACACGTCA
-ACAGGGTCTGCAGTCGCTTGTGAGTGCAACACCTGGGGAGGCCGCATAGA
-GACCCTGCCGCTGAGCTCCGTGAGACACACACCGTCACATGTACTCCAGC
-CTCGTCTGCGACTAGAAACAGAGAACCCTGCACATCTGCAAGGCACAGAA
-ATTAACGCTGGTGCCTTCATATTGTGCAATAACAAACTGCGGTTAACCTG
-AATGAAGCCGACCTATAGAATCAAAAAGATAGTTCTGGAAAACATAAAAG
-AGCAAGTTGTAGCACATGACGTTTTACAAAGATTAAAACAGCATTCACCC
-AAAAGATGGCCAGTCACCCACGGCCGCACAGGTACAGTGTGGACGTGCAG
-CAGAGCCAAGGACGGGGCACCTGGCAGCCAGAGGGACAGGCACGTCTTAG
-GAGGAAAGGTCTGCGGTGCTCCTTTCTTTAAAAAGAAATAGAAACGATCT
-GAGGCAAATATGGCATCGGGTTTCCCTCCACTCATTTATACTCCTCTGGG
-ATTTAATTTTCAAATTAATAAGCAAACAAGACAGGTGAAATGGGATTCCC
-TAGGATTTGATAGCCGTAACCACATGCTTGGTGTCAGAAGCTCCGTAGAG
-AGCATTGAGGAGATGAAGCCCAACTTTTTAGAAGCCAATTTTCCGAGATA
-CCTCAAGACACTTTGTCTTGGTCTCCTCTTCCTAGAAGAACATTCTTTAA
-AAAAAAAAAAAATAGAAACCGCCTGATGTGCAAAGATGTTTATAAGAAGA
-AAAAACTAAAAGCAAGTCAAATGTCCCAGTAACATGGCAGGTGTGAGTCG
-CAGCACGGCGCCGCCGAGGAGACCAAACCCACCCACGGCATGAGCGTGAG
-TCGCTGCAAAGGGCAAAGGTGTGCGCCACAAAGCACCAGAGACCCCCAGG
-CCCCTGCGGCCTGGCCTGGCACAGCCTTGCTTTGCAGCCCCGGAGAGGCA
-GGGCCTGGACCTCACCCTGGCCTCCACCTGCCACCACGCTGTTCCCGCCA
-CCCTGAATGCCCCCTTCCAGGCATCCCTGACCAGCACAGCCTCACCCCAG
-GGGAGCCCGACACCCTCCGCCATCTGCTGCCTGGCACACGACGTGAGCCA
-CGGGCACTGAGGTTACCACAGGGTCCACAGCTCCAGAGCTTCCCAGAGCC
-AACCCCAGGCCCGCCCCGCGCTTGCCCGGTGATCAGGTGAGTCTGCGAGC
-CTGCGGGGAGAATCCTTGGGCGCCCATGTCAGGGTTCAAGGGGTGGGCGT
-CATGAGAGCAGGACCAGGCACCCAGGGGCCCCAGCCGCACCAGCTCTCAT
-TCCTGCCCCGCCACAGGCAGGCAGCCCAGCTGGCGTCCAAACCTCCTTCA
-CGGGCTCCAGGGAAAGTGGCTGCCTCGGAGCCCAGGCCCAGGGGACCTTG
-AAAGATAAACCGCCATTGTACAGCTCCAGGGAAAATCAGAATCGTCCCTA
-AGGAGTCTCAAGAAAGCACCCCTCAGCAAGATGGAGCCCCAGGTCCTGGA
-AGAGCCACGAGCTGTTCTGCAAGATGGAGCCCCAGGTCCTGGAAGAGCCA
-CGAGCTGTTCTGCAAGATGGAGCCCCAGGTCCTGGAAGAGCCACGAGCTG
-TTCTGCCCGAAAGGGCAGAGGGCCGGAGAAGCCAGTCCTGGGGGAGGAGG
-TCGGGGCCACTCACCAGGGCCTTCCTAACGTTCCGTCCGAGCGCATTCTG
-GAGGAAGAGCAGCTCCTCAACCGAGCCCGAGAGGGCATGGCCCCGGTCGC
-GGGTAGACAGCCGCACCTCTGCCCCATCTCTGCCCGCTGACACCTGTCCT
-GGTCCAGGTCCACCTCCCCGGGCATCCAGGCCCCAGCTCGTCCCTCTCCT
-TAAAGTCTTCTGGCTCTCACACCCTCTACGTgtccgttctcacactgcta
-gaaagacctaactgagactgggtaatttattttaaaaggaagtttggttg
-actcacagttctgcaggctgtacaggaagcgtggctgggaggtctcagga
-aacacaatcatggcggaaggggaaggggaagcaggcgcttctcatcatgg
-cggagcagaggaagagagaacgtgagggggagggaccgcacacgtttaaa
-ccatcagatctcgtgggaactcactatcacgagaacagcaacgggaactc
-cgcccccatgatccagtcacctcctaccaggcccctcctccaacactggg
-aattacaattcctcctgagatttgggtgtggacacacagccagaccacag
-caCACCCCCCAGATCAGGCTCCTGATCTGGGCACCTGCCCAGTCTCCTGC
-AGGAGCTCCAGCCGGAGCCCCGGGGCCCTGCGATTCCCCTCCCTGAGAGC
-CCCTCTCTCAGCCCATCCACAGGTTATATCCCTCCCACCTCCAGATGGAG
-CTCAGGCCCGCCCTTCCTCCAGCCCCTGCCATCTCCTGGCCAGTGACCCG
-GTGACGACGTCACCTCCGCAAAGGCTCACACGGTTCCACCTATCCCCTGC
-TCTTCTCCACGGAGCACCAGTGTGAGCCTGAGAAACACGCCCTCTGGCAC
-CTGTCCTCATAAGGCCTCTCCTGGCTTTCTCTGGAGTCCAGCCTCACCCT
-GGCCTCTACCTGCCACCATGCTGTTCCCGCCACCCTGAATGCCCCCTTCC
-AGGCATCCTTGGCCAGCACAGCCTCACCCCAGGGGAACCTTCTGCCATCT
-CCTCCCTGGCACACAACGTGAACCATGGGTGCCCAGTTCCCCTCAGTCCC
-CTACCTGCTCCAAGGGTAGGGCCCAGACTGATGGCCTCTGGGGTGGGCCA
-CGATGAGACCCCTGCCCCTGAGGGCCCAGCCTGCACCTCCTCCACCTCAC
-TGGATGCTGTTAACCCCCTCTGCTCCTCCTCCAGGTACAGGGAAGCCACA
-GGGAGGCAGAGGGCAAACATCGGGGAGCTGTGTTCCCGCCACAGATCCAC
-ACTGTCGGTTGAGTGCACCCTCACCAGGAAAGCTGGGCCCACCATGTGAt
-ttcctggagcctccgtgacaaaggaccacaaactgggggcttaaagcaac
-agaaattctctcacagttcggaggccggaagtccaaaatcaaggtgtccc
-cggggccacgttccctctggaggctccaagggagggatcttcctgtctct
-gcattttccaggggccccacaatccctggaattccctggttcacagccgc
-atggcctgattggagcttctgtgtctgcatggcctcctgcctgagcctca
-aacctctctcttttttatgaggaacaccggttaattacaggatttaaggc
-gtaccctctccgggatgggactatctcatccccagatctttaatttgatt
-ataactgcaaaaaccctattggcaagtaagttcacctttacaggtcctcg
-gggggctaggatgtcaacacatctttttagcggggacacattcaacccac
-aacaCCAGCGCTAGCAGAATTCCAGCTGCCAGAGAGTCGGGCATATGGGC
-AGGCGCTTATCAAGGAAGAAAGCAGAGTGTTGAGGCTGTTTTTTTAAGCC
-ACAGGTAAGAAGAAATTGCTGAGTCAGCTTCAGCATTCATTAACAGCCAC
-CGATTTCCCGGGAAGGCCCGAGGGAGATGAATAAGCAGCAGCTGCGATTC
-CATCAAGCTTAATTTAAAATCCTGGTGGAGGAAGGCATGGAAACCAGTGC
-TGCTGGTCCCAGGAGAATGCTGGAGTTGAATATCTCTGCATTCAGATGCG
-GGCTTTACCTAGGAGTAAGAAAGCCTGTGTAATTAGACCTAATGACAAAG
-AGGCTCCACACCTCCCTCAGTCCCGGGGCACCGGGCTGCAGCCGACAGCT
-CCAACCAGACACCTCGCAGTTCCCAAGGCCAGCACCCCAGAGAAGGGATG
-TAGGGATCTTCTTCAGAGCAGAAGGTCTTCAGGGATCTCAGCACATGTGC
-TCCAAGCAGACATCTCCCTAGTCCCGAGGGGCAGGGCCGTGGACAAGCAG
-CTGGAAGCCCACCCGGCCAGCCTTGATCCAGAAGATGACCCCTGGGTGAC
-CCCTGGTGAAGGCCGGCATCAGTGGCTGCAGAGACGAGGGGGCCCTTCTC
-ACACCCCAAGAGTCAATTCAACCAGATGGTCGGCCACCAGGCAGAGACGG
-GGCTGCCCAAGGAGATCCACAGCACATCCCATAAGACACACACTCGGCCC
-TGGCCCTGTGCCCTCCTGTCTGCCCCTCTAGCCACCCACTGCCCGCTGCC
-CACCACCAGGCCTCCAGAGCAGGCTCAGCTGGCGCTAAGGGCCCAGCTGT
-CGGGGATGCTGAGATAGAGCGAGGGTCAAGTTCCCTCTGGTTCTCAGAAG
-GCCCTGGCCAGGATGTACAGGTGGCCGCAGGCGTCAGTCTTGGAGGTGGC
-CGCAGGCAGTGGGGGTGCAGGCGGCAGATCCTCGGTATGAATTTAAATCA
-TTTCAGCCCTTCAGCCAGCCAGAAAACAGTTCCAATCCCATCCTGCTGGC
-CCAGAAGTAGGACGAGGGGAGAGACAAAGCCAAACCCTTGACCAGCTCCC
-CCTGCCCTGGTCAGGAAGCCAGAGTGTGAGAGTGTGCGGGGCTCGGCATC
-CGGCCCCACTCGGCCATCCGTGCTGAACAGGATGCCCTGAAGGACGACAA
-GGCTGCCTCGGATCCTGATGCCACGCTTGTTTCAAATCCTTGACGGGGAG
-AAACGCGGGGCGCCACGCGGCACCTCCAGGTCACCGGTTCCCACTCTGGG
-ATTCAGGTGAGAAGCCAGGGTCTCGGGGTCCCCTGTGACCTCTTGGCCTT
-TGCCCATGGAGGGCAGTCGTTTGACTAAAACAGGACCTTTCTCTCCCAAG
-GCACATTTCCAAGCCGTTTCTCACTTGTTCAAGATACTTTTTACTTTAAA
-TGGAACGCAGTCAAGAAGCAATGTACGGCCACCATGCACGTGGCTGCTCC
-TCTCTCCTGGGCCTGGGCACCCTGGGGGTGCCCCAGGAAGAGGCCCCCAC
-ACCATGGAGGTGAGCGAGGGGCTCTGGCCGGCCCGAGGGGGCTGGGATGG
-CGAGGATGGCCAGATTGGGCGGCTGCCGGGTCTCGGGGCCCGGTGGGTCC
-CTCCTCGGTGGCTTGACCCGTTTGCCTTTGAGCAATGACTCGGTGGGCAG
-CAGAGCCCCACCCGTAACCAGCCTGCACAGCGCAGCCCCACAGGAATCTG
-TTCAGGCAAAGGTTCTAATTATCAAGACATTTTTATTTCAAGCAGAGCTC
-AATATTTCAAGTTCATTCTGTGCCTACGTTTCAGAAAAAAAATCTTCCAG
-CAAGAACGCAATAAACAAGACTGAGAGCCTCATTAGGAGCCTGTGAGCCC
-CACATCACCAGACGCGCTGCAGCTCCCCGTGATGACCGCTCCTCCTCCGA
-GCCCCGCACACGGCGCGGGTTACATGGAAAAGGCACCGCAGCTCCCCGTG
-ACGTCCTCTCCTCCTCGGAGCCCCGCACACGGCGCGGGTTACATGGAAAA
-GGCACTGCAGCTCCCCATGACGATCGCTCCTCCTCTGAGCACCGCACACG
-GCACGGGTTACATGGAAAAGGCACTGAGTGCGGCCCACAGGAGAGGCGGG
-GATGGAACCAGGACCCCAATGCATAGGCTGGGGGACGCACCTTGGCCACC
-TCCCGTGGCGGGATGGTTTTCCCAATCGGAGATCCCAGCAGGGCCCATGC
-TGGCGGCTCTGCCTGTCCCTGGCACGGACCACTCCTCACCTGTGGATGAC
-ACCCCCATCCCAGGTCTGTCTGCAGGACTCAGGCCCCTCCCCAGGTGCCC
-CCCTGGTACTCAGGGACTTTCCAGCAGCACATGGAGCTGGGGTTGCATGG
-AGGTGTGTGGGGGCAGCTCAGAGCCCTGCCTGGAGCCTACCCCAGCTGCA
-GGAGTCCCAGGGACAGTCCCATGACGGCCGAGCACATGCCTCCTCACCAG
-CTCCTGCAGCCCCCACAGCCTTGGCCCTGCCACTCACACAGCTCCCAGTA
-AGAGGTCTCCAAGCTCTGTGCCCAGCCCCCAACTCAGTCGAGCCCACAAA
-GGTCTCATAGATCTGGGCACACGTGGCTGTCCTAAACCTGCCCTGCACCC
-TCCCAGGGGGTTCCAGTGCCTGACAACACACGCATGACGTCTCCCAGCAC
-CAAACAGACCACCTGCAGCGGTGGCTATGCTCCCTCCTCCCACTCGCCCA
-GCAGAGCACCTGCTGCATGCCAGGCCAGGAGCTGCTGGGGAAAGGAGGAG
-GGGGAAACAAATGAGGGCCTGGCCACCGAATCCCACTGCCTGGGGCAAGC
-AGAAGCCAAGCCGTGGAGTCAGAGTGTCTCACAGGTGGACGGGCAGAGCC
-CGCTGGGGAGATGGCAAAGTGGAAACAGCCGTGGAGGTGGGGAGGGAGGG
-GCTGCTCTGACTCAGAAGGTCCCCAGCCTCAAGTCCGGAGGGGAATGCTG
-CTTTTTCATGTCCATGGCAAAGACAAAGCACCATGCTTGACAGACTTCAA
-GCATTTGAGTTATTAATTCTGTTTATTGTCCATCATTTCAATTAAAAATT
-AAATCTGCATGTGTTTTGGTGCTGATTCACAATTAAAACCCACTGGGTTT
-CACAGCTTGTTAGGAAAACAAAAGGGATGATGAAACTTTTAGGAAACTCT
-AAAAAAAAATACTTTCAggctgcacgtggtggctcacgcctgtaatccca
-gcactgtgggaggctgaggtgggaggatcgcttcaggtcaggagttccag
-accagcctggccaacatggtgaaaccccgtctctactaaaaatgtaacaa
-attagccaggcatggtgatgcacacctgtggtcccagctactcaggaggc
-tgaggcaggaggattgcttgagcctgggaggtcaagactgcagtgagctg
-agatcgcgccattgcactccagcctgggcaacagagtaagaacctgtctt
-aaaaaaaataaaTACTTTAGAACAGAGGCAAAAGCATCTTGATTTCCATG
-AAATTAACGTGGACGTAAATGTGTGGGGAAAATTAAAATGTATTATTGGT
-CAGATTTTGAGTGTATCATATTTAATTCACGGTTCAATTGAAACTCACTT
-CTTGTTTTGCTGAAGACCTTTGCCATTTTTTTTAACCAGTCAAAAGAAAG
-AACAAGTGACAGGGAAATAAGAATAAAATTGAAAACAAATTAGAGGGGTa
-atttggcagatccttccaaagttaaagttacaatatgatcccacaattcc
-actcctccctccacacctgaaagagctgaaaacatgggctggaacaggcg
-gcacacccaggctcacagcagcCAAAAGACAGACACACAGTGGACTCCCC
-GTACGACGGGGCCGGGTCAGCCTCGGGaggaaggaagcgccaacccctgc
-ggctgcacggagaaccttccagacactgtgctgcccgcaagaggcagaca
-cagctcatctatcacgggactccatttacgtgaaatatatccgaaagagg
-caaattcacggagacagaaagcagattcgtggttgcggaagccagagctg
-gggaggggaaatgaggagtaactgttcctggggactgcgcttcctccttt
-cgtgggggatgaaaatgttctgaaggcagacagaggtgggggtcatgccg
-ccctgtgaaagtgccgcattctgtttaaccattcactttaaaacgataaa
-gttggcgtcatgcgaatttcatgtcaatAAAATTCAGCACAAAGAGCAAA
-CTGGAGGGTGATCGTGGTTCCTGGCAGAGCCGCTGTCAGCTAAGAAGCCA
-TCCCTGGGTGAAGGTGCATGCAGGGCCTGACCCCAGGACCATCACCCAAC
-ACGGTCACCACAGGGCAGACAATGTCCGTTTTCACTTTCAAGATCAGCCG
-GTAGACAACGCAGAAAGGCCACCTGCCGTCGGTGTCCATGACAGCTGGCT
-TCACCGTGAAAGTGCCAGCCGGGCGTTCAGAGGGGAGGCACTCAGCAGAG
-ACCCCAGGATCTAAGGCCCATGTTGGACGAGCAGGACGTGATGGGATCGG
-GCTGTGGAGGGGGCGCGTGTGGATGGATGTCCCTCAGTCCAGAAGGAGGA
-CAATCACTGAACTTCGTGTCACCCACAGGGGTCACAGCCCAAGATCTGAG
-AGCAGCTCCAAGTGCAGGAGGGGCCGCGCCGTCCACTCTCCCACACTCTG
-GTGTGCCCAGGCAACTTCATCAGGGACAGCTGAGAAAGGAAGAGACACAT
-TTAGGAGAGTTCCATCTGAAATACCCAAAGTTAAACAATTAACATAAAAG
-CGCGGGTTGGTGCCCACAGATGCTCCCCTCCCATTGCCACAGCCTCTCAC
-CTGCACCAAGGACCCAAGGCCACCAGCCTCCCTGTCCACTCGCAGGTCTG
-GGACCCCCCAGTACTCGGACCGGACTTTGTCTCTTCCCTGCTTAAGCAGC
-AGCCCTGCCCCTGCAGCCCCCAGACCCCAGAGCAGGATCGAGGAGGGAAT
-ACCATTCTGGCACCCCCAAAACCATGGAGGCAGAAGCTGTGTCTGCCTGT
-GACCGAGTTCTGTCCCCAGCTCCAGAGGGTGCCCAGGCCCAGGTATGGAG
-CCCCCAGCCTACCTGCAAAGGCCCCTCTGTGGGCAGCAGCCTGCAGCCCT
-GCCAGGCACTGCATCCGTTCTTGAAGGAGTCCCTCATCACCCCCCAACCC
-CACAGGCTGGAGCCCCACAGGGGCTGTGTCCACTTCTGGACACCAGGGTC
-CAGCTCAGGGCCCGGTACATCTGGTGGGTCAGAGCCAGCTCACTCAGCCT
-CTGCAAGAAAATCATCTTTAGATTGCAGGGTCCAGGATGAGAGTATTTTA
-AATATTGGAAACCCGAGTCATGGGTCAGGGAAGGAAGACAGAATGGGTGA
-AAAACCAAGACGGCGCCCTGGCCAGGTCCTCCTGGCATCTCCCGTCACTC
-TTGACCCAGGTCAGGGTCTCCATCTCTAGAGACCAGTTGGCCAACGGCTC
-CTTCCCACCCACACACAGGTGAAGCCAGGCCCAGCCATCTGGCAGAGACC
-TGGGTTTGGTTGTCCGAAGTCCTCAGCCTTCTAATCCCGGATTCTCCAAC
-CTGGGTTGCAGCCAGGGACCCTGTCACGTGCATTTGAATTGGAGGCGGCT
-CAGCCAGAGACCACTGGCAGCATTGAGATGCTTTGGTTGGATGGAGGCAT
-TTGGGTTTCAGCAGCTGCCACATCTGATTAGACCTGATGCATTGAGCCCG
-ACATGCCGGGCGGCTGTTAGCGCTGCTGCTGAGGAAACCAGTGATCCAGA
-AAGAACACCGCGGCCCGGCACGCCGTGCTGCAGTCGGGAACGAGCAGCCT
-GCTCCTTTGCTGGGTGTGAACACTCTGAATAATCAGCCATCGAGAGGGAA
-GGGGGCCAGAAACACCACGCGGTCCCTCGGATCCCACTCTGTCCTGCCTC
-TGAGATCCTTGTGTTGTTTTTCTGATCAGAAGCGCCGCTTTCCTTAACAA
-GACAGAGGAGAGACGTGGGCACGTGTCTCTGGCTTCCTGCCTTATTATTT
-CAATAGCTCAGAACCAAGCAGAGGAGAGCAAGGAGCCCCGTCAGCACTCT
-CTGCTCAGCCGAGGTGGGTGGAAATCCAGCCATGAGGCAGGCAGGCCCCG
-GGGAGCACAGGGCAGCGCCCCCGTGCTCGGAGGCCTGCTCAGTCCCAGCG
-CCGCCCCCAGGCCTGCAGACCCTCCAGACCCTGCTGACCCCCAGCCCCGC
-TGGCCGCAGGCTGCTCTGTGGCTCACTCGGGGCTGGCCTGACCCACGGCA
-CAAGCGGGGACGCTGGGGGGCTCACATCACTTTTCTACACCCTCTCTGAA
-GGTGGGCAGCAGGTGGGCAAAACAGCTTGAATAAATATATAAATCATAAA
-GCATTatcaatcccactcatacacatagatatataaatcataaaaagcat
-catcaaactgaatccaccaataaatgctagaatagcacatcatggtcaca
-ctgaatttatcctggaaattcaaagtttaacataagagaatagaatgctc
-aaaatcaaagcaattcactccatcaacagagaggagaaagatcacgtgta
-gctcaatcaatacagaaaaagaatctgaaaaaaaatcattccttcatgac
-aaaataaaaaactctggctaatgaagaacagaaggtaactctaatgaaag
-gcatttgtaaaaaaactaccaaaaaaaaaaaaactacaaaagacatcaca
-cagccactgaaagtgcctctttgacattaagagaaaaatcaaatattctt
-gtttccatcagcgcccatcagaaatgagctggaggcctgtttacaaggcg
-aaaaaaaaatacataagagttccaaaggaagacacagaactgcatgtatt
-catagatgatgagataaataatctataggattacaggagttaaacaagac
-tgccaaggacaaaattaacataacaaatccattatttctacagcaatcca
-caactagaaaatgaaagattttaaaacataccatatgcaataatattttt
-taaatagttgagatttagaagtatatctaacagagtccaagacatccaga
-gaccttcatgaaactttcctgagaagctttaaagacgaccaccacagttg
-gaggaacgttcctatcaaccagctcgaggactcagggtagccaagatgcc
-agctcccctccaggagtctactgagctgatctttgtggaacttgacaagc
-cgagtccacaattcatgccagagtgcaagcagtgaagaatgatagtacag
-ctggctccaccacgcaggacttgtcataaagccacagtgacagacagtgt
-ggcgtcggccagaggctcaacaaatagcccagaagagaaggaagtggcca
-gaagcagggccagcctcatgtagatacccatgtaggaaagggcagaacca
-tggagccaggggaaaagcagttccctctatgaatgatgctgcgacccagg
-acatacacatgcaacagtaacaaaaccgaaccctccctcacaccataccc
-cgggggtcagcacatattttctgtaaagggccacagtcgtttgggccctg
-gaaagccacttagttggcgtctgcctcaaccactcaatatgtgcatggct
-atgttccaataaaactttattgacacaaacaagtggtcagccggagttgg
-ccctcaggctgtagctcactgacccctgccatgcccaaaaatcattcctc
-atgaatcacagacctaattgtgaaagacaaaactctatagttcttaaaag
-acaagataggccaggtgcagtggctcatgcctgtaaatcccagcactttg
-ggaggccgaggcaggtggctcacctgaggtcaggagttcgagaccagtct
-gaccaacatggtgaaaccccatctctactaaaaacacaaaaattagccag
-gcctggtggcaggcacctgtaatcccagctactcgggaggctgaggcagg
-agaatcacttgaatgtgggaggcagagattgcagtgagccaatattgcac
-cactgcactccagacggagtgagacctcatctccaaaaaagagaggaagg
-caggaagggagggagggaggcaggcagtaaataacttcatgatctcagag
-tagaaatgaatttctctaaaaaggcacaaagaaaaactcctacccataaa
-aggaaaatattgataaattcaactacattaaaagtgaaagcttatgttca
-cccaaaaactatccacaacatgtaaaagaaaaacaaaaaaacaaaagaag
-ctctttAAAGACCAAAAGCAACAGAGAAGAGACAAAAGTCCTGAACTGAA
-ACTTGGTAGACAGGAAATATCCGCGGGCGGAAAACGCGCTTCCTGTTCCA
-AGTCACAGGGAAATGCAAATCCAAACACTGAGCGGCCACAGCACACCCTC
-CCCCTCAACACCCCCACCCTCCCCCCACACCCCTCCACCCCGGCTCCCCA
-GGGTCCCGTGCTGGTTCGGCTTAGGCTTTGAGGACCTACACCATCCCTCT
-GAGAGCAGCCCAGCCTTACCCGGAATGGGCCCAGCCAGCCTGGGGTCCTG
-CAGGACAAGGCAGGTCAGGGACGGTGGAGGCACCGAGAGAAAGCGCAGCA
-TGAGGGGATCCTGACCACCCTGGGGCCCCCAGCCCAGCACGCGCAGGTGG
-GGGGAGGTCCTGACCATCCTGGGGCCCCCAGCTCAGCACATGCAGGTGGG
-AGGAGGTCCTGACCACCCTGGGGCCCCCAGCTCAGCACGCGCAGGTGGGG
-GGAGGTCCTGACCATCCTGGGGCCCCCAGCTCAGCACATGCAGGTGGGGG
-GAGGTCCTGACCACCCTGGGGCCCCCAGCCCAGCACGCGCAGGTGGGGGG
-AGGTCCTGACCATCCTGGGGCCCCCAGCTCAGCACATGCAGGTGGGGGGA
-GGTCCTGACCATCCTGGGGCCCCCAGCTCAGCACATGCAGGTGGGGGGAG
-GTCCTGACCACCCTGGGGCCCCCAGCTCAGCACGCGCAGGTGGGGGGAGG
-TCCTGACCATCCTGGGGCCCCCAGCTCAGCAGGCGCAGGTGGGAGGAGGT
-CCTGACCACCCTGGGGCCCCCAGCTCAGCACGCGCAGGTGGGGGGAGGTC
-CTGACCATCCTGGGGCCCCCAGCTCAGCACATGCAGGTGGGAGGAGGTCC
-TGACCACCCTGGGGCCTCCCAGCTCAGCGCTCAAGTTggggcgagggggg
-ggcgggggggcgggcaggggcagggTCCTGACCACCCAGGGCCCCCGGCT
-CAGCACACGCAGGTGGAAGAAGGGGAGCTAAGTACCTGGCAGCTTGTCCC
-ACATCCTCCCTCTCCAAAGACAAAGCATCATTTTCCTGCCCCCTGAAGTC
-GGCCATGCAGCCCCCCAGCACCTGCAGAAGCGTGATCCCACACTGGGGTC
-CAGGCCTTGCCACCATGGTGGAGGTCCTGCTGGGGTCCCGGCCCTGTCAC
-CGGAGGCCACAGCTGAGTCGCTGCCGTGGTGGCTCTGCTGCCAGGGTTCC
-AGCCCTGTCACTGGAGGCCAAGGCTGAGTTGGGAGATGAGGCCACAGCAG
-CAGCAAGGGCAGGGGACTCCACTCCACAGGCCAGGCGGGAGATGCGGGGC
-CCGATGGGAGAAGGCCCTCCAAGGGTGGCACAGCACACCCCGTGTGGGAG
-GGAGGAGACGCCCCAACCACAGAACAGACAAAGCCACGTGGAAGGCGACT
-CAGCAAAGAAAACGCGTGATCCGAGTCCCTTACAAAGACGGCTCCACGAC
-ACAACGTCCAGAAACAGGTGAAAACTGGCCGGTGTTCCAGGATGCCCGCA
-GTCTGGAAAACTTCCGAGGAACATTTTATAGTCAATTTTGTGATTTCAAG
-AAAATGTGTTAAACAGTCATGAGGGCTCTGTCAGGCATCCAGCACCATTT
-TAAACGTGTAAAACACGAACACACCCCACTATCACAGTGACACTCTGTAA
-AAGGAACCAACGCTTCCTGGATGCAAAGTCCAGTTGACAGTGACCCACGG
-ACCCCAAAAGCTGCCCAGCTCCGACGCAGCTGCTCTTCCTGGCTCCCGGC
-CTGGCCCTGAGAGCCCTTAGATGGTCACTGCTCTATCCCtgtgtccggaa
-ttggtgggttctatggtctcactgacttcaagaatgaagccacagaccct
-cgcagtgagtgttacagttcttacaggcagtgcgtctggagtttgttcct
-tctgatgtttggatgtgttccgagtttcctccttctggtgggttcatggt
-cttgctggctcagaagtgaagctacagaccttagcagtaagtattacagc
-tcataaaggcagtactgacccaaagaccagagtgagcagcagcaagattt
-agcgcaaagagcaaaagaacaaagcttccacactgctgggaaaggaaccc
-agcaagttaccactgctggccctgggcagcctgcttttattcccttatct
-gtccccacccacatcctgctgattggtccattttacagagagctgattgg
-tctgttttgacagggtgctgattggtacgtttacaacccctgagctggac
-agaaaagttctccaagtccccactagattagctatacacagaacactgat
-tggggcattcacaaaccttgagctagacacagggtgctgattggtgcatt
-tacaaaccttgagctagacatggagtgctgattggtgcatttacaaacct
-tgagctagacacagggtgctgattggtgcatttacaaaccttgagctaga
-cacagagtgctgattggtgtatttacaatcccttagctagacataaaggt
-tctccaagtccccaacagattagctagatacagagtgctgatttacaaac
-cttgagctagggacagggtgctgattggtgtatttacaaaccttgagcta
-gacacagggtgcagattggtgtatttacaatcccttagctagacataaag
-gttctccaagtccccaatagattagctagatacagagtgctgatttacaa
-accttgagctagggacagggtgctgattggtgcatttacaaaccttgagc
-tacacacagagtgctgattggtgtatttacaatcccttagctagacataa
-acgttctccaagtccccactagactcaggagcctagctggcttcagccag
-tggatcctgcaccgaggctgcaggtggagctgcctgccagtcccgtgcgc
-ccgcactcctcagcccttgggcggtggatgggactgggcgccgcggagca
-gggggcggcgctcgtcggggaggctcgggccgcgcaggagcccagggtgg
-cgcagggaggctcggacatggcgggctgcaggtaccgagccctgccccgc
-ggggaggcagctgaggcccggcgggaattcgagcgcagcgccggggggcc
-ggcactgctgggggacccggcgcaccctccacagctgccggcccgggtgc
-taaggccctcactgcccggcccgcggcgccagccggccgctcccagcgcg
-aggcccacggagcccacgcccacccggaactcgcgccggccctcgagcgc
-cgcgcagccccggttcgcgcccgcgcccctccctccacacctccccgcaa
-gcagagggagccggctccggcctcggccagccagagaggggcccccacag
-cgcggtggcgggatgcagggctcctcgggcgtggccagagcggacgccca
-ggccgaggaggcgctgagagtgagtgacggctgcgtgggctgccacctgt
-caccCGGCCCGGGAGAGCGCTTCCCTCCCAGCGGGCAGCCTGCCCCAGCC
-AGCCCTCGGCTCTCAACCCGGGGGTCAGCGTTTCCTGCAGGAGCCTCTGC
-TAGCTCCAGCTGGAGCACTGGCTGGTTGAGGGGAGGGGATTGAACACTTG
-GAACCCAGACCCCGGCTGGGGATGGGGAGGGAGGCTGGAGACCACCATCT
-GCTCCCACAGGGCTGAGTCTTGGTGCCGGCCAAGCCCTGACCCCCTCCAG
-CCCCACCCACGCCCCTCGTCACCCCCGGCCCCTGCCGTCCCTGCGTCCTC
-TGCACCCCCAGCCCCTCACGTCACCTCCTGCCCTCCCCACGCAAATCCTG
-CGCTCCTGTCACACGGAGGGGAACAAAACAGGGTAGCAGCAGGGACGTGG
-GGGTGTGGCCGGGACCCCAGATGAAAAGGAAGGCAGGTGGCACCCTTCGA
-CCAGCGTCCAGGCAGCGTTTCGGATTCCCCCAAAAGGAGGGCGGGGCTGA
-GAAGCAGGACAGGAACCACAGGATTCTCCGCCCCGCGCCACAGGTCAGCG
-GAGAGAGAGAGGCCTGCGGATTGTGACGCTTCTTCTCGAATCCCTGTCTT
-GTTCTCACTGTATAGTCACACACACAGCCCGTCACATGTATCACGTCGTG
-AAACAAATATCCGTGGTGTGGATGCACCCCCACTAACTTAGCCCTTTAGC
-AGCAAGAAAATCCCATTTATCCTTAAATCCTCAGCACCCAGCCCAGGGTC
-TACCATAAAAGTTAAAGAGTCGAGGCTGTAATAAGGGGTGGGGGCAGATG
-TTTCACCAGATCAGATGCCCCCCCAAGCTCCTTCCAAACCGCGAGCGTTG
-CTCTCTCTCCAGTTCTAAAGCGGACGGGGGGAGTTTGTCTTTCCCGAGTG
-TGTTCGAAATCCCTCTCCTTCCTTCAGTCACTGCGGGTCATTCAAAAACT
-ACTCAGATGCTGAAACGTAGCTTTCCACCTTGGCTTGGGAACAGTGGTTC
-GAAAGTACTTCTTGAAACCTATGGAAATGCAGTATCTCTCCAAAATGTTC
-TGTTTGGGAGGTAATGATGGGATCGCAGGTGTTCGGAACAGAACGTCGTT
-AAGCGTCCTCAGCCCCGCTGGAGCCAGGGCGGAGGGGGCGGCTCCGACCT
-GTCCCTTCTCATCACATCAGTTACTTTCCATTAGCGGGAGGGGAAATCAG
-CAGATGCTGGTGAGGGGGGTCCCGGCGGGAAGCAGACCCCTTCTGTGCAT
-AAACACTCAGATCTTGGACTGTGAACAAGGTCTTTTGGCAACACTTCTGG
-TTAATACGTTTCATGAATTTATGAAATCCTAGCACTCAACGTTTCTCCAC
-GTGGATTATTGCCAGGCTGTGAGGGGAGAGGGCTCTGACCAGCATCTGCC
-GATCTGAACTTCCAACAGAGATAAATGGGGAGACACTGTTTCCTCAACCA
-GGAATCGTTCGGCTTCTGTGGGGGCTGCAATTATCCTTCAAAAACCGAGC
-GCCTCAAGGCCCTTAAGGAAAAATTGCCCCAGCGGGGGTGGGGGCGGGGG
-GCGGCTTCTGAAGCAGGAAATGCTCTGCTGGGGGGAGGCGCGGGGAACAC
-TGAGGATTCAACCCCCATCAGACATAAGAGCAGGTTCTGGTCCTCACTTC
-AGCCTCCAGCATCTTCTCGCGGGGAACACTGAGGATTCAACCCCCATCAG
-ACATAAGGGCAGGTTCTGGTCCTCACTTCACCCTCCAGCATCTTCTCGCG
-GGGAACACTGAGGATTCAACCCCCGTCAGACATAAGGGCAGGTTCTGGTC
-CTCACTTCACCCTCCAGCATCTTCTCGCGGGGAACTCTGAGGATTCAACC
-CCCATCAGACATAAGGGCAGGTTCTGGTCCCCACTTCACCCTCCAGCATC
-TTCTCGCGGGGAACACTGAGGATTCAACCCCCGTCAGACATAAGGGCAGG
-TTCTGGTCCTCACTTCACCCTCCAGCATCTTCTCGCGGGGAACTCTGAGG
-ATTCAACCCCCATCAGACATAAGGGCAGGTTCTGGTCCCCACTTCACCCT
-CCAGCATCTTCTCGCGGGGAACACTGAGGATTCAACCCCCATCAGACATA
-AGGGCAGGTTCTGGTCCTCACTTCACCCTCCAGCATCTTCTCGCGGGGAA
-CACTGAGGATTCAACCCCCGTCAGACATAAGGGCAGGTTCTGGTCCTCAC
-TTCACCCTCCAGCATCTTCTCGCGGGGAACTCTGAGGATTCAACCCCCGT
-CAGACATAAGCGCAGGTTCTGTTCCTCACTTCACCCTCCAGCATCTTCTC
-CACAGAGAAGGGAAGGAGAAAGAGGAGGAATCATTCATTCTGAAATAAAT
-TATCTGTGGAAAACAGAATTCGACTGATAAAGAGTCCACTTCTCAGCAGC
-AATCCTAAACGAGCACCTGGCACACAGCCGGGGCCCAGGGGGCCTGTCCA
-GCGAGTGAACGAGTGACCCAGGGATGTCTCATCAGAGGCCAGTGCACCAG
-CACAGCCGGCAGTCACACGGGGATGGCCACGCACAAACGCACGGGGCTCC
-AGTTAATTCTCCAAGAAGAAAAACATTTTGTTCTGAAAAACGCGACTGTG
-ATCTTGAAAGTGGTATttcgtggatgtgtcccaagggcccagcacagtgt
-ctggcacgtTTAGAGCCTCTgaaaagagaggagaaagaagtgaagggagg
-aaggagacagagggcaggggagggggaagggagggtggggaaggggaagg
-gagggagaggggaagggagggagagggggaaggaggggaagggggaagag
-ggaaggtggggagggggaaggggaagggggagggaggacagagggggggg
-aagggaggaggagggcgggggagggagagggggaagggggagggaggggg
-atggagggggagggggagtgagggggagggggagTCCCTAGAACCCGCCC
-CCGCCCCCATGGAGGAAAGGAGCCGGCATTCCTGCAGCATTTGGCTCCTC
-CAAGGCCCCTTCACTTCCCTTCCGAGAGGTCACTGTGGCTCTGGACTCTC
-CCAGCACAAGGAGTGGACATGGACAACAGTGAAAGTCCTACTTGAGTTGG
-CCAGTGTCTCAGCCTTCAAAACCTCCCCTCGGCCAGTGAAGTGACCCCTA
-ACCTCCCTCAGTTCCTCGCCCTGTACCCCATCATCAGCTGCACCCCTGAG
-AGCCATGGAGGGGGACAGGAGGGCGGGGCCGAGTGGGGGGCACCCTGGGC
-TTCACGGAGCTTGGCCTCTGCAGGACCCAGCCTCATGTCGCTTCAGGGCT
-CCATCGGCTTGGGAGAAGTGCAGCTGCAAGGAGAAGCCAGGAATGTTACT
-TCACTTCGCTTGGAATTCTAACCTCTTTCCTCACCGCAGCCTGAATGTTC
-CAGTCAGTGCATTAACACACAGAGAGGAGGTTGTCAATCCCCTCGCAAAT
-GTGGCCACTTAACAAAGATGCAGCTTATTGTCAGCGCGTCTTTCATGAGC
-TTGTAAAAGAGACACAAAGAggctgggtgcggtggctcactcctgtaatc
-ccaacactttggaaggccaaggtaggcagattgcctgaggtcagcagttc
-gagaccagcctggctaacatggtgaaaccccatctctaccataaatacaa
-aaattagccgagcgtggtggcacgcacctgtaatccctgctacttgggag
-gctgaggcaggagaatcgcttgaacccaggaggcggaggttgcggtgagc
-taagatcacaccactgccctccagccttcgcaacagagtaagactccttc
-tcaaaaaaaaaaaaaaaaaaaaaaaagagagaCACAAAGAGAGGAAGGGC
-ATTTGAATCGGATCATCAGATGCTGTGACGGTGCCAGCGTGCAGACACAA
-ATGCCCTCCTCTGTAGCAGGGGTTCCTGGTATCCTGGTAAACTCCCCAGG
-CAGCTCAGATGCCCAGACTCCATGCCAAGCCAGCTGACGCTAACTGTAAC
-TCTCGCCGGTTCTTTGAGAGCACAGATGACCTCCACATTCGCAATGTAGC
-TACATACTCATCAGTTAGAGGAGACAGAGAAAGCCCAGTGGATAAAGACA
-ATTACTCAAGTGGGAAATTACTGTGTTTTCGTAACAATGTGTCACAGCAC
-AGTCCCTGGGAGGGTGGAGGACTCAGAAAGAGGAGAGGAagccaggcttg
-gggctcacacctgtgatcccagcactttacaaggggctgaggcgggaaga
-tcacttgagcctaggagttcaagatcagcctgggaaacatagggagaccc
-tgtctcaacaacaacaacaacaaaaattaatttaacttgtaaaaattggc
-caggcaggatgatacacacctgtagtcctggctacttgggaggctgaggt
-aggaggatcacttaagcctggcttaaggctgcaatcaaggctgcagcgag
-ccatgactgcaccactgcactccagccttggctacagactaagaccctgt
-caaaaaaaaaaagaaagaaggaaggaaaggaaggaaggaaagaaaggagg
-gagggagggagggagggaaagaaaaagaaagaaagaaagaaagaaagaaa
-gaaagaaagaaagaaagaaagaaagaaagaaagaaagaaaagaaagaaaa
-gaaagagaaagaaaggaggaaaggaaagaaaggaagaaagaaaaagaaag
-agaaaCAGGAGATGAAAATTCTTGCCAGGGAGTGTGGCTAAAACCTACCC
-AGTCTAACAGTAAATCATGATGCCCAAGGGGAGGGTGCACCGTGGGGAGC
-AAGCTGGAGAAATGAATTCCAACTGAATGGCATATCCAGAGGTCCAGCCT
-CTAAAAACAGAATCATTCAGGAGGGGCAGATTGCATGTGAACTAACAACT
-TAAAATGGGTTTTCCTTTAAGAGAGTTATTTCCTTTCTCCACTTAGGAAT
-ATTTCATTGGTTCCAGTTGTATCGCCATCTTTCTGGCCCTGAGTTGGTGC
-AACCCTTGGGTTGTATCCATCCATCCAACCCAACCTAACCCTGGCCTGTA
-AGCCAACTGCCTACAACTCGCTTGCAGTGGTCCAGGCATGGCCAAAGGTG
-AAGGAGGATAGGATAAATTACATTAAGTCAAGACAAACAGGGTTTCTTTC
-TTTCAGGTAATTTTCCTCGTTTATTAAAATACATACAGAGCATGAGTTTA
-GGGCACATTTTTGAAGTATCTCTGATCTCAGAAAAGGTAGGAGAAGACTC
-AAAAGTAACCAAATTTTTtcaaggattacagcttatctattgctcattaa
-atggattagagaagcacagtgaaggatgattcatattgtcttaaacatcc
-aaagcacagtgtctctttatcaacgtgagggacggcaaagtgaagcaagg
-tatcttctactttgtagagacacactgacctgcttcggatcactggatcc
-ctggacatttcaacaaggtcgcgaggtcctgagttagtgtgggttgatct
-ctcctctctgagatatttgctacttccagctcaccagactcgagcagcat
-gataccaccaatgtggctgaccagcatgatgttctgtgggatggtgaacc
-gagatgacccagtcctaattctgacagacgtcaggaacactgactcggcc
-ctaagatgaggctgtgaaggtatacttctgcccctgttgtgtgaaagctg
-cttcttgggctaattggccgataaaagcatttgccagctcaaagctgctt
-acaggtgtcaagatgaaggttaaattttctcagtaacaaaactgcatatt
-gaatactggtgacaagagccattatccaagtttactgtgacccactgtca
-tttcctaacacccataggttgtttcacagccagacaTTGTTTTCTGATAT
-TTCACAAATCAAAGCTGCTATCCTACATATTGTTAATAAATATTTTAAAG
-CTTCCCATTAAGCTATGATGCATTCAAGATTGTAAGATACATCAGAAATT
-AATTAATTATGTCAAAAAATGTAGGAAGACTTCCTACTCACCCACCAAGC
-TCTCAAAGCTCAGCAGAGAATCAAACTTGGTGCAGCCCTGTCCATACCAC
-CTGCCCCGCCTCTCCCAATGTCTCTGATTCACCTCCCCCTGGAGTCTTCA
-AGCTGGCCCCCAGGTACATGCCCAGCCTCCCTCCCCAATGCCAGGCCCTC
-ACCTTCGCAGACCCCACAGTGGCCTCCTGCTGATCTCAGCACTTCCTGTT
-CAACCCTCCTCAGGTGGGCAGAGGGGCCACCTTCACAGAGCAGGAAAGGC
-CAGGTCCACCGAGCTGCCCACGGCCCCCTGATCCCCATACTCTACAGCAA
-GATCCCATGCTGGGAtacagcagagtcacctgcagggtttgctgggccca
-attcccctggcttctaatccagcaggtcttgggtggagcccaggaatggc
-cctggtgacctgtctcctggcgaggcagctattgctggccactcggggtg
-gacactgtgggGCACGTGCCCTCCCCCAAGGAGCCTGAGCTGCTGGTTCC
-CTCCCCCTTCCTGCCAggtgcccccaaagcaccctgagaaaagggcttga
-gcataagtagctgacttgggagatgacccaggaaaccgtcgggggtgcag
-ggaagtgaacagggaagggacagagctggagaggggcctatggtcaggcc
-atgctgggggtgcacagagcccatggagaacatgagagccagtgCTACCG
-CACCGAGGCCTGAGGGAGCTGGGGATGCACTACACAGCAAACACCGCCCC
-CTGAGCAGGACCCTGGGAGGGGCTGCCTAATTCCCCAGCAGCCCACCCAG
-GCAGAGGGGACTCAGCTGTCAGAGGCCTGCAGGGGCATCAGTGGAGACGC
-AAGTGTTGGCAGCTGGACGTCTGGCCGGGGTGTGGGTGGCCCGACCGCGT
-GGGTGACATCCCCCAACCACAGAGCGCTCGTCACGCCTTTTGGGGGCACT
-CCCTGTGTCTTCAGTGCCCGAGCCTCGGCGTCCTCCTCTCTGAGCTGGCG
-CCCTTGCTGTCTCCTTGAAGTGTGCTGACCCGGCTCTTGCTCATCCTCAG
-AGAGTGGGGTCCAGCTCCCTGGGGCCAGCGCTTCCCAGACATCAGACACC
-ACAGACCGAGGCCACAGGCTGTGTCTGACATAAATATTTCACGTGTTTAT
-ATACAACCTGGCGCTTATGGGTGCTCAGAAGCCTGGAGACTACCTGGGAA
-ATTGAATTCCTGTATATTTTCATTCCAAAGAAATTATTTATAAGCGATTT
-ATGGAGAACATACTCCTTCATAAATACATATTTACATTCCAGACGTTTCC
-CAGGGCAGAGCCAGTTGTGCGTGCTGTCAGCCTGGACATGTGTGTGCGCA
-CACACACACACACATATACACGTCCTTACCTCTTCATTATTAAACTTAAT
-TCTTCCATATGGGAATTTAGGTTTTTAACCTTGAAAATGATGAAAATCAG
-AACAGCGCTGCTTTCCAGGAGCCTTTTTACCTATCGGCTCAGGGGTGGGA
-GCTGGAGCCCCAGGCCGGCTCAGGCACCCCCGGCAGCACAGGCCAGGAGC
-CACTGGTCTACCTCCCCCACCCTGAGATGCATGGAGCCGTAGGGGCCTCT
-CAGGGAAACTGAGGCTTATTTCCTTCGTGGGCCCACACACCTGTGTAGGT
-GGCTGGGCACAGAGGAAGCTCGGGCTTTGCGGAGGAACAAACACAGACGA
-TGACGGGGACAGAGGTTGCCGGTTTCTAGAAAGTGGCTGTTGGGCACAGA
-GGAAGCTTGGGCTCTGCGGAAGAACAAACACAGACGATGACGGGGACAGG
-GGCTGCCGGTTTCTGGAAAGTGGCTGTTGATGTTGCTGCTCCAGTCTGAA
-TCCACCCCCAGAGAGGTGGGATGGGACCACGGGGGGCGTGCAGGACACTC
-CCCAGGAAAGCCACAGGGAGTCAGCAGGAGCCCAGGCACCCCACGGCCCA
-GCCCCTGAGCTCAGAAGGGAGGTCACAGAGGCATGCAATGCAAAGGGTGA
-CAGTGCCACTAAACGTTCTTACGGGAAGACAAAGACCCCAGTCTCGGTTG
-CAAAACAAAGTCCAGATTTATTCTGCTCACAAAAGGCAGAGTGATTTTTA
-AAATGATGGGGATTAAGAAGGCAAAAGGACAAACAAAACCAAGGAGATGG
-ACGCAGACTCACAGTGTAGGGGGGCCACAGACGGGAGCAGACACGACCCC
-AGGCAGATGCCGTGGACGGAAGGAAAGCAGGTGCCTCTACACAGACGAGA
-GGCGCGACCCACATACGGAAGCTGCTACAAGAATTCAGATGTGCTCAGTA
-ACAGGGCACTGAAATGTTCATATAAGACAAAGACAAAAGTATTTTCAAAT
-TTGACAGAAAAGCAGTTACAGTGAAAAAATTTAACCTTTCACTCGCTCTT
-CAAATGTTGAGATGGACAGAGATAGATGAGATTGTAGGAGGAAAATAAAT
-AAGATGATTAATAAGGATGATTTAATAAATATGCATAGACATAGCACACA
-CTTTTCCTCTAAAATTCATGAAAGATTTGCAAATATCCATCATCAATAAG
-GCTGCAGAACGAAAACTACAATAAATTGTAAGAGACAGAAATGACAGTTC
-TGTTCATCTGAGACAAGAAGACCAGAAAAACATCATAAAAATAAATACGG
-TTTAAAAAAGCCAACTATAGGCAATTTTAAAACATATATGATTCTGTTCT
-AAAAGGAAATAAAAATTTTAAGTAGTATGCTTTCCAAAAATTAAAAGAAT
-TCTCTGGGCGGAAACCTGGAGGGCCTGGCCAGAGCTCAATGCAGAGGGGA
-CGCCTCAAGTTCGGATACCGTAATTATCAACTCAGAAAACAGGAGGGGAT
-CACAGGGTCGAAACTCTCAGAGGAGCTCTGGAGAACAGAGAAGTTAAAAC
-AGAGAAATGGGAGGAAGATGGCACTTCATAATGAATTGGAAAACCAGGAC
-TTTTATCCCTGGATCATTGAAAAATCACACCTTTTTGAAAAAGCCAGTAA
-ACTAGCTAAACCTCTGAGAACCAATGGAAAACACAACATATCAACCAGCA
-AAACATGTTTAATTGCAAAAGAACACTATGGCAAATGTGTTATTTTTGGT
-AAAATGTCTGCTTAGAACATGTTGTACAACTCGGCGAGCGTATTTGAAAG
-TGTCAGTAGCACACAGGACTTCCGGGGAAAAGTGTAATTTTCTGAAAGGA
-GCTTGCCATGTAGAAAGAATAAGCAGCTAACTGGATAGTAATGATTATCC
-AAAAATCACCACAGAAGAGGGTTTGCGGCCCAGAGTATCAATGCTGAGTA
-CAATTATTTGTCACTTTAGAATACAATGaaaatttttaaatatttttaaa
-aagagctctgcctgactgcaagtcataaagatttttctcctgagagtgtt
-agagtcttacattttacatttatgtctatggtcccttctgagttattttt
-tgcataaggtgtaagcttcaggttgaggctcattttttttgtcatggatg
-ttcagttgatccaacaccatttttgaaacactattcattaaaacttcgaa
-ttgcttttacacctttgtcaaaaaccggccatgtttctgtgtggctattt
-ctggcttcttcactctgttccatgggtctatgtttcttgtctttcactaa
-caccacactctctcaactactgtagattcatcgtgagtcttaaaatcaaa
-gattcctccaacttccttcttcttttttagagttggtttagacattcttg
-tttctttgcttttccatgtaaattttggaaccaacttacctatgtctaca
-aaacatttgtgcagagtttgactggtgtcatgttaaatctatggattacc
-tgtggaaagttgtcatcttcccttcagaattttctatacatcaacatgac
-atggctttccagttatttagatctttgctttctttcaccaacattttgta
-gttttcagcatacaacatactttttaaaaatatttatatctggccaggca
-cggtggctcatgcctgtaaccccaatattttgggagaccaaggtggatga
-atcacttgaggtcaggagtttgagaccagtctggccaacatggtgaaacc
-tggtctcttctaaaaatacaaaaattagccgggagtggtggcgtgcacct
-gtaatcccagctactctggaggctgaggcaggaattgcttgaacccggga
-ggcagaggtttcggtgagccgagatggcaccactgcactccagcctgggc
-gacagagactccatctaaaaaatatatatatatatgtttaaatatttcat
-ttttggaaccattgtaaattgattcattttttatttttgtttctcattgt
-tcatggctaacatatagaaatctaattgttgggttttttttttcaccatt
-ctcctgcaagcttgctaaacttatttactatagaaattgttttacagatt
-ccttgggattttctatgtagacatattatctgtgattagggatgaacatt
-tttactccttcctttctagtgtatattatacatatataaaatattctatt
-atatatatatatatattgcttttacacctttgtcaaaaatcagttggcca
-tatttgtatgtgtctatttctggattctttattcagcctatgtttatata
-aaaatacatacatacatattacatatatcttatgtatatgacatgtcata
-tatatatatctatgttattgcatggggttaggacttccagcatgatgttg
-aataagtgtagtgagactaagcatccttgtcttgattctgatcttcggga
-aaaaagcatcagtcattcacgatgaagtataatgttagctgaaaggtttt
-catgattatctcttttttttttttttaagacagtttcgctcttgttgccc
-aggctggagtgcaatggcgcaatctcggctcactgcaacctctgcctccc
-acgttcaagcgattctcctgcctcggcctcccgagtagctgggattacag
-gcatgtgccaccatgcccggctaatttttgtatttttagtagagacagga
-tttcaccccgtcttgatcaggcatgttgatcaggctggatggtcttgaac
-tcctgactgacctcaggtgatccacccgcctcagcctcccaaagtgctgg
-gattacaggcatgagccaccatgcccggcccatgattatcttttatccaa
-gtgaagatgttcctttctactctagaagttttatcatttaagaatgttac
-tttttctatatcaattgatatgatcatgtgttttttccttctttagacag
-ttaatgtggtgaattgcatagattgatatttgaatattgattctgtattc
-ttaggataaatgtcacttgttgagataggtagatggataccatttgctaa
-tattttttgagactttctgttttcatgagagacattggtctatagttttc
-tttaatttttcatctggttttggtatcaaagtcatgctggcctcattcaa
-tgagttggaaagtgttgcctgcttttctatttccttaaagaaattgtata
-aagttggtgttattccttctttaaatatttggcgaagtttgccagtgaga
-ccatatgggcctaaagagttctttttcaggaagatttttaactacaaatt
-cagttgttaaaatagtcactccagagggtttttatcacaaattcagtttc
-tttaatagttgtagaattgttgagatcatctattttatcttgggtgcatt
-tctgtggtttgtgttttgttcatttcacctaagtggtggcatttacgcgt
-gtagagttgtttgtagcattgccttattgtcgttttaatgcctgtacgag
-agccacttcttcactcctggtattcgtaatttgtatcttctttctttttt
-ttcttttgccagtcatgacggagttttatgaatcttatttatcttttcaa
-agaaacggctttaagtttcactcattttctccgttgtttttcaatttcaa
-ttttatttgtttcttctatttattatttctcttcttctgctgactttggt
-tatcttgctctattttttgttagcttttttatttacttttgttttaggtc
-agggatacatgggcaggtttgttatataggtaaattgcatgtcatggggg
-cttggtatacagattattttgtcctccaggtaataaacatagtacccaat
-aggcagttttttgatccttgccctcctcccaccctccaccctcaagtagg
-ctccagtgtctgctgttcccttttttgtgtccatgtatactcaatgttta
-actcccacttataagtgaaaacatgcggtatttggttttccgttcctaca
-ttagtttgcttaggataatggcttccagctacgctcacattgctgcaaag
-gaagtgatcttgtcctttttaatggctgtgtagtattccacagtaaatat
-gtaccacattttctttatccagtctaccattgataggtatttgggttgat
-tccatgtctttgctattgtgaatagtgctgtgatgtatgtatgtatgcat
-gtgactttatgatagaatgatttatattcctctgggtatgtatgcaataa
-tgggattgctgggtcaaatggtaattctgtttgaagttatttaagaaatt
-gccagactgctttccacaatggctgaattaatctacattcccacctacat
-gcacgtaggagcatctccttttctccgcaacctcgccagcatttgttatt
-ttttgactttttaatattttttgctagcttttaaagttggaagcttggat
-tattaattttaggccttcttcttcttttctgatctaagcatttatggtat
-aaatttccctctaagcactgctttagccacactctacaaaattagtattt
-tatatgttgtattttaatttttgttcaaagtatttttaaggttcctttaa
-gacatctttgtgatccacggattatttagatgggtgttgttcaaacattt
-aatttacaagtgtttggaggtttcctttttatcttttattgttggcttct
-agtttaatttcattgtactcagaaataatacatcgtttgattccaattcg
-tttaaaggtgttaaggtttgttttatgaccaaaatatggtctatcttggt
-gaatgtttcatgtactcttgaaaagcatgccaattagatccagttggttg
-atgataatgttcggttattttatatccttcctggctttctactaattcta
-tccagtacaaggagacgccaaaatctctaacaagtgtgggtttgtctcct
-cctcatttcatttctgtctcttttgcttcacgtattttgaacttctgttg
-ttcgttaggtacatatacatgtaggattattatgtattctgtgaattgat
-ctttttagcattacataatatccctctttttcctctcataattttctttg
-ctctaaactctgttttgtctgatattaatgtagccattccagcttttttt
-gtttattgcttccattatatatatttctttatcttttactttcaactcac
-ctttatcattatatttgaagtaaatttcttgtacatagcacatgattagg
-acatgttttCtttctttctatttttttttttttttttttgagacagagtc
-tcactctgttgctcaggctggagtgtagtggtgtgatcatggctcagtgc
-agccttgaactcctggactccagagatcctcccacctcagcctcctgagc
-agctgagatcacagttatgtgccacgacacccagtctaatAaaactattt
-acatttattgtaactgttgataatttgcattgagatttagattgagacct
-cccattttctttgctttttgtttcctccctctagttttcatttttctgtt
-tctcctttccttctgtctggtttatctggacttttttaagtattctgttt
-taatttctttattgtgtttctgactgtatctctttgtataacctctttag
-tgatagctccaggggttatattatactacatacagttaccttttcacagt
-cttcttagaatcgtactttaccacttcacgtgaattacagagactttact
-gccagtcaggcccctttatcctcacccttcttgtggtcatcttatataat
-acatttatgttcattgaaaaccccatcagacagagttataatttgtactt
-tcaatcataattctcaaagcataatttcaaacgcaagagggaaagaagaa
-tctatttacccagatatctactGCTTCTGTCTCACTGGCTGTGAAGTTCT
-TGAACTTTGCTATGGTGGCTGTAGGCTGTCGTAGATGGGCCAGTCAGCGG
-GGAACTTGCAAGACTCAAGTCCCAGGTCTCTAGACAGGGATGGGGTCCAA
-GGTGATGACTTGGGATTTCCAGGCCCCAGATCCAATTTGCAGAATACTCA
-GCTGACCCAAGGCACAGAGCGTTATGCAGCAGGCGTGCTGGCAGGTTCGA
-GATCTCTCCCACCCTTGGGGGGAGCCACCAGCCCAGAAGCGTGAAGCAGC
-TGTGTTCCTGCTGCCACACCCATGCCCCTCACCCCCACCTGGACTCTTCT
-GCCACCCGTGGAAGGAGATCAGACGCCCCCAAGATTCTTGGTGCTGCGAG
-ATCATGTGATTGTGTGACCACATGACAAATACAGCATCCATCTGATACAT
-GTCTATACCCAGTTCTGaaattttaaaaataataataaCTTTTAaacagc
-taacacatatgctgtccactatccgggaccattctgagcactttccttac
-atgaactctgtcttttcataccaagcctaggaggcagcctaggaggcagt
-attatcaaccccattttacagatgggacaactgagaagagagacgtcaat
-caaacccccaaggcgacgcagcagtagctggcgaagccggaatctaaacc
-cagatgatgggcccctgagtgtcttcacgtacctaccgtgGCCCGGCACT
-GCCAAGCAGACCGGAGAGCGACCTCCCTCTGCATAAGGAGGCTCAGCAGC
-CAGCACGGTGCTGAAGCCCAGGGCAGGACAGCGTCCCGTTCTGATACCGG
-CTGCCGGCATGTGTCCATTCACCCGGCAGTGGTCCAGTGAGCACCTCACC
-TGGACAAACCCCTCCCAGGCTCTGCAGGTGGCCAAGGCCTCCCCGCAGGG
-CCTCCCGTCCAGGAGTCTGCTTTTAGTGACAGACAGTAAACCATGGTAGA
-GGAGGTTTAAAATGCAGAAGGAAAAGCAACATGTAATAACGTGTGCTCAA
-CCCTTGCTTACAAAGTTCTTTATTTGTAAAAATAAATAAAATAAAGCCAG
-CATTAACTCCGCATACCGGAGTGAAAATGTAAAGAGGTGAGAAGGACAAC
-CCACCAGTGCCCCAAACCCCAGATGCCCCCAACTTCCAGGAGCACCTGCG
-GGGAACCTCCTCGGGACTTTCCAGTGGGCGCACCTGCCCCTTGGCTGGTG
-GAGGGAATGACACTGTAGACAGTGGGCTCATCAGCAAGGGTAGGGGCTGG
-ATGGATGGTTCCGAAAAAACCTGAGGCTTCCAGCTGGGAAATTAGGGTCC
-AGATCCCTAGATAGCAGGGGGATTATAATTTTAAGAACAAACTTGTACAG
-AGTTCAGGGCCCAGCTCTTACTGAGCCACAGGAGGTGTGAGCCAGTGAGG
-ACAGGATCCCCGTGGACGGGCATGAGGAGCCCAGGACCTGGACACCAGCC
-TTTGGTCAAGGACGCTGGGCTGCTGTGAATGTCGGGTTGGACAGGAGTGA
-GGGGGATCAGGATCCGGATCCGGAGGCAGTCCAGGCCCACCCCAGGCCCC
-CTCCTGCCTTGGGAGCAACAAGTGGGGAGGCACCAGGGAGAGCGCTACAT
-GGTCCAGCTCCCTCCACCTGCAGACCCACAGGGGCGAAGAGGAGGTGATC
-GCCCGCAGAGCAGGTGAGGACCACAGAGCAGGTGGGGAACTGCCACCACC
-CTGTGAGAAGTGTACCCTTCCTCCCACCAACAGGGCAGGTGGGGACCACG
-GCCACCACACCCCGGGAGCTACACCCTTCTTCCCGTCCACAGGGCAGGTG
-GGGACCACGGCCGCCACACCCCGGGAGCTACACCCCTCCTCCTGCCCATG
-GAGCAGGTGGGGACCATGGCCACCACCCCCAGGGAGCTGCATCCTTCCTC
-CTCGGTGCAGCGTGGCCTTTGGAATCCCCTACTGGAAACTTGAGGGAGGG
-ATCAAGTCATCTCCATCTGAATTCAGGTCTGACTCTGTGGGGAGCACCCA
-GGTTTGCAGAAGGGTTTATGAGCCTGAGGCCAGACTCCCTGCAGACCTGG
-GTGAGCCCTGACAACCCTCGCCTAAAGCGTCTGGCAGCGTCGCAAGTCCA
-GCTGCCTGGCCAACTGAAATGACGGTTTGGGGCAATGTGTGGTCTCATCA
-CCTCGGTGCCCAAAGCTCCAGTGACCATCGTTTTAGCAGCAACACCACCG
-TCTACCTCGGAGAGCCACAGAGGACTGTGGGCAATAGGCTCTTGAGGCCC
-TGAAGGCTCAGGCAAGGTGGTGGGTCCCAGGCCTCACACTGCTGTCCCCC
-AAGGAAAGCAGGCAGGCCCCTAACAGCACCCCAATCTGCCTGGGGTCCCA
-GCTGGCTTATCCCAGACAGTGCAAGCTCACATGGAGCACACAGCTGGGGC
-TGGGCGGGATGCTGCTGCTGGCCTGGGAGGAGGGGCAGCATCCAGGCAAA
-CAGCAGAGCCATCAATCAAATGGACATGCAGGGCCAGGACCACTGGGACC
-CCGGAGCGCCACCTCCCAGGCCCTGCAGTCTCAGGCCCCCTCCCTCCATC
-TCAGGATGtctcttttctttgggccccagatatcaacaggtctcatctct
-tcctctggaaaaacatcctcaatttcaccctttctcaccaactctaccta
-ccactcctggtgcaagcagccccacctcccacctCCCACCCCAGCCTGGG
-CTGCTCCTGGAGCCGAGGCCACCATTCAGAGACACCCACTTTCCCGCACT
-CACCGCCCAAACCGGACTCCTTTCTGTGGGCAACCTGGCCTGCCCCCAAC
-CGTCTCCCACCAGCCCTGCGAGGACCCCTGTCAAACCCCTCAAGGTCACA
-CAGCAGGGCTGGGGGCAGCCACTGGGAGAAAGCCAGATCTCACACTGGCC
-TCTGCCCTGagcccgaagccagggactatcagtgcagatgcaagggctgg
-ccgctccccagattcggacacccaagagccatccaggcccagcgttccca
-tggggcccagggaggcctctgctgtgactgcgtggggtccagatcctgct
-ctgccGCCCCTGAGGGCGGCCACAGGAAACCTGGGCCACAGCTGCCCTCC
-TGGAGTCAGTCTCCCAGTCCCCGACCTGAGAAGCTTCCTGACCCGGCCCC
-ACTTGTCTGGAGCTGGGTCACCTGAGTGCATCAGATCTGCCGGCATCCAC
-TGATCCCCTGGATGTGTCAGATCCGCCGGCGTCCACTGGCACCCAGGCAG
-CCAGCATATGTGAATCACAATTCCACGCTCAATCCGCTGGCCTCACCAGG
-GCAGGGGCCCTGCCTTCCACTCCCGGCCACTGTGGATGACAGGCTCCGAG
-GTCCCCAGGACCCATCCGTGCAGAGCCCTTCCCCACACCAGCCAGGCCTG
-GGACCAGGTGTGCAGACCAAGGAGGTCCTGGGGAAGGGGAGCAGGAGGGG
-TTCTGGCTTCTTCAATAGCCATGAGCCCTACAAAAAACACCTTCCCTTTG
-GGAGTAAGGACAGGTGCTGCTGACTAGCAGTGGGGGTGGGATCAAGGCAG
-CAGCTGCCTCAGGAGCCCAAAGGTGCTAAATCCCTCACCAGGGTGGAGAA
-GGCCTCCCAGAGGATCTCTCCTTGCAGTGGTGCCTGGCGGGGCTCTTGAG
-AAAGCTCTAGGGATTTTCAACCTCGGAAAATGGATATGGAGCTTGGGAAG
-GAGGCGGCGCTCCCCAGAATGTTAAATCAGCGTGGTACCTCCGCCCCACA
-CCCCACATGCGAGTCAGCTCCCGTTACCAGGCACCAAGCCTGGCAAGCTG
-CGAGTTTGAGAACAAAGGACACATACTCAGGCCAGACACCTGGAGGAGAG
-GGCAGGGCCAGACTGCGTCTCCTGGGCCCGAGGCTGTGCCCGGCTCTGTG
-CCCCTTTCTGGGCGGGTGAAGAGAAACGGGCTCAAAGTCGCTGCCAGAGA
-GGATGTGGGCCCTCGAGAACGCACCCTTTCCCAATGCCCCCTACTGCCAA
-TTCCCAAGCTCCAGACCCAATCCTATTCCTTCATCCTCATCTGGGGCTCC
-CGCCTGCAGAACACTCCCGGCACTCATCACTGCCTACGACAGTCCTATCT
-GTCCCCAAGACCCCTAAATATCCCTCTGCTGCAAAGCACCTCTGGTTCCC
-CACCCATGATCTCAGAACACAGACTGTGTCCCTTGGTGATGGCCCCTCCA
-GGGCCCCCTTGAGAGGGTCTGTGACATTCAATCCCTCAGAGCTCCAGGAA
-GTACAGAGGGAACTGGCTTCACAGCCCCTGTGCTGGGACTCAGTCCCTCA
-GAACTCTGAGAAGTGCAGGGGGAGCTGGCCTCAGGGCCCCCTGTGCTCAG
-TGCCTTCCCATGCCATTGGCTGCGTGGGACTAGTAGACCAGATGGCCTTA
-CAGGCAGGGTCTCAGATCCAAGAAGCAAACTCTACTTGGCCTGGCCTGAG
-ATGTCCGCAGCAGGGGAGTTCCTGGAAGGACACCTGTAGTTTGCACGCAC
-AAGGAAAGCTTCAAGAACAGGGAAACTGAGGCTGAGGCTCCAGGGCCTCA
-GGGTCGCAATAACCATCAGCTCATTACACACTCCCTCCCCCAGCCCCTCC
-TTCCAGCAGGAGACCTGGGCTCCCCTGAGTTGAGATCAGCCCAGCTCGGC
-CATGGGAAGAGCTCTCCCTCCACCTTCAGTGTGAGAAGCCCCAGGACGCA
-CTGGCAGAAGTCCTGCCTGACTGATCACTGTGGCAAGGAGACCACAGGAG
-CCCTGGGGGAACGGCTCAGGGGAGAACGGACTTCCCAAAAAAGGGGGTCA
-GTAGCACCCAGGGATCTCTCCAACAAAACCTGAGGTGAGGCCTGTGCAAC
-CTTCCTGGCCGTGCCATCACCCCAGGACTGAGGGTCCTGCCAGAGACAAT
-ACCGTGCCCCCAACCAGGGCCCCTGCAGCCGCTCCAGGGGGCACGACCAG
-CCAGCCACAGCCACCTTTCCTGGGCCTGGAGTTGCATTAGGAGTAGCAGG
-CATCAGGGGTGGGGTGGTCCCTGCCTGAGGCTCTACCAGGGAGCCGCTAG
-GAGCCCAGGAAGAATGACAAAGCCAGCCCACACACGTAAAGGGCAACCTG
-GCCACCTCCTGCCCGTCCACTTCCCCGAAGCTGTCACAGCCCAGAGTCCG
-TTGTTGGGGCGTGCAGAGCTCCCCGCTGTTCCAGAGGGGGCAGCTTCCCG
-ACTGAGCAGGAAGGAAAGGgagggtgggggcagaactctatccggccact
-gttggggacaaaaaatttggaaaaatggtttgcagactctgacaaagcta
-aacatacaacccagaaatcaccctcttagcactgagtccagcaaactgag
-aactgttcacacgagaaaccacacacgatgactgctcagggcagctgtgt
-ctataatcgacaaaaccgggaatcgccaaagtgtccagccggagaataga
-cagacagactgccgcacttccacactgggagcaccacccagccacaggag
-gagcgagcctgggaaatggacagacaGACTCACTGCAGCACGTCTAGGCC
-GGGAGCACCACTCAGCCACAGGAGGAGGGAGCCTGGGGAACGGACAGACA
-GACTCATCGCAGCAGGTCCATGCTGGGAACACCACTCAGCCACGGGAGGA
-GCGAGCCTggggaatggacagacagactcattgcagcaggtccacactgg
-gaacaccactcagccacgggaggagcaagtctgggtaatggagcaacacg
-cactgatcctaagtgcattttgccaagagacaaaaaacagaccgcagcag
-atacacagtgggtggtcccatttgtatgacattctgaaaaaaacaaaact
-atagaacagaaaacatattggccactgccagggcttgggggagggggcgg
-aattggctaaaaagggacacagaagatggttgttagggcagtggagctgc
-tctgtataatgccctggcagtggataagtggttccgggcattgtcaacac
-tctgagacacttcactgcgtgtgcgatggactgaagtgtgtcttccccga
-actgagatgctgaagccctaagccccggggggagtatatttggagatggg
-tcctagaggtaactgaggctaaatgagctgacatgggtggggccctggcc
-cagcaggaccggtgtcctcctaagaagagatgccagaggtccacatgcac
-agaggagaagccaggagaggacacagtgagggagacagctcccacccaga
-gccacaccccccagcaccttgctcttggacttcccgtctccaggactgtg
-agcaaatcaatgtctgctgtttatgtggcccagtccatagcattctgtga
-gggcaacccaggctgactggtagtatgcaaaccaagaaatcagccaggag
-gtgggggcctcaggatggcatgtggcacctaacaagtggatccacctgta
-tttaaaggcaggcgcaataatcttgcccaacagggtggggaggagaggag
-ctgagtaagtaagtaactccagaatagggtatttcaactgatgctgcctg
-tgcacagtgtgctccagtgtccggcagggttacagatgagcaattctgac
-actatgtaccctagagttaaacaagcacatacattgtagagatgagaacc
-agtcagtgcaggaagaacagttacacttacgctagggggaggcagaatgg
-gctttgaggcagtggatttgagtctgagatgtcagcacgaggctgagctt
-gttttaataagtatctatttacagttagatgcatacagaaataaatcaga
-tgtgtgtggacatgggctagtggacacacatgtatttcccagctctgccc
-ctgagaaggcctagaagcagtgacaccccaggatcctcgagcacagccag
-cacccagaccatggcttctaaatcccattctctaaggaaaggaaccaggg
-ctctttagaaggaatctgactctgggtctacagcgggaaatatacaagat
-gagcctgtggcatctgctagtgccagaaagttgggaagtgcaaagtaaaa
-aaaaaaaaaaaaggatggtggggcatgtcagaaacacacaggagacccca
-acggtcaagtgtggaaacagcgcagccgtaaaataaatagcgaccctatt
-agatgatacccaaagaaaatgtatccaagagcccctattaatattaatta
-gtgaatacataaatagataaatgggaaagaagagagaagtcttcgttata
-gaattccaaatcacccacatagaaggactgacggaaacggaaagtcggtg
-agagcacggagcaggaatggccacgggagccaccctgtgctggaggccga
-gattggtgagcagaagtgcaggagaaagaggaaagttacgtggcttggaa
-gtgtctttaaagttgctattaattaCtgtggaggtctgaacaagtgaaca
-caaatccctggatgtgcctccttctagtgggcagagctaaactcccctcc
-ctgggtgatgggcttagggacttgctCACATAGAGACCATGCCATGGGCA
-AGCCCACAGCCACCCCTGAGCCGAGCAGTCACATGACCCCTATGGTGTCA
-GTTAATGACTGGTCAGCTGGAGGCGAGTTCAGCAGGTGCCGACCACGAGG
-TCTGACACTACTCAAAATGACAGAGAGGGACAGGGGTGGAAACCCAGCCA
-GCCAGGGAGCGTCTGCCACCGGACACTGGACGTCTGCACAGCCAGGTGGG
-TCCAGGTCATCTTGGCAGGACTAGGGAAGCACCAGCAACTCCAGGGGACT
-CACGGTCCAGCCCAGGCCCTTCCCTGTCGACACAGCCCCACAGCCTGTTC
-CTGCCTCTGTCACCTGCGGCTGCAGGACGTGGCGAGCTCATGGTGGTGCT
-GGGCCCCTGGTTCAGCTGAGCTGCTGTCACAAAGGACCCGGCCCGGGGGG
-TTCACAGAGGACCAGGCCTGGGCGACTCACAGAGGTCCAGGCCTGGGGGA
-GGTCACAGAGGACCCAGCCTAGGGAACGCACAGACAACAGGATGTTATTT
-CTTACATCTCCGGCGGCAGGAAGTGCAGAGGCAGAGACAGGCCTCCCTGG
-GGTCTGGTGTAGGTCTcttcttcctgatagatgccctcacgtggtcgcgg
-agatggtggtgtccctgtggtccctgatataagggcaataaccttccttc
-aggaggccccaccctcacgacctgatcaccgcccaaaggccctccctcct
-aacaccatcagctggatgacgttagggctcagcaagaatgttgaagggta
-cgaatattcCGTCCCTGTCTGTACCCCAGGCAGTGACAGGGCGAGGCCCA
-GGCTCAGGACCACATCAGCCTCAATGCTCTCGGGCAGGCCCAGAGGGTGT
-GGGCCCTGAGGCTCCCAGTGGAGGGAGGGTGCGGAGGCCCAGGGTCCAAG
-GCTGCCCACTGTCGAAAGGTGACTCACTCCCCCGAGGCTCATCAGACACC
-AGCTGCAGACAGCTGTGCCTCCAGCTGCAGACAGCTGTGCCTCCAGCTGC
-GTGCCTGTGCGTGTACACATATGTGGGTGCATGTCATTGCCCGTGTGCAA
-CAAGGCTGCAGGGGTTTGAAAAAGTGAATACAAATCCCTGGAGGGAAGAG
-GGAACGGCGGGGGGGGTCTGGGAAGAAGAGGGGGACCCTCTAGGAAACCA
-GCATTAACCGACCCCATCCTTCTGGCACCCCCATCTCCCCATCTCCTCCA
-TGTCTGGCCAGGAAGAACCTCTGTGTAGAATAGAAAAACCACAGAACACG
-GAGGTGAGCGCTGTACCCCGAGGACCATGCAGGTGTCATCATAAGCAAGC
-AGCGTTATGGTCGCAATGACTTGTGTCCGTTAATAAAGTGGCCTCCAGCG
-AGGGCCACCCATGGACAGAAAGGCCTCACAGGGCGGCCGGACCCTGGCTG
-CCCCGAGCATGGAGCTCAAGTGAGTTGGTTCTGAGCAGGAGGATCTGGGG
-GGCCCAGGTGGACAGGGGCTTGGCCTGTCCCCCAGGCTGTGGCCCCATCC
-AGCCCTCCAGCCCCTGCACTCACCTGCACCCACCCCACAGAGCACACCCC
-TTGTGCCCAGGAGTGGAGCTGCCATCTGGCCTGTGAGCACCATGTTTGGA
-CAGGAATGGGGAAAATTTCATTATTTCCATGATGAAAGAAGATTGATTTT
-TCTGCAGTTTCTGGAGATGCTTCTAATTGAGTCTGCTGGCCTTGTGCTTC
-CAACAGATGCCCATTTAGAAACCTTTCCCAGTTTTGAGCTGTTTTTCCCC
-CTCTTTTGGTGGGAAGAGAGCTGAATGCTTGAGTTAATCAGATATTGCAG
-AAAAGCAATGGGGCTGTGTCCAGCCGGAGGGAGGCACACAGTGTGTCTGG
-GGCACCTCATGTGTCTCAGGTGCCTGAGTTATCTGGGGTTTCTGGGGTGT
-CTGGGGTTCCTGGCATTGACTGGGGTACCTGGAGTGTCTGGGGTGGCTGG
-GGTGCCTGGAGTGCCTGGCATATCTGGGGTGCCTTTTGTGTCTGTCGTGT
-CTGGGGTGCCTGGGGTATCTGGGGTGCCAGCATCTAGGCAGCTGTGGGCA
-GGCCCAGAGCCACTGGAGCACAGAGGACATTTCAGCCCAAATGCAGAGGA
-CAGGGGTGCTCAGGGAGCTCCAGGGGGTGCCTGTGGCAGATCCAAGTTAG
-CTGTTCCAGGCAAGTGGGGTGGAAGGAGGGGTGCAGGGCAGAGGGGTCCT
-TCCTGGCAGCTATGGGACAGGAAGGGGAGGGCGATGGTCAGCAGGGGTGG
-CCAGGGCTGGGTCCACGTCCCTTCCAGCTGCCAGCTCCCTCCAGCCCCTC
-CCTGGTCCAGACACATAGAAATGCTGACCATGGCATGACAATTGCAGGGA
-CACATGTAGGAGACTGGAAGGACGGAGCTGCCAGGATCCAGAGCTCAAAG
-CCGGCCTGGGGGTTGGGGAGGGATGAGAAGCAGCAAAGACTCTGATGTGG
-GCCTCAGGGGCTGGGCTTGAGGCCCACACTGGCATCACAGCCAAGCCACA
-GAACCGGGCTTGGATGGGAGCTGGGGCCACAGAACCGGGCGTGGAGGGGA
-GCTGGGCTGAATGCACTCCTTGCATAAGGTTGGGAGTCCCAGAGAATTCC
-CTCCTTATGAAAAAGACTAAAAACTTCACAGCCAGTCTGAGGAAATGGCA
-AGGCAGCCAGTCAACTGCCAGGGCTTGGGAAGGAAATAGAAGCCAGCTGA
-GAGCTTTGCTGGGCACAGACAGGTACTCAACAAGGATTAATATTTATCAA
-TGGAATGAAAATTAATATTTATCAATGGAATGGTTAGGCCTTGGCCTAAA
-CCATGGATGTGTGTAAAGGTGGGGTTTACATTCCTTGTTCCATGGGAAGA
-ACTCCTTAAGTTAAAATGCAAACACTCCTAGATTTAGTGGAAACCCCTGC
-AAGAAGTGGAAATCATGCAAGAAGAGAGTTCCACAAATCAGGGCACAAGA
-GGCTGCTATGAAGAGAACCCACGGGATGTTCTCACAGTGAAGATGAAAAC
-CAGGTTAGGCAGTGACTACTCGAGGCAGCCCTAGGGGCTGGCCAAAGAAC
-TGGAGAATGTGCACCCCAAAAGCAAGGGAAAAACAGAACTGCTAAGAGAT
-ACTTTAAAATAATATGTTCAAAATGTTTAAAGAAAAAAAATACAGAAACA
-GTAAGACAAGAATAGGACACTatgcttgtaatcccagtgctttggaaggc
-tacggcagaaggattgcttgaagccatgagtttgagaccagcctgagcaa
-caaagcaagacctcatctctacaaaaaaaaaaaaaaaaaaatagtgttaa
-aaaattagccaggcacggtagatgtactgttgtcctaactactcaggagg
-ctgaggcaggagtattgcttgagccaaggaggtcaagtctgcagtgagct
-atgactgtgccactgcactccagcctcaatgatagaataagatcctgctt
-cagaaaaaaaaaaaacaaaagaaaagaaaaaGAAAAAAAAAGGACACTAA
-AAATAAAGGAGGTAGCccgggcgtggtggctcacacctgtaatcctagca
-ctttgggaggccaaggcaggcagatcacaaggtcaggagatcgagactat
-cctggctaacacagtgaaaccccatctctaataaaaatacaaaaaaatta
-gccaggtgtggtggtgggtgcctgtagtcccagctactcaggaggctgag
-gcaggagaatggcatgaacccgggaggcagagcttgcagtgagctgagat
-tgtgccactgcactccagcctgggtgacagagtgagactccatctcaaaa
-ataaataaataaataaataaaAATAAAGGAGATAGATTGTAAACAAATGA
-aaaagaagcagaaagaatttgcagacataaaaacattgagtgtaagaact
-aaatagacaggctaaatagtcaattagacacagctgaagagaaaaaatgt
-ggatttaaaggtggatctgaggaagtcactttctcacaaggaaaaggaaa
-ataagaaaaggaaattgaatgcaaaattcaacacacattttctaagagtt
-ccaaaaaagggaaaagaaagaaaagagtgcacaggcaatgttttgaaaga
-taatcaatgaaagttttctaagattaaagaaaacattttctttttttctt
-ttttttttttttttgagacagagtgtcactctgctgcccaggatggagta
-caatggcacaatctcagctcactgcaacctctgcctcttgggttccagtg
-attctcgtgcctcagcctctagagtagctgggactacaggcatgcaacac
-cacgcctggctaatttttgtattttttggtagagattgggtttcaccatg
-ttgggtaggctggtctctaactcctgatctcaagtgatccacccatctca
-gcctcccaaagtgctgagattacaggcatgagccaccacTTCCAACTGaa
-gaaaacattttctactagagaataaataaaagcaaatacatgccttgatc
-gtattgaaatgaaagacttctcatcaaccacagtgattgccgaggtcagt
-gggataatatcttcaaatcttcaatgtgctgacagaaagcaactgtcaat
-caaaaattctatacccagctaaattactctagagtgaaggtaaaggcagt
-tttagaccaagatcaaaagtttactatcagtgaaagaacttgatagaatg
-tattttaaaatgaagcaataggattcaagaAATGATCATGATCAGATAAA
-TTGGTCAACTTGATAGCAAGTCTAAGTATTGAGTGTAAACGAAGTGCATA
-ATATAGAAGTGAAggacttctatatccagcagtatggcagatgaagtgca
-taatatgaaccaattgaaaaggcctataaatgctagatacaatacgcttt
-aaagatctttctcagtaaatcacaaaactatctggaaagtaagacatcct
-cagagtccagaaccacagtgaaagtggacatcctgtgaggtgaatTCACA
-TTGAACACAGGCTCCCTCCCAAAGAAGGGGTGGAGCTCTGGTGACCAGAC
-TTCAGGTTCTGACGATGTGGAGAGGGTCTAGGAGGAAATCCACAatgtaa
-gtgtattcatgaaaatgcgtatacacacatacatgcacgcacacacacac
-gcatatttatatgtgtgtaataggtataatacatgtatatatacCAATCA
-ACAGTAttttaatagagtttggaattgcagattaaaggggaaaggaaagc
-ttattcaataattggtgctgggaaaactggttaatatcttaaaaaaataa
-ggaaaattgatttctacttccttcatacataaacatcagttccaaatgaa
-tcaaagacttactggaaatataaatgtttacaaaacttcgaaggtcaaca
-taggagaacatacttatgaccatggcctaaggaatactttcttcaacaaa
-accccaacagtgcaaatactaagggaaaagattgacaaagtctgtgacat
-taaaattcgtcaggggcagcataaatagatgggatgtagacccaccaact
-gggaaaagatacttgcaatgcattcagctggcatgaattagtgcccagaa
-tgcataactaactctaccaaatgaatgagaaaCAATCAAGATTGAATGTG
-AAAGAGGAATATAAGTGGCCAGTTAAGAAGCACTCGGTATTCAGGTGAAT
-GCAAATTAAAACCATCATTTGAAAACGTGTTACAGAACTGTCCACAGTCT
-GGAAACATCAAGCGTTGGTGAGACTATGAGGAAGGTGCCCTGGCGCAGTG
-AACATCAGTTTGGATCATTTTAAAGAAACTAAGTGAAACTGAGAGATGTT
-GCGGTTGCACAATTGCACGTGCGTTCCTCTGAGCGGCTGGAATGTTGGGC
-GCGTGTGGCCCCATGAGCAATTTCCAGCATTTCTCACCATAGCACAGGTG
-GAAAAGGGCAGAGTGAGGGGAGTGCTGAGGGGCACCAGGCCTGGCCAAGT
-CACCCTGCAGGTCAAATGGGGGGCATCACGATCTCCCTGCCCACCTGTGG
-GAAGCActagagaaactcccaccctgggcatgtgggtctgtgcaagaatg
-ctcaatgtggccatttctataatgttgtgaaaaatgagagcagcccaagc
-tgctggcggtggtaggttggatacaccagctgtggttcatcgagacggca
-gaaccccatgcggccgtggacagggaggaaccccagGCAGCTGTGGACAG
-GGAGGAACCCCAGGCAGCTGTGGACAGGGAGGAACCCCAGGCAGCTGTGG
-ACAGGGCGGAACCCCAGGCAGCTGTGGACAGGGAGGAACCCCAGGCAGCT
-GTGGACAGGGAGGAACCCCAGGCAGCTGTGGACAGGGCGGAACCCCAGGC
-AGCTGTGGAGAGGGTGGAACCCCAGGCAGGTGCTCAGCGTGAGGGGCTCT
-CAGGGACATCCCACCAGGAGAGACAGCATCAGCAGGATGTGGGGGCAGGA
-GTCCCAGCTGGTGATCCATCTAGGACGAGGCGATCCGGCAAGACATTGCT
-TAGGGGTCCTTGCCAATGTGGAAACATTATTTTAAAAGCCAGGTAACGGG
-AAACAAAATTCATGGTGGCATTTCCCCCGTGGGGGTGGCAGACGGATGGA
-GCTGAGCAGGGCCCCACAGGGCTCTTCAGGAATTCTTGGGTTTTTCTGTC
-TGTTTATTTGAGGCTGAGTGGCAGATACCCAGGTTGGTTTGCATTTCTTA
-TGGGTACCATGCACTTAATCTAAACAGCCTTCCATCTATTGAAGAAGAAA
-GAGTGTGAATCCACACGCCACATGCCTGCACCAGTCGGTCTCCCTCGgct
-gcacggcaagccacccccaagacagtggcttctcacagcagccatcaggg
-ctctcgaagctgtgcacctgcacccactcacatgccagcagcccaggcca
-ggctcagcggggtggcttctgatctcaacttgaccctcacatgttgctgg
-tcagtggccggcatgactggggctgggctggtggaggcctggtgtgaaga
-ccccagctggggtccttgctgctccacaggcccgggctcctttgccaagc
-agctcggcagggatcccacagtaaacaggaggctctcaagccccggctgg
-gcctcacagtgatgcttccaccacattctgttggccaagcggccacaggc
-tggccctggctgagggagtagacaagaggcagagtccacccttttatggg
-aagggttgcaaagAATCAAGGTGGCTTTGCACCCCTGTGAAAGCCTGGAG
-CCAGGGGGACAGACTCAGGGGCATCTGGGTCTCCCCACGTTTCTGATGTG
-TGGTCCCTGGGCAGAGAAGCTCCCCCTCTCCTGCCCACCGCTGGATCCAC
-GTGTGCCGCCAGGCCCCAGGGAGACCCTGGAGGTCAGGTCCCCCCTCAAG
-GCCTCAGGGGACAGGGAGGAACCCTAGGCAGCTGTGGACAGGGAGGAACC
-CCAGGCAGCTGTGGACAGGGCGGAACTGGCCTCGGTCTGGCCCCAGTTCC
-TGCAGTCTCTCCTGAGCCCCATGGGCTGGAGGAAGCTGCTGCCCACATCG
-GCCCACACTTAGCTCCAGGCCTTGGCAGCCTGCAGGATCCAGCCCTCCAC
-TCGGGCCTGCTCTGAAGTCATGGAGCCTTCAGAGGAAACCCTGTCCCTCC
-TCAGTGTGTCCTCAGCCCAGCCAAGTGGCCGCATCAGGGAGGACCGTGGA
-CTTCCGTGGGCTGTCCTGCCTGCCTTCTCGCACCACAGTGCTCACTCTCA
-TTCTCACCCTCTCTCTGTCTCTCTTtgatatggtttggctgtgtccccac
-ccaaacctcatctcaaattgtaatccccataatcctcctgtgtcaaggga
-gggatcaggtggaagtgattggatcatgcgggtggtttccccatgccgtt
-ctcgtgataatgagtgagttctcacaagacctgatggttttatacgcatc
-tggcatttcccctgcttgaacttctctctcctgccatcttgtgaagaagg
-tccttgcttctcctttgcctttctccatgactgtaaatttcccgagggct
-ccccagccatgctgaactgtcagtcaattaaacctctttcccttataccc
-agtctcgggtatttctttatagcagtgggaaactgggctaTCTTTGTGTc
-tgtctctctgctgtgtctctctttttgtctctctgactctctctgctgct
-ctctctgtctctatctctttctttgtctctgctactgtctctctgcctgt
-ctctgcctctttctgctgtctctctctctctgctgttatctctgtctctg
-ctgctgtctctctctgtctctgctgctgtctctgtctctgtctctctCTT
-CCTCTCAGGCCCCCTCTCACCCTCAGCCCCTACGGTCTGACAGCCCTGAC
-TGTCCTTTGCCCCCCAGAGGGGTGACCAGTGTCCTTGCTGTGGACGCTCC
-AGGATGGGTTATAGAGGAGGAGAAGACTCCCATGTGCTTTTAAGAACCAA
-CTGATGTCCTTTTTTGAGGGAAAAAAATATTGATTGCTGATATCTGCAAT
-AATGAACCCCAGCAAATTACACAAATTACCTCAGACGGCCTCCTGACAAG
-TGTCATCCCCAGAGGCGTCCACAGAAATGTCATTTGCCGAACTCATATTA
-AACATCCTCCAAGACAGATTTAAAATAACTTTGGAGGTAAAAGTCTAAGT
-TGCACAGACATAAAAATGACAACATATGCTAGCTGGAATTATATATTTGT
-GAATTAATTCTTGCATAAAATTAGAATTTGAGGACTCAACTGCAATGCTG
-TACATTTTTGTTGTTAGCAATTATCTTGTAACCAATTTGAATCTATACTC
-AAAAACTTCATTTACATGTTTCTCACAATGTGCTGTGTAAGGGAAATTGG
-CCCTTTAAGAAAACAACTTAAGGGAAGTTTATCGTTTTTTAAAGTCTGAA
-GCTGTCTGCGCAATTTGAAGCTGCTGAGAGCCATGGGATGAGGAGGCGGA
-GCTAGGAGAAAAACTGTATTTGAATCATGGGAAATCTGGAGCTCAAAGCC
-ACAGGAAGCTGAGGAGAAAGGTGTTTGGGTACATGCTAACTCAAGGCTAG
-CCCTGGCCCCCTGTAGCCACTACTGCAGGTAATAGTGCTTGTGTTAACCC
-CATCAATAACAGACTACAAGCTTACATGTGGGGTTAAAATTCACTGCTCA
-GATGTTGGTGTTCAGACTTCAACACTGCCCCCTGGTGGCAAGAGATTCAA
-AATGCAGGAAAAGACGGAAAATAGCTGCGGAGTTGTTTTGTTTCGTTTTG
-TTAGTACTGAATGGCAAATCTCAATATATAACAATGTAGGGAATTAATGT
-TCCTTTGCCCCTCTGTCTTTTTCATTTGCTTCATCTGAACAGCACTAACT
-GATGGTGCCGTTGTAATGAGAACCAGAGGAGGGGCCTTTGGCTGTTGGAC
-ACCCAACAGTAGACCTAGGTGAAGTGTGTGCCTGTCCCTTGAGGCTCAAC
-AAGACACTGCAGTGCTTTATCACTGAAGCGTGAGAAGCCCTGGATCCAGA
-GACTGCTGAGAAGGGAGTCCCCAGAATGGGTGTGATGGCCCTCCTGCAGT
-GCAGGCAATCCCCTTGCTACATGTGACATTGGTTCAACCAACAGTTTTAG
-GTGCTTTGGGAATTTGGGTTCCTCCAGGATGAATCTCCCCAAACCCCAAC
-ATGCTGGAGTAGAATCAGGAAAGATTTGCTGCATTTCTAAGATGAAGAAA
-TTTGGAGAAATTAGAACCTTTTTTCCCATCTTAAGTTTCCCTCCCATCTT
-TCAAGACAAGCAGAGGTTAAAGATGAACTTCTGTGAGTTCTCTGAGAATG
-GCTGAAACTCTTGCTTTTGTGAAATGTTCTGATCTCATTACAAGCAGGGA
-ATCTACCTTAAGCCCTGGGTTTAAAACAAAATGACCTGTCTTTCCTGATC
-TCCCTGCAAAGTGGGGCAGGTTTTGGCACTGGGCTTCAGTCTCATCAGCC
-CCTGAGTCCTGGCACAGAACAACTTCTAGAGTGTTGACTTCACATCCCAG
-TTTACTTAAGAAATCAGTCACTCTCCCCTAGATTTTTTTAAATGACTTGT
-GTTTGACATCTCTTCTCTTTGGAAAACAGTTTCCCTAGATGCAGAATCTG
-ATAAATAAGTTGCAGTCTCTTATGTCTTTTATATTATTTCCTAAATATTT
-TTGCTCATTATATTTTTACAGTTTCACATGCTTTTTTGATTTTTTGGGGG
-GTGGGGgacagagtcttgctctgtcgcccaggctggagtgcaatggcgca
-atctcggctcactgcaaccttcacctcccaggttaaagtgattctcctgc
-ctcagcctcccaagtggctgggattacaggtgcccaccaccacacccggc
-taatttttgtatttttagtagagatggggtttcaccatgttggccaggct
-ggtctccaactgccgacctcaggtgatctgcctacctcagcctcccaaag
-tgctgagattatagacatgagccattgcacctggccTTTGATTTCTATAG
-AGAAATAAACTTTACTCACATTTTCAGAGAATCCAGTTGGAATCTTCAAA
-GACTCCAATATCTGCTTAGAAGCTTCTTAGGTAAGTGAAGTTTGTTCTTT
-TTAAAAATCAGTAAGTCATTTCACTCACTAAGTATCCTCCCTATTTaaca
-tttcattttgaaacaattatagatttacataagagtttaaaagatattaa
-aagtccccTGGGTTCGACCCGCCTGTCTCTGATCTCCCCACCACCGTCCA
-CGGCTGGGTGGGCAGCAGCCAGCTCCAGGGGACTCCATGCCCTTCCTCCC
-CTCTACAAGACCCTCCCCAGCCCATGCCTCCTCCAGACCCTGGGGTCCCA
-CCCCACCGGCAGGAGCAGCCCCTTTGGCCTCCCATGGGGCAGGGAGGGGC
-CACAGGCCTGGATGGTCCTGGCATTAGCCCCTTCCCTGAAGCTCATTCAC
-CTCATATGTGAATTATCATCAGACACATCAGTGCCGCCAATAACTCAAGA
-AACGCAGCCCCTTTTATGAGTCATTGTGTCAGCATTCACAAATAATCCGA
-CCCTGCTTCTCACTGAAATAACGGCAGGCACGATAATTAGGGTCACCGCA
-CGCTCGTCGCATCGTTACGATCCCCCCGTTCCAGCCACGCTCGTTACAGC
-CTGTGATTTATTTTGTTTATGCACAAAAACGTATTTCTGTGGAGAATTGC
-GACTTCTGTTTTGAGTATAACTACACACCATTTTAAACACACATATCAAT
-TACTTATATAAAATACTGAATTTTTCAAAAGACTCCCCAGGAGAGAAGAA
-GGGGTGCAGCCCAGGGGGAAGCTCAAGGACAGCCTGCGTTATTAGTGTTA
-TTTATCATTATCCTTGTTCTTATCCTTAGCAAGCAGTGAAGTCCTGAAAA
-GGGGCAGGCAGAGTGGCCTCCAGGTCACCGAGCCGAGGGAAGGGGTCGCC
-TGGTCTGAGTGAGGCCAGATTTTTCCCAGTGCCTGGCCTGCTACGGGGCT
-GGGTCCTGAACAGGTGAATAAACGGCGCAACTCCATCCAGGTTTGTACCC
-ACGTGCCCCGTGTGGCCAGCGGGGCCTGCTTTCCTTCTCAAAAGGGCCCT
-GCTGGCCCCTAACTTCTATACACACCCTACGGATAGGGCCGTGAGCTGTG
-CAGGGTCTGAATGACCACAGGGCGTCCCGGGAATCACAGTCGCTGGGTGA
-GAAAGTGGCCGCAGTACCCGGGTGCAAGGCAGGGAATGGTGCAGACTGCC
-CGGCGGGCCGAGCTGTGAGGGTCCGGCATGTGGGGTGAGGGCTGAGACGG
-CTTCCCCTGTGGCCTCTGGGCAGCCAGGACACCTCCCGACAGCCGTGCCC
-GCCTCCTCCCGCCAGACCGGGGTTCACATAGAGAAAGACGCAGCTCCAGG
-CCCAAGCAGCCCGCAGCCCCCGGCTTCCAGACAGCTCATTTGTCTTGATT
-ATCTCTGCTGCTGCCCCCAGCCCAGCCTCATTTCCGGTAGGTACTGGAGG
-CCAGATAAGGGTTTGCGGGAAAATAATCAGCAAGAACAGCTTCCCCCAGC
-CCAGCCGGGCCTCAGCACCTCAGCCCCACTCAGGGCTCCCCACCCCAGCC
-CCAGGGGCCTGCTTTGGGGCCACTCCCGGTCCTGGGAGAGGGAGGTGCCT
-GCTGGGAGACAGCATGCCAAGGGACCCAGGCCCCTGAGATGCCCATAGCA
-GGAAGCGGCGCAGACACGGGGGCAACAGGCAGCGTGGGTCTGGCGGGGCT
-GGTCTAGGGTGGATCTGGGCAGAGCTCCTACCTGCGGGGCCCACGTAGAC
-TCCTGTGAAGACGAAAGTTCCATGAGTGCGTCCTCAATACAGCTCCAGGC
-CTGAGACACCCTTGCCCCATCGCCTTACAGCCCTTCCAGCGCGGGCGCCG
-TTGCATGCTCCACCCATGCTGCACAGGTGGCCAAGGGGCTCCTTGTTCTG
-CGGACTCCCCTTCCAGCTCAGGCACCAGCCAGGTGCTGGGGTCGCTAAGG
-GGGATGGAGGAGGCATTCGTCACCTTCCTTTTGGGGTGCGGGGCAGGCCC
-CAGCTCCAGCTGTGGCGGCCCCCCAGGGAGGGGGGTTTTCTGCCCAGAGC
-CCCCAGGAGAACCACGAGGAGGACGGGAGTGTGTGGGGCAAGGGGCCCCC
-TAGCCCAGGCAGTGGAGAGAGGCCAAGAAGGCGGAGGGGAGTGAGGAGGG
-GCCGCTTCGTTCTCCTAATGACAAACCTGGCTCAGCGCAGGCACCTGAAA
-GCGATTGGCAATCAATACTCACTCACCGAAGGCTTATCTGGATTAAGGTG
-GTTTCTTTTCCCTTTTGAGATTTTGCATCCCTTTAGATTTCTTTTTTCTC
-TTTTGCCTACTTGGGTGTATTTTCTGAATTGTTTAAGTAGTTTGCTGATG
-AACACCACTGCCTTAATTTCAAGCAACAAGCAGAATCCAACCTGCTAACT
-GATAAGGAGGCCACACAGGGAACCAGCCCTGGATGTGCAGGACACAGGGG
-CGGCTCTGCCCAAGGGGAGCCGCCAGCACCCCTCATGTCTCTTCCTGCAC
-CTGCATGGGAGGGGCCGCTCTGCCCGAGGGGAGGGGCCAGCACCCCTCGT
-GTCTCTTCCTGCACCTGCATGGGAGGGGCCCCCTCAGAGCTGGGCGCAGG
-CACTGGCGCGGGCATGGCAGCTCGGCCTCAAGCTCCCCACAGCCTCCACT
-CAGAGCACTCGCTGGCTCACAGCCCAGGAGATCTAAAAACTCAGGGAGAA
-AATGGGGGAAACAGAAGACAGACAAGCATGGAACCTCGCAGGGGAAAGAT
-TTTGCTCAGCTGAGAAACAGCAACAAAATTGCCGAAGCTGAGACGGAGAA
-AGGGGAAACCATCACGCCAGCATGAGGCGAGAGCCGCACACGTGGACCAG
-GCGCAGGTGACGCATGTCGCCTCCAGGTGCGCAGCTCCGGGGCTGTCCCA
-GAAGATCAGGTGGGGAGCATTCGGTACCATTCCTGGAAACACTGGAGACT
-CTAAATCACATGTGTGTATGTGCCCATTAACCCACCTTTCAAAATAACTA
-ATCCaaagcataagataagaatccttatgctcaaagatatttgttgcagt
-ctcattcatgagataaaaattcacaaacagcttcagtgtccatcaataag
-gaaataggaaaattactatatatccatctgcccaatgaaataGGCACAGA
-TGGGATCCTAGAGTGGATAAAATAGCATAGACACTATGCTATGTTATCAC
-TATTTACATAGTGTATATGTAAATACactttatttacaataaagtgtaca
-tttaaaattacaatgtctttaaaacatgattatgtctgtgtgtgtgtgtg
-tgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgtgaaagcccatagaggaa
-aaaaacccattcgattgaaatagaccaaactataacagaagtcatctttg
-gtcaatggatctaaagatgattttttaattttttctaagttcaagtgttt
-cacaaattattttaaataagcacacattacctttataatATGGTAATGTA
-CGTATTGATAAGTATAATGATAAGTATTCTAAGATCCAGGATATTTATTC
-TTCCGATGTGTTTGAAGAGCACAAGGGAGAAACCTGTTTCCCTTCCTCTT
-TGGGCCGAGGCTCCCTGGGCCGTGCAAGGCTCTGCGGAAGGGGAGCCCTG
-CCCCCGTCTGTCCCGGATGTGGCCCCTGGAATTTGGTGGCTCCAGGAAAT
-AGGAGCTGAATGAACGAATGTTTTATTGAGTGCCTGCTGGAGCCAGGCCT
-TGTTAGATTGAGATATACTATTAACTaagtgggtggatcacttgaggtca
-ggactttgagaccagcctgaccaacatggtgaaaccccatctctatctct
-aataaaaatacaaaatttgctgggcgtggtagcacatgcctgtaatccca
-gctactcgggaggctgagggaggagaatcacttgaacctgggaggcagag
-gttgcagtgagccgatattgagccattgcactccagcctgggcaacagag
-cgagactccatctcaaaaaaaaagaaaTACTGTTAAGAAAGCAGAGCCCC
-ACACTGGAGCAGCCCCTGGATATCTGCAATCTGGCTTAACAAATCTATCA
-GCTAAGTCTGCAGGTGCAAGCCCCGCTAGGATAGATGACACCAAAAGAAT
-AAATCCGATGGATCACGTGTGAAATATTGTATGTGCAAGACAAATCATTT
-GAACTACCAAAATAAGTCAGAAGTACTCTACAAAAGCAGCTTAAAAAGTT
-CTTAGATGGCCCTGCTGGGCCAGCTTCTCCAGGCCTCTGGTGATTCTGGG
-GCCACCCAAGTCCACATTGCCTCAACCATCTGGTGGCACCTGGACCAAGC
-CAGGGCCCGAGCCTGGCAGAGGAAGCAGGTCCTGTTTGCGTCTCAGAGTC
-AGAATGTCCTTCTCCATGAGACACTCACACCCTGTcccagctaatttttg
-aatttttagtagagacaaggtttctccatgatggtcaggctgacctcagg
-cgatctgcccacctcagcctcccaaagtgctgggattacaggcgtgagcc
-accatgcgcagccAACACActcttaattttattttagctagtacagataa
-cataaccaagggactgactgttttgctttttttattactttgcatttcct
-tatgtatccagcaaaccagctccccaggagttggatccatctttaaattc
-cactggtaactttcacctttggtagctgagcccagaccacctgcagctcc
-ataccaggggtgaccatgtggccacctaggaatcaaagttcctcaacccc
-cacccttttatcctttctcttcccaaacccatgtttctatgagccaggcc
-cttctagcaaatcccacttctgataccaatTCCGtagaaaaaaacaaaac
-tgtttttcctctgctgtcatcccacatccatcaatacagaagaattctgt
-gacctctggagtcacagaggtcaggggtgggttgtccccaccaacaacca
-atcaattgcctctgtagtggacggtagctgagtgtcccctaattcaattc
-agctctgatactgtctacctggagatagcatcagagcccacagcttgagg
-gctcagtcccacaagaatctccctaatttcaatgccagttacaagccctg
-ggttgttttgcttgtgcttctgactaaaaggctgtaaatcaaggttccca
-aatcccctccttgggttaataaaattaataaaattttctagaggggctca
-cagaactcagggaaacagttagttacatttcctggtttattataaaggat
-attacaaaggacacagatgaagaaatgcatagggtgagttatggaggaag
-gggtgtggagcttccatatcctccctggccacatcaccttccaggaacct
-tcatgtgttcagctgtccagaaactcccagaacctgtccttttgggtttt
-tatgaaggcttcattatgtaggcatgattggttaaatcactggccattgg
-tgattagctcaacttcagcccctccccttcccacagattggaggtttgct
-gatagtcccaacctctcatcctgccttggtctctccagtcaccagccccc
-atcctgaagccacctaggggatgccagccatctgtcaactcattaacata
-caaaaacacactcatcgctttcgagagtccaaggattttaggacttatag
-gcaggaaactaggtgaagatcaaatacatatttcatggtatcacaGCCTG
-GAAATAAGGGAATGATTTCCTGGAGGAAGAATCAGACAATTTGAACTTGG
-AGGTACCATGAGGCAAAAATACCCCTGGGAGCTGCCCATGCAGCCTTCAG
-CAGGGTCAGCACCACCACCCACACCCCACTGTCCTGCCCAGGCCCTGAGC
-CCATGCTTTCCCAGGGGAATAAAGGTGTTCCCCTAGGACTCAGACCCGAG
-TCCAAACTGCAGTGCTCCCTTTTCTTTTCCAGGATTTGCAAAGAAAAGAA
-GGGCTTACCCTCACCAGCTGCTACTGGAATAAGAGGTGTCCGGTTGTCCC
-TAGTGGGAGGAGGGATACCTGTCCCCAGAAGAGCCCAAGTGCCCAGTAAG
-AATGGCCATCTCAGTAGGCATTGGGTTGGCCAGTCCTTGCCCTGGAGCTG
-TCCTTGCTGCTACCTCCTTCCAAGGGAAGCCAGGAAGGGGCTGGGCTGAC
-CCCACATTTGCACAGTTTCCCAATCATATGGTACAATTATTCTTTCACTC
-ACAGGGAAATTAGGCAGAGGCCTGAAATCAGGCATCGACTGGACCTCAGT
-AAGCTGCCATTAAGAATAACCAGGTAAAGAACTAAGGTCATAGATCCTTA
-GGAAGGAATAGAAGAGCCTGGGAGTGATGACGTATCCCCAACAGCACACT
-TTGGACTAAGCGGGGTCATTTCTCTGGTTACAAACCtattatttaaaatg
-tcatgccaatgaattcgaaaatttacatgcaatggaaaatgtcctagata
-actcaccaaaactgacataagaagaaaaagaaaatgtaagcagccctata
-tctatctattaaatacattgtatcacatttaaaacctttccgcaaagaaa
-actgtagccccaagggatttcaccactgaattctgccaaatatttaagga
-agaaaatgctgattatatccaaactcttacagagaattgtagaagcatga
-aaatgccccaactcatttttgaacccagcatgtcactgatacttaagtaa
-gactaagaaattacaagaaaattgaaataaaggccaatcttcctcatgaa
-cttggatgaaaactccacagcaaaatattagcaaaccagacctactaaca
-tagacaaaaaggaatgtatcacaaatacatctggaagtgtgttcacctgg
-gaatgcaaggttgatttaacatttaaaaatcaatccgtgggatctgtcac
-attaaTGCTGAGCTGAGGGGTTCACCACATGAAAAGATTCCCAGATGAAA
-ACACTCCTTGCCTCCCACTCTGTTGACAGATGCTGATGGCAGTCAACCAG
-CCAAAGACCTGTGGAGAAGCAAGGTGGAAACTGGTGGGCTTGGCTGATTG
-GGAAAAGAAATGACCAGAGGAAGAAGAAAGGAGACAAGGAGGAGGCATTC
-TCTAAATCTCAGGAAAGCTCCCAAATGCTTCCCGAGCCAGGAACCCAAGA
-CCCACACCTCCCACCACAGGCATTGGTCCCCAAGCCCCCCATCTCCTCAG
-CAGCAATATTACCCTTAAAGCCCAAATGCAATCAGGTTACTTCCCAATTG
-AGTGAAACTTAATTGCAGAGGATGAACCCAAAATCCTACTGGGCATCCAA
-GACCCTTGGCAAAACGGCACTACACTGCCCTCCAGAGTTATCCACGTGTC
-TACCTGTGAACCCTCGACCCCCGAGCACTCATGTCTTTGGGAACTTTGAT
-CACACACACCCACCTCTCATGCTCCTGCCTCACCCGACACCCACATATTT
-CTCTTCTGAGCCACGACCAGTCCCACCCTCCCTGGGTGCCCCTGTATGTC
-CACCCTCCTATGTTGGGTCCTGCTGTGTCCCAGCACCTGTTCCCAGGCCA
-GCTCTTGCTCCAGTCCTGGCACCACGCCTCGGTTGTTCATCCCCAGTGCT
-GGGCACATACGTGAtggcttcgtccgtttgggccacggcagcgaactacc
-ataacttataaacagcaggcattcactactcacagctctggaagctggga
-gtccaagaacagctctggaggctggcaggctctgtgtggtggggacccac
-ttcctggctcatagatggcatcttcttactgtgtcttcctgtggtggaag
-ggatgaggctccctggagaaatggttgattgcaggcctggggtaggatac
-agacctggcaccttgaacatcttgttatagcagagagaaaagaagccttc
-agagctgcgtcacatcaaaaggattcaagagtcaattctgtaaaatccgc
-tagttcaaaacaataaagaaagaaaccccactgttcctagttttttgaaa
-accagtaaataaaaggaagaatcaagccctaacctcactttcctacacaa
-atgatatcttgaagtagtcaagtggtcaaggaggaaaagtgtctcctaag
-agaagaattccagccctgcgtggggaaggaacagtggaattaaagctcac
-acctttgcaaactccactggcaacggtgggtctggacactgaccgtcaac
-agtggtcacgtggccaagggcctgccggacactgagtgcaccctgatgaa
-gagcacaggactgccgtgggccatgctgctcaccaaaaaagcccagcagg
-cccacgatctgactgtaacctcacagggaattcagggcagaagaaggcat
-ctgaaatcagcatcacagaacacaaccagcaaaatcctaaatgtagagaa
-atcagcaggcccagcgacacggcctcttcaacatgttccagggaaaaagg
-aaggaagagagccatttccacaggactctgagacacacccaagacccacc
-tgccaaggcagcccaaggccaggtttgggccctgaccgaacaaagcagaa
-catgagatgggagatggctggggaaatgtggacactgaccagatatttgt
-tgatatgaagaaattgtgggcaacttttagatgtgggagtgatattgtgg
-ttacttttaaaaaggagtttttgtcttttggagatacaaactggaatgcc
-tcatccatgaaatgctgagatttgGTGCTTCCCTGATGTTCCAACAAAAG
-GAGCTCTGAAATGAGAGCGTCCTAAGGCCCTGCCAGAGGGAGACGGGTAT
-AGCGGATGATGGTCTAATGCTTTTTCTAAATATGTTTGAAGTTTTTTATA
-ATAAAAGGCTCTTTTTATACAAATCCCCGGGAGAGGCTCAAACCGGCCCA
-GCTGGGATCCGGGGCCCTCTTGGCCCACCCTCTGTGGCCAGGGAGAACAC
-AGGTGAGCCCGGCCCGCCCGCAGACAGGCTGGCCCCAGAGCCGGGCCAGG
-CTGGGCCTGAAGTCAGCACCACGGACAGCTCTGGCCGGGCAGCGAGGAGG
-AGCCCCTTTCGCGTGGAGGCCGCGGCTCCCAGGCCAGCTCCAGCCTTCCC
-AAACCAGAGTTTTCTCAAGCTCGGGATTCTAAAAGCATTTATGGGGAGAC
-ACAGTCCCCTATTTGAATAACATGGTCAGAAGGGCTTTTCCCAGAGAGCG
-GTTGAGGCGGGGCACGGCTCAGAACAGCAACATGGTGGCCACCGTGGCAA
-GACCCAGTGGGCTCTGAGCTGTGGCTGGGGCCAGGGCTTTGCCTCGACTG
-TCCTGAGGGAGGAATTCAGAAAGCTCACTTCCTAACTGAGCTCGTTTCTA
-ATCCTCATGGATACCAAGAGCTGCTTCCACTAAAGCCCCCCTCTTCCTCC
-ACGGGTCACCTGTCACCTCTTTAGTTTCCTCCTCCCAGAGGCCTCTGACA
-CAAAGACAGGGCTTCCAAAACCAGGACTGAGGCAGCTGCCAGCTCCAGGC
-TGGGCTCTGGGTCTAGTCTACAGCAGGAGGCTCAGGATGTCTGAGTTAAG
-GGCCGGAACCTCGAGGCAATATTGATTATGCATCTTTATCACACAAAATC
-AAATTCCCTCCGCAGAGAGCTTGAATTGCTGGGAAGAGCAGCAGAGTCAA
-CACAACAATCACACACCCCTGTCCTCGGCGCAGAATTGGAGATTGTATAT
-ATTTATTTGGAAAAGGCCTGGGCTACTTGTGGCATCCTGCCAAGACAATT
-TGAAAGGTATCAACAGTTTAAATGACATTTTCACCTTCAGCAAATACATC
-TCTGCCTGCTCGGAATGCGACGCTATCCTGCCCCGGCAATCTATGATACA
-GTCGCGTCAGAAATAGGTGTCAGCTCTCATTACATTCCCGAGGATAAATC
-CCACTTATCAGGGCCTGCAGAGTCCCAGGCCTCCTGACATCCCATTTCAG
-ACAGCAGCCTCCCACCCCCGCCCCTCCTCTCCCTAAGAGATGCCGTCGGA
-GTTTTCAATCGCTGAACTTCTGCTGGATGGGAGGAGACGGGCAGGCATCG
-CTGAGCTCCTGCTGGATGGGAGAAGACGGGCAGGCATCGCTGAGCTCCTG
-CTGGATGGGAGAAGATGGAGAGGCAGCCTGAGATTTTCGGGGCATGGTGG
-ACAGGACGCCCTGTGTTATCAAAGACACCTTGGGTGATCAAGCCCCCGGG
-CCTGTCTGCTCCCTTGCTGGAAAGTTTTCTATTGTCAAAAAGAAAGACTC
-TGTTGCTCAGAGGCATGGGTCTTCGGTCATAGTCTCAGCTACCCAGAAGG
-GCGTCCTCCCTAATCCCAGGGGCAATGAACTAAGAAGCACAGGGAGCTGT
-GGAGTCACGGAGCCCCCAGGGAGCAAGAGGAGCAGGAGAGCGTGGCCGGC
-GGAATCCTGAGAGTCAGACTTTGCAAACAGAGGAAAGTCTGCAGGGGAAG
-AAGAGGGTGTGTGTTTGCAAAGGtctcagagaagatcgatcaaattttaa
-atctctatccaattaataacagaaaaagagagaggaaacaaatAAccaac
-actgtgggaggctgaggtgggaggatcgcttgagcccaggagttcaagac
-cagcctaggcaacatactgaaatcctgtctttaaaaaagtaaataaaaat
-aaaTTCAtaaaaattttaaagacatttttaagcattggaaagacaatcca
-ccgcccggaagaaaatatttgtgaatcacaaatctgataaaagaatagta
-agaaaaaataaatgcacaaaagatttgaattcatatgttgccgatataca
-aatggccaataaccacatggaaagatactcaacattgtgagtcatcagag
-aaatacaaactacgaagtatctctagaccacaccttttcgaatgcccaga
-actccgacacgggccatatcaagggctggtgggaatcggggacaccgaga
-ggcagataccctgcttgccgctcccgcatttgaaggctggtgggaatcgg
-ggataccgagaggcagataccctgcttgccgctctagcactttggagagg
-agtttggtggtttctgcggaagtgagggggatgcgcctacaggactgagc
-catcccgtggccagcgatctgccgagaggggtgaacgccatgtgtctgtg
-tgaaaacacgcacatgttcacagcggctccccttgcaatagccaaaacct
-gaaaacagcccaatgttcccaatgggaaaatcataaacaagttttactat
-agccaggcggtggaacagtactcagacatagaaataaaagacttaggact
-gatacacaagatgccatagatgaatttcaaaatgattaggctgagtgaaa
-gaagccggacggaaaagctaaaaccctgcaaggcacacgaccccattggc
-ataaagccctaaagaagcccctacacggccgggcgcgtggctcacacctg
-tcatcgcagcattctgggaggccgaggcaggcggatcacaaggtcaggag
-ttcgagaccagcctggccaacatactgaagccccatctctactaaaaata
-caaaaaattagctgggcgtggtggcgggcgcctgtgatcccagctacttg
-ggaggctgaggctggagaatcacttgaacccgggaggcggaagttgcagt
-gagctgaaatcacgccactgcactccagcctgggagacagtgcaagactc
-tgtctcaaaaaaaaaaaaaaaaggccccacccagcacttagggcagtggt
-tgcctggggaggggtgtggggaggcgggtgggctaggaagggagtctgca
-gaggggcacagagaatcttcagggggcggtctgttcattctcccgatggt
-ggacatggtttcacgTCCAGCCTTACCAAAGTGCGCACTGCTCAGTCCTG
-AGCAGCTCCTGCATGTCGGCTACACATCGATAAAGCcagactcgactccc
-cactgggcacagggcatcagcagcgtccaggatgctttggggacccatga
-aaatgttttcgtttcttttaaaatgtgggggagtgtgaccttgtagattc
-aaagcaagtattttagtTTTTTCTCACACTGGAAAACAAAACGAAAATTT
-TAGCACCCATGAAAACCTATTGAATTCTGCCTATAATGGAAAAAAAAACA
-AGTCAAAAGATTTAGCTATGTCCAAAGTAACTTTTACTATTGACATTATT
-CTGACGCAAGGAGCCCACAGTGGCCAAAGCACCATGGGTGGTGAGTCACA
-CTGCAGCCCTAGGAGAGGCTGTTCTGTGTTCTGTGTTTTCAGGATTCTAG
-CTCAGAATGTGTGGTTTCATGAGCAGGGTCAGCCCCACAGGGGAGGCCAG
-TGCACCCCCGCACTGGCGGTGAAGGGTGGCCTGTGTCATTGGGGTCCTCA
-GGCTCCTGCCAGCACCCACAGCCCAGCCTCACCTGAAGGTGGTCCCAGAC
-TACTTGCAGCCCTCATCCCCAAGTCTTGGAGAGGAGAGGCCAGCACATCT
-CAGAGCCGGTTTGGGAGAAAGGCGCTTCGAATCCGACGTTTTATTTTCCC
-AGGTGTTTGAGTAGTCGTCAGTTTCTGCTTGCTTGCttttgttttggttt
-tgttatttgttttttagagacagggtctcgctctgttgcccaggctgcag
-tgcagtgtctcagtcatggcttcccgcagcctccacctcctgggcttaat
-cgatcctcccatctcagccttgtgagtagctgggaccacagtcacacacc
-accatgcctggccaTCAGCTTTCTGATTTTATCAGAGAATTGACCTGTAA
-AGGGAAGGAAGCGGCACCTGTGGTTTAGGAAAAGACACCACCACATAGGT
-TGCCAGATGCCATCCGCACCATCTGCCCTGAGGGCCCCCAGCAGAGACTG
-GATCCCACTGGGACCCGGTTAAACGTCCGCATGAAATACATCAGGCTCTG
-TCAGGCCCTGGTCCTCTCTGCACTCACAGAGATGGGCCTGAATCCATTGA
-CATTCACGTCTCCTTTACTGAGTCTCCTGGAACAGCCCACCTTCCTCCTC
-CCAGAAGCCTCTGATTTCCTCCCTCGCTGCTGCTGGTGCTGCAAACCTGG
-TGCATGCCTGAGTCCCCGTCCTCGGCGCACCTGCTGCTCTGGAAAGGCTC
-TCTGTGAATGGTAGACACTCTGGGCTCCCTCGCTGGGCTCCCAGGACCTT
-TGGGGAGGAAGACGTGAGTCTGCAGCAGCATCTCAGGACAGGAGAGGGGA
-GGGGAGCGCTCCAGGGGTGGGGCCACGCTGCTTTGTGATGCTTCCCATTG
-CCAAGCCCTGCCCCCCGGCTCTTTCTCCCCAGCGCCAGACCAGCCCCAGC
-ACAGAACCCTTGTTCTGGGCAGGTTCAGAGGAGCATCCGGCCCAGGGAAG
-AGGAAGCCCAGGCAGGTGGGGCCCAGCAGCCCCAAGTGGCCAGATCTAGG
-ACGATGGCAGGGGCCTAGGACAGAAGAACACGAAGACCCAGGGTCAGGAA
-GGGAGGGCCAGCGATGCCACCTGAGCGGGCATGCGACCAGACCAGACACA
-GGAACGAGGGCTCTGGGCAGGTGCCAGAGTGGGCAGGAGCcacacacact
-taaatccacccacttcacacagagacacttatgcacatgcatgtatgaca
-catgccacacacacaccacacaggcatgcatgcaatatgacacgtctaca
-cacacacacacgccagggcacacatgcacacaacttaggcacacatcacc
-cacGAGGACATGCGGTATACGTGTTCACACCACACAAGACATAcagtcat
-ccctccgtgtccgtgggttccagaaccccccacagacactaacatccgca
-ggtgctcacgtcctttgtcgaaaacagtgcagcatttgcttgaaacccag
-gcacatcctcctggatgctgtcaatcatctccaggccccccgtgacaccg
-agtccagtgtaaattctgtgtaaacagttgttacacggcacaggttttct
-aatatatttttattatttttaattgttgttttgttattttttaatttttt
-tgatattcagttagttgaatccacagacgaagagcccacagatgtgaagg
-gGTCATcatatacacacacgtgcgtacatgcacacacacatgcatactta
-cacacacacccaaacagcatgacacacgtacacacacgtgtccacatcac
-acacacacaACCTGCAGACCCGGGGACTTGGCTGTGCCCTGGGGTCTGAC
-CCCGCCCGTCTGCCCTCCCACACAGCCGTGGTCACTGCTTTTGGAAGTGC
-TAATGAAAACCTGCTGCGCACGAGAAGCAGCAGCCGAGTCACCTGGAGCT
-TGGCAAGCCCATCCCTGGAGGCCGAGGCTGATCACCATAATCCACAGTCC
-TATTTACATCTTGATTTCATTCTGGGAGCCGCGCATTTGCATAACTTACG
-GCCAGTGGTGTGCGCCCTGCCCCGGGGAACGCACACCGTCTCCTCCCCAT
-CAGGCCTGGGACCCGCCTGATTGGCAATTTGATTAGGAGACAGAATAATG
-CCGGGCGATACAGTATGTAATTTATTTAAATGGAACAAAACGTGACACGC
-TATCACTGGAACCTGGCACCACACCTGTAGGAGCTTATTTGACACAAATT
-GAGATTTCAGGGTTTACAGATATTGCAAATGAAAACTCTCCGTAGGGTAT
-CAATAAGAGTTCAACGGTTCCTTTTATTTGGTTTGAATTAATCACAATAT
-AGGGAAAAAGTAGGTTCTATTTTTTGAAGGCTTTTTGAATAAAATCATTC
-TAAGAAGCATACATTTCTTCCGGAGATATAATTAAATTTCCAAATTGTAG
-TTTCCGGCTCTTACCCTCTGCAGTCAGTGCTGGGAAGGAATGTTGCTAAT
-ATTCAGGCACCAGGAAAGTTCTCGCTCAGTTCCTAGCCCAGCAGAGCCAC
-TGCGCCCTCTCGGGAGCCACAGAACACCCGTGAGGACAGCACCTGTGGGC
-TTGAACCAGAAGCCCAGCCCTGCAcctcccctccacttccctttcttctc
-ctttttcttcctttctccttcctGGCAAACTGCAGAAATACCTTGCTATG
-AGCTAGGCCTGGACTCCTATCTGTGCAGCCACTCACAGTGGTCAGTtgca
-tccgtcagccactgctgcataacaagcaacccacggtaagtggcctgaag
-tgataaacaggtagtactgctcacacgtttgtggacagctgggcaggtgt
-ggtctcagctgggtccactcatgtgtctgaggtccattgtgggtcccaag
-gcggttctgccacacttagctgggctctctcccgtgtctgggaatcggct
-gggtgtcagctggcctaggatgtccttgactggaacaaatgggcactccc
-ctctcctctctcattctccagcaggccagcccccgggtccagcaggggtc
-tgagagagcagagacttgcaaggccccttgaggccccagacgacagcaca
-ttcttctttcccccacagtctattggccaaagtaagcctcaggcccagcc
-cagattcgaggagtgacgaaagagcctccatgtcttttggggggcaaagc
-tgcaaggtgacaggacagagggtgtggaacctgggagACCTTTCTGTCCC
-CCACAGCCGAGTGGCTGCAGTGGGCCCCAGAGCTGCATCCCCTGGCCTCA
-AAAGCAGAACAGCCATTGCTGCCCCGCTGCCTATCCTGGTGTCTCTTCTC
-CGGACCACACGTCTGAGTCTGGGGCCACTGGAGAAGATGGCATCACGACC
-CAGCCAGCCTGGCACACGTGATGATGCTCACAGCTGGCTGATCCCGCAGG
-AACCGCAGGGAAGCAGCTGATTAAAGGCATCTCAAGGCAAATACTTGTAA
-GCAGCAAAACTGCCTGGGGGAGAACAGACAGTGAGTCCACTCTGGTCTGT
-CTCTAAATCCTCCACTTGCTCAAAGCCAGGGCCTCATGCTTTTAACAAGT
-TGATCTGCTGAACACGCCTCCCCATGAAGACCCATGAGGTCAACAGCAGT
-CTCAGCTCTCTCCACGGTGACGTCCTCCAGAGCCTTCTTACAGGATAAAC
-TGGAAAGGTCTCAATATTACAGGGAATAAGTAATTCCTTCTCTTCGATGG
-GCTATCAGTAACCCCACACTTAATTTCCAAACACATGCAAACGGCAGCTG
-CAGGCATCACTTTTACCCGCATTTCATGAGACAGGAACATGAGCGACACA
-TCTGAACATCACTGCCACTTGGAGGGGTATGAACTAATTTAACCCACAGA
-ATCAGCGTTGTGGCTGAGGGCTCTTCTATGAAATGTCAATAAATATTGgg
-ccgggcgcggtggctcatgcctgtaatcccagcactttgggaggccgagg
-cgggcagatcacaaggtcaggagatcgagaccatcctcgctaacacggtg
-aaaccccatctctactaaaaatacaaaaaattagccaggcacggtggcgg
-acacctgtagtcccagctactcaggaggctgaggcaggagaatgacgtga
-acccaggaggcagagcttgcagtaagctgatatcgcgccactgccctcca
-gcctgggcgacagagcgagactccatttcaaaaaaaaagaagaagaaaTG
-TCAATAAATGTGTTCAATGTGTGTGTTTAACATTGTCGGCTTGAACACGA
-AGGCAAGGAGCAGGCATTGTCAAGAGAATGAACATACTGAGAGGGAAAGA
-GTCTCCACTTCGCAGTCAGGTATTTCTGAGGAAGAGACATATGAAACGCA
-TGTGGTTTTTCACATTTAGAGAAAGTGACGACTGTAAGAAGCTGACTGGA
-TAAATAGTGGGGAAAGCTCTGTGCATAGCCAGCAGGAGAGTGCCCGGCAT
-CTGCCGGTAGCTACACAGGCTCCTGGGAGAATCACCTTGACTAAGCGTCG
-ATTTCACAAAGCTCCCAAGTCCAGGAGGGATTTCCACCTCTGCCTCCCTT
-TGTGGCAGTGACTATTCTGGGGAATTGGACTTAGGTGGCCTCTGCTGCCC
-GGCCCCTCTGCCCGTGCCACAGCTCCAGGGGTGAGTCCTGCCTGTGCCCA
-GGGTCCCGCAGGTCCCAGCTGGGTGTGGCTGGCATGGCTGGGGGATGGGC
-CCAGGCACAGGCTCCTCTCCTTGGGTGGAGCCCAGCAGCCCCCACCTCCT
-GGGCTGGACCCCTGGGGGGCCTGCACTTCCCAGCTGAGCAGGTAGGGAGG
-CTGCCATGCAGACGCTGTGGTTGGAGCAATTCCAAAGCACAGGCTGCCGT
-GTGAACAGGAGGCGAGGATTAAAACAGAAATAAGAAGTTCTCTCTCATCA
-AGCGTGGCAGTGACATACAAGGTCCTTCCCGGcagaatttcgcttttgtg
-cgatgagaagttctttgcgtggagggtggtgatgatgacacaatgacggg
-cctgcgcctggcgccaactcacggtatggaggcctaaacatggtcagaat
-gggaaattttatgtatttttaccagaatttgtaaaaGTCATAACGAGCCC
-AGTCTTTGTGGCAGAGGTATGCTCAAGTGtctttttttttttttttgaga
-tgcagtctcactctgtcaccaggctggagtgcagtggctcaatcttggct
-cactgcaacctctgcctcccaggttcaagtgattctcctgcctcagcctg
-ccgagtagctgggattgcaggtgcgtgccaccatgcttggccaatttttt
-tgtatttttagtagaaacagggtttcaccgtgttggccaggatggtctcg
-atctcttgacctcatgatctgcctgcctcagcctcccaaagtgctggaat
-tacaggtgtgagacactgcgcccggccAAGTGTCCAGTTTTTTAAAGTCC
-CTCTGATGGTCGCCCACTCACATGAAGACAATGCACTGAGTACCCACATC
-GGAAGGAGAGCCAACGGCCCCAAAGGAAGCAAGCGGGGCTTGTGGGCAAC
-CTGAGGCCATGTGAGGGAGAcctgccaccaagatgcagagtctatctatt
-tcctctctgtgaatctgggtgggtcacttgctggggcaccaggtcagacg
-tgcccccggggggctcccagcctgaactccaggggacccagagcctctgc
-ttgcacatcctgggaccccagggccgctgtgcaaagaagccccaactgga
-ctcccggGTGGAGAACTAAGGGCTCAATCCCCCAGCTCTGCCAAAATTAA
-CTGGAGACTCCCAGAAGCAGAGATGCCTCGCTGCCACGGGGGCCACagag
-ctgcctggctcacccacccaaagtgccggccctcggagtcctgagctacg
-tgagtgcttattgctttcctttttaagtttttattttcagctggtttgtt
-acacaacaaaagctaactgatTAAccaataaatttgaaaatttagatggc
-aaaacaaatatagagaaaatgtacaaaagtgatacaagagaaacagaaca
-tctcaatgatcttttgtctgttaaagaaaatgaaccttcaggctaggttt
-ggtggagcacacctgtaatcccagcactttgggaggccaagacaggcagg
-tcacttgaggtcaggagttcaagactagcctggccaacatggtgaaaccc
-cgtctctactaaaaatacaaaaattagcctggcgtggtggcgggtgcttt
-taatcccagctactcaggaggttgaggcaggagaatcgcttgaacccagg
-aggtggtggttgcagtgagccgagaccatggcacactccagcctgggcga
-caagagtgaaactgcattgagagagagagagagagaaggaaagaaggaaa
-gaaagagagagagaaagaagaaaggaaggaaggaaggaaggaaggaagga
-agggaaaggaagaaagaaaggaagaaaggaagaaagaaagaaaggaaaga
-aagaaaaaagaaagaaagaaagaaagaaagaaagaaagaaagaaagaaag
-aaagaaagaaagagagaaagaaagaaagaagaaagaaaatgaaccttcaa
-cctaaaactttctcacagaaagtctccaggccaggtgagttccctggtga
-aatttttcaaacattcaagaaagaaataagcccaacacacactgctggca
-caatgatgccagcgtaatcttggtgccaaaacctgaccaaaggaaaggtg
-gctatggggccagccctcatgagcagatgtgcaaatctaaacaagtgtca
-gcaaccagacccagtgctgtcttaaaggatCTTGAACTGCAACTAAATTA
-TTTGTCTTTTCATTATTAATTTTTCCAACATTGAACAAATGCTCTTTCAC
-TGACACTGGTCCTCTAGCCACATGTGAGCTTCTAACTTAAATTATGTTTT
-GTTTTTAATATTTTggccatgcgcagtgactcatacctgtaatcccaatg
-ctttgggaggctgaggcaggagaatcattgagcccaggagtttgaggcca
-acctgggcaacacagtgtgaccccatctgtacaaaaaaaagtaaggggca
-ggtgtggtggctcacacctgtaatcccagcactttggaaggccaaggcag
-gcagatcacctgaggtcgggagttcgagaccagcctgaccaacacggaaa
-acccagtctctactaaaaatacaaaattagccgcacgtggtggtgcatgc
-ctgtagtcccagctactcagtaggctgaagaaggagaattgcttgaacct
-gggatgtggaggttgtggtgagccgagatcgtgccattgcattccagcct
-gaacaacaaggtgaaactccatctcaaaaaaaaaaaaaagaaaagaaaaa
-actaaccaggtgtggtggcatgcacctgtggttccagctgttcaggaagc
-tgaggcaggagaatcacttaactccaggaggtggaggctgcagtgagccg
-tggtcacaccactgcattccagcctgggcaacagagtgagaccctgtctc
-aaaaataaatacataataaacaaTTTCTACTATGTTCTTTGTCTAGCCAG
-Ttgttcttgttcctaatactctgttcttgttttatgaatgatatctgtct
-tcatctctctgaagatTGAATTTTGAATGGACTCACTGTGAAGTTCTGAC
-TACTTTGATTACCTCTGGTTTCTCAGCTGTGACTCCTCCTGTTTATTGAG
-GCGGCAGCCTCTTTTCAGAGCGGGACGTCTTTGGGTGTTCGGTGATCCTG
-GCTCCTGGGGGTTTCTCTCCCGCAGGTGTCCAGGCTTGAAGCGGCCTCCG
-TCTGCAGCACTTTCGCTGCCCTGCTCTTGCCCTTCAGGTTGGATGTCAGT
-GCCTTGAGTTACAAACCTGTGTCGGGGGCTCCATCTGTCACCACAgccgg
-acacagtgccccacacctgtgctccccagtactcatggggctgacaaagg
-aggatggttcgagcccaggagttggaagctgtagcacacggtgactgtgt
-ctgtgaagagccactgccctccagcctgggcaacaccgcgagaccctgtc
-actaaaaaataaatatgtatatgtatatatatatatataGCCACAGCTGG
-GTAATGCAGTGGGTTGAATAGTTTCCAAAATGTTCATccagaacctcaga
-ctgtgactgtagctggacatagattcttggcagatatgagtgattaagtt
-tagatgaggtcacacaggagcagggtaggccctcagtcctatgactcgtg
-tccatataggaagcggaggggacacagaaaggaaacaggtgcccgggaag
-atggccttgtgcagacagatgcagagaccggagcgatgcagcggctgctg
-aggacacctggggacaccggggcgggaagccggaagaggcaggaagccgg
-aagaggcaggaagccggaagaggaggcaggaaggagcttctcccggaaac
-cgcagggaaggcggccctgcccacaccctgaagtcagactcccggcctcc
-agaatggaggacaacacgtttctgttgttttaagccccgcagtactgggg
-tctttgttccggcagccctggGGCACCCCGTGGACACCCTGCCTGAGGGC
-GCTGCCCCGTCCCCGGTGCCCAGGCGTTTGCCCCGTGCGTCCTGTCCTGA
-AGCATCATGGCCGGGTCACTGTGGCAACGCCGTTGGTCACTGTCCCCACA
-GAGCAGCTTCTGCAACACGCATGTCGTCAGGCGCCGCAACCTCGGGACCC
-CGGTGACCAGGAAAAAGGAGACTTGGACATAAACAGAACCAGCATTTTCC
-AGAGGAACTCCAGAACAGAAAAACATGCAGGGCATTTTGGAGAAGGAGAA
-GCGGGAGTTGAGACCGTCAGAAATGACGGGAGTCCGTGCCCTGCACCTGC
-CGACCGCCGGCCCCGTTCCAGGGCGAAACCGCGGTCTCTCCCTCTCCACG
-GGAGCCAGGAGCCCGCCCGGTGTTCCCCACCTCGCAGCGGGGAGGGAGGG
-TGGCCTCCCAAGTCGCACGCGGGACCCGGGCATGGGTGGCCCTGCTCCAT
-ACAGCCCCGGCCACCCCACCCCTGGCCGGTCCCACAGCCTCACACCAGCC
-GCTCCAGCCATAGCCACGGACGGCTGAGTCCGGCCCCGATGCTCATCCCT
-GGAGCTCGTGCTCCCTCCTCTGGACTCCCCGAGAACTGTGCCCGGACCGC
-GCGCAGCCGAGCGTCTCCCTGCACAGCGGCACTCGGCGCTGTCTGCAGAA
-TGAGCCGGTGTGCAGAGACACGCGGGCCGGCCAGCCCCTGAGAATCGCCC
-GGGAGCCCGGCCGGGTGGTCCCCGCGCCTCCCTGGTCTGTCCCAGTCAAA
-GGTCCTGATTTATCGGGGGATTTTGTGGGACTGGAAACCGCCTGGCTGAG
-GGAGGGTCGGGaggatttcactccactgtctgaggactggctgctgatgg
-ctttgatgcctcccctctccctcctccctgggccccacaccggccaggcc
-tcactttagtgcctgtagaagattcgaagcacagaagcccctggcatccc
-ggggaacccccgccccggccccaccccaatcacgataaaccctggccttt
-ggaccagctcggatggggcgcggcggggggctcctgctcccctggaaacc
-tcagtggtgtaagggatgggacgttctcaccctcctggtgtgtgtgtggc
-atcttcagtcttgacatctgaatcgaacattgggcaggggtctctcctgt
-ccttgcaaggtgaccgtcacTGGGATGCCCCGTCTCCAGCTGAGCAACAG
-CACTGTGTGTCCCAGACCTGAACAGCGAGTGGAGACAGTGCCGCTGTGCC
-ACCGCAGGGCACCTCCCGCTGCCTTGGCCACCCAGGCCCTCCTGGGAGGG
-ATCCAAACCACTGACCAGAAATAACACCTGAAAACCGGAACCCGGGTCCT
-GGGGTCACACGCAGCCGAAGGGATGGGCTGGGTGCACGAAGGACGGGCAC
-GGCAGAGCTCGGCTGTGAGGGTGTCATCTGGGCTCGGAGCTCAGCCGCCG
-TGTCACCTGACCCCCTGCAACTCCGCGTGTCAGGTGGGTCGTCTGGTTTT
-ATCCCCAGAGCACCATCCTGGAGAAAACCAAGGACACAGCAGGGTATGAG
-GAGCATGGGTTCCTGGTTCAGAATGAGCTTAAACAAAAGGTTTATTGGCT
-GGGTTTGGCGTTCCATCTGTTTATTTGCTTTTGTCTGTGGTATAAATGTC
-ATGAGGAAGCTGAAAATGGAGAATTAGGAATGGGCCTAAGTTGCTAGTGT
-CTGAAACCAAGGTTAAGCTGAAGGGGAAGCCCAGGGTGGATGGACCCAAT
-GCTAGGTGGCTCGGAggcttcaggaatggctggatccaggagcttatgtg
-acgttatcagatctctctctctttctgtctctcctctcgctctgtctccc
-cctctgCCCACCACTATCACTACCATGCCCCCCAGCCCCCATGAACCTGC
-TTCTCTTTGAGTCAGGTCAGGCCCCTGAACCCTCCTACCCACAGCCATGA
-GGAAGACGCTGTTCCCCGCAGCCAGCTTCATGCAGACTCCCCAGTTGGCC
-CTGCTGTGGGCAGGAAGATGAGGCACCTTCCCTGGCCAGCCATAGACGAA
-GTGGTGGCCCCTGGGGCCAGGAGACGAGGGGGTCCTCTGATGATGGTGTG
-GGTGCAGTGCAGCTGCCCTCATGAAAAAAAGAAGACTTCAGGCAAAGATC
-TAAGTAAGAGATTCCAGGATCTACGATAACCCAGCTCCTAGGGGAGGGAG
-GGATGCAAGAAACACACAGCGTAGAGTTCAACTCAGCAAGAAGGGGCAGC
-ATGACTCAGAGTGACGGACCCTCACACCCACCACCTGCGTCCCACCAACC
-CGATGCCCACAGCGGCTGGACAGGCTGGACCAGGGGAAGTCAGCGTCTTG
-GACGCTGGTGCTAGGCCACCTGCATTAACCCTCAAGTCCACCCCAGTCTG
-CAGCGTGGAAACTCAGCACTGGGCTTTTGTGAAGATTTAATGAGTTGGTT
-CCTGATTAGAATCTGGCcccaaccacaggcctgatgaggctttgcccggc
-aggcctcggggaagctaccctccccgcaccagtcttctgcagccagcgca
-tcacggcgtctgcagggagctgcagtcccgggcccagcggccaccccagc
-accagaaggccagctcccactcacgtctagagtcctaggccaggcaccga
-catccagaggcctccttagcggggTGGGGGTGGCAGCTGagccaccttcc
-tcccctcatgcccttcctgtccctggccccagactgtttttagaggcagt
-gtcttgctgtgttgcccaggctgacctcaaactcgtggcctccagcgatc
-ctcctgcctgacttctccaagtgctgggattgcagacgtgagccgccact
-gtgcccagctctgccaggagcctcttgctgggggctcctcctcttgaggc
-gatccccacatctgcactgcacccggccaaccctcacccgtcccctccgt
-ggggtgaatgggacacggaagccagtgcctccctctgcctctggtctgtg
-gccaccaccgtagtgagtaaaggcttgatggccgcggtcggtccagctgt
-tcctcctcactgactggctggacatctggtggctcagcAGAGTGTGTAAG
-AGCCTCTGTAAGCCCCAGCGCAGGACGCACTCTCCAGGTAGCCTTGGTCC
-CAGGCCTGAGCCAGCCCTCTCACGCCAAGCTCAGGCCAGCTCTCAGGAGG
-CACCGCTGCCTTCCACCCTGGAACAAGAAACCGCAGCCACCATGAGACTC
-CAGCTCCCTGCCCGCAGCCCATCGGCCATCCGGTCCTTTCCTTTCAATTT
-TGTCCAGCATTTCCCCAGCCCAGTCCTCCCAGGCCCTGCTGGTACCCATC
-CCCGCGGTGCCAAGGGGACGCCTGCCCAAAGCCGACTTCAGCCCCTCTCA
-CGGTGGCTCCCAGTGCCCGTTTAGAGAGAGAGTGAGTTCTTCGGAGGAAA
-AGGAGAAGATGTCTGAGGCAGCCTCTGCAGGGCAAGTGTTCTGCAGGGCA
-GGTGTGGGGAAGCTGGGAGTGGTCCCAGCCCTCGTGGGAGGCCTGTGGCA
-GCCCCGGCTCTGGAGTCAGCGCTCCCTCCTGGGAACCGATAGCTGTCTGT
-GAGCTCTGACCCGGCAATTCGGAAGTGGCCATGGGGACTGCATGTTTGGA
-ATAGGGGTCTCCATCCCTCCGTTAACTGGAGACGCAGTGGAGACAGTCAC
-TGAGACCCCAGGGGAAGGGACACCTCACAGGAACCAGAGCAGAGAAAACA
-CAGACTTGTCTGAATCCACTTCTAGCATCTCAGTAATTCTGAAACATCAA
-ACAGAGCTCGGCTATCAGAGGCAACAACTGAGTTGGAGGAGGTCCTGCTT
-CACCCCGAGAGGTTTCCCCGGCCCCGTGAACCATTGTTCTGAGGAAGTTC
-CCCACCTCCTTCCCCGCTTCCCACAGCCACAAGTCGTGAGGGGCTTCCCC
-CTGGGTGGGGGGCTCCTCTCCACCTCCACTCACCCTGTAACATCTGTTTC
-CTCTGCCCGGGGCACAGAACAGGGGCTGCTCAGAAGCTGATTTGTTTTCT
-GTTGAATTTGTTGAAGAATCATGTAAAATGGACCCTTATAAGGGAAAGTA
-AGTTTAAACCTTCAAAAGAAAAGTATACACCAACCTGGTTCAGGGTGAGG
-AGGCCCTGCTTTCTCTCCAGATGTTGGCtgtgttagtcagagttctccag
-aggaacagagccagggggtcgtgcacagagagaggtttatttttaaaaat
-tggctcccacagttaggaagctgagagctcaccatctgcagctggcaagc
-tggacacccgagagagccggacacccgggagagccggacacccgggagag
-ccggacacccgggagagccggacacccgagagagccggacacccggGGGA
-GCCAGCCAGCCAGGGGAACCAGAAGCCTGGGAGAGCCAGTGCTGCAAGCT
-CTAGTCCTGGTCCAAATCTGAAGGCAGGACGAGCCCATGTCCAGGCAGAA
-GGCGCCATGCCTCCGACAGACCCAAGGAGGCCCTGCACGCTGGGGAGGGA
-CCACTGCGTTACTCACCCATGGACTCAAGTGTCCTCCTCACAGCCCAGCC
-ATGGTGACACCTCGATTCCGCATCACATCGGCGAGTGCACGGCCTCCAGG
-TGGCTACGTGCCCTGCGTACTCATCACACTTGGCCCGGCGGAGCCTGGGT
-GGCTTCGTCTGACCTTATCTACTGGGCCAACTTACCCTCTAGATCCCCCA
-AGCCATGGTCTGTAGCGCCCCTTTCTCCCGTCCTGCTCCAGACAGCGAGG
-GCCTCTCCGTGGTTGAGGGCAGGGAGCACAGTCTTTGCCGAGCCCGCACG
-CTGCTCCCGGGATAGCAGGCACAGGCAGACGCAGCCCCAGCCCCGGGAGC
-AGGTGTGGGCTCCagctacacaaaggagatctcagaatcgggaaacatgg
-ccactcttggcacccaacttctttttgaaatattgaaatatttttctttt
-tacaaaaatgtgttcaaatgctataggtttacttttgttatatggaaatg
-aatgaatatggtctaacttctcagttttaatttcaatagggtagatatca
-gtagacataagccacataaacaaaagcttgctggagtcctcaataatttt
-tttttttttttgagacaaggtgtcactctgttgcccagcctggagtgcag
-tggcacaatctcagctccccacagccttaacctccctggattcaagtgat
-cctcccacctcagcctcccgagtcacggggaccatgcctgcctaattttt
-gtgttttttgtagagatggggtctcacttcattgcccagactggtcttga
-gctcctgggctcaattgatcctccctccagcctcggcctcccaaagtgct
-gggattacaggcatgaaccatcacacccagcAAATAAtttttttttttga
-gatggagacttgctctgtcccccaagctggagtgcagtggcacgatctcg
-gctaactctcactgcaacctccgcctcccaggttcaagcgattctcaggc
-ctccgcctcctgagtagctgagatgacaggcgtgcaccaccacgcctggc
-taatttttcatacttttaggagagacgcctgtgatcccagcactttggga
-ggccaagcggggaggatcacttgagcccaggagctcaagaccagcctggg
-caacatggctagaccccatctccacaaaaaatttttaaaattagccaggc
-atggtggtgcatgcctgtggtcctacctactcaggaggctgaggtgggag
-gatcacttgagcccaggagtttgaggttgcagtgagccatgatcacacaa
-ctgcactccagcctgggcaatagagcaagactccatcttaaataaataaa
-taaataaataaataaataaaatgtaccatcttaaccacttttaagcgtgt
-acttctgtggcgttaagtacacccacatccctctgcaaccatcgccatat
-tcatctcaagcacctgtcatctgcccagactgagactctgtccccattaa
-acactaacttacaatttccctttcaccacccccttccccgcaaattctac
-tttctgtctgtgtatttgatgactctaggctcctcacatgagcagaatta
-tgcagtatttccctttcgtgtccagtttgtttcacttagtaaatttttaa
-ggttcatctatgttgtaacatgtatcagaattttcttccttttttttttt
-tttgagatgagggctcactctatcaccaaggctggggtgcagtggcacag
-taatgcctcactacaacctctgcccctcctctgggttcaagcaattctcg
-tacctcagcctcccaagtagctgggactacaggtgtggaccaccgcgccc
-agctaattttttgtgttgttggtagagacaggattttgccacattgccca
-agccgatttTcttcctttttgaggctggataatatcccaccggacgcgca
-gaccacattttgtttacccattcatgcactgatggacacttgcgttgctt
-ccaccttttagctcttgtgaataacgctgctgtgaacataaatgtataaa
-tgtctgttcaagtattgctctcagttattttgagtgtatattcggaaatg
-gaatttctggattacatggtcattcagttttttggggaagccagcacacg
-gtttttccatagctgctgcatcattttacatccccaccaagagtgcacag
-agttccaatttccctctgtgctcgtcaacacttgttattttctcttgctt
-ccgtaagagccatcctaatgggcatgaggtggggtctcactgtggttttt
-acttgcatttccctagtaattagtgatgtggagcatctcctcatgtggat
-cttggatacttgtgtatcttgtttggagaaatgcctactcaacttctcca
-cccacgttttttattgtgttgtttggtttttgttgttgttgagttgcagg
-agttcttcacacattcaagatattaatcccttatcaggtagattatttgc
-aaatattttctcccattccacatgttgccttttcacctttttgatagtgt
-ccttcaaagcacaaatgtttttaatttggggccgggcacggtggctcaca
-cttgtaatcccagcactttgggaggctgaggcgagcggatcacctgaggt
-caggagtttgagaccagcctgaccaaaatggtgaaaccctgtgtctccta
-aaaataccaaaactagccgggcgtggtggtggatgcctatagtcccagct
-acttgggaggctgaggcaggagaatagcttgaacccaggaggcggaggtt
-gcagtgagctgagattgtgccattgcactccagcctgggtgacagagcaa
-gactctgccagaaaaaaaaaaaaaagaaagaaagagagagagagaaagaa
-agaaagtttttaattttgttaaggtctgatttacctatcttttcttttgt
-tgcctgtgcatttgtgtcatattcaagaaatcattgccaaaatcagtatc
-acaatgcttttcccttatcttttcttctgagagttttagcttttacaagt
-agatctttgataaattttgagttaattttcaagtctggtgctacataaaa
-gttctattttattcttttacatggggatatctagttttctcagcagcgtt
-tgttgaatggactgttctttccctattgaatggtcttggcacccttgtca
-aaaatgatttgactgtatatatgagggcttatttctgggctgtattctat
-tcccttggtctatatgtcctgtgtttatgctggtaccatactgttttgat
-gactgtagctttgtagtaaattttgaaattagaaagtgtgagttcttcaa
-ctttgggtttttttttttttcttttccagactgttttggctagtgaggat
-cccttgagattccacatgaattttagagtgggtttttctatttctggaaa
-aaaaaaataagtctgcatttgggaggccgaggcgggcagatcacaaggtc
-aagagatcaagaccatcctggctaacacagtgaaaccccgtctctactaa
-aaaaatacaaaaaattagccgggcatggtggtgggcagctgtagtcccag
-ctactcaggaggctgaggcaggagaatggcatgaacctgggaggcagagc
-ttgcagtgagccgaaattgcgccactgcactccagcctgggcaacagagc
-tagactctgtctcaaaaaaaaaaaaaagtctttggaattttgataggaat
-tgcattgaatctacaacttgctttggacaagatggatgtcttaactataa
-taagtcttctaattcgtaaacactgggtgtctttccatttatttatgtct
-ttttattttttcagcaatgttttgtgcttttcagcatacaagtctttcaa
-ttccttggttaattcataagtattttattccttgtggtgctattatgaat
-ggaatttttaaatttcttttttggatagctcatcattagtatatgcaaat
-gcaattgacttttgtgcgtggattttgtatcctgcaactttgctgaattc
-acctattagttctgttagttctaacaggttttgggtggaatctttaggat
-tttctgcatattccatcatgttgtctgtgaacagagataatttcacatct
-tcttgtccatgttggatgccttttgtctatttcctctgactgctgtggtt
-ggaacttccagtgctgtgttgaacagcagtgaagagtgtgggtacgtttg
-ccttgttcctggtctcagaggagaggctttgtgcctctcaccattgagta
-caacgctcactgtgggttcttcctacatggccattgttatgttgaggtcg
-tttcgttctagcctggttttttccatgtttttatcatgaaagggtgttga
-gtttgttcaaaggctctttctgcattgattaaggtcacgtggtttctttc
-cttcatttggttaacatggtgtacaacatcgatcggttttcatatgttga
-accgttcttgcattaaggaacaaattccacctggtcctggagtagaatcc
-ttttaatatgctgctgaattgggtttctgctagtattttgttgaACTTTC
-CATTCTATTACAAAATAAAACGTTTTTATGTTTCATTGATTCATTCTCCT
-ATTCGGGAAAATATCGAACATGCACATGGAATCCCTTTCATATGTGTCTT
-CGGTATCCCTGTGACCAAGAGCAAGAGAGAGTCACGAGAGGCAGAGATCC
-TCGGAGACCCAGGGCTTTGAGCTGGATGCAGGGCTGGCCAGGCCCCTGGG
-GTGTCTTGTGGTGGTGAAGACGGGGTCCTGTGGGTTCCACGTGTGGGAAA
-AGTGGTGAGGCCACCATTTGATCATCTGATGATCAGAAGAGTGTGGgtgg
-caggagctggcagctgtcaccaaagtcacttcctgttgtgcttaggcaca
-caaccaaactatgttttccagcctcccttgatattgaagattatcacagg
-actgagttctggcaaaggagtatgggcatcaggtgcaccagcctggtctc
-caggacaccctgggaagctcttcccgggctctttttccctctgtctggaa
-ccaaagtgaccccagggccatatctggaaccatgtatggaaggtggagga
-accctaggagaaggaatccagttcctgaccgttaggaacagagccagcca
-tgagcagcattggactcgagagtaaaatacacttgactgtgtgcagcagc
-agagatttttagggtttttctattataCTCACTGAGGTATTCACCCATGT
-AGCCACACCACCATCTCTGGGTGTTGAGCTGCACTGGCCTTTCCCTCTGG
-AACACTCTGACCTCCCCATCTCCTTCTTTCTAGAACACTCTGACCTCCCG
-GTCCCCTTCTTTCTGGAACACTCTGACCTCTCAGTTCCCTTCCTTCTGAA
-ACACTCTGGCCTCCCTGGTCCCCTTCTTTCTGGAACATTCTGACATCCCT
-GTCCCCTCTCGCCTGGCTCTGCTGCCTGCCGGGCTGTGTCCCACGGCCAG
-GGCTCCAGGGGAGAAGGGGAACCTCAGCCTCTCGGGTAGAGAAAAGTCGG
-GGAACTGACTCACAGCCTCACGCCTCTGGGGCCCCAGTCACTCTCCCACC
-TCCACCCTACTGTACCCGCCCCACCCCCTCGGTCGCACACCTGCCCCACG
-GGAACACAGTGGAGCCTCTAGAAAAAGTCCAGGTGCTGCTTCCACACAGG
-CACCAAACCTGAAGAGCAGCACAAAGGAAGGTGCCTGAAAGGCGCTTGCA
-ACACTCACCCAGAGATAATGCTGCGGTTTCCACAACTGCTCTGTTTTAAT
-ATCGACTCCCACGAGTTGAGGGGACGTTATTTTCCTTATTTACAGATAAG
-GAAGGTGAATCTAGGCAGCCCCTCCCACTCACCCTCCTGCAGCAACGCCC
-CTGACACCCCTCTACCCACCCTGCTCCGGATGCCTGAGCTGCCTCCCCTA
-CGTGATGGCCTCAGAGGTCTCAGCTGAGGACCTATGGGGGCACCTGTGAG
-GTCCAGTCATCTGAAGCCATGTCCACACTTGAAGACTCAGGCTCGCTGAG
-AAAGCTCGGCCTCGGCTGGGCTGCTGGGGCTGCAGGGGAGGCCGGGATGA
-CCCAGAGGGAGGAACCAGCACCAGGCTTCAGGGAGGGGGTGGTCGGGGAT
-ATTAGAGAGGAGAGTCCGCAGCAGGTCCCAGCTCCGCCGTGTGGCCAGGG
-ACACCACTGAGGCCTGGTGGCCCGTCCCTGCCCCCCACCCTCCCGGGCTT
-ATTCTCCCTCAGGGCACCCAAGAGGAGAAGCCTTCCCCTGCCCTTATACT
-CTCACTGCAAAGGCCGGGTAGGGCTGAGACATTTCGGAAGAAGGCCCACT
-GCCCGCAGAGAGGGTCGGCCTCCTCGGGGTTCTGGGGAGGGGACAGTGGC
-AGGAGGCGCCTGGTGAGATCTGGTGAGCGCCAGTTCCAGAATGGGGGAAT
-GTGGGGCGCTGTCCGAGGTCCTGAACGTCTCTGGAGGGCCTGACTACGTC
-AGGCTCAGGACTCAGAGGACCTGTGCAGCAGCGAGAACAGAGGGGTCCAA
-GGAGGCAGAGACGGGGGAGATGGGGCTCACAGCAGCACTTGTCATGCAGA
-CTCGGGGCTCCTGGGCATCTCTGATACTCAGGGGCCATGGGGTCAAGACG
-GATTCAGGGATCCGGCCAGGTCCAGGGACTGAGTGGCCTCAGGGTTACCT
-CCATGCACTGCACCTGTGGGTCCCCACAAGGCCTGAGTCAGTCCAACCTG
-GAGCTCCGGCCAGGGGCAGTGCAGGACTGGGCAGAGCCTCACCAGAGAGA
-CCAGTGGTGGTGGACACGGAGGGGATGCCAGCCTCGGAAGGAGAAAGGGT
-TTATCTCCTAGAGGAGAGCTGTCCAGCCGGGGCGTGACAGCAGCCTGGGG
-TCCAGAACAGAGGGAAGGGGCACCGTGCTGTGCGACCCGGCTGTGCTTCA
-GCCTCCTGGGAGACTCAGCCCCCTGGGAGGCTGCCCACAAACGGGCCAGG
-CATCCACCTGGAGGAATGAGCTCCCCGTCAGCTCCGTGGCTCCCCAAACT
-GGCACATATACCCAAGTCAGACAACACAGAAGCATGGTCTCCATGTGGAG
-TGGAACGCAGACCCCCTGCCCAGGCCCTGCTGGCTGACCTTGGGCCCCTT
-CCAAGCCACTAAGCCCTCATCACAAAAGTCAGACGTGCTGATCTCTGAAG
-CCAGGCCTGATGCCGGGGGCCTGGTTTTCTGCTCTTGACGGGAATAGCTC
-ACAGCTGTGTGTCTATATTGGAAGCCGCTTCTACCAAGCCCAGTTATTTA
-TATATCTTCTTCCCAAATGGAAATATAAGGAAATGTGTTAGCAATTTTGA
-CTTTATTTCATAAAACACAGGATGAGGCCAAATGGAAGTCTGTTTCTGAA
-TAAGATTACAGATTACAGATCTGAAAAACAAAGTTGTCTTTCAGCTGCAA
-ATATCATTTAGAGAAAATGTCTTGTTTTGTAAAAAGAAGCTGTGTGTTGA
-CAGATTTCTTCCCCTCAAATTCTAGAGGAATTTCAAAGCTCTCAGAGGTT
-CTAAGCTCTCAAAGTTCTACCTGTGGGGGAGGTGGTGCTTGCATCCTGGA
-CACCCCCTGCCCCCTGCAGGCCCAGTGCAGTGGGGTCGCCAGATGCAGCT
-CTGTGCCCACAGGCTTGCTGGCAGGGGCAGGGCTGGCTGCCATGGGGGGG
-ATGCCACCTCCACCCTGACCAGCACCTCAGGTACACCAGCCCAGCAGCAG
-GATGCAGAGGTTCCAGGATCCCCATAGCAGGACAAATATCCTCATCCTTC
-CCTGGGCATCTGGAAACCCAGCTATGCCATCGAAGCCTTCCGGGAAGGCG
-CACCTTGcccactcgcagcttgccccccatccccagcttgtcccccaccc
-caggcttgtcccccacccccagcttgtcccccaccccgggcttatcccca
-acccccagcttgtccccaacccctggcttgtcccccaccccACCTTTCCT
-TTAACTCTTGCTCGGCCTCATGTAGAGGTTGAAGGGAACACCCCCAGGCA
-GGTGACAGCTCCCCACCTTCGGGTGACCCACCCGCTGCCTCCCACAGCCC
-TCTCACTTGCCCCCGCAAGCAATGCCCCTGAGCCCCCACTTCCTGCCCTG
-CTTGGCAATGCCTGAGCTGCCTCCCCTATGTGATGGCCTCAGAGGCCTCA
-CAGGGAAGCCTGAGACCCCCCGTGCCATGCCCACCCTGCCCACAGGACCC
-TTGAAGACCCCAGGTGGCCACGGGCTCCCTCCTTTCTGTCCCCTAGTTCC
-TCACTTCCTGGTGGTCTCTCCTCGCCTGTCACCTCCCCGAAGCCTTCCTT
-GGCTGTCCAGGCACCTCTCAGCACACATCTTCCTCTTCCCACCCTGGGTG
-TCACATCTGCACGCATCAGTCAGCGCACTTGTGCTGGTCTCTCCTTCCCG
-CTGCTGGTCAACCTCGCCGGGCACCTACCATAGGCCCTGCATCCATGATA
-GGGACCGGCAGAGCCCTGGGGAGGACACCGAACTTAGGAGGGCTTCCTGG
-AGGTCAGTGAGAGTGGAGCTGGGAGTATGAGGAGGACCATCACCCCTGGA
-CTGGGTTCCTGCATATATGAGAGAGGAGACTGCCATTCCTGCATATACAG
-AGAGTGTATCATTCCCGCATATACAGAGAGGAGAGGGTTCCATTCCCGCA
-TATACAGAGAGGAGAGGGTTCCATTCCCACATACACAAAGAGGAGAGGGT
-TCCATTCCCACATATACAGAGAGGAGAGGGTTCCATTCCCGCATATACAG
-AGAGGAGAGGGTTCCATTCCCGCATACACAAAGAGGAGAGTATACCCTTC
-GTGCACATGCGTAACCTCATTGCATGCTGATGAGAAGCCTCGGGCATGCG
-TGTGCATGGGCAGTGGGCGACACACAGCTCTTCCCAGTGATGCCCCTTCT
-GTCTTTAAAATTATGATTAGTAATGAGCGCAGAATTTTTCTTGAAGAAAC
-AAGAGTAAGAAGTCATTTAACGATTTCCAAACTAATTACGAATATGGCCA
-TACTTGAAAAGCCACTCCCTAAAAGTGATGACTTGGCTCAAGCTGCAGTG
-AGAACCCGCACGGGAGGCATCCGCCGTGAGAACCCACATGGGAGGCACCT
-GCTGTGAGAACCTGTGCGGGAAGCACCCGCAGCCATGCCACTTTTCACCC
-CGGCCCGAGGCAGAGACCCCTTCACATCCCCACCTTGCCTGCCCCTGCCT
-CCTCAGTGGGGTGATTGAATAAAGGACATTGGTTCTGGTTATCATCTTTG
-AGCTGCCAGGttttttaatggctgcatggagatatcattcgcataccctc
-aaactcacacgctttaagtgcccaactcaatgccttttagtatattcaca
-ggctgtgcgtctatcaccacaattttagaatattttatcacctcaaaaag
-aaagaaatcctgcttccagcagccatcactccgagtctcccgtttccccg
-gcccttgtccatcatgaggccactctctgtctctgtagatgtgtctgttc
-aggacatttcacatcaattcaatcatacaccatgtggtccatggagatca
-gctttgtttactcagcatgatgctttcgagactcTGTGggggcgatctgg
-ctgtggcatctgtcaccccattgattaccaggtttgattccactgatgtg
-gccagctcagcggcgttcccttcccgcctgaccactccatgtgcctccct
-cccaaaactgtgtgctcagccaaagaaaatgaccttcccaaatagaaaag
-gaccattcttcagtccggggtgtccgagcagccatgcttccctgctagaa
-cctccaaagaagctctcgaggtccatccatggtgcaacaggaatcagacc
-tttgttgccatttaggatttaatatgattccattgtatggattacatcac
-attttgtgtaactacttatcccttggcagaaatttgggttgtttccactt
-tttggctatcactaatcatgctgctatgaacacagatgtacagctttgtc
-catggacacgtttgcctttctcctgggtaaatgcctagtagaattcctgg
-gtcatctggtaactctatatttgacattggagggaaaatgagactgtttt
-ccacagtgctacaccatttgcccctcctgccagtgatggatgaggaatct
-ggttctccacatcctcccaacacctgtcattgtgccctttagactacaga
-catcccagtggatgttaagcgttgtctctttgtggctttgatttgcctgt
-tcctgacagctgctgaagttgagcatatgtccatgtccctagtggtccat
-tggtgtggtttggctctgtgtccccacccaaatctcatcttgtagctccc
-ataattcctacgtgttgtggaagggaccaagtgggagatgactgaattat
-gagggtgagtctttcctgtgctgtccttgtggtagtgtataagtctcacg
-agatctgatggtttgataaagggaaacccgttaggcttagcactcatttt
-ctcttgccgccgccatgtaagaagtgcctttcacctcccaccatgattct
-gaggcctccccagccatgtggaactgtaagtccaattaaacctctttttc
-ttcccagtcttgggtatgtctttatcaacagcatgaaaacagaataatac
-agtaaattggtaccagtggagtggggcactgctgaagagttacccaaaaa
-catggaagtgacttaggaactgggtaacaggcaggggttggaacagtttg
-gagggctcagaagaagacaggaaaatgtgggaaagtttggaactccctaa
-agacttgttgaatggctttgacaaaaatgctgatagtgatatggacaatg
-aaatccaggctgaggtggtctcagatgcagatgaggaacttgttgagaac
-tggggcaaaagtgactcttattatgttttagcaaagagactggcaacatt
-ttgcccctgccctagagatgtgtggtactttaaacttgagagagatgatt
-tagggtatctggcagaagaaatttctaagcagcaaaacattgaagtggtg
-acttcggtgctgttaaaggcattcagttttaaaagggaaacagagcataa
-aagtttggaaaatttgcatcctgatggtgcgataaaaaagaaaatcccat
-tttctgaggagaaattcaaaccagctgcaaaaatttgcgtaacaaggagc
-gaatgttaatccccaagacaatgaagaaaatgtctccagagcatgtcaga
-ggtcttcatggtagcccctcccttcacaggcctggaggtttaggaggaaa
-aagtggtttcgcgggctgggcccaggatccccgcactgtgtgcagcctag
-ggacttagtgccctgcatcccagccactctgaaaggggtcacagtagagc
-tcgggctgtggcttcagagggtggaagccccaagccttggcagcttccac
-gtggcatggagcatgagggtgcacagaagtcaagaattgagggttgggaa
-cctcctcctagatttcagaagatgtatgggaacTATTACTGCTGTAATAG
-TACCTTCTATaattcttatatgttctagatataaatgatcaaatatttga
-tttgcaaatattttctcccattcagtgggttgtcttttcatttgctataa
-tagagacatagtgtcctttgatgcacaaacgtttttaattttgatgaagt
-tcaacatatctgttttctcttttgttgcttgtgattttggtatcatattt
-aagacaccattacctatccaaagatttacatgtgtgtttccttctaagag
-tcttatagttttagctcttgcagttagatctttgagctgctttgacttaa
-ttttttgtatgtgtgaagtgggaactcaaatttattattttgcatatgga
-tatacagctgtcccaacagggttagttgaaaaactattcttttcccccaa
-taaatggtcttaatgtctttgccaaaaaccaactaagggtttaatttctg
-ggctctctattccactgatgtgtgtgtccagccttgtatcattaccacac
-tgtctccgttactggtgttttgtattcagttttgaaataaggaagtgtga
-gtcccccagctttgttctttgtaaagttttgagttttgatgttatattca
-gggtctttttagattccatactaattttaggatggatttttttctgtttc
-tgcaaacaggtcaacttgcgtttggatagggattgcactgattctgaaga
-tcaatttggagagtattgccatctattcagtatcagtcttatggtccatg
-aacttgaaatgtctttccatttatttaggtctaatttaattgctttcaac
-aatgttttgatgttttcagagtttaagttctccactctcttgttaaacat
-attcctaaatgatgttccatcttttatttctgattttagtaagctcagtc
-ttctctctttttttcttagtctagctaaaggttggtcagttttgctgatc
-ttttggaagaatcagcttttattttactgattttctctattttctaatct
-atatttcactaactttttttctattctttattatttcctcctttctgcct
-gcttgaggtttagtttgctcttcttttttcactatctcaagttgggaggt
-taggttgtggatttgaaatctttcttctttttaaatgtaagggttctcag
-atgtaaacttcctctctgcactgctttagctgcattccatacgttttggt
-atgttgtatctccaatttcatttatctcaaagtattttcttattttccct
-gtgattttgtcattaatctgttttgttatttaggaatgtgtgttacttaa
-tgtagacgtatttgtgaatttcccaagtttctttctatttttttttctaa
-tttcactccattatactcagtgattgtgttttgaatggtttcaatccttt
-gaaagttactgaggctgatggattcacagccacattctaccagaggtaca
-aagaggagctggtcccattccttctgaaactattccaaacaatagaaaaa
-gagagactcctccctaactcattttatgaggccagcatcatcctgatacc
-aaaacctggcagagacacaacaaaaaaagaaaatttcaggccaatatccc
-tgatgaacgtgatgcaaaaatcctcaataaaatactggcaaaccgagttc
-agcagcacatcaaaaagcttatccaccacgatcaagccagcttcatccct
-gggatgcaaggctagttcaacatatgcaaatcaataaacataatccacca
-cataaacagaaacaatgacaaaaaccacatgattatctcaatagatccag
-aaaaatgcttttgataaaattcaacatcccttcatgctgaaaactctcaa
-taaactaggtattgatggaacatatctcaaaataataagagctatttatg
-acaaacccatagccaatatcatactgaatgggcaaaagctggaagcattc
-cctttgaaaaccgacacaagacaaggatgccctctcctactcaacacagt
-attcgaagttctggccagggcaatcaggcaagagaaagaaataaaggtgt
-ttgaataggaagagaggaagtcaaattgtctctgttttcagatgacatga
-ttctatatttagaaaactccatcgtctcagcccaaaatctttttaagctg
-ataagtaacttcagcaaagtctcaggatagaaaatcaatgtgcaaaaatc
-ccaggcattcctatatgccaataatagacaagcagagagccaaatcatga
-gtgtactcccattcacaattgccacaaagagaacaaaatacttaggaata
-caacttacaaggggcatgaaggacctcttcaaggaaaactacaaacaacc
-tctcaaggaaataagagaggacacaaacaaatggaaaaaaaattccatgc
-tcatgaataggaagaatcaatatcatgaaaatggccatactgcccaaagt
-aatttatagattcaatgctattctcatcaagctaccattgactttctttg
-cataattggaaaaaactactttaaatctcatatggaaccaaaaaagagcc
-tgtatagccaagccaatcctaaacaaaaacaacaaagctggtggcatcac
-actacctgacttcaaactatactacaaggctacagtaaccaaaacagcat
-ggtacaggtaccaaaacagatatatagatcaatggaacagaatggagacc
-tcagaaataataccacacatctacaaccatctgatctttaacaaacctga
-caaaagcaatggggaaagattccctatttaacaaatggtgctgggagaac
-tggctagccatatgcagaaaacagaaactagaccccttctttacgcttta
-tataaaaattaactcaagatggattaaaaacttaaatgtaaaacctaaaa
-ccataaaaaccctaggagaaaacctaggcaatactgttcaggacataggc
-atgggcaaagacttcctgactaaaacaccaaaagcaattgcaacaaaagc
-caaaattgacaaatgggatctaattaaactaaagagtttctgtaagcaaa
-agaaactatcatcagagtgaccaggcaacctacagagtgggagaaaattt
-ttgcaatctatccatctgacaaacgtctaatatccagaatctacaaggag
-cttaaacaaatttgcaagaagaaatcaaacaaccatatcaaaaagtgggc
-aaaggatatcaacagacacttctcaaaagaaaacatttatgcggccaata
-aacatatgaaaaaaagctaatcatcactggtcattagagaaatgcaaatc
-aaaaccacaatgagataccatctcacaccagttagaatggcaattaataa
-aaagtcaggaaacaacagatgctggcaaggctgtggagaaatagggacac
-ttttacactgttggtgggagtataaattagttcaacaattgtgaaagatg
-tggaagacagtgtggcaattcttcaaggatctagaaccagaaataccatt
-tgagccagcaatcccattactgggtatatacccaaaggattataaatcat
-actactataaagacacatgcacatgtatgtttattgcagcactatttaca
-atggcaaagacttggaagcaacccaaatgcccatcagtgatagactgaat
-aaagaaaatgtagcacatgtataccatggaatactatgcagccataaaaa
-aagaacgagttcatgtccttttcagagacacagatgcggatggaagccac
-cattctcagcaaactaacacaggaacagaaaaccaaacgccgcatgttct
-cactcataagtgggagttgaacaatgagaacacatgaaccatagggaggg
-ggacatcatacaccagtgcctgttggagggtggggggcaaggggagggag
-agcattaggacaaatacctaatgcatgccgggcttaaaacctagatgatg
-ggttgataggtgcagcaaaccaccatggcacatgtatacctatgtaacaa
-acctgcacattctgcacatgtatctcagaacttaaagtaaaataaaaaat
-ttaaaaaaGaaagttactgaggctgatttaatggtctagtatgtgatcta
-tcatgaagaacatcccacgtgtgcttgaaaagaatgagtgttcggctgtt
-gtgtggagtggtctgcagataccacttagatctacttggttgcaatgtgt
-TGGCCTCAGAATTGCAGAATGGCAGCATGGCCGCCGAGCGGCGGCCGATCAGCCCCGAAAGATGGTGTTTTTAATCGAGGTTTTCTTCACCGGCCA
-ttgagtttttcatttcctgttgctattctgcctgattgttctatccatta
-ttgaaaatgaagcattgatgtctccaactatttttgttgaaatgtctatg
-tctccattcaattctgtcagtttttgttttacatatcttggggctctgtt
-gttaggtgcctatgtttacaattgttattttacctgaagaattggctttt
-atcattataaaatattcctctttatccctagtaacactttttgttttaaa
-tttctgtaagtactccagctctcttatggttgctgtttgcatggtatgta
-tttttcatccttttactttcagcatttttgtatctctgaatctaaaatct
-gtctcctttagacagtatataattggatattggttctttatccaatctat
-ctctgcctttttattggattgtttaatccattcacatttaatgtaattat
-gaatatagttgaatttgtctgcattttaccttttgttccctatatgtctc
-gtggtctcatgtctttttattgttgttgttgttaatctattcctccttta
-ctgatttcttgtttaattaagtgaatattttctagtgtaattttttttat
-tcctttcatggctttttcaccatattttaagttattttcttagtggttgc
-tctacagcttaccacatatgcttaacatatcagaatctacttcagattta
-tatgaactccaattatatgttggcatgttatccttatattatttgttata
-ttttccttgtttatattatcctttcttatttaccacttattattctcttc
-atttgtcttttctttaacttttttttttttttttggtatagatgaggcct
-cactgtgttgaccaggctggtcttggaactcagcctcccaaagtgccgag
-atttcaggcatgaaccaccctggccaccttcatttgtttctgtgggtctg
-agttaccatctgttgtgacttctttacttcaatacaatgttgttccccat
-acctcctttgtgctattgtcaaatatattcaatttttgtttgttacaggt
-ccaggaatacaaccatatacatattgttttacacaattgattttcaaatc
-actcaaagaagaaatgtgcatttatactgtcttttgtaattcattattac
-atttctagggctctttttttttggtgtggattcacatttccatctgggat
-cactttcaaggcagatctgccaaccatgaattattttggcttttgtttat
-ctgagaacttatttggccttcatgttgaaagatcgttttcaggctatgac
-aatcttgatttacaggtttgtttgggtttttttttcagtcctttaaatat
-gtcatcctactgcctcctggccttcattgtttctgatgaaaagtcaccgg
-ttaatcttgttggagtgaccatgaccatgaccatgaggagtcattttttt
-ctcttgctactttcaggatgttttttggttgttttttgttttgttttgtg
-ttttgctttcggctttcactatttactatgatgagtctgcatggggattt
-ctttgcatttattctactttgaggtcacagggtttctcagatgtatagat
-gaatgtgttcagcaaatctgggaaatttccaggcattatttgttcacata
-tttgttctgtcttttctccttttcttctcaagtaaacctgtgatgaggat
-gttggtgactgaaagttgtcccacattgctctgaggttctattcattttt
-cttccattttctgtttttcagattgcatatctctatgaatctatattcac
-attcactgattccttcttctgccagttctaaaccaccattgaccccctct
-aaaaaaatctttttcaattatttttcaactccaacattttcacttgattc
-tttcatagtttctttttattcatagtctgtatttgagtctctattgatag
-tttctattcatactctcactgtcttcatgtcttcctttacttctttCTTG
-TAGaaagtaaaagttcctcttcaaagtttcccttcttgttaaagaataaa
-tcatgagtgttagaaataatagtttcttttaaagactaactttatgctag
-acatgctcatggacatgtagtacattctgtgtccttgtactttaaccaag
-atatctgtgctggacgtgctcacaggcatgtcccagctcgcagcctatac
-cccttccttatttgggaatgttattacttttctaattctttcataagcag
-cttcctcttttcctttatccttccattacttttacctatttagaaaagtt
-ttatactgttagccaatcgggttttagtttaaattgtgctgtctggctct
-agccaatggagacaggacacagtaacagggacaaactgcataagggataa
-aaattgcttccctcctttgttcaggtgtgctctcaccattattccatctg
-cgaggagcaccctttctgcaggaagtaaagattgccttgctgagagaatt
-aaatttatgttcaagtgctatttctttgcagcaccggggagcaagcattt
-acatataacaATTCTgcatggttttctttatttctttgactgtattaatg
-atggatacttggaggtccctgtctgttaagtctggcatctgatccctccc
-atgggcagcttctgttactgctcttttccctgtgtatccgtcatgcattc
-ctatttattttaatgtctcttaggttttgttaagaactggacattttaaa
-taatattttatagtaactctggatactgattcccgaccccccacccccta
-gggcttgtttttgttgttgtttgagtatttatttctgacttggctaggtt
-actttagtaacatttatttcccccgtagaatggcatttcccctttcagtg
-gcattctctagtgggctcagccttgggtgtatacacaaccaccctagatg
-acagcagttttgttttcactggggctattcctgtctctttccctgatctc
-tctgttaagctctctgcctcatttgccattaccctcagcctgttaagctc
-cactaattacctgctggtcgctctattgtttttcactaagccctggggca
-ttaattgctcagcatactaattcaattaaatccaggcagaaatagttttg
-agttccagtcttaggttgattctgacccaggagggcacttcttagctatc
-tctttacttagttcttccagcaaactagctggcccgtggtaacagctcat
-tgctgttaATTAGGAACTATTGTTTTCTTttctttttaactttaatttta
-ggttcagaggtacatgtgcaagtttgttatacaggtaaactcctgtcatg
-ggggtttgttgtgcagattatttcattactcagatactaagcctagtacc
-caatagttattttttcttatcctctccctcctcccaccctcAATTTTAAC
-AGCACCTGATATATGGAAGGAACTCAACGGTTTCCTGAATTTTTGACTTA
-GCTTTCTTACAATAACGTATGATTTACACTTGTCTCATGCAGGCTAAAGG
-CAGAGGGAGCAGGCAGGGCTGCTTGGGGGTCTAAACCCACAAAGCCTGCC
-CCTGGGAAAGGGACTGGGTGCTGTGAGGCTTAGAGGCTCCAGCTCAGCCT
-GAAAGGTGCAGGTCAGGCCTCTGCTGGGAGGCAGGCAGCCCTTCAGGGGT
-GATTTTCATGGAGTGTGAAACTGGACCAGAGACCCCTACACACACCCGAG
-GCCCCTGGGCTCAGAGGTTAGAGGTCAGATGCTGCCCTTGTCTTCCTGTT
-TCCCCAGGAGGAGGCTGCCTACAGGACCCAGGACGATGGCACCCGGGTGC
-CCAGTGCACGCCTGGGGTCCCCACCACCAGTACCACCCCACCTACCATAG
-GCCCAGGACCTTGGGCTCAGCCCCAGCCCCAGAGGAAGGAGGAAACTGAC
-AGGTCCAGGACCTTGGGCTCAGCCTCAGCCCCAGAGGAAGGAAGAGACCA
-AGGACAGCAGCACCTGGGTGCCCAGTGCACGCCTGGGGTCCCCACAACCA
-GTGCCATCCCCACCCCCTGCAGGCCGAGGACCGTGGGCTcagccccagcc
-ccggccccagccccagccccagccccagccccagccccagAGGAAGGAGG
-CTGCAGGGCCCTCCACCTTCTGTACTCAGGGCCTGTCTGGAGTTTTCCTA
-ATTAGCTCTCACTGTCTCCAGGTGATGTGAGCCAACTGCGTGTGTGTGAC
-GCTATTCACAGCACACAGGGCAGAGCTGGTGCTCCCAACCACAGGTGTTC
-AGGGCACAGAGGCTGCCTTACTTGGCCTGGTTACACATGCAGCTTCTCTA
-TTGATTGTCCGTCAAGCGAGCCTGCTCCAGACCCAGCTTCTGGGAGTCCT
-GAAGGACCCACAATCCCTAGGGTTATCCTGCCCGGCAACCCTAGGTAGTC
-CCACATCCTCCACCCACCAGCACAGGGGACGTTCATGAGCCCCACCCAGG
-CACAGAGCTGTGGGGAGGGGGCGTCTCGTGGAAGGTGAGCCTGGAGGCAG
-GGCCGTGCCCCTGGAGCCATACAGGGGCTCAAAAGGACCTCCTTTCCCCT
-CCTGGGGACACCAACTGGACTGCGTCCAGCCTGGGCCCTGGGTTCTCAGA
-GCTTTTCCCGGGAGAAAGACACCCCAGCCTCCCCTGACAAGCTTGTTCCC
-AGGACAGCAGCCGGGTTGGACGCCCAGTAAGGGGGCCTTGCCTCCTGCCC
-TCTCCATCAAGACAATCATACAGGGAAGAAAGGCTTCAGTGCCAGGGGAA
-AGTAGGGGGCCTAGGACAGAAGCAGCCCCCGGGGGAGGCAGGGGTCAGCC
-TCCAGGAGCTCCCGGTGGGGAAGAGCCTGGCAGAAATGTGAGCAGTGCTC
-TGGAATGAGTCAACCAGCGACAGCAGGCAAGTGGGGGCACCCTCCAATTG
-TCCTGAGAAGGGCCAGTTTCTGAGCCAAGGCTGCAGCAGCCTAAAGTCCC
-TGCGGCTGCAGCCTCCATCCCACCAGTCACAGCGACCAAGCCTTGTGGGG
-AAGACCTCGCCCTGCTCCCCTCTGGCCAACCGGGGTCTGCACTCTGAGCC
-TCTCCAGAGTGTCCGGCAGGGCCTGCAGGGCAGGAGGCAGCGCCCACTCC
-GTGGGGAGCACAGGTGCCCTTCACCCCTACCCCACCCACAGGGCTCCAGG
-CAGGACAGGCAGGGCAGGGGTCCGCAGCCCCCCACATGGCCATCCCGGGG
-CTCCACGGCATCACATGGAATGTCTCTGAGCAGCTCTGCCCGAGCCTTCC
-CCTCCAGAGCAGGCCCCGACCCCCAGCCCCAGGCTCACCCCAAGGCCCCC
-GTCCTCAGCCAGGGCCCCCATGCACTGCCCCAGGTGTCCCAGCCCTGATG
-GCTACTCCCCGGGGGTCCCACCGCAGTCCCTGTTTCACCCCTGACCCCTC
-TGCTGGGACATCCAGCCAGGGACCACTGGGCCCTGTGCCCTCCCATGGGG
-TTCAACGTCCCCACCCCATGGCGGCCTTCTGGGGACTCCCGTTGGGATCG
-TGGGGGCAGCACCAGTATGGGGCAGGGGACAGAGCCGATTCCCTGCGCAG
-GTGTGGTTTGGTCCGCGAGGGCTACGGGGTCCTGGGGGAACGGTGGGCGG
-CAACCAGGAGAGCCCGGCAGGGACCCCCCCCATGCCAGGCCCAGTGCGGC
-CAGGAGGACCCAAGAGGGGtgaatgaatgaatgaacgaatgaatgaatga
-gggaaggaaggggaggggaggggaggCCAGGCCCTGAGGGCAGGGCAGGT
-CCCACCCCTGTCTCAGGCCCCCCATGAGGCAGATGGGCCCACCCTGCAGG
-AGCCCCTCATTCACTGCCCTGGGAGATTCCCAGCCATGTCCTGCCCTGCG
-GGGCCTCGGGGTCCAGGGAAGAAGTGGCCCCCTCCGGCCCCTCACAGAGG
-CGCCCGCTGCACCTGAGGGTCCTCGACCCCACCCCGCCATCCCCCGGACC
-CCCGCCCTGGGCTCCAGCTTCCTCCCCACCAGCCCCACCAGCCCCGGGAA
-AGGCCACGCTGTCTCCTGCCTCCCCGCGGAGGTCTCATGAGCCGCCGCGC
-CCCGGGCTGCGAAGAAACACCCCAGTCCCCTCCCCCGCGACCCTCCCTGC
-CTCCTGGGTACCCTGCAGACCCCACACGGGACCCCCAGGCAGGTGTGACC
-TCGAAGAGAAGCCACATTTCACCACCTCCTCAGAGACTCAGATGAAGGTC
-CACACACTAAATGCAGATCTGGAGGAGGCGGAGCAGGGTCACTTCTGACt
-ttttttgtttttgtttttgtttgagatggaatctcgctctgtcgcccagg
-ctggagtgcgatctcgcagtggtgcaatctcggctcactgcaagctctgc
-ctcccgggttcacgccattctcctgcctcagcctcccaagtagctgggac
-tacaggcgaccaccaccaggcccggctaattttgtttttgtattttcagt
-agagacggggtttcactgtgttagccaggatggtatcaatctcctgacct
-tgtgatccgcccacctcggcctcccaaagctctgggatcacaggtgtgag
-ccaccgtgcccggccCAGACTTTTCTTTTCTGTGAATGCTACATGTTTTG
-GCATCTAGCCTGACAGGTAGAATTTACTTGCAAGGACCTCACATTGATCA
-TCAGTCAAGGATCAGGGCTCCAGAAGTAAATCATACAGAAAGTGATCACA
-CCGTGTCTCAGGCCACACATGGCCCGTGCGTGCCAGTCCCAGGCCACACA
-TGGCCCGTGCACTCCAGGCCCAGGCCAAGCCTGCGGCCGAGTGGGCAGGT
-GACCCTGGGAGGAGCAGAGGAGACGGGAAGGCAGGTGCCCCTCAGCTCCC
-TCCAGCGCCCACCTGGCTGTGGTTTCTCAGCGGGAACAAGAAGAATGAAG
-ACCAAACCCTGAGGGGAAGATGTTTCCCAGCCTCTGGGCCAGAAAAGCTG
-CTCCAGGGAGGAGAGGGGTTGCACATGGTGCCCCACGTCCCCTGTCAGAG
-GCCGCTGGCAGGACCACATCCCAGAGCCCCCCCAGAACCCGGGAGGCGCA
-GGCCTGGAGCCCAGCCAGGCACACACCAGGGCTACTCTGACCCTGGAAAG
-AGGTTAGAAACAGCCGCTGTCTGGATTCTCAATGACAAAGGGATGGATGT
-TGAGGAAGACAGAGGGGGAGTGGGTGTGGGAAGGAGGACACTGAACAGAA
-AGGGCCTGGATGCCCACGATAACAAAAGCAAAAGCTGAGGAAACTTCACA
-GGGGGCAGGGTTGGAAAGAGGAGGGGTGGGGTTCAGGCTAGACAGAGGAG
-GGGTGTGGTTTAGGCTGGACAGAGGAGGGGGTGGGGTTCAGCCTGGACAG
-AGGAGGGGTGTGGTTCAGACTGGACAGAGGAGGGGGTGGGGTTCGGGCTT
-GTTCTGCAAACCCAGCGTGGGTACCTCGGCCTTTCTTATCCCCAGCATGC
-ACTTGGAGCCTGTGCCCCTCACCTGTCGGCGCTCCCAGCTCGggggtttg
-tgccccttcctggtcccctccccttgggtgttgccgggacctgtttcttg
-ctcctaagccacatcataggatcaaagcgatagagtgtccgtggctaagt
-gtgtgtgcacgaccacaccacgcacgattgtgaccctgccttgctggagc
-cgctgtctcctttgctgcgggaacacagcagccgtgctgggcaacaccac
-gtacctgggaccttcggtggcctctagcaccagagtgcagcctctggaca
-aaagccagtgagaaaatgaagccgtcagtcctacagttggaaggacggat
-ggttgccagcaccctgagtgagcgtggaggtgaactctgccccagctcag
-cctccagcccagccgccacctgatggcagcctgtgggcccagcagaggac
-cccacgaagtggcgccagaccgctggccacagagactgagatgacagatg
-tgtgtcgttttgagctgcaagatttgtggtgaccttgttacacaaggaca
-gacgctaacacaACGGGTTCCCACAGCAGGTCTCCAGGGCTCAGGGAGTT
-CTAATCACGAGACCTCGGGGGGGGTCTTTCGGCTGAGTGCAGAGAATAAC
-GCGGCTGAAGGTCACGGCCAGACGCCTGAGGACCAGCCACTGACACCCTC
-AGCATCGAGAGCTGCTGCCGAACTGTGGCCAGGCCCtttcctcttttttt
-ttttttttttttttgagacagagtcttgctctgccgcccaggcccaggct
-ggagaacagtggcgtaatctcagctcactgcaacctccatctccctggtt
-caagcgattctcgtaccttagcctcccagtagctgggattacagacatgc
-gtcagcacacccagctaatttttgtatctttagtagaggtgggttttcac
-catgtcggccaggctaatctcgaactcctggcctcaagtgatccacctgc
-ctcagcctcccaaagtgctgggatgacaggtgtgagccaccgcgcccggc
-cAGCCAAGCCCATTTCTAAGAACGTCCATGGGAAGGAAGGAGGGATGTAG
-CCAGGGCCAGGACCACCCCAAGAGCAGAGTGATGGGTGCGGGTGGGGAGC
-AGAGCTGGAAGGGGCCCAGGGGCCGTGGTTCGTGGACCTCAGGCCCAGGC
-CAGCCCCCGAACGCTGCAGCTCCTGGCTCTCCAAGCAGCTTCCTAGGGAC
-CATCAGTAAAACTGTGACAGCAAACCCACAGTAATGTGATTTAATTAAGA
-GATAACGACAGTGGAACTGGGAATTGTGCCGGGTAACGGGTCGTCATCGC
-CTCGGGAGCAACAACTCGGAACTCAGGATATTAATGCATCACCGTGGCAC
-TGTTTGGGGAGAATTGCCGTGTTTTTCAAATGCCTTCAAACTTCTATTTT
-CCTTCCACAGTCTCTGAGTTTGCCCCAGCCCCCCACTGATTAGTTCCAGC
-TACATCTGCCTTTTCTCATTAAAAGAAAAGCTTGTGCATTTTATTTTCAA
-TTAACTTGCAGGAATCTATCAGGAGAAAGTCCAGCTGAACCTCATCATTC
-ACAGTGCAATTTCTCAGAACCGCCAGGGACGGCAGGTGTGATCCAGGGTG
-GGGCTGGCCTCCCACCTGCTGGGGCACGTGCACTCCAAGGGCTCTCTCGG
-GCCAGGGCCGCTGCGCTCAGCCTCCTGCACAGACGCACCTGCTGGGGCAC
-GTGCACCCCAAGGGCTCTCTCGGGCCAGGGCCGCTGCGCTCAGCCTCCTC
-CACAAAGCAGGGAGTGTGGGGAGAGGCCTCATCACACTTCCCACCTGGCA
-GCAGGTGCCTGGACACCTGAATCTCCTCCACTCTGCCCTCCAGTCTTGTC
-CCCTTGAAGACACATGGGGCAGGGCCAGACGGCTAATGCGTTAGGATATG
-GGTTCTGGCCTCTGGCAGCTCTCAGAGCCTGCCTGGCGCTCCCTTGGTGA
-GAATCTGACCTCTGGGCACCTCTTGACTCCCCTGGCAAGACAGAGTGGCC
-TGAGGGAGCCATTGGTCCCAGGGGACACTCGCCAGGACCCTCCCGCAGGC
-TGTGGATGTGTGTGGCCTGTCCTTGGCTTCCCTGGACCAGACCTGCCCAT
-GGGCCTCTGGTGTACGTGGGTTCAGTGCATGGCTCCTGGGAGAAGAGTGG
-CTGTTTAGCCACTGAAACATCACCTTCCTCACAGCTCTTTCCTCTTATAA
-GTTTGTGCCTTTCTCCAGGCCCCAGCTGTGCCCAGTGGCAGGGATGAGAT
-GAGATGTTCTGAAGTACTCGTCAAAGGCCCGGAGAAGCATCGCATGGGAC
-AGGAGGGGAAGGACTCCTGGGGGCACGTCCTGGGCCTCTGCCCGGAGACC
-CAGTGTCTTCCTGCCAGCATCTGCTGCCAGGCAGCAGCACCTCCTCCAAC
-ACCTCATGCCAAGCATTTAGTGTTTTGTTTGGGAAGTCGCCGGGCACAGC
-CTGTCTTGCAGGACGCAGGAGAGGACACTGGAAATATCACTCATCATCAG
-AACAACCCTGTTCTCCAGGGCTCAGCCCTCACCTCCACTCCTCAGGGCAC
-GGACAGGTGGGCGGGGCCGGGAGCCTCCGCAGCCCACACCCCTGCGAGGG
-GTCTTGCAGGAGGGGAGGCATCTGCGGCAGAGCCCAGCGTCCCCACTGCC
-GGCATCCCTGCCTGTCTGCAGTTCAGCCTGGCTCCCAGCAGGCCCGGCAG
-CATCTCCTCTGTGAGCTCCCAGCCCCCTGCCACTGCACATCGCAGGGCAG
-CCTCACCTCCCCATCCCTGGGAGGACAGGGTCCCTGGAGCGGACACGGGA
-GTGGGGCCGCCTCACATTTGCTCCCAGAGCAGACCCTCCTGCTTCCCTCC
-ACAGCAGGCCCTCCGCGGGAAGCCCCCTCCCATGCCCTGTCCCCCACACA
-GCAACCCCGACCGCCTTCACCCAACCTGCCCCACCCCCGCTGCAGCCCCT
-TTCCAGCCCAGCTCCTGCCCCCCACCGACCCTCCTCCTTCTAGAAGCTTC
-TCCCCTTGGCATTCAGGtgaggtaagagactggcaggactagttttctgg
-tcccagccccactgacccaaccaggacctggtccaggcaggatgaagtga
-aaaaaccagcagaaaccagcagacgatgagaggcagatccctggctgccc
-tcactgctcattggcatcagacatgcccaccagtgccatgacagtttacc
-aatgccccataaggtgccacccctttccatggcaacgccccataaggtgc
-cacccctttccatggcaacgccccataaggtgccacccctttccatggca
-acgacccataaggtgccacccctttccatggcaacgccccatacggtgcc
-acccctttccatggcaacgccccatacggtgccacccctttAcatggcaa
-cgccccatacggtgccatccctttccatggcaatgacccatatggtgcca
-cccctttccatggcaacgccccatatggtgccacccctttccatggcaac
-aacccataaggtgccaccccttttcatggcaatgacccagaggctactgc
-ccttttcctagaaaattctaaaatgacttgcccctcaatttgcattggcc
-catccttaatttgcatgtaattgaaagtgggttctcatgggtataagtat
-agctgccaagcacccatacactgttggctgtgggtgcactgcctaggagt
-tagccctgtcctcaagaagcagtaccgttcaatgaaagactgctgtccaa
-cgccactagctcacccttgaattccccttggggaagccaagaaccctccc
-aggctaagccctagtttggggtcttgcctgtccagtaacaGGGGGCCCTC
-CCTCTGCCACTTCACTGCCCCTTCCTTGTTCCCCCTCCAAGTGCAGTGCC
-CAGAACCCAGACACCACCCACTCACGGGACCTTCCCTCTTTCCAGAGAAT
-TCTGAGTCTCGGCCTGGCTGTCCTAACTCCCCTCCCCACAGCTTTTGACT
-TTCACCTCCACTGGGCTGTCCAGCCATGACCCCAGCCCCCGGCCCCTTCC
-TGTTACAGCTGGAGGGTCCTGACTCCCACGTCCCCCACAGGGGCCCCCAG
-CAAAGCACAGCTCCAGACCTGTGGGCCCCATGcaggcaccatggttcata
-cctgtaatcccaccactttgggaggctgaggcagaaggattctctcgagc
-ccaggagttacagaccagcctgggcaacacagcaaaaccttgtctctaag
-gaaataaaagcaaaaATAAAGAAAATCAAGATGGTAGCAGCAGAGCAGGT
-CCTCCCACGCGTGCTCGCCCAGCATGTGGCTGGAATCCTGCCAGCTCTGC
-CCCTCTTCCTGCAGGTGAATGATGGGGACCCTGCACAGTGCCCCCCTCCT
-CAGAGTTGCCTGCCCTGATGCCCACACAATGACAGCCCCGCCCTCTCCAG
-CCCCTGCTGTGTCCCTCCACCTTCACCCCACAGTGACTGTGTGCTTCTGT
-CCGAGTCCCCATGAACCACAAGCCCGTGGTTGAAGGTCTCTTCCTGTTGC
-TGAAGCCCCAGTCCCTGGTGTGTCCCCCAGGCTATGGTAGGGGTCCCAGA
-GCATCTGTTGACCACTGTAGTCAGTTCCAATTTCAGACATCAGTGTCCAC
-AGGGGCTTTGGTGCGGATGCCAGTGCTTTGGGCTGGCCTCTTCTACAACT
-CACCTCCAGCCATGTCATGGCCTCAGCTTAAATCCCTTCAGATGCACGAC
-TGACCAGGCCAGCACAGCAGCCCGTCCACCTGTCTGGGTGACCCTCCTGC
-CCTGCTGGCCTTTTCTCAGGGCCAGGCTGCaggttaaggctacagtgagc
+>humanchr1/239220001-239550000
+CCAAAAATACGAAAAAGTAGCCAGGCATAATGGCACACATGTGTGGTCCCGCTGCTTGGG
+AGGCCGAGGTGGGAGGATCGCTTGAGCTCGGAAGGCAGAGATTGCAGTGAGCTGAAATCC
+CACCACTGCACTCCAGCATGGGTGACAAAGCAAGACTCTGTCTCACCAAAAAAAAAAAAA
+AAAAGAAGGAACTGGCAGAGTCCCAACTGACAGGTATATTTTCTGTTGACCAAAATACGG
+TTCTTACTGATATTTGATACTGACTCATAGTCACAACTGCCATATGAAAAGAGAGAGATC
+ATTTTTTTTTCCTGGCAATATGTGATGGTGGAAGATACTTAGTGTGGTGTCCTGATAAGA
+TAAGTAAGCAACAATGAGGAGGGAACCCCAGGGAGGGAGGACCATTGTTCCGAGAGAACA
+GCTAATCACAGACAACCTGTTGGCAGGACATCCTGTTCCCAAATGCCTTGCTTGGCAAGT
+AGGCCCAGCAGCAGGACCTCATTGTGCAGGTGGCCCCCTCCAGCATGATCCTATAAAACT
+TCCCTCCAGCCCCCGCCTCTTGGCGGACAGACTTCTCTCTGCTGCACTGCCCATTGCTTT
+CTTGCAATCTTTGTACTTTCCCTAATAAATCTGCCTTTCCTTACCCATGACTGTCTGTCT
+TGGTAAATTCTTTTACCTCCCACGACACCAGCCACAGCCAGTTGCACTCACAGCACTTAG
+GAAAATAAAAAAAATCAAGGCTGACACTCTGGATACCAATATGTAATGAAGTGTTCTTCT
+TACAAGAGCTTATGAGATAAATAGAAACGTAACAACAATTTTTATTAAGCAAGATATAAA
+AACTTCACCATAGGCTGATCCTGTTTTCATTCATGGAAGATAAATACTATCCCTCACTTA
+AGAGCTTTTTGTGTAGGAATTCTTCTTCCTTATTTTTTCACGAATAAAGATAGGGATGTC
+CTTAGCATCCAAAATCAGTCAAAAAAAAATTGACATTTCATGTCCTGGTTAGACTACTCT
+GGCAGCTTGCTGGAATGGTCACTTGCTTCTCCCAACTGGATCTCAAGTCCAGACCCCTTT
+GTTGTCGGCCCCCCTCCTGGCCACCCCCACCACAATCACTTAATAAGAAATACCAGCTGT
+AGAGCTCAGAACTGCTATGACAATTAAAGCTTCCCACCTTCATGAAAACTGTTGAAAATG
+GGGCAGAACAAAAAGTAGTGTGACAGAATTTCTCTATACTGTCTGATGCATTGCTTCCAA
+TGTAGGGAGACCTTTAATTGGTTCTCTGGCTTTTGGTTCCATCCTATTGTAAACAAAGAA
+TCAAAGTATAGTAAGGTTCAAAGAAGTAGGGAGTGCTGAATTTGGCAGATGGCACAAGAC
+ATGGTTAGAAAGAAAGCATCCTCAGAGGAGATGAGAATGATGCTGAGCCTTGGCAAATTG
+CAAGGAATGCGTAGTTAAGCAGAGCAACTTTTCACAGTCAGATTTAGAGTATAACTAACT
+CTGGAATGACGAGACACACAAAAAGATAAATGCTATTTATCACCACTGCTCACAATGAGG
+AATCAGTAAGCAGCCATAACAGATGCTGCGCTGCCCAGATCCCCTCCTTAGGACTGAGGT
+GCTCACTTGCCAGCTGCAAAGACTCGTGCCTGAGTCTCTCTCCAGGCAATGTTCTCAGGT
+CAAAAGGCAGCTGCCCTGCTGGAGGTTATAGCTCCATCCAGCGGCATGCAGAATCCATTG
+ATTAGCAGATGTGGGCATATGAAGACAATGTCTTGGCTCAAATTAGAACGGTTCTAAAAT
+TGCTGCGACCCTGGCTAGAATTACATTGCAGGTGAGCTTCTTCCTCCATCCAGTCCTGTT
+TCTCTCACTCCATTACAGTTGTGATTCCCAAGAGCACTTCACAATAAACCTCCAGCACAC
+AGTCTCCTTCTCTGAGTCTCTTTCTAGGAAAGCCTGACCTAAGACAACAGCCTCCCTATG
+GCAAAAATGTCCAAATTAATAGCTTCTTTATATAGGGGGCAAAACCACCAGCAACCAAAA
+CTTTTATTTAAAAAAATGACAATTGTATGACTAATCAGCGTACATTTAACTTCAGGATTG
+AAAATGTTGCATCCTGAGCTTAATTTCCTTGATTTTACTTTGAACACTCTTTGAGTTGTG
+TTTCTATTTTTAGACCACAGAATTTAAGATAAATGTGCATAATTTAGAGAGGTTTCAAAG
+AAAGGCAAGTCAAGTGATTAAATAATGAGAATAAAATTAGTATAAAAAGTGCCAGGAACA
+TTTGGTCTTTTGAAAGGAAGGGCAAGGGGGCCATTTTAATAACAGCCTTCACATACATGC
+CTACTTATTCAGATAGACGGTTGTGAGGTCAAGCTGGAGGGGCAGATAGGGATCCGATCA
+CTATAGACCCAGATTCCTGCGGTAGCTTCCTACATTATCTCCCAGCTTTCACCCTCCTGG
+CAACATCCAGAGTGATCCTTGAGAAACCATAACAAATCACATCGCTCTTCACCTCCAATC
+CACCTCTTCACTCTCCATCAGTCCTTCTTATGAACTACACACACTCTGTGATCAAGCCCT
+GGCTGCCTCTAGGGATTGTCTCCTCCCATTCACCACTACAAAACTTCTTCCTCGAAGGTG
+TCCAGCAGGCCAAGCCACGCTGGACTCAGGGATCTCCCCACGGCTGTGTTCTTCCCATAG
+TACCACAAACCCTCCACTCCATTCACTTATCTGCTCAATGGCACCTCCTGTGAAAGGATT
+TAAAGTAGCCCTCCTCGTGATGTTTTATTCCCTTACTTTGCTTTACAAGCCATCAGAGCA
+TTTATTACTTCTTGATATTCTAATTCTAATATGCTAACGTTATATTTTCTATATATACCA
+TTAAATATGGAGAGAATGGATAGATATAGATTTAGATAGCTGATACAGGTAAATATAGAC
+AGAGGTAAAAATATAGATAGAGACTCTTTCATTTAGTCCTACGTGCCCATCAAAATGTAA
+GCTCCGTAAGGGTAGGATCTTTGTCTCTTAGTTAACTCCTCTATGGTGGAGGAGATGTGA
+GACAACCAGAAATTTCTGTCTAAAAAAAAAAATCACACACTCGATCACACACTCGATAGG
+TGTTCAATCAATATTTGGTGACTGAATGAATGGATGAATGTGATCCCTTTAAATCTGTAT
+CCTCACTATACAAACTTCCTTAAATATCTATTAGGTAATTTAGCTAAACTTTTCTTACTC
+GCTCCAGTGTGGTGTGTGTTTGTCTTTTCTTCCTCCTTGACCTATAACTATTGACAGTTA
+TACAATATGGTGGTTCCACAGCCACCAGCCTCCTTTTCCTATTCTCTAGAAAGAACGAGG
+ATGAGCTATAAAATTCATCTAACCCTATCATCTTTTTAAGGGGTATAATATTAAGTGGAA
+ATTCTTTACAAATTTAAAGTTATATTCAATTTGTAAATAAGAATAATTATTATTGCCTGT
+AACTTTTGAACTTGGCCCATCTCGTTTCTGCCTTCTTGAAATTCGGTATTTTTTATTAGA
+GCTTTCAGAGTCAGCTTTTGATTTTATTGATCTTTTTTGTTTTGTTTTTATTTATGTTCT
+TGTCTTTTTAACTTACATTGTGTGTGTATTCTTATTTATGTTCTTGTCTTTTTAACTTAG
+ATTTTTGTATGTATTCTTTTCTTTATTTCTACCTCCTACAATGGAATACCCAGTTATTTT
+TTATATATATGATATATATATGGCATATATATGACATATATGTATGTCTTTCTTACTTAT
+ATTTTTAAGTCTTTACTTCTAACTTCTAGAATGGAATATATATAAACCAAATATTTGAAG
+CAGCCTGTGTATTATGGATAAATATTTCTCTTGGATAGACACCAGTAAGTTTTATATATA
+TATATATATATATATATATATATATATATATATATATATATACACACACACACTCACACA
+CACACACACACGATTAAAATTCTCTTGTTTTTAATACATGTGGGTATGACTATGCATTCT
+TCTGTAAATACTACTTTATCTCATAAATGTTAATGAATAAGAAGTTTATTGTTTTGGCTT
+TAAGTTCATTTTGATATCCACTCTAATTCATTAATTCTTCAGTCACATATTGTTTTAAAA
+TACATAAGGTGTTATTGTTTTTAATTTTGGTATGTATTTTAATCGTGGTGAGAGACTATT
+ATCTGCGTTATATCATGTATTTGACATTAGCTGAGACTTCCTCAGTGACCATCAATATAA
+TCAATTTTGAAAATGTCCAAAAAAAAAAAAAGGGGGGGTTCCCTCTCTTGGCTTTGGAGC
+CCCCCTCCCTCTGTCTCTGTTCAGGGGGGAGCGTCTTCCTTCTTTCTTCCCCCTTCTACC
+TTGCCCATTAAACTCTCTGCTCCTTAAAACCAAAAAAAAAAAAAAAAAAAGGAAATAAAA
+TGTCTTCTGGTTTCTTGAAAAGAAAATATCTGCATTTACATTGTGCAGTGTTCTGTGTAT
+TTTTAAGTTTTTTAATTATATTGTTCAATTCTATTACACACTTAATATTTTGTATTTGCT
+TGATCAGTTTCCAGTAGACTAATATTAAAATCAATATTATAATAGTAAGTACATCCTCAA
+GATCCTAAAGGATTATTTATTTTTAAAAATGTTTTATTTAGATAGTCCTTACTATGTTCC
+AGACATTCTTAGCACTTTGCACATATTAACTCACACAACGTCACAATTGTTGCATTTTCT
+TGGAGGATTTTTCCAATTGTTATTAAATACTTTCCCTATCACTTTGGATTAAAATTGTTG
+GAGTTTTTAAATAAGAGGCTTATAACATATAATTATTGTCTTAGCCATGATGCCTTTTTA
+CAGGTAGTTTTTAGCAGTAGTAGTTTTAGTGTGAAAGTCTGGATATTTCAGTCTCTTTTA
+CCTTGCCCTCATTCTTTTTTTTCCCCCTCATTCTTAAAGCATATTTTACCAGTGCATAGA
+TTTCTAAATTAGATATCTATTGTCTTTTGACGTCAAATCTACTATTACTGTCATTGCTGT
+GGCTTTGCAGACAACCTTTTTTTAGGTAGTTTTTAAGAAACTTTTTTCTTTATCCTTGAT
+ACTGTGAGATTTCACTGCATTGTGTCTAGGCGTGGGTTTATTTTAGTTACCTTGCACGAT
+GCTTGTATTAGTGAGCTATTGTTATGTAAAAACTCAAACTCCAAACTCAACAGTTTAAAA
+CACCGTCGTTCATTCATTCATGCGCATACATTCACAGGAAGTTTGGGGATCATCTGACCC
+AGTCAGGATTTGGCAAGGCATACCACGAAGCTGTAGCTTGGGGTCAGGAGTAACATTTCA
+CATCTTTCCACCTATGGACAAACCCAGACACATGGCCAATGCCAAAGTCCAGAGGTAGGA
+AAGTACACTCTCCCTCTAAGCAGAGAAACTACAAAGTCTGACAATAGGCAGGTTACAATA
+CGGGGGGCAAGAATTCATTCTGCCATACTCTTTGATTTCAGTCTGAAAACATATATATCT
+ACTCATTATCAAAAAACATTTAGTCTTCATCCTTTTTTTTTTTTTTAGATGAAGTCTCCC
+TCTTTTTGCCCGGGTTGGAGTGCAGCGGCACGATCTTGGCTCACTGTAACCTTTGCCTCC
+CAGGTTCAAGCGATTCTCCTGCCTCAGCCTCCTGAGTAGCTGGGATTACAGGTACGTGCC
+ACCATGCCCAGCTAATTTTTCTATTTTAGTAGAGACAGGGTTTCACCATGATGGCCAGGC
+TGCATCCTTTTGAATATTGTTTCAAACTATTCCCTCTATTTTCAGCTTTTGTAGCTTCTT
+TTAGATGTATATTTCAGACTATCAAAATGTCCTCAATGTCTCTATTTTATTTTTAATAAT
+TGTTCTATTGATTTTGCATCCTTTCTATACCTGACAAGACAATGAAATTCTGCTAAAGAT
+TTTCTTTTGCCTTTTTGGACTTCCTAAAATTTACATTTTATTTAAATTACGTAAATAATA
+AATAATATAATAACATATTTATTTTACAGAAATCTTATGATATATACAATTAAGTCTCCA
+TCAAATTTTTCCTAGCTCTACACTGACCTCTAAAAGTTAAATACCCACTCCAAAGATAAT
+CACTCTTATGTATTCAGCATATATTCTTTCTGATCTATCTGCTGGAATATATGTGTGTGT
+GTGTGTGTATATATATATATTTATTTATATACACACACGAACATAGAGGAATATGCATTT
+GTTTATGAGAACCTTTTTTTTCACATATGTGGCTATAATTTTCATGTTTTTAGGAGACGT
+TTAGGTTTTGTGGAGAGTGAAGAAAAATTTGGTCTAAAGGCTTGACGAAGCCCCATGCAA
+GTGAAGGGCTCTCTGCATTTTACACGTCATTTCCTTTGTGGTAAATCTGCTCTTCTGTAT
+TTCTGTAAATGTATCTTCTGCACTTTGTTTTTTCACTAAAAAATTTACATTGGCTATCTT
+TCCATTCCTAAAACAAAAATCTAGCCAACATAACTCATTTCAAATATTGCATATAAGTGG
+TTTTATCGGTATTAAATCATCATATTATAGCTCTTAACCAAATGTTTGAAGCAGCCTCTG
+GGTTATGGATAAGTAGTTCTCTGGGATAAACAGCAACGAGGCCAATGCTTTTATGAAAGA
+TATATATTTGTAACTGGAATATATACTGTGAAATTGTTCTCAAAAAAGCTGTTCTATTTT
+ATACACTTGCCAATAATTGATATTATTAATCATTTTGCCTAGCTTTAAAGCATTGTACTA
+ACTGGTACCTCTTAATGCTTTGAAGTCTATATTGATAAATTTAATTTAAAAGTGTGTTTT
+TCTTTGATAACATAAAGGAAACTGGAGAGGTGAGATGGAGAATAAAAATAAGACATATAT
+TATTTAATGAACTTTAAAAACAAAACCCTAAATGAGATAAGTCCCATTTCACTACTTCAA
+AAAAATATATAATGCAAAGGGAATACTTATACATACACTTGGGAATACTCTGGAATTATC
+TATGAATGCTGATGATACACATAAACCTAGTCTGCCCACAGTCTCAAGTCATTTGTAGTC
+CTAACATTCCACCTCATTTGGTACTTGCCCCAGTATTTTTTTCATTTTTAACAATAATTT
+TTATTAATTGTTGCACTTAAATAATCCAGATGGACTGGAGAAAACTCCACTTTGTATTTT
+CAGCTTCTCATATGCTCTTTTCCACCAGTATATGAGACACATTAGCAGAAAACAAAATTC
+TTATGTGAACACATGCTGAAATCTGAAAAAAAATAATAAGTGAGAACTAATCTCTAGTTC
+TCAACTCTTTCCAGATACACTATAGCTAATACCTCACTTTCAGTAACAGTATAAAGTGAA
+TTCACTGATAATAACCAGTGCAGCTAAGTCCTTCTGGTCTAGGGCAGTGGTCGGAGTGGT
+GTTTAATATCGGTGCCCTTGCAGCCACTTTGCTTACCAGCTAGTTCTCCCTGAACCAGTA
+CTGCAACCTGCAAGAGTCAAAAGCTTATAGGCAACCCATTGGTGAGGTCAGTGGGAAATG
+CAGGGAATGATAGTTAAGATAGAAGTGACACGTGTGGGAAATAGAGACTGGGACATCCCG
+CCATAGAGTTCTAAAAACAATTTCAATATTCTCGCTACAGTTCTTTTAGTATTTATCATA
+TGCCGTATATCTTCAACTATTTATTTTACGTATTTGATTGCTTGATATGTGGGACCAACC
+CCTTTCAAGAGAAATGACTCAATGTCAAAAGTTACGTATGAGCTGAGAGTAATATAAATA
+AAACATTAAGTCTGAAATTTCCATTTCATAGAACGTTTAGAGAAACTTTTTAAAAATATT
+TATGAATACTTACAATCTTCCTATGTGCTATAGTAACATTGCTGTCCACATTAAAAAAAC
+AATATGACATAACTCTGTTGAAGGAAACTCAACATCCACTTTAAAGTTAGTACATTTAAC
+AAGGCTGCCCTCAAAATGATTATTTAACACATAAAAATAAAGAAGATGCATTTACATGTA
+AACCATGTAAGTCTGTGAAGCTTGAATTTTTCATTTAGATCAAACGACTATTTCTTAAAT
+AAATTCTGCTTGCGTCCATGTTCTATTGTGAATTATTAAAAAGTGAAGTAATAACTGTTA
+AGGTATTAACTTCATTGGTAGAAAAACTTTATAGTTAAAAGATTGCTGGTTTTATCAATT
+TCATCAAATGCTTTGAATACAAATTGGTTAAGTTTATTCCAATAACATTGTTTTTACATT
+TTTAAAATTTTCATTCATGAAGTAGAGGAAAGATAAAATTATTTAGGAGTTCATTCTGAC
+AAAGGTGAAACATCCAACTTTACAATAAATATTTTCATAAGTTTATCAAAAAGTTTAACA
+CTGAATAATAGTAAAATTACTCATTTTGTGGTAATAATAAAAATATAAATTTTGATGGAA
+TACAGCATCACGGTAAACACGATTTTCTTGCTAATTCAACAAACCTGGGAAGCAGAAATG
+TACTTGGATTTGCAATGCATACAAAATTCATAATTGCATGTAAGCAAGTTATAATATCCC
+AATGGCTAAATAGAAACTCTGTTTGTCTTTTTTTTTTTTTTATCACACACACAATTTGAG
+TAACTAAACTACAACATTTTTATGATAAAGTTGATGTTGGAAACAAACCAAAAAATCATT
+TTTCAGCATGGCAATGTGCTCCACTCATTGGATTTTACAAATGTCTGAACATGTGAAGAA
+TTATTTCATAAATCAACTTAAACATGTGACAATTGTATTGAGCTTTTTTTTTGGTATGTG
+GGTACTCTAAAGATGAGTATCCTTTGTTTTTGCAAAACCAGTAAAAATATTTAATAAATT
+TTTTCTATAAATGTAGTACCAAAATGTTTGAAGTTTCTACTGAACCATTGAAAACAAAAT
+ACGTAAGCAGAAATATATGACAAAGTCAAGAGAGAAACTGAACAGATTAAACAAAGGACA
+TGCAACGTGTTATATGATTTCATTTCTCAATTTTATAATCCCTTTCTATAATATCTTGAC
+TTGCAGAGAAAATTTTTGTTGGAGTTTCTATGTTTAATAAAATAAATGGATATATTTACT
+AGAATGAAATGAAATTAGGAAGGCCTATGATTTTGCAGCATAAACGAAGCAATTTATTTT
+AATTGCTTTTTCCTAATTAAACTAAGAAAGGTATACATAGAAGGACAATATCTGTAAAAA
+TATTTAGCATACAGTATTAAAAATTTTCAATACACAATATTCTCCAGAGAGCAAAAGTTT
+CTCTGAGTGTAGAATTTATATCAATATCTGTGAAGATAATATTTTTCTCAATTATAGATG
+AGTCAAAAATTTTGAAATTTATTAACCCACAAGATCAAATTTCAAACTTAAAACAATTTT
+ATGAAAAAAAGTCCAAAAATAGTAAGACCAAGTTGAAAAAAATACATTTAATACACAAAT
+GGTGATGACTCAATTGATTAGTATAAGTTAATATCTCTAATACTTGATTAACTATTTCAT
+TTATCATAAGCCCATTTAAATGAGTGGACTTTGTCCTAATTGTCTTCAGTGTAGACAAAT
+GTTATTATATTTTAGACATAATTTGATCTCTGAAAACACTTTTAGGATAAGACTATTGAG
+TTGGCAAGCCAATATATTAATAATCAATTTATCAGTCAATATCTTAATTCAAGCTACTAT
+AACAGAGTACCATAGACTGGGTGGTTTATAAATAACAGATATTTATTTCTCACAGTTTTG
+GAGGCTGAAATTCCAAGATCAGGATATAGCATGGTTGGGTTCTAGTGAAGGCCTCTTCAC
+TCAGAAGACTACTGTCTTTTTGCTGTATCCTTACATGGTAGAAAGAAGTCAAGAGAGCTC
+TCTGAGTTCCTTTTTATAAGGGCATTAATCCCATTCATGAGAATTCCACCCTCATGACCT
+AAAAACTCCCCTATTCCCCACCTTCTAATAGCACCCCACTGGGGTTTAGGATTTCAACAT
+GTGAATTTTGGAGTCACAGACATTCACTCCAAATAAGTTAGTAAATACCAGTTTGATTTA
+CATAATGTCAAGTATTTGATAACGCCCTTTAACTCTCAAAATGTCCCTATGTGTACAATA
+ACTTACATGGTAAATTTGCCTATGATTGAGTAATTCCTTTCTTAGTTATTTACCCAGGGG
+ATTGCAGGCACAGCAACACTAAGAGACAGGTTAAAAAAATGTTCACAGCTATGTCATAAT
+AACTTAAAATTAGGAACAATCCAAATATCCAAACACAACAGAATGGATAAATAATATAGT
+TTAGTCTTAGCATTGACTGGTATGGAAATTAACAGGAAAAATGCAACTATGTGGATAAAT
+CACACATATATACCACTAAGGGAACGAGATTAATACAAAAAATATATAGTCTATGAAAGA
+AATATAAATGTCAAAATGAGACTACACTGTCACTATTATTCAAACATCTGTACACAGTGA
+AACTATATAAAAAAGAAAGAAAATACTGACCACAATTTCAAGATTGTTGTTACTTATAAG
+GAGAGAAAAGAGTCAGCAGTTCTGGGGCTCTGAAAGTATTCTATTTCTTGACTTTGATAA
+GGTTTAGACAATTGTTGGCCTCATTTTTTTTAAAAAAAGCCTACATTTGAGGTTCATTTT
+GTTTTTCCTGTATATGTGCCAAATTTTAATTTTTTAAAAAAAGTAGGTGAACAATCTGAA
+ATTAAAAGTTTTTATTCTAAGGCCTCTTTGTCATTTACTAGAGTAGTTGATACTTTTAAA
+ATGTAAAGCTGTTAAACAATTATAAATTATATTTATATCAAGGTGATTTTCCCAATCTAG
+TGAGCACATGTGAATATGTATGTATCTAATCTAGTGAGCATGTGTGAATATGTATGCATC
+TGTTGGGGGGAGGTTTATGTGTGTGCCTATGTGTTTGCTTTTTATGTCTGTGTAGTTGTA
+AGCATGTGTACATGTATTTAGGTGTGTGCATTTATTTGTGTGCCTGTCTGTGTGTGCATG
+TATGTTTTGTAGGAAGGTGAGGATACATTTTTTTTTGGTGTAGAAGATATGATCATCACA
+GAAATAATTAAAATGAGCAGGTTTTTGAAAATAAAAACCCCAAAACAGAAATAAAATTTC
+AAGTAAATGAAATAAAATGAATAAATATATTTTTTCATCAAGTTAGATGTTTCAAAACAC
+AGACTTCAATGTTAGCTTATTTCCAGCTTTTTGTTTTCTCAGTATGTGGTTCACGCAGCT
+ATAATGCTTTTGAGAACACAGAGCGCCAGTTGTGGGAAAAGAAGCTCTGTTCATTATCCT
+CAGGTTGTCTTCATTTCGTAATTCTTTTCACTACCTCTTTATGAGTATTATCACAAAACA
+AAAACAAGAAACACCTGCTGTATTGTACACATGATTTTCAATCAATTCATCAGCAGCTTC
+AGAGTAAAAGAAAGAAATCAAGCAAATTATTAGTCCACTTGGGAACTATGAGAACACATT
+TAAAGGATGTGAATATTTTCATTTCAAAGTAATTTTGTTTCTTTGCCTTTTGGAATCATC
+GGCACCAAATGCTTTTTGGCTTGCTGCTTACACTTTTCATCATCGCCTTTTAGATATTTA
+TTGGAAAAAGGCTCTGAATTTTGGGGGCTGCGAAATATGAAGATGCACACAAACACACCC
+CACATACAAAGATATAATGTTCATTATAATGTGACCATTAATTCTGCCATTCTTTCAAAT
+TCTGAATTCACTTCTTTAATCCTTTCAGCTTAAAATTTGATATTTTGATTCTTGGGTAGA
+AAAATTCACTTAAATATAACAAAGATTTATTGAACCCCTGTTATATAACATATTGGATAA
+ATGCTCTAGCTCTGAAGTTTACAGACCTGGTTTTGAATTTTAGCTCTACAAATAATTATG
+TCAGCTTTGGGCACATTGCTTAACTTCCATTCAATTCCATTTCCTCACCTGTAAAACAGT
+TACAGTGTCCTGAGATAAAACATTAGTAACCCAGAAACAAGCATAAAATCAAGAAAAATG
+AAATTATTATTAGAAAGGTAGTCATGTAACATTACTGAGCAATTGTCACATCCTCGACTT
+TGTATAGTAATGCAAACATTTGGTGAAAACTTTTGTGTTGCTTTCAACTTACATGAATTG
+AATGCCAATCAGAATATTTCTAGGATTACATCAAAATTAGTACATAAATTGTGATAAGCT
+GAGAAAATAACTTATTTTTTCACCAAAACAAGTTACCCACATTGTATTTTTGCATTGCTT
+AATGTATATATAAATGCAAGCCATATACCAATTACTAATAAATGCAATAGAATAGGACAA
+ATTCAAAGCTCTTCTCTCTCTCCAGTTCCAACAGGAAAAAGAAATCCATTTTTATTTTAT
+AACATTGGCTGAGTAAAAAAAAAAAAAGTGAATGAAGTAAAAAGATAGACCTTAATGTTT
+TAATATAACATAATTATGGAGTTCTATTTTTTAAAAAAATTCATAATGCATGGAGTTCAT
+TTTATAAATACATATTAATATCTATAGCATAGTAAAATTAAAATAGAACAAGTATTTATC
+TTGAGAATTATGCTGTCATATTCAAAGTCCATATTGAATTAGAAAATGTTAAGCTCAATC
+TTTCTAGCCATGGAGATTGATAGGTCATCAGATCATCTAGTGTAATCATCTATATGATCA
+GCACCTCTGTTGCCTCGTTCAGCACAACAGATCAACTAGAAGTTACTAGTTTAGGTAACA
+GGTAAAGGGATCTCACTGGAGGAGGACAATCACAACCAAACAAATAAATGAAGACTGTGA
+TGAACCAACCAACACTGACAGCAATCAGTGAAAGTCTGGGATAATTCCCCAAATTCTGAA
+TCCTGGTGTTTTTCTTAGTAAATTGATGTAGTAATTATTGTGGTGACTATGTGGTCTGCG
+TTTTTACTTTTAGTCCAAATTTGCTTCTTTCAGGGAAGTTATGGGCTTGCTACTCTGGAC
+TATGAATACTGAGGCCCTCATGCAGATACAAAGGAATGTCCTGTTATAGTCTGTGATATG
+GTTTGTGGACAGCCTTGCTTGTGGGTGCAGGGAATTAAGAGCACACAAGTACTAATGGAA
+TAAGAAGGTAAGCATGATATACTCTGGAGTTCAATATTCTAACCTTCTTCTTGAAAACAA
+AATTAGATATAAAAGTGGCAGCAACTCTGGTAAAGTCATGGGAAAAGAGTACTGCCAGTG
+ACCCTGTTATTCCAGCAGGATCTCATAGAGCATGCCATTAACCTCAGTCCACAAGAGAGT
+ATATTATACAAGGAAGCAATTAAAAATGGCTGGTGTCTAATCTCTTGTGACTTTTGGGTG
+CTGGATTTTCCATAAAACAAAGGCACATCAATTTCACTGAGGAAAACTCCACCCTTCAGG
+GACTTAGTTTGGACTTGCTCCCATTGATGTGTGGAAGTGAAAAAGTCAGCTCTTTGTTCT
+TGGTGTTTATTGGTTTATCACAGTCATCATTCTCTTATTCAGCAAACGTTTATGCAGAAA
+TGTCTATACATAAGGCTTTGATTTAGGTGTTCAACTACAAGTGAAATAGACATTTTCTTC
+TTTGTTAGAGCTTATTGTCTAGAGGAATATGGAGATAACATACAGGTAAATGATCAAACA
+AAAATATGAAATAACCTGAGAATGATGCTATGATACAATCAAATTAGAAGCTAAGCAAAT
+AATTAGAAGGAAAGAACACATGTGAACAGCTTAGACAGGTCGGAGCTCTCGGAGGAGTTG
+GAATTTGAAGACCTTGAAGGAGCTAGCCATGCAATGTGCAGGGAGAAGGAAGAGAGGCAG
+GCTCAGGGGCTCTCATGGTGTCCTATCAACTTTATGGTGATGTTCACTAAATCTATATAA
+ATTTTCTTGACATCACCAAAGTCTTCAGGTTAACAATATGAACTGTGTTATCCAATTAAT
+TATTTTACCATCATCACAAATAAATATACAAAACTAAATCATTATGTCATCATCCCATGC
+TCGAGAGTGCTCCACCTCAAAACTCAAATTTTCTATGACTAGCTGTGTTTTATTTATTAT
+TCCAGATAGTATATTTCATAAACATACATTGAAAGACACTATTTAGCTTATAAAACAGAA
+CATTAGCAATATTGTTGATGCCCTTTGAGTGCTTCTCCCCAATTTAATTGTCCTTTCTAC
+CCACCGAAGCTATCCATTACTTTGTGCTCTGTACTTGTCATTTTTTTCATTGTTGTTTGT
+CTCCCTAGTTTGTATCCTTAAATGAGATATTGTTTAGTTTGGTTTGTATTCAAAGCTTGG
+TAAATACAAATGTATAGATTCTCCACTGACTTGCTTTATTTTATTGAATTTTATTCAATA
+TTATGCTTCTGAGGGTCTGTTAACTTCTGTAGCTATATTTCATTCAATTTCACTGTTGTG
+CACAGTTCCATTTTAAGAATTTGCCCAAATGGGTATATCTATTTTTCCATTAACAGACAG
+TAGGTGGTTTCCAATTTTTTCTTACAATCAACAATATTACTATGTTCATATTCTTCTTGT
+GAATATGAAAATGGTTTCCAGAGGGTATATATTTAGTAGCTAAATTTCTAGGTCTGTGTT
+AGATCATGTGCAAATTACTAGGTAATATCATCAGGCTTTTCAAAAAGAATGTACCAATCT
+ACATTCCCACAGGCAGATTTCAAATCGTCTACTATTCCACATACCTATCATTTTCATATT
+TTTAAGTTTCTTTCAATATATTAGATATAAACAGGTATCTCATTTTTATTTTAAGTTTGC
+ATTTCTCTGATGACTCTTGATATTGTGAGCATTTTCATTTGTTTATGAGTCATTGCTATG
+TCTTCTATGAAATGTCTGAGCATGTCTTCCGCTATTTCATCTTCTAGACTTATTGTCACT
+TCCTTATTGAGTTTTAAAAGTTTATATATTCTTCATATGATTTAATTTTTGAACAGAAAT
+TTTACTTTGAATGTAACTAGATTTATAAATACTTCCTTTAAAAGTTTTTGCTACTTTGTT
+TGGTTTAGGAAATCTCCATAACTCAGTTAATTTTCTGCTGAAACTTTGAAATTTTGCCTT
+TCACATTTGTCTTTGACTTAGGCAAATTACTCCTTTTTGTGTATTGTGTGGGAGAATCCT
+ATTAAATATATCTTGTCAGAACGACCTGTGGATCAGCTGTGGCTGTGGCAACCACTGCTT
+GTGGAAAGTGGAGGAAAGAGTATGAAGGGTTTTGTATTGTGGTTTGAGTATCAGCTTAGT
+CACAGTAGACTAGAACATCAGGTAAATTGCTAAGGTTTTTGACTCGAATCCCTAGCTCTC
+AGACAGCATCTCTGGACACATACAGGGCCTGGGGAATCTCACTCCCCTTGAAGGGAAGGA
+ACTTAGGCAAAGTCCAGTGCTGTGCAGGTTTCAGGTTTGACCCAGCAGAGTCCCAGTGGT
+GATGGCCACAGGGGTGCTTGCATCACCACACACTTAGTTCCAGGTGGCCCAGCACAGAGA
+GAGAAACTCCATTTGTTTGGGAGAAAGCAACAGAAAGAACAAAAGTCTCTGCTTGGTAGT
+CATGAGAATTATTCTGGATCTTACACAAGATCACCAAGGTGGTACTTCTACAAGTCTGCA
+AAACATATACTTATTGGGTTTGCAGCTTAAGTCTCTTTGAATACCCACAAAGCCTTCCCA
+GGAAGGACAGGCACAAACAAGCTCAGACTGTGAAGACTACAACAAATACCTAACTCATCA
+ATGCCCAGACACAGACAAACATCTACAAGCATCAACACCATTCACAAAAACATGGCCTTG
+CCAAATGAAGTAAATAATGCAGCATGGTCCAATCCTAGAGAAACAGAGATATATGATGTA
+TCAGACAGAGAATTCAAAATAGCTGTTTTGAGAAAATTCAAAGAAATTTAAGATAACACA
+GAAGAAATTCACAATTCTGTCAGAAAAATTTAACAAAAAGATTGAAATAATTTAAAAGAA
+TCACACATTCTAGAACTGAAAATTGCAATTGACATGCTGAAGAATGCATCAGAATCTCTT
+AATAGAGAATTGATCAAGAAAAAAAATTAGCGTGTTTTAAGACAGACTATTTGAAAATAC
+CATTCAGATGAGACAAAATAAAATAATAAAAACAATGAAGCACACCTACAAGATCTAGAA
+AATAGCCTCAAAGGGGTTAATCTAACAGCTCTTGGACATAAAGAGGAGGTAACAAAAATA
+TAGAGGTAGAAAGCTTATTCAAAGGAATAATATCAGAGAACTTCCTAAACCTAGAGAAAG
+ATATCCACATTCAAGTGCCAGAAGGTTATAGAATACCAAACAGATTTAACCCAAAGAAGA
+CTACCTCAAGGCATTTAATAATTAAACTCCCAATGGTCAAAGATAAAGAAAGGACCCTAA
+ACACAGCAAGAAAAAAGAAACAAATAACATACAGTGGAGTTCCAATATGTCTGGCAGCAG
+ACTTTTCAGGGAAACTTTACAGGCCAGCAGGCTAGGAGACAGTGGTGTGACATATTTAAT
+GTGCTGAAGGAAAAAAACTTTTACCCTAGAATCATATATCTGATAAAATATCTCTTAAGT
+ATGAAGAAATAAAGACTTTCCTAGAGAAGCAAAAGCTGAGGGATTTAATCAATCCGAGAC
+CTTTTCTACAAGAAATGCTAAAGCGAGTTCTTCGATCTGAAAGAAAAAGATAATAGTGAG
+CTATAAGAAATCATGGGAACGTATACAACTGACTGGTAATAGTAAGCACACAAAAAAACA
+CAGACTAATATAACACTCTTCTTGTGGTGTGTAAACTATTCTTAAGTAGAAAAACTAAAC
+TATGAACCAATCTAAAATGATAACTACAACAACTTTTTAAAATACAGACAGTACAATAAG
+ACATACAGAGAAACAACAAAAAGTTAAAAAGTAGGAAGATAAAGATAAAGTGTGGAGTTT
+TTATTAGTTTTATTTCTGCATATCAGTTTGTTTATGCAATTAGTGGTAAGTTGTCATCAG
+TTTAAAATAATGGGTTGTATTTGCAACCCTCATGGAAAACTCAAATCAAAAAACATACAA
+CAGATATACAAAAAATAAAAAACAAGAAACTAAATTATATCACCAGAGAAAATCACCTTC
+ACCAAAAGGAAGACAGGAAGAAAGGAAAGAAGGAAGAGAAGGTTGCAAAATAACCAGAAA
+ACAAATAATGAATGAAAGGAGTAAATCTGTATTTATCACTAATAACATTAAAAGTAAATG
+GAATAAACTCTCCGATAAAAATACATAGAATGGCTGAGTGGATAAAAATAAACAAGACCC
+ATTGATCTATTGCCCGCACGAAATGCAGTCCACCTATAAACATGCACATAGACTAAAAAT
+AAAGGGATAGAAAAAGATATTCCATGCCAATGGAAACCAAAAGACAGCAGAAGTAGCTAT
+TCTTATATCAGACAAAATAGACTTCAAGACAAAAACTGTAAGAGACAAAGAAGTTCCTTA
+TATAATGATAAAGTGGTCAATTCAGCAAGAGATATAATGATTGTTTATATATGCACCCAA
+TACTGGAACATCCAAATATATAAAGCAAATATTGTTAGAGCTAAAAAGAGATAGACACCA
+ATACAATAATAGCTGTAGACTGCAACACCTCACCTTAAGCATTGGACAGACCTCCCAGAC
+AGAAAATTAACAAACATCAGATTTAATCTGCACTACTGAACAAATGGACCTAATAGATAT
+TTACAGAACATTTCATTCAATGGTAGAGAATACACATTTTTCTCCTCAGCACATGGAGCA
+TTCTCAAGGACAGACCATATGTTATGTCAAAAAACAAGTCTTAAAACATTCAAAAAATGA
+AACAATATCAAGCATCTTCTCTGGCCACAATAGACTATAACTAGAAATCAATAACAAGAG
+GAATTTTGGAAACTATACACATGGGAACTTAAAAATATGCTCCTGAATGACCAGTTGATC
+ACAGAAGAAATTAAGAAGGAAATTGAAACTTTTCTTAAAACAATGATAATGGAAACACAG
+CCTACCAAAACCTCTGGGATACAGCAAAAGCAGTACTAATAGGGGAGTTTAGAGCTGTAA
+GGGCCTACATCAGAAAAAAAGAAAAACTTTAAATAAATAACCTAATGATGCATCTTAAAG
+AACTGGAAAAGCAAGAGCAAACCAAATCCAAAATTAATAGAAGAAATAAAAAACATGAGA
+GTAGAAATAAATAAGTTTGAAATAAATAAAACAATCCAAAAGATCAATGAAACAAAAAGT
+TTGTTTTTCAAAAAGATAAACAAAACTGAAAAACCATTAGCCAGACTAACAAAGAAAAAA
+AAAAGAGAGAAGACCCAAATAAATAAAATCAGAGGTGAAAAGGAGACATTACAGTTGATA
+CTGCAGAAATTCAAAGGATAATTAGTGGCTACTATGAGCAACTATATGCCAATGAATTGG
+AAATATCAAAAAGGAATGGATAAATTTCCAGATGCATACAACATACCAAGACTGAACCAG
+GAAAAAATCCAAAACCTGAACATACCGATAACAAATAGTGAGATAGACACTCATAAAACA
+TCTACCGGTAAAAAAAAAGCATGGGAACTGATGGTTTCACTGCTGAATTCTACCAAACCT
+TAAAAGAAGAATTAATACCAATCCCACTCAAATTGTTCCAATACAGCAGGAAGAATTACT
+TTCAAACTCATTCTATGAGGCCAGTGTTACCCTGATACCAAAACCAGACAAAAACACATC
+AAAAAAAGAAAACTACAGGTCAATATCCCTGATGAATATTGATGTAAAAATCCTCAACAA
+AATACTAGCATATCAGATTCAACAACACATTAGAAGGATCATTAGTCATGACCAAGTGGG
+ATTTATCCCTGGGATGCAAGAATGGTTCAAAATATGCAAATCAATATCATACATCATATC
+AACAGAATGAAGGACAAAAACCATATGATTATTTTAATCGATTCTGAAAAAGCATTCGAT
+AATGTTCAATATCTCTCCATGGTCAAAACCTAAGAAAACTGAAGATAGAAGGAACATACC
+TCAAAATAATAAAAGCCACATATAACAAACCCACAGCTAGTATCATACTGAATGGGGAAG
+AACTGAAAGCATTTCCTCTAAGATCTGGAACACAATGAGGATGCCAACTTTTACCACTGT
+TATTCAACATAGTACTGGAAGTTCTAAGAGAGCAATCAGATAAGAGAAAGATATAAAGGG
+CATCCAAAATTGGAAAACAGAAATCAAATTATCCTGTTTGCAGATAATATTATCTTACAT
+TTGCAAAATCCTAAAGACTACCAAAAAACTATGAGAACTTATAAACAAATTCAGTAAAGT
+TGCAGGATACAAAGTTCACAAGAATTAGTAGCATTTCTATATGCCAACAGTGAATAGGAA
+AAAGAAATCACAAAAGTAATCCTATTTACAATAGACACAAAATTAAATGCCTAGGAATTA
+ACCAAAAAAGTGAAAGATCTCTACAATGAAAACTATAAAACATTAATAAAATAAATTGAA
+GAGGACCCCAAAAAATGGAAAGGTATTCAATGTTCACGAATTGGAAGAAGCAAAAATTGT
+TAAAATGCTCATACTAGCCAAAGCAACCCACAAGTTCAATGCAATCCGTATCAAAATACC
+AATGACATTCTTCACAGAAATAGAAAAAAAATTCTAAAATTTATATAGAATTACAACAAG
+ACTTGGAATAGTAAAAACTATTCTGAACAAAAAGAGCAAAACTGGAGGAACCACACTACC
+AGACTTCAAATTATACTACAGAGCTATAATAATTAAAACAGCATGGTACTGGCATATAAA
+TAGACACACTGACCAATGAAACAGAATATAAAACCGAAAAGCAAATTCACACACCCACTG
+TGAACTCATTTGCAACAAGAGTGCCAATAACATACCCTGGGGAAAAGACATTCTCTTCAA
+TAAATGGTGCTGGGAAAACTGGATATCGATATGCAGAAGAAAGAAATTAGATCCCTATCT
+CTCCCTTGTACAAAAATTAAATCCAAATGGGTTAAAGACTTAAGCCTAGGACCTCAAACT
+ATGAAACTGCTACAAGAAAACATTGAGGAATCTCTCCACAACATTGATCTGGGCAAAATT
+TTCTTGAGTAATATCCCACAAGCAAAGGCAACCAAAGCAAAAATGGACAAAGAAGATCAC
+ATCCAGTTAACAAGCTTCTGCAGAGCAAAGGAAATAATCAACAAAGTGAAGAGACAACCC
+ACCAAATGGGAGAAAATATTTGAAAACTATCTGTCTGACAAGGAACTAATAACCAGAATA
+TTTAAGAAGCTCAAACAACTCTATAGGAAAAAAAGCTATTAATTCAATTTAAAAATGGGC
+AAGATTTGAATGGATATTCTCAAAAGAAAACACACAAATGGCAAACAGGCATATGAAAAA
+GTGCTCAACATCACTGATCATCACAGAAATGCAAATCAAAACTACAATGAGACATCATCT
+CACTCCAGTTAAAATGGTTTGTATCCAAAAGACAGGCAACAACAAATTCTGGCAAGAATG
+TGGAGAAAAGGGAATCCTCATAAACCTCTGATGAGAATGCAAATTAATATATCCGCTATG
+CAGAAGACTTTGGAGGTTCCTCAAAAAACTAAAAATAGAACTACCATATGATCCAGCAAT
+CCCACCGCTGGGTATATACCCAAAAGAAGGGAAAGAAATATATTGAAGAGATATCTGCAC
+TCCCATGTTTGTTGCAGCACCTTTCCAATAGCCAAGATTTGGAAGCAACCTAGTTGTCAA
+TCAACAGATAAATGGATGAAGAAAATATAGTACTTATACACAGAATACTATTGAGCCATA
+AAAGAGAATGAGATTTAGTCATTTGCAACAACATAGATAGAACTGGAGGTTATTCTGTTA
+AGTGACATAAGCCAGGCATAGAAAGACAAACATCACATGTTCTCACTTATTTGTGGAATC
+TGAAAATCCAAACAATTGAACTCATGGTGATAGAGAATAGAAGGATGGTTAACAGAGGCT
+GAGAATTGTGGTGGTGGTAGGGGTGGATTGGGGATCATTAATAGGTGTAAAAAAATTAGG
+AAGAATAAATAAGAACTAGTATTTGCTAGCACAGCAAGGGACCATGATTAATAATAATTG
+TACATTTTAAAACTAACTAAAAGAGTATGATTGGATTATTTGTAACACAAAGACAGGATA
+AATGCTTGAGGGGATGAATACTCAATGTTCCATGATGTGACTATTACACATTGCATGCCT
+GTACAAAAATACCTCATGTATTCCATTAATATATCCATCTATGTATCCACAAATATTTTT
+GAATCACATTTTCACATAAATACATAAATTTTTATCTATAAATTAAACAGAAATTTATAA
+AACATATTAAAAAAATGGCAGTGTTCCAAAAAAAATTCTGTCAGCTAGATAATTATTATT
+GAGCAGTATGCCCCTTCACACTGGTCAGCAATACCATCCCATTTACATGCCACAGTCCAA
+CATTCGTCTGGGTCTGACCTTGGGCTTTTTTTTTTCTGTCTTATTGTCCACTTTTTCTAC
+TACGTAATCAAAAGAACACTGCCTCAGTTGCTGCATTTTATATTAACTTTTACACCAAAT
+ACAGTCTCATCTATGTTTTTGTGTACATTTTTAAATGAGCTTTTCAAGTTAGAAAAAAAC
+AGTGTTTGCATTCTGATTGGGATATTTCAGACTCTGAGATTTTCAGGAAATTTGACATTA
+TTACAGTTAATGAACTTTGTGTCTCTCTCCAGTCAATTTAGGTCATGTTTAATATCTTCA
+ACAAGGTTTTATCATTTTCTCCATAAGAACTTTGCCTATCTTCATTATGCATATTTAGAG
+ATACTTATGATCATTGATATTGTCATGCAAAGTAGCTTTTTTATTTAATAATGTCCCCAT
+GCTTTTAACAGCATTCAGATATACCATTTGGTGTTTCAGTATTTTATTTTGCTGTTCATG
+TTTTTATTCTGCTTTAATATAAAATACACTTCAAAGTATACCATTTTAATATGTGACAGA
+AAACATTTATTTTAAACATGTTCTCAAAATCACTCAAAATCCTAAAACAGGAGCAACATG
+GAGACTCTAGGCTTTTTCTCTGAGTTAATTATGCATTTGCAGGAGATCTTCTCTCATAGA
+CCTCTACATTTTTCCCTCCGAATTTGTTTTTTTGGCTTAAGCAATAGAAATCTATTTCTC
+ACACTTCTGGAGGCTGGGAAGTCCAAGATCAAAGCGCTGGCCAATTTGCCTGAAGGCCTT
+CTTCCTGACTTGCAGAGAGTCAGTCTCCTTCTCCCCATGTTCTCATGTGGCAGAGAGATC
+TGTCTCTCTTCCTCTTTTTTTTTTTTTTTTGTGTGTTTTTAGTAGAGATGGGGTTTCACC
+GTGTTGGCAAGACTGGTCTAAAACTACTGACCTCCAGTGATCCTCCTGCCTTGGCCTCCC
+AAAGTGATTGGATATCTTTCTCTTTTTTTAAAAAAAAAATTTTATTTCCATAGGTTTTTG
+GGGAACAGGTGGTATTTCATTACGTAAGTTCTTTAGTGGTGATTTGTGAGATCGTGGTAC
+ACTCATCACCTGAATAGTATACATTGAACCCATTTCATAGTCTTTTATCCCTTAGCCGCT
+CCCCATGCTTTCCCCTGAGTCCCCAAAGTCCACTGTGTCATTCTTATGCCTTTGCATCCT
+TATAGCTTAGCTCCTGCTTACCACTGAGAACATACGATGTTTGGTTTTCCATTCCTGAGT
+TACTTCACTTAGGTTAATAGTCTCCAATCCCATCCAGCGTGCTGCAAATTAATTAATTTC
+TTTTTATGGCTGAGTAGTATTCGATCATATATCACAGCTTCTTTATCCACTCATTGATTG
+ATGGGCATTTGGGTTGGTTCCATGTTTTTGCTATCGCGAATCGTGCTGCTATAACCATGT
+GTGTGCAAATATCTTTTTTCTATAATGACTTCTTTTCCTCTGGGTACATACCCAATAGAG
+GGATTGCTGGATCAAATGGTAGGTCTACTTTCAGTTCTTTAAGGAATCTACACACTATTT
+CCCATAGTGGTTGTACTAGTTTACATTCCCACCAGCAGTGTAGAAGTCTTCTCTTTTCAC
+CACATCCATGCCAAAATCTATTATTTTTTTATTATGGCCATTCTTGCAGGAGTAAGGTGG
+TATCACATTGTGGTTTTGATTTGCATTTCCCTGATCTTTAGTGATGCTAAGCATTTTTTC
+ATATGTTTGTTGGCCATTTGTATATCCTCTTTTGCTTATTGTCTATTCATGTCCTTAGCC
+CACTTTTTGATGGGATATTTTTTTCTTGCTAATTTGTTTGAGTACGTTGTAGATTCTGGA
+TATCAGTCGTTTGTCAGATGTATAGATTGTGAAGATTTTATCCCACTCTGTGGGTTGTCT
+GTTTACTCTGCTGTTTCTTTTGCTGTGTAGAAACTCTTTAGTTTAATTAAGTTCCAGCTA
+TTTATATTTGTTTTTATTGCACTTGCTTTTGGGTTCTTCATCATGAAATCCTTGCCTAAG
+CCAATGACTAGAAGGATTTTTCTGATGTTATCTTCTAGAATTTTTATAGCTTCATGTCTT
+AGATTTAAGTCTTTGATCCATCTTGAGTTGATTTTTATATAAGGTGAGAGATGAGGATCC
+AGTTTCATTCTCCTACTTGTTTGCCAATTATCTCAGCACCATTTGTTGAATAGGGTGCCC
+TTTCCCCACTTTATGTTTTTGTTTGCTTTGTTGAAGATCAGTTGGCTATAAGTATTTGAC
+TTTATTTCTGGGTTATCTATTCTGTTTCATTGGTCTATGTGGCTATTTTTATACTAGTAC
+CATGTTGTTTTGGTGACTATGGCCTTATAGCATAGTTTGAAATCAGGTAATGTGATGCTT
+CCAGATTTGTTCTTTGTGCTTAGTCTTGTTTTGGCTGTGTGGGCTCTTTTTTGGTTCTAT
+ATGAGTTTTAGGATTTTTTTTTCTAGTTCTGTGAAGAATGATGGTGGTATCTTGATGAGA
+ATTGCATGGAATTTGTAGACTGCTTTTGGCAGTATGCTTATTTTCACAGTATTGATTCTA
+CCCATCTATGAGCATCAGATGTGTTTCCATTTGTTTGTGTCATCTATGATTTCTTTCAGC
+AATGTTCTGTAGTTTTCTTTGTAGAGGTCTTTCACCTCCTTGGTTAGATATATTTCTAAG
+TATTTTATTTTATTTTATTTTTTGCTGCTATTAGAAAAGGAGTTGAGTTCTTGATTTGAT
+TCTCAGCTTGGTTGCTGTTAGTGTAAAGCAGAGCTACTGATTTGCATATATTAATTTTGT
+ATCCTGAAACTTTGCTGGATTCATTTATCAGTTCTAGGAGCTTTTTGGAGGAGTCTTTAG
+GGTTTACCAGGTATAGAATTATATTATCCGCAAACAGCGACAGTTTGTCTCCCTCTTTAC
+CAATCCGATTGGTCTGCCTATGACTTCCAGTACTTCACTGAATAGAACTGGTGACAGTGG
+GCATGTCTTGTTCCAGTTCTCAAAGGGAATGCTTTCAACTTTTCCCCATTCAGTATTATG
+TTGGCTGTGGGTTCGCCATAGATGGCTTTTATTGCCTTGAGGTATGTCTCTTGTATTCCA
+ATTTTACTGAGAGTTTTCATCATAAATGGATGCTGGATTTTGTTGAATGTTTTTTCTGTG
+TCTATTGAGATGATCATGTGATTTTTGTTTTTAATTGTGTTTATGTGGTGTATCACATTT
+ATTGACTTGGATATGTTAAACTACCCCTGCATCCCTGGTATGAAACCCACTTGATCATAG
+TGGATTATTTTTTTTTGATACGTTGTTAGATTTGGTTAGCTAGCATTTTGTTAAGGAATT
+TTTCACCTATGTTCATCAGGGATATTGGTCTGTAGTTTTCATTTTTGGTTATGTCCTTTC
+CTGGTTTTGGTATTAGGGTGATACTGGCTTCATAGAATGACTTAGGGAGGATCCCCTCTT
+TCTCTATCTTGTGTAATAGTGTCAATAAGATTGGTACCAATTCTTCTTCGAATGTCTGGT
+AGAATTCAGCTGTGAATCTGTCTGATCTTGGACTTTTTTTGTTTTTGTTGTTGGTAATCT
+TTTAACTACCATTTCAATCTCACCACTTGTTATTGGTCTGTTTAGGGTATCTAATTCTTT
+CTGATTTAAGATAGGAAGGTTTTATCTTTCCAGGAATTTATCCATCTCCTCTAGGTTTTC
+TAGTTTATGTGCGTAAAGGTGTTCATAGTAGCCTTGAATGATCTTTTATATTTCTATGGT
+GTCACATAATATTTTCTGTTTCATTTGTAATTGAGCTGATTTGGATTTTCTCTCTTCTGT
+GCTTGGTTAATCTTGCCAATGGTCAATCCTTATTTATCTTTTCAAAGAACCAGCTTTCTG
+TTTCATTTATCTTTCGCATTTTTTTGTTTCAATTTCATTAGTCCTGACCTGATCTTGGTT
+ATTTCCTTTCTTTTGCTGGGTTTGGGTTTGGTTTGTTCTTGTTTCTCTACTTCCTTGAGG
+TGTGACCTTAGATTATCTATTTGTGCTTTTTTATACTTTCTGATGTCGGCATTTAGGGCT
+ATAAAATTTCCTCTTAGCACTGCCTTTGCTGTGTCCCAGATATTTTGATAGGTTGTGTCA
+CTATTGTCTTTCAGTTCAAAGAATTTTTTAATTGACATCTTGATTTCATTGTTGACCCAA
+TGATCATTCAGGAGCAGGTTATTTAATCTACATATATTTGCATGGTTTTGAAGGTTCCTT
+TTGGCATTGATTTCCAGTTTTATTCCACTGTGGTCTGAAAGAGTACTTGATATAATTTCA
+GTTTTCTTAAATGTATTGAGACTTGTTTTGTGGCCTATCATATAGGCTGTCTTGGAGAAA
+ATTCCATGCACTGATGAGTAGAATGTATATTCTGCAGTTGTTGGGTAGAATGCTCTGTAA
+ATATCTAGTAAGTCCATTTGTTCCAGGGCATAGTTTAAATCGATTGTTTCTTTGTTGACT
+TTCTGTCTTGATGATCGGTCTAGTGCTATCAGTGGAGGATTGGAGTCCCCCACTATTATT
+ATGTTGCTGTTCATCTCATTTCTTAGGTCTAGTAGTAATTGTTTTATAAATTTTGGAGCT
+CCAGACTTAGGTGCATATATAGTTAGGATTGTGATATTTTCCTGTTGGACAAGGACATTT
+ATCATTATATAATGTCCCTCTCAGTCTTTTTTAACTGCTGTTGCTTTATAGTTTATCTGT
+TATCATAGAATATCTTTTTCCACCCATTTACCTTAAGTTTATGTGAGTCCTTATGTGTTA
+GTTGAGTCTCTTGAAGCAGTGGATAGTTGGTTGATGAATTCTTATCCATTCTGCAATTCT
+GTGCCTTTTAAGTGGAGCATTAAGGCCATCTACATTCAATATTGAGCACTGAGATGTTAG
+GTACTATTCCATTCATTGTGCTATTTGTTGCCTGTATACCTTGTTTGTTTTTTATTTATT
+TTTGTTTTATAGGTCCTGTGAGATTTATGCTTTAAAGAGGTTCTGTTTTGATGTGTTTTC
+AGGATTTGTTTCAAGATTTGGATCTCCTTTTAGCAGTTCTTGTAATGCTTGTAATGCAGT
+TCTTGTAATGGTCGCGGTGAATTCTCTCAGTATTTCTCCGAAAAAGACTATCTTTCCTTC
+ATTTATGAAGCTTAGTTTTGCTGGATACAAAATTCTTGGCTGATAATTGCTTTGTTTAAG
+GAGGCTGAAGATAGGGATCCAATCCCTTCTAGATTGTCAGGTTTCTGCTGAAAAATCTGC
+TGTTGATCTGATAGGTTTGTCTTTTTTTTTTTTTTTTTTTTTTAGGTTTTATCAAGTTAC
+CTGGTGCTTTTGCCTCACAATTCTTAAGATTCTTTCCTTTGTCTTAACTTTAGATAACTT
+GGTGAAATGTGCCTAGGTGATTATCTTTTTGCAATGAATTTCCCAGGTGTTCTTTGAGCT
+TCTTGAATTTGGAAGTCCAGGTCTCTAGCAAGGCCAAGGAAGTTTTCCTCGAATGTTCCC
+TCAAACACGTTTTCCAAACTTTTAGATCTCTCTTCTTCCTCAGGAACACCAATTATTCTT
+AGGTTTGGTCATTTAACATAATCCCAAACTTCCCTGATACTTTGCTCATTTTTTCTTATT
+TTTTTTATTTGTCTTTGTCAGATTGGGTTAATTTAAAAACCTTGTCTTCGAGCTCTAAAG
+TTCTTTCTTCTGCATGTTCAATTCTATTGCTGAGACTTTCCAGAACACTTTGCATTTCTC
+TAAGTGCATCCATCATTTCCTGAAATTTTGATTGTTTTTATTTATGCTACCTATTTCACT
+GAAGATTTCTCCCCTCATTTCTTGTATCATTTTTTTGATTTCCTTAACTTGGACATCATC
+TTTCTTTGTGCCTTCTTGATTAGCTTAATAACTGACCTTCTGAATTATTTTTCAGGTAAA
+TCAAAGATTTCTTTTTAGTTTGGATCCATTGCTGGTGAGCTAGTGTGATTTTTTGGGTGT
+GTCAAAGAACTGTATTTTGTCATATTACCAGAATTCTTTTTCTGGTTCCTTCTCATTTGG
+GTAGGCTATGCCAGAGGGAAGGTCTACGGCTTAAGGCTGCTATTTGGATTCTCTTGTCCC
+ATAGGGTGTTCCCTTGATGTAGTACTCGCACCCTTTTCCTAAGGATGTGGCTTCTTGAGA
+GTGGAGCTGTAGAGATTGTTATCTCTTTTCTGGATCTAGCCACCCAATAGGTCTACCAGG
+CTCTAGGCTGGTACTGGGGGTTGTCTGTACAGTCCTGTGATGTGAACCATCTCCAGGTCT
+CTCAGCCCAGGATACCAGCACCTGCTCTGGCGTAGGTTGCAAGGGGGTGAATTGTACTCT
+GTGAGGGTCCTTAGTTTTGGTTGTTTAATGCACTATTTTTGTGCTGGTTGGCCTCCTGCC
+AGGAGGTGGCGCTTTCAAGAGCCATCTGTTGTGGTAGTGTAGGGATGATCAGGCAGTGTG
+TTGGGGCCCTAGAACTCCAAAGAGTATATGCCCTTTGTCTTCAGCCACCAGGGTGGGTAG
+GGAAGGACCCTCAGATGGAGGCAGGGCTAGGCATGTCTGAACTCAGACTCTCCTTGGGTG
+GGTCTTTTTTGCTGCAGCTGCTGTGGGGATGAGGATGTGGTTCCCAGCTCAATGGACTTA
+TGATCCCAGGAGGATTGTGGCTGCCTTTGCCATGTCATGCAGGTTGTCAGGGAAGTGGGG
+GAAAGCCAGAAGTCACAGGCTTCATCCAGCTTCCACACAACCCCAGAGGCCAGCCTCACT
+CCCACCATGCCCCCACCAAGAGGGCTGAGTCTGTTTCCAGGCAGTGGGTGAGCAGGGCTG
+AGGATTTCACCAGCCTCCCAGCTGTGAAAGGAAGCAGGCCTTTTGTGCCTCCCTGCGTGT
+GGAGTCAGCACACCAGATTCACCCCCTCCCCGAGTTCTGGCCAGGAGACTTAGCATTCAG
+TTGGAATTGTTACAAAGTTCAGTTCGGTTGGAGGTGTCCTTCTCCCTGTGGTCTTTTCCC
+CATACCTCTGGCAGCCATCCCCAAGGACCCCTATAAGGCAAGGCAGAAATGACTTCCCAG
+AGGACCCAGAGAGCCCACAGGGCTTTTCCTGCTGCTTCCTCTACCTCTTGATTTCTTAAG
+TATTTTTTTGTTATTCCTATTTTAAGCAGTATTTTTCTTTTAATAGCTTGAGTAGAAATG
+AATTTGATTGCTTTGTATCAACCTTACAGTCAGTAAATTTGCTATTTGAATAATTTTAGT
+AATTTGTAAGTCTTATGGCATTTGTCTTTGAAATGTCCTCACATCTGTCCCATCCTTCTG
+CCTAACTAGCTTGCACACTACCTGGTACTCCCTTTCACTAGGCCCTCATTCACATCAGCC
+CTGCATTTCCAGAAGAGCTTCTCAAATCTATTCATTGTCTAGTAATTTACCAAACTCTAA
+TTTAGTCTTAAAGAGCATTTCTTAGTGAATGGAAATGGGCCTGGTTCCTAGATAAAAATA
+AAAGTGTTCAAAATCTAAGATCCGTATCTTATTCGATTTTCCTGCCTTTCATTTAAATTC
+CTCTAAAAAAATTTCATACTATATATTTATAATCTCAATTTCCAACCTGCTATCTTCCAT
+TGCTGTCCAACAACCATCCTTTGCTATCTTCCTCCCTTTACTCCAACCTGCTACATATCT
+CTCTAAATATTTCTGTTGTAAGCATTAGTCTCTGCTTTCTAAAGTTTTTCTTATTACCCA
+TATCAAAAACTCCTCTCACCCTCAAAACAGTAGTTAAGCCCCTCTTCTATTTGAAGATCT
+TCTGTGTTCCAATCCACTTTGATAGCTCACTGCCCTTAGTAATTACTCTTTGCATTTTTA
+TATTGTTAGATTGGTTTTTTTTATGTTTTTACTTTTCATCTGTCAATGATAATTTACTGA
+ATGTCTCACATGTGTCAGGCACTGTGTCCCGCAGCAAAGCCTCTTTCATAGGTTGCAAAT
+ATGTCACTAAGTATCTCAAAAATAGCCTAAAGTTAACCTCAGCAATTATAGCTGTTCAAT
+CAATATCTCTTTATTAATTTCCCTTTTTACACAATTTCTTTCAGAGCAATTCTGCACATG
+ATAAACATTTAATGTACATATTTGTTTAATACAAATTAATGAATACATTTTATTAAGAAA
+ATAAGACATTCTCCTGAAGGCAAAGCGAGTTGTATTTTTTCCAATGTAACTTGGGAAGTT
+CTGGTGGCTATGACAGGATTTCTTTGGGGAAAAAAAAGTATATGATGTGCTGCAAATTCC
+AGAATCCTGATATATATTTTCCCTGGTTTGCCTAATTTCTATTAAAATAAACTGTCTTAT
+TCCAAATCAACTTAACATAATTTAGGATAAATCACTGTAACTTTGTTTGATGTTAGCATT
+AAGTGGCCTATGTTATCACTTCATTATAAGGTATCTTGTGGATTTCTCTCTCCAAGTTTT
+ATCAAGAAGGAGGATATAAGCCTGCGATTGTCAAACACCTTGTCTGTAAAAGAATTTTTT
+AATTTTGCATTTTACAGAGAACCATTTAGAAAGTACAAGTTCTACAACCCAACTATTTAC
+TCAAGAAACAATTAATTAGCTTTCAATGACCTTCATTAATGATCGTAGTATTTCTAATTT
+CACCTACTGTTTAACCTTTTGAATTTCAGTCAAGACAAACAGCTCCACATGATACAACAC
+TTAATCAGAATGAATGCCTCAAATGGAAAAAGACTTTTGTAATCTCAAGTATTAACATTA
+ATAATACAATTGAATGACAAATATTTGCACAAATAAAGGAACAATAATCTATATTTTCTG
+TCCATTTTATTTCTGGGAAGTAGTGGATGCCAAGAATGTATGATTCTAATTATAGATTCC
+ATCATTCCAGAAAATATGGATATAGATAATTAAGCTCCATAGAAATACTCTTACATGTAT
+TGAAAACTTATAAATAATTAGTTTATACTCTCTTAATAGCTTCCTATGAGCTACATTTAT
+TTCTATAGTAATGGCTATGATATTTCATCATATTTTTAGCCAGTGATATAATTTCTTTTA
+CTATGACAATAGTGAATTTTTTCTGCCATTATCCCTGCACATTTTAAAAACCTTTCTAAA
+ACCGATATGAAAGCTTCAATAAAGCCTTTTTTTTCCCTTTATTTTATATTTTCCAGAAAG
+GTAAATAATGACTTTCAAATAATTTTTAAAAATTCTTTTTAAGGTTTCTTTTAAAATTTA
+AAAGGATTTCCTTTTTCCTTTTTAGTTTTTTTGTTTTAAAGACTCATTTAAAATGACTTT
+ATAATATCACCACAGGGACAATAATGCTAAAATAACAGAGCTAGACTCTTCTTCTTCCAC
+TTTGTGAATAATGGAGGGATCAAAGTCATTCATACCCAGATTTCCTTTCCTAAGCTATAC
+AACGTTACAAAACAAACTAAACACTGAGATTACTTGTCTTATTATCTTATTTAAGTAAAA
+GGCTATTACTCATTGTGACTAGAATTGTAACAATTAGACTTATTCTCTGAATGCATTAAA
+ATAAATTTCTATAATTAAAACAAGTATACTATTTCTATAGCAAATGTGGAAAGTATGCCT
+CTATCTTCACTTAAATTCAGAATAATTTTAGTAACCCCTATTTAAATAAATGCAGGTTAA
+TAAATCAAAATACCATTAACTGGGTAGCTTGTAAACAACAGAAATTCTTTTGTTACAGTT
+CTAGACACTGAGAAGTTCAAGATCAAAATACTAGCAGATTCAGTGTCTGGCAAGGACTCA
+GTTTCTTATAGATAGCCCCTTCTCACTGAGTTCTCACATGGGGGAAGAGGCAAAGCAGAT
+CCCTGGGGACACTTTGGGCAACTAATCCCCTTCATGAGGGGTTTACCCAAAAACCTTACT
+TCTGATTACCTTTCAAAGACTTCACCTTCCCATTACAAAGATGCTGGGGATTAGGATCCT
+CATATAAATTTAGGGGGGATATAAACTTTCAAATCGTATCAACCCTATCCTTGCTTTTTT
+AGCACTTCAGAAAGCAGTAATATTAAGGCACATTTTCCATAGGTGCAGAATCTCCATTAT
+ATGATTATATATATGTGTGTGTGTACATATATATATTTACATTTACTTCTGTCAAAGTTT
+TTTTTTAATACTTTAAGTTTTAGGGTACATGTGCACCATGTGCAGGTTTGTTACATATGT
+ATACATGCGCCATGTTGGTGTGCTGCACCCATTAACGCGTCATTTACATTAGGCATATCT
+CCTAATGCTATCCCTCCCCGCTCCCCCCACCCCACAACAGGCCCCGGTGTGTGATGTTCC
+CCTTCCTGTGAACAATGAGTACACATGGACACACGATAAAGCCTTTTTGAGAAATGCTGA
+CAGAAACAAAGTTAGAACAAATGTGAAACAAAAAGTTTCATCAGAGATTTTAGTATCTTA
+ACATGCCTTACAAAAGTTCGGGAGGGGCAATAATATGTATGAAACTTCCTAAAAATCTTT
+AACCATGGAACCCTTCTTTTTTCAACTTTCCCATAGGACTGAAGACATGTTTTGAAATAC
+ATTGGTAGAGTGAAAATGATTCATTAAGATTACATTTGAATCCCAATTTCTCTCAGTTCT
+GCCTCTGTTCGTTTTTGTGTTTTTTTTTTTTTTTTGCCTTGATATCATCATATGTAAGCA
+GGAAGTATTATTGACCTAATGGGGCATTGTATAAATGCAATAAGCGATTTCAATTGACTT
+AATTCAACAAACGTTTACCTAGGTTCTAGTAAATGATCAGTATTTAGTTAGGAGCTGGAG
+ATAAAGAAACTAATAAAACATAACCCCTGACCTCAAAGAGTTATTGTTTTAAAATTCATC
+GGCCATTTGCTGCCGTGGGAATTTTCTCTGGCCACATTCTTCTTTGGTTCCCATTTACTA
+CACGTTTTCTTTGCATTTTTCACTCTTCTCTGGCCGTCAGCTGCAGACTGTTATAGTCCT
+AACCAGAGTAATTTAACCTTCCATTTCCCCAAACCAGCTATCCTTGAAAGTCCAAAAACT
+CATAGATGGCAAACAATAAGCCATATATGCTGGATATCTGTCCTTACAAATACAAAAACA
+ATAAAATGATTGAAATGAAAGATTTTTCTTGAACACACACCAGATCAAATTCTTAACACT
+TCTCTCATCCAGACGTCTCATTCACGAGAGAAACAACGGAAACATATAGTGTCCTGAGGG
+CTCTGTGGTCATCAAGAAAGGTGATTGTTATTATTATTAATTGTGTACACTTTCATTTAT
+TCTTATACAAAATGAAATCTTCAACCAAATACTACACATACAGAGGTTAGACCTCTTATC
+TCTAATAATCAGCATTTGTTGCCATCACTATTGGGAGTACACTCAATTGAAGAAAGGAAA
+GAAAGGTAGGCATATAACCGTGAATGAACAAAACAAACATGTTCTTATGAACATTGAATG
+TTTCTGGCTGAGTGCAATGGCTCATGCCTGTAATCCCAGCACTTTGGGAGGTCAAGGCAG
+GTGGCTCATTTAAGGTCAGTAGTTCGAGACCAGCAAGGCCCACATAGTGAAATCCCGTCT
+CTACTAAAAATACAAAAATTAGCTGGGTGGTAGTAGCACACACCTGTAATCCCAGCTACT
+CGGGAGGCTGAGGCAGGAGAATCGCTTGAGCCTGGGAGATGGAGGTTGCAGTGAGCTGAG
+TTCACACCACTGCACTCCAGCGAGGGTGACAGAGAGAGACCCTATCTCAAAAAACAAAAC
+AAAGCAAAACAAAAAATAACAAAAAATTAAATGTTTCTCAGCTAACCAAATTAGAATGTC
+TTCAGCTGAAGAAATAATAATTTATTCCAATTCAAAATAAATTTTTGACTACTACATCAA
+AAAAGAGGCAGTTAAAAATATACAAAAATGAAAACACAACCTCAATTTAAATTTTGCTGA
+AGCAATAATCTCAACTTTTAAAATACAAGCTTAAATTTTATACTGATAAATAGTTAACTA
+TTTATTGAAGCAATGCTCTCTGTTTAGAATTGTCAAATGATTTTTCTATTTTGTTTGCTT
+TGTATTTGAGAAAAAACCTTAGATTAGAAGCTTGAAGGTACAGATTACAATCTGCAGAAT
+GTAAACAGAGTAAATTCTGCAAAAAACAGCTCAAAGTAGAATGCCAGATTCTCTGGAGCA
+CTTGGAAAATTCTGACTACCTCAAGTAATTCCAGAGGATTCTTCCTTACTAAGTTCACTT
+GAATTTTTCATAGAAGACATTCATCTACCTGGTCAGAACACGAGCCCATAATTTCTGAAA
+AAGCATTATTAGTGTTTTGTAGATATCCAGAAATATTCATATTTACAAATATTTACAAAT
+ATCCAGAAATATGAATATTTCTGGATATCTACTCTCTCTTGCTTCACACACCCAATGTTG
+TGTTATTCTGTTTTGTGATTCCAGAATGAGATTAGATAATCTAATCAGGCATCATGTAAA
+AATTAAAGATTAATAGGGTCCCCTTTTCTTCCAACCTTATATCTTGGTGTAATGCTGATT
+GCCTCTTGATATGCTTGGCTGTGTGTCCCCATCCAGATCTCATCTTGAACTGGAATCCCC
+ACATGTCAAGGGAGGGAGGTGATTGAATCATGGGTGTTGTTTTCCCCATGCTGTCCTTGT
+GATAGTGAGTGAGTTCCCATAAGGTCTGCTGGTTTTCTAAGTGTTTGGCAGTTCCTCCTT
+CACATGCTCACACTATCTCTTGCTGCCTTGTGAAGAAGGTGCCTGGTTCGCCTTCCACCA
+TGATTGTAAGTTTCCTGAGGCTTCCCCAGCCATGTGGAACTGTGAGTCAATTGAATCTCC
+TTTGTTTATAAATTACCCGGTCTCAGATAATGTCTTCATAGCAGTGAGAAAATGGGCTAA
+TATACCTCTTATTAACATACATAATATACCTCTTATTAACATACATAAGATAATATACCT
+CTTATTAATATACATAAGACAACCTCTTATCTACATAAGATACTACTGACAAATAAGACA
+GTTTTCAGGGTTTATCTTTCTTTGATAGAGAGGAGAGTTTAGAAAAGTAAATGTAATAAA
+GATCATGGGTAAACACATTCTGATATGTTACATAGGTATGATGTAGAGTTACCAGAACAG
+TTCACAAATATTATCAAATACTTTTCTTGATTATTTTTTGTGCCCAAGAAAACATCATAG
+TCATTTTCTTTAAAATTACTTTATCTTCTTCTAGGGAACCTTTTATTTTTTTTAACTGTA
+CAATCACCAAAATAAAATTTCTAGATTTAGGTTCTTACTGATGAGATTAGTAAAATGGCT
+AAAGCTTTACGTACATTTACCCTAAGAGGGTACTATATCTTTTTCCAAAGAAAGAGGACC
+TGCCTGCCTAATAATTATACCCATGTTTCAGAGGCAGCTAAACAGAAGAAGGAAATGAGT
+GTTCCATCCCTGCACCCTCCCTCAGGGCAGTGAGAGAGTCGAAGGTCAGTTTTCTTCTTG
+ATGGTCCCTTCTCAAAACTTGCCTTGAACTTTGAATTATGACGTGTGTTAACTATCACTT
+CTGCCTCCAAAGTACTTCAGGTCAGTAGTCTGTTAAGATACTGCTTGCTATTAGACTATG
+AATTTAAACATAACAATACATTCCACAAATGATAATATTCTGTCACTTTTGTATACCCTT
+TATGTGCTTATCAACAATTGTAAAAACTGAACACATAATGCATATATCTAGTTCTTCATC
+TTTTTTGGGGGGAGTGAAGTCTTTTCAGCACACATAGATGAAAAATGACGTAAGGGAAAA
+CTCCACTCACTTCTTTTGTGTATGCAGGATCCAAAAGTAAACTATAATCCCCATTCCAGG
+CTGCAGTGTATATTTTACTCATGTGTCTAGATAAGTGCACTGTATATGTTATCCCATATA
+ACACAGAAAATATATCACTGCAAAGCTTTAAAAAGTCATTCTGTCATTTTGAATCAAAAG
+TTGGGGGAGCAGATGGGTAACTAGCTTGGAGGAGAGAGACGGGGTTACTATTGGCCAAAT
+GCAAGAGGAAGTATGAGAGTCTAATGATGAGGGCATTCTACTGCTAAGCATGTACAAAAT
+TTAGTTTTGGTAATAACTTTTCTACTCGGCGTGCATTTTATAGCTTGGGGTTATCTGCTG
+ACAATGTAAGAATTGAACATCAAGTGGAAGCTCTAAGGAATCAGAGTGGATATTTTGAAA
+GTTGCTAACAGAAGTAAATATAATTTTGAGTAAGAACATAGGTGTTTATCCAGCACAGAG
+AGCGCATGATGTGTTGGATTGGAAGTTACCCTCTGTATTATCAAGGCTGTCCTCAGTAGT
+TTCTATCTGTACAGTGTTTGACATCAAGATTACCATGTGTTCTTCACAGCCAGCTAGTGA
+GTAGGTTAATAATTTTTGTGCTGTTGTATAAATGGTCCAACTGAAACAGATAGGTTCTAC
+AAACCTTGGAACAAATACAGAATGGAGTGTGTTATTTAAAATATGTCAAAAGCTATATGA
+GAAGCTATATTATTATAAGTATATAAAGTACCAAATAAGGTTAAGTAGATATCCTCTTAA
+TTTTGAGGTTCCGTTTAATCAAGATGGAAATTCAATCAGTAATAGAATGTCGGCGTTTAA
+GATTTTTTTTTTGGATTAATTTAACTAAAGTAGTTGTGTAAGCTCCATAAATTAAATTTA
+TGATGATGTGGGTCAAATGAAAATATGTGACTTTACGGTAAAGCTGTAATCATAAAAAGG
+TGAACATTGCCTATGTTGTCTTCCAACTGAAATAAATTGGTTACCTAAAAATCTCTTCCC
+AATCCTTCTGACTTCAGCTCAGTCATATAAGAGCTCAGAAAGCAACAACTCCATTTTTAC
+AATAAGAAAAAAAAGATTAACTTAAAAAATCAATGACTTTTTAAGACTCATCTGAGAATT
+AAGGTCACATGGCAAACTGCTACCCCAAATTCTGTAGACAAATGAATGTAGACAATCACA
+GCACAGAGCAACTGACTTGGAGCAGAAACCACTGCACCCAGACACTGGCAGGAACACTCG
+CCTTGTAATTTTGATATTTATTTCCTGAGGCTGAGTGTGGATTAGATTGAGAAAGAAAAA
+CCCTGGATGGTTTCCATCTTATGGGGACCCCACACTTTTATAAATTTTACCTCCAGGAAT
+TCTACAATATTCTCATGGTAAAGAGTTAAAAAAAAAAAAAATCCCTTCTTGGCTCTGGCA
+GGAGGAGGTGAAAGTGGCCATCTGGAAATACACATTCCATAATGAAGGCCTGCTCTCCAG
+AGGAAGGGCTATTACCCAACTCCAGGCCACTCTAGAGTCACCTAGTGTGAGAAAATCAGG
+GAGAAAAGTGTTAAATATACTTGTAAAGGTCATACACCAGGCCCGAAGCCTACTAAAAGA
+CAGATTTAATCCTAAAATTACTTAACACTTAAAGCTCCTTCACCTCATCCTTTCCTTACC
+ACTACACCAACTAGCTCCAGTCTGATACCAGTGGATACAGATGAAAGAACTGTAAGACAC
+AGACTCCAAGAAGTTCTTGGGGGAAACTCAAAGACAACAGGAGAGACAAAAACAAGGACA
+CTAGAGGAATTTGCAGATCCTAGAACCTACAGCTATTGGAAATACTATGCATAGCCAAGC
+TCCTACCCCAACAAACTTAAAAACTCACATTGAAAGCCTATTTTACCCTATTCCTGTAAC
+TCAGTATGTCACGTCCAACTTCCAAAAAAATTACAAGGATAGGCTAACAGGGAAGAGAAA
+ACACAATCTGATGAGACAAAGCAAACCTCAGAATCAGACTCAAATATAATACCAAATTTG
+GAATTATCGAATAAGGATTTAAGAGAACTATAATTAATATAATAAAAATTCTAATAGAAA
+AAGCAGAACAAATGGATAATATAAGCAGAAAGAATGAAACATTAAGAAAGAATCAAAAGG
+AAATGCTGGAAATACAAAACACAGTTACAAATGAAGAATGTCTTTGGATGGACCTATCAG
+GAAAATACGTGAGCTTGAAGCAATGTCAACAAAAATTTCACAAGCTGAAATAGAAAGAGA
+AAAACATAATGAATCAATAGAGGATCCAAGAACTGCGAGACAATTTCCAAAGGTCTAATA
+TACCTTTAGAAATTGGAATACCAGAGGGAAAAGAAAGAATAGAGCACAAGGAATATTTGA
+AGTAATAATGGCTGAAAACTTTCAAAAGTTAATGACATACACTAATTCACAGACTCAGGA
+AGTTCAGACAACACCACACAGAATAATTCCCCCCCAAAAATCTACAATTAGGCATGCCAT
+ATCCTACTGTGGAAGCCCAACATTGTATTCATTGTATTTCATTTGAAATACAATGAAAAA
+AAGAGAGAAAAAAATGCCTTACTAACAAAGAAAAGAGATGAGAAATATTGTCTACTCATG
+AGAAACCACGCAAACAAGGAGCTAATTTAAAAAAAAAACAAACAAACCTAGAATTCTAAA
+ACCAGCAAAATTATCCTTCAAAAGTGAAAGAGAAATACCTCTTGGAAAAACAAAAAGTAA
+GAAATTCATTGTAAGCAAACCAGCCCTGTAAGATGTTAAAGAAGTTCTGCAAGAAGGAAA
+GTGATATGGGTCATAAGCTTAGATCTACACAAATAAAGAAAAATATTTAGGAAAAGAATT
+ACGGAAGGTAAATAATTTACTTTTTAAATTATCATTTGATATAGTAGATAACTGTTCAAA
+GTAATCATGGTACTAATGCATTATGTAATTATAGTATGTGATAAGTGAAATGACTCCTAA
+GAATAACATAAGAAATAGAGGGAAGAATTGAAAATACTATGTTTTAAGTTATCTGTACAA
+CCCATGAAGTGGTATAGTGGTATTTGAATGTGAAGTTGGATTAGTTAATAGTATACTGCA
+AGATGTAGGGCAAAATACAATAAAATAATACGCAAAGAGAAGAGAGAAAATAGAATCATA
+AAGTGCTCATACAGATACCCTTTGGAAGACAGTTTTTCAATTTCTAATAAAATTAAACAT
+AATCTTACCATGTAAGCCAACAATTGCACTCTGATATTTTATGAAAACTTAAGGCTTTAG
+AAAAACCTGCACACAGATGTTTATATAGAACGTTTATTTATAAATTACCAAGACTTGGAA
+GCAACCAAGATGTCCTTCAGTAGGTGAATGGATAAAAAATGAAGTACATGCAGACAATGA
+AATATTATTCAGCATTAAAATGAAATGAGCTATCAAGCCATGCAAAGACACAGAAGAAAT
+GTAAAGGCATAAATCTAAGTGAAAGAAGCCATTTTGAAAAATCTACATACTACATGATTC
+CACCTATATGACATTCTGGAAAAAAAGTGGTTCCCAAGGGTGAAAGGGGAGGGAAGGATG
+AATAGGCAGAGCACAGAGGATTTTTAGGTCAGTGAAACTACTCTGTATGATACTGCAATG
+GTGGATACATGTAATTACACATTTATGCAAAGAATGTTCAAACCCAGAAATTAACTCTAC
+TGTAAACTATGGAATTCAGATGATAATGATGTATCAATGTAGGCTGATCAATTGTAACAA
+ATTTACCACACTGATGGGGTTGATAATGGGGTAGGCTTTGCATCTGGGCACATGGGGTAT
+ATGAGAAACATCTGTGCCTGCCTCTCAATTTTGCTGTGAACATATATCCACTCTACAAAC
+AGGCTTAAACCTGCTCAATTGTGAAAGAAACAAAGAATAACAAATAGAAAAGAAAACATG
+GTACACACTTGCACATATACACACACATACACACACACATTATACATATATGATGTGCAC
+ATGATATAAACAAATACTAAATAGACTGAATATACAACCATTCCTCAATATCCATGGGCA
+TTGCTTCCAGAACCCTCTTGCAGATACTAAATTTTGCAGATATTCAAGTCTCTCATATAA
+AATTATGTAGTATTTGCATATAACCTAGGAACATCCTCCTGTATACTTTAAAACATCTCT
+AGATCATTTATAGTATCTAATACAATGCAAATGCTATGTAAATAGTTGTTATATTGTATT
+TTTTAATTTGTATTATGTTTTACTTCTGTATTTTTTTCCCGAATATTTTCTATCCATGGT
+TGGTTGAATCTGCTGATGCAGTCCCTGGGGAAAGAGAAGGCTGACTGTATAAATAAATAG
+GGGAGAAGAGACAAATTTCCATTGCAGACAAATTCTGCACAATTTATGCATATACGCTGC
+ATAAATCTGCACTTTTAAAATGTGGGCTGTAGATAATGACTTTGCTCCACAAAAGTCTCT
+ATAGAAAAGGGAGGCAAAAAAGATTACAGTGGAGAAAACTGATAAACACAACTTTAGCCA
+GGTGGCCAAGGTCAACGTCAAGAGTGATAAGTCATGCTAACAGTATGTATCTTGATTTGT
+TGTTGGGGAAGCAGCCATCACCACCTGTCCCACTCTAGGAGTTTGCTGAATCGAGGCTCT
+GGGTCTGGAAAGTTCCCCAGTATGGAAGTTGGCCCCAGATTCTTCTTACTTATTAGGATA
+AACTTTCCCTTCTTGTATGTGGTGAACTTCTTTGTGTTGCTTAAGCACGTGCACCAGATG
+GTACCTGCCCAGCCCCACCAGTATATCTGCACCCCCAGGGAAGGGAGAGAGTCTCTTGAC
+TATGGCATAAGAAGGGTTCATTCTGTCCATCACTCTGCATCAGCTCCTGGTAGGGACCCA
+CTTGCCCTGGAAGACTGAGCCCACTACAGATGTTGATCTTGCTGCAGCTCTTCTCATTTT
+TGTGAGTACAGAGTTGTTCTAACCAGTGCCTGGTATGTCAAGTCCTCCTTGGCAACTCCT
+CATCCTTAGAATATGCAGTGGGCTGAGGTCTGGGGCCTCCTACTGCTGGTGGTTGGCATT
+GCTATGATCTTTGCTGCCCTCCATGTGGTGGGGACTCTTCCCTCAAATTGGTTGCTGAAT
+CTTCCTGTTTGGTAGTAGGATATGATTGACTTGGCACTTTATCTTTGTGATCTTCCTCAT
+AAAAACCAATTACTCTAGTTGAATTATGAGAAAAATATCAGGCTAATTCCAAGACAAGGG
+CATCCTATAAAGTAGTTGACTGGTATTTCTCAAAACTGTCAAGGTCATGGAAAGCATGGA
+AAGTTTGAGGAACTATTCCAGCCAAAAGGAATCTAAGATGATATGACTATTAAACGTAAT
+GTGATAACCAGGATGGGGTCCTGGCATGGAAAACGACGTTAGGTAAAGCTAAAAAAACTG
+GAACAAACTATGGATTTTAGTTAACTATAATGTATCAATATTGGTTCATTAATGGTAACA
+AATGTACCATAGCAATATAAGATGTTAATTATGTGAGCAGGTATGAGGAAACTCTATGTA
+CTATCTTTTCAATTTTTTTCACAAATCTAAAACTATCTTGAAAAATAAAGTCTATTATTT
+TAAAATATTTTTGTTATATGGTAGCAGTTGGATACAATGTTTTCACTGAAGCTCTGAAAG
+AATATATGCCTGTATTCCCTTTTGAAGGCATATAGGCAACAATGTTTTAATATTATTTTC
+GTGTCATTAGTATTTATAGTATAGATAGCTAAACGAACATAAAAGTGAGTTTATTTAAGA
+AATGAAAAAATGACTGCTTCTCATATTTTGACCAGTGGCCAAATATGTCTATCTGGAGAT
+TACTCCTAGAACAGCTCACGTGTGAACCTAGGAGCTAGTCTCGAACCTGAGTGAGAAAGA
+AAGCCTGTGTGTTAGCTTAAAAGTGTGGATCTTGGTGTTCTTCAAAGCACAGTCCATGAG
+AGCTGAGAGCCCTGACTTAGAGGAATTCACTCTGGAAAGAAAATGGGGAAGACACAAAGC
+ACAGCACTTTCATGTGAAAGTGGACGTGAAGCTGATGAAACTGTTCCCGGGACTGAATCT
+GGCTTTCTGCACAGCAGAAGCAATGACTGCCTATGTGTGAAATGACACGCTGGAGCCCTT
+GCTAGGATAGAAAGGGCTTAAGGAATCCCTCTTTAATGTTCTGCTTATGAAATTTGAGGA
+GACAAATTTTTCCTTAACAGGAATAACTTTTAAAAGATGAAAGAAAGCATAAAATAGATG
+CTCTGAGCTAAGGCAGAACGATCAAATGCAGCATCTGGGAAACTTGGTGGTGAGCAGTGT
+GTGTCTGAGAGGAGGAAGGGAAATGCTGAGTCTCTGTGGATTGTATTAAGAGTACAAAAC
+TCCTTAACACACAGAGGGTGAATCCCCCCGTAAAATATGTCGTAGATACCAACCAGGTAG
+GAGCAATGCCTCTTGGGGAGGTGGGGTACAGATGCCACACTTTAAAACTGGACTATCTTC
+TGTACTGCGTGTACATCAGAGATGACTAAGCTACTAGGTGTGAGGTCACACAAATACTGC
+TGTGGAGGATCTATGCTACGCCCAGAAGAAGGAGAGGTAACTGAAGGCCCTGGGGACAGA
+GATGGTGTTTTAAATTTTTATTCCATCAGGAGGTTGAGAGTCAGAAAAGAAAGAAGTATT
+TGGAAAGAGAAGAGCAATGTGTACAGGACTTGTGAAAGAACAGGAAGTGGTTTGCAGTGT
+GAGGACTGCCTTGGAAGGGCATGGGCACTTTTTCATGTCCAGCCTCTTCTGTCCTGCCCT
+TTATCCTCACTTCTAGTGTAGCTGTGAAATGGTACGTGCTCACAAAAGCCTGTGCATTTG
+TCGGTCATTGCACTTGCAGCTGACATTGTCACTGTGTAGTAGACTGTATTAAGGGATGGA
+GATGGCTGTTGTACTCCCCGACTTGACTTACAAGGAGTTCTCTGCTTACGCATTTATGAA
+GGATGAACTTATGAACAGGAGAAGTCAGTCTGGAAAGGGAAGGATTAGACTGAATGAAAA
+TCCCAGGAAGATGGAAGTTTCCATCTGTAACTTCAGCATCTAGTATCATGCCTGACATAG
+AGCACAGTCTCAGTAGATTTGTATTTAATTAATCATTTACTTAATTAGTTACTGTGAACT
+ACAGTGTACATTTAGAAAAGAGAAAAATCATTGTAGTCAAGGGAGGATGGATTTGAATTC
+TAGATCTTCCACGTCTTAGTACTGTGACTTACGGGAAGTTTTTAGAAACTTGCTTTCTAC
+ATGTACAAAAGAACAATATTCATATTTATTTCACAATGTTGTAAAGAGAATTACATAATG
+TAGAAATAGATAGACAGACACATACCATTCTTTAAAAGGCCAGTTAGAGCAGGTACAGAT
+ATTAGAATTGTAGTTATGATTGCTTTTATTATTATTTCATGGCTTTTTCCCACATTGGCA
+TAGGTTATATGTCATCAAGGGCAGAGAAAATATCTTTTTCCCTCTTTTGTGTTCCTTGGT
+ATAACGTAGCCAAGTATGCATTTATTTCTATTTATCTAAATCTGTGTAACTGTGAGCAAA
+ATTAATTTTACTACAATGTAAATTTGATAGTGAAAATATACAAAAATATTATAATTCCAC
+ATTATAAAAATATTATAATTCCACAATATAAAATATTATAATTCCACAAAGTATGTAGAT
+GTCACCCAATGATAAAGATAGGACACATATCAATATACAGCTACCCCACCTTAGGACTCA
+TAACCAGTTTACCTATACATTTCAGAGTTAATTCACTGCACTTGCTAACCCACTGAAATT
+TCATAGGAGCATGCAACCACAAAGTCATCACAATTCAGTCATTTTCCAGCTATCACTTTG
+AAGACTTTCATTTATCACAGTTTTGGGAAATAAGATTTTCAGTTTCTCTGACTTCCTCAA
+TAAATAATGTGACCATTTAATAAATATGTGTTTCTTTAGTAAGCAGGCTCTGCCCATGTT
+GAAGAAAGTCTTTTGGGATCATTTATTCCTACACACCGGGGAGGGCTGGCACTACATACC
+AATTTAATGCCAGTATTCTCTTTCCATGACTACAAATAATAAAAATAGCCTTTTGCTTTT
+AAAGTTTGTTCTCCAATAAAATATGTAAAAAATAGAAACAAATGTCTTATTAGTTTCATG
+TAGGTATTGTTTTACTATTTATTATTGTGCTTGCATTTCAAGAAAAAGTCAAAGATACAA
+AGGTATAAAGAAAAACCAGAATGTTTCTCTCTATCTCTCTCTCCCTCATAGCATCCTTTT
+GAATGTTTATTACCAATTCTGAGAAAAATAAACCTCAAAGAATACCTAGCCCTTTCTTTA
+CCATTGCTTTCTCTCAAATTCACACACACACACACACACACACACACACACACACACACA
+CACGGGCTCCTTGTCAATGAGGCTGGCTGATAACAAAGGAAGACATGGTGACTTTGCTTA
+GTGCTTGCATGAAAACATCCTTCCTTTCTGCCCACCCTGCCACTCACCGTCAAGCTACAA
+GAAAAGCTATGGGCCTCAAAATCTTTGGTTAGTGCTAGGCGAAAGGCAGAAGAGGAAGAT
+AGATGCTAACGTTTTGAAGTGACTAGATAGAATTCAGATAAACCAAAAGGAAAATATTAA
+CATTTTGAAGAAAGAAAAATCAGTTTTTATCTTTACACAGAAAAGTTGGGTGGAATTTTT
+CTATTTCCATATTTCTCTATAGGACCATGGGAACATTGCACATTACATCTTGTGTGTGCA
+TGCACACACACACACGTACATGTGCTTTTGTGCATGCGTGCACATGTTCAGCTAATTTAC
+GTGGTAAATACAACTCTTCCTTCTGATTTCAATATGCATAATCTCATTTAATATTTGAGC
+TCTCCTGACAGACAGTTTGTTCAGCAAATACTGAGAAACACTCACCATCAGTTTAGAATA
+TAAAATTCCCTTAACACCCATCTGAGTTATTTGTCTGAATGTCTTCTACAAAGGCCTCAG
+CCCTATAACTAAAATGAGATAGACATGAGTGCACAGTTGTTCATTGTTCTTTCACTTGAC
+TTATTAATCGTTATATGATTTACTGGATTTGCTTCTTTTTTTTACAATAGCTTTATTGAG
+ATATAGTTTACATACTGTCAGGCCTCTGAGCCTAAGCTAAGCCATCATATCCCCTGTGAC
+CTAAATGTACACATGTAGGTGGCCTGTTCCTGCCTTAACTGATGACATTCTACCACAAAA
+GAAATGAAAATGGCCTGTTCCTGCCTTAACTGATGGCATTATCTTGTGAAATTCCTTCTT
+CTGGCTCAAAAGCCCCTTTACTGAGCACCTTGTGACCTCTACTCCTGCCTGCCAGAGAAC
+AACCTCCCTTTTTCCTTTACTTACCTAAATCCTATAAAACGGTCCTACCCCATCTCCTTT
+CGCTGACTCTCTTTTCGGACTCAGCTTGCCTGCACCTAGGTGATTAAAAGCTTTATTGCT
+CACACAAAGCCTGTTTGGTGGTCACACAGACACACATGAAATTTGGTGCCGTGACTCGGA
+TCAGGGGACCTCCCTTAGGAGACCAATCCCCTGTCCTCCTGTTCTTTGCTCCGGAAGAAA
+GATCCACCTACGACATCAGTTCCTCTGACCAACCAGCCCAAGGAACATCTCACCGATTTT
+AAATCCGGTAAGCAGCCTCTTTTTACTCTCTTCTCCAACCTCCCTCACTATCCCTCAACC
+TCTTTCTCCTTTCAATCTTGGCGCCACACTTCAATCTCTCCCTTCTCTTAATTTCAATTC
+CTTTCATTTTCTGGTAGAGACAAAGGAGACACGTTTTATCCCTGGACCCAGAACTCCGGC
+GCTGGTCACGGACTGGGAAGGCAGGCTTCCCTTGGTGTTTAATCATCGCAAGGACGCCTC
+TGATTATTCACCCACGTTTCAGAGGTGTCAGACCACGCAGGGACACCTGCCTTGGTCCTT
+CACCCTTAGTGGCAAGTCCCACTTTTCTGGGGGAAGGGCAAGTACCCCAGCCCCTTCTCT
+CCGTGTCTCTACCCCTCTCCGCTTTTCTGGAGGAGGGTTAAGAACCCCTCAACCCCTTCT
+CCTTCACTCTTAGCGGCAAGTCCCGCTTTTCTAGGGGGCAAGAACCCCCAATCCCTTATT
+TCTGTGCCCTGACCTCTTATCTCTGCACCCCAATCCCTTATTTCCATGCCCCAGCCTCTT
+ATCTCTGTACCCCATCCCTTATTTCTGCACTCTGACCTCTTATCTCTGTGCCCCAATCCC
+TTATTTCTGCACCCCGACCTCTTATCTCTGCACCCCGATCCCTTATTTCCATGCCCAGAT
+CTCATCTCTGCGCCCCCATCTCTTATTTCCACACTCCGACCTCTTATCTCTGCGCCCCAA
+CCCCTTATTTCTGCACCCCGACCCCTTTCTCGCTTTTCTGGAGGGTAAGAACCCCCGAAC
+CCCTTCCCTCCGTGTCTCTACTCTCTCTTTTCTCTGGGCTTGCCTCCTTCACTATAGGCA
+ATCTTCCACCCTCCATTCCTCTTTCTTCTCCCTTAGCCTGTGTTCTTAAGAACTTAAAAC
+CTCTTCAATTCTCACCTGACCTAAAATCTAAGCATCTTATTTTCTTCTGCAATGCCGCTT
+GACCCCAATACAAACTCGACAGTAGTTCCAAATAGTCAGAAAATGGCACTTTCAATTTTT
+CCATCTTGCAAGATCTAAATAATTCTTGTCGTAAAATAGGCAAACTGTCTGAGGTGCCTG
+ACGTCCAGGCCTTCTTTTACACATCAGTCCCTCCCTAGTCTCTGTGCCCAGTGCAACTCA
+TCCCAAATCTTCCTTCTTTCCCTCCCGCCTGTCCCCTCAGTCCCAACCCCAAGCGTCTTT
+GAGTCTTTCTAATCTTCCTTTTCTACAGACCCATCTGACCTCTCCCTTCCTCCCCAGGCT
+GCTCCTCGCCAGGCTGAGCTATGTCCCAATTCTTCCTCAGCCTCTGCTCCTCCACCCTAT
+AATCCTTCTACCACCTCCCCTCTTCACACCTGGTCCGGCTTATAGTTTCGTTCAGTGACT
+AGCCCTCCCTCACCTGCCCAGCAATTTACTCTTAAAAAGGTGGCTGAAGCTAAAGGCATA
+GTCAAGGTTAATGCTCCTTTTTCTTTATCAGACCTCTCCCAAATCAGTGAGCGTTTAGGC
+TCTTTCATCAAATATGAAAAACCCAGCCCGGTTCATGGCTCATTCGGCAGCAACCCTGAG
+ACGCTTAACAGCCCTAGACCCTAAAAGGTCAAAAGGCCGTCTTATTCTCAATATACATTT
+TATTACCCAATCTGCTCCCGACATTAAATAAAACTCCAAAAATTAAATTCCGGCCCTCAA
+ACCCTACAACAACACTTAATTAACCTCACCTTCAAGGTGTACAATAATAGAGGCAGCCAA
+GTAGCAACATATTTCTGAGTTGCAATTCTTTGCCTCCACTGTGAGACAAACCCCAGCCAC
+ATCTCCAGCACACAAGAACTCCAAACTCCTAAACTGCAGCTGCCAGGGGTTCCTCTAGAA
+CCTCCTCCCCCAGAGGCTTGCTACAAGTGCCAGAAATCTGGCCACTGGGCCAAGGAATGC
+CCACAGCCCGGGATTCCTCCTAAGCCATGTCCCATCTGTGCGGGACCCCACTGAAAATTG
+GACTGTTCAACTCACCTGGCAGCCACTTCCAGAGCCCCTGGAACTCTGGCCCAAGGCTCT
+CTGACTCCTTCCCAGATCTTCTCAGCTTAGCAGCTGAAGACTGACACTGCCCGATGGCCT
+CAGAAACCTACAGGACCATCACAGACGTTCTAGGTAACTCTCACAGTGGGGGGTAAGTCC
+GTCCCCTTCTTGATCAATACGGAGGCTACTCACTCCACATTACTTTGTTTTCAAGGGCCT
+GTTTCCCTTGCTTCCATAACTGTTGTGCGTACTGACAGCCAGGCTTCTAAACCTCTTAAA
+ACTCTGCAACTCTGGTGCCAACTCAGGCAATACTCTTTTAAGCACTCCTTTTTAGTTATC
+CCCACCTGCCCGGTTCCCTTATTAGGCCAAGACACTTAAACTAAATTATCTGCTTCCCTG
+ATTATTCCTGGGCTACAGCCACACCTCATTGCCACCTTTTCCCCCAGTTCAAAGCCTCCT
+TCACATCCTCCCCTTGTATCTCCCCACCTTAACCCACAAGTATAAGACACCTCTACTCCC
+TCCTTAGCGACCGATCATGCACCCCTTACCATCCCATTAAAACCTAATCACTCTTACCTC
+GCTCAGTGCCAATATCCCATCCCACAGCATGCTTTGAAAGGATTAAAGCCTGTTATCACT
+CGCCTGTTACAGCATGGCCTTTTAAAGCATATAAACTCTTCTTACCATTCCCCCATTTTA
+CCTGTCCTAAAACCAGACAAGCCTTACAAGTTAGTTCAGGATCTGCGCCTTATCAACCAA
+ATTGTTTTGCCTATCCACCCCATGGTGCCAAACCCGTATACTCTCCTATCCTCAATACCT
+CCCTCTACCACCCGTTATTCTGTTCTGGATCTCAAACATGCTTTCTTTACTGTTCCTTTG
+CACCCTTCATCCCAGCCTCTCTTTGCTTTCACTTAGACTGACCCTGACACCCATTAGGCT
+CAGCAAATTACCTGGGCTGTACTGCCGCAAGGCTTCACAGACAGCCCCCATTACTTCAGT
+CAAGCCCAAATTTCATCCTCATCTGTTACCTATCTTGGCATAATTCTCATAAAAACACAT
+GTGCTCTCCCTGCTGATCGTGTCCGATTAATCTCCCAAACCTCAATCCCTTACAAAACAA
+TAACTCCTTTCCTTCCTAGGCTTGGTTAGTGCGGTCAGAATTCTTACACAAGAGCCAGGA
+CCGCACCCTGTAGCCTTTCTGTCCAAACGACTTAACCTTACTGTTTTAGCCTAGCCCTCA
+TGTCTCCATGCAGCGGCTGCTGCCGCCCTAATACTTTTAGAGGCCCTAAAAATCACGAAC
+TATGCTCAACTCACTCTCTACATTTCTTATAACTTCCAAAATCTATTTTCTTCCTCATAC
+CTGACGCGTATACTTTCTGCTCCCCGGCTCCTTCAGCTGTACTCACTCTTTGTTAAGTCC
+CACAATTACCATTGTTCCTGGCGTGGACTTCATTCTGGCTCCCACATTACTCCTGATACC
+ACACCTGACCCCCATGCCTGTATCTCTCTGATCCACCTGACATTCACCCCATTTCCCCAT
+ATTTCCTTCTTTCCTGTTCCTCACCCTGATCACGCTTGATTTATTGATGGCGGTTCCACC
+AGGCCTAATCGCCACACACCAGCAAAGGCAGGCTATGCTATAGTACAAGCCACTAGCCCG
+CCTCTTAGAACCTCTCATTTCCTTTCCATCGTGGAAATCTATCCTCAAGGAAATAACTTC
+TCAGTGTTCCATCTGCTATTCTACTACTCCTCAGGGATTATTCAGGCCCCCTCCCTTCCC
+TACACATCAAGCTCGAGGATTTGCCCCCACCCAGGACTGGCAAATTAGCTTTACTCAACA
+TGCCCCAAGTCAGAGAACTAAAATACCTCTTAGTCTAGGTAGACACTTTCACTGGATAGG
+TAGAGGCCTTTCCTACAGGGTCTGAGAAGGCCACCGCAGTCATTTCTTCCCTTCTGTCAG
+ACCTAATTCCTCAGTTTAGCTTTCCCATCTCTATACAGTCTGATAACAGACTAGCCTTTA
+TTAGTCAAATCAGCCAAGCAGTTTTTCAGGCTCTTGGTATTCAGTGAAACCTTTATATCC
+CTTACAGTCCTCCGTCTTCAGGAAAGGTAGAATGGACTAATGGTCTTTTAAAAACACACC
+TCACCAAGCTCAGTCACCAACTTTAAAAGGACTGGACAATACTTTTACCTTTTTCTTTTC
+TCAGAATTCAGGCCTGCCCTCGGAATGTTACAGGGTACGGTCCATTTGAGCTCCTGTATG
+GATGCTCCTTTTTATTAAGCCCCAGTCTCATTTCAGACACCAGACCAACTTAGACTGTGC
+CCCCCAAAAAACTTGTCATCCCTACTATCTTCTGTCTAGTCATACTCCTATTCACCATTC
+TCAACTACTCATACATGCCCTGCTCTTGTTTACACTGCTGGCTTACACTGTTTTTCCAAG
+CTGTCACAGCTGATATCTCCTGGTGCTATCCCCAAACTGCCACTCTTAACTCTTGAAGTA
+AATAAATAATCTTTGCTAGCAGGACTATGCTGAATCTCCTTAGGCACTCTCTAATTAGAT
+GTCCTGGGTCCTCCCAATTCTTAGACCTTTAATACCTGTTTTTCTCCTCCTCTTATTCCG
+TTTAGTTTTTCAATTCATACAAAACCGTATCCAGGCCATCACCAATAATTCTAAATGACA
+AATGTTTCTTCTAACAGTCCCACAATATCACCCCTTACCACAAAATCTTCCTTCAGCTTA
+ATCTCTCCCACTCTAGGTTCCCGTGCCGCCCCTAATCCCGCTCGAAGCAGCCCTGAGAAA
+CATCGCCAATTATCTCTCCATACCATCCCCCAAAATTTTCGCCATCCCAACGCTTTACCA
+CTATTTCCTTTTATTTTTCATATTAATATAAGAAGACAGGAATGTCAGGCCTCTAAGCCC
+AAGCTAAGCCATCATATCCCCTGTGACCTGCACTTACACATCCAGATGGCCGGTTCCTGC
+CTTAACTGATGACATTCCACCACAAAAGAAATGAAAATGGCCTGTTCCTGCCTTAACTGA
+TGGCATTATCTTGTGAAATTCCTTCTCCTGGCTCATCCTGGCTCAAAAGCTCCCCTACTG
+AGCACCTTGTGACGACCACTCCTGCCTGCCAGAGAACAACCCCCCTTTTTCCTTTACCTA
+CCCAAATCCTATAAAACGGCCCCGCCCCTATCTCCCTTTGCTGACTCTCTTTTCGGACTC
+AGCCCGCCTGCACCCAGGTGATTAAAAGCTTTATTGCTCACACAAAGCCTGTTTGGTGGT
+CTCTTCACACAGATGCGCATGAAACATACTATACCATTTATCCTTTTAAAATGTACTATC
+CGATGGTTTTTAGTGTATTCAGGGTTGCTCTAATTTTAGAATTAGTATCTAATTAGATAA
+TCAGTATCTAATTTTAGAATATTTCACCCCCAAAAGCCTCATTTTTATTAACAGCCACTC
+CCCCTTTCTTTCACCCCAGCCCCTGGCAAACACTAATCTACTTTCTGACTCTATGGATTT
+TCCTCTTCTGGTGTATTTCGCCTTTTCTTTCACAGAATTACACAAATTATCTCAACCCCA
+ATCAGTCACCTGGCATGTTTCACTTGGGGATTCAAGTCAGAGCTATATCTCCATTAATAG
+GAAAAATGTATATTTAAAAATCTCTTTTAAGAGAAAATAATCTTGAGCTTATGGCTTAAA
+GAATAGTGTCTTATAAATGATGAAGCTTCCTTAGATGCGTTAATTAATTTCAACAAATAT
+TCACTGAGGCACTGAACCAGTGGGTCTCCAGGTGTGGTTTTTAATGGCCTACATCACAAC
+CACCTGGGGATACTTATTAAGGATGTAGATACTTGGGATTTGCCTCACATCTACTAAATT
+AGATGTTCAGGGAAGGGGCAAGGGAATCATCATCTTTTTTTTTTTTTTTTTTTTTTTTAG
+ACGGAGTCTGGCTGTGTCGCCAGGCTGGAGTGCAGTGTGATGATCTTGGCTCACTGCAAC
+CTCCGCCTCCTGGGTTCAAGCGACCGGGTTTCACCATGTTGGCCAGGAGGGTCTAATCCT
+CTAACCTCGTGATCCGCTTGCCTTGGCCTCCCAAAGTGCTGGGATTACAAGTGTGAGCCC
+CTGCACCTGGCTGGGAATCATCATCTTAACAGGGCCCCTGTGTGCTATTCTTATGCACAC
+TAACATTTGCCAATCAGAGGTCCACCCTGTACTAAGGTCTGGGGGTAAAATAGATGATTA
+AGACACAGAATTTGATATCAGGTCATTTCAACACACTTAGCCTACACATTATGCCAATGA
+TATTTTAGCAAAATTATATAAATACATTGATAGGGGAAGGAGCACTGAAAGAAAAGATTC
+CCGGTGATCAACCACTTTCTGCGTCTTACAAAGTACTTTACAAATACTGTTTCTCTTATG
+AAGTGCATCACCCAGTACCAGTTGCTGTGACATATATGTTTCCCATATTAGACCTTGCAC
+AGAAATACTCATATTAGCATAAATTTATTCATTTATTTAAGAAATGAATATCCATTGAGT
+TACAACTATGTGTTCAGCCCTGCTAAGGCAGCAAACAAAATAAAGTCTCTAAACTGTAAA
+ACTAAGGAAAGGAGAAGACCAATACAAGAAAGAAAGAACGCTGTGAATAGGGGAAGTCTT
+CCTGGAAAGACTAAAATGAACTCCTTCTCAGAGGATATGTAGGATTTGTGTGGGAACAAG
+TAGAGGCAACTCCTGTAGTGGAAGATACATAATAAAAGTATGTATAGCACCAAAAAAAAG
+AAGCATTTGATTCAGGTTAGATCCAACCAGCAGTCAAGTATCTGCTGGTGTCTGGAATAT
+ATGAGAGAGGCTTGAAGAAAATAACTGGAGCAGGACTGTTATTATGTATTGGAGAGCCAT
+GTAAGAATCTACAGACAGTACTGAAAATACCTAAGGAATGGCTCTTAACGGAGTGTGTCC
+TGATGAAAACTTAGTCACCCCAGGGGAAAATGCATCCATTTAACTCCAAGGGAACATCTA
+TACACCTATCAGCATCTATACATCTATCAGCATCTGTACATCTATCTGCATCTGTACATC
+TATCAGCATCTATACATCTATCAGCATGAATGAGCTTGAGCTTCCCACTCCGAAAGATCT
+GGGAAGCTAAATGACGGTCTCAATCCTCTGTATAGATAAGAGAGGGATGAGCGCTGGAAA
+ACAAAGTGGTATCTTTGGTGCACTGATGGTGGAATTCACAACCTGCCGCTGCTCAAATAC
+TGGCCCATAAGATTCTGTTCATTCTGCCACTAATCTGGCTATTTTCACTGCAGGTACCTC
+AGAATACGGATCTGAACATTAATAAGCAAGGAAAGAACAATAATGGTACACTAAGGTGCC
+AGCAGGCAGAGAGAGAGGGAGGAGAAAAACAAAAACCTAGATTAAGCGCATAAAAAATAA
+AAATTTTGGAGGACACAGACCAGAACATGAGCATTAATGAGCATTTAGTGAGCTTCAAGT
+ACAGTACAAAGACTTTATAGAAATATAAAACTAAAAAAAAACAAAAAACATTGGCTGGGC
+GCACTGGCTCACGCCTGTAATCCCAGAGCTTTGGGAGGCCAAGGCGCGTGGATCACATGA
+GGTCAGGAGTTCGAGACCAGCCTGGCCGATATGGTGAAATCCCGTCTCTACTAAAAATAC
+AAAAAATTAGCCAGGGACAGTGGTGGGTGCCTGTAATCCCAGCTACTTGGAAGGCTGAGG
+CAGGAGAATCACTTGAATCCAGGAGGTGGAGGTTGCTGTGAGCCGAGATCGTACCATTGC
+GTTCCATCCAGCTTGGGCAACAAGAGTGAGACTGTCTCAAAAAAAAAAAAAAAAAGATAG
+TCACTGTTAAGATCAGACCTGGTGGCCTCGATGACACAATGTAAGAAATATCTTAAAGTA
+CAGGGTCACAAATATGAAGAGATGAAAAATGATACAGGAAACGTGAGAACTGGACGAGAG
+ATCTGAGAGAACTAAGTGTGAATTGTAGGAGTTTCAGAGGGAGGAACAGAAACAGATGGA
+TGACTCAAAATAATAAAATCAAACATGTATTTTTGTTTTTCATTTGAACTGAAGAAAGAG
+CTGGGCCTTCGGACGAAATTGTTCAATGCACAATCCAGGCAAAGTTAATGACTTTTTAAA
+AAGGGTTGGAGAAATTGTGGAGCTTCCAATACAAAAATAAAAAGAAGTGTTTACAAGCTT
+CTAGAGACAAGAAACAGGTCACCTTAAAAAAGGAACAAATCAGACCAGTCACAGGCAACT
+AATTTGCTTCATCAGAAGTGAGAAAGTAGCAGAAAGCCACTCATAGAATATTGAGAAATT
+AGAATTGTAACCTAATTATTTCGTTCCTAAACAAGATAGTAATCCCTGATAGAAGTAAAA
+AAAGATGTACGTGGATGGTCTATGCTTTAGGGACTATATCATTCTTGTTCTTTGTGTAAC
+CAACAAAATTATCCCAGGAAAAGTGGAGTCAAGGAGATGAACAATGGGGAGGGGTGGGGA
+CAGACCGCAGGCTTCATATACATATAATTAAAATGGATAATGAGACACTTGAGAAACGCA
+ATAAAACAACCATAAGAGTGCTGAAAATTAATGAGAAACTCTTGAAATCAAATGAGTGTA
+AATGCTTAAAATTGAAAAGAAATTCTTGACATTGAAAGGAAAATCATAAAAAGAACCTGG
+GATTAAAAATATTAATGTTAAACTCTCCCAATTAAAACTCTGAGTTAAGGTGGGTGAAGG
+AAAAGAGAATTTTAAAATTCTCTTTCAGGTTGTGATGATGAGGAAAGGAGGGGAGTAAAT
+ACTTTTTTTTTTTCAGACAAACTCTCACTCTGTCACCAGGCTGGAGTGCAGTGGCACGAT
+CTCAGCTCACTGCAACTTCCGCCTCCCGTGTTCAAGCGATTCTCCTGCCTCAGCCTTCCG
+AGTAGCTGGGATTACAGGTGCCCACCACCACACTCAGCTAATATTTGTATTTTCAGTAGA
+AACAGGGTTTCACCATGTTGGTCAGGCCAGTCTCGAACTCCTGACCTCATGTGATCCGCC
+CACCTTGACCTCCCCAAGTGCTGGGATTACAGATGTAAGCCACCGTGTCCAGCTGTAAAT
+ACGTTCAAAAGAGCTCAATTTTACCGGCGAGGTGACAAGCAGGGTAAAGTTCTTGTTAGA
+GAATAACTAGCACTTGTGTCCAGGTATAGTAGTGTGACTATAAGAGTTGATAGAAATGAT
+GATCACTCATTAAATAAAGGCAACAGTAAATATAAATACAAGTTGTTCAAGGTTTCATAT
+TTTTAAAAAAGATGAAGACAAAAGAAGAAATTGGAGAGAAACAGGTAGATTTTGTAGCAT
+AAGTAAAGATAAAAAGGGGGAGAGAAGCAGAAAGGATAACCATTGGGTACTGGGTTTAAT
+ACCTGGGTGATGACATACTATGTAAAACGAACCCATGTGACACATGTTTACTTATGTGAC
+AAACCTTCGTATGTACCCCAAACCTAAAATAAAAGTTAAAAATAAAAAAGAAAAGCAATT
+GAGTAAAATAATAATTTTGTATATTTATATACATATACAACATATATATGCGTGTATATA
+CATATATGAGGGAGAAAGAAATGTCACATTGTTATAAACCAATGAAATTGGAAATAAAGT
+ATTAAAAAAACAAGTTTTTTATTTTATTTAACATAATCGTATCTGCTTAGAAATGAAAAA
+ACACAATACTTGATAAATCTTGGATCAAAAAAGAAAATGCCCTCAATTTATAAAGCTACA
+GAGCAAAGAATGCATCTACCAGAATTTATATGACATAGCAAAACTATACTTAGAAAATTG
+ATATTGCCTTAAGTGTCTTTATAATTAAAGAAATTTTCTGTATTAAAATTTCTATCAGAT
+TATAATTGTAAATATTTTAAATTGAATCAAATTCAAACAATATCCGTTAAGATTCATGAT
+TTTCTGTTTTAATATTTAAAGGTAATCAGCTCCATCAGTTGAATAATTTCAGCAAGAGTT
+TTTTCTTAAGGCAAAAGAAAAGGCATTGATAAAAATTCAGGATAGTAGAGTTTTGTATGA
+AAGCTGACATTCATTAGAATGTTAAAATCAGAACTCTTTACTAACTGGATAACTTTGTAA
+GTTTGTATTGCCCATTATGGACTTTGTATTGTTTCCTTTCTGTGGAACATCCATTCAATT
+TAAAATGAATCCAGTGGGGTACTCAAGCACAATAACAATTTTGCAATATACGTCAATGTT
+ATTATTAATGTTTATGTGTGCAATGAGTTCACCTATCATTTTATTAGCTAAGCTGTAATT
+TTAAACATACTTCCTGCATATAGCCAAGGAAGGACTTTGATATGTATGTAGTTATATTCC
+TTCAAGTACACTCTTTCTTCAAAAGCTTTCTAAAACCAGTGCACAAACTAAACATGGCCA
+GCTGTTAAATGTATCTCTTAAATATTAACTTCTCCAGTTAAAATTAGCACAATACAGGCC
+TTACACATAAGAAGCTATCTCTGAGATTATTATCGTATACTTAACTACATTGCTAACAAT
+GGATGAGAGCTTAGCAGCTAATAAACCTGCTGTTCCAGCTATAACAAAGGCAAGTTAATG
+TATTTGAAAGGAGAGTGATAAAATAACCAAGGCATCATAAACCTAAGATAAACAAAATCA
+CCTAGTGGTGACTAATTAACGTAACACATGCAAATCTTCAATATTTTCACTGCTTGAAAT
+CCCTTATAATGAATAATTGTATGAGACATTCATATATAAGGACTTCATTTGATTCTTTAT
+ATGAAATAAAGTTTCTTCTTCTGTTATGTGAAAATAAAGCCCACTCAAATGAGAACAAAC
+AAAAGCTATTTATTCAGAGCTTGTTACAGCAAGAGAGTCAGCCACCATCACTTGCGTTTG
+GCAGAAGCTCACAAGCAGGCAGAGGAGAGGGAAAGCTTCATAGCGGAAAAAATAGAAGGC
+TTCAGGTGCACCCTGACAAGAGGTTGTTGGCATGGAGAAGCTGGAGGTGGGCAAAAGTAG
+AAGTGGGACTTCCTATGCGACTGGGTGGGGGAGCATATTTGGCTTTCTTTGGTTGGTTTT
+AAGGTGGAAGCAGGAGCAAAAATTATGGAAGCTGGCAGTTATTGATTACTTGCATTTTTA
+GCTGATTGCTACAGAGGTTGTTGTCTGCCTTCCTGGACTGGTTGCTGCAAACTGTTTAAT
+TTTTTAAATATGGTCAGAGTTCTGTTTTAAAATACGGTCTGGTGGTTATCTGTTTGCATA
+TTTAGTCTCTCAGCTCCCATCCTGTGTCTGAAAAATATTACCTCAATAGAATTTGAATTC
+ATAATGGTTTTTAGCAGTATCAGAAGAAACAGACAAGTCTGGCTTCTGAGTAAATATGAT
+CAATCTGATCATCCCTTATTTTATATATTTTCTATAATCATACGAATTCCTTCTTGTGAT
+AATTTCTGCTATCTCCTATAGTATCTAAATATTTTCCAAGCACATAATTTAAACCCATGA
+AAATGGATATGGAAAGCTAAAATAGTCCTGTTTTATTATAAAGCATGTATATGCATTCTA
+AAAAAAATTCAGACTATATACAGTCTTGTCTTTGACCAGTATCACAAATAAATTCTTAAG
+GGCTAAAGCATATGACATGTATTGATGGAGAATGCATTATAGGTGCAGATTTTCAATTCA
+CTTGAATGAAACTTTCAGTAACTTCAGACGTTCAGACCTACACAGATAACTATTCCACGG
+CCTACAGCCAAAGGGCCAATGTTAGCTTCATAGTAACAAAAACAACCACCACCATAAGGA
+CAATTATTATTACTATTTATGAAACCACTACTGTCATTCAGGGTCTCTGTGTATATTCAT
+ATTTAAGTTTATTTAATCTTTGCAACACTTTAAATGTAATGTAAAACAGAAAGATAAGTT
+ATATTGACCCATTCATTCACTCAAAAATTAAAATAGTACTTGAACCATTTTTCTTTGAAA
+TAAATTTAAGTCTATTCATTTCAATTTGTTTGAATTTCAATTCATATAAATTAATGTATT
+CAGGGGCTCTTGAATGAGTCTGTCTGAGGCCCAAAGACAATTGTTTGACGTGGACGAGTC
+AGGAGTCAAATCCAAACCTGTCTGCATCCACTGTTTGTGTTCCTAGTCTAATATGTCCAA
+AGTTTCCTGTGAACTGAGGCTTATTCAAAGAAAATAAATGTTTTAAATTATCGGCTCCAA
+ATAATGATCAAGTTTTTCTACCATTGAAAAGTCAGTGCATAGAGCATATTAAAAAATTAG
+AAACATCCAAGGACTACAGGTTTATAGTCTTCCATATTTTCTTCTAAACTGATATTTTGT
+TTTCCAGTTGACACAGAGTAATCTTGACATGCAACTTGAAGATGTTAAGTAGGTATTCAT
+ATGAGATATGATGCTGACCAGAAGACAGATGTTCATATGTAGTAAAAAATATATTCCATT
+ATTAAAATGTATCAAATTAGAAAAATCAAAACTCAACCATCTTCATTCCTTGTTGATGGC
+AGAGAGTAAGAGCACACTCTTTATAAAAGACAACTGAGATGCTCATTTTTAAAAAAGCAT
+TTTTTAAAAGATCATGCATTTTAAAGGTGTTTCCAATTCACAGATCTACCATAAAAAACT
+TAAAACATGCACAAAAATGTGTTTAGAAAGAGACTTATTGCAATGATATTTATGACTACA
+ATAATATTCTTCAAGTATATAACATAGATATACAATGATAGAAGAATGGTAAATAAAATG
+TAGAATAGCCAAGTGGGGAAATACTATGCAGTGATAAATACCATGTTTACAAAATCAAAT
+TATATGTTAATATCCGGATATTTTTTGCTGGTTTTGTTTTTCTTTATTGTAGTAATTTCT
+CTTTGTAAATAGTCACAGTACTTTTCAACATCTCCCTTGAAGAATTGGAGTCCATTTCTC
+CAACTTCTAGATCTGGGATTGGACATGCGAAAAACTTTTAGAAACAAAAAATTTAGTATT
+AATACAATGTTTAGAAGTATACATGTAGTATATTATCATTTTGCAAAGTATAAAACATAT
+GAAATAACACTGTGTGGCCAGGCACGGTGGTTCACGCCTGTAATCCCAGCACTTTGGGAG
+GCCCAGACGGGCAGATCACGAGGTCAGGGGATCGAGACCATCCTGGCTAACACGGTGAAA
+CCCCGTCTCTACTAAAAATACAAAAAAATTAGCCGGAAGTGGTGGCGGGTGCCTGTAGTC
+CCAGCTACTCAGGAGGCTGAGGTAGGAGAATGGCATGAACTCGGGAGGCGGAGCTTGCAG
+TAAGCCGAGATCGTGCCACTGCACTCTAGCCTGGGCAACAGAGCGAGACTCCGTCTCAAA
+AAAAAAATAAAAAAAATTGTGCATTGTTTATGGACAAATGCATAGGTAACAAAATTATTA
+AATCACAGGTGGGAAAGGTACACAATTACTTAAAAAATGTAGGTATTTTTCTGGTAATAA
+ATGAGAAGGAATAAGGCTGAGAAGTATAAAAGGGATTTCAACTACATTTATAGCTTTTTT
+TTTTTTTTTTTGAGATGGAGTCTCGCTGTGTTGCCCAGCCTAGAGTGCAGTGGCGCGATC
+TCAGCTCACTGCAAACTCAGCCTCCCAGGTTCAAGCAATTCTCCTGCCTCAGCCTCCCGA
+GTAGCTGGGATTACAGGCAGCCGCCACCATGCCCAGCTAATTTTTGTATTTTTTAGTAGA
+AAAGGGGTTTCACCATCTTGGCCAGGCTGGTCTCAAACTCCTGATCTCATGATCCACCCA
+CTTCAGCCTCCCAAAATACTGGGATTACAGGAGTAAGCCACCATGCCTGGCCCATTTATA
+GCTTTTAAAATACCAAAAGCATATAAGCTGAATATCATTTTTAACAGACTATTAGAATTG
+TTATATTAGTTTGTGTGTGTGAAATATGTCTAACATAAATTTAAAAAGACAGTAAACTTA
+GCTGAAAGACAGAAGGAGGAAATGTGTAAGATGAACATTTGCCAGTCAGTATATGAAACA
+CCAAATGTTTCTCAGATAAGTTTTAACCAAATAGAATGTACGATGGAAAAAAATCTCATT
+CAAAATAATAACCAAGTATACAGCTCCTGGGGATATTTAACAAGAAATTTTTAAAACACA
+AATTCTTCAGTCAAATGGTTCTATATAATCTCAAATAAATCTCAGTGGAGATTACTTTGA
+TATCCCACAGTGAGACTAGAAATTTCAGTGATATTGTAGATAGTCACAATAGATAAGATC
+ATTTTCAATAAGAAGAAATAAAAAGAAAGGTTTTGAAATCTCAATAATTAAACAAATATG
+TTACTGATATAGTTTGGATATTGGCCACATCCAAATTTTATGTTGAAATGTAATCTCTAG
+TGTTGGAGGTGGGGCCTGGTGGAAGCGGATTGGATCATGGGGTGGATTTCTTGTGAATGG
+TTTACCACTGTTCCCTTGGTGCTGTCCTCATGAGATCTGGTGTTTTCAAAGTGTGGCTTC
+TCCCCAACACCCGCTTGCTTATGCTTTCGCCATGTGAGAGACCTGCTCCCCCTTCCCCTT
+CCGCCATGATTGTAAGCTTCCTGAGGCCTCCCCAGAAGCCGATGCTGCTATACTTCCTGT
+ACAGCCTGCAGAAGTGTGAGACAATTAAACCTTTTTCCTTTATAGATTACCCAGTCTCAG
+GTATTTATAGCAATGTGAGAACAAACTAATGCAGTTACTTATGCACGGTAATTAATAAAA
+CCTCAATGGATCACGATTCTGAAGAAATACAACTTAGTAAAACTTAGTGCCCTCATTTAT
+AAGAATTTATTTTTATATTTATTAACAATATGTAATAATTAACTATTCATTTCAAATAGC
+TGAGAAATCAAGTTGATAAATAGTTTGGGGTCAATTAACTAACCTTTAGGCAACTTAAGA
+TGAAGAAGGAAGAAGAGCAACAGCAACAACTAAGTTAAATTTTGAGAATCTCTATTAGAC
+ATTTGAATTTGGAATAGCTGGAAGCAGAATCCACCACCCCTTGCTCCTGCCACATTGCAG
+GTTTCACTCAGATGCAGACAGCACACTTGGGGAAGTAGAAATCTCTGGCCACAGATGCTG
+CGTGAGAAATTACCACTGGGCCACAGAATCCCTGGAGGAGCCAGCATCAGCTTCCAAAAC
+TGGGAGCTACCCTGTGAGCAATCTGTATACAACACTGGGCCCAGGCGGAAAAGAACTGCC
+AGAAATAATAACTTCAAACTCCAAAATAAGAGCGAATTCACCAAGGAAAGCAAATGTAAA
+GAAAGAAATGAACGGACTTAAAAATATCTAATTAGTGTTCATAGTTGGATTTAAGAGAAT
+TGCAGTGATAAAAACAATAGCAACTTGCAAAGAAAGTGAGGCAATCAGAGCAAGAAGCGT
+TCTTGGAAATAGAAAGCATGATTGCAAAACTTAATAGCTCAGTAATAATTCAGTAACAAA
+ATGGATAGTTCTAGAAACTGAATTTGTGATGACCCACTCTTATTAAAATTATGGGAAAGG
+GAAAGGCTAAAACACATAGAAAATGGTAAAGTACATGCTTGGCAAAACCAGGCAAGCCAA
+TACCCATTAGCAGCCTATAGAAAGAAAAAAGGATGGAAATTAATAATCGAACTAATTACA
+CATGAGAAATTTCTAGAGCAAAAGGAAACACTGGGACCTCTTATTCCCGCATACACATCC
+TATTAGAATTTTTGAATTCCTATGTTAAAAATGAAGCGCTACAAACTTTCAGACATACAG
+ATGTATACATGCAAAAAACACAGCACTGAAATAAACAAAAATAGCGAACATACGAATAAG
+AAAAAAAAACCAGGTTTACAAAGGAAAGCGAATCACAATAGTTGTGTGGCTCTGATCTGT
+AGTACCACATCACTATGTGAACAGTTGAGAAAAAAATCATTGCAAAAATTCTCAAACTAT
+CATTTAATTGGGAAGACAAAAGCAGGTTGTTAGAGAATATAAATCATATTCTCATTTCTT
+TTTTTTTAAACTACGTACATTGAAATGTCTTAGAGTAGATATGGATTATGGGGAAATTTA
+ACTTTTTGGACTTTTTTAACAAATGTATAAAGAACTCTGTTGTTCACAAATTGGTATCAT
+ACTGTGTGTCAACATGGATGGAGTCTCAGTTTGGGCCAAGCATCGTGATTTTCCTGACTT
+TAAGGAGGTCCTCTTCCATTATGGCAGACAGGAAACAAACAGTGCAAAACCAATGAGCAC
+ACATGGTGAGAAAGATCACCTATACGTGGTTTCACGGGGCTATATTTGCAGGCTCCTAAC
+TCAGCCAAATAAACGTGTATGGGGACTATCACTATAGATAAGTCTTAAGGAAAGAGCAGG
+ATTTAGCCAGCTCACAGGAGTGGAGGAAGCGTTCCAGGCAGAAGGGAAAACATGAGGCAA
+AAACAACACATTGTGTAGGAGGAAAGAAGTAGGACAACAAGCTGAGCAGTTGTCAGAACG
+TTTTAAAAAATGAGTCATTGCATTAAAAGAAATGAGGCTGAAGGGGTTAGTTATGCTCAA
+ATCATAGAGGGTCTTATAAACATACGCCAGATAATTGAAAGCATTTTGCAGAGCCAGAGC
+ATAGATTTTCAATTTTTGGAAGTAAAATAACCCTTTACTCAAACAGTATCTACCTAGAGA
+TCTAATATAGAAAAATGTGAAAAAAAAACCTTACAAGTTTAATTATATGAGCTACATTTG
+ATGACATCAACTAACATAGTCAGGCATTAGATGCAATGAGGCCACTGCAATGAATCCCCA
+AAATCATACATTCTGCATATAATTTATTTTCAAGTTTAATTTTACTTGCACAACATAAAA
+AGAGTTTGAAATTATAGAGACATATTTTCAAATGGTCACTCAATTTAAACAGAAGTAGCA
+AAAAAGGCATTATTCTGGGATCTGGAGAGAAAAAGAGAGTGAATGCTAGGAATAATAGCA
+AATATAATAAGCTGACCAGTGATGAGCCATTTAGGTGAACTCTCTGAACAGGCTAAGTAT
+TTGGTAGCATTTCTTCAGGATTTGCATGATGTTTATTAATGACAGAGGGCTGTTGATTTT
+CTTTTAGGAAACACTGTATTTCTTTGTATTCAAAATTGTTCATTAGCTAGTCAGAAAATC
+CAACTCTCAGCATTTAAGCAAAAGGGAGAAGCCAAGAGAAGATATGAGGGCTCACAGAAT
+TGCAAAGAGGATGGAAAAAGCTTGGAAAATGCACAGGAACCAAGATAACGCTAAAGTTCC
+AAAACCAGAACTCTACTTTCATCAGGGAGAGTCTAGCCAGGATGCAAACCACGTGTTGCA
+TGGCAGTTTCCACTTCAGAGACACTATAGCCATTGCCACTGACCATTACTAACCATCCCA
+GCATGAATGTCTTTTAGCTGAGCTCAGGTCCTGGGCCCATCCTGGTTCCTTGCAGATGGG
+GAGAAGGAATATCTTGCTCCTGGGGCTTTTGCAGTGGGAAGGTAGCAATGGCTACTGACA
+AAGAATGGGAAGATTTGGCTTAAAATTTAGAAAGTAGAAGTCAACAAATTGCAGAAAAAA
+GAGATATTATGGAACTTCCTGATAACTCAGAAAGGAATGGTGGTGTTGTGTCTTCTGCGA
+ATAGCACGGGTTCATCTTCTGTTCCCTCCACAACACCTTAGAGAATTCACAGGACATCAG
+ATGGAGGTAGCTGCTGGACAGTCTATGAAGACTGGCTAGCAGGTGACTTTTCCTCTAGCC
+CGTACAGTGGAGAAATACCCAAGGTTGGTAGAGAGTGGAAAAACACCTGTCTTCATGGGG
+CATGGTCATTCTGACGACACACTAGTGTGCACTAGCAATATGTTATTACCAATATGAACT
+GAATTTCAGGGGAGGTCCTTCCTTGAAACTTCTGTACTCCAGAAAACTCTTGAACATCCC
+TAAGGCAGCAACTCAGTGGGTGAGTAAAGCAGATTAAGTGAGATGTAGAGAAAGAAACAA
+ATAATCATAATTTCAAAATAGTCATAGCACTTTATGCCTTCATTTATTCCTCCTATCCCC
+CCATGTAGTATGTACTACTAGTATTATCCACCATTTTACATGTGTTAAATATGAAGGAAC
+CAAGAACTAGTGGGATTAAGTAATATGTCCAGAATTACACAGTTAATAAAGAGCAGAAGC
+AGATGTGACATCCAGGTAGCTTACCTGAAGTCTATGTTTGTAGCCTATATGCTGAACTTA
+TTTCGCAGGGTTAACACTAAACTTGATATCAACTACATTTGCATAAAAAAGATTATTTTT
+TTCATTGCTCACAACTTAAAAGCATTGGTTACTCATACTCATGAAGAAAGTGGCTAACAA
+TTCTCAAAGCTTTGTTTAATAAACATGTAATTCTTTCTGTTTTGTGTGAGAAAATATTTT
+GCTCTATTCTATTGTTCTTGTTTTCTCTTTCAAGTTCTTTTGCAATTTTCTAATCAAATA
+TCTTCTTGAACAAGAGATTAAGGATGTGAAAAATAACTAGAGATAAAGAAATAAATTGCT
+TATTCTTAGAAAAGACTACAGGGAAGTGGATTTGGTTTAGAATTCATGGTGATGGGGTAA
+TCAACATCATGAGACTCTTGGCAGAAATTTACTTATTTGCTTTGTCATTTATTTTGAAAT
+ATTCAACATAGTTCAATATATAACATAAAATTTCATGAAAACTCATGTTTAAATATGAAT
+TTATTAGTGATTACCTCATATTCTCAGTCTACCTCATGTTCTCAAAAACTGTGCTAGCCG
+ACAAAATTTCTCACTATTTGGAGGAACCAGGCAACATCCCCCGTATTGTCTAGGTCTCAT
+ATCTCGAGATCATCTTGCTGTAACACAGTGAATTTTTGGATCCCATTTATTTTATTTTAA
+AAATAAGGCTGGTGTTTGGGGTTAGTTTTACTCTATATTTTAGAGGTGGTTAGTTAACAA
+CTCCAGTGTTACTTACATAAAAGCCCGTTATTCAGAAATTTACAATTCAAATATAGTTAC
+TCTAAGTGTAAGGCTGTCTTTAACAACTTAGGTTAACTACTTAGTTGTGTCAATTAGCAT
+GACAATATTAAAAAATATCCAAGAGATGTCCATTGACTAGAAAATTTAAGATTCCCACTC
+TACCAACAATGCATTGAGCTCAGCCCCCTGTACATTCTGGAGCAGGTTTAGGATTCAGAA
+GTAGACCTGTATTAGCAAATAATCAGACATTTCTTCTGCCTGACCTGAGATTTAACTGAA
+TTCTGTTGCTAAGATGCTTCACATTTGTCTTGAGTGAGTGTTTTGTGCACAGTTCAAAGA
+CAGAGAGCTCTGACTTCAAGTTTTCAGATGTGATCAGACAATCCCTTTTGTAATTTCTGC
+TAATAGATGGTTTTATACGTGGTAGCATTGGGTCTGAGATTTGCCTTCATTTTGGCACCT
+ACTATTGGTGACAGAGTCAGAAGGTTAGAAACCCAAGCACCTGCACTATTCACAATAGCA
+AAGACTTGGAACCAACCCAAATGTCCAACAATGATAGACTGGATTAAGAAAATGTGGCAC
+ATATATATCATGGAATACTATGCAGCCATAAAAAATGATGAGTTCATGTCATTTGTAGGG
+ACATGGATGAAGCTGGAAACCATCATTCTCAGCAAATTATCGCAAGGACAAAAAAACCAA
+ACACCGCATGTTCTCACTCATAAGTGGGAATTGGACAATGAGAACACTTGGACACAGGAA
+GGGGAACATCACACACTGGGGCCTGTTGTGGGGTTCAGGGAGTGGGGAGGGATAGCATTA
+GGAGATACACCTGATGTAAATGATGAGTTAATGGGTGCAGCACACCAACATGGCACATGA
+ATACATATGTAACAAACCTGCACGTTGTGCACATGTACCCTAGAACTTAAAGTATAATTA
+AAAAAAAGAAACCCAAGCACCTCAGCTACCTCTAAAAATCGGGGAATGTTCATATCCAGT
+AAAAATAACCAATAATTGGGAATAACCAAATCAGCTACATAAGTTTGTCAGAGGAATGTG
+GTTGGGTCATACACTTCACCTGGGCCCATTGTAAAAATATTTAACAAAGATACATCAGTA
+CCAATGAAAATTAGGTTTTTGCTGCTGTTGTTTTGCTTTGTTTGTTTTTGTTTTATAGCA
+CTTTGGGGAAAGAAGAACAAATTTACATTTTGCCGATGATCTAAACATTTTCTTCTATCA
+TAAAGTTCCTATACTTAGTACAAAGCTCTTAATGCTCCTTAAATGAAACATCGTGAGCAG
+CCATATGGTGACCTGCCCCTTAACCTAGCACCAATTTTGAGGGGTTAAAAATAAATTTTA
+TTGAAACATTTTTTATCTTTCTAAAAAGATATAGAACAGGAAAACTATTTTAAACTAAAA
+TTGTAATGGAACATTGGCAGAATCCCTGAAGCACCTGCATGCAATGAACAGTCTGAAAAC
+TGCTAGTGTAGGTGAAGGGAAACTAGCAAAGGATTATACGGAAGGGAATGGCACTGTCAG
+ATTTACATTTGAAAGATAGTTCTGCATCTGTGGGAAGAGCAATTCTGATGAGAAAAATAC
+TGAAAACACAGAACTCCATTAAGAAGGCAAAGATGAATTAGAGCAATAGTGGTAGGAATG
+AAGAGAAGCTGGATTGAAAGATTATGTAGGAAGTAAAAGCTGCCAGGATTTAAGTCATTC
+TACTCTCTTCTAGTCTCATTTGTAGTCTTTCCAAAAAGCCATTAGATTAGCTATTTCCAC
+TAAAACTGGCTAGATGGTATAATAGTGAAGAACCCGGACCTTTATTTAAATCCCAGATCT
+GGAACTTACTAACTCTGTGATGCTGAGCAAATTACTTAACCTTTTGGTCCTCAATTTCCT
+CATCTGGAAAAATGGGAATAATAATTTCTACCTCACAGGTTTAATAGTAGAGATAAAAAG
+GAAAAAAGAGTCTATGCTAAAAGATTACAATAGTGCCTAGCTAAGCAAACAGTAAACGGT
+TACTTTTTTTTAACTCAAGAAAGAGGCAGTTTAAGAGAGGACAATAAAAGAAAAAAAGGG
+CTGGGCGCAGTGGCTCACGCCTGTAATCCAAGCACTTTGGTTGGCAGAGATGGGCGATGA
+ACTGAGTTCAGGAGTTGGAGACCAGCCTGGCGAACATGGTGAAACCCTGTCTCTGCTAAT
+AATAAAAAAAAATTGGCTGGGTGTGGTGGCGTGTGCCTGAAATCCCAGCTACTTGGGAAG
+CTGAGGCGGGAGAATCGCTGGAACCTGGGAGGCGGAGATCGCGCCACTGCACTCCATCCA
+GCCTGGGGGCCAGAGCGAGAGTCTGCCAAAAAAAAAAAAAAAAGGTATGTTAATGGTCTA
+GATGGATATATTAAATAACAGCGTAAGAATTAAGCAGTATTGCCGAAAGGAAATCAGGCT
+GTGTAAAAGAGAGTAAGTGAAATGAGTAAAACAGTGTTACTTTTATTTGGTTGTGCTTGA
+TTCAACCTGTTTATTACCAAGTGAAATTTCGTGGATAGCAGAGACTTCATCTGCAAAAAT
+AAAATAAAATAGTGAAAGGTGAGAAGATGAAGAAAATAGATGTGCCAGTGTGAGATTCTT
+CACAATTTGCAAAAGGAATGATTCTCACTGGCAAGTTAGCTTGGGTTTGTTAGCGAAGGA
+AAGGCGGATCGGATGAGTTGTGCAATAACTGGCTGTTTGACTGAAGCAGAAGCAGCTGAA
+TGCAGCTTTCCTGTTACATGACTTCCTGCAGGTCATCATCTCTGCATCTCCCTGGGTGCA
+AAGGTAGAATTCCTCCTGTGAAAAGCCAGGATAAGCTTTTCTCTGGCCTCTCTAATTAGG
+ACTGAGAATGAAATAAATTATCAGACTCCTCTGGAACTCCCATTAGATGTCCTGTGAACC
+TTTAATTCCTCTTGTGCTTCCGAGCCCGGATTGGAGCAAAGAAGACATATGTCCATGCAT
+GAAATCAAGTTTTTGTACACTCTAGAAGTATCTACTTGGTAGCATGGATTGTTTCCACTA
+AAATAGTTGGAGCCGCTGTCCTAGCATCCTTTTTCTGTTTGTAATTACAAGCAGCCAGTT
+TCCCCTAGGGAATAAATTCTCACTTTTTTGACCATTTTATTAACATACATTTTTGTCATC
+TAATAACACTTTTGTCACACAATATTAATGATAAATTGTGCTGACCTTGAATATCACCAA
+AAAACCAGACAACCTGGGTTTTTTGTTTTTTTTTTCTGACAGTGGTGATAAATTTTCACT
+ACTTTTTAAATTTTATTCATTTATTTATTTTTGAGTTCATCTCAGTCCTGGAATCAAGTA
+AATCTGGTTTATTGAGAAATTCTACATAATGTCATTTTGACAGAGTGGCAATGGGTTTTC
+ACATTACTTCTAAAACTTATTCTCAATGGTTTTATATCAGAATATAATCCCTAGTGTGAC
+TAGAATTTAATAGGAAAGCAACACAAACAACTGTCCCTGTTTTTTTTTCTCAATCCTAGC
+TCACCTTCCGCTATGCCAGGAAATGTCTCTGGATGCCTTCCAACACAGTGATTTATGATT
+TGATTGATTTATGATCCAATTGACTTATCAATCAAAGTTGCCACGTAAGACTAAACATAA
+TATGCCATCCAGTCCTAGGCTGAAAACTTTCTACATGGTCCCGAGCTTGGGCAATTCTTC
+AGTTGGGCTGAGATGGCTGAAAATGTCTGATACAGGGCTTCTCTTTTATAAAGTATAAAG
+GAGTTTATTCATAAATGGTTAGTTTCCCAGTAAGAGTACAGATTCTACACTCCCAAAGTA
+AATGGGTACTCTAAACACAATTCTCTTTATTTATTTATATTTATTCTAACTAAAAAGCCT
+CTTTCATAACTTTCTTTCAGCAAACATTTATTGACATCCTTAAAAGTGGCAAGCACTATT
+CCAGGCACAATGATCATCACAGGCAAAAATCCCTTCCCTCATGGCAATTACATTGTAGTT
+AAATTGTGGGGACACAGTCAGTAAACAAATAAATGGAGTAAATTCATATAATGGCAGATG
+CAGATAGTGCTATGGAGAGAAATAAAACAGAGAAAGAGACTAGGGAAGGGTTGTAATTTT
+AAACAGTGTGACCTAGAAAGTGTGAACTTAGCAGACACATTTGAGCAAAGACTTGAAAGG
+TGTTGAGAAGCAAGCCTTGAATTGTCTTTTAAGTAGAGGTCACAGCAAATTCCTCCCACG
+TGTCTGATATTGTGTTCTGTGAAGGAGGAACAGTGACAACACCCGCCAGTGTGTCCAGAG
+GGCAGGAGCCAAGGGCAGAGTGGGCAGAGATAAATGCAGAGAACAAGCAAATGAGAGGGA
+AAGAAAGACAACGTGGAAAGACAGGAGGGAGAGGAGGTTTGAAAAAGATCAGAGACCTAT
+CTGCTTGGAGCCTGTTAGGATGGGGCTACGTATTAGTCATATCCCAGTGGAATGGTAAAA
+AGACTGCAGGAGTTCAGGGCAGAATGCAGGAAGCAATGCTCCCAGAGGGAGAGCTGAAAT
+TAGCATCATGCTCAAGCCTGAGCCAGGCAGAAGTGACCCAGATGGGATTTAAAGCTCCTT
+CCTTCTGGACTCAGGAGACTGAGGCAGGAGGATCACATGAGCCCAGGAGTTCGAGGCTGC
+AATGTGATACGCTTCTGCCTGTGGATAGCCACTACACTCCAGCCCAGGCAACATAGTGAG
+ACATCGTCTCTAAAATATAAATAAATAAAATAATACAATAATAAACACATAAGTAAATAA
+ACATCTTCCTTCTGCAGGAAGGAATAAATGATTGGAGGAGGCAGAGACAGCCTGGTGTTA
+GAAGACCTAAAGTCACTATAATAAAATACCATCTCTAAAATACAAACAAATAAAATAATG
+AAAAAATGAATAAATAAAAATCTTTTTTCTGCAGGAAAAAAAAATTATTTAATGGGAGAA
+GACAGAGAGCACCTGGTGTTGAAAGACCTAAAGTCAGCTCTGAGGAAATAATGGGTGGGA
+GGTAGTTAACGTTCCAGGTGAAGGGGGAATCTACATGAAAAAAAAAAAAACCTCATTTGA
+ATAGATGTAGAGCCCAATCCCAATCCTAATGCAGGAAAAGGAAGTACATTTGTTATAGCT
+ATAGCCTCTGTACTTCTCATTATATTGCTGTGGTTTAAAAAACAAAAACAACAAACAAAC
+AAAACAGAAACACCTGATTCTTCAGCAAGACATGATTTGATATGTATCTGTTATCTGGGA
+ATACTAGTGAGGTAGAATGTTCAAAGGAAAGGACATGAAGCACTTCCAAAGCATCCTGTG
+AGAGCTCCAGTACACACAGGGCTAAAGACATGTAAATTAGCAGCTGGAGTGACCACATAT
+AGACCATTCATCAGAGTGAGGCATGAGAGGAGAGTGGCAGAAATAACCTACCCTCCAGAT
+TTAAGGGCAGAAAATCTGGATTCCCTGATGATCCCCCAACATGTCAACAGTAAGACACTT
+AGACACAGAAAAGGCAGAGTGCTGCTCTTGCTGTTACAATAAATACAAAAGTTAAGCTTC
+AACTAAATTCCTTCCCTTTGTTTCAAAGAGCAGTATACAGAAATCCTTTCAAGAGTCCAA
+CTCATCCTCAAGTCCACCAGTGTAAATTTCATAATGTGTCAGGATCAAAATAATTTTTCA
+GTCTTCTCAGTGATTGACCCAAAATCTACAATAATCAGGAATACGTTCTGTAGCAATTAA
+GTCTGTATTTATACATTGTTTTATGAAAATGAAGCCTCTTTCTTTTTGGTCAGGATCTGT
+CATTCTGATCATCCTTGGGTGAGAATTGGGAGGGAGCAAAATGGTCCATGCCATGGAACC
+CTATTATGAGAATGACCACATAGAAGGGTAGTTCTTAACCTCCTGGGAATCAAAGACTCA
+GTTGAGAATATGCTAACTACCATGGACATCTGATTAAAAACACAGAAAATAAAATACTTG
+GCACCTATGAAGAGATAGAAGTTTGCATTTTCAGGAGATTCATAGTTATTTTTCCGAATG
+TCTCATTAAATGAAAGGTCCCACAGTCGTCCCGCTAGGGGAGAGCAAATTAAAATAAAAT
+CAAGACCCAAGCTTCCCACCTTTCATGATCTCCACTGCTTCCTGCTGTCTTTTTTGTGGA
+TACAGGGGTGTTAAAGTGTCATTGTTTATAAACCTACAATAAAATGCAGAGCCCTCACTA
+CATTTCTAAACCTGAAAAACTACCTAGATTTTAAGCAAGGGAATTATTCTCTGCACATCT
+TCTTTTTAAAAAACTGTTTAGTAATGATGCTTCATGTAAAGCAGCTGCCGCCTCTCACAA
+AGAAGCCTCCACAGTGTTGCTGGATGAGTCATGAGTCATACATGAATATGGAATTAGCAA
+AATGATCATTTGCTCAATTGTCAAGGCCTGTCTCTGTAGAATGAACGCCTATTGTGAAAG
+TGCAAAATTTCTGTGAAAATACCAAAAGGAGGAGAGTTGCTTTTATATGGGGTAGGAATA
+TTGGACGCATCCTTGCTCAGGCTCAGGTAAAATAATATATACACCACCCTATAAGGAATG
+CAAAAGAAAACTGTTGTTTTGTTGTTGTTGTTGTTGTTTTTAGTTATCAGTAAAGTACAG
+TTAGTTCTTCTCCGTAACTCCTGGGAAGTGTACTTTGAAACCAGAGGCACCCATTTCAGT
+ATAGAGGAACCTTTCAGAACCTTCTACCTTCTACCAGTTTCTCCTCAGGGATTAGTTAAA
+TTGGGGTTAGGGACAGACAGATGAGAACAGGGGGTGGGGCCTTTTGGGTGGTGATTAGGC
+CACAAGAGTTGAGCTCTCAGGAATGAAATTAGTATCCTTATGAAGGAGATCCTAGAAAGT
+CCCCTCATCCCTTCCACTCTGTGAGGACACAGTGAGAAGGCTCCCTCTATGAACCAAAAG
+TAAGCCCTCATCAGACACCACATCTGCCAGTGCCTTGATCTTGGACTTCCCCGCCTCCAT
+AGCTGTGAATAATTTTCTGTTGCTTATTACTATCAGGTTTATGGTATTTTTTTTTATAGT
+AGCTTGGAAGGACTAAGACAAGGCCTATATGAGACACCTTCGTGGGAACTCGGGTAAGTC
+ATCCTTCACAGAAGAGTGAAAGATATGGAAAATGTCCCAACTCTAGTGAAAAGAGGGAAG
+TACCTCAAAGCTTTCAATATTTAGAAATATGTATGTGCTTATATCATTAGAAATCAGTCT
+TTGAGGCTTAGAAAAGAGAATGTTCATTAATATAAACCTGAAAGTTGTCAGAATGTACAT
+TTATGCTTTTTCTGATGAACATTATAAAATAGCAGGAGAGTAACCTTCTCAGCATTTTAA
+AAAACGTTATTCCTGATAAACATTTTTTTCCTAGAGAAACATGTCTCTTAAATGGTAAAC
+ACTAAGATAGTGGGAGAATAAATTATTTCCAAATTACACAGTTATGTTCAAAGCCTGGAG
+AGGTAATATTTTTTCTTTTTTTTTTTTATGTTTCACTTTTTTGAGATGGAGTCTTTCTCT
+GTCGCCCAGGCTGGAGTGCAGTGGCATGATCTTGGCTCACTGCAAGCTCCACCTCCTGGG
+TTCTTGCCATTCTCCTGCCTCAGCCTCCAAGTAGCTGGGACTACAGGCACCCGCCACCAC
+GCCTGGCTAATTTTTTGTATTTTTAGTACAGACAGGGTTTCACTGTGTTAGCCAGGATGG
+TCTCCATCTCCTGACCTCGTGATCCACCCACCTTGGCCTCCCAAAGTGCTGGGATTACAG
+GCGTGAGCCACCGCGCCCGGCCTATTTTCATTTTTTAGTCAGTGTGGAAGGCAATTTCAG
+AGGCATACTTCAAATTACTCCATAGCTTTACACTGTTGAGATGAAGACCACATGCTAATG
+AGAACTTAACAAATGCAGTGTAATAACAGCAATGCGCTCATGAACATATGTGATTTTAAT
+CCCTTCTTAAGTATTAAAGTGTACAATCTGTAGATAACGGTTAAGATTCTAGATTTAGGT
+TTGGATTTAGACAGTTGAGATTTTAGAGGGTTACACTCTGCTTTCCAGTTTGTGCTATTC
+TAAGCTGTTTAGTTTATCATTTCTATGACATTCCAAGTCAAACGAGGACAGCTTGATTTT
+GCTGATAGCTGATGAAACTGTAAAATGCTGCATAATTAGATAGAAGGGAAGTATCTATTT
+AAGAAGGAAACTAAACATCCAGGAAGTTATTCTATGAGGGGGAAAAAGTGATGTGAAAAA
+TATTTTTGCCCTGTTACCAGACTTTTCCAAGAATTTAGATTTAGCTTTTGTTTACAGCAT
+GGTTTGACATTCCTGGATGTCTTTATATAATTGACTTAAGTAATTGACATTTGAATCGTA
+CTTTCTAGGTATGAAACTGCTTCACACATACTGACTCCTTTAGTACTCCAAAATAATTGT
+AAGAAAAATATTGCCATTACTCAGTTTAATAATAAAGACACTTGAGCTTCCACAAGTTAG
+ATTATTTTCCCAAAGTTATACAGGATAAGTGGCAAAACTGGGAAGTAAATTCAAAAATAT
+TTTGTCTTTTCCCCACTATCATACTGACTTTAGCTTGAGAATGTCTAAGACTGAAAATGA
+GGAGTCAGTCATCTTGATTTGTCTAAAATCTCCTGACTTGTATCTCTGCGGCAGTCTCCT
+CACACAAACTCCATCCCTCCTACATACTGGTGATTCATAAAGCAGAAGCAATCAAGTCAC
+TACCTACTCAGGAGGCTGCTAGCATCTTAGCCCAGGAATCAAGGCTTTTAAAATACAGCC
+AAATCACATCTTCAGTAATCGTTACAACAGTTATAGCAATTGCTTACACAATGTTCCTAT
+TTATTATGTGCAAGACACCATTCCAATAATTTTGCATATATTATCTCATTTAATCCTAAC
+AACAATGACAACAAAAACTCATGAGGAAGGTACTATTAGGACATCAATTTTCCAGCAGAG
+GAAATATGGAAATCTGGAAAATGAAGTCACTTGTTCAGGATATCCTGTCTTCCCTTTCAC
+TGGGTTCATGATATACTGCCTTTTCTTTCCATTAACAAGGTGAGAAATAGAAGGGTTGGG
+GGTGTACAGCACCTGGATATGAAGCACTATCTGTAGTTGGGAGGGGAAACTGAGGACTGT
+AGGTGTGATGCATTACGGAATTTGGGATGTTTCATAAATTTATCCTACAGTGAAAGGGAA
+AGCTTAGAGAATGACAAGTTATGCAAGAAAATGCTATTCTCAGAGACCAAGAAAGGCACA
+GTGGATGCAAGATAATCACATTGTTAATAAATTGGGATACCACACAAATTAGTGTATATG
+ACCACATCCAGCTAAATGCTGATTATACCAAAGACTTCTGAAATATACTAAAGATGTAAA
+AGTTGGAAGGGCAATTAAGTAAACACAAAAGAAAAGAGAAGAAATGGAAATGGAAATTGG
+AATATTGTTCAAGCGAATTTACATAATTAAACCAACTATGTACTAATTATATGAAACACT
+TCTGAAATATACTGCATGTTTAAAAGGAAAAAAAAATGTAAATAGCAAACAGATGAAACA
+AGAATAGAAATACCAAACTGCATTGATATAAAAGGAAGAGGTTTGTTACTGAAACCAAAA
+CTGCTGTTTTGTCCTGAGTGATGGAATACAATGTTTATGACTAGAGGAATACTCTCTTTG
+TGCTGCTTTCAAAGCCGTATTTCAACTGGAGAATGGAAGAGAAAGACACTGAAAAGATGG
+CTCCCTCCGTAGTGGAGCAGTTTAACTAGCTTTTGTGCAAGATAGGACTAGGGAATCCCA
+GAGCTGATTTGGGAGGTATGAGATAAAAAGAGATTTATCTGAATTGGAAAATAAGGGAAA
+TTTGTTGTTCATTCTTTGTTATTTCTTAGTTCCAAGAAGGAGGAGGAAGATAAATATCGA
+AAATTAAATTTACCATGTTTCTCTTTGGACTACATAAATGTCCTTGTTCATCTCTAAGTT
+CTCAGTAAAACACAACACAGATAAACCCTCACGTGTAAGTCTCTCGGTATGTGGGGTTCT
+GAGTGTGTGACTCTGTGTGTATGTTTGTGTGTGTGTGTTTGCATTTAGTGCTCCAGGTGA
+CCATTGGTTAAATCCTGAAGTATCCAAACACCTTCCAAGCTTCTCAGGGTTTTCTCATTT
+CTCTTAGGCAAATACTATATTTTTAAGTGTGACCACTAACTATTATTTTCAACTATGTCA
+CATGAACAGCTTTGTGCACTTTCTTGGAATATAACTTTCATATACTGTTGGAGATGAAAT
+GCGTAATATGTGCAAAATTCATCTGAGAAATCTCTGTCCAAATCTGTAACATCGATGCTA
+CAAAAAAGCAGAAAATGTACTTATTACGTTGCCTCAATAAAATATTGTAAAAATATTATT
+AACCTTACCATGGCCAGTAATTTCTGCCTAAAAAGATTATACAGGAGACAGAATACCCTT
+TCCTTTTAATACACATTCCCAGTTTTGAGAAACGCCCCTTTGCAATCATGCATACTTCCC
+CAAACTGGGTCTAAATCATTAATGATTCACCTAAATTATTAACACTCTCGAGAGATCGAA
+AAACATTACACACCAACAGTAAGCGGTAAAGGCCATGTTAGCTTAGACACCTTGACACAC
+AGACATAGAAAATGCTTATAGTTTCAGTTCTATAATTTCAACCAAAAATAAATATAAGAA
+CACAGCTACTCACCTGTCGAGATATGAAATAACTTTTCTTCTTCCTAATGGGCGAAAAAA
+TTCTTAATTGATTTCAGCTACAATAGAAAAATAAGCCATCAAGCTAATAAATAACAAAAC
+AGACTCTATGTCATCTCTCATCCAAGGGATAAAATATCTCCATAGACTATTAATCCATTT
+ATAGTGATCAACAAATATGCAGACGATAAAATCTAATTCCTAATCATTGCTGCCACCAAT
+GAGGAATAATAACTTATCAGCCTTTAACAAATGAAAAGCAAAAACAAACCACAAAAATAT
+TGGAGAGAAGAAAGAAAATTTTGAAAAATAGAGTCGACAAAGTTCTACTGTCACATTGGA
+TCTATCATAAGGAGGTTTATTCTCTTCATGAACTACACCACTTCTCTGGTGATGAAGTTT
+ATTTGGTTCTGTCAGGTGAATCTGTCAAGCATTTTGGTGGAAGACCTCCAAAATTACATA
+CAGTTACAATATCTAAGCATTGGGATACCAGTACACAAATAGAAAAACAGTTCAATGAAA
+GATGAAATAGTCTCAAAGCTTCCATAGAGTATGTAGAATAATTTAATACAGGCTTACAGA
+GGCACCACACATCACTAGAAACAAATAAGGATTTTTCAATAAAAGACTCTGAGAGAATTA
+GTTATTTGGAAAGAAAATAAAATTAAGTCATAATCTTATACTTGTGCTAGCACAATAGAG
+TCCAAATATATCAAATGAAAAAAAATGAAAAAAATCAATCACTTTAATAACTACCAGAAA
+AAAAATAAGATGGTCATATTTGCACTGTTTGGGGAAAGACTTTCTAACATTTTATTTTAA
+AACTCAGATACAGAGATTAGATTATATGGTACTGTTGGTCTGTAGTCCGTTCTCATAGCT
+GACCACTTTAAAGCTCTCTTTTTGCCTCATTTATTGCTTGAGCTGATGTTCATGTCTCCT
+ATCCACTCTCTTTCTACTCCTCTCATAGAGGACCATTTTGCTGTTCTTAAATGTTTGCTA
+TTTTCTGTTTATAGGTGTTCATTATATACATCTGTTTTTAATTTTCATAAATATCATCAT
+GTTATGTATCTTATTCTACATTTATATTTTATGCTTTTAAAATCCCTCATGTTGCTGTGT
+TTACAATTATAACTGCTTCAAACTGCTGCATAATACTTCATGGTCAGCAGACATGGAGGG
+TTTTAATGTTTTGTTTTTGCTTTTGGTTTGTTAAAGGCCATTAGATTATGAATCCTCATT
+GGTTGTAGCAATGAATGGGGTTTTGGGTCTTTGGTCTGATTATTTCACGATCACTATAAA
+TAGGTTAATGGTTTATAGATATCTTTTATTCCTTGGGTGAGAGATGACAGAGAGTCTGTT
+TTGTTATTGATGTGTTTTATTCCCATTAGTTTGTCCATGTCTTATTGGACAAAGCTAGTG
+CCATGGCCAGGTGCAACATCAGTGTATAAGGAAATAGTTCTCTCACTTAACTGAAAAACT
+AAAAGGCTGAAATCAATCACCCAGTCTGCCATAGAAGATATTTAAGGCAACATTAAAGTT
+GTCGGGAAACTTCTTGGCATTTCAGTAACTTGTTTAACAGATACATCTGAAACAACTGGT
+AGCAGAAGAGTATGGAAAGTTACAGGGGCTGAGAGAGAAGAAAAAGAACAGGCTGGGAAT
+GAAATTAGGGTTAGGATAGATGACTAGAGGTGTTTTCCCTAGGATAAATATTCTAGATCA
+TTCAGAAGATGAAGAAATGCATTTTGAGCAGTGTACAGGAGCCAGTCAATTGAACTAATG
+GATATCATTCCCCCAATTTTTCCTATTGAAAAATGTAATAGATTGGAGAACATGAAAAAA
+ATTCAAGCTGGTAAAGGTAAATACCCTTTATTTCAAATTCTTTCCCTTCAAGCAAAAATG
+CTTAAGAGACTTTTTACTGCCCCTTTAAGAATCCCACAGTCTTTTGAGAGTTAGGAACAC
+TGGAGCCTAAAAGACTCCCCTAGCCTGAGGGAGCTCCATTGTTATAGCATGTGAGGAGCA
+GTATGCAAGTTATTCTAGCTTTACACCTTTACCTCTGGATAATGGTCCTATTAATAGAAT
+TATGCTGAATAAAATATAAAACAGTTGAAATGAATGACTATGTCTTAATTAAAAAGACAT
+TTTTATAAAAGCACTCACCTCCACATTGTTCCTTAATCGGAAAAGGCAATTAGCCACATT
+TTAGAACATTTCTAATTAATCAGAATTTCCATGATATTAACTTCTTCATAGTTTGAGCTT
+GTATCTGGTAAGATTCATTCATTTTTAAACCTGAGACTCATTCATCTACATATATAAATG
+AGAGTTGGTCATTTATAACACTATTTTCTATTCATGCTTGCTCACAGATTCTATATGCCA
+GTAGATCTGCTCCTGAATGAAAGCATATTTAATCAGTACATCAGCAATGCTACATTTCCG
+TTCACAGCAGAGCAAATGAGATTCCAAGCCTATCTTAAAAAAAAATTCTCGATTTATAAA
+AACATCTAAAAACAACTTTTCGTATTAATTCCTTAAGCACATTCCCAATTATAATTTTTG
+TTTATTTTATTTTCTCCTATACCAAGAAAGGCAGCACTATAGAGTTGACGAGGCACTATT
+GAGAAGCAACATAATTAAGTTGCCAAGCCGTGTATCTGAAGACAATTCAGTATGCCAAAT
+AGAGGTGGAATCTGGCACTTAAAACAGCCTTCTGTTACACTAGGTAGCTAGTCAGACATG
+AGCAGGGCAGGATAGGTGCCCCACACACAAACACCAGGAATATCCAGCTATGGTGATGGT
+CAATCAATTGTTAACTGTCTCTCTAAAATAATAATTGGTCATAGCCAGCAGCCCCAGGGA
+AAGTCAGTCTCCCAATAAAGAGGAAAAACCTGAAACTGGTGATCAGCAGCCTCGCGATGA
+GATCTCAGGAGTTGGGTGACTGGGTTCAAGCATGCACACTAAGAGGCAAAACGGTGGAGT
+TTAACTGGAATATGACCTTCCTCTAGAAACACTTGACTGGTAAGGGAAGAATGGCCCCAG
+TGAGCATGCGTAAAACTCCAATAAACACACTGCGTATGAGGCCCCTCCCAAATGCTAGCC
+AGCCACTGCACATGCAGACAGGCCAAGGGAAGAATCAGGGGAGAAGTGATGCAAGACCCC
+GAAGCATGCCAACATTTAAACCCCAAGTCAAAGGTCAAACAGTGCACTTGATCTCTCACG
+TTGCCCGATGGGCCCTATTCCAAGGGCAGTTTACTAGCTTTCATTGATGCTCTAAAGCTT
+TTTAACAAATTTTGACTTCTGCTCCTTGGTCTCTCCTTCTGCTTTATGCCCCTCAGTCAA
+ATTCTTTCTTCTGAGAAGGCTAGAATTGAGGTTGCTGCAAACCCGTACAGATTCGCAGCT
+GGTAACAAACTTTGGTGCCACATGACTTGGATACGTTCCACTGCTAACACTTTCCCACTT
+TCCCCTTTAGTCCTAAATCAAAAACTGAGATCATGATTGATCTCAATTATCAAAATCCTT
+ACTGGGTCAGGGGGTCAGGATTATAAACATTTCCTGAATACAAATGAAGACCTAAATGGT
+AGAGATGTTTAGAGAACGGTCCCTTGCTTACTTGACATTGCAATCCCTACTCACCAGTGC
+CCCAAACCAGGTACATGGTGTTTAGATTCCATTTGGGTCCCATTAGATGAAATGGGATTA
+ACACCAAATCTGGTCACTCAGTAGTCCATGCTAGAAACTCAAGAAAGACAGAATTTGGGT
+TTCCTTGTGTGCGCTTTCTCTGTTTTCAGAAACAGTCACAGCTGAAACTGCTACGGACTG
+CAGAGGGGATTTTCATTTCAATGTTAATATTTTATCACAGCAATATTAACTCCAAAATTA
+ACAATTATAATAATTATTTATGTTTTCTTCCTTATTTCCTTCCAAGTAGCTCAGTCACAT
+CCACCCTGACACCCACAGGGGAGGTGTGCTAGCAGTGGGGGGCAAGGATGGTCAGGCTTT
+ACATCTGACACATGGAAGACATAGGTAAGCTTACCTTAGAGGCTCATGGGATCAAGGATC
+TAGTCACCAGATGCAGTGGTCAAACTGATCACGCAGCCTTTCATTAGATTTCTCTCCTTC
+CCTGCTTCACTCCTCCATCCCTCATTTTTGCTCCCTGGGATGGTGTTTCAAAAACAACCA
+CTTGCACATGTTTCTTTTCTCTCAAGCTCTGCTTTTGGCAGAACCCAACCCAAGAAGTCT
+GAATCCTCATGTCTCCATCTCTCTCTCTGTTGTTCTGTCTGATTAGCTTTCTGTCTATCC
+ACCTTCCCTTGTTAAGGACTTATAATTTAGACCAAAATGATTGGATTGAGAGAAAGCATA
+CATCAATGAATAATTAGTAAGATGTATTAGTCTGTTCTTATGCTGCTGATAAAGACATAC
+CAGGGACTGGGTAATTTGTAAAGAAAAAGAGGTTTAATGGACTCACAGTTCCACGTGGCT
+AGGGAGGCCTCCCAATCATGGTGGAAGGTGAAAGGCACATCTTACACGGCGGCAGGCAAG
+AGAGAAGTCAGAACAAATGAAAGGGGTTTCCCTTTATACAACCATTGTATCTTATGAGAC
+TTATTCACTACCACGAGAATGGTATAGGGGCAACTGCCACCATGATTCAATTATCTCCCA
+CCAGGTTCCTCCCACAACATGGGGGAATTATGGGAGCTAAATTCAAGATGAGATTTGGAT
+GGGGACACAGCCAAACCATTCACCAGGCATGCTAATAAATGCTGAAACACAAGCACTTTC
+AAATTTTTTGGTATATTGTTCTAGAGTTTTTCTTTGGACATTTAAATATTTATATATGTA
+CATGTATTTTTACAAAAATGGGATACCATTATCCATAGCCACACACACATACATATATGT
+CAAGACTCTTATTTTTCAATTAAACTTAACATGGTATTTATTGATTTCAATAATTCTAGA
+TATTGCACCCATTTTTTGTAGCTGCAACATGTTAACATTACAATATTTGGATGGTTGACC
+CGGATTTAAAAATAATCCCTTAGCAATTAATGCTATTATTAATTTTTTAGGTATTCTGAC
+AACAAGTACACAAACACATTTTATGAATAGAGATAATATATTCACAAATAAATCTAATCT
+GTATGTATTTGACTATTGATGCAGCATATGTTATCCTGTTTGGGTTTTGAGCTTTGGTAT
+GCTTCCTCTTGTCAATTGCCTGTTTGTTTCCTTCCTCGAATTGTTCGCAATGAGTTCTTA
+TAGTAGTCATTCATTTCAATGGCAAATAGTACTGATGGAGGACCTTCAGTAATATTCAGA
+AGCTACAGATACAGTGGTAAACATGAAACATGGCTCTGCCCTCTGGAGCATAGAGTCTAG
+CAAAAAAAGATGGTCACTAACAATTACAGCTACAATGAAGGTTGGAAAATAATTCTCTGG
+CACAGAAAATGTACTGCAAGAGAAGTCAGAGAATTGGGCCATCAGGGAAGACTGCCTGAG
+GAAGTAATACAAGTTGAGATTGAAGAGTAAGTGAAAGTCGACCAAGTGAAGAACACAAGA
+ACATTTCATGGAGAAGAAAAAGACATAAAAACACAGGGAAAAAGTGTATTATGTTTGAAT
+ATATTAACCCTTTGTCAACCATATATGTGCATATATATATTCAATATATAAAACATTTTT
+TAGATCATTGTTTGGTTTGAGCCACTTTGCCAAATGCAAGTTTCAAAAATTTTTATTGTC
+AAATATGTAAATCTTTTCCTTTAAGATTTTAGGTTTGGATGTCATACCTAGATAAGCTTA
+TGTTCACATTCACTTATATTTTCTTCTAGTATTTTTTCTTCTTCTTTTTTCTTTTAGCTC
+TCAGACCATCACACAGAACTTCCTAGTGCTTTTCTCATTTTATTTTTTCTCTTTCACATT
+TTTACAGTCTGGAATGTATTTGGTTGTAGACTATAAAATGGGTATAATTTTATTTCAGAT
+GAATTTACATTCTTTTTTCTCAAAAGCTTACATTATCTAGTAGGTTCCCTACTTTGCCAC
+AGAACTTTCTTAAAGCAAATATCTATCCCCCACCACACATGGGTTCAAATCTTCAGAGAA
+ATGACAGAGCTCCCAAACATTACTAACATCTCCTGCTCTCTGGCCCAGCACATCCTTTCT
+CCAGGGTTCTCTCTGACCTTCACTCCTGATTTTCACCTCAATTTTTCTTTTAAAAATTCT
+TACATATTACTCTGTCCACGATGCTACCCCCAAATTAAGTCAATTAGTTTGGTATTCTTT
+ATTAACCCACAAATCAAAAAAGAGACATTAATATCCATTAATATGAAAATGAAATATACA
+TAAGAAATCCATTTTACCTTCTTTGGAACTATGTCATTCAACGAAAGTTTTCACTAGTTT
+TTTTAAATATTTTTTTTCTAAAATAACTAAGAGTAAAAGAATTCACTCTAAAAGTAACTG
+GTACTTAGACTGCATGACATTGGCACAATAAAATGCAACAAAATAATTTAGACAGTGCCC
+TTCACCAAAATAAGCAAATTTGTATAGCCAAATTCTTGCAAAGAGGATTAACCTGTCTCC
+GAAGCAGCAGTAATTACTGGATGTTGAGAAACACGAAATACCTGTGCTTGTAGCAGCGTG
+AAACCTGGCCTATGGTCCCAAAATATTACCAGAAATATAAAATCATGAATATACACATCA
+TTAAATACATTCCATATTTTAGAAGCAACTCACTAAAGCTGCTTAGAACCTTCTGAATTA
+GTAATTAAAATATATAACTAAAAGTATTATTTTCTTATTACAGCAATAAAAATGCAGGCA
+TTTTTTTTTCTCACTGAATATTCTTTTGTGATTTTAAAGACATGACACATGACCTCTAAA
+ATTGTCAGAGAGATAGAACTGGCTCTTGTATTTAAAACTTCTTTTATTGAAAACCTATGT
+TCAACCTTTCCCTGAATGATTATTGCCTATGGTCAGTAACAAGATGGTGGTCTAGACTCT
+ATGCTCATTAACACTTTGCCTGATTTGGCAAACATTATTCCTTTTTTAGAAGGGTTTAGA
+TCCTGATTGATTTAGTGATATTACTGGGGTGAGAGTAGCAGGATTACTATTAGGAAAGAA
+AAAATGGTACATTTTTCACACTGATTTGAAGGTCAGTTGTTCATACTGACCCAGTGAGTT
+CTCCACCTTGCAGCAATGATCAGCAAAGAGCAGCAACAGTAAAAGTCTACCTCTAAGCCT
+GGGAGAGGATCAAGGAAGGCAAAGGCAGTGTCAGCACTAGCAGGTTGGTGAAGATAAGGA
+GGAGTGGCAAATGCCGTGGCCAAGTGGGTCAGTCCAGGAAAAGAACAACAAGTTGGTCAA
+AATGCAGAGCCAATAACTGTCTAGTCTCTTCATAGAGTGTGTTCCTGTCCATGCCCTAGT
+TTGGTCTGAGTTTTGCTTTCTGGTATGGACATTTGGGAAGGGAAAGACTTGCAGCCCTGA
+AGACAAGAGCTTGCTGACACAGAGCCGGACTCCTGTAGAGGACAATATTCTGCTTCCCAA
+GCACAGGATGTTGTGGTGGGTGTCTAAGAACAATGTCTTCCTAAAAGATCATCTCTGTGT
+TATCATTGATCTTTATCTTCCTGAAGAATATATACTTTCCATTTTAAGTTAAGACATGGG
+ATTTGCCAAGATTGTAAACCACACTGAGAGTCAATTTTGGAGTTTGGCAAATCATGTATG
+CACACCCTATCTAGTATTGATATCTAGTTGTCAACTTTTTATTCTGTTGTTTAGCAGCTG
+TATTAAGAGAAAAATCTAGAGAGTAATTAGTTTATAGAGTATAGAGGGAAGGAATAACGA
+GCCGTTTTCTATTGTTGAGACATTAAAAGTACATACAGGGAGGTTATCTTGGAAGACAGT
+AACATTCCAAATTATTAAAATTTGGTGCTTGTATCTTAACGATGTGCATTATATTCCTAA
+TTCTGAATTGCTGACCAATCCAGTACAAGCCAGTTCACAGCATTTCCAGTGGCCTATTTC
+CAAACCTTGTGGTCTGGTACAAACAACATGTAGTTGTTACCATGTGGTAGCTTGTCCTAC
+TACACAGTCCCTGATGTCAGTCTGGCTATGGAAGGAAACACTTGACAGGAGACTGAACAA
+ATGCAAGCCCTAATGTACGAGATGCTCTCCACCTGTCAAATTCCCAAGAACACCCTCAAT
+GCTCACTCTCTGAATGAGCAGCGGAGATAACCATTTTCTACTCGAAACCATTTCAGAGCC
+ACCAACAATATTACTGGTATTTCCCTTGTTACTAAAAGGAGAAACAAAGAACTATCTGGA
+TGCATTCAGAAGATACTACACTTCAAGAAGAGCCCCTGACTTAAGTTGCAATAGTAAAAG
+ATGCTTCCCTAACCATTCCCACACCAGCTCTCCAAGGGCAGCAGAACCATTTTCAGAAAA
+CGACAATCGACATTCAGAACTTTTCACAGCACAGAACATATAATGCTTATGCTGACAGCT
+GTTATCAGGAAAGAATCGGAAAATCTGAATGAATGCCAGGATATTCTCAATAAAACTGGT
+AAACATCCCATGGACATAATGGCAACAAGCAGGGTGGAAGTTGTTATGAGATTCATCACG
+TTGCATGAGGAATGTCAGGATGATAAGGCTTTTATCACCCCATGGTCGCCACTGACAACT
+TTCCAGGGGGATCTTTTGAATGGCTGTGTCATTGAGCTCATTAATGAATTTGAAAGGAGG
+TTAATTTTAATCAAGAATGTAATCAAGGCTGGTGCGGTGGCTCACGCCTGTAATCCCAGC
+ACTTTGGGAGGCCGAGGCAGGCGGATCACGAGGTCAGGAGATCGAGACCATCCTGGCTAA
+CACAGTGAAACCCCATCTCTACTAAAAATGGAAAAAAAATAAAAAAATTAAAAAATAAAA
+ATTAGCCAGGCTTGGTGGTGGGCACCTGTAGTCCCAGCTACTCAGGAGGCTGAGGCAGGA
+GAATGGCATGAACCCAGGAGGCGGAGCTTGCAGTGAGCCAAGATGGGGCCACTGCACTCC
+AGCCTGGGCAACAGAGCAAGACTCTGTCTCAAAAAAAAAAAAAAAAAAAGAAAGAAAGAA
+TGTAATCGAGAAGGGGAAAGTCAAGCCCCAGTAACTCACTCACTTGCAGCAGAAGAGTAA
+GCACAGAACCACAGTGCGATGGAGTGAGGGTGCTCAACCTAGCCTGGGCCACAGGCCAAC
+CTGGCCTCTTATTCCTAATCAGGTGCTGGCAAGGATGCAATTTTGAACTTGTGTTAACAA
+ATACTCCATGTTTCCCATTCCACACCTGGGAAAATCATAGCAGAATCCAAACCTAACGAT
+GAAACTGACTTCTGATAGAAAAACAGGCCCCTTTACAGGAATACCCACGGACAACCTCTT
+CATACCGAACCTCCATGCTTGATGCCTTCTGATTACTGAGAGTTCGCCTCTGCAGTACCT
+ACACCAAGTTGCTTCCACCTGAGGCCACACCCTCAACTCCTCCCTGCCTCCACCTGTGGC
+TTCCGGGATCTGACTACCAAAGTTGGGCTTCTCTTCTGAAAATAGATTGGAGGTTTGACT
+CGGCTATAGTCACTAGGTACAGTCCAAGAACAACTGACATATCTCCTGAGGCTCTGATCT
+GAGCTGCTTTCACCTGAGGTCACAAAAGACTCACCTCTGCTTTCTGCTTTCAGGAGAATC
+ACATTTGAAGTACAGAGAGAGACACATGCGGGAAACAGACAGAGCTGACTGGTTTCCTGT
+AATCTGTCCAAATCTTCTTTGCTAGGTGTCACAACCCAGTCCACACTTCAAGTCTTAATA
+AAAGGAAGTAGGAACTTCAGAAACAGCAGTGCCCATGCCTGCATCTTTCTACCTGAACTC
+GTACAATCTCATAGATCCTTGCTTTACATACACAGAGCATGTTTAGTTCACCGCTTTTTA
+TCTTACAACATATGAGAAGGGATATTAGAAGTAAAAACTTGAAGAATGAGTGGTAGATAC
+TGAGAGAAGAAGAAACTCTTGGTTGCCAGACCCCCAATAGCCACCCACAGCAAGAGAAAT
+GAAGACATAACAATGGATAAAGAAAACGGAAACAAACAAACAAACAAAAAAACCTCAAAG
+TTCTATCACTGTTTAGTATCATGATGGCTGTTTGTAATGGCTTCATGTCAAAAAAAATTA
+AGTTGGTTCAATACACTTTGTGTAAGAGAGTGTCAAGCTTTTAAAACAAATGTTTCAATG
+TTTTTCTGGGCAAAGAGGGATAAGGTAAAAAGAAGAAAATAATAATTACCAGGATATAAG
+CAAAAGGGATTAGAACTAGGATATTAAACAAGTTTCATTTCATTTTCCAATTCTGTTTCA
+TGCTTAGGGACGTCTTGGAGCACTCTACTGCTAAGGAGTATGGGGCTATATCCAGTAGAA
+AGATGGCTGGGGCTGATTAGTGATGTTTTCCATGGCTTTGGAAGTAGGGAAGTGGGTGAA
+GTATAGAATGGAGGACTAGGAGGTGAACTTGGGTCCTGTACTTTCCATCCCTAGATAAAG
+AAAGTGGTGCTGCAGATAAAGGTAATGGAGAGATGCTATTGGCATTTACAAAACATACAC
+AGTTCACTCCTAAGACTTTTTTTTTTTTTTGAGACAGAGTCTTGCTCTATTGCCCAGGCT
+GGAGTGCAGTGGCACAATCATAGCTCACTGTAACCTCAAACTCTTAGACTCAAGCAATCT
+TCCACCTCAGCCTCCCAAGTAGCTGGGACTATAGGCACACACCACCACACAAACCTTTTT
+TTTCTTTTTTTCTGTTTTGGAGAGATGGGATCTCACTATGTTCTCCAGGCTGGTCTTGAA
+CTCTTGGCATCAAGAGATCCTACTGCCTTGGCCTCCCAAGGTGCTGGGATTACAGGCATG
+AGTCACTGTGCCAGGGCCTAAAACTTTTAAAATATTACTGAATAAAGACATGTCCACTGC
+TTTCATAGCTTAAGATATATAGCTACTTAGAATTTTAGTTGAATTCACAAAAATTAGGCA
+GTATAATATGGCAGGAGTCATTTAGCAAGCTTCTAATTAGAATATTTGATGATAGTATGG
+TGCATTGTAAACATTTCCATCTGTATTTTATTTCTGAGACTAAGAGTGATTTCTTTTAAT
+GAACCTTCTATTATGTCATTCAAGTTGTTGTTTAGAGAAAGACGTGATAAGAGTCCTGGT
+TCCTGAGAACATTTGCTATGGGCCATTAATTAACTTTGTGACCCAGTATAAGTCATAACA
+TTTCTTTGTTTCAATTTCAATAAACAATGAGTTCTCCATTAGCTAGAAAATCTACAAAAT
+CATTGTAAGTCTAGGGAAATTTATATTCTACAACAAATGTAAAATTCTCACAAAAGTAAT
+GACATGAACATATTGATCATCTGTAATATTTTCTAACACTTTGATTTACTATCCATATGT
+TCAGATGACAATCTTTTTAGGGAAAACAAAAACACAGACTGTTAGCATGTGAAAGAGATT
+CATGACCCTCCTTGGTCAGCAAAAACAATTGCAAATGAACATTTCTTAGTGATTTATTTG
+CATTAGCAAGGCTGTCAGGACATTTAAAATATTCCTGAATTGAGTTAATAAATAAAAGAA
+AGTCTGATTTTGACAAAAAGTCATAAAATGATACCATTCTAGGGCAATTATTTGAGGTTC
+TTTACTAGTCAATGTCTGTCTCCTGTCTCAGGGCAGGTATACTTCCAGCACATTCTTGTC
+ATGAGGAAAGCCAAACAAGCTCTGCTGGGCTTTGTTGCTTCAAAGTCTTATTTTTTATTG
+TGCGTTCAAAACCAAAACAAAAAAGAAGAGGTACAATCAACTGATCTTCTCAGTGTATTT
+GCCACTAGGTTCATGATGCAATTTAGGCAAGTTAGTGAATCCTGCTATGAAAATATCAAA
+GCTTTCGGTCATTTGTCCATATACTGGCATAACACATTGAACATAGTAATCAGGAAAACT
+CATTTTAATGAAGAAATGAACAAAATTACAAATAAGTGATTAAACCATTAAGAGTAAAAG
+CACCATTAGATTTCATTTATAATGCATCCTTCACAGCCTATCATTCACCTATGAAGTTCT
+AAACCATATTGCTGTGTATGCAAAAATGTCCTAGCTTACAGTAAAAACTCAGTTATGCTT
+CTTTCCACATGATAAGCTGAAATCGTAGTATCAAAGTTTCCAAAAAAATTCACCATTAAA
+TTAATTATTGGGGCAAAAACATCAAGGAAACCAGATAATAACAATAGCAACCACAATAAA
+AACCCGCAAGCAAAACAAAAAGACAATATCATTACATTTAGTGGTTGTGATCATGGCGAG
+TAATGGGTCACAGTGCTATTGAGTTTTCACCAAATTTTTGTTTATTATTATTAATGTTTA
+ATTAGAGGGACTTACAATATCTGAGTAGTCTACATTTAAATAATGTTGGAGATCACCAAT
+GTTAGCCCATTGAAATCATAATAAATATTGCACAATTGCTTTTTTAGTTTTCCAACTGAG
+CTTTATTTCTATCTTTTTATTTTACAAATGTAATAAAGAGCACTCAAAAATACACACATG
+TACATACTGCAGGTGAAGATAATTTAGTCCACACACACACGTTGTAGAAGATATTTTAGT
+TTCAGTAGAGGCACTGCTTATTCTGCAAATCCTTCATTGACTTTTGAGACTGAGTTAGAC
+CCTTTGTGTTCCCATTGTACATCACAATGATACATTCAGAATCATACAATGATACACCTA
+CCACAGTGTCAAAGACTTCCTAAGTGCCCATCTATCCAATTTTGACCATGAATCTTCTCA
+CATGTATACTACCAATGCCTGATAAAGTTCATAGCATATTAGATCTGTTCAGTAAATACT
+TACGTGAATGAATGACATTATGGTGGGGGAAAAGTAGTACAGGGTTGGACCATAAATTTC
+CGTGTGGATCACTGAAATATATACTATTAACAATTGTGAAAAAGAAAGACCGTCAGTCAT
+TGTACATTGTTCAATAACACCTTATGTAAGATTTGCATAGTGCTTTCCTCTAAAGTTTAA
+TATCATTTCAAGACAAACATTAGAAATAAATGCTTTAATTTTGTCCTTAACTTTTAAATA
+TATTATACTTTAAGAATCGGATCAGCCTTTAAATTCATTATTTTAAATCATGACAAACTT
+GAACTGTTACTAAAAGGAGACAAAGCTTAACTAAAACTTTAAAGGTAAGTTATGAGAATT
+TTTAAATGTGAGCAGTTTGTTGACTAAGAAAATCTCAAGGCAAAAATGGAGAATGTTTAA
+TATTCTATATGGGATAATAAATATGAATTCAATAACCTAATGAAATTTCCTAAAAATTAA
+CATCTATATAATTTAACTGTATAATCTGATAATTTATGGGATTTTTAAAGAATCATTCAT
+AAAGTGATTCCACTGAGTTAATATCTATATAAGTACATTTCCATTCATTGATGTAGGACA
+TAAAAAAGAGTCTGACCAGGTTCCGAAGGAGGAGAGGTTATTTTAATTAAAATGACTATA
+GTTTAGATCTTTAAAGGAAATATAATTTTGAATAGTTTGGAATTATTCCATACCATTTAA
+AAATATCTGGAAAATATGTGAGACATGTATAACTTTTCTTACATGCTTAAATATCTGTCT
+TCTTGTGAGAGTATTGAACTTTCTACCTTAAAATAACTTCAATGTGGAGAAAGTTCTAGT
+TTCAAACTGCTTTCTTCAAATATACAGAAAGAATAGTAATGATGGGTTAGAATAGAACAG
+TTTTGACTTTTGGAATAAAATTTTAGAGTTGGGTGATCTGGGATGAGGTCACTTTCCTGT
+CACTTTTTTTTGACATTCAGAGCTTAAATAAATACTGTATGATTTTTGTGACTGATGATT
+CCCCCAAGGACTTACTCACCATCCACTATGAGACCATTGCAGGGACTGCATTTGGAAAAC
+AGGATGACAGTCAGGCAAGGGACAGAAATTTCAGTTCGTAAAGCACTTGGATAATTTTTG
+CTCTTATCATTTCTTTCTTTTTATTTGTTTGTTTTATTTCCCTTTGACACATTAAATGTC
+CCGTACTTTAAGTTGCTTATCACTTTCATGAACTGGTTCATGTACTATTTACTGTAGCTA
+CTCTACTTTTTATTTTCTCTTTACCTTGTCTAGTCCCTGAGAGGAAATAATCTTTCATAC
+ACATCTTGTGGTGTTCTTTCCCGAAATTATTCTTCAGGGTTATTGTAATAAAATTATCCT
+TTTGTGTATTCAGTGTTTTGGATATGATCTATTCTTTACATGTCCCTAAGATACATTGCT
+TTATGTTATTAACCTTAGAATATGATTTCCATTGCTCTGTCCAATACTTATGGAGAAAGT
+ACTGAATTTAAAAGAAAGAAGAATTTAAAATATTGGCTACATCCTCTTTTATCAGAAAGT
+AGTGTTTTTGGAGATGCATAATTTGTCACATCTTAACTTATCTATATTCATATGAGAAAA
+TGGCCTAATGAAAATCTACACTGACATGAAAAAGAGTTTCTGTAAGCGATAAATCTTTGC
+TAAGATTGTTACATTTTTCTAAAAAAAAAATTTAAAAATTATATATGGCCATTACAGAAT
+GCTCATATAAAAAATGCAGAGTCCAGGACAAGCTCTCTACAGCAACTTCTTTATCAAGTG
+GAAGTATACCGTGATGAAATCCCAATGAGGTTAAAAATTTTTTAAAATTCGGCCAGGCAT
+GGTGGCTCACACCTGTAATCCCAGCACTTTGGGAGGCCAAGGTGGGTGGATCACCTGAGG
+TCATGAGTTCAAGACCAGCCTGTCCAACATGGTGAAACCCTGTCTCTACTAAAAATATAA
+AAATCAGCCAGGTGTGGCTAATTTTATACAGATAAATGCATATAAATATTTAAATAAATA
+TTTAAAATTAATGAGAATTAGAAAGAAAAACATTTAACATGCCTGTGTGAATGCACATGT
+AAATGTGTATACTCACACAAATACTGAACCATCAAACACTAATTGATGTAGGTTAAATTT
+ATTGATACAAATAGGACTCGAATCATCAAAGAACCAAAAAACACTTTATTTTCTATAATC
+TTTGCTGTCATTGACATTAAAAATCTGTTTATTTGATGTTTTTGTTGCCTAATAAATTAT
+CTTTATTCATGAAGCTCTCTTTGCACTTAAAAATATTGTTTTATCAAAGTGTTTCCACTC
+ATTATCATAAATCTAATGCCTAATAATATTGAAAAAATTCTATACAAAAATGATAGACTA
+TGATGAGTCAAGTAATCTTTCCCCTTAAAAATACAATATTAGATAAAATGCTGAAATTTC
+AAAAAATTATTTGGTTGACTCCCAAAAAGGATAAAAAAAATCATCGAGGGTACATCAGGA
+AACAGGGTACCCAAATCTTGGTGATCAGGAGGTGAAGCCAAGGTCCTGTGCTGTTATTAA
+CACTGGATTGAAGCTTTAAGAGTTGCAATTTAAATGTCCAAACATGTGCCATGAGGCCTT
+AGAGTCAGATCCATCATCAAAGTGGCATGGCAATGTGTTTTCTAGACAAATCTTAAAGCC
+AGGGATTGCAAAACTGTAAATAGGGAAAAAACAAGCAATCAGTCAACAAAAAAATGTCCT
+GCACAATGACTATGGAAAGGAAACTGACTCCAGTCTCAGGTTGGTGGGAGGGGGGGGCTG
+TATTATGATTGAATACGAACTTTAAATCACCAGTATCTTCAGAATATTAAGGTTAAAAAT
+GAAAGAACAAAAACCAAAGACTTTTCTAGATTGAAAAAGACATAGCAATTAAAAACAATG
+CAAGAACCTCGATTGGATCCTAACTTGGGAGGAAATGCACAAAAAATAATTGTAGCAATG
+TGAAAAATTAAATATGGACTAATTATTTTATGATGTTATGAAATTATTTTTAGTTCTCTA
+AGGCATAATAATGACATTGTGGCTGTAGAATAATTCCCTTATACTTAGGAGATGTGAGCG
+GAATCATTTGCAGGTGATATTGCTAAGACAAAGACAATACGACTTTGAAAACACAATTAA
+ACTCACCATAACAAAGGAAAAGAGGGGAAGATATGTTCATCTCAATATTTGCATTTGAAA
+AGTTTATACTCAGGTTTGAAATAATACATTCTTAGCACAAATTAGACATAGAATTAGAAA
+AACAATACCTACCCAGTCAGTAACTTTTACCATTTGTGGTGAAGTACTATGAGTACAATA
+AAGTTAAGCATAAGGCAAAGGCAAAGCCAAGTCATTAACAGAAAAAAGGGAGTAGGCACT
+ATGAGACAGAGGACTTTTTTGAAAATTATTATTTTTTTTTAATATTTGGAGAGAGGGTCT
+CACTTTGTCACCCAGGCTGGTGTCTGGAGTGCAGTGGTGTGATCTTAACTCACTGTAGCC
+TCCACCTTCCAGGCTCAAGCAATTCTCCCACCTCAGACTCCCAAGTAGCTGGAACTACAG
+ACATGCACCACCGTACCCAGCTAACTTTTTTGTTTTTTGTAGAGACAGAGTCTTGCCATG
+TTGTCCAGGCTCATCTTGGACTCGTGGCCTTAAGCAATCCTCCCACCTCAGCCTTCCAAA
+GGTTGGGATTACAGGTGTGAGCCACCATCCCCAGCCTAGTTTTTCGTTTTGTTTTTGTTT
+GTTTTAATTTACCATTTCCACACATTCCATAGTCAGGAAAAAAAAATTCCACCTTTTGTC
+CTAATTGTAACTGAAATGAATGTTAGTACATCTGAAAGGGAAGGGGCACTGAAAACCACA
+CACACTCTGCAACTTTGGATAACTTCTCTAAGTTTTAAGAATTTCAGAGATCAAAGAATA
+TGTAAATAATCGAATTTAAACTCCATGAATTGAGAATCTAACTTACCCTAGAATAGATGC
+TCTATGAAAACACCCAATTTACATATTACTATCACAACCAAATCCTTCATCATCAAGAGT
+GTGTGGTATACAAGCACTCAATACATATTTGTTAAGTGAATTAATAATGTTAGTCACCAA
+ATAAGGCATTTAAGGAGTCAAATAAAGGAGGCAATGCATGAAAAGCATTCAACACAATGC
+CTGGTGTACATAAGCATTCAAAAATCTTAGTTATCATCATCATCACATTCATCGTTAATT
+TTATAATTATTATCGTAAATCTGTCATTTAATGAATAATTTCACATACAAGGAGTTGCAA
+TTACTAGCACAAACATTGACAAGACTTTGCAACACAAAACTACCAGTGAACTCAAGAAAT
+GTTTACTTTTGAGGCAAAACCTGTGAGCACATTTTGCTGGAGTGGCTTGTCCTCAGTATA
+CTTACATCACTGGGGAAAGCTAAAGAGACAGATCTGGGAGTCTTTGTTGAGCTCTGAAAG
+TAAGTAATATTATTAATAGGAATGTATTTTATATGTGTGTACTAATCCAACTGCTTATTT
+AAGTTTGCAACATGCTGATAGTTTTTTTCAGACTCATGGTACATGTATAAATTTGAGGCT
+TCTGGAAACATTTTTCAGATATAAATATTTTAATTTAGTGATTTTCTTACAAGTGAACAA
+TCATCCAAAGATCTGGATAAACCTCAGGCTCTGATGACCATTGACTCAAGTCTACAGGTA
+AAATATTTATTTATTTATTTTGAGACAGAGCCTCACTCTGTTGCCCCAGCTAGAGTGCGA
+TGGCATGATCGTGGCTCACTGCAACCTCCGCCTCCCTGGTTCAAGGGATTCTCCTTCCTC
+AGCCTCCTGAGTAGCTGGGACTACAGGAGTCCACCACCACACCCAGCTAATTTTTATATT
+TTTAGTAGAAATGGGGTTTCACCAAGTTGCCGAGCCTGGTCTCAAACTCCTGTGATCCAC
+CTACCTCAGCCTCTCAGAGTGCTGGGATGAAAGGGGTGAGCCACTGCGTCTGGCAGGATT
+TATTTTTTAATGTTTTTTTTTTTTGTCGTTGTTGTTGTTTTGTCTCAGTGTTGTCACTCT
+TCAGGAAGAACACTGCTATGCTTTCTAACTTTTCTTCTGAATTGAATTGACTTGCTGCAC
+TTGTGAGGTTGTAAGATGCAGCATCCAAGAAAAATGCAGATGTTTCCTTCTAAGCTGAAT
+TCCAAGAATAATAGTTTAGCAAACTTCAGTACTTGATGAGATATTTATACTGGCATTTGT
+TGTACTGTATTTATTACAGATATAAATAATATGACCTTTAGATGGTATAATTTTTTTCTT
+TAATTGAAAATAATTCACGTTCAATGTGGATGACATGTTTTAACAACATATGTGAGTGTC
+TGTGAAAAACAACCATAAACAGTTGAAATCTTTTATAATCCATATAGGTTGCCTAATATG
+GGCAACTCAAGGGGACACACATAATTTTGGTTGAAGCATAGATTTATTATGAATGATTAA
+TGGAAATCTTATTTTCAATTTGTGGAATAGAAAGTAAAATAAGAGACATCTTGCCTATAC
+TGTAATTAGATTAATTTTTAAGTATATGAATGGAAATAAAAAGGATGATGATGATATTAA
+TGATAAAACAATCTCTAGCTTGTATAAAGTGCTTGTTAATTATTACGCTTTTAAAAAACT
+GTTACATAAATTATCTTATTTAATTCTTATAGCAATCCTACAATATACAAATGCCATCCA
+CTTTTTGCAGATAAGGAAAAAGAAACACAGGATTTAAATGTTGAGCCTCGCTGTAATACA
+AGGATATTCTTCCTTAATACCCTTAAGTATATCTAATCCTAATATTTTTTAGAACTTTCT
+ATAAGCAAAGTCTTATTTTAGGTGCCTCAAGCCATAGACATGTTAATGAGGCAAGTTTCT
+ACTCTCCATAGGTTCAAAACACAAATAAATAAGTATCAGGTATCACAGCCCTATCCACAG
+ATAATCTGACACTCAGAAGTTCCCATGCCCAGGAGTCTGCTATAGAGTCCTCAGCTTGGT
+AACCTCCACCATCAGCATCAGTGGGTTCAGGCTCTCTGGGTCTCCAGCTAATCCTGCAGA
+GGCAGTGAGTACATTAAAACATCACACCTAATTCCACTCTCCCCTTACCCCTTTGTTCTA
+ATGTAGTTTGAGCTAGCCTCTCACATCTGAACTCTGTTAACACTGCTAGGTTCTTGCTAC
+GCATCAGAGCCAGGTCTGCCTCCAGGGATTATCTGTAAGTATTCACACTGGTCAAAGCTC
+ACTTTTCTCTGATATCATGCTTGCCAAACACAGAAAAAAAATATGGACTGTACTTTGATT
+TCCACCCAAATATTCTGCCTGATTCTTCTATCCTCTCTTAGGATAGGAGTTGTGTCCTGA
+TTATTTGTCTGGTGTTACCTTCTTGAGGGTTGTCTCATAATGGGACCACTCAGTGTTACA
+GGCTGCCTGCCCTACTTCACTTCCGTTTAGAAATGCCGGTACCAACCCTCTCCTGAATCT
+CACCTGAGCATTCCACATACTCTGAATTCTGTGTCTACCTATTCAACTATCCCTTCAGTC
+TGGAGTCAAATTCACCCCATTCCTTCTCATCTCTCTAGTCATAAAAGGCAATTGTGCTAT
+TCCTGGCTCTTGACTCCCTCCATTTTGCCCAGAGTTTATATAATTATATCACCATGTCTC
+ATTCAAATGTCTAAATATAATCAGTCCTCCAATAACTATAATACAAAACCAAACGTAACA
+ATTGGCAAAAAAAAAATGTGTAAATTAGAAAGAGTCTGAAAATTAGAAAGAATAATTTTG
+TAAATTGTATAAATTAGAATGAATCTTTGAAAATTGGAAAGCTTATTTTTCATTGAAAAA
+AAATGATGGAAGGTACTATTGAACCGTGAAATGTGTGCTGCAAATTTTAAGTGATTGTGG
+CAAGCAGAGATGGTAGAGAAAGGTGTGCAAGTAGGAAATAGCCTTAGCCAACTGCATGGA
+GCACAATGGTCATAATCATGTAACACAAATAAATAACTCGGTCTGTGTTGTCTGTATGGT
+ATATGAGATTGTGGAATATAAGACAAATCTGAAAAAGCAGGATAAAACCATATTGGCCAG
+AATCTTGAATTTCAAAAGATGAGTTTGTACAAAATACTTTAGATAAAACAAATTAATGAG
+AAGATCCTTTCTCTCTCTCTCACTCTCTGTCTCTCTCTTTGTGGACATAGGAAGAATTAT
+GATAGAAAAATATTAGAAGCTGGAAATATATATTTGGGAGGAGATTGCAACAACACAAAC
+AAGATGAAATAGTCTGAATTAAGATGCTTATAGTAGACGAAAAAGTGCTTGGTAGAAAAT
+AAAGCGGAAAACTACAATTGGTATTTGAAAGAGAATTTTCTTGTTGGGAGATACTGAAGG
+ATGGTTAATCTCAAACTTACCATATCTCTGGGGTCCCTGATTACCACTCTTACAACTATA
+TTGGCCAATAAATGCCACAGCTCTCCCTCAGTCCTCTGATGACTTGAGAGGGGACACCTA
+AGCTCTCTTCCCCACCTGCTCCATAGCACAGCAGAGACAAGATTGGAACAATCAGGAAAT
+TATTTATGGAAGACTAGTATGCAAGTTGATGTAGAATGTAAAATCCAAATACACTGACAT
+ATGAAATATGACATCATTTTTATCTTGTGATTCACTACATAGAAGCTAGCTTACGGGCTA
+CTGAAGTTTAATAGACTTTTAGTATCCACCAGAGTCACACATCTCAACATAATTCAAGTC
+AAAGGAAGGGCCAAGCCTCTTAGCAATCTAATTATTTTTCTTTTAGTTCTAGCTTCCTGA
+TTGAGGATCTGTTTCGTTTCCTGGCCAACTTATACAAGGAATGAACTCATTCTGCTTACT
+CATTTGGTCATCATTTTATCTTTGACCTCTTTAAAATAACTGTATCAAAGTATATTGATC
+AACCCAACATCACTGGTGTACTAGTAAATGTTTAGTAGTAGATTCCCTAGGAAGAAACAC
+ACACACACATACACACACACACACACAAATAAAACAAACTGTTTTGTATTGTTTGCCAAT
+TTATGTGGTGTAAATATTCCCACTATGGTCAGTTTCAAGCTACTTATATGAGGTGACTGA
+ATTAGGATTTGGGAAGCACTGCTACTGATGTATAATAACAATGAGTAGTATTTGTTACAT
+CCTTACCAAATGCAAGAAAAAAATAATAAGCAATTAACATACATTTTCACCTTTAATCAT
+CCAATAGCTCTCAAAATAGGCATTATTTTATGATCATTATTTATAGGGAAGAAGAAATTA
+AAGATTACAGAGATTAAATCTCTAAAACTCACAAAATTAGTCAATAGAAGTGCTGACATT
+GAGTCTCATTATGTCACATGTCTTCCGATGTGCATGTCCATCTCCTAAGGAGGAAATTCT
+AGTGTTGGCATCAGTTTTCACGCAAGAATCTGCTTTCAATGCTTATGTTCTTGAGGTCTT
+TTCTATACTTTTCCTACATAAGAGAAAGTTATAATATAGAGATTACTAACATTAAAAGTA
+ATAAGCAATAAATGAACAGGTATAACTTTGTAAATATTGCAGATATAAAATCTGTATGAG
+GAGGCAGTTGATCAGATATAATAATAAGAGGGACAAAATCTCTCTATTTTTTATTTCTGG
+GTGACTGGAAGAATGGAGCAATCATTATAACTTTTAGAATCTGAAAAGAATCTTAGTTTA
+CAGAAAATATATTTAAGGAATGTTGATTTAGGAAGAGGAAGAACCAAAACATTTACAAGG
+GAAATATATTTTGCAGTAACCATTCTAGCAAGAGAGATGAGATGTCTGCAGCAATCAGTT
+TGGACAATGTGGGAACAAGGAAATTAATTTTCATTGTTATTTCATCAAGTTATCCAATTT
+GGAAAACCTAAAGTTGAGAACTCTGCTCAGATTATTTCCTCAGAGTATGATGGGAAGGTT
+AGCATATCTTTTACCAAAAAAGTGCTAAGTCCATCTCCAGTAGCTTCTGTGAAGTTAAGG
+CCAACTCTACCCCTCTCCAAGAGAGAAACCATCAGTTGGAGCAGCATTCTAGTTCTCAAA
+CCAATTCATTTTCTGCATATTTCTATAAGGTTCCTTTTTCTTTCTCACCATAATATTGGC
+AAAGGGCATCTTACAGAGAAGAAAGGCCTTGTTTTGTTTTGTTTCATTTTTTAAACACCT
+GTACAATCAATCCAAAATGTTGTGGCCTTCCAGCAACCTCACAGCAAGACCCCACCATCA
+CAGAGATAATAATTCTGAATACAAGGAATGTGATATTTCCTGCTCTGTAAGTTTATGTAA
+AATCTTGTCATGTGTCTTTAATATCCAAGAATCTGACAACTTTAAATTTATATTTGCTTC
+CCTCTATGAGGTTGAAGGCTGACACCTCACCCCAGTGTATCCAGGAGGTAGGACATGGAG
+TTGGAGTCAAAGATTATTCTCTAACCTTACTATTGATTGTCCTGTGCGGTTTGGGGATTA
+CTTGGAACCTGTTATGCCTTTATTCTTGCCTATTTATACCTCTTGGAATGGTAACGCCTA
+CGCTATTCCTTTCCCACCATTGCAGTTTAGGAAGCTCATAGCATGTTTGATTTCACAGGC
+CCACAGTAGGAAGGGCATTTGTCTTAGGGTGAACTGTACTTTGAATCTCACTCGTATCTG
+ATTTAGATGAGACTCTAGACTTTTGACTTTTAAGTGGGTCCTGAAATGAGTTAAGACTCT
+GGGGGCTACGGGAATGGAATGAATGTATTTTGTATCTAGGAAGGCATGAATTTGGGGGTG
+CTACTAAGGGCAGAATGCTGTGGTTTGAAAGTGTCCTCTCCAAAATTCATGTTGAAACTA
+CCTTATTGGGGTAGTATTAAGAGATGGACCTTTTGAGGAAGTTATTAAGTCATAAGGGCT
+CCTTCCTGATGAATGGATTAGTGCCCTGTAAAAGGGCTGGAAGAAAGGAGGTTAGGCCCA
+TTTTAATCTTCCACTCTTCTGCCATGTGAGAACACAGAGCTTACCTCCTTTTTATTCTTC
+AGTTCCTTCTGCCATTTAAGATTACAGCATTCATCCTCTTTTGCCCTTCAGTTTCCTCTA
+TCATGTGAGGACACCACACTTGTCCCCTCTGGGGGATGCATTAAAGGTACAACTTGGAAG
+CAGAGCCCAGGCTGTCACCAGGCATCAAATGCCAGTACCTTGATCTTGGACTTCCCAGCC
+TTCAGAACCACAATAAAATAAATTCAGGTTCTTTACAAATTACCTAGTGTCAGGTATTTC
+ATTACAGCAGCACAAACAAAGAGAAGCAAGAGGTAAAAAAAAGAATCCCAGAGACTACGA
+TTTACACTTATCTCAATGCTGTTCAGGATGGCCATAAAAGAGAGAACATTTTTACAAATG
+GTCTTTCCTGTAGATGGGGACTAGAACCTGGATGACTTGAGAAGAGAGGTAATACAGTGA
+TGTGTCAAAGCCAAGCTTGTGTAGGTTGCAAGAGGTGACTGTGTACATCTCATCTAAACT
+GCACTTCAAGTGATCTATGTTGGGAGTTTGAAATGGACCATAGTGAGAATTTTTATACAA
+TGGAAATAGTCACTGCTACAAATCAGAGATTTTTTTGCCCTGAGAGTCTATTATTAAGCC
+ATTAAAGATACGCCATTGCATATGTTCTCACAAGTTAAAGTCAGATATGTAGGCATAAAA
+CAAAATAATCTGGAGTCTAAAAGAAAGGATGGTTAGGAGCTGGAATGAAAATGGAAAAGC
+AGCAGCTTGGCAGGGTGGAGGAAGTTCAAATACAGGAAGTGCAGGATAGAGAATGTAGTA
+GGAATGAATGAGACCTTAATGTGGTGCTGGCAATTGAGAAAAAGAAGGAGAGGGATAATC
+TGAAGATAGGCTCTGGTGTTTTTTGGTTTGGGGCCTCCAAGAAGCAGATACCAAGATAGG
+ACTAGATGTTCAAGAGATTTATTAGGGGAAATGTCTGGGATAGATAAAAGGGAAAAAGTA
+GAAGTAGACAGGAACAGCTTTCAGTCTGTGATGCAGATCTGTGAAAGGAGAGGAGCAAGT
+GAAACAGATGAGGTAGAAAGCATCTGACACTACAGTGTAGTTCTGAAAAAGCTTCAACCA
+GACTAAGGGGTGCCCTGCACTCAAAGTCCTCCACAAGAAGAATCCCACATACTATGGGAA
+TAGGCCAACACTTGGTTCCTCTGCTGTGCTCTACCATCAGCTGTGAAAAGCGTGGGAGAA
+GCATGGCCTTGGCATGAGTGCAGTGGTGAATCCACCATGGCAGCTGCTGGGACCATCTGT
+CAATTGTGTTCCTAGGGAAGCTGAGCAGTGCATTTACATGTAAGTGGTGCTGTTTAGGAA
+AAAAACAAATTGTTCCATTCACTATACTCTCATAATATGCTTCTGACACCAGATATGTGG
+GGAATTTTTCCCCACACAAGCAAGCAATCAATTCTGCAGCAGACACCAGCTGGGTGTCCT
+CCCATTCTACCCTGACTGCCAGGAGAGAGTGCTTCAGACACCAGTTGCAAGTCTCAGGTT
+GTTTTTCCTGTACTTCTGACCCACCAGCTATAAATCAGGGTTCCCACGACCTCCTCCTTA
+GATTCAATTAATTTGTTAGAGTGGCTCGCAGAACTCAGGGAAACTCTTATGTTTACCAGT
+TTATTATAAAGAATATTACAAAGGATGCAGATAAAGAGACGCTTGGGGTAAGGTATGGAG
+AAAGGGGCATAGCGTTTTCATGCCCTCCCTAGATGGAACCTCCCAGCATTCTGGAAGCCA
+CTGGGTTCTGGAACCTCCCAGTGTTCTTTTCATGCCCCCTTCTAGGAACCTCCCAATGTT
+CTGGAAGCTACCCAAACTTCATCCTCTTGGATCTTTTATGGAGACTTCACCAAGTAAACA
+TAATGGAAGCATGGCCAACTGTGTAGATATATGATTGGGCAAAAAGGAAATGATCTAATA
+CTAATAGGCTGAGTGGGAAAACCCAGAAAGGCTGTCCGTTTAGGTTTTTCTTGGCCTCTC
+TGTGCAGCCTTCCTTCCACCTGGCTATGGGGCAGGACCCCTTCCGAAATGGGAGCCTTAT
+GACCTACAATCAGACAAAACAGGTCAGAGACTTTACTTCTGGGCAGCGCTAAGACAGAAA
+GGCAGAGGAATATTCCTGCCTTGGGGAGAAAAAGAGGTGAAAGAGGGCAGGAGAAGGTCT
+GAGAGAGGAATTCTGTTTTCTGAGGCCTGCTTTCGAGGCCTAAAGTGCCCCAACATGATA
+ACAAAACACTGTCTTTCACTTTTGTTGCTCTGAAGCTGTTCTGAAACCAATTCAGGAACC
+AAGGACAAAAGACCAAATGCTTTAACAAAAGTTATGCTTATTGTTTCAGTCACTTAGGAA
+ATAACAAGGGCTGTGAGAGTTATGATCCAGGAACCATGAACAAAAATGGATATACATATG
+GAGTTGTAGTAGAGATAGGATTTTCCTTAGCAGCCCCGTTCTACTACATAACTGTAAGAC
+TCCATGGCTGGGCCATCACTCCTCTGGGGCTACCTTGAGAGATATCACTGTTTCTTCATG
+GTGGATTTTAGGACTCCATTGAGAACTGCTGCTTTTGCCAAGACCCTGCTACAGTTACAT
+TCTAGGTCTAGGTCCTTGATTATCTCTGAAAACAGTTTATCATCCCTAGCAACTGGCCTT
+CCCAGTGTCCGGCCTTCCCAGTGTTCTGCCTTGAAATTGGTCATAAATTATTTCTAAATT
+TGCATATTCCGTGCATATTATTTGAGGTTTTCTCTGACCTCAGATATTTTTCTGATTCCT
+CGTATCATGCTCCAGTTCCTCAGTTCTGGTCTCATAATTTTTTTTTTTTTTTTTTTTTTT
+TTTTTTTTTTGCGACAGAGTCTCGCTCTGTCGCCTAAGCTGGAGTGCAGTGGCTCAATCT
+CAGCTCACTGCAACCTCCGCCTCCCAGGTTTAAGTGATTCTCCTGCCTCAGCCTCCTGAG
+TAGCTGGGTTTACAGGTACACACCACCACGCCTGGCTAATTTTTATATCTTTAGTAGAGA
+CGGGGTTTCACCATGTTGGTCAGGCTGGTCTCGAACTCCTGACCTCGTGATCCGCCCGCC
+TCAGCCTCCCAAAGTGCTGAGATTACAGGTGTGAGCCACCGCGCCCAGCCTCTTTGGTCT
+CATATTTAATGAGGGTTGCCCAGCAGCTGAGTTGGGGCCGTGTTGACAGGTTGACTTTCT
+CAGCTGGGCTGCATGTTTCCTAAGGGTGACGACAGTGTCTGTTTCTATCTCTGTGTTTCC
+CCCCCAGCACCTCAGATAGTTGGGCATGCAGCTGAGCTTCTGAGACATTAGTCAATATCC
+TTCTTTCTAGGACTTGAGTTTGGGATATTGGAGCTATTTTGCATTTTGCCTACCATCTCT
+CCTTTCTTCTTCCCGTAACACTTCATTTGATTTACAAGATAGTACATTAGATATTTGACT
+TTTGCTTACAGTTCCAGGGAAGCAGAGGTTGGCTGGTGGCAGATGGATAATATTTTCACC
+ATACTGCAATATTTATAATTTAACATTGGCACTCATGTACCTAGTATTTGCAAAAGGGAA
+TTTTGAAACTGTGGAATCAATTCACCGAACACTAAAATAATTAATCATTTTATCACTATT
+GTTTTTCTAACAACAAATGGATACTTTTTCAGTGTTTCTACACGGATAAGAAAAAGCATA
+TATTTTGTATATATAAAAAAAGCATATATTTTGTGTATATAAATAGTGATAATTTGCAAA
+ATGAGCACCCAAAAGCAGTGTTAAACGAAGAATCTTCCAGCAGATTTTAACTGAGGCACT
+TTCTCCTTTTTGTGGCCAGAAGCCTTGCATCAAAATCAGTAAAAGATAATAATTGAGTTC
+TTAATTACAGCACTAAATATAGCAAAGTGTATTTTCTGTTAGAAAGCATGTAATTCAAAT
+TAAAAAATAAAATATAATTTCACCTCCCTTTAGCATTTTATCCTGTGCATTTAGGGTAAG
+AAAAAGGCCACTCTCACTACATAGGTTTTCCTCAAAGTAATTTTTGACATTTAACCACAA
+AAATGTGTAAAGGTTTTATCTGAATCTTCCTCTATATTGTAATAATTTGGAAATATTATA
+AAAGTAGTCATGCCACCCTCAAGATACCTAAAGAAGCAAACTCTTAATGCAACTCAATTA
+CCCTATATTTGGGGTTGTAATTGAGAATGAAATTGATTCCATTTTGTGTTCTGGAAATTT
+GTGCAACAAATTTTATTACAGATCAAGACATCTTTATTTTATAATAGGTAAGAACACAGA
+CAAATTTCTGTATTAGTCACCATACATTTTACTAAATCTTCTAGACAGCACTTCATAGAA
+TTGCTGTTATATTTTTTCCTGCCAATCCAAAAAGTCATTTCTAATTATTAAGAGATTGCC
+ATGCTCATTCAGGTAACAGCGTTACACAGTTAACTTAAAAGATTATTTTCAAGAAAATAA
+ATGTATTTAAACATTTTCCAGGGTTGTTGCTACGTTTATTAATTCTCTAAAATTATATAT
+ACATACTTCAAGCATTCTCAAAGGAAACATATTTTTTGTGCCGTTTAAGAGGTTCTAAGC
+ATATCACATTCCCAACTCTACCCATTCTAATTTGATCTATTACAACATGGGTTCTTAACT
+TGAGGTCCAGGAACTAGAATTCAGGAGGTTTGTGGGCATGGATGGGTTATTTTCCCTGGC
+CTGCAACCAAAATGTATTACTTCTTTCAGTTGTGAATCAGTCAACAAACCACCAGAGAAA
+TGGAGGAAGCCATTGTTGACCATTATGGCTACCTGCCTTAGGCCTTTGCAGCTCCAAAGA
+TGACACTGCCTTTTTTTTTTAAGGCCAATATTTACTTGGGAAATTTTCTGTATGTTCCAC
+AGCATAGCAATTCTTACTGTTTAGTCATTTTAGGTCACCAGTTAGCCTTCTGTGTCTGGG
+AATTTGCTGCTCAGAGCTCTTCTAGTGAGTGCCTTTATCTGCTCAAACAGCTCAGGGCAT
+TGTCTTACTGCACTGTCCCACTCTACCCATCAGCTGCTATCCAGCAGCTGGGATAACAGT
+CTTCACTAAATGCTATGGTTTGCATTTCCACTCCAAACTCATGTTAAAATTTAATCCCTG
+GCTGGGTGCGGTGGCTCATGCCTGTAATCCCAGCACTTTGGGAGGCAGAGGTGGGTGGAT
+CACCTGAGGCTGGGAGTTCGAGACCAGCCTGACCAACATAGAGAAACCCTGTCTCTACTA
+AAAATACAAAATTAGCCGGTCGTGGTGGTGCATGCCTGTAATCCCAGCTACTCAGGAGGC
+TGAGGCAGGAGAATCGCTTGAATCCGGGAGGTGGAGGTTGCAGTGAGCTGAGGTCATGCC
+ATTGCACTCCAGACTGGGTAACAAGAGTGAAACTCCATCTCAAAAAAAAAAAAAAATTAA
+TCCCCAATATGGCTGTGCTGAAAGGTGGAACCTTTAAGAGGTGATCGGATCACAATAAAT
+CCATACATGGATTAGTGGATTAATGGGTTATGATGGGAGGGGAACTGGTGGCTTTATAAA
+AAGAGGAACAGAGCCCTGAGACAGCACATGTGCATGCTTAGCCCCTTTGACATGTAATGC
+CCTGCTCTGCCTCAGGACTCTGCACAGAGACCGCACCAACAAGAGGGCCTCACTAGATGT
+GGTCCTTCAACCTTGGACTTTTCAGCCTCCAGAATTGTAAGAAATAAATTCATTTTCTTT
+GTACATTATCCAGTTCCATGTATTCTGTTATAAGCAACAGAAAATGGATGAATACTTTGA
+ACATGACAGACGATGAATCATATCCAAATATGATATTGTACAAATCCAAAACTTGAAGAT
+TAAACATCCTTCTCCTCAAAGTCACATTTCACCATCTTCTGCCTCAAGTTCCAGTGGTGA
+AAGTAAGTTTCTTTCCTTTTATATAAAATGAGAGTGACCTTTTTTCACCTTATTCATGTC
+TGGAATTATCATCCCATATTTAAAGATTCAGTAATATGCTCTGATATTTAATGCAGGGGT
+TACTCTAGAGCCTATCATCACTTAGAATTACGGAAAAAGTAGTAGAGGTTTTAAAATCTT
+AGTGTTCTCTTATGCCACCTGCACTACTGACAGCGAGAAGAAGGAAGCAGAAGACATATG
+AATGTACATCATGACATTAATTTTGCCTTTTACTTCACATAAAAGACCAAATTATCTGCA
+ATGATTTGTACATTTCAATGAATATTTTTCTTTCTGTTGCACATTTAACATTGTTTGGAA
+TTTGGGACCAATGCAATAAGACACAAAACAGAGACATTAATATATAGTCTAATTATTGGA
+AAGCTTTAAAGAAATTATCTCCTTTGCAGATGGCACAATTGTATACCAAAAGAATAATTA
+CAACAAATTCCAAGGGAATCAATGGAAATTTCGTGATTAATTATTGTTTGATAACAACTT
+ATAATACACAAGAATTAATAGCTTTCTAGTTTATTTGCTATAACTCATTAGAAATATAAT
+AGAAAAATAATTAATGTGTCTCAAGGTAGCTACAAATACAAAGTTGTAAGATTAAGTTCA
+TAAAGAAACATGTAAGACAACCATGAGGAGAGCAGCATAATTGATATGAATTATACAATT
+CTTAAATTCTTTCAAATTGTATATTTAATGTGATACAAATTAAAGTATGATTGTAATTTT
+GAAAAATGATTCAGTTTTTATTTTCTGGAAAAGTGATAAGGCAAAAATATACTTTAAAAT
+TTTTGAAAAAAGAATAAATAGAAGATGGTAATGAATATCTTAGTTGCTAAATTTTCTGGT
+TCCTCTAGGCACATAGTTCAACTTCACTTTCTAAATTTATTTTAATTATGTGTAGCCATA
+TGACATGTTTTGTTTATCGAAGTGTGAATGCAAATGATGTAGGTTACCCATAAGTGGATG
+CTTAAAGGGCTGATGTATAATTCACCACGTTCACGTTATCCTTCTAGGATGATTGTAGAA
+GTCCATTTAAAGATGGAGCCCCATCAGACTGAGTTCTTAAGTGACTATACTCTTCAGAGC
+CTTGTGACAATGTGTATTTGACATGGAGTGCAAACAACAAATGAATTTTTTTATTGTGAT
+AGGTCATAGGTCACTGTTTTATACTACAGCATAACCTTGCCTATCTTGATTGATGCTAGT
+GAAATACTTCCTTTCTGTTAATTAAGGGAGTATAATCATGCAACAATTTGAAGACCAGCA
+TTTGAGTGCAATAACTTACAGAGCAAGGAAATAACATTGATGACTCTTACACATACACAT
+GTATAAAATTTGAATATTTCAAAAATATAAAATATATATTGATGTGGGGTGGAGGTGTTC
+AATGAATAATGCTGAAGCTGCTGTTTATTTAAAGAAAAAACTCCAGATCTTAAATTTGTA
+AAACAGTGCAAGCTAACATTGTCTGAGAACTCATTCTGTGTTCATTTCTGTTCTCTGTAC
+ATTACATGTATGTATATTTTCATGTAAAATTCAGAATCATCACAAAGAGAGCTAATAACG
+ACATGTATATTTCACATATGAGGAAACTGAGGTACTGAGAGTTACATATTTGGCAAGGAC
+ACACAGGTGATACTTTTAGAGGTTAAATTATTGGAAATAACCTTTAAAATATAAGAATAA
+GGACATTAAAAAATATTGTGACAAATGAAGACTTCTTAAGATTAACAGCATGAAAATAGT
+CATAGAAGAAAAGAGAGACGATAACATAAAAATGATTCCAAAATGTTTAAACAAAATTAA
+AATTTGAAGATAAAGATGGAAAAAAATCTAACAGTATAATTTTAAGTACTTAAATGTGCA
+AAAAACACTTTCTAATTAATGAAAAGCAAATTAAAAATCAAAAGCATGTAAAATGTTCAA
+TTGTACTAATAATAAAAATGTCAATAGATCAGAAATGCCATTTTTACTAATGTTATGTGA
+AAAATATTTCAAAATGATAAAATGCTGTTTATCCATATAACAATATTGCTTAATGCTTAA
+GTAATTATTTCAAAAAGGTTTTTTAATATAGGAAATTGTATTATAATAATCAACAAAATA
+ATATATGTTTAAAAATGTAGAAACAACATATGAAATGTGCATATGGGAATGTGTTTATAT
+ATATTGGAATAAATGCCTAAGTATTAGTGGGAATTATTTCTTGGAGTATAGTTAATAGCC
+AATTATTATCCCTATATTGTTTTTGTTTTCCTAACACTCTTCAATGAATATATATTATTT
+TCTTTGCAGAAAAATAGATGATGTTGATTTAAAATATCAAATAGTGAAGGTATTTTCAAA
+TTAATCTGAACAAAGTTCAAATCTCTTTATAATTATCTCTTCATAATTCTCTGAATTATC
+TCTTCATAATTCATACATTCATACATTCATTCATAATTCAACATTCATTTGGTTTCTGAA
+GGACTTTTGGCTGTGAGAGATTTTCTAAATCTCCGTCATTTGTGACTACGTAAAATATGA
+GAGACTAGAAAAGGAGCCAGAAGTAGTATTTGGTTGCCGTGTCAGAATTGATGAAAAAAG
+TAAGCAGCAATGTTACTTGAAGAGTGGGGACGAAAAACAAAAAACAAGAGTGTTATCTTT
+ATAGACTCTCATATGCCTTCAGATATTTGTGGAAAGATGCGTATGGGCACAGCAAAGCCC
+TGAAAGAGAAATCAGTCCAGTAAAATGAAAGAATGACAAACTGGAATTCAGGTGCTCTGG
+ATGCTAATCCCAATTCCGATTCCTCAGCCATGGAACTTGGAGCAGTCATTTTCTTTCTGT
+GGACCCGGGTCTTCACACCCATAAAGTGAGAATCCGGGGAACTAGTTATCTTTATGATTC
+GTTCCTGCTCTAAAATTCTTCTAGGTCAGTAATTACGTTTTAAAAATAAATAAAGAATGA
+AATTTCAATTTTACGTCCAGTATCTGATAAAATAACCTTCATGGTAATAGCTGGATTCTG
+AAGTATGTTTTACGTTTAACGTAGGATAGTAAAAGTCAAGAACATTGAGCTACAGCACAT
+GGCTTTGAATTAATATTTTTAAAACTTCTTTTCAATTATGTATAGCAAACCAAACAAACG
+GAAACAAAACCCTCCTGCCAAAATATGGTGTCTTGGGCCTGGTCACTAAAAGTTAGGTAA
+AACAAGTAAATATTTTTAAATGTACTTAAGCACTTTCTGTTAATCTAAAAAAAATGTGCA
+TTTATTTAGACATTATTTGATAAAGAAAAAGATTTTTCTTTGAACAGGAGTTCTACAATT
+TGAGTTTTGTCTTTATTGCAAAAAACATATTTAATGGTGATTATCTGTGAATTTCAGTTT
+CAGTGAATTTAAAACATCTTCACAACACTTTCAGCCTTAAGCATAGAAACCATTTCAATT
+TGTATTTTCCCCATCTTTTCCAGTCATCTTCTTCACTCTTAATCTGACTACAGTTTCGTT
+TACCAAGTCACCATTATTCTCTTTTCAGAACTCAATTTTTATAGAAACAACCATTTTTTA
+TTGCATTGGTTTAAATAAAATTTATTTAAATAATCTCATTAGAATAATAACTATTACAAG
+TATCGTAAGTATGTTTTATGAAAACACAGTAAACTGACTATTGGTAAATCAGTGGGAAGC
+AACAATGTGCTGGGACACTAGAAAGTGGCCTACTAATTCTGAGCGTTCCACACAGCCCTG
+AGAGTGAAATCAGAAACACAACCATTTTGAAAATACAATGCTATGTGCAGCCATAATTCC
+ATCTTACTGAGAGAAAAGGGAGTGCCAGGGAATCTGGCATGTCAGTTAAGTGATGATGGA
+TAACAGAAGTAGGGCATTTTTTTTGGAGACGGAGTCTTGCTCTGTTGCCCAGGCTAGAGT
+GCAGTGGCACAAACTCAGCTCACTGCAACTTCCGCCTCCCAGGTTCAAGCAATTCTCCTG
+CCTCAGCCTCCCAAGTACTGGGATTACAGGTGCCCACCACCACACCTGGCTAGAAGGAGG
+GCATTCTACACTTCGTTTATATTATCTATACCACTTTCTACTGTACCCACAAGAAAGGTG
+TTGCTAGAGTTAATGTGTAATTCATAAGAAAGAACAGTCTTCAAAATATTTCAGGCTAGA
+TGATTCTAAGTGCCAGATTTCATTAGATGTATGAATCAGAATTAAGTGCAAATCAGCTTC
+CAGTCAGAAAATTTTGAACAGCGTGGTGAACATCACCACTCAGGTTGTGTGTAATCATGA
+CTTTCAAGGTAGTATATTTACTTCTGAAAATAGTGTCATAACACAACCTACCTAAGAACA
+TAATCCTCTTCATCATCTTAGTCACAGTGTAGCACTTAGCATGCACAATTATTCTCAAAT
+CATATTTTCGATATTGAAATGACCTACTAACATATGTCAGCTGAAAATTCACTTTGTAAT
+TCTCACAACCAAAAAAAAAAAAAATGAATCCATAGGGAAGATGATCAAAATGGAGAAAAG
+CAATTAATCTGTATGTATGAAATGCTCATCTAAAAGCATTTGGCAAAGTATACCCTACAT
+TTCCGGGAGTGAGGAACTTTGAATCAAGGCATAGTAATAGTTTGGGATAGAGTCCAGGTG
+TATCTGACTCATTATGAGAAAAGTACGAGTCATTGAAAAAAATTTTTTTCACCTCTATTC
+ACCTACTTATACTGGAGAAAATATTGATCTCTTGCTTAGGATTATTGTGTGTCTTGATAG
+TAAAAATGAAAAGAAAGTATTTTGAAAATAAAGGGTTATGGACATTTTGACAATTTTCAG
+GGTTGAATTTGTAAGACCTGCAGAAGAATTTTAAAAAATAGATTTTTAAATATAAATAAA
+GCTAATTTATCTTTTAAAATTGGAAGGACGTTTAATAGAAAAATAAAATTTCAAAATATA
+AAAATTTAGCATTCATAAAAAAGTTTTCTTATTATGATGTTTATTTAAAATGATGGCTAA
+TTTGACATCATTAAATACTGGAATATATTAACGTATAATACAAGCATCTCTAAAATTTTA
+ATGTTAAAGTTCAACAGACATTTACTGAATGCCAACTGTATGAAGTTTATTATCCTAGTT
+ATCTGAGAAACACAGATAAATAAGGCATGGTCACTGTTCTTAATTAGCTTATAATGGATA
+TTATAGAGTCAAATTATCTGTTTAAAATTATTATCTGGATCTCAGCTGTCTAGTTAAAGC
+AAAGCAACCCCAAAGCTGAGACAATTTTTAATACAAAATCACATGTCTTAATTTGATAGG
+GAGCAGATAAAGGTTTAACATAATTTATTAAATATTTCTTTTTCCTTAAGCACTGTATTA
+TATCCTAGGAAAACAAACAGCTATAAAACCTGCCTCCTGCCTAGTAGCCCTCAAAAGACA
+TTTAGGAAAACATGCAAATAATAAAACAGTGGGGAGAAGATAAATTATTGCCAAACCTTT
+TCCAAAAAGATACGGAAGTATAATGGGAGCACGAAGCAGAAGGTGGTCAATTGAGGACTG
+AGGCTGTGCAGTAGTTTTGGCAACTACAGTTTAGAGTGATACTCTAAACTTCTTCCTCCA
+GTGTTCTGCTGAAGCATACTCTGATATCTCGCTGGTTTTCTGGCAGTAAACTTTATTTGA
+TGACCCTAATAAGTCTCCTGAATTAGGTTATCTTTAGCTCCAACATTTGTTCAGATTCCA
+TAAAGATCAATTAAAATTTGGGGGGTAAAGGGGGTAAGAACATGCTTCCATTTTTATAAC
+TAAACCTCTTTCAAAAACTTACCATGCGTAACAACATGGATGAAGCTGGAAACCAACATT
+CTGAGCAAACTATTGCAAGGACGGAAAACCAAACACCGCGTGTTCTCACTCATAGGTGGG
+AATTGAACAATGAGAACACTTGGACACGGGGCAGGGAACATCACACACCAGGGCCTGTCA
+TGGGGTGGGGGGATGGGGGAGGGATAGCATTAGGATAAATACCTAATGTAAATGACGAGT
+TAATGGGTGCAGCAAACCAACACGGCACATGTATACATATGTAACAAACCTGCATCTTGT
+GCACATGTACCCCAGAACTTAAAGTATAATAAAAAAAACTTGCCATGCAAGAAATGAGCA
+AGAAATACTAAATGCAATATACCACATCTTACATTAAGAGAAATATTTATTAAAACATTT
+ATTTATTATATTATTTATTATACAATAGAGACACTGCCAGATACTGAACACAAAATAAAT
+AACAAAATATGGCTCTCCTTGATTAAAGCTTGCAGTATAAGTTTACACATGCTTTTAAAA
+TGACATCGATACAAAGGCGTAAGACATTTGGATAATGTGTTTTATAAATTTAAAAAACTT
+CTGATTTCTTATACTTGGCACAAAAAGCTACAGGGAGAGGAACTAACATGTTGTTGATGG
+TCTACTTCAAATAGACACTTTAATATGCATTATTTTGTCTGTTTTCTCACAACACTATTA
+TCACATATTAGGAGAGAAACTGAAGCTCAAAAATTTAACATGACTTTAGTGAAAGAGCTA
+TTAATATGTGCTGAAGATAGAATGTTAAGGTAACTCTATGTCGCCTCTAAGCTTTTACAT
+AGAGATACGTAATATTTCTCAGAGTGTTCTGCAAAGCAAGGATTCTATGGAATGTTAATA
+GAATTCATCATCAATAACAAATAAAAAGTCTGAGTTAAAAAGACAGTAGTCCTCATAGCT
+TTAAGTATGCTGCCTTATACTCTGAACAACCAAGATAAAAATCATAGTATGGGTTTCCCA
+AAATATTTAGCCATAGTATTTTGTTAATGGAACACTGAATGGATATATTGTATTAGAGAA
+TGAACTACAGGAAGCACTCCACCAAAGCTGTATAAATGGAAATGCAGAGAAGGTATGTAA
+AGAGAATAAGAAGGAGAGTGTCAATTACTTTGGGTGATCATCTTTGCAGAAAGTTATACC
+TTTATCAGTGGAAGAAGTTATTATTTCTAAAATTGGAAGTAGTGGCCCATCTTTCTACTG
+AGATATATATATATATCTTAGTAGAATATATATATATAGAGAGAGAAAGATATATATATA
+TAGAATATATATAGATATAGATAGAATATATAGATAAAGATATAGATAGAATATATATAG
+AGATATAGATAGAATATAGATATATATCCCAACCCAAAAGCAGAGGCAGATACCTTATTA
+AAATACTGCCAGTTATAGCTGCAATAAAACAACTAAATTATGCATACCTTTTTGTCATAC
+ACACACACACATCTAGAAAACTGAAGAAAATATATAAAAAATACCATTATCAGACCCTTG
+ACAACAGACAGGGATAATAGTATCCTTAACGGGAAGACAATAAATGAGTTAAACCTCGTG
+TCTTAGTCTTCTCAGGCTGGCTGCCATAAAAAGTTATCAGAGGCTGGGTGTGGTGGCTCC
+CACCTGTAATCCCAGCACTTTGGGAGGCTGAGGCGAGCGAATCATGAGGTCAAGAGATCA
+AGACCATCCTGCCCAACATGGTGAACCCCCGTCTCTACTAAAAATACAAAAATTAGCTGG
+GCGTGGTGGCGCATGCCTGTAGTCCCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTT
+GAACCCAGGAGGCAGAGGTTGCAGTGAGCCGAGTTCACACCACTGCACTCCAGCCTGGTG
+ACAGAGTGAATCCCTTCATCTCAAAAAAAAAAAAAAAACTTATAATAGATTGGCATGGAC
+TGGGTGGATTAAACGAAATAAGTTTATTTTGTTACAGTCCTAGAGGCTTGAAGTGCCAGA
+TAAAGGTGCTGGAAGTCAGTTCCTGGTGAGACCCTCTTCCTGGCTTGTAAATAGTGTCTT
+CTCTATATGTCTTCACATAGTGGAGAAAGAGAGAGCAAACTCTCATGTCTCTTCTTGTAA
+GGACACCAATTCTATGAGATTGGGGCACCATCTTTATAACCACATTGTATAATTTTAATT
+ACCTCCATAAAGGTCATGTCTTCAAATACAGTCACATTGAGGGTTGGGGCTTCAACATAC
+GAATTCTGAATGGACATAAACATTCAGTCCATAACACTTTACCATTACTCTAGCCTACTG
+CTTGACACATTTGCTATACAGTGATACAGAAGTGAGATTGTATCTGTAGGTCAGGAGAAT
+ATACCTCTCAATCCTGTAACTGCAAAAATACTAAAGGCACTAGCTCTGTATTCAAAACTT
+CATGGGCACATTTGCACTGAGGCCATGCCTCTGAAAAGCTGAGCTCACATCATAACTGAG
+TATAGCAGGAATACCTAGGTAGACCTTTTCTTCGGAGGTGCAGATCAAGAAATAAGAAAA
+TAACTCAAAAATATGGTAAATGCATTATATAGTACAATACAGTTTAAAAATCAACACAAG
+AAGTAAATGGGACTCTTGCACTATGCACACACACACATACATCAATATATACAATTTTAA
+AATATATAAAAGAGGCACAGAGAAACAAAATAAACAAGATAGATAAAAAACAAATAGCAA
+AATAGCAGATATAATTTCAATTCTATAAATATTATATTAAACATGAATGAACTAAACACT
+TTAATCAAAAGAAAGAGATTGTCAGACTGAATTAAAAACCAAGATCCAGATATATGCTAC
+CTACAAGAGACACACTTCAGATTCAAATATACTAATACATTGAAAATAACATGATAAAGG
+TGATTTTTCTAAGTGGTACATACACTAAGACCTCTGGCATCCATTTCTCTGTAAATGCAA
+CAGGAAAACTAGGGAAAAAAATAGCAGAATTAACTTTTTTGGAAATCCAGAAATTAAATA
+AGGGCTTGACATAATCGAGGGAGTATTTAGTTTTTAAAAAATGGATAAATCTTAGTAAAA
+ACAGTGAGCTGTGTGGTGTTTTAACTTGCCCTAGTCACATTTCCCTCTCTTTAGCTCTAC
+AGGAACCTGGTAAATAGCAGGTCTCATTTGTGGTGAAAACCAATAGCTTGATAGTCGCTG
+GAGGGGGCAGAAAAAACTGGAGCTCTTTCAAGCCTTCTTCCCAGAGTGTTCTCATTCTTT
+GACTTTTCTGTTTGTTCACTGAAAACTACACTTGCAAGGCTGTCTGTATTTGACTTGACT
+CAGAGCTTTCTCAGTCCCAAAAGCTTTTTGCCTAGGGGCAAATATTGAAAAAGAAAATAC
+AACTAATAAACTTAGTGCCTGCCTAAGGTAGTGAATAACTGTTGAGGCAAACAAAACAAA
+TCAAATAGCTTAAGAAGAAAAGCTGTGGAATGATATGTTCACAGCAGCTTTTAAAAACTC
+AGTTATGTTCCTATGCACCTAGAAAGCCACATGCATACCCAAGAAAGACCTGAGATGGCC
+CTAAATAAGCCTCTTTCACTGGCCTTGAGGCTCTATGCAAGCAGGAAGTGGAGGCTGAGG
+CTGAGGTAGAGTTGCCAACTGGCTAGCAGAGTGTTGAAAGCATGCTCCAACACACAGACA
+TGCACATACACACACACACACACAGCCCCTCAGCAAAGACTGGAAGAATGACTGGTTTTT
+GTTTAAGAAAATATCTCTCCAATTATTTACAGTCCTTTAAGCTAACTAAGCAGAGAGTTT
+AGTGGCCACACATGACAAAGAAGATAGAATTTACAGAATTACTTCAGAAAAGTCACTAAA
+TAAACAAACAACTTTTACAATAAACAACAAAAACAAAAACCCTGTAATGGAGGAAGAATC
+TAATTTCCAGTTTTGCCACATAGTATTAAACCAGAAAGTATAGTTCTTATGCTGAAAAAA
+TAAAATAAAACAGTTTTTCTAAGGGAACCTAGACATTGTACTTTACACATGGCGCTTGAC
+CAGTCAGAAGAGCTGTTATTAAAAAGTCAAACAATAACGGAAGCTGGTAAGGTTGCAGAA
+AAAGGGAGCACTTATACACTGTTGGTGGGAGTGTAAATTTGTTCAACCATTATGGAAAGC
+AGTATTGTGAATCCTCAAAGAGCTAAAAGCAGAACTACCATTTAACCCAGCAATCCCATT
+ACTGGGTATATACCCAGAGGAATATAAATCATTGTAACATAAAGACACATGCACACAAAT
+GTTCATTACAGCACTATTTACAATAGTAAAGACATGAAATCAACCTAAATGCTCATCAAT
+GATAGACAGGATTTTATAATGTAGTACATGTGTACCATGGAATACTATACAGCCATAAAA
+AAGAACGAGATCATGTATTTTTCAGGAAAAGGGATGGAGCTGGAGGCTATTATTCTTACA
+AACTAACTCAGGAACAGAAAACCAAAGTTGTTTTACAAGTTCTCACTGGTAAATGAGAGC
+TAAATGATAATAACTTCTGAATACAAAGAAGGAAACAACAGACACTGGACTGGGTTCTAC
+TTGAGGATGGAGGGTGAGAGGAGGGAGAGGAGCAGAAAGGATAACTACTGGGTACTGAGT
+TTAATACCTGGGTTATGAAATAATGTGTACAAAAACCACCATTTGTTCACCTATGTTACA
+AACCTTCACATATACCCCCAACCAAAAACAAAAGTTAAAACAAACCACAACAAAAAAGCA
+AATGGTGCTTGAACAACTGAATATACTCATGCAAAAGGATGAATTTGGAGCCCCACCTCA
+TAGCATATGAGAAAATAAACTCAAAGCAAATCTGAAAGCTAAATATGAGAGCTGAAACTT
+TTAAACTATTAGAAGAAACTACAGGTGTGACCCTCCAGGGTCACTGGATTAGGCAATAGT
+TTCTGAAATATGACACCAAAAGCTCAAGCCATAAAAGTAAAAATAGATAAATTGGACTTC
+ATCAAAATTAAAAATTTTAGCACTTAAATGAATACCTTTAAGAAAAATACAACCCACAGA
+ATGAAAGAAAATATTTGCAAATCACATACCTGATAAGTAAGATCAATCTAGTATCCTGAA
+TATACAAAGAAGTATTTCAACTCAAGAATGAAAAGTCAAAAACCTAACTTGAAAATTGAC
+AAAGAATCTAAAGAGACATTTATCTGAAGATACACAAATGGACAATAAGAACATGGAAAG
+ATGTGCAACATCATTATCAACTGAAAATGTAAATCCAAACCACAATTTGTTACCACTTCA
+TACTTATTAGGCTGTCTATAAAAAAATGATAGCCAGTGTGAACCCGGGAGGCAGTGCTTG
+CAGTGAGCCGAGATTGCGCCACTGCACTCTAGCCTGGGCAACAGAGCGAGACTCTGTCTC
+AAAAAAAAAAAATACGATAAGCCAGTAACAAGTGTTGTTGAGGATGGAGGATGTGGAGAA
+GTGGAAACCCTCATATATTGCTGGTGGGAATGTAAAATGATGCAGGTATTTGAATAAAGC
+TCCAACAGTTCCTCAAAAAGTCAAACCTAAAGTTAGCCGTATGATTCAGTAATTTCACAG
+ATATATGCCAAAGATAAATAAAAACATGAATAAACAAAAACACAGTGTTCCTCAACTGAT
+GAATACATAAATAAAATGTGGCAATTCATACAGTGGAATATGTTTTAGGCATGAAAAAGA
+ACAAAGTATTGATGCATGCTACAACATAGAAGAATTTTAAAACAGTATCCCAGATGAAAG
+AAACAAGACACAAAAGTTTACATATTGTATAACACCTTTGTAGAAAAAGCCCAAAATAGG
+CAAACCCACAGAGACAGAAAGTAGGTAAGTTATTGCCAGGGGCAGTGACATTGCTAATGT
+GTATAGCGTTTCTTTTTGGAATGACAAAAAATGTTCTGGAATTAGATAATGGCTATGGTT
+TTATAACATTTTGAGTACATTGAAAACCACTTAGTTGACAGTTTAAAAGGATAAATTTTA
+TGGTACATACAGTACATCTTAATTAATAAAAGGAAAATAAGAGAATGGAAAGAAATGTAA
+CATGAAAATAATAATTATTGGAGTGCTGGAGTGACTATATTAATATCAGATCAAACAGAT
+TTAAGACAGTAAATATTACTACAAAAGACAAGGTATTTCATAATTTTTAAATGGTCAATT
+CATCAGCAAAATTTTACAGCAATAAGTACACACATTGTTTATTGTGTCAAAAAAGAAAGT
+TTGAAATTACATGAAGGTAAAACTTCAGTGTTTGGCAGTTTCTTCTTCACTCTCTGTCTC
+TTGCCTGCCACCATATATGACGTGCCTGCATCCCCTTCCACCATGACTGTAAGTTTCCTG
+ATACCTTTCCAGCAATGTGGAACTATGAGTCAATTAAACCTTTTCTCTTTATAAATTACC
+CAGTCTCAGGCAGTTCTTTAAAGCAGGCTTAAAATGGACTAACACAGTGTTCCATTAGCA
+TTAAAAAAGAATGTGTACTCTTTTGTCTTTGGATGGACTGTTCTATAGATGTAGATTAGA
+TTAATTTGGATGCAGTATCATTCAAGTATTATATATCCTTGCTGATTTTTTTATTTGTTC
+CATCAATTATTGATAATGGATTATTAAAGTCTCTAAGTTTTATTGCTGAATTGCCTATTT
+CCCCTTTAAATTATGTAAGTATTACATAACTTAAGTATTACATAATTTACATAATACGAA
+GTGGGAGAATCACCTGAGCCTGGGAAGTCGAGACTGCAGTGAGCTGTGATTGCACCACTG
+GGAGACTGTGGTTGCACCACTAGGAGTGAGAAGTAACTAACTTGTATCTTGGAAGTAACT
+AACTTGTTTTTGATTTTACAGGCCGATAGGTGGAAGAGACTTGCCTTGTCTCAGATGAGA
+CTTTGGAGTTGGACTTTTGAGTTAAAGCTGAAATGAGTTAAGATTTGGGGGATTGTTGGG
+AAGGTATGATTGGTTTTGAAATGTAAAAAGGACATGAGATTTGGGAGGGGCCGGGGGCAG
+AATGATATGATTTGGCTCTGTGTCCTCACCCAAATCTCATCTTGAAATGTAATCCCCGCT
+TGTCAAGGGAGGAACCTGGTGTGAGGTGACTGGATCATGGGGGTGGTTTCCCTATGCTGT
+TCTAGTGATAGTAAGTGACTTCTCATGAGATCTGATGGTTTTATAAGGGGCTTTTCCTCC
+CCTTCACTCTGTACTTCTTGCTGCTGCCATGTGAAGAAGGATGTGTTTACTTTCCTTTTC
+ACCATGATTTCAAGCATGATTGCACCACTGGGAGTGAGACCCTATCTCGAAGTAAAATAA
+AATAAAACAAAAACTCTCACTCCCAGTGGTGCAATAGAGTGAGACCCTATCTCAAAGTAA
+AATAAAATGAAACAACAACTCTCAACAAATAAGAAAGAAAAGAGTAATTTCTCGGTCTCA
+TAAAGAGAACCTATGAAAACCCTACAGATAAAATGTAGCATGACAAATAACATACTTTCC
+CCCCAGTATCAGGAATAAGGCAAGAATGTATGCTTTCACCACTTCCAATCAACAAGGTAG
+TGGAGGTTCTAGCCAGTGTAATCAGGCATGGAAAAAAATGGTATCCAGAGAGGAAAGAAA
+TAAGTAAAATGGTGTCTATTCACAGAAGACATCAACTTGAATAATAACATAGAAGATGAA
+ATTCTTACAGTTAGATCTTACAAAAGTCCTCTTTATTGAAAACTATAAATCATTCTTGAG
+AGAAATTAAACAAGATGTAAACAAATGAAAAGACATATCTTATTTGTTGATAAGAAGAAT
+TAATATTGTTAAAATAAATAACAATTCTTATTTTGATCTACAGAGATGGTGCAAGAATAA
+TTACTATAAGAACGGGCATTTTTAGAGCAGTTGACAAGCTATTTCTGAAATTCATCTGGA
+AATGCAAAGGACCTGGAAAAGGCAAAACAACTTAAGAATTATTTTAAAGCTGAAGTCACC
+AAGACAGTGTGCTATGGGTTTCAAGATAGACAAATAAATTAATGGGTTAGAAAAAAAGCC
+TAGAAATATATATATATATATATATGTATGTATATGTATATAGACATTGAATATATATAA
+ATATATATTCAATATATAAAAAATATAGGATATATATAATATATATAGATGTGTGTGTGT
+GTGTGTGTATATATAGAGAGAGAGAGAGAGAGAGAGCCAATTCATTTTTTGACAAAGCTT
+ATAGGAAATTGAGTGGAGAAAAGAGAGCATTTTCAACAAAGGTAGTGGAACATTTAGACA
+TCCATTTAAACTTCAATAATAACTTCAATAACTTCAATCCTTATCTCACATCATATAAAA
+AATTAAATTGGCTCATAGACCTAAATGGAAAACTAAAACTATTAAATTTCTGGGAGAAAA
+TCGAGGATAAAGTCTTTGTAACTTTGGGTTTGACATTAAAAGCACAAATGATAAAAGTAA
+AATTTGGCAAACTTGACTTTTCAAATTAAGAAATTCTTCTCTCCAAAGGATTATAAAAAG
+ATAAGTCATGGGTTGGGAACAGACATTTGCACATTACCTACTTGATAAAGTACTTGAGTC
+TAGAATATATAAAGAGCTTTCAAAATTCAACAATAAGAAAACAAACCAATACAAAGGGTG
+GGGCTAGAATTTGAATAGCCGTGTCACAAAATAGATGATAAATTAGAACGTTAAAAAGGT
+CTTTAACATCACTAGTCATTAGGGAAATGCAAATTAAAATCATGAGACATTAAAATGAAT
+AAAATACACTTCTTAAAATAAAATATCAGGCCATATTAACTCCTGACAAGGTTGTAGAGC
+AACTGGAACTTACTGTTGATGAAAATATAAAATGATACCATCGCTTTGGAAAATGCTTAG
+TCAGCTTCCTGAAATGTGAAGCATACTCCTAACATATAGCCCAGGCATTCATTCCTATGT
+ATTTGTCCTAGAGAAATTAAAGCATATATCATCATGAAAACTGACACATACATGTTTGTA
+GCAGCGTTATTTGTAATCTCACAGAAACATAAATAATGCAAATGCCCATCAAGAGAAGAA
+TGAACAAAGAAATTATGGCACATTCCAACAATTAAATACTACCTAGCAATAAAAAATCTA
+CTGATAAACCTAAAAAGATAATTATGCTTAGTGAAAAAGACACATAAGAGTATGTATTGT
+ATGATTCCATTTTTAAAATTCTAGAAAATGGAAATTAATCTATGATAACATAGAGCAAAT
+CAGTGGTTGCCTAAGAAAAGAGAAGGGATGAAAGAAAGACTCTAGTTTATTGTACGTCAA
+TTCTACCTCATTAAACCCATGAAAAAATATATAAATGAGCATTATTTCCTGCATGATATC
+AAAAGAATAAACAGTATAGTATTGGTTAAACATAAATAAATCAATGACAGTCTAGAAACA
+ACAAAAGTTTACATGAGTTTAATTTATAATAGGGTAGCAGTAACAACAGTGAATTATTTA
+CCATAATTTCAATAATCCCTTGAAAAGGGGTTAATTTCAGTGGTCCAGAGCACAGATTAG
+AGAGAAAGATTTCCTGCAATTAGTCCTGGCTCCTCTACTTAATAGTGTGATGACTTTTGA
+AAAGTTATGTAATCTTTCTAAGTTTCTAACCCATGACCGTCCTTGTTACAACCTGCGTCC
+AAATCAAACTATTTGTCAAAAAAGGGAACAAGTAAAATTTTAATTTAACCTTGACCTCTA
+CCTAACACTACCCCTTAAAACTAACTTATAAAGGTCTTGATTCTATATAAAAGCAAAATT
+AATAACATCTGTAGAAGCAAATACAGGGGAACATCTAGGGATTCCTTATGGTTTAAATAG
+TTCTAATCAGGGATGAGGGCGTGTCAGCTGGGAGTCTTTTGTTATCCAGGAGTCATGGAA
+GAAAATCTTACTGCCTATCAGAAAGCCTGTGCAGCCAATTTAGGATACCTTCAGTTTTCA
+TCTATGAAGAACAGAACATTTATTTTTAACCAGTTTCAGAGAAGGATATCAAGACAAAAT
+ATTCCTTAATCCTCTTATTCAAAATTAAAACAAAACAAAGGATTATACATCTCACTCACT
+CCTCTAGTTCCTAAGTCTTTTTACGTCTTGCTTTCTCCTGCCAAGCTTCAAGGTTTGCCT
+ACATTCTTTTTCCATTTTAAGTGGATATGGCACTTTAGGAAGTACATCGTGCAGGACTGA
+ATTAAATTACTAGCTCTGCCATTTAATTGGGTTGCCTTAAGCGATCCTTAAGCAAAGGAC
+TGATTAAGAAAACTGTCTTTTTCTTAGTCTTTCCTTCAACAAATAAAAAGGAACAACAAA
+TAAAAAAAATATTTTTTATTGTGAATGCTGAATGAAATAACATGGCGACAAAGTATGTCC
+CACAGTAGTCATTTTAAAATGTTAGCCTCCTTTCCTTTTTGAATATAAAATATCCTATTT
+GATTTGTGTGTATAGCCAGTCCAGCTTCTCTTCAATCCTTTAAGAACCATTTAGGGCAAA
+AATTATTTTAGTACTGCTCTAGGTAAGATCATTGTTGTCAGTAATGCTAGCACTTCCATT
+GTCCTCTTGTACTGAATTGCATTCTTTTATTTTGGTTTTTGTCTTTCAGAATTTATGACA
+TCGGGACAGAGGGAATTTGTTCATTTTGTCTTATTTATGCTAATGGGAACAGTCAGTGAA
+ATAGGAGCGACTGAAATTATAAGGAACCCATAACAGTCCTTGTGCAACCAACCGCCAAAA
+CAAACCATTTGTCATGAAGGGGATAAGCAGAAATTTAACAGCTTTCTCTCCTTTCTGTTT
+TTCTTTTGCCCGCGTTCCTCTGACCTCTGTTACAGCTCTAAATTGTTGTAAAAGCAATCA
+GACATCTGTAGCAAAAGAAGGATGAAAGAAAAAGTGTTTAAATTATCTGTTAAAAAAAAT
+GAGTTTTTCATACGAGGAGCAACTTGCTGTTGGGGATCAGAAAATGATGCCCTAAAAGGA
+AGGCTCTTCAGTCTGAGAAGCAAAAGTTTCTCTTAGACCTTCCCCGACCTTCTTGTAAGG
+GGTGCCTACGAGAGAATGAATGCCTCTCATTCTCCTCAAGACTAGCCATAGAGACTAGAA
+TCTCTCTTCCCCACGGCAGGTTGTAGAAACCAGAAGCTCTTTTCCCCAAAGCCAGATATA
+AAACCTAAAAATATTACTCTTTATCCCCCACCTTTCTTTGTAAAATGTTGCCATTAAGAA
+CTTACCTGGGCCGGGAGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCGAGG
+CGGGCGGATCACGAGGTCAGGAGATCGACACCATCCTGGCTAAAACAGTGAAACGCCGTC
+TCTACTAAAAATACAAAAAAATTAGCCGGGCGTGGTGGCGGGCGCCTGTGGTCCCGGCTA
+CTCGGGAGGCTGAGGCAGGAGAATGGCGTGAACCCGGGAGGCGGAGCTTGCAGTGAGCCG
+AGATGGCGCCACTGCACTCCAGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAAATAAA
+TAAATAAATAAAATAAAAAGAACTTACCTGATCTACCTTATTTGACTGTAGGTCATAAGA
+CCCCCATTCCAGAGACAGTCCTGCCCCACACCCAGAAGGAAGGAAAGCTGCAGAGAGAGG
+ACAAAGAGAATTTAGACGGACAGGCCCTGCTGGGTTTCCCCACTCAGTCCACTAGCATTA
+GATCATTCCCTTTTTGTCCAGTCATATTTCTACATGACAGTCCATACTTAGTTGAACCTA
+AGCATAAAAATGGACAGTTTCCCTTGTATTTTGGGGTCTTCATTCTGAAGGTCTCCTGTC
+ATGTAAATCCATGATCAAATACATTTGTATGCCTTTTCTTGAATAAATCTCTTTTGTCTA
+TTGATTTTCAGCAAACATTCAGAGGGTGAAGGGGAAGCATTGCCTTGGCCCCTACACTGT
+TCTTCAGGGAAAGAGCACCAGAACCTTGAGTGGTTTCTTTGTGACCATACTTCATTAGCG
+AAATCACCTCTGCATCTATTATCTCCAGCTGCAGCAGCAGCAGCAGCAGCAACAATCCTT
+TTAAGGAGAGTTAAAAATGGCTAATGGTATTTCCCCTCACAAGCAGTAGTTATTATCATT
+GCTCAAGGTCAATGTACATAAAAGAATGTAGAAATTCCGAGGAAGAAATGTGAAGAGTTT
+TTATGAGAAAAGAACAGAGCTCCAGGGCTTTGCACAAAAGTGACAAATTACTGTAATCTT
+TCATGGGAATGGCCATAAGATATCATGTGTATAATATAAAAATTGCTTTTTAAACTAACC
+ATGTTTATTCTGATTATTAACTTCCAAGAAGAAGAAACTTAACCTAATAGTTAATTTCCT
+GTTGGTGCAAAATATATTATTTGGATAATGCAGACTGATATCATTAATCATATTTTTATA
+ATATATTGGGATAAATTGTCAAATATCTTAGGTGCTTTACCCTTTAAATCTATTGCCATT
+ATTTGTAATAATTCAATTAATTCTCCATATCTCTGAGCACGGATGTCCGGTATCTGTTTT
+AGTTATCAGTTATTTAATGGTTACTACATTCCAGGCACTCTGCTAAGTAAGTTACATAAA
+TTATTTAACCCTCACAGCAATGGTTTGAAATGATCTCCATTGTGTCAACCTAAAATAACC
+AAAAGGAACAAAATCTAATTTAAAGAAAGTGTATTCAAGCACAAAGTGTGAAGGTGGCCA
+TCTGGGGAACAGAGCTGCACCAAAGAATGGTGCTCAGTGCTCCTGCTGTGAGAAAAAATG
+AGGATCATTTGTATAGGCAAAAATCGAGTTGGTGAACAAAATTACAACGTTTTTCCAACA
+CAGACATGCAGATAATAAGATTTGGTTGGCTAGTACTGATTACACTCTAAGAAGGTTATG
+TAACATTTTATCATAAAGAGGTAACAATCACAAGGATCTCTCTAATATCGTTTAGTCTAG
+GTTTGAATAAAGAATAGGGAGTCTGGTTAATGTTTAACATCTTAACACAAAGGTCAGGAA
+GCAAAGGCCAGACACCAGAGAAGAAAAACAGCCATGTCAAATGAGTCTGTTTCTAGGGCA
+TCATTTTTTCCCTTGGCATAATAAATTGGGGTGATCCTGAAATTTTCATTCTTTTTACAT
+TTCCCTCTTTCTTTCAAACTCTAAGAGGAAGCATTGCAGGAGAATTATTTAGTCAGATCG
+CATATTTGATCGAATCTCACATTGCTAGGAAGACTCATTTTTAGGAAGTCATGTACCATG
+GAGGAGAGAAATATTAGAAAGGACCAAGGCCGAATTACAAAGAAACAAAAGGAAAGTAGT
+CTTGGAACCTGGTTAGGCTACATGTCTATCTCTGTAATCAAAGCAAATTTTTGAACAATC
+ATTACTTTGGTTTTTTAGTTGTATATTGACTTGAAGACAAATATCATACGGTAATGGAGA
+CAAAAACAGGATAAAACACAACAAACAAATGATTATAATTTTTAGAATATGTAACAGTGT
+TTGTCACCAAGTTTCCTGTGATTCAAACCAGTTATTCAGCAAGTTGTTTAGAGGACATGT
+CGGATCTGAAGGTTGGTTACTTGGGTTTTTATATTAGCCACTAATTTAGTCACGTTATTT
+GACTTAACTGTAATATAGACACAACATTTAGTTTTCAGGATAGCACAGGTTTCTTTTGGG
+CTACAGTGTATATGTCTAAAGTCATGTGGTTTTGTAATATAGCCTTTTTATGACAGTAAC
+TTAATTAATAGCAAGGTATGGAATCTTATCATTTAATAACAAGTTAGAAAATGCAGCTGT
+CGCTTAGGGCCTTTTGGATATAATTGGTTAGGGCCTCTATATGTCAAATGACATCTTTAA
+TACACAGCTGTGGTATAAAGAAAGAAGCTAAATGGTCACACCAATGGAACATAGAATATA
+CCTATTGAGATTGTAAACGGGGAAAAATTGTTGGTTTTGACAGCATGTGAACTATTTGAC
+CTTATAGCTAAGTATAACCCAGAGGACATTGTCCTCTTCATCTTGGGGTAACTATGGCCG
+TAGATAGCCAAGACATTTTAGTTGGAGCTAACCAATAAATACCCAGTTATTGTCTCTAAT
+TAGTGGCATGTGAGTCAGCACTTTGTAATATAACGGTGTGGGTGACTGTGTTTTGGGCAT
+TTTCCCATATCTCTAGTGCAGTGGGCCATTCATCTTTGGTGTAATTTTTTGTTCCCAACA
+TAAAGAGACGTGTTGATTAAGCTGGCCAAAAGAAGGAGTGAGACAAATAAACCTGTTCCG
+AATTTGTACTATATCATCTTGAAATCAAGTTGTCCTTTGGGGGAGCAACATTTTATTTGT
+TTATTGTTTTTGTCTTTTGTTTTAGTTGAGGTAGTGTCAGAGTAAAACCTAACTAGTAGC
+CAGGCGCAGTGGCTCACGCCTGTAATCTCAGCACTTTGGGAGGCTGAGGCGGGCGGATCA
+CAAGGTCAGGAGATCGAGACTATCCTGGCTAACATGGTGAAACCCCATCTCTACTAAAAA
+TTAAAAAAAAAAAAAAATTAGCTGGGCGTGGTGACAGGCGCCTGTAGTCCCAGCTACTCG
+GGAGGCTGAGGCAGGAGAATGGCGTGAACCTGGGAGGCAGAGCTTGCAGTGAGCCGAGAT
+CGCGCCACTGCACTCCAGGCTGGGTGACAGAGCGAGACTCCATCTCAAAAAAAAAAAAAA
+AAAAAGCTAACTAGTTAGAGTTTTATTTTTCTACCAAGACGCTCTTCCTATGGTGCTTGT
+TCTGTACAGTATCATCAAAAGCCAGAGTGTACAGTATCTTCAGCCAGACTGTCATTTTAA
+AATATGAATAAATGGGAATCACTAGAAAGACACATGAGACCATGGGTCTAATAAGCGTCT
+TTTCGTAAGCTATCAGCATAGTCTTGGGCCCATTGTAAAAAGTGGTTTGCTTCACAATAG
+CTGGTGATACTTCTACCAAGACATAAGAATTAGGGATAAAAAGAAGAAAGTTTAATTGGA
+GCTTATAAAAGAAAATCCTCCCCATCTGTTAACAATCGTTAGCATAAACAGTTTGTTTAG
+ATACAGACCTGGTCTGGGGTTTTGTGTTTTAGCTGTCCACATCGGATGCCATCTTTTTCC
+TAACCTGGTGTTGACTTATTTTAAGTCAGAGATCACCTTTCAGGGAAGAGTCCAGCCAGG
+AGTGTCATTCTTTTTTAGATGAGAAATGCTAACGCATGAATCTTCACCAACGAGGTTTGG
+TGAGGAGTACTCGATCAGGTCCATAGCATTTTCACTGAAGAGAGCTCTTTAAGAAATGTC
+ATATCCGGCCGAGGCGGTGGCTCACGCCTGTACTCCCAGCACTTTGGGAGGCCAAGGCAG
+ATGGATCACTTGATGTCAGGGTTTGAAACCAGCCTGGCCAACATGGCGAAACCCTGTCTC
+TACTAAAAATACAAAAAATAGTCAGGTGTGGTTATGGGTGCCTGTAATTCCAGCTACTCG
+GGAGGCTGAGAAAGGAGAATCAGTTGAACCCGGGAGGCGGAGGTTGCAGTGAGCAGAGAT
+TGTGCCACTGCACTCCAGCCTGGGCAACAGAGCAACACTCACTCTCAAAAAAAGAAAAAA
+AAAAGTCTTTGCCAATAGATGAAATTTCCTAGACTGCGTGGCTTTTGAAATTTCCCATCT
+TCTGGGAGCTTGCTGTGAAAAGATTATTTCACCAATTTATAATTTTTAGTTAGTTGCTTC
+ATAAGACCGTTGTAATAGCTAAACATGTCTCCCTTTACTATTGAAGACATATAGTTTCCT
+GGAGACAATTTCATAGGTCTGCTTGTTATAAATTTGATTGGAGATTACTGGTATTTAGCA
+AAAGGGGGTCAACCTCAGGTTAAGTAGAATCAGTGGAAGAGCTTTTGGGGAAGACATACT
+AAAAGCCTCAGTTAATTTTGCCAGTTTTGATTATTTCATTGGTGCTTTCCACTAACCCAG
+ATGACTGGGGGTAGTAAACATAATGAAATGTTGGCGACTAGACCAAACTTTACATACTGA
+TTAAACTTAAATTTGCCCAGTGAAGTCAGTACCTCTATTGCTATGAATTCCCCAGGTTGG
+AATGGTTTTTAAACAGAATTTCACTCACTGTTAAAGCCATTGCTCTTCTGTAGGGAAATG
+CTTCTACTCAGTGAGAAAACATGTAAATCATTAGCAGGATGTATTTGTATGTTTGTGAGG
+GTGGCAACTGGATGAAATCTAATTGCCACACCTCAAAAGGGACCTCAGGTAAAGAAAAAT
+ATACTTGGGAGCCATGTAATATTTTCCCTGGATTATATTTTGAACAATTGTAACAATGAG
+CTATAGCTCAAAAAGGTTTTAAAAAATATTATTTTCCCCAAGCAATCATGTCTTCAGGCT
+CCAGTGAGTTAGCTCATGTATATAACTGTAAGTCAGCAGGAAATGCAGGCAAATCATTTG
+ACCCATACCATATCTCATTTTGAGAGGTGTATCCTCCCCCTTTTGCTTTCCAATTTTTCT
+GTTTTGATTTTAGAGTTCTAGATTAAGCTACTTCTTAAAATCAAAAGTAGATTTTTTAAG
+TTAATGTCAATTGTTTTCTTAATTAGATGCATTTAGAGCAATTCTTTTTGTTAACTTATC
+AGCTAGCTCATTTTTTTGTTTGTTTGTTTGTTTTCTGGGGTATCTGATTTTGAATGACCT
+GGAATTCTAATTGTGAATAGTAACTTTGGTAATATTATAGGTTCTAACAATTTTGAAATG
+AGGTGTCCTTTTTTTTTTTTTTTTTTTTTTTTTGAGATGGTGTCTTCCTCTGTCGCCCAG
+GCTAGGCAATCTCCCTCTGTCATCCAGTGGCACGATCTCGGCTCACTGCAACCTCTGCCT
+CCTGGGTTCAAGAGATTGTCCTGCCTCAGCCTCCTGAGTAGCTGGGACTACAGGCGTGTG
+CCACCGCGCCTGGCTAATTTTTGTGTTTTTAGTAGAAATGGTGTTTCACCACGTTGGCCA
+GGCTGGTCTCCAACTCCTGACCTCAGGTGATCCGCCTGCGTCGGCCTCCCAAAGTGCTGG
+GATTACAGGCATGAGCCACCACGCCCGGCCTGAGGTGTTCAATTTTTATGGGTTGACCAG
+AAGAGGCTAAAAATCTTGTCTGTTTCTGTGATATTAAAAAATCATGAACTACTTCAAAGG
+CATATCTACTGTCTGTAGAAATATTAGCAGTTTTGTTGTTGTTGTTGTTAATTGAGGAGC
+CCCAATCAATGTAATTAATTTCGTTTGTTGATTTAAAGTGACTTTTGGAACTTAAGCACT
+TTTTATTTCTTCAGTTAAGGATACTTTTTAAAGTAAAATCCATTTGTAAACCAAACAATA
+TCAAGCATTAGCAAGGGGAATCTCTTGTAGGCCAGCCCTAGAAAAGAGCAGTTGAACAGT
+TAGAGTTATGCAATTATGCAGTTTCAGCTGACAATGGAAGTAGAAGAATGCAGGAATTAG
+GTTATTACAACCAGAGATGGTGATATGAGAATCTGAAAGAAGTAAAACTTTATATGAAGC
+TATTCTACTAACTGAATAACGTTGAATGGGGTGTGAGTTTAGCATTACTTCCACAAAATG
+AGAAATGAAAACACTAAAGTATATTCCCATTAAAGTTTCTTTAGCTGCCTTAACAAAGCA
+GTGGCTTTTACAGCTCTCATGCAAGTTAGCACTCCTCTTGTTACAAAGTCTGTTGGCTAT
+AGCACCCTACAGGATTATTTTGTTCTCCGCATTTTTGAGTTAGGACCCTTAGAGCGTTAC
+CAGCACTCTTACATACAAACAATAAAAAGGAAGGTTATAATTTGGATACGCCAAAACTGG
+AGCATTAGCAAGGTCATCTTTTATCTTTTTTTGTTATTTATTTTTTGTAGAGGTCTCACT
+ATGTTGCCCAGACTGGTCTTGAACTCCCGGGCTCAAGAAACCCTCTTGCCTTGCCCTCCC
+AAAGTACTGTTATTACAAGCATGAGCCACTATGTTGATTTTCTTCTGTCCACTCCAGAGG
+GTCTGGAATGTCTTGCCTGAAGACAGCCTATAAGGGCTGGGTTTTTAAAGAAAAATTTGG
+GATCCAATCTCTAAATTATCCTGCCATCCCAAAAACTCTCTCACCCGTATCTTGGTTCGT
+GGTAGTGAAAACTTTAATATACCTTTCAGTCTGTCCATGTTAACAATAAGTCCTTCCTAA
+GATATTAGGTGGCCTAAGTGCTCTAATTTTTTTTTTTACAAAATCAAAGTTTTGCTTTAG
+AAATCTTGTGTCCTTTAAAGGTAATTGTTATAACAAGTAAATCTCATCTTCTATAGAGTT
+CTGCTCATCCTCTGAGCAGAGGAGAAAATTGTCTACAAACTATATTTAAAAGGATTTTTT
+AAAGAGGTCAACATCTGAGAGGTCTTTTTAAACATTTGTGAAAAGTAAGTTTGGCTCCCA
+GTGTGTCCCTAAGGCATGACTGTTCATGAGTACTGTCTGTCTTCCCAAGTGAAGACAAAC
+AGAAATTGACTATTTTTATCTAAAGGAATACTAAGGAATTCACTACATAAGTCTATTCCA
+TTCAATAACCACCTTCAGCTGCAAAGGCAGCCAACAACATGTGGGGGTTTGGCACTGCTG
+AATGTTAAGAATGACTGTGTTGTTAATTGCTTTCAGATTCTGTACAAACCTCCTTCTTTT
+ACCATTTAGTTTCCTTACAGGAAGGACTGGAATGTTACATGGGCTTGTAGAGGGAATAAT
+CAATCCTCTCTTTATATAAAAATCCTAAAATTCTAGTCTTTATTCCCTTTAGTGCTTTAT
+TCCTCAAAGGATATTATTTGAGTTTGGAAGAAGTTTTGATGGACCTATTTGAACTTTGAT
+ATGGATAGCTGAGATGATTTCTCCAATATCAGTGGAAGACTTTGTTAACAATTAATCAGG
+AGCTGCCTTTAGCAGATTTTGTAATTTTTTATTACTCAATAATTTAGTGTCTTCTATGGC
+AATATGGATTGCAATTGGATTAGACTTTCAAAATTTGTTATGTCTAGTAATTCAGTTTTA
+TTATTTAATTCTATATACATTTTCCCTTTTTGGGAGAAAGAAAGGTGAGCATTTTATAAT
+TTTAAGAATCATCTTTTTATAAGGTGGATGGGAGCTGATAGAACCAGAAGGAAAACATGA
+GTCCCTTGTATGGGACCTTGTTGAAAAGCCACAGGCTGAGACTTGTATGTTGACAAAGGA
+TTATTTGTGACATCTACCATTGGAATTCTTTGCTTACTCCAAGGAATGAAATCTTGTAAT
+AAGTTGGGCTTTATTACAGATAAAGAGGCTCCAGTGTTAACAAGAGCTTGTGTTAGTAAC
+AAGAGCTTGTGTTCGTTTTTTATTTAAAATAATAACTATTTTTTAAAGTCAAGCCAGGGT
+CATAGGCTTAAATATTTAATTTAAATTTCCTGGAAAAACCATAGGGTCCTGGTAAAAATC
+AGGAAATTTTAAAAGTATATCTCTAAGTTTTACCTTTCACCATGATTGATAAACTGGGGC
+AGGCTTTTCCCAGCCAGACACTGGCTGTTTGAGAAATGGAGCCAGGACAGGAGAAGGAGT
+TGGAGGAGGAGGAGGAGTTGGAGAAAGAGGAAGAAGAGGAGGAGAAAGAGAAGGTGATAG
+AGGAGGAAGAGGTGGTGAAGGAGGAGGAGAAGGAGGAGGTGGTGGTAGAGGAGGTGGAGG
+AAGAAGAGGTAGGTCTTGGTAAGGTAGTTTAAATAATATTGGACAAAAAGAAGGAGGACA
+TGAGGAAGAAAGAGGATAAATTTTAGCAGTCTTTATACATTTAGAGACTGAAACAATTAT
+TTGCTTTTTCTTATAAAGAAAAAACTTTATTAGAACCTCTTTTGGACACTTTTAAGTACC
+ACTGAAAATAACTCTCTTGATTATTTTGCTTTATCTTGGAGCTGGCTTTTTAAAACTGAG
+CATGCAAGTAAATTAGTTTAGGCATTTTAAAGGTACTTACTTTGGCCATTATAATTTGGG
+TTTTTTATAAATTATATGAGACGATTTTTAAAAATAACAACATGAGGTGACACTATAAGT
+GTTATATATAAGCCCATCTGGTATTTTTATGGTGAACTCCCAAGGAGAAAGACTCAGTTT
+TGGATGAACAATTGTCCATAATATGGGTTTTCTTCTTAAGTGACCAAAGATTATATGGGA
+AATTGGTTAAGATATGTCCACTGAACTGAGCTTCAGAACTTGGCCAGTTTAAAACCACAA
+ATATAGCTTATGCAACAAAGATTCTCTTTCTCTCTGTTTTTTCTTTGATCAAATTTGAGC
+CAGAAAAAAATGTTTCATAATTTAGCAAGTAAGACACACAGAACCTTAATCTCAAAGGAA
+AGTGAAACCTGTAAACAGCAGAATTTTTAGAGAAATAACAGATGAAATTCTTACCTTTAA
+AAGTAGAGCTTTAACTCAGGTTGCTTGAATAAAGTCTGAATCTCAGCCAAAGCCAGGGAG
+ACTGAAAACCAAAGAGAAGGCTTCCAGAGATAACTGCCAGATCCAGTAAAGTCAGATAAG
+TGACAGCCACTCATGCCAGTTCCAAAGCTCTGAATGTCAGTGAAGCAGCAAGGATCTCGG
+GAGGCTCACTTTGGGTCCCTTTTTGGTCAAAAAATGTCAACCTTAAATAATCAAAAGGAA
+TAATTTCTAATTTAAAGAGAGTTTATTTAAGCATAAAATGTAAGGGTGGCCATATGGGGA
+GCAGAGCTACACCAAAGAATGATGATCAGTACTCCTAATGTGGGGAAAAATGAGGATCAT
+TTATATAGGCAAAAACAGAAGTGCTGAACAGAATTACAATAGTTTCCATACAAAGGCTGA
+CATGCAGATAGAAGATGTGATTGTCTACTATTGATGACACTCTGGGGTCTCCATCTCCAG
+TGTCATTTAATTAAGGTTTGAATAAAGAATAAGGCATCTAGTTAACATATAATGTTACAT
+CAAGATCAGGAGGGAAGTTCATGCACCGGAGCAGGAAAACAGCCATGTGATGTGGCTCAG
+TTTCTAGGGCTTCACTTTTCCTCTTGGCATAATAAATGTGGGAAGTCTTGAAGTTGTATT
+TTCTTTTTTAAAATTGTTCTATTTATTTTAGAATTGAGAAAACGCAGATATAAGGATATT
+GCTCAGCTCTCCAATATCACTCTGTCAGTAACTAGTGAAGTTTACATTTTAAAATGAGGC
+CTATCTGGATTCAAGTTTAGAGCATTGACAGAATGTCTACATGGCAAGTCTTCTTCAATA
+TGTTGTCTTAATCCTCCTCTACCTTCATTTGTGTGAGCTATTTTATTGTCATTATTTCTT
+AAATAATGTTTCCTTGATTCAATTTGAAATATAAAACTATAATTTTGCTCTTATAACACC
+GAAAGATAGAAACTAAAAAATGTTGTCTAGGACTTCATATTGTCAATCTTGAAAAGGTAT
+AATAATGATTATAATACGAATTTAAAGTGGACACATGTCAAATATTAACTCATTAATGTG
+GGAACCAATATTACGCTACAAGGGTTTAAAGAATCCAAAGAGTGGAAACATATATGGCCA
+GTCAGAAATTCTGGCCTACATTTTCCTAATAGATGCAAAACTGGTCAATATCCACAGAAC
+ACTAATCAGCCTTCTGCCCAAGGAAATCTGTATTCTTATGGACAAGAATCGTTTGTATTA
+CTTTCAGTATTCAACAACTCATAGAGTTTTAAAGTAGCACGAAGACTAGGAAAGGACAAG
+AGATGCCATCGAATCACACACTCCACCAGTGCCCAGTTTTCTTTTGTAAACATTGAGTAA
+TATTCAAGAAAGAAAGAAAAAAAGAAAGAAAGAAAGAAAGAAAGAAAGGGAAAGAGAAAA
+AGAAAGAAAGAAAGAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAG
+AAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGACTGTATCTGAGAAATGTAAGCTTCTTT
+AAACCATCGGGCCCAGAAAGGCATTTAAAAAGTAACAGTGGCCGGGCGCGGTGATGCACT
+GCTGTAATCCCAGCACTATGGAAGGCCGAGGTGGGTGGATCACCTGAGGTCAGGAGTTCA
+CGACGAGCCTGACTAACATGGTGAGACCCCATCTCTACTAATTACAAAAAAAAAATTAGC
+TGGGTGTGGTGGTGGACGCCTGTAATCCTAGCTGCTTGGGAGGCTGAGACAGGAGAATCG
+CTTGTACCTGGGAGGCGGAAGATGCATGAGCCGAGATATTGCAGTGAGCCGAGATAGTGC
+CATTGCACTCCAGCCTGGGCAACAAGAGGGAAACTCCCTCTTAAAAAAAAAAGAAAAAAA
+AAGTAACAGCAGCCACATCTCACTCCCTCCTGAGTGAAATAATTGTCTCTTAAAGCCACT
+TGCTACGTGGACTCCAGACTAACTGACACCAGGTAGCCATCAAATGCCATACACCCTAGA
+GTTCAGCTATGTCTAGTCAATCACTAACCAATGCTATTTCTGTAAATCAATGAGAATTCT
+TGGCAAATAACTTTTGTAGCTGCCCCCTCTCCTGATTTGTTCTTTCTTCACAAACTTGAG
+TTTCTCTTTTGTTCTCAAGATCACTCCTCAAGGTAACTTGGAGGTGTGTCCCAAGCTGCA
+GTCTGCACCTTTGCACTAGAATGAATGCTCTTTAAACTAGATTCTGACATTTTTTATTAT
+TTTAGGTTAACATAGTTTTGGTCCATTTCAAAGTCTTTCACATTTTTCTCTAACTTGTTT
+AATTTCACCTTAATTATAACATTAAAGTAAAAAAAAATAAAGGTAGAGATGCGCAGTGGT
+TAGCTAACTTGATCAAGATTGCCATGGCCAACACTGTTAAACGTGGAGGAATCACCACAT
+ATATCCATCTACTTTCCTACTAAAATCTCACTAAAATTACAATACAGAAACGGAAAAGCG
+CAATTACTCAAGAATGAAGAGAATGTCAGTGGAGAAAAGTTGGACCACTGGAAAGTTACT
+GACATCCTACAAATACCAGTGGGTAAGCCCACTACAGCCCAGCCTCCACCTGGAAATCGA
+GTGTTTAACATTTATAGAAATTTAATCATAAATGCTCTGGGCTTAGTAAAATCAGCAGCT
+GTTGGTAGAGGGAGATTAGCACAGGGATGAAAACAAAAGGATTCGGTGAAAGATGCCCTT
+GTGAACTCTGGGACTTCTTGCCTCTTCTCCTTCCTCAAGGAGATATGCCTCCAAATTCTG
+AGATTTGAGGATTTTTCTCTTGAAAAATTGACAGTTCCCAAAGAAATTATCTTAATGTAC
+TCACATTGCAGACCTACCAAGTTATCGTCTAATAACCGAGAGGTGCCCCAGGTAGCTAGT
+CTTCTCCATACCTCACCCTTAGAGGAACTGAAATAAGATAAAACAGCCACAACAAAAGCA
+ACAAAACAGAAACCTATAAAGTTGTCAAAGAGAAAATTACAGCAAATTTAGTTATGTGTC
+AAATTGGTTTTTGTTTGAGATTCAGGAATTGGGGCAGTCTCCATTCTACAAAATAGAATG
+GGAGCTCTAACCAGGAAATCGCAGAGCAGTGATTTCATGAGGTGAAAACACGGAAATAGA
+AGAACAGGGAAAAAAAAAAAGTAAATAAATAAAAAGGCTGGGAGCAGTGGCTCATGCCTG
+TAATCCCAGCACTTTGGGATCAGGTGGAACACCTGAGTTCGGGAGTTCGAGACCAGACTG
+GCCAATATGGTGAAACCCTGTCTCTACTAAAAATACAAAAACTTAGCCTAGAGTGGTGGC
+ATGCGCCTATAGTCCCAGCTACTTGGGAGGCTGAGGAATGAGAATCATTTGAACCAAGGA
+GGCAGAGGTTGCAGTGAGCCGAGATCATGCCACTGCACCCCAGCCTGAGCAAAAGAGCGA
+GACTCTATCTGAAAAAAAACCAAAAAACAAAGAAACACCTGATTGATTAACATCGGCTTA
+TTTCGGGTTATTTTTTTGGAAAGGTTTAAACAGAGGAGACTTCCTTAATATGCTGAGTCA
+GGTAGACTGGAATCTTGTTTTTAGGAAAAACTGGTCTGTTTTGGGATCTCTCTGCCTTCT
+AAAAATTTCAGTTTGATTGTACAGTGTTCAGTTTGATTGTATAGTGATTGTATAGTGAGT
+CACTCCATTAGGTTTGGTCTGGTCTGTTGGGCCTAGTGCAGGAGATCTTTCCAAAAACAA
+TATGGTCTCCCATAATTTTGTTTAACACAGTATATAGGAGTTAATAAATAATAGAAACAA
+CCTGTGTAGATAAAATAAAAAATAAAACTTCTCTGCCCTCTCTGGACAATTTCACTTATT
+ACTAATTTAATGCCTGATATTTCAAAATGGTTTAAATCACTGAATTTTTGACAAAGGGGA
+AGCAAGCGAAAGATCCAGGTAATGCTTTGGAAAGGGCTCTTTGCTGCTTTGGTACAATAT
+AACAGGAATAAAATTGCCTCACTAGAAAATACCTTTGGCTACAAACTTGAGGAAAGGATA
+AGGGCAGGAAATACATTGAGAAATAATAATGTTTTAAGATGTTTTATTAGTTGTGCTTTC
+ATCGCTTTTTGAACCTCAGATATCAAAGAACTACTTAAGTGATTATATCACAAATCACCA
+ATCAGAAGCAGCAAAATAGGGACGTGGAATATTAGAATAGGAAAGAACCTTAAGCATTAT
+TCAGAATAACTGCTTCATTTTACAGGAGAGCAAACCAAAGTCCATCGAGGCTAAGAATGT
+CCCATGAAGCCACAAAGTATGCTCAAATTTCCCCAGGTAATTAAAATTAAAGTAAGTTGT
+CTGAGTCTTGAGTATATCTTATCAGTATTTCACAAGTAAAAAAATATAAATCTATCTTTA
+TTCATTACAGATTAAGAAACCAAGTGTCAGATCTAGTAAAGGACTTATTTAGAACCACAT
+ATAAGTTAACATCTTGATTTCCAGCCCAGGTCAATTCCCATTACACAATGCTAGTATGTC
+TTAACTGATTAAGAATAAAATGTTAAAGATTTTATTTTTTAATCAAAAATAAACTTGGTT
+ATAATCTCTACTGGTCGTGGTCACAATCAGAGTACTGAAAGGTAAACAATTCCAAAAATG
+TTAGATATTTCTTAGAAGTCACTTTCAGCATCCTATCATAGGATTGGTTTGAATTTCCTC
+AGTATTACCACATAGTAAAATACATTTTTCTCTACAATAGCATCCATTCAGGATTTTCTT
+TGTTTATGAAGATACAAATTAATGTATACATTTTATAATTTTCCTTGTGAAATGATATAG
+CAGTATATTTGTGTCCATTTTATATTTGTAAAGACCAAAATTTTAGATATCTATAATTCC
+CTTTTAATTCTTATGACCAGTTGGTTATTTTATTATATTTATTATATTTATCACCCATCA
+AAGTCATTGAAAGCCCTTATTCTGGGTTGTTTTCATATTTTCTTATATTTTACAGATCAA
+CCTGATTTTTTTAACCAAGAACTTTTATCTTTATAATCTTTATAAGTATTTGAATAGTTT
+TATATACTTCAATATATCTTATTGCATGAGAGTACAGCAGCCTCAACACTTATTAGAATA
+TACTGAAATATATATTAATATTTATAATATTTATATATTATACAATATTTAAAATATTTA
+ATGCAGACTAATATATAATATTTAAATGGAATATTTTAAATACTTAATGTATATTTAAGT
+ATAGTCTGATAAGTGTTGGGGCTACTATAAACATTAAGGTAAATATATTGTACAAATTTA
+TATCATATTAAATATATTTCATATATATCAAAATATTATATATAACATAAATATTATGTT
+ATATATATTTAAGTATATTCTGATAAATGTTGTTGCTACTCTGCCATCATATTTGAGAGT
+CTCATATAATCTAACCTTTGTGTTTTGTCAAATTAATAATAATTGTCTAAGATCTTATGC
+TTATTTTGTCGGGGATTGTGATAAATATATAAAGAAATATGAGAGTTGAAACATTAAAAT
+ATCTTTTTTTCATTAGGTCAAATATTATGTCTCTGCATGTAATTGCCTCCTTTAATATTC
+CTAAAAACTATCATTTCATATATTTAAATACATTTGTGAGCAAAGTTAACTATTCAGTAT
+TTCATTTTTTATTATTAAAAAGAAATTGTTTTTTGGTTGAAATTTATACCCAGTCATGGG
+AGGATTAAGGGAATGCCATGAATGCATACTTCAATATTTTATAATTATATATATCATATA
+TGACATGTGCAGAATTATATGCATATAAATATTTAATTATCACTGCCTTTAGGGAGAAAG
+TCCAGTGATTAATCAAAACCTTACACTTAGGAGACAAAAATAGAAACAAAAACAGATGGA
+TTCGACTTTAACTTTGTTTATTGCTATCGAATTTCCCATTACAGCACCATGCTTATTAGT
+AGAAAATATAAACATTGGAAGTGTATTACATTTCTTCAGCTCAACATCTTCAGTAAAAGG
+AAGATAATGCCACCCAGCATGCAGAATTAATGGCTGGCTTTTCTTCATTTAACTTTCTAT
+ATTGAGATTCATTCATAGTGTTTTATACACACATTTTTATTCATTTTTATTGTGATGTAA
+TATTTTGTTTTATGGATGTACAAGAATGTATTTATCCCTTCTGATGCTGGGGGACTACTT
+GATGATTTTTAGTTTGAAGCTATTTTGATGATGCCGCAGTGAACGTGTTTATATGTTCCA
+ACTCTGCAAATATACACATTTTACTCAAGAGTAGTATTGCTGAATCTTAGGTTAGGCATA
+TGTTCAGCTTTATTATACACATACTGCCAAGCAATGTTCTAAAAAGGTTTAACAGTTTTA
+TTACACAAATAATGTTATTCCACATCCTTATCAATACTACAACCCGCATAAAATTATTTT
+TTTATGGTGTGATAAGAGTCAAAGTTAATTGTGTTTATTTTTTTCATATAGATACCCAAC
+TGACACGGCATCATTTTATGAAAACAGTAGTTTTCCCTTTCTGTAGTGCATGATTTTCAT
+AAATCACGTGTCTAAATGTGTTTGGAACTGATGTTGAACTCTCCGTTATATTCTATTGGT
+CTGTTTGCCTGTTAACATTGTATTAGCATACCTTTGTAGTGACTATTGTTTTTTGTTAGC
+GTAAGTTCTCAAAATTTACTTTTCAAAATTATATTGGCTATTTTATGTATTCATATTTAT
+AATTAAATTATCAAATGCCTCTCATTTTCTGATGCCATTTTAATTGCAATTGAACTAACC
+CTACATACAGCTCAATTAGAAAGAATCAGCAAATTTGTAATATAGATTCCATTAACATTG
+TCAATTAATCTGATTATTTAAATCTTAATTTCTCGAAATTACATTTTATGGTTTTTCCAA
+TACATGCCTGTGGGAAGCAGAATTTAATGACTTTTTTCCTTGTATGATTTCCATCGCTTG
+AATGTGGGAAGAATCTGTATGTATGACAAAATATCACTTCCGTGGTCATGTCATATTGCA
+TGACAAAAGGAATTTTGTAGACACAATTAAGATTCCAAATCAGCTGGTATTAACATAAGG
+AGATCATCAACTGAGACTGACCTAATGACATCAGATCTTTAAATCTGGATCTAGCAGTCA
+GAGAAGGAGAGGGTCAAAGATTCAAAGCATGAGAAAGATTAAACATATCATTGCTGGCTT
+CAAGTTTGAGCAGTGCTGTGTGGCAAGATAAATACATGGCCTAGGAGCTGAAAATAGCCT
+TTGGCCATTTTCCAGCAATGAAATGGGAATCTCAATCCTGCAACCACAATGAACTGAATT
+TTGCCAACAAGAATGAACATCGAAGTGGATGCTTCCCCAGTGCTTCCAGACAAAAATCCC
+ACCTGACTGACATCTTGATTTTGGCCTTCTTAGGACCATCAGTAAAGAAACTAGCTGTAT
+GTACCAGCTTTCCATAGAACTGTAAACAAATACTTTTGTATTGTTTTCAGTTAATAAGTT
+TGTGGTAATTTGTATGCAACCATAGAAAACGAACACAGGGCTTTTGAACATTTTATTGAG
+ATTTATTGCTAGCTATTTTACGTTGTTGATGATATGGTAAATGGTATCATGTTTTTAAAA
+CTTTGTTTTGGGGTGTTCATTCCTGGAATCTAGAAATATAATGAGTTTTATGTAACTCTT
+CTATCTGTGACATTGTTAAAGTTAAATTTGCTTACGTATACTTACATGGATCATCTGTTC
+GTTTTTTAATTTTCTACCTACACAATAATGTCATTCATGAATAAGAACAAATTTGTCTCA
+AATTTGTATACTTTGTTGCATTATTGTCCTAAGCATGAACTAAAAATTGTTAATAGTGGG
+TCCTTGTCTCATGTTTTTATCTCAGGAAGTCAGTTTCAATATTTCAACATTAGTTTGAGG
+TTTACTGTAGGTTTTATGTTGAAATCTTCTATTGGAAGGACATTCTCTTCTATGTGTATT
+TTGGTAAGGATTTTTTCCTCAATTATAACTGAATGCTCAAATGTTCAAGTACCTTTTTCT
+ACATTTATCTGAATGATCACACAAGTATCATTTTACTTTTAATGTGGTGCACTACATTGG
+CTGATTGTTGAAATGGTAAAGAAATCTTTAATTTCTGGGAAAAGAAAACCCACCTTGTTT
+TTGATATTGTATTGTGGATTCCCAAGACCAGGCTGAGGCTCAATGATTCGCTAAGAGGAT
+CCTAGGATTCAGCATATAGTCATATTCAGGATCATGATTTATTAAAGTGAAAGGTTGCAA
+TGCAAAATTAACAAAGGGTAAAGGTAAATGGGAAAAATTCTGGAGGAAAATAAGTGACAG
+GCTCCAAGAGTTTCAGTCCGAATATTTTCTACTAAGCTATCTTCCAGTTCATTAATCTTC
+TTTTCAACTATGTGTAGTCTTCTAGTTAACTTTATTGTATTGCTAGTTTTAGTTATCACA
+TTTCTCAGTTCCATAATTTCAATTTGATTTTCATAGATTGTATTCATTGCTAAAATTGTT
+CATGTTGTCATCTATTTTCTTGAAAATGTAATTACAGTTATTTTTAAATCCATATCCAAA
+AATTCCATAACCTGAATCTCACAATTTTTCTCTTGATTTTTGGTCCTTAGGGTCTTGTCT
+TCTCATGTGACTGGTAATTAGTCATTCAATGCTCAATATTTTGCAGAAACTAGTGTAGTG
+AAAATTTTAAATTCTCTGTGAGATTGAGGGCTATTTCATTTTCGACTTTGCGCTTAATCT
+TAAGATAAAGCACTTAGGTGGGTTGATTCTTAGATGAAAATTCTGGATTGGATATCAAAA
+AGTAGGTTTTTATTTCCATAATTTTTGTCTTCGTATTCCCACTGGACTTTAGAAATCTCG
+ATTTAGTTTCTCAACCTCTTATTTGTCATTCTTTTTTGGCTTCTTGGAATTTTGGTAGCC
+ACTTACAAGCTTGAAAAACGTCTTAATGGAAAAAGCATTGCTGGATGTCAGGAACACCAC
+TCTAGGATTTACAGTTCTTTAGGATCTTGTACCCTTCAGTCCTCAAAGCATTGGTAGCCC
+TCTGATGCCTTTGGACAATTTTTGTATTTTACCCAGGTTTTAGAGTTGTTCTCAAAAGGG
+GAGCTTTTCTAATGTAAGCTAATTCCCATATCCAAAATTACAATTATCCACTATAAACTG
+TCCCATTTCTTTCCAGAAACTCTTCCTACCCTTGAGTAGTGGGTGTTTCCTATAATTCTC
+TCCCTGAGTTTTCTTGGCACAGTCTACATGATTTCCATGAGAGATTGTATTTGTCCCCAG
+AAATTTGATGAACCTCTATGCTTATAACTTTTCAATATCTGATTCAACTCCAAGCTTTTC
+TTGAATGCCAAACCTGTAGATTCTATTGCTTAGTGGAAAGTCTCCACTTGGCATACCAAC
+CATGCCTCAAACATTACATATTTAGTTTTAGTATCATACTTTTGTCCTCTAAAATTACCC
+CTTCATCTAGAGATTTTATTTTTATGAGTGATACTAGAAGCCATCTAGTAACTAAAGCCT
+AAAACGTGCCCTAATTTATGTAGCCTCTTACATATAACTAATAACTGGTCACATATGTTC
+ATCCTGTTGATAATATGCATACATGTCACCACTTCCTACTCCTGCTGATACCACCCTTAT
+TTACACCCTTTTTATCTCATATCAGAATTATTTTGGTGATTTCTAAATGGTATGGTATCG
+TCACTTTTAGCCAGAAATGTGCAACAGAAATTACTTACAAAGCTTTTCTAAAAATGCAAG
+TGTCAGGTTTGACTTCAGACCAACTAAATCAGAATCTCCAAGAAAATAGTTGAGGTACAT
+ACAGTCTGAATTGCATCTGGTAATTTTACCAATATATTCTGTATATTGCTGCCAGGGTAA
+TCTTTCTCAAGATTAAATGTGATCATGCCTTTGACCTACTGAAATTTCTTCAGATATCTC
+TATTACCCATGAAGAAAACAATCAGATGCTTTTGCATGTCCCCTGTGTTCTTCACAATGT
+TCTATTTTACTTCAGTTTTGTTTTTTTTGTTTTGGGATTTTGTTTGTTCGTTTCTTTAGC
+GCAATCAGAGCCTATACCCTAACTAGGACAACGATCATGTTTCTTTGCCTAGTCTTAGTG
+TCTCATAAACTCTATTCTCTGGCCATAACTGTTACTCATGTTTACGAGATTTAATTCAAC
+TACAAAATCTTTTCTGAAGTTAGTCAATTTTTTCTCTAAAGGTCAACGTAGTAAATATTT
+TAGTAATGATTTTTGCAAACTTGGTCACTGTCACAGTTACTCAACTCTGACATTGTTGCA
+TGGACAGATACATAGATAATACATGTTTGAATGGCTATGGCACTGTTCAAATAAAACTTT
+ATTATAAAAACAGACAGCAGGAAACATTTTGCTCAAGGGTCATAGTTTGATGATGCCTGC
+TGTAGATAGATTTTTCCTCACTATACTTTGCACCTATCCAGTACTGCACTAGCATCTTTC
+AAGGCATAATTTGTACTTTATTTTTATTTTATTTATATGTTGACCATTTATTAGACTGTG
+GACTTTTGGATAGCAAGAAAATTTTCTTTTTTATCTATGGATATGCCTAATACACAACAT
+GATAGTGGATGAATAAATAGTGCAACTTTCATTCAAAAGAAAAAGCCCAATACTTGCATT
+TTGAGCAGAAATTCTAGAGGTTAATAAAAACATAATTATCTTAAAGTTTTATGGAATGCA
+ATTATATAAACAGAACTTATTTTAAAGTAGTATTCATAAAGTAATAAGGTAGAGATGAAG
+AAAAGCACATATGAATACCAAGAGACTTTGCAAACATAGAAATAAAAAACAAATATGTGT
+TCACAGAATCAGCATTATTTCTTTATTCCAAAAATTAAGACTCTCTATTATACAGCCCAT
+GAAGATATTAAGCAGAGGCCAATGAACTTTTAGCCATGAGATCAAGGACTGTTTTCTTTA
+CATACTGTTTAATTATAGTACATAGTGGAATGCCTGGAAAAACACAAGTTTGATGTACTT
+AGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAAAGAGAAAGAAAG
+AGAAAAAGAAAGAAAGAAAAAATATTTTCTTTTCTTTATCTAATCTACCATTGATGGACA
+CATGGGTTGATTTCATGTCTTTGCCTTTGTGAGTTACACAGCAATGAATGTATAAGTGCA
+TGTTCCTTTTGGTAAAATGATATTTTTGTTGTTGTTGTTGTGGGGGGTTTATATCCAGTA
+ATGGGATTGCTGGCTGGAATGGTAGTTCTGTTTTTAAGTCCTTTGTGAAATCGCCAAACT
+GCTTTCCACACTGGCTTGACTAATTTACATTCCCACCAACAGCACATGATCATTCATTCC
+CTTTTCTTTGCAGCCTCGCCAGCCTCTGTTGTTTTTTGACTTTTTGATAATAGTCATTCT
+GACTGGTGTGAGATGCTATCTCATTGTGGTTTTGATTTGCATTTCTCTGATGATTAGTAA
+TGCTGAGCATTTTTTCATATGCTTGTTGGCCACTTGTACGTCTTCTTTTAAGAAGTGTCA
+CTTCATGTCGTTTGCCCATTTTTAATGGAATTATTTGTGTTTTGCTTGTTGATTTATGTT
+ACACCATGGAATGCTATGCAGCCATAAAAAAGACTAAAATCATGTCCTTTGCAGCAAGAT
+GGATGGATCTGGAGACCATAATCCTCAACAAATTAATGCAGGAATAGAAAACCAAATACC
+GCATGTTCTCACTTATAAGTGGGAGCTAAGCATTGAGCACACATAGACATAAATATGAAA
+ACAATAGACTGTGCACTACTAGAGGGTGAAAGGAGGGGTTGGGTTAAAAATCTACCTATC
+AAGTATTATGCTTACTACCAGAGTGACAGGCTCCATTCTCCAAAGCTCAGCGGAATGCAA
+TATTCCCATGCAACAAATCTGCATATATACCCCTTGTATCTAAAATAAAAGTTGAAATTT
+AAACTCATATATATGCATATATATATATACAGTTATGTATATGTATATATATAGTTTAAT
+ATATATACACACACACATATATACAGACACACATATATATAGTTCAATATATATACATAC
+ACACACACATATATATGTGTGTGTATATATATATATTTATCTTTTCTGGCTAGACTACAT
+CAGTTTTGTAGATATTCAGCCTTTTACAAAAATGTGTAAACTTCTATCTTAAAGCACTGG
+AGAACTTTATTTTACAAGCTCCATGTCCCCTTCAAAGAAGATTTGGAGACATTCTTTTAG
+TTTCTCATTTTCCCAGTATGCTTCAATAGTTCCTCATGAAGTTAACAACAGGATCCCCCA
+ATTCATTAAGAGAACACACCAGCTTCACTTTAGAAAATTCCTATTCTACATTACCAGCTC
+ACCAATTCAGATCCTACCCTTTGGATATATTTCTTGCTCTTTATGATAACCACTTGTTTT
+ATGAGACTTTGATTGTTATCTTTTAGAGGAATTTTAGATATTTCCCCTTTCTCCCTCTCC
+CCCCACCCCCAGGACTACAGCTCTATTAAGATTCATGTTTGTTTATCCCACACATATATA
+TTGGATGTATTTTGCCTAGTTACAGTTACAAGTACAGGCAAATTGGGAGCAAAATGAACA
+TAGTCTCTACTCTCATGGAGCCCATTTACTAGAGAGGAGAAGTTGGATGCATTAATTTAT
+TTATTCAAATCTCTATTCACACGGGAACACTTGGACTGAGCAAATGCTGTGGTGGGGCAG
+AGGCTGCACGTGTTCCCTGGCTAAACGATGCTTACATCCCTGTTTGGCAGTCAGATATCA
+CGAGGAAAAATTGTAACCCAATTTAGCAGAAGCAATATACAGATATTTTGAGTGATGTGG
+GTTCATAATGAAAGGGCATTTAAGTAGAAATGACGATAATGTTAAGGATTGTCAAAGTAC
+AATGTGGCTTGAGACTTAAAGAATGATTGATTAGGTGCCATCAGGGTGAGTGAGAGAAAA
+GTCTTGGTAGGAAACATTTTCTTCTAAACTAACACATGGGGCTGAAGAAACAGTACTAGC
+AGAAGGTGAAGCTAGAGATGTGTATTAAACTAAACAACCAGGACGTTAACTGAGTGCTTT
+GTAAAAAATGTTCCTCATACTAGGTAAATTGTTAAGAAACAAATGCTCCTGTGTCACAGA
+AATACCTAATAGTGGCTGGGCATGGTGGCTCTAAGGGAGGAGACCACCCCTCATATTGTC
+TTATGTCCAATTTCTGCCTCCAAAGTAAGAAGAAGTAAAAACTAAAAGGCAGAAATGGAA
+TCCACAAGCAGACAGCCTGGTGCCACACCCTGGGCCTGGTAGTTAAAGATCAACCCCTGA
+CCTAACTGGTTATTTGCATAAAAAAGCACTGTGAAGATCCCTGTCCTATTCTGCTCTGTT
+CTAATTACAGGCGTATGCAACCCCCAGTCACTTACCCACTGCTTGCTCAATCGAACACGA
+CCCTCTCATGTGGACCCCCTTAGAGTTGTGAGCCCTTAAAATGGACAGGATTGCTCACTC
+CAGGAGCTCGGCTCTTGAGACAGGAGTCTTGCCGATGCTCCCAGCCAAATAAACCCCTTC
+CTTCTTTAACTTGGTGTTTGAGGGGTTTCGTCTGTGGCTCTTCCCGCTACAGCTCATGCC
+CATAATCCCAGCACTTTGGGAGGCCGAGGTGGGAGGATCACCTGAGGTCAGGAGTTGGAG
+ACCAGCCTGGCCAACATAGCGAAACCCTGTCTCTACTAAAAATACGAAAATTAGCCAGGT
+GTGGTGACATGTGCCTGTAATCCCAGCTACTCGAGAGGCTGAGGCATGAGAAATGCTTGA
+AACCGGGAGGTGGAGTTTACAGTGAGCTGAGATTGTGCCACTACAATCCAGCCTGGGTGA
+TAGAGTGAGACCCTGTCTCAAAAAAGAAAAGAAAAAATTAAAGAAATACCTAATAGCTTC
+TAAAAACTTGTGATTATCCTTTAAGTATGAAAAAGTTATTGCTGAAAACAACTTCCTAGC
+CAGGGACTAAATTTCTCATCCTCCCTTGCATGCAAGTAGTTCTATGTGACTAGTCCTCAC
+TCACAATTATTAGTTGAAGTGATGTGGATGACTTCTAGGCTAAGAGAGTTAGGACGTGAG
+TGTGCATTCCTCACCTCTTAATCCCCACCTGCAGATGCGGAGTACTTGTGAGCCCTGGAG
+ATGAGAAATTATAGGATGGGAGGCGCTTATATTCCTGAGTGACCACATAGAGGAGAGCTG
+CATTGACAACCATGGTTGTTGCTGTTGCTAGGTGGTATCTTAACAATTATGTTATTTGGT
+AATCTACATAATACTGTATACAAGCTAACAAAAGATGTATAGTTAGCTGCCTAATAAATA
+AATAGAAATATGTCAATTTGGCTCTGCATTCATATCATTGCATTTTCCTTATCAGGAATT
+TATTTTTTATATAAAACTATGCTCTAAAACTAGAGTTCTTAATTATAGTAAAAACATTTT
+TATCTTTTCCCTCCACTTTTTCTATGTACTGCAATGACCAGTACTGCTTCCCTAAATGAA
+GTAATCCGTCTCTTGGGGATCTGTGACTTTTACTAACTATCTCTTACTCAAAAAAATGTA
+ACATTCTTACACAAGTGACTTGGATTATGGCATAAATTGAAAATATTGCTTTTTTTTTCT
+TTCAAGAAAATAATTTGTCTTTCTTAATGATTGTCAGAATTTTGTAGATCCATGTGAATG
+TGAGCACCATACGTGTTAGGTCAAGAGGGGTTGCTTTGTACATCTCCAAATCATCATTCC
+TTATGGCCTAATGAAGGAAATCTTGGAAATGGGGATGAAAAAGCAATGTTCAGACAAGGA
+AGCCCAAGTAGCTAATAAATATGAAGAGCCTCAATCTCACCTGTTGTCAGTTTTTGAACA
+AACTAAAGCAGAAATGCAATGAATGCTACAAATAACAAATAGGCATAAGTGTTGAAAGCC
+TCATCATACCAAAGGTTGACACTTGTGTAAGAATATGGAAATTCTTTGATAATTCTGATG
+GAAGTATACATTAGTTCAACCACTTTGGAAAGGAATTTTCTCTCTCTTTTTTTTTTTTTT
+TTTTTTTTGTTTTGAGATGGAGTCTCGCTTCGTCGCCAAGGCTGGAGTGTAGCGGCGCAA
+TCTCAGCTCACTGCAACCTCTGCCTCCCAGGTTCAAGCCATTCTCCTGCCTCAGCCTCCT
+GAGTAGCTGGGACTACTGGCACCCGCCACCACGCCTAGCTGATTTTTGTATTTTGTTTTT
+TAGTAGAGACGGAGTTTCACCGTGTTAGCCAGGATGGTCTTGATCTCCTAACCTTGTGAT
+CCACCCGCCTTGGCCTCCCAAAGTGCTGGGATTACAGATGTGAGCCACCGCACCCAGCCT
+GGAGAGCAATTTTCTAATATCAGGTCAAAATAATAAAGATGTGAACATCCTAAGTTGCAG
+AAGTTCCACTTCTAAATATCTACACTATAGAAACACACACATAAATGGAGAGAAGCAGGT
+AAAATAATGTGCACCAGGATGCTGTTGGAAAGGAAGAAAAGAAGGAGGGAAGGAAGGAAG
+GAAAGAAGGAAGGAAGGAAGGGAGGGAGGGAGGGAGGGAGGGAAAAAGATAACATAAAAT
+TTAATCAATAAGGAATTGGGTAATTTAATTATAATGTATTTACAAAGGGACTGCTAAGCA
+GCAATATATAGTAAATTAACATATATATTCTCTTCTGTAAAGTAACATATATATTCTCTT
+ACGTAAAACAGCAAAAATACTATATATTTATTATGAATACCTACATATGTAGTAAAGGTA
+TGAAAACACAAATGGAATAAATAATAAGCAAATTTAGCTTGTGGATTATATATCTAGGAA
+GGAATAAAGGTGAATATAATTGTGCAGTTGGCTTCTCTTTCATCTGTATAATGGTTAATC
+TTAAGTGTCAACTTGGTTGAGTTCAAGGGCTACACCATCATTATAAAGGAACACCCATTA
+CTTCTCAGTACATTTGTGAGGGTGTTTCAAGAAATTCACATTTGAATCAGTAGACAGAGT
+CAAGAAGATCCCCCCTTGCCAGTTTGGGCAGGCATCATCCAATCTGTCAAGGGCCCAGAT
+AAAATGAAAAGGTGGAATAAGGGCAGCTCTCTCTCTCATCTGCGGCCAGGACATCCATCT
+TTTCCTGCTGTCAAACACTGGAGCTCCTGGTTCCCTGGCCTTCTAATCTGGGGACTTACA
+GCATCCTGAAGCCACATCCAAGTTCTCAGGCTTTCTTCCTTGGACTGAGGTTTGCACCAT
+TGGATTTCCTAGTTCTCAGGGAGGCAGATTCAAACTGAATTACTCCAGTGGCTTCCCCAG
+TACTTCGGCTGTTGACGGCCTAATGAGACTTCTTGACCTTCATGATCATCTGAGCCAATT
+CCCATAACAAATCCTCTCATATATCTGTATCAATATCAATCTGGTTGTGTATCCATATCC
+TATTGGCTCTGTATTTTTAAAGAACCATGATTAATACAATCCATTTTTAAAAATTTCTTC
+TTTTTTTTCTTTTTTTTAATTTTGAGACAGAGTTTTGCTCTTGTTGCCCAGGCTGGAGTG
+CAATGGCTCGATCTCGGCTCACCGCAACCTCTGCCTCCTGGATTCAAGCGATACTCCTGC
+CTCAGCCTCTTGAGTAGCTGGGATTACAGGCGTGTGCCACCACGCCCAGCTAATTTTGTA
+TTTTTAGTAGAGACAGGGCTTCTGTGTGTTGGTCAGGCTGATCTCGAACTCCCGACCTCA
+GGTGATCCACCAACCTCAGTTTCCCAAAGTGCTAGGATTACTGGCGTGAGCCACTGTGCC
+CAGCAAAAAAAAACTCCTTTAAAAAATAGTACATATTTCTGAGGTGCATTGGTAAAACAT
+TAACATGTTTAAAATCTCAATGTGAAGTATATGGAGACATTATACAATTTTCTGTTTCTT
+TGTGTTTGCCTGTGTCACTTAGTAATACAGCTCTATATTTTAAAGATTCATGGCAGGGCG
+CATTCTGTAAGACAGGTCTTCATTTTTAATCTCAATCACTGTTTAAACTTCTTTGAGGCT
+TCCTTCCAGCTGATACCCAAATCAACAATGGTACCCATTCAGAAACCACTTGAATAATAA
+GGACCCATAAGCTCCACAAGATCTTCAAGGTCAAGAATTGTGTCCTCATTATCTCTATGT
+ATGTAGTACCTAACTTAATGTAGCAGCTCAGTGAACAATTTGTCCAAGTGAACTCAGCTG
+TGGCTGGCAAACTCATCCCAGGTATAGACAGTGATGAAGAGCTGGTTAGGTCTATCTTAT
+TTCCATTTTTTTTTTTAACAGTTTCACAACATCCAGTGTTATTATCTACCTCTGGTAAGT
+GGCAACCATGGAATTGTGAGCAACTAAAAGGCACGTATGTTCAAATTATCTATCCACTTC
+CTGACATGATAAACTACATAGACATATGCCTTACTAATGACAAAATATACATCACCCGGT
+GGTTCTTTTGCTTAATGACAAACTCCTTACTGAGAGTTCATTAAGTCTTCTATCTGGGAC
+TAGCTAGAAGACAGCTCTCACACTGGGATGGGGCCTGGCTGACTTTGCTTTGCTTTGCCC
+TCTGGTTGGGTTCCGTGCTTGTCTTGGCAGGTCATTGCCTATTCATGTAGAAATTTCTGT
+AAAGATGAACTGGCTGCAGAGATGCTGCAGGCTTTTAGGGCTTCAAATTACAAGGCTTTC
+TGCTTAAAATGCTGTTACTTCTATTCTTCTGCCCCCTCTCTAACTCCTGTCCCACACAAC
+CCACCTCACAAGTTATACAGACTACTTAGAATCCCCTGACACGCTGTATTGTTTCTTGAC
+TCTGTGCCTTGGCACAGGCTGTTTCCTATGCCAGGAATGTCATTCTCTGTTCCTTGTCTA
+TCTGGCAAGCATCTACGTCCACCTGGCAAGGCCCTACTCAGACATCACTCCTTGTCTCAT
+AACATCCCTGAATTTTGCAATCCAGATTTATAAGGACCTAAAACAAGAAAGGACAAAATC
+CAGTCACCAAGTTCTGAAATTTAATATTTTCCACAATATGCCCAACATGTTCACTATCAT
+CCATTTGTTCACTTAAAATGTATTGAGGCCGGGAACAGTATCTCACACCTGTAATCCCAG
+CACTTTGGGAGGCCAAGGCAGGCGGATGACTTGAGGTCAGGAGTTCACGACTAGCCTAGC
+CAATATGGCAAAACTCTGTCTCTACTGAAAATACAAAAATTAGCCAGGCATGGTGGCACA
+GGCCTATAGTCCCAGCTACTCGGGAGGCTGAGGTGGAAGAATCGCTTGTACCTAGGAAGC
+AGAGGGTGCAGTGAGCCAAGATTGCACCACTGCACTCCAGCCTGGATGACAGAGTGAGAT
+TCTGTCTCAATAAATAAATAAATTGTATTGAATGTTTACTAAATTTAAGAAATATACAAG
+GTGCTATGGTTTGGATATTTGCCTCCCCAAACCTCATGTTGAAAATTGATCCCAATGTTG
+GAGGTGGAGCCTAACGGGAGGTGATTGGGTCACGGAGGTGGATCCGTCATGAAAAGATCA
+ATGCCCTACCTTGGGAGGGGGATGATTGCATTCTCCTCTTCAAGAGCTGGTTATTAAAAA
+GAGCCTGACTTCTCCCTGCCCTCTCTTGCTGCCTCTCTCTATATATGATTTCTGCACAGG
+CCAGCCCCCCTTCACTTTTTGTTGTGAAAGGAAGAAGCCTGAGACCCTCCCTAGAAACTG
+GGCAGCTGCTGGTGCCATGCTTCTGTACAGCCTGCACAATTGTGATCCAAATACACTTCT
+TTTCTTTATAAACTACCCAGCCTCAGATATTCCTTTATTCAAACAAACTGGACTGACAGA
+AAATTGGTACAGTGAAGTAGAATGCTGCTAAAATGATAACTAAGTATGTGGAAGCAGCTT
+TGGAACTAAGTAATGGCAACAGGTTGGAAGAGTTTGGAGGGCTCAGAAAAAGATAAAAGG
+ATGAAAGAAAGTTTGGGCCTTCTTCAAGATTGGTTAAGTGATTGTGAACAAAATGTTTAT
+AGAAATATAGACAATAAAGGCCCTGCTGTCAGGTCTCAGCTGGAAATGAGGAAATTATTG
+GGAACCTGAGCAAAGGTCACCCTTGTTACACCTTAGAAAAGAATTGGCTGCATTGTGTCC
+ATGCCCTAGGGCTTTGAGAAAGGTCAAAATTAAGAGTGATAATCTAGAGGTAAAAATTTC
+CAAGCAGAAAGCATTCAAGAAGTGGCATGGCTACTTGTAATTGCTTACTCTGAATCATCT
+GAATTAATGGAGCAAAGGAATGGCCTAAAGATGGAATTGATAACTAAAAGGGAAGCAGTG
+CATTCAAATTTCAAAAATTTGCAACCTGATCATGAGATAGAATAGGAAAGAGCATTTTTA
+GAAGAATAATTCAAAGGTAAAGCTGAGAGACCCTTTGTTAAAGACATTAGCACAGGTAAA
+AGGGAGCCAGGTACTAATAAACAGGACGGTGAGGAAATGGCCCCAAAGGCATTTTAGAAA
+TCTTTGAAGCAGTCCCTCCTATTATAGCCCCAGAGGCCTAGGACAACAGAATGACAGAAT
+GGTTTCAGGGGAGGGGGTGGGGGGACTGCTGCCCTGCAAGGTCTCAACTCTATCTATGAC
+TGAAACAGCCCCAGATACTGCTCAGACCTTGACCATAGAGAGTGCAAACCATAAGCTTTG
+GTAATGTCCACATAGTATTAAGCCTGCAAGCACAAAGAATGCAAGAATGGTGAAGCTTGG
+TAGCTTCCAACTGGATTTCAGATGATATATTGGAAAGCCTGGGAGCACAGACAGAAAACT
+GCCACAGAGGCAGAGCCACCACAGAGAGTCCCCACTGGGACAATACCTAATGGAGAGGTG
+AGAGCAAGACTGCCACGAAGACTCTAGAATTATAGAGCCACTGGCAGCATGCAACCTTCT
+CCTGGAAAGGCTACAGGCATTCAACTGCAACCCACAAGGGCAGCCACATGGGCTGTACCT
+AGCAAAACCATGAGTACAGAGCTGTCCAAAGCCTCAGGAGCTCACCCTCACAGCAGTGTG
+CCCAGGACATAGGACATGGAGGCAAGGAGATTATTTTGGAGCTTTAAGATTTAATGTCTA
+TGCTGCTGGGTTTTAGACTCATGTGGGGCCTATTACCCCTTTCTTTTGACCTATGTTTCT
+TTTGACCTATGTTTCTTTTGAATGTTTACGCAATGCCGGTATCACCATTGTATCCTGGAA
+GTAAATAACTTATTATTATTATTATTATTTTACAGTCTTGCAGCTGAAAGGAATTTACCT
+TGAGTCTCAGATGATACTTTGAACTTTGAATTTTTAAGTTTCTGCAGAAACAAGCTAAGA
+CTGTTGGGACTATCGGGAAGGAATGTTTTGTAATGCGAGAAGGACATGCTTTTGGGGGGC
+CAAATGTAGAATGATATGGCTTGGATGTTTGTCCACCAAAACCTCATATTAAAATTTGAT
+CCCCCTGTTGTAGGTGCCCTCCCTCCAGGAGAGGGTGAGTCAGTTATCCATTAGTTTTCA
+TGAGAATTGATTTTTAAAAAGACCTGGCATCTCCCCATTCTCTCTCTTGCTTTCTCTCCC
+ATCACGTGATCTTTCCACACACTGGCTCAACTTCGCCTTCTGCCATGAATGCAAGGAACT
+TGAGGCCCTCACTAGAAGCTGGACAGATGCTGGGACCATGCATCTTGTACAGCCTGCACA
+ACCATGAGCCAAATAAACATCTTCCCTTTATAAATTTCCTAGCCTCAGGTATTCCTTGAC
+AGCAACAGAAAATGAATTAATACACAAGGTATTAAAGATAGAAAGACATCTAAGACACAA
+AGTTTGCTCATAAAGAGTTTATTGGATAGTGGGAAAGACCAAAATGCAACCCACAAAACC
+AAACATGTATAGTATAATATGCTAATACATATATGTTCACATAAAAATGTAGAAGTCATT
+AGCTAGGTGGCTAATAACATCAGGGAATGCCAGATAAAGTGGGTAAAATGCATATTAAGA
+GAAAGATTGAGATGAAGTTTACCATCCACAACACACATACAGGCAGGCCCACCCATAAGA
+GTGCTCACAACTTAGCTTTTACACATGATTCCATATACATGGCTCTATTCTAAGTAAAAT
+ATAGAAATTAGAAGCATCATGGACAATGACTACTTGGTTTATTTCATTTTGTACATGTGA
+CACTAAGTGCACAAGAAGTCCAGAGGTGACCAGATCAATGTGGCAAGGACATGCAAACGA
+TCAAAATCTAACATTAGTATATGCACATAAATCTAGAGTATAAGTTCTCTGAGAGAAGGA
+ATTGTTTTATATTTTGTCCAAATAGAAGAAATGTTAAATTTTCAATAGCATGAATTTCTA
+ACATCTAAAATGGCGCCTAATATAAAAAGTGGTACTCGGTAAATATTTATGGAAAATATG
+TATACATGAATAAATATACCCGGTAGAAAATAAAAGAAACAGAAGTAAATATCGCCATCC
+AAATAATTTAAGGTCAATAGTTTCAGTTTCTCTTTTGCAAAATCTTTAACTTGCTTAACT
+TTCTTTCTTTTAGTTGTGTTCAAGAGTCGGAATGCCAAACCTGAAGGAATCCTAGCACCT
+ACCTTATCTGTAAGTTTGCCTTAACAGAGTCACAACTCTGAGGGAGAAATACTCAACCAG
+ATCAGCTTGCATTCATGGCAGAAGGCAAAGTTGAGCCAGTGTGTGCAAAGATCACATGAT
+GGGAGAGAAAGCAAGAGAGAGAAGGGGGAGATGCCAGGTCTTTTTAAAAATCAGCTCTCG
+TGAAAACTAATGGAGAACTGACTCACCCTCTCCTGGAGGGAGGGCATGAATCTAATCATG
+AGGGATCCATCCTCATGACCCAATCATGGATCACGTAGGTGGGATCCATGTTTCGGTCTT
+GAGGATGGATCCCTCATGATTAGAGAGCTGTCAAGGGGTTGGATTTGGAATGTATTTTGA
+AGATATAGCCTCATGGCTGTAATCCCAGCATTTCAGGAGGCAGAGGTGGGCAGATTATTT
+GAGGTCAGGAATTTGAGACCAGCCTGGTCAATGTGGCAAAACACCGTCTCTACTAAAAAT
+ACAAAAATTAGCTGGGCTTGGTGATGGGCACCTGTGATCCCAGCTACTCCGCAGGCTGAG
+GCAGGAGAATTGCTTGAAGCCGTGAGACGGAGGTTACAGTGAGCTGAGATCATGCCACTG
+CACTCCAGCCTGGGCAACAGAGTGGGACTCGGTCTCAAAAAAAAGAAAGTATAGCATATA
+GGGTTTCTTGATGGATTTTGATGTGAACACTGAGGGAAAGAGAACAATAAAGAATGACTT
+TTATGAGACAGGAAGAGTTGGGGATACAAAATAAATTCTCTTTTAGACATAATAAGTTTG
+AAATTAACATTAAGTTGAAAGGTCATATAGGCAATTGGATAAATGTGCCTTAAGTTCACG
+TCAAAGTCAGAGCTGAAGATTTAAGCTTTGACTTATTAATGCTATAAATAATGTAAATAA
+TGTACATTGACTATAACAGGCAATGATCAATTTATTAATATGTCTCCTGACCTGCAGAAA
+GCAGTCAGACTTTTTTTCCAAGACCAAGTATACTAATACAACTGAAAGAGATTTTTGTGA
+GAGCTAATTTATTTGATTCCACCTTAACATTCCAATCATGCCTTGCAGTATATTGAAGGC
+TGCAAGATGATCAAATTTAAATAGTGCAATACAGGATTTCATATTTCCTTCACACTTTTG
+AACAACATTTTATTGAATAACAAATTAATGATATTCTACTCCAATATTGAAAATTTATTG
+ATGCTTATCTGCCCAAAACATCTTCCCTCGCGGGAGGACTCGAGTGACCTATAGACTTGC
+TTATACAGAGATAGGGAAAAAAAGAATCCTTCAACAGCCATTTTCTCACTGCTCTAGGAG
+ATCCTCTGCTCTTCCCTTTCTTTTAGCCAAAGCTAAAGAAATGGAGTGAAAAAAGATTGA
+ATTTATTCAGTGTCATCTCAAGCTGGCTGAGAGAGTATCTCTCCGTGGCATGGCTGCAAA
+ATGACACAGGAAAGCTGCTCAGTCTCATTAACTTTACAAGCCAATCTGCTATTAGCATCT
+GGTGGTAAATTTGCCAATAATGAAAAAGGCTGGGATATACCTCCTGGAATCATAGTTTTA
+CACATTTTGAATATTCAGTATGATCTTTCCTGCATTTCTGATCATCTGCCAAATTCTAAT
+TTTTTAGGAATAGCAAGGAATGTTGTTGGGAGGAAGATTGACAGGAGATACAAGCCTGGA
+TTTTGTTTTTTGTTATTTTATTTTATTTTATTTATTTACAGCATTGTTCTAGTGCACTAG
+AGTATTCACCTCAATTTCCTTACTTATAACAAGAAATACCCAGTGACTGATCAGCCTCAC
+TAAGTCAAACTGTGTACTGGAAATTTCAGGTTTTCTACACATCAAAACCAGCCATGTGCT
+TAGGCCCATTGAAAGATACATTATCCTAACTCTAGACTAACTTCTCTCCATTTTGAAAGC
+CAATTTCTTTTCTTTTCTTTCTTTTTTTTTTTTTTTGAAATGGAGTCTCGCTCTGTCACC
+CAGGCTGGAGTGCAATGGTGCAATCTCGGCTCACTACAACCTCCGCCTCCCGGGTTCAAG
+CAATTATCCTGCCTCAGCCTCCCGAGTAGCTGGGATTACAGGCACCCACCATCATGTCCG
+ACTAATTTTTGTATTTTTGTAGAGACGGGGTTTCACCTTGCTGGCCAGGCTGGTCTCGAA
+CCAGGAGTTCAAGACCAGCCTGGCCAGCAAGGTGAAACCTCATCTCTAATAAAAATACAA
+AAATTAGCCGAGTGTGTTGGCAAGTGCCTGTAATCCCAGCTATTCAGGATGCTGAGGTAT
+GAGAATCTCTTGCACCTGGGAGGTAGAGGTTGCAGTGAAAGGAGATCGCGCCACTGCACT
+CCAGCCTAGGCGACAGAGAGAGACTCCATCTCAAAAAACACAAAAATAAATAAAAGTAGT
+TTTCAATTTTGCAATTTGACCAATATTTAAATGCAAATATTTTATATTTGCATTTAAAAT
+ATAATTGTCTAGTTTTTACCAATATTACCATGAGCCAAGACCAACTAAATTACCACAGAG
+GAGACTGAGATGAATTCAGGCACAAGATTTAAGTTCCATATAGACGTGAGGAACTAATGT
+AAAAGAGTACTAATGTGTCAGTAGGAATTTTTAGCAACATATGTCAAGCTGCCTTATCCA
+AGTTATTCTTGGCAAGTCCCATAATTTCTAAATTAAATACAATGCTGAGGTCAACATGTG
+TAAATCAGAAATGATGTTTTTACATAGAAAAATGATTCCATACTCACAGTGCTTTTGTTA
+GAATTTGACTTTGTATTTTCATGCCTCCAATACACTCTAGGAGCTCTGTTTTCTACTTGT
+CCCAAGATCAAGGCATATCATGAAAATAAAAGCTAGAGACAATCAAGAAACCACATCTAT
+TGATATCATTCATCCGGGTTTGTTTTGAGTTGACACTGAATAATAAATCTTATTCTCAAA
+ACCACAACCAAATACACCTACTGAGAAGAATAAATATGTTAATACTTCCTAATACTTAAA
+AATACTTTCAAAATATATCACATCACCTATTCCTTTCAATATACCTTTGGGGACATTATT
+GACAACTTTAAAGATGAGATTAAATGAGATTAAACACATTGTAAATGGCAAGGAAGAAAA
+GACTCAAATCCAGATCTTATCATACTGCTGTTTCCACCATGAAGCATCTATCACTGCAAG
+ACAGACTTTTTTATAAACTGTGATGATGTTACTCACCATCCTTGAAATCAATGCTTTGAG
+TGGTTTAGTTAATGTGGATGTATAGACAATCTTCTACTGTCTTGTTCAGATGTCTTACCC
+TGCCCCCTTGCAACCAACAATACAAGTAAGAAAAAAGAGGCTAATGCTATTGGCACAAAG
+TATAGCCATGTAATTTAAAAATCCAACTGATATTTTAAGACTGAAAAATTTATAAAAATT
+TGTAATGAAAGAATCTTAATCCACACACCTAAGATGTTGTTTGCCAAAATTTGAAATATA
+ATGCTGATATTTTTATAATTTATTCCCCTAGGGTGAAATTCTGAATATAAGAAGAATGCC
+CACCCAGGAAATGTATATATCAGATGGAAACTGAAGATGAAATAGAACACAGATAACTGA
+AAATACAGAACTCTTTCACTACAAAGTGCTATATCTTATGAGTCCATTCAAATACTAAAG
+ATTTGCTATTAGTTGAATCAGCTAAAGGACTTTTCCAAAACTATGAACCATATAAAAATA
+TGTGCAGAACCAACTTTTCAATACTTTACACTTTGTCATTCTGCTCATTCAACTTTAGCA
+GAACCTAAAAATGCTTTAAACATTCACCATTGTTACTCCATTATCCTGTTGATTTTGCCA
+GTGATTTAGCACATAAAAACATTAGGACATATGCCATGAGTATTTCATCCCATAGCCATC
+AAGTAAAAATATAGTTTCTAGAGACTAAAATTTATGGATGACAAGTAGGTTCTACCTATG
+AACTAGGTACATGGAATAAAGTAAAATTAACCATCAAGAACAAATGTTGTCATCAGTTGC
+TATATTTAGTAAATCTATTTGAAGTGCTGAATGTCTGAAATGTGGAGCATCTTATCATGA
+AAGATAACAGTGCTAGAAAAATACAGAAAAACGGACAATATATTTTTCTATATAGACAAT
+AACTGACATTAGACTCCAGCCAGGAATAAGAAAGTAAACATAATTTGACTGCACATGATA
+AACAAAAATGCAAAAGCATTTAGAGGCAAATCCTTAAAACCTCTAAACTTATTACTGGTA
+AAATAATCAAGCTTATTAGGATATCTTGAAATCACACATTTTTCTACATCCTACTCCTCT
+TTATATTTGTAGCACATAACCCAGTACCTGAAATATAGTGCTTAAAAATGCCATCTCAAT
+TTTACGGAGTTTCATAATATGTTAATAATATCAATTGTCATAACTAAAGCTCTAAGCTCT
+TGAAAGGAGCATTATAGCCCAGACATAAAATGTTTCAGATGAACACGTTGCCATCCTTGT
+GAAATTCTCCCGAGAAGGGGAAACTATCCATATGCTTTGTGATCAATTGGCTGCAAATAT
+TGCTGTGTGCTTTGTCATAACAGGCTGTTCTGCTGTAAAGACATAAATACTGGCTCATGT
+CCAGTTTGTACAAAAGATTAACTTTATCAAAGTCTCTGAAGATAAAGGCTCAGGCCGATT
+CATGTGACTGTGGTCACAATAGCATAACCAATGCGAAAAAGCTTACAAAAGAACAAGGAC
+TGCCTTATTCACAGTGAAAGACACGGGTGCATAGTTACCGTAAGCTTCAGCAACGACAGC
+AAAAAATTGGCGGAGTTACTTGATGTGGTCACCAAAATCAATTCCATTTTTCGTGGAACT
+GGTACGGCGAATGCTGATTAGATAAGGAAACAAAGGCTGCCAGGTCTTAGAGGAAAACAT
+TTTTCCATCGGTTGATGATGAAGCACAGCTAGAGTGCAAAATATTTTTCTCTCCAAATAG
+ATGATATGGAGTGAAGCACAGTCTCTTGAGTCTTGCTGTGATTCAGAAATGAATTTGGAA
+TTTGCCTTTCCCCCAAAGATTTTCCTAAAGGGGGATTTTGGCCACTGGGTATCAAGACCA
+CTGGGGAGGTGATGAAACCAGGTTTGGGAGAAGTTGTGAAGGTAGTGGAATTCACTGTAG
+CCTTCTGTTTAGAAAAGGGTATTCTGGCTAACTTCCAGACTCACGCTCTTGGTCTGCAGG
+AAAGGCCACTCAGCCACCAAAAGGAGAATTGTATACAGCTATGGAGAATAGAGTGTTGGA
+AAAAAATAACAAATCTTGACTTTTTGTGGGAGAGAGAAGGAAGAAAGAAGTAATTGGTGG
+TGTCCTGCTTGTGGATAAATAATATTTAAGACTCACTTTCTACATTTCTTTTCAATGATT
+CCTAATGTGTATTCGTAAAAATTAAAACTGAATATTTAGACCCAAAGTTTCCTAAAGGAA
+GAGAAAAAGCTCCACTTCAACTACTTATACATTAAAATATGTAAGGCAAGATTTTCATTT
+CTTCTTAAATTCTCCCCATTAACAATTGACAATAACATCCTTTTTTATGTTTTATTTTCT
+TGCACATGTAATATTATGTATGCACAATATTTTAATATTGCTGTATGGTACATTATCATA
+TTGCTCTATGGTAGAGGTAATTTATTATAACTGCTGGTTATGACCTTTTTGTTTTACCTT
+ATGAAGAGAATTTTAAAACGCATTTATCGTAATTGTCTATAGAAGATAGTTATTTGTAAA
+CTCTTTGGAAGAGGCCAAATTAACATAATGCCAAAAGATTTTCCTCTTTTTAGCTTTTAC
+ATTGCTTCCCATTATTAAGCAACCCTAAACATGCAAAAACACATTGAGTTTTAATTTGGG
+AACTTTAGTCTGGTACACATATACCAATGCAGAGAGTGTGGCTCACTAATCTGATGAAAG
+GAGACAGAGTGCTGAAAAACCTACAATCATCAATATTTGGTCCCTGGTCCTCTGTATATA
+CTACTACGATTTTCCCTATCTTATCTTGTACTTTACTTTTGCAAATTAAATCACTCGACA
+AAGATTGATGTAGGACCCAAGTTAAGCCATAAATACGTCAAGTCCTGGTAATAGCAGGAT
+GGGGACCATAAAGCTTATGACATTGTAAATTCTGAATTCTGTTTAATATTATTTAGATTT
+AGAACTCAAATAGCTCTGCGGAAACAATTTTTATCCTAATACAAACTTTTCACTTGAGCA
+TTTATATGAAAATAATTTTTTCAAAGAAGTAGAGAAAGCAAGCTTATTCCTTTGTTTGAG
+TCATAGTAAGTTGAGAGCATCTGAAAAATCAGCCGTCAATGTTGGCTTCCAAGTGCTAGT
+CAATGAGTAAGTGATATATATTAATTATCTCAGTTTACTCACGCAGCAAAGGACTTAGTA
+TGGATATTATTTTATAGATGGGGAAAGTGCTACCTAAAAATATTAAATAACTTACTTGAA
+GTTACACAAAAAAATTGAATGCTGGGTCCAGGATACTAAGTCTCTTTTTATCATACTACA
+AGTAATATTAATCAGATGGCAGAATTTTTTCTGTTCAGCATCTTAGTGACATAGATAACT
+GTCTTGCCACTTCCAGAGTTAATTTCTCCATAATTTCATTCCCAGATAACTTATTACTTT
+AGTGAGCCTTAAAGTAATTTACTTTTTATTATGAATATTTACATGCTGGTCTTAATACTC
+TTGGAAATGTAAAGTTTATGTCAAGATTCATGTCTTTGTCATAAATGCATAATCTCAGTG
+CATAACATGGTATTTGACACATAATAGGTACTTAATAGTGAATGAACAAATACCTTCCAG
+GAGGTTAGCATTTGTAAAACATCCTAAGAATTTACTATAATAACACCATGTTCTTTATAT
+TAAAGAAGACTAATTAGATTAGGTAAGCAAATATTGTGGCAACGACTCACCATATTGTAA
+GTAGAATCTTAAAAAGTCATCATTTGCTCTTCCTTCCTCTTTCCAACACATTACAACTTT
+AAACTTGATCACCTACTGTCTCATTTTATTTACTTTCACTGATATTTTACAATCTTATTT
+ATTTCCCAGCTGCTATCTACCCAAACTTTGCCCTACAATCACTGCCACCTCTGCAGAGAT
+AGCCTTCCTTTCATCTTTTGCAGCCTATTTTTTTTCAGTTCTTCAAAACTCACTTTTAGA
+TTTCTAGCCCCATTTGACTTATCAATGGGGTTTCTCTTAAAAAAAAGTCCATCTTTATTT
+TTGTTTGGATTTCCAGTGTAAATATGCCCAATTCTTCTATGTCTCTGTTTCTAAACAAGA
+CTCTAAAGTTTTTGCAAAAGAGGTGCCATATCTTATATATACCCTGAAAAAAATGACCCA
+TACTCAAAACCCTTAGTAGAAGACTTTTGGTAAGCCTGTAGCAAATATTAATAGACGTAC
+AAGATTAGAAAATACTGCAGTGGTTGGTTAATTGCCATTGTTAGACAAATTAGCATGAGT
+TGCTTAGGGTTTAAGGGTTCTACCTTATTTTTGCTAATGTTCTGAGTGAACCAGTTATTC
+TAACTGTGTATTATTAACATATTACACGATTGACAGATGTTCACTTACACAGAATTGACA
+ACAGATTTTTCATGTCAACATTTATTCATATAACCATTTTGTCCAACCATATGCATGAAC
+ATTTGATCCATGGAAGTTATTAGTTCATTTACATTATTTTCAGGAGGGAAGAAAGCTGAA
+AAAAAAGTGTGCTTTTATGAATGTGCTCCAGATGTTCAGCAACAAAAGTTGAGAACTTGG
+AAATCAAACAGTACTTTATGCATTATTGGGTATATTAAGATCTGCTTTCAGGGACTCTTA
+AGTGCCTGCTCTTCTGTTTTTCTGTCTTCTCAGTGCGCTGTATTTTTTTTCCCTAAATGG
+AAATACTTTGTTGATACTTTTTGCAAGATATAACTGTCATTAATTATTATCCTAAAATAT
+GTAATGAACGCGATGCTTTCACAAAGAATTAAACAGATCATAAAGTTCTAAAATCTGTTA
+TTCACTCACATGAGCCAATAGAACATGAGTGGATAATTTAAAATAAGTGGTTTTATGTAT
+ATATGTACCTTTCTATCAAAATACTCAGAAGCAAGCTACCACACTATCAGAGTTTTTTAC
+TGTATATAAAAATAAGTAAAATGACTCCACTATAATCAGAATTTTTGGCTCATTTGGTTA
+ATAAAGCTTGACAAATTCTTTAACTAGGGAAAGCTGGGCATACTGGGAAGATCATGGGTC
+ATGATTGAAAGGAAGGAGCTGTCCCCTGCCACGTTATATATTTAGAGGGGAGTTGGGGAA
+GGACAGAGGACACCAGACGAGGTAATAATTTTCTTCTCTGATGAAAGAAGCCCTGTTTAA
+GAAAGGAAGATAATCTATAAACAAGCAGTTATTAGTAACAGTCTTCCCCTGGGAGCTCTG
+TCCTGCTGATACAGCTCATTGATAGATAGGTCTTGTAAGAAAGGAGTTGTGGGTAAGGGG
+GAGAAGATGGTAGAGGCATCCAGCCCTTTCTCACCTTATCTAGTAAGGGATGCCAAGAAG
+ATGCAGAACGAGCAGAATTTGGAAGAATGAGGTGGAAGGGCAAAGCTCTTTTTGATATTT
+AGTAAGCATAAAGTTTGATCATTTAGTTAAGATTTTCAGCCAAAAATTGCTTATTGTTTA
+CCTCCACATATTCGTCACTCCACTAGGAGACACCAATTACCTTCTCCCACATTAGGCGGG
+GGGGAGTCGAGCAGCCACACATGCGTTAGTTCCCATTCTGAAGAAGAATCTTACAAAAAA
+AATAGCATTCACGTAGTTGCTTTATTTATTAAGGTCTTCCTTGGTAAACATACCAAGGAA
+TGACATGTCTGTCACGTAGCTGTTAACCTTGCTTGGCCTTCTTCTTAAATTCCTGTGGAT
+ATTCTCATATCATTATTGCCCTGACATTAGAAAAGTAACGAATGACTTTTACTATAACAC
+AAGTAATAGGTGTTCATTCTAAAATAAAGCTTTTGGTTGGTCACAGTGGCTCATGCCTGT
+AATTCCAGCACTTTGAGAGGTGGAGGCGAGCAGATCACTTGAGGTCAGGAGTTTGGGACC
+AGCCTGACCAACATGGTGAAACCCCATCTCTACTAAAAATACAAAAAAGTTAGCCAGGCA
+TGGTAGCATGTGCTGTAATCCCAGCTACTTGAGAGGGTGAGGCACAAGAATCGCTTGAAC
+CTGGGAGGCGGAGGTTGCAGCGAGCCGAAATGGTGCACTGAACTCCAGCCTGGGAAACAG
+AGCAAGACTCCGTCTCAAAATTAAATAAATAAATAAAATAAAATAAAATAAAATAATAAA
+GCTTCTAATTTAGATAAGGTCACCTGCGGTTTTAAGGAAAACATGCCAGATGAGGACAGC
+TGTGGAGGTCCCTTTTGTTCACAATACTGCACAGCCATCCAGAAGGTCACAAGGTACACA
+GACAGGGCAGACATGCACACAAGTTTTCAGTGAGTTAGATGACTGGTAACTTATTCAATT
+TAGATCACGGTGTGCTGTTTTGGAGAAGTCAATTTTAAACTGGCTTTCAGGTATATGTGA
+CACTGACAGATAATAGGTTCAATATCCGTGCTTCAAACCTATTCACAAGTGATTGTCCTA
+ACCCACACTACCTCAGAATATGACTGTATTTGGAGATAGGGTCTTTTAACGGGTAATTAA
+GTTAAATGAGGTCTTTAGGTTGGGCCCTAATCCATTAAGACTGGTGTTCTTATATCCTTA
+TAACAAGAGGAAATTAGGACATAGATATGCACAGAGGAAAGAGGATATGAAGACACAGGG
+AGAAGACAGCAACCTATAAGCCAAATAGAATGAAATTAATCCTGACAACACTTTGATCTT
+GGACTTTTAGCTCCCAGAATTGTGATAAAACAAATGTCTGTTGTTTAAGCTCCCTCAGTC
+TGTGCTATTTTGTCATGGCAGCCCTCACAAACTAAGAAGGCACTATCGCTCTAAGTTTTG
+TTGTATGTGAGGCCATAGATGCTCTCTATTAAGATGGCACAGATGCCTTTTTGGGTCAGG
+CCAGTTCCCCTGAGGTGATGAATTAATGCCTGTGAATCATCTGAGGCACAAAAGCCAAGA
+AAGAAGGAGCTGGGCCTTGCATAATGACTTTGAGCAGTTGCTGGTCTCAGGGAGTTATGC
+CACCTCTAATCTAGGATTGCAGCCAGATTTCTGCCTGGAGGCAGATGTAGTCTGTTGAAT
+CTCTGCATGGTTATGGTTCAGTCCTTGTTAATAGGTTTGTTGTCTTTGCCTCACTATTGA
+TGACAGGGAAACAATTAAAAGGAGGGTATCACAACCTAGTAATAGATTCATAGGGATTTG
+ATTACTCATGACCCCCCTCAATGGCAAAGTGTAAAATAGGCTTACTAGAAAATCCATCCC
+ATTGATTCAAACCCAAGTCCCAGTCCCACCAGGGAGCTACGGATCATGGCTGAGATTATA
+ACTTTTGACATAGCAAATGTGTTAGCAAACACAGTTTATCTCTGAAAGTGGGAGAAGCAG
+ATATGACAACCCATTGTAGAAATAATTCATTGAATAACCTGGGCCAGTACCAGGGAACAC
+CACTAACCTTGCTAAGGATGACTTAAAGCAGCATAAAGCAGTATTAAGAAAACTAACAAT
+GTTAAGCAGATTTCATATAATAAAGGATTCTTTCTCTGTCAGAGGGGGAAGATTCAGGAG
+AGGTGAGGGGAATCCAGAAAGCAAGACTTTTTTTGTTTGTTTGTTTGTTTTGTTTTTTTT
+TTGTTTTGTTTTTAAACAGAGTCTCATTCACTCACATCATCGCCAGGCTGGAGTGCAGTG
+GCACAATCTCAGCTCACTGCAACCTCTGCTTCCTGGGTTCAAGCGATTCTCATGCCTCAG
+CCTCCTGAGTAGCTGGGATTACAGGCATGCGCCACCACACCTGGCTAATTTTTGTATTTT
+TAGTAGAAACAAGGTTTCACCATGTTGGACAGGCTGGTCTCGAACTCCTGACCTCAAGTG
+ATCTGCCTGTTTCAGCCTCCCAAAGTGTTAAGATTACAGGTGTAAGCCACCGCACCTGGC
+CAGAAAGCAAGGTTTATGGATTTTCTAATCTGCTGGTGTCATAGGCTTCCTAGTTTGCTT
+CCAAGATATCTGGAAAGTAAACAAATAGCATATAAAGAAAATGGAAAGACATGAGAAGAG
+GCCAGAGACTTGATTCAGTTGTAAGCCACTGGTAATTGCACTAGTTAAGCTAGGAAAACA
+TAACCACAAATTTTATGCTTGCCTAGTCCTAGGACTCTATCCTGGTTGGGAGAACACTAG
+CCATTCCCAGCACAGACAGTTAGTGAAAATCCTACACATCGTAGGCATAAGTTGATATAA
+GCCTTTTGTGTCATTAAGATAAGTCGTTACTGCTAATTAGAGGCAGAGGTAACATCAGAA
+GCACCACTACAAAGCCTAACAGAAAAGTATACCCAATAAGGACTTTAAGATAAGTTACCT
+GAGCCTGATTTGGATTGATTCTCCCTTGTGGAAGCTCTGGGGAATTACACAGACCAGCAA
+GGCAGGTGGTCCTTCCTTCACCACCCTCAGGCCCTGTAAGGTGCACTATGGCCTTGCACC
+TTGTGTGGGTGAAATAATCATCCAGTCCTCATGAGCCAAACAAGTATGGCTAGCATTCCT
+TCATAAAATTAGAGGTGCATACTCAGGCTATAGCTCAGGTCAAAAGCAGGCTAGAGAATC
+TCGGATAAAGTGAAAATTAAGGCTTAAAGTTGGCCCTACAGGAGTTCGTTCAGTGTGGAC
+CCATTGAGAGCAAAGCAGTCAAGGCTACACCAAATTAATTATCTTCCTCTCATAGCTTGT
+TGGGCGGTAGTCTTCATTAGGTTAATATAATTTTTAAGGGATAATTTCTTAATTTCAGAG
+ATAAAGCTAAAAGTCAGTTATTTTCCTCCAGCATAATTGATCCTTGTGCAGAAAAAGTCC
+CCCAGAAATTCTTTTTAAATCAAAGCATCTTTGCATTACTATTTCCCTGTATTCTAGATT
+AATTGAAAAGGAAGATGATTCTCTTAGCTCAAGAGAGTACAAAGTTTATATTTCTCAAAA
+TCCCAGGCAGTATGGTATATCTTAATTCGTGCCCTGATATGAAATTAATTGTTCTATAAT
+CATCCAGTCAGGGGAGGAAATATAATTCTTTCCATGGATTATAGCTGGTATAATGGCCAA
+AAACGTAGACCGGAGTATATACTATATTAGGCACAACAAATGACAAAGTTACATAGATAT
+GGGCCTCATCACGTGGGGTAGGTCTTAGATAATTCTCCAAAGTCTCAGTTTATATCAACA
+AACCTCAAAGATAGAATGATGTCAGGAAAAGCAGCAAAGTAAGGACCTCTGAAAATGAGC
+TCCTCCACAACAGGAATGAAGAAAAAAAGGGGAAAATTGTCAAAATCAACATTTTCAGAA
+CTCTGGCATGCAATCAACCACAAGTTTGCAGCAACTCAGGCAGCATTTATATTCAAGAAA
+AGCAGCTGAATCTCAGTATGAACTTTTGTGGCATTTTAACTTGCTCTAGTCCCAGCTCCT
+GCTCTCCAGGTCTGTAATAGCATTGAAAAATAACAGCTCACAATCACAACACATCCTGAA
+AGCTACCAGAAGGAGGATACAGTAATGGAGTCCTTTCAAACTCTAATTCCCAAAGAATCA
+TCGTTATTTGACCTACCGGTAGTTCCCCGGAAGACTTCATTTAACAAGATTATCTATATT
+TGGCCTGATGTGAAACTCAATCAGAGCAAAAATTCTCTATCTGAGAGGTGTTTGTCAAAA
+GCAATTACAGGCAAGCGTTTTAACCTCATGTTGGCTAATATAAGGAGGAATAATAGTTGG
+TATAAACAGCATACTAACCAAACAGATAAAAAGGGTAAACTGGGGAATGAGTTGTCTGCA
+GGGACTTTGAAAAGTCATGACATATCCTGGAAATCTAGAACACCACACACACATAGAACA
+CACTATGCACTTACCTGAGAAAGACCTGAGAAAGCTGAAAGCTATCACTTCTGGCTTACT
+TTGAAGCTCTACATGAGCATAGAGTGAAGACAAAAGCAGAATTTTTTGCTTTGCTGACTA
+TTAAAAACCTGCCTGGATATGCACATAAAGTCCCTCAGCAAAGACTGGGAGATTTTGCAG
+CTTCTCGCATTTAATAAAATATCTGTCTAATCATTCAGTAAGCTAACACTATTCTAACAG
+AGTACAGACTTCAATGATCACACACGAGAAAGAATACTGACAGCTATTTTAAATATACTT
+TAAAGAGCTATGTTGTTTGTGACCTTTATTTCTGTGAGTCATATGCCTTGTATGCCTAGT
+TTGTTGAGAGTTTTTATCATGAAGAAATACTGAATTTCATCATATGCTGTTTCTGTGTCT
+ATTGAGATGATTACATGTTTTTTTTTGTCCTTGATTCTGTTTATCTGATGTATCACATTT
+ATTGATTTGCATGTTAAACCATCCTTGCATTCTTGGTATAAAACCCACTAAATAGTATTA
+TCTTTTCGATGTGTTGTTGGATTTGGCTCGCTAATATTTTATTGAGGATTTTCCTGTCTT
+ATGTTCATAAAAAATATTGATCTGTAGTTTTCTTTATTTGTTCTGTATGTGTCTGGTTTA
+GGTATCAGGATGATATTGCCCTAGTAGAATAACTTAGGAACAATTACCACCTTCACAAAT
+TTTAGAGCAGTTTCAGGAGAAATAATATTAGTTCTTCCTTGTATGTTTAGTAGAATTCAG
+CAGTGAATTTACCTGGTTTTGAACTTTTCTTTTTAGGAGACTTTATTACTGATATAATCT
+TGCATATAATTACACATAATTCATAGTTCCTGATGATTCATTGTGTGTCTGTGGTAACAG
+TTGTAATGTCTCCTGTTGCATTTCCGGTTTTCATTTGAGTCTCCTCTCTTCTTTTCTTAG
+TCTAGGTAGTGATTTATCAATTTTGTTTACCTTTTCAAAGAATAAGTTTTTCATTTTGTT
+GATCTCTTCTGTATATTTTTAGTCTCTAATATAGTTCTGCTCCCATCTTTGTTATTTCTT
+TTCTTCTGCTGGTTTTGGGTTTGGTTTTTTCTTGCTTTTTTAATACCTTGAGGTGCATCA
+TTAGATTGTTAATTTTTAATCTTTCTACCTCTTTGGAAGAGACATTTAATGCTAAAAACT
+TCACGCTTATCAATGCTTTTGCTATATCCCAAAAGTTTTGATATGTTTTGTTTTCATCTT
+CATTTGTTTCAAAAACTTTTTTTATTTCTGTCTTAATTTATTCACTGACCCAGTAGTGCA
+GGAGCATGTTGTTTAATTTTCATGTATTTATGTACTATCCAAAATTCCTCTTTTTATTGA
+TTTGAAGTTTGAGTCCATTGTGGTCTGAGAAAATACTTGATATGATTTCAAATTTAAAAA
+TTTGTTAAGATTTGTTTTGTGGTGTAACATTTAGTCTATCTTGGAGAATGTTCCATGTGC
+TGATGAAAAGAATGTATATTGTGTACTTGTTGGACTGAATGGTCTGTAAATGTCTGCTAG
+GTCAATTTTATCTTAAGTCTGTAGAAGAAAATAAAATATTGTGACACCAAGCTCACTATG
+TCAAAGGGAAAGTTAAGCCTGGGAACTGAGTCACACAATACTTCTTTTCTTTTTTGCCCA
+AACAGATAGCTGTAATTTCACAATCCTGTTTCATGGCATTATACATAAACCAGATTCTCA
+CAATAGCAAAAGGCCATATATCTCCCCAGATGGTCCCCCTCACAAATTCCTCACAAAAAA
+TTATTTATTAGCCCCTAAATCCTTCAGGACATGATACATATCTCCCCATAAAACCAGCCC
+TAAAATTGAGTTCTGTTAAATCTCACACTGTCAATGTTGATTTCAAGTTTATTTCCCCAG
+GTAGGGAATGGGAACAAGAACAAGAAATTATTTCTCCACCTACCCTGAGGTGGAGGCATA
+TTATACTTTGTCCTCCACTCCGTCTTTTCAAATGTTTACTTTATCTTATGTAAAATGTAG
+GTTTACTGAGCATTAATCAGAGCCTCACAAGAAGGTAATCATTTGCTTCACTGCTTATTC
+TCTCTCAGTTTTTCCCTTCTGCTTTATGTTTTCCCCTTTAAATACTGAGTTCTTCAAACC
+CTCTTTGAGATGCACCGGTCATAGATGCTCCTGTGAACTTGTGTTTTTCCTGGGCACTTC
+CTCAAACTTTGGCTTGCTAAATCTACTGATCAAGACACCTGCCTCAGTCACTTTTTGGTT
+AGCAAGTCCAATTTAAAACAAATGTTGCTTTGTTGATTTTCTGTTTGGATGACTTGTCTA
+ATACTGTACATGGGTTGATGAAGTCCCCCACCATTATTGTATTATTGTCTATCTCTCTCT
+TTAGGTCTACTAATATTGATTTTCTGAATCTAGGTGCTCCAGTGTTGGGTGCACAGATAT
+TTAGAATTGTTATATCCTCTGGCTGAACTGATCCTTTTATCATTATATAATTACCTTCTT
+TGTTTTTATTTTATTATCCTTGACTTAAATTAAGCTTTAATATAAGTATAGCTACTCCTG
+CTCACTTTGGTTTCTATTTGCATGGAATAATTTTTCTACCCCTTAACTTTTGGTCTGTAT
+GTGCTTTTAAGGAGAAGGTGAGCAACATATAGTTGTAAACACATATAGTCAGTTTTTTTT
+TAATCCATACAGCCCATCTATATCTTTTAAATGGTGCATTTATTCAACTTACATTCAGGA
+TTTATTCTGATATATGAGGCTTTCTTCCTGTCATATCATTAATTGTTTTCTAGTTGTCTT
+ATAAGTTTGTTCTTTCTTTCTTTCTCTCTCTCTCTCTCTCTCTGTTTGTAATTGTGGTTT
+AGTAGAATTCTGTAGTGGTATCTTTGATTCCTTTCCCTTCTTCTTTTGTGTGGTTGCTTT
+ACCATGAGTTTTATACATTTTTGGGTTTACATGTTGCTAAATTTTGTCCTTTCACTTTCA
+ATTTAGGACTCCCTTGAGCATATCTTGTAGGACTGGTCTAGTGGTGATTTCCCCTAGCCT
+TTGTTTGTCCGAGAAAGACCTTACCTCTGTTTCTTTTACGAGAGTTAGTTTTGCTAGATA
+TAGAATTCTTGGGTGGTTATTATTTATTTTTTATTTCAGCAGTTTGGATATGTTGCCGCA
+TTCTCTTATGGCCTGTAAGGTTTCCACTGAGAACTTCAATGTTAGCCTGATAGATTTATT
+TTATAAGTAACTGGATGCTTTTCTCTGGCTGATTACAGAATGTGTTCTTCCACTTTGACT
+TTAGACAGTCTGATTATAATGTGACATGATGAAGTCCTTTTTGCATTGCCTATTCCTGGG
+GATCATGAGTGTGATGGTTAATACTGAGTGTCAACTTGGTTGGATTGAAGGATGCAAAGT
+ATTGATCCTGGATGTGTCTGTGAGGGTGTTGCCAAAGGAGATTAACATTTGAGTCAGTGG
+GCTGGGAAAGGCAGACACACCCTTCATCTGGTGGGCACAATCTAATCAGCTGCCAGTGTG
+GCCAGAATATAAAATAGGCAGAAAAATGTGAAAAGACTAGACTGGCTTAGCGTCCCAGCC
+TACATCTTTCTCCCATGCTGGATGCTTCTTGCCTTCAAACACTGGACTCCAAGTTTTTCA
+GCTTTGGGACTCAAATTGGCTTCTTTGCTCTGCAGCTAGCAGACAGCCTATTGTGGGACT
+TTGTGATCATGTGAGTTAATATTCCTTAATAAACTCCCCTATATATATATGTATATATAT
+ACACACACACACATATGTATACACACATACACACACACACACACACACACACACACACAT
+ACATATATACATACAGGGGATTTTATTATGGAGTATTAACTCACATGATCACAAATTTAA
+TAAGTTATTAAATAAATATATATATATTTATTTTATATATATATCCTATTACTTCTGTTC
+CTCTGGAGAACCCTGACTGGTATGATAAGCTTCCTGTATCTGAATGTCTAAATCTGTTAC
+TAGACTTGGGAAGTTTTCATCTATTATTTAACTACATAGGTTTTATAAAGTTTTTGATCT
+CTCTTCACTCTCTATAATACTGAAAATTAATAAATTCAGTCATTTTCTGTGGTCCCAAAT
+GTCTCGAGGCTGTGTTCATTCATTTTTATTCTTTTTTTTCAACTGTGTCTGACTGTATCA
+TTTTAAAAGACTTGTCTTCCAGTTCTGAAATTCTTTCTTCTGCTTGGTCTAGTCTATTGT
+TGAAGCTTTCAAAAGTATTTTGTGTTTCCTTCAATGAATTTTTTAGTTCCAGAATTTCTG
+GTGCTTTGTTTTATTTTTAGATTTATCTCCTCAGTAAACGTATCCATCATATCTTGATTT
+TTTGAGTTCTCTGTGTTGGTTTTCAGATTTCTTTTGCATCTCATTGAGCTTCATTATAAT
+CAACACTTTGAATTCTTTATCTGGGATTTTGAAGATTTCTTTATGGTTAAGCTTTGTTGT
+TGGAGAAGTGTTGTGTTCTTTTTGGGGTGTCATATTACCTTGCTTGTCATGTTTTCTATG
+TCTTTACATTGATTGATTTGTGTAATCTGGTGTAATTGTCACCTCTTATTTTTGAATTTA
+CTTTTGTTCAGGGTAGGGATTTTTCCTGAAGATGTGACTATAATTTTGGCAGGTTTTTTT
+GTCTTTGCTTCTGGGTGCATATGTTAGCAAAATTTCTCTATAATTTCTCTGGCTATAAAC
+AGTATTAGTGATGTCAGTGATCTCCTCAGTTTGTTAGGGTTGGTTTGGTGGAGGCTATGG
+TAAAGTGGGGCTGATGTCTGGGCCCATCTTCAGGTTTCAGTCATAGAAGTGGTGGCCTCG
+CATGACTGTCCTTGTGCCTTGTGGTGGTATATGCAAGCAATGGTGTTAGATGTGCTAGGC
+AGGCTGATTCCTGGACCTTTGGATGACTTTCTTGGGTGCCAAGCTTAGTAGCAATGCACT
+GGGAAAATAAGTGAGCTCTTGAGCTCCTGGGCAGCTGGCATAGCATGGGTGAAGGCTATT
+GCAGTGGTGATGAAATGCTGGCAACGAGCTCTGTGGGCCAGCCTCCAGGCCAGTAGTGGT
+GTTTGGATGTGGGAGCCCATTGAGGTGTTGGCAATAGGTTGTTTATGCTCAATTTTAGTC
+CCCCAGGAGGAGTACTCAGTTGTCCCAGGTGGTGGATTGTGTTGTGGAACCCCTAGTGCC
+CTGGATCCCATACTCTGTCTCAGTGGGGGATGAAGCTGGGTGGAACTGGACCAGGAAAGC
+TCATGCTCAGGCCCCCAAAGGCAAGTGCCTGCATCAGCCATGACAGGTGGGGATGGCTCA
+ATTGTTCAGGCCCTGGTAGACTGCTTGGCTGAGGGGTTAGCACCACTGTACTGAGATCCT
+TCCATGGTGAGAGTGGAGAAGGTTTCAGCAGCCACAACCTCTGCTGGTAGGCAGGGGACA
+GTGTCTTTATCACACCCCAGACCTGGTGGGGCTCACTCTACTATCCCAGCTATCACAGAC
+AACCTGGAGGTTCCATGAGACCTGCAAGTTTGCACCAAGTTTGCAACTCTGTCCTGAGCT
+ATAGGAGCTACTACCCAGCTCAAGACTAAGTCTTCCTTGCAAATCTCATCCTGCTCAAGT
+CCTGGGGGCAATGCCTGGTTCCACTGCCAGTGGCCACAGCTCACACCATGCTTGCTTCTC
+AATACTTGTTGCAGAATCCCTCTGCCATGGTTTCACAAGCAGTAGCCTCAGTTTCCCTGT
+GCCTAGGACTGGCACTGCTTGTTCCCAAGACCATGCACAATTTGTTAGGAGTGAGGACTA
+AGTACAGTGTCTTACTATGACCACTTACATTCAAGAAGGGTGTGAAACACAAGGTATGTT
+CTTCCTGGAGCAGGGTTTGGGAGGGTCATGATGCTCTCTTGAGTCCTGGATTGTCCCAGG
+GGATAAGTGAACCACAGACAAACACTTATTCACTCTCTCCTGCATTGAGAGTCATTCCTA
+CTTTCCGGCTGGTCCCAGTCACACAGGCTGCTTATTGTTTGCCTCCTTCCTAATTTTGAG
+AGTTTTCTGTCACTTTGCTGTTGAACTCTCATGTTCCTTCTTGGACAATATATTAAAAGT
+GTGATTGTCTACACATTATTTTGCTTCTTCTAAGTGGATGAGGTGTGCTTGAAATACTCC
+TAGTTGGCCATTTTGAAAAAAAAAAAAAAGAAATGTCATTTCATACTCACTAAGATGCCT
+ATAATCAACAATGGAAAATATCAAGTATTGCAAGAATTTGGAGAAATTAGCATCTTCAGA
+CAATTGTAGTAGGAATGCAAAATGATACAGCCACTTCTGAAATCAGTTTAGCAGCTCCTC
+AAAAAGCTGGAAATCATTACTAGATAACCCAGTAATTCCATACTTAAATATTTATCCAAC
+AGAAATGAACACATTTTCACACCAAAACTTGTACACAGATGTTCATAGAAGTACTATTTA
+TAATAGTCAAGTGTGGAAGTAACCCAAAAGTTCATCAGCTGATGAATGGATAGACAGTAT
+CTGCTATAGCTGTATAAAGGACTACGATTCAGCCATAAAAAGAATCAGGTGTGAATATAT
+GATGAAGGTGAACCTTAAAAGCATATTGTTAAGTGAAAGAAGCCAGAACTAAAGGCCAGA
+TAGATACTGTATGTTAACATTTACGCTAAATGTCCTGAATAAGAAAATCCGTAGAGACAG
+AAAGTAGGGTGTTGGTTCCCAGGAACCCGGTGAAAGGAAATGAGGAATGGCCCATTCAAT
+ATGAAATGGGGATAATGGATATAGGGTTTTCTTTGGAGGGTGATGAAAATATTCTGAAAT
+CAGATAGCAGTGATATTTGCACAAACTTTTGAAAATACTATAAAACTCTGAATGTCACAC
+TTTAAAAGGATAAATTTTATGACATGTTGATTATATCACAGCTGTTAACACATTGCACAG
+GAGGTTTGAAAGGGCCAAAATAAAGATTACAGGAGAAGTATAATCAAACAAGCATTTTTA
+TTTCTACTATCTATTGAAACTCTCAAAAACGATAAAAAAGTTTTAGTTAAAAACTCAGTA
+GGTTGATATCATGGTATGTGAATTATATCTCAAGGAAACAGTTTTCAAAGGTATAAACAT
+GTCAAAATTAAGAGAACAGAAGAAATAATATTGGATGAGTTTTGTCAACAAATTTTTGAA
+GGTTGGAAATCTGGAAAATGACTGGCAACTAAGTCAACAGAACAAAGAAATTTGAAGTCT
+AAAGGTTTGCAGAAGGGAATGCTAAGATAAATATGCTGATTCATGCCACAGATCATAGGA
+AATGATTTGTTAAAATGAAAACATTCCAGTTATCTAAAAGGCATTGATGAACTGTGACAC
+TGAATGTAGGATAATTTGTTAGCTGTCAGTATAAAGGACCAGTTAGAGTTTTAAGTAGCT
+GTCCATACCCTAGTAGAGACCAGCATTTATTCTCTGGAGAAATTGAACTGAGAAGCTCTA
+GACATAAGTCAGTGAAGAGAGTGAGTGAGAATGAGGCACTATGCCAAAAACAGGGAGATA
+AAGAAACATTCTACATAATGAAAGGTGACAACCTCCTGCCTATCCCTAATTTTCTGCTCA
+GCTACCAGATTGCTAGAAGGCTTGCTAACCATCCTCAGGCAAACAATTAAAGGATTTCTC
+CTTGGAAAACCTTCTAGAATAAGAAAGAATGCCTCCTGGTACTTACATTTAGGTATCCCT
+TGTGATGATTAATTTTATGTATTAACCTGGCTGGGCCTCCATGCCCAGATATTTTGTTAA
+ACATTATTCTGGATGTTTCTGTGAGGGTGTTTTACATGGACTAACATTTAAATCTGTGGA
+CTTTGAGTAGAGCAGATTGCTTTCCATGTTATCGGTAGGGGCCTCATCCAATTAGTTGAA
+GGCCCCTCAAAGGACAAAAGACTGACCTCCCCCAAATAAGAAAGAATTCTACCAGCAAGA
+TGATCTTCAGATTTGAACTGCAGCAGAGGCTCTTTCCTTGGTCTGCAGCCTACCAGTCCA
+TCTTGCAGATTTTAGACTTGCCAGCCTCCATAATCACATAAGCCAACTCCTTAAAAATAA
+ATCTCTTTCTTTCTCGCTCTGTTCCCCTCTCTCCTCTCTTTTTCTCTTTTCTTCCCCCTT
+CTCTTTCTCTCTCTTTCTTTCTCTCTCTCTCTCCATTGGTTATCTATCTCTGGAGAACCA
+CACTTAATATACCCTCAAAAAAAAGTCCAGGTCATTATCCTAACTCTTCTGATAAAATTC
+ATCAGCCGACAAGTCCCATACATGAACATAACATTTCAATCATCTTTATAATGATTTAGG
+CTAAGAAAATAAATATGTGAGGAAAATCTAAGAGATCAAATCAAATAGATCACAGAAGAT
+TTCAGAAGAGAAAATGATAATGCAAAAAATTTTAGAAATTAGAATATTCTCATAGCAATG
+AGAGAAGATGCTTTACTAATTATAAAAGAAGAAAAGCAATAAAAAAGAGAGAACAATAAA
+AATTTTCTTAAAATAAAAACTATTATAATAACTAAAACATTTAAAACTATTGTTGAGAAA
+ATGTTCCAAAAAATAAGTCAAAAGGAATAATGGGAATAAGATCGAATAAAATGACAGAAT
+AAACAGATTTTCAGGCATGCTAGTTCTTGAAATATTAACCTCATGGGTACCACACTAATT
+ATCATGAAGGCATTGAAAACTGTATTCCATTAAAACAACATATCAGGAAGATAACATAGA
+ATCCAATAAAGAGAGGATCCAACACAGGAATCAAGCAAGGAGACATCCCAGGATGTGAAT
+GGCAGGCAAAGACAGAGAAGAGATGTGTCCTTGAGCTAGAAAACAATCAGTCCAGGTAAG
+ACCAGAAGAACATAGTCTCCCCACAAGGGGAATAAAAGCCAAACTTTTAAAATGGAATCA
+ATAGATTACTTCATTAGAAGAGTATTAGAGTCCCATTGGAGAATTTGGGAGAATATGAGA
+TACATTCACAGAAAATTTAGCACATATTTAGCATATAATTAGAAGTGTAGAAGAACACAG
+ATATAAAACTAAGAAAATATGAGTAGAAGAATATGGATATAAAACCCATAAAATATTAAT
+TTAAATATTAACCTTTAAAAATATAAAACTAATCAAGTAAAATATTAAATCAATTAAAAA
+ACAAACCAACAATCCAATGAAACCCAGTAGGTAAATGATATGAAGAGATGATCTATAGAA
+ATATAAACCCAAGGGGCTAATGTGCATGAGAAAAACCTCACTGGAAACTAGAGAAATTAT
+AATTCGAGAAATCGAAAGTAAAGTAAAAGTCAGCCGTCATTTCAGCACCATAGGAAATGG
+GTAAAGATATAAAAGTCTTGCAATACCAAGTATTGTAAATGATGTAGGCCAAGGGGATAG
+TTTTATGTTGGGTCCAAGAGTATAAATTTGTCCAGCTGCTTTGGAGAACAATTAGGCATA
+TGTAGTAAGGCTGAAACTTCTTTAATCCAGGATTGAAGTACTGAAGAAACTGTTGGGAGT
+TTGTCTTGCAGACATCCGTTGACATTTACTAGTCATAGCAATATGAGGCATTGTTTCTAG
+ATACGTGTGAATTTGTTGAAAGTATAGAAACAGGCTTGGCATGATAAACATCAAATTCAG
+AATTAAAGTTAATTGAGAAGCGAAAGAAGGAAATGGAATTTTGCTGAGGATAGGGTACAT
+TAACTGAATCTATGAGTGCTCTGAAGCTAAAGTAGCAATCTAAGTAAGTTTTTTGTTTTT
+TTTTTAAATGGGTCGCTATATGATTGTGTATGATATTAGGTTAGTGCAAAAGTAATTGTG
+GTTTTTGTCATTACTTTTCTGCATGCTAGAAGTATTTCTAAATTAAGAAAAAAATGGGTA
+GGTAGGTCATGAAAAAATTGATATTTGTATCAAACCAGTATGAAGTGTGCAGAGACAGAA
+AGAATGTGATGAGCCAGTAGACTGAAGAGGGCAAACAAACCCATGAGATACTCTGTAGAT
+GGATGACAATGCAGATGACATTTCAGACCAACAGGAAGAACACAGTGTAGGAAACAACAG
+GAAATGGCTCCCAGGTCACAAGTGTTGGAGTGAACCTTAGGAGGATGCTAACTAGTTTTC
+TCCCAGCGACGCCTGTAATGAATATCAGTGAATCAGAGACCAGAGCTCATCCTCTGGCTC
+TGCCATTCACTGGGGAGTTTAGTAAGAAAATCAGTGTATCACCCCACCATAGTTTTCTTC
+TCTGTAAAAGACAGGTCAGCGCTAAGAAACTTCAATGCTATTACATTTGCATGAGGAGAT
+TTGTGGCTTCCACCTTTAGAATGCACAAGATGACTCTTGGTTTCTAATTGCATTCTTTTA
+TTCCTAAAATTATAATGGCAAATTATCTGACCCCTCACAAGCTATTACACTGTTTTTCCT
+TTCCCGTATCTCCCCATCAGCACTTTCTAGCCTTGTTCTCTTGAAATGTTATGGTCTCTA
+TTGGTTTTCAACACTTCCTTTAATTCTTAGTTTTCTCAGGCTAAACCAAATTCAGTTTTT
+TCTACCCTTTTCTTAAATGTTTGTTCCAGGGCATTTCATTCATTAACAGGAGAACAATTT
+CCAGAAATGTTTTGGAAACAAGTGTATGAAATATGATCAAAGTGCAATGCTATTAATAAT
+CACACCTGAGCTTGACATGTTCTCCCATTCATATTAAAAAGAGAATCTATATGTATTTAT
+GCTGTATTTGTATAAGGTAATTCCCATTTCAAAGGCAAAATAAAAACTAGGAAAGTAAAT
+ATCTTGATAACTTATTTGATTTAAAAAAAGAAACTTATTAAATCACTACATAACTTCAAC
+AACAGCAGAAGAAATATCTTTTACAACTAAAGCCTAGATCACACTCAGACCATTTGAACT
+GGGAAAGCTGACTTAGGTAATGTGACCTAGAATCTTGACAAACAGATATTTGTCCTAAAC
+AAAGATTTATTTTAATAATTGCTTCACATTTAATATTTGCTAAGTTAACTGTAGTATTCC
+AGTACTGCTCCTGTATATGAGTATTTATATATGAAATTAATATGAAATTTATGATATATA
+TTAATTAAAATATTAATTATATATGAAATTAATATGAAATTTGATATATGTTAATTTCAT
+ATATAAATACTCATATATAGGAGCAGTACTGGAGTAGTATATATATGAAATCTATATACT
+ATATATAAGTATATAGTATATAGACTATATACTACATACATAGTATATATATGAAATCTA
+TATATTATTCATACCTATTCATATATTTCATATAATAATATATATAGAATATTAATTTAA
+TTGTGTTGAATCTGGATATGCATATACGTCAAATTTTCTTAGAGTTTAATGTGGTATTGT
+CACATCTTCAGAGTGTTGTATACCTTGGAATTCAAGAGTAAAGAAGCAATGAGGAAAGGT
+AAACTAATAGGCACCTTCTTTGAAAGGATGAATGATGCCTTTGAATAGAGGCAAAACTCC
+AATGAAATAAAAATAAGCAAAAGTATAAAATGCCATATAAATACGTAAAAGGAAAATAAA
+TCTGGGACCCCAAAATCAGTAAACCAAGAGGAAAGTCAAGCAGGGAGCTATGTCAGGTAA
+ACCTGCCTCCCATTTTATCCCTAAATAAGATAGCTACAAAGATAAAAAAAAGCTACAGAC
+CTCCTTCACAATTTGCCCTCAAGGAAATTCCTTGAGGGCCTGAAGATCTTTACCCTAAGC
+CAGTTCTGTTGAATTTCGCCCGCAATGTAAACTGATAGCTTATCTTTACAGGTGCAGGAC
+AGAAAGTTATTTCTCTGCTCACCTGAGACAAATGCATATCTAATTGCTTCCTCTACCCTA
+TTGTTTATGTAGAAATGCAGATTCACTGAGCTAGACTAAATTGAGTATTCAGTGAAAGGC
+TGATCAGGACTCAAAAGAATCCAACCTTTTGTCCCTCCTTTCTGGACCTAACCAATGTAC
+ACATTACATATATTCCTTTATGTCTCATGTTTCCCTAAAATGTGTAAAAGCAAGCTGTAC
+CCCGATCACATTGGAGACATGTCATCAGAACCTCCTGAGGCTGTGTCATTGGGAAGATAA
+ACTTTCTAAATTGATTGAGACTGATCTTAGATATTTGGGGTTCACAATTATAAGAATTTG
+TTTTTATGCTGCTTTGGTGATGGGGGTAAAATTAATGAGTTTAATATAAAATTATAATCC
+TTCAGATTGTATAATTCCTCTGTGATCAATTTCATCTTCCTTCCAAACAAAGCACCTTGA
+TGTAAAAACTGTGAATTGTTAGGTAAAGGAAGACAGAAGCACAAGTGTAATTTGGATGTA
+AAATAAACAAAGCAGTGAATTTGCCAAGCAAAGAAACGCAGAAATGCCCTACAGTAGAAT
+TTCAGACTAACCCAGCTTCAAGGGATAATGACCCTTGAGCAACCCTTAACAGGAAGTCAC
+AAAGTCAGATTGTGAAATCCAGAGAGCTCAGAGGAATTCTAGAATTGGCAGCCAATTGGA
+TGGCCTCGTACCTGCCCTGGTTATATTCTAAGAGCTCTGATTCTTTAGATGAAAGAAAGA
+ACCAGAAATCTCTGGACTGTGACAATCCTTCAAGTAAAGTGAGTAACAATGGGGGTTTGT
+TTCAGAACAGAGCCCACCCTGAGCCGAGGGCTACAAAGGGAAAGTTGGAAAAGAATATAC
+AGAATATCAGAGTGTCAGCCATGTTATTCACAGGGATACTATTTAAGACAGTAGCCATTA
+GCTATAGGTGGCTATTTAAATTTAAATGCCTTAAAAATAAATAAAATTAAAGATGCAGTC
+CCTTGGTTGCACTTACCACATTTAAGTGCCCTGTGGCTGACACAGTAGACAGTACAGACA
+CGGGGTATTTCAATTGTCTGGGCAGTCTTGCCACTCAAAGTGTGGCCTACGAATCAGCAG
+CATTGGCTTCACATAGACATTTTAAGAAATGCAGAAACTTAGGCCCCATTGCATCTTAAT
+GTAAACTGTGTGCACCTTAAAGTGTAAGGAGTACTGGCCTAAGGCTCATTCCAGAACTCC
+AGTCATTGAAAGATAAACCAAATGCAAATCAGAAAGCTGAGACAAAAAGCTGACTCAATA
+GATTGTACAAGAACTGTCTATGAGCCCACTCCCCTGGGTTCATCCAAATGACTTTAGATT
+CCTGGCTTATGGTTGTATAACTATTTTCAAACACTTTTTGTAGAGCTAAGATAATGACTA
+TTCTGCTTTGCTCCAGGTTGTCTAGGTAACATTTATGTGTAGCATATATACAAACAAACA
+AATAACATTTATCAAGCACTTACTATTTGTCTGACACTAAATTGTGCAGTTAATAGGCAT
+TTTTAAAATGATTTCACGTAAGTGATTTTCAAACAAGTTCCTTTAGAATCAGTTTTTACT
+GATGATATAATTGATCCTCAACAAGGACAAAAATCATGCCCAAGAACACATGGTTAATAA
+ATGGTAGAACTACTTTTGTACAAAAGTAGCTCTATGTTTTTATTTTATTTTTTCAATCCA
+CAGAGTTAGAAGATGTGTTATTATTTTTGTTCAGGGCCTAGACTTCCTAGCCATAATTAT
+TACTGTAGTAGAAATTAAACAAAAGATTTAAGATTCATTACTAAGAGAATCTGAATGAGA
+AAGATTTTGTGCCTGGACTCAGCACTGGTGAAAAACTTCCTCAAAATTTTAGTCTTCCAA
+AGAGGCTCTAATTGGCGTTAGCAGAGATTCTGCCCTTGAAGTGACTCTCAGTTTTCATCT
+CTGTGAATTTAGAAATCTGAATTTCGATTACTTTCTTACTTAACGAAGGTTTACCTGTCT
+TCCTTGCTGCAAAAGCAGCAAATAAAGCTGGTGTTTTGTAGGTGATTTTTTTCATTTTTA
+AGCAAACAATAAAAGCAACTGTTCTCTTGGTGGAAATTTTTTTTTAAAAAAAATACAAGC
+TATAGAGAAAAAAGGAAATGTAATGAAGATTAGCCATGAAATTCTCATTAAGCATAGAAT
+AATTCCATTTATATTTCTGTTACAGGAAAGGGGTCCTGATCCAGACCCCAAGAGAAGGTT
+CTTGGATCTTGCTCAAGAAAGAATTCAGGACAAGTCAGCAGTGCAAAGTGAAAGCAAGTT
+TATTAAGAAAGTAAAGGAGTAAGAGAATGGCCACTCCATAGAGAGAGCAGCCCTGAGGGC
+TGCTGGTTGCCCATTTTTTTTGGTTATTTTTGATGATATGCTAAAATAAGGGGTGGATTA
+TTCATGCCTCTGCCTCCCTGTTTTAGACCATATAGGGTAACTTCCCAACATTGCCATGGC
+ATTTGTGCTCTGTGATGGTGCTGGTGGGAGTATAGTAGTGAGGACAATCAAAGGTCACTC
+TTGTCGCCATTTTGGTTTTGGTGGGTTTTGGCAGGCTCCTTACTGAAACCTGTTTTATCA
+GCAAAGTCTTTATGATCTGTATTTTGTGCTGACCTCCTATCTCATCCTGTGACTTAGAAT
+GCCTTAACCATCTAGGAATGCAGCCCGGTAGGTCTCAGCCTCATTTTACCCAGATCCTAT
+TTAAGATGGAGTTGCTCTGATTCGCACACCTCTGACAGCTCTTCGCCCTCAACTATTTAT
+ATATTTTTTCAGTTTAATCTATCTTAAACTTTTGAATGTTTATTTCATACATTCTAAGTT
+GGTTTATATTTTATAATGTATTCTAAATATCTACTTAATACTTTAAATGTAAATGCATGA
+TTTTTAACAAAATATTTTAATAGATGTTAGTGCACAATATTTTTATATTTTATGATATAA
+ACAACTTCAGAAATTATCATCTGTCCATTTGTTCATGGATTTGAACAAGTGACTCAGATA
+ATTAAGTATTTTTAGCCTAAGGAGCAGAAGTTTTAATGACTTTCATGTGGATAAATTTTT
+TGCAGCAGCAGGATGTAGATCTAGGGTGAGTGAATGATTAAACAACACTGGTGACAAATT
+CTAAAGCAATAATTTCTATTTATTTATTTTCTTTTTTTTGAGACAGAGTATTGCTCTGTT
+GCCCAGGCTGGAATGCAGTTGTGCGATCTCAGTTCACTGCAACCTCTGCCTCCTGGGTTC
+AAGCGATTCTCCTGCCTCAGCCTCCTGAGTAGCTGGGACTACAGGCGAATGCCACCACAC
+CCAGCTAATTTTTTTGTATTTTTAGTAGAGATGGGGTTTCACCATGTTAACCAGGGTGAT
+CTTGATCTCCTGACTTTGTGATCTGCCCGCCTGGGCCTCCCATAGTGCTGGGATTACAGG
+GCTGAGCCACCGCGCCCAGCCTAAAGCAATAATTTCTAATAATATACTCTTTAAAAAAGT
+TAATCTCAAAACAATAAGTTAAAAACAAATGAGAAATTCAGATGCTGGATTGTAGGTGAG
+CTGGTCACCTCCTGGGAGAACTCATTCATTCCTTATTCAGAGCAAAATGTTCTAGGTTGA
+TCAAGGGAGAACTGACATTCTGAAAGCTATGCCAAGGGCAGGGGTTTTAGGGGTGAAGAT
+CAAAGCAGCGCTGAGTGTTCTTCCTTTTAGCAGTTTGTGTTTCTTTCCTCTCCAGCTGCA
+GCTATGATAAGGTAGACTAAAGATTACTTCTCCTTGTGGGTGCTCTTAAACTTAGAAGGT
+AAACCAATAGGCACAGTTTAGCCTGTTGTAAGGTACAAGTTCAAAATACCAAAACCTATT
+TTCTTTCTAGGCGATAACAATAAAAAAACAAAAGTGGAAATTTTGAAAAGTAATATTGAA
+AGAACTCAGGGTTAAATCTGCCAAAAGGGATGCAATGCCTATATAGTGGAAACCACATGA
+CATTGCTAAGATGAATTAAAGACCTACATAAAGGACAGGTGTATTCATGGCCAAAGGATT
+TAATAATTTTAACATGACGAATGTTCCATAGATTCTACATAACTCAATCAAAATCTTAGT
+AGGCATTTTTTGGAAAATTTAAGAAGCTCATTCTAAAATTCATGTGGACTTACAATAATC
+CTATATTACCAAGACAATGTGGCATTTGTATTGAAAGAGATTAATAAAGTAAGTCCAGAA
+ATGAACCCCACATATATATCAATAATTTTTTGGACAAGGGTCAAAGGCAACTCAGTGGAG
+GAAAAACAATGTTTTCAGGTAATGTTGCTGGAAATCTTGGATCCATACATACACACACAC
+ACACAATTTAATAACTTCAATTTATACCGAGCAACATACACAAAAAAAACTCAAAATAGA
+TCACAAAGCTAAGTATAAAACCTAAAATTACAAAACTTCTAAAAGAAAACAAGTAAAAAT
+CTACATAATCTTGGGTTATGCAAAGAATTCTTAGATATAACACCAAAACTACAAACTATA
+AAAGTACAAATTGATAAACTGGATGAAATCAAAATTAAACAAATTTGCTCTTTGAATGAT
+ACTGCTAAGGAAATAAAAAGCAAAGTCACAGATAGTGAGAACATTTCTGTAATTCATATA
+TCTGATAAGGAACTTTTGTATCCAGAACATATAAAGAAGTCCTAAAATTCAGAAGGAAGA
+AAACAACTCAAATTTTTAAATGGTCAAAATATTTGAACAGATACATTATCCAAGAAGTAT
+AATCATGGCAACTAAGCACATGAAAAGATGCTTATCATTATTTGTCAGTAGAAAAATACA
+AATAAAAATCACAGTGAGATAATACCGAGACAGCCAAGTAAAAATAGGTCCCTGGAGAAC
+CTCTGACCGGCCTGGGCACTGGGAGGAATGGGCACTAGGTGGAGCCTCGGGAAGTTCGCG
+CAGATTGCACAGGGGCGGAACCTGGCCTGTCTTCTTCCGGGATGGAACGAGGAATTCAAT
+CTACAAGGCCGGAAGCATATATACTAGCAGAACTTTTGCTCTTCTGAGAGTCCCTCTTTT
+CCTTCTTTTTTCCTTTTTACCCAATAAATTCCATTTTTCTCACCCTTCAAATGGTCTGCG
+AGCCTGATTTTTCGTGGTTGTGTGACAAGGACGCCTTCTTTAGCTGAATGAAGGAAAAGT
+CCTACAACACTATGTCACATCTATTTGAATAGCTAAAATTAAAAGGACTGGTCCTATCAG
+TATTCATTAGGATGTAGAGAAGCTAGAAATCTCATACAGTGCTCATGGGAATATGAAAAG
+GTGCAACCAATTTGGAAAATAGTTTGAAAGTTTCTTAAAAAGTTATATATGTAGCTATCA
+TAAAACACAATCATTCCTGGACATTTATCCAAGAAAAATGAAAGCACGTGTCCATTTAAA
+GGTGTTTACATGAGTGCTCAAGCAGCTTTTTTGGTAATAATCCAAGCTGGAAACAGCCCA
+AATGTCTGTCAACAAGTGAATGGATAACAAATTGTGGTATATAGACAAGATGGAATACTA
+TTAAGGAATAAAAAGGATAAATTCTTATTGATACATGCAACACCATGGATAAATTTTAAA
+ATGGTGAGTTGAATGAAAGACACACAAAAAAATCATAAGATTCAATGTATTTAACAATCT
+AGGAAATGCAAACTACACTGTAGTTGCAGAAAGTCCATCAGTGATTGTGAGAAGTTGGGG
+TGGTGAGAAAGGTGAGATAGAAGGATTATCAACGGACATGAGAAAACTTTCGGGGGTGAT
+TATTGTGTTATTATGTTATACTGAGTGTTCTGATGGTAATACTGGTGCATTTACATGTCA
+AAATTCACATTGTACATTTTAATATGTTCAGCCTATTATATAACAATTATACTTTAATAA
+AGTTATTTAAGCAAAAGATCACTTTGAATGATTGGGTAGCTGTAGAGAATAGGCTACTTA
+GAATCAATGAATTTAAAGATGAAATTCCATATAGGTCAATTAGTCCAAATCTTTATATGA
+CACTTGAATTTTCTCTACAATATCAATAATCACCAGGCTGAACACCACAGAATTGAGAGA
+CTTACTGTCTTCCAAGGCAACTCCTAACAACTTTGAGAGCTGTTAGATTTTGTTTTTTAA
+TACTTGATTGTAAGGAGTCAAAATAATGGCCTCTGTGGTAGTCACACATGGATCCTTAAC
+TAACTCTTTAGCATTTCAGGGCTTTCTTAAAAATATGCAACATATTTTAAGTTTAACCCT
+TCAAATATTTGGGGGAAAAAAATCAAGGTTCCATGAATTTTTCTTTTATAGGATAAAAAG
+CTCTAGGTACTCTATTCAGTAAATATTTATTGACCACCTACTATGTTCCAAACTCTATTT
+ATGGTACTGAGAACAGAGTGGAGACAGGAGAAGATGTCATCTCTGACCTCATAAAAGGGA
+AGAGAAATGTTATGCAATTCATAACAAAATTTGATGCCATTTAGCATAGTATAGGGGCAT
+GGCACAAACTACAAGATCATGTTACAATGTTTATAATCTAATTTAGTCATCAAGGAAGGC
+CATCTACACAATGTTAAGCTTCAGTTGAAACTTACAAATAAGTAAAAAGTTATTCATACA
+AAGATGGGTTTGAAGTGTGTTCCAGCCAGACTGGATACCATGTGTGTCTTATAAAGGAGC
+CAAAAATGGCCTGATGTGTTTCTTCTTCCCTACAGGATGGGACCCATTTGTTCACAATCT
+CACCAGCACCAAACTTAAATTTTACACATCCAGGTGTTTAAGCATAACCCAATTAAGCAG
+ATTTTTAAAGCCATTTGGAGTCTATATGCTTTGCAAGTTTCATGAAACTATACCCAACAT
+CTCCTAGCTATAGATAAGATAAACCCTGTAGCCATTAAAAAAAGAAAAGAAACGAAAAAA
+AAAAAAAACCATGCAAGCTACTGCTGCCCTTCTCAGCTCTCTGATCCAGGGACTCATTCT
+CTGTGCTGAGAAACATTACCGTTCTGAGTTGTGGCGTTCCTTCTCACTTTCCTCACTATG
+TCCTCTAGATGGTTTCATGCTGTTAGGGACTGTCTAGGCAAAGAGACAGCTTCTCCTTCA
+CCTTCTGAAGGCTCATGGAAAATCATTGACAAAGGCAGATTTATTGGAGAGAAGGCACAT
+AAATTTATTTGTTCACAGTTTTATGTGGTATGGGAGCCTAGAGAATGAAGACTCTACTAT
+GTAGAGGAAAGTGTTCATTTTTATGCTTCAGTTCAACAAAATATGGACTGCCGTGTAGAA
+ATAGGACTGGACAAAGAAGGAATGGTCTAATGCTAGCAGAGTGAGTGGGGAAGCCCAGCA
+AGGCCTGTCAGCTTCGGTTCTTCTTGGCCTCTCTGAGCAGCATTCCTGCATTATATGTAT
+GGGGCAGGACCCCCTCTGGAATGGGGGTCTTACAACCCACAGTCAAACCAGGTGGGTCAA
+ATAATTTCTTTATGGCCAGATTTTAGAAAGGAAGGTGAGAGGAAAGTTAGAGTAATATTT
+TTAGGTTTTATGTCTGGCTTGGGGGAATAGAGGTTCTGGTTTCTATGACCTGCTTTGGGG
+AAGAGAGATGCCAGTTTTTGTGTCTCGCCTTGGGAAAAAATAGCGAGCTACAGACAGGAG
+GGCAGGAGAAGGTCAGAGAGACTGCTTCTGAGGCCTTCATTTTGGAGTACTGTTTCTGAT
+ACCCTACAGGACTTCCCCTATATGCACACCTGTCAAAGCAGCAACCTAAATAAAGCTCAT
+TGTGCACTATTGCTACCTAAGCATCCTTTTATTTTCCATGATCAGCCCCAAAATTCGTTT
+AACTCACCACAGACCAAAAGTGCAAATGTGAAAGAAAAAGAAGTGCTGAGCAACTTAAAT
+GAATTTTTAAAATAATATATTATATGAAATAGGTTTTAGTTCTTAAAATATCCTATACTC
+TCATTTGGACACATTGATTTTAAAGAAAGAGTTCCTTGACTGAAAGTAGTATACACTTCC
+AATTAAACAGGATTGACACTTTCTATTCTTTAGATACTATTATTTACTCCTTGGTGCAAA
+TTTGATTACCCATGTGATTGTTAACTTCTCATGCTAAAAAGTCATTGGATTTGCTGTTAT
+CTAAGATTCCTGTCTCTTAACACATGCTCCTATTGTCATATTTCTACTGTTCTATATTTG
+TGTGATTTTTGCTAAACAAAAGTGTGAAGACTGTTTTTTTCTCTCTCTCCACATATATAT
+ATATACTCAAAAAACTTGTAAGCATTTATCACTAATTAAATATTTACATTAATATCTTCA
+TATATTTATTTATTAATTGTATTGTCCATTTACCACATTATTCTGGTATCCTGGCCAGGT
+TAATTCCAACCTTAACCCTTTATGATTTAATAATTGTGATTTATTATTTTTCTCTACATG
+TCTAAAATTTAATAATCAGTATATACTGACATTATTATATATTTACTAACATTATTCAAA
+AAAGGAAAAATTAAAATGTTTTCTTTTATATTAGTTCCTTAAGATAAAGTTCTTATGAAC
+ATACAACGCAGGTGTTCAACAAATGTCAAAAGTAAATTTCATAACCTACTTCTTTAAGCA
+ACACACTTAGTGGCCCAGAACAATATATTATGAATGTTATACCTCACTGCATTGCTTCCA
+AAATGTATGTCAGTTACAGATATAGGCCTTCTCATATTGCATGTTCTTCCCATTTATAAG
+TAAATAACAGTGCCCATGCAATGTATCTGTCCTAGTAAAATGTGGAAGTTCAAATATATT
+TTTTCTAAATAATCACCTGAAATTACTAATTGTTGATTATATTCTCTAAAGAGTTGATTA
+ATTAATTTATTAAATCATCATGAGGTTCATTAAGCCAGAGCCGTGACAGAGAATTAAATA
+AAGAAGTAGCTATGTGCAAACATTTTTTTAAACATTGCAACTATTTTCTCAGTTGCGTTT
+CATCCATATCCTCTGTCTGTCAGGCTGGTTTAAATCTGGGTAAGTTGGTGGCACTTTAAT
+ATGCAAAGAAGTTCTGTGTTTTCACAGCAGATCACCCACTAGAACTAGAGTTAAACTTTA
+TTTAAATTTCTCATTAGATAATTTGAAAGTGACAAAGAAAGAGGGGCTGTGGAGTGACAG
+GTATGAGAAAATAAAAGACATTTACAATAAGGTACAACAATAACGCTATTTCTTTTTGAG
+TGTTTACTATACACCAAGCATAAACAAGCTTCATGTTAATTCTCATAGTAACTTAGTGAA
+GACACTACTATTATCATCATTTTAGATGAGGTCAATGTCAGATCACAAGCACCTGATAGT
+ATTGTACTCAAACCCAAGTTTCTCAACACCAAAGTTCATATGCTCAAAATAGACCTCATA
+CTACTCTCATGTAATAAGTCAAGTGGTTAATGATGTCATTACCAAATAAGGAGCCTTCTA
+GATGGGCAAAGAAATTGAACAAAATCTGCAAATGTAACATGAAATACTGCAAAAAATATT
+ATAAGCTACACACTGAAGGTATTAATACAAGTTAGAGTTTTATATTTTTAGACAAAGTTA
+ATTGGATTTCCACTTCCCATTAGGATGCAGGAGTACATAAAAGAACTTCTGTTCCATGGT
+GGTAGCAAGACAAAAATACAGTAAAATTTATTATCTTTATAAAGCTATGAAGAGCAGTGG
+ACATAGAGGTGTCTTGAGCACAATTCCAAAGAGAGATAATCCCTTCCTGGGTGATCAAAG
+TGCCACTGCCACACTGGGGTCAAGGACTTAGTGTGGCAATAAGTGGGTAATAGACTGGTC
+CTTCTATAGGCAGAGAGCCTTACAGAGACATTGTGAAACCAGCCAATGTTATAATGACAC
+ATTGGAAGACAGAAAATTACCAAATAGTCAATATTTCAGCCTGACAATCCTCCCACTGCC
+CTTTTGAGATGATTGCTGAGTAAAGGCAACTGAACTGAGTGAAAAGCAGAAAGTCATGAA
+GCGAAACTACCTACATTTGCAATTCAAACCCCTCCCAGCTTGAGTCCTGAAAAGAGCAAA
+GAAATTGGCTGCAGAGAAAAGAGCGACTGCCTAAATCCAATATGAAACCACAGGTGAACA
+CAATCAATTCATGGTTCCAGGCACACAAACACAAGTAAAACTCTTCATGGAATCTGAAAA
+CTCATTCCTTAAGAGTACTTGCCCCCACAGAGAGGAATGGGCTTGAACTCTCTTACGAAA
+AATCACACAAAACAAGAACAATAAAATACATTATAGTTCAATCTGTACTCTTTTTAATGT
+AAATAAATGCTCAACATTTAATTAATTTTTAAAAATGATATACAAGACATCAGGGAATGT
+TACCTTGATTAAATGGAAAAAATAGTTGACAGAAACAGAGCAACAGATAACCCAGATTTG
+GGAATTAGCAGGAAGAAGTTTAAAAGGACTATAATAAGTATATTAAATAATTATGAAGTA
+AAGCAATGAAACAAAAGAAATAAATTAGGAGAAGAGATGGTGAAATACAGAATAGAAAAC
+AAACTACATAAATGAAATAAAAAATCTAAAAAGTAAAAATACAACATATAAAATGTAAAA
+TGTATTCAAAATTAGAAACTTAAAGCAGTCTAAAACATTCTTCCCCTCCTGTCCTTTGTG
+AACATTTTGAGCACAGTTTGGACACAGCAGAAAGAGTTGATGACTCTTAAACAGATGGAT
+AGAAATTATCCAAATTGAAGTACAGTGACATATATATACACATATAGATGTATATATTTA
+TATATAATATATATTTATGTATTTATATATAAACATATCTAAAATATATATTTATATATA
+TAAAATATATACATATAGATGTATAAAATATATACATATAGATGTATAAAATATATACAT
+CTATGTTTATATATGTATATGAAAAGACAATGAATGCTAGTAGACAATGAGACTTTCAGT
+GTGTGAAAAGGGAAAAAAGTCCCTGCAATTCTTTCTTCAATATTCAGCAAAATTATCTTT
+CAAAAATAAAGAAATCTTTAGATACTTCAAAGCTGAGAGAATTTATTGGTTCCCAAACCA
+CCCAAAAAATATGCTGAAGGAAGCACTTTTAATGAATGAAGAAATCCCAAAGTATCTTTA
+AAGAAAAAACAACTAGAAATGTCAGGAGCACAACGCCAATCTACAAAATTTAACTGTATT
+TCTACAGAATAGCAACACATAGTTGGAAAATGAAATTTTAAAAGTGTACTATAGTATCAA
+ATACATAAAACACTCAGAATAAATTTATTGAAAGATACGCAAGAACTTGGCAATTAAATA
+TAAAAATCAATGTAAGAGAGGTTAAAGTTGATGTAAGTAAATGAAGAGATATGCCATGTT
+CATGAATTGGAATCAATATTATTAAAATGTTAATTCTCAAATTAAAGTATTGATTCAATG
+CTATCTAGATGAAAAGCACTGCTTCTTTGTAGAAACTGCAAGTTCCTTCTATAATATATA
+TGGAATTGAAAAGGATCTGGCATAGCCAAAACAATCCAGAAAAACAAATTTCAGTATTTG
+GTTTCAAGGCAATATATTGTATTATAAGAGACACTTATTTCCTAATTGCAAGGCTTACAA
+TAAAATTACATTAATTTTGACAACATGATTTTGACAAGAAGTTAGGTAAATACATCAATG
+GAACAAAATAGGGAGTCCTATGAATTAATGCAATTCAGAAAAAAAGTCTGAAATAAATGG
+TGTTAGTACAATGAAACAATGGACCTTTTACACTGTTCAAAAATTAACTGCAAATGGACT
+ATAGACCTGAACATAAAAATTAAGCTATAAAGCTACCAAAAGCATAAATAAGGAAATATT
+TTCTCATCTTAGGGTAGACACATATTTTGTAGACATGGCAATAAAAAGTACTAAATATAA
+AAGAAAGAAACAGTAAATTGAAATCATGCTCATCAAAAGACACCAATTAAGAAGGGAAAC
+AAAAAGATACAACTGGGAAGAAAATGATTACACTTCATTTATCTAACAAAAGACATATTC
+AATTACATAAAGAATTCCTACAGTTCTGCCTGGGCAACATAGTGAGATTCTGTTTCTACC
+AAAAAAAATTCTTTTTTAAATTATCCAGGCATGATGGTGTGAGTGTGTAGTTCCAGCTAC
+TTGGGAGGCTGAGGTGGGTAGATTGCTTGACCCAAGCAGTCCAAGACTGCAGTGATATAT
+GATCATGCCAGGAAGCTCCAGCATGGGTGACAGAGCAAGACCTTGTCTTTAAAAGACAAA
+ACACACACATACAATTTAATAATATAGGACAAATTATCTAATAAAAATTGGCAGAAGACA
+TGAACAGACAATTTCCAAAAGAAGATAGATGGATGGCTAATAAGCACGGATACTCCTTGA
+CTTATGATGGGGCTTCCTTCCAATAAACCCATCATAAGTTGAAAATATTGTAAGTCAAAA
+ATGCATTTAATACATCTAACCTGCTGAACAGCATTGCTTAGCCTGGCCTTCCTTAAATGT
+GCTCAGAACGCTTATTTTAGCCTAAAGTTAGACAAAATCATCTGTCAACACAGTTCATGA
+GGTTGCTTAGCCTCATGAACTGTGGCTCACTGCCTCTGCTCAGCATCCCAAGAGTTTCCT
+ACCACATGTCACTAGCCCAGAAAAATATCAAACTTCAGAATTCAAAGTACGGTTTCCACT
+GAAAGTATATCACTTTTGCGGTTTCTACTGAAAGTGTATCATTTTTGCTCCATTATAAAG
+TCAAAGAATCATAAGCTACACCATCCTAAGTAAGGGATCGTCTGTAAATGAAAAGGTGCT
+GAATATCATCAGGAAAACTTAAATCCACAATGGCATCCCACTGCACATCCACTGGAATGA
+AAACAAGTAAAAAGCCAGGCAAGGCGCGATGGCTCACACCTGTAATCCCAGCATTTTGGG
+AGGCCGAGGCGGGCAGATCATCTGAGGTCGGGAGTTCAAGACCAGCCTGACCAACATGGA
+GAAACCCCGTCTCTACTAAAAATACAAAATTAGCTGGGCATGGTGGTGCATGCCTGTAAT
+CCCAGCTACTTGGTAGGCTGAAACAGGAGAATCACTTGAACCCAGGAGGCAGAGGTTGCG
+GTGAACTGAAATCGCACAATTGCACTCCAGCCTAGGAAACAAGAGTGAAACTCCATCTCA
+AAAAAAAAAAAAAAAAAAAAAAAAGCCAGACAAACTTTTTTATTAAAAAAGTTTAATAAA
+GATAGGAGTCAATGAGAATCCTCACATATGTCTAGAGGGAGTGCAAAATAGTATCAACAC
+TTCAGAAAACTGATAGGCAATTTTATATAAACTTAAATATATACTGGATCTTACCAGTTC
+CTCTTCTAGGTATAAACATGAAAGATAAGAAAGCATGTGATCACTCAAAAAGACAAATAC
+AAAAATGTTAATAGCAGAAAATATCCATCACCAAAAGAATGGAGAGTCAATATAGTTTTA
+TACATTGCTGAGTAGAATATTCTACTCAGAAATGCAAAAGAATAAAGAATTTATGTTTAC
+AAAGCATGGATAAATCTTAAAAACATTATGTTGGAAAAAATAATGCAAAACAAAAGCATA
+TACTGTATCATTCTGCTTATATGGAAGTCAATGAAAAGCAGAATTAAACTATCATGCTAG
+AAATCAAAGTAGCGTTTACTCCAGGGGGAGTTTGAGCATTGACTGGAATGAGGCACAAAT
+ATTATTTCTGGGGTGATAGAACTATTCTGTTTTTTGATTAAGGTTTTAGTTACATGGGTA
+TATACATTTGTTAACATTCAACAAACTGTACTGTTAAGATTTACGTACTACACTTTAAAT
+AAATTACACCTCAATTTAAAAATGTCTAAAGGGTACTTGAATGAGGGAAAAATGAAAGAC
+ATGCAGATCCCAAAAAGCAAGAGTGTCTCCTTAGAAAATATCCAGGATTAGTCAAATCTT
+GTTTTTTATTGTGTCTATTCCAGCCTTCTTCTTTAAAATGAATTTGGAAAATATAAACAG
+TAGGTTAACAGATTATGGGAAGCTTTTTTATTTTTAAGGAAGAATACAAAGGTATTCTTA
+TATTTTGCCTTACTGTAAAACTCCCCAAACTCTACATTTGTGATAACTAAGCTTTCCTTT
+TAGGTTCAGGATCCATTACACTTCCTGAGTAGTGGAAATTTTGGTTCTTCAAGGATCTCA
+GTGTCAACATTTTTCAATATCTGACCCTGGTTTACACTGATGTTTATATTTTGCTTATTT
+GTCTATGGAGCAGTATGATTCATCCCTTATCTTGTACCCTCAGTTGCTAAAAGATTACCC
+AATTTATAAGTGACTCAACTGATATTCCCTGCCTGGTCCTCAAATTTCATCAGGACTGAA
+ATTCTTTCTCCACAGATCACTCAAAAACTGCTTATTAGAAGTTTACTATGTGCCAGACAC
+TATATGGTAAGCACTGAATGTATTGCAGAGATGAAGGAACAAACACTTTCTAATTCTTCT
+GGGAATTAGAATTGTGCCTTTGAATACAGTGAGTGAATATCTGTTTGAGTACTTTATTAT
+GCATTAGACACATGAAAAAATGCAGTATGTCCTAATGGAAAGAAAATTGTAAAATCAAAA
+TTAACATTTATTTAAATATCTCTTTAATGAAATATTGTTGCCTATAGCTGTCAACTTAAC
+ATTCACAAAAACCTAATTAAATCTGTCAGGATTTTGTCATTTAAACTTTTACATAACAAA
+AATTCCCAGGCTTATGGTATAATTACAGATAGCATATAGCCAATTGTATATTAAAGATAT
+TCATTCAAACATATTTTTGAAATCATAGAGATACTCTTTTAAAACTTGGATAGAAAATAG
+TTTAATACAGAATCCAGATGTCTTTTAATATGTCTGATATCATATATTCATTGGGGTAGG
+TGAGGCTGAACAACAAGTGTACTCAGAAATATAATGGATCAGCAAACTGAAAGTTTTTAA
+TGTTCACCTATTTAATACCTATGGGAGTTCCAGGTAGGTGGACACTGGGGCTGGTGGAGC
+AGCTGAGTCTATGTTCTGCTTTATTTCCTAGAGTCGAGCAGGAAAACTAACGTAAGTCAT
+GCTTGTGGGTATTCCTTGTGGCATATATTGCTTTGGCCCACCTTATTTCATCTACAGCTC
+AGTTATACAGTCTCTCATAGGTTAAGACGTGGAGACTAGCAATAAAAAGGAGTGTGGCAA
+ACAGCTAATCCATCTCTTGGTCTGGGAGTGCCCTAGAGAAAATGAAAGTTATAAGATCAC
+TGCTTGTTACCACTGCTTTTTATTTTACTTTATTTTTATTTTATTTTATTTTACTTTTTG
+AGACAGGGTCTCACTCTGTCACCCCAGGCTGGAGTGCAGTGGTTTGATCTTGGTTCACTG
+CAGCCTCCATCTCCCGGGTTCAAGTGATTCTCCTGCCTCAGCCACCCAAGTAGCTGGGAT
+TACAGGCGTGTGCCACTATGCCAAGCTAATTTTTTTATTTTGAGTAGAGACAGGGTTTCA
+CCATGTTACCCAGGCTGGTCTCGAACTCCTGAGCTCAAACAAACCACCTGCCTCGGCCTT
+TCAAAGTGCTGGGATTACAGGTGTGAGCCACCATGCCCGGCCACCACTGCTTTTTAAATC
+ATAAATTCGCTTATTATCTGCTACCTGAAACAGACAGAATTTTTCACAAACCTGTCAAAA
+TTGGTTCCAATAAAATTTTACTTTAACTGAATGGCTACGATGAAAACTTCTTTTATAACA
+TAGATTTTTTTCAGACCCTTTTTAAAACGAAAAGTACCTGATCGTTTTGTTCTCTTTGTT
+GAAAAAGAATGAAAAAAGTAAATTTATTCTAAATCTTTTCTTTATACTATAAGTGATAAT
+AATTTGAGTATCCCCACAACACTTTATGAACCAGATTAATCCACTAAAATCACATGTGTA
+TAAAATATATAAGACGGCATTTTATACATATTTTTCCTCCTTAGACTCTAGCACAGGGTC
+CTATGACCATATCAGGAATTCCCAGGTGTTAGTTAAGTTAGAATTGCTTTGACCGAAAAA
+GAGCAAGCTGTGTGGTATCTTCAAGAATTTTGTGTAATAGAATTGCTTAGAAATCTTGTT
+GGTCATTCAGTGCCCATTTTCCAGGAAGATCAGATGTTACTTTTACTACCTGATCCCTTT
+ATTGCTTGTTGTTTATCATATACTAGGCACGGTACTTGGTAATTTGAGGATTAAAGAGGT
+TTTCAAGACACTATTCCTTGTCCTCAAGGAGTTCACTGAGGAAACAAGGAAGAATGCTGT
+GATTACGACAGTGAATTAATATTAGGACAAGCCAAGGATTTCTCCTTGTACTAGTGATAA
+GAACTTTTCTATTTTGTTTTATTTATTTATTTATTTAGAGACAGAGTCTCGCTCTGTCGC
+CAAGGCTGGAGTGCAGTGGCATGATCTCAGCTCACTGCAAGCTCTGCCTCCCCGGGTTCA
+CGTCATTCTCCTGCCTCAGCCTCCTGAGTAGCTGGGACTACAGGCGCCTGCCACCATGCC
+TGGGTAATTTTTTTTTTTTTTTTTTTTTTTGTATTTTTAGTAGACACGGGGTTTCACCGT
+GTTAGCCAGGATGGTCTTGATTTCCTGACCTTGTGATCAGCCTGCCTCGGCCTCCCAAAG
+TGCTGGGATTACAGGCGTGAGCCACCGCGCCCGGCCCATAAGAACAGTTTTTAAAGAAGA
+CTACAAACCACTTCTCTTTGGAATTTTACTCATTTCCTTCTCTGGAAGCCGTGTGATAAA
+GCCAGGTGACTTGTGAATATCTTCTTTAGCATCTTGACTTTAAGTATAGCAGTATGCTGT
+CTGAATTATTTTAAAAAAATATATTCCTACAACTCTGCTAGGTTTTAATATTATAATGGT
+TAGACTTACAATCGCCTTCACCTCAATTAGTCCTTTAACTTTAAACATATTAGGCCAAGC
+ATATCTCATAAAGTTATCACAAGAGACTAAAGTAAAGGAGCAGTAGTTCATAGGAATGCA
+TTTAAAATTATTTCATATTTCTTAAAGTGCTGATAGTTTTCAGTAAAGGAGAAATAAAAT
+CCACTCAAAAAAGTGGCCTTTCTTCATCCTTAGTAATATTCCATTAGCAATAAGATACTT
+GTGTGTGCGCATATGTGTATGTCTGTGTTTGTATGTGTACAACATCTCGACAGCTTAGTC
+ATTTTATGAATCTCCTTAGAAGCCTACTGTTTGCTCTGTTTGTTGACAGTAGGTGTTAAT
+ACGGATCCAGATATCTCTAGTCTAACCACAGATGCAACTGAGACCTCAGAGCATATACTG
+GATTATAGGTGGCTACAAATTCTTAGTCATTCTCCCTATAAAGGGATGTAGTCTAGTTTC
+CTTTCCCCTGAATCTGGACTCAGCCTGTGACTCACTTGATTGGTAAAAAGCAGAACTAAG
+TAACATTGCACGATTCCCAAAGCTAGGTCATATGAAGTGTTACACCTTCTGCCTACCTCT
+TTTGGAGTGCCTGCTGTAGGCACTCTCCTTCTGAGAACTCAGTTGTCATTGTGAGACTCC
+CATGCCACGAGGACAGCCCTGTGTAGATATCCAGTCAATAGCCATAGCTGAGCTCTCAAC
+CAGGAACTGGCATCAAATTCCACCCATGTGACTGAGCCATTTTTGGCATGCAATCAGTCA
+TGCCTTCTGCTGACTGCAGCTTCCTCTACTACATGACAGACCTCAGGTGAGAACCATTCA
+GCTGGGCCCAGTAGTCCACAAAGCTGTAAGAGAGAATAACGGAAGCCACTAAGTTCTATG
+ATGGCTTATTACACAGAAATAGATAATCCCAAGCCAGTGAACTCAGAAGCCCATCGTTCA
+GTTTAATTCTGTTATCTTTTCAACCTCAGAATAACTGTGATCAAAGCTACATCACTCACA
+CTTCAAACAGGCTTCATCTTGCTCTGGAGAACTCATCTTGGTATAATTTTATGTGACTGG
+GGATAGAAAGACTCAAATGATCTTTGATTGACTTCATTTAAGTTTTGATTCTGCTTTATA
+AAGTAGATTTGCATGAGGGTACTTGCAAGTTTGGAACCACCTTTCATTAAAAAAAAGAAA
+AACTGAAAATACTTTATTATTAATGGATAGTTTATACTTAACAGGTAAAATCGAGAGTTT
+GCTATAAGTTTTCTCTAAATGTACCCTAGATGTAAACAGGGCCAACACTTTCCCCAAGGT
+CTAGACAATATTGGTCCAAATTCACATTTATTGATTAATGAAAAATCCAATGCCTTCCAT
+AAAATTTCTGTGAAGTAACTAGGTTGGAAGAGGGTTCACCTGATGTTCTTAGGGCGACCT
+CTGGTTTTGAGATCTTGCTTCTGAATTTAATGAATTTCAGAATCTTACTGACATCCAATT
+CGTACAGTTCTTATTCCAAGTTCTATAGACCTAGATAAGCACACTGTAATTCTTTAATTT
+CCTCCAATAAATTGTAAATAGATTTCACTGTGGGTTCAGGGAATACATAGACACATATTA
+AAAGTCAACTCAACAATAGATATGCAGGTTCCTTAAAAACAATCAAAGAACCATAAGGCA
+GCTCTCAATCATTCCACAAAAGTGGCATTTGTCACTTGTGCTCATATTCTGTTAGCAAAA
+CCAAGTGACATGGTCAACCTTCATGTCAGCTGGACAGAAATGGATTCTCCTCCTCAAAGG
+AGGTATTGCAAAGCTCATATGGCAATGGGAGAGGGCAAAAATCCTCTTACAGTTAGTGGA
+TTCATTATGTGAAGAACATTCTAGAAGAGGGACTAGCAATTAGAATGCATTTGAGGCAAT
+AATATGCTTGATACATTTTGGAGACATCATCAGGACAGGTTTGTCTGTAACAAAGTGAAG
+AAGAAGAAGAATGAAAGAAAATGAGGATCATAGAAGTAGTCAGGATTGTGTAGGTTGTGG
+TTAAGACTTAAAATTGTATTTTAAATGGGATGAAAAGCCAGAGAGGGATTTGAAAGGAAT
+GGTATGATATGATTTACATTTTAAAAGAATGATGCTGCCTTTTAAGAGGGGAATTAATTC
+TGCTCATGGCAATGGAAACAGGGAACCCAATCAAGAGGCTTTTTCAGTAGTTCAGGTAAG
+AAAGGAATGCAACATTGATGTTGGAGAGGTGATGTAGCAGAAAAGGTAGTGAGAAATAGT
+TGGATTATGGACATCTTTTAATGGAAAAGCTGAAAAGTTTTTGGTGACTTTGATGGCATA
+AGGAGGAGGAAATAAGGGGACATTTACTGAAAATCTCTCATGGAATAGCAGATTTGGAGA
+CAGGCATATCTCAAATATGTTAAAATTGAGATGGCTATTTGACATCCAATAAGACATATA
+CGGTATGTAGCAGGACATATGAGTTTAAACTCAAGAGAGGGACCTGGAAGATACTAAATT
+TGGGTGAACGAGCAAATGAATGGTAGATAAAATCATGAGACCAAAATACAGGGTCAGTAT
+AGACAAGAAGAGAAGTTTAACGTCTGATTCCTCAGGCACTGTCATATACAGAGGTCAAGG
+AGGATAGAAAGAAACAGCCAGTTTAAGAGAAACCAGGGTAATGGTTTTCCTGGAAGAAAA
+TGTCTCAAGAAAGACAATGTTTTGTGTGCTATTTATAGACCAAGTAAGATGGAGGCTCTG
+AGTTGTATATTATATTTAGAACTGTGCGACCAGGATGAAAGTGCTAGGTATTTCAATGAA
+GTGATGGGAATGAAAATTGTACTGGAGGAAGTTAAGAAAAACTGGGAGATAAAAACGCAT
+AAGCACAGCCAGGTCATTTTTAAAGAGCTGTCTTTAAAAGGGAAGAAACTAGATGAGTAT
+ATAAAGTCAGGAGTTAGTTTTTTCATTTTGTTTTGTTCTTATTCTGAGGATGTCACAACA
+GGTCTACATTTACTCATCACTGGCTCATTTATTTGCATGTTAAAGTAAATACACACACAC
+ATACACGAACACACACAATCAACATAGCACATCTTTGTAGTAGTGAGATGTTCTTTGCCT
+TAGCCCATCCCATCTGTTCAACTTCTCACCTCGTTCATTCTGTGTTTAAGCAGCACACGA
+ATTTTCCCTTTTGTTTCATTTGTCTCCTCTTGACAATGAATCAGCAAATTACTCACAACT
+GGAAAGGCTTCCATGCTGAAACCATAACAAAGAAAGCAACTCCAATTCTTTTCATCTACT
+GAAGCCCTCAAGCTTGAGTATCTGAAACTTACAAAGTACTTTCTAATAATTATTTCATAC
+CAGAGCGTACGCAGTGAGGTTGGCAGCATACACAGGAGGAGAGAGTGGAGAGCTAACAAG
+ACAGACAAGGTCTCGCAAGAGAAGACAGTGAAAAGCAGTGGTTCATATGTGTTGACTTTC
+TTGTTGTTATTATCAATTACTTGTGCTTTGGCCCTTTTTGGTTCAGCCTTACTACAAGTT
+ATCAGTTTTTTTAATATTTTCAAAAAATCATTTTTTCATTTTGTAAATTGGGTATTATTT
+ATTTTTGTGTGTCATCATTCTCTACTCTTCACTGTATTCTATTGTCTAATTACTTTTACT
+TTAATTCATTATTTTGTTTTCAAATTTCTGGTGGAAATTTAATTATTGACTTTACAAAGT
+ATATCGCCATCCACCATCCCCAGCTTTCTCCCAAATAACATCAAGAACTCACAATGTTAC
+ATTTCTAATTACCCAACTGCCCCATTTCTTGTTATTCTAAGTTTCATATTAACTACTTAA
+GTCTTGCTTATTAATTCTCCAAAATATTTAATATTACCTTTGTTTTCTTAAGTCAATGGT
+AATTTTATTTTTAACTATTTTATTTTTTAACTAAACTCACTTTTATTTATTTACATATCT
+AATTTATTTATTTTTGAGACAGAGTCTTGCTCTGTTACCCAAGCTGGAGTACAGTGGTGC
+AATCACAGCTCTCTATAGCCTTGACCTCCCTAGGCTCAGGTGATTATCCCATCTCAGCCT
+CCTGAGTAGCTAGGAATACATGCATGCACCACCACACCCAGCAAATTTTTTTTTGTAGAG
+ATGAGTTTTTGCCGTGTTGTCCAGACTTTGTCTCAAACTCCTGAGCTCAAGCGATCTGCC
+CGCATCAGCCTCTCATAGTGCTGGGATTACAGGCAAGAGCCACCATGCCTGTCCACAATT
+TTTTTTTTCTTTATTCTACTTCAAAATTCTGAAGTTAAGTTTCTTTCTTCTTCCTGAAGT
+ATAATAACAACATAGTACTTTTGTTGGTGACCACCTAGAATTGGAATGATCTCTACATAT
+CATGTGCAATGTCTTTATTTCCACTGCACACAGTGAACATGGAACTGTAGTTTTGTTTTA
+TACATAAATTGAGCTATTTTCCCTTAGCACTTAGTAACATGGCTGTGCTGGGAAGTCTAG
+TTTCAACCTAGCCATTGTTCCTAGCAGGGAATATGGCTTTTCTCTCTACCTGTCTTTTTC
+TTCTTCTTGCCATTCTACAGTTTCACAACGCTGTGTTGCCAGGTAGATTTATTTTTATCC
+TAATATTTTATGTAAGTAGTAATGTATTTAATCAGCTCCTTAAAAATTATTTGTACCCTA
+ATGTGTCCGGAATTGGTCGGTTCTTGGTCTCGCTGACTTCCAGACTGAAGCTGCGGACCC
+TCGCGGTAAGTGTTACAGTTCTTAGATAAGGTGTGTCTGGAGTTCGTTCCTTCAGATGTG
+TCCAGAGTTTCTTCCTTTGGGTGGGTTCGTGGTCTCGCTCACTTCACAAGTGAAGCTGCA
+GACCTTCGAGGTGAGTGTTACAGCTCTTAAAGGTGGCAGGTCTGGAGCTGTTCATTCCTT
+CCAGTGGGTTCGTGGTCTTGCTGGCCTCAGGAGTGAAACTGCAGAACTTCCCAATGAGTG
+TTACAGCTCATAAAAGTGGCACAGACCCGAAGAGTAGGCAATAGGAAGATTCACTGTGAA
+GAGCCAAAGAACAAAGCTTCCACAGTGCAGAAGCAGACCACACCACGTTGCCATGGCTGG
+CTCTGATGGCCTGCTTTTATTCCCTTATCAGGCCCCACCCACATCCTGCTGATTGGTCCA
+TTTTACAGAGAGCTGATTGGTCCGTTTTACAGAGAACTTATTGGTCCATTTTGACAGAGT
+GCAGACTGGTGCATTTACAATCCTTTAGACACAGAGTGCTGATTGGTGTGTTTAAAATCC
+TTTAGCTAGACACAAAAGTTCTCCAAGTCCCCACCAGATTAGCTAGACACAGAGCGCTGA
+TTGGTGCGTTTAGAAACCTTTAGCTAGACACAGAGTGCTGATTGGTGCGTTTACAACATT
+TAGCTAGACATAGAGTGCTGATTGGTGCATTTACAAACCTTTAGCTAGACAGAAAAGTTC
+TCCAAGTCCCCACCATCCCAGAAGCCCAGCAGGCTTCACCTCTCACTGGCACTTGCCCTC
+GGACTTTGCAGCTCCTAGCTGGGGCACTCTGGCAGCCCAGAGGGAGCTCGTCCCAGACAA
+CCAAGAGGAAAAGAGGGGGAGCGAGAAAGAGACAGAGACCCACCATCGTGGCCAATGACC
+CTGCGAAGAGGGAAAGGCAGTCCACGAACGGGACCCAGCCTCTGATCAAGCCCAGCAGGT
+GCCATCCGACCGTGCCCAGTGTGGTGCCCACCGAGCCTGCACCCACCCGGAACCCAGGCT
+GGCCTGTGAGTGCCATGTGCATGCCTCGCTCCCGCCAGTGCCTCTCCCTCCACACCTCCC
+CCCAAGCAGAGGGAGCCGGCTCCAGCCTTGGCCAGCCCCAGAGAGGGGCCCTCGTAGCAT
+AGCAGCTGGCTGAAGGGCTCCTCGAGTGTGGCCAGAGTGGATGCCGAGGCCGAGGAGGCA
+CCGAGAGCGAGCAAGGGCTGCTAGCACGTTGTCACCTCTCATTACTTATTAGCCGTTATT
+ATTATTATTACTATTTATTATTATTATTTGAGATGGAGTCTTGCTGTGTCACCCAGGCTG
+GAGTGCAGTGGCGCAATCTCAGGTCACTGCAACCTCTGCCTCCTGGGTTCACACAGTTCT
+CCTGCCTCAGCCTCCCGAGTAGCTGGGACTACAGGCACCCGCCACCGTGCCCAGTTAATT
+TTGTTTTTGTATTTTCTAGTAGAGATGGGGTTTCACCATGTTAGCCAGGATGGTCTCAAT
+CTCCTGACCTTGTGATCTGCCCGACTTGGCCTCCCAAAGTGCTGGGATTACAGACGTGAG
+CCACCGCGCCTGGCCACCATTATCTTTATTCACTCTTCCTCAAACTATTAGGTGTATGTT
+GACTATTTTCATTCTCTATTCTTCCTACTTTTTGTCTCCGTGTAGCATCTTTGTAATGTC
+TATATCTTTACCTCTTTTGGTTGAATTCTGGGTAATTTTCTAAAATCTAAAGTTTAACAA
+TTCCCTCTTCAAATAGATATATATATATATACACACACACACACTCATATACATATATAT
+AATATGAGTGTGTGTGTGTACATGCACATGCAAATGCATTCACTACTATATGTTTGGAAG
+TTCTAGTTCTATTTCAAACCATGGTATGCTTTGCTTATAAGGTCAAATGGGGTTTATGTT
+CCTTTACTGAAATTTTCATTGCCTTATATATTTACACATGTTAAACATAATTATTGCATT
+TTTTTTGTTTTTGTTTTTTGATTCTTCATCCATGTTGAGGTTCTTATGATCAAATCCTCC
+TCTGTGGTATTGGTTCGGCTTGCTTACATTCATGGAAGACTTTTTTTCTTATGCTCTCTG
+CATGTTTATTATTACTTTATCTGCAGCAGGTCTTGTTTCTGAAATGAGAGAATTCCCTGA
+CCCTCTTCTGGGACTTGCGACTGGTTGTGGCCCATTTGCTCCAGGAGGGGAGCATGCAGA
+TGGGCAGCTGTAGGAGTTGACGTGGGCGCTTTTGGGCTCCAGCTCCACAGTAGCATCTAG
+GAGTGTGTTACAATTAATGCTGTTTTAGCAGTTGCTGTCAGAAGATGGCTAAGTGTTAAA
+CCAGCTCAGTGGAGAGTCAGGGTGACAGCCCTTTACACACTGCCCTCTTGGTACTCAGGT
+CCTTCCCTAGCATCCAGGAAGAATCAGGTCACACTGACTTAAAGGATGGTGAATGTGGGG
+ATTTTATTGAGTGGTGGAGGTGGCTGTCAGCAGGATGGATGGGGAGCTGGAAAGGGGATG
+GAGTGGGAAGATGATCTTCCCCTGGAGTTCAGCTGTCCTGCGGCCTATCTCCTCTCTCCT
+CTCTGACCATCCCTGGTCGAACTCCTCTAGACATTCATACACTCCTTCTCTTCTCTCCTT
+CTCTTCGTCTGGTAAGTGATATACAAAACCCAGAGATGACATTGTAAATAAAGGTAAGGG
+ACTGAATTCTATCTTCCTAAGATCAGGAACAAGGTGAAAATGTCAGTTTTTGCCACTGAT
+GTTCACTATTGTACTGGAAGTTCTAGCCACAGCAATTACTCAAGAAAATAAAATAAATAG
+CATCCAGACTGGAAAAGAAGTAATACGATATCCTTTGCAGATGCCATAATCTTGTACAGA
+AACTTCTAAGGAATTAATAGAAAAATATTTAAAACTAATGAGGCCAGGCATGGTGGCTCA
+TGCCTGTAATCCCAGCACTTTGGGAGGCTGAGGTGGGCAAATCACTTGAGGTCAGGAGTT
+CAAGACCAGCTTGCCCAACATGGTGAAACCCTATCTACACTAAAAATACAAAAATTAGAT
+GGCCGAAGTGGCACATGCCTGTAATCCCAGCTACTCAGGGGGCTGAGGCTTCTCTTCTCT
+TCTCTGCCGTGTCACTCTGTTGCTCTCCCAGTGGAGCTTGGGATTTATATGGGCATAGGA
+TGGGGTGTGGTGGGCCAGAGTGGTCTTGGAAAAGGCAACATTTGGGCACAAAAACAGGAA
+TGCCTTTCCCCATTTAGGGCCACAGGTTTCAAGGCTTGAGGGTGGGAATTGTCCTTTTCT
+ACCCAGTATTTTCCTGCTTCCTGTCCATATCATTTTCTTTTATGAAAACATCCCAAGTCC
+TGGCTTTTGAAAGACCCTTCAGACTAGCTTTGTGTTTGCTTCTGCCAGGTACACCAAAGC
+TCTCACTGGTCCCAAAACAATTTTACACATAATTTTGCTTTTAGAGAATCCATAGTTTGT
+ATAAATTTACTCTAATTCTGTGTGAAAGACAATCACATGAATGCATGATTCTGTTATTCA
+AAGGACACTTAAAATTTTTTTTGCATGTATTACCCAGGTAGCTTGTTAACCTCCTGGAAT
+AATAGATAGCTTTGTTCTACTGATGGTGCAGGACACATGGTATCTCTGTGAATACAGGAG
+TTACAGTTACAATTCTTGCCATGCAAGTACTCAAGACCTCGTTTTCCATGGATGCTGATC
+AGATGACTTCTGTTATGTTCCCTAAGCCTTACATAACCATATCAGCTCACTTCTAATTGT
+TCTGGTTTTTATTTTCTCTTTATTTCTATCACCTGAGAATTTCCTATTCTTATTATTTTT
+ATTATTTTTGCTGTTGTAACTTACTCAGTGATTCTATGCATCAATTTGCATCTAACACAA
+GTTTCTCTAACATAATTTTTAAATTAATTTTTGTTGTGTAAGGAAACAATTAGATTGGGG
+TAAAAATTAGGGGGATAAATGTTATTACTCAATATGAAATAAATGGTTAAACAATTTCTC
+AAAGTTTCATCCCTTTAGGCAGTTTACATTCAAGGCAATGAGCTTGTTATTTTCTAAGTC
+CTCTGGCACTTAATATAAAAGTAAAGGCATATGTTCCCAGGTTTTAGCCAAATTTTTATA
+ATGGCCAATTTCATCATATTTCCCCTGTCCTTTTTACTTCCTGGACTTGAAAAAATCCAC
+TACCTTGCTGGCAATATGACAGACGACTGGATTGGCTGCTGGAGCAGCTGTATCCATTAT
+TGAATTAACTCCCCTCAGCAATCAACTTCTTAAAGCTCTCCTGAGAGAATAGAAGCTGTA
+AAAGTTGACATGTATTTCAATTTAAGACCACAAATATAAAAGACGTTTTTGTTTGAAGCT
+GCCACTTTGGCCAATAGTAATTTAACAAATTGTTAAGAGAGGGTGTTGTGTTCATGTTTC
+TGGGCAGCTGTTGGACATCAAAGATGTCATTTTTGAAAATCTTTTCCTCTTCTCTTTGTG
+CCTATTATATGTAAAAACTGTTTGGTTTATTCTCATATCCCTCTACCATCTTTTCCTAGC
+AGGGAATATCTTTCAGAGATAATAGGAGCTCCACCTCCAAGAGATGGAGTTATAAGATGT
+ATGTCCGTGTGTGTGTGTGTGTGTGTGTGTCTGTGTGTAGTTCAGATGAATTCAACTGTG
+TGTGTGTGGAGTTCAGATGAATTCAACTGTATTTGTGTATGTGAGTGTGTGTGTGAGTGT
+GTGTGTGTGTCAAGATCTTGATATATTAGCCAGAGCAGAGAATTACAAATAAGTAGTAGA
+GAACTTGCAGGAAGTCCCCATGGGCATTTTGTGTAGTAATCTCAGGTTAAAGGAACACAA
+TTGCTAAAGAAGTATAACAGTTCACATTGAGGTTTTAGACACACTGGTGACTTTTAGCAC
+TCCTTGTGAGTGGCTTATATTGAAAATGGTCATGTATGTGAGCATAGTCAGATGGTAGAA
+TGTTTTCCACTCAAAAAAGAGAAAAATCCACCAGGTGAAATTGAAATTGAGTCTTGAATA
+TTTCGTATTAGGTATGAGGTCTATGTGTTTGTATTTAAATTCCGTAAAAAAAGCACACTA
+ATTACCCAGGAATTATTACTAGTTCCTCAAAGAATGATGAAGGTTAGACTGTTCACTTAT
+AGCTGCAGTTTTTTTACTAGTATAGTACTAGTAAAAACACAAATAATAATAATTATAATC
+TATTTCATGATAAAGTCACCATGGTAAAGATAAAGTAGTTACAGGTCAGCACAGAGCCTG
+CTTGACAGTAGCTGATTAATAGTTATGAGTTGCATTAGCAAGTTGGTAGGCAAATAATGA
+AAAACTTATTGAATGTATAGGTCCCAAATGATGATACAATAGCAGTTTTTATTGTTCAAA
+ATAGGTGCTCAACAAATGTTTGTTGATTAGTTGTATTTCTCTATATAGTGACCTCCCAAG
+CTACCTTGTGCAATGTTTTCTGTCCCTACATCTGTATCTACAGACAAAGTACTGCACCTA
+CAGAAAAAATTCCCGCCCAAGGTGAAAGTCAGTACCATCTATGGACAAGGAAAAGAAAAG
+TTCTTAATTTGTTACTTCAGTGGCCGAATCTCAAGTTGGCTTTACTCACAGTCCATTCTA
+ATGTTGTAGCCCATTTCAGTTTGAATAATTTGGTTATCATTCCCCTTGTGACCAACACCT
+TTGTTTTATTCTATGGTTCCTTTAAACTTGCAAATCAACAGAGAAACTGTCAGCATTATT
+TCTTCTCTAATGCCAAAACCAAAACATCTGGTTTTGTTGTTGTTGTTGCTTTTGAGACAA
+AGTTTTCACTCTTGTTGCCTAGGATGGAGTACAGTGGCACGATCTTGGCTTACTGCAACC
+TCCGCCTTCCATGTTCAAGTGATTCTCCTTCCTCAGCCTCCTGACTAGCTGGGATTACAG
+GCATGTACCACCACGCCCTGCTAATTTTTTTTTTTTTTATATTTTTAGTAGAGATGGGGT
+TTCAGCATGTTGGCCACGCTGCTCTTGAACTCCTGACCTCAGGTGATCCACCTGCCTTGG
+CCCCCAAAGTGCTGGGATTACCAACATGAGCCATCATACCGAGCCCAAAACATCTATTAA
+TAATTACACTGTCTACTATCCTCAGTGAAGGAAACATTAAATATGACTCAATATCTGCCA
+CTGCATGACAAATCTTTAAGGCTATGCTTTTATGATTCAATAAAATAATTGCTTCTAAGG
+TCAACAGTGAGAGTAACAAGCATTAATAAAATCCATTTCTAATTTTACTGAGTCAACAGT
+TTCAACACACATCACTCCCAACCCACAATTCTACCGAGCCTAGTCAATAAAAGAAAATAA
+CAGAATGGTGACAAGGTCGTTGAACCTTCGAAACATGCATTGTTCATAGAAAAATTGTTT
+TTCGGTAGACACAAGGAAGAAAAATTCCGACAGAATCACTCTTGGAGACTGGGTGTGCAT
+ACAAGGAAGAGAAAATAAGAGTTCCTTTACTAGGCTGGATTTCTGATATCCAGAGGTCTT
+TCTGATATGTTCATTTGCTACCTTGAAAAAATAAATAATAATTAGTAAGAGGTGCCATGG
+TGGAGTTCGCCAAGGAAAGGGGAAACCAGAATTGACATCTTTCATTCCCTTACTGTCATG
+TTGAGCTCCTGGTTCTCAAGGAGACTACGCACTCTGTATGATAGTTGGGCATTAAAGGTG
+TGTTGGGGGTGAGGGTGGAGAGGCAACAATAGTCTACATTTTTCAAGGATTACTACAGCA
+CTGGGTAAGTGGGATACAGTTTGCATATGTGATACAGTTTCAAAGGGATGCTGCTTGGAT
+GTATAGCTAGGGGGTTAGATAAAAGAGATGACTGAAAGTAGCAAGAATGGAAAGTATATA
+TGGAATTTGCATATGACTGACCTTAAATGCCATAATGAAACATGTTCAAACAACTAAAAG
+TTAGTGAACATTGTGGAATTTAGCCAACACGTTATTGAGAAAACTGATACTCAACACGAA
+ATAGGGTTCCATACAGGACAGCTGAGAAGCAGTGATCAAAACAAATGAAACCTTTTCTTG
+TTTATGCTTCTTCATATTGAAATTCTTCAGTAAATTGATTAAAAGTTAAAATGTATTCAC
+ATGCTGAAAGTGATAGAAGTAGGATTTAGAAGTCTTATAGATTTATGTGATTGACTTCAT
+GTTGTGGGTTTAGTTATCAAGAAAACAGGAAGCATAGTATCATTTTATTTTTTTAACTAG
+ATATTATTGCAAACAAATAAGCTTCAGTCTGCTGTAACTGTGTCATTTAATGTACTGAAT
+ATTGTCCATATTTTATTAACCAAGGATACATTTCATAATTCTTTCTCCATTTCCTTTCCA
+AAATACTTGATCTGACTGTAATACTATAAGGCAAAAATATTCCCAGGTGATTAATGGAAA
+AGAATCTCAGTACTTTATTTTCATTTCTTACTGTTTTTTTCACCTTGGATTTAAGTGGTG
+ATTTTAATAACTTTTTTTTTTTTTGCTTTTGAATCATAGAAAGGATTTAGCTAGGACTTC
+ATATATTATTGTAAAATATCCAAAAGCCAGATAAAGAACAAGTTGGCAATTCTTTATATA
+TTTACTGAACAAGTATTTATTCACAAGTATAAATACAATGCACTCGATCCTGTGGGACCT
+TCAAAGAATGACAAGAGGTTATACCCCTCATGCTTCATAACAAATTACCACCAACTTAGC
+CACTTAAACCAGTACACATGAATTATCTTACAGTTTTCATGGGATAGGAGTGCAGATAAG
+AGTTAGCTGGTTTCTCTGTTCAAGGTCTCAACCAGGTTTAAATCAAGGTGGGGCTGAGCT
+GTGTTCTTACCTGGGACTTAAGAGTCCTCTTCCAAATCACTGATTGTTGACAGGATTCAG
+TTCCCTCAAGCTGGAGAGCTGTGTTTCCTGTTTTCTTGCTGGCTGTTGGCCAGGGATCAT
+CAACTTCAACTCCTAGAAGCCAGCCTCAGGTCCTAACCACATTTTCTCCTCCTCTTGCAA
+AATGGCAGCTTAGGTTTTCAAGGACAGTAAGAGAATACCTTTCATTTCGAATCTCTCTCT
+CTATCCAGTCTGCTAAGACAGTTTTGAATTACTTAAGAAGGAATTGGCTGTCCCATCATG
+TTCAAATGTCTCACCCATGTTGAAGGAGAGGGAATAATACAGAGTGTGCACATCAGGGGC
+CAGGAATCTTAGGGGTTATATTTTTCTGCCTACTGTACCCGCTCACTAAAATCTTTTCTA
+GCGAAAAGGGAGAATGTTTTCACAAACAGCTATGATACCAAATCTAATCCCACTATTATT
+ATATACTCCCAACATTTTCAAAAAAAAAAATCTGAGTATTAGGACTAAATACTTAGAATG
+TATTAAAATATATACTAAATGTAAGATAGTAAGTTTTGTTTAAAGTTGAGGCTCATGTTT
+ATAATTCGTTGCCTTTTTCTTCAACAGAACATTTAAAATCTCCTGTATATTTCATGGAAT
+TGCAAATATGATGCATGTATTTTGGCAAATGGCTTCTCTCATTTGACATACTATGCACGT
+TATCCATAGTATTCTAATCTATCAATTACTATACCTATAATGCTGCATAGAAAGTTCTTA
+GAAGGAATTGTCATAATATTGACTTTTCTGAAATGTTAAACAGAAATTTCCCCCTCAAAA
+CTACCATTATCAATAATACAATGAATGATAATATATATAACATATATCACATATATGCAT
+CATACATGTATAAGATACCGTGTCATCTTAAAATGTAAGTATTTGTTTAGATAAATTCTC
+AGCACAGGTTAAATGACATAAACAATTTATGGCTGTTTAGATGCATTTCCAAATTGCCTT
+ATCAACGTACTGCATCAATTAGAGACGCACTAGTTGTGCACAGTTAAGAGAATTGATCAA
+TTCCTGGTGTCATTTAATTTTTAAAAAATATTCTTTGCTAAAACTTAATTTTTAAAAATT
+TATTAAATGTCTACATACTATGCATTAAAAAGGATCTAGGAATTCATCTATGTCAATGTT
+GTAATTCAACAGATGAATAACCTTACTTGTCAGGAGGTTCAATGTGACTGTTTAAGGTCA
+TAAATCTAACAGTTGTCAGACAAAGGCTAGAAAAACAGCTCTCACATCCAGCCCATTTCC
+TTTGCATTGCGGAAGTACTTCTCCAGACTTTGGTGGCCCTCGGATAATTTTGTGGGGAGT
+CTTCTTAAAAACACAAAAGTAAGAGGCCCACTCCTACGAAACCAATCTATTTTTATTCTG
+CAGAAGCACGCATTTGATTTTGATGCAAACTATTTGGAGGGCCACTGCTCTCAGCAATCT
+GCTAATAAACGTATTATAAAGAGACAGAATTACCAAAAAAGGTAAGAGAGAGAGAAAAAA
+AATTGACACCAAAGTTTGTAGGCTGCCCTGAGTTTAACCTTAGGATTAATTTAAAATTTT
+ATTTTATTTTTCCTAATGAGTCTGAGACAGACAGACTTAATTTATTTATTGGTCGTCCTT
+GTTTTTAAATACATGAAGAAAATGTAGAGTATTATTATAAAAGTAACACACGTTAGTTAT
+AAAAACTTTCAACACTATAAAAGGATATAAAATGAAAAGAAAAAAAATTCCCTTCCCTAT
+CACTCCAGTGATACTCTACAGAGAGATGCTCTGTGAATAGTCTATCTTTTATTTTTCAGG
+TATTTTTATCTCAATATTTAAGCATAACTCTGAGTGAATTTTTATTATAAATGTCAATAT
+ACCGGCTGGGCGTGGTGGCTCACGCCTGTAATCCTAGCACTTACAGAGGCCAAAGTGGAT
+GGATTGCCTGAGCCCAGGAGTTTGAGACCAGCCTGGGCAACATGGTGAAACCGCGTCTCT
+ACTAAAAATACAAAAAATTAGCTGGGCGAGGTGGTGCGTTCCTATAATCCCAGCTACTTG
+GGAGAGACTGAGGCAGAAGTGCTTGAACTGGCGAGGTGGAGGCTGCAGTGAGCTGAGATT
+GCTCCACTGCACTCCAGCCTGGGCAATAGAGCAAGACACTGTCTCTAAAATAATAATAAT
+AAATAAATAAACCTCAATATACTAACCTACACATAGACCTATATTTTCCAATGGCTGTGT
+AAAGCTTCATTATACGAATGCATCAAAAAGTTTAAATCAGTGCCCTTTAGCAACACGCTT
+AAATATTATTCCTACTTTTTTGCTATTACAAACAATGCTTTGGTGAACACCTCCTTGGAC
+GTTTTCTGTTTTGTCTTTCCATAAATACACGTACAAGTATATCATCATTTTTAAAGATGA
+ATATCTGAAAATGAAAATGCTTATTCATTTAAAATTGCCATTAATGGATGTGCCAGTTTC
+CAATATAGTAGAGCATGAAAGTGCTCTTCTCCTTCATCTTTACCAATATGGAATATGATC
+AATCTCTCCAATATTTATCATTAAGGTAGATAAAATATATTAAGAGGTAACATATATGCC
+GTGCTTACTGTGTGCAAAATTTCTGATGAATTTTTATGAACACTAACTTATTTAATCCTC
+AAAACAACCCAATGAGTTATTCTCTCCATTTTGCAGGTGAGGAAACTGAACTACAGAAAG
+GTTAAGCGAATGGTATGAGATCACAAGACCAGCCAGGTTTTCGAGTTGAGATTTCACACA
+GATTGTCTGATTGTCTGGGTCCAGAGTCCTTGCTTTTAAAAGCAGCACAATAATTAATTG
+AAGGTTCTTAAATGTTAGGATATTACTTAATATTTTATACATTTTATAATAGTTCAATAA
+ATGTAAATTTATTCATCAAATTTGGAATTTCTTTCTTTGAAAATTCTGTTTATGTACTTG
+CCTACCTTTCTATTATTTTTTCAGAGCTATTTCTAACTAAGAAAACTGGAAAGTATGCTC
+TTCTTGTATTATATCTCTTTTTAGTTTGTTTATTAATTATTTATTTATTTGAGACAAAGT
+CTTGCTCTGTCGCCCAAGCTGGAGTGCAACGGAGTGATAGATCTTGGCTCACTGCAAACT
+CTGCCTCCCAGGTTCAAGCGATTCCCCTGCCTCAGCCACCCAGGTAGCTGGGGTTGCAGA
+TGTACCTCCATGCCTGGCTAATTTTTGTATTTTTAGTAGAGACGAGGTTTCGCCATGTTG
+TCCAGGCTGGTCTCGAACTCTGACCTCGAGTGATCCACTTGCCTCGGCCTCCCAAAGTGC
+TGGGATTACAGGCATAAACCACCGCTCCTGGCCTCTTTTTAGTTTGTTTAAATTAATTTT
+CTGCAATACAGTCATTTTAATCTTATTCATGAGTGTTTTCCTCTGGGCTCTGTAAATGGC
+TTTATGTTACAAAGAGACTCACTTATACTTTATCTTAATATTTTAAAAATAATTTCTAAT
+TTGATTATGACATATACATTAAAACATAGATCTGTGGATTTTCATTTCTATTCAACTTTT
+GAAAATGATTATATTAAAATGTTATTAAGGCCGGGCTCAGTGGCTCACACCTGCAATCCC
+AGCACTTTGGAAGGCCGAGGCAAGTGGATCACTTCAGGTTAAAGTTTGAGTCCAGCCTGG
+CCCACATGGTGAAACCCCGTCTCTACTAAAAATACAAAAATTAGCCAGGCATGGTGGTGC
+ATGCCTCTATTACAGCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACTCAGGAGGC
+AGAGGTTGCGGTGAGCCGAGATCCCACCATTGCACTCCAACCTGGGCAACAAGAGTGAAA
+CTCTGTCTCAAAAAAAAAAAAAGTTATTAAAATTTCATTGTGGCCAAATATTGGTGCCAC
+TGAAACCCGAAAGACAATTGATGTAAAATTAGTAATATTTCAATATTATATTTAGTATAA
+ATTGATTTAATTTAATTTACTTTTGTAAGGTGTATTATTGAGACAAAAAGGAAGAAAATA
+CACAGAAATCAATATAGCATTTTAGAGCAGTGGAGTTACGGGCTGTCTTCATTTTCTCTT
+TTATTCTCAACAAACTCTCTCTAATTTTTTGAAATTTCTTTGACTTACCAATTAATTTTG
+CATTGTAATGTAGGTATGGAAAAAAGAGATTACGTTTTTCCTTAGCTTGCATTAAATGTC
+ATAGAAATTATGTACCTATTCTCTGATACATGAGTCTAATACATGAAATAACTCGTTGTT
+TCATAAAATGTCTAAAAACATGAGGACTAGTACTATGCAATTTTGCTGTCAGTTTTTTTT
+TATTTCCTCAAATAGAAATCCTGATTATACAAAGTTTTTAAATAAAATGCCATTTCCTGA
+GAAGGAAAACATAACTAATTGAGAAATTAAGATCATGTAGCAATGCATGGCACAGTGTGG
+AATGCAGCAGTTCTGGCTTCCGACAGGAGACCCAAGCAGATGGTGCACAGTGACAGGGAC
+CTCAGCCTTAACATGTGCTGGCCTAGGGGACAAGCAGCAGGCAATGGAACAATTTAAAAC
+AATGGAGGTAAAACAGTGTGACTTTACATGACCACCAACTATCAAGTTCTATTAAAGATC
+ATTTTTTTATTTAAAAAATGGCAATAGCAATAGATTTTGCTATTCTCAAAAGCAGCAGCT
+CTATTGAAAATGAGGGGAGGCTGTTTTGTTGTTCTGAGAGAATGTTCTTAAAGAATGCGA
+GGATCTCCAAATATTACGTAGGACGTTGTTGTTTTTATATCTTATACATATATATGTACA
+TAGGCATATGGATATACTTTTAAAGGGTGTATACATGAGTAAAGTCTTTGCCTTTTTCCT
+TAACTTGCTTTATTTTCTATATTTTTGTATACCCAAATGACTCCCTCCCCATCTATGTAA
+TTCTGTGTGTGTGTGTGTGTGTCTTTCTGAATTTTGGGATTTTTTTTTCCTAAGTGGCCT
+TATTCAATATCTCCTCTTGTGTGTCATTGAGTCTTAATATTAAATGAGTTATCTGTATCT
+GTGCTAAGGTAAGAATATAAGTCAGAAAATTTAGTGAAATAAAGTAAAGCAAATATTAAT
+AAAATCACTGCCATTTAATTTTTCCGTTTATGCTTATCTGATCAGGCTGTTAAAAGCAAA
+AGTTCTTGTCCAATCTGTATAAATTTCTCTATCACTGGAAAGAATAATGAGACTTTGGAT
+TTACCTGTTTTACAAGAAAAACACTTGGAATATAGAAACCAAATCTCCTGGCTTTAAGCT
+AATGCCATGTCAACCTGATAACAAATGTTCTAGCAGCATAAAGCAACAGCAGTTTATTTG
+TCCGAGGCAATGAAAAAGGTTGCAAATTTTAAATCCCCCACAAACGTCTTCATTCATTAA
+AATGTAGCTATTTTGTGTCGTAAGTCTTTTCAGTGCTGTGTGCCTGAGTTCATTTAAGTC
+AACTTGACATCTGCTTCTGCTTGGAATTAGTCACCAGACTCACTAACTCTAACTGGATTC
+ACTAAAGTAGAAAGTAAGTGGTTCTCTTAGATATGGTGAGATCCTACTCTCCTCCGCTGC
+CCTATCTACAGGGCACAATTGCCCCCGAGTAAGCGAGTATACCCTTTCCAAAGCCTACCC
+TCTTGGAAATATGCAAGTCTACAAGTTAACTGAGTAAAATCATAGCTTTCCCATACGTAA
+GCCAAATCCTGAAACCACATACCATGCCATTTTAAAAGATTTTTTTCTTGTATCCAAATT
+TTCTGAAAATATTGAGATAAGAAAAAATAAATCAGAATAAACAGCATCCAAATAGCAGAC
+AGCTTCCACAGCATCTAGACTAGACTGGTTAAATAAATCCAGGCACTCCCACATTCTTCA
+CCGGTCTGAAAACTTCACTGTGAAGGAGGTCTCCATTCCAAGAAGCACCATTGTATGCTT
+TGGCATAAAAGTTTCCTTGCCTGTAACGATTACCTCCATTGTTTGTCAGTCAACATTATT
+GCTTAACTTCTTTGGAGTTTGGACATTATCACTTCTTTGAGTTGTTTTTAAATGAAGAAG
+CATAATAATAATGAGTCCCAGGATGCAAACTTACATGAAAGTGAAAGTGATTAAGATGGA
+GCAAAAGTTTTGAAAAATGGGAGATGTCAAAGGTAAACTAAACTTATTACTTAAGTTTCC
+TTGACCTGTGCCTATCACTAAAACAGATAATCACCACGCGAGTAGCTAAAAGCACATCTC
+CCACTGCTGATTTTAATACGGGAGCTCTAGCAAATTGAGATCAGGAGAAAAAATGTTGGA
+AATCTGGCTTCATTCCTATTGTGAAGATTAGCACCATAATCTTGGTGTTCTCAAAGAATG
+AAACCTTGTGGTATGATGTAGATCTCAGAGTAACTGAATCTGCTAAGTAACCTTCAAGTC
+ACTTGGAACATGAAGTTCCTTCAAGAAGGCAAGACTGTTAGGAATGTTGATGGAATATGT
+GTTCACACTGGCTTATTAAAATGTAGACCAGAAACTTCTCAAGTGTTCTTCGTACTCTAG
+GGATGGGATAAGGCTACATATTAACTTCTGTTTGTTCTCAAACATCTTATAAATAACATA
+GAAAGCAAGGAAAGCATCCATTATAACTTTCATATGTACAAATCCTAATGGAAACCTGAA
+ACTAATAAAACAAAAAGAGAGTTACAGACTGAAGGGGCATCCTAGCAAGATCCCCAATAA
+CAAGACTGAATGTAGTATCATTGACATTTGTAATGTATCAGTAGAATTCCTGTTGATGAT
+AAAGCCACTAGGAATGGCTTCAACTTGTAGAATATTTGAAGGGTATTCATCCTTACAACT
+TTGGAAAAAATTAAGAAACCTTTTTTTAGATATTCTGCTGTTCTCTGTTCTTAAACATTT
+TAAGCCTTGATCTCACTCTTACGTATCAACAGTTCCTTTTATTTTCTTCCAAAAGGCTTA
+CTTGCAAGACCATAAAATTGACAACAGCTTTGCGCAGAAAAGCCTAACTCTTAGCTCGAG
+ATTAATTAAAAAACAAAAACAAAAAATGAAAACACTGACTTTTAAACCTTAATGTCATAT
+ACTGCCAAACCAGGAACACTTCCACAGACACACACATACATATGTGTATATATTACAATG
+TGCCAGGAATATGGTTAATCCTCCAAGCAATTCAGTGAAATACTGTTGCTCTGAGTCTTC
+TGAGAAACATTTGCCAAGAGAGGATTATACACGCAAGGATTTTGTTAGAGAAAACGCCAG
+TGAAAAAAAATGATTAAAGAGCAGAAGAAGGCTGGAGAACCAACACACAGAAATGCCAGA
+CTGACTCTGAGTGAAAAAGAGAGTAAAAGAAAGTGGAATGAAAGCATACTCAGTACCTTG
+TAGTCTAAGGAAAGCCCAGCCTGGCCTTGGGGAGTTCTCCAGCTAAAGCTGGCCATCAGA
+AAAGTTCCATGTCTTCCAGGACTGAACATACCTAGTATCCTTGCCACACTTGAGGATTTC
+AAATTCCAGTACCTGGGGCCCTTGGGCAGTCACACTCACTGTATTTGGAGGTCCAACGGG
+GAGATAACCGCAAGTCACCCTTGTCTCATGCAGATCTACTTTACACGAGTTTGAGGAGCA
+ATTTCTCTATGGATCCAACGGTCCTTTCCTCTTGAAGTGAACACAGAATGTTAGTGAAAC
+AAACTACAGCTCCTGTCATTGTACTTCATGTCAGAGCATCAACTGATCCTCCTCCCTCCC
+ACATTAGCCATTCTTATATCCTCTCACCCTCAGCTATAACTTTGCAGGTCCTGGTGGCTT
+CCATGTTAGTGTGATCCAAACCTTATATCTGGGAGTATGGAACACCTGATAATCAAAACC
+TTCTCAGTCCAAATTGCTACAGATTTCAATTCGTAGGTGCAATGTGGCAAGTAAGACTAC
+GAAGCCTCCAAATGAATCTCTTGAGATCCACATATTTCTCCCTGACGTCATTGTGTAATA
+GTAACCCTACCTCCTTCTCCTGATCAGGCCTATTATCCATGATGGTGAGGCAGTTCATCT
+TTTCACCTGTTGGTCCTTGAGCAAAAGATGTTCAACGTACCGAGGCCAATCCTAAGTTAT
+AGCTCAATGGGAAGGACTCTTGCTGTGTCCCTTGCAAGTGTTTTCTTTCTTTGAGGGCCA
+TGGCCTCTGTCCCTGGTAGAGCTCAAAGTTGCATATCTGAGTAATACAAGATGTTCCAGT
+AGGTCATAGGGGATGATGGTGAACGTAGCCATTCCTTCTTCAGTGACTTGGTTCCTGGAC
+CCTGCATCCTTCCTATTGAAGAAGTAGCACTATAGAATACTCTCTGATTAAAAATACAGT
+GTATTCTATAAGGTTTGATATCTTTTCAACATGTTCCCTCCACACTGGCACTTCAGCTGT
+GCCTTTAGAAGGCCTTTCCACCATTGTACAGAGCTGGCCATCTCTGGATGGAGGGGTATA
+TGTGATGACAGATGAATCACGTAGTCATAGGCTCAATCCTACAACCCCTTCTCTGGACAA
+AGCCTATGCAGTATGAGATTCCAAGTCTATAAATCATTCATTCCATTAGTCCCTGGGTAA
+TGGTGATAGCTGATGCTTTACAGGCAGGAAAAGTAAACCCATACCTGAAGTAGGTGTCTA
+TCCCAGTGAGGATAAACTACCAGAACTTTTATGAAAGAAAGTACCTGATGCATTCAACTT
+CCTATCAAGGAGTTGGGTGGTCTTCTTGAAGAATGGCTTTATCAGGGGATCAGGGTTGGT
+TTCACTCCTGATGAATCGGACACTCACAAGCAACAATATCTGATATGGTTTGAATTTTTG
+GCCCTGTCCAAATCTCATGTCGAATTGTAATCCCCAGTGTTGGAGGAGGGGCCTGGTAGG
+AGGTGATTGGATCATGGGGGTGGACTTCCACCTTGCTGTTCTCATGATAGTGAGTGAATT
+CGCATGAAATCTGGTTGTTTAAAAGTGTGTGGCACCTCCCCCTTCTCTCTCTTCCTCCTT
+CTCCAGTCATGTAAGATGTGCCTGCTCCTCCTTCCCCTTCTGCCATGACTGTAAGTTTCC
+TGAGGCCTCCTCAGCCATGCTTCCTGTACAGCCTGCAGAATTGTGAGTCAATTAAACTTC
+TTTTCTTTATAAATTACCCCATCTCAGCTAGTTTTATATAGCAATGCAAGAACAGACTAA
+TGCAATATCTAAACCAGCTTTGGAGAATGAGATTCCCCCATGTTAGGTCCATACATAGTC
+TTCCTCTTGCATGGTCACTCTATTTATGTGATTATATTGTCAGTAATGAGGTGGTCAATG
+ATAAAGCCTTGCTAATGTCATTGGCTAAATTGTTTCTTCCTTTGATTGTTCTGTGTTTTT
+CTGTGGGGGAATGCTGGTCTGTGATAACATGTGATAGAAAACTCTTTACACTTTGTGTAC
+ACTCTCACATGTTCACCTAAGTGCCTCTACCCCATATCTCTTTGTTTCTGATATTAGTGT
+CTTTTTTCTTTCAGGCCACTGACCACGTGGCCGGGTCATTGACCACTGCTCAGGAATCTG
+TAGATATTCTCATCTTAGGACATTTACTTTTCATAAAAGGGGATGACCATGGTGCACTGC
+TCACATCTGTGTCCTTTTCATGGCTTTTCAAGGCCACTCCTGAATATAGCTGGCATGCAG
+TGCTGTCCATTTTTGGCTTACATCAGTGCTTCAAGCTGGCCCATCCATAACATAAGCTTA
+ATTTTTACCTCCTTTTTCAGCTGGCCACATAGGACCTCCCTCACACATGACCATAAACGT
+AAGCCAGAGGGGAAGCACTGATGCAACTGTAGTCAGTGATGAGGGATTCTGGGCTAAATA
+TTCATGTCCTCTGTCCCTGCTTAAGCTTGAACCCAGATGCACCATATCCATCTTCAGTGG
+ATTTCTGCTGTGCAAGTCCAGCGTTATGACTTGGAAGGTCTAACAGAATGTATCTCATAA
+TTAGCAATTCCAAGCACACGATCACATTCATGTGAACTGTTCTTATTTTCTTTTCTAATT
+AGAATGAAAAAGAATACAGTCACCAAATCAATGGCCATATACCATGTACCTGAGGCCTTA
+TTAATCTTCTCAAGAAATAGCAGCACATCTGGGACAGCAGAAGCCATCAGTGCTACTATT
+AGGATATAATCTCTGTTCATTCTCCAATACTAATCAAATAGTGAATTAAATGGAAATCTG
+ATAACAACCAGCAACCTTTCGTCCTTTTGGTCTTTAATGGTGGCATCTCTGCCCTTTTTC
+CTAGGATATAATATTGATTTTTTAGTTACCTCTTGGCCAAAGAGAGACAATTTTAGAGGT
+TTCCATTTTTCCTTTCCCATTGCAATATCGCTTACTGAATAAACCAGATGCTCAATATAG
+TGATTGCTCTAATTGCCAAGTACAGAAAAAGTTACTGGGTGTGTTCATAGATCTAGTAGC
+TCTATTGTGAGGTGAATTTTAGTCAGGACTTCAATTATCACATAGTTTTCTTGAGCCTCC
+AATCTAAAAGAGAGCCTGTGATTACTCTTTTGTTCTTTAGGTATTAACATCAACATAGAC
+CTCATGCGCAATAGTCTTTGAAACTTCTTGATGATTGCTATATTGCAAATGTGTCTCCCA
+TGGGTTGTGTGTGGAACACTTATTTCCCAATGCAACAGTGATTGAATATGGGGCTTCAAA
+ATAGGTAATTCGGTCATGAGGAGTCTGCTATCATGAATAGATTAATGTCATTATGAAGAG
+AGTAGGTTAGCTATAAAATTGAGCTCACCCCTCTCTTGCTCTATTGTTCTCACTCTCTGT
+TGCTCTTCCATCTTCCATCATGGGATGAGACAGCAGGAAGGTCCTTGCAAGGAGACAGGA
+GGAAGGTCCTTGCAAGATACTAGAACCATACTCTTGGACTTCCCAGCCTCCAGAATCATG
+AGCCAACTAAATTTCTGTTTATAATAAATAATCCATCCTATGGTATTCTGCTACAGCACC
+ATAAAACAGACTAGGGCAGTGGTGATCCCCCTTTCCTCAATATATACCCACCTGATAAAA
+TGTCTGTAAGTCCTTTGGGAAAGGACTAGGAGAATTGACAGGGTATATTTTTGCCATGAT
+GTTGTATGGTTCTTCTGGTAGGGGTTTATTATTCTCAAGTCTATGGGTTCTGCCTGTGAC
+GTTGTATGGTTCTTCTGGTAGGGGTTTATTATTCTCAAGTCTATGGGTTCTGCCTGTGAA
+TGTTGGTTCAGATCTGACCACTAAGCAATGTATTGTCAGTTTTAATTGAAATGATCACCT
+TCAGCCTTTTGCTCCTCCATTCTTGTCCTTCTATTCCATTATAGATAATTAAGCAGCACT
+TCTGCTGGCTGCCCATTAATTTTCCCCTGTGGACACTGTACTCTATTAATCATTTCCATG
+ACTTTCCTATTCAAGCCACTACTCTCCAATTCAAGCCCTCTTAAGCTGATCCTTAAAGAT
+TGTTATGACAAGTGAAGCCTTCTGCCTTCTGTTGTTTAAATGCCACCACCTGGCTTCTAT
+TACTTTGGGGCTCCATTACTCCCATGGCTATTAAGAAACTTAGACCTGTGACAACCTCTC
+TATACTTTGCCTTGAATCTCCAGAAGAAAACCACCACTTAAATTCTTTGTGATGTTTGTA
+ACTCTCTCACCAGGACATTGCTGGCAGTCTTGATGAATGGCGTGTCCTCTGAGCCCACTC
+ATGGAACATAATTCTCTGGTGAGTATTCTGGTCAAATATAACATATCTATTCTATCATGC
+CCACTTCCTTCTTCCTCTGGGTTGCTTCATCTTCTCTCTGTCAGGGCAACTCAGGCATTC
+CATTTCACTGCGAGTTGGCCATCAATTTATGCAGGCTTTATACGATTTATGCAGGCTTCT
+TCTGGCAATGAGATTACCTGATCACCCAGAAAGTGCCCCCCAGCCACTTCATTCTTGCTT
+ATCCAACTTTAAATTCCAGCCCAATCTGATCAAGGCTCATGCTGGTATATCCAGCTTATG
+CTTGCATTCTTTAGATCTCTTTCTTTCCTTAGCATTTCTTTCTTCTTGTATCATGTCCAA
+AATCTCCCTAGCTACGTTAGCTAGGATTATCTTATATGAGCATTATCTGCCTGGCAGTCA
+GAACAGAAGGTAGAGGAACATCTTAGAGGGCACCTGTTAACCTAGTTTGGAAGATGCTGT
+TGCTGCCTCTTTTAGCACAACAGAAGTACCAGCTCTTATCAGGGAAGGGTAGGTCATCTC
+TAAAAGTCCAGGAGTCTGGGGGAGGAGGGGCAGGTCACACAGTCAAAATCCTCATGGGCA
+TCAAATGTCTTGGTTCAATGTTTCAGAATTCCAGGTTTTCCCACCAGGACCCTGACCTTT
+GCACAATAGACCTGCCTGCCTTCATTGAGTGTCCAAAAGTCTTGGGAGATTTGCAATTCC
+ACTGATTGAGTTGTAAGCTTGTCATTCCACTATATCTGTTCTTTTACTGCAAGAAAGAAC
+ACCCTCTTCATAAGTCATCACAGAGGTCTTTGGTTCTCACACTTAGCCTTAAACTGCTAA
+CGGTCCTCAGTCTTCTTTATTCTTTTGAAGGGCATCAGTACAACCTAGCATCAATACCAC
+TATGCTGTTTTTGTGGACATTGCTTTCCCACGTGTTTTCAAATGCCTGAATGGGCACATC
+AGCCACAGCATTCTCCTCCATGGGAACGTTTTCTCAGGCTACTACCAGGGAAATCCTTAG
+CAATGGAGGCATTACCTTGTGCCAGGTACTATCTGTCCCACCAATGAACCAAGATGGTGT
+CTTCTTTTTTGCTGGGTGGTGAGTGACCAAGTTCAGCATCATCATCTTACTGCATGTCTT
+ATCAGACAGACCACTCTTGGGTCCAGTACCACTTGTGTTAGTCTGGATGCTCTGAAAGTA
+GCCCCCCTCCATGTCGGAATTAAATATGCAATGATTTTATTCAGAGAAAAACCTGTGACA
+GAAATGAGGGGAGGAAGCACCTGAGTAAAGTATTTCAGAGCACAGGACCCTTGATCAATT
+ATGCTCCCTGTAGTTGGATATCTATAAGACACATTCTCATAGTTGCCACAGATATTACAT
+TAATGTCATTATTCCTATGTTACAAATAAGAAAATGAACACAGAGTGATTGAGTCACTTG
+CCTAAAGTCTCAGAAATATCAAACAGAGGACCTGGGAGATATTCCAGCAGTTTTGCTTCA
+GCATCCATAATTTTAACCAGTTTTCTAGGCCCCAAAATAATAAAAACCAGCAGTTCATGT
+CAAAAAGATTGTCCAAAAGGCCCTGTTAGTGACTAAACTGTGCTCTCCCCACTCCCCAAT
+TAATATGATAAAGCCTTAACCCCCAGTGTGATTATATCTGGACATAGAGCCTTTGGAGGA
+GTAAAGGTTACTGAGATCATAAGGGAGTGACTCTAATCTGAAAGGACTGGTGTCTTTACA
+GGAAGAGGAAGACACACCAAGTGGCTGTCTGTCCACAAGCAGATGGAGGAAATACCACGT
+GAGGACACAGCAGGAAGGAAGTTGCCCGGAAGCCGATGAGGGAGGCCTTATCAGAAACCA
+ACCCTGCCTACTCCCTGATCTTGGACTTCCTGCCTCTGGATCTGCAAGAAAACAAATGTC
+CCTTGTGGCCGGGCACTGGGGCTCATGCTTATAATCCCAGCACTTTGGGAGGCCGAGGCA
+GGCAGATCACATGAGGTCAGGACCAGCCTGGCCAACATGGTTAAAGCTTGTCTTACTAAA
+AATACAAAAAAAAGTTAGCCAGGTATGGTGGCATGCACCTGTAGTCCCTGCTACTCAGGG
+AGGCTGAGGCAGGGGAATCACTTGAACCCAGGAGGTGGAGCGGTCCCTGCTACTCAGGGA
+GGCTGAGGCAGGGGAATCACTTGAACCCAGGAGGTGCAGCGGTCATGCGACTGCACTCCA
+GCCTGGGTGACAGAGGGAGATTCCATCTCAAAAAGAAAAAAAAAAGAAACAAAAGAAAAG
+AAAAGAAATATCCCTTGTTGAAGCCACTCAATCTGTGGTACTTTGTTATGGCAGCCCAAG
+CAGACTCGTACAGATCCATCATCAAAAATAAGCAAATCACAACGAAATAAAGAGCCACTA
+ATATAAACGGATGGATAATAGGTAGTTTATGTGATGGTCTTTGTTTCTGAAACAGAAGAA
+CACCTCACACTGATGAGGACCTCCTGGTTGCAGCTGAGGAACACTGCAGGCAGAGGAGAG
+TTCACTGGGGCAGCAATCTCCATCCAACCAACTGTTCTTCCCTCCTGGGAAAACAAACCA
+CAACCCATCATGTGTGCCAGGCAGGCAAAAACTTCCCTGGAAGCCTGGAAATAATCACAC
+CCTGAAATTGGGTTAACTAGGCTGCAATTTCAACAACACTCTTAGTCACACACACTGTTT
+CAATATTTTCTTCAATAAATTGGAGATAACAGAGTTTCAGCGAATATATGCCATTGATAT
+CTATTAATCAAACATTAAGTATTTGCTGGACACCAACTGTCATCCTGGCAGTAAAACAAA
+TCAATTCACTATAAGGATCTGTCTAGTCTTAGGCATTTTAGTTCAATTCTCAGCAAAAAC
+AAATAAACAAAACAAACAAACAAAACAGTAGGCAAGGAAAAGACTCTAGAAATGAATGAC
+TATCTCACTTCTGGTCAGCTCTTCAACCGGTATGGCCAGCAGTCCAAATTAGCACTCTGA
+CCCTACAGGTATCAGTCTTTGAAGAAATATTGATGAAGACACTTGACCTGTGATTCTCTG
+ACACTGAGGGTCAGAGGGGGAATAAGACACCATCACTGCAGAGATGACTTTCAGAAACTA
+GCTATTCATGCCTGAATACATTCATGCTCCTCAGTGTGGGTTCCTTGGACAGTAATTTTC
+AGTAATTCAGTCTGCTTATTCAAAATGTTCTCAACTGAGACATACTACATGTCAGAATAT
+GGACAGAGAGGAAGAAGATGCATTTACAACAAACCACCTTCTCCTCCAACACACTAATCC
+TGTAACTATTATGCACAATAAAAGTATGAGAATTACTGGTAAATATAAATGTAGTAGGAA
+TGAAAGAGGGTGTATCTGGTGAATGAGACAGAGAAGCTGGAGTCTCCAGGTATCCTCCTG
+ATGGTACTAGGTAGTTTGTTCAGGTTTGGATAAGATACAACCAGAGGTTACCAATGTGGG
+GAATGGGGACTTGTAAGAGTCAGTATGTCATCAGGGCCTTTTTTAGGAAAGTCTGAGTTT
+GGAGAGAGAGATTCAGTATCCTCAGGGAAGCTAAGTAAAATTAGAAAACAAAGGCAGAGG
+CAAAATTGCCCCAGAGTCAGAAGATGTACAAAACTCAGTGGGCATTTCTGTTGTGCAGAT
+GTAAGCCCTGACTACTGAATACTATATTTAAGAATTTCAGGCTAATTTAGGTCTCATTTC
+TTGCTAAGGTAAAGCTCTTTGTGTATTCATTACCTTTATTCAGATTGTTTCAATGGATGG
+TGAGGGATAATCTGTTTTTGCTTTGACCACAGCACAATAAAATTAGAAATAAACAACCAA
+AGAATAGCTCAAAATAAAATTACATATGTCTGTGTGTGTGGGTGTATATATATATGTATG
+TGTGTGTATATATATATATGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTA
+TATATATATATATATATATATATATATATTTTTTTTTTTTTTTTTTTTGAGACGGAGTTC
+CCAGGCTGGAGTGCAATGGCACGATCTCAGCTCACTGCAACCTCCCCCTCCCGGGTTCAA
+GCTATTCTCCTGCCTCAGCCTCCCAAGTAGCTGGGATTACAGGCATGCACCACCATGCCT
+GGCTAATTTTGTATTTTTAGTAGAGATGGGGTTTCTCCATGTTGGTCAGGCTGGTCTCGT
+ACTCCTGACCTCAGATGATCTGCCCACCTCAGCCTCCCAAAGTGCTGGGATTACAGGCGT
+GAGCCATTGGGCCAGGCCATGTCTATAATTTTGTAACAAATTGCTAATTAACAATTTTAT
+TGAAGAGGGTGTCTTAAAAGTCATAGACACAGAAATAATTATCAGTGAAAACACTGTATA
+ATAATATTTGTGAGATAGTTCTAAAGAAATGTTTATATATCACTCTAAACATATTTCCTA
+GAAAACATGAAATGTTAAAACTATAGAACTGAGCACTCACATCAAGAACCTGGAAAAAAG
+GAAAAGTAGCAACTACTTTAGTAATAAAGTTAAAGGAAATAATAACTATAAGATCAAGAT
+ATATAAATTAGAGAATTAGAAAATGAATCCAATGATAATATATTGACAACTGGAGTCTTT
+GAAAAGATCAATAAGATATCCAAAGTTTTCACAATATGGAACAAGAAAAAAAATAAATTG
+CAAACAAACAAAATACATTAAGGAGGAGAAGGACAATTATAGATTCAAGGGAGGTTAGTA
+GAATCATAGAGGAAAATATTGATCAAATACACACTCAACTGCCTAGACAAAATTGATGTA
+AATATATTAGACACTGTTTTGTGCAAATGGAAATAGAAACCTCAAAGGAGCACATGGCAT
+TAAATAGTTGAGCAATAAGACTAATGAGAAACATCTTCCATTCTCCCCCGAAGGCCCCTG
+ACCCAAATGACTTCTACCAAAATTTCAAGGAACAGAGAAAGTCAAATCCACTCAATCCAT
+TTTACAAGATGCTTATAAACATAATATCAAAACCATAATAGTTAGACTAAAAGAAAGGAA
+CTATAAGTCCATTTTATTTGTAGCTACACTTTTGCAAATATTAAATATAATATTTCTAAG
+TTATTTATCACATACAAGAGTTGTTAACTAAAATAGTCATAGGTATTGGATTTTATCTGC
+ACGTATTTAACAAAGCATATGATATTTTCTTCTTTAATCTATTCATGTGGTAAGTTACAC
+TTACAGATTGACTTAATTGCTGGGATGTATATTTATCAGAAAATATTTGTTAAGATCCGC
+AAGGAGACGTGTACACAAAAGTCTATGACTCTAATTTTTGCATGTGATATTGATAATCTG
+GAAGCCACACTGTCCATAACTGGAAAAATTGATAAAAGAAAATGGGATGAATGCATACGA
+TGAAAGAGTATGTAGCAGTATGAAGCATCCTGGATAGAAATTCAATACATAGCCTTGAGT
+GATAAAATAAAATAGAATAAAATGTATAGCATAATTTAATACATGTTAAAATACATACGC
+ATATGAATGATACTTCTTTATTAAAGGAGGCATATATAACCAATATAATAATGCATATAT
+TAAGTACCTTATAGAATACGTCTAATGGGAGGAAGGAAGGAAGTTGTTTCCAGTGAACAA
+TGAGAAATAAAATACACAAGGGAAAAATGAAATGGAAAGCCAGCATCTTTATATGAACTA
+ATGAGATGGTGTACTTTGAATTGAGGAGTCTGCAATTTCAAACCTATGCACTTGGGGAGC
+ACCAAATTTTCCAAATAAAAATAAAATAGGAAGAAATGTCATTTTAGACTATGACTCACT
+GCCTTTCCTCTATATATGGTAATTATCCCCACACCTTTAAAGATACATTTTTTAGGCACC
+TTGAATTTCTGTTGGTTCAATGGCAATGTTATATTTTTATGGAAACTGACAGTGAAATTC
+TAAATGTACATTTGAGTGCACAACTGTGATGGGTCAACTTGGATAAGTGCCAACATAGAG
+AGTCTATAGTAGCCAGTAATGCAAAGTGTTGCTGTGAGGGGTTTCAGAGATGTGATTAAC
+ATGTACAGTCAGTTGACTTAGATAAGGAGATTGTCTTCTATAATGTGAGTGGGCCTGATC
+CAATCATTTGAAAGGGCTTACAAGCAGAACTGAAGTTTCCCCAACAAAAAGGAAATTCTG
+CCTCTCAGTGGTTTGCTCCCACCTGAGACTTTCCAGGCTGTTGGCCTACCCTATGAATTT
+CAGACTCTTCCTGCCATACCCCACAAACGCATAAGTCAATTCTATGAAATAAATTTATGT
+GTGTATGTGCACATGTGTCTCTATGTATGTTTGCATCTATGCATCTGTGTGTTTGTGTAT
+GTGTGTGTGTGCACCAATCTCTTACTGATTCTGTTTCTCTGGTGGAATCCTGACTTATAA
+AAACCTCCAAACTTTAATTACCAAAAAGGCAACTATTAAAATTATCAACAAAATGATCAC
+TAATTTCAATATTAATGTCGAATTTGGTATGAAGCTGCACAAATCCCAAAAAAACAAATA
+TAGTCGACATTGAACAATGCAGAGGTTAGGAGCACTGGAGGCCCCACACAGCACACAGTC
+ATAAATCTGTGTATAATTTTTGACTCTTCCGGAGTTTAACTACAAATAGCCTACTGTTAA
+CCAGAATCCTTACCAATAATATAAACAGCTAATTAACACTTATTTTTTGTTATATGTATT
+ATATCTTGTATTTTTACAATAAAGTAAGCTAGAGCAAAGGAAATGAGATTAAGAAATTCA
+TAAGGAAGAGAAAATATATTTACTATTCAATTAGTAGAAGTGAATCATCATAAAGATCTT
+CACCCTCATTATCATCCTTACACTGAGTAGGCTGAGCAAGAGGAAAAGTAAGGGTTGGTC
+TTGCTGCCTCAGGGATAGCATAGGCAGGAAAGGTAGAGGAGGTAGAAGGGAGGTAAGAGA
+GTCAGGCACAGTTCCTATAATTTTACAAAAATATATTGTATTTTCTATCTGATTTTCTGC
+TTTTACATTTCTCTAAAAATGTTTCTATATGGTACCAATCCTTCTTCCATTGTTTGCTTT
+AGTTTCAGTGTCTATATCTTAGAAGGATCCATGTCATAAGAAGTCAAAAGCAGTCTTGAA
+TAATCAAAACCCTTCTGCCAGATTATCTAATATCAATTTGTCAATTTTTTTTTTTTGAGA
+CAGAGTCTTGCTCTGTCACTCAGTCTGGAGTGCAGTGGTATGATCCTGGCTCACTGCAAC
+CTCCTCCTCCCAGGTTCAAGTGATTCTCTTGCCTCAGCCTCCAAAGCAGCTGGAACTACA
+GGCATGTGCCACCACGCCCAACTAATTTTTGTATTTTTAGTAGAGACGGGGTTTTGCCAC
+GTTGGTTAGGCTGGTCTTGAACTCCTGGCTTCAAGCGATCCACCCACCTTGGCTTCCCAA
+AGTGCTGGGACTACAGGTGTGAGCCACTGTGCCCGGTCCTGGCACTGCTTTTTAAATTTC
+TTCTTCCTCATTGTCTGATACTGGTTCAGATGCACTCATCTCCGTCAAGTCTACCTCTGT
+TAATTCCTATGATGTGGTGTCTATTAGCTCTTGAATTTCTCTAAGATCCATATCTTGAAA
+GCCTTCCATCTACTTTTTTTTTCTGCCATATCCACAATCTCTCTAATAATTTCCTTGATT
+GATGCTGTTGTAAATCTCGTTACTCAGTTTCTCCAGCAGGAATTCATTGTGTAGGGCTTG
+ATGGCTTTTGCATCTTTTTCTGTAGCAACAGTGGCATCTCCAATGGGGTAATCCTTCCAG
+ACTTTTATGATGTTCTCTCTTTATTGGAGTTCTCTTCCATGACGTTGATAATCCTTCCCA
+AAGAGTATCATGTGTAATGAGCATTAAAATCTTTATGACCCCCTATCTAGAAGCTGAACT
+AGAGATATATTTGGGACTAGAAGACCACTTTGATACCTTCAGTGTTGAACTGTTGGGGTT
+CTGCCTGGCCAGGGGCATTGTCCAATATCAAAAGAACCTCAAAAGGCAATCCCTTACTGG
+CATGGTACTTCCGGACTTCAGGGAGAAAGCATCAGTGAAACTAACCCAGAAAAAGGATTT
+TTATTGTCCAGGCCTTCTTGTACAACCAAAAAGTCTGGCAGCTGGTTTATCTTTCCCCTT
+GAAGTCTCAAGGGGTGAGCAGCTTTACAGATAAGAGTAGTCCTAATCATAAACCCGACTG
+CATTTGCAGAAAACAGTAGAGTGAGCCTATGACTTTCTGACTTAAATTCTGGTGCTCCCT
+TTTCTTCTTTACTAATAAATGTCCTTTGCATTTTTTTTTTCCAGAATAAGGAACTTTTAT
+CGTTAAAAACCTGTTCAGGCAGATATCCTTTATCTTCAATGATTTTCTTAATGGCATCTG
+GGAACTTCTTTGCTGGCTCTTGGTCAGCAGAAGCTGCTTCCCCTGTTATCTTGACTTTTC
+TTTAAGCCAAACATTTTTCTAAAATTATCACGTTATCCTTTCCTGGCATTAAATTCCCCA
+GCTTTAGATCCTTCACTTCCTTTTGCTTTAAGTTGTCATATAATGGCTTCAATTTTTCAC
+AAATCTTATTAGTCTATAGGTATCCCTTTTTATAGCAATCCTGCACCCACATAAAAGCTG
+CATTTGGACACAAGATAAAAATGCATTTCGCAAACAGTGCAAGGTTTTTGCACCTGCTAG
+CATAGCAGCAGCAATGGCTTCATGAATTTCCTTTTCTCTTTTTTACAAAGGTCCTTACGT
+GGGATCCATTTATCTTGAAATGGCAGGTAACCACAGCTGCAGACCTCAATCCGTGGTGCC
+CATCAAGCACTGCAACTTTTTCTTATAATGTCATGACTTTTCTCTGCTTTTGGGAAGCAC
+TTCCAGCATCATTAGTCACACTTTGTATGGCTCCCATGGTGTTATTCAAGGTTACGATAT
+TGCACTAAACACAATGAAAAATACCTGAGAACTATAAGAGACCACTTTTACTGTGATAGT
+CAATTTGCTGGAAAGATAAACTACTCACGCAGAGATGATTGGCTTCACTAGGCGTTTTAA
+GCAGACACTCACAACGTTTTAAGCAGATACAACACTTGAGCTCACCACACTAGCAACAAG
+AGATGGCTACAAATTATTACAGTGGATGCACTACAATGAAGTTTATGCGGTTATGATTTA
+ATACTGCATCTTTATGTTTGTCTACATTTCTCTCTGCTGCAAATGGCGCCATATACAAGT
+CTGTGTTTGTGTGCATAAGTTTTCATAAAGTTTTACTTTTTATAATAGATTTCTGTATGT
+TTTGTGGTAGTAAATGACATAACAGATAAGTATCTACATATATTTTATGCATCCATGACA
+TACATAATATATTCTTCATTTTTAAGATATTTCTAGGCTATGCTGTTTGTCTATGAGTTT
+TTTTCAAATTGTCACAAATCTCCACAAAATTTTGCAATATGGTTATTGAAAAAAACTTGC
+ATATAAATGAACCTTCAAAGCTCAAAGCCATGTTGTTCAAGGGTCACCTATAGGCTCTTT
+TGATTGATTTCATTTCTACTACGAATCAAATATGTTTTGAATTTCTGACTTTGCTGTAGG
+AAGGCGATTTTATGTATGAGTCTGTACTCAGAGATTTACCTCATTTTATGAAAATTATCT
+CTTCATATTCTCAAAAGTTAGGTATTGACACCCATCTTCAGAGATGCAAGTATGTGCAGA
+GAGTCAGGAAAATTTCAGGTAGGCAATTGTTAAGCTTATGTGGGAACAATAATTTTTTAT
+TAACAGCAAAAATTTTCTTAATTTTTGTCTATTTGTGAACTGCTTGCTTTCACATTCAGT
+AATCAGCCAGTAACTCCTTCATTTTGGTATGCTCTGTTTTCAGATGTGTTGAAAGCCTTA
+GTTTTTCTTTTTCATTGTAATTTCAAAATATTTGTTCAACTCTCTCAGCAAAACAATTCT
+TCCTTTACTACCCCTTGGGGAGACTGGACCAAACTGTCACTAGTTCTTTCTTTGAAATGT
+CAATTTTGCTGTTTGAATAGTTAAGCCATCATGGAGGAGGTCAGAAAAAGAAAAGCATCC
+ACTAACTTTATTCTTTTGTCATTCTCTTCTGCCCCTCTTTCTGCTCCCGCTTATGGTGTA
+GTTTCTATGTCTGGGTGCATCTGTGTGGCTGGGAATTGGCTAGACTTTAGAACTGTTGAC
+TGTCCCTGCCTGGTGCCCTGGTGTCACCTGTATCATCTTTGCCCCTGGCCACGGAAGATG
+GAGCGCCTCTGTTTCTCCCAGTACTTCCAGTTCTTTATGAGCTTACCTTCTCCACTCGTT
+CCAGTTAAAAGTCAGTCTGATCGACTTTCCTTGGAGGTCACTCTCTGTACCTCTTTCTCC
+TTCAGCCACTTGAACCTTCTGTTCTTCTCTTTGACAGAGAAGAAAATGTGTTTACTATAA
+ATATTACACATTCGGAAACAAAATATTTTGAATACACATTCGTTTCTGAATGCACACATC
+TATCATCTCCCCTAAACAGATCTTGAGATGTAGGTAAGGGGAAACTAAAACTTAGATAAC
+AAATACAATAGTAACAGAAATAAAATATTTTCTTCACTGGATCATATAAAGGAAAATACA
+GACCTTGTTTGTTTTGTAGTCTTGAACAAATTACTTAACTGAGCATCATCAGTAAAATGG
+AAATGATATCCATCTTGCAGAATAATTTAATGATTATATATGTAAAGTGCCTGCTGCATG
+TTTAACCAATGGTAGCTTGTTAATACTAAAGTATTACTAACTTTCCTTCCAGAAAGGACT
+TAAGTACGTCATCACAATTTATTATCTCTTCTCTGTGATCTACAAACCAGAATCACAAGA
+TGGGCTGAGGATCTCACCTCTATCCTCCTTAAAATTACTTCCCTACCCATGCTGCATTAG
+TCTGTTTTCATGCCACTGATAAAGACATTCCTGAGGCTGAGCAATTTACAAAAGAAAGAG
+GTTTATTGGATTTACAGTTCCACATGTCTGGGGAGGCTTTATAATCATGGCAGAAGGCAA
+GGAGTAGCAAATCACATCTTACACAGATGGCAGCAGGAAAAAAAAAAGCTTGTGCAGAAA
+AACTCCCATTTTTTAAAACCATCAGATCTCATGAGACCCATTCATTATCACAAGAACAGC
+ATGGGAAAGACCCCACCCCCATGATTCAATCATCTCCCACCAGGTCCCTCCCACAACATG
+TGTGAATTATGGGAGCTACAAGATGAGATTTGAGTGGGGTCACAGAGCCAAACTATGTTG
+CATGGCTTCATGAAGCCTTAATATTAGGGCATCTTTTTTCCTTGCAAGTTGTTCAAGTCT
+CTTGACCCTGTAATATCAAAATGAAAACATCATTGCTGTCTTCCCCAGGAGTCTCATTCA
+ATTTGGACTTTCATATAAAATTGTCAATGTGTGAATACAAATTAGGCAACCCCCTGCCCC
+TTAGAGAAGAGAGAAATGTATTTTTGTCTATTCTTTACAAAGATTTTAAGCTGATTTAGC
+TGGAGAGGTCAATTTGTGACTGATTGTATTCAACATAGCCAGCAACTTATATATTTGGGA
+TGTATTTAGTTTGAGGATCTGCCTTTGATTTTTTTCATTGAATTGAAAGACACATATGTA
+GTTGAGCTTCTGCTGACTTTTTTTTTTCTTAACCCAACTAAGTGCTACCTAGATGGCAAA
+GAGATCCAGCAACAGAATTCAGAAGAAGAAATGAAGTAAAAACACAGAGCTAGACCCAGA
+ACCCATACTACGGACTTGACCTTCAGGCACCTGCTGCTACACAGAATGCATCACAATTAA
+TTGGAGGAATAGCAAGACAACCAATGAGCAGAGGGCTGGACCTCACTCATTCATAGAGGC
+CTTGGCCTTTTCAAAACCTGTCCCTCCTCCACAGCCTCTGAGATTGGTGGGATGGGAACC
+CAAGAAAGGAGAGGACTTGTTCAGAGCATGCCAAGCCCCTCCATTTTAAGCACTTCTCAC
+TAATTTCAAACATAGAAAATGAGAAGAGTTACAGAATCAGTACTAGATGGCAACAAGGTG
+GTTGGGACCCAGCCAAGAAGGGAGATTTGACACAGAAGACTTGAAAGCAGTGATTGAAAT
+AACAGTAAAATGTTGCATGTCTGTATCCCCAAAGTAGTTTAGATGCCACCATAAGCCAAT
+TGACTGTATGATCACTTCTATTTATTCTCATAAATACTACGTACCAATATGGATAGTACT
+TTCATGCAGGATCCAAAAATATTTAAAAACTACAATTATATTTACATAAAATAGGCATAA
+GTTAGGTTAGACTGAAATAGATCAATATTTTTAGACCAGTTACATTTAGATGGTAAAATA
+TTTATGTGATTTTTTGTCTTTTTCTCCATTGATCACTTATTCAATAAAGTGTTTGTGTAG
+TTTGTAAATTAAAATATAATTTTATAAACCATAAGGATGACTTAAAATTATTTATTCCTA
+TCTCTCACCTAAGTTTTCATCTAATTGACATAAAATCTCTATCCTTCCCTTCTCACTCAA
+ATTCCTTACCTTTGTTCTCTCTGCTTTTCCACTTGGCATCTCCCATTCAGCCTTCAACCC
+TAGCTTTTACCCTTGAAATTGTACACAGTCTATTCTTATGAAGATAAAAGTCTTACCCTC
+CTCAAACTGATCTCATGCACAACCATAAGAATGATCATCTTAAAACTAATATCTTATTAC
+ATCCACTCTTCCTTTCAAAAATCTGTCAATGGCTTAGCTTCCCATTGCCCATGTTACGAA
+GAACTCATTTTTGCATTTAAATTAAAGCCTTTCTTTCTCCCCTGCTCTGCTCTTAATCAT
+TCTTTCACTCCCATTTACTTTTATCTCTTTTCTGCCTGTCTCTCTAGCCTCACCTCTCAA
+CTCATCTTTTCTTCAAAATTTACACCCCAATGACACTAGTATGATTACAGCTCCCTACAA
+ACATAATCTGATTGTTTCTTCTTCATTTCTTTTAGGCTTGCAAAATATTTCCCCTCTTTC
+TGGGAAGGGCCTCACCCTTCTCTCGCCTCCAAGATTCCTGCATTCTTGTTGAGTATTGAG
+CTCATCCGGGAGGCCTGTCCTGAGACTCAGAGGATTGTTGAAGTGTTCTTTCTTTGTGCT
+CCCATTTCCTCATTAAAACTGTTATGGAATTGTCATTTTTTTGTTTGTTTACCTACGTCC
+ACCACTAAACAATGATAAGTTTGGGAGCAGAGATAACGTCTTGTTCCCTTTTGTATCTCC
+GGTGTTTAGACTATTGCCTGGCACGTAATATGATTTTAGTTTTTAAAATGAAAGAATTAA
+ATCATTAAACTACATTTATAGTATGCATTTATTCCAACTACTATAAATTTGGTTGAGCAC
+TATCATATAGCTCATAGATTGAATGCTTATCCACAAACGATGTCATGATAAATTTTATTA
+GATGCTTTGTTATGCAAAAAGGAAAACACACATTGATTATACCATTCTCTTAGGGGCCAC
+ATTAGAAATGATGTTGAGAGAGGAAATGACATGTGTCTGTTATGCTCCCATATATGGCCT
+GAGTTGGACACACTCACATGAGACACGATGCGTTGACCTGAACCAAGTACAGAAGACGGA
+TCATCTTTTGCCACCTCTCTCCCCTTTTCAGACAGTCCATTTCTGACATGGTTAGTTCTA
+CTGTCCCAGTTTACAGATTCCTCTCCCATTCTCTTGGAAATGACTTAATCACAAAAGAAA
+CTTAATAATGGCAACTTCTCAAGCCATGAAAAATGGCCCTCAGAATAGTTCACCTTTTTT
+TTTTATTATACTTTAAGTTTTAGGGTACATGTGCACAACGTGCAGGTTTGTTACATATGT
+ATACATGTGCCATGATGGTGTGCTGCACCCATTAACTCGTCATTTAGCATTAGGTATATC
+TCCTAATGCTATAAAAAAAAAAAAGAATTGTTCACCTTAGTCATTAAATAAGGGCATACT
+TATCCACCAACTCTCCTTTCTCTTTGGTCAAGGGTTTTTTTTTTTTTACTTCCTGGTTTG
+TCTCACCTCAGAATGCCTGAGTAGGTCCCTATAGGCACCTATGTGGGAGCAGCAGAGAAT
+TCCCAGGGCAAAAAGTAGGAAATACGTGATACAGCTGAGGCATAGTATGTGAGGTTGCAT
+TTGCATAGTGGCGGTCAGACCAAACATAGAATAACAAGGTGGACGAGCAAAGATGACCCA
+GGTACAAAAAGTGTCTAATGTAAGCAGTAATAATAGCAGCATTTCTGCTTTTCAGTGGGT
+AAATGAATGAGATGCTCAGCCTCCCCAGGGCAAGAGAGGGAAAAGGGGAGCATTGTAGAT
+GAAATAATCATTGAGTTGTACAAAATACCAGCTTCAGCCTCAATGAATTACTATAGTACA
+GAATGAAATGCTTTGGCAAAGTCAATGAATAAAAAGGAGAGATTATTCTATTTCCCTTCC
+TTGGCATCTTACTTACAGGAATAATTTCATTCTGACTCTGTGTAATGAGGTTTATGACCC
+TGGGCAAGTGAGTGACTTGGCTGGGCTCCAATTTCTTCATTTATAAAATGAGATGATCAC
+TGAGTTCCATTAGAGCTCTAACATTAAGATTTTATGAATCTATGTGCACACAATATACTA
+GAGTTTAAACTCTGAATTTCCAGAACTATGCAAGTCTGTATTATTGCACATGACTGTTCT
+AATGGATTCTCTACATTTTCCCAGTGCTTGGAGATCCCACTGCATTTTGGTTTTTCTTCT
+TCTGTGTGCTGATTATAATGATATATTAATTGCTCTGGAATTTCCTATTTATAGAAAGAA
+AAGCCTCTGAAGAATGCATTCAGGAAAAGTGGTTTATATGGATTATATGAAAATCTTAGC
+ATGTATGCCTTTGGAAATACTCACCTATAACTGCCCATTTAATGACTAATTTCCAGAGCT
+TTCTCATCAGAATTACAAATAACACTGAATGCTTTCCCGTGGCCTCCAGGTTGCATATGG
+TCTGAGAGACTAACTCTGCTTCCTCTCCTCCTTCCACTCTCCCTCCCTTCCCTAATTCTA
+GCCACACTGGCTCATTTTCTGCACCTTGATCACATTTAGGCTTTCTGCCTTAGTCTTAAA
+ATCATGTTCTTCCTGCTTGGACTCTTCTGTTTGTCTGTATCATCCCTTCTTCTCCTGATT
+CATCTCTCAGAGCAAACATCGCATCCCTGGAGATGCCTGCCTGAGACATCCAGTCTAAAT
+TTGCTCCAGCCACACTCTATTGCTTCATTTTATGTTCCTTTTCAGAATTATTATTGTATT
+TTTTAAGTTTATGTGTAGTAATATATTTATTTCTCTGATCCTCATAAATGGTAAATTTCA
+TTCTACCTTGAATCCTGAGTTCCCAGGAGAATATCTACAACATAATAAATGTAGGATTTA
+TTTGTTGGCGAAATTAAATAACCACTGAGTGGTACATGGGTCAACATTCAAACGAAAAAG
+AACAAATACAGAGCTTGAAACTAGAATTCTTGTTTCAATTCTGTCTCTCATGTGATAGTA
+TATAACCTGGGAATAATAAGTACTGTTTACTTCACAGGTTGTTGCTTATGTTTAGACTTT
+ATATATAGTTACCTGAAATCTCTACCTTCGAGAATATTCGAGAAGAATCCATTCATTCTG
+TCATGTTTTATGTTACAGTGTGAATCTTCATCACTATTAGCTGTGAAAACTTGTGCAAGT
+TACTTAGCTCCCCTCAATTTCCTTACCTACGAAACTATGGTAATGACAGTACCTACCTCA
+GCTGTTAGATTCAGAGTACTTCGGAAATACCTGACACATTGTAACCACTTTATAAGTGTG
+TTACTTGTTTTCATTGTGTGTCAGCTTCTTTTCCTATTAATAACTCTGATTTAAGCTTAA
+TCATCCTCTGAGGCAGCACTCAAATGCCAGGTCTTCTGTAAAGCCTTTACTTATATCCCT
+GTTTGCCTATTCCTTCCCTACTACATTACACAGAACATTAGTGATTTCTTACATTTCATT
+CCCTAGTCAACACTTTAAAACTTGCTTGCTTATTTATTTTCTTTCATAATATAAACTAAA
+GGATCATCATGAATTTCTCTAGTACATTCATTCAATTCTAGTACATTTCTAGGCCATTAT
+TTTGTGGATAAATGTATATTTCCGCAAATAGATGGAATTCTCACTGTCTCAATTTATTTA
+AAATATTCATTTAAAACATTTGAATAAAACAATTTTCTTTTGTAAGCATCATTGGTCATG
+AATAGAAGGAAAATCAATTTTTAAAAATAGATTTGAGAAAATATTTTTAAGTCAATTGCC
+TTTTGATTTCAAAATACTTCAAAAGGTTCATTCTTCTTGGACTATAATTTATTTACTAAA
+ATTCAAAATGAGATATCTGAGAAAAAAGTTATTGCATTAAATAAGAAAAAGCCTGTATTT
+TCAGTCCCAAATGGATGTATATCTGCTATTTTATCAGAAGATTTGCAATTTTAAAATAAA
+TTCAAAAGCTTCCACCATATTTCTTGGTAAAACTAAAATAGTTATATCCAACAATGAAGT
+GCAGAGGCAAATACTATACACAAATCATAATTTTCATGTATTTTTTCAGTTATAGTCCAC
+AGTGCTAATTATTTTATTTTTATACTTGTGCTTTCTTTCTTTCTTTTCTTATTTATTTGT
+TTATTTTTTTGTTTTTTTAGACAGCTTCACTCTGTCACCTGGGCTTCAGTGCAGTGGTGT
+GAGCTTGGCTCACTGAAATTTCAAACTCCAAGGCTCAAGCAATCCTCCTGCCTCAGCCTC
+CAGAGTAGCTGGGACCACAGACATGTGACACCACAACTGGCTAATTTTTATATTTTTTTG
+TAGAGATGGGGTGTTTCCATGTTACCCAGGCTTGTCTCGAACTCTTATGCTCAAGCACTT
+CACCCACCTCAGCCTCCCAAAGTGCTGGGATTACAGACGTGAGCCACTGGGCTCAGCAAA
+TTTTTCCTAAATGTATTTAGAAGTTGAACAAGCATAATTATTTTATTTATTTCTAGTCAG
+TCATCTTTTCTATTTCCTGTAATAACTGATCAAAAATCCTCTATCCATCACCCCAAGACC
+CCAGGTATACACATGCAGGATCTTCATCTGCAGATAAAATCTGATATGAGCTTTTTGATT
+TCTTTCTGCCTCCAGTCATAAAACTCTTGGTACTCATTTACATTTACTTCCTTTCATTCT
+GTGTAAAATGAAAGCATCCAGTTTCAAGCTCAATCCCTTCCTGTGCTTGACTGATTGGAG
+TAAAAAGACTATTAGATATACTTCATTTAGATACACAGTACCTGAACATAAATCCCTGAA
+CCTAATTTCGCTCACTTAGTAATCACAGGCCAATGGGTTATTGAATTAGCAATGTACACA
+GGAAAGTCCTAAATAAATTGATTGTTTTCTTCTGCTTTCTTTTCCCTCTTAAATTCAAAA
+CTCTCTAAGACCTCAATTGTCTTTTTCTCTTAGTATCTGTTCAATGATGGATGATTCCTT
+TTTCTTCTGTTCCTCTCTAATATATTCAATCTCTCATTTTTAAATTTTCATCTTGTCTGT
+ATTCAAATTATGCCCCTACCAAAAACACACACATAAAGAAGGAAACTATACCAAATTGCT
+TAAGATCAGTGATGAAGAGAAAACCTTAAAGCAAACAGAAAAAAACTGAATTATATGCAA
+AGGAACAAAAACACACATGAGAGTAGTTTCTTGTAGAAATAAGACCAACCAGAAGATGGT
+GAAGCAAAACCTTAAAAGGAATGAAAGAAAAAATTTCAACCGACATAATAATGTACATTT
+GACCAAATTAAATTCAAAACCAAAGGCAAAGACAAAAACTTTCTAAGAACAAGAAAATGG
+AAATAATTCAGCAGTAGCAGACCTGCACTGTAAGATATATTTAAAAAAAAAGAAAAGTCC
+TTCAGGAAGAAGAAAAGTGACAGCCCCTGGAAATCCAAATTTACAACAAGAAAAGAAGAG
+CACTAGAAATTGTCACTATGTGAATAAATAGAATTTTTTCTCACTAATTAAATCTCTTTA
+AATAATAATTGATTGTTTAAGGCAAAAATTGTAACAATGAATTGTGAGTTTTGTAACATT
+CATCAGAAGTAAAATGTATAAGCAAAAAAAATCACAAAGAAGAAAGAGATAAGCAGGAGT
+ATATTCTTGTAAAGTTCACAGGGAAGTGGTATCATATCACTTTATGGTAGACTGGAGTAA
+GTTAAAGATGTATGCTGTAAACCCTAAAGAAAAAGAAATCACTAATATAATACAATAAAG
+AGTTATGGTTCAAAAGCCAATGGAGCACGTATAATAGAACCATAAAAATACTCAGTGAGT
+TCAAAAGATGTCAGCAAAGAGGGAAAATTGAACAATGAACACTGGAGAAAAATAGGAAAC
+AAATAGTAGAATGACATACTTAAGTTCAAGTATATCAAAATTCACATGACATATAAATGC
+TCTACTGACTCCAATGAAAATACAGAGATTTTCAGATTGGAGAAGAAAGCAGGACCCAAC
+TATTAACTGCCAACAAGAATCCAAAATCCATTTTAAATATAAAGACACAGAAAGTTAAAA
+ATAAAAGATGGAAAAAGATGCAGTATGTTAACACTAATCCAAAATAATCTAGAGTGGCTG
+TAGCAATATCACACAACATATATTACCCAGCAAAGAGTATGAACAGAGATAAAGAAGGTC
+ATTTCAAAACGATAAAGGGGTCAACGCATCAAGACAACATAAAGTCCCGTGTTTATGAAC
+CTAATAACAGAGCTTCAACATTCATGAAGCAAAAACTGATAGACCTGAAAGAGGAAATAG
+AAGAATCCACAATTATAGTTGGAAACTTCAACAACCCTTTCTCTATAATTGATAGGACAA
+ATAGACAGAAAATCATTAAGAACATAGAAATATTGGCCAATATTATCAACCTACTTGACC
+ACCCCGCAGTTATGCAGACTACCCACCTTTTCAAGTATATTGGAACATTTAAGACAGTGT
+TTCATGAAAGAACTGCCAACAAATCTAAAAGAAAGAAACATTTTCCAGACTAACTTTCTC
+TAAGAAAAAAAATAATTTATTCCTGGCCACTTATTGCACAATATTTTCAAACGTTTGCCT
+TAGATCATAACAGTTTTTCATGTCAACACTTACAAGTTCGTATCAAAATTTCTCTGCTCT
+TTTCACCATTGCCCTCTGTCCAAATTGCTGTCCACCTCCTTTGTGCTACCTTGGAACTTT
+GCCCATAACCGTGTCATAAAACTTTGCCTGTTGGAATCAGCTAGACTGTGAATTACCCTC
+AAGCCTCATTTCTTTTTTATGGTAAAACCTATGCTGACTTCTCAGTCTTCATCTTACTCT
+AACTCTCAGCAGCATTTGACAAGATTGATTCTCCTTGTTTTTTGAAACGCTTTCTGTCCA
+GCTAGCTGTCATGACATCATCACATGCTCTCAACTTTTCTACAACTGCTCTGGTCTCTGC
+TTATCCGCCTCTCTCTGGTCCAGGTGAACCTCCCCTGCTGGATTCATGCTGCTGGGTATG
+AGAGTCCTGCATGAGGTATGAGAGTCCTTTAAGTATGTTCTATTTTATTCACTCTCATCT
+TTCTTTAATATCTCTTCCAGTTCCGTGGCTTTACAAACCATTTGCATGCTGACAGACCCC
+AAATTTCTTTTTTTTTCCTTTCAAGAGTGAGACTCCCTTCACTAGAAAGAAAAATAAAAA
+TTTTTAAAAACACCAAATGTTTATCTTCAGCACACACATCTCCCTGAACCCCAGCCTCTG
+ACATCTATCTGCCTACTTGCCATTTCCACTGGCATGTCCCAGTCCTAGCCTGTCCCAACA
+TGAGCCCTGAGTCTTCTCTTCTCTCAAACCTTCTCCTAGCACAGGCTTTCACATTTCATT
+AAAGGTAATTCCATTCCTGCAGTTGTTCAGGCTAAAATCCCTGGAGTCATTTCCAGCTCT
+GTTCATTTGTCTCCTGTAATATAGCCAGTCCCTTAGCAAGTTCTCTGACCCCTGTCTTCA
+GAATCTATGCAGAGCTCACACCTACTCCACTGTCACCACCCTGGCCCAAACCACCGTTCT
+CTCTTACCCGGATTGTCATAGAGGCTTCTCAACCTGTCTTCTAACTGATGCCCTCACTCT
+CTTCAGCCTGTGCTCAACATGGCAGGTCATGTGAGCCTGTGATTCAAAATCTGCTCATGG
+CTTCACATTACACTCGGATAAAAGGTAAGCCTATTGCAAAAGTCTAGGGTCTTTCAGGGT
+TTCACACCCCACCTCCAGCTCATTACCTTTACTCTTCCTCTGTGTATCGCTCTGATACAC
+TAGAGCTTCCTCACTGCTGTTCAAATATCCCAGGCAAAATCCTTTATACTTGCTATTCCT
+TCTGCCTAGATACAAGGGTGTCCAATCTTTTGGCTTCCCTGGGCTACAGTGGAAGAAAAA
+GAATGTCTTGGGCCACACACAGAATACACTAATGATAGCTGATGAGCTAAAAAGAAAAAA
+AAATCACAAAAAAAATCTCGTAATGTTTTAAGAAAGTTTATGGATTTGAGTTGGGCCATA
+TTCAAAGCTGTCCTGGGAAACATACAGCCCATGGACCTTGGGTTGGACAAGCTTGGCCTA
+GAACATTCTACTCCCAATTATCCGCATGGTTCATTATCTCACTGCTGCCAAATGTTGACT
+CAAATGTTATCTTCCTAGAACAGCCCTCCCTGATGGTCTCTAGGGAGATGAAACTCCCCT
+GACCACCTTTACCTCCTTCCTACTTTATGTCTTTCTGTAAAACATATCACCATGTGGCCC
+ATTATATATTTTAGTTATTTAATTAATGTATTGGTTCTCTCTCCTCCCTAGAACATAAGC
+TCCAGAGGGCGGGGGTTTTTGTCTGTTTTACTTACCACACTTTTCCTAGCACTTAAAACA
+GTGCTTGATACATAGAAGGCACTCAAGAAGTATTTGTAGAAATTGGAAAGGTATAAAACA
+AGTGAATGAATTAGTGCATAAATTATTTCTCTGGACTTAACCTCATTTCTACAATAAATG
+AAAATCAGAGTAAGCATTTATTGACATGGAAAGGAAAGCCTGGGCAAAGAAGACAAAGTT
+AAAATGAGAAAAAGGACAATAAAGATGAATGAAAGACAAAAGTAATGTACAATTATTCTC
+TTTTCTAGTCTTCATGTCTGATTTAGGAAAAGAAGAATTGTTTTGGACAGCTTATGCTAT
+TCTTTATTTCAGCATAAGCACTGAATTTTTATTTTCATTTTTCAAGCTCCCTGTGCCCTA
+CTTTCTTTACGTTTTTAAATAACAATGATCCACCCCCTCAGATGGGTTCTGTCAGCTATC
+TTGACCTTTGTCTCAATCTTATTTTTCTGTTTGACCTACCCACTATGCTGAGAAGACATT
+TATATTTAAGTCTCTGTTAAACAAGTCCAAAAGAATACACCAGTTTCTTTCAGAAGAGAC
+TGTATTTTGTCCTCAAGGAATAAAATTGTTTAAATGTTACTGGAGACATAATTGCTGTTA
+TGCTTCCATTTTTAAAATTTTTACATTTATATGTAACCCTACTTTAGTCAAGTTATGTCA
+CGAACATTTCCAAATATTTCCCCTCACTTCACAAAAGTCATTTTCTCAGGATTTTAATAG
+AATAAAACTGAAGGTGTGTCCATCTGTACCTATTCATTGTAGTTTGTACAGACTCTCATA
+TTATTAAGACAAAAGCCACTCTATTTTTTAGAGGTTTATTATATACAAACTTGTTGCTTT
+TTCTGTAACTAGAGGGACACTGTAATTGCCATATATAGCTGTTTCTCATTGTTACAATTT
+GAAGACACTGTTTAAGCATTAACACAAATTGCTAGTCAATCAATCAGCAATCATATCTTG
+AGCAGAGAACATGCCCTCACAGATCTAATGATTCAGCAGTGTGATCAGCTATACAACCAG
+GATATAAGATTTAAATTCATAGAACATTGGTGTTAGACACAAGAATGCTACTGTAACTCA
+TATACAAGTGAGCATGAAATGGATCTTCCCTTTTGATCTCCTTTGAGACAGCATGTAGCA
+ACCTTCTGCCCAGAGTCTGGAGTCAGGTATAAAACTAATCAAAGCAGGAAACAAACAAAA
+GGAAAAAATTAATTGAGTGTGTTTTCTGCTAACACAGCAATTGAAAGACAACTCATGCTC
+ATTGAAAGCCAGAGTAGAGTGTGTAAACCATTCTTTATTTCCATTATGTACAAAGTTATA
+CAGGCAATGCAACCTATCATATAAATTTGTACAAGTTTTAGCAAAGCCAAAAACAGCTTT
+GAAGAGGCCAGGTTTAAGTTCCCTAAAGGGGAAGGATGGAGACATTAGTGTGATGAGTGA
+TGAGAAATGACCATCCTGCTGTTGAAGAAAGGAATTCACCTGAGGGACGGACCTCCTGAC
+AGTCACTAGTTGTGGTCTCTGAGAAGTTTTGCTTCCTGATAGTCCTGAATTGTGGTCTCT
+AGGGCTTGGAAACCTCCAGAATCACATGATTCTGCAGGGTTTGGAACTCTGCCTATTTGT
+TTCTGGTTTGGATTTCATCTAACAATTTGAGGGGAGCAACTGGATGACCTGGATATGGCC
+ACCCCAGAAATAAGCACCTGGTGTTACTACTAAAGTAGGTTCCCATCTTTCTAGTCATTG
+TGAACCTTGCACTGCAGGATATGCTCTGTTTCCTCTCAGACATTCCCTGCCAGTCTCCTG
+TCTACTCTGCATCTCAGGAAACATTTTCCATGCTCCCTTATCCTCTGACTTTGGGATGGG
+TTCAGTCCATTGGAAGCAGAGCTTGAGGAGGGGAGAAGCCTAATAATGGAGTGTCACTCC
+CACCCCTGCCCCTCTCCTTCCTGGCATCTCCTCAGTCATGTCAGTTCTCACCGGATAGGA
+CCTTTCTTTATGTCACAACTGCCAACAGAAAGTCACCTGGATGTTTTCCGCTCTTGCCAT
+CTTCCCAGTTCCTGTTAACATTATCTCTACTTGTCCCTGCAGTCATCGGGTAACAGTGGC
+TTCAGATTGTGGCTAAATTTGGGGTCCTTTTATTGTCTGTCTTTGGCTTGTCAGGTCTTC
+CATCACCTATGTATTAAGTTATTTTATTTGGAAGGAGCTAATGTCATTTCTGTTTTGCTG
+CTAGATATTGATTGATTCACAGGTTGTCAATAGAGTTGCCTCCTCAACCCCCTTCTTAGT
+GGGTTTTGCTAAACTATAGAACAGTGTAATATTAAATAGACCACTAACTGTTTTCTCAAT
+CCAGCAAATAATAGCCCTGATGAGCCATAGTCTATGGCTTTCATAGCGTTTTTCTCTCTG
+TAATTTTGTCTTTTAAAATATTTTCTTAGGTATTCTTGGCTGGGCGCAGTGGCTCAAGTC
+TGTAATCCCGGCACTTTGGGAGACCGAGGCAGGCAGATCCCTTGAGATCAAGAGTTCATG
+ACCAGCCTGGCCAACATGGTGAAACCCTGTCTCTACTAAAATTTTTTTTAAAAAGAAAAA
+TTAGCCAGGCGTGGTGGCCTGTGCCTGTAGTCCTAGCTACTTGGGAGCCTGAGACAGAAG
+AACTGCTTGAATCCGGGAGAGAGAGGTTGCAGCGAGCTGAGATGGCCTGGATGACAGAGC
+GAGACTCTGTCTCAAAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAAATAA
+ATAAAATAAAATATGTTCTTAGGGATTATTTAAGATGGTTGGTTGAGACAGGATTTGAAA
+GGAAACGTTAGCCTGAAGTGACGTTTACCTCGGACTTTTAGTCTAATTAGTCAGGCTATT
+GTCCTTAATGGTCATTTTAAATTATAATTAATATTATTAGGACTTCTACTCTAAAACAAC
+CTTTCTTACACTTAGCACAATTTCTTTTTTTTTCTGTTTCATAAAAAAAAAAATAGCAAC
+CACTCTAAGAGAATTGCCTCCCTTTCCTACTCCCCTCCCCACTCCAGTCCCCCTGCTGCC
+CCGCCAACACACACACAAACACACACACACACACACACACACACACACACACAGACAGTG
+TTCTGTCCCTGAAGCCTCGGATTCCGTGACATCGCTCTCCTTGTCTAAGAGGATCGCTTT
+CTTACCTGTGTTCCAGACCTGATGGGCTCCCAATTTCTGTCTGCTCAACCTCTCTCTCTC
+TTCCTAGGGTTCTTTACCTTTTATTTTAGATCATTCCCCTCAGAAAAGTTAGAATCTTAT
+ACTTTAAAAAAAAAAAAGAGTTTACCTTCTGCTATGCGTTCCCTCTCACTCTCTTTCCTT
+TTATACCCAAACTTTATGGAAGATTATTTAAAGTCATACCTTCTAATTTGTCACCTCTTG
+CTCCATTATCATCAATTTATGTTTCCTCTTTCCACTAGTCTCTACTAACTTCTTTAACTT
+CTTAAAACTCATTGGTAAATCTTATTTAGTCTGTGCAGCATTTACTACCTTAGACCACTC
+CACTATGCTTTCTTGATTATTAACTTGTTATATGACAGCCTCCTCTCCTGAGTCTCAATT
+ACATTCTCATTTATTTTCTTTGTCTCTTCTTTGCCCTGTGTGTATTGCAACTCCTGGTTT
+CTTCCTTTGTCATTCTCAAAGATCCATTCATCTACTTTTCTGGGCAAAATGGTGCGTTCC
+AAGTGGCAATTTTTAGAGTTACACTACTTGGTTCAGCCAGCATTTTCCTAGTGGATATAA
+AGAGGAAAATATATACATACGTACATACATATACATACATACATATATATACACACACAC
+ATACATACATATATATGTATGTATGTATGTACACTATTTGGTTAAGCCAGCATTTCCCTA
+GTGGATATAAAGAGGAAAATACATACATACATACACAGACATACATACGTACATATGTAC
+GTATGTGTGTGTGTGTGTATATATATGTATGTATGTATGTACATATATATTTTCCTCTTT
+ATAGCCACTAGGGAAATGCTGGCTTAATCAAATAGTGTAACTAAAAATATATATGTATTT
+ATGTGTATATGTATATACACGTATGTATGTATGTATGTATATATTTGAGAATATCTCCAC
+TTGTAGAAATGCTATAAAGAATGTGTTCTCTAGTCAGATTAGTTCAGATAGCAATTGACT
+AGAGAAAAGGTAACAGCAAGAGCATACTACTTGCCATGCACTGTTTCTAAAAATGTTTTC
+ATATCACTTTTTAAAATGAGCATGTATTAACATCTTTTGTCACTATTGTTGGGCAGAAGC
+CAGGTTGGAAAATTGAAGGTGATAATACTGTCTCAGGAGGACTCCTGTATACATTTGCAC
+TAAGATACATTAATTTATTTGAACTCTTTAGTAACCTCTTTAGTGCAGGCAGAAATAACA
+CACTATCTGTTGTGTTGGAATATAAGATGGGCAAGTTTTGGTAAAAAGGAAATGACAGGA
+CTCAGATAATGTAGTACCATGAAAAAACACCAACCTGGGATAACGTAGGTATTCTGAGAA
+TTTTTGGACAATTTCAGGACAATTTCAGTGAGATAATAGACATATTAGATAAATGAAAGA
+CTGAATGAGACAATTGTTCTGGGCCACTGATAAGAAAAAAGTGAGAAAAATTGTTAAAAA
+ACAGTTTTATACGATAATGAAAGTAAACTCTTCAAAATATGCACAATTTCTTTTCACCAA
+TTTCATCAGAATACCAAGATAAAAATCTCTGAAAATATAAAAAAAACCCTTTTACTTAAA
+ACGATTGTATTTACTTTTCATAAACGATAAGGCTATAACTAATCCAATACGCAAAGAAAA
+CAACCTAGTATCTGAAGATAACTGAATTTGTGCTATTATATCTACAGAACATTTATTTTT
+CTTGAAGTTTTTATTTGCAATAGGAAAATGAGGAAACAAAATTGAATTTCAGTAAACACA
+CAAAGAAAAATTTTGGTTATAAACATTTTGCGTATCGTCCAGCTGCAGTGAATACATACT
+TTTTAAAGTCATGGAAAATTTTGTTTCTTTTTTTTTTTTTTTTTTTAATTTCAGACAGGG
+TCTCACTCTGTGGCCCAGGTTGGATTGCAATTGCATAAACACAGCTTACTGCAACCTTGA
+CCTACCAGGCTCAAACAATCCTCCCATCTCAGCCTTCAAAGCAGATTGAACTACAGATAA
+GCGCCACCACTTAGGGCTAATTTTTTAATTTTTTGGAGAGATGAAGCCTCACTGTCTTGC
+CCAGGCTGGTCTCAAACTCCTGAGCTCAAGTAATCCTCCTGCCTCAGCCTTCCAAAGTGC
+TGGGATTACAGGTGTGAACCACTGTGCCCAGCTGGAAAATTGTTTTTGAGCAGTGTTTGT
+GGTGTTTTAGAAAAAAAAAATCCAAGCTGTGGTACATTTTTTTTTAATGAAGTTTTATAA
+AGCTGGGACAAATATATCAAAACTTCAAATAAATTTAATACATTGACACATAAATATAAC
+ACACGAATTTGGAGTTAAATAGCATCTTTTAGTTTCATTACTCCAGAAAGACACAGTATT
+GGGATACATCTGAAAATAAAAAATGACCCATTTCAAATGATGTTATTACAAAAATAAATC
+ATATTATATACACTTTTTTATCATTAAAAATCATATCACAGATAATTGAAGGCAATAGCA
+TGTTAAGTGAAATTAGTTTCTTTATCATAGCATATACATATGATTTTTTTCACATATATG
+GCTGACTATGAGGTTCAAAAAATACCTACTTAGCTACATAAACATTTTACGTTTTAAGCG
+CACATATTAAAAGTTCACATTACACTGTAACATCTAAAGAAACAACATTCACTCAGCCAG
+CAAGACTCAAAGAACAAAGCACTAAAATGTGTTTTCATTTAAAAATCCTGTATCAAAAAG
+GACTTACTAGCTTCTCAAGATTTGTCTGTACTGTAATCAGATTGCAAATTACTTCTCTTA
+GATCGCTCTGGGAGCATCGCTCTATGCAGCAGATGCCCCTGTTCCCAGCTCCACTCCTCA
+GTGTCACAGCTTGTGTTAAACTATAACATCCTTTTTGTCACTTAGCAAACTATTCTTCCT
+CACAAGCACAGAACTTGGGATTCCCAGGCCCCACTCCAAACTTGAGAAAAACATCTTAGA
+GTATGTTACACTTCCCTGCTAACCCTTCCTCATTTTCCAGCCCCCAAATACACATATGCG
+AAGAGGAAATGAAGAGACACCTGTCAGATTGATATGGTTTGGATACTTGACCCCTCCAAA
+TCTCATGCTGAAGTTGGATCCACACTGTTGGAGGTGGGGCCTGCTGGGGTGTGTTTGGGT
+CATGAAGAGAGATCCCTCAGGAGTGTCTTGGTGTGATCCTTGCAGTGAGGAGTGAGTTTT
+TCTCTATTATTTCCTGCAAGAGCTAGTTGTTAAAAAGAGCATGATGCTTCCCTCCCCTCT
+CTCTTCCTTCCACTCTTGCCGTGTGATAACTGCACACGCCAGCCCTCCTTTTCCTTCTGT
+TATGAGTAGAAGCAGTTTGAAGCCCTCCCCAGAAGCAAATGCCAGCACCATGCTTTTTGT
+ACAGCCTGCAGAACCGTGAGCAGGGACCTTGAACTAGAAATACCATTTGACCCAGCAATC
+CCATTACTGGGTGTACACCCAAAGGATTATAAATCATGCTGCTATAAAGACACATGCATA
+CGTATGTTTATTGCGGCACTATTCACAATAGCAAAGACTTGGAACCAACTCAAATGTCCA
+ACAATGATAGACTGGATTAAGAAAATGTGACACATATACACCATGGAATACTATGCAGCC
+ATAGAAAACGAAGAGTTCACGTCCTTTGTAGGGACTTGGATGAAGCTGGAAACCATCATT
+CTCAGCAATCTATAGCAAAGACAAAGACCCAGACACCGCATGTCCTCACTCATAGGTGGG
+AACTGAACAATGAGAACACATGGACACAGGAAGGGGAACATCACACACCAGGGACTGTTG
+TGGGGTGGGGGGAGTGTGGAGGGATAACATTAGGAGGTATACCTAATGTAAGTGACGAGT
+TAATGGTTGCAGCACACCAACATGGCACATGTATACATAAGTAACTACCCTGCACGTTGT
+GCACATGTACCCTAAAACTTAAAGTATAATAAAAAATAAAAAAGTAAAATAAATAAAATA
+AAATAAAATAACAAAAAAACAAATAAACCTCTTTTCTTTATACTTTATACCTAGCCTCAG
+ATATTTCTTCATAACAACAGAGACAGACTAAGACACAGATTGTTGGGAGAATTCTACAAT
+GACAGAAGTGCATGGGTCTCAGTGGGTTGTGGGAGGCACGGATATCAGCCTACCCAGTGT
+TCATTCTTTCCTCCCTCCTGCCTAAAGAGCCCTCCCTTTGTTTGGGGATACAACATGCTC
+AGTAAAGATTTACAACTTACAGGCTCCCTTGCAATTGGAGATGACTGATTGCTGGCTAAG
+ATTATGTACATAATGGCATTGAGTGGGGCTGCTGGGAAATCTCTTTTAAAGGGACAAGAT
+TCAGCTCACATGTGGCCTTGCCCTTTTCCATTCCCTGCCGGAAACTCAGTGCAACACTGG
+AGGTGAATCAGAGGTGACAAGCATAAGCACACAATTTACATGTGGAAGACACGGAATGAA
+GACTAAATTCCAAGGAGGGTCTTGGGGCCACCACACCAGTCCTGGGCAGCCTCCCTCTGG
+ACCACTTGCCATGTGAAAAAAATAAATAAATAAATCCATCTTTTGTACAAGGAATTTTTA
+AATTTGGTTTTCTATTACTTGTAGCTAAACGCAATCCCAACTACAGTGATTACGGTTTAT
+CCTAGTTAACATTATAATACTTCAAGTGTTTATAGTATTCGAGTCACAGGAGCGTGACCT
+TTTCTGATTTATTATAGAATGAAGATGCTGCACTTTATTACTCTTTTAAATCCTTGTTTT
+TCGGATAAGCTTAAAAGCAGCACAATCATCAGAGCTATAGCCATTGGAAGTCAGAAAAAA
+AATCAGATAAAATTGAAAATTTTATTTTTATTGGGTACTGTTTACCGCTTTATCTACTTA
+TTTATTTATTTATTTATTTATTTATTTATTTATTTATTATTTTGAGACAGAGTTTCACGC
+TGTTACCCAGGCTGGAGTGCAATGGTACGATCTCGGCTCACTGCAACCTTCGCCTCCCAG
+GATCAAGTGATTCTTACGCCTCAGCCTCCCGAGTAGGTGGGATTACAGGTGGGTGCCATC
+ATGCCCAGCTAATTTTTGTATTTTTAGTAGAGATGGGATTTCACTGTGCTGGCCAGGCTA
+GTCTTGAACTCCTGACTTCAGGTGATCCACCCACCTCAGCCTCCCAAAATGCTGAGATTA
+TAAGCATGAGCCACCGTGCCTAACCTGATTAGCACTTTAAGTGTTAATGGTTCATAAATT
+TCATGTACATTAATTAAATGTATACATATTAATTATATTGATTTAATTACAACTATATTA
+TATATAGTTATATATACATTTAATTATATTAAAAAACATACATTAAAGTGGTTAACTATA
+AAATAACAAAGTATGTGAAATGTGAACTATTCAAAATAAATATAGTTTAAATGAAAGAAT
+GTCTGCTACATTTAAATGAAAGACTCTTCCAACTTAAAACACTGTGAAGCTGGTAATTCA
+ATAAATGTTGCTTCAATGTGGAATTTTCAAAGGACATGAACAGCTATGCTGTTGATAAGC
+AGTACATGGTTACATGGTTTTGTAAAAACAAACTGCTCATGTAGAATCCATGAAACAGAA
+ATCTCAACTGTGTATTCAATCTTATGATAGATTAGATAGAGATAGATGGGTAGGTAGGTA
+GATAGACTGGATAGACAGATAGATAGATAGATGATAGATAGATAGACAGATAGATAGATA
+GATAGATAGATAGATAGATAGATAGATAGACAGACAGATAGATGATAGACAAATAGACTG
+ACTATCAGAGATAGGTAGATAGATAGTTAGATAGATACATAGGTAAAAATACACTGGTCA
+TTGTGGTACAAACTCTGTAATGCAGACTTCATGACTCTCAGTGAAGTGTCCCCAGGATCA
+TTTCCCAGTTCTTTTCTTCCCACTTAGCCATCTCCAAACTCTATAGTCAGATCAACATAC
+AGTTAGAAATAAAATACTACAGACATGAGCGTCATTCTTAGTTATCCCAGCCCCCAAGGA
+AGAGCAGAAAGGGGCTGACGCTCTGCTCCCACTTTGCACCCTGAGTACAGAATGTCTGTG
+AAAGTAGATAAAAAATGGAAGATGTAGTATTTGTTTACATGCATTAATTAAGCTAAACTT
+ATCATTTAGATTATATAAAATGCTAAACTATTGCTTTACTTTGATAAACATGTATTTGCA
+GATGGCTTAAGGTTGCCAGAAATTTTGTAACTTATATGCTGTTGATTTGGCTCTTAGATT
+CACCTGGAATTCTCCATTTTCCTTGCAAAAATACTAACATGGGCCTAGTCACTTGATGCC
+CAGACCCATCTGATCTCATCTGTTTATATTTTCTACTCCTGATATTCATTATACACTTTA
+ATTAGACAATCAAAACCTGAATTAAAAGTAGGTGTATGAAGAAAATAGCAATATAAAGAT
+AAGTTACAAACTTAGAAACTTAGTAAAGACAAGTGGCTTCTATTCTCCCCTATCACCCAA
+ACCATCTGTGGAATTAGGTGTGGAACAAATAACTGTAAAATATGAATTAAAAATGTAAAC
+GCATCGAAGAATTCTTAATTTGCTTTACAAGTGTTTATAATCTATCATTTAACATTAAAC
+ATTTTTAATGGAAATCTTTGGCATTGCATTATGAATATGGTTTATGCAAGAGAGACCAAG
+GGATATCCATCTGTGGGCATCTGTTCAAATAAAAAGCTTTGATCGTACATCAACAGATGG
+AGAAAAGAAGGTATACTGATAGATTTTAAGTTACAGAAAGATGCCAAGCATCTGGTCAGA
+ACACTATTTTATCACCTCTAAACTGTGAATTTGGTGTAATTATACCAATCCTATAGAAGA
+GGAAAGGCTCAGAAATGGAAGTAACTTGGCCAAGATCATATTATTTAAGGAGGAGAGCTT
+AGATTCAAAGAAAATCTGCTCAAATCTAAAACTATTGTAAGTTGATACTGAATTTCTTCC
+TCAGATGACAAAACTATGATATATTAATATTATTGAGAGCGGTTAGATTGGAAACAAACA
+TTCACAAGTAGAAAACATATATTCCCTCAAGCAAACCACTGATTGATTTTAAATTTTATT
+TGCTATGAATCCAATAGAAAAAATAGCATTGCAGGATTAATATTTGTTGACAACAAAATT
+ATAATGATTTCTACTAAAGCAGAATACATTTACTTGGATCCTGGGTAATAAGATATTTAC
+TAAATTTATGTAGTTGCTAAGTAACAGATGAAATGCAACCCACCTCAATGATTCTAAGCA
+ATGGATAAATGCCACCAGTTTTTAAATAGAATGTGTTCTGTATCATAGGATCCTCAGCCC
+TTGGTTCTTGAGTTGCACTATGATTGGAAACATTAACTTTTCAACTATGAAATTATCCTC
+CTTCCTCCAGCCTTCTTATTTGATACGACATTTTCTTTATCTTAGTCTCTTCTTCTTGTA
+TGAAAACTTAGAAATGTACACAGAAAAAAAAAGAAGGCTCCTTAGCTGATGGGAATTTTG
+GCTTAACCCAGGAAAAATTTTAAGACCAAATGACAAATAAAATATTTTATATAACTGATT
+TTATTTGTAGTTCAAAAATATATTTTAAAAGTTAGATTTTAAGACAGTCCTTTCTGTCTT
+CAAGCTGGGCATTTTTGTTTATTTCTGTTAAATTTATATTCTTAGTGTTTAAAAGATTCA
+TACCATAAAATTCAGATAAATTTTTTAACGTTAGAAAGAGTCCAGCACTGTAATTAGCAT
+AATGCCTTTTTAATTAAACAGTCCCTCCACCAAATTCTATGGCTATGTTGAAAGGTACTG
+CTTCCTTGAAAAATAAATATCACAAAGGTATGCCTCACCTTAGAAAAACATTATTTTGAA
+AAACCACCACTTAAGGAAAAATGATAGTATATACACATATAGTCTGGTATAAGTCCAAAA
+AGCCTCTTACGTATGCAGAAATCCGTAGCTCAGGACAAATCAACAGCAGCAAATATCTTT
+AATGTGTTACGAGCCTCGCAGACCTTAGTTAAACAGATGAGCAATTAATATATTTACAGT
+AAGGAACAAAGACCTCTGCATTAGTAAAGAACCCAGCTGCTTTTAACTTGTATGTCTGGC
+TTTTAAAGATGCTTATTTGAGATAAGATTTAGTCTCTAATAAAATACATCTTTGCGTTGT
+TTCTTAATTTTATTTGAAAGAAAAATACTCCTATTTTCTCATGTTTAAATCTATGGCCTC
+ATCCTAGGTTATGTTTTTTCTTTTTATCTAGAGTAAACCATGTTTGTATTCTAGGAACAC
+ATTTTCATTTTTATAATAAAACAGAAAGGACTTAAAAGTTCAATTGCTTTAAAAAGTCAC
+CTTAGCGTCTAGCTTTGCCGGACACGTCTAAAACCTGAAGAATGTCTATTTTACTGTTAG
+TCTCATTGTCTTGAATTTGCTTGTGCACATTTTTTGAGGGTAGTTAATTCCAGCCAGAAG
+GGGAGGATTTTTCACAGTGCCGAAGTTATTCTGCAATGGTAAATTATAAACACAGCTTAT
+TCATTCCTTTGATCTTTTTGTCCATTCTATTCTCCCTGGCTAAAATGCTTCATGATTTAT
+CTTAAAAAAAGGTTTTACAAAAAATGCTTATAACCGGTGTTCTATGAGTCTGTAGAGTTT
+CATTTTTAACTCTTGGAAGCCCTCATACATTATGGATATTTACATCAGGTCATATTTTCT
+GACCAAGATCTTAAGTTTCTTTGGGTGCAAATCTTCACATCCTCCATGTGCTTTCTGTAC
+AGTGCACAGTAGATAGTTGGTCAAAATATGCATAATTGCCATCATACACAGGGCAAAGAA
+TTCGTTGTTCATGGAGCAGATTAATATTCATGCATTGGAAAACTAAGTTCTACACCAAAC
+TATTTCAAAGCAAGAAAGGCCGGGCGCAGTGGCTTATGCTTGTAATCTTAGCACTTTGGG
+AGGCGGAGACAGGCGGATCACCTGAGGCCAAGAGATCGAGACTAGCCTAGTCAACATGGC
+AAAAACCCATATCTATTTAAAATACAAAAAATCAGCCTGGCATGGTGGTATGCGCCTGTA
+ATCCCAGCTACCCAGGAGGCTGAGGCAGGAGAATCACTTGAACCTAGGAGGTGGAGGCTG
+CAGTGAGCCGATATTGCACCACTGCACTCCAGCCTGGGCAACAAGAGCAAAACTCTGTCT
+CAAAAAATCAATAAAATAAAATAAAATAAAATAAGAATGTCAAAGCAAGAAATATAATAC
+TAATCCCAAGGAGCAAATTTGCTTCCAAAAATCTCTAGTAAGTCCCCAAGAAGGAATAAC
+TTTACTGTATTTAAAATTGCCTTGTTTTTTTTTTTTGCTTGAAAGACAACTCGATTAAAT
+TATTGTGAAACTACATATTTTCATTATGTATAACTGGTTTTAGAAACCTCATACCTAAAA
+ATACCTAAGAAGCAGGCTTCTCTTACATAATATTTGGTTGAAACCAACATAGATCTGTTT
+AAGCAATGTAATGTTTATTGTCCCAATGCCTGAATAACAGATTTTATTTTTTATACTGCA
+GAAATTTAGAGAGGATTAGTTTTCCTTATCACTTTCTAGAGCTATCTAAAAGTATGAAAT
+CTCTGAGTATTATGAAATATTCAGAGAATTGGGGAAATATTTACATCACTTGAATATAAC
+ACGTAAAGTTCAAATTTTTGTTTGAAGGAACAAAAATCATTCTTTTTGTTATTCTTGGCT
+ATTGTCAAGGTATTTTTGTTCCAAGGAAGAAGTTTCAGTAAAGTTATACATGTCTGAAAA
+ATTAACATGGGAGTATAGATTGTTAACAGAAAGAGACTAGATGAGTTACATTTATTCTCA
+TAAAAGTTGTTTCATAAAATGTACTTTGTTATTCCCCAGGTCCTGATAACATATTACATA
+ACATACTGTTAATCACAGTTCTAGCTTATGAGTCACATCATTTATTTTAATATTTCAGGT
+GCTCTAATTTTTTTCCTATAAATTAGCCTTTCCCCAAATCTTTTCATAGTGTATTATCTT
+GGTATTCTTTTTCTCACAACCAGTTACAGACTTGAAGTCCCTGTGGGAGAAGAATCTAGG
+GAAAATTGTTATTTTTTTCTCTTTTCTATATCTTCATTTCTAGCATAAAAAAAAAAACAA
+ACAAAAGCTCTCATCTTGAGAAAATATAAAATAATTTACATCTTTTTAGTGTCACCCAGG
+AATTCAGGCCCCTAATCAGGGTGCCTGCCTCTGGAAAGAAAACGCTGTTGAAAGTTAGAA
+GCGTGCATTCAGCTCTAGAGGGCGCGCAAGAGTCTCCACCTGACTTCACGTCCTCACCCC
+TCTGAGCCAGACAGTGGCTGCTGATTTTGGCCAAAACCAAAGACAGCATTGGTGCTGGGG
+CATACACCTTTGGCATGGGTGAGGTATGAAAAAGATACTAAAAGCAATAACCCCCAGTTG
+GATGTCTCTTTTGAGATGTTCCTTTAAGGATCACTGCTTTGGGGATCCACCTCTTTCAGG
+TCGGCCTCTTTTGTAATCCTTCCTTCCTTCTTTGGATTGGTACTTTTGGATGCCTACTGT
+TTCTTTGCCTGTTGGGTCTGATACAGGATGCCTTCCTGCCTGACATAATACACACCATTC
+ATCTGCTTAGGACACCAGTGGGAACTGGGGTGAGGGCCAGGGAGAGAAAACATGGAGCAG
+GAAGCAGAAGGTTGTCTCTAGTCCAGACAGTGGAAATTCCTCAGATTCACAGGTAGTCTA
+CTCCATTCCCTTAAGTAGATTTCATGAAAATTGGAGGCCAGAGCCCCAGACAGCAAAATG
+AGGTTAATTTTATCCTAGAGTTTCTCCTCTGTCCAATTCACTCAAAAACTTGAAGAGAAA
+TCAGCCGGGTGATGAGGGCTAGACAGTCAGGATTCTAGCCTTCTGTCTTTAGAGACTCCA
+CTTCAGAAAAAGAGGAAGACCAAGAATTTGGGTCATTTACATATGAGTGACTAGAGAAAA
+GAGAAAAAGAGCCTCTGAGGAGTAGAGAAGGGCAGAGGCCTCAGGCTTGGTCTAGACACC
+CCCAGGGGAAGTAAAGGCAAAGCTGTAACATCAAATCCACCCATGATCCTATCCAGAGAG
+AGATTCAGTGTACAAAAATAGCTGAGATACCACTGGATTCAATCTCAGAAAGAACAGGCA
+GAGATCTTTAAAGTCCCTTTTATCAGGGTTAATGTGGGTGATCTGAGTCCTAAATGACAT
+TCTACCAGTTAGTAACTAGGTGATGTTTGCTGAGAGAGATGACACATTGGCACCCTCTCA
+TTCATGCCATTCATAGGCAGTACCACCCTTAGACCTGGGCAAGTGGGGTCCTTACTCCCA
+CTCTGGGGTGCCTTCCTCAAAATTTACCAAGATCCCTGTAGTGTGTAGGACAAGCTGGGG
+CCTGAAGTATTGTCATGGTGTGGTGCCACAGGCCTGGACCACTTGGCCCTGGTCCCCATT
+TATCCCTTTTGGGGCAGTCTCCAACTCTGTCCCATTAACGTACCCCATAACTAGGGTCAA
+GCAGATGACCCAAGGAGGAGCTGTAGTCCTCACAGCTTTCAGGTTATTCCAGGATCCTGT
+GGCCAGTACCCAGTTCAAGAAAGAGCTTGGTAAATAGATGACTCCCTCTGGCTGCTGCAG
+TATTTCTTCCAGAAGCTGGTTGAGATTATGCTGCCAAAATGGTGCTGACACACTAATTTG
+GATTGACTTTCACTCATGGAGAAAGCAGAAGACATTCAAGGCTATGGGCTACAAAGGAAC
+ACACTTGGGCTTGAGCCATGTTTGTGAGACAGTTCATCGGCTTTCCCTCATCCATCACTG
+CCTCTGGTCTATCCCAAAGTAACAAGTAGCAACAGGCTTCCCTTACTCCAAGTTCCCCAT
+GCCATGGGTGGCCCCAAGGGTTATCAACTCACTCCCTGTAGGCTTTACATCATACAGCAG
+GCAGTTCTCAAGTGGGCCTCTTGTTTTCAAGGGATTTTGAGACCACTGCTCCACATGAAC
+AAAGGGCAGGCAATTCTGATCAACGTCCACTCTTGCCTCCAATGGATATGATAATGTTAT
+GGTATCTCTGATCATTTTTAAGGCATGTCAAGTTAGGAGCTGACAGTTCTGTGAAAATGG
+ATCAACTCTGCTTTGCCCATGGGCCCCTCAGTTACCCTGTCGACTTGTGTTGGTGGGAAG
+ACTACAGGGTCAACATGGTAGGATCCCGTGCTAGGAATACGGTGGTTGTGACCTTAAGCT
+TTCAAGGAAGATGAGGCAAAACCACATGTTTTCCTGTGCTTAGACTATGACATTCTGAGA
+GTAAATTTAACATGACAAGAAAACAAATCAACTTTCACATAATTCTGAATACCCTGCGTA
+AGACTTGCATCTGGAGTCATCATCAACAAAGCTCAGTAATAACCTTATAGTGTTATAAGT
+ATCCATGCAACCAGCATTAAATAAAATAAAGAACAGCAGGAAACTGCAAAGGCAAGAATG
+TCTGTATTATTTCAATACGAACAGGTTCTGAAGAGCCATGACATTTTGAATAATAACAAT
+GTTGCTCCCTTTTTATTTTGATGGACACATGACATTAGCCAGGAAGGGTACACTTGACAA
+TGAAGAACATGAAGAGATAGTTTCTAGACCGAACCAGGAAATGATAATGCCTGAATATCA
+CAGAGAATTCTCATGCATGGATCAGACAATAAATAAATACATAAATACCTCTTTGTTACT
+CATTATTCTAAATCCCAACCAAAATAGATAAGTTACTATACCTCACACGGTCCCACGAAT
+TTTGTTTATGACAACAAAAGCCACACCAAAAAAAAAAAAAATTGTGCAGGGTCTCACCCA
+CACCAGCAGCAGCCTTGTCAACATTCTGGGACTTGGCAGCCTGTTTGGCCCTGGCGGTGT
+CAGCACAGCAGGAACTCTGTCACTCACAAAGTGGAACTGATCTCACCTTGCAAGAAGCAG
+CAAGTTTGTCCCCATTTCACGGGGTGATGTCTCTTTGTAGGTGCCAACTGCACTACCAGC
+AGCTGAGGGGTGGCTTGGGTTAGGCGAGAGTGTATTTGGAGCAAGCACTTGAGGAAAGTG
+AGAGAATGTTTTAATGCTTAATCTCTATCACAATTCCCACTACTAGCACCAAAAATATAC
+CAAAAGACCAGAGTACTAAGGATTGCAAGCAACCTCAAGACAAGTTCCAAGCCTTTCCCA
+CTTTAAACCAGATTGTAACTGCTAAGCATTCTTTTTCTAGATATTCTAGTCTCTACTGTT
+AGTAGGATTAATACAAACATTTATTCTACGCAGTGAGATGCTAAATGAATCCTTCTTGCC
+TGATACTCAGGAATTCTTACCACGAAGAATCATTCACCAAAGCTTATGTTACACAAAATA
+TAGTCTAAAGAAGTATTAAAAACTTCTTTCTTTGTTCTTTTGTTTTTTAGAGTCAGGGTC
+TCACTATGTTGCCCAGGCTAGAGCCCAGTGGTGCGATCATGGCTTACTGCAGGCTCAACC
+TCCTGGGCTCCAGCGATCCTCCCACCTTAGCCTCCTGAGTAGCTGGAACCACAGGTATGC
+ACCACCATGCCCCACTAATTATTTGCTATGTTTGTTTGTTTGTTTTTGTAGAGACAGTGT
+CTCACTATGTTGCTTAGACTGGTCTCAAACCCCCTGACCTCAAGTCATCCTCCTGAATTG
+GCCTCTCAAAGCACTGGGATTACTGGCTTGAGACACTGTGCCTGGCTAAGTGCCCCATAT
+TCTAAAGAGAGCTCCCTTAAATCTGCACTAAATATATTAAGAGCTTACTTAGGGAGGAAG
+AAACAAGCCATGTTAAATTTGGTATCCAAGCAATTTGAAAGAAAGCTGAGACATTGAGAG
+AAGGGGAGAAGTTACTACGACTTCTCAGAGAAGACACATTTTCTTACCCTCCAAATAGGA
+AAAGAAAGGAGAGGTGCTCTTGCTTCTCTCTCTGAAGCCAAGTAAGTGTGGTTTCAAGAA
+AATTCCGCATAAATTTTAAAGATGCCTTTCAGAAGGGTGTCCTGGTGTCTAACTTCTCTT
+TATGGACATCACTCTTACTGATGTGGCACTGAAAAGAGACAGCAGAATAAGATGAGGAGG
+CAGTCTTGGAGCCATCTGTATCCCCACAAGCTGGTGGACAGAGATGTAACAAGTGTATCA
+GGAGTGAAGGCTGACAGTAGAAATAGACAAGCTCCAGCCATCTTGCAGGTTTCCAAGAGG
+CGAAAGATGGAGAATGGGAAAGTATTGGAATAAAAAGTCAAGTTAGAGTTGAATCTTTCA
+CATCAAAGAAAAGTGCAATATGCCAGGGAGTGAGGAGCTTGAAGAACTTTGCATAGTACC
+CCACAAATGAGCCAGCATTTGGATGTTTACTGCAGAGAAAGAATTGACAGTGGTTAGTAA
+GCCGGACAAGAAGCAACAGCACAGCCATCAAGGTGAGTACTCTGATAGGGCTGGGTTCAA
+TAAAGCCTTGCTTGTCTCCTCCTCCTTTTCTCCTAACCCCAATACATTGGAGAAATGTGG
+GTGGAAGAGGGAGGACAAAGAGGAAGTTTCTTAGGAATAGAAAGCTTGACGAGGCCCATC
+TCCTCCAAATGGGAGGACATTAGAATCAAGTTTCAGAGCGCCATTTTCAACTGCACTCAA
+TTTTGTTCATGGAGCTAAAAGCTTTCAAAGTCTTTCCAACATGTCATTCAGGGGCAGGAA
+AGAGATTCAAGAGAGTCTGATGGAAAGCAATCACTGGAGGGAAAAAATAAAAACACTCCA
+TATTTATATCACTTGAATTTAGAGTGCTAAAGAAACTGATGACAAACAGACTCAAGTTGT
+CTCAAACCTGAGTGACACCCTGCCAAGTTGTGGTACCTCCCTGCTTGATTAGTGAGTTGT
+CTGTTTCTACACCTAACTGCAAAGCTTCCCTTTCCAGTTTTCTTTCTGGCACGCACTCTG
+GGGAGAGCTTGATGGAAAATAGGTCCTTGGAGGGTTGATTTTCTACACTCATGTACACTC
+ATGAGATACATTTTCTGTTTTCATTATCGGGACTGATCTTAGAGAGGAGCTTTTGTTAAA
+AAGCCTCATTCTTGAAGGTTGTTCACTATTCTTGGCAAAATTTGACATTTCACCCCAATT
+TTGGCCCCCATATCCCAAGAGGTTCTTGGGTTTTCTTCTGCAGAAGTGCAACTTGGATAA
+AGCATTTGAGTAGTTAGGCATCCAAGGTGGCCTGATAGAAAACACCCACAGGTTCCTGGT
+GTTCTACCAATTTGAGCTAATGTAATTAGTTGAAGCCTAAAGTTTTGAAAGAGGTATTTG
+TGGGTTTCTTTACATTTATTTATTATAGACCAGTGTCAATAACATTAAGATAAATATTAT
+CCCATCTAGCTTTATGTCTGAATACAGTGATTAAAGGATAATTTTCAGGATGTTGCACTA
+TATTCTTGAATATCAGTTCTTAAATATCAATAGAGATCGTCATAAAATCATTACAGTGAT
+GATGCACAAGGCAAAGTGGAGTTGAGGTTTATAAAGTCTCTCACTGAATTTTTCTGGGTT
+AGTGTATAAATATATTCTTCAACATTTTTATTTAAAATTAACCCAAAGAGCAAGAGAAAA
+AAAGGAGAAATTTAGATAATTGCCAAGATAATTTATGATTGTCTTCATTCCTCCTGGCTC
+TAATTATTTATGTCAATGTGTCATGAATTACACAGAGTAACTTTCAGTAGTGTTAGTGCT
+CATGGGACAAGCATTCCACTCTCCTCTAATTTTTTGTATAATTATTATTTCTTGTTGAAT
+TTTTGAAAAATAACACCACTGGGTTTCATTATTTGTGTATCTTTTTGGAGTCAGACTTCA
+GTGTACTAGTCATTGTGAAAATTCAATAAATGCTTTTTGATTGAGTATCTCAAAAAAGAA
+AACATTCTAGGTATTGTACTTGGGTTTGAATGGGATTAAGCTCCTAGCTGACACTTATTT
+GCTAGGACATTTCCCCCATGTCACATAATCTCTCTGGGATCCAGATTTTTCTATTGTAGA
+GTCAAGAGAAAGATTCAAAAATTTATCTTGGATGTCTGATATTCGAATTATTTGCTTTAC
+TCAGTTTTGCTTTTTAACAACCAAATAAATATTTGATCATTGTATGAATTTTTTTAGTAG
+AAAATTCCACAATTTGTTATGGAAAATTCTGCCTTTGTACAATCCATAATTCATATTGAA
+TAAAAAAACAAATCATTTTCCTATGAGCATTTTAAAAATTATAAGATCCTATTTTATTTT
+CTAAACTAGCTTTAATTTTTAACCATATATTTGGGGAGAGACAAGAAATGATAATATGTA
+GCCACTATTGTTTTTTGCTTGACAGCTACAATATATTCCACTTCTTTTCCTGTTGCTATT
+AGTTTGCTTGATGCCATTTGCTTGATGCTAGTACATTATTTCTTCTAGCCAACTTAACCT
+TGATGCTAACCTCGGGAGGCTGAGGCAGGAGAATGGCGTGAACCCGGGAGGCGGAGCTTG
+CAGTGAGCAGAGATTGCGCCACTGCACTCCAGCCTGGGGGACAGAGAGAGACTCCGTCTC
+AAAAAGAAAACAACAACAAAATAATATAATAATAATAACAAAACATTTAAACGTCTCACT
+TTTGTTTATGAACCAACATAAACATATTATTTGTCTTCGTAAATCTTTCTCCCTGCAGAA
+AATCTAACATCTGAAAAGATTAAGGAACCCTAGAAACTATAGTAGAATAACATATTGTCC
+ACTTTAAAATAGTACCTTGGAGTTAAACCATAATTTTAGCCATAGAAAGTGGTGGGGAGT
+TCTAACTGTGAATAACGCTTGAAGATCTAAACCCTACTTTCTTTCTTTTTTTTTTTTTGG
+AGACAGAGTCTCTCTCTGTCTCCCAGGCTGGAGTGCAATGGCGCAATCTCGGCTCACTGA
+AACCTCTGCCTCCTGGATCTAACCGTACTTTCTAAGATCACTGGCATTATCTTCATAAGA
+AAAAAATATATTCTTATGACACTTAAAATTATGCATTTGATATTCTCCCATAAAACCTAA
+GTTGTTTAATGCTTAGAATAAAGATAGTGAGGAATTAGTTTCACTTTAAATAACTGTTGC
+ATGCAGTACTGACCTGTTAATCTGGTCACTGAAAGCCACAAGTCTGAGCTATTAACAATT
+AACTAAGGTAAGCTATAATTTGACGTGTGATAAGAATGACCTTGTTTAATAATACAGTTC
+ACAGGTGAGCAGTAAAGTTGAAGTCCCTCAAGGCTTAGAATAAGTTCTAAATAATCCCTA
+ATACATATTTGCACACACAAAATTACGATATTCACCAAAGTTATAATATTGACAATAAAA
+TGTATTATTCCCTAACAGCATCAGTCATAAGGAAGTTTATTTTGCATGCTTGGATTCCAT
+AAAATAATATCACCCAATTTACTTCCTTATATGGACTAAAACAAGCCTTTGTGATTTCAG
+GAACATGAATAAATAAATTATATCTGAAATATTTTACATCTCAACAGTTAGTTGTTTTGG
+GGGTTCCCCAGTAAGTATTCAATTAAGCGTTTCAAACCATCCCAAACATCTGTTTTTACT
+ACCATTGAAGTACAGTGGGAAAATCATAAAAATTGCAGCATTTGTTCAGTGGGCAAAACT
+AAATTGTGGACTCTAATGCTTTCTTCTCTTTTCTTATTGATCTGACTTGAACAATCATTC
+AGATTTTAATCAAGCAGATATTCTGGCATGTAGTGAAGATTTTTCACTGCAGAAAATAAA
+AATGAAAAAAAAAAGTATTTGCAGCTCGAGAAACAAAACGTGAGCAGTTAGTCTTCCACT
+GGGCAATGAGCAAGTAGGCAAGGGCCCTAACTCAAGATGACTTATCTAAGCACCAGGAGC
+TCTATGTACTATGCGTATTAAGGATTTATGGGGTTCAAGAGAAGACAGTTAACTGAAGAC
+TATTCCTACTTCCCAAAGAAGTATTGAAAACGTTGGCTTAAAAAAACTTTCTGTATTGCA
+AGATTTTTCAAAGTACTTAATATGCTTCGGGAGCTTTGTTTATCTCCAAATGGAGAATCA
+AGCAGAATCCTAAAATTACTTTCAATGGAACTATTTTTTGGTCAAGTTACTATTAATATC
+TTGTGGAACACTACCAGCCTGCAAACACAGTCTGGAGAATGATGAGCTGTATCTTTATGT
+TTGAGAGTAATCAATACTTATGTGGTAATTAAATCCTTGAGACTATAAGAGATTGCTCAT
+GGACAAATGACCAACAAGAACAGAACCTTGCAAAAGAACACCGCAATTTGAATAGGATTA
+AATTCCTAGCTGACACTTATTGGCTAGGATATTTACCCCATGTCGCATGATGACTCCTGC
+ATGGTAGGAGTGGTTATGAGCACTTAGTTACAGGACAGGCAGGGTATTGTATTATGAGTT
+TATTATACATGCCCTAGACTCATAGAATTTTTAAATTAGAAGAATAGAGATCACATAATT
+CAACTATCTCATTTCATAGCTGGGGCAATTAAGGACTGAGGAATTAGATGATTTATTTAA
+ATGTACACAGCTTGTTTCACGGTTGCTCGTCAAACTCAAAAGAGCGAATACGTTACCCTA
+AAGAAACTCATTCTGAACAAAAGCAAAAATGCCTTCTGGTCACAAGACACTAATGATAAA
+AATAATTTCTTAATACAGATGTTGAAGGAATCCACTGGGGCCCATTCCTTCCTTCATGTA
+ATTTCTCATGATGAGGAAGGAATTTTTTGAGTTGACAAAGTAAACTAAACCTTCCTTGGA
+AACAACCACACAAGAGTGCTCATTACTGTAATAGACAGAGGAAGGAAAAAAAAAATCTCT
+GTGGTTTCTAAGTCTTATGCACCCTTTCATTATTTTGCTTGGGAATGTTTTATACAGACA
+AGCATAGAGTAATTTATTATTTTTTCTTTACTCCTTAACAATCCCGGTAATTTTATAAAG
+CAGGGATGTTTCTCCTTTCTAATAAATGAGTCTGTGTTTTGACATAAAATGATTTGAAAT
+GGTATAATCCCACTGCCTGCATAATTTCTTATTTATTTATTTTGAGATGAAGTCTTGTTC
+TTCTCCCCCAGGCTGGAGTGCAGTGGCGCTATCTTGGCTCACTGCAACCTCCACCTCCCA
+GGTTCAAGCGATTCTCCTGTCTCAGTCTCCCGAGTAGCTGGGATTACAAGTGTTCACCAC
+CACGCTCTGTCTAATTTTTGTATTTTTAGTAGAAATGGGGTTTCACCATGTTAGCCAGAC
+TGGTCTCGAACTCCTGACCTCAAGTGATCCGCCCACCTCAGCCTCCCAAAGTGCTGGGAT
+TACAGGTGTGAGCCGCCAAGCCTCAATTTTATTTTTATTTTAAAAAAATAACAACAGCAA
+AAAAACAACTGGCAACATAATTACCACACACTTAAAAACAACTGCAATTGTGGTGTAAGG
+AACTGTTGGAAATCTTGTTTCTGGTTCTCATGCTTAACAGTGTTTGCTCATAAAAAACAG
+GTCACTGAACCTTCAATTGCTTCACAACTGTACCTTTGGTCTGTTCTTATTTTCTGTCTA
+ATTAAATGTAAACATTATTTCAAATTATAAACCAATGGGACTAGGTGTCATTTTTCCACC
+CTTCTCTACATCTTCTTTATTTCCTTGAACAGGTGCCATAATAGACACTCAATATAAATG
+TCTATAAAATGGAATGAACAATAATATATCCCTCATAGTCTTATCTAGAGGCTTAAGTGA
+TATCGTCTATGTGAACATTCTTTGCAAAGAGTGAAGCACTAGTTATTATTATGTGAGTCT
+GAATTACTACTATTGTTACCATTATTATAAGACACTTTTCTAGATATTGTGATTGATATT
+AATAAGAATCAGAACGTATACAAAGCAATAGGACAACAATTTTTACCATATATTAATTCT
+TCAAAACTGCTTGTTGAATCATGTATAAAACCAATATGGTACAAATGCAAATCAGTGGAA
+TATAGGCACAGAAAAAAGAACAGGTCAGAGTCTCACGAAATTAATGTGAGAAGTGAATAT
+GAACCTAATCTGAAACAAAGTGGAAAGCGAGAAACGCAGAATCATAATTTGGTAGAGAAG
+ATAAAATAAGGAAGATAACACTGTAAAACCCAAAATGGCAGGAGTAGTTCTGAGCAGGAA
+ATTGTAATTCTTGTATGAGCAAAGAATTAAGATGTTATAAGGATGGGTATTTGTTTGTTA
+TTAGAATGAAGCTAGAATTTTTTCTGGATGTAAAGAAAAAAGAAGTAAGGCTATCCAGGA
+ACTGAAAATGGCATCGACGAAGAGGCAGTTCTCTTCCATACAACGATCTCCATGAGACAA
+TCTTTGCTTCACTTTAAAGATACCTTCTCTTTAATTCTCTATTTGAATCTCTCCAGAACT
+CCAGAATGAGACATCTAATTATCCATTTAGCATCCATACATGGATGACCAGTATAAACCT
+CAAAATTAGTATGTCTGAGAATGAACTCTTGCTTCTCTACACCAAAAACCTTGGCCCCCT
+GAGTCTTCTTCATCTCAGTAAATGGCACTACCATTCACTTGTTCATTTAGGCTGACATCC
+TTGGAATCCTTTTTTAAGTCCTTTGTTTTGCTCATACTCCAAATCCAAATAATCACAAAT
+TCTATCAGCTTTCCCATCAAGATAAATTGTGAATCCATAGATTCTTCACTTCGCTGCAAT
+TGTAGTCAAATGCATAGAGTGCAGTATCCTCTTAAATGGTCTCCGTGATCTGTCTCTTAT
+CCCACTACTATCCAGAAATCAAAACACAGACTAAGTGATTCTTTTAAAATGTAAAATATC
+TAATGTCATTCTCCCACTCAAAGTCCTGCAATCAAATGTAGAATAAAGTCCAAATTTCTT
+ACCTAAAGAACCACATGAACCTGGCCTTGACTTCCTCTCTTACCTTGCTTTCTCTATGAC
+TATTCATCCCTTAGCTCCTCAATATCTCAGTCTACAGAATAGACTAAGAATAGTCCTTAG
+TCTATTCTATAATTAGGCTGATGTTGACTTGATTCTGCAGAAGATGCAATATCATCCCTC
+ATCTCCTGCTCCGAGCCAAGGGCAATTACAGAGGTTATGTGGCTGAGTTTTAACGATGAT
+GATCTATTAAGCTCACACAACTTCATATTTCTCCATAGTTACACAAGACACTTTATCTAG
+TTGCTCCTTATATGTGAAGTTATGTACTGTATTCATCTTATAAAAATAGAATGAACGAGC
+TGCTGATCATGAGTTCCAGGGAAGAGTGTTTGAGTTGGGATCCCTCAGGCTGCTGGCAGC
+CCCAAACCATGCTTCCCGAGGTTAGTTTTCAGTTAGTAAACACAAAATATAGATTTGAAG
+AAATTATCTGGATAATTCAAGCAAAAAACATTGCTTTGACTTGAATTGCCTGATTAATTG
+CAAGTTAATCATCTCTTCACTATTGAATTCCTTCCTAGCAAGTCAATTGTCCACGCAATA
+GAGACAGAGCATGGTGGTGACTTAAATTACTCAAATAACTGCATGCTTGCTCGACCCCAC
+CTTGTCAACAAGACCTGGCTGTGATGTAAAGAACTTCAGTGGAGAAATGACAGGAATTGA
+TAGTTAAGGCCAGCACTATCAATAGGAGGTGAAACAGACACAGGGAAAAAAATCAGAAAG
+AGACTTTGTTAGGAAGCACAAACTGCTCCAGCCAGCAGGCCTGCCTGACTGCAGTGTCAC
+TTGATGAATAAGCAAATGGGGCTAAGGGGATGAGAGTACTTTACTGATGAGAAATTCTCA
+CAAATAGGAGATATTTAGGGACTAAAATGCGCCTCCCAGGCTGGTCATGGTGGCTCACTC
+CTGTAATCCCAGCCCTTTAGGAGGCTGAGGCAGGTGGGTCACTTGAGGTCAGGAGTTTGA
+GACCTGCCTGGCCAACATGGTGAAACCCTGCCTCTACTAAAAAAGTACAAAAAATAGCTC
+AGCGTGTTGGTGGGCTCTTGTAATCCCAGGTACTTGGGAGTCTGAGACAGGGGAATCACT
+GGAACCTGAGAGGCAGAGGTTGCACTGAGCTGAGATCATGCCACTGCACTCCATCCTGGG
+TGACAGCGAGACTCTCTCTCAAGAAAAAAAAACAAAAAACAAACAAACAAAAAAACACCT
+TTGCGATAGGTTTAGTTGTTCGTTAAATAACACAATACAAAATAGTTAGGAATTTTAAGT
+TCAAAGTAGTATTTAAGGCATCCTAGTACCTTATGCACTAAATAACTTAAAATGTACATT
+TAGTAAAATCACGCCCAACAAACTAAGAACAGTAAGAAATACTCTCAATGAATATTTTAT
+TTTTATATGCTTATTTTCTTTAATTGTGAGTCCATCCATTAACCTTTCTCTATTGCTAGT
+AATGCGATGGAGGGAGAAGTCACCTTTTAAATATAAATAGTCCATGCTGTGCTAAATCAA
+CAACAACTACATTTTCAGAAATGAGGGCATTCATGAAATCCTGACTCTATCTGTATTGCT
+TTAAATCAAGCTGACAGTAGAATAGTTTCTGCTGAAAGGCTGTCCTATGCGATATTGGAC
+ATTTATGTTATGAAGGTTATGACCAAATTATAGGTTAATATCTATTCATTTATCATATTA
+ATTCAACAAACTTTTATTACACACCTACAATAAGAGGTACTGTGCTTTCACGTCTTATCT
+CATATATTTATTTGCTCCACAATGCAAGCTGTATATCGTCACTGCATCTTCCCATGAACT
+ACTCTACTTTCCATTCCCAGAGCTATGCCTTCTCTATTAAAATAAAATGGAAATCAAAGC
+AAGATAATGATGTAGAGAGAACTGGTATTTGGATATTAGTCCAGGCTCTGCCAATAGCTG
+TGTTTTCTTGTCTATACAATTAGCATGTTGATATATAATGTTAAAATTTCCAAGTAAAAT
+TTCTGACTCTCTCTATCATTACTAAATTAATATTACACTGGGTGTTCTGGTGGTGGTAGT
+AATTATTATTTATGGTCTTATCCGAGTCTTTTTCCTAACATTTGATGAGTCAAATAAATC
+TACCTGACCACACTGGCAACAGATCTGCTTTTATGAAAGAAAATATGAAATATGTGGTGA
+ACAGTGTGGTTTGGCATTATTTGGGTTTTTTGTTTTGATTTGTAAGGATCATGTCTGCTT
+CTAGTGTGTAGATAGATCATAAATTGTAGCATACCTGGAAATATGACAAATTACTTATAT
+CGTCACGTAATGTAGATTTATTTCTTCCTTTTGAACTGATAAGTCTAAATAAGCAATGTT
+CCTTAACTTTTATTTTAAAATGCATACATTTGTATTTGTGGGCTTGGTCTTCTAATTTAG
+TATTTCCAGTTAATGCACATGATGTCAGATATTAATATTATGTGAATGCATTACCCAAGG
+TCATGCCAAAGGCTGTTAAAGTTAAGCAGAGGAACCTTATCAGAGTAAATCAGCAAGGCA
+TGGCACAGCTTTGAGTTTACGTAAGAGGAGGCAGAAAGGTACAAATAATTGATATGCCAA
+TTCAGGTAAGGGATCAGCTCTAGAAACCACCCTGCTCTATATAAATAACATGTATTTGTT
+CAGATGTTTGTCTTGATAATTGTCCTCCCTTTTTTTTAATTTTTTGTTCAAGAGATGCAA
+AAGCTTCAGGAGGATGGATCCCAGGAAAGAAATCAATGGGCTCTGTGAACTATTTTGTGG
+CTCAGTTACCAATACCACAAGAGCAATTACATTAAATTAGATGCCACTGAACTGGCAGCT
+TTTATTGACCCTCTTAAAGTCTTTCTCTCTCTCTTTCTCTCTTTCTCTCTCTCTCTCTTT
+CTCTCTCTCTCTCTCTCCCCCTCTCGCCTCTCACCCCTCCCTCACTTTTCTTGTGCAGTC
+ACACTCTGCAATTGGCACTGAAAGTGGCTCCTAGCAGTTTTGTTACACTGAAGGATGTGT
+CAACATTTTATTGTGTGATGATTCTAAAGTGTTTATTATGAAGGCGCTCCGGTTTGCATT
+GGGTTCAATTTGGCGCCAGCTAGATACACATTTGTTCTTAGATTTTTTTTTAACTGCTAT
+GCATGTTGGAGGGGAAGTTGGATGACATTGTATTTATTTTAAGTTGTCTTTTTGTTTTTC
+TAAGAGTGACAAAAGGAAGGGTGTTTTGAGAATAATCTTTTTTTAGATACTGATTTCTGC
+AAGCAAAAAACTTTTTCACATCTTAAAATAATTCCCTTTGTGAAAAAGATTATTTAAATT
+TGAGATACAGCTGTTATACACATTTATTGACTTCTCTTAGCATAGCAATTATTTACTCTA
+CAGGACATCCCTATGCCACATGTTATAAAAAGCCCAGTGCTTCTCCAAAGCCCTTTGATA
+ACTTAATAAGTTCTTGTAACCATTAATAAAAATTACTCTTGCTTCTCCTAATTTTTTCAT
+TGAAAAATGTCATGTGACAATCTGACAAAAGTAAACTTGAAGCTGAATTTTACGTCGTAA
+ATCTAAAGCAGATGGTACATTTGTTTTTTGTTGTTGATATTTTTAAAATAGCCTTTCTTA
+GTCCTTGTTTTTCATCTTCAGATATTTATTGAATACTTGCTGCATTTGACACACTGACCC
+TGGGACTCTGAAGTTCACAAAGTATAGTTAGGTAGTCCCAAAACTCAATGAATGTATAAT
+CTATTATGAAAAAGCGATTATGTTTGTATTTTCTGACACCTCAAATAATGTACAATCTGA
+GTATAGAGAAGGAAAAGATAACTTCTAAACTGGGGTTGTGAAGAGCACTGCTCCAGGCTA
+TATTTGAGCTGGAAGATGTTTAGGACTTCCGCATGTGACATTAGGATTTGAAATCCTGGA
+AAAAGAGCATGAGCAAAGCGAGGGAAACAACAGGACACAATAACTCACTGGGAGGCCACC
+TATTTTGACAAAGCCATAGGAAAGTGATTTAATAGAAGGCTGAAAGGTGAACCAAGATTT
+AATTGTAGAAGGTATTTACTGTCAATCTAAAGAAGCTATTTGTTATTCAGAAGATAATGG
+AATCACTGCTGAGATATTAGTTAAAATATATATATATATATATATATATATATATATATA
+TATATATATATATATAGCCACTAACAAATTTCTGTTTGGGAAAGATAAATCTGATGGTTG
+AGAATGGGAAAAATCAAAATGTAAAAAATAATAAAGTCAATAATATATTACTATGACTAT
+TATTAGTACTATGATAGTTAGAGACATTCATTGTCACATTTCCTCCTTTTGGCCCTAAAA
+TAGCTGTGAGGGATACGTCCATCTTTGCTCTTCTTCTTCTTCAATAGATCAGAAAACAGC
+CAGCTACTCTAGTCTCTCTGACGGGATCCTAACCTACTTCCAATTCTGTAGCCCTATGAG
+ATTGGCAAACTCTTTTGATGATATCTTGGGTAGTTACTTTCCAGCCAAGGTTTTTATGTG
+CCTTACCAGACTCCAGGGCACTGCTATGCAAGGGTAAATCTCATCAGATATCTCAAGTCA
+TGTTGGAGTCTTTTCCCAATTTCTTTCTCTTAGCACATTATCTCATCCCAATTTTCTAGG
+AAAATGAATCCTTCTAATTTTTTCCATATTCTATTCTGATGGAACCCTTGGAAATTCTGT
+ATTAGCACTAGGCAATGTGTCTCCTTGCATTTCTGAAACTCACACTATTTCATCAGGCTT
+TCCCATCCTTCAGCTAATGCAGTTGGCCAACTCTTTCCATGGGCTGACGAAGAGAGAAAC
+ACATTTTTAAGATAGTATAACTAACGAAACAGAGAGTAGAAGATACATTAATAAATCAAA
+AACAGTTCCAATTTTCTGAACCTAAGGACTGAAAGGTTCAATATTGAGAATCCCTTCCTT
+CTTGAAGCACTCACTTCTCTTGACCTACAAGACATAGAAATATTTTGGAAGACACAAATC
+CTCTTTCTCTCTCTGGCCAATCTCTCTCTACATTTCTGGTTTATTTTCCTCTTTTCATCC
+TTGAGGTGTTCCATATAATTATTAGTGGAAGTCAGCAGCAGAGTCAGGCTTTAGAAGAAA
+ATGAACTCAAGCTTAGACATTAAGAATTTTGTTCACAAGTAAAATAAGAGATATGATAAT
+TGTAGCATCAGTAGTGGATGAACTCCAAGGAAGGAAGGAGTAAAAGAACCAGAAAATAGG
+GAGAGGATGGTCAGGGAGACAGACTGAGAACTTAGTAAGATATTTCTATCTTGTAAGTGA
+AGGGAGGTAAAATGTTCCAAGAAGGACATTCTCAGTGATCAATAAGGTCAGATTTTCCCT
+ATAGATATAAAAGCTTATAATCCAACAAATTAGGAAAAAAGAAAGAGTAAAGTTTGAGAA
+GGCAGCAAGGTAAAGTGGATTTAGTATTGGATTAAACCAATGGTTGCATGAGAAGAAGAT
+AGTGAGTCTTAAAATAGGAAAGGAGCTATGCTAAATATTCTTTACAGATAGAAAGTCCAA
+TTTAAACTAACTTAGAGAAAAAATATATTCGGTTATGTAAGTGATCATTCAGGAAATCAG
+TAAGTGTCATCAGGTTCTGGTCTCTCTCCGCCTTTCAGTTTTGTTCTTGTCCATATGTCG
+ATTTTATTTTCAAACACAATGTGATTTCAGCATGGCTGCTAGTGGCTCCAAGCCCACATC
+TTCTCATGTCCAGAGCTAGTGAAAAGGAATGTCTTCTTTTCCCCAGTGCTTATGAAAGTA
+CACAGCCCCGATTCTCATTGGCCTGAGTTGGGTCAAGGTACATCACAAAAAACTTTAATT
+ATAGCTGGTGGTTTTCTGATTGATCAGACTCAAGGCTTCTACTCACAGCTGAAGTCACCT
+CTATCTAAAGTGTCAGGATTGAAAAGGGGAACAAATGGTTCCCCTGTAAAAGACTGGGTA
+AGTTACCAAGAAAAGGGTAAATAGATATCAGGTTGGTAAAACAAAAACAAACTTAGGTCT
+GCCTCTGAGAAGGAACAGGAACAACCCATGATATGTAATAGAGAGAAATAAAGAGGTCGT
+TTGGTGGCATCTGAGAGAGCTGTTGAGAACTGTTAGACATGAATGGCAAATTGTGAAGGA
+GTAATAAATGTGCGTGCACATTAGAAATAGGGGCAGCAAGAATGAATTAGTTTGGATATA
+TTTGAGGAGAAACACACACACACACACACACACACACACACACACACACATATATAGTTT
+CACATATAAAGTTTTTTTAAAATCCTGGTAATACAGGGCTGCATCAGAGTGAATTGTCCA
+AGTCACAGGATTCTTAGAATTTGGAGGGTAAATGGTAAGAGAAAGGATAACCTGGCATTC
+ACTCAAAAATTTAAGAATGCATTCAGTATTTGCGTACTTACTATGGACTAGGCACTATTC
+AAGGTACTGGAATAGAACGGTGAGTATGATGAGAAGAGTCCCAGGAAAACAGAAAATGAA
+CAAATAAAAAGTTAACATATTGTATACACGGAAGTGATGTATACAGAGAGGAAGAATAAC
+ACAGGGTAAGAAAATAGAAGCTTACATGAGACAGAAGACATTTTGGGATGTGGCCAATGA
+AGGAAATCCTAAGGAGATAACCTTTGGGCATAAATATAAATTAAGTTAGGGATCAGCCTA
+ATGAATATCTGGGGGAAGAGCACATGTAAAGGCCCCAAGTCTTGGGTGTTATAGAAGAGC
+AAGAATGACAACCAAGTTAGAGGGGAGTGGGCAATTTTCAAAGAACAACAGTGGAAGGGG
+CTGCAGATAGAGGCAGAGGGTTTTGGGCTTTAGGCTTTGGTAAAAAGATTGTGTTTTATC
+CTGAGTGTGTCAGGAAGCTCTGGAGAGGAACCTTGAATGGCACACTTTTCTGGATACTGT
+GTGAATTGCAAGGAAATACCAGTGAAAGCTAGAATACTTGAGTATTACAAGAAAAAAGAT
+CACGGTAGCTTGACCTACAGTGCAATGAAAAGATGAGAAATAGTCAATTCAGAATGCATT
+CTGAAGATAGAGATGAAAGTCTTGACAATGAGTAAGTTCTGGAGATGAAAAAAAGATTGA
+AACAAAAGAGGATTCCGTTTTCATGCCTATGCCACTGGGCAATGGTGAAGCCATTCTCCG
+GGATAGGGAAAACTGTGAGAAATACTAGGAAGAATGGCAATCTGGGGACAAGTAAGAGTT
+CAATTTTGGAGAATGTTAAGTTTTAAGTCCTGTTATACAACTGGATAAACAGACCCAGGG
+GGCATTTAGAGTTGAAATGGGAATTGGAATGTGGACTTCAGAGAGAGGGAGGAGATATGA
+TGAGCTGGGAGAAAGGGATAAGAGGTATATGACCACAACCTTTTCAACGCTTTGTCCTGG
+TGATAAGTTGTCATATTAGATTAGCCCTAATTGGGGTAGCTGGGATGGGATAATCACAGA
+TTTGAGTTATGTATGGTAAAAATGAGAGGCATTGGCGGGGTGTGGTGGCTCATGCCTGTA
+ATCCCCACACTTTGGGAGGCTGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCAAGACCA
+GCCTGACCAACATGGTGAAACCGCATCTCTGCTAAAGATAAAATATTAGCTGGGCATGGT
+GGTGGATGCCTGTAGTCCCAGCTACTCGGGACGCTGAGGCAGGAGAATGGCGTGAACCTG
+GGAGGCGGAGCTTGTGATGAGCCGAGATCCTGCCACTGCACTCCAGCCCGGGGCGACAGA
+GTGAGACTCTGTCTCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAA
+ATGATGCTAAAGTCAAACACACTCACACATCTGAGCAAATAGCAATGGCTCATAGAATAA
+GTAAATAAGTGCAAAAATATTTATTGCCAAATTTCAGAAGGCTTACAGGTCTGAAGCTAC
+AGAGAAAAGGAGGCTCAGGATAACCCATAGGAAAACTAATTACCTAGAAGTGAAGGAAAA
+GTCATTTGGCATATTCTACTTTAAAGGGACTGGCTTCTGTCTGTATGGATCAAAGGTGTC
+AGCTGTAGAATTTTAGAATATGAAAGATTTAATCACAACCTCTTACAGTCAAGATATAAT
+ATTTTATTTTTTCATGTGCTTGTTTGGGAGGCAAAAGGAAAGGTTACTAAATGGATCCTT
+CATTGGCAAAGGTCAAAAGTAGAATTTGATACCTTCTAAGTCTTATTTACAACTAAACTC
+TAAAGCCGTTTCAGGATTATACATTATCTAGGGAAGCAATGTGGTCTACAATAGTTCTCA
+CATTTTAGTGAACATTAAATACCCTGGGAACATGGTGAAGATGCTGTTTCCCTAGGCTTC
+ACTCCCATATATTTTGATTCCATAGATCAGGTTCAGGGCCAAAAATCTATATTTTTAACA
+AATATTCCAAGCATTTCTGATGCGGGGGTTGGGAGGAGGTCCCTGAACCAAGCCTTAAGA
+ATTTTGATCTGGGGATAATTATGACAGATCTTTAGAATAATCACTGGCCTAGGTGTCAAA
+AGTCACCACATTTCCGAAGCTGTTTATTCTTATTAAGAAATATTAATGCCATCCTTCCCC
+ATTTCAGTTACTGTCAGGTTAAAATGACACAATGCACTATGATTATAATATTCATAGATT
+GTTACTTATCAAGTCACAAGAGTGAAAGCTTGCTGGTTGCATGGGAAAGTGCTTAGAATA
+TTAAAGTACCATCTAACTGTAATTGTTAACAGGTAGGAATTAGACAGTAAAATTAAATGT
+CTGTAAGGAAAAAAAATTCTGTTTTGATATAAATTTGGTTTCCTTTCTCAAGCCTGCTGT
+CCTCAAGGGCCAAGGGTTAACAAAATTATGACATTTCCAGGTATTCTTTTCAATTTTAGT
+TTAAAACTTGGCTTCCTTTGGGTAAAGATTCAGCTAAATACAAGTATTACTCTTTCCGTC
+ACTATCCACCGTGCCTTACTTCCTCCCTGCCTCAAGGTCTTCACCTCCTGTTCTCACTTC
+TCCTTCCTCAGGCCTCTTATGTCCTTTTCCACCATGGCTGCAGGTGGAAAAGCAGCTGTG
+GGTTTACGTGCTTGTCCTCCTTAAGGGAGAGATGCTGTGTATCTGGTTGGTGCAATCCTT
+CTGTTTTCTGTTGTTACTGTCTTTGACCCGTCATAGAGGCAGGCAGGGTCCAGGTGGCTC
+ATTCAGCCCAAGCAGCACCCAACACTGGCCGCAGGATATAAAGCTTGCTATGTCTGTGGG
+TCCCCAGCTGTACCCTAGGGCAGGGAAGTATGGCCACATCCCTCAAAATTTATTCCAGAG
+GGGCTTCCATCCAGAGTCTTGGCTGATAGAGCCCGCTTACTGCAATAGGTAGCCCTGTGT
+GGTGCCTGGGAAGGTGGCTCACCCATTCAGATTTTTTCATAGGCCATTTTAGGCCCTTTG
+GAAACCTTGGATCTCTACCACTCCAACCCAGCTCTAAGGGAAATTGAGGGATATCCTTGC
+CCTTCCCACCAAGTTATGTCCCTTTTCAAGTTCTGTGCTATCTACACTGCAAAATTGCCT
+AAAGTTACTTGCAGTGCTGCCAAGCAATCATCACCAAACTCTAGTCTCCTGTATTCATAA
+TAATGTCTCTAATGTCCAGACAATGCTCTTAGAGGCTCTATCTTTAAGGGAAGACATTTT
+GAGTACACCCCCACAGTAGGGATGAAGAAGCTTACATTCTTCAATTTTCTTCTCTACTAC
+TTCTCTCTTTCCTTAGCTAGATTTCCCCTTTTTATCTCTGCTGTAATAAAAAGAAAATAA
+ATAATTTTGCCTCATTCACATTTGGTTTGAATTATGGGCTTCTGACATCATTATATGGTC
+TTCTTTGAATTTAGTATTTTTGGAATTCAGTATGTTTAATCTCAGCAGTGTCCTATATCT
+TAGGAATCTACGCATTTTCAGTTCAGTCACTAGGTGGGATAGAGTGCATGCTTATTACCA
+TTACTTGTAATTTCATTTTCTCCAACAGTACACCCTACATTTCACACACTCACAATCTTG
+GCATTTCATCACTGCTGTTGTTCAGATACATCATTCTGCTAGACTTTCCCAATCCAATCC
+CTGACTTCTACTTTCCTGAAAGAACTTGATAATAATTTCTTCAAGGAATCTTCTCAGAAC
+CCTCATTCTGTTTCTAGGGGCTCCCACAGTGAACTCTCATGAGTACTTTGTCCATATGTC
+TACTATTGTAATTAGCACATTATATTATAATTTCCTGTCCCAAGTCACACCACTAAATTA
+TAAACACTTTAAGGATATAAACAGTATGATTGAGTTGGTTTTTAATCATGATTTTTGCAT
+CTACAGGGACTGAAACCTGATAGACACTTTTAAAATGTTATTTTGAAATAACTAATTTAC
+CAATACATTAATTCCATTAATACTAAGCAAGGAAATATAATGGCAAATAACATTTATCAT
+GTAGTATATGTAAACTACTTAGATAAAAACAGTCACCAACTAGGTGCCAAGCAATGACGG
+GTTTTAGATCCTGGGGATATAAAGATGACCAAGACACAGACCTCGACAACAATGAGTGGC
+CTTCCTGTCTAGTAGCAAATAAACAAATAATTACAATGAATGTGGACTTAAAGATGAAGG
+AGAGTTTGAAAGGCAATGAGAGTTACAGCACGTACCAACATAGAGAGATGATAAAATGTC
+CAGCATGCCTGAGGACCATTAGAGGACTTGGTGTGACTAGAACGTGTTTTATGTTGGCTA
+TCGTAAGAGATAAGGCAGGAAAGAGTCTTCACGTGACACAGAAAGCTAATAAGAAGAACA
+TTGATAGTTCATTTGTGAGTGCCTATTATGTAGGCTGGAAGCATATGCAATGCATGCAGT
+ACCTATTTAATCTTCATAACAAATTAAATATTGTTAAGAGTTCACATAGATGAAAAGCTT
+TATTGAAAACTTCCAGCTTGGGGTTCAGCACATAAGAAGCTTGGAAGCTATCACTCTCTG
+CTAACAACAATTGAATCTCACAATGTGCAAAAAGAATTATATTCCACCAGTAAGAGAGAT
+TTATTTCACTTATGCAAGGATATACAATTAGTGTAATCTGTCACTTCAACAGGCTAAAGA
+AGAAAAATCACATGATTATATCAACAGATGCAGAAAAAGCATCTGACAAAATTTAACACT
+GATTAATGCTAAAAACTCTCAGCATACTAAAAATAGAGGGGAATTTTCTCAACTCAATAA
+AGACATCTACAAAACCTACAACTAACATCATACTTAATGGTGAGAAATTCAAAGCCTTCT
+CGCTAAGATTAGGAACACGGCAAGGATACACCCTCTTGCCACTGCTTTTCAGCATCATAC
+TGGGAGCTGTAGCACATGCAACAAGATAAGAAAAGGAAATAAAAAGGTATATGAATCAGG
+AAGAAAGAAAGAGAGTGTCTTTGTTCACAGATAACAAGATCATCCATGTAGAAAATCTGA
+AAAGAGTGGACCAAAAACCTCCTGGTACCAATAAGCACTTGCAGCAAGGTTGCAGGGTAC
+AAGGTTAATATACAAAATTCAATCATTCCCCTATATCCCAGTGATGAACAAATGGGATTT
+GAAGTTAAAAACACAACACAATTTACATTAACACCTCCAAAAAATGAAATACTTAGGTAT
+AAATCTGACAAAATAAATACAAAATCTATATGATAAAAACTATAAAATTGTGATGAAAGA
+TATCAAAGAACTAAATAAATAGATACATATTCCATGATCATTGATAAGGACCTGATATTG
+TCAAGATGTCAGTTCTTTCAAACTTGATGTATACATTCAGCACAATCCCAATCAGCATCC
+CAGCAAGTTATCTTGTGGATATCAACAAACTGATGCTAAAGTTTATATAAAGAGGCAAAA
+GACCCAACATAGCCAACTCAATATTGAAGGGAAACAAAGTTGAAGAACTGACATTACTTG
+ACTTCAAGACTTGCTGATAGCTACAGTAATCAAGGTAGTGTGTTACTGGCAAAAGAACAG
+ACAAAGAGATCAAAAGAATAGAATAAAGAACCCAGAAATAAGCCCACATAAATACATTCA
+ATGGATATTTGACAAAAGACTAAAAGCAATACAATGGAACAAAGATAATCTTTTCAACAA
+ATGGTGCTCAAACAACTGGACACTTAAATGCAAAAAAAAAAAAAAAAAAGAAAGAAAAAA
+AAGAATCTGGACACAGATCTTACACCCTTTACAAACATTACCTCCAAATGAATCACAAAC
+CAAATTACAAAATGCAAAATTATAAAACTTCTAAAAGATAACATAGGAGAAAACCTAAGT
+GACCTTGAGTATGGGATGGCATTTTAGATACAACACTGAAGGTACAATCTAGAAAAAAAA
+TAAAGAATTGATAAGCTGAACTTTATTAAAATTAAAATTTTCTGCACTGTGAACGACACT
+GTCAAGAGAAAAAGAAGACAAAACCGACTGAAAAGAAAATATTTGCAAAAGACAGTGATA
+TGGTTTGGCTCTGTGTCCCCACCCAAATCTCATCTTGAATTGTACTCCCGTAATTCCCAC
+GTGTTGTGTGAGGGACCCAGTGGGAGACTATTTAAATCATGGGGGCAGTTCTGCCCATAC
+TGTTCTTGTGGTAGTGAATAAGTCTCACAAGACCTGACAGTTTTATCAGGCGTTTCAGCT
+TTTGCATCTTCCTCGTTTTCTCTTGCTGCCGCCATGTAAGAAGTACCCTTTGCCTCCCCA
+CATGATTCTGAGGCCCTCCCCAGCCATGTGGAACCGTAAGTCCAATTAAACCTCTTTTTC
+TTCCCAGTCTCGGATATGTCTTTATCATCAATGTAAAAAAGGGACTAATACAGACACATC
+AGATAAAGAACTGTTATCCAAAATATACAAGGAACTCTTAAAATTCAACAATATAAAAAA
+CAACAATCCAATTTAAAAATGGGCAGAAGACCTAAACAGACATCTCATCAAAGGAGATCT
+ACTGAAGGAAAGTAAGCATATGGAAATATACTTAATAGTATATGTCATTAGAGAATTGAC
+AAGCAAAACGATCATAAGATCCTACTACATACCTATTAGAATGCCAACATCCAAAACACA
+GACAACACTAAATGCTGGTGAGGATGCGGGGCAACAGGAGCTCTCATCCATTTCTGGTGA
+GAATGCAAATAGTTACAGCTATGTTGACAGACAGTTTGGCAGTATCTTAGAAAGCTAAAC
+GGACTTTTTCTATGCAATCCAGCAATCACACTCCTTGGTATTTACCTAAACGAGCTGAAA
+ACTTATATCCACATAACATCCCAGTACAGGGTGTATGCAGCAGCTTTATTGCCAAAATTT
+GGAAGTGACCATGAAGCCCTTCAGTAGGTGAGCTGAAAAATAAACAACCACACAATAGAA
+TATTTTTCAATGCTGAAAAGAAACACTATATCAAGCCAGGAAAAAAACATGAAGGAAACT
+TAAATGCATATTACTAAGTGAAAGAAGCCAATCTGAAAAAGCTATATATTGCAGGATTCC
+AACATTCTATATGATATTCTGGAAAAGGCAAAACTATGAAAACAGTAAAAAAGATTAGTG
+TTTGTCTGAGGTTTGTGTGGAGGGAGAAATGAATAGGTGGAGTACAGAAGATGTTTTGGG
+CAAACTATTCTGCATGATATTACGATTGTAGATATCTGTCATTGTACATTGGTCAAAACC
+CAAAGGATGTACAACATGAAGAGTGAACCTTAGTGTAAATTATGGACTTTGAGTCATAAT
+GATGTGCAAATATAAGTTCATTGATTGTGACAGATTTACCACTTTTGTGTGAGAAGTCTA
+TAGTGCGGGAGGTTGTGTTTGTGCGAGGACAGGGGATATATGAGATATCTCTGTATTTTT
+TATTTAATTTTGCTGTGAACCTAAAACTTTTCCAAAAATAAGGTTTATTATTTCTCTAAT
+AAAGCTTTATTCAAATTTAAGTGCACTCTCTAAAAGACAAAGTTTGATTATTATTGAATG
+CATTTAATTATTAAATTATTATCTTCCCCATATTGCACAACCATGACTACTGAAACCATA
+AGGCCTACAAATATAGCCCATTCTGGAACTCAAGCAATTAAGGACTAATCCTGTGAATAC
+ACTTAAGCACATCTCATCTTCAAATGATGTCTAGTTACAGTGACCCTGTGCCAAGTCTGG
+TATGTAGGCACAAACAACTCAATGTTTAATCAACTAAAGCCTTGCCTTCTTCACTCAATG
+CCAGTTCTCAGCTCACAAAGTGTACTTCTCTGCTGATTCCCCATTTTCATCATAGATACC
+AACTGGGACTAGCACTTTGAAGTGGTGGGTATTAGTCCGTTTTCACGCTGCTGATAAAGA
+CATAACGAAGACTGGGCAATTTACAAAGGAAAGATTAATGGAGAACTCACAGTTGCAGAT
+GGCTGGGGAAGCTTCACAGTCATAGTGGATGGCAAGGAGGAGCAAATACATTCTACATGG
+AAGGCAGCAGGCAAAGAGAGAGTTGTGCAGAAAAACTCCCGTTTTTAAAATCGTCAGATC
+TCATGAGACTTACTCACTGTCATGAGAACAGAATGGGAAAGACCTGCCCCAGTGATTCAG
+TTACCTCCCACTGGGTCCCTTCCACAACACATGGGAATTCAAGATGAGATTTAGGTGGGG
+ACACAGCCAAACCATATCATGGTGCATTGCCATTTCCCACTCTTGGCATTGTCTGCTACA
+TCTGTCAACGTACCGGAACTAAGGACTTCACCTGGCCCTTCCTCTTAATTAGGTCACTAG
+ATGGGTTAGCATGGAGCCCCAAGTACTTCTTTAAAATTTTGGCAGTTAAAACTGATATTC
+ATCCTCCTCAAAACACACTTTTAAATTATACCCTCCTCTAACACTAGTCCTGACAACTTC
+CCCTATAGACTCTTTTTTTTCCAGGCCACATCATCCTATAAGTTTCTTTATGCCTTCTGC
+TTAAACACATGAAAACTATAAGATTGAATATGTTTGTGTGTGTTTGTCTGTATGTGTGTG
+TGTGTACACATATATTTCAGTATACTATATTTAATATAGTTAATCACATATTTTAAGAAT
+ATATATATACATTCTATATAATTTCTTCTATTCTTCAGTTCCTTTAAACCCCTGTGTGAT
+AGAAAGAATAATGATTCCCAAAAATGCATAGCCTGAATCTAATAATGAAATATGAGACAA
+ACAAATTGAAGGACATTACACAATGCCTGTCTGCACTTTTCAAAAATGTCGAGATTATGA
+AAGACAAGGTAAGACTGAGGAACTCTTCCTGATTAAATGATCCCAAAGCTAACTGAAAAT
+TTAAACAACACTGTACTTGATCCTGCATTGGATCCTGAAATAAAACTCCTCACTCTTTTC
+TTTTTCCATAAAGGGCAGTGATGGCAGTAATGGGACAGCTGATAGAATATTACTAAGATA
+TCTACATTAGATGTTGCTATACTATCAGTGTTGATTTTCTGACTGATAATTGCACTGTTG
+CTCTGTAAGATAATATTCTTTGGGGGAAATACCATGAAGTATTTGGGGTAAAGGGACATA
+AAGTGTACAACTACCTCCTAATGGTTCAGAAAAAGAAAGAGAAGCCAATATAACAATTTG
+GGAACCTGGGTCAATAGTTCACAGGAATTCTTTGAACTAGTCTTGCACCTTTCCTGTACA
+TTACAAATAAAGTATTTTTAATACTAATACACACAACAACATGGCTGAATTTTATAATTA
+CTGTATTATGTTAAGTAGAAGAAGCAAAACACTAAATTTCTATTATATTTGGACTGACAT
+AGCTCAATAAGTGAAACTTTGCATTTGGCCATTAGATGAGTGAAGGAAATAGTACAGCCC
+TACAGTTTGAAAATATAAAATTCTTTTTGGTGTCAAATGAATGAGTCTATTCTTGGTACG
+TGACACTAAAGAATAATCAAGATAATGATAAGGCCAAATAGATTGAGCAGGTTTTATATT
+CATCACGTTTCAGACATTATCAATAAATGTTTGTAATTAAAAGAAAGGCAGCCCCTAAAA
+GGTAACTGAACTCATCACATCTAATTTGAGACCATTTAAGAAGGTAAGAGAGTAAAGTTC
+AAACTTTGTCAACAAGTTCTTCTTACCTGGATTATTTCACAAGATACAGATAGAGTTTTT
+TTAAAAAAAACAGGATCAAAATTGATGCTGTTATGCATGTTAATCATTTTAGTGATTTAT
+TTAAGCAATGTAACAGTAGAGAAGGAGGAGAGGGAAGGGAAGAAGAAAGAAAAGAAAGCG
+GCAATAGAGAGCGGGAAAGAGGCTAAGAGACAGGATGCTAAGTGACAGGATGCTAAGTAG
+AGACTTTATATCAGATTTGGCTTTCATACTCAAGAAACTTGAAACAGCCTCAGCACCTCA
+GAGCATGGTTCTGGAAGGCCCTAATGCTGTTGAGCACAGTTGCTCATGGGCATCCAGAAG
+CTCACCCAATATATAAGGCAGATGCTAGACATTTCCAAGTCTAACCTCCAATCTTAAAGT
+TGCCCTGAGTTCTGTAATTTCCAGCCACACAATGACAGTAGTTCACCTTCGCTAGAGCAA
+AATCCTCATAAACTCACACCGTGTTTGTGTAAAGCTCTTGCAGGACTTTACCCACTCCCT
+GGTTTATCTATTGCTCCTTTAGGACAATGATATGGAAGAATGACAATACAGGCTTTGCAG
+ACAGGCAGACCAACTGACTTAGGTTTGAATTTTATGTCTGACATTTATTAATAAGGCTCT
+CTATAAACCTCAGTTTCCACACCTACAAAATAAGAATTATGCTAAATACTACACAAAATT
+CCTTTAAGAACTGAAAAAAAACAAGGAAATGCCTTACACTTGAAAAATAAATAAGCAATT
+TTAGTTCCCTCTCCTTTGGAACTGAGTCTAGGATAAACACTTCATAGTAGAATGATTTAT
+AATCCTTTGGGTATATACCCAGTAATGGGATTGCTGGGTCAAATGGTAGTTCTGGTTCTA
+GATCCTTGAGGAATTGCCACACTGTCTTCCACAATGGTTGAACTAATTTACACTCCCACC
+AGCAGTGTAAAAGCTTTCCTATTTCTCCACGTCCTCTCCAGCATCTATTGTTTCCTGACA
+TTTTAATAATCGCCATTCTAACTGGTGTGAGACGGTATCTCAGATTGGTACAGTAAACCA
+CCATGGCACGTGGATAGCTATGTAACAAACCTGCATGTTCTGCACATCTATCCCAGAACT
+TAAAGTATAATAATAAAAAAATTCATTCTTCTGAAATCAGATCATTTTTGCTAGTCCTTA
+ATCTATTCCATGATTTCGATCTACTATTCTTTCTACATCTAGAGCCATAAGTTTGAGACA
+AGTCTGGACAACAAAGCGAAACCCCCATCACTACAAAAAATTAAAAAATAATTAGCCAGG
+CCTGGTGACATGCACCTGTAGTCCCAGCTACTTTCGAGACTGAGGTGAGAAGAGTTCTTG
+AGCCCAGGAGTTCAAGACTACAGTGAGCCATGATTGTGCCGCCGCACTTCAGCCTGGGGA
+ACAGAGCAAGACCCTGTCTCTAAATAAATAAATAAATAAAAATGTATTCTCTTACATTTC
+TGGAGGATACAAATCCAAACAAAAAGTGGTGGCAGGGTTGTGCTCCCTCCAGAGACTCTA
+GGGCAGAAAATGCTTTGCCTCTCCCAGCTTCTGATGGCTGTCAGCACTCCTGGGCTTGCA
+AGGACATCACTCATCTCGGCCTCTGTGGTCACATTGTCTTCTCCACATGTGCCTGTGTGT
+TGTTTTTTTCTGAGTGTCTCTTCTTAGGGCAATTGTCATTGGATTTAAGGCCCACCTGCC
+TAGTCTTGCACGGTATCTTCATCCCGGGATGCTTAATTTCATTATTTCTGCAAAGACTCT
+TTCTCCAAATAAGATAACATTCCCAGGTTCCATGGAGTAGGATGGGAAATATTTTTTTGA
+GTGCTATTATTTTGGCTGGCTACTCAGTCTTAAACTCAAGAACAGAATAATATAGTAAAA
+AAGTTGCGTATGGGCTAGTTATTTTTTCTGAACTAGGGATTTGTGTTGTGACTTGTATTT
+TTGTTGTTTTTAAACATGTACTAGTAGTATATTAAAAAGAGCAAATTTGTAAAGGAATGA
+CATAATAAAAATGATTAATAATGGGAGGGTCAAAACAATTGAATCATAGCACTGAGATAT
+GCTGGAGGACTTTCTAATACTTTTTACTGTATTTCTCCTCAAGTACTATATCATTTTATG
+ATAAATTTTGTGCCACTTGCAGTAAAATATCTGATGAAAAAGCAAATGAAAATTACTGTT
+TTCTTCAATGATTTCAACACCTATACATAAGATTTTGTAATTGCAAAATTCTGTAATCCA
+TTTCATTAATGTGATTCCATTTCCTCTTCTGATAAGCCTCAAATCAACATAGCCTCATGC
+CAGACCTTGGCATTATAGAACCCTGACTGTGCTCTACGTTCTTATTCTTCCCCAGGAAAA
+ACCTCCTTTCCTGTTGTATCTTCTTACACTCTTGCAAACACCCAGAGCTGGATCCTTATC
+GTCAATGGAGATTCCAGTAATTTAAGCCTTCCTACTTCAAAGAGTTAATGTGCCCTCTGG
+TCACAGTAAACATTCTACCAGTAGTTTAGACTCTGGCCAGCAGTCTTTGCCCAGATACCC
+TACAAAATAGAGCCTTTTATGGTGGCATCAATCTCTGTCATTCCTCCTGGGATGTGGTAT
+TGCTTCTGTTTTACTGCATTGCCCGGGAATCAGGTCGTTTCAGAGACTTCCGCTTGATCT
+CTCCTACAAAATTTACTCTTGCATTACAGGTTACGGAACTGTATGAGATAACTGCCAAAT
+GCCAATTATCTTATCACTGAAAGTATATTCAGTGCTAGACCAATAAGGTATATTCATGGA
+CCTATTGAACCCGCTGTAGGTTGGACTTGGCCAAAACTCCATTTATCACCTAGTCTCCAA
+AAGGAGGACAGTGGCAGCATATTGTGTTTCCTGGTATACGTTTAAGCTCAGATCTAAAAC
+TAAGAGTTCTTGAAAAGTTTTCATATTATCCTTTCCCCCACATATTTCTGCTCTTGCCGA
+TTGTCTCAGGTTCTTCTGGAGAAGGAATGATAAATATTTACCAAATATATTCGTAGTGGT
+TTTGCTGGGTCCATTCTCAATGGGATGCTTCCCTACACGCCCCTTCAATCAATGGTCTCC
+ATGCTGTATGCTCGTGAACTGACGGCGATTTGGAAATTAAGCAAAGGACAGCAATATTCT
+ACTGGGGGCAGTGGTTGCCTTTGTGACAACAGGATCAGTGTGAACCTTCACTGAGACCGC
+CCTGGCCAAGAAGCAATGCTGCTATCTTCAGAGACAGACAGGACTAAGTGGACTTGCAGT
+CACTCATAAAGGAGGTCTGGCAAATCAGCAACTCTATATTGCTCTCACTGGTAACCTAGA
+AATTCCTGCCACCTATTCACCAGCTGATGTGAATTCTTAACTTTCATAACACCCCCTGTC
+CCAATGTTTTTCTCCATTCTACTTCTTAGGTGATCGATGATTTATAGAGATGTAGCTGAG
+GCATGTCTGTAACTGGTCCTGTGCACAGGCACAAACTGGCTTCAGATACACTCTCTAAAG
+TTCTTGCTTATCTCATATTTGCTCCCATTTCTGTTCCTGCCTCTACCTTCATTCATGTTG
+ACTTTATTCTTTTTCAGTTTATTCAGTCTTTGCTGTCCACTCTTCTTGTGTGCTGTTCTC
+ATCTAAGCTCATTTCATTTCTTTTTGCTTATGATTTCTACACTGGTTTATTCAAAAAGTA
+TGTCCCTGGGACTTCTTCCTAATAGGTGCTATAATTTGTTCTGGGGAAATTGTAAAAACA
+AAGAAACAAAGAAATTCCCATACCTGCCATCAACTCTATGTGAATCATTAAGATTTTTGT
+TTTTATTTCAAATAGGTTTAACAAATGCACAATGAGCTGACTGCTTCTAATCCCCAGACT
+ACCTTATTTGTCTCCACTATTTCAACAAATAGCACATGGATGGTAGACTGGTCCATTGCC
+TGATAATCCACGTGACAGACATAGTTCTTTGCCTACTCAAAATTATTTCTCACTTCTTTC
+TTGTTATTTTAGCCATTTCATTTGTGTATTGGATGGAAATATCTTAAATTCTGAGGTTTG
+TAACCTAGTTCTGGGCAATTGAGATATAAGGGAAAAGCTGTTGGTAAGGAGGGATGGCGC
+GCCTTGGAGAGATTTTGATAAAAGACAAAAAACATCATGAGGAAATTTTCTGTTTTCATT
+GCCCCTTCCTTCCAGCTTTTGTTGTTCCCGTGAAGATACATCAACAGGACCATGAGGGAG
+AAGCCAAGAAAAAGGCATAGAAGCTGACTTGATGCTTCGGTATCACTGAAGTGATGGACC
+AATGTCGGAGCTACCTACTGCTATGCTTCCTATAATGGGAGATATTTAAATGTCTTAAGA
+TAGTGTTGGTCAGCCATTGTGTTGTTATTCTCTCAACACATTCCTAATTCATAATATATT
+TCTAATACAATTACCCTTTAATTCTGCTCTCCATACAACAAATTCTGAAGACGTTCTATT
+CTTTCTGAAGTAAGAACTCACCTCTTCTGGTGGCCTCATCCTGTGTTAGTGAGTTCAATG
+TTTACTCTACTCAAAACAAACCAAGAAACCAAAAAAAAAAAACAGCAAATATGTTTTGTA
+TCAGCATTCACTTATCTTAACACTTGCCTGTGTGTAAGGAGACATATCCTCATGTCCCTC
+CCTTCAGTCTTGAGATACATTACTTTTCACTTTGCTAAAGCTAACTTAGATGTCTTTTAA
+GACCACCTTTTCTCCTCCTTGAGGACATCTTTTTCCACAGCTGTCCACAGTTGGCTGATC
+TGAATTCTCTTACTGATTTAGTTCCTTTTTTTCTCTGTCTTCAAGTCTGCCTAAAATCAT
+TATTATTTATTTATTATTGAGATAGGGTCTTGTTCTGTAGCCCAGGCTGGAGTGGAATGG
+AGCATTCATAGCTGACTATGGCCTGAAACTCCTGGCTTCATGCCATCCTCCTGCCTTGGG
+TAAACTTACTTTATTCTGAAATTTAAAAATTAGTCAATATCACTCTACTGTCCTTTTATA
+AGCCTCTTTAAAAATGTTCAGTGTCTTTATTTCCTTCCTATTCTCTCATAACCTCTTTCA
+ATCAGGCACCTGCTCCCACTACTGGCCTTAAACTTTCCCACTTGTCATTGACAAATTCAG
+TGGCTTCTACTTGTCATTCTTCTCCTTTCAGCCCTAAGGCAGTTGATCGTCCCTTTTCCA
+CAGAATTTTTTCCTCCCTCAGTTTCCATGAACTACAATATACTAATTCTGTGTCTCTCTG
+ATCATCCCTTTGATATTCATTGTGCACTTAGTTTATTCTTCCCTCTGGAAAGTTGCATTC
+CAAATATTCAGGCCTTCTGTTCTCTTCTATCTCTCTCTCTTTTTTTTTTCTTGAGATGGA
+GTCTTGCTCTGTCGCCCAGGCTGGAGTGCAGTGGCGTGATCTCAGCTCACTGCAAGCTCC
+GCCTCCTGGGTTCAAGAGATTCTCCTGCCTCAGCCTCCTGAGTAGCTGGGATTACAGGCA
+CGTGCCACCATGCCTGGCTAATATTTTGTATTTTTAGTAGAGATGGGATTTCACCATGTT
+GGTCAGGCTGGTCTTGGACTCCTGACCTCGTGATCCGCCCACCGTGGCCCCACAAAATGC
+TGGGATAACAGGTGTTAGCCACCATGCCCAGCCTGTTTTCTTCTCTTAATGACCTTTCCT
+TTGTGGAGTTCATTCATTCTCACTGGTAAGATGTCGTTTTGATGGAAATCATACCAGACA
+GGGATTTGGGACAGACTCTTGAACCCAATTCACAGGCTTGTGTCTCAACTTCCCAGGAAC
+TCAATTTTTTTCATTCAGATCTAAAACATTGAAGGTAAAACATTTCAGGTGTAAAACACT
+GTTATCCCTGAAATCTTTGTCTCTGATCCTTCTTACTATTTTCAAGTAGCCATTCCACTG
+CTTTTAAAAATCAATGTAAGTAAAACCAAGTGCTTCCTTTTACTTCTCCTAAGGCTTTGC
+TTTCCAATGGCTCCATTATTACTTTTTCCATTCATAGGTCCCCTCCTTGACTATATGGTT
+GCCCACATTTCTTAATTTTCATTAAATATTGTTTCAATTATTGTACTCAGCTCCTCCAAA
+AACTTGATTAACTTCATTTTGTTTGCAACATTTTAATTAATTCTTATTTTCTCATTTTCA
+ATACCCTTTTAATCTGGCCCCCATGTCAAGTACGTTTTCTACTTCTACTCTCTGTACTTC
+TAAAGCTATTTCCCTAAATGCTTGGAAAATGCCTCATGTTTGTTTCTACTTCTGTAGCTT
+TGCTCGTATCTTTCTCCTGTCTGAAATTATCCCCAATTCCCCCTAGCTATCAAAATACTG
+TTTATTTAAAAACCCCTTCCTCCAAGAAATCATCTCAAACTCATCCTTGTCTTCACTTTG
+ACTCTTTCAAAACTCTTATTCAATGAATGGTCAGCATACCATACAAAATTATAGCTCACA
+AGAGTGTAGAGTTTACATCTTAGGATTCATCTATATGTCATCATGTATGGTTTGCCAATT
+GTTTCATATGGGTGAGGGAATATTTTCAACACCCTAAAGGCATCCTGGGAGAAATTTCAT
+GCCTTTTGGACCTATCATTTGTCAATCACCTCTTGAGTGGGTCACATATATTAGCAATAA
+TCCTTTTAAAAACTAGATAAATTATTATTATTATTCAAATTTTATAGTCAAAACAATAAA
+ATTCTGAGAGATTCAGTGATTGACCCAAATTTACAATGTGAGAGCCAAGAAGTTCCAAAT
+CAATCTATCTCTAAAGCCCAAGCTTTAGCTTGTTGGTGAGTGTAGTAAAGAAACTCAGAA
+AATACTCACAGATTAATAAACCATCACGAGCTTTGTGACCCAATAGGGAGCAGGAGAGAT
+ATATAATTCAACTCAGGCATTTGAAATTCTTTTATTCTTAGAGACTGACCTTAAACCTAG
+TATCGCAATAAGTAGTAGGAACCTCCTCAATAGTGTGAGATGATTCAACAGCTTCAATAT
+TTCACAAATCACATTTGTATCAGCTTGTGACTTGCTGGACAATCTAATGGTGCCTTGGTC
+TCATCATACACACTGGGTAAATTCATGTTTTCACACTAGACCATCTGTTCTGTGCTGTGA
+ATAAAGAGGTAGAAAAAATAAAAATCAAAACTTCACATTCATAAGTGCACAAATATGATG
+CATTTTATTTGTGGAAAAAATACCATTTCATCTGATAAAATAATGGAATTAAAATATTTG
+GGATAAATTTTAATTAGGTGAATAAAACTGAAGTGTTGTGTGTTTATACGTCTGTGTGTA
+CACACACTCCTGTAAATCAGAAGCTGGGTGTCAGATTCTGTTTAGGGATTCTTTTTTATC
+TTCTCTACACCTTCATTCCGTATTCATCTTGGACTTAGTATAAAACTAGTCTCGCTGTTG
+CCCAGGCTGGAGTGCAGTGGTGTGATCTCTGCTCACTGCAACCTCCGCCTCCAGGGTTCA
+AGCGATTCTCCTGCCTCAGCCTCTGGAGTAGCTGGGATTACAGGCGCGCACCACCACCCC
+CAGCTAATTTTTTGTATTTTTAGTAGAGACGGGGTGTCAGCATGTTAGCCAGGATGGTCT
+CGATCTCCTGACGTCGTGAGCCATCCACTTCGGCCTCCCAAAGTGAGATCCATTTTTTAT
+ATTAGGATCCACTAGCCTACATTTCAGATATGTCACCCATGAATATATTTAGTTTGAAAA
+AGGAAATGAATTGTGACCACAGAAAACATTGCTTTCTATTTTATTTGCCAGCATTGAGAA
+CAAGGTAAGTGTGAAAACTCAAAGTGTGCATAAGATTGTTCATAATGCTGACCCTTGGGA
+GAGCAATGAGAGAGGAAGCAACACAGCAGAGAGGCAGGACCCCGGCTCAGCCTGAGCCAC
+CACACCTGGGACACGGCGATGCTGGCCAGCTTTCTCCATTCACTGTCTTGAAATGACCAC
+ATCATTATTTCTAAATTAAGGAACATAATTTATGTAACTCATGGGACTCTTTTGGAACAA
+ATGGCACTGAGACAAAGTTCAGACCAATGTTCTAAGAAATTTAACTTCCCTGAGAAACAA
+ACTATAATAGAAAAACTCTGTGTATTCATTTGAATAAACATTCATTGAACACCTATTCTG
+GGCCAAGTGCTATATTAAATGCTGTTGATAGAGGAAAACTAGCAAGACTGGACTTTATCC
+TCAAGGATTTCACAGTATAAGTGAGAAATTAAGCCTTCAGTTATAATGTGAAGTGTACTC
+CGGAAAAAATGTACCAAAGAAACGTGTAAAGGAAGATTAGAAAACTAAGGATGAGGAGCT
+TACCTCTAAATGCAGTTGGGGCTGGGCACGGTGGCTCACGTCTGTACTGCTAGCATTTTG
+AAAGGCCAAGGAGGGTAGATCTCCTAAGGTCACGAGTTCAAGACAAGTCTGGCCAACATG
+GTGAAATCTTGTGTGTACTAAAACTACAAAAAAATTAGCTGGGCATTGTGGCATGTGCCT
+GTAATCCCAGCTGCTAGGAGGCTGAGGCAAGAGAATCGCTTGAACCCGGGAGGCAGAGGC
+GACAGTGAGCCAAGATCTTGACACTGCACTCCAGCCTTGGCGACAGAGTGGGACTCCATC
+TCAAAAAATAAAAATAAATAAATAAATAAATAAATGAATGTGGTGGGAATTTGAACTGAG
+CACTGACTTATGAATAAAGATAACTCATGAGTAAAGATATATTACTACTGACTTATGAAT
+AAACTGACTGACTTAGGGTCAGTTTATTATTGGCTTATCAGTGAAGAGAGTTTCCTAGAG
+TTTACTAACATATTTATAGTGAAATATATATATTGCAGAATAGTTTATGATAGTTACCAT
+TACCGTGCACCAAGTTCAGTGTTTCATGCCCACACATGATTAAAATGGTTTTTGAAAAAG
+TTAGATATCCATTTTGGGGGATATAGGGAGGTAATAATCTATTTGTAGACTACATTATGG
+CAAAACAGTTTAACATTCTCACAAAAAAATGCTGTATGTATGATTAGCAAGAGAAAACAG
+TTTCAAGATCTTAGTAATTATGATCTAGTATAGGAATTGAATCTACTGTCAGAAGATTAA
+ATTGAAATGCCAAGTTTGTTAGTAAGATCTAAGACCATGAGCACGTTATCCCTCTGTTAT
+GTGGTTTTATGTTATCATCATTAAAATTATGTAATATCTATATTGAAGGGTAAATTATGA
+GGAGAAAGAGAGGGAGAGAGAGATCTTACATATAAATCTCTTTTTGTATATTTGGCAAAA
+TTAAAAATACTATATTGCTTTCCACCTCCTAAAACCTGATGCTATTTTTGGAAGCAGATT
+AATTATTTTGCAAGATGAACAGATCATAAGTTTCTTTCATTTATTAAAATTAATTTATTA
+AAATATCACATACTAGGTAAATGTTTTTGCCAAATATTTGAAATACAAAATGTTTAAAAC
+TGAAGGTGCGATATCAGTATCCAGCTGAGTGGACCATTCTTACTCATGAATAACAGAGGG
+GGCAAGCAGAACATTCGTGAATCACTTCTCCTGTACTATATAAACATTAGTACTTTCTGC
+TTTCAAATTTAGAAGAGAACAGAGGCCTGCATCTCACCTATGAAGCAAATGGGAAATGTG
+GGGAAATGGGTGTGAAAGAGAATGAAGTAAGCTGCAAACAAAGTTTTATTCTTAAGACTA
+GGTTTAACACATAATAATAATAAAAGATGTCCCACAACAGTGGGAATAGATCAATTCCCA
+ACCATGAAATTGTTTTAAAAAAACTATTCAAGGCCGGGCACGGTGGCTCACACCTGTAAC
+CACAGCACTTTGGGAGGCTGAGGCGGGCAGATCATGAGGTCAGGAGATCGAGACCATCCT
+GGCCAACATGGTGAAACTCCGTCTCTACTGAACAAAAAATACACAAATTAGCCAGGCATG
+GTGGCATATGCCGGTAATCTCAGCTACTGGGGAATCTGAGGCAGGAGAATCGCTTGAACC
+GGGGAGGCGGAGGTTGCAGTGAGCCGAGATCTCGCCACTGCACTCCAGCCTGGCGACAGA
+GCGAGGTTCCGACTAAAAAAAAAAAAAAAACGCAACTATTCAATTCCGTCAAGTTGAGGA
+ATAGAACAAATGTCGCCCATTTCTGGCATTCCACAATTTCAAACCCATGTGTTTTAAATA
+TGGGTTCAGACCTCTTTGCATTCAAGACTCAAACATTTTGCATAGAATTAATAATTCTCA
+CATTTTCCTGTGAGGGAGAAGGAGGCACAACTGTGCTCATCCACATTTTATAGGGTTGGC
+AAGATACTGGTGTGATGTTATCCAAAGCCATAGAGATTGTTGCCAAGACTATAGTTCATA
+TCAGAACTGCAGTGAAAATGCAGTCATTATAATTCTAAGAATTCATTGTAACTGTAATTC
+ATCTCAAAATAAAAACAATGTACTTAAATTTTTTCCTGAATAAATATATTCATAAAATAA
+TTTTTTAGCTGACCAACCAGGTTATGCTTGAGTGAAAGTCTTTTCATAATAAAGTATAGT
+AAAAATGAAAAATTTTAATATAAAACTACTAAAATTAGAAACAATATTCTATTTCCATCC
+CAAATATTAGTTGAAGATCTTTTATATCCCATTCCACAGCTTCAAATAGTGGAGATACAG
+AAATTTATGTAACCCTTATGAATTTTAGGGTCCAGTTTGGAGATAATGCATTCATACAAA
+GAAAAAGATAACCAATGATACAAGACAGTAGTAATAGATATGATCAATTTTATTCTGTCT
+GCCTACGATATGATAGTCCTAAGTGTTTCCAGTATATTTTATTGTTTGAATCTCACATCT
+GCCTTTTAAAATACATCTTTATACTGCGGTAATCCAGATAAAGAAACAAGCTCAAAGAGG
+TTATGTAGTTTGCCTAAAGCGCTATAGCTAGAAGTTGTAGAGCCAAATTCGGAAACCAAG
+TCAGTTGGATTCAGTCTCACTGAACCCTAAGAAGTATTTACAGTAGATTCTGCCTGACAT
+TAAAAGAATGAGAGATGGGTTGCTACCGAGGCCTGAATTTAGCTCCTACAAATAGATAGG
+AGAAAGATATAGAAGACATTCTAGGTAGAGTTAAACGAGAAAAAATATGAAGCCCCCGCT
+ATGAGATAACTTCAGCCCCTTGGAATGAATGTCCACACAGCTGGGGAACCTTAGGATTAA
+TAATCAAAGATCAGGCAAAGAGCCTCAACGGTAAACGTTGAAATAGACCAATGTTAATTT
+ATAGACACGTTGATTTGTTTGGTGGTAGTAAAGCTGAGTGGTGGGGAACATTATGAAGGA
+AGTACCCTGCAGGTCTTGGTGGCTGAGTCAATAAAAAAGGGAGAAAATAAAATTGGTCAA
+ATGTTCCCACTTTCTGTCCCTTCCTCTGCTGTGCATTTATTCCTCTTTTGTTCTAACCAA
+AGAGATATTTGTAGGGTTCTAGAGAAGTCACTTCAAACCATTGGCCTTAAAATATTCACC
+TAAACAATGAGGGGTTTTGACTAAAAGATCGCTAAGGACCCTTCTAGCTGCACATTCAAA
+TGATGTTTTGCTTATGGGCATCCAATAAATAATTATTAAATAATATTTAATAAATAATTC
+TTGAATAAACGGACCCCTACTTTCCGCATGGGAATTTATTATAACTTCCTAAATGTAGGA
+CACAGAAGCAAGTATAAGGAGACTACTGGTAATGATGACTGTATTTTAGAGCACTGCAAA
+TTTTTTACCTTTTGATGAGCAATATAAATTAGAGGAGAAGAAGAAAGATGTAAAATTTCA
+CATTCAACAGGGGAAAATAAACGACAAAAACAATATTCATTTCAAAATAGGCATTTTTCT
+TTTTGTAGCTTCAATGGGCTTGCTGGGCAAATCTGCTCCTATCAGTAGTAAATGTCACTC
+AAAAAAAGGCACTATATGATTGACAACATAGAAAAAAAGCTGATGAATTATTCACCAAAG
+CACTAAGATTCACAGCCTATAGTAAAACAATTTACAATTAAAAAAATTATGAGAGTCAAA
+GTCTTCTTCACAAAGTGTAAGCCTATTTTTGTAACTAACAAAACTCAAATGCTGAAATAA
+AATAGAAAAACATCACAATAATCTCATGAATTTTTCCCTGTGAAAACGGAGCTGACATCT
+CAAAGGCTTACGTAGACTTTTTTCTAAAGATAAGGCTGTAGATGTTTTTAAAACAGCCTC
+TGAGAGAGATGTCAGTGTTCTTTAAGTGTGGTTTCAAGAGGATTTTAAGGAAAGTTAATA
+CAAAAAATCTTTAATAGAAAAAAAGAATGTTGGCTGTGTAATAGCCAGCAAAATTTTAGT
+CATCAAATATAGCAATTGAAGTGGAAAAATTGAGTCAGGGAGAACATTTAGTATTATCCT
+TTTAATAACATTGAAGACATTTGGGGTTTACTCAATCTCTCCATATTGGGTTAGCAGAGG
+CTCAATGAGTGTGCTTTGCAAATGTGACCTCTTAGATCAACTAGAATAATTTTGATACCT
+CTATCATTGGTTAAGAATAATATTGGACAACGGATGCATTTGCACAGACTCAAATCCGTT
+CACATTGCTAAAGTATCAACCCAAAGGTCTTTTCTTATAAAAAGTATTCTGTCCATTCTT
+AAACATGAAGGGTGACATGTTCCATAGCAGTGATCTAAACAAGACCTGTAAGAGTCACCT
+CATATATAGATCAAATATATATATGCAGATTTTGGAGTGAAAGTGCCAAGAGTAAGGTAA
+ATAATGATTAGATTTCTGCATAACTATTGCTGGTTTAAATGATGTGTGTTTTGGTGGGAA
+CTATGACTTAGATTTTCTCTCTTACAAACTTTCATAATACCTCTAATTACATAAGAGAAT
+TGAATTAAAGGAGAAGTCTCTTTTCCCTCTAATTAATCTCATGTCCGCCTTCTTTCATTA
+CTTTGTCTACTGATTAACAAAATTAGTCTTTGTTACAGAGAAGAGTATAATATATAATTG
+AAGTTATACTTTTTTCCATCCAAAATAGCAAGGAAAAGCAAAACAAGCAGCACATACTCT
+GTAGTGCATGATTTCATTTGCAGAAGTTGGATTATTTTCTGTACTTTGTGTAACTGTTAC
+TGAAGCCTTCAGCCTTAATGTGATCATGCAAGGAAATACTATTTTTCAATGGAATAGAGA
+AGTAACACTATTATTGCTCTTTCCATTCCAGTAGAAACCTACCCAGGCCACATCAGCAAT
+CTAGTCCTTCACTTGTATGTTCCTTCCTCGAGAAACAAGAATGTTAACCCAAAGTTGTTG
+ATAAACTATTATTTCTAGTTTATCGTTTACAAAAGTTAATCTCAAATCATTACACAGAAA
+TAGCAATGATAGCAGTATCATGTGTTAGTTAGCCTCTACCATGTTATGGCACTGATCTAT
+ACACGGTAGTATTGACATGTTTGGTAGTCACAGCTCATTGAGTAGCTAAGAAACTGATTA
+GGTAAGTGATGTTACACAACTACATGATACAATCAGAACGTAAACCTGGCACTCAGGTTC
+AAATTCTAGAAAAGTCACTGTTTATGCTGCAATCGGTAGCTTCAGCCAAATATCAGCATT
+CTAAGGCCCGAAAACTACTTTTCACCTTCACAACAGTAAAACTTTCAAGCTAGCATTCTA
+AATTAAGACTAAAAGGAACATTTAAAAATGAGTGTGTTTATTTTTATTTACTTTTGAAGG
+GGAAGAAGTAATCAGGAGTGTATTGTAACATAGTGAGGATCATAAAACATTTTGGCTTCT
+CATAAGTATCTGAAAACCAGAAAATTAATTTAAAAAGAATTCCAAAATGTATGGTTATAA
+GAACTTTTGTAAACACTCCATTCTTCAGGTTTTGTTTCTGTGGACTTTCTAACATAATAA
+ATAGACCACCTCCTCTATAACTTGGAAAAATACACTTTAAATAAACTAGATAAAACAAGT
+TTGTATTTTTAGTAGAATGCTTGAAATCATGTTTTCAATTTAGGCTTCACTTCTGATAAA
+ATATCATATTGGCCATCACAAATTCAGAGACTCAAGTTAGAGTTCCACTAGCCAGGTGCA
+GTGGCTCATGACTGTAATCCCAGCAGTACAGGAGGTAGAAGCAGGCAGATTGCCTGCGCT
+CAGGAGTTCGAGACCAGCTGGGCCAACATGGCGAAATCCCATCTCTACCAAAAATACACA
+GAATTAATCGGGTGTAGTGGCGCATGCCTGTGGTCCCAGCTACTTAGGAGGCTGAGGTGG
+CAGGATCACTTGAATTCCAGAGGCAGAGGTTGTAGTGAGTTGAGGTGACACCACTGCATT
+CCAGCCTGAGTGACAGAGTGAGACCCCATCTCAAAAAAAAAAAAAAAAAAAGAAAAAAGA
+ACTCTACTAAAGTTTCCATATCTTTTCGAGTTTGTATTCTTGGCCTAAGATATTTCAAAT
+CTAAAGAGATAAAAAATTACATAATTGGCCAATGTAAGCTTCATTTCTAGTATCACTTCC
+AACTATTTCTATTGAAATTGGACAAAGAAAACAAATAGTAAAAATAGCTACAAAAAATGA
+TTCTGGGGAAATGAAGTTATTCGGGGCCAGTCTACAATAACGAAAAAAAAAAAAAAAAAA
+AAAAAAGAAACCAGTCCTAACAAGGAAGAATTTTAGTGAAAATAGGAGTTACATATTCAT
+CAATAGTCGCAGACCTCCATGGTCAAAGCCTTGTGGATTATATTGTTTACTTTTTAAAAG
+ATTGTTTCTGTTGGAGATAAAAAGAGGACCAAAACCATTTGAAGGTAGAATTCCAGAGGG
+CTGAGAAACAAACACAGCACCACTCATATAATCCTGATTTGGTGAAATAAATTATATTTT
+ATGCTAAGTAGTATTTTCATTATTTCTTGCTTATGAGAAATACTTCAAGCTAGCTCACCC
+TAAATGATTTCATGTGCAAGTCATTGAAACGTCATTGAAACCTCTAGCCCTAAACACTAT
+CTTCCAAATATGTCACAAGAATCTAGAGGGAATTAAATAAAATTTCTTTTCAATGATTTT
+TTTAATTATTGGATTTACTATCTCTTATGCAATACTAGCTAAAACATCTTCTGTTAACTG
+GCATGCAGGCAGATATTAGAGGAAAAGTAATTGAGTAATGACTTTTTAAATGAATCTAAC
+CATGTTCTTACCTAATATAATTTAATAAATACTTATTGTCTTGTGCTTATTAGAGGAATC
+ATTCAAAGGTTTTGCCAGTATCTAAAATCTAAAGGAAATTCTAAAGGTATGAGTCTACCA
+TGCTTTGTTTAGTACTTTTATGATGACTGTGGACTATTTTAATGTGGGTCAGCCAAAAAG
+TGACCCTTCCATATCTAAAACTCCGCATACAATAATGTCAGGAATAAATGCTAAGTGGAA
+TAACCAACAGGAAGACTCCACTATTAAATAGGAGTCTAGCTTCACTGCATATCTGAAAAA
+ACATATTGGCAGGTCTACCTGCAAGAAAACTATTTAGTTTTGTCATCTGATTTTACTAAA
+GTCAGAAATGTGGCATCACACAGTGGAATGAAAAATACCTCCCATTTAATTAAATATCCT
+GTTGGTCAAGTATATGTCCACACTAAAGCATTATTCAATATACAAAGCACTGGTTTTTAC
+TGTTGTACATAAATAGCCATAGAGAAAATCGCATGATTAATTAAATGTGCTATATAGTGA
+CTCGCTGTGGCTAAATAAATAACCTTTGTCTATGCAGAAAATTTACACATTAGCAACAAA
+TGATGCAAAATAGATGTGGGAAATCAGAAACCAAAATTTTCACTTTTCCTGGTTACAGTA
+TAGAGTGTCAATAGTTCATACACATGCTACATTAAAACCTTTGTTATTTCTTCCAAAGAA
+ACATTAGGAAAGTCTTAAGTTTTATAAATAGCATGGAAACAATGACGACCACCATTCTGA
+TTACAAGCTTAGGACTCAAAAGAAGAGTGGTTTCCTTATTAGATCCATCATGTACTTTTT
+TTTTTTTTTTTTTTTTTTTTTTTTTGAGACGGAGTCTCACTCTGTCACCCAGGCTGGAGT
+GCAGTGGCGCCATCTCGGCTCACTGCAACCTCCGCCTCCTGGGTTCAAGCGATTCTCCTG
+CCTCAGCCTCCAGAGTAGCTGGGATTACAGGTGCCCACCACCAGGCCTGGCTAATTTTTT
+GTATTTTTTAGTAGAGACAGGGTTTCACCGTGTTAGCCAGGATGGTCTCCATCTCCTGAC
+CTCGTGATCCACCCGCCTTGCCTTCCAAAATGCTGGGATTACAGGCGTGAGCCACCCCGC
+CCGGCCAATCATGTACAGTTTTTAGTGGAGTTGGCAGTACCCAGAGAACTGCCTGTGTAC
+TGATGTTCTTTTTATTCCTGCTTTGTGACCTAACCTCACTAAAGTTAATACGTCCTACTT
+TTTACTACATTTAAAAAGGAATAAAAAAAAAAGCGAGAGAGAAGACAGAGAGATAATTGA
+AAGAGTAAGAGAAGGAACCAGGAGCCCGCGATAACATGAAATGGCAGCTAAGGAAATTAT
+GTTTCCAGGGAGATGATGTTACCTAGTCTCGGAAACAAACTGTCTCCAAACTTAATGCCT
+TAAAATAACAGCTGCGTATTTGCTCATGATTCCGTGAGTTGGCACTTTGGGCTGGGCTCA
+GCTTAGAAGAATTGTCTTTGCTCACTCATGTCCTTTGTCGGGGCAGGTGGCATGACTGAC
+CCTTCCCTCTCCTGGTTCTCTGTCAACCTCCAGAAGGCGAGCGGAAGCTGTTGGTTTTGT
+TTTGAAATGTGGCAAGAGATGCACCAGAGAACAATCTTGCTTCAGCAAGACCTTTTAAAG
+TATCTACTGGCTCTACATTTGCTGACATCCCATTGATCACACTCAGAGGAAATATAGGAG
+AGATTCAAACAAATGCCAGAGTGGTGAGAAACACTAGTTATTGGACGCAATTATTGTAAC
+CATCGACCCCAAATGCTATAGAACACATTGTCTAAGTACCATTTGATGTGGTACTTGGAG
+ACAAGTTTTAGAAGTAAGTGTGGGGTAAACAAAAAAGATTGAAAATGTTTTGTTTTGTTT
+TGTTTTTTAAAAAAGAAGAAGATGGGCCAGGCACGGTGGCTCACGCCTGTAATCGCAGCA
+CTTTTGGAGGTCGAGGTGGGCGCATCATGAGCTCAGGAGATTGAGACCATCTTCACCAAC
+CTGATGAAACCCCATCTCTACTACAAATACAAAAATTAGCCTGGCGTGGTGGCGCTTGCC
+TGTTGTTCCAGCTGCTTGGGAGGCTGAGGCAGGAGAGTCACTTGAACCCGGGAGGCACAG
+CTTGCAGTGAGCTGAGATTGCGCCAAGGCGCTCCAGCCTGGGCAACAAGAACGAGACTCC
+ATCTCAAAAGAAAACAAAAAAAAAGATGATGAAGAGAATAGGAAAGGAGGATTAATTTCA
+GCCAGGCGCTGTGGCTCACGCCTGTAATCCCAGCACTTTGGGAGGCCAAGGCGGGCGGAT
+CACAAGTTCAGGAGATCGAGACCATCCTGGCTAACACGGTGAAACTCCGTCCCTACTAAA
+AAATACAAAAAATTAGCCGGCTTGGTGACACGTGCCTGTAGTCCCGGCTACTCGGGAGGC
+CGAGGCAGGAGAATGGCGTGAACCCGGGAGGTGGAGCTTGCAGTGAGCCAAGATCAGGCC
+ACTGCACTCCAGCCTGGGCGACAGAGCGATACTCTGATTAAAAAAAAAAAAGAAGAATAA
+GTAATTTTGTGGGGGAGGAAAGCAAAGAAACGGGGCAATGCAGGAAGAGGCAGCAACATT
+AAAAGAATATTTGTTAGCTTGTTTTTTCTTTTTTTTTCTCCTTGTTCCTTCTAGCTTGAA
+GTGATTTCAGCAGTTTTGTTGCCTGTGAAGAGTTATAGAGAGGAAGAAATAAAAGTTCTG
+AGAGATAAAGCACAGCTATTCCCTAGGCAAAGATTGGTAGATGGAAAAGAGAAAGCTAAC
+TCTGGTCTCCCTGAGCCCTGAACTGAGTGAGGTGTGAAGGAGTGGAAAGTTTATGCCTGC
+GCGTTAATGATTAGACATGGTAATAATGCAGGAGGGTGTTTATCTGCACAGCGATAGAGC
+CAATGCTCAAACTTCCTTGCCTCCCTTGCCTTACATCTTTTTGCAGCTGTGGAGCTCTCC
+AAAGCTCTGGGAGAATTACCTGATTCACCACCTGCTATAATTGGATTATGAAGACCAATG
+ATGCTGTAGAGCCCCTGGCCCTCAGAGCAGGATCTCTACATGATTTTTGATTTACAGAAT
+TCCCAATTGAGAGGAAAAGAATATTTTCCATACCCTTGCAGTTTAATCCTTGAGAGTTCA
+AACAAAGATTATTTGCCCCAAAAAGAATATATACATATGTGTGTGTGTGTGTGTGTGTGT
+GTGTGTGTGTGTGGTATTTATGTAGTTGTAGTTGAATGGTCTAAAAAGTCAAGAACCATT
+TAATTACTAAAAGTGTGCTTAATGTTTTTTTCAATATAAATTAGTACCTGAGCCTTCCCC
+TCACATATATTTGTCTTATCAGACTCTACTGACACCACTGCTAATAAATTATATGACAAT
+CACTGTGCAGTGTTCAGTGGAAATACAAATATGGGCTCTGTCTTGTCTTGGGATGATTTA
+GAATGTTGGTTGATTACTCTCCTGATACAGTGTTTATATATACAATTTCCCACACTTCCT
+GTGCAGTCATTGATATGAATAGCTTCAGGGAAAAAAAATCTAAATGCTTGCCAAAGGATT
+TTGCAAAATCACTAAAATAATATAATCACTAATTTTGTTTTCAAATGTTAGTGAGTCAGA
+AGAAAGAAAAGTTCATCTTCCCACTATGATTTCGGGAAATCTCCACCACCACTTTTGTTT
+CCAAACCTGAAGAAGCTAAGGAAAGACCTAGTTTACTGATGGAAAAGAAAAACAATCCTG
+TGACATCAGTGAGAAGGACATAACAGGTTAAAGTTATAAAAACTCAACCCTCCTAGGGGA
+GAGAATGTGTTTTCTCAAAAATATTTAAGGCAGTCTGAGAACTGCCATTTACATCTTTTA
+AAAAATGCCAGCTGGGAGACTAGACAAGAATACTTTTGAGACTTATGTAGGCAAAAGAAT
+TATCTAGGAGCCATATTTTCACAAATGAAGATTCCTGACCCCTTTATCTTTCTTCCCAAA
+AGCTCTTAATTTTTGAAAACACCTTTAGTATTTATAATAAAGGTGTTTCTTGGGCAAAAC
+TTTGGGAAATGTGAATTAAACATGTAGTCTACTGTGCTCTTTCCAGGTTTGCAGCCTATA
+CCTCTCCAAGTCCTCATGGTTGCACTTGGAACATCTACCCTCTTCCCACAGATAGGTTTG
+CAGTGAAAAGGGTCTCAGTTTACACTGATGGATAATGCTACATCAATTTAGATGGCGTCA
+ATCAATTTTGTTTTAGGCGTCCGACCTGGCCTTTTACTATTTTCTTCAACTGGATCCAGG
+TGCCATTTGAAGGAAAGAGTGATGCCTCATGCTGGTTGCTGACACTCTTACCACCTGGAC
+AGTATAAGGAAGAAGGGAGAGAGATGACAGAGTTGGCTTCCAATCCACTTCCATAATAAA
+GCACTTTTACAGTGTCATCACTAAGGTCATCCAATGGGAGGAATAATCTGAATGGATCAT
+GTCATCATCATTTTAATGTGCCATAAGACTCTAGCCTTAGGTAGCAAAGTGACACTCCTA
+CTGGAGGAAGGCGTGAAGGTGGATGAAGGACAGAGTAAAATGCCTTCGCATTCACCTACC
+ATTAAGGATGGAGTAAATTGCCTACCAACAAGTGTTCAGGAATCTCTGTCTCCTGGACTC
+CCTTCATTCTAGCCCCAAAGGAACTTGGATTTCAATCAATGATAGCATTTATGGAATGAC
+CCAGGGTTTGGCACTGAAGATACAAACATGATTAAGATGCAGGTTCTGCTTTGAGGGACC
+CCAAACTCCCCAAAATCATAGAGAAATAAAACCATGGACATTGTAAGCATTAGAATAAAG
+ATACCTATAAAGCAATATGGGAGCATGAGAATAAATGTCTGTAGAGTTATGGAAAATTAC
+ACAGAGGAATTTAACATTTAACTGCGGCCTGAAGGATAAGAGGCTGGTCCTAAGCAGTGA
+AGAAGAAATGATACTACACATAGAAGGTGCTGGATATGGGACAGCACAGAAGAGTGACAG
+AAGGTGGCATTTCAGGGACCTGATGTAGCTGTATACAAAATGTGGTGCTGGAGAACCACC
+GCTGCTTTCAGCTCAGGTAAGAAGAGTGACGCCATCAAGAGATTAATTCAATGAGTCAAT
+ATTTAATAATCCCTGCAAGAGGTGTTTGTAAAATAATAAAATAGAATAATATAAACACTT
+CATAAATGTGTCACAATGAAAGTTTATCTTTTATTCTTTTAAAAAATATATCAAGACCTT
+TAAGGGCACACACACACACACACACACACACACTCTAATTCATTGAAAGCTCATCTCATT
+AAATTAGTATATCCAGTAACTCTGACTGATGTGTCACGTATGGAATTTCTTTACAGCCAA
+CTGTCACTCCTTTACAGCAGTTGAGAAAGGTCTAGAGTCACATTGGGTCTTCAGTGTCTG
+CACAGGTTTTGAATCCGTTTCATTTGAGAGCATAATGATCGCAAAGAGGACCTTGAATAG
+ACCCGCTCTGAAGAACTAATCAAGAAGAAATTCCCCAAATCAGTTAACCACTTCATTCCC
+TTTGTGATAGGAAAAGATGACAGAAGAATACAATATAGAAATGAATTCCTGGTTACTATC
+CGTTCCAATAAATTTGGTTTAATTGGCTCAGCTCTAATTAAGAGACATAAGCCTAAAAGA
+GGGATTACAGGAACATAAAAAAGTGTATTGAAATGCAAATGCACCATAAACTTGAGGAAG
+TTGTCTTTTAGAGAAATTTAGAACTATCCAGTTTCTAATTTTTATCTTTTTAATTAATAG
+ACTTTTTACAAAGCATTTTTAGGTTTACAGTTTCAAATTAAAAGAAAGTACAGAAATACC
+TTATACCCTCTCCCTGAAAAAAGTTTCCCCTATTATTAACATATTTTGGTAATGTAGCAC
+GCTCGTTATATATTATATTGACACATAATTATTAACTAAAGTCCACAGTGGACCCTAGGG
+CTCACTCTTGGTGTTGTACATTTTATGAGTTTTGACATATGTATAATGCCATGTATCCAC
+TGTCACAGCACCATGCAGAACCATTTCACTGCCCTAGAAATCAGTCACCTGTGCTCCACC
+TATCATTTGCCACTACCGCTCCCACCATGGATCTTTCTTTTTTTTCTTCTTCTTTCTTTT
+TTTTTTTCTTTTTTTTTTTTTTTTTGAGACAGAGTCTCGCTGCAGAGTCTTGCTCTATGG
+TTCAGGCTGGAGTGCAGTGCTACGACCTCGGCTCACTGCAAACTCCACCTCCCGAGTTCA
+AGAGATTCTCTTGCCTCAGCCTCCCAAGTAGCTGGGAGTACAGGCGCACACCACCACGCC
+CAGCTAATTTTTGTATTTTTAGTAGAGATGGGGTTTCACCATGTTGGCCAGGCTGGTCTC
+GAACACCTGACCTCAAGTGATCTGCCCACCTCGGCCTCCCAAAGTGCTGGGATTACAGGC
+CTAAGCCACTGCCCCTGGCTGAGGTTTTAACTCTCTCCGTAGCTTTGCCTTTCACTTGGA
+TGCTTTTCATGGCCTCAAGGTCTCAGAATTTCTTTGACTGTGTTGTGAATTTCTTCTTAA
+CCTCCTCTTATAGATTCTAGTTCCATCTAGTCTCTCCCAATCACACCTATTTACGGCTAC
+ATATATGTCCTGAAATTTTCACAGTAATCAGTAATGTTGGTTTAAGCTTGAAGATTGTCT
+TTCTTTCTAGATCTTTAGCATTCTGTTTTTATGTTTTAATTTTTTATTGATAAGTTGTAG
+CAGTATATACATATGGGATACAATGCAGTGTATTGACACACGTATAAAATGTGGCATGAT
+TAAATAAAGCTGATTCACATATCCATCACCTATTGTTCACTTACCTATTGTTTGTCATGA
+TGAGACATTCAAAATATATAATATGTTATTAGTTGGTTAACTTGAAATCTATAACACGTT
+ATTATTGACTACATTCCCCGTAGTGTGCAATAAATATCAAAACTTATTCCCCCTGTCTTA
+AACTCTGTGCCCTTTGATTAACAACTCTCCAATCCCCTGTCTATCAGAAACTTCATAAGA
+TCTTTGTATTATTTGGTCAAAACATCCCATTCCTCCCCTCCCTCCCCAGCCCACTCCCAG
+CCTCTGGTAACCATAGTTCTACTCTCCACTTTTATAAATTCAACTTTATTAGATTTCACA
+TATAAATGAGACCATGTGGTATTTGTCTTCCTGTGCCTGGCTTATTTTACTTAGTCTGAT
+ATCCTCCAGATTCAACCATGTATCTTGCTTTGCCCAATAAATGAGAGCTGCTATGTTGGG
+TGAAAGTCGTGGAGCGTATGCATTATCTGTGTTTTCTTTCCCCTTGGCATAGAGGTAACT
+TGCTTGTTGCCCTAAGGACAATGTGGAGCAAAGTCCCAGGCAGCCTAAAGAAACATGTAG
+TTGAGCAAGAAGTAAACCTTTTATGTCCAAATCACTGAAATTTGGAAATGATTTATTATC
+TACTACTGAAGCATAGTGTGACTATAACTGATAAAATTCTTATTTATAAAAAATTTTAAA
+ACATGTCCATGATATATTTTAAAGTGAAGATGGTAGAATTGTGTGTATATTAGAATTGAA
+CTTAAACAGAAAAAAGATATGCTCATATGAGACCAAAAAAATTATTGATGTATAGACATG
+AAAATGTTAACAATTAGTAAGCTATGGGAAGTAAGAAATTATGAGGAGGAGGTGGAGAGT
+ATTTCTTTCTACATATTGTACTTTCATTTTTTAAAACAAGAAGCAGGGGTCAGGTACAGT
+GGCTCATGCCTGTAATCCTAATACTTTAGGAGGCTGAGGCAATATGATAGCTTGAAGCTG
+GAAGTTTGAGACCAGCCTGGGCAACATAGCGATATCCCATCTCTACAAAAACTAAAAATA
+ATTTAGCAAGATGTGGTGATGTATGTCCATAGCCCTAGCTAATCAGCAGGCTGAGGCAAG
+AGGATCACTTGAGCCCAGGAATTCAAGACTGCAGTGAGCTATGATCATGCCACTGCACTC
+CGGCTTGGGTGATAGAGTGAGATCTCCTCTCAAAAAAAAAAGAGAAACAGGTACTATTTC
+TAAAGTTTAGTTAAGAAAAATTTATCCTGATTAACTAGACAATAAACCATATAATAACTC
+TAAGTTTATTGAAAAGTATTATATATGCATGAGAATAAAATGATTAATAAATGTGAATAG
+CAAGTCCAGAGAAGATTTAAATAGAATTCAGAGTTAAATGAGTTTATTTGGTCGGTGCAA
+AATCAATTGTGGTTTTTGCCATTGCTTTTAATTGCTTTTAAAAGTAATGCTTTTACACCA
+ATCTAATATTTCAATTCTGTGCAGCAAGAAATGTTTATTCAATGAATCAAGTTGATACAT
+TGGTTAAACGTGAAAAAGATTACGTGAAATCCACACCTTCTCTTTTTAGCAAAATAAATT
+TTAAATTGAGACAGTTATAAATTTAATAAAATAAATCACATAGGCAAATGATGAATGTTT
+AATGAATTGGGAGGGCTTTCTAACTGTGATGCCAAGGCCAGAAAGAATTATGAACAAATT
+GATAGATTTGATTACATAATACATACACACATATATAAATCACAAAATAAAAGAAATTTT
+GCAACATATCAAGCTGTGCCCAATCAAAAATGTGTAAGTCTACCCAATAGCACAGCAATT
+ACATTCATTCCTGGGTTTAATTTACCAAAGATTACTATATTTTTTGCACAAATGGACTGT
+TAGGGTGAATCTGGGTGCTCATCCCCGGGATATTAGAAATGGAAATTATGATGAGTAAAT
+AGCATGTAATATTTTGCAAACGTTAGAAGAAACAATTACTAGATATACACCAAGCAATAT
+GGATTAATATTTTACAAAGCATTGTGATAAATGAGAAAATTATAAAATAGAATAAGTTCT
+AAACATAGCCATTTAAGTGAGCTAAGTACGTGTGTGTGCAAAAGAACAACATATGTACAA
+GAACACATGCGAACAAAAACTGTACAGTAAGTAGTTTAAAATGTACAGGGAATTGTGTAG
+GGGGAGATGAGAGATGGAAGGGGGGACATGGATGTATCAACAAATATAAACAAGAAACAA
+AGAACAAAACAGGATTGGACTTTTCAGAGATCACTGATAATTACGTTCTTTCGTGATGAT
+GAGTATAATTAGCTCAACTCAATGCACTTGAAGTTCAAAAAATATATTTGTATTTTTTTT
+AAAATAGGCTAAAGAATGAGCTAATAAATTAATAGCTAATAAATATGAATAATAAATACA
+TGAAAACATTCACTTTGACTAGCAATTAAATAATAATAATAATACAGAAGTTTATATGTG
+TTTATTTATTGACCTGTTTATTGAGAAGTGGGAGAAAAGATGGTATTTAGAAATATTATT
+CTTAATGGCACTAGAAAGTAGTAGAAACTTTTTGGACTACTCAGATAAGTGTCAACAATA
+CCTGAACAAAAGTTTTGATTATAACATTGATTGTAAAGGCTAATAGTTGGGTGAGAACTA
+GTTAACACTTTGGGGTTTGTTCAAACAAATTCTTCATCAAACAAATGAGTATTATGTAGC
+CTTTGAGGGTTGATGAGATAGAGGATTTTTTCTCTTTGTCCCTATATATTATTAAATCAT
+GTCACATTGAAATGCACTATTTTCTGCAAAACATGTAATAAGTAAATTTTTAAAATTCAA
+CTAAAATAAATTTGAGGGTACACTAAAAATTCAGCAATTCTGGGAGAAAAGTTCTGCAGT
+TTACATTCTGTTCTATGACCAGTAAAGTATTAGAATTTTAATATATTTTATGTTGCTTCT
+TTCACATAAATATCTTAAAATTGGCTTTATTGGCTTATAACTTCATACGTTTCCTTCCCA
+TAATTAAGAAATGTTTGTGATTGCTGTTAAAACTCTAGATTTTAGACTATAGTTAAGTGG
+GAAAAAATACACTTATTTTTGCATTAAAAAGGCTTTTAAAAAACATGCACTAAGCCAGGT
+TAAAATGTTTCCTGCCTAGGAAATAGCATAAAAAGCATTTTTTCCCCCATTAAGTTAATG
+CAGTAGTACATTTTGATAAATGTAAATTGAAATAATTGCAAATCTGATATATGTAATGTG
+AATTCTTGATTTGGAAAGTAATTTATGACCAGCAGTTATTTTTTAAACACAAATATTACT
+TTTTTTAAAGCTAATCAGAACTTTCAGATATGTCATACTGAAAAGCCTGTACTCTGATAA
+CATTTATTCCCTATGATATGGAAAAAGAGAATCGTTTCTATTCTGGAACAAATGCTGAAG
+ACACTGCACGCCTTTGCTTGGCTCTCTTGGTTAATGAATGTGTTACTTAAAATAATAATT
+TGCTCTTCAAATCATCTGGCCACACAGACCCATATTTCCCCCCATACAATGCTGTTTTGC
+TGATATTAGATTTACTTACCTTTTAACGGGATATTTATGCTATTTCCATGAACACACTCA
+TCTACAAAGATACAAATTATCCAAGTAACAATACATAAGAGACCCGCATGGAGGTCTGGG
+TTAGCTGTGTACAGAGAAAGATGCAGGGCTGGAGCAGAGCTGCATCCTGATATGAGAGTC
+TATCACTTTTTTCCCCCTCTGAAGCTATGGGGAATGAAGAATTCACTCTTTTATTCGTGG
+CGTGATGGCAGTTCAAGGTTTTATTGAGGATGTGGTCTGGCAATGGTATTCTGCAACCCA
+CGCACAAAACATAGCACTAAAATCTTTATAATTAACTGCATATGATTTAGCAGGGTCATT
+TAGAAGGATGATTCATCTGCAGTAGGTGTAAACTGGCTCACTAAATCTAAAGCTTAGAGG
+GAAAGACAAGACAGAATAGTTTCTTGATTCCACTTTAGGCTAATAGCCAGGTGACTCAGA
+GTCCTTACGAGCCCTGATTCAAGCTTCATTTCTCAGCACTGTTAGCTGCTGGAGTTACAT
+GCCCAACAATTCATCTTTTTGCATCTCAGCTATGTAAGTCTCTAAAACCAGTTTTTATCA
+GGGGTCTAGGGATTGTGCTACCTGTAAGTCTATGCTCCAAACTACTAATATTTTTCTTCA
+TTCTTCTTTGAATTTGAATGTGTGTTTATGTCTAAGGTTTTTTTTTTTTCTCCCAGTTTA
+ATTACACGTTTTGGTAAAATTGTGCAGTGGGCACTGCTTCTCTTCAGTGTCTTTCCATCT
+TCGTGCAGGCTGGTCATGTCCTGTCTTCTAATGCTACCTGAGCCCTAGCACTCCAGGAAT
+TCCATTATAACAGACTCTTTCTCCAGGCATCTCTTGAATTCTACAAAAATCTTTAACGTT
+TTCTCTTTACACTCTGCTTTCAGCAAGCTGCCAATTAGAAAAGATCTGAAAATATCATCC
+TCTAAGTGGTTAGTAGCTCACAGTAGTTCACTGTATTCTCCTCAGGAGAACTTGCACTGC
+AAAAGGGAATGGATCATTGACTTTAGGCAATGTTCCACAACTAAGGACAGCAGAGTCTCC
+TGGAATGAACTTTTAGAAATGCAGATTCCTGGGCTGCCAGAATAAGAATACATGCTTTCA
+AGAATCTTCCAATCTTCCCAGATTGGGAAATGACAACTATTAGCCTGGAACAATCAAACA
+TTTGGATATCACCATATTCAGGTACAAAGTTAGGGTTAAAGCAAAGGCTATTTGTAACCT
+CAAGTACTTTCTACCATACCTCCTAAAGAAATTGTGTATGCAACCCACACACACACACAC
+ACACACACACACACACGTGAGTGCTATAATTTGGTCCCATGCCAAATGTCAAGAAGAATA
+GAGTCAAGTAATAAGCAATATCCATCCACTGCAACCTTTGGGATAAACTATACTCTTGGT
+TAGCTCAGGATCAAGCGTAAAAACATTCCATTGAATGTATATTACAAATTAGTTACATCT
+CTTGTTTGGAGGGAACTGCATTCACTTCACCAGCAAGGGTATCTTTTTGATACTGTTGAC
+TGTTCACATAACCCAACAACAGTCTTTTCACAGTATTTTTGTTAGTTTATTACAAAACCT
+TTTATTGTTATTGTGTTTTATAAATTCCAATGCAATGAAATACATTCTACTCTTTGTATT
+ACTACTGTTAACATTTTAATGACTATCTCTGCATTCTTTCATTTATTATTTCATTCATTC
+ATTCAGCAAATATTCCAGGAACTATTCTAAGCTCTGCAAACAAGCTACATAAAGCCCACA
+TACTCAAGATAGCATTATAATGGTGCAGGTAAAAATGAAACACATAAGTTCCATGAAAAT
+GTCAAACATGATTAATGGGACTCAGATGTCCTAGGGGAAGGAATGCTACTTTACATTGAA
+GAGTAAGGTGAGGCCTTTGCAAACATGTTGCATTTGAGCTGATACCTGAATGATAAGAAG
+GAGCCACTCGTGAGATGCTCTGGGGAATTGAAATCTATACAGAGGCAATGATTGTGCAAA
+GACCTAGGGTGGGAATAAGCTTGGCATACTTGAGGATTAGAAGGAAAGTCAGTTTGATTA
+GAGTATGATAAAAAATATGGAGACCGATAGCTGAGGTGGGAGAAGTATTAAGGCCTAAGC
+CACATATAGCTGTACTGTCCAATACAGGATCCACTGGGCACATGTAGCTACTGAGCACCT
+GAAGTCAAGCTACTCTGAATTGAGGTGCACTCCGGGTGTCAAACACAAATGTAGACTGGA
+TTCTGAAGATCTAGTATAAAGAAAGTATACAGTATATCTCATTAATAATTTTATATGGAT
+TATGTATTGTAATGATAATTTAGAGATACATTGGATTAAATTAAAATATTATTACTATTA
+ATTCACTTGTTTTACTTTTTCTAAAGTGCTTATTAGAAAATGTTACATTATGTATGTGGC
+TTAACTTAAAGCCTTGTATGTCATAGTCAGAAGTCTCGGTTTAAGCAGAATGAGAAATAT
+TTAAAAGATTCTAAAGAGGCGTTACAATATGAATTACCGTTTTTTGGTTGTTTTGTTGTT
+GTTGCTGTTTTAAGACAGGGCCTCACTCCCGTCACCCAGGCTGGAGTGCAGTGGTGTAAT
+CACGACTCACTGCAACCTGAGATATAGAAAACAGGGATGATTTTAGTTGTCATTATGAGT
+AAATGGATGGTTGGGGGCCATTCTATGGGATGGAGAAGACTGGGATGGGAGTGTACTTGA
+GAGCAGGAGAAACAAGGGTACTATTTTGGAAATATGTTGAGATGTCTGTTGAACATCTGA
+GTAAGCTCTTCAATAGGGAAGTCATGCAGAGGAGGAGAAATAGACCAAGAAAGAGGAACC
+TAGTAATTGCGAGAAAGTAAGTGCTTGGTGGTATCGCAGAAGTCAACCAAATAACTTGTT
+TCAAAGACCAGAGAGCGGTTTACGATGTCAAGTACTGTTCAGCAGGCAAGGAAGATGTGA
+ACAGAGACCTGGTCATCGCATCTGGCAATATGGAGATAGTTGATAATCTTGATAAGAGCA
+ATTTGTGATGGTGGTAGCAATGCCAGTCCAACTAAAGTATATTGAAGAGTAAATGGGAGC
+TAATAAAATTGGAAATAAAAAAATAGAACTTAGCAGATCTTTGAAGATTTGCTGTGGGCA
+GATAAAGGGAATAAGAGCTGGAGACACACTGTAAGTTTTTTGAATTTAAGACTGATTAGA
+GCTTATCTGTGTGCTAAGGGGGATTATTCAGTAAAGCGGAAGAAAAATGATGCAGTAGAG
+AAACAGAATCATTGTAGACAAAGGGTTCTAGAGTAAACTAATTGGAATGGGATTCAGACC
+TCAAATGCAGGATTGGCCTTTGATAAGGTTCTGATGCTTCTCCTACTACATCTGAAGATA
+AGACTGAGTAGATGAGTACAGATATAGGAGGGTATTTTTCTCCCCACCTTCCCCTGTGTG
+TGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTTTGCAAACCCCCTCTCA
+TACCAACTTTTCACATTTGTGCAGTCAAACGCTCTGCCACTGAGCTACACCCCCAAATTT
+GTAACACTTGGACACACAATTTTAAATTCATTAATCTGGTGTGTTCTAGTTTCAAATGCT
+GTTACAGAAAAGTTTGGTGCCCATTTTAGCTGTGATCCTTTGCATAAGACCTGTCCTTTA
+ACTCTTGGAACTTTCATGATCTAATATTTTGAATCCTCCCAAAATGTGACTTGGTTAAGT
+CTTTTGTTTAATTCATTATTCTGAACACCCACAGATTCCCTTCAATCTGCAGACTCATGT
+CCCTATTTTGGTGAATTTTCATTTGTACTGTATTAGTCCATTCCCACACTGCTAATAAAG
+ACATATCCAAGACTCGTTATTTATAAAGGAAAAAATTAATTGATTCACAGTTCAGCATGG
+CTGGGGAGGCCTCAGGAAACTTACAATCATGGCAGAAGGGGAAGCAAACACGTCCTTCTT
+CACATGGTGGCAGCAAGGAGAACTGCAGCGTGAAGGTGGGGAAAAGCCCCTTATAAAACC
+AACAGATCTCATGAAAACTCATTCACTAACACAAGAACAGAATGGAGGTAACTTCTCCCA
+TGATTCAATTACCTCCCACCAAATCCCTGGTGGGAGGTAATTATGGGAACTACAGTTCGA
+GATGAGAATTGGGTGGGGATACAGCCAAACCATATAGGTATTATTGCTTTGATGATTTCC
+TCCTCTCTAGTGTCTATTTTCTCTCATTCTGGAATCTCTATTATTTGGACATTGCCTTAA
+TTGTTCCTAAAATGGCCATACCTTTATTTCTTACAATCCATGTGTTTGCCTATATCTTCT
+ACCTTCTAGGAGTTTTCCTTGACTGTGGAAAGGAAAACTCTTGCTTTTGTTTAAAATTGT
+TTTGCTACAGTATTTTTCATGTCCTATAGCTCTTACTTTAATATCCATTCCTTCTTCATA
+GCATTCTGCTCTTCTTTAATGGGTCCACTATCTTCTTATGTCTCTGAGTATATTAAGTGC
+AGTTTCTTCGAAGCTGTTTTTGCCTTCAACATTGCCTCTGCTCCTTCTCAGCTCCCTGTT
+TATCATTGGTTGCTTTTTCTCTTTTCATGTTAGAGGCTTTTCTCAAAAGTTTTAAGATGC
+TAAGCTATCTGTTCATATTTAAAGCTTGCTTTTAAGCTCTGTGTGAATGGCAGATTGTTC
+TGACTGGTAGACTTCACTCTTTTAAGCATGATCCAAGCTTACTCTCTGGGATGGTTCAGT
+TTCTCTATCTAAGGATTCCTCAAATTCTTGATCCAGTTTACATGCCTGACTTCTGGGGAG
+GGGGAGGTGGTCCTGAACATCTAGTTGCTCTTAATGTAAACTTCCCAATTACCCCAAGCT
+TACGTCCCATCTCCAAACACACTTCTTCCTATAGTCCTGGTTCCTCACCTTCACAAGTCA
+AAAGAATTTCTATAAGAGAACAGATTAAAGTGTCCTTACATGAATTCTAAAGAACAGCTT
+TCTTCTCACTGATAACTCCCTTTATAGGTACATATGTGTGTATGTGTGTGTGTGTGCATG
+TGTGTGTGTATTTGAAGTTTCTCTAACTTATTAAGTAATTTATCATTCATACATCTTTGC
+ACCTTTGTATATTTAGATTCAGAATTATAGATAACTCCTAATTTAATAACAGATGAAATC
+AGTGTTTCTGCTTCCTGGTGGGGGCAGAAACTTTGCTAAATTGTCTTCTTATACCAGAAA
+TCCATTAAATTCAATTTTAACAATGACATTCTTTTTAACAAGCAAGATTATAGAAAATAT
+TGCCCTTCAGATATTCCAAATTAATAACAATACTGTATTCAACATGTTTTATATTGCCAT
+ATCCATGCTGGGTATTAAATTTTATTCTGAATATTAATCAAAGTAGTAGAGAATGAATAT
+CATCTTGTTTGAATTTGCGTATTTAAGATCTAGAAATGGTATTGTCTCCTGGAAAAAAAG
+GTGCCTAAAAATTTAGAACAGAGCTGAAAACCGCTAATTCTGCTTTCCTAGTGAAACAGG
+GAAGACTTCATGAAAGACCTGATATTTCACCTATATCTTCAAAGATTTGTCTACTTTAAA
+AAAAGACATTTAAAGAGGGAATTATATATCACAAGAGAATGGAAGCAAAAAAGGCGACAA
+GCATGTTCATAGAATAGTGAGAGATTTGAGATATGGGAGAACAAAAAAAGATAACATATG
+AGAAAGAATTTTGAGAAAAGTCAAAAGTTTACATGAATTCAAAGACATTATTCAAAGGCA
+TTATTTTTATTGATATCGGTTGCATTTTCTTCCTGGAGTTTTACATCTTCTCAATGAATA
+ATATATATACCTAATGGTCTAGTTTACAAAGAACCCACAAATCTTCTTCAAGAGAGCCCT
+AGAAGAGATTCAATTCCAATTTCATAAGAATTATTACTTGATAAAGAACTCATAAAACTG
+TCATAGTTGAGAATTAGGCTATAGCCAATGGTTGCTATTCATTGTGCAAATTCCCCTAAG
+CCCAGCTGTTTTCAGCACACGACTCGTGGGCAATTCCACGTGCATAGCCAGTGCCCATAC
+CAGGAATGCCTGTCTGCTGTTCAAGGCCTTCTCCCTTGCCACAGGAGACCATGGAGCTGC
+AAGCTAGCTCAACACACAAAGGCAGGGGAATTAATACCCCAGGATAAATCCTTCACAAGT
+GAGAGTCAGGAGTCTTGAGGAAAGCCCCAGCAATCCTGTCCTCTAAGGAGACAATGCTAA
+GGACTGTTCTGTACAGTTCCTCAGAGGCTCCATGGGGACTGAGCCTCTACTTCCTCACAG
+AAGCAATTGCATCATGGAGCACATAGCTGACTCCTCTTCCTTCTTTTTCTCATTTTCCTA
+CCTCTCTCACTTCTGCTTCCTAAAATGTCCCCCTGAATAAACGATCTATACCCATTTCTT
+CTTCTTGGGCACTGGCTTTAGGAAAATCAAAATAGGATGGATACTTAACAAATGATGTGC
+CTCTACTATTTATCTGTTTCTATCAACCCAGTATAATTTACAGGCATCCAGCTTTTCCAT
+TTCCTTATTAGAAAAAATGAAAAATAGTTTTCAGTTATGGCTGGTGTTTTTTAACTTGCT
+GGCACTGATTCTGTGTATTTTGGATGAAAACTTTATCCATGATACATAAAGGGAGGACAC
+AAAACTGAGAACCAGAAAATCCATATTTTAGTCCCAGGTTTTGTACTACCTAGAAGTGAG
+ACTATATAGAAATCATTTTCTCTCTCTAAAACCTCAGCTTCTTGCTTTATTAAAATGAAG
+GTGTTGATGTAAAAGATTATCCCAAGGCTTTGATTTCATTATTCCATGAAATTATAAAGA
+GGCAGGCCTGCTTTGGACAAAGCTGTCAGTTGGACATGTTTCCCGGTGGTCAACAGGACA
+CAGTTGGGAGTCTTATGGGTACCTGCTGCCTTGCTTCCCCATGCTTGGAGCAATTTCTGA
+CCAGTACTCAATCCAAATCTATCCCTTGCTTGGATAGTTCCTAATGCCTCAATAGCCCAC
+AGCTTTAAATATACACACATTTAATATATGTGAATAACAAGTTCTATCTGCTTCTAAAGA
+ATATTACGAAGTAAACCATGTTAACAGGAAATTGACTAAGAAAGACAAGCCCACAAATTC
+CATGCTAGCCCTGCGTTCTTCCCACCTTCTTATACAACCCTCTTAGGTAACACACATGAA
+TGTAAGCGACCTTCTCTACACCAGTCACCTGACTTGTATTGTTCCTCAAGGGTGAGGAAG
+TGTCTAGACGAAAGGGAGGGGAGACCCAGTGGTAGGTGGAACTTTGTGCTCCACCTTTCA
+CATAACAGGTTGCCAATTCAGCTGTACTGAGGACAGGCAATGGGAGAAGGCATTAAAAGG
+GAAAACTGAAATAGTTCCTTTGTTCTGACTGTAGAAATGCTGAAAGGAAATTCCTGTTTG
+CGGCAGGTGATTAAACACATTTTATTAGAGGCTGTTACACAGAGAGAGTTACTCACGCTG
+CATTCTTGCAATAAAATGGTTCATTTTCTCAGTTTTCTCATAATTTACTTTTCAAATAGT
+ACTAACTAGATTTATCAACGATTTGATAACTTCCAGACTGCCTGTCAGAGTCCATTTAGG
+ACACTTTAACCTGTTCTTTTATGGCAATAAAGCTCAAACTTATCCACCAAATTCCTCCTA
+AGATAAAGGAGTATGAAATTGTATTTAAGGTATTGTGGTGGACGGGTAGCTGACTATGTA
+GCTCAAACTGCCTGAGGACAAGCATGAGATTTCTCCAAAGCTTTCTCCTTCATCTTAGAA
+GCGCTCATGAAATTGCTTTCTACTCAAAAATAATAAAATTCAACTTACATTAATTTTAAA
+ATTTTATATGAAATTATTTGCTAATTTCATCAAAAAGTTTAAGGAAGAATAGCATGATTT
+CGATTTTATGCTATATTCTTGTGCTTTTCATCTATTTGCAGGGTAAAAGAGAAATCTCTC
+TTTTCCCTCCACACCTCTGAACTCTTCCTATATCATGTATTCAACCTGGAAGGTAGACTT
+CCCCTGTTAATTATGAAGCATAATTTCTGTGCATCTGAATTCCTATACCATGTCTAAATG
+TGAAATTCAGTGTCAATTTCATTATCCTTGCCAGTGAAACATAAGTATCAAAATTGTCTA
+TCAAGTGAAACTGGAAAAAAGGGGATATTATGGCATTTGTATCTTCAGACTTCATTATTC
+CTAATGTTTCCCATTATAGCCTGTACCAGCTGGACAAACCTAGAAATTATTTTTTGCTGC
+TGGCATCTTATCTTTGATGATATGTAGGGTAGGGTTCAAAGCGAACACCACACACAACAG
+AAACATTGATTTTGTTCCCTGTATTCCTTTACTTCCTTTTACCCCACAGACTCCTTTAAC
+TTGCATTTCCTCCCTTTTATTTGACAAACCCACCACTGCCCTCCTCAGAGCACATTTTTG
+TAACTTTGTTTCTATCCCACATTTTCCTGTATGGCAGATACCATTGTTTTGTAATATGAT
+AAAAACATAAAAAGTTTTTCCTCCTCATTTAACCACTCTCTATGAGTTTTGTATTTCAGA
+AATCATTTCTTTTCCTTGCTTAATCAATTACTACTCTGCTTTCCATAAATTCAGTAAGCT
+TGATAGCAAAAATCTGCCAAATGCTTTGACTATCACAGAAAGAAACCCCTATATAAATGT
+CTGCTATGATTTCTATTACAACATGAAGACACTTTAGGGTATGTTTTATTGGTCCATTAA
+TAAATGACTGGAGAGGTAAAGATATCTGGCTAGAAGCCCCATTTTTTTACAAGCACAAAA
+GATGTGGCTTAATGAAGCAATTAAAAATTCTTTCATATCCCAGGGCTGTAATAATATTGG
+GAAAAAGTAAATGAACTACTAAAATGAAGAGACAACTGTAAATATAGAAAAAGACCAAGA
+AGCTTTAACTTCCATAAAAATAATGAGAAACGTAGGACAGAATTTCAAACAGTTGTCATT
+TTACAGAGCACCAGAACTGATAAATTTAAATATTTTCTCATCAAAATAGATATCTTGTTT
+TACAGAGGTGAAGGAAATATAAAACGGAGAAATTGTCCACAAAAGAGTCAGACAATAGGA
+CAGTATTATGTAACATCAGGGAATAACATTCAAAATAATTTTAATTGTAAGGAATATTAG
+GAATTATCTAATTATGAAATACTGATGTGATAAGACTATTTTGAAGATGTGAATGGCCTT
+ACAAGTTTGTGAAATAAAGTGCAAATGCTGAGAGTACCATCAACGCAGGGCACAGTCTTG
+GTTATCTTAGTATCCCTGGCACAATGCACAGATGTACTGTGTTGTACTTGTTCAATCATT
+CGTAATAAACTAACAGTGATGTACCAATAATTGGCAATAACAGTAATAAAAATAATTGGC
+CAGGTGCGGTGGCTCACACCACTTATCCCAGAACTTTGGGAGTCTCAGGCAGGTGGATCA
+CCTGAGGTCAGGAGTTCAAGACCAGCCTGGCAAACATGGCCAAACCCCATCTCTACGAAA
+AATAAAAATAAAAATAAAAAAATACAACAATTAGCCGTGCATAGTGGCACATGCCTGTAG
+TCCCAGCTACTTGGGAGGCTGAGGTGGGAGAATCACTTGAACCCAGGAGACAGAGGTTGC
+AGTGAGCCAAGATCATGCCACTGCATTCCAGCCTGGGCGACAGACTAAGACCCTTGTCTC
+ATTAAATAAATAAATAAATAAATAAATAAATAAATAAATAAAATGGAAAGAATGGGTTTA
+TCAGGAAACTCCTTGACAAAGCCAAGTTGAAGGATAAAGTTCAGTGGTAGATTTCACTAC
+GCTGATAACAACAAAATATACCTCTAAAACTCTTACCTTCTTTGCATTTCCACCTTTCCT
+GCCCAGTGTGTGTCTCATGCTTATACCACACAGCCCAGAGCATTCAATATCATGGTCTAA
+CTTCTTATCTCCTAGATCCTGGGAGCTTAGGGTAGCTACAAATAAAAATCTTATGGTGGT
+ACAACTTAGCTGAGACCTCAGAACAATCTGTAAAAATGTAACTTCACTTTTTTCAAATTC
+TTTCATCTCTCATGATTTTCCTAAAGCTCCCTATTCTTTACTGTTCTCAGTGCACTCACT
+ATACAAACAAATCCTCTACACTATCAGTGAATATTTGTCCCCGACTTTGTATGAGTTCTG
+CTTAGCCATTAGGCATGACCTCTTCCCACATTCACCCTGCCAAAGACAAATTGTGTATAT
+AAGCATGTAAAGCTAAACCTTGGCATAACATTAGTCCTAGAAAATCTTTGTATTCAAAAG
+AAACCCAATTTTTACCGCAAAAGCATTGAAGAAGAATGAGACTCAATACTGAATTTTATA
+GAGGAAATATTAACAGAATTCAACAAATAGCAAGGCTTCCAAAAACTTATCCAAATTCCC
+ACTTATCATTACGTCTACTGTCCCCAAACTGCTTTTGTCTGGTTCTCTAAAAAAATTTTA
+GTCTGTAGTTTCCTCCTGTGGACGCATTAAGACTATCTGTCTTAGAGGAGCACCATGCCT
+TAAACTATGTAACTCAATTTCTCTGGCAGAGAGCTCTTCCAACCTGCAACAAAGTTTCTC
+CCAGGTGAGCCAGGGAGTAAACAAAGGCAGTACTTGAATGGAATGAGAATAGCGAGATGT
+TATGTCGCTTACTTCGTGTGAGTTCTGCTCGGCCATTTATGTTTCTATATCCACGCTTAT
+CTTTGCCTTCTCTCCTCTGGTTGTGAAGGACAATTATGCGAGCTCCATTTAACCAATTGC
+ACTGTCTATTCCTTTGACCACATGCCCTTCTTCTCTAAGGAATTCTCTATCAGGACTTCT
+TTATTCTACCCCAGAATATTCTGGATACAGTGATAGAAGGGAGAAATCCTGAGAGAGATA
+TATATATATGTCATATATATGTATGTGACAAATAGGCACATGAAAATATGCTCAACATCA
+ATAGTTATTACAAAATGCAAATTAAAACCACCATCAAATTTTATTGCACACTCATTAGAG
+TGGCTAAAACTAAAATGACTGACCACAATAAGTATTGGGGAAGATGTGGAGGAACTAGAA
+CTCTTATCTACTGCTGGTGGGAATATAAAGTGGAACATTTCGGCAGCTTCTTAAAAAGTT
+TAACATACACTTTTTGTATGATCAAGTCATTCTGTACTTAGGTAATTAGACCAGATAAAT
+AAATGTGTATGTATCCATAAGAAGATTCATACAGGAGCATTCATAGAGTCTTTACATATG
+ATAGTCCAAACTCAAATGTTCATCAACAGGTAATCAGATAAACAAACTATGCTACTCAGT
+ACTACAAAAAGAAATTAACCATAAGCACATGCTATAGTATTTGTAGATAAATCCCCAAAT
+ACCATGCTGAATAAAAGAAACCATACCAAAAAGGACTGCATACTGTGTAATTCCATTCAT
+ATAAATTTTCTAGAAATGAAAACTAGTCTCTCGTGATAGAAAACAAGTCAGTTGTTGCCT
+GGGGGTATCAGACAAGAAGAAGAAGGGAAGAATTACAAAAGGCCAGGAGGAAATTTTTTT
+TAATTTTTATTTTAAGTTCAGGGGTACAGGTACAGGTTTGTTATACAGGTGAAGTTGTGT
+CATGGGGGTTTGTGGTACAGATTATTTTATCACCCAGGTTTTAAGTCTAATACTCATTAG
+TTATTTTCCCTAATCCTCTCCTTCCTCCCACCCTTTACCCCAGAGTAGGCCCCAGTGTGT
+GTTGTTCCACTCTATGTATCCATGTTCACATAATTTAGCTCCCACTTGTAAGTAAGAATA
+TGTGGTATTTGGTTTTCTGTTGCAGCAGTAGTTTGCTAATGATAATGGCCTCCAGCTCCA
+TCCATGTTCCTTCAAAGAACAGGATGTCATTATTTTTTATGGCTGCATAGTATTCCATGG
+TGTATATGAACCACATTTTCTTAATCCAGTCTATTATTAATGGACATTTGGGTTGGTTCT
+AAGTCTTTGGTATTGTGAATAGTGCTGCAATAAACATACGTGTGCATATGTCTTTATGAA
+AAAACAATTTATATTCCTTTGGGTCATGGGATTGCTGGGTCAAATGATATTTCTGTTTTT
+AGGTCTTTGAGGAATTGCCACACTGTCTCCCACAATGGTTGAACTAATTTACATTCCACC
+AACAGTGTATAAGCTTTCCTTTTTTTCCACAACCTTTCCCACATCTGTTATTTTTTGACT
+TTTAAATAATAGCCATTCTGACTGGTGTGAGATGGTAACTTATTGTGGTTTTGGTTTGCA
+TTTCTCTAATGATCAGTGATGAACTTTATTTTATTTTATTTTCTTATACTTTTTTTTCAT
+TCTCAGCAAACTAACACAAGAACAGAAAACCAAACACTGCATGTTCTCACTCATAAGTGG
+GAGTTGAACAATGAGAACACACGGACACAGAGAGGGGAACATCACACACTAGGGCCTGCC
+GGGAGGTGGGGGGCTAGGGGAGGGATAGCATTAGGAGAAATGCTTAATGTAGATGATGAG
+TTGATGGGTGCAGCAAACCACCATGGCACATTTATACCTATGTAACAAACCTGCACGTTC
+TGCACATGTACCCCAGAACTTGAAGTATAATTTAAAAACAAATCAGAAATAAAATACATT
+CTGATAATTAGGGAGAGACTGACAATATAATGAGATTGTGGTAGGGTGTACCATGCAAAG
+GCAACTGAGCTGGTTATAGAATTTTAGGATGGATACAGGAAATAAAAGAGAAAGAGAGAC
+ACAGAGAGAGACTGAGAAATAAACAGTTAGTCAATGGTAAAAACGTAATGCCTAAATCTC
+CTTTAGAACAACTTAAAAGTATATCAAACTTGAAGTTAAAGAAAAAACTTAAGTCAATAA
+AAAAGAATGATGTTAGGTGACTTCTAATGCCAACAGAGTTTGTGAATCTCTAAGCAATAT
+GCTTAAACTGAGCTCAGGGAGTCCAGAGATAAGGGACTGATTTCATGTGTTTGGGTACTT
+TGCTTTATCTTTGGTTTAAAGGAGTATAATTTTGGCATGCATTTAAAGTAGACAAAATAT
+ATGTAGCCATGTAAGCTTACAAAATAATACATTTGTTAAAAAGCATGCCATGCCCTTTGC
+TTGGCAAAAGGCACGAATACAGGCCTAAAAATCAGCTAATAATGACTTAAAATTCAGGTC
+ATTAATATCAGTAAAAACTCCACAACTCCGGGAGTCTTGAAAATTCTTTTACTCTTTCTC
+AATCAATTTGTATTCTTACTTGTTTACTATGACTATTTCAATGACTTCAATGTTTTATTA
+TAGGATGAGGTTTTGACTAAGCTTTGAGAGTATGTAAATGAATAAAACTTATTTCATAAC
+TACATTTTAGAAGATAAAAAAGAACTATTAGTACCTACTATTCCCATATGTTTTTCAGCT
+AAATTTAACCCAGTCTTAGATGAGGCTTACTTAGGACAGTATAGCTATGTGTGTATAGCA
+ATGTAATCAGTTACAGAGATAAATCTATTTTACAAATAGAGTGATACTAGCAGTTATGTG
+GACTGCAGCAGAATTACAAAAGGATGAGTAAAATTATGTGTCAGAGGCAGCCGGGCACAG
+TGGCTCCCGCCTGTAATCCAAGCACTTTGGGAGGCCAAGGTGGGCAGATCACCTGAGATC
+GGGAGTTTGAGACCAGCCTGACCAACAGGGAGAAATCCTGTCTCTACTGAAAATACAAAA
+TTAGCCAGGTGTGGTGGTGCAGACCTGTAATCCCAGCTACTCGGGAGGCTGAACCCAAGG
+GAGAATCACTTGAACCCGGGAGGTGGAGGTTGCAGTGAGCTGAGATTGTGCCATTGCACT
+CCAGCCTGGGCAACAAGAGCAAAACTCCATCTCAAAAAAAAAAAAAATGTGTCAGAGGCT
+ATTTTATAGCTAGAAGGTAATGTTTCCAAATATGTTATACATTAATCCTAACAGCAATGA
+GAAAGAAAAAATATAGCAGAGACAGTGTTGGTTTGCTTTTTTTTAAGAGAGAGGGGGGTA
+TCACTATGTTGTCCAGGCTGGACTCAAACTCTCGAACTCAAGCAATCCTCCCACCTCTGC
+CTCCATAGTGACTGAGACTACAGGCATGCACCACCACTCCAGGACTGCTAATGTTTTCAT
+CCAATATCCATTTTCTCTGTCTTTCATACTTATAAAGCTTCGATTCTATTCTGAGCAAAG
+GGCTACATTTCATAGCCTCCTTTGCAAATAGATTTGTCAATGTGATGTAAGGGGGCATCT
+TTTAACGTTGACATGAACCATCCCAGGCTAGAGATAAGCCCTTTTACCTTTCCTTCTTAC
+CATGTCCTTCTTTTTCTTGCCTCAAACACAGACATGATTACAGGAACTATGGCAGGCATT
+ACAGGCCCTAAGGAGAACTTGAAACCTACAGGATTACAGATGCCAAAGCAGAAAGCTAGA
+AGGAACATGCCTTCCTGATGACTGTGGTGTTAGTATACTTCTAGATCTTCTTTTATGAGT
+AGGATATAAAGCCTCTAACTTATTTGAGATTAATATTGAGGCTTTGTTTTATATATGGTA
+AATTTAATCCCGAAAGCACACATACAGGAATAGAATAGTAAGCTCAGGTTAAGAGTCAAG
+AAATGGGCCTAACAAGAGTAGGAGGTAAGACATTAGCATTGTCACTTACAAGTATGGTCA
+CAAAGGCATTTTCAGCCTTTCTTATGCAATTATAACCTTTAATTTAACATGGTCTTGGAC
+TTGTTGAATATATGGCCTTCAAACATATAATTCTACTATTGACTTCCTTAATGGAATCAA
+ATCAATTATTCAAAGGAGAACAACTAAAATTTTTTTTTGTAAAAAATCAAAGATTGGACT
+GCTCTCAATGCAACCTGGATTCAGGGACTAAGATCTCAGAGAAGAGAAAAGCACATTCAG
+GTAAGATTGACATGGTGCACTCTACCTTTCCCTTTGAGACATTTGTTTCCCTGAGCCGAG
+TGGATTAATATCAAGTAGAATGCAAGGAGTAAAAGATTAGGTTACAGAGGTCACTTTTCA
+GAAATCTTTTTGATGGAAAAACCAGAACTGAGTTTCAGGGCAGGCCAAGTAAGAGGGTCC
+CTTGCAACCACCCCAGAGATTCAGTTGGAGCCTCTTAGGAATAAAAACCTGGAAACAGTA
+CAACTCTCCCCAAGACTGAAAAAACTGAGTTCAAAATCAACTCAAGCCAGACTAGATTAA
+GGTAATCTACATCAAGGTGAACTCAATGCCTTTTTGAGAAATTAAAGAAGATTTAAATTA
+ACAAAGGGATAAACTATATTCATGGATTGCAAGAATCAATAATGTGAAGATATTTGTTAT
+TCCCAAACTGATCTGTAGACTGAATGTGATCCCAATCAACATCTCAGTGGATTTTTTGTG
+AAAAGCAACAACTACTTGCAAAATTCATATGGAAATGTTAAAAATTAAGAATAGGCAAGA
+TGACCTAGACAAAGAATAAATCTGGAGTAGTAGAGATATGGTAATGAGAAAAGCAATTAC
+ATACCTGCACCTACAGGGCTACTGTCTATGGGAACACCAGAATTTGAGCATAAGGTTTTT
+TTTCGAAAGAAATAATATAGGGCATCTAGGAAACTCAACCTAATCTAGAGAGCTTCCCCT
+AGAAAGTGACCTCTAAGCTGAGACCTCAAGGACGAACAATAGCAAGCTAGGTGAGTAGGA
+GTATCAAGAGTATTCTAAGAGGGGGAAGAGTTGGTAAGAATTCTTAGAGAAAGAGAAGGT
+TTATCAGGTAGCGAGGGCAGTGGGAGTTGACATGAGGATTGCATTAGGATGAATACGGAT
+AAATGTGTAGGGGCTAAAACTTGGAAGGCATTTAGAGGGCATATTAAGGAATTTGTTTTA
+AAGGTTATTTTCTCCCAGGGAATAGAAAGATAAGAGTTGCATTACCAAAGGCTTCAAAAT
+ATTATTCTATATGTACCGGAAAGGATGAAGTGTGGAATTTGGGAGAGTAGCAAGGTAGAT
+CTTCTCACTAAAGTCCAGGAAAGAAGTGTCATTGGTTTAAAACATTGTAGTAGGGCCAGG
+TGCGGTGGCTCACGCCTGTAATCCCAACCCTTTGGGAGGCCAACATGGGCGGATCACTTG
+AGGTCAGGAGTTCGAGACCAGCCTGGTCAAGAGGGTGAAACCCCATCTCTACTAAAAATA
+CAAAAATTAGCCAGGTATGGTAGTGGGTGCCTATAATCCCAGCTACTCAGGAGACTGAGG
+CAGGAGAATCGCTTGAACCCAGGAGATGGAGGCTGCAGTGAGCCAAGATTGGGCCACTGC
+ACTCTAGCCTGGGTGACAGAGCAAGACTGTGTCTCCAAAATTAATAGTAATCATATAAGT
+AATAAATAAATAAATAAAATGTAGAAGTAGAAGTAGAGAAGAGCGGATGCAATTGAGGAA
+TTAATCCAATGACCGACTAAGGAGGCAGGAGGCAGTGCACTAGGCAAATAAAATGCTCGT
+GCCAGACGATATACAGTGCTAATAAATGTTGCTATGTATTTATTAAATTTTTGGGGAGAG
+GATTATTGATTTATAAAATTTTGGAATACTAGAGAAGAAGGAAAGGAAGGAAAGAAAAGA
+AGGAAAGGAAGGAAAGAAAAGAAGGGAAGGAAGAAAGGAAGAAAGATAAGAATGATGGAG
+GGAGGGAGGGAGAAAGAAAATTCAGAACCCCAAAATGTCTGTCAGTGAAAATAAAAAAAG
+AGAGAGAGAGAAAAGAAGAAGATGAGGAGGAAAGAAAACTCTAAAACTGAAAACCAAAAG
+AAAGTTTTATATAAATAGAGACTGAAACAGTAATAGAAGTTTATGTTGTAGGTCAAAATG
+CAGTCTCCCGCTGTCTAGGAAAGCCTGTAGGTCATTTTTGCACAATCCACATGGTAAATG
+GCTCTGGGAGCATCAGCCAACATAGTTAATGATATGTAATTAAGTCTTAATTCCAAGCAT
+TAATAATTCAACAGATAATCAAGAAAATATATATAAACTTTTTAAATTAATTATGTAGCA
+TTTTATCAGTACATTCAATTTCTAAATTATGTATTTCTTCCTTTGGCAACTGTTAAAATT
+ATTTTGTGTTCGTGGGCACATGTTCTCCAGAACACACAAACTAGGTAGGATGGTAAGCAG
+GAAATTCTTGAGTTGAAATTGTACCACAGATAATACAAAGTAAATGCAATACATGTTTTA
+AAAATTTATATAATATAAAACAATGGCCAGGCGCAGTGGCTCAAGCCTGTAATCCCAGTA
+CTTTGGGAGGCCGAGGCAGGCGGATCGCCTGAGGTCAGGAGTTGGAGACTAGCCTGGCCA
+ACAAGATGAAACCCTGTTTCTACTAAAAATACGAAAAATTAGCCGGGCATGGTGGTGCAG
+CCTGTAGTCCCAGCTACTTGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGGAGGCGG
+AGGTTGCAGTGGGCGGAGATCATGCCAGCTTAGGCGACAGAGTGAGACTGGACATAATAA
+CAATAATAATAAAAATAAATAAATAAAACAATTATCTGAGAGGAAAAATTTGATTCATAA
+TAAAGAGAATAAAGGTTTTTGGCGTGTTTGTTTTGTTTTCACCTAAGAACAGCTGTTCCC
+CTCATTGGGTTAGTTTTATTTGCAAGCAGAAATCATCTCCGCATGATTTCCAGGGTGATG
+GAAAACTGAATATGAATCCACCTTCTGCCATCTATTCACTTGTCACATTTAATAAGACAC
+TCATGCCTATTTTAGCATGTTTTCTTCCCTACCAAATGAGTTAGTAACATCAAGAGATTA
+AAATAACACAAATAAGAACATTGAAGGTATTCAAATGTTACATACAAATATTAAACACAA
+TATTATTATAATTATTCCTGGAAATGACATTGCCTCTACTCTCAAGGTAAAGGTCATTTT
+TCTTGATTTAAACTTTTTTCTCAAGTTTGAAATCTCTAAGTTTCAACCCGTAATCTATTT
+GCAAGTTTGTGCAAATTTTAGGGATTGAATCCATAGTAATTAGTGATTTATTGTGGTGTA
+GGGAGACAAGTCAAAAGAATCAGGACTGCTAGGTAGATGACTAAGGAAAGGATGGTTCAC
+GAGGTGACATAAAGCACTCAGAAGAAAAAGGTCAGGAAACGGAGGACAGAAAAAAACCTA
+AGTTCTGCTGGGTGATGCTGAATTTGTCATCACAAAATCTGCATTGTGGAAGCTTTAGCT
+ATTGAGGAGATTGCTCAAGTGTAGAACTGAGAACAATAGGCAGTGAACCCGAGAGAACAT
+CAAGAGACTGAGAGAAAATGAACCAGACTTCCAGGTGCTCCATGTTCCAACCAACATTTT
+GTATTGTCAGAAGGAATTGAGAGGCAAAAGGAAACCCAATAAAAAATAAAACAGGAAAGG
+GCATACATGATTACCACCCCTTTTCTCACCAGCTGCTCATGGACCAGCTTTCTCCTAGTG
+CTATTTTCTTGGTCACTGCATCACTCTGCTAACATAGTTTCCCCACTAGCTCTGAGGCTG
+TCCCAGAGGGGAAGCCAGCTGTCATCTCCTTCTTCCACACTCTGTTGGAGGAACCTGTCA
+TTAGCAGCTCCCTACTAAACGCATTTATGACAAACAGGCAGGAGATAATTAACTAGAAAG
+TGAACAAACTCAAACTTCAGAGCCTCTCATTTGTATGAATGCCCTTGTAAGGTCTTGGGC
+CTATTTTAATATTTATAAATGTGTTATTTTCTTCTAAAGAAAACCACCAAATTGTATAAG
+CTACAGAATCTGCAAAACTGAGGTCCATCCATGCACTCAGGATACATTCATAGCATCTCT
+GAGCTGGAAAATATCTTAAAGGTCATATATGTCCTCCAACACTGCAAGAATCTCTCTGGC
+AGCATTCTTTTAAAATCATCATCTAAAAGAGGGAAATCCCCAGCTGTGTTTGGATTTTGC
+TCTGTCACTTGTCCAGTTTCCCCATCCATAAAAGGGCAACAATATGAATTTCCTGATAAG
+GTAGTTGTTAATATAAATACAAAGTGCGTAGCCACTTCCCTAAGAAAAATATGGGGTTTC
+TGCTTCACAGTCTAGGGAGAGGAAAAAAAAGGGGGGTCAGAAGTGATTATTATTATCATT
+CTATATTGGAATGTTTTCAGACATAAAAAGCTCACCACGTCTTAGGCCAGACAGATGCAT
+TATGAAAGTTAAGCTAAGTCTTCCTCATCATGAGCTGCACCTATATCCCCATTACTTCTT
+CTAGAACTGCATAATTTATTTATTCTTTCTTCAAAAGTTTGAGAGAGCCATTCTTGTCCT
+CTAAGATTTTTTTTTTTTTTTTTGGAGACAGAGTCTCCGTCTGTTGCCCAGGCTGGAGTG
+CAATGGCACTATCTCAGCTCACTGCAACCTCTGCCTCCCAGATTCAAGTGATTCTCCTGC
+CTCAGCCTCCCGAGTAGCTGGGATTACAAGCACGCACCACCACAACCAGCTAATTTTTCG
+TATTTTTTAGTAGAGACGAGGTTTTACCATGTTGGCCAGGCTGGTCTTGAACTCCTGACC
+TCGGGTGATCCACCCACCTCAGCCTCCCAAAATGTGGGGATTACAGGTGTGAGCCACTGC
+ACCCGGCCATCTTCTAAGACTTCTATGGAGAGCTACATCCTTTAACTATTGATTGATGTC
+TTAGTATCCCTAGAGCACCACCTAGTATCTGGCATTTAGCAAAGTCCAAAGAGTGGTTTC
+AAGTAAGCAAGTAAAGAGATTCATGAAAGAATAAGTGTTTTTCAATCAATCACTTTATCC
+TTAAATCTGGTAGGTTAACTCAGAAGAATGAAAATAGAGTACTAAGGCATTATTACTTCC
+TGTAATCTGTTTACTGTTTAGTCCCTCAATGGGAAGAAAGTTTTCTAACAAATAACTCCA
+AGTTTTGGTTCAATAAACTTTGCAAAACCAGATATCCACATTCTTGAGAGCAGGAATTTG
+ATGTTCCTTAAGTTTCAGTTCTCCATCATGTCTGGGCCCTAGTACTTTGTATCTAATACT
+CAATATACAATTTGGAAAATCTGAGGTATAATAAACACACAGTAATGCACACACATTTTA
+AGTGTGCAGTTTGATGGATTTTTACATATCAATTTATTTTAGTAACTACCACTTAGCTCA
+AGATAGAACATTACCATCACCCCATGTATTTTTATTTCCCCATTTTTGTAAATACTCTCT
+TCACTCTCTTCTAACCAAGTAACTCTCTAACACCATAAATTAGTTTCCTCTGTTATTGAC
+TGATTTGATGGCTGCTAAGATTAAAATAAAAGTGTGGGTTTATATCTGGACTTTCTATTA
+TTTTCCATTGGTCTATTTTACTTTCATTCTGACAATACCATAATATCTTGATTTCTGTAG
+CCTTATAATAAGTTTGGAAATCTGATAGTAAGTCTAAACATCCAATTTTATTCTTCAATA
+ATGTTTTATCTTGGTTCCTCGTATATACATAAAAATTTCAGAATCAGCTTATTAATTTAC
+ACACACACACACAGCCATTTATATTTAATGTAATGAATAACACAGTTGAGTTTTAAATTT
+ACTATCTTATTATCATTTTCTCTTTGCCCTATCTGTTCTTTGTTCATTAATTCCTCTTTT
+CCTGCATTCTTTTACCTCAGTCAGGTATGGTTTATAATTCAATTTTATTTTCTGTATTAC
+CTTTTTTGTTGTGCGTTTTGATGTCATTCTTTCATTGGTTACACTTAAAACATCATCCTT
+AACACTGTTACCTTAAATTATCAAACGCAAGGATCTTATATTTATCCTTTTAAGGCTGTT
+ATTCTATATTTGACTTTAATAAACAGTATAAGCCCCACAAGATACTCTTATTCTTTATGT
+GTCAAACAGTTAGTCTTTTATAAATTCTCAATCATTTACCCTTTCTGGGGCTGTTTATTC
+TTGCTTACATTTCTGTGATTCAATGTGAGACTATGTCCCTTCAGCTTGAAGAATAACCCT
+GAGTAAATTCTGTAGTTTATAGTCAGCTAACAATGAAGTCTCTCAGTTTTTGTCAGTCTA
+AATCTTTTTCATTTTTCGATTCTTTTCAATGGACACAGAATTCTGGTTTGATAGTTTTTA
+TTTGTTTCTTTCTGTACCTGAAATATATTTATTATCTTCTACCTTCCATGATATTTCTGC
+TGAAATCAATGTTCATTTATATTGTTCCCCCAAAGGTGATTTTTTTAAACCTCTGGTTGT
+TTTTAAATTTTCTTTTTCGTCTTTCAGCAATTTGACTCTCATAGGCCTAGATGGGGTTTT
+CTTTGCCTGGGGTTCATTGAGCTTCTTGAATTTCTTGGTTGATATCTGTATTAGTTCATT
+TTCATGCTGCTGATAAAAACATGCCCGAGACTGGGCAATTTGCAAAAGAAAGAGGTTTAT
+TGGACTTACTTCCACGTAGCTGGGGAGGCCTCACAATCATGGTGGAAAGTAAAGGGCACA
+TCTCACATGGCAACAGACAAGAGAAGAGAGCTTGTGCAGGGAAATTCCCATTATTAAAAC
+CATCAGATCTCATGAGACTTATTCACTGTCATGAGAACAGTACGGGAAAGACCTACATGA
+TTCAATTATCTCCCTCCCACAACATGTGGGAATTATGGGAGCTACAAGATGAGATTTCGA
+TGTGGACAAAGCCAAACCATATCAATACCTTTCGAGTTCTTCACCATGATTTTTTCAAAT
+GTTGTTTCTGCTAGTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTTCTTTCTGC
+TCTCTCTGGATATTTTCTATTGATTTCTATATGAGACCATCAGTTTATTTGTGTAGTATC
+CAGGTGGTTTTTAAACCTATGTAATTACTTCTTGATTTAGCAATTCAACAAAGTTCATTT
+TATTATTTTTATGAAACCTAATATCCTGCTGAAATGCTCTGTTTTTTAATCCATTTTGCC
+CATCTCCACGGTAGTTCATGGTTATTTAAAAGCCCTTGCCTATTAGTTCCAAAATCTGTG
+TCATTTCTTGAGCTCTATTGACTGTATTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTTCT
+TTCTTTCTTTCTTTCTTTCTCTCTTTCTTTCTTTCTTTTTTTGCCATCAGGTACTCTTTT
+CTGCTTCTTTGCATGTCTGGTAAGTTTTGATTGCATGCAGCATTTGTAGAAATTTTAGCT
+TATGTTTTCTTCCTCTCATAAACTTTGAGTTGTGTTCTAGCAGGTGGTTAAATCATTGGT
+AGATCACCCTAACCCTACAGAAGCCTAGTTTTTGCTTCGTTCAGTCAAATCTATTTCAGT
+TTATTCTTTCTCTTAGGACATCATCCTTCTATCTAAGGAGTATCCTTCAAGGGTTTCATC
+CTAATGCCTGAGGTGTTCACCAAAGTCTTTCCATTCTGACTGGAACCGAACTCCAACATC
+TCCTCAGAATTGTGTGATCTCTAAAATGTCCACTCAAATTTCAGCCTCTCTGCCACTGCA
+CTGTATCTGTCAGGTCTCTAGAATAATGCCTCTGGACACATGCAGCCTAGCAATTCAGCT
+AACGAACTGAGAGGAATTGCCACACAGACTTCCGGTGCTGCCTCTTGGTACTCACCTCTC
+TGTCACCTTGCTTACCTCCAGAAACCTTAGTTACTTTATATAGCTCCAAGCTCTTGAGCT
+ATATGCCCTCTGCTCAGTGAAACTGCAGCTCTCTGCTTATTCTCAACCTCCCAAAACTTC
+TGCTGAAAAAAATATCCCCTGAGGAAAAATAATCCATGGGAATGGGCTCATTCCATGTGC
+CTCCAGTTACCCCAAATTGCAGCACTATGTTGGTTATGGTTCAGAAGTAAAAAATGTTTG
+ATATAGTTTTTCCAGGTTTTATAGCTATTTTATGGTAGAAAGGCAAGTGAGTGCTATTAG
+CTAATTGTCCAGAACCAGAGTCTCATTTCATAACTGCATAAATCCTTTGCTTATCTTGTG
+TATTTTTTTAAACAAACCTAAAATGCAGGATTTCTAAGTATTTTCCAGTTCTAGCTGATT
+TCCTTCATTTTAGATGAAAATCCAAAGGTAAATACTCTTTGGTTTCTGATTTTTGGCATC
+TTGTAAATAAGCATTGCCTCCAGTTTGGTTCATTCTCAGATCTATTAAGTATCCCATTTA
+TATTTTCCTCTGAAATATAATTTGATAAATCTGCTGAATGATCGGGCACCAAGGTCAGGA
+CCAATACCTTATTCAAGCCCAGCATGAATCCACTTACCAAGAAACTGGAGGCAACTCTGT
+CTAAACTGTAATTTGTTTGATACAAACATGCCATCTACATTTACCTTGTCCATAATGATA
+ATGGGAAGGTTAGCTGAAATCAGGAAATACTGTATTATGAGTTTAGTGACTATTTACAAG
+TGGAAATGAATTTAATCTGGTATGATTTATTTTACTAAATTGTAGTTGCTTCCTTTTCTT
+TTCTCACTAGTCACAAATGATTTATTTCAGTATCTTCTCCAGAACATTGCCAGAGGCCAG
+TCTCAAACTTAACCATTGTATACATACCAGAATATTTTCATTAAAAATTAATAACTTTTG
+TCTTTCTCTGAAAACTACATAATCACTACTTGTCCATTCTTTTGGTCCTTGCCTGTTCTT
+TATGGATCAATATTATCAAAGCTACTCCTGTTTCCACAGGCAAATAACAATTCTATGTAA
+TGGGAAAGATATTAAATCCGAATTCATGTTCCTCTTACTAGCTATATAATGGACAATTAA
+ATTATTCCTTTAAATTCCTTTCTCCTTTAGTACACAAGGATAAAATACTCATTTGATTGT
+TTTAAAGATTAAAGAAGTATCTGAAAGTAACTGTTATATTTTCTTCTGAGAGGTATCCCA
+ATAAAAAGGCTACAATATTGTTATTATTATTACTATTCTAGTATCCTGGATGCAATTTAC
+CTAAGCCTAGATATTTTAATTAATTTAAGTAGCCACATGCTTTCTCACTAGCTATTTTCC
+CAGCATGATCTCAATCTTTTCTACGCAAAGTTTAGTCTCTTCTCTCCTAAAGATTGTTCT
+ACCTAGAGAAGAATATAGGTTCAGAAAGGAATTCATATACTGGTGTTTCTCTAATCTCTT
+AGAATTACTTAATTTTTCAAAGAGCTCTATCTTTTCCTATTTATCTTCTTGTTCCAAATA
+GAATTAAAATCATTTGCTGCCTTTAATATTGTTAAATATTTCATTTCATACTATGCTTCA
+ATTTCTTGCTTTTTTCTTCTTTTTATCTTCCTCCTTCCTTCCTTTTTCTTTCTTTTCTTC
+TTTTTCAGTTATCATTGTTATGCTTGTCCTTTCTTGTGAGATTCCTCTGTTATCTTTCCT
+TATGTGCTTTTTAAACAAAACCTCGAGAGTGCCGTGGGACAGCCTCATTGGTATCTTTTC
+AAATTTGGTATCTCTCCACTTTTTCCTTACATAGTTAGCTGGCAGTAGTACATAATAACC
+TTTTCTGTCTCTCTCTCTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTTCTTA
+GATTTTCATTCCTCTTGAGCTTTAAAAGACTGGCTAGCAATGTTATATCTTTCATTTTAT
+TTTCTGATTTAAAAAAGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGTGT
+ACGCGCGCGCGCGCGCGCGTGCACGTCAGTGTCTTCTTCATGGATGCTTGTCTTATTTTC
+TCCCAAGGTGTAACTGTCCAGGGAGGGAAAAGTCAAGTCGTCCTCTATTACACTGCTCTG
+CAGAAACAGACTCACTAAATGTCAAAAAGTAGATGCATCAGACTGTTCCTTAGAGAAAGG
+TTTGCCATGGAGTCGTATATTGTAACTGAGCTGAAGTTCACTCATCGATAAGTTGTGCCC
+AAGGAATCGAATTCCTTCCAGTCCTTCTAAGCAGTCCAGGGAAACCAATTTAAAAGCGAA
+CACAACAAAACTAACAGACCGGCAAAATCTATCTTTGAAGCGCCGCGGGAGGCACAATTT
+GGGAACAGGTGAGGCCATGCTGGGTGGGTGAGGCCCCCCTCTCTCCTGCTTGGTGTTCCG
+CTTTCAGCCAACCCACCCCAGGAGTACCCTGGGATCTCCTCGCCCCCTGCCAGGCGGAGA
+ACGCGGAGCCCAGCGGGCACGCGGGAATGGAGCTAGGCGCCGGCAGGGCAACTGGGCATG
+CTCAGAAGCCGGGCAGGTTTTGGTCTCAAGCACGCAGCCTGTGCATTACACCAGCTCTCT
+CAGTCCGGGGAGGAGGAGGAGCAGGAGGAACGCGAGGAGGAAGGAGAGGAGGAGCGGCCA
+GCAGTAGCCACGACCGCCACCACCAGGCAGAGGAAGAGTTCGTGGGGAGGAAAAGACCTC
diff --git a/hmmer/tutorial/fn3.hmm b/hmmer/tutorial/fn3.hmm
index 41f8094..0dcfa22 100644
--- a/hmmer/tutorial/fn3.hmm
+++ b/hmmer/tutorial/fn3.hmm
@@ -1,14 +1,15 @@
-HMMER3/e [3.0 | March 2010]
+HMMER3/f [3.1b1 | May 2013]
NAME fn3
ACC PF00041.13
DESC Fibronectin type III domain
LENG 86
ALPH amino
RF no
+MM no
CONS yes
CS yes
MAP yes
-DATE Thu Jun 16 11:48:22 2011
+DATE Fri Jun 20 08:22:31 2014
NSEQ 106
EFFN 11.415833
CKSUM 3564431818
@@ -23,262 +24,262 @@ HMM A C D E F G H I
COMPO 2.70330 4.91262 3.03272 2.64079 3.60307 2.84344 3.74204 3.07942 2.79841 2.65364 4.14864 2.95826 2.87120 3.02176 2.96125 2.44783 2.59757 2.57680 4.02726 3.21526
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.00000 *
- 1 3.16986 5.21447 4.52134 3.29953 4.34285 4.18764 4.30886 3.35801 3.70246 2.11675 4.32057 4.32984 0.76706 3.91880 4.22437 3.23552 3.21670 2.88223 5.80355 3.93889 1 p - -
+ 1 3.16986 5.21447 4.52134 3.29953 4.34285 4.18764 4.30886 3.35801 3.70246 2.11675 4.32057 4.32984 0.76706 3.91880 4.22437 3.23552 3.21670 2.88223 5.80355 3.93889 1 p - - -
2.68629 4.42236 2.77530 2.73088 3.46365 2.40512 3.72505 3.29365 2.67737 2.69316 4.24701 2.90358 2.73734 3.18157 2.89812 2.37898 2.77517 2.98515 4.58488 3.61514
0.09796 2.38361 6.81068 0.10064 2.34607 0.48576 0.95510
- 2 2.70230 5.97353 2.24744 2.62947 5.31433 2.60356 4.43584 4.79731 3.17221 2.95090 5.01531 3.26630 2.09873 3.30219 3.34190 1.45782 3.14099 3.57507 6.40877 4.25623 3 s - -
+ 2 2.70230 5.97353 2.24744 2.62947 5.31433 2.60356 4.43584 4.79731 3.17221 2.95090 5.01531 3.26630 2.09873 3.30219 3.34190 1.45782 3.14099 3.57507 6.40877 4.25623 3 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 3 1.38116 5.98285 3.50784 2.54546 5.32790 3.48945 4.43311 4.81385 2.38773 3.98773 5.02352 3.27895 1.92260 2.69012 2.96119 2.64228 3.29228 3.29618 6.41555 4.20553 4 a - -
+ 3 1.38116 5.98285 3.50784 2.54546 5.32790 3.48945 4.43311 4.81385 2.38773 3.98773 5.02352 3.27895 1.92260 2.69012 2.96119 2.64228 3.29228 3.29618 6.41555 4.20553 4 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 4 3.32856 5.10403 4.47046 4.60386 4.23079 4.75438 5.09647 2.69918 4.46632 2.97102 4.23502 4.77984 0.63388 4.68581 3.76781 4.05413 3.46306 2.04533 5.75329 4.56372 5 P - -
+ 4 3.32856 5.10403 4.47046 4.60386 4.23079 4.75438 5.09647 2.69918 4.46632 2.97102 4.23502 4.77984 0.63388 4.68581 3.76781 4.05413 3.46306 2.04533 5.75329 4.56372 5 P - - -
2.68616 4.42236 2.77530 2.73134 3.46365 2.40523 3.72505 3.29295 2.67751 2.69303 4.24634 2.90357 2.73739 3.18157 2.89783 2.37897 2.77530 2.98529 4.58488 3.61514
0.09682 2.39494 6.81068 0.10162 2.33687 0.48576 0.95510
- 5 2.95325 4.65976 3.57762 2.20709 3.14816 2.51487 3.41109 4.78902 2.65862 3.19599 4.41042 3.45032 3.44719 2.43205 2.26492 2.25400 2.23196 3.66828 4.80003 4.52485 7 e - C
+ 5 2.95325 4.65976 3.57762 2.20709 3.14816 2.51487 3.41109 4.78902 2.65862 3.19599 4.41042 3.45032 3.44719 2.43205 2.26492 2.25400 2.23196 3.66828 4.80003 4.52485 7 e - - C
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.01246 6.08833 4.59386 0.61958 0.77255 0.48576 0.95510
- 6 2.74215 5.97618 2.19482 2.69150 4.58171 2.33553 3.83525 3.28222 2.95080 3.32698 5.01691 1.45822 3.52462 2.79670 2.90942 3.13467 3.27956 4.36668 6.40902 3.92307 8 n - E
+ 6 2.74215 5.97618 2.19482 2.69150 4.58171 2.33553 3.83525 3.28222 2.95080 3.32698 5.01691 1.45822 3.52462 2.79670 2.90942 3.13467 3.27956 4.36668 6.40902 3.92307 8 n - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00341 6.07928 6.80162 0.61958 0.77255 0.44282 1.02784
- 7 3.32507 4.98102 3.78072 3.31043 2.85257 4.76439 5.09585 2.50332 4.69760 1.03851 3.36125 4.91001 2.73206 4.83820 4.72389 4.07376 3.83146 1.59790 5.60385 4.42704 9 l - E
+ 7 3.32507 4.98102 3.78072 3.31043 2.85257 4.76439 5.09585 2.50332 4.69760 1.03851 3.36125 4.91001 2.73206 4.83820 4.72389 4.07376 3.83146 1.59790 5.60385 4.42704 9 l - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.03752 6.08833 3.36505 0.61958 0.77255 0.48576 0.95510
- 8 3.15997 4.90658 3.35204 2.72775 4.53493 3.60960 2.65074 3.69535 2.11078 4.01384 4.99896 3.14668 4.61695 2.40643 2.34723 1.92358 2.03982 3.05153 6.39127 4.98082 10 s - E
+ 8 3.15997 4.90658 3.35204 2.72775 4.53493 3.60960 2.65074 3.69535 2.11078 4.01384 4.99896 3.14668 4.61695 2.40643 2.34723 1.92358 2.03982 3.05153 6.39127 4.98082 10 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00349 6.05430 6.77664 0.61958 0.77255 0.35749 1.20207
- 9 1.76295 3.98252 5.55061 4.93551 2.13202 3.39992 5.09294 2.14638 4.23898 2.23988 3.42109 4.92079 4.39252 3.70640 3.99349 3.50811 3.63432 1.47830 4.51148 4.41177 11 v - E
+ 9 1.76295 3.98252 5.55061 4.93551 2.13202 3.39992 5.09294 2.14638 4.23898 2.23988 3.42109 4.92079 4.39252 3.70640 3.99349 3.50811 3.63432 1.47830 4.51148 4.41177 11 v - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 10 3.01387 4.98892 2.91217 2.42744 5.22342 4.00576 3.74074 2.67275 2.47618 2.92529 3.89570 3.36720 4.15809 3.26810 2.80854 1.81572 2.02040 2.77133 4.92415 4.31555 12 s - E
+ 10 3.01387 4.98892 2.91217 2.42744 5.22342 4.00576 3.74074 2.67275 2.47618 2.92529 3.89570 3.36720 4.15809 3.26810 2.80854 1.81572 2.02040 2.77133 4.92415 4.31555 12 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 11 2.41247 5.98374 2.24093 2.04842 3.41543 2.59695 4.10033 4.81544 3.05501 4.28918 5.02429 2.22829 2.90635 3.12939 3.01921 2.37278 3.01194 3.02522 6.41619 3.66635 13 e - E
+ 11 2.41247 5.98374 2.24093 2.04842 3.41543 2.59695 4.10033 4.81544 3.05501 4.28918 5.02429 2.22829 2.90635 3.12939 3.01921 2.37278 3.01194 3.02522 6.41619 3.66635 13 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.06784 6.08833 2.75947 0.61958 0.77255 0.48576 0.95510
- 12 2.77725 4.36386 3.23435 2.92496 4.75140 4.31852 4.53101 1.91389 3.01135 2.51491 3.47932 2.97934 3.54432 2.88257 2.68923 3.07794 2.71169 1.80880 6.06849 4.75973 14 v - E
+ 12 2.77725 4.36386 3.23435 2.92496 4.75140 4.31852 4.53101 1.91389 3.01135 2.51491 3.47932 2.97934 3.54432 2.88257 2.68923 3.07794 2.71169 1.80880 6.06849 4.75973 14 v - - E
2.68623 4.42259 2.77533 2.73059 3.46323 2.40500 3.72529 3.29333 2.67757 2.69369 4.24724 2.90364 2.73744 3.18108 2.89835 2.37891 2.77531 2.98493 4.58511 3.61510
0.22113 1.62346 6.74643 0.44471 1.02446 0.29166 1.37446
- 13 3.17575 5.97994 3.10322 2.84738 5.32369 2.00173 4.43389 4.80873 3.01150 3.75019 4.42663 2.23751 4.64014 2.74467 2.85546 1.99984 1.67133 4.36987 5.08444 3.58488 18 t - C
+ 13 3.17575 5.97994 3.10322 2.84738 5.32369 2.00173 4.43389 4.80873 3.01150 3.75019 4.42663 2.23751 4.64014 2.74467 2.85546 1.99984 1.67133 4.36987 5.08444 3.58488 18 t - - C
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 14 2.14203 5.98483 2.53686 2.20884 5.33077 2.76253 3.61799 4.81737 2.91636 3.96256 5.02525 2.79307 2.44932 3.35978 3.34773 1.76758 2.51815 4.12754 4.53404 4.35768 19 s - T
+ 14 2.14203 5.98483 2.53686 2.20884 5.33077 2.76253 3.61799 4.81737 2.91636 3.96256 5.02525 2.79307 2.44932 3.35978 3.34773 1.76758 2.51815 4.12754 4.53404 4.35768 19 s - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02274 6.08833 3.90154 0.61958 0.77255 0.48576 0.95510
- 15 3.45984 5.96297 2.32904 2.98671 5.30486 3.14893 3.59992 3.68067 2.95954 4.26690 5.00447 2.01875 4.62814 3.51950 2.89162 1.97303 1.47565 3.87160 6.39755 3.59993 20 t - T
+ 15 3.45984 5.96297 2.32904 2.98671 5.30486 3.14893 3.59992 3.68067 2.95954 4.26690 5.00447 2.01875 4.62814 3.51950 2.89162 1.97303 1.47565 3.87160 6.39755 3.59993 20 t - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00344 6.06904 6.79138 0.61958 0.77255 0.40302 1.10352
- 16 2.82603 5.98256 2.96292 2.53617 4.39559 3.14388 4.09532 4.81336 2.59005 4.28779 5.02326 3.12547 4.63955 2.76620 3.03618 1.28432 2.14874 3.55065 4.82032 3.29405 21 s - E
+ 16 2.82603 5.98256 2.96292 2.53617 4.39559 3.14388 4.09532 4.81336 2.59005 4.28779 5.02326 3.12547 4.63955 2.76620 3.03618 1.28432 2.14874 3.55065 4.82032 3.29405 21 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 17 2.29842 4.96481 5.56794 4.95172 2.45211 3.33868 4.31545 1.97312 4.73378 1.34355 2.88087 4.92903 5.12608 4.86259 4.73754 4.07438 3.55674 1.71344 5.58685 3.78328 22 l - E
+ 17 2.29842 4.96481 5.56794 4.95172 2.45211 3.33868 4.31545 1.97312 4.73378 1.34355 2.88087 4.92903 5.12608 4.86259 4.73754 4.07438 3.55674 1.71344 5.58685 3.78328 22 l - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 18 2.99930 4.68496 3.44656 2.53427 3.92510 4.04338 3.13178 3.10095 3.07007 2.68343 3.58599 3.17010 4.15335 2.63450 2.71950 2.30083 2.03779 2.23518 4.92400 3.84991 23 t - E
+ 18 2.99930 4.68496 3.44656 2.53427 3.92510 4.04338 3.13178 3.10095 3.07007 2.68343 3.58599 3.17010 4.15335 2.63450 2.71950 2.30083 2.03779 2.23518 4.92400 3.84991 23 t - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 19 3.61302 4.50726 5.99163 5.39935 2.74200 5.23506 5.61087 1.85210 5.20622 1.10188 3.56291 5.40353 5.56305 5.33364 5.22134 4.56441 3.85751 1.20867 6.05610 4.88933 24 l - E
+ 19 3.61302 4.50726 5.99163 5.39935 2.74200 5.23506 5.61087 1.85210 5.20622 1.10188 3.56291 5.40353 5.56305 5.33364 5.22134 4.56441 3.85751 1.20867 6.05610 4.88933 24 l - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 20 2.90508 5.98486 3.37356 2.37027 5.33083 3.46854 3.40789 4.81743 2.65230 3.22177 4.17825 2.67373 4.63906 2.52648 2.39431 1.50547 2.16764 4.37598 5.01440 5.00552 25 s - E
+ 20 2.90508 5.98486 3.37356 2.37027 5.33083 3.46854 3.40789 4.81743 2.65230 3.22177 4.17825 2.67373 4.63906 2.52648 2.39431 1.50547 2.16764 4.37598 5.01440 5.00552 25 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 21 5.54218 6.63564 6.83891 6.61797 2.57168 6.35073 5.30532 3.96643 6.37377 3.18917 5.26281 6.07009 4.35269 6.11992 6.21105 5.74680 5.75143 4.86346 0.24436 3.66807 26 W - E
+ 21 5.54218 6.63564 6.83891 6.61797 2.57168 6.35073 5.30532 3.96643 6.37377 3.18917 5.26281 6.07009 4.35269 6.11992 6.21105 5.74680 5.75143 4.86346 0.24436 3.66807 26 W - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 22 3.10862 5.98423 2.61761 2.10221 4.46995 3.93009 3.84182 3.79843 2.19229 3.09373 4.47555 2.66452 4.06864 2.59255 2.99987 1.99073 2.05618 3.67318 6.41655 4.47364 27 s - E
+ 22 3.10862 5.98423 2.61761 2.10221 4.46995 3.93009 3.84182 3.79843 2.19229 3.09373 4.47555 2.66452 4.06864 2.59255 2.99987 1.99073 2.05618 3.67318 6.41655 4.47364 27 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 23 2.05280 5.87614 3.77610 2.63103 5.17655 3.25143 3.55897 3.09279 2.68152 3.35866 4.92882 3.43937 1.44938 3.29932 2.98336 2.85751 2.78420 3.02863 4.43359 4.47040 28 p - -
+ 23 2.05280 5.87614 3.77610 2.63103 5.17655 3.25143 3.55897 3.09279 2.68152 3.35866 4.92882 3.43937 1.44938 3.29932 2.98336 2.85751 2.78420 3.02863 4.43359 4.47040 28 p - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 24 2.65644 5.88726 3.37601 2.96202 5.19190 3.53629 4.46143 4.20046 2.87295 2.91429 4.93884 3.27084 1.07653 3.39095 3.69926 2.07705 3.29723 2.92337 6.34501 4.95985 29 p - -
+ 24 2.65644 5.88726 3.37601 2.96202 5.19190 3.53629 4.46143 4.20046 2.87295 2.91429 4.93884 3.27084 1.07653 3.39095 3.69926 2.07705 3.29723 2.92337 6.34501 4.95985 29 p - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.32165 6.08833 1.29911 0.61958 0.77255 0.48576 0.95510
- 25 2.44244 5.77880 2.64467 2.21733 3.20572 3.66340 3.27861 4.60939 2.17717 2.95495 4.81953 3.17778 2.62084 2.96028 2.64039 2.55818 2.51134 3.52175 6.21164 4.20060 30 k - S
+ 25 2.44244 5.77880 2.64467 2.21733 3.20572 3.66340 3.27861 4.60939 2.17717 2.95495 4.81953 3.17778 2.62084 2.96028 2.64039 2.55818 2.51134 3.52175 6.21164 4.20060 30 k - - S
2.68557 4.42278 2.77404 2.73101 3.46370 2.40555 3.72548 3.29364 2.67779 2.69337 4.24743 2.90378 2.73741 3.18051 2.89835 2.37928 2.77557 2.98526 4.58530 3.61392
1.12909 0.74203 1.60680 0.24883 1.51281 1.67198 0.20810
- 26 2.76497 5.64634 2.06362 2.44254 4.06108 3.91520 3.28362 3.73992 2.46695 3.95074 4.68755 2.93859 2.87257 2.71813 3.08100 2.16767 2.28242 3.00778 6.08028 4.00221 33 d - -
+ 26 2.76497 5.64634 2.06362 2.44254 4.06108 3.91520 3.28362 3.73992 2.46695 3.95074 4.68755 2.93859 2.87257 2.71813 3.08100 2.16767 2.28242 3.00778 6.08028 4.00221 33 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00580 5.54941 6.27176 0.61958 0.77255 1.23854 0.34222
- 27 2.94904 4.81418 2.88265 2.99332 4.83563 1.49306 3.87927 3.68299 2.59086 2.53757 4.07313 2.89409 2.92833 3.04624 2.88166 2.82744 3.22994 3.21444 4.18838 4.04981 34 g - -
+ 27 2.94904 4.81418 2.88265 2.99332 4.83563 1.49306 3.87927 3.68299 2.59086 2.53757 4.07313 2.89409 2.92833 3.04624 2.88166 2.82744 3.22994 3.21444 4.18838 4.04981 34 g - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00508 5.68074 6.40309 0.61958 0.77255 0.20085 1.70396
- 28 2.96588 5.95917 2.45759 2.65943 5.30490 1.91234 3.11781 3.44164 2.78003 4.01788 4.99965 2.12379 3.26764 2.84040 2.87160 2.26272 3.15721 3.84740 4.86821 3.64128 35 g - S
+ 28 2.96588 5.95917 2.45759 2.65943 5.30490 1.91234 3.11781 3.44164 2.78003 4.01788 4.99965 2.12379 3.26764 2.84040 2.87160 2.26272 3.15721 3.84740 4.86821 3.64128 35 g - - S
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00351 6.05095 6.77330 0.61958 0.77255 0.34864 1.22298
- 29 2.45969 5.96445 2.88574 2.61716 5.30131 1.53630 4.43818 3.46883 2.98393 3.60366 4.33332 3.25719 4.28257 3.08417 2.40821 2.08539 3.20111 2.81105 6.40207 4.25093 36 g - S
+ 29 2.45969 5.96445 2.88574 2.61716 5.30131 1.53630 4.43818 3.46883 2.98393 3.60366 4.33332 3.25719 4.28257 3.08417 2.40821 2.08539 3.20111 2.81105 6.40207 4.25093 36 g - - S
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 30 2.71563 5.98438 2.50720 1.96228 5.33013 3.47246 3.38617 3.68065 2.34086 4.03521 4.36775 3.08029 1.87041 2.90329 3.33287 2.70645 2.77558 2.97286 6.41666 4.17777 37 p - -
+ 30 2.71563 5.98438 2.50720 1.96228 5.33013 3.47246 3.38617 3.68065 2.34086 4.03521 4.36775 3.08029 1.87041 2.90329 3.33287 2.70645 2.77558 2.97286 6.41666 4.17777 37 p - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 31 3.04837 4.96747 2.67316 4.92527 2.42064 4.14655 5.09097 1.34551 4.71334 2.18068 3.34829 4.91585 3.31178 4.15082 4.72663 3.69906 3.53551 1.88881 3.93067 3.04034 38 i - -
+ 31 3.04837 4.96747 2.67316 4.92527 2.42064 4.14655 5.09097 1.34551 4.71334 2.18068 3.34829 4.91585 3.31178 4.15082 4.72663 3.69906 3.53551 1.88881 3.93067 3.04034 38 i - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 32 2.89418 4.58676 2.12720 2.65970 3.99748 4.30700 4.50689 3.12934 2.75241 2.32504 4.34805 3.25317 4.69765 2.93544 2.97945 2.48570 1.85268 2.60501 5.05387 4.40931 39 t - S
+ 32 2.89418 4.58676 2.12720 2.65970 3.99748 4.30700 4.50689 3.12934 2.75241 2.32504 4.34805 3.25317 4.69765 2.93544 2.97945 2.48570 1.85268 2.60501 5.05387 4.40931 39 t - - S
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 33 3.05045 5.96458 3.15002 2.79713 4.16491 1.56242 3.20986 4.07540 2.34002 3.77648 3.66616 2.65073 4.64351 3.21500 2.62101 2.34442 2.98761 3.25677 5.04578 3.36446 40 g - E
+ 33 3.05045 5.96458 3.15002 2.79713 4.16491 1.56242 3.20986 4.07540 2.34002 3.77648 3.66616 2.65073 4.64351 3.21500 2.62101 2.34442 2.98761 3.25677 5.04578 3.36446 40 g - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 34 4.72855 5.99332 6.32397 5.91516 1.75259 5.71064 3.47111 3.64093 3.68669 3.44300 5.13564 5.60513 6.03397 5.64902 5.63703 5.05114 4.95149 3.46344 3.97019 0.49348 41 Y - E
+ 34 4.72855 5.99332 6.32397 5.91516 1.75259 5.71064 3.47111 3.64093 3.68669 3.44300 5.13564 5.60513 6.03397 5.64902 5.63703 5.05114 4.95149 3.46344 3.97019 0.49348 41 Y - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 35 3.03913 5.98101 2.74983 1.95825 3.75604 3.98121 3.78677 3.48894 2.41418 2.89991 5.02189 2.66693 4.63989 2.65222 2.20113 2.26435 2.64729 3.16844 6.41420 3.93691 42 e - E
+ 35 3.03913 5.98101 2.74983 1.95825 3.75604 3.98121 3.78677 3.48894 2.41418 2.89991 5.02189 2.66693 4.63989 2.65222 2.20113 2.26435 2.64729 3.16844 6.41420 3.93691 42 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 36 3.75576 5.90373 6.92143 6.48083 5.27028 6.48043 7.33031 1.16190 6.46559 1.72148 4.18143 6.65320 6.63807 6.70678 6.63399 5.94811 5.00240 0.82398 7.51298 6.31097 43 v - E
+ 36 3.75576 5.90373 6.92143 6.48083 5.27028 6.48043 7.33031 1.16190 6.46559 1.72148 4.18143 6.65320 6.63807 6.70678 6.63399 5.94811 5.00240 0.82398 7.51298 6.31097 43 v - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.04904 6.08833 3.08806 0.61958 0.77255 0.48576 0.95510
- 37 2.63429 4.71789 2.89387 2.04081 4.17861 4.22097 3.38514 2.92734 2.36124 3.26230 4.97143 3.69265 4.61418 2.27063 2.38238 2.70982 2.11937 3.37005 6.36711 3.73375 44 e - E
+ 37 2.63429 4.71789 2.89387 2.04081 4.17861 4.22097 3.38514 2.92734 2.36124 3.26230 4.97143 3.69265 4.61418 2.27063 2.38238 2.70982 2.11937 3.37005 6.36711 3.73375 44 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00353 6.04282 6.76517 0.61958 0.77255 0.32899 1.27173
- 38 3.00800 2.48193 5.53105 4.91728 2.98458 4.75707 4.15268 2.83469 3.12355 2.32451 4.08737 4.91198 5.12099 4.84273 3.46182 3.58557 3.26283 2.28912 2.64554 1.29971 45 y - E
+ 38 3.00800 2.48193 5.53105 4.91728 2.98458 4.75707 4.15268 2.83469 3.12355 2.32451 4.08737 4.91198 5.12099 4.84273 3.46182 3.58557 3.26283 2.28912 2.64554 1.29971 45 y - - E
2.68641 4.42053 2.77543 2.73091 3.46377 2.40536 3.72420 3.29377 2.67764 2.69378 4.24582 2.90336 2.73763 3.18113 2.89660 2.37910 2.77543 2.98542 4.58500 3.61526
0.12278 2.16768 6.81068 0.54422 0.86820 0.48576 0.95510
- 39 2.52553 4.02469 3.60093 2.65311 4.18239 3.63052 4.17989 3.44209 2.14970 3.12319 4.96260 3.43770 4.02454 2.12722 2.15391 2.32250 3.25888 3.40611 2.73453 3.57446 49 q - E
+ 39 2.52553 4.02469 3.60093 2.65311 4.18239 3.63052 4.17989 3.44209 2.14970 3.12319 4.96260 3.43770 4.02454 2.12722 2.15391 2.32250 3.25888 3.40611 2.73453 3.57446 49 q - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02932 6.08833 3.62591 0.61958 0.77255 0.48576 0.95510
- 40 2.85303 5.96779 2.74660 1.91867 5.31393 3.60453 3.59476 4.33679 2.36399 3.57280 3.62613 2.83996 2.06170 2.51716 3.24767 2.43993 2.61505 3.39964 6.39984 4.98824 50 e - E
+ 40 2.85303 5.96779 2.74660 1.91867 5.31393 3.60453 3.59476 4.33679 2.36399 3.57280 3.62613 2.83996 2.06170 2.51716 3.24767 2.43993 2.61505 3.39964 6.39984 4.98824 50 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00347 6.06248 6.78482 0.61958 0.77255 0.67944 0.70705
- 41 2.55267 3.11480 2.72137 2.31006 5.21613 3.67111 4.08491 3.18721 2.11932 2.73126 3.73119 3.72342 3.44703 2.78931 3.31632 2.60923 2.50487 2.33623 6.34948 4.95631 51 k - T
+ 41 2.55267 3.11480 2.72137 2.31006 5.21613 3.67111 4.08491 3.18721 2.11932 2.73126 3.73119 3.72342 3.44703 2.78931 3.31632 2.60923 2.50487 2.33623 6.34948 4.95631 51 k - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.09789 6.06248 2.39773 0.61958 0.77255 0.38130 1.14877
- 42 3.41114 5.92195 2.00739 2.51445 4.35946 1.85149 4.04885 4.75310 3.02073 3.41727 4.96259 1.88803 4.57836 2.81891 2.77402 2.53317 2.79169 3.60394 6.35459 4.48731 52 g - T
+ 42 3.41114 5.92195 2.00739 2.51445 4.35946 1.85149 4.04885 4.75310 3.02073 3.41727 4.96259 1.88803 4.57836 2.81891 2.77402 2.53317 2.79169 3.60394 6.35459 4.48731 52 g - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00370 5.99676 6.71911 0.61958 0.77255 0.25112 1.50474
- 43 2.89692 5.98568 2.39354 2.04021 5.33202 2.12548 3.27810 4.81889 2.36649 3.39071 4.58505 2.82477 4.63888 2.99231 3.02264 2.04514 2.45319 3.82791 6.41761 5.00590 53 e - T
+ 43 2.89692 5.98568 2.39354 2.04021 5.33202 2.12548 3.27810 4.81889 2.36649 3.39071 4.58505 2.82477 4.63888 2.99231 3.02264 2.04514 2.45319 3.82791 6.41761 5.00590 53 e - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 44 3.10206 5.95088 3.50928 2.19657 4.70794 1.83640 4.44201 3.85177 2.81849 3.20653 3.64542 2.17673 2.82486 2.50236 3.67274 2.64718 2.71954 3.18909 6.39210 3.73228 54 g - C
+ 44 3.10206 5.95088 3.50928 2.19657 4.70794 1.83640 4.44201 3.85177 2.81849 3.20653 3.64542 2.17673 2.82486 2.50236 3.67274 2.64718 2.71954 3.18909 6.39210 3.73228 54 g - - C
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.08059 6.08833 2.58819 0.61958 0.77255 0.48576 0.95510
- 45 2.83017 5.93388 2.31048 1.94273 5.28007 2.46456 3.60606 4.35357 2.35448 2.95362 4.97424 3.06816 3.41033 2.69285 2.84649 2.21743 2.98206 3.67978 4.23187 4.95426 55 e - C
+ 45 2.83017 5.93388 2.31048 1.94273 5.28007 2.46456 3.60606 4.35357 2.35448 2.95362 4.97424 3.06816 3.41033 2.69285 2.84649 2.21743 2.98206 3.67978 4.23187 4.95426 55 e - - C
2.68733 4.40831 2.77609 2.73043 3.46444 2.40393 3.72592 3.29278 2.67833 2.69426 4.24827 2.90407 2.73626 3.18024 2.89744 2.37952 2.77650 2.98614 4.58019 3.61570
1.45631 0.90375 1.01651 1.51529 0.24813 0.96821 0.47765
- 46 2.32839 5.42660 2.93163 2.28220 4.02543 3.04571 3.03894 3.22247 2.82753 3.21315 3.89864 3.49093 2.50859 3.14260 2.89921 2.69284 3.05772 2.38519 4.38264 3.20345 66 e - G
+ 46 2.32839 5.42660 2.93163 2.28220 4.02543 3.04571 3.03894 3.22247 2.82753 3.21315 3.89864 3.49093 2.50859 3.14260 2.89921 2.69284 3.05772 2.38519 4.38264 3.20345 66 e - - G
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00571 5.56406 6.28641 0.61958 0.77255 0.18459 1.78051
- 47 2.69465 3.91083 2.42967 2.34662 4.43247 3.13708 3.62175 3.49809 2.56727 2.84127 4.03266 3.52527 3.00745 3.22895 3.52756 2.46523 2.69768 3.11906 2.19019 4.92515 67 w - C
+ 47 2.69465 3.91083 2.42967 2.34662 4.43247 3.13708 3.62175 3.49809 2.56727 2.84127 4.03266 3.52527 3.00745 3.22895 3.52756 2.46523 2.69768 3.11906 2.19019 4.92515 67 w - - C
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00353 6.04443 6.76678 0.61958 0.77255 0.33269 1.26228
- 48 2.67627 5.86490 3.17099 3.22595 3.40616 4.27494 3.15476 3.07365 2.21494 2.78239 4.39426 2.30764 3.56160 2.19351 2.71433 2.94392 2.62330 2.55032 5.16850 4.37026 68 q - E
+ 48 2.67627 5.86490 3.17099 3.22595 3.40616 4.27494 3.15476 3.07365 2.21494 2.78239 4.39426 2.30764 3.56160 2.19351 2.71433 2.94392 2.62330 2.55032 5.16850 4.37026 68 q - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 49 3.05871 5.98132 3.36643 1.71285 5.32569 3.90513 2.27648 4.25125 2.92072 4.28630 4.28595 2.90579 3.33969 2.79371 2.63337 2.42582 2.46361 2.81009 3.46671 3.72048 69 e - E
+ 49 3.05871 5.98132 3.36643 1.71285 5.32569 3.90513 2.27648 4.25125 2.92072 4.28630 4.28595 2.90579 3.33969 2.79371 2.63337 2.42582 2.46361 2.81009 3.46671 3.72048 69 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 50 2.88323 4.65127 3.40086 2.73607 2.41972 3.62669 3.91044 2.52424 2.75640 2.37424 3.94274 3.64921 4.76561 2.38668 2.64750 3.03028 3.09193 2.27100 6.08057 3.03402 70 v - E
+ 50 2.88323 4.65127 3.40086 2.73607 2.41972 3.62669 3.91044 2.52424 2.75640 2.37424 3.94274 3.64921 4.76561 2.38668 2.64750 3.03028 3.09193 2.27100 6.08057 3.03402 70 v - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 51 3.36533 5.95840 2.65995 2.86095 3.44584 4.25167 3.55888 2.90987 2.78397 3.33346 3.90493 2.03375 3.68901 2.80089 2.78508 2.11531 1.97302 3.15541 6.39763 4.99330 71 t - E
+ 51 3.36533 5.95840 2.65995 2.86095 3.44584 4.25167 3.55888 2.90987 2.78397 3.33346 3.90493 2.03375 3.68901 2.80089 2.78508 2.11531 1.97302 3.15541 6.39763 4.99330 71 t - - E
2.68571 4.42246 2.77540 2.73144 3.46375 2.40497 3.72515 3.29375 2.67742 2.69376 4.24711 2.90367 2.73710 3.18135 2.89822 2.37876 2.77540 2.98457 4.58498 3.61524
0.06628 2.76409 6.81068 0.97562 0.47314 0.48576 0.95510
- 52 2.38926 5.49703 3.09615 2.80044 4.68202 3.76562 4.62096 2.19958 3.33274 2.03099 4.11871 2.97731 4.26404 3.83080 2.89542 3.19964 2.84193 1.56133 6.03936 4.75239 75 v - E
+ 52 2.38926 5.49703 3.09615 2.80044 4.68202 3.76562 4.62096 2.19958 3.33274 2.03099 4.11871 2.97731 4.26404 3.83080 2.89542 3.19964 2.84193 1.56133 6.03936 4.75239 75 v - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 53 2.79501 4.92737 2.35659 2.60299 4.06511 2.98090 3.88301 4.80087 2.44593 3.57653 5.01701 3.37711 1.76863 3.53250 3.23955 1.94419 2.68524 2.95506 6.41016 5.00121 76 p - E
+ 53 2.79501 4.92737 2.35659 2.60299 4.06511 2.98090 3.88301 4.80087 2.44593 3.57653 5.01701 3.37711 1.76863 3.53250 3.23955 1.94419 2.68524 2.95506 6.41016 5.00121 76 p - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 54 2.44542 5.98316 3.18675 2.55065 5.32835 2.12386 4.43300 4.38419 2.38413 2.93654 5.02378 2.50193 2.49139 3.27226 2.05133 2.36069 3.70337 4.12664 4.32391 4.48343 77 r - T
+ 54 2.44542 5.98316 3.18675 2.55065 5.32835 2.12386 4.43300 4.38419 2.38413 2.93654 5.02378 2.50193 2.49139 3.27226 2.05133 2.36069 3.70337 4.12664 4.32391 4.48343 77 r - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 55 2.77179 5.98329 2.50848 2.76644 5.32854 3.30269 3.08416 4.38434 3.16759 4.28865 5.02390 2.27915 2.67265 2.61285 3.32102 2.18277 1.82444 2.83013 6.41587 4.35727 78 t - T
+ 55 2.77179 5.98329 2.50848 2.76644 5.32854 3.30269 3.08416 4.38434 3.16759 4.28865 5.02390 2.27915 2.67265 2.61285 3.32102 2.18277 1.82444 2.83013 6.41587 4.35727 78 t - - T
2.68621 4.42251 2.77546 2.73149 3.46380 2.40468 3.72521 3.29380 2.67767 2.69252 4.24716 2.90344 2.73766 3.18134 2.89827 2.37913 2.77442 2.98545 4.58503 3.61529
0.07130 2.69245 6.81068 1.11635 0.39671 0.48576 0.95510
- 56 2.32530 5.97446 3.57954 1.89562 5.31575 4.24796 3.32554 3.73278 2.42253 2.98562 5.01611 3.71687 3.10116 2.71107 2.91871 2.60336 1.70360 3.15915 6.40941 5.00074 83 t - T
+ 56 2.32530 5.97446 3.57954 1.89562 5.31575 4.24796 3.32554 3.73278 2.42253 2.98562 5.01611 3.71687 3.10116 2.71107 2.91871 2.60336 1.70360 3.15915 6.40941 5.00074 83 t - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.35248 6.08833 1.22151 0.61958 0.77255 0.48576 0.95510
- 57 2.95924 5.72336 2.75932 2.63159 3.96190 3.29462 3.22449 3.40062 2.77057 3.18108 3.56769 2.46117 2.98702 3.05715 2.72729 2.56520 1.96589 3.52719 6.16591 2.96938 84 t - S
+ 57 2.95924 5.72336 2.75932 2.63159 3.96190 3.29462 3.22449 3.40062 2.77057 3.18108 3.56769 2.46117 2.98702 3.05715 2.72729 2.56520 1.96589 3.52719 6.16591 2.96938 84 t - - S
2.68622 4.42162 2.77539 2.73088 3.46349 2.40510 3.72514 3.29311 2.67761 2.69358 4.24710 2.90367 2.73759 3.18166 2.89753 2.37894 2.77488 2.98538 4.58497 3.61523
0.23969 1.55321 6.46298 0.15973 1.91309 0.51157 0.91517
- 58 2.78411 5.86726 3.65151 2.46190 3.55121 3.32277 3.71415 3.82816 2.87545 3.69015 4.27003 2.90512 3.60994 2.68731 2.37548 1.72361 1.95655 3.42914 6.30822 3.85760 87 s - E
+ 58 2.78411 5.86726 3.65151 2.46190 3.55121 3.32277 3.71415 3.82816 2.87545 3.69015 4.27003 2.90512 3.60994 2.68731 2.37548 1.72361 1.95655 3.42914 6.30822 3.85760 87 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00384 5.96109 6.68344 0.61958 0.77255 0.21363 1.64843
- 59 2.13080 3.38910 5.56698 4.95075 2.41578 4.20194 3.39215 2.83299 4.73282 2.14660 3.19234 4.92810 5.12527 4.86169 4.18461 4.07348 3.03808 1.63705 4.66089 1.78369 88 v - E
+ 59 2.13080 3.38910 5.56698 4.95075 2.41578 4.20194 3.39215 2.83299 4.73282 2.14660 3.19234 4.92810 5.12527 4.86169 4.18461 4.07348 3.03808 1.63705 4.66089 1.78369 88 v - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 60 3.12543 5.93769 2.99354 2.53954 5.26303 4.25659 3.21054 2.85212 2.62935 2.82513 3.45830 2.90110 4.19559 2.80624 3.10357 2.88568 1.50190 2.67316 6.38237 3.93622 89 t - E
+ 60 3.12543 5.93769 2.99354 2.53954 5.26303 4.25659 3.21054 2.85212 2.62935 2.82513 3.45830 2.90110 4.19559 2.80624 3.10357 2.88568 1.50190 2.67316 6.38237 3.93622 89 t - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 61 3.61965 4.99402 3.63828 4.95783 2.26826 4.79135 5.12555 1.86647 4.74679 1.34194 3.74460 4.94944 5.15281 3.10559 4.75989 3.74420 3.85186 1.42486 5.61987 4.44474 90 l - E
+ 61 3.61965 4.99402 3.63828 4.95783 2.26826 4.79135 5.12555 1.86647 4.74679 1.34194 3.74460 4.94944 5.15281 3.10559 4.75989 3.74420 3.85186 1.42486 5.61987 4.44474 90 l - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 62 3.10387 5.98366 3.06368 2.31445 4.05906 3.57903 3.48488 4.81531 2.43543 4.01680 3.91148 2.67498 2.99920 2.70828 2.56621 2.14984 1.90367 3.06274 4.55677 4.37671 91 t - E
+ 62 3.10387 5.98366 3.06368 2.31445 4.05906 3.57903 3.48488 4.81531 2.43543 4.01680 3.91148 2.67498 2.99920 2.70828 2.56621 2.14984 1.90367 3.06274 4.55677 4.37671 91 t - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 63 3.34220 5.98744 1.86090 2.69096 5.33359 1.40608 3.63608 4.82043 2.48624 4.29318 4.45099 1.96888 4.06897 3.19339 3.48838 2.73868 3.70514 4.37867 6.41942 4.25681 92 g - S
+ 63 3.34220 5.98744 1.86090 2.69096 5.33359 1.40608 3.63608 4.82043 2.48624 4.29318 4.45099 1.96888 4.06897 3.19339 3.48838 2.73868 3.70514 4.37867 6.41942 4.25681 92 g - - S
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 64 5.18530 6.36522 4.58586 6.57578 3.53131 6.59442 6.84537 2.81242 6.44067 0.21363 3.54046 6.78308 6.53953 6.19263 6.31583 5.99910 5.37457 3.39834 6.73440 5.83217 93 L - -
+ 64 5.18530 6.36522 4.58586 6.57578 3.53131 6.59442 6.84537 2.81242 6.44067 0.21363 3.54046 6.78308 6.53953 6.19263 6.31583 5.99910 5.37457 3.39834 6.73440 5.83217 93 L - - -
2.68590 4.42227 2.77521 2.73125 3.46356 2.40515 3.72496 3.29356 2.67743 2.69357 4.24692 2.90349 2.73741 3.18148 2.89803 2.37889 2.77521 2.98520 4.58479 3.61505
0.02033 3.96193 6.81068 0.31431 1.31041 0.48576 0.95510
- 65 2.93361 5.98253 3.16620 2.07447 5.32745 3.84017 3.84639 3.52003 2.07989 2.71701 4.56317 3.05465 3.94228 2.39023 2.13660 2.81003 2.42767 2.98359 6.41531 3.87097 95 e - -
+ 65 2.93361 5.98253 3.16620 2.07447 5.32745 3.84017 3.84639 3.52003 2.07989 2.71701 4.56317 3.05465 3.94228 2.39023 2.13660 2.81003 2.42767 2.98359 6.41531 3.87097 95 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 66 2.17452 5.85112 3.79178 2.44872 5.14174 4.27993 4.47388 4.59086 3.04069 4.13287 4.42378 3.36057 0.82761 3.31072 3.71538 3.13243 3.15654 3.97958 4.90439 4.38214 96 p - T
+ 66 2.17452 5.85112 3.79178 2.44872 5.14174 4.27993 4.47388 4.59086 3.04069 4.13287 4.42378 3.36057 0.82761 3.31072 3.71538 3.13243 3.15654 3.97958 4.90439 4.38214 96 p - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 67 2.72531 5.97666 2.50761 2.79752 4.22378 1.29966 2.70734 4.80294 2.85170 4.02964 5.01805 2.59981 4.64085 3.32835 3.25617 2.51345 3.59137 3.91820 4.88800 2.97800 97 g - T
+ 67 2.72531 5.97666 2.50761 2.79752 4.22378 1.29966 2.70734 4.80294 2.85170 4.02964 5.01805 2.59981 4.64085 3.32835 3.25617 2.51345 3.59137 3.91820 4.88800 2.97800 97 g - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 68 2.39925 4.86641 3.79312 2.74568 5.13568 4.27988 3.97435 3.95098 2.69562 3.65359 3.00813 3.38952 4.67180 3.12070 2.33490 2.43668 1.27713 2.90106 6.31421 4.93977 98 t - -
+ 68 2.39925 4.86641 3.79312 2.74568 5.13568 4.27988 3.97435 3.95098 2.69562 3.65359 3.00813 3.38952 4.67180 3.12070 2.33490 2.43668 1.27713 2.90106 6.31421 4.93977 98 t - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 69 2.87821 5.98261 2.71299 2.05681 3.93787 3.36966 3.57296 3.81023 2.25993 3.03102 3.49917 2.39917 3.09415 2.62154 2.82818 2.67359 2.51409 3.67730 4.58228 5.00448 99 e - E
+ 69 2.87821 5.98261 2.71299 2.05681 3.93787 3.36966 3.57296 3.81023 2.25993 3.03102 3.49917 2.39917 3.09415 2.62154 2.82818 2.67359 2.51409 3.67730 4.58228 5.00448 99 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 70 6.32206 7.09639 6.95855 7.01624 2.70399 6.62558 5.12529 5.84365 6.77161 4.03604 6.32463 4.32154 6.86163 6.30239 6.48747 6.05185 6.49899 5.81871 5.18730 0.14189 100 Y - E
+ 70 6.32206 7.09639 6.95855 7.01624 2.70399 6.62558 5.12529 5.84365 6.77161 4.03604 6.32463 4.32154 6.86163 6.30239 6.48747 6.05185 6.49899 5.81871 5.18730 0.14189 100 Y - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 71 3.06725 5.97020 3.56838 1.93769 4.23056 3.77167 3.39655 3.53252 2.56448 3.45405 4.47893 2.47898 4.64226 2.55695 2.74362 2.36648 2.01401 2.66399 6.40629 3.70776 101 e - E
+ 71 3.06725 5.97020 3.56838 1.93769 4.23056 3.77167 3.39655 3.53252 2.56448 3.45405 4.47893 2.47898 4.64226 2.55695 2.74362 2.36648 2.01401 2.66399 6.40629 3.70776 101 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 72 3.19486 4.19171 5.58508 4.96942 1.44027 4.15574 5.11433 1.81297 4.75161 2.09873 3.37140 4.94615 5.14143 4.88008 4.75485 4.09123 3.83769 1.47173 5.60267 3.09551 102 f - E
+ 72 3.19486 4.19171 5.58508 4.96942 1.44027 4.15574 5.11433 1.81297 4.75161 2.09873 3.37140 4.94615 5.14143 4.88008 4.75485 4.09123 3.83769 1.47173 5.60267 3.09551 102 f - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 73 3.18039 4.06436 3.15201 2.27681 5.32468 3.77041 3.95744 3.70705 2.23538 4.28548 4.11883 2.88564 4.63997 2.58030 1.70576 2.27707 2.39981 3.62914 4.03739 3.61343 103 r - E
+ 73 3.18039 4.06436 3.15201 2.27681 5.32468 3.77041 3.95744 3.70705 2.23538 4.28548 4.11883 2.88564 4.63997 2.58030 1.70576 2.27707 2.39981 3.62914 4.03739 3.61343 103 r - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 74 3.76685 5.84337 6.79391 6.31497 3.84743 6.27452 6.95358 1.59565 6.25134 2.11498 4.30213 6.44619 6.46746 6.44080 6.36566 5.70153 4.90672 0.53161 7.20703 6.03175 104 V - E
+ 74 3.76685 5.84337 6.79391 6.31497 3.84743 6.27452 6.95358 1.59565 6.25134 2.11498 4.30213 6.44619 6.46746 6.44080 6.36566 5.70153 4.90672 0.53161 7.20703 6.03175 104 V - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 75 2.31005 4.88319 3.40675 2.63903 3.58848 4.26911 3.49342 3.09105 2.39543 3.00463 4.93879 3.41670 4.66153 1.98639 2.22144 3.11070 2.61129 2.78609 6.34491 2.92043 105 q - E
+ 75 2.31005 4.88319 3.40675 2.63903 3.58848 4.26911 3.49342 3.09105 2.39543 3.00463 4.93879 3.41670 4.66153 1.98639 2.22144 3.11070 2.61129 2.78609 6.34491 2.92043 105 q - - E
2.68621 4.42228 2.77522 2.73126 3.46357 2.40516 3.72497 3.29357 2.67744 2.69312 4.24693 2.90350 2.73743 3.18149 2.89804 2.37890 2.77522 2.98521 4.58480 3.61506
0.03738 3.58894 4.70319 0.25135 1.50394 0.48576 0.95510
- 76 0.79499 5.17226 4.80437 3.93376 4.33120 3.17569 4.96596 3.30029 4.15773 2.86829 4.32533 4.52823 5.01384 4.41886 4.42465 2.28661 2.19420 2.76335 5.81537 4.60940 107 a - E
+ 76 0.79499 5.17226 4.80437 3.93376 4.33120 3.17569 4.96596 3.30029 4.15773 2.86829 4.32533 4.52823 5.01384 4.41886 4.42465 2.28661 2.19420 2.76335 5.81537 4.60940 107 a - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00340 6.08033 6.80268 0.61958 0.77255 0.44741 1.01966
- 77 2.84306 4.15407 4.98296 3.19564 3.23517 4.66606 3.67524 2.49603 3.23224 2.21212 3.84796 4.62630 5.03633 2.88555 2.43211 3.49088 3.22704 1.33993 5.67363 2.88123 108 v - E
+ 77 2.84306 4.15407 4.98296 3.19564 3.23517 4.66606 3.67524 2.49603 3.23224 2.21212 3.84796 4.62630 5.03633 2.88555 2.43211 3.49088 3.22704 1.33993 5.67363 2.88123 108 v - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 78 3.27061 4.75060 2.81965 3.10410 5.31934 3.95942 3.99367 3.88107 2.62205 4.02823 5.01830 1.35628 3.08534 3.32913 3.08546 1.88067 2.21938 4.02145 6.41122 3.76470 109 n - E
+ 78 3.27061 4.75060 2.81965 3.10410 5.31934 3.95942 3.99367 3.88107 2.62205 4.02823 5.01830 1.35628 3.08534 3.32913 3.08546 1.88067 2.21938 4.02145 6.41122 3.76470 109 n - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00992 6.08833 4.87890 0.61958 0.77255 0.48576 0.95510
- 79 2.39836 4.69624 2.57939 2.56364 4.72011 1.55094 3.74815 4.26504 2.61409 4.28517 5.02018 2.82673 4.26340 2.69971 2.87382 2.73983 2.53993 3.07568 6.41202 5.00074 110 g - T
+ 79 2.39836 4.69624 2.57939 2.56364 4.72011 1.55094 3.74815 4.26504 2.61409 4.28517 5.02018 2.82673 4.26340 2.69971 2.87382 2.73983 2.53993 3.07568 6.41202 5.00074 110 g - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00340 6.08180 6.80415 0.61958 0.77255 0.45398 1.00812
- 80 2.22211 4.94595 2.69424 2.44928 4.84552 2.32005 3.06335 2.95704 2.33976 3.55821 4.09648 2.87488 4.09930 2.85656 2.97877 3.08279 3.07714 2.39346 6.40553 4.01548 111 a - T
+ 80 2.22211 4.94595 2.69424 2.44928 4.84552 2.32005 3.06335 2.95704 2.33976 3.55821 4.09648 2.87488 4.09930 2.85656 2.97877 3.08279 3.07714 2.39346 6.40553 4.01548 111 a - - T
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.38398 6.08833 1.15015 0.61958 0.77255 0.48576 0.95510
- 81 2.96920 5.43248 3.46409 2.76236 3.93019 1.02513 4.29951 4.07917 3.10833 3.39330 4.50784 3.40559 4.48149 3.45547 3.56956 2.50552 2.39680 3.76237 5.94228 3.01765 112 g - E
+ 81 2.96920 5.43248 3.46409 2.76236 3.93019 1.02513 4.29951 4.07917 3.10833 3.39330 4.50784 3.40559 4.48149 3.45547 3.56956 2.50552 2.39680 3.76237 5.94228 3.01765 112 g - - E
2.68652 4.42259 2.77488 2.73144 3.46170 2.40466 3.72529 3.29388 2.67703 2.69373 4.24724 2.90335 2.73774 3.18162 2.89801 2.37895 2.77529 2.98552 4.58511 3.61537
0.29928 1.35852 6.43163 0.48724 0.95274 1.77816 0.18506
- 82 2.84273 4.18992 3.05053 2.12883 3.36284 2.75189 4.25559 3.03507 2.66396 2.65563 4.59024 2.63081 3.84786 2.76844 3.19058 2.84597 2.82776 2.89016 3.06821 3.41272 117 e - E
+ 82 2.84273 4.18992 3.05053 2.12883 3.36284 2.75189 4.25559 3.03507 2.66396 2.65563 4.59024 2.63081 3.84786 2.76844 3.19058 2.84597 2.82776 2.89016 3.06821 3.41272 117 e - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00494 5.70928 6.43163 0.61958 0.77255 1.56406 0.23482
- 83 3.37920 5.61493 3.74277 3.20384 4.92800 1.01625 3.96683 4.35082 2.94708 2.91738 4.72998 3.71516 3.70329 3.52945 3.00683 1.61777 3.61882 4.00263 6.13360 4.80162 118 g - -
+ 83 3.37920 5.61493 3.74277 3.20384 4.92800 1.01625 3.96683 4.35082 2.94708 2.91738 4.72998 3.71516 3.70329 3.52945 3.00683 1.61777 3.61882 4.00263 6.13360 4.80162 118 g - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00481 5.73459 6.45693 0.61958 0.77255 0.30535 1.33510
- 84 2.58463 5.93784 3.04102 2.09605 4.57465 2.51630 3.24109 4.26208 2.60545 3.44607 3.62705 3.20484 1.89678 2.68661 2.74662 2.97880 3.02092 3.23569 6.37074 4.50367 119 p - E
+ 84 2.58463 5.93784 3.04102 2.09605 4.57465 2.51630 3.24109 4.26208 2.60545 3.44607 3.62705 3.20484 1.89678 2.68661 2.74662 2.97880 3.02092 3.23569 6.37074 4.50367 119 p - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00361 6.02233 6.74467 0.61958 0.77255 0.28862 1.38348
- 85 2.48488 5.72055 3.87501 1.97538 3.04853 3.48010 4.51877 3.51898 2.88839 2.73568 4.42660 3.64380 2.08811 3.48814 2.70856 2.40769 2.92982 4.05679 2.77386 3.43366 120 e - B
+ 85 2.48488 5.72055 3.87501 1.97538 3.04853 3.48010 4.51877 3.51898 2.88839 2.73568 4.42660 3.64380 2.08811 3.48814 2.70856 2.40769 2.92982 4.05679 2.77386 3.43366 120 e - - B
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00338 6.08833 6.81068 0.61958 0.77255 0.48576 0.95510
- 86 3.03720 5.94099 3.75455 2.96917 5.26587 2.91682 3.66571 4.11840 2.98472 4.23738 4.98891 3.74380 4.66031 3.40955 3.12788 0.72443 2.46104 4.32115 6.38683 4.99111 121 s - E
+ 86 3.03720 5.94099 3.75455 2.96917 5.26587 2.91682 3.66571 4.11840 2.98472 4.23738 4.98891 3.74380 4.66031 3.40955 3.12788 0.72443 2.46104 4.32115 6.38683 4.99111 121 s - - E
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.00227 6.08723 * 0.61958 0.77255 0.00000 *
//
diff --git a/hmmer/tutorial/fn3.out b/hmmer/tutorial/fn3.out
index 0544e81..e56b67a 100644
--- a/hmmer/tutorial/fn3.out
+++ b/hmmer/tutorial/fn3.out
@@ -1,13 +1,10 @@
# hmmsearch :: search profile(s) against a sequence database
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# query HMM file: fn3.hmm
# target sequence database: 7LESS_DROME
-# per-seq hits tabular output: fn3.tbl
-# per-dom hits tabular output: fn3.domtbl
-# number of worker threads: 2
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Query: fn3 [M=86]
@@ -17,7 +14,7 @@ Scores for complete sequences (score includes all domains):
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Sequence Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
- 1.9e-57 178.0 0.4 1.2e-16 47.2 0.7 9.4 9 7LESS_DROME RecName: Full=Protein sevenless; EC=2.7
+ 1.9e-57 178.0 0.4 1.2e-16 47.2 0.9 9.4 9 7LESS_DROME RecName: Full=Protein sevenless; EC=2.7
Domain annotation for each sequence (and alignments):
@@ -30,68 +27,68 @@ Domain annotation for each sequence (and alignments):
4 ! 5.1 0.0 0.0016 0.0016 10 36 .. 1209 1235 .. 1203 1259 .. 0.82
5 ! 24.3 0.0 1.7e-09 1.7e-09 14 80 .. 1313 1380 .. 1304 1386 .. 0.82
6 ? 0.0 0.0 0.063 0.063 58 72 .. 1754 1768 .. 1739 1769 .. 0.89
- 7 ! 47.2 0.7 1.2e-16 1.2e-16 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
+ 7 ! 47.2 0.9 1.2e-16 1.2e-16 1 85 [. 1799 1890 .. 1799 1891 .. 0.91
8 ! 17.8 0.0 1.8e-07 1.8e-07 6 74 .. 1904 1966 .. 1901 1976 .. 0.90
9 ! 12.8 0.0 6.6e-06 6.6e-06 1 86 [] 1993 2107 .. 1993 2107 .. 0.89
Alignments for each domain:
- == domain 1 score: -1.3 bits; conditional E-value: 0.17
+ == domain 1 score: -1.3 bits; conditional E-value: 0.17
EES--TT-EEEEEE CS
fn3 61 ltgLepgteYefrV 74
l+ L p+t+Y+fr
7LESS_DROME 396 LEALIPYTQYRFRF 409
67899*******95 PP
- == domain 2 score: 40.7 bits; conditional E-value: 1.3e-14
+ == domain 2 score: 40.7 bits; conditional E-value: 1.3e-14
---CEEEEEEECTTEEEEEEE--S--SS--SEEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEEEEEETTEE-E CS
fn3 2 saPenlsvsevtstsltlsWsppkdgggpitgYeveyqekgegeewqevtvprtttsvtltgLepgteYefrVqavngagegp 84
saP ++ + ++ l ++W p + +gpi+gY++++++++++ + e+ vp+ s+ +++L++gt+Y++ + +n++gegp
7LESS_DROME 439 SAPVIEHLMGLDDSHLAVHWHPGRFTNGPIEGYRLRLSSSEGNA-TSEQLVPAGRGSYIFSQLQAGTNYTLALSMINKQGEGP 520
78999999999*****************************9998.**********************************9997 PP
- == domain 3 score: 14.4 bits; conditional E-value: 2e-06
+ == domain 3 score: 14.4 bits; conditional E-value: 2e-06
CTTEEEEEEE--S.--SS--S.....EEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEEEEEETTE.E-EB CS
fn3 13 tstsltlsWsppk.dgggpit.....gYeveyqekgegeewqevtvprtttsvtltgLepgteYefrVqavngag.egpe 85
++ + +sW++p+ ++ + + +Ye+e+ ++ ++++ +++ ++ + l+ L+p+ Y++rV+a+n +g g++
7LESS_DROME 836 GAQAAKISWKEPErNPYQSADaarswSYELEVLDVASQSAFSIRNIRGPI--FGLQRLQPDNLYQLRVRAINVDGePGEW 913
56677889999987443333223333899999999999955555566666..**********************965655 PP
- == domain 4 score: 5.1 bits; conditional E-value: 0.0016
+ == domain 4 score: 5.1 bits; conditional E-value: 0.0016
EEECTTEEEEEEE--S--SS--SEEEE CS
fn3 10 sevtstsltlsWsppkdgggpitgYev 36
++ + ++++W+p+++gg + ++Y++
7LESS_DROME 1209 DDGHWDDFHVRWQPSTSGGNHSVSYRL 1235
555678999*******99999999997 PP
- == domain 5 score: 24.3 bits; conditional E-value: 1.7e-09
+ == domain 5 score: 24.3 bits; conditional E-value: 1.7e-09
TTEEEEEEE--S...--SS--SEEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEEEEEETT CS
fn3 14 stsltlsWsppk...dgggpitgYeveyqekgegeewqevtvprtttsvtltgLepgteYefrVqavnga 80
+ s++l+W++p+ + + + Y + ++ ++ + e ++ ++ ++ +++L+p+++Y+f+V+a+ +a
7LESS_DROME 1313 NVSAVLRWDAPEqgqEAPMQALEYHISCWVG-SEL-HEELRLNQSALEARVEHLQPDQTYHFQVEARVAA 1380
5689********76556667899******55.665.688888888888*****************98665 PP
- == domain 6 score: 0.0 bits; conditional E-value: 0.063
+ == domain 6 score: 0.0 bits; conditional E-value: 0.063
EEEEES--TT-EEEE CS
fn3 58 svtltgLepgteYef 72
s++lt+L p t+Y++
7LESS_DROME 1754 SLNLTDLLPFTRYRV 1768
799**********98 PP
- == domain 7 score: 47.2 bits; conditional E-value: 1.2e-16
+ == domain 7 score: 47.2 bits; conditional E-value: 1.2e-16
----CEEEEEEECTTEEEEEEE--S--SS--SEEEEEEEETTTCC.......GCEEEEEETTTSEEEEES--TT-EEEEEEEEEETTEE-EB CS
fn3 1 psaPenlsvsevtstsltlsWsppkdgggpitgYeveyqekgege.......ewqevtvprtttsvtltgLepgteYefrVqavngagegpe 85
ps+P+n+sv+ ++++l++sW pp++ +++ ++Y++++q++ +ge ++ + ++ +t+ ++ ltg++pg+ Y+++Vqa+ + +++ +
7LESS_DROME 1799 PSPPRNFSVRVLSPRELEVSWLPPEQLRSESVYYTLHWQQELDGEnvqdrreWEAHERRLETAGTHRLTGIKPGSGYSLWVQAHATPTKSNS 1890
9*************************************99989998****97777777777777*******************988776665 PP
- == domain 8 score: 17.8 bits; conditional E-value: 1.8e-07
+ == domain 8 score: 17.8 bits; conditional E-value: 1.8e-07
EEEEEEECTTEEEEEEE--S--SS--SEEEEEEEETTTCCGCEEEEEETTTSEEEEES--TT-EEEEEE CS
fn3 6 nlsvsevtstsltlsWsppkdgggpitgYeveyqekgegeewqevtvprtttsvtltgLepgteYefrV 74
+l++ e ++ sl+l+W +p+ + ++e++++ e+ +++v +++t ++++ L+p t+Y+ r+
7LESS_DROME 1904 ELQLLELGPYSLSLTWAGT---PDPLGSLQLECRSSAEQ---LRRNVAGNHTKMVVEPLQPRTRYQCRL 1966
5788899************...8***********88555...79**********************986 PP
- == domain 9 score: 12.8 bits; conditional E-value: 6.6e-06
+ == domain 9 score: 12.8 bits; conditional E-value: 6.6e-06
----CEEEEEEECTTEEEEEEE--S--SS--SEEEEEEEETTTCC...........................GCEEEEEETTTS.EEEEES--TT- CS
fn3 1 psaPenlsvsevtstsltlsWsppkdgggpitgYeveyqekgege...........................ewqevtvprttt.svtltgLepgt 68
ps+P+ ++++ + + ++++W++ + +g+pi Y++e + ++ e+q+ + +tt+ s+ ++ L ++
@@ -108,14 +105,15 @@ Domain annotation for each sequence (and alignments):
Internal pipeline statistics summary:
-------------------------------------
-Query model(s): 1 (86 nodes)
-Target sequences: 1 (2554 residues)
+Query model(s): 1 (86 nodes)
+Target sequences: 1 (2554 residues searched)
Passed MSV filter: 1 (1); expected 0.0 (0.02)
Passed bias filter: 1 (1); expected 0.0 (0.02)
Passed Vit filter: 1 (1); expected 0.0 (0.001)
Passed Fwd filter: 1 (1); expected 0.0 (1e-05)
Initial search space (Z): 1 [actual number of targets]
Domain search space (domZ): 1 [number of targets reported over threshold]
-# CPU time: 0.00u 0.00s 00:00:00.00 Elapsed: 00:00:00.00
-# Mc/sec: inf
+# CPU time: 0.01u 0.00s 00:00:00.01 Elapsed: 00:00:00.01
+# Mc/sec: 21.96
//
+[ok]
diff --git a/hmmer/tutorial/globins4.hmm b/hmmer/tutorial/globins4.hmm
index e327fe4..5450969 100644
--- a/hmmer/tutorial/globins4.hmm
+++ b/hmmer/tutorial/globins4.hmm
@@ -1,12 +1,13 @@
-HMMER3/e [3.0 | March 2010]
+HMMER3/f [3.1b1 | May 2013]
NAME globins4
LENG 149
ALPH amino
RF no
+MM no
CONS yes
CS no
MAP yes
-DATE Thu Jun 16 11:45:13 2011
+DATE Thu Jun 19 18:00:17 2014
NSEQ 4
EFFN 0.964844
CKSUM 2027839109
@@ -18,451 +19,451 @@ HMM A C D E F G H I
COMPO 2.36553 4.52577 2.96709 2.70473 3.20818 3.02239 3.41069 2.90041 2.55332 2.35210 3.67329 3.19812 3.45595 3.16091 3.07934 2.66722 2.85475 2.56965 4.55393 3.62921
2.68640 4.42247 2.77497 2.73145 3.46376 2.40504 3.72516 3.29302 2.67763 2.69377 4.24712 2.90369 2.73719 3.18168 2.89823 2.37879 2.77497 2.98431 4.58499 3.61525
0.57544 1.78073 1.31293 1.75577 0.18968 0.00000 *
- 1 1.70038 4.17733 3.76164 3.36686 3.72281 3.29583 4.27570 2.40482 3.29230 2.54324 3.63799 3.55099 3.93183 3.61602 3.56580 2.71897 2.84104 1.67328 5.32720 4.10031 9 v - -
+ 1 1.70038 4.17733 3.76164 3.36686 3.72281 3.29583 4.27570 2.40482 3.29230 2.54324 3.63799 3.55099 3.93183 3.61602 3.56580 2.71897 2.84104 1.67328 5.32720 4.10031 9 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.03156 3.86736 4.58970 0.61958 0.77255 0.34406 1.23405
- 2 2.62748 4.47174 3.31917 2.82619 3.63815 3.49607 2.75382 3.03401 2.75280 2.74783 3.65114 3.24714 2.62341 3.12082 3.11124 2.79244 2.89355 1.88003 5.06315 3.77128 10 v - -
+ 2 2.62748 4.47174 3.31917 2.82619 3.63815 3.49607 2.75382 3.03401 2.75280 2.74783 3.65114 3.24714 2.62341 3.12082 3.11124 2.79244 2.89355 1.88003 5.06315 3.77128 10 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 3 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 11 L - -
+ 3 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 11 L - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 4 2.34080 4.28719 3.51550 3.22063 4.37406 3.06195 4.29366 3.74891 3.24370 3.47337 4.31943 3.39310 3.80273 3.56072 3.55390 1.08280 2.00280 3.23325 5.72380 4.49519 12 s - -
+ 4 2.34080 4.28719 3.51550 3.22063 4.37406 3.06195 4.29366 3.74891 3.24370 3.47337 4.31943 3.39310 3.80273 3.56072 3.55390 1.08280 2.00280 3.23325 5.72380 4.49519 12 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 5 2.04218 4.87966 2.77126 1.92448 4.32563 3.33660 3.78415 3.73388 2.61886 3.34029 4.16568 2.96714 2.18012 2.94561 3.07633 2.70238 2.96803 3.36068 5.56791 4.21854 13 e - -
+ 5 2.04218 4.87966 2.77126 1.92448 4.32563 3.33660 3.78415 3.73388 2.61886 3.34029 4.16568 2.96714 2.18012 2.94561 3.07633 2.70238 2.96803 3.36068 5.56791 4.21854 13 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 6 1.67844 4.79514 2.78469 2.00544 4.34945 2.26719 3.85010 3.76260 2.72087 3.37961 4.20641 2.99947 3.85561 3.02442 3.17766 2.68798 2.96575 3.36703 5.60901 4.27005 14 a - -
+ 6 1.67844 4.79514 2.78469 2.00544 4.34945 2.26719 3.85010 3.76260 2.72087 3.37961 4.20641 2.99947 3.85561 3.02442 3.17766 2.68798 2.96575 3.36703 5.60901 4.27005 14 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 7 3.05756 5.63998 1.78612 1.06702 4.93093 3.31407 3.86695 4.45859 2.89031 3.95237 4.80915 2.77798 3.94091 3.03432 3.48933 2.93505 3.34810 4.02575 6.09427 4.58708 15 e - -
+ 7 3.05756 5.63998 1.78612 1.06702 4.93093 3.31407 3.86695 4.45859 2.89031 3.95237 4.80915 2.77798 3.94091 3.03432 3.48933 2.93505 3.34810 4.02575 6.09427 4.58708 15 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 8 2.98085 4.92154 3.50401 2.91209 3.76425 3.70161 3.75301 3.57060 1.24921 3.12012 4.04714 3.32210 4.09411 3.00014 2.54951 3.05147 3.18982 3.31354 2.52964 3.70813 16 k - -
+ 8 2.98085 4.92154 3.50401 2.91209 3.76425 3.70161 3.75301 3.57060 1.24921 3.12012 4.04714 3.32210 4.09411 3.00014 2.54951 3.05147 3.18982 3.31354 2.52964 3.70813 16 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 9 2.59353 4.69451 3.03503 2.60972 4.18917 3.33498 3.80536 3.60013 2.58953 3.21847 4.04944 3.07115 3.85428 2.20828 2.99231 2.14672 1.84753 3.23346 5.45458 4.14691 17 t - -
+ 9 2.59353 4.69451 3.03503 2.60972 4.18917 3.33498 3.80536 3.60013 2.58953 3.21847 4.04944 3.07115 3.85428 2.20828 2.99231 2.14672 1.84753 3.23346 5.45458 4.14691 17 t - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 10 2.23880 4.76665 3.06952 2.55248 4.02235 3.47005 3.69787 3.40277 2.01551 2.36330 3.87991 2.51243 3.88223 2.86967 2.84293 2.72413 2.90300 3.10205 5.29826 3.99496 18 k - -
+ 10 2.23880 4.76665 3.06952 2.55248 4.02235 3.47005 3.69787 3.40277 2.01551 2.36330 3.87991 2.51243 3.88223 2.86967 2.84293 2.72413 2.90300 3.10205 5.29826 3.99496 18 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 11 3.19694 4.48391 4.99800 4.51340 3.70437 4.59686 5.22508 1.39091 4.40799 2.19554 3.49619 4.71017 4.90059 4.67186 4.59646 3.99910 3.46528 0.94853 5.69937 4.48740 19 v - -
+ 11 3.19694 4.48391 4.99800 4.51340 3.70437 4.59686 5.22508 1.39091 4.40799 2.19554 3.49619 4.71017 4.90059 4.67186 4.59646 3.99910 3.46528 0.94853 5.69937 4.48740 19 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 12 2.75048 4.80166 3.26496 2.66512 4.05387 3.56143 3.69034 3.41974 1.98979 2.32315 3.89028 3.13074 3.94179 2.86188 2.09152 2.81637 2.39268 3.13531 5.28085 4.01795 20 k - -
+ 12 2.75048 4.80166 3.26496 2.66512 4.05387 3.56143 3.69034 3.41974 1.98979 2.32315 3.89028 3.13074 3.94179 2.86188 2.09152 2.81637 2.39268 3.13531 5.28085 4.01795 20 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 13 1.76333 4.59630 3.10164 2.67897 4.07335 3.31056 2.49445 3.52561 2.68943 3.16162 4.00001 3.11582 3.85067 3.04885 3.09407 2.02147 2.87931 3.16321 5.39081 4.07911 21 a - -
+ 13 1.76333 4.59630 3.10164 2.67897 4.07335 3.31056 2.49445 3.52561 2.68943 3.16162 4.00001 3.11582 3.85067 3.04885 3.09407 2.02147 2.87931 3.16321 5.39081 4.07911 21 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 14 1.74676 4.33104 4.10096 3.58029 3.53459 3.81128 4.36357 2.24459 3.48183 1.89076 3.43717 3.84444 4.26434 3.77047 3.74451 3.15389 3.06390 1.66791 5.19600 3.98969 22 v - -
+ 14 1.74676 4.33104 4.10096 3.58029 3.53459 3.81128 4.36357 2.24459 3.48183 1.89076 3.43717 3.84444 4.26434 3.77047 3.74451 3.15389 3.06390 1.66791 5.19600 3.98969 22 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 15 3.87954 5.13867 4.57762 4.36488 3.03765 4.09084 4.31854 3.92859 4.08791 3.26710 4.54641 4.45726 4.63521 4.45940 4.15994 4.08011 4.19741 3.82655 0.45161 3.02591 23 W - -
+ 15 3.87954 5.13867 4.57762 4.36488 3.03765 4.09084 4.31854 3.92859 4.08791 3.26710 4.54641 4.45726 4.63521 4.45940 4.15994 4.08011 4.19741 3.82655 0.45161 3.02591 23 W - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 16 1.17729 4.26198 3.57130 3.34611 4.48932 1.56793 4.42455 3.86761 3.45066 3.59704 4.43496 3.45644 3.80449 3.71634 3.74017 2.51428 2.83714 3.30004 5.82592 4.64145 24 a - -
+ 16 1.17729 4.26198 3.57130 3.34611 4.48932 1.56793 4.42455 3.86761 3.45066 3.59704 4.43496 3.45644 3.80449 3.71634 3.74017 2.51428 2.83714 3.30004 5.82592 4.64145 24 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 17 2.88817 5.04467 3.10563 2.67545 4.50902 3.51529 3.78021 3.92264 1.24585 3.45270 4.30607 3.14138 2.36832 2.93193 2.59730 2.90680 3.14272 3.56445 5.56837 4.31000 25 k - -
+ 17 2.88817 5.04467 3.10563 2.67545 4.50902 3.51529 3.78021 3.92264 1.24585 3.45270 4.30607 3.14138 2.36832 2.93193 2.59730 2.90680 3.14272 3.56445 5.56837 4.31000 25 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 18 3.05146 4.52367 4.53075 4.21316 3.78794 4.02425 4.96997 2.08597 4.08612 2.42902 3.71686 4.35272 4.57557 4.42900 4.26873 3.55467 3.41034 0.71672 5.61943 4.36559 26 v - -
+ 18 3.05146 4.52367 4.53075 4.21316 3.78794 4.02425 4.96997 2.08597 4.08612 2.42902 3.71686 4.35272 4.57557 4.42900 4.26873 3.55467 3.41034 0.71672 5.61943 4.36559 26 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.15590 4.17053 2.04864 0.61958 0.77255 0.48576 0.95510
- 19 2.68479 4.81315 2.78148 1.93235 3.94110 2.58636 3.69416 3.47083 2.55190 3.09021 3.94228 2.95115 3.85408 2.89111 2.99210 2.72265 2.93521 3.16412 5.27296 2.55092 27 e - -
+ 19 2.68479 4.81315 2.78148 1.93235 3.94110 2.58636 3.69416 3.47083 2.55190 3.09021 3.94228 2.95115 3.85408 2.89111 2.99210 2.72265 2.93521 3.16412 5.27296 2.55092 27 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02646 4.04109 4.76344 0.61958 0.77255 0.62497 0.76632
- 20 1.24956 4.17178 3.49549 3.21559 4.28754 2.96447 4.26633 3.63846 3.25854 3.38649 4.23557 3.34723 3.71824 3.55069 3.55664 1.64035 2.73156 3.12303 5.65279 4.43774 28 a - -
+ 20 1.24956 4.17178 3.49549 3.21559 4.28754 2.96447 4.26633 3.63846 3.25854 3.38649 4.23557 3.34723 3.71824 3.55069 3.55664 1.64035 2.73156 3.12303 5.65279 4.43774 28 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02646 4.04109 4.76344 0.61958 0.77255 0.40762 1.09431
- 21 2.72255 5.13686 2.10819 2.30370 4.43753 3.36911 2.77903 3.91156 2.48945 3.43909 4.22575 2.32339 3.83724 2.80393 2.98938 2.68803 2.27927 3.51682 5.60972 4.20361 31 d - -
+ 21 2.72255 5.13686 2.10819 2.30370 4.43753 3.36911 2.77903 3.91156 2.48945 3.43909 4.22575 2.32339 3.83724 2.80393 2.98938 2.68803 2.27927 3.51682 5.60972 4.20361 31 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 22 2.21080 4.24532 3.90070 3.37171 3.30266 3.69693 4.07080 2.48422 3.27322 2.39225 3.38783 3.64703 4.12115 3.55460 3.52849 3.01029 2.94053 1.60162 4.85781 2.46888 32 v - -
+ 22 2.21080 4.24532 3.90070 3.37171 3.30266 3.69693 4.07080 2.48422 3.27322 2.39225 3.38783 3.64703 4.12115 3.55460 3.52849 3.01029 2.94053 1.60162 4.85781 2.46888 32 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 23 2.11381 5.24929 2.03303 1.80395 4.58633 2.53811 3.73176 4.06390 2.60883 3.58308 4.37935 2.82480 3.85884 2.87023 3.13981 2.74200 3.06026 3.65099 5.75543 4.32261 33 e - -
+ 23 2.11381 5.24929 2.03303 1.80395 4.58633 2.53811 3.73176 4.06390 2.60883 3.58308 4.37935 2.82480 3.85884 2.87023 3.13981 2.74200 3.06026 3.65099 5.75543 4.32261 33 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 24 2.69793 4.94558 2.70258 1.69825 4.39821 2.33192 3.78049 3.82467 2.62191 3.41144 4.22851 2.93775 3.85955 2.93694 3.09150 2.71026 2.18745 3.43624 5.62101 4.25627 34 e - -
+ 24 2.69793 4.94558 2.70258 1.69825 4.39821 2.33192 3.78049 3.82467 2.62191 3.41144 4.22851 2.93775 3.85955 2.93694 3.09150 2.71026 2.18745 3.43624 5.62101 4.25627 34 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 25 2.64091 4.46648 3.34374 2.80311 3.42902 3.55272 2.66869 3.00952 2.74944 2.69246 3.58308 3.23558 3.94921 3.08558 3.12525 2.23223 2.87915 2.30384 4.88555 2.76524 35 s - -
+ 25 2.64091 4.46648 3.34374 2.80311 3.42902 3.55272 2.66869 3.00952 2.74944 2.69246 3.58308 3.23558 3.94921 3.08558 3.12525 2.23223 2.87915 2.30384 4.88555 2.76524 35 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 26 3.07955 4.81453 3.81345 3.75576 4.87199 0.38858 4.84729 4.55455 3.97697 4.16722 5.15284 3.97911 4.21424 4.27811 4.17031 3.26163 3.58377 4.02507 5.87777 4.98756 36 G - -
+ 26 3.07955 4.81453 3.81345 3.75576 4.87199 0.38858 4.84729 4.55455 3.97697 4.16722 5.15284 3.97911 4.21424 4.27811 4.17031 3.26163 3.58377 4.02507 5.87777 4.98756 36 G - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 27 2.16793 4.55369 3.17704 2.68551 3.91033 2.58600 3.80698 3.26431 2.66700 2.95066 3.80883 3.13379 3.87025 2.29397 3.07339 2.68456 2.85627 2.26116 5.25857 3.97776 37 a - -
+ 27 2.16793 4.55369 3.17704 2.68551 3.91033 2.58600 3.80698 3.26431 2.66700 2.95066 3.80883 3.13379 3.87025 2.29397 3.07339 2.68456 2.85627 2.26116 5.25857 3.97776 37 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 28 3.08394 5.70697 1.27203 1.41705 4.98951 3.30419 3.87667 4.52911 2.93008 4.01118 4.87370 2.76098 3.94379 3.04632 3.55249 2.94907 3.37869 4.08639 6.15417 4.62403 38 d - -
+ 28 3.08394 5.70697 1.27203 1.41705 4.98951 3.30419 3.87667 4.52911 2.93008 4.01118 4.87370 2.76098 3.94379 3.04632 3.55249 2.94907 3.37869 4.08639 6.15417 4.62403 38 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 29 1.76617 4.35878 4.20978 3.75755 3.65097 3.82760 4.54903 1.34437 3.65633 2.37678 3.54120 3.97097 4.33490 3.95912 3.89746 3.21892 3.13305 1.99536 5.36277 4.14791 39 i - -
+ 29 1.76617 4.35878 4.20978 3.75755 3.65097 3.82760 4.54903 1.34437 3.65633 2.37678 3.54120 3.97097 4.33490 3.95912 3.89746 3.21892 3.13305 1.99536 5.36277 4.14791 39 i - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 30 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 40 L - -
+ 30 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 40 L - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 31 2.63708 4.40165 3.40214 2.40642 3.58812 2.72660 3.87663 2.20111 2.85018 2.60895 3.52852 3.30513 3.98299 3.17216 3.21879 2.84552 2.88143 2.06355 5.03837 3.79155 41 v - -
+ 31 2.63708 4.40165 3.40214 2.40642 3.58812 2.72660 3.87663 2.20111 2.85018 2.60895 3.52852 3.30513 3.98299 3.17216 3.21879 2.84552 2.88143 2.06355 5.03837 3.79155 41 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 32 3.22597 5.30670 3.70127 2.96663 4.81092 3.80832 3.69259 4.13441 1.48502 3.54054 4.42172 3.33839 4.16189 2.82525 1.14663 3.21562 3.37193 3.82130 5.54647 4.41673 42 r - -
+ 32 3.22597 5.30670 3.70127 2.96663 4.81092 3.80832 3.69259 4.13441 1.48502 3.54054 4.42172 3.33839 4.16189 2.82525 1.14663 3.21562 3.37193 3.82130 5.54647 4.41673 42 r - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 33 3.36628 4.68383 4.99882 4.42697 2.06890 4.59083 4.77053 2.33627 4.28908 0.99412 2.19966 4.62307 4.76452 4.32547 4.35569 3.93058 3.57915 2.50984 5.01566 3.84219 43 l - -
+ 33 3.36628 4.68383 4.99882 4.42697 2.06890 4.59083 4.77053 2.33627 4.28908 0.99412 2.19966 4.62307 4.76452 4.32547 4.35569 3.93058 3.57915 2.50984 5.01566 3.84219 43 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 34 3.47288 4.79171 4.82535 4.38542 1.15416 4.50288 4.20156 2.57610 4.22482 1.45355 3.22283 4.42152 4.76985 4.29234 4.30249 3.88676 3.70704 2.66954 4.39362 2.81117 44 f - -
+ 34 3.47288 4.79171 4.82535 4.38542 1.15416 4.50288 4.20156 2.57610 4.22482 1.45355 3.22283 4.42152 4.76985 4.29234 4.30249 3.88676 3.70704 2.66954 4.39362 2.81117 44 f - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 35 2.65839 4.46496 3.41545 2.85385 3.64696 3.58642 3.84399 2.83279 2.18115 2.24711 3.56925 3.28453 3.98061 3.10967 3.07425 2.84321 2.27492 2.19676 5.07719 3.82962 45 k - -
+ 35 2.65839 4.46496 3.41545 2.85385 3.64696 3.58642 3.84399 2.83279 2.18115 2.24711 3.56925 3.28453 3.98061 3.10967 3.07425 2.84321 2.27492 2.19676 5.07719 3.82962 45 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 36 2.42370 4.29265 3.65100 3.28313 4.02251 3.19904 4.25767 3.19158 3.24396 3.07467 4.01896 3.47268 3.88665 3.56803 3.54322 1.18295 2.86360 2.07028 5.47846 4.22238 46 s - -
+ 36 2.42370 4.29265 3.65100 3.28313 4.02251 3.19904 4.25767 3.19158 3.24396 3.07467 4.01896 3.47268 3.88665 3.56803 3.54322 1.18295 2.86360 2.07028 5.47846 4.22238 46 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 37 2.77111 4.43601 3.65021 3.10915 2.33610 3.72097 2.52878 2.94333 3.04157 2.60282 3.54715 3.45355 4.09642 3.32738 3.36173 2.98372 2.23948 2.73265 4.45269 2.31965 47 t - -
+ 37 2.77111 4.43601 3.65021 3.10915 2.33610 3.72097 2.52878 2.94333 3.04157 2.60282 3.54715 3.45355 4.09642 3.32738 3.36173 2.98372 2.23948 2.73265 4.45269 2.31965 47 t - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 38 3.19808 4.89408 3.83898 3.72846 4.68099 3.56527 4.77204 4.31531 3.81375 3.90440 4.97374 4.00035 0.42252 4.19287 4.01617 3.37714 3.66479 3.92432 5.77417 4.80893 48 P - -
+ 38 3.19808 4.89408 3.83898 3.72846 4.68099 3.56527 4.77204 4.31531 3.81375 3.90440 4.97374 4.00035 0.42252 4.19287 4.01617 3.37714 3.66479 3.92432 5.77417 4.80893 48 P - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 39 2.14111 4.58346 3.15322 2.15624 3.79078 3.47432 3.73889 3.17459 2.60522 2.84386 3.70482 3.10631 3.88561 2.95537 3.01841 2.72235 2.41586 2.90270 3.19793 3.86483 49 a - -
+ 39 2.14111 4.58346 3.15322 2.15624 3.79078 3.47432 3.73889 3.17459 2.60522 2.84386 3.70482 3.10631 3.88561 2.95537 3.01841 2.72235 2.41586 2.90270 3.19793 3.86483 49 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 40 1.66569 4.24898 3.69236 3.36739 4.24142 3.10622 4.35636 3.38897 3.34246 3.26051 4.17095 3.48755 3.84083 3.65454 3.62507 2.55747 1.22235 2.98304 5.65508 4.45345 50 t - -
+ 40 1.66569 4.24898 3.69236 3.36739 4.24142 3.10622 4.35636 3.38897 3.34246 3.26051 4.17095 3.48755 3.84083 3.65454 3.62507 2.55747 1.22235 2.98304 5.65508 4.45345 50 t - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 41 2.82488 4.94492 3.18760 2.63959 4.18011 3.57406 3.69030 3.57299 1.92805 2.31655 4.00764 3.11434 3.96530 1.85056 2.55448 2.85973 3.03711 3.28659 5.36701 4.08944 51 q - -
+ 41 2.82488 4.94492 3.18760 2.63959 4.18011 3.57406 3.69030 3.57299 1.92805 2.31655 4.00764 3.11434 3.96530 1.85056 2.55448 2.85973 3.03711 3.28659 5.36701 4.08944 51 q - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 42 2.74539 5.05147 2.87731 1.65307 4.39051 3.44209 3.67129 3.81043 2.34559 3.35333 4.16101 2.95980 3.87889 2.80429 2.24429 2.73668 2.42635 3.44516 5.52575 4.18494 52 e - -
+ 42 2.74539 5.05147 2.87731 1.65307 4.39051 3.44209 3.67129 3.81043 2.34559 3.35333 4.16101 2.95980 3.87889 2.80429 2.24429 2.73668 2.42635 3.44516 5.52575 4.18494 52 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 43 2.91685 4.54967 3.76391 3.24166 1.68039 3.83207 3.72103 3.03713 2.19588 2.63921 3.64111 3.54697 4.20138 3.41748 3.37368 3.11420 3.14534 2.84694 4.30193 2.17060 53 f - -
+ 43 2.91685 4.54967 3.76391 3.24166 1.68039 3.83207 3.72103 3.03713 2.19588 2.63921 3.64111 3.54697 4.20138 3.41748 3.37368 3.11420 3.14534 2.84694 4.30193 2.17060 53 f - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 44 3.66462 4.98158 4.65054 4.43086 0.62638 4.26463 4.04708 3.16288 4.33328 2.46788 3.85405 4.36938 4.72336 4.42081 4.37865 3.91239 3.96938 3.17397 4.22498 2.56172 54 F - -
+ 44 3.66462 4.98158 4.65054 4.43086 0.62638 4.26463 4.04708 3.16288 4.33328 2.46788 3.85405 4.36938 4.72336 4.42081 4.37865 3.91239 3.96938 3.17397 4.22498 2.56172 54 F - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 45 2.90232 5.41059 1.81360 1.81124 4.72322 3.32617 3.78247 4.21870 2.71272 3.72547 4.54136 2.79866 1.96715 2.93171 3.26694 2.82016 3.17430 3.79937 5.88933 4.42688 55 e - -
+ 45 2.90232 5.41059 1.81360 1.81124 4.72322 3.32617 3.78247 4.21870 2.71272 3.72547 4.54136 2.79866 1.96715 2.93171 3.26694 2.82016 3.17430 3.79937 5.88933 4.42688 55 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 46 2.80745 5.10019 3.12719 2.54399 4.45099 3.53912 2.74851 3.86719 1.78373 3.36487 4.17040 3.03763 3.92215 2.75472 1.99957 2.27865 3.01585 3.50590 5.48668 4.19117 56 k - -
+ 46 2.80745 5.10019 3.12719 2.54399 4.45099 3.53912 2.74851 3.86719 1.78373 3.36487 4.17040 3.03763 3.92215 2.75472 1.99957 2.27865 3.01585 3.50590 5.48668 4.19117 56 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 47 3.66462 4.98158 4.65054 4.43086 0.62638 4.26463 4.04708 3.16288 4.33328 2.46788 3.85405 4.36938 4.72336 4.42081 4.37865 3.91239 3.96938 3.17397 4.22498 2.56172 57 F - -
+ 47 3.66462 4.98158 4.65054 4.43086 0.62638 4.26463 4.04708 3.16288 4.33328 2.46788 3.85405 4.36938 4.72336 4.42081 4.37865 3.91239 3.96938 3.17397 4.22498 2.56172 57 F - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.14278 4.17053 2.14040 0.61958 0.77255 0.48576 0.95510
- 48 2.80483 4.93682 2.97443 2.61597 4.46425 2.29064 3.77553 3.88892 1.32569 3.43879 4.28960 3.08144 3.92186 2.93813 2.65708 2.83452 3.08753 3.51280 5.54953 4.28942 58 k - -
+ 48 2.80483 4.93682 2.97443 2.61597 4.46425 2.29064 3.77553 3.88892 1.32569 3.43879 4.28960 3.08144 3.92186 2.93813 2.65708 2.83452 3.08753 3.51280 5.54953 4.28942 58 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02612 4.05388 4.77622 0.61958 0.77255 0.41381 1.08214
- 49 2.84120 5.27435 1.68775 2.26960 4.56502 2.29088 2.42788 4.09299 2.65957 3.61371 4.42568 2.83406 3.88143 2.91339 3.18673 2.78441 3.11108 3.68635 5.76055 4.31897 59 d - -
+ 49 2.84120 5.27435 1.68775 2.26960 4.56502 2.29088 2.42788 4.09299 2.65957 3.61371 4.42568 2.83406 3.88143 2.91339 3.18673 2.78441 3.11108 3.68635 5.76055 4.31897 59 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 50 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 60 L - -
+ 50 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 60 L - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 51 2.61468 4.74454 3.06304 2.59927 4.23874 3.36063 3.77249 3.64116 1.97066 3.24726 4.06983 3.06508 3.85934 2.93448 2.88769 1.85454 2.18544 3.27080 5.46527 4.16048 61 s - -
+ 51 2.61468 4.74454 3.06304 2.59927 4.23874 3.36063 3.77249 3.64116 1.97066 3.24726 4.06983 3.06508 3.85934 2.93448 2.88769 1.85454 2.18544 3.27080 5.46527 4.16048 61 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.14278 4.17053 2.14040 0.61958 0.77255 0.48576 0.95510
- 52 2.52024 4.36440 3.59984 3.36495 4.13961 3.19652 4.36705 3.28932 3.31151 3.14627 4.18808 3.54195 3.91596 3.69802 3.55893 2.72392 0.89769 2.96439 5.56121 4.35741 62 t - -
+ 52 2.52024 4.36440 3.59984 3.36495 4.13961 3.19652 4.36705 3.28932 3.31151 3.14627 4.18808 3.54195 3.91596 3.69802 3.55893 2.72392 0.89769 2.96439 5.56121 4.35741 62 t - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02612 4.05388 4.77622 0.61958 0.77255 0.61280 0.78052
- 53 2.00421 4.83344 2.73130 1.88492 4.26314 3.29918 3.73651 3.66620 2.57043 3.27767 4.10563 2.92448 2.63274 2.89912 3.02626 2.66205 2.92354 3.29977 5.50994 4.16245 63 e - -
+ 53 2.00421 4.83344 2.73130 1.88492 4.26314 3.29918 3.73651 3.66620 2.57043 3.27767 4.10563 2.92448 2.63274 2.89912 3.02626 2.66205 2.92354 3.29977 5.50994 4.16245 63 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02612 4.05388 4.77622 0.61958 0.77255 0.61280 0.78052
- 54 1.90310 4.97279 1.43756 2.34231 4.50970 3.22699 3.85915 3.88937 2.82693 3.54829 4.41303 2.87352 3.84544 3.04026 3.34422 2.73910 3.07381 3.49219 5.77029 4.37115 64 d - -
+ 54 1.90310 4.97279 1.43756 2.34231 4.50970 3.22699 3.85915 3.88937 2.82693 3.54829 4.41303 2.87352 3.84544 3.04026 3.34422 2.73910 3.07381 3.49219 5.77029 4.37115 64 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02612 4.05388 4.77622 0.61958 0.77255 0.61280 0.78052
- 55 2.18533 5.05270 2.64533 1.85684 4.37424 3.35403 3.67211 3.80533 2.44339 3.36056 4.17812 2.86860 3.83643 2.12599 2.88684 2.71027 2.98051 3.43920 5.55423 4.18436 65 e - -
+ 55 2.18533 5.05270 2.64533 1.85684 4.37424 3.35403 3.67211 3.80533 2.44339 3.36056 4.17812 2.86860 3.83643 2.12599 2.88684 2.71027 2.98051 3.43920 5.55423 4.18436 65 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02612 4.05388 4.77622 0.61958 0.77255 0.61280 0.78052
- 56 3.13196 4.50147 4.66344 4.09993 3.17844 4.35544 4.69477 2.10947 3.96544 1.29858 2.08362 4.35381 4.60740 4.13883 4.12558 3.68762 3.36369 1.71484 5.14632 4.04025 66 l - -
+ 56 3.13196 4.50147 4.66344 4.09993 3.17844 4.35544 4.69477 2.10947 3.96544 1.29858 2.08362 4.35381 4.60740 4.13883 4.12558 3.68762 3.36369 1.71484 5.14632 4.04025 66 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02612 4.05388 4.77622 0.61958 0.77255 0.41381 1.08214
- 57 2.77518 4.88378 3.20647 2.62847 4.09102 3.55791 2.77326 3.52900 1.58122 3.10620 2.81396 3.10407 3.94154 2.84034 2.59418 2.81851 2.98957 3.23303 5.30551 4.01037 67 k - -
+ 57 2.77518 4.88378 3.20647 2.62847 4.09102 3.55791 2.77326 3.52900 1.58122 3.10620 2.81396 3.10407 3.94154 2.84034 2.59418 2.81851 2.98957 3.23303 5.30551 4.01037 67 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 58 1.98011 4.72138 3.01521 2.62045 4.30811 2.00711 3.83054 3.71383 1.96488 3.32247 4.14606 3.07589 3.85863 2.99938 2.97459 2.67347 2.92820 3.31928 5.53681 4.23356 68 k - -
+ 58 1.98011 4.72138 3.01521 2.62045 4.30811 2.00711 3.83054 3.71383 1.96488 3.32247 4.14606 3.07589 3.85863 2.99938 2.97459 2.67347 2.92820 3.31928 5.53681 4.23356 68 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 59 2.54030 4.60072 2.94472 2.73690 4.42083 3.17460 4.04525 3.94722 2.94189 3.56874 4.40079 2.19422 3.84825 3.25845 3.33905 1.19171 2.95793 3.45125 5.71396 4.37902 69 s - -
+ 59 2.54030 4.60072 2.94472 2.73690 4.42083 3.17460 4.04525 3.94722 2.94189 3.56874 4.40079 2.19422 3.84825 3.25845 3.33905 1.19171 2.95793 3.45125 5.71396 4.37902 69 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 60 1.75557 4.84888 2.80316 1.94020 4.29532 3.33641 3.78242 3.70119 2.61730 3.31239 4.13736 2.97695 2.68041 2.94506 3.07337 2.69200 2.95171 3.33082 5.54442 4.20009 70 a - -
+ 60 1.75557 4.84888 2.80316 1.94020 4.29532 3.33641 3.78242 3.70119 2.61730 3.31239 4.13736 2.97695 2.68041 2.94506 3.07337 2.69200 2.95171 3.33082 5.54442 4.20009 70 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 61 2.85477 5.35373 1.57929 2.26604 4.66713 3.36621 3.72055 4.15408 2.04941 3.64094 4.43894 2.83078 3.88141 2.28061 3.01577 2.78371 3.10598 3.73754 5.78194 4.35313 71 d - -
+ 61 2.85477 5.35373 1.57929 2.26604 4.66713 3.36621 3.72055 4.15408 2.04941 3.64094 4.43894 2.83078 3.88141 2.28061 3.01577 2.78371 3.10598 3.73754 5.78194 4.35313 71 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 62 3.16799 4.52011 4.78339 4.28816 3.47922 4.42194 4.93953 1.93645 4.13446 1.55378 3.32483 4.50424 4.74973 4.39416 4.31418 3.81083 3.43560 1.05385 5.43415 4.23086 72 v - -
+ 62 3.16799 4.52011 4.78339 4.28816 3.47922 4.42194 4.93953 1.93645 4.13446 1.55378 3.32483 4.50424 4.74973 4.39416 4.31418 3.81083 3.43560 1.05385 5.43415 4.23086 72 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 63 3.19706 5.30676 3.64157 2.92676 4.80642 3.78807 3.68664 4.13614 1.08610 3.54219 4.41616 3.31159 4.14417 2.81714 1.62370 3.18272 3.34782 3.81582 5.55100 4.40927 73 k - -
+ 63 3.19706 5.30676 3.64157 2.92676 4.80642 3.78807 3.68664 4.13614 1.08610 3.54219 4.41616 3.31159 4.14417 2.81714 1.62370 3.18272 3.34782 3.81582 5.55100 4.40927 73 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 64 2.21500 4.61006 3.19001 2.65193 3.83610 2.74235 3.73692 3.23711 2.08307 2.89201 3.74894 3.11921 3.89354 2.94707 2.93126 2.73340 2.87427 2.95732 2.95066 3.88989 74 k - -
+ 64 2.21500 4.61006 3.19001 2.65193 3.83610 2.74235 3.73692 3.23711 2.08307 2.89201 3.74894 3.11921 3.89354 2.94707 2.93126 2.73340 2.87427 2.95732 2.95066 3.88989 74 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 65 3.37985 5.12493 3.47254 3.27248 3.53947 3.73853 0.64422 4.13019 3.10958 3.58123 4.65589 3.66553 4.31229 3.64560 3.35196 3.45099 3.69774 3.85992 4.99759 3.48405 75 H - -
+ 65 3.37985 5.12493 3.47254 3.27248 3.53947 3.73853 0.64422 4.13019 3.10958 3.58123 4.65589 3.66553 4.31229 3.64560 3.35196 3.45099 3.69774 3.85992 4.99759 3.48405 75 H - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 66 1.58696 4.27981 3.52911 3.33725 4.53096 1.13929 4.44312 3.91427 3.47264 3.64420 4.48561 3.45598 3.81284 3.73653 3.75942 2.52816 2.85748 3.33505 5.85985 4.67720 76 g - -
+ 66 1.58696 4.27981 3.52911 3.33725 4.53096 1.13929 4.44312 3.91427 3.47264 3.64420 4.48561 3.45598 3.81284 3.73653 3.75942 2.52816 2.85748 3.33505 5.85985 4.67720 76 g - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 67 2.73725 4.94911 2.96864 2.01828 4.23410 3.47850 3.68174 3.57948 1.77026 3.20392 4.03909 3.00535 3.89599 2.82835 2.74783 2.75519 2.96712 2.42859 5.43164 4.11182 77 k - -
+ 67 2.73725 4.94911 2.96864 2.01828 4.23410 3.47850 3.68174 3.57948 1.77026 3.20392 4.03909 3.00535 3.89599 2.82835 2.74783 2.75519 2.96712 2.42859 5.43164 4.11182 77 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 68 2.89057 5.08411 3.29340 2.67705 4.48072 3.60221 3.66285 3.85365 1.54699 3.35969 4.19234 3.13427 3.98596 2.79535 1.87627 2.89690 2.26116 3.51511 5.47915 4.23549 78 k - -
+ 68 2.89057 5.08411 3.29340 2.67705 4.48072 3.60221 3.66285 3.85365 1.54699 3.35969 4.19234 3.13427 3.98596 2.79535 1.87627 2.89690 2.26116 3.51511 5.47915 4.23549 78 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 69 3.19694 4.48391 4.99800 4.51340 3.70437 4.59686 5.22508 1.39091 4.40799 2.19554 3.49619 4.71017 4.90059 4.67186 4.59646 3.99910 3.46528 0.94853 5.69937 4.48740 79 v - -
+ 69 3.19694 4.48391 4.99800 4.51340 3.70437 4.59686 5.22508 1.39091 4.40799 2.19554 3.49619 4.71017 4.90059 4.67186 4.59646 3.99910 3.46528 0.94853 5.69937 4.48740 79 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 70 2.32126 4.41027 4.47827 3.93427 3.36487 4.17083 4.58032 1.66946 3.80682 1.34743 3.22329 4.17807 4.50608 4.04469 4.00345 3.50357 3.24275 2.01455 5.18292 4.01995 80 l - -
+ 70 2.32126 4.41027 4.47827 3.93427 3.36487 4.17083 4.58032 1.66946 3.80682 1.34743 3.22329 4.17807 4.50608 4.04469 4.00345 3.50357 3.24275 2.01455 5.18292 4.01995 80 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 71 2.72015 5.08296 2.15356 2.32567 4.49339 2.49653 3.73723 3.95936 2.59323 3.49889 4.29385 2.16105 3.84386 2.87772 3.10241 2.69862 2.22736 3.54680 5.68118 4.27737 81 d - -
+ 71 2.72015 5.08296 2.15356 2.32567 4.49339 2.49653 3.73723 3.95936 2.59323 3.49889 4.29385 2.16105 3.84386 2.87772 3.10241 2.69862 2.22736 3.54680 5.68118 4.27737 81 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 72 0.65703 4.36951 3.79323 3.61118 4.37675 3.18379 4.59388 3.54906 3.63596 3.41585 4.42301 3.67645 3.95223 3.95096 3.85794 2.72149 3.02015 3.15009 5.77288 4.61080 82 A - -
+ 72 0.65703 4.36951 3.79323 3.61118 4.37675 3.18379 4.59388 3.54906 3.63596 3.41585 4.42301 3.67645 3.95223 3.95096 3.85794 2.72149 3.02015 3.15009 5.77288 4.61080 82 A - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 73 3.19852 4.53795 4.84236 4.28389 2.27629 4.42541 4.67461 2.20548 4.15265 1.15724 3.02639 4.46384 4.67035 4.26075 4.25690 3.76328 3.42741 1.71320 5.02128 3.80090 83 l - -
+ 73 3.19852 4.53795 4.84236 4.28389 2.27629 4.42541 4.67461 2.20548 4.15265 1.15724 3.02639 4.46384 4.67035 4.26075 4.25690 3.76328 3.42741 1.71320 5.02128 3.80090 83 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 74 2.49416 4.59890 3.02649 2.65890 4.35506 2.21720 3.90927 3.79531 2.76783 3.39902 4.20284 2.16395 3.80836 3.08392 3.20503 2.03622 2.23693 3.33800 5.61329 4.30050 84 s - -
+ 74 2.49416 4.59890 3.02649 2.65890 4.35506 2.21720 3.90927 3.79531 2.76783 3.39902 4.20284 2.16395 3.80836 3.08392 3.20503 2.03622 2.23693 3.33800 5.61329 4.30050 84 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 75 2.05794 5.23140 1.54999 2.27566 4.64482 3.30466 3.80351 4.12174 2.73241 3.66297 4.47965 2.22062 3.87908 2.95801 3.27316 2.78027 3.12135 3.69880 5.84056 4.40054 85 d - -
+ 75 2.05794 5.23140 1.54999 2.27566 4.64482 3.30466 3.80351 4.12174 2.73241 3.66297 4.47965 2.22062 3.87908 2.95801 3.27316 2.78027 3.12135 3.69880 5.84056 4.40054 85 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 76 1.61166 4.27982 3.63832 3.17644 3.74795 2.42112 4.10689 2.08831 3.13628 2.76623 3.69806 3.45289 3.93930 3.43973 3.45294 2.73127 2.85709 2.61210 5.21491 3.99101 86 a - -
+ 76 1.61166 4.27982 3.63832 3.17644 3.74795 2.42112 4.10689 2.08831 3.13628 2.76623 3.69806 3.45289 3.93930 3.43973 3.45294 2.73127 2.85709 2.61210 5.21491 3.99101 86 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 77 3.20496 4.55642 4.80901 4.30057 3.37932 4.44822 4.91814 2.00861 4.14433 1.22854 3.21334 4.52148 4.74969 4.36955 4.30722 3.82958 3.46407 1.29918 5.36497 4.19578 87 l - -
+ 77 3.20496 4.55642 4.80901 4.30057 3.37932 4.44822 4.91814 2.00861 4.14433 1.22854 3.21334 4.52148 4.74969 4.36955 4.30722 3.82958 3.46407 1.29918 5.36497 4.19578 87 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 78 1.38198 4.69793 3.15559 2.76052 4.25943 3.37240 3.88748 3.57639 1.90985 3.25578 4.12914 3.18143 3.92185 3.07614 2.89280 2.76160 2.99371 3.22926 5.50610 4.23762 88 a - -
+ 78 1.38198 4.69793 3.15559 2.76052 4.25943 3.37240 3.88748 3.57639 1.90985 3.25578 4.12914 3.18143 3.92185 3.07614 2.89280 2.76160 2.99371 3.22926 5.50610 4.23762 88 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 79 2.76909 5.01346 2.97047 2.50613 4.30707 3.47504 2.22910 3.77671 1.87688 3.31800 4.13696 3.00989 3.90535 2.82236 2.67052 2.14651 3.00284 3.42474 5.46072 4.12930 89 k - -
+ 79 2.76909 5.01346 2.97047 2.50613 4.30707 3.47504 2.22910 3.77671 1.87688 3.31800 4.13696 3.00989 3.90535 2.82236 2.67052 2.14651 3.00284 3.42474 5.46072 4.12930 89 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.19160 4.17053 1.83934 0.61958 0.77255 0.48576 0.95510
- 80 3.09435 4.47804 4.58415 4.02251 3.17074 4.30410 4.64343 2.09509 3.88787 1.35628 2.06749 4.28772 4.56611 4.07866 4.06271 3.63387 3.32783 1.72694 5.12617 4.01057 90 l - -
+ 80 3.09435 4.47804 4.58415 4.02251 3.17074 4.30410 4.64343 2.09509 3.88787 1.35628 2.06749 4.28772 4.56611 4.07866 4.06271 3.63387 3.32783 1.72694 5.12617 4.01057 90 l - - -
2.68621 4.42228 2.77478 2.73126 3.46356 2.40515 3.72497 3.29357 2.67743 2.69357 4.24692 2.90349 2.73742 3.18149 2.89803 2.37889 2.77522 2.98521 4.58479 3.61506
0.23247 1.61654 4.72868 0.26932 1.44348 0.39208 1.12593
- 81 2.96494 5.43583 1.26091 2.27011 4.75471 3.35488 3.81425 4.25461 1.94387 3.76386 4.60077 2.84058 3.92909 2.97022 3.19724 2.88201 3.23813 3.84444 5.89623 4.45762 94 d - -
+ 81 2.96494 5.43583 1.26091 2.27011 4.75471 3.35488 3.81425 4.25461 1.94387 3.76386 4.60077 2.84058 3.92909 2.97022 3.19724 2.88201 3.23813 3.84444 5.89623 4.45762 94 d - - -
2.68621 4.42228 2.77522 2.73126 3.46356 2.40515 3.72497 3.29357 2.67743 2.69357 4.24692 2.90349 2.73742 3.18149 2.89803 2.37889 2.77478 2.98521 4.58479 3.61506
0.52346 1.78073 1.43122 0.26932 1.44348 0.48576 0.95510
- 82 2.74562 4.96011 2.44317 1.60882 4.43934 1.96747 3.78043 3.89296 2.67513 3.48339 4.34523 2.83919 3.80824 2.96538 3.13345 2.74076 3.06162 3.50398 5.64186 4.29291 96 e - -
+ 82 2.74562 4.96011 2.44317 1.60882 4.43934 1.96747 3.78043 3.89296 2.67513 3.48339 4.34523 2.83919 3.80824 2.96538 3.13345 2.74076 3.06162 3.50398 5.64186 4.29291 96 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.03031 3.90719 4.62954 0.61958 0.77255 0.35593 1.20572
- 83 2.74460 5.21822 2.23027 2.29485 4.53062 3.38085 2.57281 4.01334 1.97192 3.50733 4.28236 2.31931 3.84080 2.77738 2.90970 2.69538 2.98482 3.59939 5.64948 4.23808 97 k - -
+ 83 2.74460 5.21822 2.23027 2.29485 4.53062 3.38085 2.57281 4.01334 1.97192 3.50733 4.28236 2.31931 3.84080 2.77738 2.90970 2.69538 2.98482 3.59939 5.64948 4.23808 97 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 84 2.77518 4.40050 3.76366 3.20346 3.22508 3.76666 2.60824 2.70447 3.02388 1.88103 2.03125 3.55532 4.13155 3.38179 3.30306 3.04627 3.00598 2.58341 4.81772 3.51032 98 l - -
+ 84 2.77518 4.40050 3.76366 3.20346 3.22508 3.76666 2.60824 2.70447 3.02388 1.88103 2.03125 3.55532 4.13155 3.38179 3.30306 3.04627 3.00598 2.58341 4.81772 3.51032 98 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 85 2.70297 5.08812 2.76874 1.94479 4.41808 3.39611 3.65320 3.87114 2.04765 3.39565 4.17998 2.89362 2.87534 2.77791 2.85903 2.14472 2.94402 3.48013 5.56268 4.18347 99 e - -
+ 85 2.70297 5.08812 2.76874 1.94479 4.41808 3.39611 3.65320 3.87114 2.04765 3.39565 4.17998 2.89362 2.87534 2.77791 2.85903 2.14472 2.94402 3.48013 5.56268 4.18347 99 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 86 2.04190 4.50732 3.20940 2.71638 3.85498 2.58430 3.82054 3.22830 2.71127 2.90856 2.58178 2.51993 3.86966 3.04675 3.11665 2.68218 2.84393 2.93051 5.21959 3.94521 100 a - -
+ 86 2.04190 4.50732 3.20940 2.71638 3.85498 2.58430 3.82054 3.22830 2.71127 2.90856 2.58178 2.51993 3.86966 3.04675 3.11665 2.68218 2.84393 2.93051 5.21959 3.94521 100 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 87 2.28102 4.99235 2.86540 1.99008 4.31170 3.41473 3.65530 3.73667 1.97871 3.29595 4.09330 2.93220 3.84364 2.78720 2.83234 2.67808 2.39651 3.37112 5.48745 4.13168 101 k - -
+ 87 2.28102 4.99235 2.86540 1.99008 4.31170 3.41473 3.65530 3.73667 1.97871 3.29595 4.09330 2.93220 3.84364 2.78720 2.83234 2.67808 2.39651 3.37112 5.48745 4.13168 101 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 88 3.47968 4.79174 4.96552 4.46369 2.09402 4.63115 4.62106 2.39202 4.31413 0.81947 2.98906 4.62247 4.82864 4.36940 4.39177 4.00871 3.70317 2.55556 4.82074 3.42905 102 l - -
+ 88 3.47968 4.79174 4.96552 4.46369 2.09402 4.63115 4.62106 2.39202 4.31413 0.81947 2.98906 4.62247 4.82864 4.36940 4.39177 4.00871 3.70317 2.55556 4.82074 3.42905 102 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 89 2.24590 4.95821 3.08157 2.52672 4.32303 3.47380 3.65782 3.73561 1.87977 3.28025 4.08797 3.02223 3.88413 2.79150 2.10401 2.29026 2.95016 3.37817 5.45086 4.14257 103 k - -
+ 89 2.24590 4.95821 3.08157 2.52672 4.32303 3.47380 3.65782 3.73561 1.87977 3.28025 4.08797 3.02223 3.88413 2.79150 2.10401 2.29026 2.95016 3.37817 5.45086 4.14257 103 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 90 2.18144 4.84289 2.17529 2.44774 4.30977 3.32148 3.74792 3.73513 2.58025 3.32574 4.12874 2.95701 2.57638 2.89666 3.05711 2.64021 2.31932 3.34361 5.54135 4.18481 104 d - -
+ 90 2.18144 4.84289 2.17529 2.44774 4.30977 3.32148 3.74792 3.73513 2.58025 3.32574 4.12874 2.95701 2.57638 2.89666 3.05711 2.64021 2.31932 3.34361 5.54135 4.18481 104 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 91 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 105 L - -
+ 91 3.50771 4.88753 4.66754 4.31907 3.27776 4.35743 4.88268 2.50779 4.08449 0.57907 3.22569 4.56607 4.74802 4.37991 4.20749 3.97946 3.79191 2.62059 5.25407 4.04279 105 L - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 92 1.61908 4.24700 3.57954 3.30978 4.43449 3.02346 4.36977 3.81415 3.36299 3.54271 4.37897 3.42766 3.78766 3.64935 3.66104 1.10025 2.80595 3.25861 5.78647 4.57415 106 s - -
+ 92 1.61908 4.24700 3.57954 3.30978 4.43449 3.02346 4.36977 3.81415 3.36299 3.54271 4.37897 3.42766 3.78766 3.64935 3.66104 1.10025 2.80595 3.25861 5.78647 4.57415 106 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 93 2.83983 5.37184 2.02499 1.85340 4.67947 2.33239 3.72576 4.17617 2.59996 3.66499 4.45606 2.79996 3.86570 2.13524 3.13634 2.76341 3.09716 3.74900 5.81693 4.36292 107 e - -
+ 93 2.83983 5.37184 2.02499 1.85340 4.67947 2.33239 3.72576 4.17617 2.59996 3.66499 4.45606 2.79996 3.86570 2.13524 3.13634 2.76341 3.09716 3.74900 5.81693 4.36292 107 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 94 2.69267 4.64839 3.23734 2.71746 3.87516 3.51620 3.76790 3.23374 2.00636 2.00431 3.78777 3.16977 3.93988 2.98015 2.84201 2.18270 2.93830 2.96966 5.20949 3.93586 108 l - -
+ 94 2.69267 4.64839 3.23734 2.71746 3.87516 3.51620 3.76790 3.23374 2.00636 2.00431 3.78777 3.16977 3.93988 2.98015 2.84201 2.18270 2.93830 2.96966 5.20949 3.93586 108 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 95 3.37985 5.12493 3.47254 3.27248 3.53947 3.73853 0.64422 4.13019 3.10958 3.58123 4.65589 3.66553 4.31229 3.64560 3.35196 3.45099 3.69774 3.85992 4.99759 3.48405 109 H - -
+ 95 3.37985 5.12493 3.47254 3.27248 3.53947 3.73853 0.64422 4.13019 3.10958 3.58123 4.65589 3.66553 4.31229 3.64560 3.35196 3.45099 3.69774 3.85992 4.99759 3.48405 109 H - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 96 0.99728 2.35263 4.14410 3.78612 4.09954 3.10355 4.52852 3.20572 3.67262 3.13354 4.06953 3.68067 3.86141 3.93046 3.86415 2.56521 2.81532 2.83240 5.56979 4.40040 110 a - -
+ 96 0.99728 2.35263 4.14410 3.78612 4.09954 3.10355 4.52852 3.20572 3.67262 3.13354 4.06953 3.68067 3.86141 3.93046 3.86415 2.56521 2.81532 2.83240 5.56979 4.40040 110 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 97 2.68411 5.08330 2.32604 2.34205 4.38856 3.39880 2.83045 3.84745 1.98758 3.37192 4.15121 2.88512 3.82723 2.75605 2.85736 2.65932 2.31516 3.45780 5.53864 4.15400 111 k - -
+ 97 2.68411 5.08330 2.32604 2.34205 4.38856 3.39880 2.83045 3.84745 1.98758 3.37192 4.15121 2.88512 3.82723 2.75605 2.85736 2.65932 2.31516 3.45780 5.53864 4.15400 111 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 98 2.80484 4.96288 3.06973 2.65179 4.47351 3.45448 3.77240 3.89351 1.30310 3.43952 4.28031 3.11004 3.95068 2.92536 2.62032 2.05537 3.08096 3.51581 5.56701 4.28511 112 k - -
+ 98 2.80484 4.96288 3.06973 2.65179 4.47351 3.45448 3.77240 3.89351 1.30310 3.43952 4.28031 3.11004 3.95068 2.92536 2.62032 2.05537 3.08096 3.51581 5.56701 4.28511 112 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 99 2.99283 4.49999 4.07852 3.56084 1.94221 3.97132 2.39096 2.84229 3.42790 1.58685 3.45194 3.77479 4.32044 3.66782 3.65147 3.26863 3.22195 2.73084 4.26685 2.69158 113 l - -
+ 99 2.99283 4.49999 4.07852 3.56084 1.94221 3.97132 2.39096 2.84229 3.42790 1.58685 3.45194 3.77479 4.32044 3.66782 3.65147 3.26863 3.22195 2.73084 4.26685 2.69158 113 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 100 2.91926 5.21314 3.25278 2.62708 4.61744 3.61373 2.62204 4.01195 1.67757 3.45918 4.27247 3.09877 3.98114 2.10195 1.96699 2.89477 3.10786 3.64749 5.52995 4.27447 116 k - -
+ 100 2.91926 5.21314 3.25278 2.62708 4.61744 3.61373 2.62204 4.01195 1.67757 3.45918 4.27247 3.09877 3.98114 2.10195 1.96699 2.89477 3.10786 3.64749 5.52995 4.27447 116 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 101 3.19662 4.48391 4.99691 4.51237 3.70426 4.59588 5.22422 1.39437 4.40684 2.19564 3.49626 4.70922 4.89997 4.67090 4.59544 3.99813 3.46504 0.94661 5.69902 4.48692 117 v - -
+ 101 3.19662 4.48391 4.99691 4.51237 3.70426 4.59588 5.22422 1.39437 4.40684 2.19564 3.49626 4.70922 4.89997 4.67090 4.59544 3.99813 3.46504 0.94661 5.69902 4.48692 117 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 102 2.95622 5.29664 1.14909 2.34229 4.74881 3.32628 3.93145 4.27127 2.92777 3.81552 4.67604 2.90289 2.21468 3.11102 3.47618 2.90569 3.27514 3.84533 5.93650 4.52440 118 d - -
+ 102 2.95622 5.29664 1.14909 2.34229 4.74881 3.32628 3.93145 4.27127 2.92777 3.81552 4.67604 2.90289 2.21468 3.11102 3.47618 2.90569 3.27514 3.84533 5.93650 4.52440 118 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 103 2.73545 4.45726 3.70818 3.29077 3.67236 3.58941 4.22218 1.92363 3.19536 2.53299 3.65150 3.60711 1.54194 3.55957 3.48883 2.99020 3.06768 2.50938 5.25675 4.00214 119 p - -
+ 103 2.73545 4.45726 3.70818 3.29077 3.67236 3.58941 4.22218 1.92363 3.19536 2.53299 3.65150 3.60711 1.54194 3.55957 3.48883 2.99020 3.06768 2.50938 5.25675 4.00214 119 p - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 104 2.71136 5.03275 2.93280 2.07992 4.33603 3.45462 3.63476 3.76069 1.93027 3.30067 4.09854 2.95148 3.86016 2.21209 2.71566 2.70281 2.93689 2.70757 5.47550 4.13268 120 k - -
+ 104 2.71136 5.03275 2.93280 2.07992 4.33603 3.45462 3.63476 3.76069 1.93027 3.30067 4.09854 2.95148 3.86016 2.21209 2.71566 2.70281 2.93689 2.70757 5.47550 4.13268 120 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 105 2.98528 4.85667 3.21652 2.91031 2.89335 3.66526 3.72320 3.52422 2.94569 3.07702 4.06925 1.85829 4.14374 3.29399 3.29374 3.05553 3.25453 3.27485 4.47872 1.53302 121 y - -
+ 105 2.98528 4.85667 3.21652 2.91031 2.89335 3.66526 3.72320 3.52422 2.94569 3.07702 4.06925 1.85829 4.14374 3.29399 3.29374 3.05553 3.25453 3.27485 4.47872 1.53302 121 y - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 106 3.46400 4.78153 4.84716 4.39403 1.23238 4.51751 4.25547 2.54172 4.23543 1.35484 3.17820 4.44671 4.77310 4.29963 4.31196 3.89710 3.69542 2.64552 4.45005 2.88918 122 f - -
+ 106 3.46400 4.78153 4.84716 4.39403 1.23238 4.51751 4.25547 2.54172 4.23543 1.35484 3.17820 4.44671 4.77310 4.29963 4.31196 3.89710 3.69542 2.64552 4.45005 2.88918 122 f - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 107 2.93429 5.24643 3.13283 2.00461 4.65764 3.59020 3.64682 4.05154 1.47665 3.49748 4.31310 3.07366 3.98072 2.76670 1.95398 2.90214 3.12898 3.68211 5.57023 4.30587 123 k - -
+ 107 2.93429 5.24643 3.13283 2.00461 4.65764 3.59020 3.64682 4.05154 1.47665 3.49748 4.31310 3.07366 3.98072 2.76670 1.95398 2.90214 3.12898 3.68211 5.57023 4.30587 123 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 108 3.18469 4.52632 4.82793 4.26995 2.14389 4.40585 4.64305 2.21372 4.13733 1.21403 3.03380 4.44324 4.65604 4.24696 4.24077 3.74256 3.41385 1.71701 4.99200 3.75442 124 l - -
+ 108 3.18469 4.52632 4.82793 4.26995 2.14389 4.40585 4.64305 2.21372 4.13733 1.21403 3.03380 4.44324 4.65604 4.24696 4.24077 3.74256 3.41385 1.71701 4.99200 3.75442 124 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 109 3.41438 4.70993 5.04893 4.51836 3.21871 4.71073 5.05993 1.60681 4.34794 0.90468 3.01922 4.76098 4.89446 4.48359 4.45935 4.09339 3.64659 2.14279 5.32906 4.22624 125 l - -
+ 109 3.41438 4.70993 5.04893 4.51836 3.21871 4.71073 5.05993 1.60681 4.34794 0.90468 3.01922 4.76098 4.89446 4.48359 4.45935 4.09339 3.64659 2.14279 5.32906 4.22624 125 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 110 1.62918 4.25890 3.52443 3.21389 4.46285 2.08385 4.30536 3.89520 3.28750 3.56245 4.36692 3.37490 3.76841 3.55962 3.62104 1.39579 2.78525 3.30742 5.78553 4.57236 126 s - -
+ 110 1.62918 4.25890 3.52443 3.21389 4.46285 2.08385 4.30536 3.89520 3.28750 3.56245 4.36692 3.37490 3.76841 3.55962 3.62104 1.39579 2.78525 3.30742 5.78553 4.57236 126 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 111 2.15163 5.09516 2.69879 1.91867 4.39246 3.38632 2.78544 3.85145 2.46320 3.38990 4.18345 2.34224 3.84440 2.80472 2.94034 2.69506 2.96393 3.47085 5.56927 4.18147 127 e - -
+ 111 2.15163 5.09516 2.69879 1.91867 4.39246 3.38632 2.78544 3.85145 2.46320 3.38990 4.18345 2.34224 3.84440 2.80472 2.94034 2.69506 2.96393 3.47085 5.56927 4.18147 127 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 112 1.91362 2.69496 4.29354 3.80418 3.63206 3.55211 4.44264 2.34167 3.68862 2.54686 3.56932 3.87161 4.13344 3.93035 3.88004 2.94806 2.94562 1.39010 5.22065 4.02821 128 v - -
+ 112 1.91362 2.69496 4.29354 3.80418 3.63206 3.55211 4.44264 2.34167 3.68862 2.54686 3.56932 3.87161 4.13344 3.93035 3.88004 2.94806 2.94562 1.39010 5.22065 4.02821 128 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 113 3.35736 4.64490 5.04324 4.51934 3.30481 4.68876 5.07991 1.24213 4.35838 1.19980 3.10930 4.74783 4.89407 4.52077 4.48166 4.07304 3.59562 1.98719 5.38581 4.25821 129 l - -
+ 113 3.35736 4.64490 5.04324 4.51934 3.30481 4.68876 5.07991 1.24213 4.35838 1.19980 3.10930 4.74783 4.89407 4.52077 4.48166 4.07304 3.59562 1.98719 5.38581 4.25821 129 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 114 2.15026 4.33197 4.49839 3.94555 3.47761 4.16982 4.58767 1.60178 3.84223 1.83873 3.35032 4.17671 4.50618 4.08081 4.04536 3.49512 3.18798 1.55662 5.22069 4.03362 130 v - -
+ 114 2.15026 4.33197 4.49839 3.94555 3.47761 4.16982 4.58767 1.60178 3.84223 1.83873 3.35032 4.17671 4.50618 4.08081 4.04536 3.49512 3.18798 1.55662 5.22069 4.03362 130 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 115 2.60765 3.11045 2.44692 2.61713 3.78328 3.47145 2.70544 3.17099 2.61219 2.84876 3.70836 3.09707 3.88086 2.94850 3.03743 2.71369 2.85065 2.44939 5.14817 3.85078 131 d - -
+ 115 2.60765 3.11045 2.44692 2.61713 3.78328 3.47145 2.70544 3.17099 2.61219 2.84876 3.70836 3.09707 3.88086 2.94850 3.03743 2.71369 2.85065 2.44939 5.14817 3.85078 131 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 116 2.65919 4.31630 4.05552 3.61961 3.77490 3.58602 4.45943 2.35393 3.51636 2.58444 3.68098 3.80534 4.17236 3.83559 3.77288 2.99225 1.71326 1.37604 5.40444 4.18618 132 v - -
+ 116 2.65919 4.31630 4.05552 3.61961 3.77490 3.58602 4.45943 2.35393 3.51636 2.58444 3.68098 3.80534 4.17236 3.83559 3.77288 2.99225 1.71326 1.37604 5.40444 4.18618 132 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 117 3.25626 4.61566 4.82164 4.31203 3.29692 4.47106 4.91411 2.09194 4.14523 0.98973 3.12497 4.54192 4.75773 4.35125 4.29737 3.85461 3.51255 1.59746 5.32099 4.17329 133 l - -
+ 117 3.25626 4.61566 4.82164 4.31203 3.29692 4.47106 4.91411 2.09194 4.14523 0.98973 3.12497 4.54192 4.75773 4.35125 4.29737 3.85461 3.51255 1.59746 5.32099 4.17329 133 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 118 1.35596 4.59862 3.15990 2.80290 3.93354 3.34760 2.37774 3.49859 2.77026 3.15238 4.03955 3.20961 3.91597 3.17258 3.12384 2.74246 2.96651 3.16138 5.31238 3.96036 134 a - -
+ 118 1.35596 4.59862 3.15990 2.80290 3.93354 3.34760 2.37774 3.49859 2.77026 3.15238 4.03955 3.20961 3.91597 3.17258 3.12384 2.74246 2.96651 3.16138 5.31238 3.96036 134 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 119 1.68070 4.57996 3.11522 2.69441 4.07118 3.30363 2.64799 3.51996 2.70611 3.15910 3.99847 3.12527 3.84977 3.06321 3.10873 2.01880 2.87619 3.15621 5.39209 4.08411 135 a - -
+ 119 1.68070 4.57996 3.11522 2.69441 4.07118 3.30363 2.64799 3.51996 2.70611 3.15910 3.99847 3.12527 3.84977 3.06321 3.10873 2.01880 2.87619 3.15621 5.39209 4.08411 135 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 120 2.77810 4.96889 3.06679 2.57232 4.26331 2.43465 2.19350 3.74416 2.29922 3.29173 4.11990 3.05923 3.92435 2.84608 2.05338 2.79719 3.01427 3.40041 5.42536 4.10867 136 r - -
+ 120 2.77810 4.96889 3.06679 2.57232 4.26331 2.43465 2.19350 3.74416 2.29922 3.29173 4.11990 3.05923 3.92435 2.84608 2.05338 2.79719 3.01427 3.40041 5.42536 4.10867 136 r - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.19360 4.17053 1.82902 0.61958 0.77255 0.48576 0.95510
- 121 2.91731 4.49086 3.84673 3.33441 1.97901 3.85168 2.30285 2.87818 3.21059 1.91994 3.48685 3.59860 4.21175 3.48562 3.47435 3.14244 3.14796 2.74242 4.18728 2.59026 137 l - -
+ 121 2.91731 4.49086 3.84673 3.33441 1.97901 3.85168 2.30285 2.87818 3.21059 1.91994 3.48685 3.59860 4.21175 3.48562 3.47435 3.14244 3.14796 2.74242 4.18728 2.59026 137 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 122 2.47207 4.41486 3.18333 2.97731 4.39560 1.89060 4.18091 3.87658 3.13183 3.52325 4.38572 3.28358 1.38728 3.44527 3.46827 2.61868 2.92769 3.37316 5.63514 4.45522 138 p - -
+ 122 2.47207 4.41486 3.18333 2.97731 4.39560 1.89060 4.18091 3.87658 3.13183 3.52325 4.38572 3.28358 1.38728 3.44527 3.46827 2.61868 2.92769 3.37316 5.63514 4.45522 138 p - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 123 2.05007 4.64826 2.94330 2.56436 4.21483 2.22334 3.77246 3.61031 1.99795 3.23166 4.06417 3.01804 3.80164 2.94809 2.91064 2.62375 2.87331 3.22854 5.45531 4.15728 139 k - -
+ 123 2.05007 4.64826 2.94330 2.56436 4.21483 2.22334 3.77246 3.61031 1.99795 3.23166 4.06417 3.01804 3.80164 2.94809 2.91064 2.62375 2.87331 3.22854 5.45531 4.15728 139 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 124 2.95564 5.52033 1.58995 1.36123 4.80736 3.23074 3.77373 4.32434 2.78807 3.82833 4.68307 2.69583 3.85156 2.94039 3.38067 2.83917 3.24394 3.89941 5.97849 4.47824 140 e - -
+ 124 2.95564 5.52033 1.58995 1.36123 4.80736 3.23074 3.77373 4.32434 2.78807 3.82833 4.68307 2.69583 3.85156 2.94039 3.38067 2.83917 3.24394 3.89941 5.97849 4.47824 140 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 125 3.43014 4.79377 4.41961 4.16065 0.81827 4.08599 3.94168 2.93926 4.06474 2.27964 3.65089 4.16979 4.54276 4.19674 4.15182 3.69228 3.73192 2.93938 4.15445 2.50608 141 f - -
+ 125 3.43014 4.79377 4.41961 4.16065 0.81827 4.08599 3.94168 2.93926 4.06474 2.27964 3.65089 4.16979 4.54276 4.19674 4.15182 3.69228 3.73192 2.93938 4.15445 2.50608 141 f - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 126 2.30196 4.23748 3.34129 3.07052 4.24739 1.85655 4.17463 3.59585 3.12812 3.33237 4.19372 3.28741 3.73510 3.44504 3.44418 2.47519 1.48689 3.12032 5.58986 4.37239 142 t - -
+ 126 2.30196 4.23748 3.34129 3.07052 4.24739 1.85655 4.17463 3.59585 3.12812 3.33237 4.19372 3.28741 3.73510 3.44504 3.44418 2.47519 1.48689 3.12032 5.58986 4.37239 142 t - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 127 1.60117 4.26833 3.32665 3.04151 4.20342 3.04342 4.14954 3.51964 3.08789 3.25857 4.15082 3.28282 1.69583 3.41436 3.41080 2.50359 2.79018 3.08270 5.56177 4.33448 143 a - -
+ 127 1.60117 4.26833 3.32665 3.04151 4.20342 3.04342 4.14954 3.51964 3.08789 3.25857 4.15082 3.28282 1.69583 3.41436 3.41080 2.50359 2.79018 3.08270 5.56177 4.33448 143 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 128 2.09416 4.86355 1.93633 2.34594 4.36134 3.23194 3.74864 3.78719 2.63597 3.38580 4.20723 2.86699 2.54616 2.91041 3.12886 2.63865 2.93330 3.38692 5.60063 4.22562 144 d - -
+ 128 2.09416 4.86355 1.93633 2.34594 4.36134 3.23194 3.74864 3.78719 2.63597 3.38580 4.20723 2.86699 2.54616 2.91041 3.12886 2.63865 2.93330 3.38692 5.60063 4.22562 144 d - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.65830 0.72926
- 129 1.80976 4.23516 3.96947 3.56415 3.74642 3.46121 4.42479 2.29383 3.48463 2.53809 3.64787 3.72792 4.07683 3.79419 3.74101 2.88210 2.94676 1.36554 5.38824 4.16873 145 v - -
+ 129 1.80976 4.23516 3.96947 3.56415 3.74642 3.46121 4.42479 2.29383 3.48463 2.53809 3.64787 3.72792 4.07683 3.79419 3.74101 2.88210 2.94676 1.36554 5.38824 4.16873 145 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02746 4.00439 4.72674 0.61958 0.77255 0.39126 1.12763
- 130 2.80302 5.26444 2.00334 2.28495 4.52316 3.37323 2.71517 4.04914 2.50881 3.55046 4.34524 2.84460 3.86605 1.82350 2.99709 2.74697 3.05069 3.64430 5.68053 4.25177 146 q - -
+ 130 2.80302 5.26444 2.00334 2.28495 4.52316 3.37323 2.71517 4.04914 2.50881 3.55046 4.34524 2.84460 3.86605 1.82350 2.99709 2.74697 3.05069 3.64430 5.68053 4.25177 146 q - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 131 1.01128 4.25735 3.59041 3.36202 4.47549 1.87714 4.42913 3.84699 3.45765 3.58244 4.42328 3.46489 3.80605 3.72462 3.74295 2.51560 2.83638 3.28664 5.81618 4.63355 147 a - -
+ 131 1.01128 4.25735 3.59041 3.36202 4.47549 1.87714 4.42913 3.84699 3.45765 3.58244 4.42328 3.46489 3.80605 3.72462 3.74295 2.51560 2.83638 3.28664 5.81618 4.63355 147 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 132 1.29715 4.24288 3.55730 3.25503 4.44977 1.92730 4.33024 3.87621 3.32759 3.55207 4.36044 3.39460 3.76907 3.59477 3.65033 1.86881 2.78293 3.29220 5.78160 4.57568 148 a - -
+ 132 1.29715 4.24288 3.55730 3.25503 4.44977 1.92730 4.33024 3.87621 3.32759 3.55207 4.36044 3.39460 3.76907 3.59477 3.65033 1.86881 2.78293 3.29220 5.78160 4.57568 148 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 133 2.95397 4.34874 4.49529 3.93597 2.06030 4.06581 4.10529 2.52968 3.79135 1.64373 2.21913 4.04730 4.38049 3.92541 3.90127 3.37422 3.17955 2.48919 4.49011 2.31254 149 l - -
+ 133 2.95397 4.34874 4.49529 3.93597 2.06030 4.06581 4.10529 2.52968 3.79135 1.64373 2.21913 4.04730 4.38049 3.92541 3.90127 3.37422 3.17955 2.48919 4.49011 2.31254 149 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 134 2.87148 5.44150 1.98118 1.74899 4.74617 3.33260 3.73791 4.25433 2.62738 3.72942 4.52187 2.07888 3.87291 2.23146 3.17389 2.78299 3.13122 3.81624 5.87307 4.40314 150 e - -
+ 134 2.87148 5.44150 1.98118 1.74899 4.74617 3.33260 3.73791 4.25433 2.62738 3.72942 4.52187 2.07888 3.87291 2.23146 3.17389 2.78299 3.13122 3.81624 5.87307 4.40314 150 e - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 135 3.27331 5.22456 3.46754 3.04631 4.68046 3.71770 3.96365 4.13172 0.69147 3.63653 4.59195 3.45354 4.20521 3.14539 2.53832 3.30173 3.50915 3.82642 5.61930 4.48069 151 K - -
+ 135 3.27331 5.22456 3.46754 3.04631 4.68046 3.71770 3.96365 4.13172 0.69147 3.63653 4.59195 3.45354 4.20521 3.14539 2.53832 3.30173 3.50915 3.82642 5.61930 4.48069 151 K - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 136 2.13728 4.25596 4.26822 3.70038 2.51560 3.93283 4.27242 2.28282 3.58922 1.68324 3.19522 3.92448 4.28790 3.80594 3.78003 3.23864 3.04401 1.82614 4.90639 3.70545 152 l - -
+ 136 2.13728 4.25596 4.26822 3.70038 2.51560 3.93283 4.27242 2.28282 3.58922 1.68324 3.19522 3.92448 4.28790 3.80594 3.78003 3.23864 3.04401 1.82614 4.90639 3.70545 152 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 137 3.25266 4.59255 4.86528 4.29758 3.18898 4.50160 4.83534 2.17302 4.15958 1.11276 2.09173 4.53148 4.72252 4.28685 4.28308 3.84128 3.47963 1.79006 5.20435 4.12672 153 l - -
+ 137 3.25266 4.59255 4.86528 4.29758 3.18898 4.50160 4.83534 2.17302 4.15958 1.11276 2.09173 4.53148 4.72252 4.28685 4.28308 3.84128 3.47963 1.79006 5.20435 4.12672 153 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 138 1.79466 4.79782 2.82404 1.94090 4.31166 3.30608 3.81075 3.72422 2.65702 3.33717 4.15830 2.99339 3.84716 2.97720 3.11199 2.03142 2.93949 3.33667 5.56525 4.22435 154 a - -
+ 138 1.79466 4.79782 2.82404 1.94090 4.31166 3.30608 3.81075 3.72422 2.65702 3.33717 4.15830 2.99339 3.84716 2.97720 3.11199 2.03142 2.93949 3.33667 5.56525 4.22435 154 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 139 2.58506 4.29342 3.55405 3.00981 3.47023 2.68992 3.90060 2.80129 2.93915 2.04902 2.51305 3.37662 3.96778 3.25166 3.26632 2.35763 2.84501 2.57968 4.93542 3.70537 155 l - -
+ 139 2.58506 4.29342 3.55405 3.00981 3.47023 2.68992 3.90060 2.80129 2.93915 2.04902 2.51305 3.37662 3.96778 3.25166 3.26632 2.35763 2.84501 2.57968 4.93542 3.70537 155 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 140 3.08583 4.40689 4.84510 4.29544 2.25790 4.37874 4.73777 1.57472 4.17210 1.94826 3.22641 4.44953 4.66205 4.33233 4.29141 3.72292 3.32617 1.35939 5.16135 3.94030 156 v - -
+ 140 3.08583 4.40689 4.84510 4.29544 2.25790 4.37874 4.73777 1.57472 4.17210 1.94826 3.22641 4.44953 4.66205 4.33233 4.29141 3.72292 3.32617 1.35939 5.16135 3.94030 156 v - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 141 2.02979 2.61338 3.45168 2.91840 3.84883 3.32836 3.92100 3.21873 2.81248 2.91084 3.77423 3.27409 3.86642 3.17756 2.28029 2.17107 2.82032 2.90332 5.22633 3.98297 157 a - -
+ 141 2.02979 2.61338 3.45168 2.91840 3.84883 3.32836 3.92100 3.21873 2.81248 2.91084 3.77423 3.27409 3.86642 3.17756 2.28029 2.17107 2.82032 2.90332 5.22633 3.98297 157 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 142 2.65037 4.69800 3.11777 2.58559 3.93396 3.48363 3.71066 2.49275 2.05906 2.95516 3.80693 2.50024 3.88815 2.89605 2.88872 2.72907 2.42763 2.99850 5.24239 3.94877 158 k - -
+ 142 2.65037 4.69800 3.11777 2.58559 3.93396 3.48363 3.71066 2.49275 2.05906 2.95516 3.80693 2.50024 3.88815 2.89605 2.88872 2.72907 2.42763 2.99850 5.24239 3.94877 158 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 143 2.21701 4.52657 2.45380 2.75014 3.73535 3.53805 3.84294 2.86807 2.75770 2.17002 3.64455 3.21159 3.95457 3.08148 3.16791 2.80094 2.89608 2.24528 5.16549 3.89225 159 l - -
+ 143 2.21701 4.52657 2.45380 2.75014 3.73535 3.53805 3.84294 2.86807 2.75770 2.17002 3.64455 3.21159 3.95457 3.08148 3.16791 2.80094 2.89608 2.24528 5.16549 3.89225 159 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 144 3.41438 4.70993 5.04893 4.51836 3.21871 4.71073 5.05993 1.60681 4.34794 0.90468 3.01922 4.76098 4.89446 4.48359 4.45935 4.09339 3.64659 2.14279 5.32906 4.22624 160 l - -
+ 144 3.41438 4.70993 5.04893 4.51836 3.21871 4.71073 5.05993 1.60681 4.34794 0.90468 3.01922 4.76098 4.89446 4.48359 4.45935 4.09339 3.64659 2.14279 5.32906 4.22624 160 l - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 145 1.66341 4.55765 3.29747 2.78822 4.09563 3.34088 3.86205 3.44543 2.60980 3.11452 3.96692 3.19039 3.87148 3.05878 2.16675 2.67137 2.29043 3.09965 5.38848 4.12438 161 a - -
+ 145 1.66341 4.55765 3.29747 2.78822 4.09563 3.34088 3.86205 3.44543 2.60980 3.11452 3.96692 3.19039 3.87148 3.05878 2.16675 2.67137 2.29043 3.09965 5.38848 4.12438 161 a - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 146 1.96741 4.60402 3.09101 2.67267 4.09875 3.30287 2.64764 3.55483 2.68845 3.18630 4.02165 3.11035 3.84730 3.04694 3.09548 1.72418 2.88008 3.18467 5.41006 4.09565 162 s - -
+ 146 1.96741 4.60402 3.09101 2.67267 4.09875 3.30287 2.64764 3.55483 2.68845 3.18630 4.02165 3.11035 3.84730 3.04694 3.09548 1.72418 2.88008 3.18467 5.41006 4.09565 162 s - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 147 2.02427 4.88556 3.14956 2.70898 4.40362 3.45865 3.80224 3.73109 1.30907 3.34916 4.21424 3.15279 3.95761 2.96243 2.65527 2.83485 3.06573 3.38348 5.54009 4.27566 163 k - -
+ 147 2.02427 4.88556 3.14956 2.70898 4.40362 3.45865 3.80224 3.73109 1.30907 3.34916 4.21424 3.15279 3.95761 2.96243 2.65527 2.83485 3.06573 3.38348 5.54009 4.27566 163 k - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.02321 4.17053 4.89288 0.61958 0.77255 0.48576 0.95510
- 148 3.70647 5.07328 4.29292 4.08736 2.37118 4.18885 3.80078 3.67800 3.93734 3.05218 4.32316 4.11065 4.65987 4.16910 4.05541 3.80923 3.99693 3.56378 4.02310 0.58497 164 Y - -
+ 148 3.70647 5.07328 4.29292 4.08736 2.37118 4.18885 3.80078 3.67800 3.93734 3.05218 4.32316 4.11065 4.65987 4.16910 4.05541 3.80923 3.99693 3.56378 4.02310 0.58497 164 Y - - -
2.68618 4.42225 2.77519 2.73123 3.46354 2.40513 3.72494 3.29354 2.67741 2.69355 4.24690 2.90347 2.73739 3.18146 2.89801 2.37887 2.77519 2.98518 4.58477 3.61503
0.19360 4.17053 1.82902 0.61958 0.77255 0.48576 0.95510
- 149 2.92198 5.11574 3.28049 2.65489 4.47826 3.59727 2.51142 3.88373 1.57593 3.35205 4.19259 3.10178 3.96579 2.72398 1.84611 2.91372 3.10363 3.55066 5.42147 4.18835 165 k - -
+ 149 2.92198 5.11574 3.28049 2.65489 4.47826 3.59727 2.51142 3.88373 1.57593 3.35205 4.19259 3.10178 3.96579 2.72398 1.84611 2.91372 3.10363 3.55066 5.42147 4.18835 165 k - - -
2.68634 4.42241 2.77536 2.73098 3.46370 2.40469 3.72511 3.29370 2.67757 2.69331 4.24706 2.90363 2.73756 3.18097 2.89817 2.37903 2.77536 2.98535 4.58493 3.61418
0.22163 1.61553 * 1.50361 0.25145 0.00000 *
//
diff --git a/hmmer/tutorial/globins4.out b/hmmer/tutorial/globins4.out
index 2e19546..f974365 100644
--- a/hmmer/tutorial/globins4.out
+++ b/hmmer/tutorial/globins4.out
@@ -1,6 +1,6 @@
# hmmsearch :: search profile(s) against a sequence database
-# HMMER 3.0 (March 2010); http://hmmer.org/
-# Copyright (C) 2010 Howard Hughes Medical Institute.
+# HMMER 3.1 (February 2013); http://hmmer.org/
+# Copyright (C) 2011 Howard Hughes Medical Institute.
# Freely distributed under the GNU General Public License (GPLv3).
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
# query HMM file: globins4.hmm
@@ -15,1109 +15,1142 @@ Scores for complete sequences (score includes all domains):
--- full sequence --- --- best 1 domain --- -#dom-
E-value score bias E-value score bias exp N Sequence Description
------- ------ ----- ------- ------ ----- ---- -- -------- -----------
- 6e-65 222.7 3.2 6.7e-65 222.6 2.2 1.0 1 sp|P02185|MYG_PHYCA Myoglobin OS=Physeter catodon GN=MB PE
- 3.1e-63 217.2 0.1 3.4e-63 217.0 0.0 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor
- 4.5e-63 216.6 0.0 5e-63 216.5 0.0 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien
- 4.5e-63 216.6 0.0 5e-63 216.5 0.0 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu
- 4.5e-63 216.6 0.0 5e-63 216.5 0.0 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod
- 6.4e-63 216.1 3.0 7.1e-63 216.0 2.0 1.0 1 sp|P02177|MYG_ESCGI Myoglobin OS=Eschrichtius gibbosus GN=
- 6.4e-63 216.1 3.0 7.1e-63 216.0 2.0 1.0 1 sp|Q0KIY1|MYG_BALBO Myoglobin OS=Balaenoptera borealis GN=
- 6.4e-63 216.1 3.0 7.1e-63 216.0 2.0 1.0 1 sp|Q0KIY2|MYG_BALED Myoglobin OS=Balaenoptera edeni GN=MB
- 7e-63 216.0 0.1 7.7e-63 215.9 0.1 1.0 1 sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates l
- 9.7e-63 215.6 0.2 1.1e-62 215.4 0.1 1.0 1 sp|P02033|HBB_COLBA Hemoglobin subunit beta OS=Colobus bad
- 1e-62 215.5 3.7 1.1e-62 215.3 2.6 1.0 1 sp|P02178|MYG_MEGNO Myoglobin OS=Megaptera novaeangliae GN
- 2.2e-62 214.4 1.8 2.4e-62 214.3 1.3 1.0 1 sp|P02174|MYG_GLOME Myoglobin OS=Globicephala melaena GN=M
- 3.9e-62 213.6 1.8 4.3e-62 213.5 1.2 1.0 1 sp|P02173|MYG_ORCOR Myoglobin OS=Orcinus orca GN=MB PE=1 S
- 4.2e-62 213.5 4.2 4.7e-62 213.3 2.9 1.0 1 sp|P02179|MYG_BALAC Myoglobin OS=Balaenoptera acutorostrat
- 4.5e-62 213.4 1.3 5e-62 213.2 0.9 1.0 1 sp|P02181|MYG_INIGE Myoglobin OS=Inia geoffrensis GN=MB PE
- 4.9e-62 213.3 0.1 5.4e-62 213.1 0.1 1.0 1 sp|P02028|HBB_CERAE Hemoglobin subunit beta OS=Cercopithec
- 5.2e-62 213.2 4.2 5.8e-62 213.0 2.9 1.0 1 sp|P02184|MYG_KOGSI Myoglobin OS=Kogia simus GN=MB PE=1 SV
- 5.2e-62 213.2 4.2 5.8e-62 213.0 2.9 1.0 1 sp|Q0KIY5|MYG_KOGBR Myoglobin OS=Kogia breviceps GN=MB PE=
- 6.5e-62 212.9 0.2 7.2e-62 212.7 0.1 1.0 1 sp|P02040|HBB_CEBAL Hemoglobin subunit beta OS=Cebus albif
- 9.7e-62 212.3 1.8 1.1e-61 212.2 1.2 1.0 1 sp|Q0KIY3|MYG_PENEL Myoglobin OS=Peponocephala electra GN=
- 9.8e-62 212.3 0.1 1.1e-61 212.1 0.1 1.0 1 sp|Q6WN25|HBB_LAGLA Hemoglobin subunit beta OS=Lagothrix l
- 9.9e-62 212.3 2.0 1.1e-61 212.1 1.4 1.0 1 sp|P68276|MYG_DELDE Myoglobin OS=Delphinus delphis GN=MB P
- 9.9e-62 212.3 2.0 1.1e-61 212.1 1.4 1.0 1 sp|P68279|MYG_TURTR Myoglobin OS=Tursiops truncatus GN=MB
- 9.9e-62 212.3 2.0 1.1e-61 212.1 1.4 1.0 1 sp|Q0KIY7|MYG1_STEAT Myoglobin-1 OS=Stenella attenuata GN=M
- 1.1e-61 212.2 0.1 1.2e-61 212.1 0.1 1.0 1 sp|P02032|HBB_SEMEN Hemoglobin subunit beta OS=Semnopithec
- 1.1e-61 212.2 1.4 1.2e-61 212.0 1.0 1.0 1 sp|P68277|MYG_PHODA Myoglobin OS=Phocoenoides dalli dalli
- 1.1e-61 212.2 1.4 1.2e-61 212.0 1.0 1.0 1 sp|P68278|MYG_PHOPH Myoglobin OS=Phocoenoides phocoena GN=
- 1.1e-61 212.1 0.2 1.3e-61 211.9 0.1 1.0 1 sp|P67821|HBB_CEBAP Hemoglobin subunit beta OS=Cebus apell
- 1.1e-61 212.1 2.5 1.3e-61 211.9 1.7 1.0 1 sp|Q0KIY6|MYG2_STEAT Myoglobin-2 OS=Stenella attenuata GN=M
- 1.3e-61 211.9 0.1 1.4e-61 211.8 0.1 1.0 1 sp|P08259|HBB_MANSP Hemoglobin subunit beta OS=Mandrillus
- 1.3e-61 211.9 0.1 1.5e-61 211.7 0.1 1.0 1 sp|P19885|HBB_COLPO Hemoglobin subunit beta OS=Colobus pol
- 1.4e-61 211.8 0.2 1.5e-61 211.7 0.1 1.0 1 sp|P67822|HBB_CEBCA Hemoglobin subunit beta OS=Cebus capuc
- 1.9e-61 211.4 0.9 2.1e-61 211.2 0.6 1.0 1 sp|P13557|HBB_TARSY Hemoglobin subunit beta OS=Tarsius syr
- 2.7e-61 210.9 1.8 3e-61 210.7 1.3 1.0 1 sp|P02169|MYG_LEPMU Myoglobin OS=Lepilemur mustelinus GN=M
- 3.7e-61 210.4 0.2 4.1e-61 210.3 0.1 1.0 1 sp|P02055|HBB_MELME Hemoglobin subunit beta OS=Meles meles
- 3.7e-61 210.4 0.7 4.1e-61 210.3 0.5 1.0 1 sp|P02051|HBB_TARBA Hemoglobin subunit beta OS=Tarsius ban
- 3.8e-61 210.4 0.1 4.2e-61 210.2 0.1 1.0 1 sp|P02030|HBB_PAPCY Hemoglobin subunit beta OS=Papio cynoc
- 3.9e-61 210.4 0.1 4.3e-61 210.2 0.1 1.0 1 sp|Q9TSP1|HBB_PAPAN Hemoglobin subunit beta OS=Papio anubi
- 4.3e-61 210.2 0.1 4.7e-61 210.1 0.1 1.0 1 sp|P68222|HBB_MACFU Hemoglobin subunit beta OS=Macaca fusc
- 4.3e-61 210.2 0.1 4.7e-61 210.1 0.1 1.0 1 sp|P68223|HBB_MACFA Hemoglobin subunit beta OS=Macaca fasc
- 4.3e-61 210.2 0.1 4.7e-61 210.1 0.1 1.0 1 sp|P68224|HBB_MACSP Hemoglobin subunit beta OS=Macaca spec
- 4.3e-61 210.2 0.1 4.7e-61 210.1 0.1 1.0 1 sp|P68225|HBB_MACNE Hemoglobin subunit beta OS=Macaca neme
- 4.3e-61 210.2 0.1 4.8e-61 210.1 0.1 1.0 1 sp|P02036|HBB_SAISC Hemoglobin subunit beta OS=Saimiri sci
- 5.8e-61 209.8 0.1 6.5e-61 209.6 0.1 1.0 1 sp|P68232|HBB_ATEGE Hemoglobin subunit beta OS=Ateles geof
- 5.8e-61 209.8 0.1 6.5e-61 209.6 0.1 1.0 1 sp|P68234|HBB_ATEBE Hemoglobin subunit beta OS=Ateles belz
- 6.2e-61 209.7 0.1 6.9e-61 209.5 0.1 1.0 1 sp|Q6WN29|HBB_ALOBE Hemoglobin subunit beta OS=Alouatta be
- 6.3e-61 209.7 0.1 7e-61 209.5 0.0 1.0 1 sp|P02026|HBB_MACMU Hemoglobin subunit beta OS=Macaca mula
- 6.3e-61 209.7 0.2 7e-61 209.5 0.1 1.0 1 sp|P21201|HBB_VULVU Hemoglobin subunit beta OS=Vulpes vulp
- 7.1e-61 209.5 0.1 7.8e-61 209.4 0.1 1.0 1 sp|P02035|HBB_AOTTR Hemoglobin subunit beta OS=Aotus trivi
- 7.7e-61 209.4 0.1 8.5e-61 209.3 0.0 1.0 1 sp|P02039|HBB_SAGFU Hemoglobin subunit beta OS=Saguinus fu
- 7.8e-61 209.4 0.6 8.6e-61 209.2 0.4 1.0 1 sp|P02166|MYG_PERPO Myoglobin OS=Perodicticus potto edwars
- 8.1e-61 209.3 0.1 8.9e-61 209.2 0.1 1.0 1 sp|P02038|HBB_SAGMY Hemoglobin subunit beta OS=Saguinus my
- 8.1e-61 209.3 0.1 8.9e-61 209.2 0.1 1.0 1 sp|P02029|HBB_THEGE Hemoglobin subunit beta OS=Theropithec
- 8.2e-61 209.3 0.2 9e-61 209.2 0.1 1.0 1 sp|P18985|HBB_CALAR Hemoglobin subunit beta OS=Callithrix
- 8.3e-61 209.3 0.2 9.3e-61 209.1 0.1 1.0 1 sp|Q6WN28|HBB_CALJA Hemoglobin subunit beta OS=Callithrix
- 9.1e-61 209.2 0.1 1e-60 209.0 0.1 1.0 1 sp|Q6WN27|HBB_PITPI Hemoglobin subunit beta OS=Pithecia pi
- 1e-60 209.0 0.1 1.1e-60 208.9 0.1 1.0 1 sp|P68054|HBB_SAGNI Hemoglobin subunit beta OS=Saguinus ni
- 1e-60 209.0 0.1 1.1e-60 208.9 0.1 1.0 1 sp|P68055|HBB_SAGOE Hemoglobin subunit beta OS=Saguinus oe
- 1.1e-60 208.9 4.4 1.2e-60 208.8 3.1 1.0 1 sp|P02180|MYG_BALPH Myoglobin OS=Balaenoptera physalus GN=
- 1.1e-60 208.9 0.1 1.3e-60 208.7 0.1 1.0 1 sp|P02031|HBB_CERTO Hemoglobin subunit beta OS=Cercocebus
- 1.2e-60 208.7 3.8 1.4e-60 208.6 2.7 1.0 1 sp|P02182|MYG_ZIPCA Myoglobin OS=Ziphius cavirostris GN=MB
- 1.4e-60 208.6 0.1 1.5e-60 208.4 0.0 1.0 1 sp|P02044|HBD_ATEGE Hemoglobin subunit delta OS=Ateles geo
- 2.2e-60 207.9 1.2 2.4e-60 207.8 0.8 1.0 1 sp|P68082|MYG_HORSE Myoglobin OS=Equus caballus GN=MB PE=1
- 2.2e-60 207.9 1.2 2.4e-60 207.8 0.8 1.0 1 sp|P68083|MYG_EQUBU Myoglobin OS=Equus burchelli GN=MB PE=
- 2.5e-60 207.7 0.2 2.8e-60 207.6 0.2 1.0 1 sp|P60524|HBB_CANFA Hemoglobin subunit beta OS=Canis famil
- 2.5e-60 207.7 0.2 2.8e-60 207.6 0.2 1.0 1 sp|P60525|HBB_CANLA Hemoglobin subunit beta OS=Canis latra
- 2.5e-60 207.7 0.2 2.8e-60 207.6 0.2 1.0 1 sp|P60526|HBB_CHRBR Hemoglobin subunit beta OS=Chrysocyon
- 2.7e-60 207.6 0.0 3e-60 207.5 0.0 1.0 1 sp|P61772|HBD_PANTR Hemoglobin subunit delta OS=Pan troglo
- 2.7e-60 207.6 0.0 3e-60 207.5 0.0 1.0 1 sp|P61773|HBD_GORGO Hemoglobin subunit delta OS=Gorilla go
- 2.7e-60 207.6 0.0 3e-60 207.5 0.0 1.0 1 sp|P61774|HBD_HYLLA Hemoglobin subunit delta OS=Hylobates
- 2.7e-60 207.6 0.0 3e-60 207.5 0.0 1.0 1 sp|P61775|HBD_PONPY Hemoglobin subunit delta OS=Pongo pygm
- 2.7e-60 207.6 4.4 3e-60 207.5 3.1 1.0 1 sp|Q0KIY9|MYG_INDPC Myoglobin OS=Indopacetus pacificus GN=
- 2.7e-60 207.6 0.1 3.1e-60 207.4 0.0 1.0 1 sp|Q6WN22|HBB_ATEPA Hemoglobin subunit beta OS=Ateles pani
- 2.8e-60 207.6 0.2 3e-60 207.5 0.2 1.0 1 sp|P68046|HBB_ODORO Hemoglobin subunit beta OS=Odobenus ro
- 2.8e-60 207.6 0.2 3e-60 207.5 0.2 1.0 1 sp|P68047|HBB_ARCGA Hemoglobin subunit beta OS=Arctocephal
- 3e-60 207.5 0.2 3.3e-60 207.3 0.1 1.0 1 sp|P09909|HBB_PHOVI Hemoglobin subunit beta OS=Phoca vitul
- 3.4e-60 207.3 3.7 3.7e-60 207.2 2.6 1.0 1 sp|P02183|MYG_MESCA Myoglobin OS=Mesoplodon carlhubbsi GN=
- 3.4e-60 207.3 3.7 3.7e-60 207.2 2.6 1.0 1 sp|Q0KIY0|MYG_MESST Myoglobin OS=Mesoplodon stejnegeri GN=
- 4.2e-60 207.0 0.3 4.6e-60 206.9 0.2 1.0 1 sp|P15449|HBB_MELCA Hemoglobin subunit beta OS=Mellivora c
- 5.1e-60 206.7 0.1 5.7e-60 206.6 0.1 1.0 1 sp|Q6WN21|HBB_CALGO Hemoglobin subunit beta OS=Callimico g
- 5.2e-60 206.7 0.3 5.7e-60 206.6 0.2 1.0 1 sp|P23602|HBB_MUSLU Hemoglobin subunit beta OS=Mustela lut
- 5.3e-60 206.7 0.9 5.9e-60 206.5 0.6 1.0 1 sp|P02165|MYG_TUPGL Myoglobin OS=Tupaia glis GN=MB PE=1 SV
- 5.4e-60 206.6 0.2 6.2e-60 206.4 0.1 1.0 1 sp|P02208|GLB5_PETMA Globin-5 OS=Petromyzon marinus PE=1 SV
- 6.8e-60 206.3 0.3 7.6e-60 206.2 0.2 1.0 1 sp|Q6WN20|HBB_CALTO Hemoglobin subunit beta OS=Callicebus
- 7e-60 206.3 0.1 7.7e-60 206.1 0.0 1.0 1 sp|P33499|HBD_ATEFU Hemoglobin subunit delta OS=Ateles fus
- 7e-60 206.3 0.1 7.7e-60 206.1 0.1 1.0 1 sp|Q6WN26|HBB_AOTAZ Hemoglobin subunit beta OS=Aotus azara
- 8e-60 206.1 0.1 8.9e-60 205.9 0.1 1.0 1 sp|P18989|HBB_PROLO Hemoglobin subunit beta OS=Procyon lot
- 9.6e-60 205.8 0.0 1.1e-59 205.7 0.0 1.0 1 sp|P02042|HBD_HUMAN Hemoglobin subunit delta OS=Homo sapie
- 9.9e-60 205.8 1.6 1.1e-59 205.7 1.1 1.0 1 sp|P68080|MYG_PHOVI Myoglobin OS=Phoca vitulina GN=MB PE=1
- 9.9e-60 205.8 1.6 1.1e-59 205.7 1.1 1.0 1 sp|P68081|MYG_HALGR Myoglobin OS=Halichoerus grypus GN=MB
- 1e-59 205.7 0.1 1.1e-59 205.6 0.0 1.0 1 sp|P19886|HBD_COLPO Hemoglobin subunit delta OS=Colobus po
- 1.3e-59 205.5 0.2 1.4e-59 205.3 0.1 1.0 1 sp|P68052|HBB_PTEBR Hemoglobin subunit beta OS=Pteronura b
- 1.3e-59 205.5 0.2 1.4e-59 205.3 0.1 1.0 1 sp|P68053|HBB_MARFO Hemoglobin subunit beta OS=Martes foin
- 1.4e-59 205.3 0.1 1.5e-59 205.2 0.1 1.0 1 sp|P10893|HBB_LUTLU Hemoglobin subunit beta OS=Lutra lutra
- 1.5e-59 205.2 0.1 1.6e-59 205.1 0.1 1.0 1 sp|P26916|HBB_NASNA Hemoglobin subunit beta OS=Nasua nasua
- 1.5e-59 205.2 3.2 1.6e-59 205.1 2.2 1.0 1 sp|P02170|MYG_RABIT Myoglobin OS=Oryctolagus cuniculus GN=
- 1.7e-59 205.1 0.9 1.8e-59 204.9 0.6 1.0 1 sp|P18984|HBB_BALAC Hemoglobin subunit beta OS=Balaenopter
- 2.2e-59 204.6 0.3 2.5e-59 204.5 0.2 1.0 1 sp|P02167|MYG_NYCCO Myoglobin OS=Nycticebus coucang GN=MB
- 2.3e-59 204.6 0.3 2.5e-59 204.5 0.2 1.0 1 sp|P02145|MYG_PANTR Myoglobin OS=Pan troglodytes GN=MB PE=
- 2.4e-59 204.5 0.2 2.8e-59 204.3 0.1 1.0 1 sp|Q9I9I3|GLB2_PETMA Globin-2 OS=Petromyzon marinus PE=2 SV
- 2.5e-59 204.5 0.2 2.7e-59 204.4 0.1 1.0 1 sp|P15166|HBB_LEPWE Hemoglobin subunit beta OS=Leptonychot
- 2.7e-59 204.4 1.2 3e-59 204.2 0.9 1.0 1 sp|P13558|HBD_TARSY Hemoglobin subunit delta OS=Tarsius sy
- 2.8e-59 204.3 0.7 3.1e-59 204.2 0.5 1.0 1 sp|P02189|MYG_PIG Myoglobin OS=Sus scrofa GN=MB PE=1 SV=
- 3e-59 204.2 1.6 3.3e-59 204.1 1.1 1.0 1 sp|Q9TS35|HBA1_HYLLA Hemoglobin subunit alpha-1 OS=Hylobate
- 3.1e-59 204.2 0.1 3.4e-59 204.1 0.1 1.0 1 sp|P68011|HBB_URSMA Hemoglobin subunit beta OS=Ursus marit
- 3.1e-59 204.2 0.1 3.4e-59 204.1 0.1 1.0 1 sp|P68012|HBB_URSTH Hemoglobin subunit beta OS=Ursus thibe
- 3.1e-59 204.2 0.1 3.4e-59 204.1 0.1 1.0 1 sp|P68013|HBB_URSML Hemoglobin subunit beta OS=Ursus malay
- 3.1e-59 204.2 0.2 3.5e-59 204.0 0.1 1.0 1 sp|P18983|HBB_AILME Hemoglobin subunit beta OS=Ailuropoda
- 3.2e-59 204.2 1.3 3.5e-59 204.0 0.9 1.0 1 sp|P69905|HBA_HUMAN Hemoglobin subunit alpha OS=Homo sapie
- 3.2e-59 204.2 1.3 3.5e-59 204.0 0.9 1.0 1 sp|P69906|HBA_PANPA Hemoglobin subunit alpha OS=Pan panisc
- 3.2e-59 204.2 1.3 3.5e-59 204.0 0.9 1.0 1 sp|P69907|HBA_PANTR Hemoglobin subunit alpha OS=Pan troglo
- 4e-59 203.8 0.3 4.4e-59 203.7 0.2 1.0 1 sp|P11343|MYG_LUTLU Myoglobin OS=Lutra lutra GN=MB PE=1 SV
- 4.3e-59 203.7 0.4 4.7e-59 203.6 0.3 1.0 1 sp|P02147|MYG_GORBE Myoglobin OS=Gorilla gorilla beringei
- 5e-59 203.5 0.3 5.5e-59 203.4 0.2 1.0 1 sp|P08535|HBB_LEPEU Hemoglobin subunit beta OS=Lepus europ
- 5.4e-59 203.4 0.9 6e-59 203.3 0.6 1.0 1 sp|P02161|MYG_ZALCA Myoglobin OS=Zalophus californianus GN
- 5.5e-59 203.4 1.3 6.1e-59 203.2 0.9 1.0 1 sp|P07421|HBA_CEBCA Hemoglobin subunit alpha OS=Cebus capu
- 6.4e-59 203.2 0.1 7.1e-59 203.0 0.1 1.0 1 sp|Q03902|HBD_GALCR Hemoglobin subunit delta OS=Galago cra
- 6.7e-59 203.1 0.4 7.4e-59 203.0 0.3 1.0 1 sp|P20856|MYG_CTEGU Myoglobin OS=Ctenodactylus gundi GN=MB
- 6.9e-59 203.0 0.2 7.7e-59 202.9 0.1 1.0 1 sp|P68044|HBB_MUSPF Hemoglobin subunit beta OS=Mustela put
- 6.9e-59 203.0 0.2 7.7e-59 202.9 0.1 1.0 1 sp|P68045|HBB_MUSPU Hemoglobin subunit beta OS=Mustela put
- 7.6e-59 202.9 1.0 8.4e-59 202.8 0.7 1.0 1 sp|P32428|MYG_ONDZI Myoglobin OS=Ondatra zibethicus GN=MB
- 8e-59 202.8 1.4 8.9e-59 202.7 1.0 1.0 1 sp|P14396|MYG_CASFI Myoglobin OS=Castor fiber GN=MB PE=1 S
- 8.4e-59 202.8 1.3 9.3e-59 202.6 0.9 1.0 1 sp|P18972|HBA_CALAR Hemoglobin subunit alpha OS=Callithrix
- 8.5e-59 202.8 0.2 9.4e-59 202.6 0.1 1.0 1 sp|Q5XLE5|HBD_AILME Hemoglobin subunit delta OS=Ailuropoda
- 8.5e-59 202.8 0.3 9.4e-59 202.6 0.2 1.0 1 sp|P02144|MYG_HUMAN Myoglobin OS=Homo sapiens GN=MB PE=1 S
- 9.9e-59 202.5 1.2 1.1e-58 202.4 0.8 1.0 1 sp|P01923|HBA_GORGO Hemoglobin subunit alpha OS=Gorilla go
- 1.1e-58 202.4 3.4 1.2e-58 202.3 2.3 1.0 1 sp|P02192|MYG_BOVIN Myoglobin OS=Bos taurus GN=MB PE=1 SV=
- 1.1e-58 202.4 3.4 1.2e-58 202.3 2.3 1.0 1 sp|Q2MJN4|MYG_BOSMU Myoglobin OS=Bos mutus grunniens GN=MB
- 1.1e-58 202.4 0.5 1.2e-58 202.2 0.4 1.0 1 sp|P02057|HBB_RABIT Hemoglobin subunit beta-1/2 OS=Oryctol
- 1.2e-58 202.2 0.1 1.4e-58 202.1 0.1 1.0 1 sp|P02049|HBB_NYCCO Hemoglobin subunit beta OS=Nycticebus
- 1.3e-58 202.2 0.3 1.4e-58 202.1 0.2 1.0 1 sp|P02163|MYG_ROUAE Myoglobin OS=Rousettus aegyptiacus GN=
- 1.3e-58 202.2 0.2 1.5e-58 202.0 0.1 1.0 1 sp|P02207|GLB_LAMFL Globin OS=Lampetra fluviatilis PE=1 SV
- 1.3e-58 202.2 0.1 1.4e-58 202.1 0.1 1.0 1 sp|P18986|HBB_CROCR Hemoglobin subunit beta OS=Crocuta cro
- 1.3e-58 202.1 0.4 1.5e-58 202.0 0.3 1.0 1 sp|P62734|MYG_HYLAG Myoglobin OS=Hylobates agilis GN=MB PE
- 1.3e-58 202.1 0.4 1.5e-58 202.0 0.3 1.0 1 sp|P62735|MYG_HYLSY Myoglobin OS=Hylobates syndactylus GN=
- 1.4e-58 202.1 0.1 1.5e-58 202.0 0.1 1.0 1 sp|P18982|HBB_AILFU Hemoglobin subunit beta OS=Ailurus ful
- 1.4e-58 202.0 2.7 1.6e-58 201.9 1.8 1.0 1 sp|P02190|MYG_SHEEP Myoglobin OS=Ovis aries GN=MB PE=1 SV=
- 1.8e-58 201.7 1.0 2e-58 201.6 0.7 1.0 1 sp|P67817|HBA_ATEGE Hemoglobin subunit alpha OS=Ateles geo
- 1.9e-58 201.7 1.1 2.1e-58 201.5 0.8 1.0 1 sp|P02168|MYG_GALCR Myoglobin OS=Galago crassicaudatus GN=
- 1.9e-58 201.6 0.1 2.2e-58 201.4 0.1 1.0 1 sp|P09968|GLB3_PETMA Globin-3 OS=Petromyzon marinus PE=1 SV
- 1.9e-58 201.6 0.5 2.1e-58 201.5 0.4 1.0 1 sp|P02150|MYG_MACFA Myoglobin OS=Macaca fascicularis GN=MB
- 2e-58 201.6 1.4 2.2e-58 201.4 1.0 1.0 1 sp|P06635|HBA_PONPY Hemoglobin subunit alpha OS=Pongo pygm
- 2.1e-58 201.5 0.9 2.3e-58 201.4 0.6 1.0 1 sp|P01928|HBA_CEBAP Hemoglobin subunit alpha OS=Cebus apel
- 2.2e-58 201.4 0.0 2.4e-58 201.3 0.0 1.0 1 sp|P02050|HBB_GALCR Hemoglobin subunit beta-1/2 OS=Galago
- 2.4e-58 201.3 0.1 2.6e-58 201.2 0.1 1.0 1 sp|P02047|HBD_SAISC Hemoglobin subunit delta OS=Saimiri sc
- 2.4e-58 201.3 0.1 2.7e-58 201.1 0.1 1.0 1 sp|P23020|HBB_PROCR Hemoglobin subunit beta OS=Proteles cr
- 2.6e-58 201.2 0.1 2.8e-58 201.1 0.0 1.0 1 sp|P68015|HBD_SAGNI Hemoglobin subunit delta OS=Saguinus n
- 2.6e-58 201.2 1.0 2.9e-58 201.1 0.7 1.0 1 sp|P67818|HBA_SAGOE Hemoglobin subunit alpha OS=Saguinus o
- 2.9e-58 201.0 0.4 3.2e-58 200.9 0.3 1.0 1 sp|P02164|MYG_ORYAF Myoglobin OS=Orycteropus afer GN=MB PE
- 3.2e-58 200.9 0.6 3.5e-58 200.8 0.4 1.0 1 sp|P68084|MYG_PAPAN Myoglobin OS=Papio anubis GN=MB PE=1 S
- 3.2e-58 200.9 0.6 3.5e-58 200.8 0.4 1.0 1 sp|P68085|MYG_SEMEN Myoglobin OS=Semnopithecus entellus GN
- 3.2e-58 200.9 0.6 3.5e-58 200.8 0.4 1.0 1 sp|P68086|MYG_ERYPA Myoglobin OS=Erythrocebus patas GN=MB
- 3.4e-58 200.8 2.7 3.8e-58 200.7 1.9 1.0 1 sp|P02191|MYG_CEREL Myoglobin OS=Cervus elaphus GN=MB PE=1
- 4.2e-58 200.5 0.3 4.6e-58 200.4 0.2 1.0 1 sp|P02171|MYG_OCHPR Myoglobin OS=Ochotona princeps GN=MB P
- 4.4e-58 200.5 0.4 4.9e-58 200.3 0.3 1.0 1 sp|Q6PL31|MYG_OCHCU Myoglobin OS=Ochotona curzoniae GN=MB
- 4.5e-58 200.4 0.1 5e-58 200.3 0.0 1.0 1 sp|P68014|HBD_SAGMY Hemoglobin subunit delta OS=Saguinus m
- 4.7e-58 200.4 0.2 5.2e-58 200.2 0.1 1.0 1 sp|P18990|HBB_TURTR Hemoglobin subunit beta OS=Tursiops tr
- 5.1e-58 200.2 0.1 5.6e-58 200.1 0.1 1.0 1 sp|P02048|HBB_LORTA Hemoglobin subunit beta OS=Loris tardi
- 6.3e-58 199.9 0.0 7e-58 199.8 0.0 1.0 1 sp|P24660|HBB_MACGG Hemoglobin subunit beta OS=Macroderma
- 7.2e-58 199.7 0.1 8e-58 199.6 0.1 1.0 1 sp|P14391|HBB_PTEAL Hemoglobin subunit beta OS=Pteropus al
- 8.8e-58 199.5 0.3 9.7e-58 199.3 0.2 1.0 1 sp|P04250|MYG_LAGMA Myoglobin OS=Lagostomus maximus GN=MB
- 8.8e-58 199.5 0.5 9.8e-58 199.3 0.3 1.0 1 sp|P02148|MYG_PONPY Myoglobin OS=Pongo pygmaeus GN=MB PE=1
- 9.6e-58 199.3 0.1 1.1e-57 199.2 0.1 1.0 1 sp|P28781|HBB_TAPGE Hemoglobin subunit beta OS=Taphozous g
- 1.1e-57 199.2 0.3 1.2e-57 199.0 0.2 1.0 1 sp|P02058|HBB_ROUAE Hemoglobin subunit beta OS=Rousettus a
- 1.1e-57 199.1 0.3 1.2e-57 199.0 0.2 1.0 1 sp|P04248|MYG_SPAEH Myoglobin OS=Spalax leucodon ehrenberg
- 1.3e-57 198.9 3.0 1.4e-57 198.8 2.1 1.0 1 sp|P84997|MYG_BUBBU Myoglobin OS=Bubalus bubalis GN=MB PE=
- 1.4e-57 198.9 0.7 1.5e-57 198.7 0.5 1.0 1 sp|P01924|HBA_SEMEN Hemoglobin subunit alpha OS=Semnopithe
- 1.4e-57 198.8 1.5 1.5e-57 198.7 1.0 1.0 1 sp|Q9TS34|HBA2_HYLLA Hemoglobin subunit alpha-2 OS=Hylobate
- 1.5e-57 198.7 0.1 1.7e-57 198.5 0.0 1.0 1 sp|P14392|HBB_PTEPO Hemoglobin subunit beta OS=Pteropus po
- 1.9e-57 198.4 0.9 2.1e-57 198.2 0.6 1.0 1 sp|P02157|MYG_MELME Myoglobin OS=Meles meles GN=MB PE=1 SV
- 1.9e-57 198.4 0.0 2.1e-57 198.2 0.0 1.0 1 sp|P02046|HBD_AOTTR Hemoglobin subunit delta OS=Aotus triv
- 2.1e-57 198.3 0.2 2.3e-57 198.1 0.1 1.0 1 sp|P19646|HBB_PAGLA Hemoglobin subunit beta OS=Paguma larv
- 2.2e-57 198.2 1.1 2.4e-57 198.1 0.8 1.0 1 sp|P09421|HBB_SPECI Hemoglobin subunit beta OS=Spermophilu
- 2.2e-57 198.2 0.2 2.4e-57 198.0 0.2 1.0 1 sp|P09905|HBB_PHYCA Hemoglobin subunit beta-1/2 OS=Physete
- 2.6e-57 197.9 0.3 2.9e-57 197.8 0.2 1.0 1 sp|P11754|HBB_CYNSP Hemoglobin subunit beta OS=Cynopterus
- 2.8e-57 197.9 0.6 3e-57 197.7 0.4 1.0 1 sp|P02073|HBB_ALCAA Hemoglobin subunit beta OS=Alces alces
- 2.8e-57 197.8 0.7 3.2e-57 197.7 0.5 1.0 1 sp|Q7M3B6|HBA_SAGMY Hemoglobin subunit alpha OS=Saguinus m
- 2.9e-57 197.8 0.5 3.2e-57 197.7 0.4 1.0 1 sp|P02193|MYG_DIDMA Myoglobin OS=Didelphis marsupialis vir
- 3e-57 197.7 1.8 3.4e-57 197.6 1.2 1.0 1 sp|P02160|MYG_VULCH Myoglobin OS=Vulpes chama GN=MB PE=1 S
- 3.1e-57 197.7 1.8 3.4e-57 197.6 1.2 1.0 1 sp|P02151|MYG_AOTTR Myoglobin OS=Aotus trivirgatus GN=MB P
- 3.8e-57 197.4 0.4 4.2e-57 197.3 0.3 1.0 1 sp|P02084|HBB_ELEMA Hemoglobin subunit beta OS=Elephas max
- 3.9e-57 197.4 0.4 4.4e-57 197.2 0.3 1.0 1 sp|Q45XI9|HBD_ELEMA Hemoglobin subunit delta OS=Elephas ma
- 4.1e-57 197.3 0.5 4.5e-57 197.2 0.3 1.0 1 sp|P02090|HBB_SPAEH Hemoglobin subunit beta OS=Spalax leuc
- 4.7e-57 197.1 0.7 5.2e-57 197.0 0.5 1.0 1 sp|P02156|MYG_ERIEU Myoglobin OS=Erinaceus europaeus GN=MB
- 5e-57 197.0 0.1 5.5e-57 196.9 0.0 1.0 1 sp|P02059|HBB_ERIEU Hemoglobin subunit beta OS=Erinaceus e
- 5.1e-57 197.0 1.7 5.7e-57 196.8 1.2 1.0 1 sp|P63113|MYG_CANFA Myoglobin OS=Canis familiaris GN=MB PE
- 5.1e-57 197.0 1.7 5.7e-57 196.8 1.2 1.0 1 sp|P63114|MYG_OTOME Myoglobin OS=Otocyon megalotis GN=MB P
- 5.1e-57 197.0 0.8 5.7e-57 196.8 0.6 1.0 1 sp|P01929|HBA_SAGFU Hemoglobin subunit alpha OS=Saguinus f
- 5.3e-57 196.9 0.1 5.9e-57 196.8 0.1 1.0 1 sp|P02067|HBB_PIG Hemoglobin subunit beta OS=Sus scrofa
- 5.8e-57 196.8 1.6 6.4e-57 196.7 1.1 1.0 1 sp|P01937|HBA_NYCCO Hemoglobin subunit alpha OS=Nycticebus
- 5.8e-57 196.8 1.6 6.5e-57 196.7 1.1 1.0 1 sp|P02152|MYG_CALJA Myoglobin OS=Callithrix jacchus GN=MB
- 6.1e-57 196.7 0.1 6.7e-57 196.6 0.1 1.0 1 sp|P21667|HBB_LEMVA Hemoglobin subunit beta OS=Lemur varie
- 6.7e-57 196.6 0.1 7.4e-57 196.5 0.1 1.0 1 sp|P07412|HBB_FELCA Hemoglobin subunit beta-A/B OS=Felis c
- 7e-57 196.5 0.7 7.8e-57 196.4 0.5 1.0 1 sp|P08853|HBB_MARMA Hemoglobin subunit beta OS=Marmota mar
- 8e-57 196.4 1.1 8.8e-57 196.2 0.8 1.0 1 sp|P02196|MYG_ORNAN Myoglobin OS=Ornithorhynchus anatinus
- 8.7e-57 196.2 3.0 9.6e-57 196.1 2.1 1.0 1 sp|P02195|MYG_TACAC Myoglobin OS=Tachyglossus aculeatus ac
- 9.3e-57 196.1 1.7 1e-56 196.0 1.2 1.0 1 sp|P02159|MYG_LYCPI Myoglobin OS=Lycaon pictus GN=MB PE=1
- 9.5e-57 196.1 0.5 1.1e-56 196.0 0.4 1.0 1 sp|P67819|HBB_BOSGF Hemoglobin subunit beta OS=Bos gaurus
- 9.5e-57 196.1 0.5 1.1e-56 196.0 0.4 1.0 1 sp|P67820|HBB_BUBBU Hemoglobin subunit beta OS=Bubalus bub
- 9.9e-57 196.1 0.3 1.1e-56 195.9 0.2 1.0 1 sp|P04249|MYG_PROGU Myoglobin OS=Proechimys guairae GN=MB
- 1.2e-56 195.8 0.6 1.3e-56 195.7 0.4 1.0 1 sp|P63107|HBA_MACFU Hemoglobin subunit alpha OS=Macaca fus
- 1.2e-56 195.8 0.6 1.3e-56 195.7 0.4 1.0 1 sp|P63108|HBA_MACMU Hemoglobin subunit alpha OS=Macaca mul
- 1.2e-56 195.8 0.3 1.3e-56 195.7 0.2 1.0 1 sp|P04245|HBB_TRAST Hemoglobin subunit beta OS=Tragelaphus
- 1.2e-56 195.8 0.4 1.4e-56 195.6 0.3 1.0 1 sp|P02085|HBB_LOXAF Hemoglobin subunit beta OS=Loxodonta a
- 1.3e-56 195.7 0.4 1.4e-56 195.6 0.3 1.0 1 sp|Q45XJ0|HBD_LOXAF Hemoglobin subunit delta OS=Loxodonta
- 1.4e-56 195.6 0.1 1.5e-56 195.4 0.0 1.0 1 sp|P41328|HBB_LYNLY Hemoglobin subunit beta OS=Lynx lynx G
- 1.5e-56 195.5 0.7 1.7e-56 195.3 0.5 1.0 1 sp|P07410|HBB_SPETO Hemoglobin subunit beta-S/F OS=Spermop
- 1.6e-56 195.4 0.1 1.7e-56 195.3 0.1 1.0 1 sp|P20855|HBB_CTEGU Hemoglobin subunit beta OS=Ctenodactyl
- 1.7e-56 195.3 0.2 1.9e-56 195.2 0.1 1.0 1 sp|P02088|HBB1_MOUSE Hemoglobin subunit beta-1 OS=Mus muscu
- 1.7e-56 195.3 0.6 1.9e-56 195.2 0.4 1.0 1 sp|P21767|HBA_MACFA Hemoglobin subunit alpha-A/Q/R/T OS=Ma
- 1.7e-56 195.3 1.4 1.9e-56 195.1 1.0 1.0 1 sp|P02153|MYG_CEBAP Myoglobin OS=Cebus apella GN=MB PE=1 S
- 1.8e-56 195.2 1.1 2e-56 195.1 0.8 1.0 1 sp|P02155|MYG_SAISC Myoglobin OS=Saimiri sciureus GN=MB PE
- 2e-56 195.1 0.8 2.2e-56 194.9 0.5 1.0 1 sp|P02066|HBB_CERSI Hemoglobin subunit beta OS=Ceratotheri
- 2.4e-56 194.8 0.0 2.6e-56 194.7 0.0 1.0 1 sp|P11752|HBB_MEGLY Hemoglobin subunit beta OS=Megaderma l
- 2.4e-56 194.8 0.7 2.7e-56 194.7 0.5 1.0 1 sp|P21766|HBA_MACAS Hemoglobin subunit alpha-1/2/3 OS=Maca
- 2.4e-56 194.8 0.1 2.7e-56 194.7 0.0 1.0 1 sp|P02060|HBB_SUNMU Hemoglobin subunit beta OS=Suncus muri
- 2.4e-56 194.8 0.1 2.7e-56 194.6 0.1 1.0 1 sp|P04244|HBB_PANPO Hemoglobin subunit beta OS=Panthera pa
- 2.5e-56 194.8 0.4 2.7e-56 194.6 0.3 1.0 1 sp|P04346|HBBA_BOSJA Hemoglobin subunit beta-A OS=Bos javan
- 2.7e-56 194.6 0.1 3e-56 194.5 0.1 1.0 1 sp|P02089|HBB2_MOUSE Hemoglobin subunit beta-2 OS=Mus muscu
- 2.7e-56 194.6 0.3 3e-56 194.5 0.2 1.0 1 sp|Q45XH3|HBE_BRATR Hemoglobin subunit epsilon OS=Bradypus
- 2.8e-56 194.6 0.8 3.1e-56 194.5 0.5 1.0 1 sp|P01926|HBA_CERAE Hemoglobin subunit alpha OS=Cercopithe
- 3e-56 194.5 0.1 3.3e-56 194.3 0.0 1.0 1 sp|Q7M2Y5|HBB2_CHAMP Hemoglobin subunit beta-2 OS=Chalinolo
- 3.3e-56 194.3 0.5 3.7e-56 194.2 0.4 1.0 1 sp|P19002|HBA_MACNE Hemoglobin subunit alpha-1/2/3 OS=Maca
- 3.6e-56 194.3 0.1 3.9e-56 194.1 0.1 1.0 1 sp|P18988|HBB2_PANLE Hemoglobin subunit beta-2 OS=Panthera
- 3.9e-56 194.1 0.2 4.3e-56 194.0 0.1 1.0 1 sp|P11517|HBB2_RAT Hemoglobin subunit beta-2 OS=Rattus no
- 3.9e-56 194.1 0.1 4.3e-56 194.0 0.1 1.0 1 sp|P07415|HBB_TRIIN Hemoglobin subunit beta OS=Trichechus
- 3.9e-56 194.1 1.6 4.4e-56 194.0 1.1 1.0 1 sp|P30562|MYG_PHOSI Myoglobin OS=Phoca sibirica GN=MB PE=1
- 4e-56 194.1 0.1 4.4e-56 194.0 0.1 1.0 1 sp|Q45XI8|HBD_TRIMA Hemoglobin subunit delta OS=Trichechus
- 4.1e-56 194.0 0.5 4.6e-56 193.9 0.3 1.0 1 sp|P21768|HBA_MACSI Hemoglobin subunit alpha-1/2 OS=Macaca
- 4.6e-56 193.9 0.1 5.1e-56 193.7 0.1 1.0 1 sp|P09840|HBB_MACCA Hemoglobin subunit beta OS=Macrotus ca
- 4.8e-56 193.8 0.6 5.3e-56 193.7 0.4 1.0 1 sp|Q862A7|HBA_PIPAB Hemoglobin subunit alpha OS=Pipistrell
- 5.1e-56 193.7 0.0 5.7e-56 193.6 0.0 1.0 1 sp|B2KHZ4|HBB_RHIFE Hemoglobin subunit beta OS=Rhinolophus
- 5.3e-56 193.7 0.7 5.8e-56 193.6 0.5 1.0 1 sp|P01930|HBA_COLBA Hemoglobin subunit alpha OS=Colobus ba
- 5.3e-56 193.7 0.5 5.9e-56 193.5 0.4 1.0 1 sp|P81042|HBE_MACEU Hemoglobin subunit epsilon OS=Macropus
- 5.4e-56 193.7 0.1 6e-56 193.5 0.0 1.0 1 sp|P68230|HBB_CAMBA Hemoglobin subunit beta OS=Camelus bac
- 5.4e-56 193.7 0.1 6e-56 193.5 0.0 1.0 1 sp|P68231|HBB_CAMDR Hemoglobin subunit beta OS=Camelus dro
- 5.4e-56 193.7 1.1 6e-56 193.5 0.7 1.0 1 sp|P02154|MYG_LAGLA Myoglobin OS=Lagothrix lagotricha GN=M
- 5.4e-56 193.7 1.2 6e-56 193.5 0.8 1.0 1 sp|P01938|HBA_LORTA Hemoglobin subunit alpha OS=Loris tard
- 5.6e-56 193.6 0.1 6.2e-56 193.5 0.1 1.0 1 sp|P68064|HBB2_PANON Hemoglobin subunit beta-2 OS=Panthera
- 5.9e-56 193.5 0.1 6.6e-56 193.4 0.0 1.0 1 sp|P68087|HBB1_CHAMP Hemoglobin subunit beta-1 OS=Chalinolo
- 6.1e-56 193.5 0.2 6.7e-56 193.4 0.1 1.0 1 sp|P09907|HBB_RHIUN Hemoglobin subunit beta OS=Rhinoceros
- 6.2e-56 193.5 0.3 6.9e-56 193.3 0.2 1.0 1 sp|Q28338|HBE_CHEME Hemoglobin subunit epsilon OS=Cheiroga
- 7.1e-56 193.3 0.3 7.8e-56 193.2 0.2 1.0 1 sp|P02070|HBB_BOVIN Hemoglobin subunit beta OS=Bos taurus
- 7.1e-56 193.3 0.1 7.9e-56 193.1 0.1 1.0 1 sp|P11756|HBB_TADBR Hemoglobin subunit beta OS=Tadarida br
- 7.3e-56 193.2 0.9 8.1e-56 193.1 0.6 1.0 1 sp|P01935|HBA3_PANTR Hemoglobin subunit alpha-3 OS=Pan trog
- 8.5e-56 193.0 0.1 9.5e-56 192.9 0.0 1.0 1 sp|P02091|HBB1_RAT Hemoglobin subunit beta-1 OS=Rattus no
- 8.9e-56 193.0 0.3 9.8e-56 192.8 0.2 1.0 1 sp|P02086|HBB_PROHA Hemoglobin subunit beta OS=Procavia ca
- 9e-56 193.0 1.9 9.9e-56 192.8 1.3 1.0 1 sp|P02194|MYG_MACRU Myoglobin OS=Macropus rufus GN=MB PE=1
- 9.4e-56 192.9 0.2 1e-55 192.7 0.2 1.0 1 sp|Q28356|HBE_DAUMA Hemoglobin subunit epsilon OS=Daubento
- 9.6e-56 192.9 0.2 1.1e-55 192.7 0.1 1.0 1 sp|Q95238|HBE_PROVE Hemoglobin subunit epsilon OS=Propithe
- 1.1e-55 192.6 0.1 1.3e-55 192.5 0.1 1.0 1 sp|P68050|HBB1_PANLE Hemoglobin subunit beta-1 OS=Panthera
- 1.2e-55 192.6 0.9 1.3e-55 192.4 0.6 1.0 1 sp|P01934|HBA3_GORGO Hemoglobin subunit alpha-3 OS=Gorilla
- 1.2e-55 192.6 0.1 1.3e-55 192.4 0.1 1.0 1 sp|P68048|HBB1_PANTS Hemoglobin subunit beta-1 OS=Panthera
- 1.2e-55 192.6 0.1 1.3e-55 192.4 0.1 1.0 1 sp|P68049|HBB1_PANON Hemoglobin subunit beta-1 OS=Panthera
- 1.2e-55 192.6 0.1 1.3e-55 192.4 0.1 1.0 1 sp|P68051|HBB1_PANPS Hemoglobin subunit beta-1 OS=Panthera
- 1.2e-55 192.5 0.1 1.3e-55 192.4 0.1 1.0 1 sp|P68065|HBB2_PANPS Hemoglobin subunit beta-2 OS=Panthera
- 1.2e-55 192.5 0.1 1.3e-55 192.4 0.1 1.0 1 sp|P68194|HBB2_PANTS Hemoglobin subunit beta-2 OS=Panthera
- 1.3e-55 192.4 0.8 1.4e-55 192.3 0.5 1.0 1 sp|P09422|HBB_BISBO Hemoglobin subunit beta OS=Bison bonas
- 1.4e-55 192.4 0.0 1.5e-55 192.2 0.0 1.0 1 sp|P68226|HBB_LAMGL Hemoglobin subunit beta OS=Lama glama
- 1.4e-55 192.4 0.0 1.5e-55 192.2 0.0 1.0 1 sp|P68227|HBB_LAMVI Hemoglobin subunit beta OS=Lama vicugn
- 1.4e-55 192.4 0.0 1.5e-55 192.2 0.0 1.0 1 sp|P68228|HBB_LAMPA Hemoglobin subunit beta OS=Lama guanic
- 1.4e-55 192.4 0.0 1.5e-55 192.2 0.0 1.0 1 sp|P68229|HBB_LAMGU Hemoglobin subunit beta OS=Lama guanic
- 1.4e-55 192.4 0.2 1.5e-55 192.2 0.2 1.0 1 sp|Q28931|HBE_SMICR Hemoglobin subunit epsilon OS=Sminthop
- 1.7e-55 192.1 0.9 1.8e-55 191.9 0.7 1.0 1 sp|P07402|HBA_MACSP Hemoglobin subunit alpha-1/2 OS=Macaca
- 1.7e-55 192.0 0.5 1.9e-55 191.9 0.3 1.0 1 sp|P01940|HBA_TARBA Hemoglobin subunit alpha OS=Tarsius ba
- 2e-55 191.8 1.6 2.2e-55 191.7 1.1 1.0 1 sp|P02197|MYG_CHICK Myoglobin OS=Gallus gallus GN=MB PE=1
- 2.3e-55 191.6 0.4 2.5e-55 191.5 0.3 1.0 1 sp|P21380|HBB_RANTA Hemoglobin subunit beta OS=Rangifer ta
- 2.4e-55 191.6 0.3 2.7e-55 191.4 0.2 1.0 1 sp|P02053|HBB_EULFU Hemoglobin subunit beta OS=Eulemur ful
- 2.4e-55 191.6 0.6 2.7e-55 191.4 0.4 1.0 1 sp|P02075|HBB_SHEEP Hemoglobin subunit beta OS=Ovis aries
- 3.1e-55 191.2 0.2 3.5e-55 191.1 0.2 1.0 1 sp|Q28496|HBE_MICMU Hemoglobin subunit epsilon OS=Microceb
- 3.2e-55 191.2 0.0 3.5e-55 191.0 0.0 1.0 1 sp|Q7M3C2|HBB_HAPGR Hemoglobin subunit beta OS=Hapalemur g
- 3.4e-55 191.1 1.0 3.8e-55 190.9 0.7 1.0 1 sp|P01939|HBA2_GALCR Hemoglobin subunit alpha-B OS=Galago c
- 3.6e-55 191.0 0.3 3.9e-55 190.9 0.2 1.0 1 sp|P02093|HBB_ONDZI Hemoglobin subunit beta OS=Ondatra zib
- 3.6e-55 191.0 0.0 4e-55 190.8 0.0 1.0 1 sp|P14388|HBB_ANTPA Hemoglobin subunit beta OS=Antrozous p
- 3.7e-55 191.0 0.1 4.1e-55 190.8 0.1 1.0 1 sp|P67823|HBB_EQUHE Hemoglobin subunit beta OS=Equus hemio
- 3.7e-55 191.0 0.1 4.1e-55 190.8 0.1 1.0 1 sp|P67824|HBB_EQUZE Hemoglobin subunit beta OS=Equus zebra
- 3.8e-55 190.9 0.9 4.2e-55 190.8 0.6 1.0 1 sp|P19015|HBA_HIPAM Hemoglobin subunit alpha OS=Hippopotam
- 4.2e-55 190.8 0.1 4.6e-55 190.7 0.1 1.0 1 sp|P14387|HBA_ANTPA Hemoglobin subunit alpha OS=Antrozous
- 4.5e-55 190.7 0.2 5e-55 190.5 0.2 1.0 1 sp|P08223|HBE_EULFU Hemoglobin subunit epsilon OS=Eulemur
- 5e-55 190.5 0.9 5.6e-55 190.4 0.6 1.0 1 sp|P02077|HBBA_CAPHI Hemoglobin subunit beta-A OS=Capra hir
- 5.1e-55 190.5 0.8 5.7e-55 190.4 0.6 1.0 1 sp|P02187|MYG_LOXAF Myoglobin OS=Loxodonta africana GN=MB
- 5.2e-55 190.5 0.8 5.7e-55 190.3 0.6 1.0 1 sp|P01936|HBA_EULFU Hemoglobin subunit alpha OS=Eulemur fu
- 5.4e-55 190.4 0.0 6e-55 190.3 0.0 1.0 1 sp|P02061|HBB_TALEU Hemoglobin subunit beta OS=Talpa europ
- 5.8e-55 190.3 0.5 6.4e-55 190.2 0.3 1.0 1 sp|P02072|HBB_BOSMU Hemoglobin subunit beta OS=Bos mutus g
- 7.3e-55 190.0 1.5 8e-55 189.9 1.0 1.0 1 sp|Q7LZM2|MYG_ANAPO Myoglobin OS=Anas poecilorhyncha GN=MB
- 7.5e-55 190.0 0.6 8.3e-55 189.8 0.4 1.0 1 sp|Q7LZM3|MYG_PHAFI Myoglobin OS=Phalacrocorax filamentosu
- 7.7e-55 189.9 0.1 8.6e-55 189.8 0.1 1.0 1 sp|P02102|HBE1_CAPHI Hemoglobin subunit epsilon-1 OS=Capra
- 9.1e-55 189.7 0.1 1e-54 189.5 0.1 1.0 1 sp|P19016|HBB_HIPAM Hemoglobin subunit beta OS=Hippopotamu
- 9.5e-55 189.6 0.3 1.1e-54 189.5 0.2 1.0 1 sp|P28780|HBA_TAPGE Hemoglobin subunit alpha OS=Taphozous
- 1e-54 189.5 0.1 1.1e-54 189.4 0.1 1.0 1 sp|P02054|HBB_LEMCA Hemoglobin subunit beta OS=Lemur catta
- 1e-54 189.5 0.0 1.1e-54 189.4 0.0 1.0 1 sp|P11025|HBE_DIDMA Hemoglobin subunit epsilon-M OS=Didelp
- 1e-54 189.5 0.9 1.2e-54 189.4 0.6 1.0 1 sp|P14259|HBA1_GALCR Hemoglobin subunit alpha-A OS=Galago c
- 1.1e-54 189.4 0.3 1.2e-54 189.3 0.2 1.0 1 sp|P19759|HBE_GALCR Hemoglobin subunit epsilon OS=Galago c
- 1.1e-54 189.4 0.5 1.2e-54 189.3 0.3 1.0 1 sp|P02064|HBB1_TAPTE Hemoglobin subunit beta-1 OS=Tapirus t
- 1.1e-54 189.4 0.0 1.2e-54 189.3 0.0 1.0 1 sp|P02101|HBE_PIG Hemoglobin subunit epsilon OS=Sus scro
- 1.1e-54 189.4 0.1 1.2e-54 189.3 0.1 1.0 1 sp|P11757|HBA_MYOVE Hemoglobin subunit alpha OS=Myotis vel
- 1.2e-54 189.3 0.9 1.3e-54 189.2 0.6 1.0 1 sp|P20018|HBA1_LEMVA Hemoglobin subunit alpha-1 OS=Lemur va
- 1.2e-54 189.3 0.1 1.3e-54 189.2 0.0 1.0 1 sp|P02062|HBB_HORSE Hemoglobin subunit beta OS=Equus cabal
- 1.3e-54 189.2 1.3 1.4e-54 189.0 0.9 1.0 1 sp|P63111|HBA_PAPAN Hemoglobin subunit alpha OS=Papio anub
- 1.3e-54 189.2 1.3 1.4e-54 189.0 0.9 1.0 1 sp|P63112|HBA_PAPCY Hemoglobin subunit alpha OS=Papio cyno
- 1.5e-54 189.0 0.8 1.6e-54 188.9 0.6 1.0 1 sp|P08258|HBA_MANSP Hemoglobin subunit alpha-1/2 OS=Mandri
- 1.5e-54 189.0 1.4 1.7e-54 188.8 1.0 1.0 1 sp|P02092|HBB_MICXA Hemoglobin subunit beta OS=Microtus xa
- 1.5e-54 189.0 0.6 1.7e-54 188.8 0.4 1.0 1 sp|P02186|MYG_ELEMA Myoglobin OS=Elephas maximus GN=MB PE=
- 1.6e-54 188.9 0.8 1.8e-54 188.8 0.6 1.0 1 sp|Q9XSK1|HBA4_BUBBU Hemoglobin subunit alpha-4 OS=Bubalus
- 1.7e-54 188.8 1.3 1.8e-54 188.7 0.9 1.0 1 sp|P01932|HBA_THEGE Hemoglobin subunit alpha OS=Theropithe
- 1.9e-54 188.7 0.3 2.1e-54 188.5 0.2 1.0 1 sp|P02110|HBB_TACAC Hemoglobin subunit beta OS=Tachyglossu
- 2e-54 188.6 1.2 2.2e-54 188.5 0.8 1.0 1 sp|P01933|HBA_CERTO Hemoglobin subunit alpha OS=Cercocebus
- 2e-54 188.6 1.1 2.2e-54 188.4 0.8 1.0 1 sp|P20019|HBA2_LEMVA Hemoglobin subunit alpha-2 OS=Lemur va
- 2.1e-54 188.5 0.5 2.4e-54 188.3 0.3 1.0 1 sp|P21379|HBA_RANTA Hemoglobin subunit alpha OS=Rangifer t
- 2.2e-54 188.4 1.7 2.5e-54 188.3 1.2 1.0 1 sp|P83682|MYG_DELLE Myoglobin OS=Delphinapterus leucas GN=
- 2.5e-54 188.3 0.0 2.8e-54 188.1 0.0 1.0 1 sp|P04246|HBT_PIG Hemoglobin subunit theta OS=Sus scrofa
- 2.6e-54 188.2 0.1 2.9e-54 188.1 0.1 1.0 1 sp|Q45XH7|HBG_ELEMA Hemoglobin subunit gamma OS=Elephas ma
- 2.7e-54 188.2 0.3 2.9e-54 188.0 0.2 1.0 1 sp|P04247|MYG_MOUSE Myoglobin OS=Mus musculus GN=Mb PE=1 S
- 2.8e-54 188.1 0.0 3.1e-54 188.0 0.0 1.0 1 sp|P02074|HBB_ODOVI Hemoglobin subunit beta-3 OS=Odocoileu
- 3e-54 188.0 0.5 3.3e-54 187.9 0.4 1.0 1 sp|P01971|HBA_ALCAA Hemoglobin subunit alpha OS=Alces alce
- 3e-54 188.0 0.6 3.3e-54 187.9 0.4 1.0 1 sp|Q9TSN8|HBA2_BUBBU Hemoglobin subunit alpha-2 OS=Bubalus
- 3e-54 188.0 0.4 3.3e-54 187.9 0.3 1.0 1 sp|Q9QZ76|MYG_RAT Myoglobin OS=Rattus norvegicus GN=Mb P
- 3.1e-54 187.9 0.4 3.5e-54 187.8 0.3 1.0 1 sp|O77655|HBG_TARBA Hemoglobin subunit gamma OS=Tarsius ba
- 3.5e-54 187.8 0.1 3.9e-54 187.7 0.1 1.0 1 sp|P11758|HBB_MYOVE Hemoglobin subunit beta OS=Myotis veli
- 3.5e-54 187.8 1.8 3.9e-54 187.6 1.3 1.0 1 sp|P85077|MYG_STRCA Myoglobin OS=Struthio camelus GN=MB PE
- 3.6e-54 187.8 0.2 4e-54 187.6 0.1 1.0 1 sp|Q7M2Y4|HBA_CHAMP Hemoglobin subunit alpha OS=Chalinolob
- 3.7e-54 187.7 0.9 4.1e-54 187.6 0.6 1.0 1 sp|Q7LZM5|MYG_AETPY Myoglobin OS=Aethia pygmaea GN=MB PE=1
- 3.7e-54 187.7 0.6 4.1e-54 187.6 0.4 1.0 1 sp|P01951|HBA_TALEU Hemoglobin subunit alpha OS=Talpa euro
- 4.1e-54 187.6 0.1 4.5e-54 187.4 0.1 1.0 1 sp|P18435|HBE_TARSY Hemoglobin subunit epsilon OS=Tarsius
- 4.4e-54 187.5 0.1 4.9e-54 187.3 0.1 1.0 1 sp|P51438|HBE_ATEBE Hemoglobin subunit epsilon OS=Ateles b
- 4.6e-54 187.4 0.1 5.1e-54 187.3 0.1 1.0 1 sp|P19760|HBG_GALCR Hemoglobin subunit gamma OS=Galago cra
- 4.6e-54 187.4 0.3 5.1e-54 187.3 0.2 1.0 1 sp|P10892|HBA_LUTLU Hemoglobin subunit alpha OS=Lutra lutr
- 4.7e-54 187.4 0.9 5.2e-54 187.2 0.6 1.0 1 sp|Q7LZM4|MYG_CERMN Myoglobin OS=Cerorhinca monocerata GN=
- 5e-54 187.3 0.8 5.5e-54 187.1 0.6 1.0 1 sp|P02094|HBB_MESAU Hemoglobin subunit beta OS=Mesocricetu
- 5.5e-54 187.2 0.1 6.1e-54 187.0 0.1 1.0 1 sp|Q45XH8|HBG_LOXAF Hemoglobin subunit gamma OS=Loxodonta
- 5.6e-54 187.1 0.2 6.2e-54 187.0 0.1 1.0 1 sp|P01963|HBA_CERSI Hemoglobin subunit alpha OS=Ceratother
- 5.6e-54 187.1 0.2 6.2e-54 187.0 0.1 1.0 1 sp|P02104|HBE_MOUSE Hemoglobin subunit epsilon-Y2 OS=Mus m
- 5.9e-54 187.0 0.0 6.6e-54 186.9 0.0 1.0 1 sp|Q2KPA3|HBB_SCAOR Hemoglobin subunit beta OS=Scapanus or
- 6.5e-54 186.9 0.5 7.2e-54 186.8 0.4 1.0 1 sp|P18994|HBE_PONPY Hemoglobin subunit epsilon OS=Pongo py
- 6.7e-54 186.9 0.0 7.4e-54 186.7 0.0 1.0 1 sp|P61921|HBG2_PANTR Hemoglobin subunit gamma-2 OS=Pan trog
- 6.7e-54 186.9 0.0 7.4e-54 186.7 0.0 1.0 1 sp|P62742|HBG2_GORGO Hemoglobin subunit gamma-2 OS=Gorilla
- 6.7e-54 186.9 0.0 7.4e-54 186.7 0.0 1.0 1 sp|P69892|HBG2_HUMAN Hemoglobin subunit gamma-2 OS=Homo sap
- 7e-54 186.8 0.1 7.7e-54 186.7 0.1 1.0 1 sp|P61920|HBG1_PANTR Hemoglobin subunit gamma-1 OS=Pan trog
- 7e-54 186.8 0.1 7.7e-54 186.7 0.1 1.0 1 sp|P69891|HBG1_HUMAN Hemoglobin subunit gamma-1 OS=Homo sap
- 7.8e-54 186.7 0.1 8.7e-54 186.5 0.0 1.0 1 sp|P11753|HBA_CYNSP Hemoglobin subunit alpha OS=Cynopterus
- 8e-54 186.6 0.3 8.8e-54 186.5 0.2 1.0 1 sp|P68238|HBA_CAPHI Hemoglobin subunit alpha-1/2 OS=Capra
- 8e-54 186.6 0.3 8.8e-54 186.5 0.2 1.0 1 sp|P68239|HBA_AMMLE Hemoglobin subunit alpha-1/2 OS=Ammotr
- 8e-54 186.6 0.3 8.8e-54 186.5 0.2 1.0 1 sp|P68240|HBA_SHEEP Hemoglobin subunit alpha-1/2 OS=Ovis a
- 8.5e-54 186.5 0.4 9.4e-54 186.4 0.3 1.0 1 sp|Q28507|HBE_MACMU Hemoglobin subunit epsilon OS=Macaca m
- 8.7e-54 186.5 0.7 9.6e-54 186.4 0.5 1.0 1 sp|P07405|HBA_FELCA Hemoglobin subunit alpha OS=Felis catu
- 8.8e-54 186.5 0.3 9.7e-54 186.3 0.2 1.0 1 sp|P23601|HBA_MUSPU Hemoglobin subunit alpha-1/2 OS=Mustel
- 8.8e-54 186.5 0.3 9.8e-54 186.3 0.2 1.0 1 sp|P09839|HBA_MACCA Hemoglobin subunit alpha OS=Macrotus c
- 8.9e-54 186.5 0.8 9.8e-54 186.3 0.6 1.0 1 sp|Q9TSN7|HBA1_BUBBU Hemoglobin subunit alpha-1 OS=Bubalus
- 8.9e-54 186.5 1.0 9.9e-54 186.3 0.7 1.0 1 sp|P04237|HBA_TRAST Hemoglobin subunit alpha OS=Tragelaphu
- 9.2e-54 186.4 1.0 1e-53 186.3 0.7 1.0 1 sp|P01966|HBA_BOVIN Hemoglobin subunit alpha OS=Bos taurus
- 9.9e-54 186.3 0.2 1.1e-53 186.2 0.1 1.0 1 sp|Q28932|HBB_SMICR Hemoglobin subunit beta OS=Sminthopsis
- 1e-53 186.3 0.5 1.1e-53 186.2 0.4 1.0 1 sp|Q95190|HBE_HYLSY Hemoglobin subunit epsilon OS=Hylobate
- 1e-53 186.3 0.0 1.1e-53 186.2 0.0 1.0 1 sp|Q28779|HBG1_PANPA Hemoglobin subunit gamma-1 OS=Pan pani
- 1.1e-53 186.2 0.1 1.2e-53 186.0 0.1 1.0 1 sp|P01956|HBA_ROUAE Hemoglobin subunit alpha OS=Rousettus
- 1.1e-53 186.1 0.6 1.3e-53 186.0 0.4 1.0 1 sp|P09908|HBA_PHOVI Hemoglobin subunit alpha OS=Phoca vitu
- 1.2e-53 186.1 0.2 1.3e-53 186.0 0.1 1.0 1 sp|Q0ZA50|HBA_PANHO Hemoglobin subunit alpha OS=Pantholops
- 1.2e-53 186.0 0.0 1.4e-53 185.9 0.0 1.0 1 sp|P02103|HBE_RABIT Hemoglobin subunit epsilon OS=Oryctola
- 1.3e-53 185.9 0.8 1.4e-53 185.8 0.6 1.0 1 sp|P18707|HBB_MESBR Hemoglobin subunit beta OS=Mesocricetu
- 1.3e-53 185.9 0.3 1.5e-53 185.8 0.2 1.0 1 sp|P26915|HBA_NASNA Hemoglobin subunit alpha OS=Nasua nasu
- 1.3e-53 185.9 0.7 1.5e-53 185.8 0.5 1.0 1 sp|P09423|HBA_BISBO Hemoglobin subunit alpha-I/II OS=Bison
- 1.3e-53 185.9 0.4 1.5e-53 185.8 0.3 1.0 1 sp|Q45XI7|HBD_DUGDU Hemoglobin subunit delta OS=Dugong dug
- 1.4e-53 185.9 1.4 1.5e-53 185.7 1.0 1.0 1 sp|Q7LZM1|MYG_URILO Myoglobin OS=Uria lomvia GN=MB PE=1 SV
- 1.4e-53 185.8 0.1 1.6e-53 185.7 0.1 1.0 1 sp|P68026|HBE_CALJA Hemoglobin subunit epsilon OS=Callithr
- 1.4e-53 185.8 0.1 1.6e-53 185.7 0.1 1.0 1 sp|P68027|HBE_CEBPY Hemoglobin subunit epsilon OS=Cebuella
- 1.4e-53 185.8 0.3 1.6e-53 185.7 0.2 1.0 1 sp|P08224|HBG_CHEME Hemoglobin subunit gamma OS=Cheirogale
- 1.5e-53 185.8 0.5 1.6e-53 185.6 0.3 1.0 1 sp|P41327|HBA_LYNLY Hemoglobin subunit alpha OS=Lynx lynx
- 1.5e-53 185.8 1.2 1.6e-53 185.6 0.8 1.0 1 sp|P08852|HBA_MARMA Hemoglobin subunit alpha OS=Marmota ma
- 1.6e-53 185.7 0.2 1.8e-53 185.5 0.1 1.0 1 sp|P08225|HBG_EULFU Hemoglobin subunit gamma OS=Eulemur fu
- 1.8e-53 185.5 0.0 2e-53 185.3 0.0 1.0 1 sp|P68077|HBG_MACMU Hemoglobin subunit gamma OS=Macaca mul
- 1.8e-53 185.5 0.0 2e-53 185.3 0.0 1.0 1 sp|P68078|HBG_MACFU Hemoglobin subunit gamma OS=Macaca fus
- 1.8e-53 185.5 0.0 2e-53 185.3 0.0 1.0 1 sp|P68079|HBG_PAPCY Hemoglobin subunit gamma OS=Papio cyno
- 1.8e-53 185.5 0.4 2e-53 185.3 0.2 1.0 1 sp|P01945|HBA_MESAU Hemoglobin subunit alpha OS=Mesocricet
- 1.8e-53 185.5 0.8 2e-53 185.3 0.5 1.0 1 sp|P02095|HBB_CAVPO Hemoglobin subunit beta OS=Cavia porce
- 1.8e-53 185.5 0.3 2e-53 185.3 0.2 1.0 1 sp|P20243|HBA_MUSPF Hemoglobin subunit alpha-1/2 OS=Mustel
- 1.9e-53 185.4 0.2 2.1e-53 185.3 0.1 1.0 1 sp|P01953|HBA_MELME Hemoglobin subunit alpha OS=Meles mele
- 1.9e-53 185.4 0.9 2.1e-53 185.3 0.6 1.0 1 sp|P11750|HBA_SPEPA Hemoglobin subunit alpha OS=Spermophil
- 1.9e-53 185.4 0.4 2.1e-53 185.3 0.3 1.0 1 sp|P02100|HBE_HUMAN Hemoglobin subunit epsilon OS=Homo sap
- 1.9e-53 185.4 0.4 2.1e-53 185.3 0.3 1.0 1 sp|Q6LDH0|HBE_GORGO Hemoglobin subunit epsilon OS=Gorilla
- 1.9e-53 185.4 0.4 2.1e-53 185.3 0.3 1.0 1 sp|Q6LDH1|HBE_PANTR Hemoglobin subunit epsilon OS=Pan trog
- 2e-53 185.4 0.3 2.2e-53 185.2 0.2 1.0 1 sp|P23600|HBA_MUSLU Hemoglobin subunit alpha-1/2 OS=Mustel
- 2e-53 185.3 0.9 2.2e-53 185.2 0.6 1.0 1 sp|P01969|HBA_BOSGF Hemoglobin subunit alpha OS=Bos gaurus
- 2e-53 185.3 0.6 2.3e-53 185.2 0.4 1.0 1 sp|P09420|HBA_SPECI Hemoglobin subunit alpha OS=Spermophil
- 2.1e-53 185.3 0.7 2.3e-53 185.1 0.5 1.0 1 sp|P01967|HBA1_BOSMU Hemoglobin subunit alpha-1 OS=Bos mutu
- 2.2e-53 185.2 1.1 2.5e-53 185.0 0.8 1.0 1 sp|P09904|HBA_PHYCA Hemoglobin subunit alpha OS=Physeter c
- 2.2e-53 185.2 0.7 2.5e-53 185.0 0.5 1.0 1 sp|P01968|HBA2_BOSMU Hemoglobin subunit alpha-2 OS=Bos mutu
- 2.3e-53 185.1 0.9 2.6e-53 185.0 0.6 1.0 1 sp|P02065|HBB2_TAPTE Hemoglobin subunit beta-2 OS=Tapirus t
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68016|HBE_AOTAZ Hemoglobin subunit epsilon OS=Aotus az
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68017|HBE_ALOBE Hemoglobin subunit epsilon OS=Alouatta
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68018|HBE_ALOSE Hemoglobin subunit epsilon OS=Alouatta
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68019|HBE_ATEGE Hemoglobin subunit epsilon OS=Ateles g
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68020|HBE_BRAAR Hemoglobin subunit epsilon OS=Brachyte
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68021|HBE_CACCA Hemoglobin subunit epsilon OS=Cacajao
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68022|HBE_CALMO Hemoglobin subunit epsilon OS=Calliceb
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68023|HBE_CALTO Hemoglobin subunit epsilon OS=Calliceb
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68024|HBE_CALGO Hemoglobin subunit epsilon OS=Callimic
- 2.4e-53 185.1 0.1 2.7e-53 184.9 0.1 1.0 1 sp|P68025|HBE_CHISA Hemoglobin subunit epsilon OS=Chiropot
- 2.5e-53 185.0 0.1 2.8e-53 184.9 0.1 1.0 1 sp|P14390|HBA_PTEPO Hemoglobin subunit alpha OS=Pteropus p
- 2.8e-53 184.9 0.2 3.1e-53 184.7 0.2 1.0 1 sp|P10885|HBA_PTEBR Hemoglobin subunit alpha OS=Pteronura
- 2.9e-53 184.8 0.2 3.1e-53 184.7 0.2 1.0 1 sp|P68056|HBBC_SHEEP Hemoglobin subunit beta-C OS=Ovis arie
- 3.1e-53 184.7 1.4 3.4e-53 184.6 0.9 1.0 1 sp|P20854|HBA_CTEGU Hemoglobin subunit alpha OS=Ctenodacty
- 3.1e-53 184.7 0.3 3.4e-53 184.6 0.2 1.0 1 sp|Q28775|HBE_PANPA Hemoglobin subunit epsilon OS=Pan pani
- 3.1e-53 184.7 0.2 3.4e-53 184.6 0.2 1.0 1 sp|P68057|HBBC_OVIMU Hemoglobin subunit beta-C OS=Ovis orie
- 3.5e-53 184.6 0.1 3.9e-53 184.4 0.1 1.0 1 sp|P51443|HBE_SAGMI Hemoglobin subunit epsilon OS=Saguinus
- 3.5e-53 184.5 0.2 3.9e-53 184.4 0.1 1.0 1 sp|P14389|HBA_PTEAL Hemoglobin subunit alpha OS=Pteropus a
- 3.6e-53 184.5 0.0 3.9e-53 184.4 0.0 1.0 1 sp|P11755|HBA1_TADBR Hemoglobin subunit alpha-1 OS=Tadarida
- 3.7e-53 184.5 0.0 4e-53 184.3 0.0 1.0 1 sp|P02097|HBG_MACNE Hemoglobin subunit gamma OS=Macaca nem
- 3.7e-53 184.5 0.3 4.1e-53 184.3 0.2 1.0 1 sp|P01958|HBA_HORSE Hemoglobin subunit alpha OS=Equus caba
- 3.8e-53 184.4 0.2 4.2e-53 184.3 0.1 1.0 1 sp|P51440|HBE_LAGLA Hemoglobin subunit epsilon OS=Lagothri
- 3.9e-53 184.4 0.9 4.3e-53 184.3 0.6 1.0 1 sp|P07403|HBA_SPETO Hemoglobin subunit alpha OS=Spermophil
- 4e-53 184.4 0.0 4.4e-53 184.2 0.0 1.0 1 sp|P18995|HBG1_PONPY Hemoglobin subunit gamma-1 OS=Pongo py
- 4.4e-53 184.2 0.0 4.9e-53 184.1 0.0 1.0 1 sp|P02082|HBBF_CAPHI Hemoglobin fetal subunit beta OS=Capra
- 5.1e-53 184.0 0.2 5.6e-53 183.9 0.1 1.0 1 sp|Q9TVA3|HBA2_EQUBU Hemoglobin subunit alpha-2 OS=Equus bu
- 5.1e-53 184.0 0.8 5.6e-53 183.9 0.6 1.0 1 sp|Q9TSN9|HBA3_BUBBU Hemoglobin subunit alpha-3 OS=Bubalus
- 5.4e-53 183.9 1.1 6.1e-53 183.8 0.8 1.0 1 sp|P14526|HBB_BRATR Hemoglobin subunit beta OS=Bradypus tr
- 5.6e-53 183.9 0.4 6.1e-53 183.8 0.3 1.0 1 sp|P01942|HBA_MOUSE Hemoglobin subunit alpha OS=Mus muscul
- 5.7e-53 183.9 0.2 6.2e-53 183.7 0.2 1.0 1 sp|P68058|HBBC_AMMLE Hemoglobin subunit beta-C OS=Ammotragu
- 6.5e-53 183.7 0.2 7.2e-53 183.5 0.1 1.0 1 sp|P68028|HBE_SAISC Hemoglobin subunit epsilon OS=Saimiri
- 6.5e-53 183.7 0.2 7.2e-53 183.5 0.1 1.0 1 sp|P68029|HBE_SAIBB Hemoglobin subunit epsilon OS=Saimiri
- 6.5e-53 183.7 1.1 7.2e-53 183.5 0.7 1.0 1 sp|P56208|MYG_CARCR Myoglobin OS=Caretta caretta GN=MB PE=
- 6.8e-53 183.6 0.5 7.6e-53 183.4 0.4 1.0 1 sp|P02087|HBB_DASNO Hemoglobin subunit beta OS=Dasypus nov
- 6.8e-53 183.6 0.0 7.6e-53 183.5 0.0 1.0 1 sp|P02052|HBB_TUPGL Hemoglobin subunit beta OS=Tupaia glis
- 7.4e-53 183.5 1.1 8.1e-53 183.4 0.8 1.0 1 sp|P02202|MYG_CHEMY Myoglobin OS=Chelonia mydas GN=MB PE=1
- 7.9e-53 183.4 0.0 8.7e-53 183.3 0.0 1.0 1 sp|P62741|HBG1_GORGO Hemoglobin subunit gamma-1 OS=Gorilla
- 8.5e-53 183.3 0.0 9.4e-53 183.1 0.0 1.0 1 sp|P61948|HBG2_HYLLA Hemoglobin subunit gamma-2 OS=Hylobate
- 8.8e-53 183.2 0.3 9.7e-53 183.1 0.2 1.0 1 sp|P09906|HBA_RHIUN Hemoglobin subunit alpha OS=Rhinoceros
- 9.1e-53 183.2 0.1 1e-52 183.1 0.1 1.0 1 sp|P51441|HBE_LEORO Hemoglobin subunit epsilon OS=Leontopi
- 9.1e-53 183.2 0.2 1e-52 183.0 0.2 1.0 1 sp|P18970|HBA_AILME Hemoglobin subunit alpha OS=Ailuropoda
- 9.8e-53 183.1 0.2 1.1e-52 182.9 0.1 1.0 1 sp|P51442|HBE_PITIR Hemoglobin subunit epsilon OS=Pithecia
- 1e-52 183.1 0.3 1.1e-52 182.9 0.2 1.0 1 sp|Q9XSE9|HBA_EQUPR Hemoglobin subunit alpha OS=Equus caba
- 1e-52 183.1 0.2 1.1e-52 182.9 0.1 1.0 1 sp|Q7LZB9|HBB_STROE Hemoglobin subunit beta OS=Streptopeli
- 1.1e-52 183.0 0.2 1.2e-52 182.8 0.1 1.0 1 sp|Q29415|HBE_CEBOL Hemoglobin subunit epsilon OS=Cebus ol
- 1.1e-52 183.0 0.2 1.2e-52 182.8 0.1 1.0 1 sp|Q7JFR7|HBE_CEBKA Hemoglobin subunit epsilon OS=Cebus ka
- 1.1e-52 182.9 0.7 1.2e-52 182.8 0.5 1.0 1 sp|P01965|HBA_PIG Hemoglobin subunit alpha OS=Sus scrofa
- 1.1e-52 182.9 0.3 1.3e-52 182.7 0.2 1.0 1 sp|P01944|HBA_ONDZI Hemoglobin subunit alpha OS=Ondatra zi
- 1.1e-52 182.9 0.4 1.3e-52 182.7 0.2 1.0 1 sp|P63109|HBA_PANON Hemoglobin subunit alpha OS=Panthera o
- 1.2e-52 182.8 0.7 1.4e-52 182.6 0.5 1.0 1 sp|P02099|HBG_RABIT Hemoglobin subunit gamma OS=Oryctolagu
- 1.3e-52 182.6 0.1 1.5e-52 182.5 0.1 1.0 1 sp|P01962|HBA_TAPTE Hemoglobin subunit alpha-1/2 OS=Tapiru
- 1.4e-52 182.6 0.2 1.5e-52 182.5 0.2 1.0 1 sp|P01959|HBA_EQUAS Hemoglobin subunit alpha OS=Equus asin
- 1.4e-52 182.6 0.2 1.5e-52 182.5 0.2 1.0 1 sp|P01960|HBA_EQUZE Hemoglobin subunit alpha OS=Equus zebr
- 1.4e-52 182.6 0.2 1.5e-52 182.5 0.2 1.0 1 sp|Q7JFN6|HBA2_EQUGR Hemoglobin subunit alpha-2 OS=Equus gr
- 1.4e-52 182.6 0.1 1.5e-52 182.4 0.0 1.0 1 sp|P01941|HBA_TUPGL Hemoglobin subunit alpha OS=Tupaia gli
- 1.4e-52 182.6 0.0 1.6e-52 182.4 0.0 1.0 1 sp|P61947|HBG1_HYLLA Hemoglobin subunit gamma-1 OS=Hylobate
- 1.7e-52 182.3 0.4 1.9e-52 182.2 0.3 1.0 1 sp|P41330|HBA2_ARCGA Hemoglobin subunit alpha-2 OS=Arctocep
- 1.7e-52 182.3 0.3 1.9e-52 182.2 0.2 1.0 1 sp|P63110|HBA_PANPO Hemoglobin subunit alpha OS=Panthera p
- 1.7e-52 182.3 0.0 1.9e-52 182.1 0.0 1.0 1 sp|P02083|HBBF_SHEEP Hemoglobin fetal subunit beta OS=Ovis
- 1.8e-52 182.3 1.1 1.9e-52 182.1 0.8 1.0 1 sp|P16418|HBB_LIOMI Hemoglobin subunit beta OS=Liophis mil
- 1.8e-52 182.3 0.1 2e-52 182.1 0.1 1.0 1 sp|Q9XSN3|HBA1_EQUBU Hemoglobin subunit alpha-1 OS=Equus bu
- 1.8e-52 182.2 0.0 2e-52 182.1 0.0 1.0 1 sp|P02111|HBB_ORNAN Hemoglobin subunit beta OS=Ornithorhyn
- 1.8e-52 182.2 0.2 2e-52 182.1 0.1 1.0 1 sp|Q28220|HBE_CEBAL Hemoglobin subunit epsilon OS=Cebus al
- 1.9e-52 182.1 0.1 2.1e-52 182.0 0.1 1.0 1 sp|P11342|HBB_COLLI Hemoglobin subunit beta OS=Columba liv
- 2e-52 182.1 0.3 2.2e-52 181.9 0.2 1.0 1 sp|P10883|HBA_PANTS Hemoglobin subunit alpha OS=Panthera t
- 2.2e-52 182.0 0.3 2.4e-52 181.8 0.2 1.0 1 sp|P18976|HBA_PANPS Hemoglobin subunit alpha OS=Panthera p
- 2.2e-52 181.9 0.5 2.5e-52 181.8 0.4 1.0 1 sp|P02201|MYG_GRAGE Myoglobin OS=Graptemys geographica GN=
- 2.7e-52 181.7 0.0 3e-52 181.5 0.0 1.0 1 sp|P18996|HBG2_PONPY Hemoglobin subunit gamma-2 OS=Pongo py
- 3e-52 181.5 0.0 3.3e-52 181.4 0.0 1.0 1 sp|P02081|HBBF_BOVIN Hemoglobin fetal subunit beta OS=Bos t
- 3.1e-52 181.5 0.2 3.4e-52 181.3 0.2 1.0 1 sp|P01961|HBA_EQUHE Hemoglobin subunit alpha-1/2 OS=Equus
- 3.4e-52 181.4 0.2 3.7e-52 181.2 0.1 1.0 1 sp|P80216|HBB_APTFO Hemoglobin subunit beta OS=Aptenodytes
- 3.4e-52 181.3 0.1 3.8e-52 181.2 0.1 1.0 1 sp|Q2KPA4|HBB_SCAAQ Hemoglobin subunit beta OS=Scalopus aq
- 3.4e-52 181.3 0.3 3.8e-52 181.2 0.2 1.0 1 sp|P01943|HBA_SPAEH Hemoglobin subunit alpha OS=Spalax leu
- 3.7e-52 181.2 0.8 4.1e-52 181.1 0.6 1.0 1 sp|P01950|HBA_SUNMU Hemoglobin subunit alpha OS=Suncus mur
- 3.7e-52 181.2 0.3 4.1e-52 181.1 0.2 1.0 1 sp|P68235|HBA_URSMA Hemoglobin subunit alpha OS=Ursus mari
- 3.7e-52 181.2 0.3 4.1e-52 181.1 0.2 1.0 1 sp|P68236|HBA_URSTH Hemoglobin subunit alpha OS=Ursus thib
- 3.7e-52 181.2 0.3 4.1e-52 181.1 0.2 1.0 1 sp|P68237|HBA_URSML Hemoglobin subunit alpha OS=Ursus mala
- 4.4e-52 181.0 0.2 4.8e-52 180.8 0.1 1.0 1 sp|P02078|HBBC_CAPHI Hemoglobin subunit beta-C OS=Capra hir
- 4.4e-52 181.0 0.2 4.9e-52 180.8 0.1 1.0 1 sp|P41329|HBA1_ARCGA Hemoglobin subunit alpha-1 OS=Arctocep
- 4.8e-52 180.9 0.3 5.3e-52 180.7 0.2 1.0 1 sp|P24659|HBA_MACGG Hemoglobin subunit alpha-1/2 OS=Macrod
- 6.3e-52 180.5 0.3 7e-52 180.3 0.2 1.0 1 sp|P18975|HBA_PANLE Hemoglobin subunit alpha OS=Panthera l
- 6.5e-52 180.4 0.5 7.2e-52 180.3 0.4 1.0 1 sp|P01972|HBA_ODOVI Hemoglobin subunit alpha-1/2 OS=Odocoi
- 8.6e-52 180.0 0.4 9.4e-52 179.9 0.3 1.0 1 sp|P02125|HBB_CICCI Hemoglobin subunit beta OS=Ciconia cic
- 8.8e-52 180.0 0.1 9.7e-52 179.9 0.0 1.0 1 sp|P02126|HBB_STUVU Hemoglobin subunit beta OS=Sturnus vul
- 9.3e-52 179.9 0.2 1e-51 179.8 0.1 1.0 1 sp|P17689|HBA_MARFO Hemoglobin subunit alpha OS=Martes foi
- 9.6e-52 179.9 0.3 1.1e-51 179.7 0.2 1.0 1 sp|P02105|HBE2_CAPHI Hemoglobin subunit epsilon-2 OS=Capra
- 1e-51 179.8 0.3 1.2e-51 179.6 0.2 1.0 1 sp|P06643|HBE4_BOVIN Hemoglobin subunit epsilon-4 OS=Bos ta
- 1.2e-51 179.6 0.7 1.3e-51 179.4 0.5 1.0 1 sp|P18971|HBA_BALAC Hemoglobin subunit alpha OS=Balaenopte
- 1.2e-51 179.5 0.2 1.4e-51 179.4 0.2 1.0 1 sp|P01948|HBA_RABIT Hemoglobin subunit alpha-1/2 OS=Orycto
- 1.2e-51 179.5 0.1 1.4e-51 179.4 0.1 1.0 1 sp|P10778|HBA_ODORO Hemoglobin subunit alpha OS=Odobenus r
- 1.3e-51 179.4 0.0 1.5e-51 179.3 0.0 1.0 1 sp|P68256|HBG1_CEBAP Hemoglobin subunit gamma-1 OS=Cebus ap
- 1.3e-51 179.4 0.0 1.5e-51 179.3 0.0 1.0 1 sp|Q28221|HBG1_CEBAL Hemoglobin subunit gamma-1 OS=Cebus al
- 1.3e-51 179.4 1.0 1.5e-51 179.3 0.7 1.0 1 sp|P01964|HBA_DASNO Hemoglobin subunit alpha OS=Dasypus no
- 1.4e-51 179.4 0.0 1.5e-51 179.2 0.0 1.0 1 sp|P21668|HBB_PSIKR Hemoglobin subunit beta OS=Psittacula
- 1.6e-51 179.2 0.1 1.8e-51 179.0 0.1 1.0 1 sp|P15448|HBA_MELCA Hemoglobin subunit alpha OS=Mellivora
- 1.7e-51 179.1 0.0 1.9e-51 179.0 0.0 1.0 1 sp|P68257|HBG2_CEBAP Hemoglobin subunit gamma-2 OS=Cebus ap
- 1.7e-51 179.1 0.0 1.9e-51 179.0 0.0 1.0 1 sp|P68258|HBG2_CEBAL Hemoglobin subunit gamma-2 OS=Cebus al
- 1.7e-51 179.1 0.0 1.9e-51 178.9 0.0 1.0 1 sp|P02115|HBB_ANAPP Hemoglobin subunit beta OS=Anas platyr
- 1.9e-51 178.9 0.0 2.1e-51 178.8 0.0 1.0 1 sp|P22742|HBB_FRAPO Hemoglobin subunit beta OS=Francolinus
- 1.9e-51 178.9 0.1 2.1e-51 178.8 0.0 1.0 1 sp|P02118|HBB_ANSIN Hemoglobin subunit beta OS=Anser indic
- 2.1e-51 178.8 0.1 2.3e-51 178.7 0.0 1.0 1 sp|P30893|HBB_COTJA Hemoglobin subunit beta OS=Coturnix co
- 2.1e-51 178.8 0.1 2.3e-51 178.6 0.1 1.0 1 sp|P18969|HBA_AILFU Hemoglobin subunit alpha OS=Ailurus fu
- 2.1e-51 178.7 0.0 2.4e-51 178.6 0.0 1.0 1 sp|P10058|HBB_EUDCR Hemoglobin subunit beta OS=Eudyptes cr
- 2.3e-51 178.6 0.4 2.6e-51 178.5 0.3 1.0 1 sp|P24292|HBB_ECHTE Hemoglobin subunit beta OS=Echinops te
- 2.4e-51 178.6 0.1 2.6e-51 178.5 0.0 1.0 1 sp|P07036|HBB_CHLME Hemoglobin subunit beta OS=Chloephaga
- 2.4e-51 178.6 0.2 2.6e-51 178.4 0.2 1.0 1 sp|P02107|HBB_MACRU Hemoglobin subunit beta OS=Macropus ru
- 2.4e-51 178.6 0.4 2.7e-51 178.4 0.3 1.0 1 sp|Q6H1U7|HBB_MACEU Hemoglobin subunit beta OS=Macropus eu
- 2.5e-51 178.5 0.1 2.7e-51 178.4 0.1 1.0 1 sp|P60529|HBA_CANFA Hemoglobin subunit alpha OS=Canis fami
- 2.6e-51 178.5 0.1 2.8e-51 178.3 0.1 1.0 1 sp|P02127|HBRH_CHICK Hemoglobin subunit rho OS=Gallus gallu
- 2.9e-51 178.3 0.0 3.2e-51 178.2 0.0 1.0 1 sp|Q45XH5|HBG_DUGDU Hemoglobin subunit gamma OS=Dugong dug
- 3e-51 178.3 0.4 3.3e-51 178.1 0.3 1.0 1 sp|P02106|HBB_MACGI Hemoglobin subunit beta OS=Macropus gi
- 3.1e-51 178.2 0.0 3.4e-51 178.1 0.0 1.0 1 sp|P07406|HBB_PASMO Hemoglobin subunit beta OS=Passer mont
- 3.2e-51 178.2 1.5 3.5e-51 178.0 1.0 1.0 1 sp|P02199|MYG_APTFO Myoglobin OS=Aptenodytes forsteri GN=M
- 3.3e-51 178.2 0.1 3.6e-51 178.0 0.1 1.0 1 sp|P08261|HBB_LARRI Hemoglobin subunit beta/beta' OS=Larus
- 3.3e-51 178.1 0.1 3.7e-51 178.0 0.1 1.0 1 sp|P02121|HBB_PHORU Hemoglobin subunit beta OS=Phoenicopte
- 3.5e-51 178.0 0.1 3.9e-51 177.9 0.1 1.0 1 sp|P60530|HBA_CANLA Hemoglobin subunit alpha OS=Canis latr
- 3.6e-51 178.0 0.1 4e-51 177.9 0.0 1.0 1 sp|P02112|HBB_CHICK Hemoglobin subunit beta OS=Gallus gall
- 3.7e-51 178.0 0.1 4e-51 177.9 0.0 1.0 1 sp|P68944|HBB_BRACA Hemoglobin subunit beta OS=Branta cana
- 3.7e-51 178.0 0.1 4e-51 177.9 0.0 1.0 1 sp|P68945|HBB_CYGOL Hemoglobin subunit beta OS=Cygnus olor
- 3.7e-51 178.0 0.1 4.1e-51 177.8 0.0 1.0 1 sp|P02117|HBB_ANSAN Hemoglobin subunit beta OS=Anser anser
- 3.7e-51 178.0 0.0 4.1e-51 177.8 0.0 1.0 1 sp|P68068|HBG_ATEGE Hemoglobin subunit gamma OS=Ateles geo
- 3.7e-51 178.0 0.0 4.1e-51 177.8 0.0 1.0 1 sp|P68069|HBG_ATEPA Hemoglobin subunit gamma OS=Ateles pan
- 3.7e-51 178.0 0.0 4.1e-51 177.8 0.0 1.0 1 sp|P68070|HBG_LAGLA Hemoglobin subunit gamma OS=Lagothrix
- 3.7e-51 178.0 0.0 4.1e-51 177.8 0.0 1.0 1 sp|P68071|HBG_BRAAR Hemoglobin subunit gamma OS=Brachytele
- 4.1e-51 177.8 0.1 4.5e-51 177.7 0.0 1.0 1 sp|P07411|HBB_VULGR Hemoglobin subunit beta OS=Vultur gryp
- 4.2e-51 177.8 0.0 4.6e-51 177.7 0.0 1.0 1 sp|P02113|HBB_PHACO Hemoglobin subunit beta OS=Phasianus c
- 4.7e-51 177.6 0.1 5.2e-51 177.5 0.1 1.0 1 sp|P21200|HBA_VULVU Hemoglobin subunit alpha OS=Vulpes vul
- 4.8e-51 177.6 0.1 5.2e-51 177.5 0.0 1.0 1 sp|P82113|HBB_CATMA Hemoglobin subunit beta OS=Catharacta
- 5e-51 177.5 0.0 5.6e-51 177.4 0.0 1.0 1 sp|P68030|HBG_ALOBE Hemoglobin subunit gamma OS=Alouatta b
- 5e-51 177.5 0.0 5.6e-51 177.4 0.0 1.0 1 sp|P68031|HBG_ALOCA Hemoglobin subunit gamma OS=Alouatta c
- 5.1e-51 177.5 0.1 5.7e-51 177.4 0.0 1.0 1 sp|P14260|HBB_CAIMO Hemoglobin subunit beta OS=Cairina mos
- 5.1e-51 177.5 0.0 5.7e-51 177.4 0.0 1.0 1 sp|Q9GJS7|HBG_CALJA Hemoglobin subunit gamma OS=Callithrix
- 5.2e-51 177.5 1.0 5.8e-51 177.3 0.7 1.0 1 sp|Q7M3B8|HBA1_HAPGR Hemoglobin subunit alpha-1 OS=Hapalemu
- 5.4e-51 177.5 0.1 5.9e-51 177.3 0.1 1.0 1 sp|P60523|HBA_CHRBR Hemoglobin subunit alpha OS=Chrysocyon
- 5.4e-51 177.5 0.0 5.9e-51 177.3 0.0 1.0 1 sp|P02116|HBB_ARAAR Hemoglobin subunit beta OS=Ara araraun
- 5.7e-51 177.4 0.9 6.3e-51 177.2 0.6 1.0 1 sp|P63105|HBA_CAMBA Hemoglobin subunit alpha OS=Camelus ba
- 5.7e-51 177.4 0.9 6.3e-51 177.2 0.6 1.0 1 sp|P63106|HBA_CAMDR Hemoglobin subunit alpha OS=Camelus dr
- 5.7e-51 177.4 2.7 6.4e-51 177.2 1.8 1.0 1 sp|P02200|MYG_ALLMI Myoglobin OS=Alligator mississippiensi
- 6e-51 177.3 0.0 6.7e-51 177.1 0.0 1.0 1 sp|P07414|HBA_TRIIN Hemoglobin subunit alpha OS=Trichechus
- 6.2e-51 177.3 0.0 6.7e-51 177.1 0.0 1.0 1 sp|P14524|HBB_TURME Hemoglobin subunit beta OS=Turdus meru
- 6.5e-51 177.2 0.1 7.2e-51 177.0 0.1 1.0 1 sp|Q45XI4|HBD_DENDR Hemoglobin subunit deltaH OS=Dendrohyr
- 6.8e-51 177.1 0.1 7.5e-51 177.0 0.0 1.0 1 sp|P84792|HBB_AYTFU Hemoglobin subunit beta OS=Aythya fuli
- 7.3e-51 177.0 1.9 8e-51 176.9 1.3 1.0 1 sp|P0C0U8|HBB1_DRYCE Hemoglobin subunit beta-1 OS=Drymarcho
- 8.9e-51 176.7 0.7 9.9e-51 176.6 0.5 1.0 1 sp|P19645|HBA_PAGLA Hemoglobin subunit alpha OS=Paguma lar
- 9e-51 176.7 0.1 1e-50 176.6 0.1 1.0 1 sp|O13071|HBE_CALGE Hemoglobin subunit epsilon (Fragment)
- 9.3e-51 176.7 0.0 1e-50 176.5 0.0 1.0 1 sp|Q45XI5|HBD_HETBR Hemoglobin subunit deltaH OS=Heterohyr
- 9.4e-51 176.7 1.0 1e-50 176.5 0.7 1.0 1 sp|P07419|HBA_DASVI Hemoglobin subunit alpha OS=Dasyurus v
- 9.6e-51 176.6 0.1 1.2e-50 176.3 0.1 1.1 1 sp|P09967|GLB1_PETMA Globin-1 OS=Petromyzon marinus PE=1 SV
- 9.8e-51 176.6 0.1 1.1e-50 176.5 0.0 1.0 1 sp|P02114|HBB_ANAPL Hemoglobin subunit beta OS=Anas platyr
- 1e-50 176.6 0.3 1.1e-50 176.4 0.2 1.0 1 sp|P18978|HBA_TURTR Hemoglobin subunit alpha OS=Tursiops t
- 1e-50 176.5 0.2 1.1e-50 176.4 0.1 1.0 1 sp|P10782|HBB_PHACA Hemoglobin subunit beta OS=Phalacrocor
- 1.2e-50 176.4 0.1 1.3e-50 176.2 0.1 1.0 1 sp|P15163|HBA_LEPWE Hemoglobin subunit alpha-1/2 OS=Lepton
- 1.3e-50 176.2 0.9 1.5e-50 176.0 0.6 1.0 1 sp|P23019|HBA_PROCR Hemoglobin subunit alpha OS=Proteles c
- 1.4e-50 176.1 0.1 1.5e-50 176.0 0.0 1.0 1 sp|P02124|HBB_RHEAM Hemoglobin subunit beta OS=Rhea americ
- 1.6e-50 175.9 0.0 1.8e-50 175.7 0.0 1.0 1 sp|P02123|HBB_STRCA Hemoglobin subunit beta OS=Struthio ca
- 1.8e-50 175.8 0.0 1.9e-50 175.6 0.0 1.0 1 sp|Q27940|HBG_AOTAZ Hemoglobin subunit gamma OS=Aotus azar
- 1.8e-50 175.7 0.0 2e-50 175.6 0.0 1.0 1 sp|P02120|HBB_ANSSE Hemoglobin subunit beta OS=Anseranas s
- 2.2e-50 175.5 0.3 2.4e-50 175.3 0.2 1.0 1 sp|P02203|MYG_VARVA Myoglobin OS=Varanus varius GN=MB PE=1
- 2.2e-50 175.4 0.0 2.5e-50 175.3 0.0 1.0 1 sp|P68061|HBB_AEGMO Hemoglobin subunit beta OS=Aegypius mo
- 2.2e-50 175.4 0.0 2.5e-50 175.3 0.0 1.0 1 sp|P68062|HBB_TRIOC Hemoglobin subunit beta OS=Trigonoceps
- 2.2e-50 175.4 0.0 2.5e-50 175.3 0.0 1.0 1 sp|P68063|HBB_GYPRU Hemoglobin subunit beta OS=Gyps rueppe
- 2.4e-50 175.3 0.1 2.6e-50 175.2 0.1 1.0 1 sp|P08851|HBB_ACCGE Hemoglobin subunit beta OS=Accipiter g
- 2.5e-50 175.3 0.4 2.8e-50 175.1 0.3 1.0 1 sp|P01957|HBA_PROHA Hemoglobin subunit alpha OS=Procavia c
- 2.5e-50 175.3 0.0 2.8e-50 175.1 0.0 1.0 1 sp|Q9GLX4|HBG1_CALMO Hemoglobin subunit gamma-1 OS=Calliceb
- 2.6e-50 175.2 0.1 2.8e-50 175.1 0.1 1.0 1 sp|P02128|HBE_CHICK Hemoglobin subunit epsilon OS=Gallus g
- 2.9e-50 175.1 0.1 3.2e-50 174.9 0.1 1.0 1 sp|P01949|HBA_ERIEU Hemoglobin subunit alpha OS=Erinaceus
- 3.5e-50 174.8 1.4 3.8e-50 174.7 1.0 1.0 1 sp|P01979|HBA_ORNAN Hemoglobin subunit alpha OS=Ornithorhy
- 3.6e-50 174.8 0.1 4e-50 174.6 0.1 1.0 1 sp|P18977|HBA_PROLO Hemoglobin subunit alpha OS=Procyon lo
- 3.6e-50 174.8 0.6 4e-50 174.6 0.4 1.0 1 sp|P01973|HBA_LAMGL Hemoglobin subunit alpha OS=Lama glama
- 3.8e-50 174.7 0.9 4.2e-50 174.6 0.6 1.0 1 sp|P67815|HBA_LAMGU Hemoglobin subunit alpha OS=Lama guani
- 3.8e-50 174.7 0.9 4.2e-50 174.6 0.6 1.0 1 sp|P67816|HBA_LAMPA Hemoglobin subunit alpha OS=Lama guani
- 4.9e-50 174.3 0.1 5.4e-50 174.2 0.1 1.0 1 sp|P02108|HBB_POTTR Hemoglobin subunit beta OS=Potorous tr
- 4.9e-50 174.3 0.4 5.4e-50 174.2 0.3 1.0 1 sp|P83123|HBB_GEONI Hemoglobin subunit beta OS=Geochelone
- 5e-50 174.3 0.1 5.6e-50 174.2 0.1 1.0 1 sp|P02109|HBB_DIDMA Hemoglobin subunit beta-M OS=Didelphis
- 5.1e-50 174.3 0.1 5.6e-50 174.2 0.0 1.0 1 sp|P02122|HBB_AQUCH Hemoglobin subunit beta OS=Aquila chry
- 6.1e-50 174.0 2.2 6.7e-50 173.9 1.5 1.0 1 sp|P01977|HBA1_TACAC Hemoglobin subunit alpha-1 OS=Tachyglo
- 6.2e-50 174.0 0.9 6.8e-50 173.9 0.7 1.0 1 sp|P07425|HBA_LAMVI Hemoglobin subunit alpha OS=Lama vicug
- 7.5e-50 173.7 1.2 8.3e-50 173.6 0.8 1.0 1 sp|P01978|HBA2_TACAC Hemoglobin subunit alpha-2 OS=Tachyglo
- 8e-50 173.6 0.2 8.9e-50 173.5 0.1 1.0 1 sp|P04444|HBBZ_MOUSE Hemoglobin subunit beta-H1 OS=Mus musc
- 9e-50 173.5 0.4 9.9e-50 173.3 0.3 1.0 1 sp|P22743|HBB2_NAJNA Hemoglobin subunit beta-2 OS=Naja naja
- 1e-49 173.3 0.5 1.1e-49 173.2 0.3 1.0 1 sp|P01954|HBA_ELEMA Hemoglobin subunit alpha OS=Elephas ma
- 1.1e-49 173.2 1.2 1.2e-49 173.1 0.8 1.0 1 sp|P13274|HBB_CHRPI Hemoglobin subunit beta OS=Chrysemys p
- 1.4e-49 172.8 0.2 1.6e-49 172.7 0.1 1.0 1 sp|P29626|HBBY_MESAU Hemoglobin subunit beta-Y OS=Mesocrice
- 1.5e-49 172.8 0.0 1.6e-49 172.6 0.0 1.0 1 sp|P56285|HBG_ALOSE Hemoglobin subunit gamma OS=Alouatta s
- 1.5e-49 172.8 0.0 1.6e-49 172.6 0.0 1.0 1 sp|Q45XI6|HBD_PROCA Hemoglobin subunit deltaH OS=Procavia
- 1.6e-49 172.7 0.5 1.8e-49 172.5 0.3 1.0 1 sp|Q98905|HBB_GEOCR Hemoglobin subunit beta OS=Geochelone
- 2.7e-49 171.9 0.4 3e-49 171.8 0.3 1.0 1 sp|P01955|HBA_LOXAF Hemoglobin subunit alpha OS=Loxodonta
- 3.3e-49 171.7 0.4 3.6e-49 171.5 0.3 1.0 1 sp|P02080|HBBN_AMMLE Hemoglobin subunit beta-C(NA) OS=Ammot
- 3.3e-49 171.6 0.6 3.7e-49 171.5 0.4 1.0 1 sp|P01975|HBA_MACGI Hemoglobin subunit alpha OS=Macropus g
- 4.2e-49 171.3 0.2 4.6e-49 171.2 0.1 1.0 1 sp|P18987|HBB1_IGUIG Hemoglobin subunit beta-1 OS=Iguana ig
- 4.3e-49 171.3 0.6 4.8e-49 171.1 0.4 1.0 1 sp|P18973|HBA_CROCR Hemoglobin subunit alpha OS=Crocuta cr
- 4.7e-49 171.1 0.1 5.2e-49 171.0 0.1 1.0 1 sp|P10061|HBB2_SPHPU Hemoglobin subunit beta-2 OS=Sphenodon
- 5.1e-49 171.0 0.2 5.7e-49 170.9 0.1 1.0 1 sp|P06642|HBE2_BOVIN Hemoglobin subunit epsilon-2 OS=Bos ta
- 5.3e-49 171.0 0.4 5.9e-49 170.8 0.3 1.0 1 sp|P04443|HBB0_MOUSE Hemoglobin subunit beta-H0 OS=Mus musc
- 5.6e-49 170.9 0.1 6.2e-49 170.8 0.0 1.0 1 sp|Q45XH6|HBG_TRIMA Hemoglobin subunit gamma OS=Trichechus
- 6.1e-49 170.8 0.6 6.6e-49 170.7 0.4 1.0 1 sp|P83133|HBB_ALDEL Hemoglobin A/D subunit beta OS=Aldabra
- 6.1e-49 170.8 0.1 7.7e-49 170.5 0.1 1.1 1 sp|P21198|GLB2_MORMR Globin-2 OS=Mordacia mordax PE=1 SV=2
- 8.2e-49 170.4 0.4 9e-49 170.2 0.3 1.0 1 sp|P81043|HBA_MACEU Hemoglobin subunit alpha OS=Macropus e
- 8.6e-49 170.3 0.2 9.6e-49 170.1 0.1 1.0 1 sp|P14525|HBA_BRATR Hemoglobin subunit alpha OS=Bradypus t
- 9.6e-49 170.1 0.1 1.2e-48 169.8 0.1 1.1 1 sp|P21197|GLB1_MORMR Globin-1 OS=Mordacia mordax PE=1 SV=2
- 1.9e-48 169.1 0.2 2.1e-48 169.0 0.1 1.0 1 sp|P15165|HBB_APUAP Hemoglobin subunit beta OS=Apus apus G
- 2e-48 169.1 0.4 2.2e-48 169.0 0.3 1.0 1 sp|P18436|HBG_TARSY Hemoglobin subunit gamma OS=Tarsius sy
- 2.1e-48 169.0 1.2 2.3e-48 168.9 0.8 1.0 1 sp|P10059|HBA_SPHPU Hemoglobin subunit alpha-A OS=Sphenodo
- 2.4e-48 168.9 0.4 2.6e-48 168.7 0.3 1.0 1 sp|P41332|HBB_MICGA Hemoglobin subunit beta OS=Microcephal
- 3e-48 168.6 0.2 3.3e-48 168.4 0.1 1.0 1 sp|P01946|HBA_RAT Hemoglobin subunit alpha-1/2 OS=Rattus
- 3e-48 168.5 1.2 3.3e-48 168.4 0.8 1.0 1 sp|P19014|HBA_CRIGA Hemoglobin subunit alpha OS=Cricetomys
- 5e-48 167.8 0.6 5.9e-48 167.6 0.4 1.0 1 sp|P21199|GLB3_MORMR Globin-3 OS=Mordacia mordax PE=1 SV=2
- 5.4e-48 167.7 0.3 6e-48 167.6 0.2 1.0 1 sp|P81024|HBAD_MELGA Hemoglobin subunit alpha-D OS=Meleagri
- 7.4e-48 167.3 0.1 8.2e-48 167.1 0.1 1.0 1 sp|Q9XSN2|HBA1_EQUGR Hemoglobin subunit alpha-1 OS=Equus gr
- 7.5e-48 167.2 0.6 8.3e-48 167.1 0.4 1.0 1 sp|Q9DF25|HBAD_GEOCR Hemoglobin subunit alpha-D OS=Geochelo
- 8.2e-48 167.1 0.2 9e-48 167.0 0.2 1.0 1 sp|P01998|HBA_CRONI Hemoglobin subunit alpha OS=Crocodylus
- 1.7e-47 166.1 0.3 1.9e-47 165.9 0.2 1.0 1 sp|P08849|HBAD_ACCGE Hemoglobin subunit alpha-D OS=Accipite
- 1.7e-47 166.1 1.1 1.9e-47 165.9 0.7 1.0 1 sp|Q10732|HBA_CARCR Hemoglobin subunit alpha-A OS=Caretta
- 2e-47 165.8 0.0 2.2e-47 165.7 0.0 1.0 1 sp|P02007|HBPI_CHICK Hemoglobin subunit pi OS=Gallus gallus
- 2.1e-47 165.8 0.3 2.3e-47 165.7 0.2 1.0 1 sp|P13787|HBAZ_HORSE Hemoglobin subunit zeta OS=Equus cabal
- 2.7e-47 165.5 0.0 3e-47 165.3 0.0 1.0 1 sp|P24291|HBA_ECHTE Hemoglobin subunit alpha OS=Echinops t
- 2.7e-47 165.5 0.7 3e-47 165.3 0.5 1.0 1 sp|P02076|HBB_OVIMU Hemoglobin subunit beta OS=Ovis orient
- 2.7e-47 165.4 0.7 3e-47 165.3 0.5 1.0 1 sp|P83134|HBAD_ALDEL Hemoglobin D subunit alpha OS=Aldabrac
- 2.8e-47 165.4 0.3 3.1e-47 165.2 0.2 1.0 1 sp|P02001|HBAD_CHICK Hemoglobin subunit alpha-D OS=Gallus g
- 2.9e-47 165.4 0.5 3.2e-47 165.2 0.4 1.0 1 sp|P11751|HBA_MEGLY Hemoglobin subunit alpha OS=Megaderma
- 3.8e-47 164.9 0.1 4.2e-47 164.8 0.1 1.0 1 sp|P18993|HBB1_VAREX Hemoglobin subunit beta-1 OS=Varanus e
- 5.8e-47 164.4 0.2 6.4e-47 164.2 0.1 1.0 1 sp|P68059|HBAD_AEGMO Hemoglobin subunit alpha-D OS=Aegypius
- 5.8e-47 164.4 0.2 6.4e-47 164.2 0.1 1.0 1 sp|P68060|HBAD_TRIOC Hemoglobin subunit alpha-D OS=Trigonoc
- 5.9e-47 164.3 0.2 6.5e-47 164.2 0.1 1.0 1 sp|P04242|HBAD_STRCA Hemoglobin subunit alpha-D OS=Struthio
- 6.7e-47 164.2 0.2 7.4e-47 164.0 0.1 1.0 1 sp|P02008|HBAZ_HUMAN Hemoglobin subunit zeta OS=Homo sapien
- 6.9e-47 164.1 0.0 7.6e-47 164.0 0.0 1.0 1 sp|P04243|HBPI_CAIMO Hemoglobin subunit pi OS=Cairina mosch
- 7.9e-47 163.9 1.3 8.7e-47 163.8 0.9 1.0 1 sp|P13273|HBA_CHRPI Hemoglobin subunit alpha-A OS=Chrysemy
- 9.3e-47 163.7 0.3 1e-46 163.6 0.2 1.0 1 sp|P83124|HBAD_GEONI Hemoglobin subunit alpha-D OS=Geochelo
- 9.3e-47 163.7 1.2 1e-46 163.6 0.8 1.0 1 sp|P06638|HBA5_XENLA Hemoglobin subunit alpha-5 OS=Xenopus
- 1e-46 163.6 0.2 1.1e-46 163.4 0.2 1.0 1 sp|P02000|HBA_CAICR Hemoglobin subunit alpha OS=Caiman cro
- 1.1e-46 163.5 0.3 1.2e-46 163.4 0.2 1.0 1 sp|P04241|HBAD_RHEAM Hemoglobin subunit alpha-D OS=Rhea ame
- 1.4e-46 163.1 1.4 1.6e-46 162.9 1.0 1.0 1 sp|P01986|HBA_ANAPL Hemoglobin subunit alpha-A OS=Anas pla
- 1.5e-46 163.0 1.0 1.7e-46 162.8 0.7 1.0 1 sp|P01989|HBA_ANSAN Hemoglobin subunit alpha-A OS=Anser an
- 1.6e-46 162.9 0.2 1.8e-46 162.8 0.1 1.0 1 sp|P08257|HBAD_GYPRU Hemoglobin subunit alpha-D/D' OS=Gyps
- 1.6e-46 162.9 1.3 1.8e-46 162.8 0.9 1.0 1 sp|P01988|HBA_ANAPP Hemoglobin subunit alpha-A OS=Anas pla
- 1.7e-46 162.8 0.4 1.9e-46 162.7 0.3 1.0 1 sp|P02002|HBAD_PHACO Hemoglobin subunit alpha-D OS=Phasianu
- 1.8e-46 162.8 0.5 2e-46 162.6 0.4 1.0 1 sp|P01993|HBA_AQUCH Hemoglobin subunit alpha-A OS=Aquila c
- 1.8e-46 162.7 0.4 2e-46 162.6 0.3 1.0 1 sp|P84791|HBAD_AYTFU Hemoglobin subunit alpha-D OS=Aythya f
- 2.3e-46 162.4 0.2 2.6e-46 162.3 0.1 1.0 1 sp|P06347|HBAZ_PANTR Hemoglobin subunit zeta OS=Pan troglod
- 2.4e-46 162.4 1.2 2.7e-46 162.2 0.8 1.0 1 sp|P22740|HBA_ANAPE Hemoglobin subunit alpha-A OS=Anas pen
- 2.4e-46 162.3 0.4 2.7e-46 162.2 0.3 1.0 1 sp|P82112|HBA2_CATMA Hemoglobin subunit alpha-2 OS=Catharac
- 2.7e-46 162.2 1.0 3e-46 162.0 0.7 1.0 1 sp|P01991|HBA_BRACA Hemoglobin subunit alpha-A OS=Branta c
- 2.8e-46 162.2 1.3 3.1e-46 162.0 0.9 1.0 1 sp|P01987|HBA_CAIMO Hemoglobin subunit alpha-A OS=Cairina
- 3.1e-46 162.0 2.0 3.4e-46 161.9 1.4 1.0 1 sp|P01990|HBA_ANSIN Hemoglobin subunit alpha-A OS=Anser in
- 3.4e-46 161.9 0.5 3.7e-46 161.7 0.3 1.0 1 sp|P22741|HBA_FRAPO Hemoglobin subunit alpha-A OS=Francoli
- 3.9e-46 161.7 0.2 4.3e-46 161.5 0.1 1.0 1 sp|P83135|HBAA_GEONI Hemoglobin subunit alpha-A OS=Geochelo
- 4.2e-46 161.6 0.6 4.6e-46 161.4 0.4 1.0 1 sp|P04442|HBAD_ANAPL Hemoglobin subunit alpha-D OS=Anas pla
- 4.2e-46 161.6 0.1 4.6e-46 161.4 0.1 1.0 1 sp|P83132|HBA2_ALDEL Hemoglobin A subunit alpha-2 OS=Aldabr
- 4.3e-46 161.5 2.7 4.7e-46 161.4 1.9 1.0 1 sp|P02005|HBAD_CHRPI Hemoglobin subunit alpha-D OS=Chrysemy
- 5.1e-46 161.3 0.4 5.6e-46 161.2 0.3 1.0 1 sp|P01995|HBA_PHACO Hemoglobin subunit alpha-A OS=Phasianu
- 6.6e-46 160.9 1.0 7.3e-46 160.8 0.7 1.0 1 sp|P10057|HBA_EUDCR Hemoglobin subunit alpha OS=Eudyptes c
- 7.4e-46 160.8 0.5 8.2e-46 160.6 0.4 1.0 1 sp|P84790|HBA_AYTFU Hemoglobin subunit alpha-A OS=Aythya f
- 8.2e-46 160.6 3.2 9.1e-46 160.5 2.2 1.0 1 sp|P02006|HBAD_PHRHI Hemoglobin subunit alpha-D OS=Phrynops
- 8.3e-46 160.6 0.3 9.2e-46 160.5 0.2 1.0 1 sp|P08850|HBA_ACCGE Hemoglobin subunit alpha-A OS=Accipite
- 9.3e-46 160.5 0.2 1e-45 160.3 0.1 1.0 1 sp|P83131|HBA1_ALDEL Hemoglobin A subunit alpha-1 OS=Aldabr
- 1e-45 160.4 0.4 1.1e-45 160.2 0.2 1.0 1 sp|P30892|HBAD_COTJA Hemoglobin subunit alpha-D OS=Coturnix
- 1e-45 160.3 0.6 1.1e-45 160.2 0.4 1.0 1 sp|P02003|HBAD_CAIMO Hemoglobin subunit alpha-D OS=Cairina
- 1e-45 160.3 0.5 1.1e-45 160.2 0.3 1.0 1 sp|P01981|HBA_STRCA Hemoglobin subunit alpha-A OS=Struthio
- 1.1e-45 160.2 0.6 1.3e-45 160.0 0.4 1.0 1 sp|P10060|HBB1_SPHPU Hemoglobin subunit beta-1 OS=Sphenodon
- 1.4e-45 159.9 1.2 1.5e-45 159.8 0.8 1.0 1 sp|P01980|HBA_APTFO Hemoglobin subunit alpha OS=Aptenodyte
- 1.5e-45 159.8 0.7 1.6e-45 159.7 0.5 1.0 1 sp|P01947|HBA_CAVPO Hemoglobin subunit alpha OS=Cavia porc
- 1.6e-45 159.6 0.5 1.8e-45 159.5 0.3 1.0 1 sp|P01983|HBA_CICCI Hemoglobin subunit alpha-A OS=Ciconia
- 1.7e-45 159.6 0.2 1.8e-45 159.5 0.1 1.0 1 sp|P13786|HBAZ_CAPHI Hemoglobin subunit zeta OS=Capra hircu
- 1.8e-45 159.5 1.0 2e-45 159.4 0.7 1.0 1 sp|P01992|HBA_CYGOL Hemoglobin subunit alpha-A OS=Cygnus o
- 1.8e-45 159.5 0.5 2e-45 159.4 0.4 1.0 1 sp|P01999|HBA_ALLMI Hemoglobin subunit alpha OS=Alligator
- 1.9e-45 159.4 0.8 2.1e-45 159.3 0.6 1.0 1 sp|P24589|HBA_COTJA Hemoglobin subunit alpha-A OS=Coturnix
- 2.1e-45 159.3 0.2 2.4e-45 159.1 0.1 1.0 1 sp|P02009|HBAZ_PIG Hemoglobin subunit zeta OS=Sus scrofa
- 2.7e-45 158.9 0.2 3e-45 158.8 0.2 1.0 1 sp|P02129|HBB_CRONI Hemoglobin subunit beta OS=Crocodylus
- 3e-45 158.8 1.0 3.4e-45 158.6 0.7 1.0 1 sp|P02137|HBBL_XENLA Hemoglobin larval subunit beta-1 OS=Xe
- 3.3e-45 158.7 0.4 3.7e-45 158.5 0.3 1.0 1 sp|P08256|HBA_GYPRU Hemoglobin subunit alpha-A/A' OS=Gyps
- 3.7e-45 158.5 1.4 4.1e-45 158.3 1.0 1.0 1 sp|P07034|HBA_CHLME Hemoglobin subunit alpha-A OS=Chloepha
- 4.4e-45 158.3 0.4 4.9e-45 158.1 0.3 1.0 1 sp|P07417|HBA_AEGMO Hemoglobin subunit alpha-A OS=Aegypius
- 5.6e-45 157.9 1.7 6.2e-45 157.8 1.2 1.0 1 sp|P10780|HBA_PHACA Hemoglobin subunit alpha-A OS=Phalacro
- 5.6e-45 157.9 0.1 6.2e-45 157.8 0.0 1.0 1 sp|P07413|HBAD_PASMO Hemoglobin subunit alpha-D OS=Passer m
- 6.3e-45 157.8 0.6 6.9e-45 157.6 0.4 1.0 1 sp|P01985|HBA_ANSSE Hemoglobin subunit alpha-A OS=Anserana
- 6.3e-45 157.8 0.2 7e-45 157.6 0.1 1.0 1 sp|O12985|HBAD_COLLI Hemoglobin subunit alpha-D OS=Columba
- 6.5e-45 157.7 0.4 7.2e-45 157.6 0.3 1.0 1 sp|P01994|HBA_CHICK Hemoglobin subunit alpha-A OS=Gallus g
- 6.6e-45 157.7 0.6 7.4e-45 157.5 0.4 1.0 1 sp|P04239|HBAD_ANSIN Hemoglobin subunit alpha-D OS=Anser in
- 7.6e-45 157.5 0.6 8.5e-45 157.3 0.4 1.0 1 sp|P04238|HBAD_ANSAN Hemoglobin subunit alpha-D OS=Anser an
- 7.9e-45 157.4 0.3 8.7e-45 157.3 0.2 1.0 1 sp|P10781|HBAD_PHACA Hemoglobin subunit alpha-D OS=Phalacro
- 8.6e-45 157.3 0.8 9.5e-45 157.2 0.5 1.0 1 sp|P04240|HBAD_BRACA Hemoglobin subunit alpha-D OS=Branta c
- 9.1e-45 157.2 0.2 1e-44 157.1 0.1 1.0 1 sp|P15164|HBAD_APUAP Hemoglobin subunit alpha-D OS=Apus apu
- 1.1e-44 157.0 0.4 1.2e-44 156.8 0.3 1.0 1 sp|P07035|HBAD_CHLME Hemoglobin subunit alpha-D OS=Chloepha
- 1.2e-44 156.9 0.3 1.3e-44 156.7 0.2 1.0 1 sp|P08260|HBA_LARRI Hemoglobin subunit alpha-A OS=Larus ri
- 1.2e-44 156.8 0.4 1.4e-44 156.7 0.3 1.0 1 sp|P19832|HBA_TRIOC Hemoglobin subunit alpha-A OS=Trigonoc
- 1.2e-44 156.8 0.4 1.4e-44 156.7 0.3 1.0 1 sp|P81023|HBA_MELGA Hemoglobin subunit alpha-A OS=Meleagri
- 1.4e-44 156.6 0.5 1.6e-44 156.4 0.3 1.0 1 sp|Q8HY34|HBA_MONDO Hemoglobin subunit alpha OS=Monodelphi
- 1.5e-44 156.6 0.2 1.6e-44 156.4 0.2 1.0 1 sp|P82111|HBA1_CATMA Hemoglobin subunit alpha-1 OS=Catharac
- 1.8e-44 156.3 0.3 2e-44 156.2 0.2 1.0 1 sp|P21871|HBA_COLLI Hemoglobin subunit alpha-A OS=Columba
- 1.9e-44 156.2 2.4 2.1e-44 156.1 1.7 1.0 1 sp|P02130|HBB_ALLMI Hemoglobin subunit beta OS=Alligator m
- 2.1e-44 156.1 1.8 2.3e-44 156.0 1.2 1.0 1 sp|P02131|HBB_CAICR Hemoglobin subunit beta OS=Caiman croc
- 2.3e-44 155.9 0.3 2.5e-44 155.8 0.2 1.0 1 sp|P02136|HBB3_RANCA Hemoglobin subunit beta-3 OS=Rana cate
- 2.3e-44 155.9 0.8 2.6e-44 155.8 0.5 1.0 1 sp|P19789|HBA_EUDSC Hemoglobin subunit alpha-A OS=Eudynamy
- 2.6e-44 155.8 0.1 2.9e-44 155.6 0.1 1.0 1 sp|P07404|HBA_VULGR Hemoglobin subunit alpha-A OS=Vultur g
- 3.1e-44 155.5 0.0 3.4e-44 155.4 0.0 1.0 1 sp|P02004|HBAD_STUVU Hemoglobin subunit alpha-D OS=Sturnus
- 3.4e-44 155.4 0.2 3.7e-44 155.2 0.1 1.0 1 sp|Q7LZC3|HBA_STROE Hemoglobin subunit alpha-A OS=Streptop
- 3.8e-44 155.2 0.0 4.2e-44 155.1 0.0 1.0 1 sp|P07407|HBA_PASMO Hemoglobin subunit alpha-A OS=Passer m
- 4.1e-44 155.1 0.1 4.6e-44 155.0 0.1 1.0 1 sp|P01976|HBA_DIDMA Hemoglobin subunit alpha OS=Didelphis
- 4.7e-44 154.9 1.2 5.2e-44 154.8 0.8 1.0 1 sp|P06636|HBA3_XENLA Hemoglobin subunit alpha-3 OS=Xenopus
- 5.4e-44 154.7 0.1 5.9e-44 154.6 0.1 1.0 1 sp|P06467|HBAZ_MOUSE Hemoglobin subunit zeta OS=Mus musculu
- 5.5e-44 154.7 0.3 6.1e-44 154.5 0.2 1.0 1 sp|P01997|HBA_STUVU Hemoglobin subunit alpha-A OS=Sturnus
- 8.6e-44 154.1 0.4 9.5e-44 153.9 0.3 1.0 1 sp|P15162|HBA_APUAP Hemoglobin subunit alpha-A OS=Apus apu
- 1.2e-43 153.6 1.1 1.3e-43 153.5 0.8 1.0 1 sp|P08423|HBB2_XENTR Hemoglobin subunit beta-2 OS=Xenopus t
- 1.4e-43 153.4 0.3 1.6e-43 153.2 0.2 1.0 1 sp|P14522|HBA_TURME Hemoglobin subunit alpha-A OS=Turdus m
- 1.6e-43 153.2 0.0 1.8e-43 153.0 0.0 1.0 1 sp|P14261|HBE_CAIMO Hemoglobin subunit epsilon OS=Cairina
- 2.9e-43 152.4 0.6 3.2e-43 152.2 0.4 1.0 1 sp|Q10733|HBB_CARCR Hemoglobin subunit beta OS=Caretta car
- 2.9e-43 152.4 0.2 3.2e-43 152.2 0.1 1.0 1 sp|P01982|HBA_RHEAM Hemoglobin subunit alpha-A OS=Rhea ame
- 3.9e-43 152.0 1.4 4.3e-43 151.8 1.0 1.0 1 sp|P08422|HBA3_XENTR Hemoglobin subunit alpha-3 OS=Xenopus
- 5.5e-43 151.5 0.0 6.1e-43 151.3 0.0 1.0 1 sp|P11896|HBA3_PLEWA Hemoglobin larval subunit alpha OS=Ple
- 6.7e-43 151.2 0.8 7.4e-43 151.0 0.5 1.0 1 sp|P06637|HBA4_XENLA Hemoglobin subunit alpha-4 OS=Xenopus
- 1.4e-42 150.2 0.0 1.5e-42 150.0 0.0 1.0 1 sp|P84203|HBAC_GYMUN Hemoglobin cathodic subunit alpha OS=G
- 1.6e-42 149.9 0.1 1.8e-42 149.8 0.1 1.0 1 sp|P14523|HBAD_TURME Hemoglobin subunit alpha-D OS=Turdus m
- 2e-42 149.7 0.0 2.2e-42 149.5 0.0 1.0 1 sp|P02011|HBA3_RANCA Hemoglobin subunit alpha-3 OS=Rana cat
- 2.6e-42 149.3 0.4 2.9e-42 149.1 0.3 1.0 1 sp|Q9PVU6|HBAE_ORYLA Hemoglobin embryonic subunit alpha OS=
- 3.1e-42 149.0 0.2 3.4e-42 148.9 0.1 1.0 1 sp|P01996|HBA_ARAAR Hemoglobin subunit alpha-A OS=Ara arar
- 3.2e-42 149.0 0.2 3.5e-42 148.9 0.1 1.0 1 sp|P02133|HBB2_XENLA Hemoglobin subunit beta-2 OS=Xenopus l
- 4.6e-42 148.5 0.0 5.1e-42 148.3 0.0 1.0 1 sp|P0C0U6|HBA_DRYCE Hemoglobin subunit alpha-A OS=Drymarch
- 5e-42 148.3 0.7 5.6e-42 148.2 0.5 1.0 1 sp|P01984|HBA_PHORU Hemoglobin subunit alpha-A OS=Phoenico
- 5.9e-42 148.1 0.0 6.4e-42 148.0 0.0 1.0 1 sp|P82316|HBBC_HOPLI Hemoglobin cathodic subunit beta OS=Ho
- 6.8e-42 147.9 0.4 7.5e-42 147.8 0.3 1.0 1 sp|P83270|HBA1_ANAMI Hemoglobin subunit alpha-1 OS=Anarhich
- 9.1e-42 147.5 0.1 1e-41 147.3 0.0 1.0 1 sp|P19831|HBA_PSIKR Hemoglobin subunit alpha OS=Psittacula
- 9.1e-42 147.5 0.0 1e-41 147.4 0.0 1.0 1 sp|P02018|HBA_CARAU Hemoglobin subunit alpha OS=Carassius
- 1.1e-41 147.2 0.0 1.2e-41 147.1 0.0 1.0 1 sp|P80727|HBBC_ANGAN Hemoglobin cathodic subunit beta OS=An
- 1.2e-41 147.1 0.1 1.3e-41 147.0 0.0 1.0 1 sp|P11748|HBA_THUTH Hemoglobin subunit alpha OS=Thunnus th
- 1.8e-41 146.6 0.0 2e-41 146.4 0.0 1.0 1 sp|Q9PRL9|HBA1_NAJNA Hemoglobin subunit alpha-1 OS=Naja naj
- 2.3e-41 146.2 0.0 2.5e-41 146.1 0.0 1.0 1 sp|P02142|HBB1_ONCMY Hemoglobin subunit beta-1 OS=Oncorhync
- 3.8e-41 145.5 0.1 4.1e-41 145.4 0.1 1.0 1 sp|Q90487|HBA_DANRE Hemoglobin subunit alpha OS=Danio reri
- 4e-41 145.4 0.1 4.4e-41 145.3 0.1 1.0 1 sp|P10062|HBAD_SPHPU Hemoglobin subunit alpha-D OS=Sphenodo
- 8.7e-41 144.3 0.5 9.7e-41 144.2 0.3 1.0 1 sp|P18974|HBA1_IGUIG Hemoglobin subunit alpha-1 OS=Iguana i
- 1e-40 144.1 0.3 1.1e-40 143.9 0.2 1.0 1 sp|P83271|HBA2_ANAMI Hemoglobin subunit alpha-2 OS=Anarhich
- 1.1e-40 144.0 0.1 1.2e-40 143.8 0.1 1.0 1 sp|P29624|HBA1_NOTAN Hemoglobin subunit alpha-1 OS=Notothen
- 1.3e-40 143.8 0.0 1.4e-40 143.6 0.0 1.0 1 sp|P83478|HBBC_CONCO Hemoglobin cathodic subunit beta OS=Co
- 1.7e-40 143.3 0.0 1.9e-40 143.2 0.0 1.0 1 sp|Q7LZC2|HBB1_MURHE Hemoglobin subunit beta-1 OS=Muraena h
- 1.7e-40 143.3 1.8 1.9e-40 143.2 1.2 1.0 1 sp|P23740|HBA_LATCH Hemoglobin subunit alpha OS=Latimeria
- 1.8e-40 143.3 0.6 2e-40 143.2 0.4 1.0 1 sp|P0C238|HBA_POGSC Hemoglobin subunit alpha OS=Pogonophry
- 2.2e-40 143.0 0.0 2.5e-40 142.9 0.0 1.0 1 sp|P41331|HBA_MICGA Hemoglobin subunit alpha OS=Microcepha
- 2.4e-40 142.9 0.2 2.7e-40 142.7 0.1 1.0 1 sp|P83479|HBAC_CONCO Hemoglobin cathodic subunit alpha OS=C
- 2.7e-40 142.7 0.0 3e-40 142.6 0.0 1.0 1 sp|P11251|HBA_SALSA Hemoglobin subunit alpha OS=Salmo sala
- 2.9e-40 142.6 0.5 3.2e-40 142.5 0.3 1.0 1 sp|P0C237|HBA_ARTOR Hemoglobin subunit alpha OS=Artedidrac
- 3.1e-40 142.5 0.1 3.5e-40 142.4 0.1 1.0 1 sp|P83613|HBA2_GOBGI Hemoglobin subunit alpha-2 OS=Gobionot
- 4e-40 142.2 0.1 4.4e-40 142.0 0.0 1.0 1 sp|P84653|HBA1_COTGO Hemoglobin subunit alpha-1 OS=Cottoper
- 4e-40 142.2 0.0 4.4e-40 142.0 0.0 1.0 1 sp|Q9PVM2|HBBA_SERQU Hemoglobin subunit beta-A OS=Seriola q
- 4.2e-40 142.1 0.1 4.6e-40 142.0 0.1 1.0 1 sp|P14520|HBA_ELEEL Hemoglobin subunit alpha OS=Electropho
- 4.3e-40 142.1 0.0 4.7e-40 141.9 0.0 1.0 1 sp|P02010|HBA_VIPAS Hemoglobin subunit alpha OS=Vipera asp
- 5e-40 141.9 1.5 5.5e-40 141.7 1.0 1.0 1 sp|P23741|HBB_LATCH Hemoglobin subunit beta OS=Latimeria c
- 5.1e-40 141.8 0.1 5.7e-40 141.7 0.0 1.0 1 sp|P45719|HBA2_TRENE Hemoglobin subunit alpha-2 OS=Trematom
- 6.5e-40 141.5 0.1 7.1e-40 141.4 0.0 1.0 1 sp|P06890|HBAT_PONPY Hemoglobin subunit theta-1 OS=Pongo py
- 7.8e-40 141.2 0.0 8.6e-40 141.1 0.0 1.0 1 sp|P85081|HBA1_LIPTU Hemoglobin subunit alpha-1 OS=Liparis
- 8.2e-40 141.2 0.0 9e-40 141.0 0.0 1.0 1 sp|Q9PVM1|HBBB_SERQU Hemoglobin subunit beta-B OS=Seriola q
- 9.2e-40 141.0 0.1 1e-39 140.8 0.0 1.0 1 sp|P80043|HBA_PAGBE Hemoglobin subunit alpha OS=Pagothenia
- 9.9e-40 140.9 0.2 1.1e-39 140.8 0.2 1.0 1 sp|P83114|HBB2_TELPE Hemoglobin subunit beta-2 OS=Telmatobi
- 1.6e-39 140.2 0.8 1.8e-39 140.0 0.5 1.0 1 sp|P51465|HBAB_RANCA Hemoglobin subunit alpha-B OS=Rana cat
- 2.4e-39 139.7 0.1 2.6e-39 139.5 0.0 1.0 1 sp|P09105|HBAT_HUMAN Hemoglobin subunit theta-1 OS=Homo sap
- 2.7e-39 139.5 1.0 2.9e-39 139.4 0.7 1.0 1 sp|P82315|HBAC_HOPLI Hemoglobin cathodic subunit alpha OS=H
- 3e-39 139.3 0.6 3.3e-39 139.2 0.4 1.0 1 sp|P07428|HBA_XENTR Hemoglobin subunit alpha OS=Xenopus tr
- 3.5e-39 139.1 0.1 3.9e-39 139.0 0.1 1.0 1 sp|P84206|HBBA_GYMUN Hemoglobin anodic subunit beta OS=Gymn
- 4e-39 138.9 4.0 4.5e-39 138.8 2.8 1.0 1 sp|P18981|HBA2_VAREX Hemoglobin subunit alpha-2 OS=Varanus
- 4.8e-39 138.7 0.1 5.3e-39 138.5 0.1 1.0 1 sp|P10777|HBA1_NOTCO Hemoglobin subunit alpha-1 OS=Notothen
- 5e-39 138.6 0.1 5.5e-39 138.5 0.1 1.0 1 sp|P14527|HBA4_ONCMY Hemoglobin subunit alpha-4 OS=Oncorhyn
- 5e-39 138.6 0.0 5.6e-39 138.5 0.0 1.0 1 sp|P45718|HBA1_TRENE Hemoglobin subunit alpha-1 OS=Trematom
- 5.8e-39 138.4 0.1 6.4e-39 138.3 0.1 1.0 1 sp|P83611|HBA1_GOBGI Hemoglobin subunit alpha-1 OS=Gobionot
- 8.6e-39 137.9 0.1 9.5e-39 137.7 0.1 1.0 1 sp|P82990|HBA_PAGBO Hemoglobin subunit alpha OS=Pagothenia
- 1.2e-38 137.4 1.2 1.3e-38 137.3 0.8 1.0 1 sp|P55267|HBAC_RANCA Hemoglobin subunit alpha-C OS=Rana cat
- 1.9e-38 136.7 0.1 2.1e-38 136.6 0.1 1.0 1 sp|P83623|HBA_PSEUR Hemoglobin subunit alpha OS=Pseudaphri
- 1.9e-38 136.7 0.2 2.1e-38 136.6 0.2 1.0 1 sp|P80270|HBA_CHEKU Hemoglobin subunit alpha OS=Chelidonic
- 2.1e-38 136.6 0.1 2.3e-38 136.4 0.1 1.0 1 sp|P23018|HBB2_CYGMA Hemoglobin subunit beta-2 OS=Cygnodrac
- 2.4e-38 136.4 0.2 2.8e-38 136.2 0.1 1.0 1 sp|Q8WWM9|CYGB_HUMAN Cytoglobin OS=Homo sapiens GN=CYGB PE=
- 2.5e-38 136.4 0.0 2.7e-38 136.2 0.0 1.0 1 sp|P02016|HBA_CYPCA Hemoglobin subunit alpha OS=Cyprinus c
- 2.9e-38 136.1 0.3 3.2e-38 136.0 0.2 1.0 1 sp|P62363|HBA2_NOTAN Hemoglobin subunit alpha-2 OS=Notothen
- 2.9e-38 136.1 0.3 3.2e-38 136.0 0.2 1.0 1 sp|P62387|HBA2_NOTCO Hemoglobin subunit alpha-2 OS=Notothen
- 3.2e-38 136.0 0.1 3.6e-38 135.8 0.1 1.0 1 sp|P23016|HBA_CYGMA Hemoglobin subunit alpha OS=Cygnodraco
- 3.5e-38 135.9 0.3 4.1e-38 135.7 0.2 1.0 1 sp|P02134|HBB_RANES Hemoglobin subunit beta OS=Rana escule
- 5.8e-38 135.2 0.0 6.4e-38 135.0 0.0 1.0 1 sp|P02019|HBA1_ONCMY Hemoglobin subunit alpha-1 OS=Oncorhyn
- 6.3e-38 135.0 0.0 7.2e-38 134.8 0.0 1.0 1 sp|Q575S8|CYGB2_DANRE Cytoglobin-2 OS=Danio rerio GN=cygb2 P
- 8.6e-38 134.6 0.1 9.4e-38 134.5 0.1 1.0 1 sp|P80946|HBBA_ANGAN Hemoglobin anodic subunit beta OS=Angu
- 9.3e-38 134.5 0.1 1e-37 134.3 0.0 1.0 1 sp|Q9PVM4|HBAA_SERQU Hemoglobin subunit alpha-A OS=Seriola
- 9.6e-38 134.4 0.0 1.1e-37 134.3 0.0 1.0 1 sp|Q98TS0|HBB_ONCNE Hemoglobin subunit beta OS=Oncorhynchu
- 9.7e-38 134.4 0.0 1.1e-37 134.3 0.0 1.0 1 sp|P83624|HBB1_PSEUR Hemoglobin subunit beta-1 OS=Pseudaphr
- 1e-37 134.4 0.0 1.1e-37 134.2 0.0 1.0 1 sp|Q91473|HBB_SALSA Hemoglobin subunit beta OS=Salmo salar
- 1.5e-37 133.8 0.6 1.7e-37 133.7 0.4 1.0 1 sp|P07430|HBA1_XENBO Hemoglobin subunit alpha-1 OS=Xenopus
- 1.6e-37 133.8 0.7 1.7e-37 133.6 0.5 1.0 1 sp|P02012|HBA1_XENLA Hemoglobin subunit alpha-1 OS=Xenopus
- 1.9e-37 133.5 0.0 2e-37 133.4 0.0 1.0 1 sp|P56251|HBB_LEIXA Hemoglobin subunit beta OS=Leiostomus
- 2.2e-37 133.3 0.1 2.5e-37 133.1 0.1 1.0 1 sp|Q575T0|CYGB1_ORYLA Cytoglobin-1 OS=Oryzias latipes GN=cyg
- 2.2e-37 133.3 0.3 2.5e-37 133.1 0.2 1.0 1 sp|Q921A4|CYGB_RAT Cytoglobin OS=Rattus norvegicus GN=Cyg
- 2.3e-37 133.2 0.0 2.5e-37 133.1 0.0 1.0 1 sp|P84609|HBA1_GADMO Hemoglobin subunit alpha-1 OS=Gadus mo
- 2.4e-37 133.2 0.1 2.7e-37 133.0 0.1 1.0 1 sp|P80726|HBAC_ANGAN Hemoglobin cathodic subunit alpha OS=A
- 3.1e-37 132.8 0.0 3.4e-37 132.7 0.0 1.0 1 sp|P07433|HBB2_XENBO Hemoglobin subunit beta-2 OS=Xenopus b
- 4.1e-37 132.4 0.0 4.5e-37 132.3 0.0 1.0 1 sp|P02141|HBB4_ONCMY Hemoglobin subunit beta-4 OS=Oncorhync
- 4.8e-37 132.2 0.0 5.3e-37 132.0 0.0 1.0 1 sp|Q90486|HBB1_DANRE Hemoglobin subunit beta-1 OS=Danio rer
- 5.1e-37 132.1 0.0 5.8e-37 131.9 0.0 1.0 1 sp|P56250|HBA_LEIXA Hemoglobin subunit alpha OS=Leiostomus
- 5.1e-37 132.1 0.1 5.5e-37 132.0 0.1 1.0 1 sp|P82345|HBB0_PAGBO Hemoglobin subunit beta-0 OS=Pagotheni
- 7.3e-37 131.6 0.0 8e-37 131.5 0.0 1.0 1 sp|Q90485|HBB2_DANRE Hemoglobin subunit beta-2 OS=Danio rer
- 7.8e-37 131.5 0.0 8.5e-37 131.4 0.0 1.0 1 sp|P84204|HBBC_GYMUN Hemoglobin cathodic subunit beta OS=Gy
- 8.4e-37 131.4 0.0 9e-37 131.3 0.0 1.0 1 sp|P83273|HBB2_ANAMI Hemoglobin subunit beta-2 OS=Anarhicha
- 9.2e-37 131.3 0.1 9.9e-37 131.2 0.0 1.0 1 sp|P45721|HBBC_TRENE Hemoglobin subunit beta-C OS=Trematomu
- 9.3e-37 131.2 0.0 1e-36 131.1 0.0 1.0 1 sp|P02017|HBA_CATCL Hemoglobin subunit alpha OS=Catostomus
- 9.8e-37 131.2 0.9 1.1e-36 131.0 0.6 1.0 1 sp|P02013|HBA2_XENLA Hemoglobin subunit alpha-2 OS=Xenopus
- 1.1e-36 131.0 0.1 1.2e-36 130.9 0.0 1.0 1 sp|Q1AGS4|HBA2_ARCGL Hemoglobin subunit alpha-2 OS=Arctogad
- 1.2e-36 130.9 0.1 1.3e-36 130.8 0.0 1.0 1 sp|O13163|HBB_SILAS Hemoglobin subunit beta OS=Silurus aso
- 1.2e-36 130.8 0.0 1.4e-36 130.7 0.0 1.0 1 sp|Q8UUR3|CYGB1_DANRE Cytoglobin-1 OS=Danio rerio GN=cygb1 P
- 1.3e-36 130.8 0.2 1.5e-36 130.6 0.1 1.0 1 sp|Q9CX80|CYGB_MOUSE Cytoglobin OS=Mus musculus GN=Cygb PE=
- 1.5e-36 130.6 0.1 1.6e-36 130.5 0.0 1.0 1 sp|P84652|HBB_COTGO Hemoglobin subunit beta OS=Cottoperca
- 1.5e-36 130.5 0.0 1.7e-36 130.4 0.0 1.0 1 sp|P29623|HBA_GYMAC Hemoglobin subunit alpha OS=Gymnodraco
- 1.6e-36 130.5 0.0 1.8e-36 130.3 0.0 1.0 1 sp|P84205|HBAA_GYMUN Hemoglobin anodic subunit alpha OS=Gym
- 1.6e-36 130.5 0.0 1.7e-36 130.4 0.0 1.0 1 sp|P0C240|HBB_POGSC Hemoglobin subunit beta OS=Pogonophryn
- 2.2e-36 130.0 0.2 2.6e-36 129.8 0.1 1.0 1 sp|Q575S9|CYGB2_ORYLA Cytoglobin-2 OS=Oryzias latipes GN=cyg
- 3.5e-36 129.4 0.0 3.8e-36 129.3 0.0 1.0 1 sp|P11749|HBB_THUTH Hemoglobin subunit beta OS=Thunnus thy
- 3.7e-36 129.3 0.0 4e-36 129.2 0.0 1.0 1 sp|P80271|HBB_CHEKU Hemoglobin subunit beta OS=Chelidonich
- 3.7e-36 129.3 0.1 4e-36 129.2 0.1 1.0 1 sp|P45722|HBBC_PAGBE Hemoglobin subunit beta-C OS=Pagotheni
- 4e-36 129.2 0.0 4.3e-36 129.1 0.0 1.0 1 sp|P83625|HBB2_PSEUR Hemoglobin subunit beta-2 OS=Pseudaphr
- 4.4e-36 129.1 0.4 4.9e-36 128.9 0.3 1.0 1 sp|P07431|HBA2_XENBO Hemoglobin subunit alpha-2 OS=Xenopus
- 4.5e-36 129.0 0.1 4.9e-36 128.9 0.0 1.0 1 sp|P29625|HBB_GYMAC Hemoglobin subunit beta OS=Gymnodraco
- 5.1e-36 128.9 0.0 5.5e-36 128.7 0.0 1.0 1 sp|P02139|HBB_CYPCA Hemoglobin subunit beta-A/B OS=Cyprinu
- 5.3e-36 128.8 0.0 5.8e-36 128.7 0.0 1.0 1 sp|P07432|HBB1_XENBO Hemoglobin subunit beta-1 OS=Xenopus b
- 5.4e-36 128.8 0.0 5.9e-36 128.6 0.0 1.0 1 sp|P02132|HBB1_XENLA Hemoglobin subunit beta-1 OS=Xenopus l
- 5.6e-36 128.7 0.0 6.1e-36 128.6 0.0 1.0 1 sp|Q7LZC1|HBB3_MURHE Hemoglobin subunit beta-3 OS=Muraena h
- 5.6e-36 128.7 0.0 6.1e-36 128.6 0.0 1.0 1 sp|O93351|HBB_TREHA Hemoglobin subunit beta OS=Trematomus
- 6.4e-36 128.5 0.1 7.2e-36 128.4 0.1 1.0 1 sp|Q9PVM3|HBAB_SERQU Hemoglobin subunit alpha-B OS=Seriola
- 7.3e-36 128.3 0.1 8.1e-36 128.2 0.0 1.0 1 sp|Q1AGS8|HBA2_BORSA Hemoglobin subunit alpha-2 OS=Boreogad
- 7.9e-36 128.2 0.0 8.6e-36 128.1 0.0 1.0 1 sp|P02140|HBB_CARAU Hemoglobin subunit beta OS=Carassius a
- 7.9e-36 128.2 0.0 8.7e-36 128.1 0.0 1.0 1 sp|O13164|HBB_DECMA Hemoglobin subunit beta OS=Decapterus
- 8.8e-36 128.1 0.3 9.7e-36 127.9 0.2 1.0 1 sp|P10785|HBB1_TRICR Hemoglobin subunit beta-1 OS=Triturus
- 1e-35 127.8 0.8 1.2e-35 127.7 0.6 1.0 1 sp|P10783|HBA1_TRICR Hemoglobin subunit alpha-1 OS=Triturus
- 1.4e-35 127.4 0.1 1.5e-35 127.3 0.1 1.0 1 sp|P02138|HBB_LEPPA Hemoglobin subunit beta OS=Lepidosiren
- 1.6e-35 127.2 0.0 1.8e-35 127.1 0.0 1.0 1 sp|P84610|HBB1_GADMO Hemoglobin subunit beta-1 OS=Gadus mor
- 1.8e-35 127.1 0.0 1.9e-35 127.0 0.0 1.0 1 sp|O93348|HBB1_PAGBO Hemoglobin subunit beta-1 OS=Pagotheni
- 2e-35 126.9 1.1 2.2e-35 126.8 0.7 1.0 1 sp|P06639|HBA1_PLEWA Hemoglobin subunit alpha-1 OS=Pleurode
- 2.1e-35 126.8 0.0 2.3e-35 126.7 0.0 1.0 1 sp|P83272|HBB1_ANAMI Hemoglobin subunit beta-1 OS=Anarhicha
- 2.7e-35 126.5 0.0 3e-35 126.4 0.0 1.0 1 sp|Q1AGS7|HBB1_BORSA Hemoglobin subunit beta-1 OS=Boreogadu
- 2.9e-35 126.4 0.1 3.2e-35 126.3 0.1 1.0 1 sp|P02206|MYG_HETPO Myoglobin OS=Heterodontus portusjackso
- 3e-35 126.3 0.1 3.3e-35 126.2 0.0 1.0 1 sp|Q1AGS5|HBA1_ARCGL Hemoglobin subunit alpha-1 OS=Arctogad
- 3.1e-35 126.3 0.0 3.3e-35 126.2 0.0 1.0 1 sp|P0C239|HBB_ARTOR Hemoglobin subunit beta OS=Artedidraco
- 3.3e-35 126.2 0.1 3.6e-35 126.1 0.0 1.0 1 sp|P80044|HBB_PAGBE Hemoglobin subunit beta OS=Pagothenia
- 4.2e-35 125.9 0.0 4.6e-35 125.7 0.0 1.0 1 sp|Q6Y239|HBB_PAGMA Hemoglobin subunit beta OS=Pagrus majo
- 4.4e-35 125.8 0.0 4.8e-35 125.7 0.0 1.0 1 sp|P85082|HBB1_LIPTU Hemoglobin subunit beta-1 OS=Liparis t
- 4.8e-35 125.7 0.1 5.3e-35 125.6 0.1 1.0 1 sp|P23017|HBB1_CYGMA Hemoglobin subunit beta-1 OS=Cygnodrac
- 6.4e-35 125.3 0.0 6.9e-35 125.2 0.0 1.0 1 sp|P45720|HBB_TRENE Hemoglobin subunit beta-1/2 OS=Tremato
- 8.7e-35 124.8 0.1 9.4e-35 124.7 0.0 1.0 1 sp|P83612|HBB1_GOBGI Hemoglobin subunit beta-1 OS=Gobionoto
- 8.8e-35 124.8 0.0 9.5e-35 124.7 0.0 1.0 1 sp|P83614|HBB2_GOBGI Hemoglobin subunit beta-2 OS=Gobionoto
- 9.2e-35 124.8 0.1 1e-34 124.7 0.0 1.0 1 sp|P29628|HBB_NOTAN Hemoglobin subunit beta OS=Notothenia
- 1.1e-34 124.6 1.3 1.2e-34 124.4 0.9 1.0 1 sp|P02014|HBA_TARGR Hemoglobin subunit alpha OS=Taricha gr
- 1.3e-34 124.3 2.2 1.4e-34 124.2 1.5 1.0 1 sp|P10784|HBA2_TRICR Hemoglobin subunit alpha-2 OS=Triturus
- 1.3e-34 124.3 0.0 1.4e-34 124.2 0.0 1.0 1 sp|P07429|HBB1_XENTR Hemoglobin subunit beta-1 OS=Xenopus t
- 2.2e-34 123.5 0.0 2.5e-34 123.4 0.0 1.0 1 sp|P80945|HBAA_ANGAN Hemoglobin anodic subunit alpha OS=Ang
- 2.3e-34 123.5 0.0 2.6e-34 123.3 0.0 1.0 1 sp|O93349|HBB2_TRENE Hemoglobin subunit beta OS=Trematomus
- 3.6e-34 122.9 1.0 4e-34 122.7 0.7 1.0 1 sp|P20244|HBA1_TORMA Hemoglobin subunit alpha-1 OS=Torpedo
- 3.6e-34 122.8 0.0 3.9e-34 122.7 0.0 1.0 1 sp|P16309|HBB_NOTCO Hemoglobin subunit beta OS=Notothenia
- 4.7e-34 122.5 0.1 5.2e-34 122.3 0.0 1.0 1 sp|Q1AGS9|HBA1_BORSA Hemoglobin subunit alpha-1 OS=Boreogad
- 5.8e-34 122.2 0.1 6.3e-34 122.1 0.1 1.0 1 sp|P06714|HBAT_HORSE Hemoglobin subunit theta-1 OS=Equus ca
- 7e-34 121.9 0.3 7.8e-34 121.8 0.2 1.0 1 sp|Q6B0K9|HBM_HUMAN Hemoglobin subunit mu OS=Homo sapiens
- 7.3e-34 121.8 0.0 8.1e-34 121.7 0.0 1.0 1 sp|P14521|HBB_ELEEL Hemoglobin subunit beta OS=Electrophor
- 9.3e-34 121.5 0.0 1e-33 121.4 0.0 1.0 1 sp|P02020|HBA_LEPPA Hemoglobin subunit alpha OS=Lepidosire
- 9.7e-34 121.5 0.4 1.1e-33 121.3 0.3 1.0 1 sp|P14399|MYG_MUSAN Myoglobin OS=Mustelus antarcticus GN=m
- 1.1e-33 121.2 0.0 1.2e-33 121.1 0.0 1.0 1 sp|P84604|HBB2_ARCGL Hemoglobin subunit beta-2 OS=Arctogadu
- 1.3e-33 121.0 0.3 1.5e-33 120.9 0.2 1.0 1 sp|P29627|HBBZ_MESAU Hemoglobin subunit beta-Z (Fragment) O
- 1.6e-33 120.7 1.0 1.8e-33 120.6 0.7 1.0 1 sp|P56691|HBA_DASAK Hemoglobin subunit alpha OS=Dasyatis a
- 3.3e-33 119.7 0.0 3.7e-33 119.6 0.0 1.0 1 sp|P84611|HBB2_GADMO Hemoglobin subunit beta-2 OS=Gadus mor
- 3.5e-33 119.6 0.2 3.9e-33 119.5 0.1 1.0 1 sp|P68189|MYG_THUTH Myoglobin OS=Thunnus thynnus GN=mb PE=
- 3.5e-33 119.6 0.2 3.9e-33 119.5 0.1 1.0 1 sp|P68190|MYG_THUTO Myoglobin OS=Thunnus thynnus orientali
- 3.5e-33 119.6 0.2 3.9e-33 119.5 0.1 1.0 1 sp|Q76G09|MYG_THUOB Myoglobin OS=Thunnus obesus GN=mb PE=2
- 3.9e-33 119.5 0.2 4.4e-33 119.3 0.1 1.0 1 sp|P07408|HBA_SQUAC Hemoglobin subunit alpha OS=Squalus ac
- 4e-33 119.5 0.0 4.3e-33 119.3 0.0 1.0 1 sp|Q1AGS6|HBB2_BORSA Hemoglobin subunit beta-2 OS=Boreogadu
- 4.5e-33 119.3 0.1 4.9e-33 119.2 0.0 1.0 1 sp|O42425|HBA2_GADMO Hemoglobin subunit alpha-2 OS=Gadus mo
- 5.3e-33 119.0 0.2 5.9e-33 118.9 0.1 1.0 1 sp|P02205|MYG_THUAL Myoglobin OS=Thunnus albacares GN=mb P
- 6.1e-33 118.9 0.1 6.8e-33 118.7 0.0 1.0 1 sp|P83113|HBA2_TELPE Hemoglobin subunit alpha-2 (Fragment)
- 6.5e-33 118.8 0.6 7.2e-33 118.6 0.4 1.0 1 sp|Q9DGJ0|MYG_SARCH Myoglobin OS=Sarda chiliensis GN=mb PE
- 7.3e-33 118.6 0.4 8.2e-33 118.4 0.3 1.0 1 sp|P02015|HBA_AMBME Hemoglobin subunit alpha OS=Ambystoma
- 1.8e-32 117.4 0.0 1.9e-32 117.2 0.0 1.0 1 sp|O13078|HBB_MERMR Hemoglobin subunit beta OS=Merlangius
- 3.2e-32 116.5 0.0 3.5e-32 116.4 0.0 1.0 1 sp|Q1AGS3|HBB1_ARCGL Hemoglobin subunit beta-1 (Fragment) O
- 5e-32 115.9 0.0 5.5e-32 115.8 0.0 1.0 1 sp|P16417|HBAD_LIOMI Hemoglobin subunit alpha-D OS=Liophis
- 5.2e-32 115.9 1.1 5.8e-32 115.7 0.8 1.0 1 sp|P20245|HBA2_TORMA Hemoglobin subunit alpha-2 OS=Torpedo
- 5.2e-32 115.8 0.0 5.8e-32 115.7 0.0 1.0 1 sp|P10786|HBB2_TRICR Hemoglobin subunit beta-2 OS=Triturus
- 8.4e-32 115.2 0.3 9.4e-32 115.0 0.2 1.0 1 sp|P14397|MYG_GALGA Myoglobin OS=Galeorhinus galeus GN=mb
- 9.2e-32 115.0 0.0 1.1e-31 114.8 0.0 1.1 1 sp|A1A4Q3|HBM_BOVIN Hemoglobin subunit mu OS=Bos taurus GN
- 9.2e-32 115.0 1.6 1e-31 114.9 1.1 1.0 1 sp|Q9DGJ1|MYG_MAKNI Myoglobin OS=Makaira nigricans GN=mb P
- 9.8e-32 115.0 0.0 1.1e-31 114.8 0.0 1.0 1 sp|P02135|HBB_RANCA Hemoglobin subunit beta OS=Rana catesb
- 1.1e-31 114.8 0.1 1.2e-31 114.6 0.1 1.0 1 sp|Q701N9|MYG_TETNG Myoglobin OS=Tetraodon nigroviridis GN
- 1.4e-31 114.4 0.2 1.6e-31 114.3 0.2 1.0 1 sp|Q6I7B0|MYG_AUXRO Myoglobin OS=Auxis rochei GN=mb PE=2 S
- 1.5e-31 114.4 0.2 1.6e-31 114.2 0.1 1.0 1 sp|P14398|MYG_GALJA Myoglobin OS=Galeorhinus japonicus GN=
- 1.7e-31 114.2 2.5 1.9e-31 114.0 1.8 1.0 1 sp|P84216|HBA_BATEA Hemoglobin subunit alpha OS=Bathyraja
- 1.7e-31 114.1 0.0 1.9e-31 114.0 0.0 1.0 1 sp|O09232|HBB_MELAE Hemoglobin subunit beta OS=Melanogramm
- 1.8e-31 114.1 0.0 2e-31 114.0 0.0 1.0 1 sp|P18991|HBB1_UROHA Hemoglobin subunit beta-1 (Fragments)
- 2.7e-31 113.5 0.1 2.9e-31 113.4 0.1 1.0 1 sp|Q9DGJ2|MYG_THUAA Myoglobin OS=Thunnus alalunga GN=mb PE
- 4.4e-31 112.8 0.6 4.9e-31 112.7 0.4 1.0 1 sp|Q9DGI8|MYG_KATPE Myoglobin OS=Katsuwonus pelamis GN=mb
- 7.2e-31 112.1 0.1 7.9e-31 112.0 0.1 1.0 1 sp|P02204|MYG_CYPCA Myoglobin OS=Cyprinus carpio GN=mb PE=
- 1.1e-30 111.6 0.0 1.2e-30 111.5 0.0 1.0 1 sp|P0C0U7|HBAD_DRYCE Hemoglobin subunit alpha-D OS=Drymarch
- 2e-30 110.7 0.1 2.2e-30 110.5 0.1 1.0 1 sp|Q9DEN9|MYG_GOBGI Myoglobin OS=Gobionotothen gibberifron
- 4.4e-30 109.6 0.0 4.8e-30 109.5 0.0 1.0 1 sp|Q6VN46|MYG_DANRE Myoglobin OS=Danio rerio GN=mb PE=2 SV
- 7.7e-30 108.8 0.1 8.4e-30 108.7 0.1 1.0 1 sp|Q9DEN8|MYG_NOTCO Myoglobin OS=Notothenia coriiceps negl
- 9.6e-30 108.5 0.1 1.1e-29 108.4 0.1 1.0 1 sp|Q7T044|MYG_CHARH Myoglobin OS=Channichthys rhinoceratus
- 1.2e-29 108.1 0.4 1.4e-29 108.0 0.3 1.0 1 sp|P06640|HBA2_PLEWA Hemoglobin subunit alpha-2 (Fragment)
- 1.6e-29 107.8 4.5 1.8e-29 107.6 3.1 1.0 1 sp|P07409|HBB_SQUAC Hemoglobin subunit beta OS=Squalus aca
- 1.6e-29 107.7 0.1 1.8e-29 107.6 0.0 1.0 1 sp|Q9DEP1|MYG_PSEGE Myoglobin OS=Pseudochaenichthys georgi
- 1.9e-29 107.5 0.2 2.1e-29 107.4 0.1 1.0 1 sp|Q9DGI9|MYG_SCOJP Myoglobin OS=Scomber japonicus GN=mb P
- 2e-29 107.5 0.1 2.2e-29 107.3 0.1 1.0 1 sp|P87497|MYG_CHIRA Myoglobin OS=Chionodraco rastrospinosu
- 4.6e-29 106.3 0.1 5.1e-29 106.1 0.1 1.0 1 sp|Q9DEP0|MYG_CRYAN Myoglobin OS=Cryodraco antarcticus GN=
- 4.8e-29 106.2 0.2 5.3e-29 106.1 0.1 1.0 1 sp|Q9YGW2|HBA_MUSGR Hemoglobin subunit alpha OS=Mustelus g
- 9.6e-29 105.2 2.3 1.2e-28 105.0 1.6 1.0 1 sp|P02021|HBA_HETPO Hemoglobin subunit alpha OS=Heterodont
- 1.4e-28 104.7 0.0 1.5e-28 104.6 0.0 1.0 1 sp|O13077|HBB_GADMO Hemoglobin subunit beta OS=Gadus morhu
- 8.1e-28 102.2 0.4 8.9e-28 102.1 0.3 1.0 1 sp|P07420|HBB_DASVI Hemoglobin subunit beta (Fragment) OS=
- 9.4e-27 98.8 1.7 1e-26 98.6 1.2 1.0 1 sp|P02143|HBB_HETPO Hemoglobin subunit beta OS=Heterodontu
- 9.1e-26 95.6 0.1 1e-25 95.4 0.0 1.0 1 sp|P02022|HBAM_RANCA Hemoglobin heart muscle subunit alpha-
- 1.1e-24 92.0 3.9 1.3e-24 91.9 2.7 1.0 1 sp|P20247|HBB2_TORMA Hemoglobin subunit beta-2 OS=Torpedo m
- 1.2e-24 91.9 2.6 1.4e-24 91.8 1.8 1.0 1 sp|P20246|HBB1_TORMA Hemoglobin subunit beta-1 OS=Torpedo m
- 1.3e-24 91.8 0.4 1.6e-24 91.6 0.3 1.1 1 sp|Q7M3C1|MYG_AILME Myoglobin (Fragment) OS=Ailuropoda mel
- 2e-24 91.2 0.1 2.7e-24 90.8 0.0 1.2 1 sp|Q7SID0|GLBF1_EPTBU Globin-F1 OS=Eptatretus burgeri PE=1 S
- 1.1e-23 88.9 1.4 1.2e-23 88.7 0.9 1.0 1 sp|P56692|HBB_DASAK Hemoglobin subunit beta OS=Dasyatis ak
- 1.5e-23 88.4 0.0 1.9e-23 88.1 0.0 1.0 1 sp|P09106|HBAT_PAPAN Hemoglobin subunit theta-1 OS=Papio an
- 3.3e-23 87.3 0.4 4.5e-23 86.9 0.3 1.2 1 sp|P02209|GLB3_MYXGL Globin-3 OS=Myxine glutinosa PE=1 SV=2
- 3.8e-23 87.1 0.9 1.1e-22 85.6 0.6 1.6 1 sp|Q9YGW1|HBB_MUSGR Hemoglobin subunit beta OS=Mustelus gr
- 9.7e-22 82.5 0.2 1.1e-21 82.3 0.1 1.0 1 sp|P80017|GLBD_CAUAR Globin D, coelomic OS=Caudina arenicol
- 6.3e-21 79.9 0.2 6.9e-21 79.7 0.2 1.0 1 sp|P18979|HBA1_UROHA Hemoglobin subunit alpha-1 (Fragment)
- 1.2e-20 79.0 0.8 1.3e-20 78.9 0.5 1.0 1 sp|P84217|HBB_BATEA Hemoglobin subunit beta OS=Bathyraja e
- 1.9e-20 78.3 0.0 2.1e-20 78.2 0.0 1.0 1 sp|P0C227|GLB_NERAL Globin OS=Nerita albicilla PE=1 SV=1
- 5.9e-17 67.0 0.4 7.1e-17 66.7 0.3 1.0 1 sp|P15161|GLB1_PARCH Globin-1 OS=Paracaudina chilensis PE=1
- 7.5e-17 66.6 0.8 9.1e-17 66.4 0.5 1.0 1 sp|P80018|GLBC_CAUAR Globin C, coelomic OS=Caudina arenicol
- 1.3e-15 62.6 0.0 1.4e-15 62.5 0.0 1.0 1 sp|P09965|GLB_DOLAU Globin OS=Dolabella auricularia PE=1 S
- 1.4e-14 59.3 0.0 1.6e-14 59.1 0.0 1.1 1 sp|P02211|GLB_APLKU Globin OS=Aplysia kurodai PE=1 SV=4
- 2.5e-13 55.2 0.0 3e-13 54.9 0.0 1.1 1 sp|P14393|GLB_APLJU Globin OS=Aplysia juliana PE=1 SV=1
- 2.8e-13 55.1 0.0 3.1e-13 54.9 0.0 1.1 1 sp|P29287|GLB_BURLE Globin OS=Bursatella leachii PE=1 SV=1
- 4.4e-13 54.4 0.1 5e-13 54.2 0.1 1.1 1 sp|P02210|GLB_APLLI Globin OS=Aplysia limacina PE=1 SV=4
- 1.3e-12 52.9 0.2 1.3e-12 52.8 0.1 1.0 1 sp|Q9TT33|HBB_COLGU Hemoglobin subunit beta (Fragment) OS=
- 1.7e-12 52.5 0.0 1.7e-12 52.5 0.0 1.0 1 sp|P81041|HBO_MACEU Hemoglobin subunit omega (Fragment) OS
- 2.8e-12 51.8 0.0 3.3e-12 51.6 0.0 1.0 1 sp|P14821|GLB2A_SCAIN Globin-2 A chain OS=Scapharca inaequiv
- 1.4e-11 49.6 0.0 1.6e-11 49.4 0.0 1.0 1 sp|Q8T7J9|GLB_YOLEI Globin OS=Yoldia eightsi PE=1 SV=1
- 5.7e-11 47.6 0.0 6.6e-11 47.4 0.0 1.0 1 sp|Q7M416|GLB1_LIOJA Globin-1 OS=Liolophura japonica PE=1 S
- 7.4e-11 47.2 0.0 1.2e-10 46.5 0.0 1.5 1 sp|P19363|GLB1_ARTSX Extracellular globin-E1 (Fragment) OS=
- 1.3e-10 46.4 0.0 1.5e-10 46.2 0.0 1.0 1 sp|P02215|GLB_CERRH Globin OS=Cerithidea rhizophorarum PE=
- 1.9e-10 45.8 1.5 2.3e-10 45.6 1.0 1.0 1 sp|Q7M424|GLB_BUCUU Globin OS=Buccinum undatum PE=1 SV=1
- 2.5e-10 45.5 0.3 2.6e-10 45.4 0.2 1.0 1 sp|Q9TT34|HBB_PONPY Hemoglobin subunit beta (Fragment) OS=
- 2.9e-10 45.3 0.1 3.1e-10 45.2 0.1 1.0 1 sp|O77003|GLB_BIOGL Globin OS=Biomphalaria glabrata PE=3 S
- 7.2e-10 44.0 0.0 8e-10 43.8 0.0 1.0 1 sp|P14822|GLB2B_SCAIN Globin-2 B chain OS=Scapharca inaequiv
- 8.7e-10 43.7 4.5 3.7e-06 31.9 3.0 2.3 1 sp|P81044|HBAZ_MACEU Hemoglobin subunit zeta (Fragments) OS
- 1.2e-09 43.3 0.0 1.3e-09 43.1 0.0 1.0 1 sp|P59742|NGB1_ONCMY Neuroglobin-1 OS=Oncorhynchus mykiss G
- 1.2e-09 43.2 0.0 1.4e-09 43.0 0.0 1.1 1 sp|P23216|GLBP1_GLYDI Globin, major polymeric component P1 O
- 1.3e-09 43.1 0.0 1.5e-09 43.0 0.0 1.1 1 sp|P21659|GLBP2_GLYDI Globin, polymeric component P2 OS=Glyc
- 1.8e-09 42.7 0.0 2.2e-09 42.4 0.0 1.1 1 sp|P02222|GLB2_CHITH Globin CTT-II beta OS=Chironomus thumm
- 2.6e-09 42.2 1.1 3e-09 42.0 0.8 1.0 1 sp|Q941Q2|HBL2_BRANA Non-symbiotic hemoglobin 2 OS=Brassica
- 2.9e-09 42.0 0.0 3.3e-09 41.8 0.0 1.0 1 sp|Q90W04|NGB_TETNG Neuroglobin OS=Tetraodon nigroviridis
- 3.2e-09 41.9 0.0 3.7e-09 41.7 0.0 1.1 1 sp|P14395|GLB1A_ANATR Globin-1 subunit alpha OS=Anadara trap
- 4.5e-09 41.4 0.0 5.3e-09 41.2 0.0 1.0 1 sp|P41261|GLB2_LUCPE Hemoglobin-2 OS=Lucina pectinata PE=1
- 4.5e-09 41.4 0.3 6.8e-09 40.8 0.2 1.3 1 sp|P29243|GLBV_CHITP Globin CTT-V OS=Chironomus thummi pige
- 5.1e-09 41.2 0.0 5.8e-09 41.0 0.0 1.1 1 sp|P21660|GLBP3_GLYDI Globin, polymeric component P3 OS=Glyc
- 5.1e-09 41.2 0.1 9e-09 40.4 0.1 1.4 1 sp|P02216|GLB1_GLYDI Globin, major monomeric component OS=G
- 6.8e-09 40.8 0.1 7.6e-09 40.7 0.1 1.0 1 sp|P02213|GLB1_SCAIN Globin-1 OS=Scapharca inaequivalvis PE
- 8.9e-09 40.5 0.0 1e-08 40.3 0.0 1.0 1 sp|P59743|NGB2_ONCMY Neuroglobin-2 OS=Oncorhynchus mykiss G
- 1e-08 40.2 0.4 2.1e-08 39.2 0.1 1.6 1 sp|Q23761|GLBZ_CHITH Globin CTT-Z OS=Chironomus thummi thum
- 1.3e-08 39.9 0.2 1.5e-08 39.7 0.1 1.0 1 sp|P31331|GLB_NASMU Globin OS=Nassa mutabilis PE=1 SV=1
- 1.5e-08 39.7 0.2 1.7e-08 39.6 0.2 1.0 1 sp|P02212|GLB1_ANABR Globin-1 OS=Anadara broughtonii PE=1 S
- 1.5e-08 39.7 0.3 2.8e-08 38.8 0.1 1.5 1 sp|P29245|GLBZ_CHITP Globin CTT-Z OS=Chironomus thummi pige
- 2.6e-08 38.9 0.2 3e-08 38.7 0.1 1.0 1 sp|P02214|GLB_BUSCA Globin OS=Busycotypus canaliculatus PE
- 2.8e-08 38.8 0.7 3.8e-08 38.4 0.3 1.3 1 sp|Q23763|GLB78_CHITH Globin CTT-VIIB-8 OS=Chironomus thummi
- 3e-08 38.7 0.6 3.8e-08 38.4 0.4 1.0 1 sp|P23244|HBP2_CASGL Hemoglobin-2 OS=Casuarina glauca GN=HB
- 3.1e-08 38.7 0.0 3.6e-08 38.5 0.0 1.0 1 sp|Q90YJ2|NGB_DANRE Neuroglobin OS=Danio rerio GN=ngb PE=2
- 3.2e-08 38.6 0.8 4.3e-08 38.2 0.4 1.3 1 sp|P12548|GLB73_CHITH Globin CTT-VIIB-3 OS=Chironomus thummi
- 3.3e-08 38.6 0.1 3.7e-08 38.4 0.0 1.0 1 sp|P04251|GLB1B_ANATR Globin-1 subunit beta OS=Anadara trape
- 3.9e-08 38.4 0.0 5.8e-08 37.8 0.0 1.3 1 sp|P02226|GLB7A_CHITH Globin CTT-VIIA OS=Chironomus thummi t
- 4.3e-08 38.2 0.9 5.6e-08 37.9 0.3 1.3 1 sp|P18966|GLB78_CHITP Globin CTT-VIIB-8 OS=Chironomus thummi
- 5.3e-08 37.9 0.1 6.2e-08 37.7 0.0 1.0 1 sp|Q42831|HBL_HORVU Non-symbiotic hemoglobin OS=Hordeum vu
- 6.9e-08 37.6 1.1 8.5e-08 37.3 0.5 1.3 1 sp|P84296|GLB74_CHITH Globin CTT-VIIB-4 OS=Chironomus thummi
- 6.9e-08 37.6 1.1 8.5e-08 37.3 0.5 1.3 1 sp|P84297|GLB74_CHITP Globin CTT-VIIB-4 OS=Chironomus thummi
- 8.8e-08 37.2 0.0 9.9e-08 37.1 0.0 1.0 1 sp|P25165|GLBM_ANATR Globin, minor OS=Anadara trapezia PE=3
- 9.1e-08 37.2 0.2 1e-07 37.0 0.2 1.0 1 sp|O24521|HBL2_ARATH Non-symbiotic hemoglobin 2 OS=Arabidop
- 9.9e-08 37.1 0.4 1.2e-07 36.8 0.3 1.1 1 sp|P02224|GLB6_CHITH Globin CTT-VI OS=Chironomus thummi thu
- 1.1e-07 36.9 0.5 1.4e-07 36.6 0.3 1.1 1 sp|O24520|HBL1_ARATH Non-symbiotic hemoglobin 1 OS=Arabidop
- 1.3e-07 36.7 0.2 1.5e-07 36.5 0.1 1.0 1 sp|P14394|GLB2_ANATR Globin-2B OS=Anadara trapezia PE=1 SV=
- 1.3e-07 36.7 0.1 1.6e-07 36.4 0.1 1.1 1 sp|Q9M630|HBL0_PHYPA Non-symbiotic hemoglobin 0 OS=Physcomi
- 1.5e-07 36.4 0.9 2.2e-07 35.9 0.6 1.2 1 sp|P29242|GLB77_CHITP Globin CTT-VIIB-7 OS=Chironomus thummi
- 1.7e-07 36.3 0.1 2e-07 36.1 0.1 1.0 1 sp|P02227|GLB8_CHITH Globin CTT-VIII OS=Chironomus thummi t
- 1.9e-07 36.2 1.3 2.1e-07 36.0 0.5 1.3 1 sp|P12549|GLB76_CHITH Globin CTT-VIIB-6 OS=Chironomus thummi
- 1.9e-07 36.2 0.0 2.1e-07 36.0 0.0 1.0 1 sp|Q99JA8|NGB_RAT Neuroglobin OS=Rattus norvegicus GN=Ng
- 1.9e-07 36.1 1.2 2.3e-07 35.9 0.5 1.3 1 sp|Q23762|GLB7X_CHITH Globin CTT-VIIB-10 OS=Chironomus thumm
- 1.9e-07 36.1 0.0 2.4e-07 35.8 0.0 1.1 1 sp|P13579|GLB4_LUMTE Extracellular globin-4 OS=Lumbricus te
- 2.2e-07 35.9 0.2 0.042 18.8 0.0 2.4 2 sp|P28316|GLB_ASCSU Extracellular globin OS=Ascaris suum P
- 2.6e-07 35.7 0.0 3.1e-07 35.5 0.0 1.1 1 sp|P19364|GLB7_ARTSX Extracellular globin-E7 OS=Artemia sp.
- 3.3e-07 35.4 1.0 4.8e-07 34.8 0.7 1.2 1 sp|P12550|GLB77_CHITH Globin CTT-VIIB-7 OS=Chironomus thummi
- 3.4e-07 35.3 1.5 3.7e-07 35.2 0.6 1.3 1 sp|P84298|GLB75_CHITH Globin CTT-VIIB-5/CTT-VIIB-9 OS=Chiron
- 3.4e-07 35.3 1.5 3.7e-07 35.2 0.6 1.3 1 sp|P84299|GLB75_CHITP Globin CTT-VIIB-5/CTT-VIIB-9 OS=Chiron
- 4e-07 35.1 0.7 5.5e-07 34.6 0.5 1.3 1 sp|P02228|GLB10_CHITH Globin CTT-X OS=Chironomus thummi thum
- 4.1e-07 35.0 0.0 5e-07 34.8 0.0 1.0 1 sp|Q6WZ20|NGB_MACMU Neuroglobin OS=Macaca mulatta GN=NGB P
- 4.1e-07 35.0 0.0 5e-07 34.8 0.0 1.0 1 sp|Q3KN66|NGB_PANTR Neuroglobin OS=Pan troglodytes GN=NGB
- 4.1e-07 35.0 0.0 5e-07 34.8 0.0 1.0 1 sp|Q9NPG2|NGB_HUMAN Neuroglobin OS=Homo sapiens GN=NGB PE=
- 4.1e-07 35.0 0.0 5e-07 34.8 0.0 1.0 1 sp|Q6WZ18|NGB_CANFA Neuroglobin OS=Canis familiaris GN=NGB
- 4.2e-07 35.0 0.7 4.9e-07 34.8 0.5 1.1 1 sp|O04985|HBL2_ORYSJ Non-symbiotic hemoglobin 2 OS=Oryza sa
- 5.3e-07 34.7 1.2 6.5e-07 34.4 0.9 1.0 1 sp|Q9FVL0|HBL1_MEDSA Non-symbiotic hemoglobin 1 OS=Medicago
- 5.5e-07 34.6 0.0 6.1e-07 34.5 0.0 1.0 1 sp|Q9ER97|NGB_MOUSE Neuroglobin OS=Mus musculus GN=Ngb PE=
- 5.6e-07 34.6 0.7 6.6e-07 34.4 0.5 1.0 1 sp|P68168|HBPL_PARAD Non-legume hemoglobin OS=Parasponia an
- 5.6e-07 34.6 0.7 6.6e-07 34.4 0.5 1.0 1 sp|P68169|HBPL_PARRI Non-legume hemoglobin OS=Parasponia ri
- 5.8e-07 34.6 0.0 6.7e-07 34.4 0.0 1.0 1 sp|Q6WZ17|NGB_PIG Neuroglobin OS=Sus scrofa GN=NGB PE=2
- 5.8e-07 34.6 1.3 7.4e-07 34.2 0.9 1.1 1 sp|O04986|HBL1_ORYSJ Non-symbiotic hemoglobin 1 OS=Oryza sa
- 9.4e-07 33.9 0.0 1.1e-06 33.6 0.0 1.0 1 sp|Q6WZ19|NGB_BOVIN Neuroglobin OS=Bos taurus GN=NGB PE=2
- 9.5e-07 33.9 0.0 1.1e-06 33.7 0.0 1.0 1 sp|Q6EV97|NGB_RABIT Neuroglobin OS=Oryctolagus cuniculus G
- 1e-06 33.8 0.8 1.3e-06 33.4 0.6 1.1 1 sp|Q9M593|HBL_ZEAMP Non-symbiotic hemoglobin OS=Zea mays s
- 1.1e-06 33.7 0.0 1.3e-06 33.5 0.0 1.1 1 sp|P13578|GLB3_TYLHE Extracellular globin-2B OS=Tylorrhynch
- 1.6e-06 33.1 0.1 2.3e-06 32.6 0.0 1.3 1 sp|P02223|GLB9_CHITH Globin CTT-IX OS=Chironomus thummi thu
- 2e-06 32.8 0.1 2.3e-06 32.6 0.1 1.0 1 sp|P28010|LGB4_MEDSA Leghemoglobin OS=Medicago sativa GN=LB
- 2.1e-06 32.7 0.7 2.7e-06 32.4 0.5 1.1 1 sp|Q9FY42|HBL_MAIZE Non-symbiotic hemoglobin OS=Zea mays G
- 2.4e-06 32.5 0.2 5.5e-06 31.4 0.1 1.5 1 sp|P15447|GLB4_GLYDI Globin, monomeric component M-IV OS=Gl
- 3.5e-06 32.0 0.0 4.3e-06 31.7 0.0 1.1 1 sp|P11582|GLBE_CHITH Globin CTT-E/E' OS=Chironomus thummi t
- 4.6e-06 31.6 0.1 6.6e-06 31.1 0.1 1.2 1 sp|P18968|GLBY_CHITP Globin CTT-Y OS=Chironomus thummi pige
- 5.9e-06 31.3 0.1 7e-06 31.1 0.0 1.1 1 sp|P02230|GLB4_CHITH Globin CTT-IV OS=Chironomus thummi thu
- 7.3e-06 31.0 1.4 8.5e-06 30.8 1.0 1.0 1 sp|P02240|LGB2_LUPLU Leghemoglobin-2 OS=Lupinus luteus PE=1
- 9.9e-06 30.6 0.1 1.1e-05 30.4 0.1 1.0 1 sp|O48668|LGB2_PEA Leghemoglobin Lb5-10 OS=Pisum sativum
- 1e-05 30.5 0.3 1.2e-05 30.3 0.2 1.1 1 sp|Q94FT7|HBL4_ORYSJ Non-symbiotic hemoglobin 4 OS=Oryza sa
- 1.1e-05 30.4 0.7 1.4e-05 30.1 0.5 1.1 1 sp|Q94FT8|HBL3_ORYSJ Non-symbiotic hemoglobin 3 OS=Oryza sa
- 1.1e-05 30.4 0.7 1.3e-05 30.1 0.5 1.0 1 sp|P09187|LGB1_MEDSA Leghemoglobin-1 OS=Medicago sativa PE=
- 1.2e-05 30.3 0.3 1.2e-05 30.3 0.2 1.1 1 sp|Q9SAZ0|LGB6_PEA Leghemoglobin Lb120-34 OS=Pisum sativu
- 1.3e-05 30.1 0.2 1.6e-05 29.9 0.1 1.1 1 sp|P14962|LGB3_MEDSA Leghemoglobin-3 OS=Medicago sativa PE=
- 1.4e-05 30.1 0.3 1.5e-05 30.0 0.2 1.1 1 sp|O80405|LGB3_PEA Leghemoglobin Lb120-1 OS=Pisum sativum
- 1.7e-05 29.8 0.0 2.1e-05 29.5 0.0 1.2 1 sp|Q7M419|GLBA1_OLIMA Extracellular giant hemoglobin major g
- 1.7e-05 29.8 0.0 2.1e-05 29.5 0.0 1.1 1 sp|P15469|GLB3_LAMSP Giant hemoglobin AIII chain OS=Lamelli
- 1.9e-05 29.6 0.1 2.7e-05 29.1 0.0 1.3 1 sp|P02221|GLB1_CHITH Globin CTT-I/CTT-IA OS=Chironomus thum
- 2.2e-05 29.5 0.2 2.3e-05 29.4 0.1 1.1 1 sp|Q9SAZ1|LGB4_PEA Leghemoglobin Lb120-8 OS=Pisum sativum
- 2.6e-05 29.2 0.3 4.8e-05 28.3 0.2 1.6 1 sp|Q23760|GLBW_CHITH Globin CTT-W OS=Chironomus thummi thum
- 2.8e-05 29.1 0.4 4.9e-05 28.3 0.3 1.6 1 sp|P29244|GLBW_CHITP Globin CTT-W OS=Chironomus thummi pige
- 2.9e-05 29.0 0.0 2.9e-05 29.0 0.0 1.0 1 sp|P18980|HBA2_UROHA Hemoglobin subunit alpha-2 (Fragment)
- 4.1e-05 28.6 0.4 5.1e-05 28.3 0.2 1.1 1 sp|P07803|HBL_TRETO Non-symbiotic hemoglobin OS=Trema tome
- 4.4e-05 28.5 2.0 5.2e-05 28.2 1.4 1.1 1 sp|Q947C5|HBL1_GOSHI Non-symbiotic hemoglobin 1 OS=Gossypiu
- 4.4e-05 28.4 0.2 4.9e-05 28.3 0.1 1.1 1 sp|P41260|GLB1_LUCPE Hemoglobin-1 OS=Lucina pectinata PE=1
- 5.2e-05 28.2 0.1 6.8e-05 27.8 0.0 1.2 1 sp|Q7M418|GLBB2_OLIMA Extracellular giant hemoglobin major g
- 7e-05 27.8 0.0 8.8e-05 27.5 0.0 1.1 1 sp|P02218|GLB2_LUMTE Extracellular globin-2 OS=Lumbricus te
- 7.2e-05 27.8 0.0 8.1e-05 27.6 0.0 1.1 1 sp|P41262|GLB3_LUCPE Hemoglobin-3 OS=Lucina pectinata PE=1
- 8.4e-05 27.5 0.2 8.9e-05 27.5 0.1 1.1 1 sp|O48665|LGB5_PEA Leghemoglobin Lb120-29 OS=Pisum sativu
- 0.0001 27.3 0.1 0.00012 27.0 0.0 1.1 1 sp|P02233|LGB1_PEA Leghemoglobin-1 OS=Pisum sativum PE=1
- 0.00012 27.1 0.0 0.00012 27.0 0.0 1.0 1 sp|P85313|HBBB_CATCL Hemoglobin subunit beta-B (Fragment) O
- 0.00017 26.6 5.4 0.17 16.8 0.2 2.4 2 sp|P26914|GLB_PSEDC Extracellular globin OS=Pseudoterranov
- 0.00017 26.5 1.8 0.00022 26.2 1.2 1.1 1 sp|P42511|LGB_CANLI Leghemoglobin OS=Canavalia lineata PE=
- 0.00019 26.4 0.1 0.00024 26.1 0.1 1.1 1 sp|P83122|GLB1_PHEHI Extracellular globin-1 OS=Pheretima hi
- 0.00019 26.4 0.3 0.00024 26.1 0.2 1.1 1 sp|Q941P9|HBL2_SOLLC Non-symbiotic hemoglobin 2 OS=Solanum
- 0.0002 26.3 0.2 0.00023 26.1 0.2 1.1 1 sp|P27992|LGB1_MEDTR Leghemoglobin 1 OS=Medicago truncatula
- 0.00024 26.1 0.0 0.00028 25.9 0.0 1.1 1 sp|P80592|GLBB_RIFPA Giant hemoglobins B chain OS=Riftia pa
- 0.00026 25.9 0.2 0.00032 25.7 0.1 1.1 1 sp|P27993|LGB2_MEDTR Leghemoglobin 2 OS=Medicago truncatula
- 0.0003 25.7 0.1 0.0004 25.4 0.1 1.1 1 sp|P11740|GLB1_PHESE Extracellular globin-1 OS=Pheretima si
- 0.00032 25.7 0.3 0.00037 25.5 0.2 1.1 1 sp|Q9FEP8|LGB_LOTJA Leghemoglobin OS=Lotus japonicus PE=2
- 0.00032 25.6 0.1 0.00038 25.4 0.1 1.1 1 sp|P93849|LGB3_VICFA Leghemoglobin 49 OS=Vicia faba PE=2 SV
- 0.00062 24.7 0.0 0.00084 24.3 0.0 1.2 1 sp|P02231|GLBT_CHITH Globin CTT-IIIA OS=Chironomus thummi t
- 0.00064 24.7 0.2 0.00069 24.6 0.1 1.1 1 sp|P10816|LGB3_SESRO Leghemoglobin 3 OS=Sesbania rostrata G
- 0.00079 24.4 0.2 0.00093 24.2 0.1 1.1 1 sp|P14848|LGB2_SESRO Leghemoglobin 2 OS=Sesbania rostrata G
- 0.00079 24.4 1.0 0.0012 23.8 0.7 1.3 1 sp|P80721|GLB_PAREP Globin-3 OS=Paramphistomum epiclitum P
- 0.00097 24.1 0.1 0.0013 23.7 0.1 1.2 1 sp|P80722|GLB_ISOHY Globin OS=Isoparorchis hypselobagri PE
- 0.0011 24.0 0.0 0.0013 23.7 0.0 1.1 1 sp|P09966|GLB2_TYLHE Extracellular globin-2A OS=Tylorrhynch
- 0.0017 23.3 0.1 0.0026 22.7 0.0 1.4 1 sp|P02229|GLB3_CHITH Globin CTT-III OS=Chironomus thummi th
- 0.0019 23.2 0.6 0.0023 22.9 0.4 1.1 1 sp|P02234|LGBA_PHAVU Leghemoglobin A OS=Phaseolus vulgaris
- 0.0021 23.0 0.0 0.0022 23.0 0.0 1.1 1 sp|P22431|GLB3_CHITP Globin CTP-III OS=Chironomus thummi pi
- 0.0022 22.9 0.0 0.0023 22.9 0.0 1.0 1 sp|P85312|HBBA_CATCL Hemoglobin subunit beta-A (Fragment) O
- 0.0023 22.9 0.6 0.0027 22.6 0.4 1.1 1 sp|P27199|LGB_PSOTE Leghemoglobin OS=Psophocarpus tetragon
- 0.0024 22.8 0.0 0.003 22.5 0.0 1.1 1 sp|P18202|GLB_TUBTU Globin, extracellular monomeric OS=Tub
- 0.0025 22.7 0.5 0.0031 22.5 0.3 1.1 1 sp|O04939|LGB2_PHAVU Leghemoglobin OS=Phaseolus vulgaris PE
- 0.004 22.1 0.0 0.005 21.8 0.0 1.1 1 sp|P08924|GLB1_LUMTE Extracellular globin-1 OS=Lumbricus te
- 0.0045 21.9 0.0 0.0056 21.6 0.0 1.1 1 sp|Q7M413|GLBA2_OLIMA Extracellular giant hemoglobin major g
- 0.0049 21.8 0.1 0.0057 21.6 0.1 1.2 1 sp|P02232|LGB1_VICFA Leghemoglobin-1 OS=Vicia faba PE=1 SV=
- 0.0086 21.0 0.1 0.0097 20.9 0.1 1.1 1 sp|P93848|LGB2_VICFA Leghemoglobin 29 OS=Vicia faba GN=LB29
+ 6.5e-65 222.7 3.2 7.2e-65 222.6 3.2 1.0 1 sp|P02185|MYG_PHYMC Myoglobin OS=Physeter macrocephalus GN
+ 3.3e-63 217.2 0.1 3.7e-63 217.0 0.1 1.0 1 sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gor
+ 4.9e-63 216.6 0.0 5.4e-63 216.5 0.0 1.0 1 sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapien
+ 4.9e-63 216.6 0.0 5.4e-63 216.5 0.0 1.0 1 sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscu
+ 4.9e-63 216.6 0.0 5.4e-63 216.5 0.0 1.0 1 sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglod
+ 7e-63 216.1 3.0 7.7e-63 216.0 3.0 1.0 1 sp|P02177|MYG_ESCGI Myoglobin OS=Eschrichtius gibbosus GN=
+ 7e-63 216.1 3.0 7.7e-63 216.0 3.0 1.0 1 sp|Q0KIY1|MYG_BALBO Myoglobin OS=Balaenoptera borealis GN=
+ 7e-63 216.1 3.0 7.7e-63 216.0 3.0 1.0 1 sp|Q0KIY2|MYG_BALED Myoglobin OS=Balaenoptera edeni GN=MB
+ 7.6e-63 216.0 0.1 8.4e-63 215.9 0.1 1.0 1 sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates l
+ 1.1e-62 215.6 0.2 1.2e-62 215.4 0.2 1.0 1 sp|P02033|HBB_PILBA Hemoglobin subunit beta OS=Piliocolobu
+ 1.1e-62 215.5 3.7 1.2e-62 215.3 3.7 1.0 1 sp|P02178|MYG_MEGNO Myoglobin OS=Megaptera novaeangliae GN
+ 2.3e-62 214.4 1.8 2.6e-62 214.3 1.8 1.0 1 sp|P02174|MYG_GLOME Myoglobin OS=Globicephala melas GN=MB
+ 4.2e-62 213.6 1.8 4.6e-62 213.5 1.8 1.0 1 sp|P02173|MYG_ORCOR Myoglobin OS=Orcinus orca GN=MB PE=1 S
+ 4.6e-62 213.5 4.2 5.1e-62 213.3 4.2 1.0 1 sp|P02179|MYG_BALAC Myoglobin OS=Balaenoptera acutorostrat
+ 4.9e-62 213.4 1.3 5.5e-62 213.2 1.3 1.0 1 sp|P02181|MYG_INIGE Myoglobin OS=Inia geoffrensis GN=MB PE
+ 5.3e-62 213.3 0.1 5.9e-62 213.1 0.1 1.0 1 sp|P02028|HBB_CHLAE Hemoglobin subunit beta OS=Chlorocebus
+ 5.6e-62 213.2 4.2 6.3e-62 213.0 4.2 1.0 1 sp|P02184|MYG_KOGSI Myoglobin OS=Kogia sima GN=MB PE=1 SV=
+ 5.6e-62 213.2 4.2 6.3e-62 213.0 4.2 1.0 1 sp|Q0KIY5|MYG_KOGBR Myoglobin OS=Kogia breviceps GN=MB PE=
+ 7.1e-62 212.9 0.2 7.9e-62 212.7 0.2 1.0 1 sp|P02040|HBB_CEBAL Hemoglobin subunit beta OS=Cebus albif
+ 1e-61 212.3 1.8 1.2e-61 212.2 1.8 1.0 1 sp|Q0KIY3|MYG_PENEL Myoglobin OS=Peponocephala electra GN=
+ 1.1e-61 212.3 0.1 1.2e-61 212.1 0.1 1.0 1 sp|Q6WN25|HBB_LAGLA Hemoglobin subunit beta OS=Lagothrix l
+ 1.1e-61 212.3 2.0 1.2e-61 212.1 2.0 1.0 1 sp|P68276|MYG_DELDE Myoglobin OS=Delphinus delphis GN=MB P
+ 1.1e-61 212.3 2.0 1.2e-61 212.1 2.0 1.0 1 sp|P68279|MYG_TURTR Myoglobin OS=Tursiops truncatus GN=MB
+ 1.1e-61 212.3 2.0 1.2e-61 212.1 2.0 1.0 1 sp|Q0KIY7|MYG1_STEAT Myoglobin-1 OS=Stenella attenuata GN=M
+ 1.1e-61 212.2 0.1 1.3e-61 212.1 0.1 1.0 1 sp|P02032|HBB_SEMEN Hemoglobin subunit beta OS=Semnopithec
+ 1.2e-61 212.2 1.4 1.3e-61 212.0 1.4 1.0 1 sp|P68277|MYG_PHODA Myoglobin OS=Phocoenoides dalli dalli
+ 1.2e-61 212.2 1.4 1.3e-61 212.0 1.4 1.0 1 sp|P68278|MYG_PHOPH Myoglobin OS=Phocoenoides phocoena GN=
+ 1.2e-61 212.1 0.2 1.4e-61 211.9 0.2 1.0 1 sp|P67821|HBB_CEBAP Hemoglobin subunit beta OS=Cebus apell
+ 1.2e-61 212.1 2.5 1.4e-61 211.9 2.5 1.0 1 sp|Q0KIY6|MYG2_STEAT Myoglobin-2 OS=Stenella attenuata GN=M
+ 1.4e-61 211.9 0.1 1.5e-61 211.8 0.1 1.0 1 sp|P08259|HBB_MANSP Hemoglobin subunit beta OS=Mandrillus
+ 1.4e-61 211.9 0.1 1.6e-61 211.7 0.1 1.0 1 sp|P19885|HBB_COLPO Hemoglobin subunit beta OS=Colobus pol
+ 1.5e-61 211.8 0.2 1.7e-61 211.7 0.2 1.0 1 sp|P67822|HBB_CEBCA Hemoglobin subunit beta OS=Cebus capuc
+ 2e-61 211.4 0.9 2.3e-61 211.2 0.9 1.0 1 sp|P13557|HBB_TARSY Hemoglobin subunit beta OS=Tarsius syr
+ 2.9e-61 210.9 1.8 3.2e-61 210.7 1.8 1.0 1 sp|P02169|MYG_LEPMU Myoglobin OS=Lepilemur mustelinus GN=M
+ 4e-61 210.4 0.2 4.4e-61 210.3 0.2 1.0 1 sp|P02055|HBB_MELME Hemoglobin subunit beta OS=Meles meles
+ 4e-61 210.4 0.7 4.5e-61 210.3 0.7 1.0 1 sp|P02051|HBB_TARBA Hemoglobin subunit beta OS=Tarsius ban
+ 4.1e-61 210.4 0.1 4.6e-61 210.2 0.1 1.0 1 sp|P02030|HBB_PAPCY Hemoglobin subunit beta OS=Papio cynoc
+ 4.2e-61 210.4 0.1 4.7e-61 210.2 0.1 1.0 1 sp|Q9TSP1|HBB_PAPAN Hemoglobin subunit beta OS=Papio anubi
+ 4.6e-61 210.2 0.1 5.1e-61 210.1 0.1 1.0 1 sp|P68222|HBB_MACFU Hemoglobin subunit beta OS=Macaca fusc
+ 4.6e-61 210.2 0.1 5.1e-61 210.1 0.1 1.0 1 sp|P68223|HBB_MACFA Hemoglobin subunit beta OS=Macaca fasc
+ 4.6e-61 210.2 0.1 5.1e-61 210.1 0.1 1.0 1 sp|P68224|HBB_MACSP Hemoglobin subunit beta OS=Macaca spec
+ 4.6e-61 210.2 0.1 5.1e-61 210.1 0.1 1.0 1 sp|P68225|HBB_MACNE Hemoglobin subunit beta OS=Macaca neme
+ 4.7e-61 210.2 0.1 5.2e-61 210.1 0.1 1.0 1 sp|P02036|HBB_SAISC Hemoglobin subunit beta OS=Saimiri sci
+ 6.3e-61 209.8 0.1 7e-61 209.6 0.1 1.0 1 sp|P68232|HBB_ATEGE Hemoglobin subunit beta OS=Ateles geof
+ 6.3e-61 209.8 0.1 7e-61 209.6 0.1 1.0 1 sp|P68234|HBB_ATEBE Hemoglobin subunit beta OS=Ateles belz
+ 6.7e-61 209.7 0.1 7.5e-61 209.5 0.1 1.0 1 sp|Q6WN29|HBB_ALOBE Hemoglobin subunit beta OS=Alouatta be
+ 6.8e-61 209.7 0.1 7.6e-61 209.5 0.1 1.0 1 sp|P02026|HBB_MACMU Hemoglobin subunit beta OS=Macaca mula
+ 6.9e-61 209.7 0.2 7.6e-61 209.5 0.2 1.0 1 sp|P21201|HBB_VULVU Hemoglobin subunit beta OS=Vulpes vulp
+ 7.7e-61 209.5 0.1 8.5e-61 209.4 0.1 1.0 1 sp|P02035|HBB_AOTTR Hemoglobin subunit beta OS=Aotus trivi
+ 8.3e-61 209.4 0.1 9.2e-61 209.3 0.1 1.0 1 sp|P02039|HBB_SAGFU Hemoglobin subunit beta OS=Saguinus fu
+ 8.4e-61 209.4 0.6 9.3e-61 209.2 0.6 1.0 1 sp|P02166|MYG_PERPO Myoglobin OS=Perodicticus potto edwars
+ 8.7e-61 209.3 0.1 9.7e-61 209.2 0.1 1.0 1 sp|P02038|HBB_SAGMY Hemoglobin subunit beta OS=Saguinus my
+ 8.7e-61 209.3 0.1 9.7e-61 209.2 0.1 1.0 1 sp|P02029|HBB_THEGE Hemoglobin subunit beta OS=Theropithec
+ 8.9e-61 209.3 0.2 9.8e-61 209.2 0.2 1.0 1 sp|P18985|HBB_CALAR Hemoglobin subunit beta OS=Callithrix
+ 9e-61 209.3 0.2 1e-60 209.1 0.2 1.0 1 sp|Q6WN28|HBB_CALJA Hemoglobin subunit beta OS=Callithrix
+ 9.9e-61 209.2 0.1 1.1e-60 209.0 0.1 1.0 1 sp|Q6WN27|HBB_PITPI Hemoglobin subunit beta OS=Pithecia pi
+ 1.1e-60 209.0 0.1 1.2e-60 208.9 0.1 1.0 1 sp|P68054|HBB_SAGNI Hemoglobin subunit beta OS=Saguinus ni
+ 1.1e-60 209.0 0.1 1.2e-60 208.9 0.1 1.0 1 sp|P68055|HBB_SAGOE Hemoglobin subunit beta OS=Saguinus oe
+ 1.2e-60 208.9 4.4 1.3e-60 208.8 4.4 1.0 1 sp|P02180|MYG_BALPH Myoglobin OS=Balaenoptera physalus GN=
+ 1.2e-60 208.9 0.1 1.4e-60 208.7 0.1 1.0 1 sp|P02031|HBB_CERAT Hemoglobin subunit beta OS=Cercocebus
+ 1.3e-60 208.7 3.8 1.5e-60 208.6 3.8 1.0 1 sp|P02182|MYG_ZIPCA Myoglobin OS=Ziphius cavirostris GN=MB
+ 1.5e-60 208.6 0.1 1.7e-60 208.4 0.1 1.0 1 sp|P02044|HBD_ATEGE Hemoglobin subunit delta OS=Ateles geo
+ 2.4e-60 207.9 1.2 2.6e-60 207.8 1.2 1.0 1 sp|P68082|MYG_HORSE Myoglobin OS=Equus caballus GN=MB PE=1
+ 2.4e-60 207.9 1.2 2.6e-60 207.8 1.2 1.0 1 sp|P68083|MYG_EQUBU Myoglobin OS=Equus burchelli GN=MB PE=
+ 2.7e-60 207.7 0.2 3e-60 207.6 0.2 1.0 1 sp|P60524|HBB_CANFA Hemoglobin subunit beta OS=Canis famil
+ 2.7e-60 207.7 0.2 3e-60 207.6 0.2 1.0 1 sp|P60525|HBB_CANLA Hemoglobin subunit beta OS=Canis latra
+ 2.7e-60 207.7 0.2 3e-60 207.6 0.2 1.0 1 sp|P60526|HBB_CHRBR Hemoglobin subunit beta OS=Chrysocyon
+ 2.9e-60 207.6 0.0 3.3e-60 207.5 0.0 1.0 1 sp|P61772|HBD_PANTR Hemoglobin subunit delta OS=Pan troglo
+ 2.9e-60 207.6 0.0 3.3e-60 207.5 0.0 1.0 1 sp|P61773|HBD_GORGO Hemoglobin subunit delta OS=Gorilla go
+ 2.9e-60 207.6 0.0 3.3e-60 207.5 0.0 1.0 1 sp|P61774|HBD_HYLLA Hemoglobin subunit delta OS=Hylobates
+ 2.9e-60 207.6 0.0 3.3e-60 207.5 0.0 1.0 1 sp|P61775|HBD_PONPY Hemoglobin subunit delta OS=Pongo pygm
+ 2.9e-60 207.6 4.4 3.2e-60 207.5 4.4 1.0 1 sp|Q0KIY9|MYG_INDPC Myoglobin OS=Indopacetus pacificus GN=
+ 3e-60 207.6 0.1 3.3e-60 207.4 0.1 1.0 1 sp|Q6WN22|HBB_ATEPA Hemoglobin subunit beta OS=Ateles pani
+ 3e-60 207.6 0.2 3.3e-60 207.5 0.2 1.0 1 sp|P68046|HBB_ODORO Hemoglobin subunit beta OS=Odobenus ro
+ 3e-60 207.6 0.2 3.3e-60 207.5 0.2 1.0 1 sp|P68047|HBB_ARCGA Hemoglobin subunit beta OS=Arctocephal
+ 3.3e-60 207.5 0.2 3.6e-60 207.3 0.2 1.0 1 sp|P09909|HBB_PHOVI Hemoglobin subunit beta OS=Phoca vitul
+ 3.6e-60 207.3 3.7 4e-60 207.2 3.7 1.0 1 sp|P02183|MYG_MESCA Myoglobin OS=Mesoplodon carlhubbsi GN=
+ 3.6e-60 207.3 3.7 4e-60 207.2 3.7 1.0 1 sp|Q0KIY0|MYG_MESST Myoglobin OS=Mesoplodon stejnegeri GN=
+ 4.5e-60 207.0 0.3 5e-60 206.9 0.3 1.0 1 sp|P15449|HBB_MELCA Hemoglobin subunit beta OS=Mellivora c
+ 5.6e-60 206.7 0.1 6.2e-60 206.6 0.1 1.0 1 sp|Q6WN21|HBB_CALGO Hemoglobin subunit beta OS=Callimico g
+ 5.6e-60 206.7 0.3 6.2e-60 206.6 0.3 1.0 1 sp|P23602|HBB_MUSLU Hemoglobin subunit beta OS=Mustela lut
+ 5.8e-60 206.7 0.9 6.4e-60 206.5 0.9 1.0 1 sp|P02165|MYG_TUPGL Myoglobin OS=Tupaia glis GN=MB PE=1 SV
+ 5.9e-60 206.6 0.2 6.8e-60 206.4 0.2 1.0 1 sp|P02208|GLB5_PETMA Globin-5 OS=Petromyzon marinus PE=1 SV
+ 7.4e-60 206.3 0.3 8.2e-60 206.2 0.3 1.0 1 sp|Q6WN20|HBB_CALTO Hemoglobin subunit beta OS=Callicebus
+ 7.5e-60 206.3 0.1 8.3e-60 206.1 0.1 1.0 1 sp|P33499|HBD_ATEFU Hemoglobin subunit delta OS=Ateles fus
+ 7.6e-60 206.3 0.1 8.4e-60 206.1 0.1 1.0 1 sp|Q6WN26|HBB_AOTAZ Hemoglobin subunit beta OS=Aotus azara
+ 8.7e-60 206.1 0.1 9.6e-60 205.9 0.1 1.0 1 sp|P18989|HBB_PROLO Hemoglobin subunit beta OS=Procyon lot
+ 1e-59 205.8 0.0 1.2e-59 205.7 0.0 1.0 1 sp|P02042|HBD_HUMAN Hemoglobin subunit delta OS=Homo sapie
+ 1.1e-59 205.8 1.6 1.2e-59 205.7 1.6 1.0 1 sp|P68080|MYG_PHOVI Myoglobin OS=Phoca vitulina GN=MB PE=1
+ 1.1e-59 205.8 1.6 1.2e-59 205.7 1.6 1.0 1 sp|P68081|MYG_HALGR Myoglobin OS=Halichoerus grypus GN=MB
+ 1.1e-59 205.7 0.1 1.2e-59 205.6 0.1 1.0 1 sp|P19886|HBD_COLPO Hemoglobin subunit delta OS=Colobus po
+ 1.4e-59 205.5 0.2 1.5e-59 205.3 0.2 1.0 1 sp|P68052|HBB_PTEBR Hemoglobin subunit beta OS=Pteronura b
+ 1.4e-59 205.5 0.2 1.5e-59 205.3 0.2 1.0 1 sp|P68053|HBB_MARFO Hemoglobin subunit beta OS=Martes foin
+ 1.5e-59 205.3 0.1 1.7e-59 205.2 0.1 1.0 1 sp|P10893|HBB_LUTLU Hemoglobin subunit beta OS=Lutra lutra
+ 1.6e-59 205.2 0.1 1.8e-59 205.1 0.1 1.0 1 sp|P26916|HBB_NASNA Hemoglobin subunit beta OS=Nasua nasua
+ 1.6e-59 205.2 3.2 1.8e-59 205.1 3.2 1.0 1 sp|P02170|MYG_RABIT Myoglobin OS=Oryctolagus cuniculus GN=
+ 1.8e-59 205.1 0.9 2e-59 204.9 0.9 1.0 1 sp|P18984|HBB_BALAC Hemoglobin subunit beta OS=Balaenopter
+ 2.4e-59 204.6 0.3 2.7e-59 204.5 0.3 1.0 1 sp|P02167|MYG_NYCCO Myoglobin OS=Nycticebus coucang GN=MB
+ 2.5e-59 204.6 0.3 2.7e-59 204.5 0.3 1.0 1 sp|P02145|MYG_PANTR Myoglobin OS=Pan troglodytes GN=MB PE=
+ 2.6e-59 204.5 0.2 3e-59 204.3 0.2 1.0 1 sp|Q9I9I3|GLB2_PETMA Globin-2 OS=Petromyzon marinus PE=2 SV
+ 2.7e-59 204.5 0.2 3e-59 204.4 0.2 1.0 1 sp|P15166|HBB_LEPWE Hemoglobin subunit beta OS=Leptonychot
+ 2.9e-59 204.4 1.2 3.3e-59 204.2 1.2 1.0 1 sp|P13558|HBD_TARSY Hemoglobin subunit delta OS=Tarsius sy
+ 3e-59 204.3 0.7 3.4e-59 204.2 0.7 1.0 1 sp|P02189|MYG_PIG Myoglobin OS=Sus scrofa GN=MB PE=1 SV=
+ 3.2e-59 204.2 1.6 3.6e-59 204.1 1.6 1.0 1 sp|Q9TS35|HBA1_HYLLA Hemoglobin subunit alpha-1 OS=Hylobate
+ 3.3e-59 204.2 0.1 3.7e-59 204.1 0.1 1.0 1 sp|P68011|HBB_URSMA Hemoglobin subunit beta OS=Ursus marit
+ 3.3e-59 204.2 0.1 3.7e-59 204.1 0.1 1.0 1 sp|P68012|HBB_URSTH Hemoglobin subunit beta OS=Ursus thibe
+ 3.3e-59 204.2 0.1 3.7e-59 204.1 0.1 1.0 1 sp|P68013|HBB_URSML Hemoglobin subunit beta OS=Ursus malay
+ 3.4e-59 204.2 0.2 3.8e-59 204.0 0.2 1.0 1 sp|P18983|HBB_AILME Hemoglobin subunit beta OS=Ailuropoda
+ 3.4e-59 204.2 1.3 3.8e-59 204.0 1.3 1.0 1 sp|P69905|HBA_HUMAN Hemoglobin subunit alpha OS=Homo sapie
+ 3.4e-59 204.2 1.3 3.8e-59 204.0 1.3 1.0 1 sp|P69906|HBA_PANPA Hemoglobin subunit alpha OS=Pan panisc
+ 3.4e-59 204.2 1.3 3.8e-59 204.0 1.3 1.0 1 sp|P69907|HBA_PANTR Hemoglobin subunit alpha OS=Pan troglo
+ 4.4e-59 203.8 0.3 4.8e-59 203.7 0.3 1.0 1 sp|P11343|MYG_LUTLU Myoglobin OS=Lutra lutra GN=MB PE=1 SV
+ 4.6e-59 203.7 0.4 5.1e-59 203.6 0.4 1.0 1 sp|P02147|MYG_GORBE Myoglobin OS=Gorilla gorilla beringei
+ 5.4e-59 203.5 0.3 6e-59 203.4 0.3 1.0 1 sp|P08535|HBB_LEPEU Hemoglobin subunit beta OS=Lepus europ
+ 5.9e-59 203.4 0.9 6.5e-59 203.3 0.9 1.0 1 sp|P02161|MYG_ZALCA Myoglobin OS=Zalophus californianus GN
+ 5.9e-59 203.4 1.3 6.6e-59 203.2 1.3 1.0 1 sp|P07421|HBA_CEBCA Hemoglobin subunit alpha OS=Cebus capu
+ 6.9e-59 203.2 0.1 7.7e-59 203.0 0.1 1.0 1 sp|Q03902|HBD_OTOCR Hemoglobin subunit delta OS=Otolemur c
+ 7.3e-59 203.1 0.4 8e-59 203.0 0.4 1.0 1 sp|P20856|MYG_CTEGU Myoglobin OS=Ctenodactylus gundi GN=MB
+ 7.5e-59 203.0 0.2 8.3e-59 202.9 0.2 1.0 1 sp|P68044|HBB_MUSPF Hemoglobin subunit beta OS=Mustela put
+ 7.5e-59 203.0 0.2 8.3e-59 202.9 0.2 1.0 1 sp|P68045|HBB_MUSPU Hemoglobin subunit beta OS=Mustela put
+ 8.3e-59 202.9 1.0 9.2e-59 202.8 1.0 1.0 1 sp|P32428|MYG_ONDZI Myoglobin OS=Ondatra zibethicus GN=MB
+ 8.7e-59 202.8 1.4 9.6e-59 202.7 1.4 1.0 1 sp|P14396|MYG_CASFI Myoglobin OS=Castor fiber GN=MB PE=1 S
+ 9.1e-59 202.8 1.3 1e-58 202.6 1.3 1.0 1 sp|P18972|HBA_CALAR Hemoglobin subunit alpha OS=Callithrix
+ 9.2e-59 202.8 0.2 1e-58 202.6 0.2 1.0 1 sp|Q5XLE5|HBD_AILME Hemoglobin subunit delta OS=Ailuropoda
+ 9.2e-59 202.8 0.3 1e-58 202.6 0.3 1.0 1 sp|P02144|MYG_HUMAN Myoglobin OS=Homo sapiens GN=MB PE=1 S
+ 1.1e-58 202.5 1.2 1.2e-58 202.4 1.2 1.0 1 sp|P01923|HBA_GORGO Hemoglobin subunit alpha OS=Gorilla go
+ 1.2e-58 202.4 3.4 1.3e-58 202.3 3.4 1.0 1 sp|P02192|MYG_BOVIN Myoglobin OS=Bos taurus GN=MB PE=1 SV=
+ 1.2e-58 202.4 3.4 1.3e-58 202.3 3.4 1.0 1 sp|P86873|MYG_BISBI Myoglobin OS=Bison bison GN=MB PE=1 SV
+ 1.2e-58 202.4 3.4 1.3e-58 202.3 3.4 1.0 1 sp|Q2MJN4|MYG_BOSMU Myoglobin OS=Bos mutus grunniens GN=MB
+ 1.2e-58 202.4 0.5 1.3e-58 202.2 0.5 1.0 1 sp|P02057|HBB_RABIT Hemoglobin subunit beta-1/2 OS=Oryctol
+ 1.3e-58 202.2 0.1 1.5e-58 202.1 0.1 1.0 1 sp|P02049|HBB_NYCCO Hemoglobin subunit beta OS=Nycticebus
+ 1.4e-58 202.2 0.3 1.5e-58 202.1 0.3 1.0 1 sp|P02163|MYG_ROUAE Myoglobin OS=Rousettus aegyptiacus GN=
+ 1.4e-58 202.2 0.2 1.6e-58 202.0 0.2 1.0 1 sp|P02207|GLB_LAMFL Globin OS=Lampetra fluviatilis PE=1 SV
+ 1.4e-58 202.2 0.1 1.5e-58 202.1 0.1 1.0 1 sp|P18986|HBB_CROCR Hemoglobin subunit beta OS=Crocuta cro
+ 1.4e-58 202.1 0.4 1.6e-58 202.0 0.4 1.0 1 sp|P62734|MYG_HYLAG Myoglobin OS=Hylobates agilis GN=MB PE
+ 1.4e-58 202.1 0.4 1.6e-58 202.0 0.4 1.0 1 sp|P62735|MYG_HYLSY Myoglobin OS=Hylobates syndactylus GN=
+ 1.5e-58 202.1 0.1 1.6e-58 202.0 0.1 1.0 1 sp|P18982|HBB_AILFU Hemoglobin subunit beta OS=Ailurus ful
+ 1.5e-58 202.0 2.7 1.7e-58 201.9 2.7 1.0 1 sp|P02190|MYG_SHEEP Myoglobin OS=Ovis aries GN=MB PE=1 SV=
+ 1.9e-58 201.7 1.0 2.1e-58 201.6 1.0 1.0 1 sp|P67817|HBA_ATEGE Hemoglobin subunit alpha OS=Ateles geo
+ 2e-58 201.7 1.1 2.2e-58 201.5 1.1 1.0 1 sp|P02168|MYG_OTOCR Myoglobin OS=Otolemur crassicaudatus G
+ 2e-58 201.6 0.1 2.3e-58 201.4 0.1 1.0 1 sp|P09968|GLB3_PETMA Globin-3 OS=Petromyzon marinus PE=1 SV
+ 2.1e-58 201.6 0.5 2.3e-58 201.5 0.5 1.0 1 sp|P02150|MYG_MACFA Myoglobin OS=Macaca fascicularis GN=MB
+ 2.1e-58 201.6 1.4 2.3e-58 201.4 1.4 1.0 1 sp|P06635|HBA_PONPY Hemoglobin subunit alpha OS=Pongo pygm
+ 2.3e-58 201.5 0.9 2.5e-58 201.4 0.9 1.0 1 sp|P01928|HBA_CEBAP Hemoglobin subunit alpha OS=Cebus apel
+ 2.4e-58 201.4 0.0 2.6e-58 201.3 0.0 1.0 1 sp|P02050|HBB_OTOCR Hemoglobin subunit beta-1/2 OS=Otolemu
+ 2.6e-58 201.3 0.1 2.9e-58 201.2 0.1 1.0 1 sp|P02047|HBD_SAISC Hemoglobin subunit delta OS=Saimiri sc
+ 2.6e-58 201.3 0.1 2.9e-58 201.1 0.1 1.0 1 sp|P23020|HBB_PROCR Hemoglobin subunit beta OS=Proteles cr
+ 2.8e-58 201.2 0.1 3.1e-58 201.1 0.1 1.0 1 sp|P68015|HBD_SAGNI Hemoglobin subunit delta OS=Saguinus n
+ 2.8e-58 201.2 1.0 3.1e-58 201.1 1.0 1.0 1 sp|P67818|HBA_SAGOE Hemoglobin subunit alpha OS=Saguinus o
+ 3.2e-58 201.0 0.4 3.5e-58 200.9 0.4 1.0 1 sp|P02164|MYG_ORYAF Myoglobin OS=Orycteropus afer GN=MB PE
+ 3.4e-58 200.9 0.6 3.8e-58 200.8 0.6 1.0 1 sp|P68084|MYG_PAPAN Myoglobin OS=Papio anubis GN=MB PE=1 S
+ 3.4e-58 200.9 0.6 3.8e-58 200.8 0.6 1.0 1 sp|P68085|MYG_SEMEN Myoglobin OS=Semnopithecus entellus GN
+ 3.4e-58 200.9 0.6 3.8e-58 200.8 0.6 1.0 1 sp|P68086|MYG_ERYPA Myoglobin OS=Erythrocebus patas GN=MB
+ 3.7e-58 200.8 2.7 4.1e-58 200.7 2.7 1.0 1 sp|P02191|MYG_CEREL Myoglobin OS=Cervus elaphus GN=MB PE=1
+ 4.5e-58 200.5 0.3 5e-58 200.4 0.3 1.0 1 sp|P02171|MYG_OCHPR Myoglobin OS=Ochotona princeps GN=MB P
+ 4.7e-58 200.5 2.2 5.1e-58 200.3 2.2 1.0 1 sp|B7U9B5|MYG_CAPHI Myoglobin OS=Capra hircus GN=MB PE=1 S
+ 4.8e-58 200.5 0.4 5.3e-58 200.3 0.4 1.0 1 sp|Q6PL31|MYG_OCHCU Myoglobin OS=Ochotona curzoniae GN=MB
+ 4.9e-58 200.4 0.1 5.4e-58 200.3 0.1 1.0 1 sp|P68014|HBD_SAGMY Hemoglobin subunit delta OS=Saguinus m
+ 5.1e-58 200.4 0.2 5.6e-58 200.2 0.2 1.0 1 sp|P18990|HBB_TURTR Hemoglobin subunit beta OS=Tursiops tr
+ 5.5e-58 200.2 0.1 6.1e-58 200.1 0.1 1.0 1 sp|P02048|HBB_LORTA Hemoglobin subunit beta OS=Loris tardi
+ 6.9e-58 199.9 0.0 7.6e-58 199.8 0.0 1.0 1 sp|P24660|HBB_MACGG Hemoglobin subunit beta OS=Macroderma
+ 7.8e-58 199.7 0.1 8.7e-58 199.6 0.1 1.0 1 sp|D0VX08|HBB_PTEGI Hemoglobin subunit beta OS=Pteropus gi
+ 7.8e-58 199.7 0.1 8.7e-58 199.6 0.1 1.0 1 sp|P14391|HBB_PTEAL Hemoglobin subunit beta OS=Pteropus al
+ 9.5e-58 199.5 0.3 1.1e-57 199.3 0.3 1.0 1 sp|P04250|MYG_LAGMA Myoglobin OS=Lagostomus maximus GN=MB
+ 9.6e-58 199.5 0.5 1.1e-57 199.3 0.5 1.0 1 sp|P02148|MYG_PONPY Myoglobin OS=Pongo pygmaeus GN=MB PE=1
+ 1e-57 199.3 0.1 1.2e-57 199.2 0.1 1.0 1 sp|P28781|HBB_TAPGE Hemoglobin subunit beta OS=Taphozous g
+ 1.2e-57 199.2 0.1 1.3e-57 199.1 0.1 1.0 1 sp|B3EWE2|HBB_BLABR Hemoglobin subunit beta OS=Blarina bre
+ 1.2e-57 199.2 0.3 1.3e-57 199.0 0.3 1.0 1 sp|P02058|HBB_ROUAE Hemoglobin subunit beta OS=Rousettus a
+ 1.2e-57 199.1 0.3 1.3e-57 199.0 0.3 1.0 1 sp|P04248|MYG_SPAEH Myoglobin OS=Spalax ehrenbergi GN=MB P
+ 1.4e-57 198.9 3.0 1.6e-57 198.8 3.0 1.0 1 sp|P84997|MYG_BUBBU Myoglobin OS=Bubalus bubalis GN=MB PE=
+ 1.5e-57 198.9 0.7 1.6e-57 198.7 0.7 1.0 1 sp|P01924|HBA_SEMEN Hemoglobin subunit alpha OS=Semnopithe
+ 1.5e-57 198.8 1.5 1.7e-57 198.7 1.5 1.0 1 sp|Q9TS34|HBA2_HYLLA Hemoglobin subunit alpha-2 OS=Hylobate
+ 1.7e-57 198.7 0.1 1.8e-57 198.5 0.1 1.0 1 sp|P14392|HBB_PTEPO Hemoglobin subunit beta OS=Pteropus po
+ 1.9e-57 198.5 0.3 2.1e-57 198.4 0.3 1.0 1 sp|B3EWD0|HBB_SPEBE Hemoglobin subunit beta OS=Spermophilu
+ 2.1e-57 198.4 0.9 2.3e-57 198.2 0.9 1.0 1 sp|P02157|MYG_MELME Myoglobin OS=Meles meles GN=MB PE=1 SV
+ 2.1e-57 198.4 0.0 2.3e-57 198.2 0.0 1.0 1 sp|P02046|HBD_AOTTR Hemoglobin subunit delta OS=Aotus triv
+ 2.2e-57 198.3 0.2 2.5e-57 198.1 0.2 1.0 1 sp|P19646|HBB_PAGLA Hemoglobin subunit beta OS=Paguma larv
+ 2.3e-57 198.2 1.1 2.6e-57 198.1 1.1 1.0 1 sp|P09421|HBB_SPECI Hemoglobin subunit beta OS=Spermophilu
+ 2.4e-57 198.2 0.2 2.7e-57 198.0 0.2 1.0 1 sp|P09905|HBB_PHYMC Hemoglobin subunit beta-1/2 OS=Physete
+ 2.8e-57 197.9 0.3 3.1e-57 197.8 0.3 1.0 1 sp|P11754|HBB_CYNSP Hemoglobin subunit beta OS=Cynopterus
+ 3e-57 197.9 0.6 3.3e-57 197.7 0.6 1.0 1 sp|P02073|HBB_ALCAA Hemoglobin subunit beta OS=Alces alces
+ 3.1e-57 197.8 0.7 3.4e-57 197.7 0.7 1.0 1 sp|Q7M3B6|HBA_SAGMY Hemoglobin subunit alpha OS=Saguinus m
+ 3.1e-57 197.8 0.5 3.5e-57 197.7 0.5 1.0 1 sp|P02193|MYG_DIDVI Myoglobin OS=Didelphis virginiana GN=M
+ 3.3e-57 197.7 1.8 3.6e-57 197.6 1.8 1.0 1 sp|P02160|MYG_VULCH Myoglobin OS=Vulpes chama GN=MB PE=1 S
+ 3.4e-57 197.7 1.8 3.7e-57 197.6 1.8 1.0 1 sp|P02151|MYG_AOTTR Myoglobin OS=Aotus trivirgatus GN=MB P
+ 4.2e-57 197.4 0.4 4.6e-57 197.3 0.4 1.0 1 sp|P02084|HBB_ELEMA Hemoglobin subunit beta OS=Elephas max
+ 4.3e-57 197.4 0.4 4.7e-57 197.2 0.4 1.0 1 sp|Q45XI9|HBD_ELEMA Hemoglobin subunit delta OS=Elephas ma
+ 4.4e-57 197.3 0.5 4.9e-57 197.2 0.5 1.0 1 sp|P02090|HBB_SPAEH Hemoglobin subunit beta OS=Spalax ehre
+ 5.1e-57 197.1 0.7 5.7e-57 197.0 0.7 1.0 1 sp|P02156|MYG_ERIEU Myoglobin OS=Erinaceus europaeus GN=MB
+ 5.4e-57 197.0 0.1 6e-57 196.9 0.1 1.0 1 sp|P02059|HBB_ERIEU Hemoglobin subunit beta OS=Erinaceus e
+ 5.6e-57 197.0 1.7 6.1e-57 196.8 1.7 1.0 1 sp|P63113|MYG_CANFA Myoglobin OS=Canis familiaris GN=MB PE
+ 5.6e-57 197.0 1.7 6.1e-57 196.8 1.7 1.0 1 sp|P63114|MYG_OTOME Myoglobin OS=Otocyon megalotis GN=MB P
+ 5.6e-57 197.0 0.8 6.2e-57 196.8 0.8 1.0 1 sp|P01929|HBA_SAGFU Hemoglobin subunit alpha OS=Saguinus f
+ 5.8e-57 196.9 0.1 6.4e-57 196.8 0.1 1.0 1 sp|P02067|HBB_PIG Hemoglobin subunit beta OS=Sus scrofa
+ 6.3e-57 196.8 1.6 6.9e-57 196.7 1.6 1.0 1 sp|P01937|HBA_NYCCO Hemoglobin subunit alpha OS=Nycticebus
+ 6.3e-57 196.8 1.6 7e-57 196.7 1.6 1.0 1 sp|P02152|MYG_CALJA Myoglobin OS=Callithrix jacchus GN=MB
+ 6.6e-57 196.7 0.1 7.2e-57 196.6 0.1 1.0 1 sp|P21667|HBB_VARVI Hemoglobin subunit beta OS=Varecia var
+ 6.7e-57 196.7 0.8 7.4e-57 196.6 0.8 1.0 1 sp|B3EWC8|HBB_TAMMR Hemoglobin subunit beta OS=Tamias merr
+ 7.3e-57 196.6 0.1 8e-57 196.5 0.1 1.0 1 sp|P07412|HBB_FELCA Hemoglobin subunit beta-A/B OS=Felis c
+ 7.6e-57 196.5 0.7 8.4e-57 196.4 0.7 1.0 1 sp|P08853|HBB_MARMA Hemoglobin subunit beta OS=Marmota mar
+ 8.7e-57 196.4 1.1 9.6e-57 196.2 1.1 1.0 1 sp|P02196|MYG_ORNAN Myoglobin OS=Ornithorhynchus anatinus
+ 9.5e-57 196.2 3.0 1e-56 196.1 3.0 1.0 1 sp|P02195|MYG_TACAC Myoglobin OS=Tachyglossus aculeatus ac
+ 1e-56 196.1 1.7 1.1e-56 196.0 1.7 1.0 1 sp|P02159|MYG_LYCPI Myoglobin OS=Lycaon pictus GN=MB PE=1
+ 1e-56 196.1 0.5 1.1e-56 196.0 0.5 1.0 1 sp|P67819|HBB_BOSGF Hemoglobin subunit beta OS=Bos gaurus
+ 1e-56 196.1 0.5 1.1e-56 196.0 0.5 1.0 1 sp|P67820|HBB_BUBBU Hemoglobin subunit beta OS=Bubalus bub
+ 1.1e-56 196.1 0.3 1.2e-56 195.9 0.3 1.0 1 sp|P04249|MYG_PROGU Myoglobin OS=Proechimys guairae GN=MB
+ 1.2e-56 195.8 0.6 1.4e-56 195.7 0.6 1.0 1 sp|P63107|HBA_MACFU Hemoglobin subunit alpha OS=Macaca fus
+ 1.2e-56 195.8 0.6 1.4e-56 195.7 0.6 1.0 1 sp|P63108|HBA_MACMU Hemoglobin subunit alpha OS=Macaca mul
+ 1.3e-56 195.8 0.3 1.4e-56 195.7 0.3 1.0 1 sp|P04245|HBB_TRAST Hemoglobin subunit beta OS=Tragelaphus
+ 1.3e-56 195.8 0.4 1.5e-56 195.6 0.4 1.0 1 sp|P02085|HBB_LOXAF Hemoglobin subunit beta OS=Loxodonta a
+ 1.4e-56 195.7 0.4 1.5e-56 195.6 0.4 1.0 1 sp|Q45XJ0|HBD_LOXAF Hemoglobin subunit delta OS=Loxodonta
+ 1.5e-56 195.6 0.1 1.7e-56 195.4 0.1 1.0 1 sp|P41328|HBB_LYNLY Hemoglobin subunit beta OS=Lynx lynx G
+ 1.6e-56 195.5 0.7 1.8e-56 195.3 0.7 1.0 1 sp|P07410|HBB_SPETO Hemoglobin subunit beta-S/F OS=Spermop
+ 1.7e-56 195.4 0.1 1.9e-56 195.3 0.1 1.0 1 sp|P20855|HBB_CTEGU Hemoglobin subunit beta OS=Ctenodactyl
+ 1.8e-56 195.3 0.2 2e-56 195.2 0.2 1.0 1 sp|P02088|HBB1_MOUSE Hemoglobin subunit beta-1 OS=Mus muscu
+ 1.8e-56 195.3 0.6 2e-56 195.2 0.6 1.0 1 sp|P21767|HBA_MACFA Hemoglobin subunit alpha-A/Q/R/T OS=Ma
+ 1.9e-56 195.3 1.4 2.1e-56 195.1 1.4 1.0 1 sp|P02153|MYG_CEBAP Myoglobin OS=Cebus apella GN=MB PE=1 S
+ 2e-56 195.2 1.1 2.2e-56 195.1 1.1 1.0 1 sp|P02155|MYG_SAISC Myoglobin OS=Saimiri sciureus GN=MB PE
+ 2.2e-56 195.1 0.8 2.4e-56 194.9 0.8 1.0 1 sp|P02066|HBB_CERSI Hemoglobin subunit beta OS=Ceratotheri
+ 2.6e-56 194.8 0.0 2.8e-56 194.7 0.0 1.0 1 sp|P11752|HBB_MEGLY Hemoglobin subunit beta OS=Megaderma l
+ 2.6e-56 194.8 0.7 2.9e-56 194.7 0.7 1.0 1 sp|P21766|HBA_MACAS Hemoglobin subunit alpha-1/2/3 OS=Maca
+ 2.6e-56 194.8 0.1 2.9e-56 194.7 0.1 1.0 1 sp|P02060|HBB_SUNMU Hemoglobin subunit beta OS=Suncus muri
+ 2.7e-56 194.8 0.1 2.9e-56 194.6 0.1 1.0 1 sp|P04244|HBB_PANPO Hemoglobin subunit beta OS=Panthera pa
+ 2.7e-56 194.8 0.4 3e-56 194.6 0.4 1.0 1 sp|P04346|HBBA_BOSJA Hemoglobin subunit beta-A OS=Bos javan
+ 2.9e-56 194.6 0.1 3.3e-56 194.5 0.1 1.0 1 sp|P02089|HBB2_MOUSE Hemoglobin subunit beta-2 OS=Mus muscu
+ 2.9e-56 194.6 0.3 3.3e-56 194.5 0.3 1.0 1 sp|Q45XH3|HBE_BRATR Hemoglobin subunit epsilon OS=Bradypus
+ 3e-56 194.6 0.8 3.3e-56 194.5 0.8 1.0 1 sp|P01926|HBA_CHLAE Hemoglobin subunit alpha OS=Chlorocebu
+ 3.3e-56 194.5 0.1 3.6e-56 194.3 0.1 1.0 1 sp|Q7M2Y5|HBB2_CHAMP Hemoglobin subunit beta-2 OS=Chalinolo
+ 3.6e-56 194.3 0.5 4e-56 194.2 0.5 1.0 1 sp|P19002|HBA_MACNE Hemoglobin subunit alpha-1/2/3 OS=Maca
+ 3.9e-56 194.3 0.1 4.2e-56 194.1 0.1 1.0 1 sp|P18988|HBB2_PANLE Hemoglobin subunit beta-2 OS=Panthera
+ 4.2e-56 194.1 0.2 4.7e-56 194.0 0.2 1.0 1 sp|P11517|HBB2_RAT Hemoglobin subunit beta-2 OS=Rattus no
+ 4.2e-56 194.1 0.1 4.6e-56 194.0 0.1 1.0 1 sp|P07415|HBB_TRIIN Hemoglobin subunit beta OS=Trichechus
+ 4.3e-56 194.1 1.6 4.7e-56 194.0 1.6 1.0 1 sp|P30562|MYG_PHOSI Myoglobin OS=Phoca sibirica GN=MB PE=1
+ 4.3e-56 194.1 0.1 4.8e-56 194.0 0.1 1.0 1 sp|Q45XI8|HBD_TRIMA Hemoglobin subunit delta OS=Trichechus
+ 4.5e-56 194.0 0.5 4.9e-56 193.9 0.5 1.0 1 sp|P21768|HBA_MACSI Hemoglobin subunit alpha-1/2 OS=Macaca
+ 5e-56 193.9 0.1 5.5e-56 193.7 0.1 1.0 1 sp|P09840|HBB_MACCA Hemoglobin subunit beta OS=Macrotus ca
+ 5.2e-56 193.8 0.6 5.7e-56 193.7 0.6 1.0 1 sp|Q862A7|HBA_PIPAB Hemoglobin subunit alpha OS=Pipistrell
+ 5.6e-56 193.7 0.0 6.2e-56 193.6 0.0 1.0 1 sp|B2KHZ4|HBB_RHIFE Hemoglobin subunit beta OS=Rhinolophus
+ 5.7e-56 193.7 0.7 6.3e-56 193.6 0.7 1.0 1 sp|P01930|HBA_PILBA Hemoglobin subunit alpha OS=Piliocolob
+ 5.7e-56 193.7 0.5 6.4e-56 193.5 0.5 1.0 1 sp|P81042|HBE_MACEU Hemoglobin subunit epsilon OS=Macropus
+ 5.8e-56 193.7 0.1 6.5e-56 193.5 0.1 1.0 1 sp|P68230|HBB_CAMBA Hemoglobin subunit beta OS=Camelus bac
+ 5.8e-56 193.7 0.1 6.5e-56 193.5 0.1 1.0 1 sp|P68231|HBB_CAMDR Hemoglobin subunit beta OS=Camelus dro
+ 5.8e-56 193.7 1.1 6.5e-56 193.5 1.1 1.0 1 sp|P02154|MYG_LAGLA Myoglobin OS=Lagothrix lagotricha GN=M
+ 5.9e-56 193.7 1.2 6.5e-56 193.5 1.2 1.0 1 sp|P01938|HBA_LORTA Hemoglobin subunit alpha OS=Loris tard
+ 6e-56 193.6 0.1 6.7e-56 193.5 0.1 1.0 1 sp|P68064|HBB2_PANON Hemoglobin subunit beta-2 OS=Panthera
+ 6.4e-56 193.5 0.1 7.2e-56 193.4 0.1 1.0 1 sp|P68087|HBB1_CHAMP Hemoglobin subunit beta-1 OS=Chalinolo
+ 6.6e-56 193.5 0.2 7.3e-56 193.4 0.2 1.0 1 sp|P09907|HBB_RHIUN Hemoglobin subunit beta OS=Rhinoceros
+ 6.7e-56 193.5 0.3 7.4e-56 193.3 0.3 1.0 1 sp|Q28338|HBE_CHEME Hemoglobin subunit epsilon OS=Cheiroga
+ 7.6e-56 193.3 0.3 8.4e-56 193.2 0.3 1.0 1 sp|P02070|HBB_BOVIN Hemoglobin subunit beta OS=Bos taurus
+ 7.7e-56 193.3 0.1 8.6e-56 193.1 0.1 1.0 1 sp|P11756|HBB_TADBR Hemoglobin subunit beta OS=Tadarida br
+ 7.9e-56 193.2 0.9 8.8e-56 193.1 0.9 1.0 1 sp|P01935|HBA3_PANTR Hemoglobin subunit alpha-3 OS=Pan trog
+ 9.3e-56 193.0 0.1 1e-55 192.9 0.1 1.0 1 sp|P02091|HBB1_RAT Hemoglobin subunit beta-1 OS=Rattus no
+ 9.6e-56 193.0 0.3 1.1e-55 192.8 0.3 1.0 1 sp|P02086|HBB_PROHA Hemoglobin subunit beta OS=Procavia ca
+ 9.7e-56 193.0 1.9 1.1e-55 192.8 1.9 1.0 1 sp|P02194|MYG_MACRU Myoglobin OS=Macropus rufus GN=MB PE=1
+ 1e-55 192.9 0.2 1.1e-55 192.7 0.2 1.0 1 sp|Q28356|HBE_DAUMA Hemoglobin subunit epsilon OS=Daubento
+ 1e-55 192.9 0.2 1.2e-55 192.7 0.2 1.0 1 sp|Q95238|HBE_PROVE Hemoglobin subunit epsilon OS=Propithe
+ 1.2e-55 192.6 0.1 1.4e-55 192.5 0.1 1.0 1 sp|P68050|HBB1_PANLE Hemoglobin subunit beta-1 OS=Panthera
+ 1.3e-55 192.6 0.9 1.4e-55 192.4 0.9 1.0 1 sp|P01934|HBA3_GORGO Hemoglobin subunit alpha-3 OS=Gorilla
+ 1.3e-55 192.6 0.1 1.4e-55 192.4 0.1 1.0 1 sp|P68048|HBB1_PANTS Hemoglobin subunit beta-1 OS=Panthera
+ 1.3e-55 192.6 0.1 1.4e-55 192.4 0.1 1.0 1 sp|P68049|HBB1_PANON Hemoglobin subunit beta-1 OS=Panthera
+ 1.3e-55 192.6 0.1 1.4e-55 192.4 0.1 1.0 1 sp|P68051|HBB1_PANPS Hemoglobin subunit beta-1 OS=Panthera
+ 1.3e-55 192.5 0.1 1.5e-55 192.4 0.1 1.0 1 sp|P68065|HBB2_PANPS Hemoglobin subunit beta-2 OS=Panthera
+ 1.3e-55 192.5 0.1 1.5e-55 192.4 0.1 1.0 1 sp|P68194|HBB2_PANTS Hemoglobin subunit beta-2 OS=Panthera
+ 1.4e-55 192.4 0.8 1.6e-55 192.3 0.8 1.0 1 sp|P09422|HBB_BISBO Hemoglobin subunit beta OS=Bison bonas
+ 1.5e-55 192.4 0.0 1.6e-55 192.2 0.0 1.0 1 sp|P68226|HBB_LAMGL Hemoglobin subunit beta OS=Lama glama
+ 1.5e-55 192.4 0.0 1.6e-55 192.2 0.0 1.0 1 sp|P68227|HBB_LAMVI Hemoglobin subunit beta OS=Lama vicugn
+ 1.5e-55 192.4 0.0 1.6e-55 192.2 0.0 1.0 1 sp|P68228|HBB_LAMPA Hemoglobin subunit beta OS=Lama guanic
+ 1.5e-55 192.4 0.0 1.6e-55 192.2 0.0 1.0 1 sp|P68229|HBB_LAMGU Hemoglobin subunit beta OS=Lama guanic
+ 1.5e-55 192.4 0.2 1.7e-55 192.2 0.2 1.0 1 sp|Q28931|HBE_SMICR Hemoglobin subunit epsilon OS=Sminthop
+ 1.8e-55 192.1 0.9 2e-55 191.9 0.9 1.0 1 sp|P07402|HBA_MACSP Hemoglobin subunit alpha-1/2 OS=Macaca
+ 1.9e-55 192.0 0.5 2.1e-55 191.9 0.5 1.0 1 sp|P01940|HBA_TARBA Hemoglobin subunit alpha OS=Tarsius ba
+ 2.2e-55 191.8 1.6 2.4e-55 191.7 1.6 1.0 1 sp|G1NJB6|MYG_MELGA Myoglobin OS=Meleagris gallopavo GN=MB
+ 2.2e-55 191.8 1.6 2.4e-55 191.7 1.6 1.0 1 sp|P02197|MYG_CHICK Myoglobin OS=Gallus gallus GN=MB PE=1
+ 2.5e-55 191.6 0.4 2.7e-55 191.5 0.4 1.0 1 sp|P21380|HBB_RANTA Hemoglobin subunit beta OS=Rangifer ta
+ 2.6e-55 191.6 0.3 2.9e-55 191.4 0.3 1.0 1 sp|P02053|HBB_EULFU Hemoglobin subunit beta OS=Eulemur ful
+ 2.6e-55 191.6 0.6 2.9e-55 191.4 0.6 1.0 1 sp|P02075|HBB_SHEEP Hemoglobin subunit beta OS=Ovis aries
+ 3.4e-55 191.2 0.2 3.7e-55 191.1 0.2 1.0 1 sp|Q28496|HBE_MICMU Hemoglobin subunit epsilon OS=Microceb
+ 3.4e-55 191.2 0.0 3.8e-55 191.0 0.0 1.0 1 sp|Q7M3C2|HBB_HAPGR Hemoglobin subunit beta OS=Hapalemur g
+ 3.7e-55 191.1 1.0 4.1e-55 190.9 1.0 1.0 1 sp|P01939|HBA2_OTOCR Hemoglobin subunit alpha-B OS=Otolemur
+ 3.9e-55 191.0 0.3 4.3e-55 190.9 0.3 1.0 1 sp|P02093|HBB_ONDZI Hemoglobin subunit beta OS=Ondatra zib
+ 4e-55 191.0 0.0 4.4e-55 190.8 0.0 1.0 1 sp|P14388|HBB_ANTPA Hemoglobin subunit beta OS=Antrozous p
+ 4e-55 191.0 0.1 4.4e-55 190.8 0.1 1.0 1 sp|P67823|HBB_EQUHE Hemoglobin subunit beta OS=Equus hemio
+ 4e-55 191.0 0.1 4.4e-55 190.8 0.1 1.0 1 sp|P67824|HBB_EQUZE Hemoglobin subunit beta OS=Equus zebra
+ 4.1e-55 190.9 0.9 4.6e-55 190.8 0.9 1.0 1 sp|P19015|HBA_HIPAM Hemoglobin subunit alpha OS=Hippopotam
+ 4.5e-55 190.8 0.1 5e-55 190.7 0.1 1.0 1 sp|P14387|HBA_ANTPA Hemoglobin subunit alpha OS=Antrozous
+ 4.8e-55 190.7 0.2 5.4e-55 190.5 0.2 1.0 1 sp|P08223|HBE_EULFU Hemoglobin subunit epsilon OS=Eulemur
+ 5.5e-55 190.5 0.9 6e-55 190.4 0.9 1.0 1 sp|P02077|HBBA_CAPHI Hemoglobin subunit beta-A OS=Capra hir
+ 5.6e-55 190.5 0.8 6.2e-55 190.4 0.8 1.0 1 sp|P02187|MYG_LOXAF Myoglobin OS=Loxodonta africana GN=MB
+ 5.6e-55 190.5 0.8 6.2e-55 190.3 0.8 1.0 1 sp|P01936|HBA_EULFU Hemoglobin subunit alpha OS=Eulemur fu
+ 5.9e-55 190.4 0.0 6.5e-55 190.3 0.0 1.0 1 sp|P02061|HBB_TALEU Hemoglobin subunit beta OS=Talpa europ
+ 6.3e-55 190.3 0.5 6.9e-55 190.2 0.5 1.0 1 sp|P02072|HBB_BOSMU Hemoglobin subunit beta OS=Bos mutus g
+ 7.4e-55 190.1 0.2 8.2e-55 190.0 0.2 1.0 1 sp|B3EWE0|HBB_TAMST Hemoglobin subunit beta OS=Tamias stri
+ 7.9e-55 190.0 1.5 8.7e-55 189.9 1.5 1.0 1 sp|Q7LZM2|MYG_ANAPO Myoglobin OS=Anas poecilorhyncha GN=MB
+ 8.1e-55 190.0 0.6 9e-55 189.8 0.6 1.0 1 sp|Q7LZM3|MYG_PHAFI Myoglobin OS=Phalacrocorax filamentosu
+ 8.4e-55 189.9 0.1 9.3e-55 189.8 0.1 1.0 1 sp|P02102|HBE1_CAPHI Hemoglobin subunit epsilon-1 OS=Capra
+ 9.9e-55 189.7 0.1 1.1e-54 189.5 0.1 1.0 1 sp|P19016|HBB_HIPAM Hemoglobin subunit beta OS=Hippopotamu
+ 1e-54 189.6 0.6 1.1e-54 189.5 0.6 1.0 1 sp|P0CH26|HBA2_CAPHI Hemoglobin subunit alpha-2 OS=Capra hi
+ 1e-54 189.6 0.3 1.1e-54 189.5 0.3 1.0 1 sp|P28780|HBA_TAPGE Hemoglobin subunit alpha OS=Taphozous
+ 1.1e-54 189.5 0.1 1.2e-54 189.4 0.1 1.0 1 sp|P02054|HBB_LEMCA Hemoglobin subunit beta OS=Lemur catta
+ 1.1e-54 189.5 0.0 1.2e-54 189.4 0.0 1.0 1 sp|P11025|HBE_DIDVI Hemoglobin subunit epsilon-M OS=Didelp
+ 1.1e-54 189.5 0.9 1.3e-54 189.4 0.9 1.0 1 sp|P14259|HBA1_OTOCR Hemoglobin subunit alpha-A OS=Otolemur
+ 1.2e-54 189.4 0.3 1.3e-54 189.3 0.3 1.0 1 sp|P19759|HBE_OTOCR Hemoglobin subunit epsilon OS=Otolemur
+ 1.2e-54 189.4 0.5 1.3e-54 189.3 0.5 1.0 1 sp|P02064|HBB1_TAPTE Hemoglobin subunit beta-1 OS=Tapirus t
+ 1.2e-54 189.4 0.0 1.3e-54 189.3 0.0 1.0 1 sp|P02101|HBE_PIG Hemoglobin subunit epsilon OS=Sus scro
+ 1.2e-54 189.4 0.1 1.3e-54 189.3 0.1 1.0 1 sp|P11757|HBA_MYOVE Hemoglobin subunit alpha OS=Myotis vel
+ 1.3e-54 189.3 0.1 1.4e-54 189.2 0.1 1.0 1 sp|B3EWD2|HBB_SCICA Hemoglobin subunit beta OS=Sciurus car
+ 1.3e-54 189.3 0.9 1.4e-54 189.2 0.9 1.0 1 sp|P20018|HBA1_VARVI Hemoglobin subunit alpha-1 OS=Varecia
+ 1.3e-54 189.3 0.1 1.4e-54 189.2 0.1 1.0 1 sp|P02062|HBB_HORSE Hemoglobin subunit beta OS=Equus cabal
+ 1.4e-54 189.2 1.3 1.6e-54 189.0 1.3 1.0 1 sp|P63111|HBA_PAPAN Hemoglobin subunit alpha OS=Papio anub
+ 1.4e-54 189.2 1.3 1.6e-54 189.0 1.3 1.0 1 sp|P63112|HBA_PAPCY Hemoglobin subunit alpha OS=Papio cyno
+ 1.4e-54 189.2 0.4 1.6e-54 189.0 0.4 1.0 1 sp|B3EWD4|HBB_PERCR Hemoglobin subunit beta OS=Peromyscus
+ 1.6e-54 189.0 0.8 1.8e-54 188.9 0.8 1.0 1 sp|P08258|HBA_MANSP Hemoglobin subunit alpha-1/2 OS=Mandri
+ 1.6e-54 189.0 1.4 1.8e-54 188.8 1.4 1.0 1 sp|P02092|HBB_MICXA Hemoglobin subunit beta OS=Microtus xa
+ 1.7e-54 189.0 0.6 1.8e-54 188.8 0.6 1.0 1 sp|P02186|MYG_ELEMA Myoglobin OS=Elephas maximus GN=MB PE=
+ 1.7e-54 188.9 0.8 1.9e-54 188.8 0.8 1.0 1 sp|Q9XSK1|HBA4_BUBBU Hemoglobin subunit alpha-4 OS=Bubalus
+ 1.8e-54 188.8 1.3 2e-54 188.7 1.3 1.0 1 sp|P01932|HBA_THEGE Hemoglobin subunit alpha OS=Theropithe
+ 2e-54 188.7 0.3 2.3e-54 188.5 0.3 1.0 1 sp|P02110|HBB_TACAC Hemoglobin subunit beta OS=Tachyglossu
+ 2.1e-54 188.6 1.2 2.4e-54 188.5 1.2 1.0 1 sp|P01933|HBA_CERAT Hemoglobin subunit alpha OS=Cercocebus
+ 2.2e-54 188.6 1.1 2.4e-54 188.4 1.1 1.0 1 sp|P20019|HBA2_VARVI Hemoglobin subunit alpha-2 OS=Varecia
+ 2.3e-54 188.5 0.5 2.6e-54 188.3 0.5 1.0 1 sp|P21379|HBA_RANTA Hemoglobin subunit alpha OS=Rangifer t
+ 2.4e-54 188.4 1.7 2.7e-54 188.3 1.7 1.0 1 sp|P83682|MYG_DELLE Myoglobin OS=Delphinapterus leucas GN=
+ 2.7e-54 188.3 0.0 3e-54 188.1 0.0 1.0 1 sp|P04246|HBT_PIG Hemoglobin subunit theta OS=Sus scrofa
+ 2.8e-54 188.2 0.1 3.1e-54 188.1 0.1 1.0 1 sp|Q45XH7|HBG_ELEMA Hemoglobin subunit gamma OS=Elephas ma
+ 2.9e-54 188.2 0.3 3.2e-54 188.0 0.3 1.0 1 sp|P04247|MYG_MOUSE Myoglobin OS=Mus musculus GN=Mb PE=1 S
+ 3e-54 188.1 0.0 3.3e-54 188.0 0.0 1.0 1 sp|P02074|HBB_ODOVI Hemoglobin subunit beta-3 OS=Odocoileu
+ 3.2e-54 188.0 0.5 3.6e-54 187.9 0.5 1.0 1 sp|P01971|HBA_ALCAA Hemoglobin subunit alpha OS=Alces alce
+ 3.3e-54 188.0 0.6 3.6e-54 187.9 0.6 1.0 1 sp|Q9TSN8|HBA2_BUBBU Hemoglobin subunit alpha-2 OS=Bubalus
+ 3.3e-54 188.0 0.4 3.6e-54 187.9 0.4 1.0 1 sp|Q9QZ76|MYG_RAT Myoglobin OS=Rattus norvegicus GN=Mb P
+ 3.4e-54 187.9 0.4 3.8e-54 187.8 0.4 1.0 1 sp|O77655|HBG_TARBA Hemoglobin subunit gamma OS=Tarsius ba
+ 3.8e-54 187.8 0.1 4.2e-54 187.7 0.1 1.0 1 sp|P11758|HBB_MYOVE Hemoglobin subunit beta OS=Myotis veli
+ 3.8e-54 187.8 1.8 4.3e-54 187.6 1.8 1.0 1 sp|P85077|MYG_STRCA Myoglobin OS=Struthio camelus GN=MB PE
+ 3.9e-54 187.8 0.2 4.3e-54 187.6 0.2 1.0 1 sp|Q7M2Y4|HBA_CHAMP Hemoglobin subunit alpha OS=Chalinolob
+ 4e-54 187.7 0.9 4.4e-54 187.6 0.9 1.0 1 sp|Q7LZM5|MYG_AETPY Myoglobin OS=Aethia pygmaea GN=MB PE=1
+ 4.1e-54 187.7 0.6 4.5e-54 187.6 0.6 1.0 1 sp|P01951|HBA_TALEU Hemoglobin subunit alpha OS=Talpa euro
+ 4.3e-54 187.6 0.5 4.7e-54 187.5 0.5 1.0 1 sp|B3EWD8|HBB_TAMHU Hemoglobin subunit beta OS=Tamiasciuru
+ 4.4e-54 187.6 0.1 4.9e-54 187.4 0.1 1.0 1 sp|P18435|HBE_TARSY Hemoglobin subunit epsilon OS=Tarsius
+ 4.5e-54 187.6 0.1 4.9e-54 187.4 0.1 1.0 1 sp|B3EWD6|HBB_PERCA Hemoglobin subunit beta OS=Peromyscus
+ 4.7e-54 187.5 1.3 5.3e-54 187.3 1.3 1.0 1 sp|P86874|MYG_DRONO Myoglobin OS=Dromaius novaehollandiae
+ 4.8e-54 187.5 0.1 5.3e-54 187.3 0.1 1.0 1 sp|P51438|HBE_ATEBE Hemoglobin subunit epsilon OS=Ateles b
+ 5e-54 187.4 0.1 5.5e-54 187.3 0.1 1.0 1 sp|P19760|HBG_OTOCR Hemoglobin subunit gamma OS=Otolemur c
+ 5e-54 187.4 0.3 5.6e-54 187.3 0.3 1.0 1 sp|P10892|HBA_LUTLU Hemoglobin subunit alpha OS=Lutra lutr
+ 5.1e-54 187.4 0.9 5.6e-54 187.2 0.9 1.0 1 sp|Q7LZM4|MYG_CERMN Myoglobin OS=Cerorhinca monocerata GN=
+ 5.4e-54 187.3 0.8 6e-54 187.1 0.8 1.0 1 sp|P02094|HBB_MESAU Hemoglobin subunit beta OS=Mesocricetu
+ 6e-54 187.2 0.1 6.6e-54 187.0 0.1 1.0 1 sp|Q45XH8|HBG_LOXAF Hemoglobin subunit gamma OS=Loxodonta
+ 6.1e-54 187.1 0.2 6.7e-54 187.0 0.2 1.0 1 sp|P01963|HBA_CERSI Hemoglobin subunit alpha OS=Ceratother
+ 6.1e-54 187.1 0.2 6.7e-54 187.0 0.2 1.0 1 sp|P02104|HBE_MOUSE Hemoglobin subunit epsilon-Y2 OS=Mus m
+ 6.4e-54 187.0 0.0 7.2e-54 186.9 0.0 1.0 1 sp|Q2KPA3|HBB_SCAOR Hemoglobin subunit beta OS=Scapanus or
+ 7e-54 186.9 0.5 7.8e-54 186.8 0.5 1.0 1 sp|P18994|HBE_PONPY Hemoglobin subunit epsilon OS=Pongo py
+ 7.2e-54 186.9 0.0 8e-54 186.7 0.0 1.0 1 sp|P61921|HBG2_PANTR Hemoglobin subunit gamma-2 OS=Pan trog
+ 7.2e-54 186.9 0.0 8e-54 186.7 0.0 1.0 1 sp|P62742|HBG2_GORGO Hemoglobin subunit gamma-2 OS=Gorilla
+ 7.2e-54 186.9 0.0 8e-54 186.7 0.0 1.0 1 sp|P69892|HBG2_HUMAN Hemoglobin subunit gamma-2 OS=Homo sap
+ 7.6e-54 186.8 0.1 8.4e-54 186.7 0.1 1.0 1 sp|P61920|HBG1_PANTR Hemoglobin subunit gamma-1 OS=Pan trog
+ 7.6e-54 186.8 0.1 8.4e-54 186.7 0.1 1.0 1 sp|P69891|HBG1_HUMAN Hemoglobin subunit gamma-1 OS=Homo sap
+ 8.5e-54 186.7 0.1 9.4e-54 186.5 0.1 1.0 1 sp|P11753|HBA_CYNSP Hemoglobin subunit alpha OS=Cynopterus
+ 8.6e-54 186.6 0.3 9.5e-54 186.5 0.3 1.0 1 sp|P0CH25|HBA1_CAPHI Hemoglobin subunit alpha-1 OS=Capra hi
+ 8.6e-54 186.6 0.3 9.5e-54 186.5 0.3 1.0 1 sp|P68239|HBA_AMMLE Hemoglobin subunit alpha-1/2 OS=Ammotr
+ 8.6e-54 186.6 0.3 9.5e-54 186.5 0.3 1.0 1 sp|P68240|HBA_SHEEP Hemoglobin subunit alpha-1/2 OS=Ovis a
+ 9.2e-54 186.5 0.4 1e-53 186.4 0.4 1.0 1 sp|Q28507|HBE_MACMU Hemoglobin subunit epsilon OS=Macaca m
+ 9.4e-54 186.5 0.7 1e-53 186.4 0.7 1.0 1 sp|P07405|HBA_FELCA Hemoglobin subunit alpha OS=Felis catu
+ 9.5e-54 186.5 0.3 1.1e-53 186.3 0.3 1.0 1 sp|P23601|HBA_MUSPU Hemoglobin subunit alpha-1/2 OS=Mustel
+ 9.6e-54 186.5 0.3 1.1e-53 186.3 0.3 1.0 1 sp|P09839|HBA_MACCA Hemoglobin subunit alpha OS=Macrotus c
+ 9.6e-54 186.5 0.8 1.1e-53 186.3 0.8 1.0 1 sp|Q9TSN7|HBA1_BUBBU Hemoglobin subunit alpha-1 OS=Bubalus
+ 9.7e-54 186.5 1.0 1.1e-53 186.3 1.0 1.0 1 sp|P04237|HBA_TRAST Hemoglobin subunit alpha OS=Tragelaphu
+ 1e-53 186.4 1.0 1.1e-53 186.3 1.0 1.0 1 sp|P01966|HBA_BOVIN Hemoglobin subunit alpha OS=Bos taurus
+ 1e-53 186.4 0.9 1.1e-53 186.3 0.9 1.0 1 sp|B3EWE4|HBB_MICPE Hemoglobin subunit beta OS=Microtus pe
+ 1.1e-53 186.3 0.2 1.2e-53 186.2 0.2 1.0 1 sp|Q28932|HBB_SMICR Hemoglobin subunit beta OS=Sminthopsis
+ 1.1e-53 186.3 0.5 1.2e-53 186.2 0.5 1.0 1 sp|Q95190|HBE_HYLSY Hemoglobin subunit epsilon OS=Hylobate
+ 1.1e-53 186.3 0.0 1.2e-53 186.2 0.0 1.0 1 sp|Q28779|HBG1_PANPA Hemoglobin subunit gamma-1 OS=Pan pani
+ 1.2e-53 186.2 0.1 1.3e-53 186.0 0.1 1.0 1 sp|P01956|HBA_ROUAE Hemoglobin subunit alpha OS=Rousettus
+ 1.2e-53 186.1 0.6 1.4e-53 186.0 0.6 1.0 1 sp|P09908|HBA_PHOVI Hemoglobin subunit alpha OS=Phoca vitu
+ 1.3e-53 186.1 0.2 1.4e-53 186.0 0.2 1.0 1 sp|Q0ZA50|HBA_PANHO Hemoglobin subunit alpha OS=Pantholops
+ 1.3e-53 186.0 0.0 1.5e-53 185.9 0.0 1.0 1 sp|P02103|HBE_RABIT Hemoglobin subunit epsilon OS=Oryctola
+ 1.4e-53 185.9 0.8 1.6e-53 185.8 0.8 1.0 1 sp|P18707|HBB_MESBR Hemoglobin subunit beta OS=Mesocricetu
+ 1.4e-53 185.9 0.3 1.6e-53 185.8 0.3 1.0 1 sp|P26915|HBA_NASNA Hemoglobin subunit alpha OS=Nasua nasu
+ 1.4e-53 185.9 0.7 1.6e-53 185.8 0.7 1.0 1 sp|P09423|HBA_BISBO Hemoglobin subunit alpha-I/II OS=Bison
+ 1.4e-53 185.9 0.4 1.6e-53 185.8 0.4 1.0 1 sp|Q45XI7|HBD_DUGDU Hemoglobin subunit delta OS=Dugong dug
+ 1.5e-53 185.9 1.4 1.6e-53 185.7 1.4 1.0 1 sp|Q7LZM1|MYG_URILO Myoglobin OS=Uria lomvia GN=MB PE=1 SV
+ 1.5e-53 185.8 1.0 1.7e-53 185.7 1.0 1.0 1 sp|B3EWC7|HBA_TAMMR Hemoglobin subunit alpha OS=Tamias mer
+ 1.5e-53 185.8 0.1 1.7e-53 185.7 0.1 1.0 1 sp|P68026|HBE_CALJA Hemoglobin subunit epsilon OS=Callithr
+ 1.5e-53 185.8 0.1 1.7e-53 185.7 0.1 1.0 1 sp|P68027|HBE_CALPY Hemoglobin subunit epsilon OS=Callithr
+ 1.6e-53 185.8 0.3 1.7e-53 185.7 0.3 1.0 1 sp|P08224|HBG_CHEME Hemoglobin subunit gamma OS=Cheirogale
+ 1.6e-53 185.8 0.5 1.8e-53 185.6 0.5 1.0 1 sp|P41327|HBA_LYNLY Hemoglobin subunit alpha OS=Lynx lynx
+ 1.6e-53 185.8 1.2 1.8e-53 185.6 1.2 1.0 1 sp|P08852|HBA_MARMA Hemoglobin subunit alpha OS=Marmota ma
+ 1.7e-53 185.7 0.2 1.9e-53 185.5 0.2 1.0 1 sp|P08225|HBG_EULFU Hemoglobin subunit gamma OS=Eulemur fu
+ 2e-53 185.5 0.0 2.2e-53 185.3 0.0 1.0 1 sp|P68077|HBG_MACMU Hemoglobin subunit gamma OS=Macaca mul
+ 2e-53 185.5 0.0 2.2e-53 185.3 0.0 1.0 1 sp|P68078|HBG_MACFU Hemoglobin subunit gamma OS=Macaca fus
+ 2e-53 185.5 0.0 2.2e-53 185.3 0.0 1.0 1 sp|P68079|HBG_PAPCY Hemoglobin subunit gamma OS=Papio cyno
+ 2e-53 185.5 0.4 2.2e-53 185.3 0.4 1.0 1 sp|P01945|HBA_MESAU Hemoglobin subunit alpha OS=Mesocricet
+ 2e-53 185.5 0.8 2.2e-53 185.3 0.8 1.0 1 sp|P02095|HBB_CAVPO Hemoglobin subunit beta OS=Cavia porce
+ 2e-53 185.5 0.3 2.2e-53 185.3 0.3 1.0 1 sp|P20243|HBA_MUSPF Hemoglobin subunit alpha-1/2 OS=Mustel
+ 2e-53 185.4 0.2 2.3e-53 185.3 0.2 1.0 1 sp|P01953|HBA_MELME Hemoglobin subunit alpha OS=Meles mele
+ 2e-53 185.4 0.9 2.3e-53 185.3 0.9 1.0 1 sp|P11750|HBA_SPEPA Hemoglobin subunit alpha OS=Spermophil
+ 2.1e-53 185.4 0.4 2.3e-53 185.3 0.4 1.0 1 sp|P02100|HBE_HUMAN Hemoglobin subunit epsilon OS=Homo sap
+ 2.1e-53 185.4 0.4 2.3e-53 185.3 0.4 1.0 1 sp|Q6LDH0|HBE_GORGO Hemoglobin subunit epsilon OS=Gorilla
+ 2.1e-53 185.4 0.4 2.3e-53 185.3 0.4 1.0 1 sp|Q6LDH1|HBE_PANTR Hemoglobin subunit epsilon OS=Pan trog
+ 2.1e-53 185.4 0.3 2.3e-53 185.2 0.3 1.0 1 sp|P23600|HBA_MUSLU Hemoglobin subunit alpha-1/2 OS=Mustel
+ 2.2e-53 185.3 0.9 2.4e-53 185.2 0.9 1.0 1 sp|P01969|HBA_BOSGF Hemoglobin subunit alpha OS=Bos gaurus
+ 2.2e-53 185.3 0.6 2.4e-53 185.2 0.6 1.0 1 sp|P09420|HBA_SPECI Hemoglobin subunit alpha OS=Spermophil
+ 2.3e-53 185.3 0.7 2.5e-53 185.1 0.7 1.0 1 sp|P01967|HBA1_BOSMU Hemoglobin subunit alpha-1 OS=Bos mutu
+ 2.4e-53 185.2 1.1 2.7e-53 185.0 1.1 1.0 1 sp|P09904|HBA_PHYMC Hemoglobin subunit alpha OS=Physeter m
+ 2.4e-53 185.2 0.7 2.7e-53 185.0 0.7 1.0 1 sp|P01968|HBA2_BOSMU Hemoglobin subunit alpha-2 OS=Bos mutu
+ 2.5e-53 185.1 0.9 2.8e-53 185.0 0.9 1.0 1 sp|P02065|HBB2_TAPTE Hemoglobin subunit beta-2 OS=Tapirus t
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68016|HBE_AOTAZ Hemoglobin subunit epsilon OS=Aotus az
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68017|HBE_ALOBE Hemoglobin subunit epsilon OS=Alouatta
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68018|HBE_ALOSE Hemoglobin subunit epsilon OS=Alouatta
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68019|HBE_ATEGE Hemoglobin subunit epsilon OS=Ateles g
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68020|HBE_BRAAR Hemoglobin subunit epsilon OS=Brachyte
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68021|HBE_CACCA Hemoglobin subunit epsilon OS=Cacajao
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68022|HBE_CALMO Hemoglobin subunit epsilon OS=Calliceb
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68023|HBE_CALTO Hemoglobin subunit epsilon OS=Calliceb
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68024|HBE_CALGO Hemoglobin subunit epsilon OS=Callimic
+ 2.6e-53 185.1 0.1 2.9e-53 184.9 0.1 1.0 1 sp|P68025|HBE_CHISA Hemoglobin subunit epsilon OS=Chiropot
+ 2.7e-53 185.0 0.1 3e-53 184.9 0.1 1.0 1 sp|P14390|HBA_PTEPO Hemoglobin subunit alpha OS=Pteropus p
+ 3e-53 184.9 0.2 3.3e-53 184.7 0.2 1.0 1 sp|P10885|HBA_PTEBR Hemoglobin subunit alpha OS=Pteronura
+ 3.1e-53 184.8 0.2 3.4e-53 184.7 0.2 1.0 1 sp|P68056|HBBC_SHEEP Hemoglobin subunit beta-C OS=Ovis arie
+ 3.3e-53 184.7 1.4 3.7e-53 184.6 1.4 1.0 1 sp|P20854|HBA_CTEGU Hemoglobin subunit alpha OS=Ctenodacty
+ 3.3e-53 184.7 0.3 3.7e-53 184.6 0.3 1.0 1 sp|Q28775|HBE_PANPA Hemoglobin subunit epsilon OS=Pan pani
+ 3.3e-53 184.7 0.2 3.6e-53 184.6 0.2 1.0 1 sp|P68057|HBBC_OVIMU Hemoglobin subunit beta-C OS=Ovis orie
+ 3.8e-53 184.6 0.1 4.2e-53 184.4 0.1 1.0 1 sp|P51443|HBE_SAGMI Hemoglobin subunit epsilon OS=Saguinus
+ 3.8e-53 184.5 0.2 4.3e-53 184.4 0.2 1.0 1 sp|P14389|HBA_PTEAL Hemoglobin subunit alpha OS=Pteropus a
+ 3.9e-53 184.5 0.0 4.3e-53 184.4 0.0 1.0 1 sp|P11755|HBA1_TADBR Hemoglobin subunit alpha-1 OS=Tadarida
+ 4e-53 184.5 0.0 4.4e-53 184.3 0.0 1.0 1 sp|P02097|HBG_MACNE Hemoglobin subunit gamma OS=Macaca nem
+ 4e-53 184.5 0.3 4.5e-53 184.3 0.3 1.0 1 sp|P01958|HBA_HORSE Hemoglobin subunit alpha OS=Equus caba
+ 4.1e-53 184.4 0.2 4.5e-53 184.3 0.2 1.0 1 sp|P51440|HBE_LAGLA Hemoglobin subunit epsilon OS=Lagothri
+ 4.2e-53 184.4 0.1 4.7e-53 184.3 0.1 1.0 1 sp|D0VX09|HBA_PTEGI Hemoglobin subunit alpha OS=Pteropus g
+ 4.2e-53 184.4 0.9 4.7e-53 184.3 0.9 1.0 1 sp|P07403|HBA_SPETO Hemoglobin subunit alpha OS=Spermophil
+ 4.3e-53 184.4 0.0 4.7e-53 184.2 0.0 1.0 1 sp|P18995|HBG1_PONPY Hemoglobin subunit gamma-1 OS=Pongo py
+ 4.8e-53 184.2 0.0 5.3e-53 184.1 0.0 1.0 1 sp|P02082|HBBF_CAPHI Hemoglobin fetal subunit beta OS=Capra
+ 5.5e-53 184.0 0.2 6.1e-53 183.9 0.2 1.0 1 sp|Q9TVA3|HBA2_EQUBU Hemoglobin subunit alpha-2 OS=Equus bu
+ 5.5e-53 184.0 0.8 6.1e-53 183.9 0.8 1.0 1 sp|Q9TSN9|HBA3_BUBBU Hemoglobin subunit alpha-3 OS=Bubalus
+ 5.9e-53 183.9 1.1 6.6e-53 183.8 1.1 1.0 1 sp|P14526|HBB_BRATR Hemoglobin subunit beta OS=Bradypus tr
+ 6e-53 183.9 0.4 6.7e-53 183.8 0.4 1.0 1 sp|P01942|HBA_MOUSE Hemoglobin subunit alpha OS=Mus muscul
+ 6.1e-53 183.9 0.2 6.7e-53 183.7 0.2 1.0 1 sp|P68058|HBBC_AMMLE Hemoglobin subunit beta-C OS=Ammotragu
+ 7e-53 183.7 0.2 7.8e-53 183.5 0.2 1.0 1 sp|P68028|HBE_SAISC Hemoglobin subunit epsilon OS=Saimiri
+ 7e-53 183.7 0.2 7.8e-53 183.5 0.2 1.0 1 sp|P68029|HBE_SAIBB Hemoglobin subunit epsilon OS=Saimiri
+ 7.1e-53 183.7 1.1 7.8e-53 183.5 1.1 1.0 1 sp|P56208|MYG_CARCR Myoglobin OS=Caretta caretta GN=MB PE=
+ 7.4e-53 183.6 0.5 8.3e-53 183.4 0.5 1.0 1 sp|P02087|HBB_DASNO Hemoglobin subunit beta OS=Dasypus nov
+ 7.4e-53 183.6 0.0 8.2e-53 183.5 0.0 1.0 1 sp|P02052|HBB_TUPGL Hemoglobin subunit beta OS=Tupaia glis
+ 8e-53 183.5 1.1 8.8e-53 183.4 1.1 1.0 1 sp|P02202|MYG_CHEMY Myoglobin OS=Chelonia mydas GN=MB PE=1
+ 8.6e-53 183.4 0.0 9.5e-53 183.3 0.0 1.0 1 sp|P62741|HBG1_GORGO Hemoglobin subunit gamma-1 OS=Gorilla
+ 9.3e-53 183.3 0.0 1e-52 183.1 0.0 1.0 1 sp|P61948|HBG2_HYLLA Hemoglobin subunit gamma-2 OS=Hylobate
+ 9.5e-53 183.2 0.3 1.1e-52 183.1 0.3 1.0 1 sp|P09906|HBA_RHIUN Hemoglobin subunit alpha OS=Rhinoceros
+ 9.8e-53 183.2 0.1 1.1e-52 183.1 0.1 1.0 1 sp|P51441|HBE_LEORO Hemoglobin subunit epsilon OS=Leontopi
+ 9.9e-53 183.2 0.2 1.1e-52 183.0 0.2 1.0 1 sp|P18970|HBA_AILME Hemoglobin subunit alpha OS=Ailuropoda
+ 1.1e-52 183.1 0.2 1.2e-52 182.9 0.2 1.0 1 sp|P51442|HBE_PITIR Hemoglobin subunit epsilon OS=Pithecia
+ 1.1e-52 183.1 0.3 1.2e-52 182.9 0.3 1.0 1 sp|Q9XSE9|HBA_EQUPR Hemoglobin subunit alpha OS=Equus caba
+ 1.1e-52 183.1 0.2 1.2e-52 182.9 0.2 1.0 1 sp|Q7LZB9|HBB_STROE Hemoglobin subunit beta OS=Streptopeli
+ 1.1e-52 183.0 0.2 1.3e-52 182.8 0.2 1.0 1 sp|Q29415|HBE_CEBOL Hemoglobin subunit epsilon OS=Cebus ol
+ 1.1e-52 183.0 0.2 1.3e-52 182.8 0.2 1.0 1 sp|Q7JFR7|HBE_CEBKA Hemoglobin subunit epsilon OS=Cebus ka
+ 1.2e-52 182.9 0.7 1.3e-52 182.8 0.7 1.0 1 sp|P01965|HBA_PIG Hemoglobin subunit alpha OS=Sus scrofa
+ 1.2e-52 182.9 0.3 1.4e-52 182.7 0.3 1.0 1 sp|P01944|HBA_ONDZI Hemoglobin subunit alpha OS=Ondatra zi
+ 1.2e-52 182.9 0.4 1.4e-52 182.7 0.4 1.0 1 sp|P63109|HBA_PANON Hemoglobin subunit alpha OS=Panthera o
+ 1.3e-52 182.8 0.7 1.5e-52 182.6 0.7 1.0 1 sp|P02099|HBG_RABIT Hemoglobin subunit gamma OS=Oryctolagu
+ 1.5e-52 182.6 0.1 1.6e-52 182.5 0.1 1.0 1 sp|P01962|HBA_TAPTE Hemoglobin subunit alpha-1/2 OS=Tapiru
+ 1.5e-52 182.6 0.2 1.7e-52 182.5 0.2 1.0 1 sp|P01959|HBA_EQUAS Hemoglobin subunit alpha OS=Equus asin
+ 1.5e-52 182.6 0.2 1.7e-52 182.5 0.2 1.0 1 sp|P01960|HBA_EQUZE Hemoglobin subunit alpha OS=Equus zebr
+ 1.5e-52 182.6 0.2 1.7e-52 182.5 0.2 1.0 1 sp|Q7JFN6|HBA2_EQUGR Hemoglobin subunit alpha-2 OS=Equus gr
+ 1.5e-52 182.6 0.1 1.7e-52 182.4 0.1 1.0 1 sp|P01941|HBA_TUPGL Hemoglobin subunit alpha OS=Tupaia gli
+ 1.5e-52 182.6 0.0 1.7e-52 182.4 0.0 1.0 1 sp|P61947|HBG1_HYLLA Hemoglobin subunit gamma-1 OS=Hylobate
+ 1.8e-52 182.3 0.4 2e-52 182.2 0.4 1.0 1 sp|P41330|HBA2_ARCGA Hemoglobin subunit alpha-2 OS=Arctocep
+ 1.8e-52 182.3 0.3 2e-52 182.2 0.3 1.0 1 sp|P63110|HBA_PANPO Hemoglobin subunit alpha OS=Panthera p
+ 1.9e-52 182.3 0.0 2.1e-52 182.1 0.0 1.0 1 sp|P02083|HBBF_SHEEP Hemoglobin fetal subunit beta OS=Ovis
+ 1.9e-52 182.3 1.1 2.1e-52 182.1 1.1 1.0 1 sp|P16418|HBB_LIOMI Hemoglobin subunit beta OS=Liophis mil
+ 1.9e-52 182.3 0.1 2.1e-52 182.1 0.1 1.0 1 sp|Q9XSN3|HBA1_EQUBU Hemoglobin subunit alpha-1 OS=Equus bu
+ 2e-52 182.2 0.0 2.2e-52 182.1 0.0 1.0 1 sp|P02111|HBB_ORNAN Hemoglobin subunit beta OS=Ornithorhyn
+ 2e-52 182.2 0.2 2.2e-52 182.1 0.2 1.0 1 sp|Q28220|HBE_CEBAL Hemoglobin subunit epsilon OS=Cebus al
+ 2.1e-52 182.1 0.1 2.3e-52 182.0 0.1 1.0 1 sp|P11342|HBB_COLLI Hemoglobin subunit beta OS=Columba liv
+ 2.2e-52 182.1 0.3 2.4e-52 181.9 0.3 1.0 1 sp|P10883|HBA_PANTS Hemoglobin subunit alpha OS=Panthera t
+ 2.4e-52 182.0 0.3 2.6e-52 181.8 0.3 1.0 1 sp|P18976|HBA_PANPS Hemoglobin subunit alpha OS=Panthera p
+ 2.4e-52 181.9 0.5 2.7e-52 181.8 0.5 1.0 1 sp|P02201|MYG_GRAGE Myoglobin OS=Graptemys geographica GN=
+ 2.8e-52 181.7 0.6 3.1e-52 181.6 0.6 1.0 1 sp|B3EWC9|HBA_SPEBE Hemoglobin subunit alpha OS=Spermophil
+ 3e-52 181.7 0.0 3.3e-52 181.5 0.0 1.0 1 sp|P18996|HBG2_PONPY Hemoglobin subunit gamma-2 OS=Pongo py
+ 3.2e-52 181.5 0.0 3.6e-52 181.4 0.0 1.0 1 sp|P02081|HBBF_BOVIN Hemoglobin fetal subunit beta OS=Bos t
+ 3.3e-52 181.5 0.2 3.7e-52 181.3 0.2 1.0 1 sp|P01961|HBA_EQUHE Hemoglobin subunit alpha-1/2 OS=Equus
+ 3.6e-52 181.4 0.2 4e-52 181.2 0.2 1.0 1 sp|P80216|HBB_APTFO Hemoglobin subunit beta OS=Aptenodytes
+ 3.7e-52 181.3 0.1 4.1e-52 181.2 0.1 1.0 1 sp|Q2KPA4|HBB_SCAAQ Hemoglobin subunit beta OS=Scalopus aq
+ 3.7e-52 181.3 0.3 4.1e-52 181.2 0.3 1.0 1 sp|P01943|HBA_SPAEH Hemoglobin subunit alpha OS=Spalax ehr
+ 4e-52 181.2 0.8 4.4e-52 181.1 0.8 1.0 1 sp|P01950|HBA_SUNMU Hemoglobin subunit alpha OS=Suncus mur
+ 4.1e-52 181.2 0.3 4.5e-52 181.1 0.3 1.0 1 sp|P68235|HBA_URSMA Hemoglobin subunit alpha OS=Ursus mari
+ 4.1e-52 181.2 0.3 4.5e-52 181.1 0.3 1.0 1 sp|P68236|HBA_URSTH Hemoglobin subunit alpha OS=Ursus thib
+ 4.1e-52 181.2 0.3 4.5e-52 181.1 0.3 1.0 1 sp|P68237|HBA_URSML Hemoglobin subunit alpha OS=Ursus mala
+ 4.5e-52 181.1 0.4 5e-52 180.9 0.4 1.0 1 sp|B3EWD5|HBA_PERCA Hemoglobin subunit alpha OS=Peromyscus
+ 4.8e-52 181.0 0.2 5.2e-52 180.8 0.2 1.0 1 sp|P02078|HBBC_CAPHI Hemoglobin subunit beta-C OS=Capra hir
+ 4.8e-52 181.0 0.2 5.3e-52 180.8 0.2 1.0 1 sp|P41329|HBA1_ARCGA Hemoglobin subunit alpha-1 OS=Arctocep
+ 5.2e-52 180.9 0.3 5.7e-52 180.7 0.3 1.0 1 sp|P24659|HBA_MACGG Hemoglobin subunit alpha-1/2 OS=Macrod
+ 5.6e-52 180.7 0.2 6.2e-52 180.6 0.2 1.0 1 sp|B3EWE3|HBA_MICPE Hemoglobin subunit alpha OS=Microtus p
+ 6.9e-52 180.5 0.3 7.6e-52 180.3 0.3 1.0 1 sp|P18975|HBA_PANLE Hemoglobin subunit alpha OS=Panthera l
+ 7e-52 180.4 0.5 7.8e-52 180.3 0.5 1.0 1 sp|P01972|HBA_ODOVI Hemoglobin subunit alpha-1/2 OS=Odocoi
+ 9.3e-52 180.0 0.4 1e-51 179.9 0.4 1.0 1 sp|P02125|HBB_CICCI Hemoglobin subunit beta OS=Ciconia cic
+ 9.6e-52 180.0 0.1 1e-51 179.9 0.1 1.0 1 sp|P02126|HBB_STUVU Hemoglobin subunit beta OS=Sturnus vul
+ 1e-51 179.9 0.2 1.1e-51 179.8 0.2 1.0 1 sp|P17689|HBA_MARFO Hemoglobin subunit alpha OS=Martes foi
+ 1e-51 179.9 0.3 1.2e-51 179.7 0.3 1.0 1 sp|P02105|HBE2_CAPHI Hemoglobin subunit epsilon-2 OS=Capra
+ 1.1e-51 179.8 0.3 1.3e-51 179.6 0.3 1.0 1 sp|P06643|HBE4_BOVIN Hemoglobin subunit epsilon-4 OS=Bos ta
+ 1.3e-51 179.6 0.7 1.4e-51 179.4 0.7 1.0 1 sp|P18971|HBA_BALAC Hemoglobin subunit alpha OS=Balaenopte
+ 1.3e-51 179.5 0.2 1.5e-51 179.4 0.2 1.0 1 sp|P01948|HBA_RABIT Hemoglobin subunit alpha-1/2 OS=Orycto
+ 1.3e-51 179.5 0.1 1.5e-51 179.4 0.1 1.0 1 sp|P10778|HBA_ODORO Hemoglobin subunit alpha OS=Odobenus r
+ 1.4e-51 179.4 0.0 1.6e-51 179.3 0.0 1.0 1 sp|P68256|HBG1_CEBAP Hemoglobin subunit gamma-1 OS=Cebus ap
+ 1.4e-51 179.4 0.0 1.6e-51 179.3 0.0 1.0 1 sp|Q28221|HBG1_CEBAL Hemoglobin subunit gamma-1 OS=Cebus al
+ 1.4e-51 179.4 1.0 1.6e-51 179.3 1.0 1.0 1 sp|P01964|HBA_DASNO Hemoglobin subunit alpha OS=Dasypus no
+ 1.5e-51 179.4 0.0 1.7e-51 179.2 0.0 1.0 1 sp|P21668|HBB_PSIKR Hemoglobin subunit beta OS=Psittacula
+ 1.7e-51 179.2 0.1 1.9e-51 179.0 0.1 1.0 1 sp|P15448|HBA_MELCA Hemoglobin subunit alpha OS=Mellivora
+ 1.8e-51 179.1 0.0 2e-51 179.0 0.0 1.0 1 sp|P68257|HBG2_CEBAP Hemoglobin subunit gamma-2 OS=Cebus ap
+ 1.8e-51 179.1 0.0 2e-51 179.0 0.0 1.0 1 sp|P68258|HBG2_CEBAL Hemoglobin subunit gamma-2 OS=Cebus al
+ 1.9e-51 179.1 0.0 2e-51 178.9 0.0 1.0 1 sp|P02115|HBB_ANAPP Hemoglobin subunit beta OS=Anas platyr
+ 2e-51 178.9 0.0 2.2e-51 178.8 0.0 1.0 1 sp|P22742|HBB_FRAPO Hemoglobin subunit beta OS=Francolinus
+ 2.1e-51 178.9 0.1 2.3e-51 178.8 0.1 1.0 1 sp|P02118|HBB_ANSIN Hemoglobin subunit beta OS=Anser indic
+ 2.2e-51 178.8 0.1 2.5e-51 178.7 0.1 1.0 1 sp|P30893|HBB_COTJA Hemoglobin subunit beta OS=Coturnix co
+ 2.3e-51 178.8 0.1 2.5e-51 178.6 0.1 1.0 1 sp|P18969|HBA_AILFU Hemoglobin subunit alpha OS=Ailurus fu
+ 2.3e-51 178.7 0.0 2.6e-51 178.6 0.0 1.0 1 sp|P10058|HBB_EUDCH Hemoglobin subunit beta OS=Eudyptes ch
+ 2.5e-51 178.6 0.4 2.8e-51 178.5 0.4 1.0 1 sp|P24292|HBB_ECHTE Hemoglobin subunit beta OS=Echinops te
+ 2.6e-51 178.6 0.1 2.8e-51 178.5 0.1 1.0 1 sp|P07036|HBB_CHLME Hemoglobin subunit beta OS=Chloephaga
+ 2.6e-51 178.6 0.2 2.9e-51 178.4 0.2 1.0 1 sp|P02107|HBB_MACRU Hemoglobin subunit beta OS=Macropus ru
+ 2.6e-51 178.6 0.4 2.9e-51 178.4 0.4 1.0 1 sp|Q6H1U7|HBB_MACEU Hemoglobin subunit beta OS=Macropus eu
+ 2.7e-51 178.5 0.1 3e-51 178.4 0.1 1.0 1 sp|P60529|HBA_CANFA Hemoglobin subunit alpha OS=Canis fami
+ 2.8e-51 178.5 0.1 3.1e-51 178.3 0.1 1.0 1 sp|P02127|HBRH_CHICK Hemoglobin subunit rho OS=Gallus gallu
+ 3.1e-51 178.3 0.0 3.5e-51 178.2 0.0 1.0 1 sp|Q45XH5|HBG_DUGDU Hemoglobin subunit gamma OS=Dugong dug
+ 3.2e-51 178.3 0.4 3.5e-51 178.1 0.4 1.0 1 sp|P02106|HBB_MACGI Hemoglobin subunit beta OS=Macropus gi
+ 3.3e-51 178.2 0.0 3.7e-51 178.1 0.0 1.0 1 sp|P07406|HBB_PASMO Hemoglobin subunit beta OS=Passer mont
+ 3.5e-51 178.2 1.5 3.8e-51 178.0 1.5 1.0 1 sp|P02199|MYG_APTFO Myoglobin OS=Aptenodytes forsteri GN=M
+ 3.5e-51 178.2 0.1 3.9e-51 178.0 0.1 1.0 1 sp|P08261|HBB_CHRRI Hemoglobin subunit beta/beta' OS=Chroi
+ 3.6e-51 178.1 0.1 4e-51 178.0 0.1 1.0 1 sp|P02121|HBB_PHORU Hemoglobin subunit beta OS=Phoenicopte
+ 3.8e-51 178.0 0.1 4.2e-51 177.9 0.1 1.0 1 sp|P60530|HBA_CANLA Hemoglobin subunit alpha OS=Canis latr
+ 4e-51 178.0 0.1 4.4e-51 177.9 0.1 1.0 1 sp|P02112|HBB_CHICK Hemoglobin subunit beta OS=Gallus gall
+ 4e-51 178.0 0.1 4.4e-51 177.9 0.1 1.0 1 sp|P68944|HBB_BRACA Hemoglobin subunit beta OS=Branta cana
+ 4e-51 178.0 0.1 4.4e-51 177.9 0.1 1.0 1 sp|P68945|HBB_CYGOL Hemoglobin subunit beta OS=Cygnus olor
+ 4e-51 178.0 0.1 4.4e-51 177.8 0.1 1.0 1 sp|P02117|HBB_ANSAN Hemoglobin subunit beta OS=Anser anser
+ 4.1e-51 178.0 0.0 4.5e-51 177.8 0.0 1.0 1 sp|P68068|HBG_ATEGE Hemoglobin subunit gamma OS=Ateles geo
+ 4.1e-51 178.0 0.0 4.5e-51 177.8 0.0 1.0 1 sp|P68069|HBG_ATEPA Hemoglobin subunit gamma OS=Ateles pan
+ 4.1e-51 178.0 0.0 4.5e-51 177.8 0.0 1.0 1 sp|P68070|HBG_LAGLA Hemoglobin subunit gamma OS=Lagothrix
+ 4.1e-51 178.0 0.0 4.5e-51 177.8 0.0 1.0 1 sp|P68071|HBG_BRAAR Hemoglobin subunit gamma OS=Brachytele
+ 4.2e-51 177.9 0.3 4.7e-51 177.7 0.3 1.0 1 sp|B3EWE1|HBA_BLABR Hemoglobin subunit alpha OS=Blarina br
+ 4.5e-51 177.8 0.1 4.9e-51 177.7 0.1 1.0 1 sp|P07411|HBB_VULGR Hemoglobin subunit beta OS=Vultur gryp
+ 4.6e-51 177.8 0.0 5e-51 177.7 0.0 1.0 1 sp|P02113|HBB_PHACO Hemoglobin subunit beta OS=Phasianus c
+ 5.1e-51 177.6 0.1 5.7e-51 177.5 0.1 1.0 1 sp|P21200|HBA_VULVU Hemoglobin subunit alpha OS=Vulpes vul
+ 5.2e-51 177.6 0.1 5.7e-51 177.5 0.1 1.0 1 sp|P82113|HBB_STEMC Hemoglobin subunit beta OS=Stercorariu
+ 5.4e-51 177.6 0.3 6e-51 177.4 0.3 1.0 1 sp|B3EWD9|HBA_TAMST Hemoglobin subunit alpha OS=Tamias str
+ 5.5e-51 177.5 0.0 6e-51 177.4 0.0 1.0 1 sp|P68030|HBG_ALOBE Hemoglobin subunit gamma OS=Alouatta b
+ 5.5e-51 177.5 0.0 6e-51 177.4 0.0 1.0 1 sp|P68031|HBG_ALOCA Hemoglobin subunit gamma OS=Alouatta c
+ 5.5e-51 177.5 0.1 6.1e-51 177.4 0.1 1.0 1 sp|P14260|HBB_CAIMO Hemoglobin subunit beta OS=Cairina mos
+ 5.6e-51 177.5 0.0 6.2e-51 177.4 0.0 1.0 1 sp|Q9GJS7|HBG_CALJA Hemoglobin subunit gamma OS=Callithrix
+ 5.6e-51 177.5 1.0 6.3e-51 177.3 1.0 1.0 1 sp|Q7M3B8|HBA1_HAPGR Hemoglobin subunit alpha-1 OS=Hapalemu
+ 5.8e-51 177.5 0.1 6.5e-51 177.3 0.1 1.0 1 sp|P60523|HBA_CHRBR Hemoglobin subunit alpha OS=Chrysocyon
+ 5.8e-51 177.5 0.0 6.4e-51 177.3 0.0 1.0 1 sp|P02116|HBB_ARAAR Hemoglobin subunit beta OS=Ara araraun
+ 6.2e-51 177.4 0.9 6.8e-51 177.2 0.9 1.0 1 sp|P63105|HBA_CAMBA Hemoglobin subunit alpha OS=Camelus ba
+ 6.2e-51 177.4 0.9 6.8e-51 177.2 0.9 1.0 1 sp|P63106|HBA_CAMDR Hemoglobin subunit alpha OS=Camelus dr
+ 6.2e-51 177.4 2.7 6.9e-51 177.2 2.7 1.0 1 sp|P02200|MYG_ALLMI Myoglobin OS=Alligator mississippiensi
+ 6.5e-51 177.3 0.0 7.2e-51 177.1 0.0 1.0 1 sp|P07414|HBA_TRIIN Hemoglobin subunit alpha OS=Trichechus
+ 6.7e-51 177.3 0.0 7.3e-51 177.1 0.0 1.0 1 sp|P14524|HBB_TURME Hemoglobin subunit beta OS=Turdus meru
+ 7.1e-51 177.2 0.1 7.9e-51 177.0 0.1 1.0 1 sp|Q45XI4|HBD_DENDR Hemoglobin subunit deltaH OS=Dendrohyr
+ 7.4e-51 177.1 0.1 8.2e-51 177.0 0.1 1.0 1 sp|P84792|HBB_AYTFU Hemoglobin subunit beta OS=Aythya fuli
+ 7.9e-51 177.0 1.9 8.7e-51 176.9 1.9 1.0 1 sp|P0C0U8|HBB1_DRYCE Hemoglobin subunit beta-1 OS=Drymarcho
+ 9.7e-51 176.7 0.7 1.1e-50 176.6 0.7 1.0 1 sp|P19645|HBA_PAGLA Hemoglobin subunit alpha OS=Paguma lar
+ 9.8e-51 176.7 0.1 1.1e-50 176.6 0.1 1.0 1 sp|O13071|HBE_CALGE Hemoglobin subunit epsilon (Fragment)
+ 1e-50 176.7 0.0 1.1e-50 176.5 0.0 1.0 1 sp|Q45XI5|HBD_HETBR Hemoglobin subunit deltaH OS=Heterohyr
+ 1e-50 176.7 1.0 1.1e-50 176.5 1.0 1.0 1 sp|P07419|HBA_DASVI Hemoglobin subunit alpha OS=Dasyurus v
+ 1e-50 176.6 0.1 1.3e-50 176.3 0.1 1.1 1 sp|P09967|GLB1_PETMA Globin-1 OS=Petromyzon marinus PE=1 SV
+ 1.1e-50 176.6 0.1 1.2e-50 176.5 0.1 1.0 1 sp|P02114|HBB_ANAPL Hemoglobin subunit beta OS=Anas platyr
+ 1.1e-50 176.6 0.3 1.2e-50 176.4 0.3 1.0 1 sp|P18978|HBA_TURTR Hemoglobin subunit alpha OS=Tursiops t
+ 1.1e-50 176.5 0.2 1.2e-50 176.4 0.2 1.0 1 sp|P10782|HBB_PHACA Hemoglobin subunit beta OS=Phalacrocor
+ 1.3e-50 176.4 0.1 1.4e-50 176.2 0.1 1.0 1 sp|P15163|HBA_LEPWE Hemoglobin subunit alpha-1/2 OS=Lepton
+ 1.4e-50 176.2 0.9 1.6e-50 176.0 0.9 1.0 1 sp|P23019|HBA_PROCR Hemoglobin subunit alpha OS=Proteles c
+ 1.5e-50 176.1 0.1 1.7e-50 176.0 0.1 1.0 1 sp|P02124|HBB_RHEAM Hemoglobin subunit beta OS=Rhea americ
+ 1.6e-50 176.1 0.1 1.7e-50 175.9 0.1 1.0 1 sp|P86390|HBB2_IGUIG Hemoglobin subunit beta-2 OS=Iguana ig
+ 1.8e-50 175.9 0.0 2e-50 175.7 0.0 1.0 1 sp|P02123|HBB_STRCA Hemoglobin subunit beta OS=Struthio ca
+ 1.9e-50 175.8 0.0 2.1e-50 175.6 0.0 1.0 1 sp|Q27940|HBG_AOTAZ Hemoglobin subunit gamma OS=Aotus azar
+ 2e-50 175.7 0.0 2.2e-50 175.6 0.0 1.0 1 sp|P02120|HBB_ANSSE Hemoglobin subunit beta OS=Anseranas s
+ 2.4e-50 175.5 0.3 2.6e-50 175.3 0.3 1.0 1 sp|P02203|MYG_VARVA Myoglobin OS=Varanus varius GN=MB PE=1
+ 2.4e-50 175.4 0.0 2.7e-50 175.3 0.0 1.0 1 sp|P68061|HBB_AEGMO Hemoglobin subunit beta OS=Aegypius mo
+ 2.4e-50 175.4 0.0 2.7e-50 175.3 0.0 1.0 1 sp|P68062|HBB_TRIOC Hemoglobin subunit beta OS=Trigonoceps
+ 2.4e-50 175.4 0.0 2.7e-50 175.3 0.0 1.0 1 sp|P68063|HBB_GYPRU Hemoglobin subunit beta OS=Gyps rueppe
+ 2.6e-50 175.3 0.1 2.9e-50 175.2 0.1 1.0 1 sp|P08851|HBB_ACCGE Hemoglobin subunit beta OS=Accipiter g
+ 2.7e-50 175.3 0.4 3e-50 175.1 0.4 1.0 1 sp|P01957|HBA_PROHA Hemoglobin subunit alpha OS=Procavia c
+ 2.7e-50 175.3 0.0 3e-50 175.1 0.0 1.0 1 sp|Q9GLX4|HBG1_CALMO Hemoglobin subunit gamma-1 OS=Calliceb
+ 2.8e-50 175.2 0.1 3.1e-50 175.1 0.1 1.0 1 sp|P02128|HBE_CHICK Hemoglobin subunit epsilon OS=Gallus g
+ 3.1e-50 175.1 0.1 3.5e-50 174.9 0.1 1.0 1 sp|P01949|HBA_ERIEU Hemoglobin subunit alpha OS=Erinaceus
+ 3.8e-50 174.8 1.4 4.2e-50 174.7 1.4 1.0 1 sp|P01979|HBA_ORNAN Hemoglobin subunit alpha OS=Ornithorhy
+ 3.9e-50 174.8 0.1 4.3e-50 174.6 0.1 1.0 1 sp|P18977|HBA_PROLO Hemoglobin subunit alpha OS=Procyon lo
+ 3.9e-50 174.8 0.6 4.3e-50 174.6 0.6 1.0 1 sp|P01973|HBA_LAMGL Hemoglobin subunit alpha OS=Lama glama
+ 4.1e-50 174.7 0.9 4.6e-50 174.6 0.9 1.0 1 sp|P67815|HBA_LAMGU Hemoglobin subunit alpha OS=Lama guani
+ 4.1e-50 174.7 0.9 4.6e-50 174.6 0.9 1.0 1 sp|P67816|HBA_LAMPA Hemoglobin subunit alpha OS=Lama guani
+ 5.3e-50 174.3 0.1 5.8e-50 174.2 0.1 1.0 1 sp|P02108|HBB_POTTR Hemoglobin subunit beta OS=Potorous tr
+ 5.3e-50 174.3 0.4 5.8e-50 174.2 0.4 1.0 1 sp|P83123|HBB_CHENI Hemoglobin subunit beta OS=Chelonoidis
+ 5.4e-50 174.3 0.1 6e-50 174.2 0.1 1.0 1 sp|P02109|HBB_DIDVI Hemoglobin subunit beta-M OS=Didelphis
+ 5.5e-50 174.3 0.1 6e-50 174.2 0.1 1.0 1 sp|P02122|HBB_AQUCH Hemoglobin subunit beta OS=Aquila chry
+ 6.6e-50 174.0 2.2 7.3e-50 173.9 2.2 1.0 1 sp|P01977|HBA1_TACAC Hemoglobin subunit alpha-1 OS=Tachyglo
+ 6.7e-50 174.0 0.9 7.4e-50 173.9 0.9 1.0 1 sp|P07425|HBA_LAMVI Hemoglobin subunit alpha OS=Lama vicug
+ 8.1e-50 173.7 1.2 9e-50 173.6 1.2 1.0 1 sp|P01978|HBA2_TACAC Hemoglobin subunit alpha-2 OS=Tachyglo
+ 8.6e-50 173.6 0.2 9.6e-50 173.5 0.2 1.0 1 sp|P04444|HBBZ_MOUSE Hemoglobin subunit beta-H1 OS=Mus musc
+ 9.7e-50 173.5 0.4 1.1e-49 173.3 0.4 1.0 1 sp|P22743|HBB2_NAJNA Hemoglobin subunit beta-2 OS=Naja naja
+ 1.1e-49 173.3 0.5 1.2e-49 173.2 0.5 1.0 1 sp|P01954|HBA_ELEMA Hemoglobin subunit alpha OS=Elephas ma
+ 1.2e-49 173.2 1.2 1.3e-49 173.1 1.2 1.0 1 sp|P13274|HBB_CHRPI Hemoglobin subunit beta OS=Chrysemys p
+ 1.6e-49 172.8 0.2 1.7e-49 172.7 0.2 1.0 1 sp|P29626|HBBY_MESAU Hemoglobin subunit beta-Y OS=Mesocrice
+ 1.6e-49 172.8 0.0 1.8e-49 172.6 0.0 1.0 1 sp|P56285|HBG_ALOSE Hemoglobin subunit gamma OS=Alouatta s
+ 1.6e-49 172.8 0.0 1.8e-49 172.6 0.0 1.0 1 sp|Q45XI6|HBD_PROCA Hemoglobin subunit deltaH OS=Procavia
+ 1.7e-49 172.7 0.5 1.9e-49 172.5 0.5 1.0 1 sp|Q98905|HBB_CHECB Hemoglobin subunit beta OS=Chelonoidis
+ 2.9e-49 171.9 0.4 3.2e-49 171.8 0.4 1.0 1 sp|P01955|HBA_LOXAF Hemoglobin subunit alpha OS=Loxodonta
+ 3.5e-49 171.7 0.4 3.9e-49 171.5 0.4 1.0 1 sp|P02080|HBBN_AMMLE Hemoglobin subunit beta-C(NA) OS=Ammot
+ 3.6e-49 171.7 1.4 4e-49 171.5 1.4 1.0 1 sp|B3EWD3|HBA_PERCR Hemoglobin subunit alpha OS=Peromyscus
+ 3.6e-49 171.6 0.6 4e-49 171.5 0.6 1.0 1 sp|P01975|HBA_MACGI Hemoglobin subunit alpha OS=Macropus g
+ 3.9e-49 171.5 0.0 4.2e-49 171.4 0.0 1.0 1 sp|P86391|HBB2_AMBCR Hemoglobin subunit beta-2 OS=Amblyrhyn
+ 3.9e-49 171.5 0.3 4.4e-49 171.4 0.3 1.0 1 sp|B3EWD1|HBA_SCICA Hemoglobin subunit alpha OS=Sciurus ca
+ 4.5e-49 171.3 0.2 5e-49 171.2 0.2 1.0 1 sp|P18987|HBB1_IGUIG Hemoglobin subunit beta-1 OS=Iguana ig
+ 4.7e-49 171.3 0.6 5.2e-49 171.1 0.6 1.0 1 sp|P18973|HBA_CROCR Hemoglobin subunit alpha OS=Crocuta cr
+ 5.1e-49 171.1 0.1 5.6e-49 171.0 0.1 1.0 1 sp|P10061|HBB2_SPHPU Hemoglobin subunit beta-2 OS=Sphenodon
+ 5.6e-49 171.0 0.2 6.2e-49 170.9 0.2 1.0 1 sp|P06642|HBE2_BOVIN Hemoglobin subunit epsilon-2 OS=Bos ta
+ 5.7e-49 171.0 0.4 6.4e-49 170.8 0.4 1.0 1 sp|P04443|HBB0_MOUSE Hemoglobin subunit beta-H0 OS=Mus musc
+ 6.1e-49 170.9 0.1 6.7e-49 170.8 0.1 1.0 1 sp|Q45XH6|HBG_TRIMA Hemoglobin subunit gamma OS=Trichechus
+ 6.6e-49 170.8 0.6 7.2e-49 170.7 0.6 1.0 1 sp|P83133|HBB_ALDEL Hemoglobin A/D subunit beta OS=Aldabra
+ 6.7e-49 170.8 0.1 8.3e-49 170.5 0.1 1.1 1 sp|P21198|GLB2_MORMR Globin-2 OS=Mordacia mordax PE=1 SV=2
+ 8.8e-49 170.4 0.4 9.8e-49 170.2 0.4 1.0 1 sp|P81043|HBA_MACEU Hemoglobin subunit alpha OS=Macropus e
+ 9.3e-49 170.3 0.2 1e-48 170.1 0.2 1.0 1 sp|P14525|HBA_BRATR Hemoglobin subunit alpha OS=Bradypus t
+ 1e-48 170.1 0.1 1.3e-48 169.8 0.1 1.1 1 sp|P21197|GLB1_MORMR Globin-1 OS=Mordacia mordax PE=1 SV=2
+ 2.1e-48 169.1 0.2 2.3e-48 169.0 0.2 1.0 1 sp|P15165|HBB_APUAP Hemoglobin subunit beta OS=Apus apus G
+ 2.1e-48 169.1 0.4 2.4e-48 169.0 0.4 1.0 1 sp|P18436|HBG_TARSY Hemoglobin subunit gamma OS=Tarsius sy
+ 2.3e-48 169.0 1.2 2.5e-48 168.9 1.2 1.0 1 sp|P10059|HBA_SPHPU Hemoglobin subunit alpha-A OS=Sphenodo
+ 2.6e-48 168.9 0.4 2.8e-48 168.7 0.4 1.0 1 sp|P41332|HBB_MICGA Hemoglobin subunit beta OS=Microcephal
+ 3.2e-48 168.6 0.2 3.6e-48 168.4 0.2 1.0 1 sp|P01946|HBA_RAT Hemoglobin subunit alpha-1/2 OS=Rattus
+ 3.3e-48 168.5 1.2 3.6e-48 168.4 1.2 1.0 1 sp|P19014|HBA_CRIGA Hemoglobin subunit alpha OS=Cricetomys
+ 5.4e-48 167.8 0.6 6.4e-48 167.6 0.6 1.0 1 sp|P21199|GLB3_MORMR Globin-3 OS=Mordacia mordax PE=1 SV=2
+ 5.8e-48 167.7 0.3 6.5e-48 167.6 0.3 1.0 1 sp|P81024|HBAD_MELGA Hemoglobin subunit alpha-D OS=Meleagri
+ 8e-48 167.3 0.1 8.9e-48 167.1 0.1 1.0 1 sp|Q9XSN2|HBA1_EQUGR Hemoglobin subunit alpha-1 OS=Equus gr
+ 8.1e-48 167.2 0.6 9e-48 167.1 0.6 1.0 1 sp|Q9DF25|HBAD_CHECB Hemoglobin subunit alpha-D OS=Chelonoi
+ 8.8e-48 167.1 0.2 9.8e-48 167.0 0.2 1.0 1 sp|P01998|HBA_CRONI Hemoglobin subunit alpha OS=Crocodylus
+ 1.8e-47 166.1 0.3 2e-47 165.9 0.3 1.0 1 sp|P08849|HBAD_ACCGE Hemoglobin subunit alpha-D OS=Accipite
+ 1.9e-47 166.1 1.1 2.1e-47 165.9 1.1 1.0 1 sp|Q10732|HBA_CARCR Hemoglobin subunit alpha-A OS=Caretta
+ 2.2e-47 165.8 0.0 2.4e-47 165.7 0.0 1.0 1 sp|P02007|HBPI_CHICK Hemoglobin subunit pi OS=Gallus gallus
+ 2.2e-47 165.8 0.3 2.5e-47 165.7 0.3 1.0 1 sp|P13787|HBAZ_HORSE Hemoglobin subunit zeta OS=Equus cabal
+ 2.3e-47 165.8 0.3 2.5e-47 165.7 0.3 1.0 1 sp|B3EWD7|HBA_TAMHU Hemoglobin subunit alpha OS=Tamiasciur
+ 2.9e-47 165.5 0.0 3.2e-47 165.3 0.0 1.0 1 sp|P24291|HBA_ECHTE Hemoglobin subunit alpha OS=Echinops t
+ 2.9e-47 165.5 0.7 3.2e-47 165.3 0.7 1.0 1 sp|P02076|HBB_OVIMU Hemoglobin subunit beta OS=Ovis orient
+ 3e-47 165.4 0.7 3.3e-47 165.3 0.7 1.0 1 sp|P83134|HBAD_ALDEL Hemoglobin D subunit alpha OS=Aldabrac
+ 3.1e-47 165.4 0.3 3.4e-47 165.2 0.3 1.0 1 sp|P02001|HBAD_CHICK Hemoglobin subunit alpha-D OS=Gallus g
+ 3.1e-47 165.4 0.5 3.4e-47 165.2 0.5 1.0 1 sp|P11751|HBA_MEGLY Hemoglobin subunit alpha OS=Megaderma
+ 4.2e-47 164.9 0.1 4.6e-47 164.8 0.1 1.0 1 sp|P18993|HBB1_VARAL Hemoglobin subunit beta-1 OS=Varanus a
+ 6.3e-47 164.4 0.2 7e-47 164.2 0.2 1.0 1 sp|P68059|HBAD_AEGMO Hemoglobin subunit alpha-D OS=Aegypius
+ 6.3e-47 164.4 0.2 7e-47 164.2 0.2 1.0 1 sp|P68060|HBAD_TRIOC Hemoglobin subunit alpha-D OS=Trigonoc
+ 6.4e-47 164.3 0.2 7.1e-47 164.2 0.2 1.0 1 sp|P04242|HBAD_STRCA Hemoglobin subunit alpha-D OS=Struthio
+ 7.3e-47 164.2 0.2 8.1e-47 164.0 0.2 1.0 1 sp|P02008|HBAZ_HUMAN Hemoglobin subunit zeta OS=Homo sapien
+ 7.5e-47 164.1 0.0 8.3e-47 164.0 0.0 1.0 1 sp|P04243|HBPI_CAIMO Hemoglobin subunit pi OS=Cairina mosch
+ 8.6e-47 163.9 1.3 9.5e-47 163.8 1.3 1.0 1 sp|P13273|HBA_CHRPI Hemoglobin subunit alpha-A OS=Chrysemy
+ 1e-46 163.7 0.3 1.1e-46 163.6 0.3 1.0 1 sp|P83124|HBAD_CHENI Hemoglobin subunit alpha-D OS=Chelonoi
+ 1e-46 163.7 1.2 1.1e-46 163.6 1.2 1.0 1 sp|P06638|HBA5_XENLA Hemoglobin subunit alpha-5 OS=Xenopus
+ 1.1e-46 163.6 0.2 1.2e-46 163.4 0.2 1.0 1 sp|P02000|HBA_CAICR Hemoglobin subunit alpha OS=Caiman cro
+ 1.1e-46 163.5 0.3 1.3e-46 163.4 0.3 1.0 1 sp|P04241|HBAD_RHEAM Hemoglobin subunit alpha-D OS=Rhea ame
+ 1.6e-46 163.1 1.4 1.7e-46 162.9 1.4 1.0 1 sp|P01986|HBA_ANAPL Hemoglobin subunit alpha-A OS=Anas pla
+ 1.7e-46 163.0 1.0 1.8e-46 162.8 1.0 1.0 1 sp|P01989|HBA_ANSAN Hemoglobin subunit alpha-A OS=Anser an
+ 1.7e-46 162.9 0.2 1.9e-46 162.8 0.2 1.0 1 sp|P08257|HBAD_GYPRU Hemoglobin subunit alpha-D/D' OS=Gyps
+ 1.8e-46 162.9 1.3 1.9e-46 162.8 1.3 1.0 1 sp|P01988|HBA_ANAPP Hemoglobin subunit alpha-A OS=Anas pla
+ 1.9e-46 162.8 0.4 2.1e-46 162.7 0.4 1.0 1 sp|P02002|HBAD_PHACO Hemoglobin subunit alpha-D OS=Phasianu
+ 1.9e-46 162.8 0.5 2.1e-46 162.6 0.5 1.0 1 sp|P01993|HBA_AQUCH Hemoglobin subunit alpha-A OS=Aquila c
+ 2e-46 162.7 0.4 2.2e-46 162.6 0.4 1.0 1 sp|P84791|HBAD_AYTFU Hemoglobin subunit alpha-D OS=Aythya f
+ 2.5e-46 162.4 0.2 2.8e-46 162.3 0.2 1.0 1 sp|P06347|HBAZ_PANTR Hemoglobin subunit zeta OS=Pan troglod
+ 2.6e-46 162.4 1.2 2.9e-46 162.2 1.2 1.0 1 sp|P22740|HBA_ANAPE Hemoglobin subunit alpha-A OS=Anas pen
+ 2.7e-46 162.3 0.4 2.9e-46 162.2 0.4 1.0 1 sp|P82112|HBA2_STEMC Hemoglobin subunit alpha-2 OS=Stercora
+ 2.9e-46 162.2 1.0 3.3e-46 162.0 1.0 1.0 1 sp|P01991|HBA_BRACA Hemoglobin subunit alpha-A OS=Branta c
+ 3e-46 162.2 1.3 3.3e-46 162.0 1.3 1.0 1 sp|P01987|HBA_CAIMO Hemoglobin subunit alpha-A OS=Cairina
+ 3.4e-46 162.0 2.0 3.7e-46 161.9 2.0 1.0 1 sp|P01990|HBA_ANSIN Hemoglobin subunit alpha-A OS=Anser in
+ 3.6e-46 161.9 0.5 4e-46 161.7 0.5 1.0 1 sp|P22741|HBA_FRAPO Hemoglobin subunit alpha-A OS=Francoli
+ 4.3e-46 161.7 0.2 4.7e-46 161.5 0.2 1.0 1 sp|P83135|HBAA_CHENI Hemoglobin subunit alpha-A OS=Chelonoi
+ 4.5e-46 161.6 0.6 5e-46 161.4 0.6 1.0 1 sp|P04442|HBAD_ANAPL Hemoglobin subunit alpha-D OS=Anas pla
+ 4.6e-46 161.6 0.1 5e-46 161.4 0.1 1.0 1 sp|P83132|HBA2_ALDEL Hemoglobin A subunit alpha-2 OS=Aldabr
+ 4.7e-46 161.5 2.7 5.1e-46 161.4 2.7 1.0 1 sp|P02005|HBAD_CHRPI Hemoglobin subunit alpha-D OS=Chrysemy
+ 5.5e-46 161.3 0.4 6.1e-46 161.2 0.4 1.0 1 sp|P01995|HBA_PHACO Hemoglobin subunit alpha-A OS=Phasianu
+ 7.1e-46 160.9 1.0 7.9e-46 160.8 1.0 1.0 1 sp|P10057|HBA_EUDCH Hemoglobin subunit alpha OS=Eudyptes c
+ 8.1e-46 160.8 0.5 8.9e-46 160.6 0.5 1.0 1 sp|P84790|HBA_AYTFU Hemoglobin subunit alpha-A OS=Aythya f
+ 8.9e-46 160.6 3.2 9.8e-46 160.5 3.2 1.0 1 sp|P02006|HBAD_PHRHI Hemoglobin subunit alpha-D OS=Phrynops
+ 9e-46 160.6 0.3 9.9e-46 160.5 0.3 1.0 1 sp|P08850|HBA_ACCGE Hemoglobin subunit alpha-A OS=Accipite
+ 1e-45 160.5 0.2 1.1e-45 160.3 0.2 1.0 1 sp|P83131|HBA1_ALDEL Hemoglobin A subunit alpha-1 OS=Aldabr
+ 1.1e-45 160.4 0.4 1.2e-45 160.2 0.4 1.0 1 sp|P30892|HBAD_COTJA Hemoglobin subunit alpha-D OS=Coturnix
+ 1.1e-45 160.3 0.6 1.2e-45 160.2 0.6 1.0 1 sp|P02003|HBAD_CAIMO Hemoglobin subunit alpha-D OS=Cairina
+ 1.1e-45 160.3 0.5 1.2e-45 160.2 0.5 1.0 1 sp|P01981|HBA_STRCA Hemoglobin subunit alpha-A OS=Struthio
+ 1.2e-45 160.2 0.6 1.4e-45 160.0 0.6 1.0 1 sp|P10060|HBB1_SPHPU Hemoglobin subunit beta-1 OS=Sphenodon
+ 1.5e-45 159.9 1.2 1.7e-45 159.8 1.2 1.0 1 sp|P01980|HBA_APTFO Hemoglobin subunit alpha OS=Aptenodyte
+ 1.6e-45 159.8 0.7 1.8e-45 159.7 0.7 1.0 1 sp|P01947|HBA_CAVPO Hemoglobin subunit alpha OS=Cavia porc
+ 1.8e-45 159.6 0.5 2e-45 159.5 0.5 1.0 1 sp|P01983|HBA_CICCI Hemoglobin subunit alpha-A OS=Ciconia
+ 1.8e-45 159.6 0.2 2e-45 159.5 0.2 1.0 1 sp|P13786|HBAZ_CAPHI Hemoglobin subunit zeta OS=Capra hircu
+ 1.9e-45 159.5 1.0 2.1e-45 159.4 1.0 1.0 1 sp|P01992|HBA_CYGOL Hemoglobin subunit alpha-A OS=Cygnus o
+ 2e-45 159.5 0.5 2.2e-45 159.4 0.5 1.0 1 sp|P01999|HBA_ALLMI Hemoglobin subunit alpha OS=Alligator
+ 2.1e-45 159.4 0.8 2.3e-45 159.3 0.8 1.0 1 sp|P24589|HBA_COTJA Hemoglobin subunit alpha-A OS=Coturnix
+ 2.3e-45 159.3 0.2 2.6e-45 159.1 0.2 1.0 1 sp|P02009|HBAZ_PIG Hemoglobin subunit zeta OS=Sus scrofa
+ 3e-45 158.9 0.2 3.2e-45 158.8 0.2 1.0 1 sp|P02129|HBB_CRONI Hemoglobin subunit beta OS=Crocodylus
+ 3.3e-45 158.8 1.0 3.6e-45 158.6 1.0 1.0 1 sp|P02137|HBBL_XENLA Hemoglobin larval subunit beta-1 OS=Xe
+ 3.6e-45 158.7 0.4 4e-45 158.5 0.4 1.0 1 sp|P08256|HBA_GYPRU Hemoglobin subunit alpha-A/A' OS=Gyps
+ 4.1e-45 158.5 1.4 4.5e-45 158.3 1.4 1.0 1 sp|P07034|HBA_CHLME Hemoglobin subunit alpha-A OS=Chloepha
+ 4.8e-45 158.3 0.4 5.3e-45 158.1 0.4 1.0 1 sp|P07417|HBA_AEGMO Hemoglobin subunit alpha-A OS=Aegypius
+ 6e-45 157.9 1.7 6.7e-45 157.8 1.7 1.0 1 sp|P10780|HBA_PHACA Hemoglobin subunit alpha-A OS=Phalacro
+ 6.1e-45 157.9 0.1 6.8e-45 157.8 0.1 1.0 1 sp|P07413|HBAD_PASMO Hemoglobin subunit alpha-D OS=Passer m
+ 6.8e-45 157.8 0.6 7.5e-45 157.6 0.6 1.0 1 sp|P01985|HBA_ANSSE Hemoglobin subunit alpha-A OS=Anserana
+ 6.8e-45 157.8 0.2 7.6e-45 157.6 0.2 1.0 1 sp|O12985|HBAD_COLLI Hemoglobin subunit alpha-D OS=Columba
+ 7e-45 157.7 0.4 7.8e-45 157.6 0.4 1.0 1 sp|P01994|HBA_CHICK Hemoglobin subunit alpha-A OS=Gallus g
+ 7.2e-45 157.7 0.6 8e-45 157.5 0.6 1.0 1 sp|P04239|HBAD_ANSIN Hemoglobin subunit alpha-D OS=Anser in
+ 8.3e-45 157.5 0.6 9.2e-45 157.3 0.6 1.0 1 sp|P04238|HBAD_ANSAN Hemoglobin subunit alpha-D OS=Anser an
+ 8.5e-45 157.4 0.3 9.4e-45 157.3 0.3 1.0 1 sp|P10781|HBAD_PHACA Hemoglobin subunit alpha-D OS=Phalacro
+ 9.3e-45 157.3 0.8 1e-44 157.2 0.8 1.0 1 sp|P04240|HBAD_BRACA Hemoglobin subunit alpha-D OS=Branta c
+ 9.9e-45 157.2 0.2 1.1e-44 157.1 0.2 1.0 1 sp|P15164|HBAD_APUAP Hemoglobin subunit alpha-D OS=Apus apu
+ 1.2e-44 157.0 0.4 1.3e-44 156.8 0.4 1.0 1 sp|P07035|HBAD_CHLME Hemoglobin subunit alpha-D OS=Chloepha
+ 1.3e-44 156.9 0.3 1.4e-44 156.7 0.3 1.0 1 sp|P08260|HBA_CHRRI Hemoglobin subunit alpha-A OS=Chroicoc
+ 1.3e-44 156.8 0.4 1.5e-44 156.7 0.4 1.0 1 sp|P19832|HBA_TRIOC Hemoglobin subunit alpha-A OS=Trigonoc
+ 1.3e-44 156.8 0.4 1.5e-44 156.7 0.4 1.0 1 sp|P81023|HBA_MELGA Hemoglobin subunit alpha-A OS=Meleagri
+ 1.6e-44 156.6 0.5 1.7e-44 156.4 0.5 1.0 1 sp|Q8HY34|HBA_MONDO Hemoglobin subunit alpha OS=Monodelphi
+ 1.6e-44 156.6 0.2 1.7e-44 156.4 0.2 1.0 1 sp|P82111|HBA1_STEMC Hemoglobin subunit alpha-1 OS=Stercora
+ 1.9e-44 156.3 0.3 2.1e-44 156.2 0.3 1.0 1 sp|P21871|HBA_COLLI Hemoglobin subunit alpha-A OS=Columba
+ 2.1e-44 156.2 2.4 2.2e-44 156.1 2.4 1.0 1 sp|P02130|HBB_ALLMI Hemoglobin subunit beta OS=Alligator m
+ 2.2e-44 156.1 1.8 2.4e-44 156.0 1.8 1.0 1 sp|P02131|HBB_CAICR Hemoglobin subunit beta OS=Caiman croc
+ 2.5e-44 155.9 0.3 2.8e-44 155.8 0.3 1.0 1 sp|P02136|HBB3_LITCT Hemoglobin subunit beta-3 OS=Lithobate
+ 2.5e-44 155.9 0.8 2.8e-44 155.8 0.8 1.0 1 sp|P19789|HBA_EUDSC Hemoglobin subunit alpha-A OS=Eudynamy
+ 2.8e-44 155.8 0.1 3.1e-44 155.6 0.1 1.0 1 sp|P07404|HBA_VULGR Hemoglobin subunit alpha-A OS=Vultur g
+ 3.3e-44 155.5 0.0 3.7e-44 155.4 0.0 1.0 1 sp|P02004|HBAD_STUVU Hemoglobin subunit alpha-D OS=Sturnus
+ 3.7e-44 155.4 0.2 4e-44 155.2 0.2 1.0 1 sp|Q7LZC3|HBA_STROE Hemoglobin subunit alpha-A OS=Streptop
+ 4.1e-44 155.2 0.0 4.6e-44 155.1 0.0 1.0 1 sp|P07407|HBA_PASMO Hemoglobin subunit alpha-A OS=Passer m
+ 4.4e-44 155.1 0.1 4.9e-44 155.0 0.1 1.0 1 sp|P01976|HBA_DIDVI Hemoglobin subunit alpha OS=Didelphis
+ 5.1e-44 154.9 1.2 5.6e-44 154.8 1.2 1.0 1 sp|P06636|HBA3_XENLA Hemoglobin subunit alpha-3 OS=Xenopus
+ 5.9e-44 154.7 0.1 6.4e-44 154.6 0.1 1.0 1 sp|P06467|HBAZ_MOUSE Hemoglobin subunit zeta OS=Mus musculu
+ 6e-44 154.7 0.3 6.6e-44 154.5 0.3 1.0 1 sp|P01997|HBA_STUVU Hemoglobin subunit alpha-A OS=Sturnus
+ 9.3e-44 154.1 0.4 1e-43 153.9 0.4 1.0 1 sp|P15162|HBA_APUAP Hemoglobin subunit alpha-A OS=Apus apu
+ 1.3e-43 153.6 1.1 1.4e-43 153.5 1.1 1.0 1 sp|P08423|HBB2_XENTR Hemoglobin subunit beta-2 OS=Xenopus t
+ 1.6e-43 153.4 0.3 1.7e-43 153.2 0.3 1.0 1 sp|P14522|HBA_TURME Hemoglobin subunit alpha-A OS=Turdus m
+ 1.8e-43 153.2 0.0 2e-43 153.0 0.0 1.0 1 sp|P14261|HBE_CAIMO Hemoglobin subunit epsilon OS=Cairina
+ 3.1e-43 152.4 0.6 3.4e-43 152.2 0.6 1.0 1 sp|Q10733|HBB_CARCR Hemoglobin subunit beta OS=Caretta car
+ 3.1e-43 152.4 0.2 3.5e-43 152.2 0.2 1.0 1 sp|P01982|HBA_RHEAM Hemoglobin subunit alpha-A OS=Rhea ame
+ 4.2e-43 152.0 1.4 4.6e-43 151.8 1.4 1.0 1 sp|P08422|HBA3_XENTR Hemoglobin subunit alpha-3 OS=Xenopus
+ 5.9e-43 151.5 0.0 6.6e-43 151.3 0.0 1.0 1 sp|P11896|HBA3_PLEWA Hemoglobin larval subunit alpha OS=Ple
+ 7.3e-43 151.2 0.8 8e-43 151.0 0.8 1.0 1 sp|P06637|HBA4_XENLA Hemoglobin subunit alpha-4 OS=Xenopus
+ 1.5e-42 150.2 0.0 1.7e-42 150.0 0.0 1.0 1 sp|P84203|HBAC_GYMUN Hemoglobin cathodic subunit alpha OS=G
+ 1.7e-42 149.9 0.1 1.9e-42 149.8 0.1 1.0 1 sp|P14523|HBAD_TURME Hemoglobin subunit alpha-D OS=Turdus m
+ 2.1e-42 149.7 0.0 2.3e-42 149.5 0.0 1.0 1 sp|P02011|HBA3_LITCT Hemoglobin subunit alpha-3 OS=Lithobat
+ 2.8e-42 149.3 0.4 3.1e-42 149.1 0.4 1.0 1 sp|Q9PVU6|HBAE_ORYLA Hemoglobin embryonic subunit alpha OS=
+ 3.3e-42 149.0 0.2 3.7e-42 148.9 0.2 1.0 1 sp|P01996|HBA_ARAAR Hemoglobin subunit alpha-A OS=Ara arar
+ 3.4e-42 149.0 0.2 3.8e-42 148.9 0.2 1.0 1 sp|P02133|HBB2_XENLA Hemoglobin subunit beta-2 OS=Xenopus l
+ 5e-42 148.5 0.0 5.5e-42 148.3 0.0 1.0 1 sp|P0C0U6|HBA_DRYCE Hemoglobin subunit alpha-A OS=Drymarch
+ 5.4e-42 148.3 0.7 6.1e-42 148.2 0.7 1.0 1 sp|P01984|HBA_PHORU Hemoglobin subunit alpha-A OS=Phoenico
+ 6.4e-42 148.1 0.0 7e-42 148.0 0.0 1.0 1 sp|P82316|HBBC_HOPLI Hemoglobin cathodic subunit beta OS=Ho
+ 7.4e-42 147.9 0.4 8.2e-42 147.8 0.4 1.0 1 sp|P83270|HBA1_ANAMI Hemoglobin subunit alpha-1 OS=Anarhich
+ 9.9e-42 147.5 0.1 1.1e-41 147.3 0.1 1.0 1 sp|P19831|HBA_PSIKR Hemoglobin subunit alpha OS=Psittacula
+ 9.9e-42 147.5 0.0 1.1e-41 147.4 0.0 1.0 1 sp|P02018|HBA_CARAU Hemoglobin subunit alpha OS=Carassius
+ 1.2e-41 147.2 0.0 1.3e-41 147.1 0.0 1.0 1 sp|P80727|HBBC_ANGAN Hemoglobin cathodic subunit beta OS=An
+ 1.3e-41 147.1 0.1 1.4e-41 147.0 0.1 1.0 1 sp|P11748|HBA_THUTH Hemoglobin subunit alpha OS=Thunnus th
+ 1.9e-41 146.6 0.0 2.1e-41 146.4 0.0 1.0 1 sp|Q9PRL9|HBA1_NAJNA Hemoglobin subunit alpha-1 OS=Naja naj
+ 2.5e-41 146.2 0.0 2.8e-41 146.1 0.0 1.0 1 sp|P02142|HBB1_ONCMY Hemoglobin subunit beta-1 OS=Oncorhync
+ 4.1e-41 145.5 0.1 4.5e-41 145.4 0.1 1.0 1 sp|Q90487|HBA_DANRE Hemoglobin subunit alpha OS=Danio reri
+ 4.4e-41 145.4 0.1 4.8e-41 145.3 0.1 1.0 1 sp|P10062|HBAD_SPHPU Hemoglobin subunit alpha-D OS=Sphenodo
+ 9.5e-41 144.3 0.5 1.1e-40 144.2 0.5 1.0 1 sp|P18974|HBA1_IGUIG Hemoglobin subunit alpha-1 OS=Iguana i
+ 1.1e-40 144.1 0.3 1.2e-40 143.9 0.3 1.0 1 sp|P83271|HBA2_ANAMI Hemoglobin subunit alpha-2 OS=Anarhich
+ 1.2e-40 144.0 0.1 1.4e-40 143.8 0.1 1.0 1 sp|P29624|HBA1_NOTAN Hemoglobin subunit alpha-1 OS=Notothen
+ 1.4e-40 143.8 0.0 1.5e-40 143.6 0.0 1.0 1 sp|P83478|HBBC_CONCO Hemoglobin cathodic subunit beta OS=Co
+ 1.9e-40 143.3 0.0 2.1e-40 143.2 0.0 1.0 1 sp|Q7LZC2|HBB1_MURHE Hemoglobin subunit beta-1 OS=Muraena h
+ 1.9e-40 143.3 1.8 2.1e-40 143.2 1.8 1.0 1 sp|P23740|HBA_LATCH Hemoglobin subunit alpha OS=Latimeria
+ 1.9e-40 143.3 0.2 2.1e-40 143.2 0.2 1.0 1 sp|P86882|HBA_LYCRE Hemoglobin subunit alpha OS=Lycodes re
+ 2e-40 143.3 0.6 2.2e-40 143.2 0.6 1.0 1 sp|P0C238|HBA_POGSC Hemoglobin subunit alpha OS=Pogonophry
+ 2.4e-40 143.0 0.0 2.7e-40 142.9 0.0 1.0 1 sp|P41331|HBA_MICGA Hemoglobin subunit alpha OS=Microcepha
+ 2.7e-40 142.9 0.2 2.9e-40 142.7 0.2 1.0 1 sp|P83479|HBAC_CONCO Hemoglobin cathodic subunit alpha OS=C
+ 3e-40 142.7 0.0 3.3e-40 142.6 0.0 1.0 1 sp|P11251|HBA_SALSA Hemoglobin subunit alpha OS=Salmo sala
+ 3.1e-40 142.6 0.5 3.5e-40 142.5 0.5 1.0 1 sp|P0C237|HBA_ARTOR Hemoglobin subunit alpha OS=Artedidrac
+ 3.4e-40 142.5 0.1 3.8e-40 142.4 0.1 1.0 1 sp|P83613|HBA2_GOBGI Hemoglobin subunit alpha-2 OS=Gobionot
+ 4.3e-40 142.2 0.1 4.8e-40 142.0 0.1 1.0 1 sp|P84653|HBA1_COTGO Hemoglobin subunit alpha-1 OS=Cottoper
+ 4.4e-40 142.2 0.0 4.8e-40 142.0 0.0 1.0 1 sp|Q9PVM2|HBBA_SERQU Hemoglobin subunit beta-A OS=Seriola q
+ 4.4e-40 142.1 0.0 4.9e-40 142.0 0.0 1.0 1 sp|P85083|HBA2_COTGO Hemoglobin subunit alpha-2 OS=Cottoper
+ 4.5e-40 142.1 0.1 5e-40 142.0 0.1 1.0 1 sp|P14520|HBA_ELEEL Hemoglobin subunit alpha OS=Electropho
+ 4.6e-40 142.1 0.0 5.1e-40 141.9 0.0 1.0 1 sp|P02010|HBA_VIPAS Hemoglobin subunit alpha OS=Vipera asp
+ 5.4e-40 141.9 1.5 5.9e-40 141.7 1.5 1.0 1 sp|P23741|HBB_LATCH Hemoglobin subunit beta OS=Latimeria c
+ 5.6e-40 141.8 0.1 6.2e-40 141.7 0.1 1.0 1 sp|P45719|HBA2_TRENE Hemoglobin subunit alpha-2 OS=Trematom
+ 7e-40 141.5 0.1 7.7e-40 141.4 0.1 1.0 1 sp|P06890|HBAT_PONPY Hemoglobin subunit theta-1 OS=Pongo py
+ 8.5e-40 141.2 0.0 9.4e-40 141.1 0.0 1.0 1 sp|P85081|HBA1_LIPTU Hemoglobin subunit alpha-1 OS=Liparis
+ 8.9e-40 141.2 0.0 9.8e-40 141.0 0.0 1.0 1 sp|Q9PVM1|HBBB_SERQU Hemoglobin subunit beta-B OS=Seriola q
+ 1e-39 141.0 0.1 1.1e-39 140.8 0.1 1.0 1 sp|P80043|HBA_TREBE Hemoglobin subunit alpha OS=Trematomus
+ 1.1e-39 140.9 0.2 1.2e-39 140.8 0.2 1.0 1 sp|P83114|HBB2_TELPE Hemoglobin subunit beta-2 OS=Telmatobi
+ 1.8e-39 140.2 0.8 2e-39 140.0 0.8 1.0 1 sp|P51465|HBAB_LITCT Hemoglobin subunit alpha-B OS=Lithobat
+ 2.6e-39 139.7 0.1 2.8e-39 139.5 0.1 1.0 1 sp|P09105|HBAT_HUMAN Hemoglobin subunit theta-1 OS=Homo sap
+ 2.9e-39 139.5 1.0 3.2e-39 139.4 1.0 1.0 1 sp|P82315|HBAC_HOPLI Hemoglobin cathodic subunit alpha OS=H
+ 3.2e-39 139.3 0.6 3.6e-39 139.2 0.6 1.0 1 sp|P07428|HBA_XENTR Hemoglobin subunit alpha OS=Xenopus tr
+ 3.8e-39 139.1 0.1 4.2e-39 139.0 0.1 1.0 1 sp|P84206|HBBA_GYMUN Hemoglobin anodic subunit beta OS=Gymn
+ 4.3e-39 138.9 4.0 4.8e-39 138.8 4.0 1.0 1 sp|P18981|HBA2_VARAL Hemoglobin subunit alpha-2 OS=Varanus
+ 5.2e-39 138.7 0.1 5.8e-39 138.5 0.1 1.0 1 sp|P10777|HBA1_NOTCO Hemoglobin subunit alpha-1 OS=Notothen
+ 5.4e-39 138.6 0.1 6e-39 138.5 0.1 1.0 1 sp|P14527|HBA4_ONCMY Hemoglobin subunit alpha-4 OS=Oncorhyn
+ 5.5e-39 138.6 0.0 6.1e-39 138.5 0.0 1.0 1 sp|P45718|HBA1_TRENE Hemoglobin subunit alpha-1 OS=Trematom
+ 6.3e-39 138.4 0.1 7e-39 138.3 0.1 1.0 1 sp|P83611|HBA1_GOBGI Hemoglobin subunit alpha-1 OS=Gobionot
+ 9.3e-39 137.9 0.1 1e-38 137.7 0.1 1.0 1 sp|P82990|HBA_PAGBO Hemoglobin subunit alpha OS=Pagothenia
+ 1.3e-38 137.4 1.2 1.4e-38 137.3 1.2 1.0 1 sp|P55267|HBAC_LITCT Hemoglobin subunit alpha-C OS=Lithobat
+ 2.1e-38 136.7 0.1 2.3e-38 136.6 0.1 1.0 1 sp|P83623|HBA_PSEUR Hemoglobin subunit alpha OS=Pseudaphri
+ 2.1e-38 136.7 0.2 2.3e-38 136.6 0.2 1.0 1 sp|P80270|HBA_CHEKU Hemoglobin subunit alpha OS=Chelidonic
+ 2.3e-38 136.6 0.1 2.5e-38 136.4 0.1 1.0 1 sp|P23018|HBB2_CYGMA Hemoglobin subunit beta-2 OS=Cygnodrac
+ 2.7e-38 136.4 0.2 3.1e-38 136.2 0.2 1.0 1 sp|Q8WWM9|CYGB_HUMAN Cytoglobin OS=Homo sapiens GN=CYGB PE=
+ 2.7e-38 136.4 0.0 3e-38 136.2 0.0 1.0 1 sp|P02016|HBA_CYPCA Hemoglobin subunit alpha OS=Cyprinus c
+ 3.2e-38 136.1 0.3 3.5e-38 136.0 0.3 1.0 1 sp|P62363|HBA2_NOTAN Hemoglobin subunit alpha-2 OS=Notothen
+ 3.2e-38 136.1 0.3 3.5e-38 136.0 0.3 1.0 1 sp|P62387|HBA2_NOTCO Hemoglobin subunit alpha-2 OS=Notothen
+ 3.5e-38 136.0 0.1 3.9e-38 135.8 0.1 1.0 1 sp|P23016|HBA_CYGMA Hemoglobin subunit alpha OS=Cygnodraco
+ 3.8e-38 135.9 0.3 4.4e-38 135.7 0.3 1.0 1 sp|P02134|HBB_RANES Hemoglobin subunit beta OS=Rana escule
+ 6.3e-38 135.2 0.0 7e-38 135.0 0.0 1.0 1 sp|P02019|HBA1_ONCMY Hemoglobin subunit alpha-1 OS=Oncorhyn
+ 6.9e-38 135.0 0.0 7.8e-38 134.8 0.0 1.0 1 sp|Q575S8|CYGB2_DANRE Cytoglobin-2 OS=Danio rerio GN=cygb2 P
+ 9.3e-38 134.6 0.1 1e-37 134.5 0.1 1.0 1 sp|P80946|HBBA_ANGAN Hemoglobin anodic subunit beta OS=Angu
+ 1e-37 134.5 0.1 1.1e-37 134.3 0.1 1.0 1 sp|Q9PVM4|HBAA_SERQU Hemoglobin subunit alpha-A OS=Seriola
+ 1e-37 134.4 0.0 1.1e-37 134.3 0.0 1.0 1 sp|Q98TS0|HBB_ONCNE Hemoglobin subunit beta OS=Oncorhynchu
+ 1.1e-37 134.4 0.0 1.2e-37 134.3 0.0 1.0 1 sp|P83624|HBB1_PSEUR Hemoglobin subunit beta-1 OS=Pseudaphr
+ 1.1e-37 134.4 0.0 1.2e-37 134.2 0.0 1.0 1 sp|Q91473|HBB_SALSA Hemoglobin subunit beta OS=Salmo salar
+ 1.6e-37 133.8 0.6 1.8e-37 133.7 0.6 1.0 1 sp|P07430|HBA1_XENBO Hemoglobin subunit alpha-1 OS=Xenopus
+ 1.7e-37 133.8 0.7 1.9e-37 133.6 0.7 1.0 1 sp|P02012|HBA1_XENLA Hemoglobin subunit alpha-1 OS=Xenopus
+ 2e-37 133.5 0.0 2.2e-37 133.4 0.0 1.0 1 sp|P56251|HBB_LEIXA Hemoglobin subunit beta OS=Leiostomus
+ 2.4e-37 133.3 0.1 2.7e-37 133.1 0.1 1.0 1 sp|Q575T0|CYGB1_ORYLA Cytoglobin-1 OS=Oryzias latipes GN=cyg
+ 2.4e-37 133.3 0.3 2.8e-37 133.1 0.3 1.0 1 sp|Q921A4|CYGB_RAT Cytoglobin OS=Rattus norvegicus GN=Cyg
+ 2.5e-37 133.2 0.0 2.7e-37 133.1 0.0 1.0 1 sp|P84609|HBA1_GADMO Hemoglobin subunit alpha-1 OS=Gadus mo
+ 2.6e-37 133.2 0.1 2.9e-37 133.0 0.1 1.0 1 sp|P80726|HBAC_ANGAN Hemoglobin cathodic subunit alpha OS=A
+ 3.4e-37 132.8 0.0 3.7e-37 132.7 0.0 1.0 1 sp|P07433|HBB2_XENBO Hemoglobin subunit beta-2 OS=Xenopus b
+ 4.4e-37 132.4 0.0 4.9e-37 132.3 0.0 1.0 1 sp|P02141|HBB4_ONCMY Hemoglobin subunit beta-4 OS=Oncorhync
+ 5.2e-37 132.2 0.0 5.7e-37 132.0 0.0 1.0 1 sp|Q90486|HBB1_DANRE Hemoglobin subunit beta-1 OS=Danio rer
+ 5.5e-37 132.1 0.0 6.2e-37 131.9 0.0 1.0 1 sp|P56250|HBA_LEIXA Hemoglobin subunit alpha OS=Leiostomus
+ 5.5e-37 132.1 0.1 6e-37 132.0 0.1 1.0 1 sp|P82345|HBB0_PAGBO Hemoglobin subunit beta-0 OS=Pagotheni
+ 7.9e-37 131.6 0.0 8.7e-37 131.5 0.0 1.0 1 sp|Q90485|HBB2_DANRE Hemoglobin subunit beta-2 OS=Danio rer
+ 8.5e-37 131.5 0.0 9.2e-37 131.4 0.0 1.0 1 sp|P84204|HBBC_GYMUN Hemoglobin cathodic subunit beta OS=Gy
+ 9.1e-37 131.4 0.0 9.8e-37 131.3 0.0 1.0 1 sp|P83273|HBB2_ANAMI Hemoglobin subunit beta-2 OS=Anarhicha
+ 1e-36 131.3 0.1 1.1e-36 131.2 0.1 1.0 1 sp|P45721|HBBC_TRENE Hemoglobin subunit beta-C OS=Trematomu
+ 1e-36 131.2 0.0 1.1e-36 131.1 0.0 1.0 1 sp|P02017|HBA_CATCL Hemoglobin subunit alpha OS=Catostomus
+ 1.1e-36 131.2 0.9 1.2e-36 131.0 0.9 1.0 1 sp|P02013|HBA2_XENLA Hemoglobin subunit alpha-2 OS=Xenopus
+ 1.2e-36 131.0 0.1 1.3e-36 130.9 0.1 1.0 1 sp|Q1AGS4|HBA2_ARCGL Hemoglobin subunit alpha-2 OS=Arctogad
+ 1.3e-36 130.9 0.1 1.4e-36 130.8 0.1 1.0 1 sp|O13163|HBB_SILAS Hemoglobin subunit beta OS=Silurus aso
+ 1.4e-36 130.8 0.0 1.5e-36 130.7 0.0 1.0 1 sp|Q8UUR3|CYGB1_DANRE Cytoglobin-1 OS=Danio rerio GN=cygb1 P
+ 1.4e-36 130.8 0.2 1.6e-36 130.6 0.2 1.0 1 sp|Q9CX80|CYGB_MOUSE Cytoglobin OS=Mus musculus GN=Cygb PE=
+ 1.6e-36 130.6 0.1 1.8e-36 130.5 0.1 1.0 1 sp|P84652|HBB_COTGO Hemoglobin subunit beta OS=Cottoperca
+ 1.7e-36 130.5 0.0 1.9e-36 130.4 0.0 1.0 1 sp|P29623|HBA_GYMAC Hemoglobin subunit alpha OS=Gymnodraco
+ 1.7e-36 130.5 0.0 1.9e-36 130.3 0.0 1.0 1 sp|P84205|HBAA_GYMUN Hemoglobin anodic subunit alpha OS=Gym
+ 1.7e-36 130.5 0.0 1.9e-36 130.4 0.0 1.0 1 sp|P0C240|HBB_POGSC Hemoglobin subunit beta OS=Pogonophryn
+ 2.4e-36 130.0 0.2 2.8e-36 129.8 0.2 1.0 1 sp|Q575S9|CYGB2_ORYLA Cytoglobin-2 OS=Oryzias latipes GN=cyg
+ 3.8e-36 129.4 0.0 4.1e-36 129.3 0.0 1.0 1 sp|P11749|HBB_THUTH Hemoglobin subunit beta OS=Thunnus thy
+ 4e-36 129.3 0.0 4.3e-36 129.2 0.0 1.0 1 sp|P80271|HBB_CHEKU Hemoglobin subunit beta OS=Chelidonich
+ 4e-36 129.3 0.1 4.3e-36 129.2 0.1 1.0 1 sp|P45722|HBBC_TREBE Hemoglobin subunit beta-C OS=Trematomu
+ 4.3e-36 129.2 0.0 4.6e-36 129.1 0.0 1.0 1 sp|P83625|HBB2_PSEUR Hemoglobin subunit beta-2 OS=Pseudaphr
+ 4.8e-36 129.1 0.4 5.3e-36 128.9 0.4 1.0 1 sp|P07431|HBA2_XENBO Hemoglobin subunit alpha-2 OS=Xenopus
+ 4.9e-36 129.0 0.1 5.4e-36 128.9 0.1 1.0 1 sp|P29625|HBB_GYMAC Hemoglobin subunit beta OS=Gymnodraco
+ 5.5e-36 128.9 0.0 6e-36 128.7 0.0 1.0 1 sp|P02139|HBB_CYPCA Hemoglobin subunit beta-A/B OS=Cyprinu
+ 5.8e-36 128.8 0.0 6.3e-36 128.7 0.0 1.0 1 sp|P07432|HBB1_XENBO Hemoglobin subunit beta-1 OS=Xenopus b
+ 5.9e-36 128.8 0.0 6.4e-36 128.6 0.0 1.0 1 sp|P02132|HBB1_XENLA Hemoglobin subunit beta-1 OS=Xenopus l
+ 6.1e-36 128.7 0.0 6.7e-36 128.6 0.0 1.0 1 sp|Q7LZC1|HBB3_MURHE Hemoglobin subunit beta-3 OS=Muraena h
+ 6.1e-36 128.7 0.0 6.6e-36 128.6 0.0 1.0 1 sp|O93351|HBB_TREHA Hemoglobin subunit beta OS=Trematomus
+ 7e-36 128.5 0.1 7.8e-36 128.4 0.1 1.0 1 sp|Q9PVM3|HBAB_SERQU Hemoglobin subunit alpha-B OS=Seriola
+ 8e-36 128.3 0.1 8.8e-36 128.2 0.1 1.0 1 sp|Q1AGS8|HBA2_BORSA Hemoglobin subunit alpha-2 OS=Boreogad
+ 8.5e-36 128.2 0.0 9.3e-36 128.1 0.0 1.0 1 sp|P02140|HBB_CARAU Hemoglobin subunit beta OS=Carassius a
+ 8.6e-36 128.2 0.0 9.4e-36 128.1 0.0 1.0 1 sp|O13164|HBB_DECMA Hemoglobin subunit beta OS=Decapterus
+ 9.6e-36 128.1 0.3 1e-35 127.9 0.3 1.0 1 sp|P10785|HBB1_TRICR Hemoglobin subunit beta-1 OS=Triturus
+ 1.1e-35 127.8 0.8 1.3e-35 127.7 0.8 1.0 1 sp|P10783|HBA1_TRICR Hemoglobin subunit alpha-1 OS=Triturus
+ 1.5e-35 127.4 0.1 1.7e-35 127.3 0.1 1.0 1 sp|P02138|HBB_LEPPA Hemoglobin subunit beta OS=Lepidosiren
+ 1.8e-35 127.2 0.0 2e-35 127.1 0.0 1.0 1 sp|P84610|HBB1_GADMO Hemoglobin subunit beta-1 OS=Gadus mor
+ 1.9e-35 127.1 0.0 2.1e-35 127.0 0.0 1.0 1 sp|O93348|HBB1_PAGBO Hemoglobin subunit beta-1 OS=Pagotheni
+ 2.2e-35 126.9 1.1 2.4e-35 126.8 1.1 1.0 1 sp|P06639|HBA1_PLEWA Hemoglobin subunit alpha-1 OS=Pleurode
+ 2.3e-35 126.8 0.0 2.5e-35 126.7 0.0 1.0 1 sp|P83272|HBB1_ANAMI Hemoglobin subunit beta-1 OS=Anarhicha
+ 2.9e-35 126.5 0.0 3.2e-35 126.4 0.0 1.0 1 sp|Q1AGS7|HBB1_BORSA Hemoglobin subunit beta-1 OS=Boreogadu
+ 3.1e-35 126.4 0.1 3.5e-35 126.3 0.1 1.0 1 sp|P02206|MYG_HETPO Myoglobin OS=Heterodontus portusjackso
+ 3.3e-35 126.3 0.1 3.6e-35 126.2 0.1 1.0 1 sp|Q1AGS5|HBA1_ARCGL Hemoglobin subunit alpha-1 OS=Arctogad
+ 3.3e-35 126.3 0.0 3.6e-35 126.2 0.0 1.0 1 sp|P0C239|HBB_ARTOR Hemoglobin subunit beta OS=Artedidraco
+ 3.5e-35 126.2 0.1 3.9e-35 126.1 0.1 1.0 1 sp|P80044|HBB_TREBE Hemoglobin subunit beta OS=Trematomus
+ 4.6e-35 125.9 0.0 5e-35 125.7 0.0 1.0 1 sp|Q6Y239|HBB_PAGMA Hemoglobin subunit beta OS=Pagrus majo
+ 4.7e-35 125.8 0.0 5.2e-35 125.7 0.0 1.0 1 sp|P85082|HBB1_LIPTU Hemoglobin subunit beta-1 OS=Liparis t
+ 5.2e-35 125.7 0.1 5.7e-35 125.6 0.1 1.0 1 sp|P23017|HBB1_CYGMA Hemoglobin subunit beta-1 OS=Cygnodrac
+ 6.9e-35 125.3 0.0 7.4e-35 125.2 0.0 1.0 1 sp|P45720|HBB_TRENE Hemoglobin subunit beta-1/2 OS=Tremato
+ 9.5e-35 124.8 0.1 1e-34 124.7 0.1 1.0 1 sp|P83612|HBB1_GOBGI Hemoglobin subunit beta-1 OS=Gobionoto
+ 9.5e-35 124.8 0.0 1e-34 124.7 0.0 1.0 1 sp|P83614|HBB2_GOBGI Hemoglobin subunit beta-2 OS=Gobionoto
+ 9.9e-35 124.8 0.1 1.1e-34 124.7 0.1 1.0 1 sp|P29628|HBB_NOTAN Hemoglobin subunit beta OS=Notothenia
+ 1.1e-34 124.6 1.3 1.3e-34 124.4 1.3 1.0 1 sp|P02014|HBA_TARGR Hemoglobin subunit alpha OS=Taricha gr
+ 1.4e-34 124.3 2.2 1.5e-34 124.2 2.2 1.0 1 sp|P10784|HBA2_TRICR Hemoglobin subunit alpha-2 OS=Triturus
+ 1.4e-34 124.3 0.0 1.5e-34 124.2 0.0 1.0 1 sp|P07429|HBB1_XENTR Hemoglobin subunit beta-1 OS=Xenopus t
+ 2.4e-34 123.5 0.0 2.7e-34 123.4 0.0 1.0 1 sp|P80945|HBAA_ANGAN Hemoglobin anodic subunit alpha OS=Ang
+ 2.5e-34 123.5 0.0 2.8e-34 123.3 0.0 1.0 1 sp|O93349|HBB2_TRENE Hemoglobin subunit beta OS=Trematomus
+ 3.3e-34 123.1 0.0 3.4e-34 123.0 0.0 1.0 1 sp|P86879|HBB1_LYCRE Hemoglobin subunit beta-1 OS=Lycodes r
+ 3.9e-34 122.9 1.0 4.3e-34 122.7 1.0 1.0 1 sp|P20244|HBA1_TORMA Hemoglobin subunit alpha-1 OS=Torpedo
+ 3.9e-34 122.8 0.0 4.2e-34 122.7 0.0 1.0 1 sp|P16309|HBB_NOTCO Hemoglobin subunit beta OS=Notothenia
+ 5e-34 122.5 0.1 5.6e-34 122.3 0.1 1.0 1 sp|Q1AGS9|HBA1_BORSA Hemoglobin subunit alpha-1 OS=Boreogad
+ 6.3e-34 122.2 0.1 6.8e-34 122.1 0.1 1.0 1 sp|P06714|HBAT_HORSE Hemoglobin subunit theta-1 OS=Equus ca
+ 7.5e-34 121.9 0.3 8.5e-34 121.8 0.3 1.0 1 sp|Q6B0K9|HBM_HUMAN Hemoglobin subunit mu OS=Homo sapiens
+ 7.9e-34 121.8 0.0 8.8e-34 121.7 0.0 1.0 1 sp|P14521|HBB_ELEEL Hemoglobin subunit beta OS=Electrophor
+ 1e-33 121.5 0.0 1.1e-33 121.4 0.0 1.0 1 sp|P02020|HBA_LEPPA Hemoglobin subunit alpha OS=Lepidosire
+ 1.1e-33 121.5 0.4 1.2e-33 121.3 0.4 1.0 1 sp|P14399|MYG_MUSAN Myoglobin OS=Mustelus antarcticus GN=m
+ 1.2e-33 121.2 0.0 1.3e-33 121.1 0.0 1.0 1 sp|P84604|HBB2_ARCGL Hemoglobin subunit beta-2 OS=Arctogadu
+ 1.4e-33 121.0 0.3 1.6e-33 120.9 0.3 1.0 1 sp|P29627|HBBZ_MESAU Hemoglobin subunit beta-Z (Fragment) O
+ 1.7e-33 120.7 1.0 1.9e-33 120.6 1.0 1.0 1 sp|P56691|HBA_DASAK Hemoglobin subunit alpha OS=Dasyatis a
+ 3.6e-33 119.7 0.0 4e-33 119.6 0.0 1.0 1 sp|P84611|HBB2_GADMO Hemoglobin subunit beta-2 OS=Gadus mor
+ 3.8e-33 119.6 0.2 4.2e-33 119.5 0.2 1.0 1 sp|P68189|MYG_THUTH Myoglobin OS=Thunnus thynnus GN=mb PE=
+ 3.8e-33 119.6 0.2 4.2e-33 119.5 0.2 1.0 1 sp|P68190|MYG_THUOR Myoglobin OS=Thunnus orientalis GN=mb
+ 3.8e-33 119.6 0.2 4.2e-33 119.5 0.2 1.0 1 sp|Q76G09|MYG_THUOB Myoglobin OS=Thunnus obesus GN=mb PE=2
+ 4.3e-33 119.5 0.2 4.7e-33 119.3 0.2 1.0 1 sp|P07408|HBA_SQUAC Hemoglobin subunit alpha OS=Squalus ac
+ 4.3e-33 119.5 0.0 4.7e-33 119.3 0.0 1.0 1 sp|Q1AGS6|HBB2_BORSA Hemoglobin subunit beta-2 OS=Boreogadu
+ 4.8e-33 119.3 0.1 5.4e-33 119.2 0.1 1.0 1 sp|O42425|HBA2_GADMO Hemoglobin subunit alpha-2 OS=Gadus mo
+ 5.8e-33 119.0 0.2 6.4e-33 118.9 0.2 1.0 1 sp|P02205|MYG_THUAL Myoglobin OS=Thunnus albacares GN=mb P
+ 6.6e-33 118.9 0.1 7.3e-33 118.7 0.1 1.0 1 sp|P83113|HBA2_TELPE Hemoglobin subunit alpha-2 (Fragment)
+ 7.1e-33 118.8 0.6 7.8e-33 118.6 0.6 1.0 1 sp|Q9DGJ0|MYG_SARCH Myoglobin OS=Sarda chiliensis GN=mb PE
+ 8e-33 118.6 0.4 8.9e-33 118.4 0.4 1.0 1 sp|P02015|HBA_AMBME Hemoglobin subunit alpha OS=Ambystoma
+ 1.1e-32 118.2 0.0 1.1e-32 118.1 0.0 1.0 1 sp|P86887|HBB2_LYCRE Hemoglobin subunit beta-2 OS=Lycodes r
+ 1.9e-32 117.4 0.0 2.1e-32 117.2 0.0 1.0 1 sp|O13078|HBB_MERMR Hemoglobin subunit beta OS=Merlangius
+ 3.5e-32 116.5 0.0 3.8e-32 116.4 0.0 1.0 1 sp|Q1AGS3|HBB1_ARCGL Hemoglobin subunit beta-1 (Fragment) O
+ 5.4e-32 115.9 0.0 6e-32 115.8 0.0 1.0 1 sp|P16417|HBAD_LIOMI Hemoglobin subunit alpha-D OS=Liophis
+ 5.6e-32 115.9 1.1 6.2e-32 115.7 1.1 1.0 1 sp|P20245|HBA2_TORMA Hemoglobin subunit alpha-2 OS=Torpedo
+ 5.7e-32 115.8 0.0 6.2e-32 115.7 0.0 1.0 1 sp|P10786|HBB2_TRICR Hemoglobin subunit beta-2 OS=Triturus
+ 9.1e-32 115.2 0.3 1e-31 115.0 0.3 1.0 1 sp|P14397|MYG_GALGA Myoglobin OS=Galeorhinus galeus GN=mb
+ 1e-31 115.0 0.0 1.2e-31 114.8 0.0 1.1 1 sp|A1A4Q3|HBM_BOVIN Hemoglobin subunit mu OS=Bos taurus GN
+ 1e-31 115.0 1.6 1.1e-31 114.9 1.6 1.0 1 sp|Q9DGJ1|MYG_MAKNI Myoglobin OS=Makaira nigricans GN=mb P
+ 1.1e-31 115.0 0.0 1.2e-31 114.8 0.0 1.0 1 sp|P02135|HBB_LITCT Hemoglobin subunit beta OS=Lithobates
+ 1.2e-31 114.8 0.1 1.3e-31 114.6 0.1 1.0 1 sp|Q701N9|MYG_TETNG Myoglobin OS=Tetraodon nigroviridis GN
+ 1.5e-31 114.4 0.2 1.7e-31 114.3 0.2 1.0 1 sp|Q6I7B0|MYG_AUXRO Myoglobin OS=Auxis rochei GN=mb PE=2 S
+ 1.6e-31 114.4 0.2 1.8e-31 114.2 0.2 1.0 1 sp|P14398|MYG_GALJA Myoglobin OS=Galeorhinus japonicus GN=
+ 1.8e-31 114.2 2.5 2e-31 114.0 2.5 1.0 1 sp|P84216|HBA_BATEA Hemoglobin subunit alpha OS=Bathyraja
+ 1.9e-31 114.1 0.0 2e-31 114.0 0.0 1.0 1 sp|O09232|HBB_MELAE Hemoglobin subunit beta OS=Melanogramm
+ 1.9e-31 114.1 0.0 2.1e-31 114.0 0.0 1.0 1 sp|P18991|HBB1_UROHA Hemoglobin subunit beta-1 (Fragments)
+ 2.9e-31 113.5 0.1 3.2e-31 113.4 0.1 1.0 1 sp|Q9DGJ2|MYG_THUAA Myoglobin OS=Thunnus alalunga GN=mb PE
+ 4.8e-31 112.8 0.6 5.3e-31 112.7 0.6 1.0 1 sp|Q9DGI8|MYG_KATPE Myoglobin OS=Katsuwonus pelamis GN=mb
+ 7.8e-31 112.1 0.1 8.5e-31 112.0 0.1 1.0 1 sp|P02204|MYG_CYPCA Myoglobin OS=Cyprinus carpio GN=mb PE=
+ 1.1e-30 111.6 0.0 1.3e-30 111.5 0.0 1.0 1 sp|P0C0U7|HBAD_DRYCE Hemoglobin subunit alpha-D OS=Drymarch
+ 2.2e-30 110.7 0.1 2.4e-30 110.5 0.1 1.0 1 sp|Q9DEN9|MYG_GOBGI Myoglobin OS=Gobionotothen gibberifron
+ 4.8e-30 109.6 0.0 5.2e-30 109.5 0.0 1.0 1 sp|Q6VN46|MYG_DANRE Myoglobin OS=Danio rerio GN=mb PE=2 SV
+ 8.3e-30 108.8 0.1 9.1e-30 108.7 0.1 1.0 1 sp|Q9DEN8|MYG_NOTCO Myoglobin OS=Notothenia coriiceps negl
+ 1e-29 108.5 0.1 1.1e-29 108.4 0.1 1.0 1 sp|Q7T044|MYG_CHARH Myoglobin OS=Channichthys rhinoceratus
+ 1.3e-29 108.1 0.4 1.5e-29 108.0 0.4 1.0 1 sp|P06640|HBA2_PLEWA Hemoglobin subunit alpha-2 (Fragment)
+ 1.8e-29 107.8 4.5 1.9e-29 107.6 4.5 1.0 1 sp|P07409|HBB_SQUAC Hemoglobin subunit beta OS=Squalus aca
+ 1.8e-29 107.7 0.1 1.9e-29 107.6 0.1 1.0 1 sp|Q9DEP1|MYG_PSEGE Myoglobin OS=Pseudochaenichthys georgi
+ 2e-29 107.5 0.2 2.3e-29 107.4 0.2 1.0 1 sp|Q9DGI9|MYG_SCOJP Myoglobin OS=Scomber japonicus GN=mb P
+ 2.2e-29 107.5 0.1 2.4e-29 107.3 0.1 1.0 1 sp|P87497|MYG_CHIRA Myoglobin OS=Chionodraco rastrospinosu
+ 5e-29 106.3 0.1 5.5e-29 106.1 0.1 1.0 1 sp|Q9DEP0|MYG_CRYAN Myoglobin OS=Cryodraco antarcticus GN=
+ 5.2e-29 106.2 0.2 5.7e-29 106.1 0.2 1.0 1 sp|Q9YGW2|HBA_MUSGR Hemoglobin subunit alpha OS=Mustelus g
+ 1e-28 105.2 2.3 1.2e-28 105.0 2.3 1.0 1 sp|P02021|HBA_HETPO Hemoglobin subunit alpha OS=Heterodont
+ 1.5e-28 104.7 0.0 1.6e-28 104.6 0.0 1.0 1 sp|O13077|HBB_GADMO Hemoglobin subunit beta OS=Gadus morhu
+ 8.8e-28 102.2 0.4 9.7e-28 102.1 0.4 1.0 1 sp|P07420|HBB_DASVI Hemoglobin subunit beta (Fragment) OS=
+ 1e-26 98.8 1.7 1.1e-26 98.6 1.7 1.0 1 sp|P02143|HBB_HETPO Hemoglobin subunit beta OS=Heterodontu
+ 9.9e-26 95.6 0.1 1.1e-25 95.4 0.1 1.0 1 sp|P02022|HBAM_LITCT Hemoglobin heart muscle subunit alpha-
+ 1.2e-24 92.0 3.9 1.4e-24 91.9 3.9 1.0 1 sp|P20247|HBB2_TORMA Hemoglobin subunit beta-2 OS=Torpedo m
+ 1.3e-24 91.9 2.6 1.5e-24 91.8 2.6 1.0 1 sp|P20246|HBB1_TORMA Hemoglobin subunit beta-1 OS=Torpedo m
+ 1.4e-24 91.8 0.4 1.7e-24 91.6 0.4 1.1 1 sp|Q7M3C1|MYG_AILME Myoglobin (Fragment) OS=Ailuropoda mel
+ 2.2e-24 91.2 0.1 2.9e-24 90.8 0.1 1.2 1 sp|Q7SID0|GLBF1_EPTBU Globin-F1 OS=Eptatretus burgeri PE=1 S
+ 1.1e-23 88.9 1.4 1.3e-23 88.7 1.4 1.0 1 sp|P56692|HBB_DASAK Hemoglobin subunit beta OS=Dasyatis ak
+ 1.6e-23 88.4 0.0 2e-23 88.1 0.0 1.0 1 sp|P09106|HBAT_PAPAN Hemoglobin subunit theta-1 OS=Papio an
+ 3.6e-23 87.3 0.4 4.8e-23 86.9 0.4 1.2 1 sp|P02209|GLB3_MYXGL Globin-3 OS=Myxine glutinosa PE=1 SV=2
+ 4.1e-23 87.1 0.9 1.1e-22 85.6 0.9 1.6 1 sp|Q9YGW1|HBB_MUSGR Hemoglobin subunit beta OS=Mustelus gr
+ 1.1e-21 82.5 0.2 1.2e-21 82.3 0.2 1.0 1 sp|P80017|GLBD_CAUAR Globin D, coelomic OS=Caudina arenicol
+ 6.8e-21 79.9 0.2 7.5e-21 79.7 0.2 1.0 1 sp|P18979|HBA1_UROHA Hemoglobin subunit alpha-1 (Fragment)
+ 1.3e-20 79.0 0.8 1.4e-20 78.9 0.8 1.0 1 sp|P84217|HBB_BATEA Hemoglobin subunit beta OS=Bathyraja e
+ 2e-20 78.3 0.0 2.3e-20 78.2 0.0 1.0 1 sp|P0C227|GLB_NERAL Globin OS=Nerita albicilla PE=1 SV=1
+ 6.4e-17 67.0 0.4 7.7e-17 66.7 0.4 1.0 1 sp|P15161|GLB1_PARCH Globin-1 OS=Paracaudina chilensis PE=1
+ 8.2e-17 66.6 0.8 9.9e-17 66.4 0.8 1.0 1 sp|P80018|GLBC_CAUAR Globin C, coelomic OS=Caudina arenicol
+ 1.4e-15 62.6 0.0 1.5e-15 62.5 0.0 1.0 1 sp|P09965|GLB_DOLAU Globin OS=Dolabella auricularia PE=1 S
+ 1.5e-14 59.3 0.0 1.8e-14 59.1 0.0 1.1 1 sp|P02211|GLB_APLKU Globin OS=Aplysia kurodai PE=1 SV=4
+ 2.7e-13 55.2 0.0 3.3e-13 54.9 0.0 1.1 1 sp|P14393|GLB_APLJU Globin OS=Aplysia juliana PE=1 SV=1
+ 3e-13 55.1 0.0 3.4e-13 54.9 0.0 1.1 1 sp|P29287|GLB_BURLE Globin OS=Bursatella leachii PE=1 SV=1
+ 4.8e-13 54.4 0.1 5.5e-13 54.2 0.1 1.1 1 sp|P02210|GLB_APLLI Globin OS=Aplysia limacina PE=1 SV=4
+ 1.4e-12 52.9 0.2 1.5e-12 52.8 0.2 1.0 1 sp|Q9TT33|HBB_COLGU Hemoglobin subunit beta (Fragment) OS=
+ 1.8e-12 52.5 0.0 1.9e-12 52.5 0.0 1.0 1 sp|P81041|HBO_MACEU Hemoglobin subunit omega (Fragment) OS
+ 3.1e-12 51.8 0.0 3.5e-12 51.6 0.0 1.0 1 sp|P14821|GLB2A_ANAIN Globin-2 A chain OS=Anadara inaequival
+ 1.5e-11 49.6 0.0 1.7e-11 49.4 0.0 1.0 1 sp|Q8T7J9|GLB_YOLEI Globin OS=Yoldia eightsi PE=1 SV=1
+ 6.2e-11 47.6 0.0 7.2e-11 47.4 0.0 1.0 1 sp|Q7M416|GLB1_LIOJA Globin-1 OS=Liolophura japonica PE=1 S
+ 8.1e-11 47.2 0.0 1.3e-10 46.5 0.0 1.5 1 sp|P19363|GLB1_ARTSX Extracellular globin-E1 (Fragment) OS=
+ 1.4e-10 46.4 0.0 1.6e-10 46.2 0.0 1.0 1 sp|P02215|GLB_CERRH Globin OS=Cerithidea rhizophorarum PE=
+ 2.1e-10 45.8 1.5 2.5e-10 45.6 1.5 1.0 1 sp|Q7M424|GLB_BUCUU Globin OS=Buccinum undatum PE=1 SV=1
+ 2.7e-10 45.5 0.3 2.8e-10 45.4 0.3 1.0 1 sp|Q9TT34|HBB_PONPY Hemoglobin subunit beta (Fragment) OS=
+ 3.1e-10 45.3 0.1 3.4e-10 45.2 0.1 1.0 1 sp|O77003|GLB_BIOGL Globin OS=Biomphalaria glabrata PE=3 S
+ 7.8e-10 44.0 0.0 8.7e-10 43.8 0.0 1.0 1 sp|P14822|GLB2B_ANAIN Globin-2 B chain OS=Anadara inaequival
+ 9.4e-10 43.7 4.5 4e-06 31.9 4.3 2.3 1 sp|P81044|HBAZ_MACEU Hemoglobin subunit zeta (Fragments) OS
+ 1.3e-09 43.3 0.0 1.4e-09 43.1 0.0 1.0 1 sp|P59742|NGB1_ONCMY Neuroglobin-1 OS=Oncorhynchus mykiss G
+ 1.3e-09 43.2 0.0 1.5e-09 43.0 0.0 1.1 1 sp|P23216|GLBP1_GLYDI Globin, major polymeric component P1 O
+ 1.4e-09 43.1 0.0 1.6e-09 43.0 0.0 1.1 1 sp|P21659|GLBP2_GLYDI Globin, polymeric component P2 OS=Glyc
+ 2e-09 42.7 0.0 2.3e-09 42.4 0.0 1.1 1 sp|P02222|GLB2_CHITH Globin CTT-II beta OS=Chironomus thumm
+ 2.9e-09 42.2 1.1 3.3e-09 42.0 1.1 1.0 1 sp|Q941Q2|HBL2_BRANA Non-symbiotic hemoglobin 2 OS=Brassica
+ 3.1e-09 42.0 0.0 3.6e-09 41.8 0.0 1.0 1 sp|Q90W04|NGB_TETNG Neuroglobin OS=Tetraodon nigroviridis
+ 3.5e-09 41.9 0.0 4e-09 41.7 0.0 1.1 1 sp|P14395|GLB1A_ANATR Globin-1 subunit alpha OS=Anadara trap
+ 4.8e-09 41.4 0.0 5.8e-09 41.2 0.0 1.0 1 sp|P41261|GLB2_PHAPT Hemoglobin-2 OS=Phacoides pectinatus P
+ 4.9e-09 41.4 0.3 7.3e-09 40.8 0.3 1.3 1 sp|P29243|GLBV_CHITP Globin CTT-V OS=Chironomus thummi pige
+ 5.5e-09 41.2 0.0 6.3e-09 41.0 0.0 1.1 1 sp|P21660|GLBP3_GLYDI Globin, polymeric component P3 OS=Glyc
+ 5.5e-09 41.2 0.1 9.7e-09 40.4 0.1 1.4 1 sp|P02216|GLB1_GLYDI Globin, major monomeric component OS=G
+ 7.3e-09 40.8 0.1 8.3e-09 40.7 0.1 1.0 1 sp|P02213|GLB1_ANAIN Globin-1 OS=Anadara inaequivalvis PE=1
+ 9.6e-09 40.5 0.0 1.1e-08 40.3 0.0 1.0 1 sp|P59743|NGB2_ONCMY Neuroglobin-2 OS=Oncorhynchus mykiss G
+ 1.1e-08 40.2 0.4 2.3e-08 39.2 0.1 1.6 1 sp|Q23761|GLBZ_CHITH Globin CTT-Z OS=Chironomus thummi thum
+ 1.4e-08 39.9 0.2 1.6e-08 39.7 0.2 1.0 1 sp|P31331|GLB_NASMU Globin OS=Nassarius mutabilis PE=1 SV=
+ 1.6e-08 39.7 0.2 1.8e-08 39.6 0.2 1.0 1 sp|P02212|GLB1_ANABR Globin-1 OS=Anadara broughtonii PE=1 S
+ 1.6e-08 39.7 0.3 3e-08 38.8 0.1 1.5 1 sp|P29245|GLBZ_CHITP Globin CTT-Z OS=Chironomus thummi pige
+ 2.6e-08 39.1 0.0 3.1e-08 38.8 0.0 1.0 1 sp|P86881|NGB_DISMA Neuroglobin OS=Dissostichus mawsoni PE
+ 2.7e-08 39.0 0.0 3.3e-08 38.7 0.0 1.0 1 sp|P86880|NGB_CHAAC Neuroglobin OS=Chaenocephalus aceratus
+ 2.8e-08 38.9 0.2 3.2e-08 38.7 0.2 1.0 1 sp|P02214|GLB_BUSCA Globin OS=Busycotypus canaliculatus PE
+ 3e-08 38.8 0.7 4.1e-08 38.4 0.5 1.3 1 sp|Q23763|GLB78_CHITH Globin CTT-VIIB-8 OS=Chironomus thummi
+ 3.2e-08 38.7 0.6 4.2e-08 38.4 0.6 1.0 1 sp|P23244|HBP2_CASGL Hemoglobin-2 OS=Casuarina glauca GN=HB
+ 3.3e-08 38.7 0.0 3.9e-08 38.5 0.0 1.0 1 sp|Q90YJ2|NGB_DANRE Neuroglobin OS=Danio rerio GN=ngb PE=1
+ 3.5e-08 38.6 0.8 4.6e-08 38.2 0.5 1.3 1 sp|P12548|GLB73_CHITH Globin CTT-VIIB-3 OS=Chironomus thummi
+ 3.6e-08 38.6 0.1 4e-08 38.4 0.1 1.0 1 sp|P04251|GLB1B_ANATR Globin-1 subunit beta OS=Anadara trape
+ 4.2e-08 38.4 0.0 6.2e-08 37.8 0.0 1.3 1 sp|P02226|GLB7A_CHITH Globin CTT-VIIA OS=Chironomus thummi t
+ 4.7e-08 38.2 0.9 6.1e-08 37.9 0.5 1.3 1 sp|P18966|GLB78_CHITP Globin CTT-VIIB-8 OS=Chironomus thummi
+ 5.7e-08 37.9 0.1 6.7e-08 37.7 0.1 1.0 1 sp|Q42831|HBL_HORVU Non-symbiotic hemoglobin OS=Hordeum vu
+ 7.4e-08 37.6 1.1 9.2e-08 37.3 0.6 1.3 1 sp|P84296|GLB74_CHITH Globin CTT-VIIB-4 OS=Chironomus thummi
+ 7.4e-08 37.6 1.1 9.2e-08 37.3 0.6 1.3 1 sp|P84297|GLB74_CHITP Globin CTT-VIIB-4 OS=Chironomus thummi
+ 9.6e-08 37.2 0.0 1.1e-07 37.1 0.0 1.0 1 sp|P25165|GLBM_ANATR Globin, minor OS=Anadara trapezia PE=3
+ 9.9e-08 37.2 0.2 1.1e-07 37.0 0.2 1.0 1 sp|O24521|HBL2_ARATH Non-symbiotic hemoglobin 2 OS=Arabidop
+ 1.1e-07 37.1 0.4 1.3e-07 36.8 0.4 1.1 1 sp|P02224|GLB6_CHITH Globin CTT-VI OS=Chironomus thummi thu
+ 1.2e-07 36.9 0.5 1.5e-07 36.6 0.5 1.1 1 sp|O24520|HBL1_ARATH Non-symbiotic hemoglobin 1 OS=Arabidop
+ 1.4e-07 36.7 0.2 1.6e-07 36.5 0.2 1.0 1 sp|P14394|GLB2_ANATR Globin-2B OS=Anadara trapezia PE=1 SV=
+ 1.4e-07 36.7 0.1 1.7e-07 36.4 0.1 1.1 1 sp|Q9M630|HBL0_PHYPA Non-symbiotic hemoglobin 0 OS=Physcomi
+ 1.6e-07 36.4 0.9 2.4e-07 35.9 0.9 1.2 1 sp|P29242|GLB77_CHITP Globin CTT-VIIB-7 OS=Chironomus thummi
+ 1.9e-07 36.3 0.1 2.2e-07 36.1 0.1 1.0 1 sp|P02227|GLB8_CHITH Globin CTT-VIII OS=Chironomus thummi t
+ 2e-07 36.2 1.3 2.3e-07 36.0 0.8 1.3 1 sp|P12549|GLB76_CHITH Globin CTT-VIIB-6 OS=Chironomus thummi
+ 2e-07 36.2 0.0 2.2e-07 36.0 0.0 1.0 1 sp|Q99JA8|NGB_RAT Neuroglobin OS=Rattus norvegicus GN=Ng
+ 2.1e-07 36.1 1.2 2.5e-07 35.9 0.7 1.3 1 sp|Q23762|GLB7X_CHITH Globin CTT-VIIB-10 OS=Chironomus thumm
+ 2.1e-07 36.1 0.0 2.6e-07 35.8 0.0 1.1 1 sp|P13579|GLB4_LUMTE Extracellular globin-4 OS=Lumbricus te
+ 2.4e-07 35.9 0.2 0.046 18.8 0.0 2.4 2 sp|P28316|GLB_ASCSU Extracellular globin OS=Ascaris suum P
+ 2.9e-07 35.7 0.0 3.3e-07 35.5 0.0 1.1 1 sp|P19364|GLB7_ARTSX Extracellular globin-E7 OS=Artemia sp.
+ 3.6e-07 35.4 1.0 5.3e-07 34.8 1.0 1.2 1 sp|P12550|GLB77_CHITH Globin CTT-VIIB-7 OS=Chironomus thummi
+ 3.7e-07 35.3 1.5 4e-07 35.2 0.9 1.3 1 sp|P84298|GLB75_CHITH Globin CTT-VIIB-5/CTT-VIIB-9 OS=Chiron
+ 3.7e-07 35.3 1.5 4e-07 35.2 0.9 1.3 1 sp|P84299|GLB75_CHITP Globin CTT-VIIB-5/CTT-VIIB-9 OS=Chiron
+ 4.3e-07 35.1 0.7 6e-07 34.6 0.7 1.3 1 sp|P02228|GLB10_CHITH Globin CTT-X OS=Chironomus thummi thum
+ 4.4e-07 35.0 0.0 5.5e-07 34.8 0.0 1.0 1 sp|Q6WZ20|NGB_MACMU Neuroglobin OS=Macaca mulatta GN=NGB P
+ 4.5e-07 35.0 0.0 5.5e-07 34.8 0.0 1.0 1 sp|Q3KN66|NGB_PANTR Neuroglobin OS=Pan troglodytes GN=NGB
+ 4.5e-07 35.0 0.0 5.5e-07 34.8 0.0 1.0 1 sp|Q9NPG2|NGB_HUMAN Neuroglobin OS=Homo sapiens GN=NGB PE=
+ 4.5e-07 35.0 0.0 5.5e-07 34.8 0.0 1.0 1 sp|Q6WZ18|NGB_CANFA Neuroglobin OS=Canis familiaris GN=NGB
+ 4.6e-07 35.0 0.7 5.4e-07 34.8 0.7 1.1 1 sp|O04985|HBL2_ORYSJ Non-symbiotic hemoglobin 2 OS=Oryza sa
+ 5.7e-07 34.7 1.2 7e-07 34.4 1.2 1.0 1 sp|Q9FVL0|HBL1_MEDSA Non-symbiotic hemoglobin 1 OS=Medicago
+ 5.9e-07 34.6 0.0 6.6e-07 34.5 0.0 1.0 1 sp|Q9ER97|NGB_MOUSE Neuroglobin OS=Mus musculus GN=Ngb PE=
+ 6.1e-07 34.6 0.7 7.2e-07 34.4 0.7 1.0 1 sp|P68168|HBPL_PARAD Non-legume hemoglobin OS=Parasponia an
+ 6.1e-07 34.6 0.7 7.2e-07 34.4 0.7 1.0 1 sp|P68169|HBPL_PARRI Non-legume hemoglobin OS=Parasponia ri
+ 6.3e-07 34.6 0.0 7.2e-07 34.4 0.0 1.0 1 sp|Q6WZ17|NGB_PIG Neuroglobin OS=Sus scrofa GN=NGB PE=2
+ 6.3e-07 34.6 1.3 8e-07 34.2 1.3 1.1 1 sp|O04986|HBL1_ORYSJ Non-symbiotic hemoglobin 1 OS=Oryza sa
+ 1e-06 33.9 0.0 1.2e-06 33.6 0.0 1.0 1 sp|Q6WZ19|NGB_BOVIN Neuroglobin OS=Bos taurus GN=NGB PE=2
+ 1e-06 33.9 0.0 1.2e-06 33.7 0.0 1.0 1 sp|Q6EV97|NGB_RABIT Neuroglobin OS=Oryctolagus cuniculus G
+ 1.1e-06 33.8 0.8 1.4e-06 33.4 0.8 1.1 1 sp|Q9M593|HBL_ZEAMP Non-symbiotic hemoglobin OS=Zea mays s
+ 1.2e-06 33.7 0.0 1.4e-06 33.5 0.0 1.1 1 sp|P13578|GLB3_TYLHE Extracellular globin-2B OS=Tylorrhynch
+ 1.8e-06 33.1 0.1 2.5e-06 32.6 0.1 1.3 1 sp|P02223|GLB9_CHITH Globin CTT-IX OS=Chironomus thummi thu
+ 2.1e-06 32.8 0.1 2.4e-06 32.6 0.1 1.0 1 sp|P28010|LGB4_MEDSA Leghemoglobin OS=Medicago sativa GN=LB
+ 2.3e-06 32.7 0.7 3e-06 32.4 0.7 1.1 1 sp|Q9FY42|HBL_MAIZE Non-symbiotic hemoglobin OS=Zea mays G
+ 2.6e-06 32.5 0.2 5.9e-06 31.4 0.2 1.5 1 sp|P15447|GLB4_GLYDI Globin, monomeric component M-IV OS=Gl
+ 3.8e-06 32.0 0.0 4.7e-06 31.7 0.0 1.1 1 sp|P11582|GLBE_CHITH Globin CTT-E/E' OS=Chironomus thummi t
+ 5e-06 31.6 0.1 7.2e-06 31.1 0.1 1.2 1 sp|P18968|GLBY_CHITP Globin CTT-Y OS=Chironomus thummi pige
+ 6.4e-06 31.3 0.1 7.6e-06 31.1 0.1 1.1 1 sp|P02230|GLB4_CHITH Globin CTT-IV OS=Chironomus thummi thu
+ 7.9e-06 31.0 1.4 9.2e-06 30.8 1.4 1.0 1 sp|P02240|LGB2_LUPLU Leghemoglobin-2 OS=Lupinus luteus PE=1
+ 1.1e-05 30.6 0.1 1.2e-05 30.4 0.1 1.0 1 sp|O48668|LGB2_PEA Leghemoglobin Lb5-10 OS=Pisum sativum
+ 1.1e-05 30.5 0.3 1.3e-05 30.3 0.3 1.1 1 sp|Q94FT7|HBL4_ORYSJ Non-symbiotic hemoglobin 4 OS=Oryza sa
+ 1.2e-05 30.4 0.7 1.5e-05 30.1 0.7 1.1 1 sp|Q94FT8|HBL3_ORYSJ Non-symbiotic hemoglobin 3 OS=Oryza sa
+ 1.2e-05 30.4 0.7 1.5e-05 30.1 0.7 1.0 1 sp|P09187|LGB1_MEDSA Leghemoglobin-1 OS=Medicago sativa PE=
+ 1.2e-05 30.3 0.3 1.3e-05 30.3 0.3 1.1 1 sp|Q9SAZ0|LGB6_PEA Leghemoglobin Lb120-34 OS=Pisum sativu
+ 1.5e-05 30.1 0.2 1.8e-05 29.9 0.2 1.1 1 sp|P14962|LGB3_MEDSA Leghemoglobin-3 OS=Medicago sativa PE=
+ 1.5e-05 30.1 0.3 1.6e-05 30.0 0.3 1.1 1 sp|O80405|LGB3_PEA Leghemoglobin Lb120-1 OS=Pisum sativum
+ 1.9e-05 29.8 0.0 2.3e-05 29.5 0.0 1.2 1 sp|Q7M419|GLBA1_OLIMA Extracellular giant hemoglobin major g
+ 1.9e-05 29.8 0.0 2.2e-05 29.5 0.0 1.1 1 sp|P15469|GLB3_LAMSP Giant hemoglobin AIII chain OS=Lamelli
+ 2.1e-05 29.6 0.1 3e-05 29.1 0.1 1.3 1 sp|P02221|GLB1_CHITH Globin CTT-I/CTT-IA OS=Chironomus thum
+ 2.3e-05 29.5 0.2 2.5e-05 29.4 0.2 1.1 1 sp|Q9SAZ1|LGB4_PEA Leghemoglobin Lb120-8 OS=Pisum sativum
+ 2.9e-05 29.2 0.3 5.2e-05 28.3 0.3 1.6 1 sp|Q23760|GLBW_CHITH Globin CTT-W OS=Chironomus thummi thum
+ 3e-05 29.1 0.4 5.3e-05 28.3 0.4 1.6 1 sp|P29244|GLBW_CHITP Globin CTT-W OS=Chironomus thummi pige
+ 3.2e-05 29.0 0.0 3.2e-05 29.0 0.0 1.0 1 sp|P18980|HBA2_UROHA Hemoglobin subunit alpha-2 (Fragment)
+ 4.4e-05 28.6 0.4 5.5e-05 28.3 0.4 1.1 1 sp|P07803|HBL_TRETO Non-symbiotic hemoglobin OS=Trema tome
+ 4.7e-05 28.5 2.0 5.7e-05 28.2 2.0 1.1 1 sp|Q947C5|HBL1_GOSHI Non-symbiotic hemoglobin 1 OS=Gossypiu
+ 4.8e-05 28.4 0.2 5.3e-05 28.3 0.2 1.1 1 sp|P41260|GLB1_PHAPT Hemoglobin-1 OS=Phacoides pectinatus P
+ 5.6e-05 28.2 0.1 7.4e-05 27.8 0.1 1.2 1 sp|Q7M418|GLBB2_OLIMA Extracellular giant hemoglobin major g
+ 7.5e-05 27.8 0.0 9.5e-05 27.5 0.0 1.1 1 sp|P02218|GLB2_LUMTE Extracellular globin-2 OS=Lumbricus te
+ 7.8e-05 27.8 0.0 8.8e-05 27.6 0.0 1.1 1 sp|P41262|GLB3_PHAPT Hemoglobin-3 OS=Phacoides pectinatus P
+ 9.1e-05 27.5 0.2 9.7e-05 27.5 0.2 1.1 1 sp|O48665|LGB5_PEA Leghemoglobin Lb120-29 OS=Pisum sativu
+ 0.00011 27.3 0.1 0.00013 27.0 0.1 1.1 1 sp|P02233|LGB1_PEA Leghemoglobin-1 OS=Pisum sativum PE=1
+ 0.00013 27.1 0.0 0.00013 27.0 0.0 1.0 1 sp|P85313|HBBB_CATCL Hemoglobin subunit beta-B (Fragment) O
+ 0.00018 26.6 5.4 0.19 16.8 0.2 2.4 2 sp|P26914|GLB_PSEDC Extracellular globin OS=Pseudoterranov
+ 0.00019 26.5 1.8 0.00023 26.2 1.8 1.1 1 sp|P42511|LGB_CANLI Leghemoglobin OS=Canavalia lineata PE=
+ 0.0002 26.4 0.1 0.00026 26.1 0.1 1.1 1 sp|P83122|GLB1_PHEHI Extracellular globin-1 OS=Pheretima hi
+ 0.00021 26.4 0.3 0.00026 26.1 0.3 1.1 1 sp|Q941P9|HBL2_SOLLC Non-symbiotic hemoglobin 2 OS=Solanum
+ 0.00021 26.3 0.2 0.00025 26.1 0.2 1.1 1 sp|P27992|LGB1_MEDTR Leghemoglobin 1 OS=Medicago truncatula
+ 0.00026 26.1 0.0 0.0003 25.9 0.0 1.1 1 sp|P80592|GLBB_RIFPA Giant hemoglobins B chain OS=Riftia pa
+ 0.00028 25.9 0.2 0.00034 25.7 0.2 1.1 1 sp|P27993|LGB2_MEDTR Leghemoglobin 2 OS=Medicago truncatula
+ 0.00033 25.7 0.1 0.00043 25.4 0.1 1.1 1 sp|P11740|GLB1_PHESE Extracellular globin-1 OS=Pheretima si
+ 0.00035 25.7 0.3 0.0004 25.5 0.3 1.1 1 sp|Q9FEP8|LGB_LOTJA Leghemoglobin OS=Lotus japonicus PE=2
+ 0.00035 25.6 0.1 0.00041 25.4 0.1 1.1 1 sp|P93849|LGB3_VICFA Leghemoglobin 49 OS=Vicia faba PE=2 SV
+ 0.00067 24.7 0.0 0.00091 24.3 0.0 1.2 1 sp|P02231|GLBT_CHITH Globin CTT-IIIA OS=Chironomus thummi t
+ 0.0007 24.7 0.2 0.00075 24.6 0.2 1.1 1 sp|P10816|LGB3_SESRO Leghemoglobin 3 OS=Sesbania rostrata G
+ 0.00086 24.4 0.2 0.001 24.2 0.2 1.1 1 sp|P14848|LGB2_SESRO Leghemoglobin 2 OS=Sesbania rostrata G
+ 0.00086 24.4 1.0 0.0013 23.8 1.0 1.3 1 sp|P80721|GLB_PAREP Globin-3 OS=Paramphistomum epiclitum P
+ 0.0011 24.1 0.1 0.0014 23.7 0.1 1.2 1 sp|P80722|GLB_ISOHY Globin OS=Isoparorchis hypselobagri PE
+ 0.0012 24.0 0.0 0.0014 23.7 0.0 1.1 1 sp|P09966|GLB2_TYLHE Extracellular globin-2A OS=Tylorrhynch
+ 0.0019 23.3 0.1 0.0028 22.7 0.1 1.4 1 sp|P02229|GLB3_CHITH Globin CTT-III OS=Chironomus thummi th
+ 0.002 23.2 0.6 0.0025 22.9 0.6 1.1 1 sp|P02234|LGBA_PHAVU Leghemoglobin A OS=Phaseolus vulgaris
+ 0.0022 23.0 0.0 0.0023 23.0 0.0 1.1 1 sp|P22431|GLB3_CHITP Globin CTP-III OS=Chironomus thummi pi
+ 0.0024 22.9 0.0 0.0024 22.9 0.0 1.0 1 sp|P85312|HBBA_CATCL Hemoglobin subunit beta-A (Fragment) O
+ 0.0025 22.9 0.6 0.003 22.6 0.6 1.1 1 sp|P27199|LGB_PSOTE Leghemoglobin OS=Psophocarpus tetragon
+ 0.0026 22.8 0.0 0.0033 22.5 0.0 1.1 1 sp|P18202|GLB_TUBTU Globin, extracellular monomeric OS=Tub
+ 0.0027 22.7 0.5 0.0034 22.5 0.5 1.1 1 sp|O04939|LGB2_PHAVU Leghemoglobin OS=Phaseolus vulgaris PE
+ 0.0043 22.1 0.0 0.0054 21.8 0.0 1.1 1 sp|P08924|GLB1_LUMTE Extracellular globin-1 OS=Lumbricus te
+ 0.0049 21.9 0.0 0.006 21.6 0.0 1.1 1 sp|Q7M413|GLBA2_OLIMA Extracellular giant hemoglobin major g
+ 0.0053 21.8 0.1 0.0062 21.6 0.1 1.2 1 sp|P02232|LGB1_VICFA Leghemoglobin-1 OS=Vicia faba PE=1 SV=
+ 0.0093 21.0 0.1 0.01 20.9 0.1 1.1 1 sp|P93848|LGB2_VICFA Leghemoglobin 29 OS=Vicia faba GN=LB29
------ inclusion threshold ------
- 0.01 20.7 0.4 0.012 20.6 0.3 1.1 1 sp|P02236|LGB2_SOYBN Leghemoglobin C2 OS=Glycine max PE=1 S
- 0.011 20.7 0.3 0.015 20.2 0.2 1.2 1 sp|Q93Y92|HBL2_GOSHI Non-symbiotic hemoglobin 2 OS=Gossypiu
- 0.012 20.5 0.4 0.024 19.6 0.2 1.5 1 sp|Q9KMY3|HMP_VIBCH Flavohemoprotein OS=Vibrio cholerae GN
- 0.016 20.2 1.3 0.018 20.0 0.9 1.1 1 sp|Q43236|LGB1_VIGUN Leghemoglobin-1 OS=Vigna unguiculata G
- 0.018 20.0 0.8 0.019 19.9 0.6 1.1 1 sp|Q43296|LGB2_VIGUN Leghemoglobin-2 OS=Vigna unguiculata G
- 0.019 19.9 0.6 0.021 19.7 0.4 1.1 1 sp|P02235|LGB1_SOYBN Leghemoglobin C1 OS=Glycine max PE=2 S
- 0.024 19.6 0.0 0.027 19.4 0.0 1.1 1 sp|P11069|GLB3_LUMTE Extracellular globin-3 OS=Lumbricus te
- 0.024 19.6 0.0 0.034 19.1 0.0 1.2 1 sp|P02220|GLB4_TYLHE Extracellular globin-2C OS=Tylorrhynch
- 0.027 19.4 0.0 0.039 18.9 0.0 1.2 1 sp|P49672|GLB2_ASCSU Myoglobin OS=Ascaris suum PE=1 SV=1
- 0.031 19.2 0.0 0.037 19.0 0.0 1.1 1 sp|P02219|GLB1_TYLHE Extracellular globin-1 OS=Tylorrhynchu
- 0.058 18.3 1.0 0.062 18.2 0.7 1.1 1 sp|P02238|LGBA_SOYBN Leghemoglobin A OS=Glycine max GN=LBA
- 0.097 17.6 0.0 0.1 17.6 0.0 1.0 1 sp|P02217|GLB2_GLYDI Globin, minor monomeric component (Fra
- 0.11 17.5 0.2 0.11 17.4 0.1 1.1 1 sp|P02237|LGB3_SOYBN Leghemoglobin C3 OS=Glycine max GN=LGB
- 0.11 17.4 0.0 0.39 15.6 0.0 2.0 1 sp|Q821U7|SYC_CHLCV Cysteinyl-tRNA synthetase OS=Chlamydop
- 0.14 17.1 0.1 1.6 13.7 0.1 2.1 1 sp|O66586|Y211_AQUAE Uncharacterized globin-like protein aq
- 0.2 16.6 0.5 1.7 13.6 0.0 2.6 1 sp|Q24SX0|SYGB_DESHY Glycyl-tRNA synthetase beta subunit OS
- 0.2 16.6 0.0 0.23 16.4 0.0 1.1 1 sp|P06148|HBF1_URECA Hemoglobin F-I OS=Urechis caupo PE=1 S
- 0.33 15.9 0.0 0.41 15.6 0.0 1.1 1 sp|P51535|GLB2_NIPBR Myoglobin OS=Nippostrongylus brasilien
- 0.63 15.0 0.0 0.9 14.5 0.0 1.3 1 sp|P30627|GLBH_CAEEL Globin-like protein OS=Caenorhabditis
- 0.88 14.5 0.0 55 8.7 0.0 2.3 2 sp|B2AND4|MTLD_PODAN Mannitol-1-phosphate 5-dehydrogenase O
- 1.2 14.0 0.0 1.9 13.4 0.0 1.3 1 sp|Q68S17|RR2_PANGI 30S ribosomal protein S2, chloroplasti
- 1.5 13.7 0.1 1.7 13.6 0.1 1.1 1 sp|B1KJ42|Y2786_SHEWM UPF0352 protein Swoo_2786 OS=Shewanell
- 1.5 13.7 0.1 3.4 12.6 0.1 1.5 1 sp|Q7S1Y0|RNA14_NEUCR mRNA 3'-end-processing protein rna-14
- 1.9 13.4 0.1 3 12.8 0.0 1.3 1 sp|A8FU97|Y1809_SHESH UPF0352 protein Ssed_1809 OS=Shewanell
- 2 13.4 0.0 8.8 11.3 0.0 2.1 1 sp|Q14185|DOCK1_HUMAN Dedicator of cytokinesis protein 1 OS=
- 2 13.3 0.0 3.1 12.7 0.0 1.3 1 sp|B2LMI3|RR2_GUIAB 30S ribosomal protein S2, chloroplasti
- 2.1 13.3 0.0 3.2 12.7 0.0 1.3 1 sp|Q56P10|RR2_LACSA 30S ribosomal protein S2, chloroplasti
- 2.2 13.2 0.0 3.3 12.6 0.0 1.3 1 sp|Q1KXW9|RR2_HELAN 30S ribosomal protein S2, chloroplasti
- 2.2 13.2 0.0 3.3 12.6 0.0 1.3 1 sp|Q0G9X3|RR2_DAUCA 30S ribosomal protein S2, chloroplasti
- 2.8 12.9 0.0 3.1 12.7 0.0 1.2 1 sp|O76242|GLBN_CERLA Neural hemoglobin OS=Cerebratulus lact
- 3 12.8 0.1 5.5 11.9 0.0 1.3 1 sp|Q27302|GLBH_CAEBR Globin-like protein OS=Caenorhabditis
- 3 12.8 0.0 4 12.4 0.0 1.1 1 sp|Q01333|YCR4_ESCVU Uncharacterized 11.2 kDa protein in cr
- 3.5 12.6 0.0 15 10.5 0.0 1.9 1 sp|Q0AGZ8|UBIC_NITEC Probable chorismate--pyruvate lyase OS
- 3.7 12.5 0.1 9.3 11.2 0.0 1.6 1 sp|B0FZN9|SCML1_PONPY Sex comb on midleg-like protein 1 OS=P
- 3.8 12.4 0.8 5.8 11.8 0.1 1.6 1 sp|Q9UN30|SCML1_HUMAN Sex comb on midleg-like protein 1 OS=H
- 5.4 11.9 0.3 41 9.1 0.0 2.5 1 sp|B8FUJ0|SYGB_DESHD Glycyl-tRNA synthetase beta subunit OS
- 6.3 11.7 5.1 20 10.1 0.5 3.0 1 sp|Q498L9|KI15B_XENLA Kinesin-like protein KIF15-B OS=Xenopu
+ 0.011 20.7 0.4 0.013 20.6 0.4 1.1 1 sp|P02236|LGB2_SOYBN Leghemoglobin C2 OS=Glycine max PE=1 S
+ 0.012 20.7 0.3 0.016 20.2 0.3 1.2 1 sp|Q93Y92|HBL2_GOSHI Non-symbiotic hemoglobin 2 OS=Gossypiu
+ 0.013 20.5 0.4 0.027 19.6 0.4 1.5 1 sp|Q9KMY3|HMP_VIBCH Flavohemoprotein OS=Vibrio cholerae se
+ 0.017 20.2 1.3 0.019 20.0 1.3 1.1 1 sp|Q43236|LGB1_VIGUN Leghemoglobin-1 OS=Vigna unguiculata G
+ 0.019 20.0 0.8 0.021 19.9 0.8 1.1 1 sp|Q43296|LGB2_VIGUN Leghemoglobin-2 OS=Vigna unguiculata G
+ 0.021 19.9 0.6 0.023 19.7 0.6 1.1 1 sp|P02235|LGB1_SOYBN Leghemoglobin C1 OS=Glycine max PE=2 S
+ 0.026 19.6 0.0 0.029 19.4 0.0 1.1 1 sp|P11069|GLB3_LUMTE Extracellular globin-3 OS=Lumbricus te
+ 0.026 19.6 0.0 0.037 19.1 0.0 1.2 1 sp|P02220|GLB4_TYLHE Extracellular globin-2C OS=Tylorrhynch
+ 0.029 19.4 0.0 0.042 18.9 0.0 1.2 1 sp|P49672|GLB2_ASCSU Myoglobin OS=Ascaris suum PE=1 SV=1
+ 0.034 19.2 0.0 0.04 19.0 0.0 1.1 1 sp|P02219|GLB1_TYLHE Extracellular globin-1 OS=Tylorrhynchu
+ 0.063 18.3 1.0 0.067 18.2 1.0 1.1 1 sp|P02238|LGBA_SOYBN Leghemoglobin A OS=Glycine max GN=LBA
+ 0.1 17.6 0.0 0.11 17.6 0.0 1.0 1 sp|P02217|GLB2_GLYDI Globin, minor monomeric component (Fra
+ 0.12 17.5 0.2 0.12 17.4 0.2 1.1 1 sp|P02237|LGB3_SOYBN Leghemoglobin C3 OS=Glycine max GN=LGB
+ 0.12 17.4 0.0 0.42 15.6 0.0 2.0 1 sp|Q821U7|SYC_CHLCV Cysteine--tRNA ligase OS=Chlamydophila
+ 0.15 17.1 0.1 1.7 13.7 0.1 2.1 1 sp|O66586|Y211_AQUAE Uncharacterized globin-like protein aq
+ 0.21 16.6 0.5 1.8 13.6 0.0 2.6 1 sp|Q24SX0|SYGB_DESHY Glycine--tRNA ligase beta subunit OS=D
+ 0.22 16.6 0.0 0.25 16.4 0.0 1.1 1 sp|P06148|HBF1_URECA Hemoglobin F-I OS=Urechis caupo PE=1 S
+ 0.36 15.9 0.0 0.45 15.6 0.0 1.1 1 sp|P51535|GLB2_NIPBR Myoglobin OS=Nippostrongylus brasilien
+ 0.68 15.0 0.0 0.97 14.5 0.0 1.3 1 sp|P30627|GLBH_CAEEL Globin-like protein OS=Caenorhabditis
+ 0.96 14.5 0.0 60 8.7 0.0 2.3 2 sp|B2AND4|MTLD_PODAN Mannitol-1-phosphate 5-dehydrogenase O
+ 1.3 14.0 0.0 2.1 13.4 0.0 1.3 1 sp|Q68S17|RR2_PANGI 30S ribosomal protein S2, chloroplasti
+ 1.6 13.7 0.1 1.8 13.6 0.1 1.1 1 sp|B1KJ42|Y2786_SHEWM UPF0352 protein Swoo_2786 OS=Shewanell
+ 1.7 13.7 0.1 3.7 12.6 0.1 1.5 1 sp|Q7S1Y0|RNA14_NEUCR mRNA 3'-end-processing protein rna-14
+ 2 13.4 0.1 3.3 12.8 0.1 1.3 1 sp|A8FU97|Y1809_SHESH UPF0352 protein Ssed_1809 OS=Shewanell
+ 2.1 13.4 0.0 9.5 11.3 0.0 2.1 1 sp|Q14185|DOCK1_HUMAN Dedicator of cytokinesis protein 1 OS=
+ 2.2 13.3 0.0 3.4 12.7 0.0 1.3 1 sp|B2LMI3|RR2_GUIAB 30S ribosomal protein S2, chloroplasti
+ 2.3 13.3 0.0 3.5 12.7 0.0 1.3 1 sp|Q56P10|RR2_LACSA 30S ribosomal protein S2, chloroplasti
+ 2.3 13.2 0.0 3.6 12.6 0.0 1.3 1 sp|Q1KXW9|RR2_HELAN 30S ribosomal protein S2, chloroplasti
+ 2.4 13.2 0.0 3.6 12.6 0.0 1.3 1 sp|Q0G9X3|RR2_DAUCA 30S ribosomal protein S2, chloroplasti
+ 3 12.9 0.0 3.3 12.7 0.0 1.2 1 sp|O76242|GLBN_CERLA Neural hemoglobin OS=Cerebratulus lact
+ 3.2 12.8 0.1 6 11.9 0.0 1.3 1 sp|Q27302|GLBH_CAEBR Globin-like protein OS=Caenorhabditis
+ 3.2 12.8 0.0 4.4 12.4 0.0 1.1 1 sp|Q01333|YCR4_ESCVU Uncharacterized 11.2 kDa protein in cr
+ 3.8 12.6 0.0 17 10.5 0.0 1.9 1 sp|Q0AGZ8|UBIC_NITEC Probable chorismate--pyruvate lyase OS
+ 4 12.5 0.1 10 11.2 0.0 1.6 1 sp|B0FZN9|SCML1_PONPY Sex comb on midleg-like protein 1 OS=P
+ 4.2 12.4 0.8 6.3 11.8 0.1 1.6 1 sp|Q9UN30|SCML1_HUMAN Sex comb on midleg-like protein 1 OS=H
+ 5.9 11.9 0.3 44 9.1 0.0 2.5 1 sp|B8FUJ0|SYGB_DESHD Glycine--tRNA ligase beta subunit OS=D
+ 6.9 11.7 5.1 22 10.1 0.8 3.0 1 sp|Q498L9|KI15B_XENLA Kinesin-like protein KIF15-B OS=Xenopu
Domain annotation for each sequence (and alignments):
->> sp|P02185|MYG_PHYCA Myoglobin OS=Physeter catodon GN=MB PE=1 SV=2
+>> sp|P02185|MYG_PHYMC Myoglobin OS=Physeter macrocephalus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 222.6 2.2 1.4e-67 6.7e-65 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 222.6 3.2 1.5e-67 7.2e-65 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 222.6 bits; conditional E-value: 1.4e-67
+ == domain 1 score: 222.6 bits; conditional E-value: 1.5e-67
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLse+e++ v++vWakveadv+++G+diL+rlfks+P+t+e+F++Fk+L+te+e+k+s+d+kkHg++vl+Al+++l+k ++++ea+lk+L
- sp|P02185|MYG_PHYCA 2 VLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKTEAEMKASEDLKKHGVTVLTALGAILKK-KGHHEAELKPL 90
+ sp|P02185|MYG_PHYMC 2 VLSEGEWQLVLHVWAKVEADVAGHGQDILIRLFKSHPETLEKFDRFKHLKTEAEMKASEDLKKHGVTVLTALGAILKK-KGHHEAELKPL 90
8*****************************************************************************.99********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+++Ha+k+k+++ky++++se++++vl++r+p++f+ad+q+a++K+l+l++k++a+kYk
- sp|P02185|MYG_PHYCA 91 AQSHATKHKIPIKYLEFISEAIIHVLHSRHPGDFGADAQGAMNKALELFRKDIAAKYK 148
+ sp|P02185|MYG_PHYMC 91 AQSHATKHKIPIKYLEFISEAIIHVLHSRHPGDFGADAQGAMNKALELFRKDIAAKYK 148
*********************************************************7 PP
>> sp|P02024|HBB_GORGO Hemoglobin subunit beta OS=Gorilla gorilla gorilla GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 217.0 0.0 7.4e-66 3.4e-63 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 217.0 0.1 7.6e-66 3.7e-63 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 217.0 bits; conditional E-value: 7.4e-66
+ == domain 1 score: 217.0 bits; conditional E-value: 7.6e-66
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02024|HBB_GORGO 2 VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAT 88
@@ -1131,10 +1164,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68871|HBB_HUMAN Hemoglobin subunit beta OS=Homo sapiens GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 216.5 0.0 1.1e-65 5e-63 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 216.5 0.0 1.1e-65 5.4e-63 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 216.5 bits; conditional E-value: 1.1e-65
+ == domain 1 score: 216.5 bits; conditional E-value: 1.1e-65
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68871|HBB_HUMAN 2 VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAT 88
@@ -1148,10 +1181,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68872|HBB_PANPA Hemoglobin subunit beta OS=Pan paniscus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 216.5 0.0 1.1e-65 5e-63 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 216.5 0.0 1.1e-65 5.4e-63 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 216.5 bits; conditional E-value: 1.1e-65
+ == domain 1 score: 216.5 bits; conditional E-value: 1.1e-65
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68872|HBB_PANPA 2 VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAT 88
@@ -1165,10 +1198,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68873|HBB_PANTR Hemoglobin subunit beta OS=Pan troglodytes GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 216.5 0.0 1.1e-65 5e-63 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 216.5 0.0 1.1e-65 5.4e-63 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 216.5 bits; conditional E-value: 1.1e-65
+ == domain 1 score: 216.5 bits; conditional E-value: 1.1e-65
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68873|HBB_PANTR 2 VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAT 88
@@ -1182,10 +1215,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02177|MYG_ESCGI Myoglobin OS=Eschrichtius gibbosus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 216.0 2.0 1.5e-65 7.1e-63 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 216.0 3.0 1.6e-65 7.7e-63 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 216.0 bits; conditional E-value: 1.5e-65
+ == domain 1 score: 216.0 bits; conditional E-value: 1.6e-65
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ae++ v+++Wakveadv+++G+diL+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L
sp|P02177|MYG_ESCGI 2 VLSDAEWQLVLNIWAKVEADVAGHGQDILIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPL 90
@@ -1199,10 +1232,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY1|MYG_BALBO Myoglobin OS=Balaenoptera borealis GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 216.0 2.0 1.5e-65 7.1e-63 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 216.0 3.0 1.6e-65 7.7e-63 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 216.0 bits; conditional E-value: 1.5e-65
+ == domain 1 score: 216.0 bits; conditional E-value: 1.6e-65
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ae++ v+++Wakveadv+++G+diL+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L
sp|Q0KIY1|MYG_BALBO 2 VLSDAEWQLVLNIWAKVEADVAGHGQDILIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPL 90
@@ -1216,10 +1249,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY2|MYG_BALED Myoglobin OS=Balaenoptera edeni GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 216.0 2.0 1.5e-65 7.1e-63 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 216.0 3.0 1.6e-65 7.7e-63 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 216.0 bits; conditional E-value: 1.5e-65
+ == domain 1 score: 216.0 bits; conditional E-value: 1.6e-65
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ae++ v+++Wakveadv+++G+diL+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L
sp|Q0KIY2|MYG_BALED 2 VLSDAEWQLVLNIWAKVEADVAGHGQDILIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPL 90
@@ -1233,10 +1266,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02025|HBB_HYLLA Hemoglobin subunit beta OS=Hylobates lar GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 215.9 0.1 1.7e-65 7.7e-63 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 215.9 0.1 1.7e-65 8.4e-63 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 215.9 bits; conditional E-value: 1.7e-65
+ == domain 1 score: 215.9 bits; conditional E-value: 1.7e-65
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02025|HBB_HYLLA 1 VHLTPEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -1247,30 +1280,30 @@ Domain annotation for each sequence (and alignments):
sp|P02025|HBB_HYLLA 88 LSELHCDKLHVDPENFRLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
**********************************************************7 PP
->> sp|P02033|HBB_COLBA Hemoglobin subunit beta OS=Colobus badius GN=HBB PE=1 SV=1
+>> sp|P02033|HBB_PILBA Hemoglobin subunit beta OS=Piliocolobus badius GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 215.4 0.1 2.3e-65 1.1e-62 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 215.4 0.2 2.4e-65 1.2e-62 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 215.4 bits; conditional E-value: 2.3e-65
+ == domain 1 score: 215.4 bits; conditional E-value: 2.4e-65
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
- sp|P02033|HBB_COLBA 1 VHLTPDEKNAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTADAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
+ sp|P02033|HBB_PILBA 1 VHLTPDEKNAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTADAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
69****************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++fkll++vlv+vla++++keft++vqaa++K++a va++la+kY+
- sp|P02033|HBB_COLBA 88 LSELHCDKLHVDPENFKLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
+ sp|P02033|HBB_PILBA 88 LSELHCDKLHVDPENFKLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
**********************************************************7 PP
>> sp|P02178|MYG_MEGNO Myoglobin OS=Megaptera novaeangliae GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 215.3 2.6 2.5e-65 1.1e-62 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 215.3 3.7 2.6e-65 1.2e-62 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 215.3 bits; conditional E-value: 2.5e-65
+ == domain 1 score: 215.3 bits; conditional E-value: 2.6e-65
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ae++ v+++Wakveadv+++G+diL+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L
sp|P02178|MYG_MEGNO 2 VLSDAEWQLVLNIWAKVEADVAGHGQDILIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPL 90
@@ -1281,13 +1314,13 @@ Domain annotation for each sequence (and alignments):
sp|P02178|MYG_MEGNO 91 AQSHATKHKIPIKYLEFISDAIIHVLHSRHPADFGADAQAAMNKALELFRKDIAAKYK 148
*********************************************************7 PP
->> sp|P02174|MYG_GLOME Myoglobin OS=Globicephala melaena GN=MB PE=1 SV=2
+>> sp|P02174|MYG_GLOME Myoglobin OS=Globicephala melas GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 214.3 1.3 5.2e-65 2.4e-62 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 214.3 1.8 5.3e-65 2.6e-62 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 214.3 bits; conditional E-value: 5.2e-65
+ == domain 1 score: 214.3 bits; conditional E-value: 5.3e-65
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+diL+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg++vl+Al+++l+k ++++ea+lk+L+
sp|P02174|MYG_GLOME 3 LSDGEWQLVLNVWGKVEADLAGHGQDILIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGNTVLTALGAILKK-KGHHEAELKPLA 91
@@ -1301,10 +1334,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02173|MYG_ORCOR Myoglobin OS=Orcinus orca GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 213.5 1.2 9.3e-65 4.3e-62 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 213.5 1.8 9.5e-65 4.6e-62 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 213.5 bits; conditional E-value: 9.3e-65
+ == domain 1 score: 213.5 bits; conditional E-value: 9.5e-65
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+diL+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg++vl+Al+++l+k +++++a+lk+L+
sp|P02173|MYG_ORCOR 3 LSDGEWQLVLNVWGKVEADLAGHGQDILIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGNTVLTALGAILKK-KGHHDAELKPLA 91
@@ -1318,10 +1351,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02179|MYG_BALAC Myoglobin OS=Balaenoptera acutorostrata GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 213.3 2.9 1e-64 4.7e-62 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 213.3 4.2 1e-64 5.1e-62 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 213.3 bits; conditional E-value: 1e-64
+ == domain 1 score: 213.3 bits; conditional E-value: 1e-64
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ae+ v+++Wakveadv+++G+diL+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L
sp|P02179|MYG_BALAC 2 VLSDAEWHLVLNIWAKVEADVAGHGQDILIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPL 90
@@ -1335,10 +1368,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02181|MYG_INIGE Myoglobin OS=Inia geoffrensis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 213.2 0.9 1.1e-64 5e-62 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 213.2 1.3 1.1e-64 5.5e-62 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 213.2 bits; conditional E-value: 1.1e-64
+ == domain 1 score: 213.2 bits; conditional E-value: 1.1e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02181|MYG_INIGE 3 LSDGEWQLVLNIWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -1349,30 +1382,30 @@ Domain annotation for each sequence (and alignments):
sp|P02181|MYG_INIGE 92 QSHATKHKIPIKYLEFISEAIIHVLHSRHPGDFGADAQAAMNKALELFRKDIAAKYK 148
********************************************************7 PP
->> sp|P02028|HBB_CERAE Hemoglobin subunit beta OS=Cercopithecus aethiops GN=HBB PE=1 SV=1
+>> sp|P02028|HBB_CHLAE Hemoglobin subunit beta OS=Chlorocebus aethiops GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 213.1 0.1 1.2e-64 5.4e-62 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 213.1 0.1 1.2e-64 5.9e-62 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 213.1 bits; conditional E-value: 1.2e-64
+ == domain 1 score: 213.1 bits; conditional E-value: 1.2e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
- sp|P02028|HBB_CERAE 1 VHLTPEEKTAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
+ sp|P02028|HBB_CHLAE 1 VHLTPEEKTAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
69****************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++fkll++vlv+vla++++keft++vqaa++K++a va++la+kY+
- sp|P02028|HBB_CERAE 88 LSELHCDKLHVDPENFKLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
+ sp|P02028|HBB_CHLAE 88 LSELHCDKLHVDPENFKLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
**********************************************************7 PP
->> sp|P02184|MYG_KOGSI Myoglobin OS=Kogia simus GN=MB PE=1 SV=2
+>> sp|P02184|MYG_KOGSI Myoglobin OS=Kogia sima GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 213.0 2.9 1.3e-64 5.8e-62 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 213.0 4.2 1.3e-64 6.3e-62 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 213.0 bits; conditional E-value: 1.3e-64
+ == domain 1 score: 213.0 bits; conditional E-value: 1.3e-64
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLse+e++ v++vWakvead++++G+diL+rlfk +P+t+e+F++Fk+L+ e+e+k+s+d+kkHg++vl+Al+++l+k ++++ea+lk+L
sp|P02184|MYG_KOGSI 2 VLSEGEWQLVLHVWAKVEADIAGHGQDILIRLFKHHPETLEKFDRFKHLKSEAEMKASEDLKKHGVTVLTALGAILKK-KGHHEAELKPL 90
@@ -1386,10 +1419,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY5|MYG_KOGBR Myoglobin OS=Kogia breviceps GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 213.0 2.9 1.3e-64 5.8e-62 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 213.0 4.2 1.3e-64 6.3e-62 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 213.0 bits; conditional E-value: 1.3e-64
+ == domain 1 score: 213.0 bits; conditional E-value: 1.3e-64
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLse+e++ v++vWakvead++++G+diL+rlfk +P+t+e+F++Fk+L+ e+e+k+s+d+kkHg++vl+Al+++l+k ++++ea+lk+L
sp|Q0KIY5|MYG_KOGBR 2 VLSEGEWQLVLHVWAKVEADIAGHGQDILIRLFKHHPETLEKFDRFKHLKSEAEMKASEDLKKHGVTVLTALGAILKK-KGHHEAELKPL 90
@@ -1403,10 +1436,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02040|HBB_CEBAL Hemoglobin subunit beta OS=Cebus albifrons GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.7 0.1 1.6e-64 7.2e-62 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 212.7 0.2 1.6e-64 7.9e-62 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 212.7 bits; conditional E-value: 1.6e-64
+ == domain 1 score: 212.7 bits; conditional E-value: 1.6e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+A+sd+l +ld +l++++++
sp|P02040|HBB_CEBAL 1 VHLTAEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPDAVMNNPKVKAHGKKVLGAFSDGLTHLD-NLKGTFAQ 87
@@ -1420,10 +1453,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY3|MYG_PENEL Myoglobin OS=Peponocephala electra GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.2 1.2 2.3e-64 1.1e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 212.2 1.8 2.4e-64 1.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 212.2 bits; conditional E-value: 2.3e-64
+ == domain 1 score: 212.2 bits; conditional E-value: 2.4e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+diL+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg +vl+Al+++l+k +++++a+lk+L+
sp|Q0KIY3|MYG_PENEL 3 LSDGEWQLVLNVWGKVEADLAGHGQDILIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGITVLTALGAILKK-KGHHDAELKPLA 91
@@ -1437,10 +1470,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN25|HBB_LAGLA Hemoglobin subunit beta OS=Lagothrix lagotricha GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.1 0.1 2.4e-64 1.1e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 212.1 0.1 2.4e-64 1.2e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
+ == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|Q6WN25|HBB_LAGLA 2 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPDAVMSNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -1454,10 +1487,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68276|MYG_DELDE Myoglobin OS=Delphinus delphis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.1 1.4 2.4e-64 1.1e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 212.1 2.0 2.4e-64 1.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
+ == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg++vl+Al+++l+k +++++a+lk+L+
sp|P68276|MYG_DELDE 3 LSDGEWQLVLNVWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGNTVLTALGAILKK-KGHHDAELKPLA 91
@@ -1471,10 +1504,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68279|MYG_TURTR Myoglobin OS=Tursiops truncatus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.1 1.4 2.4e-64 1.1e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 212.1 2.0 2.4e-64 1.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
+ == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg++vl+Al+++l+k +++++a+lk+L+
sp|P68279|MYG_TURTR 3 LSDGEWQLVLNVWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGNTVLTALGAILKK-KGHHDAELKPLA 91
@@ -1488,10 +1521,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY7|MYG1_STEAT Myoglobin-1 OS=Stenella attenuata GN=MB1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.1 1.4 2.4e-64 1.1e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 212.1 2.0 2.4e-64 1.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
+ == domain 1 score: 212.1 bits; conditional E-value: 2.4e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++e++ v++vW+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg++vl+Al+++l+k +++++a+lk+L
sp|Q0KIY7|MYG1_STEAT 3 LSDGEWQLVLNVWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGNTVLTALGAILKK-KGHHDAELKPL 90
@@ -1505,10 +1538,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02032|HBB_SEMEN Hemoglobin subunit beta OS=Semnopithecus entellus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.1 0.1 2.5e-64 1.2e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 212.1 0.1 2.6e-64 1.3e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 212.1 bits; conditional E-value: 2.5e-64
+ == domain 1 score: 212.1 bits; conditional E-value: 2.6e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02032|HBB_SEMEN 1 VHLTPEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -1522,10 +1555,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68277|MYG_PHODA Myoglobin OS=Phocoenoides dalli dalli GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.0 1.0 2.6e-64 1.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 212.0 1.4 2.6e-64 1.3e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 212.0 bits; conditional E-value: 2.6e-64
+ == domain 1 score: 212.0 bits; conditional E-value: 2.6e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lse+e++ v++vW+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k +++++a+lk+L+
sp|P68277|MYG_PHODA 3 LSEGEWQLVLNVWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHDAELKPLA 91
@@ -1539,10 +1572,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68278|MYG_PHOPH Myoglobin OS=Phocoenoides phocoena GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 212.0 1.0 2.6e-64 1.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 212.0 1.4 2.6e-64 1.3e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 212.0 bits; conditional E-value: 2.6e-64
+ == domain 1 score: 212.0 bits; conditional E-value: 2.6e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lse+e++ v++vW+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k +++++a+lk+L+
sp|P68278|MYG_PHOPH 3 LSEGEWQLVLNVWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHDAELKPLA 91
@@ -1556,10 +1589,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67821|HBB_CEBAP Hemoglobin subunit beta OS=Cebus apella GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 211.9 0.1 2.7e-64 1.3e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 211.9 0.2 2.8e-64 1.4e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 211.9 bits; conditional E-value: 2.7e-64
+ == domain 1 score: 211.9 bits; conditional E-value: 2.8e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+A+sd+l +ld +l++++++
sp|P67821|HBB_CEBAP 2 VHLTAEEKSAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPDAVMNNPKVKAHGKKVLGAFSDGLTHLD-NLKGTFAQ 88
@@ -1573,10 +1606,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY6|MYG2_STEAT Myoglobin-2 OS=Stenella attenuata GN=MB2 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 211.9 1.7 2.7e-64 1.3e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 211.9 2.5 2.8e-64 1.4e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 211.9 bits; conditional E-value: 2.7e-64
+ == domain 1 score: 211.9 bits; conditional E-value: 2.8e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++e++ v++vW+kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+te+++k+s+d+kkHg++vl+Al+++l+k +++++a+lk+L
sp|Q0KIY6|MYG2_STEAT 3 LSDGEWQLVLNVWGKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTEADMKASEDLKKHGNTVLTALGAILKK-KGHHDAELKPL 90
@@ -1590,10 +1623,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08259|HBB_MANSP Hemoglobin subunit beta OS=Mandrillus sphinx GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 211.8 0.1 3e-64 1.4e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 211.8 0.1 3.1e-64 1.5e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 211.8 bits; conditional E-value: 3e-64
+ == domain 1 score: 211.8 bits; conditional E-value: 3.1e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+++W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P08259|HBB_MANSP 1 VHLTPEEKTAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 87
@@ -1607,10 +1640,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19885|HBB_COLPO Hemoglobin subunit beta OS=Colobus polykomos GN=HBB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 211.7 0.1 3.2e-64 1.5e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 211.7 0.1 3.3e-64 1.6e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 211.7 bits; conditional E-value: 3.2e-64
+ == domain 1 score: 211.7 bits; conditional E-value: 3.3e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P19885|HBB_COLPO 2 VHLTPDEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -1624,10 +1657,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67822|HBB_CEBCA Hemoglobin subunit beta OS=Cebus capucinus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 211.7 0.1 3.3e-64 1.5e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 211.7 0.2 3.4e-64 1.7e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 211.7 bits; conditional E-value: 3.3e-64
+ == domain 1 score: 211.7 bits; conditional E-value: 3.4e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+A+sd+l +ld +l++++++
sp|P67822|HBB_CEBCA 1 VHLTAEEKSAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPDAVMNNPKVKAHGKKVLGAFSDGLTHLD-NLKGTFAQ 87
@@ -1641,10 +1674,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13557|HBB_TARSY Hemoglobin subunit beta OS=Tarsius syrichta GN=HBB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 211.2 0.6 4.5e-64 2.1e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 211.2 0.9 4.7e-64 2.3e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 211.2 bits; conditional E-value: 4.5e-64
+ == domain 1 score: 211.2 bits; conditional E-value: 4.7e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv dve++G+++L rl++++P+tq+fF++F+dLst+++++++a+vk+Hgkkvl+A+sd++a+ld +l++++++
sp|P13557|HBB_TARSY 2 VHLTAEEKAAVTALWGKV--DVEDVGGEALGRLLVVYPWTQRFFDSFGDLSTPAAVMSNAKVKAHGKKVLNAFSDGMAHLD-NLKGTFAK 88
@@ -1658,10 +1691,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02169|MYG_LEPMU Myoglobin OS=Lepilemur mustelinus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.7 1.3 6.5e-64 3e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 210.7 1.8 6.7e-64 3.2e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 210.7 bits; conditional E-value: 6.5e-64
+ == domain 1 score: 210.7 bits; conditional E-value: 6.7e-64
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+t+de+k+s+d+kkHg +vl+Al+ +l+k ++++ea+lk+L+
sp|P02169|MYG_LEPMU 3 LSDGEWQLVLNVWGKVEADVGGHGQEVLIRLFTGHPETLEKFDKFKHLKTADEMKASEDLKKHGTTVLTALGGILKK-KGQHEAELKPLA 91
@@ -1675,10 +1708,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02055|HBB_MELME Hemoglobin subunit beta OS=Meles meles GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.3 0.1 8.8e-64 4.1e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 210.3 0.2 9e-64 4.4e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 210.3 bits; conditional E-value: 8.8e-64
+ == domain 1 score: 210.3 bits; conditional E-value: 9e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq++F++F+dLst+d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P02055|HBB_MELME 1 VHLTAEEKSAVTSLWGKV--NVDEVGGEALGRLLVVYPWTQRYFDSFGDLSTPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -1692,10 +1725,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02051|HBB_TARBA Hemoglobin subunit beta OS=Tarsius bancanus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.3 0.5 8.9e-64 4.1e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 210.3 0.7 9.2e-64 4.5e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 210.3 bits; conditional E-value: 8.9e-64
+ == domain 1 score: 210.3 bits; conditional E-value: 9.2e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv dve++G+++L rl++++P+tq+fF++F+dLst+++++++a+vk+Hgkkvl+A+s+++a+ld +l++++++
sp|P02051|HBB_TARBA 1 VHLTADEKAAVTALWGKV--DVEDVGGEALGRLLVVYPWTQRFFDSFGDLSTPAAVMGNAKVKAHGKKVLNAFSEGMAHLD-NLKGTFAK 87
@@ -1709,10 +1742,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02030|HBB_PAPCY Hemoglobin subunit beta OS=Papio cynocephalus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.2 0.1 9.1e-64 4.2e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 210.2 0.1 9.4e-64 4.6e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 210.2 bits; conditional E-value: 9.1e-64
+ == domain 1 score: 210.2 bits; conditional E-value: 9.4e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P02030|HBB_PAPCY 1 VHLTPEEKNAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPAAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 87
@@ -1726,10 +1759,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TSP1|HBB_PAPAN Hemoglobin subunit beta OS=Papio anubis GN=HBB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.2 0.1 9.4e-64 4.3e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 210.2 0.1 9.7e-64 4.7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 210.2 bits; conditional E-value: 9.4e-64
+ == domain 1 score: 210.2 bits; conditional E-value: 9.7e-64
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|Q9TSP1|HBB_PAPAN 2 VHLTPEEKNAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPAAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 88
@@ -1743,10 +1776,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68222|HBB_MACFU Hemoglobin subunit beta OS=Macaca fuscata fuscata GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.1 0.1 1e-63 4.7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 210.1 0.1 1.1e-63 5.1e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 210.1 bits; conditional E-value: 1e-63
+ == domain 1 score: 210.1 bits; conditional E-value: 1.1e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P68222|HBB_MACFU 2 VHLTPEEKNAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 88
@@ -1760,10 +1793,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68223|HBB_MACFA Hemoglobin subunit beta OS=Macaca fascicularis GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.1 0.1 1e-63 4.7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 210.1 0.1 1.1e-63 5.1e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 210.1 bits; conditional E-value: 1e-63
+ == domain 1 score: 210.1 bits; conditional E-value: 1.1e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P68223|HBB_MACFA 2 VHLTPEEKNAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 88
@@ -1777,10 +1810,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68224|HBB_MACSP Hemoglobin subunit beta OS=Macaca speciosa GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.1 0.1 1e-63 4.7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 210.1 0.1 1.1e-63 5.1e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 210.1 bits; conditional E-value: 1e-63
+ == domain 1 score: 210.1 bits; conditional E-value: 1.1e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P68224|HBB_MACSP 2 VHLTPEEKNAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 88
@@ -1794,10 +1827,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68225|HBB_MACNE Hemoglobin subunit beta OS=Macaca nemestrina GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.1 0.1 1e-63 4.7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 210.1 0.1 1.1e-63 5.1e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 210.1 bits; conditional E-value: 1e-63
+ == domain 1 score: 210.1 bits; conditional E-value: 1.1e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P68225|HBB_MACNE 2 VHLTPEEKNAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 88
@@ -1811,10 +1844,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02036|HBB_SAISC Hemoglobin subunit beta OS=Saimiri sciureus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 210.1 0.1 1e-63 4.8e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 210.1 0.1 1.1e-63 5.2e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 210.1 bits; conditional E-value: 1e-63
+ == domain 1 score: 210.1 bits; conditional E-value: 1.1e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +ve++G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02036|HBB_SAISC 2 VHLTGDEKAAVTALWGKV--NVEDVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -1828,10 +1861,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68232|HBB_ATEGE Hemoglobin subunit beta OS=Ateles geoffroyi GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.6 0.1 1.4e-63 6.5e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 209.6 0.1 1.4e-63 7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 209.6 bits; conditional E-value: 1.4e-63
+ == domain 1 score: 209.6 bits; conditional E-value: 1.4e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68232|HBB_ATEGE 2 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMSNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -1845,10 +1878,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68234|HBB_ATEBE Hemoglobin subunit beta OS=Ateles belzebuth GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.6 0.1 1.4e-63 6.5e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 209.6 0.1 1.4e-63 7e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 209.6 bits; conditional E-value: 1.4e-63
+ == domain 1 score: 209.6 bits; conditional E-value: 1.4e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68234|HBB_ATEBE 2 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMSNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -1862,10 +1895,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN29|HBB_ALOBE Hemoglobin subunit beta OS=Alouatta belzebul GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.5 0.1 1.5e-63 6.9e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 209.5 0.1 1.5e-63 7.5e-61 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 209.5 bits; conditional E-value: 1.5e-63
+ == domain 1 score: 209.5 bits; conditional E-value: 1.5e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++ +++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|Q6WN29|HBB_ALOBE 2 VHLTGDEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMHNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -1879,10 +1912,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02026|HBB_MACMU Hemoglobin subunit beta OS=Macaca mulatta GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.5 0.0 1.5e-63 7e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.5 0.1 1.6e-63 7.6e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.5 bits; conditional E-value: 1.5e-63
+ == domain 1 score: 209.5 bits; conditional E-value: 1.6e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P02026|HBB_MACMU 1 VHLTPEEKNAVTTLWGKV--NVDEVGGEALGRLLLVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 87
@@ -1896,10 +1929,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21201|HBB_VULVU Hemoglobin subunit beta OS=Vulpes vulpes GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.5 0.1 1.5e-63 7e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.5 0.2 1.6e-63 7.6e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.5 bits; conditional E-value: 1.5e-63
+ == domain 1 score: 209.5 bits; conditional E-value: 1.6e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek+ v+ +W+kv +v+e+G+++L rl+ ++P+tq+fF++F+dLst+d+++++a+vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P21201|HBB_VULVU 1 VHLTAEEKSLVTGLWGKV--NVDEVGGEALGRLLIVYPWTQRFFDSFGDLSTPDAVMGNAKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -1913,10 +1946,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02035|HBB_AOTTR Hemoglobin subunit beta OS=Aotus trivirgatus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.4 0.1 1.7e-63 7.8e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.4 0.1 1.7e-63 8.5e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.4 bits; conditional E-value: 1.7e-63
+ == domain 1 score: 209.4 bits; conditional E-value: 1.7e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02035|HBB_AOTTR 1 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -1930,10 +1963,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02039|HBB_SAGFU Hemoglobin subunit beta OS=Saguinus fuscicollis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.3 0.0 1.8e-63 8.5e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.3 0.1 1.9e-63 9.2e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.3 bits; conditional E-value: 1.8e-63
+ == domain 1 score: 209.3 bits; conditional E-value: 1.9e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+++W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02039|HBB_SAGFU 1 VHLTGEEKSAVTTLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -1947,10 +1980,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02166|MYG_PERPO Myoglobin OS=Perodicticus potto edwarsi GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.2 0.4 1.9e-63 8.6e-61 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 209.2 0.6 1.9e-63 9.3e-61 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 209.2 bits; conditional E-value: 1.9e-63
+ == domain 1 score: 209.2 bits; conditional E-value: 1.9e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G++iL+rlf+++P+t+e+F+kFk+L+t+de+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P02166|MYG_PERPO 3 LSDGEWQSVLNVWGKVEADLAGHGQEILIRLFTAHPETLEKFDKFKNLKTPDEMKASEDLKKHGVTVLTALGGILKK-KGHHEAEIKPLA 91
@@ -1964,10 +1997,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02038|HBB_SAGMY Hemoglobin subunit beta OS=Saguinus mystax GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.2 0.1 1.9e-63 8.9e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.2 0.1 2e-63 9.7e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.2 bits; conditional E-value: 1.9e-63
+ == domain 1 score: 209.2 bits; conditional E-value: 2e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+++W+kv +vee+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02038|HBB_SAGMY 1 VHLTGEEKSAVTTLWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -1981,10 +2014,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02029|HBB_THEGE Hemoglobin subunit beta OS=Theropithecus gelada GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.2 0.1 1.9e-63 8.9e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.2 0.1 2e-63 9.7e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.2 bits; conditional E-value: 1.9e-63
+ == domain 1 score: 209.2 bits; conditional E-value: 2e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+++W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P02029|HBB_THEGE 1 VHLTPEEKNAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPAAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 87
@@ -1998,10 +2031,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18985|HBB_CALAR Hemoglobin subunit beta OS=Callithrix argentata GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.2 0.1 2e-63 9e-61 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 209.2 0.2 2e-63 9.8e-61 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 209.2 bits; conditional E-value: 2e-63
+ == domain 1 score: 209.2 bits; conditional E-value: 2e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+l +ld +l++++++
sp|P18985|HBB_CALAR 1 VHLTGEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMNNPKVKAHGKKVLGAFSDGLTHLD-NLKGTFAH 87
@@ -2015,10 +2048,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN28|HBB_CALJA Hemoglobin subunit beta OS=Callithrix jacchus GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.1 0.1 2e-63 9.3e-61 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 209.1 0.2 2.1e-63 1e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 209.1 bits; conditional E-value: 2e-63
+ == domain 1 score: 209.1 bits; conditional E-value: 2.1e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvl+A+sd+l +ld +l++++++
sp|Q6WN28|HBB_CALJA 2 VHLTGEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMNNPKVKAHGKKVLGAFSDGLTHLD-NLKGTFAH 88
@@ -2032,10 +2065,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN27|HBB_PITPI Hemoglobin subunit beta OS=Pithecia pithecia GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 209.0 0.1 2.2e-63 1e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 209.0 0.1 2.3e-63 1.1e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 209.0 bits; conditional E-value: 2.2e-63
+ == domain 1 score: 209.0 bits; conditional E-value: 2.3e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|Q6WN27|HBB_PITPI 2 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -2049,10 +2082,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68054|HBB_SAGNI Hemoglobin subunit beta OS=Saguinus nigricollis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 208.9 0.1 2.4e-63 1.1e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 208.9 0.1 2.5e-63 1.2e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 208.9 bits; conditional E-value: 2.4e-63
+ == domain 1 score: 208.9 bits; conditional E-value: 2.5e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+++W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68054|HBB_SAGNI 1 VHLTGEEKSAVTTLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -2066,10 +2099,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68055|HBB_SAGOE Hemoglobin subunit beta OS=Saguinus oedipus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 208.9 0.1 2.4e-63 1.1e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 208.9 0.1 2.5e-63 1.2e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 208.9 bits; conditional E-value: 2.4e-63
+ == domain 1 score: 208.9 bits; conditional E-value: 2.5e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+++W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68055|HBB_SAGOE 1 VHLTGEEKSAVTTLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -2083,10 +2116,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02180|MYG_BALPH Myoglobin OS=Balaenoptera physalus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 208.8 3.1 2.5e-63 1.2e-60 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 208.8 4.4 2.6e-63 1.3e-60 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 208.8 bits; conditional E-value: 2.5e-63
+ == domain 1 score: 208.8 bits; conditional E-value: 2.6e-63
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vL++ae+ v+++Wakveadv+++G+diL+ lfk +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L
sp|P02180|MYG_BALPH 2 VLTDAEWHLVLNIWAKVEADVAGHGQDILISLFKGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPL 90
@@ -2097,30 +2130,30 @@ Domain annotation for each sequence (and alignments):
sp|P02180|MYG_BALPH 91 AQSHATKHKIPIKYLEFISDAIIHVLHSRHPADFGADAQAAMNKALELFRKDIAAKYK 148
*********************************************************7 PP
->> sp|P02031|HBB_CERTO Hemoglobin subunit beta OS=Cercocebus torquatus atys GN=HBB PE=1 SV=1
+>> sp|P02031|HBB_CERAT Hemoglobin subunit beta OS=Cercocebus atys GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 208.7 0.1 2.7e-63 1.3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 208.7 0.1 2.8e-63 1.4e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 208.7 bits; conditional E-value: 2.7e-63
+ == domain 1 score: 208.7 bits; conditional E-value: 2.8e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l++ld +l++++++
- sp|P02031|HBB_CERTO 1 VHLTPEEKVAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSNPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 87
+ sp|P02031|HBB_CERAT 1 VHLTPEEKVAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSNPDAVMGNPKVKAHGKKVLGAFSDGLNHLD-NLKGTFAQ 87
69****************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++fkll++vlv+vla++++keft++vqaa++K++a va++la+kY+
- sp|P02031|HBB_CERTO 88 LSELHCDKLHVDPENFKLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
+ sp|P02031|HBB_CERAT 88 LSELHCDKLHVDPENFKLLGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
**********************************************************7 PP
>> sp|P02182|MYG_ZIPCA Myoglobin OS=Ziphius cavirostris GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 208.6 2.7 3e-63 1.4e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 208.6 3.8 3.1e-63 1.5e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 208.6 bits; conditional E-value: 3e-63
+ == domain 1 score: 208.6 bits; conditional E-value: 3.1e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lseae++ v++vWakvead ++G++iL+rlfk +P+t+e+F+kFk+L+ e+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02182|MYG_ZIPCA 3 LSEAEWQLVLHVWAKVEADLSGHGQEILIRLFKGHPETLEKFDKFKHLKSEAEMKASEDLKKHGHTVLTALGGILKK-KGHHEAELKPLA 91
@@ -2134,10 +2167,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02044|HBD_ATEGE Hemoglobin subunit delta OS=Ateles geoffroyi GN=HBD PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 208.4 0.0 3.3e-63 1.5e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 208.4 0.1 3.4e-63 1.7e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 208.4 bits; conditional E-value: 3.3e-63
+ == domain 1 score: 208.4 bits; conditional E-value: 3.4e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+++++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02044|HBD_ATEGE 2 VHLTPEEKAAVAALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPAAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -2151,10 +2184,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68082|MYG_HORSE Myoglobin OS=Equus caballus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.8 0.8 5.2e-63 2.4e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 207.8 1.2 5.3e-63 2.6e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 207.8 bits; conditional E-value: 5.2e-63
+ == domain 1 score: 207.8 bits; conditional E-value: 5.3e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v++vW+kvead++++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg vl+Al+ +l+k ++++ea+lk+L+
sp|P68082|MYG_HORSE 3 LSDGEWQQVLNVWGKVEADIAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGTVVLTALGGILKK-KGHHEAELKPLA 91
@@ -2168,10 +2201,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68083|MYG_EQUBU Myoglobin OS=Equus burchelli GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.8 0.8 5.2e-63 2.4e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 207.8 1.2 5.3e-63 2.6e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 207.8 bits; conditional E-value: 5.2e-63
+ == domain 1 score: 207.8 bits; conditional E-value: 5.3e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v++vW+kvead++++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg vl+Al+ +l+k ++++ea+lk+L+
sp|P68083|MYG_EQUBU 3 LSDGEWQQVLNVWGKVEADIAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGTVVLTALGGILKK-KGHHEAELKPLA 91
@@ -2185,10 +2218,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P60524|HBB_CANFA Hemoglobin subunit beta OS=Canis familiaris GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.6 0.2 6e-63 2.8e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 207.6 0.2 6.2e-63 3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 207.6 bits; conditional E-value: 6e-63
+ == domain 1 score: 207.6 bits; conditional E-value: 6.2e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek+ v +W+kv +v+e+G+++L rl+ ++P+tq+fF++F+dLst+d+++++a+vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P60524|HBB_CANFA 1 VHLTAEEKSLVSGLWGKV--NVDEVGGEALGRLLIVYPWTQRFFDSFGDLSTPDAVMSNAKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2202,10 +2235,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P60525|HBB_CANLA Hemoglobin subunit beta OS=Canis latrans GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.6 0.2 6e-63 2.8e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 207.6 0.2 6.2e-63 3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 207.6 bits; conditional E-value: 6e-63
+ == domain 1 score: 207.6 bits; conditional E-value: 6.2e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek+ v +W+kv +v+e+G+++L rl+ ++P+tq+fF++F+dLst+d+++++a+vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P60525|HBB_CANLA 1 VHLTAEEKSLVSGLWGKV--NVDEVGGEALGRLLIVYPWTQRFFDSFGDLSTPDAVMSNAKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2219,10 +2252,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P60526|HBB_CHRBR Hemoglobin subunit beta OS=Chrysocyon brachyurus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.6 0.2 6e-63 2.8e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 207.6 0.2 6.2e-63 3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 207.6 bits; conditional E-value: 6e-63
+ == domain 1 score: 207.6 bits; conditional E-value: 6.2e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek+ v +W+kv +v+e+G+++L rl+ ++P+tq+fF++F+dLst+d+++++a+vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P60526|HBB_CHRBR 1 VHLTAEEKSLVSGLWGKV--NVDEVGGEALGRLLIVYPWTQRFFDSFGDLSTPDAVMSNAKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2236,10 +2269,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61772|HBD_PANTR Hemoglobin subunit delta OS=Pan troglodytes GN=HBD PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 0.0 6.5e-63 3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 207.5 0.0 6.7e-63 3.3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.5e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.7e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+a+W+kv +v+ +G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P61772|HBD_PANTR 2 VHLTPEEKTAVNALWGKV--NVDAVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFSQ 88
@@ -2253,10 +2286,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61773|HBD_GORGO Hemoglobin subunit delta OS=Gorilla gorilla gorilla GN=HBD PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 0.0 6.5e-63 3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 207.5 0.0 6.7e-63 3.3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.5e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.7e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+a+W+kv +v+ +G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P61773|HBD_GORGO 2 VHLTPEEKTAVNALWGKV--NVDAVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFSQ 88
@@ -2270,10 +2303,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61774|HBD_HYLLA Hemoglobin subunit delta OS=Hylobates lar GN=HBD PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 0.0 6.5e-63 3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 207.5 0.0 6.7e-63 3.3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.5e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.7e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+a+W+kv +v+ +G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P61774|HBD_HYLLA 2 VHLTPEEKTAVNALWGKV--NVDAVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFSQ 88
@@ -2287,10 +2320,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61775|HBD_PONPY Hemoglobin subunit delta OS=Pongo pygmaeus GN=HBD PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 0.0 6.5e-63 3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 207.5 0.0 6.7e-63 3.3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.5e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.7e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+a+W+kv +v+ +G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P61775|HBD_PONPY 2 VHLTPEEKTAVNALWGKV--NVDAVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFSQ 88
@@ -2304,10 +2337,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY9|MYG_INDPC Myoglobin OS=Indopacetus pacificus GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 3.1 6.5e-63 3e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 207.5 4.4 6.7e-63 3.2e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.5e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.7e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lseae++ v++vWakvead ++G++iL+rlfk +P+t+e+F+kFk+L+ e+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|Q0KIY9|MYG_INDPC 3 LSEAEWQLVLHVWAKVEADLSGHGQEILIRLFKGHPETLEKFDKFKHLKSEAEMKASEDLKKHGHTVLTALGGILKK-KGHHEAELKPLA 91
@@ -2321,10 +2354,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN22|HBB_ATEPA Hemoglobin subunit beta OS=Ateles paniscus GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.4 0.0 6.6e-63 3.1e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 207.4 0.1 6.8e-63 3.3e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 207.4 bits; conditional E-value: 6.6e-63
+ == domain 1 score: 207.4 bits; conditional E-value: 6.8e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|Q6WN22|HBB_ATEPA 2 VHLTGEEKSAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -2338,10 +2371,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68046|HBB_ODORO Hemoglobin subunit beta OS=Odobenus rosmarus divergens GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 0.2 6.6e-63 3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 207.5 0.2 6.8e-63 3.3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.6e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.8e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P68046|HBB_ODORO 1 VHLTADEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2355,10 +2388,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68047|HBB_ARCGA Hemoglobin subunit beta OS=Arctocephalus galapagoensis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.5 0.2 6.6e-63 3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 207.5 0.2 6.8e-63 3.3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 207.5 bits; conditional E-value: 6.6e-63
+ == domain 1 score: 207.5 bits; conditional E-value: 6.8e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P68047|HBB_ARCGA 1 VHLTADEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2372,10 +2405,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09909|HBB_PHOVI Hemoglobin subunit beta OS=Phoca vitulina GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.3 0.1 7.2e-63 3.3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 207.3 0.2 7.5e-63 3.6e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 207.3 bits; conditional E-value: 7.2e-63
+ == domain 1 score: 207.3 bits; conditional E-value: 7.5e-63
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P09909|HBB_PHOVI 1 VHLTGEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSADAIMGNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2389,10 +2422,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02183|MYG_MESCA Myoglobin OS=Mesoplodon carlhubbsi GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.2 2.6 8e-63 3.7e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 207.2 3.7 8.3e-63 4e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 207.2 bits; conditional E-value: 8e-63
+ == domain 1 score: 207.2 bits; conditional E-value: 8.3e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lseae++ v++vWakvead ++G++iL+rlfk +P+t+e+F+kFk+L+ e+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02183|MYG_MESCA 3 LSEAEWQLVLHVWAKVEADLSGHGQEILIRLFKGHPETLEKFDKFKHLKSEAEMKASEDLKKHGHTVLTALGGILKK-KGHHEAELKPLA 91
@@ -2406,10 +2439,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0KIY0|MYG_MESST Myoglobin OS=Mesoplodon stejnegeri GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 207.2 2.6 8e-63 3.7e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 207.2 3.7 8.3e-63 4e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 207.2 bits; conditional E-value: 8e-63
+ == domain 1 score: 207.2 bits; conditional E-value: 8.3e-63
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lseae++ v++vWakvead ++G++iL+rlfk +P+t+e+F+kFk+L+ e+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|Q0KIY0|MYG_MESST 3 LSEAEWQLVLHVWAKVEADLSGHGQEILIRLFKGHPETLEKFDKFKHLKSEAEMKASEDLKKHGHTVLTALGGILKK-KGHHEAELKPLA 91
@@ -2423,10 +2456,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15449|HBB_MELCA Hemoglobin subunit beta OS=Mellivora capensis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.9 0.2 1e-62 4.6e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 206.9 0.3 1e-62 5e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 206.9 bits; conditional E-value: 1e-62
+ == domain 1 score: 206.9 bits; conditional E-value: 1e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P15449|HBB_MELCA 1 VHLTAEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2440,10 +2473,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN21|HBB_CALGO Hemoglobin subunit beta OS=Callimico goeldii GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.6 0.1 1.2e-62 5.7e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 206.6 0.1 1.3e-62 6.2e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 206.6 bits; conditional E-value: 1.2e-62
+ == domain 1 score: 206.6 bits; conditional E-value: 1.3e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+++W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+l +ld +l++++++
sp|Q6WN21|HBB_CALGO 2 VHLTGEEKSAVTTLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLTHLD-NLKGTFAQ 88
@@ -2457,10 +2490,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23602|HBB_MUSLU Hemoglobin subunit beta OS=Mustela lutreola GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.6 0.2 1.2e-62 5.7e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 206.6 0.3 1.3e-62 6.2e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 206.6 bits; conditional E-value: 1.2e-62
+ == domain 1 score: 206.6 bits; conditional E-value: 1.3e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P23602|HBB_MUSLU 1 VHLTAEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2474,10 +2507,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02165|MYG_TUPGL Myoglobin OS=Tupaia glis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.5 0.6 1.3e-62 5.9e-60 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 206.5 0.9 1.3e-62 6.4e-60 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 206.5 bits; conditional E-value: 1.3e-62
+ == domain 1 score: 206.5 bits; conditional E-value: 1.3e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kveadv+++G+++L+rlfk +P+t+e+F+kFk+L+tede+k+s+d+kkHg++vl Al+ +l+k ++++ea++k+L+
sp|P02165|MYG_TUPGL 3 LSDGEWQLVLNVWGKVEADVAGHGQEVLIRLFKGHPETLEKFDKFKHLKTEDEMKASEDLKKHGNTVLSALGGILKK-KGQHEAEIKPLA 91
@@ -2491,10 +2524,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02208|GLB5_PETMA Globin-5 OS=Petromyzon marinus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.4 0.1 1.3e-62 6.2e-60 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 206.4 0.2 1.4e-62 6.8e-60 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 206.4 bits; conditional E-value: 1.3e-62
+ == domain 1 score: 206.4 bits; conditional E-value: 1.4e-62
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+Ls+aektk++++Wa+v++++e+sG+diLv++f+stPa+qefF+kFk+L+t+d+lkksadv++H++++++A++da+a++d ek+++kl
sp|P02208|GLB5_PETMA 11 PLSAAEKTKIRSAWAPVYSTYETSGVDILVKFFTSTPAAQEFFPKFKGLTTADQLKKSADVRWHAERIINAVNDAVASMDdtEKMSMKL 99
@@ -2508,10 +2541,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WN20|HBB_CALTO Hemoglobin subunit beta OS=Callicebus torquatus GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.2 0.2 1.6e-62 7.6e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 206.2 0.3 1.7e-62 8.2e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 206.2 bits; conditional E-value: 1.6e-62
+ == domain 1 score: 206.2 bits; conditional E-value: 1.7e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v e+G+++L rl++++P+tq+fFe+F+dLs +d+++++ +vk+Hgkkvl+A+sd+la+ld +l++++++
sp|Q6WN20|HBB_CALTO 2 VHLTGEEKAAVTALWGKV--NVXEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMSNXKVKAHGKKVLGAFSDGLAHLD-NLKSTFAQ 88
@@ -2525,10 +2558,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P33499|HBD_ATEFU Hemoglobin subunit delta OS=Ateles fusciceps GN=HBD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.1 0.0 1.7e-62 7.7e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 206.1 0.1 1.7e-62 8.3e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 206.1 bits; conditional E-value: 1.7e-62
+ == domain 1 score: 206.1 bits; conditional E-value: 1.7e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+ Lst+d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P33499|HBD_ATEFU 1 VHLTGEEKSAVAALWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGALSTPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -2539,13 +2572,13 @@ Domain annotation for each sequence (and alignments):
sp|P33499|HBD_ATEFU 88 LSELHCDKLHVDPENFRLLGNVLVCVLARNFGKEFTPQVQAAFQKVVAGVATALAHKYH 146
**********************************************************7 PP
->> sp|Q6WN26|HBB_AOTAZ Hemoglobin subunit beta OS=Aotus azarai GN=HBB PE=2 SV=3
+>> sp|Q6WN26|HBB_AOTAZ Hemoglobin subunit beta OS=Aotus azarae GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 206.1 0.1 1.7e-62 7.7e-60 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 206.1 0.1 1.7e-62 8.4e-60 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 206.1 bits; conditional E-value: 1.7e-62
+ == domain 1 score: 206.1 bits; conditional E-value: 1.7e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|Q6WN26|HBB_AOTAZ 2 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMNNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 88
@@ -2559,10 +2592,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18989|HBB_PROLO Hemoglobin subunit beta OS=Procyon lotor GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.9 0.1 1.9e-62 8.9e-60 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 205.9 0.1 2e-62 9.6e-60 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 205.9 bits; conditional E-value: 1.9e-62
+ == domain 1 score: 205.9 bits; conditional E-value: 2e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+++W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P18989|HBB_PROLO 1 VHLTADEKTAVTTLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSADAIMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2576,10 +2609,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02042|HBD_HUMAN Hemoglobin subunit delta OS=Homo sapiens GN=HBD PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.7 0.0 2.3e-62 1.1e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 205.7 0.0 2.4e-62 1.2e-59 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 205.7 bits; conditional E-value: 2.3e-62
+ == domain 1 score: 205.7 bits; conditional E-value: 2.4e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v+a+W+kv +v+ +G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02042|HBD_HUMAN 2 VHLTPEEKTAVNALWGKV--NVDAVGGEALGRLLVVYPWTQRFFESFGDLSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFSQ 88
@@ -2593,10 +2626,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68080|MYG_PHOVI Myoglobin OS=Phoca vitulina GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.7 1.1 2.4e-62 1.1e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 205.7 1.6 2.4e-62 1.2e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 205.7 bits; conditional E-value: 2.4e-62
+ == domain 1 score: 205.7 bits; conditional E-value: 2.4e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+ v++vW+kve+d +++G+++L+rlfks+P+t+e+F+kFk+L+ ed+++ s+d++kHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P68080|MYG_PHOVI 3 LSDGEWHLVLNVWGKVETDLAGHGQEVLIRLFKSHPETLEKFDKFKHLKSEDDMRRSEDLRKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -2610,10 +2643,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68081|MYG_HALGR Myoglobin OS=Halichoerus grypus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.7 1.1 2.4e-62 1.1e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 205.7 1.6 2.4e-62 1.2e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 205.7 bits; conditional E-value: 2.4e-62
+ == domain 1 score: 205.7 bits; conditional E-value: 2.4e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+ v++vW+kve+d +++G+++L+rlfks+P+t+e+F+kFk+L+ ed+++ s+d++kHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P68081|MYG_HALGR 3 LSDGEWHLVLNVWGKVETDLAGHGQEVLIRLFKSHPETLEKFDKFKHLKSEDDMRRSEDLRKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -2627,10 +2660,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19886|HBD_COLPO Hemoglobin subunit delta OS=Colobus polykomos GN=HBD PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.6 0.0 2.5e-62 1.1e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 205.6 0.1 2.6e-62 1.2e-59 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 205.6 bits; conditional E-value: 2.5e-62
+ == domain 1 score: 205.6 bits; conditional E-value: 2.6e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt v a+W+kv +v+ +G+++L rl++++P+tq+fFe+F+dLs +++++++++vk+Hgkkvl+A+sd+la+ld l++++++
sp|P19886|HBD_COLPO 2 VHLTPEEKTVVSALWGKV--NVDAVGGEALGRLLVVYPWTQRFFESFGDLSSPAAVMGNPKVKAHGKKVLGAFSDGLAHLD-SLKGTFSQ 88
@@ -2644,10 +2677,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68052|HBB_PTEBR Hemoglobin subunit beta OS=Pteronura brasiliensis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.3 0.1 3e-62 1.4e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 205.3 0.2 3.1e-62 1.5e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 205.3 bits; conditional E-value: 3e-62
+ == domain 1 score: 205.3 bits; conditional E-value: 3.1e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P68052|HBB_PTEBR 1 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2661,10 +2694,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68053|HBB_MARFO Hemoglobin subunit beta OS=Martes foina GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.3 0.1 3e-62 1.4e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 205.3 0.2 3.1e-62 1.5e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 205.3 bits; conditional E-value: 3e-62
+ == domain 1 score: 205.3 bits; conditional E-value: 3.1e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P68053|HBB_MARFO 1 VHLTGEEKAAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2678,10 +2711,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10893|HBB_LUTLU Hemoglobin subunit beta OS=Lutra lutra GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.2 0.1 3.3e-62 1.5e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 205.2 0.1 3.4e-62 1.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 205.2 bits; conditional E-value: 3.3e-62
+ == domain 1 score: 205.2 bits; conditional E-value: 3.4e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+++W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P10893|HBB_LUTLU 1 VHLTGEEKAAVTSLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2695,10 +2728,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P26916|HBB_NASNA Hemoglobin subunit beta OS=Nasua nasua GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.1 0.1 3.5e-62 1.6e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 205.1 0.1 3.6e-62 1.8e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 205.1 bits; conditional E-value: 3.5e-62
+ == domain 1 score: 205.1 bits; conditional E-value: 3.6e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ekt+v+++Wakv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P26916|HBB_NASNA 1 VHLTGEEKTAVTNLWAKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSPDAIMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -2712,10 +2745,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02170|MYG_RABIT Myoglobin OS=Oryctolagus cuniculus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 205.1 2.2 3.5e-62 1.6e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 205.1 3.2 3.6e-62 1.8e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 205.1 bits; conditional E-value: 3.5e-62
+ == domain 1 score: 205.1 bits; conditional E-value: 3.6e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+ae++ v++vW+kvead +++G+++L+rlf ++P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl+Al+++l+k ++++ea++k+L+
sp|P02170|MYG_RABIT 3 LSDAEWQLVLNVWGKVEADLAGHGQEVLIRLFHTHPETLEKFDKFKHLKSEDEMKASEDLKKHGNTVLTALGAILKK-KGHHEAEIKPLA 91
@@ -2729,10 +2762,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18984|HBB_BALAC Hemoglobin subunit beta OS=Balaenoptera acutorostrata GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.9 0.6 4e-62 1.8e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 204.9 0.9 4.1e-62 2e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.9 bits; conditional E-value: 4e-62
+ == domain 1 score: 204.9 bits; conditional E-value: 4.1e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+Wakv +vee+G+++L rl++++P+tq+fFe F+dLst+d+++k+++vk+Hgkkvl +sd+l++ld +l++++++
sp|P18984|HBB_BALAC 1 VHLTAEEKSAVTALWAKV--NVEEVGGEALGRLLVVYPWTQRFFEAFGDLSTADAVMKNPKVKAHGKKVLASFSDGLKHLD-DLKGTFAT 87
@@ -2746,10 +2779,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02167|MYG_NYCCO Myoglobin OS=Nycticebus coucang GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.5 0.2 5.3e-62 2.5e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 204.5 0.3 5.5e-62 2.7e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 204.5 bits; conditional E-value: 5.3e-62
+ == domain 1 score: 204.5 bits; conditional E-value: 5.5e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G++iL+rlf+++P+t+e+F+kFk+L+t+de+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P02167|MYG_NYCCO 3 LSDGEWQSVLNVWGKVEADLAGHGQEILIRLFTAHPETLEKFDKFKNLKTPDEMKASEDLKKHGVTVLTALGGILKK-KGQHEAEIKPLA 91
@@ -2763,10 +2796,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02145|MYG_PANTR Myoglobin OS=Pan troglodytes GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.5 0.2 5.5e-62 2.5e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 204.5 0.3 5.6e-62 2.7e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 204.5 bits; conditional E-value: 5.5e-62
+ == domain 1 score: 204.5 bits; conditional E-value: 5.6e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P02145|MYG_PANTR 3 LSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -2780,10 +2813,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9I9I3|GLB2_PETMA Globin-2 OS=Petromyzon marinus PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.3 0.1 6e-62 2.8e-59 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 204.3 0.2 6.2e-62 3e-59 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 204.3 bits; conditional E-value: 6e-62
+ == domain 1 score: 204.3 bits; conditional E-value: 6.2e-62
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+Ls+aektk++++Wa+v++++e+sG+diLv++f+stPa+qefF+kFk+L+t+d+lkksadv++H++++++A++da+ ++d ek+++kl
sp|Q9I9I3|GLB2_PETMA 11 PLSAAEKTKIRSAWAPVYSNYETSGVDILVKFFTSTPAAQEFFPKFKGLTTADQLKKSADVRWHAERIINAVNDAVVSMDdtEKMSMKL 99
@@ -2797,10 +2830,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15166|HBB_LEPWE Hemoglobin subunit beta OS=Leptonychotes weddelli GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.4 0.1 5.9e-62 2.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 204.4 0.2 6.1e-62 3e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.4 bits; conditional E-value: 5.9e-62
+ == domain 1 score: 204.4 bits; conditional E-value: 6.1e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+a+W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P15166|HBB_LEPWE 1 VHLTAEEKSAVTALWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPNAIMSNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2814,10 +2847,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13558|HBD_TARSY Hemoglobin subunit delta OS=Tarsius syrichta GN=HBD PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.2 0.9 6.5e-62 3e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 204.2 1.2 6.7e-62 3.3e-59 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 204.2 bits; conditional E-value: 6.5e-62
+ == domain 1 score: 204.2 bits; conditional E-value: 6.7e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+a+W+kv +ve++G+++L rl++++P+tq+fF++F+dLst+++++++a+vk+Hgkkvl+A+sd++a+ld +l++++++
sp|P13558|HBD_TARSY 2 VHLTADEKAAVTALWSKV--NVEDVGGEALGRLLVVYPWTQRFFDSFGDLSTPAAVMSNAKVKAHGKKVLNAFSDGMAHLD-NLKGTFAK 88
@@ -2831,10 +2864,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02189|MYG_PIG Myoglobin OS=Sus scrofa GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.2 0.5 6.7e-62 3.1e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 204.2 0.7 6.9e-62 3.4e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 204.2 bits; conditional E-value: 6.7e-62
+ == domain 1 score: 204.2 bits; conditional E-value: 6.9e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLsel 94
Ls++e++ v++vW+kveadv+++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl+Al+ +l+k ++++ea+l +L+++
sp|P02189|MYG_PIG 3 LSDGEWQLVLNVWGKVEADVAGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGNTVLTALGGILKK-KGHHEAELTPLAQS 93
@@ -2848,10 +2881,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TS35|HBA1_HYLLA Hemoglobin subunit alpha-1 OS=Hylobates lar GN=HBA1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.1 1.1 7.1e-62 3.3e-59 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 204.1 1.6 7.3e-62 3.6e-59 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.1 bits; conditional E-value: 7.1e-62
+ == domain 1 score: 204.1 bits; conditional E-value: 7.3e-62
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vka+W+kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++
sp|Q9TS35|HBA1_HYLLA 2 VLSPADKTNVKAAWGKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSA 83
@@ -2865,10 +2898,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68011|HBB_URSMA Hemoglobin subunit beta OS=Ursus maritimus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.1 0.1 7.3e-62 3.4e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 204.1 0.1 7.5e-62 3.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.1 bits; conditional E-value: 7.3e-62
+ == domain 1 score: 204.1 bits; conditional E-value: 7.5e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek+ v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P68011|HBB_URSMA 1 VHLTGEEKSLVTGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSADAIMNNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2882,10 +2915,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68012|HBB_URSTH Hemoglobin subunit beta OS=Ursus thibetanus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.1 0.1 7.3e-62 3.4e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 204.1 0.1 7.5e-62 3.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.1 bits; conditional E-value: 7.3e-62
+ == domain 1 score: 204.1 bits; conditional E-value: 7.5e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek+ v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P68012|HBB_URSTH 1 VHLTGEEKSLVTGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSADAIMNNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2899,10 +2932,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68013|HBB_URSML Hemoglobin subunit beta OS=Ursus malayanus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.1 0.1 7.3e-62 3.4e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 204.1 0.1 7.5e-62 3.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.1 bits; conditional E-value: 7.3e-62
+ == domain 1 score: 204.1 bits; conditional E-value: 7.5e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek+ v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P68013|HBB_URSML 1 VHLTGEEKSLVTGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSADAIMNNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -2916,10 +2949,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18983|HBB_AILME Hemoglobin subunit beta OS=Ailuropoda melanoleuca GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.0 0.1 7.5e-62 3.5e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 204.0 0.2 7.8e-62 3.8e-59 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 204.0 bits; conditional E-value: 7.5e-62
+ == domain 1 score: 204.0 bits; conditional E-value: 7.8e-62
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P18983|HBB_AILME 2 VHLTGEEKAAVTGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPDAVMNNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 88
@@ -2933,10 +2966,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P69905|HBA_HUMAN Hemoglobin subunit alpha OS=Homo sapiens GN=HBA1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.0 0.9 7.6e-62 3.5e-59 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 204.0 1.3 7.8e-62 3.8e-59 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.0 bits; conditional E-value: 7.6e-62
+ == domain 1 score: 204.0 bits; conditional E-value: 7.8e-62
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+a+++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P69905|HBA_HUMAN 2 VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 84
@@ -2950,10 +2983,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P69906|HBA_PANPA Hemoglobin subunit alpha OS=Pan paniscus GN=HBA1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.0 0.9 7.6e-62 3.5e-59 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 204.0 1.3 7.8e-62 3.8e-59 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.0 bits; conditional E-value: 7.6e-62
+ == domain 1 score: 204.0 bits; conditional E-value: 7.8e-62
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+a+++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P69906|HBA_PANPA 2 VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 84
@@ -2967,10 +3000,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P69907|HBA_PANTR Hemoglobin subunit alpha OS=Pan troglodytes GN=HBA1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 204.0 0.9 7.6e-62 3.5e-59 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 204.0 1.3 7.8e-62 3.8e-59 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 204.0 bits; conditional E-value: 7.6e-62
+ == domain 1 score: 204.0 bits; conditional E-value: 7.8e-62
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+a+++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P69907|HBA_PANTR 2 VLSPADKTNVKAAWGKVGAHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 84
@@ -2984,10 +3017,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11343|MYG_LUTLU Myoglobin OS=Lutra lutra GN=MB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.7 0.2 9.6e-62 4.4e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 203.7 0.3 9.9e-62 4.8e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 203.7 bits; conditional E-value: 9.6e-62
+ == domain 1 score: 203.7 bits; conditional E-value: 9.9e-62
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl+Al+ +l+k ++k+ea+lk+L+
sp|P11343|MYG_LUTLU 3 LSDGEWQLVLNVWGKVEADLAGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKGSEDLKKHGNTVLTALGGILKK-KGKHEAELKPLA 91
@@ -3001,10 +3034,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02147|MYG_GORBE Myoglobin OS=Gorilla gorilla beringei GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.6 0.3 1e-61 4.7e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 203.6 0.4 1.1e-61 5.1e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 203.6 bits; conditional E-value: 1e-61
+ == domain 1 score: 203.6 bits; conditional E-value: 1.1e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P02147|MYG_GORBE 3 LSDGEWQLVLNVWGKVEADISGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3015,13 +3048,13 @@ Domain annotation for each sequence (and alignments):
sp|P02147|MYG_GORBE 92 QSHATKHKIPVKYLEFISECIIQVLQSKHPGDFGADAQGAMNKALELFRKDMASNYK 148
********************************************************7 PP
->> sp|P08535|HBB_LEPEU Hemoglobin subunit beta OS=Lepus europaeus GN=HBB PE=2 SV=2
+>> sp|P08535|HBB_LEPEU Hemoglobin subunit beta OS=Lepus europaeus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.4 0.2 1.2e-61 5.5e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 203.4 0.3 1.2e-61 6e-59 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 203.4 bits; conditional E-value: 1.2e-61
+ == domain 1 score: 203.4 bits; conditional E-value: 1.2e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek++v+a+W+kv +vee+G++ L rl++++P+tq+fFe+F+dLst+ +++++++vk+Hgkkvl A+s++l +ld +l++++++
sp|P08535|HBB_LEPEU 2 VHLSGEEKSAVTALWGKV--NVEEVGGETLGRLLVVYPWTQRFFESFGDLSTASAVMGNPKVKAHGKKVLAAFSEGLSHLD-NLKGTFAK 88
@@ -3035,10 +3068,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02161|MYG_ZALCA Myoglobin OS=Zalophus californianus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.3 0.6 1.3e-61 6e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 203.3 0.9 1.3e-61 6.5e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 203.3 bits; conditional E-value: 1.3e-61
+ == domain 1 score: 203.3 bits; conditional E-value: 1.3e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kvead ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k s+d+kkHgk+vl+Al+ +l+k +++++a+lk+L+
sp|P02161|MYG_ZALCA 3 LSDGEWQLVLNIWGKVEADLVGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKRSEDLKKHGKTVLTALGGILKK-KGHHDAELKPLA 91
@@ -3052,10 +3085,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07421|HBA_CEBCA Hemoglobin subunit alpha OS=Cebus capucinus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.2 0.9 1.3e-61 6.1e-59 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 203.2 1.3 1.4e-61 6.6e-59 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 203.2 bits; conditional E-value: 1.3e-61
+ == domain 1 score: 203.2 bits; conditional E-value: 1.4e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++W+kv+a+++++Gad+L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAls+a+a++d +++++l++L
sp|P07421|HBA_CEBCA 1 VLSPADKTNVKTAWGKVGAHAGDYGADALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALSNAVAHVD-DMPNALSAL 83
@@ -3066,30 +3099,30 @@ Domain annotation for each sequence (and alignments):
sp|P07421|HBA_CEBCA 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPADFTPAVHASLDKFLASVSTVLTSKYR 141
*********************************************************7 PP
->> sp|Q03902|HBD_GALCR Hemoglobin subunit delta OS=Galago crassicaudatus GN=HBD PE=2 SV=2
+>> sp|Q03902|HBD_OTOCR Hemoglobin subunit delta OS=Otolemur crassicaudatus GN=HBD PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.0 0.1 1.5e-61 7.1e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 203.0 0.1 1.6e-61 7.7e-59 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 203.0 bits; conditional E-value: 1.5e-61
+ == domain 1 score: 203.0 bits; conditional E-value: 1.6e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v a+W+kv +vee+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl A+s++l++ld +l++++++
- sp|Q03902|HBD_GALCR 2 VHLTPDEKNAVCALWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVMGNPKVKAHGKKVLSAFSEGLNHLD-NLKGTFAK 88
+ sp|Q03902|HBD_OTOCR 2 VHLTPDEKNAVCALWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVMGNPKVKAHGKKVLSAFSEGLNHLD-NLKGTFAK 88
69****************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++f+ll++vlv+vla++++k+ft++vqaa++K++a va++la+kY+
- sp|Q03902|HBD_GALCR 89 LSELHCDKLHVDPENFRLLGNVLVVVLAHHFGKDFTPEVQAAYQKVVAGVATALAHKYH 147
+ sp|Q03902|HBD_OTOCR 89 LSELHCDKLHVDPENFRLLGNVLVVVLAHHFGKDFTPEVQAAYQKVVAGVATALAHKYH 147
**********************************************************7 PP
>> sp|P20856|MYG_CTEGU Myoglobin OS=Ctenodactylus gundi GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 203.0 0.3 1.6e-61 7.4e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 203.0 0.4 1.6e-61 8e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 203.0 bits; conditional E-value: 1.6e-61
+ == domain 1 score: 203.0 bits; conditional E-value: 1.6e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+d++++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+++l+k ++++ea+l++L+
sp|P20856|MYG_CTEGU 3 LSDGEWQLVLNAWGKVETDIGGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGTTVLTALGNILKK-KGQHEAELAPLA 91
@@ -3103,10 +3136,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68044|HBB_MUSPF Hemoglobin subunit beta OS=Mustela putorius furo GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.9 0.1 1.7e-61 7.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 202.9 0.2 1.7e-61 8.3e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.9 bits; conditional E-value: 1.7e-61
+ == domain 1 score: 202.9 bits; conditional E-value: 1.7e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G++ L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P68044|HBB_MUSPF 1 VHLTGEEKAAVTALWGKV--NVDEVGGETLGRLLVVYPWTQRFFDSFGDLSSPDAVMSNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -3120,10 +3153,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68045|HBB_MUSPU Hemoglobin subunit beta OS=Mustela putorius GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.9 0.1 1.7e-61 7.7e-59 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 202.9 0.2 1.7e-61 8.3e-59 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.9 bits; conditional E-value: 1.7e-61
+ == domain 1 score: 202.9 bits; conditional E-value: 1.7e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+a+W+kv +v+e+G++ L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P68045|HBB_MUSPU 1 VHLTGEEKAAVTALWGKV--NVDEVGGETLGRLLVVYPWTQRFFDSFGDLSSPDAVMSNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -3137,10 +3170,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P32428|MYG_ONDZI Myoglobin OS=Ondatra zibethicus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.8 0.7 1.8e-61 8.4e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.8 1.0 1.9e-61 9.2e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.8 bits; conditional E-value: 1.8e-61
+ == domain 1 score: 202.8 bits; conditional E-value: 1.9e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+d+L+rlfk++P+t+e+F+kFk+++ ede+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P32428|MYG_ONDZI 3 LSDGEWQLVLHVWGKVEADLAGHGQDVLIRLFKAHPETLEKFDKFKHIKSEDEMKGSEDLKKHGBTVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3154,10 +3187,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14396|MYG_CASFI Myoglobin OS=Castor fiber GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.7 1.0 1.9e-61 8.9e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.7 1.4 2e-61 9.6e-59 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.7 bits; conditional E-value: 1.9e-61
+ == domain 1 score: 202.7 bits; conditional E-value: 2e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+++ ede+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P14396|MYG_CASFI 3 LSDGEWQLVLHVWGKVEADLAGHGQEVLIRLFKGHPETLEKFNKFKHIKSEDEMKASEDLKKHGVTVLTALGGVLKK-KGHHEAEIKPLA 91
@@ -3171,10 +3204,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18972|HBA_CALAR Hemoglobin subunit alpha OS=Callithrix argentata GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.6 0.9 2e-61 9.3e-59 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 202.6 1.3 2.1e-61 1e-58 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.6 bits; conditional E-value: 2e-61
+ == domain 1 score: 202.6 bits; conditional E-value: 2.1e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+++++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P18972|HBA_CALAR 1 VLSPADKSNVKAAWGKVGSHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 83
@@ -3188,10 +3221,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q5XLE5|HBD_AILME Hemoglobin subunit delta OS=Ailuropoda melanoleuca GN=HBD PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.6 0.1 2e-61 9.4e-59 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 202.6 0.2 2.1e-61 1e-58 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 202.6 bits; conditional E-value: 2e-61
+ == domain 1 score: 202.6 bits; conditional E-value: 2.1e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLst+d+++++++vk+Hgkkvl+ +s++l++ld +l++++ +
sp|Q5XLE5|HBD_AILME 2 VHLTGEEKAAVTGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPDAVMNNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFVK 88
@@ -3205,10 +3238,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02144|MYG_HUMAN Myoglobin OS=Homo sapiens GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.6 0.2 2e-61 9.4e-59 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.6 0.3 2.1e-61 1e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.6 bits; conditional E-value: 2e-61
+ == domain 1 score: 202.6 bits; conditional E-value: 2.1e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P02144|MYG_HUMAN 3 LSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3222,10 +3255,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01923|HBA_GORGO Hemoglobin subunit alpha OS=Gorilla gorilla gorilla GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.4 0.8 2.4e-61 1.1e-58 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 202.4 1.2 2.4e-61 1.2e-58 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.4 bits; conditional E-value: 2.4e-61
+ == domain 1 score: 202.4 bits; conditional E-value: 2.4e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P01923|HBA_GORGO 1 VLSPADKTNVKAAWGKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 83
@@ -3239,10 +3272,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02192|MYG_BOVIN Myoglobin OS=Bos taurus GN=MB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.3 2.3 2.6e-61 1.2e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.3 3.4 2.7e-61 1.3e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.3 bits; conditional E-value: 2.6e-61
+ == domain 1 score: 202.3 bits; conditional E-value: 2.7e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P02192|MYG_BOVIN 3 LSDGEWQLVLNAWGKVEADVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
@@ -3253,13 +3286,30 @@ Domain annotation for each sequence (and alignments):
sp|P02192|MYG_BOVIN 92 ESHANKHKIPVKYLEFISDAIIHVLHAKHPSDFGADAQAAMSKALELFRNDMAAQYK 148
********************************************************7 PP
+>> sp|P86873|MYG_BISBI Myoglobin OS=Bison bison GN=MB PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 202.3 3.4 2.7e-61 1.3e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 202.3 bits; conditional E-value: 2.7e-61
+ globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+ Ls++e++ v+++W+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
+ sp|P86873|MYG_BISBI 3 LSDGEWQLVLNAWGKVEADVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
+ 9****************************************************************************.99********** PP
+
+ globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ e+Ha+k+k+++ky++++s+++++vl+a++p++f+ad+qaa+ K+l+l+++++a++Yk
+ sp|P86873|MYG_BISBI 92 ESHANKHKIPVKYLEFISDAIIHVLHAKHPSDFGADAQAAMSKALELFRNDMAAQYK 148
+ ********************************************************7 PP
+
>> sp|Q2MJN4|MYG_BOSMU Myoglobin OS=Bos mutus grunniens GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.3 2.3 2.6e-61 1.2e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.3 3.4 2.7e-61 1.3e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.3 bits; conditional E-value: 2.6e-61
+ == domain 1 score: 202.3 bits; conditional E-value: 2.7e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|Q2MJN4|MYG_BOSMU 3 LSDGEWQLVLNAWGKVEADVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
@@ -3273,10 +3323,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02057|HBB_RABIT Hemoglobin subunit beta-1/2 OS=Oryctolagus cuniculus GN=HBB1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.2 0.4 2.7e-61 1.2e-58 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 202.2 0.5 2.8e-61 1.3e-58 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 202.2 bits; conditional E-value: 2.7e-61
+ == domain 1 score: 202.2 bits; conditional E-value: 2.8e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek++v+a+W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs +++++++++vk+Hgkkvl A+s++l +ld +l++++++
sp|P02057|HBB_RABIT 2 VHLSSEEKSAVTALWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSANAVMNNPKVKAHGKKVLAAFSEGLSHLD-NLKGTFAK 88
@@ -3290,10 +3340,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02049|HBB_NYCCO Hemoglobin subunit beta OS=Nycticebus coucang GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.1 0.1 3e-61 1.4e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 202.1 0.1 3.1e-61 1.5e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.1 bits; conditional E-value: 3e-61
+ == domain 1 score: 202.1 bits; conditional E-value: 3.1e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+a+W+kv +v+++G+++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgkkvl A+sd+l++ld +l++++++
sp|P02049|HBB_NYCCO 1 VHLTGEEKSAVTALWGKV--NVDDVGGEALGRLLVVYPWTQRFFESFGDLSSPSAVMGNPKVKAHGKKVLSAFSDGLNHLD-NLKGTFAK 87
@@ -3307,10 +3357,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02163|MYG_ROUAE Myoglobin OS=Rousettus aegyptiacus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.1 0.2 3e-61 1.4e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.1 0.3 3.1e-61 1.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.1 bits; conditional E-value: 3e-61
+ == domain 1 score: 202.1 bits; conditional E-value: 3.1e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea+lk+L+
sp|P02163|MYG_ROUAE 3 LSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGQHEAQLKPLA 91
@@ -3324,10 +3374,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02207|GLB_LAMFL Globin OS=Lampetra fluviatilis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.0 0.1 3.1e-61 1.5e-58 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 202.0 0.2 3.2e-61 1.6e-58 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 202.0 bits; conditional E-value: 3.1e-61
+ == domain 1 score: 202.0 bits; conditional E-value: 3.2e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
+Ls+aektk++++Wa+v++++e+sG+diLv++f+stPa+qefF+kFk+++ +d+lkksadv++H++++++A++da+a++d ek+++kl+
sp|P02207|GLB_LAMFL 11 PLSAAEKTKIRSAWAPVYSNYETSGVDILVKFFTSTPAAQEFFPKFKGMTSADQLKKSADVRWHAERIINAVNDAVASMDdtEKMSMKLR 100
@@ -3341,10 +3391,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18986|HBB_CROCR Hemoglobin subunit beta OS=Crocuta crocuta GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.1 0.1 3e-61 1.4e-58 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 202.1 0.1 3.1e-61 1.5e-58 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.1 bits; conditional E-value: 3e-61
+ == domain 1 score: 202.1 bits; conditional E-value: 3.1e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek+ v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++ +vk+Hgkkvl+ +sd+l+++d +l++++++Ls
sp|P18986|HBB_CROCR 3 LTAEEKSLVNDLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMGNSKVKAHGKKVLNSFSDGLKHID-DLKGTFAKLS 89
@@ -3358,10 +3408,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P62734|MYG_HYLAG Myoglobin OS=Hylobates agilis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.0 0.3 3.2e-61 1.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.0 0.4 3.3e-61 1.6e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.0 bits; conditional E-value: 3.2e-61
+ == domain 1 score: 202.0 bits; conditional E-value: 3.3e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P62734|MYG_HYLAG 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3375,10 +3425,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P62735|MYG_HYLSY Myoglobin OS=Hylobates syndactylus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.0 0.3 3.2e-61 1.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 202.0 0.4 3.3e-61 1.6e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 202.0 bits; conditional E-value: 3.2e-61
+ == domain 1 score: 202.0 bits; conditional E-value: 3.3e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P62735|MYG_HYLSY 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3392,10 +3442,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18982|HBB_AILFU Hemoglobin subunit beta OS=Ailurus fulgens GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 202.0 0.1 3.3e-61 1.5e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 202.0 0.1 3.4e-61 1.6e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 202.0 bits; conditional E-value: 3.3e-61
+ == domain 1 score: 202.0 bits; conditional E-value: 3.4e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P18982|HBB_AILFU 1 VHLTGEEKAAVTGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSPDAVMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -3409,10 +3459,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02190|MYG_SHEEP Myoglobin OS=Ovis aries GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.9 1.8 3.4e-61 1.6e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 201.9 2.7 3.5e-61 1.7e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 201.9 bits; conditional E-value: 3.4e-61
+ == domain 1 score: 201.9 bits; conditional E-value: 3.5e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P02190|MYG_SHEEP 3 LSDGEWQLVLNAWGKVEADVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
@@ -3426,10 +3476,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67817|HBA_ATEGE Hemoglobin subunit alpha OS=Ateles geoffroyi GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.6 0.7 4.2e-61 2e-58 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 201.6 1.0 4.4e-61 2.1e-58 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.6 bits; conditional E-value: 4.2e-61
+ == domain 1 score: 201.6 bits; conditional E-value: 4.4e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P67817|HBA_ATEGE 2 VLSPADKSNVKAAWGKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 84
@@ -3440,30 +3490,30 @@ Domain annotation for each sequence (and alignments):
sp|P67817|HBA_ATEGE 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPADFTPAVHASLDKFLASVSTVLTSKYR 142
*********************************************************7 PP
->> sp|P02168|MYG_GALCR Myoglobin OS=Galago crassicaudatus GN=MB PE=1 SV=2
+>> sp|P02168|MYG_OTOCR Myoglobin OS=Otolemur crassicaudatus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.5 0.8 4.4e-61 2.1e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 201.5 1.1 4.6e-61 2.2e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 201.5 bits; conditional E-value: 4.4e-61
+ == domain 1 score: 201.5 bits; conditional E-value: 4.6e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kvead +++G+d+L+rlf+++P+t+e+F+kFk+L+t+de+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
- sp|P02168|MYG_GALCR 3 LSDGEWQLVLKIWGKVEADLAGHGQDVLIRLFTAHPETLEKFDKFKNLKTADEMKASEDLKKHGVTVLTALGGILKK-KGQHEAEIKPLA 91
+ sp|P02168|MYG_OTOCR 3 LSDGEWQLVLKIWGKVEADLAGHGQDVLIRLFTAHPETLEKFDKFKNLKTADEMKASEDLKKHGVTVLTALGGILKK-KGQHEAEIKPLA 91
9****************************************************************************.99********** PP
globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
++Ha+k+k+++ky++++se++++vl+++++++f++dvq+a+ K+l+l+++++a+kYk
- sp|P02168|MYG_GALCR 92 QSHATKHKIPVKYLEFISEAIIHVLQNKHSGDFGTDVQGAMSKALELFRNDIAAKYK 148
+ sp|P02168|MYG_OTOCR 92 QSHATKHKIPVKYLEFISEAIIHVLQNKHSGDFGTDVQGAMSKALELFRNDIAAKYK 148
********************************************************7 PP
>> sp|P09968|GLB3_PETMA Globin-3 OS=Petromyzon marinus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.4 0.1 4.7e-61 2.2e-58 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 201.4 0.1 4.8e-61 2.3e-58 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 201.4 bits; conditional E-value: 4.7e-61
+ == domain 1 score: 201.4 bits; conditional E-value: 4.8e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+Ls+aektk++++Wa+v++++e++G+diLv++f+stPa+qefF+kFk+L+t+d+lkksadv++H++++++A++da+ ++d ek+++kl
sp|P09968|GLB3_PETMA 11 PLSAAEKTKIRSAWAPVYSNYETTGVDILVKFFTSTPAAQEFFPKFKGLTTADQLKKSADVRWHAERIINAVNDAVVSMDdtEKMSMKL 99
@@ -3477,10 +3527,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02150|MYG_MACFA Myoglobin OS=Macaca fascicularis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.5 0.4 4.6e-61 2.1e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 201.5 0.5 4.7e-61 2.3e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 201.5 bits; conditional E-value: 4.6e-61
+ == domain 1 score: 201.5 bits; conditional E-value: 4.7e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P02150|MYG_MACFA 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGVTVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3494,10 +3544,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06635|HBA_PONPY Hemoglobin subunit alpha OS=Pongo pygmaeus GN=HBA1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.4 1.0 4.7e-61 2.2e-58 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 201.4 1.4 4.8e-61 2.3e-58 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.4 bits; conditional E-value: 4.7e-61
+ == domain 1 score: 201.4 bits; conditional E-value: 4.8e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++W+kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P06635|HBA_PONPY 2 VLSPADKTNVKTAWGKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKDHGKKVADALTNAVAHVD-DMPNALSAL 84
@@ -3511,10 +3561,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01928|HBA_CEBAP Hemoglobin subunit alpha OS=Cebus apella GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.4 0.6 5e-61 2.3e-58 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 201.4 0.9 5.1e-61 2.5e-58 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.4 bits; conditional E-value: 5e-61
+ == domain 1 score: 201.4 bits; conditional E-value: 5.1e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAls+a+a++d +++++l++L
sp|P01928|HBA_CEBAP 2 VLSPADKTNVKTAWGKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALSNAVAHVD-DMPNALSAL 84
@@ -3525,30 +3575,30 @@ Domain annotation for each sequence (and alignments):
sp|P01928|HBA_CEBAP 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPADFTPAVHASLDKFLASVSTVLTSKYR 142
*********************************************************7 PP
->> sp|P02050|HBB_GALCR Hemoglobin subunit beta-1/2 OS=Galago crassicaudatus GN=HBB PE=1 SV=1
+>> sp|P02050|HBB_OTOCR Hemoglobin subunit beta-1/2 OS=Otolemur crassicaudatus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.3 0.0 5.2e-61 2.4e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 201.3 0.0 5.4e-61 2.6e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.3 bits; conditional E-value: 5.2e-61
+ == domain 1 score: 201.3 bits; conditional E-value: 5.4e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v a+W+kv +vee+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl A+sd+l++ld +l +++++
- sp|P02050|HBB_GALCR 1 VHLTPDEKNAVCALWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVMGNPKVKAHGKKVLSAFSDGLQHLD-NLCGTFAK 87
+ sp|P02050|HBB_OTOCR 1 VHLTPDEKNAVCALWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVMGNPKVKAHGKKVLSAFSDGLQHLD-NLCGTFAK 87
69****************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+v+p++f+ll++vlv+vla++++k+ft++vqaa+eK++a va++la+kY+
- sp|P02050|HBB_GALCR 88 LSELHCDKLHVNPENFRLLGNVLVCVLAHHFGKDFTPEVQAAYEKVVAGVATALAHKYH 146
+ sp|P02050|HBB_OTOCR 88 LSELHCDKLHVNPENFRLLGNVLVCVLAHHFGKDFTPEVQAAYEKVVAGVATALAHKYH 146
**********************************************************7 PP
>> sp|P02047|HBD_SAISC Hemoglobin subunit delta OS=Saimiri sciureus GN=HBD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.2 0.1 5.7e-61 2.6e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 201.2 0.1 5.9e-61 2.9e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.2 bits; conditional E-value: 5.7e-61
+ == domain 1 score: 201.2 bits; conditional E-value: 5.9e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+ Ls +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02047|HBD_SAISC 1 VHLTGDEKSAVAALWSKV--NVDEVGGEALGRLLVVYPWTQRFFESFGALSSADAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -3559,13 +3609,13 @@ Domain annotation for each sequence (and alignments):
sp|P02047|HBD_SAISC 88 LSELHCDKLHVDPENFRLLGNVLVCVLARNFGKEFTPQVQAAFQKVVAGVATALAHKYH 146
**********************************************************7 PP
->> sp|P23020|HBB_PROCR Hemoglobin subunit beta OS=Proteles cristatus GN=HBB PE=1 SV=1
+>> sp|P23020|HBB_PROCR Hemoglobin subunit beta OS=Proteles cristata GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.1 0.1 5.8e-61 2.7e-58 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 201.1 0.1 6e-61 2.9e-58 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.1 bits; conditional E-value: 5.8e-61
+ == domain 1 score: 201.1 bits; conditional E-value: 6e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek+ v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++ +vk+Hgkkvl+ +sd+l+++d +l++++++Ls
sp|P23020|HBB_PROCR 3 LTAEEKSLVNDLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMGNGKVKAHGKKVLNSFSDGLKHID-DLKGTFAKLS 89
@@ -3579,10 +3629,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68015|HBD_SAGNI Hemoglobin subunit delta OS=Saguinus nigricollis GN=HBD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.1 0.0 6.1e-61 2.8e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 201.1 0.1 6.3e-61 3.1e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.1 bits; conditional E-value: 6.1e-61
+ == domain 1 score: 201.1 bits; conditional E-value: 6.3e-61
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+ Ls +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68015|HBD_SAGNI 1 VHLTGEEKSAVAALWSKV--NVDEVGGEALGRLLVVYPWTQRFFESFGALSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -3596,10 +3646,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67818|HBA_SAGOE Hemoglobin subunit alpha OS=Saguinus oedipus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 201.1 0.7 6.2e-61 2.9e-58 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 201.1 1.0 6.4e-61 3.1e-58 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 201.1 bits; conditional E-value: 6.2e-61
+ == domain 1 score: 201.1 bits; conditional E-value: 6.4e-61
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++l++L
sp|P67818|HBA_SAGOE 1 VLSPADKSNVKAAWGKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNALSAL 83
@@ -3613,10 +3663,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02164|MYG_ORYAF Myoglobin OS=Orycteropus afer GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.9 0.3 7e-61 3.2e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.9 0.4 7.2e-61 3.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.9 bits; conditional E-value: 7e-61
+ == domain 1 score: 200.9 bits; conditional E-value: 7.2e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+ae++ v++vW+kvead+ ++G+d+L+rlfk +P+t+e+F++Fk+L+tede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++++L+
sp|P02164|MYG_ORYAF 3 LSDAEWQLVLNVWGKVEADIPGHGQDVLIRLFKGHPETLEKFDRFKHLKTEDEMKASEDLKKHGTTVLTALGGILKK-KGQHEAEIQPLA 91
@@ -3630,10 +3680,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68084|MYG_PAPAN Myoglobin OS=Papio anubis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.8 0.4 7.6e-61 3.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.8 0.6 7.8e-61 3.8e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.8 bits; conditional E-value: 7.6e-61
+ == domain 1 score: 200.8 bits; conditional E-value: 7.8e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P68084|MYG_PAPAN 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3647,10 +3697,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68085|MYG_SEMEN Myoglobin OS=Semnopithecus entellus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.8 0.4 7.6e-61 3.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.8 0.6 7.8e-61 3.8e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.8 bits; conditional E-value: 7.6e-61
+ == domain 1 score: 200.8 bits; conditional E-value: 7.8e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P68085|MYG_SEMEN 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3664,10 +3714,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68086|MYG_ERYPA Myoglobin OS=Erythrocebus patas GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.8 0.4 7.6e-61 3.5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.8 0.6 7.8e-61 3.8e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.8 bits; conditional E-value: 7.6e-61
+ == domain 1 score: 200.8 bits; conditional E-value: 7.8e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P68086|MYG_ERYPA 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3681,10 +3731,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02191|MYG_CEREL Myoglobin OS=Cervus elaphus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.7 1.9 8.2e-61 3.8e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.7 2.7 8.4e-61 4.1e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.7 bits; conditional E-value: 8.2e-61
+ == domain 1 score: 200.7 bits; conditional E-value: 8.4e-61
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P02191|MYG_CEREL 3 LSDGEWQLVLNAWGKVEADVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
@@ -3698,10 +3748,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02171|MYG_OCHPR Myoglobin OS=Ochotona princeps GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.4 0.2 1e-60 4.6e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.4 0.3 1e-60 5e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.4 bits; conditional E-value: 1e-60
+ == domain 1 score: 200.4 bits; conditional E-value: 1e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl Al+ +l+k ++++ea+lk+L+
sp|P02171|MYG_OCHPR 3 LSDGEWQLVLNVWGKVEADLAGHGQEVLIRLFKNHPETLEKFDKFKNLKSEDEMKGSDDLKKHGNTVLSALGGILKK-KGQHEAELKPLA 91
@@ -3712,13 +3762,30 @@ Domain annotation for each sequence (and alignments):
sp|P02171|MYG_OCHPR 92 QSHATKHKIPVKYLEFISEAIIQVLQSKHPGDFGADAQGAMSKALELFRNDMAAKYK 148
********************************************************7 PP
+>> sp|B7U9B5|MYG_CAPHI Myoglobin OS=Capra hircus GN=MB PE=1 SV=3
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 200.3 2.2 1.1e-60 5.1e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 200.3 bits; conditional E-value: 1.1e-60
+ globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+ Ls++e+t v+++W+kveadv+++G+++L+rlf+ +P+t+e+F+kFk+L+t +e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
+ sp|B7U9B5|MYG_CAPHI 3 LSDGEWTLVLNAWGKVEADVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTGAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
+ 9****************************************************************************.99********** PP
+
+ globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ e+Ha+k+k+++ky++++s+++++vl+a++p++f+ad+q+a+ K+l+l+++++a++Yk
+ sp|B7U9B5|MYG_CAPHI 92 ESHANKHKIPVKYLEFISDAIIHVLHAKHPSDFGADAQGAMSKALELFRNDMAAQYK 148
+ ********************************************************7 PP
+
>> sp|Q6PL31|MYG_OCHCU Myoglobin OS=Ochotona curzoniae GN=MB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.3 0.3 1e-60 4.9e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 200.3 0.4 1.1e-60 5.3e-58 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 200.3 bits; conditional E-value: 1e-60
+ == domain 1 score: 200.3 bits; conditional E-value: 1.1e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl Al+ +l+k ++++ea+lk+L+
sp|Q6PL31|MYG_OCHCU 3 LSDGEWQLVLTVWGKVEADLAGHGQEVLIRLFKNHPETLEKFDKFKNLKSEDEMKGSDDLKKHGNTVLSALGGILKK-KGQHEAELKPLA 91
@@ -3732,10 +3799,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68014|HBD_SAGMY Hemoglobin subunit delta OS=Saguinus mystax GN=HBD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.3 0.0 1.1e-60 5e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 200.3 0.1 1.1e-60 5.4e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 200.3 bits; conditional E-value: 1.1e-60
+ == domain 1 score: 200.3 bits; conditional E-value: 1.1e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v a+W+kv +v+e+G+++L rl++++P+tq+fFe+F+ Ls +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P68014|HBD_SAGMY 1 VHLTGDEKSAVAALWSKV--NVDEVGGEALGRLLVVYPWTQRFFESFGALSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -3749,10 +3816,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18990|HBB_TURTR Hemoglobin subunit beta OS=Tursiops truncatus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.2 0.1 1.1e-60 5.2e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 200.2 0.2 1.2e-60 5.6e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 200.2 bits; conditional E-value: 1.1e-60
+ == domain 1 score: 200.2 bits; conditional E-value: 1.2e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+a+W+kv +vee+G+++L rl++++P+tq+fFe+F+dLst+d+++k+++vkkHg+kvl ++++l++ld +l++++++
sp|P18990|HBB_TURTR 1 VHLTGEEKSAVTALWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSTADAVMKNPNVKKHGQKVLASFGEGLKHLD-DLKGTFAA 87
@@ -3766,10 +3833,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02048|HBB_LORTA Hemoglobin subunit beta OS=Loris tardigradus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 200.1 0.1 1.2e-60 5.6e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 200.1 0.1 1.3e-60 6.1e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 200.1 bits; conditional E-value: 1.2e-60
+ == domain 1 score: 200.1 bits; conditional E-value: 1.3e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v+ +W+kv +ve++G+++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgkkvl A+sd+l++ld +l++++++
sp|P02048|HBB_LORTA 1 VHLTGEEKSAVTGLWGKV--NVEDVGGEALGRLLVVYPWTQRFFESFGDLSSPSAVMGNPKVKAHGKKVLSAFSDGLNHLD-NLKGTFAK 87
@@ -3783,10 +3850,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P24660|HBB_MACGG Hemoglobin subunit beta OS=Macroderma gigas GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.8 0.0 1.5e-60 7e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 199.8 0.0 1.6e-60 7.6e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 199.8 bits; conditional E-value: 1.5e-60
+ == domain 1 score: 199.8 bits; conditional E-value: 1.6e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek +v+ +W+kv +vee+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P24660|HBB_MACGG 1 VHLTGEEKAAVTGLWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVMGNPKVKAHGKKVLNSFSDGLKNLD-NLKGTFAK 87
@@ -3797,13 +3864,30 @@ Domain annotation for each sequence (and alignments):
sp|P24660|HBB_MACGG 88 LSELHCDKLHVDPENFRLLGNVLVCVLARHFGKEFTPQVQAAYQKVVAGVATALAHKYH 146
**********************************************************7 PP
+>> sp|D0VX08|HBB_PTEGI Hemoglobin subunit beta OS=Pteropus giganteus GN=HBB PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 199.6 0.1 1.8e-60 8.7e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 199.6 bits; conditional E-value: 1.8e-60
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+Ls +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvld +s++l++ld +l++++++
+ sp|D0VX08|HBB_PTEGI 1 VHLSGEEKAAVTGLWGKV--KVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNPKVKAHGKKVLDSFSEGLQHLD-NLKGTFAK 87
+ 69****************..9************************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++f+ll++vlv+vla +++keft++vqaa++K++a va++la+kY+
+ sp|D0VX08|HBB_PTEGI 88 LSELHCDKLHVDPENFRLLGNVLVCVLARHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
+ **********************************************************7 PP
+
>> sp|P14391|HBB_PTEAL Hemoglobin subunit beta OS=Pteropus alecto GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.6 0.1 1.7e-60 8e-58 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 199.6 0.1 1.8e-60 8.7e-58 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 199.6 bits; conditional E-value: 1.7e-60
+ == domain 1 score: 199.6 bits; conditional E-value: 1.8e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvld +s++l++ld +l++++++
sp|P14391|HBB_PTEAL 1 VHLSGEEKAAVTGLWGKV--KVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNPKVKAHGKKVLDSFSEGLQHLD-NLKGTFAK 87
@@ -3817,10 +3901,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04250|MYG_LAGMA Myoglobin OS=Lagostomus maximus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.3 0.2 2.1e-60 9.7e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 199.3 0.3 2.2e-60 1.1e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 199.3 bits; conditional E-value: 2.1e-60
+ == domain 1 score: 199.3 bits; conditional E-value: 2.2e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+L++ede+++s+d+kkHg +vl+Al+ +l+k +++ a+l++L+
sp|P04250|MYG_LAGMA 3 LSDGEWQLVLNVWGKVEADLGGHGQEVLIRLFKGHPETLEKFDKFKHLKAEDEMRASEDLKKHGTTVLTALGGILKK-RGQHAAELAPLA 91
@@ -3834,10 +3918,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02148|MYG_PONPY Myoglobin OS=Pongo pygmaeus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.3 0.3 2.1e-60 9.8e-58 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 199.3 0.5 2.2e-60 1.1e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 199.3 bits; conditional E-value: 2.1e-60
+ == domain 1 score: 199.3 bits; conditional E-value: 2.2e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea++k+L+
sp|P02148|MYG_PONPY 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGGILKK-KGHHEAEIKPLA 91
@@ -3851,10 +3935,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P28781|HBB_TAPGE Hemoglobin subunit beta OS=Taphozous georgianus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.2 0.1 2.3e-60 1.1e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 199.2 0.1 2.4e-60 1.2e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 199.2 bits; conditional E-value: 2.3e-60
+ == domain 1 score: 199.2 bits; conditional E-value: 2.4e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs++ +++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P28781|HBB_TAPGE 1 VHLTADEKAAVTGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSAASAVMGNPKVKAHGKKVLNSFSDGLKNLD-NLKGTYAK 87
@@ -3865,13 +3949,30 @@ Domain annotation for each sequence (and alignments):
sp|P28781|HBB_TAPGE 88 LSELHCDKLHVDPENFRLLGNVLVCVLARHFGKEFTPQVQAAYQKVVSGVATALAHKYH 146
**********************************************************7 PP
+>> sp|B3EWE2|HBB_BLABR Hemoglobin subunit beta OS=Blarina brevicauda PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 199.1 0.1 2.6e-60 1.3e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 199.1 bits; conditional E-value: 2.6e-60
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L+++ek+ v+ +W+kv +vee G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl+ ++d+la+ld +l++++++
+ sp|B3EWE2|HBB_BLABR 1 VHLTAEEKSLVTGLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNPKVKAHGKKVLQSMGDGLANLD-NLKGTFAK 87
+ 69****************..*************************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++f+ll++vlv+vla +++keft++vqaa++K++a va++la+kYk
+ sp|B3EWE2|HBB_BLABR 88 LSELHCDKLHVDPENFRLLGNVLVVVLARHFGKEFTPPVQAAFQKVVAGVATALAHKYK 146
+ **********************************************************7 PP
+
>> sp|P02058|HBB_ROUAE Hemoglobin subunit beta OS=Rousettus aegyptiacus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.0 0.2 2.6e-60 1.2e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 199.0 0.3 2.7e-60 1.3e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 199.0 bits; conditional E-value: 2.6e-60
+ == domain 1 score: 199.0 bits; conditional E-value: 2.7e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek +v+a+W+kv +vee+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvld +s++l++ld l++++++
sp|P02058|HBB_ROUAE 1 VHLSGEEKAAVTALWGKV--KVEEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMSNPKVKAHGKKVLDSFSEGLQHLD-SLKGTFAK 87
@@ -3882,13 +3983,13 @@ Domain annotation for each sequence (and alignments):
sp|P02058|HBB_ROUAE 88 LSELHCDKLHVDPENFRLLGNVLVCVLARHFGKEFTPQVQAAYQKVVAGVATALAHKYH 146
**********************************************************7 PP
->> sp|P04248|MYG_SPAEH Myoglobin OS=Spalax leucodon ehrenbergi GN=MB PE=1 SV=2
+>> sp|P04248|MYG_SPAEH Myoglobin OS=Spalax ehrenbergi GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 199.0 0.2 2.7e-60 1.2e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 199.0 0.3 2.8e-60 1.3e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 199.0 bits; conditional E-value: 2.7e-60
+ == domain 1 score: 199.0 bits; conditional E-value: 2.8e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kve d +++G+++L++lfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl+Al+ +l+k ++++ a++++L+
sp|P04248|MYG_SPAEH 3 LSDGEWQLVLNVWGKVEGDLAGHGQEVLIKLFKNHPETLEKFDKFKHLKSEDEMKGSEDLKKHGNTVLTALGGILKK-KGQHAAEIQPLA 91
@@ -3902,10 +4003,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84997|MYG_BUBBU Myoglobin OS=Bubalus bubalis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.8 2.1 3.1e-60 1.4e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 198.8 3.0 3.2e-60 1.6e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 198.8 bits; conditional E-value: 3.1e-60
+ == domain 1 score: 198.8 bits; conditional E-value: 3.2e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+dv+++G+++L+rlf+ +P+t+e+F+kFk+L+te+e+k+s+d+kkHg++vl+Al+ +l+k ++++ea++k+L+
sp|P84997|MYG_BUBBU 3 LSDGEWQLVLNAWGKVETDVAGHGQEVLIRLFTGHPETLEKFDKFKHLKTEAEMKASEDLKKHGNTVLTALGGILKK-KGHHEAEVKHLA 91
@@ -3919,10 +4020,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01924|HBA_SEMEN Hemoglobin subunit alpha OS=Semnopithecus entellus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.7 0.5 3.2e-60 1.5e-57 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 198.7 0.7 3.3e-60 1.6e-57 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.7 bits; conditional E-value: 3.2e-60
+ == domain 1 score: 198.7 bits; conditional E-value: 3.3e-60
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ + +e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++ +l++L
sp|P01924|HBA_SEMEN 1 VLSPADKTNVKAAWGKVGGHGGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPHALSAL 83
@@ -3936,10 +4037,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TS34|HBA2_HYLLA Hemoglobin subunit alpha-2 OS=Hylobates lar GN=HBA2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.7 1.0 3.3e-60 1.5e-57 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 198.7 1.5 3.4e-60 1.7e-57 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.7 bits; conditional E-value: 3.3e-60
+ == domain 1 score: 198.7 bits; conditional E-value: 3.4e-60
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vk++W+kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a++d +++++ +
sp|Q9TS34|HBA2_HYLLA 2 VLSPADKTNVKTAWGKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHVD-DMPNAQTA 83
@@ -3953,10 +4054,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14392|HBB_PTEPO Hemoglobin subunit beta OS=Pteropus poliocephalus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.5 0.0 3.7e-60 1.7e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 198.5 0.1 3.8e-60 1.8e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.5 bits; conditional E-value: 3.7e-60
+ == domain 1 score: 198.5 bits; conditional E-value: 3.8e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvld +s++l++ld +l++++++
sp|P14392|HBB_PTEPO 1 VHLSGEEKAAVTGLWGKV--KVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSAPAVMGNPKVKAHGKKVLDSFSEGLQHLD-NLKGTFAK 87
@@ -3967,13 +4068,30 @@ Domain annotation for each sequence (and alignments):
sp|P14392|HBB_PTEPO 88 LSELHCDKLHVDPENFRLLGNVLVCVLARHFGKEFTPQVQAAYQKVVAGVANALAHKYH 146
**********************************************************7 PP
+>> sp|B3EWD0|HBB_SPEBE Hemoglobin subunit beta OS=Spermophilus beecheyi PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 198.4 0.3 4.3e-60 2.1e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 198.4 bits; conditional E-value: 4.3e-60
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L+++ek+++ ++W+kv +++e+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvld +s++l++ld +l++++++
+ sp|B3EWD0|HBB_SPEBE 1 VHLTDGEKNALSTAWGKV--NADEVGGEALGRLLVVYPWTQRFFDSFGDLSSATAVMGNPKVKAHGKKVLDSFSNGLKHLD-NLKGTFAS 87
+ 69****************..999**********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++f+ll++vlv+vla++l+keft++vqaa++K++a va++la+kY+
+ sp|B3EWD0|HBB_SPEBE 88 LSELHCDKLHVDPENFRLLGNVLVVVLAHHLGKEFTPQVQAAFQKVVAGVANALAHKYH 146
+ **********************************************************7 PP
+
>> sp|P02157|MYG_MELME Myoglobin OS=Meles meles GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.2 0.6 4.5e-60 2.1e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 198.2 0.9 4.7e-60 2.3e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 198.2 bits; conditional E-value: 4.5e-60
+ == domain 1 score: 198.2 bits; conditional E-value: 4.7e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg++vl+Al+ +l+k +++ ea+lk+L+
sp|P02157|MYG_MELME 3 LSDGEWQLVLNVWGKVEADLAGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKGSEDLKKHGNTVLTALGGILKK-KGHQEAELKPLA 91
@@ -3987,10 +4105,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02046|HBD_AOTTR Hemoglobin subunit delta OS=Aotus trivirgatus GN=HBD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.2 0.0 4.6e-60 2.1e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 198.2 0.0 4.7e-60 2.3e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.2 bits; conditional E-value: 4.6e-60
+ == domain 1 score: 198.2 bits; conditional E-value: 4.7e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v a+W+kv +vee+G+++L rl++++P+tq+fFe+F+ Ls +d+++++++vk+Hgkkvl+A+sd+la+ld +l++++++
sp|P02046|HBD_AOTTR 1 VHLTGDEKSAVAALWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGALSSPDAVMGNPKVKAHGKKVLGAFSDGLAHLD-NLKGTFAQ 87
@@ -4004,10 +4122,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19646|HBB_PAGLA Hemoglobin subunit beta OS=Paguma larvata GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.1 0.1 4.9e-60 2.3e-57 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 198.1 0.2 5.1e-60 2.5e-57 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.1 bits; conditional E-value: 4.9e-60
+ == domain 1 score: 198.1 bits; conditional E-value: 5.1e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++ + +vk+Hgkkvl+ +sd+l+++d +l++++++Ls
sp|P19646|HBB_PAGLA 3 LTAEEKGLVNGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMHNSKVKAHGKKVLNSFSDGLKHVD-DLKGTFAKLS 89
@@ -4021,10 +4139,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09421|HBB_SPECI Hemoglobin subunit beta OS=Spermophilus citellus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.1 0.8 5.2e-60 2.4e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 198.1 1.1 5.3e-60 2.6e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.1 bits; conditional E-value: 5.2e-60
+ == domain 1 score: 198.1 bits; conditional E-value: 5.3e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls++ek+++ ++W+kv +++e+Ga++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkv+d +s++l++ld +l++++++
sp|P09421|HBB_SPECI 1 VHLSDGEKNAISTAWGKV--HAAEVGAEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNAKVKAHGKKVIDSFSNGLKHLD-NLKGTFAS 87
@@ -4035,30 +4153,30 @@ Domain annotation for each sequence (and alignments):
sp|P09421|HBB_SPECI 88 LSELHCDKLHVDPENFKLLGNMIVIVMAHHLGKDFTPEAQAAFQKVVAGVANALAHKYH 146
**********************************************************7 PP
->> sp|P09905|HBB_PHYCA Hemoglobin subunit beta-1/2 OS=Physeter catodon GN=HBB PE=1 SV=1
+>> sp|P09905|HBB_PHYMC Hemoglobin subunit beta-1/2 OS=Physeter macrocephalus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 198.0 0.2 5.3e-60 2.4e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 198.0 0.2 5.5e-60 2.7e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 198.0 bits; conditional E-value: 5.3e-60
+ == domain 1 score: 198.0 bits; conditional E-value: 5.5e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek+ ++a+Wakv +vee G+++L rl++++P+tq+fFe+F+dLst+d+++k+++vkkHg+kvl ++++l++ld +l++++++
- sp|P09905|HBB_PHYCA 1 VHLTGEEKSGLTALWAKV--NVEEIGGEALGRLLVVYPWTQRFFEHFGDLSTADAVMKNPKVKKHGQKVLASFGEGLKHLD-NLKGTFAT 87
+ sp|P09905|HBB_PHYMC 1 VHLTGEEKSGLTALWAKV--NVEEIGGEALGRLLVVYPWTQRFFEHFGDLSTADAVMKNPKVKKHGQKVLASFGEGLKHLD-NLKGTFAT 87
689***************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++f+ll++vlv+vla +++keft++ q+a++K++a va++la+kY+
- sp|P09905|HBB_PHYCA 88 LSELHCDKLHVDPENFRLLGNVLVVVLARHFGKEFTPELQTAYQKVVAGVANALAHKYH 146
+ sp|P09905|HBB_PHYMC 88 LSELHCDKLHVDPENFRLLGNVLVVVLARHFGKEFTPELQTAYQKVVAGVANALAHKYH 146
**********************************************************7 PP
>> sp|P11754|HBB_CYNSP Hemoglobin subunit beta OS=Cynopterus sphinx GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.8 0.2 6.2e-60 2.9e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 197.8 0.3 6.4e-60 3.1e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 197.8 bits; conditional E-value: 6.2e-60
+ == domain 1 score: 197.8 bits; conditional E-value: 6.4e-60
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek++v+++W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkvld +s++l++ld l++++++
sp|P11754|HBB_CYNSP 1 VHLSGEEKSAVTSLWGKV--KVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNAKVKAHGKKVLDSFSEGLQHLD-SLKGTFAK 87
@@ -4072,10 +4190,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02073|HBB_ALCAA Hemoglobin subunit beta OS=Alces alces alces GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.7 0.4 6.6e-60 3e-57 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 197.7 0.6 6.8e-60 3.3e-57 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 197.7 bits; conditional E-value: 6.6e-60
+ == domain 1 score: 197.7 bits; conditional E-value: 6.8e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++ +a+vk+Hgk+vldA+s++l++ld +l++++++Ls
sp|P02073|HBB_ALCAA 2 LTAEEKAAVTAFWGKV--KVDEVGGEALGRLLVVYPWTQRFFEHFGDLSTADAVMHNAKVKEHGKRVLDAFSEGLKHLD-DLKGAFAKLS 88
@@ -4089,10 +4207,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M3B6|HBA_SAGMY Hemoglobin subunit alpha OS=Saguinus mystax GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.7 0.5 6.8e-60 3.2e-57 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 197.7 0.7 7e-60 3.4e-57 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 197.7 bits; conditional E-value: 6.8e-60
+ == domain 1 score: 197.7 bits; conditional E-value: 7e-60
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a +d +++++l++L
sp|Q7M3B6|HBA_SAGMY 1 VLSPADKSNVKAAWGKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVALVD-DMPNALSAL 83
@@ -4103,30 +4221,30 @@ Domain annotation for each sequence (and alignments):
sp|Q7M3B6|HBA_SAGMY 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPADFTPAVHASLDKFLASVSTVLTSKYR 141
*********************************************************7 PP
->> sp|P02193|MYG_DIDMA Myoglobin OS=Didelphis marsupialis virginiana GN=MB PE=1 SV=2
+>> sp|P02193|MYG_DIDVI Myoglobin OS=Didelphis virginiana GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.7 0.4 6.9e-60 3.2e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 197.7 0.5 7.1e-60 3.5e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 197.7 bits; conditional E-value: 6.9e-60
+ == domain 1 score: 197.7 bits; conditional E-value: 7.1e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kvead+ ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+++l+k ++++ea+lk+L+
- sp|P02193|MYG_DIDMA 3 LSDGEWQLVLNAWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGNILKK-KGNHEAELKPLA 91
+ sp|P02193|MYG_DIDVI 3 LSDGEWQLVLNAWGKVEADIPGHGQEVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGATVLTALGNILKK-KGNHEAELKPLA 91
9****************************************************************************.99********** PP
globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
++Ha+k+k+ +++++++se++++v+++++p++f+ d+qaa+ K+l+l+++++a+kYk
- sp|P02193|MYG_DIDMA 92 QSHATKHKISVQFLEFISEAIIQVIQSKHPGDFGGDAQAAMGKALELFRNDMAAKYK 148
+ sp|P02193|MYG_DIDVI 92 QSHATKHKISVQFLEFISEAIIQVIQSKHPGDFGGDAQAAMGKALELFRNDMAAKYK 148
********************************************************7 PP
>> sp|P02160|MYG_VULCH Myoglobin OS=Vulpes chama GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.6 1.2 7.3e-60 3.4e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 197.6 1.8 7.5e-60 3.6e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 197.6 bits; conditional E-value: 7.3e-60
+ == domain 1 score: 197.6 bits; conditional E-value: 7.5e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+d +++G+++L+rlfk +P+t+++F+kFk+L+tede+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02160|MYG_VULCH 3 LSDGEWQLVLNIWGKVETDLAGHGQEVLIRLFKNHPETLDKFDKFKHLKTEDEMKGSEDLKKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4140,10 +4258,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02151|MYG_AOTTR Myoglobin OS=Aotus trivirgatus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.6 1.2 7.4e-60 3.4e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 197.6 1.8 7.6e-60 3.7e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 197.6 bits; conditional E-value: 7.4e-60
+ == domain 1 score: 197.6 bits; conditional E-value: 7.6e-60
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kveadv +G+++L+ lfk +P+t+e+F+kFk+L+ ede+k+s+++kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02151|MYG_AOTTR 3 LSDGEWQLVLNVWGKVEADVPSHGQEVLISLFKGHPETLEKFDKFKHLKSEDEMKASEELKKHGVTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4157,10 +4275,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02084|HBB_ELEMA Hemoglobin subunit beta OS=Elephas maximus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.3 0.3 9.2e-60 4.2e-57 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 197.3 0.4 9.5e-60 4.6e-57 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 197.3 bits; conditional E-value: 9.2e-60
+ == domain 1 score: 197.3 bits; conditional E-value: 9.5e-60
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++aekt+v+++W+kv +v+e G+++L rl++++P+t++fFe+F+dLst+d++ +a+v +Hg+kvl+ ++++l++ld +l+++++dL
sp|P02084|HBB_ELEMA 2 NLTAAEKTQVTNLWGKV--NVKELGGEALSRLLVVYPWTRRFFEHFGDLSTADAVLHNAKVLAHGEKVLTSFGEGLKHLD-NLKGTFADL 88
@@ -4174,10 +4292,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XI9|HBD_ELEMA Hemoglobin subunit delta OS=Elephas maximus GN=HBD PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.2 0.3 9.4e-60 4.4e-57 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 197.2 0.4 9.7e-60 4.7e-57 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 197.2 bits; conditional E-value: 9.4e-60
+ == domain 1 score: 197.2 bits; conditional E-value: 9.7e-60
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++aekt+v+++W+kv +v+e G+++L rl++++P+t++fFe+F+dLst+d++ +a+v +Hg+kvl+ ++++l++ld +l+++++dL
sp|Q45XI9|HBD_ELEMA 3 NLTAAEKTQVTNLWGKV--NVKELGGEALSRLLVVYPWTRRFFEHFGDLSTADAVLHNAKVLAHGEKVLTSFGEGLKHLD-NLKGTFADL 89
@@ -4188,13 +4306,13 @@ Domain annotation for each sequence (and alignments):
sp|Q45XI9|HBD_ELEMA 90 SELHCDKLHVDPENFRLLGNVLVIVLARHFGKEFTPDVQAAYEKVVAGVANALAHKYH 147
*********************************************************7 PP
->> sp|P02090|HBB_SPAEH Hemoglobin subunit beta OS=Spalax leucodon ehrenbergi GN=HBB PE=1 SV=1
+>> sp|P02090|HBB_SPAEH Hemoglobin subunit beta OS=Spalax ehrenbergi GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.2 0.3 9.7e-60 4.5e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 197.2 0.5 1e-59 4.9e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 197.2 bits; conditional E-value: 9.7e-60
+ == domain 1 score: 197.2 bits; conditional E-value: 1e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek +v +W+kv +v+e G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P02090|HBB_SPAEH 1 VHLTDAEKAAVSGLWSKV--NVDEIGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVMSNPKVKAHGKKVLNSFSEGLKHLD-NLKGTFSS 87
@@ -4208,10 +4326,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02156|MYG_ERIEU Myoglobin OS=Erinaceus europaeus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 197.0 0.5 1.1e-59 5.2e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 197.0 0.7 1.2e-59 5.7e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 197.0 bits; conditional E-value: 1.1e-59
+ == domain 1 score: 197.0 bits; conditional E-value: 1.2e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ ++G+++L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+ +l+k ++++ea+l++L+
sp|P02156|MYG_ERIEU 3 LSDGEWQLVLNVWGKVEADIPGHGQEVLIRLFKDHPETLEKFDKFKHLKSEDEMKSSEDLKKHGTTVLTALGGILKK-KGQHEAQLAPLA 91
@@ -4225,10 +4343,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02059|HBB_ERIEU Hemoglobin subunit beta OS=Erinaceus europaeus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.9 0.0 1.2e-59 5.5e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 196.9 0.1 1.2e-59 6e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.9 bits; conditional E-value: 1.2e-59
+ == domain 1 score: 196.9 bits; conditional E-value: 1.2e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek v+ +W+kv +vee G+++L rl++++P+tq+fF++F+dLs +d+++++++vk+Hg kvl+ ++d++++ld +l++++++
sp|P02059|HBB_ERIEU 1 VHLTAEEKALVTGLWGKV--KVEEFGGEALGRLLVVYPWTQRFFDSFGDLSSADAVMGNPKVKAHGAKVLQSMGDGIKNLD-NLKGTFSK 87
@@ -4242,10 +4360,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63113|MYG_CANFA Myoglobin OS=Canis familiaris GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.8 1.2 1.2e-59 5.7e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 196.8 1.7 1.3e-59 6.1e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 196.8 bits; conditional E-value: 1.2e-59
+ == domain 1 score: 196.8 bits; conditional E-value: 1.3e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+d +++G+++L+rlfk +P+t+++F+kFk+L+tede+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P63113|MYG_CANFA 3 LSDGEWQIVLNIWGKVETDLAGHGQEVLIRLFKNHPETLDKFDKFKHLKTEDEMKGSEDLKKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4259,10 +4377,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63114|MYG_OTOME Myoglobin OS=Otocyon megalotis GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.8 1.2 1.2e-59 5.7e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 196.8 1.7 1.3e-59 6.1e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 196.8 bits; conditional E-value: 1.2e-59
+ == domain 1 score: 196.8 bits; conditional E-value: 1.3e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+d +++G+++L+rlfk +P+t+++F+kFk+L+tede+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P63114|MYG_OTOME 3 LSDGEWQIVLNIWGKVETDLAGHGQEVLIRLFKNHPETLDKFDKFKHLKTEDEMKGSEDLKKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4276,10 +4394,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01929|HBA_SAGFU Hemoglobin subunit alpha OS=Saguinus fuscicollis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.8 0.6 1.2e-59 5.7e-57 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 196.8 0.8 1.3e-59 6.2e-57 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.8 bits; conditional E-value: 1.2e-59
+ == domain 1 score: 196.8 bits; conditional E-value: 1.3e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+a++d +++++l++L
sp|P01929|HBA_SAGFU 1 VLSPADKSNVKAAWGKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTVAVAHVD-DMPNALSAL 83
@@ -4293,10 +4411,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02067|HBB_PIG Hemoglobin subunit beta OS=Sus scrofa GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.8 0.1 1.3e-59 5.9e-57 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 196.8 0.1 1.3e-59 6.4e-57 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 196.8 bits; conditional E-value: 1.3e-59
+ == domain 1 score: 196.8 bits; conditional E-value: 1.3e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
v+Ls++ek++v+ +W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+ +sd+l++ld +l++++++Ls
sp|P02067|HBB_PIG 2 VHLSAEEKEAVLGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSNADAVMGNPKVKAHGKKVLQSFSDGLKHLD-NLKGTFAKLS 90
@@ -4310,10 +4428,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01937|HBA_NYCCO Hemoglobin subunit alpha OS=Nycticebus coucang GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.7 1.1 1.4e-59 6.4e-57 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 196.7 1.6 1.4e-59 6.9e-57 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.7 bits; conditional E-value: 1.4e-59
+ == domain 1 score: 196.7 bits; conditional E-value: 1.4e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+++++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl++a+ ++d +++++l++L
sp|P01937|HBA_NYCCO 1 VLSPADKTNVKAAWEKVGSHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTNAVSHVD-DMPSALSAL 83
@@ -4327,10 +4445,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02152|MYG_CALJA Myoglobin OS=Callithrix jacchus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.7 1.1 1.4e-59 6.5e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 196.7 1.6 1.4e-59 7e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 196.7 bits; conditional E-value: 1.4e-59
+ == domain 1 score: 196.7 bits; conditional E-value: 1.4e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+ lfk +P+t+e+F+kFk+L+ ede+k+s+++kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02152|MYG_CALJA 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLKSEDEMKASEELKKHGVTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4341,30 +4459,47 @@ Domain annotation for each sequence (and alignments):
sp|P02152|MYG_CALJA 92 QSHATKHKIPVKYLEFISDAIVHVLQKKHPGDFGADAQGAMKKALELFRNDMAAKYK 148
********************************************************7 PP
->> sp|P21667|HBB_LEMVA Hemoglobin subunit beta OS=Lemur variegatus GN=HBB PE=1 SV=1
+>> sp|P21667|HBB_VARVI Hemoglobin subunit beta OS=Varecia variegata GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.6 0.1 1.4e-59 6.7e-57 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 196.6 0.1 1.5e-59 7.2e-57 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.6 bits; conditional E-value: 1.4e-59
+ == domain 1 score: 196.6 bits; conditional E-value: 1.5e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++e ++v+++W+kv +ve++G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl+A+s++l +ld +l++++++Ls
- sp|P21667|HBB_LEMVA 3 LTPEENNHVTSLWGKV--NVEKVGGEALGRLLVVYPWTQRFFESFGDLSSPDAIMGNPKVKAHGKKVLTAFSEGLHHLD-NLKGTFAQLS 89
+ sp|P21667|HBB_VARVI 3 LTPEENNHVTSLWGKV--NVEKVGGEALGRLLVVYPWTQRFFESFGDLSSPDAIMGNPKVKAHGKKVLTAFSEGLHHLD-NLKGTFAQLS 89
99**************..*************************************************************.********** PP
globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
elH++kl+vdp++fkll++vlv vla++++++f+++ qaa++K++ va++la+kY+
- sp|P21667|HBB_LEMVA 90 ELHCDKLHVDPQNFKLLGNVLVIVLAHHFGNDFSPQTQAAFQKVVTGVANALAHKYH 146
+ sp|P21667|HBB_VARVI 90 ELHCDKLHVDPQNFKLLGNVLVIVLAHHFGNDFSPQTQAAFQKVVTGVANALAHKYH 146
********************************************************7 PP
+>> sp|B3EWC8|HBB_TAMMR Hemoglobin subunit beta OS=Tamias merriami PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 196.6 0.8 1.5e-59 7.4e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 196.6 bits; conditional E-value: 1.5e-59
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L+++ek++v a+W+kv + +e+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkv d +s++l++ld +l++++++
+ sp|B3EWC8|HBB_TAMMR 1 VHLTAEEKSAVAALWGKV--NTDEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMSNPKVKAHGKKVFDSFSNGLKHLD-NLKGTFAS 87
+ 69****************..99***********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++fkll++vlv+vla++l+keft++vq+a++K++ va++la+kY+
+ sp|B3EWC8|HBB_TAMMR 88 LSELHCDKLHVDPENFKLLGNVLVVVLAHHLGKEFTPQVQSAFQKVVTGVANALAHKYH 146
+ **********************************************************7 PP
+
>> sp|P07412|HBB_FELCA Hemoglobin subunit beta-A/B OS=Felis catus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.5 0.1 1.6e-59 7.4e-57 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 196.5 0.1 1.6e-59 8e-57 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.5 bits; conditional E-value: 1.6e-59
+ == domain 1 score: 196.5 bits; conditional E-value: 1.6e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++Ls
sp|P07412|HBB_FELCA 3 LTAEEKGLVNGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFESFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKLS 89
@@ -4378,10 +4513,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08853|HBB_MARMA Hemoglobin subunit beta OS=Marmota marmota marmota GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.4 0.5 1.7e-59 7.8e-57 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 196.4 0.7 1.7e-59 8.4e-57 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.4 bits; conditional E-value: 1.7e-59
+ == domain 1 score: 196.4 bits; conditional E-value: 1.7e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls++ek+++ ++W+kv ++++ Ga++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkv+d +s++l++ld +l++++++
sp|P08853|HBB_MARMA 1 VHLSDGEKNAISTAWGKV--NAADIGAEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNAKVKAHGKKVIDSFSNGLKHLD-NLKGTFAS 87
@@ -4395,10 +4530,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02196|MYG_ORNAN Myoglobin OS=Ornithorhynchus anatinus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.2 0.8 1.9e-59 8.8e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 196.2 1.1 2e-59 9.6e-57 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 196.2 bits; conditional E-value: 1.9e-59
+ == domain 1 score: 196.2 bits; conditional E-value: 2e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kve d ++G+++L+rlfk++P+t+e+F+kFk+L+tede+k+sad+kkHg +vl+Al+++l+k ++++ea+lk+L+
sp|P02196|MYG_ORNAN 3 LSDGEWQLVLKVWGKVEGDLPGHGQEVLIRLFKTHPETLEKFDKFKGLKTEDEMKASADLKKHGGTVLTALGNILKK-KGQHEAELKPLA 91
@@ -4412,10 +4547,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02195|MYG_TACAC Myoglobin OS=Tachyglossus aculeatus aculeatus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.1 2.1 2.1e-59 9.6e-57 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 196.1 3.0 2.1e-59 1e-56 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 196.1 bits; conditional E-value: 2.1e-59
+ == domain 1 score: 196.1 bits; conditional E-value: 2.1e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kve+d+ ++G+d+L+rlfk++P+t+e+F+kFk+L+tede+k+sad+kkHg vl+Al+ +l+k ++++ea+lk+L+
sp|P02195|MYG_TACAC 3 LSDGEWQLVLKVWGKVETDITGHGQDVLIRLFKTHPETLEKFDKFKHLKTEDEMKASADLKKHGGVVLTALGSILKK-KGQHEAELKPLA 91
@@ -4429,10 +4564,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02159|MYG_LYCPI Myoglobin OS=Lycaon pictus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.0 1.2 2.2e-59 1e-56 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 196.0 1.7 2.3e-59 1.1e-56 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 196.0 bits; conditional E-value: 2.2e-59
+ == domain 1 score: 196.0 bits; conditional E-value: 2.3e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+d +++G+++L+rlfk +P+t+++F+kFk+L+tede+k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02159|MYG_LYCPI 3 LSDGEWQIVLNIWGKVETDLAGHGQEVLIRLFKNHPETLDKFDKFKHLKTEDEMKGSEDLKKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4446,10 +4581,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67819|HBB_BOSGF Hemoglobin subunit beta OS=Bos gaurus frontalis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.0 0.4 2.3e-59 1.1e-56 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 196.0 0.5 2.3e-59 1.1e-56 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.0 bits; conditional E-value: 2.3e-59
+ == domain 1 score: 196.0 bits; conditional E-value: 2.3e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P67819|HBB_BOSGF 2 LTAEEKAAVTAFWGKV--HVDEVGGEALGRLLVVYPWTQRFFESFGDLSTADAVMNNPKVKAHGKKVLDSFSNGMKHLD-DLKGTFAALS 88
@@ -4463,10 +4598,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67820|HBB_BUBBU Hemoglobin subunit beta OS=Bubalus bubalis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 196.0 0.4 2.3e-59 1.1e-56 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 196.0 0.5 2.3e-59 1.1e-56 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 196.0 bits; conditional E-value: 2.3e-59
+ == domain 1 score: 196.0 bits; conditional E-value: 2.3e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P67820|HBB_BUBBU 2 LTAEEKAAVTAFWGKV--HVDEVGGEALGRLLVVYPWTQRFFESFGDLSTADAVMNNPKVKAHGKKVLDSFSNGMKHLD-DLKGTFAALS 88
@@ -4480,10 +4615,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04249|MYG_PROGU Myoglobin OS=Proechimys guairae GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.9 0.2 2.4e-59 1.1e-56 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 195.9 0.3 2.4e-59 1.2e-56 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 195.9 bits; conditional E-value: 2.4e-59
+ == domain 1 score: 195.9 bits; conditional E-value: 2.4e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kve d ++G+++L+rlfk +P+t+e+F+kFk+L++ede+++s+++kkHg +vl+Al+ +l+k ++++ a+l++L+
sp|P04249|MYG_PROGU 3 LSDGEWQLVLNVWGKVEGDLSGHGQEVLIRLFKGHPETLEKFDKFKHLKAEDEMRASEELKKHGTTVLTALGGILKK-KGQHAAELAPLA 91
@@ -4497,10 +4632,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63107|HBA_MACFU Hemoglobin subunit alpha OS=Macaca fuscata fuscata GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.7 0.4 2.8e-59 1.3e-56 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 195.7 0.6 2.8e-59 1.4e-56 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.7 bits; conditional E-value: 2.8e-59
+ == domain 1 score: 195.7 bits; conditional E-value: 2.8e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P63107|HBA_MACFU 2 VLSPADKSNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPNALSAL 84
@@ -4514,10 +4649,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63108|HBA_MACMU Hemoglobin subunit alpha OS=Macaca mulatta GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.7 0.4 2.8e-59 1.3e-56 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 195.7 0.6 2.8e-59 1.4e-56 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.7 bits; conditional E-value: 2.8e-59
+ == domain 1 score: 195.7 bits; conditional E-value: 2.8e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P63108|HBA_MACMU 2 VLSPADKSNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPNALSAL 84
@@ -4531,10 +4666,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04245|HBB_TRAST Hemoglobin subunit beta OS=Tragelaphus strepsiceros GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.7 0.2 2.8e-59 1.3e-56 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 195.7 0.3 2.9e-59 1.4e-56 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.7 bits; conditional E-value: 2.8e-59
+ == domain 1 score: 195.7 bits; conditional E-value: 2.9e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P04245|HBB_TRAST 2 LTAEEKAAVTAFWGKV--KVDEVGGEALGRLLVVYPWTQRFFESFGDLSTADAVMNNPKVKAHGKKVLDSFSNGMKHLD-DLKGTFAALS 88
@@ -4548,10 +4683,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02085|HBB_LOXAF Hemoglobin subunit beta OS=Loxodonta africana GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.6 0.3 2.9e-59 1.4e-56 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 195.6 0.4 3e-59 1.5e-56 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.6 bits; conditional E-value: 2.9e-59
+ == domain 1 score: 195.6 bits; conditional E-value: 3e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++aekt+v+++W+kv +v+e G+++L rl++++P+t++fFe+F+dLst++++ +a+v +Hg+kvl+ ++++l++ld +l+++++dL
sp|P02085|HBB_LOXAF 2 NLTAAEKTQVTNLWGKV--NVKELGGEALSRLLVVYPWTRRFFEHFGDLSTAEAVLHNAKVLAHGEKVLTSFGEGLKHLD-NLKGTFADL 88
@@ -4565,10 +4700,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XJ0|HBD_LOXAF Hemoglobin subunit delta OS=Loxodonta africana GN=HBD PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.6 0.3 3e-59 1.4e-56 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 195.6 0.4 3.1e-59 1.5e-56 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 195.6 bits; conditional E-value: 3e-59
+ == domain 1 score: 195.6 bits; conditional E-value: 3.1e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++aekt+v+++W+kv +v+e G+++L rl++++P+t++fFe+F+dLst++++ +a+v +Hg+kvl+ ++++l++ld +l+++++dL
sp|Q45XJ0|HBD_LOXAF 3 NLTAAEKTQVTNLWGKV--NVKELGGEALSRLLVVYPWTRRFFEHFGDLSTAEAVLHNAKVLAHGEKVLTSFGEGLKHLD-NLKGTFADL 89
@@ -4582,10 +4717,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P41328|HBB_LYNLY Hemoglobin subunit beta OS=Lynx lynx GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.4 0.0 3.3e-59 1.5e-56 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 195.4 0.1 3.4e-59 1.7e-56 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.4 bits; conditional E-value: 3.3e-59
+ == domain 1 score: 195.4 bits; conditional E-value: 3.4e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++ +vk+Hgkkvl+ +sd+l+++d +l++++++Ls
sp|P41328|HBB_LYNLY 3 LTAEEKGLVNGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMGNSKVKAHGKKVLNSFSDGLKNID-DLKGAFAKLS 89
@@ -4599,10 +4734,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07410|HBB_SPETO Hemoglobin subunit beta-S/F OS=Spermophilus townsendii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.3 0.5 3.6e-59 1.7e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 195.3 0.7 3.7e-59 1.8e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.3 bits; conditional E-value: 3.6e-59
+ == domain 1 score: 195.3 bits; conditional E-value: 3.7e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek+++ ++W+kv +++e Ga++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkv+d +s++l++ld +l++++++
sp|P07410|HBB_SPETO 1 VHLTDGEKNAISTAWGKV--NAAEIGAEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNAKVKAHGKKVIDSFSNGLKHLD-NLKGTFAS 87
@@ -4616,10 +4751,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P20855|HBB_CTEGU Hemoglobin subunit beta OS=Ctenodactylus gundi GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.3 0.1 3.8e-59 1.7e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 195.3 0.1 3.9e-59 1.9e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.3 bits; conditional E-value: 3.8e-59
+ == domain 1 score: 195.3 bits; conditional E-value: 3.9e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls++ek +v+ +W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs +++++++++vk+Hgkkvl+ +s++l +ld +l++++++
sp|P20855|HBB_CTEGU 1 VHLSAEEKAAVTGLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSAAAVMGNPKVKAHGKKVLTSFSEGLSHLD-NLKGTFAK 87
@@ -4633,10 +4768,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02088|HBB1_MOUSE Hemoglobin subunit beta-1 OS=Mus musculus GN=Hbb-b1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.2 0.1 4e-59 1.9e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 195.2 0.2 4.1e-59 2e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 195.2 bits; conditional E-value: 4e-59
+ == domain 1 score: 195.2 bits; conditional E-value: 4.1e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L++aek +v +W+kv + +e+G+++L rl++++P+tq++F++F+dLs + +++++a+vk+Hgkkv++A++d+l++ld l+++++
sp|P02088|HBB1_MOUSE 2 VHLTDAEKAAVSCLWGKV--NSDEVGGEALGRLLVVYPWTQRYFDSFGDLSSASAIMGNAKVKAHGKKVITAFNDGLNHLD-SLKGTFA 87
@@ -4650,10 +4785,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21767|HBA_MACFA Hemoglobin subunit alpha-A/Q/R/T OS=Macaca fascicularis PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.2 0.4 4e-59 1.9e-56 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 195.2 0.6 4.1e-59 2e-56 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 195.2 bits; conditional E-value: 4e-59
+ == domain 1 score: 195.2 bits; conditional E-value: 4.1e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P21767|HBA_MACFA 1 VLSPADKTNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPQALSAL 83
@@ -4667,10 +4802,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02153|MYG_CEBAP Myoglobin OS=Cebus apella GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.1 1.0 4.1e-59 1.9e-56 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 195.1 1.4 4.2e-59 2.1e-56 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 195.1 bits; conditional E-value: 4.1e-59
+ == domain 1 score: 195.1 bits; conditional E-value: 4.2e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead+ +G+++L+ lfk +P+t+e+F+kFk+L+ ede+k+s+++kkHg +vl+Al+ +l+k ++++ea+lk+L+
sp|P02153|MYG_CEBAP 3 LSDGEWQLVLNVWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLKSEDEMKASEELKKHGATVLTALGGILKK-KGQHEAELKPLA 91
@@ -4684,10 +4819,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02155|MYG_SAISC Myoglobin OS=Saimiri sciureus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 195.1 0.8 4.3e-59 2e-56 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 195.1 1.1 4.5e-59 2.2e-56 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 195.1 bits; conditional E-value: 4.3e-59
+ == domain 1 score: 195.1 bits; conditional E-value: 4.5e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kvead+ +G+++L+ lfk +P+t+e+F+kFk+L+ ede+k+s+++kkHg +vl+Al+ +l+k ++++ea+lk+L+
sp|P02155|MYG_SAISC 3 LSDGEWQLVLNIWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLKSEDEMKASEELKKHGTTVLTALGGILKK-KGQHEAELKPLA 91
@@ -4701,10 +4836,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02066|HBB_CERSI Hemoglobin subunit beta OS=Ceratotherium simum GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.9 0.5 4.8e-59 2.2e-56 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 194.9 0.8 4.9e-59 2.4e-56 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.9 bits; conditional E-value: 4.8e-59
+ == domain 1 score: 194.9 bits; conditional E-value: 4.9e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+++ek +v+a+W kv + +e+G+++L rl++++P+tq+fF++F+dLst+++++++a+vk+Hgkkvl+ ++d++ +ld +l++++++L
sp|P02066|HBB_CERSI 2 ELTAEEKAAVLALWDKV--KEDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPAAVMGNAKVKAHGKKVLHSFGDGVHHLD-NLKGTFAAL 88
@@ -4718,10 +4853,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11752|HBB_MEGLY Hemoglobin subunit beta OS=Megaderma lyra GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.7 0.0 5.6e-59 2.6e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 194.7 0.0 5.8e-59 2.8e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.7 bits; conditional E-value: 5.6e-59
+ == domain 1 score: 194.7 bits; conditional E-value: 5.8e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ekt+v +W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgkkvl+ +s++l++ld +l++++++
sp|P11752|HBB_MEGLY 1 VHLTNEEKTAVIGLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSSPSAIMGNPKVKAHGKKVLNSFSEGLKNLD-NLKGTFAK 87
@@ -4735,10 +4870,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21766|HBA_MACAS Hemoglobin subunit alpha-1/2/3 OS=Macaca assamensis PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.7 0.5 5.7e-59 2.7e-56 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 194.7 0.7 5.9e-59 2.9e-56 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.7 bits; conditional E-value: 5.7e-59
+ == domain 1 score: 194.7 bits; conditional E-value: 5.9e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++ +l++L
sp|P21766|HBA_MACAS 1 VLSPADKTNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPHALSAL 83
@@ -4752,10 +4887,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02060|HBB_SUNMU Hemoglobin subunit beta OS=Suncus murinus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.7 0.0 5.8e-59 2.7e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 194.7 0.1 6e-59 2.9e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.7 bits; conditional E-value: 5.8e-59
+ == domain 1 score: 194.7 bits; conditional E-value: 6e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek v+ +W+kv + +e+Ga++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl+ l++++a+ld +l++++++
sp|P02060|HBB_SUNMU 1 VHLSGEEKACVTGLWGKV--NEDEVGAEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNPKVKAHGKKVLHSLGEGVANLD-NLKGTFAK 87
@@ -4769,10 +4904,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04244|HBB_PANPO Hemoglobin subunit beta OS=Panthera pardus orientalis GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.6 0.1 5.9e-59 2.7e-56 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 194.6 0.1 6.1e-59 2.9e-56 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 194.6 bits; conditional E-value: 5.9e-59
+ == domain 1 score: 194.6 bits; conditional E-value: 6.1e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++ek+ v +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++Ls
sp|P04244|HBB_PANPO 4 LSAEEKNLVSGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKLS 90
@@ -4786,10 +4921,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04346|HBBA_BOSJA Hemoglobin subunit beta-A OS=Bos javanicus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.6 0.3 5.9e-59 2.7e-56 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 194.6 0.4 6.1e-59 3e-56 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.6 bits; conditional E-value: 5.9e-59
+ == domain 1 score: 194.6 bits; conditional E-value: 6.1e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvld +sd++++ld +l++++++L
sp|P04346|HBBA_BOSJA 2 LTAEEKAAVTAFWGKV--HVDEVGGEALGRLLVVYPWTQRFFESFGDLSTADAVMNNPKVKAHGKKVLDSFSDGMKHLD-DLKGTFAAL 87
@@ -4803,10 +4938,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02089|HBB2_MOUSE Hemoglobin subunit beta-2 OS=Mus musculus GN=Hbb-b2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.5 0.1 6.5e-59 3e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 194.5 0.1 6.7e-59 3.3e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 194.5 bits; conditional E-value: 6.5e-59
+ == domain 1 score: 194.5 bits; conditional E-value: 6.7e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L++aek++v +Wakv + +e+G+++L rl++++P+tq++F++F+dLs + +++++++vk+Hgkkv++A++++l++ld +l+++++
sp|P02089|HBB2_MOUSE 2 VHLTDAEKSAVSCLWAKV--NPDEVGGEALGRLLVVYPWTQRYFDSFGDLSSASAIMGNPKVKAHGKKVITAFNEGLKNLD-NLKGTFA 87
@@ -4820,10 +4955,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XH3|HBE_BRATR Hemoglobin subunit epsilon OS=Bradypus tridactylus GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.5 0.2 6.5e-59 3e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 194.5 0.3 6.7e-59 3.3e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 194.5 bits; conditional E-value: 6.5e-59
+ == domain 1 score: 194.5 bits; conditional E-value: 6.7e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v ++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ ++da++++d +l++++++
sp|Q45XH3|HBE_BRATR 2 VHFTAEEKATVASLWGKV--NVEEAGGEVLGRLLVVYPWTQRFFDNFGNLSSSSAIMGNPKVKAHGKKVLTSFGDAVKHMD-DLKGTFAH 88
@@ -4834,30 +4969,30 @@ Domain annotation for each sequence (and alignments):
sp|Q45XH3|HBE_BRATR 89 LSELHCDKLHVDPENFRLLGNVMVVVLASHFGKEFTPEVQAAWQKLVGGVANALAHKYH 147
**********************************************************7 PP
->> sp|P01926|HBA_CERAE Hemoglobin subunit alpha OS=Cercopithecus aethiops GN=HBA PE=1 SV=2
+>> sp|P01926|HBA_CHLAE Hemoglobin subunit alpha OS=Chlorocebus aethiops GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.5 0.5 6.7e-59 3.1e-56 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 194.5 0.8 6.9e-59 3.3e-56 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.5 bits; conditional E-value: 6.7e-59
+ == domain 1 score: 194.5 bits; conditional E-value: 6.9e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++ +l++L
- sp|P01926|HBA_CERAE 2 VLSPADKSNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPHALSAL 84
+ sp|P01926|HBA_CHLAE 2 VLSPADKSNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPHALSAL 84
8*********************************************.***.....************************9.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa+kl+vdp +fklls++l+++laa+lp+eft++v+a+l+K+la+v+++l+skY+
- sp|P01926|HBA_CERAE 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR 142
+ sp|P01926|HBA_CHLAE 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR 142
*********************************************************7 PP
>> sp|Q7M2Y5|HBB2_CHAMP Hemoglobin subunit beta-2 OS=Chalinolobus morio GN=HBB2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.3 0.0 7.2e-59 3.3e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 194.3 0.1 7.4e-59 3.6e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 194.3 bits; conditional E-value: 7.2e-59
+ == domain 1 score: 194.3 bits; conditional E-value: 7.4e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L+ +ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkvl+A++++l++ld +l+++++
sp|Q7M2Y5|HBB2_CHAMP 2 VHLTGEEKAAVTGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSNAGAVMGNAKVKAHGKKVLNAFGEGLKNLD-NLKGTFA 87
@@ -4871,10 +5006,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19002|HBA_MACNE Hemoglobin subunit alpha-1/2/3 OS=Macaca nemestrina PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.2 0.4 8e-59 3.7e-56 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 194.2 0.5 8.2e-59 4e-56 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.2 bits; conditional E-value: 8e-59
+ == domain 1 score: 194.2 bits; conditional E-value: 8.2e-59
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P19002|HBA_MACNE 1 VLSPADKTNVKAAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVDHVD-DMPQALSAL 83
@@ -4888,10 +5023,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18988|HBB2_PANLE Hemoglobin subunit beta-2 OS=Panthera leo GN=HBB2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.1 0.1 8.5e-59 3.9e-56 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 194.1 0.1 8.7e-59 4.2e-56 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.1 bits; conditional E-value: 8.5e-59
+ == domain 1 score: 194.1 bits; conditional E-value: 8.7e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P18988|HBB2_PANLE 3 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 88
@@ -4905,10 +5040,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11517|HBB2_RAT Hemoglobin subunit beta-2 OS=Rattus norvegicus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.0 0.1 9.3e-59 4.3e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 194.0 0.2 9.6e-59 4.7e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 194.0 bits; conditional E-value: 9.3e-59
+ == domain 1 score: 194.0 bits; conditional E-value: 9.6e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
v+L++aek +v +W+kv +++++Ga++L rl++++P+tq++F kF+dLs + +++++++vk+Hgkkv++A++d+l++ld +l++++++L
sp|P11517|HBB2_RAT 2 VHLTDAEKATVSGLWGKV--NADNVGAEALGRLLVVYPWTQRYFSKFGDLSSASAIMGNPQVKAHGKKVINAFNDGLKHLD-NLKGTFAHL 89
@@ -4922,10 +5057,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07415|HBB_TRIIN Hemoglobin subunit beta OS=Trichechus inunguis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.0 0.1 9.3e-59 4.3e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 194.0 0.1 9.6e-59 4.6e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 194.0 bits; conditional E-value: 9.3e-59
+ == domain 1 score: 194.0 bits; conditional E-value: 9.6e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek v +Wakv +v+e+G+++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hg+kv + ++d+l++l+ +l++++++
sp|P07415|HBB_TRIIN 1 VHLTPEEKALVIGLWAKV--NVKEYGGEALGRLLVVYPWTQRFFEHFGDLSSASAIMNNPKVKAHGEKVFTSFGDGLKHLE-DLKGAFAE 87
@@ -4939,10 +5074,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P30562|MYG_PHOSI Myoglobin OS=Phoca sibirica GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.0 1.1 9.4e-59 4.4e-56 3 148 .. 3 147 .. 1 148 [. 0.99
+ 1 ! 194.0 1.6 9.7e-59 4.7e-56 3 148 .. 3 147 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 194.0 bits; conditional E-value: 9.4e-59
+ == domain 1 score: 194.0 bits; conditional E-value: 9.7e-59
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+ v++vW+k e+d +++G+++L+rlfks+P+t+e+F+kFk+L+ ed+++ s d++kHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P30562|MYG_PHOSI 3 LSDGEWHLVLNVWGKWETDLAGHGQEVLIRLFKSHPETLEKFDKFKHLKSEDDMRRSFDLRKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -4956,10 +5091,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XI8|HBD_TRIMA Hemoglobin subunit delta OS=Trichechus manatus GN=HBD PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 194.0 0.1 9.5e-59 4.4e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 194.0 0.1 9.8e-59 4.8e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 194.0 bits; conditional E-value: 9.5e-59
+ == domain 1 score: 194.0 bits; conditional E-value: 9.8e-59
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek v +Wakv +v+e+G+++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hg+kv + ++d+l++l+ +l++++++
sp|Q45XI8|HBD_TRIMA 2 VHLTPEEKALVIGLWAKV--NVKEYGGEALGRLLVVYPWTQRFFEHFGDLSSASAIMNNPKVKAHGEKVFTSFGDGLKHLE-DLKGAFAE 88
@@ -4973,10 +5108,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21768|HBA_MACSI Hemoglobin subunit alpha-1/2 OS=Macaca sinica PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.9 0.3 9.9e-59 4.6e-56 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 193.9 0.5 1e-58 4.9e-56 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.9 bits; conditional E-value: 9.9e-59
+ == domain 1 score: 193.9 bits; conditional E-value: 1e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk +W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P21768|HBA_MACSI 1 VLSPADKTNVKDAWGKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPQALSAL 83
@@ -4990,10 +5125,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09840|HBB_MACCA Hemoglobin subunit beta OS=Macrotus californicus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.7 0.1 1.1e-58 5.1e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 193.7 0.1 1.1e-58 5.5e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.7 bits; conditional E-value: 1.1e-58
+ == domain 1 score: 193.7 bits; conditional E-value: 1.1e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek++v a+W+kv +vee G+++L rl++++P+tq+fF++F+dLs + ++ ++a+vk Hgkkvld +s+++++ld +l++++++
sp|P09840|HBB_MACCA 1 VHLTGEEKSTVSALWGKV--NVEEIGGEALGRLLVVYPWTQRFFDSFGDLSSPSAVFGNAKVKSHGKKVLDSFSNGMQHLD-NLKGTFAK 87
@@ -5007,10 +5142,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q862A7|HBA_PIPAB Hemoglobin subunit alpha OS=Pipistrellus abramus GN=HBA PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.7 0.4 1.1e-58 5.3e-56 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 193.7 0.6 1.2e-58 5.7e-56 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.7 bits; conditional E-value: 1.1e-58
+ == domain 1 score: 193.7 bits; conditional E-value: 1.2e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a+ ++d +l+++l++L
sp|Q862A7|HBA_PIPAB 2 VLSPADKTNVKAAWDKVGGHAGDYGAEALERMFLSFPTTKTYFPHFSDLS-----HGSAQVKAHGKKVGDALNNAVGHMD-DLPTALSAL 85
@@ -5024,10 +5159,10 @@ Domain annotation for each sequence (and alignments):
>> sp|B2KHZ4|HBB_RHIFE Hemoglobin subunit beta OS=Rhinolophus ferrumequinum GN=HBB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.6 0.0 1.2e-58 5.7e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 193.6 0.0 1.3e-58 6.2e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.6 bits; conditional E-value: 1.2e-58
+ == domain 1 score: 193.6 bits; conditional E-value: 1.3e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +++++++a+vk+Hgkkvld +s++l++ld +l++++++
sp|B2KHZ4|HBB_RHIFE 2 VHLTGEEKGIVTGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSAAAVMGNAKVKAHGKKVLDSFSEGLKNLD-NLKGTFAK 88
@@ -5038,30 +5173,30 @@ Domain annotation for each sequence (and alignments):
sp|B2KHZ4|HBB_RHIFE 89 LSELHCDKLHVDPENFRLLGNVLVCVLARNFGKEFTPQVQAAYQKVVVGVATALAHKYH 147
**********************************************************7 PP
->> sp|P01930|HBA_COLBA Hemoglobin subunit alpha OS=Colobus badius GN=HBA PE=1 SV=2
+>> sp|P01930|HBA_PILBA Hemoglobin subunit alpha OS=Piliocolobus badius GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.6 0.5 1.3e-58 5.8e-56 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 193.6 0.7 1.3e-58 6.3e-56 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.6 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.6 bits; conditional E-value: 1.3e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++W+kv+ + +e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a a++d +++++l++L
- sp|P01930|HBA_COLBA 2 VLSPADKTNVKTAWGKVGGHGGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAAAHVD-DMPSALSAL 84
+ sp|P01930|HBA_PILBA 2 VLSPADKTNVKTAWGKVGGHGGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAAAHVD-DMPSALSAL 84
8*********************************************.***.....************************9.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa+kl+vdp +fklls++l+++laa++p+eft++v+a+l+K+la+v+++l+skY+
- sp|P01930|HBA_COLBA 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPAEFTPAVHASLDKFLASVSTVLTSKYR 142
+ sp|P01930|HBA_PILBA 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPAEFTPAVHASLDKFLASVSTVLTSKYR 142
*********************************************************7 PP
>> sp|P81042|HBE_MACEU Hemoglobin subunit epsilon OS=Macropus eugenii GN=HBE1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.5 0.4 1.3e-58 5.9e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 193.5 0.5 1.3e-58 6.4e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ekt++++vW+kv +vee+G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ l++a+++ld +l+a++++
sp|P81042|HBE_MACEU 2 VHFTAEEKTAITSVWGKV--NVEETGGEALGRLLVVYPWTQRFFDSFGNLSSASAILGNPKVKAHGKKVLTSLGEAVKNLD-NLKATFSK 88
@@ -5075,10 +5210,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68230|HBB_CAMBA Hemoglobin subunit beta OS=Camelus bactrianus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.5 0.0 1.3e-58 6e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 193.5 0.1 1.3e-58 6.5e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek++v+ +W+kv +v+e+G+++L rl++++P+t++fFe+F+dLst+d+++++++vk+Hg kvl+ ++d+l++ld +l++++++
sp|P68230|HBB_CAMBA 2 VHLSGDEKNAVHGLWSKV--KVDEVGGEALGRLLVVYPWTRRFFESFGDLSTADAVMNNPKVKAHGSKVLNSFGDGLNHLD-NLKGTYAK 88
@@ -5092,10 +5227,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68231|HBB_CAMDR Hemoglobin subunit beta OS=Camelus dromedarius GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.5 0.0 1.3e-58 6e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 193.5 0.1 1.3e-58 6.5e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek++v+ +W+kv +v+e+G+++L rl++++P+t++fFe+F+dLst+d+++++++vk+Hg kvl+ ++d+l++ld +l++++++
sp|P68231|HBB_CAMDR 2 VHLSGDEKNAVHGLWSKV--KVDEVGGEALGRLLVVYPWTRRFFESFGDLSTADAVMNNPKVKAHGSKVLNSFGDGLNHLD-NLKGTYAK 88
@@ -5109,10 +5244,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02154|MYG_LAGLA Myoglobin OS=Lagothrix lagotricha GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.5 0.7 1.3e-58 6e-56 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 193.5 1.1 1.3e-58 6.5e-56 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kvead+ +G+++L+ lfk +P+t+e+F+kFk+L+ ede+k+s+++kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P02154|MYG_LAGLA 3 LSDGEWQLVLNIWGKVEADIPSHGQEVLISLFKGHPETLEKFDKFKHLKSEDEMKASEELKKHGVTVLTALGGILKK-KGQHEAELKPLA 91
@@ -5126,10 +5261,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01938|HBA_LORTA Hemoglobin subunit alpha OS=Loris tardigradus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.5 0.8 1.3e-58 6e-56 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 193.5 1.2 1.3e-58 6.5e-56 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++W kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl+ a+ ++d +++++l++L
sp|P01938|HBA_LORTA 1 VLSPADKTNVKTAWEKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTTAVSHVD-DMPSALSAL 83
@@ -5143,10 +5278,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68064|HBB2_PANON Hemoglobin subunit beta-2 OS=Panthera onca GN=HBB2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.5 0.1 1.3e-58 6.2e-56 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 193.5 0.1 1.4e-58 6.7e-56 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.5 bits; conditional E-value: 1.3e-58
+ == domain 1 score: 193.5 bits; conditional E-value: 1.4e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68064|HBB2_PANON 4 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 89
@@ -5160,10 +5295,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68087|HBB1_CHAMP Hemoglobin subunit beta-1 OS=Chalinolobus morio GN=HBB1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.4 0.0 1.4e-58 6.6e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 193.4 0.1 1.5e-58 7.2e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.4 bits; conditional E-value: 1.4e-58
+ == domain 1 score: 193.4 bits; conditional E-value: 1.5e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L+ +ek +v+ +W+kv +vee+G+++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkvl+ ++++l++ld +l+++++
sp|P68087|HBB1_CHAMP 2 VHLTGEEKAAVTGLWGKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGDLSNAGAVMGNAKVKAHGKKVLNSFGEGLKNLD-NLKGTFA 87
@@ -5177,10 +5312,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09907|HBB_RHIUN Hemoglobin subunit beta OS=Rhinoceros unicornis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.4 0.1 1.5e-58 6.7e-56 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 193.4 0.2 1.5e-58 7.3e-56 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.4 bits; conditional E-value: 1.5e-58
+ == domain 1 score: 193.4 bits; conditional E-value: 1.5e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+++ek +v+a+W+kv + +e+G+++L rl++++P+tq+fF++F+dLst++++ ++a+vk+Hgkkvl+ ++d++ +ld +l++++++L
sp|P09907|HBB_RHIUN 2 DLTAEEKAAVLALWGKV--NEDEVGGEALGRLLVVYPWTQRFFDSFGDLSTPAAVLGNAKVKAHGKKVLHSFGDGVHNLD-NLKGTYAAL 88
@@ -5194,10 +5329,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28338|HBE_CHEME Hemoglobin subunit epsilon OS=Cheirogaleus medius GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.3 0.2 1.5e-58 6.9e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 193.3 0.3 1.5e-58 7.4e-56 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 193.3 bits; conditional E-value: 1.5e-58
+ == domain 1 score: 193.3 bits; conditional E-value: 1.5e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek++++++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ +++a++++d +l++++++
sp|Q28338|HBE_CHEME 2 VHFTAEEKSTILSLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSFGEAVKNMD-NLKGAFAK 88
@@ -5211,10 +5346,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02070|HBB_BOVIN Hemoglobin subunit beta OS=Bos taurus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.2 0.2 1.7e-58 7.8e-56 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 193.2 0.3 1.7e-58 8.4e-56 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.2 bits; conditional E-value: 1.7e-58
+ == domain 1 score: 193.2 bits; conditional E-value: 1.7e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLst+d+++++++vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P02070|HBB_BOVIN 2 LTAEEKAAVTAFWGKV--KVDEVGGEALGRLLVVYPWTQRFFESFGDLSTADAVMNNPKVKAHGKKVLDSFSNGMKHLD-DLKGTFAALS 88
@@ -5228,10 +5363,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11756|HBB_TADBR Hemoglobin subunit beta OS=Tadarida brasiliensis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.1 0.1 1.7e-58 7.9e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 193.1 0.1 1.8e-58 8.6e-56 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.1 bits; conditional E-value: 1.7e-58
+ == domain 1 score: 193.1 bits; conditional E-value: 1.8e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek +v+a+W+kv + ee+G+++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P11756|HBB_TADBR 1 VHLSGEEKGAVTALWGKV--NQEEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAVMGNAKVKAHGKKVLNSFSDGLKNLD-NLKGAFAK 87
@@ -5245,10 +5380,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01935|HBA3_PANTR Hemoglobin subunit alpha-3 OS=Pan troglodytes PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 193.1 0.6 1.7e-58 8.1e-56 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 193.1 0.9 1.8e-58 8.8e-56 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 193.1 bits; conditional E-value: 1.7e-58
+ == domain 1 score: 193.1 bits; conditional E-value: 1.8e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vka+W+kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv++Als+a+++ld +++++l++
sp|P01935|HBA3_PANTR 1 VLSPADKTNVKAAWGKVGAHAGZYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAZVKGHGKKVAKALSBAVZHLD-DMPNALSA 82
@@ -5262,10 +5397,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02091|HBB1_RAT Hemoglobin subunit beta-1 OS=Rattus norvegicus GN=Hbb PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.9 0.0 2.1e-58 9.5e-56 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 192.9 0.1 2.1e-58 1e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.9 bits; conditional E-value: 2.1e-58
+ == domain 1 score: 192.9 bits; conditional E-value: 2.1e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
v+L++aek +v+ +W+kv + +++G+++L rl++++P+tq++F++F+dLs + +++++++vk+Hgkkv++A++d+l++ld +l++++++L
sp|P02091|HBB1_RAT 2 VHLTDAEKAAVNGLWGKV--NPDDVGGEALGRLLVVYPWTQRYFDSFGDLSSASAIMGNPKVKAHGKKVINAFNDGLKHLD-NLKGTFAHL 89
@@ -5279,10 +5414,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02086|HBB_PROHA Hemoglobin subunit beta OS=Procavia capensis habessinica GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.8 0.2 2.1e-58 9.8e-56 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 192.8 0.3 2.2e-58 1.1e-55 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 192.8 bits; conditional E-value: 2.1e-58
+ == domain 1 score: 192.8 bits; conditional E-value: 2.2e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek +v+ +W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++ +++v +Hgkkvl ++d+l++ld +l++++++
sp|P02086|HBB_PROHA 1 VHLTDAEKAAVTGLWGKV--KVDEYGGEALGRLLVVYPWTQRFFEHFGDLSNADAIMHNPKVLAHGKKVLSSFGDGLNHLD-NLKGTFAQ 87
@@ -5296,10 +5431,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02194|MYG_MACRU Myoglobin OS=Macropus rufus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.8 1.3 2.1e-58 9.9e-56 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 192.8 1.9 2.2e-58 1.1e-55 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 192.8 bits; conditional E-value: 2.1e-58
+ == domain 1 score: 192.8 bits; conditional E-value: 2.2e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v+++W+kve+d +++G+d+L+rlfk +P+t+e+F+kFk+L+ ede+k+s+d+kkHg +vl+Al+++l+k ++++ea+lk+L+
sp|P02194|MYG_MACRU 3 LSDGEWQLVLNIWGKVETDEGGHGKDVLIRLFKGHPETLEKFDKFKHLKSEDEMKASEDLKKHGITVLTALGNILKK-KGHHEAELKPLA 91
@@ -5313,10 +5448,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28356|HBE_DAUMA Hemoglobin subunit epsilon OS=Daubentonia madagascariensis GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.7 0.2 2.3e-58 1e-55 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 192.7 0.2 2.3e-58 1.1e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.7 bits; conditional E-value: 2.3e-58
+ == domain 1 score: 192.7 bits; conditional E-value: 2.3e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++ ++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ ++da++++d +l++++++
sp|Q28356|HBE_DAUMA 2 VHFTAEEKATIMSLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSASAIMGNPKVKAHGKKVLTSFGDAVKNMD-NLKGAFAK 88
@@ -5330,10 +5465,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q95238|HBE_PROVE Hemoglobin subunit epsilon OS=Propithecus verreauxi GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.7 0.1 2.3e-58 1.1e-55 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 192.7 0.2 2.4e-58 1.2e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.7 bits; conditional E-value: 2.3e-58
+ == domain 1 score: 192.7 bits; conditional E-value: 2.4e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek+++++vW+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ +++a++++d +l++++++
sp|Q95238|HBE_PROVE 2 VHFTAEEKSTILSVWGKV--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAIMGNPKVKAHGKKVLTSFGEAVKNMD-NLKGAFAK 88
@@ -5347,10 +5482,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68050|HBB1_PANLE Hemoglobin subunit beta-1 OS=Panthera leo GN=HBB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.5 0.1 2.7e-58 1.3e-55 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 192.5 0.1 2.8e-58 1.4e-55 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 192.5 bits; conditional E-value: 2.7e-58
+ == domain 1 score: 192.5 bits; conditional E-value: 2.8e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68050|HBB1_PANLE 3 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 88
@@ -5364,10 +5499,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01934|HBA3_GORGO Hemoglobin subunit alpha-3 OS=Gorilla gorilla gorilla PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.4 0.6 2.8e-58 1.3e-55 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 192.4 0.9 2.9e-58 1.4e-55 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 192.4 bits; conditional E-value: 2.8e-58
+ == domain 1 score: 192.4 bits; conditional E-value: 2.9e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vka+W+kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv++Al++a+++ld +++++l++
sp|P01934|HBA3_GORGO 1 VLSPADKTNVKAAWGKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAZVKGHGKKVAKALTBAVZHLD-DMPNALSA 82
@@ -5381,10 +5516,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68048|HBB1_PANTS Hemoglobin subunit beta-1 OS=Panthera tigris sumatrae GN=HBB1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.4 0.1 2.8e-58 1.3e-55 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 192.4 0.1 2.9e-58 1.4e-55 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.4 bits; conditional E-value: 2.8e-58
+ == domain 1 score: 192.4 bits; conditional E-value: 2.9e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68048|HBB1_PANTS 4 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 89
@@ -5398,10 +5533,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68049|HBB1_PANON Hemoglobin subunit beta-1 OS=Panthera onca GN=HBB1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.4 0.1 2.8e-58 1.3e-55 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 192.4 0.1 2.9e-58 1.4e-55 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.4 bits; conditional E-value: 2.8e-58
+ == domain 1 score: 192.4 bits; conditional E-value: 2.9e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68049|HBB1_PANON 4 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 89
@@ -5415,10 +5550,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68051|HBB1_PANPS Hemoglobin subunit beta-1 OS=Panthera pardus saxicolor GN=HBB1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.4 0.1 2.8e-58 1.3e-55 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 192.4 0.1 2.9e-58 1.4e-55 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.4 bits; conditional E-value: 2.8e-58
+ == domain 1 score: 192.4 bits; conditional E-value: 2.9e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68051|HBB1_PANPS 4 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 89
@@ -5432,10 +5567,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68065|HBB2_PANPS Hemoglobin subunit beta-2 OS=Panthera pardus saxicolor GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.4 0.1 2.9e-58 1.3e-55 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 192.4 0.1 3e-58 1.5e-55 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 192.4 bits; conditional E-value: 2.9e-58
+ == domain 1 score: 192.4 bits; conditional E-value: 3e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68065|HBB2_PANPS 3 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 88
@@ -5449,10 +5584,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68194|HBB2_PANTS Hemoglobin subunit beta-2 OS=Panthera tigris sumatrae GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.4 0.1 2.9e-58 1.3e-55 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 192.4 0.1 3e-58 1.5e-55 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 192.4 bits; conditional E-value: 2.9e-58
+ == domain 1 score: 192.4 bits; conditional E-value: 3e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs +d+++++a+vk+Hgkkvl+ +sd+l+++d +l++++++L
sp|P68194|HBB2_PANTS 3 LSAEEKGLVNGLWSKV--NVDEVGGEALGRLLVVYPWTQRFFQSFGDLSSADAIMSNAKVKAHGKKVLNSFSDGLKNID-DLKGAFAKL 88
@@ -5466,10 +5601,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09422|HBB_BISBO Hemoglobin subunit beta OS=Bison bonasus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.3 0.5 3.1e-58 1.4e-55 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 192.3 0.8 3.2e-58 1.6e-55 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 192.3 bits; conditional E-value: 3.1e-58
+ == domain 1 score: 192.3 bits; conditional E-value: 3.2e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++a+vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P09422|HBB_BISBO 2 LTAEEKAAVTAFWGKV--HVDEVGGEALGRLLVVYPWTQRFFESFGDLSSADAVMNNAKVKAHGKKVLDSFSNGMKHLD-DLKGTFAALS 88
@@ -5483,10 +5618,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68226|HBB_LAMGL Hemoglobin subunit beta OS=Lama glama GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.2 0.0 3.3e-58 1.5e-55 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 192.2 0.0 3.4e-58 1.6e-55 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.2 bits; conditional E-value: 3.3e-58
+ == domain 1 score: 192.2 bits; conditional E-value: 3.4e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls +ek++v+ +W+kv +v+e+G+++L rl++++P+t++fFe+F+dLst+d+++++++vk+Hg kvl+ ++d+l +ld +l++++++L
sp|P68226|HBB_LAMGL 3 NLSGDEKNAVHGLWSKV--KVDEVGGEALGRLLVVYPWTRRFFESFGDLSTADAVMNNPKVKAHGSKVLNSFGDGLSHLD-NLKGTYAKL 89
@@ -5500,10 +5635,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68227|HBB_LAMVI Hemoglobin subunit beta OS=Lama vicugna GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.2 0.0 3.3e-58 1.5e-55 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 192.2 0.0 3.4e-58 1.6e-55 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.2 bits; conditional E-value: 3.3e-58
+ == domain 1 score: 192.2 bits; conditional E-value: 3.4e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls +ek++v+ +W+kv +v+e+G+++L rl++++P+t++fFe+F+dLst+d+++++++vk+Hg kvl+ ++d+l +ld +l++++++L
sp|P68227|HBB_LAMVI 3 NLSGDEKNAVHGLWSKV--KVDEVGGEALGRLLVVYPWTRRFFESFGDLSTADAVMNNPKVKAHGSKVLNSFGDGLSHLD-NLKGTYAKL 89
@@ -5517,10 +5652,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68228|HBB_LAMPA Hemoglobin subunit beta OS=Lama guanicoe pacos GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.2 0.0 3.3e-58 1.5e-55 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 192.2 0.0 3.4e-58 1.6e-55 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.2 bits; conditional E-value: 3.3e-58
+ == domain 1 score: 192.2 bits; conditional E-value: 3.4e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls +ek++v+ +W+kv +v+e+G+++L rl++++P+t++fFe+F+dLst+d+++++++vk+Hg kvl+ ++d+l +ld +l++++++L
sp|P68228|HBB_LAMPA 3 NLSGDEKNAVHGLWSKV--KVDEVGGEALGRLLVVYPWTRRFFESFGDLSTADAVMNNPKVKAHGSKVLNSFGDGLSHLD-NLKGTYAKL 89
@@ -5534,10 +5669,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68229|HBB_LAMGU Hemoglobin subunit beta OS=Lama guanicoe GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.2 0.0 3.3e-58 1.5e-55 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 192.2 0.0 3.4e-58 1.6e-55 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.2 bits; conditional E-value: 3.3e-58
+ == domain 1 score: 192.2 bits; conditional E-value: 3.4e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls +ek++v+ +W+kv +v+e+G+++L rl++++P+t++fFe+F+dLst+d+++++++vk+Hg kvl+ ++d+l +ld +l++++++L
sp|P68229|HBB_LAMGU 3 NLSGDEKNAVHGLWSKV--KVDEVGGEALGRLLVVYPWTRRFFESFGDLSTADAVMNNPKVKAHGSKVLNSFGDGLSHLD-NLKGTYAKL 89
@@ -5551,10 +5686,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28931|HBE_SMICR Hemoglobin subunit epsilon OS=Sminthopsis crassicaudata GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 192.2 0.2 3.3e-58 1.5e-55 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 192.2 0.2 3.4e-58 1.7e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 192.2 bits; conditional E-value: 3.3e-58
+ == domain 1 score: 192.2 bits; conditional E-value: 3.4e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek++++++W+kv +vee+G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da+++ld +l++++++
sp|Q28931|HBE_SMICR 2 VHFTAEEKNAITTIWGKV--NVEETGGEALGRLLVVYPWTQRFFDSFGNLSSASAILGNPKVKAHGKKVLTSFGDAVKNLD-NLKGTFSK 88
@@ -5568,10 +5703,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07402|HBA_MACSP Hemoglobin subunit alpha-1/2 OS=Macaca speciosa PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.9 0.7 4e-58 1.8e-55 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 191.9 0.9 4.1e-58 2e-55 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 191.9 bits; conditional E-value: 4e-58
+ == domain 1 score: 191.9 bits; conditional E-value: 4.1e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl+ a+ ++d +++ +l++L
sp|P07402|HBA_MACSP 1 VLSPADKTNVKAAWDKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTLAVGHVD-DMPHALSAL 83
@@ -5585,10 +5720,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01940|HBA_TARBA Hemoglobin subunit alpha OS=Tarsius bancanus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.9 0.3 4.1e-58 1.9e-55 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 191.9 0.5 4.3e-58 2.1e-55 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 191.9 bits; conditional E-value: 4.1e-58
+ == domain 1 score: 191.9 bits; conditional E-value: 4.3e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++s +vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P01940|HBA_TARBA 1 VLSPADKTNVKAAWDKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSSQVKGHGKKVADALTTAVGHID-NMPNALSAL 83
@@ -5599,13 +5734,30 @@ Domain annotation for each sequence (and alignments):
sp|P01940|HBA_TARBA 84 SDLHAHKLRVDPVNFKLLSHCLLVTLACHHPADFTPAVHASLDKFVASVSTVLTSKYR 141
*********************************************************7 PP
+>> sp|G1NJB6|MYG_MELGA Myoglobin OS=Meleagris gallopavo GN=MB PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 191.7 1.6 5e-58 2.4e-55 3 149 .] 3 148 .. 1 148 [. 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 191.7 bits; conditional E-value: 5e-58
+ globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+ Ls++e+++v+++W+kvead++++G ++L+rlf +P+t++ F+kFk+L+t+d++k+s+d+kkHg +vl+ l+++l++ ++++e++lk+L+
+ sp|G1NJB6|MYG_MELGA 3 LSDQEWQQVLTIWGKVEADIAGHGHEVLMRLFHDHPETLDRFDKFKGLKTPDQMKGSEDLKKHGATVLTQLGKILKQ-KGNHESELKPLA 91
+ 99***************************************************************************.99********** PP
+
+ globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ + Ha+k+k+++ky++++sev+++v+a++++++f+ad qaa++K+l+l+++++askYk
+ sp|G1NJB6|MYG_MELGA 92 QTHATKHKIPVKYLEFISEVIIKVIAEKHAADFGADSQAAMKKALELFRNDMASKYK 148
+ ********************************************************7 PP
+
>> sp|P02197|MYG_CHICK Myoglobin OS=Gallus gallus GN=MB PE=1 SV=4
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.7 1.1 4.8e-58 2.2e-55 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 191.7 1.6 5e-58 2.4e-55 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 191.7 bits; conditional E-value: 4.8e-58
+ == domain 1 score: 191.7 bits; conditional E-value: 5e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kvead++++G ++L+rlf +P+t++ F+kFk+L+t+d++k+s+d+kkHg +vl+ l+++l++ ++++e++lk+L+
sp|P02197|MYG_CHICK 3 LSDQEWQQVLTIWGKVEADIAGHGHEVLMRLFHDHPETLDRFDKFKGLKTPDQMKGSEDLKKHGATVLTQLGKILKQ-KGNHESELKPLA 91
@@ -5619,10 +5771,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21380|HBB_RANTA Hemoglobin subunit beta OS=Rangifer tarandus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.5 0.3 5.5e-58 2.5e-55 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 191.5 0.4 5.6e-58 2.7e-55 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 191.5 bits; conditional E-value: 5.5e-58
+ == domain 1 score: 191.5 bits; conditional E-value: 5.6e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+ +ek +v+ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLs +d+++ +++vk+Hgk+vldA+sd+l++ld +l++++++Ls
sp|P21380|HBB_RANTA 2 LTSEEKAAVTGFWGKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSSADAIMHNDKVKAHGKRVLDAFSDGLKHLD-DLKGAFAKLS 88
@@ -5636,10 +5788,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02053|HBB_EULFU Hemoglobin subunit beta OS=Eulemur fulvus fulvus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.4 0.2 5.7e-58 2.7e-55 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 191.4 0.3 5.9e-58 2.9e-55 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 191.4 bits; conditional E-value: 5.7e-58
+ == domain 1 score: 191.4 bits; conditional E-value: 5.9e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e +v+++W+kv dve++G+++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgkkvl A+s++l +ld +l++++++Ls
sp|P02053|HBB_EULFU 4 LSAEENAHVTSLWGKV--DVEKVGGEALGRLLVVYPWTQRFFESFGDLSSPSAVMGNPKVKAHGKKVLSAFSEGLHHLD-NLKGTFAQLS 90
@@ -5653,10 +5805,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02075|HBB_SHEEP Hemoglobin subunit beta OS=Ovis aries GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.4 0.4 5.7e-58 2.7e-55 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 191.4 0.6 5.9e-58 2.9e-55 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 191.4 bits; conditional E-value: 5.7e-58
+ == domain 1 score: 191.4 bits; conditional E-value: 5.9e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P02075|HBB_SHEEP 2 LTAEEKAAVTGFWGKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSNADAVMNNPKVKAHGKKVLDSFSNGMKHLD-DLKGTFAQLS 88
@@ -5670,10 +5822,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28496|HBE_MICMU Hemoglobin subunit epsilon OS=Microcebus murinus GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.1 0.2 7.5e-58 3.5e-55 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 191.1 0.2 7.7e-58 3.7e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 191.1 bits; conditional E-value: 7.5e-58
+ == domain 1 score: 191.1 bits; conditional E-value: 7.7e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek++++++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ +++a+++ld +l+ ++++
sp|Q28496|HBE_MICMU 2 VHFTAEEKSTILSLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSFGEAVKNLD-NLKPAFAK 88
@@ -5687,10 +5839,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M3C2|HBB_HAPGR Hemoglobin subunit beta OS=Hapalemur griseus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 191.0 0.0 7.5e-58 3.5e-55 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 191.0 0.0 7.7e-58 3.8e-55 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 191.0 bits; conditional E-value: 7.5e-58
+ == domain 1 score: 191.0 bits; conditional E-value: 7.7e-58
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++e +v+++W+kv dve++G+++L rl++++P+tq+fFe+F+dLst+ +++++++vk+Hgkkvl A+s++l +ld +l++++++Ls
sp|Q7M3C2|HBB_HAPGR 3 LTPEENGHVTSLWGKV--DVEKVGGEALGRLLVVYPWTQRFFESFGDLSTPSAIMGNPKVKAHGKKVLSAFSEGLHHLD-NLKGTFAQLS 89
@@ -5701,30 +5853,30 @@ Domain annotation for each sequence (and alignments):
sp|Q7M3C2|HBB_HAPGR 90 ELHCDKLHVDPQNFTLLGNVLVIVLAEHFGNAFSPPVQAAFQKVVTGVANALAHKYH 146
********************************************************7 PP
->> sp|P01939|HBA2_GALCR Hemoglobin subunit alpha-B OS=Galago crassicaudatus GN=HBAB PE=1 SV=3
+>> sp|P01939|HBA2_OTOCR Hemoglobin subunit alpha-B OS=Otolemur crassicaudatus GN=HBAB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.9 0.7 8.2e-58 3.8e-55 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 190.9 1.0 8.4e-58 4.1e-55 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.9 bits; conditional E-value: 8.2e-58
+ == domain 1 score: 190.9 bits; conditional E-value: 8.4e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+ +k++vka+W kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++s +vk Hgkkv+dAl++a+ ++d +++++l++
- sp|P01939|HBA2_GALCR 2 VLSPTDKSNVKAAWEKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSTQVKGHGKKVADALTNAVLHVD-DMPSALSA 83
+ sp|P01939|HBA2_OTOCR 2 VLSPTDKSNVKAAWEKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSTQVKGHGKKVADALTNAVLHVD-DMPSALSA 83
8*********************************************.***.....************************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Ls+lHa+kl+vdp +fkll ++l+++la ++p+eft++v+a+l+K++a+v+++l+skY+
- sp|P01939|HBA2_GALCR 84 LSDLHAHKLRVDPVNFKLLRHCLLVTLACHHPAEFTPAVHASLDKFMASVSTVLTSKYR 142
+ sp|P01939|HBA2_OTOCR 84 LSDLHAHKLRVDPVNFKLLRHCLLVTLACHHPAEFTPAVHASLDKFMASVSTVLTSKYR 142
**********************************************************7 PP
>> sp|P02093|HBB_ONDZI Hemoglobin subunit beta OS=Ondatra zibethicus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.9 0.2 8.5e-58 3.9e-55 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 190.9 0.3 8.8e-58 4.3e-55 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.9 bits; conditional E-value: 8.5e-58
+ == domain 1 score: 190.9 bits; conditional E-value: 8.8e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek ++ +W+kv +++++Ga++L rl++++P+tq+fFe+F+dLs + +++++a+vk Hgkkv++A++d+l++ld +l++++++
sp|P02093|HBB_ONDZI 1 VHLTDAEKAAISGLWGKV--NADGVGAEALGRLLVVYPWTQRFFEHFGDLSSSSAVMGNAKVKSHGKKVITAFADGLKHLD-NLKGTFSA 87
@@ -5738,10 +5890,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14388|HBB_ANTPA Hemoglobin subunit beta OS=Antrozous pallidus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.8 0.0 8.7e-58 4e-55 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 190.8 0.0 9e-58 4.4e-55 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.8 bits; conditional E-value: 8.7e-58
+ == domain 1 score: 190.8 bits; conditional E-value: 9e-58
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++v+ +W+kv +vee+G+++L rl++++P+tq+fFe+F+dLs + +++++a+vk+Hgkkvl+A+sd+l++ld +l++++++
sp|P14388|HBB_ANTPA 1 VHLTADEKSAVTGLWGKV--NVEEVGGEALGRLLVVYPWTQRFFESFGDLSNAGAVMGNAKVKAHGKKVLNAFSDGLKNLD-NLKGTFAK 87
@@ -5755,10 +5907,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67823|HBB_EQUHE Hemoglobin subunit beta OS=Equus hemionus kulan GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.8 0.1 8.8e-58 4.1e-55 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 190.8 0.1 9.1e-58 4.4e-55 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.8 bits; conditional E-value: 8.8e-58
+ == domain 1 score: 190.8 bits; conditional E-value: 9.1e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Ls +ek +v+a+W kv + ee+G+++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkvl+ +++++ +ld +l++++++L
sp|P67823|HBB_EQUHE 2 QLSGEEKAAVLALWDKV--NEEEVGGEALGRLLVVYPWTQRFFDSFGDLSNPAAVMGNPKVKAHGKKVLHSFGEGVHHLD-NLKGTFAQL 88
@@ -5772,10 +5924,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67824|HBB_EQUZE Hemoglobin subunit beta OS=Equus zebra GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.8 0.1 8.8e-58 4.1e-55 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 190.8 0.1 9.1e-58 4.4e-55 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.8 bits; conditional E-value: 8.8e-58
+ == domain 1 score: 190.8 bits; conditional E-value: 9.1e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Ls +ek +v+a+W kv + ee+G+++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkvl+ +++++ +ld +l++++++L
sp|P67824|HBB_EQUZE 2 QLSGEEKAAVLALWDKV--NEEEVGGEALGRLLVVYPWTQRFFDSFGDLSNPAAVMGNPKVKAHGKKVLHSFGEGVHHLD-NLKGTFAQL 88
@@ -5789,10 +5941,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19015|HBA_HIPAM Hemoglobin subunit alpha OS=Hippopotamus amphibius GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.8 0.6 9.1e-58 4.2e-55 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 190.8 0.9 9.4e-58 4.6e-55 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.8 bits; conditional E-value: 9.1e-58
+ == domain 1 score: 190.8 bits; conditional E-value: 9.4e-58
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vka+W+kv+ ++ e+Ga++L+r+f+s+P+t+++F++F dLs ++s +vk+Hgkkv+dAl++a+ +ld +l+++l+dL
sp|P19015|HBA_HIPAM 1 VLSANDKSNVKAAWGKVGNHAPEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSSQVKAHGKKVADALTKAVGHLD-DLPGALSDL 83
@@ -5806,10 +5958,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14387|HBA_ANTPA Hemoglobin subunit alpha OS=Antrozous pallidus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.7 0.1 9.9e-58 4.6e-55 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 190.7 0.1 1e-57 5e-55 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.7 bits; conditional E-value: 9.9e-58
+ == domain 1 score: 190.7 bits; conditional E-value: 1e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv dAl++a+a++d +l+++l++L
sp|P14387|HBA_ANTPA 2 VLSPADKTNVKAAWDKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVGDALGNAVAHMD-DLPGALSAL 84
@@ -5823,10 +5975,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08223|HBE_EULFU Hemoglobin subunit epsilon OS=Eulemur fulvus fulvus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.5 0.2 1.1e-57 5e-55 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 190.5 0.2 1.1e-57 5.4e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 190.5 bits; conditional E-value: 1.1e-57
+ == domain 1 score: 190.5 bits; conditional E-value: 1.1e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek++++++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ +++a++++d +l++++++
sp|P08223|HBE_EULFU 2 VHFTAEEKSTILSLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSASAILGNPKVKAHGKKVLTSFGEAVKNMD-NLKGAFAK 88
@@ -5840,10 +5992,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02077|HBBA_CAPHI Hemoglobin subunit beta-A OS=Capra hircus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.4 0.6 1.2e-57 5.6e-55 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 190.4 0.9 1.2e-57 6e-55 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.4 bits; conditional E-value: 1.2e-57
+ == domain 1 score: 190.4 bits; conditional E-value: 1.2e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+++ek +v+ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLs +d+++++a+vk+Hgkkvld +s+++++ld +l++++++L
sp|P02077|HBBA_CAPHI 2 LTAEEKAAVTGFWGKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSSADAVMNNAKVKAHGKKVLDSFSNGMKHLD-DLKGTFAQL 87
@@ -5857,10 +6009,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02187|MYG_LOXAF Myoglobin OS=Loxodonta africana GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.4 0.6 1.2e-57 5.7e-55 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 190.4 0.8 1.3e-57 6.2e-55 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 190.4 bits; conditional E-value: 1.2e-57
+ == domain 1 score: 190.4 bits; conditional E-value: 1.3e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++ W+kvead+ ++G+ +Lvrlf+ +P+t+e+F+kFk+L+te e+k+s+d+kk g++vl+Al+ +l+k ++++ea++++L+
sp|P02187|MYG_LOXAF 3 LSDGEWELVLKTWGKVEADIPGHGEFVLVRLFTGHPETLEKFDKFKHLKTEGEMKASEDLKKQGVTVLTALGGILKK-KGHHEAEIQPLA 91
@@ -5874,10 +6026,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01936|HBA_EULFU Hemoglobin subunit alpha OS=Eulemur fulvus fulvus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.3 0.6 1.2e-57 5.7e-55 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 190.3 0.8 1.3e-57 6.2e-55 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.3 bits; conditional E-value: 1.2e-57
+ == domain 1 score: 190.3 bits; conditional E-value: 1.3e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++W v+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++s +vk+Hgkkv+dAl++a+ +ld +++++l++L
sp|P01936|HBA_EULFU 1 VLSPADKTNVKTAWNAVGGQAGEHGAEALERMFLSFPTTKTYFPHF-DLS-----HGSGQVKAHGKKVADALTNAVSHLD-DMPGALSAL 83
@@ -5891,10 +6043,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02061|HBB_TALEU Hemoglobin subunit beta OS=Talpa europaea GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.3 0.0 1.3e-57 6e-55 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 190.3 0.0 1.3e-57 6.5e-55 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.3 bits; conditional E-value: 1.3e-57
+ == domain 1 score: 190.3 bits; conditional E-value: 1.3e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek v+ +W+kv +v+e+G+++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkv++ ++d++++ld +l++++++
sp|P02061|HBB_TALEU 1 VHLSGEEKGLVTGMWGKV--NVDEVGGEALGRLLVVYPWTQRFFDSFGDLSSASAIMGNAKVKAHGKKVANSITDGVKNLD-NLKGTYAK 87
@@ -5908,10 +6060,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02072|HBB_BOSMU Hemoglobin subunit beta OS=Bos mutus grunniens GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 190.2 0.3 1.4e-57 6.4e-55 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 190.2 0.5 1.4e-57 6.9e-55 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 190.2 bits; conditional E-value: 1.4e-57
+ == domain 1 score: 190.2 bits; conditional E-value: 1.4e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+a W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvld +s+++++ld +l++++++Ls
sp|P02072|HBB_BOSMU 2 LTAEEKAAVTAFWGKV--KVDEVGGEALGRLLVVYPWTQRFFESFGDLSSADAVMNNPKVKAHGKKVLDSFSNGMKHLD-DLKGTFAALS 88
@@ -5922,13 +6074,30 @@ Domain annotation for each sequence (and alignments):
sp|P02072|HBB_BOSMU 89 ELHCDKLHVDPENFKLLGNVLVVVLARHFGKEFTPVLQADFQKVVVGVANALAHRYH 145
********************************************************7 PP
+>> sp|B3EWE0|HBB_TAMST Hemoglobin subunit beta OS=Tamias striatus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 190.0 0.2 1.7e-57 8.2e-55 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 190.0 bits; conditional E-value: 1.7e-57
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L+++ek + ++W+kv + +e G+++L rl++++P+tq+fF++F+dLs + +++++a+vk+Hgkkvld +sd+l++ld +l++++++
+ sp|B3EWE0|HBB_TAMST 1 VHLTADEKVSLSSLWGKV--NPDELGGEALGRLLLVYPWTQRFFDSFGDLSSAVAVMGNAKVKAHGKKVLDSFSDGLKHLD-NLKGTFAS 87
+ 69****************..99***********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++fkll++vlv vla++l+keft+++q++++K++a va++la+kY+
+ sp|B3EWE0|HBB_TAMST 88 LSELHCDKLHVDPENFKLLGNVLVLVLAHHLGKEFTPQAQGTFQKVVAGVANALAHKYH 146
+ **********************************************************7 PP
+
>> sp|Q7LZM2|MYG_ANAPO Myoglobin OS=Anas poecilorhyncha GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.9 1.0 1.7e-57 8e-55 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 189.9 1.5 1.8e-57 8.7e-55 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 189.9 bits; conditional E-value: 1.7e-57
+ == domain 1 score: 189.9 bits; conditional E-value: 1.8e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kvead +++G +L+rlf+ +P+t++ FekFk+L+t+d++k+s+d+kkHg++vl+ l+++l++ ++++ea+lk+L+
sp|Q7LZM2|MYG_ANAPO 3 LSDQEWQQVLTIWGKVEADLAGHGHAVLMRLFQDHPETLDRFEKFKGLKTPDQMKGSEDLKKHGVTVLTQLGKILKQ-KGNHEAELKPLA 91
@@ -5942,10 +6111,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZM3|MYG_PHAFI Myoglobin OS=Phalacrocorax filamentosus GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.8 0.4 1.8e-57 8.3e-55 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 189.8 0.6 1.9e-57 9e-55 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 189.8 bits; conditional E-value: 1.8e-57
+ == domain 1 score: 189.8 bits; conditional E-value: 1.9e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kve+d ++G ++L+rlf +P+t++ Fe+Fk+L+t+d++k+s+d+kkHg++vl+ l+++l++ ++++e++lk+L+
sp|Q7LZM3|MYG_PHAFI 3 LSDQEWQQVLTIWGKVESDLPGHGHEVLMRLFRDHPETLDRFERFKGLKTPDQMKASEDLKKHGVTVLTQLGKILKQ-KGNHESELKPLA 91
@@ -5959,10 +6128,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02102|HBE1_CAPHI Hemoglobin subunit epsilon-1 OS=Capra hircus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.8 0.1 1.9e-57 8.6e-55 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 189.8 0.1 1.9e-57 9.3e-55 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 189.8 bits; conditional E-value: 1.9e-57
+ == domain 1 score: 189.8 bits; conditional E-value: 1.9e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+ +++ek +++ +W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ +++a+++ld +l+++++
sp|P02102|HBE1_CAPHI 2 VHFTAEEKAAITGLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSFGEAIKNLD-NLKGAFA 87
@@ -5976,10 +6145,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19016|HBB_HIPAM Hemoglobin subunit beta OS=Hippopotamus amphibius GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.5 0.1 2.2e-57 1e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 189.5 0.1 2.2e-57 1.1e-54 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.5 bits; conditional E-value: 2.2e-57
+ == domain 1 score: 189.5 bits; conditional E-value: 2.2e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v+ +W+kv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvld ++d+l++ld +l++++++
sp|P19016|HBB_HIPAM 1 VHLTAEEKDAVLGLWGKV--NVQEVGGEALGRLLVVYPWTQRFFESFGDLSSADAVMNNPKVKAHGKKVLDSFADGLKHLD-NLKGTFAA 87
@@ -5990,13 +6159,30 @@ Domain annotation for each sequence (and alignments):
sp|P19016|HBB_HIPAM 88 LSELHCDQLHVDPENFRLLGNELVVVLARTFGKEFTPELQAAYQKVVAGVANALAHRYH 146
**********************************************************7 PP
+>> sp|P0CH26|HBA2_CAPHI Hemoglobin subunit alpha-2 OS=Capra hircus GN=HBA2 PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 189.5 0.6 2.3e-57 1.1e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 189.5 bits; conditional E-value: 2.3e-57
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ vLs+a+k++vka+W+kv+++++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg+kv+ Al++a+ +ld +l+++l+d
+ sp|P0CH26|HBA2_CAPHI 2 VLSAADKSNVKAAWGKVGSNAGAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGEKVAAALTKAVGHLD-DLPGTLSD 83
+ 8*********************************************.***.....************************9.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ Ls+lHa+kl+vdp +fklls+ l+++la ++p++ft++v+a+l+K+la v+++l+skY+
+ sp|P0CH26|HBA2_CAPHI 84 LSDLHAHKLRVDPVNFKLLSHSLLVTLACHHPSDFTPAVHASLDKFLANVSTVLTSKYR 142
+ **********************************************************7 PP
+
>> sp|P28780|HBA_TAPGE Hemoglobin subunit alpha OS=Taphozous georgianus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.5 0.2 2.3e-57 1.1e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 189.5 0.3 2.3e-57 1.1e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.5 bits; conditional E-value: 2.3e-57
+ == domain 1 score: 189.5 bits; conditional E-value: 2.3e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++s +vk Hgkkv dAl++a+a++d +l+++l++L
sp|P28780|HBA_TAPGE 1 VLSPADKTNVKAAWEKVGGHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSSQVKGHGKKVGDALGNAVAHMD-DLPGALSAL 83
@@ -6010,10 +6196,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02054|HBB_LEMCA Hemoglobin subunit beta OS=Lemur catta GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.4 0.1 2.4e-57 1.1e-54 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 189.4 0.1 2.5e-57 1.2e-54 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.4 bits; conditional E-value: 2.4e-57
+ == domain 1 score: 189.4 bits; conditional E-value: 2.5e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++e +v+++W+kv +ve++G+++L rl++++P+tq+fFe+F+dLs +d+++++++vk+Hgkkvl A+s++l +ld +l++++++Ls
sp|P02054|HBB_LEMCA 3 LTPEENGHVTSLWGKV--NVEKVGGEALGRLLVVYPWTQRFFESFGDLSSPDAIMGNPKVKAHGKKVLSAFSEGLHHLD-NLKGTFAQLS 89
@@ -6024,64 +6210,64 @@ Domain annotation for each sequence (and alignments):
sp|P02054|HBB_LEMCA 90 ELHCVALHVDPENFKLLGNVLVIVLAHHFGNDFSPQTQAAFQKVVTGVANALAHKYH 146
********************************************************7 PP
->> sp|P11025|HBE_DIDMA Hemoglobin subunit epsilon-M OS=Didelphis marsupialis virginiana GN=HBE1 PE=2 SV=2
+>> sp|P11025|HBE_DIDVI Hemoglobin subunit epsilon-M OS=Didelphis virginiana GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.4 0.0 2.5e-57 1.1e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 189.4 0.0 2.5e-57 1.2e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 189.4 bits; conditional E-value: 2.5e-57
+ == domain 1 score: 189.4 bits; conditional E-value: 2.5e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ ++++kt++++vW+kv dve++G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ ++++++++d +l++++++
- sp|P11025|HBE_DIDMA 2 VHFTPEDKTNITSVWTKV--DVEDVGGESLARLLVVYPWTQRFFDSFGNLSSASAVMGNPKVKAHGKKVLTSFGEGVKNMD-NLKGTFAK 88
+ sp|P11025|HBE_DIDVI 2 VHFTPEDKTNITSVWTKV--DVEDVGGESLARLLVVYPWTQRFFDSFGNLSSASAVMGNPKVKAHGKKVLTSFGEGVKNMD-NLKGTFAK 88
5789**************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++f+ll++vl+ vla+r++keft++vqa+ +Kl++ v+ +l +kY+
- sp|P11025|HBE_DIDMA 89 LSELHCDKLHVDPENFRLLGNVLIIVLASRFGKEFTPEVQASWQKLVSGVSSALGHKYH 147
+ sp|P11025|HBE_DIDVI 89 LSELHCDKLHVDPENFRLLGNVLIIVLASRFGKEFTPEVQASWQKLVSGVSSALGHKYH 147
**********************************************************7 PP
->> sp|P14259|HBA1_GALCR Hemoglobin subunit alpha-A OS=Galago crassicaudatus GN=HBAA PE=2 SV=2
+>> sp|P14259|HBA1_OTOCR Hemoglobin subunit alpha-A OS=Otolemur crassicaudatus GN=HBAA PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.4 0.6 2.5e-57 1.2e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 189.4 0.9 2.6e-57 1.3e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.4 bits; conditional E-value: 2.5e-57
+ == domain 1 score: 189.4 bits; conditional E-value: 2.6e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+ +k+ vka+W kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+ ++d +++++l++
- sp|P14259|HBA1_GALCR 2 VLSPTDKSIVKAAWEKVGAHAGDYGAEALERMFLSFPTTKTYFPQF-DLS-----HGSAQVKGHGKKVADALTNAVLHVD-DMPSALSA 83
+ sp|P14259|HBA1_OTOCR 2 VLSPTDKSIVKAAWEKVGAHAGDYGAEALERMFLSFPTTKTYFPQF-DLS-----HGSAQVKGHGKKVADALTNAVLHVD-DMPSALSA 83
8*********************************************.***.....************************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Ls+lHa+kl vdp +fklls++l+++la +lp+eft++v+a+l+K++a+v+++l+skY+
- sp|P14259|HBA1_GALCR 84 LSDLHAHKLTVDPVNFKLLSHCLLVTLACHLPAEFTPAVHASLDKFMASVSTVLTSKYR 142
+ sp|P14259|HBA1_OTOCR 84 LSDLHAHKLTVDPVNFKLLSHCLLVTLACHLPAEFTPAVHASLDKFMASVSTVLTSKYR 142
**********************************************************7 PP
->> sp|P19759|HBE_GALCR Hemoglobin subunit epsilon OS=Galago crassicaudatus GN=HBE1 PE=2 SV=2
+>> sp|P19759|HBE_OTOCR Hemoglobin subunit epsilon OS=Otolemur crassicaudatus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.3 0.2 2.7e-57 1.2e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 189.3 0.3 2.8e-57 1.3e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 189.3 bits; conditional E-value: 2.7e-57
+ == domain 1 score: 189.3 bits; conditional E-value: 2.8e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek + ++W+kv ++ee G+++L rl++++P+tq+fFe F++Ls + +++++++vk+Hgkkvl+ +++a++++d +l++++++
- sp|P19759|HBE_GALCR 2 VHFTAEEKAIIMSLWGKV--NIEEAGGEALGRLLVVYPWTQRFFETFGNLSSASAIMGNPKVKAHGKKVLTSFGEAVKNMD-NLKGAFAK 88
+ sp|P19759|HBE_OTOCR 2 VHFTAEEKAIIMSLWGKV--NIEEAGGEALGRLLVVYPWTQRFFETFGNLSSASAIMGNPKVKAHGKKVLTSFGEAVKNMD-NLKGAFAK 88
5789**************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++fkll++v+v +la++++keft+dvqaa +Kl++ va++la+kY+
- sp|P19759|HBE_GALCR 89 LSELHCDKLHVDPENFKLLGNVMVIILATHFGKEFTPDVQAAWQKLVSGVATALAHKYH 147
+ sp|P19759|HBE_OTOCR 89 LSELHCDKLHVDPENFKLLGNVMVIILATHFGKEFTPDVQAAWQKLVSGVATALAHKYH 147
**********************************************************7 PP
>> sp|P02064|HBB1_TAPTE Hemoglobin subunit beta-1 OS=Tapirus terrestris GN=HBB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.3 0.3 2.7e-57 1.2e-54 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 189.3 0.5 2.7e-57 1.3e-54 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.3 bits; conditional E-value: 2.7e-57
+ == domain 1 score: 189.3 bits; conditional E-value: 2.7e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L+ +ek +v+a+W kv d +++G+++L rl++++P+tq+fF++F+dLst+++++++++vk+Hgkkvl+ ++d++ +ld +l+ ++++
sp|P02064|HBB1_TAPTE 2 ELTGEEKAAVLALWDKV--DEDKVGGEALGRLLVVYPWTQRFFDSFGDLSTAAAVMGNPKVKAHGKKVLHSFGDGVHHLD-DLKVTFAQ 87
@@ -6095,10 +6281,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02101|HBE_PIG Hemoglobin subunit epsilon OS=Sus scrofa GN=HBE1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.3 0.0 2.7e-57 1.2e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 189.3 0.0 2.8e-57 1.3e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 189.3 bits; conditional E-value: 2.7e-57
+ == domain 1 score: 189.3 bits; conditional E-value: 2.8e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
v+ +++ek+ ++ +W+kv +vee+G++++ rl++++P+tq+fF++F+++s + +++++++vk+Hgkkvl+A++da++++d +l++++++Ls
sp|P02101|HBE_PIG 2 VHFTAEEKSVITGLWGKV--NVEETGGQAVGRLLVVYPWTQRFFDSFGNMSSPSAIMGNPKVKAHGKKVLTAFGDAVKNMD-NLKGTFAKLS 90
@@ -6112,10 +6298,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11757|HBA_MYOVE Hemoglobin subunit alpha OS=Myotis velifer GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.3 0.1 2.7e-57 1.2e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 189.3 0.1 2.8e-57 1.3e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.3 bits; conditional E-value: 2.7e-57
+ == domain 1 score: 189.3 bits; conditional E-value: 2.8e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++ka+W kv+a+++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv dAl++a+a++d +l+++l++L
sp|P11757|HBA_MYOVE 1 VLSPADKTNIKAAWDKVGAHAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVGDALGNAVAHMD-DLPGALSAL 83
@@ -6126,30 +6312,47 @@ Domain annotation for each sequence (and alignments):
sp|P11757|HBA_MYOVE 84 SDLHAYKLRVDPVNFKLLSHCLLVTLACHLPGEFTPAIHASLDKFLASVSTVLVSKYR 141
*********************************************************7 PP
->> sp|P20018|HBA1_LEMVA Hemoglobin subunit alpha-1 OS=Lemur variegatus PE=1 SV=1
+>> sp|B3EWD2|HBB_SCICA Hemoglobin subunit beta OS=Sciurus carolinensis PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 189.2 0.1 2.9e-57 1.4e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 189.2 bits; conditional E-value: 2.9e-57
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+Ls++ek+++ ++W+kv + +e G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvld +sd+l++ld +l++++++
+ sp|B3EWD2|HBB_SCICA 1 VHLSADEKNALATLWGKV--NPDELGGEALGRLLVVYPWTQRFFDSFGDLSSATAVMGNPKVKAHGKKVLDSFSDGLKHLD-NLKGTFSS 87
+ 69****************..99***********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++f+ll++ lv vla +l+k+ft++vqaa++K++a va++la+kY+
+ sp|B3EWD2|HBB_SCICA 88 LSELHCDKLHVDPENFRLLGNELVLVLALHLGKDFTPQVQAAFQKVVAGVANALAHKYH 146
+ **********************************************************7 PP
+
+>> sp|P20018|HBA1_VARVI Hemoglobin subunit alpha-1 OS=Varecia variegata PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.2 0.6 2.8e-57 1.3e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 189.2 0.9 2.9e-57 1.4e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.2 bits; conditional E-value: 2.8e-57
+ == domain 1 score: 189.2 bits; conditional E-value: 2.9e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k++vk++W ++++++e+Ga++L+r+f+s+P t+++F++F dLs ++sa++k+Hgkkv+dAl++a++++d +++++l++
- sp|P20018|HBA1_LEMVA 1 VLSPADKNNVKSAWNAIGSHAGEHGAEALERMFLSFPPTKTYFPHF-DLS-----HGSAQIKTHGKKVADALTNAVNHID-DMPGALSA 82
+ sp|P20018|HBA1_VARVI 1 VLSPADKNNVKSAWNAIGSHAGEHGAEALERMFLSFPPTKTYFPHF-DLS-----HGSAQIKTHGKKVADALTNAVNHID-DMPGALSA 82
69********************************************.***.....************************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Ls+lHa+kl+vdp +fklls++l+++la+++p+eft++v+a+l+K++a v+++l+skY+
- sp|P20018|HBA1_LEMVA 83 LSDLHAHKLRVDPVNFKLLSHCLLVTLASHHPAEFTPAVHASLDKFFAAVSTVLTSKYR 141
+ sp|P20018|HBA1_VARVI 83 LSDLHAHKLRVDPVNFKLLSHCLLVTLASHHPAEFTPAVHASLDKFFAAVSTVLTSKYR 141
**********************************************************7 PP
>> sp|P02062|HBB_HORSE Hemoglobin subunit beta OS=Equus caballus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.2 0.0 2.9e-57 1.3e-54 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 189.2 0.1 2.9e-57 1.4e-54 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.2 bits; conditional E-value: 2.9e-57
+ == domain 1 score: 189.2 bits; conditional E-value: 2.9e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Ls +ek +v+a+W kv + ee+G+++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkvl+ +++++ +ld +l++++++L
sp|P02062|HBB_HORSE 2 QLSGEEKAAVLALWDKV--NEEEVGGEALGRLLVVYPWTQRFFDSFGDLSNPGAVMGNPKVKAHGKKVLHSFGEGVHHLD-NLKGTFAAL 88
@@ -6163,10 +6366,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63111|HBA_PAPAN Hemoglobin subunit alpha OS=Papio anubis GN=HBA PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.0 0.9 3.1e-57 1.4e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 189.0 1.3 3.2e-57 1.6e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.0 bits; conditional E-value: 3.1e-57
+ == domain 1 score: 189.0 bits; conditional E-value: 3.2e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++s++v kHgkkv+dAl+ a+ ++d +++++l++L
sp|P63111|HBA_PAPAN 2 VLSPDDKKHVKAAWGKVGEHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSDQVNKHGKKVADALTLAVGHVD-DMPQALSKL 84
@@ -6180,10 +6383,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63112|HBA_PAPCY Hemoglobin subunit alpha OS=Papio cynocephalus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 189.0 0.9 3.1e-57 1.4e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 189.0 1.3 3.2e-57 1.6e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 189.0 bits; conditional E-value: 3.1e-57
+ == domain 1 score: 189.0 bits; conditional E-value: 3.2e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++s++v kHgkkv+dAl+ a+ ++d +++++l++L
sp|P63112|HBA_PAPCY 2 VLSPDDKKHVKAAWGKVGEHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSDQVNKHGKKVADALTLAVGHVD-DMPQALSKL 84
@@ -6194,13 +6397,30 @@ Domain annotation for each sequence (and alignments):
sp|P63112|HBA_PAPCY 85 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR 142
*********************************************************7 PP
+>> sp|B3EWD4|HBB_PERCR Hemoglobin subunit beta OS=Peromyscus crinitus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 189.0 0.4 3.2e-57 1.6e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 189.0 bits; conditional E-value: 3.2e-57
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L++aek v+ +W+kv + +e G+++L rl+ ++P+tq+fF++F+dLs + +l+++a+vk+Hgkkvld +s++l++ld +l++++++
+ sp|B3EWD4|HBB_PERCR 1 VHLTDAEKALVTGLWGKV--KPDELGGEALGRLLGVYPWTQRFFDSFGDLSSASALMSNAKVKAHGKKVLDSFSEGLKHLD-NLKGTFAS 87
+ 69****************..899**********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++fkll+++lv v+a++l+k+ft+++qaa++K++a va++la+kY+
+ sp|B3EWD4|HBB_PERCR 88 LSELHCDKLHVDPENFKLLGNMLVLVMAHHLGKDFTPAAQAAYQKVVAGVATALAHKYH 146
+ **********************************************************7 PP
+
>> sp|P08258|HBA_MANSP Hemoglobin subunit alpha-1/2 OS=Mandrillus sphinx PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.9 0.6 3.5e-57 1.6e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 188.9 0.8 3.6e-57 1.8e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.9 bits; conditional E-value: 3.5e-57
+ == domain 1 score: 188.9 bits; conditional E-value: 3.6e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W kv+ +++e+Ga++L+r+f+s+P+t+++F++F +Ls ++s++vk Hgkkv+dAl+ a+ ++d +++++l++L
sp|P08258|HBA_MANSP 1 VLSPADKKNVKAAWDKVGGHAGEYGAEALERMFLSFPTTKTYFPHF-NLS-----HGSDQVKGHGKKVADALTLAVGHVD-DMPQALSKL 83
@@ -6214,10 +6434,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02092|HBB_MICXA Hemoglobin subunit beta OS=Microtus xanthognathus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.8 1.0 3.6e-57 1.7e-54 1 149 [] 1 146 [] 1 146 [] 0.98
+ 1 ! 188.8 1.4 3.7e-57 1.8e-54 1 149 [] 1 146 [] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 188.8 bits; conditional E-value: 3.6e-57
+ == domain 1 score: 188.8 bits; conditional E-value: 3.7e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek ++ +W+kv +++ Ga++L rl++++P+t++fF++F++Ls + +++++a+vk+Hgkkv++A++d+l++ld +l++++++
sp|P02092|HBB_MICXA 1 VHLTDAEKAAISGLWGKV--BABAAGAZALGRLLVVYPWTZRFFZHFGBLSSASAVMGNAQVKAHGKKVIHAFADGLKHLD-BLKGTFAS 87
@@ -6231,10 +6451,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02186|MYG_ELEMA Myoglobin OS=Elephas maximus GN=MB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.8 0.4 3.7e-57 1.7e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 188.8 0.6 3.8e-57 1.8e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 188.8 bits; conditional E-value: 3.7e-57
+ == domain 1 score: 188.8 bits; conditional E-value: 3.8e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++ W+kvead+ ++G+ + vrlf+ +P+t+e+F+kFk+L+te e+k+s+d+kk g++vl+Al+ +l+k ++++ea++++L+
sp|P02186|MYG_ELEMA 3 LSDGEWELVLKTWGKVEADIPGHGETVFVRLFTGHPETLEKFDKFKHLKTEGEMKASEDLKKQGVTVLTALGGILKK-KGHHEAEIQPLA 91
@@ -6248,10 +6468,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9XSK1|HBA4_BUBBU Hemoglobin subunit alpha-4 OS=Bubalus bubalis PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.8 0.6 3.8e-57 1.8e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 188.8 0.8 3.9e-57 1.9e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.8 bits; conditional E-value: 3.8e-57
+ == domain 1 score: 188.8 bits; conditional E-value: 3.9e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k++vka+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv++Al++a+ +ld +l+++l++
sp|Q9XSK1|HBA4_BUBBU 2 VLSAADKSNVKAAWGKVGGHAADYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVANALTKAVGHLD-DLPGALSE 83
@@ -6265,10 +6485,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01932|HBA_THEGE Hemoglobin subunit alpha OS=Theropithecus gelada GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.7 0.9 4e-57 1.8e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 188.7 1.3 4.1e-57 2e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.7 bits; conditional E-value: 4e-57
+ == domain 1 score: 188.7 bits; conditional E-value: 4.1e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vk +W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++s++vkkHgkkv+dAl+ a+ ++d +++++l++L
sp|P01932|HBA_THEGE 1 VLSPDDKKHVKDAWGKVGEHAGQYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSDQVKKHGKKVADALTLAVGHVD-DMPQALSKL 83
@@ -6282,10 +6502,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02110|HBB_TACAC Hemoglobin subunit beta OS=Tachyglossus aculeatus aculeatus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.5 0.2 4.5e-57 2.1e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 188.5 0.3 4.6e-57 2.3e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 188.5 bits; conditional E-value: 4.5e-57
+ == domain 1 score: 188.5 bits; conditional E-value: 4.6e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls ekt+v+++W+ v +v+e G+++L rl++++P+tq+fFe+F+dLs +d+++++a+vk+Hg kvl+ ++dal++ld +l++++++
sp|P02110|HBB_TACAC 2 VHLSGSEKTAVTNLWGHV--NVNELGGEALGRLLVVYPWTQRFFESFGDLSSADAVMGNAKVKAHGAKVLTSFGDALKNLD-NLKGTFAK 88
@@ -6296,47 +6516,47 @@ Domain annotation for each sequence (and alignments):
sp|P02110|HBB_TACAC 89 LSELHCDKLHVDPENFNRLGNVLVVVLARHFSKEFTPEAQAAWQKLVSGVSHALAHKYH 147
**********************************************************7 PP
->> sp|P01933|HBA_CERTO Hemoglobin subunit alpha OS=Cercocebus torquatus atys GN=HBA PE=1 SV=1
+>> sp|P01933|HBA_CERAT Hemoglobin subunit alpha OS=Cercocebus atys GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.5 0.8 4.7e-57 2.2e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 188.5 1.2 4.8e-57 2.4e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.5 bits; conditional E-value: 4.7e-57
+ == domain 1 score: 188.5 bits; conditional E-value: 4.8e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F +Ls ++s++vk Hgkkv+dAl+ a+ ++d +++ +l++L
- sp|P01933|HBA_CERTO 1 VLSPDDKKHVKAAWGKVGEHAGEYGAEALERMFLSFPTTKTYFPHF-NLS-----HGSDQVKGHGKKVADALTLAVGHVD-DMPHALSKL 83
+ sp|P01933|HBA_CERAT 1 VLSPDDKKHVKAAWGKVGEHAGEYGAEALERMFLSFPTTKTYFPHF-NLS-----HGSDQVKGHGKKVADALTLAVGHVD-DMPHALSKL 83
69********************************************.9**.....************************9.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa+kl+vdp +fklls++l+++laa+lp+eft++v+a+l+K+la+v+++l+skY+
- sp|P01933|HBA_CERTO 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR 141
+ sp|P01933|HBA_CERAT 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPAEFTPAVHASLDKFLASVSTVLTSKYR 141
*********************************************************7 PP
->> sp|P20019|HBA2_LEMVA Hemoglobin subunit alpha-2 OS=Lemur variegatus PE=1 SV=1
+>> sp|P20019|HBA2_VARVI Hemoglobin subunit alpha-2 OS=Varecia variegata PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.4 0.8 4.8e-57 2.2e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 188.4 1.1 4.9e-57 2.4e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.4 bits; conditional E-value: 4.8e-57
+ == domain 1 score: 188.4 bits; conditional E-value: 4.9e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k++vk++W ++++++e+Ga++L+r+f+s+P t+++F++F dLs ++sa++k+Hgkkv+dAl++a++++d +++++l++
- sp|P20019|HBA2_LEMVA 1 VLSPADKNNVKSAWKAIGSHAGEHGAEALERMFLSFPPTKTYFPHF-DLS-----HGSAQIKTHGKKVADALTNAVNHID-DMPGALSA 82
+ sp|P20019|HBA2_VARVI 1 VLSPADKNNVKSAWKAIGSHAGEHGAEALERMFLSFPPTKTYFPHF-DLS-----HGSAQIKTHGKKVADALTNAVNHID-DMPGALSA 82
69********************************************.***.....************************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Ls+lHa+kl+vdp +fklls++l+++la+++p+eft++v+a+l+K++a v+++l+skY+
- sp|P20019|HBA2_LEMVA 83 LSDLHAHKLRVDPVNFKLLSHCLLVTLASHHPAEFTPAVHASLDKFFAAVSTVLTSKYR 141
+ sp|P20019|HBA2_VARVI 83 LSDLHAHKLRVDPVNFKLLSHCLLVTLASHHPAEFTPAVHASLDKFFAAVSTVLTSKYR 141
**********************************************************7 PP
>> sp|P21379|HBA_RANTA Hemoglobin subunit alpha OS=Rangifer tarandus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.3 0.3 5.1e-57 2.4e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 188.3 0.5 5.3e-57 2.6e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.3 bits; conditional E-value: 5.1e-57
+ == domain 1 score: 188.3 bits; conditional E-value: 5.3e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ ++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hg+kv++Al++a+ +ld +l+++l+dL
sp|P21379|HBA_RANTA 1 VLSAADKSNVKAAWGKVGGNAPAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGEKVANALTKAVGHLD-DLPGTLSDL 83
@@ -6350,10 +6570,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83682|MYG_DELLE Myoglobin OS=Delphinapterus leucas GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.3 1.2 5.3e-57 2.5e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 188.3 1.7 5.5e-57 2.7e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 188.3 bits; conditional E-value: 5.3e-57
+ == domain 1 score: 188.3 bits; conditional E-value: 5.5e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lse+e++ v+ kvead +++G+d+L+rlfk +P+t+e+F+kFk+L+t +k+s+d+kkHg++vl+Al+ +l+k ++++ea+lk+L+
sp|P83682|MYG_DELLE 3 LSEGEWQLVLXXXXKVEADLAGHGQDVLIRLFKGHPETLEKFDKFKHLKTXXXMKASEDLKKHGNTVLTALGGILKK-KGHHEAELKPLA 91
@@ -6367,10 +6587,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04246|HBT_PIG Hemoglobin subunit theta OS=Sus scrofa PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.1 0.0 6e-57 2.8e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 188.1 0.0 6.1e-57 3e-54 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.1 bits; conditional E-value: 6e-57
+ == domain 1 score: 188.1 bits; conditional E-value: 6.1e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
v+ +++ek+ ++ +W+kv +vee+G++++ rl++++P+tq+fF++F+++s + +++++++vk+Hgkkvl+ ++da++++d +l++++++Ls
sp|P04246|HBT_PIG 1 VHFTAEEKSVITGLWGKV--NVEETGGEAVGRLLVVYPWTQRFFDSFGNMSSPSAIMGNPKVKAHGKKVLTSFGDAVKNMD-NLKGTFAKLS 89
@@ -6384,10 +6604,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XH7|HBG_ELEMA Hemoglobin subunit gamma OS=Elephas maximus GN=HBG PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.1 0.1 6.2e-57 2.9e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 188.1 0.1 6.4e-57 3.1e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 188.1 bits; conditional E-value: 6.2e-57
+ == domain 1 score: 188.1 bits; conditional E-value: 6.4e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W++v +vee+G+++L rl++++P+tq+fF+ F++Ls + ++++++ vk+Hgkkvl+ ++da+++ld +l++++++
sp|Q45XH7|HBG_ELEMA 2 VHFTAEEKAAITSLWGQV--NVEETGGEALGRLLVVYPWTQRFFDTFGNLSSASAIMGNPRVKAHGKKVLTSFGDAVKNLD-NLKGTFAK 88
@@ -6401,10 +6621,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04247|MYG_MOUSE Myoglobin OS=Mus musculus GN=Mb PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.0 0.2 6.3e-57 2.9e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 188.0 0.3 6.5e-57 3.2e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 188.0 bits; conditional E-value: 6.3e-57
+ == domain 1 score: 188.0 bits; conditional E-value: 6.5e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++ v++vW+kvead +++G+++L+ lfk++P+t+++F+kFk+L+ e+++k+s+d+kkHg +vl+Al+ +l+k ++++ a++++L+
sp|P04247|MYG_MOUSE 3 LSDGEWQLVLNVWGKVEADLAGHGQEVLIGLFKTHPETLDKFDKFKNLKSEEDMKGSEDLKKHGCTVLTALGTILKK-KGQHAAEIQPLA 91
@@ -6418,10 +6638,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02074|HBB_ODOVI Hemoglobin subunit beta-3 OS=Odocoileus virginianus virginianus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 188.0 0.0 6.6e-57 3.1e-54 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 188.0 0.0 6.8e-57 3.3e-54 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 188.0 bits; conditional E-value: 6.6e-57
+ == domain 1 score: 188.0 bits; conditional E-value: 6.8e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+ W+kv +v+ +Ga++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgk+vldA+s++l++ld +l++++++Ls
sp|P02074|HBB_ODOVI 2 LTAEEKAAVTGFWGKV--NVDVVGAEALGRLLVVYPWTQRFFEHFGDLSSAGAVMGNPKVKAHGKRVLDAFSEGLKHLD-DLKGAFAELS 88
@@ -6435,10 +6655,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01971|HBA_ALCAA Hemoglobin subunit alpha OS=Alces alces alces GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.9 0.4 7.1e-57 3.3e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 187.9 0.5 7.3e-57 3.6e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.9 bits; conditional E-value: 7.1e-57
+ == domain 1 score: 187.9 bits; conditional E-value: 7.3e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +k++vka+W+kv+ ++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hg+kv++Al++a+ +ld +l+++l+dL
sp|P01971|HBA_ALCAA 2 VLSATDKSNVKAAWGKVGGNAPAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGEKVANALTKAVGHLD-DLPGTLSDL 84
@@ -6452,10 +6672,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TSN8|HBA2_BUBBU Hemoglobin subunit alpha-2 OS=Bubalus bubalis PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.9 0.4 7.2e-57 3.3e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 187.9 0.6 7.4e-57 3.6e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.9 bits; conditional E-value: 7.2e-57
+ == domain 1 score: 187.9 bits; conditional E-value: 7.4e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k++++a+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv++Al++a+ +ld +l+++l++
sp|Q9TSN8|HBA2_BUBBU 2 VLSAADKSNIQAAWGKVGGHAADYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVANALTKAVGHLD-DLPGALSE 83
@@ -6469,10 +6689,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9QZ76|MYG_RAT Myoglobin OS=Rattus norvegicus GN=Mb PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.9 0.3 7.2e-57 3.3e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 187.9 0.4 7.5e-57 3.6e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 187.9 bits; conditional E-value: 7.2e-57
+ == domain 1 score: 187.9 bits; conditional E-value: 7.5e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLsel 94
Ls++e++ v+++W+kve d +++G+++L+ lfk++P+t+e+F+kFk+L+ e+e+k+s+d+kkHg +vl+Al+ +l+k ++++ a++++L+++
sp|Q9QZ76|MYG_RAT 3 LSDGEWQMVLNIWGKVEGDLAGHGQEVLISLFKAHPETLEKFDKFKNLKSEEEMKSSEDLKKHGCTVLTALGTILKK-KGQHAAEIQPLAQS 93
@@ -6486,10 +6706,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O77655|HBG_TARBA Hemoglobin subunit gamma OS=Tarsius bancanus GN=HBG PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.8 0.3 7.6e-57 3.5e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 187.8 0.4 7.8e-57 3.8e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.8 bits; conditional E-value: 7.6e-57
+ == domain 1 score: 187.8 bits; conditional E-value: 7.8e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++++Wakv +vee+G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl l++a+ ++d +l+ ++++
sp|O77655|HBG_TARBA 2 VHFTAEEKAIITSLWAKV--NVEETGGEALGRLLVVYPWTQRFFDNFGNLSSASAIMGNPKVKAHGKKVLSSLGEAVTHMD-DLKDAFAH 88
@@ -6503,10 +6723,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11758|HBB_MYOVE Hemoglobin subunit beta OS=Myotis velifer GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.7 0.1 8.3e-57 3.9e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 187.7 0.1 8.6e-57 4.2e-54 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.7 bits; conditional E-value: 8.3e-57
+ == domain 1 score: 187.7 bits; conditional E-value: 8.6e-57
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v +W+kv +v+e+G+++L rl++++P+tq+fF +F+dLs +++++++ +vk+Hgkkvl+ ++++l+++d +l++++++
sp|P11758|HBB_MYOVE 1 VHLTADEKAAVSGLWGKV--NVDEVGGEALGRLLVVYPWTQRFFTSFGDLSNAAAVMGNSKVKAHGKKVLNSFGEGLKNVD-NLKGTFAS 87
@@ -6520,10 +6740,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P85077|MYG_STRCA Myoglobin OS=Struthio camelus GN=MB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.6 1.3 8.5e-57 3.9e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 187.6 1.8 8.7e-57 4.3e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 187.6 bits; conditional E-value: 8.5e-57
+ == domain 1 score: 187.6 bits; conditional E-value: 8.7e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kve+d++++G iL+rlf+ +P+t++ FekFk+L+t++++k+s+++kkHg++vl+ l+++l++ ++k+ea+lk+L+
sp|P85077|MYG_STRCA 3 LSDQEWQQVLTIWGKVESDIAGHGHAILMRLFQDHPETLDRFEKFKGLTTPEQMKASEELKKHGVTVLTQLGKILKQ-KGKHEAELKPLA 91
@@ -6537,10 +6757,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M2Y4|HBA_CHAMP Hemoglobin subunit alpha OS=Chalinolobus morio GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.6 0.1 8.6e-57 4e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 187.6 0.2 8.9e-57 4.3e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.6 bits; conditional E-value: 8.6e-57
+ == domain 1 score: 187.6 bits; conditional E-value: 8.9e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W kv+ ++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv dAl++a+a+ld +l+++l++L
sp|Q7M2Y4|HBA_CHAMP 1 VLSPADKSNVKAAWDKVGGSAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVGDALGNAVAHLD-DLPGALSAL 83
@@ -6554,10 +6774,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZM5|MYG_AETPY Myoglobin OS=Aethia pygmaea GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.6 0.6 8.8e-57 4.1e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 187.6 0.9 9e-57 4.4e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 187.6 bits; conditional E-value: 8.8e-57
+ == domain 1 score: 187.6 bits; conditional E-value: 9e-57
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kve+d +++G ++L+rlf+ +P+t++ F+kFk+L+t+d++k+s+d+kkHg++vl+ l+++l++ ++++e++lk+L+
sp|Q7LZM5|MYG_AETPY 3 LSDQEWQQVLSIWGKVESDLAGHGHQVLMRLFQDHPETLDRFDKFKGLKTPDQMKGSEDLKKHGVTVLTQLGKILKQ-KGNHESELKPLA 91
@@ -6571,10 +6791,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01951|HBA_TALEU Hemoglobin subunit alpha OS=Talpa europaea GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.6 0.4 8.9e-57 4.1e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 187.6 0.6 9.2e-57 4.5e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.6 bits; conditional E-value: 8.9e-57
+ == domain 1 score: 187.6 bits; conditional E-value: 9.2e-57
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +k+++ka+W kv+a+++e+Ga++L+r f+s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl++a+ +ld +l++++++L
sp|P01951|HBA_TALEU 1 VLSGTDKSNIKAAWDKVGAHAGEYGAEALERTFTSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTNAVGHLD-DLPGAMSAL 83
@@ -6585,13 +6805,30 @@ Domain annotation for each sequence (and alignments):
sp|P01951|HBA_TALEU 84 SDLHAHKLRVDPVNFKLLSHCLLVTLACHHPNDFTPAVHASLDKFLATVSTVLTSKYR 141
*********************************************************7 PP
+>> sp|B3EWD8|HBB_TAMHU Hemoglobin subunit beta OS=Tamiasciurus hudsonicus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 187.5 0.5 9.7e-57 4.7e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 187.5 bits; conditional E-value: 9.7e-57
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+Ls +ekt++ ++W+k ++e+G+++L rl++++P+tq+fF++F+dLs + +l+++a+vk+Hgkkvld +s++l++ld +l++++++
+ sp|B3EWD8|HBB_TAMHU 1 VHLSGEEKTALATLWGKN--VADEVGGEALGRLLVVYPWTQRFFDSFGDLSSASALMSNAKVKAHGKKVLDSFSEGLKHLD-DLKGTFSS 87
+ 69***************8..689*********************************************************9.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++f+ll+++lv v+a++l+k+ft+++qaa++K++a va++la+kY+
+ sp|B3EWD8|HBB_TAMHU 88 LSELHCDKLHVDPENFRLLGNMLVLVMAHHLGKDFTPAAQAAYQKVVAGVANALAHKYH 146
+ **********************************************************7 PP
+
>> sp|P18435|HBE_TARSY Hemoglobin subunit epsilon OS=Tarsius syrichta GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.4 0.1 9.8e-57 4.5e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 187.4 0.1 1e-56 4.9e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.4 bits; conditional E-value: 9.8e-57
+ == domain 1 score: 187.4 bits; conditional E-value: 1e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek+ v+++W+k+ +v+e G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P18435|HBE_TARSY 2 VHLTAEEKSSVTSLWGKM--NVDEAGGEALGRLLVVYPWTQRFFDNFGNLSSSSAIMGNPKVKAHGKKVLTSFGDAIKNMD-NLKGAFAK 88
@@ -6602,13 +6839,47 @@ Domain annotation for each sequence (and alignments):
sp|P18435|HBE_TARSY 89 LSELHCDKLHVDPENFRLLGNVLVIILVTHFGKDFTPEVQVAWQKLVSGVATALAHKYH 147
**********************************************************7 PP
+>> sp|B3EWD6|HBB_PERCA Hemoglobin subunit beta OS=Peromyscus californicus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 187.4 0.1 1e-56 4.9e-54 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 187.4 bits; conditional E-value: 1e-56
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L++aek v+ +W+kv + +e G+++L rl++ +P+tq+fF++F+dLs + +l+++++vk+Hgkkvld +s++l++ld +l++++++
+ sp|B3EWD6|HBB_PERCA 1 VHLTDAEKALVTGLWGKV--KPDELGGEALGRLLVGYPWTQRFFDSFGDLSSASALMGNPKVKAHGKKVLDSFSEGLKHLD-NLKGTFAS 87
+ 69****************..899**********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++fkll+++lv vla+ l+k+ft+++qaa++K++a va++la+kY+
+ sp|B3EWD6|HBB_PERCA 88 LSELHCDKLHVDPENFKLLGNMLVLVLAHLLGKDFTPAAQAAYQKVVAGVATALAHKYH 146
+ **********************************************************7 PP
+
+>> sp|P86874|MYG_DRONO Myoglobin OS=Dromaius novaehollandiae GN=MB PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 187.3 1.3 1.1e-56 5.3e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
+ globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+ Ls++e+++v+++W+kve+d +++G +iL+rlf P+t++ Fe+Fk+L+t+d++k+s+++kkHg++vl+ l+++l+ ++k+ea+lk+L+
+ sp|P86874|MYG_DRONO 3 LSDQEWQHVLTIWGKVESDLAGHGHEILMRLFHDLPETLDRFERFKGLTTPDQMKASEELKKHGVTVLTQLGKILKL-KGKHEAELKPLA 91
+ 99************************************************************************987.99********** PP
+
+ globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ + Ha+k+k+++ky++++sev+++v+a++++++f+ad qaa++K+l+l+++++askYk
+ sp|P86874|MYG_DRONO 92 QTHATKHKIPVKYLEFISEVIIKVIAEKHSADFGADSQAAMKKALELFRNDMASKYK 148
+ ********************************************************7 PP
+
>> sp|P51438|HBE_ATEBE Hemoglobin subunit epsilon OS=Ateles belzebuth GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.3 0.1 1.1e-56 4.9e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 187.3 0.1 1.1e-56 5.3e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
+ == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P51438|HBE_ATEBE 2 VHLTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -6619,30 +6890,30 @@ Domain annotation for each sequence (and alignments):
sp|P51438|HBE_ATEBE 89 LSELHCDKLHVDPENFRLLGNVMVIILATHFGKEFTPEVQAAWQKLVSAVAIALGHKYH 147
**********************************************************7 PP
->> sp|P19760|HBG_GALCR Hemoglobin subunit gamma OS=Galago crassicaudatus GN=HBG PE=2 SV=3
+>> sp|P19760|HBG_OTOCR Hemoglobin subunit gamma OS=Otolemur crassicaudatus GN=HBG PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.3 0.1 1.1e-56 5.1e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 187.3 0.1 1.1e-56 5.5e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
+ == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++++W+kv +vee G+++L rl++++P+tq+fF+ F++Ls + +++++++vk+Hgkkvl l++a++++d +l++++++
- sp|P19760|HBG_GALCR 2 VHFTAEEKAIITSLWGKV--NVEEDGGEALGRLLVVYPWTQRFFDTFGNLSSASAIMGNPKVKAHGKKVLSSLGEAIKNMD-DLKGTFSH 88
+ sp|P19760|HBG_OTOCR 2 VHFTAEEKAIITSLWGKV--NVEEDGGEALGRLLVVYPWTQRFFDTFGNLSSASAIMGNPKVKAHGKKVLSSLGEAIKNMD-DLKGTFSH 88
5789**************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH+++l+vdp++f+ll++vlv vla++++keft+++qaa +K++a va++la+kY+
- sp|P19760|HBG_GALCR 89 LSELHCDRLHVDPENFRLLGNVLVIVLAKHFGKEFTPQIQAACQKMVAGVATALAHKYH 147
+ sp|P19760|HBG_OTOCR 89 LSELHCDRLHVDPENFRLLGNVLVIVLAKHFGKEFTPQIQAACQKMVAGVATALAHKYH 147
**********************************************************7 PP
>> sp|P10892|HBA_LUTLU Hemoglobin subunit alpha OS=Lutra lutra GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.3 0.2 1.1e-56 5.1e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 187.3 0.3 1.1e-56 5.6e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
+ == domain 1 score: 187.3 bits; conditional E-value: 1.1e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k++ +++e+G+++L+r f+s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl++a+a++d +l+++l++L
sp|P10892|HBA_LUTLU 1 VLSPADKTNVKSTWDKIGGHAGEYGGEALERTFVSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTNAVAHMD-DLPGALSAL 83
@@ -6656,10 +6927,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZM4|MYG_CERMN Myoglobin OS=Cerorhinca monocerata GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.2 0.6 1.1e-56 5.2e-54 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 187.2 0.9 1.2e-56 5.6e-54 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 187.2 bits; conditional E-value: 1.1e-56
+ == domain 1 score: 187.2 bits; conditional E-value: 1.2e-56
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kve+d +++G ++L+rlf+ +P+t++ FekFk+L+t+d++k+s+d+kkHg++vl+ l+++l++ ++++e++lk+L+
sp|Q7LZM4|MYG_CERMN 3 LSDQEWQQVLSIWGKVESDLAGHGHQVLMRLFQDHPETLDRFEKFKGLKTPDQMKGSEDLKKHGVTVLTQLGKILKQ-KGNHESELKPLA 91
@@ -6673,10 +6944,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02094|HBB_MESAU Hemoglobin subunit beta OS=Mesocricetus auratus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.1 0.6 1.2e-56 5.5e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 187.1 0.8 1.2e-56 6e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.1 bits; conditional E-value: 1.2e-56
+ == domain 1 score: 187.1 bits; conditional E-value: 1.2e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek v+ +W+kv +++ +Ga++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgkkv++ ++d+l++ld +l++++++
sp|P02094|HBB_MESAU 2 VHLTDAEKALVTGLWGKV--NADAVGAEALGRLLVVYPWTQRFFEHFGDLSSASAVMNNPQVKAHGKKVIHSFADGLKHLD-NLKGAFSS 88
@@ -6690,10 +6961,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XH8|HBG_LOXAF Hemoglobin subunit gamma OS=Loxodonta africana GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.0 0.1 1.3e-56 6.1e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 187.0 0.1 1.4e-56 6.6e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.0 bits; conditional E-value: 1.3e-56
+ == domain 1 score: 187.0 bits; conditional E-value: 1.4e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++ ++W++v +vee+G+++L rl++++P+tq+fF+ F++Ls + ++++++ vk+Hgkkvl+ ++da+++ld +l++++++
sp|Q45XH8|HBG_LOXAF 2 VHFTAEEKAAIASLWGQV--NVEETGGEALGRLLVVYPWTQRFFDTFGNLSSASAIMGNPRVKAHGKKVLTSFGDAVKNLD-NLKGTFAK 88
@@ -6707,10 +6978,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01963|HBA_CERSI Hemoglobin subunit alpha OS=Ceratotherium simum GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.0 0.1 1.3e-56 6.2e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 187.0 0.2 1.4e-56 6.7e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 187.0 bits; conditional E-value: 1.3e-56
+ == domain 1 score: 187.0 bits; conditional E-value: 1.4e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +kt+vk++W+ v+a+++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a+ +ld +l+++l++L
sp|P01963|HBA_CERSI 2 VLSPTDKTNVKTAWGHVGAQAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTQAVGHLD-DLPGALSAL 84
@@ -6724,10 +6995,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02104|HBE_MOUSE Hemoglobin subunit epsilon-Y2 OS=Mus musculus GN=Hbb-y PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 187.0 0.1 1.3e-56 6.2e-54 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 187.0 0.2 1.4e-56 6.7e-54 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 187.0 bits; conditional E-value: 1.3e-56
+ == domain 1 score: 187.0 bits; conditional E-value: 1.4e-56
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ekt ++ +W+kv +vee+G+++L rl++++P+tq+fF++F++Ls + ++++++ vk+Hgkkvl+A+++ +++ld +l+++l++Ls
sp|P02104|HBE_MOUSE 4 FTAEEKTLINGLWSKV--NVEEVGGEALGRLLVVYPWTQRFFDSFGNLSSASAIMGNPRVKAHGKKVLTAFGESIKNLD-NLKSALAKLS 90
@@ -6741,10 +7012,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q2KPA3|HBB_SCAOR Hemoglobin subunit beta OS=Scapanus orarius GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.9 0.0 1.4e-56 6.6e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 186.9 0.0 1.5e-56 7.2e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.9 bits; conditional E-value: 1.4e-56
+ == domain 1 score: 186.9 bits; conditional E-value: 1.5e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls++ek v+ +W+kv +v+++Ga++L rl++++P+tq+fF++F+dLs + +++++++vk+Hgkkv++ +sd++++ld +l++++++
sp|Q2KPA3|HBB_SCAOR 2 VHLSAEEKGLVTGLWGKV--NVDDVGAEALGRLLVVYPWTQRFFDSFGDLSSAGAIMGNPKVKAHGKKVANSISDGIKNLD-NLKGTYAK 88
@@ -6758,10 +7029,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18994|HBE_PONPY Hemoglobin subunit epsilon OS=Pongo pygmaeus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.8 0.4 1.5e-56 7.2e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 186.8 0.5 1.6e-56 7.8e-54 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.8 bits; conditional E-value: 1.5e-56
+ == domain 1 score: 186.8 bits; conditional E-value: 1.6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P18994|HBE_PONPY 2 VHFTAEEKAAVTSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -6775,10 +7046,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61921|HBG2_PANTR Hemoglobin subunit gamma-2 OS=Pan troglodytes GN=HBG2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.7 0.0 1.6e-56 7.4e-54 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 186.7 0.0 1.6e-56 8e-54 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.7 bits; conditional E-value: 1.6e-56
+ == domain 1 score: 186.7 bits; conditional E-value: 1.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P61921|HBG2_PANTR 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKHLD-DLKGTFAQ 88
@@ -6792,10 +7063,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P62742|HBG2_GORGO Hemoglobin subunit gamma-2 OS=Gorilla gorilla gorilla GN=HBG2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.7 0.0 1.6e-56 7.4e-54 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 186.7 0.0 1.6e-56 8e-54 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.7 bits; conditional E-value: 1.6e-56
+ == domain 1 score: 186.7 bits; conditional E-value: 1.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P62742|HBG2_GORGO 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKHLD-DLKGTFAQ 88
@@ -6809,10 +7080,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P69892|HBG2_HUMAN Hemoglobin subunit gamma-2 OS=Homo sapiens GN=HBG2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.7 0.0 1.6e-56 7.4e-54 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 186.7 0.0 1.6e-56 8e-54 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.7 bits; conditional E-value: 1.6e-56
+ == domain 1 score: 186.7 bits; conditional E-value: 1.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P69892|HBG2_HUMAN 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKHLD-DLKGTFAQ 88
@@ -6826,10 +7097,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61920|HBG1_PANTR Hemoglobin subunit gamma-1 OS=Pan troglodytes GN=HBG1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.7 0.1 1.7e-56 7.7e-54 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 186.7 0.1 1.7e-56 8.4e-54 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.7 bits; conditional E-value: 1.7e-56
+ == domain 1 score: 186.7 bits; conditional E-value: 1.7e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P61920|HBG1_PANTR 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKHLD-DLKGTFAQ 88
@@ -6843,10 +7114,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P69891|HBG1_HUMAN Hemoglobin subunit gamma-1 OS=Homo sapiens GN=HBG1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.7 0.1 1.7e-56 7.7e-54 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 186.7 0.1 1.7e-56 8.4e-54 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.7 bits; conditional E-value: 1.7e-56
+ == domain 1 score: 186.7 bits; conditional E-value: 1.7e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P69891|HBG1_HUMAN 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKHLD-DLKGTFAQ 88
@@ -6860,10 +7131,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11753|HBA_CYNSP Hemoglobin subunit alpha OS=Cynopterus sphinx GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.5 0.0 1.9e-56 8.7e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 186.5 0.1 1.9e-56 9.4e-54 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.5 bits; conditional E-value: 1.9e-56
+ == domain 1 score: 186.5 bits; conditional E-value: 1.9e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W kv+ +++e+Ga++L+r+f+s+P+t+++F++F dL ++s++vk Hgkkv dAl++a+ ++d +l+++l++L
sp|P11753|HBA_CYNSP 1 VLSPADKTNVKAAWDKVGGNAGEYGAEALERMFLSFPTTKTYFPHF-DLA-----HGSPQVKGHGKKVGDALTNAVSHID-DLPGALSAL 83
@@ -6874,30 +7145,30 @@ Domain annotation for each sequence (and alignments):
sp|P11753|HBA_CYNSP 84 SDLHAYKLRVDPVNFKLLSHCLLVTLANHLPSDFTPAVHASLDKFLASVSTVLTSKYR 141
*********************************************************7 PP
->> sp|P68238|HBA_CAPHI Hemoglobin subunit alpha-1/2 OS=Capra hircus PE=1 SV=2
+>> sp|P0CH25|HBA1_CAPHI Hemoglobin subunit alpha-1 OS=Capra hircus GN=HBA1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.5 0.2 1.9e-56 8.8e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 186.5 0.3 2e-56 9.5e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.5 bits; conditional E-value: 1.9e-56
- globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
- vLs+a+k++vka+W+kv+ +++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg+kv+ Al++a+ +ld +l+++l+dL
- sp|P68238|HBA_CAPHI 2 VLSAADKSNVKAAWGKVGGNAGAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGEKVAAALTKAVGHLD-DLPGTLSDL 84
- 8*********************************************.***.....************************9.********* PP
+ == domain 1 score: 186.5 bits; conditional E-value: 2e-56
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ vLs+a+k++vka+W+kv+ +++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg+kv+ Al++a+ +ld +l+++l+d
+ sp|P0CH25|HBA1_CAPHI 2 VLSAADKSNVKAAWGKVGGNAGAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGEKVAAALTKAVGHLD-DLPGTLSD 83
+ 8*********************************************.***.....************************9.******** PP
- globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
- s+lHa+kl+vdp +fklls+ l+++la +lp++ft++v+a+l+K+la v+++l+skY+
- sp|P68238|HBA_CAPHI 85 SDLHAHKLRVDPVNFKLLSHSLLVTLACHLPNDFTPAVHASLDKFLANVSTVLTSKYR 142
- *********************************************************7 PP
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ Ls+lHa+kl+vdp +fklls+ l+++la +lp++ft++v+a+l+K+la v+++l+skY+
+ sp|P0CH25|HBA1_CAPHI 84 LSDLHAHKLRVDPVNFKLLSHSLLVTLACHLPNDFTPAVHASLDKFLANVSTVLTSKYR 142
+ **********************************************************7 PP
>> sp|P68239|HBA_AMMLE Hemoglobin subunit alpha-1/2 OS=Ammotragus lervia PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.5 0.2 1.9e-56 8.8e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 186.5 0.3 2e-56 9.5e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.5 bits; conditional E-value: 1.9e-56
+ == domain 1 score: 186.5 bits; conditional E-value: 2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg+kv+ Al++a+ +ld +l+++l+dL
sp|P68239|HBA_AMMLE 2 VLSAADKSNVKAAWGKVGGNAGAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGEKVAAALTKAVGHLD-DLPGTLSDL 84
@@ -6911,10 +7182,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68240|HBA_SHEEP Hemoglobin subunit alpha-1/2 OS=Ovis aries PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.5 0.2 1.9e-56 8.8e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 186.5 0.3 2e-56 9.5e-54 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.5 bits; conditional E-value: 1.9e-56
+ == domain 1 score: 186.5 bits; conditional E-value: 2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg+kv+ Al++a+ +ld +l+++l+dL
sp|P68240|HBA_SHEEP 2 VLSAADKSNVKAAWGKVGGNAGAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGEKVAAALTKAVGHLD-DLPGTLSDL 84
@@ -6928,10 +7199,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28507|HBE_MACMU Hemoglobin subunit epsilon OS=Macaca mulatta GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.4 0.3 2e-56 9.4e-54 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 186.4 0.4 2.1e-56 1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.4 bits; conditional E-value: 2e-56
+ == domain 1 score: 186.4 bits; conditional E-value: 2.1e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W+k+ +vee+G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l+ ++++
sp|Q28507|HBE_MACMU 2 VHFTAEEKAAVTSLWSKM--NVEETGGEALGRLLVVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKITFAK 88
@@ -6945,10 +7216,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07405|HBA_FELCA Hemoglobin subunit alpha OS=Felis catus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.4 0.5 2.1e-56 9.6e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 186.4 0.7 2.1e-56 1e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.4 bits; conditional E-value: 2.1e-56
+ == domain 1 score: 186.4 bits; conditional E-value: 2.1e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka W+k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+vk+Hg+kv+dAl++a+a++d +l++++++L
sp|P07405|HBA_FELCA 1 VLSAADKSNVKACWGKIGSHAGEYGAEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVKAHGQKVADALTQAVAHMD-DLPTAMSAL 83
@@ -6962,10 +7233,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23601|HBA_MUSPU Hemoglobin subunit alpha-1/2 OS=Mustela putorius PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.3 0.2 2.1e-56 9.7e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 186.3 0.3 2.2e-56 1.1e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.3 bits; conditional E-value: 2.1e-56
+ == domain 1 score: 186.3 bits; conditional E-value: 2.2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k++ +++e+G+++L+r f s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl++a+a++d +l+++l++L
sp|P23601|HBA_MUSPU 1 VLSPADKTNVKSTWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTNAVAHMD-DLPGALSAL 83
@@ -6979,10 +7250,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09839|HBA_MACCA Hemoglobin subunit alpha OS=Macrotus californicus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.3 0.2 2.1e-56 9.8e-54 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 186.3 0.3 2.2e-56 1.1e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.3 bits; conditional E-value: 2.1e-56
+ == domain 1 score: 186.3 bits; conditional E-value: 2.2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka+W kv+ +++e+Ga++L+r+f+s+P+t+++F++F dL ++sa+vk Hgkkv+dAl++a+ ++d +l+++l++L
sp|P09839|HBA_MACCA 1 VLSAADKGNVKAAWDKVGGQAGEYGAEALERMFLSFPTTKTYFPHF-DLA-----HGSAQVKGHGKKVADALTNAVGHMD-DLPGALSAL 83
@@ -6996,10 +7267,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TSN7|HBA1_BUBBU Hemoglobin subunit alpha-1 OS=Bubalus bubalis PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.3 0.6 2.1e-56 9.8e-54 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 186.3 0.8 2.2e-56 1.1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.3 bits; conditional E-value: 2.1e-56
+ == domain 1 score: 186.3 bits; conditional E-value: 2.2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k++v+a+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++
sp|Q9TSN7|HBA1_BUBBU 2 VLSAADKSNVQAAWGKVGGHAADYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVGHLD-DLPGALSE 83
@@ -7013,10 +7284,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04237|HBA_TRAST Hemoglobin subunit alpha OS=Tragelaphus strepsiceros GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.3 0.7 2.1e-56 9.9e-54 3 149 .] 1 140 [] 1 140 [] 0.99
+ 1 ! 186.3 1.0 2.2e-56 1.1e-53 3 149 .] 1 140 [] 1 140 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.3 bits; conditional E-value: 2.1e-56
+ == domain 1 score: 186.3 bits; conditional E-value: 2.2e-56
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+a+k +vka+W+kv+++++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l+dLs
sp|P04237|HBA_TRAST 1 LSAADKGHVKAAWGKVGSHAAEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVDHLD-DLPGALSDLS 83
@@ -7030,10 +7301,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01966|HBA_BOVIN Hemoglobin subunit alpha OS=Bos taurus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.3 0.7 2.2e-56 1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 186.3 1.0 2.3e-56 1.1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.3 bits; conditional E-value: 2.2e-56
+ == domain 1 score: 186.3 bits; conditional E-value: 2.3e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++L
sp|P01966|HBA_BOVIN 2 VLSAADKGNVKAAWGKVGGHAAEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVEHLD-DLPGALSEL 84
@@ -7044,13 +7315,30 @@ Domain annotation for each sequence (and alignments):
sp|P01966|HBA_BOVIN 85 SDLHAHKLRVDPVNFKLLSHSLLVTLASHLPSDFTPAVHASLDKFLANVSTVLTSKYR 142
*********************************************************7 PP
+>> sp|B3EWE4|HBB_MICPE Hemoglobin subunit beta OS=Microtus pennsylvanicus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 186.3 0.9 2.3e-56 1.1e-53 1 149 [] 1 146 [] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 186.3 bits; conditional E-value: 2.3e-56
+ globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ v+L++aek ++ +W+k +++ +Ga++L rl++++P+tq+fFe+F+dLs + +++++++vk+Hgkkvl+A++d+l++ld +l++++++
+ sp|B3EWE4|HBB_MICPE 1 VHLTDAEKAALSGLWGKA--NADAVGAEALGRLLVVYPWTQRFFEHFGDLSSASAVMGNPKVKAHGKKVLHAFADGLKHLD-NLKGTFSA 87
+ 69**************98..8999*********************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++f+ll+++lv vl + l+k+ft+++qaa++K++a va +la+kY+
+ sp|B3EWE4|HBB_MICPE 88 LSELHCDKLHVDPENFRLLGNMLVLVLSHDLGKDFTPAAQAAFQKVVAGVASALAHKYH 146
+ **********************************************************7 PP
+
>> sp|Q28932|HBB_SMICR Hemoglobin subunit beta OS=Sminthopsis crassicaudata GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.2 0.1 2.4e-56 1.1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 186.2 0.2 2.5e-56 1.2e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.2 bits; conditional E-value: 2.4e-56
+ == domain 1 score: 186.2 bits; conditional E-value: 2.5e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls++ek +++a+W+kv v+++Ga++L rl+ ++P+t +fF++F+dLs + ++++a+v+ Hg kvl+ ++da++++d +l++++++
sp|Q28932|HBB_SMICR 2 VHLSAEEKGHINAIWSKV--SVDQTGAEALGRLLIVYPWTSRFFDHFGDLSSAKGVMGNAKVQGHGAKVLTSFGDAVKNMD-NLKGTFAK 88
@@ -7064,10 +7352,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q95190|HBE_HYLSY Hemoglobin subunit epsilon OS=Hylobates syndactylus GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.2 0.4 2.4e-56 1.1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 186.2 0.5 2.5e-56 1.2e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.2 bits; conditional E-value: 2.4e-56
+ == domain 1 score: 186.2 bits; conditional E-value: 2.5e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|Q95190|HBE_HYLSY 2 VHFTAEEKAAVTSLWNKM--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7081,10 +7369,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28779|HBG1_PANPA Hemoglobin subunit gamma-1 OS=Pan paniscus GN=HBG1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.2 0.0 2.4e-56 1.1e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 186.2 0.0 2.5e-56 1.2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 186.2 bits; conditional E-value: 2.4e-56
+ == domain 1 score: 186.2 bits; conditional E-value: 2.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|Q28779|HBG1_PANPA 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKHLD-DLKGTFAQ 88
@@ -7098,10 +7386,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01956|HBA_ROUAE Hemoglobin subunit alpha OS=Rousettus aegyptiacus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.0 0.1 2.7e-56 1.2e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 186.0 0.1 2.7e-56 1.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.0 bits; conditional E-value: 2.7e-56
+ == domain 1 score: 186.0 bits; conditional E-value: 2.7e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+kt++ka+W kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv dAl++a+ +ld +l+++l++L
sp|P01956|HBA_ROUAE 1 VLSSADKTNIKAAWDKVGGNAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVGDALTNAVGHLD-DLPGALSAL 83
@@ -7115,10 +7403,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09908|HBA_PHOVI Hemoglobin subunit alpha OS=Phoca vitulina GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.0 0.4 2.7e-56 1.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 186.0 0.6 2.8e-56 1.4e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.0 bits; conditional E-value: 2.7e-56
+ == domain 1 score: 186.0 bits; conditional E-value: 2.8e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka W k++ +++e+G+++L+r f+++P+t+++F++F dLs ++sa+vk+Hgkkv+dAl+ a+a++d +l+++l++L
sp|P09908|HBA_PHOVI 1 VLSPADKTNVKATWDKIGGHAGEYGGEALERTFTAFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTTAVAHMD-DLPGALSAL 83
@@ -7132,10 +7420,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0ZA50|HBA_PANHO Hemoglobin subunit alpha OS=Pantholops hodgsonii GN=HBA PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 186.0 0.1 2.8e-56 1.3e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 186.0 0.2 2.9e-56 1.4e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 186.0 bits; conditional E-value: 2.8e-56
+ == domain 1 score: 186.0 bits; conditional E-value: 2.9e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++ +Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg+kv+ Al++a+ +ld +l+++l+dL
sp|Q0ZA50|HBA_PANHO 2 VLSAADKSNVKAAWGKVGGNAGAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGEKVAAALTKAVGHLD-DLPGTLSDL 84
@@ -7149,10 +7437,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02103|HBE_RABIT Hemoglobin subunit epsilon OS=Oryctolagus cuniculus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.9 0.0 2.9e-56 1.4e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.9 0.0 3e-56 1.5e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.9 bits; conditional E-value: 2.9e-56
+ == domain 1 score: 185.9 bits; conditional E-value: 3e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek + + W++v +++e+G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P02103|HBE_RABIT 2 VHFTPEEKCIISKQWGQV--NIDETGGEALGRLLVVYPWTQRFFDNFGNLSSSSAIMGNPKVKAHGKKVLTSFGDAIKNMD-NLKGAFAK 88
@@ -7166,10 +7454,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18707|HBB_MESBR Hemoglobin subunit beta OS=Mesocricetus brandti GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.8 0.6 3.1e-56 1.4e-53 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 185.8 0.8 3.2e-56 1.6e-53 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.8 bits; conditional E-value: 3.1e-56
+ == domain 1 score: 185.8 bits; conditional E-value: 3.2e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek+ v +W+kv +++ +Ga++L rl+++tP+tq+fFe+F+dLs + +++++++vk+Hgkkv++ ++d+l++ld +l++++++
sp|P18707|HBB_MESBR 1 VHLTDAEKNLVSGLWGKV--NADAVGAEALGRLLVVTPWTQRFFEHFGDLSSASAVMNNPQVKAHGKKVIHSFADGLKHLD-NLKGAFSS 87
@@ -7183,10 +7471,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P26915|HBA_NASNA Hemoglobin subunit alpha OS=Nasua nasua GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.8 0.2 3.2e-56 1.5e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.8 0.3 3.3e-56 1.6e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.8 bits; conditional E-value: 3.2e-56
+ == domain 1 score: 185.8 bits; conditional E-value: 3.3e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k+ W k+++++ e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv++Al++a+a+ld +l+++l++L
sp|P26915|HBA_NASNA 1 VLSPADKTNIKSTWEKIGSHASEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVAEALTNAVAHLD-DLPGALSTL 83
@@ -7200,10 +7488,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09423|HBA_BISBO Hemoglobin subunit alpha-I/II OS=Bison bonasus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.8 0.5 3.2e-56 1.5e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 185.8 0.7 3.3e-56 1.6e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.8 bits; conditional E-value: 3.2e-56
+ == domain 1 score: 185.8 bits; conditional E-value: 3.3e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++L
sp|P09423|HBA_BISBO 2 VLSAADKGNVKAAWGKVGGHAAEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVGHLD-DLPGALSEL 84
@@ -7217,10 +7505,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XI7|HBD_DUGDU Hemoglobin subunit delta OS=Dugong dugon GN=HBD PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.8 0.3 3.2e-56 1.5e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.8 0.4 3.3e-56 1.6e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.8 bits; conditional E-value: 3.2e-56
+ == domain 1 score: 185.8 bits; conditional E-value: 3.3e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++e v+ +Wakv +v+e+G+++L rl++++P+tq+fFe+F+dLs + +++ +++vk+Hg+kvl ++d+l++ld +l++++++
sp|Q45XI7|HBD_DUGDU 2 VHLTADETALVTGLWAKV--NVKEYGGEALGRLLVVYPWTQRFFEHFGDLSSASAVMHNPKVKAHGEKVLASFGDGLKHLD-DLKGAFAE 88
@@ -7234,10 +7522,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZM1|MYG_URILO Myoglobin OS=Uria lomvia GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.7 1.0 3.2e-56 1.5e-53 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 185.7 1.4 3.3e-56 1.6e-53 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 185.7 bits; conditional E-value: 3.2e-56
+ == domain 1 score: 185.7 bits; conditional E-value: 3.3e-56
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+++W+kve+d +++G ++L+rlf+ +P+t++ FekFk+L+t+d++k+s+d+kkHg++vl+ l+++l++ ++++e++lk+L+
sp|Q7LZM1|MYG_URILO 3 LSDQEWQHVLTIWGKVESDLAGHGHQVLMRLFQDHPETLDRFEKFKGLKTPDQMKGSEDLKKHGVTVLTQLGKILKQ-KGNHESELKPLA 91
@@ -7248,13 +7536,30 @@ Domain annotation for each sequence (and alignments):
sp|Q7LZM1|MYG_URILO 92 QTHATKHKIPVKYLEFISEAIIKVIAEKHASSFGADSQAAMKKALELFRNDMASKYK 148
********************************************************7 PP
+>> sp|B3EWC7|HBA_TAMMR Hemoglobin subunit alpha OS=Tamias merriami PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 185.7 1.0 3.5e-56 1.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 185.7 bits; conditional E-value: 3.5e-56
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+a+kt+vka+W kv+ + + +Ga++L+r+f+s+P+t+++F++F dLs ++sa+v+ Hgkkv+dAl++a +ld +l+++l++L
+ sp|B3EWC7|HBA_TAMMR 1 VLSPADKTNVKAAWEKVGGHGAAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVQGHGKKVADALANAAGHLD-DLPSALSAL 83
+ 69********************************************.***.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa++p+eft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWC7|HBA_TAMMR 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPAEFTPAVHASLDKFLATVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P68026|HBE_CALJA Hemoglobin subunit epsilon OS=Callithrix jacchus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.7 0.1 3.4e-56 1.6e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.7 0.1 3.5e-56 1.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.7 bits; conditional E-value: 3.4e-56
+ == domain 1 score: 185.7 bits; conditional E-value: 3.5e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68026|HBE_CALJA 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7265,30 +7570,30 @@ Domain annotation for each sequence (and alignments):
sp|P68026|HBE_CALJA 89 LSELHCDKLHVDPENFRLLGNVLVIILATHFGKEFTPEVQAAWQKLVSAVAIALGHKYH 147
**********************************************************7 PP
->> sp|P68027|HBE_CEBPY Hemoglobin subunit epsilon OS=Cebuella pygmaea GN=HBE1 PE=2 SV=2
+>> sp|P68027|HBE_CALPY Hemoglobin subunit epsilon OS=Callithrix pygmaea GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.7 0.1 3.4e-56 1.6e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.7 0.1 3.5e-56 1.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.7 bits; conditional E-value: 3.4e-56
+ == domain 1 score: 185.7 bits; conditional E-value: 3.5e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
- sp|P68027|HBE_CEBPY 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
+ sp|P68027|HBE_CALPY 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
5789**************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++f+ll++vlv +la++++keft++vqaa +Kl++ va++l +kY+
- sp|P68027|HBE_CEBPY 89 LSELHCDKLHVDPENFRLLGNVLVIILATHFGKEFTPEVQAAWQKLVSAVAIALGHKYH 147
+ sp|P68027|HBE_CALPY 89 LSELHCDKLHVDPENFRLLGNVLVIILATHFGKEFTPEVQAAWQKLVSAVAIALGHKYH 147
**********************************************************7 PP
>> sp|P08224|HBG_CHEME Hemoglobin subunit gamma OS=Cheirogaleus medius GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.7 0.2 3.4e-56 1.6e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 185.7 0.3 3.5e-56 1.7e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.7 bits; conditional E-value: 3.4e-56
+ == domain 1 score: 185.7 bits; conditional E-value: 3.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ + +ek ++++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l++a++++d +l++++++L
sp|P08224|HBG_CHEME 3 HFTVEEKAVITSLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSASAIMGNPKVKAHGKKVLTSLGEAIKNMD-DLKGTFAHL 89
@@ -7302,10 +7607,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P41327|HBA_LYNLY Hemoglobin subunit alpha OS=Lynx lynx GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.6 0.3 3.5e-56 1.6e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.6 0.5 3.6e-56 1.8e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.6 bits; conditional E-value: 3.5e-56
+ == domain 1 score: 185.6 bits; conditional E-value: 3.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka W+k++++++++G+++L+r f s+P+t+++F++F dLs ++sa+vk+Hg+kv+dAl++a+a++d +l+++l++L
sp|P41327|HBA_LYNLY 1 VLSAADKSNVKACWGKIGSHAGDYGTEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVKAHGQKVADALTQAVAHID-DLPNALSAL 83
@@ -7319,10 +7624,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08852|HBA_MARMA Hemoglobin subunit alpha OS=Marmota marmota marmota GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.6 0.8 3.5e-56 1.6e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.6 1.2 3.6e-56 1.8e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.6 bits; conditional E-value: 3.5e-56
+ == domain 1 score: 185.6 bits; conditional E-value: 3.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W k++ + + +Ga++L+r+f+s+P+t+++F++F dLs ++sa+++ Hgkkv+dAl++a a++d +l+++l++L
sp|P08852|HBA_MARMA 1 VLSPADKTNVKAAWEKIGGHGAAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQIQGHGKKVADALANAAAHVD-DLPSALSAL 83
@@ -7336,10 +7641,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08225|HBG_EULFU Hemoglobin subunit gamma OS=Eulemur fulvus fulvus GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.5 0.1 3.8e-56 1.8e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.5 0.2 3.9e-56 1.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.5 bits; conditional E-value: 3.8e-56
+ == domain 1 score: 185.5 bits; conditional E-value: 3.9e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++++W+kv +vee G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da++++d +l++++++
sp|P08225|HBG_EULFU 2 VHFTAEEKAVITSLWGKV--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKNMD-DLKGTFAH 88
@@ -7353,10 +7658,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68077|HBG_MACMU Hemoglobin subunit gamma OS=Macaca mulatta GN=HBG PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.0 4.3e-56 2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 185.3 0.0 4.4e-56 2.2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.3e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.4e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++L
sp|P68077|HBG_MACMU 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKNLD-DLKGTFAQL 89
@@ -7370,10 +7675,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68078|HBG_MACFU Hemoglobin subunit gamma OS=Macaca fuscata fuscata GN=HBG PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.0 4.3e-56 2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 185.3 0.0 4.4e-56 2.2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.3e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.4e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++L
sp|P68078|HBG_MACFU 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKNLD-DLKGTFAQL 89
@@ -7387,10 +7692,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68079|HBG_PAPCY Hemoglobin subunit gamma OS=Papio cynocephalus GN=HBG PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.0 4.3e-56 2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 185.3 0.0 4.4e-56 2.2e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.3e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.4e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++L
sp|P68079|HBG_PAPCY 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKNLD-DLKGTFAQL 89
@@ -7404,10 +7709,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01945|HBA_MESAU Hemoglobin subunit alpha OS=Mesocricetus auratus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.2 4.3e-56 2e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.3 0.4 4.5e-56 2.2e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.3e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt++ ++W+k++ +++e+Ga++L+r+f ++P+t+++F++F d+s ++sa+vk Hgkkv+dAl++a+ +ld +l+++l++L
sp|P01945|HBA_MESAU 1 VLSAKDKTNISEAWGKIGGHAGEYGAEALERMFFVYPTTKTYFPHF-DVS-----HGSAQVKGHGKKVADALTNAVGHLD-DLPGALSAL 83
@@ -7421,10 +7726,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02095|HBB_CAVPO Hemoglobin subunit beta OS=Cavia porcellus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.5 4.3e-56 2e-53 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 185.3 0.8 4.5e-56 2.2e-53 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.3e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.5e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L++aek++++ +W+kv +v+e Ga++L rl++++P+tq+fFekF+dLs + +++++a+vk Hg kvl +s++l++l+ +l++++++
sp|P02095|HBB_CAVPO 1 VHLTAAEKSAILDLWGKV--NVGEIGAEALGRLLVVYPWTQRFFEKFGDLSSASAIMSNAHVKSHGAKVLASFSEGLKHLQ-DLKGTFAK 87
@@ -7438,10 +7743,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P20243|HBA_MUSPF Hemoglobin subunit alpha-1/2 OS=Mustela putorius furo PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.2 4.3e-56 2e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.3 0.3 4.5e-56 2.2e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.3e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k++ +++e+G+++L+r f s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl++a+a++d +l+++l++L
sp|P20243|HBA_MUSPF 1 VLSPADKTNVKSTWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTNAVAHVD-DLPGALSAL 83
@@ -7455,10 +7760,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01953|HBA_MELME Hemoglobin subunit alpha OS=Meles meles GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.1 4.5e-56 2.1e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.3 0.2 4.6e-56 2.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.5e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k ++ka W k++ +++e+G+++L+r f s+P+t+++F++F dLs ++sa+vk Hgkkv+dAl++a+a+ld +l+++l++L
sp|P01953|HBA_MELME 1 VLSPADKANIKATWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVADALTNAVAHLD-DLPGALSAL 83
@@ -7472,10 +7777,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11750|HBA_SPEPA Hemoglobin subunit alpha OS=Spermophilus parryii GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.6 4.5e-56 2.1e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.3 0.9 4.6e-56 2.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.5e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka W k++ + + +Ga++L+r+f+s+P+t+++F++F dLs ++sa+v+ Hgkkv+dAl++a a++d +l+++l++L
sp|P11750|HBA_SPEPA 1 VLSPADKTNVKASWEKIGGHGAAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVQGHGKKVADALANAAAHVD-DLPGALSAL 83
@@ -7489,10 +7794,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02100|HBE_HUMAN Hemoglobin subunit epsilon OS=Homo sapiens GN=HBE1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.3 4.6e-56 2.1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.3 0.4 4.7e-56 2.3e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.6e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.7e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l+ ++++
sp|P02100|HBE_HUMAN 2 VHFTAEEKAAVTSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKPAFAK 88
@@ -7506,10 +7811,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6LDH0|HBE_GORGO Hemoglobin subunit epsilon OS=Gorilla gorilla gorilla GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.3 4.6e-56 2.1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.3 0.4 4.7e-56 2.3e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.6e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.7e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l+ ++++
sp|Q6LDH0|HBE_GORGO 2 VHFTAEEKAAVTSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKPAFAK 88
@@ -7523,10 +7828,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6LDH1|HBE_PANTR Hemoglobin subunit epsilon OS=Pan troglodytes GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.3 0.3 4.6e-56 2.1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 185.3 0.4 4.7e-56 2.3e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 185.3 bits; conditional E-value: 4.6e-56
+ == domain 1 score: 185.3 bits; conditional E-value: 4.7e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l+ ++++
sp|Q6LDH1|HBE_PANTR 2 VHFTAEEKAAVTSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKPAFAK 88
@@ -7540,10 +7845,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23600|HBA_MUSLU Hemoglobin subunit alpha-1/2 OS=Mustela lutreola PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.2 0.2 4.7e-56 2.2e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.2 0.3 4.8e-56 2.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.2 bits; conditional E-value: 4.7e-56
+ == domain 1 score: 185.2 bits; conditional E-value: 4.8e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k++ +++e+G+++L+r f s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl++a+a++d +l++++++L
sp|P23600|HBA_MUSLU 1 VLSPADKTNVKSTWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTNAVAHMD-DLPGAMSAL 83
@@ -7557,10 +7862,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01969|HBA_BOSGF Hemoglobin subunit alpha OS=Bos gaurus frontalis GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.2 0.6 4.8e-56 2.2e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 185.2 0.9 5e-56 2.4e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.2 bits; conditional E-value: 4.8e-56
+ == domain 1 score: 185.2 bits; conditional E-value: 5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++L
sp|P01969|HBA_BOSGF 2 VLSAADKGNVKAAWGKVGDHAAEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVGHLD-DLPGALSEL 84
@@ -7574,10 +7879,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09420|HBA_SPECI Hemoglobin subunit alpha OS=Spermophilus citellus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.2 0.4 4.9e-56 2.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.2 0.6 5e-56 2.4e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.2 bits; conditional E-value: 4.9e-56
+ == domain 1 score: 185.2 bits; conditional E-value: 5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk W k++ + +e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+v+ Hgkkv+dAl++a a++d +l+++l++L
sp|P09420|HBA_SPECI 1 VLSPADKKNVKDCWEKIGGHGAEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVQGHGKKVADALANAAAHVD-DLPGALSAL 83
@@ -7591,10 +7896,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01967|HBA1_BOSMU Hemoglobin subunit alpha-1 OS=Bos mutus grunniens PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.1 0.5 5e-56 2.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.1 0.7 5.2e-56 2.5e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.1 bits; conditional E-value: 5e-56
+ == domain 1 score: 185.1 bits; conditional E-value: 5.2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k +vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++
sp|P01967|HBA1_BOSMU 1 VLSAADKGNVKAAWGKVGGHAAEYGAEALERMFLSFPTTKTYFPHF-DLS-----QGSAQVKGHGAKVAAALTKAVEHLD-DLPGALSE 82
@@ -7605,30 +7910,30 @@ Domain annotation for each sequence (and alignments):
sp|P01967|HBA1_BOSMU 83 LSDLHAHKLRVDPVNFKLLSHSLLVTLASHLPSDFTPAVHASLDKFLANVSTVLTSKYR 141
**********************************************************7 PP
->> sp|P09904|HBA_PHYCA Hemoglobin subunit alpha OS=Physeter catodon GN=HBA PE=1 SV=1
+>> sp|P09904|HBA_PHYMC Hemoglobin subunit alpha OS=Physeter macrocephalus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.0 0.8 5.3e-56 2.5e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.0 1.1 5.5e-56 2.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.0 bits; conditional E-value: 5.3e-56
+ == domain 1 score: 185.0 bits; conditional E-value: 5.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+Wakv+ ++++ Ga++L+r+f+s+P t+++F +F dL ++s +vk Hgkkv+dAl++a+ +ld l+ +l+dL
- sp|P09904|HBA_PHYCA 1 VLSPADKTNVKAAWAKVGNHAADFGAEALERMFMSFPSTKTYFSHF-DLG-----HNSTQVKGHGKKVADALTKAVGHLD-TLPDALSDL 83
+ sp|P09904|HBA_PHYMC 1 VLSPADKTNVKAAWAKVGNHAADFGAEALERMFMSFPSTKTYFSHF-DLG-----HNSTQVKGHGKKVADALTKAVGHLD-TLPDALSDL 83
69********************************************.999.....9************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa+kl+vdp +fklls++l+++laa+lp++ft++v+a+l+K+la+v+++l+skY+
- sp|P09904|HBA_PHYCA 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPGDFTPSVHASLDKFLASVSTVLTSKYR 141
+ sp|P09904|HBA_PHYMC 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPGDFTPSVHASLDKFLASVSTVLTSKYR 141
*********************************************************7 PP
>> sp|P01968|HBA2_BOSMU Hemoglobin subunit alpha-2 OS=Bos mutus grunniens PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.0 0.5 5.3e-56 2.5e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 185.0 0.7 5.5e-56 2.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.0 bits; conditional E-value: 5.3e-56
+ == domain 1 score: 185.0 bits; conditional E-value: 5.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k +vka+W+kv+ +++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++
sp|P01968|HBA2_BOSMU 1 VLSAADKGNVKAAWGKVGGHAAEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVGHLD-DLPGALSE 82
@@ -7642,10 +7947,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02065|HBB2_TAPTE Hemoglobin subunit beta-2 OS=Tapirus terrestris GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 185.0 0.6 5.6e-56 2.6e-53 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 185.0 0.9 5.7e-56 2.8e-53 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 185.0 bits; conditional E-value: 5.6e-56
+ == domain 1 score: 185.0 bits; conditional E-value: 5.7e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L +ek +v+a+W kv d e++G+++L rl++++P+tq+fF++F+dLst+++++++++vk+Hgkkvl+ +++++ +ld +l+ +++
sp|P02065|HBB2_TAPTE 1 VHLHGDEKAAVLALWDKV--DEEKVGGEALGRLLVVYPWTQRFFDSFGDLSTAAAVMGNPKVKAHGKKVLHSFGEGVHHLD-DLKVTFA 86
@@ -7656,13 +7961,13 @@ Domain annotation for each sequence (and alignments):
sp|P02065|HBB2_TAPTE 87 QLSELHCDKLHVDPENFRLLGNVLVVVLAQQFGKAFTPELQAAYQKVVAGVASALAHKYH 146
***********************************************************7 PP
->> sp|P68016|HBE_AOTAZ Hemoglobin subunit epsilon OS=Aotus azarai GN=HBE1 PE=2 SV=2
+>> sp|P68016|HBE_AOTAZ Hemoglobin subunit epsilon OS=Aotus azarae GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68016|HBE_AOTAZ 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7676,10 +7981,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68017|HBE_ALOBE Hemoglobin subunit epsilon OS=Alouatta belzebul GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68017|HBE_ALOBE 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7693,10 +7998,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68018|HBE_ALOSE Hemoglobin subunit epsilon OS=Alouatta seniculus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68018|HBE_ALOSE 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7710,10 +8015,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68019|HBE_ATEGE Hemoglobin subunit epsilon OS=Ateles geoffroyi GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68019|HBE_ATEGE 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7727,10 +8032,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68020|HBE_BRAAR Hemoglobin subunit epsilon OS=Brachyteles arachnoides GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68020|HBE_BRAAR 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7744,10 +8049,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68021|HBE_CACCA Hemoglobin subunit epsilon OS=Cacajao calvus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68021|HBE_CACCA 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7761,10 +8066,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68022|HBE_CALMO Hemoglobin subunit epsilon OS=Callicebus moloch GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68022|HBE_CALMO 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7778,10 +8083,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68023|HBE_CALTO Hemoglobin subunit epsilon OS=Callicebus torquatus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68023|HBE_CALTO 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7795,10 +8100,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68024|HBE_CALGO Hemoglobin subunit epsilon OS=Callimico goeldii GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68024|HBE_CALGO 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7812,10 +8117,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68025|HBE_CHISA Hemoglobin subunit epsilon OS=Chiropotes satanas GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 5.8e-56 2.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.9 0.1 6e-56 2.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 5.8e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68025|HBE_CHISA 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7829,10 +8134,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14390|HBA_PTEPO Hemoglobin subunit alpha OS=Pteropus poliocephalus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.9 0.1 6e-56 2.8e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 184.9 0.1 6.2e-56 3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.9 bits; conditional E-value: 6e-56
+ == domain 1 score: 184.9 bits; conditional E-value: 6.2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +k++vka+W kv+ +v+e+Ga++L+r+f+s+P+t+++F++F dL ++s +vk+Hgkkv dAl++a+ ++d +l+++l++L
sp|P14390|HBA_PTEPO 1 VLSSTDKSNVKAAWDKVGGNVGEYGAEALERMFLSFPTTKTYFPHF-DLA-----HGSSQVKAHGKKVGDALTNAVGHMD-DLPGALSAL 83
@@ -7846,10 +8151,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10885|HBA_PTEBR Hemoglobin subunit alpha OS=Pteronura brasiliensis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.7 0.2 6.7e-56 3.1e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 184.7 0.2 6.9e-56 3.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.7 bits; conditional E-value: 6.7e-56
+ == domain 1 score: 184.7 bits; conditional E-value: 6.9e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka W k++ +++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl++a+a++d +l+a+l++L
sp|P10885|HBA_PTEBR 1 VLSPADKTNVKATWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTNAVAHMD-DLPAALSAL 83
@@ -7863,10 +8168,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68056|HBBC_SHEEP Hemoglobin subunit beta-C OS=Ovis aries GN=HBBC PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.7 0.2 6.7e-56 3.1e-53 7 149 .] 3 142 .] 1 142 [] 0.99
+ 1 ! 184.7 0.2 7e-56 3.4e-53 7 149 .] 3 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.7 bits; conditional E-value: 6.7e-56
+ == domain 1 score: 184.7 bits; conditional E-value: 7e-56
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
+k ++ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLst+d++ ++a+vk+Hgkkvld +s+++++ld +l++++++LselH
sp|P68056|HBBC_SHEEP 3 NKALITGFWSKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSTADAVLGNAKVKAHGKKVLDSFSNGVQHLD-DLKGTFAQLSELH 88
@@ -7880,10 +8185,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P20854|HBA_CTEGU Hemoglobin subunit alpha OS=Ctenodactylus gundi GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.6 0.9 7.3e-56 3.4e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 184.6 1.4 7.5e-56 3.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.6 bits; conditional E-value: 7.3e-56
+ == domain 1 score: 184.6 bits; conditional E-value: 7.5e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W k++ + +e+Ga++L+r+f+s+P+t+++F++F d+s ++sa+vk+Hgkkv+dAl++a +ld +l+++l++L
sp|P20854|HBA_CTEGU 1 VLSAADKTNVKAAWDKIGGHGGEYGAEALERMFLSFPTTKTYFPHF-DVS-----HGSAQVKAHGKKVADALANAASHLD-DLPNALSAL 83
@@ -7897,10 +8202,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28775|HBE_PANPA Hemoglobin subunit epsilon OS=Pan paniscus GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.6 0.2 7.3e-56 3.4e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.6 0.3 7.6e-56 3.7e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.6 bits; conditional E-value: 7.3e-56
+ == domain 1 score: 184.6 bits; conditional E-value: 7.6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +v+++W+k+ +vee G+++L rl+ ++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l+ ++++
sp|Q28775|HBE_PANPA 2 VHFTAEEKAAVTSLWSKM--NVEEAGGEALGRLLIVYPWTQRFFDSFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKPAFAK 88
@@ -7914,10 +8219,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68057|HBBC_OVIMU Hemoglobin subunit beta-C OS=Ovis orientalis musimon GN=HBBC PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.6 0.2 7.3e-56 3.4e-53 7 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 184.6 0.2 7.5e-56 3.6e-53 7 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.6 bits; conditional E-value: 7.3e-56
+ == domain 1 score: 184.6 bits; conditional E-value: 7.5e-56
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
+k ++ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLst+d++ ++a+vk+Hgkkvld +s+++++ld +l++++++LselH
sp|P68057|HBBC_OVIMU 2 NKALITGFWSKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSTADAVLGNAKVKAHGKKVLDSFSNGVQHLD-DLKGTFAQLSELH 87
@@ -7931,10 +8236,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P51443|HBE_SAGMI Hemoglobin subunit epsilon OS=Saguinus midas GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.4 0.1 8.4e-56 3.9e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.4 0.1 8.6e-56 4.2e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.4 bits; conditional E-value: 8.4e-56
+ == domain 1 score: 184.4 bits; conditional E-value: 8.6e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P51443|HBE_SAGMI 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSFPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -7948,10 +8253,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14389|HBA_PTEAL Hemoglobin subunit alpha OS=Pteropus alecto GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.4 0.1 8.5e-56 3.9e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 184.4 0.2 8.7e-56 4.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.4 bits; conditional E-value: 8.5e-56
+ == domain 1 score: 184.4 bits; conditional E-value: 8.7e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +k++vka+W kv+ +v+e+Ga++L+r+f+s+P+t+++F++F dL ++s +vk+Hgkkv dAl++a+ ++d +l+++l++L
sp|P14389|HBA_PTEAL 1 VLSSTDKSNVKAAWDKVGGHVGEYGAEALERMFLSFPTTKTYFPHF-DLA-----HGSSQVKAHGKKVGDALTNAVGHID-DLPGALSAL 83
@@ -7965,10 +8270,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11755|HBA1_TADBR Hemoglobin subunit alpha-1 OS=Tadarida brasiliensis PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.4 0.0 8.5e-56 3.9e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 184.4 0.0 8.8e-56 4.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.4 bits; conditional E-value: 8.5e-56
+ == domain 1 score: 184.4 bits; conditional E-value: 8.8e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+++k++vka+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hgkkv +Al+ a++++d +l+++l++
sp|P11755|HBA1_TADBR 1 VLSPEDKNNVKAAWSKVGGQAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGKKVGEALTTAVNHMD-DLPGALST 82
@@ -7982,10 +8287,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02097|HBG_MACNE Hemoglobin subunit gamma OS=Macaca nemestrina GN=HBG PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.3 0.0 8.7e-56 4e-53 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 184.3 0.0 9e-56 4.4e-53 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.3 bits; conditional E-value: 8.7e-56
+ == domain 1 score: 184.3 bits; conditional E-value: 9e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++L
sp|P02097|HBG_MACNE 2 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKNLD-DLKGTFAQL 88
@@ -7999,10 +8304,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01958|HBA_HORSE Hemoglobin subunit alpha OS=Equus caballus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.3 0.2 8.9e-56 4.1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 184.3 0.3 9.2e-56 4.5e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.3 bits; conditional E-value: 8.9e-56
+ == domain 1 score: 184.3 bits; conditional E-value: 9.2e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e+Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++L
sp|P01958|HBA_HORSE 2 VLSAADKTNVKAAWSKVGGHAGEYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSNL 84
@@ -8016,10 +8321,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P51440|HBE_LAGLA Hemoglobin subunit epsilon OS=Lagothrix lagotricha GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.3 0.1 9.1e-56 4.2e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 184.3 0.2 9.3e-56 4.5e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.3 bits; conditional E-value: 9.1e-56
+ == domain 1 score: 184.3 bits; conditional E-value: 9.3e-56
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P51440|HBE_LAGLA 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFEDAIKNMD-NLKTTFAK 88
@@ -8030,13 +8335,30 @@ Domain annotation for each sequence (and alignments):
sp|P51440|HBE_LAGLA 89 LSELHCDKLHVDPENFRLLGNVMVIILATHFGKEFTPEVQAAWQKLVSAVAIALGHKYH 147
**********************************************************7 PP
+>> sp|D0VX09|HBA_PTEGI Hemoglobin subunit alpha OS=Pteropus giganteus GN=HBA PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 184.3 0.1 9.6e-56 4.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 184.3 bits; conditional E-value: 9.6e-56
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs +k++vka+W kv+ +v+e+Ga++L+r+f+s+P+t+++F++F dL ++s +vk+Hgkkv dAl++a+ ++d +l+++l++L
+ sp|D0VX09|HBA_PTEGI 1 VLSSTDKSNVKAAWDKVGGNVGEYGAEALERMFLSFPTTKTYFPHF-DLA-----HGSSQVKAHGKKVGDALTNAVGHID-DLPGALSAL 83
+ 69********************************************.999.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa kl+vdp +fklls++l+++la++lp++ft++v+a+l+K+la+v+++l+skY+
+ sp|D0VX09|HBA_PTEGI 84 SDLHAYKLRVDPVNFKLLSHCLLVTLASHLPSDFTPAVHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P07403|HBA_SPETO Hemoglobin subunit alpha OS=Spermophilus townsendii GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.3 0.6 9.3e-56 4.3e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 184.3 0.9 9.6e-56 4.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.3 bits; conditional E-value: 9.3e-56
+ == domain 1 score: 184.3 bits; conditional E-value: 9.6e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka W k++ + + +Ga++L+r+f+s+P+t+++F++F dLs ++sa+v+ Hgkkv+dAl++a a++d +l+++l++L
sp|P07403|HBA_SPETO 1 VLSPADKNNVKACWEKIGGHGAAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVQGHGKKVADALANAAAHVD-DLPSALSAL 83
@@ -8050,10 +8372,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18995|HBG1_PONPY Hemoglobin subunit gamma-1 OS=Pongo pygmaeus GN=HBG1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.2 0.0 9.4e-56 4.4e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 184.2 0.0 9.7e-56 4.7e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 184.2 bits; conditional E-value: 9.4e-56
+ == domain 1 score: 184.2 bits; conditional E-value: 9.7e-56
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P18995|HBG1_PONPY 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAIKNLD-DLKGTFAQ 88
@@ -8067,10 +8389,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02082|HBBF_CAPHI Hemoglobin fetal subunit beta OS=Capra hircus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 184.1 0.0 1.1e-55 4.9e-53 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 184.1 0.0 1.1e-55 5.3e-53 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 184.1 bits; conditional E-value: 1.1e-55
+ == domain 1 score: 184.1 bits; conditional E-value: 1.1e-55
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek v++++akv +vee+G+++L rl++++P+tq+fFe+F+dLs +d++ ++++vk+Hgkkvld +s++l++ld +l++++++L
sp|P02082|HBBF_CAPHI 2 LSAEEKASVLSLFAKV--NVEEVGGEALGRLLVVYPWTQRFFEHFGDLSSADAILGNPKVKAHGKKVLDTFSEGLKQLD-DLKGAFASL 87
@@ -8084,10 +8406,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TVA3|HBA2_EQUBU Hemoglobin subunit alpha-2 OS=Equus burchelli GN=HBA2 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.9 0.1 1.2e-55 5.6e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 183.9 0.2 1.2e-55 6.1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.9 bits; conditional E-value: 1.2e-55
+ == domain 1 score: 183.9 bits; conditional E-value: 1.2e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++
sp|Q9TVA3|HBA2_EQUBU 2 VLSAADKTNVKAAWGKVGGNAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSN 83
@@ -8101,10 +8423,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TSN9|HBA3_BUBBU Hemoglobin subunit alpha-3 OS=Bubalus bubalis PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.9 0.6 1.2e-55 5.6e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 183.9 0.8 1.3e-55 6.1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.9 bits; conditional E-value: 1.2e-55
+ == domain 1 score: 183.9 bits; conditional E-value: 1.3e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+k++v+a+W+kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk Hg kv+ Al++a+ +ld +l+++l++
sp|Q9TSN9|HBA3_BUBBU 2 VLSAADKSNVQAAWGKVGGHAADYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKGHGAKVAAALTKAVGHLD-DLPGALSE 83
@@ -8118,10 +8440,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14526|HBB_BRATR Hemoglobin subunit beta OS=Bradypus tridactylus GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.8 0.8 1.3e-55 6.1e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 183.8 1.1 1.3e-55 6.6e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.8 bits; conditional E-value: 1.3e-55
+ == domain 1 score: 183.8 bits; conditional E-value: 1.3e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek +v a+W kv +vee G+++L rl++++P+t +fFe+F+dLs +d++ ++a+vk+Hgkkvl+ ++++l++ld +l++++++
sp|P14526|HBB_BRATR 2 VHLADDEKAAVSALWHKV--HVEEFGGEALGRLLVVYPWTSRFFESFGDLSSADAVFSNAKVKAHGKKVLTSFGEGLKHLD-DLKGTYAH 88
@@ -8135,10 +8457,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01942|HBA_MOUSE Hemoglobin subunit alpha OS=Mus musculus GN=Hba PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.8 0.3 1.3e-55 6.1e-53 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 183.8 0.4 1.4e-55 6.7e-53 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.8 bits; conditional E-value: 1.3e-55
+ == domain 1 score: 183.8 bits; conditional E-value: 1.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k+++ka+W+k++ + +e+Ga++L+r+f s+P+t+++F++F d+s ++sa+vk Hgkkv+dAl+ a +ld +l+++l++L
sp|P01942|HBA_MOUSE 2 VLSGEDKSNIKAAWGKIGGHGAEYGAEALERMFASFPTTKTYFPHF-DVS-----HGSAQVKGHGKKVADALASAAGHLD-DLPGALSAL 84
@@ -8152,10 +8474,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68058|HBBC_AMMLE Hemoglobin subunit beta-C OS=Ammotragus lervia PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.7 0.2 1.3e-55 6.2e-53 7 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 183.7 0.2 1.4e-55 6.7e-53 7 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.7 bits; conditional E-value: 1.3e-55
+ == domain 1 score: 183.7 bits; conditional E-value: 1.4e-55
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
+k ++ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLst+d++ ++a+vk+Hgkkvld +s+++++ld +l++++++LselH
sp|P68058|HBBC_AMMLE 2 NKALITGFWSKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSTADAVLGNAKVKAHGKKVLDSFSZGVQHLD-DLKGTFAQLSELH 87
@@ -8169,10 +8491,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68028|HBE_SAISC Hemoglobin subunit epsilon OS=Saimiri sciureus GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.5 0.1 1.6e-55 7.2e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 183.5 0.2 1.6e-55 7.8e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
+ == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68028|HBE_SAISC 2 VHFTAEEKAAITSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -8186,10 +8508,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68029|HBE_SAIBB Hemoglobin subunit epsilon OS=Saimiri boliviensis boliviensis GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.5 0.1 1.6e-55 7.2e-53 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 183.5 0.2 1.6e-55 7.8e-53 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
+ == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P68029|HBE_SAIBB 2 VHFTAEEKAAITSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -8203,10 +8525,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P56208|MYG_CARCR Myoglobin OS=Caretta caretta GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.5 0.7 1.6e-55 7.2e-53 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 183.5 1.1 1.6e-55 7.8e-53 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
+ == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+ +Wakve d +G+++++rlf+ +P+tqe F kFk+L+t d+lk+s++vkkHg +vl+Al+ +l++ ++++e++lk+L+
sp|P56208|MYG_CARCR 3 LSDDEWNHVLGIWAKVEPDLSAHGQEVIIRLFQLHPETQERFAKFKNLTTIDALKSSEEVKKHGTTVLTALGRILKQ-KNNHEQELKPLA 91
@@ -8220,10 +8542,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02087|HBB_DASNO Hemoglobin subunit beta OS=Dasypus novemcinctus GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.4 0.4 1.6e-55 7.6e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 183.4 0.5 1.7e-55 8.3e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.4 bits; conditional E-value: 1.6e-55
+ == domain 1 score: 183.4 bits; conditional E-value: 1.7e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+ +ekt+v+a+W kv dve+ G+++L rl++++P+tq+fFe+F+dLst++++ ++a+vk+Hgkkvl+ +++++++ld +l++++++L
sp|P02087|HBB_DASNO 3 NLTSDEKTAVLALWNKV--DVEDCGGEALGRLLVVYPWTQRFFESFGDLSTPAAVFANAKVKAHGKKVLTSFGEGMNHLD-NLKGTFAKL 89
@@ -8237,10 +8559,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02052|HBB_TUPGL Hemoglobin subunit beta OS=Tupaia glis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.5 0.0 1.6e-55 7.6e-53 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 183.5 0.0 1.7e-55 8.2e-53 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.5 bits; conditional E-value: 1.6e-55
+ == domain 1 score: 183.5 bits; conditional E-value: 1.7e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek +v+ +W+kv d e++G++ L l+ ++P+tq+fF++F+dLs + +++++++vk+Hgkkvl+ +sd+l++ld +l++++++
sp|P02052|HBB_TUPGL 1 VHLSGEEKAAVTGLWGKV--DLEKVGGQSLGSLLIVYPWTQRFFDSFGDLSSPSAVMSNPKVKAHGKKVLTSFSDGLNHLD-NLKGTFAK 87
@@ -8254,10 +8576,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02202|MYG_CHEMY Myoglobin OS=Chelonia mydas GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.4 0.8 1.8e-55 8.1e-53 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 183.4 1.1 1.8e-55 8.8e-53 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 183.4 bits; conditional E-value: 1.8e-55
+ == domain 1 score: 183.4 bits; conditional E-value: 1.8e-55
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+++v+ +Wakve d +G+++++rlf+ +P+tqe F kFk+L+t d+lk+s++vkkHg +vl+Al+ +l++ ++++e++lk+L+
sp|P02202|MYG_CHEMY 3 LSDDEWNHVLGIWAKVEPDLTAHGQEVIIRLFQLHPETQERFAKFKNLTTIDALKSSEEVKKHGTTVLTALGRILKQ-KNNHEQELKPLA 91
@@ -8271,10 +8593,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P62741|HBG1_GORGO Hemoglobin subunit gamma-1 OS=Gorilla gorilla gorilla GN=HBG1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.3 0.0 1.9e-55 8.7e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 183.3 0.0 1.9e-55 9.5e-53 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.3 bits; conditional E-value: 1.9e-55
+ == domain 1 score: 183.3 bits; conditional E-value: 1.9e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+ a+++ld +l++++++
sp|P62741|HBG1_GORGO 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGGAIKHLD-DLKGTFAQ 88
@@ -8288,10 +8610,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61948|HBG2_HYLLA Hemoglobin subunit gamma-2 OS=Hylobates lar GN=HBG2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.1 0.0 2e-55 9.4e-53 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 183.1 0.0 2.1e-55 1e-52 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.1 bits; conditional E-value: 2e-55
+ == domain 1 score: 183.1 bits; conditional E-value: 2.1e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve++G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+ a+++ld +l++++++
sp|P61948|HBG2_HYLLA 3 HFTEEDKATITSLWGKV--NVEDVGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGGAIKNLD-DLKGTFAQ 88
@@ -8305,10 +8627,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09906|HBA_RHIUN Hemoglobin subunit alpha OS=Rhinoceros unicornis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.1 0.2 2.1e-55 9.7e-53 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 183.1 0.3 2.2e-55 1.1e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.1 bits; conditional E-value: 2.1e-55
+ == domain 1 score: 183.1 bits; conditional E-value: 2.2e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +kt+vk++W+ v+a+++e+Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a+ +ld +l+++l++L
sp|P09906|HBA_RHIUN 1 VLSPTDKTNVKTAWSHVGAHAGEYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTQAVGHLD-DLPGALSAL 83
@@ -8322,10 +8644,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P51441|HBE_LEORO Hemoglobin subunit epsilon OS=Leontopithecus rosalia GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.1 0.1 2.2e-55 1e-52 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 183.1 0.1 2.2e-55 1.1e-52 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 183.1 bits; conditional E-value: 2.2e-55
+ == domain 1 score: 183.1 bits; conditional E-value: 2.2e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G++ L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|P51441|HBE_LEORO 2 VHFTAEEKAAITSLWGKM--NVEEAGGESLGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -8339,10 +8661,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18970|HBA_AILME Hemoglobin subunit alpha OS=Ailuropoda melanoleuca GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 183.0 0.2 2.2e-55 1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 183.0 0.2 2.3e-55 1.1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 183.0 bits; conditional E-value: 2.2e-55
+ == domain 1 score: 183.0 bits; conditional E-value: 2.3e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka W k++ +++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+ +ld +l+++l++L
sp|P18970|HBA_AILME 2 VLSPADKTNVKATWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVGHLD-DLPGALSAL 84
@@ -8356,10 +8678,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P51442|HBE_PITIR Hemoglobin subunit epsilon OS=Pithecia irrorata GN=HBE1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.9 0.1 2.4e-55 1.1e-52 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 182.9 0.2 2.4e-55 1.2e-52 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 182.9 bits; conditional E-value: 2.4e-55
+ == domain 1 score: 182.9 bits; conditional E-value: 2.4e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++ +vk+Hgkkvl+ ++da++++d +l++++++
sp|P51442|HBE_PITIR 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNLKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -8373,10 +8695,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9XSE9|HBA_EQUPR Hemoglobin subunit alpha OS=Equus caballus przewalskii GN=HBA PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.9 0.2 2.4e-55 1.1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.9 0.3 2.5e-55 1.2e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.9 bits; conditional E-value: 2.4e-55
+ == domain 1 score: 182.9 bits; conditional E-value: 2.5e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++L
sp|Q9XSE9|HBA_EQUPR 2 VLSAADKTNVKAAWSKVGGHAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSNL 84
@@ -8390,10 +8712,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZB9|HBB_STROE Hemoglobin subunit beta OS=Streptopelia orientalis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.9 0.1 2.4e-55 1.1e-52 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 182.9 0.2 2.5e-55 1.2e-52 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.9 bits; conditional E-value: 2.4e-55
+ == domain 1 score: 182.9 bits; conditional E-value: 2.5e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++++W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ ++++vk+Hgkkvl+ ++da+++ld ++++++++L
sp|Q7LZB9|HBB_STROE 2 HWSAEEKQLITSIWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSATAISGNPNVKAHGKKVLTSFGDAVKNLD-NIKGTFAQL 88
@@ -8407,10 +8729,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q29415|HBE_CEBOL Hemoglobin subunit epsilon OS=Cebus olivaceus GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.8 0.1 2.5e-55 1.2e-52 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 182.8 0.2 2.6e-55 1.3e-52 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 182.8 bits; conditional E-value: 2.5e-55
+ == domain 1 score: 182.8 bits; conditional E-value: 2.6e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|Q29415|HBE_CEBOL 2 VHFTAEEKVAITSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -8424,10 +8746,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7JFR7|HBE_CEBKA Hemoglobin subunit epsilon OS=Cebus kaapori GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.8 0.1 2.5e-55 1.2e-52 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 182.8 0.2 2.6e-55 1.3e-52 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 182.8 bits; conditional E-value: 2.5e-55
+ == domain 1 score: 182.8 bits; conditional E-value: 2.6e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|Q7JFR7|HBE_CEBKA 2 VHFTAEEKVAITSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -8441,10 +8763,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01965|HBA_PIG Hemoglobin subunit alpha OS=Sus scrofa GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.8 0.5 2.6e-55 1.2e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 182.8 0.7 2.7e-55 1.3e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.8 bits; conditional E-value: 2.6e-55
+ == domain 1 score: 182.8 bits; conditional E-value: 2.7e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
vLs+a+k +vka+W+kv+ +++ +Ga++L+r+f+ +P+t+++F++F +Ls ++s++vk+Hg+kv+dAl++a+ +ld +l+++l++Ls+
sp|P01965|HBA_PIG 1 VLSAADKANVKAAWGKVGGQAGAHGAEALERMFLGFPTTKTYFPHF-NLS-----HGSDQVKAHGQKVADALTKAVGHLD-DLPGALSALSD 85
@@ -8458,10 +8780,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01944|HBA_ONDZI Hemoglobin subunit alpha OS=Ondatra zibethicus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.7 0.2 2.7e-55 1.3e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 182.7 0.3 2.8e-55 1.4e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.7 bits; conditional E-value: 2.7e-55
+ == domain 1 score: 182.7 bits; conditional E-value: 2.8e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k+++k++W+k++ +++e+Ga++L+r+f+++P+t+++F++F d+s ++s +vk+Hgkkv+dAl+ a+ +ld +l+++l++L
sp|P01944|HBA_ONDZI 1 VLSGEDKNNIKTAWGKIGGHAAEYGAEALERMFVVYPTTKTYFPHF-DVS-----HGSGQVKAHGKKVADALTTAVGHLD-DLPGALSAL 83
@@ -8475,10 +8797,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63109|HBA_PANON Hemoglobin subunit alpha OS=Panthera onca GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.7 0.2 2.7e-55 1.3e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.7 0.4 2.8e-55 1.4e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.7 bits; conditional E-value: 2.7e-55
+ == domain 1 score: 182.7 bits; conditional E-value: 2.8e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k++vka W+k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+v++Hg+kv+dAl++a+a+++ +l+++l+dL
sp|P63109|HBA_PANON 2 VLSSADKNNVKACWGKIGSHAGEYGAEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVQAHGQKVADALTKAVAHIN-DLPNALSDL 84
@@ -8492,10 +8814,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02099|HBG_RABIT Hemoglobin subunit gamma OS=Oryctolagus cuniculus GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.6 0.5 2.9e-55 1.4e-52 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 182.6 0.7 3e-55 1.5e-52 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 182.6 bits; conditional E-value: 2.9e-55
+ == domain 1 score: 182.6 bits; conditional E-value: 3e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++++ W v dve+ Ga++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+A++da++++d +l++++++
sp|P02099|HBG_RABIT 2 VHFTAEEKAAITSTWKLV--DVEDAGAEALGRLLVVYPWTQRFFDSFGNLSSSSAIMGNPKVKAHGKKVLTAFGDAVKNVD-DLKNTFAH 88
@@ -8509,10 +8831,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01962|HBA_TAPTE Hemoglobin subunit alpha-1/2 OS=Tapirus terrestris PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.5 0.1 3.2e-55 1.5e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 182.5 0.1 3.3e-55 1.6e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.5 bits; conditional E-value: 3.2e-55
+ == domain 1 score: 182.5 bits; conditional E-value: 3.3e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +kt+vka+W+kv+++++e+Ga++L+r+f+ +P+t+++F++F dLs ++sa+v++Hgkkv dAl++a+ +ld +l+++l++L
sp|P01962|HBA_TAPTE 1 VLSPTDKTNVKAAWSKVGSHAGEYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVQAHGKKVGDALTQAVGHLD-DLPGALSAL 83
@@ -8526,10 +8848,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01959|HBA_EQUAS Hemoglobin subunit alpha OS=Equus asinus GN=HBA1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.5 0.2 3.3e-55 1.5e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.5 0.2 3.4e-55 1.7e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.5 bits; conditional E-value: 3.3e-55
+ == domain 1 score: 182.5 bits; conditional E-value: 3.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++L
sp|P01959|HBA_EQUAS 2 VLSAADKTNVKAAWSKVGGNAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSNL 84
@@ -8543,10 +8865,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01960|HBA_EQUZE Hemoglobin subunit alpha OS=Equus zebra GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.5 0.2 3.3e-55 1.5e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.5 0.2 3.4e-55 1.7e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.5 bits; conditional E-value: 3.3e-55
+ == domain 1 score: 182.5 bits; conditional E-value: 3.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++L
sp|P01960|HBA_EQUZE 2 VLSAADKTNVKAAWSKVGGNAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSNL 84
@@ -8560,10 +8882,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7JFN6|HBA2_EQUGR Hemoglobin subunit alpha-2 OS=Equus grevyi GN=HBA2 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.5 0.2 3.3e-55 1.5e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.5 0.2 3.4e-55 1.7e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.5 bits; conditional E-value: 3.3e-55
+ == domain 1 score: 182.5 bits; conditional E-value: 3.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++
sp|Q7JFN6|HBA2_EQUGR 2 VLSAADKTNVKAAWSKVGGNAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSN 83
@@ -8577,10 +8899,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01941|HBA_TUPGL Hemoglobin subunit alpha OS=Tupaia glis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.4 0.0 3.3e-55 1.5e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 182.4 0.1 3.4e-55 1.7e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.4 bits; conditional E-value: 3.3e-55
+ == domain 1 score: 182.4 bits; conditional E-value: 3.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k+++ka+W+k++ ++ ++Ga++L+r+f+s+P+t+++F++F d+s ++sa++++Hgkkv+dAls a+ +ld +l+++l++L
sp|P01941|HBA_TUPGL 1 VLSPGDKSNIKAAWGKIGGQAPQYGAEALERMFLSFPTTKTYFPHF-DMS-----HGSAQIQAHGKKVADALSTAVGHLD-DLPTALSAL 83
@@ -8594,10 +8916,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P61947|HBG1_HYLLA Hemoglobin subunit gamma-1 OS=Hylobates lar GN=HBG1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.4 0.0 3.4e-55 1.6e-52 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 182.4 0.0 3.5e-55 1.7e-52 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 182.4 bits; conditional E-value: 3.4e-55
+ == domain 1 score: 182.4 bits; conditional E-value: 3.5e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+ a+++ld +l++++++
sp|P61947|HBG1_HYLLA 3 HFTEEDKATITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGGAIKNLD-DLKGTFAQ 88
@@ -8611,10 +8933,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P41330|HBA2_ARCGA Hemoglobin subunit alpha-2 OS=Arctocephalus galapagoensis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.2 0.3 4e-55 1.9e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.2 0.4 4.1e-55 2e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.2 bits; conditional E-value: 4e-55
+ == domain 1 score: 182.2 bits; conditional E-value: 4.1e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vk+ W k + +++e+G+++L+r f+++P+t+++F++F dLs ++sa+vk+Hgkkv+dAl+ a+a++d +l+++l++
sp|P41330|HBA2_ARCGA 2 VLSPADKTNVKTTWDKLGGHAGEYGGEALERTFTAFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTTAVAHMD-DLPGALSA 83
@@ -8628,10 +8950,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63110|HBA_PANPO Hemoglobin subunit alpha OS=Panthera pardus orientalis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.2 0.2 4.1e-55 1.9e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 182.2 0.3 4.2e-55 2e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.2 bits; conditional E-value: 4.1e-55
+ == domain 1 score: 182.2 bits; conditional E-value: 4.2e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k++vka W+k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+v++Hg+kv+dAl++a+a+++ +l+++l+dL
sp|P63110|HBA_PANPO 1 VLSSADKNNVKACWGKIGSHAGEYGAEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVQAHGQKVADALTKAVAHIN-DLPNALSDL 83
@@ -8645,10 +8967,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02083|HBBF_SHEEP Hemoglobin fetal subunit beta OS=Ovis aries PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.1 0.0 4.2e-55 1.9e-52 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 182.1 0.0 4.3e-55 2.1e-52 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.1 bits; conditional E-value: 4.2e-55
+ == domain 1 score: 182.1 bits; conditional E-value: 4.3e-55
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+++ek v +++akv +vee+G+++L rl++++P+tq+fFe+F+dLs +d++ ++++vk Hgkkvl+ +s++l++ld +l++++++L
sp|P02083|HBBF_SHEEP 2 LTAEEKASVISLFAKV--NVEEVGGEALGRLLVVYPWTQRFFEHFGDLSSADAILGNPKVKGHGKKVLNSFSEGLKQLD-DLKGAFASL 87
@@ -8662,10 +8984,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P16418|HBB_LIOMI Hemoglobin subunit beta OS=Liophis miliaris GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.1 0.8 4.2e-55 1.9e-52 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 182.1 1.1 4.3e-55 2.1e-52 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 182.1 bits; conditional E-value: 4.2e-55
+ == domain 1 score: 182.1 bits; conditional E-value: 4.3e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek++++a+W+kv dv+ G+++L rl+ ++P+tq+fF +F++Ls +++++++a+vk+Hgkkv +A++da+++ e ++ ++++L
sp|P16418|HBB_LIOMI 2 HWTAEEKSAITAIWGKV--DVAAIGGEALCRLLIVYPWTQRFFTSFGNLSNAAAIQSNAQVKAHGKKVFTAFGDAVKN-PEGVKDTFAKL 88
@@ -8679,10 +9001,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9XSN3|HBA1_EQUBU Hemoglobin subunit alpha-1 OS=Equus burchelli GN=HBA1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.1 0.1 4.2e-55 2e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 182.1 0.1 4.4e-55 2.1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.1 bits; conditional E-value: 4.2e-55
+ == domain 1 score: 182.1 bits; conditional E-value: 4.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+++k++vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++
sp|Q9XSN3|HBA1_EQUBU 2 VLSADDKSNVKAAWGKVGGNAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSN 83
@@ -8696,10 +9018,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02111|HBB_ORNAN Hemoglobin subunit beta OS=Ornithorhynchus anatinus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.1 0.0 4.3e-55 2e-52 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 182.1 0.0 4.5e-55 2.2e-52 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.1 bits; conditional E-value: 4.3e-55
+ == domain 1 score: 182.1 bits; conditional E-value: 4.5e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek++v+++W+kv +++e G+++L rl++++P+tq+fFe F+dLs + +++++++vk+Hg kvl+ ++dal++ld +l++++++
sp|P02111|HBB_ORNAN 1 VHLSGGEKSAVTNLWGKV--NINELGGEALGRLLVVYPWTQRFFEAFGDLSSAGAVMGNPKVKAHGAKVLTSFGDALKNLD-DLKGTFAK 87
@@ -8713,10 +9035,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28220|HBE_CEBAL Hemoglobin subunit epsilon OS=Cebus albifrons GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.1 0.1 4.4e-55 2e-52 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 182.1 0.2 4.5e-55 2.2e-52 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 182.1 bits; conditional E-value: 4.4e-55
+ == domain 1 score: 182.1 bits; conditional E-value: 4.5e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++L
sp|Q28220|HBE_CEBAL 3 HFTADEKVAITSLWSKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAKL 89
@@ -8730,10 +9052,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11342|HBB_COLLI Hemoglobin subunit beta OS=Columba livia GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 182.0 0.1 4.6e-55 2.1e-52 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 182.0 0.1 4.7e-55 2.3e-52 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 182.0 bits; conditional E-value: 4.6e-55
+ == domain 1 score: 182.0 bits; conditional E-value: 4.7e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++++W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ ++++vk+Hgkkvl+ ++da+++ld ++++++++L
sp|P11342|HBB_COLLI 2 HWSAEEKQLITSIWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSATAISGNPNVKAHGKKVLTSFGDAVKNLD-NIKGTFAQL 88
@@ -8747,10 +9069,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10883|HBA_PANTS Hemoglobin subunit alpha OS=Panthera tigris sumatrae GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.9 0.2 4.8e-55 2.2e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 181.9 0.3 4.9e-55 2.4e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.9 bits; conditional E-value: 4.8e-55
+ == domain 1 score: 181.9 bits; conditional E-value: 4.9e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k++vka W+k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+v++Hg+kv+dAl++a+a+++ +l+++l+dL
sp|P10883|HBA_PANTS 1 VLSSADKNNVKACWGKIGSHAGEYGAEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVQTHGQKVADALTKAVAHIN-NLPNALSDL 83
@@ -8764,10 +9086,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18976|HBA_PANPS Hemoglobin subunit alpha OS=Panthera pardus saxicolor GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.8 0.2 5.3e-55 2.4e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 181.8 0.3 5.4e-55 2.6e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.8 bits; conditional E-value: 5.3e-55
+ == domain 1 score: 181.8 bits; conditional E-value: 5.4e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k++vka W+k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+v++Hg+kv+dAl++a+a+++ +l+++l+dL
sp|P18976|HBA_PANPS 1 VLSSADKNNVKACWGKIGSHAGEYGAEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVQTHGQKVADALTKAVAHIN-DLPNALSDL 83
@@ -8781,10 +9103,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02201|MYG_GRAGE Myoglobin OS=Graptemys geographica GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.8 0.4 5.3e-55 2.5e-52 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 181.8 0.5 5.5e-55 2.7e-52 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 181.8 bits; conditional E-value: 5.3e-55
+ == domain 1 score: 181.8 bits; conditional E-value: 5.5e-55
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+ +v+ +Wakve d +G+++++rlf+++P+tqe F kFk+L+t del++s++vkkHg +vl+Al+ +l+ ++++e +lk+L+
sp|P02201|MYG_GRAGE 3 LSDDEWHHVLGIWAKVEPDLSAHGQEVIIRLFQVHPETQERFAKFKNLKTIDELRSSEEVKKHGTTVLTALGRILKL-KNNHEPELKPLA 91
@@ -8795,13 +9117,30 @@ Domain annotation for each sequence (and alignments):
sp|P02201|MYG_GRAGE 92 ESHATKHKIPVKYLEFICEIIVKVIAEKHPSDFGADSQAAMRKALELFRNDMASKYK 148
********************************************************7 PP
+>> sp|B3EWC9|HBA_SPEBE Hemoglobin subunit alpha OS=Spermophilus beecheyi PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 181.6 0.6 6.3e-55 3.1e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 181.6 bits; conditional E-value: 6.3e-55
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+a+kt+vka W k + + + +Ga++L+r+f+s+P+t+++F++F dLs ++sa+++ Hgkkv+dAl++a a++d +l+++l++L
+ sp|B3EWC9|HBA_SPEBE 1 VLSPADKTNVKASWEKLGGHGAAYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQLQGHGKKVADALANAAAHVD-DLPGALSAL 83
+ 69********************************************.***.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa+lp++ft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWC9|HBA_SPEBE 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHLPADFTPAVHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P18996|HBG2_PONPY Hemoglobin subunit gamma-2 OS=Pongo pygmaeus GN=HBG2 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.5 0.0 6.5e-55 3e-52 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 181.5 0.0 6.7e-55 3.3e-52 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 181.5 bits; conditional E-value: 6.5e-55
+ == domain 1 score: 181.5 bits; conditional E-value: 6.7e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +e++k +++++W+k +ve+ G++ L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ l+da+++ld +l++++++
sp|P18996|HBG2_PONPY 3 HFTEEDKATITSLWGKL--NVEDAGGETLGRLLLVYPWTQRFFDSFGNLSSASAIMGNPKVKAHGKKVLTSLGDAVKNLD-DLKGTFAQ 88
@@ -8815,10 +9154,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02081|HBBF_BOVIN Hemoglobin fetal subunit beta OS=Bos taurus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.4 0.0 7.1e-55 3.3e-52 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 181.4 0.0 7.3e-55 3.6e-52 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.4 bits; conditional E-value: 7.1e-55
+ == domain 1 score: 181.4 bits; conditional E-value: 7.3e-55
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek +v++++akv +v+e+G+++L rl++++P+tq+fFe+F+dLs +d++ ++++vk+Hgkkvld + ++l++ld +l++++++L
sp|P02081|HBBF_BOVIN 2 LSAEEKAAVTSLFAKV--KVDEVGGEALGRLLVVYPWTQRFFESFGDLSSADAILGNPKVKAHGKKVLDSFCEGLKQLD-DLKGAFASL 87
@@ -8832,10 +9171,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01961|HBA_EQUHE Hemoglobin subunit alpha-1/2 OS=Equus hemionus kulan PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.3 0.2 7.3e-55 3.4e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 181.3 0.2 7.5e-55 3.7e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.3 bits; conditional E-value: 7.3e-55
+ == domain 1 score: 181.3 bits; conditional E-value: 7.5e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ ++++ Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++L
sp|P01961|HBA_EQUHE 2 VLSAADKTNVKAAWSKVGGNAGDFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSNL 84
@@ -8849,10 +9188,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80216|HBB_APTFO Hemoglobin subunit beta OS=Aptenodytes forsteri GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.2 0.1 8e-55 3.7e-52 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 181.2 0.2 8.3e-55 4e-52 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.2 bits; conditional E-value: 8e-55
+ == domain 1 score: 181.2 bits; conditional E-value: 8.3e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls ++++ +++ v++Hgkkvl+ ++da++++d ++++++++L
sp|P80216|HBB_APTFO 2 HWSAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSPAAVLANPMVRAHGKKVLTSFGDAVKNMD-NIKNTFAQL 88
@@ -8866,10 +9205,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q2KPA4|HBB_SCAAQ Hemoglobin subunit beta OS=Scalopus aquaticus GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.2 0.1 8.2e-55 3.8e-52 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 181.2 0.1 8.4e-55 4.1e-52 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 181.2 bits; conditional E-value: 8.2e-55
+ == domain 1 score: 181.2 bits; conditional E-value: 8.4e-55
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v++s++ek v+++W+kv +v++ Ga++L rl++++P+tq+fF++F+dLs +++++++++vk+Hgkkv++ +sd++++ld +l++++++
sp|Q2KPA4|HBB_SCAAQ 2 VHMSAEEKGIVTSMWGKV--NVDDIGAEALGRLLVVYPWTQRFFDSFGDLSSPAAIMGNPKVKAHGKKVAHSISDGIKNLD-NLKGTYAK 88
@@ -8880,13 +9219,13 @@ Domain annotation for each sequence (and alignments):
sp|Q2KPA4|HBB_SCAAQ 89 LSELHCDKLHVDPENFRLLGNVLVCVLARNLGKEFTPHARTAFQKMVLEVAAALAHKYH 147
**********************************************************7 PP
->> sp|P01943|HBA_SPAEH Hemoglobin subunit alpha OS=Spalax leucodon ehrenbergi GN=HBA PE=1 SV=1
+>> sp|P01943|HBA_SPAEH Hemoglobin subunit alpha OS=Spalax ehrenbergi GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.2 0.2 8.2e-55 3.8e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 181.2 0.3 8.5e-55 4.1e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.2 bits; conditional E-value: 8.2e-55
+ == domain 1 score: 181.2 bits; conditional E-value: 8.5e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++v++ W k++ + +e+Ga++L+r+f+s+P+t+++F++F d+s ++sa+vk+Hgkkv+dAl++a +ld +l+++l++L
sp|P01943|HBA_SPAEH 1 VLSPEDKNHVRSTWDKIGGHGAEYGAEALERMFTSFPTTKTYFPHF-DVS-----HGSAQVKAHGKKVADALANAAGHLD-DLPGALSAL 83
@@ -8900,10 +9239,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01950|HBA_SUNMU Hemoglobin subunit alpha OS=Suncus murinus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.1 0.6 8.8e-55 4.1e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 181.1 0.8 9.1e-55 4.4e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.1 bits; conditional E-value: 8.8e-55
+ == domain 1 score: 181.1 bits; conditional E-value: 9.1e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k +vka+W kv+ +++++Ga++L+r f s+P+t+++F+++ dLs +sa+vk+Hgkkv+dAl++a+ ++d +l+++l++L
sp|P01950|HBA_SUNMU 1 VLSANDKANVKAAWDKVGGQAANYGAEALERTFASFPTTKTYFPHY-DLS-----PGSAQVKAHGKKVADALTKAVGSMD-DLPGALSAL 83
@@ -8917,10 +9256,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68235|HBA_URSMA Hemoglobin subunit alpha OS=Ursus maritimus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.1 0.2 9e-55 4.1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 181.1 0.3 9.2e-55 4.5e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.1 bits; conditional E-value: 9e-55
+ == domain 1 score: 181.1 bits; conditional E-value: 9.2e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka W k++++++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a +ld +l+++l++L
sp|P68235|HBA_URSMA 2 VLSPADKSNVKATWDKIGSHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAAGHLD-DLPGALSAL 84
@@ -8934,10 +9273,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68236|HBA_URSTH Hemoglobin subunit alpha OS=Ursus thibetanus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.1 0.2 9e-55 4.1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 181.1 0.3 9.2e-55 4.5e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.1 bits; conditional E-value: 9e-55
+ == domain 1 score: 181.1 bits; conditional E-value: 9.2e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka W k++++++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a +ld +l+++l++L
sp|P68236|HBA_URSTH 2 VLSPADKSNVKATWDKIGSHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAAGHLD-DLPGALSAL 84
@@ -8951,10 +9290,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68237|HBA_URSML Hemoglobin subunit alpha OS=Ursus malayanus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 181.1 0.2 9e-55 4.1e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 181.1 0.3 9.2e-55 4.5e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 181.1 bits; conditional E-value: 9e-55
+ == domain 1 score: 181.1 bits; conditional E-value: 9.2e-55
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka W k++++++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a +ld +l+++l++L
sp|P68237|HBA_URSML 2 VLSPADKSNVKATWDKIGSHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAAGHLD-DLPGALSAL 84
@@ -8965,13 +9304,30 @@ Domain annotation for each sequence (and alignments):
sp|P68237|HBA_URSML 85 SDLHAHKLRVDPVNFKFLSHCLLVTLASHHPAEFTPAVHASLDKFFSAVSTVLTSKYR 142
*********************************************************7 PP
+>> sp|B3EWD5|HBA_PERCA Hemoglobin subunit alpha OS=Peromyscus californicus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 180.9 0.4 1e-54 5e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 180.9 bits; conditional E-value: 1e-54
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+++k +vka+W+k + + +e+Ga++L r+f s+P+t+++F++F d+s ++sa+vk Hg kv+dAl+ a +ld +l+++l++L
+ sp|B3EWD5|HBA_PERCA 1 VLSADDKANVKAAWGKLGGHGAEYGAEALGRMFCSFPTTKTYFPHF-DVS-----HGSAQVKGHGAKVADALTTAAGHLD-DLPGALSAL 83
+ 69********************************************.888.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa++p+eft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWD5|HBA_PERCA 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPAEFTPAVHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P02078|HBBC_CAPHI Hemoglobin subunit beta-C OS=Capra hircus GN=HBBC PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 180.8 0.1 1e-54 4.8e-52 7 149 .] 3 142 .] 1 142 [] 0.99
+ 1 ! 180.8 0.2 1.1e-54 5.2e-52 7 149 .] 3 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 180.8 bits; conditional E-value: 1e-54
+ == domain 1 score: 180.8 bits; conditional E-value: 1.1e-54
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
+k ++ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLs +d++ ++a+vk+Hgkkvld +s+++++ld +l++++++LselH
sp|P02078|HBBC_CAPHI 3 NKALITGFWSKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSSADAVLGNAKVKAHGKKVLDSFSNGVQHLD-DLKGTFAELSELH 88
@@ -8985,10 +9341,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P41329|HBA1_ARCGA Hemoglobin subunit alpha-1 OS=Arctocephalus galapagoensis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 180.8 0.1 1.1e-54 4.9e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 180.8 0.2 1.1e-54 5.3e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 180.8 bits; conditional E-value: 1.1e-54
+ == domain 1 score: 180.8 bits; conditional E-value: 1.1e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt++k+ W k + +++e+G+++L+r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+a++d +l+++l++
sp|P41329|HBA1_ARCGA 2 VLSPADKTNIKTTWDKLGGHAGEYGGEALERTFMSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVAHMD-DLPKALSA 83
@@ -9002,10 +9358,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P24659|HBA_MACGG Hemoglobin subunit alpha-1/2 OS=Macroderma gigas PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 180.7 0.2 1.1e-54 5.3e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 180.7 0.3 1.2e-54 5.7e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 180.7 bits; conditional E-value: 1.1e-54
+ == domain 1 score: 180.7 bits; conditional E-value: 1.2e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka+W kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv dAls+a +ld +l+++l++L
sp|P24659|HBA_MACGG 1 VLSPADKANVKAAWDKVGGQAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALSNAAGHLD-DLPGALSAL 83
@@ -9016,13 +9372,30 @@ Domain annotation for each sequence (and alignments):
sp|P24659|HBA_MACGG 84 SDLHAYKLRVDPVNFKLLSHCLLVTLASHHAAEFTPAVHASLDKFLASVGTVLTSKYR 141
*********************************************************7 PP
+>> sp|B3EWE3|HBA_MICPE Hemoglobin subunit alpha OS=Microtus pennsylvanicus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 180.6 0.2 1.3e-54 6.2e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 180.6 bits; conditional E-value: 1.3e-54
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs ++k+++k++W+k + +++e+Ga++L+r+f+++P+t+++F++F d+s ++sa+vk Hgkkv+dAl+ a+ +ld +l+++l++L
+ sp|B3EWE3|HBA_MICPE 1 VLSGDDKSNLKTAWGKLGGHAGEYGAEALERMFVAYPTTKTYFPHF-DVS-----HGSAQVKGHGKKVADALTTAVGHLD-DLPGALSAL 83
+ 699*******************************************.888.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++la++lp++ft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWE3|HBA_MICPE 84 SDLHAHKLRVDPVNFKLLSHCLLVTLANHLPADFTPAVHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P18975|HBA_PANLE Hemoglobin subunit alpha OS=Panthera leo GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 180.3 0.2 1.5e-54 7e-52 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 180.3 0.3 1.6e-54 7.6e-52 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 180.3 bits; conditional E-value: 1.5e-54
+ == domain 1 score: 180.3 bits; conditional E-value: 1.6e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k++vka W+k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+v++Hg+kv+dAl++a+ +++ +l+++l+dL
sp|P18975|HBA_PANLE 2 VLSSADKNNVKACWGKIGSHAGEYGAEALERTFCSFPTTKTYFPHF-DLS-----HGSAQVQAHGQKVADALTKAVVHIN-DLPNALSDL 84
@@ -9036,10 +9409,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01972|HBA_ODOVI Hemoglobin subunit alpha-1/2 OS=Odocoileus virginianus virginianus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 180.3 0.4 1.6e-54 7.2e-52 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 180.3 0.5 1.6e-54 7.8e-52 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 180.3 bits; conditional E-value: 1.6e-54
+ == domain 1 score: 180.3 bits; conditional E-value: 1.6e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vka+W+kv+ +++ +Ga++L+r+f+s+P+t+++F++F +Ls ++sa+vk+Hg+kv++Al++a+ +l+ +l+++l++L
sp|P01972|HBA_ODOVI 1 VLSAABKSBVKAAWGKVGGNAAPYGAZALZRMFLSFPTTKTYFPHF-BLS-----HGSAZVKAHGZKVABALTKAVGHLB-BLPGTLSBL 83
@@ -9053,10 +9426,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02125|HBB_CICCI Hemoglobin subunit beta OS=Ciconia ciconia GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.9 0.3 2e-54 9.4e-52 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 179.9 0.4 2.1e-54 1e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.9 bits; conditional E-value: 2e-54
+ == domain 1 score: 179.9 bits; conditional E-value: 2.1e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++L t+ ++ ++a v++Hgkkvl+ +++a+++ld ++++++++L
sp|P02125|HBB_CICCI 2 HWTAEEKQLITGLWGKV--NVDECGAEALARLLIVYPWTQRFFASFGNLATASAITGNAMVHAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -9070,10 +9443,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02126|HBB_STUVU Hemoglobin subunit beta OS=Sturnus vulgaris GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.9 0.0 2.1e-54 9.7e-52 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 179.9 0.1 2.2e-54 1e-51 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.9 bits; conditional E-value: 2.1e-54
+ == domain 1 score: 179.9 bits; conditional E-value: 2.2e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ ++++v++Hgkkvl+ ++da+++ld +++++++Ls
sp|P02126|HBB_STUVU 3 WTAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSPTAVLGNPKVQAHGKKVLTSFGDAVKNLD-SIKNTFSQLS 89
@@ -9087,10 +9460,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P17689|HBA_MARFO Hemoglobin subunit alpha OS=Martes foina GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.8 0.1 2.2e-54 1e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 179.8 0.2 2.3e-54 1.1e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.8 bits; conditional E-value: 2.2e-54
+ == domain 1 score: 179.8 bits; conditional E-value: 2.3e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k++ +++e+G+++L+r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+ +ld +l ++l++L
sp|P17689|HBA_MARFO 1 VLSPADKTNVKSTWDKIGGHAGEYGGEALERTFVSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTLAVGHLD-DLAGALSAL 83
@@ -9104,10 +9477,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02105|HBE2_CAPHI Hemoglobin subunit epsilon-2 OS=Capra hircus GN=HBE2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.7 0.2 2.3e-54 1.1e-51 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 179.7 0.3 2.4e-54 1.2e-51 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 179.7 bits; conditional E-value: 2.3e-54
+ == domain 1 score: 179.7 bits; conditional E-value: 2.4e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ + +ek +v ++Wakv +ve +G++ L rl+ ++P+tq+fF++F++L e +++++++vk+Hg+kvl+ +++a++++d +l+++++d
sp|P02105|HBE2_CAPHI 3 HFTTEEKAAVASLWAKV--NVEVVGGESLARLLIVYPWTQRFFDSFGNLCSESAIMGNPKVKAHGRKVLNSFGNAIKHMD-DLKGTFAD 88
@@ -9121,10 +9494,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06643|HBE4_BOVIN Hemoglobin subunit epsilon-4 OS=Bos taurus GN=HBE4 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.6 0.2 2.5e-54 1.2e-51 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 179.6 0.3 2.6e-54 1.3e-51 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 179.6 bits; conditional E-value: 2.5e-54
+ == domain 1 score: 179.6 bits; conditional E-value: 2.6e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ + +ek +v ++Wakv +ve +G++ L rl+ ++P+tq+fF++F++L e +++++++vk+Hg+kvl+ +++a+ ++d +l+++++d
sp|P06643|HBE4_BOVIN 3 HFTTEEKAAVASLWAKV--NVEVVGGESLARLLIVYPWTQRFFDSFGNLYSESAIMGNPKVKAHGRKVLNSFGNAIEHMD-DLKGTFAD 88
@@ -9138,10 +9511,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18971|HBA_BALAC Hemoglobin subunit alpha OS=Balaenoptera acutorostrata GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.4 0.5 2.8e-54 1.3e-51 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 179.4 0.7 2.9e-54 1.4e-51 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.4 bits; conditional E-value: 2.8e-54
+ == domain 1 score: 179.4 bits; conditional E-value: 2.9e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +k++vka Wak++ + +e+Ga++L+r+f+ +P t+++F++F dL + sa+vk Hgkkv+dAl++a+ ++d +l +l+dL
sp|P18971|HBA_BALAC 2 VLSPTDKSNVKATWAKIGNHGAEYGAEALERMFMNFPSTKTYFPHF-DLG-----HDSAQVKGHGKKVADALTKAVGHMD-NLLDALSDL 84
@@ -9155,10 +9528,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01948|HBA_RABIT Hemoglobin subunit alpha-1/2 OS=Oryctolagus cuniculus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.4 0.2 2.9e-54 1.4e-51 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 179.4 0.2 3e-54 1.5e-51 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.4 bits; conditional E-value: 2.9e-54
+ == domain 1 score: 179.4 bits; conditional E-value: 3e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k++W k++++ +e+Ga++++r+f+ +P+t+++F++F d + ++s+++k+Hgkkv +Al++a+ +ld +l+++l++L
sp|P01948|HBA_RABIT 2 VLSPADKTNIKTAWEKIGSHGGEYGAEAVERMFLGFPTTKTYFPHF-DFT-----HGSEQIKAHGKKVSEALTKAVGHLD-DLPGALSTL 84
@@ -9172,10 +9545,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10778|HBA_ODORO Hemoglobin subunit alpha OS=Odobenus rosmarus divergens GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.4 0.1 3e-54 1.4e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 179.4 0.1 3.1e-54 1.5e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.4 bits; conditional E-value: 3e-54
+ == domain 1 score: 179.4 bits; conditional E-value: 3.1e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k + +++e+G+++L+r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+a++d +l+++l++L
sp|P10778|HBA_ODORO 1 VLSPADKTNVKTTWDKLGGHAGEYGGEALERTFMSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVAHID-DLPGALSAL 83
@@ -9189,10 +9562,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68256|HBG1_CEBAP Hemoglobin subunit gamma-1 OS=Cebus apella GN=HBG1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.3 0.0 3.2e-54 1.5e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 179.3 0.0 3.3e-54 1.6e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 179.3 bits; conditional E-value: 3.2e-54
+ == domain 1 score: 179.3 bits; conditional E-value: 3.3e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
++++k +++++Wakv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg kvl+ l++a+++ld +l++++ +L
sp|P68256|HBG1_CEBAP 4 FTAEDKAAITSLWAKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGAKVLTSLGEAIKNLD-DLKGTFGQL 89
@@ -9206,10 +9579,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q28221|HBG1_CEBAL Hemoglobin subunit gamma-1 OS=Cebus albifrons GN=HBG1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.3 0.0 3.2e-54 1.5e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 179.3 0.0 3.3e-54 1.6e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 179.3 bits; conditional E-value: 3.2e-54
+ == domain 1 score: 179.3 bits; conditional E-value: 3.3e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
++++k +++++Wakv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg kvl+ l++a+++ld +l++++ +L
sp|Q28221|HBG1_CEBAL 4 FTAEDKAAITSLWAKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGAKVLTSLGEAIKNLD-DLKGTFGQL 89
@@ -9223,10 +9596,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01964|HBA_DASNO Hemoglobin subunit alpha OS=Dasypus novemcinctus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.3 0.7 3.2e-54 1.5e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 179.3 1.0 3.3e-54 1.6e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.3 bits; conditional E-value: 3.2e-54
+ == domain 1 score: 179.3 bits; conditional E-value: 3.3e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka W+kv+ +++e Ga++L+r+f s+P t+++F + dLs ++sa+vk+Hgkkv+dAl+ a+ +ld +l+++l++L
sp|P01964|HBA_DASNO 1 VLSAADKTHVKAFWGKVGGHAAEFGAEALERMFASFPPTKTYFSHM-DLS-----HGSAQVKAHGKKVADALTLAVGHLD-DLPGALSTL 83
@@ -9240,10 +9613,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21668|HBB_PSIKR Hemoglobin subunit beta OS=Psittacula krameri GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.2 0.0 3.3e-54 1.5e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 179.2 0.0 3.4e-54 1.7e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.2 bits; conditional E-value: 3.3e-54
+ == domain 1 score: 179.2 bits; conditional E-value: 3.4e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ ++++v++Hgkkvl+ +++a+++ld ++++++++L
sp|P21668|HBB_PSIKR 2 HWSAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFTSFGNLSSASAVLGNPNVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -9257,10 +9630,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15448|HBA_MELCA Hemoglobin subunit alpha OS=Mellivora capensis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.0 0.1 3.9e-54 1.8e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 179.0 0.1 4e-54 1.9e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 179.0 bits; conditional E-value: 3.9e-54
+ == domain 1 score: 179.0 bits; conditional E-value: 4e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +k +vka W k++ +++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl++a+a+ d +l+++l++L
sp|P15448|HBA_MELCA 1 VLSPSDKANVKATWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTNAVAHGD-DLPMALSTL 83
@@ -9274,10 +9647,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68257|HBG2_CEBAP Hemoglobin subunit gamma-2 OS=Cebus apella GN=HBG2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.0 0.0 4e-54 1.9e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 179.0 0.0 4.1e-54 2e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 179.0 bits; conditional E-value: 4e-54
+ == domain 1 score: 179.0 bits; conditional E-value: 4.1e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
++++k +++++Wakv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg kvl+ l++a+++ld +l++++ +L
sp|P68257|HBG2_CEBAP 4 FTAEDKAAITSLWAKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGAKVLTSLGEAIKNLD-DLKGTFGQL 89
@@ -9291,10 +9664,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68258|HBG2_CEBAL Hemoglobin subunit gamma-2 OS=Cebus albifrons GN=HBG2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 179.0 0.0 4e-54 1.9e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 179.0 0.0 4.1e-54 2e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 179.0 bits; conditional E-value: 4e-54
+ == domain 1 score: 179.0 bits; conditional E-value: 4.1e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
++++k +++++Wakv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg kvl+ l++a+++ld +l++++ +L
sp|P68258|HBG2_CEBAL 4 FTAEDKAAITSLWAKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGAKVLTSLGEAIKNLD-DLKGTFGQL 89
@@ -9308,10 +9681,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02115|HBB_ANAPP Hemoglobin subunit beta OS=Anas platyrhynchos platyrhynchos GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.9 0.0 4.1e-54 1.9e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.9 0.0 4.2e-54 2e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.9 bits; conditional E-value: 4.1e-54
+ == domain 1 score: 178.9 bits; conditional E-value: 4.2e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P02115|HBB_ANAPP 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 88
@@ -9325,10 +9698,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P22742|HBB_FRAPO Hemoglobin subunit beta OS=Francolinus pondicerianus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.8 0.0 4.4e-54 2.1e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.8 0.0 4.6e-54 2.2e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.8 bits; conditional E-value: 4.4e-54
+ == domain 1 score: 178.8 bits; conditional E-value: 4.6e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P22742|HBB_FRAPO 2 HWTAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFSQL 88
@@ -9342,10 +9715,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02118|HBB_ANSIN Hemoglobin subunit beta OS=Anser indicus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.8 0.0 4.6e-54 2.1e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.8 0.1 4.7e-54 2.3e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.8 bits; conditional E-value: 4.6e-54
+ == domain 1 score: 178.8 bits; conditional E-value: 4.7e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P02118|HBB_ANSIN 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 88
@@ -9359,10 +9732,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P30893|HBB_COTJA Hemoglobin subunit beta OS=Coturnix coturnix japonica GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.7 0.0 4.9e-54 2.3e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.7 0.1 5e-54 2.5e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.7 bits; conditional E-value: 4.9e-54
+ == domain 1 score: 178.7 bits; conditional E-value: 5e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P30893|HBB_COTJA 2 HWSAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFSQL 88
@@ -9376,10 +9749,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18969|HBA_AILFU Hemoglobin subunit alpha OS=Ailurus fulgens GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.6 0.1 5.1e-54 2.3e-51 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 178.6 0.1 5.2e-54 2.5e-51 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.6 bits; conditional E-value: 5.1e-54
+ == domain 1 score: 178.6 bits; conditional E-value: 5.2e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k + +++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+ +ld +l+++l++L
sp|P18969|HBA_AILFU 2 VLSPADKTNVKSTWDKLGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTLAVGHLD-DLPGALSAL 84
@@ -9390,30 +9763,30 @@ Domain annotation for each sequence (and alignments):
sp|P18969|HBA_AILFU 85 SDLHAHKLRVDPVNFKLLSHCLLVTLACHHPAEFTPAVHASLDKFFSAVSTVLTSKYR 142
*********************************************************7 PP
->> sp|P10058|HBB_EUDCR Hemoglobin subunit beta OS=Eudyptes crestatus GN=HBB PE=1 SV=1
+>> sp|P10058|HBB_EUDCH Hemoglobin subunit beta OS=Eudyptes chrysocome GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.6 0.0 5.1e-54 2.4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.6 0.0 5.3e-54 2.6e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.6 bits; conditional E-value: 5.1e-54
+ == domain 1 score: 178.6 bits; conditional E-value: 5.3e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ G+++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da++++d ++++++++L
- sp|P10058|HBB_EUDCR 2 HWSAEEKQLITGLWGKV--NVAQCGGEALARLLIVYPWTQRFFSSFGNLSSPSAILGNPMVRAHGKKVLTSFGDAVKNMD-NIKNTFAQL 88
+ sp|P10058|HBB_EUDCH 2 HWSAEEKQLITGLWGKV--NVAQCGGEALARLLIVYPWTQRFFSSFGNLSSPSAILGNPMVRAHGKKVLTSFGDAVKNMD-NIKNTFAQL 88
779**************..*************************************************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
selH++kl+vdp++f+ll+++l+ vlaa+++k+ft++ qaa eKl+ +va++la kY+
- sp|P10058|HBB_EUDCR 89 SELHCDKLHVDPENFRLLGDILIIVLAAHFAKDFTPECQAAWEKLVRVVAHALARKYH 146
+ sp|P10058|HBB_EUDCH 89 SELHCDKLHVDPENFRLLGDILIIVLAAHFAKDFTPECQAAWEKLVRVVAHALARKYH 146
*********************************************************7 PP
>> sp|P24292|HBB_ECHTE Hemoglobin subunit beta OS=Echinops telfairi GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.5 0.3 5.5e-54 2.6e-51 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 178.5 0.4 5.7e-54 2.8e-51 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.5 bits; conditional E-value: 5.5e-54
+ == domain 1 score: 178.5 bits; conditional E-value: 5.7e-54
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v++++aek+ v+++W+k dv+ Ga+ L r+++++P+tq+fF +F+dLs + +++ +++v++Hgkkvl+ l+d+l++ld +l+ +++
sp|P24292|HBB_ECHTE 1 VHMTDAEKKLVTTMWGKL--DVDAAGAETLGRVLVVYPWTQRFFGHFGDLSSACAVMDNPKVQAHGKKVLHSLGDGLNHLD-DLKHFYAA 87
@@ -9427,10 +9800,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07036|HBB_CHLME Hemoglobin subunit beta OS=Chloephaga melanoptera GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.5 0.0 5.6e-54 2.6e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.5 0.1 5.8e-54 2.8e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.5 bits; conditional E-value: 5.6e-54
+ == domain 1 score: 178.5 bits; conditional E-value: 5.8e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P07036|HBB_CHLME 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAISGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFSQL 88
@@ -9444,10 +9817,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02107|HBB_MACRU Hemoglobin subunit beta OS=Macropus rufus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.4 0.2 5.7e-54 2.6e-51 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 178.4 0.2 5.9e-54 2.9e-51 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.4 bits; conditional E-value: 5.7e-54
+ == domain 1 score: 178.4 bits; conditional E-value: 5.9e-54
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++++++W+kv +e++G+++L rl+ ++P+t +fF++F+dLs + +++++++v +Hg kvl A++da+++ld +l++++++
sp|P02107|HBB_MACRU 1 VHLTAEEKNAITSLWGKV--AIEQTGGEALGRLLIVYPWTSRFFDHFGDLSNAKAVMGNPKVLAHGAKVLVAFGDAIKNLD-NLKGTFAK 87
@@ -9461,10 +9834,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6H1U7|HBB_MACEU Hemoglobin subunit beta OS=Macropus eugenii GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.4 0.3 5.8e-54 2.7e-51 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 178.4 0.4 5.9e-54 2.9e-51 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 178.4 bits; conditional E-value: 5.8e-54
+ == domain 1 score: 178.4 bits; conditional E-value: 5.9e-54
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++++++W+kv +e++G+++L rl+ ++P+t +fF++F+dLs + +++++++v +Hg kvl A++da+++ld +l++++++
sp|Q6H1U7|HBB_MACEU 2 VHLTAEEKNAITSLWGKV--AIEQTGGEALGRLLIVYPWTSRFFDHFGDLSNAKAVMSNPKVLAHGAKVLVAFGDAIKNLD-NLKGTFAK 88
@@ -9478,10 +9851,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P60529|HBA_CANFA Hemoglobin subunit alpha OS=Canis familiaris GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.4 0.1 5.9e-54 2.7e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 178.4 0.1 6.1e-54 3e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.4 bits; conditional E-value: 5.9e-54
+ == domain 1 score: 178.4 bits; conditional E-value: 6.1e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k+ W k++ +++++G+++L r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+a+ld +l+++l++L
sp|P60529|HBA_CANFA 1 VLSPADKTNIKSTWDKIGGHAGDYGGEALDRTFQSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVAHLD-DLPGALSAL 83
@@ -9495,10 +9868,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02127|HBRH_CHICK Hemoglobin subunit rho OS=Gallus gallus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.3 0.1 6.2e-54 2.8e-51 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 178.3 0.1 6.3e-54 3.1e-51 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 178.3 bits; conditional E-value: 6.2e-54
+ == domain 1 score: 178.3 bits; conditional E-value: 6.3e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ s++ek+ +++vW+kv +vee Ga++L rl+ ++P+tq+fF++F++Ls + ++ ++++v++Hgkkvl +++a+++ld ++++++++
sp|P02127|HBRH_CHICK 3 HWSAEEKQLITSVWSKV--NVEECGAEALARLLIVYPWTQRFFDNFGNLSSPTAIIGNPKVRAHGKKVLSSFGEAVKNLD-NIKNTYAK 88
@@ -9512,10 +9885,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XH5|HBG_DUGDU Hemoglobin subunit gamma OS=Dugong dugon GN=HBG PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.2 0.0 6.9e-54 3.2e-51 3 149 .] 4 147 .] 2 147 .] 0.98
+ 1 ! 178.2 0.0 7.1e-54 3.5e-51 3 149 .] 4 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 178.2 bits; conditional E-value: 6.9e-54
+ == domain 1 score: 178.2 bits; conditional E-value: 7.1e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek +++++W+kv +vee G+ +L rl+ ++P+tq+fF+kF++Ls + ++++++++k+Hgkkvl+ ++da+ + d +l++++++Ls
sp|Q45XH5|HBG_DUGDU 4 FTAEEKAAITSLWGKV--NVEEAGGKALGRLLIVYPWTQRFFDKFGNLSSASAIMGNPKIKAHGKKVLNSFGDAVENPD-NLKGTFAKLS 90
@@ -9529,10 +9902,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02106|HBB_MACGI Hemoglobin subunit beta OS=Macropus giganteus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.1 0.3 7.1e-54 3.3e-51 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 178.1 0.4 7.3e-54 3.5e-51 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.1 bits; conditional E-value: 7.1e-54
+ == domain 1 score: 178.1 bits; conditional E-value: 7.3e-54
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+++ek++++++W+kv +e++G+++L rl+ ++P+t +fF++F+dLs + +++++++v +Hg kvl A++da+++ld +l++++++
sp|P02106|HBB_MACGI 1 VHLTAEEKNAITSLWGKV--AIEQTGGEALGRLLIVYPWTSRFFDHFGDLSNAKAVMANPKVLAHGAKVLVAFGDAIKNLD-NLKGTFAK 87
@@ -9546,10 +9919,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07406|HBB_PASMO Hemoglobin subunit beta OS=Passer montanus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.1 0.0 7.3e-54 3.4e-51 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 178.1 0.0 7.5e-54 3.7e-51 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.1 bits; conditional E-value: 7.3e-54
+ == domain 1 score: 178.1 bits; conditional E-value: 7.5e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek+ ++ +W+kv +v+e G+++L rl+ ++P+tq+fF +F++Ls + ++ ++++v++Hgkkvl+ +++a+++ld +++++++Ls
sp|P07406|HBB_PASMO 3 WTAEEKQLITGLWGKV--NVAECGGEALARLLIVYPWTQRFFASFGNLSSPTAVLGNPKVQAHGKKVLTSFGEAVKNLD-SIKNTFSQLS 89
@@ -9563,10 +9936,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02199|MYG_APTFO Myoglobin OS=Aptenodytes forsteri GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.0 1.0 7.6e-54 3.5e-51 3 149 .] 3 147 .. 1 147 [. 0.98
+ 1 ! 178.0 1.5 7.9e-54 3.8e-51 3 149 .] 3 147 .. 1 147 [. 0.98
Alignments for each domain:
- == domain 1 score: 178.0 bits; conditional E-value: 7.6e-54
+ == domain 1 score: 178.0 bits; conditional E-value: 7.9e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L ++e+++v+++W+kve+d +++G +L+rlfks+P+t + F+kF++L+t+de+++s+d+kkHg++vl+ l+++l+k ++++ea+lk+Ls
sp|P02199|MYG_APTFO 3 LNDQEWQQVLTMWGKVESDLAGHGHAVLMRLFKSHPETMDRFDKFRGLKTPDEMRGSEDMKKHGVTVLT-LGQILKK-KGHHEAELKPLS 90
@@ -9577,30 +9950,30 @@ Domain annotation for each sequence (and alignments):
sp|P02199|MYG_APTFO 91 QTHATKHKVPVKYLEFISEAIMKVIAQKHASNFGADAQEAMKKALELFRNDMASKYK 147
********************************************************7 PP
->> sp|P08261|HBB_LARRI Hemoglobin subunit beta/beta' OS=Larus ridibundus GN=HBB PE=1 SV=1
+>> sp|P08261|HBB_CHRRI Hemoglobin subunit beta/beta' OS=Chroicocephalus ridibundus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.0 0.1 7.7e-54 3.6e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.0 0.1 8e-54 3.9e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.0 bits; conditional E-value: 7.7e-54
+ == domain 1 score: 178.0 bits; conditional E-value: 8e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++++++ v++Hgkkvl+ +++a+++ld ++++++++L
- sp|P08261|HBB_LARRI 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAINGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
+ sp|P08261|HBB_CHRRI 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAINGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
779**************..*************************************************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
selH++kl+vdp++f+ll+++l+ vlaa+++k+ft+d qaa +Kl+ +va++la kY+
- sp|P08261|HBB_LARRI 89 SELHCDKLHVDPENFRLLGDILIIVLAAHFAKDFTPDSQAAWQKLVRVVAHALARKYH 146
+ sp|P08261|HBB_CHRRI 89 SELHCDKLHVDPENFRLLGDILIIVLAAHFAKDFTPDSQAAWQKLVRVVAHALARKYH 146
*********************************************************7 PP
>> sp|P02121|HBB_PHORU Hemoglobin subunit beta OS=Phoenicopterus ruber ruber GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 178.0 0.1 8e-54 3.7e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 178.0 0.1 8.2e-54 4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 178.0 bits; conditional E-value: 8e-54
+ == domain 1 score: 178.0 bits; conditional E-value: 8.2e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++++W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P02121|HBB_PHORU 2 HWSAEEKQLITSLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -9614,10 +9987,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P60530|HBA_CANLA Hemoglobin subunit alpha OS=Canis latrans GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.9 0.1 8.4e-54 3.9e-51 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 177.9 0.1 8.7e-54 4.2e-51 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.9 bits; conditional E-value: 8.4e-54
+ == domain 1 score: 177.9 bits; conditional E-value: 8.7e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k+ W k++ +++++G+++L r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+a+ld +l+++l++L
sp|P60530|HBA_CANLA 2 VLSPADKTNIKSTWDKIGGHAGDYGGEALDRTFQSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVAHLD-DLPGALSAL 84
@@ -9631,10 +10004,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02112|HBB_CHICK Hemoglobin subunit beta OS=Gallus gallus GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.9 0.0 8.7e-54 4e-51 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 177.9 0.1 9e-54 4.4e-51 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.9 bits; conditional E-value: 8.7e-54
+ == domain 1 score: 177.9 bits; conditional E-value: 9e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P02112|HBB_CHICK 3 HWTAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFSQL 89
@@ -9648,10 +10021,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68944|HBB_BRACA Hemoglobin subunit beta OS=Branta canadensis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.9 0.0 8.7e-54 4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.9 0.1 9e-54 4.4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.9 bits; conditional E-value: 8.7e-54
+ == domain 1 score: 177.9 bits; conditional E-value: 9e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P68944|HBB_BRACA 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 88
@@ -9665,10 +10038,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68945|HBB_CYGOL Hemoglobin subunit beta OS=Cygnus olor GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.9 0.0 8.7e-54 4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.9 0.1 9e-54 4.4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.9 bits; conditional E-value: 8.7e-54
+ == domain 1 score: 177.9 bits; conditional E-value: 9e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P68945|HBB_CYGOL 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 88
@@ -9682,10 +10055,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02117|HBB_ANSAN Hemoglobin subunit beta OS=Anser anser anser GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.8 0.0 8.8e-54 4.1e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.8 0.1 9.1e-54 4.4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.8 bits; conditional E-value: 8.8e-54
+ == domain 1 score: 177.8 bits; conditional E-value: 9.1e-54
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P02117|HBB_ANSAN 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 88
@@ -9699,10 +10072,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68068|HBG_ATEGE Hemoglobin subunit gamma OS=Ateles geoffroyi GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.8 0.0 9e-54 4.1e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.8 0.0 9.2e-54 4.5e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.8 bits; conditional E-value: 9e-54
+ == domain 1 score: 177.8 bits; conditional E-value: 9.2e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P68068|HBG_ATEGE 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGQLS 90
@@ -9716,10 +10089,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68069|HBG_ATEPA Hemoglobin subunit gamma OS=Ateles paniscus GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.8 0.0 9e-54 4.1e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.8 0.0 9.2e-54 4.5e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.8 bits; conditional E-value: 9e-54
+ == domain 1 score: 177.8 bits; conditional E-value: 9.2e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P68069|HBG_ATEPA 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGQLS 90
@@ -9733,10 +10106,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68070|HBG_LAGLA Hemoglobin subunit gamma OS=Lagothrix lagotricha GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.8 0.0 9e-54 4.1e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.8 0.0 9.2e-54 4.5e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.8 bits; conditional E-value: 9e-54
+ == domain 1 score: 177.8 bits; conditional E-value: 9.2e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P68070|HBG_LAGLA 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGQLS 90
@@ -9750,10 +10123,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68071|HBG_BRAAR Hemoglobin subunit gamma OS=Brachyteles arachnoides GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.8 0.0 9e-54 4.1e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.8 0.0 9.2e-54 4.5e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.8 bits; conditional E-value: 9e-54
+ == domain 1 score: 177.8 bits; conditional E-value: 9.2e-54
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P68071|HBG_BRAAR 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGQLS 90
@@ -9764,13 +10137,30 @@ Domain annotation for each sequence (and alignments):
sp|P68071|HBG_BRAAR 91 ELHCDKLHVDPENFRLLGNVLVTVLAILHGKEFTPEVQASWQKMVAGVASALASRYH 147
********************************************************7 PP
+>> sp|B3EWE1|HBA_BLABR Hemoglobin subunit alpha OS=Blarina brevicauda PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 177.7 0.3 9.7e-54 4.7e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 177.7 bits; conditional E-value: 9.7e-54
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+ +kt++ka+W k + +++++Ga++L+r f s+P+t+++F++F dLs +sa+vk Hgkkv+dAl++a+ +ld +l+++l++L
+ sp|B3EWE1|HBA_BLABR 1 VLSASDKTNLKAAWDKLGGQAANYGAEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKGHGKKVADALTKAVGSLD-DLPGALSAL 83
+ 69********************************************.9**.....9***********************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++la+++p++ft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWE1|HBA_BLABR 84 SDLHAHKLRVDPVNFKLLSHCLLVTLASHHPADFTPAVHASLDKFLATVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P07411|HBB_VULGR Hemoglobin subunit beta OS=Vultur gryphus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.7 0.0 9.8e-54 4.5e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.7 0.1 1e-53 4.9e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.7 bits; conditional E-value: 9.8e-54
+ == domain 1 score: 177.7 bits; conditional E-value: 1e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P07411|HBB_VULGR 2 HWSAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -9784,10 +10174,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02113|HBB_PHACO Hemoglobin subunit beta OS=Phasianus colchicus colchicus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.7 0.0 1e-53 4.6e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.7 0.0 1e-53 5e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.7 bits; conditional E-value: 1e-53
+ == domain 1 score: 177.7 bits; conditional E-value: 1e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P02113|HBB_PHACO 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFSQL 88
@@ -9801,10 +10191,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21200|HBA_VULVU Hemoglobin subunit alpha OS=Vulpes vulpes GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.5 0.1 1.1e-53 5.2e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 177.5 0.1 1.2e-53 5.7e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.5 bits; conditional E-value: 1.1e-53
+ == domain 1 score: 177.5 bits; conditional E-value: 1.2e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k+ W k++ +++++G+++L r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+a+ld +l+++l++L
sp|P21200|HBA_VULVU 1 VLSPADKTNIKSTWDKIGGHAGDYGGEALDRTFQSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVAHLD-DLPGALSAL 83
@@ -9815,30 +10205,47 @@ Domain annotation for each sequence (and alignments):
sp|P21200|HBA_VULVU 84 SDLHAYKLRVDPVNFKLLSHCLLVTLACHHPNEFTPAVHASLDKFFTAVSTVLTSKYR 141
*********************************************************7 PP
->> sp|P82113|HBB_CATMA Hemoglobin subunit beta OS=Catharacta maccormicki GN=HBB PE=1 SV=1
+>> sp|P82113|HBB_STEMC Hemoglobin subunit beta OS=Stercorarius maccormicki GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.5 0.0 1.1e-53 5.2e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.5 0.1 1.2e-53 5.7e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.5 bits; conditional E-value: 1.1e-53
+ == domain 1 score: 177.5 bits; conditional E-value: 1.2e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
- sp|P82113|HBB_CATMA 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
+ sp|P82113|HBB_STEMC 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
779**************..*************************************************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
selH++kl+vdp++f+ll+++l+ vlaa+++keft+d qaa +Kl+ +va++la kY+
- sp|P82113|HBB_CATMA 89 SELHCDKLHVDPENFRLLGDILIIVLAAHFAKEFTPDCQAAWQKLVRVVAHALARKYH 146
+ sp|P82113|HBB_STEMC 89 SELHCDKLHVDPENFRLLGDILIIVLAAHFAKEFTPDCQAAWQKLVRVVAHALARKYH 146
+ *********************************************************7 PP
+
+>> sp|B3EWD9|HBA_TAMST Hemoglobin subunit alpha OS=Tamias striatus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 177.4 0.3 1.2e-53 6e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+a+kt++ka+W k + + +e+Ga++L+r+f ++P+t+++F++F dLs ++sa+v+ Hg+kv+dAl a+ +ld +l+++l++L
+ sp|B3EWD9|HBA_TAMST 1 VLSPADKTNLKAAWHKLGGHGGEYGAEALERMFATFPTTKTYFPHF-DLS-----HGSAQVQGHGEKVADALLHAVGNLD-DLPGALSAL 83
+ 69********************************************.***.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa++p+eft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWD9|HBA_TAMST 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPAEFTPAVHASLDKFLATVSTVLTSKYR 141
*********************************************************7 PP
>> sp|P68030|HBG_ALOBE Hemoglobin subunit gamma OS=Alouatta belzebul GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.4 0.0 1.2e-53 5.6e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.4 0.0 1.2e-53 6e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
+ == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P68030|HBG_ALOBE 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGSLS 90
@@ -9852,10 +10259,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68031|HBG_ALOCA Hemoglobin subunit gamma OS=Alouatta caraya GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.4 0.0 1.2e-53 5.6e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.4 0.0 1.2e-53 6e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
+ == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P68031|HBG_ALOCA 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGSLS 90
@@ -9869,10 +10276,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14260|HBB_CAIMO Hemoglobin subunit beta OS=Cairina moschata GN=HBB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.4 0.0 1.2e-53 5.7e-51 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 177.4 0.1 1.3e-53 6.1e-51 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
+ == domain 1 score: 177.4 bits; conditional E-value: 1.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P14260|HBB_CAIMO 3 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 89
@@ -9886,10 +10293,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9GJS7|HBG_CALJA Hemoglobin subunit gamma OS=Callithrix jacchus GN=HBG1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.4 0.0 1.2e-53 5.7e-51 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 177.4 0.0 1.3e-53 6.2e-51 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.4 bits; conditional E-value: 1.2e-53
+ == domain 1 score: 177.4 bits; conditional E-value: 1.3e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++Wakv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|Q9GJS7|HBG_CALJA 4 FTAEDKAAITSLWAKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGQLS 90
@@ -9903,10 +10310,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M3B8|HBA1_HAPGR Hemoglobin subunit alpha-1 OS=Hapalemur griseus GN=HBA1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.3 0.7 1.3e-53 5.8e-51 2 149 .] 1 140 [] 1 140 [] 0.98
+ 1 ! 177.3 1.0 1.3e-53 6.3e-51 2 149 .] 1 140 [] 1 140 [] 0.98
Alignments for each domain:
- == domain 1 score: 177.3 bits; conditional E-value: 1.3e-53
+ == domain 1 score: 177.3 bits; conditional E-value: 1.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs a+kt++k++W+ ++++++++Ga++L+r+f+s+P+t+++F++F d+s ++s ++ +Hgkkv+dAl++a+ ++d +++++l++
sp|Q7M3B8|HBA1_HAPGR 1 VLSSADKTNIKTAWGAIGSHAADHGAEALERMFLSFPTTKTYFPHF-DMS-----HGSGQI-AHGKKVADALTNAVGHID-DMPGALSA 81
@@ -9920,10 +10327,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P60523|HBA_CHRBR Hemoglobin subunit alpha OS=Chrysocyon brachyurus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.3 0.1 1.3e-53 5.9e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 177.3 0.1 1.3e-53 6.5e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.3 bits; conditional E-value: 1.3e-53
+ == domain 1 score: 177.3 bits; conditional E-value: 1.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k+ W k++ +++++G+++L r f+s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+a+ld +l+++l++L
sp|P60523|HBA_CHRBR 1 VLSPADKTNIKSTWDKIGGHAGDYGGEALDRTFQSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTTAVAHLD-DLPGALSAL 83
@@ -9937,10 +10344,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02116|HBB_ARAAR Hemoglobin subunit beta OS=Ara ararauna GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.3 0.0 1.3e-53 5.9e-51 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 177.3 0.0 1.3e-53 6.4e-51 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.3 bits; conditional E-value: 1.3e-53
+ == domain 1 score: 177.3 bits; conditional E-value: 1.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P02116|HBB_ARAAR 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -9954,10 +10361,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63105|HBA_CAMBA Hemoglobin subunit alpha OS=Camelus bactrianus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.2 0.6 1.4e-53 6.3e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 177.2 0.9 1.4e-53 6.8e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.2 bits; conditional E-value: 1.4e-53
+ == domain 1 score: 177.2 bits; conditional E-value: 1.4e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++kt+vk++++k++ +++e+Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a +ld +l+++l++L
sp|P63105|HBA_CAMBA 1 VLSSKDKTNVKTAFGKIGGHAAEYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTKAADHLD-DLPSALSAL 83
@@ -9971,10 +10378,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P63106|HBA_CAMDR Hemoglobin subunit alpha OS=Camelus dromedarius GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.2 0.6 1.4e-53 6.3e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 177.2 0.9 1.4e-53 6.8e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.2 bits; conditional E-value: 1.4e-53
+ == domain 1 score: 177.2 bits; conditional E-value: 1.4e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++kt+vk++++k++ +++e+Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a +ld +l+++l++L
sp|P63106|HBA_CAMDR 1 VLSSKDKTNVKTAFGKIGGHAAEYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTKAADHLD-DLPSALSAL 83
@@ -9988,10 +10395,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02200|MYG_ALLMI Myoglobin OS=Alligator mississippiensis GN=MB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.2 1.8 1.4e-53 6.4e-51 2 149 .] 2 148 .. 1 148 [. 0.99
+ 1 ! 177.2 2.7 1.4e-53 6.9e-51 2 149 .] 2 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 177.2 bits; conditional E-value: 1.4e-53
+ == domain 1 score: 177.2 bits; conditional E-value: 1.4e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++e+++v+ +W+kve++ e+G ++++rl++ +P+tqe FekFk+++t+de+k+s+++k+Hg++v +Al+++l++ ++++ lk+L
sp|P02200|MYG_ALLMI 2 ELSDQEWKHVLDIWTKVESKLPEHGHEVIIRLLQEHPETQERFEKFKHMKTADEMKSSEKMKQHGNTVFTALGNILKQ-KGNHAEVLKPL 90
@@ -10005,10 +10412,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07414|HBA_TRIIN Hemoglobin subunit alpha OS=Trichechus inunguis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.1 0.0 1.4e-53 6.7e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 177.1 0.0 1.5e-53 7.2e-51 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.1 bits; conditional E-value: 1.4e-53
+ == domain 1 score: 177.1 bits; conditional E-value: 1.5e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk+ W+k++++ +e+G+++L+r+f+s+P+t+++F++F dLs ++s ++k+Hgkkv+dAl+ a+ +l+ +l+++l++L
sp|P07414|HBA_TRIIN 1 VLSDEDKTNVKTFWGKIGTHTGEYGGEALERMFLSFPTTKTYFPHF-DLS-----HGSGQIKAHGKKVADALTRAVGHLE-DLPGTLSEL 83
@@ -10022,10 +10429,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14524|HBB_TURME Hemoglobin subunit beta OS=Turdus merula GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.1 0.0 1.5e-53 6.7e-51 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 177.1 0.0 1.5e-53 7.3e-51 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 177.1 bits; conditional E-value: 1.5e-53
+ == domain 1 score: 177.1 bits; conditional E-value: 1.5e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek+ ++ +W+kv +v+e G+++L rl+ ++P+tq+fF +F++Ls + ++ ++++v++Hgkkvl+ +++a+++ld +++++++Ls
sp|P14524|HBB_TURME 3 WTAEEKQLITGLWGKV--NVAECGGEALARLLIVYPWTQRFFASFGNLSSPTAVLGNPKVQAHGKKVLTSFGEAVKNLD-SIKGTFAQLS 89
@@ -10039,10 +10446,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XI4|HBD_DENDR Hemoglobin subunit deltaH OS=Dendrohyrax dorsalis GN=HBD PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.0 0.1 1.6e-53 7.2e-51 2 149 .] 3 147 .] 2 147 .] 0.98
+ 1 ! 177.0 0.1 1.6e-53 7.9e-51 2 149 .] 3 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 177.0 bits; conditional E-value: 1.6e-53
+ == domain 1 score: 177.0 bits; conditional E-value: 1.6e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ ek +v ++W+kv d + G ++L rl++ +P+tq+fFe+F+dLst+d+++k++ v++Hg+kvl ++++l++l +l++++++L
sp|Q45XI4|HBD_DENDR 3 RLTDSEKAEVVSLWSKV--DEKIIGSEALGRLLVIYPWTQRFFEHFGDLSTADAIMKNPRVQAHGEKVLSSFGEGLNHLG-DLKGTFAQL 89
@@ -10056,10 +10463,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84792|HBB_AYTFU Hemoglobin subunit beta OS=Aythya fuligula PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 177.0 0.0 1.6e-53 7.5e-51 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 177.0 0.1 1.7e-53 8.2e-51 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 177.0 bits; conditional E-value: 1.6e-53
+ == domain 1 score: 177.0 bits; conditional E-value: 1.7e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P84792|HBB_AYTFU 3 HWTAEEKQIITGLWGKV--NVADCGAEALARLLIVYPWTQRFFSSFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 89
@@ -10073,10 +10480,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C0U8|HBB1_DRYCE Hemoglobin subunit beta-1 OS=Drymarchon corais erebennus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.9 1.3 1.7e-53 8e-51 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 176.9 1.9 1.8e-53 8.7e-51 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 176.9 bits; conditional E-value: 1.7e-53
+ == domain 1 score: 176.9 bits; conditional E-value: 1.8e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek++++++W kv dv +G ++L rl+ ++P+tq+fF +F++Ls +++++++a+vk+Hgkkv +A++da+++ e ++ ++++
sp|P0C0U8|HBB1_DRYCE 2 HWTAEEKSAITSIWNKV--DVPAVGSEALSRLLIVYPWTQRFFTSFGNLSNAAAIQSNAQVKAHGKKVFTAFGDAVKN-PEAVKETFAK 87
@@ -10090,10 +10497,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19645|HBA_PAGLA Hemoglobin subunit alpha OS=Paguma larvata GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.6 0.5 2.1e-53 9.9e-51 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 176.6 0.7 2.2e-53 1.1e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.6 bits; conditional E-value: 2.1e-53
+ == domain 1 score: 176.6 bits; conditional E-value: 2.2e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k+++ka W k++++++e+Ga++L+r f s+P+t+++F++F dLs ++sa+vk+Hgkkv+dAl+ a+ +l+ +l+++l++L
sp|P19645|HBA_PAGLA 1 VLSSADKNNIKATWDKIGSHAGEYGAEALERTFISFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALTLAVGHLE-DLPNALSAL 83
@@ -10107,10 +10514,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O13071|HBE_CALGE Hemoglobin subunit epsilon (Fragment) OS=Callithrix geoffroyi GN=HBE1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.6 0.1 2.2e-53 1e-50 1 144 [. 2 142 .] 2 142 .] 0.98
+ 1 ! 176.6 0.1 2.2e-53 1.1e-50 1 144 [. 2 142 .] 2 142 .] 0.98
Alignments for each domain:
- == domain 1 score: 176.6 bits; conditional E-value: 2.2e-53
+ == domain 1 score: 176.6 bits; conditional E-value: 2.2e-53
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek +++++W+k+ +vee G+++L rl++++P+tq+fF++F++Ls + ++ ++++vk+Hgkkvl+ ++da++++d +l++++++
sp|O13071|HBE_CALGE 2 VHFTAEEKAAITSLWGKM--NVEEAGGEALGRLLVVYPWTQRFFDNFGNLSSPSAILGNPKVKAHGKKVLTSFGDAIKNMD-NLKTTFAK 88
@@ -10124,10 +10531,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XI5|HBD_HETBR Hemoglobin subunit deltaH OS=Heterohyrax brucei PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.5 0.0 2.2e-53 1e-50 2 149 .] 3 147 .] 2 147 .] 0.98
+ 1 ! 176.5 0.0 2.3e-53 1.1e-50 2 149 .] 3 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 176.5 bits; conditional E-value: 2.2e-53
+ == domain 1 score: 176.5 bits; conditional E-value: 2.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ ek +v ++W+kv d + G ++L rl++ +P+tq+fFe+F+dLst+d+++k++ v++Hg+kvl ++++l++ld +l++++++L
sp|Q45XI5|HBD_HETBR 3 RLTDSEKAEVVSLWSKV--DEKIIGSEALGRLLVIYPWTQRFFEHFGDLSTADAIMKNPRVQAHGEKVLSSFGEGLNHLD-NLRGTFAQL 89
@@ -10141,10 +10548,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07419|HBA_DASVI Hemoglobin subunit alpha OS=Dasyurus viverrinus GN=HBA PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.5 0.7 2.3e-53 1e-50 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 176.5 1.0 2.3e-53 1.1e-50 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.5 bits; conditional E-value: 2.3e-53
+ == domain 1 score: 176.5 bits; conditional E-value: 2.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ +++ + a++L r f+s+P+t+++F++F dLs +sa+++ Hgkkv+dAls+a+a+ld +l+++l++L
sp|P07419|HBA_DASVI 2 VLSDADKTHVKAIWGKVGGHAGAYAAEALARTFLSFPTTKTYFPHF-DLS-----PGSAQIQGHGKKVADALSQAVAHLD-DLPGTLSKL 84
@@ -10158,10 +10565,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09967|GLB1_PETMA Globin-1 OS=Petromyzon marinus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.3 0.1 2.5e-53 1.2e-50 3 148 .. 12 150 .] 10 150 .] 0.98
+ 1 ! 176.3 0.1 2.6e-53 1.3e-50 3 148 .. 12 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 176.3 bits; conditional E-value: 2.5e-53
+ == domain 1 score: 176.3 bits; conditional E-value: 2.6e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
L++aek +++++Wa+v+a+++ +G+diL+++f+s Pa+q fF+kF++L+ +d+lkks dv++H++++++A++da+ +d ek++ kl+
sp|P09967|GLB1_PETMA 12 LTAAEKATIRTAWAPVYAKYQSTGVDILIKFFTSNPAAQAFFPKFQGLTSADQLKKSMDVRWHAERIINAVNDAVVAMDdtEKMSLKLR 100
@@ -10172,13 +10579,13 @@ Domain annotation for each sequence (and alignments):
sp|P09967|GLB1_PETMA 101 ELSGKHAKSFQVDPQYFKVLAAVIVDTVLPG---------DAGLEKLMSMICILLRSSY 150
****************************999.........9****************99 PP
->> sp|P02114|HBB_ANAPL Hemoglobin subunit beta OS=Anas platyrhynchos GN=HBB PE=2 SV=2
+>> sp|P02114|HBB_ANAPL Hemoglobin subunit beta OS=Anas platyrhynchos GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.5 0.0 2.3e-53 1.1e-50 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 176.5 0.1 2.4e-53 1.2e-50 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 176.5 bits; conditional E-value: 2.3e-53
+ == domain 1 score: 176.5 bits; conditional E-value: 2.4e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++L
sp|P02114|HBB_ANAPL 3 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQL 89
@@ -10192,10 +10599,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18978|HBA_TURTR Hemoglobin subunit alpha OS=Tursiops truncatus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.4 0.2 2.4e-53 1.1e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 176.4 0.3 2.5e-53 1.2e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.4 bits; conditional E-value: 2.4e-53
+ == domain 1 score: 176.4 bits; conditional E-value: 2.5e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk W+k++ + +e+Ga++L+r+f +P t+++F +F dL ++sa++k Hgkkv+dAl++a+ ++d +l+ +l++L
sp|P18978|HBA_TURTR 1 VLSPADKTNVKGTWSKIGNHSAEYGAEALERMFINFPSTKTYFSHF-DLG-----HGSAQIKGHGKKVADALTKAVGHID-NLPDALSEL 83
@@ -10209,10 +10616,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10782|HBB_PHACA Hemoglobin subunit beta OS=Phalacrocorax carbo GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.4 0.1 2.5e-53 1.1e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 176.4 0.2 2.6e-53 1.2e-50 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.4 bits; conditional E-value: 2.5e-53
+ == domain 1 score: 176.4 bits; conditional E-value: 2.6e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v+e Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld +++a++++L
sp|P10782|HBB_PHACA 2 HWTAEEKQLITGLWGKV--NVAECGAEALARLLIVYPWTQRFFASFGNLSSATAITGNPMVRAHGKKVLTSFGEAVKNLD-NIKATFAQL 88
@@ -10226,10 +10633,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15163|HBA_LEPWE Hemoglobin subunit alpha-1/2 OS=Leptonychotes weddelli PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.2 0.1 2.8e-53 1.3e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 176.2 0.1 2.9e-53 1.4e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.2 bits; conditional E-value: 2.8e-53
+ == domain 1 score: 176.2 bits; conditional E-value: 2.9e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk+ W k++ +++e+G+++L+r f+++P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+ ++d +l+++l++L
sp|P15163|HBA_LEPWE 1 VLSPADKTNVKTTWDKIGGHAGEYGGEALERTFMAFPTTKTYFPHF-DLS-----PGSAQVKTHGKKVADALTTAVSHID-DLPGALSAL 83
@@ -10240,13 +10647,13 @@ Domain annotation for each sequence (and alignments):
sp|P15163|HBA_LEPWE 84 SDLHAYKLRVDPVNFKLLSHCLLVTLACHHPADFTPAVHASLDKFFSAVSTVLTSKYR 141
*********************************************************7 PP
->> sp|P23019|HBA_PROCR Hemoglobin subunit alpha OS=Proteles cristatus GN=HBA PE=1 SV=1
+>> sp|P23019|HBA_PROCR Hemoglobin subunit alpha OS=Proteles cristata GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.0 0.6 3.2e-53 1.5e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 176.0 0.9 3.3e-53 1.6e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.0 bits; conditional E-value: 3.2e-53
+ == domain 1 score: 176.0 bits; conditional E-value: 3.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k ++ka W k++ + +e+Ga++L+r f+ +P+t+++F++F dLs ++sa+vk+Hgkkv+dAl+ a a+ld +l+a+l++L
sp|P23019|HBA_PROCR 1 VLSSADKANIKATWDKIGGHGGEYGAEALERTFLCFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALAVAAAHLD-DLPAALSAL 83
@@ -10260,10 +10667,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02124|HBB_RHEAM Hemoglobin subunit beta OS=Rhea americana GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 176.0 0.0 3.3e-53 1.5e-50 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 176.0 0.1 3.4e-53 1.7e-50 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 176.0 bits; conditional E-value: 3.3e-53
+ == domain 1 score: 176.0 bits; conditional E-value: 3.4e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++Ls
sp|P02124|HBB_RHEAM 3 WTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQLS 89
@@ -10274,13 +10681,30 @@ Domain annotation for each sequence (and alignments):
sp|P02124|HBB_RHEAM 90 ELHCDKLHVDPENFRLLGDILIIVLAAHFAKDFTPECQAAWQKLVRVVAHALARKYH 146
********************************************************7 PP
+>> sp|P86390|HBB2_IGUIG Hemoglobin subunit beta-2 OS=Iguana iguana GN=HBB2 PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 175.9 0.1 3.5e-53 1.7e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 175.9 bits; conditional E-value: 3.5e-53
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ + +++ek+ ++ +W+kv dv ++Gad+L +++ +P+tq+fF F++Ls + ++ ++++v++Hgkkvl+A++da+++ld +++ ++++
+ sp|P86390|HBB2_IGUIG 2 HWTAEEKQLITCLWGKV--DVPTVGADALAGMLVMYPWTQRFFADFGNLSSATAICGNPKVRAHGKKVLTAFGDAIKNLD-NIKDTFAK 87
+ 6799*************..*************************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++fkll++vl+ vla +++k+ft++ +aa++Kl+++va++la +Y+
+ sp|P86390|HBB2_IGUIG 88 LSELHCDKLHVDPENFKLLGNVLIIVLAGHYGKDFTPACHAAYQKLVNVVAHALARRYH 146
+ **********************************************************7 PP
+
>> sp|P02123|HBB_STRCA Hemoglobin subunit beta OS=Struthio camelus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.7 0.0 3.9e-53 1.8e-50 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 175.7 0.0 4e-53 2e-50 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 175.7 bits; conditional E-value: 3.9e-53
+ == domain 1 score: 175.7 bits; conditional E-value: 4e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s++ek+ + +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ ++da+++ld ++++++++Ls
sp|P02123|HBB_STRCA 3 WSAEEKQLISGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAILGNPMVRAHGKKVLTSFGDAVKNLD-NIKNTFAQLS 89
@@ -10291,13 +10715,13 @@ Domain annotation for each sequence (and alignments):
sp|P02123|HBB_STRCA 90 ELHCDKLHVDPENFRLLGDILIIVLAAHFTKEFTPECQAAWQKLVRVVAHALARKYH 146
********************************************************7 PP
->> sp|Q27940|HBG_AOTAZ Hemoglobin subunit gamma OS=Aotus azarai GN=HBG PE=2 SV=3
+>> sp|Q27940|HBG_AOTAZ Hemoglobin subunit gamma OS=Aotus azarae GN=HBG PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.6 0.0 4.2e-53 1.9e-50 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 175.6 0.0 4.3e-53 2.1e-50 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 175.6 bits; conditional E-value: 4.2e-53
+ == domain 1 score: 175.6 bits; conditional E-value: 4.3e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++Wakv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg kvl+ l++a+++ld +l++++ +Ls
sp|Q27940|HBG_AOTAZ 4 FTAEDKAAITSLWAKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGAKVLTSLGEAIKNLD-DLKGTFGQLS 90
@@ -10311,10 +10735,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02120|HBB_ANSSE Hemoglobin subunit beta OS=Anseranas semipalmata GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.6 0.0 4.3e-53 2e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 175.6 0.0 4.5e-53 2.2e-50 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 175.6 bits; conditional E-value: 4.3e-53
+ == domain 1 score: 175.6 bits; conditional E-value: 4.5e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+t++fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P02120|HBB_ANSSE 2 HWSAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTERFFSSFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -10328,10 +10752,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02203|MYG_VARVA Myoglobin OS=Varanus varius GN=MB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.3 0.2 5.2e-53 2.4e-50 3 149 .] 3 148 .. 1 148 [. 0.99
+ 1 ! 175.3 0.3 5.4e-53 2.6e-50 3 149 .] 3 148 .. 1 148 [. 0.99
Alignments for each domain:
- == domain 1 score: 175.3 bits; conditional E-value: 5.2e-53
+ == domain 1 score: 175.3 bits; conditional E-value: 5.4e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e++kv +W+kve d +G+++++r+f+ +P+tq+ F kFk+L+t de+k+s+d+kkHg +vl+Al+ +l++ ++++ea++++L+
sp|P02203|MYG_VARVA 3 LSDEEWKKVVDIWGKVEPDLPSHGQEVIIRMFQNHPETQDRFAKFKNLKTLDEMKNSEDLKKHGTTVLTALGRILKQ-KGHHEAEIAPLA 91
@@ -10345,10 +10769,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68061|HBB_AEGMO Hemoglobin subunit beta OS=Aegypius monachus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.3 0.0 5.3e-53 2.5e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 175.3 0.0 5.5e-53 2.7e-50 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 175.3 bits; conditional E-value: 5.3e-53
+ == domain 1 score: 175.3 bits; conditional E-value: 5.5e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P68061|HBB_AEGMO 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -10362,10 +10786,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68062|HBB_TRIOC Hemoglobin subunit beta OS=Trigonoceps occipitalis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.3 0.0 5.3e-53 2.5e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 175.3 0.0 5.5e-53 2.7e-50 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 175.3 bits; conditional E-value: 5.3e-53
+ == domain 1 score: 175.3 bits; conditional E-value: 5.5e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P68062|HBB_TRIOC 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -10379,10 +10803,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68063|HBB_GYPRU Hemoglobin subunit beta OS=Gyps rueppellii GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.3 0.0 5.3e-53 2.5e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 175.3 0.0 5.5e-53 2.7e-50 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 175.3 bits; conditional E-value: 5.3e-53
+ == domain 1 score: 175.3 bits; conditional E-value: 5.5e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P68063|HBB_GYPRU 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -10396,10 +10820,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08851|HBB_ACCGE Hemoglobin subunit beta OS=Accipiter gentilis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.2 0.1 5.7e-53 2.6e-50 4 149 .] 4 146 .] 1 146 [] 0.98
+ 1 ! 175.2 0.1 5.9e-53 2.9e-50 4 149 .] 4 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 175.2 bits; conditional E-value: 5.7e-53
+ == domain 1 score: 175.2 bits; conditional E-value: 5.9e-53
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++Lse
sp|P08851|HBB_ACCGE 4 AAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSATAVLGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQLSE 90
@@ -10413,10 +10837,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01957|HBA_PROHA Hemoglobin subunit alpha OS=Procavia capensis habessinica GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.1 0.3 6e-53 2.8e-50 2 149 .] 1 142 [] 1 142 [] 0.98
+ 1 ! 175.1 0.4 6.1e-53 3e-50 2 149 .] 1 142 [] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 175.1 bits; conditional E-value: 6e-53
+ == domain 1 score: 175.1 bits; conditional E-value: 6.1e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk +W kv+++++e+Ga++L+r+f+s+P+t+++F++F dL+ ++sa+vk+Hg+kv Al++a+ +ld +l+++l+dL
sp|P01957|HBA_PROHA 1 VLSAADKNNVKGAWEKVGTHAGEYGAEALERMFLSFPTTKTYFPHF-DLT-----HGSAQVKAHGQKVGAALTKAVGHLD-DLPNALSDL 83
@@ -10430,10 +10854,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9GLX4|HBG1_CALMO Hemoglobin subunit gamma-1 OS=Callicebus moloch GN=HBG1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.1 0.0 6e-53 2.8e-50 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 175.1 0.0 6.1e-53 3e-50 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 175.1 bits; conditional E-value: 6e-53
+ == domain 1 score: 175.1 bits; conditional E-value: 6.1e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +L
sp|Q9GLX4|HBG1_CALMO 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFDQL 89
@@ -10447,10 +10871,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02128|HBE_CHICK Hemoglobin subunit epsilon OS=Gallus gallus GN=HBE PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 175.1 0.1 6.1e-53 2.8e-50 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 175.1 0.1 6.3e-53 3.1e-50 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 175.1 bits; conditional E-value: 6.1e-53
+ == domain 1 score: 175.1 bits; conditional E-value: 6.3e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ +++vW+kv +vee Ga++L rl+ ++P+tq+fF +F++Ls + ++++++ v++Hgkkvl +++a+++ld ++++++++L
sp|P02128|HBE_CHICK 3 HWSAEEKQLITSVWSKV--NVEECGAEALARLLIVYPWTQRFFASFGNLSSPTAIMGNPRVRAHGKKVLSSFGEAVKNLD-NIKNTYAKL 89
@@ -10464,10 +10888,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01949|HBA_ERIEU Hemoglobin subunit alpha OS=Erinaceus europaeus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.9 0.1 6.9e-53 3.2e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 174.9 0.1 7.1e-53 3.5e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.9 bits; conditional E-value: 6.9e-53
+ == domain 1 score: 174.9 bits; conditional E-value: 7.1e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +k +vk+ W+k + + +e+G+++L r+f+++P+t+++F++F dL+ +sa+vk Hgkkv+dAl+ a+++ld +++++l++L
sp|P01949|HBA_ERIEU 1 VLSATDKANVKTFWGKLGGHGGEYGGEALDRMFQAHPTTKTYFPHF-DLN-----PGSAQVKGHGKKVADALTTAVNNLD-DVPGALSAL 83
@@ -10481,10 +10905,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01979|HBA_ORNAN Hemoglobin subunit alpha OS=Ornithorhynchus anatinus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.7 1.0 8.3e-53 3.8e-50 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 174.7 1.4 8.6e-53 4.2e-50 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.7 bits; conditional E-value: 8.3e-53
+ == domain 1 score: 174.7 bits; conditional E-value: 8.6e-53
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L++aek++v+a+W+k + ee+Ga++L+rlf+++P+t+++F +F dLs ++sa++k+Hgkkv+dAls a ++d +++++l++Ls
sp|P01979|HBA_ORNAN 2 LTDAEKKEVTALWGKAAGHGEEYGAEALERLFQAFPTTKTYFSHF-DLS-----HGSAQIKAHGKKVADALSTAAGHFD-DMDSALSALS 84
@@ -10498,10 +10922,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18977|HBA_PROLO Hemoglobin subunit alpha OS=Procyon lotor GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.6 0.1 8.6e-53 4e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 174.6 0.1 8.8e-53 4.3e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.6 bits; conditional E-value: 8.6e-53
+ == domain 1 score: 174.6 bits; conditional E-value: 8.8e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k ++ka W k++ +++e+G+++L+r f s+P+t+++F++F dLs +sa+vk+Hgkkv+dAl+ a+ +ld +l+++l++L
sp|P18977|HBA_PROLO 1 VLSPADKANIKATWDKIGGHAGEYGGEALERTFASFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVADALTLAVGHLD-DLPGALSAL 83
@@ -10515,10 +10939,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01973|HBA_LAMGL Hemoglobin subunit alpha OS=Lama glama GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.6 0.4 8.6e-53 4e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 174.6 0.6 8.8e-53 4.3e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.6 bits; conditional E-value: 8.6e-53
+ == domain 1 score: 174.6 bits; conditional E-value: 8.8e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k ++k++++k++ +++++Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a +ld +l+++l++L
sp|P01973|HBA_LAMGL 1 VLSSKDKANIKTAFGKIGGHAADYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTKAADHLD-DLPSALSAL 83
@@ -10532,10 +10956,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67815|HBA_LAMGU Hemoglobin subunit alpha OS=Lama guanicoe GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.6 0.6 9.1e-53 4.2e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 174.6 0.9 9.4e-53 4.6e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.6 bits; conditional E-value: 9.1e-53
+ == domain 1 score: 174.6 bits; conditional E-value: 9.4e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k ++k++++k++ +++++Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a +ld +l+++l++L
sp|P67815|HBA_LAMGU 1 VLSSKDKANIKTAFGKIGGHAADYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTKAADHLD-DLPSALSAL 83
@@ -10549,10 +10973,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P67816|HBA_LAMPA Hemoglobin subunit alpha OS=Lama guanicoe pacos GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.6 0.6 9.1e-53 4.2e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 174.6 0.9 9.4e-53 4.6e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.6 bits; conditional E-value: 9.1e-53
+ == domain 1 score: 174.6 bits; conditional E-value: 9.4e-53
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k ++k++++k++ +++++Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a +ld +l+++l++L
sp|P67816|HBA_LAMPA 1 VLSSKDKANIKTAFGKIGGHAADYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTKAADHLD-DLPSALSAL 83
@@ -10566,10 +10990,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02108|HBB_POTTR Hemoglobin subunit beta OS=Potorous tridactylus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.2 0.1 1.2e-52 5.4e-50 1 149 [] 1 146 [] 1 146 [] 0.99
+ 1 ! 174.2 0.1 1.2e-52 5.8e-50 1 149 [] 1 146 [] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
+ == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+Ls +ek ++++W+k+ d+e++G+++L rl+ ++P+t +fF++F+dLs + ++ ++a+v +Hg kvl ++da+++ld +l++++++
sp|P02108|HBB_POTTR 1 VHLSSEEKGLITSLWGKI--DIEQTGGEALGRLLIVYPWTSRFFDHFGDLSSAKAVLGNAKVLAHGAKVLVSFGDAIKNLD-NLKGTFAK 87
@@ -10580,47 +11004,47 @@ Domain annotation for each sequence (and alignments):
sp|P02108|HBB_POTTR 88 LSELHCDKLHVDPENFKLLGNVLVICLAEHFGKDFTIDAQVAWQKLVAGVANALAHKYH 146
**********************************************************7 PP
->> sp|P83123|HBB_GEONI Hemoglobin subunit beta OS=Geochelone nigra GN=HBB PE=1 SV=3
+>> sp|P83123|HBB_CHENI Hemoglobin subunit beta OS=Chelonoidis nigra GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.2 0.3 1.2e-52 5.4e-50 2 149 .] 3 147 .] 2 147 .] 0.98
+ 1 ! 174.2 0.4 1.2e-52 5.8e-50 2 149 .] 3 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
+ == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++++Wakv +vee+G+++L rl+ ++P+tq+fF +F++Ls + ++ +a+v +Hgkkvl+ ++da+++ld ++++++++L
- sp|P83123|HBB_GEONI 3 HWTPEEKQYITSLWAKV--NVEEVGGEALARLLIVYPWTQRFFSSFGNLSSASAILHNAKVLAHGKKVLTSFGDAVKNLD-NIKKTFAQL 89
+ sp|P83123|HBB_CHENI 3 HWTPEEKQYITSLWAKV--NVEEVGGEALARLLIVYPWTQRFFSSFGNLSSASAILHNAKVLAHGKKVLTSFGDAVKNLD-NIKKTFAQL 89
6799*************..*************************************************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
selH++kl+vdp++fkll+++l+ vla+r+pkeft++ qaa Kl++ va++la Y+
- sp|P83123|HBB_GEONI 90 SELHCEKLHVDPENFKLLGNILIIVLATRFPKEFTPASQAAWTKLVNAVAHALALGYH 147
+ sp|P83123|HBB_CHENI 90 SELHCEKLHVDPENFKLLGNILIIVLATRFPKEFTPASQAAWTKLVNAVAHALALGYH 147
******************************************************9996 PP
->> sp|P02109|HBB_DIDMA Hemoglobin subunit beta-M OS=Didelphis marsupialis virginiana GN=HBB PE=1 SV=3
+>> sp|P02109|HBB_DIDVI Hemoglobin subunit beta-M OS=Didelphis virginiana GN=HBB PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.2 0.1 1.2e-52 5.6e-50 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 174.2 0.1 1.2e-52 6e-50 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
+ == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+L+ +ek+ ++++W+kv +v+++G+++L r+++++P+t +fF +F+dLs + +++++ +v++Hg kvl+ +++a+++ld +l++++++
- sp|P02109|HBB_DIDMA 2 VHLTSEEKNCITTIWSKV--QVDQTGGEALGRMLVVYPWTTRFFGSFGDLSSPGAVMSNSKVQAHGAKVLTSFGEAVKHLD-NLKGTYAK 88
+ sp|P02109|HBB_DIDVI 2 VHLTSEEKNCITTIWSKV--QVDQTGGEALGRMLVVYPWTTRFFGSFGDLSSPGAVMSNSKVQAHGAKVLTSFGEAVKHLD-NLKGTYAK 88
69****************..9************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp++fk+l++++v la++++k+ft++ q a +Kl+a va++la+kY+
- sp|P02109|HBB_DIDMA 89 LSELHCDKLHVDPENFKMLGNIIVICLAEHFGKDFTPECQVAWQKLVAGVAHALAHKYH 147
+ sp|P02109|HBB_DIDVI 89 LSELHCDKLHVDPENFKMLGNIIVICLAEHFGKDFTPECQVAWQKLVAGVAHALAHKYH 147
**********************************************************7 PP
>> sp|P02122|HBB_AQUCH Hemoglobin subunit beta OS=Aquila chrysaetos GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 174.2 0.0 1.2e-52 5.6e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 174.2 0.1 1.2e-52 6e-50 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
+ == domain 1 score: 174.2 bits; conditional E-value: 1.2e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld ++++++++L
sp|P02122|HBB_AQUCH 2 HWTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSPTAIIGNPMVRAHGKKVLTSFGEAVKNLD-NIKNTFAQL 88
@@ -10634,10 +11058,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01977|HBA1_TACAC Hemoglobin subunit alpha-1 OS=Tachyglossus aculeatus aculeatus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.9 1.5 1.5e-52 6.7e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 173.9 2.2 1.5e-52 7.3e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 173.9 bits; conditional E-value: 1.5e-52
+ == domain 1 score: 173.9 bits; conditional E-value: 1.5e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++aek++v+++W+k ++ee+Ga++L+rlf+s+P+t+++F + dLs k+sa+vk+Hgk+v+dAl+ a +++ +++++l++
sp|P01977|HBA1_TACAC 1 VLTDAEKKEVTSLWGKASGHAEEYGAEALERLFLSFPTTKTYFSHM-DLS-----KGSAQVKAHGKRVADALTTAAGHFN-DMDSALSA 82
@@ -10651,10 +11075,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07425|HBA_LAMVI Hemoglobin subunit alpha OS=Lama vicugna GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.9 0.7 1.5e-52 6.8e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 173.9 0.9 1.5e-52 7.4e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 173.9 bits; conditional E-value: 1.5e-52
+ == domain 1 score: 173.9 bits; conditional E-value: 1.5e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k +vk++++k++ +++++Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl++a +ld +l+++l++L
sp|P07425|HBA_LAMVI 1 VLSSKDKANVKTAFGKIGGHAADYGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTKAADHLD-DLPSALSAL 83
@@ -10668,10 +11092,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01978|HBA2_TACAC Hemoglobin subunit alpha-2 OS=Tachyglossus aculeatus aculeatus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.6 0.8 1.8e-52 8.3e-50 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 173.6 1.2 1.8e-52 9e-50 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 173.6 bits; conditional E-value: 1.8e-52
+ == domain 1 score: 173.6 bits; conditional E-value: 1.8e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++ae+++v+++W+k ++e++Ga++L+rlf+s+P+t+++F + dLs k+sa+v++Hgkkv+dAl+ a+ +++ +++++l+d
sp|P01978|HBA2_TACAC 1 VLTDAERKEVTSLWGKASGHAEDYGAEALERLFLSFPTTKTYFSHM-DLS-----KGSAHVRAHGKKVADALTTAVGHFN-DMDGALSD 82
@@ -10685,10 +11109,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04444|HBBZ_MOUSE Hemoglobin subunit beta-H1 OS=Mus musculus GN=Hbb-bh1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.5 0.1 1.9e-52 8.9e-50 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 173.5 0.2 2e-52 9.6e-50 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 173.5 bits; conditional E-value: 1.9e-52
+ == domain 1 score: 173.5 bits; conditional E-value: 2e-52
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+ +++ek +++++W kv d e++G++ L rl+ ++P+tq+fF+kF++Ls + ++++++ +++Hgkkvl+ l+ +++++d +l+ +++
sp|P04444|HBBZ_MOUSE 2 VHFTAEEKAAITSIWDKV--DLEKVGGETLGRLLIVYPWTQRFFDKFGNLSSALAIMGNPRIRAHGKKVLTSLGLGVKNMD-NLKETFA 87
@@ -10702,10 +11126,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P22743|HBB2_NAJNA Hemoglobin subunit beta-2 OS=Naja naja GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.3 0.3 2.1e-52 9.9e-50 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 173.3 0.4 2.2e-52 1.1e-49 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 173.3 bits; conditional E-value: 2.1e-52
+ == domain 1 score: 173.3 bits; conditional E-value: 2.2e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ s++ek+ ++++Wakv dv e+Ga L ++++ +P+tq+fF +F++Ls + +l ++++v++Hgkkvl+ +++al++ld +++ ++++
sp|P22743|HBB2_NAJNA 2 HWSAEEKQLITSLWAKV--DVPEVGAATLGKMMVMYPWTQRFFAHFGNLSGPSALCGNPQVRAHGKKVLTSFGEALKHLD-NVKETFAK 87
@@ -10719,10 +11143,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01954|HBA_ELEMA Hemoglobin subunit alpha OS=Elephas maximus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.2 0.3 2.4e-52 1.1e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 173.2 0.5 2.5e-52 1.2e-49 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 173.2 bits; conditional E-value: 2.4e-52
+ == domain 1 score: 173.2 bits; conditional E-value: 2.5e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vka W+kv+ ++ ++ a++L+r+f s+P+t+++F++F dLs ++s +vk Hgkkv +Al++a+ +ld +l+++l++L
sp|P01954|HBA_ELEMA 1 VLSDKDKTNVKATWSKVGDHASDYVAEALERMFFSFPTTKTYFPHF-DLS-----HGSGQVKGHGKKVGEALTQAVGHLD-DLPSALSAL 83
@@ -10736,10 +11160,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13274|HBB_CHRPI Hemoglobin subunit beta OS=Chrysemys picta bellii GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 173.1 0.8 2.5e-52 1.2e-49 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 173.1 1.2 2.6e-52 1.3e-49 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 173.1 bits; conditional E-value: 2.5e-52
+ == domain 1 score: 173.1 bits; conditional E-value: 2.6e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +++ek+ ++++W+kv +vee G ++L rl+ ++P+tq+fF F++Ls ++++ +++v++Hgkkvl+ +++a+++ld ++++++++L
sp|P13274|HBB_CHRPI 2 HWTADEKQLITSLWGKV--NVEECGSEALARLLIVYPWTQRFFSTFGNLSNAEAILHNPHVHAHGKKVLTSFGEAVKNLD-HIKQTFATL 88
@@ -10753,10 +11177,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29626|HBBY_MESAU Hemoglobin subunit beta-Y OS=Mesocricetus auratus GN=HBBY PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 172.7 0.1 3.5e-52 1.6e-49 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 172.7 0.2 3.6e-52 1.7e-49 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 172.7 bits; conditional E-value: 3.5e-52
+ == domain 1 score: 172.7 bits; conditional E-value: 3.6e-52
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+ +++ek +++++W kv d e+ G++ L rl+ ++P+tq+fFekF++Ls ++++++++ +++Hgkkvl+ l+ a++++d +l+ +++
sp|P29626|HBBY_MESAU 2 VHFTAEEKAAITSIWDKV--DLEKAGGETLGRLLIVYPWTQRFFEKFGNLSPPQAIMGNPRIRAHGKKVLTSLGLAVQNMD-NLKETFA 87
@@ -10770,10 +11194,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P56285|HBG_ALOSE Hemoglobin subunit gamma OS=Alouatta seniculus GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 172.6 0.0 3.5e-52 1.6e-49 3 149 .] 4 147 .] 2 147 .] 0.99
+ 1 ! 172.6 0.0 3.6e-52 1.8e-49 3 149 .] 4 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 172.6 bits; conditional E-value: 3.5e-52
+ == domain 1 score: 172.6 bits; conditional E-value: 3.6e-52
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++++k +++++W+kv +ve+ G++ L rl++++P+tq+fF++F+ Ls + +++++++vk+Hg+kvl+ l++a+++ld +l++++ +Ls
sp|P56285|HBG_ALOSE 4 FTAEDKAAITSLWGKV--NVEDAGGETLGRLLVVYPWTQRFFDSFGSLSSPSAIMGNPKVKAHGVKVLTSLGEAIKNLD-DLKGTFGSLS 90
@@ -10787,10 +11211,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XI6|HBD_PROCA Hemoglobin subunit deltaH OS=Procavia capensis PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 172.6 0.0 3.6e-52 1.6e-49 2 149 .] 3 147 .] 2 147 .] 0.98
+ 1 ! 172.6 0.0 3.7e-52 1.8e-49 2 149 .] 3 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 172.6 bits; conditional E-value: 3.6e-52
+ == domain 1 score: 172.6 bits; conditional E-value: 3.7e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ ek +v ++W+kv d + G ++L rl++ +P+t++fFe+F+dLst+d++ k++ v++Hg+kvl ++++l++ld +l++++++L
sp|Q45XI6|HBD_PROCA 3 RLTDSEKAEVVSLWSKV--DEKIIGSEALGRLLVIYPWTRRFFEHFGDLSTADAILKNPRVQAHGEKVLSSFGEGLNHLD-NLRGTFAQL 89
@@ -10801,30 +11225,30 @@ Domain annotation for each sequence (and alignments):
sp|Q45XI6|HBD_PROCA 90 SELHCDELHVDPENFRLLGNILVVVLARHYGKEFTLEVQAACQKFVAGMANALAHKYH 147
*********************************************************7 PP
->> sp|Q98905|HBB_GEOCR Hemoglobin subunit beta OS=Geochelone carbonaria GN=HBB PE=2 SV=3
+>> sp|Q98905|HBB_CHECB Hemoglobin subunit beta OS=Chelonoidis carbonaria GN=HBB PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 172.5 0.3 3.8e-52 1.8e-49 2 149 .] 3 147 .] 2 147 .] 0.98
+ 1 ! 172.5 0.5 3.9e-52 1.9e-49 2 149 .] 3 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 172.5 bits; conditional E-value: 3.8e-52
+ == domain 1 score: 172.5 bits; conditional E-value: 3.9e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s +ek+ ++++Wakv +vee+G+++L rl+ ++P+tq+fF +F++Ls ++++ +a+v +Hgkkvl+ +++a+++ld ++++++++L
- sp|Q98905|HBB_GEOCR 3 HWSCEEKQFITSLWAKV--NVEEVGGEALARLLIVYPWTQRFFSSFGNLSSPNAILHNAKVLAHGKKVLTSFGEAVKNLD-NIKKTFAQL 89
+ sp|Q98905|HBB_CHECB 3 HWSCEEKQFITSLWAKV--NVEEVGGEALARLLIVYPWTQRFFSSFGNLSSPNAILHNAKVLAHGKKVLTSFGEAVKNLD-NIKKTFAQL 89
6789*************..*************************************************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
selH++kl+vdp++fkll+++l+ vla+++pkeft++ qaa Kl++ va++la Y+
- sp|Q98905|HBB_GEOCR 90 SELHCEKLHVDPENFKLLGNILIIVLATHFPKEFTPASQAAWTKLVNAVAHALALGYH 147
+ sp|Q98905|HBB_CHECB 90 SELHCEKLHVDPENFKLLGNILIIVLATHFPKEFTPASQAAWTKLVNAVAHALALGYH 147
******************************************************9996 PP
>> sp|P01955|HBA_LOXAF Hemoglobin subunit alpha OS=Loxodonta africana GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 171.8 0.3 6.4e-52 3e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 171.8 0.4 6.6e-52 3.2e-49 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 171.8 bits; conditional E-value: 6.4e-52
+ == domain 1 score: 171.8 bits; conditional E-value: 6.6e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vka W+kv+ ++ ++ a++L+r+f s+P+t+++F++F dL ++s +vk+Hgkkv +Al++a+ +ld +l+++l++L
sp|P01955|HBA_LOXAF 1 VLSDNDKTNVKATWSKVGDHASDYVAEALERMFFSFPTTKTYFPHF-DLG-----HGSGQVKAHGKKVGEALTQAVGHLD-DLPSALSAL 83
@@ -10838,10 +11262,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02080|HBBN_AMMLE Hemoglobin subunit beta-C(NA) OS=Ammotragus lervia PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 171.5 0.3 7.7e-52 3.6e-49 7 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 171.5 0.4 7.9e-52 3.9e-49 7 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 171.5 bits; conditional E-value: 7.7e-52
+ == domain 1 score: 171.5 bits; conditional E-value: 7.9e-52
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
+k ++ W+kv +v+++Ga++L rl++++P+t++fF++F++Ls +++++ +a+vk+Hgkkvl+ +s++l++l+ +l++++++Ls+lH
sp|P02080|HBBN_AMMLE 2 BKALITGFWSKV--KVBZVGAZALGRLLVVYPWTZRFFZHFGBLSSABAVMBBAKVKAHGKKVLBSFSBGLKHLB-BLKGAFASLSZLH 87
@@ -10852,13 +11276,30 @@ Domain annotation for each sequence (and alignments):
sp|P02080|HBBN_AMMLE 88 CBKLHVBPZBFRLLGBVLVVVLARHFGKZFBPZLZAZFZKVVAGVASALAHRYH 141
*****************************************************7 PP
+>> sp|B3EWD3|HBA_PERCR Hemoglobin subunit alpha OS=Peromyscus crinitus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 171.5 1.4 8.1e-52 4e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 171.5 bits; conditional E-value: 8.1e-52
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+++k +vkavW+k + + +e+Ga++L r+f s+P+t+++ +F d+s ++sa+vk Hgkkv+dAl+ a +ld +l+++l++L
+ sp|B3EWD3|HBA_PERCR 1 VLSAEDKANVKAVWSKLGGHGAEYGAEALGRMFESHPTTKTYPFHF-DVS-----HGSAQVKGHGKKVADALATAASHLD-DLPGALSAL 83
+ 69****************************************99**.888.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa++p+eft++++a+l+K+la+v+++l+skY+
+ sp|B3EWD3|HBA_PERCR 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHHPAEFTPAAHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P01975|HBA_MACGI Hemoglobin subunit alpha OS=Macropus giganteus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 171.5 0.4 8e-52 3.7e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 171.5 0.6 8.2e-52 4e-49 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 171.5 bits; conditional E-value: 8e-52
+ == domain 1 score: 171.5 bits; conditional E-value: 8.2e-52
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka+W+kv+ +++e+ a+ L+r f s+P+t+++F++F dLs ++sa++++Hgkk++dAl++a+ ++d +l+++l++L
sp|P01975|HBA_MACGI 1 VLSAADKGHVKAIWGKVGGHAGEYAAEGLERTFHSFPTTKTYFPHF-DLS-----HGSAQIQAHGKKIADALGQAVEHID-DLPGTLSKL 83
@@ -10869,13 +11310,47 @@ Domain annotation for each sequence (and alignments):
sp|P01975|HBA_MACGI 84 SDLHAHKLRVDPVNFKLLSHCLLVTFAAHLGDAFTPEVHASLDKFLAAVSTVLTSKYR 141
*********************************************************7 PP
+>> sp|P86391|HBB2_AMBCR Hemoglobin subunit beta-2 OS=Amblyrhynchus cristatus GN=HBB2 PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 171.4 0.0 8.7e-52 4.2e-49 2 149 .] 2 146 .] 1 146 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 171.4 bits; conditional E-value: 8.7e-52
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ + +++ek+ ++ +W+kv dv++ G++ L +f+ +P+tq+ F +F++Ls + ++ ++++vk+Hgkkvl+A++da+++ld +++ ++++
+ sp|P86391|HBB2_AMBCR 2 HWTAEEKQLITCLWGKV--DVATIGGESLAGMFVMYPWTQRLFSEFGNLSSPTAICGNPKVKAHGKKVLTAFGDAIRNLD-NIKDTFAK 87
+ 6799*************..*************************************************************.******** PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselH++kl+vdp++fkll++vl+ vla +++k+ft++ +aa++Kl+++va++la +Y+
+ sp|P86391|HBB2_AMBCR 88 LSELHCDKLHVDPENFKLLGKVLLIVLAGHYGKDFTPACHAAYQKLVNVVAHALARRYH 146
+ **********************************************************7 PP
+
+>> sp|B3EWD1|HBA_SCICA Hemoglobin subunit alpha OS=Sciurus carolinensis PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 171.4 0.3 9e-52 4.4e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 171.4 bits; conditional E-value: 9e-52
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+a+kt+vka W k + + + G+++L r+f+s+P+t+++F +F dLs +s ++k+Hgkkv+dAl++a +ld +l+++l++L
+ sp|B3EWD1|HBA_SCICA 1 VLSAADKTNVKASWEKLGGHPGAFGGEALDRMFLSFPTTKTYFHHF-DLS-----PGSSNLKTHGKKVADALANAAGHLD-DLPGALSTL 83
+ 69********************************************.9**.....9***********************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa++p++ft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWD1|HBA_SCICA 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHMPADFTPAVHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P18987|HBB1_IGUIG Hemoglobin subunit beta-1 OS=Iguana iguana GN=HBB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 171.2 0.1 9.9e-52 4.6e-49 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 171.2 0.2 1e-51 5e-49 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 171.2 bits; conditional E-value: 9.9e-52
+ == domain 1 score: 171.2 bits; conditional E-value: 1e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek+ +++vW+k+ dv++ G++ L l++++P+tq+fF+ F++Ls ++++ ++a+vk+Hgkkvl+ ++da+++ld +++ ++++
sp|P18987|HBB1_IGUIG 2 HWTAEEKQLITQVWGKI--DVAQIGGETLACLLVVYPWTQRFFPDFGNLSNAAAICGNAKVKAHGKKVLTSFGDAVKNLD-NIKDTFAK 87
@@ -10889,10 +11364,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18973|HBA_CROCR Hemoglobin subunit alpha OS=Crocuta crocuta GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 171.1 0.4 1e-51 4.8e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 171.1 0.6 1.1e-51 5.2e-49 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 171.1 bits; conditional E-value: 1e-51
+ == domain 1 score: 171.1 bits; conditional E-value: 1.1e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs a+k ++ka W k++ + +e+Ga++L+r f+ +P+t+++F++F dLs ++sa+vk+Hgkkv+dAl+ a a+ld +l+++l++L
sp|P18973|HBA_CROCR 1 VLSSADKANIKATWDKIGGHGGEYGAEALERTFLCFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVADALALAAAHLD-DLPSALSAL 83
@@ -10906,10 +11381,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10061|HBB2_SPHPU Hemoglobin subunit beta-2 OS=Sphenodon punctatus GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 171.0 0.1 1.1e-51 5.2e-49 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 171.0 0.1 1.2e-51 5.6e-49 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 171.0 bits; conditional E-value: 1.1e-51
+ == domain 1 score: 171.0 bits; conditional E-value: 1.2e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek+ v+++W+kv +v+e G+++L rl+ ++P+tq+fF +F++Ls + ++ +++ vk+Hgkkv + +++a+++ld +++a++++
sp|P10061|HBB2_SPHPU 2 HWTAEEKQLVTSLWTKV--NVDECGGEALGRLLIVYPWTQRFFSSFGNLSSSTAICGNPRVKAHGKKVFTSFGEAVKNLD-NIKATYAK 87
@@ -10923,10 +11398,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06642|HBE2_BOVIN Hemoglobin subunit epsilon-2 OS=Bos taurus GN=HBE2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.9 0.1 1.2e-51 5.7e-49 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 170.9 0.2 1.3e-51 6.2e-49 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 170.9 bits; conditional E-value: 1.2e-51
+ == domain 1 score: 170.9 bits; conditional E-value: 1.3e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ + +e +v ++Wakv +ve +G++ L rl+ + P+tq+fF++F++L e +++++++vk +g+kvl+ +++a++++d +l+++++d
sp|P06642|HBE2_BOVIN 3 HFTTEENVAVASLWAKV--NVEVVGGESLARLLIVCPWTQRFFDSFGNLYSESAIMGNPKVKVYGRKVLNSFGNAIKHMD-DLKGTFAD 88
@@ -10940,10 +11415,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04443|HBB0_MOUSE Hemoglobin subunit beta-H0 OS=Mus musculus GN=Hbb-bh0 PE=2 SV=5
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.8 0.3 1.3e-51 5.9e-49 1 149 [] 2 147 .] 2 147 .] 0.99
+ 1 ! 170.8 0.4 1.3e-51 6.4e-49 1 149 [] 2 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 170.8 bits; conditional E-value: 1.3e-51
+ == domain 1 score: 170.8 bits; conditional E-value: 1.3e-51
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+ +++ek +++++W kv d e++G++ L rl+ ++P+tq+fF+kF++Ls ++++++++ +k+Hgkkvl+ l+ a++++d +l+ +++
sp|P04443|HBB0_MOUSE 2 VHFTAEEKAAITSIWDKV--DLEKVGGETLGRLLIVYPWTQRFFDKFGNLSSAQAIMGNPRIKAHGKKVLTSLGLAVKNMD-NLKETFA 87
@@ -10957,10 +11432,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q45XH6|HBG_TRIMA Hemoglobin subunit gamma OS=Trichechus manatus GN=HBG PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.8 0.0 1.3e-51 6.2e-49 3 149 .] 4 147 .] 2 147 .] 0.98
+ 1 ! 170.8 0.1 1.4e-51 6.7e-49 3 149 .] 4 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 170.8 bits; conditional E-value: 1.3e-51
+ == domain 1 score: 170.8 bits; conditional E-value: 1.4e-51
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek +++ +W+k+ +vee G+ +L rl+ ++P+tq+fF++F++Ls + +++++++vk+Hgkkvl+ ++da+++ d +l++++++Ls
sp|Q45XH6|HBG_TRIMA 4 FTAEEKAAITRLWGKM--NVEEAGGKALGRLLIVYPWTQRFFDNFGNLSSASAIMGNPKVKAHGKKVLNSFGDAVKNPD-NLKGTFAKLS 90
@@ -10974,10 +11449,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83133|HBB_ALDEL Hemoglobin A/D subunit beta OS=Aldabrachelys elephantina PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.7 0.4 1.4e-51 6.6e-49 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 170.7 0.6 1.5e-51 7.2e-49 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 170.7 bits; conditional E-value: 1.4e-51
+ == domain 1 score: 170.7 bits; conditional E-value: 1.5e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ + +ek+ ++++Wakv +v+e+G+++L rl+ ++P+tq+fF +F++Ls ++++ +a+v +Hg+kvl+ +++a+++ld ++++++++L
sp|P83133|HBB_ALDEL 2 HWTSEEKQYITSLWAKV--NVGEVGGEALARLLIVYPWTQRFFASFGNLSSANAILHNAKVLAHGQKVLTSFGEAVKNLD-NIKKTFAQL 88
@@ -10991,10 +11466,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21198|GLB2_MORMR Globin-2 OS=Mordacia mordax PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.5 0.1 1.7e-51 7.7e-49 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 170.5 0.1 1.7e-51 8.3e-49 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 170.5 bits; conditional E-value: 1.7e-51
+ == domain 1 score: 170.5 bits; conditional E-value: 1.7e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+Ls+aek+k++a+W v+ ++e+ G+diLv++f+ tPa+q fF+kFk+L+t+d+lkks dv++H++++++A++da++++d ek+++kl
sp|P21198|GLB2_MORMR 11 PLSDAEKNKIRAAWDIVYKNYEKNGVDILVKFFTGTPAAQAFFPKFKGLTTADALKKSSDVRWHAERIINAVNDAVKSMDdtEKMSMKL 99
@@ -11008,10 +11483,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P81043|HBA_MACEU Hemoglobin subunit alpha OS=Macropus eugenii GN=HBA PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.2 0.3 1.9e-51 9e-49 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 170.2 0.4 2e-51 9.8e-49 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 170.2 bits; conditional E-value: 1.9e-51
+ == domain 1 score: 170.2 bits; conditional E-value: 2e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vk +W+kv+ +++e+ a+ L+r f s+P+t+++F++F dLs ++sa++++Hgkk++dAl++a+ ++d +l+++l++L
sp|P81043|HBA_MACEU 2 VLSAADKGHVKGIWGKVGGHAGEYAAEGLERTFHSFPTTKTYFPHF-DLS-----HGSAQIQAHGKKIADALGQAVEHID-DLPGTLSKL 84
@@ -11025,10 +11500,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14525|HBA_BRATR Hemoglobin subunit alpha OS=Bradypus tridactylus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 170.1 0.1 2.1e-51 9.6e-49 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 170.1 0.2 2.1e-51 1e-48 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 170.1 bits; conditional E-value: 2.1e-51
+ == domain 1 score: 170.1 bits; conditional E-value: 2.1e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka W+k++ +++e+G+++L+r f+s+P+t+++F++F dLs +sa+vk+Hgkkv dAl+ a+ +ld +l+++l+dL
sp|P14525|HBA_BRATR 1 VLSAADKAHVKAFWTKIGGHAGEYGGEALERTFLSFPTTKTYFPHF-DLS-----PGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSDL 83
@@ -11042,10 +11517,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21197|GLB1_MORMR Globin-1 OS=Mordacia mordax PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 169.8 0.1 2.6e-51 1.2e-48 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 169.8 0.1 2.7e-51 1.3e-48 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 169.8 bits; conditional E-value: 2.6e-51
+ == domain 1 score: 169.8 bits; conditional E-value: 2.7e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+Ls+aek+k++a+W v+ d+e++G+diLv++f+ tPa+q fF+kFk+L+t+d+lk+s dv++H++++++A++da++++d ek+++kl
sp|P21197|GLB1_MORMR 11 PLSDAEKNKIRAAWDLVYKDYEKTGVDILVKFFTGTPAAQAFFPKFKGLTTADDLKQSSDVRWHAERIINAVNDAVKSMDdtEKMSMKL 99
@@ -11059,10 +11534,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15165|HBB_APUAP Hemoglobin subunit beta OS=Apus apus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 169.0 0.1 4.6e-51 2.1e-48 3 149 .] 3 146 .] 1 146 [] 0.99
+ 1 ! 169.0 0.2 4.8e-51 2.3e-48 3 149 .] 3 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 169.0 bits; conditional E-value: 4.6e-51
+ == domain 1 score: 169.0 bits; conditional E-value: 4.8e-51
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++ek+ ++ +W+kv +v++ Ga++L rl+ ++P+tq+fF +F++Ls + ++ +++ v++Hgkkvl+ +++a+++ld +++++++Ls
sp|P15165|HBB_APUAP 3 WTAEEKQLITGLWGKV--NVADCGAEALARLLIVYPWTQRFFASFGNLSSATAVIGNPMVRAHGKKVLTSFGEAVKNLD-SIKSTFAQLS 89
@@ -11076,10 +11551,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18436|HBG_TARSY Hemoglobin subunit gamma OS=Tarsius syrichta GN=HBG PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 169.0 0.3 4.7e-51 2.2e-48 1 149 [] 2 148 .] 2 148 .] 0.98
+ 1 ! 169.0 0.4 4.8e-51 2.4e-48 1 149 [] 2 148 .] 2 148 .] 0.98
Alignments for each domain:
- == domain 1 score: 169.0 bits; conditional E-value: 4.7e-51
+ == domain 1 score: 169.0 bits; conditional E-value: 4.8e-51
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v+ +++ek ++++Wakv +vee+G+++L rl++++P+tq+fF++F++Ls + +++++++vk+Hgkkvl l++a+ ++d +l+ ++++
sp|P18436|HBG_TARSY 2 VHFTAEEKAIITSLWAKV--NVEETGGEALGRLLVVYPWTQRFFDNFGNLSSASAIMGNPKVKAHGKKVLSSLGEAVTHMD-DLKDAFAH 88
@@ -11093,10 +11568,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10059|HBA_SPHPU Hemoglobin subunit alpha-A OS=Sphenodon punctatus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 168.9 0.8 5e-51 2.3e-48 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 168.9 1.2 5.2e-51 2.5e-48 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 168.9 bits; conditional E-value: 5e-51
+ == domain 1 score: 168.9 bits; conditional E-value: 5.2e-51
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+ +k +vka+W+kv ++ee+Ga+ L+r+f+++P t+++F++F dL+ ++sa+vk+Hgkkv++A+++a+++ld ++ ++l +Ls
sp|P10059|HBA_SPHPU 2 LSASDKANVKAIWSKVCVHAEEYGAETLERMFTVYPSTKTYFPHF-DLT-----HGSAQVKAHGKKVVNAMGEAVNHLD-DMAGALLKLS 84
@@ -11110,10 +11585,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P41332|HBB_MICGA Hemoglobin subunit beta OS=Microcephalophis gracilis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 168.7 0.3 5.6e-51 2.6e-48 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 168.7 0.4 5.8e-51 2.8e-48 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 168.7 bits; conditional E-value: 5.6e-51
+ == domain 1 score: 168.7 bits; conditional E-value: 5.8e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv dv+e+G+ L +l++++P+tq+fF +F++Ls ++++ ++ vk+Hgkkvl+ +++a+++ld ++ ++++L
sp|P41332|HBB_MICGA 2 HWSAEEKQLITGLWGKV--DVAEVGGATLGKLLVVFPWTQRFFAHFGNLSSANAIICNPVVKAHGKKVLTSFGEAIKHLD-SIKETFAKL 88
@@ -11127,10 +11602,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01946|HBA_RAT Hemoglobin subunit alpha-1/2 OS=Rattus norvegicus GN=Hba1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 168.4 0.1 7.1e-51 3.3e-48 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 168.4 0.2 7.3e-51 3.6e-48 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 168.4 bits; conditional E-value: 7.1e-51
+ == domain 1 score: 168.4 bits; conditional E-value: 7.3e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
vLs+++kt++k+ W+k++ + +e+G+++L+r+f ++P+t+++F + d+s +sa+vk+Hgkkv+dAl++a +++ +l+++l++Ls+
sp|P01946|HBA_RAT 2 VLSADDKTNIKNCWGKIGGHGGEYGEEALQRMFAAFPTTKTYFSHI-DVS-----PGSAQVKAHGKKVADALAKAADHVE-DLPGALSTLSD 86
@@ -11144,10 +11619,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19014|HBA_CRIGA Hemoglobin subunit alpha OS=Cricetomys gambianus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 168.4 0.8 7.2e-51 3.3e-48 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 168.4 1.2 7.5e-51 3.6e-48 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 168.4 bits; conditional E-value: 7.2e-51
+ == domain 1 score: 168.4 bits; conditional E-value: 7.5e-51
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k ++ka W k++ + +e+Ga++L+r+f s+P+t+++F++F d+s ++sa+vk Hgkkv+dAl++a +ld +l+++l++L
sp|P19014|HBA_CRIGA 2 VLSADDKANIKATWEKIGGHGAEYGAEALERMFASFPTTKTYFPHF-DVS-----HGSAQVKSHGKKVADALANAAHHLD-DLPGALSAL 84
@@ -11161,10 +11636,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21199|GLB3_MORMR Globin-3 OS=Mordacia mordax PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 167.6 0.4 1.3e-50 5.9e-48 2 148 .. 11 150 .] 10 150 .] 0.98
+ 1 ! 167.6 0.6 1.3e-50 6.4e-48 2 148 .. 11 150 .] 10 150 .] 0.98
Alignments for each domain:
- == domain 1 score: 167.6 bits; conditional E-value: 1.3e-50
+ == domain 1 score: 167.6 bits; conditional E-value: 1.3e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+L++a+ktk++a+W v+ ++e+ +diLv++f+ tPa+q fF+kFk+L+t+d+lkks dv++H++++++A++da++++d ek+++kl
sp|P21199|GLB3_MORMR 11 PLTAADKTKILAAWDLVYKNYEKNSVDILVKFFTGTPAAQAFFPKFKGLTTADDLKKSSDVRWHAERIINAVNDAVKSMDdtEKMSMKL 99
@@ -11178,10 +11653,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P81024|HBAD_MELGA Hemoglobin subunit alpha-D OS=Meleagris gallopavo GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 167.6 0.2 1.3e-50 6e-48 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 167.6 0.3 1.3e-50 6.5e-48 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 167.6 bits; conditional E-value: 1.3e-50
+ == domain 1 score: 167.6 bits; conditional E-value: 1.3e-50
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W k ++ ee Ga++L+r+f+++P+t+++F++F dLs +s++v+ Hgkkvl+Al++a++++d +l++++++L
sp|P81024|HBAD_MELGA 2 LTAEDKKLIQQAWEKAASHQEEFGAEALTRMFTTYPQTKTYFPHF-DLS-----PGSDQVRGHGKKVLGALGNAVKNVD-NLSQAMSEL 83
@@ -11195,10 +11670,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9XSN2|HBA1_EQUGR Hemoglobin subunit alpha-1 OS=Equus grevyi GN=HBA1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 167.1 0.1 1.8e-50 8.2e-48 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 167.1 0.1 1.8e-50 8.9e-48 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 167.1 bits; conditional E-value: 1.8e-50
+ == domain 1 score: 167.1 bits; conditional E-value: 1.8e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs+a+kt+vka+W+kv+ +++e Ga++L+r+f+ +P+t+++F++F dLs ++sa+vk+Hgkkv dAl+ a+ +ld +l+++l++
sp|Q9XSN2|HBA1_EQUGR 2 VLSAADKTNVKAAWSKVGGNAGEFGAEALERMFLGFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALTLAVGHLD-DLPGALSN 83
@@ -11209,30 +11684,30 @@ Domain annotation for each sequence (and alignments):
sp|Q9XSN2|HBA1_EQUGR 84 LSDLHAHKLRVDPVNFKVSPGAGLSTLAVHLPNDFTPAVHASLDKFLSTVSTVLTSKYR 142
**********************************************************7 PP
->> sp|Q9DF25|HBAD_GEOCR Hemoglobin subunit alpha-D OS=Geochelone carbonaria GN=HBAD PE=2 SV=1
+>> sp|Q9DF25|HBAD_CHECB Hemoglobin subunit alpha-D OS=Chelonoidis carbonaria GN=HBAD PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 167.1 0.4 1.8e-50 8.3e-48 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 167.1 0.6 1.8e-50 9e-48 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 167.1 bits; conditional E-value: 1.8e-50
+ == domain 1 score: 167.1 bits; conditional E-value: 1.8e-50
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+e+ek+ +++vW kv + e+ Ga++L+r+f+++P t+++F++F dL+ + s+++++Hgkkv+ Al+da++++d +l+a+l++L
- sp|Q9DF25|HBAD_GEOCR 2 LTEDEKQLIQHVWEKVLGHQEDFGAEALERMFTVYPSTKTYFPHF-DLH-----HDSEQIRHHGKKVVSALGDAVRHMD-NLSATLSEL 83
+ sp|Q9DF25|HBAD_CHECB 2 LTEDEKQLIQHVWEKVLGHQEDFGAEALERMFTVYPSTKTYFPHF-DLH-----HDSEQIRHHGKKVVSALGDAVRHMD-NLSATLSEL 83
99*******************************************.999.....9************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa +l+vdp +fklls++ +vl a+l++e+t++vq a++K+la v+ +la+kY+
- sp|Q9DF25|HBAD_GEOCR 84 SNLHAYNLRVDPVNFKLLSHCFQVVLGAHLGREYTPQVQVAYDKFLAAVSAVLAEKYR 141
+ sp|Q9DF25|HBAD_CHECB 84 SNLHAYNLRVDPVNFKLLSHCFQVVLGAHLGREYTPQVQVAYDKFLAAVSAVLAEKYR 141
*********************************************************7 PP
>> sp|P01998|HBA_CRONI Hemoglobin subunit alpha OS=Crocodylus niloticus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 167.0 0.2 2e-50 9e-48 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 167.0 0.2 2e-50 9.8e-48 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 167.0 bits; conditional E-value: 2e-50
+ == domain 1 score: 167.0 bits; conditional E-value: 2e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k +vkavW+kv + ee+Ga++L+r+f ++P+t+ +F++F dLs ++sa++++Hgkkv Al +a++++d +l+++l L
sp|P01998|HBA_CRONI 1 VLSSDDKCNVKAVWSKVAGHLEEYGAEALERMFCAYPQTKIYFPHF-DLS-----HGSAQIRAHGKKVFAALHEAVNHID-DLPGALCRL 83
@@ -11246,10 +11721,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08849|HBAD_ACCGE Hemoglobin subunit alpha-D OS=Accipiter gentilis GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.9 0.2 4.1e-50 1.9e-47 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 165.9 0.3 4.2e-50 2e-47 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.9 bits; conditional E-value: 4.1e-50
+ == domain 1 score: 165.9 bits; conditional E-value: 4.2e-50
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++a+W kv+ + e+ Ga++L+r+f ++P+t+++F++F dLs +s++v+ Hgkkv++Al++a++++d +l+++l++L
sp|P08849|HBAD_ACCGE 2 LTAEDKKLIQAIWDKVQGHQEDFGAEALQRMFITYPTTKTYFPHF-DLS-----PGSDQVRSHGKKVVNALGNAVKSMD-NLSQALSEL 83
@@ -11263,10 +11738,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q10732|HBA_CARCR Hemoglobin subunit alpha-A OS=Caretta caretta GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.9 0.7 4.1e-50 1.9e-47 2 149 .] 1 141 [] 1 141 [] 0.98
+ 1 ! 165.9 1.1 4.3e-50 2.1e-47 2 149 .] 1 141 [] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 165.9 bits; conditional E-value: 4.1e-50
+ == domain 1 score: 165.9 bits; conditional E-value: 4.3e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k +vk+vW+kv+ + e++Ga+ L r+f+++P+t+++F +F d++ ++s +++ Hgkkv+ Al+da++++d ++ ++l++L
sp|Q10732|HBA_CARCR 1 VLSSGDKANVKSVWSKVQGHLEDYGAETLDRMFTVFPQTKTYFSHF-DVH-----HGSTQIRSHGKKVMLALGDAVNHID-DIATALSAL 83
@@ -11280,10 +11755,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02007|HBPI_CHICK Hemoglobin subunit pi OS=Gallus gallus PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.7 0.0 4.8e-50 2.2e-47 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 165.7 0.0 5e-50 2.4e-47 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 165.7 bits; conditional E-value: 4.8e-50
+ == domain 1 score: 165.7 bits; conditional E-value: 5e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++aek +v+++Wakv +++e G + L+rlf s+P+t+++F++F d+s ++s +++ Hg kvl+A+++a++++d +++++l++
sp|P02007|HBPI_CHICK 2 ALTQAEKAAVTTIWAKVATQIESIGLESLERLFASYPQTKTYFPHF-DVS-----QGSVQLRGHGSKVLNAIGEAVKNID-DIRGALAK 83
@@ -11297,10 +11772,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13787|HBAZ_HORSE Hemoglobin subunit zeta OS=Equus caballus GN=HBZ1 PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.7 0.2 4.9e-50 2.3e-47 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 165.7 0.3 5e-50 2.5e-47 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.7 bits; conditional E-value: 4.9e-50
+ == domain 1 score: 165.7 bits; conditional E-value: 5e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++ae+t v ++W+k+ +++ +G+++L+rlf s+P+t+++F++F dL+ ++s+++++Hg kv+ A++da++++d ++ ++l++
sp|P13787|HBAZ_HORSE 2 SLTKAERTMVVSIWGKISMQADAVGTEALQRLFSSYPQTKTYFPHF-DLH-----EGSPQLRAHGSKVAAAVGDAVKSID-NVAGALAK 83
@@ -11311,13 +11786,30 @@ Domain annotation for each sequence (and alignments):
sp|P13787|HBAZ_HORSE 84 LSELHAYILRVDPVNFKFLSHCLLVTLASRLPADFTADAHAAWDKFLSIVSSVLTEKYR 142
**********************************************************7 PP
+>> sp|B3EWD7|HBA_TAMHU Hemoglobin subunit alpha OS=Tamiasciurus hudsonicus PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 165.7 0.3 5.2e-50 2.5e-47 2 149 .] 1 141 [] 1 141 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 165.7 bits; conditional E-value: 5.2e-50
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ vLs+a+kt+vk++W k + + +e+Ga++L r+f+s+P+t+++ +F dLs ++sa+ + Hgkkv++Al+ a +ld +l+++l++L
+ sp|B3EWD7|HBA_TAMHU 1 VLSAADKTNVKSAWDKLGGHGAEYGAEALGRMFLSFPTTKTYPFHF-DLS-----HGSAQPQGHGKKVAEALATAAGHLD-DLPGALSAL 83
+ 69********************************************.***.....************************9.********* PP
+
+ globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ s+lHa+kl+vdp +fklls++l+++laa++p+eft++v+a+l+K+la+v+++l+skY+
+ sp|B3EWD7|HBA_TAMHU 84 SDLHAHKLRVDPVNFKLLSHCLLVTLAAHMPAEFTPAVHASLDKFLASVSTVLTSKYR 141
+ *********************************************************7 PP
+
>> sp|P24291|HBA_ECHTE Hemoglobin subunit alpha OS=Echinops telfairi GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.3 0.0 6.4e-50 3e-47 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 165.3 0.0 6.6e-50 3.2e-47 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.3 bits; conditional E-value: 6.4e-50
+ == domain 1 score: 165.3 bits; conditional E-value: 6.6e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vkavW k + +v+++G+++L r f+s+P+t+++F++ dL+ +sad+ +Hgkkv+dAl+ a+ ++d +l+++l++L
sp|P24291|HBA_ECHTE 1 VLSAADKANVKAVWEKAGGNVGKYGGEALDRTFLSFPTTKTYFPHM-DLT-----PGSADIMAHGKKVADALTLAVGHMD-DLPGALSKL 83
@@ -11331,10 +11823,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02076|HBB_OVIMU Hemoglobin subunit beta OS=Ovis orientalis musimon GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.3 0.5 6.4e-50 3e-47 3 149 .] 2 145 .] 1 145 [] 0.99
+ 1 ! 165.3 0.7 6.6e-50 3.2e-47 3 149 .] 2 145 .] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.3 bits; conditional E-value: 6.4e-50
+ == domain 1 score: 165.3 bits; conditional E-value: 6.6e-50
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ek +v+ W+kv +v+e+Ga++L rl++++P+tq+fFe+F+dLs +d+++++a+vk+Hgkkvl+ +s+++++ld +l++++++Ls
sp|P02076|HBB_OVIMU 2 LTAEEKAAVTGFWGKV--KVDEVGAEALGRLLVVYPWTQRFFEHFGDLSSADAVMNNAKVKAHGKKVLBSFSNGMKHLD-DLKGTFAQLS 88
@@ -11348,10 +11840,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83134|HBAD_ALDEL Hemoglobin D subunit alpha OS=Aldabrachelys elephantina PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.3 0.5 6.6e-50 3e-47 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 165.3 0.7 6.8e-50 3.3e-47 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.3 bits; conditional E-value: 6.6e-50
+ == domain 1 score: 165.3 bits; conditional E-value: 6.8e-50
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+e++k+ +++vW kv + e+ Ga++L+r+f ++P t+++F++F dL+ + s+++++Hgkkv++Al+da++++d +l+a+l++L
sp|P83134|HBAD_ALDEL 2 LTEDDKQLIQHVWEKVLEHQEDFGAEALERMFIVYPSTKTYFPHF-DLH-----HDSEQIRHHGKKVVGALGDAVKHID-NLSATLSEL 83
@@ -11365,10 +11857,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02001|HBAD_CHICK Hemoglobin subunit alpha-D OS=Gallus gallus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.2 0.2 6.8e-50 3.1e-47 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 165.2 0.3 7e-50 3.4e-47 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.2 bits; conditional E-value: 6.8e-50
+ == domain 1 score: 165.2 bits; conditional E-value: 7e-50
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W k ++ ee Ga++L+r+f+++P+t+++F++F dLs +s++v+ Hgkkvl+Al++a++++d +l++++++L
sp|P02001|HBAD_CHICK 2 LTAEDKKLIQQAWEKAASHQEEFGAEALTRMFTTYPQTKTYFPHF-DLS-----PGSDQVRGHGKKVLGALGNAVKNVD-NLSQAMAEL 83
@@ -11382,10 +11874,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11751|HBA_MEGLY Hemoglobin subunit alpha OS=Megaderma lyra GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 165.2 0.4 6.8e-50 3.2e-47 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 165.2 0.5 7.1e-50 3.4e-47 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 165.2 bits; conditional E-value: 6.8e-50
+ == domain 1 score: 165.2 bits; conditional E-value: 7.1e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vka++ kv+ +++++Ga++L+r+f+s+P+t+++F++F dLs ++sa+vk+Hgkkv dAl +a+ +ld +l+++l++L
sp|P11751|HBA_MEGLY 1 VLSAADKANVKAAFDKVGGQAGDYGAEALERMFLSFPTTKTYFPHF-DLS-----HGSAQVKAHGKKVGDALVNAVGHLD-DLPGALSAL 83
@@ -11396,30 +11888,30 @@ Domain annotation for each sequence (and alignments):
sp|P11751|HBA_MEGLY 84 SDLHAYKLRVDPVNFKLASNVLLVTLAVHVAAGFTPAVHASLDKFLASVGTVLTSKYR 141
*********************************************************7 PP
->> sp|P18993|HBB1_VAREX Hemoglobin subunit beta-1 OS=Varanus exanthematicus albigularis GN=HBB1 PE=1 SV=2
+>> sp|P18993|HBB1_VARAL Hemoglobin subunit beta-1 OS=Varanus albigularis GN=HBB1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 164.8 0.1 9.1e-50 4.2e-47 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 164.8 0.1 9.4e-50 4.6e-47 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 164.8 bits; conditional E-value: 9.1e-50
+ == domain 1 score: 164.8 bits; conditional E-value: 9.4e-50
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek+ + ++W+k+ dv+ G++ L l++ +P+tq+ F +F++Ls + ++ +++ vk+Hgkkvl+ ++da+++ld +++ ++++
- sp|P18993|HBB1_VAREX 2 HWTAEEKQLICSLWGKI--DVGLIGGETLAGLLVIYPWTQRQFSHFGNLSSPTAIAGNPRVKAHGKKVLTSFGDAIKNLD-NIKDTFAK 87
+ sp|P18993|HBB1_VARAL 2 HWTAEEKQLICSLWGKI--DVGLIGGETLAGLLVIYPWTQRQFSHFGNLSSPTAIAGNPRVKAHGKKVLTSFGDAIKNLD-NIKDTFAK 87
6799*************..*************************************************************.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselH++kl+vdp +fkll++vlv vla +++keft++ +aa++Kl+++v++ la +Y+
- sp|P18993|HBB1_VAREX 88 LSELHCDKLHVDPTNFKLLGNVLVIVLADHHGKEFTPAHHAAYQKLVNVVSHSLARRYH 146
+ sp|P18993|HBB1_VARAL 88 LSELHCDKLHVDPTNFKLLGNVLVIVLADHHGKEFTPAHHAAYQKLVNVVSHSLARRYH 146
**********************************************************7 PP
>> sp|P68059|HBAD_AEGMO Hemoglobin subunit alpha-D OS=Aegypius monachus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 164.2 0.1 1.4e-49 6.4e-47 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 164.2 0.2 1.4e-49 7e-47 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 164.2 bits; conditional E-value: 1.4e-49
+ == domain 1 score: 164.2 bits; conditional E-value: 1.4e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++a W kv+ + e+ Ga++L+r+f ++P t+++F++F dLs +s++v+ Hgkkv++Al++a++++d +l+++l++L
sp|P68059|HBAD_AEGMO 2 LTADDKKLIQATWDKVQGHQEDFGAEALQRMFITYPPTKTYFPHF-DLS-----PGSDQVRGHGKKVVNALGNAVKSMD-NLSQALSEL 83
@@ -11433,10 +11925,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68060|HBAD_TRIOC Hemoglobin subunit alpha-D OS=Trigonoceps occipitalis GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 164.2 0.1 1.4e-49 6.4e-47 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 164.2 0.2 1.4e-49 7e-47 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 164.2 bits; conditional E-value: 1.4e-49
+ == domain 1 score: 164.2 bits; conditional E-value: 1.4e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++a W kv+ + e+ Ga++L+r+f ++P t+++F++F dLs +s++v+ Hgkkv++Al++a++++d +l+++l++L
sp|P68060|HBAD_TRIOC 2 LTADDKKLIQATWDKVQGHQEDFGAEALQRMFITYPPTKTYFPHF-DLS-----PGSDQVRGHGKKVVNALGNAVKSMD-NLSQALSEL 83
@@ -11450,10 +11942,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04242|HBAD_STRCA Hemoglobin subunit alpha-D OS=Struthio camelus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 164.2 0.1 1.4e-49 6.5e-47 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 164.2 0.2 1.5e-49 7.1e-47 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 164.2 bits; conditional E-value: 1.4e-49
+ == domain 1 score: 164.2 bits; conditional E-value: 1.5e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W kv+++ e+ Ga++L+r+f ++P+t+++F++F dL+ +s++++ Hgkkv++Al++a+++ld +l+++l++L
sp|P04242|HBAD_STRCA 2 LTADDKKLIQQIWEKVGSHLEDFGAEALERMFITYPQTKTYFPHF-DLH-----PGSEQIRGHGKKVANALGNAVKSLD-NLSQALSEL 83
@@ -11467,10 +11959,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02008|HBAZ_HUMAN Hemoglobin subunit zeta OS=Homo sapiens GN=HBZ PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 164.0 0.1 1.6e-49 7.4e-47 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 164.0 0.2 1.7e-49 8.1e-47 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 164.0 bits; conditional E-value: 1.6e-49
+ == domain 1 score: 164.0 bits; conditional E-value: 1.7e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++ e+t + ++Wak+ +++++ G++ L+rlf+s+P+t+++F++F dL+ +sa++++Hg kv+ A++da++++d ++ ++l++
sp|P02008|HBAZ_HUMAN 2 SLTKTERTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF-DLH-----PGSAQLRAHGSKVVAAVGDAVKSID-DIGGALSK 83
@@ -11484,10 +11976,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04243|HBPI_CAIMO Hemoglobin subunit pi OS=Cairina moschata PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 164.0 0.0 1.7e-49 7.6e-47 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 164.0 0.0 1.7e-49 8.3e-47 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 164.0 bits; conditional E-value: 1.7e-49
+ == domain 1 score: 164.0 bits; conditional E-value: 1.7e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+L++aek +v ++W+kv ++++ Ga+ L+rlf s+P+t+++F++F dLs ++s +++ Hg kv++A+++a++++d +++++l++
sp|P04243|HBPI_CAIMO 2 TLTQAEKAAVITIWTKVATQADAIGAESLERLFSSYPQTKTYFPHF-DLS-----QGSTQLRGHGSKVMNAIGEAVKNID-DIRGALAK 83
@@ -11501,10 +11993,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13273|HBA_CHRPI Hemoglobin subunit alpha-A OS=Chrysemys picta bellii GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 163.8 0.9 1.9e-49 8.7e-47 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 163.8 1.3 1.9e-49 9.5e-47 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 163.8 bits; conditional E-value: 1.9e-49
+ == domain 1 score: 163.8 bits; conditional E-value: 1.9e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vL +++k +vkavW kv a+vee+Ga+ L+r+f+++P+t+++F++F dL+ ++sa++++Hgkkvl+Al++a++++d +l ++l++L
sp|P13273|HBA_CHRPI 1 VLNAGDKANVKAVWNKVAAHVEEYGAETLERMFTVYPQTKTYFPHF-DLH-----HGSAQIRTHGKKVLTALGEAVNHID-DLASALSKL 83
@@ -11515,30 +12007,30 @@ Domain annotation for each sequence (and alignments):
sp|P13273|HBA_CHRPI 84 SDIHAQTLRVDPVNFKFLNHCFLVVVAIHQPSVLTPEVHVSLDKFLSAVGTVLTSKYR 141
*********************************************************7 PP
->> sp|P83124|HBAD_GEONI Hemoglobin subunit alpha-D OS=Geochelone nigra GN=HBAD PE=1 SV=1
+>> sp|P83124|HBAD_CHENI Hemoglobin subunit alpha-D OS=Chelonoidis nigra GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 163.6 0.2 2.2e-49 1e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 163.6 0.3 2.3e-49 1.1e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 163.6 bits; conditional E-value: 2.2e-49
+ == domain 1 score: 163.6 bits; conditional E-value: 2.3e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+e++k+ +++vW v + e+ Ga++L+r+f+++P t+++F++F dL+ ++s+++++Hgkkv++Al+da++++d +l+a+l++L
- sp|P83124|HBAD_GEONI 2 LTEDDKQLIQHVWETVLEHQEDFGAEALERMFTVYPSTKTYFPHF-DLH-----HGSEQIRHHGKKVVGALGDAVRHID-DLSATLSEL 83
+ sp|P83124|HBAD_CHENI 2 LTEDDKQLIQHVWETVLEHQEDFGAEALERMFTVYPSTKTYFPHF-DLH-----HGSEQIRHHGKKVVGALGDAVRHID-DLSATLSEL 83
99*******************************************.999.....************************9.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa +l+vdp +fklls++ +vl a+l++e+t++vq a++K+la v+ +la+kY+
- sp|P83124|HBAD_GEONI 84 SNLHAYNLRVDPVNFKLLSHCFQVVLGAHLGREYTPQVQVAYDKFLAAVSAVLAEKYR 141
+ sp|P83124|HBAD_CHENI 84 SNLHAYNLRVDPVNFKLLSHCFQVVLGAHLGREYTPQVQVAYDKFLAAVSAVLAEKYR 141
*********************************************************7 PP
>> sp|P06638|HBA5_XENLA Hemoglobin subunit alpha-5 OS=Xenopus laevis GN=hba5 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 163.6 0.8 2.2e-49 1e-46 3 149 .] 3 142 .] 1 142 [] 0.99
+ 1 ! 163.6 1.2 2.3e-49 1.1e-46 3 149 .] 3 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 163.6 bits; conditional E-value: 2.2e-49
+ == domain 1 score: 163.6 bits; conditional E-value: 2.3e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
s aek ++ ++W+kv + +e Ga++L+rlf+s+P+t+++F +F dLs ++s+d++ Hg kv++A+++a ++d +++ +l++L
sp|P06638|HBA5_XENLA 3 FSSAEKAAIASLWGKVSGHTDEIGAEALERLFLSYPQTKTYFSHF-DLS-----HGSKDLRSHGGKVVKAIGNAATHID-DIPHALSAL 84
@@ -11552,10 +12044,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02000|HBA_CAICR Hemoglobin subunit alpha OS=Caiman crocodilus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 163.4 0.2 2.5e-49 1.1e-46 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 163.4 0.2 2.5e-49 1.2e-46 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 163.4 bits; conditional E-value: 2.5e-49
+ == domain 1 score: 163.4 bits; conditional E-value: 2.5e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLse++k++vka+W+kv + ee+Ga++L+r+f ++P+t+ +F++F d+s ++sa+++ Hgkkv Al da++++d +l ++l L
sp|P02000|HBA_CAICR 1 VLSEEDKSHVKAIWGKVAGHLEEYGAEALERMFCAYPQTKIYFPHF-DMS-----HNSAQIRGHGKKVFAALHDAVNHID-DLAGALCRL 83
@@ -11569,10 +12061,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04241|HBAD_RHEAM Hemoglobin subunit alpha-D OS=Rhea americana GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 163.4 0.2 2.5e-49 1.2e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 163.4 0.3 2.6e-49 1.3e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 163.4 bits; conditional E-value: 2.5e-49
+ == domain 1 score: 163.4 bits; conditional E-value: 2.6e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ + ++W+kv + +e G+++L+r+f ++P+t+++F++F dL+ +s++v+ Hgkkv++Als+a+++ld +l+++l++L
sp|P04241|HBAD_RHEAM 2 LTADDKKLISQIWTKVAEHGGEFGGEALERMFITYPQTKTYFPHF-DLH-----VGSEQVRGHGKKVVNALSNAVKNLD-NLSQALAEL 83
@@ -11583,13 +12075,13 @@ Domain annotation for each sequence (and alignments):
sp|P04241|HBAD_RHEAM 84 SNLHAYNLRVDPVNFKLLSQCFQVVLAVHLGKEYTPEVHAAYDKFLSAVASVLAEKYR 141
*********************************************************7 PP
->> sp|P01986|HBA_ANAPL Hemoglobin subunit alpha-A OS=Anas platyrhynchos GN=HBAA PE=2 SV=2
+>> sp|P01986|HBA_ANAPL Hemoglobin subunit alpha-A OS=Anas platyrhynchos GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.9 1.0 3.4e-49 1.6e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 162.9 1.4 3.5e-49 1.7e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.9 bits; conditional E-value: 3.4e-49
+ == domain 1 score: 162.9 bits; conditional E-value: 3.5e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dLs ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01986|HBA_ANAPL 2 VLSAADKTNVKGVFSKIGGHAEEYGAETLERMFIAYPQTKTYFPHF-DLS-----HGSAQIKAHGKKVAAALVEAVNHVD-DIAGALSKL 84
@@ -11603,10 +12095,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01989|HBA_ANSAN Hemoglobin subunit alpha-A OS=Anser anser anser GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.8 0.7 3.7e-49 1.7e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 162.8 1.0 3.8e-49 1.8e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.8 bits; conditional E-value: 3.7e-49
+ == domain 1 score: 162.8 bits; conditional E-value: 3.8e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ ++ee+Ga+ L+r+f+++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01989|HBA_ANSAN 2 VLSAADKTNVKGVFSKIGGHAEEYGAETLERMFTAYPQTKTYFPHF-DLQ-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 84
@@ -11620,10 +12112,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08257|HBAD_GYPRU Hemoglobin subunit alpha-D/D' OS=Gyps rueppellii GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.8 0.1 3.8e-49 1.8e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 162.8 0.2 4e-49 1.9e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.8 bits; conditional E-value: 3.8e-49
+ == domain 1 score: 162.8 bits; conditional E-value: 4e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ +++ W kv+ + e+ Ga++L+r+f ++P+t+++F++F dLs +s++v+ Hgkkv++Al++a++++d +l+++l++L
sp|P08257|HBAD_GYPRU 2 LTADDKKLIQTTWDKVQGHQEDFGAEALQRMFITYPQTKTYFPHF-DLS-----PGSDQVRGHGKKVVNALGNAVKSMD-NLSQALSEL 83
@@ -11637,10 +12129,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01988|HBA_ANAPP Hemoglobin subunit alpha-A OS=Anas platyrhynchos platyrhynchos GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.8 0.9 3.9e-49 1.8e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 162.8 1.3 4e-49 1.9e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.8 bits; conditional E-value: 3.9e-49
+ == domain 1 score: 162.8 bits; conditional E-value: 4e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dLs ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01988|HBA_ANAPP 2 VLSAADKTNVKGVFSKIGGHAEEYGAETLERMFIAYPQTKTYFPHF-DLS-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 84
@@ -11654,10 +12146,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02002|HBAD_PHACO Hemoglobin subunit alpha-D OS=Phasianus colchicus colchicus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.7 0.3 4.1e-49 1.9e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 162.7 0.4 4.3e-49 2.1e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.7 bits; conditional E-value: 4.1e-49
+ == domain 1 score: 162.7 bits; conditional E-value: 4.3e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L +++k+ ++++W k ++ +e Ga++Lvr+f+++P+t+++F++F dLs +s++++ Hgkkvl+Als+a++++d +l++++++L
sp|P02002|HBAD_PHACO 2 LNAEDKKLIQQAWEKAASHQQEFGAEALVRMFTAYPQTKTYFPHF-DLS-----PGSDQIRGHGKKVLGALSNAVKNVD-NLSQAMSEL 83
@@ -11671,10 +12163,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01993|HBA_AQUCH Hemoglobin subunit alpha-A OS=Aquila chrysaetos GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.6 0.4 4.2e-49 2e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 162.6 0.5 4.4e-49 2.1e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.6 bits; conditional E-value: 4.2e-49
+ == domain 1 score: 162.6 bits; conditional E-value: 4.4e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk+v++k+ ++e++Ga++L+r+f+++P t+++F++F dL+ ++sa++k+Hgkkv++Al +a++++d ++ ++l++L
sp|P01993|HBA_AQUCH 2 VLSANDKTNVKNVFTKISGHAEDYGAEALERMFTTYPPTKTYFPHF-DLH-----HGSAQIKAHGKKVVGALIEAVNHID-DMAGALSKL 84
@@ -11688,10 +12180,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84791|HBAD_AYTFU Hemoglobin subunit alpha-D OS=Aythya fuligula GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.6 0.3 4.4e-49 2e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 162.6 0.4 4.5e-49 2.2e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.6 bits; conditional E-value: 4.4e-49
+ == domain 1 score: 162.6 bits; conditional E-value: 4.5e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W kv + ++ G+++L+r+f+++P+t+++F++F dL+ +s++v+ Hgkkv+ Al++a+++ld +++++l++L
sp|P84791|HBAD_AYTFU 2 LTAEDKKLITQLWEKVAGHQDDFGNEALQRMFVTYPQTKTYFPHF-DLH-----PGSEQVRGHGKKVAAALGNAVKSLD-NISQALSEL 83
@@ -11705,10 +12197,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06347|HBAZ_PANTR Hemoglobin subunit zeta OS=Pan troglodytes GN=HBZ1 PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.3 0.1 5.6e-49 2.6e-46 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 162.3 0.2 5.7e-49 2.8e-46 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 162.3 bits; conditional E-value: 5.6e-49
+ == domain 1 score: 162.3 bits; conditional E-value: 5.7e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++ e t + ++Wak+ +++++ G++ L+rlf+s+P+t+++F++F dL+ +sa++++Hg kv+ A++da++++d ++ ++l++
sp|P06347|HBAZ_PANTR 2 SLTKTEGTIIVSMWAKISTQADTIGTETLERLFLSHPQTKTYFPHF-DLH-----PGSAQLRAHGSKVVAAVGDAVKSID-NIGGALSK 83
@@ -11722,10 +12214,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P22740|HBA_ANAPE Hemoglobin subunit alpha-A OS=Anas penelope GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.2 0.8 5.7e-49 2.7e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 162.2 1.2 5.9e-49 2.9e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.2 bits; conditional E-value: 5.7e-49
+ == domain 1 score: 162.2 bits; conditional E-value: 5.9e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dLs ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P22740|HBA_ANAPE 2 VLSAADKTNVKGVFSKIGGHAEEYGAETLERMFIAYPQTKTYFPHF-DLS-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 84
@@ -11736,30 +12228,30 @@ Domain annotation for each sequence (and alignments):
sp|P22740|HBA_ANAPE 85 SDLHAQKLRVDPVNFKFLGHCFLVVVAIHHPAALTPEVHASLDKFLCAVGAVLTAKYR 142
*********************************************************7 PP
->> sp|P82112|HBA2_CATMA Hemoglobin subunit alpha-2 OS=Catharacta maccormicki PE=1 SV=1
+>> sp|P82112|HBA2_STEMC Hemoglobin subunit alpha-2 OS=Stercorarius maccormicki PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.2 0.3 5.9e-49 2.7e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 162.2 0.4 6e-49 2.9e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.2 bits; conditional E-value: 5.9e-49
+ == domain 1 score: 162.2 bits; conditional E-value: 6e-49
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W kv + e+ Ga++L+r+f ++P+t+++F++F dL+ ++s++++ Hgkkv++Al++a+++ld +l+++l++L
- sp|P82112|HBA2_CATMA 2 LTADDKKLILQIWEKVLGHQEDFGAEALERMFITYPQTKTYFPHF-DLQ-----HGSDQIRSHGKKVVTALGNAVKSLD-NLSQALSEL 83
+ sp|P82112|HBA2_STEMC 2 LTADDKKLILQIWEKVLGHQEDFGAEALERMFITYPQTKTYFPHF-DLQ-----HGSDQIRSHGKKVVTALGNAVKSLD-NLSQALSEL 83
89*******************************************.999.....*************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa +l+vdp +fklls++ +vla +l+k++t++v+aa++K+l+ va +l++kY+
- sp|P82112|HBA2_CATMA 84 SNLHAYNLRVDPVNFKLLSQCFQVVLAVHLGKDYTPEVHAAFDKFLSAVAAVLSEKYR 141
+ sp|P82112|HBA2_STEMC 84 SNLHAYNLRVDPVNFKLLSQCFQVVLAVHLGKDYTPEVHAAFDKFLSAVAAVLSEKYR 141
*********************************************************7 PP
>> sp|P01991|HBA_BRACA Hemoglobin subunit alpha-A OS=Branta canadensis GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.0 0.7 6.5e-49 3e-46 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 162.0 1.0 6.7e-49 3.3e-46 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.0 bits; conditional E-value: 6.5e-49
+ == domain 1 score: 162.0 bits; conditional E-value: 6.7e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ +++e+Ga+ L+r+f+++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01991|HBA_BRACA 1 VLSAADKTNVKGVFSKIGGHADEYGAETLERMFVAYPQTKTYFPHF-DLQ-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 83
@@ -11773,10 +12265,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01987|HBA_CAIMO Hemoglobin subunit alpha-A OS=Cairina moschata GN=HBAA PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 162.0 0.9 6.6e-49 3.1e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 162.0 1.3 6.8e-49 3.3e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 162.0 bits; conditional E-value: 6.6e-49
+ == domain 1 score: 162.0 bits; conditional E-value: 6.8e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01987|HBA_CAIMO 2 VLSAADKTNVKGVFSKIGGHAEEYGAETLERMFIAYPQTKTYFPHF-DLQ-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 84
@@ -11790,10 +12282,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01990|HBA_ANSIN Hemoglobin subunit alpha-A OS=Anser indicus GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.9 1.4 7.4e-49 3.4e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 161.9 2.0 7.7e-49 3.7e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.9 bits; conditional E-value: 7.4e-49
+ == domain 1 score: 161.9 bits; conditional E-value: 7.7e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k+ ++ee+Ga+ L+r+f+++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01990|HBA_ANSIN 2 VLSAADKTNVKGVFSKISGHAEEYGAETLERMFTAYPQTKTYFPHF-DLQ-----HGSAQIKAHGKKVVAALVEAVNHID-DIAGALSKL 84
@@ -11807,10 +12299,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P22741|HBA_FRAPO Hemoglobin subunit alpha-A OS=Francolinus pondicerianus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.7 0.3 8.1e-49 3.7e-46 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 161.7 0.5 8.3e-49 4e-46 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.7 bits; conditional E-value: 8.1e-49
+ == domain 1 score: 161.7 bits; conditional E-value: 8.3e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk +++k+ +++e++Ga++L+r+f ++P t+++F++F dLs ++sa+vk Hgkkv+ Al +a +++d ++ ++l++L
sp|P22741|HBA_FRAPO 1 VLSAADKNNVKGIFGKISSHAEDYGAEALERMFITYPSTKTYFPHF-DLS-----HGSAQVKGHGKKVVAALIEAANHID-DIAGTLSKL 83
@@ -11821,30 +12313,30 @@ Domain annotation for each sequence (and alignments):
sp|P22741|HBA_FRAPO 84 SDLHAHKLRVDPVNFKLLGQCFLVVVAIHHPSALTPEVHASLDKFLCAVGNVLTAKYR 141
*********************************************************7 PP
->> sp|P83135|HBAA_GEONI Hemoglobin subunit alpha-A OS=Geochelone nigra GN=HBAA PE=1 SV=2
+>> sp|P83135|HBAA_CHENI Hemoglobin subunit alpha-A OS=Chelonoidis nigra GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.5 0.1 9.4e-49 4.3e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 161.5 0.2 9.7e-49 4.7e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.5 bits; conditional E-value: 9.4e-49
+ == domain 1 score: 161.5 bits; conditional E-value: 9.7e-49
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++++k +vk+vW+kv+++ ee+G + L+rlf ++P t+++F++F dL+ + sa+v++Hg+kvl Al++a++++d +++++l++
- sp|P83135|HBAA_GEONI 2 VLTAGDKANVKTVWSKVGSHLEEYGSETLERLFIVYPSTKTYFPHF-DLH-----HDSAQVRAHGRKVLSALGEAVNHID-DIPGALSK 83
+ sp|P83135|HBAA_CHENI 2 VLTAGDKANVKTVWSKVGSHLEEYGSETLERLFIVYPSTKTYFPHF-DLH-----HDSAQVRAHGRKVLSALGEAVNHID-DIPGALSK 83
79********************************************.999.....9***********************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Ls+lHa+ l+vdp +fkll + v+v+ ++p+ +t++v+ +l+K+l+ va++l+skY+
- sp|P83135|HBAA_GEONI 84 LSDLHAQTLRVDPVNFKLLNLCFVVVVGRHHPTILTPEVHVSLDKFLSAVATALTSKYR 142
+ sp|P83135|HBAA_CHENI 84 LSDLHAQTLRVDPVNFKLLNLCFVVVVGRHHPTILTPEVHVSLDKFLSAVATALTSKYR 142
**********************************************************7 PP
>> sp|P04442|HBAD_ANAPL Hemoglobin subunit alpha-D OS=Anas platyrhynchos GN=HBAD PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.4 0.4 1e-48 4.6e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 161.4 0.6 1e-48 5e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.4 bits; conditional E-value: 1e-48
+ == domain 1 score: 161.4 bits; conditional E-value: 1e-48
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W kv + ee G ++L+r+f+++P+t+++F++F dL+ +s++v+ Hgkkv+ Al++a+++ld +l+++l++L
sp|P04442|HBAD_ANAPL 2 LTAEDKKLITQLWEKVAGHQEEFGSEALQRMFLAYPQTKTYFPHF-DLH-----PGSEQVRGHGKKVAAALGNAVKSLD-NLSQALSEL 83
@@ -11858,10 +12350,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83132|HBA2_ALDEL Hemoglobin A subunit alpha-2 OS=Aldabrachelys elephantina PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.4 0.1 1e-48 4.6e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 161.4 0.1 1e-48 5e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.4 bits; conditional E-value: 1e-48
+ == domain 1 score: 161.4 bits; conditional E-value: 1e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++++k +vk+vW+kv+++ e++G + L+rlf+++P t+++F++F dL+ + s++v++Hgkkvl Al++a++++d +++++l++
sp|P83132|HBA2_ALDEL 2 VLTAGDKANVKTVWSKVGSHLEDYGSETLERLFVVYPSTKTYFPHF-DLH-----HDSPQVRAHGKKVLSALGEAVNHID-DIPGALSK 83
@@ -11875,10 +12367,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02005|HBAD_CHRPI Hemoglobin subunit alpha-D OS=Chrysemys picta bellii GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.4 1.9 1e-48 4.7e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 161.4 2.7 1.1e-48 5.1e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.4 bits; conditional E-value: 1e-48
+ == domain 1 score: 161.4 bits; conditional E-value: 1.1e-48
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L +ek+ +k++W kv + e+ Ga++L+r+f ++P+t+++F++F dL+ + s+++++Hgkkv++Al+da++++d +l+ +l++L
sp|P02005|HBAD_CHRPI 2 LNHDEKQLIKHAWEKVLGHQEDFGAEALERMFAVYPQTKTYFPHF-DLH-----HDSEQIRHHGKKVVTALGDAVRHMD-NLSEALSEL 83
@@ -11892,10 +12384,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01995|HBA_PHACO Hemoglobin subunit alpha-A OS=Phasianus colchicus colchicus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 161.2 0.3 1.2e-48 5.6e-46 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 161.2 0.4 1.3e-48 6.1e-46 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 161.2 bits; conditional E-value: 1.2e-48
+ == domain 1 score: 161.2 bits; conditional E-value: 1.3e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk +++k+ ++ee+Ga++L+r+f ++P t+++F++F dLs ++sa++k Hgkkv+ Al +a++++d ++ ++l++L
sp|P01995|HBA_PHACO 1 VLSAADKNNVKGIFTKIAGHAEEYGAEALERMFITYPSTKTYFPHF-DLS-----HGSAQIKGHGKKVVAALIEAVNHID-DITGTLSKL 83
@@ -11906,30 +12398,30 @@ Domain annotation for each sequence (and alignments):
sp|P01995|HBA_PHACO 84 SDLHAHKLRVDPVNFKLLGQCFLVVVAIHHPSALTPEVHASLDKFLCAVGTVLTAKYR 141
*********************************************************7 PP
->> sp|P10057|HBA_EUDCR Hemoglobin subunit alpha OS=Eudyptes crestatus GN=HBA PE=1 SV=1
+>> sp|P10057|HBA_EUDCH Hemoglobin subunit alpha OS=Eudyptes chrysocome GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.8 0.7 1.6e-48 7.3e-46 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 160.8 1.0 1.6e-48 7.9e-46 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.8 bits; conditional E-value: 1.6e-48
+ == domain 1 score: 160.8 bits; conditional E-value: 1.6e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vk v++k+ +++ee+Ga+ L+r+f+++P+t+++F++F dL+ ++sa+vk+Hgkkv++Al +a +++d ++ ++l++L
- sp|P10057|HBA_EUDCR 1 VLSANDKSNVKGVFSKISSHAEEYGAETLERMFTTYPQTKTYFPHF-DLH-----HGSAQVKAHGKKVATALMEAANHID-DIAGALSKL 83
+ sp|P10057|HBA_EUDCH 1 VLSANDKSNVKGVFSKISSHAEEYGAETLERMFTTYPQTKTYFPHF-DLH-----HGSAQVKAHGKKVATALMEAANHID-DIAGALSKL 83
69********************************************.999.....************************9.9******** PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa+kl+vdp +fkll+++ ++v+a ++p+ +t++v+a+l+K+l v ++l+skY+
- sp|P10057|HBA_EUDCR 84 SDLHAQKLRVDPVNFKLLGQCFLVVMAIHHPSALTPEVHASLDKFLCAVGNVLTSKYR 141
+ sp|P10057|HBA_EUDCH 84 SDLHAQKLRVDPVNFKLLGQCFLVVMAIHHPSALTPEVHASLDKFLCAVGNVLTSKYR 141
*********************************************************7 PP
>> sp|P84790|HBA_AYTFU Hemoglobin subunit alpha-A OS=Aythya fuligula PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.6 0.4 1.8e-48 8.2e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 160.6 0.5 1.8e-48 8.9e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.6 bits; conditional E-value: 1.8e-48
+ == domain 1 score: 160.6 bits; conditional E-value: 1.8e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk +++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P84790|HBA_AYTFU 2 VLSAADKTNVKGIFSKIGGHAEEYGAETLERMFITYPQTKTYFPHF-DLQ-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 84
@@ -11943,10 +12435,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02006|HBAD_PHRHI Hemoglobin subunit alpha-D OS=Phrynops hilarii GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.5 2.2 2e-48 9.1e-46 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 160.5 3.2 2e-48 9.8e-46 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.5 bits; conditional E-value: 2e-48
+ == domain 1 score: 160.5 bits; conditional E-value: 2e-48
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls++ek+ ++++W kv+++ e+ Ga++L+r+f+++P+t+++F +F dL+ ++s++++ Hgkkv+ Al++a+ ++d +l+a+l +L
sp|P02006|HBAD_PHRHI 2 LSADEKQLILHAWEKVHTHQEDFGAEALERMFTVYPQTKTYFHHF-DLH-----HGSEQIRRHGKKVVVALENAVHHMD-NLSAALCKL 83
@@ -11960,10 +12452,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08850|HBA_ACCGE Hemoglobin subunit alpha-A OS=Accipiter gentilis GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.5 0.2 2e-48 9.2e-46 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 160.5 0.3 2e-48 9.9e-46 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.5 bits; conditional E-value: 2e-48
+ == domain 1 score: 160.5 bits; conditional E-value: 2e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk+v++k++ ++ee+Ga+ L+r+f+++P t+++F++F dL+ ++sa++k+Hgkkv++Al +a++++d ++ ++l++L
sp|P08850|HBA_ACCGE 2 VLSANDKTNVKNVFTKIGGHAEEYGAETLERMFTTYPPTKTYFPHF-DLH-----HGSAQIKAHGKKVVGALIEAVNHID-DIAGALSKL 84
@@ -11977,10 +12469,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83131|HBA1_ALDEL Hemoglobin A subunit alpha-1 OS=Aldabrachelys elephantina PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.3 0.1 2.2e-48 1e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 160.3 0.2 2.3e-48 1.1e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.3 bits; conditional E-value: 2.2e-48
+ == domain 1 score: 160.3 bits; conditional E-value: 2.3e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++++k +vk+vW+kv+++ ee+G + L+rlf+++P t+++F++F dL+ + s++v++Hgkkvl Al++a++++d +++++l++
sp|P83131|HBA1_ALDEL 2 VLTAGDKANVKTVWSKVGSHLEEYGSETLERLFVVYPSTKTYFPHF-DLH-----HDSPQVRAHGKKVLSALGEAVNHID-DIPGALSK 83
@@ -11994,10 +12486,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P30892|HBAD_COTJA Hemoglobin subunit alpha-D OS=Coturnix coturnix japonica GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.2 0.2 2.4e-48 1.1e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 160.2 0.4 2.5e-48 1.2e-45 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.2 bits; conditional E-value: 2.4e-48
+ == domain 1 score: 160.2 bits; conditional E-value: 2.5e-48
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W k ++ e+ Ga++L r+f+++P+t+++F++F dLs +s++++ Hgkkvl Al++a++++d +l++++++L
sp|P30892|HBAD_COTJA 2 LTAEDKKLIQQAWEKASSHQEDFGAEALLRMFTAYPQTKTYFPHF-DLS-----PGSDQIRGHGKKVLAALGNAVKNID-DLSQAMAEL 83
@@ -12011,10 +12503,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02003|HBAD_CAIMO Hemoglobin subunit alpha-D OS=Cairina moschata GN=HBAD PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.2 0.4 2.4e-48 1.1e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 160.2 0.6 2.5e-48 1.2e-45 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.2 bits; conditional E-value: 2.4e-48
+ == domain 1 score: 160.2 bits; conditional E-value: 2.5e-48
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ + +vW kv + ee G ++L+r+f+++P+t+++F++F dL+ +s++v+ Hgkkv+ Al++a+++ld +l+++l++L
sp|P02003|HBAD_CAIMO 2 LTAEDKKLIVQVWEKVAGHQEEFGSEALQRMFLAYPQTKTYFPHF-DLH-----PGSEQVRGHGKKVAAALGNAVKSLD-NLSQALSEL 83
@@ -12028,10 +12520,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01981|HBA_STRCA Hemoglobin subunit alpha-A OS=Struthio camelus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.2 0.3 2.4e-48 1.1e-45 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 160.2 0.5 2.5e-48 1.2e-45 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.2 bits; conditional E-value: 2.4e-48
+ == domain 1 score: 160.2 bits; conditional E-value: 2.5e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +kt+vk +++k+ +++ee+Ga+ L+r+f ++P+t+++F++F dL+ ++sa++k+Hgkkv++Al +a++++d +++++l++L
sp|P01981|HBA_STRCA 1 VLSGTDKTNVKGIFSKISSHAEEYGAETLERMFITYPQTKTYFPHF-DLH-----HGSAQIKAHGKKVANALIEAVNHID-DISGALSKL 83
@@ -12045,10 +12537,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10060|HBB1_SPHPU Hemoglobin subunit beta-1 OS=Sphenodon punctatus GN=HBB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 160.0 0.4 2.7e-48 1.3e-45 2 149 .] 2 146 .] 1 146 [] 0.99
+ 1 ! 160.0 0.6 2.8e-48 1.4e-45 2 149 .] 2 146 .] 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 160.0 bits; conditional E-value: 2.7e-48
+ == domain 1 score: 160.0 bits; conditional E-value: 2.8e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek + ++Wakv dv++ G+++L rl++++P+tq+fF F++Ls + ++ +++ vk+Hgkkv + +++al++ld +l+ ++++
sp|P10060|HBB1_SPHPU 2 HWTAEEKHLLGSLWAKV--DVADIGGEALGRLLVVYPWTQRFFADFGNLSSATAICGNPRVKAHGKKVFTMFGEALKHLD-NLKETFAS 87
@@ -12062,10 +12554,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01980|HBA_APTFO Hemoglobin subunit alpha OS=Aptenodytes forsteri GN=HBA PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.8 0.8 3.3e-48 1.5e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 159.8 1.2 3.4e-48 1.7e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 159.8 bits; conditional E-value: 3.3e-48
+ == domain 1 score: 159.8 bits; conditional E-value: 3.4e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vk++++k+ +++ee+Ga+ L+r+f+++P+t+++F++F dL+ ++sa+vk+Hgkkv+ Al +a +++d ++ ++l++L
sp|P01980|HBA_APTFO 2 VLSANDKSNVKSIFSKISSHAEEYGAETLERMFTTYPQTKTYFPHF-DLH-----HGSAQVKAHGKKVAAALIEAANHID-DIAGALSKL 84
@@ -12079,10 +12571,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01947|HBA_CAVPO Hemoglobin subunit alpha OS=Cavia porcellus GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.7 0.5 3.5e-48 1.6e-45 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 159.7 0.7 3.6e-48 1.8e-45 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 159.7 bits; conditional E-value: 3.5e-48
+ == domain 1 score: 159.7 bits; conditional E-value: 3.6e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk+ W k++ +++e+ a+ L+r+f+s+P+t+++F + d+s +s d+k+Hgkkv+dAl+ a+ +ld +l+++l++L
sp|P01947|HBA_CAVPO 2 VLSAADKNNVKTTWDKIGGHAAEYVAEGLTRMFTSFPTTKTYFHHI-DVS-----PGSGDIKAHGKKVADALTTAVGHLD-DLPTALSTL 84
@@ -12096,10 +12588,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01983|HBA_CICCI Hemoglobin subunit alpha-A OS=Ciconia ciconia GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.5 0.3 3.9e-48 1.8e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 159.5 0.5 4.1e-48 2e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 159.5 bits; conditional E-value: 3.9e-48
+ == domain 1 score: 159.5 bits; conditional E-value: 4.1e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++v+ v++k+ a+++++Ga+ L+r+f+++P+ +++F++F dL+ ++sa++k+Hgkkv++Al +a++++d ++ ++l++L
sp|P01983|HBA_CICCI 2 VLSANDKSNVRGVFGKISAHADDYGAETLERMFTVHPTQKTYFPHF-DLH-----RGSAQIKAHGKKVAGALLEAVNHID-DIAGALSKL 84
@@ -12113,10 +12605,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13786|HBAZ_CAPHI Hemoglobin subunit zeta OS=Capra hircus GN=HBZ1 PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.5 0.1 3.9e-48 1.8e-45 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 159.5 0.2 4.1e-48 2e-45 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 159.5 bits; conditional E-value: 3.9e-48
+ == domain 1 score: 159.5 bits; conditional E-value: 4.1e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L+ e+t ++++W+k+ ++++ G++ L+rlf +P+++++F++F dL+ +sa++++Hg kv+ A++da++++d ++ ++l++
sp|P13786|HBAZ_CAPHI 2 SLTRTERTIILSLWSKISTQADVIGTETLERLFSCYPQAKTYFPHF-DLH-----SGSAQLRAHGSKVVAAVGDAVKSID-NVTSALSK 83
@@ -12130,10 +12622,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01992|HBA_CYGOL Hemoglobin subunit alpha-A OS=Cygnus olor GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.4 0.7 4.3e-48 2e-45 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 159.4 1.0 4.4e-48 2.1e-45 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 159.4 bits; conditional E-value: 4.3e-48
+ == domain 1 score: 159.4 bits; conditional E-value: 4.4e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v++k++ +++++Ga+ L+r+f ++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P01992|HBA_CYGOL 1 VLSAADKTNVKGVFSKIGGHADDYGAETLERMFIAYPQTKTYFPHF-DLQ-----HGSAQIKAHGKKVAAALVEAVNHID-DIAGALSKL 83
@@ -12147,10 +12639,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01999|HBA_ALLMI Hemoglobin subunit alpha OS=Alligator mississippiensis GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.4 0.4 4.3e-48 2e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 159.4 0.5 4.5e-48 2.2e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 159.4 bits; conditional E-value: 4.3e-48
+ == domain 1 score: 159.4 bits; conditional E-value: 4.5e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k++vka+W+k + ee+Ga++L+r+f ++P+t+ +F++F d+s ++sa++++Hgkkv Al +a++++d +l+++l L
sp|P01999|HBA_ALLMI 2 VLSMEDKSNVKAIWGKASGHLEEYGAEALERMFCAYPQTKIYFPHF-DMS-----HNSAQIRAHGKKVFSALHEAVNHID-DLPGALCRL 84
@@ -12161,13 +12653,13 @@ Domain annotation for each sequence (and alignments):
sp|P01999|HBA_ALLMI 85 SELHAHSLRVDPVNFKFLAHCVLVVFAIHHPSALSPEIHASLDKFLCAVSAVLTSKYR 142
*********************************************************7 PP
->> sp|P24589|HBA_COTJA Hemoglobin subunit alpha-A OS=Coturnix coturnix japonica GN=HBAA PE=2 SV=2
+>> sp|P24589|HBA_COTJA Hemoglobin subunit alpha-A OS=Coturnix coturnix japonica GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.3 0.6 4.6e-48 2.1e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 159.3 0.8 4.7e-48 2.3e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 159.3 bits; conditional E-value: 4.6e-48
+ == domain 1 score: 159.3 bits; conditional E-value: 4.7e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk ++ak+ ++ee+Ga++L r+f+++P+t+++F++F d+s ++sa++k Hgkkv+ Al +a +++d ++ ++l++L
sp|P24589|HBA_COTJA 2 VLSAADKTNVKGIFAKIAGHAEEYGAEALDRMFTTYPQTKTYFPHF-DVS-----HGSAQIKGHGKKVAAALVEAANHID-DIAGTLSKL 84
@@ -12181,10 +12673,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02009|HBAZ_PIG Hemoglobin subunit zeta OS=Sus scrofa PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 159.1 0.1 5.1e-48 2.4e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 159.1 0.2 5.3e-48 2.6e-45 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 159.1 bits; conditional E-value: 5.1e-48
+ == domain 1 score: 159.1 bits; conditional E-value: 5.3e-48
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
L++ae+t + ++W+k+ +++++ G++ L+rlf s+P+++++F++F dL+ +sa++++Hg kvl A+++a++++d +++a+l++Lse
sp|P02009|HBAZ_PIG 2 LTKAERTIIGSMWTKISSQADTIGTETLERLFASYPQAKTYFPHF-DLN-----PGSAQLRAHGSKVLAAVGEAVKSID-NVSAALAKLSE 85
@@ -12198,10 +12690,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02129|HBB_CRONI Hemoglobin subunit beta OS=Crocodylus niloticus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 158.8 0.2 6.5e-48 3e-45 4 149 .] 4 146 .] 1 146 [] 0.98
+ 1 ! 158.8 0.2 6.7e-48 3.2e-45 4 149 .] 4 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 158.8 bits; conditional E-value: 6.5e-48
+ == domain 1 score: 158.8 bits; conditional E-value: 6.7e-48
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ ek+ + +W kv dv+ G+++L r++ ++P+ +++Fe+F+d+s +++++ +++v++Hgkkvl +++a+ +ld ++a++++Ls+
sp|P02129|HBB_CRONI 4 DPHEKQLIGDLWHKV--DVAHCGGEALSRMLIVYPWKRRYFENFGDISNAQAIMHNEKVQAHGKKVLASFGEAVCHLD-GIRAHFANLSK 90
@@ -12215,10 +12707,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02137|HBBL_XENLA Hemoglobin larval subunit beta-1 OS=Xenopus laevis PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 158.6 0.7 7.3e-48 3.4e-45 1 148 [. 2 146 .. 2 147 .] 0.99
+ 1 ! 158.6 1.0 7.5e-48 3.6e-45 1 148 [. 2 146 .. 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 158.6 bits; conditional E-value: 7.3e-48
+ == domain 1 score: 158.6 bits; conditional E-value: 7.5e-48
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+Ls++ek++++avW+kv ++e+ G d+L+rl++++P+tq++F +F++Ls +++ ++a+v++Hgkkvl A+ + + +ld ++++ l+
sp|P02137|HBBL_XENLA 2 VHLSADEKSAINAVWSKV--NIENDGHDALTRLLVVFPWTQRYFSSFGNLSNVAAISGNAKVRAHGKKVLSAVDESIHHLD-DIKNFLS 87
@@ -12232,10 +12724,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08256|HBA_GYPRU Hemoglobin subunit alpha-A/A' OS=Gyps rueppellii GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 158.5 0.3 7.9e-48 3.7e-45 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 158.5 0.4 8.2e-48 4e-45 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 158.5 bits; conditional E-value: 7.9e-48
+ == domain 1 score: 158.5 bits; conditional E-value: 8.2e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk+v++k+ ++e++Ga+ L+r+f+++P t+++F++F dL+ ++sa++k+Hgkkv++Al +a++++d ++ ++l++L
sp|P08256|HBA_GYPRU 1 VLSANDKTNVKNVFTKITGHAEDYGAETLERMFTTYPPTKTYFPHF-DLH-----HGSAQIKAHGKKVVGALIEAVNHID-DIAGALSKL 83
@@ -12249,10 +12741,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07034|HBA_CHLME Hemoglobin subunit alpha-A OS=Chloephaga melanoptera GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 158.3 1.0 9e-48 4.1e-45 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 158.3 1.4 9.2e-48 4.5e-45 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 158.3 bits; conditional E-value: 9e-48
+ == domain 1 score: 158.3 bits; conditional E-value: 9.2e-48
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vk v++k++ +++++Ga+ L+r+f ++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P07034|HBA_CHLME 1 VLSAADKANVKGVFSKIGGHADDYGAETLERMFIAYPQTKTYFPHF-DLH-----HGSAQIKAHGKKVAAALVEAVNHID-DITGALSKL 83
@@ -12266,10 +12758,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07417|HBA_AEGMO Hemoglobin subunit alpha-A OS=Aegypius monachus GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 158.1 0.3 1.1e-47 4.9e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 158.1 0.4 1.1e-47 5.3e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 158.1 bits; conditional E-value: 1.1e-47
+ == domain 1 score: 158.1 bits; conditional E-value: 1.1e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk+v++k+ ++e++Ga+ L+r+f ++P t+++F++F dL+ ++sa++k+Hgkkv++Al +a++++d ++ ++l++L
sp|P07417|HBA_AEGMO 2 VLSANDKTNVKTVFTKITGHAEDYGAETLERMFITYPPTKTYFPHF-DLH-----HGSAQIKAHGKKVVGALIEAVNHID-DIAGALSKL 84
@@ -12283,10 +12775,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10780|HBA_PHACA Hemoglobin subunit alpha-A OS=Phalacrocorax carbo GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.8 1.2 1.3e-47 6.2e-45 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 157.8 1.7 1.4e-47 6.7e-45 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.8 bits; conditional E-value: 1.3e-47
+ == domain 1 score: 157.8 bits; conditional E-value: 1.4e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +kt+vk v+akv+ +e +Ga+ L+r+f+++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al +a +++d ++ ++l++L
sp|P10780|HBA_PHACA 1 VLSASDKTNVKGVFAKVGGSAEAYGAETLERMFTAYPQTKTYFPHF-DLH-----HGSAQIKAHGKKVAAALVEAANHID-DIAGALSKL 83
@@ -12300,10 +12792,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07413|HBAD_PASMO Hemoglobin subunit alpha-D OS=Passer montanus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.8 0.0 1.3e-47 6.2e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 157.8 0.1 1.4e-47 6.8e-45 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.8 bits; conditional E-value: 1.3e-47
+ == domain 1 score: 157.8 bits; conditional E-value: 1.4e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W+k + ee Gad+L r+f s+P t+++F++F dLs ++s++++ Hgkkv+ Als+a+++ld +l+++l++L
sp|P07413|HBAD_PASMO 2 LTAEDKKLIQQIWGKLGGAEEEIGADALWRMFHSYPSTKTYFPHF-DLS-----QGSDQIRGHGKKVVAALSNAIKNLD-NLSQALSEL 83
@@ -12317,10 +12809,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01985|HBA_ANSSE Hemoglobin subunit alpha-A OS=Anseranas semipalmata GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.6 0.4 1.5e-47 6.9e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 157.6 0.6 1.5e-47 7.5e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.6 bits; conditional E-value: 1.5e-47
+ == domain 1 score: 157.6 bits; conditional E-value: 1.5e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k +vk+v++k++ ++ee+Ga+ L+r+f+++P+t+++F++F dL+ +sa++k+Hgkkv+ Al +a +++d ++ ++l++L
sp|P01985|HBA_ANSSE 2 VLSAADKGNVKTVFGKIGGHAEEYGAETLQRMFQTFPQTKTYFPHF-DLQ-----PGSAQIKAHGKKVAAALVEAANHID-DIAGALSKL 84
@@ -12334,10 +12826,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O12985|HBAD_COLLI Hemoglobin subunit alpha-D OS=Columba livia GN=HBAD PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.6 0.1 1.5e-47 7e-45 3 149 .] 2 140 .] 1 140 [] 0.97
+ 1 ! 157.6 0.2 1.6e-47 7.6e-45 3 149 .] 2 140 .] 1 140 [] 0.97
Alignments for each domain:
- == domain 1 score: 157.6 bits; conditional E-value: 1.5e-47
+ == domain 1 score: 157.6 bits; conditional E-value: 1.6e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ +k+ v++vW kv + Ga++L+rlf+++P+t+++F++F dL+ ++s++v++Hgkkvl Al++a+++l +l+++l+dL
sp|O12985|HBAD_COLLI 2 LTDSDKKLVLQVWEKV-IRHPDCGAEALERLFTTYPQTKTYFPHF-DLH-----HGSDQVRNHGKKVLAALGNAVKSLG-NLSQALSDL 82
@@ -12351,10 +12843,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01994|HBA_CHICK Hemoglobin subunit alpha-A OS=Gallus gallus GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.6 0.3 1.6e-47 7.2e-45 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 157.6 0.4 1.6e-47 7.8e-45 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.6 bits; conditional E-value: 1.6e-47
+ == domain 1 score: 157.6 bits; conditional E-value: 1.6e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk +++k+ ++ee+Ga+ L+r+f+++P t+++F++F dLs ++sa++k Hgkkv+ Al +a +++d ++ ++l++L
sp|P01994|HBA_CHICK 2 VLSAADKNNVKGIFTKIAGHAEEYGAETLERMFTTYPPTKTYFPHF-DLS-----HGSAQIKGHGKKVVAALIEAANHID-DIAGTLSKL 84
@@ -12368,10 +12860,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04239|HBAD_ANSIN Hemoglobin subunit alpha-D OS=Anser indicus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.5 0.4 1.6e-47 7.4e-45 3 149 .] 2 141 .] 1 141 [] 0.98
+ 1 ! 157.5 0.6 1.6e-47 8e-45 3 149 .] 2 141 .] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 157.5 bits; conditional E-value: 1.6e-47
+ == domain 1 score: 157.5 bits; conditional E-value: 1.6e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k+ + ++W kv + +e G+++L+r+f+++P+t+++F++F d++ +s++v+ Hgkkv+ Al++a+++ld +++++l++L
sp|P04239|HBAD_ANSIN 2 LSADDKKIIAQLWEKVAGHQDEFGNEALQRMFVTYPQTKTYFPHF-DVH-----PGSEQVRSHGKKVAAALGNAVKSLD-NISQALSEL 83
@@ -12385,10 +12877,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04238|HBAD_ANSAN Hemoglobin subunit alpha-D OS=Anser anser anser GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.3 0.4 1.8e-47 8.5e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 157.3 0.6 1.9e-47 9.2e-45 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.3 bits; conditional E-value: 1.8e-47
+ == domain 1 score: 157.3 bits; conditional E-value: 1.9e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ + ++W kv + +e G+++L+r+f+++P+t+++F++F dL+ +s++v+ Hgkkv+ Al++a+++ld +++++l++L
sp|P04238|HBAD_ANSAN 2 LTADDKKLLAQLWEKVAGHQDEFGNEALQRMFVTYPQTKTYFPHF-DLH-----PGSEQVRSHGKKVAAALGNAVKSLD-NISQALSEL 83
@@ -12402,10 +12894,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10781|HBAD_PHACA Hemoglobin subunit alpha-D OS=Phalacrocorax carbo GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.3 0.2 1.9e-47 8.7e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 157.3 0.3 1.9e-47 9.4e-45 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.3 bits; conditional E-value: 1.9e-47
+ == domain 1 score: 157.3 bits; conditional E-value: 1.9e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L ++e v+ vW kve+ +e+G++ L+r+f+++P+t+++F++F dL+ ++s+++++Hgkkv++Al++a+++ld +l+++l+dL
sp|P10781|HBAD_PHACA 2 LGAEETALVRGVWQKVESAKDEMGEETLTRMFLVYPKTKTYFPHF-DLH-----HGSEQIRNHGKKVVTALGNAIQNLD-NLRQTLADL 83
@@ -12419,10 +12911,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04240|HBAD_BRACA Hemoglobin subunit alpha-D OS=Branta canadensis GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.2 0.5 2.1e-47 9.5e-45 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 157.2 0.8 2.1e-47 1e-44 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.2 bits; conditional E-value: 2.1e-47
+ == domain 1 score: 157.2 bits; conditional E-value: 2.1e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ + ++W kv + +e G+++L+r+f+++P+t+++F++F dL+ +s++v+ Hgkkv+ Als+a++++d +l+++l++L
sp|P04240|HBAD_BRACA 2 LTADDKKILAQLWEKVAGHQDEFGNEALERMFVTYPQTKTYFPHF-DLH-----PGSEQVRSHGKKVAAALSNAVKSID-NLSQALSEL 83
@@ -12436,10 +12928,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15164|HBAD_APUAP Hemoglobin subunit alpha-D OS=Apus apus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 157.1 0.1 2.2e-47 1e-44 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 157.1 0.2 2.3e-47 1.1e-44 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 157.1 bits; conditional E-value: 2.2e-47
+ == domain 1 score: 157.1 bits; conditional E-value: 2.3e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ +++vW k + ee+Ga+ L+r+f+++P+t+++F++F dLs +s++++ Hgkkv+ Al+ a+++ld +l+++l++L
sp|P15164|HBAD_APUAP 2 LTAEDKKLIQQVWDKLQGCQEEVGAETLQRMFTTYPQTKTYFPHF-DLS-----PGSDQIRGHGKKVVAALGTAVKSLD-NLSQALSEL 83
@@ -12453,10 +12945,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07035|HBAD_CHLME Hemoglobin subunit alpha-D OS=Chloephaga melanoptera GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.8 0.3 2.7e-47 1.2e-44 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 156.8 0.4 2.7e-47 1.3e-44 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 156.8 bits; conditional E-value: 2.7e-47
+ == domain 1 score: 156.8 bits; conditional E-value: 2.7e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+ ++++W kv + ee G ++L+r+f+++P+t+++F++F dL+ +s++v+ Hgkkv+ Al++a+++ld +l+++l++L
sp|P07035|HBAD_CHLME 2 LTADDKKLLTQLWEKVAGHQEEFGSEALQRMFLTYPQTKTYFPHF-DLH-----PGSEQVRGHGKKVAAALGNAVKSLD-NLSQALSEL 83
@@ -12467,30 +12959,30 @@ Domain annotation for each sequence (and alignments):
sp|P07035|HBAD_CHLME 84 SNLHAYNLRVDPANFKLLAQCFQVVLATHLGKDYSPEMHAAFDKFLSAVAAVLAEKYR 141
*********************************************************7 PP
->> sp|P08260|HBA_LARRI Hemoglobin subunit alpha-A OS=Larus ridibundus GN=HBAA PE=1 SV=1
+>> sp|P08260|HBA_CHRRI Hemoglobin subunit alpha-A OS=Chroicocephalus ridibundus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.7 0.2 2.8e-47 1.3e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 156.7 0.3 2.9e-47 1.4e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 156.7 bits; conditional E-value: 2.8e-47
+ == domain 1 score: 156.7 bits; conditional E-value: 2.9e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +kt+vk v++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dL+ ++sa+vk+Hgkkv+ Al +a +++d ++ ++l++L
- sp|P08260|HBA_LARRI 1 VLSGSDKTNVKGVFGKIGGHAEEYGAETLERMFATYPQTKTYFPHF-DLQ-----HGSAQVKAHGKKVAAALVEAANHID-DIAGALSKL 83
+ sp|P08260|HBA_CHRRI 1 VLSGSDKTNVKGVFGKIGGHAEEYGAETLERMFATYPQTKTYFPHF-DLQ-----HGSAQVKAHGKKVAAALVEAANHID-DIAGALSKL 83
6999******************************************.999.....************************9.9******** PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa+kl+vdp +fkll+++ ++v+a ++p+ +t++v+a+l+K+l v ++l++kY+
- sp|P08260|HBA_LARRI 84 SDLHAQKLRVDPVNFKLLGQCFLVVVAIHHPSVLTPEVHASLDKFLCAVGNVLTAKYR 141
+ sp|P08260|HBA_CHRRI 84 SDLHAQKLRVDPVNFKLLGQCFLVVVAIHHPSVLTPEVHASLDKFLCAVGNVLTAKYR 141
*********************************************************7 PP
>> sp|P19832|HBA_TRIOC Hemoglobin subunit alpha-A OS=Trigonoceps occipitalis GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.7 0.3 2.9e-47 1.4e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 156.7 0.4 3e-47 1.5e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 156.7 bits; conditional E-value: 2.9e-47
+ == domain 1 score: 156.7 bits; conditional E-value: 3e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk+v++k+ ++e++Ga+ L+r+f ++P t+++F++F dL+ ++sa++k+Hgkkv++Al +a++++d ++ ++l++L
sp|P19832|HBA_TRIOC 1 VLSANDKTNVKTVFTKITGHAEDYGAETLERMFITYPPTKTYFPHF-DLH-----HGSAQIKAHGKKVVGALIEAVNHID-DIAGALSKL 83
@@ -12504,10 +12996,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P81023|HBA_MELGA Hemoglobin subunit alpha-A OS=Meleagris gallopavo GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.7 0.3 2.9e-47 1.4e-44 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 156.7 0.4 3e-47 1.5e-44 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 156.7 bits; conditional E-value: 2.9e-47
+ == domain 1 score: 156.7 bits; conditional E-value: 3e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk +++k+ ++ee+Ga+ L+r+f ++P t+++F++F dLs ++sa++k Hgkkv+ Al +a +++d ++ ++l++L
sp|P81023|HBA_MELGA 2 VLSAADKNNVKGIFTKIAGHAEEYGAETLERMFITYPPTKTYFPHF-DLS-----HGSAQIKGHGKKVVAALIEAANHID-DIAGTLSKL 84
@@ -12521,10 +13013,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q8HY34|HBA_MONDO Hemoglobin subunit alpha OS=Monodelphis domestica GN=HBA PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.4 0.3 3.4e-47 1.6e-44 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 156.4 0.5 3.5e-47 1.7e-44 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 156.4 bits; conditional E-value: 3.4e-47
+ == domain 1 score: 156.4 bits; conditional E-value: 3.5e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vka+W+kv+ + + + +++L r f+s+P t+++F++F + s +sa++k g+k++dA+s a+a++d +l ++l++L
sp|Q8HY34|HBA_MONDO 2 VLSAADKTNVKAAWSKVGGNSGAYMGEALYRTFLSFPPTKTYFPHF-EFS-----AGSAQIKGQGQKIADAVSLAVAHMD-DLATALSAL 84
@@ -12535,30 +13027,30 @@ Domain annotation for each sequence (and alignments):
sp|Q8HY34|HBA_MONDO 85 SDLHAHNLKVDPVNFKFLCHNVLVTLASHLGKDFTPEIHASLDKFLALLSTVLTSKYR 142
*********************************************************7 PP
->> sp|P82111|HBA1_CATMA Hemoglobin subunit alpha-1 OS=Catharacta maccormicki PE=1 SV=1
+>> sp|P82111|HBA1_STEMC Hemoglobin subunit alpha-1 OS=Stercorarius maccormicki PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.4 0.2 3.5e-47 1.6e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 156.4 0.2 3.6e-47 1.7e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 156.4 bits; conditional E-value: 3.5e-47
+ == domain 1 score: 156.4 bits; conditional E-value: 3.6e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs +k++vk v++k++ ++ee+Ga+ L+r+f ++P+t+++F++F dL+ ++sa+vk+Hgkkv+ Al +a +++d +++++l++
- sp|P82111|HBA1_CATMA 1 VLSGSDKNNVKGVFGKIGGHAEEYGAETLERMFATYPQTKTYFPHF-DLQ-----HGSAQVKAHGKKVAAALVEAANHID-DISGALSK 82
+ sp|P82111|HBA1_STEMC 1 VLSGSDKNNVKGVFGKIGGHAEEYGAETLERMFATYPQTKTYFPHF-DLQ-----HGSAQVKAHGKKVAAALVEAANHID-DISGALSK 82
6999******************************************.999.....************************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Ls+lHa+kl+vdp +fkll+++ ++v+a ++p+ +t++v+a+l+K+l v ++l++kY+
- sp|P82111|HBA1_CATMA 83 LSDLHAQKLRVDPVNFKLLGQCFLVVVAIHHPSVLTPEVHASLDKFLCAVGNVLTAKYR 141
+ sp|P82111|HBA1_STEMC 83 LSDLHAQKLRVDPVNFKLLGQCFLVVVAIHHPSVLTPEVHASLDKFLCAVGNVLTAKYR 141
**********************************************************7 PP
>> sp|P21871|HBA_COLLI Hemoglobin subunit alpha-A OS=Columba livia GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.2 0.2 4.2e-47 2e-44 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 156.2 0.3 4.4e-47 2.1e-44 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 156.2 bits; conditional E-value: 4.2e-47
+ == domain 1 score: 156.2 bits; conditional E-value: 4.4e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++k++vkav+ak++ ++++ G+++L+rlf ++P+t+++F++F dLs ++sa++k Hgkkv++Al +a +++d ++ ++l++L
sp|P21871|HBA_COLLI 2 VLSANDKSNVKAVFAKIGGQAGDLGGEALERLFITYPQTKTYFPHF-DLS-----HGSAQIKGHGKKVAEALVEAANHID-DIAGALSKL 84
@@ -12572,10 +13064,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02130|HBB_ALLMI Hemoglobin subunit beta OS=Alligator mississippiensis GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.1 1.7 4.5e-47 2.1e-44 5 149 .] 5 146 .] 1 146 [] 0.98
+ 1 ! 156.1 2.4 4.6e-47 2.2e-44 5 149 .] 5 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 156.1 bits; conditional E-value: 4.5e-47
+ == domain 1 score: 156.1 bits; conditional E-value: 4.6e-47
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLsel 94
+ e++ + +Wakv dv++ Gad+L r++ ++P+ +++Fe+F+++ + ++ + +v++Hgkkvl +++a+++ld ++++++++Ls+l
sp|P02130|HBB_ALLMI 5 AHERKFIVDLWAKV--DVAQCGADALSRMLIVYPWKRRYFEHFGKMCNAHDILHNSKVQEHGKKVLASFGEAVKHLD-NIKGHFANLSKL 91
@@ -12589,10 +13081,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02131|HBB_CAICR Hemoglobin subunit beta OS=Caiman crocodilus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 156.0 1.2 4.9e-47 2.3e-44 3 149 .] 3 146 .] 1 146 [] 0.98
+ 1 ! 156.0 1.8 5e-47 2.4e-44 3 149 .] 3 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 156.0 bits; conditional E-value: 4.9e-47
+ == domain 1 score: 156.0 bits; conditional E-value: 5e-47
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s+ e + + +Wakv dv+ G+d+L r++ +P+ +++Fe+F++Lst++++ ++++++Hgkkvl +++a+++ld ++++++++Ls
sp|P02131|HBB_CAICR 3 FSAHEEKLIVDLWAKV--DVASCGGDALSRMLIIYPWKRRYFEHFGKLSTDQDVLHNEKIREHGKKVLASFGEAVKHLD-NIKGHFAHLS 89
@@ -12603,30 +13095,30 @@ Domain annotation for each sequence (and alignments):
sp|P02131|HBB_CAICR 90 KLHFEKFHVDCENFKLLGDIIIVVLGMHHPKDFTLQTHAAFQKLVRHVAAALSAEYH 146
********************************************************7 PP
->> sp|P02136|HBB3_RANCA Hemoglobin subunit beta-3 OS=Rana catesbeiana PE=1 SV=2
+>> sp|P02136|HBB3_LITCT Hemoglobin subunit beta-3 OS=Lithobates catesbeiana PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.8 0.2 5.5e-47 2.5e-44 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 155.8 0.3 5.7e-47 2.8e-44 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 155.8 bits; conditional E-value: 5.5e-47
+ == domain 1 score: 155.8 bits; conditional E-value: 5.7e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek +++vW kv dve+ G ++L+rlf ++P+tq++F F+dLs ++++ ++++v++Hgkk+l+A+ +a+ +ld +++++l+d
- sp|P02136|HBB3_RANCA 3 HWTAEEKAVINSVWQKV--DVEQDGHEALTRLFIVYPWTQRYFSTFGDLSSPAAIAGNPKVHAHGKKILGAIDNAIHNLD-DVKGTLHD 88
+ sp|P02136|HBB3_LITCT 3 HWTAEEKAVINSVWQKV--DVEQDGHEALTRLFIVYPWTQRYFSTFGDLSSPAAIAGNPKVHAHGKKILGAIDNAIHNLD-DVKGTLHD 88
6799*************..************************************************************9.9******* PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
Lse Ha++l+vdp++f+ l+evl++vl a+l+k f+++vq eK++a++ +l++ Y+
- sp|P02136|HBB3_RANCA 89 LSEEHANELHVDPENFRRLGEVLIVVLGAKLGKAFSPQVQHVWEKFIAVLVDALSHSYH 147
+ sp|P02136|HBB3_LITCT 89 LSEEHANELHVDPENFRRLGEVLIVVLGAKLGKAFSPQVQHVWEKFIAVLVDALSHSYH 147
**********************************************************7 PP
>> sp|P19789|HBA_EUDSC Hemoglobin subunit alpha-A OS=Eudynamys scolopacea GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.8 0.5 5.6e-47 2.6e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 155.8 0.8 5.8e-47 2.8e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 155.8 bits; conditional E-value: 5.6e-47
+ == domain 1 score: 155.8 bits; conditional E-value: 5.8e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk ++ak++ + +++Ga+ L r+f+++P+t+++F++F d+s ++sa++k+Hgkkv+ Al +a++++d ++ ++l++L
sp|P19789|HBA_EUDSC 1 VLSAADKTNVKGIFAKIGGHGDDYGAETLDRMFTVYPQTKTYFPHF-DVS-----HGSAQIKAHGKKVVAALVEAVNHID-DIAGALSKL 83
@@ -12640,10 +13132,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07404|HBA_VULGR Hemoglobin subunit alpha-A OS=Vultur gryphus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.6 0.1 6.2e-47 2.9e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 155.6 0.1 6.4e-47 3.1e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 155.6 bits; conditional E-value: 6.2e-47
+ == domain 1 score: 155.6 bits; conditional E-value: 6.4e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +kt+vk v+ak++ ++e++Ga+ L+r+f ++P+t+++F++F dL+ ++sa++k Hgkkv++Al +a +++d ++ a+l++L
sp|P07404|HBA_VULGR 1 VLSGSDKTNVKGVFAKIGGHAEDYGAETLERMFITYPQTKTYFPHF-DLQ-----HGSAQIKGHGKKVVGALIEAANHID-DIAASLSKL 83
@@ -12657,10 +13149,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02004|HBAD_STUVU Hemoglobin subunit alpha-D OS=Sturnus vulgaris GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.4 0.0 7.3e-47 3.4e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 155.4 0.0 7.5e-47 3.7e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 155.4 bits; conditional E-value: 7.3e-47
+ == domain 1 score: 155.4 bits; conditional E-value: 7.5e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++++k+ +++ W+k + ee Ga++L r+f ++P t+++F++F dLs ++s++++ Hgkkv+ Al++a+++ld +l+++l++
sp|P02004|HBAD_STUVU 1 VLTAEDKKLIQQTWGKLGGAEEEIGAEALWRMFHAYPPTKTYFPHF-DLS-----QGSDQIRGHGKKVVAALGNAIKNLD-NLSQALSE 82
@@ -12674,10 +13166,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZC3|HBA_STROE Hemoglobin subunit alpha-A OS=Streptopelia orientalis GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.2 0.1 8.1e-47 3.7e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 155.2 0.2 8.3e-47 4e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 155.2 bits; conditional E-value: 8.1e-47
+ == domain 1 score: 155.2 bits; conditional E-value: 8.3e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +k++vka+++k++ ++++ G+++L+r+f ++P+t+++F++F dLs ++sa++k Hgkkv++Al +a +++d ++ ++l++L
sp|Q7LZC3|HBA_STROE 1 VLSASDKSNVKAAFGKIGGQAGDLGGQALERMFITYPQTKTYFPHF-DLS-----HGSAQIKGHGKKVAEALVEAANHID-DIAGALSKL 83
@@ -12691,10 +13183,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07407|HBA_PASMO Hemoglobin subunit alpha-A OS=Passer montanus GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.1 0.0 9.1e-47 4.2e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 155.1 0.0 9.4e-47 4.6e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 155.1 bits; conditional E-value: 9.1e-47
+ == domain 1 score: 155.1 bits; conditional E-value: 9.4e-47
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k++vk v+ak++ ++ee+Gad+L+r+f ++P+t+++F++F dL k+sa+vk Hgkkv+ Al +a++++d +l ++l++L
sp|P07407|HBA_PASMO 1 VLSPADKSNVKGVFAKIGGQAEEYGADALERMFATYPQTKTYFPHF-DLG-----KGSAQVKGHGKKVAAALVEAVNNID-DLAGALSKL 83
@@ -12705,30 +13197,30 @@ Domain annotation for each sequence (and alignments):
sp|P07407|HBA_PASMO 84 SDLHAQKLRVDPVNFKLLGQCFLVVVATGNPALLTPEVHAPLDKFLCAVGTVLTAKYR 141
*********************************************************7 PP
->> sp|P01976|HBA_DIDMA Hemoglobin subunit alpha OS=Didelphis marsupialis virginiana GN=HBA PE=1 SV=1
+>> sp|P01976|HBA_DIDVI Hemoglobin subunit alpha OS=Didelphis virginiana GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 155.0 0.1 9.9e-47 4.6e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 155.0 0.1 1e-46 4.9e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 155.0 bits; conditional E-value: 9.9e-47
+ == domain 1 score: 155.0 bits; conditional E-value: 1e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+++kt+vk +W+kv+ + + + +++L r f+s+P+t+++F+++ d s +sa++k+ g+k++dA++ a+a+ld +++++l++L
- sp|P01976|HBA_DIDMA 1 VLSANDKTNVKGAWSKVGGNSGAYMGEALYRTFLSFPTTKTYFPNY-DFS-----AGSAQIKTQGQKIADAVGLAVAHLD-DMPTALSSL 83
+ sp|P01976|HBA_DIDVI 1 VLSANDKTNVKGAWSKVGGNSGAYMGEALYRTFLSFPTTKTYFPNY-DFS-----AGSAQIKTQGQKIADAVGLAVAHLD-DMPTALSSL 83
69********************************************.888.....9***********************9.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa++lkvdp +fk+l + +++++aa+l+k+ft++++a+++K+la+v+++l+skY+
- sp|P01976|HBA_DIDMA 84 SDLHAHELKVDPVNFKFLCHNVLVTMAAHLGKDFTPEIHASMDKFLASVSTVLTSKYR 141
+ sp|P01976|HBA_DIDVI 84 SDLHAHELKVDPVNFKFLCHNVLVTMAAHLGKDFTPEIHASMDKFLASVSTVLTSKYR 141
*********************************************************7 PP
>> sp|P06636|HBA3_XENLA Hemoglobin subunit alpha-3 OS=Xenopus laevis GN=hba3 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 154.8 0.8 1.1e-46 5.2e-44 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 154.8 1.2 1.2e-46 5.6e-44 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 154.8 bits; conditional E-value: 1.1e-46
+ == domain 1 score: 154.8 bits; conditional E-value: 1.2e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+L++ +k +v a+W+k+ +++ Ga++L+rlf+s+P+t+++F +F dLs ++sad+ +Hg kv++Al++a +++d +l+a+l++
sp|P06636|HBA3_XENLA 2 TLTDSDKAAVVALWGKIAPQANAIGAEALERLFLSYPQTKTYFSHF-DLS-----HGSADLANHGGKVVNALGEAAKHID-DLDAALST 83
@@ -12742,10 +13234,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06467|HBAZ_MOUSE Hemoglobin subunit zeta OS=Mus musculus GN=Hbz PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 154.6 0.1 1.3e-46 5.9e-44 3 149 .] 3 142 .] 1 142 [] 0.98
+ 1 ! 154.6 0.1 1.3e-46 6.4e-44 3 149 .] 3 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 154.6 bits; conditional E-value: 1.3e-46
+ == domain 1 score: 154.6 bits; conditional E-value: 1.3e-46
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L ++e+ + ++W k+ a++e G++ L+rlf s+P+t+++F++F dL+ ++s+++++Hg k+++A++da++++d +l+++l +L
sp|P06467|HBAZ_MOUSE 3 LMKNERAIIMSMWEKMAAQAEPIGTETLERLFCSYPQTKTYFPHF-DLH-----HGSQQLRAHGFKIMTAVGDAVKSID-NLSSALTKL 84
@@ -12759,10 +13251,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01997|HBA_STUVU Hemoglobin subunit alpha-A OS=Sturnus vulgaris GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 154.5 0.2 1.3e-46 6.1e-44 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 154.5 0.3 1.4e-46 6.6e-44 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 154.5 bits; conditional E-value: 1.3e-46
+ == domain 1 score: 154.5 bits; conditional E-value: 1.4e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+ +k +vkav++k++ ++ee Ga+ L+r+f ++P+t+++F++F dL k+sa+vk Hgkkv+ Al +a +++d ++ ++l++L
sp|P01997|HBA_STUVU 1 VLSASDKANVKAVFGKIGGQAEEFGAETLERMFATYPQTKTYFPHF-DLG-----KGSAQVKGHGKKVAAALVEAANHVD-DIAGALSKL 83
@@ -12776,10 +13268,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15162|HBA_APUAP Hemoglobin subunit alpha-A OS=Apus apus GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 153.9 0.3 2.1e-46 9.5e-44 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 153.9 0.4 2.1e-46 1e-43 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 153.9 bits; conditional E-value: 2.1e-46
+ == domain 1 score: 153.9 bits; conditional E-value: 2.1e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk v+ak++ ++e G+++L r+f ++P t+++F++F dLs +sa+vk+Hgkkv+ Al +a +++d ++ ++l++L
sp|P15162|HBA_APUAP 2 VLSAADKTNVKGVFAKIGGQAEALGGEALARMFAAYPPTKTYFPHF-DLS-----PGSAQVKAHGKKVASALVEAANNID-DIAGALSKL 84
@@ -12793,10 +13285,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08423|HBB2_XENTR Hemoglobin subunit beta-2 OS=Xenopus tropicalis GN=hbb2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 153.5 0.8 2.8e-46 1.3e-43 2 148 .. 3 146 .. 2 147 .] 0.98
+ 1 ! 153.5 1.1 2.9e-46 1.4e-43 2 148 .. 3 146 .. 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 153.5 bits; conditional E-value: 2.8e-46
+ == domain 1 score: 153.5 bits; conditional E-value: 2.9e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek ++ +vW+kv d+e+ G d+L rl++++P+tq++F +F++Ls ++ ++ +vk+Hg+kvl A++ a+++ld +++++lk
sp|P08423|HBB2_XENTR 3 HWTAEEKATIASVWGKV--DIEQDGHDALSRLLVVYPWTQRYFSSFGNLSNVSAVSGNVKVKAHGNKVLSAVGSAIQHLD-DVKSHLKG 88
@@ -12810,10 +13302,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14522|HBA_TURME Hemoglobin subunit alpha-A OS=Turdus merula GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 153.2 0.2 3.4e-46 1.6e-43 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 153.2 0.3 3.5e-46 1.7e-43 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 153.2 bits; conditional E-value: 3.4e-46
+ == domain 1 score: 153.2 bits; conditional E-value: 3.5e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt+vk++++k++ +++e+Ga+ L+r+f ++P+t+++F++F dL k+sa+vk+Hgkkv+ Al +a + +d ++ ++l++L
sp|P14522|HBA_TURME 1 VLSAADKTNVKSAFSKIGGQADEYGAETLERMFATYPQTKTYFPHF-DLG-----KGSAQVKAHGKKVAAALVEAANAVD-DIAGALSKL 83
@@ -12827,10 +13319,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14261|HBE_CAIMO Hemoglobin subunit epsilon OS=Cairina moschata GN=HBE PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 153.0 0.0 3.9e-46 1.8e-43 2 149 .] 3 147 .] 2 147 .] 0.99
+ 1 ! 153.0 0.0 4e-46 2e-43 2 149 .] 3 147 .] 2 147 .] 0.99
Alignments for each domain:
- == domain 1 score: 153.0 bits; conditional E-value: 3.9e-46
+ == domain 1 score: 153.0 bits; conditional E-value: 4e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ s++ek+ ++ +W+kv +vee Ga++L rl+ ++P+tq+fF +F++Ls + ++ ++++v Hg+k + +++ +++ld ++++++++L
sp|P14261|HBE_CAIMO 3 HWSAEEKQLITGLWGKV--NVEECGAEALARLLIVYPWTQRFFSSFGNLSSPTAIIGNPKVPPHGRKFFTSFGEPVKNLD-NIKNTYAKL 89
@@ -12844,10 +13336,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q10733|HBB_CARCR Hemoglobin subunit beta OS=Caretta caretta GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 152.2 0.4 6.8e-46 3.2e-43 3 149 .] 3 146 .] 1 146 [] 0.98
+ 1 ! 152.2 0.6 7e-46 3.4e-43 3 149 .] 3 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 152.2 bits; conditional E-value: 6.8e-46
+ == domain 1 score: 152.2 bits; conditional E-value: 7e-46
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e+ ++++W k+ +v+e G++ L r++ ++P+tq+fF F++L+ + +++ + ++++Hgkkvl+ ++ a++++d +++ +++dLs
sp|Q10733|HBB_CARCR 3 WTAEERHYITSMWDKI--NVAEIGGESLARMLIVYPWTQKFFSDFGNLTSSSAIMHNVKIQEHGKKVLNSFGSAVKNMD-HIKETFADLS 89
@@ -12861,10 +13353,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01982|HBA_RHEAM Hemoglobin subunit alpha-A OS=Rhea americana GN=HBAA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 152.2 0.1 6.9e-46 3.2e-43 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 152.2 0.2 7.1e-46 3.5e-43 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 152.2 bits; conditional E-value: 6.9e-46
+ == domain 1 score: 152.2 bits; conditional E-value: 7.1e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +kt+vk+v+ak++ +++ +Ga+ L+r+f+++P+t+++F++F dL+ ++sa++k+Hgkkv+ Al da +++d ++ ++l++L
sp|P01982|HBA_RHEAM 1 VLSGPDKTNVKNVFAKIGGHADAYGAETLERMFTTYPQTKTYFPHF-DLH-----HGSAQIKTHGKKVVSALIDAANNID-DIYGALSKL 83
@@ -12878,10 +13370,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08422|HBA3_XENTR Hemoglobin subunit alpha-3 OS=Xenopus tropicalis GN=hba-l8 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 151.8 1.0 9.2e-46 4.3e-43 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 151.8 1.4 9.5e-46 4.6e-43 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 151.8 bits; conditional E-value: 9.2e-46
+ == domain 1 score: 151.8 bits; conditional E-value: 9.5e-46
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+L++ ek +v a+W+k+ ++ Ga++L+rlf+s+P+t+++F +F d+s ++sad+++Hg kv++Al++a ++l+ +l+a+l++
sp|P08422|HBA3_XENTR 2 TLTDSEKAAVVALWSKIAPQASAIGAEALERLFLSYPQTKTYFSHF-DVS-----HGSADLQNHGGKVVNALGEAAKHLN-DLDAALST 83
@@ -12892,13 +13384,13 @@ Domain annotation for each sequence (and alignments):
sp|P08422|HBA3_XENTR 84 LSDLHAYNLRVDPGNFKLLSHTIQVTLAVHFQKEFDAATQAAWDKFLSEVATVLTSKYR 142
**********************************************************7 PP
->> sp|P11896|HBA3_PLEWA Hemoglobin larval subunit alpha OS=Pleurodeles waltlii PE=2 SV=1
+>> sp|P11896|HBA3_PLEWA Hemoglobin larval subunit alpha OS=Pleurodeles waltl PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 151.3 0.0 1.3e-45 6.1e-43 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 151.3 0.0 1.3e-45 6.6e-43 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 151.3 bits; conditional E-value: 1.3e-45
+ == domain 1 score: 151.3 bits; conditional E-value: 1.3e-45
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs++ek v + +k+ + + G+++L rlf s+ +t+++F +F dLs +sadvk Hg kvl A+++a +++d ++++l++
sp|P11896|HBA3_PLEWA 2 VLSAEEKALVVGLCGKISGHCDALGGEALDRLFASFGQTRTYFSHF-DLS-----PGSADVKRHGGKVLSAIGEAAKHID-SMDQALSK 83
@@ -12912,10 +13404,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06637|HBA4_XENLA Hemoglobin subunit alpha-4 OS=Xenopus laevis GN=hba4 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 151.0 0.5 1.6e-45 7.4e-43 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 151.0 0.8 1.7e-45 8e-43 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 151.0 bits; conditional E-value: 1.6e-45
+ == domain 1 score: 151.0 bits; conditional E-value: 1.7e-45
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+L++ +k ++ a+W+k+ ++ Ga++L+rlf+s+P+t+++F +F d+s ++sad+ +Hg kv++Al++a +++d +l+++l++
sp|P06637|HBA4_XENLA 2 TLTDSDKAAIVALWGKIAPQASAIGAEALERLFLSYPQTKTYFSHF-DVS-----HGSADLSNHGGKVVNALGEAAKHID-DLDSALST 83
@@ -12929,10 +13421,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84203|HBAC_GYMUN Hemoglobin cathodic subunit alpha OS=Gymnothorax unicolor PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 150.0 0.0 3.3e-45 1.5e-42 3 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 150.0 0.0 3.4e-45 1.7e-42 3 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 150.0 bits; conditional E-value: 3.3e-45
+ == domain 1 score: 150.0 bits; conditional E-value: 3.4e-45
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvl.dAlsdalakldekleaklkd 90
L++++kt vk+ W kv+ +++e G+++L r++ ++P t+ +F ++ dL +s+ vkkHgkk++ +A+sd + k+d +l + l++
sp|P84203|HBAC_GYMUN 2 LAPGDKTVVKKFWEKVGGQADEIGGEALSRMIAVYPPTRIYFSHWPDLA-----PGSPSVKKHGKKIImKAVSDSVGKMD-NLVGGLSA 84
@@ -12946,10 +13438,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14523|HBAD_TURME Hemoglobin subunit alpha-D OS=Turdus merula GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 149.8 0.1 3.8e-45 1.8e-42 2 149 .] 1 141 [] 1 141 [] 0.98
+ 1 ! 149.8 0.1 4e-45 1.9e-42 2 149 .] 1 141 [] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 149.8 bits; conditional E-value: 3.8e-45
+ == domain 1 score: 149.8 bits; conditional E-value: 4e-45
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL+ ++k++v+++W+ e+ Ga++L r+f+s+P t+++F++F d++ ++s++++ Hgkk + Al++a++++d +l+++l++
sp|P14523|HBAD_TURME 1 VLTGEDKKHVQHIWGLLSGAEEDLGAEVLYRMFQSYPPTKTYFPHF-DVT-----QGSEQIRGHGKKFMAALGNAVKNVD-NLSQALSE 82
@@ -12960,30 +13452,30 @@ Domain annotation for each sequence (and alignments):
sp|P14523|HBAD_TURME 83 LSNLHAYNLRVDPVNFKFLSQCLQVALAARLGKEYSPEVHSAVDKFMAAVAAVLAEKYR 141
**********************************************************7 PP
->> sp|P02011|HBA3_RANCA Hemoglobin subunit alpha-3 OS=Rana catesbeiana PE=1 SV=1
+>> sp|P02011|HBA3_LITCT Hemoglobin subunit alpha-3 OS=Lithobates catesbeiana PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 149.5 0.0 4.7e-45 2.2e-42 3 149 .] 2 141 .] 1 141 [] 0.99
+ 1 ! 149.5 0.0 4.8e-45 2.3e-42 3 149 .] 2 141 .] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 149.5 bits; conditional E-value: 4.7e-45
+ == domain 1 score: 149.5 bits; conditional E-value: 4.8e-45
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+ ek +v+++ +k++++ G ++L+rlf+s+P+t+++F++F dL+ +sad+ +Hg k+++Al+ a ++ld +l ++l++L
- sp|P02011|HBA3_RANCA 2 LSASEKAAVLSIVGKIGSQGSALGSEALTRLFLSFPQTKTYFPHF-DLT-----PGSADLNTHGGKIINALAGAANHLD-DLAGNLSSL 83
+ sp|P02011|HBA3_LITCT 2 LSASEKAAVLSIVGKIGSQGSALGSEALTRLFLSFPQTKTYFPHF-DLT-----PGSADLNTHGGKIINALAGAANHLD-DLAGNLSSL 83
9********************************************.999.....9***********************9.9******** PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa +l+vdp +f ll++++ +vla+++p++fta+vqaa +K+lalv+ +l+skY+
- sp|P02011|HBA3_RANCA 84 SDLHAYNLRVDPGNFPLLAHIIQVVLATHFPGDFTAEVQAAWDKFLALVSAVLTSKYR 141
+ sp|P02011|HBA3_LITCT 84 SDLHAYNLRVDPGNFPLLAHIIQVVLATHFPGDFTAEVQAAWDKFLALVSAVLTSKYR 141
*********************************************************7 PP
>> sp|Q9PVU6|HBAE_ORYLA Hemoglobin embryonic subunit alpha OS=Oryzias latipes PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 149.1 0.3 6.2e-45 2.9e-42 2 149 .] 3 144 .] 2 144 .] 0.99
+ 1 ! 149.1 0.4 6.4e-45 3.1e-42 2 149 .] 3 144 .] 2 144 .] 0.99
Alignments for each domain:
- == domain 1 score: 149.1 bits; conditional E-value: 6.2e-45
+ == domain 1 score: 149.1 bits; conditional E-value: 6.4e-45
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls+++k vka Wak+ +++ + Gad+L r+++++P+t+++F ++kdLs +sa vkkHg++v++ +++a+ k+d +l a l +
sp|Q9PVU6|HBAE_ORYLA 3 SLSAKDKDVVKAFWAKISSKATDIGADALGRMLVVYPQTKTYFAHWKDLS-----PGSAPVKKHGQTVMGGVAEAVGKID-NLTAGLLN 85
@@ -12997,10 +13489,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01996|HBA_ARAAR Hemoglobin subunit alpha-A OS=Ara ararauna GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 148.9 0.1 7.4e-45 3.4e-42 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 148.9 0.2 7.6e-45 3.7e-42 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 148.9 bits; conditional E-value: 7.4e-45
+ == domain 1 score: 148.9 bits; conditional E-value: 7.6e-45
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +kt+vk +++k++ ++e++Ga++L+r+f ++P+t+++F++F d+s +sa+vk+Hgkkv+ Al +a +++d ++ ++l++L
sp|P01996|HBA_ARAAR 2 VLSGSDKTNVKGIFSKIGGQAEDYGAEALERMFATFPQTKTYFPHF-DVS-----PGSAQVKAHGKKVAAALVEAANHID-DIATALSKL 84
@@ -13014,10 +13506,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02133|HBB2_XENLA Hemoglobin subunit beta-2 OS=Xenopus laevis GN=hbb2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 148.9 0.1 7.5e-45 3.5e-42 2 148 .. 3 146 .. 2 147 .] 0.97
+ 1 ! 148.9 0.2 7.7e-45 3.8e-42 2 148 .. 3 146 .. 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 148.9 bits; conditional E-value: 7.5e-45
+ == domain 1 score: 148.9 bits; conditional E-value: 7.7e-45
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek ++++vW kv +ve G d+L rl+ ++P+tq++F +F++Ls ++++ ++a+v++Hgkkvl A+++a+ ++d ++++l++
sp|P02133|HBB2_XENLA 3 HWTAEEKAAITSVWQKV--NVEHDGHDALGRLLIVYPWTQRYFSNFGNLSNSAAVAGNAKVQAHGKKVLSAVGNAISHID-SVKSSLQQ 88
@@ -13031,10 +13523,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C0U6|HBA_DRYCE Hemoglobin subunit alpha-A OS=Drymarchon corais erebennus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 148.3 0.0 1.1e-44 5.1e-42 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 148.3 0.0 1.1e-44 5.5e-42 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 148.3 bits; conditional E-value: 1.1e-44
+ == domain 1 score: 148.3 bits; conditional E-value: 1.1e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vL+e++k++v+a+W++v ++e +Ga+ L+rlf+++Pat+++F +F dLs +s ++k+Hgkkv+dA+++a+++ld ++ ++l++L
sp|P0C0U6|HBA_DRYCE 1 VLTEEDKSRVRAAWGPVSKNAELYGAETLTRLFTAYPATKTYFHHF-DLS-----PGSSNLKTHGKKVIDAITEAVNNLD-DVAGALSKL 83
@@ -13048,10 +13540,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P01984|HBA_PHORU Hemoglobin subunit alpha-A OS=Phoenicopterus ruber ruber GN=HBAA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 148.2 0.5 1.2e-44 5.6e-42 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 148.2 0.7 1.2e-44 6.1e-42 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 148.2 bits; conditional E-value: 1.2e-44
+ == domain 1 score: 148.2 bits; conditional E-value: 1.2e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +k++vk +++kv+ + ee+ a+ L r+f ++P+t+++F++F dL+ +sa+vk+Hgkkv++Al++a +++d ++ ++l++L
sp|P01984|HBA_PHORU 1 VLSSHDKSNVKGLFGKVGGHLEEYCAETLARMFAAYPQTKTYFPHF-DLQ-----PGSAQVKAHGKKVAGALAEAANHID-DIASALSKL 83
@@ -13065,10 +13557,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P82316|HBBC_HOPLI Hemoglobin cathodic subunit beta OS=Hoplosternum littorale GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 148.0 0.0 1.4e-44 6.4e-42 1 148 [. 1 145 [. 1 146 [] 0.99
+ 1 ! 148.0 0.0 1.4e-44 7e-42 1 148 [. 1 145 [. 1 146 [] 0.99
Alignments for each domain:
- == domain 1 score: 148.0 bits; conditional E-value: 1.4e-44
+ == domain 1 score: 148.0 bits; conditional E-value: 1.4e-44
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+ s+ae+ ++ a+W+k+ +++e G + L r++ ++P+tq++F kF+d+s +++ ++++v +Hgk vl+Al++++++ld +++a+++
sp|P82316|HBBC_HOPLI 1 VHFSDAERDAIAAIWGKI--HIDEIGPQSLARVLIVYPWTQRYFSKFGDMSSVAAISGNPKVAAHGKVVLGALEKGVKNLD-NVKATYS 86
@@ -13082,10 +13574,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83270|HBA1_ANAMI Hemoglobin subunit alpha-1 OS=Anarhichas minor GN=hba1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 147.8 0.3 1.6e-44 7.5e-42 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 147.8 0.4 1.7e-44 8.2e-42 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 147.8 bits; conditional E-value: 1.6e-44
+ == domain 1 score: 147.8 bits; conditional E-value: 1.7e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++++k +v+a Wak +++e G d+L r+++++P+t+++F ++kdLs +s+ vkkHgk v++ ++da+ k++ +l+a l +
sp|P83270|HBA1_ANAMI 2 SLTAKDKDTVRAFWAKASGKAAEIGSDALSRMLVVYPQTKTYFSHWKDLS-----PGSEPVKKHGKSVMGGVADAVMKIE-DLNAGLLN 84
@@ -13099,10 +13591,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19831|HBA_PSIKR Hemoglobin subunit alpha OS=Psittacula krameri GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 147.3 0.0 2.2e-44 1e-41 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 147.3 0.1 2.3e-44 1.1e-41 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 147.3 bits; conditional E-value: 2.2e-44
+ == domain 1 score: 147.3 bits; conditional E-value: 2.3e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs +kt+vk++++k++ +++++Ga++L+r+f+++P+t+++F++F d+s +sa+vk+Hgkkv++ ls+a +++d ++ ++l++L
sp|P19831|HBA_PSIKR 1 VLSGTDKTNVKSIFSKIGGQADDYGAEALERMFVTYPQTKTYFPHF-DVS-----PGSAQVKAHGKKVAGGLSEAANHID-DIATSLSKL 83
@@ -13116,10 +13608,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02018|HBA_CARAU Hemoglobin subunit alpha OS=Carassius auratus GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 147.4 0.0 2.2e-44 1e-41 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 147.4 0.0 2.3e-44 1.1e-41 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 147.4 bits; conditional E-value: 2.2e-44
+ == domain 1 score: 147.4 bits; conditional E-value: 2.3e-44
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+++k vka+Wak+++ ++e Ga++L r+++++P+t+++F ++ dLs +s vkkHgk++++A++da+ k+d +l ++l++Ls
sp|P02018|HBA_CARAU 2 LSDKDKAVVKALWAKIGSRADEIGAEALGRMLTVYPQTKTYFSHWSDLS-----PGSGPVKKHGKTIMGAVGDAVSKID-DLVGALSALS 85
@@ -13133,10 +13625,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80727|HBBC_ANGAN Hemoglobin cathodic subunit beta OS=Anguilla anguilla GN=hbb2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 147.1 0.0 2.6e-44 1.2e-41 3 148 .. 3 145 .. 1 146 [] 0.98
+ 1 ! 147.1 0.0 2.7e-44 1.3e-41 3 148 .. 3 145 .. 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 147.1 bits; conditional E-value: 2.6e-44
+ == domain 1 score: 147.1 bits; conditional E-value: 2.7e-44
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
s+ e+++++++W+k+ +v+e G ++L r++ ++P+tq++F kF+dLs +++++++a+v +Hgk vl+Al++a++++d ++++++++L
sp|P80727|HBBC_ANGAN 3 WSASERSTITSLWGKI--NVAEIGPQALARVLIVYPWTQRYFGKFGDLSNAAAIQGNAKVAAHGKVVLGALEKAVKNMD-DVKGTYSKL 88
@@ -13150,10 +13642,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11748|HBA_THUTH Hemoglobin subunit alpha OS=Thunnus thynnus GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 147.0 0.0 2.9e-44 1.3e-41 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 147.0 0.1 3e-44 1.4e-41 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 147.0 bits; conditional E-value: 2.9e-44
+ == domain 1 score: 147.0 bits; conditional E-value: 3e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Ls+++k++vka+W+k+ ++ Gad+L r++ ++P+t+++F ++ d+s +s vk+Hgkkv++ ++ a+ k+d +l + l dL
sp|P11748|HBA_THUTH 2 TLSDKDKSTVKALWGKISKSADAIGADALGRMLAVYPQTKTYFSHWPDMS-----PGSGPVKAHGKKVMGGVALAVTKID-DLTTGLGDL 85
@@ -13167,10 +13659,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9PRL9|HBA1_NAJNA Hemoglobin subunit alpha-1 OS=Naja naja PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 146.4 0.0 4.2e-44 2e-41 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 146.4 0.0 4.4e-44 2.1e-41 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 146.4 bits; conditional E-value: 4.2e-44
+ == domain 1 score: 146.4 bits; conditional E-value: 4.4e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL++++k +v+a W +v+ ++e +G + L+r+f ++P+t+++F++F dLs +s+++++Hgkkv+dA+++a+++ld ++ ++l++
sp|Q9PRL9|HBA1_NAJNA 1 VLTDEDKARVRASWVPVGKNAELYGSETLTRMFAAHPTTKTYFPHF-DLS-----PGSNNLRAHGKKVIDAITEAVNNLD-DVAGTLSK 82
@@ -13184,10 +13676,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02142|HBB1_ONCMY Hemoglobin subunit beta-1 OS=Oncorhynchus mykiss GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 146.1 0.0 5.5e-44 2.5e-41 4 148 .. 4 145 .. 1 146 [] 0.98
+ 1 ! 146.1 0.0 5.7e-44 2.8e-41 4 148 .. 4 145 .. 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 146.1 bits; conditional E-value: 5.5e-44
+ == domain 1 score: 146.1 bits; conditional E-value: 5.7e-44
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++aek+++ avW+kv +++e G +L r++ ++P+tq++F +F+++st+++++++++v +Hgk v +Al +a++++ ++ a++k+Ls
sp|P02142|HBB1_ONCMY 4 TDAEKSTISAVWGKV--NIDEIGPLALARVLIVYPWTQRYFGSFGNVSTPAAIMGNPKVAAHGKVVCGALDKAVKNMG-NILATYKSLS 89
@@ -13201,10 +13693,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q90487|HBA_DANRE Hemoglobin subunit alpha OS=Danio rerio GN=hbaa1 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 145.4 0.1 9e-44 4.1e-41 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 145.4 0.1 9.2e-44 4.5e-41 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 145.4 bits; conditional E-value: 9e-44
+ == domain 1 score: 145.4 bits; conditional E-value: 9.2e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+ +k vka+Wak+ +++e Ga++L r+++++P+t+++F ++ dLs +s vkkHgk++++A+++a+ k+d +l + l++L
sp|Q90487|HBA_DANRE 2 SLSDTDKAVVKAIWAKISPKADEIGAEALARMLTVYPQTKTYFSHWADLS-----PGSGPVKKHGKTIMGAVGEAISKID-DLVGGLAAL 85
@@ -13218,10 +13710,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10062|HBAD_SPHPU Hemoglobin subunit alpha-D OS=Sphenodon punctatus GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 145.3 0.1 9.6e-44 4.4e-41 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 145.3 0.1 9.9e-44 4.8e-41 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 145.3 bits; conditional E-value: 9.6e-44
+ == domain 1 score: 145.3 bits; conditional E-value: 9.9e-44
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL+ ++ + +++ W kv + e+ Ga++L+r+f ++P+t+++F++F dL+ ++s+++++Hg+kv++Al++a++++d +++++ +
sp|P10062|HBAD_SPHPU 1 VLTHEDCELLQQTWEKVLGHQEDFGAEALERMFITYPQTKTYFPHF-DLH-----HGSEQIRNHGRKVVNALGEAVKNMD-HMSTASGE 82
@@ -13235,10 +13727,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18974|HBA1_IGUIG Hemoglobin subunit alpha-1 OS=Iguana iguana PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 144.2 0.3 2.1e-43 9.7e-41 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 144.2 0.5 2.2e-43 1.1e-40 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 144.2 bits; conditional E-value: 2.1e-43
+ == domain 1 score: 144.2 bits; conditional E-value: 2.2e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL+e++k++++a+W+ v+ + e G+++L+rlf+++Pat+++F +F dL+ +sa++k+Hgkkv+dAl++a+++ld +++ +l++
sp|P18974|HBA1_IGUIG 1 VLTEDDKNHIRAIWGHVDNNPEAFGVEALTRLFLAYPATKTYFAHF-DLN-----PGSAQIKAHGKKVVDALTQAVNNLD-DIPDALAK 82
@@ -13252,10 +13744,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83271|HBA2_ANAMI Hemoglobin subunit alpha-2 OS=Anarhichas minor GN=hba2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 143.9 0.2 2.5e-43 1.1e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 143.9 0.3 2.6e-43 1.2e-40 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 143.9 bits; conditional E-value: 2.5e-43
+ == domain 1 score: 143.9 bits; conditional E-value: 2.6e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L+e++k +v a+W+k++ ++ Gad+L r+++++P+t+++F ++ dLs +sa vk+Hgk+v+ ++ a+ k+d ++ + l +
sp|P83271|HBA2_ANAMI 2 SLTEKDKAAVIAMWGKIHKSADAIGADALGRMLVVYPQTKTYFSHWSDLS-----PNSAPVKTHGKNVMSGVALAVSKID-DMTKGLMA 84
@@ -13269,10 +13761,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29624|HBA1_NOTAN Hemoglobin subunit alpha-1 OS=Notothenia angustata GN=hba1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 143.8 0.1 2.7e-43 1.2e-40 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 143.8 0.1 2.8e-43 1.4e-40 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 143.8 bits; conditional E-value: 2.7e-43
+ == domain 1 score: 143.8 bits; conditional E-value: 2.8e-43
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k +v+a+W+k++ ++ G+d+L r+++++P+t+++F ++ d++ +sa++k+Hgkkv++ ++ a+ k+d +l+a l+dL
sp|P29624|HBA1_NOTAN 2 LSDKDKAAVRALWSKIGKSADAIGNDALSRMIVVYPQTKTYFSHWPDVT-----PGSAHIKAHGKKVMGGIALAVSKID-DLKAGLSDL 84
@@ -13286,10 +13778,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83478|HBBC_CONCO Hemoglobin cathodic subunit beta OS=Conger conger PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 143.6 0.0 3e-43 1.4e-40 3 148 .. 3 145 .. 1 146 [] 0.98
+ 1 ! 143.6 0.0 3.1e-43 1.5e-40 3 148 .. 3 145 .. 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 143.6 bits; conditional E-value: 3e-43
+ == domain 1 score: 143.6 bits; conditional E-value: 3.1e-43
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
s e++++ ++W+k+ +v+e G ++L r++ ++P+tq++F kF+dLs +++ ++a+ kHg++vl+Al++a++++d ++++++++L
sp|P83478|HBBC_CONCO 3 WSSSERSTISTLWGKI--NVAEIGPQALARVLIVYPWTQRYFGKFGDLSSVAAIVGNANGAKHGRTVLQALGQAVNNMD-NIKGTYAKL 88
@@ -13303,10 +13795,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZC2|HBB1_MURHE Hemoglobin subunit beta-1 OS=Muraena helena GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 143.2 0.0 4.1e-43 1.9e-40 4 148 .. 4 145 .. 1 146 [] 0.98
+ 1 ! 143.2 0.0 4.2e-43 2.1e-40 4 148 .. 4 145 .. 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 143.2 bits; conditional E-value: 4.1e-43
+ == domain 1 score: 143.2 bits; conditional E-value: 4.2e-43
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s +e+++++++W+k+ + +e G+ +L r++ ++P+tq++F +F+dLs +++ ++++v +Hgk vld +++a+++ld ++a++ +Ls
sp|Q7LZC2|HBB1_MURHE 4 SSNERSTITSLWGKI--NNAEIGQVALARVLIVYPWTQRYFGQFGDLSSIAAISGNPKVAAHGKVVLDGVEKAVKNLD-SIKATYTKLS 89
@@ -13320,10 +13812,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23740|HBA_LATCH Hemoglobin subunit alpha OS=Latimeria chalumnae GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 143.2 1.2 4.2e-43 1.9e-40 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 143.2 1.8 4.3e-43 2.1e-40 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 143.2 bits; conditional E-value: 4.2e-43
+ == domain 1 score: 143.2 bits; conditional E-value: 4.3e-43
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L++a+kt +k++W+kve + e G+++Lvrlfk +P+++ +F++F dLs +s+++++H+k vl+Al++a+++ld ++ +l+d+s
sp|P23740|HBA_LATCH 2 LTAADKTLIKSIWGKVEKETEAIGVEALVRLFKCFPQSKVYFDHFTDLS-----PSSQKLHAHAKVVLGALTKAVNHLD-NITDTLHDIS 85
@@ -13334,13 +13826,30 @@ Domain annotation for each sequence (and alignments):
sp|P23740|HBA_LATCH 86 LVHAKKLLVDPVNFELLGHCLEVALAAHFATDFTPEVHLAIDKFLYEVEKALFETYR 142
****************************************************99996 PP
+>> sp|P86882|HBA_LYCRE Hemoglobin subunit alpha OS=Lycodes reticulatus GN=hba PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 143.2 0.2 4.4e-43 2.1e-40 3 149 .] 2 142 .] 1 142 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 143.2 bits; conditional E-value: 4.4e-43
+ globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+ Ls+++k +vka+W k+ ++ Gad++ r+++++P+t+++F ++ dLs +sa vk+Hgk+v++ ++ a+ ++d ++ + lk+Ls
+ sp|P86882|HBA_LYCRE 2 LSDKDKAAVKAIWNKISKSADVIGADAMGRMLVVYPQTKTYFSHWSDLS-----PNSAPVKNHGKTVMTGVALAVSNID-DMTTGLKALS 85
+ 99***********************************************.....89**********************9.********** PP
+
+ globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ e+Ha +l+vdp +fk+ls+++++v+a +pk+ft++++ +++K++ ++ +la+kY+
+ sp|P86882|HBA_LYCRE 86 EKHAFQLRVDPSNFKILSHCILVVIAMMYPKDFTPEAHVSMDKFFCGLSLALAEKYR 142
+ ********************************************************7 PP
+
>> sp|P0C238|HBA_POGSC Hemoglobin subunit alpha OS=Pogonophryne scotti GN=hba PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 143.2 0.4 4.3e-43 2e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 143.2 0.6 4.4e-43 2.2e-40 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 143.2 bits; conditional E-value: 4.3e-43
+ == domain 1 score: 143.2 bits; conditional E-value: 4.4e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k++vka+W+k++ ++ G+d++ r+++++P+t+++F ++ dL+ +s ++k+Hgkkv++ ++ a+ k+d +l+a l++L
sp|P0C238|HBA_POGSC 2 SLSDKDKSAVKALWSKINKSADVIGNDAVSRMIVVYPQTKTYFAHWPDLT-----PGSTHIKAHGKKVMGGIALAVSKID-DLKAGLSNL 85
@@ -13354,10 +13863,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P41331|HBA_MICGA Hemoglobin subunit alpha OS=Microcephalophis gracilis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.9 0.0 5.3e-43 2.5e-40 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 142.9 0.0 5.5e-43 2.7e-40 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 142.9 bits; conditional E-value: 5.3e-43
+ == domain 1 score: 142.9 bits; conditional E-value: 5.5e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vL+e++k +v+ +W +v ++e +Ga+ L+rlf ++P+t+++F++F dLs +s+d+k Hgkkv+dAl++a+++ld ++ ++l++L
sp|P41331|HBA_MICGA 1 VLTEEDKARVRVAWVPVSKNAELYGAETLTRLFAAHPTTKTYFPHF-DLS-----PGSNDLKVHGKKVIDALTEAVNNLD-DVAGALSKL 83
@@ -13371,10 +13880,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83479|HBAC_CONCO Hemoglobin cathodic subunit alpha OS=Conger conger PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.7 0.1 5.9e-43 2.7e-40 2 149 .] 2 143 .] 1 143 [] 0.97
+ 1 ! 142.7 0.2 6e-43 2.9e-40 2 149 .] 2 143 .] 1 143 [] 0.97
Alignments for each domain:
- == domain 1 score: 142.7 bits; conditional E-value: 5.9e-43
+ == domain 1 score: 142.7 bits; conditional E-value: 6e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++++kt vk+ W+kv+ +++ +Ga++L r+++++P+t+++F ++ d+ +s+ vk+ k++++A++da+ k+d +l + l++
sp|P83479|HBAC_CONCO 2 SLTAKDKTLVKTFWGKVKGKADAMGAEALGRMLVVYPQTKTYFAHWS-----DQSPGSEPVKHGKKTIMGAVGDAVGKID-NLLGGLSA 84
@@ -13388,10 +13897,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11251|HBA_SALSA Hemoglobin subunit alpha OS=Salmo salar GN=hba PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.6 0.0 6.5e-43 3e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 142.6 0.0 6.7e-43 3.3e-40 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 142.6 bits; conditional E-value: 6.5e-43
+ == domain 1 score: 142.6 bits; conditional E-value: 6.7e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ +k+ v+a W+k++ +++ +Ga++L r+++++P+t+++F ++ dLs +sa vkkHg +++A+++a+ +d +l + ++ L
sp|P11251|HBA_SALSA 2 SLTARDKSVVNAFWGKIKGKADVVGAEALGRMLTAYPQTKTYFSHWADLS-----PGSAPVKKHGGVIMGAIGNAVGLMD-DLVGGMSGL 85
@@ -13405,10 +13914,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C237|HBA_ARTOR Hemoglobin subunit alpha OS=Artedidraco orianae GN=hba PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.5 0.3 6.9e-43 3.2e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 142.5 0.5 7.1e-43 3.5e-40 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 142.5 bits; conditional E-value: 6.9e-43
+ == domain 1 score: 142.5 bits; conditional E-value: 7.1e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k +vka+W+k+ ++ G+d++ r+++++P+t+++F ++ dL+ +s ++k+Hgkkv++ ++ a+ k+d +l+a l+dL
sp|P0C237|HBA_ARTOR 2 SLSDKDKAAVKALWSKIAKSADVIGNDAVSRMIVVYPQTKTYFAHWPDLT-----PGSTNIKAHGKKVMGGIALAVSKID-DLKAGLSDL 85
@@ -13422,10 +13931,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83613|HBA2_GOBGI Hemoglobin subunit alpha-2 OS=Gobionotothen gibberifrons GN=hba2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.4 0.1 7.5e-43 3.5e-40 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 142.4 0.1 7.7e-43 3.8e-40 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 142.4 bits; conditional E-value: 7.5e-43
+ == domain 1 score: 142.4 bits; conditional E-value: 7.7e-43
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++k++vka W+kv + ++ G+d+L r+++++P+t+++F ++k+L+ +sa v+kHg +v++ ++da+ k++ +l a l +L
sp|P83613|HBA2_GOBGI 2 LSTKDKETVKAFWSKVSGKSADIGNDALSRMLVVYPQTKTYFSHWKELT-----PGSAPVRKHGMTVMKGVGDAVSKIE-DLTAGLMEL 84
@@ -13439,10 +13948,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84653|HBA1_COTGO Hemoglobin subunit alpha-1 OS=Cottoperca gobio GN=hba1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.0 0.0 9.5e-43 4.4e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 142.0 0.1 9.8e-43 4.8e-40 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 142.0 bits; conditional E-value: 9.5e-43
+ == domain 1 score: 142.0 bits; conditional E-value: 9.8e-43
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L+e++k +v+a+W+k+ ++ Gad+L r++ ++P+t+++F ++ dLs +s +vkkHgk+v++ ++ a+ k+d +l + l +
sp|P84653|HBA1_COTGO 2 SLTEKDKAAVRALWGKISKSADAIGADALSRMLFVYPQTKTYFTHWPDLS-----PGSVHVKKHGKNVMGGIALAVSKID-DLTNGLME 84
@@ -13456,10 +13965,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9PVM2|HBBA_SERQU Hemoglobin subunit beta-A OS=Seriola quinqueradiata GN=hbb1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.0 0.0 9.5e-43 4.4e-40 4 149 .] 5 148 .] 2 148 .] 0.98
+ 1 ! 142.0 0.0 9.8e-43 4.8e-40 4 149 .] 5 148 .] 2 148 .] 0.98
Alignments for each domain:
- == domain 1 score: 142.0 bits; conditional E-value: 9.5e-43
+ == domain 1 score: 142.0 bits; conditional E-value: 9.8e-43
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ae+ ++ ++W+k+ dv+e G ++L+rl+ ++P+tq++F F+++st++++ ++++v +Hgk+v++ l++a+++ld ++++++++Ls
sp|Q9PVM2|HBBA_SERQU 5 TDAERAAISSLWGKI--DVGEIGPQALTRLLIVYPWTQRHFTTFGNVSTNAAILGNPKVAQHGKTVMGGLENAVKNLD-DIKNTYAKLS 90
@@ -13470,13 +13979,30 @@ Domain annotation for each sequence (and alignments):
sp|Q9PVM2|HBBA_SERQU 91 QMHSEKLHVDPDNFRTLAECISVCVAAKFGKQvFTADVQEAWQKFLSVVVSALGRQYH 148
******************************9779*******************99997 PP
+>> sp|P85083|HBA2_COTGO Hemoglobin subunit alpha-2 OS=Cottoperca gobio GN=hba2 PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 142.0 0.0 1e-42 4.9e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+
+ Alignments for each domain:
+ == domain 1 score: 142.0 bits; conditional E-value: 1e-42
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ Ls ++k +v+a W+kv +++++ G+d+L r+++++P+t+++F ++k+L +s+ v+kHg +v++ +++a+ak+d +l a l +
+ sp|P85083|HBA2_COTGO 2 SLSTKDKDTVTAFWGKVSCKAGDIGTDALSRMLVVYPQTKTYFSHWKELG-----PGSPPVQKHGMTVMKGVGEAVAKID-DLTAGLLN 84
+ 59************************************************.....9***********************9.9******* PP
+
+ globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+ LselHa l+vdp +fk+ls+ +++v a +p++ft++v+ +++K+la +a++l++kY+
+ sp|P85083|HBA2_COTGO 85 LSELHAFTLRVDPANFKILSHNILVVFAIMFPHDFTPEVHVSMDKFLAALARALSEKYR 143
+ **********************************************************7 PP
+
>> sp|P14520|HBA_ELEEL Hemoglobin subunit alpha OS=Electrophorus electricus GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 142.0 0.1 1e-42 4.6e-40 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 142.0 0.1 1e-42 5e-40 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 142.0 bits; conditional E-value: 1e-42
+ == domain 1 score: 142.0 bits; conditional E-value: 1e-42
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L+++ k+ vka W+k+++ +++ Ga++ r+++++P+t+++F ++ dLs +sa vkkHgk++++ +++a+ ++d +l + l++Ls
sp|P14520|HBA_ELEEL 2 LTAKSKSIVKAFWGKIGSRADDIGAEAFGRMLTVYPETKTYFASWSDLS-----PGSAAVKKHGKTIMGGIAEAVGHID-DLTGGLASLS 85
@@ -13490,10 +14016,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02010|HBA_VIPAS Hemoglobin subunit alpha OS=Vipera aspis GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 141.9 0.0 1e-42 4.7e-40 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 141.9 0.0 1.1e-42 5.1e-40 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 141.9 bits; conditional E-value: 1e-42
+ == domain 1 score: 141.9 bits; conditional E-value: 1.1e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLse++k++v++ +k +e+G + L+r+f ++P+t+++F++F dLs +s+++k+Hgkkv+dAl +a+ ld + a+l++L
sp|P02010|HBA_VIPAS 1 VLSEDDKNRVRTSVGKNPELPGEYGSETLTRMFAAHPTTKTYFPHF-DLS-----SGSPNLKAHGKKVIDALDNAVEGLD-DAVATLSKL 83
@@ -13507,10 +14033,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23741|HBB_LATCH Hemoglobin subunit beta OS=Latimeria chalumnae GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 141.7 1.0 1.2e-42 5.5e-40 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 141.7 1.5 1.2e-42 5.9e-40 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 141.7 bits; conditional E-value: 1.2e-42
+ == domain 1 score: 141.7 bits; conditional E-value: 1.2e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ +e e+ ++++v+ k + +e+G ++L+rlf ++P+t ++F++F+dLs + ++ ++++v +Hg kv++ l++a+ +ld +++ +++L
sp|P23741|HBB_LATCH 2 HWTETERATIETVYQKL--HLDEVGREALTRLFIVYPWTTRYFKSFGDLSSSKAIASNPKVTEHGLKVMNKLTEAIHNLD-HIKDLFHKL 88
@@ -13524,10 +14050,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P45719|HBA2_TRENE Hemoglobin subunit alpha-2 OS=Trematomus newnesi GN=hba2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 141.7 0.0 1.2e-42 5.7e-40 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 141.7 0.1 1.3e-42 6.2e-40 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 141.7 bits; conditional E-value: 1.2e-42
+ == domain 1 score: 141.7 bits; conditional E-value: 1.3e-42
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++k++vka W+kv + e+ G+d+L r+++++P+t+ +F ++k+L+ +sa v+kHg +v++ ++da+ k++ +l a l +L
sp|P45719|HBA2_TRENE 2 LSTKDKETVKAFWSKVSGKTEDIGNDALSRMLVVYPQTKIYFSHWKELT-----PGSAPVRKHGMTVMKGVGDAVSKIE-DLTAGLTEL 84
@@ -13541,10 +14067,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06890|HBAT_PONPY Hemoglobin subunit theta-1 OS=Pongo pygmaeus GN=HBQ1 PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 141.4 0.0 1.5e-42 7.1e-40 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 141.4 0.1 1.6e-42 7.7e-40 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 141.4 bits; conditional E-value: 1.5e-42
+ == domain 1 score: 141.4 bits; conditional E-value: 1.6e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls++++ v+a+W k +++v+ + +++L+r f+++Pat+++F + dLs +s +v++Hg+kv+dAls a+ +ld +l+ +l++
sp|P06890|HBAT_PONPY 2 ALSAEDRALVRALWKKLGSNVGVYTTEALERTFLAFPATKTYFSHL-DLS-----PGSSQVRAHGQKVADALSLAVERLD-DLPHALSA 83
@@ -13558,10 +14084,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P85081|HBA1_LIPTU Hemoglobin subunit alpha-1 OS=Liparis tunicatus GN=hba1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 141.1 0.0 1.9e-42 8.6e-40 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 141.1 0.0 1.9e-42 9.4e-40 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 141.1 bits; conditional E-value: 1.9e-42
+ == domain 1 score: 141.1 bits; conditional E-value: 1.9e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls ++k++vk +W+ + a ++ Gad+L rl++++P+t+ +F ++ dLs +s+ vk+Hgk+++ ++ a+ k+d +l++ l++
sp|P85081|HBA1_LIPTU 2 SLSTKDKETVKDLWGHISASADAIGADALGRLLVVYPQTKIYFLHWPDLS-----PNSPSVKNHGKNIMSGIALAVTKID-DLKSGLNA 84
@@ -13575,10 +14101,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9PVM1|HBBB_SERQU Hemoglobin subunit beta-B OS=Seriola quinqueradiata GN=hbb2 PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 141.0 0.0 2e-42 9e-40 4 149 .] 5 148 .] 2 148 .] 0.97
+ 1 ! 141.0 0.0 2e-42 9.8e-40 4 149 .] 5 148 .] 2 148 .] 0.97
Alignments for each domain:
- == domain 1 score: 141.0 bits; conditional E-value: 2e-42
+ == domain 1 score: 141.0 bits; conditional E-value: 2e-42
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ae+ +++++W+k+ dv+e G ++L+rl+ ++P+tq++F F+++st++++ ++++v +Hgk+v++ l++a+++ld ++++++++Ls
sp|Q9PVM1|HBBB_SERQU 5 TDAERAAITSLWGKI--DVGEIGPQALTRLLIVYPWTQRHFTTFGNVSTNAAILGNPKVAQHGKTVMGGLENAVKNLD-DIKNTYAKLS 90
@@ -13589,30 +14115,30 @@ Domain annotation for each sequence (and alignments):
sp|Q9PVM1|HBBB_SERQU 91 RMHSEKLHVDPDNFRALAECISVCVAAKFGKQaFTADVQEAWQKFLSAVVSALGRQYH 148
*****************************9855********************99997 PP
->> sp|P80043|HBA_PAGBE Hemoglobin subunit alpha OS=Pagothenia bernacchii GN=hba PE=1 SV=1
+>> sp|P80043|HBA_TREBE Hemoglobin subunit alpha OS=Trematomus bernacchii GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 140.8 0.0 2.2e-42 1e-39 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 140.8 0.1 2.3e-42 1.1e-39 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 140.8 bits; conditional E-value: 2.2e-42
+ == domain 1 score: 140.8 bits; conditional E-value: 2.3e-42
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+++k +v+a+W+k++ ++ G+d+L r+++++P+t+++F ++ d++ +s+++k+Hgkkv++ ++ a+ k+d +l++ l +Ls
- sp|P80043|HBA_PAGBE 2 LSDKDKAAVRALWSKIGKSADAIGNDALSRMIVVYPQTKTYFSHWPDVT-----PGSPHIKAHGKKVMGGIALAVSKID-DLKTGLMELS 85
+ sp|P80043|HBA_TREBE 2 LSDKDKAAVRALWSKIGKSADAIGNDALSRMIVVYPQTKTYFSHWPDVT-----PGSPHIKAHGKKVMGGIALAVSKID-DLKTGLMELS 85
99*******************************************8888.....9***********************9.9********* PP
globins4 93 elHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
e+Ha kl+vdp +fk+l +++++v+ + +pkeft++++ +l+K+l+ va +la++Y+
- sp|P80043|HBA_PAGBE 86 EQHAYKLRVDPANFKILNHCILVVISTMFPKEFTPEAHVSLDKFLSGVALALAERYR 142
+ sp|P80043|HBA_TREBE 86 EQHAYKLRVDPANFKILNHCILVVISTMFPKEFTPEAHVSLDKFLSGVALALAERYR 142
********************************************************6 PP
>> sp|P83114|HBB2_TELPE Hemoglobin subunit beta-2 OS=Telmatobius peruvianus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 140.8 0.2 2.4e-42 1.1e-39 1 149 [] 1 145 [] 1 145 [] 0.97
+ 1 ! 140.8 0.2 2.4e-42 1.2e-39 1 149 [] 1 145 [] 1 145 [] 0.97
Alignments for each domain:
- == domain 1 score: 140.8 bits; conditional E-value: 2.4e-42
+ == domain 1 score: 140.8 bits; conditional E-value: 2.4e-42
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L+++e + ++a+W+kv d++++G+++L rl+ ++P+tq++F F++L +d++ + +v +Hg+kvl +++al++ld +l++ ++
sp|P83114|HBB2_TELPE 1 VHLTDQEIKYINAIWSKV--DYKQVGGEALARLLIVYPWTQRYFSTFGNLASADAISHNSKVIAHGEKVLRSIGEALKHLD-NLKG-YA 85
@@ -13623,30 +14149,30 @@ Domain annotation for each sequence (and alignments):
sp|P83114|HBB2_TELPE 86 KLSQYHSEKLHVDPANFVRFGGVVVIVLAHHFHEEFTPEVQAAFEKAFGGVADAVGKGYH 145
9***************************************************99988886 PP
->> sp|P51465|HBAB_RANCA Hemoglobin subunit alpha-B OS=Rana catesbeiana PE=1 SV=2
+>> sp|P51465|HBAB_LITCT Hemoglobin subunit alpha-B OS=Lithobates catesbeiana PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 140.0 0.5 3.9e-42 1.8e-39 3 149 .] 3 142 .] 1 142 [] 0.97
+ 1 ! 140.0 0.8 4e-42 2e-39 3 149 .] 3 142 .] 1 142 [] 0.97
Alignments for each domain:
- == domain 1 score: 140.0 bits; conditional E-value: 3.9e-42
+ == domain 1 score: 140.0 bits; conditional E-value: 4e-42
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
s+ ++ ++++W k+ +ve G+++++rlfks+P+t+++F + +++ ++sa v++ g kvl+A++ a ++ld +l+ +l++L
- sp|P51465|HBAB_RANCA 3 FSASDRHDITHLWEKMAPNVEFLGEEAMERLFKSHPKTKTYFSHL-NVE-----HGSAAVRAQGAKVLNAIGHASKNLD-HLDEALSNL 84
+ sp|P51465|HBAB_LITCT 3 FSASDRHDITHLWEKMAPNVEFLGEEAMERLFKSHPKTKTYFSHL-NVE-----HGSAAVRAQGAKVLNAIGHASKNLD-HLDEALSNL 84
7999**************************************998.566.....9************************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s++Ha+ l+vdp +f+ll + +++vla ++p++ft+ ++aa++K+la v+++l skY+
- sp|P51465|HBAB_RANCA 85 SDKHAHDLRVDPGNFHLLCHNILVVLAIHFPEDFTPRAHAAFDKFLAAVSETLYSKYR 142
+ sp|P51465|HBAB_LITCT 85 SDKHAHDLRVDPGNFHLLCHNILVVLAIHFPEDFTPRAHAAFDKFLAAVSETLYSKYR 142
*********************************************************7 PP
>> sp|P09105|HBAT_HUMAN Hemoglobin subunit theta-1 OS=Homo sapiens GN=HBQ1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 139.5 0.0 5.6e-42 2.6e-39 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 139.5 0.1 5.8e-42 2.8e-39 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 139.5 bits; conditional E-value: 5.6e-42
+ == domain 1 score: 139.5 bits; conditional E-value: 5.8e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls++++ v+a+W k +++v+ + +++L+r f+++Pat+++F + dLs +s +v++Hg+kv+dAls a+ +ld +l+ +l++
sp|P09105|HBAT_HUMAN 2 ALSAEDRALVRALWKKLGSNVGVYTTEALERTFLAFPATKTYFSHL-DLS-----PGSSQVRAHGQKVADALSLAVERLD-DLPHALSA 83
@@ -13660,10 +14186,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P82315|HBAC_HOPLI Hemoglobin cathodic subunit alpha OS=Hoplosternum littorale PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 139.4 0.7 6.3e-42 2.9e-39 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 139.4 1.0 6.5e-42 3.2e-39 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 139.4 bits; conditional E-value: 6.3e-42
+ == domain 1 score: 139.4 bits; conditional E-value: 6.5e-42
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k vka ++k+ +++ +G ++Lvr+++++P+t+++F ++ dLs +s++vkkHgk+++ A+++a+ k+d +l + +++L
sp|P82315|HBAC_HOPLI 2 LTAKDKALVKAFFGKIAGKADAVGHEALVRMLVVYPQTKTYFAHWPDLS-----PSSEEVKKHGKTIMAAVKEAVGKID-DLVGGMAQL 84
@@ -13677,10 +14203,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07428|HBA_XENTR Hemoglobin subunit alpha OS=Xenopus tropicalis GN=hba-A PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 139.2 0.4 7.1e-42 3.3e-39 2 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 139.2 0.6 7.3e-42 3.6e-39 2 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 139.2 bits; conditional E-value: 7.1e-42
+ == domain 1 score: 139.2 bits; conditional E-value: 7.3e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+L++++k+++ka+W v a+ +++G+++L r+f+ P+t+++F+ F d s + s+++ +Hgkkv dAl++a ++ld ++ + l++L
sp|P07428|HBA_XENTR 2 HLTADDKKHIKAIWPSVAAHGDKYGGEALHRMFMCAPKTKTYFPDF-DFS-----EHSKHILAHGKKVSDALNEACNHLD-NIAGCLSKL 84
@@ -13694,10 +14220,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84206|HBBA_GYMUN Hemoglobin anodic subunit beta OS=Gymnothorax unicolor PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 139.0 0.1 8.4e-42 3.9e-39 4 149 .] 4 147 .] 1 147 [] 0.97
+ 1 ! 139.0 0.1 8.6e-42 4.2e-39 4 149 .] 4 147 .] 1 147 [] 0.97
Alignments for each domain:
- == domain 1 score: 139.0 bits; conditional E-value: 8.4e-42
+ == domain 1 score: 139.0 bits; conditional E-value: 8.6e-42
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e+t+++++W k+ +vee Ga+++ rl+ ++P+t+++F +F++Lst+ +++++++v kHg +v++ l +a++++d +++++++dLs
sp|P84206|HBBA_GYMUN 4 TDGERTAILTLWKKI--NVEEIGAQAMGRLLIVYPWTHRHFASFGNLSTPSAIMSNDKVAKHGATVMGGLDKAIKNMD-DIKNAYRDLS 89
@@ -13708,30 +14234,30 @@ Domain annotation for each sequence (and alignments):
sp|P84206|HBBA_GYMUN 90 VMHSEKLHVDPDNFRLLSECITLCVAAKFgPKEFNADVHEAWYKFLMAVTSALARQYH 147
**********************9999999679*************************7 PP
->> sp|P18981|HBA2_VAREX Hemoglobin subunit alpha-2 OS=Varanus exanthematicus albigularis PE=1 SV=2
+>> sp|P18981|HBA2_VARAL Hemoglobin subunit alpha-2 OS=Varanus albigularis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 138.8 2.8 9.6e-42 4.5e-39 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 138.8 4.0 9.9e-42 4.8e-39 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 138.8 bits; conditional E-value: 9.6e-42
+ == domain 1 score: 138.8 bits; conditional E-value: 9.9e-42
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL+e++k++vk +Wa v+ +++e ad+L+r+f+++Pa++++F +F dLs +a++k+Hgkkv++Al++a+a+ld +++++l++
- sp|P18981|HBA2_VAREX 1 VLTEDDKNHVKGLWAHVHDHIDEIAADALTRMFLAHPASKTYFAHF-DLS-----PDNAQIKAHGKKVANALNQAVAHLD-DIKGTLSK 82
+ sp|P18981|HBA2_VARAL 1 VLTEDDKNHVKGLWAHVHDHIDEIAADALTRMFLAHPASKTYFAHF-DLS-----PDNAQIKAHGKKVANALNQAVAHLD-DIKGTLSK 82
69********************************************.***.....789*********************9.******** PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
LselHa++l+vdp +f +l ++l + +aa+l ++ a+v +l+K+l+ v+k+l skY+
- sp|P18981|HBA2_VAREX 83 LSELHAQQLRVDPVNFGFLRHCLEVSIAAHLHDHLKASVIVSLDKFLEEVCKDLVSKYR 141
+ sp|P18981|HBA2_VARAL 83 LSELHAQQLRVDPVNFGFLRHCLEVSIAAHLHDHLKASVIVSLDKFLEEVCKDLVSKYR 141
**********************************************************7 PP
>> sp|P10777|HBA1_NOTCO Hemoglobin subunit alpha-1 OS=Notothenia coriiceps neglecta GN=hba1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 138.5 0.1 1.1e-41 5.3e-39 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 138.5 0.1 1.2e-41 5.8e-39 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 138.5 bits; conditional E-value: 1.1e-41
+ == domain 1 score: 138.5 bits; conditional E-value: 1.2e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k +vka+W+k++ ++ G+d+L r+++++P+t+++F ++ ++ + +d+k+Hgkkv++ l+ a+ k++ +l+a l++L
sp|P10777|HBA1_NOTCO 2 LSDKDKAAVKALWSKIGKSADAIGNDALSRMIVVYPQTKTYFSHWPSVT-----PGHPDIKAHGKKVMGGLAIAVSKIN-DLKAGLSNL 84
@@ -13745,10 +14271,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14527|HBA4_ONCMY Hemoglobin subunit alpha-4 OS=Oncorhynchus mykiss GN=hba4 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 138.5 0.1 1.2e-41 5.5e-39 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 138.5 0.1 1.2e-41 6e-39 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 138.5 bits; conditional E-value: 1.2e-41
+ == domain 1 score: 138.5 bits; conditional E-value: 1.2e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k +vka+W+k+ + +e G+++L r+++++P+t+ +F ++ + +sa vkkHg ++++ + d + ++d +l + l +L
sp|P14527|HBA4_ONCMY 2 LSAKDKANVKAIWGKILPKSDEIGEQALSRMLVVYPQTKAYFSHWASVA-----PGSAPVKKHGITIMNQIDDCVGHMD-DLFGFLTKL 84
@@ -13762,10 +14288,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P45718|HBA1_TRENE Hemoglobin subunit alpha-1 OS=Trematomus newnesi GN=hba1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 138.5 0.0 1.2e-41 5.6e-39 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 138.5 0.0 1.2e-41 6.1e-39 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 138.5 bits; conditional E-value: 1.2e-41
+ == domain 1 score: 138.5 bits; conditional E-value: 1.2e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k +v+a+W+k++ + G+d+L r+++++P+t+ +F ++ d++ +s+++k+Hgkkv++ ++ a+ k+d +l++ l +L
sp|P45718|HBA1_TRENE 2 LSDKDKAAVRALWSKIGKSSDAIGNDALSRMIVVYPQTKIYFSHWPDVT-----PGSPNIKAHGKKVMGGIALAVSKID-DLKTGLMEL 84
@@ -13779,10 +14305,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83611|HBA1_GOBGI Hemoglobin subunit alpha-1 OS=Gobionotothen gibberifrons GN=hba1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 138.3 0.1 1.4e-41 6.4e-39 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 138.3 0.1 1.4e-41 7e-39 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 138.3 bits; conditional E-value: 1.4e-41
+ == domain 1 score: 138.3 bits; conditional E-value: 1.4e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++k +v+a+W+k+ + G+d+L r+++++P+t+++F ++ d++ +sa++k+Hgkkv++ ++ a+ k+d +l+a l +L
sp|P83611|HBA1_GOBGI 2 LSVKDKAAVRALWSKISKSSDAIGNDALSRMIVVYPQTKTYFSHWPDVT-----PGSAHIKAHGKKVMGGIALAVSKID-DLNAGLLEL 84
@@ -13796,10 +14322,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P82990|HBA_PAGBO Hemoglobin subunit alpha OS=Pagothenia borchgrevinki GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 137.7 0.1 2.1e-41 9.5e-39 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 137.7 0.1 2.1e-41 1e-38 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 137.7 bits; conditional E-value: 2.1e-41
+ == domain 1 score: 137.7 bits; conditional E-value: 2.1e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Lse++k +vka+W+k++ + G+d+L r+++++P+t+++F ++ +++ +s+++k+Hgkkv++ ++ a+ k+d +l++ l++Ls
sp|P82990|HBA_PAGBO 2 LSEKNKAAVKALWSKIGKSSDAIGNDALSRMIVVYPQTKTYFSHWPEVT-----PGSPHIKAHGKKVMGGIALAVTKID-DLKTGLSELS 85
@@ -13810,30 +14336,30 @@ Domain annotation for each sequence (and alignments):
sp|P82990|HBA_PAGBO 86 EQHAYKLRVDPANFKTLNHCILVVISTMFPKEFTPEAHVSLDKFLSGVALALADRYR 142
*******************************************************96 PP
->> sp|P55267|HBAC_RANCA Hemoglobin subunit alpha-C OS=Rana catesbeiana PE=1 SV=2
+>> sp|P55267|HBAC_LITCT Hemoglobin subunit alpha-C OS=Lithobates catesbeiana PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 137.3 0.8 2.8e-41 1.3e-38 3 149 .] 3 142 .] 1 142 [] 0.97
+ 1 ! 137.3 1.2 2.9e-41 1.4e-38 3 149 .] 3 142 .] 1 142 [] 0.97
Alignments for each domain:
- == domain 1 score: 137.3 bits; conditional E-value: 2.8e-41
+ == domain 1 score: 137.3 bits; conditional E-value: 2.9e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L ++k +++a+W +++e++Ga++L r+f+ +P+t+++F++F d + +sa++k+Hgkkv++Al+da+++ld + ea+l++L
- sp|P55267|HBAC_RANCA 3 LNCDDKAHIRAIWPCLASHAEQYGAEALHRMFLCHPQTKTYFPNF-DFH-----ANSAHLKNHGKKVMNALTDAVKHLD-HPEASLSSL 84
+ sp|P55267|HBAC_LITCT 3 LNCDDKAHIRAIWPCLASHAEQYGAEALHRMFLCHPQTKTYFPNF-DFH-----ANSAHLKNHGKKVMNALTDAVKHLD-HPEASLSSL 84
67789****************************************.776.....79***********************.********* PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
s+lHa l+vdp +f lls+ +++v+a +++ +++ + + al+K+l++v+ ll+skY+
- sp|P55267|HBAC_RANCA 85 SDLHAFTLRVDPGNFALLSNNILVVVAVHHSDKLSYETHQALDKFLNVVSGLLTSKYR 142
+ sp|P55267|HBAC_LITCT 85 SDLHAFTLRVDPGNFALLSNNILVVVAVHHSDKLSYETHQALDKFLNVVSGLLTSKYR 142
*********************************************************7 PP
>> sp|P83623|HBA_PSEUR Hemoglobin subunit alpha OS=Pseudaphritis urvillii GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.6 0.1 4.5e-41 2.1e-38 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 136.6 0.1 4.7e-41 2.3e-38 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 136.6 bits; conditional E-value: 4.5e-41
+ == domain 1 score: 136.6 bits; conditional E-value: 4.7e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
L++++k +vka+W+k+ ++ +Gad++ r+++++P+t+++F ++ dL +s++vk+Hgk+v++ ++ a+ k+d +l + l +Ls
sp|P83623|HBA_PSEUR 2 LTDKDKATVKALWGKISKSADAVGADAVGRMIVVYPQTKTYFSHWPDLA-----PNSPHVKTHGKTVMTGIALAVSKID-DLTNGLLELS 85
@@ -13847,10 +14373,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80270|HBA_CHEKU Hemoglobin subunit alpha OS=Chelidonichthys kumu GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.6 0.2 4.6e-41 2.1e-38 3 149 .] 2 142 .] 1 142 [] 0.99
+ 1 ! 136.6 0.2 4.7e-41 2.3e-38 3 149 .] 2 142 .] 1 142 [] 0.99
Alignments for each domain:
- == domain 1 score: 136.6 bits; conditional E-value: 4.6e-41
+ == domain 1 score: 136.6 bits; conditional E-value: 4.7e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+++k++v+a+Wak+ ++ Ga++L r+++++P+t+++F ++ dLs +s vk+Hgk+++ +s a+ k+d +l a l +Ls
sp|P80270|HBA_CHEKU 2 LSDKDKNTVRALWAKISKSADVIGAEALARMLTVYPQTKTYFTHWTDLS-----PSSTSVKNHGKNIMVGVSLAVSKMD-DLTAGLLELS 85
@@ -13864,10 +14390,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23018|HBB2_CYGMA Hemoglobin subunit beta-2 OS=Cygnodraco mawsoni GN=hbb2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.4 0.1 5e-41 2.3e-38 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 136.4 0.1 5.2e-41 2.5e-38 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 136.4 bits; conditional E-value: 5e-41
+ == domain 1 score: 136.4 bits; conditional E-value: 5.2e-41
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ ++k +++k +++ +G L r ++++P+tq++F kF++L ++++ ++a v kHg ++++ l +a++++d ++++++++Ls
sp|P23018|HBB2_CYGMA 5 NFERATIKDIFSKL--EYDVVGPATLARCLVVYPWTQRYFGKFGNLYNAAAIAENAMVSKHGTTIIHGLDQAVKNMD-DIKNTYAELSV 90
@@ -13881,10 +14407,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q8WWM9|CYGB_HUMAN Cytoglobin OS=Homo sapiens GN=CYGB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.2 0.1 6.1e-41 2.8e-38 3 149 .] 19 167 .. 17 167 .. 0.98
+ 1 ! 136.2 0.2 6.3e-41 3.1e-38 3 149 .] 19 167 .. 17 167 .. 0.98
Alignments for each domain:
- == domain 1 score: 136.2 bits; conditional E-value: 6.1e-41
+ == domain 1 score: 136.2 bits; conditional E-value: 6.3e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklk 89
Lseae+++v+a+Wa+ +a+ e++G+ iLvr+f+ +P ++++F +Fk+++ + e++ s++++kH+ +v++Al+ ++ +l d +k+++ l+
sp|Q8WWM9|CYGB_HUMAN 19 LSEAERKAVQAMWARLYANCEDVGVAILVRFFVNFPSAKQYFSQFKHMEDPLEMERSPQLRKHACRVMGALNTVVENLhDpDKVSSVLA 107
@@ -13898,10 +14424,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02016|HBA_CYPCA Hemoglobin subunit alpha OS=Cyprinus carpio GN=hba PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.2 0.0 5.9e-41 2.7e-38 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 136.2 0.0 6.1e-41 3e-38 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 136.2 bits; conditional E-value: 5.9e-41
+ == domain 1 score: 136.2 bits; conditional E-value: 6.1e-41
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k +vk +Wak+ ++++ Ga++L r+++++P+t+++F ++ dLs +s vkkHgk +++A++da+ k+d +l + l++L
sp|P02016|HBA_CYPCA 2 SLSDKDKAAVKGLWAKISPKADDIGAEALGRMLTVYPQTKTYFAHWADLS-----PGSGPVKKHGKVIMGAVGDAVSKID-DLVGGLAAL 85
@@ -13915,10 +14441,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P62363|HBA2_NOTAN Hemoglobin subunit alpha-2 OS=Notothenia angustata GN=hba2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.0 0.2 7e-41 3.2e-38 3 149 .] 2 141 .] 1 141 [] 0.98
+ 1 ! 136.0 0.3 7.2e-41 3.5e-38 3 149 .] 2 141 .] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 136.0 bits; conditional E-value: 7e-41
+ == domain 1 score: 136.0 bits; conditional E-value: 7.2e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++k++vka W+kv + e+ G+d+L r+++++P+t+++F ++k+L+ +sa v+kHg +v++ ++da+ k++ +l a l +L
sp|P62363|HBA2_NOTAN 2 LSTKDKETVKAFWSKVSGKSEDIGNDALSRMLVVYPQTKTYFSHWKELT-----PGSAPVRKHGMTVMKGVGDAVSKIE-DLTAGLMEL 84
@@ -13932,10 +14458,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P62387|HBA2_NOTCO Hemoglobin subunit alpha-2 OS=Notothenia coriiceps neglecta GN=hba2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 136.0 0.2 7e-41 3.2e-38 3 149 .] 2 141 .] 1 141 [] 0.98
+ 1 ! 136.0 0.3 7.2e-41 3.5e-38 3 149 .] 2 141 .] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 136.0 bits; conditional E-value: 7e-41
+ == domain 1 score: 136.0 bits; conditional E-value: 7.2e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++k++vka W+kv + e+ G+d+L r+++++P+t+++F ++k+L+ +sa v+kHg +v++ ++da+ k++ +l a l +L
sp|P62387|HBA2_NOTCO 2 LSTKDKETVKAFWSKVSGKSEDIGNDALSRMLVVYPQTKTYFSHWKELT-----PGSAPVRKHGMTVMKGVGDAVSKIE-DLTAGLMEL 84
@@ -13949,10 +14475,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23016|HBA_CYGMA Hemoglobin subunit alpha OS=Cygnodraco mawsoni GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 135.8 0.1 7.7e-41 3.6e-38 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 135.8 0.1 8e-41 3.9e-38 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 135.8 bits; conditional E-value: 7.7e-41
+ == domain 1 score: 135.8 bits; conditional E-value: 8e-41
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+++k +vka+W+ + + G+d+L r+++++P+t+++F ++ d++ +s +++ Hgkkv++ +s a+ k+d +l++ l +Ls
sp|P23016|HBA_CYGMA 2 LSDKDKAAVKALWTTISKSSDAIGNDALSRMIVVYPQTKTYFSHWPDVT-----PGSTHIRDHGKKVMGGISLAVSKID-DLKTGLFELS 85
@@ -13966,10 +14492,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02134|HBB_RANES Hemoglobin subunit beta OS=Rana esculenta GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 135.7 0.2 8.8e-41 4.1e-38 10 149 .] 4 140 .] 2 140 .] 0.97
+ 1 ! 135.7 0.3 9.1e-41 4.4e-38 10 149 .] 4 140 .] 2 140 .] 0.97
Alignments for each domain:
- == domain 1 score: 135.7 bits; conditional E-value: 8.8e-41
+ == domain 1 score: 135.7 bits; conditional E-value: 9.1e-41
globins4 10 kvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakkl 99
v W+kv d+++ G+++L rl++++P+tq++F F++L +d++ +a+v +Hg+kvl A++++l++ e+l+a++++Lse H++kl
sp|P02134|HBB_RANES 4 LVSGFWGKV--DAHKIGGEALARLLVVYPWTQRYFTTFGNLGSADAICHNAKVLAHGEKVLAAIGEGLKH-PENLKAHYAKLSEYHSNKL 90
@@ -13983,10 +14509,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02019|HBA1_ONCMY Hemoglobin subunit alpha-1 OS=Oncorhynchus mykiss GN=hba1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 135.0 0.0 1.4e-40 6.4e-38 3 149 .] 2 144 .] 1 144 [] 0.98
+ 1 ! 135.0 0.0 1.4e-40 7e-38 3 149 .] 2 144 .] 1 144 [] 0.98
Alignments for each domain:
- == domain 1 score: 135.0 bits; conditional E-value: 1.4e-40
+ == domain 1 score: 135.0 bits; conditional E-value: 1.4e-40
globins4 3 LseaektkvkavWakveadveesGadiLvr..lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
L++++k+ vka W+k+ +++ +Ga++L r +++++P+t+++F ++ dLs +s vkkHg +++A+++a+ +d +l + ++
sp|P02019|HBA1_ONCMY 2 LTAKDKSVVKAFWGKISGKADVVGAEALGRdkMLTAYPQTKTYFSHWADLS-----PGSGPVKKHGGIIMGAIGKAVGLMD-DLVGGMS 84
@@ -14000,10 +14526,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q575S8|CYGB2_DANRE Cytoglobin-2 OS=Danio rerio GN=cygb2 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 134.8 0.0 1.6e-40 7.2e-38 2 148 .. 18 166 .. 17 167 .. 0.98
+ 1 ! 134.8 0.0 1.6e-40 7.8e-38 2 148 .. 18 166 .. 17 167 .. 0.98
Alignments for each domain:
- == domain 1 score: 134.8 bits; conditional E-value: 1.6e-40
+ == domain 1 score: 134.8 bits; conditional E-value: 1.6e-40
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleak 87
+L++ e+ +k Wa+v+a e++G+ iL+r+f+ +P ++++F +F+d++ ++e++ks +++kH+++v++A++ ++ +l d ek+++
sp|Q575S8|CYGB2_DANRE 18 PLTDVERGIIKDTWARVYASCEDVGVTILIRFFVNFPSAKQYFSQFQDMEDPEEMEKSSQLRKHARRVMNAINTVVENLhDpEKVSSV 105
@@ -14017,10 +14543,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80946|HBBA_ANGAN Hemoglobin anodic subunit beta OS=Anguilla anguilla GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 134.5 0.1 2e-40 9.4e-38 4 149 .] 4 147 .] 1 147 [] 0.98
+ 1 ! 134.5 0.1 2.1e-40 1e-37 4 149 .] 4 147 .] 1 147 [] 0.98
Alignments for each domain:
- == domain 1 score: 134.5 bits; conditional E-value: 2e-40
+ == domain 1 score: 134.5 bits; conditional E-value: 2.1e-40
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+e+e+t++k+ W k+ ++ee G +++ rl+ + P+tq++F +F++Lst+++++++++v kHg +v++ l a++++d ++++++++Ls
sp|P80946|HBBA_ANGAN 4 TEDERTAIKSKWLKI--NIEEIGPQAMRRLLIVCPWTQRHFANFGNLSTAAAIMNNDKVAKHGTTVMGGLDRAIQNMD-DIKNAYRQLS 89
@@ -14034,10 +14560,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9PVM4|HBAA_SERQU Hemoglobin subunit alpha-A OS=Seriola quinqueradiata GN=hbaa PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 134.3 0.0 2.2e-40 1e-37 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 134.3 0.1 2.3e-40 1.1e-37 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 134.3 bits; conditional E-value: 2.2e-40
+ == domain 1 score: 134.3 bits; conditional E-value: 2.3e-40
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls ++k+ vka W k+ + +e Ga++L r+++++P+t+++F ++ d+ sa+vkkHg +++ A++da+ k+d +l + l++
sp|Q9PVM4|HBAA_SERQU 2 SLSGKDKSVVKAFWDKMSPKSAEIGAEALGRMLTVYPQTKTYFSHWADVG-----PDSAQVKKHGATIMAAVGDAVGKID-DLVGGLSA 84
@@ -14051,10 +14577,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q98TS0|HBB_ONCNE Hemoglobin subunit beta OS=Oncorhynchus nerka GN=hbb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 134.3 0.0 2.3e-40 1.1e-37 4 149 .] 5 148 .] 2 148 .] 0.97
+ 1 ! 134.3 0.0 2.4e-40 1.1e-37 4 149 .] 5 148 .] 2 148 .] 0.97
Alignments for each domain:
- == domain 1 score: 134.3 bits; conditional E-value: 2.3e-40
+ == domain 1 score: 134.3 bits; conditional E-value: 2.4e-40
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ae++++ +W+k+ v+e G ++L rl+ + P+tq++F F++Lst++++++++ v kHgk+v++ l a+++ld ++++++++Ls
sp|Q98TS0|HBB_ONCNE 5 TDAERSAIVGLWGKI--SVDEIGPQALARLLIVSPWTQRHFSTFGNLSTPAAIMGNPAVAKHGKTVMHGLDRAVQNLD-DIKNTYAALSV 91
@@ -14068,10 +14594,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83624|HBB1_PSEUR Hemoglobin subunit beta-1 OS=Pseudaphritis urvillii GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 134.3 0.0 2.3e-40 1.1e-37 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 134.3 0.0 2.4e-40 1.2e-37 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 134.3 bits; conditional E-value: 2.3e-40
+ == domain 1 score: 134.3 bits; conditional E-value: 2.4e-40
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
v +++e++ + +++++ d+++ G +L r + ++P+tq++F F++L t+++++ + +v +Hg+kvl+ l a++++d +++a++ d
sp|P83624|HBB1_PSEUR 2 VWTNEERSIISSIFSNL--DYDDIGPKALCRCLIVYPWTQRHFTTFGNLYTPEAIMTNSKVAEHGVKVLHGLDRAVKNMD-NIKATYYD 87
@@ -14085,10 +14611,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q91473|HBB_SALSA Hemoglobin subunit beta OS=Salmo salar GN=hbb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 134.2 0.0 2.4e-40 1.1e-37 4 149 .] 5 148 .] 2 148 .] 0.97
+ 1 ! 134.2 0.0 2.5e-40 1.2e-37 4 149 .] 5 148 .] 2 148 .] 0.97
Alignments for each domain:
- == domain 1 score: 134.2 bits; conditional E-value: 2.4e-40
+ == domain 1 score: 134.2 bits; conditional E-value: 2.5e-40
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ae++++ +W+k+ v+e G ++L rl+ + P+tq++F F++Lst++++++++ v kHgk+v++ l a+++ld ++++++ +Ls
sp|Q91473|HBB_SALSA 5 TDAERSAIVGLWGKI--SVDEIGPQALARLLIVSPWTQRHFSTFGNLSTPAAIMGNPAVAKHGKTVMHGLDRAVQNLD-DIKNAYTALSV 91
@@ -14102,10 +14628,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07430|HBA1_XENBO Hemoglobin subunit alpha-1 OS=Xenopus borealis GN=hba1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.7 0.4 3.6e-40 1.7e-37 3 149 .] 3 142 .] 1 142 [] 0.98
+ 1 ! 133.7 0.6 3.7e-40 1.8e-37 3 149 .] 3 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 133.7 bits; conditional E-value: 3.6e-40
+ == domain 1 score: 133.7 bits; conditional E-value: 3.7e-40
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k+++ka+ + a+ ++ G+++L r+f++ P+t+++F+ F d + ++s+++ +Hgkkv+dAl++a ++ld ++ ++l++L
sp|P07430|HBA1_XENBO 3 LSADDKKHIKAIMPSIAAHGDKFGGEALYRMFLVNPKTKTYFPTF-DFH-----HNSKQISAHGKKVVDALNEASNHLD-NIAGSLSKL 84
@@ -14119,10 +14645,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02012|HBA1_XENLA Hemoglobin subunit alpha-1 OS=Xenopus laevis GN=hba1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.6 0.5 3.7e-40 1.7e-37 3 149 .] 3 142 .] 1 142 [] 0.98
+ 1 ! 133.6 0.7 3.8e-40 1.9e-37 3 149 .] 3 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 133.6 bits; conditional E-value: 3.7e-40
+ == domain 1 score: 133.6 bits; conditional E-value: 3.8e-40
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k+++ka+ + a+ ++ G+++L r+f + P+t+++F++F d + ++s+++ +Hgkkv+dAl++a ++ld ++ +++++L
sp|P02012|HBA1_XENLA 3 LSADDKKHIKAIMPAIAAHGDKFGGEALYRMFIVNPKTKTYFPSF-DFH-----HNSKQISAHGKKVVDALNEASNHLD-NIAGSMSKL 84
@@ -14136,10 +14662,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P56251|HBB_LEIXA Hemoglobin subunit beta OS=Leiostomus xanthurus GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.4 0.0 4.4e-40 2e-37 4 149 .] 4 147 .] 1 147 [] 0.97
+ 1 ! 133.4 0.0 4.5e-40 2.2e-37 4 149 .] 4 147 .] 1 147 [] 0.97
Alignments for each domain:
- == domain 1 score: 133.4 bits; conditional E-value: 4.4e-40
+ == domain 1 score: 133.4 bits; conditional E-value: 4.5e-40
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ae+ ++ka+W+k+ dv+e G ++L rl+ ++P+tq++F+ F+++st++++ ++a+v +Hgk+v++ l a++++d ++++ +k+Ls
sp|P56251|HBB_LEIXA 4 TDAERAAIKALWGKI--DVGEIGPQALSRLLIVYPWTQRHFKGFGNISTNAAILGNAKVAEHGKTVMGGLDRAVQNMD-NIKNVYKQLSI 90
@@ -14153,10 +14679,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q575T0|CYGB1_ORYLA Cytoglobin-1 OS=Oryzias latipes GN=cygb1 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.1 0.1 5.4e-40 2.5e-37 2 148 .. 16 164 .. 15 165 .. 0.98
+ 1 ! 133.1 0.1 5.6e-40 2.7e-37 2 148 .. 16 164 .. 15 165 .. 0.98
Alignments for each domain:
- == domain 1 score: 133.1 bits; conditional E-value: 5.4e-40
+ == domain 1 score: 133.1 bits; conditional E-value: 5.6e-40
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleak 87
+L+++e+ ++ Wakv+ + ++ G+ iLvrlf+ +P ++++F +Fk+++ ++el+ks +++kH+++v++A++ + +ld +k+++
sp|Q575T0|CYGB1_ORYLA 16 PLTDKERVMIQDSWAKVYQNCDDAGVAILVRLFVNFPSSKQYFSQFKHIEDAEELEKSSQLRKHARRVMNAINTLVESLDnsDKVSSV 103
@@ -14170,10 +14696,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q921A4|CYGB_RAT Cytoglobin OS=Rattus norvegicus GN=Cygb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.1 0.2 5.5e-40 2.5e-37 3 149 .] 19 167 .. 17 167 .. 0.98
+ 1 ! 133.1 0.3 5.7e-40 2.8e-37 3 149 .] 19 167 .. 17 167 .. 0.98
Alignments for each domain:
- == domain 1 score: 133.1 bits; conditional E-value: 5.5e-40
+ == domain 1 score: 133.1 bits; conditional E-value: 5.7e-40
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdL 91
Lseae+++v+a Wa+ +a+ e++G+ iLvr+f+ +P ++++F +Fk+++ + e++ s++++kH+ +v++Al+ ++ +l d +k+++ l+ +
sp|Q921A4|CYGB_RAT 19 LSEAERKAVQATWARLYANCEDVGVAILVRFFVNFPSAKQYFSQFKHMEDPLEMERSPQLRKHACRVMGALNTVVENLhDpDKVSSVLALV 109
@@ -14187,10 +14713,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84609|HBA1_GADMO Hemoglobin subunit alpha-1 OS=Gadus morhua GN=hba1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.1 0.0 5.4e-40 2.5e-37 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 133.1 0.0 5.6e-40 2.7e-37 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 133.1 bits; conditional E-value: 5.4e-40
+ == domain 1 score: 133.1 bits; conditional E-value: 5.6e-40
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls ++k +vk W+++ ++e Gad+L r++ ++P+t+++F ++k Ls +s+dvkkHgk+++ ++da+ k+d +le l +
sp|P84609|HBA1_GADMO 2 SLSSKDKATVKLFWGRMSGKAELIGADALSRMLAVYPQTKTYFSHWKSLS-----PGSPDVKKHGKTIMMGIGDAVTKMD-DLERGLLT 84
@@ -14204,10 +14730,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80726|HBAC_ANGAN Hemoglobin cathodic subunit alpha OS=Anguilla anguilla PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 133.0 0.1 5.7e-40 2.7e-37 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 133.0 0.1 5.9e-40 2.9e-37 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 133.0 bits; conditional E-value: 5.7e-40
+ == domain 1 score: 133.0 bits; conditional E-value: 5.9e-40
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++++k+ ++ W k+ +++++ Ga++L r+++++Pat+ +F ++ dL +s+ vkkHgk ++ A++da+ k++ +l ++l++
sp|P80726|HBAC_ANGAN 2 SLTAKDKSLITGFWQKISSKADDLGAEALSRMIVVFPATKVYFSHWPDLG-----PGSPSVKKHGKVIMAAVGDAVGKMN-DLVGALSA 84
@@ -14221,10 +14747,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07433|HBB2_XENBO Hemoglobin subunit beta-2 OS=Xenopus borealis GN=hbb2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 132.7 0.0 7.4e-40 3.4e-37 3 149 .] 3 146 .] 1 146 [] 0.98
+ 1 ! 132.7 0.0 7.6e-40 3.7e-37 3 149 .] 3 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 132.7 bits; conditional E-value: 7.4e-40
+ == domain 1 score: 132.7 bits; conditional E-value: 7.6e-40
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ ek+ ++ W+k+ +++ G+++L rl+ ++P+tq++F +F++L ++++ ++ v +Hg+kv++ +++a++++d ++++ +++L
sp|P07433|HBB2_XENBO 3 LTAHEKQLITGSWGKI--NAKAIGKEALGRLLNTFPWTQRYFSSFGNLGSAEAIFHNEAVAAHGEKVVTSVGEAIKHMD-DIKGYYAEL 88
@@ -14238,10 +14764,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02141|HBB4_ONCMY Hemoglobin subunit beta-4 OS=Oncorhynchus mykiss GN=hbb4 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 132.3 0.0 9.7e-40 4.5e-37 4 149 .] 5 148 .] 2 148 .] 0.96
+ 1 ! 132.3 0.0 1e-39 4.9e-37 4 149 .] 5 148 .] 2 148 .] 0.96
Alignments for each domain:
- == domain 1 score: 132.3 bits; conditional E-value: 9.7e-40
+ == domain 1 score: 132.3 bits; conditional E-value: 1e-39
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ e++++ +W+k+ v+e G ++L rl+ + P+tq++F F++Lst++++++++ v kHgk+v++ l a+++ld ++++++ +Ls
sp|P02141|HBB4_ONCMY 5 TDPERSAIVGLWGKI--SVDEIGPQALARLLIVSPWTQRHFSTFGNLSTPAAIMGNPAVAKHGKTVMHGLDRAVQNLD-DIKNTYTALS 90
@@ -14255,10 +14781,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q90486|HBB1_DANRE Hemoglobin subunit beta-1 OS=Danio rerio GN=ba1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 132.0 0.0 1.1e-39 5.3e-37 4 149 .] 5 148 .] 2 148 .] 0.97
+ 1 ! 132.0 0.0 1.2e-39 5.7e-37 4 149 .] 5 148 .] 2 148 .] 0.97
Alignments for each domain:
- == domain 1 score: 132.0 bits; conditional E-value: 1.1e-39
+ == domain 1 score: 132.0 bits; conditional E-value: 1.2e-39
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ae+t+++ +W+k +++e G ++L r + ++P+tq++F F++Ls +++++++++v +Hg++v++ l+ a++++d ++++++++Ls
sp|Q90486|HBB1_DANRE 5 TDAERTAILGLWGKL--NIDEIGPQALSRCLIVYPWTQRYFATFGNLSSPAAIMGNPKVAAHGRTVMGGLERAIKNMD-NVKNTYAALS 90
@@ -14272,10 +14798,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P56250|HBA_LEIXA Hemoglobin subunit alpha OS=Leiostomus xanthurus GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.9 0.0 1.2e-39 5.8e-37 3 149 .] 2 143 .] 1 143 [] 0.97
+ 1 ! 131.9 0.0 1.3e-39 6.2e-37 3 149 .] 2 143 .] 1 143 [] 0.97
Alignments for each domain:
- == domain 1 score: 131.9 bits; conditional E-value: 1.2e-39
+ == domain 1 score: 131.9 bits; conditional E-value: 1.3e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+ +k +vka+W k+e + +e Ga++L r+++s+P+t+ +F +++ +d + ++v++Hg ++ A+++a++++d +l + l++Ls
sp|P56250|HBA_LEIXA 2 LSATDKARVKALWDKIEGKSAELGAEALGRMLVSFPQTKIYFSEWG----QDLGPQTPQVRNHGAVIMAAVGKAVKSID-NLVGGLSQLS 86
@@ -14289,10 +14815,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P82345|HBB0_PAGBO Hemoglobin subunit beta-0 OS=Pagothenia borchgrevinki GN=hbb0 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 132.0 0.1 1.2e-39 5.5e-37 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 132.0 0.1 1.2e-39 6e-37 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 132.0 bits; conditional E-value: 1.2e-39
+ == domain 1 score: 132.0 bits; conditional E-value: 1.2e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ ++k +++k +++ +G L r ++++P+tq++F kF++L t+ ++ ++a v kHg ++l+ l a++++d ++++++++Ls
sp|P82345|HBB0_PAGBO 5 DFERATIKDIFSKL--EYDVVGPATLARCLVVYPWTQRYFAKFGNLYTATAIAENAMVSKHGITILHGLDRAVKNMD-DIKNTYAELSV 90
@@ -14306,10 +14832,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q90485|HBB2_DANRE Hemoglobin subunit beta-2 OS=Danio rerio GN=ba2 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.5 0.0 1.7e-39 8e-37 4 149 .] 5 148 .] 2 148 .] 0.97
+ 1 ! 131.5 0.0 1.8e-39 8.7e-37 4 149 .] 5 148 .] 2 148 .] 0.97
Alignments for each domain:
- == domain 1 score: 131.5 bits; conditional E-value: 1.7e-39
+ == domain 1 score: 131.5 bits; conditional E-value: 1.8e-39
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ae+t+++ +W+k +++e G ++L r + ++P+tq++F F++Ls +++++++++v +Hg++v++ l+ a++++d ++++++++Ls
sp|Q90485|HBB2_DANRE 5 TDAERTAILGLWGKL--NIDEIGPQALSRCLIVYPWTQRYFATFGNLSSPAAIMGNPKVAAHGRTVMGGLERAIKNMD-NIKNTYAALS 90
@@ -14323,10 +14849,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84204|HBBC_GYMUN Hemoglobin cathodic subunit beta OS=Gymnothorax unicolor PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.4 0.0 1.8e-39 8.5e-37 4 148 .. 4 145 .. 1 146 [] 0.98
+ 1 ! 131.4 0.0 1.9e-39 9.2e-37 4 148 .. 4 145 .. 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 131.4 bits; conditional E-value: 1.8e-39
+ == domain 1 score: 131.4 bits; conditional E-value: 1.9e-39
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s e+++++++W+kv +e G + r++ ++P+tq++F +F+dLs +++ ++a+v +Hgk vld + +a+++ld ++++++ +Ls
sp|P84204|HBBC_GYMUN 4 SSSERSTITSLWGKV--IPAEIGPVAFARVLIVYPWTQRYFGNFGDLSNIAAISGNAKVAAHGKVVLDGVDKAVKNLD-NIKGAYTSLS 89
@@ -14340,10 +14866,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83273|HBB2_ANAMI Hemoglobin subunit beta-2 OS=Anarhichas minor GN=hbb2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.3 0.0 2e-39 9e-37 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 131.3 0.0 2e-39 9.8e-37 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 131.3 bits; conditional E-value: 2e-39
+ == domain 1 score: 131.3 bits; conditional E-value: 2e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ +++ +++k+ d+e +G +L r + ++P+tq++F +F++L +++++++++v kHg +l+ l +++++d +++ ++++Ls
sp|P83273|HBB2_ANAMI 5 DFERATIQDIFSKM--DYEVVGPAALSRCLIVYPWTQRYFGSFGNLYNAAAIMGNPNVAKHGTIILHGLDRGVKNMD-NIKETYAELSV 90
@@ -14357,10 +14883,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P45721|HBBC_TRENE Hemoglobin subunit beta-C OS=Trematomus newnesi PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.2 0.0 2.1e-39 9.9e-37 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 131.2 0.1 2.2e-39 1.1e-36 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 131.2 bits; conditional E-value: 2.1e-39
+ == domain 1 score: 131.2 bits; conditional E-value: 2.2e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ ++k +++k +++ +G L r ++++P+tq++F kF++L ++++ ++a v kHg ++l+ l a++++d ++ +++++Ls
sp|P45721|HBBC_TRENE 5 DFERATIKDIFSKL--EYDVVGPATLARCLVVYPWTQRYFGKFGNLYNAAAIAQNAMVSKHGTTILNGLDRAVKNMD-DITNTYAELSV 90
@@ -14371,13 +14897,13 @@ Domain annotation for each sequence (and alignments):
sp|P45721|HBBC_TRENE 91 LHSEKLHVDPDNFKLLADCLTIVVAARFGSAFTGEVQAAFQKFMAVVVSSLGKQYR 146
***************************************************99996 PP
->> sp|P02017|HBA_CATCL Hemoglobin subunit alpha OS=Catostomus clarki GN=hba PE=1 SV=1
+>> sp|P02017|HBA_CATCL Hemoglobin subunit alpha OS=Catostomus clarkii GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.1 0.0 2.3e-39 1e-36 3 149 .] 2 142 .] 1 142 [] 0.96
+ 1 ! 131.1 0.0 2.3e-39 1.1e-36 3 149 .] 2 142 .] 1 142 [] 0.96
Alignments for each domain:
- == domain 1 score: 131.1 bits; conditional E-value: 2.3e-39
+ == domain 1 score: 131.1 bits; conditional E-value: 2.3e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkv.ldAlsdalakldekleaklkdL 91
Ls+++k vk +Wak+ ++e Ga++L r+++++P+t+++F ++ dLs +s vk Hgkkv ++A++da+ k+d +l + l++L
sp|P02017|HBA_CATCL 2 LSDKDKADVKIAWAKISPRADEIGAEALGRMLTVYPQTKTYFAHWADLS-----PGSGPVK-HGKKViMGAIGDAVTKFD-DLLGGLASL 84
@@ -14391,10 +14917,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02013|HBA2_XENLA Hemoglobin subunit alpha-2 OS=Xenopus laevis GN=hba2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 131.0 0.6 2.3e-39 1.1e-36 3 149 .] 3 142 .] 1 142 [] 0.98
+ 1 ! 131.0 0.9 2.4e-39 1.2e-36 3 149 .] 3 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 131.0 bits; conditional E-value: 2.3e-39
+ == domain 1 score: 131.0 bits; conditional E-value: 2.4e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++k+++ka+ + a+ ++ G+++ r+f++ P+t+++F++F d + ++s+++ Hgkkv+dAl++a ++ld ++ +++++L
sp|P02013|HBA2_XENLA 3 LSADDKKHIKAIMPSIAAHGDKFGGEASYRMFLVNPKTKTYFPSF-DFH-----HNSKQITSHGKKVVDALNEAANHLD-NIAGSMSKL 84
@@ -14408,10 +14934,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS4|HBA2_ARCGL Hemoglobin subunit alpha-2 OS=Arctogadus glacialis GN=hba2 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.9 0.0 2.6e-39 1.2e-36 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 130.9 0.1 2.7e-39 1.3e-36 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 130.9 bits; conditional E-value: 2.6e-39
+ == domain 1 score: 130.9 bits; conditional E-value: 2.7e-39
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls ++k +vk W+++ ++e Gad+L r++ ++P+t+ +F ++k Ls +s +vkkHgk+++ ++da+ k++ +le l +
sp|Q1AGS4|HBA2_ARCGL 2 SLSSKDKATVKLFWGRMSGKAELIGADALSRMLAVYPQTKIYFSHWKSLS-----PGSSEVKKHGKTIMMGIGDAVTKME-DLERGLLT 84
@@ -14425,10 +14951,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O13163|HBB_SILAS Hemoglobin subunit beta OS=Silurus asotus GN=hbb PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.8 0.0 2.8e-39 1.3e-36 4 149 .] 5 148 .] 2 148 .] 0.96
+ 1 ! 130.8 0.1 2.9e-39 1.4e-36 4 149 .] 5 148 .] 2 148 .] 0.96
Alignments for each domain:
- == domain 1 score: 130.8 bits; conditional E-value: 2.8e-39
+ == domain 1 score: 130.8 bits; conditional E-value: 2.9e-39
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ e+ + vW+k+ + +e G +L rl+ ++P+tq++F +F++Ls ++++ ++++v +Hgk v++ l +a+++ld ++++++++Lse
sp|O13163|HBB_SILAS 5 TDXERHVIADVWGKI--NPDEIGPHALARLLIVYPWTQRYFSSFGNLSNAAAILGNPKVAAHGKVVVGGLDKAVKHLD-NVKGTYAKLSE 91
@@ -14442,10 +14968,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q8UUR3|CYGB1_DANRE Cytoglobin-1 OS=Danio rerio GN=cygb1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.7 0.0 3e-39 1.4e-36 3 148 .. 16 164 .. 14 165 .. 0.95
+ 1 ! 130.7 0.0 3.1e-39 1.5e-36 3 148 .. 16 164 .. 14 165 .. 0.95
Alignments for each domain:
- == domain 1 score: 130.7 bits; conditional E-value: 3e-39
+ == domain 1 score: 130.7 bits; conditional E-value: 3.1e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleakl 88
L+e++ ++ W +v+a+ ++ G+ +Lvr+f+ +P ++++Fe+F++L+ ++e++++a++k+Hg++vl+Al+ + +l d +kl++ +
sp|Q8UUR3|CYGB1_DANRE 16 LTEEDVCVIQDTWKPVYAERDNAGVAVLVRFFTNFPSAKQYFEHFRELQDPAEMQQNAQLKEHGQRVLNALNTLVENLrDaDKLNTIF 103
@@ -14459,10 +14985,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9CX80|CYGB_MOUSE Cytoglobin OS=Mus musculus GN=Cygb PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.6 0.1 3.2e-39 1.5e-36 3 149 .] 19 167 .. 17 167 .. 0.98
+ 1 ! 130.6 0.2 3.3e-39 1.6e-36 3 149 .] 19 167 .. 17 167 .. 0.98
Alignments for each domain:
- == domain 1 score: 130.6 bits; conditional E-value: 3.2e-39
+ == domain 1 score: 130.6 bits; conditional E-value: 3.3e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklk 89
Lseae+++v+a Wa+ +a+ e++G+ iLvr+f+ +P ++++F +F++++ + e++ s++++kH+ +v++Al+ ++ +l d +k+++ l+
sp|Q9CX80|CYGB_MOUSE 19 LSEAERKAVQATWARLYANCEDVGVAILVRFFVNFPSAKQYFSQFRHMEDPLEMERSPQLRKHACRVMGALNTVVENLhDpDKVSSVLA 107
@@ -14476,10 +15002,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84652|HBB_COTGO Hemoglobin subunit beta OS=Cottoperca gobio GN=hbb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.5 0.0 3.5e-39 1.6e-36 5 149 .] 6 147 .] 2 147 .] 0.97
+ 1 ! 130.5 0.1 3.6e-39 1.8e-36 5 149 .] 6 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 130.5 bits; conditional E-value: 3.5e-39
+ == domain 1 score: 130.5 bits; conditional E-value: 3.6e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLsel 94
+ e+ ++k v++k+ ++e +G +L r ++++P+tq++F +F++L ++++ ++++v kHg ++l+ l +a++++d ++++++++Ls l
sp|P84652|HBB_COTGO 6 DFERATIKDVFSKI--EYEVVGPAALARCLVVYPWTQRYFGNFGNLYNAAAITGNPKVAKHGITILHGLDKAVKNMD-DIRNTYAELSVL 92
@@ -14493,10 +15019,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29623|HBA_GYMAC Hemoglobin subunit alpha OS=Gymnodraco acuticeps GN=hba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.4 0.0 3.7e-39 1.7e-36 3 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 130.4 0.0 3.8e-39 1.9e-36 3 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 130.4 bits; conditional E-value: 3.7e-39
+ == domain 1 score: 130.4 bits; conditional E-value: 3.8e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls+++k +v+a+W+ + + G+d+L r+++++P+t+ +F ++ ++ + +s ++k+Hgkkv++ ++ a+ k+d +l++ l +Ls
sp|P29623|HBA_GYMAC 2 LSDKDKAAVRALWSTISKSSDAIGNDALSRMIVVYPQTKIYFSHW-----PEVIPGSIHIKEHGKKVMGGIELAVSKID-DLKTGLFELS 85
@@ -14510,10 +15036,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84205|HBAA_GYMUN Hemoglobin anodic subunit alpha OS=Gymnothorax unicolor PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.3 0.0 3.8e-39 1.8e-36 3 149 .] 2 142 .] 1 142 [] 0.97
+ 1 ! 130.3 0.0 3.9e-39 1.9e-36 3 149 .] 2 142 .] 1 142 [] 0.97
Alignments for each domain:
- == domain 1 score: 130.3 bits; conditional E-value: 3.8e-39
+ == domain 1 score: 130.3 bits; conditional E-value: 3.9e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++k vk W+k+ + +e G++++ r+++++P+t+ +F ++ + +sa vkkHg ++l+A++da++++d ++ ++l +L
sp|P84205|HBAA_GYMUN 2 LSTKDKAVVKGFWSKISGKSDEIGTEAVGRMLTVYPQTKAYFSHWPET-----TPGSAPVKKHGARILGAINDAVNRID-DMAGALGSL 84
@@ -14527,10 +15053,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C240|HBB_POGSC Hemoglobin subunit beta OS=Pogonophryne scotti GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 130.4 0.0 3.8e-39 1.7e-36 3 149 .] 3 146 .] 1 146 [] 0.98
+ 1 ! 130.4 0.0 3.9e-39 1.9e-36 3 149 .] 3 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 130.4 bits; conditional E-value: 3.8e-39
+ == domain 1 score: 130.4 bits; conditional E-value: 3.9e-39
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
se e+t ++ +++ d+++ G + r + ++P+tq++F +F++L+ +++++++a+v +Hg kvl+ l +l+++d ++ +++++Ls
sp|P0C240|HBB_POGSC 3 WSESERTIINGIFSHL--DYDDLGPKAFSRCLIVYPWTQRYFSSFGNLHNAEAIMGNANVAAHGIKVLHGLDLGLKHMD-DIMGAYAELS 89
@@ -14544,10 +15070,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q575S9|CYGB2_ORYLA Cytoglobin-2 OS=Oryzias latipes GN=cygb2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 129.8 0.1 5.6e-39 2.6e-36 2 148 .. 18 166 .. 17 167 .. 0.98
+ 1 ! 129.8 0.2 5.7e-39 2.8e-36 2 148 .. 18 166 .. 17 167 .. 0.98
Alignments for each domain:
- == domain 1 score: 129.8 bits; conditional E-value: 5.6e-39
+ == domain 1 score: 129.8 bits; conditional E-value: 5.7e-39
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleak 87
+Ls+ae + +++ W+ v+ + e++G+ +L+r+f+ +P ++++F +F+d++ ++e++ks ++++H+++v++A++ ++ +l d ek+++
sp|Q575S9|CYGB2_ORYLA 18 PLSDAEMEIIQHTWGHVYKNCEDVGVSVLIRFFVNFPSAKQYFSQFQDMQDPEEMEKSSQLRQHARRVMNAINTVVENLqDpEKVSSV 105
@@ -14561,10 +15087,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11749|HBB_THUTH Hemoglobin subunit beta OS=Thunnus thynnus GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 129.3 0.0 8.1e-39 3.8e-36 5 149 .] 5 146 .] 1 146 [] 0.95
+ 1 ! 129.3 0.0 8.4e-39 4.1e-36 5 149 .] 5 146 .] 1 146 [] 0.95
Alignments for each domain:
- == domain 1 score: 129.3 bits; conditional E-value: 8.1e-39
+ == domain 1 score: 129.3 bits; conditional E-value: 8.4e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLsel 94
++e++ + a+ ++e+ G +L r + ++P+tq++F ++dLst+d++k++a++ +Hg+kvl+ l a++++d +++ ++++Ls l
sp|P11749|HBB_THUTH 5 QQERSIIAGFIANL--NYEDIGPKALARCLIVYPWTQRYFGAYGDLSTPDAIKGNAKIAAHGVKVLHGLDRAVKNMD-NINEAYSELSVL 91
@@ -14578,10 +15104,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80271|HBB_CHEKU Hemoglobin subunit beta OS=Chelidonichthys kumu GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 129.2 0.0 8.5e-39 4e-36 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 129.2 0.0 8.8e-39 4.3e-36 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 129.2 bits; conditional E-value: 8.5e-39
+ == domain 1 score: 129.2 bits; conditional E-value: 8.8e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLsel 94
+ e+ +++ +++k+ d+e++G L+r + ++P+t+++F kF+++ +++ +++++ kHg ++l+ l +++++d ++++++++Ls+l
sp|P80271|HBB_CHEKU 5 DFERATIQDIFSKM--DYETVGPATLTRTVIVYPWTLRYFAKFGNICSTAAILGNKEIAKHGTTILHGLDRGVKNMD-DIKNTYAELSKL 91
@@ -14592,30 +15118,30 @@ Domain annotation for each sequence (and alignments):
sp|P80271|HBB_CHEKU 92 HSEKLHVDPDNFRLLSDCLTIVVAAKMGKDFTGEVQAAFQKFLSVVVNSLGRQYH 146
***************************************************9997 PP
->> sp|P45722|HBBC_PAGBE Hemoglobin subunit beta-C OS=Pagothenia bernacchii GN=hbbc PE=1 SV=1
+>> sp|P45722|HBBC_TREBE Hemoglobin subunit beta-C OS=Trematomus bernacchii GN=hbbc PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 129.2 0.1 8.6e-39 4e-36 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 129.2 0.1 8.8e-39 4.3e-36 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 129.2 bits; conditional E-value: 8.6e-39
+ == domain 1 score: 129.2 bits; conditional E-value: 8.8e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ ++k +++k +++ +G L r ++++P+tq++F kF++L + ++ ++a v kHg ++l+ l a++++d ++++++++Ls
- sp|P45722|HBBC_PAGBE 5 DFERATIKDIFSKL--EYDVVGPATLARCLVVYPWTQRYFGKFGNLYNATAIAENAMVSKHGTTILHGLDRAVKNMD-DIKNTYAELSV 90
+ sp|P45722|HBBC_TREBE 5 DFERATIKDIFSKL--EYDVVGPATLARCLVVYPWTQRYFGKFGNLYNATAIAENAMVSKHGTTILHGLDRAVKNMD-DIKNTYAELSV 90
568999********..9999*********************************************************.*********** PP
globins4 94 lHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
lH++kl+vdp +fkll+++l v+aar+++ ft +vqaa+eK++a+v l +Y+
- sp|P45722|HBBC_PAGBE 91 LHSEKLHVDPDNFKLLADCLTIVVAARFGSAFTGEVQAAFEKFMAVVVSSLGRQYH 146
+ sp|P45722|HBBC_TREBE 91 LHSEKLHVDPDNFKLLADCLTIVVAARFGSAFTGEVQAAFEKFMAVVVSSLGRQYH 146
***************************************************99997 PP
>> sp|P83625|HBB2_PSEUR Hemoglobin subunit beta-2 OS=Pseudaphritis urvillii GN=hbb2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 129.1 0.0 9.2e-39 4.3e-36 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 129.1 0.0 9.5e-39 4.6e-36 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 129.1 bits; conditional E-value: 9.2e-39
+ == domain 1 score: 129.1 bits; conditional E-value: 9.5e-39
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ ++k +++k+ ++e +G +L r ++++P+tq++F kF++L ++++ +++ + kHg ++l+ l a++++d ++++++++Ls
sp|P83625|HBB2_PSEUR 5 DFERATIKDIFSKI--EYEVVGPAALARCLVVYPWTQRYFGKFGNLYNAEAITGNPMISKHGTTILHGLDRAVKNMD-DIKNTYAELSV 90
@@ -14629,10 +15155,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07431|HBA2_XENBO Hemoglobin subunit alpha-2 OS=Xenopus borealis GN=hba2 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.9 0.3 1.1e-38 4.9e-36 3 149 .] 3 142 .] 1 142 [] 0.98
+ 1 ! 128.9 0.4 1.1e-38 5.3e-36 3 149 .] 3 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 128.9 bits; conditional E-value: 1.1e-38
+ == domain 1 score: 128.9 bits; conditional E-value: 1.1e-38
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++k+++ka+ + a+ ++ G+++L r+f+ P+t+++F++F d + ++s+++ +Hgkkv+dAl++a ++ld ++ +++++L
sp|P07431|HBA2_XENBO 3 LTADDKKHIKAILPSIAAHGDKFGGEALYRMFLINPKTKTYFPNF-DFH-----HNSKQISAHGKKVVDALNEAANHLD-NIAGSMSKL 84
@@ -14646,10 +15172,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29625|HBB_GYMAC Hemoglobin subunit beta OS=Gymnodraco acuticeps GN=hbb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.9 0.0 1.1e-38 4.9e-36 4 149 .] 5 147 .] 2 147 .] 0.98
+ 1 ! 128.9 0.1 1.1e-38 5.4e-36 4 149 .] 5 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 128.9 bits; conditional E-value: 1.1e-38
+ == domain 1 score: 128.9 bits; conditional E-value: 1.1e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ ek +++ +++ d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +l+k+d ++ea+++dLs
sp|P29625|HBB_GYMAC 5 TKTEKATITDIFSHL--DYDDIGPKALSRCLIVYPWTQRYFSGFGNLYNAAAIIGNAKVAEHGIKVLHGLDLGLKKMD-NIEAAYADLSS 91
@@ -14663,10 +15189,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02139|HBB_CYPCA Hemoglobin subunit beta-A/B OS=Cyprinus carpio PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.7 0.0 1.2e-38 5.5e-36 4 149 .] 4 147 .] 1 147 [] 0.97
+ 1 ! 128.7 0.0 1.2e-38 6e-36 4 149 .] 4 147 .] 1 147 [] 0.97
Alignments for each domain:
- == domain 1 score: 128.7 bits; conditional E-value: 1.2e-38
+ == domain 1 score: 128.7 bits; conditional E-value: 1.2e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ae++++ a+W+k + +e G ++L r + ++P+tq+fF ++++Ls +++++++++v +Hg++v + l a++ +d +++a++++Ls
sp|P02139|HBB_CYPCA 4 TDAERSAIIALWGKL--NPDELGPEALARCLIVYPWTQRFFASYGNLSSPAAIMGNPKVAAHGRTVEGGLMRAIKDMD-NIKATYAPLSV 90
@@ -14680,10 +15206,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07432|HBB1_XENBO Hemoglobin subunit beta-1 OS=Xenopus borealis GN=hbb1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.7 0.0 1.3e-38 5.8e-36 3 149 .] 3 146 .] 1 146 [] 0.98
+ 1 ! 128.7 0.0 1.3e-38 6.3e-36 3 149 .] 3 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 128.7 bits; conditional E-value: 1.3e-38
+ == domain 1 score: 128.7 bits; conditional E-value: 1.3e-38
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ +++ +++ W+kv +++ G+++L rl+ ++P+tq++F +F++L+ +d++ ++ v +Hg+kv++ +++a++++d ++++ +++L
sp|P07432|HBB1_XENBO 3 LTAHDRQLINSTWGKV--CAKTIGKEALGRLLWTYPWTQRYFSSFGNLNSADAVFHNEAVAAHGEKVVTSIGEAIKHMD-DIKGYYAQL 88
@@ -14697,10 +15223,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02132|HBB1_XENLA Hemoglobin subunit beta-1 OS=Xenopus laevis GN=hbb1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.6 0.0 1.3e-38 5.9e-36 3 149 .] 3 146 .] 1 146 [] 0.98
+ 1 ! 128.6 0.0 1.3e-38 6.4e-36 3 149 .] 3 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 128.6 bits; conditional E-value: 1.3e-38
+ == domain 1 score: 128.6 bits; conditional E-value: 1.3e-38
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++ +++ +++ W+k +++ G+++L rl+ ++P+tq++F +F++L+ +d++ ++ v +Hg+kv++ +++a++++d ++++ +++L
sp|P02132|HBB1_XENLA 3 LTAHDRQLINSTWGKL--CAKTIGQEALGRLLWTYPWTQRYFSSFGNLNSADAVFHNEAVAAHGEKVVTSIGEAIKHMD-DIKGYYAQL 88
@@ -14714,10 +15240,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7LZC1|HBB3_MURHE Hemoglobin subunit beta-3 OS=Muraena helena GN=hbb3 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.6 0.0 1.3e-38 6.1e-36 4 149 .] 4 147 .] 1 147 [] 0.98
+ 1 ! 128.6 0.0 1.4e-38 6.7e-36 4 149 .] 4 147 .] 1 147 [] 0.98
Alignments for each domain:
- == domain 1 score: 128.6 bits; conditional E-value: 1.3e-38
+ == domain 1 score: 128.6 bits; conditional E-value: 1.4e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ae+t+++++W k+ +++e G ++ rl+ + P+tq++F F+++st+++++ ++ v kHg +v++ l a++++d ++++++++Ls
sp|Q7LZC1|HBB3_MURHE 4 TDAERTAILTLWKKI--NIDEIGPCAMRRLLIVSPWTQRHFSTFGNISTNAAIMDNDLVAKHGSTVMGGLDRAIKNMD-DIKGAYRELS 89
@@ -14731,10 +15257,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O93351|HBB_TREHA Hemoglobin subunit beta OS=Trematomus hansoni GN=hbb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.6 0.0 1.3e-38 6.1e-36 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 128.6 0.0 1.4e-38 6.6e-36 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 128.6 bits; conditional E-value: 1.3e-38
+ == domain 1 score: 128.6 bits; conditional E-value: 1.4e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++e++ + +++ + d+++ G +L r ++++P+tq++F F++L ++ ++++a+v +Hg kvl+ l +++++d ++ a+++dLs
sp|O93351|HBB_TREHA 5 TDKERSIISDIFSHM--DYDDIGPKALSRCLVVYPWTQRYFSGFGNLYNAEGIMSNANVAAHGIKVLHGLDRGVKNMD-NIAATYADLST 91
@@ -14748,10 +15274,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9PVM3|HBAB_SERQU Hemoglobin subunit alpha-B OS=Seriola quinqueradiata GN=hbab PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.4 0.1 1.6e-38 7.2e-36 2 149 .] 2 144 .] 1 144 [] 0.96
+ 1 ! 128.4 0.1 1.6e-38 7.8e-36 2 149 .] 2 144 .] 1 144 [] 0.96
Alignments for each domain:
- == domain 1 score: 128.4 bits; conditional E-value: 1.6e-38
+ == domain 1 score: 128.4 bits; conditional E-value: 1.6e-38
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFk.dLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
Ls+++kt+vk+ W kve + +e G+++L r+++++P+t+ +F +++ dL+ + + vkkHg +++ +++a++++d +l l+
sp|Q9PVM3|HBAB_SERQU 2 SLSAKDKTTVKKFWDKVEGKSAEIGGEALGRMLVAYPQTKAYFSHWGsDLN-----PQHPMVKKHGAIIMGGIGKAVKNID-DLVRGLS 84
@@ -14765,10 +15291,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS8|HBA2_BORSA Hemoglobin subunit alpha-2 OS=Boreogadus saida GN=hba2 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.2 0.0 1.8e-38 8.1e-36 2 149 .] 2 143 .] 1 143 [] 0.99
+ 1 ! 128.2 0.1 1.8e-38 8.8e-36 2 149 .] 2 143 .] 1 143 [] 0.99
Alignments for each domain:
- == domain 1 score: 128.2 bits; conditional E-value: 1.8e-38
+ == domain 1 score: 128.2 bits; conditional E-value: 1.8e-38
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls+++k +vk W+k+ + e Gad+L r++ ++P+t+ +F ++k s +s++vkkHgk+++ +++a+ k+d +le l +
sp|Q1AGS8|HBA2_BORSA 2 SLSAKDKATVKLFWGKMSGKSELIGADALSRMLAVYPQTKIYFSHWKSCS-----PGSPEVKKHGKTIMMGIGEAVTKMD-DLERGLLT 84
@@ -14782,10 +15308,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02140|HBB_CARAU Hemoglobin subunit beta OS=Carassius auratus GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.1 0.0 1.9e-38 8.6e-36 4 149 .] 4 147 .] 1 147 [] 0.97
+ 1 ! 128.1 0.0 1.9e-38 9.3e-36 4 149 .] 4 147 .] 1 147 [] 0.97
Alignments for each domain:
- == domain 1 score: 128.1 bits; conditional E-value: 1.9e-38
+ == domain 1 score: 128.1 bits; conditional E-value: 1.9e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ae++++ +W+k + +e G ++L r + ++P+tq++F F++Ls +++++++++v +Hg++v++ l+ a++++d +++a++++Ls
sp|P02140|HBB_CARAU 4 TDAERSAIIGLWGKL--NPDELGPQALARCLIVYPWTQRYFATFGNLSSPAAIMGNPKVAAHGRTVMGGLERAIKNMD-NIKATYAPLSV 90
@@ -14799,10 +15325,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O13164|HBB_DECMA Hemoglobin subunit beta OS=Decapterus maruadsi GN=hbb PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 128.1 0.0 1.9e-38 8.7e-36 4 149 .] 5 148 .] 2 148 .] 0.97
+ 1 ! 128.1 0.0 1.9e-38 9.4e-36 4 149 .] 5 148 .] 2 148 .] 0.97
Alignments for each domain:
- == domain 1 score: 128.1 bits; conditional E-value: 1.9e-38
+ == domain 1 score: 128.1 bits; conditional E-value: 1.9e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ e+ +++++W+k+ dv+e G ++L rl+ ++P+tq++F F++Lst++++ ++++v +Hgk+v++ l+ a++++d ++++++++Ls+
sp|O13164|HBB_DECMA 5 TDXERAAITSLWGKI--DVGEIGPQALARLLIVYPWTQRHFSTFGNLSTNAAILGNPKVAAHGKTVMGGLELAVKNMD-NIKGAYANLSK 91
@@ -14816,10 +15342,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10785|HBB1_TRICR Hemoglobin subunit beta-1 OS=Triturus cristatus GN=HBB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 127.9 0.2 2.1e-38 9.7e-36 4 149 .] 3 145 .] 1 145 [] 0.98
+ 1 ! 127.9 0.3 2.2e-38 1e-35 4 149 .] 3 145 .] 1 145 [] 0.98
Alignments for each domain:
- == domain 1 score: 127.9 bits; conditional E-value: 2.1e-38
+ == domain 1 score: 127.9 bits; conditional E-value: 2.2e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e ++++ v +k+ v+++Ga++L rl+++ P+t+++F++F+dLs +++++ +++v Hg kv++ +++a+++ld +l+a ++dLs
sp|P10785|HBB1_TRICR 3 TNDESQHIHDVCGKI--PVDQVGAEALGRLILVNPWTRRYFKSFGDLSSAEAIQHNPKVASHGAKVMHSIAEAVKHLD-DLKAYYADLS 88
@@ -14833,10 +15359,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10783|HBA1_TRICR Hemoglobin subunit alpha-1 OS=Triturus cristatus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 127.7 0.6 2.5e-38 1.2e-35 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 127.7 0.8 2.6e-38 1.3e-35 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 127.7 bits; conditional E-value: 2.5e-38
+ == domain 1 score: 127.7 bits; conditional E-value: 2.6e-38
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+Ls+++k +vka+W v+ + e Ga++L r+f+s P+t+++F+ kd++ ++s ++ Hgkkv++Als+a+a++d +++++l++
sp|P10783|HBA1_TRICR 2 KLSADDKHNVKAIWEHVKGHEEAIGAEALCRMFTSLPTTRTYFPT-KDIK-----EGSSFLHSHGKKVMGALSNAVAHID-DIDGALSK 83
@@ -14850,10 +15376,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02138|HBB_LEPPA Hemoglobin subunit beta OS=Lepidosiren paradoxus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 127.3 0.1 3.3e-38 1.5e-35 4 149 .] 4 147 .] 1 147 [] 0.97
+ 1 ! 127.3 0.1 3.4e-38 1.7e-35 4 149 .] 4 147 .] 1 147 [] 0.97
Alignments for each domain:
- == domain 1 score: 127.3 bits; conditional E-value: 3.3e-38
+ == domain 1 score: 127.3 bits; conditional E-value: 3.4e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+aek+ + +v++k+ dv+ +Ga+ L+r++ ++P+t+++F++F+dLs + ++k +++v +Hg+kvl A+ + +++ +++++l++Ls+
sp|P02138|HBB_LEPPA 4 EDAEKQYIVSVFSKI--DVDHVGANTLERVLIVFPWTKRYFNSFGDLSSPGAIKHNNKVSAHGRKVLAAIIECTRHFG-NIKGHLANLSH 90
@@ -14867,10 +15393,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84610|HBB1_GADMO Hemoglobin subunit beta-1 OS=Gadus morhua GN=hbb1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 127.1 0.0 3.9e-38 1.8e-35 4 149 .] 5 147 .] 2 147 .] 0.98
+ 1 ! 127.1 0.0 4e-38 2e-35 4 149 .] 5 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 127.1 bits; conditional E-value: 3.9e-38
+ == domain 1 score: 127.1 bits; conditional E-value: 4e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ae+ +v+avW+k+ d++ G +L+r + ++P+tq++F +F+dLst++++ ++++v +Hg+ l+ l al ++d ++++++++Ls
sp|P84610|HBB1_GADMO 5 TAAERRHVEAVWSKI--DIDVCGPLALQRCLIVYPWTQRYFGEFGDLSTDAAIVGNPKVAAHGVVALTGLRTALDHMD-EIKSTYAALS 90
@@ -14884,10 +15410,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O93348|HBB1_PAGBO Hemoglobin subunit beta-1 OS=Pagothenia borchgrevinki GN=hbb1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 127.0 0.0 4.2e-38 1.9e-35 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 127.0 0.0 4.3e-38 2.1e-35 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 127.0 bits; conditional E-value: 4.2e-38
+ == domain 1 score: 127.0 bits; conditional E-value: 4.3e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e++ + +++ d+e+ G +L r + ++P+tq++F F++L ++ + ++a+v +Hg kvl+ l +l+++d ++ea+++dLs
sp|O93348|HBB1_PAGBO 5 TDKERSIISDIFSHL--DYEDIGPKALSRCLIVYPWTQRHFSGFGNLYNAESIIGNANVAAHGIKVLHGLDRGLKNMD-NIEATYADLS 90
@@ -14898,13 +15424,13 @@ Domain annotation for each sequence (and alignments):
sp|O93348|HBB1_PAGBO 91 TLHSEKLHVDPDNFKLLADCITIVLAAKMGQAFTAEIQGAFQKFLAVVVSALGKQYH 147
******************************************************997 PP
->> sp|P06639|HBA1_PLEWA Hemoglobin subunit alpha-1 OS=Pleurodeles waltlii PE=2 SV=4
+>> sp|P06639|HBA1_PLEWA Hemoglobin subunit alpha-1 OS=Pleurodeles waltl PE=2 SV=4
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.8 0.7 4.8e-38 2.2e-35 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 126.8 1.1 5e-38 2.4e-35 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 126.8 bits; conditional E-value: 4.8e-38
+ == domain 1 score: 126.8 bits; conditional E-value: 5e-38
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+L++++k +vka+W v+ + e Ga++L r+f +P+t+ +F+ kdLs + s ++ Hgkkv++Al++a+a++d ++++++++
sp|P06639|HBA1_PLEWA 2 KLTAEDKHNVKAIWDHVKGHEEAIGAEALYRMFCCMPTTRIYFPA-KDLS-----ERSSYLHSHGKKVVGALTNAVAHID-DIDTAFSK 83
@@ -14918,10 +15444,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83272|HBB1_ANAMI Hemoglobin subunit beta-1 OS=Anarhichas minor GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.7 0.0 5e-38 2.3e-35 4 148 .. 4 145 .. 1 146 [] 0.97
+ 1 ! 126.7 0.0 5.1e-38 2.5e-35 4 148 .. 4 145 .. 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 126.7 bits; conditional E-value: 5e-38
+ == domain 1 score: 126.7 bits; conditional E-value: 5.1e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s++e+ + +++a d+e+ G +L r + ++P+tq++F +F++Lst++++++++++ +Hg kvl+ l +++++d +++ ++ +Ls
sp|P83272|HBB1_ANAMI 4 SDKERAVIISIFAGL--DYEDIGPKALSRCLIVYPWTQRYFGSFGNLSTPAAIMGNPKIAAHGIKVLHGLDRGVKNMD-NIKDAYTELS 89
@@ -14935,10 +15461,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS7|HBB1_BORSA Hemoglobin subunit beta-1 OS=Boreogadus saida GN=hbb1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.4 0.0 6.4e-38 3e-35 4 149 .] 5 147 .] 2 147 .] 0.98
+ 1 ! 126.4 0.0 6.6e-38 3.2e-35 4 149 .] 5 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 126.4 bits; conditional E-value: 6.4e-38
+ == domain 1 score: 126.4 bits; conditional E-value: 6.6e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ e+t+++a+W+k+ d++ G +L+r + ++P+tq++F +F+dLst++++ ++++v +Hg+ l+ l al ++d +++a++++Ls
sp|Q1AGS7|HBB1_BORSA 5 TATERTHIEAIWSKI--DIDVCGPLALQRCLIVYPWTQRYFGSFGDLSTDAAIVGNPKVANHGVVALTGLRTALDHMD-DIKATYATLS 90
@@ -14952,10 +15478,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02206|MYG_HETPO Myoglobin OS=Heterodontus portusjacksoni GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.3 0.1 6.9e-38 3.2e-35 6 149 .] 2 143 .. 1 143 [. 0.98
+ 1 ! 126.3 0.1 7.1e-38 3.5e-35 6 149 .] 2 143 .. 1 143 [. 0.98
Alignments for each domain:
- == domain 1 score: 126.3 bits; conditional E-value: 6.9e-38
+ == domain 1 score: 126.3 bits; conditional E-value: 7.1e-38
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
e+++v++vWa ve d+ +G iL rlfk + +t++ F+kFk++ ++l +++d++kHg++vl Al+++l++ ++k+++++k+L++ H
sp|P02206|MYG_HETPO 2 TEWEHVNKVWAVVEPDIPAVGLAILLRLFKEHKETKDLFPKFKEIP-VQQLGNNEDLRKHGVTVLRALGNILKQ-KGKHSTNVKELADTH 89
@@ -14969,10 +15495,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS5|HBA1_ARCGL Hemoglobin subunit alpha-1 OS=Arctogadus glacialis GN=hba1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.2 0.0 7.2e-38 3.3e-35 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 126.2 0.1 7.4e-38 3.6e-35 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 126.2 bits; conditional E-value: 7.2e-38
+ == domain 1 score: 126.2 bits; conditional E-value: 7.4e-38
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls ++k +vk+ ++k+ + ++ Ga++L rl+ ++P+t+ +F ++kd s +sa v+kHg ++++ + da+ k+d +l++ l +
sp|Q1AGS5|HBA1_ARCGL 2 SLSSKDKATVKEFFGKMSTRSDDIGAEALSRLVAVYPQTKSYFSHWKDAS-----PGSAPVRKHGITIMGGVYDAVTKID-DLKGGLLS 84
@@ -14986,10 +15512,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C239|HBB_ARTOR Hemoglobin subunit beta OS=Artedidraco orianae GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.2 0.0 7.2e-38 3.3e-35 3 149 .] 3 146 .] 1 146 [] 0.97
+ 1 ! 126.2 0.0 7.5e-38 3.6e-35 3 149 .] 3 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 126.2 bits; conditional E-value: 7.2e-38
+ == domain 1 score: 126.2 bits; conditional E-value: 7.5e-38
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s+ e+t ++ ++++ d+++ G + r + ++P+tq++F +F++L +++++++a+v +Hg kvl+ l +++++d ++ + +++Ls
sp|P0C239|HBB_ARTOR 3 WSDSERTIINGIFSQL--DYDDLGPKAFSRCLIVYPWTQRYFSSFGNLDNAEAIMGNANVAAHGIKVLHGLDRGVKNMD-DIMGVYAELS 89
@@ -15000,30 +15526,30 @@ Domain annotation for each sequence (and alignments):
sp|P0C239|HBB_ARTOR 90 SLHSEKLHVDPDNFKLLSDCITIVVAAKLGNAFTPETQAAFQKFLGAVVMFLGKQYH 146
****************************************************99997 PP
->> sp|P80044|HBB_PAGBE Hemoglobin subunit beta OS=Pagothenia bernacchii GN=hbb PE=1 SV=2
+>> sp|P80044|HBB_TREBE Hemoglobin subunit beta OS=Trematomus bernacchii GN=hbb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 126.1 0.0 7.7e-38 3.6e-35 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 126.1 0.1 7.9e-38 3.9e-35 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 126.1 bits; conditional E-value: 7.7e-38
+ == domain 1 score: 126.1 bits; conditional E-value: 7.9e-38
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++e++ + +++ + d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +++++d ++ a+++dLs
- sp|P80044|HBB_PAGBE 5 TDKERSIISDIFSHM--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAIIGNANVAAHGIKVLHGLDRGVKNMD-NIAATYADLST 91
+ sp|P80044|HBB_TREBE 5 TDKERSIISDIFSHM--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAIIGNANVAAHGIKVLHGLDRGVKNMD-NIAATYADLST 91
677888899999988..9************************************************************.*********** PP
globins4 94 lHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
lH++kl+vdp +fklls+++ vlaa++++ fta+ q+a++K+la+v +l ++Y+
- sp|P80044|HBB_PAGBE 92 LHSEKLHVDPDNFKLLSDCITIVLAAKMGHAFTAETQGAFQKFLAVVVSALGKQYH 147
+ sp|P80044|HBB_TREBE 92 LHSEKLHVDPDNFKLLSDCITIVLAAKMGHAFTAETQGAFQKFLAVVVSALGKQYH 147
*****************************************************997 PP
>> sp|Q6Y239|HBB_PAGMA Hemoglobin subunit beta OS=Pagrus major GN=hbb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 125.7 0.0 1e-37 4.6e-35 4 149 .] 5 148 .] 2 148 .] 0.95
+ 1 ! 125.7 0.0 1e-37 5e-35 4 149 .] 5 148 .] 2 148 .] 0.95
Alignments for each domain:
- == domain 1 score: 125.7 bits; conditional E-value: 1e-37
+ == domain 1 score: 125.7 bits; conditional E-value: 1e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ae++++k++W+k+ +v+e G ++L+rl+ ++P+tq++F +F+++st++++ ++++v +Hg++v++ l a+++ld ++++++ Ls+
sp|Q6Y239|HBB_PAGMA 5 TDAERSAIKTLWGKI--NVAEIGPQALTRLMIVYPWTQRHFSSFGNISTNAAILGNEKVAEHGRTVMGGLDRAVQNLD-DIKNAYTLLSQ 91
@@ -15037,10 +15563,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P85082|HBB1_LIPTU Hemoglobin subunit beta-1 OS=Liparis tunicatus GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 125.7 0.0 1e-37 4.8e-35 3 149 .] 4 147 .] 2 147 .] 0.98
+ 1 ! 125.7 0.0 1.1e-37 5.2e-35 3 149 .] 4 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 125.7 bits; conditional E-value: 1e-37
+ == domain 1 score: 125.7 bits; conditional E-value: 1.1e-37
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
++ e++++k ++ak+ d++ +G + r + ++P+tq++F +F++L ++++ ++++v kHg ++++ l+ ++++ld +l ++++L
sp|P85082|HBB1_LIPTU 4 WTDFERSTIKDIFAKI--DYDCVGPAAFARCLIVYPWTQRYFGNFGNLFNAAAIIGNPNVAKHGITIMHGLERGVKNLD-HLTETYEEL 89
@@ -15054,10 +15580,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23017|HBB1_CYGMA Hemoglobin subunit beta-1 OS=Cygnodraco mawsoni GN=hbb1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 125.6 0.1 1.1e-37 5.3e-35 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 125.6 0.1 1.2e-37 5.7e-35 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 125.6 bits; conditional E-value: 1.1e-37
+ == domain 1 score: 125.6 bits; conditional E-value: 1.2e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s+ e t ++ +++ d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +l+++d ++ ++++Ls
sp|P23017|HBB1_CYGMA 5 SKTELTIINDIFSHL--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAIIGNANVAAHGIKVLHGLDRGLKNMD-NIVDAYAELS 90
@@ -15071,10 +15597,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P45720|HBB_TRENE Hemoglobin subunit beta-1/2 OS=Trematomus newnesi PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 125.2 0.0 1.5e-37 6.9e-35 4 149 .] 4 146 .] 1 146 [] 0.97
+ 1 ! 125.2 0.0 1.5e-37 7.4e-35 4 149 .] 4 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 125.2 bits; conditional E-value: 1.5e-37
+ == domain 1 score: 125.2 bits; conditional E-value: 1.5e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++e++ + +++ + d+++ G +L r ++++P+tq++F F++L ++ ++++a+v +Hg kvl+ l +++++d ++ ++ dLs
sp|P45720|HBB_TRENE 4 TDKERSIISDIFSHM--DYDDIGPKALSRCLVVYPWTQRYFSGFGNLYNAEGIMSNANVAAHGIKVLHGLDRGMKNMD-NIADAYTDLST 90
@@ -15088,10 +15614,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83612|HBB1_GOBGI Hemoglobin subunit beta-1 OS=Gobionotothen gibberifrons GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 124.7 0.0 2e-37 9.4e-35 4 149 .] 4 146 .] 1 146 [] 0.97
+ 1 ! 124.7 0.1 2.1e-37 1e-34 4 149 .] 4 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 124.7 bits; conditional E-value: 2e-37
+ == domain 1 score: 124.7 bits; conditional E-value: 2.1e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e+ ++ +++ + d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +++++d ++ a++++Ls
sp|P83612|HBB1_GOBGI 4 TDKERAIITDIFSHM--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAIIGNANVAAHGIKVLHGLDRGVKNMD-NIAATYAELS 89
@@ -15105,10 +15631,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83614|HBB2_GOBGI Hemoglobin subunit beta-2 OS=Gobionotothen gibberifrons GN=hbb2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 124.7 0.0 2e-37 9.5e-35 5 149 .] 5 146 .] 1 146 [] 0.97
+ 1 ! 124.7 0.0 2.1e-37 1e-34 5 149 .] 5 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 124.7 bits; conditional E-value: 2e-37
+ == domain 1 score: 124.7 bits; conditional E-value: 2.1e-37
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ e+ +++ +++k ++e +G L r ++++P+tq++F +F++L ++++ +++ v kHg ++l+ l a++++d ++++++++Ls
sp|P83614|HBB2_GOBGI 5 DFERATINDIFSKL--EYEVVGPATLARCLVVYPWTQRYFGNFGNLYNAAAIAENPMVSKHGITILHGLDRAVKNMD-DIKNTYAELSV 90
@@ -15122,10 +15648,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29628|HBB_NOTAN Hemoglobin subunit beta OS=Notothenia angustata GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 124.7 0.0 2.2e-37 1e-34 4 149 .] 4 146 .] 1 146 [] 0.97
+ 1 ! 124.7 0.1 2.2e-37 1.1e-34 4 149 .] 4 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 124.7 bits; conditional E-value: 2.2e-37
+ == domain 1 score: 124.7 bits; conditional E-value: 2.2e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
s+ e+ ++ +++ + d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +++++d ++ a++++Ls
sp|P29628|HBB_NOTAN 4 SDSERAIITDIFSHM--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAILGNANVAAHGIKVLHGLDRGVKNMD-NIAATYAELSI 90
@@ -15139,10 +15665,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02014|HBA_TARGR Hemoglobin subunit alpha OS=Taricha granulosa GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 124.4 0.9 2.5e-37 1.2e-34 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 124.4 1.3 2.6e-37 1.3e-34 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 124.4 bits; conditional E-value: 2.5e-37
+ == domain 1 score: 124.4 bits; conditional E-value: 2.6e-37
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Ls+++k +vk+ W ++ + e Ga++L r+f+s Pat+++F+ kdLs ++s ++ Hgkkv++Als+a+a++d +++a+l +L
sp|P02014|HBA_TARGR 2 KLSAEDKHNVKTTWDHIKGHEEALGAEALFRMFTSLPATRTYFPA-KDLS-----EGSSFLHSHGKKVMGALSNAVAHID-DIDAALCKL 84
@@ -15156,10 +15682,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10784|HBA2_TRICR Hemoglobin subunit alpha-2 OS=Triturus cristatus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 124.2 1.5 3e-37 1.4e-34 2 149 .] 1 141 [] 1 141 [] 0.98
+ 1 ! 124.2 2.2 3.1e-37 1.5e-34 2 149 .] 1 141 [] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 124.2 bits; conditional E-value: 3e-37
+ == domain 1 score: 124.2 bits; conditional E-value: 3.1e-37
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLs ++k +vkavW v+ + e +Ga++L r f+ P+tq++F kdL+ ++sa ++ Hgkkv+ Al++a+a++d ++e+++++
sp|P10784|HBA2_TRICR 1 VLSSQDKANVKAVWEHVKGHEEVYGAEALHRAFVCDPQTQTYFAG-KDLK-----ENSAYLHGHGKKVMSALTNAVAHID-DIEGSMSK 82
@@ -15173,10 +15699,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07429|HBB1_XENTR Hemoglobin subunit beta-1 OS=Xenopus tropicalis GN=hbb1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 124.2 0.0 3e-37 1.4e-34 2 149 .] 3 147 .] 2 147 .] 0.98
+ 1 ! 124.2 0.0 3.1e-37 1.5e-34 2 149 .] 3 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 124.2 bits; conditional E-value: 3e-37
+ == domain 1 score: 124.2 bits; conditional E-value: 3.1e-37
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L+++e++ ++ W+k+ +++ G+++L ++ ++P+tq++F +F++Ls +++ +a v +Hg+kvl+ +++a++++d ++++ +++
sp|P07429|HBB1_XENTR 3 NLTAKERQLITGTWSKI--CAKTLGKQALGSMLYTYPWTQRYFSSFGNLSSIEAIFHNAAVATHGEKVLTSIGEAIKHMD-DIKGYYAQ 88
@@ -15190,10 +15716,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80945|HBAA_ANGAN Hemoglobin anodic subunit alpha OS=Anguilla anguilla GN=hba PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 123.4 0.0 5.3e-37 2.5e-34 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 123.4 0.0 5.5e-37 2.7e-34 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 123.4 bits; conditional E-value: 5.3e-37
+ == domain 1 score: 123.4 bits; conditional E-value: 5.5e-37
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls+++ vk W k+ +++e G+++L r++ ++P+t+ +F ++kd s +s++vkkHg +l ++d++++++ ++ + l +
sp|P80945|HBAA_ANGAN 2 SLSAKDMAVVKGFWNKIAPKADEIGGEALGRMLRVFPQTKAYFAHWKDTS-----PNSPEVKKHGALILATIGDVVNRIE-NMTTVLGS 84
@@ -15207,10 +15733,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O93349|HBB2_TRENE Hemoglobin subunit beta OS=Trematomus newnesi PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 123.3 0.0 5.5e-37 2.6e-34 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 123.3 0.0 5.7e-37 2.8e-34 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 123.3 bits; conditional E-value: 5.5e-37
+ == domain 1 score: 123.3 bits; conditional E-value: 5.7e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e+t + +++ + d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +++++d ++ ++ dLs
sp|O93349|HBB2_TRENE 5 TDKERTIISDIFSHM--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAIIGNANVAAHGIKVLHGLDRGMKNMD-NIADAYTDLS 90
@@ -15221,13 +15747,30 @@ Domain annotation for each sequence (and alignments):
sp|O93349|HBB2_TRENE 91 TLHSEKLHVDPDNFKLLSDCITIVLAAKMGHAFTAETQGAFQKFLAAVVSALGKQYH 147
******************************************************997 PP
+>> sp|P86879|HBB1_LYCRE Hemoglobin subunit beta-1 OS=Lycodes reticulatus GN=hbb1 PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 123.0 0.0 7e-37 3.4e-34 5 148 .. 5 145 .. 1 146 [] 0.94
+
+ Alignments for each domain:
+ == domain 1 score: 123.0 bits; conditional E-value: 7e-37
+ globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ ++e+ ++ +++ d+e+ G +Lvr + ++P+tq++F F++Lst++++ +++++ +Hg+kvl+ l al+++d ++ +++dLs
+ sp|P86879|HBB1_LYCRE 5 DKERAVILGIFSGL--DYEDIGPKALVRCLIVYPWTQRYFGTFGNLSTPAAISGNPKIAAHGVKVLHGLDMALQHMD-NIMETYADLSI 90
+ 56666666677666..99***********************************************************.99999****** PP
+
+ globins4 94 lHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskY 148
+ lH++ l+vdp +fkll+++l ++aa++++ ft+d q a++K+la+v +l ++Y
+ sp|P86879|HBB1_LYCRE 91 LHSETLHVDPDNFKLLADCLTITIAAKMGHCFTPDTQIAFHKFLAVVVSALGKQY 145
+ ***************************************************9998 PP
+
>> sp|P20244|HBA1_TORMA Hemoglobin subunit alpha-1 OS=Torpedo marmorata PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 122.7 0.7 8.6e-37 4e-34 2 149 .] 1 141 [] 1 141 [] 0.97
+ 1 ! 122.7 1.0 8.9e-37 4.3e-34 2 149 .] 1 141 [] 1 141 [] 0.97
Alignments for each domain:
- == domain 1 score: 122.7 bits; conditional E-value: 8.6e-37
+ == domain 1 score: 122.7 bits; conditional E-value: 8.9e-37
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLse++k+++k++ k++++ e Ga++L rlf +P+t+ +F+kF + s + + vk+Hg vl+Al d+ ++ld +l+ +l++
sp|P20244|HBA1_TORMA 1 VLSEGNKKAIKNLLQKIHSQTEVLGAEALARLFECHPQTKSYFPKFSGFS-----ANDKRVKHHGALVLKALVDTNKHLD-DLPHHLNK 83
@@ -15241,10 +15784,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P16309|HBB_NOTCO Hemoglobin subunit beta OS=Notothenia coriiceps neglecta GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 122.7 0.0 8.5e-37 3.9e-34 4 149 .] 4 146 .] 1 146 [] 0.97
+ 1 ! 122.7 0.0 8.7e-37 4.2e-34 4 149 .] 4 146 .] 1 146 [] 0.97
Alignments for each domain:
- == domain 1 score: 122.7 bits; conditional E-value: 8.5e-37
+ == domain 1 score: 122.7 bits; conditional E-value: 8.7e-37
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
s+ e+ ++ +++ + d+++ G +L r + ++P+tq++F F++L ++++ ++a+v +Hg kvl+ l +++++d k+ ++++Ls
sp|P16309|HBB_NOTCO 4 SDSERAIITDIFSHM--DYDDIGPKALSRCLIVYPWTQRHFSGFGNLYNAEAILGNANVAAHGIKVLHGLDRGVKNMD-KIVDAYAELSM 90
@@ -15258,10 +15801,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS9|HBA1_BORSA Hemoglobin subunit alpha-1 OS=Boreogadus saida GN=hba1 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 122.3 0.0 1.1e-36 5.2e-34 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 122.3 0.1 1.1e-36 5.6e-34 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 122.3 bits; conditional E-value: 1.1e-36
+ == domain 1 score: 122.3 bits; conditional E-value: 1.1e-36
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls+++k +vk ++k+ + ++ Ga++L rl+ ++P+t+ +F ++k s +sa v+kHg ++++ + da+ k+d +l+a l +
sp|Q1AGS9|HBA1_BORSA 2 SLSAKDKATVKDFFGKMSTRSDDIGAEALSRLVAVYPQTKSYFAHWKSAS-----PGSAPVRKHGITIMGGVYDAVGKID-DLKAGLLS 84
@@ -15275,10 +15818,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06714|HBAT_HORSE Hemoglobin subunit theta-1 OS=Equus caballus GN=HBQ1 PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 122.1 0.1 1.4e-36 6.3e-34 2 147 .. 2 140 .. 1 142 [] 0.98
+ 1 ! 122.1 0.1 1.4e-36 6.8e-34 2 147 .. 2 140 .. 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 122.1 bits; conditional E-value: 1.4e-36
+ == domain 1 score: 122.1 bits; conditional E-value: 1.4e-36
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L++a++ +v+a+W k++++v+ + +++L+r+f+ +P t ++F + dLs +s +vk+Hg+kv+dAl+ a+ +l+ +l+ +l++
sp|P06714|HBAT_HORSE 2 ALAAADRATVRALWKKMGSNVGVYATEALERMFLGFPSTTTYFLHL-DLS-----LGSTQVKAHGQKVADALTLAVEHLE-DLPRALSA 83
@@ -15292,10 +15835,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6B0K9|HBM_HUMAN Hemoglobin subunit mu OS=Homo sapiens GN=HBM PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 121.8 0.2 1.7e-36 7.8e-34 3 149 .] 2 141 .] 1 141 [] 0.97
+ 1 ! 121.8 0.3 1.7e-36 8.5e-34 3 149 .] 2 141 .] 1 141 [] 0.97
Alignments for each domain:
- == domain 1 score: 121.8 bits; conditional E-value: 1.7e-36
+ == domain 1 score: 121.8 bits; conditional E-value: 1.7e-36
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+ ++ +vW + + ++ Ga+ L rlf+++P t+ +F++ s + + + ++ Hg+++l A+++a++++d +l+a+l++L+
sp|Q6B0K9|HBM_HUMAN 2 LSAQERAQIAQVWDLIAGHEAQFGAELLLRLFTVYPSTKVYFPHL---S---ACQDATQLLSHGQRMLAAVGAAVQHVD-NLRAALSPLA 84
@@ -15309,10 +15852,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14521|HBB_ELEEL Hemoglobin subunit beta OS=Electrophorus electricus GN=hbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 121.7 0.0 1.7e-36 8.1e-34 2 149 .] 2 147 .] 1 147 [] 0.97
+ 1 ! 121.7 0.0 1.8e-36 8.8e-34 2 149 .] 2 147 .] 1 147 [] 0.97
Alignments for each domain:
- == domain 1 score: 121.7 bits; conditional E-value: 1.7e-36
+ == domain 1 score: 121.7 bits; conditional E-value: 1.8e-36
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L+ea++ ++ ++W+ +e G ++L rl+ ++P+tq++F +F+++s +++++++++v +Hgk v++Al +a+++l+ ++++++++L
sp|P14521|HBB_ELEEL 2 ELTEAQRGAIVNLWGHL--SPDEIGPQALARLLIVYPWTQRYFASFGNISSAAAIMGNPKVAAHGKVVVGALDKAVKNLN-NIKGTYAAL 88
@@ -15326,10 +15869,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02020|HBA_LEPPA Hemoglobin subunit alpha OS=Lepidosiren paradoxus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 121.4 0.0 2.2e-36 1e-33 3 149 .] 3 143 .] 1 143 [] 0.95
+ 1 ! 121.4 0.0 2.3e-36 1.1e-33 3 149 .] 3 143 .] 1 143 [] 0.95
Alignments for each domain:
- == domain 1 score: 121.4 bits; conditional E-value: 2.2e-36
+ == domain 1 score: 121.4 bits; conditional E-value: 2.3e-36
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s+++ +k++W+ ++ + G+++L r+f +P t+ +F++F++ d ++++vk+Hgkkv+dA+++++++l +l++ l++Ls
sp|P02020|HBA_LEPPA 3 FSQDDEVLIKEAWGLL-HQIPNAGGEALARMFSCYPGTKSYFPHFGH----DFSANNEKVKHHGKKVVDAIGQGVQHLH-DLSSCLHTLS 86
@@ -15343,10 +15886,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14399|MYG_MUSAN Myoglobin OS=Mustelus antarcticus GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 121.3 0.3 2.3e-36 1.1e-33 7 149 .] 3 143 .. 1 143 [. 0.98
+ 1 ! 121.3 0.4 2.4e-36 1.2e-33 7 149 .] 3 143 .. 1 143 [. 0.98
Alignments for each domain:
- == domain 1 score: 121.3 bits; conditional E-value: 2.3e-36
+ == domain 1 score: 121.3 bits; conditional E-value: 2.4e-36
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHa 96
+++kv++vW+ ve+d G++iL rlf +P++q++F+kFk+ s elk ad+k+ + +vl Al+++++k ++ +++ +k+L+ H
sp|P14399|MYG_MUSAN 3 DWEKVNSVWSAVESDLTAIGQNILLRLFEQYPESQNHFPKFKNKS-LGELKDTADIKAQADTVLSALGNIVKK-KGSHSQPVKALAATHI 90
@@ -15360,10 +15903,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84604|HBB2_ARCGL Hemoglobin subunit beta-2 OS=Arctogadus glacialis GN=hbb2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 121.1 0.0 2.7e-36 1.2e-33 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 121.1 0.0 2.8e-36 1.3e-33 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 121.1 bits; conditional E-value: 2.7e-36
+ == domain 1 score: 121.1 bits; conditional E-value: 2.8e-36
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ e+ ++ ++a d+ee G L+r + ++P+tq++F F++L ++ +++++ + +Hg k+l+ l al+++d ++++++++Ls
sp|P84604|HBB2_ARCGL 5 TDSERAIINDIFATL--DYEEIGRKSLTRCLIVYPWTQRYFGAFGNLYNAATIMANPLIAAHGTKILHGLDRALKNMD-DIKNTYAELS 90
@@ -15377,10 +15920,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29627|HBBZ_MESAU Hemoglobin subunit beta-Z (Fragment) OS=Mesocricetus auratus GN=HBBZ PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 120.9 0.2 3.2e-36 1.5e-33 47 149 .] 1 102 [] 1 102 [] 0.99
+ 1 ! 120.9 0.3 3.3e-36 1.6e-33 47 149 .] 1 102 [] 1 102 [] 0.99
Alignments for each domain:
- == domain 1 score: 120.9 bits; conditional E-value: 3.2e-36
+ == domain 1 score: 120.9 bits; conditional E-value: 3.3e-36
globins4 47 FkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleK 135
F++Ls ++++++++ +++Hgkkvl+ l+ a++++d +l+ ++++LselH++kl+vdp++fkll++vlv vl ++++keft++vqaa +K
sp|P29627|HBBZ_MESAU 1 FGNLSSAQAIMGNPRIRAHGKKVLTSLGLAVQNMD-NLKETFAHLSELHCDKLHVDPENFKLLGNVLVIVLSTHFAKEFTPEVQAAWQK 88
@@ -15394,10 +15937,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P56691|HBA_DASAK Hemoglobin subunit alpha OS=Dasyatis akajei GN=hba PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 120.6 0.7 3.8e-36 1.8e-33 2 149 .] 2 142 .] 1 142 [] 0.98
+ 1 ! 120.6 1.0 4e-36 1.9e-33 2 149 .] 2 142 .] 1 142 [] 0.98
Alignments for each domain:
- == domain 1 score: 120.6 bits; conditional E-value: 3.8e-36
+ == domain 1 score: 120.6 bits; conditional E-value: 4e-36
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs ++k++++++ ++a++e Gad+L rlf +P+t+++F kF + + +++vkkHgk+v++Al+da +ld +l+ +l+dL
sp|P56691|HBA_DASAK 2 VLSSQNKKAIEELGNLIKANAEAWGADALARLFELHPQTKTYFSKFSGFE-----ACNEQVKKHGKRVMNALADATHHLD-NLHLHLEDL 85
@@ -15411,10 +15954,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84611|HBB2_GADMO Hemoglobin subunit beta-2 OS=Gadus morhua GN=hbb2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.6 0.0 7.9e-36 3.7e-33 4 149 .] 5 147 .] 2 147 .] 0.98
+ 1 ! 119.6 0.0 8.2e-36 4e-33 4 149 .] 5 147 .] 2 147 .] 0.98
Alignments for each domain:
- == domain 1 score: 119.6 bits; conditional E-value: 7.9e-36
+ == domain 1 score: 119.6 bits; conditional E-value: 8.2e-36
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
+++e+t ++ +++ d+ee G L r + ++P+tq++F F++L ++ +++++ + +Hg k+l+ l al+++d ++++++++Ls
sp|P84611|HBB2_GADMO 5 TDEERTIINDIFSTL--DYEEIGRKSLCRCLIVYPWTQRYFGAFGNLYNAETIMANPLIAAHGTKILHGLDRALKNMD-DIKNTYAELS 90
@@ -15428,10 +15971,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68189|MYG_THUTH Myoglobin OS=Thunnus thynnus GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.5 0.1 8.4e-36 3.9e-33 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 119.5 0.2 8.6e-36 4.2e-33 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 119.5 bits; conditional E-value: 8.4e-36
+ == domain 1 score: 119.5 bits; conditional E-value: 8.6e-36
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+ + G+ +L+rlfk +P+tq+ F+kF ++ ++++ ++a v +Hg +vl+ l++ l+ ++ + a lk+L+++H
sp|P68189|MYG_THUTH 2 ADFDAVLKCWGPVEADYTTIGGLVLTRLFKEHPETQKLFPKFAGIA-QADIAGNAAVSAHGATVLKKLGELLKA-KGSHAAILKPLANSH 89
@@ -15442,30 +15985,30 @@ Domain annotation for each sequence (and alignments):
sp|P68189|MYG_THUTH 90 ATKHKIPINNFKLISEVLVKVMHEK--AGLDAGGQTALRNVMGIIIADLEANYK 141
*************************..66667889*****************97 PP
->> sp|P68190|MYG_THUTO Myoglobin OS=Thunnus thynnus orientalis GN=mb PE=1 SV=2
+>> sp|P68190|MYG_THUOR Myoglobin OS=Thunnus orientalis GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.5 0.1 8.4e-36 3.9e-33 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 119.5 0.2 8.6e-36 4.2e-33 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 119.5 bits; conditional E-value: 8.4e-36
+ == domain 1 score: 119.5 bits; conditional E-value: 8.6e-36
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+ + G+ +L+rlfk +P+tq+ F+kF ++ ++++ ++a v +Hg +vl+ l++ l+ ++ + a lk+L+++H
- sp|P68190|MYG_THUTO 2 ADFDAVLKCWGPVEADYTTIGGLVLTRLFKEHPETQKLFPKFAGIA-QADIAGNAAVSAHGATVLKKLGELLKA-KGSHAAILKPLANSH 89
+ sp|P68190|MYG_THUOR 2 ADFDAVLKCWGPVEADYTTIGGLVLTRLFKEHPETQKLFPKFAGIA-QADIAGNAAVSAHGATVLKKLGELLKA-KGSHAAILKPLANSH 89
57789***************************************99.999**********************99.99************* PP
globins4 96 akklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
a+k+k+++++fkl+sevlv+v++++ + + a q+al ++ ++ +l ++Yk
- sp|P68190|MYG_THUTO 90 ATKHKIPINNFKLISEVLVKVMHEK--AGLDAGGQTALRNVMGIIIADLEANYK 141
+ sp|P68190|MYG_THUOR 90 ATKHKIPINNFKLISEVLVKVMHEK--AGLDAGGQTALRNVMGIIIADLEANYK 141
*************************..66667889*****************97 PP
>> sp|Q76G09|MYG_THUOB Myoglobin OS=Thunnus obesus GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.5 0.1 8.4e-36 3.9e-33 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 119.5 0.2 8.6e-36 4.2e-33 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 119.5 bits; conditional E-value: 8.4e-36
+ == domain 1 score: 119.5 bits; conditional E-value: 8.6e-36
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+ + G+ +L+rlfk +P+tq+ F+kF ++ ++++ ++a v +Hg +vl+ l++ l+ ++ + a lk+L+++H
sp|Q76G09|MYG_THUOB 2 ADFDAVLKCWGPVEADYTTIGGLVLTRLFKEHPETQKLFPKFAGIA-QADIAGNAAVSAHGATVLKKLGELLKA-KGSHAAILKPLANSH 89
@@ -15479,10 +16022,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07408|HBA_SQUAC Hemoglobin subunit alpha OS=Squalus acanthias GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.3 0.1 9.5e-36 4.4e-33 2 149 .] 1 141 [] 1 141 [] 0.98
+ 1 ! 119.3 0.2 9.7e-36 4.7e-33 2 149 .] 1 141 [] 1 141 [] 0.98
Alignments for each domain:
- == domain 1 score: 119.3 bits; conditional E-value: 9.5e-36
+ == domain 1 score: 119.3 bits; conditional E-value: 9.7e-36
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+kt++k++ + +++e Ga+ L r+f +tP t+++F kF d s + + vk+Hg kvl+A++da +ld ++ ++l +L
sp|P07408|HBA_SQUAC 1 VLSAADKTAIKHLTGSLRTNAEAWGAESLARMFATTPSTKTYFSKFTDFS-----ANGKRVKAHGGKVLNAVADATDHLD-NVAGHLDPL 84
@@ -15496,10 +16039,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS6|HBB2_BORSA Hemoglobin subunit beta-2 OS=Boreogadus saida GN=hbb2 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.3 0.0 9.4e-36 4.3e-33 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 119.3 0.0 9.7e-36 4.7e-33 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 119.3 bits; conditional E-value: 9.4e-36
+ == domain 1 score: 119.3 bits; conditional E-value: 9.7e-36
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
++ e+ +++++++ d+ee G L r + ++P+tq++F F++L ++ +++++ + +Hg k+l+ l al+++d ++++++++Ls
sp|Q1AGS6|HBB2_BORSA 5 TDSERAIITSIFSNL--DYEEIGRKSLCRCLIVYPWTQRYFGAFGNLYNAETIMANPLIAAHGTKILHGLDRALKNMD-DIKNTYAELS 90
@@ -15513,10 +16056,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O42425|HBA2_GADMO Hemoglobin subunit alpha-2 OS=Gadus morhua GN=hba2 PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 119.2 0.0 1.1e-35 4.9e-33 2 149 .] 2 143 .] 1 143 [] 0.98
+ 1 ! 119.2 0.1 1.1e-35 5.4e-33 2 149 .] 2 143 .] 1 143 [] 0.98
Alignments for each domain:
- == domain 1 score: 119.2 bits; conditional E-value: 1.1e-35
+ == domain 1 score: 119.2 bits; conditional E-value: 1.1e-35
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls ++k +vk ++k+ + ++ Ga++L rl+ ++P+t+ +F ++kd s +sa v+kHg + ++ + da+ k+d +l++ l +
sp|O42425|HBA2_GADMO 2 SLSSKQKATVKDFFSKMSTRSDDIGAEALSRLVAVYPQTKSYFSHWKDAS-----PGSAPVRKHGITTMGGVYDAVGKID-DLKGGLLS 84
@@ -15530,10 +16073,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02205|MYG_THUAL Myoglobin OS=Thunnus albacares GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 118.9 0.1 1.3e-35 5.9e-33 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 118.9 0.2 1.3e-35 6.4e-33 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 118.9 bits; conditional E-value: 1.3e-35
+ == domain 1 score: 118.9 bits; conditional E-value: 1.3e-35
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+ ++G+ +L+rlfk +P+tq+ F+kF ++ ++++ ++a + +Hg +vl+ l++ l+ ++ + a lk+L+++H
sp|P02205|MYG_THUAL 2 ADFDAVLKCWGPVEADYTTMGGLVLTRLFKEHPETQKLFPKFAGIA-QADIAGNAAISAHGATVLKKLGELLKA-KGSHAAILKPLANSH 89
@@ -15547,10 +16090,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83113|HBA2_TELPE Hemoglobin subunit alpha-2 (Fragment) OS=Telmatobius peruvianus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 118.7 0.0 1.5e-35 6.8e-33 7 149 .] 2 137 .] 1 137 [] 0.98
+ 1 ! 118.7 0.1 1.5e-35 7.3e-33 7 149 .] 2 137 .] 1 137 [] 0.98
Alignments for each domain:
- == domain 1 score: 118.7 bits; conditional E-value: 1.5e-35
+ == domain 1 score: 118.7 bits; conditional E-value: 1.5e-35
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
++++++a+W v ++ +++G+++L rlf+s P+t+++F++F d + k s+++k+Hgkkv+dAl++a ++ld +++++l++L +lH
sp|P83113|HBA2_TELPE 2 DRSHILAIWPSVASHGADYGGEALYRLFLSNPQTKTYFPNF-DFH-----KDSPQIKAHGKKVVDALTEASKHLD-NINGALSKLFDLH 83
@@ -15564,10 +16107,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DGJ0|MYG_SARCH Myoglobin OS=Sarda chiliensis GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 118.6 0.4 1.6e-35 7.2e-33 6 149 .] 2 141 .. 1 141 [. 0.95
+ 1 ! 118.6 0.6 1.6e-35 7.8e-33 6 149 .] 2 141 .. 1 141 [. 0.95
Alignments for each domain:
- == domain 1 score: 118.6 bits; conditional E-value: 1.6e-35
+ == domain 1 score: 118.6 bits; conditional E-value: 1.6e-35
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+ +G+ +L+rlfk +P+tq+ F+kF ++ ++++ ++a + +Hg +vl+ l++ l+ ++++ a lk+++++H
sp|Q9DGJ0|MYG_SARCH 2 ADFDAVLKFWGPVEADYTSHGGLVLTRLFKEHPETQKLFPKFTGIA-QADMAGNAAISAHGATVLKKLGELLKA-KGNHAAILKPMANSH 89
@@ -15581,10 +16124,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02015|HBA_AMBME Hemoglobin subunit alpha OS=Ambystoma mexicanum GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 118.4 0.3 1.8e-35 8.2e-33 2 149 .] 3 143 .] 2 143 .] 0.98
+ 1 ! 118.4 0.4 1.8e-35 8.9e-33 2 149 .] 3 143 .] 2 143 .] 0.98
Alignments for each domain:
- == domain 1 score: 118.4 bits; conditional E-value: 1.8e-35
+ == domain 1 score: 118.4 bits; conditional E-value: 1.8e-35
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Ls ++k +vkavW v+ + + G ++L r+f+ +t+++F+ kdL+ ++s ++ Hgkkv++Als+a+a++d +lea+l +L
sp|P02015|HBA_AMBME 3 KLSGEDKANVKAVWDHVKGHEDAFGHEALGRMFTGIEQTHTYFPD-KDLN-----EGSFALHSHGKKVMGALSNAVAHID-DLEATLVKL 85
@@ -15595,13 +16138,30 @@ Domain annotation for each sequence (and alignments):
sp|P02015|HBA_AMBME 86 SDKHAHDLMVDPAEFPRLAEDILVVLGFHLPAKFTYAVQCSIDKFLHVTMRLCISKYR 143
****************************************************99**96 PP
+>> sp|P86887|HBB2_LYCRE Hemoglobin subunit beta-2 OS=Lycodes reticulatus GN=hbb2 PE=1 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 118.1 0.0 2.3e-35 1.1e-32 5 148 .. 5 145 .. 1 146 [] 0.94
+
+ Alignments for each domain:
+ == domain 1 score: 118.1 bits; conditional E-value: 2.3e-35
+ globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+ ++e+ ++ +++ d+e+ G +Lvr + ++P+tq++F F++Ls ++++ ++ ++ +Hg+kvl+ l al+++d ++ +++dLs
+ sp|P86887|HBB2_LYCRE 5 DKERAVILGIFSGL--DYEDIGPKALVRCLIVYPWTQRYFGAFGNLSSAAAISGNLKIAAHGVKVLHGLDMALQHMD-NIMETYADLSI 90
+ 56666666677666..99***********************************************************.99999****** PP
+
+ globins4 94 lHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskY 148
+ lH++ l+vdp +fkll+++l ++aa++++ ft+d q a++K+la+v +l ++Y
+ sp|P86887|HBB2_LYCRE 91 LHSETLHVDPDNFKLLADCLTITIAAKMGHCFTPDTQIAFHKFLAVVVSALGKQY 145
+ ***************************************************9998 PP
+
>> sp|O13078|HBB_MERMR Hemoglobin subunit beta OS=Merlangius merlangus GN=hbb PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 117.2 0.0 4.2e-35 1.9e-32 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 117.2 0.0 4.3e-35 2.1e-32 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 117.2 bits; conditional E-value: 4.2e-35
+ == domain 1 score: 117.2 bits; conditional E-value: 4.3e-35
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++e+ ++++++ d+ee G L r + ++P+tq++F F++L ++ + ++ + +Hg k+l+ l al+++d ++++++++Ls+
sp|O13078|HBB_MERMR 5 TDDERAIINSIFSTL--DYEEIGRKSLCRCLIVYPWTQRYFGGFGNLYNAETILCNPLIAAHGTKILHGLDRALKNMD-DIKNTYAELSQ 91
@@ -15615,10 +16175,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1AGS3|HBB1_ARCGL Hemoglobin subunit beta-1 (Fragment) OS=Arctogadus glacialis GN=hbb1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 116.4 0.0 7.6e-35 3.5e-32 15 149 .] 1 132 [] 1 132 [] 0.98
+ 1 ! 116.4 0.0 7.8e-35 3.8e-32 15 149 .] 1 132 [] 1 132 [] 0.98
Alignments for each domain:
- == domain 1 score: 116.4 bits; conditional E-value: 7.6e-35
+ == domain 1 score: 116.4 bits; conditional E-value: 7.8e-35
globins4 15 WakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklkvdp 103
W+k+ d++ G +L+r + ++P+tq++F +F+dLst ++++++++v +Hg+ l+ l al ++d ++++++++Ls lH++kl+vdp
sp|Q1AGS3|HBB1_ARCGL 1 WSKI--DIDVCGPLALQRCLIVYPWTQRYFGSFGDLSTVAAIMGNPKVAQHGVVALTGLRTALDHMD-EIKSTYAALSVLHSEKLHVDP 86
@@ -15632,10 +16192,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P16417|HBAD_LIOMI Hemoglobin subunit alpha-D OS=Liophis miliaris GN=HBAD PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 115.8 0.0 1.2e-34 5.5e-32 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 115.8 0.0 1.2e-34 6e-32 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 115.8 bits; conditional E-value: 1.2e-34
+ == domain 1 score: 115.8 bits; conditional E-value: 1.2e-34
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL+++++ ++a +k ++ e+ Gad+L rl+ ++P+++++F +F +Ls +s+d+ + g+kv +Al al++ld +++++l++
sp|P16417|HBAD_LIOMI 1 VLTAEDRRLLQASVGKLGCRLEDIGADALNRLLITFPQSKTYFSHF-NLS-----PGSKDIIHQGEKVGKALDSALKHLD-DIRGTLSQ 82
@@ -15649,10 +16209,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P20245|HBA2_TORMA Hemoglobin subunit alpha-2 OS=Torpedo marmorata PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 115.7 0.8 1.2e-34 5.8e-32 2 149 .] 1 141 [] 1 141 [] 0.97
+ 1 ! 115.7 1.1 1.3e-34 6.2e-32 2 149 .] 1 141 [] 1 141 [] 0.97
Alignments for each domain:
- == domain 1 score: 115.7 bits; conditional E-value: 1.2e-34
+ == domain 1 score: 115.7 bits; conditional E-value: 1.3e-34
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vLse++k+ +k++ k++++ e Ga++L rlf +P+t+ +F+kF + s + + vk+Hg vl+Al d+ +ld +l+ +l++
sp|P20245|HBA2_TORMA 1 VLSEGNKKIIKNLLQKIHSQTEVLGAEALARLFECHPQTKSYFPKFSGFS-----ANDKRVKHHGDLVLKALVDTNDHLD-DLPHHLHK 83
@@ -15666,10 +16226,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10786|HBB2_TRICR Hemoglobin subunit beta-2 OS=Triturus cristatus GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 115.7 0.0 1.2e-34 5.8e-32 1 148 [. 1 145 [] 1 145 [] 0.99
+ 1 ! 115.7 0.0 1.3e-34 6.2e-32 1 148 [. 1 145 [] 1 145 [] 0.99
Alignments for each domain:
- == domain 1 score: 115.7 bits; conditional E-value: 1.2e-34
+ == domain 1 score: 115.7 bits; conditional E-value: 1.3e-34
globins4 1 vvLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk 89
v+L++++++++ a+ +kv +v+ G++ L rl+++ P+++++F F+dLs d++ +++v +Hg kv+ + +a ++ld +l+ ++
sp|P10786|HBB2_TRICR 1 VHLTAEDRKEIAAILGKV--NVDSLGGQCLARLIVVNPWSRRYFHDFGDLSSCDAICRNPKVLAHGAKVMRSIVEATKHLD-NLREYYA 86
@@ -15683,10 +16243,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14397|MYG_GALGA Myoglobin OS=Galeorhinus galeus GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 115.0 0.2 2e-34 9.4e-32 6 149 .] 2 143 .. 1 143 [. 0.98
+ 1 ! 115.0 0.3 2.1e-34 1e-31 6 149 .] 2 143 .. 1 143 [. 0.98
Alignments for each domain:
- == domain 1 score: 115.0 bits; conditional E-value: 2e-34
+ == domain 1 score: 115.0 bits; conditional E-value: 2.1e-34
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a++ kv++vW+ +ea++ +G++iL rlf +P++q +F+k k+ s elk ad+k+ + +vl+Al+++++k ++++++ +k+L+ H
sp|P14397|MYG_GALGA 2 ADWDKVNSVWSAMEANITAVGQNILLRLFEQYPESQSYFPKLKNKS-LGELKDTADIKAQADTVLKALGNIVKK-KGNHSQPVKALAATH 89
@@ -15700,10 +16260,10 @@ Domain annotation for each sequence (and alignments):
>> sp|A1A4Q3|HBM_BOVIN Hemoglobin subunit mu OS=Bos taurus GN=HBM PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.8 0.0 2.3e-34 1.1e-31 3 149 .] 2 141 .] 1 141 [] 0.97
+ 1 ! 114.8 0.0 2.4e-34 1.2e-31 3 149 .] 2 141 .] 1 141 [] 0.97
Alignments for each domain:
- == domain 1 score: 114.8 bits; conditional E-value: 2.3e-34
+ == domain 1 score: 114.8 bits; conditional E-value: 2.4e-34
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
Ls++e+ ++++vW + + + Ga+ L rlf+++P t+ +F + +d de ++ Hg+++l+A++ a++ +d +l+a l++L+
sp|A1A4Q3|HBM_BOVIN 2 LSAQERAHITQVWDLIAGHEAPFGAELLRRLFTVYPSTKVYFRHLGDHP--DE----VQLLSHGQRMLQAVGVAVQYMD-NLRAVLSPLA 84
@@ -15717,10 +16277,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DGJ1|MYG_MAKNI Myoglobin OS=Makaira nigricans GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.9 1.1 2.2e-34 1e-31 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 114.9 1.6 2.3e-34 1.1e-31 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 114.9 bits; conditional E-value: 2.2e-34
+ == domain 1 score: 114.9 bits; conditional E-value: 2.3e-34
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ + v++ W++vead++++G+ +L+rlf+ +P+tq+ F+kF ++ ++++ ++a + +Hg +vl+ l++ l+ ++ + a +k+++++H
sp|Q9DGJ1|MYG_MAKNI 2 ADFEMVLKHWGPVEADYATHGNLVLTRLFTEHPETQKLFPKFAGIA-KADMAGNAAISAHGATVLKKLGELLKA-KGSHAAIIKPMANSH 89
@@ -15731,30 +16291,30 @@ Domain annotation for each sequence (and alignments):
sp|Q9DGJ1|MYG_MAKNI 90 ATKHKIPIKNFELISEVIGKVMHEK--AGLDAAGQKALKNVMTTIIADIEANYK 141
*************************..77789999***************9997 PP
->> sp|P02135|HBB_RANCA Hemoglobin subunit beta OS=Rana catesbeiana GN=HBB PE=1 SV=1
+>> sp|P02135|HBB_LITCT Hemoglobin subunit beta OS=Lithobates catesbeiana GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.8 0.0 2.4e-34 1.1e-31 10 149 .] 4 140 .] 2 140 .] 0.96
+ 1 ! 114.8 0.0 2.5e-34 1.2e-31 10 149 .] 4 140 .] 2 140 .] 0.96
Alignments for each domain:
- == domain 1 score: 114.8 bits; conditional E-value: 2.4e-34
+ == domain 1 score: 114.8 bits; conditional E-value: 2.5e-34
globins4 10 kvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakkl 99
v a akv d +G+++L rl+ ++P+tq++F F++L +d++ + +v +Hg++vld ++++l++ ++l+a +++Lse+H+ +l
- sp|P02135|HBB_RANCA 4 DVSAFLAKV--DKRAVGGEALARLLIVYPWTQRYFSTFGNLGSADAISHNSKVLAHGQRVLDSIEEGLKH-PZBLKAYYAKLSERHSGEL 90
+ sp|P02135|HBB_LITCT 4 DVSAFLAKV--DKRAVGGEALARLLIVYPWTQRYFSTFGNLGSADAISHNSKVLAHGQRVLDSIEEGLKH-PZBLKAYYAKLSERHSGEL 90
577888999..8899*******************************************************.66***************** PP
globins4 100 kvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
+vdp +f l++vl++v+a ++ +eft++ q al+ + v ++la+ Y+
- sp|P02135|HBB_RANCA 91 HVDPANFYRLGNVLITVMARHFHEEFTPELQCALHSSFCAVGEALAKGYH 140
+ sp|P02135|HBB_LITCT 91 HVDPANFYRLGNVLITVMARHFHEEFTPELQCALHSSFCAVGEALAKGYH 140
**********************************************9996 PP
>> sp|Q701N9|MYG_TETNG Myoglobin OS=Tetraodon nigroviridis GN=mb PE=3 SV=4
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.6 0.1 2.7e-34 1.2e-31 7 149 .] 3 141 .. 1 141 [. 0.96
+ 1 ! 114.6 0.1 2.7e-34 1.3e-31 7 149 .] 3 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 114.6 bits; conditional E-value: 2.7e-34
+ == domain 1 score: 114.6 bits; conditional E-value: 2.7e-34
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHa 96
+ v++ W++vead+ +G+ +L+rlf+ P+tq+ F+kF ++ + el ++a v +Hg +vl+ l++ l+ ++++ a l++L+++Ha
sp|Q701N9|MYG_TETNG 3 DFDMVLKFWGPVEADYSAHGGMVLTRLFTENPETQQLFPKFVGIA-QSELAGNAAVSAHGATVLKKLGELLKA-KGNHAAILQPLANSHA 90
@@ -15768,10 +16328,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6I7B0|MYG_AUXRO Myoglobin OS=Auxis rochei GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.3 0.2 3.4e-34 1.6e-31 6 149 .] 2 141 .. 1 141 [. 0.97
+ 1 ! 114.3 0.2 3.5e-34 1.7e-31 6 149 .] 2 141 .. 1 141 [. 0.97
Alignments for each domain:
- == domain 1 score: 114.3 bits; conditional E-value: 3.4e-34
+ == domain 1 score: 114.3 bits; conditional E-value: 3.5e-34
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead +++G+ +L rlfk +P tq+ F+kF ++ + +l ++a v +Hg +vl+ l++ l+ ++++ a +k+L+++H
sp|Q6I7B0|MYG_AUXRO 2 ADFDAVLKCWGPVEADFNTVGGMVLARLFKDHPDTQKLFPKFAGIA-AGDLAGNAAVAAHGGTVLKKLGELLKA-KGNHAAIIKPLANSH 89
@@ -15785,10 +16345,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14398|MYG_GALJA Myoglobin OS=Galeorhinus japonicus GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.2 0.1 3.5e-34 1.6e-31 6 149 .] 2 143 .. 1 143 [. 0.98
+ 1 ! 114.2 0.2 3.6e-34 1.8e-31 6 149 .] 2 143 .. 1 143 [. 0.98
Alignments for each domain:
- == domain 1 score: 114.2 bits; conditional E-value: 3.5e-34
+ == domain 1 score: 114.2 bits; conditional E-value: 3.6e-34
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a++ kv++vW+ ve ++ G++iL rlf +P+++++F+k k+ s elk ad+k+ + +vl Al+++++k ++++++ +k+L+ H
sp|P14398|MYG_GALJA 2 ABWDKVNSVWSAVEQNITAIGQNILLRLFEQYPESEDYFPKLKNKS-LGELKDTADIKAQADTVLRALGNIVKK-KGDHSQPVKALAATH 89
@@ -15802,10 +16362,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84216|HBA_BATEA Hemoglobin subunit alpha OS=Bathyraja eatonii GN=HBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.0 1.8 4.1e-34 1.9e-31 2 149 .] 2 142 .] 1 142 [] 0.97
+ 1 ! 114.0 2.5 4.2e-34 2e-31 2 149 .] 2 142 .] 1 142 [] 0.97
Alignments for each domain:
- == domain 1 score: 114.0 bits; conditional E-value: 4.1e-34
+ == domain 1 score: 114.0 bits; conditional E-value: 4.2e-34
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
vLs+a+k+++++v ++ ++e +Gad+L rlf +P+t+++F++F + + a vk+Hg kv++A+ +a +ld +l+++l++L
sp|P84216|HBA_BATEA 2 VLSDANKQEIHHVAELIKPHAEAVGADALARLFELHPQTKTYFPNFSGYH-----ATDAPVKAHGAKVINAVLKAAEHLD-DLPKHLEKL 85
@@ -15819,10 +16379,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O09232|HBB_MELAE Hemoglobin subunit beta OS=Melanogrammus aeglefinus GN=hbb PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.0 0.0 4e-34 1.9e-31 4 149 .] 5 147 .] 2 147 .] 0.96
+ 1 ! 114.0 0.0 4.2e-34 2e-31 4 149 .] 5 147 .] 2 147 .] 0.96
Alignments for each domain:
- == domain 1 score: 114.0 bits; conditional E-value: 4e-34
+ == domain 1 score: 114.0 bits; conditional E-value: 4.2e-34
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++e+ ++ ++++ d+ee G L r + ++P+tq++F F++L ++ + ++ + +Hg k+l+ l al+++d ++++++++Ls
sp|O09232|HBB_MELAE 5 TDDERAIINGIFSNL--DYEEIGRKSLCRCLIVYPWTQRYFGGFGNLYNAETILCNPLIAAHGTKILHGLDRALKNMD-DIKNTYAELSL 91
@@ -15836,10 +16396,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18991|HBB1_UROHA Hemoglobin subunit beta-1 (Fragments) OS=Uromastyx hardwickii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 114.0 0.0 4.3e-34 2e-31 2 149 .] 2 146 .] 1 146 [] 0.98
+ 1 ! 114.0 0.0 4.4e-34 2.1e-31 2 149 .] 2 146 .] 1 146 [] 0.98
Alignments for each domain:
- == domain 1 score: 114.0 bits; conditional E-value: 4.3e-34
+ == domain 1 score: 114.0 bits; conditional E-value: 4.4e-34
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+ +++ek ++a W+kv dv+ +G++ L l++++P+tq+fFe F++Lst+ ++ ++++ v++ ++dal++ld ++ +
sp|P18991|HBB1_UROHA 2 HWTAEEKALINAYWGKV--DVGSVGGETLANLLVVYPWTQRFFEDFGNLSTPSAILNNPKXXXXXXXVITSFGDALKNLD-NVXXXXXK 87
@@ -15853,10 +16413,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DGJ2|MYG_THUAA Myoglobin OS=Thunnus alalunga GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 113.4 0.1 6.4e-34 2.9e-31 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 113.4 0.1 6.6e-34 3.2e-31 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 113.4 bits; conditional E-value: 6.4e-34
+ == domain 1 score: 113.4 bits; conditional E-value: 6.6e-34
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+ + G+ +L+rlfk +P tq+ F+kF ++ +++l ++a + +Hg +vl+ l++ l+ ++ + + lk+++++H
sp|Q9DGJ2|MYG_THUAA 2 ADFDAVLKCWGPVEADYTTIGGLVLTRLFKEHPDTQKLFPKFAGIA-QADLAGNAAISAHGATVLKKLGELLKA-KGSHASILKPMANSH 89
@@ -15870,10 +16430,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DGI8|MYG_KATPE Myoglobin OS=Katsuwonus pelamis GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 112.7 0.4 1.1e-33 4.9e-31 7 149 .] 3 140 .. 1 140 [. 0.96
+ 1 ! 112.7 0.6 1.1e-33 5.3e-31 7 149 .] 3 140 .. 1 140 [. 0.96
Alignments for each domain:
- == domain 1 score: 112.7 bits; conditional E-value: 1.1e-33
+ == domain 1 score: 112.7 bits; conditional E-value: 1.1e-33
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHa 96
+ +v++ W+ vead +++G+ +L rlfk +P+tq+ F+kF +++ ++ ++a v +Hg +vl+ l++ l+ ++++ a +k+L+++Ha
sp|Q9DGI8|MYG_KATPE 3 DLDAVLKCWGAVEADFNTVGGLVLARLFKDHPETQKLFPKFAGIT--GDIAGNAAVAAHGATVLKKLGELLKA-KGNHAAIIKPLANSHA 89
@@ -15887,10 +16447,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02204|MYG_CYPCA Myoglobin OS=Cyprinus carpio GN=mb PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 112.0 0.1 1.7e-33 7.9e-31 7 149 .] 3 141 .. 1 141 [. 0.95
+ 1 ! 112.0 0.1 1.7e-33 8.5e-31 7 149 .] 3 141 .. 1 141 [. 0.95
Alignments for each domain:
- == domain 1 score: 112.0 bits; conditional E-value: 1.7e-33
+ == domain 1 score: 112.0 bits; conditional E-value: 1.7e-33
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHa 96
+ + v++ W+ vead e++G+++L+rlfk +P+tq+ F+kF ++ ++el ++a vk+Hg +vl+ l++ l+ +++ a lk+L+ Ha
sp|P02204|MYG_CYPCA 3 DAELVLKCWGGVEADFEGTGGEVLTRLFKQHPETQKLFPKFVGIA-SNELAGNAAVKAHGATVLKKLGELLKA-RGDHAAILKPLATTHA 90
@@ -15904,10 +16464,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C0U7|HBAD_DRYCE Hemoglobin subunit alpha-D OS=Drymarchon corais erebennus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 111.5 0.0 2.5e-33 1.2e-30 2 149 .] 1 141 [] 1 141 [] 0.99
+ 1 ! 111.5 0.0 2.6e-33 1.3e-30 2 149 .] 1 141 [] 1 141 [] 0.99
Alignments for each domain:
- == domain 1 score: 111.5 bits; conditional E-value: 2.5e-33
+ == domain 1 score: 111.5 bits; conditional E-value: 2.6e-33
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
vL+++++ ++a +k ++ e+ Gad+L rl+ ++P+++++F +F +Ls +s+d+ + g+kv +Al al++ld +++++l++
sp|P0C0U7|HBAD_DRYCE 1 VLTAEDRRLLQASVGKLGCRLEDIGADALNRLLIVFPQSKTYFSHF-NLS-----PGSKDIVHQGEKVGKALDSALKHLD-DIRGTLSQ 82
@@ -15921,10 +16481,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DEN9|MYG_GOBGI Myoglobin OS=Gobionotothen gibberifrons GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 110.5 0.1 4.9e-33 2.2e-30 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 110.5 0.1 5e-33 2.4e-30 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 110.5 bits; conditional E-value: 4.9e-33
+ == domain 1 score: 110.5 bits; conditional E-value: 5e-33
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ v++ W++vead+ ++G +L+rlf+ +P+t++ F+kF ++ + +l + a v +Hg +vl+ l+d l+ + + a lk+Ls +H
sp|Q9DEN9|MYG_GOBGI 2 ADFDMVLKCWGPVEADYTTHGSLVLTRLFTEHPETLKLFPKFAGIA-HGDLAGDAGVSAHGATVLNKLGDLLKA-RGAHAALLKPLSSSH 89
@@ -15938,10 +16498,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6VN46|MYG_DANRE Myoglobin OS=Danio rerio GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 109.5 0.0 1e-32 4.8e-30 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 109.5 0.0 1.1e-32 5.2e-30 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 109.5 bits; conditional E-value: 1e-32
+ == domain 1 score: 109.5 bits; conditional E-value: 1.1e-32
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a++ v++ W+ vead++ G+++L rlfk +P t++ F+kF ++s + +l +s+ v +Hg +vl+ l++ l+ ++++ a lk+L++ H
sp|Q6VN46|MYG_DANRE 2 ADHDLVLKCWGAVEADYAANGGEVLNRLFKEYPDTLKLFPKFSGIS-QGDLAGSPAVAAHGATVLKKLGELLKA-KGDHAALLKPLANTH 89
@@ -15955,10 +16515,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DEN8|MYG_NOTCO Myoglobin OS=Notothenia coriiceps neglecta GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 108.7 0.1 1.8e-32 8.4e-30 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 108.7 0.1 1.9e-32 9.1e-30 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 108.7 bits; conditional E-value: 1.8e-32
+ == domain 1 score: 108.7 bits; conditional E-value: 1.9e-32
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ v++ W+++ead++++G+ +L+rlf+ +P+t++ F+kF ++ + +l + a v +Hg +vl+ l+d l+ + + a lk+Ls +H
sp|Q9DEN8|MYG_NOTCO 2 ADFDMVLKCWGPMEADYATHGGLVLTRLFTEHPETLKLFPKFAGIA-HGDLAGDAGVSAHGATVLNKLGDLLKA-RGAHAALLKPLSSSH 89
@@ -15972,10 +16532,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7T044|MYG_CHARH Myoglobin OS=Channichthys rhinoceratus GN=mb PE=3 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 108.4 0.1 2.3e-32 1.1e-29 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 108.4 0.1 2.4e-32 1.1e-29 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 108.4 bits; conditional E-value: 2.3e-32
+ == domain 1 score: 108.4 bits; conditional E-value: 2.4e-32
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ v++ W++vead +++G +L+rlf+ +P+t++ F+kF ++ + +l + a v +Hg +vl+ l+d l+ + + a lk+Ls +H
sp|Q7T044|MYG_CHARH 2 ADFDMVLKCWGPVEADHATHGSLVLTRLFTEHPETLKLFPKFAGIA-HGDLAGDAGVSAHGATVLKKLGDLLKA-RGGHAALLKPLSSSH 89
@@ -15986,13 +16546,13 @@ Domain annotation for each sequence (and alignments):
sp|Q7T044|MYG_CHARH 90 ATKHKIPIINFKLIAEVIGKVMEEK--AGLDAAGQTALRNVMAIIITDMEADYK 141
************************9..7788999*****************997 PP
->> sp|P06640|HBA2_PLEWA Hemoglobin subunit alpha-2 (Fragment) OS=Pleurodeles waltlii PE=2 SV=1
+>> sp|P06640|HBA2_PLEWA Hemoglobin subunit alpha-2 (Fragment) OS=Pleurodeles waltl PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 108.0 0.3 3e-32 1.4e-29 10 149 .] 1 133 [] 1 133 [] 0.98
+ 1 ! 108.0 0.4 3.1e-32 1.5e-29 10 149 .] 1 133 [] 1 133 [] 0.98
Alignments for each domain:
- == domain 1 score: 108.0 bits; conditional E-value: 3e-32
+ == domain 1 score: 108.0 bits; conditional E-value: 3.1e-32
globins4 10 kvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakk 98
+vkavW v+ + e +Ga++L r f+ P+tq++F kdLs ++sa ++ Hgkkv+ Al++a+a++d ++++ +++Ls++Ha++
sp|P06640|HBA2_PLEWA 1 NVKAVWEHVKGHEEVYGAEALYRAFLCDPQTQTYFAG-KDLS-----ENSAFLHSHGKKVMCALTNAIAHID-DIDGCMSKLSDKHAHE 82
@@ -16006,10 +16566,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07409|HBB_SQUAC Hemoglobin subunit beta OS=Squalus acanthias GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 107.6 3.1 3.9e-32 1.8e-29 2 149 .] 2 142 .] 1 142 [] 0.94
+ 1 ! 107.6 4.5 4e-32 1.9e-29 2 149 .] 2 142 .] 1 142 [] 0.94
Alignments for each domain:
- == domain 1 score: 107.6 bits; conditional E-value: 3.9e-32
+ == domain 1 score: 107.6 bits; conditional E-value: 4e-32
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkks.advkkHgkkvldAlsdalakldekleaklkd 90
+ + +ek v+avW+k d + + a +L+rlf+++P+t+++F kF++ ++++s v++H+ kv+ Al+ a +++d +++ ++ +
sp|P07409|HBB_SQUAC 2 HWTGEEKALVNAVWTKT--DHQAVVAKALERLFVVYPWTKTYFVKFNG-----KFHASdSTVQTHAGKVVSALTVAYNHID-DVKPHFVE 83
@@ -16023,10 +16583,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DEP1|MYG_PSEGE Myoglobin OS=Pseudochaenichthys georgianus GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 107.6 0.0 3.9e-32 1.8e-29 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 107.6 0.1 4e-32 1.9e-29 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 107.6 bits; conditional E-value: 3.9e-32
+ == domain 1 score: 107.6 bits; conditional E-value: 4e-32
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ v++ W+ vead++++G +L+rlf+ +P+t++ F+kF ++ + +l + a v +Hg +vl+ l+d l+ + + a lk+Ls +H
sp|Q9DEP1|MYG_PSEGE 2 ADFDMVLKCWGLVEADYATYGSLVLTRLFTEHPETLKLFPKFAGIA-HGDLAGDAGVSAHGATVLNKLGDLLKA-RGGHAALLKPLSSSH 89
@@ -16040,10 +16600,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DGI9|MYG_SCOJP Myoglobin OS=Scomber japonicus GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 107.4 0.1 4.5e-32 2.1e-29 6 149 .] 2 141 .. 1 141 [. 0.95
+ 1 ! 107.4 0.2 4.6e-32 2.3e-29 6 149 .] 2 141 .. 1 141 [. 0.95
Alignments for each domain:
- == domain 1 score: 107.4 bits; conditional E-value: 4.5e-32
+ == domain 1 score: 107.4 bits; conditional E-value: 4.6e-32
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ +v++ W++vead+++ G+ +L+rlf+ +P tq+ F+kF ++ ++ ++a + +Hg +vl+ l+++l+ ++++ + +k+L+++H
sp|Q9DGI9|MYG_SCOJP 2 ADFDAVLKFWGPVEADYDKIGNMVLTRLFTEHPDTQKLFPKFAGIG-LGDMAGNAAISAHGATVLKKLAEVLKA-KGNHAGIIKPLANSH 89
@@ -16057,10 +16617,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P87497|MYG_CHIRA Myoglobin OS=Chionodraco rastrospinosus GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 107.3 0.1 4.7e-32 2.2e-29 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 107.3 0.1 4.9e-32 2.4e-29 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 107.3 bits; conditional E-value: 4.7e-32
+ == domain 1 score: 107.3 bits; conditional E-value: 4.9e-32
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ v++ W+++ead +++G +L+rlf+ +P+t++ F+kF ++ + +l + a v +Hg +vl+ l+d l+ + + a lk+Ls +H
sp|P87497|MYG_CHIRA 2 ADFDMVLKCWGPMEADHATHGSLVLTRLFTEHPETLKLFPKFAGIA-HGDLAGDAGVSAHGATVLNKLGDLLKA-RGAHAALLKPLSSSH 89
@@ -16074,10 +16634,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9DEP0|MYG_CRYAN Myoglobin OS=Cryodraco antarcticus GN=mb PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 106.1 0.1 1.1e-31 5.1e-29 6 149 .] 2 141 .. 1 141 [. 0.96
+ 1 ! 106.1 0.1 1.1e-31 5.5e-29 6 149 .] 2 141 .. 1 141 [. 0.96
Alignments for each domain:
- == domain 1 score: 106.1 bits; conditional E-value: 1.1e-31
+ == domain 1 score: 106.1 bits; conditional E-value: 1.1e-31
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselH 95
a+ v++ W++vead +++G +L+rlf+ +P+t++ F+kF ++ + +l + a v +Hg +vl+ l+d l+ + + a lk+Ls +H
sp|Q9DEP0|MYG_CRYAN 2 ADFDMVLKCWGPVEADHATHGSLVLTRLFTEHPETLKLFPKFAGIA-HGDLAGDAGVSAHGATVLKKLGDLLKA-RGGHAALLKPLSSSH 89
@@ -16091,10 +16651,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9YGW2|HBA_MUSGR Hemoglobin subunit alpha OS=Mustelus griseus GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 106.1 0.1 1.1e-31 5.3e-29 4 149 .] 4 141 .] 1 141 [] 0.92
+ 1 ! 106.1 0.2 1.2e-31 5.7e-29 4 149 .] 4 141 .] 1 141 [] 0.92
Alignments for each domain:
- == domain 1 score: 106.1 bits; conditional E-value: 1.1e-31
+ == domain 1 score: 106.1 bits; conditional E-value: 1.2e-31
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ ek+++ ++ e +Ga+ L rlf+++P ++ +Fe +kd s + a+v+ Hg kv+ A+ +a ++d +l+++l++L+
sp|Q9YGW2|HBA_MUSGR 4 TACEKQTIGKIAQVLAKSPEAYGAECLARLFVTHPGSKSYFE-YKDYS-----AAGAKVQVHGGKVIRAVVKAAEHVD-DLHSHLETLAL 86
@@ -16108,10 +16668,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02021|HBA_HETPO Hemoglobin subunit alpha OS=Heterodontus portusjacksoni GN=HBA PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 105.0 1.6 2.5e-31 1.2e-28 5 149 .] 11 148 .] 8 148 .] 0.91
+ 1 ! 105.0 2.3 2.6e-31 1.2e-28 5 149 .] 11 148 .] 8 148 .] 0.91
Alignments for each domain:
- == domain 1 score: 105.0 bits; conditional E-value: 2.5e-31
+ == domain 1 score: 105.0 bits; conditional E-value: 2.6e-31
globins4 5 eaektkvkavWakvea.dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+a++ ++ + +kv a ++e Ga++L r+f+++ at+ +F+ +kd + +++ +k+Hg kv++Al++a +ld +l+++l++L+
sp|P02021|HBA_HETPO 11 AADRAELA-ALSKVLAqNAEAFGAEALARMFTVYAATKSYFKDYKDFT-----AAAPSIKAHGAKVVTALAKACDHLD-DLKTHLHKLAT 93
@@ -16125,10 +16685,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O13077|HBB_GADMO Hemoglobin subunit beta OS=Gadus morhua GN=hbb PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 104.6 0.0 3.2e-31 1.5e-28 4 149 .] 5 147 .] 2 147 .] 0.97
+ 1 ! 104.6 0.0 3.3e-31 1.6e-28 4 149 .] 5 147 .] 2 147 .] 0.97
Alignments for each domain:
- == domain 1 score: 104.6 bits; conditional E-value: 3.2e-31
+ == domain 1 score: 104.6 bits; conditional E-value: 3.3e-31
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
++ e+ +++++++ d+ee G L r + ++P+tq++F F++L ++ + ++ + +Hg k+l+ l al+++d ++++++++Ls
sp|O13077|HBB_GADMO 5 TDSERAIINSIFSNL--DYEEIGRKSLCRCLIVYPWTQRYFGGFGNLYNAETILCNPLIAAHGTKILHGLDRALKNMD-DIKNTYAELSL 91
@@ -16142,10 +16702,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P07420|HBB_DASVI Hemoglobin subunit beta (Fragment) OS=Dasyurus viverrinus GN=HBB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 102.1 0.3 1.9e-30 8.9e-28 62 149 .] 1 87 [] 1 87 [] 0.99
+ 1 ! 102.1 0.4 2e-30 9.7e-28 62 149 .] 1 87 [] 1 87 [] 0.99
Alignments for each domain:
- == domain 1 score: 102.1 bits; conditional E-value: 1.9e-30
+ == domain 1 score: 102.1 bits; conditional E-value: 2e-30
globins4 62 vkkHgkkvldAlsdalakldekleaklkdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
v++Hg kvl ++da+++ld +l++++++LselH++kl+ dp++fkll+++lv la++++keft++vqaa +K +a va++la+kY+
sp|P07420|HBB_DASVI 1 VRAHGAKVLVSFGDAVKNLD-NLKGTFAKLSELHCDKLHEDPENFKLLGNILVICLAEHFGKEFTPEVQAATQKTVAGVANALAHKYH 87
@@ -16154,10 +16714,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02143|HBB_HETPO Hemoglobin subunit beta OS=Heterodontus portusjacksoni GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 98.6 1.2 2.3e-29 1e-26 2 149 .] 2 141 .] 1 141 [] 0.97
+ 1 ! 98.6 1.7 2.3e-29 1.1e-26 2 149 .] 2 141 .] 1 141 [] 0.97
Alignments for each domain:
- == domain 1 score: 98.6 bits; conditional E-value: 2.3e-29
+ == domain 1 score: 98.6 bits; conditional E-value: 2.3e-29
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+ se e ++++ W + d + Ga +L r+f ++P+t ++F + k+ + s vk+H+kkv +Al+ a+ +l ++++++ dL
sp|P02143|HBB_HETPO 2 HWSEVELHEITTTWKSI--DKHSLGAKALARMFIVYPWTTRYFGNLKEFT-----ACSYGVKEHAKKVTGALGVAVTHLG-DVKSQFTDL 83
@@ -16168,30 +16728,30 @@ Domain annotation for each sequence (and alignments):
sp|P02143|HBB_HETPO 84 SKKHAEELHVDVESFKLLAKCFVVELGILLKDKFAPQTQAIWEKYFGVVVDAISKEYH 141
*******************************************************997 PP
->> sp|P02022|HBAM_RANCA Hemoglobin heart muscle subunit alpha-type OS=Rana catesbeiana PE=1 SV=1
+>> sp|P02022|HBAM_LITCT Hemoglobin heart muscle subunit alpha-type OS=Lithobates catesbeiana PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 95.4 0.0 2.2e-28 1e-25 3 146 .. 2 131 .. 1 132 [] 0.96
+ 1 ! 95.4 0.1 2.2e-28 1.1e-25 3 146 .. 2 131 .. 1 132 [] 0.96
Alignments for each domain:
- == domain 1 score: 95.4 bits; conditional E-value: 2.2e-28
+ == domain 1 score: 95.4 bits; conditional E-value: 2.2e-28
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+ ek++v ++W k+ + ++ Ga+ ++rlfk +P+t+ fF +F d+s +s+d+ +Hg k+ +Al++a+++ld +l++
- sp|P02022|HBAM_RANCA 2 LSDSEKSAVASLWEKIAPQTNKLGAESMERLFKNHPETKSFFSRF-DIS-----PGSQDLLTHGGKIFGALGEAIKSLD-----NLQKY 79
+ sp|P02022|HBAM_LITCT 2 LSDSEKSAVASLWEKIAPQTNKLGAESMERLFKNHPETKSFFSRF-DIS-----PGSQDLLTHGGKIFGALGEAIKSLD-----NLQKY 79
89*******************************************.899.....9************************.....89999 PP
globins4 92 selHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakllas 146
+lH++klk+ ++klls+++++v a++++e qaa +K+l v l+s
- sp|P02022|HBAM_RANCA 80 QDLHTNKLKLSSDHMKLLSAAIIEVFTAHFGGEVN---QAAWNKFLGEVGAILTS 131
+ sp|P02022|HBAM_LITCT 80 QDLHTNKLKLSSDHMKLLSAAIIEVFTAHFGGEVN---QAAWNKFLGEVGAILTS 131
*****************************888864...9*******999998876 PP
>> sp|P20247|HBB2_TORMA Hemoglobin subunit beta-2 OS=Torpedo marmorata GN=HBB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 91.9 2.7 2.8e-27 1.3e-24 2 149 .] 2 142 .] 1 142 [] 0.95
+ 1 ! 91.9 3.9 2.8e-27 1.4e-24 2 149 .] 2 142 .] 1 142 [] 0.95
Alignments for each domain:
- == domain 1 score: 91.9 bits; conditional E-value: 2.8e-27
+ == domain 1 score: 91.9 bits; conditional E-value: 2.8e-27
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksad.vkkHgkkvldAlsdalakldekleaklk 89
L+++ek ++++W++v +v e a +L+r+f ++P+t + F +F++ ++k+s++ v+ H+++v +Als+a+ l +++++++
sp|P20247|HBB2_TORMA 2 SLTDEEKHLIQHIWSNV--NVVEITAKALERVFYVYPWTTRLFTSFNH-----NFKASDKgVHDHAVNVSKALSAAIGDLH-NVNKNFS 82
@@ -16205,10 +16765,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P20246|HBB1_TORMA Hemoglobin subunit beta-1 OS=Torpedo marmorata GN=HBB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 91.8 1.8 2.9e-27 1.4e-24 2 149 .] 2 142 .] 1 142 [] 0.95
+ 1 ! 91.8 2.6 3e-27 1.5e-24 2 149 .] 2 142 .] 1 142 [] 0.95
Alignments for each domain:
- == domain 1 score: 91.8 bits; conditional E-value: 2.9e-27
+ == domain 1 score: 91.8 bits; conditional E-value: 3e-27
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkks.advkkHgkkvldAlsdalakldekleaklk 89
L+++e ++++W++v +v e a +L+r+f ++P+t + F +F++ ++k+s ++v+ H+++v +A+s+a+ l +++++++
sp|P20246|HBB1_TORMA 2 SLTDEEIRLIQHIWSNV--NVVEITAKALERVFYVYPWTTRLFTSFNH-----NFKASdKQVHDHAVNVSNAISAAIGDLH-DINKNFS 82
@@ -16222,10 +16782,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M3C1|MYG_AILME Myoglobin (Fragment) OS=Ailuropoda melanoleuca GN=MB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 91.6 0.3 3.4e-27 1.6e-24 3 80 .. 2 76 .. 1 92 [. 0.90
+ 1 ! 91.6 0.4 3.5e-27 1.7e-24 3 80 .. 2 76 .. 1 92 [. 0.90
Alignments for each domain:
- == domain 1 score: 91.6 bits; conditional E-value: 3.4e-27
+ == domain 1 score: 91.6 bits; conditional E-value: 3.5e-27
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl 80
Ls++e++ v++vW+kvead +++G+++L+rlfk +P+t+e+F+kFk+L+ k+s+d+kkHg++v +Al+ +l+k
sp|Q7M3C1|MYG_AILME 2 LSDGEWQLVLNVWGKVEADLAGHGQEVLIRLFKGHPETLEKFDKFKHLK---SEKGSEDLKKHGNTVETALEGILKKK 76
@@ -16234,10 +16794,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7SID0|GLBF1_EPTBU Globin-F1 OS=Eptatretus burgeri PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 90.8 0.0 5.8e-27 2.7e-24 3 148 .. 11 146 .] 9 146 .] 0.95
+ 1 ! 90.8 0.1 6e-27 2.9e-24 3 148 .. 11 146 .] 9 146 .] 0.95
Alignments for each domain:
- == domain 1 score: 90.8 bits; conditional E-value: 5.8e-27
+ == domain 1 score: 90.8 bits; conditional E-value: 6e-27
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
L++++k++++++W k++ ++e++ +iL r++k +P++q F+kF + +l++ ++vk+ ++ + + ++++++++d e++ ++l
sp|Q7SID0|GLBF1_EPTBU 11 LTDGDKKAINKIWPKIYKEYEQYSLNILLRFLKCFPQAQASFPKFSTK--KSNLEQDPEVKHQAVVIFNKVNEIINSMDnqEEIIKSL 96
@@ -16251,10 +16811,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P56692|HBB_DASAK Hemoglobin subunit beta OS=Dasyatis akajei GN=HBB PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 88.7 0.9 2.6e-26 1.2e-23 2 149 .] 3 142 .] 2 142 .] 0.96
+ 1 ! 88.7 1.4 2.7e-26 1.3e-23 2 149 .] 3 142 .] 2 142 .] 0.96
Alignments for each domain:
- == domain 1 score: 88.7 bits; conditional E-value: 2.6e-26
+ == domain 1 score: 88.7 bits; conditional E-value: 2.7e-26
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
+Lse++ +k vW v d ++ a +L+r+f+++P+t + F k ++L ++++ v++H+ kv Al++a+ l+ k+e ++++L
sp|P56692|HBB_DASAK 3 KLSEDQEHYIKGVWKDV--DHKQITAKALERVFVVYPWTTRLFSKLQGLFSANDI----GVQQHADKVQRALGEAIDDLK-KVEINFQNL 85
@@ -16268,10 +16828,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09106|HBAT_PAPAN Hemoglobin subunit theta-1 OS=Papio anubis GN=HBQ1 PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 88.1 0.0 4.1e-26 1.9e-23 2 106 .. 2 99 .. 1 101 [. 0.98
+ 1 ! 88.1 0.0 4.2e-26 2e-23 2 106 .. 2 99 .. 1 101 [. 0.98
Alignments for each domain:
- == domain 1 score: 88.1 bits; conditional E-value: 4.1e-26
+ == domain 1 score: 88.1 bits; conditional E-value: 4.2e-26
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
Ls++++ v+a+W k +++v+ + +++L+r f+++Pat+++F + dLs +sa+v++Hg+kv+dAls a+ +ld +l+ +l++
sp|P09106|HBAT_PAPAN 2 ALSAEDRALVRALWKKLGSNVGVYATEALERTFLAFPATKTYFSHL-DLS-----PGSAQVRAHGQKVADALSLAVERLD-DLPRALSA 83
@@ -16285,10 +16845,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02209|GLB3_MYXGL Globin-3 OS=Myxine glutinosa PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 86.9 0.3 9.6e-26 4.5e-23 2 148 .. 11 147 .. 10 148 .. 0.95
+ 1 ! 86.9 0.4 9.9e-26 4.8e-23 2 148 .. 11 147 .. 10 148 .. 0.95
Alignments for each domain:
- == domain 1 score: 86.9 bits; conditional E-value: 9.6e-26
+ == domain 1 score: 86.9 bits; conditional E-value: 9.9e-26
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+Lse++k+++++ W +++ + e+ +L ++k +P++q+ F+kF + +l++ + vk ++ +++A++ ++ +d +++ l
sp|P02209|GLB3_MYXGL 11 TLSEGDKKAIRESWPQIYKNFEQNSLAVLLEFLKKFPKAQDSFPKFSAK--KSHLEQDPAVKLQAEVIINAVNHTIGLMDkeAAMKKYL 97
@@ -16302,10 +16862,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9YGW1|HBB_MUSGR Hemoglobin subunit beta OS=Mustelus griseus GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 85.6 0.6 2.3e-25 1.1e-22 4 149 .] 5 137 .] 2 137 .] 0.91
+ 1 ! 85.6 0.9 2.3e-25 1.1e-22 4 149 .] 5 137 .] 2 137 .] 0.91
Alignments for each domain:
- == domain 1 score: 85.6 bits; conditional E-value: 2.3e-25
+ == domain 1 score: 85.6 bits; conditional E-value: 2.3e-25
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++e+ ++ + + d++++ +++L r+fk++P+t+++F+k d + H+ v++Al+da++++d ++++ +kdLs+
sp|Q9YGW1|HBB_MUSGR 5 TQEERDEISKTFQGT--DMKTVVTQALDRMFKVYPWTNRYFQKRTDFR----------SSIHAGIVVGALQDAVKHMD-DVKTLFKDLSK 81
@@ -16319,10 +16879,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80017|GLBD_CAUAR Globin D, coelomic OS=Caudina arenicola PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 82.3 0.1 2.4e-24 1.1e-21 3 147 .. 13 156 .. 11 158 .. 0.96
+ 1 ! 82.3 0.2 2.5e-24 1.2e-21 3 147 .. 13 156 .. 11 158 .. 0.96
Alignments for each domain:
- == domain 1 score: 82.3 bits; conditional E-value: 2.4e-24
+ == domain 1 score: 82.3 bits; conditional E-value: 2.5e-24
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkd 90
L++aek +++ W + ++ + ad+ +r+f P++q++F++ +Ls ++el+ s ++++H+ +v ++ + ++d e l+ l++
sp|P80017|GLBD_CAUAR 13 LTPAEKDLIRSTWDQLMTHRTGFVADVFIRIFHNDPTAQRKFPQMAGLS-PAELRTSRQMHAHAIRVSALMTTYIDEMDtEVLPELLAT 100
@@ -16336,10 +16896,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18979|HBA1_UROHA Hemoglobin subunit alpha-1 (Fragment) OS=Uromastyx hardwickii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 79.7 0.2 1.5e-23 6.9e-21 2 98 .. 1 90 [] 1 90 [] 0.98
+ 1 ! 79.7 0.2 1.5e-23 7.5e-21 2 98 .. 1 90 [] 1 90 [] 0.98
Alignments for each domain:
- == domain 1 score: 79.7 bits; conditional E-value: 1.5e-23
+ == domain 1 score: 79.7 bits; conditional E-value: 1.5e-23
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
vL++++k++v+a+W+ v + e Ga++L rlf+++Pa++++F +F dL+ ++sa+++ kv+dAl++a+++ld +l++++++Ls
sp|P18979|HBA1_UROHA 1 VLTDDDKNHVRAIWGHVSNNPEAFGAEALYRLFTAHPASKTYFSHF-DLH-----ENSAQIRXXXXKVVDALTQAVNNLD-DLSGAISKLS 84
@@ -16353,10 +16913,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84217|HBB_BATEA Hemoglobin subunit beta OS=Bathyraja eatonii GN=HBB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 78.9 0.5 2.8e-23 1.3e-20 4 149 .] 4 141 .] 1 141 [] 0.90
+ 1 ! 78.9 0.8 2.9e-23 1.4e-20 4 149 .] 4 141 .] 1 141 [] 0.90
Alignments for each domain:
- == domain 1 score: 78.9 bits; conditional E-value: 2.8e-23
+ == domain 1 score: 78.9 bits; conditional E-value: 2.9e-23
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLse 93
+++ ++ +W+k + +v + a +L+r+f+++P+t + F++F++ + v+ H++kv++Al a+ +l +++a +k+Lse
sp|P84217|HBB_BATEA 4 TDKKAAYITGIWSKLDKKV--TTAHALERVFTVYPWTTRLFKSFNGHF----KAGDSGVQGHAEKVVGALDTAVLHLH-DIDAGYKKLSE 86
@@ -16370,10 +16930,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P0C227|GLB_NERAL Globin OS=Nerita albicilla PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 78.2 0.0 4.6e-23 2.1e-20 3 146 .. 9 152 .. 7 155 .. 0.91
+ 1 ! 78.2 0.0 4.7e-23 2.3e-20 3 146 .. 9 152 .. 7 155 .. 0.91
Alignments for each domain:
- == domain 1 score: 78.2 bits; conditional E-value: 4.6e-23
+ == domain 1 score: 78.2 bits; conditional E-value: 4.7e-23
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkd 90
Ls+++k ++k+ Wa ad+ + G ++Lv++fk +P q +F+kF d + +delk+ a++ +H+ +v + l++++ ++d +k+ + l +
sp|P0C227|GLB_NERAL 9 LSADQKAAIKSSWAAFAADITGNGSNVLVQFFKDYPGDQSYFKKF-DGKKPDELKGDAQLATHASQVFGSLNNMIDSMDdpDKMVGLLCK 97
@@ -16387,10 +16947,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15161|GLB1_PARCH Globin-1 OS=Paracaudina chilensis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 66.7 0.3 1.5e-19 7.1e-17 3 146 .. 13 155 .. 11 157 .. 0.95
+ 1 ! 66.7 0.4 1.6e-19 7.7e-17 3 146 .. 13 155 .. 11 157 .. 0.95
Alignments for each domain:
- == domain 1 score: 66.7 bits; conditional E-value: 1.5e-19
+ == domain 1 score: 66.7 bits; conditional E-value: 1.6e-19
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkd 90
L+ a+k+ v++ W + + +d +r+f Pa+q++F++ ++s + +l++s ++++H+ +v +s+ + +ld + l+ l++
sp|P15161|GLB1_PARCH 13 LTLAQKKIVRKTWHQLMRNKTSFVTDLFIRIFAYDPAAQNKFPQMAGMS-ASQLRSSRQMQAHAIRVSSIMSEYIEELDsDILPELLAT 100
@@ -16404,10 +16964,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80018|GLBC_CAUAR Globin C, coelomic OS=Caudina arenicola PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 66.4 0.5 2e-19 9.1e-17 3 146 .. 13 155 .. 11 157 .. 0.95
+ 1 ! 66.4 0.8 2e-19 9.9e-17 3 146 .. 13 155 .. 11 157 .. 0.95
Alignments for each domain:
- == domain 1 score: 66.4 bits; conditional E-value: 2e-19
+ == domain 1 score: 66.4 bits; conditional E-value: 2e-19
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkd 90
L+ a+k+ v++ W + + +d+ +r+f P +q++F++ ++s + +l++s ++++H+ +v +s+ + +ld + l+ l++
sp|P80018|GLBC_CAUAR 13 LTLAQKKIVRKTWHQLMRNKTSFVTDVFIRIFAYDPSAQNKFPQMAGMS-ASQLRSSRQMQAHAIRVSSIMSEYVEELDsDILPELLAT 100
@@ -16421,10 +16981,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09965|GLB_DOLAU Globin OS=Dolabella auricularia PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 62.5 0.0 3.1e-18 1.4e-15 3 145 .. 2 142 .. 1 146 [] 0.92
+ 1 ! 62.5 0.0 3.2e-18 1.5e-15 3 145 .. 2 142 .. 1 146 [] 0.92
Alignments for each domain:
- == domain 1 score: 62.5 bits; conditional E-value: 3.1e-18
+ == domain 1 score: 62.5 bits; conditional E-value: 3.2e-18
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkd 90
Ls+ae + v + W++v a+ + G + L+ lf ++P + +fF Fk+ s +++++s+++++ + +++ l++ + + d +k+ a l +
sp|P09965|GLB_DOLAU 2 LSAAEAEVVAKSWGPVFANKDANGDNFLIALFEAYPDSPNFFADFKGKS-IADIRASPKLRNVSSRIVSRLNEFVSSAaDaGKMAAMLDQ 90
@@ -16438,10 +16998,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02211|GLB_APLKU Globin OS=Aplysia kurodai PE=1 SV=4
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 59.1 0.0 3.5e-17 1.6e-14 2 147 .. 2 143 .. 1 145 [] 0.93
+ 1 ! 59.1 0.0 3.7e-17 1.8e-14 2 147 .. 2 143 .. 1 145 [] 0.93
Alignments for each domain:
- == domain 1 score: 59.1 bits; conditional E-value: 3.5e-17
+ == domain 1 score: 59.1 bits; conditional E-value: 3.7e-17
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklk 89
Ls+ae v + Wa+v+a+ + G L lf +P+ ++F Fk+ s +++k+s++++ + ++ + l++ +++ d +k++a l+
sp|P02211|GLB_APLKU 2 SLSAAEADLVGKSWAPVYANKDANGDAFLLSLFEKFPNNANYFADFKGKS-IADIKASPKLRDVSSRIFTRLNEFVNNAaDaGKMSAMLS 90
@@ -16455,10 +17015,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14393|GLB_APLJU Globin OS=Aplysia juliana PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 54.9 0.0 6.6e-16 3e-13 3 147 .. 2 142 .. 1 144 [] 0.91
+ 1 ! 54.9 0.0 6.8e-16 3.3e-13 3 147 .. 2 142 .. 1 144 [] 0.91
Alignments for each domain:
- == domain 1 score: 54.9 bits; conditional E-value: 6.6e-16
+ == domain 1 score: 54.9 bits; conditional E-value: 6.8e-16
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkd 90
Ls+a+ + + Wa+v a+ + Ga Lv lf+ +P++ +fF+ Fk+ s +++++s++++ + ++ l++ + + d +k+ + l++
sp|P14393|GLB_APLJU 2 LSAADAGLLAQSWAPVFANSDANGASFLVALFTQFPESANFFNDFKGKS-LADIQASPKLRDVSSRIFARLNEFVSNAaDaGKMGSMLQQ 90
@@ -16472,10 +17032,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29287|GLB_BURLE Globin OS=Bursatella leachii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 54.9 0.0 6.8e-16 3.1e-13 3 145 .. 2 142 .. 1 146 [] 0.86
+ 1 ! 54.9 0.0 7e-16 3.4e-13 3 145 .. 2 142 .. 1 146 [] 0.86
Alignments for each domain:
- == domain 1 score: 54.9 bits; conditional E-value: 6.8e-16
+ == domain 1 score: 54.9 bits; conditional E-value: 7e-16
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkd 90
Ls ae + + Wa+v a+ + G + L+ lf ++P + +fF Fk+ s +++++s++++ + ++++ l+d + + d +k+ + l +
sp|P29287|GLB_BURLE 2 LSGAEADLLAKSWAPVFANKDANGDNFLIALFEAFPDSANFFGDFKGKS-IADIRASPKLRSVSSRIVNRLNDFVGNAaDaGKMAGMLDQ 90
@@ -16489,10 +17049,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02210|GLB_APLLI Globin OS=Aplysia limacina PE=1 SV=4
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 54.2 0.1 1.1e-15 5e-13 2 146 .. 2 144 .. 1 147 [] 0.89
+ 1 ! 54.2 0.1 1.1e-15 5.5e-13 2 146 .. 2 144 .. 1 147 [] 0.89
Alignments for each domain:
- == domain 1 score: 54.2 bits; conditional E-value: 1.1e-15
+ == domain 1 score: 54.2 bits; conditional E-value: 1.1e-15
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklk 89
Ls+ae + Wa+v a+ + G Lv lf +P + +fF Fk+ s +++k+s++++ + ++ + l++ +++ d +k++a l+
sp|P02210|GLB_APLLI 2 SLSAAEADLAGKSWAPVFANKDANGDAFLVALFEKFPDSANFFADFKGKS-VADIKASPKLRDVSSRIFTRLNEFVNNAaDaGKMSAMLS 90
@@ -16506,10 +17066,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TT33|HBB_COLGU Hemoglobin subunit beta (Fragment) OS=Colobus guereza GN=HBB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 52.8 0.1 2.9e-15 1.3e-12 109 149 .] 1 41 [] 1 41 [] 0.98
+ 1 ! 52.8 0.2 3e-15 1.5e-12 109 149 .] 1 41 [] 1 41 [] 0.98
Alignments for each domain:
- == domain 1 score: 52.8 bits; conditional E-value: 2.9e-15
+ == domain 1 score: 52.8 bits; conditional E-value: 3e-15
globins4 109 lsevlvdvlaarlpkeftadvqaaleKllalvakllaskYk 149
l++vlv+vla++++keft++vqaa++K++a va++la+kY+
sp|Q9TT33|HBB_COLGU 1 LGNVLVCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 41
@@ -16518,39 +17078,39 @@ Domain annotation for each sequence (and alignments):
>> sp|P81041|HBO_MACEU Hemoglobin subunit omega (Fragment) OS=Macropus eugenii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 52.5 0.0 3.7e-15 1.7e-12 2 54 .. 2 52 .. 1 54 [] 0.94
+ 1 ! 52.5 0.0 3.8e-15 1.9e-12 2 54 .. 2 52 .. 1 54 [] 0.94
Alignments for each domain:
- == domain 1 score: 52.5 bits; conditional E-value: 3.7e-15
+ == domain 1 score: 52.5 bits; conditional E-value: 3.8e-15
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLsted 54
+ +++ek+ ++a+Wak+ d+ee Ga +L rl++++P+tq++F++F++Ls +
sp|P81041|HBO_MACEU 2 HWTAEEKQIILAIWAKI--DIEEAGAAALSRLLVVYPWTQRYFKNFGNLSSPT 52
6799*************..******************************9876 PP
->> sp|P14821|GLB2A_SCAIN Globin-2 A chain OS=Scapharca inaequivalvis PE=1 SV=2
+>> sp|P14821|GLB2A_ANAIN Globin-2 A chain OS=Anadara inaequivalvis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 51.6 0.0 7e-15 3.3e-12 4 143 .. 12 149 .. 9 150 .] 0.90
+ 1 ! 51.6 0.0 7.2e-15 3.5e-12 4 143 .. 12 149 .. 9 150 .] 0.90
Alignments for each domain:
- == domain 1 score: 51.6 bits; conditional E-value: 7e-15
+ == domain 1 score: 51.6 bits; conditional E-value: 7.2e-15
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
sea k +++ W+ ad+e +G + lf+ P t+++F + +d++ + k++ +++ H+ ++ Al++ + +ld +l+ ++
- sp|P14821|GLB2A_SCAIN 12 SEAIKANLRRSWGVLSADIEATGLMLMSNLFTLRPDTKTYFTRLGDVQ---KGKANSKLRGHAITLTYALNNFVDSLDdpSRLKCVVE 96
+ sp|P14821|GLB2A_ANAIN 12 SEAIKANLRRSWGVLSADIEATGLMLMSNLFTLRPDTKTYFTRLGDVQ---KGKANSKLRGHAITLTYALNNFVDSLDdpSRLKCVVE 96
788899****************************************99...889***********************73556666677 PP
globins4 90 dLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakl 143
+ + +H ++ k+ f + e + ++l+ar+++ ++ dv +a l+ +v+ +
- sp|P14821|GLB2A_SCAIN 97 KFAVNHINR-KISGDAFGAIVEPMKETLKARMGNYYSDDVAGAWAALVGVVQAA 149
+ sp|P14821|GLB2A_ANAIN 97 KFAVNHINR-KISGDAFGAIVEPMKETLKARMGNYYSDDVAGAWAALVGVVQAA 149
777777654.9********************************99999888765 PP
>> sp|Q8T7J9|GLB_YOLEI Globin OS=Yoldia eightsi PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 49.4 0.0 3.4e-14 1.6e-11 3 144 .. 3 143 .. 1 146 [. 0.92
+ 1 ! 49.4 0.0 3.5e-14 1.7e-11 3 144 .. 3 143 .. 1 146 [. 0.92
Alignments for each domain:
- == domain 1 score: 49.4 bits; conditional E-value: 3.4e-14
+ == domain 1 score: 49.4 bits; conditional E-value: 3.5e-14
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdL 91
s+a+ +v++ W + ad++ G i + lf+ P q +F+ Fk+L +lk++++ kH + vl+ l+ +l l+ +l+ +k++
sp|Q8T7J9|GLB_YOLEI 3 FSAAQVDTVRSNWCSMTADIDAAGYRIFELLFQRNPDYQSKFKAFKGLA-VSALKGNPNAEKHIRIVLGGLGRILGALNtPELDVIYKEM 91
@@ -16564,10 +17124,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M416|GLB1_LIOJA Globin-1 OS=Liolophura japonica PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 47.4 0.0 1.4e-13 6.6e-11 4 136 .. 3 132 .. 1 141 [. 0.89
+ 1 ! 47.4 0.0 1.5e-13 7.2e-11 4 136 .. 3 132 .. 1 141 [. 0.89
Alignments for each domain:
- == domain 1 score: 47.4 bits; conditional E-value: 1.4e-13
+ == domain 1 score: 47.4 bits; conditional E-value: 1.5e-13
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
s+++ +++k a v + ++ G+ +++f P e+F+ +k+ s de+k+s+++ +Hg kv++ l++ +++++ ++ lk+
sp|Q7M416|GLB1_LIOJA 3 SADQAKALKDDIAVVAQNPNGCGKALFIKMFEMNPGWVEKFPAWKGKS-LDEIKASDKITNHGGKVINELANWINNIN-SASGILKSQG 89
@@ -16581,10 +17141,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19363|GLB1_ARTSX Extracellular globin-E1 (Fragment) OS=Artemia sp. PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 46.5 0.0 2.5e-13 1.2e-10 3 95 .. 56 150 .. 54 192 .. 0.84
+ 1 ! 46.5 0.0 2.6e-13 1.3e-10 3 95 .. 56 150 .. 54 192 .. 0.84
Alignments for each domain:
- == domain 1 score: 46.5 bits; conditional E-value: 2.5e-13
+ == domain 1 score: 46.5 bits; conditional E-value: 2.6e-13
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld...ekleakl 88
Ls ek++++ W+kv + +e+G+ +lf ++P+ q++F F++++ + l +s++ +H+++v+ Al ++l l+ +++ +
sp|P19363|GLB1_ARTSX 56 LSGLEKNAILDTWGKVRGNLQEVGKATFGKLFAAHPEYQQMFRFFQGVQ-LAFLVQSPKFAAHTQRVVSALDQTLLALNrpsDQFVYMI 143
@@ -16598,10 +17158,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02215|GLB_CERRH Globin OS=Cerithidea rhizophorarum PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 46.2 0.0 3.3e-13 1.5e-10 3 141 .. 2 143 .. 1 149 [. 0.89
+ 1 ! 46.2 0.0 3.4e-13 1.6e-10 3 141 .. 2 143 .. 1 149 [. 0.89
Alignments for each domain:
- == domain 1 score: 46.2 bits; conditional E-value: 3.3e-13
+ == domain 1 score: 46.2 bits; conditional E-value: 3.4e-13
globins4 3 LseaektkvkavW...akveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleak 87
L +a k+++ + W ak a++++ Ga lfk +P t+++F +F+++s ++e+k k+H+ v ++ ++ ++d + +++
sp|P02215|GLB_CERRH 2 LQPASKSALASSWktlAKDAATIQNNGATLFSLLFKQFPDTRNYFTHFGNMS-DAEMKTTGVGKAHSMAVFAGIGSMIDSMDdaDCMNGL 90
@@ -16615,10 +17175,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M424|GLB_BUCUU Globin OS=Buccinum undatum PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 45.6 1.0 5e-13 2.3e-10 3 142 .. 2 143 .. 1 145 [. 0.83
+ 1 ! 45.6 1.5 5.2e-13 2.5e-10 3 142 .. 2 143 .. 1 145 [. 0.83
Alignments for each domain:
- == domain 1 score: 45.6 bits; conditional E-value: 5e-13
+ == domain 1 score: 45.6 bits; conditional E-value: 5.2e-13
globins4 3 LseaektkvkavWakvea...dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleakl 88
L+e +kt++k W ++ +sGa lfks+P t+++F++F d + + + k+Hg v + l++ + ++d + + l
sp|Q7M424|GLB_BUCUU 2 LTEPQKTALKDSWKLLAGdgkTMMKSGALLFGLLFKSHPDTKKHFKHFDDAT-FATM-DTGVGKAHGMAVFTGLGAFVSSIDdDACVNGL 89
@@ -16632,10 +17192,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9TT34|HBB_PONPY Hemoglobin subunit beta (Fragment) OS=Pongo pygmaeus GN=HBB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 45.4 0.2 5.6e-13 2.6e-10 114 149 .] 1 36 [] 1 36 [] 0.98
+ 1 ! 45.4 0.3 5.8e-13 2.8e-10 114 149 .] 1 36 [] 1 36 [] 0.98
Alignments for each domain:
- == domain 1 score: 45.4 bits; conditional E-value: 5.6e-13
+ == domain 1 score: 45.4 bits; conditional E-value: 5.8e-13
globins4 114 vdvlaarlpkeftadvqaaleKllalvakllaskYk 149
v+vla++++keft++vqaa++K++a va++la+kY+
sp|Q9TT34|HBB_PONPY 1 VCVLAHHFGKEFTPQVQAAYQKVVAGVANALAHKYH 36
@@ -16644,10 +17204,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O77003|GLB_BIOGL Globin OS=Biomphalaria glabrata PE=3 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 45.2 0.1 6.8e-13 3.1e-10 2 145 .. 2 149 .. 1 151 [] 0.91
+ 1 ! 45.2 0.1 7e-13 3.4e-10 2 145 .. 2 149 .. 1 151 [] 0.91
Alignments for each domain:
- == domain 1 score: 45.2 bits; conditional E-value: 6.8e-13
+ == domain 1 score: 45.2 bits; conditional E-value: 7e-13
globins4 2 vLseaektkvkavWakveadvee...sGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..eklea 86
Ls+a+k+++ a W k a +++ G + + +f P+ + F kF+ + +d+lk+ a+ k + ++ Al l++++ ++l+a
sp|O77003|GLB_BIOGL 2 SLSDADKKALDASWKKLTAGADGkknAGINLVLWMFANVPNMRAQFSKFNANQSDDALKGDAEFIKQVNVIVAALDGLLQSVNnpGQLQA 91
@@ -16658,30 +17218,30 @@ Domain annotation for each sequence (and alignments):
sp|O77003|GLB_BIOGL 92 NLDKLAKSHV-NLKIGLEFFGPLQQNIHSFIESALGVGAGSDEPKAWGNLIAAFNETLK 149
*********8.59**************99999999999999988888888888887776 PP
->> sp|P14822|GLB2B_SCAIN Globin-2 B chain OS=Scapharca inaequivalvis PE=1 SV=1
+>> sp|P14822|GLB2B_ANAIN Globin-2 B chain OS=Anadara inaequivalvis PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 43.8 0.0 1.7e-12 8e-10 5 142 .. 14 149 .. 9 151 .] 0.90
+ 1 ! 43.8 0.0 1.8e-12 8.7e-10 5 142 .. 14 149 .. 9 151 .] 0.90
Alignments for each domain:
- == domain 1 score: 43.8 bits; conditional E-value: 1.7e-12
+ == domain 1 score: 43.8 bits; conditional E-value: 1.8e-12
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkd 90
+++k ++ W+ d+e++G + lfk+ P ++ +F + +d+s + k + +++ H+ +++ Al++ + ld e+l+ +++
- sp|P14822|GLB2B_SCAIN 14 ADQKDLLRMSWGVLSVDMEGTGLMLMANLFKTSPSAKGKFARLGDVS---AGKDNSKLRGHSITLMYALQNFVDALDdvERLKCVVEK 98
+ sp|P14822|GLB2B_ANAIN 14 ADQKDLLRMSWGVLSVDMEGTGLMLMANLFKTSPSAKGKFARLGDVS---AGKDNSKLRGHSITLMYALQNFVDALDdvERLKCVVEK 98
3457788999*************************************...7799**********************648889999999 PP
globins4 91 LselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvak 142
+ +H ++ ++ f + l ++l+ar+++ f d +a l+a+v+
- sp|P14822|GLB2B_SCAIN 99 FAVNHINR-QISADEFGEIVGPLRQTLKARMGNYFDEDTVSAWASLVAVVQA 149
+ sp|P14822|GLB2B_ANAIN 99 FAVNHINR-QISADEFGEIVGPLRQTLKARMGNYFDEDTVSAWASLVAVVQA 149
99999876.899****99999*********************9999999876 PP
>> sp|P81044|HBAZ_MACEU Hemoglobin subunit zeta (Fragments) OS=Macropus eugenii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 31.9 3.0 8e-09 3.7e-06 31 113 .. 16 77 .. 7 79 .] 0.88
+ 1 ! 31.9 4.3 8.3e-09 4e-06 31 113 .. 16 77 .. 7 79 .] 0.88
Alignments for each domain:
- == domain 1 score: 31.9 bits; conditional E-value: 8e-09
+ == domain 1 score: 31.9 bits; conditional E-value: 8.3e-09
globins4 31 vrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklkvdpkyfkllsevl 113
rlf+s+P+t+++F++F dL+ sa+++k +d +++++l++LselHa l+vdp +fklls+
sp|P81044|HBAZ_MACEU 16 KRLFTSYPQTKTYFPHF-DLH-----PDSAQLRKN--------------ID-NIHSALSKLSELHAYILRVDPVNFKLLSHXF 77
@@ -16690,10 +17250,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P59742|NGB1_ONCMY Neuroglobin-1 OS=Oncorhynchus mykiss GN=ngb1 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 43.1 0.0 2.9e-12 1.3e-09 2 139 .. 3 141 .. 2 150 .. 0.91
+ 1 ! 43.1 0.0 3e-12 1.4e-09 2 139 .. 3 141 .. 2 150 .. 0.91
Alignments for each domain:
- == domain 1 score: 43.1 bits; conditional E-value: 2.9e-12
+ == domain 1 score: 43.1 bits; conditional E-value: 3e-12
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+L+e+ek+ ++ W + d +G+ + rlf Pa ++ F + t ++ +s++ H kv+ + +a+ +ld le l
sp|P59742|NGB1_ONCMY 3 KLTEKEKELIRVSWESLGKDKVPHGVIMFSRLFELEPALLNLFHYNTNCGTIQDCLSSPEFLDHVTKVMLVIDAAVSHLDnlHTLEDFL 91
@@ -16707,10 +17267,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23216|GLBP1_GLYDI Globin, major polymeric component P1 OS=Glycera dibranchiata PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 43.0 0.0 3.1e-12 1.4e-09 2 123 .. 2 124 .. 1 144 [. 0.86
+ 1 ! 43.0 0.0 3.2e-12 1.5e-09 2 123 .. 2 124 .. 1 144 [. 0.86
Alignments for each domain:
- == domain 1 score: 43.0 bits; conditional E-value: 3.1e-12
+ == domain 1 score: 43.0 bits; conditional E-value: 3.2e-12
globins4 2 vLseaektkvkavWakveadv..eesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekle 85
+L++++ ++ka W +v a ++ G ++ ++ f P+ F + ++lk s ++++Hgk ++d +++a+a++d +++
sp|P23216|GLBP1_GLYDI 2 HLTADQVAALKASWPEVSAGDggAQLGLEMFTKYFHENPQMMFIFGYS-G--RTEALKHSSKLQHHGKVIIDQIGKAVAEMDnaKQMA 86
@@ -16724,10 +17284,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21659|GLBP2_GLYDI Globin, polymeric component P2 OS=Glycera dibranchiata PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 43.0 0.0 3.3e-12 1.5e-09 2 124 .. 2 125 .. 1 146 [. 0.84
+ 1 ! 43.0 0.0 3.4e-12 1.6e-09 2 124 .. 2 125 .. 1 146 [. 0.84
Alignments for each domain:
- == domain 1 score: 43.0 bits; conditional E-value: 3.3e-12
+ == domain 1 score: 43.0 bits; conditional E-value: 3.4e-12
globins4 2 vLseaektkvkavWakveadv..eesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekle 85
+L++++ ++ka W +v a ++ G + ++ f P+ F d+lk +a++++Hgk ++d +++a+a++d +++
sp|P21659|GLBP2_GLYDI 2 PLTADQVAALKASWPEVSAGDggGQLGLELFTKYFHENPQMMFIFGYS---GRTDALKHNAKLQNHGKVIIDQIGKAVAEMDnaKQMA 86
@@ -16741,10 +17301,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02222|GLB2_CHITH Globin CTT-II beta OS=Chironomus thummi thummi PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 42.4 0.0 4.7e-12 2.2e-09 2 139 .. 17 155 .. 16 160 .] 0.76
+ 1 ! 42.4 0.0 4.8e-12 2.3e-09 2 139 .. 17 155 .. 16 160 .] 0.76
Alignments for each domain:
- == domain 1 score: 42.4 bits; conditional E-value: 4.7e-12
+ == domain 1 score: 42.4 bits; conditional E-value: 4.8e-12
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleakl 88
+Ls++e + v+ Wa+v + s +diL +fk+ P +F++F + + lk+ + +H+ ++++ +s+++a + + ++ ++
sp|P02222|GLB2_CHITH 17 PLSADEASLVRGSWAQV----KHSEVDILYYIFKANPDIMAKFPQFAGKD-LETLKGTGQFATHAGRIVGFVSEIVALMgNsANM-PAM 99
@@ -16758,10 +17318,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q941Q2|HBL2_BRANA Non-symbiotic hemoglobin 2 OS=Brassica napus GN=HB2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 42.0 0.8 6.6e-12 3e-09 2 146 .. 5 151 .. 4 154 .. 0.86
+ 1 ! 42.0 1.1 6.8e-12 3.3e-09 2 146 .. 5 151 .. 4 154 .. 0.86
Alignments for each domain:
- == domain 1 score: 42.0 bits; conditional E-value: 6.6e-12
+ == domain 1 score: 42.0 bits; conditional E-value: 6.8e-12
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dek...le 85
v +e++ vk+ W + d+ ++ +++ Pa++++F +d t++ ++++++k+H++kv + ++ +l ++k +
sp|Q941Q2|HBL2_BRANA 5 VFTEKQEALVKESWEILKQDIPKYSLHFFSQILEIAPAAKDMFSFLRD--TDEVPHNNPKLKAHAVKVFKMTCETAIQLreKGKvvvAD 91
@@ -16775,10 +17335,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q90W04|NGB_TETNG Neuroglobin OS=Tetraodon nigroviridis GN=ngb PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 41.8 0.0 7.2e-12 3.3e-09 2 140 .. 3 142 .. 2 150 .. 0.90
+ 1 ! 41.8 0.0 7.4e-12 3.6e-09 2 140 .. 3 142 .. 2 150 .. 0.90
Alignments for each domain:
- == domain 1 score: 41.8 bits; conditional E-value: 7.2e-12
+ == domain 1 score: 41.8 bits; conditional E-value: 7.4e-12
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
+Ls ++k+ ++ W + + +G+ rlf P+ ++ F + ++ +s++ +H kv+ + +a+ +ld le l
sp|Q90W04|NGB_TETNG 3 KLSSKDKELIRGSWDSLGKNKVPHGVILFSRLFELDPELLNLFHYTTNCGSTQDCLSSPEFLEHVTKVMLVIDAAVSHLDdlHSLEDFLL 92
@@ -16792,10 +17352,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14395|GLB1A_ANATR Globin-1 subunit alpha OS=Anadara trapezia PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 41.7 0.0 7.9e-12 3.7e-09 4 143 .. 12 150 .. 9 151 .] 0.88
+ 1 ! 41.7 0.0 8.2e-12 4e-09 4 143 .. 12 150 .. 9 151 .] 0.88
Alignments for each domain:
- == domain 1 score: 41.7 bits; conditional E-value: 7.9e-12
+ == domain 1 score: 41.7 bits; conditional E-value: 8.2e-12
globins4 4 seaektkvkavWakv.eadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
sea k +++ W+ ad+e +G L lf+ P t+++F + +d++ + k++ +++ H+ ++ Al + +ld +l+ +
sp|P14395|GLB1A_ANATR 12 SEAIKGNLRRSWGVLmSADIEATGLTYLANLFTLRPDTKTYFTRLGDVQ---KGKANSKLRGHAITLTYALDWFVDSLDdpSRLKCVV 96
@@ -16806,30 +17366,30 @@ Domain annotation for each sequence (and alignments):
sp|P14395|GLB1A_ANATR 97 EKFAVNHINR-KISGDAFGSIIEPMKETLKARMGSYYSDDVAGAWAALIGVVQAA 150
7777777654.9********************************99998888765 PP
->> sp|P41261|GLB2_LUCPE Hemoglobin-2 OS=Lucina pectinata PE=1 SV=2
+>> sp|P41261|GLB2_PHAPT Hemoglobin-2 OS=Phacoides pectinatus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 41.2 0.0 1.2e-11 5.3e-09 2 144 .. 3 143 .. 2 147 .. 0.87
+ 1 ! 41.2 0.0 1.2e-11 5.8e-09 2 144 .. 3 143 .. 2 147 .. 0.87
Alignments for each domain:
- == domain 1 score: 41.2 bits; conditional E-value: 1.2e-11
+ == domain 1 score: 41.2 bits; conditional E-value: 1.2e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFek.FkdLstedelkksadvkkHgkkvldAlsdalakldekleakl. 88
+L++ +k ++++ W+k + G+ + lfk++P+t++ F++ F++L+ ++l+ ++++k+ + + +s + +ld+++ l
- sp|P41261|GLB2_LUCPE 3 TLTNPQKAAIRSSWSKFMDNGVSNGQGFYMDLFKAHPETLTPFKSlFGGLT-LAQLQDNPKMKAQSLVFCNGMSSFVDHLDDNMLVVLi 90
+ sp|P41261|GLB2_PHAPT 3 TLTNPQKAAIRSSWSKFMDNGVSNGQGFYMDLFKAHPETLTPFKSlFGGLT-LAQLQDNPKMKAQSLVFCNGMSSFVDHLDDNMLVVLi 90
589999*************************************98477776.99**************************977766542 PP
globins4 89 kdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakll 144
+++++lH ++ + ++ ++l++ + + +++ ++ a e ++ ++k+l
- sp|P41261|GLB2_LUCPE 91 QKMAKLHNNR-GIRASDLRTAYDILIHYMEDH--NHMVGGAKDAWEVFVGFICKTL 143
+ sp|P41261|GLB2_PHAPT 91 QKMAKLHNNR-GIRASDLRTAYDILIHYMEDH--NHMVGGAKDAWEVFVGFICKTL 143
8899999765.799999999999999999999..6777777888888888888876 PP
>> sp|P29243|GLBV_CHITP Globin CTT-V OS=Chironomus thummi piger GN=CTT-V PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 40.8 0.2 1.5e-11 6.8e-09 2 139 .. 18 152 .. 2 158 .. 0.80
+ 1 ! 40.8 0.3 1.5e-11 7.3e-09 2 139 .. 18 152 .. 2 158 .. 0.80
Alignments for each domain:
- == domain 1 score: 40.8 bits; conditional E-value: 1.5e-11
+ == domain 1 score: 40.8 bits; conditional E-value: 1.5e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
+L+ +e + vk+ W +v + +diL +fk++P q +F++F + d +k s + +H+ +++ ls+ +a ea+l++
sp|P29243|GLBV_CHITP 18 PLTSDEANLVKSSWNQV----KHNEVDILAAVFKAYPDIQAKFPQFAGK-DLDSIKTSGQFATHATRIVSFLSELIALS--GNEANLSA 99
@@ -16843,10 +17403,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P21660|GLBP3_GLYDI Globin, polymeric component P3 OS=Glycera dibranchiata PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 41.0 0.0 1.3e-11 5.8e-09 2 121 .. 2 122 .. 1 143 [. 0.88
+ 1 ! 41.0 0.0 1.3e-11 6.3e-09 2 121 .. 2 122 .. 1 143 [. 0.88
Alignments for each domain:
- == domain 1 score: 41.0 bits; conditional E-value: 1.3e-11
+ == domain 1 score: 41.0 bits; conditional E-value: 1.3e-11
globins4 2 vLseaektkvkavWakveadv..eesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekle 85
+L++++ ++ka W +v a ++ G ++ +r f P+ F + +lk + ++++Hgk +++ +++a+ +ld k+e
sp|P21660|GLBP3_GLYDI 2 HLTADQVAALKASWPEVSAGDggAQLGLEMFTRYFDENPQMMFVFGYSGRT---SALKHNSKLQNHGKIIVHQIGQAVSELDdgSKFE 86
@@ -16860,10 +17420,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02216|GLB1_GLYDI Globin, major monomeric component OS=Glycera dibranchiata PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 40.4 0.1 1.9e-11 9e-09 3 144 .. 2 141 .. 1 145 [. 0.88
+ 1 ! 40.4 0.1 2e-11 9.7e-09 3 144 .. 2 141 .. 1 145 [. 0.88
Alignments for each domain:
- == domain 1 score: 40.4 bits; conditional E-value: 1.9e-11
+ == domain 1 score: 40.4 bits; conditional E-value: 2e-11
globins4 3 LseaektkvkavWakvea..dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleak 87
Ls+a+++ + a W + + +++G+d L++++ ++P+ F F + s + v + g kvl ++ a+ +l d +k+ a+
sp|P02216|GLB1_GLYDI 2 LSAAQRQVIAATWKDIAGadNGAGVGKDCLIKFLSAHPQMAAVFG-FSGAS-------DPGVAALGAKVLAQIGVAVSHLgDeGKMVAQ 82
@@ -16874,30 +17434,30 @@ Domain annotation for each sequence (and alignments):
sp|P02216|GLB1_GLYDI 83 MKAVGVRHKgyGNKHIKAQYFEPLGASLLSAMEHRIGGKMNAAAKDAWAAAYADISGAL 141
*****9996225789*****************************999988888777666 PP
->> sp|P02213|GLB1_SCAIN Globin-1 OS=Scapharca inaequivalvis PE=1 SV=2
+>> sp|P02213|GLB1_ANAIN Globin-1 OS=Anadara inaequivalvis PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 40.7 0.1 1.6e-11 7.6e-09 2 143 .. 9 145 .. 8 146 .] 0.93
+ 1 ! 40.7 0.1 1.7e-11 8.3e-09 2 143 .. 9 145 .. 8 146 .] 0.93
Alignments for each domain:
- == domain 1 score: 40.7 bits; conditional E-value: 1.6e-11
+ == domain 1 score: 40.7 bits; conditional E-value: 1.7e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+L+++ k+ ++ W +++d ++ G+ ++ lf +t +F++ +d+s + +++++++ H+ +++ Al++ + +ld ++l +
- sp|P02213|GLB1_SCAIN 9 QLTADVKKDLRDSWKVIGSDKKGNGVALMTTLFADNQETIGYFKRLGDVS---QGMANDKLRGHSITLMYALQNFIDQLDnpDDLVCVV 94
+ sp|P02213|GLB1_ANAIN 9 QLTADVKKDLRDSWKVIGSDKKGNGVALMTTLFADNQETIGYFKRLGDVS---QGMANDKLRGHSITLMYALQNFIDQLDnpDDLVCVV 94
689999*******************************************9...999***********************8677888888 PP
globins4 89 kdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakl 143
++ + +H ++ k+ f + + +vla++ +f+ + a Kl+a+v+ +
- sp|P02213|GLB1_SCAIN 95 EKFAVNHITR-KISAAEFGKINGPIKKVLASK---NFGDKYANAWAKLVAVVQAA 145
+ sp|P02213|GLB1_ANAIN 95 EKFAVNHITR-KISAAEFGKINGPIKKVLASK---NFGDKYANAWAKLVAVVQAA 145
9999999876.9*******************9...9**************99876 PP
>> sp|P59743|NGB2_ONCMY Neuroglobin-2 OS=Oncorhynchus mykiss GN=ngb2 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 40.3 0.0 2.2e-11 1e-08 2 136 .. 3 138 .. 2 150 .. 0.90
+ 1 ! 40.3 0.0 2.3e-11 1.1e-08 2 136 .. 3 138 .. 2 150 .. 0.90
Alignments for each domain:
- == domain 1 score: 40.3 bits; conditional E-value: 2.2e-11
+ == domain 1 score: 40.3 bits; conditional E-value: 2.3e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+L+e++k+ ++ W + + +G+ + rlf Pa ++ F + s ++ +s++ H kv+ + +a+ +ld le l
sp|P59743|NGB2_ONCMY 3 KLTEKDKELIRGSWESLGKNKVPHGVVMFSRLFELEPALLNLFHYNTNCSPTQDCLSSPEFLDHVTKVMLVIDAAVSHLDdlHTLEDFL 91
@@ -16911,10 +17471,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q23761|GLBZ_CHITH Globin CTT-Z OS=Chironomus thummi thummi GN=CTT-Z PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 39.2 0.1 4.6e-11 2.1e-08 2 142 .. 18 155 .. 17 160 .. 0.76
+ 1 ! 39.2 0.1 4.7e-11 2.3e-08 2 142 .. 18 155 .. 17 160 .. 0.76
Alignments for each domain:
- == domain 1 score: 39.2 bits; conditional E-value: 4.6e-11
+ == domain 1 score: 39.2 bits; conditional E-value: 4.7e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dekleakl 88
+L+ +e vk+ Wa+v + +diL +fk++P q F++F + d +k s + +H+ +++ ls+ +a + +l+a +
sp|Q23761|GLBZ_CHITH 18 PLTSDEAALVKSSWAQV----KHNEVDILYTVFKAYPDIQARFPQFAGK-DLDTIKTSGQFATHATRIVSFLSELIALSgsESNLSAIY 101
@@ -16925,13 +17485,13 @@ Domain annotation for each sequence (and alignments):
sp|Q23761|GLBZ_CHITH 102 GLISK-MGTDHKnrgITQTQFNKFRTALVSYISSN--VAWGDNVAAAWTHALDNVYT 155
33333.33333323377777888888888888887..66777888887777777765 PP
->> sp|P31331|GLB_NASMU Globin OS=Nassa mutabilis PE=1 SV=1
+>> sp|P31331|GLB_NASMU Globin OS=Nassarius mutabilis PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 39.7 0.1 3.3e-11 1.5e-08 3 139 .. 2 141 .. 1 145 [. 0.85
+ 1 ! 39.7 0.2 3.4e-11 1.6e-08 3 139 .. 2 141 .. 1 145 [. 0.85
Alignments for each domain:
- == domain 1 score: 39.7 bits; conditional E-value: 3.3e-11
+ == domain 1 score: 39.7 bits; conditional E-value: 3.4e-11
globins4 3 LseaektkvkavWakveadvees...GadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleakl 88
Ls+++kt++k W a+ e++ a + lf +P t+++F+ F +++k+ k+Hg v l++ + ++d ++ l
sp|P31331|GLB_NASMU 2 LSAEQKTALKDSWKILAANGETMvknSAAMFGLLFEKYPDTKKHFKTFD-GDHFAAMKATGMGKAHGMSVFSGLGALVSSVDdGECVLGL 90
@@ -16945,10 +17505,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02212|GLB1_ANABR Globin-1 OS=Anadara broughtonii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 39.6 0.2 3.6e-11 1.7e-08 2 143 .. 9 145 .. 8 146 .] 0.93
+ 1 ! 39.6 0.2 3.7e-11 1.8e-08 2 143 .. 9 145 .. 8 146 .] 0.93
Alignments for each domain:
- == domain 1 score: 39.6 bits; conditional E-value: 3.6e-11
+ == domain 1 score: 39.6 bits; conditional E-value: 3.7e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+L+++ k+ ++ W +++d ++ G+ ++ lf +t +F++ +++s + +++++++ H+ +++ Al++ + +ld ++l +
sp|P02212|GLB1_ANABR 9 QLTADVKKDLRDSWKVIGSDKKGNGVALMTTLFADNQETIGYFKRLGNVS---QGMANDKLRGHSITLMYALQNFIDQLDntDDLVCVV 94
@@ -16962,10 +17522,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29245|GLBZ_CHITP Globin CTT-Z OS=Chironomus thummi piger GN=CTT-Z PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.8 0.1 6e-11 2.8e-08 2 142 .. 18 155 .. 17 160 .. 0.76
+ 1 ! 38.8 0.1 6.2e-11 3e-08 2 142 .. 18 155 .. 17 160 .. 0.76
Alignments for each domain:
- == domain 1 score: 38.8 bits; conditional E-value: 6e-11
+ == domain 1 score: 38.8 bits; conditional E-value: 6.2e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dekleakl 88
+L+ +e vk+ Wa+v + +diL +fk++P q F++F + d +k s + +H+ +++ +s+ +a + +l+a +
sp|P29245|GLBZ_CHITP 18 PLTSDEAALVKSSWAQV----KHNEVDILYTVFKAYPDIQARFPQFAGK-DLDSIKTSGQFATHATRIVSFFSELIALSgsESNLSAIY 101
@@ -16976,13 +17536,47 @@ Domain annotation for each sequence (and alignments):
sp|P29245|GLBZ_CHITP 102 GLISK-MGTDHKnrgITQTQFNEFRTALVSYISSN--VSWGDNVAAAWTHALDNVYT 155
33333.33333323377777888888888888887..67788888888777777765 PP
+>> sp|P86881|NGB_DISMA Neuroglobin OS=Dissostichus mawsoni PE=2 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 38.8 0.0 6.3e-11 3.1e-08 2 143 .. 3 145 .. 2 150 .. 0.92
+
+ Alignments for each domain:
+ == domain 1 score: 38.8 bits; conditional E-value: 6.3e-11
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
+ +Lse++k+ ++ W + + +G+ + rlf P+ ++ F + ++ +s++ +H kv+ + +a+ +ld le l
+ sp|P86881|NGB_DISMA 3 KLSEKDKELIRGSWESLGKNKVPHGVVMFSRLFELDPELLTLFHYTTNCGSTQDCLSSPEFLEHVTKVMLVIDAAVSNLDdlPSLEDFLL 92
+ 59******************************************9999988888999**********************746689999** PP
+
+ globins4 90 dLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakl 143
+ +L +H + v+ + f ++e l+++l+ l++ +ta+ a l ++v +
+ sp|P86881|NGB_DISMA 93 NLGRKH-QAVGVNTQSFAEVGESLLHMLQCSLGQAYTAPLRQAWLNLYSIVVAA 145
+ *****9.5789****************************998887777776665 PP
+
+>> sp|P86880|NGB_CHAAC Neuroglobin OS=Chaenocephalus aceratus PE=2 SV=1
+ # score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
+ --- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
+ 1 ! 38.7 0.0 6.7e-11 3.3e-08 2 143 .. 3 145 .. 2 150 .. 0.92
+
+ Alignments for each domain:
+ == domain 1 score: 38.7 bits; conditional E-value: 6.7e-11
+ globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
+ +Lse++k+ ++ W + + +G+ + rlf P+ ++ F + ++ +s++ +H kv+ + +a+ +ld le l
+ sp|P86880|NGB_CHAAC 3 KLSEKDKELIRGSWESLGKNKVPHGVVMFSRLFELDPELLTLFHYTTNCGSTQDCLSSPEFLEHVTKVMLVIDAAVSHLDdlPSLEDFLL 92
+ 59******************************************9999988888999**********************746688999** PP
+
+ globins4 90 dLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakl 143
+ +L +H + v+ + f ++e l+ +l+ l++ +ta+ a l ++v +
+ sp|P86880|NGB_CHAAC 93 NLGRKH-QAVGVNTQSFAEVGESLLYMLQCSLGQAYTAPLRQAWLNLYSIVVAA 145
+ *****9.5789****************************998887777776665 PP
+
>> sp|P02214|GLB_BUSCA Globin OS=Busycotypus canaliculatus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.7 0.1 6.5e-11 3e-08 5 127 .. 4 129 .. 1 145 [. 0.77
+ 1 ! 38.7 0.2 6.7e-11 3.2e-08 5 127 .. 4 129 .. 1 145 [. 0.77
Alignments for each domain:
- == domain 1 score: 38.7 bits; conditional E-value: 6.5e-11
+ == domain 1 score: 38.7 bits; conditional E-value: 6.7e-11
globins4 5 eaektkvkavWakvead...veesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ek.leaklk 89
a+kt++k+ W +ad + + G lfk++P t+++F++F d t +++ k+Hg+ v l+ ++ ++d ++ +++ k
sp|P02214|GLB_BUSCA 4 GAQKTALKESWKVLGADgptMMKNGSLLFGLLFKTYPDTKKHFKHFDD-ATFAAMDTTGVGKAHGVAVFSGLGSMICSIDdDDcVBGLAK 92
@@ -16996,10 +17590,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q23763|GLB78_CHITH Globin CTT-VIIB-8 OS=Chironomus thummi thummi GN=CTT-7B8 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.4 0.3 8.2e-11 3.8e-08 2 139 .. 18 152 .. 17 159 .. 0.85
+ 1 ! 38.4 0.5 8.4e-11 4.1e-08 2 139 .. 18 152 .. 17 159 .. 0.85
Alignments for each domain:
- == domain 1 score: 38.4 bits; conditional E-value: 8.2e-11
+ == domain 1 score: 38.4 bits; conditional E-value: 8.4e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v ++iL +f ++P q++F++F + + +k +H+ +++ ls+++a +e +++
sp|Q23763|GLB78_CHITH 18 PLTADEASLVQSSWKAV----SHNEVEILAAVFAAYPDIQNKFPQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNESNASAV 100
@@ -17013,10 +17607,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P23244|HBP2_CASGL Hemoglobin-2 OS=Casuarina glauca GN=HBII PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.4 0.4 8.3e-11 3.8e-08 4 141 .. 10 153 .. 8 158 .. 0.81
+ 1 ! 38.4 0.6 8.5e-11 4.2e-08 4 141 .. 10 153 .. 8 158 .. 0.81
Alignments for each domain:
- == domain 1 score: 38.4 bits; conditional E-value: 8.3e-11
+ == domain 1 score: 38.4 bits; conditional E-value: 8.5e-11
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...eak 87
+e++ v + W+ ++ +++e G ++f P +q+ F kd + l+ ++++k H+ v + +l + +k+ e++
sp|P23244|HBP2_CASGL 10 TEEQEALVVKSWSAMKPNAGELGLKFFLKIFEIAPSAQKLFSFLKDSN--VPLERNPKLKSHAMSVFLMTCESAVQLrKaGKVtvrESS 96
@@ -17027,13 +17621,13 @@ Domain annotation for each sequence (and alignments):
sp|P23244|HBP2_CASGL 97 LKKLGASHF-KHGVADEHFEVTKFALLETIKEAVPETWSPEMKNawgeAYDKLVAAIK 153
888988886.68999************************9998622235788888776 PP
->> sp|Q90YJ2|NGB_DANRE Neuroglobin OS=Danio rerio GN=ngb PE=2 SV=1
+>> sp|Q90YJ2|NGB_DANRE Neuroglobin OS=Danio rerio GN=ngb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.5 0.0 7.9e-11 3.6e-08 2 143 .. 3 145 .. 2 150 .. 0.91
+ 1 ! 38.5 0.0 8.1e-11 3.9e-08 2 143 .. 3 145 .. 2 150 .. 0.91
Alignments for each domain:
- == domain 1 score: 38.5 bits; conditional E-value: 7.9e-11
+ == domain 1 score: 38.5 bits; conditional E-value: 8.1e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
+Lse++k ++ W + + +G +rlf Pa ++ F + + e +s++ +H kv+ + +a+ +ld le l
sp|Q90YJ2|NGB_DANRE 3 KLSEKDKGLIRDSWESLGKNKVPHGIVLFTRLFELDPALLTLFSYSTNCGDAPECLSSPEFLEHVTKVMLVIDAAVSHLDdlHTLEDFLL 92
@@ -17047,10 +17641,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P12548|GLB73_CHITH Globin CTT-VIIB-3 OS=Chironomus thummi thummi GN=CTT-7B3 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.2 0.4 9.2e-11 4.3e-08 2 139 .. 18 152 .. 17 159 .. 0.86
+ 1 ! 38.2 0.5 9.5e-11 4.6e-08 2 139 .. 18 152 .. 17 159 .. 0.86
Alignments for each domain:
- == domain 1 score: 38.2 bits; conditional E-value: 9.2e-11
+ == domain 1 score: 38.2 bits; conditional E-value: 9.5e-11
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v +diL +f ++P q +F++F + + +k +H+ +++ ls+++a +e +++
sp|P12548|GLB73_CHITH 18 PLTADEASLVQSSWKAV----SHNEVDILAAVFAAYPDIQAKFPQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNESNASAV 100
@@ -17064,10 +17658,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P04251|GLB1B_ANATR Globin-1 subunit beta OS=Anadara trapezia PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 38.4 0.0 8e-11 3.7e-08 4 143 .. 13 151 .. 10 152 .] 0.89
+ 1 ! 38.4 0.1 8.3e-11 4e-08 4 143 .. 13 151 .. 10 152 .] 0.89
Alignments for each domain:
- == domain 1 score: 38.4 bits; conditional E-value: 8e-11
+ == domain 1 score: 38.4 bits; conditional E-value: 8.3e-11
globins4 4 seae.ktkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
s+a+ k ++ W+ d+e++G + lfk+ a++++F + +d+s + k + +++ H+ +++ Al++ + ld ++l+ +
sp|P04251|GLB1B_ANATR 13 SNADqKDLLRLSWGVLSVDMEGTGLMLMANLFKTSSAARTKFARLGDVS---AGKDNSKLRGHSITLMYALQNFIDALDnvDRLKCVV 97
@@ -17081,10 +17675,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02226|GLB7A_CHITH Globin CTT-VIIA OS=Chironomus thummi thummi GN=ctt-7A.1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.8 0.0 1.2e-10 5.8e-08 2 101 .. 18 113 .. 17 160 .. 0.82
+ 1 ! 37.8 0.0 1.3e-10 6.2e-08 2 101 .. 18 113 .. 17 160 .. 0.82
Alignments for each domain:
- == domain 1 score: 37.8 bits; conditional E-value: 1.2e-10
+ == domain 1 score: 37.8 bits; conditional E-value: 1.3e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+Ls+++ vk+ Wa+v +s ++iL +f+++P q F++F + + +k +H+ ++++ +s+++a + +e ++
sp|P02226|GLB7A_CHITH 18 PLSADQAALVKSTWAQV----RNSEVEILAAVFTAYPDIQARFPQFAGKD-VASIKDTGAFATHAGRIVGFVSEIIALIgNESNAPAV 100
@@ -17098,10 +17692,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18966|GLB78_CHITP Globin CTT-VIIB-8 OS=Chironomus thummi piger GN=CTT-7B8 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.9 0.3 1.2e-10 5.6e-08 2 139 .. 18 152 .. 17 159 .. 0.85
+ 1 ! 37.9 0.5 1.3e-10 6.1e-08 2 139 .. 18 152 .. 17 159 .. 0.85
Alignments for each domain:
- == domain 1 score: 37.9 bits; conditional E-value: 1.2e-10
+ == domain 1 score: 37.9 bits; conditional E-value: 1.3e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v ++iL +f ++P q++F++F + + +k +H+ +++ ls+++a +e +++
sp|P18966|GLB78_CHITP 18 PLTADEASLVQSSWKAV----SHNEVEILAAVFAAYPDIQNKFPQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNESNASAV 100
@@ -17115,10 +17709,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q42831|HBL_HORVU Non-symbiotic hemoglobin OS=Hordeum vulgare GN=HB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.7 0.0 1.3e-10 6.2e-08 2 141 .. 9 155 .. 8 161 .. 0.82
+ 1 ! 37.7 0.1 1.4e-10 6.7e-08 2 141 .. 9 155 .. 8 161 .. 0.82
Alignments for each domain:
- == domain 1 score: 37.7 bits; conditional E-value: 1.3e-10
+ == domain 1 score: 37.7 bits; conditional E-value: 1.4e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...ea 86
v se+ v++ Wa ++ d ++ G ++f P ++++F+ +d l+ ++++k+H++ v +a a+l + +k+ e+
sp|Q42831|HBL_HORVU 9 VFSEEKEALVLKSWAIMKKDSANLGLRFFLKIFEIAPSARQMFPFLRDSD--VPLETNPKLKTHAVSVFVMTCEAAAQLrKaGKItvrET 96
@@ -17132,10 +17726,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84296|GLB74_CHITH Globin CTT-VIIB-4 OS=Chironomus thummi thummi GN=CTT-7B4 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.3 0.5 1.8e-10 8.5e-08 2 140 .. 18 153 .. 16 160 .. 0.81
+ 1 ! 37.3 0.6 1.9e-10 9.2e-08 2 140 .. 18 153 .. 16 160 .. 0.81
Alignments for each domain:
- == domain 1 score: 37.3 bits; conditional E-value: 1.8e-10
+ == domain 1 score: 37.3 bits; conditional E-value: 1.9e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d....ekl 84
+L+++e + v++ W v +diL +f ++P q +F++F + + +k +H+ +++ ls+++a + +
sp|P84296|GLB74_CHITH 18 PLTADEASLVQSSWKAV----SHNEVDILAAVFAAYPDIQAKFPQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNasnaAAV 100
@@ -17149,10 +17743,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84297|GLB74_CHITP Globin CTT-VIIB-4 OS=Chironomus thummi piger GN=CTT-7B4 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.3 0.5 1.8e-10 8.5e-08 2 140 .. 18 153 .. 16 160 .. 0.81
+ 1 ! 37.3 0.6 1.9e-10 9.2e-08 2 140 .. 18 153 .. 16 160 .. 0.81
Alignments for each domain:
- == domain 1 score: 37.3 bits; conditional E-value: 1.8e-10
+ == domain 1 score: 37.3 bits; conditional E-value: 1.9e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d....ekl 84
+L+++e + v++ W v +diL +f ++P q +F++F + + +k +H+ +++ ls+++a + +
sp|P84297|GLB74_CHITP 18 PLTADEASLVQSSWKAV----SHNEVDILAAVFAAYPDIQAKFPQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNasnaAAV 100
@@ -17166,10 +17760,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P25165|GLBM_ANATR Globin, minor OS=Anadara trapezia PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.1 0.0 2.1e-10 9.9e-08 7 143 .. 17 151 .. 11 152 .] 0.91
+ 1 ! 37.1 0.0 2.2e-10 1.1e-07 7 143 .. 17 151 .. 11 152 .] 0.91
Alignments for each domain:
- == domain 1 score: 37.1 bits; conditional E-value: 2.1e-10
+ == domain 1 score: 37.1 bits; conditional E-value: 2.2e-10
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLse 93
k ++ W+ d+e++G + lf P+++ +F + ++Lst + + +++ H+ +++ Al++ + ld ++l+ +++ +
sp|P25165|GLBM_ANATR 17 HKDLLRLSWGVLSDDMEGTGLMLMANLFNMSPESRLKFGRLGHLSTG---RDNSKLRGHSITLMYALKNFVDALDdvDRLKCVVEKFAV 102
@@ -17183,10 +17777,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O24521|HBL2_ARATH Non-symbiotic hemoglobin 2 OS=Arabidopsis thaliana GN=AHB2 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 37.0 0.2 2.2e-10 1e-07 4 145 .. 7 150 .. 4 154 .. 0.86
+ 1 ! 37.0 0.2 2.3e-10 1.1e-07 4 145 .. 7 150 .. 4 154 .. 0.86
Alignments for each domain:
- == domain 1 score: 37.0 bits; conditional E-value: 2.2e-10
+ == domain 1 score: 37.0 bits; conditional E-value: 2.3e-10
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel.kksadvkkHgkkvldAlsdalakl.d.ek...lea 86
+e++ vk+ W + d+ ++ +++ Pa++ F F L+ +de+ ++++++k+H++kv + ++ +l + +k ++
sp|O24521|HBL2_ARATH 7 TEKQEALVKESWEILKQDIPKYSLHFFSQILEIAPAAKGLFS-F--LRDSDEVpHNNPKLKAHAVKVFKMTCETAIQLrEeGKvvvADT 92
@@ -17200,10 +17794,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02224|GLB6_CHITH Globin CTT-VI OS=Chironomus thummi thummi GN=CTT-6 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.8 0.3 2.5e-10 1.2e-07 2 138 .. 17 150 .. 16 160 .. 0.82
+ 1 ! 36.8 0.4 2.6e-10 1.3e-07 2 138 .. 17 150 .. 16 160 .. 0.82
Alignments for each domain:
- == domain 1 score: 36.8 bits; conditional E-value: 2.5e-10
+ == domain 1 score: 36.8 bits; conditional E-value: 2.6e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleaklk 89
vL+ ++ vk+ W+ v + +diL +fk++P +F++F + d +k sa +H+ +++ ls+++ + +++
sp|P02224|GLB6_CHITH 17 VLTTEQADLVKKTWSTV--KF--NEVDILYAVFKAYPDIMAKFPQFAGK-DLDSIKDSAAFATHATRIVSFLSEVISLAgSDANIPAIQ 100
@@ -17217,10 +17811,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O24520|HBL1_ARATH Non-symbiotic hemoglobin 1 OS=Arabidopsis thaliana GN=AHB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.6 0.3 2.9e-10 1.4e-07 2 145 .. 8 153 .. 7 157 .. 0.81
+ 1 ! 36.6 0.5 3e-10 1.5e-07 2 145 .. 8 153 .. 7 157 .. 0.81
Alignments for each domain:
- == domain 1 score: 36.6 bits; conditional E-value: 2.9e-10
+ == domain 1 score: 36.6 bits; conditional E-value: 3e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...e 85
v +e++ v + W+ ++ + +e G +++f P+t+++F +d ++ ++++++k H+ v + +l + +k+ e
sp|O24520|HBL1_ARATH 8 VFTEEQEALVVKSWSVMKKNSAELGLKLFIKIFEIAPTTKKMFSFLRDSPIPA--EQNPKLKPHAMSVFVMCCESAVQLrKtGKVtvrE 94
@@ -17234,10 +17828,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14394|GLB2_ANATR Globin-2B OS=Anadara trapezia PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.5 0.1 3.2e-10 1.5e-07 2 143 .. 9 145 .. 8 146 .] 0.92
+ 1 ! 36.5 0.2 3.3e-10 1.6e-07 2 143 .. 9 145 .. 8 146 .] 0.92
Alignments for each domain:
- == domain 1 score: 36.5 bits; conditional E-value: 3.2e-10
+ == domain 1 score: 36.5 bits; conditional E-value: 3.3e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
+L+++ k+ ++ W ++d ++ G ++ lf + +t +F++ +d+s + +++ +++ H+ +++ Al++ + +ld ++l +
sp|P14394|GLB2_ANATR 9 QLTADVKKDLRDSWKVLGSDKKGDGMALMTTLFNDHQETIAYFKRMGDVS---QGMANSKLRGHSITLMYALQNFIDQLDstDDLICVV 94
@@ -17248,13 +17842,13 @@ Domain annotation for each sequence (and alignments):
sp|P14394|GLB2_ANATR 95 EKFAVNHITR-KISGAEFGKINGPMKKVLASK---NFGDKYANAWAKLVGVVQAA 145
9999999876.899999*99**********99...99999999999999988765 PP
->> sp|Q9M630|HBL0_PHYPA Non-symbiotic hemoglobin 0 OS=Physcomitrella patens GN=GLB0 PE=2 SV=1
+>> sp|Q9M630|HBL0_PHYPA Non-symbiotic hemoglobin 0 OS=Physcomitrella patens subsp. patens GN=GLB0 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.4 0.1 3.5e-10 1.6e-07 4 146 .. 25 169 .. 22 172 .. 0.88
+ 1 ! 36.4 0.1 3.6e-10 1.7e-07 4 146 .. 25 169 .. 22 172 .. 0.88
Alignments for each domain:
- == domain 1 score: 36.4 bits; conditional E-value: 3.5e-10
+ == domain 1 score: 36.4 bits; conditional E-value: 3.6e-10
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dek...leak 87
s+++ + vk+ W + d++ G + ++f P ++ ++ +d + ++++++vk+H++ v +da +l ++ le+k
sp|Q9M630|HBL0_PHYPA 25 SKENEQLVKQSWEILKKDAQRNGINFFRKVFEIAPGAKAMYSFLRDST--IPFEENPKVKNHARYVFMMTGDAAVQLgeKGAyqvLESK 111
@@ -17268,10 +17862,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29242|GLB77_CHITP Globin CTT-VIIB-7 OS=Chironomus thummi piger GN=CTT-7B7 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 35.9 0.6 4.8e-10 2.2e-07 2 139 .. 18 152 .. 17 160 .. 0.80
+ 1 ! 35.9 0.9 4.9e-10 2.4e-07 2 139 .. 18 152 .. 17 160 .. 0.80
Alignments for each domain:
- == domain 1 score: 35.9 bits; conditional E-value: 4.8e-10
+ == domain 1 score: 35.9 bits; conditional E-value: 4.9e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleak 87
+Ls++e + vk+ W +v + +diL +f ++P q +F++F + + +k a +H+ +++ +++++ + +l+a
sp|P29242|GLB77_CHITP 18 PLSADEANLVKSSWDQV----KHNEVDILAAVFAAYPDIQAKFPQFAGKD-LASIKDTAAFATHATRIVSFFTEVISLSgNqANLSAV 100
@@ -17285,10 +17879,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02227|GLB8_CHITH Globin CTT-VIII OS=Chironomus thummi thummi GN=CTT-8 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.1 0.1 4.3e-10 2e-07 3 130 .. 5 129 .. 3 148 .. 0.81
+ 1 ! 36.1 0.1 4.4e-10 2.2e-07 3 130 .. 5 129 .. 3 148 .. 0.81
Alignments for each domain:
- == domain 1 score: 36.1 bits; conditional E-value: 4.3e-10
+ == domain 1 score: 36.1 bits; conditional E-value: 4.4e-10
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleaklkd 90
+s+++ k+ W v + +diL +fk+ P q +F++F + d +k sad H+ ++++ +s+++ + + + + +lk+
sp|P02227|GLB8_CHITH 5 MSADQLALFKSSWNTV----KHNEVDILYAVFKANPDIQAKFPQFAGK-DLDSIKDSADFAVHSGRIVGFFSEVIGLIgNPENRPALKT 88
@@ -17302,10 +17896,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P12549|GLB76_CHITH Globin CTT-VIIB-6 OS=Chironomus thummi thummi GN=CTT-7B6 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.0 0.5 4.6e-10 2.1e-07 2 139 .. 18 152 .. 16 159 .. 0.85
+ 1 ! 36.0 0.8 4.7e-10 2.3e-07 2 139 .. 18 152 .. 16 159 .. 0.85
Alignments for each domain:
- == domain 1 score: 36.0 bits; conditional E-value: 4.6e-10
+ == domain 1 score: 36.0 bits; conditional E-value: 4.7e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v ++iL +f ++P q++F +F + + +k +H+ +++ ls+++a ++ a++
sp|P12549|GLB76_CHITH 18 PLTADEASLVQSSWKAV----SHNEVEILAAVFAAYPDIQNKFSQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNDSNAAAV 100
@@ -17319,10 +17913,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q99JA8|NGB_RAT Neuroglobin OS=Rattus norvegicus GN=Ngb PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 36.0 0.0 4.5e-10 2.1e-07 7 144 .. 5 144 .. 1 148 [. 0.92
+ 1 ! 36.0 0.0 4.6e-10 2.2e-07 7 144 .. 5 144 .. 1 148 [. 0.92
Alignments for each domain:
- == domain 1 score: 36.0 bits; conditional E-value: 4.5e-10
+ == domain 1 score: 36.0 bits; conditional E-value: 4.6e-10
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekF.kdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLselH 95
e + +++ W v e+G+ rlf P + F+ ++ s +++ +s++ H +kv+ + +a+ ++ d le l++L +H
sp|Q99JA8|NGB_RAT 5 ESELIRQSWRAVSRSPLEHGTVLFSRLFALEPSLLPLFQYNgRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLATLGRKH 96
@@ -17336,10 +17930,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q23762|GLB7X_CHITH Globin CTT-VIIB-10 OS=Chironomus thummi thummi GN=CTT-7B10 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 35.9 0.5 4.9e-10 2.3e-07 2 139 .. 18 152 .. 17 159 .. 0.85
+ 1 ! 35.9 0.7 5e-10 2.5e-07 2 139 .. 18 152 .. 17 159 .. 0.85
Alignments for each domain:
- == domain 1 score: 35.9 bits; conditional E-value: 4.9e-10
+ == domain 1 score: 35.9 bits; conditional E-value: 5e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v ++iL +f ++P q++F +F + + +k +H+ +++ ls+++a +e +++
sp|Q23762|GLB7X_CHITH 18 PLTADEASLVQSSWKAV----SHNEVEILAAVFAAYPDIQNKFSQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNESNASAV 100
@@ -17353,10 +17947,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13579|GLB4_LUMTE Extracellular globin-4 OS=Lumbricus terrestris PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 35.8 0.0 5.1e-10 2.4e-07 4 144 .. 8 150 .. 6 151 .] 0.82
+ 1 ! 35.8 0.0 5.3e-10 2.6e-07 4 144 .. 8 150 .. 6 151 .] 0.82
Alignments for each domain:
- == domain 1 score: 35.8 bits; conditional E-value: 5.1e-10
+ == domain 1 score: 35.8 bits; conditional E-value: 5.3e-10
globins4 4 seaektkvkavWakveadveesGadiLvr.....lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldek..le 85
s +++ +++++W v + + ++vr lfk +P+++ Fe+ k + +s + k H ++v++ l ++ ld+ l+
sp|P13579|GLB4_LUMTE 8 SYEDRREIRHIWDDVWSSSFTDRRVAIVRavfddLFKHYPTSKALFERVKIDE-----PESGEFKSHLVRVANGLDLLINLLDDTlvLQ 91
@@ -17370,11 +17964,11 @@ Domain annotation for each sequence (and alignments):
>> sp|P28316|GLB_ASCSU Extracellular globin OS=Ascaris suum PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 18.8 0.0 9.1e-05 0.042 16 103 .. 32 123 .. 22 134 .. 0.84
- 2 ! 14.8 0.0 0.0016 0.72 21 95 .. 188 263 .. 179 274 .. 0.87
+ 1 ! 18.8 0.0 9.4e-05 0.046 16 103 .. 32 123 .. 22 134 .. 0.84
+ 2 ! 14.8 0.1 0.0016 0.78 21 95 .. 188 263 .. 179 274 .. 0.87
Alignments for each domain:
- == domain 1 score: 18.8 bits; conditional E-value: 9.1e-05
+ == domain 1 score: 18.8 bits; conditional E-value: 9.4e-05
globins4 16 akvea..dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakkl.k 100
akv++ ++ + G d ++f +P +++F++ ++ t++++++ + k g+k+l A a d e ++a ++L ++Ha+ + +
sp|P28316|GLB_ASCSU 32 AKVDTsnEARQDGIDLYKHMFENYPPLRKYFKNREEY-TAEDVQNDPFFAKQGQKILLACHVLCATYDdrETFNAYTRELLDRHARDHvH 120
@@ -17385,7 +17979,7 @@ Domain annotation for each sequence (and alignments):
sp|P28316|GLB_ASCSU 121 MPP 123
666 PP
- == domain 2 score: 14.8 bits; conditional E-value: 0.0016
+ == domain 2 score: 14.8 bits; conditional E-value: 0.0016
globins4 21 dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselH 95
++++ G d ++f +P +e F+ ++ t+++++k + k g+++l A a+ d e +++ +++L e+H
sp|P28316|GLB_ASCSU 188 TAKQNGIDLYKHMFENYPSMREAFKDRENY-TAEDVQKDPFFVKQGQRILLACHLLCASYDdeETFHMYVHELMERH 263
@@ -17394,10 +17988,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P19364|GLB7_ARTSX Extracellular globin-E7 OS=Artemia sp. PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 35.5 0.0 6.6e-10 3.1e-07 3 114 .. 2 119 .. 1 136 [. 0.83
+ 1 ! 35.5 0.0 6.8e-10 3.3e-07 3 114 .. 2 119 .. 1 136 [. 0.83
Alignments for each domain:
- == domain 1 score: 35.5 bits; conditional E-value: 6.6e-10
+ == domain 1 score: 35.5 bits; conditional E-value: 6.8e-10
globins4 3 LseaektkvkavWakvead.veesGadiLvrlfkstPatqefFekFkdLstedelkk..sadvkkHgkkvldAlsdalakl.dekleak 87
L++ ek+ ++ +W+ +a e + + +lf +P+ + +F++F L++ + + +++++H ++v+dA+ ++ l e l+++
sp|P19364|GLB7_ARTSX 2 LTALEKQSIQDIWTILKAVgLEFLQVKMFGKLFADHPEYKAHFDNF--LTAIFSVAEdlVPKLRAHLHRVIDAFDLVIFALgRESLRGS 88
@@ -17411,10 +18005,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P12550|GLB77_CHITH Globin CTT-VIIB-7 OS=Chironomus thummi thummi GN=CTT-7B7 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.8 0.7 1e-09 4.8e-07 2 139 .. 18 152 .. 17 160 .. 0.80
+ 1 ! 34.8 1.0 1.1e-09 5.3e-07 2 139 .. 18 152 .. 17 160 .. 0.80
Alignments for each domain:
- == domain 1 score: 34.8 bits; conditional E-value: 1e-09
+ == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleak 87
+Ls++e vk+ W +v + +diL +f ++P q +F++F + + +k a +H+ +++ +++++ + +l+a
sp|P12550|GLB77_CHITH 18 PLSADEAAIVKSSWDQV----KHNEVDILAAVFAAYPDIQAKFPQFAGKD-LASIKDTAAFATHATRIVSFFTEVISLSgNqANLSAV 100
@@ -17428,10 +18022,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84298|GLB75_CHITH Globin CTT-VIIB-5/CTT-VIIB-9 OS=Chironomus thummi thummi GN=CTT-7B5 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 35.2 0.6 8e-10 3.7e-07 2 139 .. 18 152 .. 17 159 .. 0.83
+ 1 ! 35.2 0.9 8.3e-10 4e-07 2 139 .. 18 152 .. 17 159 .. 0.83
Alignments for each domain:
- == domain 1 score: 35.2 bits; conditional E-value: 8e-10
+ == domain 1 score: 35.2 bits; conditional E-value: 8.3e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v ++iL +f ++P q++F +F + + +k +H+ +++ ls+++a + a++
sp|P84298|GLB75_CHITH 18 PLTADEASLVQSSWKAV----SHNEVEILAAVFAAYPDIQNKFSQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNTSNAAAV 100
@@ -17445,10 +18039,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P84299|GLB75_CHITP Globin CTT-VIIB-5/CTT-VIIB-9 OS=Chironomus thummi piger GN=CTT-7B5 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 35.2 0.6 8e-10 3.7e-07 2 139 .. 18 152 .. 17 159 .. 0.83
+ 1 ! 35.2 0.9 8.3e-10 4e-07 2 139 .. 18 152 .. 17 159 .. 0.83
Alignments for each domain:
- == domain 1 score: 35.2 bits; conditional E-value: 8e-10
+ == domain 1 score: 35.2 bits; conditional E-value: 8.3e-10
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleakl 88
+L+++e + v++ W v ++iL +f ++P q++F +F + + +k +H+ +++ ls+++a + a++
sp|P84299|GLB75_CHITP 18 PLTADEASLVQSSWKAV----SHNEVEILAAVFAAYPDIQNKFSQFAGKD-LASIKDTGAFATHATRIVSFLSEVIALSgNTSNAAAV 100
@@ -17462,10 +18056,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02228|GLB10_CHITH Globin CTT-X OS=Chironomus thummi thummi GN=CTT-10 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.6 0.5 1.2e-09 5.5e-07 3 145 .. 7 150 .. 5 151 .] 0.75
+ 1 ! 34.6 0.7 1.2e-09 6e-07 3 145 .. 7 150 .. 5 151 .] 0.75
Alignments for each domain:
- == domain 1 score: 34.6 bits; conditional E-value: 1.2e-09
+ == domain 1 score: 34.6 bits; conditional E-value: 1.2e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleaklk 89
L + e ++v+a W v ++iL +fk++P +F+kF + +++k ad H+ ++++ +++ + l +a+++
sp|P02228|GLB10_CHITH 7 LDAHEVEQVQATWKAV----SHDEVEILYTVFKAHPDIMAKFPKFAGKD-LEAIKDTADFAVHASRIIGFFGEYVTLLgSSGNQAAIR 89
@@ -17479,10 +18073,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WZ20|NGB_MACMU Neuroglobin OS=Macaca mulatta GN=NGB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.8 0.0 1.1e-09 5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
+ 1 ! 34.8 0.0 1.1e-09 5.5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
Alignments for each domain:
- == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
+ == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLsel 94
+ +++ W v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + +a+ ++ d le l++L +
sp|Q6WZ20|NGB_MACMU 6 PELIRQSWRAVSRSPLEHGTVLFARLFALEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLASLGRK 95
@@ -17496,10 +18090,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q3KN66|NGB_PANTR Neuroglobin OS=Pan troglodytes GN=NGB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.8 0.0 1.1e-09 5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
+ 1 ! 34.8 0.0 1.1e-09 5.5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
Alignments for each domain:
- == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
+ == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLsel 94
+ +++ W v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + +a+ ++ d le l++L +
sp|Q3KN66|NGB_PANTR 6 PELIRQSWRAVSRSPLEHGTVLFARLFALEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLASLGRK 95
@@ -17513,10 +18107,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9NPG2|NGB_HUMAN Neuroglobin OS=Homo sapiens GN=NGB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.8 0.0 1.1e-09 5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
+ 1 ! 34.8 0.0 1.1e-09 5.5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
Alignments for each domain:
- == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
+ == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLsel 94
+ +++ W v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + +a+ ++ d le l++L +
sp|Q9NPG2|NGB_HUMAN 6 PELIRQSWRAVSRSPLEHGTVLFARLFALEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLASLGRK 95
@@ -17530,10 +18124,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WZ18|NGB_CANFA Neuroglobin OS=Canis familiaris GN=NGB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.8 0.0 1.1e-09 5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
+ 1 ! 34.8 0.0 1.1e-09 5.5e-07 8 144 .. 6 144 .. 2 148 .. 0.92
Alignments for each domain:
- == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
+ == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLsel 94
+ +++ W v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + a+ ++ d le l+ L ++
sp|Q6WZ18|NGB_CANFA 6 PELIRQSWRAVRRSPLEHGTVLFARLFDLEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDTAVTNVeDlSSLEEYLAGLGKK 95
@@ -17547,10 +18141,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O04985|HBL2_ORYSJ Non-symbiotic hemoglobin 2 OS=Oryza sativa subsp. japonica GN=HB2 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.8 0.5 1.1e-09 4.9e-07 3 144 .. 17 161 .. 15 168 .. 0.77
+ 1 ! 34.8 0.7 1.1e-09 5.4e-07 3 144 .. 17 161 .. 15 168 .. 0.77
Alignments for each domain:
- == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
+ == domain 1 score: 34.8 bits; conditional E-value: 1.1e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekle...a 86
se++ v++ Wa ++ d ++ G ++f + P + ++F ++ + l+k++++k+H+ v +a a+l + +k+ +
sp|O04985|HBL2_ORYSJ 17 FSEEQEALVLKSWAIMKKDSANIGLRFFLKIFEVAPSASQMFSFLRN--SDVPLEKNPKLKTHAMSVFVMTCEAAAQLrKaGKVTvrdT 103
@@ -17564,10 +18158,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9FVL0|HBL1_MEDSA Non-symbiotic hemoglobin 1 OS=Medicago sativa GN=MHB1 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.4 0.9 1.4e-09 6.5e-07 4 147 .. 10 155 .. 8 157 .. 0.81
+ 1 ! 34.4 1.2 1.4e-09 7e-07 4 147 .. 10 155 .. 8 157 .. 0.81
Alignments for each domain:
- == domain 1 score: 34.4 bits; conditional E-value: 1.4e-09
+ == domain 1 score: 34.4 bits; conditional E-value: 1.4e-09
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...eak 87
+e++ v + W ++ + +e G ++f P +q+ F kd + l+++ ++k H+ v + +l + +k+ e++
sp|Q9FVL0|HBL1_MEDSA 10 TEEQEALVVKSWNAMKKNSAELGLKLFLKIFEIAPSAQKLFSFLKDSK--VPLEQNTKLKPHAMSVFLMTCESAVQLrKsGKVtvrESS 96
@@ -17581,10 +18175,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9ER97|NGB_MOUSE Neuroglobin OS=Mus musculus GN=Ngb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.5 0.0 1.3e-09 6.1e-07 7 144 .. 5 144 .. 1 148 [. 0.92
+ 1 ! 34.5 0.0 1.4e-09 6.6e-07 7 144 .. 5 144 .. 1 148 [. 0.92
Alignments for each domain:
- == domain 1 score: 34.5 bits; conditional E-value: 1.3e-09
+ == domain 1 score: 34.5 bits; conditional E-value: 1.4e-09
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekF.kdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLse 93
e + +++ W v e+G+ rlf P + F+ ++ s +++ +s++ H +kv+ + +a+ ++ d le l +L
sp|Q9ER97|NGB_MOUSE 5 ESELIRQSWRVVSRSPLEHGTVLFARLFALEPSLLPLFQYNgRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLTSLGR 94
@@ -17598,10 +18192,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68168|HBPL_PARAD Non-legume hemoglobin OS=Parasponia andersonii PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.4 0.5 1.4e-09 6.6e-07 3 135 .. 10 144 .. 8 159 .. 0.78
+ 1 ! 34.4 0.7 1.5e-09 7.2e-07 3 135 .. 10 144 .. 8 159 .. 0.78
Alignments for each domain:
- == domain 1 score: 34.4 bits; conditional E-value: 1.4e-09
+ == domain 1 score: 34.4 bits; conditional E-value: 1.5e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklk 89
+e++ v ++Wa ++ + +e G + ++f P +++ F kd + l++++++k H+ +v + +l + +k k +
sp|P68168|HBPL_PARAD 10 FTEEQEALVVKAWAVMKKNSAELGLQFFLKIFEIAPSAKNLFSYLKDS--PVPLEQNPKLKPHATTVFVMTCESAVQLrKaGKATVKES 96
@@ -17615,10 +18209,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P68169|HBPL_PARRI Non-legume hemoglobin OS=Parasponia rigida PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.4 0.5 1.4e-09 6.6e-07 3 135 .. 10 144 .. 8 159 .. 0.78
+ 1 ! 34.4 0.7 1.5e-09 7.2e-07 3 135 .. 10 144 .. 8 159 .. 0.78
Alignments for each domain:
- == domain 1 score: 34.4 bits; conditional E-value: 1.4e-09
+ == domain 1 score: 34.4 bits; conditional E-value: 1.5e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklk 89
+e++ v ++Wa ++ + +e G + ++f P +++ F kd + l++++++k H+ +v + +l + +k k +
sp|P68169|HBPL_PARRI 10 FTEEQEALVVKAWAVMKKNSAELGLQFFLKIFEIAPSAKNLFSYLKDS--PVPLEQNPKLKPHATTVFVMTCESAVQLrKaGKATVKES 96
@@ -17632,10 +18226,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WZ17|NGB_PIG Neuroglobin OS=Sus scrofa GN=NGB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.4 0.0 1.4e-09 6.7e-07 7 144 .. 5 144 .. 1 148 [. 0.92
+ 1 ! 34.4 0.0 1.5e-09 7.2e-07 7 144 .. 5 144 .. 1 148 [. 0.92
Alignments for each domain:
- == domain 1 score: 34.4 bits; conditional E-value: 1.4e-09
+ == domain 1 score: 34.4 bits; conditional E-value: 1.5e-09
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLselH 95
e++ +++ W v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + +a+ ++ d le l+ L +H
sp|Q6WZ17|NGB_PIG 5 EHELIRQSWRAVSRSPLEHGTVLFARLFDLEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLAGLGRKH 96
@@ -17649,10 +18243,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O04986|HBL1_ORYSJ Non-symbiotic hemoglobin 1 OS=Oryza sativa subsp. japonica GN=HB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 34.2 0.9 1.6e-09 7.4e-07 3 144 .. 14 158 .. 12 164 .. 0.79
+ 1 ! 34.2 1.3 1.6e-09 8e-07 3 144 .. 14 158 .. 12 164 .. 0.79
Alignments for each domain:
- == domain 1 score: 34.2 bits; conditional E-value: 1.6e-09
+ == domain 1 score: 34.2 bits; conditional E-value: 1.6e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...ea 86
se++ v++ Wa + d ++ ++f + P + ++F ++ + l+k++++k+H+ v +a a+l + +k+ ++
sp|O04986|HBL1_ORYSJ 14 FSEEQEALVLKSWAILKKDSANIALRFFLKIFEVAPSASQMFSFLRN--SDVPLEKNPKLKTHAMSVFVMTCEAAAQLrKaGKVtvrDT 100
@@ -17666,10 +18260,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6WZ19|NGB_BOVIN Neuroglobin OS=Bos taurus GN=NGB PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 33.6 0.0 2.5e-09 1.1e-06 9 144 .. 7 144 .. 3 148 .. 0.92
+ 1 ! 33.6 0.0 2.5e-09 1.2e-06 9 144 .. 7 144 .. 3 148 .. 0.92
Alignments for each domain:
- == domain 1 score: 33.6 bits; conditional E-value: 2.5e-09
+ == domain 1 score: 33.6 bits; conditional E-value: 2.5e-09
globins4 9 tkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLselH 95
+ +++ W +v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + +a+ ++ d le l+ L +H
sp|Q6WZ19|NGB_BOVIN 7 ELIRQSWREVSRSPLEHGTVLFARLFDLEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLAGLGRKH 96
@@ -17683,10 +18277,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q6EV97|NGB_RABIT Neuroglobin OS=Oryctolagus cuniculus GN=NGB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 33.7 0.0 2.3e-09 1.1e-06 7 144 .. 5 144 .. 1 148 [. 0.92
+ 1 ! 33.7 0.0 2.4e-09 1.2e-06 7 144 .. 5 144 .. 1 148 [. 0.92
Alignments for each domain:
- == domain 1 score: 33.7 bits; conditional E-value: 2.3e-09
+ == domain 1 score: 33.7 bits; conditional E-value: 2.4e-09
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFe.kFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLse 93
e++ +++ W v e+G+ rlf P + F+ + ++ s +++ +s++ H +kv+ + +a+ ++ d le l+ L
sp|Q6EV97|NGB_RABIT 5 EQELIRQSWRAVSRSPLEHGTVLFARLFDLEPDLLPLFQyNCRQFSSPEDCLSSPEFLDHIRKVMLVIDAAVTNVeDlSSLEEYLAGLGR 94
@@ -17700,10 +18294,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9M593|HBL_ZEAMP Non-symbiotic hemoglobin OS=Zea mays subsp. parviglumis GN=HB PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 33.4 0.6 2.8e-09 1.3e-06 3 126 .. 13 138 .. 11 162 .. 0.78
+ 1 ! 33.4 0.8 2.9e-09 1.4e-06 3 126 .. 13 138 .. 11 162 .. 0.78
Alignments for each domain:
- == domain 1 score: 33.4 bits; conditional E-value: 2.8e-09
+ == domain 1 score: 33.4 bits; conditional E-value: 2.9e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...eak 87
e++ v++ Wa ++ d+++ G ++f P ++++F +d l+k++++k+H+ v +a a+l + +k+ e++
sp|Q9M593|HBL_ZEAMP 13 FGEEQEALVLKSWAVMKKDAANLGLRFFLKVFEIAPSAKQMFSFLRDSD--VPLEKNPKLKTHAMSVFVMTCEAAAQLrKaGKVtvrETT 100
@@ -17717,10 +18311,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P13578|GLB3_TYLHE Extracellular globin-2B OS=Tylorrhynchus heterochaetus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 33.5 0.0 2.7e-09 1.3e-06 4 132 .. 5 131 .. 3 147 .. 0.77
+ 1 ! 33.5 0.0 2.8e-09 1.4e-06 4 132 .. 5 131 .. 3 147 .. 0.77
Alignments for each domain:
- == domain 1 score: 33.5 bits; conditional E-value: 2.7e-09
+ == domain 1 score: 33.5 bits; conditional E-value: 2.8e-09
globins4 4 seaektkvkavWakvea.....dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekle 85
s+a++ +v+ W + + G+ i + lf P+++ F + ++ + ad k+H +v++ l a++ l d + l+
sp|P13578|GLB3_TYLHE 5 SAADRHEVLDNWKGIWSaeftgRRVAIGQAIFQELFALDPNAKGVFGRV-NVD----KPSEADWKAHVIRVINGLDLAVNLLeDpKALQ 88
@@ -17734,10 +18328,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02223|GLB9_CHITH Globin CTT-IX OS=Chironomus thummi thummi GN=CTT-9 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 32.6 0.0 5e-09 2.3e-06 3 121 .. 19 136 .. 17 161 .] 0.72
+ 1 ! 32.6 0.1 5.1e-09 2.5e-06 3 121 .. 19 136 .. 17 161 .] 0.72
Alignments for each domain:
- == domain 1 score: 32.6 bits; conditional E-value: 5e-09
+ == domain 1 score: 32.6 bits; conditional E-value: 5.1e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleak... 87
+s ++ ++++a Wa v + +diL +f +P q F++F + + +k +H+ ++++ +s+++a + +e +
sp|P02223|GLB9_CHITH 19 VSSDQANAIRASWAGV----KHNEVDILAAVFSDHPDIQARFPQFAGKD-LASIKDTGAFATHAGRIVGFISEIVALVgNESNAPAmat 102
@@ -17751,10 +18345,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P28010|LGB4_MEDSA Leghemoglobin OS=Medicago sativa GN=LB3 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 32.6 0.1 4.9e-09 2.3e-06 5 146 .. 5 144 .. 2 147 .] 0.85
+ 1 ! 32.6 0.1 5e-09 2.4e-06 5 146 .. 5 144 .. 2 147 .] 0.85
Alignments for each domain:
- == domain 1 score: 32.6 bits; conditional E-value: 4.9e-09
+ == domain 1 score: 32.6 bits; conditional E-value: 5e-09
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdL 91
+++ v++ W + + ++ + + ++ Pa++ +F F L+ ++ ++ s+++++H++kv + + d +l +++ ++L
sp|P28010|LGB4_MEDSA 5 ADQEALVNSSWESFKQNLPGYSVFFYTTILEKAPAAKGMFS-F--LKDSAGVQDSPQLQAHAEKVFGMVRDSAVQLRatGEVVLGDATL 90
@@ -17768,10 +18362,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9FY42|HBL_MAIZE Non-symbiotic hemoglobin OS=Zea mays GN=HB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 32.4 0.5 5.9e-09 2.7e-06 3 126 .. 13 138 .. 11 162 .. 0.78
+ 1 ! 32.4 0.7 6.1e-09 3e-06 3 126 .. 13 138 .. 11 162 .. 0.78
Alignments for each domain:
- == domain 1 score: 32.4 bits; conditional E-value: 5.9e-09
+ == domain 1 score: 32.4 bits; conditional E-value: 6.1e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...eak 87
e++ v++ Wa ++ d+++ G ++f P ++++F +d l+k++++k+H+ v +a a+l + +k+ e++
sp|Q9FY42|HBL_MAIZE 13 FGEEQEALVLKSWAVMKKDAANLGLRFFLKVFEIAPSAEQMFSFLRDSD--VPLEKNPKLKTHAMSVFVMTCEAAAQLrKaGKVtvrETT 100
@@ -17785,10 +18379,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15447|GLB4_GLYDI Globin, monomeric component M-IV OS=Glycera dibranchiata PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 31.4 0.1 1.2e-08 5.5e-06 3 144 .. 3 142 .. 1 146 [. 0.86
+ 1 ! 31.4 0.2 1.2e-08 5.9e-06 3 144 .. 3 142 .. 1 146 [. 0.86
Alignments for each domain:
- == domain 1 score: 31.4 bits; conditional E-value: 1.2e-08
+ == domain 1 score: 31.4 bits; conditional E-value: 1.2e-08
globins4 3 LseaektkvkavWakvea..dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleak 87
Ls+a+++ v + W + + +++G++ ++++ ++ F F + s + v g kvl ++ a+ +l d +k+ a+
sp|P15447|GLB4_GLYDI 3 LSAAQRQVVASTWKDIAGsdNGAGVGKECFTKFLSAHHDIAAVFG-FSGAS-------DPGVADLGAKVLAQIGVAVSHLgDeGKMVAE 83
@@ -17802,10 +18396,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11582|GLBE_CHITH Globin CTT-E/E' OS=Chironomus thummi thummi GN=CTT-E PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 31.7 0.0 9.4e-09 4.3e-06 3 137 .. 16 141 .. 14 151 .. 0.84
+ 1 ! 31.7 0.0 9.7e-09 4.7e-06 3 137 .. 16 141 .. 14 151 .. 0.84
Alignments for each domain:
- == domain 1 score: 31.7 bits; conditional E-value: 9.4e-09
+ == domain 1 score: 31.7 bits; conditional E-value: 9.7e-09
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls ++ v++ ++kv ++ + iL +fk+ P+ q F++F + d++k+ a+ +H+ ++++ l+ ++ l ++ +++ +L
sp|P11582|GLBE_CHITH 16 LSGDQIGLVQSTYGKV----KGDSVGILYAVFKADPTIQAAFPQFVGKD-LDAIKGGAEFSTHAGRIVGFLGGVIDDLP-NIGKHVDAL 98
@@ -17819,10 +18413,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18968|GLBY_CHITP Globin CTT-Y OS=Chironomus thummi piger GN=CTT-Y PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 31.1 0.1 1.4e-08 6.6e-06 14 144 .. 28 155 .. 17 159 .. 0.79
+ 1 ! 31.1 0.1 1.5e-08 7.2e-06 14 144 .. 28 155 .. 17 159 .. 0.79
Alignments for each domain:
- == domain 1 score: 31.1 bits; conditional E-value: 1.4e-08
+ == domain 1 score: 31.1 bits; conditional E-value: 1.5e-08
globins4 14 vWakveadveesGadiLvrlfkstPatqefFekF..kdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLselHa.. 96
+W +++ ++iL +fk++P q +F++F kdL + +k+ a+ H+ +++ +++++ l + ++l+a ++ Ls+l
sp|P18968|GLBY_CHITP 28 AWNT----MKNEEVEILYTVFKAYPDIQAKFPQFvgKDL---ETIKGTAEFAVHATRIVSFMTEVISLLgNpDNLPAIMSLLSKLGKdh 109
@@ -17836,10 +18430,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02230|GLB4_CHITH Globin CTT-IV OS=Chironomus thummi thummi GN=D PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 31.1 0.0 1.5e-08 7e-06 3 98 .. 16 105 .. 14 150 .. 0.75
+ 1 ! 31.1 0.1 1.6e-08 7.6e-06 3 98 .. 16 105 .. 14 150 .. 0.75
Alignments for each domain:
- == domain 1 score: 31.1 bits; conditional E-value: 1.5e-08
+ == domain 1 score: 31.1 bits; conditional E-value: 1.6e-08
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
L++++ ++v++ +a v ++ + iL +fk+ P q +F +F + d +k+sad +H++k+++ +s+++ l ++++++ +
sp|P02230|GLB4_CHITH 16 LTADQISTVQSSFAGV----KGDAVGILYAVFKADPSIQAKFTQFAGK-DLDSIKGSADFSAHANKIVGFFSKIIGDLP-NIDGDVTTF 98
@@ -17853,10 +18447,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02240|LGB2_LUPLU Leghemoglobin-2 OS=Lupinus luteus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.8 1.0 1.8e-08 8.5e-06 3 145 .. 4 147 .. 2 151 .. 0.85
+ 1 ! 30.8 1.4 1.9e-08 9.2e-06 3 145 .. 4 147 .. 2 151 .. 0.85
Alignments for each domain:
- == domain 1 score: 30.8 bits; conditional E-value: 1.8e-08
+ == domain 1 score: 30.8 bits; conditional E-value: 1.9e-08
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld....ekleak 87
L+e + vk+ W + +a++ ++ + ++ Pa+++ F k+ s + ++++++++H+ kv + + +a +l+ +a+
sp|P02240|LGB2_LUPLU 4 LTESQAALVKSSWEEFNANIPKHTHRFFILVLEIAPAAKDLFSFLKGTS--EVPQNNPELQAHAGKVFKLVYEAAIQLQvtgvVVTDAT 90
@@ -17870,10 +18464,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O48668|LGB2_PEA Leghemoglobin Lb5-10 OS=Pisum sativum PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.4 0.1 2.4e-08 1.1e-05 6 146 .. 6 144 .. 2 147 .] 0.82
+ 1 ! 30.4 0.1 2.5e-08 1.2e-05 6 146 .. 6 144 .. 2 147 .] 0.82
Alignments for each domain:
- == domain 1 score: 30.4 bits; conditional E-value: 2.4e-08
+ == domain 1 score: 30.4 bits; conditional E-value: 2.5e-08
globins4 6 aektkvkavWakveadveesGadiL..vrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dekleaklkdLs 92
++ v++ W + + sG+ iL + ++ Pa++ F F L+ + ++ s+++++H+++v + + d a+l ++++ ++L
sp|O48668|LGB2_PEA 6 KQEALVNSSWESF--KQNLSGNSILfyTIILEKAPAAKGLFS-F--LKDTAGVEDSPKLQAHAEQVFGLVRDSAAQLrtKGEVVLGNATLG 91
@@ -17887,10 +18481,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q94FT7|HBL4_ORYSJ Non-symbiotic hemoglobin 4 OS=Oryza sativa subsp. japonica GN=HB4 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.3 0.2 2.6e-08 1.2e-05 3 140 .. 13 153 .. 11 162 .. 0.79
+ 1 ! 30.3 0.3 2.7e-08 1.3e-05 3 140 .. 13 153 .. 11 162 .. 0.79
Alignments for each domain:
- == domain 1 score: 30.3 bits; conditional E-value: 2.6e-08
+ == domain 1 score: 30.3 bits; conditional E-value: 2.7e-08
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...ea 86
+e++ v++ Wa ++ d ++ G ++f + P +++ F ++ + l+k++++kkH+ v +a a+l + +++ ++
sp|Q94FT7|HBL4_ORYSJ 13 FTEEQEALVLKSWAIMKDDSANIGHRFFLKIFEVAPSARHLFSFLRN--SDVPLEKNPNLKKHAMAVFVMTCEAAAQLrKtGRVtvrDT 99
@@ -17904,10 +18498,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q94FT8|HBL3_ORYSJ Non-symbiotic hemoglobin 3 OS=Oryza sativa subsp. japonica GN=HB3 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.1 0.5 3e-08 1.4e-05 3 140 .. 16 156 .. 14 165 .. 0.79
+ 1 ! 30.1 0.7 3e-08 1.5e-05 3 140 .. 16 156 .. 14 165 .. 0.79
Alignments for each domain:
- == domain 1 score: 30.1 bits; conditional E-value: 3e-08
+ == domain 1 score: 30.1 bits; conditional E-value: 3e-08
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...ea 86
+e++ v++ Wa ++ d + G ++f + P +++ F ++ + l+k++++k H+ v +a a+l + +++ ++
sp|Q94FT8|HBL3_ORYSJ 16 FTEEQEALVLKSWAIMKNDSAHIGHRFFLKIFEVAPSARQLFSFLRN--SDVPLEKNPKLKIHAMAVFVMTCEAAAQLrKtGRVtvrDT 102
@@ -17921,10 +18515,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09187|LGB1_MEDSA Leghemoglobin-1 OS=Medicago sativa PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.1 0.5 2.9e-08 1.3e-05 6 146 .. 6 144 .. 1 146 [. 0.85
+ 1 ! 30.1 0.7 3e-08 1.5e-05 6 146 .. 6 144 .. 1 146 [. 0.85
Alignments for each domain:
- == domain 1 score: 30.1 bits; conditional E-value: 2.9e-08
+ == domain 1 score: 30.1 bits; conditional E-value: 3e-08
globins4 6 aektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLs 92
++ v++ W + + + + + ++ Pa++ F F L+ ++e++ s+++++H++kv + + d +l + + ++L
sp|P09187|LGB1_MEDSA 6 KQEALVNSSWEAFKQNLPRYSVFFYTVVLEKAPAAKGLFS-F--LKNSAEVQDSPQLQAHAEKVFGLVRDSAVQLRatGGVVLGDATLG 91
@@ -17938,10 +18532,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9SAZ0|LGB6_PEA Leghemoglobin Lb120-34 OS=Pisum sativum PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.3 0.2 2.6e-08 1.2e-05 33 146 .. 32 143 .. 3 146 .] 0.83
+ 1 ! 30.3 0.3 2.7e-08 1.3e-05 33 146 .. 32 143 .. 3 146 .] 0.83
Alignments for each domain:
- == domain 1 score: 30.3 bits; conditional E-value: 2.6e-08
+ == domain 1 score: 30.3 bits; conditional E-value: 2.7e-08
globins4 33 lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleakl..kdLselHakklkvdpkyfkllsevlvdvlaarl 121
++k Pa++ +F F L+ ++e+ s+++++H++kv + + d +l e l ++L H +k vdp+ f ++ e+l++++++
sp|Q9SAZ0|LGB6_PEA 32 ILKKAPAAKGMFS-F--LKDSAEVVDSPKLQAHAEKVFGMVHDSAIQLRASGEVVLgdATLGAIHIQKGVVDPH-FVVVKEALLETIKEAS 118
@@ -17955,10 +18549,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14962|LGB3_MEDSA Leghemoglobin-3 OS=Medicago sativa PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 29.9 0.1 3.5e-08 1.6e-05 23 146 .. 20 143 .. 3 145 .. 0.79
+ 1 ! 29.9 0.2 3.6e-08 1.8e-05 23 146 .. 20 143 .. 3 145 .. 0.79
Alignments for each domain:
- == domain 1 score: 29.9 bits; conditional E-value: 3.5e-08
+ == domain 1 score: 29.9 bits; conditional E-value: 3.6e-08
globins4 23 eesGadiL..vrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfk 107
++ G+ +L + ++ Pa++ +F F L+ ++ ++ s++++ H++kv + + d a+l + + ++L H +k vdp+ f
sp|P14962|LGB3_MEDSA 20 QNPGNSVLfyTIILEKAPAAKGMFS-F--LKDSAGVQDSPKLQSHAEKVFGMVRDSAAQLRatGGVVLGDATLGAIHIQKGVVDPH-FA 104
@@ -17972,10 +18566,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O80405|LGB3_PEA Leghemoglobin Lb120-1 OS=Pisum sativum PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 30.0 0.2 3.1e-08 1.5e-05 33 146 .. 32 143 .. 3 146 .] 0.85
+ 1 ! 30.0 0.3 3.2e-08 1.6e-05 33 146 .. 32 143 .. 3 146 .] 0.85
Alignments for each domain:
- == domain 1 score: 30.0 bits; conditional E-value: 3.1e-08
+ == domain 1 score: 30.0 bits; conditional E-value: 3.2e-08
globins4 33 lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvlaarl 121
++k Pa++ +F F L+ ++e+ s+++++H++kv + + d +l +++ ++L H +k vdp+ f ++ e+l++++++
sp|O80405|LGB3_PEA 32 ILKKAPAAKGMFS-F--LKDSAEVVDSPKLQAHAEKVFGMVHDSAIQLRasGEVVVGDATLGAIHIQKGVVDPH-FVVVKEALLETIKEAS 118
@@ -17989,10 +18583,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M419|GLBA1_OLIMA Extracellular giant hemoglobin major globin subunit A1 OS=Oligobrachia mashikoi GN=ghbA1 PE=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 29.5 0.0 4.5e-08 2.1e-05 7 121 .. 22 135 .. 16 155 .. 0.82
+ 1 ! 29.5 0.0 4.7e-08 2.3e-05 7 121 .. 22 135 .. 16 155 .. 0.82
Alignments for each domain:
- == domain 1 score: 29.5 bits; conditional E-value: 4.5e-08
+ == domain 1 score: 29.5 bits; conditional E-value: 4.7e-08
globins4 7 ektkvkavWakveadvees...GadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
e+ vk+ Wa+ + ++e+ d lf ++ F + d+ ++sa +H +v +Al+ + +ld ++a+l+
sp|Q7M419|GLBA1_OLIMA 22 EQILVKTQWAQSYGEAENRaafSRDLFSELFNIQGSSRALFSGVG----VDD-MNSAAFTAHCLRVTGALNRLISQLDqqATINADLA 104
@@ -18006,10 +18600,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P15469|GLB3_LAMSP Giant hemoglobin AIII chain OS=Lamellibrachia sp. PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 29.5 0.0 4.4e-08 2.1e-05 8 125 .. 8 125 .. 4 142 .. 0.82
+ 1 ! 29.5 0.0 4.6e-08 2.2e-05 8 125 .. 8 125 .. 4 142 .. 0.82
Alignments for each domain:
- == domain 1 score: 29.5 bits; conditional E-value: 4.4e-08
+ == domain 1 score: 29.5 bits; conditional E-value: 4.6e-08
globins4 8 ktkvkavWakve...adveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdL 91
+ kvk Wa+ + d ee G i +++fk P +++ F++ ++ d+++ + ++H+ +vl+ l +a ld + l+++l++L
sp|P15469|GLB3_LAMSP 8 RLKVKRQWAEAYgsgNDREEFGHFIWTHVFKDAPSARDLFKRVRG----DNIH-TPAFRAHATRVLGGLDMCIALLDdeGVLNTQLAHL 91
@@ -18023,10 +18617,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02221|GLB1_CHITH Globin CTT-I/CTT-IA OS=Chironomus thummi thummi GN=CTT-1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 29.1 0.0 5.9e-08 2.7e-05 12 142 .. 26 152 .. 17 157 .. 0.73
+ 1 ! 29.1 0.1 6.1e-08 3e-05 12 142 .. 26 152 .. 17 157 .. 0.73
Alignments for each domain:
- == domain 1 score: 29.1 bits; conditional E-value: 5.9e-08
+ == domain 1 score: 29.1 bits; conditional E-value: 6.1e-08
globins4 12 kavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dekleaklkdLsel.Hak 97
ka W v ++ +diL +fk+ P q+ F +F + d +k+ +d kH+ +v++ +s+++ l d + ++ l++ + ++
sp|P02221|GLB1_CHITH 26 KASWNTV----KNNQVDILYAVFKANPDIQTAFSQFAGK-DLDSIKGTPDFSKHAGRVVGLFSEVMDLLgnDANTPTILAKAKDFgKSH 109
@@ -18040,10 +18634,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9SAZ1|LGB4_PEA Leghemoglobin Lb120-8 OS=Pisum sativum PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 29.4 0.1 5e-08 2.3e-05 33 146 .. 32 143 .. 3 146 .] 0.83
+ 1 ! 29.4 0.2 5.1e-08 2.5e-05 33 146 .. 32 143 .. 3 146 .] 0.83
Alignments for each domain:
- == domain 1 score: 29.4 bits; conditional E-value: 5e-08
+ == domain 1 score: 29.4 bits; conditional E-value: 5.1e-08
globins4 33 lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleakl..kdLselHakklkvdpkyfkllsevlvdvlaarl 121
++k Pa++ +F F L+ ++e+ s+++++H++kv + + d +l e l +L H +k +dp+ f ++ e+l+d++++
sp|Q9SAZ1|LGB4_PEA 32 ILKKAPAAKGMFS-F--LKDSAEVVDSPKLQAHAEKVFGMVHDSAIQLRASGEVVLgdVTLGAIHIQKGVIDPH-FVVVKEALLDTIKEAS 118
@@ -18057,10 +18651,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q23760|GLBW_CHITH Globin CTT-W OS=Chironomus thummi thummi GN=CTT-W PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 28.3 0.2 1e-07 4.8e-05 11 99 .. 24 108 .. 15 141 .. 0.80
+ 1 ! 28.3 0.3 1.1e-07 5.2e-05 11 99 .. 24 108 .. 15 141 .. 0.80
Alignments for each domain:
- == domain 1 score: 28.3 bits; conditional E-value: 1e-07
+ == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
globins4 11 vkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleaklkdLselHakk 98
+ka W +v + +diL +fk++P+ q+ F++F + +++k+ a+ H+ +++ +s+++ + + +++++ L + a+
sp|Q23760|GLBW_CHITH 24 IKASWNQV----KHNEVDILYTVFKAYPEIQDRFPQFAGKD-LEAIKETAEFAVHSTRIVSFMSEIVSLVgNPAVQSSIDLLLVKMAND 107
@@ -18074,10 +18668,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P29244|GLBW_CHITP Globin CTT-W OS=Chironomus thummi piger GN=CTT-W PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 28.3 0.3 1.1e-07 4.9e-05 11 99 .. 24 108 .. 15 142 .. 0.80
+ 1 ! 28.3 0.4 1.1e-07 5.3e-05 11 99 .. 24 108 .. 15 142 .. 0.80
Alignments for each domain:
- == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
+ == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
globins4 11 vkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.dekleaklkdLselHakk 98
+ka W +v + +diL +fk++P+ q+ F++F + +++k+ a+ H+ +++ +s+++ + + +++++ L + a+
sp|P29244|GLBW_CHITP 24 IKASWNQV----KHNEVDILYTVFKAYPEIQDRFPQFAGKD-LEAIKETAEFAVHSTRIVSFMSEIVSLVgNPAVQSSIDLLLVKMAND 107
@@ -18091,22 +18685,22 @@ Domain annotation for each sequence (and alignments):
>> sp|P18980|HBA2_UROHA Hemoglobin subunit alpha-2 (Fragment) OS=Uromastyx hardwickii PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 29.0 0.0 6.3e-08 2.9e-05 18 55 .. 1 38 [. 1 40 [] 0.84
+ 1 ! 29.0 0.0 6.5e-08 3.2e-05 18 55 .. 1 38 [. 1 40 [] 0.84
Alignments for each domain:
- == domain 1 score: 29.0 bits; conditional E-value: 6.3e-08
+ == domain 1 score: 29.0 bits; conditional E-value: 6.5e-08
globins4 18 veadveesGadiLvrlfkstPatqefFekFkdLstede 55
v+ + +++G+++L r f ++P+t+++F++F +++
sp|P18980|HBA2_UROHA 1 VGPHLDDYGGEALHRNFEVYPQTKTYFPHFDASAGSNQ 38
567899************************66555555 PP
->> sp|P07803|HBL_TRETO Non-symbiotic hemoglobin OS=Trema tomentosa GN=GLB1 PE=2 SV=1
+>> sp|P07803|HBL_TRETO Non-symbiotic hemoglobin OS=Trema tomentosa GN=GLB1 PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 28.3 0.2 1.1e-07 5.1e-05 3 145 .. 10 153 .. 8 158 .. 0.73
+ 1 ! 28.3 0.4 1.1e-07 5.5e-05 3 145 .. 10 153 .. 8 158 .. 0.73
Alignments for each domain:
- == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
+ == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...eak 87
+e++ v + Wa ++ + +e G ++f P +++ F kd + l++++++k H+ +v + +l + +k+ e++
sp|P07803|HBL_TRETO 10 FTEEQEALVVKSWAVMKKNSAELGLKFFLKIFEIAPSAKNLFSYLKDS--PIPLEQNPKLKPHAMTVFVMTCESAVQLrKaGKVtvrESN 97
@@ -18120,10 +18714,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q947C5|HBL1_GOSHI Non-symbiotic hemoglobin 1 OS=Gossypium hirsutum GN=HB1 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 28.2 1.4 1.1e-07 5.2e-05 3 144 .. 9 156 .. 7 160 .. 0.76
+ 1 ! 28.2 2.0 1.2e-07 5.7e-05 3 144 .. 9 156 .. 7 160 .. 0.76
Alignments for each domain:
- == domain 1 score: 28.2 bits; conditional E-value: 1.1e-07
+ == domain 1 score: 28.2 bits; conditional E-value: 1.2e-07
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekl...ea 86
+e++ v + W+ ++ + +e G ++f P +++ F +d + l+++ ++k H+ v + +l + +k+ e+
sp|Q947C5|HBL1_GOSHI 9 FTEEQEALVVKSWTVMKKKTAELGLKFFLKIFEIAPSAKKLFSFLRDSN--VPLEQNTKLKPHAMSVFVMTCESAVQLrKaGKVtvrES 95
@@ -18134,30 +18728,30 @@ Domain annotation for each sequence (and alignments):
sp|Q947C5|HBL1_GOSHI 96 NLKKLGATHFK-YGVVDEHFEVTKFALLETIKEAVPDMWSDEMKNawgeAYDRLVAAIKIEM 156
67777777764.4466689**********999999877666655411126788888887766 PP
->> sp|P41260|GLB1_LUCPE Hemoglobin-1 OS=Lucina pectinata PE=1 SV=4
+>> sp|P41260|GLB1_PHAPT Hemoglobin-1 OS=Phacoides pectinatus PE=1 SV=4
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 28.3 0.1 1.1e-07 4.9e-05 2 96 .. 2 98 .. 1 136 [. 0.86
+ 1 ! 28.3 0.2 1.1e-07 5.3e-05 2 96 .. 2 98 .. 1 136 [. 0.86
Alignments for each domain:
- == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
+ == domain 1 score: 28.3 bits; conditional E-value: 1.1e-07
globins4 2 vLseaektkvkavWakveadveesGadiLvrlfkstPatqefFek.FkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklk 89
Ls+a+k +vk+ Wak a ++ G + + lf ++ +F Fk+ ++ +k+ +++ + ++ + +s+ + +ld + le++ k
- sp|P41260|GLB1_LUCPE 2 SLSAAQKDNVKSSWAKASAAWGTAGPEFFMALFDAHDDVFAKFSGlFKG-AAKGTVKNTPEMAAQAQSFKGLVSNWVDNLDnaGALEGQCK 91
+ sp|P41260|GLB1_PHAPT 2 SLSAAQKDNVKSSWAKASAAWGTAGPEFFMALFDAHDDVFAKFSGlFKG-AAKGTVKNTPEMAAQAQSFKGLVSNWVDNLDnaGALEGQCK 91
69*********************************99887777652544.45889*************************86788999999 PP
globins4 90 dLselHa 96
+ + +H
- sp|P41260|GLB1_LUCPE 92 TFAANHK 98
+ sp|P41260|GLB1_PHAPT 92 TFAANHK 98
9999985 PP
>> sp|Q7M418|GLBB2_OLIMA Extracellular giant hemoglobin major globin subunit B2 OS=Oligobrachia mashikoi GN=ghbB2 PE=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 27.8 0.0 1.5e-07 6.8e-05 6 119 .. 23 138 .. 19 161 .. 0.72
+ 1 ! 27.8 0.1 1.5e-07 7.4e-05 6 119 .. 23 138 .. 19 161 .. 0.72
Alignments for each domain:
- == domain 1 score: 27.8 bits; conditional E-value: 1.5e-07
+ == domain 1 score: 27.8 bits; conditional E-value: 1.5e-07
globins4 6 aektkvkavW....akveadvee.sGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.eklea 86
+++ +v + W + ++d + + lf a+q F ++s ++ sad ++H ++v++ l a++ l d l+
sp|Q7M418|GLBB2_OLIMA 23 EDRANVMHNWdaawSAAYSDRRVaLAQAVFASLFSRDAAAQGLFS---GVS--ADNPDSADFRAHCVRVVNGLDVAINMLnDpAVLNE 105
@@ -18171,10 +18765,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02218|GLB2_LUMTE Extracellular globin-2 OS=Lumbricus terrestris PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 27.5 0.0 1.9e-07 8.8e-05 10 128 .. 11 128 .. 6 142 .. 0.82
+ 1 ! 27.5 0.0 2e-07 9.5e-05 10 128 .. 11 128 .. 6 142 .. 0.82
Alignments for each domain:
- == domain 1 score: 27.5 bits; conditional E-value: 1.9e-07
+ == domain 1 score: 27.5 bits; conditional E-value: 2e-07
globins4 10 kvkavWakvea...dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLse 93
kvk+ W++ + d e + i f P+++ F++ ++ + + +H+++vl+ l a+ ld l+ +l +L
sp|P02218|GLB2_LUMTE 11 KVKSEWGRAYGsghDREAFSQAIWRATFAQVPESRSLFKRVHGDD-----TSHPAFIAHAERVLGGLDIAISTLDqpATLKEELDHLQV 94
@@ -18185,30 +18779,30 @@ Domain annotation for each sequence (and alignments):
sp|P02218|GLB2_LUMTE 95 QHE-GRKIPDNYFDAFKTAILHVVAAQLGRCYDRE 128
995.579********************99877654 PP
->> sp|P41262|GLB3_LUCPE Hemoglobin-3 OS=Lucina pectinata PE=1 SV=2
+>> sp|P41262|GLB3_PHAPT Hemoglobin-3 OS=Phacoides pectinatus PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 27.6 0.0 1.7e-07 8.1e-05 3 108 .. 5 111 .. 3 145 .. 0.79
+ 1 ! 27.6 0.0 1.8e-07 8.8e-05 3 108 .. 5 111 .. 3 145 .. 0.79
Alignments for each domain:
- == domain 1 score: 27.6 bits; conditional E-value: 1.7e-07
+ == domain 1 score: 27.6 bits; conditional E-value: 1.8e-07
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFek.FkdLstedelkksadvkkHgkkvldAlsdalakld..ekleakl 88
L+ +k ++k+ W++ ++ + G++ + lfk++P t++ F++ F+d+s +++ + +k+ + d +s + +ld e l l
- sp|P41262|GLB3_LUCPE 5 LTGPQKAALKSSWSRFMDNAVTNGTNFYMDLFKAYPDTLTPFKSlFEDVS-FNQMTDHPTMKAQALVFCDGMSSFVDNLDdhEVLVVLL 92
+ sp|P41262|GLB3_PHAPT 5 LTGPQKAALKSSWSRFMDNAVTNGTNFYMDLFKAYPDTLTPFKSlFEDVS-FNQMTDHPTMKAQALVFCDGMSSFVDNLDdhEVLVVLL 92
6667899***********************************97588888.99**************************7344456778 PP
globins4 89 kdLselHakklkvdpkyfkl 108
+++++lH ++ + +k ++
- sp|P41262|GLB3_LUCPE 93 QKMAKLHFNR-GIRIKELRD 111
+ sp|P41262|GLB3_PHAPT 93 QKMAKLHFNR-GIRIKELRD 111
9999999765.455555555 PP
>> sp|O48665|LGB5_PEA Leghemoglobin Lb120-29 OS=Pisum sativum PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 27.5 0.1 1.9e-07 8.9e-05 32 146 .. 31 143 .. 3 146 .] 0.82
+ 1 ! 27.5 0.2 2e-07 9.7e-05 32 146 .. 31 143 .. 3 146 .] 0.82
Alignments for each domain:
- == domain 1 score: 27.5 bits; conditional E-value: 1.9e-07
+ == domain 1 score: 27.5 bits; conditional E-value: 2e-07
globins4 32 rlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvlaar 120
++k Pat+ +F F L+ ++ + s+++++H++kv + + d +l +++ ++L H +k vd +f ++ e+l++++++
sp|O48665|LGB5_PEA 31 IILKKAPATKGMFS-F--LKDSAGVVDSPKLQAHAEKVFGMVHDSAVQLRvsGEVVLGDATLGAIHIQKGVVDS-HFVVVKEALLETIKEA 117
@@ -18222,10 +18816,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02233|LGB1_PEA Leghemoglobin-1 OS=Pisum sativum PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 27.0 0.0 2.6e-07 0.00012 35 147 .. 34 144 .. 17 146 .. 0.84
+ 1 ! 27.0 0.1 2.7e-07 0.00013 35 147 .. 34 144 .. 17 146 .. 0.84
Alignments for each domain:
- == domain 1 score: 27.0 bits; conditional E-value: 2.6e-07
+ == domain 1 score: 27.0 bits; conditional E-value: 2.7e-07
globins4 35 kstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dekleaklkdLselHakklkvdpkyfkllsevlvdvlaarlpk 123
Pa++ F F L+ + ++ s+++++H+++v + + d a+l ++++ ++L H +k +p +f ++ e+l++++++ ++
sp|P02233|LGB1_PEA 34 EKAPAAKGLFS-F--LKDTAGVEDSPKLQAHAEQVFGLVRDSAAQLrtKGEVVLGNATLGAIHVQKGVTNP-HFVVVKEALLQTIKKASGN 120
@@ -18236,13 +18830,13 @@ Domain annotation for each sequence (and alignments):
sp|P02233|LGB1_PEA 121 NWSEELNTAWEVAYDGLATAIKKA 144
***********9999999998876 PP
->> sp|P85313|HBBB_CATCL Hemoglobin subunit beta-B (Fragment) OS=Catostomus clarki GN=hbbb PE=1 SV=1
+>> sp|P85313|HBBB_CATCL Hemoglobin subunit beta-B (Fragment) OS=Catostomus clarkii GN=hbbb PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 27.0 0.0 2.6e-07 0.00012 4 50 .. 4 48 .] 1 48 [] 0.95
+ 1 ! 27.0 0.0 2.7e-07 0.00013 4 50 .. 4 48 .] 1 48 [] 0.95
Alignments for each domain:
- == domain 1 score: 27.0 bits; conditional E-value: 2.6e-07
+ == domain 1 score: 27.0 bits; conditional E-value: 2.7e-07
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdL 50
++ae+ +++++W+k+ d +e G L r +++ tq++F +F+dL
sp|P85313|HBBB_CATCL 4 TDAERGAILSLWGKI--DPDELGPALLARXXLVYXXTQRYFASFGDL 48
@@ -18251,11 +18845,11 @@ Domain annotation for each sequence (and alignments):
>> sp|P26914|GLB_PSEDC Extracellular globin OS=Pseudoterranova decipiens PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 16.8 0.2 0.00037 0.17 16 102 .. 32 122 .. 23 165 .. 0.79
- 2 ? 11.9 0.5 0.012 5.6 21 97 .. 188 265 .. 184 310 .. 0.77
+ 1 ! 16.8 0.2 0.00038 0.19 16 102 .. 32 122 .. 23 165 .. 0.79
+ 2 ? 11.9 0.8 0.013 6.1 21 97 .. 188 265 .. 184 310 .. 0.77
Alignments for each domain:
- == domain 1 score: 16.8 bits; conditional E-value: 0.00037
+ == domain 1 score: 16.8 bits; conditional E-value: 0.00038
globins4 16 akvea..dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakkl.k 100
akv++ ++++ G d ++f +Pa +++F++ + t+++++k + k g+++l A a d e ++a + +L +H + + k
sp|P26914|GLB_PSEDC 32 AKVGTskEAKQDGIDLYKHMFEHYPAMKKYFKHRE-NYTPADVQKDPFFIKQGQNILLACHVLCATYDdrETFDAYVGELMARHERDHvK 120
@@ -18266,7 +18860,7 @@ Domain annotation for each sequence (and alignments):
sp|P26914|GLB_PSEDC 121 IP 122
55 PP
- == domain 2 score: 11.9 bits; conditional E-value: 0.012
+ == domain 2 score: 11.9 bits; conditional E-value: 0.013
globins4 21 dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHak 97
+ ++ G d ++f +P+ ++ F+ ++ + +++++k a k g+k+l Al + d ++ + +L ++H k
sp|P26914|GLB_PSEDC 188 HQKQNGIDLYKHMFEHYPHMRKAFKGRENFT-KEDVQKDAFFVKQGHKILLALRMLCSSYDdePTFDYFVDALMDRHIK 265
@@ -18275,10 +18869,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P42511|LGB_CANLI Leghemoglobin OS=Canavalia lineata PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 26.2 1.2 4.7e-07 0.00022 4 144 .. 5 146 .. 3 149 .] 0.79
+ 1 ! 26.2 1.8 4.8e-07 0.00023 4 144 .. 5 146 .. 3 149 .] 0.79
Alignments for each domain:
- == domain 1 score: 26.2 bits; conditional E-value: 4.7e-07
+ == domain 1 score: 26.2 bits; conditional E-value: 4.8e-07
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk..dL 91
se++ + vk+ W + +v + a + ++ Pa+q++F F Ls + +++++k+H++kv + d +l k e l+ +L
sp|P42511|LGB_CANLI 5 SEKQESLVKSSWEAFKQNVPHHSAVFYTLILEKAPAAQNMFS-F--LS-NGVDPNNPKLKAHAEKVFKMTVDSAVQLRAKGEVVLAdpTL 90
@@ -18292,10 +18886,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P83122|GLB1_PHEHI Extracellular globin-1 OS=Pheretima hilgendorfi PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 26.1 0.1 5.3e-07 0.00024 7 127 .. 6 124 .. 4 138 .. 0.84
+ 1 ! 26.1 0.1 5.4e-07 0.00026 7 127 .. 6 124 .. 4 138 .. 0.84
Alignments for each domain:
- == domain 1 score: 26.1 bits; conditional E-value: 5.3e-07
+ == domain 1 score: 26.1 bits; conditional E-value: 5.4e-07
globins4 7 ektkvkavWakv..eadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdL 91
e+ kvk+ W v ea+ e ++ +P e F + ++ + s++ ++Hg +vl l ++ ld l +l++L
sp|P83122|GLB1_PHEHI 6 ERFKVKHQWQTVfsEAHRTEFSLHFWKEFLHDHPSLVELFTRVNGAN-----IYSPEFQAHGIRVLAGLDSVIGVLDeiPTLTVQLAHL 89
@@ -18309,10 +18903,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q941P9|HBL2_SOLLC Non-symbiotic hemoglobin 2 OS=Solanum lycopersicum GN=HB2 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 26.1 0.2 5.2e-07 0.00024 7 146 .. 7 148 .. 2 151 .. 0.79
+ 1 ! 26.1 0.3 5.4e-07 0.00026 7 146 .. 7 148 .. 2 151 .. 0.79
Alignments for each domain:
- == domain 1 score: 26.1 bits; conditional E-value: 5.2e-07
+ == domain 1 score: 26.1 bits; conditional E-value: 5.4e-07
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel.kksadvkkHgkkvldAlsdalakl..dekl...eaklk 89
+ v+ W ++ d+ + ++ P ++++F F L+ +del ++++++++H++kv + + +l ++++ e++lk
sp|Q941P9|HBL2_SOLLC 7 QEALVRDSWEFMKQDIPQLSLRFFSLILEIAPVAKNMFS-F--LKDSDELpENNPKLRAHAVKVFKMTCESAIQLreKGEVvvgETTLK 92
@@ -18326,10 +18920,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P27992|LGB1_MEDTR Leghemoglobin 1 OS=Medicago truncatula GN=LB1 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 26.1 0.2 5.1e-07 0.00023 32 145 .. 32 143 .. 2 146 .. 0.80
+ 1 ! 26.1 0.2 5.2e-07 0.00025 32 145 .. 32 143 .. 2 146 .. 0.80
Alignments for each domain:
- == domain 1 score: 26.1 bits; conditional E-value: 5.1e-07
+ == domain 1 score: 26.1 bits; conditional E-value: 5.2e-07
globins4 32 rlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvla 118
++ Pa++ F F L+ ++ ++ s+++++H++kv + + d +l + + ++L H +k vdp+ f ++ e+l+++++
sp|P27992|LGB1_MEDTR 32 VILEKAPAAKGLFS-F--LKDSAGVQDSPQLQAHAEKVFGLVRDSASQLRatGGVVLGDAALGAIHIQKGVVDPH-FVVVKEALLKTIK 116
@@ -18343,10 +18937,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80592|GLBB_RIFPA Giant hemoglobins B chain OS=Riftia pachyptila PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 25.9 0.0 6e-07 0.00028 8 123 .. 9 123 .. 3 141 .. 0.81
+ 1 ! 25.9 0.0 6.1e-07 0.0003 8 123 .. 9 123 .. 3 141 .. 0.81
Alignments for each domain:
- == domain 1 score: 25.9 bits; conditional E-value: 6e-07
+ == domain 1 score: 25.9 bits; conditional E-value: 6.1e-07
globins4 8 ktkvkavWakvea...dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdL 91
+ kvk Wa+ + ee G i ++f+ Pa++++F++ ++ d+++ + ++H+ +vl+ l +a ld l+++l++L
sp|P80592|GLBB_RIFPA 9 RLKVKRQWAEAYGsgnSREEFGHFIWSHVFQHSPAARDMFKRVRG----DNIH-TPAFRAHATRVLGGLDMCIALLDdePVLNTQLAHL 92
@@ -18360,10 +18954,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P27993|LGB2_MEDTR Leghemoglobin 2 OS=Medicago truncatula GN=LB2 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 25.7 0.1 6.9e-07 0.00032 33 145 .. 32 142 .. 3 145 .. 0.76
+ 1 ! 25.7 0.2 7.1e-07 0.00034 33 145 .. 32 142 .. 3 145 .. 0.76
Alignments for each domain:
- == domain 1 score: 25.7 bits; conditional E-value: 6.9e-07
+ == domain 1 score: 25.7 bits; conditional E-value: 7.1e-07
globins4 33 lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvlaa 119
++ Pa++ +F F L+ + ++ s++++ H++kv + + d +l + + ++L H +k vdp+ f ++ e+l++++++
sp|P27993|LGB2_MEDTR 32 ILEKAPAAKGMFS-F--LKDTAGVQDSPKLQSHAEKVFGMVRDSAVQLRatGGVVLGDATLGAIHIQKGVVDPH-FVVVKEALLKTIKE 116
@@ -18377,10 +18971,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11740|GLB1_PHESE Extracellular globin-1 OS=Pheretima sieboldi PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 25.4 0.1 8.6e-07 0.0004 10 128 .. 9 126 .. 4 139 .. 0.80
+ 1 ! 25.4 0.1 8.9e-07 0.00043 10 128 .. 9 126 .. 4 139 .. 0.80
Alignments for each domain:
- == domain 1 score: 25.4 bits; conditional E-value: 8.6e-07
+ == domain 1 score: 25.4 bits; conditional E-value: 8.9e-07
globins4 10 kvkavWakvea...dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLse 93
kvk+ W +v + + e ++ +P F++ ++ e s++ ++Hg +vl l ++ ld + + +l++L
sp|P11740|GLB1_PHESE 9 KVKHQWQQVFSgehHRTEFSLHFWKEFLHDHPDLVSLFKRVQG-----ENIYSPEFQAHGIRVLAGLDSVIGVLDedDTFTVQLAHLKA 92
@@ -18394,10 +18988,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9FEP8|LGB_LOTJA Leghemoglobin OS=Lotus japonicus PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 25.5 0.2 8e-07 0.00037 34 146 .. 34 144 .. 8 146 .. 0.79
+ 1 ! 25.5 0.3 8.3e-07 0.0004 34 146 .. 34 144 .. 8 146 .. 0.79
Alignments for each domain:
- == domain 1 score: 25.5 bits; conditional E-value: 8e-07
+ == domain 1 score: 25.5 bits; conditional E-value: 8.3e-07
globins4 34 fkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl..dekleaklkdLselHakklkvdpkyfkllsevlvdvlaarl 121
+ P+++++F F L+ e k s+++++H++kv da +l ++++ + ++L H +k dp+ f ++ e+l++++++
sp|Q9FEP8|LGB_LOTJA 34 LEIAPTAKDMFS-F--LK-ESGPKHSPQLQAHAEKVFALTRDAATQLvaKGEVTLADASLGAVHVQKAVTDPH-FVVVKEALLQTVKEAV 118
@@ -18411,10 +19005,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P93849|LGB3_VICFA Leghemoglobin 49 OS=Vicia faba PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 25.4 0.1 8.2e-07 0.00038 33 146 .. 32 143 .. 3 145 .. 0.81
+ 1 ! 25.4 0.1 8.5e-07 0.00041 33 146 .. 32 143 .. 3 145 .. 0.81
Alignments for each domain:
- == domain 1 score: 25.4 bits; conditional E-value: 8.2e-07
+ == domain 1 score: 25.4 bits; conditional E-value: 8.5e-07
globins4 33 lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklk..dLselHakklkvdpkyfkllsevlvdvlaa 119
++ Pa++ +F F L+ ++ + s+++++H+++v + + d +l+ e lk +L H +k vdp+ f ++ e+l++++++
sp|P93849|LGB3_VICFA 32 ILEKAPAAKGMFS-F--LKDSAGVVDSPKLQAHAEQVFGMVRDSAIQLQATGEVVLKngSLGAIHIQKGVVDPH-FVVVKEALLKTIKE 116
@@ -18428,10 +19022,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02231|GLBT_CHITH Globin CTT-IIIA OS=Chironomus thummi thummi PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 24.3 0.0 1.8e-06 0.00084 4 117 .. 10 119 .. 8 147 .. 0.75
+ 1 ! 24.3 0.0 1.9e-06 0.00091 4 117 .. 10 119 .. 8 147 .. 0.75
Alignments for each domain:
- == domain 1 score: 24.3 bits; conditional E-value: 1.8e-06
+ == domain 1 score: 24.3 bits; conditional E-value: 1.9e-06
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLste.delkksadvkkHgkkvldAlsdalakl..d.ekleakl 88
++a+ +vk W k+ ++sG++iL ++ +P F+ Fk+L + ++ k+ a+ k + k++ l+ ++ kl d + +a l
sp|P02231|GLBT_CHITH 10 TDAQVAAVKGDWEKI----KGSGVEILYFFLNKFPGN---FPMFKKLGNDlAAAKGTAEFKDQADKIIAFLQGVIEKLgsDmGGAKALL 91
@@ -18445,10 +19039,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P10816|LGB3_SESRO Leghemoglobin 3 OS=Sesbania rostrata GN=GLB3 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 24.6 0.1 1.5e-06 0.00069 33 146 .. 33 145 .. 4 148 .] 0.80
+ 1 ! 24.6 0.2 1.5e-06 0.00075 33 146 .. 33 145 .. 4 148 .] 0.80
Alignments for each domain:
- == domain 1 score: 24.6 bits; conditional E-value: 1.5e-06
+ == domain 1 score: 24.6 bits; conditional E-value: 1.5e-06
globins4 33 lfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvlaa 119
++ Pa++ +F kd + ++++ +++H++kv + + d a+l + + + ++L H +k +dp+ f ++ e+l+++l++
sp|P10816|LGB3_SESRO 33 ILEKAPAAKGMFSFLKDFD--EVPQNNPSLQAHAEKVFGLVRDSAAQLRatGVVVLADASLGSVHVQKGVLDPH-FVVVKEALLKTLKE 118
@@ -18462,10 +19056,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P14848|LGB2_SESRO Leghemoglobin 2 OS=Sesbania rostrata GN=GLB2 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 24.2 0.1 2e-06 0.00093 34 146 .. 34 145 .. 4 147 .. 0.80
+ 1 ! 24.2 0.2 2.1e-06 0.001 34 146 .. 34 145 .. 4 147 .. 0.80
Alignments for each domain:
- == domain 1 score: 24.2 bits; conditional E-value: 2e-06
+ == domain 1 score: 24.2 bits; conditional E-value: 2.1e-06
globins4 34 fkstPatqefFekFkdLstedel.kksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvlaa 119
+ Pa++ +F L+ +d + ++++ +++H++kv + + d a+l + + + ++L H +k +dp+ f ++ e+l+++l++
sp|P14848|LGB2_SESRO 34 LEKAPAAKGMFSF---LKDSDGVpQNNPSLQAHAEKVFGLVRDSAAQLRatGVVVLADASLGSVHVQKGVLDPH-FVVVKEALLKTLKE 118
@@ -18479,10 +19073,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80721|GLB_PAREP Globin-3 OS=Paramphistomum epiclitum PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 23.8 0.7 2.6e-06 0.0012 20 143 .. 23 143 .. 2 147 .. 0.73
+ 1 ! 23.8 1.0 2.7e-06 0.0013 20 143 .. 23 143 .. 2 147 .. 0.73
Alignments for each domain:
- == domain 1 score: 23.8 bits; conditional E-value: 2.6e-06
+ == domain 1 score: 23.8 bits; conditional E-value: 2.7e-06
globins4 20 adveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdLselHakklkvdpkyfkl 108
a++ e+G + lf+++P+ +F + + +t +++++s+ +k++++++ +A+ +l+++ + +k+++ ++ ++ kv f +
sp|P80721|GLB_PAREP 23 AHIVETGLGAYHALFTAHPQYIIHFSRLE-GHTIENVMQSEGIKHYARTLTEAIVHMLKEISnDAEVKKIAAQYGKDHTSRKVTKDEF-M 110
@@ -18496,10 +19090,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P80722|GLB_ISOHY Globin OS=Isoparorchis hypselobagri PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 23.7 0.1 2.9e-06 0.0013 21 143 .. 24 144 .. 2 148 .. 0.82
+ 1 ! 23.7 0.1 3e-06 0.0014 21 143 .. 24 144 .. 2 148 .. 0.82
Alignments for each domain:
- == domain 1 score: 23.7 bits; conditional E-value: 2.9e-06
+ == domain 1 score: 23.7 bits; conditional E-value: 3e-06
globins4 21 dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdLselHakklkvdpkyfkl 108
+ e G + + lf ++P+ ++F + ++ t++++++ + k ++k++++ l + l+ d l+++++ + + k +v f+
sp|P80722|GLB_ISOHY 24 HRMELGLGAYTELFAAHPEYIKKFSRLQE-ATPANVMAQDGAKYYAKTLINDLVELLKAStDeATLNTAIARTATKDHKPRNVSGAEFQT 112
@@ -18513,10 +19107,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P09966|GLB2_TYLHE Extracellular globin-2A OS=Tylorrhynchus heterochaetus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 23.7 0.0 2.7e-06 0.0013 8 132 .. 10 133 .. 4 140 .. 0.78
+ 1 ! 23.7 0.0 2.8e-06 0.0014 8 132 .. 10 133 .. 4 140 .. 0.78
Alignments for each domain:
- == domain 1 score: 23.7 bits; conditional E-value: 2.7e-06
+ == domain 1 score: 23.7 bits; conditional E-value: 2.8e-06
globins4 8 ktkvkavWakvea...dveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekleaklkdL 91
+ kvk+ Wak + + e G +f +++ F++ + ed s+ +H +v + l ++ +l d l+a+l++L
sp|P09966|GLB2_TYLHE 10 RLKVKQQWAKAYGvghERVELGIALWKSMFAQDNDARDLFKRV---HGED--VHSPAFEAHMARVFNGLDRVISSLtDePVLNAQLEHL 93
@@ -18530,10 +19124,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02229|GLB3_CHITH Globin CTT-III OS=Chironomus thummi thummi GN=A PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 22.7 0.0 5.5e-06 0.0026 3 125 .. 16 129 .. 13 151 .] 0.76
+ 1 ! 22.7 0.1 5.7e-06 0.0028 3 125 .. 16 129 .. 13 151 .] 0.76
Alignments for each domain:
- == domain 1 score: 22.7 bits; conditional E-value: 5.5e-06
+ == domain 1 score: 22.7 bits; conditional E-value: 5.7e-06
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++ ++v+a + kv ++ + iL +fk+ P +F +F + + +k+ a H++++++ +s+++ +l ++ea++++
sp|P02229|GLB3_CHITH 16 LSADQISTVQASFDKV----KGDPVGILYAVFKADPSIMAKFTQFAGKD-LESIKGTAPFEIHANRIVGFFSKIIGELP-NIEADVNTF 98
@@ -18547,10 +19141,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02234|LGBA_PHAVU Leghemoglobin A OS=Phaseolus vulgaris PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 22.9 0.4 5e-06 0.0023 4 148 .. 5 145 .. 3 146 .] 0.88
+ 1 ! 22.9 0.6 5.1e-06 0.0025 4 148 .. 5 145 .. 3 146 .] 0.88
Alignments for each domain:
- == domain 1 score: 22.9 bits; conditional E-value: 5e-06
+ == domain 1 score: 22.9 bits; conditional E-value: 5.1e-06
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdL 91
+e++ v++ W + ++ ++ + + ++ Pa+++ F + ++++ +H++ + + + d a+l + + ++L
sp|P02234|LGBA_PHAVU 5 TEKQEALVNSSWEAFKGNIPQYSVVFYTSILEKAPAAKNLFSFL---A-NGVDPTNPKLTAHAESLFGLVRDSAAQLRaNGAVVADAAL 89
@@ -18564,10 +19158,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P22431|GLB3_CHITP Globin CTP-III OS=Chironomus thummi piger PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 23.0 0.0 4.7e-06 0.0022 3 125 .. 1 114 [. 1 136 [] 0.75
+ 1 ! 23.0 0.0 4.8e-06 0.0023 3 125 .. 1 114 [. 1 136 [] 0.75
Alignments for each domain:
- == domain 1 score: 23.0 bits; conditional E-value: 4.7e-06
+ == domain 1 score: 23.0 bits; conditional E-value: 4.8e-06
globins4 3 LseaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL 91
Ls+++ ++v+a + kv ++ + iL +fk+ P +F +F + + +k+ a +H++++++ +s+++ +l ++ea++++
sp|P22431|GLB3_CHITP 1 LSADQISTVQASFDKV----KGDPVGILYAVFKADPSIMAKFTQFAGKD-LESIKGTAPFETHANRIVGFFSKIIGELP-NIEADVNTF 83
@@ -18578,13 +19172,13 @@ Domain annotation for each sequence (and alignments):
sp|P22431|GLB3_CHITP 84 VASHKPR-GVTHDQLNNFRAGFVSYMKAH--TDF 114
9999544.455555555555555555555..455 PP
->> sp|P85312|HBBA_CATCL Hemoglobin subunit beta-A (Fragment) OS=Catostomus clarki GN=hbba PE=1 SV=1
+>> sp|P85312|HBBA_CATCL Hemoglobin subunit beta-A (Fragment) OS=Catostomus clarkii GN=hbba PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 22.9 0.0 4.9e-06 0.0023 4 44 .. 4 42 .] 1 42 [] 0.95
+ 1 ! 22.9 0.0 5e-06 0.0024 4 44 .. 4 42 .] 1 42 [] 0.95
Alignments for each domain:
- == domain 1 score: 22.9 bits; conditional E-value: 4.9e-06
+ == domain 1 score: 22.9 bits; conditional E-value: 5e-06
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefF 44
++ae+++++++W+k+ d +e G L rl ++ tq++F
sp|P85312|HBBA_CATCL 4 TDAERSAILSLWGKI--DTDELGPALLARLXLVXXXTQRYF 42
@@ -18593,10 +19187,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P27199|LGB_PSOTE Leghemoglobin OS=Psophocarpus tetragonolobus PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 22.6 0.4 5.9e-06 0.0027 5 147 .. 6 144 .. 3 145 .] 0.84
+ 1 ! 22.6 0.6 6.1e-06 0.003 5 147 .. 6 144 .. 3 145 .] 0.84
Alignments for each domain:
- == domain 1 score: 22.6 bits; conditional E-value: 5.9e-06
+ == domain 1 score: 22.6 bits; conditional E-value: 6.1e-06
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdLse 93
e++ v++ + +a+v ++ + + ++ Pa+++ F+ + ++++ H++k+ + + d a+l + + ++L
sp|P27199|LGB_PSOTE 6 EKQEALVNSSYEAFKANVPQYSVVFYTSILEKAPAAKDLFPFLA----NGVDPTNPKLIGHAEKLFGLVHDSAAQLRaKGAVVADAALGS 91
@@ -18610,10 +19204,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P18202|GLB_TUBTU Globin, extracellular monomeric OS=Tubifex tubifex PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 22.5 0.0 6.5e-06 0.003 9 122 .. 8 120 .. 3 131 .. 0.81
+ 1 ! 22.5 0.0 6.7e-06 0.0033 9 122 .. 8 120 .. 3 131 .. 0.81
Alignments for each domain:
- == domain 1 score: 22.5 bits; conditional E-value: 6.5e-06
+ == domain 1 score: 22.5 bits; conditional E-value: 6.7e-06
globins4 9 tkvkavWakveadve...esGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLse 93
kvk+ Wa+ + + + G +f P+ + F++ + + sa+ +H+++vl+ l ++ ld ++a+l++L
sp|P18202|GLB_TUBTU 8 FKVKHQWAEAFGTSHhrlDFGLKLWNSIFRDAPEIRGLFKRVDGDN-----AYSAEFEAHAERVLGGLDMTISLLDdqAAFDAQLAHLKS 92
@@ -18627,10 +19221,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O04939|LGB2_PHAVU Leghemoglobin OS=Phaseolus vulgaris PE=2 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 22.5 0.3 6.7e-06 0.0031 4 148 .. 5 145 .. 3 146 .] 0.87
+ 1 ! 22.5 0.5 6.9e-06 0.0034 4 148 .. 5 145 .. 3 146 .] 0.87
Alignments for each domain:
- == domain 1 score: 22.5 bits; conditional E-value: 6.7e-06
+ == domain 1 score: 22.5 bits; conditional E-value: 6.9e-06
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdL 91
+e++ v++ W + ++ ++ + + ++ Pa+++ F + ++++ +H++ + + + d a+l + + ++L
sp|O04939|LGB2_PHAVU 5 TEKQEALVNSSWEAFKGNIPQYSVVFYTSILEKAPAAKNLFSFL---A-NGVDPTNPKLTAHAESLFGLVRDSAAQLRaNGAVVADAAL 89
@@ -18644,10 +19238,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P08924|GLB1_LUMTE Extracellular globin-1 OS=Lumbricus terrestris PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 21.8 0.0 1.1e-05 0.005 10 127 .. 9 125 .. 4 141 .. 0.81
+ 1 ! 21.8 0.0 1.1e-05 0.0054 10 127 .. 9 125 .. 4 141 .. 0.81
Alignments for each domain:
- == domain 1 score: 21.8 bits; conditional E-value: 1.1e-05
+ == domain 1 score: 21.8 bits; conditional E-value: 1.1e-05
globins4 10 kvkavWakveadvee...sGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLse 93
kvk Wa ++++ G + ++ +P+ + F + ++ + s++ +H+++vl l ++ ld + l a+l++L
sp|P08924|GLB1_LUMTE 9 KVKLQWASAFGHAHQrvaFGLELWKGILREHPEIKAPFSRVRGDN-----IYSPQFGAHSQRVLSGLDITISMLDtpDMLAAQLAHLKV 92
@@ -18661,10 +19255,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q7M413|GLBA2_OLIMA Extracellular giant hemoglobin major globin subunit A2 OS=Oligobrachia mashikoi GN=ghbA2 PE=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 21.6 0.0 1.2e-05 0.0056 9 140 .. 24 156 .. 17 158 .] 0.81
+ 1 ! 21.6 0.0 1.2e-05 0.006 9 140 .. 24 156 .. 17 158 .] 0.81
Alignments for each domain:
- == domain 1 score: 21.6 bits; conditional E-value: 1.2e-05
+ == domain 1 score: 21.6 bits; conditional E-value: 1.2e-05
globins4 9 tkvkavWakve...adveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdL 91
vk Wa+ + ++ e G+ i + lf +P ++ F + ++ s + ++H+ +vl+ l +a+ld l+a l+ L
sp|Q7M413|GLBA2_OLIMA 24 LLVKRQWAEAYgegTNRELLGNRIWEDLFANMPDARGLFSRVNGND-----IDSSEFQAHSLRVLGGLDMCVASLDdvPVLNALLARL 106
@@ -18678,10 +19272,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02232|LGB1_VICFA Leghemoglobin-1 OS=Vicia faba PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 21.6 0.1 1.2e-05 0.0057 34 146 .. 34 143 .. 7 144 .] 0.88
+ 1 ! 21.6 0.1 1.3e-05 0.0062 34 146 .. 34 143 .. 7 144 .] 0.88
Alignments for each domain:
- == domain 1 score: 21.6 bits; conditional E-value: 1.2e-05
+ == domain 1 score: 21.6 bits; conditional E-value: 1.3e-05
globins4 34 fkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdL.selHakklkvdpkyfkllsevlvdvlaarl 121
++ P+++ +F F L+ ++ + s+++ +H++kv + + d +l e l H +k +dp+ f ++ e+l++++++
sp|P02232|LGB1_VICFA 34 LQKAPTAKAMFS-F--LKDSAGVVDSPKLGAHAEKVFGMVRDSAVQLRATGEVVLDGKdGSIHIQKGVLDPH-FVVVKEALLKTIKEAS 118
@@ -18695,10 +19289,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P93848|LGB2_VICFA Leghemoglobin 29 OS=Vicia faba GN=LB29 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ! 20.9 0.1 2.1e-05 0.0097 34 143 .. 34 142 .. 6 147 .. 0.81
+ 1 ! 20.9 0.1 2.2e-05 0.01 34 143 .. 34 142 .. 6 147 .. 0.81
Alignments for each domain:
- == domain 1 score: 20.9 bits; conditional E-value: 2.1e-05
+ == domain 1 score: 20.9 bits; conditional E-value: 2.2e-05
globins4 34 fkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleakl..kdLselHakklkvdpkyfkllsevlvdvlaar 120
+ P ++++F kd + + +++ + +H++ v + + da a+l+ + l +L H++k +vd +f ++ e+l++++++
sp|P93848|LGB2_VICFA 34 LEKAPIAKNMFSVLKDAN--EIPLANPSINAHTEMVFEMVRDAAAQLQTTGQVVLgdTTLGVVHTQK-RVDGLHFMVVKEALLKTIKEA 119
@@ -18712,10 +19306,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02236|LGB2_SOYBN Leghemoglobin C2 OS=Glycine max PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 20.6 0.3 2.6e-05 0.012 8 146 .. 9 143 .. 3 145 .] 0.78
+ 1 ? 20.6 0.4 2.6e-05 0.013 8 146 .. 9 143 .. 3 145 .] 0.78
Alignments for each domain:
- == domain 1 score: 20.6 bits; conditional E-value: 2.6e-05
+ == domain 1 score: 20.6 bits; conditional E-value: 2.6e-05
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdLselH 95
v + + +a++ ++ + + ++ Pa+++ F F Ls + +++++ H++k+ + + d +l+ + + ++L H
sp|P02236|LGB2_SOYBN 9 EALVSSSFEAFKANIPQYSVVFYTSILEKAPAAKDLFS-F--LS-NGVDPSNPKLTGHAEKLFGLVRDSAGQLKaNGTVVADAALGSIH 93
@@ -18729,10 +19323,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q93Y92|HBL2_GOSHI Non-symbiotic hemoglobin 2 OS=Gossypium hirsutum GN=HB2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 20.2 0.2 3.2e-05 0.015 5 142 .. 5 145 .. 2 154 .. 0.73
+ 1 ? 20.2 0.3 3.3e-05 0.016 5 142 .. 5 145 .. 2 154 .. 0.73
Alignments for each domain:
- == domain 1 score: 20.2 bits; conditional E-value: 3.2e-05
+ == domain 1 score: 20.2 bits; conditional E-value: 3.3e-05
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel.kksadvkkHgkkvldAlsdalakldek.....leak 87
e++ vk+ W + d+ s ++ P ++++F F L+ ++e+ ++++++k+H++kv + + +l ek +++
sp|Q93Y92|HBL2_GOSHI 5 EKQEGLVKESWEVLKQDIPHSSLRFFSLILEIAPGAKNMFS-F--LRESEEIpQNNPKLKAHAVKVFKMTCESAIQLREKgevvvADTT 90
@@ -18743,13 +19337,13 @@ Domain annotation for each sequence (and alignments):
sp|Q93Y92|HBL2_GOSHI 91 LKYLGTVHVKSGVKDP-HFEVVKEALLRTIEEAIGEEkWNEEMKNAWGEAYDQLAE 145
9*******98865555.79***********99888752455555555555444444 PP
->> sp|Q9KMY3|HMP_VIBCH Flavohemoprotein OS=Vibrio cholerae GN=hmp PE=3 SV=1
+>> sp|Q9KMY3|HMP_VIBCH Flavohemoprotein OS=Vibrio cholerae serotype O1 (strain ATCC 39315 / El Tor Inaba N16961) GN=hmp
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 19.6 0.2 5.3e-05 0.024 61 134 .. 49 123 .. 13 135 .. 0.77
+ 1 ? 19.6 0.4 5.5e-05 0.027 61 134 .. 49 123 .. 13 135 .. 0.77
Alignments for each domain:
- == domain 1 score: 19.6 bits; conditional E-value: 5.3e-05
+ == domain 1 score: 19.6 bits; conditional E-value: 5.5e-05
globins4 61 dvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaale 134
+ ++ + +A+++ +++d l ++++ ++++H ++++++p++++++++ l+++l + p ft +v+ a
sp|Q9KMY3|HMP_VIBCH 49 KTGRQSVALFEAIAAYAKHIDnlAALTSAVERIAHKH-TSFNIQPEHYQIVGHHLLETLRELAPDAFTQPVEEAWT 123
@@ -18758,10 +19352,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q43236|LGB1_VIGUN Leghemoglobin-1 OS=Vigna unguiculata GN=LBI PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 20.0 0.9 3.8e-05 0.018 4 148 .. 5 145 .] 2 145 .] 0.78
+ 1 ? 20.0 1.3 3.9e-05 0.019 4 148 .. 5 145 .] 2 145 .] 0.78
Alignments for each domain:
- == domain 1 score: 20.0 bits; conditional E-value: 3.8e-05
+ == domain 1 score: 20.0 bits; conditional E-value: 3.9e-05
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdL 91
s+++ v+ ++ +a++ ++ + + ++ Pa+++ F F L + ++++ H++k+ + + d a+l + ++L
sp|Q43236|LGB1_VIGUN 5 SDKQEALVNGAYEAFKANIPKYSVVFYTTILEKAPAAKNLFS-F--LA-NGVDATNPKLTGHAEKLFGLVRDSAAQLRaSGGVVADAAL 89
@@ -18775,10 +19369,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q43296|LGB2_VIGUN Leghemoglobin-2 OS=Vigna unguiculata GN=LBII PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 19.9 0.6 4.2e-05 0.019 5 148 .. 6 145 .] 2 145 .] 0.76
+ 1 ? 19.9 0.8 4.3e-05 0.021 5 148 .. 6 145 .] 2 145 .] 0.76
Alignments for each domain:
- == domain 1 score: 19.9 bits; conditional E-value: 4.2e-05
+ == domain 1 score: 19.9 bits; conditional E-value: 4.3e-05
globins4 5 eaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdLs 92
+++ v+ ++ +ad+ ++ + + ++ Pa+++ F F L + ++++ H++k+ + + d a+l + ++L
sp|Q43296|LGB2_VIGUN 6 DKQEGLVNGAYEAFKADIPKYSVVFYTTILEKAPAAKNLFS-F--LA-NGVDATNPKLTGHAEKLFGLVRDSAAQLRaSGGVVADAALG 90
@@ -18792,10 +19386,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02235|LGB1_SOYBN Leghemoglobin C1 OS=Glycine max PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 19.7 0.4 4.6e-05 0.021 10 145 .. 11 142 .. 3 144 .] 0.77
+ 1 ? 19.7 0.6 4.8e-05 0.023 10 145 .. 11 142 .. 3 144 .] 0.77
Alignments for each domain:
- == domain 1 score: 19.7 bits; conditional E-value: 4.6e-05
+ == domain 1 score: 19.7 bits; conditional E-value: 4.8e-05
globins4 10 kvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdLselHak 97
v + + +a++ ++ + ++ Pa+++ F F L + ++++ H++k+ + d +l+ + + ++L Ha+
sp|P02235|LGB1_SOYBN 11 LVSSSFEAFKANIPQYSVVFYNSILEKAPAAKDLFS-F--LA-NGVDPTNPKLTGHAEKLFALVRDSAGQLKtNGTVVADAALVSIHAQ 95
@@ -18809,10 +19403,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P11069|GLB3_LUMTE Extracellular globin-3 OS=Lumbricus terrestris PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 19.4 0.0 5.8e-05 0.027 24 121 .. 51 145 .. 23 170 .] 0.75
+ 1 ? 19.4 0.0 6e-05 0.029 24 121 .. 51 145 .. 23 170 .] 0.75
Alignments for each domain:
- == domain 1 score: 19.4 bits; conditional E-value: 5.8e-05
+ == domain 1 score: 19.4 bits; conditional E-value: 6e-05
globins4 24 esGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld..ekleaklkdLselHakklkvdpkyfklls 110
+ G L++l k P ++ F++ d++ + ++ +H+ ++l+ l a++ ld l+a+l +L+++H + v+ +fk ++
sp|P11069|GLB3_LUMTE 51 GFGRLLLTKLAKDIPDVNDLFKRV-DIE----HAEGPKFSAHALRILNGLDLAINLLDdpPALDAALDHLAHQHEVREGVQKAHFKKFG 134
@@ -18826,10 +19420,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02220|GLB4_TYLHE Extracellular globin-2C OS=Tylorrhynchus heterochaetus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 19.1 0.0 7.4e-05 0.034 4 141 .. 5 144 .. 3 148 .. 0.74
+ 1 ? 19.1 0.0 7.6e-05 0.037 4 141 .. 5 144 .. 3 148 .. 0.74
Alignments for each domain:
- == domain 1 score: 19.1 bits; conditional E-value: 7.4e-05
+ == domain 1 score: 19.1 bits; conditional E-value: 7.6e-05
globins4 4 seaektkvkavWakveadvee.....sGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakl.d.ekle 85
s +++ +v+a+W + + ++ G + lf at+ F++ + d+ s++ +H +v++ l + l d + l+
sp|P02220|GLB4_TYLHE 5 SIEDRREVQALWRSIWSAEDTgrrtlIGRLLFEELFEIDGATKGLFKRV---N-VDDT-HSPEEFAHVLRVVNGLDTLIGVLgDsDTLN 88
@@ -18843,10 +19437,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P49672|GLB2_ASCSU Myoglobin OS=Ascaris suum PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 18.9 0.0 8.4e-05 0.039 25 92 .. 23 87 .. 10 106 .. 0.85
+ 1 ? 18.9 0.0 8.6e-05 0.042 25 92 .. 23 87 .. 10 106 .. 0.85
Alignments for each domain:
- == domain 1 score: 18.9 bits; conditional E-value: 8.4e-05
+ == domain 1 score: 18.9 bits; conditional E-value: 8.6e-05
globins4 25 sGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLs 92
G++ lf +P +++F+ ++L+ +++kks++ kk g+++l A +la+l+ + +a++k+ +
sp|P49672|GLB2_ASCSU 23 NGTEFYALLFDKHPDLRHYFKGNENLT-GADVKKSDHFKKQGQRLLLAC-HVLAHLE-NDPASFKAYA 87
@@ -18855,10 +19449,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02219|GLB1_TYLHE Extracellular globin-1 OS=Tylorrhynchus heterochaetus PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 19.0 0.0 8e-05 0.037 9 129 .. 9 126 .. 6 139 .] 0.71
+ 1 ? 19.0 0.0 8.2e-05 0.04 9 129 .. 9 126 .. 6 139 .] 0.71
Alignments for each domain:
- == domain 1 score: 19.0 bits; conditional E-value: 8e-05
+ == domain 1 score: 19.0 bits; conditional E-value: 8.2e-05
globins4 9 tkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHak 97
kvk+ Wa+v++ v+es +d + +f + t+ F+ ++ d+ s++ k+H ++v + + ld + + ++L++ a
sp|P02219|GLB1_TYLHE 9 IKVKQQWAQVYS-VGESRTDFAIDVFNNFFRTNPDRSLFNRVN-GDN-VYSPEFKAHMVRVFAGFDILISVLD-DKPVLDQALAHYAAF 93
@@ -18872,10 +19466,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02238|LGBA_SOYBN Leghemoglobin A OS=Glycine max GN=LBA PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 18.2 0.7 0.00013 0.062 9 144 .. 10 141 .. 2 144 .] 0.75
+ 1 ? 18.2 1.0 0.00014 0.067 9 144 .. 10 141 .. 2 144 .] 0.75
Alignments for each domain:
- == domain 1 score: 18.2 bits; conditional E-value: 0.00013
+ == domain 1 score: 18.2 bits; conditional E-value: 0.00014
globins4 9 tkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekleaklkdLselHa 96
v + + +a++ ++ + + ++ Pa+++ F F L + ++++ H++k+ + d +l+ + ++L Ha
sp|P02238|LGBA_SOYBN 10 ALVSSSFEAFKANIPQYSVVFYTSILEKAPAAKDLFS-F--LA-NGVDPTNPKLTGHAEKLFALVRDSAGQLKaSGTVVADAALGSVHA 94
@@ -18889,10 +19483,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02217|GLB2_GLYDI Globin, minor monomeric component (Fragment) OS=Glycera dibranchiata PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 17.6 0.0 0.00022 0.1 3 44 .. 2 45 .] 1 45 [] 0.83
+ 1 ? 17.6 0.0 0.00022 0.11 3 44 .. 2 45 .] 1 45 [] 0.83
Alignments for each domain:
- == domain 1 score: 17.6 bits; conditional E-value: 0.00022
+ == domain 1 score: 17.6 bits; conditional E-value: 0.00022
globins4 3 LseaektkvkavWakve.adv.eesGadiLvrlfkstPatqefF 44
Ls+ae++ v + W + ad +++G++ L++++ + P+ F
sp|P02217|GLB2_GLYDI 2 LSAAERQVVASCWKDIAgADXgAGVGKEXLIKFISAAPEMAAVF 45
@@ -18901,10 +19495,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P02237|LGB3_SOYBN Leghemoglobin C3 OS=Glycine max GN=LGB1 PE=2 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 17.4 0.1 0.00024 0.11 57 146 .. 54 143 .. 4 145 .] 0.77
+ 1 ? 17.4 0.2 0.00025 0.12 57 146 .. 54 143 .. 4 145 .] 0.77
Alignments for each domain:
- == domain 1 score: 17.4 bits; conditional E-value: 0.00024
+ == domain 1 score: 17.4 bits; conditional E-value: 0.00025
globins4 57 kksadvkkHgkkvldAlsdalakldekleakl.kdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKllalvakll 144
++++ H++k+ + + d +l+ + ++L Ha+k dp+ f ++ e+l++++++ + +++ + +a e + + +a ++
sp|P02237|LGB3_SOYBN 54 PTNPKLTGHAEKLFGLVRDSAGQLKASGTVVIdAALGSIHAQKAITDPQ-FVVVKEALLKTIKEAVGDKWSDELSSAWEVAYDELAAAI 141
@@ -18915,25 +19509,25 @@ Domain annotation for each sequence (and alignments):
sp|P02237|LGB3_SOYBN 142 KK 143
65 PP
->> sp|Q821U7|SYC_CHLCV Cysteinyl-tRNA synthetase OS=Chlamydophila caviae GN=cysS PE=3 SV=1
+>> sp|Q821U7|SYC_CHLCV Cysteine--tRNA ligase OS=Chlamydophila caviae (strain GPIC) GN=cysS PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 15.6 0.0 0.00084 0.39 55 107 .. 346 398 .. 298 414 .. 0.90
+ 1 ? 15.6 0.0 0.00087 0.42 55 107 .. 346 398 .. 298 414 .. 0.90
Alignments for each domain:
- == domain 1 score: 15.6 bits; conditional E-value: 0.00084
+ == domain 1 score: 15.6 bits; conditional E-value: 0.00087
globins4 55 elkksadvkkHgkkvldAlsdalakldekleaklkdLse.lHakklkvdpkyfk 107
+ s+d+++Hg+ l+A+s+a+a+ d ++ a+l++L + H ++ +d +f
sp|Q821U7|SYC_CHLCV 346 SSHISEDMQQHGEGFLQAFSEAIAN-DLNIAAALAALFDfIHQTNSTIDQANFT 398
56789********************.99*********985699******99996 PP
->> sp|O66586|Y211_AQUAE Uncharacterized globin-like protein aq_211 OS=Aquifex aeolicus GN=aq_211 PE=3 SV=1
+>> sp|O66586|Y211_AQUAE Uncharacterized globin-like protein aq_211 OS=Aquifex aeolicus (strain VF5) GN=aq_211 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 13.7 0.1 0.0034 1.6 22 120 .. 17 106 .. 2 135 .. 0.69
+ 1 ? 13.7 0.1 0.0036 1.7 22 120 .. 17 106 .. 2 135 .. 0.69
Alignments for each domain:
- == domain 1 score: 13.7 bits; conditional E-value: 0.0034
+ == domain 1 score: 13.7 bits; conditional E-value: 0.0036
globins4 22 veesGadiLvrl....fkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklkvdpkyf 106
+e+G++i r+ f +P+t+e F + ++ kk ++ ++ A + + +l+ +l++++++++ +H ++ +v p+++
sp|O66586|Y211_AQUAE 17 LKEHGTEITARMyellFSKYPKTKELFAGA----------SEEQPKKLANAII-AYATYIDRLE-ELDNAISTIARSHVRR-NVKPEHY 92
@@ -18944,13 +19538,13 @@ Domain annotation for each sequence (and alignments):
sp|O66586|Y211_AQUAE 93 PLVKECLLQAIEEV 106
********998765 PP
->> sp|Q24SX0|SYGB_DESHY Glycyl-tRNA synthetase beta subunit OS=Desulfitobacterium hafniense (strain Y51) GN=glyS PE=3 S
+>> sp|Q24SX0|SYGB_DESHY Glycine--tRNA ligase beta subunit OS=Desulfitobacterium hafniense (strain Y51) GN=glyS PE=3 SV=
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 13.6 0.0 0.0036 1.7 86 134 .. 24 76 .. 13 81 .. 0.85
+ 1 ? 13.6 0.0 0.0037 1.8 86 134 .. 24 76 .. 13 81 .. 0.85
Alignments for each domain:
- == domain 1 score: 13.6 bits; conditional E-value: 0.0036
+ == domain 1 score: 13.6 bits; conditional E-value: 0.0037
globins4 86 aklkdLselHakklkvdpkyfklls.....evlvdvlaarlpkeftadvqaale 134
++l++ +++H+++l++d + +k+ + +vl++ la++ ++fta+v++
sp|Q24SX0|SYGB_DESHY 24 NQLREQAQKHCQELRLDYQDLKVYTtprrfAVLIQGLAEK-QTDFTAEVKGPAV 76
@@ -18959,10 +19553,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P06148|HBF1_URECA Hemoglobin F-I OS=Urechis caupo PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 16.4 0.0 0.00049 0.23 3 126 .. 3 125 .. 1 137 [. 0.82
+ 1 ? 16.4 0.0 0.00051 0.25 3 126 .. 3 125 .. 1 137 [. 0.82
Alignments for each domain:
- == domain 1 score: 16.4 bits; conditional E-value: 0.00049
+ == domain 1 score: 16.4 bits; conditional E-value: 0.00051
globins4 3 LseaektkvkavWa.kveadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkd 90
L+ a+ ++++ W +++ + i + ++++P + fF kF + l++++ k+ + +v++ l +++ l ++ a +k+
sp|P06148|HBF1_URECA 3 LTTAQIKAIQDHWFlNIKGCLQAAADSIFFKYLTAYPGDLAFFHKFSSVP-LYGLRSNPAYKAQTLTVINYLDKVVDALGGNAGALMKA 90
@@ -18976,10 +19570,10 @@ Domain annotation for each sequence (and alignments):
>> sp|P51535|GLB2_NIPBR Myoglobin OS=Nippostrongylus brasiliensis GN=GLBB PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 15.6 0.0 0.0009 0.41 19 139 .. 19 137 .. 9 146 .. 0.74
+ 1 ? 15.6 0.0 0.00092 0.45 19 139 .. 19 137 .. 9 146 .. 0.74
Alignments for each domain:
- == domain 1 score: 15.6 bits; conditional E-value: 0.0009
+ == domain 1 score: 15.6 bits; conditional E-value: 0.00092
globins4 19 eadveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakld.ekl.eaklkdLselHakklkvdpky 105
+a+ +++G+d +f+ +P +++F+ ++ + +d+++ks+ k g +l + + +d e++ +a ++ ++H + +dp
sp|P51535|GLB2_NIPBR 19 KAQQAQVGKDFYKFFFTNHPDLRKYFKGAENFT-ADDVQKSDRFEKLGSGLLLSVHILANTFDnEDVfRAFCRETIDRHVGR-GLDPAL 105
@@ -18990,32 +19584,32 @@ Domain annotation for each sequence (and alignments):
sp|P51535|GLB2_NIPBR 106 WKAFWSVWVAFLESK--GGVSGDQKAAWDKLGTV 137
888888888888888..66777788888887555 PP
->> sp|P30627|GLBH_CAEEL Globin-like protein OS=Caenorhabditis elegans GN=glb-1 PE=2 SV=2
+>> sp|P30627|GLBH_CAEEL Globin-like protein OS=Caenorhabditis elegans GN=glb-1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 14.5 0.0 0.0019 0.9 20 74 .. 25 78 .. 12 117 .. 0.79
+ 1 ? 14.5 0.0 0.002 0.97 20 74 .. 25 78 .. 12 117 .. 0.79
Alignments for each domain:
- == domain 1 score: 14.5 bits; conditional E-value: 0.0019
+ == domain 1 score: 14.5 bits; conditional E-value: 0.002
globins4 20 adveesGadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAls 74
a+ e G+ +f+ +P + +F+ + t+d++kks+ k g+++l A
sp|P30627|GLBH_CAEEL 25 AQNIENGNAFYRYFFTNFPDLRVYFKGA-EKYTADDVKKSERFDKQGQRILLACH 78
55567788888889***********998.5567******************9853 PP
->> sp|B2AND4|MTLD_PODAN Mannitol-1-phosphate 5-dehydrogenase OS=Podospora anserina PE=3 SV=1
+>> sp|B2AND4|MTLD_PODAN Mannitol-1-phosphate 5-dehydrogenase OS=Podospora anserina (strain S / ATCC MYA-4624 / DSM 980
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 8.7 0.0 0.12 55 89 137 .. 84 131 .. 60 139 .. 0.81
- 2 ? 3.5 0.0 4.6 2.1e+03 68 116 .. 242 288 .. 225 309 .. 0.80
+ 1 ? 8.7 0.0 0.12 60 89 137 .. 84 131 .. 60 139 .. 0.81
+ 2 ? 3.5 0.0 4.7 2.3e+03 68 116 .. 242 288 .. 225 309 .. 0.80
Alignments for each domain:
- == domain 1 score: 8.7 bits; conditional E-value: 0.12
+ == domain 1 score: 8.7 bits; conditional E-value: 0.12
globins4 89 kdLselHakklkvdpkyfkllsevlvdvlaarlpkeftadvqaaleKll 137
++++ v p+ +k+l+ v+++ laar ++++t+++ a e ++
sp|B2AND4|MTLD_PODAN 84 EEIATADVVTCSVGPNILKFLAPVIAKGLAAR-STDLTPAAVIACENAI 131
55666666677899******************.99****9988877665 PP
- == domain 2 score: 3.5 bits; conditional E-value: 4.6
+ == domain 2 score: 3.5 bits; conditional E-value: 4.7
globins4 68 kvldAlsdalakldekleaklkdLselHakklkvdpkyfkllsevlvdv 116
+v dAl+d + ++++++lk+ ++l ++k+ +d + k + +v
sp|B2AND4|MTLD_PODAN 242 TVYDALQDKDIR--DEVKNALKETADLITEKHGIDEEEQKQYVDKIVRR 288
@@ -19024,10 +19618,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q68S17|RR2_PANGI 30S ribosomal protein S2, chloroplastic OS=Panax ginseng GN=rps2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 13.4 0.0 0.0041 1.9 7 55 .. 78 126 .. 73 149 .. 0.90
+ 1 ? 13.4 0.0 0.0043 2.1 7 55 .. 78 126 .. 73 149 .. 0.90
Alignments for each domain:
- == domain 1 score: 13.4 bits; conditional E-value: 0.0041
+ == domain 1 score: 13.4 bits; conditional E-value: 0.0043
globins4 7 ektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstede 55
+k + + +Wa ++a + + + L +++ + +t++ kF+dL+te++
sp|Q68S17|RR2_PANGI 78 NKAANLVAWAAIKARCHYVNKKWLGGMLTNWSTTETRLHKFRDLRTEQK 126
@@ -19036,22 +19630,22 @@ Domain annotation for each sequence (and alignments):
>> sp|B1KJ42|Y2786_SHEWM UPF0352 protein Swoo_2786 OS=Shewanella woodyi (strain ATCC 51908 / MS32) GN=Swoo_2786 PE=3 SV
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 13.6 0.1 0.0036 1.7 96 139 .. 23 67 .. 2 70 .. 0.76
+ 1 ? 13.6 0.1 0.0037 1.8 96 139 .. 23 67 .. 2 70 .. 0.76
Alignments for each domain:
- == domain 1 score: 13.6 bits; conditional E-value: 0.0036
+ == domain 1 score: 13.6 bits; conditional E-value: 0.0037
globins4 96 akklkvdpk.yfkllsevlvdvlaarlpkeftadvqaaleKllal 139
+k++ + + +l++++ d la + p+e a+v + K+la
sp|B1KJ42|Y2786_SHEWM 23 LDKHQAPTDlRLMVLGNCVTDLLARKVPAEARASVAEQFSKALAQ 67
35666655425789****************************985 PP
->> sp|Q7S1Y0|RNA14_NEUCR mRNA 3'-end-processing protein rna-14 OS=Neurospora crassa GN=rna-14 PE=3 SV=1
+>> sp|Q7S1Y0|RNA14_NEUCR mRNA 3'-end-processing protein rna-14 OS=Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / C
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.6 0.1 0.0073 3.4 10 96 .. 552 647 .. 546 652 .. 0.83
+ 1 ? 12.6 0.1 0.0075 3.7 10 96 .. 552 647 .. 546 652 .. 0.83
Alignments for each domain:
- == domain 1 score: 12.6 bits; conditional E-value: 0.0073
+ == domain 1 score: 12.6 bits; conditional E-value: 0.0075
globins4 10 kvkavWakveadveesGadiLvrlfkstPat.qefFekFkdLst........edelkksadvkkHgkkvldAlsdalakldekleakl 88
++++v kv d + G++ L+r + + P++ + F++ +++ e++++ + vk+ +kvld l +++++l+ek a++
sp|Q7S1Y0|RNA14_NEUCR 552 NITTVENKVTKDGNANGVEFLIRGIEANPESvLLAFKHADHIEStypieendEAKIQRGEAVKAPYNKVLDTLYAMIKSLKEKEAAQI 639
@@ -19065,10 +19659,10 @@ Domain annotation for each sequence (and alignments):
>> sp|A8FU97|Y1809_SHESH UPF0352 protein Ssed_1809 OS=Shewanella sediminis (strain HAW-EB3) GN=Ssed_1809 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.8 0.0 0.0065 3 98 139 .. 25 67 .. 8 70 .. 0.82
+ 1 ? 12.8 0.1 0.0067 3.3 98 139 .. 25 67 .. 8 70 .. 0.82
Alignments for each domain:
- == domain 1 score: 12.8 bits; conditional E-value: 0.0065
+ == domain 1 score: 12.8 bits; conditional E-value: 0.0067
globins4 98 klkvdpk.yfkllsevlvdvlaarlpkeftadvqaaleKllal 139
k++ + + +l++++ d la + p+e a+v + K+la
sp|A8FU97|Y1809_SHESH 25 KHQAPTDlRLMVLGNCVTDLLARKVPQEARAAVAEQFSKALAQ 67
@@ -19077,10 +19671,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q14185|DOCK1_HUMAN Dedicator of cytokinesis protein 1 OS=Homo sapiens GN=DOCK1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 11.3 0.0 0.019 8.8 32 98 .. 1549 1611 .. 1543 1618 .. 0.81
+ 1 ? 11.3 0.0 0.02 9.5 32 98 .. 1549 1611 .. 1543 1618 .. 0.81
Alignments for each domain:
- == domain 1 score: 11.3 bits; conditional E-value: 0.019
+ == domain 1 score: 11.3 bits; conditional E-value: 0.02
globins4 32 rlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakk 98
r ++ +P+++e+ ek kdL + + ++ ++ Hg kv +Al e++ea +k+L e+ k+
sp|Q14185|DOCK1_HUMAN 1549 RYLQEHPEAHEKIEKLKDLIAWQIPFLAEGIRIHGDKVTEALRPFH----ERMEACFKQLKEKVEKE 1611
@@ -19089,10 +19683,10 @@ Domain annotation for each sequence (and alignments):
>> sp|B2LMI3|RR2_GUIAB 30S ribosomal protein S2, chloroplastic OS=Guizotia abyssinica GN=rps2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.7 0.0 0.0068 3.1 8 56 .. 79 127 .. 73 149 .. 0.88
+ 1 ? 12.7 0.0 0.007 3.4 8 56 .. 79 127 .. 73 149 .. 0.88
Alignments for each domain:
- == domain 1 score: 12.7 bits; conditional E-value: 0.0068
+ == domain 1 score: 12.7 bits; conditional E-value: 0.007
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel 56
k++ +Wa + a + + + L +++ + +t++ kF+dL+te++
sp|B2LMI3|RR2_GUIAB 79 KEADSVAWAAIRARCHYVNKKWLGGMLTNWSTTETRLHKFRDLRTEQKT 127
@@ -19101,10 +19695,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q56P10|RR2_LACSA 30S ribosomal protein S2, chloroplastic OS=Lactuca sativa GN=rps2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.7 0.0 0.007 3.2 8 56 .. 79 127 .. 73 149 .. 0.88
+ 1 ? 12.7 0.0 0.0072 3.5 8 56 .. 79 127 .. 73 149 .. 0.88
Alignments for each domain:
- == domain 1 score: 12.7 bits; conditional E-value: 0.007
+ == domain 1 score: 12.7 bits; conditional E-value: 0.0072
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel 56
k++ +Wa + a + + + L +++ + +t++ kF+dL+te++
sp|Q56P10|RR2_LACSA 79 KEADSVAWAAIRARCHYVNKKWLGGMLTNWSTTETRLHKFRDLRTEQKT 127
@@ -19113,10 +19707,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q1KXW9|RR2_HELAN 30S ribosomal protein S2, chloroplastic OS=Helianthus annuus GN=rps2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.6 0.0 0.0072 3.3 8 56 .. 79 127 .. 73 149 .. 0.88
+ 1 ? 12.6 0.0 0.0074 3.6 8 56 .. 79 127 .. 73 149 .. 0.88
Alignments for each domain:
- == domain 1 score: 12.6 bits; conditional E-value: 0.0072
+ == domain 1 score: 12.6 bits; conditional E-value: 0.0074
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel 56
k++ +Wa + a + + + L +++ + +t++ kF+dL+te++
sp|Q1KXW9|RR2_HELAN 79 KEADSVAWAAIRARCHYVNKKWLGGMLTNWSTTETRLHKFRDLRTEQKT 127
@@ -19125,10 +19719,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0G9X3|RR2_DAUCA 30S ribosomal protein S2, chloroplastic OS=Daucus carota GN=rps2 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.6 0.0 0.0072 3.3 8 56 .. 79 127 .. 73 151 .. 0.86
+ 1 ? 12.6 0.0 0.0074 3.6 8 56 .. 79 127 .. 73 151 .. 0.86
Alignments for each domain:
- == domain 1 score: 12.6 bits; conditional E-value: 0.0072
+ == domain 1 score: 12.6 bits; conditional E-value: 0.0074
globins4 8 ktkvkavWakveadveesGadiLvrlfkstPatqefFekFkdLstedel 56
k + + +Wa + a + + + L +++ + +t++ kF+dL+te++
sp|Q0G9X3|RR2_DAUCA 79 KAADLVAWAAIRARCHYVNKKWLGGMLTNWSTTETRLHKFRDLRTEQKT 127
@@ -19137,10 +19731,10 @@ Domain annotation for each sequence (and alignments):
>> sp|O76242|GLBN_CERLA Neural hemoglobin OS=Cerebratulus lacteus PE=1 SV=3
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.7 0.0 0.0066 3.1 27 121 .. 9 95 .. 2 110 .] 0.74
+ 1 ? 12.7 0.0 0.0068 3.3 27 121 .. 9 95 .. 2 110 .] 0.74
Alignments for each domain:
- == domain 1 score: 12.7 bits; conditional E-value: 0.0066
+ == domain 1 score: 12.7 bits; conditional E-value: 0.0068
globins4 27 adiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklkvdpkyfkllsevlvd 115
d + lfk++P+ q++F Fk++ lk++a k+ + k +d +++a+ +a+ + L+ +H +v f+ ++l++
sp|O76242|GLBN_CERLA 9 DDFYQELFKAHPEYQNKFG-FKGVA-LGSLKGNAAYKTQAGKTVDYINAAIGG-----SADAAGLASRHK-GRNVGSAEFHNAKACLAK 89
@@ -19154,10 +19748,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q27302|GLBH_CAEBR Globin-like protein OS=Caenorhabditis briggsae GN=glb-1 PE=2 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 11.9 0.0 0.012 5.5 26 77 .. 31 81 .. 19 111 .. 0.76
+ 1 ? 11.9 0.0 0.012 6 26 77 .. 31 81 .. 19 111 .. 0.76
Alignments for each domain:
- == domain 1 score: 11.9 bits; conditional E-value: 0.012
+ == domain 1 score: 11.9 bits; conditional E-value: 0.012
globins4 26 GadiLvrlfkstPatqefFekFkdLstedelkksadvkkHgkkvldAlsdal 77
G+ + +f+ +P + +F+ ++ t++++kks+ k g+++l A +
sp|Q27302|GLBH_CAEBR 31 GNGFYQYFFTNFPDLRVYFKGAEKF-TAEDVKKSERFDKQGQRILLACHLIA 81
@@ -19166,10 +19760,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q01333|YCR4_ESCVU Uncharacterized 11.2 kDa protein in crtE 3'region OS=Escherichia vulneris PE=4 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 12.4 0.0 0.0087 4 4 50 .. 45 89 .. 43 99 .. 0.84
+ 1 ? 12.4 0.0 0.009 4.4 4 50 .. 45 89 .. 43 99 .. 0.84
Alignments for each domain:
- == domain 1 score: 12.4 bits; conditional E-value: 0.0087
+ == domain 1 score: 12.4 bits; conditional E-value: 0.009
globins4 4 seaektkvkavWakveadveesGadiLvrlfkstPatqefFekFkdL 50
+ + v ++Wa+ + ++ + iL + f ++P ++e+ F ++
sp|Q01333|YCR4_ESCVU 45 NAIDTADVYSAWAPG--NKGGESETILGKWFAAHPGAREKITLFTKV 89
@@ -19178,10 +19772,10 @@ Domain annotation for each sequence (and alignments):
>> sp|Q0AGZ8|UBIC_NITEC Probable chorismate--pyruvate lyase OS=Nitrosomonas eutropha (strain C91) GN=ubiC PE=3 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 10.5 0.0 0.033 15 58 113 .. 3 55 .. 1 66 [. 0.69
+ 1 ? 10.5 0.0 0.034 17 58 113 .. 3 55 .. 1 66 [. 0.69
Alignments for each domain:
- == domain 1 score: 10.5 bits; conditional E-value: 0.033
+ == domain 1 score: 10.5 bits; conditional E-value: 0.034
globins4 58 ksadvkkHgkkvldAlsdalakldekleaklkdLselHakklkvdpkyfkllsevl 113
+++ + +H + v ++ ++ +l L + H+++++v+p + l ++++
sp|Q0AGZ8|UBIC_NITEC 3 ANPPLAWHPVPVSAPVNLRWWL---MHQESLTRLLQAHCEHFRVEPVFQTLATACI 55
@@ -19190,10 +19784,10 @@ Domain annotation for each sequence (and alignments):
>> sp|B0FZN9|SCML1_PONPY Sex comb on midleg-like protein 1 OS=Pongo pygmaeus GN=SCML1 PE=3 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 11.2 0.0 0.02 9.3 51 100 .. 50 98 .. 43 106 .. 0.92
+ 1 ? 11.2 0.0 0.021 10 51 100 .. 50 98 .. 43 106 .. 0.92
Alignments for each domain:
- == domain 1 score: 11.2 bits; conditional E-value: 0.02
+ == domain 1 score: 11.2 bits; conditional E-value: 0.021
globins4 51 stedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklk 100
+te++lk +dv H + + dA+++ +k+d ++ k++++ Ha++l
sp|B0FZN9|SCML1_PONPY 50 NTEEQLKTVNDVLIHCQVIYDAMQNLDKKID-VIRRKVSKIQRFHARSLW 98
@@ -19202,34 +19796,34 @@ Domain annotation for each sequence (and alignments):
>> sp|Q9UN30|SCML1_HUMAN Sex comb on midleg-like protein 1 OS=Homo sapiens GN=SCML1 PE=1 SV=2
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 11.8 0.1 0.013 5.8 51 100 .. 50 98 .. 44 117 .. 0.92
+ 1 ? 11.8 0.1 0.013 6.3 51 100 .. 50 98 .. 44 117 .. 0.92
Alignments for each domain:
- == domain 1 score: 11.8 bits; conditional E-value: 0.013
+ == domain 1 score: 11.8 bits; conditional E-value: 0.013
globins4 51 stedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklk 100
+te++lk +dv H + + dAl++ +k+d ++ k++++ Ha++l
sp|Q9UN30|SCML1_HUMAN 50 NTEEQLKTVDDVLIHCQVIYDALQNLDKKID-VIRRKVSKIQRFHARSLW 98
79****************************9.99************9985 PP
->> sp|B8FUJ0|SYGB_DESHD Glycyl-tRNA synthetase beta subunit OS=Desulfitobacterium hafniense (strain DCB-2 / DSM 10664)
+>> sp|B8FUJ0|SYGB_DESHD Glycine--tRNA ligase beta subunit OS=Desulfitobacterium hafniense (strain DCB-2 / DSM 10664) GN
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 9.1 0.0 0.088 41 86 134 .. 24 76 .. 13 81 .. 0.85
+ 1 ? 9.1 0.0 0.091 44 86 134 .. 24 76 .. 13 81 .. 0.85
Alignments for each domain:
- == domain 1 score: 9.1 bits; conditional E-value: 0.088
+ == domain 1 score: 9.1 bits; conditional E-value: 0.091
globins4 86 aklkdLselHakklkvdpkyfklls.....evlvdvlaarlpkeftadvqaale 134
++l++ +++++++l++d + +k+ + +vl++ la++ ++fta+v++
sp|B8FUJ0|SYGB_DESHD 24 NQLREQAQKYCQELRLDYQDLKVYTtprrfAVLIQGLAEK-QTDFTAEVKGPAV 76
789999*****************984555569******99.99****9998655 PP
->> sp|Q498L9|KI15B_XENLA Kinesin-like protein KIF15-B OS=Xenopus laevis GN=kif15-B PE=1 SV=1
+>> sp|Q498L9|KI15B_XENLA Kinesin-like protein KIF15-B OS=Xenopus laevis GN=kif15-b PE=1 SV=1
# score bias c-Evalue i-Evalue hmmfrom hmm to alifrom ali to envfrom env to acc
--- ------ ----- --------- --------- ------- ------- ------- ------- ------- ------- ----
- 1 ? 10.1 0.5 0.043 20 38 100 .. 600 661 .. 587 674 .. 0.86
+ 1 ? 10.1 0.8 0.044 22 38 100 .. 600 661 .. 587 674 .. 0.86
Alignments for each domain:
- == domain 1 score: 10.1 bits; conditional E-value: 0.043
+ == domain 1 score: 10.1 bits; conditional E-value: 0.044
globins4 38 PatqefFekFkdLstedelkksadvkkHgkkvldAlsdalakldekleaklkdLselHakklk 100
++++ +e+Fk+L+ + ++++ +++ k + l+++l ++e+ + ++++L Ha+ k
sp|Q498L9|KI15B_XENLA 600 ATSKQEYEEFKELTKKKQVEQESELQSLMK-SNQHLENILDAIKENKRHEVSQLNRMHAETIK 661
@@ -19239,14 +19833,15 @@ Domain annotation for each sequence (and alignments):
Internal pipeline statistics summary:
-------------------------------------
-Query model(s): 1 (149 nodes)
-Target sequences: 497293 (175274722 residues)
-Passed MSV filter: 19416 (0.0390434); expected 9945.9 (0.02)
-Passed bias filter: 15923 (0.0320194); expected 9945.9 (0.02)
-Passed Vit filter: 2207 (0.00443803); expected 497.3 (0.001)
-Passed Fwd filter: 1076 (0.00216371); expected 5.0 (1e-05)
-Initial search space (Z): 497293 [actual number of targets]
-Domain search space (domZ): 1075 [number of targets reported over threshold]
-# CPU time: 5.95u 0.06s 00:00:06.01 Elapsed: 00:00:02.45
-# Mc/sec: 10659.56
+Query model(s): 1 (149 nodes)
+Target sequences: 539165 (191456931 residues searched)
+Passed MSV filter: 20801 (0.03858); expected 10783.3 (0.02)
+Passed bias filter: 17061 (0.0316434); expected 10783.3 (0.02)
+Passed Vit filter: 2321 (0.0043048); expected 539.2 (0.001)
+Passed Fwd filter: 1109 (0.00205688); expected 5.4 (1e-05)
+Initial search space (Z): 539165 [actual number of targets]
+Domain search space (domZ): 1108 [number of targets reported over threshold]
+# CPU time: 6.50u 0.11s 00:00:06.61 Elapsed: 00:00:02.59
+# Mc/sec: 11014.32
//
+[ok]
diff --git a/hmmer/tutorial/minifam.h3f b/hmmer/tutorial/minifam.h3f
index 918f71a..5a501cd 100644
Binary files a/hmmer/tutorial/minifam.h3f and b/hmmer/tutorial/minifam.h3f differ
diff --git a/hmmer/tutorial/minifam.h3m b/hmmer/tutorial/minifam.h3m
index ceb0f24..73408bf 100644
Binary files a/hmmer/tutorial/minifam.h3m and b/hmmer/tutorial/minifam.h3m differ
diff --git a/hmmer/tutorial/minifam.h3p b/hmmer/tutorial/minifam.h3p
index 888a443..3e3255c 100644
Binary files a/hmmer/tutorial/minifam.h3p and b/hmmer/tutorial/minifam.h3p differ
diff --git a/rmark/Makefile.in b/rmark/Makefile.in
index f58ad9b..471ab32 100644
--- a/rmark/Makefile.in
+++ b/rmark/Makefile.in
@@ -60,8 +60,8 @@ clean:
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/rmark/rmark-create.c b/rmark/rmark-create.c
index e96c54c..793b59a 100644
--- a/rmark/rmark-create.c
+++ b/rmark/rmark-create.c
@@ -32,7 +32,6 @@
* pass a filter strategy, for example.
*
* EPN, Tue Jul 6 09:48:24 2010
- * SVN $Id: create-profmark.c 3267 2010-05-14 17:27:36Z eddys $
*/
#include <stdlib.h>
@@ -41,6 +40,7 @@
#include "easel.h"
#include "esl_alphabet.h"
+#include "esl_composition.h"
#include "esl_distance.h"
#include "esl_fileparser.h"
#include "esl_getopts.h"
@@ -48,6 +48,7 @@
#include "esl_msa.h"
#include "esl_msafile.h"
#include "esl_msacluster.h"
+#include "esl_msaweight.h"
#include "esl_random.h"
#include "esl_randomseq.h"
#include "esl_sq.h"
@@ -183,14 +184,15 @@ main(int argc, char **argv)
char outfile[256]; /* name of an output file */
int alifmt; /* format code for alifile */
int dbfmt; /* format code for dbfile */
- ESLX_MSAFILE *afp = NULL; /* open alignment file */
+ ESL_MSAFILE *afp = NULL; /* open alignment file */
ESL_MSA *origmsa = NULL; /* one multiple sequence alignment */
ESL_MSA *msa = NULL; /* MSA after frags are removed */
ESL_MSA *trainmsa= NULL; /* training set, aligned */
+ char *tmpstr = NULL; /* #=RF annotation line */
+ ESL_SQ *train_consensus = NULL;
ESL_MSA *tmpmsa= NULL; /* tmp aligned training/testing set, used if --tfile */
int *i_am_train = NULL; /* [0..msa->nseq-1]: 1 if train seq, 0 if not */
int *i_am_test = NULL; /* [0..msa->nseq-1]: 1 if test seq, 0 if not */
- int status; /* easel return code */
int nfrags; /* # of fragments removed */
int ntestseq; /* # of test sequences for cur fam */
int ntrainseq; /* # of train sequences for cur fam */
@@ -200,8 +202,10 @@ main(int argc, char **argv)
ESL_SQ **posseqs=NULL; /* all the test seqs, to be embedded */
int64_t poslen_total; /* total length of all positive seqs */
double avgid;
+ double pctid;
void *ptr;
int i, traini, testi;
+ int status; /* easel return code */
/* Parse command line */
go = esl_getopts_Create(options);
@@ -273,8 +277,8 @@ main(int argc, char **argv)
if (esl_opt_GetBoolean(go, "--amino")) cfg.abc = esl_alphabet_Create(eslAMINO);
else if (esl_opt_GetBoolean(go, "--dna")) cfg.abc = esl_alphabet_Create(eslDNA);
else if (esl_opt_GetBoolean(go, "--rna")) cfg.abc = esl_alphabet_Create(eslRNA);
- if((status = eslx_msafile_Open(&(cfg.abc), alifile, NULL, alifmt, NULL, &afp)) != eslOK) {
- eslx_msafile_OpenFailure(afp, status);
+ if((status = esl_msafile_Open(&(cfg.abc), alifile, NULL, alifmt, NULL, &afp)) != eslOK) {
+ esl_msafile_OpenFailure(afp, status);
}
if (cfg.abc->type == eslAMINO) esl_composition_SW34(cfg.fq);
@@ -288,8 +292,8 @@ main(int argc, char **argv)
nali = 0;
npos = 0;
poslen_total = 0;
- while ((status = eslx_msafile_Read(afp, &origmsa)) == eslOK)
- {
+ while ((status = esl_msafile_Read(afp, &origmsa)) == eslOK)
+ {
npos_this_msa = 0;
if(origmsa->name == NULL) esl_fatal("All msa's must have a valid name (#=GC ID), alignment %d does not.", nali);
esl_msa_ConvertDegen2X(origmsa);
@@ -338,72 +342,95 @@ main(int argc, char **argv)
esl_fatal("find_sets() returned insufficient train/test sets!");
}
- if ((ntestseq >= cfg.min_ntest) && (ntrainseq >= cfg.min_ntrain)) {
- /* We have a valid train/test set, that either satisfied
- * test 1 in separate_sets() or satisfied test 2 from
- * find_sets(). Extract and write out the training alignment. */
- if ((status = esl_msa_SequenceSubset(msa, i_am_train, &trainmsa)) != eslOK) goto ERROR;
- esl_msa_MinimGaps(trainmsa, NULL, NULL, FALSE);
- eslx_msafile_Write(cfg.out_msafp, trainmsa, eslMSAFILE_STOCKHOLM);
-
- esl_dst_XAverageId(cfg.abc, trainmsa->ax, trainmsa->nseq, 10000, &avgid); /* 10000 is max_comparisons, before sampling kicks in */
- fprintf(cfg.tblfp, "%-20s %3.0f%% %6d %6d %6d %6d %6d\n", msa->name, 100.*avgid, (int) trainmsa->alen, msa->nseq, nfrags, trainmsa->nseq, ntestseq);
- nali++;
-
- /* Save the positive test sequences, we'll embed these
- * in the long test sequences later */
- if(npos > 0) { ESL_RALLOC(posseqs, ptr, sizeof(ESL_SQ *) * (npos + ntestseq)); }
- else { ESL_ALLOC (posseqs, sizeof(ESL_SQ *) * ntestseq); }
- for(i = 0; i < msa->nseq; i++) {
- if(i_am_test[i]) {
- esl_sq_FetchFromMSA(msa, i, &(posseqs[npos]));
- poslen_total += posseqs[npos]->n;
- /* Sequence description is set as a concatenation of the
- * family name and the sequence index in this family,
- * separated by a '/', which never appears in an Rfam
- * name. For example: "tRNA/3" for the third tRNA.
- */
- esl_sq_FormatDesc(posseqs[npos], "%s/%d", msa->name, npos_this_msa+1);
- /* Write the sequence to the positives-only output file, and its info the positives-only table */
- esl_sqio_Write(cfg.out_posfp, posseqs[npos], eslSQFILE_FASTA, FALSE);
- fprintf(cfg.ppossummfp, "%-35s %-35s %-35s %8d %8" PRId64 "\n",
- posseqs[npos]->desc, /* description, this has been set earlier as the msa name plus seq idx (e.g. "tRNA/3" for 3rd tRNA in the set) */
- posseqs[npos]->name, /* positive sequence name (from input MSA) */
- posseqs[npos]->name, /* again, positive sequence name (from input MSA) */
- 1, posseqs[npos]->n); /* start, stop */
- npos++;
- npos_this_msa++;
- }
- }
- if(cfg.tfp != NULL) {
- /* output 2 more alignments per family:
- * 1. training alignment with seqs renamed as "TRAIN.<fam>.<i>"
- * 2. test alignment with seqs renamed as "<fam>/<i>"
- */
- /* Rename seqs */
- for(i = 0, traini = 0, testi = 0; i < msa->nseq; i++) {
- if(i_am_train[i]) {
- esl_msa_FormatSeqDescription(msa, i, msa->sqname[i]);
- esl_msa_FormatSeqName(msa, i, "TRAIN.%s.%d", msa->name, traini+1);
- traini++;
- }
- if(i_am_test[i]) {
- esl_msa_FormatSeqDescription(msa, i, msa->sqname[i]);
- esl_msa_FormatSeqName(msa, i, "%s/%d", msa->name, testi+1);
- testi++;
- }
- }
- /* Output train subset, note we don't use trainmsa, b/c it's has all gap columns removed */
- if ((status = esl_msa_SequenceSubset(msa, i_am_train, &tmpmsa)) != eslOK) goto ERROR;
- esl_msa_FormatName(tmpmsa, "TRAIN.%s", msa->name);
- eslx_msafile_Write(cfg.tfp, tmpmsa, eslMSAFILE_PFAM);
-
- /* Output test subset */
- if ((status = esl_msa_SequenceSubset(msa, i_am_test, &tmpmsa)) != eslOK) goto ERROR;
- esl_msa_FormatName(tmpmsa, "TEST.%s", msa->name);
- eslx_msafile_Write(cfg.tfp, tmpmsa, eslMSAFILE_PFAM);
- esl_msa_Destroy(tmpmsa);
- }
+ if ((ntestseq >= cfg.min_ntest) && (ntrainseq >= cfg.min_ntrain)) {
+ /* We have a valid train/test set, that either satisfied
+ * test 1 in separate_sets() or satisfied test 2 from
+ * find_sets(). Extract and write out the training alignment. */
+ if ((status = esl_msa_SequenceSubset(msa, i_am_train, &trainmsa)) != eslOK) goto ERROR;
+ esl_msa_MinimGaps(trainmsa, NULL, NULL, FALSE);
+ esl_msafile_Write(cfg.out_msafp, trainmsa, eslMSAFILE_STOCKHOLM);
+
+ esl_dst_XAverageId(cfg.abc, trainmsa->ax, trainmsa->nseq, 10000, &avgid); /* 10000 is max_comparisons, before sampling kicks in */
+ fprintf(cfg.tblfp, "%-20s %3.0f%% %6d %6d %6d %6d %6d\n", msa->name, 100.*avgid, (int) trainmsa->alen, msa->nseq, nfrags, trainmsa->nseq, ntestseq);
+ nali++;
+
+ if(cfg.tfp != NULL) {
+ /* output 2 more alignments per family:
+ * 1. training alignment with seqs renamed as "TRAIN.<fam>.<i>"
+ * 2. test alignment with seqs renamed as "<fam>/<i>"
+ */
+ /* Rename seqs */
+ for(i = 0, traini = 0, testi = 0; i < msa->nseq; i++) {
+ if(i_am_train[i]) {
+ esl_msa_FormatSeqDescription(msa, i, msa->sqname[i]);
+ esl_msa_FormatSeqName(msa, i, "TRAIN.%s.%d", msa->name, traini+1);
+ traini++;
+ }
+ if(i_am_test[i]) {
+ esl_msa_FormatSeqDescription(msa, i, msa->sqname[i]);
+ esl_msa_FormatSeqName(msa, i, "%s/%d", msa->name, testi+1);
+ testi++;
+ }
+ }
+ /* Output train subset, note we don't use trainmsa, b/c it's has all gap columns removed */
+ if ((status = esl_msa_SequenceSubset(msa, i_am_train, &tmpmsa)) != eslOK) goto ERROR;
+ esl_msa_FormatName(tmpmsa, "TRAIN.%s", msa->name);
+ esl_msafile_Write(cfg.tfp, tmpmsa, eslMSAFILE_PFAM);
+
+
+ /* capture the consensus of the msa into train_consensus, for use in calculating pct_id later */
+ status = esl_msaweight_PB(tmpmsa);
+ ESL_REALLOC(tmpstr, msa->alen + 1 );
+ esl_msa_ReasonableRF(tmpmsa, 0.5, TRUE, tmpstr);
+ train_consensus = esl_sq_CreateFrom(msa->name, tmpstr, msa->name, msa->name, NULL);
+ esl_sq_Digitize(msa->abc, train_consensus);
+
+ /* Output test subset */
+ if ((status = esl_msa_SequenceSubset(msa, i_am_test, &tmpmsa)) != eslOK) goto ERROR;
+ esl_msa_FormatName(tmpmsa, "TEST.%s", msa->name);
+ esl_msafile_Write(cfg.tfp, tmpmsa, eslMSAFILE_PFAM);
+ esl_msa_Destroy(tmpmsa);
+ }
+
+
+ /* Save the positive test sequences, we'll embed these
+ * in the long test sequences later */
+ if(npos > 0) { ESL_RALLOC(posseqs, ptr, sizeof(ESL_SQ *) * (npos + ntestseq)); }
+ else { ESL_ALLOC (posseqs, sizeof(ESL_SQ *) * ntestseq); }
+ for(i = 0; i < msa->nseq; i++) {
+ if(i_am_test[i]) {
+ esl_sq_FetchFromMSA(msa, i, &(posseqs[npos]));
+ poslen_total += posseqs[npos]->n;
+ /* Sequence description is set as a concatenation of the
+ * family name and the sequence index in this family,
+ * separated by a '/', which never appears in an Rfam
+ * name. For example: "tRNA/3" for the third tRNA.
+ */
+ esl_sq_FormatDesc(posseqs[npos], "%s/%d", msa->name, npos_this_msa+1);
+ /* Write the sequence to the positives-only output file, and its info the positives-only table */
+ esl_sqio_Write(cfg.out_posfp, posseqs[npos], eslSQFILE_FASTA, FALSE);
+
+ if(cfg.tfp != NULL) {
+
+ esl_dst_XPairId(msa->abc, train_consensus->dsq, msa->ax[i], &pctid, NULL, NULL);
+
+ fprintf(cfg.ppossummfp, "%-35s %-35s %-35s %8d %8" PRId64 " %.0f\n",
+ posseqs[npos]->desc, /* description, this has been set earlier as the msa name plus seq idx (e.g. "tRNA/3" for 3rd tRNA in the set) */
+ posseqs[npos]->name, /* positive sequence name (from input MSA) */
+ posseqs[npos]->name, /* again, positive sequence name (from input MSA) */
+ 1, posseqs[npos]->n, /* start, stop */
+ 100*pctid);
+ } else {
+ fprintf(cfg.ppossummfp, "%-35s %-35s %-35s %8d %8" PRId64 "\n",
+ posseqs[npos]->desc, /* description, this has been set earlier as the msa name plus seq idx (e.g. "tRNA/3" for 3rd tRNA in the set) */
+ posseqs[npos]->name, /* positive sequence name (from input MSA) */
+ posseqs[npos]->name, /* again, positive sequence name (from input MSA) */
+ 1, posseqs[npos]->n); /* start, stop */
+ }
+ npos++;
+ npos_this_msa++;
+ }
+ }
}
if(i_am_train != NULL) free(i_am_train);
if(i_am_test != NULL) free(i_am_test);
@@ -411,8 +438,9 @@ main(int argc, char **argv)
trainmsa = NULL;
esl_msa_Destroy(origmsa);
esl_msa_Destroy(msa);
- }
- if (status != eslEOF) eslx_msafile_ReadFailure(afp, status);
+ }
+
+ if (status != eslEOF) esl_msafile_ReadFailure(afp, status);
else if (nali == 0) esl_fatal("No alignments found in file %s\n", alifile);
/* Make sure we summed length of the positives isn't above the max allowed */
@@ -436,7 +464,7 @@ main(int argc, char **argv)
fclose(cfg.tblfp);
esl_randomness_Destroy(cfg.r);
esl_alphabet_Destroy(cfg.abc);
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_getopts_Destroy(go);
return 0;
@@ -502,7 +530,6 @@ remove_fragments(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_filteredmsa, int
int *useme = NULL;
double len = 0.0;
int i;
- int nfrags;
int status;
/* min length is cfg->fragfrac * average length */
@@ -511,7 +538,7 @@ remove_fragments(struct cfg_s *cfg, ESL_MSA *msa, ESL_MSA **ret_filteredmsa, int
len *= cfg->fragfrac / (double) msa->nseq;
ESL_ALLOC(useme, sizeof(int) * msa->nseq);
- for (nfrags = 0, i = 0; i < msa->nseq; i++)
+ for (i = 0; i < msa->nseq; i++)
useme[i] = (esl_abc_dsqrlen(msa->abc, msa->ax[i]) < len) ? 0 : 1;
if ((status = esl_msa_SequenceSubset(msa, useme, ret_filteredmsa)) != eslOK) goto ERROR;
@@ -552,7 +579,6 @@ separate_sets(struct cfg_s *cfg, ESL_MSA *msa, int **ret_i_am_train, int **ret_i
int nc = 0;
int c;
int ctrain; /* index of the cluster that becomes the training alignment */
- int ntrain; /* number of seqs in the training alignment */
int nskip;
int i, i2;
int status;
@@ -563,7 +589,6 @@ separate_sets(struct cfg_s *cfg, ESL_MSA *msa, int **ret_i_am_train, int **ret_i
if ((status = esl_msacluster_SingleLinkage(msa, cfg->idthresh1, &assignment, &nin, &nc)) != eslOK) goto ERROR;
ctrain = esl_vec_IArgMax(nin, nc);
- ntrain = esl_vec_IMax(nin, nc);
for (i = 0; i < msa->nseq; i++) i_am_train[i] = (assignment[i] == ctrain) ? 1 : 0;
if ((status = esl_msa_SequenceSubset(msa, i_am_train, &trainmsa)) != eslOK) goto ERROR;
@@ -1400,3 +1425,4 @@ read_hmmfile(char *filename, ESL_HMM **ret_hmm)
esl_fileparser_Destroy(efp);
return;
}
+
diff --git a/src/Makefile.in b/src/Makefile.in
index cb472c9..728f33e 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -266,8 +266,8 @@ endif
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/Rfam.12.1.claninfo b/src/Rfam.12.1.claninfo
new file mode 100644
index 0000000..fbdf377
--- /dev/null
+++ b/src/Rfam.12.1.claninfo
@@ -0,0 +1,104 @@
+CL00001 tRNA cyano_tmRNA tRNA-Sec mt-tmRNA
+CL00003 Metazoa_SRP Bacteria_small_SRP Fungi_SRP Dictyostelium_SRP Bacteria_large_SRP Plant_SRP Protozoa_SRP Archaea_SRP
+CL00004 Telomerase-cil
+CL00008 U54 snoU54
+CL00010 Hammerhead_3 Hammerhead_1 Hammerhead_HH9 Hammerhead_II Hammerhead_HH10
+CL00011 GlmZ_SraJ GlmY_tke1
+CL00012 SAM SAM-IV
+CL00013 7SK Arthropod_7SK
+CL00014 CRISPR-DR2 CRISPR-DR4 CRISPR-DR14 CRISPR-DR17 CRISPR-DR25 CRISPR-DR43 CRISPR-DR66
+CL00015 CRISPR-DR5 CRISPR-DR7 CRISPR-DR63 CRISPR-DR64
+CL00016 FinP traJ_5
+CL00017 IRES_HCV IRES_Pesti
+CL00018 SCARNA24 SCARNA3
+CL00019 SCARNA4 SCARNA15
+CL00021 SNORA16 SNORA2 snopsi28S-3327 snR189 snR46 S_pombe_snR46
+CL00022 SNORA3 snR11
+CL00023 SNORA4 snR83
+CL00024 SNORA5 snR85
+CL00025 SNORA7 snR81
+CL00026 SNORA8 snR31
+CL00027 SNORA9 snR33 snR43 S_pombe_snR33
+CL00028 SNORA13 snR35 S_pombe_snR35
+CL00029 SNORA43 SNORA17
+CL00030 SNORA20 SNORA29
+CL00031 SNORA21 snR10 S_pombe_snR10
+CL00032 SNORA27 SNORA26 snR42 S_pombe_snR42
+CL00033 SNORA28 snopsi18S-841 snR80
+CL00034 SNORA50 SNORA54 SNORA35 SNORA76
+CL00035 SNORA36 snR36 snR44 S_pombe_snR36
+CL00036 SNORA44 SNORA58 snR161 snR9
+CL00037 SNORA48 snR86
+CL00038 SNORA66 snoR98 SNORA52 SNORA18 snoR80 snR49 snR5 S_pombe_snR5
+CL00039 SNORA56 snR8
+CL00040 SNORA62 snR3 snR82 S_pombe_snR3
+CL00041 SNORA64 snR37
+CL00042 SNORA65 snR34 snoR2
+CL00043 SNORA74 snR191
+CL00044 SNORD12 snR190
+CL00045 SNORD15 snR75 snR13 snoZ5
+CL00046 SNORD16 snR87
+CL00047 SNORD18 snoU18
+CL00048 SNORD19 SNORD19B
+CL00049 SNORD25 snR56
+CL00050 SNORD26 SNORD81
+CL00051 SNORD36 SNORD29 snoZ223 SNORD38 snosnR69 snosnR61 snosnR71 SNORD78 snoR69Y snR47 snoU36a
+CL00052 SNORD30 snoU30
+CL00053 SNORD31 snoZ17 snR67 snoR35
+CL00054 SNORD33 snoZ196 SNORD51 snosnR55 snoMe18S-Um1356 snoMe28S-Am982 snR39 snR40
+CL00055 SNORD34 snR62
+CL00056 SNORD35 snoZ161_228 snR73
+CL00057 SNORD39 snoZ7 snoZ101 SNORD65 snoR77Y snR77
+CL00058 SNORD57 SNORD41 snR51
+CL00059 SNORD43 snR70
+CL00060 SNORD44 snoZ102_R77
+CL00061 SNORD46 snR63
+CL00062 SNORD49 snoZ112 snoU49
+CL00063 SNORD52 SNORD53_SNORD92 snoZ157 snR78
+CL00064 SNORD58 SNORD99
+CL00065 snoZ159 SNORD59 snosnR54
+CL00066 SNORD60 snoR1 snosnR48 snoMe28S-G3255 sn2903
+CL00067 SNORD61 snoU61 SNORD125
+CL00068 SNORD62 snoR41 snR41
+CL00069 SNORD79 SNORD113 SNORD74 snoR44_J54 snosnR64 snoMe28S-Cm2645 SNORD64 SNORD112 SNORD109A
+CL00070 snosnR60_Z15 SNORD77 Afu_263
+CL00071 SNORD88 snR76 snoR118
+CL00072 SNORD96 SNORD2
+CL00073 snoR30 SNORD100
+CL00074 SNORD101 snoR60
+CL00075 SNORD105 snoU105B
+CL00076 SNORD110 snoR14
+CL00077 SNORND104 snR58
+CL00078 SNORA73 snR30
+CL00079 snR68 snoR27
+CL00080 snoR53 snoR53Y
+CL00081 snoZ279_R105_R108 snoU13
+CL00082 snoU89 snoU85
+CL00083 mir-6 mir-11
+CL00084 mir-3 mir-318
+CL00085 mir-16 mir-15
+CL00086 mir-28 mir-708
+CL00087 mir-34 mir-449
+CL00088 mir-36 mir-42 mir-35
+CL00089 mir-190 mir-50
+CL00090 mir-74 mir-73
+CL00091 bantam mir-81
+CL00092 mir-137 mir-234
+CL00093 mir-183 mir-182 mir-263 mir-228
+CL00094 mir-216 mir-283
+CL00095 mir-279 mir-996
+CL00096 mir-515 mir-290 mir-302 miR-430
+CL00097 mir-BART1 mir-BART3
+CL00098 MIR169_2 MIR169_5
+CL00099 MIR171_1 MIR171_2
+CL00100 U3 Fungi_U3 Plant_U3 ACEA_U3
+CL00101 Cobalamin
+CL00102 group-II-D1D4-1 group-II-D1D4-2 group-II-D1D4-3 group-II-D1D4-4 group-II-D1D4-5 group-II-D1D4-6 group-II-D1D4-7
+CL00103 SNORD11 SNORD11B
+CL00104 HBV_epsilon AHBV_epsilon
+CL00105 SraC_RyeA RyeB
+CL00106 CsrB CsrC PrrB_RsmZ RsmY TwoAYGGAY rsmX
+CL00108 suhB
+CL00110 mir-19 mir-363
+CL00111 SSU_rRNA_bacteria SSU_rRNA_archaea SSU_rRNA_eukarya SSU_rRNA_microsporidia
+CL00112 LSU_rRNA_archaea LSU_rRNA_bacteria LSU_rRNA_eukarya
diff --git a/src/alphabet.c b/src/alphabet.c
index b28f7a8..4c40cba 100644
--- a/src/alphabet.c
+++ b/src/alphabet.c
@@ -1,6 +1,6 @@
/* alphabet.c
* SRE, Tue Aug 1 10:31:11 2000 [St. Louis]
- * SVN $Id: alphabet.c 3955 2012-03-20 10:17:48Z nawrockie $
+ * SVN $Id$
*
* Stuff having to do with manipulating symbols in the (RNA) alphabet.
*
diff --git a/src/bandcyk-montecarlo-test.c b/src/bandcyk-montecarlo-test.c
index ac5136e..91cee69 100644
--- a/src/bandcyk-montecarlo-test.c
+++ b/src/bandcyk-montecarlo-test.c
@@ -12,14 +12,14 @@
* If any chi-square is less than a threshold (0.01), fail.
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*****************************************************************
- * SVN $Id: bandcyk-montecarlo-test.c 3955 2012-03-20 10:17:48Z nawrockie $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/src/bandcyk-truncation-test.c b/src/bandcyk-truncation-test.c
index d30eec1..caca248 100644
--- a/src/bandcyk-truncation-test.c
+++ b/src/bandcyk-truncation-test.c
@@ -26,14 +26,14 @@
* xref STL7 p.130.
******************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*****************************************************************
- * SVN $Id: bandcyk-truncation-test.c 3955 2012-03-20 10:17:48Z nawrockie $
+ * SVN $Id$
*/
#include "esl_config.h"
@@ -59,7 +59,6 @@ static ESL_OPTIONS options[] = {
{ "--betaW", eslARG_REAL, "1E-5", NULL, "x>0.",NULL, NULL, NULL, "set tail probability thresh for W calculation to <x>", 0 },
{ "--beta1", eslARG_REAL, "1E-5", NULL, "x>0.",NULL, NULL, NULL, "set tail probability thresh for dmin1/dmax1 to <x>", 0 },
{ "--beta2", eslARG_REAL, "1E-6", NULL, "x>0.",NULL, NULL, NULL, "set tail probability thresh for dmin2/dmax2 to <x>", 0 },
- { "--verbose", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "show output (default: silently return 0 on success)", 0 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
static char usage[] = "[-options] <cmfile> <Z1> <Z2> where width Z1 < Z2.";
@@ -86,7 +85,6 @@ main(int argc, char **argv)
double gbeta1; /* geometric decay constant, truncation error calc */
double gbeta2; /* geometric decay constant, truncation error calc */
double g; /* log of an estimated gamma[n] */
- int be_verbose;
ESL_ALPHABET *abc = NULL;
char errbuf[eslERRBUFSIZE]; /* for error messages */
CM_QDBINFO *qdbinfo1 = NULL; /* holds dmin1/dmax1 and dmin2/dmax2 for first choice of Z */
@@ -101,7 +99,6 @@ main(int argc, char **argv)
betaW = esl_opt_GetReal (go, "--betaW");
beta1 = esl_opt_GetReal (go, "--beta1");
beta2 = esl_opt_GetReal (go, "--beta2");
- be_verbose = esl_opt_GetBoolean(go, "--verbose");
if (Z1 >= Z2) cm_Fail("Please set a width Z1 < width Z2, else the check won't work right.");
diff --git a/src/cm.c b/src/cm.c
index 610aa13..a8c4549 100644
--- a/src/cm.c
+++ b/src/cm.c
@@ -1,13 +1,13 @@
/* cm.c
* SRE, Sat Jul 29 09:01:20 2000 [St. Louis]
- * SVN $Id: cm.c 4274 2012-10-31 00:02:48Z nawrockie $
+ * SVN $Id$
*
* Routines for dealing with the CM data structure.
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -3500,33 +3500,40 @@ cm_p7_oprofile_CreateBlock(int count)
ESL_ALLOC(block, sizeof(*block));
block->count = 0;
+ block->idx0 = 0;
block->listSize = 0;
block->list = NULL;
+ block->msvdataA = NULL;
block->cm_offsetA = NULL;
block->cm_clenA = NULL;
block->cm_WA = NULL;
block->cm_nbpA = NULL;
block->gfmuA = NULL;
block->gflambdaA = NULL;
+ block->clan_idxA = NULL;
ESL_ALLOC(block->list, sizeof(P7_OPROFILE *) * count);
+ ESL_ALLOC(block->msvdataA, sizeof(P7_SCOREDATA *)* count);
ESL_ALLOC(block->cm_offsetA, sizeof(off_t) * count);
ESL_ALLOC(block->cm_clenA, sizeof(int) * count);
ESL_ALLOC(block->cm_WA, sizeof(int) * count);
ESL_ALLOC(block->cm_nbpA, sizeof(int) * count);
ESL_ALLOC(block->gfmuA, sizeof(float) * count);
ESL_ALLOC(block->gflambdaA, sizeof(float) * count);
+ ESL_ALLOC(block->clan_idxA, sizeof(int) * count);
block->listSize = count;
for (i = 0; i < count; ++i)
{
- block->list[i] = NULL;
+ block->list[i] = NULL;
+ block->msvdataA[i] = NULL;
block->cm_offsetA[i] = 0;
block->cm_clenA[i] = 0;
block->cm_WA[i] = 0;
block->cm_nbpA[i] = 0;
block->gfmuA[i] = 0.;
block->gflambdaA[i] = 0.;
+ block->clan_idxA[i] = -1;
}
return block;
@@ -3535,12 +3542,14 @@ cm_p7_oprofile_CreateBlock(int count)
if (block != NULL)
{
if (block->list != NULL) free(block->list);
+ if (block->msvdataA != NULL) free(block->msvdataA);
if (block->cm_offsetA != NULL) free(block->cm_offsetA);
if (block->cm_clenA != NULL) free(block->cm_clenA);
if (block->cm_WA != NULL) free(block->cm_WA);
if (block->cm_nbpA != NULL) free(block->cm_clenA);
if (block->gfmuA != NULL) free(block->gfmuA);
if (block->gflambdaA != NULL) free(block->gflambdaA);
+ if (block->clan_idxA != NULL) free(block->clan_idxA);
free(block);
}
@@ -3560,20 +3569,25 @@ cm_p7_oprofile_DestroyBlock(CM_P7_OM_BLOCK *block)
if (block == NULL) return;
- if (block->list != NULL)
- {
- for (i = 0; i < block->listSize; ++i)
- {
- if (block->list[i] != NULL) p7_oprofile_Destroy(block->list[i]);
- }
- free(block->list);
+ if (block->list != NULL) {
+ for (i = 0; i < block->listSize; ++i) {
+ if (block->list[i] != NULL) p7_oprofile_Destroy(block->list[i]);
}
+ free(block->list);
+ }
+ if (block->msvdataA != NULL) {
+ for (i = 0; i < block->listSize; ++i) {
+ if (block->msvdataA[i] != NULL) p7_hmm_ScoreDataDestroy(block->msvdataA[i]);
+ }
+ free(block->msvdataA);
+ }
if (block->cm_offsetA != NULL) free(block->cm_offsetA);
if (block->cm_clenA != NULL) free(block->cm_clenA);
if (block->cm_WA != NULL) free(block->cm_WA);
if (block->cm_nbpA != NULL) free(block->cm_nbpA);
if (block->gfmuA != NULL) free(block->gfmuA);
if (block->gflambdaA != NULL) free(block->gflambdaA);
+ if (block->clan_idxA != NULL) free(block->clan_idxA);
free(block);
return;
diff --git a/src/cm_alidisplay.c b/src/cm_alidisplay.c
index 110a7e8..513c6ff 100644
--- a/src/cm_alidisplay.c
+++ b/src/cm_alidisplay.c
@@ -76,7 +76,6 @@ cm_alidisplay_Create(CM_t *cm, char *errbuf, CM_ALNDATA *adata, const ESL_SQ *sq
int pos; /* position in growing ali */
int lc, rc; /* indices for left, right pos in consensus */
int symi, symj;
- int d;
char mode;
int lrf, rrf; /* chars in annotation line; left, right */
int lstr, rstr; /* chars in structure line; left, right */
@@ -416,7 +415,6 @@ cm_alidisplay_Create(CM_t *cm, char *errbuf, CM_ALNDATA *adata, const ESL_SQ *sq
lpost = '.'; /* init to gap, if it corresponds to a residue, we'll reset it below */
rpost = '.'; /* init to gap, if it corresponds to a residue, we'll reset it below */
}
- d = tr->emitr[ti] - tr->emitl[ti] + 1;
mode = tr->mode[ti];
/* Calculate four of the six lines: rfline, csline, model, and aseq.
@@ -1595,8 +1593,8 @@ cm_alidisplay_Compare(const CM_ALIDISPLAY *ad1, const CM_ALIDISPLAY *ad2)
*****************************************************************/
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_alndata.c b/src/cm_alndata.c
index 709a800..e4fca5c 100644
--- a/src/cm_alndata.c
+++ b/src/cm_alndata.c
@@ -208,7 +208,7 @@ DispatchSqBlockAlignment(CM_t *cm, char *errbuf, ESL_SQ_BLOCK *sq_block, float m
char mode; /* mode passed to DispatchSqAlignment() */
int cp9b_valid; /* passed to DispatchSqAlignment() */
- ESL_ALLOC(dataA, sizeof(CM_ALNDATA *) * sq_block->count);
+ ESL_ALLOC(dataA, sizeof(CM_ALNDATA *) * ESL_MAX(1, sq_block->count)); // avoid 0 malloc
for(j = 0; j < sq_block->count; j++) dataA[j] = NULL;
/* DispatchSqAligment() needs a mode, pipeline pass index, and
diff --git a/src/cm_dispatch.h b/src/cm_dispatch.h
index 415c90c..a23ba65 100644
--- a/src/cm_dispatch.h
+++ b/src/cm_dispatch.h
@@ -1,7 +1,7 @@
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_dpalign.c b/src/cm_dpalign.c
index 2dcb512..5a81f67 100644
--- a/src/cm_dpalign.c
+++ b/src/cm_dpalign.c
@@ -55,8 +55,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -276,7 +276,7 @@ cm_alignT_hb(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, int
ESL_STACK *pda; /* stack that tracks bifurc parent of a right start */
int v,j,d,i; /* indices for state, j, subseq len */
int k; /* subseq len for bifurcs */
- int z; /* state index */
+ /*int z;*/ /* state index */
int y, yoffset; /* child state y, it's offset */
int bifparent; /* B_st parent */
int b; /* local begin state */
@@ -346,7 +346,7 @@ cm_alignT_hb(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, int
if (cm->sttype[v] == B_st) {
k = shmx->kshadow[v][jp_v][dp_v]; /* k = offset len of right fragment */
- z = cm->cnum[v];
+ /*z = cm->cnum[v];*/
/* Store info about the right fragment that we'll retrieve later:
*/
@@ -2207,7 +2207,6 @@ cm_OptAccAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, CM
int sdr; /* StateRightDelta(cm->sttype[v] */
int j_sdr; /* j - sdr */
int d_sd; /* d - sd */
- float tsc; /* a transition score */
int have_el; /* TRUE if CM has local ends on, otherwise FALSE */
/* the DP matrices */
@@ -2250,7 +2249,6 @@ cm_OptAccAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, CM
/* Main recursion */
for (v = cm->M-1; v >= 0; v--) {
- float const *tsc_v = cm->tsc[v]; /* transition scores for state v */
sd = StateDelta(cm->sttype[v]);
sdr = StateRightDelta(cm->sttype[v]);
@@ -2327,7 +2325,6 @@ cm_OptAccAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, CM
*/
for (y = cm->cfirst[v]; y < (cm->cfirst[v] + cm->cnum[v]); y++) {
yoffset = y - cm->cfirst[v];
- tsc = tsc_v[yoffset];
j_sdr = 0;
for (j = sdr; j <= L; j++, j_sdr++) {
d_sd = 0;
@@ -3007,7 +3004,6 @@ cm_CYKOutsideAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit
float **esc_vAA; /* ptr to cm->oesc, optimized emission scores */
float escore; /* an emission score, tmp variable */
int voffset; /* index of v in t_v(y) transition scores */
- int emitmode; /* EMITLEFT, EMITRIGHT, EMITPAIR, EMITNONE, for state y */
int sd; /* StateDelta(cm->sttype[y]) */
int sdr; /* StateRightDelta(cm->sttype[y] */
@@ -3117,7 +3113,6 @@ cm_CYKOutsideAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit
if ((cm->flags & CMH_LOCAL_END) && NOT_IMPOSSIBLE(cm->endsc[v])) {
sdr = StateRightDelta(cm->sttype[v]); /* note sdr is for state v */
sd = StateDelta(cm->sttype[v]); /* note sd is for state v */
- emitmode = Emitmode(cm->sttype[v]); /* note emitmode is for state v */
for (j = 0; j <= L; j++) {
for (d = 0; d <= j; d++) {
@@ -4029,7 +4024,6 @@ cm_OutsideAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, i
float **esc_vAA; /* ptr to cm->oesc, optimized emission scores */
float escore; /* an emission score, tmp variable */
int voffset; /* index of v in t_v(y) transition scores */
- int emitmode; /* EMITLEFT, EMITRIGHT, EMITPAIR, EMITNONE, for state y */
int sd; /* StateDelta(cm->sttype[y]) */
int sdr; /* StateRightDelta(cm->sttype[y] */
@@ -4134,7 +4128,6 @@ cm_OutsideAlign(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, float size_limit, i
if ((cm->flags & CMH_LOCAL_END) && NOT_IMPOSSIBLE(cm->endsc[v])) {
sdr = StateRightDelta(cm->sttype[v]); /* note sdr is for state v */
sd = StateDelta(cm->sttype[v]); /* note sd is for state v */
- emitmode = Emitmode(cm->sttype[v]); /* note emitmode is for state v */
for (j = 0; j <= L; j++) {
for (d = 0; d <= j; d++) {
@@ -5202,7 +5195,6 @@ cm_EmitterPosteriorHB(CM_t *cm, char *errbuf, int L, float size_limit, CM_HB_MX
int status;
int v, j, d; /* state, position, subseq length */
int i; /* sequence position */
- int sd; /* StateDelta(v) */
int ip_v; /* offset i in banded matrix */
int ip_v2; /* another offset i in banded matrix */
int jp_v; /* offset j in banded matrix */
@@ -5231,7 +5223,6 @@ cm_EmitterPosteriorHB(CM_t *cm, char *errbuf, int L, float size_limit, CM_HB_MX
* leftwise (l_pp) or rightwise (r_pp).
*/
for(v = 0; v < cm->M; v++) {
- sd = StateDelta(cm->sttype[v]);
if(cm->sttype[v] == MP_st || cm->sttype[v] == ML_st || cm->sttype[v] == IL_st) {
for(j = jmin[v]; j <= jmax[v]; j++) {
jp_v = j - jmin[v];
@@ -5456,7 +5447,7 @@ int
cm_PostCode(CM_t *cm, char *errbuf, int L, CM_EMIT_MX *emit_mx, Parsetree_t *tr, char **ret_ppstr, float *ret_avgp)
{
int status;
- int x, v, i, j, d, r; /* counters */
+ int x, v, i, j, r; /* counters */
char *ppstr; /* the PP string, created here */
float p; /* a probability */
float sum_logp; /* log of summed probability of all residues emitted thus far */
@@ -5470,7 +5461,6 @@ cm_PostCode(CM_t *cm, char *errbuf, int L, CM_EMIT_MX *emit_mx, Parsetree_t *tr,
v = tr->state[x];
i = tr->emitl[x];
j = tr->emitr[x];
- d = j-i+1;
/* Only P, L, R, and EL states have emissions. */
if(cm->sttype[v] == EL_st) { /* EL state, we have to handle this guy special */
@@ -5516,7 +5506,7 @@ int
cm_PostCodeHB(CM_t *cm, char *errbuf, int L, CM_HB_EMIT_MX *emit_mx, Parsetree_t *tr, char **ret_ppstr, float *ret_avgp)
{
int status;
- int x, v, i, j, d, r; /* counters */
+ int x, v, i, j, r; /* counters */
char *ppstr; /* the PP string, created here */
float p; /* a probability */
float sum_logp; /* log of summed probability of all residues emitted thus far */
@@ -5539,7 +5529,6 @@ cm_PostCodeHB(CM_t *cm, char *errbuf, int L, CM_HB_EMIT_MX *emit_mx, Parsetree_t
v = tr->state[x];
i = tr->emitl[x];
j = tr->emitr[x];
- d = j-i+1;
/* Only P, L, R, and EL states have emissions. */
if(cm->sttype[v] == EL_st) { /* EL state, we have to handle this guy special */
diff --git a/src/cm_dpalign_trunc.c b/src/cm_dpalign_trunc.c
index e3caedc..8ee4aad 100644
--- a/src/cm_dpalign_trunc.c
+++ b/src/cm_dpalign_trunc.c
@@ -107,8 +107,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -9223,7 +9223,6 @@ cm_TrEmitterPosteriorHB(CM_t *cm, char *errbuf, int L, float size_limit, char pr
int status;
int v, j, d; /* state, position, subseq length */
int i; /* sequence position */
- int sd; /* StateDelta(v) */
int fill_L, fill_R; /* do we need to fill Ll_pp/Rr_pp matrices? */
int jp_v; /* j-jmin[v] for current j, and current v */
int jp_v2; /* another offset j in banded matrix */
@@ -9259,7 +9258,6 @@ cm_TrEmitterPosteriorHB(CM_t *cm, char *errbuf, int L, float size_limit, char pr
* leftwise (*l_pp) or rightwise (*r_pp).
*/
for(v = 0; v < cm->M; v++) {
- sd = StateDelta(cm->sttype[v]);
if(cm->sttype[v] == MP_st || cm->sttype[v] == ML_st || cm->sttype[v] == IL_st) {
if(cm->cp9b->Jvalid[v]) {
for(j = jmin[v]; j <= jmax[v]; j++) {
@@ -9594,7 +9592,7 @@ int
cm_TrPostCode(CM_t *cm, char *errbuf, int L, CM_TR_EMIT_MX *emit_mx, Parsetree_t *tr, char **ret_ppstr, float *ret_avgp)
{
int status;
- int x, v, i, j, d, r; /* counters */
+ int x, v, i, j, r; /* counters */
char *ppstr; /* the PP string, created here */
float p; /* a probability */
float sum_logp; /* log of summed probability of all residues emitted thus far */
@@ -9612,7 +9610,6 @@ cm_TrPostCode(CM_t *cm, char *errbuf, int L, CM_TR_EMIT_MX *emit_mx, Parsetree_t
v = tr->state[x];
i = tr->emitl[x];
j = tr->emitr[x];
- d = j-i+1;
mode = tr->mode[x];
/* Only P, L, R, and EL states have emissions. */
@@ -9700,7 +9697,7 @@ int
cm_TrPostCodeHB(CM_t *cm, char *errbuf, int L, CM_TR_HB_EMIT_MX *emit_mx, Parsetree_t *tr, char **ret_ppstr, float *ret_avgp)
{
int status;
- int x, v, i, j, d, r; /* counters */
+ int x, v, i, j, r; /* counters */
char *ppstr; /* the PP string, created here */
float p; /* a probability */
float sum_logp; /* log of summed probability of all residues emitted thus far */
@@ -9727,7 +9724,6 @@ cm_TrPostCodeHB(CM_t *cm, char *errbuf, int L, CM_TR_HB_EMIT_MX *emit_mx, Parset
v = tr->state[x];
i = tr->emitl[x];
j = tr->emitr[x];
- d = j-i+1;
mode = tr->mode[x];
/* Only P, L, R, and EL states have emissions. */
diff --git a/src/cm_dpsearch.c b/src/cm_dpsearch.c
index f0c8ff2..7d53d09 100644
--- a/src/cm_dpsearch.c
+++ b/src/cm_dpsearch.c
@@ -35,8 +35,8 @@
* EPN, Wed Sep 12 16:53:32 2007
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -660,7 +660,7 @@ FastCYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq, i
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -751,7 +751,6 @@ RefCYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq, in
int dn_w, dx_w; /* minimum/maximum valid d for state w */
int *dmin; /* [0..v..cm->M-1] minimum d allowed for this state */
int *dmax; /* [0..v..cm->M-1] maximum d allowed for this state */
- int cnum; /* number of children for current state */
int *jp_wA; /* rolling pointer index for B states, gets precalc'ed */
float **init_scAA; /* [0..v..cm->M-1][0..d..W] initial score for each v, d for all j */
double **act; /* [0..j..W-1][0..a..abc->K-1], alphabet count, count of residue a in dsq from 1..jp where j = jp%(W+1) */
@@ -875,7 +874,6 @@ RefCYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq, in
jp_v = (cm->stid[v] == BEGL_S) ? (j % (W+1)) : cur;
jp_y = (StateRightDelta(cm->sttype[v]) > 0) ? prv : cur;
sd = StateDelta(cm->sttype[v]);
- cnum = cm->cnum[v];
dn = dnA[v];
dx = dxA[v];
/* if we emit right, precalc score of emitting res j from state v */
@@ -1050,7 +1048,7 @@ RefCYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq, in
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -1673,7 +1671,7 @@ FastIInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *ds
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -2300,7 +2298,7 @@ FastFInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *ds
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -2394,7 +2392,6 @@ RefIInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq
int dn_w, dx_w; /* minimum/maximum valid d for state w */
int *dmin; /* [0..v..cm->M-1] minimum d allowed for this state */
int *dmax; /* [0..v..cm->M-1] maximum d allowed for this state */
- int cnum; /* number of children for current state */
int *jp_wA; /* rolling pointer index for B states, gets precalc'ed */
int **init_scAA; /* [0..v..cm->M-1][0..d..W] initial score for each v, d for all j */
double **act; /* [0..j..W-1][0..a..abc->K-1], alphabet count, count of residue a in dsq from 1..jp where j = jp%(W+1) */
@@ -2518,7 +2515,6 @@ RefIInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq
jp_v = (cm->stid[v] == BEGL_S) ? (j % (W+1)) : cur;
jp_y = (StateRightDelta(cm->sttype[v]) > 0) ? prv : cur;
sd = StateDelta(cm->sttype[v]);
- cnum = cm->cnum[v];
dn = dnA[v];
dx = dxA[v];
/* if we emit right, precalc score of emitting res j from state v */
@@ -2682,7 +2678,7 @@ RefIInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -2774,7 +2770,6 @@ RefFInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq
int dn_w, dx_w; /* minimum/maximum valid d for state w */
int *dmin; /* [0..v..cm->M-1] minimum d allowed for this state */
int *dmax; /* [0..v..cm->M-1] maximum d allowed for this state */
- int cnum; /* number of children for current state */
int *jp_wA; /* rolling pointer index for B states, gets precalc'ed */
float **init_scAA; /* [0..v..cm->M-1][0..d..W] initial score for each v, d for all j */
double **act; /* [0..j..W-1][0..a..abc->K-1], alphabet count, count of residue a in dsq from 1..jp where j = jp%(W+1) */
@@ -2897,7 +2892,6 @@ RefFInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq
jp_v = (cm->stid[v] == BEGL_S) ? (j % (W+1)) : cur;
jp_y = (StateRightDelta(cm->sttype[v]) > 0) ? prv : cur;
sd = StateDelta(cm->sttype[v]);
- cnum = cm->cnum[v];
dn = dnA[v];
dx = dxA[v];
/* if we emit right, precalc score of emitting res j from state v */
@@ -3060,7 +3054,7 @@ RefFInsideScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, int qdbidx, ESL_DSQ *dsq
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -3735,7 +3729,7 @@ FastCYKScanHB(CM_t *cm, char *errbuf, CM_HB_MX *mx, float size_limit, ESL_DSQ *d
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -4250,7 +4244,7 @@ FastFInsideScanHB(CM_t *cm, char *errbuf, CM_HB_MX *mx, float size_limit, ESL_DS
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
/*cm_tophits_Dump(stdout, tmp_hitlist);*/
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
diff --git a/src/cm_dpsearch_trunc.c b/src/cm_dpsearch_trunc.c
index 017ec5a..b00c4dc 100644
--- a/src/cm_dpsearch_trunc.c
+++ b/src/cm_dpsearch_trunc.c
@@ -21,8 +21,8 @@
* EPN, Tue Aug 16 04:15:32 2011
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -117,7 +117,6 @@ RefTrCYKScan(CM_t *cm, char *errbuf, CM_TR_SCAN_MX *trsmx, int qdbidx, int pass_
int dx_w; /* maximum valid d for state w */
int kn, kx; /* minimum/maximum valid k for current d in B_st recursion */
int *dmax; /* [0..v..cm->M-1] maximum d allowed for this state */
- int cnum; /* number of children for current state */
int *jp_wA; /* rolling pointer index for B states, gets precalc'ed */
float **init_scAA; /* [0..v..cm->M-1][0..d..W] initial score for each v, d for all j */
double **act; /* [0..j..W-1][0..a..abc->K-1], alphabet count, count of residue a in dsq from 1..jp where j = jp%(W+1) */
@@ -266,7 +265,6 @@ RefTrCYKScan(CM_t *cm, char *errbuf, CM_TR_SCAN_MX *trsmx, int qdbidx, int pass_
jp_y = (StateRightDelta(cm->sttype[v]) > 0) ? prv : cur;
jq_y = (StateRightDelta(cm->sttype[v]) > 0) ? cur : prv;
sd = StateDelta(cm->sttype[v]);
- cnum = cm->cnum[v];
/* if we emit right, precalc score of emitting res j from state v */
float esc_j = IMPOSSIBLE;
float rmesc_j = IMPOSSIBLE;
@@ -667,7 +665,7 @@ RefTrCYKScan(CM_t *cm, char *errbuf, CM_TR_SCAN_MX *trsmx, int qdbidx, int pass_
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
/*cm_tophits_Dump(stdout, tmp_hitlist);*/
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -774,7 +772,6 @@ RefITrInsideScan(CM_t *cm, char *errbuf, CM_TR_SCAN_MX *trsmx, int qdbidx, int p
int dx_y; /* maximum valid d for state y */
int dx_w; /* maximum valid d for state w */
int *dmax; /* [0..v..cm->M-1] maximum d allowed for this state */
- int cnum; /* number of children for current state */
int *jp_wA; /* rolling pointer index for B states, gets precalc'ed */
int **init_scAA; /* [0..v..cm->M-1][0..d..W] initial score for each v, d for all j */
double **act; /* [0..j..W-1][0..a..abc->K-1], alphabet count, count of residue a in dsq from 1..jp where j = jp%(W+1) */
@@ -923,7 +920,6 @@ RefITrInsideScan(CM_t *cm, char *errbuf, CM_TR_SCAN_MX *trsmx, int qdbidx, int p
jp_y = (StateRightDelta(cm->sttype[v]) > 0) ? prv : cur;
jq_y = (StateRightDelta(cm->sttype[v]) > 0) ? cur : prv;
sd = StateDelta(cm->sttype[v]);
- cnum = cm->cnum[v];
/* if we emit right, precalc score of emitting res j from state v */
int esc_j = -INFTY;
int rmesc_j = -INFTY;
@@ -1311,7 +1307,7 @@ RefITrInsideScan(CM_t *cm, char *errbuf, CM_TR_SCAN_MX *trsmx, int qdbidx, int p
if(tmp_hitlist != NULL) {
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -2437,7 +2433,7 @@ TrCYKScanHB(CM_t *cm, char *errbuf, CM_TR_HB_MX *mx, float size_limit, int pass_
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
/*cm_tophits_Dump(stdout, tmp_hitlist);*/
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
@@ -3552,7 +3548,7 @@ FTrInsideScanHB(CM_t *cm, char *errbuf, CM_TR_HB_MX *mx, float size_limit, int p
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = j0; /* so overlaps can be removed */
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
/* cm_tophits_Dump(stdout, tmp_hitlist); */
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
diff --git a/src/cm_dpsmall.c b/src/cm_dpsmall.c
index 8d34bc3..514d9ed 100644
--- a/src/cm_dpsmall.c
+++ b/src/cm_dpsmall.c
@@ -1,6 +1,6 @@
/* cm_dpsmall.c (formerly smallcyk.c)
* SRE, Wed Aug 2 08:42:49 2000 [St. Louis]
- * SVN $Id: cm_dpsmall.c 3955 2012-03-20 10:17:48Z nawrockie $
+ * SVN $Id$
*
* Alignment of a CM to a target (sub)sequence.
*
@@ -14,8 +14,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_file.c b/src/cm_file.c
index 7a0a033..ff9df3c 100644
--- a/src/cm_file.c
+++ b/src/cm_file.c
@@ -1432,6 +1432,7 @@ cm_p7_oprofile_ReadMSV(CM_FILE *cmfp, int read_scores, ESL_ALPHABET **byp_abc, o
* for more explanation.
*
* Args: cmfp - open CM file, with associated .i1f file
+ * idx0 - the index of the next profile in the file (0 if first profile)
* byp_abc - BYPASS: <*byp_abc == ESL_ALPHABET *> if known;
* <*byp_abc == NULL> if desired;
* <NULL> if unwanted.
@@ -1449,12 +1450,13 @@ cm_p7_oprofile_ReadMSV(CM_FILE *cmfp, int read_scores, ESL_ALPHABET **byp_abc, o
* file (including first attempt to read an empty file).
*/
int
-cm_p7_oprofile_ReadBlockMSV(CM_FILE *cmfp, ESL_ALPHABET **byp_abc, CM_P7_OM_BLOCK *hmmBlock)
+cm_p7_oprofile_ReadBlockMSV(CM_FILE *cmfp, int64_t idx0, ESL_ALPHABET **byp_abc, CM_P7_OM_BLOCK *hmmBlock)
{
int status = eslOK; /* return status */
int i;
hmmBlock->count = 0;
+ hmmBlock->idx0 = idx0;
for (i = 0; i < hmmBlock->listSize; ++i)
{
status = cm_p7_oprofile_ReadMSV(cmfp, TRUE, byp_abc,
@@ -1468,6 +1470,14 @@ cm_p7_oprofile_ReadBlockMSV(CM_FILE *cmfp, ESL_ALPHABET **byp_abc, CM_P7_OM_BLOC
if (status != eslOK) break;
++hmmBlock->count;
}
+ /* create the MSV data */
+ for (i = 0; i < hmmBlock->count; ++i) {
+ hmmBlock->msvdataA[i] = p7_hmm_ScoreDataCreate(hmmBlock->list[i], FALSE);
+ }
+ /* initiate the clan idx data, caller will need to fill this if nec */
+ for (i = 0; i < hmmBlock->count; ++i) {
+ hmmBlock->clan_idxA[i] = -1;
+ }
/* EOF will be returned only in the case were no profiles were read */
if (status == eslEOF && i > 0) status = eslOK;
@@ -3731,8 +3741,8 @@ main(int argc, char **argv)
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_modelconfig.c b/src/cm_modelconfig.c
index 526c0ed..2d8350f 100644
--- a/src/cm_modelconfig.c
+++ b/src/cm_modelconfig.c
@@ -1,6 +1,6 @@
/* cm_modelconfig.c
* SRE, Wed May 8 14:30:38 2002 [St. Louis]
- * SVN $Id: cm_modelconfig.c 4066 2012-06-08 14:04:21Z nawrockie $
+ * SVN $Id$
*
* Configuring a covariance model. The desideratum is for a CM to be
* configured exactly once. This is done via the cm_Configure() or
@@ -25,8 +25,8 @@
*
******************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_modelmaker.c b/src/cm_modelmaker.c
index 130d853..e1db3b3 100644
--- a/src/cm_modelmaker.c
+++ b/src/cm_modelmaker.c
@@ -1,6 +1,6 @@
/* cm_modelmaker.c
* SRE, 28 Feb 2000
- * SVN $Id: cm_modelmaker.c 4066 2012-06-08 14:04:21Z nawrockie $
+ * SVN $Id$
*
* Construct a model from an alignment.
*
@@ -27,8 +27,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -1837,7 +1837,7 @@ cm_check_before_detaching(CM_t *cm, int insert1, int insert2)
int ret_val;
int i, yoffset;
int to_detach;
- int to_keep;
+ /*int to_keep;*/
float diff;
ret_val = FALSE;
@@ -1849,7 +1849,7 @@ cm_check_before_detaching(CM_t *cm, int insert1, int insert2)
{
ret_val = TRUE;
to_detach = insert1;
- to_keep = insert2;
+ /*to_keep = insert2;*/
}
if(cm->sttype[insert2+1] == E_st)
{
@@ -1857,7 +1857,7 @@ cm_check_before_detaching(CM_t *cm, int insert1, int insert2)
cm_Fail("ERROR: in cm_check_before_detaching() insert1: %d and insert2: %d both map to END_E-1 states.\n", insert1, insert2);
ret_val = TRUE;
to_detach = insert2;
- to_keep = insert1;
+ /*to_keep = insert1;*/
}
/* check to make sure we have 0.0 counts in to_detach */
diff --git a/src/cm_mx.c b/src/cm_mx.c
index 2e3e362..037b79d 100644
--- a/src/cm_mx.c
+++ b/src/cm_mx.c
@@ -894,7 +894,7 @@ cm_hb_mx_Create(int M)
/* level 3: dp cell memory, when creating only allocate 1 cell per state, for j = 0, d = 0 */
ESL_ALLOC(mx->dp_mem, sizeof(float) * (M+1) * (allocL) * (allocW));
- ESL_ALLOC(mx->nrowsA, sizeof(int) * (M+1));
+ ESL_ALLOC(mx->nrowsA, sizeof(int) * (M+1));
for (v = 0; v <= M; v++) {
ESL_ALLOC(mx->dp[v], sizeof(float *) * (allocL));
mx->nrowsA[v] = allocL;
@@ -1884,7 +1884,7 @@ cm_shadow_mx_Create(CM_t *cm)
/* level 3: matrix cell memory, when creating only allocate 1 cell per state, for j = 0, d = 0 */
ESL_ALLOC(mx->yshadow_mem, (sizeof(char) * (M-B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->kshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
+ ESL_ALLOC(mx->kshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW)); // avoid 0 malloc
b = 0;
for (v = 0; v < M; v++) {
@@ -2162,11 +2162,9 @@ cm_shadow_mx_SizeNeeded(CM_t *cm, char *errbuf, int L, int64_t *ret_ny_cells, in
int64_t y_ncells;
int64_t k_ncells;
float Mb_needed;
- int nbifs;
y_ncells = 0;
k_ncells = 0;
- nbifs = CMCountStatetype(cm, B_st);
Mb_needed = (float)
(sizeof(CM_SHADOW_MX) +
((cm->M) * sizeof(char **)) + /* mx->yshadow[] ptrs */
@@ -2266,13 +2264,13 @@ cm_tr_shadow_mx_Create(CM_t *cm)
ESL_ALLOC(mx->Lyshadow_mem, (sizeof(char) * (M-B) * (allocL) * (allocW)));
ESL_ALLOC(mx->Ryshadow_mem, (sizeof(char) * (M-B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Jkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Lkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Rkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Tkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
+ ESL_ALLOC(mx->Jkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW)); // avoid 0 malloc
+ ESL_ALLOC(mx->Lkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW));
+ ESL_ALLOC(mx->Rkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW));
+ ESL_ALLOC(mx->Tkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW));
- ESL_ALLOC(mx->Lkmode_mem, (sizeof(char) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Rkmode_mem, (sizeof(char) * (B) * (allocL) * (allocW)));
+ ESL_ALLOC(mx->Lkmode_mem, sizeof(char) * ESL_MAX(1, B * allocL * allocW));
+ ESL_ALLOC(mx->Rkmode_mem, sizeof(char) * ESL_MAX(1, B * allocL * allocW));
b = 0;
for (v = 0; v < M; v++) {
@@ -2776,7 +2774,6 @@ cm_tr_shadow_mx_SizeNeeded(CM_t *cm, char *errbuf, int L, int64_t *ret_Jny_cells
int64_t Rk_ncells;
int64_t Tk_ncells;
float Mb_needed;
- int nbifs;
Jy_ncells = 0;
Ly_ncells = 0;
@@ -2785,7 +2782,6 @@ cm_tr_shadow_mx_SizeNeeded(CM_t *cm, char *errbuf, int L, int64_t *ret_Jny_cells
Lk_ncells = 0;
Rk_ncells = 0;
Tk_ncells = 0;
- nbifs = CMCountStatetype(cm, B_st);
Mb_needed = (float)
(sizeof(CM_TR_SHADOW_MX) +
(3 * (cm->M) * sizeof(char **)) + /* mx->{J,L,R}yshadow[] ptrs */
@@ -2886,7 +2882,7 @@ cm_hb_shadow_mx_Create(CM_t *cm)
ESL_ALLOC(mx->nrowsA, sizeof(int) * M);
ESL_ALLOC(mx->yshadow_mem, (sizeof(char) * (M-nbifs)));
- ESL_ALLOC(mx->kshadow_mem, (sizeof(int) * (nbifs)));
+ ESL_ALLOC(mx->kshadow_mem, (sizeof(int) * ESL_MAX(1,nbifs))); // avoid 0 malloc
nb = 0;
for (v = 0; v < M; v++) {
@@ -3195,13 +3191,11 @@ cm_hb_shadow_mx_SizeNeeded(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int64_t *re
int64_t y_ncells, k_ncells;
int jbw;
float Mb_needed;
- int nbifs;
/* contract check */
if(cp9b == NULL) ESL_FAIL(eslEINCOMPAT, errbuf, "cm_hb_shadow_mx_SizeNeeded() entered with cp9b == NULL.\n");
y_ncells = k_ncells = 0;
- nbifs = CMCountStatetype(cm, B_st);
Mb_needed = (float)
(sizeof(CM_HB_SHADOW_MX) +
@@ -3302,21 +3296,21 @@ cm_tr_hb_shadow_mx_Create(CM_t *cm)
ESL_ALLOC(mx->Rkshadow, sizeof(int **) * M);
ESL_ALLOC(mx->Tkshadow, sizeof(int **) * M);
- ESL_ALLOC(mx->Lkmode, sizeof(char **) * M);
- ESL_ALLOC(mx->Rkmode, sizeof(char **) * M);
+ ESL_ALLOC(mx->Lkmode, sizeof(char **) * M);
+ ESL_ALLOC(mx->Rkmode, sizeof(char **) * M);
/* level 3: matrix cell memory, when creating only allocate 1 cell per state, for j = 0, d = 0 */
ESL_ALLOC(mx->Jyshadow_mem, (sizeof(char) * (M-B) * (allocL) * (allocW)));
ESL_ALLOC(mx->Lyshadow_mem, (sizeof(char) * (M-B) * (allocL) * (allocW)));
ESL_ALLOC(mx->Ryshadow_mem, (sizeof(char) * (M-B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Jkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Lkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Rkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Tkshadow_mem, (sizeof(int) * (B) * (allocL) * (allocW)));
+ ESL_ALLOC(mx->Jkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW)); // avoid 0 malloc
+ ESL_ALLOC(mx->Lkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW));
+ ESL_ALLOC(mx->Rkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW));
+ ESL_ALLOC(mx->Tkshadow_mem, sizeof(int) * ESL_MAX(1, B * allocL * allocW));
- ESL_ALLOC(mx->Lkmode_mem, (sizeof(char) * (B) * (allocL) * (allocW)));
- ESL_ALLOC(mx->Rkmode_mem, (sizeof(char) * (B) * (allocL) * (allocW)));
+ ESL_ALLOC(mx->Lkmode_mem, sizeof(char) * ESL_MAX(1, B * allocL * allocW));
+ ESL_ALLOC(mx->Rkmode_mem, sizeof(char) * ESL_MAX(1, B * allocL * allocW));
ESL_ALLOC(mx->JnrowsA, sizeof(int) * M);
ESL_ALLOC(mx->LnrowsA, sizeof(int) * M);
@@ -3662,7 +3656,7 @@ cm_tr_hb_shadow_mx_GrowTo(CM_t *cm, CM_TR_HB_SHADOW_MX *mx, char *errbuf, CP9Ban
if(jbw > mx->LnrowsA[v]) {
if(mx->Lkshadow[v] != NULL) ESL_RALLOC(mx->Lkshadow[v], p, sizeof(int *) * jbw);
else ESL_ALLOC (mx->Lkshadow[v], sizeof(int *) * jbw);
- if(mx->Lkmode[v] != NULL) ESL_RALLOC(mx->Lkmode[v], p, sizeof(char *) * jbw);
+ if(mx->Lkmode[v] != NULL) ESL_RALLOC(mx->Lkmode[v], p, sizeof(char *) * jbw);
else ESL_ALLOC (mx->Lkmode[v], sizeof(char *) * jbw);
mx->LnrowsA[v] = jbw;
}
@@ -3992,7 +3986,6 @@ cm_tr_hb_shadow_mx_SizeNeeded(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int64_t
int64_t Tk_ncells;
int jbw;
float Mb_needed;
- int nbifs;
/* contract check */
if(cp9b == NULL) ESL_FAIL(eslEINCOMPAT, errbuf, "cm_tr_hb_shadow_mx_SizeNeeded() entered with cp9b == NULL.\n");
@@ -4004,7 +3997,6 @@ cm_tr_hb_shadow_mx_SizeNeeded(CM_t *cm, char *errbuf, CP9Bands_t *cp9b, int64_t
Lk_ncells = 0;
Rk_ncells = 0;
Tk_ncells = 0;
- nbifs = CMCountStatetype(cm, B_st);
Mb_needed = (float)
(sizeof(CM_TR_HB_SHADOW_MX) +
(3 * (cp9b->cm_M) * sizeof(char **)) + /* mx->{J,L,R}yshadow[] ptrs */
@@ -5907,7 +5899,7 @@ cm_scan_mx_floatize(CM_t *cm, CM_SCAN_MX *smx, char *errbuf)
smx->ncells_alpha_begl = (smx->W+1);
smx->ncells_alpha_begl *= n_begl;
smx->ncells_alpha_begl *= (smx->W+1);
- ESL_ALLOC(smx->falpha_begl_mem, sizeof(float) * (smx->ncells_alpha_begl));
+ ESL_ALLOC(smx->falpha_begl_mem, sizeof(float) * ESL_MAX(1, smx->ncells_alpha_begl));
/* we used to define ncells_alpha_begl this way:
* smx->ncells_alpha_begl = (smx->W+1) * n_begl * (smx->W+1);
* but that overflows for large models (even though ncells_alpha_begl is an int64_t, I guess
@@ -6003,7 +5995,7 @@ cm_scan_mx_integerize(CM_t *cm, CM_SCAN_MX *smx, char *errbuf)
smx->ncells_alpha_begl = (smx->W+1);
smx->ncells_alpha_begl *= n_begl;
smx->ncells_alpha_begl *= (smx->W+1);
- ESL_ALLOC(smx->ialpha_begl_mem, sizeof(int) * (smx->ncells_alpha_begl));
+ ESL_ALLOC(smx->ialpha_begl_mem, sizeof(int) * ESL_MAX(1, smx->ncells_alpha_begl)); // avoid 0 malloc
/* we used to define ncells_alpha_begl this way:
* smx->ncells_alpha_begl = (smx->W+1) * n_begl * (smx->W+1);
* but that overflows for large models (even though ncells_alpha_begl is an int64_t, I guess
@@ -6667,9 +6659,9 @@ cm_tr_scan_mx_floatize(CM_t *cm, CM_TR_SCAN_MX *trsmx, char *errbuf)
trsmx->ncells_alpha_begl = (trsmx->W+1);
trsmx->ncells_alpha_begl *= n_begl;
trsmx->ncells_alpha_begl *= (trsmx->W+1);
- ESL_ALLOC(trsmx->fJalpha_begl_mem, sizeof(float) * (trsmx->ncells_alpha_begl));
- ESL_ALLOC(trsmx->fLalpha_begl_mem, sizeof(float) * (trsmx->ncells_alpha_begl));
- ESL_ALLOC(trsmx->fRalpha_begl_mem, sizeof(float) * (trsmx->ncells_alpha_begl));
+ ESL_ALLOC(trsmx->fJalpha_begl_mem, sizeof(float) * ESL_MAX(1, trsmx->ncells_alpha_begl)); // avoid 0 malloc
+ ESL_ALLOC(trsmx->fLalpha_begl_mem, sizeof(float) * ESL_MAX(1, trsmx->ncells_alpha_begl));
+ ESL_ALLOC(trsmx->fRalpha_begl_mem, sizeof(float) * ESL_MAX(1, trsmx->ncells_alpha_begl));
cur_cell = 0;
for (v = 0; v < cm->M; v++) {
@@ -6813,9 +6805,9 @@ cm_tr_scan_mx_integerize(CM_t *cm, CM_TR_SCAN_MX *trsmx, char *errbuf)
trsmx->ncells_alpha_begl = (trsmx->W+1);
trsmx->ncells_alpha_begl *= n_begl;
trsmx->ncells_alpha_begl *= (trsmx->W+1);
- ESL_ALLOC(trsmx->iJalpha_begl_mem, sizeof(int) * (trsmx->ncells_alpha_begl));
- ESL_ALLOC(trsmx->iLalpha_begl_mem, sizeof(int) * (trsmx->ncells_alpha_begl));
- ESL_ALLOC(trsmx->iRalpha_begl_mem, sizeof(int) * (trsmx->ncells_alpha_begl));
+ ESL_ALLOC(trsmx->iJalpha_begl_mem, sizeof(int) * ESL_MAX(1, trsmx->ncells_alpha_begl));
+ ESL_ALLOC(trsmx->iLalpha_begl_mem, sizeof(int) * ESL_MAX(1, trsmx->ncells_alpha_begl));
+ ESL_ALLOC(trsmx->iRalpha_begl_mem, sizeof(int) * ESL_MAX(1, trsmx->ncells_alpha_begl));
cur_cell = 0;
for (v = 0; v < cm->M; v++) {
diff --git a/src/cm_p7_modelmaker.c b/src/cm_p7_modelmaker.c
index 36ac48b..5d657c4 100644
--- a/src/cm_p7_modelmaker.c
+++ b/src/cm_p7_modelmaker.c
@@ -6,8 +6,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -357,7 +357,6 @@ cm_p7_Tau(ESL_RANDOMNESS *r, char *errbuf, P7_OPROFILE *om, P7_PROFILE *gm, P7_B
double gmu, glam;
int status;
int i;
- int M;
int do_generic;
if(om == NULL && gm == NULL) { status = eslEINVAL; goto ERROR; }
@@ -367,12 +366,10 @@ cm_p7_Tau(ESL_RANDOMNESS *r, char *errbuf, P7_OPROFILE *om, P7_PROFILE *gm, P7_B
if(do_generic) {
gx = p7_gmx_Create(gm->M, L); /* DP matrix: for ForwardParser, L rows */
if (gx == NULL) { status = eslEMEM; goto ERROR; }
- M = gm->M;
}
else {
ox = p7_omx_Create(om->M, 0, L); /* DP matrix: for ForwardParser, L rows */
if (ox == NULL) { status = eslEMEM; goto ERROR; }
- M = om->M;
}
ESL_ALLOC(xv, sizeof(double) * N);
diff --git a/src/cm_parsetree.c b/src/cm_parsetree.c
index da8cadb..df6e936 100644
--- a/src/cm_parsetree.c
+++ b/src/cm_parsetree.c
@@ -3,7 +3,7 @@
* moved to cove 2.0, Mon Sep 6 13:34:55 1993
* cove4: SRE 29 Feb 2000 [Seattle]
* infernal: SRE, Fri Jul 28 08:55:47 2000 [StL]
- * SVN $Id: cm_parsetree.c 4493 2013-06-20 19:17:46Z nawrockie $
+ * SVN $Id$
*
* Unlike a traceback of a normal HMM alignment, which is linear,
* the traceback of a CM is a tree structure. Here
@@ -2621,7 +2621,7 @@ cm_StochasticParsetree(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, CM_MX *mx, E
int el_is_possible; /* TRUE if we can jump to EL from current state (and we're in local mode) FALSE if not */
float fsc = 0.; /* score of the parsetree we're sampling */
int choice; /* index represeting sampled choice */
- int sd, sdl, sdr; /* state delta, state left delta, state right delta */
+ int sd, sdr; /* state delta, state right delta */
/* the DP matrix, filled by prior call to cm_InsideAlign() */
float ***alpha = mx->dp; /* pointer to the alpha DP matrix */
@@ -2703,7 +2703,6 @@ cm_StochasticParsetree(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, CM_MX *mx, E
/* add in emission score (or 0.0 if we're a non-emitter) */
fsc += get_femission_score(cm, dsq, v, i, j);
sd = StateDelta(cm->sttype[v]);
- sdl = StateLeftDelta(cm->sttype[v]);
sdr = StateRightDelta(cm->sttype[v]);
/* set pA[] as (float-ized) log odds scores for each child we can transit to,
@@ -2860,7 +2859,7 @@ cm_StochasticParsetreeHB(CM_t *cm, char *errbuf, ESL_DSQ *dsq, int L, CM_HB_MX *
int jp_z, kp_z; /* j - jmin[z], d - hdmin[z][jp_z] */
int jp_y_sdr; /* j - jmin[y] - vms_sdr */
int dp_y_sd; /* hdmin[y][jp_y_vms_sdr] - vms_sd */
- int jp_0; /* L offset in ROOT_S's (v==0) j band */
+ int jp_0; /* j offset in ROOT_S's (v==0) j band */
int Lp_0; /* L offset in ROOT_S's (v==0) d band */
int kmin, kmax; /* min/max k */
diff --git a/src/cm_pipeline.c b/src/cm_pipeline.c
index 15d263b..78a1482 100644
--- a/src/cm_pipeline.c
+++ b/src/cm_pipeline.c
@@ -24,9 +24,9 @@
#include "infernal.h"
-static int pli_p7_filter (CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_MSVDATA *msvdata, const ESL_SQ *sq, int64_t **ret_ws, int64_t **ret_we, int *ret_nwin);
+static int pli_p7_filter (CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_SCOREDATA *msvdata, const ESL_SQ *sq, int64_t **ret_ws, int64_t **ret_we, float **ret_wb, int *ret_nwin);
static int pli_p7_env_def (CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, const ESL_SQ *sq, int64_t *ws, int64_t *we, int nwin, P7_HMM **opt_hmm, P7_PROFILE **opt_gm,
- P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, int64_t **ret_es, int64_t **ret_ee, int *ret_nenv);
+ P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, int64_t **ret_es, int64_t **ret_ee, float **ret_eb, int *ret_nenv);
static int pli_cyk_env_filter (CM_PIPELINE *pli, off_t cm_offset, const ESL_SQ *sq, int64_t *p7es, int64_t *p7ee, int np7env, CM_t **opt_cm, int64_t **ret_es, int64_t **ret_ee, int *ret_nenv);
static int pli_cyk_seq_filter (CM_PIPELINE *pli, off_t cm_offset, const ESL_SQ *sq, CM_t **opt_cm, int64_t **ret_ws, int64_t **ret_we, int *ret_nwin);
static int pli_final_stage (CM_PIPELINE *pli, off_t cm_offset, const ESL_SQ *sq, int64_t *es, int64_t *ee, int nenv, CM_TOPHITS *hitlist, CM_t **opt_cm);
@@ -91,7 +91,8 @@ static float pli_mxsize_limit_from_W (int W);
* | --cut_nc | model-specific thresholding using NC | FALSE |
* | --cut_tc | model-specific thresholding using TC | FALSE |
* | --notrunc | turn off truncated hit detection | FALSE |
- * | --anytrunc | allow truncated hits anywhere in the seq | FALSE |
+ * | --anytrunc | allow full + trunc hits anywhere in the seq | FALSE |
+ * | --onlytrunc | allow only trunc hits anywhere in the seq | FALSE |
* | --max | turn all heuristic filters off | FALSE |
* | --nohmm | turn all HMM filters off | FALSE |
* | --mid | turn off MSV and Viterbi filters | FALSE |
@@ -151,6 +152,7 @@ static float pli_mxsize_limit_from_W (int W);
* | --timeF4 | abort after F4b stage, for timing expts | FALSE |
* | --timeF5 | abort after F5b stage, for timing expts | FALSE |
* | --timeF6 | abort after F6 stage, for timing expts | FALSE |
+ * | --trmF3 | terminate after F3 stage, output windows | FALSE |
* | --nogreedy | use optimal CM hit resolution, not greedy | FALSE |
* | --cp9noel | turn off EL state in CP9 HMM | FALSE |
* | --cp9gloc | configure CP9 HMM in glocal mode | FALSE |
@@ -192,6 +194,7 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
pli->cmW = 0; /* model-dependent, invalid until cm_pli_NewModel() is called */
pli->clen = 0; /* model-dependent, invalid until cm_pli_NewModel() is called */
pli->cur_cm_idx = -1; /* model-dependent, invalid until cm_pli_NewModel() is called */
+ pli->cur_clan_idx = -1; /* model-dependent, invalid until cm_pli_NewModel() is called */
pli->cur_seq_idx = -1; /* sequence-dependent, invalid until cm_pli_NewSeq() is called */
pli->cur_pass_idx = -1; /* pipeline-pass-dependent, updated in cm_Pipeline() */
pli->cmfp = NULL; /* set by caller only if we're a scan pipeline (i.e. set in cmscan) */
@@ -233,12 +236,14 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
pli->maxtau = esl_opt_GetReal (go, "--maxtau");
pli->do_wcx = esl_opt_IsUsed (go, "--wcx") ? TRUE : FALSE;
pli->wcx = esl_opt_IsUsed (go, "--wcx") ? esl_opt_GetReal(go, "--wcx") : 0.;
+ pli->do_one_cmpass = esl_opt_GetBoolean(go, "--onepass") ? TRUE : FALSE;
pli->do_time_F1 = esl_opt_GetBoolean(go, "--timeF1") ? TRUE : FALSE;
pli->do_time_F2 = esl_opt_GetBoolean(go, "--timeF2") ? TRUE : FALSE;
pli->do_time_F3 = esl_opt_GetBoolean(go, "--timeF3") ? TRUE : FALSE;
pli->do_time_F4 = esl_opt_GetBoolean(go, "--timeF4") ? TRUE : FALSE;
pli->do_time_F5 = esl_opt_GetBoolean(go, "--timeF5") ? TRUE : FALSE;
pli->do_time_F6 = esl_opt_GetBoolean(go, "--timeF6") ? TRUE : FALSE;
+ pli->do_trm_F3 = esl_opt_GetBoolean(go, "--trmF3") ? TRUE : FALSE;
/* hard-coded miscellaneous parameters that were command-line
* settable in past testing, and could be in future testing.
@@ -306,16 +311,53 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
/* configure truncation hit allowance parameters */
if(esl_opt_GetBoolean(go, "--anytrunc")) {
- pli->do_trunc_ends = FALSE;
- pli->do_trunc_any = TRUE;
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = TRUE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
+ }
+ else if(esl_opt_GetBoolean(go, "--onlytrunc")) {
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = TRUE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
+ }
+ else if(esl_opt_GetBoolean(go, "--onlytrunc")) {
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = TRUE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
}
else if(esl_opt_GetBoolean(go, "--notrunc")) {
- pli->do_trunc_ends = FALSE;
- pli->do_trunc_any = FALSE;
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
+ }
+ else if(esl_opt_GetBoolean(go, "--5trunc")) {
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = TRUE;
+ pli->do_trunc_3p_ends = FALSE;
+ }
+ else if(esl_opt_GetBoolean(go, "--3trunc")) {
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = TRUE;
}
else { /* default */
- pli->do_trunc_ends = TRUE;
- pli->do_trunc_any = FALSE;
+ pli->do_trunc_ends = TRUE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
}
/* Set Z, the search space size. This is used for E-value
@@ -390,8 +432,11 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
pli->F1 = pli->F2 = pli->F3 = pli->F4 = pli->F5 = pli->F6 = 1.0;
pli->F1b = pli->F2b = pli->F3b = pli->F4b = pli->F5b = pli->F6 = 1.0;
/* D&C truncated alignment is not robust, so we don't allow it */
- pli->do_trunc_ends = FALSE;
- pli->do_trunc_any = FALSE;
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
}
else if(esl_opt_GetBoolean(go, "--nohmm")) {
pli->do_nohmm = TRUE;
@@ -401,8 +446,11 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
pli->F1b = pli->F2b = pli->F3b = pli->F4b = pli->F5b = 1.0;
pli->F6 = 0.0001; /* default F6, we'll change this below if --F6 was used */
/* D&C truncated alignment is not robust, so we don't allow it */
- pli->do_trunc_ends = FALSE;
- pli->do_trunc_any = FALSE;
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
}
else if(esl_opt_GetBoolean(go, "--mid")) {
pli->do_mid = TRUE;
@@ -666,7 +714,7 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
}
}
/* should we setup for truncated alignments? */
- if(pli->do_trunc_ends || pli->do_trunc_any) pli->cm_config_opts |= CM_CONFIG_TRUNC;
+ if(pli->do_trunc_ends || pli->do_trunc_any || pli->do_trunc_only || pli->do_trunc_5p_ends || pli->do_trunc_3p_ends) pli->cm_config_opts |= CM_CONFIG_TRUNC;
/* will we be requiring a CM_SCAN_MX? a CM_TR_SCAN_MX? */
if(pli->do_max || /* max mode, no filters */
@@ -674,7 +722,7 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
esl_opt_GetBoolean(go, "--fqdb") || /* user specified to use --fqdb, do it */
esl_opt_GetBoolean(go, "--qdb")) { /* user specified to use --qdb, do it */
pli->cm_config_opts |= CM_CONFIG_SCANMX;
- if(pli->do_trunc_ends || pli->do_trunc_any) pli->cm_config_opts |= CM_CONFIG_TRSCANMX;
+ if(pli->do_trunc_ends || pli->do_trunc_any || pli->do_trunc_only || pli->do_trunc_5p_ends || pli->do_trunc_3p_ends) pli->cm_config_opts |= CM_CONFIG_TRSCANMX;
}
/* will we be requiring non-banded alignment matrices? */
if(pli->do_max || /* max mode, no filters, hit alignment will be nonbanded */
@@ -685,8 +733,11 @@ cm_pipeline_Create(ESL_GETOPTS *go, ESL_ALPHABET *abc, int clen_hint, int L_hint
if(pli->do_max) pli->cm_align_opts |= CM_ALIGN_NONBANDED;
else pli->cm_align_opts |= CM_ALIGN_QDB; /* --nohmm, --qdb */
/* D&C truncated alignment is not robust, so we don't allow it */
- pli->do_trunc_ends = FALSE;
- pli->do_trunc_any = FALSE;
+ pli->do_trunc_ends = FALSE;
+ pli->do_trunc_any = FALSE;
+ pli->do_trunc_only = FALSE;
+ pli->do_trunc_5p_ends = FALSE;
+ pli->do_trunc_3p_ends = FALSE;
}
else {
pli->cm_align_opts |= CM_ALIGN_HBANDED;
@@ -855,6 +906,13 @@ cm_pli_TargetIncludable(CM_PIPELINE *pli, float score, double Eval)
* (If we're in SEARCH mode, <p7_max_length> will likely
* be equal to om->max_length, but in SCAN mode om may
* be NULL).
+ *
+ * <cur_clan_idx> indicates the index of the clan for the
+ * model and will be transferred to any hits (CM_HIT) found
+ * with this model. It can be -1 if the model either does
+ * not belong to a clan or if we are not keeping track of
+ * clans (which is the usual case: clans are only used for
+ * certain options in cmscan).
*
* <glocal_kh> is irrelevant (and can be NULL) unless
* we're in case 2 and pli->do_glocal_cm_sometimes is
@@ -878,7 +936,7 @@ cm_pli_TargetIncludable(CM_PIPELINE *pli, float score, double Eval)
* have the appropriate ones set.
*/
int
-cm_pli_NewModel(CM_PIPELINE *pli, int modmode, CM_t *cm, int cm_clen, int cm_W, int cm_nbp, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, int p7_max_length, int64_t cur_cm_idx, ESL_KEYHASH *glocal_kh)
+cm_pli_NewModel(CM_PIPELINE *pli, int modmode, CM_t *cm, int cm_clen, int cm_W, int cm_nbp, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, int p7_max_length, int64_t cur_cm_idx, int cur_clan_idx, ESL_KEYHASH *glocal_kh)
{
int status = eslOK;
float T;
@@ -909,7 +967,8 @@ cm_pli_NewModel(CM_PIPELINE *pli, int modmode, CM_t *cm, int cm_clen, int cm_W,
}
}
- pli->cur_cm_idx = cur_cm_idx;
+ pli->cur_cm_idx = cur_cm_idx;
+ pli->cur_clan_idx = cur_clan_idx;
/* Two sets (A and B) of value updates:
* case 1: we do both sets
@@ -1204,26 +1263,29 @@ cm_pipeline_Merge(CM_PIPELINE *p1, CM_PIPELINE *p2)
* Xref: J4/25.
*/
int
-cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_MSVDATA *msvdata, ESL_SQ *sq, CM_TOPHITS *hitlist, int in_rc, P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, CM_t **opt_cm)
+cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_SCOREDATA *msvdata, ESL_SQ *sq, CM_TOPHITS *hitlist, int in_rc, P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, CM_t **opt_cm)
{
int status;
- int nwin = 0; /* number of windows surviving MSV & Vit & lFwd, filled by pli_p7_filter() */
- int64_t *ws = NULL; /* [0..i..nwin-1] window start positions, filled by pli_p7_filter() */
- int64_t *we = NULL; /* [0..i..nwin-1] window end positions, filled by pli_p7_filter() */
- int np7env = 0; /* number of envelopes surviving MSV & Vit & lFwd & gFwd & EnvDef, filled by pli_p7_env_def() */
- int64_t *p7es = NULL; /* [0..i..np7env-1] window start positions, filled by pli_p7_env_def() */
- int64_t *p7ee = NULL; /* [0..i..np7env-1] window end positions, filled by pli_p7_env_def() */
- int nenv = 0; /* number of envelopes surviving CYK filter, filled by pli_cyk_env_filter() or pli_cyk_seq_filter() */
- int64_t *es = NULL; /* [0..i..nenv-1] envelope start positions, filled by pli_cyk_env_filter() or pli_cyk_seq_filter() */
- int64_t *ee = NULL; /* [0..i..nenv-1] envelope end positions, filled by pli_cyk_env_filter() or pli_cyk_seq_filter() */
- int i; /* counter over envelopes */
+ int nwin = 0; /* number of windows surviving MSV & Vit & lFwd, filled by pli_p7_filter() */
+ int64_t *ws = NULL; /* [0..i..nwin-1] window start positions, filled by pli_p7_filter() */
+ int64_t *we = NULL; /* [0..i..nwin-1] window end positions, filled by pli_p7_filter() */
+ float *wb = NULL; /* [0..i..nwin-1] window bit scores, filled by pli_p7_filter, relevant only if pli->do_trm_F3 is TRUE */
+ int *np7envA =NULL; /* [0..p..NPLI_PASSES] number of envelopes surviving MSV & Vit & lFwd & gFwd & EnvDef, filled by pli_p7_env_def() */
+ int64_t **p7esAA = NULL; /* [0..p..NPLI_PASSES][0..i..np7env-1] window start positions, filled by pli_p7_env_def() */
+ int64_t **p7eeAA = NULL; /* [0..p..NPLI_PASSES][0..i..np7env-1] window end positions, filled by pli_p7_env_def() */
+ float **p7ebAA = NULL; /* [0..p..NPLI_PASSES][0..i..np7env-1] window bit score, filled by pli_p7_env_def() */
+ int nenv = 0; /* number of envelopes surviving CYK filter, filled by pli_cyk_env_filter() or pli_cyk_seq_filter() */
+ int64_t *es = NULL; /* [0..i..nenv-1] envelope start positions, filled by pli_cyk_env_filter() or pli_cyk_seq_filter() */
+ int64_t *ee = NULL; /* [0..i..nenv-1] envelope end positions, filled by pli_cyk_env_filter() or pli_cyk_seq_filter() */
+ int i; /* counter over envelopes */
+ CM_HIT *hit = NULL; /* ptr to the current hit output data, only used if pli->do_trmF3 */
/* variables necessary for re-searching sequence ends */
ESL_SQ *sq2search = NULL; /* a pointer to the sequence to search on current pass */
ESL_SQ *term5sq = NULL; /* a copy of the 5'-most pli->maxW residues from sq */
ESL_SQ *term3sq = NULL; /* a copy of the 3'-most pli->maxW residues from sq */
int p; /* counter over passes */
- int nwin_pass_std_any = 0; /* number of windows that survived pass 1 (PLI_PASS_STD_ANY) */
+ int nwin_pass_std_any = -1; /* number of windows that survived pass 1 (PLI_PASS_STD_ANY), -1 indicates we didn't run PLI_PASS_STD_ANY */
int do_pass_std_any; /* should we do pass 2 (PLI_PASS_STD_ANY) search the full sequence with CM pipeline? */
int do_pass_5p_only_force; /* should we do pass 2 (PLI_PASS_5P_ONLY_FORCE)? re-search the 5'-most pli->maxW residues */
int do_pass_3p_only_force; /* should we do pass 3 (PLI_PASS_3P_ONLY_FORCE)? re-search the 3'-most pli->maxW residues */
@@ -1235,9 +1297,15 @@ cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float
int h; /* counter over hits */
int prv_ntophits; /* number of hits */
int64_t start_offset; /* offset to add to start/stop coordinates of hits found in pass 3, in which we re-search the 3' terminus */
+ int winning_pass = -1; /* best scoring pass in HMM stage, only used if pli->do_one_cmpass */
+ float winning_sc = 0.; /* score of best scoring pass in HMM stage, only used if pli->do_one_cmpass */
if (sq->n == 0) return eslOK; /* silently skip length 0 seqs; they'd cause us all sorts of weird problems */
+ if ((! pli->do_edef) && pli->do_one_cmpass) {
+ ESL_FAIL(eslEINVAL, pli->errbuf, "cm_Pipeline() entered with do_edef as FALSE but do_onepass as TRUE, coding bug.");
+ }
+
/* Determine if we have the 5' and/or 3' termini. We can do this
* because sq->L should always be valid. (Caller should enforce
* this, but it takes some effort if caller is potentially reading
@@ -1257,10 +1325,24 @@ cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float
#if eslDEBUGLEVEL >= 3
/*printf("\nPIPELINE ENTRANCE %s %s %" PRId64 " residues (pli->maxW: %d om->max_length: %d cm->W: %d)\n", sq->name, sq->desc, sq->n, pli->maxW, om->max_length, (*opt_cm)->W);*/
- printf("\nPIPELINE ENTRANCE %-15s (n: %6" PRId64 " start: %6" PRId64 " end: %6" PRId64 " C: %6" PRId64 " W: %6" PRId64 " L: %6" PRId64 " have5term: %d have3term: %d)\n",
- sq->name, sq->n, sq->start, sq->end, sq->C, sq->W, sq->L, have5term, have3term);
+ printf("\nPIPELINE ENTRANCE %-15s %15s (n: %6" PRId64 " start: %6" PRId64 " end: %6" PRId64 " C: %6" PRId64 " W: %6" PRId64 " L: %6" PRId64 " have5term: %d have3term: %d)\n",
+ sq->name, om->name, sq->n, sq->start, sq->end, sq->C, sq->W, sq->L, have5term, have3term);
#endif
+ /* allocate *p7* variables, if nec */
+ if(pli->do_edef) {
+ ESL_ALLOC(np7envA, sizeof(int) * NPLI_PASSES);
+ ESL_ALLOC(p7esAA, sizeof(int *) * NPLI_PASSES);
+ ESL_ALLOC(p7eeAA, sizeof(int *) * NPLI_PASSES);
+ ESL_ALLOC(p7ebAA, sizeof(float *) * NPLI_PASSES);
+ for(p = 0; p < NPLI_PASSES; p++) {
+ np7envA[p] = 0;
+ p7esAA[p] = NULL;
+ p7eeAA[p] = NULL;
+ p7ebAA[p] = NULL;
+ }
+ }
+
/* determine which passes we'll need to do for this sequence. The
* 'do_' variables indicated which type of truncations are allowed
* in each pass; e.g. do_pass_5p_only_force: only 5' truncations are
@@ -1271,23 +1353,51 @@ cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float
do_pass_hmm_only_any = TRUE;
do_pass_std_any = do_pass_5p_only_force = do_pass_3p_only_force = do_pass_5p_and_3p_force = do_pass_5p_and_3p_any = FALSE;
}
- else if(pli->do_trunc_ends) {
+ else if(pli->do_trunc_ends) { /* we allow truncated hits only at 5' or 3' end (default) */
do_pass_std_any = TRUE;
do_pass_5p_only_force = have5term ? TRUE : FALSE;
do_pass_3p_only_force = have3term ? TRUE : FALSE;
do_pass_5p_and_3p_force = (have5term && have3term && sq->n <= pli->maxW) ? TRUE : FALSE;
do_pass_5p_and_3p_any = do_pass_hmm_only_any = FALSE;
}
+ else if(pli->do_trunc_5p_ends) { /* we allow truncated hits only at 5' end */
+ do_pass_std_any = TRUE;
+ do_pass_5p_only_force = have5term ? TRUE : FALSE;
+ do_pass_3p_only_force = do_pass_5p_and_3p_force = do_pass_5p_and_3p_any = do_pass_hmm_only_any = FALSE;
+ }
+ else if(pli->do_trunc_3p_ends) { /* we allow truncated hits only at 3' end */
+ do_pass_std_any = TRUE;
+ do_pass_3p_only_force = have3term ? TRUE : FALSE;
+ do_pass_5p_only_force = do_pass_5p_and_3p_force = do_pass_5p_and_3p_any = do_pass_hmm_only_any = FALSE;
+ }
else if(pli->do_trunc_any) { /* we allow any truncated hit, in a special pass PLI_PASS_5P_AND_3P_ANY */
do_pass_std_any = TRUE;
do_pass_5p_and_3p_any = TRUE;
do_pass_5p_only_force = do_pass_3p_only_force = do_pass_5p_and_3p_force = do_pass_hmm_only_any = FALSE;
}
+ else if(pli->do_trunc_only) { /* we allow any truncated hit, in a special pass PLI_PASS_5P_AND_3P_ANY */
+ do_pass_5p_and_3p_any = TRUE;
+ do_pass_std_any = do_pass_5p_only_force = do_pass_3p_only_force = do_pass_5p_and_3p_force = do_pass_hmm_only_any = FALSE;
+ }
else { /* we're not allowing any truncated hits */
do_pass_std_any = TRUE;
do_pass_5p_only_force = do_pass_3p_only_force = do_pass_5p_and_3p_force = do_pass_5p_and_3p_any = do_pass_hmm_only_any = FALSE;
}
+#if eslDEBUGLEVEL >= 1
+ printf("in cm_Pipeline() %s\n", sq->name);
+ printf("do_pass_std_any: %d\n", do_pass_std_any);
+ printf("do_pass_5p_only_force: %d\n", do_pass_5p_only_force);
+ printf("do_pass_3p_only_force: %d\n", do_pass_3p_only_force);
+ printf("do_pass_5p_and_3p_force: %d\n", do_pass_5p_and_3p_force);
+ printf("do_pass_5p_and_3p_any: %d\n", do_pass_5p_and_3p_any);
+ printf("do_pass_hmm_only_any: %d\n", do_pass_hmm_only_any);
+#endif
+
+ /* First loop over each pipeline pass:
+ * A. Update pipeline accounting numbers
+ * B. Complete all HMM-based calculations (we'll do CM calculations in second loop over passes)
+ */
for(p = PLI_PASS_STD_ANY; p < NPLI_PASSES; p++) { /* p will go from 1..6 */
if(p == PLI_PASS_STD_ANY && (! do_pass_std_any)) continue;
if(p == PLI_PASS_5P_ONLY_FORCE && (! do_pass_5p_only_force)) continue;
@@ -1296,7 +1406,9 @@ cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float
if(p == PLI_PASS_5P_AND_3P_ANY && (! do_pass_5p_and_3p_any)) continue;
if(p == PLI_PASS_HMM_ONLY_ANY && (! do_pass_hmm_only_any)) continue;
- /* Update npli_{top,bot} run and nres_{top,bot} searched for this
+
+ /* A. Update pipeline accounting numbers
+ * Update npli_{top,bot} run and nres_{top,bot} searched for this
* pass. It's important to do this precisely here, in between the
* 'continue's above, but prior to the one below that 'continue's
* only because we know no windows pass local Fwd (F3).
@@ -1311,7 +1423,7 @@ cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float
if(in_rc) pli->acct[p].nres_bot += ESL_MIN(pli->maxW, sq->n);
else pli->acct[p].nres_top += ESL_MIN(pli->maxW, sq->n);
}
-
+
/* if we know there's no windows that pass local Fwd (F3), our terminal (or full) seqs won't have any either, continue */
if(p != PLI_PASS_STD_ANY && p != PLI_PASS_HMM_ONLY_ANY && nwin_pass_std_any == 0 && (! pli->do_max)) continue;
@@ -1343,112 +1455,215 @@ cm_Pipeline(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float
#if eslDEBUGLEVEL >= 3
printf("\nHMM ONLY PIPELINE calling p7_filter() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
#endif
- if((status = pli_p7_filter(pli, om, bg, p7_evparam, msvdata, sq2search, &ws, &we, &nwin)) != eslOK) return status;
+ if((status = pli_p7_filter(pli, om, bg, p7_evparam, msvdata, sq2search, &ws, &we, &wb, &nwin)) != eslOK) return status;
if(pli->do_time_F1 || pli->do_time_F2 || pli->do_time_F3) return status;
-
prv_ntophits = hitlist->N;
if((status = pli_final_stage_hmmonly(pli, cm_offset, om, bg, p7_evparam, sq2search, ws, we, nwin, hitlist, opt_cm)) != eslOK) return status;
}
else { /* normal case, p != PLI_PASS_HMM_ONLY_ANY */
- /********************************************************************************************************/
- /* Execute the CM filter pipeline:
- * Goal of filters is to define envelopes in 1 of 3 ways:
- * 1. using a p7 hmm (if pli->do_edef == TRUE)
- * 2. using CYK (if pli->do_edef == FALSE && pli->fcyk = TRUE)
- * 3. each full seq is an envelope (no filters, if pli->do_edef == FALSE && pli->fcyk = FALSE)
- ********************************************************************************************************/
- /* 1. using a p7 hmm (if pli->do_edef == TRUE) */
+ /* Use HMM to define envelopes, if nec.
+ * If we skip this step (if pli->do_edef == FALSE)
+ * we will do it with the CM in the second loop over passes below.
+ */
if(pli->do_edef) {
/* Defining envelopes with p7 HMM:
- * A. pli_p7_filter(): MSV, Viterbi, local Forward filters
- * B. pli_p7_env_def(): glocal Forward, and glocal (usually) HMM envelope definition, then
- * C. pli_cyk_env_filter(): CYK filter, run on each envelope defined by the HMM
+ * A. pli_p7_filter(): SSV, Viterbi, local Forward filters
+ * B. pli_p7_env_def(): glocal Forward, and glocal (usually) HMM envelope definition, then
*/
#if eslDEBUGLEVEL >= 3
printf("\nPIPELINE calling p7_filter() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
#endif
- if((status = pli_p7_filter(pli, om, bg, p7_evparam, msvdata, sq2search, &ws, &we, &nwin)) != eslOK) return status;
+ if((status = pli_p7_filter(pli, om, bg, p7_evparam, msvdata, sq2search, &ws, &we, &wb, &nwin)) != eslOK) return status;
if(p == PLI_PASS_STD_ANY) nwin_pass_std_any = nwin;
if(pli->do_time_F1 || pli->do_time_F2 || pli->do_time_F3) return status;
+
+ if(pli->do_trm_F3) { /* terminate after F3, and convert surviving windows to hits */
+ for(h = 0; h < nwin; h++) {
+ /* create a hit from each window to be output at end of run, we do this (as opposed to
+ * just outputting info on windows *here*) so that we can use our machinery for removing
+ * overlaps later before we output.
+ */
+ cm_tophits_CreateNextHit(hitlist, &hit);
+ hit->start = ws[h];
+ hit->stop = we[h];
+ hit->root = -1; /* irrelevant in HMM only hit */
+ hit->mode = TRMODE_J; /* irrelevant */
+ hit->score = wb[h];
+
+ hit->cm_idx = pli->cur_cm_idx;
+ hit->clan_idx = pli->cur_clan_idx;
+ hit->seq_idx = pli->cur_seq_idx;
+ hit->pass_idx = pli->cur_pass_idx;
+ hit->pvalue = 0.; /* irrelevant */
+ hit->srcL = sq->L; /* this may be -1, in which case it will be updated by caller (cmsearch or cmscan) when full length is known */
+
+ hit->hmmonly = TRUE;
+ hit->glocal = FALSE; /* all HMM hits are local */
+ hit->bias = 0.; /* irrelevant */
+ hit->evalue = 0.; /* irrelevant */
+ hit->has_evalue = FALSE;
+ hit->ad = NULL;
+
+ if (pli->mode == CM_SEARCH_SEQS) {
+ if ( (status = esl_strdup(sq->name, -1, &(hit->name))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
+ if (sq->acc[0] != '\0' && (status = esl_strdup(sq->acc, -1, &(hit->acc))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
+ /* special for do_trm_F3: description gets overwritten as query name */
+ if ((status = esl_strdup(om->name, -1, &(hit->desc))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
+ }
+ else { /* SCAN mode */
+ if ((status = esl_strdup(om->name, -1, &(hit->name))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
+ if ((status = esl_strdup(om->acc, -1, &(hit->acc))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
+ /* special for do_trm_F3: description gets overwritten as query name */
+ if ((status = esl_strdup(sq->name, -1, &(hit->desc))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
+ }
+ }
+ }
+ else {
#if eslDEBUGLEVEL >= 3
- printf("\nPIPELINE calling p7_env_def() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
+ printf("\nPIPELINE calling p7_env_def() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
#endif
- if((status = pli_p7_env_def(pli, om, bg, p7_evparam, sq2search, ws, we, nwin, opt_hmm, opt_gm, opt_Rgm, opt_Lgm, opt_Tgm, &p7es, &p7ee, &np7env)) != eslOK) return status;
- if(pli->do_time_F1 || pli->do_time_F2 || pli->do_time_F3) return status;
+ if((status = pli_p7_env_def(pli, om, bg, p7_evparam, sq2search, ws, we, nwin, opt_hmm, opt_gm, opt_Rgm, opt_Lgm, opt_Tgm, &(p7esAA[p]), &(p7eeAA[p]), &(p7ebAA[p]), &(np7envA[p]))) != eslOK) return status;
+ }
+ } /* end of if(pli->do_edef) */
+ } /* end of 'else' entered if p != PLI_PASS_HMM_ONLY_ANY */
+ if(ws != NULL) { free(ws); ws = NULL; }
+ if(we != NULL) { free(we); we = NULL; }
+ if(wb != NULL) { free(wb); wb = NULL; }
+ nwin = 0;
+ } /* end of 'for(p = PLI_PASS_STD_ANY; p <= PLI_NPASSES; p++)', first loop over pipeline passes */
+
+ if(pli->do_one_cmpass) {
+ winning_pass = -1;
+ /* if following criteria are met, only perform CM stages below with best scoring pass:
+ * C1. all passes have 0 or 1 envelopes
+ * C2. all envelopes encompass the full sequence
+ */
+ for(p = PLI_PASS_STD_ANY; p < NPLI_PASSES; p++) {
+ if(np7envA[p] == 1) {
+ if(p7esAA[p][0] == 1 && p7eeAA[p][0] == sq->L) {
+ if(winning_pass == -1 || p7ebAA[p][0] > winning_sc) {
+ winning_pass = p;
+ winning_sc = p7ebAA[p][0];
+ }
+ }
+ else {
+ p = NPLI_PASSES + 1; /* serves as a flag that we violated our criteria (C2 in this case) */
+ }
+ }
+ else if(np7envA[p] > 1) {
+ p = NPLI_PASSES + 1; /* serves as a flag that we violated our criteria (C1 in this case) */
+ }
+ }
+ }
- if(pli->do_fcyk) {
-#if eslDEBUGLEVEL >= 3
- printf("\nPIPELINE calling pli_cyk_env_filter() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
-#endif
- if((status = pli_cyk_env_filter(pli, cm_offset, sq2search, p7es, p7ee, np7env, opt_cm, &es, &ee, &nenv)) != eslOK) return status;
- if(pli->do_time_F4 || pli->do_time_F5) return status;
- }
- else { /* defined envelopes with HMM, but CYK filter is off: act as if p7-defined envelopes survived CYK */
- ESL_ALLOC(es, sizeof(int64_t) * np7env);
- ESL_ALLOC(ee, sizeof(int64_t) * np7env);
- for(i = 0; i < np7env; i++) { es[i] = p7es[i]; ee[i] = p7ee[i]; }
- nenv = np7env;
- }
+ /* Second loop over each pipeline pass:
+ * Complete all CM-based calculations.
+ */
+ for(p = PLI_PASS_STD_ANY; p < NPLI_PASSES; p++) { /* p will go from 1..6 */
+ if(pli->do_trm_F3) continue;
+ if(winning_pass != -1 && p != winning_pass) continue;
+ if(p == PLI_PASS_STD_ANY && (! do_pass_std_any)) continue;
+ if(p == PLI_PASS_5P_ONLY_FORCE && (! do_pass_5p_only_force)) continue;
+ if(p == PLI_PASS_3P_ONLY_FORCE && (! do_pass_3p_only_force)) continue;
+ if(p == PLI_PASS_5P_AND_3P_FORCE && (! do_pass_5p_and_3p_force)) continue;
+ if(p == PLI_PASS_5P_AND_3P_ANY && (! do_pass_5p_and_3p_any)) continue;
+ if(p == PLI_PASS_HMM_ONLY_ANY) continue; /* we already handled this pass completely in the first loop over passes above */
+
+ /* if we know there's no windows that pass local Fwd (F3), our terminal (or full) seqs won't have any either, continue */
+ if(p != PLI_PASS_STD_ANY && p != PLI_PASS_HMM_ONLY_ANY && nwin_pass_std_any == 0 && (! pli->do_max)) continue;
+
+ /* set sq2search and remember start_offset as we did above in first loop over passes, but we don't have to create term5sq and term3sq again */
+ start_offset = 0;
+ if(p == PLI_PASS_STD_ANY || p == PLI_PASS_5P_AND_3P_FORCE || p == PLI_PASS_5P_AND_3P_ANY || p == PLI_PASS_HMM_ONLY_ANY || sq->n <= pli->maxW) {
+ sq2search = sq;
+ }
+ else if(p == PLI_PASS_5P_ONLY_FORCE) { /* research first (5') pli->maxW residues */
+ sq2search = term5sq;
+ }
+ else if(p == PLI_PASS_3P_ONLY_FORCE) { /* research first (5') pli->maxW residues */
+ sq2search = term3sq;
+ start_offset = sq->n - pli->maxW;
+ }
+ pli->cur_pass_idx = p; /* pipeline stages will use this to modify pass-specific behavior as necessary */
+
+ /* 3 ways to determine the envelopes to pass to the Final CM stage:
+ * 1. Banded CYK on the envelopes defined by the p7 HMM in the pipeline pass above (if pli->do_edef == TRUE)
+ * 2. Using CYK to define envelopes on full sequences (if pli->do_edef == FALSE && pli->fcyk = TRUE)
+ * 3. Each full seq is an envelope to be examined by the Final stage (no filters, if pli->do_edef == FALSE && pli->fcyk = FALSE)
+ */
+
+ /* 1. Banded CYK on the envelopes defined by the p7 HMM in the pipeline pass above (if pli->do_edef == TRUE) */
+ if(pli->do_edef) {
+ if(pli->do_fcyk) {
+ #if eslDEBUGLEVEL >= 3
+ printf("\nPIPELINE calling pli_cyk_env_filter() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
+ #endif
+ if((status = pli_cyk_env_filter(pli, cm_offset, sq2search, p7esAA[p], p7eeAA[p], np7envA[p], opt_cm, &es, &ee, &nenv)) != eslOK) return status;
+ if(pli->do_time_F4 || pli->do_time_F5) return status;
}
- /* end of '1. using a p7 hmm (if pli->do_edef == TRUE)' */
- /********************************************************************************************************/
- /* 2. using CYK (if pli->do_edef == FALSE && pli->fcyk = TRUE) */
- else if(pli->do_fcyk) {
- /* Defining envelopes with CYK */
+ else { /* defined envelopes with HMM, but CYK filter is off: act as if all p7-defined envelopes survived CYK */
+ ESL_ALLOC(es, sizeof(int64_t) * ESL_MAX(1, np7envA[p])); // avoid 0 malloc
+ ESL_ALLOC(ee, sizeof(int64_t) * ESL_MAX(1, np7envA[p]));
+ for(i = 0; i < np7envA[p]; i++) { es[i] = p7esAA[p][i]; ee[i] = p7eeAA[p][i]; }
+ nenv = np7envA[p];
+ }
+ }
+ /* 2. Using CYK to define envelopes on full sequences (if pli->do_edef == FALSE && pli->fcyk = TRUE) */
+ else if((! pli->do_edef) && pli->do_fcyk) {
+ /* Defining envelopes with CYK */
#if eslDEBUGLEVEL >= 3
- printf("\nPIPELINE calling pli_cyk_seq_filter() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
+ printf("\nPIPELINE calling pli_cyk_seq_filter() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
#endif
- if((status = pli_cyk_seq_filter(pli, cm_offset, sq2search, opt_cm, &es, &ee, &nenv)) != eslOK) return status;
- }
- /* end of '2. using CYK (if pli->do_edef == FALSE && pli->fcyk = TRUE)' */
- /********************************************************************************************************/
- /* 3. each full seq is an envelope (no filters, if pli->do_edef == FALSE && pli->fcyk = FALSE) */
- else {
- /* No filters, (pli->do_edef and pli->do_fcyk are both FALSE)
- * each full sequence becomes an 'envelope' to be searched in
- * the final stage.
- */
- ESL_ALLOC(es, sizeof(int64_t) * 1);
- ESL_ALLOC(ee, sizeof(int64_t) * 1);
- nenv = 1; es[0] = 1; ee[0] = sq2search->n;
- }
- /* end of '3. each full seq is an envelope (no filters, if pli->do_edef == FALSE && pli->fcyk = FALSE)' */
- /********************************************************************************************************/
- if(pli->do_time_F6) return status;
+ if((status = pli_cyk_seq_filter(pli, cm_offset, sq2search, opt_cm, &es, &ee, &nenv)) != eslOK) return status;
+ }
+ /* 3. Each full seq is an envelope to be examined by the Final stage (no filters, if pli->do_edef == FALSE && pli->fcyk = FALSE) */
+ else {
+ ESL_ALLOC(es, sizeof(int64_t) * 1);
+ ESL_ALLOC(ee, sizeof(int64_t) * 1);
+ nenv = 1; es[0] = 1; ee[0] = sq2search->n;
+ }
+ if(pli->do_time_F6) return status;
- /* Filters are finished. Final stage of pipeline (always run).
- */
+ /* Filters are finished. Final stage of pipeline (always run).
+ */
#if eslDEBUGLEVEL >= 3
- printf("\nPIPELINE calling FinalStage() %s %" PRId64 " residues (pass: %d)\n", sq2search->name, sq2search->n, p);
+ printf("\nPIPELINE calling FinalStage() %s %" PRId64 " residues model: %s (pass: %d) nhits: %" PRId64 "\n", sq2search->name, sq2search->n, om->name, p, hitlist->N);
#endif
- prv_ntophits = hitlist->N;
- if((status = pli_final_stage(pli, cm_offset, sq2search, es, ee, nenv, hitlist, opt_cm)) != eslOK) return status;
-
- /* if we're researching a 3' terminus, adjust the start/stop
- * positions so they are relative to the actual 5' start
- */
- if(hitlist->N > prv_ntophits) {
- if(start_offset != 0) { /* this will only be non-zero if we're in pass PLI_PASS_3P_ONLY_FORCE */
- for(h = prv_ntophits; h < hitlist->N; h++) {
- hitlist->unsrt[h].start += start_offset;
- hitlist->unsrt[h].stop += start_offset;
- if(hitlist->unsrt[h].ad != NULL) {
- hitlist->unsrt[h].ad->sqfrom += start_offset;
- hitlist->unsrt[h].ad->sqto += start_offset;
- }
- }
- }
+ prv_ntophits = hitlist->N;
+ if((status = pli_final_stage(pli, cm_offset, sq2search, es, ee, nenv, hitlist, opt_cm)) != eslOK) return status;
+#if eslDEBUGLEVEL >= 3
+ printf("\nPIPELINE back from FinalStage() %s %" PRId64 " residues model: %s (pass: %d) nhits: %" PRId64 "\n", sq2search->name, sq2search->n, om->name, p, hitlist->N);
+#endif
+
+ /* if we're researching a 3' terminus, adjust the start/stop
+ * positions so they are relative to the actual 5' start
+ */
+ if(hitlist->N > prv_ntophits) {
+ if(start_offset != 0) { /* this will only be non-zero if we're in pass PLI_PASS_3P_ONLY_FORCE */
+ for(h = prv_ntophits; h < hitlist->N; h++) {
+ hitlist->unsrt[h].start += start_offset;
+ hitlist->unsrt[h].stop += start_offset;
+ if(hitlist->unsrt[h].ad != NULL) {
+ hitlist->unsrt[h].ad->sqfrom += start_offset;
+ hitlist->unsrt[h].ad->sqto += start_offset;
+ }
+ }
}
- } /* end of else entered if (p != PLI_PASS_HMM_ONLY_ANY) */
+ }
+ if(es != NULL) { free(es); es = NULL; }
+ if(ee != NULL) { free(ee); ee = NULL; }
+ nenv = 0;
+ } /* end of 'for(p = PLI_PASS_STD_ANY; p <= PLI_NPASSES; p++)', second loop over pipeline passes */
- if(ws != NULL) { free(ws); ws = NULL; }
- if(we != NULL) { free(we); we = NULL; }
- if(p7es != NULL) { free(p7es); p7es = NULL; }
- if(p7ee != NULL) { free(p7ee); p7ee = NULL; }
- if(es != NULL) { free(es); es = NULL; }
- if(ee != NULL) { free(ee); ee = NULL; }
- nwin = np7env = nenv = 0;
+ if(np7envA != NULL) free(np7envA);
+ for(p = 0; p < NPLI_PASSES; p++) {
+ if(p7esAA && p7esAA[p]) free(p7esAA[p]);
+ if(p7eeAA && p7eeAA[p]) free(p7eeAA[p]);
+ if(p7ebAA && p7ebAA[p]) free(p7ebAA[p]);
}
+ if(p7esAA) free(p7esAA);
+ if(p7eeAA) free(p7eeAA);
+ if(p7ebAA) free(p7ebAA);
if(term5sq != NULL) esl_sq_Destroy(term5sq);
if(term3sq != NULL) esl_sq_Destroy(term3sq);
@@ -1477,13 +1692,21 @@ int
cm_pli_Statistics(FILE *ofp, CM_PIPELINE *pli, ESL_STOPWATCH *w)
{
if(pli->nmodels > 0 && pli->be_verbose) { /* print stats out for each stage */
- pli_pass_statistics(ofp, pli, PLI_PASS_STD_ANY); fprintf(ofp, "\n");
+ if(! pli->do_trunc_only) {
+ pli_pass_statistics(ofp, pli, PLI_PASS_STD_ANY); fprintf(ofp, "\n");
+ }
if(pli->do_trunc_ends) {
pli_pass_statistics(ofp, pli, PLI_PASS_5P_ONLY_FORCE); fprintf(ofp, "\n");
pli_pass_statistics(ofp, pli, PLI_PASS_3P_ONLY_FORCE); fprintf(ofp, "\n");
pli_pass_statistics(ofp, pli, PLI_PASS_5P_AND_3P_FORCE); fprintf(ofp, "\n");
}
- else if(pli->do_trunc_any) {
+ else if(pli->do_trunc_5p_ends) {
+ pli_pass_statistics(ofp, pli, PLI_PASS_5P_ONLY_FORCE); fprintf(ofp, "\n");
+ }
+ else if(pli->do_trunc_3p_ends) {
+ pli_pass_statistics(ofp, pli, PLI_PASS_3P_ONLY_FORCE); fprintf(ofp, "\n");
+ }
+ else if(pli->do_trunc_any || pli->do_trunc_only) {
pli_pass_statistics(ofp, pli, PLI_PASS_5P_AND_3P_ANY); fprintf(ofp, "\n");
}
}
@@ -1573,9 +1796,15 @@ pli_pass_statistics(FILE *ofp, CM_PIPELINE *pli, int pass_idx)
nres_researched);
}
else {
- fprintf(ofp, "Target sequences re-searched for truncated hits: %15" PRId64 " (%" PRId64 " residues re-searched)\n",
- (pli->do_trunc_ends || pli->do_trunc_any) ? pli->nseqs : 0,
- nres_researched);
+ if(pli->do_trunc_only) {
+ fprintf(ofp, "Target sequences searched for truncated hits: %15" PRId64 " (%" PRId64 " residues searched)\n",
+ pli->nseqs, nres_researched);
+ }
+ else {
+ fprintf(ofp, "Target sequences re-searched for truncated hits: %15" PRId64 " (%" PRId64 " residues re-searched)\n",
+ (pli->do_trunc_ends || pli->do_trunc_any || pli->do_trunc_5p_ends || pli->do_trunc_3p_ends) ? pli->nseqs : 0,
+ nres_researched);
+ }
}
}
} else { /* SCAN mode */
@@ -1598,7 +1827,7 @@ pli_pass_statistics(FILE *ofp, CM_PIPELINE *pli, int pass_idx)
}
else {
fprintf(ofp, "Query sequences re-searched for truncated hits: %15" PRId64 " (%.1f residues re-searched, avg per model)\n",
- (pli->do_trunc_ends || pli->do_trunc_any) ? pli->nseqs : 0,
+ (pli->do_trunc_ends || pli->do_trunc_any || pli->do_trunc_only || pli->do_trunc_5p_ends || pli->do_trunc_3p_ends) ? pli->nseqs : 0,
(float) nres_researched / (float) pli->nmodels);
}
}
@@ -1742,7 +1971,15 @@ pli_pass_statistics(FILE *ofp, CM_PIPELINE *pli, int pass_idx)
n_output_trunc = pli->acct[PLI_PASS_5P_ONLY_FORCE].n_output + pli->acct[PLI_PASS_3P_ONLY_FORCE].n_output + pli->acct[PLI_PASS_5P_AND_3P_FORCE].n_output;
pos_output_trunc = pli->acct[PLI_PASS_5P_ONLY_FORCE].pos_output + pli->acct[PLI_PASS_3P_ONLY_FORCE].pos_output + pli->acct[PLI_PASS_5P_AND_3P_FORCE].pos_output;
}
- else if(pli->do_trunc_any) {
+ else if(pli->do_trunc_5p_ends) {
+ n_output_trunc = pli->acct[PLI_PASS_5P_ONLY_FORCE].n_output;
+ pos_output_trunc = pli->acct[PLI_PASS_5P_ONLY_FORCE].pos_output;
+ }
+ else if(pli->do_trunc_3p_ends) {
+ n_output_trunc = pli->acct[PLI_PASS_3P_ONLY_FORCE].n_output;
+ pos_output_trunc = pli->acct[PLI_PASS_3P_ONLY_FORCE].pos_output;
+ }
+ else if(pli->do_trunc_any || pli->do_trunc_only) {
n_output_trunc = pli->acct[PLI_PASS_5P_AND_3P_ANY].n_output;
pos_output_trunc = pli->acct[PLI_PASS_5P_AND_3P_ANY].pos_output;
}
@@ -2102,6 +2339,33 @@ cm_pli_PassAllowsTruncation(int pass_idx)
return FALSE;
}
+/* Function: cm_pli_AdjustNresForOverlaps()
+ * Incept: EPN, Wed Nov 19 09:20:17 2014
+ *
+ * Purpose: Update <nres_top> or <nres_bot> values in a CM_PIPELINE
+ * <pli> to account for overlapping windows from previous pipeline
+ * passes. Only certain passes are affected, all others can
+ * never search overlaps. If <in_rc> is TRUE we adjust <nres_bot>,
+ * else we adjust <nres_top>.
+ *
+ * Returns: void.
+ */
+void
+cm_pli_AdjustNresForOverlaps(CM_PIPELINE *pli, int64_t noverlap, int in_rc)
+{
+ if(in_rc) {
+ if(! pli->do_hmmonly_cur) pli->acct[PLI_PASS_STD_ANY].nres_bot -= noverlap;
+ else pli->acct[PLI_PASS_HMM_ONLY_ANY].nres_bot -= noverlap;
+ if(pli->do_trunc_any || pli->do_trunc_only) pli->acct[PLI_PASS_5P_AND_3P_ANY].nres_bot -= noverlap;
+ }
+ else {
+ if(! pli->do_hmmonly_cur) pli->acct[PLI_PASS_STD_ANY].nres_top -= noverlap;
+ else pli->acct[PLI_PASS_HMM_ONLY_ANY].nres_top -= noverlap;
+ if(pli->do_trunc_any || pli->do_trunc_only) pli->acct[PLI_PASS_5P_AND_3P_ANY].nres_top -= noverlap;
+ }
+ return;
+}
+
/*------------------- end, pipeline API -------------------------*/
@@ -2145,33 +2409,34 @@ cm_pli_PassAllowsTruncation(int pass_idx)
* Xref: J4/25.
*/
int
-pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_MSVDATA *msvdata, const ESL_SQ *sq, int64_t **ret_ws, int64_t **ret_we, int *ret_nwin)
+pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_SCOREDATA *msvdata, const ESL_SQ *sq, int64_t **ret_ws, int64_t **ret_we, float **ret_wb, int *ret_nwin)
{
int status;
- float mfsc, vfsc, fwdsc;/* filter scores */
- float filtersc; /* HMM null filter score */
- int have_filtersc; /* TRUE if filtersc has been calc'ed for current window */
- float nullsc; /* null model score */
- float wsc; /* the corrected bit score for a window */
- double P; /* P-value of a hit */
- int i, i2; /* counters */
- int wlen; /* length of current window */
- void *p; /* for ESL_RALLOC */
- int *useme = NULL; /* used when merging overlapping windows */
- int overlap; /* number of overlapping positions b/t 2 adjacent windows */
- int **survAA = NULL; /* [0..s..Np7_SURV-1][0..i..nwin-1] TRUE if window i survived stage s */
- int nalloc; /* currently allocated size for ws, we */
- int64_t *ws = NULL; /* [0..nwin-1] window start positions */
- int64_t *we = NULL; /* [0..nwin-1] window end positions */
- double *wp = NULL; /* [0..nwin-1] window P-values, P-value of furthest-reached filter algorithm */
- int nwin; /* number of windows */
- int64_t *new_ws = NULL; /* used when copying/modifying ws */
- int64_t *new_we = NULL; /* used when copying/modifying we */
- int nsurv_fwd; /* number of windows that survive fwd filter */
- int new_nsurv_fwd; /* used when merging fwd survivors */
- ESL_DSQ *subdsq; /* a ptr to the first position of a window */
- int have_rest; /* do we have the full <om> read in? */
- P7_HMM_WINDOWLIST wlist; /* list of windows, structure taken by p7_MSVFilter_longtarget() */
+ float mfsc, vfsc, fwdsc; /* filter scores */
+ float filtersc; /* HMM null filter score */
+ int have_filtersc; /* TRUE if filtersc has been calc'ed for current window */
+ float nullsc; /* null model score */
+ float wsc; /* the corrected bit score for a window */
+ double P; /* P-value of a hit */
+ int i, i2; /* counters */
+ int wlen; /* length of current window */
+ void *p; /* for ESL_RALLOC */
+ int *useme = NULL; /* used when merging overlapping windows */
+ int overlap; /* number of overlapping positions b/t 2 adjacent windows */
+ int **survAA = NULL; /* [0..s..Np7_SURV-1][0..i..nwin-1] TRUE if window i survived stage s */
+ int nalloc; /* currently allocated size for ws, we */
+ int64_t *ws = NULL; /* [0..nwin-1] window start positions */
+ int64_t *we = NULL; /* [0..nwin-1] window end positions */
+ double *wp = NULL; /* [0..nwin-1] window P-value of furthest-reached filter alg, not valid until Vit (invalid for F1, F1b) */
+ float *wb = NULL; /* [0..nwin-1] window bit score of furthest-reached filter alg, not valid until Vit (invalid for F1, F1b) */
+ int nwin; /* number of windows */
+ int64_t *new_ws = NULL; /* used when copying/modifying ws */
+ int64_t *new_we = NULL; /* used when copying/modifying we */
+ float *new_wb = NULL; /* used when copying/modifying wb */
+ int nsurv_fwd; /* number of windows that survive fwd filter */
+ ESL_DSQ *subdsq; /* a ptr to the first position of a window */
+ int have_rest; /* do we have the full <om> read in? */
+ P7_HMM_WINDOWLIST wlist; /* list of windows, structure taken by p7_MSVFilter_longtarget() */
int save_max_length = om->max_length;
/* filter thresholds and on/off parameters, these will normally be set to
@@ -2214,10 +2479,10 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
nwin = 0;
/***************************************************/
- /* Filter 1: MSV, long target-variant, with p7 HMM */
+ /* Filter 1: SSV, long target-variant, with p7 HMM */
if(cur_do_msv) {
p7_hmmwindow_init(&wlist);
- status = p7_MSVFilter_longtarget(sq->dsq, sq->n, om, pli->oxf, msvdata, bg, cur_F1, &wlist);
+ status = p7_SSVFilter_longtarget(sq->dsq, sq->n, om, pli->oxf, msvdata, bg, cur_F1, &wlist);
if(wlist.count > 0) {
/* In scan mode, if at least one window passes the MSV filter, read the rest of the profile */
@@ -2228,15 +2493,15 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
have_rest = TRUE;
}
if(msvdata->prefix_lengths == NULL && msvdata->suffix_lengths == NULL) {
- p7_hmm_MSVDataComputeRest(om, msvdata);
+ p7_hmm_ScoreDataComputeRest(om, msvdata);
/* only call *ComputeRest() if we haven't already (we may have
* already in a previous pipeline pass).
*/
}
- p7_pli_ExtendAndMergeWindows(om, msvdata, &wlist, sq->n, 0.0);
+ p7_pli_ExtendAndMergeWindows(om, msvdata, &wlist, 0.0);
}
- ESL_ALLOC(ws, sizeof(int64_t) * wlist.count);
- ESL_ALLOC(we, sizeof(int64_t) * wlist.count);
+ ESL_ALLOC(ws, sizeof(int64_t) * ESL_MAX(1, wlist.count)); // avoid 0 malloc
+ ESL_ALLOC(we, sizeof(int64_t) * ESL_MAX(1, wlist.count));
nwin = wlist.count;
for(i = 0; i < nwin; i++) {
ws[i] = wlist.windows[i].n;
@@ -2301,17 +2566,19 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
}
pli->acct[pli->cur_pass_idx].n_past_msv += nwin;
- ESL_ALLOC(wp, sizeof(double) * nwin);
- for(i = 0; i < nwin; i++) { wp[i] = cur_F1; } /* TEMP (?) p7_MSVFilter_longtarget() does not return P-values */
-
/*********************************************/
/* allocate and initialize survAA, which will keep track of number of windows surviving each stage */
ESL_ALLOC(survAA, sizeof(int *) * Np7_SURV);
for (i = 0; i < Np7_SURV; i++) {
- ESL_ALLOC(survAA[i], sizeof(int) * nwin);
+ ESL_ALLOC(survAA[i], sizeof(int) * ESL_MAX(1, nwin)); // avoid 0 mallocs
esl_vec_ISet(survAA[i], nwin, FALSE);
}
+ ESL_ALLOC(wp, sizeof(double) * ESL_MAX(1, nwin)); // avoid 0 mallocs
+ ESL_ALLOC(wb, sizeof(float) * ESL_MAX(1, nwin));
+ for (i = 0; i < nwin; i++) { wp[i] = 1.0; }
+ for (i = 0; i < nwin; i++) { wb[i] = -999.0; }
+
for (i = 0; i < nwin; i++) {
subdsq = sq->dsq + ws[i] - 1;
have_filtersc = FALSE;
@@ -2321,7 +2588,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
p7_bg_NullOne (bg, subdsq, wlen, &nullsc);
#if eslDEBUGLEVEL >= 3
- if(cur_do_msv) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived SSV %6.2f bits P %g\n", i, ws[i], we[i], 0., wp[i]);
+ if(cur_do_msv) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived SSV ? bits ? P\n", i, ws[i], we[i]);
#endif
survAA[p7_SURV_F1][i] = TRUE;
@@ -2344,11 +2611,12 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
/******************************************************************************/
}
+
pli->acct[pli->cur_pass_idx].n_past_msvbias++;
survAA[p7_SURV_F1b][i] = TRUE;
#if eslDEBUGLEVEL >= 3
- if(cur_do_msv && cur_do_msvbias) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived MSV-Bias %6.2f bits P %g\n", i, ws[i], we[i], 0., wp[i]);
+ if(cur_do_msv && cur_do_msvbias) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived MSV-Bias ? bits P ?\n", i, ws[i], we[i]);
#endif
if(pli->do_time_F1) return eslOK;
@@ -2373,16 +2641,17 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
/* Filter 2: Viterbi with p7 HMM */
/* Second level filter: ViterbiFilter(), multihit with <om> */
p7_ViterbiFilter(subdsq, wlen, om, pli->oxf, &vfsc);
- wsc = (vfsc - nullsc) / eslCONST_LOG2;
- P = esl_gumbel_surv(wsc, p7_evparam[CM_p7_LVMU], p7_evparam[CM_p7_LVLAMBDA]);
+ wsc = (vfsc - nullsc) / eslCONST_LOG2;
+ P = esl_gumbel_surv(wsc, p7_evparam[CM_p7_LVMU], p7_evparam[CM_p7_LVLAMBDA]);
wp[i] = P;
+ wb[i] = wsc;
if (P > cur_F2) continue;
}
pli->acct[pli->cur_pass_idx].n_past_vit++;
survAA[p7_SURV_F2][i] = TRUE;
#if eslDEBUGLEVEL >= 3
- if (cur_do_vit) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Vit %6.2f bits P %g\n", i, ws[i], we[i], wsc, wp[i]);
+ if (cur_do_vit) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Vit %6.2f bits P %g\n", i, ws[i], we[i], wb[i], wp[i]);
#endif
/********************************************/
@@ -2394,6 +2663,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
wsc = (vfsc - filtersc) / eslCONST_LOG2;
P = esl_gumbel_surv(wsc, p7_evparam[CM_p7_LVMU], p7_evparam[CM_p7_LVLAMBDA]);
wp[i] = P;
+ wb[i] = wsc;
if (P > cur_F2b) continue;
/******************************************************************************/
}
@@ -2401,7 +2671,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
survAA[p7_SURV_F2b][i] = TRUE;
#if eslDEBUGLEVEL >= 3
- if (cur_do_vit && cur_do_vitbias) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Vit-Bias %6.2f bits P %g\n", i, ws[i], we[i], wsc, wp[i]);
+ if (cur_do_vit && cur_do_vitbias) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Vit-Bias %6.2f bits P %g\n", i, ws[i], we[i], wb[i], wp[i]);
#endif
if(pli->do_time_F2) continue;
/********************************************/
@@ -2414,14 +2684,15 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
wsc = (fwdsc - nullsc) / eslCONST_LOG2;
P = esl_exp_surv(wsc, p7_evparam[CM_p7_LFTAU], p7_evparam[CM_p7_LFLAMBDA]);
wp[i] = P;
+ wb[i] = wsc;
if (P > cur_F3) continue;
}
/******************************************************************************/
pli->acct[pli->cur_pass_idx].n_past_fwd++;
survAA[p7_SURV_F3][i] = TRUE;
-#if eslDEBUGLEVEL >= 3
- if(cur_do_fwd) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Fwd %6.2f bits P %g\n", i, ws[i], we[i], wsc, wp[i]);
+#if eslDEBUGLEVEL >= 3
+ if(cur_do_fwd) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Fwd %6.2f bits P %g\n", i, ws[i], we[i], wb[i], wp[i]);
#endif
if (cur_do_fwd && cur_do_fwdbias) {
@@ -2432,6 +2703,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
wsc = (fwdsc - filtersc) / eslCONST_LOG2;
P = esl_exp_surv(wsc, p7_evparam[CM_p7_LFTAU], p7_evparam[CM_p7_LFLAMBDA]);
wp[i] = P;
+ wb[i] = wsc;
if (P > cur_F3b) continue;
/******************************************************************************/
}
@@ -2439,10 +2711,9 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
nsurv_fwd++;
survAA[p7_SURV_F3b][i] = TRUE;
-#if eslDEBUGLEVEL >= 3
- if(cur_do_fwd && cur_do_fwdbias) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Fwd-Bias %6.2f bits P %g\n", i, ws[i], we[i], wsc, wp[i]);
+#if eslDEBUGLEVEL >= 3
+ if(cur_do_fwd && cur_do_fwdbias) printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived Fwd-Bias %6.2f bits P %g\n", i, ws[i], we[i], wb[i], wp[i]);
#endif
- if(pli->do_time_F3) continue;
}
/* Go back through all windows, and tally up total number of
@@ -2479,15 +2750,16 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
if(nsurv_fwd > 0) {
ESL_ALLOC(new_ws, sizeof(int64_t) * nsurv_fwd);
ESL_ALLOC(new_we, sizeof(int64_t) * nsurv_fwd);
+ ESL_ALLOC(new_wb, sizeof(float) * nsurv_fwd);
for (i = 0, i2 = 0; i < nwin; i++) {
if(survAA[p7_SURV_F3b][i]) {
new_ws[i2] = ws[i];
new_we[i2] = we[i];
+ new_wb[i2] = wb[i];
i2++;
}
}
/* we could have overlapping windows, merge those that do overlap */
- new_nsurv_fwd = 0;
ESL_ALLOC(useme, sizeof(int) * nsurv_fwd);
esl_vec_ISet(useme, nsurv_fwd, FALSE);
i2 = 0;
@@ -2497,6 +2769,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
while((i2 < nsurv_fwd) && ((new_we[i]+1) >= (new_ws[i2]))) {
useme[i2] = FALSE;
new_we[i] = new_we[i2]; /* merged i with i2, rewrite end for i */
+ new_wb[i] = ESL_MAX(new_wb[i], new_wb[i2]); /* keep higher score */
i2++;
}
i = i2-1;
@@ -2506,6 +2779,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
if(useme[i]) {
new_ws[i2] = new_ws[i];
new_we[i2] = new_we[i];
+ new_wb[i2] = new_wb[i];
i2++;
}
}
@@ -2514,13 +2788,16 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
free(ws); ws = NULL;
free(we); we = NULL;
free(wp); wp = NULL;
+ free(wb); wb = NULL;
ws = new_ws;
we = new_we;
- }
+ wb = new_wb;
+ } /* end of 'if(nsurv_fwd > 0)' */
else {
if(ws != NULL) free(ws); ws = NULL;
if(we != NULL) free(we); we = NULL;
if(wp != NULL) free(wp); wp = NULL;
+ if(wb != NULL) free(wb); wb = NULL;
}
if(survAA != NULL) {
@@ -2532,6 +2809,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
*ret_ws = ws;
*ret_we = we;
+ *ret_wb = wb;
*ret_nwin = nsurv_fwd;
return eslOK;
@@ -2579,7 +2857,7 @@ pli_p7_filter(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P
*/
int
pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, const ESL_SQ *sq, int64_t *ws, int64_t *we, int nwin,
- P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, int64_t **ret_es, int64_t **ret_ee, int *ret_nenv)
+ P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, int64_t **ret_es, int64_t **ret_ee, float **ret_eb, int *ret_nenv)
{
int status;
double P; /* P-value of a hit */
@@ -2593,10 +2871,7 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
int64_t wlen; /* window length of current window */
int64_t *es = NULL; /* [0..nenv-1] envelope start positions */
int64_t *ee = NULL; /* [0..nenv-1] envelope end positions */
- /* esc, epp, and ead are only filled if pli->cur_pass_idx == PLI_PASS_HMM_ONLY_CUR */
- float *esc = NULL; /* [0..nenv-1] scores of envelopes */
- float *epp = NULL; /* [0..nenv-1] average PP of aligned residues in ead[] */
- P7_ALIDISPLAY **ead = NULL; /* [0..nenv-1] ptr to P7_ALIDISPLAY of each surviving envelope */
+ float *eb = NULL; /* [0..nenv-1] envelope end positions */
int nenv; /* number of surviving envelopes */
int nenv_alloc; /* current size of es, ee */
ESL_DSQ *subdsq; /* a ptr to the first position of a window */
@@ -2621,19 +2896,21 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
if (nwin == 0) {
*ret_es = NULL;
*ret_ee = NULL;
+ *ret_eb = NULL;
*ret_nenv = 0;
return eslOK; /* if there's no windows to search in, return */
}
/* Will we use local envelope definition? Only if we're in the
* special pipeline pass where we allow any truncated hits (only
- * possibly true if pli->do_trunc_any is TRUE).
+ * possibly true if pli->do_trunc_any or pli->do_trunc_only is TRUE).
*/
do_local_envdef = (pli->cur_pass_idx == PLI_PASS_5P_AND_3P_ANY) ? TRUE : FALSE;
nenv_alloc = nwin;
- ESL_ALLOC(es, sizeof(int64_t) * nenv_alloc);
- ESL_ALLOC(ee, sizeof(int64_t) * nenv_alloc);
+ ESL_ALLOC(es, sizeof(int64_t) * ESL_MAX(1, nenv_alloc)); // avoid 0 malloc
+ ESL_ALLOC(ee, sizeof(int64_t) * ESL_MAX(1, nenv_alloc));
+ ESL_ALLOC(eb, sizeof(float) * ESL_MAX(1, nenv_alloc));
nenv = 0;
seq = esl_sq_CreateDigital(sq->abc);
@@ -2721,7 +2998,8 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
p7_ForwardParser(seq->dsq, wlen, om, pli->oxf, NULL);
p7_omx_GrowTo(pli->oxb, om->M, 0, wlen);
p7_BackwardParser(seq->dsq, wlen, om, pli->oxf, pli->oxb, NULL);
- status = p7_domaindef_ByPosteriorHeuristics (seq, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, NULL, bg, FALSE);
+ status = p7_domaindef_ByPosteriorHeuristics (seq, NULL, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, bg, /*long_target=*/FALSE,
+ /*bg_tmp=*/NULL, /*scores_arr=*/NULL, /*fwd_emissions_arr=*/NULL);
}
else {
/* We're defining envelopes in glocal mode, so we need to fill
@@ -2793,7 +3071,7 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
pli->acct[pli->cur_pass_idx].n_past_gfwd++;
pli->acct[pli->cur_pass_idx].pos_past_gfwd += wlen;
-#if eslDEBUGLEVEL >= 3
+#if eslDEBUGLEVEL >= 3
printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived gFwd %6.2f bits P %g\n", i, ws[i], we[i], sc_for_pvalue, P);
#endif
@@ -2816,13 +3094,18 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
P = esl_exp_surv (sc_for_pvalue, p7_evparam[CM_p7_GFMU], p7_evparam[CM_p7_GFLAMBDA]);
}
if(P > pli->F4b) continue;
-#if eslDEBUGLEVEL >= 3
+#if eslDEBUGLEVEL >= 3
printf("SURVIVOR window %5d [%10" PRId64 "..%10" PRId64 "] survived gFwdBias %6.2f bits P %g\n", i, ws[i], we[i], sc_for_pvalue, P);
#endif
pli->acct[pli->cur_pass_idx].n_past_gfwdbias++;
pli->acct[pli->cur_pass_idx].pos_past_gfwdbias += wlen;
}
if(pli->do_time_F4) continue;
+ //if(pli->cur_pass_idx != PLI_PASS_STD_ANY) continue;
+ //if(pli->cur_pass_idx != PLI_PASS_5P_ONLY_FORCE) continue;
+ //if(pli->cur_pass_idx != PLI_PASS_3P_ONLY_FORCE) continue;
+ //if(pli->cur_pass_idx != PLI_PASS_5P_AND_3P_FORCE) continue;
+ //if(1) continue;
/* this block needs to match up with if..else if...else if...else block calling p7_GForward above */
if(use_Tgm) {
@@ -2932,15 +3215,12 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
nenv_alloc *= 2;
ESL_RALLOC(es, p, sizeof(int64_t) * nenv_alloc);
ESL_RALLOC(ee, p, sizeof(int64_t) * nenv_alloc);
- if(pli->cur_pass_idx == PLI_PASS_HMM_ONLY_ANY) {
- ESL_RALLOC(esc, p, sizeof(float) * nenv_alloc);
- ESL_RALLOC(epp, p, sizeof(float) * nenv_alloc);
- ESL_RALLOC(ead, p, sizeof(P7_ALIDISPLAY *) * nenv_alloc);
- } /* else they remain NULL */
+ ESL_RALLOC(eb, p, sizeof(float) * nenv_alloc);
}
/* Define envelope to search with CM */
es[nenv] = pli->ddef->dcl[d].ienv + ws[i] - 1;
ee[nenv] = pli->ddef->dcl[d].jenv + ws[i] - 1;
+ eb[nenv] = env_sc_for_pvalue;
nenv++;
}
@@ -2952,6 +3232,7 @@ pli_p7_env_def(CM_PIPELINE *pli, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam,
*ret_es = es;
*ret_ee = ee;
+ *ret_eb = eb;
*ret_nenv = nenv;
return eslOK;
@@ -3353,6 +3634,7 @@ pli_final_stage(CM_PIPELINE *pli, off_t cm_offset, const ESL_SQ *sq, int64_t *es
for (h = nhit; h < hitlist->N; h++) {
hit = &(hitlist->unsrt[h]);
hit->cm_idx = pli->cur_cm_idx;
+ hit->clan_idx = pli->cur_clan_idx;
hit->seq_idx = pli->cur_seq_idx;
hit->pass_idx = pli->cur_pass_idx;
hit->pvalue = esl_exp_surv(hit->score, cm->expA[pli->final_cm_exp_mode]->mu_extrap, cm->expA[pli->final_cm_exp_mode]->lambda);
@@ -3360,8 +3642,9 @@ pli_final_stage(CM_PIPELINE *pli, off_t cm_offset, const ESL_SQ *sq, int64_t *es
hit->glocal = (pli->final_cm_exp_mode == EXP_CM_GI || pli->final_cm_exp_mode == EXP_CM_GC) ? TRUE : FALSE;
/* initialize remaining values we don't know yet */
- hit->evalue = 0.;
- hit->ad = NULL;
+ hit->evalue = 0.;
+ hit->has_evalue = FALSE;
+ hit->ad = NULL;
if (pli->mode == CM_SEARCH_SEQS) {
if ( (status = esl_strdup(sq->name, -1, &(hit->name))) != eslOK) ESL_FAIL(eslEMEM, pli->errbuf, "allocation failure");
@@ -3549,7 +3832,8 @@ pli_final_stage_hmmonly(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_B
p7_ForwardParser(seq->dsq, wlen, om, pli->oxf, NULL);
p7_omx_GrowTo(pli->oxb, om->M, 0, wlen);
p7_BackwardParser(seq->dsq, wlen, om, pli->oxf, pli->oxb, NULL);
- status = p7_domaindef_ByPosteriorHeuristics (seq, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, NULL, bg, FALSE);
+ status = p7_domaindef_ByPosteriorHeuristics (seq, /*nt_seq=*/NULL, om, pli->oxf, pli->oxb, pli->fwd, pli->bck, pli->ddef, bg, /*long_target=*/FALSE,
+ /*bg_tmp=*/NULL, /*scores_arr=*/NULL, /*fwd_emissions_arr=*/NULL);
if (status != eslOK) ESL_FAIL(status, pli->errbuf, "envelope definition workflow failure"); /* eslERANGE can happen */
if (pli->ddef->nregions == 0) continue; /* score passed threshold but there's no discrete domains here */
@@ -3602,6 +3886,7 @@ pli_final_stage_hmmonly(CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_B
hit->score = dom_score;
hit->cm_idx = pli->cur_cm_idx;
+ hit->clan_idx = pli->cur_clan_idx;
hit->seq_idx = pli->cur_seq_idx;
hit->pass_idx = pli->cur_pass_idx;
hit->pvalue = esl_exp_surv (hit->score, p7_evparam[CM_p7_LFTAU], p7_evparam[CM_p7_LFLAMBDA]);
@@ -4009,7 +4294,7 @@ pli_scan_mode_read_cm(CM_PIPELINE *pli, off_t cm_offset, float *p7_evparam, int
if((status = cm_Configure(cm, pli->errbuf, W_from_cmdline)) != eslOK) goto ERROR;
/* update the pipeline about the model */
if((status = cm_pli_NewModel(pli, CM_NEWMODEL_CM, cm, cm->clen, cm->W, CMCountNodetype(cm, MATP_nd),
- NULL, NULL, p7_evparam, p7_max_length, pli->cur_cm_idx, NULL)) /* NULL: om, bg, glocal_kh */
+ NULL, NULL, p7_evparam, p7_max_length, pli->cur_cm_idx, pli->cur_clan_idx, NULL)) /* NULL: om, bg, glocal_kh */
!= eslOK) goto ERROR;
*ret_cm = cm;
@@ -4225,10 +4510,10 @@ merge_windows_from_two_lists(int64_t *ws1, int64_t *we1, double *wp1, int *wl1,
for(i2 = 0; i2 < nwin2; i2++) if(ws2[i2] > we2[i2]) return eslEINVAL;
nalloc = nwin1 + nwin2; /* we'll never exceed this */
- ESL_ALLOC(mws, sizeof(int64_t) * nalloc);
- ESL_ALLOC(mwe, sizeof(int64_t) * nalloc);
- ESL_ALLOC(mwp, sizeof(double) * nalloc);
- ESL_ALLOC(mwl, sizeof(int) * nalloc);
+ ESL_ALLOC(mws, sizeof(int64_t) * ESL_MAX(1, nalloc)); // avoid 0 malloc
+ ESL_ALLOC(mwe, sizeof(int64_t) * ESL_MAX(1, nalloc));
+ ESL_ALLOC(mwp, sizeof(double) * ESL_MAX(1, nalloc));
+ ESL_ALLOC(mwl, sizeof(int) * ESL_MAX(1, nalloc));
i1 = 0;
i2 = 0;
@@ -4329,8 +4614,8 @@ merge_windows_from_two_lists(int64_t *ws1, int64_t *we1, double *wp1, int *wl1,
*****************************************************************/
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_qdband.c b/src/cm_qdband.c
index 641769e..8af7d72 100644
--- a/src/cm_qdband.c
+++ b/src/cm_qdband.c
@@ -1,14 +1,14 @@
/* cm_qdband.c (formerly bandcyk.c)
*
* SRE, Wed Nov 20 07:46:56 2002 [flight home from Airlie mtg]
- * SVN $Id: cm_qdband.c 4034 2012-05-10 13:21:56Z nawrockie $
+ * SVN $Id$
*
* Banded CYK implementation.
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_submodel.c b/src/cm_submodel.c
index 9c99b38..a12a9a3 100644
--- a/src/cm_submodel.c
+++ b/src/cm_submodel.c
@@ -16,8 +16,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -429,7 +429,6 @@ map_orig2sub_cm_helper(CM_t *orig_cm, CM_t *sub_cm, CMSubMap_t *submap, int orig
{
int sub_nd;
int orig_nd;
- int is_insert;
/*printf("\nin helper: orig_v: %d sub_v: %d\n", orig_v, sub_v);*/
@@ -443,10 +442,8 @@ map_orig2sub_cm_helper(CM_t *orig_cm, CM_t *sub_cm, CMSubMap_t *submap, int orig
orig_nd = orig_cm->ndidx[orig_v];
sub_nd = sub_cm->ndidx[sub_v];
- is_insert = FALSE;
if(sub_cm->sttype[sub_v] == IL_st || sub_cm->sttype[sub_v] == IR_st)
{
- is_insert = TRUE;
/* Make sure that neither orig_v nor sub_v is a detached insert state,
* if either is, we return b/c it's irrelevant, and we don't store that info in the maps */
if(orig_cm->sttype[(orig_v+1)] == E_st || sub_cm->sttype[(sub_v+1)] == E_st)
@@ -867,9 +864,7 @@ CP9NodeForPosn(CP9_t *hmm, int i0, int j0, int x, CP9_MX *post,
'1' for insert */
int max_sc; /* score (log probability) from post matrix for max_k node max_type state type */
int k; /* counter over nodes */
- int reached_mass; /* TRUE if we've reached our pmass */
- reached_mass = FALSE;
if(!is_start) pmass = 1. - pmass; /* we move left to right */
/*printf("in CP9NodeForPosn is_start: %d pmass: %f\n", is_start, pmass);*/
@@ -2052,9 +2047,6 @@ check_sub_cm_by_sampling(CM_t *orig_cm, CM_t *sub_cm, char *errbuf, ESL_RANDOMNE
CP9_t *sub_hmm; /* constructed CP9 HMM from the sub_cm */
CP9Map_t *orig_cp9map; /* maps the orig_cm to the orig_hmm and vice versa */
CP9Map_t *sub_cp9map; /* maps the sub_cm to the sub_hmm and vice versa */
- int debug_level;
-
- debug_level = 0;
/* Build two CP9 HMMs, one for the orig_cm and one for the sub_cm */
if((status = build_cp9_hmm(orig_cm, errbuf, FALSE, 0.0001, print_flag, &orig_hmm, &orig_cp9map)) != eslOK) return status;
@@ -3335,7 +3327,6 @@ sub_cm2cm_parsetree(CM_t *orig_cm, CM_t *sub_cm, Parsetree_t **ret_orig_tr, Pars
int orig_v2;
int orig_nd1;
int orig_nd2;
- int nodes_used;
int cm_nd;
int i;
int parent_tr_nd;
@@ -3600,7 +3591,6 @@ sub_cm2cm_parsetree(CM_t *orig_cm, CM_t *sub_cm, Parsetree_t **ret_orig_tr, Pars
}
orig_tr = CreateParsetree(100);
- nodes_used = 0;
for(cm_nd = 0; cm_nd < orig_cm->nodes; cm_nd++)
{
emitl_flag = 0;
diff --git a/src/cm_tophits.c b/src/cm_tophits.c
index 4202a38..0c8f4ec 100644
--- a/src/cm_tophits.c
+++ b/src/cm_tophits.c
@@ -29,6 +29,10 @@
#include "infernal.h"
+static int remove_or_mark_overlaps_one_seq_fast (CM_TOPHITS *th, int64_t idx1, int64_t idx2, int do_remove, char *errbuf);
+static int remove_or_mark_overlaps_one_seq_memeff(CM_TOPHITS *th, int64_t idx1, int64_t idx2, int do_remove, char *errbuf);
+static int64_t overlap_nres(int64_t from1, int64_t to1, int64_t from2, int64_t to2, int64_t *ret_nes, char *errbuf);
+
/*****************************************************************
* 1. The CM_TOPHITS object
*****************************************************************/
@@ -142,6 +146,7 @@ cm_tophits_CreateNextHit(CM_TOPHITS *h, CM_HIT **ret_hit)
if (h->N >= 2) {
h->is_sorted_by_evalue = FALSE;
h->is_sorted_for_overlap_removal = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
h->is_sorted_by_position = FALSE;
}
@@ -156,10 +161,13 @@ cm_tophits_CreateNextHit(CM_TOPHITS *h, CM_HIT **ret_hit)
hit->bias = 0.0;
hit->pvalue = 0.0;
hit->evalue = 0.0;
+ hit->has_evalue = FALSE;
hit->cm_idx = -1;
+ hit->clan_idx = -1;
hit->seq_idx = -1;
hit->pass_idx = -1;
+ hit->hit_idx = h->N-1;
hit->srcL = -1;
hit->hmmonly = FALSE;
@@ -168,6 +176,11 @@ cm_tophits_CreateNextHit(CM_TOPHITS *h, CM_HIT **ret_hit)
hit->ad = NULL;
hit->flags = CM_HIT_FLAGS_DEFAULT;
+ hit->any_oidx = -1;
+ hit->win_oidx = -1;
+ hit->any_bitE = 0.0;
+ hit->win_bitE = 0.0;
+
*ret_hit = hit;
return eslOK;
@@ -176,10 +189,11 @@ cm_tophits_CreateNextHit(CM_TOPHITS *h, CM_HIT **ret_hit)
return status;
}
-/* hit_sorter_by_evalue(), hit_sorter_for_overlap_removal and hit_sorter_by_position: qsort's pawns, below */
+/* hit_sorter_by_evalue(), hit_sorter_for_overlap_removal, hit_sorter_for_overlap_markup_clans_only,
+ * hit_sorter_for_overlap_markup_clans_agnostic and hit_sorter_by_position: qsort's pawns, below */
static int
-hit_sorter_by_evalue(const void *vh1, const void *vh2)
-{
+ hit_sorter_by_evalue(const void *vh1, const void *vh2)
+ {
CM_HIT *h1 = *((CM_HIT **) vh1); /* don't ask. don't change. Don't Panic. */
CM_HIT *h2 = *((CM_HIT **) vh2);
@@ -207,12 +221,12 @@ hit_sorter_for_overlap_removal(const void *vh1, const void *vh2)
CM_HIT *h2 = *((CM_HIT **) vh2);
if (h1->cm_idx > h2->cm_idx) return 1; /* first key, cm_idx (unique id for models), low to high */
- else if (h1->cm_idx < h2->cm_idx) return -1; /* first key, cm_idx (unique id for models), low to high */
+ else if (h1->cm_idx < h2->cm_idx) return -1;
else {
if (h1->seq_idx > h2->seq_idx) return 1; /* second key, seq_idx (unique id for sequences), low to high */
else if (h1->seq_idx < h2->seq_idx) return -1;
else {
- /* same sequence, sort by strand, stop position then start position (if revcomp) or start position then stop position (if !revcomp) */
+ /* same model and same sequence; sort by strand, then score, then start position */
if (h1->in_rc > h2->in_rc) return 1; /* third key, strand (h1->in_rc = 1, h1->in_rc = 0), forward, then reverse */
else if(h1->in_rc < h2->in_rc) return -1; /* (h1->in_rc = 0, h2->in_rc = 1), forward, then reverse */
else {
@@ -229,6 +243,74 @@ hit_sorter_for_overlap_removal(const void *vh1, const void *vh2)
}
static int
+hit_sorter_for_overlap_markup_clans_only(const void *vh1, const void *vh2)
+{
+ CM_HIT *h1 = *((CM_HIT **) vh1); /* don't ask. don't change. Don't Panic. */
+ CM_HIT *h2 = *((CM_HIT **) vh2);
+
+ if (h1->seq_idx > h2->seq_idx) return 1; /* first key, seq_idx (unique id for sequences), low to high */
+ else if (h1->seq_idx < h2->seq_idx) return -1;
+ else {
+ /* same sequence; sort by strand, then clan_idx, then E-value, then score, then start position, then CM index */
+ if (h1->in_rc > h2->in_rc) return 1; /* second key, strand (h1->in_rc = 1, h1->in_rc = 0), forward, then reverse */
+ else if(h1->in_rc < h2->in_rc) return -1; /* (h1->in_rc = 0, h2->in_rc = 1), forward, then reverse */
+ else {
+ if (h1->clan_idx > h2->clan_idx) return 1; /* third key is clan_idx, low to high */
+ else if(h1->clan_idx < h2->clan_idx) return -1;
+ else {
+ if (h1->evalue > h2->evalue) return 1; /* fourth key is E-value, low to high */
+ else if(h1->evalue < h2->evalue) return -1;
+ else {
+ if (h1->score < h2->score) return 1; /* fifth key is bit score, high to low */
+ else if(h1->score > h2->score) return -1;
+ else {
+ if (h1->start > h2->start) return 1; /* sixth key is start position, low to high (irregardless of in_rc value) */
+ else if(h1->start < h2->start) return -1;
+ else {
+ if (h1->cm_idx > h2->cm_idx) return 1; /* seventh key is cm_idx (unique id for models), low to high */
+ else if(h1->cm_idx < h2->cm_idx) return -1;
+ else return 0;
+ }
+ }
+ }
+ }
+ }
+ }
+}
+
+static int
+hit_sorter_for_overlap_markup_clans_agnostic(const void *vh1, const void *vh2)
+{
+ CM_HIT *h1 = *((CM_HIT **) vh1); /* don't ask. don't change. Don't Panic. */
+ CM_HIT *h2 = *((CM_HIT **) vh2);
+
+ if (h1->seq_idx > h2->seq_idx) return 1; /* first key, seq_idx (unique id for sequences), low to high */
+ else if (h1->seq_idx < h2->seq_idx) return -1;
+ else {
+ /* same sequence; sort by strand, then E-value, then score, then start position, then CM index */
+ if (h1->in_rc > h2->in_rc) return 1; /* second key, strand (h1->in_rc = 1, h1->in_rc = 0), forward, then reverse */
+ else if(h1->in_rc < h2->in_rc) return -1; /* (h1->in_rc = 0, h2->in_rc = 1), forward, then reverse */
+ else {
+ if (h1->evalue > h2->evalue) return 1; /* fourth key is E-value, low to high */
+ else if(h1->evalue < h2->evalue) return -1;
+ else {
+ if (h1->score < h2->score) return 1; /* fifth key is bit score, high to low */
+ else if(h1->score > h2->score) return -1;
+ else {
+ if (h1->start > h2->start) return 1; /* sixth key is start position, low to high (irregardless of in_rc value) */
+ else if(h1->start < h2->start) return -1;
+ else {
+ if (h1->cm_idx > h2->cm_idx) return 1; /* seventh key is cm_idx (unique id for models), low to high */
+ else if(h1->cm_idx < h2->cm_idx) return -1;
+ else return 0;
+ }
+ }
+ }
+ }
+ }
+}
+
+static int
hit_sorter_by_position(const void *vh1, const void *vh2)
{
CM_HIT *h1 = *((CM_HIT **) vh1); /* don't ask. don't change. Don't Panic. */
@@ -277,6 +359,7 @@ cm_tophits_SortByEvalue(CM_TOPHITS *h)
if (h->is_sorted_by_evalue) {
h->is_sorted_for_overlap_removal = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
h->is_sorted_by_position = FALSE;
return eslOK;
}
@@ -284,6 +367,7 @@ cm_tophits_SortByEvalue(CM_TOPHITS *h)
for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i;
if (h->N > 1) qsort(h->hit, h->N, sizeof(CM_HIT *), hit_sorter_by_evalue);
h->is_sorted_for_overlap_removal = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
h->is_sorted_by_position = FALSE;
h->is_sorted_by_evalue = TRUE;
return eslOK;
@@ -308,8 +392,9 @@ cm_tophits_SortForOverlapRemoval(CM_TOPHITS *h)
int i;
if (h->is_sorted_for_overlap_removal) {
- h->is_sorted_by_evalue = FALSE;
- h->is_sorted_by_position = FALSE;
+ h->is_sorted_by_evalue = FALSE;
+ h->is_sorted_by_position = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
return eslOK;
}
/* initialize hit ptrs, this also unsorts if already sorted by score */
@@ -317,13 +402,64 @@ cm_tophits_SortForOverlapRemoval(CM_TOPHITS *h)
if (h->N > 1) qsort(h->hit, h->N, sizeof(CM_HIT *), hit_sorter_for_overlap_removal);
h->is_sorted_by_evalue = FALSE;
h->is_sorted_by_position = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
h->is_sorted_for_overlap_removal = TRUE;
return eslOK;
}
+/* Function: cm_tophits_SortForOverlapMarkup()
+ * Synopsis: Sorts a hit list by sequence index, strand, score, then model.
+ * Incept: EPN, Tue Dec 20 09:17:47 2011
+ *
+ * Purpose: Sorts a top hit list to ease markup of overlaps that
+ * overlap on the same strand of the same sequence by
+ * different models.
+ *
+ * After this call, <h->hit[i]> points to the i'th ranked
+ * <CM_HIT> for all <h->N> hits. First sort key is seq_idx
+ * (low to high), second is strand (forward then reverse),
+ * third key is E-value (low to high), fourth is score (high
+ * to low), fifth is start position (low to high) and
+ * sixth key is CM idx (unique id for models, low to high).
+ *
+ * Args: do_clans_only - TRUE: we are only marking overlaps within clans
+ * FALSE: we are marking all overlaps
+ * This has implications on how we sort.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+cm_tophits_SortForOverlapMarkup(CM_TOPHITS *h, int do_clans_only)
+{
+ int i;
+
+ if (h->is_sorted_for_overlap_markup) {
+ h->is_sorted_by_evalue = FALSE;
+ h->is_sorted_by_position = FALSE;
+ h->is_sorted_for_overlap_removal = FALSE;
+ return eslOK;
+ }
+ /* initialize hit ptrs, this also unsorts if already sorted by score */
+ for (i = 0; i < h->N; i++) h->hit[i] = h->unsrt + i;
+ if (h->N > 1) {
+ if(do_clans_only) {
+ qsort(h->hit, h->N, sizeof(CM_HIT *), hit_sorter_for_overlap_markup_clans_only);
+ }
+ else {
+ qsort(h->hit, h->N, sizeof(CM_HIT *), hit_sorter_for_overlap_markup_clans_agnostic);
+ }
+ }
+ h->is_sorted_by_evalue = FALSE;
+ h->is_sorted_by_position = FALSE;
+ h->is_sorted_for_overlap_removal = FALSE;
+ h->is_sorted_for_overlap_markup = TRUE;
+
+ return eslOK;
+}
+
/* Function: cm_tophits_SortByPosition()
- * Synopsis: Sorts a hit list by cm index, sequence index, strand, then position.
+ * Synopsis: Sorts a hit list by cm index, sequence index, strand, position, then bit score.
* Incept: EPN, Tue Dec 20 09:17:47 2011
*
* Purpose: Sorts a top hit list to ease merging of nearby hits after
@@ -346,6 +482,7 @@ cm_tophits_SortByPosition(CM_TOPHITS *h)
if (h->is_sorted_by_position) {
h->is_sorted_by_evalue = FALSE;
h->is_sorted_for_overlap_removal = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
return eslOK;
}
/* initialize hit ptrs, this also unsorts if already sorted by score */
@@ -353,6 +490,7 @@ cm_tophits_SortByPosition(CM_TOPHITS *h)
if (h->N > 1) qsort(h->hit, h->N, sizeof(CM_HIT *), hit_sorter_by_position);
h->is_sorted_by_evalue = FALSE;
h->is_sorted_for_overlap_removal = FALSE;
+ h->is_sorted_for_overlap_markup = FALSE;
h->is_sorted_by_position = TRUE;
return eslOK;
@@ -389,12 +527,21 @@ cm_tophits_Merge(CM_TOPHITS *h1, CM_TOPHITS *h2)
ESL_RALLOC(h1->unsrt, p, sizeof(CM_HIT) * Nalloc);
ESL_RALLOC(h1->hit, p, sizeof(CM_HIT *) * Nalloc);
+ /* Update h2's data that relates to hit indices */
+ for (i = 0; i < h2->N; i++)
+ {
+ if(h2->unsrt[i].hit_idx != -1) { h2->unsrt[i].hit_idx += h1->N; }
+ if(h2->unsrt[i].any_oidx != -1) { h2->unsrt[i].any_oidx += h1->N; }
+ if(h2->unsrt[i].win_oidx != -1) { h2->unsrt[i].win_oidx += h1->N; }
+ }
+
/* Append h2's unsorted data array to h1. h2's data begin at <new2> */
new2 = h1->unsrt + h1->N;
memcpy(new2, h2->unsrt, sizeof(CM_HIT) * h2->N);
/* h2 now turns over management of name, acc, desc memory to h1;
- * nullify its pointers, to prevent double free. */
+ * nullify its pointers, to prevent double free
+ */
for (i = 0; i < h2->N; i++)
{
h2->unsrt[i].name = NULL;
@@ -441,9 +588,6 @@ integer_textwidth(long n)
* the top hits, and the max name length in these top hits
* may be different than the max length over all the hits.
*
- * Used specifically for nhmmer output, so expects only one
- * domain per hit
- *
* If there are no hits in <h>, or none of the
* hits have names, returns 0.
*/
@@ -460,6 +604,26 @@ cm_tophits_GetMaxPositionLength(CM_TOPHITS *h)
return max;
}
+/* Function: cm_tophits_GetMaxTargetLength()
+ * Synopsis: Returns maximum target length in hit list.
+ * Incept: EPN, Wed Oct 22 10:36:11 2014
+ *
+ * Purpose: Returns the length of the longest target length (srcL)
+ * of all the registered hits, in chars. This is useful when
+ * deciding how to format output.
+ */
+int
+cm_tophits_GetMaxTargetLength(CM_TOPHITS *h)
+{
+ int i, max;
+
+ max = 0;
+ for (i = 0; i < h->N; i++) {
+ max = ESL_MAX(max, integer_textwidth(h->unsrt[i].srcL));
+ }
+ return max;
+}
+
/* Function: cm_tophits_GetMaxNameLength()
* Synopsis: Returns maximum name length in hit list (targets).
* Incept: EPN, Tue May 24 13:34:12 2011
@@ -488,6 +652,28 @@ cm_tophits_GetMaxNameLength(CM_TOPHITS *h)
return max;
}
+/* Function: cm_tophits_GetMaxDescLength()
+ * Synopsis: Returns maximum length of the desc field in hit list.
+ * Incept: EPN, Wed Oct 22 10:36:11 2014
+ *
+ * Purpose: Returns the length of the longest description (desc)
+ * of all the registered hits, in chars. This is useful when
+ * deciding how to format output.
+ */
+int
+cm_tophits_GetMaxDescLength(CM_TOPHITS *h)
+{
+ int i, max;
+
+ max = 0;
+ for (i = 0; i < h->N; i++) {
+ if(h->unsrt[i].desc != NULL) {
+ max = ESL_MAX(max, strlen(h->unsrt[i].desc));
+ }
+ }
+ return max;
+}
+
/* Function: cm_tophits_GetMaxAccessionLength()
* Synopsis: Returns maximum accession length in hit list (targets).
* Incept: EPN, Tue May 24 13:35:23 2011
@@ -541,6 +727,39 @@ cm_tophits_GetMaxShownLength(CM_TOPHITS *h)
return max;
}
+/* Function: cm_tophits_GetMaxClanLength()
+ * Synopsis: Returns maximum length of a clan name in hit list (targets).
+ * Incept: EPN, Wed Jan 28 09:11:43 2015
+ *
+ * Purpose: Returns the length of the longest clan name of all of the
+ * registered hits, in chars. This is useful when deciding
+ * how to format output.
+ *
+ * The maximum is taken over all registered hits. This
+ * opens a possible side effect: caller might print only
+ * the top hits, and the max name length in these top hits
+ * may be different than the max length over all the hits.
+ *
+ * If there are no hits in <h>, <clan_name_kh> is NULL, or
+ * none of the hits have clans, returns 0.
+ */
+int
+cm_tophits_GetMaxClanLength(CM_TOPHITS *h, ESL_KEYHASH *clan_name_kh)
+{
+ int i, max;
+
+ if(clan_name_kh == NULL) return 0;
+
+ max = 0;
+ for (i = 0; i < h->N; i++) {
+ if(h->unsrt[i].clan_idx != -1) {
+ max = ESL_MAX(max,
+ strlen(esl_keyhash_Get(clan_name_kh, h->unsrt[i].clan_idx)));
+ }
+ }
+ return max;
+}
+
/* Function: cm_tophits_Reuse()
* Synopsis: Reuse a hit list, freeing internals.
* Incept: EPN, Tue May 24 13:36:15 2011
@@ -609,7 +828,14 @@ cm_tophits_Destroy(CM_TOPHITS *h)
* and copy the information from hit <h> in the sorted
* hitlist <src_th> into it.
*
- * NOTE: we do not copy name, acc, desc, or ad.
+ * An exception of copying info:
+ * the <hit_idx> for the cloned hit in <dest_th> will
+ * be dest_th->N, not <src_th->hit[h]->hit_idx.
+ *
+ * NOTE: we do not copy name, acc, desc, or ad,
+ * and also note that any_oidx and win_oidx
+ * of new hit in <dest_th> will be set to -1
+ * no matter what src_th->h's values are.
*
* Returns: <eslOK> on success.
*
@@ -622,23 +848,29 @@ cm_tophits_CloneHitMostly(CM_TOPHITS *src_th, int h, CM_TOPHITS *dest_th)
int status;
if ((status = cm_tophits_CreateNextHit(dest_th, &hit)) != eslOK) goto ERROR;
- hit->cm_idx = src_th->hit[h]->cm_idx;
- hit->seq_idx = src_th->hit[h]->seq_idx;
- hit->pass_idx = src_th->hit[h]->pass_idx;
- hit->start = src_th->hit[h]->start;
- hit->stop = src_th->hit[h]->stop;
- hit->in_rc = src_th->hit[h]->in_rc;
- hit->root = src_th->hit[h]->root;
- hit->mode = src_th->hit[h]->mode;
- hit->score = src_th->hit[h]->score;
- hit->bias = src_th->hit[h]->bias;
- hit->pvalue = src_th->hit[h]->pvalue;
- hit->evalue = src_th->hit[h]->evalue;
- hit->srcL = src_th->hit[h]->srcL;
- hit->hmmonly = src_th->hit[h]->hmmonly;
- hit->glocal = src_th->hit[h]->glocal;
- hit->flags = src_th->hit[h]->flags;
- hit->ad = NULL;
+ hit->cm_idx = src_th->hit[h]->cm_idx;
+ hit->clan_idx = src_th->hit[h]->clan_idx;
+ hit->seq_idx = src_th->hit[h]->seq_idx;
+ hit->pass_idx = src_th->hit[h]->pass_idx;
+ /* don't update hit->hit_idx, it will stay as set by CreateNextHit (dest_th->N-1) */
+ hit->start = src_th->hit[h]->start;
+ hit->stop = src_th->hit[h]->stop;
+ hit->in_rc = src_th->hit[h]->in_rc;
+ hit->root = src_th->hit[h]->root;
+ hit->mode = src_th->hit[h]->mode;
+ hit->score = src_th->hit[h]->score;
+ hit->bias = src_th->hit[h]->bias;
+ hit->pvalue = src_th->hit[h]->pvalue;
+ hit->evalue = src_th->hit[h]->evalue;
+ hit->has_evalue = src_th->hit[h]->has_evalue;
+ hit->srcL = src_th->hit[h]->srcL;
+ hit->hmmonly = src_th->hit[h]->hmmonly;
+ hit->glocal = src_th->hit[h]->glocal;
+ hit->flags = src_th->hit[h]->flags;
+ /* don't update hit->any_oidx, nor hit->win_oidx, they'll stay as -1 */
+ hit->any_bitE = src_th->hit[h]->any_bitE;
+ hit->win_bitE = src_th->hit[h]->win_bitE;
+ hit->ad = NULL;
return eslOK;
@@ -680,134 +912,231 @@ cm_tophits_ComputeEvalues(CM_TOPHITS *th, double eZ, int istart)
* that all use the same model, are to the same sequence and are on
* the same strand. The hits in the set are sorted by score.
*
- * remove_overlaps_one_seq_fast(): O(N) with number of hits N, but
+ * remove_or_mark_overlaps_one_seq_fast(): O(N) with number of hits N, but
* less memory efficient (O(L), requiring an allocation of a char
* array the length of the sequence). This is how RSEARCH and infernal
* 1.0.2 did overlap removal.
*
- * remove_overlaps_one_seq_memeff(): O(N^2), but O(1) memory (not
+ * remove_or_mark_overlaps_one_seq_memeff(): O(N^2), but O(1) memory (not
* counting the O(N) memory hit list). This is fast for small numbers
* of sequences; up to about 10k seqs (10,000 hits takes about ~0.3
* seconds with benchmark_cm_tophits, but 100,000 hits takes 43s).
*
- * cm_tophits_RemoveOverlaps() picks a function to call based on
+ * cm_tophits_RemoveOrMarkOverlaps() picks a function to call based on
* length of the sequence L and number of hits N.
*
+ * If <do_remove> we'll remove duplicate hits, else we'll just
+ * mark them up (this is used by cmscan to mark overlapping hits
+ * to different models). If <do_remove> is FALSE, the hits do not
+ * need to be to the same model, else they do need to be.
+ *
* Both functions:
* Returns eslOK on success
- * Returns eslEINVAL if not all hits in the set have equal srcL, cm_idx, seq_idx, or in_rc values
+ * Returns eslEINVAL if not all hits in the set have equal srcL, seq_idx, in_rc values (and cm_idx if do_remove == TRUE)
* Returns eslERANGE if a hit includes positions outside of 1..srcL
* Returns eslEMEM if out of memory (remove_overlaps_one_seq_fast() only)
* errbuf is filled if not returning eslOK
*/
-int remove_overlaps_one_seq_fast(CM_TOPHITS *th, int64_t idx1, int64_t idx2, char *errbuf)
+int remove_or_mark_overlaps_one_seq_fast(CM_TOPHITS *th, int64_t idx1, int64_t idx2, int do_remove, char *errbuf)
{
- int status;
- int64_t i;
- char *covered = NULL; /* [1..pos..srcL] is position pos covered by a hit we've examined and kept? */
- int remove_flag = FALSE;
- int64_t srcL = th->hit[idx1]->srcL;
- int64_t cm_idx = th->hit[idx1]->cm_idx;
- int64_t seq_idx = th->hit[idx1]->seq_idx;
- int in_rc = th->hit[idx1]->in_rc;
- int64_t pos, min, max; /* position indices in the sequence */
-
- /*printf("in remove_overlaps_one_seq_fast() i: %" PRId64 " j: %" PRId64 "\n", idx1, idx2);
+ int status;
+ int64_t i;
+ char *covered = NULL; /* [1..pos..srcL] is position pos covered by a hit we've examined and kept (if do_remove)? */
+ int64_t *covered_any_idx = NULL; /* [1..pos..srcL] highest scoring hit_idx that covers position pos */
+ int64_t *covered_win_idx = NULL; /* [1..pos..srcL] highest scoring *winning* hit_idx that covers position pos */
+ int overlap_flag = FALSE;
+ int64_t srcL = th->hit[idx1]->srcL;
+ int64_t cm_idx = th->hit[idx1]->cm_idx;
+ int64_t seq_idx = th->hit[idx1]->seq_idx;
+ int in_rc = th->hit[idx1]->in_rc;
+ int64_t pos, min, max; /* position indices in the sequence */
+ int64_t max_value = idx2+1; /* default value for covered_any_idx and covered_win_idx, so we can use ESL_MIN with range of valid values idx1..idx2 */
+
+ if( do_remove && (! th->is_sorted_for_overlap_removal)) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits but hit list is not sorted properly");
+ if((! do_remove) && (! th->is_sorted_for_overlap_markup)) ESL_FAIL(eslEINVAL, errbuf, "marking overlapping hits but hit list is not sorted properly");
+
+ /*printf("in remove_or_mark_overlaps_one_seq_fast() do_remove: %d i: %" PRId64 " j: %" PRId64 "\n", do_remove, idx1, idx2);
cm_tophits_Dump(stdout, th);*/
ESL_ALLOC(covered, sizeof(char) * (srcL+1));
for(i = 0; i <= srcL; i++) covered[i] = FALSE;
+ if(! do_remove) {
+ ESL_ALLOC(covered_any_idx, sizeof(int64_t) * (srcL+1));
+ ESL_ALLOC(covered_win_idx, sizeof(int64_t) * (srcL+1));
+ for(i = 0; i <= srcL; i++) covered_any_idx[i] = max_value;
+ for(i = 0; i <= srcL; i++) covered_win_idx[i] = max_value;
+ }
for(i = idx1; i <= idx2; i++) {
/* verify that what we think is true is true */
- if(th->hit[i]->srcL != srcL) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, srcL inconsistent, hit %" PRId64, i);
- if(th->hit[i]->cm_idx != cm_idx) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, cm_idx is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->seq_idx != seq_idx) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, seq_idx is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->in_rc != in_rc) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, in_rc is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->start < 1 || th->hit[i]->start > srcL) ESL_FAIL(eslERANGE, errbuf, "removing overlapping hits, start posn is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->stop < 1 || th->hit[i]->stop > srcL) ESL_FAIL(eslERANGE, errbuf, "removing overlapping hits, stop posn is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->srcL != srcL) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, srcL inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->seq_idx != seq_idx) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, seq_idx is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->in_rc != in_rc) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, in_rc is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->flags & CM_HIT_IS_MARKED_OVERLAP) ESL_FAIL(eslEINVAL, errbuf, "marking overlapping hits, overlap flag already up for hit %" PRId64 "\n", i);
+ if(th->hit[i]->start < 1 || th->hit[i]->start > srcL) ESL_FAIL(eslERANGE, errbuf, "removing/marking overlapping hits, start posn is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->stop < 1 || th->hit[i]->stop > srcL) ESL_FAIL(eslERANGE, errbuf, "removing/marking overlapping hits, stop posn is inconsistent, hit %" PRId64, i);
+
+ if(do_remove && th->hit[i]->cm_idx != cm_idx) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, cm_idx is inconsistent, hit %" PRId64, i);
if(! (th->hit[i]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
/* i is not a duplicate that's already been removed */
+
min = ESL_MIN(th->hit[i]->start, th->hit[i]->stop);
max = ESL_MAX(th->hit[i]->start, th->hit[i]->stop);
- remove_flag = FALSE;
+ overlap_flag = FALSE;
for(pos = min; pos <= max; pos++) {
- if(covered[pos] == TRUE) { remove_flag = TRUE; break; }
+ if(covered[pos] == TRUE) { overlap_flag = TRUE; break; }
}
-
- if(remove_flag) {
- th->hit[i]->flags |= CM_HIT_IS_REMOVED_DUPLICATE;
- th->hit[i]->flags &= ~CM_HIT_IS_REPORTED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
- th->hit[i]->flags &= ~CM_HIT_IS_INCLUDED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
+
+ /* how we process the hit differs significantly between
+ * whether we're in remove mode (do_remove is TRUE) or
+ * mark mode (do_remove is FALSE)
+ */
+ if(do_remove) {
+ if(overlap_flag) {
+ th->hit[i]->flags |= CM_HIT_IS_REMOVED_DUPLICATE;
+ th->hit[i]->flags &= ~CM_HIT_IS_REPORTED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
+ th->hit[i]->flags &= ~CM_HIT_IS_INCLUDED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
+ }
+ else {
+ for(pos = min; pos <= max; pos++) covered[pos] = TRUE;
+ }
}
- else {
- for(pos = min; pos <= max; pos++) covered[pos] = TRUE;
+ else { /* do_remove is FALSE */
+ if(overlap_flag) {
+ /* marking overlaps, not removing them */
+ th->hit[i]->flags |= CM_HIT_IS_MARKED_OVERLAP;
+ /* determine the hit_idx of the best hit it overlaps with (any_oidx)
+ * and the best non-marked hit it overlaps with (win_oidx),
+ * these will often be the same hit_idx
+ */
+ /* first, the best hit (any_oidx) */
+ th->hit[i]->any_oidx = covered_any_idx[min];
+ for(pos = min+1; pos <= max; pos++) {
+ th->hit[i]->any_oidx = ESL_MIN(th->hit[i]->any_oidx, covered_any_idx[pos]);
+ }
+ if(th->hit[i]->any_oidx == max_value) th->hit[i]->any_oidx = -1; /* no overlap */
+
+ /* second, the best winning hit (win_oidx) */
+ th->hit[i]->win_oidx = covered_win_idx[min];
+ for(pos = min+1; pos <= max; pos++) {
+ th->hit[i]->win_oidx = ESL_MIN(th->hit[i]->win_oidx, covered_win_idx[pos]);
+ }
+ if(th->hit[i]->win_oidx == max_value) th->hit[i]->win_oidx = -1; /* no overlap */
+
+ /* now th->hit[i]->any_oidx and th->hit[i]->win_oidx point to
+ * the sorted hit index, change it to the actual hit_idx
+ */
+ if(th->hit[i]->any_oidx != -1) th->hit[i]->any_oidx = th->hit[th->hit[i]->any_oidx]->hit_idx;
+ if(th->hit[i]->win_oidx != -1) th->hit[i]->win_oidx = th->hit[th->hit[i]->win_oidx]->hit_idx;
+ } /* end of 'if(overlap_flag)' */
+ else { /* no overlap */
+ /* need to keep track that this hit is the best scoring winning hit
+ * that covers any previously uncovered positions
+ */
+ for(pos = min; pos <= max; pos++) {
+ if(covered_win_idx[pos] == max_value) covered_win_idx[pos] = i;
+ }
+ }
+ /* regardless of whether we found an overlap or not, we need
+ * to keep track that this hit is the best scoring hit that
+ * covers any previously uncovered positions, and update
+ * covered[] as well.
+ */
+ for(pos = min; pos <= max; pos++) {
+ if(covered_any_idx[pos] == max_value) covered_any_idx[pos] = i;
+ covered[pos] = TRUE;
+ }
}
}
}
- if(covered != NULL) free(covered);
+ if(covered != NULL) free(covered);
+ if(covered_any_idx != NULL) free(covered_any_idx);
+ if(covered_win_idx != NULL) free(covered_win_idx);
return eslOK;
ERROR:
if(covered != NULL) free(covered);
- ESL_FAIL(status, errbuf, "removing overlapping hits, out of memory");
+ ESL_FAIL(status, errbuf, "removing/marking overlapping hits, out of memory");
return status; /* NOT REACHED */
}
-int remove_overlaps_one_seq_memeff(CM_TOPHITS *th, int64_t idx1, int64_t idx2, char *errbuf)
+int remove_or_mark_overlaps_one_seq_memeff(CM_TOPHITS *th, int64_t idx1, int64_t idx2, int do_remove, char *errbuf)
{
int64_t i, j;
int64_t srcL = th->hit[idx1]->srcL;
int64_t cm_idx = th->hit[idx1]->cm_idx;
int64_t seq_idx = th->hit[idx1]->seq_idx;
int in_rc = th->hit[idx1]->in_rc;
+ int overlap_flag = FALSE;
- /*printf("in remove_overlaps_one_seq_memeff() i: %" PRId64 " j: %" PRId64 "\n", idx1, idx2);
+ /*printf("in remove_overlaps_one_seq_memeff() do_remove: %d i: %" PRId64 " j: %" PRId64 "\n", do_remove, idx1, idx2);
cm_tophits_Dump(stdout, th);*/
+ if( do_remove && (! th->is_sorted_for_overlap_removal)) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits but hit list is not sorted properly");
+ if((! do_remove) && (! th->is_sorted_for_overlap_markup)) ESL_FAIL(eslEINVAL, errbuf, "marking overlapping hits but hit list is not sorted properly");
for(i = idx1; i <= idx2; i++) {
/* verify that what we think is true is true */
- if(th->hit[i]->srcL != srcL) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, srcL inconsistent, hit %" PRId64, i);
- if(th->hit[i]->cm_idx != cm_idx) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, cm_idx is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->seq_idx != seq_idx) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, seq_idx is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->in_rc != in_rc) ESL_FAIL(eslEINVAL, errbuf, "removing overlapping hits, in_rc is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->start < 1 || th->hit[i]->start > srcL) ESL_FAIL(eslERANGE, errbuf, "removing overlapping hits, start posn is inconsistent, hit %" PRId64, i);
- if(th->hit[i]->stop < 1 || th->hit[i]->stop > srcL) ESL_FAIL(eslERANGE, errbuf, "removing overlapping hits, stop posn is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->srcL != srcL) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, srcL inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->seq_idx != seq_idx) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, seq_idx is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->in_rc != in_rc) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, in_rc is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->start < 1 || th->hit[i]->start > srcL) ESL_FAIL(eslERANGE, errbuf, "removing/marking overlapping hits, start posn is inconsistent, hit %" PRId64, i);
+ if(th->hit[i]->stop < 1 || th->hit[i]->stop > srcL) ESL_FAIL(eslERANGE, errbuf, "removing/marking overlapping hits, stop posn is inconsistent, hit %" PRId64, i);
+ if(do_remove && th->hit[i]->cm_idx != cm_idx) ESL_FAIL(eslEINVAL, errbuf, "removing/marking overlapping hits, cm_idx is inconsistent, hit %" PRId64, i);
if(! (th->hit[i]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
/* i is not a duplicate that's already been removed */
for(j = i+1; j <= idx2; j++) {
- if(! (th->hit[j]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
- /* j has not already been removed */
- /*printf("comparing %" PRId64 " and %" PRId64 "\n", i, j);*/
- if(th->hit[j]->in_rc == FALSE && /* both i and j are on forward strand */
- (! (th->hit[j]->stop < th->hit[i]->start)) && /* one of two ways in which i and j DO NOT overlap */
- (! (th->hit[i]->stop < th->hit[j]->start))) { /* the other way in which i and j DO NOT overlap */
- /* i and j overlap, i is better scoring so remove j */
- th->hit[j]->flags |= CM_HIT_IS_REMOVED_DUPLICATE;
- th->hit[j]->flags &= ~CM_HIT_IS_REPORTED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
- th->hit[j]->flags &= ~CM_HIT_IS_INCLUDED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
- /*printf("\tremoved j (FWD) %5" PRId64 "..%5" PRId64 " overlaps with %5" PRId64 "..%5" PRId64 "\n", th->hit[i]->start, th->hit[i]->stop, th->hit[j]->start, th->hit[j]->stop);*/
- }
- else if(th->hit[j]->in_rc == TRUE && /* both i and j are on reverse strand */
- (! (th->hit[j]->start < th->hit[i]->stop)) && /* one of two ways in which i and j DO NOT overlap */
- (! (th->hit[i]->start < th->hit[j]->stop))) { /* the other way in which i and j DO NOT overlap */
- /* i and j overlap, i is better scoring so remove j */
- th->hit[j]->flags |= CM_HIT_IS_REMOVED_DUPLICATE;
- th->hit[j]->flags &= ~CM_HIT_IS_REPORTED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
- th->hit[j]->flags &= ~CM_HIT_IS_INCLUDED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
- /*printf("\tremoved j (REV) %5" PRId64 "..%5" PRId64 " overlaps with %5" PRId64 "..%5" PRId64 "\n", th->hit[i]->start, th->hit[i]->stop, th->hit[j]->start, th->hit[j]->stop);*/
- }
- }
+ if(! (th->hit[j]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
+ /* j has not already been removed */
+ overlap_flag = FALSE; /* set to TRUE below if i and j overlap */
+ /*printf("comparing %" PRId64 " and %" PRId64 "\n", i, j);*/
+ if(th->hit[j]->in_rc == FALSE && /* both i and j are on forward strand */
+ (! (th->hit[j]->stop < th->hit[i]->start)) && /* one of two ways in which i and j DO NOT overlap */
+ (! (th->hit[i]->stop < th->hit[j]->start))) { /* the other way in which i and j DO NOT overlap */
+ /* i and j overlap, i is better scoring so remove/mark j */
+ overlap_flag = TRUE;
+ }
+ else if(th->hit[j]->in_rc == TRUE && /* both i and j are on reverse strand */
+ (! (th->hit[j]->start < th->hit[i]->stop)) && /* one of two ways in which i and j DO NOT overlap */
+ (! (th->hit[i]->start < th->hit[j]->stop))) { /* the other way in which i and j DO NOT overlap */
+ /* i and j overlap, i is better scoring so remove or mark j */
+ overlap_flag = TRUE;
+ }
+ if(overlap_flag) {
+ if(do_remove) {
+ th->hit[j]->flags |= CM_HIT_IS_REMOVED_DUPLICATE;
+ th->hit[j]->flags &= ~CM_HIT_IS_REPORTED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
+ th->hit[j]->flags &= ~CM_HIT_IS_INCLUDED; /* could be set if pli->use_bit_cutoffs (--cut_ga, --cut_nc, --cut_tc) */
+ /*printf("\tremoved j (FWD) %5" PRId64 "..%5" PRId64 " overlaps with %5" PRId64 "..%5" PRId64 "\n", th->hit[i]->start, th->hit[i]->stop, th->hit[j]->start, th->hit[j]->stop);*/
+ }
+ else {
+ th->hit[j]->flags |= CM_HIT_IS_MARKED_OVERLAP;
+ /* don't change reported/included flags */
+
+ /* update any_oidx and win_oidx */
+ if(th->hit[j]->any_oidx == -1) th->hit[j]->any_oidx = th->hit[i]->hit_idx;
+ /* if j's any_oidx or win_oidx is not -1, it must have
+ * already been set to a better hit, i.e. a lower i
+ * (and since we're sorted by score we know that's a
+ * better hit).
+ */
+ if((! (th->hit[i]->flags & CM_HIT_IS_MARKED_OVERLAP)) &&
+ (th->hit[j]->win_oidx == -1)) {
+ th->hit[j]->win_oidx = th->hit[i]->hit_idx;
+ }
+ }
+ }
+ }
}
}
}
return eslOK;
}
-/* Function: cm_tophits_RemoveOverlaps()
- * Synopsis: Remove overlapping hits from a tophits object sorted by seq_idx.
+
+/* Function: cm_tophits_RemoveOrMarkOverlaps()
+ * Synopsis: Remove or mark overlapping hits from a tophits object sorted by seq_idx.
* Incept: EPN, Tue Jun 14 05:42:31 2011
*
* Purpose: After the CM pipeline has completed, the CM_TOPHITS
@@ -818,49 +1147,91 @@ int remove_overlaps_one_seq_memeff(CM_TOPHITS *th, int64_t idx1, int64_t idx2, c
* greedily. For each hit for the same model, sequence and
* strand, remove all lower scoring hits that overlap with
* it. This is done by one of two helper functions
- * (remove_overlaps_one_seq_fast() or
- * remove_overlaps_one_seq_memeff() described near their
- * definition above) depending on the length of the
+ * (remove_or_mark_overlaps_one_seq_fast() or
+ * remove_or_mark_overlaps_one_seq_memeff() described near
+ * their definition above) depending on the length of the
* sequence and the number of hits.
- *
+ *
+ * This function can be used to either mark overlaps or
+ * remove them, determined by the
+ * th->is_sorted_for_overlap_removal and
+ * th->is_sorted_for_overlap_markup flags, exactly one
+ * of which must be true, otherwise we'll die.
+ *
+ * <do_clans_only>: TRUE to only markup overlaps for hits in
+ * the same clan, FALSE to markup overlaps between all
+ * hits. IRRELEVANT if th->is_sorted_for_overlap_removal.
+ *
* Returns: eslOK on success.
* eslEINVAL if th is not sorted appropriately, errbuf filled
* eslERANGE if a hit includes positions outside of 1..srcL, errbuf filled
* eslEMEM if we run out of memory, errbuf filled
*/
int
-cm_tophits_RemoveOverlaps(CM_TOPHITS *th, char *errbuf)
+cm_tophits_RemoveOrMarkOverlaps(CM_TOPHITS *th, int do_clans_only, char *errbuf)
{
int status;
int64_t i, j;
int64_t nhits = 0;
+ int do_remove = FALSE;
+ int srcL_limit;
+
+ if (th->is_sorted_for_overlap_removal &&
+ th->is_sorted_for_overlap_markup) {
+ ESL_FAIL(eslEINVAL, errbuf, "cm_tophits_RemoveOrMarkOverlaps() list is not sorted appropriately");
+ }
+
+ if (th->is_sorted_for_overlap_removal) {
+ do_remove = TRUE;
+ srcL_limit = 256000000;
+ }
+ else if (th->is_sorted_for_overlap_markup) {
+ do_remove = FALSE;
+ srcL_limit = 256000000 / 16;
+ /* we require about 16X more memory in remove_or_mark_overlaps_one_seq_fast() if we're sorting for
+ * overlap markup, so our limit is 1/16 the length.
+ */
+ }
+ else {
+ ESL_FAIL(eslEINVAL, errbuf, "cm_tophits_RemoveOrMarkOverlaps() list is not sorted appropriately");
+ }
+ if(do_remove && do_clans_only) {
+ ESL_FAIL(eslEINVAL, errbuf, "cm_tophits_RemoveOrMarkOverlaps() list is sorted for overlap removal and we're trying to respect clan membership...shouldn't happen");
+ }
- if (! th->is_sorted_for_overlap_removal) ESL_FAIL(eslEINVAL, errbuf, "cm_tophits_RemoveOverlaps() list is not sorted appropriately");
if (th->N<2) return eslOK;
i = 0;
while(i < th->N) {
j = i+1;
while(j < th->N &&
- th->hit[j]->cm_idx == th->hit[i]->cm_idx &&
+ ((! do_remove) || (th->hit[j]->cm_idx == th->hit[i]->cm_idx)) &&
th->hit[j]->seq_idx == th->hit[i]->seq_idx &&
- th->hit[j]->in_rc == th->hit[i]->in_rc) {
+ th->hit[j]->in_rc == th->hit[i]->in_rc &&
+ ((! do_clans_only) || (th->hit[j]->clan_idx == th->hit[i]->clan_idx))) {
j++;
}
- if(j != (i+1)) {
- /* Hits i to j-1 form a set of hits that all share cm_idx, seq_idx
- * and in_rc. Remove overlaps from this set in 1 of 2 ways,
- * depending on length of source sequence and number of hits.
- * remove_overlaps_one_seq_fast() will need to allocate a char
- * array of size srcL, but it is significantly faster when nhits
- * is big.
+ if(j != (i+1) && /* more than one hit in set i..j-1 */
+ ((! do_clans_only) || th->hit[i]->clan_idx != -1)) { /* we're not only marking overlaps within same clan OR
+ * we are and all hits are in same clan, this way if
+ * do_clans_only is TRUE we won't remove overlaps between
+ * hits in families that are not members of any clan */
+ /* Hits i to j-1 form a set of hits that all share cm_idx (if
+ * 'do_remove == TRUE'), seq_idx, in_rc and clan_idx (if
+ * 'do_clans_only == TRUE'). Remove overlaps from this set in 1 of 2
+ * ways, depending on length of source sequence and number of
+ * hits. remove_overlaps_one_seq_fast() will need to allocate a
+ * char array of size srcL, but it is significantly faster when
+ * nhits is big. If (do_remove) is FALSE then we need about 16X
+ * more memory in 'one_seq_fast()' method so our srcL_limit is
+ * 16-fold lower (calc'ed above).
*/
nhits = (j-1)-i+1;
- if(nhits < 5000 || th->hit[i]->srcL > 256000000) {
- if((status = remove_overlaps_one_seq_memeff(th, i, j-1, errbuf)) != eslOK) return status;
+ if(nhits < 5000 || th->hit[i]->srcL > srcL_limit) {
+ if((status = remove_or_mark_overlaps_one_seq_memeff(th, i, j-1, do_remove, errbuf)) != eslOK) return status;
}
- else { /* use fast, non mem-efficient way if >= 5000 hits and L is < 256 Mb */
- if((status = remove_overlaps_one_seq_fast (th, i, j-1, errbuf)) != eslOK) return status;
+ else { /* use fast, non mem-efficient way if >= 5000 hits and L is < srcL_limit */
+ if((status = remove_or_mark_overlaps_one_seq_fast (th, i, j-1, do_remove, errbuf)) != eslOK) return status;
}
}
i = j; /* skip ahead to begin next set */
@@ -1089,7 +1460,7 @@ cm_tophits_Targets(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int textw)
namew, showname,
posw, th->hit[h]->start,
posw, th->hit[h]->stop,
- (th->hit[h]->start < th->hit[h]->stop ? '+' : '-'),
+ (th->hit[h]->in_rc == TRUE) ? '-' : '+',
th->hit[h]->hmmonly ? "hmm" : "cm",
cm_alidisplay_TruncString(th->hit[h]->ad),
th->hit[h]->ad->gc);
@@ -1119,6 +1490,108 @@ cm_tophits_Targets(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int textw)
return status;
}
+/* Function: cm_tophits_F3Targets()
+ * Synopsis: Standard output format for a top target hits list
+ * in special terminate after filter stage F3 mode.
+ *
+ * Incept: EPN, Wed Oct 22 13:29:23 2014
+ * SRE, Tue Dec 9 09:10:43 2008 [Janelia] (p7_tophits.c)
+ *
+ * Purpose: Output a list of the reportable top target hits in <th>
+ * in human-readable ASCII text format to stream <ofp>, using
+ * final pipeline accounting stored in <pli>. This version
+ * is similar to cm_tophits_Targets() but reports a different
+ * set of fields.
+ *
+ * The tophits list <th> should already be sorted (see
+ * <cm_tophits_Sort()> and thresholded (see
+ * <cm_tophits_Threshold>).
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+cm_tophits_F3Targets(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli)
+{
+ int status;
+ int h,i;
+ int namew;
+ int posw;
+ int descw;
+ char *showname;
+ int nprinted = 0;
+ char lseq, rseq;
+
+ char *namestr = NULL;
+ char *descstr = NULL;
+ char *posstr = NULL;
+
+ /* when --acc is on, we'll show accession if available, and fall back to name */
+ if (pli->show_accessions) namew = ESL_MAX((pli->mode == CM_SEARCH_SEQS ? 8 : 9), cm_tophits_GetMaxShownLength(th));
+ else namew = ESL_MAX((pli->mode == CM_SEARCH_SEQS ? 8 : 9), cm_tophits_GetMaxNameLength(th));
+ descw = ESL_MAX((pli->mode == CM_SEARCH_SEQS ? 9 : 8), cm_tophits_GetMaxDescLength(th));
+ posw = ESL_MAX(6, cm_tophits_GetMaxPositionLength(th));
+
+ ESL_ALLOC(namestr, sizeof(char) * (namew+1));
+ ESL_ALLOC(descstr, sizeof(char) * (descw+1));
+ ESL_ALLOC(posstr, sizeof(char) * (posw+1));
+
+ for(i = 0; i < namew; i++) { namestr[i] = '-'; } namestr[namew] = '\0';
+ for(i = 0; i < descw; i++) { descstr[i] = '-'; } descstr[descw] = '\0';
+ for(i = 0; i < posw; i++) { posstr[i] = '-'; } posstr[posw] = '\0';
+
+ fprintf(ofp, "Windows that survived F3 filter stage:\n");
+ fprintf(ofp, " %1s %-*s %-*s %6s %*s %*s\n", "", namew, (pli->mode == CM_SEARCH_SEQS) ? "sequence" : "modelname", descw, (pli->mode == CM_SEARCH_SEQS) ? "modelname" : "sequence", " score", posw, "start", posw, "end");
+ fprintf(ofp, " %1s %*s %*s %6s %*s %*s\n", "", namew, namestr, descw, descstr, "------", posw, posstr, posw, posstr);
+
+ nprinted = 0;
+ for (h = 0; h < th->N; h++) {
+ if (th->hit[h]->flags & CM_HIT_IS_REPORTED) {
+
+ if (pli->show_accessions) {
+ /* the --acc option: report accessions rather than names if possible */
+ if (th->hit[h]->acc != NULL && th->hit[h]->acc[0] != '\0') showname = th->hit[h]->acc;
+ else showname = th->hit[h]->name;
+ }
+ else {
+ showname = th->hit[h]->name;
+ }
+ if(th->hit[h]->in_rc) {
+ lseq = th->hit[h]->start == th->hit[h]->srcL ? '[' : '.';
+ rseq = th->hit[h]->stop == 1 ? ']' : '.';
+ }
+ else {
+ lseq = th->hit[h]->start == 1 ? '[' : '.';
+ rseq = th->hit[h]->stop == th->hit[h]->srcL ? ']' : '.';
+ }
+
+ fprintf(ofp, " %c %-*s %-*s %6.1f %*" PRId64 " %*" PRId64 " %c %c%c\n",
+ (th->hit[h]->flags & CM_HIT_IS_INCLUDED ? '!' : '?'),
+ namew, showname,
+ descw, th->hit[h]->desc,
+ th->hit[h]->score,
+ posw, th->hit[h]->start,
+ posw, th->hit[h]->stop,
+ (th->hit[h]->in_rc == TRUE) ? '-' : '+',
+ lseq, rseq);
+ nprinted++;
+ }
+ }
+ if (th->nreported == 0) fprintf(ofp, "\n [No hits detected that satisfy reporting thresholds]\n");
+
+ if(namestr != NULL) free(namestr);
+ if(descstr != NULL) free(descstr);
+ if(posstr != NULL) free(posstr);
+
+ return eslOK;
+
+ ERROR:
+ if(namestr != NULL) free(namestr);
+ if(descstr != NULL) free(descstr);
+ if(posstr != NULL) free(posstr);
+
+ return status;
+}
+
/* Function: cm_tophits_HitAlignments()
* Synopsis: Standard output format for alignments.
* Incept: EPN, Tue May 24 13:50:53 2011
@@ -1236,7 +1709,7 @@ cm_tophits_HitAlignments(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int textw)
lmod, rmod,
th->hit[h]->start,
th->hit[h]->stop,
- (th->hit[h]->start < th->hit[h]->stop ? '+' : '-'),
+ (th->hit[h]->in_rc == TRUE) ? '-' : '+',
lseq, rseq);
if(th->hit[h]->ad->ppline) { fprintf(ofp, " %4.2f %5s %4.2f", th->hit[h]->ad->avgpp, cm_alidisplay_TruncString(th->hit[h]->ad), th->hit[h]->ad->gc); }
else { fprintf(ofp, " %6.1f %5s %4.2f", th->hit[h]->ad->sc, cm_alidisplay_TruncString(th->hit[h]->ad), th->hit[h]->ad->gc); }
@@ -1297,6 +1770,7 @@ cm_tophits_HitAlignmentStatistics(FILE *ofp, CM_TOPHITS *th, int used_hb, int us
int is_reported;
int is_included;
int is_removed_duplicate;
+ /*int is_marked_duplicate;*/ /* not used, currently */
/* variables for alignments for all hits */
int64_t all_naln = 0; /* total number alignments */
@@ -1362,6 +1836,7 @@ cm_tophits_HitAlignmentStatistics(FILE *ofp, CM_TOPHITS *th, int used_hb, int us
is_reported = (th->unsrt[h].flags & CM_HIT_IS_REPORTED) ? TRUE : FALSE;
is_included = (th->unsrt[h].flags & CM_HIT_IS_INCLUDED) ? TRUE : FALSE;
is_removed_duplicate = (th->unsrt[h].flags & CM_HIT_IS_REMOVED_DUPLICATE) ? TRUE : FALSE;
+ /*is_marked_duplicate = (th->unsrt[h].flags & CM_HIT_IS_MARKED_OVERLAP) ? TRUE : FALSE;*/
if(th->unsrt[h].ad != NULL) {
all_naln++;
all_tot_matrix_Mb += th->unsrt[h].ad->matrix_Mb;
@@ -1676,15 +2151,16 @@ cm_tophits_Alignment(CM_t *cm, const CM_TOPHITS *th, char *errbuf, ESL_MSA **ret
* 3. Tabular (parsable) output of pipeline results.
*****************************************************************/
-/* Function: cm_tophits_TabularTargets()
- * Synopsis: Output parsable table of per-sequence hits.
+/* Function: cm_tophits_TabularTargets1()
+ * Synopsis: Output parsable table of per-sequence hits in format '1'.
* Incept: EPN, Tue May 24 14:24:06 2011
* SRE, Wed Mar 18 15:26:17 2009 [Janelia] (p7_tophits.c)
*
* Purpose: Output a parseable table of reportable per-sequence hits
* in sorted tophits list <th> in an easily parsed ASCII
* tabular form to stream <ofp>, using final pipeline
- * accounting stored in <pli>.
+ * accounting stored in <pli>. Format #1 (only format
+ * output by 1.1rc1->1.1.1).
*
* Designed to be concatenated for multiple queries and
* multiple top hits list.
@@ -1692,7 +2168,7 @@ cm_tophits_Alignment(CM_t *cm, const CM_TOPHITS *th, char *errbuf, ESL_MSA **ret
* Returns: <eslOK> on success.
*/
int
-cm_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header)
+cm_tophits_TabularTargets1(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header)
{
int status;
int i;
@@ -1734,6 +2210,7 @@ cm_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM
}
for (h = 0; h < th->N; h++) {
if (th->hit[h]->flags & CM_HIT_IS_REPORTED) {
+ // fprintf(ofp, "%-*s %-*s %-*s %-*s %3s %8d %8d %*" PRId64 " %*" PRId64 " %6s %5s %4d %4.2f %5.1f %6.1f %9.2g %-3s %s\n",
fprintf(ofp, "%-*s %-*s %-*s %-*s %3s %8d %8d %*" PRId64 " %*" PRId64 " %6s %5s %4d %4.2f %5.1f %6.1f %9.2g %-3s %s\n",
tnamew, th->hit[h]->name,
taccw, ((th->hit[h]->acc != NULL && th->hit[h]->acc[0] != '\0') ? th->hit[h]->acc : "-"),
@@ -1757,7 +2234,7 @@ cm_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM
if(qnamestr != NULL) free(qnamestr);
if(tnamestr != NULL) free(tnamestr);
if(qaccstr != NULL) free(qaccstr);
- if(qaccstr != NULL) free(taccstr);
+ if(taccstr != NULL) free(taccstr);
if(posstr != NULL) free(posstr);
return eslOK;
@@ -1766,12 +2243,471 @@ cm_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM
if(qnamestr != NULL) free(qnamestr);
if(tnamestr != NULL) free(tnamestr);
if(qaccstr != NULL) free(qaccstr);
- if(qaccstr != NULL) free(taccstr);
+ if(taccstr != NULL) free(taccstr);
if(posstr != NULL) free(posstr);
return status;
}
+/* Function: cm_tophits_TabularTargets2()
+ * Synopsis: Output parsable table of per-sequence hits in format '2'.
+ * Incept: EPN, Thu Dec 18 15:06:58 2014
+ * EPN, Tue May 24 14:24:06 2011 (cm_tophits_TabularTargets())
+ * SRE, Wed Mar 18 15:26:17 2009 [Janelia] (p7_tophits.c)
+ *
+ * Purpose: Output a parseable table of reportable per-sequence hits
+ * in sorted tophits list <th> in an easily parsed ASCII
+ * tabular form to stream <ofp>, using final pipeline
+ * accounting stored in <pli>. Format #2.
+ *
+ * Format #2 differs from format 1 (cm_tophits_TabularTargets1(),
+ * the only tabular format available in Infernal 1.1rc1-->1.1.1)
+ * in that overlap information is output here (whether each hit
+ * has a higher scoring overlap and the index of the overlap
+ * as well as fractional overlap), as well as clan information
+ * if it's available.
+ *
+ * Designed to be concatenated for multiple queries and
+ * multiple top hits list.
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+cm_tophits_TabularTargets2(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header, ESL_KEYHASH *clan_name_kh, int skip_overlaps, char *errbuf)
+{
+ int status;
+ int i;
+ int tnamew = ESL_MAX(20, cm_tophits_GetMaxNameLength(th));
+ int qnamew = ESL_MAX(20, strlen(qname));
+ int qaccw = ((qacc != NULL) ? ESL_MAX(9, strlen(qacc)) : 9);
+ int taccw = ESL_MAX(9, cm_tophits_GetMaxAccessionLength(th));
+ int posw = ESL_MAX(8, cm_tophits_GetMaxPositionLength(th));
+ int idxw1 = ESL_MAX(4, integer_textwidth(th->N));
+ int idxw2 = ESL_MAX(6, integer_textwidth(th->N));
+ int clanw = ESL_MAX(9, cm_tophits_GetMaxClanLength(th, clan_name_kh));
+
+ /* variables used only if pli->do_trm_F3 */
+ char lseq, rseq;
+ /* variables used for dealing with overlap annotation */
+ int h; /* counter over hits */
+ int64_t as, ws; /* current hit's sorted index for h->any_oidx and h->win_oidx */
+ int64_t ao, wo; /* current hit's output index for h->any_oidx and h->win_oidx */
+ int64_t *sorted_idxA = NULL; /* [0..h..th->N-1] index of hit h in <th>, the sorted list of hits we're outputting */
+ int64_t *output_idxA = NULL; /* [0..h..th->N-1] index of hit h in output list of hits (not all hits are output, some (often many) are overlaps) */
+ int *has_overlapA = NULL; /* [0..h..th->N-1] 'TRUE' if hit h has any overlapping hits, else 'FALSE' */
+ int maybe_skip; /* set to TRUE or FALSE depending on whether this hit overlaps with another better
+ * scoring one, we'll skip a hit for which maybe_skip==TRUE if skip_overlaps is TRUE
+ */
+ int64_t noutput = 0; /* keeps track of the number of this we have output thus far */
+ int64_t nres, len1, len2; /* number of overlapping residues, and lengths of hits */
+
+ char *qnamestr = NULL;
+ char *tnamestr = NULL;
+ char *qaccstr = NULL;
+ char *taccstr = NULL;
+ char *clanstr = NULL;
+ char *posstr = NULL;
+ char *idxstr1 = NULL;
+ char *idxstr2 = NULL;
+ char *olp_str = NULL;
+ char *any_oidxstr = NULL;
+ char *win_oidxstr = NULL;
+ char *any_ofctstr1 = NULL;
+ char *any_ofctstr2 = NULL;
+ char *win_ofctstr1 = NULL;
+ char *win_ofctstr2 = NULL;
+ char *clannamestr = NULL;
+
+ if(pli->mode != CM_SCAN_MODELS) { /* we'll only possibly have overlaps if in scan mode */
+ ESL_XFAIL(eslEINVAL, errbuf, "Trying to output in format 2, but not in SCAN mode");
+ }
+
+ ESL_ALLOC(idxstr1, sizeof(char) * (idxw1));
+ ESL_ALLOC(idxstr2, sizeof(char) * (idxw2+1));
+ ESL_ALLOC(tnamestr, sizeof(char) * (tnamew+1));
+ ESL_ALLOC(taccstr, sizeof(char) * (taccw+1));
+ ESL_ALLOC(qnamestr, sizeof(char) * (qnamew+1));
+ ESL_ALLOC(qaccstr, sizeof(char) * (qaccw+1));
+ ESL_ALLOC(clanstr, sizeof(char) * (clanw+1));
+ ESL_ALLOC(posstr, sizeof(char) * (posw+1));
+ ESL_ALLOC(olp_str, sizeof(char) * 4);
+ ESL_ALLOC(any_oidxstr, sizeof(char) * (idxw2+1)); /* string for hit index of best scoring overlap */
+ ESL_ALLOC(win_oidxstr, sizeof(char) * (idxw2+1)); /* string for hit index of best scoring overlap that is a 'winner' (has no better scoring overlap) */
+ ESL_ALLOC(any_ofctstr1, sizeof(char) * 7); /* string for fractional overlap b/t current hit and hit any_oidx wrt current hit */
+ ESL_ALLOC(any_ofctstr2, sizeof(char) * 7); /* string for fractional overlap b/t current hit and hit any_oidx wrt hit any_oidx */
+ ESL_ALLOC(win_ofctstr1, sizeof(char) * 7); /* string for fractional overlap b/t current hit and hit win_oidx wrt current hit */
+ ESL_ALLOC(win_ofctstr2, sizeof(char) * 7); /* string for fractional overlap b/t current hit and hit win_oidx wrt hit win_oidx */
+ ESL_ALLOC(clannamestr, sizeof(char) * clanw); /* string for output of clan name */
+
+ for(i = 0; i < idxw1-1; i++) { idxstr1[i] = '-'; } idxstr1[idxw1-1] = '\0'; /* need to account for single '#' */
+ for(i = 0; i < idxw2; i++) { idxstr2[i] = '-'; } idxstr2[idxw2] = '\0';
+ for(i = 0; i < tnamew; i++) { tnamestr[i] = '-'; } tnamestr[tnamew] = '\0';
+ for(i = 0; i < taccw; i++) { taccstr[i] = '-'; } taccstr[taccw] = '\0';
+ for(i = 0; i < qnamew; i++) { qnamestr[i] = '-'; } qnamestr[qnamew] = '\0';
+ for(i = 0; i < qaccw; i++) { qaccstr[i] = '-'; } qaccstr[qaccw] = '\0';
+ for(i = 0; i < clanw; i++) { clanstr[i] = '-'; } clanstr[clanw] = '\0';
+ for(i = 0; i < posw; i++) { posstr[i] = '-'; } posstr[posw] = '\0';
+
+ if(th->N > 0) {
+ ESL_ALLOC(sorted_idxA, sizeof(int64_t) * th->N);
+ ESL_ALLOC(output_idxA, sizeof(int64_t) * th->N);
+ ESL_ALLOC(has_overlapA, sizeof(int) * th->N);
+ for(h = 0; h < th->N; h++) sorted_idxA[h] = -1;
+ for(h = 0; h < th->N; h++) output_idxA[h] = -1;
+ for(h = 0; h < th->N; h++) has_overlapA[h] = FALSE;
+ /* determine which hits are listed as any_oidx or win_oidx for any other hits */
+ for(h = 0; h < th->N; h++) {
+ if(th->hit[h]->any_oidx != -1) has_overlapA[th->hit[h]->any_oidx] = TRUE;
+ if(th->hit[h]->win_oidx != -1) has_overlapA[th->hit[h]->win_oidx] = TRUE;
+ sorted_idxA[th->hit[h]->hit_idx] = h; /* save sorted idx */
+ /* and save the output index we'll use for this hit */
+ if ((th->hit[h]->flags & CM_HIT_IS_REPORTED) && /* hit is REPORTED */
+ (skip_overlaps == FALSE || (! (th->hit[h]->flags & CM_HIT_IS_MARKED_OVERLAP)))) { /* hit won't be skipped b/c it's an overlap */
+ noutput++;
+ output_idxA[h] = noutput; /* save output idx */
+ }
+ }
+ noutput = 0; /* very impt to reset this, so we list first hit as index 1, and not th->N+1 */
+ }
+
+ if (show_header) {
+ if(pli->do_trm_F3) { /* terminated after F3, more compact output (we don't have all the info for the default output mode) */
+ fprintf(ofp, "#%-*s %-*s %-*s %-*s %6s %*s %*s %6s %6s %11s %3s %*s %6s %6s %*s %6s %6s\n",
+ idxw1-1, "idx", tnamew, "target name", qnamew, "query name", clanw, "clan name",
+ "score",
+ posw, "seq from", posw, "seq to",
+ "strand", "bounds", "seqlen",
+ "olp", idxw2, "anyidx", "afrct1", "afrct2", idxw2, "winidx", "wfrct1", "wfrct2");
+ fprintf(ofp, "#%-*s %-*s %-*s %-*s %6s %*s %*s %6s %6s %11s %3s %s %s %s %s %s %s\n",
+ idxw1-1, idxstr1, tnamew, tnamestr, qnamew, qnamestr, clanw, clanstr,
+ "------",
+ posw, posstr, posw, posstr, "------", "------", "-----------", "---", idxstr2, "------", "------", idxstr2, "------", "------");
+ }
+ else { /* pli->do_trm_F3 is FALSE, default output mode */
+ fprintf(ofp, "#%-*s %-*s %-*s %-*s %-*s %-*s %3s %8s %8s %*s %*s %6s %5s %4s %4s %5s %6s %9s %3s %3s %*s %6s %6s %*s %6s %6s %-s\n",
+ idxw1-1, "idx", tnamew, "target name", taccw, "accession", qnamew, "query name", qaccw, "accession", clanw, "clan name",
+ "mdl", "mdl from", "mdl to",
+ posw, "seq from", posw, "seq to",
+ "strand", "trunc", "pass", "gc", "bias", "score", "E-value", "inc",
+ "olp", idxw2, "anyidx", "afrct1", "afrct2", idxw2, "winidx", "wfrct1", "wfrct2", "description of target");
+ fprintf(ofp, "#%-*s %-*s %-*s %-*s %-*s %-*s %-3s %-7s %-7s %*s %*s %6s %5s %4s %4s %5s %6s %9s %3s %3s %s %s %s %s %s %s %s\n",
+ idxw1-1, idxstr1, tnamew, tnamestr, taccw, taccstr, qnamew, qnamestr, qaccw, qaccstr, clanw, clanstr,
+ "---", "--------", "--------",
+ posw, posstr, posw, posstr, "------", "-----", "----", "----", "-----", "------", "---------", "---", "---", idxstr2, "------", "------", idxstr2, "------", "------", "---------------------");
+ }
+ }
+ for (h = 0; h < th->N; h++) {
+ /* next complex 'if' statement checks if will we output info on this hit */
+ if ((th->hit[h]->flags & CM_HIT_IS_REPORTED) && /* hit is REPORTED */
+ ((skip_overlaps == FALSE) || (! (th->hit[h]->flags & CM_HIT_IS_MARKED_OVERLAP)))) { /* hit won't be skipped b/c it's an overlap */
+ as = (th->hit[h]->any_oidx == -1) ? -1 : sorted_idxA[th->hit[h]->any_oidx]; /* for convenience */
+ ws = (th->hit[h]->win_oidx == -1) ? -1 : sorted_idxA[th->hit[h]->win_oidx]; /* for convenience */
+ ao = (th->hit[h]->any_oidx == -1) ? -1 : output_idxA[sorted_idxA[th->hit[h]->any_oidx]]; /* for convenience */
+ wo = (th->hit[h]->win_oidx == -1) ? -1 : output_idxA[sorted_idxA[th->hit[h]->win_oidx]]; /* for convenience */
+
+ /* format the strings to print for overlap indices and fractions */
+ if(as != -1) {
+ sprintf(any_oidxstr, "%" PRId64, ao);
+ if(th->hit[h]->in_rc) {
+ if(! th->hit[as]->in_rc) ESL_XFAIL(eslEINCONCEIVABLE, errbuf, "hit %d in_rc (%" PRId64 "..%" PRId64 ") but any_oidx (%" PRId64 " %" PRId64 "..%" PRId64 ") is not", h, th->hit[h]->start, th->hit[h]->stop, as, th->hit[as]->start, th->hit[as]->stop);
+ len1 = th->hit[h]->start - th->hit[h]->stop + 1;
+ len2 = th->hit[as]->start - th->hit[as]->stop + 1;
+ status = overlap_nres(th->hit[h]->stop, th->hit[h]->start, th->hit[as]->stop, th->hit[as]->start, &nres, errbuf);
+ if(status != eslOK) goto ERROR;
+ }
+ else {
+ if(th->hit[as]->in_rc) ESL_XFAIL(eslEINCONCEIVABLE, errbuf, "hit %d not in_rc (%" PRId64 "..%" PRId64 ") but any_oidx (%" PRId64 " %" PRId64 "..%" PRId64 ") is ", h, th->hit[h]->start, th->hit[h]->stop, as, th->hit[as]->start, th->hit[as]->stop);
+ len1 = th->hit[h]->stop - th->hit[h]->start + 1;
+ len2 = th->hit[as]->stop - th->hit[as]->start + 1;
+ status = overlap_nres(th->hit[h]->start, th->hit[h]->stop, th->hit[as]->start, th->hit[as]->stop, &nres, errbuf);
+ if(status != eslOK) goto ERROR;
+ }
+ sprintf(any_ofctstr1, "%6.3f", (float) nres / (float) len1);
+ sprintf(any_ofctstr2, "%6.3f", (float) nres / (float) len2);
+ }
+ if(ws != -1 && ws != as) { /* only calculate the win_* values if it's not identical to the any_* */
+ sprintf(win_oidxstr, "%" PRId64, wo);
+ if(th->hit[h]->in_rc) {
+ if(! th->hit[ws]->in_rc) ESL_XFAIL(eslEINCONCEIVABLE, errbuf, "hit %d in_rc (%" PRId64 "..%" PRId64 ") but win_oidx (%" PRId64 " %" PRId64 "..%" PRId64 ") is not", h, th->hit[h]->start, th->hit[h]->stop, ws, th->hit[ws]->start, th->hit[ws]->stop);
+ len1 = th->hit[h]->start - th->hit[h]->stop + 1;
+ len2 = th->hit[ws]->start - th->hit[ws]->stop + 1;
+ status = overlap_nres(th->hit[h]->stop, th->hit[h]->start, th->hit[ws]->stop, th->hit[ws]->start, &nres, errbuf);
+ if(status != eslOK) goto ERROR;
+ }
+ else {
+ if(th->hit[ws]->in_rc) ESL_XFAIL(eslEINCONCEIVABLE, errbuf, "hit %d not in_rc (%" PRId64 "..%" PRId64 ") but win_oidx (%" PRId64 " %" PRId64 "..%" PRId64 ") is ", h, th->hit[h]->start, th->hit[h]->stop, ws, th->hit[ws]->start, th->hit[ws]->stop);
+ len1 = th->hit[h]->stop - th->hit[h]->start + 1;
+ len2 = th->hit[ws]->stop - th->hit[ws]->start + 1;
+ status = overlap_nres(th->hit[h]->start, th->hit[h]->stop, th->hit[ws]->start, th->hit[ws]->stop, &nres, errbuf);
+ if(status != eslOK) goto ERROR;
+ }
+ sprintf(win_ofctstr1, "%6.3f", (float) nres / (float) len1);
+ sprintf(win_ofctstr2, "%6.3f", (float) nres / (float) len2);
+ }
+ if (th->hit[h]->flags & CM_HIT_IS_MARKED_OVERLAP) { sprintf(olp_str, " = "); maybe_skip = TRUE; }
+ else if(has_overlapA[th->hit[h]->hit_idx] == TRUE) { sprintf(olp_str, " ^ "); maybe_skip = FALSE; }
+ else { sprintf(olp_str, " * "); maybe_skip = FALSE; }
+
+ /* make sure the clan name string makes sense */
+ if(th->hit[h]->clan_idx != -1) {
+ if(clan_name_kh == NULL) ESL_XFAIL(eslEINVAL, errbuf, "trying to output tabular output of clans, but clan data structure is missing...");
+ if(th->hit[h]->clan_idx >= esl_keyhash_GetNumber(clan_name_kh)) ESL_XFAIL(eslEINVAL, errbuf, "trying to output tabular output of clans, but clan index is invalid...");
+ }
+
+ if((skip_overlaps == FALSE) || (maybe_skip == FALSE)) { /* if skip_overlaps is TRUE, potentially skip this hit in the tabular output */
+ noutput++;
+ if(pli->do_trm_F3) { /* special 'terminate after F3 mode', different output */
+ if(th->hit[h]->in_rc) {
+ lseq = th->hit[h]->start == th->hit[h]->srcL ? '[' : '.';
+ rseq = th->hit[h]->stop == 1 ? ']' : '.';
+ }
+ else {
+ lseq = th->hit[h]->start == 1 ? '[' : '.';
+ rseq = th->hit[h]->stop == th->hit[h]->srcL ? ']' : '.';
+ }
+ fprintf(ofp, "%-*" PRId64 " %-*s %-*s %-*s %6.1f %*" PRId64 " %*" PRId64 " %6s %4s%c%c %11" PRId64 " %3s %*s %6s %6s %*s %6s %6s\n",
+ idxw1, noutput,
+ tnamew, th->hit[h]->name,
+ qnamew, qname,
+ clanw, (th->hit[h]->clan_idx == -1) ? "-" : esl_keyhash_Get(clan_name_kh, th->hit[h]->clan_idx),
+ th->hit[h]->score,
+ posw, th->hit[h]->start,
+ posw, th->hit[h]->stop,
+ (th->hit[h]->in_rc == TRUE) ? "-" : "+",
+ "", lseq, rseq, th->hit[h]->srcL,
+ olp_str,
+ idxw2, (as == -1) ? "-" : any_oidxstr,
+ (as == -1) ? "-" : any_ofctstr1,
+ (as == -1) ? "-" : any_ofctstr2,
+ idxw2, (ws == -1 || ws == as) ? ((ws == -1) ? "-" : "\"") : win_oidxstr,
+ (ws == -1 || ws == as) ? ((ws == -1) ? "-" : "\"") : win_ofctstr1,
+ (ws == -1 || ws == as) ? ((ws == -1) ? "-" : "\"") : win_ofctstr2);
+ }
+ else { /* pli->do_trm_F3 is FALSE, default output mode */
+ fprintf(ofp, "%-*" PRId64 " %-*s %-*s %-*s %-*s %-*s %3s %8d %8d %*" PRId64 " %*" PRId64 " %6s %5s %4d %4.2f %5.1f %6.1f %9.2g %3s %3s %*s %6s %6s %*s %6s %6s %s\n",
+ idxw1, noutput,
+ tnamew, th->hit[h]->name,
+ taccw, ((th->hit[h]->acc != NULL && th->hit[h]->acc[0] != '\0') ? th->hit[h]->acc : "-"),
+ qnamew, qname,
+ qaccw, ((qacc != NULL && qacc[0] != '\0') ? qacc : "-"),
+ clanw, (th->hit[h]->clan_idx == -1) ? "-" : esl_keyhash_Get(clan_name_kh, th->hit[h]->clan_idx),
+ th->hit[h]->hmmonly ? "hmm" : "cm",
+ th->hit[h]->ad->cfrom_emit, th->hit[h]->ad->cto_emit,
+ posw, th->hit[h]->start,
+ posw, th->hit[h]->stop,
+ (th->hit[h]->in_rc == TRUE) ? "-" : "+",
+ cm_alidisplay_TruncString(th->hit[h]->ad),
+ th->hit[h]->pass_idx,
+ th->hit[h]->ad->gc,
+ th->hit[h]->bias,
+ th->hit[h]->score,
+ th->hit[h]->evalue,
+ (th->hit[h]->flags & CM_HIT_IS_INCLUDED ? " ! " : " ? "),
+ olp_str,
+ idxw2, (as == -1) ? "-" : any_oidxstr,
+ (as == -1) ? "-" : any_ofctstr1,
+ (as == -1) ? "-" : any_ofctstr2,
+ idxw2, (ws == -1 || ws == as) ? ((ws == -1) ? "-" : "\"") : win_oidxstr,
+ (ws == -1 || ws == as) ? ((ws == -1) ? "-" : "\"") : win_ofctstr1,
+ (ws == -1 || ws == as) ? ((ws == -1) ? "-" : "\"") : win_ofctstr2,
+ (th->hit[h]->desc != NULL) ? th->hit[h]->desc : "-");
+ }
+ }
+ }
+ }
+ if(qnamestr != NULL) free(qnamestr);
+ if(tnamestr != NULL) free(tnamestr);
+ if(qaccstr != NULL) free(qaccstr);
+ if(taccstr != NULL) free(taccstr);
+ if(clanstr != NULL) free(clanstr);
+ if(posstr != NULL) free(posstr);
+ if(idxstr1 != NULL) free(idxstr1);
+ if(idxstr2 != NULL) free(idxstr2);
+ if(olp_str != NULL) free(olp_str);
+ if(any_oidxstr != NULL) free(any_oidxstr);
+ if(win_oidxstr != NULL) free(win_oidxstr);
+ if(any_ofctstr1 != NULL) free(any_ofctstr1);
+ if(any_ofctstr2 != NULL) free(any_ofctstr2);
+ if(win_ofctstr1 != NULL) free(win_ofctstr1);
+ if(win_ofctstr2 != NULL) free(win_ofctstr2);
+ if(clannamestr != NULL) free(clannamestr);
+ if(sorted_idxA != NULL) free(sorted_idxA);
+ if(output_idxA != NULL) free(output_idxA);
+ if(has_overlapA != NULL) free(has_overlapA);
+
+ return eslOK;
+
+ ERROR:
+ if(qnamestr != NULL) free(qnamestr);
+ if(tnamestr != NULL) free(tnamestr);
+ if(qaccstr != NULL) free(qaccstr);
+ if(taccstr != NULL) free(taccstr);
+ if(clanstr != NULL) free(clanstr);
+ if(posstr != NULL) free(posstr);
+ if(idxstr1 != NULL) free(idxstr1);
+ if(idxstr2 != NULL) free(idxstr2);
+ if(olp_str != NULL) free(olp_str);
+ if(any_oidxstr != NULL) free(any_oidxstr);
+ if(win_oidxstr != NULL) free(win_oidxstr);
+ if(any_ofctstr1 != NULL) free(any_ofctstr1);
+ if(any_ofctstr2 != NULL) free(any_ofctstr2);
+ if(win_ofctstr1 != NULL) free(win_ofctstr1);
+ if(win_ofctstr2 != NULL) free(win_ofctstr2);
+ if(clannamestr != NULL) free(clannamestr);
+ if(sorted_idxA != NULL) free(sorted_idxA);
+ if(output_idxA != NULL) free(output_idxA);
+ if(has_overlapA != NULL) free(has_overlapA);
+
+ return status;
+}
+
+/* Helper function for determining overlap fractions.
+ *
+ * overlap_nres(): determines the number of residues overlapping between
+ * from1..to1 and from2..to2, and returns it in <*ret_nres>.
+ * eturns 0 if no overlap.
+ *
+ * The following must hold: from1 <= to1, from2 <= to2.
+ * If either is not true, then we return eslEINVAL and
+ * fill errbuf with an error message.
+ *
+ */
+int64_t overlap_nres(int64_t from1, int64_t to1, int64_t from2, int64_t to2, int64_t *ret_nres, char *errbuf)
+{
+ int64_t tmp;
+ int64_t nres;
+
+ if(from1 > to1) ESL_FAIL(eslEINVAL, errbuf, "in overlap_nres, from1 (%" PRId64 ") > to1 (%" PRId64 ")", from1, to1);
+ if(from2 > to2) ESL_FAIL(eslEINVAL, errbuf, "in overlap_nres, from2 (%" PRId64 ") > to2 (%" PRId64 ")", from2, to2);
+
+ /* wwap if nec so that from1 <= <from2. */
+ if(from1 > from2) {
+ tmp = from1; from1 = from2; from2 = tmp;
+ tmp = to1; to1 = to2; to2 = tmp;
+ }
+
+ /* 3 possible cases:
+ * Case 1. from1 <= to1 < from2 <= to2 overlap is 0
+ * Case 2. from1 <= from2 <= to1 < to2
+ * Case 3. from1 <= from2 <= to2 <= to1
+ */
+ if (to1 < from2) { nres = 0; } /* case 1 */
+ else if(to1 < to2) { nres = (to1 - from2 + 1); } /* case 2 */
+ else if(to2 <= to1) { nres = (to2 - from2 + 1); } /* case 3 */
+ else { ESL_FAIL(eslEINCONCEIVABLE, errbuf, "unforeseen case in overlap_nres(), from1..to1 (%" PRId64 "..%" PRId64 ") from2..to 2(%" PRId64 "..%" PRId64 ")", from1, to1, from2, to2); }
+
+ *ret_nres = nres;
+ return eslOK;
+}
+
+/* Function: cm_tophits_F3TabularTargets1()
+ * Synopsis: Output format for a top target hits list in special
+ * 'terminate after filter stage F3' mode.
+ *
+ * Incept: EPN, Wed Oct 22 14:42:48 2014
+ * SRE, Tue Dec 9 09:10:43 2008 [Janelia] (p7_tophits.c)
+ *
+ * Purpose: Output a parseable table of reportable per-sequence hits
+ * in sorted tophits list <th> in an easily parsed ASCII
+ * tabular form to stream <ofp>, using final pipeline
+ * accounting stored in <pli>. This version is similar
+ * to cm_tophits_TabularTargets() but reports a
+ * different set of fields. Mostly the same fields that are
+ * printed in cm_tophits_F3Targets() are printed here.
+ *
+ * Purpose: Output a list of the reportable top target hits in <th>
+ * in human-readable ASCII text format to stream <ofp>, using
+ * final pipeline accounting stored in <pli>. This version
+ * is similar to cm_tophits_TabularTargets() but reports a different
+ * set of fields.
+ *
+ * The tophits list <th> should already be sorted (see
+ * <cm_tophits_Sort*()> and thresholded (see
+ * <cm_tophits_Threshold>).
+ *
+ * Returns: <eslOK> on success.
+ */
+int
+cm_tophits_F3TabularTargets1(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header)
+{
+ int status;
+ int h,i;
+ int namew;
+ int posw;
+ int descw;
+ char *showname;
+ char lseq, rseq;
+
+ char *namestr = NULL;
+ char *descstr = NULL;
+ char *posstr = NULL;
+
+ /* when --acc is on, we'll show accession if available, and fall back to name */
+ if (pli->show_accessions) namew = ESL_MAX((pli->mode == CM_SEARCH_SEQS ? 9 : 10), cm_tophits_GetMaxShownLength(th));
+ else namew = ESL_MAX((pli->mode == CM_SEARCH_SEQS ? 9 : 10), cm_tophits_GetMaxNameLength(th));
+ descw = ESL_MAX((pli->mode == CM_SEARCH_SEQS ? 9 : 8), cm_tophits_GetMaxDescLength(th));
+ posw = ESL_MAX(6, cm_tophits_GetMaxPositionLength(th));
+
+ ESL_ALLOC(namestr, sizeof(char) * (namew+1));
+ ESL_ALLOC(descstr, sizeof(char) * (descw+1));
+ ESL_ALLOC(posstr, sizeof(char) * (posw+1));
+
+ namestr[0] = '#';
+ for(i = 1; i < namew; i++) { namestr[i] = '-'; } namestr[namew] = '\0';
+ for(i = 0; i < descw; i++) { descstr[i] = '-'; } descstr[descw] = '\0';
+ for(i = 0; i < posw; i++) { posstr[i] = '-'; } posstr[posw] = '\0';
+
+ if(show_header) {
+ fprintf(ofp, "%-*s %-*s %6s %*s %*s %6s %6s %3s %11s\n", namew, (pli->mode == CM_SEARCH_SEQS) ? "#sequence" : "#modelname", descw, (pli->mode == CM_SEARCH_SEQS) ? "modelname" : "sequence", " score", posw, "start", posw, "end", "strand", "bounds", "ovp", "seqlen");
+ fprintf(ofp, "%*s %*s %6s %*s %*s %6s %6s %3s %11s\n", namew, namestr, descw, descstr, "------", posw, posstr, posw, posstr, "------", "------", "---", "-----------");
+ }
+
+ for (h = 0; h < th->N; h++) {
+ if (th->hit[h]->flags & CM_HIT_IS_REPORTED) {
+
+ if (pli->show_accessions) {
+ /* the --acc option: report accessions rather than names if possible */
+ if (th->hit[h]->acc != NULL && th->hit[h]->acc[0] != '\0') showname = th->hit[h]->acc;
+ else showname = th->hit[h]->name;
+ }
+ else {
+ showname = th->hit[h]->name;
+ }
+ if(th->hit[h]->in_rc) {
+ lseq = th->hit[h]->start == th->hit[h]->srcL ? '[' : '.';
+ rseq = th->hit[h]->stop == 1 ? ']' : '.';
+ }
+ else {
+ lseq = th->hit[h]->start == 1 ? '[' : '.';
+ rseq = th->hit[h]->stop == th->hit[h]->srcL ? ']' : '.';
+ }
+
+ fprintf(ofp, "%-*s %-*s %6.1f %*" PRId64 " %*" PRId64 " %6s %4s%c%c %3s %11" PRId64 "\n",
+ namew, showname,
+ descw, th->hit[h]->desc,
+ th->hit[h]->score,
+ posw, th->hit[h]->start,
+ posw, th->hit[h]->stop,
+ (th->hit[h]->in_rc == TRUE) ? "-" : "+",
+ "", lseq, rseq,
+ ((pli->mode == CM_SCAN_MODELS) ? (th->hit[h]->flags & CM_HIT_IS_MARKED_OVERLAP ? " = " : " * ") : " ? "),
+ th->hit[h]->srcL);
+ }
+ }
+ if(namestr != NULL) free(namestr);
+ if(descstr != NULL) free(descstr);
+ if(posstr != NULL) free(posstr);
+
+ return eslOK;
+
+ ERROR:
+ if(namestr != NULL) free(namestr);
+ if(descstr != NULL) free(descstr);
+ if(posstr != NULL) free(posstr);
+
+ return status;
+}
+
/* Function: cm_tophits_TabularTail()
* Synopsis: Print a trailer on a tabular output file.
* Incept: SRE, Tue Jan 11 16:13:30 2011 [Janelia]
@@ -1865,6 +2801,7 @@ cm_tophits_Dump(FILE *fp, const CM_TOPHITS *th)
fprintf(fp, "nincluded = %" PRId64 "\n", th->nincluded);
fprintf(fp, "is_sorted_by_evalue = %s\n", th->is_sorted_by_evalue ? "TRUE" : "FALSE");
fprintf(fp, "is_sorted_for_overlap_removal = %s\n", th->is_sorted_for_overlap_removal ? "TRUE" : "FALSE");
+ fprintf(fp, "is_sorted_by_overlap_markup = %s\n", th->is_sorted_for_overlap_markup ? "TRUE" : "FALSE");
fprintf(fp, "is_sorted_by_position = %s\n", th->is_sorted_by_position ? "TRUE" : "FALSE");
if(th->is_sorted_by_evalue) {
for (i = 0; i < th->N; i++) {
@@ -1884,6 +2821,12 @@ cm_tophits_Dump(FILE *fp, const CM_TOPHITS *th)
cm_hit_Dump(fp, th->hit[i]);
}
}
+ else if(th->is_sorted_for_overlap_markup) {
+ for (i = 0; i < th->N; i++) {
+ fprintf(fp, "OVERLAP MARKUP SORTED HIT %" PRId64 ":\n", i);
+ cm_hit_Dump(fp, th->hit[i]);
+ }
+ }
else {
for (i = 0; i < th->N; i++) {
fprintf(fp, "UNSORTED HIT %" PRId64 ":\n", i);
@@ -1975,21 +2918,28 @@ cm_hit_Dump(FILE *fp, const CM_HIT *h)
{
fprintf(fp, "CM_HIT dump\n");
fprintf(fp, "------------------\n");
- fprintf(fp, "name = %s\n", h->name);
- fprintf(fp, "acc = %s\n", (h->acc != NULL) ? h->acc : "NULL");
- fprintf(fp, "desc = %s\n", (h->desc != NULL) ? h->desc : "NULL");
- fprintf(fp, "cm_idx = %" PRId64 "\n", h->cm_idx);
- fprintf(fp, "seq_idx = %" PRId64 "\n", h->seq_idx);
- fprintf(fp, "pass_idx = %d\n", h->pass_idx);
- fprintf(fp, "start = %" PRId64 "\n", h->start);
- fprintf(fp, "stop = %" PRId64 "\n", h->stop);
- fprintf(fp, "srcL = %" PRId64 "\n", h->srcL);
- fprintf(fp, "in_rc = %s\n", h->in_rc ? "TRUE" : "FALSE");
- fprintf(fp, "root = %d\n", h->root);
- fprintf(fp, "mode = %s\n", MarginalMode(h->mode));
- fprintf(fp, "score = %f\n", h->score);
- fprintf(fp, "pvalue = %f\n", h->pvalue);
- fprintf(fp, "evalue = %f\n", h->evalue);
+ fprintf(fp, "hit_idx = %" PRId64 "\n", h->hit_idx);
+ fprintf(fp, "name = %s\n", h->name);
+ fprintf(fp, "acc = %s\n", (h->acc != NULL) ? h->acc : "NULL");
+ fprintf(fp, "desc = %s\n", (h->desc != NULL) ? h->desc : "NULL");
+ fprintf(fp, "cm_idx = %" PRId64 "\n", h->cm_idx);
+ fprintf(fp, "clan_idx = %d\n", h->clan_idx);
+ fprintf(fp, "seq_idx = %" PRId64 "\n", h->seq_idx);
+ fprintf(fp, "pass_idx = %d\n", h->pass_idx);
+ fprintf(fp, "start = %" PRId64 "\n", h->start);
+ fprintf(fp, "stop = %" PRId64 "\n", h->stop);
+ fprintf(fp, "srcL = %" PRId64 "\n", h->srcL);
+ fprintf(fp, "in_rc = %s\n", h->in_rc ? "TRUE" : "FALSE");
+ fprintf(fp, "root = %d\n", h->root);
+ fprintf(fp, "mode = %s\n", MarginalMode(h->mode));
+ fprintf(fp, "score = %f\n", h->score);
+ fprintf(fp, "pvalue = %f\n", h->pvalue);
+ fprintf(fp, "evalue = %f\n", h->evalue);
+ fprintf(fp, "has_evalue = %s\n", h->has_evalue ? "TRUE" : "FALSE");
+ fprintf(fp, "any_oidx = %" PRId64 "\n", h->any_oidx);
+ fprintf(fp, "win_oidx = %" PRId64 "\n", h->win_oidx);
+ fprintf(fp, "any_bitE = %f\n", h->any_bitE);
+ fprintf(fp, "win_bitE = %f\n", h->win_bitE);
if(h->flags == 0) {
fprintf(fp, "flags = NONE\n");
}
@@ -1998,6 +2948,7 @@ cm_hit_Dump(FILE *fp, const CM_HIT *h)
if(h->flags & CM_HIT_IS_REPORTED) fprintf(fp, "\tCM_HIT_IS_REPORTED\n");
if(h->flags & CM_HIT_IS_INCLUDED) fprintf(fp, "\tCM_HIT_IS_INCLUDED\n");
if(h->flags & CM_HIT_IS_REMOVED_DUPLICATE) fprintf(fp, "\tCM_HIT_IS_REMOVED_DUPLICATE\n");
+ if(h->flags & CM_HIT_IS_MARKED_OVERLAP) fprintf(fp, "\tCM_HIT_IS_MARKED_OVERLAP\n");
}
if(h->ad == NULL) {
fprintf(fp, "ad = NULL\n");
@@ -2078,6 +3029,7 @@ main(int argc, char **argv)
char desc[] = "Test description for the purposes of making the benchmark allocate space";
int i,j;
int nhits;
+ int nhits_unmarked;
int status;
char errbuf[eslERRBUFSIZE];
@@ -2120,7 +3072,7 @@ main(int argc, char **argv)
}
esl_stopwatch_Stop(w);
- esl_stopwatch_Display(stdout, w, "# CPU time hit creation: ");
+ esl_stopwatch_Display(stdout, w, "# CPU time hit creation: ");
esl_stopwatch_Start(w);
/* then merge them into one big list in h[0] */
@@ -2130,35 +3082,54 @@ main(int argc, char **argv)
cm_tophits_Destroy(h[j]);
}
esl_stopwatch_Stop(w);
- esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_Merge(): ");
+ esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_Merge(): ");
esl_stopwatch_Start(w);
cm_tophits_SortForOverlapRemoval(h[0]);
+
esl_stopwatch_Stop(w);
- esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_SortForOverlapRemoval(): ");
+ esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_SortForOverlapRemoval(): ");
esl_stopwatch_Start(w);
if(esl_opt_GetBoolean(go, "-v")) cm_tophits_Dump(stdout, h[0]);
- if((status = cm_tophits_RemoveOverlaps(h[0], errbuf)) != eslOK) cm_Fail(errbuf);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h[0], /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+
+ esl_stopwatch_Stop(w);
+ esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_RemoveOrMarkOverlaps() (removing): ");
+ esl_stopwatch_Start(w);
+
+ cm_tophits_SortForOverlapMarkup(h[0], FALSE);
esl_stopwatch_Stop(w);
- esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_RemoveOverlaps(): ");
+ esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_SortForOverlapMarkup(): ");
+ esl_stopwatch_Start(w);
+
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h[0], /*do_clans=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+
+ if(esl_opt_GetBoolean(go, "-v")) cm_tophits_Dump(stdout, h[0]);
+
+ esl_stopwatch_Stop(w);
+ esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_RemoveOrMarkOverlaps() (marking): ");
esl_stopwatch_Start(w);
cm_tophits_SortByEvalue(h[0]);
esl_stopwatch_Stop(w);
- esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_SortByEvalue(): ");
+ esl_stopwatch_Display(stdout, w, "# CPU time cm_tophits_SortByEvalue(): ");
if(esl_opt_GetBoolean(go, "-v")) cm_tophits_Dump(stdout, h[0]);
/* determine number of valid (not removed) hits */
nhits = 0;
+ nhits_unmarked = 0;
for(i = 0; i < h[0]->N; i++) {
if(! (h[0]->hit[i]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
nhits++;
}
+ if(! (h[0]->hit[i]->flags & CM_HIT_IS_MARKED_OVERLAP)) {
+ nhits_unmarked++;
+ }
}
printf("# number of lists: %d\n", M);
@@ -2167,7 +3138,8 @@ main(int argc, char **argv)
printf("# number of models %d\n", Y);
printf("# initial number of hits %d\n", N*M);
printf("# hit length %d\n", hitlen);
- printf("# number of non-overlapping hits %d\n", nhits);
+ printf("# number of non-removed hits %d\n", nhits);
+ printf("# number of non-marked hits %d\n", nhits_unmarked);
cm_tophits_Destroy(h[0]);
status = eslOK;
@@ -2192,7 +3164,7 @@ main(int argc, char **argv)
#ifdef CM_TOPHITS_TESTDRIVE
/*
gcc -o cm_tophits_utest -std=gnu99 -g -O2 -I. -L. -I../hmmer/src -L../hmmer/src -I../easel -L../easel -DCM_TOPHITS_TESTDRIVE cm_tophits.c -linfernal -lhmmer -leasel -lm
- ./tophits_test
+ ./cm_tophits_utest
*/
#include "esl_config.h"
#include "p7_config.h"
@@ -2236,6 +3208,8 @@ main(int argc, char **argv)
CM_TOPHITS *h1 = NULL;
CM_TOPHITS *h2 = NULL;
CM_TOPHITS *h3 = NULL;
+ CM_TOPHITS *h4 = NULL;
+ CM_TOPHITS *h5 = NULL;
char name[] = "not_unique_name";
char acc[] = "not_unique_acc";
char desc[] = "Test description for the purposes of making the test driver allocate space";
@@ -2247,6 +3221,8 @@ main(int argc, char **argv)
h1 = cm_tophits_Create();
h2 = cm_tophits_Create();
h3 = cm_tophits_Create();
+ h4 = cm_tophits_Create();
+ h5 = cm_tophits_Create();
for (i = 0; i < N; i++)
{
@@ -2258,7 +3234,7 @@ main(int argc, char **argv)
hit->start = esl_rnd_Roll(r, L);
hit->stop = esl_rnd_Roll(r, L);
hit->score = esl_random(r);
- hit->evalue = esl_random(r) + 5.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this greater than 0.1 and less than 200 */
+ hit->evalue = esl_random(r) + 5.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this is greater than 0.1 and less than 200 */
hit->seq_idx = esl_rnd_Roll(r, X);
hit->cm_idx = esl_rnd_Roll(r, Y);
hit->srcL = L;
@@ -2271,7 +3247,7 @@ main(int argc, char **argv)
hit->start = esl_rnd_Roll(r, L);
hit->stop = esl_rnd_Roll(r, L);
hit->score = esl_random(r);
- hit->evalue = esl_random(r) + 1.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this greater than 0.1 and less than 200 */
+ hit->evalue = esl_random(r) + 1.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this is greater than 0.1 and less than 200 */
hit->seq_idx = esl_rnd_Roll(r, X);
hit->cm_idx = esl_rnd_Roll(r, Y);
hit->srcL = L;
@@ -2284,7 +3260,20 @@ main(int argc, char **argv)
hit->start = esl_rnd_Roll(r, L);
hit->stop = esl_rnd_Roll(r, L);
hit->score = esl_random(r);
- hit->evalue = esl_random(r) + 10.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this greater than 0.1 and less than 200 */
+ hit->evalue = esl_random(r) + 10.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this is greater than 0.1 and less than 200 */
+ hit->seq_idx = esl_rnd_Roll(r, X);
+ hit->cm_idx = esl_rnd_Roll(r, Y);
+ hit->srcL = L;
+
+ /* add hit to h4 */
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup(name, -1, &(hit->name));
+ esl_strdup(acc, -1, &(hit->acc));
+ esl_strdup(desc, -1, &(hit->desc));
+ hit->start = esl_rnd_Roll(r, L);
+ hit->stop = esl_rnd_Roll(r, L);
+ hit->score = esl_random(r);
+ hit->evalue = esl_random(r) + 15.0 * (double) (esl_rnd_Roll(r, 10) + 1); /* impt that this is greater than 0.1 and less than 200 */
hit->seq_idx = esl_rnd_Roll(r, X);
hit->cm_idx = esl_rnd_Roll(r, Y);
hit->srcL = L;
@@ -2350,29 +3339,92 @@ main(int argc, char **argv)
hit->cm_idx = 0;
hit->seq_idx = 0;
hit->srcL = L+1;
+
+ /* add similar hits with a different model, to test overlap markup
+ * (as opposed to overlap removal which was tested above)
+ */
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup("Bthird", -1, &(hit->name));
+ hit->start = L;
+ hit->stop = L;
+ hit->score = 20.0;
+ hit->evalue = 0.09;
+ hit->cm_idx = 1;
+ hit->seq_idx = 0;
+ hit->srcL = L+1;
+
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup("Bsecond", -1, &(hit->name));
+ hit->start = L;
+ hit->stop = L;
+ hit->score = 30.0;
+ hit->evalue = 0.009;
+ hit->cm_idx = 2;
+ hit->seq_idx = 0;
+ hit->srcL = L+1;
+
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup("Bfirst", -1, &(hit->name));
+ hit->start = L;
+ hit->stop = L;
+ hit->score = 40.0;
+ hit->evalue = 0.0009;
+ hit->cm_idx = 3;
+ hit->seq_idx = 0;
+ hit->srcL = L+1;
+
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup("Bthirdtolast", -1, &(hit->name));
+ hit->start = L+1;
+ hit->stop = L+1;
+ hit->score = -1.;
+ hit->evalue = 201.0;
+ hit->cm_idx = 4;
+ hit->seq_idx = 0;
+ hit->srcL = L+1;
+
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup("Bsecondtolast", -1, &(hit->name));
+ hit->start = L+1;
+ hit->stop = L+1;
+ hit->score = -11.;
+ hit->evalue = 211.0;
+ hit->cm_idx = 5;
+ hit->seq_idx = 0;
+ hit->srcL = L+1;
+
+ cm_tophits_CreateNextHit(h4, &hit);
+ esl_strdup("Blast", -1, &(hit->name));
+ hit->start = L+1;
+ hit->stop = L+1;
+ hit->score = -21.;
+ hit->evalue = 221.0;
+ hit->cm_idx = 6;
+ hit->seq_idx = 0;
+ hit->srcL = L+1;
cm_tophits_SortForOverlapRemoval(h1);
- if((status = cm_tophits_RemoveOverlaps(h1, errbuf)) != eslOK) cm_Fail(errbuf);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h1, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
cm_tophits_SortByEvalue(h1);
if (strcmp(h1->hit[0]->name, "third") != 0) esl_fatal("sort 1 failed (top is %s = %f)", h1->hit[0]->name, h1->hit[0]->score);
if (strcmp(h1->hit[N+1]->name, "thirdtolast") != 0) esl_fatal("sort 1 failed (last is %s = %f)", h1->hit[N+1]->name, h1->hit[N+1]->score);
cm_tophits_Merge(h1, h2);
cm_tophits_SortForOverlapRemoval(h1);
- if((status = cm_tophits_RemoveOverlaps(h1, errbuf)) != eslOK) cm_Fail(errbuf);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h1, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
cm_tophits_SortByEvalue(h1);
if (strcmp(h1->hit[0]->name, "second") != 0) esl_fatal("sort 2 failed (top is %s = %f)", h1->hit[0]->name, h1->hit[0]->score);
if (strcmp(h1->hit[1]->name, "third") != 0) esl_fatal("sort 2 failed (second is %s = %f)", h1->hit[1]->name, h1->hit[1]->score);
if (strcmp(h1->hit[2*N+2]->name, "thirdtolast") != 0) esl_fatal("sort 2 failed (second to last is %s = %f)", h1->hit[2*N+2]->name, h1->hit[2*N+2]->score);
if (strcmp(h1->hit[2*N+3]->name, "secondtolast") != 0) esl_fatal("sort 2 failed (last is %s = %f)", h1->hit[2*N+3]->name, h1->hit[2*N+3]->score);
- if ( h1->hit[0]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOverlaps failed 1");
- if (! (h1->hit[1]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOverlaps failed 2");
- if ( h1->hit[2*N+2]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOverlaps failed 3");
- if (! (h1->hit[2*N+3]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOverlaps failed 4");
+ if ( h1->hit[0]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 1");
+ if (! (h1->hit[1]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOrMarkOverlaps failed 2");
+ if ( h1->hit[2*N+2]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 3");
+ if (! (h1->hit[2*N+3]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOrMarkOverlaps failed 4");
cm_tophits_Merge(h1, h3);
cm_tophits_SortForOverlapRemoval(h1);
- if((status = cm_tophits_RemoveOverlaps(h1, errbuf)) != eslOK) cm_Fail(errbuf);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h1, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
cm_tophits_SortByEvalue(h1);
if (strcmp(h1->hit[0]->name, "first") != 0) esl_fatal("sort 3 failed (top is %s = %f)", h1->hit[0]->name, h1->hit[0]->score);
if (strcmp(h1->hit[1]->name, "second") != 0) esl_fatal("sort 3 failed (second is %s = %f)", h1->hit[1]->name, h1->hit[1]->score);
@@ -2380,18 +3432,177 @@ main(int argc, char **argv)
if (strcmp(h1->hit[3*N+3]->name, "thirdtolast") != 0) esl_fatal("sort 3 failed (third to last is %s = %f)", h1->hit[3*N+3]->name, h1->hit[3*N+3]->score);
if (strcmp(h1->hit[3*N+4]->name, "secondtolast") != 0) esl_fatal("sort 3 failed (second to last is %s = %f)", h1->hit[3*N+4]->name, h1->hit[3*N+4]->score);
if (strcmp(h1->hit[3*N+5]->name, "last") != 0) esl_fatal("sort 3 failed (last is %s = %f)", h1->hit[3*N+5]->name, h1->hit[3*N+5]->score);
- if ( h1->hit[0]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOverlaps failed 5");
- if (! (h1->hit[1]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOverlaps failed 6");
- if (! (h1->hit[2]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOverlaps failed 7");
- if ( h1->hit[3*N+3]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOverlaps failed 8");
- if (! (h1->hit[3*N+4]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOverlaps failed 9");
- if (! (h1->hit[3*N+5]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOverlaps failed 10");
+ if ( h1->hit[0]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 5");
+ if (! (h1->hit[1]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOrMarkOverlaps failed 6");
+ if (! (h1->hit[2]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOrMarkOverlaps failed 7");
+ if ( h1->hit[3*N+3]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 8");
+ if (! (h1->hit[3*N+4]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOrMarkOverlaps failed 9");
+ if (! (h1->hit[3*N+5]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) esl_fatal("RemoveOrMarkOverlaps failed 10");
+
+ /* test markup, first sort for removal and make sure we don't mark up any overlaps of different models */
+ cm_tophits_Merge(h1, h4);
+ cm_tophits_SortForOverlapRemoval(h1);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h1, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+ cm_tophits_SortByEvalue(h1);
+ if (strcmp(h1->hit[0]->name, "Bfirst") != 0) esl_fatal("sort 4 failed (first is %s = %f)", h1->hit[0]->name, h1->hit[0]->score);
+ if (strcmp(h1->hit[1]->name, "first") != 0) esl_fatal("sort 4 failed (second is %s = %f)", h1->hit[1]->name, h1->hit[1]->score);
+ if (strcmp(h1->hit[2]->name, "Bsecond") != 0) esl_fatal("sort 4 failed (third is %s = %f)", h1->hit[2]->name, h1->hit[2]->score);
+ if (strcmp(h1->hit[3]->name, "second") != 0) esl_fatal("sort 4 failed (fourth is %s = %f)", h1->hit[3]->name, h1->hit[3]->score);
+ if (strcmp(h1->hit[4]->name, "Bthird") != 0) esl_fatal("sort 4 failed (fifth is %s = %f)", h1->hit[4]->name, h1->hit[4]->score);
+ if (strcmp(h1->hit[5]->name, "third") != 0) esl_fatal("sort 4 failed (sixth is %s = %f)", h1->hit[5]->name, h1->hit[5]->score);
+ if (strcmp(h1->hit[4*N+6]->name, "thirdtolast") != 0) esl_fatal("sort 4 failed (sixth to last is %s = %f)", h1->hit[4*N+6]->name, h1->hit[4*N+6]->score);
+ if (strcmp(h1->hit[4*N+7]->name, "Bthirdtolast") != 0) esl_fatal("sort 4 failed (fifth to last is %s = %f)", h1->hit[4*N+7]->name, h1->hit[4*N+7]->score);
+ if (strcmp(h1->hit[4*N+8]->name, "secondtolast") != 0) esl_fatal("sort 4 failed (fourth to last is %s = %f)", h1->hit[4*N+8]->name, h1->hit[4*N+8]->score);
+ if (strcmp(h1->hit[4*N+9]->name, "Bsecondtolast") != 0) esl_fatal("sort 4 failed (third to last is %s = %f)", h1->hit[4*N+9]->name, h1->hit[4*N+9]->score);
+ if (strcmp(h1->hit[4*N+10]->name, "last") != 0) esl_fatal("sort 4 failed (second to last is %s = %f)", h1->hit[4*N+10]->name, h1->hit[4*N+10]->score);
+ if (strcmp(h1->hit[4*N+11]->name, "Blast") != 0) esl_fatal("sort 4 failed (last is %s = %f)", h1->hit[4*N+11]->name, h1->hit[4*N+11]->score);
+ if (h1->hit[0]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 11");
+ if (h1->hit[1]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 12");
+ if (h1->hit[4*N+6]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 13");
+ if (h1->hit[4*N+7]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 14");
+
+ /* second sort for markup and make sure we DO mark up overlaps of different models */
+ cm_tophits_SortForOverlapMarkup(h1, /*do_clans_only=*/FALSE);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h1, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+ cm_tophits_SortByEvalue(h1);
+ if (strcmp(h1->hit[0]->name, "Bfirst") != 0) esl_fatal("sort 5 failed (first is %s = %f)", h1->hit[0]->name, h1->hit[0]->score);
+ if (strcmp(h1->hit[1]->name, "first") != 0) esl_fatal("sort 5 failed (second is %s = %f)", h1->hit[1]->name, h1->hit[1]->score);
+ if (strcmp(h1->hit[2]->name, "Bsecond") != 0) esl_fatal("sort 5 failed (third is %s = %f)", h1->hit[2]->name, h1->hit[2]->score);
+ if (strcmp(h1->hit[3]->name, "second") != 0) esl_fatal("sort 5 failed (fourth is %s = %f)", h1->hit[3]->name, h1->hit[3]->score);
+ if (strcmp(h1->hit[4]->name, "Bthird") != 0) esl_fatal("sort 5 failed (fifth is %s = %f)", h1->hit[4]->name, h1->hit[4]->score);
+ if (strcmp(h1->hit[5]->name, "third") != 0) esl_fatal("sort 5 failed (sixth is %s = %f)", h1->hit[5]->name, h1->hit[5]->score);
+ if (strcmp(h1->hit[4*N+6]->name, "thirdtolast") != 0) esl_fatal("sort 5 failed (sixth to last is %s = %f)", h1->hit[4*N+6]->name, h1->hit[4*N+6]->score);
+ if (strcmp(h1->hit[4*N+7]->name, "Bthirdtolast") != 0) esl_fatal("sort 5 failed (fifth to last is %s = %f)", h1->hit[4*N+7]->name, h1->hit[4*N+7]->score);
+ if (strcmp(h1->hit[4*N+8]->name, "secondtolast") != 0) esl_fatal("sort 5 failed (fourth to last is %s = %f)", h1->hit[4*N+8]->name, h1->hit[4*N+8]->score);
+ if (strcmp(h1->hit[4*N+9]->name, "Bsecondtolast") != 0) esl_fatal("sort 5 failed (third to last is %s = %f)", h1->hit[4*N+9]->name, h1->hit[4*N+9]->score);
+ if (strcmp(h1->hit[4*N+10]->name, "last") != 0) esl_fatal("sort 5 failed (second to last is %s = %f)", h1->hit[4*N+10]->name, h1->hit[4*N+10]->score);
+ if (strcmp(h1->hit[4*N+11]->name, "Blast") != 0) esl_fatal("sort 5 failed (last is %s = %f)", h1->hit[4*N+11]->name, h1->hit[4*N+11]->score);
+ if ( h1->hit[0]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 15");
+ if ( h1->hit[0]->flags & CM_HIT_IS_MARKED_OVERLAP) esl_fatal("RemoveOrMarkOverlaps failed 16");
+ if ( h1->hit[1]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 17");
+ if (! (h1->hit[1]->flags & CM_HIT_IS_MARKED_OVERLAP)) esl_fatal("RemoveOrMarkOverlaps failed 18");
+ if ( h1->hit[4*N+6]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 19");
+ if ( h1->hit[4*N+6]->flags & CM_HIT_IS_MARKED_OVERLAP) esl_fatal("RemoveOrMarkOverlaps failed 20");
+ if ( h1->hit[4*N+7]->flags & CM_HIT_IS_REMOVED_DUPLICATE) esl_fatal("RemoveOrMarkOverlaps failed 21");
+ if (! (h1->hit[4*N+7]->flags & CM_HIT_IS_MARKED_OVERLAP)) esl_fatal("RemoveOrMarkOverlaps failed 22");
+
+ if (h1->hit[1]->any_oidx != (4*N)+9-1) esl_fatal("RemoveOrMarkOverlaps failed 23");
+ if (h1->hit[1]->win_oidx != (4*N)+9-1) esl_fatal("RemoveOrMarkOverlaps failed 24");
+
+ /* One final test of the overlap any_oidx and win_oidx values,
+ * with a fabricated example of a rare case where they're not identical.
+ * We do this in two passes, the first pass will only do 5 hits and
+ * will use the function remove_or_mark_overlaps_one_seq_memeff(),
+ * the second will do 5005 hits and so will use the function
+ * remove_or_mark_overlaps_one_seq_fast().
+ */
+ int p, z;
+ for(p = 0; p <= 1; p++) {
+ if(p > 0) {
+ cm_tophits_Destroy(h5);
+ h5 = cm_tophits_Create();
+ }
+
+ cm_tophits_CreateNextHit(h5, &hit);
+ esl_strdup("hit1", -1, &(hit->name));
+ hit->start = 1;
+ hit->stop = 200;
+ hit->score = 100.;
+ hit->evalue = 0.0001;
+ hit->cm_idx = 0;
+ hit->seq_idx = 0;
+ hit->srcL = 20000;
+
+ cm_tophits_CreateNextHit(h5, &hit);
+ esl_strdup("hit2", -1, &(hit->name));
+ hit->start = 1;
+ hit->stop = 300;
+ hit->score = 90.;
+ hit->evalue = 0.001;
+ hit->cm_idx = 1;
+ hit->seq_idx = 0;
+ hit->srcL = 20000;
+
+ cm_tophits_CreateNextHit(h5, &hit);
+ esl_strdup("hit3", -1, &(hit->name));
+ hit->start = 305;
+ hit->stop = 500;
+ hit->score = 80.;
+ hit->evalue = 0.01;
+ hit->cm_idx = 2;
+ hit->seq_idx = 0;
+ hit->srcL = 20000;
+
+ cm_tophits_CreateNextHit(h5, &hit);
+ esl_strdup("hit4", -1, &(hit->name));
+ hit->start = 201;
+ hit->stop = 500;
+ hit->score = 70.;
+ hit->evalue = 0.1;
+ hit->cm_idx = 3;
+ hit->seq_idx = 0;
+ hit->srcL = 20000;
+
+ cm_tophits_CreateNextHit(h5, &hit);
+ esl_strdup("hit5", -1, &(hit->name));
+ hit->start = 201;
+ hit->stop = 299;
+ hit->score = 60.;
+ hit->evalue = 1;
+ hit->cm_idx = 4;
+ hit->seq_idx = 0;
+ hit->srcL = 20000;
+
+ if(p > 0) {
+ for(z = 0; z < 10000; z++) {
+ cm_tophits_CreateNextHit(h5, &hit);
+ esl_strdup("extrahit", -1, &(hit->name));
+ hit->start = 1000 + z;
+ hit->stop = 1000 + z;
+ hit->score = 30.;
+ hit->evalue = 5;
+ hit->cm_idx = 5;
+ hit->seq_idx = 0;
+ hit->srcL = 20000;
+ }
+ }
+
+ cm_tophits_SortForOverlapRemoval(h5);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h5, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+ cm_tophits_SortForOverlapMarkup(h5, /*do_clans_only=*/FALSE);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(h5, /*do_clans_only=*/FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+
+ cm_tophits_SortByEvalue(h5);
+ if (strcmp(h5->hit[0]->name, "hit1") != 0) esl_fatal("sort 6 failed pass %d (first is %s = %f)", p+1, h5->hit[0]->name, h5->hit[0]->score);
+ if (strcmp(h5->hit[1]->name, "hit2") != 0) esl_fatal("sort 6 failed pass %d (first is %s = %f)", p+1, h5->hit[1]->name, h5->hit[1]->score);
+ if (strcmp(h5->hit[2]->name, "hit3") != 0) esl_fatal("sort 6 failed pass %d (first is %s = %f)", p+1, h5->hit[2]->name, h5->hit[2]->score);
+ if (strcmp(h5->hit[3]->name, "hit4") != 0) esl_fatal("sort 6 failed pass %d (first is %s = %f)", p+1, h5->hit[3]->name, h5->hit[3]->score);
+ if (strcmp(h5->hit[4]->name, "hit5") != 0) esl_fatal("sort 6 failed pass %d (first is %s = %f)", p+1, h5->hit[4]->name, h5->hit[4]->score);
+
+ if (h5->hit[0]->any_oidx != -1) esl_fatal("RemoveOrMarkOverlaps failed 25 (pass %d)", p+1);
+ if (h5->hit[0]->win_oidx != -1) esl_fatal("RemoveOrMarkOverlaps failed 26 (pass %d)", p+1);
+
+ if (h5->hit[1]->any_oidx != 0) esl_fatal("RemoveOrMarkOverlaps failed 27 (pass %d)", p+1);
+ if (h5->hit[1]->any_oidx != 0) esl_fatal("RemoveOrMarkOverlaps failed 28 (pass %d)", p+1);
+
+ if (h5->hit[2]->any_oidx != -1) esl_fatal("RemoveOrMarkOverlaps failed 29 (pass %d)", p+1);
+ if (h5->hit[2]->win_oidx != -1) esl_fatal("RemoveOrMarkOverlaps failed 30 (pass %d)", p+1);
+
+ if (h5->hit[3]->any_oidx != 1) esl_fatal("RemoveOrMarkOverlaps failed 31 (pass %d)", p+1);
+ if (h5->hit[3]->win_oidx != 2) esl_fatal("RemoveOrMarkOverlaps failed 32 (pass %d)", p+1);
+
+ if (h5->hit[4]->any_oidx != 1) esl_fatal("RemoveOrMarkOverlaps failed 33 (pass %d)", p+1);
+ if (h5->hit[4]->win_oidx != -1) esl_fatal("RemoveOrMarkOverlaps failed 34 (pass %d)", p+1);
+
+ } /* end of 'for(p = 0; p <= 1; p++)' */
if (cm_tophits_GetMaxNameLength(h1) != strlen(name)) esl_fatal("GetMaxNameLength() failed");
cm_tophits_Destroy(h1);
cm_tophits_Destroy(h2);
cm_tophits_Destroy(h3);
+ cm_tophits_Destroy(h4);
+ cm_tophits_Destroy(h5);
esl_randomness_Destroy(r);
esl_getopts_Destroy(go);
return eslOK;
@@ -2399,8 +3610,8 @@ main(int argc, char **argv)
#endif /*CM_TOPHITS_TESTDRIVE*/
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cm_trunc.c b/src/cm_trunc.c
index 29b9a1f..1c1a5cb 100644
--- a/src/cm_trunc.c
+++ b/src/cm_trunc.c
@@ -86,7 +86,7 @@ cm_tr_penalties_Create(CM_t *cm, int ignore_inserts, char *errbuf)
*
* Important note: For this discussion we assume that sequences can
* only be truncated at consensus positions, which means we don't
- * have to worry about truncated begins into this is an
+ * have to worry about truncated begins into inserts. This is an
* approximation (also made by Diana and Sean in the 2009 trCYK
* paper) that greatly simplifies the explanation of the calculation
* of the truncation penalties. The examples in my ELN3 notebook
diff --git a/src/cmalign.c b/src/cmalign.c
index b0da260..a0c0a35 100644
--- a/src/cmalign.c
+++ b/src/cmalign.c
@@ -49,7 +49,7 @@
/* 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
+ * format. Max number of residues is CM_MAX_RESIDUE_COUNT from infernal.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 */
@@ -456,7 +456,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
#ifdef HMMER_THREADS
- ESL_ALLOC(init_sqA, sizeof(ESL_SQ *) * (ncpus * 2));
+ ESL_ALLOC(init_sqA, sizeof(ESL_SQ *) * ESL_MAX(1, ncpus * 2)); // avoid malloc of 0
for (k = 0; k < ncpus * 2; k++) {
init_sqA[k] = NULL;
if((init_sqA[k] = esl_sq_CreateDigital(cfg->abc)) == NULL) cm_Fail("Failed to allocate a sequence");
@@ -479,15 +479,15 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
/* Our main loop will loop over reading a single large block
- * (<sq_block>) of sequences, up to MAX_RESIDUE_COUNT
- * (1024*1024=1048576) residues, and up to CMALIGN_MAX_NSEQ
+ * (<sq_block>) of sequences, up to CM_MAX_RESIDUE_COUNT
+ * (100000) residues, and up to CMALIGN_MAX_NSEQ
* sequences (10,000), but potentially less if we reach the end of
* the sequence file first.
*/
/* Read the first block */
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 */
+ sstatus = esl_sqio_ReadBlock(cfg->sqfp, sq_block, -1, -1, FALSE); /* FALSE says: read complete sequences */
nxt_sq_block = sq_block; /* special case of first block read */
while(sstatus == eslOK) {
@@ -517,12 +517,12 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
* fine for a while.
*/
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 */
+ sstatus = esl_sqio_ReadBlock(cfg->sqfp, nxt_sq_block, -1, -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 --ileaved or output\nformat other than Pfam. Use esl-reformat to reformat alignment later.", CMALIGN_MAX_NSEQ, MAX_RESIDUE_COUNT);
+ 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, CM_MAX_RESIDUE_COUNT);
/* align the sequences in the block */
#ifdef HMMER_THREADS
@@ -536,7 +536,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* create a single array of all CM_ALNDATA objects, in original (input) order */
nmap_cur = (nali == 0) ? nmap_data : 0;
nmerged = nseq_cur + nmap_cur;
- ESL_ALLOC(merged_dataA, sizeof(CM_ALNDATA *) * nmerged);
+ ESL_ALLOC(merged_dataA, sizeof(CM_ALNDATA *) * ESL_MAX(1, nmerged)); // avoid malloc of 0
/* prepend mapali data if nec */
if(nmap_cur > 0) {
for(i = 0; i < nmap_cur; i++) merged_dataA[i] = map_dataA[i];
@@ -980,7 +980,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Read the first block */
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 */
+ sstatus = esl_sqio_ReadBlock(cfg->sqfp, sq_block, -1, -1, FALSE); /* FALSE says: read complete sequences */
nxt_sq_block = sq_block; /* special case of first block read */
#if DEBUGMPI
@@ -1009,7 +1009,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
* fine for a while.
*/
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 */
+ sstatus = esl_sqio_ReadBlock(cfg->sqfp, nxt_sq_block, -1, -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);
@@ -1019,7 +1019,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* allocate an array for all CM_ALNDATA objects we'll receive from workers */
nmap_cur = (nali == 0) ? nmap_data : 0;
nmerged = nseq_cur + nmap_cur;
- ESL_ALLOC(merged_dataA, sizeof(CM_ALNDATA *) * (nseq_cur + nmap_cur));
+ ESL_ALLOC(merged_dataA, sizeof(CM_ALNDATA *) * ESL_MAX(1, nseq_cur + nmap_cur)); // avoid malloc of 0
/* prepend mapali data if nec */
if(nmap_cur > 0) {
for(i = 0; i < nmap_cur; i++) merged_dataA[i] = map_dataA[i];
@@ -1403,7 +1403,7 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
}
/* Determine output alignment file format */
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) {
printf("\nERROR: %s is not a recognized output MSA file format\n\n", esl_opt_GetString(go, "--outformat"));
goto ERROR;
@@ -1641,7 +1641,8 @@ initialize_cm(const ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, CM_t *cm)
* Called if the --mapali <f> option is used. Open and read a
* MSA from <f>, confirm it was the same alignment used to
* build the CM, and convert its aligned sequences to
- * parsetrees. Return data (sequences and parsetrees) gets populated into <ret_dataA>.
+ * parsetrees. Return data (sequences and parsetrees) gets
+ * populated into <ret_dataA>.
*
* Also, return the dealigned (cm-> clen length) SS_cons
* from the alignment in <ret_ss>. This will be used to
@@ -1652,7 +1653,7 @@ static int
map_alignment(const char *msafile, CM_t *cm, int noss_used, char *errbuf, CM_ALNDATA ***ret_dataA, int *ret_ndata, char **ret_ss)
{
int status;
- ESLX_MSAFILE *afp = NULL;
+ ESL_MSAFILE *afp = NULL;
ESL_MSA *msa = NULL;
ESL_ALPHABET *abc = (ESL_ALPHABET *) cm->abc; /* removing const'ness to make compiler happy. Safe. */
uint32_t chksum = 0;
@@ -1664,12 +1665,17 @@ map_alignment(const char *msafile, CM_t *cm, int noss_used, char *errbuf, CM_ALN
char *aseq = NULL; /* aligned sequence, req'd by Transmogrify() */
char *ss = NULL; /* msa's SS_cons, if there is one, dealigned to length cm->clen */
int *used_el = NULL; /* [1..msa->alen] used_el[apos] = TRUE if apos is modeled by EL state, else FALSE */
+ /* variables used for copying the structure and possibly removing broken basepairs (for which exactly 1 of the 2 paired positions is a consensus column */
+ int opos; /* position that apos pairs with */
+ int *i_am_rf = NULL; /* [1..msa->alen] i_am_rf[apos] = 1 if alignment position apos is a consensus (RF) position, else 0 */
+ int *msa_ct = NULL; /* [1..msa->alen] msa_ct[apos] = x; x==0 if apos is unpaired, x==opos if apos is paired to opos in msa->ss_cons */
+ char *msa_ss_cons_copy = NULL; /* copy of the msa's SS_cons we remove broken basepair halves from */
- status = eslx_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp);
- if (status != eslOK) eslx_msafile_OpenFailure(afp, status);
+ status = esl_msafile_Open(&abc, msafile, NULL, eslMSAFILE_UNKNOWN, NULL, &afp);
+ if (status != eslOK) esl_msafile_OpenFailure(afp, status);
- status = eslx_msafile_Read(afp, &msa);
- if (status != eslOK) eslx_msafile_ReadFailure(afp, status);
+ status = esl_msafile_Read(afp, &msa);
+ if (status != eslOK) esl_msafile_ReadFailure(afp, status);
if (! (cm->flags & CMH_CHKSUM)) cm_Fail("CM has no checksum. --mapali unreliable without it.");
if (! (cm->flags & CMH_MAP)) cm_Fail("CM has no map. --mapali can't work without it.");
@@ -1680,6 +1686,9 @@ map_alignment(const char *msafile, CM_t *cm, int noss_used, char *errbuf, CM_ALN
ESL_ALLOC(dataA, sizeof(CM_ALNDATA *) * msa->nseq);
for(i = 0; i < msa->nseq; i++) dataA[i] = cm_alndata_Create();
+ /* allocated msa_ct */
+ ESL_ALLOC(msa_ct, sizeof(int) * (msa->alen+1));
+
/* if --noss used, potentially remove ss_cons and replace with no basepairs */
if(noss_used) {
if(msa->ss_cons != NULL) { free(msa->ss_cons); msa->ss_cons = NULL; }
@@ -1689,9 +1698,36 @@ map_alignment(const char *msafile, CM_t *cm, int noss_used, char *errbuf, CM_ALN
/* get SS_cons from the msa possibly for --mapstr, important to do it here, before it is potentially deknotted in HandModelmaker() */
if(msa->ss_cons != NULL) {
+ /* post 1.1.1 release modification [EPN, Tue Jul 28 15:34:45 2015]
+ * Be careful to deal with basepairs where exactly one of the two paired positions is a consensus
+ * position (other is an insert). The way we deal is to remove the structure annotation for the
+ * one that is a consensus position. Replace it with a '.'.
+ */
+ /* set i_am_rf array, i_am_rf[apos] = 1 if apos is a consensus position, else it's 0 */
+ ESL_ALLOC(i_am_rf, sizeof(int) * (msa->alen+1));
+ esl_vec_ISet(i_am_rf, (msa->alen+1), 0);
+ for(cpos = 1; cpos <= cm->clen; cpos++) i_am_rf[cm->map[cpos]] = 1;
+
+ /* get CT array that describes all basepairs in the ss_cons (ct array is 1..alen, not 0..alen-1 */
+ if((status = esl_strdup(msa->ss_cons, msa->alen, &msa_ss_cons_copy)) != eslOK) cm_Fail("Out of memory");
+ if((status = esl_wuss2ct(msa_ss_cons_copy, msa->alen, msa_ct)) != eslOK) cm_Fail("Problem including structure from --mapali, maybe out of memory");
+ for(apos = 1; apos <= msa->alen; apos++) {
+ if(i_am_rf[apos] && msa_ct[apos] != 0) {
+ /* apos is a consensus position that is part of a pair, make
+ * sure it's mate is also consensus, if not, remove the
+ * annotation of both of them from the consensus structure
+ */
+ opos = msa_ct[apos];
+ if(! i_am_rf[opos]) {
+ msa_ss_cons_copy[apos-1] = '.';
+ msa_ss_cons_copy[opos-1] = '.';
+ }
+ }
+ }
+
ESL_ALLOC(ss, sizeof(char) * (cm->clen+1));
ss[cm->clen] = '\0';
- for(cpos = 1; cpos <= cm->clen; cpos++) ss[cpos-1] = msa->ss_cons[cm->map[cpos]-1];
+ for(cpos = 1; cpos <= cm->clen; cpos++) ss[cpos-1] = msa_ss_cons_copy[cm->map[cpos]-1];
}
else {
cm_Fail("--mapali MSA in %s does not have any SS_cons annotation, use --noss if you used --noss with cmbuild", msafile);
@@ -1745,11 +1781,14 @@ map_alignment(const char *msafile, CM_t *cm, int noss_used, char *errbuf, CM_ALN
*ret_ndata = msa->nseq;
*ret_ss = ss;
- eslx_msafile_Close(afp);
+ esl_msafile_Close(afp);
esl_msa_Destroy(msa);
FreeParsetree(mtr);
free(a2u_map);
free(used_el);
+ if(i_am_rf != NULL) free(i_am_rf);
+ if(msa_ct != NULL) free(msa_ct);
+ if(msa_ss_cons_copy != NULL) free(msa_ss_cons_copy);
return eslOK;
@@ -1760,10 +1799,14 @@ map_alignment(const char *msafile, CM_t *cm, int noss_used, char *errbuf, CM_ALN
for(i = 0; i < msa->nseq; i++) cm_alndata_Destroy(dataA[i], TRUE);
dataA = NULL;
}
- if (afp != NULL) eslx_msafile_Close(afp);
- if (msa != NULL) esl_msa_Destroy(msa);
- if (a2u_map != NULL) free(a2u_map);
- if (aseq != NULL) free(aseq);
+ if (afp != NULL) esl_msafile_Close(afp);
+ if (msa != NULL) esl_msa_Destroy(msa);
+ if (a2u_map != NULL) free(a2u_map);
+ if (aseq != NULL) free(aseq);
+ if(i_am_rf != NULL) free(i_am_rf);
+ if(msa_ct != NULL) free(msa_ct);
+ if(msa_ss_cons_copy != NULL) free(msa_ss_cons_copy);
+
ESL_FAIL(status, errbuf, "out of memory");
}
@@ -1833,7 +1876,7 @@ output_alignment(ESL_GETOPTS *go, struct cfg_s *cfg, char *errbuf, CM_t *cm, FIL
* that this all makes sense earlier in the program, and the
* contract of this function asserted so (see above).
*/
- status = eslx_msafile_Write(ofp, msa, (ofp == cfg->tmpfp ? eslMSAFILE_PFAM : cfg->outfmt));
+ status = esl_msafile_Write(ofp, msa, (ofp == cfg->tmpfp ? eslMSAFILE_PFAM : cfg->outfmt));
if (status == eslEMEM) ESL_FAIL(status, errbuf, "Memory error when outputting alignment\n");
else if (status != eslOK) ESL_FAIL(status, errbuf, "Writing alignment file failed with error %d\n", status);
@@ -2038,7 +2081,7 @@ create_and_output_final_msa(const ESL_GETOPTS *go, const struct cfg_s *cfg, char
int cur_clen; /* consensus length (non-gap #=GC RF length) of current alignment */
int apos; /* alignment position */
ESL_MSA *fmsa = NULL; /* the merged alignment created by merging all alignments in msaA */
- int alen_fmsa; /* number of columns in merged MSA */
+ /*int alen_fmsa;*/ /* number of columns in merged MSA */
int *ngap_insA = NULL; /* [0..alen] number of insert gap columns to add after each alignment column when merging */
int *ngap_elA = NULL; /* [0..alen] number of missing data ('~') gap columns to add after each alignment column when merging */
int *ngap_eitherA = NULL; /* [0..apos..alen] = ngap_insA[apos] + ngap_elA[apos] */
@@ -2122,7 +2165,7 @@ create_and_output_final_msa(const ESL_GETOPTS *go, const struct cfg_s *cfg, char
* final (3rd) pass we'll output aligned data.
*/
fmsa = esl_msa_Create(nseq_tot, -1);
- alen_fmsa = cm->clen + esl_vec_ISum(maxins, (cm->clen+1));
+ /*alen_fmsa = cm->clen + esl_vec_ISum(maxins, (cm->clen+1));*/
/* if there was any GS annotation in any of the individual alignments,
* do second pass through alignment files, outputting GS annotation as we go. */
@@ -2440,7 +2483,6 @@ inflate_gc_with_gaps_and_els(FILE *ofp, ESL_MSA *msa, int *ngap_insA, int *ngap_
int apos = 0;
int apos2print = 0;
int i;
- int prv_cpos = -1;
int alen2print = 0;
char *rf2print;
char *ss_cons2print;
@@ -2466,7 +2508,6 @@ inflate_gc_with_gaps_and_els(FILE *ofp, ESL_MSA *msa, int *ngap_insA, int *ngap_
if(apos < msa->alen) {
rf2print[apos2print] = msa->rf[apos];
ss_cons2print[apos2print++] = msa->ss_cons[apos];
- if(! esl_abc_CIsGap(msa->abc, msa->rf[apos])) prv_cpos = apos;
}
}
@@ -2482,8 +2523,8 @@ inflate_gc_with_gaps_and_els(FILE *ofp, ESL_MSA *msa, int *ngap_insA, int *ngap_
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmbuild.c b/src/cmbuild.c
index 210a792..4dca18a 100644
--- a/src/cmbuild.c
+++ b/src/cmbuild.c
@@ -178,7 +178,7 @@ struct cfg_s {
char *alifile; /* name of the alignment file we're building CMs from */
int fmt; /* format code for alifile */
- ESLX_MSAFILE *afp; /* open alifile */
+ ESL_MSAFILE *afp; /* open alifile */
ESL_ALPHABET *abc; /* digital alphabet */
char *cmfile; /* file to write CM to */
@@ -296,7 +296,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
cfg.rdfp = NULL;
if (esl_opt_IsOn(go, "--informat")) {
- cfg.fmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
+ cfg.fmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--informat"));
if (cfg.fmt == eslMSAFILE_UNKNOWN) cm_Fail("%s is not a recognized input sequence file format\n", esl_opt_GetString(go, "--informat"));
if (cfg.fmt != eslMSAFILE_STOCKHOLM && cfg.fmt != eslMSAFILE_PFAM && cfg.fmt != eslMSAFILE_SELEX) {
cm_Fail("%s is an invalid format for cmbuild, must be Stockholm, Pfam, or Selex\n", esl_opt_GetString(go, "--informat"));
@@ -394,7 +394,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
fclose(cfg.rdfp);
}
- if (cfg.afp != NULL) eslx_msafile_Close(cfg.afp);
+ if (cfg.afp != NULL) esl_msafile_Close(cfg.afp);
if (cfg.abc != NULL) esl_alphabet_Destroy(cfg.abc);
if (cfg.cmoutfp != NULL) fclose(cfg.cmoutfp);
if (cfg.pri != NULL) Prior_Destroy(cfg.pri);
@@ -456,9 +456,9 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
nc = do_ctarget ? esl_opt_GetInteger(go, "--ctarget") : 0;
mindiff = do_cmindiff ? (1. - esl_opt_GetReal(go, "--cmaxid")) : 0.;
- while ((status = eslx_msafile_Read(cfg->afp, &msa)) != eslEOF)
+ while ((status = esl_msafile_Read(cfg->afp, &msa)) != eslEOF)
{
- if (status != eslOK) eslx_msafile_ReadFailure(cfg->afp, status);
+ if (status != eslOK) esl_msafile_ReadFailure(cfg->afp, status);
cfg->nali++;
if(set_msa_name(go, cfg, errbuf, msa) != eslOK) cm_Fail(errbuf);
@@ -477,8 +477,8 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
if(do_cluster) {
msa = cmsa[c];
if(esl_opt_GetString(go, "--cdump") != NULL) {
- if((status = eslx_msafile_Write(cfg->cdfp, msa, eslMSAFILE_STOCKHOLM)) != eslOK)
- cm_Fail("--cdump related eslx_msafile_Write() call failed.");
+ if((status = esl_msafile_Write(cfg->cdfp, msa, eslMSAFILE_STOCKHOLM)) != eslOK)
+ cm_Fail("--cdump related esl_msafile_Write() call failed.");
}
}
@@ -758,8 +758,8 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
if((cfg->abc = esl_alphabet_Create(eslRNA)) == NULL) ESL_FAIL(eslEMEM, errbuf, "Failed to create alphabet for sequence file");
/* open input alignment file */
- if((status = eslx_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp))) != eslOK) {
- eslx_msafile_OpenFailure(cfg->afp, status);
+ if((status = esl_msafile_Open(&(cfg->abc), cfg->alifile, NULL, cfg->fmt, NULL, &(cfg->afp))) != eslOK) {
+ esl_msafile_OpenFailure(cfg->afp, status);
}
/* open CM file for writing */
@@ -1058,7 +1058,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
}
/* print initial alignment to --rdump file, if --rdump was enabled */
if(cfg->rdfp != NULL) {
- if((status = eslx_msafile_Write(cfg->rdfp, input_msa, eslMSAFILE_STOCKHOLM)) != eslOK) {
+ if((status = esl_msafile_Write(cfg->rdfp, input_msa, eslMSAFILE_STOCKHOLM)) != eslOK) {
ESL_FAIL(status, errbuf, "refine_msa(), esl_msafile_Write() call failed.");
}
}
@@ -1100,7 +1100,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
/* print intermediate alignment to --rdump file, if --rdump was enabled */
if(cfg->rdfp != NULL) {
- if((status = eslx_msafile_Write(cfg->rdfp, msa, eslMSAFILE_STOCKHOLM)) != eslOK)
+ if((status = esl_msafile_Write(cfg->rdfp, msa, eslMSAFILE_STOCKHOLM)) != eslOK)
ESL_FAIL(status, errbuf, "refine_msa(), esl_msafile_Write() call failed.");
}
/* 3. msa -> cm */
@@ -1118,7 +1118,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
}
/* write out final alignment to --refine output file */
- if((status = eslx_msafile_Write(cfg->refinefp, msa, eslMSAFILE_STOCKHOLM)) != eslOK)
+ if((status = esl_msafile_Write(cfg->refinefp, msa, eslMSAFILE_STOCKHOLM)) != eslOK)
ESL_FAIL(status, errbuf, "refine_msa(), esl_msafile_Write() call failed.");
/* If the model is local (-l was used), then we need to convert it
@@ -1292,7 +1292,7 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
esl_msa_SetName (omsa, msa->name, -1);
esl_msa_SetDesc (omsa, msa->desc, -1);
esl_msa_SetAccession(omsa, msa->acc, -1);
- eslx_msafile_Write(cfg->postmsafp, omsa, eslMSAFILE_STOCKHOLM);
+ esl_msafile_Write(cfg->postmsafp, omsa, eslMSAFILE_STOCKHOLM);
esl_msa_Destroy(omsa);
for(i = 0; i < msa->nseq; i++) esl_sq_Destroy(sq[i]);
@@ -1611,21 +1611,17 @@ static P7_PRIOR * cm_p7_prior_CreateNucleic(void);
static int
set_model_cutoffs(const ESL_GETOPTS *go, const struct cfg_s *cfg, char *errbuf, ESL_MSA *msa, CM_t *cm)
{
- int cutoff_was_set = FALSE;
if(msa->cutset[eslMSA_TC1]) {
cm->tc = msa->cutoff[eslMSA_TC1];
cm->flags |= CMH_TC;
- cutoff_was_set = TRUE;
}
if(msa->cutset[eslMSA_GA1]) {
cm->ga = msa->cutoff[eslMSA_GA1];
cm->flags |= CMH_GA;
- cutoff_was_set = TRUE;
}
if(msa->cutset[eslMSA_NC1]) {
cm->nc = msa->cutoff[eslMSA_NC1];
cm->flags |= CMH_NC;
- cutoff_was_set = TRUE;
}
return eslOK;
}
@@ -2027,7 +2023,11 @@ build_and_calibrate_p7_filter(const ESL_GETOPTS *go, const struct cfg_s *cfg, ch
for (cpos = 1; cpos <= cm->clen; cpos++) amsa->rf[cm->map[cpos]-1] = 'x'; /* note off by one */
cfg->fp7_bld->arch_strategy = p7_ARCH_HAND;
- if ((status = p7_Builder(cfg->fp7_bld, amsa, cfg->fp7_bg, &fhmm, NULL, NULL, NULL, NULL)) != eslOK) { strcpy(errbuf, cfg->fp7_bld->errbuf); return status; }
+ if ((status = p7_Builder(cfg->fp7_bld, amsa, cfg->fp7_bg, &fhmm,
+ /*opt_trarr=*/NULL, /*opt_gm=*/NULL, /*opt_om=*/NULL, /*opt_postmsa=*/NULL,
+ /*seqweights_w_fp=*/NULL, /*seqweights_e_fp=*/NULL)) != eslOK)
+ { strcpy(errbuf, cfg->fp7_bld->errbuf); return status; }
+
/* remove the RF annotation, it only exists because we created amsa->rf above */
if(fhmm->rf != NULL) {
free(fhmm->rf);
@@ -2517,7 +2517,7 @@ MSADivide(ESL_MSA *mmsa, int do_all, int do_mindiff, int do_nc, float mindiff, i
* I'm leaving it in the code because later code relies on it
* (see note on rounding of diff values in "Mode 3" comment block below)
*/
- ESL_ALLOC(diff, (sizeof(double) * (T->N - 1))); /* one for each node */
+ ESL_ALLOC(diff, (sizeof(double) * ESL_MAX(1, T->N - 1))); /* one for each node, avoid 0 malloc */
for (n = (T->N-2); n >= 0; n--) {
diff[n] = T->ld[n]; /* or we could set it to T->rd[n], they're identical */
diff[n] *= 1000.;
@@ -2757,7 +2757,7 @@ find_mindiff(ESL_TREE *T, double *diff, int target_nc, int **ret_clust, int *ret
float high = 1.0;
float low = 0.0;
int high_nc = 0;
- int low_nc = 0;
+ /*int low_nc = 0;*/
float mindiff = 0.5;
int curr_nc = -1;
int curr_best = -1;
@@ -2781,7 +2781,7 @@ find_mindiff(ESL_TREE *T, double *diff, int target_nc, int **ret_clust, int *ret
}
else {/* curr_nc >= target_nc */
low = mindiff;
- low_nc = curr_nc;
+ /*low_nc = curr_nc;*/
mindiff += (high - mindiff) / 2.;
if(fabs(high-low) < thresh) keep_going = FALSE; /* stop, high and low have converged */
/*printf("GREATER nc: %d mindiff: %f low: %f high: %f\n", curr_nc, mindiff, low, high);*/
@@ -3103,8 +3103,8 @@ P7_PRIOR *cm_p7_prior_CreateNucleic(void)
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmcalibrate.c b/src/cmcalibrate.c
index bd253b8..593564c 100644
--- a/src/cmcalibrate.c
+++ b/src/cmcalibrate.c
@@ -50,7 +50,8 @@
#define REALLYSMALLX 1e-20
#define EXPTAIL_CHUNKLEN 10000 /* sequence chunk length for random sequence searches */
-#define DEBUGMPI 0
+#define DEBUGMPI 0
+#define INS_V_CYK_GUESS 3.0 /* ratio of time required for inside versus CYK used if --noforecast enabled */
typedef struct {
#ifdef HMMER_THREADS
@@ -79,6 +80,7 @@ static ESL_OPTIONS options[] = {
{ "--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 <n> processors (maybe for MPI)", 2 },
{ "--memreq", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, NULL, "don't do calibration, print required memory and exit", 2 },
+ { "--noforecast", eslARG_NONE, NULL, NULL, NULL, NULL, NULL,"--forecast", "do calibration, but skip running time prediction", 2 },
/* Options controlling exponential tail fits */
{ "--gtailn", eslARG_INT, "250", NULL, "n>=100", NULL, NULL, "--tailp", "fit the top <n> hits/Mb in histogram for glocal modes [df: 250]", 3 },
{ "--ltailn", eslARG_INT, "750", NULL, "n>=100", NULL, NULL, "--tailp", "fit the top <n> hits/Mb in histogram for local modes [df: 750]", 3 },
@@ -439,7 +441,6 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
int cmi; /* CM index, which model we're working on */
char time_buf[128]; /* string for printing elapsed time (safely holds up to 10^14 years) */
int exp_mode; /* ctr over exp tail modes */
- double asec; /* actual number of seconds for calibrating current CM */
double psec; /* predicted number of seconds for calibrating current CM */
double total_psec = 0.; /* predicted number of seconds for calibrating all CMs */
double total_asec = 0.; /* actual number of seconds for calibrating all CMs */
@@ -530,7 +531,13 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
else { /* normal case */
if((status = initialize_stats(go, cfg, errbuf)) != eslOK) cm_Fail(errbuf);
- if((status = forecast_time(go, cfg, errbuf, cm, ncpus, available_ncpus, &psec, &ins_v_cyk)) != eslOK) cm_Fail(errbuf);
+ if(! esl_opt_GetBoolean(go, "--noforecast")) {
+ if((status = forecast_time(go, cfg, errbuf, cm, ncpus, available_ncpus, &psec, &ins_v_cyk)) != eslOK) cm_Fail(errbuf);
+ }
+ else {
+ psec = 0.;
+ ins_v_cyk = INS_V_CYK_GUESS;
+ }
total_psec += psec;
print_forecasted_time(go, cfg, errbuf, cm, psec);
@@ -620,7 +627,6 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
FormatTimeString(time_buf, cfg->w->elapsed, FALSE);
printf("] %12s\n", time_buf);
fflush(stdout);
- asec = cfg->w->elapsed;
total_asec += cfg->w->elapsed;
} /* end of if(! esl_opt_IsUsed(go, "--forecast")) */
@@ -932,7 +938,13 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if((status = initialize_stats(go, cfg, errbuf)) != eslOK) mpi_failure(errbuf);
if(cmi == 0) print_calibration_column_headings(go, cfg, errbuf, cm, 1); /* 1 is irrelevant here, since --forecast can't have been enabled */
- if((status = forecast_time(go, cfg, errbuf, cm, cfg->nproc-1, 1, &psec, &ins_v_cyk)) != eslOK) mpi_failure(errbuf);
+ if(! esl_opt_GetBoolean(go, "--noforecast")) {
+ if((status = forecast_time(go, cfg, errbuf, cm, cfg->nproc-1, 1, &psec, &ins_v_cyk)) != eslOK) mpi_failure(errbuf);
+ }
+ else {
+ psec = 0.;
+ ins_v_cyk = INS_V_CYK_GUESS;
+ }
total_psec += psec;
print_forecasted_time(go, cfg, errbuf, cm, psec);
@@ -1824,9 +1836,14 @@ static void
print_forecasted_time(const ESL_GETOPTS *go, const struct cfg_s *cfg, char *errbuf, CM_t *cm, double psec)
{
char time_buf[128]; /* for printing run time */
- FormatTimeString(time_buf, psec, FALSE);
- printf(" %-20s %12s", cm->name, time_buf);
+ if(esl_opt_GetBoolean(go, "--noforecast")) { /* no forecast performed, print '?' */
+ printf(" %-20s %12s", cm->name, "?");
+ }
+ else {
+ FormatTimeString(time_buf, psec, FALSE);
+ printf(" %-20s %12s", cm->name, time_buf);
+ }
if(! esl_opt_IsUsed(go, "--forecast")) fputs(" [", stdout);
else fputs("\n", stdout);
fflush(stdout);
@@ -2280,8 +2297,8 @@ void print_required_memory_tail(int ncpus)
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmconvert.c b/src/cmconvert.c
index 916670c..142c080 100644
--- a/src/cmconvert.c
+++ b/src/cmconvert.c
@@ -161,8 +161,8 @@ configure_model(CM_t *cm, char *errbuf)
}
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmemit.c b/src/cmemit.c
index 9b1d74b..0131694 100644
--- a/src/cmemit.c
+++ b/src/cmemit.c
@@ -495,7 +495,7 @@ emit_alignment(const ESL_GETOPTS *go, const struct cfg_s *cfg, CM_t *cm, char *e
}
/* Determine output alignment file format */
- outfmt = eslx_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
+ outfmt = esl_msafile_EncodeFormat(esl_opt_GetString(go, "--outformat"));
if (outfmt == eslMSAFILE_UNKNOWN) {
ESL_FAIL(eslEINCOMPAT, errbuf, "%s is not a recognized output MSA file format\n\n", esl_opt_GetString(go, "--outformat"));
}
@@ -560,7 +560,7 @@ emit_alignment(const ESL_GETOPTS *go, const struct cfg_s *cfg, CM_t *cm, char *e
}
/* Output the alignment */
- status = eslx_msafile_Write(cfg->ofp, msa, outfmt);
+ status = esl_msafile_Write(cfg->ofp, msa, outfmt);
if (status == eslEMEM) ESL_XFAIL(status, errbuf, "Memory error when outputting alignment\n");
else if (status != eslOK) ESL_XFAIL(status, errbuf, "Writing alignment file failed with error %d\n", status);
@@ -756,8 +756,8 @@ truncate_msa(const ESL_GETOPTS *go, const struct cfg_s *cfg, ESL_MSA *msa, const
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmfetch.c b/src/cmfetch.c
index 96de001..dafb56f 100644
--- a/src/cmfetch.c
+++ b/src/cmfetch.c
@@ -335,8 +335,8 @@ onefetch(ESL_GETOPTS *go, FILE *ofp, char *key, CM_FILE *cmfp)
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmpress.c b/src/cmpress.c
index 32586ed..f769114 100644
--- a/src/cmpress.c
+++ b/src/cmpress.c
@@ -185,8 +185,8 @@ open_db_files(ESL_GETOPTS *go, char *basename, FILE **ret_mfp, FILE **ret_ffp,
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmscan.c b/src/cmscan.c
index ae62d42..be792fa 100644
--- a/src/cmscan.c
+++ b/src/cmscan.c
@@ -36,9 +36,9 @@
#include "infernal.h"
-/* set the max sequence length to 10Mb, we'll die if we read a sequence longer than this */
-#define CMSCAN_MAX_SEQ_LEN 10000000
-
+/* THREAD_INFO data structure: the information needed by each thread
+ * will need, (think of serial as a single threaded process).
+ */
typedef struct {
#ifdef HMMER_THREADS
ESL_WORK_QUEUE *queue;
@@ -50,14 +50,44 @@ typedef struct {
float *p7_evparam; /* E-value parameters for p7 filter */
int in_rc; /* TRUE if qsq is currently revcomp'ed */
ESL_KEYHASH *glocal_kh; /* non-NULL only if --glist, these models will be run in glocal mode */
-} WORKER_INFO;
-
+} THREAD_INFO;
+
+/* READER_INFO data structure: the information needed by each reader,
+ * that is, each CPU that will actually read the CM file. This
+ * includes the serial master (if single threaded), and the sole
+ * thread master (if multi-threaded) in thread_loop(). These
+ * are mainly pointers to data read in the first round of calls
+ * to cm_p7_oprofile_ReadMSV() or cm_p7_oprofile_ReadBlockMSV(),
+ * which prevents us from having to re-read the MSV information
+ * for each query sequence.
+ */
+typedef struct {
+ int64_t nmodels; /* number of models in CM library */
+ ESL_ALPHABET *abc; /* alphabet used for all models */
+ /* arrays of information necessary for MSV stages of pipeline,
+ * we store these so that we only need to readh them once.
+ */
+ off_t *cm_offsetA; /* [0..cm_idx..nmodels-1] file offset for CM <cm_idx> */
+ int *cm_clenA; /* [0..cm_idx..nmodels-1] consensus length of CM <cm_idx> */
+ int *cm_WA; /* [0..cm_idx..nmodels-1] consensus length of CM <cm_idx> */
+ int *cm_nbpA; /* [0..cm_idx..nmodels-1] number of basepairs in CM <cm_idx> */
+ float *gfmuA; /* [0..cm_idx..nmodels-1] HMM glocal mu for CM <cm_idx> */
+ float *gflambdaA; /* [0..cm_idx..nmodels-1] HMM glocal lambda for CM <cm_idx> */
+ P7_OPROFILE **omA; /* [0..cm_idx..nmodels-1] optimized query profile HMM for CM <cm_idx> */
+ P7_SCOREDATA **msvdataA; /* [0..cm_idx..nmodels-1] P7_SCOREDATA for CM <cm_idx> */
+ /* variables related to --clanin */
+ ESL_KEYHASH *clan_fam_kh; /* these are family names in a clan, members of same clan are contiguous */
+ int *clan_mapA; /* [0..i..nfam-1] = c; family index i in <clan_fam_kh> belongs to clan
+ * index c in <clan_name_kh> */
+ int *clan_idxA; /* [0..cm_idx..nmodels-1] idx of clan this model belongs to, or -1 if none */
+} READER_INFO;
#define REPOPTS "-E,-T,--cut_ga,--cut_nc,--cut_tc"
#define INCOPTS "--incE,--incT,--cut_ga,--cut_nc,--cut_tc"
#define THRESHOPTS "-E,-T,--incE,--incT,--cut_ga,--cut_nc,--cut_tc"
#define FMODEOPTS "--FZ,--hmmonly,--rfam,--mid,--nohmm,--max"
#define TIMINGOPTS "--timeF1,--timeF2,--timeF3,--timeF4,--timeF5,--timeF6"
+#define TRUNCOPTS "-g,--notrunc,--anytrunc,--onlytrunc,--5trunc,--3trunc"
/* ** Large sets of options are InCompatible With (ICW) --max, --nohmm,
* --mid, --rfam, --FZ, Previously (before these were commented out) I
@@ -69,8 +99,8 @@ typedef struct {
* options which are actually incompatible with a lot of other
* options.
*
- * #define ICWMAX "--nohmm,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--noF6,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--F6,--ftau,--fsums,--fqdb,--fbeta,--fnonbanded,--nocykenv,--cykenvx,--tau,--sums,--nonbanded,--rt1,--rt2,--rt3,--ns,--maxtau"
- * #define ICWNOHMM "--max,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--ftau,--fsums,--tau,--sums,--rt1,--rt2,--rt3,--ns,--maxtau"
+ * #define ICWMAX "--nohmm,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--noF6,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--F6,--ftau,--fsums,--fqdb,--fbeta,--fnonbanded,--nocykenv,--cykenvx,--tau,--sums,--nonbanded,--rt1,--rt2,--rt3,--ns,--maxtau,--onepass"
+ * #define ICWNOHMM "--max,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--ftau,--fsums,--tau,--sums,--rt1,--rt2,--rt3,--ns,--maxtau,--onepass"
* #define ICWMID "--max,--nohmm,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--doF1b,--noF2b,--F1,--F1b,--F2,--F2b"
* #define ICWDF "--max,--nohmm,--mid,--rfam,--FZ"
* #define ICWRFAM "--max,--nohmm,--mid,--default,--FZ"
@@ -94,6 +124,7 @@ static ESL_OPTIONS options[] = {
/* Control of output */
{ "-o", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "direct output to file <f>, not stdout", 2 },
{ "--tblout", eslARG_OUTFILE, NULL, NULL, NULL, NULL, NULL, NULL, "save parseable table of hits to file <s>", 2 },
+ { "--fmt", eslARG_INT, NULL, NULL, "1<=n<=2",NULL,"--tblout",NULL, "set hit table format to <n>", 2 },
{ "--acc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "prefer accessions over names in output", 2 },
{ "--noali", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "don't output alignments, so output is smaller", 2 },
{ "--notextw", eslARG_NONE, NULL, NULL, NULL, NULL, NULL, "--textw", "unlimit ASCII text output line width", 2 },
@@ -119,24 +150,28 @@ static ESL_OPTIONS options[] = {
{ "--FZ", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, /* see ** above */ "set filters to defaults used for a search space of size <x> Mb", 6 },
{ "--Fmid", eslARG_REAL, "0.02", NULL, NULL, NULL,"--mid", NULL, "with --mid, set P-value threshold for HMM stages to <x>", 6 },
/* Other options */
- { "--notrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "do not allow truncated hits at sequence termini", 7 },
- { "--anytrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"-g,--notrunc", "allow truncated hits anywhere within sequences", 7 },
- { "--nonull3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn off the NULL3 post hoc additional null model", 7 },
- { "--mxsize", eslARG_REAL, NULL, NULL, "x>0.1", NULL, NULL, NULL, "set max allowed alnment mx size to <x> Mb [df: autodetermined]", 7 },
- { "--smxsize", eslARG_REAL, "128.", NULL, "x>0.1", NULL, NULL, NULL, "set max allowed size of search DP matrices to <x> Mb", 7 },
- { "--cyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use scanning CM CYK algorithm, not Inside in final stage", 7 },
- { "--acyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "align hits with CYK, not optimal accuracy", 7 },
- { "--wcx", eslARG_REAL, FALSE, NULL, "x>=1.25",NULL, NULL,"--nohmm,--qdb,--fqdb", "set W (expected max hit len) as <x> * cm->clen (model len)", 7 },
- { "--toponly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the top strand", 7 },
- { "--bottomonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the bottom strand", 7 },
- { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert query <seqfile> is in format <s>: no autodetection", 7 },
- { "--glist", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "-g", "configure CMs listed in file <f> in glocal mode, others in local", 7 },
+ { "--notrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--anytrunc,--onlytrunc,--5trunc,--3trunc", "do not allow truncated hits at sequence termini", 7 },
+ { "--anytrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow full and truncated hits anywhere within sequences", 7 },
+ { "--nohmmonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--hmmmax", "never run HMM-only mode, not even for models with 0 basepairs", 7 },
+ { "--nonull3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn off the NULL3 post hoc additional null model", 7 },
+ { "--mxsize", eslARG_REAL, NULL, NULL, "x>0.1", NULL, NULL, NULL, "set max allowed alnment mx size to <x> Mb [df: autodetermined]", 7 },
+ { "--smxsize", eslARG_REAL, "128.", NULL, "x>0.1", NULL, NULL, NULL, "set max allowed size of search DP matrices to <x> Mb", 7 },
+ { "--cyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use scanning CM CYK algorithm, not Inside in final stage", 7 },
+ { "--acyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "align hits with CYK, not optimal accuracy", 7 },
+ { "--wcx", eslARG_REAL, FALSE, NULL, "x>=1.25",NULL, NULL,"--nohmm,--qdb,--fqdb", "set W (expected max hit len) as <x> * cm->clen (model len)", 7 },
+ { "--toponly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the top strand", 7 },
+ { "--bottomonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the bottom strand", 7 },
+ { "--qformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert query <seqfile> is in format <s>: no autodetection", 7 },
+ { "--glist", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, "-g", "configure CMs listed in file <f> in glocal mode, others in local", 7 },
+ { "--clanin", eslARG_INFILE, NULL, NULL, NULL, NULL, "--fmt",NULL, "read clan information from file <f>", 7 },
+ { "--oclan", eslARG_NONE, FALSE, NULL, NULL, NULL, "--fmt,--clanin",NULL, "w/'--fmt 2' and '--tblout', only mark overlaps within clans", 7 },
+ { "--oskip", eslARG_NONE, FALSE, NULL, NULL, NULL, "--fmt",NULL, "w/'--fmt 2' and '--tblout', do not output lower scoring overlaps", 7 },
#ifdef HMMER_THREADS
- { "--cpu", eslARG_INT, NULL,"INFERNAL_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 7 },
+ { "--cpu", eslARG_INT, NULL,"INFERNAL_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 7 },
#endif
#ifdef HAVE_MPI
- { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 7 },
- { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 7 },
+ { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 7 },
+ { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 7 },
#endif
/* All options below are developer options, only shown if --devhelp invoked */
@@ -171,7 +206,6 @@ static ESL_OPTIONS options[] = {
{ "--hmmF3", eslARG_REAL, "1e-5", NULL, "x>0", NULL, NULL, "--nohmmonly", "in HMM-only mode, set stage 3 (Fwd) P value threshold to <x>", 102 },
{ "--hmmnobias", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--nohmmonly", "in HMM-only mode, turn off the bias composition filter", 102 },
{ "--hmmnonull2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--nohmmonly", "in HMM-only mode, turn off the null2 score correction", 102 },
- { "--nohmmonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--hmmmax", "never run HMM-only mode, not even for models with 0 basepairs",102 },
/* Options for precise control of HMM envelope definition */
/* name type default env range toggles reqs incomp help docgroup*/
{ "--rt1", eslARG_REAL, "0.25", NULL, NULL, NULL, NULL, "--nohmm,--max", "set domain/envelope definition rt1 parameter as <x>", 103 },
@@ -194,22 +228,31 @@ static ESL_OPTIONS options[] = {
{ "--qdb", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use QDBs (instead of HMM bands) in final Inside round", 105 },
{ "--beta", eslARG_REAL,"1e-15", NULL, "1E-18<x<1", NULL, NULL, NULL, "set tail loss prob for final Inside QDB calculation to <x>", 105 },
{ "--nonbanded", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--tau,--sums,--qdb,--beta", "do not use QDBs or HMM bands in final Inside round of CM search", 105 },
+ /* Options for terminating after individual pipeline stages, currently only works for F3 */
+ /* name type default env range toggles reqs incomp help docgroup*/
+ { "--trmF3", eslARG_NONE, FALSE, NULL, NULL, NULL,"--noali,--nohmmonly,--notrunc", NULL, "terminate after Stage 3 Fwd and output surviving windows", 106 },
+ /* Options for control of what types of truncated hits are allowed */
/* Options for timing individual pipeline stages */
/* name type default env range toggles reqs incomp help docgroup*/
- { "--timeF1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 1 SSV; for timing expts", 106 },
- { "--timeF2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 2 Vit; for timing expts", 106 },
- { "--timeF3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 3 Fwd; for timing expts", 106 },
- { "--timeF4", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 4 glocal Fwd; for timing expts", 106 },
- { "--timeF5", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 5 envelope def; for timing expts", 106 },
- { "--timeF6", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 6 CYK; for timing expts", 106 },
+ { "--timeF1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 1 SSV; for timing expts", 107 },
+ { "--timeF2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 2 Vit; for timing expts", 107 },
+ { "--timeF3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 3 Fwd; for timing expts", 107 },
+ { "--timeF4", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 4 glocal Fwd; for timing expts", 107 },
+ { "--timeF5", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 5 envelope def; for timing expts", 107 },
+ { "--timeF6", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 6 CYK; for timing expts", 107 },
/* Other expert options */
- /* name type default env range toggles reqs incomp help docgroup*/
- { "--nogreedy", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "do not resolve hits with greedy algorithm, use optimal one", 107 },
- { "--cp9noel", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g,--glist", "turn off local ends in cp9 HMMs", 107 },
- { "--cp9gloc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g,--glist,--cp9noel", "configure cp9 HMM in glocal mode", 107 },
- { "--null2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn on null 2 biased composition HMM score corrections", 107 },
- { "--maxtau", eslARG_REAL, "0.05", NULL,"0<x<0.5",NULL, NULL, NULL, "set max tau <x> when tightening HMM bands", 107 },
- { "--seed", eslARG_INT, "181", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 107 },
+ /* name type default env range toggles reqs incomp help docgroup*/
+ { "--nogreedy", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "do not resolve hits with greedy algorithm, use optimal one", 108 },
+ { "--cp9noel", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g,--glist", "turn off local ends in cp9 HMMs", 108 },
+ { "--cp9gloc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g,--glist,--cp9noel", "configure cp9 HMM in glocal mode", 108 },
+ { "--null2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn on null 2 biased composition HMM score corrections", 108 },
+ { "--maxtau", eslARG_REAL, "0.05", NULL,"0<x<0.5",NULL, NULL, NULL, "set max tau <x> when tightening HMM bands", 108 },
+ { "--seed", eslARG_INT, "181", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 108 },
+ { "--block", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, NULL, "set block size (number of models per worker/thread) to <n>", 108 },
+ { "--onepass", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--nohmm,--qdb,--fqdb", "use CM only for best scoring HMM pass for full seq envelopes", 108 },
+ { "--onlytrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow only truncated hits, anywhere within sequences", 108 },
+ { "--5trunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow truncated hits only at 5' ends of sequences", 108 },
+ { "--3trunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow truncated hits only at 3' ends of sequences", 108 },
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -234,11 +277,10 @@ static char usage[] = "[-options] <cmdb> <seqfile>";
static char banner[] = "search sequence(s) against a CM database";
static int serial_master(ESL_GETOPTS *go, struct cfg_s *cfg);
-static int serial_loop (WORKER_INFO *info, CM_FILE *cmfp);
+static int serial_loop (THREAD_INFO *thd_info, READER_INFO *rdr_info, CM_FILE *cmfp);
#ifdef HMMER_THREADS
-#define BLOCK_SIZE 25
-static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, CM_FILE *cmfp);
+static int thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, READER_INFO *rdr_info, CM_FILE *cmfp);
static void pipeline_thread(void *arg);
#endif /*HMMER_THREADS*/
@@ -247,9 +289,15 @@ static int mpi_master (ESL_GETOPTS *go, struct cfg_s *cfg);
static int mpi_worker (ESL_GETOPTS *go, struct cfg_s *cfg);
#endif /*HAVE_MPI*/
-static void process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfile, char **ret_seqfile);
-static int output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int ncpus);
-static int read_glocal_list_file(char *filename, char *errbuf, CM_FILE *cmfp, ESL_KEYHASH **ret_glocal_kh);
+static void process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfile, char **ret_seqfile);
+static int output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int ncpus);
+static int read_glocal_list_file(char *filename, char *errbuf, CM_FILE *cmfp, ESL_KEYHASH **ret_glocal_kh);
+static int read_clan_info_file(char *filename, char *errbuf, CM_FILE *cmfp, ESL_KEYHASH **ret_clan_name_kh, ESL_KEYHASH **ret_clan_fam_kh, int **ret_clan_mapA);
+static int determine_clan_index(char *modelname, ESL_KEYHASH *clan_fam_kh, int *clan_mapA);
+static void duplicate_sq_for_thread(ESL_SQ *src_sq, ESL_SQ **ret_sq);
+static void copy_sq_for_thread(ESL_SQ *src_sq, ESL_SQ *dest_sq);
+static READER_INFO *create_reader_info(int64_t nmodels, ESL_KEYHASH *clan_fam_kh, int *clan_mapA);
+static void free_reader_info(READER_INFO *rinfo);
#ifdef HAVE_MPI
/* Define common tags used by the MPI master/slave processes */
@@ -266,9 +314,10 @@ static int read_glocal_list_file(char *filename, char *errbuf, CM_FILE *cmfp, E
#define MAX_BLOCK_SIZE (512*1024)
typedef struct {
- uint64_t offset;
- uint64_t length;
- uint64_t count;
+ uint64_t offset; /* offset in file for first profile in block */
+ uint64_t length; /* size of block */
+ uint64_t count; /* number of profiles in block */
+ uint64_t idx0; /* index of first profile in block (0 == first) */
} MSV_BLOCK;
typedef struct {
@@ -280,7 +329,7 @@ typedef struct {
} BLOCK_LIST;
static void mpi_failure(char *format, ...);
-static int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block);
+static int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, int64_t bsize, uint64_t idx0, MSV_BLOCK *block);
#endif /* HAVE_MPI */
int
@@ -362,28 +411,38 @@ main(int argc, char **argv)
static int
serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
{
- FILE *ofp = stdout; /* output file for results (default stdout) */
- FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
- int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */
- ESL_SQFILE *sqfp = NULL; /* open seqfile */
- CM_FILE *cmfp = NULL; /* open CM database file */
- ESL_ALPHABET *abc = NULL; /* sequence alphabet */
- ESL_STOPWATCH *w = NULL; /* timing one query sequence */
- ESL_STOPWATCH *mw = NULL; /* timing all query sequences */
- ESL_SQ *qsq = NULL; /* query sequence */
- int qZ = 0; /* # residues to search in query seq (both strands)*/
- int seq_idx = 0; /* index of current seq we're working with */
- ESL_KEYHASH *glocal_kh= NULL; /* list of models to configure globally, only created if --glist */
- int textw;
+ FILE *ofp = stdout; /* output file for results (default stdout) */
+ FILE *tblfp = NULL; /* output stream for tabular per-seq (--tblout) */
+ int seqfmt = eslSQFILE_UNKNOWN; /* format of seqfile */
+ ESL_SQFILE *sqfp = NULL; /* open seqfile */
+ CM_FILE *cmfp = NULL; /* open CM database file */
+ ESL_ALPHABET *abc = NULL; /* sequence alphabet */
+ ESL_STOPWATCH *w = NULL; /* timing one query sequence */
+ ESL_STOPWATCH *mw = NULL; /* timing all query sequences */
+ ESL_SQ *qsq = NULL; /* query sequence */
+ int qZ = 0; /* # residues to search in query seq (both strands)*/
+ int64_t seq_idx = 0; /* index of current seq we're working with */
+ ESL_KEYHASH *glocal_kh = NULL; /* list of models to configure globally, only created if --glist */
+
+ /* variables only used if --clanin is used */
+ ESL_KEYHASH *clan_name_kh = NULL; /* these are clan names */
+ ESL_KEYHASH *clan_fam_kh = NULL; /* these are family names in a clan, members of same clan are contiguous */
+ int *clan_mapA = NULL; /* [0..i..nfam-1] = c; family index i in <clan_fam_kh> belongs to clan
+ * index c in <clan_name_kh>. */
+ int textw;
int status = eslOK;
int hstatus = eslOK;
int sstatus = eslOK;
int i;
int in_rc;
- int ncpus = 0;
-
- int infocnt = 0;
- WORKER_INFO *info = NULL;
+ int ncpus = 0;
+ int64_t bsize = 0; /* number of models per thread */
+ int64_t nmodels; /* number of models in CM file */
+ int64_t nworkers; /* number of 'workers' for calc'ing bsize */
+
+ int tinfocnt = 0;
+ THREAD_INFO *tinfo = NULL;
+ READER_INFO *rinfo = NULL;
#ifdef HMMER_THREADS
CM_P7_OM_BLOCK *block = NULL;
ESL_THREADS *threadObj= NULL;
@@ -412,6 +471,7 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (cmfp->do_gzip) cm_Fail("Reading gzipped CM files is not supported");
if (cmfp->do_stdin) cm_Fail("Reading CM files from stdin is not supported");
if (! cmfp->is_pressed) cm_Fail("Failed to open binary auxfiles for %s: use cmpress first\n", cmfp->fname);
+ nmodels = (int64_t) cmfp->ssi->nprimary;
hstatus = cm_file_Read(cmfp, FALSE, &abc, NULL);
if(hstatus == eslEFORMAT) cm_Fail("bad file format in CM file %s\n%s", cfg->cmfile, cmfp->errbuf);
@@ -428,10 +488,14 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
cfg->Z_setby = CM_ZSETBY_SSI_AND_QLENGTH; /* we will multiply Z by each query sequence length */
}
- /* Open and read the list of glocal models, while CM file is open */
+ /* If nec, open and read the list of glocal models, while CM file is open */
if (esl_opt_IsOn(go, "--glist")) {
if((status = read_glocal_list_file(esl_opt_GetString(go, "--glist"), errbuf, cmfp, &glocal_kh)) != eslOK) cm_Fail(errbuf);
}
+ /* If nec, open and read the clan info file, while CM file is open */
+ if (esl_opt_IsOn(go, "--clanin")) {
+ if((status = read_clan_info_file(esl_opt_GetString(go, "--clanin"), errbuf, cmfp, &clan_name_kh, &clan_fam_kh, &clan_mapA)) != eslOK) cm_Fail(errbuf);
+ }
cm_file_Close(cmfp);
@@ -457,32 +521,42 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
queue = esl_workqueue_Create(ncpus * 2);
}
#endif
+ /* determine block size: number of models each thread will process at a time */
+ if(esl_opt_IsOn(go, "--block")) {
+ bsize = esl_opt_GetInteger(go, "--block");
+ }
+ else {
+ nworkers = (ncpus > 0) ? ncpus * 2 : 1;
+ bsize = nmodels / nworkers;
+ if(nmodels % nworkers != 0) bsize++;;
+ }
output_header(ofp, go, cfg->cmfile, cfg->seqfile, ncpus);
- infocnt = (ncpus == 0) ? 1 : ncpus;
- ESL_ALLOC(info, sizeof(*info) * infocnt);
+ tinfocnt = (ncpus == 0) ? 1 : ncpus;
+ ESL_ALLOC(tinfo, sizeof(*tinfo) * tinfocnt);
- for (i = 0; i < infocnt; ++i)
+ for (i = 0; i < tinfocnt; ++i)
{
- info[i].bg = p7_bg_Create(abc);
- info[i].in_rc = FALSE;
- ESL_ALLOC(info[i].p7_evparam, sizeof(float) * CM_p7_NEVPARAM);
+ tinfo[i].bg = p7_bg_Create(abc);
+ tinfo[i].in_rc = FALSE;
+ ESL_ALLOC(tinfo[i].p7_evparam, sizeof(float) * CM_p7_NEVPARAM);
if(glocal_kh != NULL) {
- if((info[i].glocal_kh = esl_keyhash_Clone(glocal_kh)) == NULL) esl_fatal("Failed to clone keyhash, out of memory");
+ if((tinfo[i].glocal_kh = esl_keyhash_Clone(glocal_kh)) == NULL) esl_fatal("Failed to clone keyhash, out of memory");
}
- else {
- info[i].glocal_kh = NULL;
+ else {
+ tinfo[i].glocal_kh = NULL;
}
+
#ifdef HMMER_THREADS
- info[i].queue = queue;
+ tinfo[i].queue = queue;
#endif
}
-
+
#ifdef HMMER_THREADS
for (i = 0; i < ncpus * 2; ++i)
{
- block = cm_p7_oprofile_CreateBlock(BLOCK_SIZE);
+ block = cm_p7_oprofile_CreateBlock(bsize);
if (block == NULL) esl_fatal("Failed to allocate sequence block");
status = esl_workqueue_Init(queue, block);
@@ -490,10 +564,12 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
#endif
+ /* initialize rinfo */
+ rinfo = create_reader_info(nmodels, clan_fam_kh, clan_mapA);
+
/* Outside loop: over each query sequence in <seqfile>. */
while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK)
{
- if(qsq->n > CMSCAN_MAX_SEQ_LEN) cm_Fail("sequence #%d (L=%d) exceeds max length of %d\n", seq_idx+1, qsq->n, CMSCAN_MAX_SEQ_LEN);
seq_idx++;
esl_stopwatch_Start(w);
@@ -506,22 +582,22 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
*/
qZ = (esl_opt_GetBoolean(go, "--toponly") || esl_opt_GetBoolean(go, "--bottomonly")) ? qsq->n : qsq->n*2;
- for (i = 0; i < infocnt; ++i)
+ for (i = 0; i < tinfocnt; ++i)
{
/* Create processing pipeline and hit list */
- info[i].th = cm_tophits_Create();
- info[i].pli = cm_pipeline_Create(go, abc, 100, 100, cfg->Z * qZ, cfg->Z_setby, CM_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */
- info[i].pli->nseqs++;
- info[i].qsq = qsq;
+ tinfo[i].th = cm_tophits_Create();
+ tinfo[i].pli = cm_pipeline_Create(go, abc, 100, 100, cfg->Z * qZ, cfg->Z_setby, CM_SCAN_MODELS); /* M_hint = 100, L_hint = 100 are just dummies for now */
+ tinfo[i].pli->nseqs++;
+ tinfo[i].qsq = qsq;
}
/* scan all target CMs twice, once with the top strand of the query and once with the bottom strand */
for(in_rc = 0; in_rc <= 1; in_rc++) {
- if(in_rc == 0 && (! info->pli->do_top)) continue; /* skip top strand */
- if(in_rc == 1 && (! info->pli->do_bot)) continue; /* skip bottom strand */
+ if(in_rc == 0 && (! tinfo->pli->do_top)) continue; /* skip top strand */
+ if(in_rc == 1 && (! tinfo->pli->do_bot)) continue; /* skip bottom strand */
if(in_rc == 1) {
if(qsq->abc->complement == NULL) {
- if(! info->pli->do_top) cm_Fail("Trying to only search bottom strand but sequence cannot be complemented");
+ if(! tinfo->pli->do_top) cm_Fail("Trying to only search bottom strand but sequence cannot be complemented");
else continue; /* skip bottom strand b/c we can't complement the sequence */
}
esl_sq_ReverseComplement(qsq);
@@ -534,27 +610,28 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if ((status = cm_file_CreateLock(cmfp)) != eslOK) cm_Fail("Unexpected error %d creating lock\n", status);
}
#endif
- for (i = 0; i < infocnt; ++i) {
- info[i].pli->cmfp = cmfp; /* for four-stage input, pipeline needs <cmfp> */
- cm_pli_NewSeq(info[i].pli, qsq, seq_idx-1);
- info[i].in_rc = in_rc;
+ for (i = 0; i < tinfocnt; ++i) {
+ tinfo[i].pli->cmfp = cmfp; /* for four-stage input, pipeline needs <cmfp> */
+ cm_pli_NewSeq(tinfo[i].pli, qsq, seq_idx-1);
+ tinfo[i].in_rc = in_rc;
#ifdef HMMER_THREADS
- if (ncpus > 0) esl_threads_AddThread(threadObj, &info[i]);
+ if (ncpus > 0) esl_threads_AddThread(threadObj, &tinfo[i]);
#endif
} [...]
#ifdef HMMER_THREADS
- if (ncpus > 0) hstatus = thread_loop(threadObj, queue, cmfp);
- else hstatus = serial_loop(info, cmfp);
+ if (ncpus > 0) hstatus = thread_loop(threadObj, queue, rinfo, cmfp);
+ else hstatus = serial_loop(tinfo, rinfo, cmfp);
#else
- hstatus = serial_loop(info, cmfp);
+ hstatus = serial_loop(tinfo, rinfo, cmfp);
#endif
switch(hstatus)
{
case eslEFORMAT: cm_Fail("bad file format in CM file %s", cfg->cmfile); break;
case eslEINCOMPAT: cm_Fail("CM file %s contains different alphabets", cfg->cmfile); break;
case eslEMEM: cm_Fail("Out of memory"); break;
- case eslEOF: /* do nothing */ break;
- default: cm_Fail("Unexpected error in reading CMs from %s", cfg->cmfile); break;
+ case eslEOF: cm_Fail("Unexpected, premature end of file in %s", cfg->cmfile); break;
+ case eslOK: /* normal: do nothing */ break;
+ default: cm_Fail("Unexpected error in reading CMs from %s", cfg->cmfile); break;
}
cm_file_Close(cmfp);
@@ -562,68 +639,89 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/***********************************************************************/
/* merge the results of the search results */
- for (i = 1; i < infocnt; ++i)
+ for (i = 1; i < tinfocnt; ++i)
{
- cm_tophits_Merge(info[0].th, info[i].th);
- cm_pipeline_Merge(info[0].pli, info[i].pli);
+ cm_tophits_Merge(tinfo[0].th, tinfo[i].th);
+ cm_pipeline_Merge(tinfo[0].pli, tinfo[i].pli);
- cm_pipeline_Destroy(info[i].pli, NULL);
- cm_tophits_Destroy(info[i].th);
+ cm_pipeline_Destroy(tinfo[i].pli, NULL);
+ cm_tophits_Destroy(tinfo[i].th);
}
- if(info[0].pli->do_top && info[0].pli->do_bot) {
+ if(tinfo[0].pli->do_top && tinfo[0].pli->do_bot) {
/* we've searched all models versus each sequence then reverse
* complemented it and search all models versus it again, so
* we've double counted all models.
*/
- info[0].pli->nmodels /= 2;
- info[0].pli->nnodes /= 2;
- if(info[0].pli->nmodels_hmmonly > 0) info[0].pli->nmodels_hmmonly /= 2;
- if(info[0].pli->nnodes_hmmonly > 0) info[0].pli->nnodes_hmmonly /= 2;
+ tinfo[0].pli->nmodels /= 2;
+ tinfo[0].pli->nnodes /= 2;
+ if(tinfo[0].pli->nmodels_hmmonly > 0) tinfo[0].pli->nmodels_hmmonly /= 2;
+ if(tinfo[0].pli->nnodes_hmmonly > 0) tinfo[0].pli->nnodes_hmmonly /= 2;
}
- if(info[0].pli->do_trunc_ends) {
- /* We may have overlaps so sort by sequence index/position and remove duplicates */
- cm_tophits_SortForOverlapRemoval(info[0].th);
- if((status = cm_tophits_RemoveOverlaps(info[0].th, errbuf)) != eslOK) cm_Fail(errbuf);
- }
+ /* Sort by sequence index/position and remove duplicates found because we searched overlapping chunks */
+ cm_tophits_SortForOverlapRemoval(tinfo[0].th);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tinfo[0].th, FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+
+ /* Resort in order to markup overlapping hits from different models (only within clans if --oclan) */
+ cm_tophits_SortForOverlapMarkup(tinfo[0].th, esl_opt_GetBoolean(go, "--oclan"));
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tinfo[0].th, esl_opt_GetBoolean(go, "--oclan"), errbuf)) != eslOK) cm_Fail(errbuf);
+
+ /* Resort: by score (usually) or by position (if in special 'terminate after F3' mode) */
+ if(tinfo[0].pli->do_trm_F3) cm_tophits_SortByPosition(tinfo[0].th);
+ else cm_tophits_SortByEvalue(tinfo[0].th);
- /* Sort by score and enforce threshold. */
- cm_tophits_SortByEvalue(info[0].th);
- cm_tophits_Threshold(info[0].th, info[0].pli);
+ /* TEMP cm_tophits_Dump(stdout, tinfo[0].th); */
+
+ /* Enforce threshold */
+ cm_tophits_Threshold(tinfo[0].th, tinfo[0].pli);
/* tally up total number of hits and target coverage */
- for (i = 0; i < info[0].th->N; i++) {
- if ((info[0].th->hit[i]->flags & CM_HIT_IS_REPORTED) || (info[0].th->hit[i]->flags & CM_HIT_IS_INCLUDED)) {
- info[0].pli->acct[info[0].th->hit[i]->pass_idx].n_output++;
- info[0].pli->acct[info[0].th->hit[i]->pass_idx].pos_output += abs(info[0].th->hit[i]->stop - info[0].th->hit[i]->start) + 1;
+ for (i = 0; i < tinfo[0].th->N; i++) {
+ if ((tinfo[0].th->hit[i]->flags & CM_HIT_IS_REPORTED) || (tinfo[0].th->hit[i]->flags & CM_HIT_IS_INCLUDED)) {
+ tinfo[0].pli->acct[tinfo[0].th->hit[i]->pass_idx].n_output++;
+ tinfo[0].pli->acct[tinfo[0].th->hit[i]->pass_idx].pos_output += llabs(tinfo[0].th->hit[i]->stop - tinfo[0].th->hit[i]->start) + 1;
}
}
- cm_tophits_Targets(ofp, info[0].th, info[0].pli, textw); fprintf(ofp, "\n\n");
+ if(tinfo[0].pli->do_trm_F3) {
+ cm_tophits_F3Targets(ofp, tinfo[0].th, tinfo[0].pli);
+ }
+ else {
+ cm_tophits_Targets(ofp, tinfo[0].th, tinfo[0].pli, textw);
+ }
+ fprintf(ofp, "\n\n");
- if(info[0].pli->show_alignments) {
- if((status = cm_tophits_HitAlignments(ofp, info[0].th, info[0].pli, textw)) != eslOK) esl_fatal("Out of memory");
+ if(tinfo[0].pli->show_alignments) {
+ if((status = cm_tophits_HitAlignments(ofp, tinfo[0].th, tinfo[0].pli, textw)) != eslOK) esl_fatal("Out of memory");
fprintf(ofp, "\n\n");
- if(info[0].pli->be_verbose) {
- cm_tophits_HitAlignmentStatistics(ofp, info[0].th,
- (info[0].pli->cm_align_opts & CM_ALIGN_HBANDED),
- (info[0].pli->cm_align_opts & CM_ALIGN_CYK),
- info[0].pli->final_tau);
+ if(tinfo[0].pli->be_verbose) {
+ cm_tophits_HitAlignmentStatistics(ofp, tinfo[0].th,
+ (tinfo[0].pli->cm_align_opts & CM_ALIGN_HBANDED),
+ (tinfo[0].pli->cm_align_opts & CM_ALIGN_CYK),
+ tinfo[0].pli->final_tau);
fprintf(ofp, "\n\n");
}
}
if (tblfp != NULL) {
- cm_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, info[0].th, info[0].pli, (seq_idx == 1));
+ if((! esl_opt_IsUsed(go, "--fmt")) || (esl_opt_GetInteger(go, "--fmt") == 1)) { /* fmt defaults to 1 */
+ if(tinfo[0].pli->do_trm_F3) cm_tophits_F3TabularTargets1(tblfp, tinfo[0].th, tinfo[0].pli, (seq_idx == 1));
+ else cm_tophits_TabularTargets1 (tblfp, qsq->name, qsq->acc, tinfo[0].th, tinfo[0].pli, (seq_idx == 1));
+ }
+ else if(esl_opt_GetInteger(go, "--fmt") == 2) {
+ if((status = cm_tophits_TabularTargets2(tblfp, qsq->name, qsq->acc, tinfo[0].th, tinfo[0].pli, (seq_idx == 1), clan_name_kh, esl_opt_GetBoolean(go, "--oskip"), errbuf)) != eslOK) {
+ esl_fatal(errbuf);
+ }
+ }
}
esl_stopwatch_Stop(w);
- cm_pli_Statistics(ofp, info[0].pli, w);
+ cm_pli_Statistics(ofp, tinfo[0].pli, w);
fprintf(ofp, "//\n");
fflush(ofp);
- cm_pipeline_Destroy(info[0].pli, NULL);
- cm_tophits_Destroy(info[0].th);
+ cm_pipeline_Destroy(tinfo[0].pli, NULL);
+ cm_tophits_Destroy(tinfo[0].th);
esl_sq_Reuse(qsq);
}
if (sstatus == eslEFORMAT) esl_fatal("Parse failed (sequence file %s):\n%s\n",
@@ -641,13 +739,15 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Cleanup - prepare for successful exit
*/
- for (i = 0; i < infocnt; ++i)
+ for (i = 0; i < tinfocnt; ++i)
{
- free(info[i].p7_evparam);
- p7_bg_Destroy(info[i].bg);
- if(info[i].glocal_kh != NULL) esl_keyhash_Destroy(info[i].glocal_kh);
+ free(tinfo[i].p7_evparam);
+ p7_bg_Destroy(tinfo[i].bg);
+ if(tinfo[i].glocal_kh != NULL) esl_keyhash_Destroy(tinfo[i].glocal_kh);
}
+ free_reader_info(rinfo);
+
#ifdef HMMER_THREADS
if (ncpus > 0)
{
@@ -660,15 +760,18 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
esl_threads_Destroy(threadObj);
}
#endif
-
- free(info);
-
+
+ free(tinfo);
+
esl_sq_Destroy(qsq);
esl_stopwatch_Destroy(w);
esl_stopwatch_Destroy(mw);
esl_alphabet_Destroy(abc);
esl_sqfile_Close(sqfp);
- if(glocal_kh != NULL) esl_keyhash_Destroy(glocal_kh);
+ if(glocal_kh != NULL) esl_keyhash_Destroy(glocal_kh);
+ if(clan_name_kh != NULL) esl_keyhash_Destroy(clan_name_kh);
+ if(clan_fam_kh != NULL) esl_keyhash_Destroy(clan_fam_kh);
+ if(clan_mapA != NULL) free(clan_mapA);
if (ofp != stdout) fclose(ofp);
if (tblfp) fclose(tblfp);
@@ -680,82 +783,172 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
static int
-serial_loop(WORKER_INFO *info, CM_FILE *cmfp)
+serial_loop(THREAD_INFO *tinfo, READER_INFO *rinfo, CM_FILE *cmfp)
{
int status;
CM_t *cm = NULL;
- ESL_ALPHABET *abc = NULL;
P7_HMM *hmm = NULL;
- P7_OPROFILE *om = NULL; /* optimized query profile HMM */
- P7_PROFILE *gm = NULL; /* generic query profile HMM */
- P7_PROFILE *Rgm = NULL; /* generic query profile HMM for env defn for 5' truncated hits */
- P7_PROFILE *Lgm = NULL; /* generic query profile HMM for env defn for 3' truncated hits */
- P7_PROFILE *Tgm = NULL; /* generic query profile HMM for env defn for 5' and 3'truncated hits */
- P7_MSVDATA *msvdata = NULL; /* MSV/SSV specific data structure */
- int prv_ntophits; /* number of top hits before cm_Pipeline() call */
- int cm_clen, cm_W, cm_nbp; /* consensus, window length and # bps for CM */
- float gfmu, gflambda; /* glocal fwd mu, lambda for current hmm filter */
- off_t cm_offset; /* file offset for current CM */
- int64_t cm_idx = 0; /* index of CM we're currently working with */
- double eZ; /* effective database size */
+ P7_OPROFILE *om = NULL; /* optimized query profile HMM */
+ P7_PROFILE *gm = NULL; /* generic query profile HMM */
+ P7_PROFILE *Rgm = NULL; /* generic query profile HMM for env defn for 5' truncated hits */
+ P7_PROFILE *Lgm = NULL; /* generic query profile HMM for env defn for 3' truncated hits */
+ P7_PROFILE *Tgm = NULL; /* generic query profile HMM for env defn for 5' and 3'truncated hits */
+ P7_SCOREDATA *msvdata = NULL; /* MSV/SSV specific data structure */
+ int prv_ntophits; /* number of top hits before cm_Pipeline() call */
+ int cm_clen, cm_W, cm_nbp; /* consensus, window length and # bps for CM */
+ float gfmu, gflambda; /* glocal fwd mu, lambda for current hmm filter */
+ off_t cm_offset; /* file offset for current CM */
+ int64_t cm_idx = 0; /* index of CM we're currently working with */
+ double eZ; /* effective database size */
+ int64_t prv_posn = 0; /* position of previous chunk for cur seq, 0 if first chunk */
+ ESL_DSQ *save_dsq = tinfo->qsq->dsq; /* pointer to original qsq->dsq data */
+ int have_clans; /* set to TRUE if we have information on clans, else FALSE */
+ int clan_idx = -1; /* clan index, -1 if current family is not part of a clan */
+
+ /* do we have clan info? */
+ have_clans = (rinfo->clan_fam_kh != NULL && rinfo->clan_mapA != NULL) ? TRUE : FALSE;
/* Main loop: */
- while ((status = cm_p7_oprofile_ReadMSV(cmfp, TRUE, &abc, &cm_offset, &cm_clen, &cm_W, &cm_nbp, &gfmu, &gflambda, &om)) == eslOK)
- {
- cm_idx++;
- msvdata = p7_hmm_MSVDataCreate(om, FALSE);
- esl_vec_FCopy(om->evparam, p7_NEVPARAM, info->p7_evparam);
- info->p7_evparam[CM_p7_GFMU] = gfmu;
- info->p7_evparam[CM_p7_GFLAMBDA] = gflambda;
- hmm = NULL; /* this will get filled in cm_Pipeline() only if necessary */
- gm = NULL; /* ditto */
- Rgm = NULL; /* ditto */
- Lgm = NULL; /* ditto */
- Tgm = NULL; /* ditto */
- cm = NULL; /* ditto */
- if(info->pli->do_wcx) cm_W = (int) cm_clen * info->pli->wcx; /* do_wcx == TRUE means --wcx was used */
- if((status = cm_pli_NewModel(info->pli, CM_NEWMODEL_MSV,
- cm, /* this is NULL b/c we don't have one yet */
- cm_clen, cm_W, cm_nbp, /* we read these in cm_p7_oprofile_ReadMSV() */
- om, info->bg, info->p7_evparam, om->max_length, cm_idx-1, info->glocal_kh)) != eslOK) cm_Fail(info->pli->errbuf);
-
- prv_ntophits = info->th->N;
- if((status = cm_Pipeline(info->pli, cm_offset, om, info->bg, info->p7_evparam, msvdata, info->qsq, info->th, info->in_rc, &hmm, &gm, &Rgm, &Lgm, &Tgm, &cm)) != eslOK)
- cm_Fail("cm_Pipeline() failed unexpected with status code %d\n%s", status, info->pli->errbuf);
- cm_pipeline_Reuse(info->pli);
- if(info->in_rc && info->th->N != prv_ntophits) cm_tophits_UpdateHitPositions(info->th, prv_ntophits, info->qsq->start, info->in_rc);
-
- if(info->th->N != prv_ntophits) {
- if(info->pli->do_hmmonly_cur) eZ = info->pli->Z / (float) om->max_length;
- else eZ = cm->expA[info->pli->final_cm_exp_mode]->cur_eff_dbsize;
- cm_tophits_ComputeEvalues(info->th, eZ, prv_ntophits);
+ status = eslOK;
+ while (cm_idx < rinfo->nmodels && status == eslOK)
+ {
+ if(rinfo->omA[cm_idx] == NULL) {
+ status = cm_p7_oprofile_ReadMSV(cmfp, TRUE, &(rinfo->abc), &(rinfo->cm_offsetA[cm_idx]), &(rinfo->cm_clenA[cm_idx]), &(rinfo->cm_WA[cm_idx]),
+ &(rinfo->cm_nbpA[cm_idx]), &(rinfo->gfmuA[cm_idx]), &(rinfo->gflambdaA[cm_idx]), &(rinfo->omA[cm_idx]));
+ /* determine clan idx if nec */
+ if(have_clans) { rinfo->clan_idxA[cm_idx] = determine_clan_index(rinfo->omA[cm_idx]->name, rinfo->clan_fam_kh, rinfo->clan_mapA); }
+ else { rinfo->clan_idxA[cm_idx] = -1; }
}
-
- if(cm != NULL) { FreeCM(cm); cm = NULL; }
- if(om != NULL) { p7_oprofile_Destroy(om); om = NULL; }
- if(hmm != NULL) { p7_hmm_Destroy(hmm); hmm = NULL; }
- if(gm != NULL) { p7_profile_Destroy(gm); gm = NULL; }
- if(Rgm != NULL) { p7_profile_Destroy(Rgm); Rgm = NULL; }
- if(Lgm != NULL) { p7_profile_Destroy(Lgm); Lgm = NULL; }
- if(Tgm != NULL) { p7_profile_Destroy(Tgm); Tgm = NULL; }
- if(msvdata != NULL) { p7_hmm_MSVDataDestroy(msvdata); msvdata = NULL; }
- } /* end of while(cm_p7_oprofile_ReadMSV() == eslOK) */
-
- esl_alphabet_Destroy(abc);
-
+ if(status == eslOK) {
+ if(rinfo->msvdataA[cm_idx] == NULL) {
+ rinfo->msvdataA[cm_idx] = p7_hmm_ScoreDataCreate(rinfo->omA[cm_idx], FALSE);
+ }
+ /* set pointers for convenience */
+ om = rinfo->omA[cm_idx];
+ cm_offset = rinfo->cm_offsetA[cm_idx];
+ cm_clen = rinfo->cm_clenA[cm_idx];
+ cm_W = rinfo->cm_WA[cm_idx];
+ cm_nbp = rinfo->cm_nbpA[cm_idx];
+ gfmu = rinfo->gfmuA[cm_idx];
+ gflambda = rinfo->gflambdaA[cm_idx];
+ msvdata = rinfo->msvdataA[cm_idx];
+ clan_idx = rinfo->clan_idxA[cm_idx];
+
+ esl_vec_FCopy(om->evparam, p7_NEVPARAM, tinfo->p7_evparam);
+ tinfo->p7_evparam[CM_p7_GFMU] = gfmu;
+ tinfo->p7_evparam[CM_p7_GFLAMBDA] = gflambda;
+ hmm = NULL; /* this will get filled in cm_Pipeline() only if necessary */
+ gm = NULL; /* ditto */
+ Rgm = NULL; /* ditto */
+ Lgm = NULL; /* ditto */
+ Tgm = NULL; /* ditto */
+ cm = NULL; /* ditto */
+ if(tinfo->pli->do_wcx) cm_W = (int) cm_clen * tinfo->pli->wcx; /* do_wcx == TRUE means --wcx was used */
+ if((status = cm_pli_NewModel(tinfo->pli, CM_NEWMODEL_MSV,
+ cm, /* this is NULL b/c we don't have one yet */
+ cm_clen, cm_W, cm_nbp, om, /* we read these in cm_p7_oprofile_ReadMSV() */
+ tinfo->bg, tinfo->p7_evparam, om->max_length, cm_idx, clan_idx, tinfo->glocal_kh)) != eslOK) cm_Fail(tinfo->pli->errbuf);
+
+ /* Split the sequence (tinfo->qsq) into chunks and run the
+ * pipeline on each. If we're in rev comp (tinfo->in_rc == 1)
+ * then we take care to search the same subsequences that
+ * cmsearch would search, these are the reverse complements of
+ * the chunks we searched when we entered this function with the
+ * forward strand. Also, chunk boundary determination requires
+ * start < end, so we swap them if we're in the revcomp and then
+ * swap back before we call cm_pipeline() (again this is to
+ * match up with how cmsearch does it).
+ */
+ prv_posn = 0;
+ if(tinfo->in_rc) ESL_SWAP(tinfo->qsq->start, tinfo->qsq->end, int64_t);
+ while(prv_posn != tinfo->qsq->L) {
+ /* manipulate qsq's 'start', 'end', 'n', 'C', and 'dsq'
+ * pointer for our purposes: so the pipeline only searches the
+ * chunk we want it to. If we're in revcomp, we've already
+ * swapped start and end when we entered this function, that
+ * way we can use same code here whether we're in revcomp or
+ * not.
+ */
+ if(prv_posn != 0) { /* not the first chunk of the sequence */
+ tinfo->qsq->start = ESL_MAX(prv_posn - tinfo->pli->maxW + 1, 1);
+ tinfo->qsq->C = prv_posn - tinfo->qsq->start + 1;
+ /* tinfo->qsq->C is number of overlapping residues with
+ * previous chunk, we'll subtract this from pipeline stats
+ * in serial_loop() or pipeline_thread().
+ */
+ } /* else, tinfo->qsq->start remains as '1', and tinfo->qsq->C remains as '0' */
+ tinfo->qsq->end = ESL_MIN(prv_posn + CM_MAX_RESIDUE_COUNT, tinfo->qsq->L); /* increment end by CM_MAX_RESIDUE_COUNT, if end == L, this has no effect */
+ tinfo->qsq->n = tinfo->qsq->end - tinfo->qsq->start + 1;
+ tinfo->qsq->W = tinfo->qsq->n - tinfo->qsq->C;
+ prv_posn = tinfo->qsq->end;
+ if(tinfo->in_rc) {
+ ESL_SWAP(tinfo->qsq->start, tinfo->qsq->end, int64_t);
+ tinfo->qsq->dsq = save_dsq + (tinfo->qsq->L - tinfo->qsq->start);
+ }
+ else {
+ tinfo->qsq->dsq = save_dsq + tinfo->qsq->start - 1;
+ }
+ /*printf("serial_loop() calling cm_Pipeline %s vs %s start: %" PRId64 " end: %" PRId64 " n: %" PRId64 " C: %" PRId64 " W: %" PRId64 " L: %" PRId64 " in_rc: %d\n",
+ om->name, tinfo->qsq->name, tinfo->qsq->start, tinfo->qsq->end, tinfo->qsq->n, tinfo->qsq->C, tinfo->qsq->W, tinfo->qsq->L, tinfo->in_rc); */
+
+ prv_ntophits = tinfo->th->N;
+ if((status = cm_Pipeline(tinfo->pli, cm_offset, om, tinfo->bg, tinfo->p7_evparam, msvdata, tinfo->qsq, tinfo->th, tinfo->in_rc, &hmm, &gm, &Rgm, &Lgm, &Tgm, &cm)) != eslOK)
+ cm_Fail("cm_Pipeline() failed unexpected with status code %d\n%s", status, tinfo->pli->errbuf);
+
+ cm_pipeline_Reuse(tinfo->pli);
+ /* subtract overlapping residues from previous chunk */
+ if(tinfo->qsq->C > 0) cm_pli_AdjustNresForOverlaps(tinfo->pli, tinfo->qsq->C, tinfo->in_rc);
+ /* adjust hit positions so they're w.r.t full source sequence */
+ if(tinfo->th->N != prv_ntophits) cm_tophits_UpdateHitPositions(tinfo->th, prv_ntophits, tinfo->qsq->start, tinfo->in_rc);
+
+ if(tinfo->th->N != prv_ntophits && (! tinfo->pli->do_trm_F3)) {
+ if(tinfo->pli->do_hmmonly_cur) eZ = tinfo->pli->Z / (float) om->max_length;
+ else eZ = cm->expA[tinfo->pli->final_cm_exp_mode]->cur_eff_dbsize;
+ cm_tophits_ComputeEvalues(tinfo->th, eZ, prv_ntophits);
+ }
+ } /* end of 'while(prv_posn != tinfo->qsq->L)' */
+ /* reset qsq to its initial values for next profile */
+ tinfo->qsq->dsq = save_dsq;
+ tinfo->qsq->start = tinfo->in_rc ? tinfo->qsq->L : 1;
+ tinfo->qsq->end = tinfo->in_rc ? 1 : tinfo->qsq->L;
+ tinfo->qsq->n = tinfo->qsq->L;
+ tinfo->qsq->W = tinfo->qsq->L;
+ tinfo->qsq->C = 0;
+
+ if(cm != NULL) { FreeCM(cm); cm = NULL; }
+ if(hmm != NULL) { p7_hmm_Destroy(hmm); hmm = NULL; }
+ if(gm != NULL) { p7_profile_Destroy(gm); gm = NULL; }
+ if(Rgm != NULL) { p7_profile_Destroy(Rgm); Rgm = NULL; }
+ if(Lgm != NULL) { p7_profile_Destroy(Lgm); Lgm = NULL; }
+ if(Tgm != NULL) { p7_profile_Destroy(Tgm); Tgm = NULL; }
+ /* don't free om or msvdata, rinfo points at those and we want to keep them */
+
+ cm_idx++;
+ } /* end of 'if(status == eslOK)' signaling a successful MSV read or point of ptr */
+ } /* end of 'while (cm_idx < tinfo->nmodels && status == eslOK)' */
+
+ /* don't destroy the alphabet, oms in omA point to it */
return status;
}
#ifdef HMMER_THREADS
static int
-thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, CM_FILE *cmfp)
+thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, READER_INFO *rinfo, CM_FILE *cmfp)
{
int status = eslOK;
int sstatus = eslOK;
int eofCount = 0;
CM_P7_OM_BLOCK *block;
- ESL_ALPHABET *abc = NULL;
void *newBlock;
+ int64_t idx0 = 0; /* index of next profile in CM file, 0 == first profile */
+ int64_t cm_idx = 0; /* index of current profile we're working on */
+ int64_t i; /* counter over elements of a block */
+
+ /* variables related to --clanin */
+ int have_clans; /* set to TRUE if we have information on clans, else FALSE */
+
+ /* do we have clan info? */
+ have_clans = (rinfo->clan_fam_kh != NULL && rinfo->clan_mapA != NULL) ? TRUE : FALSE;
esl_workqueue_Reset(queue);
esl_threads_WaitForStart(obj);
@@ -767,28 +960,78 @@ thread_loop(ESL_THREADS *obj, ESL_WORK_QUEUE *queue, CM_FILE *cmfp)
while (sstatus == eslOK)
{
block = (CM_P7_OM_BLOCK *) newBlock;
- sstatus = cm_p7_oprofile_ReadBlockMSV(cmfp, &abc, block);
+ /* must we read the MSV, or do we already have it? */
+ if(idx0 < rinfo->nmodels && rinfo->omA[idx0] == NULL) {
+ /* read it
+ * (impt that we check idx0 < rinfo->nmodels first, before checking if rinfo->omA[idx0] is NULL above) */
+ sstatus = cm_p7_oprofile_ReadBlockMSV(cmfp, idx0, &(rinfo->abc), block);
+ i = 0;
+ while(i < block->count) {
+ if(cm_idx >= rinfo->nmodels) return eslFAIL; /* this should never happen */
+ rinfo->cm_offsetA[cm_idx] = block->cm_offsetA[i];
+ rinfo->cm_clenA[cm_idx] = block->cm_clenA[i];
+ rinfo->cm_WA[cm_idx] = block->cm_WA[i];
+ rinfo->cm_nbpA[cm_idx] = block->cm_nbpA[i];
+ rinfo->gfmuA[cm_idx] = block->gfmuA[i];
+ rinfo->gflambdaA[cm_idx] = block->gflambdaA[i];
+ rinfo->omA[cm_idx] = block->list[i];
+ rinfo->msvdataA[cm_idx] = block->msvdataA[i];
+
+ /* figure out clan_idx and set it in the block and rinfo */
+ if(have_clans) { block->clan_idxA[i] = determine_clan_index(rinfo->omA[cm_idx]->name, rinfo->clan_fam_kh, rinfo->clan_mapA); }
+ else { block->clan_idxA[i] = -1; }
+ rinfo->clan_idxA[cm_idx] = block->clan_idxA[i];
+
+ /* increment counters */
+ i++;
+ cm_idx++;
+ }
+ }
+ else {
+ /* don't read, it's already stored, just set the block using rinfo
+ * (we'll also enter this if idx0 == rinfo->nmodels, and that's okay)
+ */
+ block->count = 0;
+ block->idx0 = idx0;
+ i = 0;
+ while(i < block->listSize && cm_idx < rinfo->nmodels) {
+ block->cm_offsetA[i] = rinfo->cm_offsetA[cm_idx];
+ block->cm_clenA[i] = rinfo->cm_clenA[cm_idx];
+ block->cm_WA[i] = rinfo->cm_WA[cm_idx];
+ block->cm_nbpA[i] = rinfo->cm_nbpA[cm_idx];
+ block->gfmuA[i] = rinfo->gfmuA[cm_idx];
+ block->gflambdaA[i] = rinfo->gflambdaA[cm_idx];
+ block->list[i] = rinfo->omA[cm_idx];
+ block->msvdataA[i] = rinfo->msvdataA[cm_idx];
+ block->clan_idxA[i] = rinfo->clan_idxA[cm_idx];
+ block->count++;
+ i++;
+ cm_idx++;
+ }
+ sstatus = (block->count > 0) ? eslOK : eslEOF; /* eslEOF set only if no profiles were set in block */
+ } /* end of 'else' entered 'if(rinfo->omA[idx0] != NULL)' */
if (sstatus == eslEOF) {
- if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
- ++eofCount;
+ if (eofCount < esl_threads_GetWorkerCount(obj)) sstatus = eslOK;
+ ++eofCount;
}
if (sstatus == eslOK) {
- status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
+ status = esl_workqueue_ReaderUpdate(queue, block, &newBlock);
if (status != eslOK) esl_fatal("Work queue reader failed");
+ idx0 += block->count;
}
}
status = esl_workqueue_ReaderUpdate(queue, block, NULL);
if (status != eslOK) esl_fatal("Work queue reader failed");
-
+
if (sstatus == eslEOF)
{
/* wait for all the threads to complete */
esl_threads_WaitForFinish(obj);
esl_workqueue_Complete(queue);
+ sstatus = eslOK; /* set status to OK so serial_loop() knows we're good */
}
- esl_alphabet_Destroy(abc);
return sstatus;
}
@@ -798,26 +1041,32 @@ pipeline_thread(void *arg)
int i;
int status;
int workeridx;
- WORKER_INFO *info;
+ THREAD_INFO *tinfo;
ESL_THREADS *obj;
CM_P7_OM_BLOCK *block;
void *newBlock;
CM_t *cm = NULL;
- ESL_ALPHABET *abc = NULL;
P7_HMM *hmm = NULL;
- P7_PROFILE *gm = NULL; /* generic query profile HMM */
- P7_PROFILE *Rgm = NULL; /* generic query profile HMM for env defn for 5' truncated hits */
- P7_PROFILE *Lgm = NULL; /* generic query profile HMM for env defn for 3' truncated hits */
- P7_PROFILE *Tgm = NULL; /* generic query profile HMM for env defn for 5' and 3'truncated hits */
- P7_MSVDATA *msvdata = NULL; /* MSV/SSV specific data structure */
- int prv_ntophits; /* number of top hits before cm_Pipeline() call */
- int cm_clen, cm_W, cm_nbp; /* consensus, window length, num bps for CM */
- float gfmu, gflambda; /* glocal fwd mu, lambda for current hmm filter */
- off_t cm_offset; /* file offset for current CM */
- int64_t cm_idx = 0; /* index of CM we're currently working with */
- double eZ; /* effective database size */
-
+ P7_PROFILE *gm = NULL; /* generic query profile HMM */
+ P7_PROFILE *Rgm = NULL; /* generic query profile HMM for env defn for 5' truncated hits */
+ P7_PROFILE *Lgm = NULL; /* generic query profile HMM for env defn for 3' truncated hits */
+ P7_PROFILE *Tgm = NULL; /* generic query profile HMM for env defn for 5' and 3'truncated hits */
+ int prv_ntophits; /* number of top hits before cm_Pipeline() call */
+ int cm_clen, cm_W, cm_nbp; /* consensus, window length, num bps for CM */
+ float gfmu, gflambda; /* glocal fwd mu, lambda for current hmm filter */
+ off_t cm_offset; /* file offset for current CM */
+ int64_t cm_idx = 0; /* index of CM we're currently working with */
+ double eZ; /* effective database size */
+ int64_t prv_posn = 0; /* position of previous chunk for cur seq, 0 if first chunk */
+ ESL_SQ *save_sq = NULL; /* pointer to original qsq */
+ ESL_DSQ *save_dsq = NULL; /* pointer to original qsq->dsq data */
+ ESL_SQ *tmp_sq = NULL; /* temporary sequence, a copy of tinfo->qsq that
+ * we can manipulate without interfering with other
+ * threads who's tinfo->qsq points at the same sequence.
+ */
+ int clan_idx = -1; /* clan index, -1 if current family is not part of a clan */
+
#ifdef HAVE_FLUSH_ZERO_MODE
/* In order to avoid the performance penalty dealing with sub-normal
* values in the floating point calculations, set the processor flag
@@ -831,85 +1080,152 @@ pipeline_thread(void *arg)
obj = (ESL_THREADS *) arg;
esl_threads_Started(obj, &workeridx);
- info = (WORKER_INFO *) esl_threads_GetData(obj, workeridx);
+ tinfo = (THREAD_INFO *) esl_threads_GetData(obj, workeridx);
- status = esl_workqueue_WorkerUpdate(info->queue, NULL, &newBlock);
+ status = esl_workqueue_WorkerUpdate(tinfo->queue, NULL, &newBlock);
if (status != eslOK) esl_fatal("Work queue worker failed");
+ /* set up the temporary sequence, we'll need to copy the name, desc,
+ * and acc, but we'll cheat with dsq, by just pointing it at the
+ * appropriate positin of tinfo->qsq->dsq. We use tmp_sq instead
+ * of original tinfo->qsq so we can manipulate it by splitting
+ * it into chunks if it's long, and not interfere with other
+ * threads.
+ */
+ save_sq = tinfo->qsq;
+ save_dsq = tinfo->qsq->dsq;
+ duplicate_sq_for_thread(tinfo->qsq, &tmp_sq);
+ tinfo->qsq = tmp_sq; /* for convenience only, this allows us to use tinfo->qsq below (and thus the same code we used in serial_loop()) */
+
/* loop until all blocks have been processed */
block = (CM_P7_OM_BLOCK *) newBlock;
while (block->count > 0)
{
/* Main loop: */
+ cm_idx = block->idx0;
for (i = 0; i < block->count; ++i)
{
- P7_OPROFILE *om = block->list[i];
- cm_offset = block->cm_offsetA[i];
- cm_clen = block->cm_clenA[i];
- cm_W = block->cm_WA[i];
- cm_nbp = block->cm_nbpA[i];
- gfmu = block->gfmuA[i];
- gflambda = block->gflambdaA[i];
- cm_idx++;
-
- msvdata = p7_hmm_MSVDataCreate(om, FALSE);
- esl_vec_FCopy(om->evparam, p7_NEVPARAM, info->p7_evparam);
- info->p7_evparam[CM_p7_GFMU] = gfmu;
- info->p7_evparam[CM_p7_GFLAMBDA] = gflambda;
+ P7_OPROFILE *om = block->list[i];
+ P7_SCOREDATA *msvdata = block->msvdataA[i];
+ cm_offset = block->cm_offsetA[i];
+ cm_clen = block->cm_clenA[i];
+ cm_W = block->cm_WA[i];
+ cm_nbp = block->cm_nbpA[i];
+ gfmu = block->gfmuA[i];
+ gflambda = block->gflambdaA[i];
+ clan_idx = block->clan_idxA[i];
+
+ esl_vec_FCopy(om->evparam, p7_NEVPARAM, tinfo->p7_evparam);
+ tinfo->p7_evparam[CM_p7_GFMU] = gfmu;
+ tinfo->p7_evparam[CM_p7_GFLAMBDA] = gflambda;
hmm = NULL; /* this will get filled in cm_Pipeline() only if necessary */
gm = NULL; /* ditto */
Rgm = NULL; /* ditto */
Lgm = NULL; /* ditto */
Tgm = NULL; /* ditto */
cm = NULL; /* ditto */
- if(info->pli->do_wcx) cm_W = (int) cm_clen * info->pli->wcx; /* do_wcx == TRUE means --wcx was used */
- if((status = cm_pli_NewModel(info->pli, CM_NEWMODEL_MSV,
- cm, /* this is NULL b/c we don't have one yet */
- cm_clen, cm_W, cm_nbp, /* we read these in cm_p7_oprofile_ReadMSV() */
- om, info->bg, info->p7_evparam, om->max_length, cm_idx-1, info->glocal_kh)) != eslOK) cm_Fail(info->pli->errbuf);
-
- prv_ntophits = info->th->N;
- if((status = cm_Pipeline(info->pli, cm_offset, om, info->bg, info->p7_evparam, msvdata, info->qsq, info->th, info->in_rc, &hmm, &gm, &Rgm, &Lgm, &Tgm, &cm)) != eslOK)
- cm_Fail("cm_Pipeline() failed unexpected with status code %d\n%s", status, info->pli->errbuf);
- cm_pipeline_Reuse(info->pli);
- if(info->in_rc && info->th->N != prv_ntophits) cm_tophits_UpdateHitPositions(info->th, prv_ntophits, info->qsq->start, info->in_rc);
-
- if(info->th->N != prv_ntophits) {
- if(info->pli->do_hmmonly_cur) eZ = info->pli->Z / (float) om->max_length;
- else eZ = cm->expA[info->pli->final_cm_exp_mode]->cur_eff_dbsize;
- cm_tophits_ComputeEvalues(info->th, eZ, prv_ntophits);
- }
-
+ if(tinfo->pli->do_wcx) cm_W = (int) cm_clen * tinfo->pli->wcx; /* do_wcx == TRUE means --wcx was used */
+ if((status = cm_pli_NewModel(tinfo->pli, CM_NEWMODEL_MSV,
+ cm, /* this is NULL b/c we don't have one yet */
+ cm_clen, cm_W, cm_nbp, om, /* we read these in cm_p7_oprofile_ReadMSV() */
+ tinfo->bg, tinfo->p7_evparam, om->max_length, cm_idx, clan_idx, tinfo->glocal_kh)) != eslOK) cm_Fail(tinfo->pli->errbuf);
+
+
+ /* Split the sequence (tinfo->qsq) into chunks and run the
+ * pipeline on each. If we're in rev comp (tinfo->in_rc ==
+ * 1) then we take care to search the same subsequences that
+ * cmsearch would search, these are the reverse complements
+ * of the chunks we searched when we entered this function
+ * with the forward strand. Also, chunk boundary
+ * determination requires start < end, so we swap them if
+ * we're in the revcomp and then swap back before we call
+ * cm_pipeline() (again this is to match up with how
+ * cmsearch does it).
+ */
+ prv_posn = 0;
+ if(tinfo->in_rc) ESL_SWAP(tinfo->qsq->start, tinfo->qsq->end, int64_t);
+ while(prv_posn != tinfo->qsq->L) {
+ /* manipulate qsq's 'start', 'end', 'n', 'C', and 'dsq' pointer for our purposes:
+ * so the pipeline only searches the chunk we want it to. If we're in revcomp,
+ * we've already swapped start and end when we entered this function, that
+ * way we can use same code here whether we're in revcomp or not.
+ */
+ if(prv_posn != 0) { /* not the first chunk of the sequence */
+ tinfo->qsq->start = ESL_MAX(prv_posn - tinfo->pli->maxW + 1, 1);
+ tinfo->qsq->C = prv_posn - tinfo->qsq->start + 1;
+ /* tinfo->qsq->C is number of overlapping residues with previous chunk, we'll subtract
+ * this from pipeline stats in serial_loop() or pipeline_thread().
+ */
+ } /* else, tinfo->qsq->start remains as '1', and tinfo->qsq->C remains as '0' */
+ tinfo->qsq->end = ESL_MIN(prv_posn + CM_MAX_RESIDUE_COUNT, tinfo->qsq->L); /* increment end by CM_MAX_RESIDUE_COUNT, if end == L, this has no effect */
+ tinfo->qsq->n = tinfo->qsq->end - tinfo->qsq->start + 1;
+ tinfo->qsq->W = tinfo->qsq->n - tinfo->qsq->C;
+ prv_posn = tinfo->qsq->end;
+ tinfo->qsq->dsq = save_dsq + tinfo->qsq->start - 1;
+ if(tinfo->in_rc) {
+ ESL_SWAP(tinfo->qsq->start, tinfo->qsq->end, int64_t);
+ tinfo->qsq->dsq = save_dsq + (tinfo->qsq->L - tinfo->qsq->start);
+ }
+ else {
+ tinfo->qsq->dsq = save_dsq + tinfo->qsq->start - 1;
+ }
+ /*printf("pipeline_thread() calling cm_Pipeline %s vs %s start: %" PRId64 " end: %" PRId64 " n: %" PRId64 " C: %" PRId64 " W: %" PRId64 " L: %" PRId64 " in_rc: %d\n",
+ om->name, tinfo->qsq->name, tinfo->qsq->start, tinfo->qsq->end, tinfo->qsq->n, tinfo->qsq->C, tinfo->qsq->W, tinfo->qsq->L, tinfo->in_rc);
+ */
+
+ prv_ntophits = tinfo->th->N;
+ if((status = cm_Pipeline(tinfo->pli, cm_offset, om, tinfo->bg, tinfo->p7_evparam, msvdata, tinfo->qsq, tinfo->th, tinfo->in_rc, &hmm, &gm, &Rgm, &Lgm, &Tgm, &cm)) != eslOK)
+ cm_Fail("cm_Pipeline() failed unexpected with status code %d\n%s", status, tinfo->pli->errbuf);
+
+ cm_pipeline_Reuse(tinfo->pli);
+ /* subtract overlapping residues from previous chunk */
+ if(tinfo->qsq->C > 0) cm_pli_AdjustNresForOverlaps(tinfo->pli, tinfo->qsq->C, tinfo->in_rc);
+ /* adjust hit positions so they're w.r.t full source sequence */
+ if(tinfo->th->N != prv_ntophits) cm_tophits_UpdateHitPositions(tinfo->th, prv_ntophits, tinfo->qsq->start, tinfo->in_rc);
+
+ if(tinfo->th->N != prv_ntophits && (! tinfo->pli->do_trm_F3)) {
+ if(tinfo->pli->do_hmmonly_cur) eZ = tinfo->pli->Z / (float) om->max_length;
+ else eZ = cm->expA[tinfo->pli->final_cm_exp_mode]->cur_eff_dbsize;
+ cm_tophits_ComputeEvalues(tinfo->th, eZ, prv_ntophits);
+ }
+ } /* end of 'while(prv_posn != tinfo->qsq->L)' */
+ /* reset qsq to its initial values for next profile */
+ copy_sq_for_thread(save_sq, tinfo->qsq);
+
if(cm != NULL) { FreeCM(cm); cm = NULL; }
- if(om != NULL) { p7_oprofile_Destroy(om); om = NULL; }
if(hmm != NULL) { p7_hmm_Destroy(hmm); hmm = NULL; }
if(gm != NULL) { p7_profile_Destroy(gm); gm = NULL; }
if(Rgm != NULL) { p7_profile_Destroy(Rgm); Rgm = NULL; }
if(Lgm != NULL) { p7_profile_Destroy(Lgm); Lgm = NULL; }
if(Tgm != NULL) { p7_profile_Destroy(Tgm); Tgm = NULL; }
- if(msvdata != NULL) { p7_hmm_MSVDataDestroy(msvdata); msvdata = NULL; }
+ /* don't free om or msvdata, rinfo points at those and we want to keep them */
- block->list[i] = NULL;
+ block->list[i] = NULL; /* don't worry, this will get free'd when rinfo is free'd */
+ block->msvdataA[i] = NULL; /* ditto */
block->cm_offsetA[i] = 0;
block->cm_clenA[i] = 0;
block->cm_WA[i] = 0;
block->gfmuA[i] = 0.;
block->gflambdaA[i] = 0.;
+
+ cm_idx++;
}
- status = esl_workqueue_WorkerUpdate(info->queue, block, &newBlock);
+ status = esl_workqueue_WorkerUpdate(tinfo->queue, block, &newBlock);
if (status != eslOK) esl_fatal("Work queue worker failed");
block = (CM_P7_OM_BLOCK *) newBlock;
}
-
- status = esl_workqueue_WorkerUpdate(info->queue, block, NULL);
- if (status != eslOK) esl_fatal("Work queue worker failed");
+ status = esl_workqueue_WorkerUpdate(tinfo->queue, block, NULL);
+ if (status != eslOK) esl_fatal("Work queue worker failed");
+
esl_threads_Finished(obj, workeridx);
- esl_alphabet_Destroy(abc);
-
+ tinfo->qsq = save_sq;
+ tmp_sq->dsq = NULL; /* important: we don't want to free this, it points to tinfo->qsq->dsq */
+ esl_sq_Destroy(tmp_sq);
+
return;
}
#endif /* HMMER_THREADS */
@@ -947,17 +1263,26 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
ESL_STOPWATCH *mw = NULL; /* timing all query sequences */
ESL_SQ *qsq = NULL; /* query sequence */
int qZ = 0; /* # residues to search in query seq (both strands)*/
- int seq_idx = 0;
+ int64_t seq_idx = 0;
int textw;
int status = eslOK;
int hstatus = eslOK;
int sstatus = eslOK;
int dest;
+ /* variables only used if --clanin is used */
+ ESL_KEYHASH *clan_name_kh = NULL; /* these are clan names */
+ ESL_KEYHASH *clan_fam_kh = NULL; /* these are family names in a clan, members of same clan are contiguous */
+ int *clan_mapA = NULL; /* [0..i..nfam-1] = c; family index i in <clan_fam_kh> belongs to clan
+ * index c in <clan_name_kh>. */
+
char *mpi_buf = NULL; /* buffer used to pack/unpack structures */
int mpi_size = 0; /* size of the allocated buffer */
BLOCK_LIST *list = NULL;
MSV_BLOCK block;
+ int64_t nmodels; /* number of models in CM file */
+ int64_t bsize = 0; /* number of models per worker block */
+ uint64_t cm_idx = 0; /* index of profile we're currently working on */
int i;
int size;
@@ -987,6 +1312,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (cmfp->do_gzip) mpi_failure("Reading gzipped CM files is not supported");
if (cmfp->do_stdin) mpi_failure("Reading CM files from stdin is not supported");
if (! cmfp->is_pressed) mpi_failure("Failed to open binary auxfiles for %s: use cmpress first\n", cmfp->fname);
+ nmodels = (int64_t) cmfp->ssi->nprimary;
hstatus = cm_file_Read(cmfp, FALSE, &abc, NULL);
if(hstatus == eslEFORMAT) mpi_failure("bad file format in CM file %s\n%s", cfg->cmfile, cmfp->errbuf);
@@ -1002,7 +1328,12 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
cfg->Z = (int64_t) cmfp->ssi->nprimary;
cfg->Z_setby = CM_ZSETBY_SSI_AND_QLENGTH; /* we will multiply Z by each query sequence length */
}
- cm_file_Close(cmfp);
+ /* If nec, open and read the clan info file, while CM file is open */
+ if (esl_opt_IsOn(go, "--clanin")) {
+ if((status = read_clan_info_file(esl_opt_GetString(go, "--clanin"), errbuf, cmfp, &clan_name_kh, &clan_fam_kh, &clan_mapA)) != eslOK) cm_Fail(errbuf);
+ }
+
+ cm_file_Close(cmfp); /* important to do this after the read_clan_info_file() call above, which uses cmfp */
/* Open the query sequence database */
status = esl_sqfile_OpenDigital(abc, cfg->seqfile, seqfmt, NULL, &sqfp);
@@ -1024,6 +1355,15 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
list->last = 0;
list->blocks = NULL;
+ /* determine block size, unless user set it on the cmdline */
+ if(esl_opt_IsOn(go, "--block")) {
+ bsize = esl_opt_GetInteger(go, "--block");
+ }
+ else {
+ bsize = nmodels / (cfg->nproc - 1);
+ if(nmodels % (cfg->nproc - 1) != 0) bsize++;
+ }
+
output_header(ofp, go, cfg->cmfile, cfg->seqfile, cfg->nproc);
qsq = esl_sq_CreateDigital(abc);
bg = p7_bg_Create(abc);
@@ -1034,8 +1374,6 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
CM_PIPELINE *pli = NULL; /* processing pipeline */
CM_TOPHITS *th = NULL; /* top-scoring sequence hits */
- if(qsq->n > CMSCAN_MAX_SEQ_LEN) mpi_failure("sequence #%d (L=%d) exceeds max length of %d\n", seq_idx+1, qsq->n, CMSCAN_MAX_SEQ_LEN);
-
seq_idx++;
esl_stopwatch_Start(w);
@@ -1074,7 +1412,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
list->current = 0; /* init nmodels searched for this strand of this seq against any models, impt to reset this for each strand! */
/* Main loop: */
- while ((hstatus = mpi_next_block(cmfp, list, &block)) == eslOK)
+ while ((hstatus = mpi_next_block(cmfp, list, bsize, cm_idx, &block)) == eslOK)
{
if (MPI_Probe(MPI_ANY_SOURCE, MPI_ANY_TAG, MPI_COMM_WORLD, &mpistatus) != 0)
mpi_failure("MPI error %d receiving message from %d\n", mpistatus.MPI_SOURCE);
@@ -1094,7 +1432,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if (mpistatus.MPI_TAG != INFERNAL_READY_TAG)
mpi_failure("Unexpected tag %d from %d\n", mpistatus.MPI_TAG, dest);
- MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD);
+ MPI_Send(&block, 4, MPI_LONG_LONG_INT, dest, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD);
+ cm_idx += block.count;
}
switch(hstatus)
{
@@ -1132,7 +1471,7 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
for (dest = 1; dest < cfg->nproc; ++dest) {
/* send an empty block to signal the worker they are done with this strand of this sequence */
- MPI_Send(&block, 3, MPI_LONG_LONG_INT, dest, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD);
+ MPI_Send(&block, 4, MPI_LONG_LONG_INT, dest, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD);
}
cm_file_Close(cmfp);
@@ -1169,24 +1508,39 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if(pli->nnodes_hmmonly > 0) pli->nnodes_hmmonly /= 2;
}
- if(pli->do_trunc_ends) {
- /* We may have overlaps so sort by sequence index/position and remove duplicates */
- cm_tophits_SortForOverlapRemoval(th);
- if((status = cm_tophits_RemoveOverlaps(th, errbuf)) != eslOK) mpi_failure(errbuf);
- }
-
- /* Print the results. */
- cm_tophits_SortByEvalue(th);
+ /* Sort by sequence index/position and remove duplicates found because we searched overlapping chunks */
+ cm_tophits_SortForOverlapRemoval(th);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(th, FALSE, errbuf)) != eslOK) mpi_failure(errbuf);
+
+ /* Resort in order to markup overlapping hits from different models (only within clans if --oclan) */
+ cm_tophits_SortForOverlapMarkup(th, esl_opt_GetBoolean(go, "--oclan"));
+ if((status = cm_tophits_RemoveOrMarkOverlaps(th, esl_opt_GetBoolean(go, "--oclan"), errbuf)) != eslOK) cm_Fail(errbuf);
+
+ /* Resort: by score (usually) or by position (if in special 'terminate after F3' mode) */
+ if(pli->do_trm_F3) cm_tophits_SortByPosition(th);
+ else cm_tophits_SortByEvalue(th);
+
+ /* TEMP cm_tophits_Dump(stdout, tinfo[0].th); */
+
+ /* Enforce threshold */
cm_tophits_Threshold(th, pli);
/* tally up total number of hits and target coverage */
for (i = 0; i < th->N; i++) {
if ((th->hit[i]->flags & CM_HIT_IS_REPORTED) || (th->hit[i]->flags & CM_HIT_IS_INCLUDED)) {
pli->acct[th->hit[i]->pass_idx].n_output++;
- pli->acct[th->hit[i]->pass_idx].pos_output += abs(th->hit[i]->stop - th->hit[i]->start) + 1;
+ pli->acct[th->hit[i]->pass_idx].pos_output += llabs(th->hit[i]->stop - th->hit[i]->start) + 1;
}
}
- cm_tophits_Targets(ofp, th, pli, textw); fprintf(ofp, "\n\n");
+
+ /* Print the results. */
+ if(pli->do_trm_F3) {
+ cm_tophits_F3Targets(ofp, th, pli);
+ }
+ else {
+ cm_tophits_Targets(ofp, th, pli, textw);
+ }
+ fprintf(ofp, "\n\n");
if(pli->show_alignments) {
if((status = cm_tophits_HitAlignments(ofp, th, pli, textw)) != eslOK) mpi_failure("Out of memory");
@@ -1200,8 +1554,18 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
}
- if (tblfp) cm_tophits_TabularTargets(tblfp, qsq->name, qsq->acc, th, pli, (seq_idx == 1));
-
+ if (tblfp != NULL) {
+ if((! esl_opt_IsUsed(go, "--fmt")) || (esl_opt_GetInteger(go, "--fmt") == 1)) { /* fmt defaults to 1 */
+ if(pli->do_trm_F3) cm_tophits_F3TabularTargets1(tblfp, th, pli, (seq_idx == 1));
+ else cm_tophits_TabularTargets1 (tblfp, qsq->name, qsq->acc, th, pli, (seq_idx == 1));
+ }
+ else if(esl_opt_GetInteger(go, "--fmt") == 2) {
+ if((status = cm_tophits_TabularTargets2(tblfp, qsq->name, qsq->acc, th, pli, (seq_idx == 1), clan_name_kh, esl_opt_GetBoolean(go, "--oskip"), errbuf)) != eslOK) {
+ mpi_failure(errbuf);
+ }
+ }
+ }
+
esl_stopwatch_Stop(w);
cm_pli_Statistics(ofp, pli, w);
fprintf(ofp, "//\n");
@@ -1255,8 +1619,11 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
esl_sq_Destroy(qsq);
esl_alphabet_Destroy(abc);
esl_sqfile_Close(sqfp);
- if(w != NULL) esl_stopwatch_Destroy(w);
- if(mw != NULL) esl_stopwatch_Destroy(mw);
+ if(w != NULL) esl_stopwatch_Destroy(w);
+ if(mw != NULL) esl_stopwatch_Destroy(mw);
+ if(clan_name_kh != NULL) esl_keyhash_Destroy(clan_name_kh);
+ if(clan_fam_kh != NULL) esl_keyhash_Destroy(clan_fam_kh);
+ if(clan_mapA != NULL) free(clan_mapA);
if (ofp != stdout) fclose(ofp);
if (tblfp) fclose(tblfp);
@@ -1282,7 +1649,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
P7_PROFILE *Rgm = NULL; /* generic query profile HMM for env defn for 5' truncated hits */
P7_PROFILE *Lgm = NULL; /* generic query profile HMM for env defn for 3' truncated hits */
P7_PROFILE *Tgm = NULL; /* generic query profile HMM for env defn for 5' and 3'truncated hits */
- P7_MSVDATA *msvdata = NULL; /* MSV/SSV specific data structure */
+ P7_SCOREDATA *msvdata = NULL; /* MSV/SSV specific data structure */
ESL_STOPWATCH *w = NULL; /* timing */
ESL_SQ *qsq = NULL; /* query sequence */
@@ -1296,17 +1663,30 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
float *p7_evparam; /* E-value parameters for the p7 filter */
int prv_ntophits; /* number of top hits before cm_Pipeline() call */
int in_rc; /* in_rc == TRUE; our qsq has been reverse complemented */
- ESL_KEYHASH *glocal_kh= NULL; /* list of models to configure globally, only created if --glist */
+ ESL_KEYHASH *glocal_kh = NULL; /* list of models to configure globally, only created if --glist */
+
+ /* variables only used if --clanin is used */
+ ESL_KEYHASH *clan_name_kh = NULL; /* these are clan names */
+ ESL_KEYHASH *clan_fam_kh = NULL; /* these are family names in a clan, members of same clan are contiguous */
+ int *clan_mapA = NULL; /* [0..i..nfam-1] = c; family index i in <clan_fam_kh> belongs to clan
+ * index c in <clan_name_kh>. */
char *mpi_buf = NULL; /* buffer used to pack/unpack structures */
int mpi_size = 0; /* size of the allocated buffer */
- int seq_idx = 0; /* index of sequence we're currently working on */
- int cm_idx = 0; /* index of model we're currently working on */
+ int64_t seq_idx = 0; /* index of sequence we're currently working on */
+ int64_t cm_idx = 0; /* index of model we're currently working on */
double eZ; /* effective database size */
+ int64_t prv_posn = 0; /* position of previous chunk for cur seq, 0 if first chunk */
+ ESL_DSQ *save_dsq = NULL; /* pointer to original qsq->dsq data */
+ int have_clans; /* set to TRUE if we have information on clans, else FALSE */
+ int clan_idx = -1; /* clan index, -1 if current family is not part of a clan */
MPI_Status mpistatus;
char errbuf[eslERRBUFSIZE];
+ READER_INFO *rinfo = NULL; /* arrays of stored MSV info, we don't have to reread for each sequence */
+ int64_t nmodels; /* number of models in CM file */
+
w = esl_stopwatch_Create();
/* Open the target profile database to get the sequence alphabet */
@@ -1322,7 +1702,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
if(hstatus == eslEFORMAT) mpi_failure("bad file format in CM file %s\n%s", cfg->cmfile, cmfp->errbuf);
else if (hstatus != eslOK) mpi_failure("Unexpected error in reading CMs from %s\n%s", cfg->cmfile, cmfp->errbuf);
- /* Determine database size: default is to updated as we read target CMs */
+ /* Determine database size: default is to update as we read target CMs */
if(esl_opt_IsUsed(go, "-Z")) {
cfg->Z = (int64_t) esl_opt_GetReal(go, "-Z");
cfg->Z_setby = CM_ZSETBY_OPTION;
@@ -1332,10 +1712,20 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
cfg->Z = (int64_t) cmfp->ssi->nprimary;
cfg->Z_setby = CM_ZSETBY_SSI_AND_QLENGTH; /* we will multiply Z by each query sequence length */
}
- /* Open and read the list of glocal models, while CM file is open */
+ /* If nec, open and read the list of glocal models, while CM file is open */
if (esl_opt_IsOn(go, "--glist")) {
if((status = read_glocal_list_file(esl_opt_GetString(go, "--glist"), errbuf, cmfp, &glocal_kh)) != eslOK) cm_Fail(errbuf);
}
+ /* If nec, open and read the clan info file, while CM file is open */
+ if (esl_opt_IsOn(go, "--clanin")) {
+ if((status = read_clan_info_file(esl_opt_GetString(go, "--clanin"), errbuf, cmfp, &clan_name_kh, &clan_fam_kh, &clan_mapA)) != eslOK) cm_Fail(errbuf);
+ have_clans = TRUE;
+ }
+ else {
+ have_clans = FALSE;
+ }
+
+ nmodels = (int64_t) cmfp->ssi->nprimary;
cm_file_Close(cmfp);
@@ -1351,6 +1741,9 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
ESL_ALLOC(p7_evparam, sizeof(float) * CM_p7_NEVPARAM);
+ /* initialize rinfo */
+ rinfo = create_reader_info(nmodels, clan_fam_kh, clan_mapA);
+
/* Outside loop: over each query sequence in <seqfile>. */
while ((sstatus = esl_sqio_Read(sqfp, qsq)) == eslOK)
{
@@ -1360,6 +1753,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
seq_idx++;
esl_stopwatch_Start(w);
+ save_dsq = qsq->dsq;
/* determine sequence length component for Z calculation, 2 *
* query length (both strands) unless --toponly or --bottomonly
@@ -1395,65 +1789,147 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
cm_pli_NewSeq(pli, qsq, seq_idx);
/* receive a block of models from the master */
- MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus);
+ MPI_Recv(&block, 4, MPI_LONG_LONG_INT, 0, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus);
while (block.count > 0)
{
- uint64_t length = 0;
- uint64_t count = block.count;
-
- hstatus = cm_p7_oprofile_Position(cmfp, block.offset);
- if (hstatus != eslOK) mpi_failure("Cannot position optimized model to %ld\n", block.offset);
-
- while (count > 0 &&
- (hstatus = cm_p7_oprofile_ReadMSV(cmfp, TRUE, &abc, &cm_offset, &cm_clen, &cm_W, &cm_nbp, &gfmu, &gflambda, &om)) == eslOK)
- {
- cm_idx++;
- length = om->eoff - block.offset + 1;
-
- msvdata = p7_hmm_MSVDataCreate(om, FALSE);
-
- esl_vec_FCopy(om->evparam, p7_NEVPARAM, p7_evparam);
- p7_evparam[CM_p7_GFMU] = gfmu;
- p7_evparam[CM_p7_GFLAMBDA] = gflambda;
-
- hmm = NULL; /* this will get filled in cm_Pipeline() only if necessary */
- gm = NULL; /* ditto */
- Rgm = NULL; /* ditto */
- Lgm = NULL; /* ditto */
- Tgm = NULL; /* ditto */
- cm = NULL; /* ditto */
- if(pli->do_wcx) cm_W = (int) cm_clen * pli->wcx; /* do_wcx == TRUE means --wcx was used */
- if((status = cm_pli_NewModel(pli, CM_NEWMODEL_MSV,
- cm, /* this is NULL b/c we don't have one yet */
- cm_clen, cm_W, cm_nbp, /* we read these in cm_p7_oprofile_ReadMSV() */
- om, bg, p7_evparam, om->max_length, cm_idx-1, glocal_kh)) != eslOK) mpi_failure(pli->errbuf);
-
- prv_ntophits = th->N;
-
- if((status = cm_Pipeline(pli, cm_offset, om, bg, p7_evparam, msvdata, qsq, th, in_rc, &hmm, &gm, &Rgm, &Lgm, &Tgm, &cm)) != eslOK)
- mpi_failure("cm_Pipeline() failed unexpected with status code %d\n%s", status, pli->errbuf);
- cm_pipeline_Reuse(pli);
- if(in_rc && th->N != prv_ntophits) cm_tophits_UpdateHitPositions(th, prv_ntophits, qsq->start, in_rc);
-
- if(th->N != prv_ntophits) {
- if(pli->do_hmmonly_cur) eZ = pli->Z / (float) om->max_length;
- else eZ = cm->expA[pli->final_cm_exp_mode]->cur_eff_dbsize;
- cm_tophits_ComputeEvalues(th, eZ, prv_ntophits);
- }
-
- if(cm != NULL) { FreeCM(cm); cm = NULL; }
- if(om != NULL) { p7_oprofile_Destroy(om); om = NULL; }
- if(hmm != NULL) { p7_hmm_Destroy(hmm); hmm = NULL; }
- if(gm != NULL) { p7_profile_Destroy(gm); gm = NULL; }
- if(Rgm != NULL) { p7_profile_Destroy(Rgm); Rgm = NULL; }
- if(Lgm != NULL) { p7_profile_Destroy(Lgm); Lgm = NULL; }
- if(Tgm != NULL) { p7_profile_Destroy(Tgm); Tgm = NULL; }
- if(msvdata != NULL) { p7_hmm_MSVDataDestroy(msvdata); msvdata = NULL; }
-
- --count;
- }
- /* check the status of reading the msv filter */
- if (count > 0)
+ uint64_t length = 0;
+ uint64_t count = block.count;
+ int64_t cm_idx = (int64_t) block.idx0;
+ /* Determine if we need to read the MSV info from the file or not */
+ int do_read = (rinfo->omA[cm_idx] == NULL) ? TRUE : FALSE;
+
+ if(do_read) {
+ hstatus = cm_p7_oprofile_Position(cmfp, block.offset);
+ if (hstatus != eslOK) mpi_failure("Cannot position optimized model to %ld\n", block.offset);
+ }
+
+ hstatus = eslOK;
+ while (count > 0 && hstatus == eslOK)
+ {
+ if(do_read) {
+ if(rinfo->omA[cm_idx] != NULL) mpi_failure("Worker was supposed to read MSVs but already had one...\n");
+ hstatus = cm_p7_oprofile_ReadMSV(cmfp, TRUE, &(rinfo->abc), &(rinfo->cm_offsetA[cm_idx]), &(rinfo->cm_clenA[cm_idx]), &(rinfo->cm_WA[cm_idx]),
+ &(rinfo->cm_nbpA[cm_idx]), &(rinfo->gfmuA[cm_idx]), &(rinfo->gflambdaA[cm_idx]), &(rinfo->omA[cm_idx]));
+ /* determine clan idx if nec */
+ if(have_clans) { rinfo->clan_idxA[cm_idx] = determine_clan_index(rinfo->omA[cm_idx]->name, rinfo->clan_fam_kh, rinfo->clan_mapA); }
+ else { rinfo->clan_idxA[cm_idx] = -1; }
+
+ }
+ if(hstatus == eslOK) {
+ if(rinfo->msvdataA[cm_idx] == NULL) {
+ rinfo->msvdataA[cm_idx] = p7_hmm_ScoreDataCreate(rinfo->omA[cm_idx], FALSE);
+ }
+
+ /* set pointers for convenience */
+ cm_offset = rinfo->cm_offsetA[cm_idx];
+ cm_clen = rinfo->cm_clenA[cm_idx];
+ cm_W = rinfo->cm_WA[cm_idx];
+ cm_nbp = rinfo->cm_nbpA[cm_idx];
+ gfmu = rinfo->gfmuA[cm_idx];
+ gflambda = rinfo->gflambdaA[cm_idx];
+ om = rinfo->omA[cm_idx];
+ msvdata = rinfo->msvdataA[cm_idx];
+ clan_idx = rinfo->clan_idxA[cm_idx];
+
+ length = om->eoff - block.offset + 1;
+
+ esl_vec_FCopy(om->evparam, p7_NEVPARAM, p7_evparam);
+ p7_evparam[CM_p7_GFMU] = gfmu;
+ p7_evparam[CM_p7_GFLAMBDA] = gflambda;
+
+ hmm = NULL; /* this will get filled in cm_Pipeline() only if necessary */
+ gm = NULL; /* ditto */
+ Rgm = NULL; /* ditto */
+ Lgm = NULL; /* ditto */
+ Tgm = NULL; /* ditto */
+ cm = NULL; /* ditto */
+ if(pli->do_wcx) cm_W = (int) cm_clen * pli->wcx; /* do_wcx == TRUE means --wcx was used */
+ if((status = cm_pli_NewModel(pli, CM_NEWMODEL_MSV,
+ cm, /* this is NULL b/c we don't have one yet */
+ cm_clen, cm_W, cm_nbp, om, /* we read these in cm_p7_oprofile_ReadMSV() */
+ bg, p7_evparam, om->max_length, cm_idx, clan_idx, glocal_kh)) != eslOK) mpi_failure(pli->errbuf);
+
+ /* Split the sequence (qsq) into chunks and run the
+ * pipeline on each. If we're in rev comp (in_rc == 1)
+ * then we take care to search the same subsequences that
+ * cmsearch would search, these are the reverse complements of
+ * the chunks we searched when we entered this function with the
+ * forward strand. Also, chunk boundary determination requires
+ * start < end, so we swap them if we're in the revcomp and then
+ * swap back before we call cm_pipeline() (again this is to
+ * match up with how cmsearch does it).
+ */
+ prv_posn = 0;
+ if(in_rc) ESL_SWAP(qsq->start, qsq->end, int64_t);
+ while(prv_posn != qsq->L) {
+ /* manipulate qsq's 'start', 'end', 'n', 'C', and 'dsq'
+ * pointer for our purposes: so the pipeline only searches the
+ * chunk we want it to. If we're in revcomp, we've already
+ * swapped start and end when we entered this function, that
+ * way we can use same code here whether we're in revcomp or
+ * not.
+ */
+ if(prv_posn != 0) { /* not the first chunk of the sequence */
+ qsq->start = ESL_MAX(prv_posn - pli->maxW + 1, 1);
+ qsq->C = prv_posn - qsq->start + 1;
+ /* qsq->C is number of overlapping residues with
+ * previous chunk, we'll subtract this from pipeline stats
+ * below
+ */
+ } /* else, qsq->start remains as '1', and qsq->C remains as '0' */
+ qsq->end = ESL_MIN(prv_posn + CM_MAX_RESIDUE_COUNT, qsq->L); /* increment end by CM_MAX_RESIDUE_COUNT, if end == L, this has no effect */
+ qsq->n = qsq->end - qsq->start + 1;
+ qsq->W = qsq->n - qsq->C;
+ prv_posn = qsq->end;
+ qsq->dsq = save_dsq + qsq->start - 1;
+ if(in_rc) {
+ ESL_SWAP(qsq->start, qsq->end, int64_t);
+ qsq->dsq = save_dsq + (qsq->L - qsq->start);
+ }
+ else {
+ qsq->dsq = save_dsq + qsq->start - 1;
+ }
+ /*printf("mpi_worker() calling cm_Pipeline %s vs %s start: %" PRId64 " end: %" PRId64 " n: %" PRId64 " C: %" PRId64 " W: %" PRId64 " L: %" PRId64 " in_rc: %d\n",
+ om->name, qsq->name, qsq->start, qsq->end, qsq->n, qsq->C, qsq->W, qsq->L, in_rc); */
+
+ prv_ntophits = th->N;
+
+ if((status = cm_Pipeline(pli, cm_offset, om, bg, p7_evparam, msvdata, qsq, th, in_rc, &hmm, &gm, &Rgm, &Lgm, &Tgm, &cm)) != eslOK)
+ mpi_failure("cm_Pipeline() failed unexpected with status code %d\n%s", status, pli->errbuf);
+ cm_pipeline_Reuse(pli);
+ /* subtract overlapping residues from previous chunk */
+ if(qsq->C > 0) cm_pli_AdjustNresForOverlaps(pli, qsq->C, in_rc);
+ /* adjust hit positions so they're w.r.t full source sequence */
+ if(th->N != prv_ntophits) cm_tophits_UpdateHitPositions(th, prv_ntophits, qsq->start, in_rc);
+
+ if(th->N != prv_ntophits) {
+ if(pli->do_hmmonly_cur) eZ = pli->Z / (float) om->max_length;
+ else eZ = cm->expA[pli->final_cm_exp_mode]->cur_eff_dbsize;
+ cm_tophits_ComputeEvalues(th, eZ, prv_ntophits);
+ }
+ } /* end of 'while(prv_posn != oqsq->L)' */
+ /* reset qsq to its initial values for next profile */
+ qsq->dsq = save_dsq;
+ qsq->start = in_rc ? qsq->L : 1;
+ qsq->end = in_rc ? 1 : qsq->L;
+ qsq->n = qsq->L;
+ qsq->W = qsq->L;
+ qsq->C = 0;
+
+ if(cm != NULL) { FreeCM(cm); cm = NULL; }
+ if(hmm != NULL) { p7_hmm_Destroy(hmm); hmm = NULL; }
+ if(gm != NULL) { p7_profile_Destroy(gm); gm = NULL; }
+ if(Rgm != NULL) { p7_profile_Destroy(Rgm); Rgm = NULL; }
+ if(Lgm != NULL) { p7_profile_Destroy(Lgm); Lgm = NULL; }
+ if(Tgm != NULL) { p7_profile_Destroy(Tgm); Tgm = NULL; }
+ /* don't free om or msvdata, rinfo points at those and we want to keep them */
+
+ --count;
+ cm_idx++;
+ } /* end of 'if(hstatus == eslOK)' */
+ } /*end of 'while (count > 0 && hstatus == eslOK)' */
+ /* check the status of reading the msv filter */
+ if (count > 0) /* this means hstatus is not eslOK */
{
switch(hstatus)
{
@@ -1473,7 +1949,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
MPI_Send(&status, 1, MPI_INT, 0, INFERNAL_READY_TAG, MPI_COMM_WORLD);
/* wait for the next block of sequences */
- MPI_Recv(&block, 3, MPI_LONG_LONG_INT, 0, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus);
+ MPI_Recv(&block, 4, MPI_LONG_LONG_INT, 0, INFERNAL_BLOCK_TAG, MPI_COMM_WORLD, &mpistatus);
}
cm_file_Close(cmfp);
} /* end loop over in_rc (reverse complement) */
@@ -1504,6 +1980,7 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
esl_sqfile_Close(sqfp);
if(w != NULL) esl_stopwatch_Destroy(w);
if(glocal_kh != NULL) esl_keyhash_Destroy(glocal_kh);
+ free_reader_info(rinfo);
return eslOK;
@@ -1572,15 +2049,17 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
esl_opt_DisplayHelp(stdout, go, 104, 2, 80);
puts("\nOptions for precise control of the final stage:");
esl_opt_DisplayHelp(stdout, go, 105, 2, 80);
- puts("\nOptions for timing pipeline stages:");
+ puts("\nOptions for terminating after individual pipeline stages:");
esl_opt_DisplayHelp(stdout, go, 106, 2, 80);
+ puts("\nOptions for timing pipeline stages:");
+ esl_opt_DisplayHelp(stdout, go, 107, 2, 80);
}
printf("\nOther options%s:\n", do_dev ? "" : devmsg);
esl_opt_DisplayHelp(stdout, go, 7, 2, 80);
if(do_dev) {
printf("\nOther expert options%s:\n", do_dev ? "" : devmsg);
- esl_opt_DisplayHelp(stdout, go, 107, 2, 80);
+ esl_opt_DisplayHelp(stdout, go, 108, 2, 80);
}
else {
puts("\n*Use --devhelp to show additional expert options.");
@@ -1638,6 +2117,23 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
}
}
+ /* '--clanin' and '--oclan' only make sense with '--fmt 2',
+ * esl_getopts enforces --fmt is used, but not necessarily
+ * with '2' as the argument.
+ */
+ if(esl_opt_IsUsed(go, "--clanin")) {
+ if((! esl_opt_IsUsed(go, "--fmt")) || (esl_opt_GetInteger(go, "--fmt") != 2)) {
+ printf("Failed to parse command line: with --clanin, the additional option of --fmt <n> is required with <n> == 2");
+ goto ERROR;
+ }
+ }
+ if(esl_opt_IsUsed(go, "--oclan")) {
+ if((! esl_opt_IsUsed(go, "--fmt")) || (esl_opt_GetInteger(go, "--fmt") != 2)) {
+ printf("Failed to parse command line: with --oclan, the additional option of --fmt <n> is required with <n> == 2");
+ goto ERROR;
+ }
+ }
+
/* Finally, check for incompatible option combinations I *do* know
* how to disallow with esl_getopts, but that would require an error
* message like: "Option 'x' is incompatible with options
@@ -1686,6 +2182,10 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
if(esl_opt_IsUsed(go, "--ns")) { puts("Failed to parse command line: Option --max is incompatible with option --ns"); goto ERROR; }
if(esl_opt_IsUsed(go, "--maxtau")) { puts("Failed to parse command line: Option --max is incompatible with option --maxtau"); goto ERROR; }
if(esl_opt_IsUsed(go, "--anytrunc")) { puts("Failed to parse command line: Option --max is incompatible with option --anytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onlytrunc")) { puts("Failed to parse command line: Option --max is incompatible with option --onlytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--5trunc")) { puts("Failed to parse command line: Option --max is incompatible with option --5trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--3trunc")) { puts("Failed to parse command line: Option --max is incompatible with option --3trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onepass")) { puts("Failed to parse command line: Option --max is incompatible with option --onepass"); goto ERROR; }
}
if(esl_opt_IsUsed(go, "--nohmm")) {
if(esl_opt_IsUsed(go, "--max")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --max"); goto ERROR; }
@@ -1720,6 +2220,10 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
if(esl_opt_IsUsed(go, "--ns")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --ns"); goto ERROR; }
if(esl_opt_IsUsed(go, "--maxtau")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --maxtau"); goto ERROR; }
if(esl_opt_IsUsed(go, "--anytrunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --anytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onlytrunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --onlytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--5trunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --5trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--3trunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --3trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onepass")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --onepass"); goto ERROR; }
}
if(esl_opt_IsUsed(go, "--mid")) {
if(esl_opt_IsUsed(go, "--max")) { puts("Failed to parse command line: Option --mid is incompatible with option --max"); goto ERROR; }
@@ -1794,6 +2298,10 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
if(esl_opt_IsUsed(go, "--nonbanded")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --nonbanded"); goto ERROR; }
if(esl_opt_IsUsed(go, "--maxtau")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --maxtau"); goto ERROR; }
if(esl_opt_IsUsed(go, "--anytrunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --anytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onlytrunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --onlytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--5trunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --5trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--3trunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --3trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onepass")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --onepass"); goto ERROR; }
if(esl_opt_IsUsed(go, "--mxsize")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --mxsize"); goto ERROR; }
if(esl_opt_IsUsed(go, "--smxsize")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --smxsize"); goto ERROR; }
if(esl_opt_IsUsed(go, "--nonull3")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --nonull3"); goto ERROR; }
@@ -1829,6 +2337,7 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int
if (esl_opt_IsUsed(go, "-Z")) fprintf(ofp, "# database size is set to: %.1f Mb\n", esl_opt_GetReal(go, "-Z"));
if (esl_opt_IsUsed(go, "-o")) fprintf(ofp, "# output directed to file: %s\n", esl_opt_GetString(go, "-o"));
if (esl_opt_IsUsed(go, "--tblout")) fprintf(ofp, "# tabular output of hits: %s\n", esl_opt_GetString(go, "--tblout"));
+ if (esl_opt_IsUsed(go, "--fmt")) fprintf(ofp, "# tabular output format: %d\n", esl_opt_GetInteger(go, "--fmt"));
if (esl_opt_IsUsed(go, "--acc")) fprintf(ofp, "# prefer accessions over names: yes\n");
if (esl_opt_IsUsed(go, "--noali")) fprintf(ofp, "# show alignments in output: no\n");
if (esl_opt_IsUsed(go, "--notextw")) fprintf(ofp, "# max ASCII text line length: unlimited\n");
@@ -1850,16 +2359,22 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int
if (esl_opt_IsUsed(go, "--hmmonly")) fprintf(ofp, "# HMM-only mode (for all models): on [CM will not be used]\n");
if (esl_opt_IsUsed(go, "--notrunc")) fprintf(ofp, "# truncated sequence detection: off\n");
if (esl_opt_IsUsed(go, "--anytrunc")) fprintf(ofp, "# allowing truncated sequences anywhere: on\n");
+ if (esl_opt_IsUsed(go, "--onlytrunc")) fprintf(ofp, "# only allowing truncated seqs anywhere: on\n");
if (esl_opt_IsUsed(go, "--nonull3")) fprintf(ofp, "# null3 bias corrections: off\n");
if (esl_opt_IsUsed(go, "--mxsize")) fprintf(ofp, "# maximum DP alignment matrix size: %.1f Mb\n", esl_opt_GetReal(go, "--mxsize"));
if (esl_opt_IsUsed(go, "--smxsize")) fprintf(ofp, "# maximum DP search matrix size: %.1f Mb\n", esl_opt_GetReal(go, "--smxsize"));
if (esl_opt_IsUsed(go, "--cyk")) fprintf(ofp, "# use CYK for final search stage on\n");
if (esl_opt_IsUsed(go, "--acyk")) fprintf(ofp, "# use CYK to align hits: on\n");
if (esl_opt_IsUsed(go, "--wcx")) fprintf(ofp, "# W set as <x> * cm->clen: <x>=%g\n", esl_opt_GetReal(go, "--wcx"));
+ if (esl_opt_IsUsed(go, "--onepass")) fprintf(ofp, "# using CM for best HMM pass only: on\n");
if (esl_opt_IsUsed(go, "--toponly")) fprintf(ofp, "# search top-strand only: on\n");
if (esl_opt_IsUsed(go, "--bottomonly")) fprintf(ofp, "# search bottom-strand only: on\n");
- if (esl_opt_IsUsed(go, "--qformat")) fprintf(ofp, "# query <seqfile> format asserted: %s\n", esl_opt_GetString(go, "--qformat"));
- if (esl_opt_IsUsed(go, "--glist")) fprintf(ofp, "# models for glocal mode scan read from: %s\n", esl_opt_GetString(go, "--glist"));
+ if (esl_opt_IsUsed(go, "--qformat")) fprintf(ofp, "# query <seqfile> format asserted: %s\n", esl_opt_GetString(go, "--qformat"));
+ if (esl_opt_IsUsed(go, "--glist")) fprintf(ofp, "# models for glocal mode scan read from: %s\n", esl_opt_GetString(go, "--glist"));
+ if (esl_opt_IsUsed(go, "--block")) fprintf(ofp, "# block size (# models) set to: %d\n", esl_opt_GetInteger(go, "--block"));
+ if (esl_opt_IsUsed(go, "--clanin")) fprintf(ofp, "# clan information read from file: %s\n", esl_opt_GetString(go, "--clanin"));
+ if (esl_opt_IsUsed(go, "--oclan")) fprintf(ofp, "# only mark overlaps within clans: yes\n");
+ if (esl_opt_IsUsed(go, "--oskip")) fprintf(ofp, "# skipping overlaps in tbl output: yes\n");
#ifdef HAVE_MPI
if (esl_opt_IsUsed(go, "--stall")) fprintf(ofp, "# MPI stall mode: on\n");
#endif
@@ -1920,6 +2435,8 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int
if (esl_opt_IsUsed(go, "--timeF5")) fprintf(ofp, "# abort after Stage 5 env defn (for timing) on\n");
if (esl_opt_IsUsed(go, "--timeF6")) fprintf(ofp, "# abort after Stage 6 CYK (for timing) on\n");
+ if (esl_opt_IsUsed(go, "--trmF3")) fprintf(ofp, "# terminate after Stage 3 Fwd: on\n");
+
if (esl_opt_IsUsed(go, "--nogreedy")) fprintf(ofp, "# greedy CM hit resolution: off\n");
if (esl_opt_IsUsed(go, "--cp9noel")) fprintf(ofp, "# CP9 HMM local ends: off\n");
if (esl_opt_IsUsed(go, "--cp9gloc")) fprintf(ofp, "# CP9 HMM configuration: glocal\n");
@@ -2012,6 +2529,353 @@ read_glocal_list_file(char *filename, char *errbuf, CM_FILE *cmfp, ESL_KEYHASH *
return status;
}
+
+/* Function: read_clan_info_file
+ * Date: EPN, Mon Jan 26 10:03:39 2015
+ *
+ * Read a 'clan info' file in the following format:
+ * <clan-name-1> <model-name-or-accn-1> <model-name-or-accn-2> ... <model-name-or-accn-N>
+ * <clan-name-2> <model-name-or-accn-1> <model-name-or-accn-2> ... <model-name-or-accn-N>
+ * ....
+ * <clan-name-N> <model-name-or-accn-1> <model-name-or-accn-2> ... <model-name-or-accn-N>
+ *
+ * And allocate and fill return variables <ret_clan_name_kh>,
+ * <ret_clan_fam_kh, and <ret_clan_mapA>.
+ *
+ * Example:
+ * Clan info file:
+ * CL00001 tRNA tRNA-Sec
+ * SSU SSU_rRNA_archaea SSU_rRNA_bacteria SSU_rRNA_eukarya SSU_rRNA_microsporidia
+ * LSU LSU_rRNA_archaea LSU_rRNA_bacteria LSU_rRNA_eukarya
+ *
+ * Return values:
+ * ret_clan_name_kh = keyhash with "CL00001", "SSU", "LSU"
+ * ret_clan_fam_kh = keyhash with "tRNA", "tRNA-Sec"...."LSU_rRNA_eukarya"
+ * ret_clan_mapA = (0, 0, 1, 1, 1, 1, 2, 2) indicating
+ * index 0 and 1 in ret_clan_fam_kh belongs to index 0 in ret_clan_name_kh and
+ * index 2, 3, 4, 5 in ret_clan_fam_kh belongs to index 1 in ret_clan_name_kh and
+ * index 6 and 7 in ret_clan_fam_kh belongs to index 2 in ret_clan_name_kh and
+ * Returns eslOK on success.
+ */
+int
+read_clan_info_file(char *filename, char *errbuf, CM_FILE *cmfp, ESL_KEYHASH **ret_clan_name_kh, ESL_KEYHASH **ret_clan_fam_kh, int **ret_clan_mapA)
+{
+ int status;
+ ESL_FILEPARSER *efp = NULL;
+ char *tok = NULL;
+ int toklen;
+ ESL_KEYHASH *clan_name_kh = NULL; /* these are clan names */
+ ESL_KEYHASH *clan_fam_kh = NULL; /* these are family names in a clan, members of same clan are contiguous */
+ int *clan_mapA = NULL; /* [0..i..nfam-1] = c; family index i in <clan_fam_kh> belongs to clan
+ * index c in <clan_name_kh>.
+ */
+ uint16_t tmp_fh;
+ off_t tmp_roff;
+ uint64_t save_nsecondary = 0;
+ int i = 0; /* counter */
+
+ int tot_nalloc = 0; /* total current size of first dim of clannamesA */
+ int nalloc = 1; /* reallocation size for first dim of clannamesA */
+ int nclan = 0; /* number of clans read from the file */
+ int nfam = 0; /* number of families in the current clan */
+
+ if(cmfp->ssi == NULL) ESL_XFAIL(eslEINVAL, errbuf, "Failed to open SSI index for CM file: %s (required for --gfile)\n", cmfp->fname);
+ /* store, then overwrite ssi->nsecondary as 0. This will force
+ * esl_ssi_FindName() to only look at primary keys, which is
+ * necessary because when we're reading MSV data for P7 filters,
+ * only om->name is valid (om->accn is not read), so we can't
+ * allow accessions as keys in filename.
+ */
+ save_nsecondary = cmfp->ssi->nsecondary;
+ cmfp->ssi->nsecondary = 0;
+
+ if (esl_fileparser_Open(filename, NULL, &efp) != eslOK) ESL_XFAIL(eslEINVAL, errbuf, "failed to open %s for reading clan information\n", filename);
+
+ if((clan_name_kh = esl_keyhash_Create()) == NULL) ESL_XFAIL(eslEMEM, errbuf, "out of memory");
+ if((clan_fam_kh = esl_keyhash_Create()) == NULL) ESL_XFAIL(eslEMEM, errbuf, "out of memory");
+
+ /* example line:
+ * CL00001 tRNA tRNA-Sec
+ * SSU SSU_rRNA_archaea SSU_rRNA_bacteria SSU_rRNA_eukarya SSU_rRNA_microsporidia
+ */
+ while((status = esl_fileparser_GetToken(efp, &tok, &toklen)) != eslEOF) {
+ /* add <tok> to clan name keyhash */
+ status = esl_keyhash_Store(clan_name_kh, tok, toklen, NULL);
+
+ /* now read the rest of the line, each token is the name or accession of a model in current clan */
+ while((status = esl_fileparser_GetTokenOnLine(efp, &tok, &toklen)) == eslOK) {
+ /* verify CM <tok> exists in the CM file, via SSI */
+ status = esl_ssi_FindName(cmfp->ssi, tok, &tmp_fh, &tmp_roff, NULL, NULL);
+ if(status == eslENOTFOUND) ESL_XFAIL(status, errbuf, "unable to find model %s listed in %s in SSI index file", tok, filename);
+ if(status == eslEFORMAT) ESL_XFAIL(status, errbuf, "SSI index for CM file is in incorrect format, try rerunning cmpress");
+ if(status != eslOK) ESL_XFAIL(status, errbuf, "unexpected error processing --clanin file %s", filename);
+
+ /* add to family keyhash */
+ status = esl_keyhash_Store(clan_fam_kh, tok, toklen, NULL);
+ if(status == eslEDUP) ESL_XFAIL(status, errbuf, "model %s listed twice in %s", tok, filename);
+ else if (status != eslOK) ESL_XFAIL(status, errbuf, "unexpected error processing --clanin file %s", filename);
+
+ /* add to clan_mapA, after reallocating if nec */
+ if(nfam == tot_nalloc) {
+ ESL_REALLOC(clan_mapA, sizeof(int) * (tot_nalloc + nalloc));
+ for(i = tot_nalloc; i < tot_nalloc + nalloc; i++) clan_mapA[i] = -1;
+ tot_nalloc += nalloc;
+ }
+ clan_mapA[nfam] = nclan;
+ nfam++;
+ }
+ nclan++;
+ }
+ esl_fileparser_Close(efp);
+
+ if(nclan == 0) ESL_FAIL(status, errbuf, "Error reading %s, no clans present in file\n", filename);
+
+ *ret_clan_name_kh = clan_name_kh;
+ *ret_clan_fam_kh = clan_fam_kh;
+ *ret_clan_mapA = clan_mapA;
+
+ cmfp->ssi->nsecondary = save_nsecondary;
+ return eslOK;
+
+ ERROR:
+ if(efp != NULL) esl_fileparser_Close(efp);
+ if(clan_name_kh != NULL) esl_keyhash_Destroy(clan_name_kh);
+ if(clan_fam_kh != NULL) esl_keyhash_Destroy(clan_fam_kh);
+ if(clan_mapA != NULL) free(clan_mapA);
+ *ret_clan_name_kh = NULL;
+ *ret_clan_fam_kh = NULL;
+ *ret_clan_mapA = NULL;
+
+ if(cmfp->ssi != NULL) cmfp->ssi->nsecondary = save_nsecondary;
+ return status;
+}
+
+
+/* Function: determine_clan_index
+ * Date: EPN, Tue Jan 27 20:17:02 2015
+ *
+ * Given the clan_fam_kh ESL_KEYHASH and the clan_mapA integer
+ * array mapping clan_fam_kh indices to clan indices, determine
+ * the clan index for the model named <modelname> and return it.
+ * If none exists, return -1.
+ */
+int
+determine_clan_index(char *modelname, ESL_KEYHASH *clan_fam_kh, int *clan_mapA)
+{
+ int clan_fam_idx;
+
+ /* get the index of <modelname> in the hash, <clan_fam_idx> will
+ * be set to -1 if <modelname> is not in the hash
+ */
+ esl_keyhash_Lookup(clan_fam_kh, modelname, -1, &clan_fam_idx); /* clan_fam_idx will be set to -1 if modelname not found */
+ return (clan_fam_idx == -1) ? -1 : clan_mapA[clan_fam_idx];
+}
+
+/* Function: duplicate_sq_for_thread
+ * Date: EPN, Thu Nov 20 09:40:32 2014
+ *
+ * For pipeline_thread() we need to create a copy
+ * of the query sequence that we each thread
+ * can manipulate without interfering with the
+ * other threads. It has a copy of the
+ * name, accession and description of the
+ * query sequence, but does not copy the
+ * dsq data, instead we'll just point to the
+ * appropriate place in the query sequence.
+ *
+ * Returns: void and fills ret_sq with
+ * the copy.
+ */
+void
+duplicate_sq_for_thread(ESL_SQ *src_sq, ESL_SQ **ret_sq)
+{
+ int status;
+ ESL_SQ *dest_sq = NULL;
+ int64_t n;
+
+ dest_sq = esl_sq_CreateDigital(src_sq->abc);
+
+ if (src_sq->name != NULL) {
+ free(dest_sq->name);
+ dest_sq->name = NULL;
+ n = strlen(src_sq->name)+1;
+ ESL_ALLOC(dest_sq->name, sizeof(char) * n);
+ strcpy(dest_sq->name, src_sq->name);
+ dest_sq->nalloc = n;
+ }
+ if (src_sq->desc != NULL) {
+ free(dest_sq->desc);
+ dest_sq->desc = NULL;
+ n = strlen(src_sq->desc)+1;
+ ESL_ALLOC(dest_sq->desc, sizeof(char) * n);
+ strcpy(dest_sq->desc, src_sq->desc);
+ dest_sq->dalloc = n;
+ }
+ if (src_sq->acc != NULL) {
+ free(dest_sq->acc);
+ dest_sq->acc = NULL;
+ n = strlen(src_sq->acc)+1;
+ ESL_ALLOC(dest_sq->acc, sizeof(char) * n);
+ strcpy(dest_sq->acc, src_sq->acc);
+ dest_sq->aalloc = n;
+ }
+
+ free(dest_sq->dsq);
+ dest_sq->dsq = NULL; /* caller will later set this to point at appropriate posn of qsq->dsq */
+
+ /* copy 'start', 'end', 'L', 'W', 'C' and 'dsq' ptr */
+ copy_sq_for_thread(src_sq, dest_sq);
+
+ *ret_sq = dest_sq;
+
+ return;
+
+ ERROR:
+ cm_Fail("out of memory");
+ return;
+}
+
+/* Function: copy_sq_for_thread
+ * Date: EPN, Thu Nov 20 14:02:56 2014
+ *
+ * Helper function for duplicate_sq_for_thread()
+ * copies the static values of src_sq
+ * to dest_sq. Also called by pipeline_thread().
+ *
+ * Returns: void.
+ */
+void
+copy_sq_for_thread(ESL_SQ *src_sq, ESL_SQ *dest_sq)
+{
+ dest_sq->start = src_sq->start;
+ dest_sq->end = src_sq->end;
+ dest_sq->C = src_sq->C;
+ dest_sq->W = src_sq->W;
+ dest_sq->L = src_sq->L;
+ dest_sq->n = src_sq->n;
+ dest_sq->dsq = src_sq->dsq; /* only a ptr */
+
+ return;
+}
+
+/* Function: create_reader_info
+ * Date: EPN, Thu Dec 4 10:21:44 2014
+ *
+ * Create a READER_INFO object given the
+ * number of models it will pertain to.
+ *
+ * Returns: the newly allocated and initialized
+ * READER_INFO object.
+ */
+READER_INFO *
+create_reader_info(int64_t nmodels, ESL_KEYHASH *clan_fam_kh, int *clan_mapA)
+{
+ int status;
+ int64_t cm_idx;
+ READER_INFO *rinfo = NULL;
+ int f, nfam;
+ int have_clans = (clan_fam_kh != NULL && clan_mapA != NULL) ? TRUE : FALSE;
+
+ if(clan_fam_kh != NULL && clan_mapA == NULL) esl_fatal("internal error, creating reader info but some but not all clan info present");
+ if(clan_fam_kh == NULL && clan_mapA != NULL) esl_fatal("internal error, creating reader info but some but not all clan info present");
+
+ ESL_ALLOC(rinfo, sizeof(READER_INFO));
+ rinfo->nmodels = nmodels;
+ rinfo->abc = NULL;
+ ESL_ALLOC(rinfo->cm_offsetA, sizeof(off_t) * nmodels);
+ ESL_ALLOC(rinfo->cm_clenA, sizeof(int) * nmodels);
+ ESL_ALLOC(rinfo->cm_WA, sizeof(int) * nmodels);
+ ESL_ALLOC(rinfo->cm_nbpA, sizeof(int) * nmodels);
+ ESL_ALLOC(rinfo->gfmuA, sizeof(float) * nmodels);
+ ESL_ALLOC(rinfo->gflambdaA, sizeof(float) * nmodels);
+ ESL_ALLOC(rinfo->omA, sizeof(P7_OPROFILE *) * nmodels);
+ ESL_ALLOC(rinfo->msvdataA, sizeof(P7_SCOREDATA *)* nmodels);
+ for(cm_idx = 0; cm_idx < nmodels; cm_idx++) {
+ rinfo->cm_offsetA[cm_idx] = 0;
+ rinfo->cm_clenA[cm_idx] = -1;
+ rinfo->cm_WA[cm_idx] = -1;
+ rinfo->cm_nbpA[cm_idx] = -1;
+ rinfo->gfmuA[cm_idx] = 0.;
+ rinfo->gflambdaA[cm_idx] = 0.;
+ rinfo->omA[cm_idx] = NULL;
+ rinfo->msvdataA[cm_idx] = NULL;
+ }
+ /* and the clan info (--clanin) variables, if nec */
+ if(have_clans) {
+ if((rinfo->clan_fam_kh = esl_keyhash_Clone(clan_fam_kh)) == NULL) esl_fatal("Failed to clone keyhash, out of memory");
+ nfam = esl_keyhash_GetNumber(clan_fam_kh);
+ ESL_ALLOC(rinfo->clan_mapA, sizeof(int) * nfam);
+ for(f = 0; f < nfam; f++) {
+ rinfo->clan_mapA[f] = clan_mapA[f];
+ }
+ }
+ else {
+ rinfo->clan_fam_kh = NULL;
+ rinfo->clan_mapA = NULL;
+ }
+ /* always make clan_idxA, it will be set to -1 if we don't do clans */
+ ESL_ALLOC(rinfo->clan_idxA, sizeof(int) * nmodels);
+ for(cm_idx = 0; cm_idx < nmodels; cm_idx++) {
+ rinfo->clan_idxA[cm_idx] = -1;
+ }
+
+ return rinfo;
+
+ ERROR:
+ if(rinfo != NULL) free_reader_info(rinfo);
+ return NULL;
+}
+
+/* Function: free_reader_info
+ * Date: EPN, Thu Dec 4 10:21:44 2014
+ *
+ * Frees a READER_INFO object.
+ *
+ * Returns: void
+ */
+void
+free_reader_info(READER_INFO *rinfo)
+{
+ int64_t cm_idx;
+
+ if(rinfo != NULL) {
+
+ if(rinfo->omA != NULL) {
+ for(cm_idx = 0; cm_idx < rinfo->nmodels; cm_idx++) {
+ if(rinfo->omA[cm_idx] != NULL) { p7_oprofile_Destroy(rinfo->omA[cm_idx]); rinfo->omA[cm_idx] = NULL; }
+ }
+ free(rinfo->omA);
+ rinfo->omA = NULL;
+ }
+
+ if(rinfo->msvdataA != NULL) {
+ for(cm_idx = 0; cm_idx < rinfo->nmodels; cm_idx++) {
+ if(rinfo->msvdataA[cm_idx] != NULL) { p7_hmm_ScoreDataDestroy(rinfo->msvdataA[cm_idx]); rinfo->msvdataA[cm_idx] = NULL; }
+ }
+ free(rinfo->msvdataA);
+ rinfo->msvdataA = NULL;
+ }
+
+ if(rinfo->cm_offsetA != NULL) { free(rinfo->cm_offsetA); rinfo->cm_offsetA = NULL; }
+ if(rinfo->cm_clenA != NULL) { free(rinfo->cm_clenA); rinfo->cm_clenA = NULL; }
+ if(rinfo->cm_WA != NULL) { free(rinfo->cm_WA); rinfo->cm_WA = NULL; }
+ if(rinfo->cm_nbpA != NULL) { free(rinfo->cm_nbpA); rinfo->cm_nbpA = NULL; }
+ if(rinfo->gfmuA != NULL) { free(rinfo->gfmuA); rinfo->gfmuA = NULL; }
+ if(rinfo->gflambdaA != NULL) { free(rinfo->gflambdaA); rinfo->gflambdaA = NULL; }
+ if(rinfo->abc != NULL) { esl_alphabet_Destroy(rinfo->abc); rinfo->abc = NULL; }
+
+ /* clan info variables */
+ if(rinfo->clan_fam_kh != NULL) { esl_keyhash_Destroy(rinfo->clan_fam_kh); rinfo->clan_fam_kh = NULL; }
+ if(rinfo->clan_mapA != NULL) { free(rinfo->clan_mapA); rinfo->clan_mapA = NULL; }
+ if(rinfo->clan_idxA != NULL) { free(rinfo->clan_idxA); rinfo->clan_idxA = NULL; }
+
+ free(rinfo);
+ rinfo = NULL;
+ }
+
+ return;
+}
+
#if HAVE_MPI
/* mpi_failure()
* Generate an error message. If the clients rank is not 0, a
@@ -2061,7 +2925,7 @@ mpi_failure(char *format, ...)
* MPI workers. If multiple models are in the query file, the
* blocks are reused without parsing the database a second time.
*/
-int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block)
+int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, int64_t bsize, uint64_t idx0, MSV_BLOCK *block)
{
P7_OPROFILE *om = NULL;
ESL_ALPHABET *abc = NULL;
@@ -2076,6 +2940,7 @@ int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block)
block->offset = 0;
block->length = 0;
block->count = 0;
+ block->idx0 = 0;
status = eslEOF;
}
@@ -2086,6 +2951,7 @@ int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block)
block->offset = list->blocks[inx].offset;
block->length = list->blocks[inx].length;
block->count = list->blocks[inx].count;
+ block->idx0 = list->blocks[inx].idx0;
status = eslOK;
}
@@ -2095,10 +2961,12 @@ int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block)
block->offset = 0;
block->length = 0;
- block->count = 0;
+ block->count = 0;
+ block->idx0 = idx0;
if((prv_offset = ftello(cmfp->ffp)) < 0) return eslESYS;
- while (block->length < MAX_BLOCK_SIZE &&
+ while (block->count < bsize &&
+ block->length < MAX_BLOCK_SIZE &&
(status = cm_p7_oprofile_ReadMSV(cmfp, FALSE, &abc, NULL, NULL, NULL, NULL, NULL, NULL, &om)) == eslOK)
{
if (block->count == 0) block->offset = prv_offset;
@@ -2127,6 +2995,7 @@ int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block)
list->blocks[inx].offset = block->offset;
list->blocks[inx].length = block->length;
list->blocks[inx].count = block->count;
+ list->blocks[inx].idx0 = block->idx0;
}
return status;
@@ -2138,11 +3007,12 @@ int mpi_next_block(CM_FILE *cmfp, BLOCK_LIST *list, MSV_BLOCK *block)
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
* (GPLv3). See the LICENSE file for details.
*****************************************************************/
+
diff --git a/src/cmsearch.c b/src/cmsearch.c
index c7f7dc6..d67e23d 100644
--- a/src/cmsearch.c
+++ b/src/cmsearch.c
@@ -38,9 +38,6 @@
#include "infernal.h"
-/* set the max residue count to 100Kb when reading a block */
-#define CMSEARCH_MAX_RESIDUE_COUNT 100000 /* differs from HMMER's default which is MAX_RESIDUE_COUNT from esl_sqio_(ascii|ncbi).c */
-
typedef struct {
#ifdef HMMER_THREADS
ESL_WORK_QUEUE *queue;
@@ -54,7 +51,7 @@ typedef struct {
P7_PROFILE *Rgm; /* generic query profile HMM for 5' truncated hits */
P7_PROFILE *Lgm; /* generic query profile HMM for 3' truncated hits */
P7_PROFILE *Tgm; /* generic query profile HMM for 5' and 3' truncated hits */
- P7_MSVDATA *msvdata; /* MSV/SSV specific data structure */
+ P7_SCOREDATA *msvdata; /* MSV/SSV specific data structure */
float *p7_evparam; /* [0..CM_p7_NEVPARAM] E-value parameters */
float smxsize; /* max size (Mb) of allowable scan mx (only relevant if --nohmm or --max) */
} WORKER_INFO;
@@ -64,6 +61,7 @@ typedef struct {
#define THRESHOPTS "-E,-T,--incE,--incT,--cut_ga,--cut_nc,--cut_tc"
#define FMODEOPTS "--FZ,--hmmonly,--rfam,--mid,--nohmm,--max"
#define TIMINGOPTS "--timeF1,--timeF2,--timeF3,--timeF4,--timeF5,--timeF6"
+#define TRUNCOPTS "-g,--notrunc,--anytrunc,--onlytrunc,--5trunc,--3trunc"
/* ** Large sets of options are InCompatible With (ICW) --max, --nohmm,
* --mid, --rfam, --FZ, Previously (before these were commented out) I
@@ -75,8 +73,8 @@ typedef struct {
* options which are actually incompatible with a lot of other
* options.
*
- * #define ICWMAX "--nohmm,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--noF6,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--F6,--ftau,--fsums,--fqdb,--fbeta,--fnonbanded,--nocykenv,--cykenvx,--tau,--sums,--nonbanded,--rt1,--rt2,--rt3,--ns,--maxtau,--anytrunc"
- * #define ICWNOHMM "--max,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--ftau,--fsums,--tau,--sums,--rt1,--rt2,--rt3,--ns,--maxtau,--anytrunc"
+ * #define ICWMAX "--nohmm,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--noF6,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--F6,--ftau,--fsums,--fqdb,--fbeta,--fnonbanded,--nocykenv,--cykenvx,--tau,--sums,--nonbanded,--rt1,--rt2,--rt3,--ns,--maxtau,--anytrunc,--onlytrunc,--5trunc,--3trunc,--onepass"
+ * #define ICWNOHMM "--max,--mid,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--noF4,--doF1b,--noF2b,--noF3b,--noF4b,--doF5b,--F1,--F1b,--F2,--F2b,--F3,--F3b,--F4,--F4b,--F5,--ftau,--fsums,--tau,--sums,--rt1,--rt2,--rt3,--ns,--maxtau,--anytrunc,--onlytrunc,--5trunc,--3trunc,--onepass"
* #define ICWMID "--max,--nohmm,--default,--rfam,--FZ,--noF1,--noF2,--noF3,--doF1b,--noF2b,--F1,--F1b,--F2,--F2b"
* #define ICWDF "--max,--nohmm,--mid,--rfam,--FZ"
* #define ICWRFAM "--max,--nohmm,--mid,--default,--FZ"
@@ -131,25 +129,28 @@ static ESL_OPTIONS options[] = {
{ "--FZ", eslARG_REAL, NULL, NULL, NULL, NULL, NULL, NULL, /* see ** above */ "set filters to defaults used for a search space of size <x> Mb", 6 },
{ "--Fmid", eslARG_REAL, "0.02", NULL, NULL, NULL,"--mid", NULL, "with --mid, set P-value threshold for HMM stages to <x>", 6 },
/* Other options */
- /* name type default env range toggles reqs incomp help docgroup*/
- { "--notrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "do not allow truncated hits at sequence termini", 7 },
- { "--anytrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"-g,--notrunc", "allow truncated hits anywhere within sequences", 7 },
- { "--nonull3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn off the NULL3 post hoc additional null model", 7 },
- { "--mxsize", eslARG_REAL, NULL, NULL, "x>0.1", NULL, NULL, NULL, "set max allowed alnment mx size to <x> Mb [df: autodetermined]", 7 },
- { "--smxsize", eslARG_REAL, "128.", NULL, "x>0.1", NULL, NULL, NULL, "set max allowed size of search DP matrices to <x> Mb", 7 },
- { "--cyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use scanning CM CYK algorithm, not Inside in final stage", 7 },
- { "--acyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "align hits with CYK, not optimal accuracy", 7 },
- { "--wcx", eslARG_REAL, FALSE, NULL, "x>=1.25",NULL, NULL,"--nohmm,--qdb,--fqdb", "set W (expected max hit len) as <x> * cm->clen (model len)", 7 },
- { "--toponly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the top strand", 7 },
- { "--bottomonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the bottom strand", 7 },
- { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target <seqdb> is in format <s>: no autodetection", 7 },
- { "--glist", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "BOGUS OPTION, NEVER ALLOWED", 999 },
+ /* name type default env range toggles reqs incomp help docgroup*/
+ { "--notrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "--anytrunc,--onlytrunc,--5trunc,--3trunc", "do not allow truncated hits at sequence termini", 7 },
+ { "--anytrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow full and truncated hits anywhere within sequences", 7 },
+ { "--nonull3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn off the NULL3 post hoc additional null model", 7 },
+ { "--mxsize", eslARG_REAL, NULL, NULL, "x>0.1", NULL, NULL, NULL, "set max allowed alnment mx size to <x> Mb [df: autodetermined]", 7 },
+ { "--smxsize", eslARG_REAL, "128.", NULL, "x>0.1", NULL, NULL, NULL, "set max allowed size of search DP matrices to <x> Mb", 7 },
+ { "--cyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use scanning CM CYK algorithm, not Inside in final stage", 7 },
+ { "--acyk", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "align hits with CYK, not optimal accuracy", 7 },
+ { "--wcx", eslARG_REAL, FALSE, NULL, "x>=1.25",NULL, NULL,"--nohmm,--qdb,--fqdb", "set W (expected max hit len) as <x> * cm->clen (model len)", 7 },
+ { "--toponly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the top strand", 7 },
+ { "--bottomonly", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "only search the bottom strand", 7 },
+ { "--tformat", eslARG_STRING, NULL, NULL, NULL, NULL, NULL, NULL, "assert target <seqdb> is in format <s>: no autodetection", 7 },
+ { "--glist", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "BOGUS OPTION, NEVER ALLOWED", 999 },
+ { "--clanin", eslARG_INFILE, NULL, NULL, NULL, NULL, NULL, NULL, "BOGUS OPTION, NEVER ALLOWED", 999 },
+ { "--oclan", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "BOGUS OPTION, NEVER ALLOWED", 999 },
+ { "--oskip", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "BOGUS OPTION, NEVER ALLOWED", 999 },
#ifdef HMMER_THREADS
- { "--cpu", eslARG_INT, NULL,"INFERNAL_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 7 },
+ { "--cpu", eslARG_INT, NULL,"INFERNAL_NCPU","n>=0",NULL, NULL, CPUOPTS, "number of parallel CPU workers to use for multithreads", 7 },
#endif
#ifdef HAVE_MPI
- { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 7 },
- { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 7 },
+ { "--stall", eslARG_NONE, FALSE, NULL, NULL, NULL,"--mpi", NULL, "arrest after start: for debugging MPI under gdb", 7 },
+ { "--mpi", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, MPIOPTS, "run as an MPI parallel program", 7 },
#endif
/* All options below are developer options, only shown if --devhelp invoked */
@@ -207,26 +208,33 @@ static ESL_OPTIONS options[] = {
{ "--qdb", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "use QDBs (instead of HMM bands) in final Inside round", 105 },
{ "--beta", eslARG_REAL,"1e-15", NULL, "1E-18<x<1", NULL, NULL, NULL, "set tail loss prob for final Inside QDB calculation to <x>", 105 },
{ "--nonbanded", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--tau,--sums,--qdb,--beta", "do not use QDBs or HMM bands in final Inside round of CM search", 105 },
+ /* Options for terminating after individual pipeline stages, currently only works for F3 */
+ { "--trmF3", eslARG_NONE, FALSE, NULL, NULL, NULL,"--noali,--nohmmonly,--notrunc",TIMINGOPTS, "terminate after Stage 3 Fwd and output surviving windows", 106 },
/* Options for timing individual pipeline stages */
/* name type default env range toggles reqs incomp help docgroup*/
- { "--timeF1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 1 SSV; for timing expts", 106 },
- { "--timeF2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 2 Vit; for timing expts", 106 },
- { "--timeF3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 3 Fwd; for timing expts", 106 },
- { "--timeF4", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 4 glocal Fwd; for timing expts", 106 },
- { "--timeF5", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 5 envelope def; for timing expts", 106 },
- { "--timeF6", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 6 CYK; for timing expts", 106 },
+ { "--timeF1", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 1 SSV; for timing expts", 107 },
+ { "--timeF2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 2 Vit; for timing expts", 107 },
+ { "--timeF3", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 3 Fwd; for timing expts", 107 },
+ { "--timeF4", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 4 glocal Fwd; for timing expts", 107 },
+ { "--timeF5", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 5 envelope def; for timing expts", 107 },
+ { "--timeF6", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TIMINGOPTS, "abort after Stage 6 CYK; for timing expts", 107 },
/* Other expert options */
- /* name type default env range toggles reqs incomp help docgroup*/
- { "--nogreedy", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "do not resolve hits with greedy algorithm, use optimal one", 107 },
- { "--cp9noel", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g", "turn off local ends in cp9 HMMs", 107 },
- { "--cp9gloc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g,--cp9noel", "configure cp9 HMM in glocal mode", 107 },
- { "--null2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn on null 2 biased composition HMM score corrections", 107 },
- { "--maxtau", eslARG_REAL, "0.05", NULL,"0<x<0.5",NULL, NULL, NULL, "set max tau <x> when tightening HMM bands", 107 },
- { "--seed", eslARG_INT, "181", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 107 },
+ /* name type default env range toggles reqs incomp help docgroup*/
+ { "--nogreedy", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "do not resolve hits with greedy algorithm, use optimal one", 108 },
+ { "--cp9noel", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g", "turn off local ends in cp9 HMMs", 108 },
+ { "--cp9gloc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, "-g,--cp9noel", "configure cp9 HMM in glocal mode", 108 },
+ { "--null2", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, NULL, "turn on null 2 biased composition HMM score corrections", 108 },
+ { "--maxtau", eslARG_REAL, "0.05", NULL,"0<x<0.5",NULL, NULL, NULL, "set max tau <x> when tightening HMM bands", 108 },
+ { "--seed", eslARG_INT, "181", NULL, "n>=0", NULL, NULL, NULL, "set RNG seed to <n> (if 0: one-time arbitrary seed)", 108 },
+ { "--block", eslARG_INT, NULL, NULL, "n>0", NULL, NULL, NULL, "BOGUS OPTION, NEVER ALLOWED", 999 },
+ { "--onepass", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL,"--nohmm,--qdb,--fqdb", "use CM only for best scoring HMM pass for full seq envelopes", 108 },
+ { "--onlytrunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow only truncated hits, anywhere within sequences", 108 },
+ { "--5trunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow truncated hits only at 5' ends of sequences", 108 },
+ { "--3trunc", eslARG_NONE, FALSE, NULL, NULL, NULL, NULL, TRUNCOPTS, "allow truncated hits only at 3' ends of sequences", 108 },
#ifdef HAVE_MPI
/* Searching only a subset of sequences in the target database, currently requires MPI b/c SSI is required */
- { "--sidx", eslARG_INT, NULL, NULL, "n>0", NULL,"--mpi", NULL, "start searching at sequence index <n> in target db SSI index" , 107 },
- { "--eidx", eslARG_INT, NULL, NULL, "n>0", NULL,"--mpi", NULL, "stop searching at sequence index <n> in target db SSI index", 107 },
+ { "--sidx", eslARG_INT, NULL, NULL, "n>0", NULL,"--mpi", NULL, "start searching at sequence index <n> in target db SSI index" , 108 },
+ { "--eidx", eslARG_INT, NULL, NULL, "n>0", NULL,"--mpi", NULL, "stop searching at sequence index <n> in target db SSI index", 108 },
#endif
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
};
@@ -274,8 +282,6 @@ static int clone_info(ESL_GETOPTS *go, WORKER_INFO *src_info, WORKER_IN
static void free_info(WORKER_INFO *info);
static int configure_cm(WORKER_INFO *info);
static int setup_hmm_filter(ESL_GETOPTS *go, WORKER_INFO *info);
-static void adjust_nres_top_for_overlaps(CM_PIPELINE *pli, int64_t noverlap);
-static void adjust_nres_bot_for_overlaps(CM_PIPELINE *pli, int64_t noverlap);
#ifdef HAVE_MPI
@@ -599,7 +605,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
info[i].th = cm_tophits_Create();
info[i].pli = cm_pipeline_Create(go, abc, tinfo->cm->clen, 100, cfg->Z, cfg->Z_setby, CM_SEARCH_SEQS); /* L_hint = 100 is just a dummy for now */
if((status = cm_pli_NewModel(info[i].pli, CM_NEWMODEL_CM, info[i].cm, info[i].cm->clen, info[i].cm->W, nbps,
- info[i].om, info[i].bg, info[i].p7_evparam, info[i].om->max_length, cm_idx-1, NULL)) != eslOK) {
+ info[i].om, info[i].bg, info[i].p7_evparam, info[i].om->max_length, cm_idx-1,
+ -1, NULL)) != eslOK) { /* -1 is for clan_idx, irrelevant in this context */
cm_Fail(info[i].pli->errbuf);
}
@@ -642,22 +649,30 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Sort by sequence index/position and remove duplicates */
cm_tophits_SortForOverlapRemoval(info[0].th);
- if((status = cm_tophits_RemoveOverlaps(info[0].th, errbuf)) != eslOK) cm_Fail(errbuf);
+ if((status = cm_tophits_RemoveOrMarkOverlaps(info[0].th, FALSE, errbuf)) != eslOK) cm_Fail(errbuf);
+
+ /* Resort: by score (usually) or by position (if in special 'terminate after F3' mode) */
+ if(info[0].pli->do_trm_F3) cm_tophits_SortByPosition(info[0].th);
+ else cm_tophits_SortByEvalue(info[0].th);
- /* Resort by score and enforce threshold */
- cm_tophits_SortByEvalue(info[0].th);
+ /* Enforce threshold */
cm_tophits_Threshold(info[0].th, info[0].pli);
/* tally up total number of hits and target coverage */
for (i = 0; i < info->th->N; i++) {
if ((info[0].th->hit[i]->flags & CM_HIT_IS_REPORTED) || (info[0].th->hit[i]->flags & CM_HIT_IS_INCLUDED)) {
info[0].pli->acct[info[0].th->hit[i]->pass_idx].n_output++;
- info[0].pli->acct[info[0].th->hit[i]->pass_idx].pos_output += abs(info[0].th->hit[i]->stop - info[0].th->hit[i]->start) + 1;
+ info[0].pli->acct[info[0].th->hit[i]->pass_idx].pos_output += llabs(info[0].th->hit[i]->stop - info[0].th->hit[i]->start) + 1;
}
}
/* Output */
- cm_tophits_Targets(ofp, info[0].th, info[0].pli, textw);
+ if(info[0].pli->do_trm_F3) {
+ cm_tophits_F3Targets(ofp, info[0].th, info[0].pli);
+ }
+ else {
+ cm_tophits_Targets(ofp, info[0].th, info[0].pli, textw);
+ }
fprintf(ofp, "\n\n");
if(info[0].pli->show_alignments) {
@@ -673,7 +688,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
if (tblfp != NULL) {
- cm_tophits_TabularTargets(tblfp, info[0].cm->name, info[0].cm->acc, info[0].th, info[0].pli, (cm_idx == 1));
+ if(info[0].pli->do_trm_F3) cm_tophits_F3TabularTargets1(tblfp, info[0].th, info[0].pli, (cm_idx == 1));
+ else cm_tophits_TabularTargets1 (tblfp, info[0].cm->name, info[0].cm->acc, info[0].th, info[0].pli, (cm_idx == 1));
fflush(tblfp);
}
esl_stopwatch_Stop(w);
@@ -684,8 +700,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
ESL_MSA *msa = NULL;
if((status = cm_tophits_Alignment(info[0].cm, info[0].th, errbuf, &msa)) == eslOK) {
if(msa != NULL) {
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A"));
}
else {
@@ -753,8 +769,8 @@ serial_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* serial_loop():
*
- * Read the sequence file one window of CMSEARCH_MAX_RESIDUE_COUNT
- * residues (or one sequence, if seqlen < CMSEARCH_MAX_RESIDUE_COUNT)
+ * Read the sequence file one window of CM_MAX_RESIDUE_COUNT
+ * residues (or one sequence, if seqlen < CM_MAX_RESIDUE_COUNT)
* at a time. Search the top strand of the window, then revcomp it and
* search the bottom strand.
*/
@@ -764,17 +780,16 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int64_t *srcL)
int status;
int wstatus;
int prv_pli_ntophits; /* number of top hits before each cm_Pipeline() */
- int prv_seq_ntophits; /* number of top hits before each target sequence */
int64_t seq_idx = 0;
ESL_SQ *dbsq = esl_sq_CreateDigital(info->cm->abc);
- wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CMSEARCH_MAX_RESIDUE_COUNT, dbsq);
+ wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CM_MAX_RESIDUE_COUNT, dbsq);
seq_idx++;
while(wstatus == eslEOD) { /* this block is only necessary to chew up zero-length sequences */
info->pli->nseqs++;
esl_sq_Reuse(dbsq);
- wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CMSEARCH_MAX_RESIDUE_COUNT, dbsq);
+ wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CM_MAX_RESIDUE_COUNT, dbsq);
seq_idx++;
}
@@ -784,7 +799,6 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int64_t *srcL)
if(dbsq->start == 1) dbsq->L = srcL[seq_idx-1];
cm_pli_NewSeq(info->pli, dbsq, seq_idx-1);
- prv_seq_ntophits = info->th->N;
if (info->pli->do_top) {
prv_pli_ntophits = info->th->N;
@@ -793,7 +807,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int64_t *srcL)
cm_pipeline_Reuse(info->pli); /* prepare for next search */
/* subtract overlapping residues from previous window */
- if(dbsq->C > 0) adjust_nres_top_for_overlaps(info->pli, dbsq->C);
+ if(dbsq->C > 0) cm_pli_AdjustNresForOverlaps(info->pli, dbsq->C, FALSE); /* 'FALSE': we're not on bottom strand */
/* modify hit positions to account for the position of the window in the full sequence */
cm_tophits_UpdateHitPositions(info->th, prv_pli_ntophits, dbsq->start, FALSE);
@@ -808,7 +822,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int64_t *srcL)
cm_pipeline_Reuse(info->pli); /* prepare for next search */
/* subtract overlapping residues from previous window */
- if(dbsq->C > 0) adjust_nres_bot_for_overlaps(info->pli, dbsq->C);
+ if(dbsq->C > 0) cm_pli_AdjustNresForOverlaps(info->pli, dbsq->C, TRUE); /* 'TRUE': we are on bottom strand */
/* modify hit positions to account for the position of the window in the full sequence */
cm_tophits_UpdateHitPositions(info->th, prv_pli_ntophits, dbsq->start, TRUE);
@@ -822,7 +836,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int64_t *srcL)
esl_sq_ReverseComplement(dbsq);
}
- wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CMSEARCH_MAX_RESIDUE_COUNT, dbsq);
+ wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CM_MAX_RESIDUE_COUNT, dbsq);
/*printf("SER just read seq %ld (%40s) %10ld..%10ld\n", seq_idx, dbsq->name, dbsq->start, dbsq->end);*/
while (wstatus == eslEOD) {
/* no more left of this sequence ... move along to the next sequence.
@@ -830,7 +844,7 @@ serial_loop(WORKER_INFO *info, ESL_SQFILE *dbfp, int64_t *srcL)
*/
info->pli->nseqs++;
esl_sq_Reuse(dbsq);
- wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CMSEARCH_MAX_RESIDUE_COUNT, dbsq);
+ wstatus = esl_sqio_ReadWindow(dbfp, info->pli->maxW, CM_MAX_RESIDUE_COUNT, dbsq);
seq_idx++; /* because we started reading a new sequence, or reached EOF */
}
}
@@ -875,7 +889,7 @@ thread_loop(WORKER_INFO *info, ESL_THREADS *obj, ESL_WORK_QUEUE *queue, ESL_SQFI
* overlap should be retained in the ReadWindow step. */
}
- sstatus = esl_sqio_ReadBlock(dbfp, block, CMSEARCH_MAX_RESIDUE_COUNT, TRUE);
+ sstatus = esl_sqio_ReadBlock(dbfp, block, CM_MAX_RESIDUE_COUNT, /*max_sequences=*/-1, TRUE); // SRE: is it ok to pass -1 for max_seqs? That's a new arg to ReadBlock().
if (sstatus == eslOK) { /* we read a block */
if(! block->complete) {
@@ -946,8 +960,6 @@ pipeline_thread(void *arg)
ESL_SQ_BLOCK *block = NULL;
void *newBlock;
int prv_pli_ntophits; /* number of top hits before each cm_Pipeline() */
- int prv_seq_ntophits; /* number of top hits before each target sequence */
-
#ifdef HAVE_FLUSH_ZERO_MODE
/* In order to avoid the performance penalty dealing with sub-normal
@@ -975,7 +987,6 @@ pipeline_thread(void *arg)
ESL_SQ *dbsq = block->list + i;
cm_pli_NewSeq(info->pli, dbsq, block->first_seqidx + i);
- prv_seq_ntophits = info->th->N;
if (info->pli->do_top) {
prv_pli_ntophits = info->th->N;
@@ -984,7 +995,7 @@ pipeline_thread(void *arg)
cm_pipeline_Reuse(info->pli); /* prepare for next search */
/* subtract overlapping residues from previous window */
- if(dbsq->C > 0) adjust_nres_top_for_overlaps(info->pli, dbsq->C);
+ if(dbsq->C > 0) cm_pli_AdjustNresForOverlaps(info->pli, dbsq->C, FALSE); /* 'FALSE': we're not on bottom strand */
/* modify hit positions to account for the position of the window in the full sequence */
cm_tophits_UpdateHitPositions(info->th, prv_pli_ntophits, dbsq->start, FALSE);
@@ -999,7 +1010,7 @@ pipeline_thread(void *arg)
cm_pipeline_Reuse(info->pli); /* prepare for next search */
/* subtract overlapping residues from previous window */
- if(dbsq->C > 0) adjust_nres_bot_for_overlaps(info->pli, dbsq->C);
+ if(dbsq->C > 0) cm_pli_AdjustNresForOverlaps(info->pli, dbsq->C, TRUE); /* 'TRUE': we're not on bottom strand */
/* modify hit positions to account for the position of the window in the full sequence */
cm_tophits_UpdateHitPositions(info->th, prv_pli_ntophits, dbsq->start, TRUE);
@@ -1182,7 +1193,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
if((status = configure_cm(info)) != eslOK) mpi_failure(info->pli->errbuf);
if((status = setup_hmm_filter(go, info)) != eslOK) mpi_failure(info->pli->errbuf);
if((status = cm_pli_NewModel(info->pli, CM_NEWMODEL_CM, info->cm, info->cm->clen, info->cm->W, nbps,
- info->om, info->bg, info->p7_evparam, info->om->max_length, cm_idx-1, NULL)) != eslOK) {
+ info->om, info->bg, info->p7_evparam, info->om->max_length, cm_idx-1,
+ -1, NULL)) != eslOK) { /* -1 is for clan_idx, irrelevant in this context */
mpi_failure(info->pli->errbuf);
}
@@ -1311,25 +1323,34 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
/* Set number of seqs, and subtract number of overlapping residues searched from total */
info->pli->nseqs = tot_nseq;
- if(info->pli->do_top && tot_noverlap > 0) adjust_nres_top_for_overlaps(info->pli, tot_noverlap);
- if(info->pli->do_bot && tot_noverlap > 0) adjust_nres_bot_for_overlaps(info->pli, tot_noverlap);
+ if(info->pli->do_top && tot_noverlap > 0) cm_pli_AdjustNresForOverlaps(info->pli, tot_noverlap, FALSE); /* 'FALSE': we're not on bottom strand */
+ if(info->pli->do_bot && tot_noverlap > 0) cm_pli_AdjustNresForOverlaps(info->pli, tot_noverlap, TRUE); /* 'TRUE': we are on bottom strand */
/* Sort by sequence index/position and remove duplicates */
cm_tophits_SortForOverlapRemoval(info->th);
- if((status = cm_tophits_RemoveOverlaps(info->th, errbuf)) != eslOK) mpi_failure(errbuf);
- /* Resort by score and enforce threshold */
- cm_tophits_SortByEvalue(info->th);
- cm_tophits_Threshold(info->th, info->pli);
-
+ if((status = cm_tophits_RemoveOrMarkOverlaps(info->th, FALSE, errbuf)) != eslOK) mpi_failure(errbuf);
+
+ /* Resort: by score (usually) or by position (if in special 'terminate after F3' mode) */
+ if(info->pli->do_trm_F3) cm_tophits_SortByPosition(info->th);
+ else cm_tophits_SortByEvalue(info[0].th);
+
+ /* Enforce threshold */
+ cm_tophits_Threshold(info[0].th, info[0].pli);
+
/* tally up total number of hits and target coverage */
for (i = 0; i < info->th->N; i++) {
if ((info->th->hit[i]->flags & CM_HIT_IS_REPORTED) || (info->th->hit[i]->flags & CM_HIT_IS_INCLUDED)) {
info->pli->acct[info->th->hit[i]->pass_idx].n_output++;
- info->pli->acct[info->th->hit[i]->pass_idx].pos_output += abs(info->th->hit[i]->stop - info->th->hit[i]->start) + 1;
+ info->pli->acct[info->th->hit[i]->pass_idx].pos_output += llabs(info->th->hit[i]->stop - info->th->hit[i]->start) + 1;
}
}
- cm_tophits_Targets(ofp, info->th, info->pli, textw);
+ if(info->pli->do_trm_F3) {
+ cm_tophits_F3Targets(ofp, info->th, info->pli);
+ }
+ else {
+ cm_tophits_Targets(ofp, info->th, info->pli, textw);
+ }
fprintf(ofp, "\n\n");
if(info->pli->show_alignments) {
if((status = cm_tophits_HitAlignments(ofp, info->th, info->pli, textw)) != eslOK) mpi_failure("Out of memory");
@@ -1343,7 +1364,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
}
}
if (tblfp != NULL) {
- cm_tophits_TabularTargets(tblfp, info->cm->name, info->cm->acc, info->th, info->pli, (cm_idx == 1));
+ if(info->pli->do_trm_F3) cm_tophits_F3TabularTargets1(tblfp, info->th, info->pli, (cm_idx == 1));
+ else cm_tophits_TabularTargets1(tblfp, info->cm->name, info->cm->acc, info->th, info->pli, (cm_idx == 1));
fflush(tblfp);
}
esl_stopwatch_Stop(w);
@@ -1355,8 +1377,8 @@ mpi_master(ESL_GETOPTS *go, struct cfg_s *cfg)
ESL_MSA *msa = NULL;
if((status = cm_tophits_Alignment(info->cm, info->th, errbuf, &msa)) == eslOK) {
if(msa != NULL) {
- if (textw > 0) eslx_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
- else eslx_msafile_Write(afp, msa, eslMSAFILE_PFAM);
+ if (textw > 0) esl_msafile_Write(afp, msa, eslMSAFILE_STOCKHOLM);
+ else esl_msafile_Write(afp, msa, eslMSAFILE_PFAM);
fprintf(ofp, "# Alignment of %d hits satisfying inclusion thresholds saved to: %s\n", msa->nseq, esl_opt_GetString(go, "-A"));
}
else {
@@ -1521,7 +1543,8 @@ mpi_worker(ESL_GETOPTS *go, struct cfg_s *cfg)
if((status = configure_cm(info)) != eslOK) mpi_failure(info->pli->errbuf);
if((status = setup_hmm_filter(go, info)) != eslOK) mpi_failure(info->pli->errbuf);
if((status = cm_pli_NewModel(info->pli, CM_NEWMODEL_CM, info->cm, info->cm->clen, info->cm->W, CMCountNodetype(info->cm, MATP_nd),
- info->om, info->bg, info->p7_evparam, info->om->max_length, cm_idx-1, NULL)) != eslOK) {
+ info->om, info->bg, info->p7_evparam, info->om->max_length, cm_idx-1,
+ -1, NULL)) != eslOK) {
mpi_failure(info->pli->errbuf);
}
@@ -1703,15 +1726,17 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
esl_opt_DisplayHelp(stdout, go, 104, 2, 80);
puts("\nOptions for precise control of the final stage:");
esl_opt_DisplayHelp(stdout, go, 105, 2, 80);
- puts("\nOptions for timing pipeline stages:");
+ puts("\nOptions for terminating after individual pipeline stages:");
esl_opt_DisplayHelp(stdout, go, 106, 2, 80);
+ puts("\nOptions for timing pipeline stages:");
+ esl_opt_DisplayHelp(stdout, go, 107, 2, 80);
}
printf("\nOther options%s:\n", do_dev ? "" : devmsg);
esl_opt_DisplayHelp(stdout, go, 7, 2, 80);
if(do_dev) {
printf("\nOther expert options%s:\n", do_dev ? "" : devmsg);
- esl_opt_DisplayHelp(stdout, go, 107, 2, 80);
+ esl_opt_DisplayHelp(stdout, go, 108, 2, 80);
}
else {
puts("\n*Use --devhelp to show additional expert options.");
@@ -1822,6 +1847,10 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
if(esl_opt_IsUsed(go, "--ns")) { puts("Failed to parse command line: Option --max is incompatible with option --ns"); goto ERROR; }
if(esl_opt_IsUsed(go, "--maxtau")) { puts("Failed to parse command line: Option --max is incompatible with option --maxtau"); goto ERROR; }
if(esl_opt_IsUsed(go, "--anytrunc")) { puts("Failed to parse command line: Option --max is incompatible with option --anytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onlytrunc")) { puts("Failed to parse command line: Option --max is incompatible with option --onlytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--5trunc")) { puts("Failed to parse command line: Option --max is incompatible with option --5trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--3trunc")) { puts("Failed to parse command line: Option --max is incompatible with option --3trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onepass")) { puts("Failed to parse command line: Option --max is incompatible with option --onepass"); goto ERROR; }
}
if(esl_opt_IsUsed(go, "--nohmm")) {
if(esl_opt_IsUsed(go, "--max")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --max"); goto ERROR; }
@@ -1856,6 +1885,10 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
if(esl_opt_IsUsed(go, "--ns")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --ns"); goto ERROR; }
if(esl_opt_IsUsed(go, "--maxtau")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --maxtau"); goto ERROR; }
if(esl_opt_IsUsed(go, "--anytrunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --anytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onlytrunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --onlytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--5trunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --5trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--3trunc")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --3trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onepass")) { puts("Failed to parse command line: Option --nohmm is incompatible with option --onepass"); goto ERROR; }
}
if(esl_opt_IsUsed(go, "--mid")) {
if(esl_opt_IsUsed(go, "--max")) { puts("Failed to parse command line: Option --mid is incompatible with option --max"); goto ERROR; }
@@ -1930,6 +1963,10 @@ process_commandline(int argc, char **argv, ESL_GETOPTS **ret_go, char **ret_cmfi
if(esl_opt_IsUsed(go, "--nonbanded")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --nonbanded"); goto ERROR; }
if(esl_opt_IsUsed(go, "--maxtau")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --maxtau"); goto ERROR; }
if(esl_opt_IsUsed(go, "--anytrunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --anytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onlytrunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --onlytrunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--5trunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --5trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--3trunc")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --3trunc"); goto ERROR; }
+ if(esl_opt_IsUsed(go, "--onepass")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --onepass"); goto ERROR; }
if(esl_opt_IsUsed(go, "--mxsize")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --mxsize"); goto ERROR; }
if(esl_opt_IsUsed(go, "--smxsize")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --smxsize"); goto ERROR; }
if(esl_opt_IsUsed(go, "--nonull3")) { puts("Failed to parse command line: Option --hmmonly is incompatible with option --nonull3"); goto ERROR; }
@@ -1987,12 +2024,16 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int
if (esl_opt_IsUsed(go, "--hmmonly")) fprintf(ofp, "# HMM-only mode (for all models): on [CM will not be used]\n");
if (esl_opt_IsUsed(go, "--notrunc")) fprintf(ofp, "# truncated sequence detection: off\n");
if (esl_opt_IsUsed(go, "--anytrunc")) fprintf(ofp, "# allowing truncated sequences anywhere: on\n");
+ if (esl_opt_IsUsed(go, "--onlytrunc")) fprintf(ofp, "# only allowing truncated seqs anywhere: on\n");
+ if (esl_opt_IsUsed(go, "--5trunc")) fprintf(ofp, "# allowing 5' truncated seqs only: on\n");
+ if (esl_opt_IsUsed(go, "--3trunc")) fprintf(ofp, "# allowing 3' truncated seqs only: on\n");
if (esl_opt_IsUsed(go, "--nonull3")) fprintf(ofp, "# null3 bias corrections: off\n");
if (esl_opt_IsUsed(go, "--mxsize")) fprintf(ofp, "# maximum DP alignment matrix size: %.1f Mb\n", esl_opt_GetReal(go, "--mxsize"));
if (esl_opt_IsUsed(go, "--smxsize")) fprintf(ofp, "# maximum DP search matrix size: %.1f Mb\n", esl_opt_GetReal(go, "--smxsize"));
if (esl_opt_IsUsed(go, "--cyk")) fprintf(ofp, "# use CYK for final search stage on\n");
if (esl_opt_IsUsed(go, "--acyk")) fprintf(ofp, "# use CYK to align hits: on\n");
if (esl_opt_IsUsed(go, "--wcx")) fprintf(ofp, "# W set as <x> * cm->clen: <x>=%g\n", esl_opt_GetReal(go, "--wcx"));
+ if (esl_opt_IsUsed(go, "--onepass")) fprintf(ofp, "# using CM for best HMM pass only: on\n");
if (esl_opt_IsUsed(go, "--toponly")) fprintf(ofp, "# search top-strand only: on\n");
if (esl_opt_IsUsed(go, "--bottomonly")) fprintf(ofp, "# search bottom-strand only: on\n");
if (esl_opt_IsUsed(go, "--tformat")) fprintf(ofp, "# targ <seqdb> format asserted: %s\n", esl_opt_GetString(go, "--tformat"));
@@ -2056,6 +2097,8 @@ output_header(FILE *ofp, const ESL_GETOPTS *go, char *cmfile, char *seqfile, int
if (esl_opt_IsUsed(go, "--timeF5")) fprintf(ofp, "# abort after Stage 5 env defn (for timing) on\n");
if (esl_opt_IsUsed(go, "--timeF6")) fprintf(ofp, "# abort after Stage 6 CYK (for timing) on\n");
+ if (esl_opt_IsUsed(go, "--trmF3")) fprintf(ofp, "# terminate after Stage 3 Fwd: on\n");
+
if (esl_opt_IsUsed(go, "--nogreedy")) fprintf(ofp, "# greedy CM hit resolution: off\n");
if (esl_opt_IsUsed(go, "--cp9noel")) fprintf(ofp, "# CP9 HMM local ends: off\n");
if (esl_opt_IsUsed(go, "--cp9gloc")) fprintf(ofp, "# CP9 HMM configuration: glocal\n");
@@ -2285,7 +2328,7 @@ clone_info(ESL_GETOPTS *go, WORKER_INFO *src_info, WORKER_INFO *dest_infoA, int
if((dest_infoA[i].bg = p7_bg_Create(src_info->bg->abc)) == NULL) goto ERROR;
if(dest_infoA[i].p7_evparam == NULL) ESL_ALLOC(dest_infoA[i].p7_evparam, sizeof(float) * CM_p7_NEVPARAM);
esl_vec_FCopy(src_info->cm->fp7_evparam, CM_p7_NEVPARAM, dest_infoA[i].p7_evparam);
- dest_infoA[i].msvdata = p7_hmm_MSVDataClone(src_info->msvdata, src_info->om->abc->Kp);
+ dest_infoA[i].msvdata = p7_hmm_ScoreDataClone(src_info->msvdata, src_info->om->abc->Kp);
}
return eslOK;
@@ -2313,7 +2356,7 @@ free_info(WORKER_INFO *info)
if(info->Tgm != NULL) p7_profile_Destroy(info->Tgm); info->Tgm = NULL;
if(info->bg != NULL) p7_bg_Destroy(info->bg); info->bg = NULL;
if(info->p7_evparam != NULL) free(info->p7_evparam); info->p7_evparam = NULL;
- if(info->msvdata != NULL) p7_hmm_MSVDataDestroy(info->msvdata); info->msvdata = NULL;
+ if(info->msvdata != NULL) p7_hmm_ScoreDataDestroy(info->msvdata); info->msvdata = NULL;
return;
}
@@ -2423,47 +2466,11 @@ setup_hmm_filter(ESL_GETOPTS *go, WORKER_INFO *info)
esl_vec_FCopy(info->cm->fp7_evparam, CM_p7_NEVPARAM, info->p7_evparam);
/* compute msvdata */
- info->msvdata = p7_hmm_MSVDataCreate(info->om, FALSE);
+ info->msvdata = p7_hmm_ScoreDataCreate(info->om, FALSE);
return eslOK;
}
-/* Function: adjust_nres_top_for_overlap()
- * Incept: EPN, Thu Apr 12 05:44:09 2012
- *
- * Purpose: Update <nres_top> values in a CM_PIPELINE <pli> to account
- * for overlapping windows from previous pipeline
- * passes. Only certain passes are affected, all others can
- * never search overlaps.
- *
- * Returns: void.
- */
-void
-adjust_nres_top_for_overlaps(CM_PIPELINE *pli, int64_t noverlap)
-{
- if(! pli->do_hmmonly_cur) pli->acct[PLI_PASS_STD_ANY].nres_top -= noverlap;
- else pli->acct[PLI_PASS_HMM_ONLY_ANY].nres_top -= noverlap;
- if(pli->do_trunc_any) pli->acct[PLI_PASS_5P_AND_3P_ANY].nres_top -= noverlap;
-}
-
-/* Function: adjust_nres_bot_for_overlap()
- * Incept: EPN, Thu Apr 12 05:44:09 2012
- *
- * Purpose: Update <nres_top> values in a CM_PIPELINE <pli> to account
- * for overlapping windows from previous pipeline
- * passes. Only certain passes are affected, all others can
- * never search overlaps.
- *
- * Returns: void.
- */
-void
-adjust_nres_bot_for_overlaps(CM_PIPELINE *pli, int64_t noverlap)
-{
- if(! pli->do_hmmonly_cur) pli->acct[PLI_PASS_STD_ANY].nres_bot -= noverlap;
- else pli->acct[PLI_PASS_HMM_ONLY_ANY].nres_bot -= noverlap;
- if(pli->do_trunc_any) pli->acct[PLI_PASS_5P_AND_3P_ANY].nres_bot -= noverlap;
-}
-
#ifdef HAVE_MPI
/* mpi_failure()
* Generate an error message. If the clients rank is not 0, a
@@ -2713,9 +2720,9 @@ mpi_inspect_next_sequence_using_ssi(ESL_SQFILE *dbfp, ESL_SQ *sq, int64_t nconte
/* Now fill in >= 1 blocks with this sequence.
* Chop the sequence up into overlapping chunks of max size
- * CMSEARCH_MAX_RESIDUE_COUNT (not including any overlap). The final
+ * CM_MAX_RESIDUE_COUNT (not including any overlap). The final
* chunk (which may be the only chunk) will probably be less than
- * CMSEARCH_MAX_RESIDUE_COUNT residues. Add the chunk(s) to as many
+ * CM_MAX_RESIDUE_COUNT residues. Add the chunk(s) to as many
* blocks as necessary, creating all blocks except the first one as
* we go, to get rid of all the chunks. Each block will get exactly
* 1 chunk.
@@ -2724,7 +2731,7 @@ mpi_inspect_next_sequence_using_ssi(ESL_SQFILE *dbfp, ESL_SQ *sq, int64_t nconte
nremaining = L;
cur_noverlap = 0; /* first chunk of this sequence, we haven't required any overlapping residues yet */
while(nremaining > 0) {
- ntoadd = CMSEARCH_MAX_RESIDUE_COUNT + cur_noverlap; /* max number residues we can add to cur_block */
+ ntoadd = CM_MAX_RESIDUE_COUNT + cur_noverlap; /* max number residues we can add to cur_block */
ntoadd = ESL_MIN(ntoadd, nremaining);
if(cur_block->blockL == 0) { /* this block was just created */
cur_block->first_idx = pkey_idx;
@@ -2737,7 +2744,7 @@ mpi_inspect_next_sequence_using_ssi(ESL_SQFILE *dbfp, ESL_SQ *sq, int64_t nconte
}
cur_block->final_to = L;
cur_block->blockL += nremaining;
- if(cur_block->blockL >= CMSEARCH_MAX_RESIDUE_COUNT) {
+ if(cur_block->blockL >= CM_MAX_RESIDUE_COUNT) {
cur_block->complete = TRUE;
}
/* update nremaining, this will break us out of the while() */
@@ -3066,8 +3073,8 @@ mpi_block_unpack(char *buf, int n, int *pos, MPI_Comm comm, MPI_BLOCK **ret_bloc
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cmstat.c b/src/cmstat.c
index 4961e30..4a0efbc 100644
--- a/src/cmstat.c
+++ b/src/cmstat.c
@@ -382,8 +382,8 @@ output_stats(ESL_GETOPTS *go, CM_t *cm, int ncm, P7_BG *bg, int output_mode)
}
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/config.h.in b/src/config.h.in
index 8299d9d..bb21d42 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -9,7 +9,7 @@
* header file.
*
* SRE, Sun Jun 3 20:22:38 2001 [St. Louis]
- * SVN $Id: config.h.in 3587 2011-06-28 15:41:38Z nawrockie $
+ * SVN $Id$
*/
#ifndef CONFIGH_INCLUDED
#define CONFIGH_INCLUDED
diff --git a/src/cp9-test.c b/src/cp9-test.c
index 814cba9..46be0bc 100644
--- a/src/cp9-test.c
+++ b/src/cp9-test.c
@@ -6,8 +6,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cp9.c b/src/cp9.c
index 29e56c6..fd08426 100644
--- a/src/cp9.c
+++ b/src/cp9.c
@@ -1,7 +1,7 @@
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cp9_dp.c b/src/cp9_dp.c
index 53aec87..c66ac86 100644
--- a/src/cp9_dp.c
+++ b/src/cp9_dp.c
@@ -9,8 +9,8 @@
* EPN, Wed Sep 12 16:53:32 2007
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/cp9_modelmaker.c b/src/cp9_modelmaker.c
index 1ffbcf7..1b760fd 100644
--- a/src/cp9_modelmaker.c
+++ b/src/cp9_modelmaker.c
@@ -1199,7 +1199,6 @@ cm2hmm_trans_probs_cp9(CM_t *cm, CP9_t *hmm, CP9Map_t *cp9map, int k, double *ps
int *bp; /* CM states b' that map to HMM state b,
* bp[1] is -1 if only 1 CM state maps to b*/
- int n; /* CM node that maps to HMM node k */
int k_state; /*either HMMMATCH, HMMINSERT, or HMMDELETE*/
int hmm_trans_idx; /*0-8; CTMM, CTMI, CTMD, CTIM, CTII, CTID, CTDM, CTDI, or CTDD*/
@@ -1209,7 +1208,7 @@ cm2hmm_trans_probs_cp9(CM_t *cm, CP9_t *hmm, CP9Map_t *cp9map, int k, double *ps
ESL_ALLOC(ap, sizeof (int) * 2);
ESL_ALLOC(bp, sizeof (int) * 2);
- n = cp9map->pos2nd[k];
+
/* Fill all 9 transitions with virtual counts, later normalize these into
* probabilities.
*
@@ -1599,8 +1598,6 @@ cm_sum_subpaths_cp9(CM_t *cm, CP9Map_t *cp9map, int start, int end, char ***tmap
int k, double *psi)
{
int status;
- int s_n; /* CM node that maps to HMM node with start state */
- int e_n; /* CM node that maps to HMM node with end state */
int v; /* state index in CM */
double *sub_psi; /*sub_psi[v] is the expected number of times state v is
@@ -1612,7 +1609,6 @@ cm_sum_subpaths_cp9(CM_t *cm, CP9Map_t *cp9map, int start, int end, char ***tmap
int y;
int x;
char tmap_val;
- int n_v; /* CM node containing state v*/
int is_insert; /* 1 if v is insert, 0 if not */
float insert_to_start; /* is start is not an insert and the insert state of
* HMM node k < start, this is the
@@ -1654,8 +1650,6 @@ cm_sum_subpaths_cp9(CM_t *cm, CP9Map_t *cp9map, int start, int end, char ***tmap
return cm->t[start][0];
}
to_return = 0.;
- s_n = cm->ndidx[start];
- e_n = cm->ndidx[end];
ESL_ALLOC(sub_psi, sizeof(double) * (end - start + 1));
/* Initialize sub_psi[0]. Need to check if we need to ignore the probability
@@ -1686,7 +1680,6 @@ cm_sum_subpaths_cp9(CM_t *cm, CP9Map_t *cp9map, int start, int end, char ***tmap
{
/*printf("\t\t\tv: %d\n", v);*/
sub_psi[v-start] = 0.;
- n_v = cm->ndidx[v];
if(cm->sttype[v] == IL_st || cm->sttype[v] == IR_st)
is_insert = 1;
else
diff --git a/src/cp9_trace.c b/src/cp9_trace.c
index b4bcfe5..f7cbcbb 100644
--- a/src/cp9_trace.c
+++ b/src/cp9_trace.c
@@ -1,7 +1,7 @@
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -106,16 +106,16 @@ CP9_fake_tracebacks(ESL_MSA *msa, int *matassign, CP9trace_t ***ret_tr)
int apos; /* position in alignment columns */
int tpos; /* position in traceback */
int first_match; /* first match column */
- int last_match; /* last match column */
+ /*int last_match;*/ /* last match column, not used */
ESL_ALLOC(tr, sizeof(CP9trace_t *) * msa->nseq);
first_match = -1;
- last_match = -1;
+ /*last_match = -1;*/
for (apos = 0; apos < msa->alen; apos++)
{
if(matassign[apos+1] && first_match == -1) first_match = apos;
- if(matassign[apos+1]) last_match = apos;
+ /*if(matassign[apos+1]) last_match = apos;*/
}
for (idx = 0; idx < msa->nseq; idx++)
diff --git a/src/display.c b/src/display.c
index eddfada..ec4e848 100644
--- a/src/display.c
+++ b/src/display.c
@@ -1,14 +1,14 @@
/* display.c
* SRE, Thu May 23 08:18:05 2002 [St. Louis]
- * SVN $Id: display.c 3955 2012-03-20 10:17:48Z nawrockie $
+ * SVN $Id$
*
* Routines for formatting and displaying parse trees
* for output.
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/eweight.c b/src/eweight.c
index fed6a77..e1e2cc0 100644
--- a/src/eweight.c
+++ b/src/eweight.c
@@ -1,7 +1,7 @@
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -19,7 +19,7 @@
* achieving a certain target entropy loss, relative to background
* null distribution.
*
- * SVN $Id: eweight.c 4022 2012-05-02 17:31:57Z nawrockie $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/src/hmmband.c b/src/hmmband.c
index c9bfb25..1bd147c 100644
--- a/src/hmmband.c
+++ b/src/hmmband.c
@@ -9,8 +9,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -1539,12 +1539,6 @@ cp9_HMM2ijBands(CM_t *cm, char *errbuf, CP9_t *cp9, CP9Bands_t *cp9b, CP9Map_t *
int v;
/* ptrs to cp9b data, for convenience */
- int *pn_min_m; /* pn_min_m[k] = first position in HMM band for match state of HMM node k */
- int *pn_max_m; /* pn_max_m[k] = last position in HMM band for match state of HMM node k */
- int *pn_min_i; /* pn_min_i[k] = first position in HMM band for insert state of HMM node k */
- int *pn_max_i; /* pn_max_i[k] = last position in HMM band for insert state of HMM node k */
- int *pn_min_d; /* pn_min_d[k] = first position in HMM band for delete state of HMM node k */
- int *pn_max_d; /* pn_max_d[k] = last position in HMM band for delete state of HMM node k */
int *imin; /* imin[v] = first position in band on i for state v to be filled in this function. [1..M] */
int *imax; /* imax[v] = last position in band on i for state v to be filled in this function. [1..M] */
int *jmin; /* jmin[v] = first position in band on j for state v to be filled in this function. [1..M] */
@@ -1558,7 +1552,7 @@ cp9_HMM2ijBands(CM_t *cm, char *errbuf, CP9_t *cp9, CP9Bands_t *cp9b, CP9Map_t *
int on_right; /* TRUE if we're on the right for current node during our CM traversal */
int w; /* a state index */
int lpos, rpos; /* left/right border of subtree for current node */
- int k; /* counter of HMM nodes */
+ /*int k;*/ /* counter of HMM nodes, for debugging print statements, currently not used */
int hmm_is_localized; /* TRUE if HMM has local begins, ends or ELs on */
int cm_is_fully_localized; /* TRUE if CM has local begins and ends on */
@@ -1596,12 +1590,6 @@ cp9_HMM2ijBands(CM_t *cm, char *errbuf, CP9_t *cp9, CP9Bands_t *cp9b, CP9Map_t *
cm_is_fully_localized = ((cm->flags & CMH_LOCAL_BEGIN) && (cm->flags & CMH_LOCAL_END)) ? TRUE : FALSE;
/* ptrs to cp9b arrays, for convenience */
- pn_min_m = cp9b->pn_min_m;
- pn_max_m = cp9b->pn_max_m;
- pn_min_i = cp9b->pn_min_i;
- pn_max_i = cp9b->pn_max_i;
- pn_min_d = cp9b->pn_min_d;
- pn_max_d = cp9b->pn_max_d;
imin = cp9b->imin;
imax = cp9b->imax;
jmin = cp9b->jmin;
@@ -1648,7 +1636,6 @@ cp9_HMM2ijBands(CM_t *cm, char *errbuf, CP9_t *cp9, CP9Bands_t *cp9b, CP9Map_t *
if(!hmm_is_localized) assert(r_mx[hmm_M] == j0 || r_ix[hmm_M] == j0 || r_dx[hmm_M] == j0);
}
nd = 0;
- k = 0;
lpos = 0;
rpos = 0;
@@ -2293,7 +2280,7 @@ HMMBandsEnforceValidParse(CP9_t *cp9, CP9Bands_t *cp9b, CP9Map_t *cp9map, char *
int c; /* counter */
int sd; /* state delta, number of emissions for each state */
int local_begins_ends_on; /* TRUE if HMM has local begins (M_0(B) -> M_k for k = 1..M and local ends (M_k -> E) for k = 1..M-1 */
- int j0_is_reachable = FALSE; /* TRUE if we can reach j0 for some node */
+ /*int j0_is_reachable = FALSE; */ /* TRUE if we can reach j0 for some node */
/* ptrs to cp9b data, for convenience */
int *pn_min_m; /* pn_min_m[k] = first position in HMM band for match state of HMM node k */
int *pn_max_m; /* pn_max_m[k] = final position in HMM band for match state of HMM node k */
@@ -2764,7 +2751,7 @@ HMMBandsEnforceValidParse(CP9_t *cp9, CP9Bands_t *cp9b, CP9Map_t *cp9map, char *
*/
k -= 1;
}
- else if(r_nx_hmm[k] == j0) j0_is_reachable = TRUE;
+ /*else if(r_nx_hmm[k] == j0) j0_is_reachable = TRUE;*/
}
/* final check, if we're doing alignment, the first residue i0, must be first emitted
* residue, and the final residue, j0 must be final emittable residue. Enforce it.
diff --git a/src/hmmband.h b/src/hmmband.h
index 3332efc..f89e144 100644
--- a/src/hmmband.h
+++ b/src/hmmband.h
@@ -1,7 +1,7 @@
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/impl_sse/Makefile.in b/src/impl_sse/Makefile.in
index cd301ee..6da0e70 100644
--- a/src/impl_sse/Makefile.in
+++ b/src/impl_sse/Makefile.in
@@ -98,8 +98,8 @@ clean:
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/impl_sse/impl_sse.h b/src/impl_sse/impl_sse.h
index 504b8d0..36ee18e 100644
--- a/src/impl_sse/impl_sse.h
+++ b/src/impl_sse/impl_sse.h
@@ -219,8 +219,8 @@ static inline __m128i sse_select_si128(__m128i a, __m128i b, __m128i mask)
/*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/impl_sse/sse_cm_dpsearch.c b/src/impl_sse/sse_cm_dpsearch.c
index 12c6989..8afbaae 100644
--- a/src/impl_sse/sse_cm_dpsearch.c
+++ b/src/impl_sse/sse_cm_dpsearch.c
@@ -7,8 +7,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -86,8 +86,7 @@ SSE_CYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, ESL_DSQ *dsq, int i0, int j
int W; /* max d; max size of a hit, this is min(L, smx->W) */
int sd; /* StateDelta(cm->sttype[v]), # emissions from v */
int *dnA, *dxA; /* tmp ptr to 1 row of dnAA, dxAA */
- int dn, dx; /* minimum/maximum valid d for current state */
- int cnum; /* number of children for current state */
+ /*int dn, dx; */ /* minimum/maximum valid d for current state */
int *jp_wA; /* rolling pointer index for B states, gets precalc'ed */
float **init_scAA; /* [0..v..cm->M-1][0..d..W] initial score for each v, d for all j */
double **act; /* [0..j..W-1][0..a..abc->K-1], alphabet count, count of residue a in dsq from 1..jp where j = jp%(W+1) */
@@ -393,9 +392,8 @@ SSE_CYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, ESL_DSQ *dsq, int i0, int j
jp_v = (cm->stid[v] == BEGL_S) ? (j % (W+1)) : cur;
jp_y = (StateRightDelta(cm->sttype[v]) > 0) ? prv : cur;
sd = StateDelta(cm->sttype[v]);
- cnum = cm->cnum[v];
- dn = dnA[v];
- dx = dxA[v];
+ /*dn = dnA[v];*/
+ /*dx = dxA[v];*/
if(cm->sttype[v] == B_st) {
float *vec_access;
@@ -717,7 +715,7 @@ SSE_CYKScan(CM_t *cm, char *errbuf, CM_SCAN_MX *smx, ESL_DSQ *dsq, int i0, int j
/* first, set srcL for all hits to length of sequence, this is required for overlap removal */
for(h = 0; h < tmp_hitlist->N; h++) tmp_hitlist->unsrt[h].srcL = L;
cm_tophits_SortForOverlapRemoval(tmp_hitlist);
- if((status = cm_tophits_RemoveOverlaps(tmp_hitlist, errbuf)) != eslOK) return status;
+ if((status = cm_tophits_RemoveOrMarkOverlaps(tmp_hitlist, FALSE, errbuf)) != eslOK) return status;
for(h = 0; h < tmp_hitlist->N; h++) {
if(! (tmp_hitlist->hit[h]->flags & CM_HIT_IS_REMOVED_DUPLICATE)) {
if((status = cm_tophits_CloneHitMostly(tmp_hitlist, h, hitlist)) != eslOK) ESL_FAIL(status, errbuf, "problem copying hit to hitlist, out of memory?");
diff --git a/src/impl_sse/sse_cm_dpsmall.c b/src/impl_sse/sse_cm_dpsmall.c
index 2058a94..33f479b 100644
--- a/src/impl_sse/sse_cm_dpsmall.c
+++ b/src/impl_sse/sse_cm_dpsmall.c
@@ -16,8 +16,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
@@ -394,7 +394,7 @@ SSE_CYKDemands(CM_t *cm, int L, int be_quiet)
float bifcalcs; /* # of inner loops executed for bifurcation calculations */
float dpcalcs; /* # of inner loops executed for non-bif calculations */
int j;
- float avg_Mb_per_banded_deck; /* average megabytes per deck in mem efficient big mode */
+ /*float avg_Mb_per_banded_deck;*/ /* average megabytes per deck in mem efficient big mode */
const int vecwidth = 4;
Mb_per_deck = sse_size_vjd_deck(L, 1, L, vecwidth);
@@ -410,7 +410,7 @@ SSE_CYKDemands(CM_t *cm, int L, int be_quiet)
dpcalcs = (float) (L+2)*(float)(L+1)*0.5*(float) (cm->M - bif_decks - nends +1);
bigmemory = (float) (cm->M - nends +1) * Mb_per_deck;
dpcells = (float) (L+2)*(float)(L+1)*0.5*(float) (cm->M - nends +1);
- avg_Mb_per_banded_deck = 0.; /* irrelevant */
+ /*avg_Mb_per_banded_deck = 0.; */ /* irrelevant */
if(!be_quiet)
{
@@ -3921,7 +3921,7 @@ SSE_CYKFilter_epi16(CM_OPTIMIZED *ocm, ESL_DSQ *dsq, int L, int vroot, int vend,
int nends; /* counter that tracks when we can release end deck to the pool */
int *touch; /* keeps track of how many higher decks still need this deck */
int v,y,z; /* indices for states */
- int j,d,i,k; /* indices in sequence dimensions */
+ int j,d,i,k; /* indices in sequence dimensions */
int16_t sc; /* a temporary variable holding a score */
int yoffset; /* y=base+offset -- counter in child states that v can transit to */
int W; /* subsequence length */
@@ -4956,11 +4956,11 @@ sse_insideT_size(CM_t *cm, int L, int r, int z, int i0, int j0, int x)
{
float Mb;
int maxdecks;
- int nends;
- int nbif;
+ /*int nends;*/
+ /*int nbif;*/
- nends = CMSegmentCountStatetype(cm, r, z, E_st);
- nbif = CMSegmentCountStatetype(cm, r, z, B_st);
+ /*nends = CMSegmentCountStatetype(cm, r, z, E_st);*/
+ /*nbif = CMSegmentCountStatetype(cm, r, z, B_st);*/
maxdecks = cyk_deck_count(cm, r, z);
Mb = (float) (sizeof(sse_deck_t *) * cm->M) / 1000000.; /* the score matrix */
diff --git a/src/impl_sse/sse_cmcons_hitmx.c b/src/impl_sse/sse_cmcons_hitmx.c
index 79f6641..f7570e4 100644
--- a/src/impl_sse/sse_cmcons_hitmx.c
+++ b/src/impl_sse/sse_cmcons_hitmx.c
@@ -127,7 +127,7 @@ UpdateGammaHitMx_epu8(CM_CONSENSUS *ccm, char *errbuf, GammaHitMx_epu8 *gamma, i
CM_TOPHITS *hitlist, int W, int sW)
{
int i, d;
- int bestd;
+ /*int bestd;*/
int ip, jp;
int do_report_hit;
uint8_t hit_sc, bestd_sc;
@@ -186,7 +186,7 @@ UpdateGammaHitMx_epu8(CM_CONSENSUS *ccm, char *errbuf, GammaHitMx_epu8 *gamma, i
hit->hmmonly = FALSE;
}
}
- bestd = 0;
+ /*bestd = 0;*/
bestd_sc = hit_sc;
/* Now, if current score is greater than maximum seen previous, report
* it if >= cutoff and set new max */
@@ -210,7 +210,7 @@ UpdateGammaHitMx_epu8(CM_CONSENSUS *ccm, char *errbuf, GammaHitMx_epu8 *gamma, i
hit->hmmonly = FALSE;
}
}
- bestd = d;
+ /*bestd = d;*/
bestd_sc = hit_sc;
}
}
diff --git a/src/impl_sse/sse_cmcons_mscyk.c b/src/impl_sse/sse_cmcons_mscyk.c
index f1ae54a..c07b401 100644
--- a/src/impl_sse/sse_cmcons_mscyk.c
+++ b/src/impl_sse/sse_cmcons_mscyk.c
@@ -7,8 +7,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/infernal.h b/src/infernal.h
index 913777a..a759564 100644
--- a/src/infernal.h
+++ b/src/infernal.h
@@ -111,6 +111,11 @@
/* number of possible integer GC contents, example 40 = 0.40 GC */
#define GC_SEGMENTS 101
+/* length of a sequence 'chunk' that gets processed in cmsearch/cmscan
+ * sequences larger than this get broken up into overlapping chunks of this size.
+ */
+#define CM_MAX_RESIDUE_COUNT 100000 /* differs from HMMER's default which is MAX_RESIDUE_COUNT from esl_sqio_(ascii|ncbi).c */
+
/* P7 HMM E-value parameters, borrowed from HMMER, but with 2 new additions: CM_p7_GMU and CM_p7_GLAMBDA */
#define CM_p7_NEVPARAM 8 /* number of statistical parameters stored in cm->p7_evparam */
enum cm_p7_evparams_e {CM_p7_LMMU = 0, CM_p7_LMLAMBDA = 1, CM_p7_LVMU = 2, CM_p7_LVLAMBDA = 3, CM_p7_LFTAU = 4, CM_p7_LFLAMBDA = 5, CM_p7_GFMU = 6, CM_p7_GFLAMBDA = 7 };
@@ -2059,8 +2064,12 @@ typedef struct cm_file_s {
* on it.
*
* Not all passes are performed in a pipeline. If pli->do_trunc_ends,
- * passes 1,2,3,4 are performed. If pli->do_trunc_any, passes 1 and 5
- * are performed. If pli->do_hmmonly_cur, only pass 6 is performed. If
+ * passes 1,2,3,4 are performed. If pli->do_trunc_5p_ends, passes
+ * 1 and 2 are performed. If pli->do_trunc_3p_ends, passes 1
+ * and 3 are performed. If pli->do_trunc_any, passes 1 and 5 are
+ * performed. If pli->do_trunc_only, only pass 5 is performed.
+ * If pli->do_only_trunc_5p_and_3p_ends, only pass 4 is
+ * performed. If pli->do_hmmonly_cur, only pass 6 is performed. If
* none of these flags is TRUE only pass 1 is performed.
*
* These values have two interrelated but different roles:
@@ -2074,7 +2083,7 @@ typedef struct cm_file_s {
* algorithms will be called but _ANY is used as a suffix because
* HMM local alignment algorithms allow 5' and 3' truncation.
*
- * A wrinkle is that these indices used for DP truncated alignment
+ * A wrinkle is that these indices are used for DP truncated alignment
* functions called for 'cmalign' (either PLI_PASS_5P_AND_3P_FORCE or
* PLI_PASS_STD_ANY) even though those functions are not called as
* part of a search/scan pipeline. In this case, the pass index is
@@ -2170,7 +2179,8 @@ typedef struct cm_pipeline_s {
int maxW; /* # residues to overlap in adjacent windows*/
int cmW; /* CM's window length */
int clen; /* CM's consensus length of model */
- int64_t cur_cm_idx; /* model index currently being used */
+ int64_t cur_cm_idx; /* model index currently being used */
+ int cur_clan_idx; /* clan index currently being used, -1 if none */
int64_t cur_seq_idx; /* sequence index currently being searched */
int64_t cur_pass_idx; /* pipeline pass index currently underway */
@@ -2199,18 +2209,21 @@ typedef struct cm_pipeline_s {
double maxtau; /* max tau when tightening bands */
int do_wcx; /* TRUE to set cm->W as cm->clen * wcx */
float wcx; /* set W as cm->clen * wcx, ignoring W from CM file */
+ int do_one_cmpass; /* TRUE to only use CM for best scoring HMM pass if envelope encompasses full sequence */
/* these are all currently hard-coded, in cm_pipeline_Create() */
float smult; /* 2.0; W multiplier for window splitting */
float wmult; /* 1.0; maxW will be max of wmult * cm->W and cmult * cm->clen */
float cmult; /* 1.25; maxW will be max of wmult * cm->W and cmult * cm->clen */
float mlmult; /* 0.10; om->max_length multiplier for MSV window defn */
/* flags for timing experiments */
- int do_time_F1; /* TRUE to abort after Stage 1 MSV */
- int do_time_F2; /* TRUE to abort after Stage 2 Vit */
- int do_time_F3; /* TRUE to abort after Stage 3 Fwd */
- int do_time_F4; /* TRUE to abort after Stage 4 glocal Fwd */
- int do_time_F5; /* TRUE to abort after Stage 5 env def */
- int do_time_F6; /* TRUE to abort after Stage 6 CYK */
+ int do_time_F1; /* TRUE to abort after Stage 1 MSV, for timing expts */
+ int do_time_F2; /* TRUE to abort after Stage 2 Vit, for timing expts */
+ int do_time_F3; /* TRUE to abort after Stage 3 Fwd, for timing expts */
+ int do_time_F4; /* TRUE to abort after Stage 4 glocal Fwd, for timing expts */
+ int do_time_F5; /* TRUE to abort after Stage 5 env def, for timing expts */
+ int do_time_F6; /* TRUE to abort after Stage 6 CYK, for timing expts */
+ /* flag for terminating after a stage and outputting surviving windows (currently only F3 is possible) */
+ int do_trm_F3; /* TRUE to abort after Stage 3 Fwd and output surviving windows */
/* Reporting threshold settings */
int by_E; /* TRUE to cut per-target report off by E */
@@ -2264,8 +2277,11 @@ typedef struct cm_pipeline_s {
int do_edefbias; /* TRUE to use biased comp HMM filter w/edef*/
/* truncated sequence detection parameters */
- int do_trunc_ends; /* TRUE to use truncated CM algs at sequence ends */
- int do_trunc_any; /* TRUE to use truncated CM algs for entire sequences */
+ int do_trunc_ends; /* TRUE to use truncated CM algs at sequence ends */
+ int do_trunc_any; /* TRUE to use truncated CM algs for entire sequences */
+ int do_trunc_only; /* TRUE to use truncated CM algs for entire sequences */
+ int do_trunc_5p_ends; /* TRUE to use truncated CM algs only at 5' ends (added for RNAVORE, post 1.1.1) */
+ int do_trunc_3p_ends; /* TRUE to use truncated CM algs only at 3' ends (added for RNAVORE, post 1.1.1) */
/* Parameters controlling p7 domain/envelope defintion */
float rt1; /* controls when regions are called. mocc[i] post prob >= dt1 : triggers a region around i */
@@ -2387,6 +2403,7 @@ typedef struct cm_alidisplay_s {
#define CM_HIT_IS_INCLUDED (1<<0)
#define CM_HIT_IS_REPORTED (1<<1)
#define CM_HIT_IS_REMOVED_DUPLICATE (1<<2)
+#define CM_HIT_IS_MARKED_OVERLAP (1<<3)
/* Structure: CM_HIT
*
@@ -2404,9 +2421,11 @@ typedef struct cm_hit_s {
char *name; /* name of the target (mandatory) */
char *acc; /* accession of the target (optional; else NULL) */
char *desc; /* description of the target (optional; else NULL) */
- int64_t cm_idx; /* model index in the cmfile, unique id for the model */
+ int64_t cm_idx; /* model index in the cmfile, unique id for the model */
+ int clan_idx; /* clan index in the cmfile, -1 if none (usually -1) */
int64_t seq_idx; /* sequence index in the seqfile, unique id for the sequence */
int pass_idx; /* index of pipeline pass hit was found on */
+ int64_t hit_idx; /* index of this hit in the hit list */
int64_t srcL; /* full length of source sequence the hit is from */
int64_t start, stop; /* start/end points of hit */
int in_rc; /* TRUE if hit is in reverse complement of a target, FALSE if not */
@@ -2414,12 +2433,20 @@ typedef struct cm_hit_s {
int mode; /* joint or marginal hit mode: CM_MODE_J | CM_MODE_R | CM_MODE_L | CM_MODE_T */
float score; /* bit score of the hit (with corrections) */
float bias; /* null{2,3} (2 if hmmonly, 3 if not) correction, in bits (already subtracted from score) */
- double pvalue; /* P-value of the hit (with corrections) */
- double evalue; /* E-value of the hit (with corrections) */
+ double pvalue; /* P-value of the hit (with corrections) */
+ double evalue; /* E-value of the hit (with corrections) */
+ int has_evalue; /* TRUE if E-value has been set for this hit */
int hmmonly; /* TRUE if hit was found during HMM only pipeline run, FALSE if not */
int glocal; /* TRUE if hit was found by model in global configuration, FALSE if not */
CM_ALIDISPLAY *ad; /* alignment display */
- uint32_t flags; /* CM_HIT_IS_REPORTED | CM_HIT_IS_INCLUDED | CM_HIT_IS_REMOVED_DUPLICATE */
+ uint32_t flags; /* CM_HIT_IS_REPORTED | CM_HIT_IS_INCLUDED | CM_HIT_IS_REMOVED_DUPLICATE | CM_HIT_IS_MARKED_OVERLAP */
+ /* overlap information */
+ int64_t any_oidx; /* hit index of best scoring (E-value, then bit score) hit that has
+ * better score than this hit and overlaps with it */
+ int64_t win_oidx; /* hit index of best scoring (E-value, then bit score) hit that has
+ * better score than this AND has no CM_HIT_IS_MARKED_OVERLAP flag raised */
+ double any_bitE; /* score of hit <any_oidx>, E-value if 'has_evalue' is TRUE, else bit score */
+ double win_bitE; /* score of hit <win_oidx>, E-value if 'has_evalue' is TRUE, else bit score */
} CM_HIT;
@@ -2442,6 +2469,7 @@ typedef struct cm_tophits_s {
uint64_t nincluded; /* number of hits that are includable */
int is_sorted_by_evalue; /* TRUE when hits are sorted by E-value, score, length, th->hit valid for all N hits */
int is_sorted_for_overlap_removal; /* TRUE when hits are sorted by cm_idx, seq_idx, strand, score, th->hit valid for all N hits */
+ int is_sorted_for_overlap_markup; /* TRUE when hits are sorted by seq_idx, strand, score, th->hit valid for all N hits */
int is_sorted_by_position; /* TRUE when hits are sorted by cm_idx, seq_idx, strand, first residue
* (start if ! in_rc, stop if in_rc), th->hit valid for all N hits
*/
@@ -2454,14 +2482,17 @@ typedef struct cm_tophits_s {
typedef struct {
int count; /* number of <P7_OPROFILE> objects in the block (and cm_offsetA, cm_clenA, cm_WA, gfmuA, gflambdaA) */
+ int64_t idx0; /* index of first profile in file >= 0 */
int listSize; /* maximum number elements in the list */
P7_OPROFILE **list; /* array of <P7_OPROFILE> objects */
+ P7_SCOREDATA **msvdataA; /* array of <P7_SCOREDATA> objects */
off_t *cm_offsetA; /* file offsets for CMs */
int *cm_clenA; /* consensus length of CMs */
int *cm_WA; /* window length of CMs */
int *cm_nbpA; /* number of basepairs in CMs */
float *gfmuA; /* glocal forward mu parameter for HMM */
float *gflambdaA; /* glocal forward lambda parameter for HMM */
+ int *clan_idxA; /* clan index for profile, or -1 for none */
} CM_P7_OM_BLOCK;
@@ -2754,7 +2785,7 @@ extern int cm_file_Position(CM_FILE *cmfp, const off_t offset);
extern int cm_p7_hmmfile_Read(CM_FILE *cmfp, ESL_ALPHABET *abc, off_t offset, P7_HMM **ret_hmm);
extern int cm_p7_oprofile_Write(FILE *ffp, FILE *pfp, off_t cm_offset, int cm_len, int cm_W, int cm_nbp, float gfmu, float gflambda, P7_OPROFILE *om);
extern int cm_p7_oprofile_ReadMSV(CM_FILE *cmfp, int read_scores, ESL_ALPHABET **byp_abc, off_t *ret_cm_offset, int *ret_cm_clen, int *ret_cm_W, int *ret_cm_nbp, float *ret_gfmu, float *ret_gflambda, P7_OPROFILE **ret_om);
-extern int cm_p7_oprofile_ReadBlockMSV(CM_FILE *cmfp, ESL_ALPHABET **byp_abc, CM_P7_OM_BLOCK *hmmBlock);
+extern int cm_p7_oprofile_ReadBlockMSV(CM_FILE *cmfp, int64_t cm_idx, ESL_ALPHABET **byp_abc, CM_P7_OM_BLOCK *hmmBlock);
extern int cm_p7_oprofile_Position(CM_FILE *cmfp, off_t offset);
extern int cm_file_Write1p0ASCII(FILE *fp, CM_t *cm);
@@ -2915,15 +2946,16 @@ extern int cm_pipeline_Merge (CM_PIPELINE *p1, CM_PIPELINE *p2);
extern int cm_pli_TargetReportable (CM_PIPELINE *pli, float score, double Eval);
extern int cm_pli_TargetIncludable (CM_PIPELINE *pli, float score, double Eval);
-extern int cm_pli_NewModel (CM_PIPELINE *pli, int modmode, CM_t *cm, int cm_clen, int cm_W, int cm_nbp, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, int p7_max_length, int64_t cur_cm_idx, ESL_KEYHASH *glocal_kh);
+extern int cm_pli_NewModel (CM_PIPELINE *pli, int modmode, CM_t *cm, int cm_clen, int cm_W, int cm_nbp, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, int p7_max_length, int64_t cur_cm_idx, int cur_clan_idx, ESL_KEYHASH *glocal_kh);
extern int cm_pli_NewModelThresholds(CM_PIPELINE *pli, CM_t *cm);
extern int cm_pli_NewSeq (CM_PIPELINE *pli, const ESL_SQ *sq, int64_t cur_seq_idx);
-extern int cm_Pipeline (CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_MSVDATA *msvdata, ESL_SQ *sq, CM_TOPHITS *hitlist, int in_rc, P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, CM_t **opt_cm);
+extern int cm_Pipeline (CM_PIPELINE *pli, off_t cm_offset, P7_OPROFILE *om, P7_BG *bg, float *p7_evparam, P7_SCOREDATA *msvdata, ESL_SQ *sq, CM_TOPHITS *hitlist, int in_rc, P7_HMM **opt_hmm, P7_PROFILE **opt_gm, P7_PROFILE **opt_Rgm, P7_PROFILE **opt_Lgm, P7_PROFILE **opt_Tgm, CM_t **opt_cm);
extern int cm_pli_Statistics (FILE *ofp, CM_PIPELINE *pli, ESL_STOPWATCH *w);
extern int cm_pli_ZeroAccounting(CM_PLI_ACCT *pli_acct);
extern int cm_pli_PassEnforcesFirstRes(int pass_idx);
extern int cm_pli_PassEnforcesFinalRes(int pass_idx);
extern int cm_pli_PassAllowsTruncation(int pass_idx);
+extern void cm_pli_AdjustNresForOverlaps(CM_PIPELINE *pli, int64_t noverlap, int in_rc);
/* from cm_qdband.c */
extern void BandExperiment(CM_t *cm);
@@ -2971,27 +3003,33 @@ extern int cm_tophits_Grow(CM_TOPHITS *h);
extern int cm_tophits_CreateNextHit(CM_TOPHITS *h, CM_HIT **ret_hit);
extern int cm_tophits_SortByEvalue(CM_TOPHITS *h);
extern int cm_tophits_SortForOverlapRemoval(CM_TOPHITS *h);
+extern int cm_tophits_SortForOverlapMarkup(CM_TOPHITS *h, int do_clans_only);
extern int cm_tophits_SortByPosition(CM_TOPHITS *h);
extern int cm_tophits_Merge(CM_TOPHITS *h1, CM_TOPHITS *h2);
extern int cm_tophits_GetMaxPositionLength(CM_TOPHITS *h);
+extern int cm_tophits_GetMaxTargetLength(CM_TOPHITS *h);
extern int cm_tophits_GetMaxNameLength(CM_TOPHITS *h);
+extern int cm_tophits_GetMaxDescLength(CM_TOPHITS *h);
extern int cm_tophits_GetMaxAccessionLength(CM_TOPHITS *h);
extern int cm_tophits_GetMaxShownLength(CM_TOPHITS *h);
+extern int cm_tophits_GetMaxClanLength(CM_TOPHITS *h, ESL_KEYHASH *clan_name_kh);
extern int cm_tophits_Reuse(CM_TOPHITS *h);
extern void cm_tophits_Destroy(CM_TOPHITS *h);
extern int cm_tophits_CloneHitMostly(CM_TOPHITS *src_th, int h, CM_TOPHITS *dest_th);
extern int cm_tophits_ComputeEvalues(CM_TOPHITS *th, double eZ, int istart);
-extern int cm_tophits_RemoveOverlaps(CM_TOPHITS *th, char *errbuf);
-extern int cm_tophits_RemoveBogusTerminusHits(CM_TOPHITS *th);
+extern int cm_tophits_RemoveOrMarkOverlaps(CM_TOPHITS *th, int do_clans_only, char *errbuf);
extern int cm_tophits_UpdateHitPositions(CM_TOPHITS *th, int hit_start, int64_t seq_start, int in_revcomp);
extern int cm_tophits_SetSourceLengths(CM_TOPHITS *th, int64_t *srcL, uint64_t nseqs);
extern int cm_tophits_Threshold(CM_TOPHITS *th, CM_PIPELINE *pli);
extern int cm_tophits_Targets(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int textw);
+extern int cm_tophits_F3Targets(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli);
extern int cm_tophits_HitAlignments(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int textw);
extern int cm_tophits_HitAlignmentStatistics(FILE *ofp, CM_TOPHITS *th, int used_cyk, int used_hb, double default_tau);
extern int cm_tophits_Alignment(CM_t *cm, const CM_TOPHITS *th, char *errbuf, ESL_MSA **ret_msa);
-extern int cm_tophits_TabularTargets(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header);
+extern int cm_tophits_TabularTargets1(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header);
+extern int cm_tophits_TabularTargets2(FILE *ofp, char *qname, char *qacc, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header, ESL_KEYHASH *clan_name_kh, int skip_overlaps, char *errbuf);
+extern int cm_tophits_F3TabularTargets1(FILE *ofp, CM_TOPHITS *th, CM_PIPELINE *pli, int show_header);
extern int cm_tophits_TabularTail(FILE *ofp, const char *progname, enum cm_pipemodes_e pipemode, const char *qfile, const char *tfile, const ESL_GETOPTS *go);
extern int cm_tophits_Dump(FILE *fp, const CM_TOPHITS *th);
@@ -3275,8 +3313,8 @@ float trinside (CM_t *cm, ESL_DSQ *dsq, int L, int vroot, int vend, int i0, int
/************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/mpisupport.c b/src/mpisupport.c
index 76856ec..c0c1d0a 100644
--- a/src/mpisupport.c
+++ b/src/mpisupport.c
@@ -964,8 +964,10 @@ cm_pipeline_MPISend(CM_PIPELINE *pli, int dest, int tag, MPI_Comm comm, char **b
if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* nnodes_hmmonly */
if (MPI_Pack_size(1, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* Z */
if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* cur_cm_idx */
+ if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* cur_clan_idx */
if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* cur_seq_idx */
if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* cur_pass_idx */
+ if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* cur_hit_idx */
for(pass_idx = 0; pass_idx < NPLI_PASSES; pass_idx++) {
if (MPI_Pack_size(1, MPI_LONG_LONG_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* npli_top */
@@ -1024,6 +1026,7 @@ cm_pipeline_MPISend(CM_PIPELINE *pli, int dest, int tag, MPI_Comm comm, char **b
bogus.nnodes_hmmonly = 0;
bogus.Z = 0.0;
bogus.cur_cm_idx = -1;
+ bogus.cur_clan_idx = -1;
bogus.cur_seq_idx = -1;
bogus.cur_pass_idx = -1;
for(pass_idx = 0; pass_idx < NPLI_PASSES; pass_idx++) {
@@ -1043,6 +1046,7 @@ cm_pipeline_MPISend(CM_PIPELINE *pli, int dest, int tag, MPI_Comm comm, char **b
if (MPI_Pack(&pli->nnodes_hmmonly, 1, MPI_LONG_LONG_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&pli->Z, 1, MPI_DOUBLE, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&pli->cur_cm_idx, 1, MPI_LONG_LONG_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&pli->cur_clan_idx, 1, MPI_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&pli->cur_seq_idx, 1, MPI_LONG_LONG_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&pli->cur_pass_idx, 1, MPI_LONG_LONG_INT, *buf, n, &pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
@@ -1155,6 +1159,7 @@ cm_pipeline_MPIRecv(int source, int tag, MPI_Comm comm, char **buf, int *nalloc,
if (MPI_Unpack(*buf, n, &pos, &(pli->nnodes_hmmonly), 1, MPI_LONG_LONG_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed");
if (MPI_Unpack(*buf, n, &pos, &(pli->Z), 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed");
if (MPI_Unpack(*buf, n, &pos, &(pli->cur_cm_idx), 1, MPI_LONG_LONG_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed");
+ if (MPI_Unpack(*buf, n, &pos, &(pli->cur_clan_idx), 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed");
if (MPI_Unpack(*buf, n, &pos, &(pli->cur_seq_idx), 1, MPI_LONG_LONG_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed");
if (MPI_Unpack(*buf, n, &pos, &(pli->cur_pass_idx), 1, MPI_LONG_LONG_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "unpack failed");
@@ -1459,11 +1464,11 @@ cm_hit_MPIPackSize(CM_HIT *hit, MPI_Comm comm, int *ret_n)
CM_ALIDISPLAY *ad = hit->ad;
/* CM_HIT data */
- if (MPI_Pack_size(5, MPI_LONG, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* start, stop, seq_idx, cm_idx, srcL */
- if (MPI_Pack_size(6, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* in_rc, root, mode, pass_idx, hmmonly, glocal */
+ if (MPI_Pack_size(8, MPI_LONG, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* start, stop, seq_idx, cm_idx, hit_idx, srcL, any_oidx, win_oidx */
+ if (MPI_Pack_size(8, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* in_rc, root, mode, clan_idx, pass_idx, hmmonly, glocal, has_evalue */
if (MPI_Pack_size(2, MPI_FLOAT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* score, bias */
- if (MPI_Pack_size(2, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* pvalue, evalue */
- if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* flags */
+ if (MPI_Pack_size(4, MPI_DOUBLE, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* pvalue, evalue, any_bitE, win_bitE */
+ if (MPI_Pack_size(1, MPI_INT, comm, &sz) != 0) ESL_XEXCEPTION(eslESYS, "pack size failed"); n += sz; /* flags */
if ((status = esl_mpi_PackOptSize(hit->name, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; n += sz;
if ((status = esl_mpi_PackOptSize(hit->acc, -1, MPI_CHAR, comm, &sz)) != eslOK) goto ERROR; n += sz;
@@ -1528,16 +1533,23 @@ cm_hit_MPIPack(CM_HIT *hit, char *buf, int n, int *pos, MPI_Comm comm)
if (MPI_Pack(&hit->root, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->mode, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->cm_idx, 1, MPI_LONG, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->clan_idx, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->seq_idx, 1, MPI_LONG, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->pass_idx, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->hit_idx, 1, MPI_LONG, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->score, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->bias, 1, MPI_FLOAT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->pvalue, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->evalue, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->has_evalue, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->flags, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->srcL, 1, MPI_LONG, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->hmmonly, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if (MPI_Pack(&hit->glocal, 1, MPI_INT, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->any_oidx, 1, MPI_LONG, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->win_oidx, 1, MPI_LONG, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->any_bitE, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
+ if (MPI_Pack(&hit->win_bitE, 1, MPI_DOUBLE, buf, n, pos, comm) != 0) ESL_XEXCEPTION(eslESYS, "pack failed");
if ((status = esl_mpi_PackOpt(hit->name, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status;
if ((status = esl_mpi_PackOpt(hit->acc, -1, MPI_CHAR, buf, n, pos, comm)) != eslOK) return status;
@@ -1639,16 +1651,23 @@ cm_hit_MPIUnpack(char *buf, int n, int *pos, MPI_Comm comm, CM_HIT *hit)
if (MPI_Unpack(buf, n, pos, &hit->root, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->mode, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->cm_idx, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->clan_idx, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->seq_idx, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->pass_idx, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->hit_idx, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->score, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->bias, 1, MPI_FLOAT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->pvalue, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->evalue, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->has_evalue, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->flags, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->srcL, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->hmmonly, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if (MPI_Unpack(buf, n, pos, &hit->glocal, 1, MPI_INT, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->any_oidx, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->win_oidx, 1, MPI_LONG, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->any_bitE, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
+ if (MPI_Unpack(buf, n, pos, &hit->win_bitE, 1, MPI_DOUBLE, comm) != 0) ESL_XEXCEPTION(eslESYS, "mpi unpack failed");
if ((status = esl_mpi_UnpackOpt(buf, n, pos, (void**)&(hit->name), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR;
if ((status = esl_mpi_UnpackOpt(buf, n, pos, (void**)&(hit->acc), NULL, MPI_CHAR, comm)) != eslOK) goto ERROR;
diff --git a/src/prior.c b/src/prior.c
index cff3b67..c240922 100644
--- a/src/prior.c
+++ b/src/prior.c
@@ -3,7 +3,7 @@
*
* Original code from Eric Nawrocki. Adapted by SRE.
* SRE, Thu Apr 7 10:44:13 2005
- * SVN $Id: prior.c 3997 2012-04-20 20:18:01Z nawrockie $
+ * SVN $Id$
*/
#include "esl_config.h"
diff --git a/src/prior.h b/src/prior.h
index 843ba94..a96ac75 100644
--- a/src/prior.h
+++ b/src/prior.h
@@ -6,7 +6,7 @@
*
* Original code from Eric Nawrocki; adapted by SRE.
* SRE, Thu Apr 7 10:16:54 2005
- * SVN $Id: prior.h 3366 2010-09-17 11:46:56Z nawrockie $
+ * SVN $Id$
*/
#include <esl_dirichlet.h>
diff --git a/src/sa-Makefile.in b/src/sa-Makefile.in
index c5b0a3f..4453b41 100644
--- a/src/sa-Makefile.in
+++ b/src/sa-Makefile.in
@@ -4,8 +4,8 @@
# SVN $Id: Makefile.in 2603 2008-10-05 19:21:32Z kolbed $
#################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/sub_cm-test.c b/src/sub_cm-test.c
index 6c4fe2c..c9f9a9f 100644
--- a/src/sub_cm-test.c
+++ b/src/sub_cm-test.c
@@ -10,8 +10,8 @@
*
*****************************************************************
* Infernal - inference of RNA secondary structure alignments
- * Version 1.1.1; July 2014
- * Copyright (C) 2014 Howard Hughes Medical Institute.
+ * Version 1.1.2; July 2016
+ * Copyright (C) 2016 Howard Hughes Medical Institute.
* Other copyrights also apply. See the COPYRIGHT file for a full list.
*
* Infernal is distributed under the terms of the GNU General Public License
diff --git a/src/trcyk.c b/src/trcyk.c
index 9af5091..6aae851 100644
--- a/src/trcyk.c
+++ b/src/trcyk.c
@@ -27,7 +27,6 @@ main(int argc, char **argv)
Parsetree_t *tr;
Fancyali_t *fali;
Fancyali_t *rev_fali;
- CMConsensus_t *cons;
int do_local;
@@ -48,7 +47,6 @@ main(int argc, char **argv)
tr = NULL;
fali = NULL;
rev_fali = NULL;
- cons = NULL;
format = eslSQFILE_UNKNOWN;
do_local = TRUE;
diff --git a/testsuite/5.c.cm b/testsuite/5.c.cm
new file mode 100644
index 0000000..04188b2
--- /dev/null
+++ b/testsuite/5.c.cm
@@ -0,0 +1,4815 @@
+INFERNAL1/a [1.1 | April 2012]
+NAME tRNA
+ACC RF00005
+DESC tRNA
+STATES 227
+NODES 60
+CLEN 71
+W 218
+ALPH RNA
+RF no
+CONS yes
+MAP yes
+DATE Mon Apr 30 08:54:53 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F tRNA.cm tRNA.sto
+COM [2] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmcalibrate --mpi tRNA.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 967
+EFFN 64.453232
+CKSUM 1685224748
+NULL 0.000 0.000 0.000 0.000
+GA 24.00
+TC 24.04
+EFP7GF -6.5772 0.73469
+ECMLC 0.79302 -4.21089 2.90112 1600000 337752 0.003553
+ECMGC 0.38490 -15.21245 -3.62397 1600000 34609 0.011558
+ECMLI 0.64537 -4.35897 4.09652 1600000 281252 0.004267
+ECMGI 0.41538 -11.77572 -1.10020 1600000 33721 0.011862
+CM
+ [ ROOT 0 ] - - - - - -
+ S 0 -1 0 1 4 0 1 218 410 -10.978 -12.223 -0.031 -5.613
+ IL 1 1 2 1 4 11 38 219 411 -2.817 -4.319 -0.613 -2.698 0.000 0.000 0.000 0.000
+ IR 2 2 3 2 3 12 39 220 411 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 1 ] - 119 - A - -
+ MR 3 2 3 5 5 16 42 219 410 -11.011 -0.003 -10.827 -11.039 -11.930 1.085 -1.826 -0.113 -0.575
+ D 4 2 3 5 5 8 34 217 408 -3.401 -0.736 -4.225 -2.539 -3.651
+ IR 5 5 3 5 5 11 37 218 410 -2.562 -0.438 -6.073 -4.241 -5.347 0.000 0.000 0.000 0.000
+ [ MATP 2 ] 1 117 G C - -
+ MP 6 5 3 10 6 16 42 218 409 -12.060 -11.999 -0.003 -10.776 -11.056 -11.451 -5.257 -3.238 -3.838 1.469 -3.960 -4.395 0.510 -5.473 -6.181 3.049 -5.251 0.654 0.496 -5.677 -3.994 -3.530
+ ML 7 5 3 10 6 9 34 215 407 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 8 5 3 10 6 10 35 215 407 -7.466 -6.195 -0.958 -6.173 -1.307 -4.386 0.234 -0.467 -0.604 0.529
+ D 9 5 3 10 6 6 30 209 401 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 10 10 5 10 6 10 36 216 408 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 11 11 6 11 5 10 36 216 408 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 3 ] 2 116 g c - -
+ MP 12 11 6 16 6 16 41 216 407 -12.066 -12.006 -0.003 -10.782 -11.062 -11.457 -5.460 -4.628 -5.529 1.461 -3.223 -4.845 2.206 -4.664 -5.578 2.317 -6.079 -0.480 1.207 -5.364 -1.993 -4.350
+ ML 13 11 6 16 6 9 34 213 405 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 14 11 6 16 6 9 34 213 404 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 15 11 6 16 6 6 30 208 399 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 16 16 5 16 6 10 35 215 406 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 17 17 6 17 5 10 35 214 406 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 4 ] 3 115 g c - -
+ MP 18 17 6 22 6 15 39 214 405 -12.066 -12.006 -0.003 -10.782 -11.062 -11.457 -2.991 -3.252 -3.304 1.529 -2.993 -4.063 1.911 -3.457 -3.750 1.994 -3.635 -0.550 1.687 -3.577 -1.152 -2.580
+ ML 19 17 6 22 6 9 34 211 403 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 20 17 6 22 6 9 33 211 402 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 21 17 6 22 6 6 29 206 398 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 22 22 5 22 6 10 35 213 404 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 23 23 6 23 5 10 35 212 404 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 5 ] 4 114 g c - -
+ MP 24 23 6 28 6 14 37 212 403 -9.013 -12.006 -0.005 -10.782 -11.062 -11.457 -2.318 -3.248 -3.520 1.564 -2.588 -3.607 1.704 -3.816 -3.523 2.096 -4.340 -0.292 1.495 -3.841 -0.309 -2.742
+ ML 25 23 6 28 6 9 33 209 401 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 26 23 6 28 6 8 33 209 401 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 27 23 6 28 6 5 29 205 397 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 28 28 5 28 6 10 34 211 402 -2.756 -3.018 -0.649 -4.674 -5.450 -5.110 0.000 0.000 0.000 0.000
+ IR 29 29 6 29 5 10 34 210 402 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 6 ] 6 113 a u - -
+ MP 30 29 6 34 6 12 35 210 401 -12.066 -12.006 -0.003 -10.782 -11.062 -11.457 -2.802 -2.929 -3.236 2.045 -2.639 -3.980 1.703 -3.541 -3.409 1.608 -3.571 -0.269 1.483 -3.685 -0.323 -2.349
+ ML 31 29 6 34 6 8 32 208 399 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 32 29 6 34 6 8 32 207 399 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 33 29 6 34 6 5 29 204 396 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 34 34 5 34 6 9 33 209 400 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 35 35 6 35 5 9 33 209 400 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 7 ] 7 112 u a - -
+ MP 36 35 6 40 6 10 33 208 399 -12.066 -12.006 -0.004 -9.123 -11.062 -11.457 -3.175 -3.172 -3.309 1.654 -2.791 -4.151 1.551 -3.938 -3.781 1.406 -4.354 -0.768 2.109 -3.857 0.237 -1.273
+ ML 37 35 6 40 6 8 31 206 398 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 38 35 6 40 6 7 30 206 397 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 39 35 6 40 6 5 28 203 395 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 40 40 5 40 6 8 32 207 398 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 41 41 6 41 5 8 32 207 398 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 8 ] 8 111 g c - -
+ MP 42 41 6 46 4 8 31 206 397 -11.175 -8.859 -0.009 -8.063 -6.121 -4.131 -5.942 2.409 -7.033 -6.542 -0.625 -6.618 -5.229 2.583 -6.623 -0.535 1.615 -5.801 -4.123 -3.910
+ ML 43 41 6 46 4 7 30 205 396 -3.888 -4.071 -0.455 -2.800 0.157 -0.368 -0.428 0.451
+ MR 44 41 6 46 4 6 29 204 396 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 45 41 6 46 4 5 28 203 394 -4.568 -4.250 -2.265 -0.520
+ IL 46 46 5 46 4 7 31 205 397 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 47 47 6 47 3 7 30 205 397 -1.542 -0.728 -4.242 0.000 0.000 0.000 0.000
+ [ MATL 9 ] 9 - U - - -
+ ML 48 47 6 50 3 6 29 204 395 -7.007 -0.023 -6.990 -2.076 -4.312 -3.010 1.843
+ D 49 47 6 50 3 5 28 202 394 -6.681 -0.958 -1.072
+ IL 50 50 3 50 3 6 29 204 396 -1.826 -0.568 -4.527 0.000 0.000 0.000 0.000
+ [ MATL 10 ] 11 - A - - -
+ ML 51 50 3 53 2 5 28 203 394 -7.010 -0.011 1.376 -2.669 0.178 -3.109
+ D 52 50 3 53 2 4 27 202 393 -8.544 -0.004
+ IL 53 53 3 53 2 5 28 203 394 -2.436 -0.295 0.000 0.000 0.000 0.000
+ [ BIF 11 ] - - - - - -
+ B 54 53 3 121 55 4 27 202 393
+ [ BEGR 42 ] - - - - - -
+ S 55 54 1 56 3 0 1 168 360 -12.092 -0.001 -10.746
+ IL 56 56 2 56 3 1 2 172 364 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 43 ] 56 - a - - -
+ ML 57 56 2 59 3 1 1 168 360 -12.092 -0.217 -2.840 0.929 -0.896 -1.145 0.146
+ D 58 56 2 59 3 0 0 182 374 -6.174 -1.687 -0.566
+ IL 59 59 3 59 3 1 2 165 357 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 44 ] 57 - g - - -
+ ML 60 59 3 62 3 1 1 147 339 -5.640 -0.035 -7.889 0.193 -2.464 0.978 -0.503
+ D 61 59 3 62 3 0 0 186 378 -0.120 -4.288 -5.120
+ IL 62 62 3 62 3 1 1 187 379 -0.139 -3.869 -5.430 0.000 0.000 0.000 0.000
+ [ MATL 45 ] 82 - g - - -
+ ML 63 62 3 65 3 1 1 31 49 -1.124 -0.892 -8.860 0.551 -2.766 0.852 -0.781
+ D 64 62 3 65 3 0 0 30 48 -4.985 -0.177 -3.578
+ IL 65 65 3 65 3 1 1 31 49 -4.976 -0.051 -8.398 0.000 0.000 0.000 0.000
+ [ MATL 46 ] 86 - c - - -
+ ML 66 65 3 68 5 1 1 30 48 -11.035 -0.003 -10.850 -11.063 -11.954 -1.666 0.881 -2.788 0.764
+ D 67 65 3 68 5 0 0 28 46 -5.141 -0.681 -4.402 -2.777 -2.690
+ IL 68 68 3 68 5 1 1 30 48 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 47 ] 87 109 g c - -
+ MP 69 68 3 73 6 2 2 29 47 -12.066 -7.900 -0.008 -10.782 -11.062 -11.457 -4.338 -4.271 -5.753 2.128 -4.947 -6.390 1.123 -6.352 -6.113 2.587 -6.424 0.870 -0.003 -3.099 -2.196 -3.666
+ ML 70 68 3 73 6 1 1 27 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 71 68 3 73 6 1 1 27 45 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 72 68 3 73 6 0 0 25 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 73 73 5 73 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 74 74 6 74 5 1 1 28 46 -2.650 -0.408 -6.162 -4.329 -5.435 0.000 0.000 0.000 0.000
+ [ MATP 48 ] 88 107 c g - -
+ MP 75 74 6 79 6 2 2 27 45 -12.066 -12.006 -0.003 -10.782 -11.062 -11.457 -4.797 -4.148 -4.946 1.610 -4.313 -5.795 2.143 -5.044 -4.961 1.243 -5.516 -0.370 2.039 -4.022 -0.495 -2.107
+ ML 76 74 6 79 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 77 74 6 79 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 78 74 6 79 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 79 79 5 79 6 1 1 27 44 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 80 80 6 80 5 1 1 26 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 49 ] 89 106 g c - -
+ MP 81 80 6 85 6 2 2 25 43 -6.997 -12.006 -0.026 -10.782 -11.062 -6.807 -5.441 -3.017 -5.435 2.200 -5.771 -6.144 1.104 -5.192 -5.345 2.488 -5.099 -0.755 1.132 -5.418 -1.315 -2.689
+ ML 82 80 6 85 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 83 80 6 85 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 84 80 6 85 6 0 0 22 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 85 85 5 85 6 1 1 24 42 -3.239 -3.502 -0.433 -5.157 -5.933 -5.594 0.000 0.000 0.000 0.000
+ IR 86 86 6 86 5 1 1 24 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 50 ] 91 105 G C - -
+ MP 87 86 6 91 6 2 2 23 41 -12.054 -11.993 -0.088 -9.124 -9.700 -4.168 -6.104 -2.525 -5.923 1.744 -4.412 -6.518 -0.885 -5.441 -4.365 3.360 -6.607 -1.450 -0.228 -5.777 -2.310 -4.135
+ ML 88 86 6 91 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 89 86 6 91 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 90 86 6 91 6 0 0 21 40 -10.139 -8.837 -4.634 -5.316 -2.943 -0.319
+ IL 91 91 5 91 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 92 92 6 92 5 1 1 23 41 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 51 ] 92 104 G C - -
+ MP 93 92 6 97 4 2 2 21 38 -11.071 -11.278 -0.039 -5.270 -6.025 -2.560 -5.843 0.080 -2.638 -4.094 -1.944 -4.527 -6.282 3.730 -5.566 -1.805 -1.436 -3.445 -3.431 -3.751
+ ML 94 92 6 97 4 1 1 23 42 -3.886 -4.069 -0.456 -2.798 0.168 0.082 -0.504 0.153
+ MR 95 92 6 97 4 1 1 23 41 -5.133 -4.162 -1.713 -0.712 0.189 -0.363 0.109 0.005
+ D 96 92 6 97 4 0 0 20 38 -7.671 -7.352 -1.134 -0.907
+ IL 97 97 5 97 4 1 1 25 43 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 98 98 6 98 3 1 1 24 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 52 ] 93 - U - - -
+ ML 99 98 6 101 3 1 1 18 36 -10.261 -0.002 -10.659 -1.981 -2.560 -3.724 1.808
+ D 100 98 6 101 3 0 0 17 35 -9.568 -0.142 -3.440
+ IL 101 101 3 101 3 1 1 22 41 -1.473 -0.775 -4.173 0.000 0.000 0.000 0.000
+ [ MATL 53 ] 95 - U - - -
+ ML 102 101 3 104 3 1 1 17 34 -12.090 -0.006 -7.982 -2.089 -3.017 -2.077 1.767
+ D 103 101 3 104 3 0 0 17 36 -6.545 -1.099 -0.937
+ IL 104 104 3 104 3 1 1 22 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 54 ] 96 - C - - -
+ ML 105 104 3 107 3 1 1 16 33 -12.088 -0.003 -9.081 -0.857 1.537 -3.289 -1.172
+ D 106 104 3 107 3 0 0 16 34 -6.801 -1.079 -0.950
+ IL 107 107 3 107 3 1 1 21 39 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 55 ] 97 - g - - -
+ ML 108 107 3 110 3 1 1 15 32 -7.365 -0.019 -7.158 0.735 -2.516 0.939 -2.045
+ D 109 107 3 110 3 0 0 14 32 -6.582 -1.057 -0.974
+ IL 110 110 3 110 3 1 1 17 33 -1.748 -0.607 -4.448 0.000 0.000 0.000 0.000
+ [ MATL 56 ] 99 - A - - -
+ ML 111 110 3 113 3 1 1 14 30 -12.083 -0.049 -4.915 1.834 -3.125 -3.688 -2.037
+ D 112 110 3 113 3 0 0 14 32 -7.200 -2.713 -0.250
+ IL 113 113 3 113 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 57 ] 100 - a - - -
+ ML 114 113 3 116 3 1 1 13 29 -6.117 -0.139 -3.691 0.744 -1.208 -0.297 0.110
+ D 115 113 3 116 3 0 0 12 28 -5.138 -3.853 -0.148
+ IL 116 116 3 116 3 1 1 16 32 -1.657 -0.618 -4.994 0.000 0.000 0.000 0.000
+ [ MATL 58 ] 103 - U - - -
+ ML 117 116 3 119 2 1 1 1 1 * 0.000 -2.222 -0.662 -3.835 1.625
+ D 118 116 3 119 2 0 0 0 0 * 0.000
+ IL 119 119 3 119 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 59 ] - - - - - -
+ E 120 119 3 -1 0 0 0 0 0
+ [ BEGL 12 ] - - - - - -
+ S 121 54 1 122 1 0 8 47 65 0.000
+ [ BIF 13 ] - - - - - -
+ B 122 121 1 123 170 0 8 47 65
+ [ BEGL 14 ] - - - - - -
+ S 123 122 1 124 4 0 0 28 46 -0.004 -10.151 -9.558 -10.198
+ [ MATP 15 ] 13 33 G C - -
+ MP 124 123 1 128 6 2 2 28 46 -12.066 -12.006 -0.003 -10.782 -11.062 -11.457 -6.116 -4.021 -3.677 0.522 -7.063 -6.530 -0.236 -4.846 -4.081 3.429 -4.645 0.923 -0.838 -5.789 -3.453 -3.772
+ ML 125 123 1 128 6 1 1 27 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 126 123 1 128 6 1 1 27 45 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 127 123 1 128 6 0 0 25 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 128 128 5 128 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 129 129 6 129 5 1 1 28 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 16 ] 14 32 C G - -
+ MP 130 129 6 134 6 2 2 26 44 -12.066 -12.006 -0.004 -9.288 -11.062 -11.457 -6.391 -4.319 -5.973 -0.507 -5.273 -7.239 3.055 -5.923 -6.255 0.169 -6.770 -3.355 2.348 -3.545 -1.361 -4.289
+ ML 131 129 6 134 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 132 129 6 134 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 133 129 6 134 6 0 0 24 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 134 134 5 134 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 135 135 6 135 5 1 1 26 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 17 ] 15 31 u a - -
+ MP 136 135 6 140 6 2 2 24 42 -12.065 -12.004 -0.003 -10.781 -11.060 -11.456 -3.197 -3.903 -5.383 0.955 -2.911 -6.231 1.594 -5.342 -4.046 1.426 -5.910 -2.702 2.857 -5.539 -1.190 -4.334
+ ML 137 135 6 140 6 1 1 25 44 -6.396 -6.742 -1.118 -1.151 -6.592 -4.122 0.192 0.038 -0.475 0.153
+ MR 138 135 6 140 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 139 135 6 140 6 0 0 24 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 140 140 5 140 6 1 1 25 43 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 141 141 6 141 5 1 1 24 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 18 ] 16 30 c g - -
+ MP 142 141 6 146 4 2 2 22 40 -11.177 -11.384 -0.006 -8.118 0.483 -2.749 -2.399 0.284 -2.394 -3.425 1.990 -3.686 0.688 -0.593 -3.321 -1.425 1.781 -3.063 0.793 -0.562
+ ML 143 141 6 146 4 1 1 25 44 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 144 141 6 146 4 1 1 25 43 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 145 141 6 146 4 0 0 24 42 -4.568 -4.250 -2.265 -0.520
+ IL 146 146 5 146 4 1 1 26 45 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 147 147 6 147 3 1 1 25 44 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 19 ] 17 - A - - -
+ ML 148 147 6 150 3 1 1 19 37 -12.089 -0.014 -6.712 1.881 -4.558 -3.104 -2.662
+ D 149 147 6 150 3 0 0 20 38 -6.658 -2.171 -0.381
+ IL 150 150 3 150 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 20 ] 18 - g - - -
+ ML 151 150 3 153 3 1 1 18 36 -12.076 -0.239 -2.713 0.757 -2.921 0.829 -1.314
+ D 152 150 3 153 3 0 0 18 37 -7.682 -3.195 -0.175
+ IL 153 153 3 153 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 21 ] 19 - U - - -
+ ML 154 153 3 156 3 1 1 17 34 -1.178 -0.948 -4.648 -0.779 -0.356 -2.426 1.293
+ D 155 153 3 156 3 0 0 15 32 -10.935 -0.301 -2.413
+ IL 156 156 3 156 3 1 1 17 34 -2.344 -0.381 -4.840 0.000 0.000 0.000 0.000
+ [ MATL 22 ] 23 - G - - -
+ ML 157 156 3 159 3 1 1 15 32 -11.979 -0.001 -10.633 -1.165 -2.582 1.649 -1.996
+ D 158 156 3 159 3 0 0 14 32 -9.899 -5.412 -0.036
+ IL 159 159 3 159 3 1 1 21 39 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 23 ] 24 - G - - -
+ ML 160 159 3 162 3 1 1 14 31 -11.979 -0.255 -2.629 -1.638 -2.479 1.630 -1.310
+ D 161 159 3 162 3 0 0 13 31 -9.899 -5.412 -0.036
+ IL 162 162 3 162 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 24 ] 25 - U - - -
+ ML 163 162 3 165 3 1 1 13 25 -1.091 -0.923 -8.380 -1.390 -1.015 -2.668 1.569
+ D 164 162 3 165 3 0 0 10 22 -5.788 -0.077 -4.875
+ IL 165 165 3 165 3 1 1 12 25 -2.149 -0.388 -6.606 0.000 0.000 0.000 0.000
+ [ MATL 25 ] 29 - A - - -
+ ML 166 165 3 168 2 1 1 1 1 * 0.000 1.756 -3.153 -1.787 -2.181
+ D 167 165 3 168 2 0 0 0 0 * 0.000
+ IL 168 168 3 168 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 26 ] - - - - - -
+ E 169 168 3 -1 0 0 0 0 0
+ [ BEGR 27 ] - - - - - -
+ S 170 122 1 171 3 0 0 29 47 -12.092 -0.007 -7.747
+ IL 171 171 2 171 3 1 1 35 53 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 28 ] 34 - a - - -
+ ML 172 171 2 174 5 1 1 29 47 -7.256 -0.012 -9.618 -11.059 -11.951 0.818 -2.318 0.698 -1.272
+ D 173 171 2 174 5 0 0 28 46 -5.414 -0.538 -4.676 -3.051 -2.963
+ IL 174 174 3 174 5 1 1 29 48 -2.743 -0.379 -4.422 -6.254 -5.527 0.000 0.000 0.000 0.000
+ [ MATP 29 ] 36 55 u a - -
+ MP 175 174 3 179 6 2 2 28 46 -9.668 -9.537 -0.006 -10.781 -11.061 -11.456 -1.841 -3.067 -3.035 1.351 -2.114 -3.805 2.023 -2.153 -2.665 0.285 -4.278 0.027 2.190 -2.548 -0.313 -1.511
+ ML 176 174 3 179 6 1 1 27 45 -6.348 -6.694 -1.177 -1.103 -6.544 -4.073 0.243 -0.066 -0.407 0.147
+ MR 177 174 3 179 6 1 1 27 45 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 178 174 3 179 6 0 0 25 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 179 179 5 179 6 1 1 28 46 -2.685 -2.948 -0.691 -4.603 -5.379 -5.040 0.000 0.000 0.000 0.000
+ IR 180 180 6 180 5 1 1 27 46 -2.480 -0.468 -5.991 -4.159 -5.265 0.000 0.000 0.000 0.000
+ [ MATP 30 ] 38 53 c g - -
+ MP 181 180 6 185 6 2 2 26 44 -12.066 -12.006 -0.003 -10.782 -11.062 -11.457 -5.351 -5.336 -5.466 1.409 -4.859 -4.619 2.408 -3.621 -5.438 0.471 -5.983 -0.952 2.313 -5.624 -0.618 -2.162
+ ML 182 180 6 185 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 183 180 6 185 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 184 180 6 185 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 185 185 5 185 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 186 186 6 186 5 1 1 26 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 31 ] 39 52 g c - -
+ MP 187 186 6 191 6 2 2 24 42 -12.066 -12.006 -0.004 -10.782 -9.482 -11.457 -4.386 -2.721 -5.340 2.074 -4.306 -4.939 0.991 -5.666 -5.509 2.347 -5.960 -2.137 1.942 -5.368 -2.887 -3.059
+ ML 188 186 6 191 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 189 186 6 191 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 190 186 6 191 6 0 0 22 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 191 191 5 191 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 192 192 6 192 5 1 1 24 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 32 ] 40 51 G C - -
+ MP 193 192 6 197 6 2 2 22 40 -12.065 -12.004 -0.004 -10.781 -9.827 -11.456 -4.860 -4.004 -5.931 1.073 -5.855 -6.531 1.445 -5.227 -6.359 3.183 -6.612 0.007 -1.053 -5.791 -1.960 -2.844
+ ML 194 192 6 197 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 195 192 6 197 6 1 1 23 42 -7.103 -5.832 -1.410 -5.811 -0.945 -4.024 0.199 -0.364 -0.381 0.387
+ D 196 192 6 197 6 0 0 22 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 197 197 5 197 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 198 198 6 198 5 1 1 23 41 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 33 ] 41 50 a u - -
+ MP 199 198 6 203 4 2 2 20 38 -11.176 -11.383 -0.003 -9.798 -2.996 -2.939 -3.286 2.351 -3.279 -4.538 1.794 -4.033 -3.483 1.522 -3.697 -1.233 1.212 -3.654 -0.502 -1.749
+ ML 200 198 6 203 4 1 1 23 42 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 201 198 6 203 4 1 1 23 41 -4.901 -3.930 -1.518 -0.858 0.251 -0.082 -0.397 0.145
+ D 202 198 6 203 4 0 0 22 40 -4.568 -4.250 -2.265 -0.520
+ IL 203 203 5 203 4 1 1 25 43 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 204 204 6 204 3 1 1 24 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 34 ] 42 - C - - -
+ ML 205 204 6 207 3 1 1 17 35 -8.553 -0.005 -10.746 -2.858 1.177 -3.980 0.621
+ D 206 204 6 207 3 0 0 18 36 -6.174 -1.687 -0.566
+ IL 207 207 3 207 3 1 1 21 38 -1.578 -0.705 -4.278 0.000 0.000 0.000 0.000
+ [ MATL 35 ] 44 - U - - -
+ ML 208 207 3 210 3 1 1 16 34 -12.092 -0.001 -10.746 -6.241 -3.070 -6.997 1.949
+ D 209 207 3 210 3 0 0 18 36 -6.174 -1.687 -0.566
+ IL 210 210 3 210 3 1 1 22 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 36 ] 45 - u - - -
+ ML 211 210 3 213 3 1 1 15 33 -12.092 -0.001 -10.746 -1.753 -0.640 0.321 0.858
+ D 212 210 3 213 3 0 0 17 35 -6.174 -1.687 -0.566
+ IL 213 213 3 213 3 1 1 21 39 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 37 ] 46 - u - - -
+ ML 214 213 3 216 3 1 1 13 32 -12.092 -0.001 -10.746 0.215 -0.134 -0.406 0.232
+ D 215 213 3 216 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 216 216 3 216 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 38 ] 47 - u - - -
+ ML 217 216 3 219 3 1 1 12 30 -12.092 -0.001 -10.746 0.131 -0.099 -0.326 0.231
+ D 218 216 3 219 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 219 219 3 219 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 39 ] 48 - A - - -
+ ML 220 219 3 222 3 1 1 10 29 -12.092 -0.001 -10.746 1.608 -5.696 -0.163 -4.686
+ D 221 219 3 222 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 222 222 3 222 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 40 ] 49 - A - - -
+ ML 223 222 3 225 2 1 1 1 1 * 0.000 1.391 -0.504 -2.682 -0.955
+ D 224 222 3 225 2 0 0 0 0 * 0.000
+ IL 225 225 3 225 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 41 ] - - - - - -
+ E 226 225 3 -1 0 0 0 0 0
+//
+HMMER3/f [i1.1 | April 2012]
+NAME tRNA
+ACC RF00005
+DESC tRNA
+LENG 71
+MAXL 253
+ALPH RNA
+RF no
+MM no
+CONS yes
+CS yes
+MAP yes
+DATE Mon Apr 30 08:54:53 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F tRNA.cm tRNA.sto
+NSEQ 967
+EFFN 186.722610
+CKSUM 1685224748
+STATS LOCAL MSV -8.9378 0.73469
+STATS LOCAL VITERBI -9.6821 0.73469
+STATS LOCAL FORWARD -2.5854 0.73469
+HMM A C G U
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.35282 1.54883 1.34468 1.31539
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01069 9.17906 4.55379 1.46634 0.26236 0.00000 *
+ 1 1.69984 2.34438 0.46816 2.35147 1 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.16858 9.16858 1.46634 0.26236 0.01941 3.95153
+ 2 1.72856 1.19324 1.00255 1.88202 2 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 3 1.62358 1.37012 1.15905 1.44839 3 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 4 1.57550 1.51265 1.06955 1.47138 4 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01104 4.52122 9.17906 0.01887 3.97975 1.09861 0.40547
+ 5 1.23251 1.51643 1.35364 1.46687 6 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 6 1.53308 1.65044 1.57376 0.95477 7 u - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 7 1.04598 3.34050 0.90657 1.56386 8 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00197 9.17906 6.28600 1.46634 0.26236 1.09861 0.40547
+ 8 2.85231 4.94814 3.51731 0.09925 9 u - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03462 3.63602 4.87030 0.00782 4.85439 0.10509 2.30501
+ 9 0.42839 3.31961 1.24392 3.72864 11 a - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03089 3.49601 9.17147 0.00684 4.98779 0.02659 3.64044
+ 10 2.44306 2.97406 0.19368 3.26786 13 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 11 3.21449 0.61762 2.70354 1.03950 14 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 12 2.04344 1.67563 1.71621 0.68621 15 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 13 1.72992 1.28742 1.81997 0.95532 16 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00204 9.17906 6.24732 1.46634 0.26236 1.09861 0.40547
+ 14 0.07276 5.04973 3.62946 3.29060 17 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00888 9.17722 4.74049 1.46634 0.26236 3.03304 0.04937
+ 15 0.84069 3.64229 0.80242 2.36283 18 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.17954 9.16855 1.80641 1.46634 0.26236 4.64687 0.00964
+ 16 1.97191 1.63494 3.24749 0.46685 19 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.47839 1.04883 3.51082 0.29872 1.35388 0.18117 1.79756
+ 17 2.23329 3.26425 0.22792 2.84018 23 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01383 9.12450 4.29543 1.46634 0.26236 6.24920 0.00193
+ 18 2.61151 3.18355 0.24129 2.30736 24 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.18126 9.11088 1.79775 1.46634 0.26236 3.61531 0.02728
+ 19 2.39170 2.09849 3.34576 0.28681 25 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.84639 0.56258 6.64210 0.37080 1.17178 0.01033 4.57780
+ 20 0.15940 3.73663 2.63730 2.95735 29 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17609 9.17609 1.46634 0.26236 0.06515 2.76339
+ 21 0.81032 3.18094 0.94689 2.07312 30 a - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00099 9.17906 7.03213 1.46634 0.26236 1.09861 0.40547
+ 22 0.69973 1.74521 1.60008 2.06520 31 a - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17828 9.17828 1.46634 0.26236 0.21001 1.66379
+ 23 1.11643 2.63684 0.58203 3.16523 32 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 24 3.36752 0.35942 2.82166 1.57053 33 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00985 9.17906 4.63567 1.46634 0.26236 1.09861 0.40547
+ 25 0.79816 3.14279 0.88683 2.35683 34 g - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02228 3.82012 9.16941 0.00948 4.66372 0.02105 3.87129
+ 26 1.68254 1.22032 1.96672 0.97009 36 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00968 4.65315 9.17906 0.02151 3.84994 1.09861 0.40547
+ 27 1.76687 1.06464 2.18725 0.98870 38 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 28 1.25032 2.09410 1.11571 1.33665 39 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00099 9.17906 7.02708 1.46634 0.26236 1.09861 0.40547
+ 29 2.03533 1.70968 0.44636 3.02644 40 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00086 9.17827 7.18149 1.46634 0.26236 0.20905 1.66788
+ 30 1.01770 1.48113 1.53950 1.62605 41 a - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17840 9.17840 1.46634 0.26236 0.24023 1.54386
+ 31 3.59894 0.55931 4.38612 0.94521 42 c - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01189 4.44716 9.17906 0.01753 4.05274 1.09861 0.40547
+ 32 7.23921 3.59090 7.79912 0.02912 44 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 33 2.85390 1.84640 1.13230 0.77157 45 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 34 1.24246 1.46641 1.66669 1.23203 46 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 35 1.30572 1.44015 1.60637 1.23266 47 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 36 0.26618 5.96072 1.49795 4.88856 48 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 37 0.40660 1.72530 3.42313 2.09264 49 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 38 1.88859 1.63076 1.32020 0.95230 50 u - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 39 3.58299 0.54283 1.63881 1.62509 51 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 40 1.35790 1.11071 2.09099 1.23819 52 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 41 1.13052 2.48593 0.97945 1.52157 53 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01494 4.63852 5.26658 0.02120 3.86431 1.09861 0.40547
+ 42 1.07441 2.49675 1.14547 1.35450 55 a - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17399 9.17399 1.46634 0.26236 0.03920 3.25853
+ 43 0.71411 2.04297 2.23679 1.29489 56 a - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00343 9.17906 5.70822 1.46634 0.26236 1.09861 0.40547
+ 44 1.24222 3.31645 0.68774 1.75872 57 g - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.35012 1.23371 5.47663 2.52953 0.08305 0.06033 2.83801
+ 45 0.98432 3.56558 0.78001 1.96881 82 g - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.47554 0.97457 6.81593 0.05426 2.94100 0.04830 3.05436
+ 46 2.62658 0.76713 3.42520 0.84214 86 c - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17807 9.17807 1.46634 0.26236 0.17313 1.83903
+ 47 1.24219 1.95236 0.71974 2.49580 87 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 48 1.60765 1.26807 1.62063 1.13789 88 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 49 1.17570 1.99733 0.95903 1.75773 89 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03047 4.18660 4.21247 0.01352 4.31011 1.09861 0.40547
+ 50 1.49862 3.45496 0.38583 2.73200 91 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05669 9.16424 2.90020 1.46634 0.26236 4.98042 0.00689
+ 51 2.76338 3.69907 0.12531 3.50821 92 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02066 9.10777 3.89514 1.46634 0.26236 0.70021 0.68613
+ 52 2.78428 3.25222 4.10639 0.12435 93 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01339 4.32790 9.12414 0.01644 4.11622 0.01637 4.12060
+ 53 2.87137 3.63456 2.82001 0.15388 95 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00290 9.17839 5.87964 1.46634 0.26236 0.23762 1.55353
+ 54 1.98245 0.30203 3.78983 2.29909 96 c - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00086 9.17636 7.18565 1.46634 0.26236 0.47695 0.96936
+ 55 0.85465 3.24111 0.73057 2.92221 97 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02482 3.87251 5.59788 0.00990 4.61973 0.11539 2.21654
+ 56 0.10449 3.70552 4.13294 2.83707 99 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02838 9.17545 3.57991 1.46634 0.26236 3.63387 0.02677
+ 57 0.84801 2.29472 1.58533 1.32402 100 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11203 3.28164 2.68217 0.25732 1.48333 3.22597 0.04053
+ 58 2.99237 1.82886 4.24480 0.25503 103 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02813 9.07781 3.58909 1.46634 0.26236 0.46642 0.98683
+ 59 3.54331 0.11802 4.33140 2.66998 104 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01176 9.11648 4.45864 1.46634 0.26236 0.07032 2.68964
+ 60 2.86542 0.39879 3.23532 1.45861 105 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.16424 9.16424 1.46634 0.26236 0.01384 4.28728
+ 61 1.95664 1.03441 1.83676 1.06741 106 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 62 1.32338 1.87496 1.13635 1.34932 107 u - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01912 3.97222 9.17906 0.01092 4.52242 1.09861 0.40547
+ 63 2.74541 0.97597 1.88133 0.90001 109 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01052 4.64342 7.07821 0.02130 3.85949 1.09861 0.40547
+ 64 1.58030 1.00426 3.30860 0.93852 111 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17832 9.17832 1.46634 0.26236 0.21890 1.62660
+ 65 1.21100 1.72264 1.34762 1.33314 112 a - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 66 1.65105 1.55913 1.34975 1.08315 113 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 67 1.61858 1.21007 1.36164 1.39674 114 c - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 68 1.52317 1.28523 1.30846 1.44751 115 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 69 1.91885 1.12144 1.18740 1.50328 116 c - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00021 9.17906 9.17906 1.46634 0.26236 1.09861 0.40547
+ 70 2.35360 0.63294 2.35421 1.27663 117 c - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02351 9.17906 3.76650 1.46634 0.26236 1.09861 0.40547
+ 71 0.60663 2.78665 1.44821 1.84390 119 a - - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.00011 9.15565 * 1.46634 0.26236 0.00000 *
+//
+INFERNAL1/a [1.1 | April 2012]
+NAME Vault
+ACC RF00006
+DESC Vault RNA
+STATES 304
+NODES 83
+CLEN 100
+W 181
+ALPH RNA
+RF yes
+CONS yes
+MAP yes
+DATE Mon Apr 30 08:54:54 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F Vault.cm Vault.sto
+COM [2] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmcalibrate --mpi Vault.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 75
+EFFN 4.368496
+CKSUM 2397722235
+NULL 0.000 0.000 0.000 0.000
+GA 29.00
+TC 29.39
+NC 28.20
+EFP7GF -10.4482 0.71855
+ECMLC 0.69230 -6.00388 2.28041 1600000 371500 0.003230
+ECMGC 0.43256 -15.96507 -4.24742 1600000 63581 0.006291
+ECMLI 0.63611 -4.87878 3.73222 1600000 287121 0.004179
+ECMGI 0.45930 -10.59291 -0.39663 1600000 43242 0.009250
+CM
+ [ ROOT 0 ] - - - - - -
+ S 0 -1 0 1 4 1 1 181 278 -7.707 -7.914 -0.180 -3.205
+ IL 1 1 2 1 4 6 44 183 280 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 2 2 3 2 3 5 44 183 280 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 1 ] 1 - G - G -
+ ML 3 2 3 5 3 5 43 181 278 -8.901 -0.033 -5.591 -1.131 -2.715 1.652 -2.007
+ D 4 2 3 5 3 1 39 180 276 -6.507 -0.590 -1.623
+ IL 5 5 3 5 3 4 43 182 278 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 2 ] - 164 - U - U
+ MR 6 5 3 8 3 5 43 180 277 -8.981 -0.012 -7.299 -0.713 -1.122 -1.167 1.313
+ D 7 5 3 8 3 0 36 178 274 -6.953 -1.541 -0.626
+ IR 8 8 3 8 3 4 42 181 277 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 3 ] - 163 - U - U
+ MR 9 8 3 11 3 5 42 179 276 -9.000 -0.012 -7.318 -2.343 -1.933 -3.096 1.776
+ D 10 8 3 11 3 0 35 177 273 -6.776 -1.954 -0.448
+ IR 11 11 3 11 3 3 41 180 276 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 4 ] - 162 - U - U
+ MR 12 11 3 14 3 4 41 178 275 -9.000 -0.012 -7.318 -1.758 -1.793 -2.680 1.705
+ D 13 11 3 14 3 0 34 176 272 -6.776 -1.954 -0.448
+ IR 14 14 3 14 3 3 40 179 275 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 5 ] - 161 - U - U
+ MR 15 14 3 17 3 4 40 177 274 -9.000 -0.029 -5.783 -1.301 -1.340 -2.332 1.585
+ D 16 14 3 17 3 0 34 175 271 -6.776 -1.954 -0.448
+ IR 17 17 3 17 3 3 39 178 274 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 6 ] - 160 - c - c
+ MR 18 17 3 20 5 4 40 177 273 -7.688 -0.026 -7.503 -7.715 -8.607 -1.051 0.923 -2.017 0.459
+ D 19 17 3 20 5 0 33 174 271 -5.684 -1.039 -2.558 -4.742 -1.802
+ IR 20 20 3 20 5 2 38 177 273 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 7 ] 2 159 g c g c
+ MP 21 20 3 25 6 5 39 176 272 -9.418 -9.357 -0.017 -8.134 -8.413 -8.808 -3.404 -2.008 -3.390 0.950 -3.521 -4.102 1.701 -3.711 -3.582 2.715 -3.994 0.042 0.730 -3.386 -1.098 -2.372
+ ML 22 20 3 25 6 1 35 173 270 -6.399 -6.745 -1.459 -0.869 -6.595 -4.124 0.181 -0.365 -0.401 0.414
+ MR 23 20 3 25 6 1 34 173 270 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 24 20 3 25 6 0 30 170 267 -9.399 -8.097 -1.823 -4.576 -4.594 -0.669
+ IL 25 25 5 25 6 2 36 175 271 -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 2 37 175 271 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 8 ] 3 158 G C G C
+ MP 27 26 6 31 6 5 37 174 270 -9.436 -9.376 -0.017 -8.152 -8.432 -8.827 -3.983 -1.861 -3.897 1.435 -4.859 -4.547 -0.147 -4.446 -4.113 3.084 -4.450 1.060 -0.403 -3.834 -2.119 -2.839
+ ML 28 26 6 31 6 1 34 172 268 -6.399 -6.745 -1.115 -1.154 -6.595 -4.124 0.189 0.043 -0.478 0.153
+ MR 29 26 6 31 6 1 33 171 268 -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 29 167 264 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 31 31 5 31 6 1 35 173 269 -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 2 35 173 269 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 9 ] 4 157 c g C G
+ MP 33 32 6 37 6 5 36 172 268 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -3.868 -3.773 -3.849 0.088 -2.877 -4.562 2.755 -3.037 -3.808 0.426 -4.275 -1.643 2.229 -4.062 -0.028 -2.661
+ ML 34 32 6 37 6 1 32 170 266 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 35 32 6 37 6 1 32 169 266 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 36 32 6 37 6 0 28 166 262 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 37 37 5 37 6 1 34 171 267 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 38 38 6 38 5 1 34 171 267 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 10 ] 5 156 c g c g
+ MP 39 38 6 43 6 4 34 170 266 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -3.532 -3.492 -3.574 0.387 -1.423 -4.338 2.584 -3.374 -3.545 0.399 -4.044 -1.464 2.220 -3.765 0.232 -2.453
+ ML 40 38 6 43 6 1 31 168 264 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 41 38 6 43 6 1 31 167 264 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 42 38 6 43 6 0 28 164 261 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 43 43 5 43 6 1 32 169 265 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 44 44 6 44 5 1 32 169 265 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 11 ] 6 155 G C G C
+ MP 45 44 6 49 6 4 32 168 264 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -4.160 -2.825 -4.095 1.628 -5.107 -4.763 -0.354 -4.597 -4.219 3.153 -4.579 0.797 -0.608 -4.064 -2.340 -3.003
+ ML 46 44 6 49 6 1 30 166 263 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 47 44 6 49 6 1 30 166 262 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 48 44 6 49 6 0 27 164 260 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 49 49 5 49 6 1 31 167 264 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 50 50 6 50 5 1 31 167 263 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 12 ] 7 154 G C G C
+ MP 51 50 6 55 4 2 30 166 262 -7.707 -7.914 -0.322 -2.386 -5.770 -3.635 -6.023 -0.526 -6.940 -5.158 -1.941 -6.379 -5.006 3.797 -5.287 -0.760 -2.230 -5.155 -4.050 -4.891
+ ML 52 50 6 55 4 1 29 165 262 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 53 50 6 55 4 1 28 164 261 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 54 50 6 55 4 0 27 163 260 -4.568 -4.250 -2.265 -0.520
+ IL 55 55 5 55 4 1 30 166 262 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 56 56 6 56 3 1 29 165 262 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 13 ] 8 - C - C -
+ ML 57 56 6 59 3 1 28 164 260 -4.834 -0.281 -2.818 -1.425 1.612 -2.679 -1.273
+ D 58 56 6 59 3 0 27 163 259 -8.021 -0.401 -2.065
+ IL 59 59 3 59 3 1 29 164 261 -1.581 -0.703 -4.281 0.000 0.000 0.000 0.000
+ [ MATL 14 ] 10 - U - U -
+ ML 60 59 3 62 3 1 28 163 260 -8.491 -0.014 -7.145 -0.818 -0.895 -1.524 1.349
+ D 61 59 3 62 3 0 25 161 258 -7.698 -0.395 -2.090
+ IL 62 62 3 62 3 1 27 163 260 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 15 ] 11 - U - U -
+ ML 63 62 3 65 3 1 27 162 259 -8.681 -0.013 -7.335 -0.786 -1.323 -1.305 1.387
+ D 64 62 3 65 3 0 22 160 256 -6.174 -1.687 -0.566
+ IL 65 65 3 65 3 1 26 162 259 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 16 ] 12 - U - U -
+ ML 66 65 3 68 3 1 26 161 258 -8.681 -0.013 -7.335 -1.336 -1.294 -2.358 1.585
+ D 67 65 3 68 3 0 21 159 255 -6.174 -1.687 -0.566
+ IL 68 68 3 68 3 1 25 161 258 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 17 ] 13 - A - A -
+ ML 69 68 3 71 3 1 25 160 257 -9.034 -0.012 -7.352 1.816 -3.126 -2.170 -2.814
+ D 70 68 3 71 3 0 20 158 255 -5.620 -0.734 -1.403
+ IL 71 71 3 71 3 1 24 160 257 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 18 ] - 153 - U - U
+ MR 72 71 3 74 3 1 24 159 256 -9.034 -0.012 -7.352 -1.110 -0.036 -2.017 1.210
+ D 73 71 3 74 3 0 17 157 253 -6.390 -1.568 -0.620
+ IR 74 74 3 74 3 1 23 159 256 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 19 ] - 152 - g - u
+ MR 75 74 3 77 3 1 23 158 255 -9.034 -0.028 -5.878 -0.259 0.009 0.157 0.061
+ D 76 74 3 77 3 0 16 156 252 -6.390 -1.568 -0.620
+ IR 77 77 3 77 3 1 22 158 255 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 20 ] - 151 - U - U
+ MR 78 77 3 80 3 1 23 157 254 -9.018 -0.012 -7.336 -1.027 -0.467 -1.547 1.289
+ D 79 77 3 80 3 0 15 155 251 -6.586 -1.247 -0.815
+ IR 80 80 3 80 3 1 21 157 254 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 21 ] - 150 - C - C
+ MR 81 80 3 83 3 1 22 156 253 -9.034 -0.012 -7.352 -2.398 1.773 -3.412 -1.743
+ D 82 80 3 83 3 0 14 154 250 -6.390 -1.568 -0.620
+ IR 83 83 3 83 3 1 20 156 253 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 22 ] - 149 - G - G
+ MR 84 83 3 86 5 1 21 155 252 -7.736 -0.025 -7.552 -7.764 -8.655 -0.938 -3.003 1.666 -2.472
+ D 85 83 3 86 5 0 13 153 250 -5.352 -0.707 -2.978 -4.409 -2.404
+ IR 86 86 3 86 5 1 18 155 252 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 23 ] 14 148 G C G C
+ MP 87 86 3 91 6 2 21 154 251 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -4.058 -2.759 -3.968 0.753 -4.813 -4.408 -0.141 -4.563 -4.178 3.343 -2.616 0.470 -0.408 -2.791 -2.109 -2.956
+ ML 88 86 3 91 6 1 14 152 248 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 89 86 3 91 6 1 13 152 248 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 90 86 3 91 6 0 9 148 244 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 91 91 5 91 6 1 16 153 250 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 92 92 6 92 5 1 17 153 250 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 24 ] 15 147 C G C G
+ MP 93 92 6 97 6 2 19 152 249 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -7.061 -7.108 -6.386 -3.321 -4.912 -4.389 3.925 -6.159 -6.763 -3.157 -6.485 -5.176 -1.831 -7.090 -3.013 -5.588
+ ML 94 92 6 97 6 1 14 150 247 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 95 92 6 97 6 1 12 150 246 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 96 92 6 97 6 0 8 146 243 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 97 97 5 97 6 1 16 151 248 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 98 98 6 98 5 1 16 151 248 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 25 ] 16 146 u g u g
+ MP 99 98 6 103 6 2 18 150 247 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -2.844 -1.557 -2.958 0.481 -2.529 -3.749 1.822 -3.033 -2.991 0.548 -2.443 -1.199 1.081 -3.123 2.436 -2.043
+ ML 100 98 6 103 6 1 13 148 245 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 101 98 6 103 6 1 11 148 244 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 102 98 6 103 6 0 8 145 242 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 103 103 5 103 6 1 14 149 246 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 104 104 6 104 5 1 14 149 246 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 26 ] 17 145 c g c g
+ MP 105 104 6 109 4 2 16 148 245 -3.306 -7.914 -0.181 -6.328 -2.899 -2.949 -3.022 0.526 -1.297 -3.845 2.842 -3.039 -1.555 0.610 -3.564 -0.842 1.211 -3.183 0.293 -2.041
+ ML 106 104 6 109 4 1 12 147 243 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 107 104 6 109 4 1 9 146 243 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 108 104 6 109 4 0 8 145 241 -4.568 -4.250 -2.265 -0.520
+ IL 109 109 5 109 4 1 15 147 244 -2.463 -3.146 -0.545 -5.632 0.000 0.000 0.000 0.000
+ IR 110 110 6 110 3 1 13 147 244 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 27 ] 19 - A - A -
+ ML 111 110 6 113 5 1 15 146 243 -7.736 -0.025 -7.552 -7.764 -8.655 1.787 -2.787 -2.640 -2.036
+ D 112 110 6 113 5 0 7 144 240 -4.959 -0.803 -4.221 -2.596 -2.508
+ IL 113 113 3 113 5 1 11 146 242 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 28 ] 20 144 G C G C
+ MP 114 113 3 118 6 2 14 145 242 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -4.892 -3.253 -4.907 0.078 -5.709 -4.819 -0.939 -5.420 -2.919 3.667 -2.940 -0.898 -1.225 -4.478 -2.960 -3.861
+ ML 115 113 3 118 6 1 9 143 239 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 116 113 3 118 6 1 8 142 239 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 117 113 3 118 6 0 5 138 235 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 118 118 5 118 6 1 10 144 241 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 119 119 6 119 5 1 11 144 240 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 29 ] 21 143 c g C G
+ MP 120 119 6 124 6 2 13 143 240 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -3.901 -3.816 -3.873 0.042 -1.998 -4.574 2.856 -3.551 -3.835 0.380 -4.296 -1.695 2.122 -4.092 -0.237 -2.688
+ ML 121 119 6 124 6 1 8 141 237 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 122 119 6 124 6 1 8 140 237 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 123 119 6 124 6 0 5 137 233 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 124 124 5 124 6 1 10 142 239 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 125 125 6 125 5 1 10 142 239 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 30 ] 22 142 G C G C
+ MP 126 125 6 130 6 2 11 141 238 -9.446 -9.385 -0.017 -8.162 -8.441 -8.836 -5.089 -3.338 -5.151 0.141 -6.188 -5.052 -1.291 -5.596 -4.729 3.634 -5.046 0.321 -1.556 -4.754 -3.337 -4.033
+ ML 127 125 6 130 6 1 8 139 235 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 128 125 6 130 6 1 7 138 235 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 129 125 6 130 6 0 4 135 232 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 130 130 5 130 6 1 9 140 237 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 131 131 6 131 5 1 9 140 237 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 31 ] 23 141 G C G C
+ MP 132 131 6 136 4 2 9 139 236 -7.707 -2.696 -0.272 -6.328 -5.928 -3.679 -6.164 -0.666 -6.761 -3.229 -1.795 -6.618 -5.088 3.816 -5.307 -1.505 -2.140 -5.050 -3.910 -5.135
+ ML 133 131 6 136 4 1 7 137 233 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 134 131 6 136 4 1 5 136 232 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 135 131 6 136 4 0 4 134 231 -4.568 -4.250 -2.265 -0.520
+ IL 136 136 5 136 4 1 8 140 237 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 137 137 6 137 3 1 9 144 240 -0.322 -2.392 -6.702 0.000 0.000 0.000 0.000
+ [ MATL 32 ] 24 - U - U -
+ ML 138 137 6 140 3 1 7 133 230 -6.359 -0.027 -7.335 -1.067 -1.538 -2.305 1.573
+ D 139 137 6 140 3 0 3 131 228 -6.174 -1.687 -0.566
+ IL 140 140 3 140 3 1 7 134 230 -1.494 -0.760 -4.195 0.000 0.000 0.000 0.000
+ [ MATL 33 ] 26 - U - U -
+ ML 141 140 3 143 3 1 6 132 229 -8.681 -0.026 -6.004 -2.054 -2.140 -2.976 1.768
+ D 142 140 3 143 3 0 3 130 227 -6.174 -1.687 -0.566
+ IL 143 143 3 143 3 1 6 133 229 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 34 ] 27 - A - A -
+ ML 144 143 3 146 3 1 5 131 228 -8.667 -0.013 -7.321 1.179 -0.329 -1.603 -0.711
+ D 145 143 3 146 3 0 2 129 226 -6.366 -1.879 -0.482
+ IL 146 146 3 146 3 1 5 132 229 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 35 ] 28 - C - C -
+ ML 147 146 3 149 3 1 4 131 227 -9.021 -0.254 -2.648 -2.177 1.710 -3.179 -1.336
+ D 148 146 3 149 3 0 2 129 225 -5.740 -0.854 -1.225
+ IL 149 149 3 149 3 1 6 131 228 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 36 ] - 123 - C - C
+ MR 150 149 3 152 3 1 7 130 226 -8.781 -0.033 -5.625 -2.382 1.729 -3.220 -1.376
+ D 151 149 3 152 3 0 0 127 224 -8.044 -2.698 -0.248
+ IR 152 152 3 152 3 1 5 130 227 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 37 ] - 122 - a - A
+ MR 153 152 3 155 5 1 7 129 225 -7.495 -0.029 -7.310 -7.523 -8.414 0.997 -0.745 -0.910 -0.191
+ D 154 152 3 155 5 0 0 127 223 -6.491 -0.770 -1.918 -5.548 -3.103
+ IR 155 155 3 155 5 1 3 129 225 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 38 ] 29 121 u a u a
+ MP 156 155 3 160 6 2 8 128 224 -9.389 -9.328 -0.017 -8.104 -8.384 -8.779 -2.409 -2.530 -2.559 0.677 -2.271 -3.381 1.556 -2.728 -2.601 0.712 -3.148 -0.940 1.819 -1.940 1.816 -0.456
+ ML 157 155 3 160 6 1 2 126 223 -6.901 -7.247 -0.820 -1.431 -7.097 -4.627 -0.247 -0.532 -0.874 0.941
+ MR 158 155 3 160 6 1 2 125 222 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 159 155 3 160 6 0 0 121 217 -9.196 -7.894 -3.691 -4.373 -4.391 -0.285
+ IL 160 160 5 160 6 1 3 127 223 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 161 161 6 161 5 1 3 127 223 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 39 ] 30 120 U A u a
+ MP 162 161 6 166 6 2 7 126 222 -9.431 -9.371 -0.017 -8.147 -8.427 -8.822 -4.153 -4.253 -4.294 -0.958 -3.417 -5.112 -0.013 -4.410 -4.313 -0.909 -4.866 -2.594 3.674 -2.944 -1.521 -2.817
+ ML 163 161 6 166 6 1 2 124 220 -6.367 -6.713 -1.153 -1.122 -6.563 -4.092 0.217 -0.364 -0.362 0.359
+ MR 164 161 6 166 6 1 1 123 220 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 165 161 6 166 6 0 0 119 216 -9.196 -7.894 -3.691 -4.373 -4.391 -0.285
+ IL 166 166 5 166 6 1 2 125 221 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 167 167 6 167 5 1 3 125 221 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 40 ] 31 119 C G C G
+ MP 168 167 6 172 6 2 6 124 220 -9.439 -9.378 -0.017 -8.154 -8.434 -8.829 -5.643 -5.729 -5.457 -2.226 -1.769 -3.327 3.839 -5.409 -5.642 -2.143 -5.784 -3.958 -1.192 -5.849 -2.507 -4.606
+ ML 169 167 6 172 6 1 1 122 218 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 170 167 6 172 6 1 1 121 218 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 171 167 6 172 6 0 0 118 214 -9.196 -7.894 -3.691 -4.373 -4.391 -0.285
+ IL 172 172 5 172 6 1 2 123 220 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 173 173 6 173 5 1 2 123 219 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 41 ] 32 118 g c g c
+ MP 174 173 6 178 6 2 5 122 218 -9.439 -9.378 -0.017 -8.154 -8.434 -8.829 -2.037 -0.375 -2.204 1.092 -1.921 -1.342 1.044 -2.579 -2.295 2.207 -2.826 -0.183 0.969 -0.253 -0.442 -1.430
+ ML 175 173 6 178 6 1 1 120 217 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 176 173 6 178 6 1 1 120 216 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 177 173 6 178 6 0 0 117 213 -9.196 -7.894 -3.691 -4.373 -4.391 -0.285
+ IL 178 178 5 178 6 1 2 121 218 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 179 179 6 179 5 1 2 121 217 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 42 ] 33 117 a u a u
+ MP 180 179 6 184 4 2 4 120 216 -7.693 -7.900 -0.031 -6.314 -1.816 -1.873 -2.016 1.612 -2.014 -2.340 1.242 0.029 -2.064 1.184 -2.604 0.321 1.092 -2.135 -0.222 0.224
+ ML 181 179 6 184 4 1 1 119 215 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 182 179 6 184 4 1 1 118 214 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 183 179 6 184 4 0 0 116 213 -4.706 -4.387 -2.403 -0.464
+ IL 184 184 5 184 4 1 1 120 216 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 185 185 6 185 3 1 1 119 216 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 43 ] 34 - c - a -
+ ML 186 185 6 188 3 1 3 118 214 -8.667 -0.013 -7.321 0.088 0.206 -0.562 0.146
+ D 187 185 6 188 3 0 0 115 212 -6.366 -1.879 -0.482
+ IL 188 188 3 188 3 1 1 118 215 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 44 ] 35 - u - a -
+ ML 189 188 3 191 3 1 2 117 213 -8.667 -0.013 -7.321 0.324 -0.462 -0.457 0.371
+ D 190 188 3 191 3 0 0 114 211 -6.366 -1.879 -0.482
+ IL 191 191 3 191 3 1 1 117 214 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 45 ] 36 - a - a -
+ ML 192 191 3 194 3 1 2 116 212 -8.667 -0.013 -7.321 0.476 -0.269 -0.412 0.039
+ D 193 191 3 194 3 0 0 113 210 -6.366 -1.879 -0.482
+ IL 194 194 3 194 3 1 1 116 213 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 46 ] 37 - u - a -
+ ML 195 194 3 197 3 1 2 115 211 -8.667 -0.013 -7.321 0.327 -0.498 -0.406 0.359
+ D 196 194 3 197 3 0 0 112 209 -6.366 -1.879 -0.482
+ IL 197 197 3 197 3 1 1 115 212 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 47 ] 38 - u - u -
+ ML 198 197 3 200 3 1 1 114 210 -8.667 -0.013 -7.321 0.115 0.014 -0.900 0.456
+ D 199 197 3 200 3 0 0 111 208 -6.366 -1.879 -0.482
+ IL 200 200 3 200 3 1 1 114 211 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 48 ] 39 - a - a -
+ ML 201 200 3 203 3 1 1 113 209 -8.667 -0.013 -7.321 0.165 -0.170 -0.132 0.107
+ D 202 200 3 203 3 0 0 110 207 -6.366 -1.879 -0.482
+ IL 203 203 3 203 3 1 1 113 210 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 49 ] 40 - u - a -
+ ML 204 203 3 206 3 1 1 112 208 -8.667 -0.013 -7.321 0.298 -0.282 -0.564 0.347
+ D 205 203 3 206 3 0 0 109 206 -6.366 -1.879 -0.482
+ IL 206 206 3 206 3 1 1 113 209 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 50 ] 41 - a - a -
+ ML 207 206 3 209 3 1 1 111 207 -8.667 -0.013 -7.321 0.275 -0.218 -0.250 0.124
+ D 208 206 3 209 3 0 0 108 205 -6.366 -1.879 -0.482
+ IL 209 209 3 209 3 1 1 112 208 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 51 ] 42 - a - a -
+ ML 210 209 3 212 3 1 1 110 206 -8.667 -0.013 -7.321 0.566 -0.320 -0.700 0.141
+ D 211 209 3 212 3 0 0 107 204 -6.366 -1.879 -0.482
+ IL 212 212 3 212 3 1 1 111 207 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 52 ] 43 - u - a -
+ ML 213 212 3 215 3 1 1 109 205 -8.667 -0.013 -7.321 0.254 -0.169 -0.632 0.348
+ D 214 212 3 215 3 0 0 106 203 -6.366 -1.879 -0.482
+ IL 215 215 3 215 3 1 1 110 206 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 53 ] 44 - u - u -
+ ML 216 215 3 218 3 1 1 108 205 -8.667 -0.013 -7.321 0.199 -0.217 -0.533 0.380
+ D 217 215 3 218 3 0 0 105 202 -6.366 -1.879 -0.482
+ IL 218 218 3 218 3 1 1 109 205 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 54 ] 45 - u - u -
+ ML 219 218 3 221 3 1 1 107 204 -8.667 -0.013 -7.321 -0.041 -0.331 -0.320 0.517
+ D 220 218 3 221 3 0 0 104 201 -6.366 -1.879 -0.482
+ IL 221 221 3 221 3 1 1 108 204 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 55 ] 46 - u - u -
+ ML 222 221 3 224 3 1 1 106 203 -8.667 -0.013 -7.321 0.103 0.047 -0.633 0.320
+ D 223 221 3 224 3 0 0 103 200 -6.366 -1.879 -0.482
+ IL 224 224 3 224 3 1 1 107 203 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 56 ] 47 - a - a -
+ ML 225 224 3 227 3 1 1 105 202 -8.667 -0.013 -7.321 0.430 -0.549 -0.632 0.406
+ D 226 224 3 227 3 0 0 102 199 -6.366 -1.879 -0.482
+ IL 227 227 3 227 3 1 1 106 202 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 57 ] 48 - u - u -
+ ML 228 227 3 230 3 1 1 104 201 -8.667 -0.013 -7.321 0.157 -0.190 -0.539 0.401
+ D 229 227 3 230 3 0 0 101 198 -6.366 -1.879 -0.482
+ IL 230 230 3 230 3 1 1 105 201 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 58 ] 49 - u - u -
+ ML 231 230 3 233 3 1 1 103 200 -8.667 -0.013 -7.321 0.062 -0.033 -0.736 0.463
+ D 232 230 3 233 3 0 0 100 197 -6.366 -1.879 -0.482
+ IL 233 233 3 233 3 1 1 104 200 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 59 ] 50 - u - u -
+ ML 234 233 3 236 3 1 1 102 199 -8.667 -0.013 -7.321 0.111 -0.501 -0.744 0.693
+ D 235 233 3 236 3 0 0 99 196 -6.366 -1.879 -0.482
+ IL 236 236 3 236 3 1 1 103 199 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 60 ] 51 - u - a -
+ ML 237 236 3 239 3 1 1 101 198 -8.667 -0.013 -7.321 0.164 0.140 -0.988 0.348
+ D 238 236 3 239 3 0 0 98 195 -6.366 -1.879 -0.482
+ IL 239 239 3 239 3 1 1 102 198 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 61 ] 52 - u - a -
+ ML 240 239 3 242 3 1 1 100 197 -8.667 -0.013 -7.321 0.081 0.123 -0.754 0.333
+ D 241 239 3 242 3 0 0 97 193 -6.366 -1.879 -0.482
+ IL 242 242 3 242 3 1 1 101 197 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 62 ] 53 - u - a -
+ ML 243 242 3 245 3 1 1 99 196 -8.667 -0.024 -6.167 0.059 0.054 -0.244 0.105
+ D 244 242 3 245 3 0 0 96 192 -6.366 -1.879 -0.482
+ IL 245 245 3 245 3 1 1 100 196 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 63 ] 54 - u - u -
+ ML 246 245 3 248 3 1 1 98 195 -8.656 -0.074 -4.401 0.169 -0.325 -0.536 0.473
+ D 247 245 3 248 3 0 0 94 191 -6.505 -2.018 -0.430
+ IL 248 248 3 248 3 1 1 99 195 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 64 ] 55 - a - a -
+ ML 249 248 3 251 3 1 1 97 194 -8.596 -0.067 -4.551 0.235 -0.081 -0.340 0.120
+ D 250 248 3 251 3 0 0 92 189 -7.078 -2.591 -0.275
+ IL 251 251 3 251 3 1 1 98 194 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 65 ] 56 - u - u -
+ ML 252 251 3 254 3 1 1 96 193 -8.543 -0.014 -7.197 0.066 0.041 -0.515 0.293
+ D 253 251 3 254 3 0 0 91 187 -7.430 -2.943 -0.211
+ IL 254 254 3 254 3 1 1 97 193 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 66 ] 57 - a - a -
+ ML 255 254 3 257 3 1 1 95 192 -8.543 -0.057 -4.801 0.192 -0.028 -0.416 0.172
+ D 256 254 3 257 3 0 0 90 186 -7.430 -2.943 -0.211
+ IL 257 257 3 257 3 1 1 96 192 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 67 ] 58 - u - a -
+ ML 258 257 3 260 3 1 1 95 191 -8.500 -0.043 -5.241 0.018 0.144 -0.439 0.195
+ D 259 257 3 260 3 0 0 88 185 -7.654 -3.167 -0.178
+ IL 260 260 3 260 3 1 1 95 191 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 68 ] 59 - u - u -
+ ML 261 260 3 263 3 1 1 94 190 -8.472 -0.035 -5.562 0.013 0.036 -0.509 0.337
+ D 262 260 3 263 3 0 0 87 183 -7.783 -3.296 -0.162
+ IL 263 263 3 263 3 1 1 94 191 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 69 ] 60 - u - u -
+ ML 264 263 3 266 3 1 1 93 189 -8.451 -0.055 -4.863 -0.088 -0.264 -0.190 0.433
+ D 265 263 3 266 3 0 0 85 182 -7.867 -3.380 -0.153
+ IL 266 266 3 266 3 1 1 93 190 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 70 ] 61 - u - u -
+ ML 267 266 3 269 3 1 1 92 188 -8.412 -0.146 -3.424 -0.066 -0.061 -0.497 0.462
+ D 268 266 3 269 3 0 0 83 180 -8.016 -3.529 -0.137
+ IL 269 269 3 269 3 1 1 93 189 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 71 ] 62 - u - a -
+ ML 270 269 3 272 3 1 1 91 188 -8.283 -0.070 -4.499 0.063 -0.146 -0.474 0.413
+ D 271 269 3 272 3 0 0 81 178 -8.396 -3.909 -0.104
+ IL 272 272 3 272 3 1 1 92 188 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 72 ] 63 - c - a -
+ ML 273 272 3 275 3 1 1 91 187 -8.230 -0.102 -3.950 -0.069 0.183 -0.311 0.145
+ D 274 272 3 275 3 0 0 79 175 -8.519 -4.032 -0.095
+ IL 275 275 3 275 3 1 1 91 188 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 73 ] 64 - u - u -
+ ML 276 275 3 278 3 1 1 90 186 -8.146 -0.092 -4.097 -0.141 -0.067 -0.356 0.441
+ D 277 275 3 278 3 0 0 75 171 -8.687 -4.200 -0.084
+ IL 278 278 3 278 3 1 1 90 187 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 74 ] 65 - u - u -
+ ML 279 278 3 281 3 1 1 89 186 -0.992 -1.036 -6.727 -0.236 -0.009 -0.317 0.439
+ D 280 278 3 281 3 0 0 60 156 -8.812 -0.169 -3.204
+ IL 281 281 3 281 3 1 1 92 188 -0.276 -2.568 -7.578 0.000 0.000 0.000 0.000
+ [ MATL 75 ] 110 - u - u -
+ ML 282 281 3 284 3 1 1 19 38 -8.681 -0.013 -7.335 -0.050 -0.085 -0.342 0.381
+ D 283 281 3 284 3 0 0 19 38 -6.174 -1.687 -0.566
+ IL 284 284 3 284 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 76 ] 111 - u - g -
+ ML 285 284 3 287 3 1 1 18 37 -8.681 -0.013 -7.335 0.010 -0.217 0.056 0.128
+ D 286 284 3 287 3 0 0 18 37 -6.174 -1.687 -0.566
+ IL 287 287 3 287 3 1 1 22 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 77 ] 112 - g - g -
+ ML 288 287 3 290 3 1 1 17 36 -8.681 -0.013 -7.335 -0.133 -0.538 0.438 0.062
+ D 289 287 3 290 3 0 0 17 35 -6.174 -1.687 -0.566
+ IL 290 290 3 290 3 1 1 21 39 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 78 ] 113 - g - g -
+ ML 291 290 3 293 3 1 1 16 34 -8.681 -0.013 -7.335 -0.195 -0.745 0.546 0.098
+ D 292 290 3 293 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 293 293 3 293 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 79 ] 114 - G - G -
+ ML 294 293 3 296 3 1 1 14 33 -8.681 -0.013 -7.335 -0.505 -1.312 1.184 -0.690
+ D 295 293 3 296 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 296 296 3 296 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 80 ] 115 - G - G -
+ ML 297 296 3 299 3 1 1 13 31 -8.681 -0.013 -7.335 -2.020 -3.750 1.835 -3.177
+ D 298 296 3 299 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 299 299 3 299 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 81 ] 116 - U - U -
+ ML 300 299 3 302 2 1 1 1 1 * 0.000 -0.669 -0.946 -1.933 1.373
+ D 301 299 3 302 2 0 0 0 0 * 0.000
+ IL 302 302 3 302 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 82 ] - - - - - -
+ E 303 302 3 -1 0 0 0 0 0
+//
+HMMER3/f [i1.1 | April 2012]
+NAME Vault
+ACC RF00006
+DESC Vault RNA
+LENG 100
+MAXL 365
+ALPH RNA
+RF yes
+MM no
+CONS yes
+CS yes
+MAP yes
+DATE Mon Apr 30 08:54:54 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F Vault.cm Vault.sto
+NSEQ 75
+EFFN 6.824398
+CKSUM 2397722235
+STATS LOCAL MSV -9.1834 0.71855
+STATS LOCAL VITERBI -10.0399 0.71855
+STATS LOCAL FORWARD -3.5401 0.71855
+HMM A C G U
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.60500 1.33501 1.37221 1.26440
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15638 4.56837 2.00697 1.46634 0.26236 0.00000 *
+ 1 2.33676 3.59062 0.18886 3.03914 1 g G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02397 4.43596 4.43596 1.46634 0.26236 0.25235 1.50047
+ 2 2.00568 1.51044 0.66364 2.04295 2 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02127 4.55442 4.55442 1.46634 0.26236 0.61869 0.77360
+ 3 1.64787 2.92405 0.36893 2.77504 3 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 4 2.72521 0.77290 2.35878 0.97217 4 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 5 2.48617 0.85130 2.37225 0.92473 5 c c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 6 1.55078 3.13717 0.36662 2.96733 6 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 7 3.34032 4.36823 0.06392 4.28145 7 G G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.17925 4.56837 1.87255 1.46634 0.26236 1.09861 0.40547
+ 8 2.67382 0.17360 3.74830 2.70573 8 c C - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.27444 3.36649 1.58233 0.59691 0.79964 0.17173 1.84648
+ 9 2.15002 2.15279 2.63443 0.36298 10 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02539 4.37909 4.37909 1.46634 0.26236 0.10751 2.28347
+ 10 2.10505 2.56436 2.40804 0.34080 11 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 11 2.55906 2.47905 3.40233 0.21629 12 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 12 0.08769 4.00127 3.11700 3.84542 13 A A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 13 2.33776 3.05147 0.22886 2.80139 14 G G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 14 5.39335 0.02089 5.41309 4.45055 15 C C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 15 2.38003 1.49968 2.41002 0.52014 16 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 16 2.41460 0.58497 1.98832 1.52994 17 c c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11557 2.31502 4.56837 0.19828 1.71555 1.09861 0.40547
+ 17 0.10273 3.71589 3.65587 3.04791 19 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 18 2.99950 3.84126 0.10004 3.73303 20 G G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 19 2.78165 0.68097 2.40424 1.07411 21 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 20 2.81964 3.93402 0.10713 3.79875 22 G G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 21 3.46156 3.96311 0.06577 4.32232 23 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 22 2.29900 2.73969 3.37299 0.22219 24 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03184 3.86477 4.56837 0.80370 0.59360 1.09861 0.40547
+ 23 3.12810 3.22733 3.84891 0.11067 26 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03866 4.56837 3.59201 1.46634 0.26236 1.09861 0.40547
+ 24 0.48670 1.59705 2.80642 2.10016 27 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 25 3.26756 0.14018 4.01503 2.59485 28 c C - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 26 2.26859 1.73509 2.18766 0.49761 29 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 27 3.72936 3.25820 3.69999 0.09123 30 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 28 4.30192 0.06226 4.27350 3.41464 31 C C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 29 1.58279 1.84789 0.88423 1.49610 32 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 30 1.37833 1.42549 1.42576 1.31944 33 a a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 31 1.34730 1.18613 1.78941 1.31827 34 c a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 32 1.15096 1.73416 1.70970 1.12025 35 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 33 1.03457 1.55937 1.67729 1.39646 36 a a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 34 1.14929 1.76414 1.66855 1.12922 37 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 35 1.31474 1.34695 2.07237 1.06265 38 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 36 1.28648 1.47846 1.45008 1.34240 39 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 37 1.17161 1.58375 1.79571 1.14282 40 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 38 1.19527 1.52013 1.54484 1.32671 41 a a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 39 0.96225 1.60821 1.91378 1.30859 42 a a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 40 1.20629 1.49176 1.85006 1.14417 43 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 41 1.25184 1.53084 1.76714 1.11826 44 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 42 1.45326 1.62427 1.58846 1.00814 45 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 43 1.33118 1.31658 1.84693 1.17097 46 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 44 1.06571 1.81153 1.85433 1.09197 47 a a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 45 1.28611 1.50913 1.77079 1.10155 48 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 46 1.36077 1.38442 1.92962 1.05594 49 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 47 1.31426 1.77611 1.93455 0.87337 50 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 48 1.27591 1.24464 2.15321 1.14990 51 a a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 49 1.34737 1.25706 1.94755 1.16167 52 c a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 50 1.37519 1.30062 1.53522 1.34924 53 c a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02635 4.55105 4.16992 1.46634 0.26236 1.53789 0.24186
+ 51 1.27477 1.62248 1.76761 1.04312 54 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.08723 4.54614 2.61826 1.46634 0.26236 1.63290 0.21736
+ 52 1.22726 1.40907 1.61471 1.33337 55 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04896 4.48179 3.31125 1.46634 0.26236 2.39732 0.09537
+ 53 1.36396 1.31842 1.74997 1.19397 56 c u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02348 4.45631 4.45631 1.46634 0.26236 2.58153 0.07867
+ 54 1.26143 1.36881 1.67454 1.29118 57 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06317 4.45631 3.00360 1.46634 0.26236 2.58153 0.07867
+ 55 1.40760 1.23228 1.68869 1.27698 58 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04517 4.41757 3.43873 1.46634 0.26236 2.80288 0.06255
+ 56 1.40749 1.32199 1.74395 1.15897 59 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04179 4.39732 3.55368 1.46634 0.26236 2.89886 0.05666
+ 57 1.49678 1.56461 1.48568 1.07695 60 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05717 4.38088 3.14541 1.46634 0.26236 2.96930 0.05270
+ 58 1.47320 1.40073 1.72975 1.05825 61 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.08453 4.34987 2.68613 1.46634 0.26236 3.08732 0.04670
+ 59 1.36215 1.47001 1.71553 1.09631 62 u a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05112 4.29305 3.31949 1.46634 0.26236 3.26565 0.03892
+ 60 1.48891 1.19427 1.58458 1.32266 63 g a - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07836 4.27028 2.79051 1.46634 0.26236 3.32664 0.03657
+ 61 1.54317 1.39928 1.61576 1.07651 64 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07674 4.22171 2.82693 1.46634 0.26236 3.44159 0.03254
+ 62 1.63457 1.34863 1.58326 1.07862 65 g u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 1.03649 0.46212 4.17617 2.85091 0.05953 0.06013 2.84114
+ 63 1.46452 1.41963 1.60683 1.11937 110 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 64 1.41887 1.51516 1.30201 1.32330 111 g g - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 65 1.54661 1.77909 1.00902 1.37175 112 g g - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 66 1.60331 1.96204 0.92591 1.33930 113 g g - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 67 1.88210 2.43726 0.46802 2.00926 114 g G - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 68 3.04372 4.45620 0.07986 4.04603 115 g G - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 69 1.97424 2.18641 3.05334 0.35437 116 u U - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03866 4.56837 3.59201 1.46634 0.26236 1.09861 0.40547
+ 70 1.83136 1.75795 1.61819 0.75684 117 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 71 1.97336 0.68912 1.85105 1.59987 118 c c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02134 4.55105 4.55105 1.46634 0.26236 1.53789 0.24186
+ 72 3.01631 3.96797 0.08498 4.29943 119 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02736 4.55105 4.10855 1.46634 0.26236 1.53789 0.24186
+ 73 0.10011 3.75477 3.09940 3.62024 120 a a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05607 4.54516 3.12558 1.46634 0.26236 1.65084 0.21305
+ 74 1.33734 2.24781 0.75474 1.82204 121 g a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10230 4.51130 2.45046 1.46634 0.26236 2.12187 0.12761
+ 75 0.62675 1.96425 2.11771 1.58422 122 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03623 4.43304 3.74228 1.46634 0.26236 2.24066 0.11248
+ 76 3.59045 0.11896 4.13772 2.67925 123 c C - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.29135 1.42373 4.42854 2.39973 0.09513 0.13741 2.05268
+ 77 4.43913 0.07195 4.22902 3.14536 141 C C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 78 3.98274 0.19775 3.76159 1.98382 142 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 79 1.17988 2.55830 0.62301 2.53933 143 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 80 3.58758 0.14094 3.39021 2.65796 144 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 81 1.70520 2.40041 0.49812 2.12098 145 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 82 2.15682 2.43308 0.34483 2.42813 146 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 83 4.64244 5.24279 0.01963 5.39934 147 G G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 84 3.17532 0.34460 2.70639 1.69860 148 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 85 2.15006 3.86806 0.18280 3.51710 149 g G - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 86 3.42539 0.10401 4.17946 2.97701 150 c C - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02753 4.56837 4.08778 1.46634 0.26236 1.09861 0.40547
+ 87 2.36256 1.75062 2.63600 0.41475 151 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02110 4.56194 4.56194 1.46634 0.26236 0.80507 0.59250
+ 88 1.66317 1.32935 1.21754 1.38688 152 c u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 89 2.43100 1.39213 3.13237 0.47821 153 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 90 4.40387 0.09585 4.23402 2.73838 154 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 91 3.21835 0.53845 2.94472 1.12790 155 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 92 1.06136 2.55177 0.74672 2.28130 156 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02097 4.56837 4.56837 1.46634 0.26236 1.09861 0.40547
+ 93 1.12469 2.51816 0.67503 2.45922 157 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03510 4.56837 3.72472 1.46634 0.26236 1.09861 0.40547
+ 94 3.05247 0.56697 2.76005 1.13250 158 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03571 4.55453 3.70648 1.46634 0.26236 1.46437 0.26295
+ 95 2.27198 0.75802 1.42268 1.67540 159 c c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02157 4.54038 4.54038 1.46634 0.26236 1.73341 0.19441
+ 96 2.36749 0.65656 3.12317 1.06818 160 c c - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02157 4.54038 4.54038 1.46634 0.26236 0.88976 0.52891
+ 97 2.52989 2.53055 3.38304 0.21471 161 u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02127 4.55442 4.55442 1.46634 0.26236 1.46674 0.26224
+ 98 2.89573 2.91496 3.61522 0.14662 162 u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02127 4.55442 4.55442 1.46634 0.26236 1.46674 0.26224
+ 99 3.44497 2.99775 3.96478 0.10622 163 u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05250 4.55442 3.20328 1.46634 0.26236 1.46674 0.26224
+ 100 2.04565 2.36393 2.28801 0.39277 164 u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01103 4.51294 * 1.46634 0.26236 0.00000 *
+//
+INFERNAL1/a [1.1 | April 2012]
+NAME snR75
+ACC RF01185
+DESC Small nucleolar RNA snR75
+STATES 268
+NODES 90
+CLEN 88
+W 177
+ALPH RNA
+RF yes
+CONS yes
+MAP yes
+DATE Mon Apr 30 08:55:03 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F snR75.cm snR75.sto
+COM [2] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmcalibrate --mpi snR75.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 62
+EFFN 4.939774
+CKSUM 83182668
+NULL 0.000 0.000 0.000 0.000
+GA 35.00
+TC 38.64
+NC 33.63
+EFP7GF -9.5719 0.71844
+ECMLC 0.71904 -9.37221 -0.69475 1600000 615097 0.001951
+ECMGC 0.38387 -15.89791 -4.70763 1600000 29352 0.013628
+ECMLI 0.57223 -8.93105 0.94674 1600000 341971 0.003509
+ECMGI 0.42933 -8.01800 1.88721 1600000 28115 0.014227
+CM
+ [ ROOT 0 ] - - - - - -
+ S 0 -1 0 1 4 1 1 177 273 -7.839 -8.046 -0.071 -4.648
+ IL 1 1 2 1 4 13 44 179 275 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 2 2 3 2 3 13 44 179 274 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 1 ] 1 - u - u -
+ ML 3 2 3 5 3 13 43 177 273 -6.120 -0.042 -6.120 0.067 -0.307 -0.781 0.643
+ D 4 2 3 5 3 9 40 175 271 -12.248 -0.765 -1.282
+ IL 5 5 3 5 3 14 45 183 279 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 2 ] 2 - u - u -
+ ML 6 5 3 8 3 12 42 176 272 -3.797 -0.130 -6.158 -0.283 0.242 -0.935 0.558
+ D 7 5 3 8 3 8 38 173 269 -11.551 -1.585 -0.585
+ IL 8 8 3 8 3 13 43 176 272 -1.769 -0.501 -12.537 0.000 0.000 0.000 0.000
+ [ MATL 3 ] 5 - a - a -
+ ML 9 8 3 11 3 11 41 175 271 -4.290 -0.097 -6.158 0.515 -0.419 -0.145 -0.124
+ D 10 8 3 11 3 7 37 172 268 -11.551 -1.585 -0.585
+ IL 11 11 3 11 3 12 42 176 272 -0.777 -1.264 -12.668 0.000 0.000 0.000 0.000
+ [ MATL 4 ] 9 - u - u -
+ ML 12 11 3 14 3 11 40 174 269 -6.158 -0.041 -6.158 -0.004 -0.587 -0.948 0.863
+ D 13 11 3 14 3 7 37 171 267 -11.551 -1.585 -0.585
+ IL 14 14 3 14 3 12 42 179 275 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 5 ] 10 - G - G -
+ ML 15 14 3 17 3 10 39 172 268 -6.158 -0.041 -6.158 -0.496 -0.966 1.146 -0.822
+ D 16 14 3 17 3 6 36 170 265 -11.551 -1.585 -0.585
+ IL 17 17 3 17 3 11 41 178 274 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 6 ] 11 - A - A -
+ ML 18 17 3 20 3 9 39 171 267 -6.158 -0.041 -6.158 1.500 -1.460 -1.157 -1.471
+ D 19 17 3 20 3 6 35 168 264 -11.551 -1.585 -0.585
+ IL 20 20 3 20 3 10 40 177 273 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 7 ] 12 - U - U -
+ ML 21 20 3 23 3 8 38 170 266 -6.158 -0.041 -6.158 -2.279 -1.983 -1.745 1.697
+ D 22 20 3 23 3 5 35 167 263 -11.551 -1.585 -0.585
+ IL 23 23 3 23 3 10 39 176 272 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 8 ] 13 - G - G -
+ ML 24 23 3 26 3 7 37 169 265 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 25 23 3 26 3 5 34 166 262 -11.551 -1.585 -0.585
+ IL 26 26 3 26 3 9 38 175 271 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 9 ] 14 - A - A -
+ ML 27 26 3 29 3 7 36 168 264 -2.026 -1.203 -1.643 1.699 -2.297 -2.441 -1.451
+ D 28 26 3 29 3 5 34 166 261 -11.551 -1.585 -0.585
+ IL 29 29 3 29 3 8 37 168 264 -6.392 -0.017 -14.035 0.000 0.000 0.000 0.000
+ [ MATL 10 ] 16 - g - g -
+ ML 30 29 3 32 3 7 36 167 263 -5.630 -0.088 -4.671 -0.084 -0.794 0.783 -0.398
+ D 31 29 3 32 3 4 33 165 260 -14.602 -1.671 -0.544
+ IL 32 32 3 32 3 9 38 173 269 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 11 ] 17 - u - a -
+ ML 33 32 3 35 3 7 35 166 262 -5.792 -0.097 -4.421 0.254 -0.319 -0.468 0.359
+ D 34 32 3 35 3 4 33 164 260 -14.213 -0.776 -1.266
+ IL 35 35 3 35 3 8 37 172 268 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 12 ] 18 - u - u -
+ ML 36 35 3 38 3 6 34 165 260 -5.998 -0.046 -5.998 0.210 -0.349 -0.555 0.462
+ D 37 35 3 38 3 3 31 163 258 -13.356 -0.848 -1.170
+ IL 38 38 3 38 3 7 36 171 266 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 13 ] 19 - u - u -
+ ML 39 38 3 41 3 5 33 163 259 -6.103 -0.043 -6.103 -0.246 0.373 -1.172 0.504
+ D 40 38 3 41 3 2 30 161 257 -12.467 -0.629 -1.501
+ IL 41 41 3 41 3 7 35 169 265 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 14 ] 20 - u - u -
+ ML 42 41 3 44 3 5 33 162 258 -6.158 -0.041 -6.158 -0.077 0.209 -1.024 0.490
+ D 43 41 3 44 3 1 29 160 255 -11.551 -1.585 -0.585
+ IL 44 44 3 44 3 6 34 168 264 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 15 ] 21 - u - u -
+ ML 45 44 3 47 3 4 32 161 257 -6.158 -0.140 -3.671 -0.625 0.472 -1.345 0.652
+ D 46 44 3 47 3 1 28 159 254 -11.551 -1.585 -0.585
+ IL 47 47 3 47 3 6 34 167 263 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 16 ] 22 - u - u -
+ ML 48 47 3 50 3 4 31 160 256 -6.062 -0.044 -6.062 -0.421 0.294 -1.193 0.668
+ D 49 47 3 50 3 1 27 158 254 -12.893 -0.912 -1.095
+ IL 50 50 3 50 3 5 33 166 262 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 17 ] 23 - U - U -
+ ML 51 50 3 53 3 4 31 159 255 -6.126 -0.042 -6.126 -1.627 -0.894 -2.084 1.537
+ D 52 50 3 53 3 0 26 156 252 -12.156 -2.190 -0.357
+ IL 53 53 3 53 3 5 32 165 261 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 18 ] 24 - A - A -
+ ML 54 53 3 56 3 3 30 158 253 -6.126 -0.042 -6.126 1.658 -2.149 -2.291 -1.274
+ D 55 53 3 56 3 0 26 155 251 -12.156 -0.833 -1.190
+ IL 56 56 3 56 3 4 31 164 259 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 19 ] 25 - G - G -
+ ML 57 56 3 59 3 3 29 157 252 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 58 56 3 59 3 0 24 154 249 -11.551 -1.585 -0.585
+ IL 59 59 3 59 3 4 31 162 258 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 20 ] 26 - A - A -
+ ML 60 59 3 62 3 3 28 155 251 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 61 59 3 62 3 0 23 152 248 -11.551 -1.585 -0.585
+ IL 62 62 3 62 3 4 30 161 257 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 21 ] 27 - U - U -
+ ML 63 62 3 65 3 2 28 154 250 -6.158 -0.041 -6.158 -2.876 -2.342 -3.073 1.827
+ D 64 62 3 65 3 0 23 151 247 -11.551 -1.585 -0.585
+ IL 65 65 3 65 3 3 29 160 256 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 22 ] 28 - G - G -
+ ML 66 65 3 68 3 2 27 153 249 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 67 65 3 68 3 0 22 150 246 -11.551 -1.585 -0.585
+ IL 68 68 3 68 3 3 29 159 255 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 23 ] 29 - A - A -
+ ML 69 68 3 71 3 2 26 152 248 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 70 68 3 71 3 0 21 149 245 -11.551 -1.585 -0.585
+ IL 71 71 3 71 3 3 28 158 254 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 24 ] 30 - C - C -
+ ML 72 71 3 74 3 2 26 151 246 -6.158 -0.041 -6.158 -3.099 1.842 -3.352 -2.315
+ D 73 71 3 74 3 0 21 148 243 -11.551 -1.585 -0.585
+ IL 74 74 3 74 3 2 27 157 252 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 25 ] 31 - G - G -
+ ML 75 74 3 77 3 1 25 149 245 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 76 74 3 77 3 0 20 147 242 -11.551 -1.585 -0.585
+ IL 77 77 3 77 3 2 26 155 251 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 26 ] 32 - A - A -
+ ML 78 77 3 80 3 1 24 148 244 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 79 77 3 80 3 0 19 145 241 -11.551 -1.585 -0.585
+ IL 80 80 3 80 3 2 26 154 250 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 27 ] 33 - G - G -
+ ML 81 80 3 83 3 1 24 147 243 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 82 80 3 83 3 0 19 144 240 -11.551 -1.585 -0.585
+ IL 83 83 3 83 3 2 25 153 249 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 28 ] 34 - U - U -
+ ML 84 83 3 86 3 1 23 146 242 -6.158 -0.041 -6.158 -2.876 -2.342 -3.073 1.827
+ D 85 83 3 86 3 0 18 143 239 -11.551 -1.585 -0.585
+ IL 86 86 3 86 3 2 24 152 248 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 29 ] 35 - C - C -
+ ML 87 86 3 89 3 1 22 145 240 -6.158 -0.041 -6.158 -3.099 1.842 -3.352 -2.315
+ D 88 86 3 89 3 0 17 142 237 -11.551 -1.585 -0.585
+ IL 89 89 3 89 3 1 24 151 246 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 30 ] 36 - u - U -
+ ML 90 89 3 92 3 1 21 144 239 -6.158 -0.041 -6.158 -0.238 -0.404 -1.250 0.983
+ D 91 89 3 92 3 0 17 140 236 -11.551 -1.585 -0.585
+ IL 92 92 3 92 3 1 23 150 245 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 31 ] 37 - g - g -
+ ML 93 92 3 95 3 1 21 142 238 -6.158 -0.041 -6.158 -1.341 -1.564 0.966 0.394
+ D 94 92 3 95 3 0 16 139 235 -11.551 -1.585 -0.585
+ IL 95 95 3 95 3 1 22 148 244 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 32 ] 38 - A - A -
+ ML 96 95 3 98 3 1 20 141 237 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 97 95 3 98 3 0 15 138 233 -11.551 -1.585 -0.585
+ IL 98 98 3 98 3 1 21 147 243 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 33 ] 39 - u - U -
+ ML 99 98 3 101 3 1 19 140 236 -6.158 -0.041 -6.158 -0.140 -0.534 -0.956 0.915
+ D 100 98 3 101 3 0 15 136 231 -11.551 -1.585 -0.585
+ IL 101 101 3 101 3 1 20 146 242 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 34 ] 40 - u - u -
+ ML 102 101 3 104 3 1 18 139 235 -6.158 -0.062 -5.145 -0.381 -0.132 -0.412 0.649
+ D 103 101 3 104 3 0 14 133 228 -11.551 -1.585 -0.585
+ IL 104 104 3 104 3 1 20 145 241 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 35 ] 41 - c - c -
+ ML 105 104 3 107 3 1 17 138 234 -2.950 -0.224 -6.137 -0.279 0.687 -0.532 -0.193
+ D 106 104 3 107 3 0 14 126 207 -11.973 -0.994 -1.007
+ IL 107 107 3 107 3 2 19 147 243 -0.277 -2.515 -15.511 0.000 0.000 0.000 0.000
+ [ MATL 36 ] 52 - G - G -
+ ML 108 107 3 110 3 1 16 127 206 -6.158 -0.041 -6.158 -1.152 -1.743 1.281 -0.284
+ D 109 107 3 110 3 0 13 124 203 -11.551 -1.585 -0.585
+ IL 110 110 3 110 3 1 18 134 214 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 37 ] 53 - a - a -
+ ML 111 110 3 113 3 1 16 126 205 -6.158 -0.074 -4.800 0.424 -0.459 -0.112 0.009
+ D 112 110 3 113 3 0 12 123 202 -11.551 -1.585 -0.585
+ IL 113 113 3 113 3 1 17 133 213 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 38 ] 54 - G - G -
+ ML 114 113 3 116 3 1 15 124 204 -4.779 -0.075 -6.126 -0.906 -0.791 1.081 -0.373
+ D 115 113 3 116 3 0 12 122 201 -12.156 -0.833 -1.190
+ IL 116 116 3 116 3 1 16 126 205 -0.941 -1.062 -11.709 0.000 0.000 0.000 0.000
+ [ MATL 39 ] 57 - u - u -
+ ML 117 116 3 119 3 1 14 123 203 -6.158 -0.041 -6.158 -0.119 -0.516 -0.272 0.634
+ D 118 116 3 119 3 0 10 120 199 -11.551 -1.585 -0.585
+ IL 119 119 3 119 3 1 15 130 211 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 40 ] 58 - U - U -
+ ML 120 119 3 122 3 1 13 122 201 -6.158 -0.242 -2.831 -1.113 -1.072 -0.658 1.280
+ D 121 119 3 122 3 0 10 118 197 -11.551 -1.585 -0.585
+ IL 122 122 3 122 3 1 16 130 210 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 41 ] 59 - u - U -
+ ML 123 122 3 125 3 1 14 121 200 -5.963 -0.047 -5.963 -0.278 -0.431 -1.138 0.985
+ D 124 122 3 125 3 0 9 114 193 -13.555 -3.589 -0.125
+ IL 125 125 3 125 3 1 16 128 208 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 42 ] 60 - u - u -
+ ML 126 125 3 128 3 1 14 120 199 -5.963 -0.047 -5.963 -1.146 0.464 -1.500 0.860
+ D 127 125 3 128 3 0 9 113 192 -13.555 -3.589 -0.125
+ IL 128 128 3 128 3 1 15 127 207 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 43 ] 61 - C - c -
+ ML 129 128 3 131 3 1 13 119 197 -5.963 -0.160 -3.488 -0.683 1.046 -1.419 -0.092
+ D 130 128 3 131 3 0 9 112 190 -13.555 -3.589 -0.125
+ IL 131 131 3 131 3 1 15 126 206 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 44 ] 62 - c - c -
+ ML 132 131 3 134 3 1 13 117 196 -5.853 -0.079 -4.800 -0.566 0.324 0.271 -0.207
+ D 133 131 3 134 3 0 9 111 189 -14.018 -4.053 -0.090
+ IL 134 134 3 134 3 1 15 125 204 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 45 ] 63 - a - a -
+ ML 135 134 3 137 3 1 12 116 194 -5.826 -0.079 -4.810 0.290 -0.268 0.004 -0.084
+ D 136 134 3 137 3 0 9 111 188 -14.109 -2.973 -0.197
+ IL 137 137 3 137 3 1 14 123 203 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 46 ] 64 - u - u -
+ ML 138 137 3 140 3 1 12 115 193 -1.639 -0.596 -5.832 -0.293 -0.189 -0.614 0.725
+ D 139 137 3 140 3 0 9 110 187 -14.090 -0.176 -3.124
+ IL 140 140 3 140 3 1 13 117 196 -0.411 -2.013 -16.095 0.000 0.000 0.000 0.000
+ [ MATL 47 ] 80 - G - G -
+ ML 141 140 3 143 3 1 11 110 187 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 142 140 3 143 3 0 6 107 184 -11.551 -1.585 -0.585
+ IL 143 143 3 143 3 1 12 117 196 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 48 ] 81 - a - A -
+ ML 144 143 3 146 3 1 10 108 186 -6.158 -0.041 -6.158 0.802 0.259 -1.317 -0.604
+ D 145 143 3 146 3 0 6 105 183 -11.551 -1.585 -0.585
+ IL 146 146 3 146 3 1 11 116 194 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 49 ] 82 - u - a -
+ ML 147 146 3 149 3 1 9 107 184 -6.158 -0.041 -6.158 0.354 -0.421 -0.677 0.432
+ D 148 146 3 149 3 0 5 104 181 -11.551 -1.585 -0.585
+ IL 149 149 3 149 3 1 11 115 193 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 50 ] 83 - G - G -
+ ML 150 149 3 152 3 1 9 106 183 -5.219 -0.060 -6.158 -2.620 -3.709 1.875 -3.437
+ D 151 149 3 152 3 0 4 103 180 -11.551 -1.585 -0.585
+ IL 152 152 3 152 3 1 9 106 183 -2.558 -0.270 -10.202 0.000 0.000 0.000 0.000
+ [ MATL 51 ] 85 - A - A -
+ ML 153 152 3 155 3 1 8 105 182 -6.158 -0.041 -6.158 1.525 -0.847 -2.061 -1.617
+ D 154 152 3 155 3 0 4 102 179 -11.551 -1.585 -0.585
+ IL 155 155 3 155 3 1 9 112 190 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 52 ] 86 - c - c -
+ ML 156 155 3 158 3 1 7 103 180 -4.398 -0.091 -6.158 -0.270 0.792 -0.686 -0.290
+ D 157 155 3 158 3 0 3 101 178 -11.551 -1.585 -0.585
+ IL 158 158 3 158 3 1 8 104 181 -2.364 -0.312 -11.569 0.000 0.000 0.000 0.000
+ [ MATL 53 ] 89 - A - A -
+ ML 159 158 3 161 3 1 7 102 179 -4.841 -0.090 -5.293 1.092 -0.988 -0.649 -0.460
+ D 160 158 3 161 3 0 3 100 177 -11.551 -1.585 -0.585
+ IL 161 161 3 161 3 1 7 103 179 -3.131 -0.176 -10.774 0.000 0.000 0.000 0.000
+ [ MATL 54 ] 91 - a - a -
+ ML 162 161 3 164 3 1 6 101 178 -6.141 -0.041 -6.141 0.682 0.433 -1.323 -0.631
+ D 163 161 3 164 3 0 2 99 175 -11.900 -1.070 -0.934
+ IL 164 164 3 164 3 1 7 109 187 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 55 ] 92 - a - a -
+ ML 165 164 3 167 3 1 5 100 177 -6.158 -0.041 -6.158 0.650 0.299 -0.868 -0.617
+ D 166 164 3 167 3 0 2 97 173 -11.551 -1.585 -0.585
+ IL 167 167 3 167 3 1 6 108 185 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 56 ] 93 - a - A -
+ ML 168 167 3 170 3 1 4 99 175 -6.158 -0.222 -2.958 0.781 -0.267 -0.906 -0.125
+ D 169 167 3 170 3 0 1 96 172 -11.551 -1.585 -0.585
+ IL 170 170 3 170 3 1 7 107 184 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 57 ] 94 - c - c -
+ ML 171 170 3 173 3 1 5 97 174 -5.982 -0.046 -5.982 -0.374 0.535 -1.149 0.409
+ D 172 170 3 173 3 0 1 95 171 -13.449 -1.736 -0.515
+ IL 173 173 3 173 3 1 6 105 183 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 58 ] 95 - u - U -
+ ML 174 173 3 176 3 1 4 96 172 -6.035 -0.045 -6.035 -0.389 -0.175 -1.188 0.935
+ D 175 173 3 176 3 0 1 94 170 -13.108 -0.552 -1.654
+ IL 176 176 3 176 3 1 5 104 181 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 59 ] 96 - u - u -
+ ML 177 176 3 179 3 1 4 95 171 -6.141 -0.041 -6.141 0.008 0.094 -1.134 0.557
+ D 178 176 3 179 3 0 0 91 167 -11.894 -1.928 -0.440
+ IL 179 179 3 179 3 1 5 102 179 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 60 ] 97 - U - U -
+ ML 180 179 3 182 3 1 3 93 169 -4.115 -0.108 -6.141 -0.229 -0.534 -1.261 1.028
+ D 181 179 3 182 3 0 0 90 166 -11.894 -1.928 -0.440
+ IL 182 182 3 182 3 1 4 94 170 -1.166 -0.852 -12.465 0.000 0.000 0.000 0.000
+ [ MATL 61 ] 102 - U - U -
+ ML 183 182 3 185 3 1 3 92 168 -6.141 -0.041 -6.141 -0.139 -0.820 -1.305 1.085
+ D 184 182 3 185 3 0 0 89 165 -11.894 -1.076 -0.928
+ IL 185 185 3 185 3 1 4 100 177 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 62 ] 103 - U - U -
+ ML 186 185 3 188 3 1 3 91 166 -6.158 -0.041 -6.158 -0.061 -0.834 -1.296 1.052
+ D 187 185 3 188 3 0 0 87 163 -11.551 -1.585 -0.585
+ IL 188 188 3 188 3 1 4 99 175 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 63 ] 104 - U - U -
+ ML 189 188 3 191 3 1 2 89 165 -6.158 -0.041 -6.158 0.014 -0.973 -1.322 1.057
+ D 190 188 3 191 3 0 0 86 161 -11.551 -1.585 -0.585
+ IL 191 191 3 191 3 1 3 97 174 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 64 ] 105 - u - u -
+ ML 192 191 3 194 3 1 2 88 163 -6.158 -0.041 -6.158 0.509 -1.109 -1.289 0.769
+ D 193 191 3 194 3 0 0 85 160 -11.551 -1.585 -0.585
+ IL 194 194 3 194 3 1 3 96 172 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 65 ] 106 - a - A -
+ ML 195 194 3 197 3 1 2 86 161 -6.158 -0.041 -6.158 0.842 -0.899 -1.226 0.315
+ D 196 194 3 197 3 0 0 84 158 -11.551 -1.585 -0.585
+ IL 197 197 3 197 3 1 2 95 171 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 66 ] 107 - U - u -
+ ML 198 197 3 200 3 1 1 85 160 -6.158 -0.377 -2.212 -0.015 -0.830 -1.281 1.026
+ D 199 197 3 200 3 0 0 83 157 -11.551 -1.585 -0.585
+ IL 200 200 3 200 3 1 2 93 169 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 67 ] 108 - U - U -
+ ML 201 200 3 203 3 1 1 84 158 -3.703 -0.270 -3.410 -0.697 -1.289 -1.558 1.398
+ D 202 200 3 203 3 0 0 82 157 -14.088 -0.501 -1.769
+ IL 203 203 3 203 3 1 2 85 160 -0.903 -1.105 -12.851 0.000 0.000 0.000 0.000
+ [ MATL 68 ] 114 - A - A -
+ ML 204 203 3 206 3 1 1 83 157 -5.998 -0.046 -5.998 1.593 -1.905 -2.008 -1.099
+ D 205 203 3 206 3 0 0 81 155 -13.354 -0.306 -2.388
+ IL 206 206 3 206 3 1 1 91 166 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 69 ] 115 - C - C -
+ ML 207 206 3 209 3 1 1 81 155 -6.158 -0.041 -6.158 -2.789 1.752 -3.071 -1.443
+ D 208 206 3 209 3 0 0 78 152 -11.551 -1.585 -0.585
+ IL 209 209 3 209 3 1 1 89 165 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 70 ] 116 - C - C -
+ ML 210 209 3 212 3 1 1 80 154 -6.158 -0.041 -6.158 -3.099 1.842 -3.352 -2.315
+ D 211 209 3 212 3 0 0 76 150 -11.551 -1.585 -0.585
+ IL 212 212 3 212 3 1 1 88 163 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 71 ] 117 - A - A -
+ ML 213 212 3 215 3 1 1 78 152 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 214 212 3 215 3 0 0 75 148 -11.551 -1.585 -0.585
+ IL 215 215 3 215 3 1 1 87 162 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 72 ] 118 - U - U -
+ ML 216 215 3 218 3 1 1 76 150 -6.158 -0.041 -6.158 -2.876 -2.342 -3.073 1.827
+ D 217 215 3 218 3 0 0 73 146 -11.551 -1.585 -0.585
+ IL 218 218 3 218 3 1 1 85 160 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 73 ] 119 - U - U -
+ ML 219 218 3 221 3 1 1 75 148 -6.158 -0.041 -6.158 -2.876 -2.342 -3.073 1.827
+ D 220 218 3 221 3 0 0 71 144 -11.551 -1.585 -0.585
+ IL 221 221 3 221 3 1 1 84 158 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 74 ] 120 - C - C -
+ ML 222 221 3 224 3 1 1 73 147 -6.158 -0.041 -6.158 -3.099 1.842 -3.352 -2.315
+ D 223 221 3 224 3 0 0 70 143 -11.551 -1.585 -0.585
+ IL 224 224 3 224 3 1 1 82 156 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 75 ] 121 - A - A -
+ ML 225 224 3 227 3 1 1 72 145 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 226 224 3 227 3 0 0 68 141 -11.551 -1.585 -0.585
+ IL 227 227 3 227 3 1 1 81 155 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 76 ] 122 - U - U -
+ ML 228 227 3 230 3 1 1 70 143 -6.158 -0.041 -6.158 -2.876 -2.342 -3.073 1.827
+ D 229 227 3 230 3 0 0 66 139 -11.551 -1.585 -0.585
+ IL 230 230 3 230 3 1 1 79 153 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 77 ] 123 - G - G -
+ ML 231 230 3 233 3 1 1 68 141 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 232 230 3 233 3 0 0 65 137 -11.551 -1.585 -0.585
+ IL 233 233 3 233 3 1 1 78 151 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 78 ] 124 - C - C -
+ ML 234 233 3 236 3 1 1 67 139 -6.158 -0.041 -6.158 -2.829 1.767 -3.112 -1.557
+ D 235 233 3 236 3 0 0 63 135 -11.551 -1.585 -0.585
+ IL 236 236 3 236 3 1 1 76 149 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 79 ] 125 - a - a -
+ ML 237 236 3 239 3 1 1 65 137 -6.158 -0.041 -6.158 0.445 0.277 -1.155 -0.031
+ D 238 236 3 239 3 0 0 61 133 -11.551 -1.585 -0.585
+ IL 239 239 3 239 3 1 1 75 148 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 80 ] 126 - U - U -
+ ML 240 239 3 242 3 1 1 63 135 -6.158 -0.041 -6.158 -0.450 -1.565 -1.804 1.403
+ D 241 239 3 242 3 0 0 60 131 -11.551 -1.585 -0.585
+ IL 242 242 3 242 3 1 1 73 146 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 81 ] 127 - U - U -
+ ML 243 242 3 245 3 1 1 61 133 -3.036 -0.362 -3.322 -0.135 -1.472 -1.644 1.268
+ D 244 242 3 245 3 0 0 59 130 -11.551 -1.585 -0.585
+ IL 245 245 3 245 3 1 1 61 133 -5.316 -0.037 -12.960 0.000 0.000 0.000 0.000
+ [ MATL 82 ] 129 - U - U -
+ ML 246 245 3 248 3 1 1 60 132 -6.028 -0.045 -6.028 -0.131 -0.638 -1.175 1.001
+ D 247 245 3 248 3 0 0 58 128 -13.158 -0.356 -2.192
+ IL 248 248 3 248 3 1 1 71 143 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 83 ] 130 - C - C -
+ ML 249 248 3 251 3 1 1 58 129 -6.158 -0.041 -6.158 -3.099 1.842 -3.352 -2.315
+ D 250 248 3 251 3 0 0 54 124 -11.551 -1.585 -0.585
+ IL 251 251 3 251 3 1 1 69 141 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 84 ] 131 - U - U -
+ ML 252 251 3 254 3 1 1 56 127 -6.158 -0.041 -6.158 -2.876 -2.342 -3.073 1.827
+ D 253 251 3 254 3 0 0 51 121 -11.551 -1.585 -0.585
+ IL 254 254 3 254 3 1 1 67 138 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 85 ] 132 - G - G -
+ ML 255 254 3 257 3 1 1 54 124 -6.158 -0.041 -6.158 -2.620 -3.709 1.875 -3.437
+ D 256 254 3 257 3 0 0 48 117 -11.551 -1.585 -0.585
+ IL 257 257 3 257 3 1 1 66 136 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 86 ] 133 - A - A -
+ ML 258 257 3 260 3 1 1 51 121 -6.158 -0.041 -6.158 1.902 -3.707 -3.346 -3.512
+ D 259 257 3 260 3 0 0 43 113 -11.551 -1.585 -0.585
+ IL 260 260 3 260 3 1 1 64 134 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 87 ] 134 - a - a -
+ ML 261 260 3 263 3 1 1 47 116 -6.158 -0.126 -3.849 0.291 -0.284 -0.365 0.238
+ D 262 260 3 263 3 0 0 32 101 -11.551 -1.585 -0.585
+ IL 263 263 3 263 3 1 1 62 131 -0.384 -2.121 -8.028 0.000 0.000 0.000 0.000
+ [ MATL 88 ] 135 - a - a -
+ ML 264 263 3 266 2 1 1 1 1 * 0.000 0.360 -0.245 -0.594 0.276
+ D 265 263 3 266 2 0 0 0 0 * 0.000
+ IL 266 266 3 266 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 89 ] - - - - - -
+ E 267 266 3 -1 0 0 0 0 0
+//
+HMMER3/f [i1.1 | April 2012]
+NAME snR75
+ACC RF01185
+DESC Small nucleolar RNA snR75
+LENG 88
+MAXL 177
+ALPH RNA
+RF yes
+MM no
+CONS yes
+CS yes
+MAP no
+DATE Mon Apr 30 08:55:03 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F snR75.cm snR75.sto
+COM [2] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F snR75.cm snR75.sto
+NSEQ 62
+EFFN 4.939774
+STATS LOCAL MSV -8.8346 0.71844
+STATS LOCAL VITERBI -9.8187 0.71844
+STATS LOCAL FORWARD -3.5583 0.71844
+HMM A C G U
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.29559 1.53882 1.54897 1.20677
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04561 5.43381 3.21342 0.39730 1.11515 0.00000 *
+ 1 1.33970 1.59918 1.92763 0.94028 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02918 4.24183 4.24183 1.46634 0.26236 0.52979 0.88851
+ 2 1.58214 1.21849 2.03424 0.99964 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.08988 2.63169 4.26827 0.34740 1.22596 1.09861 0.40547
+ 3 1.02914 1.67649 1.48647 1.47192 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06735 2.97354 4.26827 0.87594 0.53866 1.09861 0.40547
+ 4 1.38928 1.79333 2.04314 0.78807 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 5 1.73035 2.05614 0.59167 1.95595 - g G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 6 0.34686 2.39847 2.18858 2.40617 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 7 2.96608 2.76062 2.59563 0.20993 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 8 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 9 0.20869 2.97821 3.07800 2.39228 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.83402 1.40432 1.13891 0.01198 4.43025 1.09861 0.40547
+ 10 1.44465 1.93635 0.84350 1.66210 - g g - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06129 3.90275 3.23753 1.46634 0.26236 1.15793 0.37708
+ 11 1.21007 1.60755 1.71036 1.13743 - u a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06691 4.01463 3.06457 1.46634 0.26236 0.53755 0.87750
+ 12 1.24051 1.62813 1.77120 1.06613 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03179 4.15753 4.15753 1.46634 0.26236 0.58778 0.81094
+ 13 1.55662 1.12787 2.19838 1.03719 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02953 4.23030 4.23030 1.46634 0.26236 0.43599 1.04022
+ 14 1.43983 1.24140 2.09641 1.04652 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 15 1.81979 1.05901 2.31858 0.93464 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09710 4.26827 2.54429 1.46634 0.26236 1.09861 0.40547
+ 16 1.67794 1.18231 2.21320 0.92301 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03040 4.20157 4.20157 1.46634 0.26236 0.63172 0.75859
+ 17 2.51386 2.00610 2.83103 0.32078 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02906 4.24614 4.24614 1.46634 0.26236 1.51786 0.24741
+ 18 0.23678 2.87575 2.97421 2.26938 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02906 4.24614 4.24614 1.46634 0.26236 0.57690 0.82471
+ 19 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 20 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 21 3.37954 3.00954 3.51617 0.12001 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 22 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 23 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 24 3.53470 0.10968 3.70996 2.99100 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 25 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 26 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 27 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 28 3.37954 3.00954 3.51617 0.12001 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 29 3.53470 0.10968 3.70996 2.99100 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 30 1.55153 1.66647 2.25306 0.70504 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 31 2.31594 2.47054 0.71681 1.11327 - g g - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 32 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 33 1.48337 1.75615 2.04864 0.75182 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 34 1.65033 1.47749 1.67187 0.93673 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04319 4.26827 3.56615 1.46634 0.26236 1.09861 0.40547
+ 35 1.57991 0.91026 1.75484 1.52028 - c c - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15501 2.04494 4.25390 1.74350 0.19226 0.68867 0.69764
+ 36 2.18487 2.59456 0.49848 1.58290 - g G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 37 1.09268 1.70469 1.46420 1.37995 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05118 4.26827 3.32730 1.46634 0.26236 1.09861 0.40547
+ 38 2.01400 1.93443 0.63687 1.64457 - g G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05207 3.31256 4.24614 0.73587 0.65217 0.57690 0.82471
+ 39 1.46857 1.74428 1.57507 0.94680 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 40 2.15766 2.12944 1.84242 0.49912 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.16790 4.26827 1.96218 1.46634 0.26236 1.09861 0.40547
+ 41 1.57919 1.68496 2.17513 0.70357 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03260 4.13297 4.13297 1.46634 0.26236 2.48783 0.08675
+ 42 2.18031 1.06477 2.42604 0.79010 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03260 4.13297 4.13297 1.46634 0.26236 2.48783 0.08675
+ 43 1.85957 0.66127 2.37007 1.44990 - c c - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11111 4.13297 2.41774 1.46634 0.26236 2.48783 0.08675
+ 44 1.77832 1.16202 1.19871 1.52951 - c c - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05466 4.05707 3.32729 1.46634 0.26236 2.80898 0.06216
+ 45 1.18515 1.57197 1.38323 1.44436 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05474 4.03830 3.33422 1.46634 0.26236 2.06033 0.13629
+ 46 1.58935 1.51733 1.81183 0.88361 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.41342 1.13613 4.04233 1.39515 0.28475 0.12182 2.16554
+ 47 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 48 0.83019 1.20672 2.29937 1.80463 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 49 1.14061 1.67839 1.85540 1.08674 - u a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 50 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04171 3.61769 4.26827 0.18630 1.77210 1.09861 0.40547
+ 51 0.32913 1.97317 2.81479 2.50693 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 52 1.57353 0.83753 1.86167 1.58721 - c c - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06342 3.04819 4.26827 0.21612 1.63804 1.09861 0.40547
+ 53 0.62958 2.07131 1.83609 1.70526 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06229 3.35577 3.66880 0.12132 2.16935 1.09861 0.40547
+ 54 0.91337 1.08616 2.30358 1.82374 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02875 4.25670 4.25670 1.46634 0.26236 0.74108 0.64740
+ 55 0.93562 1.17871 1.98812 1.81382 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 56 0.84476 1.57127 2.01461 1.47321 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15391 4.26827 2.05067 1.46634 0.26236 1.09861 0.40547
+ 57 1.64532 1.01525 2.18260 1.10265 - c c - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03215 4.14650 4.14650 1.46634 0.26236 1.20315 0.35703
+ 58 1.65594 1.50783 2.20974 0.73821 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03098 4.18313 4.18313 1.46634 0.26236 0.38244 1.14632
+ 59 1.38068 1.32083 2.17212 1.00038 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02874 4.25692 4.25692 1.46634 0.26236 1.33637 0.30489
+ 60 1.54515 1.75632 2.26048 0.67385 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07458 2.85249 4.25692 0.59026 0.80784 1.33637 0.30489
+ 61 1.48280 1.95490 2.29102 0.63439 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02874 4.25692 4.25692 1.46634 0.26236 0.74569 0.64323
+ 62 1.42867 1.96418 2.28458 0.65723 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 63 1.37680 2.06084 2.30260 0.65341 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 64 1.03374 2.15505 2.28004 0.85297 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 65 0.80272 2.00920 2.23599 1.16826 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 66 1.39651 1.96129 2.27432 0.67532 - u u - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.26112 4.26827 1.53338 1.46634 0.26236 1.09861 0.40547
+ 67 1.86961 2.27980 2.46647 0.41760 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.18738 2.56666 2.36358 0.76546 0.62571 0.34744 1.22587
+ 68 0.28188 2.70642 2.77837 2.14799 - a A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03179 4.15774 4.15774 1.46634 0.26236 0.21196 1.65547
+ 69 3.31944 0.17184 3.51483 2.38638 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 70 3.53470 0.10968 3.70996 2.99100 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 71 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 72 3.37954 3.00954 3.51617 0.12001 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 73 3.37954 3.00954 3.51617 0.12001 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 74 3.53470 0.10968 3.70996 2.99100 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 75 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 76 3.37954 3.00954 3.51617 0.12001 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 77 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 78 3.34752 0.16141 3.54367 2.46540 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 79 1.07812 1.19456 2.18668 1.40797 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 80 1.69854 2.47090 2.63654 0.41411 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 81 1.47967 2.40645 2.52604 0.50720 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.25093 2.10422 2.30274 0.02543 3.68466 1.09861 0.40547
+ 82 1.47691 1.82834 2.20093 0.69260 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03113 4.17836 4.17836 1.46634 0.26236 0.24699 1.51937
+ 83 3.53470 0.10968 3.70996 2.99100 - c C - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 84 3.37954 3.00954 3.51617 0.12001 - u U - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 85 3.20209 3.95693 0.08652 3.76878 - G G - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 86 0.06791 3.95560 3.70522 3.82084 - A A - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02841 4.26827 4.26827 1.46634 0.26236 1.09861 0.40547
+ 87 1.18472 1.58329 1.63927 1.22164 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ 0.08706 4.26827 2.66821 1.46634 0.26236 1.09861 0.40547
+ 88 1.13708 1.55631 1.79782 1.19510 - a a - :
+ 1.38629 1.38629 1.38629 1.38629
+ * 0.00000 * 0.45905 0.99936 0.00000 *
+//
+INFERNAL1/a [1.1 | April 2012]
+NAME Plant_SRP
+ACC RF01855
+DESC Plant signal recognition particle RNA
+STATES 939
+NODES 200
+CLEN 305
+W 336
+ALPH RNA
+RF yes
+CONS yes
+MAP yes
+DATE Mon Apr 30 08:55:04 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F Plant_SRP.cm Plant_SRP.sto
+COM [2] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmcalibrate --mpi Plant_SRP.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 64
+EFFN 2.234863
+CKSUM 2513792503
+NULL 0.000 0.000 0.000 0.000
+GA 95.00
+TC 95.05
+NC 94.99
+EFP7GF -12.1478 0.70581
+ECMLC 0.72286 -9.32098 -0.83588 1600000 553286 0.002169
+ECMGC 0.26831 -51.71669 -41.24636 1600000 6639 0.060250
+ECMLI 0.70748 -9.17856 -0.59906 1600000 519142 0.002312
+ECMGI 0.32510 -31.66828 -23.01468 1600000 6666 0.060006
+CM
+ [ ROOT 0 ] - - - - - -
+ S 0 -1 0 1 3 0 1 336 379 -5.363 -15.832 -0.036
+ IL 1 1 2 1 3 129 202 345 390 -0.610 -4.491 -1.736 0.000 0.000 0.000 0.000
+ IR 2 2 3 2 2 127 201 338 381 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 1 ] - - - - - -
+ B 3 2 3 4 131 126 200 336 379
+ [ BEGL 2 ] - - - - - -
+ S 4 3 1 5 4 0 2 70 113 -0.171 -6.895 -3.572 -5.693
+ [ MATP 3 ] 1 42 G C G C
+ MP 5 4 1 9 6 2 5 70 113 -9.060 -9.000 -0.022 -7.776 -8.056 -8.451 -3.372 -2.153 -3.378 1.001 -3.766 -3.221 0.508 -3.832 -3.510 3.162 -3.886 -0.135 0.233 -2.801 -1.381 -2.421
+ ML 6 4 1 9 6 1 2 71 114 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 7 4 1 9 6 1 2 71 114 -7.711 -6.440 -2.103 -6.418 -0.517 -4.632 -0.321 0.786 -1.051 -0.011
+ D 8 4 1 9 6 0 0 70 113 -9.250 -7.948 -3.745 -4.427 -4.445 -0.273
+ IL 9 9 5 9 6 1 2 70 113 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 10 10 6 10 5 1 2 70 113 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 4 ] 2 41 c g c g
+ MP 11 10 6 15 6 2 4 68 111 -9.068 -9.007 -0.022 -7.784 -8.064 -8.459 -3.085 -3.032 -2.855 0.592 -2.145 -3.851 2.721 -2.987 -2.795 0.840 -3.606 -1.076 1.722 -3.305 -0.044 -2.061
+ ML 12 10 6 15 6 1 2 70 114 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 13 10 6 15 6 1 2 71 114 -7.657 -6.386 -2.295 -6.364 -0.463 -4.578 -0.047 -1.053 0.869 -0.465
+ D 14 10 6 15 6 0 0 69 113 -9.250 -7.948 -3.745 -4.427 -4.445 -0.273
+ IL 15 15 5 15 6 1 2 69 112 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 16 16 6 16 5 1 2 68 111 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 5 ] 3 40 C G C G
+ MP 17 16 6 21 3 2 2 66 109 -5.043 -15.513 -0.044 -3.886 -3.830 -3.689 -0.100 -2.533 -4.183 3.213 -3.287 -3.719 0.158 -4.058 -1.836 1.069 -3.987 0.470 -2.580
+ ML 18 16 6 21 3 1 1 71 114 -1.585 -1.585 -1.585 0.368 -0.385 -0.191 0.094
+ MR 19 16 6 21 3 1 1 70 113 -1.785 -1.796 -1.245 0.225 -0.929 0.599 -0.338
+ D 20 16 6 21 3 0 0 70 113 -1.624 -1.624 -1.511
+ IL 21 21 5 21 3 1 1 72 115 -0.617 -4.499 -1.719 0.000 0.000 0.000 0.000
+ IR 22 22 6 22 2 1 1 51 70 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 6 ] - - - - - -
+ B 23 22 6 24 86 0 0 49 68
+ [ BEGL 7 ] - - - - - -
+ S 24 23 1 25 4 0 0 34 52 -0.133 -6.895 -4.173 -5.384
+ [ MATP 8 ] 5 24 g u g u
+ MP 25 24 1 29 6 2 2 34 52 -9.088 -9.028 -0.021 -7.804 -8.084 -8.479 -3.529 -2.328 -3.694 1.183 -4.408 -5.040 -0.021 -3.755 -3.386 1.644 -3.901 2.937 -0.343 -4.255 -1.961 -2.419
+ ML 26 24 1 29 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 27 24 1 29 6 1 1 32 51 -7.462 -6.191 -1.736 -6.169 -0.798 -3.454 -0.156 -0.480 -0.773 0.848
+ D 28 24 1 29 6 0 0 29 48 -9.325 -8.024 -3.821 -4.503 -4.520 -0.258
+ IL 29 29 5 29 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 30 30 6 30 5 1 1 33 52 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 9 ] 6 23 a u a u
+ MP 31 30 6 35 6 2 2 32 50 -9.100 -9.039 -0.021 -7.816 -8.096 -8.491 -2.896 -1.353 -2.974 2.301 -3.214 -3.844 0.911 -3.287 -3.050 2.133 -3.537 0.399 0.565 -3.100 -0.999 -1.998
+ ML 32 30 6 35 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 33 30 6 35 6 1 1 30 49 -7.294 -6.023 -1.931 -6.001 -0.629 -4.214 0.022 -0.101 -0.645 0.499
+ D 34 30 6 35 6 0 0 27 46 -9.427 -8.125 -3.922 -4.604 -4.622 -0.239
+ IL 35 35 5 35 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 36 36 6 36 5 1 1 31 50 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 10 ] 7 22 g c G C
+ MP 37 36 6 41 6 2 2 30 48 -9.100 -9.039 -0.021 -7.816 -8.096 -8.491 -3.075 -1.801 -3.081 1.183 -3.448 -3.315 0.872 -3.534 -3.285 2.939 -3.685 -0.010 0.476 -2.512 -1.115 -2.139
+ ML 38 36 6 41 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 39 36 6 41 6 1 1 28 47 -7.294 -6.023 -1.931 -6.001 -0.629 -4.214 0.016 0.347 -0.677 0.126
+ D 40 36 6 41 6 0 0 25 44 -9.427 -8.125 -3.922 -4.604 -4.622 -0.239
+ IL 41 41 5 41 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 42 42 6 42 5 1 1 29 48 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 11 ] 8 21 c g C G
+ MP 43 42 6 47 6 2 2 28 46 -9.100 -9.039 -0.021 -7.816 -8.096 -8.491 -3.294 -3.215 -3.289 0.588 -2.453 -3.979 2.815 -2.410 -3.288 0.719 -3.745 -1.216 1.657 -3.491 -0.001 -2.197
+ ML 44 42 6 47 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 45 42 6 47 6 1 1 26 45 -7.294 -6.023 -1.931 -6.001 -0.629 -4.214 0.125 -0.751 0.544 -0.222
+ D 46 42 6 47 6 0 0 23 42 -9.427 -8.125 -3.922 -4.604 -4.622 -0.239
+ IL 47 47 5 47 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 48 48 6 48 5 1 1 27 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 12 ] 9 20 u a u a
+ MP 49 48 6 53 6 2 2 26 44 -9.100 -9.039 -0.050 -7.816 -5.866 -6.795 -2.738 -2.696 -2.839 0.891 -2.334 -3.645 1.951 -2.847 -2.585 1.218 -3.376 -0.802 2.063 -2.991 0.742 -1.837
+ ML 50 48 6 53 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 51 48 6 53 6 1 1 24 43 -7.294 -6.023 -1.484 -6.001 -0.977 -3.365 0.611 -0.685 -0.069 -0.156
+ D 52 48 6 53 6 0 0 22 40 -9.427 -8.125 -3.922 -4.604 -4.622 -0.239
+ IL 53 53 5 53 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 54 54 6 54 5 1 1 25 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 13 ] 10 19 c g c g
+ MP 55 54 6 59 6 2 2 24 42 -9.086 -9.026 -0.021 -7.802 -8.082 -8.477 -2.280 -2.262 -1.955 1.137 -2.201 -3.253 1.984 -2.616 -2.475 1.541 -3.016 -0.275 1.381 -2.551 0.553 -1.308
+ ML 56 54 6 59 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 57 54 6 59 6 1 1 22 41 -7.275 -6.004 -1.165 -5.982 -1.116 -4.195 0.142 -0.733 0.516 -0.209
+ D 58 54 6 59 6 0 0 20 39 -9.617 -8.315 -4.112 -4.794 -4.812 -0.207
+ IL 59 59 5 59 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 60 60 6 60 5 1 1 23 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 14 ] 11 18 a u a u
+ MP 61 60 6 65 6 2 2 22 40 -9.114 -9.053 -0.030 -7.830 -6.732 -8.505 -0.500 -1.052 -1.336 1.528 -1.762 -2.601 1.421 -2.111 -1.625 1.308 -2.394 -0.248 1.295 -1.893 0.091 -0.887
+ ML 62 60 6 65 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 63 60 6 65 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 64 60 6 65 6 0 0 19 38 -9.617 -8.315 -4.112 -4.794 -4.812 -0.207
+ IL 65 65 5 65 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 66 66 6 66 5 1 1 21 40 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 15 ] 12 17 c g g c
+ MP 67 66 6 71 4 2 2 20 38 -6.943 -7.150 -0.053 -5.564 -1.755 -1.694 -2.118 1.115 -2.075 -2.824 1.400 -2.372 -1.087 1.249 1.046 0.051 1.224 -2.219 -0.190 -1.280
+ ML 68 66 6 71 4 1 1 21 39 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 69 66 6 71 4 1 1 20 39 -4.917 -3.946 -1.813 -0.696 0.330 -0.561 0.174 -0.094
+ D 70 66 6 71 4 0 0 19 37 -5.106 -4.787 -2.802 -0.338
+ IL 71 71 5 71 4 1 1 22 41 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 72 72 6 72 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 16 ] 13 - U - U -
+ ML 73 72 6 75 3 1 1 16 35 -7.960 -0.021 -6.614 -0.847 -0.314 -1.590 1.206
+ D 74 72 6 75 3 0 0 15 34 -7.000 -2.005 -0.428
+ IL 75 75 3 75 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 17 ] 14 - A - A -
+ ML 76 75 3 78 3 1 1 15 33 -7.980 -0.020 -6.634 1.071 -0.684 -1.113 -0.298
+ D 77 75 3 78 3 0 0 14 33 -6.889 -2.402 -0.318
+ IL 78 78 3 78 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 18 ] 15 - A - A -
+ ML 79 78 3 81 3 1 1 13 31 -7.980 -0.020 -6.634 1.023 -1.416 0.054 -0.850
+ D 80 78 3 81 3 0 0 13 31 -6.889 -2.402 -0.318
+ IL 81 81 3 81 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 19 ] 16 - C - C -
+ ML 82 81 3 84 2 1 1 1 1 * 0.000 -1.399 1.468 -2.225 -0.643
+ D 83 81 3 84 2 0 0 0 0 * 0.000
+ IL 84 84 3 84 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 20 ] - - - - - -
+ E 85 84 3 -1 0 0 0 0 0
+ [ BEGR 21 ] - - - - - -
+ S 86 23 1 87 3 0 0 28 46 -8.076 -0.061 -4.737
+ IL 87 87 2 87 3 1 1 31 50 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 22 ] 25 - G - G -
+ ML 88 87 2 90 3 1 1 28 46 -8.035 -0.020 -6.689 -1.731 -2.974 1.756 -2.362
+ D 89 87 2 90 3 0 0 26 45 -6.531 -2.044 -0.421
+ IL 90 90 3 90 3 1 1 30 49 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 23 ] 26 - U - U -
+ ML 91 90 3 93 3 1 1 27 45 -8.035 -0.020 -6.689 -1.043 -1.163 -1.596 1.453
+ D 92 90 3 93 3 0 0 25 44 -6.531 -2.044 -0.421
+ IL 93 93 3 93 3 1 1 29 48 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 24 ] 27 - a - A -
+ ML 94 93 3 96 3 1 1 25 44 -8.035 -0.020 -6.689 0.894 -0.577 -0.435 -0.449
+ D 95 93 3 96 3 0 0 24 43 -6.531 -1.856 -0.488
+ IL 96 96 3 96 3 1 1 28 47 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 25 ] 28 - A - A -
+ ML 97 96 3 99 5 1 1 24 43 -7.161 -0.056 -6.976 -5.687 -8.080 1.663 -2.208 -1.635 -1.760
+ D 98 96 3 99 5 0 0 23 41 -5.140 -0.984 -4.402 -2.598 -1.979
+ IL 99 99 3 99 5 1 1 25 43 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 26 ] 29 39 C G C G
+ MP 100 99 3 104 6 2 2 23 42 -9.131 -9.070 -0.021 -7.847 -8.126 -8.521 -4.252 -4.190 -3.988 -0.406 -2.735 -4.433 3.384 -3.521 -4.021 -0.169 -4.324 -2.159 1.133 -4.325 -0.417 -2.860
+ ML 101 99 3 104 6 1 1 22 40 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 102 99 3 104 6 1 1 22 40 -7.114 -5.843 -1.464 -5.821 -0.905 -4.035 0.295 -0.590 0.242 -0.112
+ D 103 99 3 104 6 0 0 19 38 -9.250 -7.948 -3.745 -4.427 -4.445 -0.273
+ IL 104 104 5 104 6 1 1 23 41 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 105 105 6 105 5 1 1 23 41 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 27 ] 30 38 C G C G
+ MP 106 105 6 110 6 2 2 21 40 -9.140 -9.079 -0.021 -7.855 -8.135 -8.530 -4.526 -4.464 -4.215 -0.677 -2.916 -4.623 3.522 -3.728 -4.261 -0.452 -4.529 -2.430 0.742 -4.585 -0.612 -3.096
+ ML 107 105 6 110 6 1 1 20 38 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 108 105 6 110 6 1 1 20 38 -7.016 -5.745 -1.568 -5.723 -0.857 -3.937 0.395 -0.487 -0.004 -0.037
+ D 109 105 6 110 6 0 0 18 36 -9.250 -7.948 -3.745 -4.427 -4.445 -0.273
+ IL 110 110 5 110 6 1 1 21 39 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 111 111 6 111 5 1 1 21 39 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 28 ] 31 37 C G C G
+ MP 112 111 6 116 6 2 2 19 38 -9.142 -9.081 -0.021 -7.858 -8.138 -8.533 -4.200 -4.163 -3.954 -0.382 -2.714 -4.408 3.359 -3.497 -3.986 -0.154 -4.299 -2.155 1.016 -4.277 0.076 -2.828
+ ML 113 111 6 116 6 1 1 19 37 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 114 111 6 116 6 1 1 19 37 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 115 111 6 116 6 0 0 17 35 -9.250 -7.948 -3.745 -4.427 -4.445 -0.273
+ IL 116 116 5 116 6 1 1 19 37 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 117 117 6 117 5 1 1 19 37 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 29 ] 32 36 a u a u
+ MP 118 117 6 122 4 2 2 17 35 -7.037 -5.685 -0.069 -5.658 -3.025 -1.009 -3.099 2.343 -3.473 -3.997 0.577 -3.436 -3.164 2.219 -3.647 0.660 0.335 -3.240 -1.235 -2.104
+ ML 119 117 6 122 4 1 1 18 36 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 120 117 6 122 4 1 1 18 36 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 121 117 6 122 4 0 0 17 35 -4.757 -4.438 -2.454 -0.445
+ IL 122 122 5 122 4 1 1 19 38 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 123 123 6 123 3 1 1 18 36 -1.484 -0.768 -4.184 0.000 0.000 0.000 0.000
+ [ MATL 30 ] 33 - A - A -
+ ML 124 123 6 126 3 1 1 13 31 -8.047 -0.037 -5.534 1.146 -1.166 -1.221 -0.131
+ D 125 123 6 126 3 0 0 13 32 -6.436 -1.949 -0.455
+ IL 126 126 3 126 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 31 ] 34 - G - G -
+ ML 127 126 3 129 2 1 1 1 1 * 0.000 -1.056 -2.477 1.617 -1.883
+ D 128 126 3 129 2 0 0 0 0 * 0.000
+ IL 129 129 3 129 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 32 ] - - - - - -
+ E 130 129 3 -1 0 0 0 0 0
+ [ BEGR 33 ] - - - - - -
+ S 131 3 1 132 3 93 164 291 320 -8.076 -0.099 -3.999
+ IL 132 132 2 132 3 94 165 293 322 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 34 ] 43 - A - A -
+ ML 133 132 2 135 3 95 166 291 320 -7.997 -0.020 -6.651 1.621 -2.071 -1.478 -1.610
+ D 134 132 2 135 3 86 156 289 318 -6.789 -2.302 -0.344
+ IL 135 135 3 135 3 93 164 292 321 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 35 ] 44 - u - u -
+ ML 136 135 3 138 5 95 165 290 319 -3.997 -0.285 -3.240 -7.150 -8.041 0.042 -0.342 -1.117 0.783
+ D 137 135 3 138 5 85 155 288 317 -5.337 -1.180 -4.598 -2.794 -1.520
+ IL 138 138 3 138 5 93 164 290 319 -2.621 -0.486 -3.545 -6.132 -5.406 0.000 0.000 0.000 0.000
+ [ MATP 36 ] 46 366 c g a u
+ MP 139 138 3 143 6 97 166 289 318 -9.042 -8.981 -0.031 -7.758 -6.637 -8.433 -1.674 -1.710 -1.875 1.306 -1.842 -2.283 1.503 -0.954 -1.912 1.287 -2.446 -0.045 1.324 -1.993 -0.016 0.262
+ ML 140 138 3 143 6 90 160 287 316 -7.028 -7.374 -1.239 -0.947 -7.224 -4.753 0.079 -0.129 -0.571 0.440
+ MR 141 138 3 143 6 88 158 287 316 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 142 138 3 143 6 82 151 284 313 -9.503 -8.202 -3.999 -2.175 -4.698 -0.572
+ IL 143 143 5 143 6 91 162 288 318 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 144 144 6 144 5 92 162 288 317 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 37 ] 47 365 a u a u
+ MP 145 144 6 149 6 96 164 287 316 -9.070 -9.009 -0.022 -7.785 -8.065 -8.460 -3.119 -2.523 -3.191 2.901 -3.376 -4.231 0.680 -3.395 -3.217 1.463 -3.746 -0.053 0.388 -3.459 -1.172 -0.895
+ ML 146 144 6 149 6 89 158 285 314 -6.917 -7.263 -1.315 -0.900 -7.113 -4.642 0.550 -0.230 -0.644 0.061
+ MR 147 144 6 149 6 88 157 285 314 -7.110 -5.839 -1.470 -5.818 -0.901 -4.031 0.190 -0.365 -0.391 0.400
+ D 148 144 6 149 6 81 149 282 311 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 149 149 5 149 6 90 160 286 316 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 150 150 6 150 5 91 161 286 315 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 38 ] 48 364 a u a u
+ MP 151 150 6 155 6 95 162 285 314 -9.104 -9.043 -0.021 -7.820 -8.100 -8.495 -3.377 -2.459 -3.464 2.914 -3.964 -4.718 0.281 -3.651 -3.376 1.710 -3.921 0.732 0.014 -3.853 -1.621 -2.329
+ ML 152 150 6 155 6 88 157 283 312 -6.686 -7.032 -1.746 -0.669 -6.881 -4.411 0.738 -0.740 -0.213 -0.200
+ MR 153 150 6 155 6 87 156 283 312 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 154 150 6 155 6 80 149 280 309 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 155 155 5 155 6 90 159 284 314 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 156 156 6 156 5 90 159 284 313 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 39 ] 49 363 g c g c
+ MP 157 156 6 161 6 93 161 283 312 -9.104 -9.043 -0.021 -7.820 -8.100 -8.495 -2.729 -1.847 -2.807 1.402 -3.034 -3.532 0.958 -3.179 -2.668 2.492 -3.373 0.860 0.759 -2.839 -0.839 -1.192
+ ML 158 156 6 161 6 87 156 281 310 -6.686 -7.032 -1.541 -0.777 -6.881 -4.411 0.214 -0.775 0.486 -0.226
+ MR 159 156 6 161 6 86 155 281 310 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 160 156 6 161 6 80 148 278 307 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 161 161 5 161 6 89 158 282 312 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 162 162 6 162 5 89 158 282 311 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 40 ] 50 362 g c g c
+ MP 163 162 6 167 6 92 159 281 310 -9.111 -9.050 -0.021 -7.827 -8.106 -8.502 -3.105 -2.283 -3.130 1.505 -3.451 -3.908 0.825 -3.484 -3.266 2.569 -3.694 1.093 0.659 -3.180 -1.083 -1.744
+ ML 164 162 6 167 6 86 154 279 308 -6.618 -6.965 -1.373 -0.896 -6.814 -4.344 0.140 -0.570 0.219 0.084
+ MR 165 162 6 167 6 85 154 279 308 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 166 162 6 167 6 79 147 276 305 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 167 167 5 167 6 88 156 280 310 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 168 168 6 168 5 88 157 280 309 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 41 ] 51 361 u a u a
+ MP 169 168 6 173 6 90 157 279 308 -9.121 -9.060 -0.021 -7.837 -8.117 -8.512 -2.157 -2.247 -2.318 1.086 -1.730 -3.159 1.784 -2.510 -1.708 1.151 -2.913 -0.614 2.122 -2.208 -0.057 -1.453
+ ML 170 168 6 173 6 85 153 277 306 -6.508 -6.854 -1.277 -0.986 -6.704 -4.233 0.422 -0.575 0.007 -0.022
+ MR 171 168 6 173 6 84 152 277 306 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.471 -0.457 -0.189 0.012
+ D 172 168 6 173 6 79 146 274 303 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 173 173 5 173 6 87 155 278 308 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 174 174 6 174 5 87 155 278 307 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 42 ] 52 360 G C G C
+ MP 175 174 6 179 6 88 155 277 306 -9.131 -9.070 -0.021 -7.847 -8.126 -8.521 -3.516 -1.894 -3.499 1.126 -3.957 -4.090 0.455 -3.932 -2.965 3.157 -4.014 -0.225 0.285 -3.434 -1.483 -2.490
+ ML 176 174 6 179 6 84 152 275 304 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.554 -0.585 -0.093 -0.108
+ MR 177 174 6 179 6 83 151 275 304 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 178 174 6 179 6 78 146 272 301 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 179 179 5 179 6 86 153 276 306 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 180 180 6 180 5 86 153 276 305 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 43 ] 53 359 g c g c
+ MP 181 180 6 185 6 87 153 275 304 -9.131 -9.070 -0.021 -7.847 -8.126 -8.521 -3.046 -2.267 -3.045 1.555 -3.393 -3.759 0.838 -3.477 -3.265 2.733 -3.673 0.297 0.655 -2.346 -1.041 -2.003
+ ML 182 180 6 185 6 83 150 273 302 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.655 -0.581 -0.285 -0.095
+ MR 183 180 6 185 6 82 150 273 302 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 184 180 6 185 6 78 145 270 299 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 185 185 5 185 6 85 152 274 304 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 186 186 6 186 5 85 152 274 303 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 44 ] 54 358 u a u a
+ MP 187 186 6 191 6 85 151 273 302 -9.131 -9.070 -0.021 -7.847 -8.126 -8.521 -1.250 -1.889 -1.904 1.104 -1.444 -2.753 1.577 -2.208 -1.691 1.094 -2.531 -0.363 2.001 -1.648 0.005 -1.133
+ ML 188 186 6 191 6 82 149 271 300 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.186 -0.365 -0.396 0.407
+ MR 189 186 6 191 6 81 148 271 300 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.471 -0.457 -0.189 0.012
+ D 190 186 6 191 6 77 145 268 297 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 191 191 5 191 6 83 150 272 302 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 192 192 6 192 5 83 150 272 301 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 45 ] 55 357 g c g c
+ MP 193 192 6 197 6 83 150 271 300 -6.988 -9.070 -0.030 -7.847 -8.126 -8.521 -2.110 -2.006 -2.254 1.180 -1.899 -3.061 1.290 -2.596 -2.246 2.236 -2.882 -0.069 1.208 -1.208 -0.338 -0.999
+ ML 194 192 6 197 6 80 147 269 299 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.295 -0.590 0.242 -0.112
+ MR 195 192 6 197 6 79 147 269 298 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.471 -0.457 -0.189 0.012
+ D 196 192 6 197 6 77 144 267 296 -9.213 -7.911 -3.708 -4.390 -4.408 -0.281
+ IL 197 197 5 197 6 81 148 270 300 -2.665 -2.927 -0.704 -4.583 -5.359 -5.019 0.000 0.000 0.000 0.000
+ IR 198 198 6 198 5 81 148 270 299 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 46 ] 57 356 g c G C
+ MP 199 198 6 203 4 81 148 269 298 -2.992 -7.215 -0.239 -5.630 -2.477 -2.112 -2.586 1.146 -2.756 -2.726 0.927 -2.986 -1.864 2.727 -3.192 -0.206 0.721 -1.113 -0.731 -1.746
+ ML 200 198 6 203 4 79 146 268 297 -3.867 -4.049 -0.463 -2.779 0.554 -0.585 -0.093 -0.108
+ MR 201 198 6 203 4 78 145 267 296 -4.842 -3.871 -1.738 -0.744 0.323 -0.253 -0.283 0.121
+ D 202 198 6 203 4 77 144 266 295 -4.722 -4.403 -2.419 -0.458
+ IL 203 203 5 203 4 80 147 269 298 -1.774 -3.164 -0.796 -5.649 0.000 0.000 0.000 0.000
+ IR 204 204 6 204 3 80 147 268 298 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 47 ] 60 - a - a -
+ ML 205 204 6 207 3 79 145 266 296 -8.432 -0.086 -4.189 0.644 -1.487 0.627 -0.899
+ D 206 204 6 207 3 76 143 265 294 -5.784 -0.686 -1.472
+ IL 207 207 3 207 3 79 146 267 296 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 48 ] - 355 - A - A
+ MR 208 207 3 210 5 78 145 265 295 -7.124 -0.060 -6.939 -5.541 -8.043 1.661 -2.036 -1.837 -1.671
+ D 209 207 3 210 5 74 141 264 293 -5.667 -0.725 -2.560 -4.725 -2.574
+ IR 210 210 3 210 5 77 144 266 295 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 49 ] 61 354 c g u a
+ MP 211 210 3 215 6 77 144 264 294 -9.131 -9.070 -0.021 -7.847 -8.126 -8.521 0.915 -2.027 0.962 1.060 -2.105 -3.021 1.308 -2.441 -2.203 1.107 -2.761 -0.388 1.073 -2.323 -0.247 -1.355
+ ML 212 210 3 215 6 74 141 263 292 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.655 -0.581 -0.285 -0.095
+ MR 213 210 3 215 6 74 141 263 292 -7.099 -5.828 -1.737 -5.806 -0.748 -4.020 0.633 -0.566 -0.268 -0.084
+ D 214 210 3 215 6 70 137 260 289 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 215 215 5 215 6 76 143 264 293 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 216 216 6 216 5 76 143 264 293 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 50 ] 62 353 c g c g
+ MP 217 216 6 221 6 76 142 262 292 -9.131 -9.070 -0.021 -7.847 -8.126 -8.521 -2.813 -2.785 -2.913 0.778 -1.813 -3.722 2.323 -2.886 -2.915 1.187 -3.440 -0.873 1.968 -3.070 -0.111 -1.463
+ ML 218 216 6 221 6 73 139 261 290 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.193 0.035 -0.473 0.153
+ MR 219 216 6 221 6 73 140 261 290 -7.099 -5.828 -1.490 -5.806 -0.890 -4.020 0.633 -0.566 -0.268 -0.084
+ D 220 216 6 221 6 70 136 258 288 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 221 221 5 221 6 74 141 262 291 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 222 222 6 222 5 74 141 262 291 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 51 ] 63 352 g c a u
+ MP 223 222 6 227 4 74 140 260 290 -2.411 -8.183 -0.502 -3.287 -2.113 -1.827 -2.552 1.567 -2.740 -3.080 0.999 -2.949 -2.687 2.393 -3.154 0.524 0.876 -2.118 -0.683 -1.694
+ ML 224 222 6 227 4 71 138 259 288 -2.273 -4.823 -1.584 -1.238 0.357 -0.419 -0.330 0.234
+ MR 225 222 6 227 4 72 139 259 288 -4.164 -12.591 -0.453 -2.227 0.321 -0.373 -0.244 0.182
+ D 226 222 6 227 4 69 136 258 287 -12.938 -14.208 -2.236 -0.344
+ IL 227 227 5 227 4 72 139 259 288 -3.568 -5.071 -0.581 -2.200 0.000 0.000 0.000 0.000
+ IR 228 228 6 228 3 73 139 260 289 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 52 ] - 351 - u - a
+ MR 229 228 6 231 5 72 138 258 287 -4.445 -0.140 -6.819 -5.646 -5.798 0.151 -0.358 -0.477 0.476
+ D 230 228 6 231 5 69 135 257 286 -2.537 -0.905 -2.970 -4.662 -2.984
+ IR 231 231 3 231 5 72 138 258 288 -2.726 -0.384 -6.238 -4.405 -5.511 0.000 0.000 0.000 0.000
+ [ MATP 53 ] 65 349 u a u a
+ MP 232 231 3 236 6 72 138 257 286 -9.122 -9.061 -0.034 -6.241 -8.117 -8.512 -2.273 -2.305 -1.577 0.996 -2.168 -3.258 1.837 -2.599 -2.292 1.358 -3.013 -0.464 2.018 -2.558 0.020 -1.533
+ ML 233 231 3 236 6 68 134 256 285 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.277 -0.431 -0.131 0.181
+ MR 234 231 3 236 6 69 135 256 285 -7.103 -5.832 -1.484 -5.810 -0.893 -4.023 0.638 -0.570 -0.272 -0.087
+ D 235 231 3 236 6 64 130 253 282 -9.232 -7.931 -2.583 -4.410 -4.427 -0.446
+ IL 236 236 5 236 6 70 136 257 286 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 237 237 6 237 5 70 136 256 286 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 54 ] 66 348 u a u a
+ MP 238 237 6 242 6 70 136 255 284 -9.126 -9.065 -0.032 -7.841 -6.471 -8.516 -1.679 -1.839 -1.358 1.143 -1.815 -2.712 1.541 -1.897 -1.700 1.312 -2.497 -0.282 1.803 -1.775 0.085 -0.834
+ ML 239 237 6 242 6 67 133 254 283 -6.542 -6.888 -1.230 -1.020 -6.738 -4.267 0.254 -0.428 -0.284 0.314
+ MR 240 237 6 242 6 68 134 254 283 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.471 -0.457 -0.189 0.012
+ D 241 237 6 242 6 63 129 251 280 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 242 242 5 242 6 69 135 255 284 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 243 243 6 243 5 69 135 255 284 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 55 ] 67 347 g c g c
+ MP 244 243 6 248 4 68 134 253 282 -2.918 -8.157 -0.370 -3.470 -1.601 -1.710 -1.551 1.196 -1.800 -2.342 1.464 -1.698 -1.529 1.531 -2.411 0.374 1.349 -1.452 -0.029 -0.816
+ ML 245 243 6 248 4 65 131 252 281 -2.699 -4.823 -1.584 -1.068 0.300 -0.407 0.031 -0.010
+ MR 246 243 6 248 4 67 133 252 281 -4.418 -12.845 -0.305 -2.801 0.160 -0.260 -0.460 0.402
+ D 247 243 6 248 4 63 129 250 279 -12.938 -14.208 -2.236 -0.344
+ IL 248 248 5 248 4 67 133 253 282 -2.137 -5.078 -0.679 -3.079 0.000 0.000 0.000 0.000
+ IR 249 249 6 249 3 68 133 253 282 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 56 ] - 346 - c - c
+ MR 250 249 6 252 5 67 133 251 280 -3.611 -0.181 -6.899 -6.517 -5.907 -0.088 0.481 -1.175 0.288
+ D 251 249 6 252 5 62 128 250 279 -4.073 -0.728 -2.716 -4.881 -2.730
+ IR 252 252 3 252 5 67 132 251 280 -2.719 -0.386 -6.230 -4.398 -5.503 0.000 0.000 0.000 0.000
+ [ MATP 57 ] 72 344 g c g c
+ MP 253 252 3 257 6 68 133 250 279 -9.130 -9.069 -0.021 -7.846 -8.125 -8.520 -1.880 -1.948 -1.772 1.242 -1.762 -2.885 1.576 -1.987 -2.122 1.633 -2.674 0.363 1.340 -2.178 0.103 -0.870
+ ML 254 252 3 257 6 63 128 248 277 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.293 -0.514 0.090 0.014
+ MR 255 252 3 257 6 63 128 248 277 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 256 252 3 257 6 57 122 246 275 -9.229 -7.927 -2.601 -4.406 -4.424 -0.443
+ IL 257 257 5 257 6 65 130 249 279 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 258 258 6 258 5 65 130 249 278 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 58 ] 73 343 g c g c
+ MP 259 258 6 263 6 66 131 248 277 -9.138 -9.078 -0.021 -7.854 -8.134 -8.529 -1.626 -1.909 -2.035 1.208 -1.995 -2.857 1.493 -1.990 -1.988 1.759 -2.649 -0.135 1.445 -2.059 0.132 -0.653
+ ML 260 258 6 263 6 62 127 246 275 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.295 -0.590 0.242 -0.112
+ MR 261 258 6 263 6 62 126 246 275 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 262 258 6 263 6 57 121 243 272 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 263 263 5 263 6 64 129 247 277 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 264 264 6 264 5 64 129 247 276 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 59 ] 74 342 c g u a
+ MP 265 264 6 269 6 65 129 246 275 -9.138 -9.078 -0.067 -5.109 -6.614 -8.529 -1.722 -1.885 -1.909 1.300 -1.316 -2.755 1.762 -2.211 -1.968 1.140 -2.534 -0.345 1.487 -1.320 0.289 -0.524
+ ML 266 264 6 269 6 61 126 244 273 -6.394 -6.741 -1.455 -0.873 -6.590 -4.120 0.190 -0.063 -0.466 0.236
+ MR 267 264 6 269 6 60 125 244 273 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.395 -0.487 -0.004 -0.037
+ D 268 264 6 269 6 56 120 241 271 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 269 269 5 269 6 63 127 245 275 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 270 270 6 270 5 63 127 245 274 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 60 ] 75 341 c g g c
+ MP 271 270 6 275 6 63 127 244 273 -9.092 -9.032 -0.021 -7.808 -8.088 -8.483 -1.578 -1.381 -1.794 1.250 -1.796 -1.159 1.521 -1.852 -1.819 1.477 -2.343 -0.160 1.277 -1.072 -0.020 -0.541
+ ML 272 270 6 275 6 60 125 243 272 -6.776 -7.122 -0.965 -1.254 -6.972 -4.502 0.013 0.052 -0.596 0.370
+ MR 273 270 6 275 6 59 123 242 271 -7.123 -5.852 -1.448 -5.830 -0.914 -4.044 0.181 -0.017 -0.482 0.217
+ D 274 270 6 275 6 56 120 240 269 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 275 275 5 275 6 61 126 244 273 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 276 276 6 276 5 61 125 243 272 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 61 ] 76 340 g c g c
+ MP 277 276 6 281 6 61 125 242 271 -9.138 -9.078 -0.103 -4.298 -8.134 -6.479 -2.113 -1.684 -2.098 1.325 -2.373 -2.529 1.105 -2.212 -2.369 2.370 -2.883 0.053 0.936 -1.305 -0.456 -1.314
+ ML 278 276 6 281 6 59 123 241 270 -6.394 -6.741 -1.455 -0.948 -6.590 -3.554 0.423 -0.512 -0.075 0.013
+ MR 279 276 6 281 6 58 122 240 270 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 280 276 6 281 6 55 119 238 268 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 281 281 5 281 6 60 124 242 271 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 282 282 6 282 5 60 124 241 270 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 62 ] 77 339 c g g c
+ MP 283 282 6 287 4 59 123 240 269 -6.811 -3.468 -0.239 -4.232 -1.504 -1.429 -1.347 1.218 -1.697 -2.069 1.514 -2.049 -1.170 1.353 -2.043 -0.000 1.344 -1.835 0.313 -0.712
+ ML 284 282 6 287 4 58 122 239 269 -4.368 -1.881 -0.884 -2.853 0.168 -0.068 -0.479 0.269
+ MR 285 282 6 287 4 56 120 239 268 -4.842 -3.871 -1.738 -0.744 0.395 -0.487 -0.004 -0.037
+ D 286 282 6 287 4 55 119 238 267 -4.836 -2.663 -2.533 -0.657
+ IL 287 287 5 287 4 59 123 240 269 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 288 288 6 288 3 58 122 239 268 -1.900 -0.734 -2.933 0.000 0.000 0.000 0.000
+ [ MATL 63 ] 78 - u - u -
+ ML 289 288 6 291 5 58 122 238 267 -4.106 -0.270 -5.588 -5.227 -3.936 -0.129 0.024 -0.499 0.445
+ D 290 288 6 291 5 54 117 236 266 -5.607 -0.748 -3.397 -3.065 -2.560
+ IL 291 291 3 291 5 59 123 238 267 -2.209 -0.517 -4.365 -6.197 -5.471 0.000 0.000 0.000 0.000
+ [ MATP 64 ] 82 336 c g c g
+ MP 292 291 3 296 6 62 125 237 266 -9.070 -9.009 -0.022 -7.785 -8.065 -8.460 -1.769 -1.922 -1.952 1.217 -1.194 -2.584 1.919 -2.232 -1.794 1.148 -2.292 -0.366 1.543 -2.092 0.173 -1.000
+ ML 293 291 3 296 6 55 118 235 264 -6.482 -6.828 -1.314 -0.960 -6.678 -4.208 0.111 0.186 -0.571 0.149
+ MR 294 291 3 296 6 55 118 235 264 -7.154 -5.883 -1.660 -5.861 -0.778 -4.075 0.250 -0.456 -0.057 0.164
+ D 295 291 3 296 6 49 111 233 262 -9.725 -8.423 -1.993 -4.902 -4.920 -0.560
+ IL 296 296 5 296 6 57 121 236 266 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 297 297 6 297 5 58 121 236 265 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 65 ] 83 335 c g c g
+ MP 298 297 6 302 6 61 123 235 264 -9.108 -9.048 -0.021 -7.824 -8.104 -8.499 -1.918 -2.069 -1.335 1.032 -1.565 -2.934 2.034 -2.334 -2.141 1.009 -2.172 -0.566 1.525 -2.237 0.726 -1.279
+ ML 299 297 6 302 6 54 117 233 262 -6.394 -6.741 -1.209 -1.064 -6.590 -4.120 0.190 -0.063 -0.466 0.236
+ MR 300 297 6 302 6 54 117 233 262 -7.114 -5.843 -1.464 -5.821 -0.905 -4.035 0.295 -0.590 0.242 -0.112
+ D 301 297 6 302 6 48 110 230 259 -9.407 -8.105 -3.902 -4.585 -2.082 -0.621
+ IL 302 302 5 302 6 56 119 234 264 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 303 303 6 303 5 57 120 234 263 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 66 ] 84 334 a u a u
+ MP 304 303 6 308 6 60 121 233 262 -9.125 -9.065 -0.021 -7.841 -8.121 -8.516 -1.805 -1.929 -1.986 1.560 -1.647 -2.826 1.559 -1.153 -2.045 1.221 -2.605 -0.211 1.540 -2.121 -0.031 -0.567
+ ML 305 303 6 308 6 54 116 231 260 -6.293 -6.640 -1.354 -0.962 -6.489 -4.019 0.306 -0.370 -0.261 0.208
+ MR 306 303 6 308 6 53 115 231 260 -7.239 -5.968 -1.877 -5.946 -0.660 -4.160 0.067 0.204 -0.620 0.201
+ D 307 303 6 308 6 47 109 228 257 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 308 308 5 308 6 56 118 232 262 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 309 309 6 309 5 56 118 232 261 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 67 ] 85 333 c g g c
+ MP 310 309 6 314 6 59 119 231 260 -9.125 -9.065 -0.021 -7.841 -8.121 -8.516 -1.493 -1.509 -1.258 1.218 -1.682 -2.079 1.586 -2.039 -0.572 1.201 -1.915 -0.359 1.418 -1.602 0.287 -0.957
+ ML 311 309 6 314 6 53 115 229 258 -6.293 -6.640 -1.354 -0.962 -6.489 -4.019 0.495 -0.474 -0.195 -0.005
+ MR 312 309 6 314 6 53 114 229 258 -7.239 -5.968 -1.877 -5.946 -0.660 -4.160 0.180 0.135 -0.564 0.128
+ D 313 309 6 314 6 47 108 226 255 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 314 314 5 314 6 55 117 230 260 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 315 315 6 315 5 55 117 230 259 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 68 ] 86 332 c g u a
+ MP 316 315 6 320 6 57 118 229 258 -9.125 -9.065 -0.070 -5.978 -5.715 -6.820 -1.164 -1.686 -0.636 1.187 -0.912 -2.162 1.530 -2.020 -1.646 1.040 -2.152 -0.377 1.520 -1.256 0.328 -0.940
+ ML 317 315 6 320 6 52 114 227 257 -6.293 -6.640 -1.354 -0.962 -6.489 -4.019 0.495 -0.474 -0.195 -0.005
+ MR 318 315 6 320 6 52 113 227 256 -7.239 -5.968 -1.877 -5.946 -0.660 -4.160 0.178 -0.403 -0.485 0.483
+ D 319 315 6 320 6 46 107 224 253 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 320 320 5 320 6 54 116 228 258 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 321 321 6 321 5 55 116 228 257 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 69 ] 87 331 c g a u
+ MP 322 321 6 326 6 56 116 227 256 -4.085 -6.137 -0.127 -7.793 -8.072 -8.467 -1.617 -1.571 -1.821 1.341 -1.814 -2.613 1.467 -1.445 -1.730 1.441 -2.400 -0.005 1.323 -1.257 -0.023 -0.262
+ ML 323 321 6 326 6 52 112 226 255 -2.578 -6.842 -1.556 -1.250 -6.691 -4.221 0.228 -0.488 0.204 -0.053
+ MR 324 321 6 326 6 52 112 225 255 -7.443 -3.486 -1.261 -6.150 -1.234 -4.364 0.095 -0.257 -0.118 0.231
+ D 325 321 6 326 6 46 106 223 252 -9.234 -7.932 -2.576 -4.411 -4.429 -0.448
+ IL 326 326 5 326 6 54 114 226 255 -3.332 -2.720 -0.568 -4.656 -6.027 -5.687 0.000 0.000 0.000 0.000
+ IR 327 327 6 327 5 53 114 226 255 -2.666 -0.490 -6.177 -3.415 -5.451 0.000 0.000 0.000 0.000
+ [ MATP 70 ] 89 329 g c G C
+ MP 328 327 6 332 6 55 114 225 254 -9.134 -9.073 -0.028 -6.747 -8.129 -8.524 -3.290 -2.368 -3.252 1.196 -3.635 -3.908 0.837 -3.690 -3.486 2.960 -3.861 0.097 0.468 -2.561 -0.927 -2.258
+ ML 329 327 6 332 6 50 111 223 252 -6.293 -6.640 -1.354 -0.962 -6.489 -4.019 0.388 -0.502 0.028 -0.051
+ MR 330 327 6 332 6 50 111 223 252 -7.155 -5.884 -1.394 -5.862 -0.946 -4.076 0.148 0.120 -0.528 0.153
+ D 331 327 6 332 6 45 105 220 249 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 332 332 5 332 6 52 113 224 253 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 333 333 6 333 5 52 113 224 253 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 71 ] 90 328 g c g c
+ MP 334 333 6 338 6 53 112 223 252 -9.139 -9.078 -0.028 -6.731 -8.135 -8.530 -1.898 -1.674 -2.375 1.258 -2.485 -2.627 1.215 -2.252 -2.492 2.434 -2.992 0.016 0.926 -2.447 -0.349 -1.420
+ ML 335 333 6 338 6 49 109 221 250 -6.385 -6.731 -1.222 -1.054 -6.581 -4.110 0.541 -0.579 -0.081 -0.105
+ MR 336 333 6 338 6 49 109 221 250 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 337 333 6 338 6 45 105 218 247 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 338 338 5 338 6 51 111 222 251 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 339 339 6 339 5 51 111 222 251 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 72 ] 91 327 c g c g
+ MP 340 339 6 344 6 51 111 221 250 -9.139 -9.078 -0.030 -7.855 -6.671 -8.529 -2.404 -2.478 -2.545 0.874 -1.688 -3.372 2.201 -2.561 -2.569 0.956 -3.114 -0.742 1.516 -2.310 1.144 -1.468
+ ML 341 339 6 344 6 48 108 219 248 -6.387 -6.733 -1.219 -1.056 -6.583 -4.113 0.198 -0.079 -0.456 0.236
+ MR 342 339 6 344 6 48 108 219 248 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.395 -0.487 -0.004 -0.037
+ D 343 339 6 344 6 44 104 217 246 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 344 344 5 344 6 49 109 220 249 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 345 345 6 345 5 49 109 220 249 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 73 ] 92 326 c g c g
+ MP 346 345 6 350 4 49 109 219 248 -2.610 -8.180 -0.336 -4.634 -1.829 -1.646 -2.014 1.120 -1.908 -2.844 1.957 -2.292 -2.062 1.122 -2.617 -0.450 1.483 -1.066 0.392 -0.763
+ ML 347 345 6 350 4 46 106 218 247 -2.499 -4.623 -1.383 -1.325 0.306 -0.370 -0.261 0.208
+ MR 348 345 6 350 4 47 107 218 247 -4.376 -12.803 -0.315 -2.759 0.564 -0.436 -0.329 -0.020
+ D 349 345 6 350 4 44 104 215 245 -12.938 -14.208 -2.236 -0.344
+ IL 350 350 5 350 4 48 107 218 247 -3.470 -4.973 -0.358 -3.352 0.000 0.000 0.000 0.000
+ IR 351 351 6 351 3 48 108 218 247 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 74 ] - 325 - a - a
+ MR 352 351 6 354 3 47 107 217 246 -8.447 -0.148 -3.397 0.403 -0.672 -0.391 0.365
+ D 353 351 6 354 3 43 103 215 244 -6.500 -1.678 -0.564
+ IR 354 354 3 354 3 48 107 217 246 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 75 ] - 324 - a - a
+ MR 355 354 3 357 3 48 106 216 245 -2.287 -0.349 -6.635 0.709 -0.330 -0.831 0.011
+ D 356 354 3 357 3 42 102 214 243 -2.657 -1.094 -1.423
+ IR 357 357 3 357 3 47 106 216 245 -2.734 -0.290 -4.972 0.000 0.000 0.000 0.000
+ [ MATR 76 ] - 322 - u - u
+ MR 358 357 3 360 3 47 105 214 244 -8.454 -0.017 -6.771 -0.105 0.154 -1.189 0.603
+ D 359 357 3 360 3 40 99 213 242 -6.441 -1.618 -0.593
+ IR 360 360 3 360 3 46 105 215 244 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 77 ] - 321 - c - a
+ MR 361 360 3 363 3 46 105 213 243 -8.454 -0.033 -5.650 0.195 0.285 -0.745 0.057
+ D 362 360 3 363 3 39 98 212 241 -6.441 -1.618 -0.593
+ IR 363 363 3 363 3 45 104 214 243 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 78 ] - 320 - A - A
+ MR 364 363 3 366 5 46 104 212 242 -7.171 -0.077 -6.987 -4.891 -8.091 1.033 -0.972 -0.417 -0.524
+ D 365 363 3 366 5 38 97 211 240 -5.455 -0.688 -3.081 -4.512 -2.361
+ IR 366 366 3 366 5 43 102 213 242 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 79 ] 94 319 G C G C
+ MP 367 366 3 371 6 47 104 211 241 -9.133 -9.072 -0.021 -7.849 -8.129 -8.524 -4.103 -2.820 -4.141 0.586 -4.607 -4.432 -0.115 -4.511 -2.340 3.464 -4.368 -0.431 -0.419 -3.959 -2.089 -3.090
+ ML 368 366 3 371 6 40 98 210 239 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 369 366 3 371 6 40 98 210 239 -7.195 -5.924 -1.332 -5.902 -0.986 -4.116 0.108 0.193 -0.575 0.148
+ D 370 366 3 371 6 34 91 207 236 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 371 371 5 371 6 42 100 211 240 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 372 372 6 372 5 42 101 211 240 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 80 ] 95 318 G C G C
+ MP 373 372 6 377 6 45 102 209 239 -9.149 -6.890 -0.030 -7.865 -8.145 -8.540 -4.002 -2.746 -3.994 0.656 -4.516 -3.038 -0.019 -4.477 -3.995 3.392 -4.318 0.118 -0.309 -3.751 -1.977 -2.999
+ ML 374 372 6 377 6 40 97 208 237 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 375 372 6 377 6 39 97 208 237 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 376 372 6 377 6 34 91 205 234 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 377 377 5 377 6 41 99 209 238 -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 42 99 209 238 -2.466 -0.473 -5.977 -4.145 -5.250 0.000 0.000 0.000 0.000
+ [ MATP 81 ] 96 316 g c g c
+ MP 379 378 6 383 6 44 100 207 237 -9.149 -9.089 -0.059 -7.865 -5.079 -8.540 -1.685 -1.336 -1.612 1.252 -1.899 -2.039 1.332 -2.228 -1.942 1.705 -2.086 0.369 1.297 -1.759 0.046 -0.968
+ ML 380 378 6 383 6 39 96 206 235 -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 39 96 206 235 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 382 378 6 383 6 33 90 203 232 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 383 383 5 383 6 41 98 207 236 -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 41 98 207 236 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 82 ] 97 315 c g C G
+ MP 385 384 6 389 6 43 98 205 235 -9.111 -9.051 -0.021 -7.827 -8.107 -8.502 -2.593 -2.616 -2.605 0.808 -2.251 -3.515 2.413 -2.756 -2.728 0.974 -2.324 -0.822 1.694 -2.867 0.490 -1.605
+ ML 386 384 6 389 6 38 95 204 233 -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 38 95 204 233 -7.399 -6.128 -1.069 -6.106 -1.190 -4.320 0.034 -0.853 0.688 -0.303
+ D 388 384 6 389 6 33 89 201 230 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 389 389 5 389 6 40 96 205 234 -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 40 96 205 234 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 83 ] 98 314 c g c g
+ MP 391 390 6 395 6 41 96 203 233 -9.149 -9.089 -0.020 -7.865 -8.145 -8.540 -2.134 -2.253 -2.299 0.966 -0.723 -3.143 1.990 -2.484 -2.334 1.037 -2.413 -0.497 1.736 -2.445 0.589 -1.438
+ ML 392 390 6 395 6 37 93 202 231 -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 37 93 202 231 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.471 -0.457 -0.189 0.012
+ D 394 390 6 395 6 32 88 199 228 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 395 395 5 395 6 39 95 203 232 -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 39 95 203 232 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 84 ] 99 313 c g u a
+ MP 397 396 6 401 6 39 94 201 231 -6.864 -9.089 -0.031 -7.865 -8.145 -8.540 -1.638 -1.792 -1.833 1.134 -1.785 -2.219 1.711 -1.878 -1.888 1.129 -2.449 -0.214 1.640 -1.205 0.257 -0.701
+ ML 398 396 6 401 6 36 92 200 229 -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 35 91 200 229 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.471 -0.457 -0.189 0.012
+ D 400 396 6 401 6 32 88 197 226 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 401 401 5 401 6 37 93 201 230 -2.676 -2.938 -0.697 -4.594 -5.370 -5.030 0.000 0.000 0.000 0.000
+ IR 402 402 6 402 5 37 93 201 230 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 85 ] 101 312 g c g c
+ MP 403 402 6 407 6 37 93 199 229 -9.149 -9.089 -0.041 -7.865 -5.855 -8.540 -2.889 -2.205 -2.923 1.459 -3.231 -3.637 0.857 -3.347 -3.115 2.639 -3.536 0.660 0.658 -2.347 -0.967 -1.423
+ ML 404 402 6 407 6 35 91 198 227 -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 34 90 198 227 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 406 402 6 407 6 32 87 196 225 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 407 407 5 407 6 36 92 199 228 -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 36 91 199 228 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 86 ] 102 311 c g g c
+ MP 409 408 6 413 4 35 91 197 227 -7.005 -4.996 -0.351 -2.501 -1.348 -1.464 -1.507 1.311 -1.746 -2.576 1.443 -1.879 -1.808 1.385 -2.111 0.114 1.372 -1.091 0.006 -0.551
+ ML 410 408 6 413 4 34 90 197 226 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 411 408 6 413 4 33 88 196 226 -5.086 -3.706 -1.688 -0.777 0.522 -0.600 -0.088 -0.055
+ D 412 408 6 413 4 31 87 195 224 -4.611 -4.292 -2.308 -0.502
+ IL 413 413 5 413 4 35 91 198 227 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 414 414 6 414 3 35 90 197 227 -1.532 -0.756 -4.004 0.000 0.000 0.000 0.000
+ [ MATL 87 ] 103 - u - u -
+ ML 415 414 6 417 5 34 89 196 225 -6.960 -0.169 -5.224 -4.258 -5.426 0.078 -0.612 -0.367 0.599
+ D 416 414 6 417 5 31 86 194 223 -5.919 -1.580 -5.181 -2.952 -1.023
+ IL 417 417 3 417 5 35 90 196 225 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 88 ] 104 309 g c g c
+ MP 418 417 3 422 4 34 89 195 224 -6.655 -4.158 -0.213 -3.807 -2.215 -1.623 -2.347 1.379 -2.424 -3.110 1.340 -2.697 -1.985 2.266 -2.942 0.059 1.030 -1.737 -0.419 -1.503
+ ML 419 417 3 422 4 32 87 194 223 -3.862 -4.045 -0.465 -2.774 0.193 -0.365 -0.388 0.397
+ MR 420 417 3 422 4 30 86 193 223 -3.678 -4.265 -1.760 -0.800 -0.035 -0.190 -0.697 0.614
+ D 421 417 3 422 4 30 85 193 222 -5.643 -1.501 -2.184 -1.298
+ IL 422 422 5 422 4 34 88 195 224 -1.769 -2.453 -1.025 -4.938 0.000 0.000 0.000 0.000
+ IR 423 423 6 423 3 33 88 194 223 -1.854 -0.570 -4.325 0.000 0.000 0.000 0.000
+ [ MATL 89 ] 106 - u - u -
+ ML 424 423 6 426 5 33 87 192 222 -5.623 -0.059 -6.888 -7.100 -7.992 -0.212 -0.639 0.030 0.559
+ D 425 423 6 426 5 28 83 191 220 -5.548 -0.544 -4.810 -3.006 -2.914
+ IL 426 426 3 426 5 31 86 193 222 -2.459 -0.476 -4.138 -5.970 -5.244 0.000 0.000 0.000 0.000
+ [ MATP 90 ] 108 307 c g g c
+ MP 427 426 3 431 6 33 86 191 221 -9.149 -9.089 -0.020 -7.865 -8.145 -8.540 -1.573 -1.221 -1.778 1.168 -1.568 -2.322 1.500 -2.115 -1.825 1.397 -1.775 0.244 1.406 -1.261 0.201 -1.027
+ ML 428 426 3 431 6 29 83 190 219 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 429 426 3 431 6 28 82 190 219 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.321 -0.373 -0.244 0.182
+ D 430 426 3 431 6 24 78 187 216 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 431 431 5 431 6 30 85 191 220 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 432 432 6 432 5 30 85 191 220 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 91 ] 109 306 u a u a
+ MP 433 432 6 437 6 31 84 189 219 -9.149 -9.089 -0.020 -7.865 -8.145 -8.540 -1.893 -2.004 -1.900 1.188 -1.379 -2.910 1.565 -2.350 -1.863 1.440 -2.688 0.099 1.738 -2.202 0.027 -1.070
+ ML 434 432 6 437 6 28 82 188 217 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 435 432 6 437 6 26 80 188 217 -7.016 -5.745 -1.654 -5.723 -0.807 -3.937 0.323 -0.253 -0.283 0.121
+ D 436 432 6 437 6 24 78 185 215 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 437 437 5 437 6 29 83 189 218 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 438 438 6 438 5 29 83 189 218 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 92 ] 110 305 g c g c
+ MP 439 438 6 443 4 29 82 187 217 -7.055 -3.030 -0.234 -5.676 -2.367 -1.533 -2.482 1.340 -2.674 -2.406 1.021 -2.888 -2.613 2.498 -3.088 0.243 0.833 -1.345 -0.663 -1.642
+ ML 440 438 6 443 4 27 81 187 216 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 441 438 6 443 4 25 79 186 215 -4.842 -3.871 -1.738 -0.744 0.321 -0.373 -0.244 0.182
+ D 442 438 6 443 4 23 77 185 214 -4.611 -4.292 -2.308 -0.502
+ IL 443 443 5 443 4 28 82 188 217 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 444 444 6 444 3 28 81 187 216 -1.786 -0.588 -4.486 0.000 0.000 0.000 0.000
+ [ MATL 93 ] 111 - c - c -
+ ML 445 444 6 447 5 27 80 185 214 -7.181 -0.037 -6.997 -7.209 -8.100 -0.530 0.941 -1.251 -0.048
+ D 446 444 6 447 5 23 76 184 213 -5.024 -0.814 -4.285 -2.660 -2.389
+ IL 447 447 3 447 5 26 80 185 214 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 94 ] 112 303 c g c g
+ MP 448 447 3 452 6 26 80 184 213 -9.152 -9.091 -0.033 -6.270 -8.147 -8.542 -2.146 -2.245 0.165 0.927 -2.079 -3.124 1.861 -2.509 -2.352 1.046 -2.899 -0.436 1.317 -2.446 1.142 -1.462
+ ML 449 447 3 452 6 24 77 183 212 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 450 447 3 452 6 22 76 182 211 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 451 447 3 452 6 20 73 180 209 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 452 452 5 452 6 25 78 184 213 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 453 453 6 453 5 25 78 183 212 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 95 ] 113 302 a u a u
+ MP 454 453 6 458 4 24 78 182 211 -2.681 -7.237 -0.443 -3.295 -1.540 -1.480 -1.742 1.636 -1.621 -2.569 1.441 -1.334 -1.347 1.080 -2.355 -0.091 1.374 -1.419 0.023 -0.600
+ ML 455 453 6 458 4 23 76 181 210 -2.744 -4.063 -0.629 -2.792 0.167 -0.367 -0.416 0.435
+ MR 456 453 6 458 4 21 74 179 208 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 457 453 6 458 4 19 72 178 207 -4.611 -4.292 -2.308 -0.502
+ IL 458 458 5 458 4 23 76 183 212 -0.912 -4.027 -1.930 -2.787 0.000 0.000 0.000 0.000
+ IR 459 459 6 459 3 24 77 177 198 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 96 ] 126 - u - u -
+ ML 460 459 6 462 3 24 77 174 195 -7.822 -0.030 -5.978 0.180 -0.330 -0.674 0.531
+ D 461 459 6 462 3 19 71 173 193 -7.561 -0.753 -1.317
+ IL 462 462 3 462 3 23 76 176 197 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 97 ] 127 - u - u -
+ ML 463 462 3 465 3 24 76 173 194 -8.015 -0.020 -6.669 0.189 -0.543 -0.759 0.663
+ D 464 462 3 465 3 17 68 172 192 -6.673 -2.017 -0.428
+ IL 465 465 3 465 3 22 75 175 196 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 98 ] 128 - u - u -
+ ML 466 465 3 468 3 23 75 172 193 -8.021 -0.020 -6.675 -0.025 -0.736 -0.886 0.907
+ D 467 465 3 468 3 16 67 171 191 -6.633 -1.097 -0.937
+ IL 468 468 3 468 3 21 74 174 195 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 99 ] 129 - u - u -
+ ML 469 468 3 471 5 23 75 171 192 -7.186 -0.050 -7.001 -5.971 -8.105 -0.128 -0.904 0.199 0.488
+ D 470 468 3 471 5 15 65 170 190 -4.993 -0.837 -4.255 -2.630 -2.359
+ IL 471 471 3 471 5 20 71 172 192 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 100 ] 130 301 c g c g
+ MP 472 471 3 476 6 24 75 170 191 -9.145 -9.085 -0.021 -7.861 -8.141 -8.536 -1.522 -1.508 -1.289 1.168 -1.365 -0.710 1.812 -1.769 -1.784 1.113 -2.355 -0.390 1.337 -1.470 0.047 -0.982
+ ML 473 471 3 476 6 17 67 169 189 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 474 471 3 476 6 17 67 169 189 -7.063 -5.792 -1.480 -5.770 -0.904 -3.983 0.257 -0.095 -0.389 0.144
+ D 475 471 3 476 6 13 60 166 187 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 476 476 5 476 6 19 70 170 190 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 477 477 6 477 5 19 70 170 190 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 101 ] 131 300 c g c g
+ MP 478 477 6 482 6 24 73 168 189 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.963 -2.982 -3.017 0.499 -2.377 -3.747 2.012 -2.954 -3.040 0.683 -3.527 -1.161 1.686 -3.203 1.877 -0.947
+ ML 479 477 6 482 6 17 66 167 187 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 480 477 6 482 6 17 66 167 187 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 481 477 6 482 6 12 59 164 185 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 482 482 5 482 6 18 69 168 188 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 483 483 6 483 5 19 69 168 188 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 102 ] 132 299 g c g c
+ MP 484 483 6 488 6 23 72 166 187 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.855 -2.172 -2.894 1.323 -3.224 -3.085 0.823 -3.333 -3.087 2.730 -2.684 0.644 0.574 -2.888 -0.978 -1.692
+ ML 485 483 6 488 6 16 65 165 185 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 486 483 6 488 6 16 65 165 185 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 487 483 6 488 6 12 58 162 183 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 488 488 5 488 6 18 68 166 186 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 489 489 6 489 5 18 68 166 186 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 103 ] 133 298 G C G C
+ MP 490 489 6 494 6 23 70 164 185 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.757 -1.853 -3.739 1.122 -4.410 -4.308 0.110 -4.190 -3.811 3.208 -4.185 0.476 -0.161 -3.671 -1.842 -2.692
+ ML 491 489 6 494 6 16 64 163 183 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 492 489 6 494 6 16 64 163 183 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 493 489 6 494 6 12 58 160 181 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 494 494 5 494 6 18 67 164 184 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 495 495 6 495 5 18 67 164 184 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 104 ] 134 297 c g C G
+ MP 496 495 6 500 6 22 69 162 183 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -1.813 -2.257 -2.309 0.897 -1.527 -3.147 2.510 -2.527 -2.350 0.913 -2.144 -0.436 1.315 -2.452 0.053 -1.472
+ ML 497 495 6 500 6 16 63 161 181 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 498 495 6 500 6 15 63 161 181 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 499 495 6 500 6 11 57 158 179 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 500 500 5 500 6 17 66 162 182 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 501 501 6 501 5 17 66 162 182 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 105 ] 135 296 c g C G
+ MP 502 501 6 506 6 21 67 160 181 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.041 -2.994 -3.114 0.645 -1.895 -3.897 2.694 -3.009 -3.103 0.849 -3.612 -0.504 1.496 -3.284 0.351 -2.045
+ ML 503 501 6 506 6 15 62 159 179 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 504 501 6 506 6 15 62 159 179 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 505 501 6 506 6 11 57 156 177 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 506 506 5 506 6 17 64 160 180 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 507 507 6 507 5 17 64 160 180 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 106 ] 136 295 c g c g
+ MP 508 507 6 512 6 19 65 158 179 -7.149 -9.091 -0.028 -7.868 -8.147 -8.542 -3.028 -3.018 -3.085 0.557 -2.406 -3.836 2.240 -2.987 -3.090 0.742 -3.585 -1.116 2.048 -3.267 1.086 -1.472
+ ML 509 507 6 512 6 14 61 157 177 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 510 507 6 512 6 15 61 157 177 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 511 507 6 512 6 11 56 154 175 -9.094 -7.792 -3.589 -4.272 -3.607 -0.364
+ IL 512 512 5 512 6 16 63 158 178 -2.655 -2.917 -0.710 -4.573 -5.349 -5.009 0.000 0.000 0.000 0.000
+ IR 513 513 6 513 5 16 63 157 178 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 107 ] 138 294 G C G C
+ MP 514 513 6 518 6 18 63 156 177 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -4.556 -2.988 -4.625 0.375 -5.314 -4.690 -0.625 -4.982 -4.272 3.572 -4.621 -0.094 -0.923 -4.338 -2.649 -3.513
+ ML 515 513 6 518 6 13 59 155 175 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 516 513 6 518 6 14 60 155 175 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 517 513 6 518 6 10 55 152 173 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 518 518 5 518 6 15 61 156 176 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 519 519 6 519 5 15 61 156 176 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 108 ] 139 293 c a c a
+ MP 520 519 6 524 4 16 61 154 175 -6.969 -5.901 -0.096 -4.668 -4.158 -4.255 -3.846 -0.655 2.920 -4.226 1.687 -3.372 -3.912 -0.530 -4.188 -2.475 0.814 -4.214 0.380 -2.796
+ ML 521 519 6 524 4 12 58 153 174 -2.408 -4.532 -1.293 -1.473 0.368 -0.385 -0.191 0.094
+ MR 522 519 6 524 4 13 59 153 174 -4.170 -12.597 -0.370 -2.553 0.478 -0.462 -0.191 0.007
+ D 523 519 6 524 4 10 55 151 172 -12.737 -14.007 -2.036 -0.404
+ IL 524 524 5 524 4 13 59 153 174 -2.817 -4.319 -0.613 -2.698 0.000 0.000 0.000 0.000
+ IR 525 525 6 525 3 14 60 154 174 -1.988 -0.526 -4.226 0.000 0.000 0.000 0.000
+ [ MATR 109 ] - 291 - a - A
+ MR 526 525 6 528 3 15 60 152 172 -8.459 -0.017 -6.777 0.983 -0.514 -1.122 -0.211
+ D 527 525 6 528 3 10 54 150 171 -6.390 -1.568 -0.620
+ IR 528 528 3 528 3 14 59 153 173 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 110 ] - 290 - U - U
+ MR 529 528 3 531 3 14 59 151 171 -8.459 -0.017 -6.777 -1.444 -1.295 -2.182 1.587
+ D 530 528 3 531 3 9 53 150 170 -6.390 -1.568 -0.620
+ IR 531 531 3 531 3 13 58 152 172 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 111 ] - 289 - A - A
+ MR 532 531 3 534 5 14 58 150 170 -7.191 -0.042 -7.007 -6.581 -8.111 1.763 -2.598 -2.208 -2.163
+ D 533 531 3 534 5 9 52 149 169 -5.352 -0.707 -2.978 -4.409 -2.404
+ IR 534 534 3 534 5 12 56 150 171 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 112 ] 140 288 C G C G
+ MP 535 534 3 539 6 14 57 149 169 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -4.783 -4.709 -4.433 -0.921 -3.101 -4.814 3.617 -3.935 -4.491 -0.712 -4.726 -2.660 0.388 -4.836 -0.814 -3.323
+ ML 536 534 3 539 6 10 53 148 169 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 537 534 3 539 6 9 51 148 168 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.393 -0.492 0.005 -0.041
+ D 538 534 3 539 6 7 48 146 167 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 539 539 5 539 6 11 55 149 169 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 540 540 6 540 5 11 55 148 169 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 113 ] 141 287 C G C G
+ MP 541 540 6 545 4 12 56 147 167 -7.061 -7.268 -0.049 -5.683 -4.783 -4.709 -4.433 -0.921 -3.101 -4.814 3.617 -3.935 -4.491 -0.712 -4.726 -2.660 0.388 -4.836 -0.814 -3.323
+ ML 542 540 6 545 4 9 52 147 168 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 543 540 6 545 4 8 49 147 167 -4.845 -3.874 -1.741 -0.742 0.393 -0.492 0.005 -0.041
+ D 544 540 6 545 4 7 47 146 166 -4.568 -4.250 -2.265 -0.520
+ IL 545 545 5 545 4 11 54 148 169 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 546 546 6 546 3 10 54 148 168 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 114 ] 142 - g - a -
+ ML 547 546 6 549 5 12 54 145 165 -7.186 -0.037 -7.001 -7.214 -8.105 0.260 -0.983 0.347 0.036
+ D 548 546 6 549 5 7 46 144 164 -4.993 -0.837 -4.255 -2.435 -2.542
+ IL 549 549 3 549 5 9 51 145 165 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 115 ] 143 286 u a u a
+ MP 550 549 3 554 6 13 54 144 164 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -1.252 -1.950 -1.965 1.079 -1.181 -2.814 1.745 -2.249 -1.285 1.136 -2.587 -0.505 1.867 -2.107 0.007 -1.181
+ ML 551 549 3 554 6 8 48 142 163 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 552 549 3 554 6 8 47 142 162 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.478 -0.462 -0.191 0.007
+ D 553 549 3 554 6 5 42 140 160 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 554 554 5 554 6 9 50 144 164 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 555 555 6 555 5 9 50 143 163 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 116 ] 144 285 U A u a
+ MP 556 555 6 560 6 12 53 142 162 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.932 -3.879 -3.776 -0.154 -2.680 -4.315 1.808 -3.407 -3.798 0.092 -4.168 -1.880 3.088 -4.055 -0.143 -2.654
+ ML 557 555 6 560 6 8 47 140 161 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 558 555 6 560 6 8 46 140 160 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.478 -0.462 -0.191 0.007
+ D 559 555 6 560 6 5 41 138 158 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 560 560 5 560 6 9 49 142 162 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 561 561 6 561 5 9 49 141 161 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 117 ] 145 284 C G C G
+ MP 562 561 6 566 6 12 51 140 160 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -4.209 -4.088 -4.004 -0.299 -2.833 -4.509 3.382 -3.588 -4.024 0.200 -4.357 -2.002 0.944 -4.316 -0.509 -2.867
+ ML 563 561 6 566 6 8 45 138 159 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 564 561 6 566 6 7 45 138 158 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.393 -0.492 0.005 -0.041
+ D 565 561 6 566 6 4 40 136 156 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 566 566 5 566 6 8 48 140 160 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 567 567 6 567 5 8 48 139 159 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 118 ] 146 283 C G C G
+ MP 568 567 6 572 6 10 49 138 158 -9.152 -9.091 -0.033 -7.868 -6.357 -8.542 -3.978 -3.923 -3.847 -0.206 -2.783 -4.403 3.351 -2.055 -3.867 0.011 -4.236 -1.923 0.987 -4.123 -0.482 -2.747
+ ML 569 567 6 572 6 7 44 137 157 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 570 567 6 572 6 7 44 136 157 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.393 -0.492 0.005 -0.041
+ D 571 567 6 572 6 4 40 134 154 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 572 572 5 572 6 8 47 138 158 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 573 573 6 573 5 8 47 137 157 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 119 ] 147 282 A U A U
+ MP 574 573 6 578 4 9 48 136 156 -6.940 -8.185 -0.077 -4.639 -3.673 -2.689 -3.732 3.200 -4.201 -5.099 0.111 -3.842 -3.613 1.530 -4.165 -0.178 -0.226 -4.237 -1.823 -2.561
+ ML 575 573 6 578 4 6 42 135 155 -2.408 -4.532 -1.293 -1.473 0.368 -0.385 -0.191 0.094
+ MR 576 573 6 578 4 6 43 135 155 -4.457 -12.884 -0.657 -1.643 0.135 -0.371 -0.452 0.483
+ D 577 573 6 578 4 4 39 133 153 -12.737 -14.007 -2.036 -0.404
+ IL 578 578 5 578 4 7 44 135 156 -2.817 -4.319 -0.613 -2.698 0.000 0.000 0.000 0.000
+ IR 579 579 6 579 3 7 46 136 156 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 120 ] - 281 - G - G
+ MR 580 579 6 582 5 8 47 134 154 -7.166 -0.043 -6.981 -6.555 -8.085 -1.756 -3.003 1.761 -2.390
+ D 581 579 6 582 5 4 39 133 153 -5.483 -0.630 -3.109 -4.540 -2.535
+ IR 582 582 3 582 5 6 44 134 154 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 121 ] 148 280 c g a a
+ MP 583 582 3 587 6 9 47 133 153 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 1.130 -2.011 0.695 1.132 -2.120 -3.022 1.266 -2.444 -2.195 1.119 -2.757 -0.366 1.054 -2.315 -0.273 -1.350
+ ML 584 582 3 587 6 5 40 131 152 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 585 582 3 587 6 5 40 131 151 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.478 -0.462 -0.191 0.007
+ D 586 582 3 587 6 2 34 129 149 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 587 587 5 587 6 6 42 133 153 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 588 588 6 588 5 6 43 132 152 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 122 ] 149 279 G C g c
+ MP 589 588 6 593 6 9 46 131 151 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.350 -1.816 -2.195 1.212 -3.872 -4.019 0.555 -3.778 -3.540 3.069 -3.919 -0.054 0.278 -3.285 -1.370 -2.296
+ ML 590 588 6 593 6 5 40 129 150 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 591 588 6 593 6 5 39 129 149 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 592 588 6 593 6 2 33 127 147 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 593 593 5 593 6 6 42 131 151 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 594 594 6 594 5 6 42 130 150 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 123 ] 150 278 c g c g
+ MP 595 594 6 599 6 9 45 129 149 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.845 -2.794 -2.941 0.842 -2.396 -3.746 2.267 -2.920 -2.946 1.101 -3.468 -0.870 2.043 -3.096 -0.100 -0.998
+ ML 596 594 6 599 6 5 39 127 148 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 597 594 6 599 6 5 38 127 147 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.393 -0.492 0.005 -0.041
+ D 598 594 6 599 6 2 33 125 145 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 599 599 5 599 6 6 41 129 149 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 600 600 6 600 5 6 41 128 148 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 124 ] 151 277 c g c g
+ MP 601 600 6 605 6 9 43 127 147 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.308 -2.353 -2.073 1.174 -2.177 -3.298 1.879 -2.618 -2.494 1.150 -3.045 -0.352 1.853 -2.598 0.577 -1.419
+ ML 602 600 6 605 6 5 38 125 146 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 603 600 6 605 6 5 38 125 145 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.393 -0.492 0.005 -0.041
+ D 604 600 6 605 6 2 32 123 143 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 605 605 5 605 6 5 40 127 147 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 606 606 6 606 5 6 40 126 146 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 125 ] 152 276 g c g c
+ MP 607 606 6 611 6 8 41 125 145 -4.529 -6.572 -0.096 -7.868 -8.147 -8.542 -2.853 -2.327 -2.364 1.273 -2.968 -3.652 1.384 -3.219 -3.059 2.508 -3.516 0.219 0.982 -2.936 -0.513 -1.953
+ ML 608 606 6 611 6 4 37 123 143 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 609 606 6 611 6 4 37 123 143 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.317 -0.372 -0.249 0.189
+ D 610 606 6 611 6 1 31 121 141 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 611 611 5 611 6 5 39 124 144 -3.086 -3.349 -0.491 -5.004 -5.780 -5.440 0.000 0.000 0.000 0.000
+ IR 612 612 6 612 5 5 39 124 144 -2.483 -0.467 -5.995 -4.162 -5.268 0.000 0.000 0.000 0.000
+ [ MATP 126 ] 154 274 g c g c
+ MP 613 612 6 617 6 8 39 123 143 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.861 -0.444 -2.920 1.707 -3.215 -3.670 0.803 -3.316 -3.065 2.508 -3.508 0.357 0.715 -2.958 -0.996 -1.987
+ ML 614 612 6 617 6 4 36 121 141 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 615 612 6 617 6 4 35 121 141 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 616 612 6 617 6 1 31 119 139 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 617 617 5 617 6 5 37 122 143 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 618 618 6 618 5 5 38 122 142 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 127 ] 155 273 g c g c
+ MP 619 618 6 623 6 8 38 121 141 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.929 -2.289 -2.973 1.180 -3.179 -3.738 1.076 -3.328 -3.124 2.630 -3.572 0.342 0.661 -3.018 -0.913 -0.021
+ ML 620 618 6 623 6 4 35 119 139 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 621 618 6 623 6 4 34 119 139 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 622 618 6 623 6 1 30 117 137 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 623 623 5 623 6 5 36 120 141 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 624 624 6 624 5 5 36 120 140 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 128 ] 156 272 A U A U
+ MP 625 624 6 629 6 7 36 119 139 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.726 -2.990 -3.724 3.341 -4.010 -4.943 0.135 -3.853 -3.756 0.934 -4.292 -0.604 -0.208 -4.156 -1.751 -1.275
+ ML 626 624 6 629 6 4 33 117 138 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 627 624 6 629 6 4 33 117 137 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.317 -0.372 -0.249 0.189
+ D 628 624 6 629 6 1 30 115 135 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 629 629 5 629 6 4 34 118 139 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 630 630 6 630 5 5 34 118 138 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 129 ] 157 271 G C G C
+ MP 631 630 6 635 6 5 34 117 137 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -4.223 -1.830 -4.239 0.687 -4.926 -4.500 -0.312 -4.672 -4.107 3.479 -4.454 -0.341 -0.593 -4.026 -2.301 -3.175
+ ML 632 630 6 635 6 3 32 116 136 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 633 630 6 635 6 3 32 115 136 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 634 630 6 635 6 1 30 114 134 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 635 635 5 635 6 4 33 116 137 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 636 636 6 636 5 4 33 116 136 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 130 ] 158 270 c g c g
+ MP 637 636 6 641 4 3 32 115 135 -5.474 -5.470 -0.385 -2.404 -1.795 -1.955 -1.662 1.067 -1.873 -2.819 1.673 -2.263 -2.035 1.043 -1.618 -0.507 1.419 -2.118 1.221 -0.594
+ ML 638 636 6 641 4 2 31 114 135 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 639 636 6 641 4 2 30 114 134 -4.845 -3.874 -1.741 -0.742 0.393 -0.492 0.005 -0.041
+ D 640 636 6 641 4 1 29 113 133 -4.568 -4.250 -2.265 -0.520
+ IL 641 641 5 641 4 3 31 116 136 -1.785 -2.468 -1.216 -3.342 0.000 0.000 0.000 0.000
+ IR 642 642 6 642 3 3 31 115 135 -1.495 -0.851 -3.462 0.000 0.000 0.000 0.000
+ [ MATL 131 ] 160 - U - U -
+ ML 643 642 6 645 2 2 30 112 132 -8.121 -0.005 -0.589 -0.840 -1.179 1.223
+ D 644 642 6 645 2 1 29 111 131 -8.602 -0.004
+ IL 645 645 3 645 2 2 30 113 133 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 132 ] - - - - - -
+ B 646 645 3 794 647 1 29 111 131
+ [ BEGR 165 ] - - - - - -
+ S 647 646 1 648 5 0 5 63 83 -4.041 -0.145 -5.577 -6.581 -8.111
+ IL 648 648 2 648 5 1 4 65 84 -2.625 -0.416 -4.304 -6.136 -5.410 0.000 0.000 0.000 0.000
+ [ MATP 166 ] 220 268 c g g c
+ MP 649 648 2 653 6 2 8 63 83 -9.143 -9.082 -0.021 -7.858 -8.138 -8.533 -1.125 -1.375 -1.518 1.179 -1.690 -1.025 1.441 -1.728 -1.753 1.069 -2.314 -0.328 1.325 0.199 0.190 -0.897
+ ML 650 648 2 653 6 1 2 62 81 -6.372 -6.718 -1.147 -1.127 -6.568 -4.097 0.211 -0.364 -0.368 0.368
+ MR 651 648 2 653 6 1 2 62 81 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 652 648 2 653 6 0 0 59 79 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 653 653 5 653 6 1 3 63 82 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 654 654 6 654 5 1 3 63 82 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 167 ] 221 267 G C G C
+ MP 655 654 6 659 6 2 7 61 81 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -4.524 -2.972 -4.587 0.400 -5.280 -4.681 -0.596 -4.948 -4.255 3.560 -4.606 -0.028 -0.893 -4.316 -2.618 -3.477
+ ML 656 654 6 659 6 1 2 60 79 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 657 654 6 659 6 1 2 60 79 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 658 654 6 659 6 0 0 57 77 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 659 659 5 659 6 1 3 61 80 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 660 660 6 660 5 1 3 61 80 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 168 ] 222 266 G C G C
+ MP 661 660 6 665 6 2 7 59 79 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.552 -2.489 -3.497 1.079 -3.927 -4.126 0.610 -3.912 -3.689 3.073 -4.052 0.254 0.399 -3.441 -1.055 -2.457
+ ML 662 660 6 665 6 1 2 58 77 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 663 660 6 665 6 1 2 58 77 -7.019 -5.748 -1.656 -5.726 -0.805 -3.939 0.319 -0.242 -0.290 0.123
+ D 664 660 6 665 6 0 0 55 75 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 665 665 5 665 6 1 2 59 78 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 666 666 6 666 5 1 3 59 78 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 169 ] 223 265 c g a u
+ MP 667 666 6 671 6 2 6 57 77 -9.152 -7.182 -0.033 -7.007 -8.147 -8.542 -2.720 -2.399 -2.827 1.731 -2.659 -3.637 1.907 -3.004 -2.877 1.686 -3.379 0.358 1.105 -2.939 -0.460 -1.534
+ ML 668 666 6 671 6 1 2 56 75 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 669 666 6 671 6 1 2 56 75 -7.019 -5.748 -1.563 -5.726 -0.860 -3.939 0.317 -0.372 -0.249 0.189
+ D 670 666 6 671 6 0 0 53 73 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 671 671 5 671 6 1 2 57 76 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 672 672 6 672 5 1 2 57 76 -2.453 -0.479 -5.964 -4.131 -5.237 0.000 0.000 0.000 0.000
+ [ MATP 170 ] 224 263 g c g c
+ MP 673 672 6 677 6 2 6 55 75 -9.149 -9.089 -0.020 -7.865 -8.145 -8.540 -3.344 -2.409 -3.334 1.636 -3.729 -4.073 0.849 -3.716 -3.490 2.770 -3.900 0.593 0.371 -3.351 -1.276 -2.305
+ ML 674 672 6 677 6 1 2 54 73 -6.317 -6.664 -1.216 -1.072 -6.513 -4.043 0.368 -0.527 0.090 -0.072
+ MR 675 672 6 677 6 1 1 54 73 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 676 672 6 677 6 0 0 52 71 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 677 677 5 677 6 1 2 55 74 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 678 678 6 678 5 1 2 55 74 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 171 ] 225 262 g c g c
+ MP 679 678 6 683 6 2 5 53 73 -9.154 -9.094 -0.020 -7.870 -8.150 -8.545 -3.397 -2.643 -3.349 0.964 -3.221 -4.017 1.463 -3.540 -3.518 2.780 -3.911 -0.414 0.843 -3.373 -0.285 -2.302
+ ML 680 678 6 683 6 1 1 52 72 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 681 678 6 683 6 1 1 52 72 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 682 678 6 683 6 0 0 51 70 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 683 683 5 683 6 1 2 53 73 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 684 684 6 684 5 1 2 53 72 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 172 ] 226 261 g a g a
+ MP 685 684 6 689 4 2 3 51 71 -7.068 -7.275 -0.049 -5.689 -1.006 -2.362 -2.804 0.929 -2.736 -3.734 1.006 -2.973 2.433 1.023 -3.305 -0.325 0.649 -3.061 -0.719 -1.872
+ ML 686 684 6 689 4 1 1 52 71 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 687 684 6 689 4 1 1 51 71 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 688 684 6 689 4 0 0 50 70 -4.568 -4.250 -2.265 -0.520
+ IL 689 689 5 689 4 1 2 53 73 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 690 690 6 690 3 1 1 52 72 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 173 ] 227 - c - a -
+ ML 691 690 6 693 3 1 2 49 68 -8.076 -0.019 -6.730 -0.039 0.279 -0.368 0.054
+ D 692 690 6 693 3 0 0 47 67 -6.174 -1.687 -0.566
+ IL 693 693 3 693 3 1 1 51 71 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 174 ] 228 - A - A -
+ ML 694 693 3 696 3 1 2 48 67 -8.076 -0.019 -6.730 1.655 -2.113 -1.887 -1.521
+ D 695 693 3 696 3 0 0 46 66 -6.174 -1.687 -0.566
+ IL 696 696 3 696 3 1 1 50 69 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 175 ] 229 - c - a -
+ ML 697 696 3 699 3 1 1 47 66 -8.459 -0.022 -6.322 0.086 0.524 -1.210 0.095
+ D 698 696 3 699 3 0 0 45 65 -5.620 -0.734 -1.403
+ IL 699 699 3 699 3 1 1 47 67 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 176 ] - 260 - u - a
+ MR 700 699 3 702 5 1 1 46 65 -7.187 -0.043 -7.002 -6.471 -8.106 0.170 0.239 -1.117 0.303
+ D 701 699 3 702 5 0 0 44 64 -5.376 -0.692 -3.003 -4.434 -2.428
+ IR 702 702 3 702 5 1 1 46 65 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 177 ] 230 259 c g g c
+ MP 703 702 3 707 6 2 2 45 64 -9.151 -9.091 -0.020 -7.867 -8.147 -8.542 -1.212 -1.484 -1.492 1.256 -0.711 -1.475 1.446 -1.684 -1.742 0.994 -2.315 -0.036 1.442 -0.929 0.176 -0.688
+ ML 704 702 3 707 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 705 702 3 707 6 1 1 43 62 -7.025 -5.754 -1.550 -5.732 -0.866 -3.946 0.495 -0.473 -0.195 -0.004
+ D 706 702 3 707 6 0 0 41 60 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 707 707 5 707 6 1 1 44 64 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 708 708 6 708 5 1 1 44 63 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 178 ] 231 258 g a g a
+ MP 709 708 6 713 6 2 2 43 62 -9.154 -9.094 -0.020 -7.870 -8.150 -8.545 -1.669 -2.087 -2.309 1.036 -2.029 -3.141 1.393 -2.559 1.618 1.214 -2.876 -0.058 1.128 -2.458 -0.273 -1.468
+ ML 710 708 6 713 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 711 708 6 713 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 712 708 6 713 6 0 0 39 58 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 713 713 5 713 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 714 714 6 714 5 1 1 42 61 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 179 ] 232 257 C G C G
+ MP 715 714 6 719 6 2 2 41 60 -9.154 -9.094 -0.020 -7.870 -8.150 -8.545 -4.796 -4.724 -4.444 -0.935 -3.110 -4.823 3.621 -3.944 -4.502 -0.727 -4.736 -2.675 0.378 -4.849 -0.823 -3.334
+ ML 716 714 6 719 6 1 1 39 59 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 717 714 6 719 6 1 1 39 58 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 718 714 6 719 6 0 0 37 56 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 719 719 5 719 6 1 1 40 60 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 720 720 6 720 5 1 1 40 59 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 180 ] 233 256 G C G C
+ MP 721 720 6 725 6 2 2 39 58 -9.154 -9.094 -0.020 -7.870 -8.150 -8.545 -4.405 -2.919 -4.452 0.796 -5.116 -4.660 -0.451 -4.806 -4.188 3.517 -4.550 -0.453 -0.752 -4.243 -2.469 -3.340
+ ML 722 720 6 725 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 723 720 6 725 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 724 720 6 725 6 0 0 36 55 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 725 725 5 725 6 1 1 38 58 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 726 726 6 726 5 1 1 38 57 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 181 ] 234 255 u g u g
+ MP 727 726 6 731 4 2 2 37 56 -7.068 -7.275 -0.049 -5.689 -3.984 -3.987 -3.756 -0.332 -2.579 -4.217 1.707 -3.342 -3.800 -0.133 -4.124 -2.078 1.574 -4.081 2.797 -2.682
+ ML 728 726 6 731 4 1 1 37 57 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 729 726 6 731 4 1 1 37 56 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 730 726 6 731 4 0 0 36 55 -4.568 -4.250 -2.265 -0.520
+ IL 731 731 5 731 4 1 1 39 58 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 732 732 6 732 3 1 1 38 57 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 182 ] 235 - G - G -
+ ML 733 732 6 735 3 1 1 34 53 -8.076 -0.019 -6.730 -0.881 -1.662 1.406 -1.026
+ D 734 732 6 735 3 0 0 33 52 -6.174 -1.687 -0.566
+ IL 735 735 3 735 3 1 1 37 56 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 183 ] 236 - A - A -
+ ML 736 735 3 738 3 1 1 33 52 -8.076 -0.019 -6.730 1.763 -2.598 -2.208 -2.163
+ D 737 735 3 738 3 0 0 32 51 -6.174 -1.687 -0.566
+ IL 738 738 3 738 3 1 1 35 55 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 184 ] 237 - G - G -
+ ML 739 738 3 741 3 1 1 32 51 -8.076 -0.019 -6.730 -1.818 -3.074 1.772 -2.462
+ D 740 738 3 741 3 0 0 31 50 -6.174 -1.687 -0.566
+ IL 741 741 3 741 3 1 1 34 54 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 185 ] 238 - G - G -
+ ML 742 741 3 744 3 1 1 31 50 -8.459 -0.017 -6.777 -1.818 -3.074 1.772 -2.462
+ D 743 741 3 744 3 0 0 30 48 -5.620 -0.734 -1.403
+ IL 744 744 3 744 3 1 1 32 50 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 186 ] - 254 - A - A
+ MR 745 744 3 747 3 1 1 30 49 -8.459 -0.017 -6.777 1.763 -2.598 -2.208 -2.163
+ D 746 744 3 747 3 0 0 28 47 -6.390 -1.568 -0.620
+ IR 747 747 3 747 3 1 1 31 49 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 187 ] - 253 - C - C
+ MR 748 747 3 750 3 1 1 29 48 -8.459 -0.017 -6.777 -2.015 1.690 -2.845 -1.374
+ D 749 747 3 750 3 0 0 27 46 -6.390 -1.568 -0.620
+ IR 750 750 3 750 3 1 1 30 48 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 188 ] - 252 - G - G
+ MR 751 750 3 753 3 1 1 28 47 -8.459 -0.017 -6.777 -1.420 -2.790 1.706 -2.192
+ D 752 750 3 753 3 0 0 26 45 -6.390 -1.568 -0.620
+ IR 753 753 3 753 3 1 1 29 47 -1.925 -0.554 -4.164 0.000 0.000 0.000 0.000
+ [ MATR 189 ] - 251 - A - A
+ MR 754 753 3 756 5 1 1 27 46 -7.191 -0.036 -7.007 -7.219 -8.111 1.763 -2.598 -2.208 -2.163
+ D 755 753 3 756 5 0 0 25 44 -5.352 -0.707 -2.978 -4.409 -2.404
+ IR 756 756 3 756 5 1 1 27 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 190 ] 239 250 C G C G
+ MP 757 756 3 761 6 2 2 26 45 -9.154 -9.094 -0.020 -7.870 -8.150 -8.545 -4.796 -4.724 -4.444 -0.935 -3.110 -4.823 3.621 -3.944 -4.502 -0.727 -4.736 -2.675 0.378 -4.849 -0.823 -3.334
+ ML 758 756 3 761 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 759 756 3 761 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 760 756 3 761 6 0 0 22 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 761 761 5 761 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 762 762 6 762 5 1 1 25 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 191 ] 240 249 U A u a
+ MP 763 762 6 767 6 2 2 24 43 -9.154 -9.094 -0.020 -7.870 -8.150 -8.545 -3.753 -3.521 -3.702 0.527 -2.851 -4.401 1.492 -3.457 -3.686 0.433 -4.125 -1.375 3.076 -3.971 -0.527 -2.564
+ ML 764 762 6 767 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 765 762 6 767 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 766 762 6 767 6 0 0 22 40 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 767 767 5 767 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 768 768 6 768 5 1 1 23 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 192 ] 241 248 G C G C
+ MP 769 768 6 773 4 2 2 22 41 -7.068 -7.275 -0.049 -5.689 -4.964 -3.201 -5.087 0.050 -5.545 -4.779 -0.854 -5.344 -4.470 3.687 -4.792 -0.909 -1.234 -4.613 -2.904 -3.961
+ ML 770 768 6 773 4 1 1 23 42 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 771 768 6 773 4 1 1 22 41 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 772 768 6 773 4 0 0 21 40 -4.568 -4.250 -2.265 -0.520
+ IL 773 773 5 773 4 1 1 24 43 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 774 774 6 774 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 193 ] 242 - G - G -
+ ML 775 774 6 777 3 1 1 19 37 -8.076 -0.019 -6.730 -1.818 -3.074 1.772 -2.462
+ D 776 774 6 777 3 0 0 18 37 -6.174 -1.687 -0.566
+ IL 777 777 3 777 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 194 ] 243 - u - u -
+ ML 778 777 3 780 3 1 1 17 36 -8.076 -0.019 -6.730 -0.263 0.037 -1.259 0.785
+ D 779 777 3 780 3 0 0 17 36 -6.174 -1.687 -0.566
+ IL 780 780 3 780 3 1 1 21 39 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 195 ] 244 - U - U -
+ ML 781 780 3 783 3 1 1 16 35 -8.076 -0.093 -4.096 -0.557 -1.012 -1.386 1.288
+ D 782 780 3 783 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 783 783 3 783 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 196 ] 245 - U - U -
+ ML 784 783 3 786 3 1 1 15 33 -8.004 -0.020 -6.658 -1.559 -1.542 -2.296 1.639
+ D 785 783 3 786 3 0 0 14 33 -6.750 -2.263 -0.354
+ IL 786 786 3 786 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 197 ] 246 - C - C -
+ ML 787 786 3 789 3 1 1 13 31 -8.004 -0.020 -6.658 -1.033 1.358 -1.959 -0.534
+ D 788 786 3 789 3 0 0 13 31 -6.750 -0.896 -1.141
+ IL 789 789 3 789 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 198 ] 247 - A - A -
+ ML 790 789 3 792 2 1 1 1 1 * 0.000 1.763 -2.598 -2.208 -2.163
+ D 791 789 3 792 2 0 0 0 0 * 0.000
+ IL 792 792 3 792 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 199 ] - - - - - -
+ E 793 792 3 -1 0 0 0 0 0
+ [ BEGL 133 ] - - - - - -
+ S 794 646 1 795 1 0 0 62 81 0.000
+ [ BIF 134 ] - - - - - -
+ B 795 794 1 796 918 0 0 62 81
+ [ BEGL 135 ] - - - - - -
+ S 796 795 1 797 4 0 0 54 73 -0.139 -4.325 -6.303 -5.096
+ [ MATP 136 ] 161 206 g c g c
+ MP 797 796 1 801 6 2 2 54 73 -9.084 -9.023 -0.021 -7.800 -8.079 -8.474 -3.062 -2.272 -2.763 1.324 -3.411 -3.831 0.832 -3.467 -2.236 2.856 -3.677 0.210 0.551 -3.098 -1.057 -2.089
+ ML 798 796 1 801 6 1 1 53 71 -6.771 -7.117 -0.776 -1.526 -6.967 -4.497 0.143 -0.669 0.347 -0.007
+ MR 799 796 1 801 6 1 1 52 71 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 800 796 1 801 6 0 0 51 70 -9.407 -8.105 -1.933 -4.585 -4.602 -0.621
+ IL 801 801 5 801 6 1 1 54 72 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 802 802 6 802 5 1 1 53 72 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 137 ] 162 205 g c g c
+ MP 803 802 6 807 6 2 2 52 71 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -2.529 -2.104 -2.651 1.551 -2.740 -3.391 1.220 -2.972 -1.466 2.214 -3.199 0.783 0.910 -2.713 -0.641 -1.752
+ ML 804 802 6 807 6 1 1 50 69 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 805 802 6 807 6 1 1 50 69 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 806 802 6 807 6 0 0 48 67 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 807 807 5 807 6 1 1 52 70 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 808 808 6 808 5 1 1 51 70 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 138 ] 163 204 g c g c
+ MP 809 808 6 813 6 2 2 50 69 -9.152 -9.091 -0.025 -7.031 -8.147 -8.542 -2.242 -1.797 -2.384 1.383 -2.414 -3.152 1.355 -2.711 -2.471 2.108 -2.310 0.379 1.123 -2.463 -0.101 -1.306
+ ML 810 808 6 813 6 1 1 48 67 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 811 808 6 813 6 1 1 48 67 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 812 808 6 813 6 0 0 46 65 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 813 813 5 813 6 1 1 50 68 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 814 814 6 814 5 1 1 49 68 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 139 ] 164 203 c g c g
+ MP 815 814 6 819 6 2 2 48 67 -9.147 -9.086 -0.021 -7.863 -8.143 -8.538 -1.598 -1.781 -1.549 1.143 -1.750 -2.232 1.749 -1.428 -1.853 1.064 -2.112 -0.124 1.508 -1.931 0.511 -0.894
+ ML 816 814 6 819 6 1 1 46 65 -6.315 -6.661 -1.219 -1.070 -6.511 -4.041 0.282 -0.151 -0.352 0.137
+ MR 817 814 6 819 6 1 1 46 65 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 818 814 6 819 6 0 0 44 63 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 819 819 5 819 6 1 1 48 66 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 820 820 6 820 5 1 1 47 66 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 140 ] 165 202 c g c g
+ MP 821 820 6 825 6 2 2 46 65 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -1.717 -2.133 -2.231 1.060 -2.043 -3.060 2.186 -1.829 -2.269 1.243 -2.820 -0.442 1.521 -1.956 0.019 -1.387
+ ML 822 820 6 825 6 1 1 44 63 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 823 820 6 825 6 1 1 44 63 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 824 820 6 825 6 0 0 42 61 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 825 825 5 825 6 1 1 46 64 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 826 826 6 826 5 1 1 45 64 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 141 ] 166 201 g c a u
+ MP 827 826 6 831 6 2 2 44 63 -3.670 -6.994 -0.147 -7.868 -8.147 -8.542 -1.477 -1.937 -1.525 1.569 -2.249 -2.982 1.187 -2.546 -2.280 2.131 -2.810 -0.013 1.019 -1.942 -0.271 -1.172
+ ML 828 826 6 831 6 1 1 42 61 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 829 826 6 831 6 1 1 42 61 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 830 826 6 831 6 0 0 40 58 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 831 831 5 831 6 1 1 43 62 -2.845 -2.923 -0.569 -5.401 -6.177 -5.837 0.000 0.000 0.000 0.000
+ IR 832 832 6 832 5 1 1 43 62 -2.548 -0.442 -6.060 -4.227 -5.333 0.000 0.000 0.000 0.000
+ [ MATP 142 ] 169 199 c g a u
+ MP 833 832 6 837 6 2 2 42 60 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -1.501 -1.706 -1.265 1.312 -1.480 -2.548 1.529 -1.340 -1.627 1.151 -1.891 -0.063 1.440 -1.631 0.142 -0.476
+ ML 834 832 6 837 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 835 832 6 837 6 1 1 40 59 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 836 832 6 837 6 0 0 38 56 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 837 837 5 837 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 838 838 6 838 5 1 1 41 60 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 143 ] 170 198 g c G C
+ MP 839 838 6 843 6 2 2 40 58 -9.152 -7.587 -0.078 -7.868 -4.693 -8.542 -3.044 -2.296 -3.046 1.212 -3.341 -3.763 0.891 -3.459 -2.885 2.851 -3.345 0.055 0.648 -3.040 -0.803 -1.421
+ ML 840 838 6 843 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 841 838 6 843 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 842 838 6 843 6 0 0 36 54 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 843 843 5 843 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 844 844 6 844 5 1 1 39 58 -2.438 -0.484 -5.949 -4.117 -5.223 0.000 0.000 0.000 0.000
+ [ MATP 144 ] 171 196 u a g c
+ MP 845 844 6 849 6 2 2 38 56 -9.100 -9.039 -0.021 -7.816 -8.096 -8.491 -1.760 -1.832 -1.655 1.240 -1.919 -2.766 1.450 -2.269 -1.850 1.462 -2.500 0.535 1.463 -1.749 0.171 -0.845
+ ML 846 844 6 849 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 847 844 6 849 6 1 1 36 55 -7.492 -6.221 -0.934 -6.199 -1.333 -4.413 0.065 -0.462 -0.667 0.677
+ D 848 844 6 849 6 0 0 34 52 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 849 849 5 849 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 850 850 6 850 5 1 1 37 56 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 145 ] 172 195 g c g c
+ MP 851 850 6 855 6 2 2 36 54 -9.152 -9.091 -0.028 -6.707 -8.147 -8.542 -3.067 -2.107 -3.083 1.231 -3.340 -3.784 1.068 -3.464 -3.136 2.666 -3.506 0.787 0.762 -3.079 -0.991 -2.107
+ ML 852 850 6 855 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 853 850 6 855 6 1 1 34 53 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 854 850 6 855 6 0 0 32 50 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 855 855 5 855 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 856 856 6 856 5 1 1 35 54 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 146 ] 173 194 g c g c
+ MP 857 856 6 861 6 2 2 34 52 -9.144 -9.083 -0.030 -6.569 -8.140 -8.535 -2.235 -1.689 -2.146 1.465 -2.442 -3.155 1.303 -2.182 -2.478 2.223 -2.989 0.187 0.972 -2.446 -0.463 -0.932
+ ML 858 856 6 861 6 1 1 32 51 -6.351 -6.697 -1.173 -1.106 -6.547 -4.076 0.336 -0.556 0.161 -0.091
+ MR 859 856 6 861 6 1 1 32 51 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 860 856 6 861 6 0 0 30 48 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 861 861 5 861 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 862 862 6 862 5 1 1 33 52 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 147 ] 174 193 c g c g
+ MP 863 862 6 867 6 2 2 32 50 -9.143 -9.082 -0.024 -7.859 -7.342 -8.533 -1.840 -1.980 -2.022 1.117 -1.527 -2.372 2.027 -2.295 -2.074 1.216 -2.251 -0.374 1.423 -2.022 0.415 -1.225
+ ML 864 862 6 867 6 1 1 30 49 -6.368 -6.714 -1.152 -1.123 -6.564 -4.093 0.216 -0.364 -0.363 0.361
+ MR 865 862 6 867 6 1 1 30 49 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 866 862 6 867 6 0 0 28 46 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 867 867 5 867 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 868 868 6 868 5 1 1 31 50 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 148 ] 175 192 c g c g
+ MP 869 868 6 873 6 2 2 30 48 -9.148 -9.087 -0.021 -7.864 -8.144 -8.539 -1.900 -2.057 -2.076 1.014 -1.352 -2.241 1.917 -2.269 -2.127 0.969 -2.688 -0.579 1.443 -2.221 1.051 -0.659
+ ML 870 868 6 873 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 871 868 6 873 6 1 1 28 47 -7.032 -5.761 -1.538 -5.739 -0.873 -3.952 0.383 -0.510 0.048 -0.058
+ D 872 868 6 873 6 0 0 26 44 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 873 873 5 873 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 874 874 6 874 5 1 1 29 48 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 149 ] 176 191 c g c g
+ MP 875 874 6 879 6 2 2 28 46 -9.152 -9.091 -0.022 -7.507 -8.147 -8.542 -2.284 -2.377 -2.436 0.905 -1.691 -3.270 2.096 -2.581 -2.466 1.021 -3.017 -0.718 1.631 -2.506 0.828 -0.514
+ ML 876 874 6 879 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 877 874 6 879 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 878 874 6 879 6 0 0 24 42 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 879 879 5 879 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 880 880 6 880 5 1 1 27 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 150 ] 177 190 g c a u
+ MP 881 880 6 885 6 2 2 26 44 -5.115 -6.298 -0.087 -6.522 -8.146 -8.541 -1.710 -1.706 -1.913 1.494 -1.918 -2.689 1.371 -1.687 -1.916 1.574 -1.645 0.219 1.269 -1.827 -0.110 -0.632
+ ML 882 880 6 885 6 1 1 24 43 -6.274 -6.620 -1.276 -1.029 -6.470 -3.999 0.398 -0.473 -0.036 -0.021
+ MR 883 880 6 885 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 884 880 6 885 6 0 0 22 40 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 885 885 5 885 6 1 1 25 44 -2.929 -3.192 -0.560 -4.847 -5.623 -5.283 0.000 0.000 0.000 0.000
+ IR 886 886 6 886 5 1 1 25 44 -2.502 -0.460 -6.013 -4.180 -5.286 0.000 0.000 0.000 0.000
+ [ MATP 151 ] 179 188 g c a u
+ MP 887 886 6 891 6 2 2 24 42 -9.142 -9.082 -0.021 -7.858 -8.138 -8.533 -0.952 -1.790 -2.082 1.450 -2.103 -2.843 1.313 -1.676 -2.126 1.805 -2.636 0.460 1.164 -2.178 -0.234 -1.039
+ ML 888 886 6 891 6 1 1 22 41 -6.375 -6.721 -1.144 -1.130 -6.571 -4.100 0.208 -0.364 -0.372 0.373
+ MR 889 886 6 891 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 890 886 6 891 6 0 0 20 39 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 891 891 5 891 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 892 892 6 892 5 1 1 23 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 152 ] 180 187 g c G C
+ MP 893 892 6 897 6 2 2 22 40 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -3.360 -2.482 -3.329 1.258 -3.526 -4.002 1.042 -3.669 -3.515 2.889 -3.548 -0.231 0.795 -3.310 -1.071 -2.304
+ ML 894 892 6 897 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 895 892 6 897 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 896 892 6 897 6 0 0 19 38 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 897 897 5 897 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 898 898 6 898 5 1 1 21 40 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 153 ] 181 186 C G C G
+ MP 899 898 6 903 4 2 2 19 38 -7.061 -7.268 -0.049 -5.683 -3.906 -3.867 -3.736 -0.101 -2.589 -4.259 3.132 -3.332 -3.751 0.117 -4.113 -1.857 1.340 -4.021 0.609 -2.609
+ ML 900 898 6 903 4 1 1 21 39 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 901 898 6 903 4 1 1 20 39 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 902 898 6 903 4 0 0 19 38 -4.611 -4.292 -2.308 -0.502
+ IL 903 903 5 903 4 1 1 22 41 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 904 904 6 904 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 154 ] 182 - G - G -
+ ML 905 904 6 907 3 1 1 16 35 -8.070 -0.019 -6.724 -1.805 -3.059 1.770 -2.447
+ D 906 904 6 907 3 0 0 16 34 -6.234 -1.747 -0.538
+ IL 907 907 3 907 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 155 ] 183 - A - A -
+ ML 908 907 3 910 3 1 1 15 33 -8.070 -0.019 -6.724 1.581 -1.907 -1.521 -1.345
+ D 909 907 3 910 3 0 0 15 33 -6.234 -1.747 -0.538
+ IL 910 910 3 910 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 156 ] 184 - A - A -
+ ML 911 910 3 913 3 1 1 13 31 -8.070 -0.019 -6.724 1.519 -1.552 -1.581 -1.124
+ D 912 910 3 913 3 0 0 13 32 -6.234 -1.747 -0.538
+ IL 913 913 3 913 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 157 ] 185 - G - G -
+ ML 914 913 3 916 2 1 1 1 1 * 0.000 0.185 -1.691 1.062 -1.103
+ D 915 913 3 916 2 0 0 0 0 * 0.000
+ IL 916 916 3 916 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 158 ] - - - - - -
+ E 917 916 3 -1 0 0 0 0 0
+ [ BEGR 159 ] - - - - - -
+ S 918 795 1 919 5 0 0 21 39 -4.575 -0.095 -7.007 -7.219 -7.087
+ IL 919 919 2 919 5 1 1 22 40 -1.762 -0.675 -4.466 -6.299 -5.572 0.000 0.000 0.000 0.000
+ [ MATP 160 ] 211 218 c g C G
+ MP 920 919 2 924 6 2 2 20 38 -9.152 -9.091 -0.020 -7.868 -8.147 -8.542 -1.835 -1.990 -2.019 1.116 -1.436 -1.512 2.192 -2.295 -2.070 0.971 -2.041 -0.540 1.348 -2.160 0.304 -1.231
+ ML 921 919 2 924 6 1 1 19 37 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 922 919 2 924 6 1 1 19 37 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 923 919 2 924 6 0 0 17 35 -9.094 -7.792 -3.589 -4.272 -4.289 -0.308
+ IL 924 924 5 924 6 1 1 20 38 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 925 925 6 925 5 1 1 20 38 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 161 ] 212 217 u a u a
+ MP 926 925 6 930 4 2 2 18 36 -3.555 -7.268 -0.170 -5.683 -2.825 -2.878 -2.944 0.598 -1.349 -3.750 1.556 -3.000 -2.965 0.647 -3.498 -1.120 2.802 -3.104 -0.342 -1.237
+ ML 927 925 6 930 4 1 1 17 35 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 928 925 6 930 4 1 1 17 35 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 929 925 6 930 4 0 0 16 34 -4.611 -4.292 -2.308 -0.502
+ IL 930 930 5 930 4 1 1 19 37 -2.137 -2.339 -0.863 -5.306 0.000 0.000 0.000 0.000
+ IR 931 931 6 931 3 1 1 18 36 -1.495 -0.759 -4.195 0.000 0.000 0.000 0.000
+ [ MATL 162 ] 214 - A - A -
+ ML 932 931 6 934 3 1 1 13 31 -8.070 -0.019 -6.724 1.320 -1.510 -0.689 -0.912
+ D 933 931 6 934 3 0 0 13 32 -6.234 -1.747 -0.538
+ IL 934 934 3 934 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 163 ] 215 - a - A -
+ ML 935 934 3 937 2 1 1 1 1 * 0.000 0.876 -1.478 0.345 -0.900
+ D 936 934 3 937 2 0 0 0 0 * 0.000
+ IL 937 937 3 937 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 164 ] - - - - - -
+ E 938 937 3 -1 0 0 0 0 0
+//
+HMMER3/f [i1.1 | April 2012]
+NAME Plant_SRP
+ACC RF01855
+DESC Plant signal recognition particle RNA
+LENG 305
+MAXL 434
+ALPH RNA
+RF yes
+MM no
+CONS yes
+CS yes
+MAP yes
+DATE Mon Apr 30 08:55:06 2012
+COM [1] /groups/eddy/home/nawrockie/notebook/12_0423_inf_final_stress_tests/wd-infernal/src/cmbuild -F Plant_SRP.cm Plant_SRP.sto
+NSEQ 64
+EFFN 3.251465
+CKSUM 2513792503
+STATS LOCAL MSV -11.3181 0.70581
+STATS LOCAL VITERBI -12.7341 0.70581
+STATS LOCAL FORWARD -3.9419 0.70581
+HMM A C G U
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.48744 1.41722 1.22017 1.44188
+ 1.38629 1.38629 1.38629 1.38629
+ 0.25534 3.97203 1.57740 1.46634 0.26236 0.00000 *
+ 1 1.92769 2.41529 0.41112 2.28015 1 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04748 3.76418 3.76418 1.46634 0.26236 2.19792 0.11770
+ 2 2.17377 0.78998 1.93764 1.24356 2 c c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04699 3.77432 3.77432 1.46634 0.26236 2.19603 0.11793
+ 3 2.82994 0.42782 2.60306 1.53707 3 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04656 3.78330 3.78330 1.46634 0.26236 1.27914 0.32611
+ 4 1.96473 3.07260 0.27631 2.90166 5 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04412 3.83594 3.83594 1.46634 0.26236 1.48279 0.25748
+ 5 0.95514 2.12049 1.00552 2.04472 6 a a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04297 3.86181 3.86181 1.46634 0.26236 2.14488 0.12452
+ 6 1.76310 2.12336 0.53875 2.07638 7 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04297 3.86181 3.86181 1.46634 0.26236 2.14488 0.12452
+ 7 2.22595 0.70823 2.07330 1.29554 8 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04297 3.86181 3.86181 1.46634 0.26236 2.14488 0.12452
+ 8 1.96944 1.35073 1.68289 0.87809 9 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09297 3.86181 2.69198 1.46634 0.26236 0.96371 0.48042
+ 9 1.71133 1.26752 1.41825 1.21838 10 u c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04294 3.86258 3.86258 1.46634 0.26236 1.03944 0.43642
+ 10 1.20204 1.58862 1.47656 1.32129 11 a a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05154 3.90390 3.50426 1.46634 0.26236 1.87129 0.16715
+ 11 1.73988 1.71379 0.85607 1.51664 12 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04158 3.89395 3.89395 1.46634 0.26236 1.94419 0.15444
+ 12 2.18951 1.63622 2.71513 0.46662 13 u U - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04158 3.89395 3.89395 1.46634 0.26236 1.54455 0.24005
+ 13 0.56947 1.90494 2.30727 1.68304 14 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04116 3.90390 3.90390 1.46634 0.26236 1.87129 0.16715
+ 14 0.61034 2.57333 1.31287 2.19368 15 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04116 3.90390 3.90390 1.46634 0.26236 1.87129 0.16715
+ 15 2.74115 0.25831 3.32872 2.06113 16 c C - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04116 3.90390 3.90390 1.46634 0.26236 1.87129 0.16715
+ 16 1.58958 1.76571 0.91225 1.49923 17 g c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04116 3.90390 3.90390 1.46634 0.26236 1.87129 0.16715
+ 17 1.41761 1.58592 1.32396 1.24873 18 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04116 3.90390 3.90390 1.46634 0.26236 1.87129 0.16715
+ 18 1.62196 1.61177 0.96738 1.50114 19 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04116 3.90390 3.90390 1.46634 0.26236 1.02816 0.44265
+ 19 1.16458 1.85238 1.02023 1.76861 20 a a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04007 3.93024 3.93024 1.46634 0.26236 1.64346 0.21481
+ 20 1.51379 2.24538 0.62481 1.97561 21 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04007 3.93024 3.93024 1.46634 0.26236 1.64346 0.21481
+ 21 2.33699 0.60631 1.97486 1.51759 22 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04007 3.93024 3.93024 1.46634 0.26236 1.64346 0.21481
+ 22 2.24042 1.18949 1.94292 0.80761 23 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04007 3.93024 3.93024 1.46634 0.26236 1.06477 0.42283
+ 23 2.93126 1.82255 2.80072 0.32256 24 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03945 3.94552 3.94552 1.46634 0.26236 1.47918 0.25854
+ 24 3.02947 3.94820 0.10229 3.51986 25 g G - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03945 3.94552 3.94552 1.46634 0.26236 1.47918 0.25854
+ 25 2.38970 2.42699 2.72593 0.28163 26 u U - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03945 3.94552 3.94552 1.46634 0.26236 1.47918 0.25854
+ 26 0.70862 1.80334 1.71079 1.81889 27 a A - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03945 3.94552 3.94552 1.46634 0.26236 1.18696 0.36405
+ 27 0.16401 3.26252 2.76219 2.99926 28 a A - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05922 3.95206 3.26280 1.46634 0.26236 1.39871 0.28358
+ 28 3.10636 0.31836 2.88647 1.75953 29 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03997 3.93281 3.93281 1.46634 0.26236 0.92858 0.50271
+ 29 3.35930 0.22282 3.16020 2.09913 30 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03919 3.95206 3.95206 1.46634 0.26236 1.12749 0.39133
+ 30 3.06827 0.33781 2.85394 1.70072 31 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 31 0.88956 2.43698 0.92182 2.26387 32 a a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 32 0.51894 2.34581 2.39840 1.52226 33 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 33 2.37100 3.48364 0.18599 3.08699 34 g G - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 34 2.49062 1.12301 2.23640 0.72361 36 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 35 2.07802 3.00087 0.26788 2.81213 37 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 36 2.33112 3.29222 0.19853 3.08559 38 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 37 1.96222 3.01146 0.28731 2.81416 39 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 38 1.97409 2.72655 0.33446 2.52643 40 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 39 1.43191 2.14182 0.68529 1.96782 41 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 40 2.46191 0.48108 2.27549 1.64058 42 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09123 3.95803 2.68684 1.46634 0.26236 1.31866 0.31128
+ 41 0.18945 3.14379 2.62219 2.86781 43 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04100 3.90779 3.90779 1.46634 0.26236 1.84110 0.17274
+ 42 1.37264 1.63948 2.26278 0.80202 44 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.14197 2.18684 3.90779 0.32597 1.27952 1.84110 0.17274
+ 43 1.54096 1.43025 1.50057 1.12834 46 u a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05677 3.90779 3.34950 1.46634 0.26236 0.56992 0.83373
+ 44 0.53267 2.39163 1.64856 2.04672 47 a a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03953 3.94364 3.94364 1.46634 0.26236 0.94269 0.49361
+ 45 0.55824 2.75791 1.24873 2.55761 48 a a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 46 1.60177 2.08560 0.67353 1.80594 49 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 47 1.59102 2.22138 0.60318 1.96074 50 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 48 1.74397 1.41620 1.61116 0.96002 51 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 49 1.81102 2.48803 0.42982 2.27486 52 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 50 1.52425 2.22600 0.62689 1.96608 53 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 51 1.63516 1.49434 1.57755 0.98296 54 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 52 1.71852 1.74123 0.93154 1.38064 55 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05885 3.26877 3.95803 0.81364 0.58563 1.31866 0.31128
+ 53 1.81667 2.08481 0.61026 1.77258 57 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.16015 2.04886 3.95803 0.55897 0.84816 1.31866 0.31128
+ 54 0.90218 2.63622 0.87627 2.24101 60 g a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 55 0.62728 1.94183 1.81777 1.83176 61 a u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 1.31866 0.31128
+ 56 2.06401 1.04093 1.71595 1.07840 62 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03895 3.95803 3.95803 1.46634 0.26236 0.99753 0.46012
+ 57 1.44163 1.98991 0.80260 1.72267 63 g a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.22653 1.69421 3.96524 0.19499 1.73071 1.21186 0.35332
+ 58 1.76391 1.39506 1.54452 1.00132 65 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 59 1.60219 1.52857 1.47209 1.04341 66 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05927 3.96524 3.25487 1.46634 0.26236 1.21186 0.35332
+ 60 1.60196 1.51186 1.20948 1.27422 67 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15789 2.06581 3.94542 0.67114 0.71565 0.76998 0.62180
+ 61 1.59110 1.49718 1.21360 1.28948 72 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 62 1.61530 1.56504 1.23689 1.19798 73 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 63 1.56365 1.34982 1.58736 1.11817 74 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05120 3.96524 3.47550 1.46634 0.26236 1.21186 0.35332
+ 64 1.56061 1.38883 1.38587 1.23608 75 u g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03914 3.95318 3.95318 1.46634 0.26236 0.89445 0.52565
+ 65 1.58565 1.82232 0.85697 1.56500 76 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.08809 3.96524 2.72784 1.46634 0.26236 1.21186 0.35332
+ 66 1.52391 1.48095 1.34454 1.22397 77 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.12613 3.91773 2.31659 1.46634 0.26236 1.75895 0.18901
+ 67 1.52282 1.33094 1.73430 1.07543 78 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.22253 2.63265 2.05868 0.85854 0.55127 0.33779 1.24948
+ 68 1.60423 1.23253 1.55885 1.21395 82 c c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04313 3.85822 3.85822 1.46634 0.26236 1.04705 0.43228
+ 69 1.68565 1.20184 1.67611 1.11799 83 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04130 3.90073 3.90073 1.46634 0.26236 1.34753 0.30094
+ 70 1.40073 1.44687 1.53806 1.19244 84 u a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04068 3.91537 3.91537 1.46634 0.26236 1.77915 0.18486
+ 71 1.53577 1.44705 1.36461 1.22429 85 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04068 3.91537 3.91537 1.46634 0.26236 1.77915 0.18486
+ 72 1.45312 1.41798 1.58872 1.14015 86 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11679 3.91537 2.40463 1.46634 0.26236 1.77915 0.18486
+ 73 1.51389 1.51279 1.35424 1.19895 87 u a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.28753 1.47646 3.84241 0.17818 1.81271 0.60534 0.78942
+ 74 1.80135 2.21453 0.51503 2.05386 89 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04017 3.92787 3.92787 1.46634 0.26236 0.59018 0.80795
+ 75 1.61432 1.75865 0.83344 1.63914 90 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 76 1.92879 1.11852 1.80157 1.01370 91 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04772 3.96524 3.58872 1.46634 0.26236 1.21186 0.35332
+ 77 1.67416 1.24836 1.65204 1.09691 92 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.21169 1.76227 3.95653 0.20968 1.66519 0.96293 0.48090
+ 78 2.40087 3.06444 0.21065 2.94456 94 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 79 2.29338 2.81216 0.25179 2.78725 95 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 80 1.54689 1.60744 1.15809 1.29974 96 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10309 3.96524 2.53839 1.46634 0.26236 1.21186 0.35332
+ 81 2.00042 0.98719 1.78399 1.12661 97 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04119 3.90333 3.90333 1.46634 0.26236 0.44883 1.01714
+ 82 1.85043 1.17778 1.66146 1.06419 98 c c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 83 1.66699 1.37415 1.55895 1.05620 99 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04989 3.51650 3.96524 0.99871 0.45943 1.21186 0.35332
+ 84 1.59864 2.19140 0.62569 1.88930 101 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.08657 3.96524 2.74935 1.46634 0.26236 1.21186 0.35332
+ 85 1.48661 1.55240 1.34370 1.19983 102 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.19623 3.91919 1.84316 1.46634 0.26236 1.38197 0.28913
+ 86 1.34835 1.86442 1.63355 0.94133 103 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10739 3.78023 2.53820 1.46634 0.26236 2.14711 0.12423
+ 87 1.54358 1.71168 0.93907 1.53790 104 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07417 3.73281 3.04580 1.46634 0.26236 0.41147 1.08671
+ 88 1.60247 1.88541 1.31586 0.97130 106 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05737 3.33927 3.89756 0.90988 0.51512 0.42541 1.05987
+ 89 1.59247 1.50536 1.28314 1.21242 108 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 90 1.63991 1.51762 1.33742 1.12625 109 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 91 1.60469 1.93535 0.75355 1.69291 110 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 1.21186 0.35332
+ 92 1.89408 0.62945 2.39290 1.49035 111 c c - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03867 3.96524 3.96524 1.46634 0.26236 0.90458 0.51871
+ 93 1.49295 1.35071 1.75095 1.07112 112 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 94 1.32097 1.50858 1.51526 1.23049 113 a a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.26968 1.85597 2.52479 1.39651 0.28430 1.09861 0.40547
+ 95 1.26096 1.62276 1.88144 1.00268 126 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10404 3.90884 2.54153 1.46634 0.26236 0.38556 1.13965
+ 96 1.25100 1.80843 1.94969 0.89759 127 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04068 3.91537 3.91537 1.46634 0.26236 1.47187 0.26071
+ 97 1.43061 1.99095 2.06321 0.69871 128 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04039 3.92251 3.92251 1.46634 0.26236 0.44533 1.02336
+ 98 1.53022 2.11703 1.19106 1.02380 129 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04491 3.97203 3.68579 1.46634 0.26236 1.09861 0.40547
+ 99 1.57617 1.14196 1.57974 1.31672 130 c c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03864 3.96577 3.96577 1.46634 0.26236 0.91716 0.51025
+ 100 2.36201 1.33644 2.16598 0.63799 131 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 101 1.70590 2.18678 0.55649 2.01820 132 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 102 1.84325 2.73318 0.35496 2.58386 133 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 103 1.82439 0.92364 1.66545 1.37632 134 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 104 2.19692 0.77596 1.84946 1.30464 135 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 105 2.26216 1.14862 2.05328 0.79742 136 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06248 3.17636 3.97203 0.74258 0.64604 1.09861 0.40547
+ 106 2.56908 3.39539 0.16021 3.27272 138 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 107 3.37003 0.28108 3.23585 1.76425 139 c c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 108 3.58253 0.16181 3.41059 2.42400 140 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 109 3.59026 0.16124 3.41469 2.42547 141 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 110 1.21603 2.17009 1.08354 1.38217 142 g a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 111 1.66962 1.36323 1.54166 1.07346 143 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 112 2.95411 1.56683 2.72727 0.39486 144 u u - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 113 3.02108 0.31951 2.58307 1.90242 145 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 114 2.96851 0.31199 2.74877 1.87975 146 c C - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07698 3.97203 2.89573 1.46634 0.26236 1.09861 0.40547
+ 115 0.36303 3.01178 1.61751 2.86756 147 a A - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03988 3.93493 3.93493 1.46634 0.26236 0.51981 0.90297
+ 116 0.61572 2.00162 1.78028 1.85763 148 a a - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 117 1.74455 2.44364 0.44959 2.29715 149 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 118 2.03236 1.10071 1.79581 0.99331 150 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 119 1.69619 1.37276 1.65105 0.99058 151 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 120 1.69923 1.76740 0.75761 1.72814 152 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15341 2.09240 3.97203 0.28152 1.40501 1.09861 0.40547
+ 121 1.25634 2.21044 0.76965 1.94858 154 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 122 1.82824 2.03920 0.65948 1.65000 155 g g - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 123 0.24105 3.14771 2.24990 2.72056 156 a A - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 124 2.17437 3.10410 0.23566 2.96807 157 g G - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 125 1.71420 1.47079 1.61748 0.93713 158 u c - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.28933 3.97203 1.45931 1.46634 0.26236 1.09861 0.40547
+ 126 1.97778 2.12678 2.37550 0.43165 160 u U - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04908 3.73179 3.73179 1.46634 0.26236 0.38328 1.14451
+ 127 1.68646 2.21593 0.55142 2.04298 161 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04039 3.92251 3.92251 1.46634 0.26236 0.44533 1.02336
+ 128 1.49113 1.86156 0.80171 1.76674 162 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 129 1.55734 1.71457 0.96919 1.47024 163 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 130 1.63043 1.31533 1.54006 1.13507 164 u c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 131 1.73657 1.08093 1.58635 1.27323 165 c c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 132 1.35352 1.80222 1.02319 1.52653 166 g a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.27687 1.50054 3.97203 0.23432 1.56594 1.09861 0.40547
+ 133 1.49752 1.44443 1.44100 1.19157 169 u a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 134 1.79938 2.19061 0.55558 1.90372 170 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.12620 3.97203 2.30528 1.46634 0.26236 1.09861 0.40547
+ 135 1.58481 1.58859 1.26184 1.17874 171 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04185 3.88768 3.88768 1.46634 0.26236 0.32043 1.29403
+ 136 1.76246 2.01833 0.59509 1.93802 172 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 137 1.48713 1.71957 0.94143 1.58589 173 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 138 1.69054 1.17949 1.53510 1.22857 174 c c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04604 3.97203 3.64356 1.46634 0.26236 1.09861 0.40547
+ 139 1.77587 1.24751 1.72424 1.00748 175 u c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03869 3.96468 3.96468 1.46634 0.26236 0.89202 0.52734
+ 140 1.90423 1.19022 1.75090 0.98539 176 u c - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 141 1.43723 1.60231 1.22049 1.32465 177 g a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11247 2.43560 3.97203 0.38582 1.13911 1.09861 0.40547
+ 142 1.40731 1.66020 1.09936 1.46096 179 g a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 143 1.75201 2.06297 0.58770 1.93865 180 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 144 2.82896 0.49240 2.61411 1.36048 181 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 145 3.08406 4.00877 0.09633 3.57894 182 g G - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 146 0.22079 2.96396 2.65511 2.57423 183 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 147 0.26195 2.62581 2.72599 2.37959 184 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 148 1.27972 2.80190 0.55949 2.41138 185 g G - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 149 1.81636 2.78041 0.35512 2.59990 186 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 150 2.14779 0.66400 1.89224 1.52447 187 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05084 3.97203 3.48229 1.46634 0.26236 1.09861 0.40547
+ 151 1.60503 1.35901 1.51135 1.13448 188 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06822 3.20564 3.67250 0.76941 0.62229 0.80001 0.59661
+ 152 1.60400 1.48975 1.38687 1.12817 190 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03865 3.96574 3.96574 1.46634 0.26236 0.91636 0.51078
+ 153 1.44168 1.91069 0.89692 1.57182 191 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 154 1.50760 1.85238 0.90588 1.52552 192 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04739 3.97203 3.59552 1.46634 0.26236 1.09861 0.40547
+ 155 1.52128 1.69115 0.97761 1.50936 193 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06304 3.96338 3.16771 1.46634 0.26236 0.86394 0.54731
+ 156 1.87914 1.09564 1.55238 1.19995 194 u c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03932 3.94886 3.94886 1.46634 0.26236 0.64320 0.74572
+ 157 2.12742 0.81826 1.84375 1.26785 195 c c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 158 1.46067 1.61456 1.33054 1.18874 196 u c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04862 3.55365 3.97203 1.02479 0.44453 1.09861 0.40547
+ 159 2.24093 0.65893 1.94705 1.45438 198 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 160 1.45715 1.68301 1.24291 1.22846 199 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09380 2.64937 3.97203 0.46776 0.98459 1.09861 0.40547
+ 161 1.76012 1.14960 1.52601 1.22482 201 c u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 162 1.48688 1.73077 0.96164 1.53939 202 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04862 3.97203 3.55365 1.46634 0.26236 1.09861 0.40547
+ 163 1.45564 1.76012 1.07299 1.37540 203 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03878 3.96220 3.96220 1.46634 0.26236 0.83993 0.56517
+ 164 1.77483 1.18923 1.43645 1.24389 204 u c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 165 1.87806 1.11685 1.68675 1.09457 205 u c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.16633 3.97203 2.00694 1.46634 0.26236 1.09861 0.40547
+ 166 2.25150 0.65700 2.02419 1.40956 206 c c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09956 2.61084 3.84923 1.29381 0.32051 0.24708 1.51903
+ 167 1.69651 1.03724 1.66788 1.29609 211 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 168 2.21828 1.59958 2.11217 0.56520 212 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.12128 2.34991 3.97203 0.35686 1.20355 1.09861 0.40547
+ 169 0.40076 2.62476 1.91590 2.20252 214 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 170 0.72076 2.63571 1.08943 2.24865 215 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05029 3.49952 3.97203 0.97874 0.47126 1.09861 0.40547
+ 171 0.62837 2.28497 1.51638 1.92925 217 a a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 172 1.55765 1.76410 0.90715 1.54011 218 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11957 2.36591 3.97203 0.36211 1.19141 1.09861 0.40547
+ 173 1.54005 1.43644 1.60356 1.05936 220 u g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 174 2.53098 3.34610 0.16839 3.21454 221 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 175 1.91373 2.40288 0.43804 2.14802 222 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 176 1.37602 1.32904 1.26168 1.61190 223 a a - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 177 1.49213 2.18972 0.58970 2.21948 224 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 178 1.99886 1.74412 0.64962 1.78696 225 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 179 1.90462 2.35283 0.41982 2.31407 226 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 180 1.45654 1.12960 1.63311 1.39241 227 c a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 181 0.16945 3.16683 3.01505 2.73819 228 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 182 1.34968 0.93902 2.36682 1.36302 229 c a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04543 3.97720 3.66238 1.46634 0.26236 1.09861 0.40547
+ 183 1.51514 1.37272 1.55004 1.15655 230 u g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03847 3.97024 3.97024 1.46634 0.26236 0.90010 0.52177
+ 184 1.85245 1.78946 0.71042 1.68925 231 g g - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 185 3.60945 0.15895 3.43093 2.43571 232 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 186 2.18698 3.24575 0.21740 3.11910 233 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 187 3.14245 1.70801 2.95765 0.32344 234 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 188 2.22431 2.72294 0.32180 2.28935 235 g G - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 189 0.10168 3.63318 3.32058 3.37801 236 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 190 3.09351 4.01924 0.09533 3.58913 237 g G - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 191 3.09351 4.01924 0.09533 3.58913 238 g G - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 192 3.61221 0.15875 3.43239 2.43622 239 c C - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 193 2.37578 1.84762 2.43235 0.41307 240 u u - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 194 2.84366 3.63169 0.11972 3.57033 241 g G - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 195 3.09351 4.01924 0.09533 3.58913 242 g G - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 196 1.63445 1.32236 2.39272 0.80508 243 u u - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 197 1.91903 2.28034 2.53734 0.39761 244 u U - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10109 3.97720 2.55858 1.46634 0.26236 1.09861 0.40547
+ 198 2.87295 2.79294 3.39962 0.16388 245 u U - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04063 3.91673 3.91673 1.46634 0.26236 1.81342 0.17804
+ 199 2.37606 0.32933 3.07436 1.95573 246 c C - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04063 3.91673 3.91673 1.46634 0.26236 0.39481 1.12028
+ 200 0.10168 3.63318 3.32058 3.37801 247 a A - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 201 3.75900 0.14305 3.47894 2.53649 248 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 202 0.46120 2.63703 1.68501 2.18520 249 a a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 203 2.72497 3.61033 0.13504 3.38954 250 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 204 0.10168 3.63318 3.32058 3.37801 251 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 205 2.69658 3.75244 0.13481 3.34603 252 g G - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 206 3.32029 0.12663 3.88726 2.77589 253 c C - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 207 0.10168 3.63318 3.32058 3.37801 254 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 208 1.63827 3.11510 0.34788 2.89813 255 g g - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 209 3.33072 0.26003 3.06743 1.91960 256 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 210 2.71286 3.59162 0.13737 3.36830 257 g G - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 211 0.80190 1.89827 1.61571 1.59481 258 a a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 212 1.35166 1.58379 1.32318 1.31043 259 u c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04572 3.97720 3.65152 1.46634 0.26236 1.09861 0.40547
+ 213 1.27566 1.15906 2.27390 1.19053 260 c a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03848 3.96996 3.96996 1.46634 0.26236 0.89367 0.52620
+ 214 0.47220 2.22506 2.16546 1.87332 261 a a - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 215 2.15271 0.71670 1.50984 1.74568 262 c c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05119 3.97720 3.46835 1.46634 0.26236 1.09861 0.40547
+ 216 2.47074 0.76288 2.02834 1.14695 263 u c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05426 3.38599 3.96469 0.89421 0.52582 0.78954 0.60524
+ 217 1.86887 1.57505 1.20422 1.08241 265 u u - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 218 2.45395 0.54325 2.15472 1.52668 266 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 219 3.45356 0.22872 3.20399 2.02331 267 c C - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 220 1.52171 1.27720 1.31862 1.44671 268 c c - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 221 1.55332 1.85425 0.89821 1.49349 270 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 222 3.19246 0.26872 2.92677 1.95899 271 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 223 3.25154 2.52627 2.96071 0.18688 272 u U - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 224 2.27611 0.80850 1.87193 1.21079 273 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 225 2.16345 0.83212 2.01788 1.14882 274 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07657 2.90089 3.97720 0.58184 0.81842 1.09861 0.40547
+ 226 1.99079 0.90707 1.55189 1.39489 276 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 227 1.29360 1.88084 1.05368 1.49342 277 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 228 1.19749 1.95827 0.97307 1.72024 278 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 229 2.55218 0.50896 2.16701 1.57769 279 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 230 1.05102 2.01271 1.11909 1.65958 280 g a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07657 3.97720 2.90089 1.46634 0.26236 1.09861 0.40547
+ 231 3.04792 3.96870 0.10023 3.53989 281 g G - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03966 3.94029 3.94029 1.46634 0.26236 0.51981 0.90297
+ 232 3.04007 1.85451 2.79933 0.30817 282 u U - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 233 2.11714 2.91657 0.28978 2.56300 283 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 234 2.14108 2.72049 0.28170 2.77855 284 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 235 0.46612 2.88761 1.38478 2.71085 285 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 236 1.11017 1.76220 1.23952 1.56395 286 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 237 2.70026 3.58104 0.13900 3.35996 287 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 238 2.69628 3.57556 0.13973 3.35386 288 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 239 0.10168 3.63318 3.32058 3.37801 289 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 240 2.72550 2.51322 3.24464 0.20518 290 u U - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 241 0.63550 1.76378 2.30878 1.61168 291 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05286 3.41890 3.97720 0.90988 0.51512 1.09861 0.40547
+ 242 0.38965 3.38339 1.40698 3.12608 293 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03820 3.97720 3.97720 1.46634 0.26236 1.09861 0.40547
+ 243 3.46886 0.22106 3.22508 2.06019 294 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 244 1.21069 2.22557 0.78698 1.97482 295 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 245 1.60432 2.14128 0.64356 1.85756 296 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 246 1.56674 1.93625 0.79810 1.62533 297 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 247 2.82101 0.46638 2.54061 1.45087 298 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 248 2.29473 0.74549 1.97453 1.25217 299 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 249 1.48828 2.32716 0.62357 1.96155 300 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 250 1.52695 1.48676 1.12214 1.46483 301 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07698 3.97203 2.89573 1.46634 0.26236 1.09861 0.40547
+ 251 1.47528 1.70778 1.36859 1.09198 302 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03988 3.93493 3.93493 1.46634 0.26236 0.51981 0.90297
+ 252 1.70506 1.97084 0.69577 1.71364 303 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.21770 1.73276 3.97203 0.20094 1.70352 1.09861 0.40547
+ 253 2.02267 0.81856 1.79041 1.34807 305 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 254 1.27539 1.60251 1.33946 1.35751 306 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 255 1.48259 1.46702 1.26147 1.35053 307 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.14432 2.70085 2.69943 0.48974 0.94877 1.09861 0.40547
+ 256 1.77378 1.06520 1.55755 1.29099 309 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05586 3.36584 3.92241 0.91121 0.51422 0.44481 1.02428
+ 257 1.48576 1.50343 1.33119 1.24778 311 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 258 2.22614 0.81244 1.99757 1.16278 312 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 259 1.35994 1.65474 1.18000 1.40689 313 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 260 1.26143 1.88019 0.99503 1.63743 314 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 261 1.44742 2.01011 0.76709 1.79282 315 g G - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 262 1.56654 1.35898 1.36202 1.27953 316 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05084 3.48229 3.97203 0.96452 0.47992 1.09861 0.40547
+ 263 2.96119 0.33539 2.71078 1.79156 318 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 264 2.84524 0.28019 2.85322 2.05119 319 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05430 3.97203 3.38089 1.46634 0.26236 1.09861 0.40547
+ 265 0.60819 2.13857 1.69874 1.86479 320 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03900 3.95674 3.95674 1.46634 0.26236 0.74545 0.64344
+ 266 1.25930 1.12649 1.94777 1.38875 321 c a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03840 3.97203 3.97203 1.46634 0.26236 1.09861 0.40547
+ 267 1.49945 1.22644 2.33058 0.95147 322 u u - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.36725 1.48376 2.51849 0.15855 1.91989 1.09861 0.40547
+ 268 0.84794 1.61283 2.03657 1.41921 324 a a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04098 3.90830 3.90830 1.46634 0.26236 0.48149 0.96197
+ 269 1.08965 1.90729 1.65986 1.12388 325 u a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03869 3.96449 3.96449 1.46634 0.26236 1.22353 0.34841
+ 270 1.49039 1.67336 1.02302 1.48020 326 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04740 3.96449 3.60022 1.46634 0.26236 1.22353 0.34841
+ 271 1.53228 1.94918 0.77073 1.72097 327 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05520 3.95611 3.36497 1.46634 0.26236 0.98085 0.46999
+ 272 1.87838 0.92457 1.58852 1.40147 328 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03931 3.94907 3.94907 1.46634 0.26236 0.84519 0.56120
+ 273 2.38546 0.60318 1.99314 1.49336 329 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.14523 2.48252 2.96331 0.40533 1.09888 1.22353 0.34841
+ 274 1.54532 1.50196 1.36009 1.17952 331 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04003 3.93127 3.93127 1.46634 0.26236 0.63210 0.75816
+ 275 1.32088 1.68144 1.15754 1.45786 332 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03869 3.96449 3.96449 1.46634 0.26236 1.22353 0.34841
+ 276 1.36385 1.58960 1.18447 1.45069 333 g c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03869 3.96449 3.96449 1.46634 0.26236 1.22353 0.34841
+ 277 1.43842 1.71396 1.36712 1.11563 334 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10692 3.96449 2.49583 1.46634 0.26236 1.22353 0.34841
+ 278 1.46705 1.87144 0.88495 1.59574 335 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.09455 3.89893 2.65987 1.46634 0.26236 1.90844 0.16053
+ 279 1.38753 1.74547 1.10093 1.41394 336 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15992 2.29721 3.05229 0.44874 1.01731 0.53493 0.88118
+ 280 1.47649 1.54634 1.20890 1.34704 339 g c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04077 3.91336 3.91336 1.46634 0.26236 0.74942 0.63988
+ 281 1.89513 0.91268 1.66347 1.35180 340 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11821 3.94961 2.38344 1.46634 0.26236 1.42971 0.27362
+ 282 1.58736 1.32942 1.32449 1.32815 341 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04245 3.87384 3.87384 1.46634 0.26236 0.50899 0.91905
+ 283 1.44445 1.69314 1.15593 1.32645 342 u a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03929 3.94961 3.94961 1.46634 0.26236 1.42971 0.27362
+ 284 1.47792 1.39981 1.32920 1.34494 343 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05438 3.94961 3.39131 1.46634 0.26236 1.42971 0.27362
+ 285 1.56329 1.49868 1.28063 1.24040 344 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.20416 2.24380 2.54325 0.33496 1.25655 1.03607 0.43827
+ 286 1.49526 0.96947 2.33231 1.20580 346 c c - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04177 3.88963 3.88963 1.46634 0.26236 0.58220 0.81795
+ 287 1.50935 1.46343 1.34257 1.25060 347 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05909 3.94961 3.26709 1.46634 0.26236 1.42971 0.27362
+ 288 1.23774 1.63996 1.28812 1.42634 348 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04894 3.93057 3.57083 1.46634 0.26236 0.95771 0.48413
+ 289 1.14726 1.73156 1.16841 1.63667 349 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.20629 2.53932 2.23045 0.43567 1.04080 1.16859 0.37223
+ 290 1.28624 1.64434 1.71967 1.04575 351 u a - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04313 3.85823 3.85823 1.46634 0.26236 0.45378 1.00846
+ 291 1.94722 0.98068 1.79962 1.14913 352 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03929 3.94961 3.94961 1.46634 0.26236 1.42971 0.27362
+ 292 1.22543 1.86384 0.94854 1.80797 353 g g - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03929 3.94961 3.94961 1.46634 0.26236 1.42971 0.27362
+ 293 1.13465 2.04429 0.98165 1.74697 354 g a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10156 3.94961 2.55993 1.46634 0.26236 1.42971 0.27362
+ 294 0.16323 3.08814 2.97449 2.91983 355 a A - -
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04987 3.88980 3.56867 1.46634 0.26236 0.58316 0.81674
+ 295 2.08415 0.64213 1.92130 1.59455 356 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03958 3.94228 3.94228 1.46634 0.26236 1.51649 0.24780
+ 296 1.67869 1.00633 1.56823 1.42958 357 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03958 3.94228 3.94228 1.46634 0.26236 1.51649 0.24780
+ 297 1.08559 1.74407 1.32588 1.50544 358 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03958 3.94228 3.94228 1.46634 0.26236 1.51649 0.24780
+ 298 2.25122 0.74423 2.03506 1.24148 359 c c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03958 3.94228 3.94228 1.46634 0.26236 1.51649 0.24780
+ 299 2.45675 0.48367 2.30325 1.62030 360 c C - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05242 3.94228 3.45255 1.46634 0.26236 1.51649 0.24780
+ 300 1.05999 1.80723 1.25615 1.58628 361 a a - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06423 3.92995 3.15674 1.46634 0.26236 1.64636 0.21412
+ 301 2.23675 0.88138 2.03977 1.05289 362 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04801 3.90676 3.62052 1.46634 0.26236 1.84921 0.17122
+ 302 2.10033 0.91520 1.88946 1.12088 363 u c - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04132 3.90008 3.90008 1.46634 0.26236 1.90005 0.16200
+ 303 2.81106 1.68981 2.59195 0.38503 364 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10419 3.90008 2.54205 1.46634 0.26236 1.90005 0.16200
+ 304 2.56590 1.90487 2.31102 0.39282 365 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.12699 3.83983 2.32521 1.46634 0.26236 2.25913 0.11031
+ 305 1.57452 1.65410 1.35452 1.06840 366 u u - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07247 2.66065 * 0.58184 0.81842 0.00000 *
+//
+INFERNAL1/a [1.1.1 | July 2014]
+NAME tRNA-Sec
+ACC RF01852
+STATES 292
+NODES 75
+CLEN 91
+W 117
+ALPH RNA
+RF no
+CONS yes
+MAP yes
+DATE Tue Apr 8 16:22:29 2014
+COM [1] cmbuild -F CM SEED
+COM [2] cmcalibrate --mpi 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 109
+EFFN 2.318512
+CKSUM 3407454328
+NULL 0.000 0.000 0.000 0.000
+GA 47.00
+TC 47.00
+NC 46.90
+EFP7GF -12.3219 0.71862
+ECMLC 0.74414 -5.65122 2.12842 1600000 392081 0.003061
+ECMGC 0.38122 -15.57366 -3.55100 1600000 39136 0.010221
+ECMLI 0.59769 -5.29381 3.90232 1600000 292574 0.004102
+ECMGI 0.41821 -9.96424 0.79712 1600000 36025 0.011103
+CM
+ [ ROOT 0 ] - - - - - -
+ S 0 -1 0 1 6 0 1 117 148 -9.167 -9.106 -0.072 -5.457 -8.163 -5.750
+ IL 1 1 2 1 6 6 39 118 149 -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 7 39 118 149 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 1 ] 1 115 G C - -
+ MP 3 2 3 7 6 9 42 117 148 -9.116 -9.056 -0.024 -7.832 -8.112 -7.729 -4.348 -2.912 -4.393 0.458 -4.887 -4.513 -0.299 -4.756 -4.149 3.538 -3.573 -0.513 -0.618 -4.122 -2.305 -3.323
+ ML 4 2 3 7 6 6 36 115 146 -6.580 -6.926 -1.327 -1.253 -3.149 -4.305 0.139 -0.737 0.521 -0.211
+ MR 5 2 3 7 6 5 36 115 146 -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 3 31 113 144 -9.406 -8.104 -2.271 -4.584 -3.055 -0.676
+ IL 7 7 5 7 6 6 38 116 147 -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 6 38 116 147 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 2 ] 2 114 g c - -
+ MP 9 8 6 13 6 9 41 115 146 -9.139 -9.078 -0.021 -7.855 -8.135 -8.530 -3.276 -2.566 -3.279 1.111 -3.203 -4.000 1.685 -3.481 -3.399 2.629 -3.832 -0.206 0.910 -3.312 -0.792 -2.225
+ ML 10 8 6 13 6 5 36 113 144 -6.291 -6.637 -1.352 -0.965 -6.487 -4.017 0.312 -0.224 -0.303 0.126
+ MR 11 8 6 13 6 5 36 113 144 -7.229 -5.958 -1.223 -5.936 -1.070 -4.150 0.074 -0.101 -0.588 0.433
+ D 12 8 6 13 6 3 30 110 141 -9.096 -7.795 -3.116 -4.274 -4.291 -0.367
+ IL 13 13 5 13 6 6 37 114 145 -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 6 38 114 145 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 3 ] 3 113 g c - -
+ MP 15 14 6 19 6 9 40 113 144 -9.164 -9.103 -0.020 -7.880 -8.160 -8.555 -3.059 -2.598 -3.107 1.726 -2.871 -3.889 1.887 -3.237 -3.185 2.067 -3.661 -0.462 1.105 -3.200 -0.554 -2.077
+ ML 16 14 6 19 6 5 35 111 142 -6.291 -6.637 -1.352 -0.965 -6.487 -4.017 0.312 -0.224 -0.303 0.126
+ MR 17 14 6 19 6 5 35 111 142 -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 3 30 108 139 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 19 19 5 19 6 6 37 112 143 -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 6 37 112 143 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 4 ] 4 112 g c - -
+ MP 21 20 6 25 6 8 38 111 142 -9.164 -9.103 -0.023 -7.880 -8.160 -7.848 -2.838 -2.411 -2.916 1.911 -2.838 -3.719 1.635 -2.804 -3.006 2.034 -3.494 -0.012 0.978 -3.006 -0.601 -1.943
+ ML 22 20 6 25 6 5 34 109 140 -6.291 -6.637 -1.252 -1.046 -6.487 -4.017 0.312 -0.224 -0.303 0.126
+ MR 23 20 6 25 6 5 34 109 140 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 24 20 6 25 6 2 29 106 137 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 25 25 5 25 6 5 36 110 141 -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 6 36 110 141 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 5 ] 5 111 g c - -
+ MP 27 26 6 31 6 7 37 109 140 -9.165 -9.104 -0.029 -7.880 -8.160 -6.871 -3.198 -2.381 -3.189 1.285 -3.470 -3.883 1.067 -3.581 -3.389 2.835 -3.009 0.154 0.625 -3.173 -1.072 -2.201
+ ML 28 26 6 31 6 5 33 107 138 -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 5 33 107 138 -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 2 29 104 135 -9.091 -7.789 -3.159 -4.268 -4.286 -0.361
+ IL 31 31 5 31 6 5 35 108 139 -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 5 35 108 139 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 6 ] 6 110 g c - -
+ MP 33 32 6 37 6 7 35 107 138 -9.159 -9.098 -0.041 -7.874 -8.154 -5.900 -2.601 -2.356 -2.496 1.306 -2.555 -3.501 1.722 -2.922 -2.789 1.910 -3.295 0.417 1.434 -2.797 -0.320 -1.683
+ ML 34 32 6 37 6 5 32 105 136 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 35 32 6 37 6 4 32 105 136 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 36 32 6 37 6 2 28 103 134 -9.191 -7.890 -2.845 -4.369 -4.386 -0.398
+ IL 37 37 5 37 6 5 34 106 137 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 38 38 6 38 5 5 34 106 137 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 7 ] 7 109 g c - -
+ MP 39 38 6 43 6 7 33 105 136 -9.144 -9.083 -0.098 -6.518 -4.513 -7.056 -2.619 -2.227 -2.701 1.606 -2.761 -3.469 1.297 -2.616 -2.839 2.388 -3.319 -0.236 1.043 -2.157 -0.610 -1.704
+ ML 40 38 6 43 6 4 31 103 134 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 41 38 6 43 6 4 31 103 134 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 42 38 6 43 6 2 28 101 132 -9.408 -8.106 -3.903 -4.586 -4.603 -0.243
+ IL 43 43 5 43 6 5 32 104 135 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 44 44 6 44 5 5 32 104 135 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 8 ] 8 108 c g - -
+ MP 45 44 6 49 6 6 32 103 134 -9.067 -9.006 -0.042 -7.783 -6.674 -6.558 -1.733 -1.724 -1.921 1.261 -1.865 -2.742 1.729 -2.099 -1.975 1.321 -2.343 -0.309 1.470 -1.519 -0.016 -0.154
+ ML 46 44 6 49 6 4 30 102 133 -6.374 -6.721 -1.144 -1.129 -6.570 -4.100 0.208 -0.364 -0.371 0.373
+ MR 47 44 6 49 6 4 30 102 133 -7.550 -6.279 -0.937 -6.257 -1.317 -4.471 0.471 -0.317 -0.492 0.138
+ D 48 44 6 49 6 2 28 100 131 -9.499 -8.198 -1.993 -4.677 -4.694 -0.586
+ IL 49 49 5 49 6 5 31 102 133 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 50 50 6 50 5 5 30 102 133 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 9 ] 9 107 g c - -
+ MP 51 50 6 55 4 4 30 101 132 -7.021 -4.488 -0.428 -2.290 -2.324 -1.223 -2.449 1.483 -2.620 -3.188 1.020 -2.540 -2.566 2.391 -3.040 0.322 0.821 -1.577 -0.616 -1.387
+ ML 52 50 6 55 4 4 29 100 131 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 53 50 6 55 4 3 28 100 131 -4.963 -3.992 -1.408 -0.920 0.184 0.053 -0.484 0.153
+ D 54 50 6 55 4 2 27 99 130 -4.857 -3.337 -2.554 -0.522
+ IL 55 55 5 55 4 4 29 102 132 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 56 56 6 56 3 4 29 101 132 -1.455 -0.769 -4.366 0.000 0.000 0.000 0.000
+ [ MATL 10 ] 10 - a - - -
+ ML 57 56 6 59 3 3 28 99 130 -4.955 -0.105 -4.724 0.965 -0.869 -0.837 -0.087
+ D 58 56 6 59 3 2 27 98 129 -7.702 -0.655 -1.473
+ IL 59 59 3 59 3 3 28 100 131 -1.389 -0.818 -4.300 0.000 0.000 0.000 0.000
+ [ MATL 11 ] 13 - u - - -
+ ML 60 59 3 62 2 3 27 98 129 -8.424 -0.004 -0.279 -0.381 -0.896 0.903
+ D 61 59 3 62 2 2 26 97 128 -8.495 -0.004
+ IL 62 62 3 62 2 3 27 99 129 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 12 ] - - - - - -
+ B 63 62 3 64 176 2 26 97 128
+ [ BEGL 13 ] - - - - - -
+ S 64 63 1 65 1 0 1 50 70 0.000
+ [ BIF 14 ] - - - - - -
+ B 65 64 1 66 116 0 1 50 70
+ [ BEGL 15 ] - - - - - -
+ S 66 65 1 67 4 0 0 30 49 -0.042 -6.912 -6.319 -6.959
+ [ MATP 16 ] 14 35 c g - -
+ MP 67 66 1 71 6 2 2 30 49 -6.798 -9.106 -0.031 -7.883 -8.163 -8.558 -3.032 -2.754 -3.106 0.976 -2.632 -3.903 2.376 -3.105 -3.126 1.723 -3.627 -0.252 1.332 -3.225 -0.143 -2.033
+ ML 68 66 1 71 6 1 1 29 47 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 69 66 1 71 6 1 1 29 47 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 70 66 1 71 6 0 0 26 45 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 71 71 5 71 6 1 1 30 49 -2.250 -3.042 -0.789 -4.697 -5.473 -5.134 0.000 0.000 0.000 0.000
+ IR 72 72 6 72 5 1 1 30 48 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 17 ] 17 34 g c - -
+ MP 73 72 6 77 6 2 2 28 47 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -2.304 -2.200 -2.445 1.157 -2.323 -2.663 1.868 -2.693 -2.513 1.925 -2.649 -0.192 1.293 -2.552 0.053 -1.574
+ ML 74 72 6 77 6 1 1 27 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 75 72 6 77 6 1 1 27 45 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 76 72 6 77 6 0 0 24 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 77 77 5 77 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 78 78 6 78 5 1 1 28 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 18 ] 18 33 g c - -
+ MP 79 78 6 83 6 2 2 26 45 -6.199 -9.106 -0.038 -7.883 -8.163 -8.558 -2.051 -1.780 -1.979 1.148 -2.133 -2.855 1.662 -2.500 -2.284 1.751 -2.830 -0.286 1.325 -2.145 0.719 -1.392
+ ML 80 78 6 83 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 81 78 6 83 6 1 1 25 43 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 82 78 6 83 6 0 0 22 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 83 83 5 83 6 1 1 26 44 -2.745 -3.008 -0.656 -4.663 -5.439 -5.099 0.000 0.000 0.000 0.000
+ IR 84 84 6 84 5 1 1 26 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 19 ] 20 32 c g - -
+ MP 85 84 6 89 6 2 2 24 43 -9.167 -9.106 -0.029 -7.883 -6.759 -8.558 -2.496 -2.177 -2.622 1.184 -2.415 -3.428 1.985 -2.812 -2.164 1.875 -3.202 -0.302 1.303 -2.730 0.069 -1.701
+ ML 86 84 6 89 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 87 84 6 89 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 88 84 6 89 6 0 0 21 39 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 89 89 5 89 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 90 90 6 90 5 1 1 24 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 20 ] 21 31 c g - -
+ MP 91 90 6 95 6 2 2 22 41 -5.985 -9.098 -0.041 -7.875 -8.154 -8.549 -1.740 -2.113 -2.031 1.361 -2.098 -3.062 1.786 -2.486 -2.289 1.503 -2.711 -0.274 1.532 -2.356 0.234 -1.340
+ ML 92 90 6 95 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 93 90 6 95 6 1 1 21 39 -7.084 -5.813 -1.443 -5.791 -0.925 -4.005 0.327 -0.563 0.180 -0.096
+ D 94 90 6 95 6 0 0 19 38 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 95 95 5 95 6 1 1 22 40 -2.772 -3.035 -0.640 -4.690 -5.466 -5.127 0.000 0.000 0.000 0.000
+ IR 96 96 6 96 5 1 1 22 40 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 21 ] 23 30 c g - -
+ MP 97 96 6 101 4 2 2 20 38 -5.143 -7.306 -0.079 -5.720 -3.314 -2.955 -3.350 0.745 -2.761 -4.135 2.600 -3.259 -3.344 1.765 -3.829 -0.539 1.205 -3.505 -0.393 -2.223
+ ML 98 96 6 101 4 1 1 20 38 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 99 96 6 101 4 1 1 20 38 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 100 96 6 101 4 0 0 19 37 -4.568 -4.250 -2.265 -0.520
+ IL 101 101 5 101 4 1 1 21 40 -1.826 -2.071 -1.156 -4.995 0.000 0.000 0.000 0.000
+ IR 102 102 6 102 3 1 1 20 39 -1.490 -0.763 -4.190 0.000 0.000 0.000 0.000
+ [ MATL 22 ] 25 - U - - -
+ ML 103 102 6 105 3 1 1 16 35 -8.105 -0.019 -6.759 -0.740 -0.096 -1.426 1.066
+ D 104 102 6 105 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 105 105 3 105 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 23 ] 26 - G - - -
+ ML 106 105 3 108 3 1 1 15 33 -8.105 -0.019 -6.759 -1.880 -3.144 1.783 -2.531
+ D 107 105 3 108 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 108 108 3 108 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 24 ] 27 - G - - -
+ ML 109 108 3 111 3 1 1 13 31 -8.105 -0.019 -6.759 -1.880 -3.144 1.783 -2.531
+ D 110 108 3 111 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 111 111 3 111 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 25 ] 28 - U - - -
+ ML 112 111 3 114 2 1 1 1 1 * 0.000 -1.751 -1.701 -2.496 1.686
+ D 113 111 3 114 2 0 0 0 0 * 0.000
+ IL 114 114 3 114 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 26 ] - - - - - -
+ E 115 114 3 -1 0 0 0 0 0
+ [ BEGR 27 ] - - - - - -
+ S 116 65 1 117 5 0 0 33 52 -7.217 -0.036 -7.033 -7.245 -8.136
+ IL 117 117 2 117 5 1 1 34 53 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 28 ] 36 57 u a - -
+ MP 118 117 2 122 6 2 2 33 52 -9.167 -4.681 -0.076 -7.883 -8.163 -8.558 -1.639 -1.771 -1.838 1.129 -1.711 -2.242 1.584 -0.530 -1.783 1.151 -2.443 0.219 1.594 -1.825 0.069 -0.990
+ ML 119 117 2 122 6 1 1 31 50 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 120 117 2 122 6 1 1 31 50 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 121 117 2 122 6 0 0 29 48 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 122 122 5 122 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 123 123 6 123 5 1 1 32 51 -2.145 -0.519 -6.349 -4.517 -5.623 0.000 0.000 0.000 0.000
+ [ MATP 29 ] 37 54 c g - -
+ MP 124 123 6 128 6 2 2 31 50 -9.167 -7.048 -0.029 -7.883 -8.163 -8.558 -1.388 -1.676 -1.908 1.183 -1.481 -2.550 1.865 -2.101 -1.699 1.114 -2.485 0.567 1.339 -2.032 0.003 -1.131
+ ML 125 123 6 128 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 126 123 6 128 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 127 123 6 128 6 0 0 27 46 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 128 128 5 128 6 1 1 31 49 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 129 129 6 129 5 1 1 30 49 -2.459 -0.476 -5.970 -4.138 -5.244 0.000 0.000 0.000 0.000
+ [ MATP 30 ] 38 52 c g - -
+ MP 130 129 6 134 6 2 2 29 48 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -3.673 -3.556 -3.597 0.380 -2.601 -4.232 2.940 -3.279 -3.589 0.573 -4.011 -1.471 1.754 -3.834 -0.252 -2.451
+ ML 131 129 6 134 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 132 129 6 134 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 133 129 6 134 6 0 0 25 44 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 134 134 5 134 6 1 1 29 47 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 135 135 6 135 5 1 1 28 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 31 ] 39 51 G C - -
+ MP 136 135 6 140 6 2 2 27 46 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -3.681 -2.565 -3.653 1.528 -4.147 -4.307 0.389 -4.037 -3.755 3.089 -4.143 -0.172 0.272 -3.632 -1.595 -2.586
+ ML 137 135 6 140 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 138 135 6 140 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 139 135 6 140 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 140 140 5 140 6 1 1 27 45 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 141 141 6 141 5 1 1 26 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 32 ] 40 50 G C - -
+ MP 142 141 6 146 6 2 2 25 44 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -4.900 -3.170 -5.012 0.196 -5.551 -4.782 -0.845 -5.298 -4.450 3.670 -4.777 -0.869 -1.201 -4.577 -2.892 -3.886
+ ML 143 141 6 146 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 144 141 6 146 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 145 141 6 146 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 146 146 5 146 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 147 147 6 147 5 1 1 24 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 33 ] 41 49 g c - -
+ MP 148 147 6 152 4 2 2 23 42 -7.099 -7.306 -0.048 -5.720 -3.060 -2.532 -3.112 1.787 -3.004 -3.921 1.260 -3.295 -3.193 2.197 -3.672 -0.363 1.556 -3.211 -0.697 -2.092
+ ML 149 147 6 152 4 1 1 24 43 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 150 147 6 152 4 1 1 23 42 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 151 147 6 152 4 0 0 22 41 -4.568 -4.250 -2.265 -0.520
+ IL 152 152 5 152 4 1 1 25 44 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 153 153 6 153 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 34 ] 42 - C - - -
+ ML 154 153 6 156 3 1 1 20 39 -8.105 -0.019 -6.759 -1.740 1.591 -2.575 -0.941
+ D 155 153 6 156 3 0 0 19 38 -6.174 -1.687 -0.566
+ IL 156 156 3 156 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 35 ] 43 - U - - -
+ ML 157 156 3 159 3 1 1 19 37 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 158 156 3 159 3 0 0 18 37 -6.174 -1.687 -0.566
+ IL 159 159 3 159 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 36 ] 44 - U - - -
+ ML 160 159 3 162 3 1 1 17 36 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 161 159 3 162 3 0 0 17 36 -6.174 -1.687 -0.566
+ IL 162 162 3 162 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 37 ] 45 - C - - -
+ ML 163 162 3 165 3 1 1 16 35 -8.105 -0.019 -6.759 -2.087 1.706 -2.918 -1.431
+ D 164 162 3 165 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 165 165 3 165 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 38 ] 46 - A - - -
+ ML 166 165 3 168 3 1 1 15 33 -8.105 -0.019 -6.759 1.774 -2.658 -2.261 -2.229
+ D 167 165 3 168 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 168 168 3 168 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 39 ] 47 - A - - -
+ ML 169 168 3 171 3 1 1 13 31 -8.105 -0.019 -6.759 1.615 -2.105 -1.370 -1.653
+ D 170 168 3 171 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 171 171 3 171 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 40 ] 48 - A - - -
+ ML 172 171 3 174 2 1 1 1 1 * 0.000 1.673 -2.026 -1.909 -1.735
+ D 173 171 3 174 2 0 0 0 0 * 0.000
+ IL 174 174 3 174 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 41 ] - - - - - -
+ E 175 174 3 -1 0 0 0 0 0
+ [ BEGR 42 ] - - - - - -
+ S 176 63 1 177 3 0 2 62 92 -5.308 -0.051 -6.759
+ IL 177 177 2 177 3 1 3 64 94 -1.391 -0.817 -4.293 0.000 0.000 0.000 0.000
+ [ MATL 43 ] 60 - G - - -
+ ML 178 177 2 180 2 1 2 61 92 -8.524 -0.004 -0.345 -1.363 1.036 -0.372
+ D 179 177 2 180 2 0 1 60 91 -8.445 -0.004
+ IL 180 180 3 180 2 1 2 62 93 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 44 ] - - - - - -
+ B 181 180 3 182 238 0 1 60 91
+ [ BEGL 45 ] - - - - - -
+ S 182 181 1 183 4 0 0 43 74 -0.077 -6.912 -5.572 -5.472
+ [ MATP 46 ] 61 84 g c - -
+ MP 183 182 1 187 6 2 2 43 74 -9.141 -9.081 -0.021 -7.857 -8.137 -8.532 -2.828 -2.518 -2.910 1.330 -2.640 -3.701 1.923 -3.043 -2.978 1.956 -3.475 -0.185 1.424 -3.002 -0.292 -1.816
+ ML 184 182 1 187 6 1 1 41 72 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 185 182 1 187 6 1 1 41 72 -7.096 -5.825 -1.734 -5.804 -0.750 -4.017 0.214 -0.006 -0.446 0.151
+ D 186 182 1 187 6 0 0 39 70 -9.307 -8.005 -2.087 -4.484 -4.502 -0.577
+ IL 187 187 5 187 6 1 1 43 74 -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 42 73 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 47 ] 62 83 g c - -
+ MP 189 188 6 193 6 2 2 41 72 -9.158 -9.097 -0.033 -7.873 -8.153 -6.483 -2.851 -2.030 -2.914 1.298 -2.856 -3.683 1.516 -3.163 -3.034 2.316 -3.508 -0.046 1.396 -2.973 -0.600 -1.947
+ ML 190 188 6 193 6 1 1 39 70 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 191 188 6 193 6 1 1 39 70 -7.096 -5.825 -1.422 -5.804 -0.937 -4.017 0.314 -0.574 0.206 -0.102
+ D 192 188 6 193 6 0 0 36 67 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 193 193 5 193 6 1 1 41 72 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 194 194 6 194 5 1 1 40 71 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 48 ] 63 82 g c - -
+ MP 195 194 6 199 6 2 2 39 70 -9.155 -9.094 -0.020 -7.871 -8.150 -8.545 -3.292 -2.415 -3.262 1.373 -3.524 -3.960 1.123 -3.632 -3.471 2.795 -3.864 0.186 0.611 -3.244 -0.920 -2.242
+ ML 196 194 6 199 6 1 1 38 68 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 197 194 6 199 6 1 1 37 68 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 198 194 6 199 6 0 0 35 65 -9.249 -7.948 -3.745 -4.427 -4.444 -0.274
+ IL 199 199 5 199 6 1 1 39 70 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 200 200 6 200 5 1 1 38 69 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 49 ] 64 81 g c - -
+ MP 201 200 6 205 6 2 2 37 68 -7.257 -9.094 -0.031 -7.871 -8.150 -7.617 -2.686 -2.330 -2.543 1.156 -2.710 -3.547 1.558 -3.032 -2.883 2.243 -3.099 0.365 1.334 -2.839 -0.459 -1.837
+ ML 202 200 6 205 6 1 1 36 67 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 203 200 6 205 6 1 1 36 66 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 204 200 6 205 6 0 0 33 64 -9.249 -7.948 -3.745 -4.427 -4.444 -0.274
+ IL 205 205 5 205 6 1 1 37 68 -2.648 -2.911 -0.715 -4.566 -5.342 -5.002 0.000 0.000 0.000 0.000
+ IR 206 206 6 206 5 1 1 36 67 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 50 ] 66 80 c g - -
+ MP 207 206 6 211 4 2 2 35 66 -7.060 -7.267 -0.049 -5.681 -2.458 -2.323 -2.596 1.137 -2.363 -3.390 2.101 -2.767 -2.635 1.669 -2.380 0.065 1.311 -2.707 -0.002 -1.672
+ ML 208 206 6 211 4 1 1 35 66 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 209 206 6 211 4 1 1 34 65 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 210 206 6 211 4 0 0 33 64 -4.806 -4.487 -1.607 -0.758
+ IL 211 211 5 211 4 1 1 36 67 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 212 212 6 212 3 1 1 35 66 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 51 ] 67 - u - - -
+ ML 213 212 6 215 3 1 1 33 64 -8.105 -0.019 -6.759 -0.210 -0.199 -0.420 0.601
+ D 214 212 6 215 3 0 0 31 62 -6.174 -1.687 -0.566
+ IL 215 215 3 215 3 1 1 34 65 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 52 ] 68 - a - - -
+ ML 216 215 3 218 3 1 1 32 63 -8.105 -0.019 -6.759 0.285 -0.558 0.188 -0.053
+ D 217 215 3 218 3 0 0 30 61 -6.174 -1.687 -0.566
+ IL 218 218 3 218 3 1 1 33 64 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 53 ] 69 - g - - -
+ ML 219 218 3 221 3 1 1 31 62 -8.105 -0.019 -6.759 -0.112 -0.454 0.486 -0.083
+ D 220 218 3 221 3 0 0 29 60 -6.174 -1.687 -0.566
+ IL 221 221 3 221 3 1 1 32 63 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 54 ] 70 - c - - -
+ ML 222 221 3 224 3 1 1 30 61 -8.105 -0.298 -2.448 0.059 0.279 -0.562 0.094
+ D 223 221 3 224 3 0 0 28 59 -6.174 -1.687 -0.566
+ IL 224 224 3 224 3 1 1 31 62 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 55 ] 71 - a - - -
+ ML 225 224 3 227 3 1 1 29 60 -7.829 -0.146 -3.443 0.459 -0.620 -0.287 0.208
+ D 226 224 3 227 3 0 0 25 56 -7.646 -3.159 -0.179
+ IL 227 227 3 227 3 1 1 30 61 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 56 ] 72 - a - - -
+ ML 228 227 3 230 3 1 1 29 59 -1.682 -0.564 -6.362 0.433 -0.836 0.242 -0.140
+ D 229 227 3 230 3 0 0 20 51 -7.963 -2.073 -0.399
+ IL 230 230 3 230 3 1 1 30 60 -0.859 -1.224 -5.595 0.000 0.000 0.000 0.000
+ [ MATL 57 ] 78 - c - - -
+ ML 231 230 3 233 3 1 1 13 32 -7.800 -0.023 -6.454 0.137 0.192 -0.515 0.082
+ D 232 230 3 233 3 0 0 12 31 -7.732 -2.169 -0.372
+ IL 233 233 3 233 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 58 ] 79 - g - - -
+ ML 234 233 3 236 2 1 1 1 1 * 0.000 0.041 -0.409 0.191 0.107
+ D 235 233 3 236 2 0 0 0 0 * 0.000
+ IL 236 236 3 236 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 59 ] - - - - - -
+ E 237 236 3 -1 0 0 0 0 0
+ [ BEGR 60 ] - - - - - -
+ S 238 181 1 239 3 0 0 32 51 -8.105 -0.019 -6.759
+ IL 239 239 2 239 3 1 1 35 55 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 61 ] 85 - g - - -
+ ML 240 239 2 242 3 1 1 32 51 -2.479 -0.731 -2.197 0.181 -0.817 0.396 -0.025
+ D 241 239 2 242 3 0 0 29 48 -6.174 -1.687 -0.566
+ IL 242 242 3 242 3 1 1 32 51 -1.693 -0.612 -4.789 0.000 0.000 0.000 0.000
+ [ MATL 62 ] 88 - G - - -
+ ML 243 242 3 245 5 1 1 30 49 -6.923 -0.044 -6.738 -6.950 -7.842 -0.966 -2.171 1.549 -1.559
+ D 244 242 3 245 5 0 0 29 48 -6.096 -0.312 -5.357 -3.732 -3.645
+ IL 245 245 3 245 5 1 1 30 49 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 63 ] 89 103 g c - -
+ MP 246 245 3 250 6 2 2 29 48 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -2.918 -2.621 -2.994 0.999 -2.651 -3.789 1.843 -3.082 -3.050 1.972 -3.550 -0.157 1.766 -3.094 -0.239 -1.969
+ ML 247 245 3 250 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 248 245 3 250 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 249 245 3 250 6 0 0 25 44 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 250 250 5 250 6 1 1 29 47 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 251 251 6 251 5 1 1 28 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 64 ] 90 102 g c - -
+ MP 252 251 6 256 6 2 2 27 46 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -2.935 -2.170 -2.976 1.492 -3.013 -3.725 1.283 -3.273 -3.128 2.471 -3.582 -0.269 1.266 -2.806 -0.727 -2.009
+ ML 253 251 6 256 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 254 251 6 256 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 255 251 6 256 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 256 256 5 256 6 1 1 27 45 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 257 257 6 257 5 1 1 26 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 65 ] 91 101 G C - -
+ MP 258 257 6 262 6 2 2 25 44 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -4.179 -2.838 -4.162 0.803 -4.618 -4.498 0.129 -4.517 -4.087 3.422 -4.433 -0.515 -0.267 -4.002 -2.014 -3.078
+ ML 259 257 6 262 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 260 257 6 262 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 261 257 6 262 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 262 262 5 262 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 263 263 6 263 5 1 1 24 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 66 ] 92 100 G C - -
+ MP 264 263 6 268 4 2 2 23 42 -7.099 -7.306 -0.048 -5.720 -5.021 -3.228 -5.151 0.011 -5.625 -4.801 -0.920 -5.410 -4.505 3.698 -4.823 -0.939 -1.298 -4.649 -2.973 -4.024
+ ML 265 263 6 268 4 1 1 24 43 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 266 263 6 268 4 1 1 23 42 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 267 263 6 268 4 0 0 22 41 -4.568 -4.250 -2.265 -0.520
+ IL 268 268 5 268 4 1 1 25 44 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 269 269 6 269 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 67 ] 93 - U - - -
+ ML 270 269 6 272 3 1 1 20 39 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 271 269 6 272 3 0 0 19 38 -6.174 -1.687 -0.566
+ IL 272 272 3 272 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 68 ] 94 - U - - -
+ ML 273 272 3 275 3 1 1 19 37 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 274 272 3 275 3 0 0 18 37 -6.174 -1.687 -0.566
+ IL 275 275 3 275 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 69 ] 95 - C - - -
+ ML 276 275 3 278 3 1 1 17 36 -8.105 -0.019 -6.759 -1.826 1.623 -2.659 -1.062
+ D 277 275 3 278 3 0 0 17 36 -6.174 -1.687 -0.566
+ IL 278 278 3 278 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 70 ] 96 - G - - -
+ ML 279 278 3 281 3 1 1 16 35 -8.105 -0.019 -6.759 0.088 -1.778 1.143 -1.193
+ D 280 278 3 281 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 281 281 3 281 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 71 ] 97 - A - - -
+ ML 282 281 3 284 3 1 1 15 33 -8.105 -0.019 -6.759 1.723 -2.390 -2.085 -1.875
+ D 283 281 3 284 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 284 284 3 284 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 72 ] 98 - U - - -
+ ML 285 284 3 287 3 1 1 13 31 -8.105 -0.019 -6.759 -0.664 -0.084 -1.491 1.049
+ D 286 284 3 287 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 287 287 3 287 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 73 ] 99 - U - - -
+ ML 288 287 3 290 2 1 1 1 1 * 0.000 -1.751 -1.701 -2.496 1.686
+ D 289 287 3 290 2 0 0 0 0 * 0.000
+ IL 290 290 3 290 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 74 ] - - - - - -
+ E 291 290 3 -1 0 0 0 0 0
+//
+HMMER3/f [i1.1.1 | July 2014]
+NAME tRNA-Sec
+ACC RF01852
+LENG 91
+MAXL 164
+ALPH RNA
+RF no
+MM no
+CONS yes
+CS yes
+MAP yes
+DATE Tue Apr 8 16:22:29 2014
+COM [1] cmbuild -F CM SEED
+NSEQ 109
+EFFN 12.031647
+CKSUM 3407454328
+STATS LOCAL MSV -8.8824 0.71862
+STATS LOCAL VITERBI -9.9312 0.71862
+STATS LOCAL FORWARD -3.8558 0.71862
+HMM A C G U
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.70134 1.32390 1.18487 1.40373
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07246 4.95852 2.76662 1.46634 0.26236 0.00000 *
+ 1 3.48543 4.45423 0.05778 4.27816 1 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05850 4.90105 3.00811 1.46634 0.26236 0.58802 0.81064
+ 2 2.12818 1.49124 0.57578 2.36885 2 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01505 4.89691 4.89691 1.46634 0.26236 0.19091 1.74989
+ 3 1.15561 1.29440 1.21466 2.16926 3 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 4 0.91913 1.60426 1.15455 2.46631 4 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02013 4.95852 4.35043 1.46634 0.26236 1.09861 0.40547
+ 5 1.93444 2.24838 0.39547 2.56963 5 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03548 4.95263 3.58290 1.46634 0.26236 0.73658 0.65152
+ 6 1.68805 1.48227 1.07047 1.40587 6 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06662 4.93770 2.85986 1.46634 0.26236 0.70927 0.67728
+ 7 1.29403 2.14553 0.76097 1.95462 7 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.19810 4.90068 1.75868 1.46634 0.26236 2.39806 0.09529
+ 8 1.65780 1.36628 1.72294 0.97857 8 u - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07818 4.72056 2.71363 1.46634 0.26236 0.21143 1.65772
+ 9 1.37832 2.62667 0.59593 2.08238 9 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.33504 4.87995 1.28341 1.46634 0.26236 0.65823 0.72932
+ 10 0.43682 2.52686 2.50289 1.64944 10 A - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.12050 2.84958 2.88857 0.81257 0.58648 0.25577 1.48864
+ 11 1.93428 1.76877 2.24861 0.54579 13 U - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01551 4.86725 4.86725 1.46634 0.26236 0.13891 2.04255
+ 12 2.36263 0.71721 1.35196 1.83895 14 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04027 3.42809 4.95852 0.84662 0.56013 1.09861 0.40547
+ 13 1.96093 1.19803 1.08625 1.51410 17 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 14 1.80961 1.53755 1.29717 1.05534 18 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05728 3.02311 4.95852 0.26729 1.45008 1.09861 0.40547
+ 15 1.84945 1.15131 1.13822 1.57957 20 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03479 4.95852 3.60568 1.46634 0.26236 1.09861 0.40547
+ 16 1.43489 1.44824 1.51789 1.17863 21 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06644 2.86266 4.93817 0.23448 1.56534 0.41674 1.07643
+ 17 3.06518 0.48131 1.35733 2.55062 23 C - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04499 3.29755 4.95852 0.34441 1.23320 1.09861 0.40547
+ 18 3.11788 1.40500 3.36481 0.39184 25 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 19 4.53185 5.62593 0.02105 5.04043 26 G - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 20 4.53185 5.62593 0.02105 5.04043 27 G - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 21 4.62647 4.34036 5.19036 0.02880 28 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03480 3.60550 4.95852 0.45522 1.00597 1.09861 0.40547
+ 22 2.76297 1.49154 0.46121 2.50897 30 G - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 23 1.46035 1.74355 1.11776 1.32451 31 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 24 1.92244 1.29702 0.95197 1.63771 32 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 25 1.78929 1.36310 0.93448 1.69139 33 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 26 1.90518 1.22190 1.00075 1.66637 34 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 27 2.17310 1.58979 0.63578 1.87938 35 G - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 28 1.98373 1.20466 1.39327 1.15712 36 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 29 1.71041 1.11449 1.20802 1.64851 37 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 30 2.97153 0.41736 2.91281 1.44534 38 C - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 31 1.52831 3.27591 0.38813 2.70321 39 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 32 3.49020 4.98745 0.04538 4.95437 40 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 33 1.06059 2.97972 1.07413 1.34191 41 a - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 34 4.48258 0.06786 4.89852 3.06088 42 C - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 35 4.62647 4.34036 5.19036 0.02880 43 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 36 4.62647 4.34036 5.19036 0.02880 44 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 37 4.93831 0.02596 5.29277 4.31039 45 C - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 38 0.01917 5.28542 4.88605 5.05630 46 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 39 0.08624 4.39055 2.87641 4.27629 47 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 40 0.05543 3.68593 4.25790 4.21994 48 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 41 1.38808 1.14034 2.79831 0.99473 49 u - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 42 4.99212 0.05445 4.87056 3.25631 50 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 43 2.86376 0.43242 3.08164 1.39382 51 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 44 1.53070 3.04771 0.39268 2.79851 52 G - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03479 3.60568 4.95852 0.45529 1.00584 1.09861 0.40547
+ 45 1.64377 2.02091 1.06929 1.10574 54 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15600 1.98476 4.95852 0.46497 0.98928 1.09861 0.40547
+ 46 1.33379 1.84180 1.45579 1.06486 57 u - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04814 3.21941 4.95852 0.81737 0.58266 1.09861 0.40547
+ 47 2.16152 3.38802 0.35361 1.90432 60 G - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07876 4.95852 2.67782 1.46634 0.26236 1.09861 0.40547
+ 48 1.66740 1.24638 1.18696 1.52063 61 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01508 4.89485 4.89485 1.46634 0.26236 0.58932 0.80902
+ 49 1.74187 1.87688 0.78198 1.54066 62 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04575 4.93545 3.28254 1.46634 0.26236 0.38588 1.13898
+ 50 1.77534 2.21921 0.43964 2.55604 63 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01458 4.92842 4.92842 1.46634 0.26236 1.97715 0.14904
+ 51 2.06204 1.72061 0.72727 1.55770 64 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04111 3.71401 4.14143 0.51509 0.90993 1.97715 0.14904
+ 52 2.01716 0.95335 1.22398 1.67417 66 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01471 4.91972 4.91972 1.46634 0.26236 0.27123 1.43733
+ 53 1.90643 1.47049 1.60453 0.86609 67 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 54 1.20418 1.86144 1.04228 1.65046 68 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 55 1.86138 1.70656 0.70926 1.76582 69 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 56 1.47976 0.91726 1.83821 1.54367 70 c - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.32769 4.95852 1.30051 1.46634 0.26236 1.09861 0.40547
+ 57 0.97318 2.06516 1.55730 1.25661 71 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.17155 4.65013 1.90998 1.46634 0.26236 3.70829 0.02482
+ 58 1.06331 2.38788 0.93712 1.76545 72 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.87578 0.55798 4.50103 1.07474 0.41762 1.53834 0.24174
+ 59 1.38578 0.97732 1.80136 1.56793 78 c - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02000 4.61491 4.61491 1.46634 0.26236 1.67341 0.20777
+ 60 1.57377 1.68541 0.97877 1.46276 79 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07096 4.68499 2.82574 1.46634 0.26236 0.05546 2.91976
+ 61 2.06062 1.64562 0.77989 1.50833 80 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01471 4.91972 4.91972 1.46634 0.26236 1.34349 0.30237
+ 62 1.70713 1.02312 1.54036 1.40716 81 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01458 4.92842 4.92842 1.46634 0.26236 1.97715 0.14904
+ 63 2.89857 0.56210 2.04339 1.40528 82 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01458 4.92842 4.92842 1.46634 0.26236 0.32424 1.28400
+ 64 1.63664 0.90314 1.74469 1.48999 83 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05438 4.95852 3.08113 1.46634 0.26236 1.09861 0.40547
+ 65 1.72370 1.36000 1.14821 1.39542 84 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01472 4.91886 4.91886 1.46634 0.26236 0.26695 1.45119
+ 66 1.35133 2.33276 0.83027 1.56953 85 g - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.91781 1.29094 1.12211 0.26730 1.45005 1.09861 0.40547
+ 67 3.42263 4.76246 0.05610 4.31361 88 G - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02083 4.57496 4.57496 1.46634 0.26236 0.04224 3.18550
+ 68 2.40165 1.46418 1.09113 1.07198 89 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 69 1.46579 2.34101 0.72522 1.66783 90 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 70 2.53454 3.29649 0.16181 3.40871 91 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 71 3.94603 5.00978 0.03331 4.99753 92 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 72 4.62647 4.34036 5.19036 0.02880 93 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 73 4.62647 4.34036 5.19036 0.02880 94 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 74 4.57048 0.05600 4.95731 3.29483 95 C - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 75 1.39428 4.02231 0.34268 3.72093 96 G - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 76 0.03754 4.71976 4.55271 4.05206 97 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 77 2.76170 1.38220 3.65009 0.41582 98 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 78 4.62647 4.34036 5.19036 0.02880 99 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 79 4.99796 0.04217 4.88940 3.61140 100 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 80 3.56964 0.18145 3.17643 2.34297 101 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 81 1.78072 0.76538 2.20592 1.36189 102 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 82 1.19739 1.28841 1.31644 1.86936 103 a - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10289 2.84385 3.22957 0.62979 0.76079 1.09861 0.40547
+ 83 2.74933 0.64577 2.53047 1.10217 107 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11206 4.92543 2.31516 1.46634 0.26236 0.50228 0.92925
+ 84 1.45207 1.72283 1.27059 1.18192 108 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01565 4.85800 4.85800 1.46634 0.26236 0.92103 0.50768
+ 85 2.27145 0.78905 2.07976 1.14697 109 c - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02960 4.90068 3.82920 1.46634 0.26236 0.32022 1.29460
+ 86 1.58507 1.54867 1.32564 1.14917 110 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02055 4.93770 4.32961 1.46634 0.26236 0.41102 1.08760
+ 87 2.77949 0.51912 2.06907 1.52978 111 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02174 4.95263 4.23795 1.46634 0.26236 0.73658 0.65152
+ 88 2.70354 1.36407 1.56126 0.76027 112 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01425 4.95116 4.95116 1.46634 0.26236 1.39712 0.28410
+ 89 2.36677 1.28174 1.23556 1.08473 113 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02107 4.95116 4.28509 1.46634 0.26236 1.39712 0.28410
+ 90 2.57152 0.65054 1.45004 1.78822 114 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.13853 4.94445 2.10175 1.46634 0.26236 0.51215 0.91431
+ 91 4.88296 0.06879 4.12716 3.15179 115 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.27766 1.41698 * 1.16143 0.37548 0.00000 *
+//
diff --git a/testsuite/5.claninfo b/testsuite/5.claninfo
new file mode 100644
index 0000000..50816e4
--- /dev/null
+++ b/testsuite/5.claninfo
@@ -0,0 +1 @@
+CL00001 tRNA tRNA-Sec
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
index 7e55f1a..99a0b5f 100644
--- a/testsuite/Makefile.in
+++ b/testsuite/Makefile.in
@@ -124,8 +124,8 @@ distclean: clean
################################################################
# Infernal - inference of RNA secondary structure alignments
-# Version 1.1.1; July 2014
-# Copyright (C) 2014 Howard Hughes Medical Institute.
+# Version 1.1.2; July 2016
+# Copyright (C) 2016 Howard Hughes Medical Institute.
# Other copyrights also apply. See the COPYRIGHT file for a full list.
#
# Infernal is distributed under the terms of the GNU General Public License
diff --git a/testsuite/Rfam.12.1.clanin b/testsuite/Rfam.12.1.clanin
new file mode 100644
index 0000000..fbdf377
--- /dev/null
+++ b/testsuite/Rfam.12.1.clanin
@@ -0,0 +1,104 @@
+CL00001 tRNA cyano_tmRNA tRNA-Sec mt-tmRNA
+CL00003 Metazoa_SRP Bacteria_small_SRP Fungi_SRP Dictyostelium_SRP Bacteria_large_SRP Plant_SRP Protozoa_SRP Archaea_SRP
+CL00004 Telomerase-cil
+CL00008 U54 snoU54
+CL00010 Hammerhead_3 Hammerhead_1 Hammerhead_HH9 Hammerhead_II Hammerhead_HH10
+CL00011 GlmZ_SraJ GlmY_tke1
+CL00012 SAM SAM-IV
+CL00013 7SK Arthropod_7SK
+CL00014 CRISPR-DR2 CRISPR-DR4 CRISPR-DR14 CRISPR-DR17 CRISPR-DR25 CRISPR-DR43 CRISPR-DR66
+CL00015 CRISPR-DR5 CRISPR-DR7 CRISPR-DR63 CRISPR-DR64
+CL00016 FinP traJ_5
+CL00017 IRES_HCV IRES_Pesti
+CL00018 SCARNA24 SCARNA3
+CL00019 SCARNA4 SCARNA15
+CL00021 SNORA16 SNORA2 snopsi28S-3327 snR189 snR46 S_pombe_snR46
+CL00022 SNORA3 snR11
+CL00023 SNORA4 snR83
+CL00024 SNORA5 snR85
+CL00025 SNORA7 snR81
+CL00026 SNORA8 snR31
+CL00027 SNORA9 snR33 snR43 S_pombe_snR33
+CL00028 SNORA13 snR35 S_pombe_snR35
+CL00029 SNORA43 SNORA17
+CL00030 SNORA20 SNORA29
+CL00031 SNORA21 snR10 S_pombe_snR10
+CL00032 SNORA27 SNORA26 snR42 S_pombe_snR42
+CL00033 SNORA28 snopsi18S-841 snR80
+CL00034 SNORA50 SNORA54 SNORA35 SNORA76
+CL00035 SNORA36 snR36 snR44 S_pombe_snR36
+CL00036 SNORA44 SNORA58 snR161 snR9
+CL00037 SNORA48 snR86
+CL00038 SNORA66 snoR98 SNORA52 SNORA18 snoR80 snR49 snR5 S_pombe_snR5
+CL00039 SNORA56 snR8
+CL00040 SNORA62 snR3 snR82 S_pombe_snR3
+CL00041 SNORA64 snR37
+CL00042 SNORA65 snR34 snoR2
+CL00043 SNORA74 snR191
+CL00044 SNORD12 snR190
+CL00045 SNORD15 snR75 snR13 snoZ5
+CL00046 SNORD16 snR87
+CL00047 SNORD18 snoU18
+CL00048 SNORD19 SNORD19B
+CL00049 SNORD25 snR56
+CL00050 SNORD26 SNORD81
+CL00051 SNORD36 SNORD29 snoZ223 SNORD38 snosnR69 snosnR61 snosnR71 SNORD78 snoR69Y snR47 snoU36a
+CL00052 SNORD30 snoU30
+CL00053 SNORD31 snoZ17 snR67 snoR35
+CL00054 SNORD33 snoZ196 SNORD51 snosnR55 snoMe18S-Um1356 snoMe28S-Am982 snR39 snR40
+CL00055 SNORD34 snR62
+CL00056 SNORD35 snoZ161_228 snR73
+CL00057 SNORD39 snoZ7 snoZ101 SNORD65 snoR77Y snR77
+CL00058 SNORD57 SNORD41 snR51
+CL00059 SNORD43 snR70
+CL00060 SNORD44 snoZ102_R77
+CL00061 SNORD46 snR63
+CL00062 SNORD49 snoZ112 snoU49
+CL00063 SNORD52 SNORD53_SNORD92 snoZ157 snR78
+CL00064 SNORD58 SNORD99
+CL00065 snoZ159 SNORD59 snosnR54
+CL00066 SNORD60 snoR1 snosnR48 snoMe28S-G3255 sn2903
+CL00067 SNORD61 snoU61 SNORD125
+CL00068 SNORD62 snoR41 snR41
+CL00069 SNORD79 SNORD113 SNORD74 snoR44_J54 snosnR64 snoMe28S-Cm2645 SNORD64 SNORD112 SNORD109A
+CL00070 snosnR60_Z15 SNORD77 Afu_263
+CL00071 SNORD88 snR76 snoR118
+CL00072 SNORD96 SNORD2
+CL00073 snoR30 SNORD100
+CL00074 SNORD101 snoR60
+CL00075 SNORD105 snoU105B
+CL00076 SNORD110 snoR14
+CL00077 SNORND104 snR58
+CL00078 SNORA73 snR30
+CL00079 snR68 snoR27
+CL00080 snoR53 snoR53Y
+CL00081 snoZ279_R105_R108 snoU13
+CL00082 snoU89 snoU85
+CL00083 mir-6 mir-11
+CL00084 mir-3 mir-318
+CL00085 mir-16 mir-15
+CL00086 mir-28 mir-708
+CL00087 mir-34 mir-449
+CL00088 mir-36 mir-42 mir-35
+CL00089 mir-190 mir-50
+CL00090 mir-74 mir-73
+CL00091 bantam mir-81
+CL00092 mir-137 mir-234
+CL00093 mir-183 mir-182 mir-263 mir-228
+CL00094 mir-216 mir-283
+CL00095 mir-279 mir-996
+CL00096 mir-515 mir-290 mir-302 miR-430
+CL00097 mir-BART1 mir-BART3
+CL00098 MIR169_2 MIR169_5
+CL00099 MIR171_1 MIR171_2
+CL00100 U3 Fungi_U3 Plant_U3 ACEA_U3
+CL00101 Cobalamin
+CL00102 group-II-D1D4-1 group-II-D1D4-2 group-II-D1D4-3 group-II-D1D4-4 group-II-D1D4-5 group-II-D1D4-6 group-II-D1D4-7
+CL00103 SNORD11 SNORD11B
+CL00104 HBV_epsilon AHBV_epsilon
+CL00105 SraC_RyeA RyeB
+CL00106 CsrB CsrC PrrB_RsmZ RsmY TwoAYGGAY rsmX
+CL00108 suhB
+CL00110 mir-19 mir-363
+CL00111 SSU_rRNA_bacteria SSU_rRNA_archaea SSU_rRNA_eukarya SSU_rRNA_microsporidia
+CL00112 LSU_rRNA_archaea LSU_rRNA_bacteria LSU_rRNA_eukarya
diff --git a/testsuite/bug-i1.pl b/testsuite/bug-i1.pl
index f4b0045..9101002 100755
--- a/testsuite/bug-i1.pl
+++ b/testsuite/bug-i1.pl
@@ -2,7 +2,7 @@
# bug i1 - bad SS_cons line in vault full.
# SRE, Thu Jan 2 04:49:12 2003
-# CVS $Id: bug-i1.pl 4074 2012-06-14 14:05:53Z nawrockie $
+# CVS $Id$
#
# A model built from vault seed, then aligned to
# one or more seqs in vault.full, produces an alignment
diff --git a/testsuite/bug-i38.pl b/testsuite/bug-i38.pl
index 13f67d7..8520a27 100755
--- a/testsuite/bug-i38.pl
+++ b/testsuite/bug-i38.pl
@@ -52,7 +52,7 @@ if ($ok) {
}
foreach $tmpfile ("i38.1", "i38.2", "i38.3", "i38.cm") {
-# unlink $tmpfile if -e $tmpfile;
+ unlink $tmpfile if -e $tmpfile;
}
if ($ok) { print "ok\n"; exit 0; }
else { print "FAILED\n"; exit 1; }
diff --git a/testsuite/bug-i44.pl b/testsuite/bug-i44.pl
new file mode 100755
index 0000000..eb75c47
--- /dev/null
+++ b/testsuite/bug-i44.pl
@@ -0,0 +1,82 @@
+#! /usr/bin/perl
+
+# bug i44 - cmalign --mapstr can display half basepairs
+#
+# EPN, Wed Oct 28 12:59:03 2015
+#
+
+$usage = "perl bug-i44.pl <cmbuild> <cmalign>\n";
+if ($#ARGV != 1) { die "Wrong argument number.\n$usage"; }
+
+$cmbuild = shift;
+$cmalign = shift;
+$ok = 1;
+
+# Make our test alignment, i44.1
+#
+open (OUT, ">i44.1") || die;
+print OUT <<END;
+# STOCKHOLM 1.0
+
+BX640422.1/15958-16066 GCACcUUCCCGG
+BX640437.1/48199-48307 G.AC.UUCCCGG
+CP000089.1/376642-376729 G.AC.UUCCCGG
+#=GC SS_cons <<.AA..>>.aa
+#=GC RF GCAC.UUCCCGG
+//
+END
+close OUT;
+# Make our test sequence to align, i44.2
+#
+open (OUT, ">i44.2") || die;
+print OUT <<END;
+>consensus
+GACUUCCCGG
+END
+close OUT;
+
+# build the model
+if ($ok) {
+ $output = `$cmbuild -F i44.cm i44.1`;
+ if ($? != 0) { $ok = 0; }
+ # make sure output includes a 'CPU' string indicating success
+ if($output !~ /\n\# CPU/) {
+ $ok = 0;
+ }
+}
+
+# align the sequence and use --mapali and --mapstr
+if ($ok) {
+ $output = `$cmalign --mapali i44.1 --mapstr -o i44.3 i44.cm i44.2`;
+ if ($? != 0) { $ok = 0; }
+ # make sure output includes a 'CPU' string indicating success
+ if($output !~ /\n\# CPU/) {
+ $ok = 0;
+ }
+}
+
+# make sure the output structure is correct
+if ($ok) {
+ # make sure there's a hit in the tab file (if the bug exists, there won't be)
+ if(open(IN, "i44.3")) {
+ $ok = 0;
+ while($line = <IN>) {
+ chomp $line;
+ if($line =~ s/^\#=GC SS_cons\s+//) {
+ chomp $line;
+ if($line eq "<..A....>..a") {
+ $ok = 1;
+ }
+ }
+ }
+ close(IN);
+ }
+}
+
+foreach $tmpfile ("i44.1", "i44.2", "i44.3", "i44.cm") {
+ 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 abc2051..af46b75 100644
--- a/testsuite/dev_testsuite.sqc
+++ b/testsuite/dev_testsuite.sqc
@@ -1,4 +1,4 @@
-# Infernal's cmalign crash exercises, in sqc command format.
+# Infernal's 'developer testsuite' crash exercises, in sqc command format.
# EPN, Thu Jan 3 05:20:12 2008
# EPN, Mon Mar 5 15:24:44 2012 [Updated for 1.1 release]
#
@@ -59,6 +59,7 @@
1 exercise itest/sensitivity !testsuite/itest6-sensitivity.pl! @@ !! %OUTFILES%
1 exercise itest/trunc !testsuite/itest7-trunc.pl! @@ !! %OUTFILES%
1 exercise itest/scan-glist !testsuite/itest8-glist.pl! @@ !! %OUTFILES%
+1 exercise itest/scan-overlaps !testsuite/itest9-overlaps.pl! @@ !! %OUTFILES%
1 exercise itest/brute @src/itest_brute@
################################################################
@@ -85,6 +86,7 @@
1 exercise bug/i38-mapali-noss !testsuite/bug-i38.pl! @src/cmbuild@ @src/cmalign@
1 exercise bug/i39-build-O-0bp !testsuite/bug-i39.pl! @src/cmbuild@
1 exercise bug/i43-oa-loc-beg !testsuite/bug-i43.pl! @src/cmsearch@ !testsuite/bug-i43.cm! !testsuite/bug-i43.fa!
+1 exercise bug/i44-mapstr !testsuite/bug-i44.pl! @src/cmbuild@ @src/cmalign@
################################################################
# Option tests
@@ -106,6 +108,7 @@
1 prep copy/sC cp !testsuite/Plant_SRP.c.cm! %SRP.C.CM%
1 prep copy/zbpC cp !testsuite/snR75.c.cm! %ZBP.C.CM%
1 prep copy/4C cp !testsuite/4.c.cm! %4.C.CM%
+1 prep copy/5C cp !testsuite/5.c.cm! %5.C.CM%
1 exercise search/help/1 @src/cmsearch@ -h
1 exercise search/help/2 @src/cmsearch@ --devhelp
@@ -135,6 +138,7 @@
1 exercise press/sC @src/cmpress@ %SRP.C.CM%
1 exercise press/zC @src/cmpress@ %ZBP.C.CM%
1 exercise press/4C @src/cmpress@ %4.C.CM%
+1 exercise press/5C @src/cmpress@ %5.C.CM%
# cmscan exercises (cmscan requires a press'd CM file with E-values)
1 exercise scan/help/1 @src/cmscan@ -h
@@ -149,6 +153,8 @@
1 prep cleanup/zC rm -f %ZBP.C.CM%.*
1 exercise scan/4C @src/cmscan@ -Z 1000 %4.C.CM% !testsuite/emitted-tRNA.fa!
1 prep cleanup/4C rm -f %4.C.CM%.*
+1 exercise scan/5C @src/cmscan@ --fmt 2 --tblout %5.C.TBLOUT% --oskip --oclan --clanin !testsuite/5.claninfo! -Z 1000 %5.C.CM% !testsuite/emitted-tRNA.fa!
+1 prep cleanup/5C rm -f %5.C.CM%.*
# cmemit exercises
1 exercise emit/help/1 @src/cmemit@ -h
@@ -1055,9 +1061,11 @@
1 prep scan:copy/tC cp !testsuite/tRNA.c.cm! %T.CM%
1 prep scan:copy/vC cp !testsuite/Vault.c.cm! %V.CM%
1 prep scan:copy/4C cp !testsuite/4.c.cm! %4.CM%
+1 prep scan:copy/5C cp !testsuite/5.c.cm! %5.CM%
1 exercise scan:press/tC @src/cmpress@ %T.CM%
1 exercise scan:press/vC @src/cmpress@ %V.CM%
1 exercise scan:press/4C @src/cmpress@ %4.CM%
+1 exercise scan:press/5C @src/cmpress@ %5.CM%
# copy fasta files, only so the names are more convenient in rest of this file
1 prep scan:copy/t/fa1k cp !testsuite/1k-tRNA.fa! %T1K%
@@ -1071,6 +1079,7 @@
1 prep scan:copy/4/fa10k cp !testsuite/10k-4.fa! %410K%
1 prep scan:copy/4/fa100k cp !testsuite/100k-4.fa! %4100K%
1 prep scan:copy/4/faemit cp !testsuite/emitted-4.fa! %4EMIT%
+1 prep scan:copy/5/faemit cp !testsuite/emitted-5.fa! %5EMIT%
1 prep scan:copy/rand/fa1k cp !testsuite/1k.fa! %R1K%
1 exercise scan:t/10k @src/cmscan@ %T.CM% %T10K%
@@ -1079,9 +1088,21 @@
1 exercise scan:t/emit @src/cmscan@ %T.CM% %TEMIT%
1 exercise scan:v/emit @src/cmscan@ %V.CM% %VEMIT%
1 exercise scan:4/emit @src/cmscan@ %4.CM% %4EMIT%
+1 exercise scan:5/emit @src/cmscan@ %5.CM% %5EMIT%
1 exercise scan:4/emit/glist @src/cmscan@ --glist !testsuite/2name.list! %4.CM% %4EMIT%
+# new-as-of-1.2 exercises with new cmscan options --fmt, --clanin, --oclan, --oskip
+1 exercise scan:5/emit/fmt1 @src/cmscan@ --fmt 1 --tblout %TMPOUT% %5.CM% %5EMIT%
+1 exercise scan:5/emit/fmt2 @src/cmscan@ --fmt 2 --tblout %TMPOUT% %5.CM% %5EMIT%
+1 exercise scan:5/emit/clan @src/cmscan@ --clanin !testsuite/5.claninfo! --fmt 2 --tblout %TMPOUT% %5.CM% %5EMIT%
+1 exercise scan:5/emit/oclan @src/cmscan@ --oclan --clanin !testsuite/5.claninfo! --fmt 2 --tblout %TMPOUT% %5.CM% %5EMIT%
+1 exercise scan:5/emit/oskip1 @src/cmscan@ --oskip --fmt 2 --tblout %TMPOUT% %5.CM% %5EMIT%
+1 exercise scan:5/emit/oskip2 @src/cmscan@ --oskip --oclan --clanin !testsuite/5.claninfo! --fmt 2 --tblout %TMPOUT% %5.CM% %5EMIT%
+1 fail scan:5/emit/nofmt1 @src/cmscan@ --clanin !testsuite/5.claninfo! --tblout %TMPOUT% %5.CM% %5EMIT%
+1 fail scan:5/emit/nofmt2 @src/cmscan@ --oskip --tblout %TMPOUT% %5.CM% %5EMIT%
+1 fail scan:5/emit/noclan @src/cmscan@ --oclan --fmt 2 --tblout %TMPOUT% %5.CM% %5EMIT%
+
1 fail scan:t/cm/stdin cat %T.CM% | @src/cmscan@ - %TEMIT%
1 fail scan:4/cm/stdin cat %4.CM% | @src/cmscan@ - %4EMIT%
1 exercise scan:t/sq/stdin cat %TEMIT% | @src/cmscan@ %T.CM% -
diff --git a/testsuite/emitted-5.fa b/testsuite/emitted-5.fa
new file mode 100644
index 0000000..b828559
--- /dev/null
+++ b/testsuite/emitted-5.fa
@@ -0,0 +1,19 @@
+>tRNA-cmconsensus
+GgggaugUAGCucAgUGGUAgaGCaucgGaCUuuuAAuCcgaaggcgcgGGUUCgAaUCC
+cgccaucccCA
+>Vault-cmconsensus
+GgGccGGCUUUAGCucAGcGGUUACuUCgacuauuauaauuuuauuuuuuuauauuuuuc
+uuuuggGGUucGAaaCCCgCggGCGCUgUCCggCccUUUU
+>snR75-hmmconsensus
+uuauGAUGAguuuuuuUAGAUGACGAGUCugAuucGaGuUuuCcauGauGAcAaaacuuU
+UUUuaUUACCAUUCAUGCaUUUCUGAaa
+>Plant_SRP-cmconsensus
+GcCgagcucacUAACgugagcuuGUaACCCaAGuGGGGgCAucaagguGguggaccguug
+ggccgcuccacccggccGGgcccgcugucugccauuuuccgGcccGcCCguUCCAcGccg
+ggAGcUgggccgcguggcccgggCGAAGGcccgggccacgcggccccuAaagcGGcgggc
+AccgCGuGAGGCUGGuUUCACAGAGCAgCGaguaccgCCggCUcccggCgGUGGAaGGAU
+aaCgggCcggugcagcgcgggcCCAcuaaggccgggugggcggccccaaucggAccacCa
+ccuug
+>tRNA-Sec-cmconsensus
+GggggggcgaucggcccUGGUgggccguccGGgCUUCAAAcCCggaGggggcuagcaacg
+gccccgGggGGUUCGAUUCCcccgccccccC
diff --git a/testsuite/i1.pm b/testsuite/i1.pm
index 9bdba62..c12121c 100644
--- a/testsuite/i1.pm
+++ b/testsuite/i1.pm
@@ -2,7 +2,7 @@
package i1;
-sub ParseTbl {
+sub ParseTblFormat1 {
my ($tblfile) = @_;
my (@fields);
@@ -23,6 +23,7 @@ sub ParseTbl {
@hitbias = ();
@hitsc = ();
@hitE = ();
+ @inc = ();
@tdesc = ();
if (! open(TBLFILE, $tblfile)) { print "FAIL: couldn't open table file"; exit 1 ; }
@@ -30,7 +31,7 @@ sub ParseTbl {
{
if (/^\#/) { next; }
chop;
- @fields = split(' ', $_, 17);
+ @fields = split(' ', $_, 18);
$tname[$ntbl] = $fields[0];
$tacc[$ntbl] = $fields[1];
@@ -48,7 +49,81 @@ sub ParseTbl {
$hitbias[$ntbl] = $fields[13];
$hitsc[$ntbl] = $fields[14];
$hitE[$ntbl] = $fields[15];
- $tdesc[$ntbl] = $fields[16];
+ $inc[$ntbl] = $fields[16];
+ $tdesc[$ntbl] = $fields[17];
+ $ntbl++;
+ }
+ close TBLFILE;
+ 1;
+}
+
+sub ParseTblFormat2 {
+ my ($tblfile) = @_;
+ my (@fields);
+
+ $ntbl = 0;
+ @tidx = ();
+ @tname = ();
+ @tacc = ();
+ @qname = ();
+ @qacc = ();
+ @clan = ();
+ @model = ();
+ @mfrom = ();
+ @mto = ();
+ @sfrom = ();
+ @sto = ();
+ @strand = ();
+ @trunc = ();
+ @pass = ();
+ @hitgc = ();
+ @hitbias = ();
+ @hitsc = ();
+ @hitE = ();
+ @inc = ();
+ @olp = ();
+ @anyidx = ();
+ @anyfrct1 = ();
+ @anyfrct2 = ();
+ @winidx = ();
+ @winfrct1 = ();
+ @winfrct2 = ();
+ @tdesc = ();
+
+ if (! open(TBLFILE, $tblfile)) { print "FAIL: couldn't open table file"; exit 1 ; }
+ while (<TBLFILE>)
+ {
+ if (/^\#/) { next; }
+ chop;
+ @fields = split(' ', $_, 27);
+
+ $tidx[$ntbl] = $fields[0];
+ $tname[$ntbl] = $fields[1];
+ $tacc[$ntbl] = $fields[2];
+ $qname[$ntbl] = $fields[3];
+ $qacc[$ntbl] = $fields[4];
+ $clan[$ntbl] = $fields[5];
+ $model[$ntbl] = $fields[6];
+ $mfrom[$ntbl] = $fields[7];
+ $mto[$ntbl] = $fields[8];
+ $sfrom[$ntbl] = $fields[9];
+ $sto[$ntbl] = $fields[10];
+ $strand[$ntbl] = $fields[11];
+ $trunc[$ntbl] = $fields[12];
+ $pass[$ntbl] = $fields[13];
+ $hitgc[$ntbl] = $fields[14];
+ $hitbias[$ntbl] = $fields[15];
+ $hitsc[$ntbl] = $fields[16];
+ $hitE[$ntbl] = $fields[17];
+ $inc[$ntbl] = $fields[18];
+ $olp[$ntbl] = $fields[19];
+ $anyidx[$ntbl] = $fields[20];
+ $anyfrct1[$ntbl] = $fields[21];
+ $anyfrct2[$ntbl] = $fields[22];
+ $winidx[$ntbl] = $fields[23];
+ $winfrct1[$ntbl] = $fields[24];
+ $winfrct2[$ntbl] = $fields[25];
+ $tdesc[$ntbl] = $fields[26];
$ntbl++;
}
close TBLFILE;
diff --git a/testsuite/itest2-duplicate-names.pl b/testsuite/itest2-duplicate-names.pl
index 147e6cb..7bf453f 100755
--- a/testsuite/itest2-duplicate-names.pl
+++ b/testsuite/itest2-duplicate-names.pl
@@ -77,14 +77,14 @@ if ($? != 0) { die "FAIL: cmpress failed\n"; }
$output = `$builddir/src/cmsearch --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 4) { die "FAIL: on expected number of hits, cmsearch\n"; }
# cmscan should show four results
$output = `$builddir/src/cmscan --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 4) { die "FAIL: on expected number of hits, cmscan\n"; }
print "ok\n";
diff --git a/testsuite/itest5-pipeline.pl b/testsuite/itest5-pipeline.pl
index 6f02581..d506a5c 100755
--- a/testsuite/itest5-pipeline.pl
+++ b/testsuite/itest5-pipeline.pl
@@ -63,7 +63,7 @@ do_cmd ( "$builddir/easel/miniapps/esl-shuffle --seed 5 --rna -G -N 1 -L 99900 |
$output = `$builddir/src/cmsearch -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, cmsearch (single model)\n"; }
if ($i1::sfrom[0] ne "199872") { die "FAIL: on seq from, hit 1, cmsearch (single model)\n"; }
if ($i1::sto[0] ne "199963") { die "FAIL: on seq to, hit 1, cmsearch (single model)\n"; }
@@ -76,7 +76,7 @@ if ($i1::hitsc[1] ne "39.4") { die "FAIL: on hit score, hit 1, cmsearch (singl
$output = `$builddir/src/cmsearch -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, cmsearch (multi model)\n"; }
if ($i1::sfrom[0] ne "199872") { die "FAIL: on seq from, hit 1, cmsearch (multi model)\n"; }
if ($i1::sto[0] ne "199963") { die "FAIL: on seq to, hit 1, cmsearch (multi model)\n"; }
@@ -103,7 +103,7 @@ if(-e "$tmppfx.cm2.ssi") { unlink "$tmppfx.cm2.ssi"; }
$output = `$builddir/src/cmscan -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, cmscan (single model)\n"; }
if ($i1::sfrom[0] ne "199872") { die "FAIL: on seq from, hit 1, cmscan (single model)\n"; }
if ($i1::sto[0] ne "199963") { die "FAIL: on seq to, hit 1, cmscan (single model)\n"; }
@@ -116,7 +116,7 @@ if ($i1::hitsc[1] ne "39.4") { die "FAIL: on hit score, hit 1, cmscan (single
$output = `$builddir/src/cmscan -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, cmscan (multi model)\n"; }
if ($i1::sfrom[0] ne "199872") { die "FAIL: on seq from, hit 1, cmscan (multi model)\n"; }
if ($i1::sto[0] ne "199963") { die "FAIL: on seq to, hit 1, cmscan (multi model)\n"; }
diff --git a/testsuite/itest6-sensitivity.pl b/testsuite/itest6-sensitivity.pl
index d4081ac..61eff33 100755
--- a/testsuite/itest6-sensitivity.pl
+++ b/testsuite/itest6-sensitivity.pl
@@ -108,7 +108,7 @@ if (! -r "$srcdir/testsuite/$model3.c.cm") { die "FAIL: can't read profile $mod
$output = `$builddir/src/cmsearch -E 1E-3 --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
# first hit should be the best (and only real) tRNAscan-SE hit, 4169..4230
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmsearch tRNA, no hits found\n"; }
if ($i1::sfrom[0] ne "4169") { die "FAIL: cmsearch tRNA hit 1, start position\n"; }
if ($i1::sto[0] ne "4230") { die "FAIL: cmsearch tRNA hit 1, stop position\n"; }
@@ -124,7 +124,7 @@ if(-e "$tmppfx.cm1.ssi") { unlink "$tmppfx.cm1.ssi"; }
$output = `$builddir/src/cmscan -E 1E-3 --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
# first hit should be the best (and only real) tRNAscan-SE hit, 4169..4230
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmscan tRNA, no hits found\n"; }
if ($i1::sfrom[0] ne "4169") { die "FAIL: cmscan tRNA hit 1, start position\n"; }
if ($i1::sto[0] ne "4230") { die "FAIL: cmscan tRNA hit 1, stop position\n"; }
@@ -146,7 +146,7 @@ if ($i1::sto[0] ne "4230") { die "FAIL: cmscan tRNA hit 1, stop position\n";
# larger subseq
$output = `$builddir/src/cmsearch -E 0.01 --nohmm --fbeta 1E-2 --beta 1E-4 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmsearch long SRP, no hits found\n"; }
if ($i1::sfrom[0] ne "15714") { die "FAIL: cmsearch long SRP hit 1, start position\n"; }
if ($i1::sto[0] ne "15739") { die "FAIL: cmsearch long SRP hit 1, stop position\n"; }
@@ -154,7 +154,7 @@ if ($i1::sto[0] ne "15739") { die "FAIL: cmsearch long SRP hit 1, stop positi
# shorter subseq
$output = `$builddir/src/cmsearch -E 0.01 --nohmm --fbeta 1E-2 --beta 1E-4 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmsearch short SRP, no hits found\n"; }
if ($i1::sfrom[0] ne "43") { die "FAIL: cmsearch short SRP hit 1, start position\n"; }
if ($i1::sto[0] ne "68") { die "FAIL: cmsearch short SRP hit 1, stop position\n"; }
@@ -172,7 +172,7 @@ if(-e "$tmppfx.cm2.ssi") { unlink "$tmppfx.cm2.ssi"; }
$output = `$builddir/src/cmscan -E 0.01 --nohmm --fbeta 1E-2 --beta 1E-4 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmscan short SRP, no hits found\n"; }
if ($i1::sfrom[0] ne "43") { die "FAIL: cmscan short SRP hit 1, start position\n"; }
if ($i1::sto[0] ne "68") { die "FAIL: cmscan short SRP hit 1, stop position\n"; }
@@ -192,7 +192,7 @@ if ($i1::sto[0] ne "68") { die "FAIL: cmscan short SRP hit 1, stop position\n
$output = `$builddir/src/cmsearch -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm3 $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmsearch long Rnase P, no hits found\n"; }
if ($i1::sfrom[0] ne "10920") { die "FAIL: cmsearch long Rnase P hit 1, start position\n"; }
if ($i1::sto[0] ne "10580") { die "FAIL: cmsearch long Rnase P hit 1, stop position\n"; }
@@ -201,7 +201,7 @@ if ($i1::sto[0] ne "10580") { die "FAIL: cmsearch long Rnase P hit 1, stop p
$output = `$builddir/src/cmsearch -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm3 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmsearch short Rnase P, no hits found\n"; }
if ($i1::sfrom[0] ne "43") { die "FAIL: cmsearch short Rnase P hit 1, start position\n"; }
if ($i1::sto[0] ne "383") { die "FAIL: cmsearch short Rnase P hit 1, stop position\n"; }
@@ -219,7 +219,7 @@ if(-e "$tmppfx.cm3.ssi") { unlink "$tmppfx.cm3.ssi"; }
$output = `$builddir/src/cmscan -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm3 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl < 1) { die "FAIL: cmscan short Rnase P, no hits found\n"; }
if ($i1::sfrom[0] ne "43") { die "FAIL: cmscan short Rnase P hit 1, start position\n"; }
if ($i1::sto[0] ne "383") { die "FAIL: cmscan short Rnase P hit 1, stop position\n"; }
diff --git a/testsuite/itest7-trunc.pl b/testsuite/itest7-trunc.pl
index 5fcdfb8..7eb8e6e 100755
--- a/testsuite/itest7-trunc.pl
+++ b/testsuite/itest7-trunc.pl
@@ -58,7 +58,7 @@ if (! -r "$srcdir/testsuite/$model2.c.cm") { die "FAIL: can't read profile $mod
$output = `$builddir/src/cmsearch -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa1 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: cmsearch Vault, not 2 hits found\n"; }
if ($i1::sfrom[0] ne "1") { die "FAIL: cmsearch Vault, on seq from, hit 1\n"; }
if ($i1::sto[0] ne "63") { die "FAIL: cmsearch Vault, on seq to, hit 1\n"; }
@@ -71,14 +71,14 @@ if ($i1::hitsc[1] ne "25.5") { die "FAIL: cmsearch Vault, on hit score, hit 2\n
$output = `$builddir/src/cmsearch --notrunc --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa1 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 0) { die "FAIL: cmsearch Vault, --notrunc, > 0 hits found\n"; }
# cmsearch --anytrunc, finds 3 hits E < 0.01
$output = `$builddir/src/cmsearch --anytrunc -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa1 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmsearch Vault, --anytrunc, not 3 hits found\n"; }
# cmscan
@@ -94,7 +94,7 @@ if(-e "$tmppfx.cm1.ssi") { unlink "$tmppfx.cm1.ssi"; }
$output = `$builddir/src/cmscan -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa1 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmscan Vault, not 3 hits found\n"; }
if ($i1::sfrom[0] ne "1") { die "FAIL: cmscan Vault, on seq from, hit 1\n"; }
if ($i1::sto[0] ne "63") { die "FAIL: cmscan Vault, on seq to, hit 1\n"; }
@@ -107,14 +107,14 @@ if ($i1::hitsc[1] ne "25.5") { die "FAIL: cmscan Vault, on hit score, hit 2\n";
$output = `$builddir/src/cmscan --notrunc --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa1 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 0) { die "FAIL: cmscan Vault, --notrunc, > 0 hits found\n"; }
# cmscan --anytrunc, finds 3 hits E < 0.01
$output = `$builddir/src/cmscan --anytrunc -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm1 $tmppfx.fa1 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmscan Vault, --anytrunc, not 3 hits found\n"; }
######################
@@ -124,7 +124,7 @@ if ($i1::ntbl != 3) { die "FAIL: cmscan Vault, --anytrunc, not 3 hits
$output = `$builddir/src/cmsearch -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmsearch Plant_SRP, not 3 hits found\n"; }
if ($i1::sfrom[0] ne "1") { die "FAIL: cmsearch Plant_SRP, on seq from, hit 1\n"; }
if ($i1::sto[0] ne "110") { die "FAIL: cmsearch Plant_SRP, on seq to, hit 1\n"; }
@@ -140,14 +140,14 @@ if ($i1::hitsc[2] ne "21.2") { die "FAIL: cmsearch Plant_SRP, on hit score, hit
$output = `$builddir/src/cmsearch --notrunc --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 0) { die "FAIL: cmsearch Plant_SRP, --notrunc, > 0 hits found\n"; }
# cmsearch --anytrunc, finds 3 hits E < 0.01
$output = `$builddir/src/cmsearch --anytrunc -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmsearch failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmsearch Plant_SRP, --anytrunc, not 3 hits found\n"; }
# cmscan
@@ -164,7 +164,7 @@ $output = `$builddir/src/cmscan -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx
if ($? != 0) { die "FAIL: cmscan failed\n"; }
# Careful: order is different from cmsearch, since pipeline outputs all hits per sequence at once
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmscan Plant_SRP, not 3 hits found\n"; }
if ($i1::sfrom[0] ne "1") { die "FAIL: cmscan Plant_SRP, on seq from, hit 1\n"; }
if ($i1::sto[0] ne "110") { die "FAIL: cmscan Plant_SRP, on seq to, hit 1\n"; }
@@ -180,14 +180,14 @@ if ($i1::hitsc[2] ne "35.1") { die "FAIL: cmscan Plant_SRP, on hit score, hit 3
$output = `$builddir/src/cmscan --notrunc --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 0) { die "FAIL: cmscan Plant_SRP, --notrunc, > 0 hits found\n"; }
# cmscan --anytrunc, finds 3 hits E < 0.01
$output = `$builddir/src/cmscan --anytrunc -E 0.01 --tblout $tmppfx.tbl $tmppfx.cm2 $tmppfx.fa2 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 3) { die "FAIL: cmscan Plant_SRP, --anytrunc, not 3 hits found\n"; }
print "ok.\n";
diff --git a/testsuite/itest8-glist.pl b/testsuite/itest8-glist.pl
index 7e47c26..dced494 100755
--- a/testsuite/itest8-glist.pl
+++ b/testsuite/itest8-glist.pl
@@ -76,7 +76,7 @@ if(-e "$tmppfx.cm.ssi") { unlink "$tmppfx.cm.ssi"; }
# trial one, no --glist, all hits should be local
$output = `$builddir/src/cmscan -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, trial 1\n"; }
if ($i1::hitE[0] !~ m/1.\de-38/) { die "FAIL: on cfg, hit 1, trial 1\n"; }
if ($i1::hitE[1] !~ m/3.\de-08/) { die "FAIL: on cfg, hit 2, trial 1\n"; }
@@ -84,7 +84,7 @@ if ($i1::hitE[1] !~ m/3.\de-08/) { die "FAIL: on cfg, hit 2, trial 1\n"; }
# trial two, tRNA in --glist, tRNA hit should be glocal, Plant_SRP hit should be local
$output = `$builddir/src/cmscan --glist $tmppfx.list1 -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, trial 2\n"; }
if ($i1::hitE[0] !~ m/1.\de-38/) { die "FAIL: on cfg, hit 1, trial 2\n"; }
if ($i1::hitE[1] !~ m/2.\de-06/) { die "FAIL: on cfg, hit 2, trail 2\n"; }
@@ -92,7 +92,7 @@ if ($i1::hitE[1] !~ m/2.\de-06/) { die "FAIL: on cfg, hit 2, trail 2\n"; }
# trial three, tRNA and Plant_SRP in --glist, both hits should be glocal
$output = `$builddir/src/cmscan --glist $tmppfx.list2 -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
if ($? != 0) { die "FAIL: cmscan failed\n"; }
-&i1::ParseTbl("$tmppfx.tbl");
+&i1::ParseTblFormat1("$tmppfx.tbl");
if ($i1::ntbl != 2) { die "FAIL: on expected number of hits, tRNA and Plant_SRP in glist\n"; }
if ($i1::hitE[0] !~ m/1.\de-20/) { die "FAIL: on cfg, hit 1, trial 3\n"; }
if ($i1::hitE[1] !~ m/2.\de-06/) { die "FAIL: on cfg, hit 2, trail 3\n"; }
diff --git a/testsuite/itest9-overlaps.pl b/testsuite/itest9-overlaps.pl
new file mode 100755
index 0000000..9b9e1e8
--- /dev/null
+++ b/testsuite/itest9-overlaps.pl
@@ -0,0 +1,174 @@
+#! /usr/bin/perl
+
+# Test of the cmscan overlap annotation and
+# options related to clans. Tests that
+# overlapping hits are properly annotated
+# and clan options work as they're supposed
+# to.
+#
+# Usage: ./itest9-overlaps.pl <builddir> <srcdir> <tmpfile prefix>
+# Example: ./itest9-overlaps.pl .. .. tmpfoo
+#
+# EPN, Tue Jun 21 10:17:32 2016
+# Similar to itest5-pipeline.pl and itest8-glist.pl
+
+BEGIN {
+ $builddir = shift;
+ $srcdir = shift;
+ $tmppfx = shift;
+}
+use lib "$srcdir/testsuite"; # The BEGIN is necessary to make this work: sets $srcdir at compile-time
+use i1;
+
+$verbose = 1;
+
+# The test makes use of the following files:
+#
+# tRNA.c.cm <cm> calibrated tRNA model
+# tRNA-Sec.c.cm <cm> calibrated tRNA-Sec model
+# Plant_SRP.c.cm <cm> calibrated Plant_SRP model
+
+# It creates the following files:
+# $tmppfx.cm <cm> 3 models Plant_SRP, tRNA, tRNA-Sec
+# $tmppfx.fa <seqdb> Roughly 300Kb, with a single tRNA, Plant_SRP, tRNA-Sec consensus sequences (from cmemit -c) in the middle)
+# $tmppfx.clanin1 <textfile> clan input file with "tRNA" and "tRNA-Sec" together in a clan
+# $tmppfx.clanin2 <textfile> clan input file with "tRNA" in its own clan
+# $tmppfx.clanin3 <textfile> clan input file with "tRNA" and "bogus" together in a clan (should cause failures)
+
+# All models assumed to be in testsuite subdirectory.
+$model1 = "tRNA";
+$model2 = "Plant_SRP";
+$model3 = "tRNA-Sec";
+
+ at i1progs = ( "cmemit", "cmpress", "cmscan");
+ at eslprogs = ("esl-shuffle");
+
+# Verify that we have all the executables and datafiles we need for the test.
+foreach $i1prog (@i1progs) { if (! -x "$builddir/src/$i1prog") { die "FAIL: didn't find $i1prog executable in $builddir/src\n"; } }
+foreach $eslprog (@eslprogs) { if (! -x "$builddir/easel/miniapps/$eslprog") { die "FAIL: didn't find $eslprog executable in $builddir/easel/miniapps\n"; } }
+
+if (! -r "$srcdir/testsuite/$model1.c.cm") { die "FAIL: can't read profile $model1.c.cm in $srcdir/testsuite\n"; }
+if (! -r "$srcdir/testsuite/$model2.c.cm") { die "FAIL: can't read profile $model2.c.cm in $srcdir/testsuite\n"; }
+if (! -r "$srcdir/testsuite/$model3.c.cm") { die "FAIL: can't read profile $model3.c.cm in $srcdir/testsuite\n"; }
+
+# Create the test CM file
+`cat $srcdir/testsuite/$model1.c.cm $srcdir/testsuite/$model2.c.cm $srcdir/testsuite/$model3.c.cm > $tmppfx.cm`; if ($?) { die "FAIL: cat\n"; }
+
+# Create a roughly 30Kb database against which to search
+$database = "$tmppfx.fa";
+do_cmd ( "$builddir/easel/miniapps/esl-shuffle --seed 1 --rna -G -N 1 -L 20000 > $tmppfx.fa" );
+do_cmd ( "$builddir/src/cmemit -c $tmppfx.cm | grep -v \"^\>\" >> $tmppfx.fa " );
+do_cmd ( "$builddir/easel/miniapps/esl-shuffle --seed 3 --rna -G -N 1 -L 10000 | grep -v \"^\>\" >> $tmppfx.fa" );
+
+# Create list files
+do_cmd ( "echo \"tRNA-clan tRNA tRNA-Sec\" > $tmppfx.clanin1" );
+do_cmd ( "echo \"tRNA-clan tRNA\" > $tmppfx.clanin2" );
+do_cmd ( "echo \"tRNA-clan tRNA bogus\" > $tmppfx.clanin3" );
+
+# press model, for cmscan
+if(-e "$tmppfx.cm.i1m") { unlink "$tmppfx.cm.i1m"; }
+if(-e "$tmppfx.cm.i1p") { unlink "$tmppfx.cm.i1p"; }
+if(-e "$tmppfx.cm.i1f") { unlink "$tmppfx.cm.i1f"; }
+if(-e "$tmppfx.cm.i1i") { unlink "$tmppfx.cm.i1i"; }
+if(-e "$tmppfx.cm.ssi") { unlink "$tmppfx.cm.ssi"; }
+
+`$builddir/src/cmpress $tmppfx.cm`; if ($?) { die "FAIL: cmpress\n"; }
+
+# cmscan
+# trial 1, --fmt 2 only option, should mark up all overlaps
+$output = `$builddir/src/cmscan --fmt 2 -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
+if ($? != 0) { die "FAIL: cmscan failed\n"; }
+&i1::ParseTblFormat2("$tmppfx.tbl");
+if ($i1::ntbl != 5) { die "FAIL: on expected number of hits, trial 1\n"; }
+if ($i1::hitE[0] !~ m/4.\de-98/) { die "FAIL: on cfg, hit 1, trial 1\n"; }
+if ($i1::hitE[3] !~ m/1.\de-07/) { die "FAIL: on cfg, hit 4, trial 1\n"; }
+if ($i1::olp[0] !~ m/^\*$/) { die "FAIL: on cfg, hit 1 olp, trial 1\n"; }
+if ($i1::olp[1] !~ m/^\^$/) { die "FAIL: on cfg, hit 2 olp, trial 1\n"; }
+if ($i1::olp[2] !~ m/^\^$/) { die "FAIL: on cfg, hit 3 olp, trial 1\n"; }
+if ($i1::olp[3] !~ m/^\=$/) { die "FAIL: on cfg, hit 4 olp, trial 1\n"; }
+if ($i1::olp[4] !~ m/^\=$/) { die "FAIL: on cfg, hit 5 olp, trial 1\n"; }
+if ($i1::clan[0] !~ m/^\-$/) { die "FAIL: on cfg, hit 1 clan name, trial 1\n"; }
+if ($i1::clan[1] !~ m/^\-$/) { die "FAIL: on cfg, hit 2 clan name, trial 1\n"; }
+if ($i1::clan[2] !~ m/^\-$/) { die "FAIL: on cfg, hit 3 clan name, trial 1\n"; }
+
+# trial 2, --fmt 2 with --clanin, but no --oskip or --oclan, so should be same result as trial 1
+$output = `$builddir/src/cmscan --fmt 2 --clanin $tmppfx.clanin1 -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
+if ($? != 0) { die "FAIL: cmscan failed\n"; }
+&i1::ParseTblFormat2("$tmppfx.tbl");
+if ($i1::ntbl != 5) { die "FAIL: on expected number of hits, trial 2\n"; }
+if ($i1::hitE[0] !~ m/4.\de-98/) { die "FAIL: on cfg, hit 1, trial 2\n"; }
+if ($i1::hitE[3] !~ m/1.\de-07/) { die "FAIL: on cfg, hit 4, trial 2\n"; }
+if ($i1::olp[0] !~ m/^\*$/) { die "FAIL: on cfg, hit 1 olp, trial 2\n"; }
+if ($i1::olp[1] !~ m/^\^$/) { die "FAIL: on cfg, hit 2 olp, trial 2\n"; }
+if ($i1::olp[2] !~ m/^\^$/) { die "FAIL: on cfg, hit 3 olp, trial 2\n"; }
+if ($i1::olp[3] !~ m/^\=$/) { die "FAIL: on cfg, hit 4 olp, trial 2\n"; }
+if ($i1::olp[4] !~ m/^\=$/) { die "FAIL: on cfg, hit 5 olp, trial 2\n"; }
+if ($i1::clan[0] !~ m/^\-$/) { die "FAIL: on cfg, hit 1 clan name, trial 2\n"; }
+if ($i1::clan[1] !~ m/^tRNA\-clan$/) { die "FAIL: on cfg, hit 2 clan name, trial 2\n"; }
+if ($i1::clan[2] !~ m/^tRNA\-clan$/) { die "FAIL: on cfg, hit 3 clan name, trial 2\n"; }
+
+# trial 3, --fmt 2 with --oskip, so only top scoring hits should print
+$output = `$builddir/src/cmscan --fmt 2 --oskip -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
+if ($? != 0) { die "FAIL: cmscan failed\n"; }
+&i1::ParseTblFormat2("$tmppfx.tbl");
+if ($i1::ntbl != 3) { die "FAIL: on expected number of hits, trial 2\n"; }
+if ($i1::hitE[0] !~ m/4.\de-98/) { die "FAIL: on cfg, hit 1, trial 2\n"; }
+if ($i1::olp[0] !~ m/^\*$/) { die "FAIL: on cfg, hit 1 olp, trial 3\n"; }
+if ($i1::olp[1] !~ m/^\^$/) { die "FAIL: on cfg, hit 2 olp, trial 3\n"; }
+if ($i1::olp[2] !~ m/^\^$/) { die "FAIL: on cfg, hit 3 olp, trial 3\n"; }
+if ($i1::clan[0] !~ m/^\-$/) { die "FAIL: on cfg, hit 1 clan name, trial 3\n"; }
+if ($i1::clan[1] !~ m/^\-$/) { die "FAIL: on cfg, hit 2 clan name, trial 3\n"; }
+if ($i1::clan[2] !~ m/^\-$/) { die "FAIL: on cfg, hit 3 clan name, trial 3\n"; }
+
+# trial 4, --fmt 2 with --clanin and --oclan using clan file with only tRNA, so no within clan overlaps
+$output = `$builddir/src/cmscan --fmt 2 --clanin $tmppfx.clanin2 --oclan -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
+if ($? != 0) { die "FAIL: cmscan failed\n"; }
+&i1::ParseTblFormat2("$tmppfx.tbl");
+if ($i1::ntbl != 5) { die "FAIL: on expected number of hits, trial 4\n"; }
+if ($i1::hitE[0] !~ m/4.\de-98/) { die "FAIL: on cfg, hit 1, trial 4\n"; }
+if ($i1::hitE[3] !~ m/1.\de-07/) { die "FAIL: on cfg, hit 4, trial 4\n"; }
+if ($i1::olp[0] !~ m/^\*$/) { die "FAIL: on cfg, hit 1 olp, trial 4\n"; }
+if ($i1::olp[1] !~ m/^\*$/) { die "FAIL: on cfg, hit 2 olp, trial 4\n"; }
+if ($i1::olp[2] !~ m/^\*$/) { die "FAIL: on cfg, hit 3 olp, trial 4\n"; }
+if ($i1::olp[3] !~ m/^\*$/) { die "FAIL: on cfg, hit 4 olp, trial 4\n"; }
+if ($i1::olp[4] !~ m/^\*$/) { die "FAIL: on cfg, hit 5 olp, trial 4\n"; }
+if ($i1::clan[0] !~ m/^\-$/) { die "FAIL: on cfg, hit 1 clan name, trial 4\n"; }
+if ($i1::clan[1] !~ m/^\-$/) { die "FAIL: on cfg, hit 2 clan name, trial 4\n"; }
+if ($i1::clan[2] !~ m/^tRNA\-clan$/) { die "FAIL: on cfg, hit 3 clan name, trial 4\n"; }
+
+# trial 5, --fmt 2 with --clanin, --oclan and --oskip using clan file with only tRNA, so no within clan overlaps, should
+# be same results as trial 4
+$output = `$builddir/src/cmscan --fmt 2 --clanin $tmppfx.clanin2 --oclan --oskip -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
+if ($? != 0) { die "FAIL: cmscan failed\n"; }
+&i1::ParseTblFormat2("$tmppfx.tbl");
+if ($i1::ntbl != 5) { die "FAIL: on expected number of hits, trial 4\n"; }
+if ($i1::hitE[0] !~ m/4.\de-98/) { die "FAIL: on cfg, hit 1, trial 5\n"; }
+if ($i1::hitE[3] !~ m/1.\de-07/) { die "FAIL: on cfg, hit 4, trial 5\n"; }
+if ($i1::olp[0] !~ m/^\*$/) { die "FAIL: on cfg, hit 1 olp, trial 5\n"; }
+if ($i1::olp[1] !~ m/^\*$/) { die "FAIL: on cfg, hit 2 olp, trial 5\n"; }
+if ($i1::olp[2] !~ m/^\*$/) { die "FAIL: on cfg, hit 3 olp, trial 5\n"; }
+if ($i1::olp[3] !~ m/^\*$/) { die "FAIL: on cfg, hit 4 olp, trial 5\n"; }
+if ($i1::olp[4] !~ m/^\*$/) { die "FAIL: on cfg, hit 5 olp, trial 5\n"; }
+if ($i1::clan[0] !~ m/^\-$/) { die "FAIL: on cfg, hit 1 clan name, trial 5\n"; }
+if ($i1::clan[1] !~ m/^\-$/) { die "FAIL: on cfg, hit 2 clan name, trial 5\n"; }
+if ($i1::clan[2] !~ m/^tRNA\-clan$/) { die "FAIL: on cfg, hit 3 clan name, trial 5\n"; }
+
+# trial 6, bogus name in clan input file, cmscan should fail
+$output = `$builddir/src/cmscan --fmt 2 --clanin $tmppfx.clanin3 -E 0.1 --tblout $tmppfx.tbl $tmppfx.cm $tmppfx.fa 2>&1`;
+if ($? == 0) { die "FAIL: cmscan did not fail when it should have\n"; }
+
+print "ok.\n";
+unlink <$tmppfx.cm*>;
+unlink "$tmppfx.tbl";
+unlink "$tmppfx.fa";
+unlink "$tmppfx.clanin1";
+unlink "$tmppfx.clanin2";
+unlink "$tmppfx.clanin3";
+
+exit 0;
+
+sub do_cmd {
+ $cmd = shift;
+ print "$cmd\n" if $verbose;
+ return `$cmd`;
+}
diff --git a/testsuite/tRNA-Sec.c.cm b/testsuite/tRNA-Sec.c.cm
new file mode 100644
index 0000000..9c5c8c0
--- /dev/null
+++ b/testsuite/tRNA-Sec.c.cm
@@ -0,0 +1,701 @@
+INFERNAL1/a [1.1.1 | July 2014]
+NAME tRNA-Sec
+ACC RF01852
+STATES 292
+NODES 75
+CLEN 91
+W 117
+ALPH RNA
+RF no
+CONS yes
+MAP yes
+DATE Tue Apr 8 16:22:29 2014
+COM [1] cmbuild -F CM SEED
+COM [2] cmcalibrate --mpi 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 109
+EFFN 2.318512
+CKSUM 3407454328
+NULL 0.000 0.000 0.000 0.000
+GA 47.00
+TC 47.00
+NC 46.90
+EFP7GF -12.3219 0.71862
+ECMLC 0.74414 -5.65122 2.12842 1600000 392081 0.003061
+ECMGC 0.38122 -15.57366 -3.55100 1600000 39136 0.010221
+ECMLI 0.59769 -5.29381 3.90232 1600000 292574 0.004102
+ECMGI 0.41821 -9.96424 0.79712 1600000 36025 0.011103
+CM
+ [ ROOT 0 ] - - - - - -
+ S 0 -1 0 1 6 0 1 117 148 -9.167 -9.106 -0.072 -5.457 -8.163 -5.750
+ IL 1 1 2 1 6 6 39 118 149 -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 7 39 118 149 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 1 ] 1 115 G C - -
+ MP 3 2 3 7 6 9 42 117 148 -9.116 -9.056 -0.024 -7.832 -8.112 -7.729 -4.348 -2.912 -4.393 0.458 -4.887 -4.513 -0.299 -4.756 -4.149 3.538 -3.573 -0.513 -0.618 -4.122 -2.305 -3.323
+ ML 4 2 3 7 6 6 36 115 146 -6.580 -6.926 -1.327 -1.253 -3.149 -4.305 0.139 -0.737 0.521 -0.211
+ MR 5 2 3 7 6 5 36 115 146 -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 3 31 113 144 -9.406 -8.104 -2.271 -4.584 -3.055 -0.676
+ IL 7 7 5 7 6 6 38 116 147 -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 6 38 116 147 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 2 ] 2 114 g c - -
+ MP 9 8 6 13 6 9 41 115 146 -9.139 -9.078 -0.021 -7.855 -8.135 -8.530 -3.276 -2.566 -3.279 1.111 -3.203 -4.000 1.685 -3.481 -3.399 2.629 -3.832 -0.206 0.910 -3.312 -0.792 -2.225
+ ML 10 8 6 13 6 5 36 113 144 -6.291 -6.637 -1.352 -0.965 -6.487 -4.017 0.312 -0.224 -0.303 0.126
+ MR 11 8 6 13 6 5 36 113 144 -7.229 -5.958 -1.223 -5.936 -1.070 -4.150 0.074 -0.101 -0.588 0.433
+ D 12 8 6 13 6 3 30 110 141 -9.096 -7.795 -3.116 -4.274 -4.291 -0.367
+ IL 13 13 5 13 6 6 37 114 145 -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 6 38 114 145 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 3 ] 3 113 g c - -
+ MP 15 14 6 19 6 9 40 113 144 -9.164 -9.103 -0.020 -7.880 -8.160 -8.555 -3.059 -2.598 -3.107 1.726 -2.871 -3.889 1.887 -3.237 -3.185 2.067 -3.661 -0.462 1.105 -3.200 -0.554 -2.077
+ ML 16 14 6 19 6 5 35 111 142 -6.291 -6.637 -1.352 -0.965 -6.487 -4.017 0.312 -0.224 -0.303 0.126
+ MR 17 14 6 19 6 5 35 111 142 -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 3 30 108 139 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 19 19 5 19 6 6 37 112 143 -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 6 37 112 143 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 4 ] 4 112 g c - -
+ MP 21 20 6 25 6 8 38 111 142 -9.164 -9.103 -0.023 -7.880 -8.160 -7.848 -2.838 -2.411 -2.916 1.911 -2.838 -3.719 1.635 -2.804 -3.006 2.034 -3.494 -0.012 0.978 -3.006 -0.601 -1.943
+ ML 22 20 6 25 6 5 34 109 140 -6.291 -6.637 -1.252 -1.046 -6.487 -4.017 0.312 -0.224 -0.303 0.126
+ MR 23 20 6 25 6 5 34 109 140 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 24 20 6 25 6 2 29 106 137 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 25 25 5 25 6 5 36 110 141 -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 6 36 110 141 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 5 ] 5 111 g c - -
+ MP 27 26 6 31 6 7 37 109 140 -9.165 -9.104 -0.029 -7.880 -8.160 -6.871 -3.198 -2.381 -3.189 1.285 -3.470 -3.883 1.067 -3.581 -3.389 2.835 -3.009 0.154 0.625 -3.173 -1.072 -2.201
+ ML 28 26 6 31 6 5 33 107 138 -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 5 33 107 138 -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 2 29 104 135 -9.091 -7.789 -3.159 -4.268 -4.286 -0.361
+ IL 31 31 5 31 6 5 35 108 139 -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 5 35 108 139 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 6 ] 6 110 g c - -
+ MP 33 32 6 37 6 7 35 107 138 -9.159 -9.098 -0.041 -7.874 -8.154 -5.900 -2.601 -2.356 -2.496 1.306 -2.555 -3.501 1.722 -2.922 -2.789 1.910 -3.295 0.417 1.434 -2.797 -0.320 -1.683
+ ML 34 32 6 37 6 5 32 105 136 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 35 32 6 37 6 4 32 105 136 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 36 32 6 37 6 2 28 103 134 -9.191 -7.890 -2.845 -4.369 -4.386 -0.398
+ IL 37 37 5 37 6 5 34 106 137 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 38 38 6 38 5 5 34 106 137 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 7 ] 7 109 g c - -
+ MP 39 38 6 43 6 7 33 105 136 -9.144 -9.083 -0.098 -6.518 -4.513 -7.056 -2.619 -2.227 -2.701 1.606 -2.761 -3.469 1.297 -2.616 -2.839 2.388 -3.319 -0.236 1.043 -2.157 -0.610 -1.704
+ ML 40 38 6 43 6 4 31 103 134 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 41 38 6 43 6 4 31 103 134 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 42 38 6 43 6 2 28 101 132 -9.408 -8.106 -3.903 -4.586 -4.603 -0.243
+ IL 43 43 5 43 6 5 32 104 135 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 44 44 6 44 5 5 32 104 135 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 8 ] 8 108 c g - -
+ MP 45 44 6 49 6 6 32 103 134 -9.067 -9.006 -0.042 -7.783 -6.674 -6.558 -1.733 -1.724 -1.921 1.261 -1.865 -2.742 1.729 -2.099 -1.975 1.321 -2.343 -0.309 1.470 -1.519 -0.016 -0.154
+ ML 46 44 6 49 6 4 30 102 133 -6.374 -6.721 -1.144 -1.129 -6.570 -4.100 0.208 -0.364 -0.371 0.373
+ MR 47 44 6 49 6 4 30 102 133 -7.550 -6.279 -0.937 -6.257 -1.317 -4.471 0.471 -0.317 -0.492 0.138
+ D 48 44 6 49 6 2 28 100 131 -9.499 -8.198 -1.993 -4.677 -4.694 -0.586
+ IL 49 49 5 49 6 5 31 102 133 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 50 50 6 50 5 5 30 102 133 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 9 ] 9 107 g c - -
+ MP 51 50 6 55 4 4 30 101 132 -7.021 -4.488 -0.428 -2.290 -2.324 -1.223 -2.449 1.483 -2.620 -3.188 1.020 -2.540 -2.566 2.391 -3.040 0.322 0.821 -1.577 -0.616 -1.387
+ ML 52 50 6 55 4 4 29 100 131 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 53 50 6 55 4 3 28 100 131 -4.963 -3.992 -1.408 -0.920 0.184 0.053 -0.484 0.153
+ D 54 50 6 55 4 2 27 99 130 -4.857 -3.337 -2.554 -0.522
+ IL 55 55 5 55 4 4 29 102 132 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 56 56 6 56 3 4 29 101 132 -1.455 -0.769 -4.366 0.000 0.000 0.000 0.000
+ [ MATL 10 ] 10 - a - - -
+ ML 57 56 6 59 3 3 28 99 130 -4.955 -0.105 -4.724 0.965 -0.869 -0.837 -0.087
+ D 58 56 6 59 3 2 27 98 129 -7.702 -0.655 -1.473
+ IL 59 59 3 59 3 3 28 100 131 -1.389 -0.818 -4.300 0.000 0.000 0.000 0.000
+ [ MATL 11 ] 13 - u - - -
+ ML 60 59 3 62 2 3 27 98 129 -8.424 -0.004 -0.279 -0.381 -0.896 0.903
+ D 61 59 3 62 2 2 26 97 128 -8.495 -0.004
+ IL 62 62 3 62 2 3 27 99 129 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 12 ] - - - - - -
+ B 63 62 3 64 176 2 26 97 128
+ [ BEGL 13 ] - - - - - -
+ S 64 63 1 65 1 0 1 50 70 0.000
+ [ BIF 14 ] - - - - - -
+ B 65 64 1 66 116 0 1 50 70
+ [ BEGL 15 ] - - - - - -
+ S 66 65 1 67 4 0 0 30 49 -0.042 -6.912 -6.319 -6.959
+ [ MATP 16 ] 14 35 c g - -
+ MP 67 66 1 71 6 2 2 30 49 -6.798 -9.106 -0.031 -7.883 -8.163 -8.558 -3.032 -2.754 -3.106 0.976 -2.632 -3.903 2.376 -3.105 -3.126 1.723 -3.627 -0.252 1.332 -3.225 -0.143 -2.033
+ ML 68 66 1 71 6 1 1 29 47 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 69 66 1 71 6 1 1 29 47 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 70 66 1 71 6 0 0 26 45 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 71 71 5 71 6 1 1 30 49 -2.250 -3.042 -0.789 -4.697 -5.473 -5.134 0.000 0.000 0.000 0.000
+ IR 72 72 6 72 5 1 1 30 48 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 17 ] 17 34 g c - -
+ MP 73 72 6 77 6 2 2 28 47 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -2.304 -2.200 -2.445 1.157 -2.323 -2.663 1.868 -2.693 -2.513 1.925 -2.649 -0.192 1.293 -2.552 0.053 -1.574
+ ML 74 72 6 77 6 1 1 27 45 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 75 72 6 77 6 1 1 27 45 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 76 72 6 77 6 0 0 24 43 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 77 77 5 77 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 78 78 6 78 5 1 1 28 46 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 18 ] 18 33 g c - -
+ MP 79 78 6 83 6 2 2 26 45 -6.199 -9.106 -0.038 -7.883 -8.163 -8.558 -2.051 -1.780 -1.979 1.148 -2.133 -2.855 1.662 -2.500 -2.284 1.751 -2.830 -0.286 1.325 -2.145 0.719 -1.392
+ ML 80 78 6 83 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 81 78 6 83 6 1 1 25 43 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 82 78 6 83 6 0 0 22 41 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 83 83 5 83 6 1 1 26 44 -2.745 -3.008 -0.656 -4.663 -5.439 -5.099 0.000 0.000 0.000 0.000
+ IR 84 84 6 84 5 1 1 26 44 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 19 ] 20 32 c g - -
+ MP 85 84 6 89 6 2 2 24 43 -9.167 -9.106 -0.029 -7.883 -6.759 -8.558 -2.496 -2.177 -2.622 1.184 -2.415 -3.428 1.985 -2.812 -2.164 1.875 -3.202 -0.302 1.303 -2.730 0.069 -1.701
+ ML 86 84 6 89 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 87 84 6 89 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 88 84 6 89 6 0 0 21 39 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 89 89 5 89 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 90 90 6 90 5 1 1 24 42 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 20 ] 21 31 c g - -
+ MP 91 90 6 95 6 2 2 22 41 -5.985 -9.098 -0.041 -7.875 -8.154 -8.549 -1.740 -2.113 -2.031 1.361 -2.098 -3.062 1.786 -2.486 -2.289 1.503 -2.711 -0.274 1.532 -2.356 0.234 -1.340
+ ML 92 90 6 95 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 93 90 6 95 6 1 1 21 39 -7.084 -5.813 -1.443 -5.791 -0.925 -4.005 0.327 -0.563 0.180 -0.096
+ D 94 90 6 95 6 0 0 19 38 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 95 95 5 95 6 1 1 22 40 -2.772 -3.035 -0.640 -4.690 -5.466 -5.127 0.000 0.000 0.000 0.000
+ IR 96 96 6 96 5 1 1 22 40 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 21 ] 23 30 c g - -
+ MP 97 96 6 101 4 2 2 20 38 -5.143 -7.306 -0.079 -5.720 -3.314 -2.955 -3.350 0.745 -2.761 -4.135 2.600 -3.259 -3.344 1.765 -3.829 -0.539 1.205 -3.505 -0.393 -2.223
+ ML 98 96 6 101 4 1 1 20 38 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 99 96 6 101 4 1 1 20 38 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 100 96 6 101 4 0 0 19 37 -4.568 -4.250 -2.265 -0.520
+ IL 101 101 5 101 4 1 1 21 40 -1.826 -2.071 -1.156 -4.995 0.000 0.000 0.000 0.000
+ IR 102 102 6 102 3 1 1 20 39 -1.490 -0.763 -4.190 0.000 0.000 0.000 0.000
+ [ MATL 22 ] 25 - U - - -
+ ML 103 102 6 105 3 1 1 16 35 -8.105 -0.019 -6.759 -0.740 -0.096 -1.426 1.066
+ D 104 102 6 105 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 105 105 3 105 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 23 ] 26 - G - - -
+ ML 106 105 3 108 3 1 1 15 33 -8.105 -0.019 -6.759 -1.880 -3.144 1.783 -2.531
+ D 107 105 3 108 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 108 108 3 108 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 24 ] 27 - G - - -
+ ML 109 108 3 111 3 1 1 13 31 -8.105 -0.019 -6.759 -1.880 -3.144 1.783 -2.531
+ D 110 108 3 111 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 111 111 3 111 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 25 ] 28 - U - - -
+ ML 112 111 3 114 2 1 1 1 1 * 0.000 -1.751 -1.701 -2.496 1.686
+ D 113 111 3 114 2 0 0 0 0 * 0.000
+ IL 114 114 3 114 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 26 ] - - - - - -
+ E 115 114 3 -1 0 0 0 0 0
+ [ BEGR 27 ] - - - - - -
+ S 116 65 1 117 5 0 0 33 52 -7.217 -0.036 -7.033 -7.245 -8.136
+ IL 117 117 2 117 5 1 1 34 53 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 28 ] 36 57 u a - -
+ MP 118 117 2 122 6 2 2 33 52 -9.167 -4.681 -0.076 -7.883 -8.163 -8.558 -1.639 -1.771 -1.838 1.129 -1.711 -2.242 1.584 -0.530 -1.783 1.151 -2.443 0.219 1.594 -1.825 0.069 -0.990
+ ML 119 117 2 122 6 1 1 31 50 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 120 117 2 122 6 1 1 31 50 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 121 117 2 122 6 0 0 29 48 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 122 122 5 122 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 123 123 6 123 5 1 1 32 51 -2.145 -0.519 -6.349 -4.517 -5.623 0.000 0.000 0.000 0.000
+ [ MATP 29 ] 37 54 c g - -
+ MP 124 123 6 128 6 2 2 31 50 -9.167 -7.048 -0.029 -7.883 -8.163 -8.558 -1.388 -1.676 -1.908 1.183 -1.481 -2.550 1.865 -2.101 -1.699 1.114 -2.485 0.567 1.339 -2.032 0.003 -1.131
+ ML 125 123 6 128 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 126 123 6 128 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 127 123 6 128 6 0 0 27 46 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 128 128 5 128 6 1 1 31 49 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 129 129 6 129 5 1 1 30 49 -2.459 -0.476 -5.970 -4.138 -5.244 0.000 0.000 0.000 0.000
+ [ MATP 30 ] 38 52 c g - -
+ MP 130 129 6 134 6 2 2 29 48 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -3.673 -3.556 -3.597 0.380 -2.601 -4.232 2.940 -3.279 -3.589 0.573 -4.011 -1.471 1.754 -3.834 -0.252 -2.451
+ ML 131 129 6 134 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 132 129 6 134 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 133 129 6 134 6 0 0 25 44 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 134 134 5 134 6 1 1 29 47 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 135 135 6 135 5 1 1 28 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 31 ] 39 51 G C - -
+ MP 136 135 6 140 6 2 2 27 46 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -3.681 -2.565 -3.653 1.528 -4.147 -4.307 0.389 -4.037 -3.755 3.089 -4.143 -0.172 0.272 -3.632 -1.595 -2.586
+ ML 137 135 6 140 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 138 135 6 140 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 139 135 6 140 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 140 140 5 140 6 1 1 27 45 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 141 141 6 141 5 1 1 26 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 32 ] 40 50 G C - -
+ MP 142 141 6 146 6 2 2 25 44 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -4.900 -3.170 -5.012 0.196 -5.551 -4.782 -0.845 -5.298 -4.450 3.670 -4.777 -0.869 -1.201 -4.577 -2.892 -3.886
+ ML 143 141 6 146 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 144 141 6 146 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 145 141 6 146 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 146 146 5 146 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 147 147 6 147 5 1 1 24 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 33 ] 41 49 g c - -
+ MP 148 147 6 152 4 2 2 23 42 -7.099 -7.306 -0.048 -5.720 -3.060 -2.532 -3.112 1.787 -3.004 -3.921 1.260 -3.295 -3.193 2.197 -3.672 -0.363 1.556 -3.211 -0.697 -2.092
+ ML 149 147 6 152 4 1 1 24 43 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 150 147 6 152 4 1 1 23 42 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 151 147 6 152 4 0 0 22 41 -4.568 -4.250 -2.265 -0.520
+ IL 152 152 5 152 4 1 1 25 44 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 153 153 6 153 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 34 ] 42 - C - - -
+ ML 154 153 6 156 3 1 1 20 39 -8.105 -0.019 -6.759 -1.740 1.591 -2.575 -0.941
+ D 155 153 6 156 3 0 0 19 38 -6.174 -1.687 -0.566
+ IL 156 156 3 156 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 35 ] 43 - U - - -
+ ML 157 156 3 159 3 1 1 19 37 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 158 156 3 159 3 0 0 18 37 -6.174 -1.687 -0.566
+ IL 159 159 3 159 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 36 ] 44 - U - - -
+ ML 160 159 3 162 3 1 1 17 36 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 161 159 3 162 3 0 0 17 36 -6.174 -1.687 -0.566
+ IL 162 162 3 162 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 37 ] 45 - C - - -
+ ML 163 162 3 165 3 1 1 16 35 -8.105 -0.019 -6.759 -2.087 1.706 -2.918 -1.431
+ D 164 162 3 165 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 165 165 3 165 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 38 ] 46 - A - - -
+ ML 166 165 3 168 3 1 1 15 33 -8.105 -0.019 -6.759 1.774 -2.658 -2.261 -2.229
+ D 167 165 3 168 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 168 168 3 168 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 39 ] 47 - A - - -
+ ML 169 168 3 171 3 1 1 13 31 -8.105 -0.019 -6.759 1.615 -2.105 -1.370 -1.653
+ D 170 168 3 171 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 171 171 3 171 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 40 ] 48 - A - - -
+ ML 172 171 3 174 2 1 1 1 1 * 0.000 1.673 -2.026 -1.909 -1.735
+ D 173 171 3 174 2 0 0 0 0 * 0.000
+ IL 174 174 3 174 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 41 ] - - - - - -
+ E 175 174 3 -1 0 0 0 0 0
+ [ BEGR 42 ] - - - - - -
+ S 176 63 1 177 3 0 2 62 92 -5.308 -0.051 -6.759
+ IL 177 177 2 177 3 1 3 64 94 -1.391 -0.817 -4.293 0.000 0.000 0.000 0.000
+ [ MATL 43 ] 60 - G - - -
+ ML 178 177 2 180 2 1 2 61 92 -8.524 -0.004 -0.345 -1.363 1.036 -0.372
+ D 179 177 2 180 2 0 1 60 91 -8.445 -0.004
+ IL 180 180 3 180 2 1 2 62 93 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ BIF 44 ] - - - - - -
+ B 181 180 3 182 238 0 1 60 91
+ [ BEGL 45 ] - - - - - -
+ S 182 181 1 183 4 0 0 43 74 -0.077 -6.912 -5.572 -5.472
+ [ MATP 46 ] 61 84 g c - -
+ MP 183 182 1 187 6 2 2 43 74 -9.141 -9.081 -0.021 -7.857 -8.137 -8.532 -2.828 -2.518 -2.910 1.330 -2.640 -3.701 1.923 -3.043 -2.978 1.956 -3.475 -0.185 1.424 -3.002 -0.292 -1.816
+ ML 184 182 1 187 6 1 1 41 72 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 185 182 1 187 6 1 1 41 72 -7.096 -5.825 -1.734 -5.804 -0.750 -4.017 0.214 -0.006 -0.446 0.151
+ D 186 182 1 187 6 0 0 39 70 -9.307 -8.005 -2.087 -4.484 -4.502 -0.577
+ IL 187 187 5 187 6 1 1 43 74 -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 42 73 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 47 ] 62 83 g c - -
+ MP 189 188 6 193 6 2 2 41 72 -9.158 -9.097 -0.033 -7.873 -8.153 -6.483 -2.851 -2.030 -2.914 1.298 -2.856 -3.683 1.516 -3.163 -3.034 2.316 -3.508 -0.046 1.396 -2.973 -0.600 -1.947
+ ML 190 188 6 193 6 1 1 39 70 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 191 188 6 193 6 1 1 39 70 -7.096 -5.825 -1.422 -5.804 -0.937 -4.017 0.314 -0.574 0.206 -0.102
+ D 192 188 6 193 6 0 0 36 67 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 193 193 5 193 6 1 1 41 72 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 194 194 6 194 5 1 1 40 71 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 48 ] 63 82 g c - -
+ MP 195 194 6 199 6 2 2 39 70 -9.155 -9.094 -0.020 -7.871 -8.150 -8.545 -3.292 -2.415 -3.262 1.373 -3.524 -3.960 1.123 -3.632 -3.471 2.795 -3.864 0.186 0.611 -3.244 -0.920 -2.242
+ ML 196 194 6 199 6 1 1 38 68 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 197 194 6 199 6 1 1 37 68 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 198 194 6 199 6 0 0 35 65 -9.249 -7.948 -3.745 -4.427 -4.444 -0.274
+ IL 199 199 5 199 6 1 1 39 70 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 200 200 6 200 5 1 1 38 69 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 49 ] 64 81 g c - -
+ MP 201 200 6 205 6 2 2 37 68 -7.257 -9.094 -0.031 -7.871 -8.150 -7.617 -2.686 -2.330 -2.543 1.156 -2.710 -3.547 1.558 -3.032 -2.883 2.243 -3.099 0.365 1.334 -2.839 -0.459 -1.837
+ ML 202 200 6 205 6 1 1 36 67 -6.250 -6.596 -1.310 -1.005 -6.446 -3.975 0.368 -0.385 -0.191 0.094
+ MR 203 200 6 205 6 1 1 36 66 -6.988 -5.717 -1.625 -5.695 -0.829 -3.908 0.368 -0.385 -0.191 0.094
+ D 204 200 6 205 6 0 0 33 64 -9.249 -7.948 -3.745 -4.427 -4.444 -0.274
+ IL 205 205 5 205 6 1 1 37 68 -2.648 -2.911 -0.715 -4.566 -5.342 -5.002 0.000 0.000 0.000 0.000
+ IR 206 206 6 206 5 1 1 36 67 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 50 ] 66 80 c g - -
+ MP 207 206 6 211 4 2 2 35 66 -7.060 -7.267 -0.049 -5.681 -2.458 -2.323 -2.596 1.137 -2.363 -3.390 2.101 -2.767 -2.635 1.669 -2.380 0.065 1.311 -2.707 -0.002 -1.672
+ ML 208 206 6 211 4 1 1 35 66 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 209 206 6 211 4 1 1 34 65 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 210 206 6 211 4 0 0 33 64 -4.806 -4.487 -1.607 -0.758
+ IL 211 211 5 211 4 1 1 36 67 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 212 212 6 212 3 1 1 35 66 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 51 ] 67 - u - - -
+ ML 213 212 6 215 3 1 1 33 64 -8.105 -0.019 -6.759 -0.210 -0.199 -0.420 0.601
+ D 214 212 6 215 3 0 0 31 62 -6.174 -1.687 -0.566
+ IL 215 215 3 215 3 1 1 34 65 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 52 ] 68 - a - - -
+ ML 216 215 3 218 3 1 1 32 63 -8.105 -0.019 -6.759 0.285 -0.558 0.188 -0.053
+ D 217 215 3 218 3 0 0 30 61 -6.174 -1.687 -0.566
+ IL 218 218 3 218 3 1 1 33 64 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 53 ] 69 - g - - -
+ ML 219 218 3 221 3 1 1 31 62 -8.105 -0.019 -6.759 -0.112 -0.454 0.486 -0.083
+ D 220 218 3 221 3 0 0 29 60 -6.174 -1.687 -0.566
+ IL 221 221 3 221 3 1 1 32 63 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 54 ] 70 - c - - -
+ ML 222 221 3 224 3 1 1 30 61 -8.105 -0.298 -2.448 0.059 0.279 -0.562 0.094
+ D 223 221 3 224 3 0 0 28 59 -6.174 -1.687 -0.566
+ IL 224 224 3 224 3 1 1 31 62 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 55 ] 71 - a - - -
+ ML 225 224 3 227 3 1 1 29 60 -7.829 -0.146 -3.443 0.459 -0.620 -0.287 0.208
+ D 226 224 3 227 3 0 0 25 56 -7.646 -3.159 -0.179
+ IL 227 227 3 227 3 1 1 30 61 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 56 ] 72 - a - - -
+ ML 228 227 3 230 3 1 1 29 59 -1.682 -0.564 -6.362 0.433 -0.836 0.242 -0.140
+ D 229 227 3 230 3 0 0 20 51 -7.963 -2.073 -0.399
+ IL 230 230 3 230 3 1 1 30 60 -0.859 -1.224 -5.595 0.000 0.000 0.000 0.000
+ [ MATL 57 ] 78 - c - - -
+ ML 231 230 3 233 3 1 1 13 32 -7.800 -0.023 -6.454 0.137 0.192 -0.515 0.082
+ D 232 230 3 233 3 0 0 12 31 -7.732 -2.169 -0.372
+ IL 233 233 3 233 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 58 ] 79 - g - - -
+ ML 234 233 3 236 2 1 1 1 1 * 0.000 0.041 -0.409 0.191 0.107
+ D 235 233 3 236 2 0 0 0 0 * 0.000
+ IL 236 236 3 236 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 59 ] - - - - - -
+ E 237 236 3 -1 0 0 0 0 0
+ [ BEGR 60 ] - - - - - -
+ S 238 181 1 239 3 0 0 32 51 -8.105 -0.019 -6.759
+ IL 239 239 2 239 3 1 1 35 55 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 61 ] 85 - g - - -
+ ML 240 239 2 242 3 1 1 32 51 -2.479 -0.731 -2.197 0.181 -0.817 0.396 -0.025
+ D 241 239 2 242 3 0 0 29 48 -6.174 -1.687 -0.566
+ IL 242 242 3 242 3 1 1 32 51 -1.693 -0.612 -4.789 0.000 0.000 0.000 0.000
+ [ MATL 62 ] 88 - G - - -
+ ML 243 242 3 245 5 1 1 30 49 -6.923 -0.044 -6.738 -6.950 -7.842 -0.966 -2.171 1.549 -1.559
+ D 244 242 3 245 5 0 0 29 48 -6.096 -0.312 -5.357 -3.732 -3.645
+ IL 245 245 3 245 5 1 1 30 49 -2.408 -0.496 -4.087 -5.920 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 63 ] 89 103 g c - -
+ MP 246 245 3 250 6 2 2 29 48 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -2.918 -2.621 -2.994 0.999 -2.651 -3.789 1.843 -3.082 -3.050 1.972 -3.550 -0.157 1.766 -3.094 -0.239 -1.969
+ ML 247 245 3 250 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 248 245 3 250 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 249 245 3 250 6 0 0 25 44 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 250 250 5 250 6 1 1 29 47 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 251 251 6 251 5 1 1 28 47 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 64 ] 90 102 g c - -
+ MP 252 251 6 256 6 2 2 27 46 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -2.935 -2.170 -2.976 1.492 -3.013 -3.725 1.283 -3.273 -3.128 2.471 -3.582 -0.269 1.266 -2.806 -0.727 -2.009
+ ML 253 251 6 256 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 254 251 6 256 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 255 251 6 256 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 256 256 5 256 6 1 1 27 45 -2.579 -2.842 -0.760 -4.497 -5.274 -4.934 0.000 0.000 0.000 0.000
+ IR 257 257 6 257 5 1 1 26 45 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 65 ] 91 101 G C - -
+ MP 258 257 6 262 6 2 2 25 44 -9.167 -9.106 -0.020 -7.883 -8.163 -8.558 -4.179 -2.838 -4.162 0.803 -4.618 -4.498 0.129 -4.517 -4.087 3.422 -4.433 -0.515 -0.267 -4.002 -2.014 -3.078
+ ML 259 257 6 262 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 260 257 6 262 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 261 257 6 262 6 0 0 23 42 -9.049 -7.747 -3.544 -4.226 -4.244 -0.319
+ IL 262 262 5 262 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 263 263 6 263 5 1 1 24 43 -2.408 -0.496 -5.920 -4.087 -5.193 0.000 0.000 0.000 0.000
+ [ MATP 66 ] 92 100 G C - -
+ MP 264 263 6 268 4 2 2 23 42 -7.099 -7.306 -0.048 -5.720 -5.021 -3.228 -5.151 0.011 -5.625 -4.801 -0.920 -5.410 -4.505 3.698 -4.823 -0.939 -1.298 -4.649 -2.973 -4.024
+ ML 265 263 6 268 4 1 1 24 43 -3.758 -3.940 -0.507 -2.670 0.368 -0.385 -0.191 0.094
+ MR 266 263 6 268 4 1 1 23 42 -4.809 -3.838 -1.706 -0.766 0.368 -0.385 -0.191 0.094
+ D 267 263 6 268 4 0 0 22 41 -4.568 -4.250 -2.265 -0.520
+ IL 268 268 5 268 4 1 1 25 44 -1.686 -2.369 -1.117 -4.855 0.000 0.000 0.000 0.000
+ IR 269 269 6 269 3 1 1 24 43 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 67 ] 93 - U - - -
+ ML 270 269 6 272 3 1 1 20 39 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 271 269 6 272 3 0 0 19 38 -6.174 -1.687 -0.566
+ IL 272 272 3 272 3 1 1 23 42 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 68 ] 94 - U - - -
+ ML 273 272 3 275 3 1 1 19 37 -8.105 -0.019 -6.759 -1.751 -1.701 -2.496 1.686
+ D 274 272 3 275 3 0 0 18 37 -6.174 -1.687 -0.566
+ IL 275 275 3 275 3 1 1 22 41 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 69 ] 95 - C - - -
+ ML 276 275 3 278 3 1 1 17 36 -8.105 -0.019 -6.759 -1.826 1.623 -2.659 -1.062
+ D 277 275 3 278 3 0 0 17 36 -6.174 -1.687 -0.566
+ IL 278 278 3 278 3 1 1 21 40 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 70 ] 96 - G - - -
+ ML 279 278 3 281 3 1 1 16 35 -8.105 -0.019 -6.759 0.088 -1.778 1.143 -1.193
+ D 280 278 3 281 3 0 0 16 34 -6.174 -1.687 -0.566
+ IL 281 281 3 281 3 1 1 20 38 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 71 ] 97 - A - - -
+ ML 282 281 3 284 3 1 1 15 33 -8.105 -0.019 -6.759 1.723 -2.390 -2.085 -1.875
+ D 283 281 3 284 3 0 0 15 33 -6.174 -1.687 -0.566
+ IL 284 284 3 284 3 1 1 19 37 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 72 ] 98 - U - - -
+ ML 285 284 3 287 3 1 1 13 31 -8.105 -0.019 -6.759 -0.664 -0.084 -1.491 1.049
+ D 286 284 3 287 3 0 0 13 32 -6.174 -1.687 -0.566
+ IL 287 287 3 287 3 1 1 18 36 -1.442 -0.798 -4.142 0.000 0.000 0.000 0.000
+ [ MATL 73 ] 99 - U - - -
+ ML 288 287 3 290 2 1 1 1 1 * 0.000 -1.751 -1.701 -2.496 1.686
+ D 289 287 3 290 2 0 0 0 0 * 0.000
+ IL 290 290 3 290 2 1 1 13 28 -1.823 -0.479 0.000 0.000 0.000 0.000
+ [ END 74 ] - - - - - -
+ E 291 290 3 -1 0 0 0 0 0
+//
+HMMER3/f [i1.1.1 | July 2014]
+NAME tRNA-Sec
+ACC RF01852
+LENG 91
+MAXL 164
+ALPH RNA
+RF no
+MM no
+CONS yes
+CS yes
+MAP yes
+DATE Tue Apr 8 16:22:29 2014
+COM [1] cmbuild -F CM SEED
+NSEQ 109
+EFFN 12.031647
+CKSUM 3407454328
+STATS LOCAL MSV -8.8824 0.71862
+STATS LOCAL VITERBI -9.9312 0.71862
+STATS LOCAL FORWARD -3.8558 0.71862
+HMM A C G U
+ m->m m->i m->d i->m i->i d->m d->d
+ COMPO 1.70134 1.32390 1.18487 1.40373
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07246 4.95852 2.76662 1.46634 0.26236 0.00000 *
+ 1 3.48543 4.45423 0.05778 4.27816 1 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05850 4.90105 3.00811 1.46634 0.26236 0.58802 0.81064
+ 2 2.12818 1.49124 0.57578 2.36885 2 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01505 4.89691 4.89691 1.46634 0.26236 0.19091 1.74989
+ 3 1.15561 1.29440 1.21466 2.16926 3 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 4 0.91913 1.60426 1.15455 2.46631 4 a - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02013 4.95852 4.35043 1.46634 0.26236 1.09861 0.40547
+ 5 1.93444 2.24838 0.39547 2.56963 5 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03548 4.95263 3.58290 1.46634 0.26236 0.73658 0.65152
+ 6 1.68805 1.48227 1.07047 1.40587 6 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06662 4.93770 2.85986 1.46634 0.26236 0.70927 0.67728
+ 7 1.29403 2.14553 0.76097 1.95462 7 g - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.19810 4.90068 1.75868 1.46634 0.26236 2.39806 0.09529
+ 8 1.65780 1.36628 1.72294 0.97857 8 u - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07818 4.72056 2.71363 1.46634 0.26236 0.21143 1.65772
+ 9 1.37832 2.62667 0.59593 2.08238 9 G - - (
+ 1.38629 1.38629 1.38629 1.38629
+ 0.33504 4.87995 1.28341 1.46634 0.26236 0.65823 0.72932
+ 10 0.43682 2.52686 2.50289 1.64944 10 A - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.12050 2.84958 2.88857 0.81257 0.58648 0.25577 1.48864
+ 11 1.93428 1.76877 2.24861 0.54579 13 U - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01551 4.86725 4.86725 1.46634 0.26236 0.13891 2.04255
+ 12 2.36263 0.71721 1.35196 1.83895 14 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04027 3.42809 4.95852 0.84662 0.56013 1.09861 0.40547
+ 13 1.96093 1.19803 1.08625 1.51410 17 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 14 1.80961 1.53755 1.29717 1.05534 18 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05728 3.02311 4.95852 0.26729 1.45008 1.09861 0.40547
+ 15 1.84945 1.15131 1.13822 1.57957 20 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03479 4.95852 3.60568 1.46634 0.26236 1.09861 0.40547
+ 16 1.43489 1.44824 1.51789 1.17863 21 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.06644 2.86266 4.93817 0.23448 1.56534 0.41674 1.07643
+ 17 3.06518 0.48131 1.35733 2.55062 23 C - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04499 3.29755 4.95852 0.34441 1.23320 1.09861 0.40547
+ 18 3.11788 1.40500 3.36481 0.39184 25 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 19 4.53185 5.62593 0.02105 5.04043 26 G - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 20 4.53185 5.62593 0.02105 5.04043 27 G - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 21 4.62647 4.34036 5.19036 0.02880 28 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03480 3.60550 4.95852 0.45522 1.00597 1.09861 0.40547
+ 22 2.76297 1.49154 0.46121 2.50897 30 G - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 23 1.46035 1.74355 1.11776 1.32451 31 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 24 1.92244 1.29702 0.95197 1.63771 32 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 25 1.78929 1.36310 0.93448 1.69139 33 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 26 1.90518 1.22190 1.00075 1.66637 34 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 27 2.17310 1.58979 0.63578 1.87938 35 G - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 28 1.98373 1.20466 1.39327 1.15712 36 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 29 1.71041 1.11449 1.20802 1.64851 37 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 30 2.97153 0.41736 2.91281 1.44534 38 C - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 31 1.52831 3.27591 0.38813 2.70321 39 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 32 3.49020 4.98745 0.04538 4.95437 40 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 33 1.06059 2.97972 1.07413 1.34191 41 a - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 34 4.48258 0.06786 4.89852 3.06088 42 C - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 35 4.62647 4.34036 5.19036 0.02880 43 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 36 4.62647 4.34036 5.19036 0.02880 44 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 37 4.93831 0.02596 5.29277 4.31039 45 C - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 38 0.01917 5.28542 4.88605 5.05630 46 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 39 0.08624 4.39055 2.87641 4.27629 47 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 40 0.05543 3.68593 4.25790 4.21994 48 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 41 1.38808 1.14034 2.79831 0.99473 49 u - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 42 4.99212 0.05445 4.87056 3.25631 50 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 43 2.86376 0.43242 3.08164 1.39382 51 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 44 1.53070 3.04771 0.39268 2.79851 52 G - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.03479 3.60568 4.95852 0.45529 1.00584 1.09861 0.40547
+ 45 1.64377 2.02091 1.06929 1.10574 54 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.15600 1.98476 4.95852 0.46497 0.98928 1.09861 0.40547
+ 46 1.33379 1.84180 1.45579 1.06486 57 u - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04814 3.21941 4.95852 0.81737 0.58266 1.09861 0.40547
+ 47 2.16152 3.38802 0.35361 1.90432 60 G - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07876 4.95852 2.67782 1.46634 0.26236 1.09861 0.40547
+ 48 1.66740 1.24638 1.18696 1.52063 61 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01508 4.89485 4.89485 1.46634 0.26236 0.58932 0.80902
+ 49 1.74187 1.87688 0.78198 1.54066 62 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04575 4.93545 3.28254 1.46634 0.26236 0.38588 1.13898
+ 50 1.77534 2.21921 0.43964 2.55604 63 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01458 4.92842 4.92842 1.46634 0.26236 1.97715 0.14904
+ 51 2.06204 1.72061 0.72727 1.55770 64 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.04111 3.71401 4.14143 0.51509 0.90993 1.97715 0.14904
+ 52 2.01716 0.95335 1.22398 1.67417 66 c - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01471 4.91972 4.91972 1.46634 0.26236 0.27123 1.43733
+ 53 1.90643 1.47049 1.60453 0.86609 67 u - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 54 1.20418 1.86144 1.04228 1.65046 68 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 55 1.86138 1.70656 0.70926 1.76582 69 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 56 1.47976 0.91726 1.83821 1.54367 70 c - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.32769 4.95852 1.30051 1.46634 0.26236 1.09861 0.40547
+ 57 0.97318 2.06516 1.55730 1.25661 71 a - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.17155 4.65013 1.90998 1.46634 0.26236 3.70829 0.02482
+ 58 1.06331 2.38788 0.93712 1.76545 72 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.87578 0.55798 4.50103 1.07474 0.41762 1.53834 0.24174
+ 59 1.38578 0.97732 1.80136 1.56793 78 c - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02000 4.61491 4.61491 1.46634 0.26236 1.67341 0.20777
+ 60 1.57377 1.68541 0.97877 1.46276 79 g - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.07096 4.68499 2.82574 1.46634 0.26236 0.05546 2.91976
+ 61 2.06062 1.64562 0.77989 1.50833 80 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01471 4.91972 4.91972 1.46634 0.26236 1.34349 0.30237
+ 62 1.70713 1.02312 1.54036 1.40716 81 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01458 4.92842 4.92842 1.46634 0.26236 1.97715 0.14904
+ 63 2.89857 0.56210 2.04339 1.40528 82 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01458 4.92842 4.92842 1.46634 0.26236 0.32424 1.28400
+ 64 1.63664 0.90314 1.74469 1.48999 83 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.05438 4.95852 3.08113 1.46634 0.26236 1.09861 0.40547
+ 65 1.72370 1.36000 1.14821 1.39542 84 g - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01472 4.91886 4.91886 1.46634 0.26236 0.26695 1.45119
+ 66 1.35133 2.33276 0.83027 1.56953 85 g - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.91781 1.29094 1.12211 0.26730 1.45005 1.09861 0.40547
+ 67 3.42263 4.76246 0.05610 4.31361 88 G - - ,
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02083 4.57496 4.57496 1.46634 0.26236 0.04224 3.18550
+ 68 2.40165 1.46418 1.09113 1.07198 89 u - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 69 1.46579 2.34101 0.72522 1.66783 90 g - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 70 2.53454 3.29649 0.16181 3.40871 91 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 71 3.94603 5.00978 0.03331 4.99753 92 G - - <
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 72 4.62647 4.34036 5.19036 0.02880 93 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 73 4.62647 4.34036 5.19036 0.02880 94 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 74 4.57048 0.05600 4.95731 3.29483 95 C - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 75 1.39428 4.02231 0.34268 3.72093 96 G - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 76 0.03754 4.71976 4.55271 4.05206 97 A - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 77 2.76170 1.38220 3.65009 0.41582 98 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 78 4.62647 4.34036 5.19036 0.02880 99 U - - _
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 79 4.99796 0.04217 4.88940 3.61140 100 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 80 3.56964 0.18145 3.17643 2.34297 101 C - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 81 1.78072 0.76538 2.20592 1.36189 102 c - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01415 4.95852 4.95852 1.46634 0.26236 1.09861 0.40547
+ 82 1.19739 1.28841 1.31644 1.86936 103 a - - >
+ 1.38629 1.38629 1.38629 1.38629
+ 0.10289 2.84385 3.22957 0.62979 0.76079 1.09861 0.40547
+ 83 2.74933 0.64577 2.53047 1.10217 107 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.11206 4.92543 2.31516 1.46634 0.26236 0.50228 0.92925
+ 84 1.45207 1.72283 1.27059 1.18192 108 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01565 4.85800 4.85800 1.46634 0.26236 0.92103 0.50768
+ 85 2.27145 0.78905 2.07976 1.14697 109 c - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02960 4.90068 3.82920 1.46634 0.26236 0.32022 1.29460
+ 86 1.58507 1.54867 1.32564 1.14917 110 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02055 4.93770 4.32961 1.46634 0.26236 0.41102 1.08760
+ 87 2.77949 0.51912 2.06907 1.52978 111 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02174 4.95263 4.23795 1.46634 0.26236 0.73658 0.65152
+ 88 2.70354 1.36407 1.56126 0.76027 112 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.01425 4.95116 4.95116 1.46634 0.26236 1.39712 0.28410
+ 89 2.36677 1.28174 1.23556 1.08473 113 u - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.02107 4.95116 4.28509 1.46634 0.26236 1.39712 0.28410
+ 90 2.57152 0.65054 1.45004 1.78822 114 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.13853 4.94445 2.10175 1.46634 0.26236 0.51215 0.91431
+ 91 4.88296 0.06879 4.12716 3.15179 115 C - - )
+ 1.38629 1.38629 1.38629 1.38629
+ 0.27766 1.41698 * 1.16143 0.37548 0.00000 *
+//
diff --git a/testsuite/testsuite.sqc b/testsuite/testsuite.sqc
index 08d013a..759879b 100644
--- a/testsuite/testsuite.sqc
+++ b/testsuite/testsuite.sqc
@@ -43,6 +43,7 @@
1 exercise itest/sensitivity !testsuite/itest6-sensitivity.pl! @@ !! %OUTFILES%
1 exercise itest/trunc !testsuite/itest7-trunc.pl! @@ !! %OUTFILES%
1 exercise itest/scan-glist !testsuite/itest8-glist.pl! @@ !! %OUTFILES%
+1 exercise itest/scan-overlaps !testsuite/itest9-overlaps.pl! @@ !! %OUTFILES%
1 exercise itest/brute @src/itest_brute@
################################################################
@@ -69,6 +70,7 @@
1 exercise bug/i38-mapali-noss !testsuite/bug-i38.pl! @src/cmbuild@ @src/cmalign@
1 exercise bug/i39-build-O-0bp !testsuite/bug-i39.pl! @src/cmbuild@
1 exercise bug/i43-oa-loc-beg !testsuite/bug-i43.pl! @src/cmsearch@ !testsuite/bug-i43.cm! !testsuite/bug-i43.fa!
+1 exercise bug/i44-mapstr !testsuite/bug-i44.pl! @src/cmbuild@ @src/cmalign@
################################################################
# Option tests
@@ -90,6 +92,7 @@
1 prep copy/sC cp !testsuite/Plant_SRP.c.cm! %SRP.C.CM%
1 prep copy/zbpC cp !testsuite/snR75.c.cm! %ZBP.C.CM%
1 prep copy/4C cp !testsuite/4.c.cm! %4.C.CM%
+1 prep copy/5C cp !testsuite/5.c.cm! %5.C.CM%
1 exercise search/help/1 @src/cmsearch@ -h
1 exercise search/help/2 @src/cmsearch@ --devhelp
@@ -119,6 +122,7 @@
1 exercise press/sC @src/cmpress@ %SRP.C.CM%
1 exercise press/zC @src/cmpress@ %ZBP.C.CM%
1 exercise press/4C @src/cmpress@ %4.C.CM%
+1 exercise press/5C @src/cmpress@ %5.C.CM%
# cmscan exercises (cmscan requires a press'd CM file with E-values)
1 exercise scan/help/1 @src/cmscan@ -h
@@ -133,6 +137,8 @@
1 prep cleanup/zC rm -f %ZBP.C.CM%.*
1 exercise scan/4C @src/cmscan@ -Z 1000 %4.C.CM% !testsuite/emitted-tRNA.fa!
1 prep cleanup/4C rm -f %4.C.CM%.*
+1 exercise scan/5C @src/cmscan@ --fmt 2 --tblout %5.C.TBLOUT% --oskip --oclan --clanin !testsuite/5.claninfo! -Z 1000 %5.C.CM% !testsuite/emitted-tRNA.fa!
+1 prep cleanup/5C rm -f %5.C.CM%.*
# cmemit exercises
1 exercise emit/help/1 @src/cmemit@ -h
diff --git a/tutorial/tRNA5.c.cm b/tutorial/tRNA5.c.cm
index 7e50cdd..22c28b9 100644
--- a/tutorial/tRNA5.c.cm
+++ b/tutorial/tRNA5.c.cm
@@ -1,4 +1,4 @@
-INFERNAL1/a [1.1rc1 | June 2012]
+INFERNAL1/a [1.1.1 | July 2014]
NAME tRNA5
STATES 230
NODES 61
@@ -8,9 +8,9 @@ ALPH RNA
RF no
CONS yes
MAP yes
-DATE Tue Jun 12 17:22:37 2012
-COM [1] ./cmbuild tRNA5.cm ../tutorial/tRNA5.sto
-COM [2] ./cmcalibrate ./tRNA5.cm
+DATE Mon Jun 27 12:35:45 2016
+COM [1] ./src/cmbuild tRNA5.cm tutorial/tRNA5.sto
+COM [2] cmcalibrate tRNA5.cm
PBEGIN 0.05
PEND 0.05
WBETA 1e-07
@@ -321,7 +321,7 @@ CM
[ END 41 ] - - - - - -
E 229 228 3 -1 0 0 0 0 0
//
-HMMER3/f [i1.1rc1 | June 2012]
+HMMER3/f [i1.1.1 | July 2014]
NAME tRNA5
LENG 72
MAXL 152
@@ -331,8 +331,8 @@ MM no
CONS yes
CS yes
MAP yes
-DATE Tue Jun 12 17:22:38 2012
-COM [1] ./cmbuild tRNA5.cm ../tutorial/tRNA5.sto
+DATE Mon Jun 27 12:35:45 2016
+COM [1] ./src/cmbuild tRNA5.cm tutorial/tRNA5.sto
NSEQ 5
EFFN 4.575195
CKSUM 3535941971
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/infernal.git
More information about the debian-med-commit
mailing list